diff --git a/eng/Versions.props b/eng/Versions.props index 89a2e4d46..985dc707a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -62,8 +62,8 @@ 0.20.1 2 2.3.1 - 0.99.5 - 1.13.0.1 + 0.101.5 + 2.1.0.1 1.12.4 3.1.2 diff --git a/src/Microsoft.ML.TorchSharp/AutoFormerV2/ObjectDetectionTrainer.cs b/src/Microsoft.ML.TorchSharp/AutoFormerV2/ObjectDetectionTrainer.cs index a2a900f83..f999c49cd 100644 --- a/src/Microsoft.ML.TorchSharp/AutoFormerV2/ObjectDetectionTrainer.cs +++ b/src/Microsoft.ML.TorchSharp/AutoFormerV2/ObjectDetectionTrainer.cs @@ -225,7 +225,7 @@ namespace Microsoft.ML.TorchSharp.AutoFormerV2 Device = TorchUtils.InitializeDevice(Parent.Host); // Move to GPU if we are running there - if (Device == CUDA) + if (Device.type == DeviceType.CUDA) Model.cuda(); // Get the parameters that need optimization and set up the optimizer @@ -531,7 +531,7 @@ namespace Microsoft.ML.TorchSharp.AutoFormerV2 Model = model; Model.eval(); - if (Device == CUDA) + if (Device.type == DeviceType.CUDA) Model.cuda(); } diff --git a/src/Microsoft.ML.TorchSharp/Roberta/QATrainer.cs b/src/Microsoft.ML.TorchSharp/Roberta/QATrainer.cs index 4fdccbd01..6e69c56e3 100644 --- a/src/Microsoft.ML.TorchSharp/Roberta/QATrainer.cs +++ b/src/Microsoft.ML.TorchSharp/Roberta/QATrainer.cs @@ -207,7 +207,7 @@ namespace Microsoft.ML.TorchSharp.Roberta Device = TorchUtils.InitializeDevice(Parent.Host); // Move to GPU if we are running there - if (Device == CUDA) + if (Device.type == DeviceType.CUDA) Model.cuda(); Tokenizer = TokenizerExtensions.GetInstance(ch); @@ -574,7 +574,7 @@ namespace Microsoft.ML.TorchSharp.Roberta Model = model; Model.eval(); - if (Device == CUDA) + if (Device.type == DeviceType.CUDA) Model.cuda(); using (var ch = Host.Start("Initialize Tokenizer")) Tokenizer = TokenizerExtensions.GetInstance(ch); diff --git a/src/Microsoft.ML.TorchSharp/TorchSharpBaseTrainer.cs b/src/Microsoft.ML.TorchSharp/TorchSharpBaseTrainer.cs index 8f117a6b6..07e7abc75 100644 --- a/src/Microsoft.ML.TorchSharp/TorchSharpBaseTrainer.cs +++ b/src/Microsoft.ML.TorchSharp/TorchSharpBaseTrainer.cs @@ -158,7 +158,7 @@ namespace Microsoft.ML.TorchSharp Device = TorchUtils.InitializeDevice(Parent.Host); // Move to GPU if we are running there - if (Device == CUDA) + if (Device.type == DeviceType.CUDA) Model.cuda(); } @@ -395,7 +395,7 @@ namespace Microsoft.ML.TorchSharp Model = model; - if (Device == CUDA) + if (Device.type == DeviceType.CUDA) Model.cuda(); } diff --git a/test/Microsoft.ML.TensorFlow.Tests/Properties/AssemblyInfo.cs b/test/Microsoft.ML.TensorFlow.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..70da298f7 --- /dev/null +++ b/test/Microsoft.ML.TensorFlow.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,7 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Xunit; + +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/test/Microsoft.ML.TensorFlow.Tests/TensorflowTests.cs b/test/Microsoft.ML.TensorFlow.Tests/TensorflowTests.cs index 38b3ab97e..665be6036 100644 --- a/test/Microsoft.ML.TensorFlow.Tests/TensorflowTests.cs +++ b/test/Microsoft.ML.TensorFlow.Tests/TensorflowTests.cs @@ -23,9 +23,8 @@ using Xunit.Abstractions; using static Microsoft.ML.DataOperationsCatalog; using InMemoryImage = Microsoft.ML.Tests.ImageTests.InMemoryImage; -namespace Microsoft.ML.Scenarios +namespace Microsoft.ML.TensorFlow.Scenarios { - internal sealed class TensorFlowScenariosTestsFixture : IDisposable { public static string tempFolder; @@ -57,7 +56,6 @@ namespace Microsoft.ML.Scenarios } } - [Collection("NoParallelization")] public sealed class TensorFlowScenariosTests : BaseTestClass, IClassFixture { private readonly string _fullImagesetFolderPath; diff --git a/test/Microsoft.ML.Tests/Microsoft.ML.Tests.csproj b/test/Microsoft.ML.Tests/Microsoft.ML.Tests.csproj index 57b7dd333..dc4308968 100644 --- a/test/Microsoft.ML.Tests/Microsoft.ML.Tests.csproj +++ b/test/Microsoft.ML.Tests/Microsoft.ML.Tests.csproj @@ -56,12 +56,6 @@ - - - PreserveNewest - - - @@ -69,8 +63,4 @@ - - - - diff --git a/test/Microsoft.ML.Tests/Properties/AssemblyInfo.cs b/test/Microsoft.ML.Tests/Properties/AssemblyInfo.cs index 763d3090a..0f7ea11ef 100644 --- a/test/Microsoft.ML.Tests/Properties/AssemblyInfo.cs +++ b/test/Microsoft.ML.Tests/Properties/AssemblyInfo.cs @@ -3,6 +3,3 @@ // See the LICENSE file in the project root for more information. using Xunit; - -// TODO: [TEST_STABILITY] disable test parallelization for this assembly as running test in parallel sometimes cause test host process to crash -[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/test/Microsoft.ML.Tests/Data/github-issues-train.tsv b/test/Microsoft.ML.TorchSharp.Tests/Data/github-issues-train.tsv similarity index 100% rename from test/Microsoft.ML.Tests/Data/github-issues-train.tsv rename to test/Microsoft.ML.TorchSharp.Tests/Data/github-issues-train.tsv diff --git a/test/Microsoft.ML.TorchSharp.Tests/Microsoft.ML.TorchSharp.Tests.csproj b/test/Microsoft.ML.TorchSharp.Tests/Microsoft.ML.TorchSharp.Tests.csproj index 32d6552e6..4d7de3e37 100644 --- a/test/Microsoft.ML.TorchSharp.Tests/Microsoft.ML.TorchSharp.Tests.csproj +++ b/test/Microsoft.ML.TorchSharp.Tests/Microsoft.ML.TorchSharp.Tests.csproj @@ -3,6 +3,9 @@ Microsoft.ML.TorchSharp.Tests Test + + None + @@ -23,7 +26,7 @@ - + diff --git a/test/Microsoft.ML.TorchSharp.Tests/NerTests.cs b/test/Microsoft.ML.TorchSharp.Tests/NerTests.cs index 3746cc87d..1b952b8e2 100644 --- a/test/Microsoft.ML.TorchSharp.Tests/NerTests.cs +++ b/test/Microsoft.ML.TorchSharp.Tests/NerTests.cs @@ -11,9 +11,8 @@ using Microsoft.ML.TorchSharp.NasBert; using Xunit; using Xunit.Abstractions; -namespace Microsoft.ML.Tests +namespace Microsoft.ML.TorchSharp.Tests { - [Collection("NoParallelization")] public class NerTests : TestDataPipeBase { public NerTests(ITestOutputHelper output) : base(output) diff --git a/test/Microsoft.ML.TorchSharp.Tests/ObjectDetectionTests.cs b/test/Microsoft.ML.TorchSharp.Tests/ObjectDetectionTests.cs index c36156d19..072768f71 100644 --- a/test/Microsoft.ML.TorchSharp.Tests/ObjectDetectionTests.cs +++ b/test/Microsoft.ML.TorchSharp.Tests/ObjectDetectionTests.cs @@ -14,7 +14,7 @@ using Microsoft.ML.TorchSharp.AutoFormerV2; using Microsoft.ML.Runtime; using System.Collections.Generic; -namespace Microsoft.ML.Tests +namespace Microsoft.ML.TorchSharp.Tests { [Collection("NoParallelization")] diff --git a/test/Microsoft.ML.TorchSharp.Tests/Properties/AssemblyInfo.cs b/test/Microsoft.ML.TorchSharp.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..70da298f7 --- /dev/null +++ b/test/Microsoft.ML.TorchSharp.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,7 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Xunit; + +[assembly: CollectionBehavior(DisableTestParallelization = true)] diff --git a/test/Microsoft.ML.TorchSharp.Tests/QATests.cs b/test/Microsoft.ML.TorchSharp.Tests/QATests.cs index 8684ce0a9..f1b8d9d77 100644 --- a/test/Microsoft.ML.TorchSharp.Tests/QATests.cs +++ b/test/Microsoft.ML.TorchSharp.Tests/QATests.cs @@ -10,9 +10,8 @@ using Microsoft.ML.TorchSharp; using Xunit; using Xunit.Abstractions; -namespace Microsoft.ML.Tests +namespace Microsoft.ML.TorchSharp.Tests { - [Collection("NoParallelization")] public class QATests : TestDataPipeBase { public QATests(ITestOutputHelper output) : base(output) diff --git a/test/Microsoft.ML.TorchSharp.Tests/TextClassificationTests.cs b/test/Microsoft.ML.TorchSharp.Tests/TextClassificationTests.cs index 0a00cb104..1493c4d70 100644 --- a/test/Microsoft.ML.TorchSharp.Tests/TextClassificationTests.cs +++ b/test/Microsoft.ML.TorchSharp.Tests/TextClassificationTests.cs @@ -15,9 +15,8 @@ using Microsoft.ML.TorchSharp.NasBert; using Xunit; using Xunit.Abstractions; -namespace Microsoft.ML.Tests +namespace Microsoft.ML.TorchSharp.Tests { - [Collection("NoParallelization")] public class TextClassificationTests : TestDataPipeBase { public TextClassificationTests(ITestOutputHelper output) : base(output) @@ -172,7 +171,7 @@ namespace Microsoft.ML.Tests var mlContext = new MLContext(); mlContext.GpuDeviceId = 0; mlContext.FallbackToCpu = false; - var df = DataFrame.LoadCsv(@"Data\github-issues-train.tsv", separator: '\t', header: true, columnNames: new[] { "ID", "Label", "Title", "Description" }); + var df = DataFrame.LoadCsv(GetDataPath("github-issues-train.tsv"), separator: '\t', header: true, columnNames: new[] { "ID", "Label", "Title", "Description" }); var trainTestSplit = mlContext.Data.TrainTestSplit(df, testFraction: 0.2); var pipeline = mlContext.Transforms.Conversion.MapValueToKey("Label") diff --git a/test/data/github-issues-train.tsv b/test/data/github-issues-train.tsv new file mode 100644 index 000000000..fece6f3f6 --- /dev/null +++ b/test/data/github-issues-train.tsv @@ -0,0 +1,13030 @@ +ID Area Title Description +17 area-System.Xml Some XPath.XDocument tests are failing Some XPath.XDocument queries have different results than other XPath navigators. This might be an old behavior or newly introduced bug. Failing tests: build /p=IncludeTraits=ActiveIssue=17 +20 area-System.Xml 2 XPath.XDocument tests fail because of lacking feature "XPath.XDocument navigator doesn't support MoveToId(string). Verify if this was ever supported. If it was, verify if we want to support it in the future. If it wasn't move the tests to a different file and remove them from XPath.XDocument.Tests project. Failing tests: NodeSetFunctionsTest2267 MatchesTest2352 " +22 area-System.Numerics Two Numerics Tests are failing only on our CI server Two of the tests in our System.Numerics.Vectors suite are failing only on our CI build server, and potentially only intermittently: Vector2NormalizeTest1 Vector4NormalizeTest2 Given that these are very similar to other tests which cover a similar edge-case (especially the Vector3 normalization tests, which aren't failing), we will need to investigate why these tests in particular are failing on our build server. This may have been a point-in-time issue as we brought up our build infrastructure, and may not re-surface again. +36 area-System.Numerics SIMD test failures on non-ENU configurations. After pulling both of @adamralph 's pull requests #31 and #32, I'm continuing to see test failures for SIMD on a DEU (German) test environment. Here's a representative error: d:\oss\corefx\src\System.Numerics.Vectors\tests\GenericVectorTests.cs(545): error : System.Numerics.Tests.GenericVe ctorTests.ToStringCurrencySByte: Assert.Equal() Failure\r\nPosition: First difference is at position 8\r\nExpected: <97,00 ?, -108,00 ?, 22,00 ?, 29,00 ?, 49,00 ?, 60,00 ?, 103,00 ?, 58,00 ?, -62,00 ?, -124,00 ?, -117,00 ?, 48,00 ?, 15,00 ?, -35,00 ?, -13,00 ?, -34,00 ?>\r\nActual: <97,00 ?. -108,00 ?. 22,00 ?. 29,00 ?. 49,00 ?. 60,00 ?. 103 ,00 ?. 58,00 ?. -62,00 ?. -124,00 ?. -117,00 ?. 48,00 ?. 15,00 ?. -35,00 ?. -13,00 ?. -34,00 ?> [D:\oss\corefx\bin\ tools\fxbuild.proj] Observe that expected separates elements with a comma, actual separates elements with a dot. +41 area-System.Numerics Quaternion operator overloads should be using the respective methods Quaternion declares a handful of methods to perform addition, subtraction and multiplication, and provides the respective overloads for these operations. However, instead of re-using the `Add`, `Multiply` etc. methods, the code is re-written in the operator overloads. The operators should be using their respective methods rather than re-declaring the same code. This is under the assumption that the JIT inlines the methods when they are used in the operator overloads. +49 area-Infrastructure Add Linux/Mac build script A `build.sh` should be added alongside `build.cmd` to build corefx on Linux/Mac. +50 area-System.Numerics Made Quarternion's operator overloads use their respective methods "Operator overloads of Quaternion now utilize their respective methods, and removed redundant ""this"" qualifiers in Quaternion constructor. " +52 area-Meta ReferenceSource repo license incorrect for individual files some of the files I looked up, it has header comment with Apache 2.0 license. which license should apply for those files? MIT or Apache 2.0 +54 area-System.Xml "Remove always true ""if"" and unreachable code in System.Xml.Linq.XObject.SkipNotify method." "This: if (o.Annotations() != null) is always true because the above while can finish only in two conditions: when o != null or when o.annotations == null. The first condition will be catched by "" if (o == null)"" and if the second one is true, ""o.Annotations() != null"" will also always be true i think. " +55 area-System.Xml [Issue 54] Removed always-true if and unreachable code in XObject.cs Removed always-true if and unreachable code in XObject.cs +58 area-System.Xml System.Xml.sln fails to build on Mono, error CS0433 **I know that cross-platform support is coming later, I just thought it might make sense to document this here in case someone else tries the same** Building System.Xml.sln with xbuild on Mono doesn't work (the other solutions build fine), it throws the following errors: ``` Build FAILED. Errors: /home/alexander/dev/corefx/src/System.Xml.sln (default targets) -> (Build target) -> /home/alexander/dev/corefx/src/System.Xml.XPath.XDocument/System.Xml.XPath.XDocument.csproj (default targets) -> /usr/lib/mono/4.5/Microsoft.CSharp.targets (CoreCompile target) -> System/Xml/XPath/XAttributeExtensions.cs(10,56): error CS0433: The imported type `System.Xml.Linq.XAttribute' is defined multiple times System/Xml/XPath/XAttributeExtensions.cs(10,78): error CS0433: The imported type `System.Xml.Linq.XNamespace' is defined multiple times System/Xml/XPath/XDocumentExtensions.cs(22,61): error CS0433: The imported type `System.Xml.Linq.XNode' is defined multiple times System/Xml/XPath/XObjectExtensions.cs(10,23): error CS0433: The imported type `System.Xml.Linq.XContainer' is defined multiple times System/Xml/XPath/XObjectExtensions.cs(10,49): error CS0433: The imported type `System.Xml.Linq.XObject' is defined multiple times System/Xml/XPath/XNodeNavigator.cs(48,9): error CS0433: The imported type `System.Xml.Linq.XElement' is defined multiple times System/Xml/XPath/XNodeNavigator.cs(784,35): error CS0433: The imported type `System.Xml.Linq.XText' is defined multiple times ``` It looks like it runs into a conflict with the System.Xml.Linq library in the Mono GAC. Needs further investigation. +69 area-Infrastructure build.cmd does not build solution on HP laptop (when Platform=MCD is pre-set) "I've got HP laptop with windows 7. When I run build.cmd, I've got the error ""configuration is invalid"" ``` C:\Projects\dotnet\corefx>build.cmd C:\Projects\dotnet\corefx\src\System.Collections.Immutable.sln.metaproj : error MSB4126: указанная конфигурация решения ""Release|MCD"" недопустима. Укажите допустимую конфигурац ию решения с помощью свойств Configuration и Platform (например, MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform=""Any CPU"") или оставьте эти свойства пустыми, чтобы использовать конфигурацию решения по умолчанию. [C:\Projects\dotnet\corefx\src\System.Collections.Immutable.sln] ``` The reason of this error is that environment variable `Platform` is set to `MCD` on the laptop by default. I have to change build command in the build.cmd by adding `/p:Platform=""Any CPU""` to compile the project. Build script should check for allowed platforms and generate user-friendly error message, which says what to do to successfully compile the project when the platform is not supported. " +70 area-Meta Hello, World! sample "Feature request: please add ""Hello, World!"" sample, which shows how to use .NET Core with user applications. " +71 area-System.Numerics Behaviour of `Quaternion.CreateFromAxisAngle` when axis is not a unit vector "The resulting quaternion depends on the length of `axis`. This does not describe a rotation and thus does not match the documentation. There are a few ways to handle this issue: 1. Normalize `axis`, but this incurs a performance hit 2. Add a precondition that `axis.Length()` ≈ 1. But enforcing that pre-condition is about as expensive as 1), so it'd probably need to be a documentation-only precondition. Unfortunately this means that consumers will rely on the current behaviour even if it's undocumented, so I don't think that this is a good solution. 3. Document the current behaviour --- Just for convenience, the relevant source code: ``` /// /// Creates a Quaternion from a vector and an angle to rotate about the vector. /// /// The vector to rotate around. /// The angle, in radians, to rotate around the vector. /// The created Quaternion. public static Quaternion CreateFromAxisAngle(Vector3 axis, float angle) { Quaternion ans; float halfAngle = angle * 0.5f; float s = (float)Math.Sin(halfAngle); float c = (float)Math.Cos(halfAngle); ans.X = axis.X * s; ans.Y = axis.Y * s; ans.Z = axis.Z * s; ans.W = c; return ans; } ``` " +72 area-System.Numerics `Equals` with NaN values (IEEE vs. reflexivity) The built in floating point types compare `NaN` as unequal when using `==` and `!=` (following IEEE semantics) but compare it as equal when using the `Equals` method. Your floating point based types currently use IEEE semantics even for `Equals`. I suggest using the same behaviour as the built in types in your floating point based types like vectors or quaternions. The MSDN documentation of `Equals` contains an exception that allows `A.Equals(A)` to return false on floating point types, so you don't strictly violate its contract. But returning false still breaks hash tables and does not match the behaviour of the built in types, so I consider it a bad idea. This can be avoided by calling `Equals` on the members instead of `==` in the implementation of `Equals` but not in `==` and `!=`. For example with quaternion, replace ``` public bool Equals(Quaternion other) { return (X == other.X && Y == other.Y && Z == other.Z && W == other.W); } ``` with ``` public bool Equals(Quaternion other) { return (X.Equals(other.X) && Y.Equals(other.Y) && Z.Equals(other.Z) && W.Equals(other.W)); } ``` You might want to add tests that check that `==` and `!=` compare all the above cases as unequal, so that they match the IEEE specification. Replace: ``` // Counterintuitive result - IEEE rules for NaN comparison are weird! Assert.False(a.Equals(a)); Assert.False(b.Equals(b)); Assert.False(c.Equals(c)); Assert.False(d.Equals(d)); ``` with: ``` // Equals does not follow IEEE semantics since many consumers rely on equality being reflexive. // This includes collections like `Dictionary` or `HashSet` Assert.True(a.Equals(a)); Assert.True(b.Equals(b)); Assert.True(c.Equals(c)); Assert.True(d.Equals(d)); // Counterintuitive result - IEEE rules for NaN comparison are weird! Assert.False(a == a); Assert.False(b == b); Assert.False(c == c); Assert.False(d == d); Assert.True(a != a); Assert.True(b != b); Assert.True(c != c); Assert.True(d != d); ``` +77 area-System.Xml Some Xml encoding tests lost their encoding Some of Xml tests were testing problematic characters in different Encoding (like Russian characters). At some point few years back the encoding was lost while moving between different repos. Tests pass because .cs files lost their encoding too. Tests need to be rewritten since there is no trace of original copy +81 area-System.Xml Add test coverage for XPath and XDocument - Adding test coverage for XPath implementations (XPath.XPathDocument, XPath.XmlDocument, XPath.XDocument) - Adding some tests for XDocument (more coming later) +94 area-Meta Necessary bits for Mono.Posix I tried to build [Mono.Posix](https://github.com/mono/mono/tree/master/mcs/class/Mono.Posix) against aspnetcore50 and found a lot of API that mono uses to be missing from .NET Core most prominently in the Interop-domain (like CustomMarshaler). Please add Mono.Posix to your list of scenarios that can benefit from the API surface of .NET Core. +110 area-System.Xml Add async document/element loading for XLinq. Adds XElement.LoadAsync and XDocument.LoadAsync. Code from the sync versions has been largely lifted out so they can share an implementation as much as possible. +116 area-System.Numerics Quaternion and public fields Is there a reason that the Quaternion struct has public exposed fields versus read only properties? Seems to be against the general guidelines for structs and immutability. Why would you want to allow X, Y, Z and W to be set outside of the ctor? +118 area-System.Numerics Matrix4x4 - more useful public properties Forward, Backward, Up, Down, Left, Right public properties for Matrix4x4 +119 area-System.Numerics Vector3 - more public static properties Up, Down, Left, Right, Forward, Backward vector public static properties +121 area-System.Numerics Matrix4x4 - more useful public properties Added Forward, Backward, Up, Down, Left, Right vectors public properties for Matrix4x4. Fix #118 +129 area-System.Xml Add XmlReader System.Xml.XmlReader is currently missing. +136 area-System.Xml XPath tests with expressions resulting in +/- infinity fail in Windows 10 "The following XPath tests fail for me on Windows 10 Technical Preview, build 9879: StringFunctionsTest2457 StringFunctionsTest2458 The call to Convert.ChangeType in XPathTests.Common.Utils.XPathObject is throwing a FormatException when the value passed is ""Infinity"" or ""-Infinity"". The tests pass for me on Windows 8.1. Each of these tests is part of 3 different test assemblies, resulting in 6 failures total: System.Xml.XPath.Tests.dll System.Xml.XPath.XDocument.Tests.dll System.Xml.XPath.XmlDocument.Tests.dll " +141 area-System.Numerics Added .ToArray() and .FromArray() for Vector types This commit adds Vector2.ToArray(), Vector2.FromArray(float[]), Vector3.ToArray(), Vector3.FromArray(float[]), Vector4.ToArray() and Vector4.FromArray(float[]). The FromArray method copies the array elements to a vector: the element at index 0 becomes X, the element at index 1 becomes Y and so on. The ToArray() method converts the vector to an array: it puts X at index 0, Y at index 1 and so on. These methods looked useful to me if you have an array but want to do vector operations. +142 area-System.Numerics Vector2 and Vector3 Projection The current source includes public static methods for reflection of a vector about a unit vector normal but the underlying vector projection is also useful by itself. Proposing: ``` C# public static Vector2 Project(Vector2 vector, Vector2 component) { ... } //... public static Vector3 Project(Vector3 vector, Vector3 component) { ... } ``` I'll wait for feed back before trying to submit a pull request. +144 area-Infrastructure All the linked files are in the root folder of the XML projects. When you reference files outside the project directory, such as the common directory in the XML code case, these links by default show up in the root of the project in VS which is very annoying and clutters the solution unnecessarily. We should add the appropriate metadata to these Compile items so that VS will group them correctly in the solution explorer. +149 area-System.Xml Wrong named tests in System.Xml.XmlDocument "- The files NodeChangingTests.cs, NodeChangedTests.cs, NodeInsertingTests.cs and NodeInsertedTests.cs contain test cases called ""RemoveEventHandler"". No test uses a ""Remove""-event. Maybe a Copy&Paste mistake from file NodeRemovedTests.cs. - The files NodeChangingTests.cs and NodeChangedTests.cs contain test cases called ""RemoveNode"" but testing a change of a node. " +156 area-System.Numerics Private static read only fields for Vectors Private static read only fields for One, Zero and Unit vectors on Vector2, Vector3 and Vector4. +157 area-System.Numerics Alternative versions of methods for Vectors and Matrices "Would be helpful to have alternative versions of methods with ""out"" parameter as result. Example: this ```C# public static Matrix CreateFromQuaternion(Quaternion quaternion) { ... } ``` and that ```C# public static void CreateFromQuaternion(ref Quaternion quaternion, out Matrix result) { ... } ``` What do you think guys? Do you want to add that? " +176 area-System.Linq System.Linq.Parallel Tests are Failing on AppVeyor Machines The following 5 tests are failing (some intermittently) on our AppVeyor CI builds. I haven't investigated deeply, but I suspect it has to do with the limited hardware that the VM's are equipped with. Some of the test explicitly test whether multiple threads are created, which might not even be the case in an underpowered VM. +181 area-System.Linq Removes unnecessary object allocations because of delegates "I introduced several singletons to store delegate instances to avoid unnecessary object allocation in generic methods. #### For example `ParallelEnumerable.PerformAggregation()` method **Before:** ``` csharp private static T PerformAggregation(this ParallelQuery source, Func reduce, T seed, bool seedIsSpecified, bool throwIfEmpty, QueryAggregationOptions options) { Contract.Assert(source != null); Contract.Assert(reduce != null); Contract.Assert(options.IsValidQueryAggregationOption(), ""enum is out of range""); AssociativeAggregationOperator op = new AssociativeAggregationOperator( source, seed, null, seedIsSpecified, reduce, reduce, delegate (T obj) { return obj; }, throwIfEmpty, options); return op.Aggregate(); } ``` ``` IL_0000: nop IL_0001: ldarg.0 IL_0002: ldarg.2 IL_0003: ldnull IL_0004: ldarg.3 IL_0005: ldarg.1 IL_0006: ldarg.1 IL_0007: ldnull IL_0008: ldftn !!0 System.Linq.ParallelEnumerable::'b__e'(!!0) >>> IL_000e: newobj instance void class [System.Runtime]System.Func`2::.ctor(object, native int) IL_0013: ldarg.s throwIfEmpty IL_0015: ldarg.s options IL_0017: newobj instance void class System.Linq.Parallel.AssociativeAggregationOperator`3::.ctor(class [System.Runtime]System.Collections.Generic.IEnumerable`1, !1, class [System.Runtime]System.Func`1, bool, class [System.Runtime]System.Func`3, class [System.Runtime]System.Func`3, class [System.Runtime]System.Func`2, bool, valuetype System.Linq.Parallel.QueryAggregationOptions) IL_001c: stloc.0 IL_001d: ldloc.0 IL_001e: callvirt instance !2 class System.Linq.Parallel.AssociativeAggregationOperator`3::Aggregate() IL_0023: stloc.1 IL_0024: br.s IL_0026 IL_0026: ldloc.1 IL_0027: ret ``` **After:** ``` csharp private static T PerformAggregation(this ParallelQuery source, Func reduce, T seed, bool seedIsSpecified, bool throwIfEmpty, QueryAggregationOptions options) { Contract.Assert(source != null); Contract.Assert(reduce != null); Contract.Assert(options.IsValidQueryAggregationOption(), ""enum is out of range""); AssociativeAggregationOperator op = new AssociativeAggregationOperator( source, seed, null, seedIsSpecified, reduce, reduce, IdentityFunction.Instance, throwIfEmpty, options); return op.Aggregate(); } ``` ``` IL_0000: nop IL_0001: ldarg.0 IL_0002: ldarg.2 IL_0003: ldnull IL_0004: ldarg.3 IL_0005: ldarg.1 IL_0006: ldarg.1 >>> IL_0007: ldsfld class [System.Runtime]System.Func`2 class System.Linq.IdentityFunction`1::Instance IL_000c: ldarg.s throwIfEmpty IL_000e: ldarg.s options IL_0010: newobj instance void class System.Linq.Parallel.AssociativeAggregationOperator`3::.ctor(class [System.Runtime]System.Collections.Generic.IEnumerable`1, !1, class [System.Runtime]System.Func`1, bool, class [System.Runtime]System.Func`3, class [System.Runtime]System.Func`3, class [System.Runtime]System.Func`2, bool, valuetype System.Linq.Parallel.QueryAggregationOptions) IL_0015: stloc.0 IL_0016: ldloc.0 IL_0017: callvirt instance !2 class System.Linq.Parallel.AssociativeAggregationOperator`3::Aggregate() IL_001c: stloc.1 IL_001d: br.s IL_001f IL_001f: ldloc.1 IL_0020: ret ``` Where `IdentityFunction` looks like ``` csharp internal class IdentityFunction { public static readonly Func Instance = Function; private static T Function(T arg) { return arg; } } ``` " +187 area-System.IO Can the System.IO namespace be modified to manipulate device handles? "This assumes the `System.IO` and 'Microsoft.Win32.SafeHandles' namespace are being open sourced in CoreFX. If not close this ticket. Right now if you do the following: ``` var handle = File.Open(""\\\\.\\Global\\ProcmonDebugLogger"", FileMode.Append); ``` You get an exception **FileStream will not open Win32 devices such as disk partitions and tape drives. Avoid use of ""\.\"" in the path.** If you want raw device access, you need to use P/Invoke. I propose the following: ``` public sealed class Microsoft.Win32.SafeHandles.SafeDeviceHandle: SafeHandleZeroOrMinusOneIsInvalid { . . . } public static Microsoft.Win32.SafeHandles.SafeFileHandle System.IO.File.OpenHandle(string path) { public bool DeviceIoControl( . . .) { . . . } } public static Microsoft.Win32.SafeHandles.SafeDeviceHandle System.IO.File.OpenDeviceHandle(string path) { . . .} ``` My use case for this would be to remove the [PInvoke functons from ProceMonDebugOutput](https://github.com/Wintellect/ProcMonDebugOutput/blob/master/Source/Sysinternals.Debug/NativeMethods.cs) by @JohnWintellect. " +195 area-System.Xml [System.Xml.XPath] Few tests fail sometimes fail because of NRE Few tests are failing in the same place because of NRE. Stack trace (RegressionTestsTest557): E:\oss\corefx\bin\tools\tests.targets(17,5): error : XPathTests.FunctionalTests.MiscellaneousCases.RegressionTestsTests.RegressionTestsTest557: System.NullReferenceException : Object reference not set to an instance of an object. [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XmlDocumentEx.GetNamespaceXml(XmlDocument xmlDocument)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.DocumentXPathNavigator.MoveToFirstNamespace(XPathNamespaceScope scope)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.NamespaceQuery.Advance()\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.Query.MoveNext()\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.Query.get_Count()\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.XPathSelectionIterator.get_Count()\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.Common.Utils.XPathNodesetTest(String xml, String testExpression, XPathResult expected, XmlNamespaceManager namespaceManager, String startingNodePath)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.FunctionalTests.MiscellaneousCases.RegressionTestsTests.RegressionTestsTest557() [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : XPathTests.FunctionalTests.CoreFunctionLibrary.StringFunctionsTests.StringFunctionsTest2465: System.NullReferenceException : Object reference not set to an instance of an object. [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XmlDocumentEx.GetNamespaceXml(XmlDocument xmlDocument)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.DocumentXPathNavigator.MoveToNextNamespace(XPathNamespaceScope scope)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.NamespaceQuery.Advance()\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.ForwardPositionQuery.Evaluate(XPathNodeIterator context)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.BaseAxisQuery.Evaluate(XPathNodeIterator nodeIterator)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.MergeFilterQuery.Evaluate(XPathNodeIterator nodeIterator)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XPath.XPathNavigator.Evaluate(XPathExpression expr, XPathNodeIterator context)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XPath.XPathNavigator.Evaluate(XPathExpression expr)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XPath.XPathNavigator.Select(XPathExpression expr)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.Common.Utils.CreateNavigator(String xml, String startingNodePath, XmlNamespaceManager namespaceManager)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.Common.Utils.XPathObject[T](String xml, String testExpression, XmlNamespaceManager namespaceManager, String startingNodePath)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.Common.Utils.XPathStringTest(String xml, String testExpression, Object expected, XmlNamespaceManager namespaceManager, String startingNodePath)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.FunctionalTests.CoreFunctionLibrary.StringFunctionsTests.StringFunctionsTest2465() [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : XPathTests.FunctionalTests.Location.Paths.Axes.ComplexExpressionsTests.ComplexExpressionsTest348: System.NullReferenceException : Object reference not set to an instance of an object. [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XmlDocumentEx.GetNamespaceXml(XmlDocument xmlDocument)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.DocumentXPathNavigator.MoveToNextNamespace(XPathNamespaceScope scope)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.NamespaceQuery.Advance()\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.Query.MoveNext()\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.Query.get_Count()\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.XPathSelectionIterator.get_Count()\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.Common.Utils.XPathNodesetTest(String xml, String testExpression, XPathResult expected, XmlNamespaceManager namespaceManager, String startingNodePath)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.FunctionalTests.Location.Paths.Axes.ComplexExpressionsTests.ComplexExpressionsTest348() [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : XPathTests.FunctionalTests.Location.Paths.Predicates.UsingPositionFunctionTests.UsingPositionFunctionTest681: System.NullReferenceException : Object reference not set to an instance of an object. [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XmlDocumentEx.GetNamespaceXml(XmlDocument xmlDocument)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.DocumentXPathNavigator.MoveToNextNamespace(XPathNamespaceScope scope)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.NamespaceQuery.Advance()\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.MergeFilterQuery.Evaluate(XPathNodeIterator nodeIterator)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XPath.XPathNavigator.Evaluate(XPathExpression expr, XPathNodeIterator context)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XPath.XPathNavigator.Evaluate(XPathExpression expr)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XPath.XPathNavigator.Select(XPathExpression expr)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.Common.Utils.XPathNodesetTest(String xml, String testExpression, XPathResult expected, XmlNamespaceManager namespaceManager, String startingNodePath)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.FunctionalTests.Location.Paths.Predicates.UsingPositionFunctionTests.UsingPositionFunctionTest681() [E:\oss\corefx\bin\tools\fxbuild.proj] Stack trace (NodeSetFunctionsTest22100): E:\oss\corefx\bin\tools\tests.targets(17,5): error : XPathTests.FunctionalTests.CoreFunctionLibrary.NodeSetFunctionsTests.NodeSetFunctionsTest22100: System.NullReferenceException : Object reference not set to an instance of an object. [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XmlDocumentEx.GetNamespaceXml(XmlDocument xmlDocument)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.DocumentXPathNavigator.MoveToNextNamespace(XPathNamespaceScope scope)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.NamespaceQuery.Advance()\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.FilterQuery.Advance()\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at MS.Internal.Xml.XPath.MergeFilterQuery.Evaluate(XPathNodeIterator nodeIterator)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XPath.XPathNavigator.Evaluate(XPathExpression expr, XPathNodeIterator context)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XPath.XPathNavigator.Evaluate(XPathExpression expr)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at System.Xml.XPath.XPathNavigator.Select(XPathExpression expr)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.Common.Utils.CreateNavigator(String xml, String startingNodePath, XmlNamespaceManager namespaceManager)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.Common.Utils.XPathObject[T](String xml, String testExpression, XmlNamespaceManager namespaceManager, String startingNodePath)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.Common.Utils.XPathStringTest(String xml, String testExpression, Object expected, XmlNamespaceManager namespaceManager, String startingNodePath)\r [E:\oss\corefx\bin\tools\fxbuild.proj] E:\oss\corefx\bin\tools\tests.targets(17,5): error : at XPathTests.FunctionalTests.CoreFunctionLibrary.NodeSetFunctionsTests.NodeSetFunctionsTest22100() [E:\oss\corefx\bin\tools\fxbuild.proj] +201 area-System.Numerics Vector2/Vector3 could implement operator overloads For the sake of intuitive use, Vector2 and Vector3's `Public operator methods` could be extended with actual operator overloads. This promotes intuitive usage where `var vec = vecA * vecB;` is assumed to be more programmer-friendly than `var vec = Vector3.Multiply(vecA, vecB);`. I'm looking forward to your thoughts. +218 area-System.Console Add tests for System.Console library +219 area-System.Runtime Consider adding API to return common Funcs and Actions without reallocating See pull request #181: In that case, caching was proposed for System.Linq.Parallel. This means that other libraries can't share the same cache (which can grow by the number of generic instantiations). Furthermore, since the actual call sites affected in PLINQ were already allocating considerably, it is doubtful that PLINQ would benefit from the optimization. We should study if we can design public API in the BCL in the same vein as the new `Array.Empty().` _Before_ we do this, we should: 1. Gather data about how many places we have across the stack that would benefit from these shared allocations and find use cases in more compelling places than PLINQ. 2. Design the API. We can use this issue to discuss and evolve it in to a mini-spec. Here's an idea just to get that ball rolling on that. ``` C# namespace System { public static class CommonAction { public static Action Empty { get; } } public static class CommonFunc { public static Func AlwaysTrue(); public static Func Identity(); public static Func IsInstanceOf(); public static Func Cast(); } } ``` +220 area-System.Console Fix /property:OS=Unix build of System.Console Some resource strings got lost in the move to GitHub. There was also an inconsistency with the available NuGet packages and where SafeHandle lives. +221 area-System.Numerics Fix vector tests warnings about obsolete Marshal.SizeOf The System.Numerics.Vectors tests were causing build warnings like the following: ``` C# Vector2Tests.cs(15,29): warning CS0618: 'System.Runtime.InteropServices.Marshal.SizeOf(System.Type)' is obsolete: 'SizeOf(Type) may be unavailable in future releases. Instead, use SizeOf(). ``` This changes does exactly that. +224 area-System.Console Implement simple console foreground/background color scoping via IDisposable "Just a simple API evolution that allows the developer to ""scope"" his color updates. Can be used like that : ``` csharp static void Main(string[] args) { Console.WriteLine(""Default""); using (Console.UseBackgroundColor(ConsoleColor.Red)) { Console.WriteLine(""Background red""); using (Console.UseForegroundColor(ConsoleColor.Green)) { Console.WriteLine(""Foreground green""); using (Console.UseForegroundColor(ConsoleColor.Yellow)) { Console.WriteLine(""Foreground yellow""); } Console.WriteLine(""Foreground green""); using (Console.UseBackgroundColor(ConsoleColor.Blue)) { Console.WriteLine(""Background blue""); } Console.WriteLine(""Background red""); } } Console.WriteLine(""Default""); } ``` And outputs like that : ![image](https://cloud.githubusercontent.com/assets/1341236/5394321/69d6a080-813c-11e4-95e9-98856de8555a.png) " +227 area-System.Text Added System.Text.RegularExpressions source This adds the product source code for the System.Text.RegularExpressions library. The tests will require the CoreCLR test runner to execute, so those will be added once the runner is available. +228 area-System.Xml Some tests are failing because of lacking System.String.Format overload build /p=IncludeTraits=ActiveIssue=228 Example tests Test Name: NameWithWhitespace Test FullName: XmlDocumentTests.XmlDocumentTests.CreateElementTests.NameWithWhitespace Test Source: e:\oss\corefx\src\System.Xml.XmlDocument\tests\XmlDocumentTests\CreateElementTests.cs : line 90 Test Outcome: Failed Test Duration: 0:00:00.091 Result Message: Assert.Throws() Failure Expected: typeof(System.Xml.XmlException) Actual: typeof(System.MissingMethodException): Method not found: 'System.String System.String.Format(System.IFormatProvider, System.String, System.Object)'. Result StackTrace: at System.Xml.XmlExceptionHelper.BuildCharExceptionArgs(Char invChar, Char nextChar) at System.Xml.XmlExceptionHelper.BuildCharExceptionArgs(String data, Int32 invCharIndex) in e:\oss\corefx\src\Common\src\System\Xml\ValidateNames.cs:line 349 at System.Xml.XmlDocument.CheckName(String name) in e:\oss\corefx\src\System.Xml.XmlDocument\src\System\Xml\Dom\XmlDocument.cs:line 110 at System.Xml.XmlElement..ctor(XmlName name, Boolean empty, XmlDocument doc) in e:\oss\corefx\src\System.Xml.XmlDocument\src\System\Xml\Dom\XmlElement.cs:line 22 at System.Xml.XmlDocument.CreateElement(String prefix, String localName, String namespaceURI) in e:\oss\corefx\src\System.Xml.XmlDocument\src\System\Xml\Dom\XmlDocument.cs:line 713 at System.Xml.XmlDocument.CreateElement(String name) in e:\oss\corefx\src\System.Xml.XmlDocument\src\System\Xml\Dom\XmlDocument.cs:line 492 at XmlDocumentTests.XmlDocumentTests.CreateElementTests.<>c__DisplayClass10.b__c() in e:\oss\corefx\src\System.Xml.XmlDocument\tests\XmlDocumentTests\CreateElementTests.cs:line 92 +230 area-Meta XML Documentation comments not included "I was looking through the recently added Regex code and noticed that a lot of XML documentation summaries are not there, but they do show up in the .NET Framework documentation. Are the comments stored in an external file? If so, isn't it better to include them in the code or provide the external files? Some people would like to compile the libraries themselves and they would be missing a lot of inline documentation. **Example** _.NET Framework_ ![Documentation](http://i.imgur.com/ySqyI81.png) _.NET Core_ ![No Documentation](http://i.imgur.com/RvBK6fh.png) " +231 area-System.Text Improve performance of Regex ctor and IsMatch "The Regex class maintains a cache of byte codes, which the Regex ctor indexes into using a key. It uses this seemingly innocuous line to create that key: ``` C# String key = ((int)options).ToString(NumberFormatInfo.InvariantInfo) + "":"" + cultureKey + "":"" + pattern; ``` This, however, has the unfortunate effect of allocating a string for the options, a string array for the five strings to be passed to the String.Concat call generated by the compiler, another string array allocation inside of Concat, and then the resulting string for the whole operation. The cost of those allocations is causing a non-trivial slowdown for repeated Regex.IsMatch calls for simple regular expressions, such as for a phone number (e.g. from the MSDN docs ""^\d{3}-\d{3}-\d{4}$""). This commit adds a new struct key type that just stores the constitutent options, cultureKey, and pattern, rather than creating a string to store them. That key is then what's stored in each entry in the cache. For repeated Regex.IsMatch calls for basic regular expressions like the phone number one previously mentioned, on my machine this improves throughput by ~35%, in large part due to an ~80% reduction in number of allocations, and (for this particular test case) an ~70% reduction in number of bytes allocated (it depends primarily on the length of the pattern and the length of the culture name). " +234 area-System.Numerics Some System.Numerics.Vector tests are disabled without comment build /p:IncludeTraits=ActiveIssue=234 +235 area-System.Linq Some System.Linq.Parallel tests are disabled without comment build /p:IncludeTraits=ActiveIssue=235 +240 area-System.Linq Some System.Linq.Parallel tests are super slow on CI Deadlock or super slow build /p:IncludeTraits=ActiveIssue=240 +241 area-System.Linq Fix multiple projects for optimizations, debug/trace, etc. System.Linq.Parallel.csproj wasn't outputting symbols, and it didn't have optimizations enabled in Release. System.Numerics.Vectors.csproj was setting TRACE in Release builds but not in Debug builds. System.Text.RegularExpressions.csproj wasn't setting either DEBUG nor RELEASE constants in either Debug/Release builds, it didn't have optimizations enabled in Release, and it wasn't generating symbols in either. The XML libraries were't setting DEBUG/TRACE in either Debug/Release builds, weren't enabling optimizations in Release builds, and weren't generating symbols in either. DEBUG is important in almost all of these libraries, as they use Debug.\* for asserts and the like. Symbol generation is important for debugging. Optimizations are obviously important (but just to verify I saw significant performance wins in multiple libraries just from turning this on in release). TRACE isn't really important, as none of the libraries do release tracing, but I thought it good hygiene to enable it. +247 area-Meta Add Security transparency Since Code Access Security is a thing of the past with .NET Core, I wouldn't expect permissions or security attributes to be used (or even to exist). I didn't see permissions anywhere in the current code: they seem to have be completely removed from .NET Core as expected. However, [several committed files](https://github.com/dotnet/corefx/search?q=SecurityCritical+OR+SecuritySafeCritical&type=Code) still use `SecurityCriticalAttribute` or `SecuritySafeCriticalAttribute`. Is this a left-over from the .NET framework code? I expect so, since they mean nothing without permission checks. If this is intended, what are the guidelines about using them? +249 area-System.Collections Memory allocation documentation for ImmutableDictionary Keys and Values ## Background As described in #246 (and previously in #147), the `Keys` and `Values` properties of `ImmutableDictionary` cannot be used without incurring memory allocations on the heap. However, a slight modification of user code provides _equivalent_ behavior without these allocations. With allocations: ``` csharp foreach (var key in dictionary.Keys) { ... } ``` Without allocations: ``` csharp foreach (var pair in dictionary) { var key = pair.Key; } ``` ## Suggestion Since updating the `Keys` and `Values` properties to eliminate the allocations would be a breaking change (#246), the only recourse is to update the documentation for these properties to describe steps a user can take to avoid allocations if these properties are used heavily within a particular application. ## Caveat Care must be taken to ensure that the documentation does not read in a way that suggests the `Keys` and `Values` properties should not be used. The properties behave properly and would not be even a measurable source of time spent in the application in nearly all cases. This notice is only meant for users making heavy use of these properties who are also actively working to reduce the memory allocations performed within an especially performance-sensitive section of code. +251 area-System.Text Fix DEBUG constant name It looks like DBG was being used instead of DEBUG at System.Text.RegularExpressions. Was this on purpose? +252 area-System.Text Fix some more XML docs I know that the documentation will be updated eventually, but in the meanwhile we can have a few less compiler warnings if you guys agree. +253 area-System.Text Fix GetGroup never returning EmptyGroup This is a very obvious bug: _captureMap probably used to be a hashtable and the code was not properly refactored. I took the opportunity to redo the method using the Dictionary equivalent logic. Not adding unit tests for this, because the unit test project seems to be missing, and I'm not sure if you guys are going to add it or not, so let me know how to proceed. +254 area-System.Text Improve Dictionary access Just spotted this quick dictionary access optimization. +255 area-System.Text Improve Dictionary access +262 area-System.Reflection System.Reflection.Metadata should provide easier signature reading API **EDIT** 12/3/2015 - Replaced entire description with the detailed proposal matching PR #4809 Today, System.Reflection.Metadata provides low-level access to ECMA-335 CLI metadata, but only provides signatures as blobs that must be parsed with direct knowledge of the format as described in the section II.23.2 of the CLI specification. There is a `BlobReader` for reading various elements out of blobs, but it is up to the caller to read the right things at the right positions. This was by-design as the library is designed to sit at the lowest level behind the scenes of higher level API such as Reflection proper, Roslyn, or CCI. The challenge with signatures is that they are variable-length and encode tree structures, and each higher level model that could sit on top of System.Reflection.Metadata will have different representations for the trees. We do not want to introduce an API to build a fully-formed tree that then has to be traversed and rewritten to match the actual use case. This proposal is therefore a middle ground between: 1. Here are the bytes and some helpers. Read the spec to decode. (Status quo) 2. Yet another high-level metadata API. (Out-of-scope for this layer) It works as follows: 1. The caller chooses an arbitrary representation, `TType`, for type symbols and implements `ISignatureTypeProvider`. (See full API spec below). 2. Signatures are parsed by recursive descent and the provider is called to create new type nodes: - _Give me the `TType` that represents this primitive_ - _Give me the `TType` that represents this TypeDefinition_ - _Give me the `TType` that represents an array of this other TType_ - _etc._ # Sample Usage Given a suitable `TypeSymbol` and `TypeSymbolProvider : ISignatureTypeProvider`, here is code walking all of the `TypeSymbol`'s for every field, parameter, and return type: ``` C# using (var stream = File.OpenRead(pathToDll)) using (var peReader = new PEReader(stream)) { var reader = peReader.GetMetadataReader(); var provider = new TypeSymbolProvider(); foreach (TypeDefinitionHandle typeHandle in reader.TypeDefinitions) { TypeDefinition type = reader.GetTypeDefinition(typeHandle); foreach (FieldDefinitionHandle fieldHandle in type.GetFields()) { FieldDefinition field = reader.GetFieldDefinition(fieldHandle); TypeSymbol fieldType = field.DecodeSignature(provider); // ... } foreach (MethodDefinitionHandle methodHandle in type.GetMethods()) { MethodDefinition method = reader.GetMethodDefinition(methodHandle); MethodSignature methodSig = method.DecodeSignature(provider); TypeSymbol returnType = methodSig.ReturnType; // ... foreach (TypeSymbol parameterType in methodSig.ParameterTypes) { // ... } } } } ``` # Full API ## Additions to existing types These provide convenience entry points. There are other use cases where you want to parse only part of a signature or a signature that you did not obtain from the metadata reader. For that, the `SignatureDecoder` ``` C# namespace System.Reflection.Metadata { public struct FieldDefinition { public TType DecodeSignature( ISignatureTypeProvider provider, SignatureDecoderOptions options=SignatureDecoderOptions.None); } public struct MemberReference { public TType DecodeFieldSignature( ISignatureTypeProvider provider, SignatureDecoderOptions options=SignatureDecoderOptions.None); public MethodSignature DecodeMethodSignature( ISignatureTypeProvider provider, SignatureDecoderOptions options=SignatureDecoderOptions.None); // MemberReferenceKind GetKind(); already exists } public struct MethodDefinition { public MethodSignature DecodeSignature( ISignatureTypeProvider provider, SignatureDecoderOptions options=SignatureDecoderOptions.None); } public struct MethodSpecification { public ImmutableArray DecodeSignature( ISignatureTypeProvider provider, SignatureDecoderOptions options=SignatureDecoderOptions.None); } public struct PropertyDefinition { public MethodSignature DecodeSignature( ISignatureTypeProvider provider, SignatureDecoderOptions options=SignatureDecoderOptions.None); } public struct StandaloneSignature { public ImmutableArray DecodeLocalSignature( ISignatureTypeProvider provider, SignatureDecoderOptions options=SignatureDecoderOptions.None); public MethodSignature DecodeMethodSignature( ISignatureTypeProvider provider, SignatureDecoderOptions options=SignatureDecoderOptions.None); public StandaloneSignatureKind GetKind(); } public enum StandaloneSignatureKind { LocalVariables = 1, Method = 0, } public struct TypeSpecification { public TType DecodeSignature( ISignatureTypeProvider provider, SignatureDecoderOptions options=SignatureDecoderOptions.None); } } ``` ## New types ``` C# namespace System.Reflection.Metadata.Decoding { public struct ArrayShape { public ArrayShape(int rank, ImmutableArray sizes, ImmutableArray lowerBounds); public ImmutableArray LowerBounds { get; } public int Rank { get; } public ImmutableArray Sizes { get; } } public interface IConstructedTypeProvider : ISZArrayTypeProvider { TType GetArrayType(TType elementType, ArrayShape shape); TType GetByReferenceType(TType elementType); TType GetGenericInstance(TType genericType, ImmutableArray typeArguments); TType GetPointerType(TType elementType); } public interface IPrimitiveTypeProvider { TType GetPrimitiveType(PrimitiveTypeCode typeCode); } public interface ITypeProvider { TType GetTypeFromDefinition( MetadataReader reader, TypeDefinitionHandle handle, SignatureTypeHandleCode code); TType GetTypeFromReference( MetadataReader reader, TypeReferenceHandle handle, SignatureTypeHandleCode code); } public interface ISignatureTypeProvider : IConstructedTypeProvider, IPrimitiveTypeProvider, ITypeProvider { TType GetFunctionPointerType(MethodSignature signature); TType GetGenericMethodParameter(int index); TType GetGenericTypeParameter(int index); TType GetModifiedType( MetadataReader reader, bool isRequired, EntityHandle modifierTypeHandle, TType unmodifiedType); TType GetPinnedType(TType elementType); } public interface ISZArrayTypeProvider { TType GetSZArrayType(TType elementType); } public struct MethodSignature { public MethodSignature( SignatureHeader header, TType returnType, int requiredParameterCount, int genericParameterCount, ImmutableArray parameterTypes); public int GenericParameterCount { get; } public SignatureHeader Header { get; } public ImmutableArray ParameterTypes { get; } public int RequiredParameterCount { get; } public TType ReturnType { get; } } public enum PrimitiveTypeCode : byte { Boolean = (byte)2, Byte = (byte)5, Char = (byte)3, Double = (byte)13, Int16 = (byte)6, Int32 = (byte)8, Int64 = (byte)10, IntPtr = (byte)24, Object = (byte)28, SByte = (byte)4, Single = (byte)12, String = (byte)14, TypedReference = (byte)22, UInt16 = (byte)7, UInt32 = (byte)9, UInt64 = (byte)11, UIntPtr = (byte)25, Void = (byte)1, } public struct SignatureDecoder { public SignatureDecoder( ISignatureTypeProvider provider, MetadataReader metadataReader=null, SignatureDecoderOptions options=SignatureDecoderOptions.None); public TType DecodeFieldSignature(ref BlobReader blobReader); public ImmutableArray DecodeLocalSignature(ref BlobReader blobReader); public MethodSignature DecodeMethodSignature(ref BlobReader blobReader); public ImmutableArray DecodeMethodSpecificationSignature(ref BlobReader blobReader); public TType DecodeType(ref BlobReader blobReader); } public enum SignatureDecoderOptions { DifferentiateClassAndValueTypes = 1, None = 0, } public enum SignatureTypeHandleCode : byte { Class = (byte)18, Unresolved = (byte)0, ValueType = (byte)17, } } ``` # Notes - The interface segregation of `ISignatureTypeProvider` is for future `TypeNameParser` and `CustomAttributeDecoder` (still under development in dev/metadata branch), which share some but not all of the same requirements for a type provider as the `SignatureDecoder` +267 area-System.Text Remove superfluous internal access modifier I'm not sure I see the point in having the internal modifier on these fields, but if I'm missing something feel free to close. +271 area-System.Text Regex collections should implement generic collection interfaces "`CaptureCollection`, `GroupCollection`, and `MatchCollection` currently only implement the non-generic `ICollection` interface. These collections should implement the generic collection interfaces to better interoperate with more modern APIs, such as LINQ. Since these collections are already indexable, they should implement `IList` and `IReadOnlyList`, as well as the non-generic `IList` (to be consistent with the generic interfaces). ## Rationale and Usage This is certainly a nice-to-have, but it _is_ a long-standing [request](https://connect.microsoft.com/VisualStudio/feedback/details/469250/capturecollection-groupcollection-and-matchcollection-do-not-implement-icollection-t-and-ienumerable-t) that [developers](http://stackoverflow.com/q/7274422) [still](http://jimlynn.wordpress.com/2009/11/04/why-cant-i-use-linq-on-a-capturecollection/) [ask](http://stackoverflow.com/q/16379433) [about](http://stackoverflow.com/q/4108956). Implementing the generic interfaces will allow these collections to be used more easily with LINQ and interoperate better with more modern framework and library APIs. For example, to use these collections with LINQ right now you have to know about and remember to use `Enumerable.Cast()` to cast the non-generic `IEnumerable` into an `IEnumerable`: ``` c# var captures = from capture in match.Groups.Cast().Last().Captures.Cast() select capture.Value; ``` With these changes you'd no longer have to do that: ``` c# var captures = from capture in match.Groups.Last().Captures select capture.Value; ``` Plus, in the above example, you'd get a performance improvement when using `Enumerable.Last.()` as its implementation has a fast-path for collections that implement `IList`. ## Proposed API ``` c# // DebuggerDisplay and DebuggerTypeProxy added [DebuggerDisplay(""Count = {Count}"")] [DebuggerTypeProxy(typeof(RegexCollectionDebuggerProxy))] // Previously only implemented ICollection public class CaptureCollection : IList, IReadOnlyList, IList { // Existing members public int Count { get; } public Capture this[int i] { get; } public IEnumerator GetEnumerator(); object ICollection.SyncRoot { get; } bool ICollection.IsSynchronized { get; } void ICollection.CopyTo(Array array, int arrayIndex); // Proposed members public void CopyTo(Capture[] array, int arrayIndex); IEnumerator IEnumerable.GetEnumerator(); int IList.IndexOf(Capture item); void IList.Insert(int index, Capture item); void IList.RemoveAt(int index); Capture IList.this[int index] { get; set; } void ICollection.Add(Capture item); void ICollection.Clear(); bool ICollection.Contains(Capture item); bool ICollection.IsReadOnly { get; } bool ICollection.Remove(Capture item); int IList.Add(object value); void IList.Clear(); bool IList.Contains(object value); int IList.IndexOf(object value); IList.Insert(int index, object value); bool IList.IsFixedSize { get; } bool IList.IsReadOnly { get; } void IList.Remove(object value); void IList.RemoveAt(int index); object IList.this[int index] { get; set; } } // DebuggerDisplay and DebuggerTypeProxy added [DebuggerDisplay(""Count = {Count}"")] [DebuggerTypeProxy(typeof(RegexCollectionDebuggerProxy))] // Previously only implemented ICollection public class GroupCollection : IList, IReadOnlyList, IList { // Existing members public int Count { get; } public Group this[int groupnum] { get; } public Group this[String groupname] { get; } public IEnumerator GetEnumerator(); object ICollection.SyncRoot { get; } bool ICollection.IsSynchronized { get; } void ICollection.CopyTo(Array array, int arrayIndex); // Proposed members public void CopyTo(Group[] array, int arrayIndex); IEnumerator IEnumerable.GetEnumerator(); int IList.IndexOf(Group item); void IList.Insert(int index, Group item); void IList.RemoveAt(int index); Group IList.this[int index] { get; set; } void ICollection.Add(Group item); void ICollection.Clear(); bool ICollection.Contains(Group item); bool ICollection.IsReadOnly { get; } bool ICollection.Remove(Group item); int IList.Add(object value); void IList.Clear(); bool IList.Contains(object value); int IList.IndexOf(object value); IList.Insert(int index, object value); bool IList.IsFixedSize { get; } bool IList.IsReadOnly { get; } void IList.Remove(object value); void IList.RemoveAt(int index); object IList.this[int index] { get; set; } } // DebuggerDisplay and DebuggerTypeProxy added [DebuggerDisplay(""Count = {Count}"")] [DebuggerTypeProxy(typeof(RegexCollectionDebuggerProxy))] // Previously only implemented ICollection public class MatchCollection : IList, IReadOnlyList, IList { // Existing members public int Count { get; } public virtual Match this[int i] { get; } public IEnumerator GetEnumerator(); object ICollection.SyncRoot { get; } bool ICollection.IsSynchronized { get; } void ICollection.CopyTo(Array array, int arrayIndex); // Proposed members public void CopyTo(Match[] array, int arrayIndex); IEnumerator IEnumerable.GetEnumerator(); int IList.IndexOf(Match item); void IList.Insert(int index, Match item); void IList.RemoveAt(int index); Match IList.this[int index] { get; set; } void ICollection.Add(Match item); void ICollection.Clear(); bool ICollection.Contains(Match item); bool ICollection.IsReadOnly { get; } bool ICollection.Remove(Match item); int IList.Add(object value); void IList.Clear(); bool IList.Contains(object value); int IList.IndexOf(object value); IList.Insert(int index, object value); bool IList.IsFixedSize { get; } bool IList.IsReadOnly { get; } void IList.Remove(object value); void IList.RemoveAt(int index); object IList.this[int index] { get; set; } } ``` ## Details - There was some discussion as to whether only the read-only interfaces should be implemented, or both the read-only and mutable interfaces. The consensus is to implement both the read-only and mutable interfaces. This is consistent with other collections in the framework. The mutable interfaces are implemented as read-only: mutable members are implemented explicitly and throw `NotSupportedException` (like `ReadOnlyCollection`). - There was an open question as to whether the non-generic `IList` should be implemented as well. These collections are indexable and if `IList` and `IReadOnlyList` are being implemented, `IList` should be implemented as well. This does add several more members, but they are all implemented explicitly so they don't add any new public members to intellisense, and the implementations are very straightforward. - `ICollection.CopyTo` is implemented implicitly (public). - All other new members are implemented explicitly (non-public): - Mutable members are implemented explicitly because these collections are read-only and the mutable members throw `NotSupportedException` (like `ReadOnlyCollection`). - `IList` members are implemented explicitly to hide non-generic members from intellisense. - `IList.IndexOf` and `ICollection.Contains` are implemented explicitly because these methods aren't very useful for these collections and should not be visible in intellisense by default. They're not useful because an implementation using `EqualityComparer.Default` (consistent with other collections) will search the collection using reference equality due to the fact that `Capture`, `Group`, and `Match` do not implement `IEquatable` and do not override `Equals()` and `GetHashCode()`. Further, these types do not have public constructors -- they are created internally by the regex engine, making it very unlikely that you'd want to search for an item in a collection ""A"" that was obtained from collection ""B"". - `IEnumerable.GetEnumerator()` must be implemented explicitly because the non-generic `IEnumerable.GetEnumerator()` is already implemented implicitly and we can't overload on return type. This also precludes returning a `struct` `Enumerator` (for better enumeration performance) because changing the return type of the existing method would be a binary breaking change. As a result, you'll still have to specify the type when using `foreach` (e.g. `foreach (Capture capture in captures)`); you won't be able to use `var` (e.g. `foreach (var capture in captures)`), unfortunately. ## Open Questions - Should `GroupCollection` implement `IDictionary`, `IReadOnlyDictionary`, and `IDictionary`? `GroupCollection` already has a string indexer. Is it worth implementing the dictionary interfaces as part of this? Personally, I'm leaning toward ""no"" because there isn't a compelling scenario for the dictionary interfaces, and they can always be added in the future when needed. ## Pull Request A PR with the proposed changes is available: #1756 ## Updates - Edited this description to make it more of a _speclet_, based on the discussion below and the proposed API Review process. - Some improvements based on feedback from @sharwell. - Fixed existing members. - Added `IList`. These collections are indexable and it would be strange if `IList` and `IReadOnlyList` were implemented alongside `ICollection` but without `IList`. - Added `DebuggerDisplay` and `DebuggerTypeProxy` attributes. - Made `ICollection.CopyTo` implicit (public). " +277 area-System.Text Update regular expressions collections to implement IReadOnlyList Fixes #271 I believe this is the least intrusive path to implementing the requested functionality. I considered the following items but decided to not include them with this pull request. - `GroupEnumerator` is internal, so it might be possible to change the type of `GroupEnumerator.Capture` from `Capture` to `Group`. This would make the explicit cast in the generic `Current` property unnecessary. - I did not update `CaptureCollection` to implement `IReadOnlyDictionary`, primarily because it's a larger change with the addition of the `Keys` and `Values` properties (even if they are explicitly implemented). This should probably be reviewed independently from a straightforward implementation of `IReadOnlyList`. +281 area-System.Diagnostics System.Diagnostics.FileVersionInfo different/incorrect behaviors compared to .NET Framework FileVersionInfo solely depends on System.IO.FileSystem (and all of its dependencies, including System.IO, System.Threading.Tasks, etc) just to do a File.Exists in GetVersionInfo. We should remove this and instead see if we can use the return value of GetFileVersionInfoSizeEx to mimic the same behavior. +283 area-System.Linq System.Linq.Parallel test assembly disabled as it takes too long on AppVeyor The System.Linq.Parallel test assembly is disabled because it takes 50 seconds to run on my development machine and lots and lots of time to run on AppVeyor. +284 area-System.Xml XPath AxesCombination tests are failing on debug builds While running with debug builds the following AxesCombination Tests are failing with the below assert: \src\Common\tests\System.Xml.XPath\FuncLocation\PathAxeCombinationsTests.cs AxesCombinationsTest2142 AxesCombinationsTest2143 AxesCombinationsTest2144 IsSamePosition() on custom navigator returns inconsistent results at XPathNavigator.ComparePosition(XPathNavigator nav) d:\github\corefx\src\System.Xml.XPath\src\System\Xml\XPath\XPathNavigator.cs(711) at Query.CompareNodes(XPathNavigator l, XPathNavigator r) d:\github\corefx\src\System.Xml.XPath\src\System\Xml\XPath\Internal\Query.cs(150) at Query.Insert(List`1 buffer, XPathNavigator nav) d:\github\corefx\src\System.Xml.XPath\src\System\Xml\XPath\Internal\Query.cs(109) at DocumentOrderQuery.Evaluate(XPathNodeIterator context) d:\github\corefx\src\System.Xml.XPath\src\System\Xml\XPath\Internal\DocumentOrderQuery.cs(20) at BaseAxisQuery.Evaluate(XPathNodeIterator nodeIterator) d:\github\corefx\src\System.Xml.XPath\src\System\Xml\XPath\Internal\BaseAxisQuery.cs(108) at XPathNavigator.Evaluate(XPathExpression expr, XPathNodeIterator context) d:\github\corefx\src\System.Xml.XPath\src\System\Xml\XPath\XPathNavigator.cs(802) at XPathNavigator.Evaluate(XPathExpression expr) d:\github\corefx\src\System.Xml.XPath\src\System\Xml\XPath\XPathNavigator.cs(784) at XPathNavigator.Select(XPathExpression expr) d:\github\corefx\src\System.Xml.XPath\src\System\Xml\XPath\XPathNavigator.cs(764) at Utils.XPathNodesetTest(String xml, String testExpression, XPathResult expected, XmlNamespaceManager namespaceManager, String startingNodePath) d:\github\corefx\src\Common\tests\System.Xml.XPath\Common\Utils.cs(128) at AxesCombinationsTests.AxesCombinationsTest2144() d:\github\corefx\src\Common\tests\System.Xml.XPath\FuncLocation\PathAxeCombinationsTests.cs(44979) +292 area-System.Text Add Regex Tests This adds our tests for the System.Text.RegularExpressions library. Currently, these tests (and almost all of the tests that we will be bringing out from our internal sources) are going to print a lot of things to the console, as that is the testing paradigm we follow internally. We will be coming up with a way to either redirect the test output, or make it configurable. +293 area-System.Diagnostics Add FileVersionInfo tests This adds all of our tests for the System.Diagnostics.FileVersionInfo library. Included also are the assemblies and executables that are used as test assets. +294 area-Meta Proposal for the API Review process Now that we’re on GitHub we also get requests for new APIs. The current API review process is designed around the assumption that it is internal-only. We need to rethink this process for an open source world. This issue represents a proposal how this could be handled. It’s not final – any feedback is highly appreciated. ## Process Goals The key goals are: - **Designed for GitHub**. In order to be sustainable and not be a hurdle for contributors the API review process must feel natural to folks familiar with GitHub. - **Efficiency**. Performing API reviews requires looping in a set of experts. We want to conduct API reviews in an agile fashion without randomizing the reviewers or community members. - **Transparency**. We can use the same process for both internal as well as external contributors. This allows contributors to benefit from the results of API reviews even if the implementer isn’t external. ## Overall Process GitHub is generally based around the pull-request model. The idea is that contributors perform their changes in their own fork and submit a pull request against our repository. For trivial code changes, such as typo fixes, we want folks to directly submit a pull request rather than opening an issue. However, for bug fixes or feature work, we want contributors to first start a discussion by creating an issue. For work that involves adding new APIs we'd like the issue to contain what we call a _speclet_. The speclet should provide a rough sketch of how the APIs are intended to be used, with sample code that shows typical scenarios. The goal isn't to be complete but rather to illustrate the direction so that readers can judge whether the proposal is sound. ![Process diagram](https://cloud.githubusercontent.com/assets/5169960/5499091/a6895e2c-86dd-11e4-8b0e-6ba1ae152541.png) ## Steps - **Contributor opens an issue**. The issue description should contain a speclet that represents a sketch of the new APIs, including samples on how the APIs are being used. The goal isn’t to get a complete API list, but a good handle on how the new APIs would roughly look like and in what scenarios they are being used. - **Community discusses the proposal**. If changes are necessary, the contributor is encouraged to edit the issue description. This allows folks joining later to understand the most recent proposal. To avoid confusion, the contributor should maintain a tiny change log, like a bolded “Updates:” followed by a bullet point list of the updates that were being made. - **Issue is tagged as “Accepting PRs”**. Once the contributor and project owner agree on the overall shape and direction, the project owner tags the issue as “Accepting PRs”. The contributor should indicate whether they will be providing the PR or only contributed the idea. - **Coding**. The contributor is implementing the APIs as discussed. Minor deviations are OK, but if during the implementation the design starts to take a major shift, the contributor is encouraged to go back to the issue and raise the concerns with the current proposal. - **Pull request is being created**. Once the contributor believes the implementation is ready for review, she creates a pull request, referencing the issue created in the first step. - **Pull request is being reviewed**. The community reviews the code for the pull request. The review should focus on the code changes and architecture – not the APIs themselves. Once at least two project owners give their OK, the PR is considered good to go. - **Pull is tagged as “Needs API Review”**. The project owner then marks the pull request as “Needs API Review”. - **API review**. Using the information in the pull request we’ll create an APIX file that constitutes the API delta. The API review board meets multiple times a week to review all PRs that are tagged as needing an API review. - **Pull request is updated with the results of the API Review**. Once the API review is complete, the project owner uploads the notes and API HTML diff, including all comments. The project owner also updates the PR accordingly, with either a call to action to address some concerns or a good to go indicator. - **Pull request is merged**. When there are no issues – or the issues were addressed by the contributor, the PR is merged. ## API Design Guidelines The .NET design guidelines are captured in the famous book [Framework Design Guidelines](http://amazon.com/dp/0321545613) by Krzysztof Cwalina and Brad Abrams. A digest with the most important guidelines are available in our [developer wiki](https://github.com/dotnet/corefx/wiki/Framework%20Design%20Guidelines%20Digest). Long term, we'd like to publish the individual guidelines in standalone repo on which we can also accept PRs and -- more importantly for API reviews -- link to. +295 area-System.Diagnostics Fix file name casing in System.Diagnostics.FileVersionInfo.csproj The file on disk is called Interop.manual.cs, not Interop.Manual.cs. This fixes compilation with Mono on Linux (or other case-sensitive FS). +298 area-System.Xml Use String.Equals instead of String.Compare for equality checks Per the [Best Practices for Using Strings in the .NET Framework](http://msdn.microsoft.com/en-us/library/dd465121%28v=vs.110%29.aspx): - Use an overload of the `String.Equals` method to test whether two strings are equal. - Use the `String.Compare` and `String.CompareTo` methods to sort strings, **not to check for equality**. +299 area-Meta Removing `readonly` from a field can be a breaking change Currently the [**Signatures** section of the Breaking Change Rules](https://github.com/dotnet/corefx/wiki/Breaking-Change-Rules#signatures) page includes the following: > ✓ Allowed > - Removing `readonly` from a field As hinted in [a recent tweet](https://twitter.com/samharwell/status/543970816321650688), this should probably be disallowed in a particular case. I would prefer not to give the answer away publicly yet, but feel free to contact me by email. Here is the original tweet: > C# Quiz: Add `readonly` to a field only set in the constructor, which changes the runtime behavior of the type (no use of reflection). +300 area-Meta Refactor System.Servicemodel.ClientBase to have non-generic base "The following is an example of a generic extension method I would like to write, but cannot because `ClientBase` does not inherit from a base class containing the non generic members. It would be very helpful if `ClientBase` was refactored into `ClientBase:ClientBase` ``` C# using DotNetOpenAuth.OAuth2; using System; using System.Net; using System.ServiceModel; using System.ServiceModel.Channels; using System.Threading; using System.Threading.Tasks; namespace OAuthClient { public static class ExtensionMethods { public static async Task CallAsync(this TClient wcfClient, Func predicate, IAuthorizationState authorization, CancellationToken cancellationToken) where TClient : ClientBase where TChannel : class { if (authorization == null) { throw new InvalidOperationException(""No access token!""); } // Refresh the access token if it expires and if its lifetime is too short to be of use. if (authorization.AccessTokenExpirationUtc.HasValue) { await AuthorizationServer.Client.RefreshAuthorizationAsync(authorization, TimeSpan.FromSeconds(30)); } var httpRequest = (HttpWebRequest)WebRequest.Create(wcfClient.Endpoint.Address.Uri); ClientBase.AuthorizeRequest(httpRequest, authorization.AccessToken); var httpDetails = new HttpRequestMessageProperty(); httpDetails.Headers[HttpRequestHeader.Authorization] = httpRequest.Headers[HttpRequestHeader.Authorization]; using (var scope = new OperationContextScope(wcfClient.InnerChannel)) { OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpDetails; bool isError = true; try { T result = predicate(wcfClient); // If there is an error on the channel, the close call will throw an exception. wcfClient.Close(); isError = false; return result; } finally { // If we have an error on the channel, we cannot close the channel so we abort. // Exceptions that occur will still be raised unmodified. if (isError) { wcfClient.Abort(); } } } } } } ``` " +301 area-System.Diagnostics FileVersionInfo Cleanup This addresses code review feedback from #274. /cc @mellinoe and @stephentoub +304 area-System.Text Regex should provide a validation method "`Regex` doesn't provide a way to validate whether a given string is a valid regular expression without getting an exception. It should provide one. ## Background `TryParse` is a common pattern in .NET which is useful when a potentially invalid string has to be converted to a different representation. As invalid user input is not an exceptional situation, it makes sense to avoid exception overhead (which coincidentally also educates new developers to handle those situations correctly). Regular expressions are not as common in external input as `int` or `DateTime`, however there are situations when regex is an appropriate tool for the power users (e.g. advanced text editor search/replace). If you want to validate the regex as it is being typed (with reasonable throttling), it is useful to have as little overhead as possible. Request for Regex.TryParse (not by me) had [5 votes on Microsoft Connect](http://webcache.googleusercontent.com/search?q=cache:KV6wcz2SJ44J:https://connect.microsoft.com/VisualStudio/feedback/details/331753/regex-should-have-a-static-tryparse-method+) and currently exists on [UserVoice with 3 votes](http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2683916-regex-should-have-a-static-tryparse-method). ## Design Options Originally I wanted to propose `Regex.TryCreate` (which is in line with `Uri.TryCreate` since `Regex` does no have a `Parse` method). However even for power users regexes might not be easy to write, and providing more information than just ""you have failed"" is useful. I can't think of any existing pattern in the BCL that fits this well, but basically something like this would be useful: ``` csharp public class Regex { // existing members… public static RegexParseResult Parse(string pattern); public static RegexParseResult Parse(string pattern, RegexOptions options); // or alternatively we could use a default value for options } public class RegexParseResult { public bool IsSuccess { get; } public Regex Regex { get; } // parser doesn't have to provide more than one, however it would allow it to do so in the future public IReadOnlyCollection Errors { get; } } public class RegexParseError { public string Message { get; } public int Start { get; } public int End { get; } } ``` ### API Concerns It would be useful to know if I am missing some existing common pattern here, so that consistency with other BCL APIs can be provided. I don't like using name `Parse` here either as it invites confusion -- however I can't currently think of a better approach. ## Example Usage ``` csharp public class RegexValidationRule : System.Windows.Controls.ValidationRule { public override ValidationResult Validate(object value, CultureInfo cultureInfo) { var valueString = (string)value; var parseResult = Regex.Parse(valueString); if (!parseResult.IsSuccess) { var errorString = string.Join(NewLine, parseResult.Errors.Select(e => $""{e.Message} at {e.Start}"")); return new ValidationResult(false, errorString); } return ValidationResult.ValidResult; } } ``` ## Compatibility I think adding a new static method should be safe enough. " +306 area-System.Diagnostics Make Process.Start have a option to change handle inheritance "Currently if you call Process.Start internally CreateProcess is called with bInheritHandles = true (hard coded). It would be great to make it possible to change this behavior, e.g. by adding a Property to ProcessStartInfo. Currently there is no way I know of to change this other then reimplementing System.Diagnostics.Process. # Example If you run this application twice without exiting the first notepad instance the second instance will not be able to open the tcp port, because notepad is still running. This can be a problem for server applications that are starting child processes themself and crash, or are killed by the user before the socket can be closed. ``` csharp using System.Diagnostics; using System.Net; using System.Net.Sockets; class Program { static void Main() { TcpListener listener = new TcpListener(IPAddress.Any, 4567); listener.Start(); Process.Start(new ProcessStartInfo(""notepad.exe"") { UseShellExecute = false }); //Simulate application crash without freeing resources } } ``` # Design proposal The easiest way to make this possible is to add a new Property to ProcessStartInfo and use this in the Call to CreateProcess ``` csharp public sealed class ProcessStartInfo { // ... public bool InheritHandles { get; set; } // defaults to true // ... } ``` # Questions - Is there a very important reason why this was hardcoded like this in the first place? " +307 area-Meta Is the corefx repo or the dotnet org a good place for key community projects? Forked from #294. from @n8ohu - > I am working on uses a C# wrapper around a cross-platform C library and it would, in my opinion, be beneficial to other developers if it was part of the core; There is really a spectrum of .NET libraries, with one end point being the official corefx distribution and the other a weekend project never to be touched again. What you are proposing is much closer to the former. I think your base question is whether corefx or a peer repo is appropriate for key community-owned projects. Your scenario is C# wrappers over native libraries, but it could also be a pure managed library, too. We are considering a similar plan for our own libraries that don't fit or don't fit yet in corefx. We can and should include community libraries in that thinking. The Mono org seems to embrace community libraries that have broad applicability. We should take some inspiration from that. It's always a fine idea to host a library out of your own GitHub account. At the same time, we are intending the dotnet org to be a center of gravity for .NET library development. That's why we put the corefx repo there (and same will be true for the coreclr one) instead of the Microsoft org. It's likely the case that discoverability will be better in the dotnet org than an arbitrary personal repo. What do you think? +311 area-System.Console Bring back Console.CancelKeyPress "We need this so that we can wait on Ctrl + C events in console applications. See https://github.com/aspnet/Hosting/blob/dev/src/Microsoft.AspNet.Hosting/Program.cs#L69. " +312 area-System.IO FileSystem cross platformness and testability Building cross platform applications that talk to the file system is painful. There are several issues like case sensitivity, slash differences and other bizarre restrictions and differences. On another front, testability of the file system has always been impossible with .NET. Any application/library that uses the FileSystem uses something like https://www.nuget.org/packages/System.IO.Abstractions or a custom abstraction to allow mockability. Are there any plans to improve the System.IO API to solve some of these problems? +313 area-System.Numerics System.Numerics.Vectors Fails to Load W/ .NET 4.6 Preview Installed "``` An unhandled exception of type 'System.IO.FileLoadException' occurred in Unknown Module. Additional information: Could not load file or assembly 'System.Numerics.Vectors, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) ``` Steps to Reproduce. - Create a console application. - Add the nuget package for System.Numerics.Vector to the project (I tried 1.1.5-beta and 1.1.6-beta). - Add some dependent code (I used `Console.WriteLine(""Hardware Accelerated Vectors: {0}"", Vector.IsHardwareAccelerated);`) - Run the project. - Get above exception. It looks like somehow VS is getting the version number pinned at 4.0.0 and rejects the load. Specific version is disabled, the DLL is being copied as expected and no relevant entries appear to be in the app.config. " +316 area-System.Text Implement IList, IReadOnlyList, and IList on Regex Collections Fixes #271 This is still a work-in-progress. ### TODO - [x] Implement `IList`, `IReadOnlyList`, and `IList` - [x] Add `RegexCollectionDebuggerProxy` - [x] API review - [x] Changes based on API review and initial code review feedback - [ ] Cleanup - [ ] Add tests - [ ] Final code review ### Questions/Notes - As @sharwell noted in #277: `GroupEnumerator` is internal, so it might be possible to change the type of `GroupEnumerator.Capture` from `Capture` to `Group`. This would make the explicit cast in the generic `Current` property unnecessary. +317 area-System.Text Simplify MatchCollection's ICollection.CopyTo - Uses [`List`'s implementation of `ICollection.CopyTo`](https://github.com/Microsoft/referencesource/blob/9da503f9ef21e8d1f2905c78d4e3e5cbb3d6f85a/mscorlib/system/collections/generic/list.cs#L394-L407) which is behavior compatible with the previous implementation. - Avoids an unnecessary array allocation by no longer using `List.ToArray()`. - `SR.Arg_RankMultiDimNotSupported` and `SR.Arg_InvalidArrayType` are no longer needed. - Avoids accessing a property to trigger a side effect. +321 area-System.Text Regex capture, match and group collections now implement the generic IEnumerable This is my first contribution to the .NET Core. I would like to know whether this change would be acceptable under the guidelines of the .NET framework. I am asking because I am making classes implement an interface (acceptable by your rules), but I am also changing the existing interface implementation to an explicit one, in favor of the implicit implementation being the new interface (which is a really grey area that is not included in the rules). Please guide me as to how this pull request needs to change to become acceptable. +322 area-Meta Branching (or not) While commenting on [an outstanding pull request](https://github.com/dotnet/corefx/pull/110#issuecomment-65910391), David Kean mentioned: > We're trying to figure out our branching structure at the moment. Currently we have only a single branch that represents what we're shipping for the next update of .NET Core. Clearly this isn't scalable for the product, and we're going to creating branches for future work so PR's that have API changes and destablizing changes get a little more bake time. @joshfree is looking into that. I would like to get the conversation about branching structure out into the open. And to do that, I would like to start by asking: _why_ is a single branch not scalable for the product? I have worked in code bases of various sizes, release schedules, and branching schemes, and my experience is that NOT branching is nearly always preferable to branching. In fact, the most common reasons given for wanting to branch (e.g. disruptive or long-running changes) are exactly the times when branching hurts the most, because it encourages divergence between different works-in-progress, pushing difficult integration decisions farther out and requiring more rework later. Rather than a policy that handles change by branching, I would rather see a policy of trunk-based development that encourages all changes - even incomplete changes - to be merged into master on a frequent basis. This shortens and simplifies the merging process and encourages small refactorings and improvements by reducing the amount of work needed to merge them. Obviously allowing unfinished work to be committed to master requires mechanisms in place to ensure that such work does not affect the releasability of the framework. Mechanisms such as feature flags and branch by abstraction are slightly more complicated to implement in a framework (especially one that is highly tuned for performance) than in a typical application, but not excessively so. And the advantage of keeping all of the ongoing work together is well worth the effort. What are the community's thoughts on trunk-based development? +323 area-System.Text Decrease in working set was incorrectly marked as test failure "I am hitting a test failure that does not have a consistent repro. ``` Err_004888anied Total memory increased significantly there may be a memory leak (TaskId:339) Percent Difference=0.338227637196709, Max Acceptable Percent Difference=0.3, Start Working Set=576180, End Working Set=381300 (TaskId:339) ``` We probably should not use `Math.abs()` to calculate the difference at https://github.com/dotnet/corefx/blob/master/src/System.Text.RegularExpressions/tests/RegexLangElementsCoverageTests.cs#L60 ``` csharp percentDifference = ((double)Math.Abs(startWorkingSet - endWorkingSet)) / startWorkingSet; if (maxAcceptablePercentDifference < percentDifference) { Console.WriteLine(""Err_004888anied Total memory increased significantly there may be a memory leak""); Console.WriteLine(""Percent Difference={0}, Max Acceptable Percent Difference={1}, Start Working Set={2}, End Working Set={3}"", percentDifference, maxAcceptablePercentDifference, startWorkingSet, endWorkingSet); iCountErrors++; } ``` " +325 area-System.Numerics StringBuilder append with single length strings changed to chars Some StringBuilder.Append calls made with single length symbol strings. These can be a char so that they get directly assigned to the internal char array buffer. Also more consistent with other areas of the codebase. +326 area-Meta .NET Core and pattern compatability (@terrajobst rightly [pointed out](https://github.com/dotnet/corefx/issues/271#issuecomment-68022859) that the thread on implementing collection interfaces on Regex classes had wandered into abstract discussion not related to the original issue. So I am opening this issue in order to continue the discussion here.) To summarize my point (see the [Regex thread](https://github.com/dotnet/corefx/issues/271) for more details): with the addition of IReadOnlyList in .NET 4.5, I don't believe it is appropriate to continue implementing mutable collection interfaces such as IList on immutable collections. The fact that existing immutable collections (including those in the Immutable Collections library) implement these interfaces is not a good enough reason to continue this flawed pattern. This issue is a particular example of the larger question of how .NET Core will evolve, and how much tolerance it has to evolve _away_ from flawed patterns in the .NET Framework. +329 area-Infrastructure Use `nuget restore` instead of `nuget install` See [this line](https://github.com/dotnet/corefx/pull/324#discussion-diff-22273168R41) and the discussion for details. +338 area-System.Text RegexCharClass Improvements and Cleanup Apologies in advance for the large pull request. Normally, I'd break these changes up into separate smaller pull requests, but in this case the changes were all to the same file and some changes build on top of earlier changes, so it was easier to submit as one larger pull request. Each commit is factored appropriately, so it may be easiest to review each commit separately for more sane diffs. The most significant change was to precompute the constants instead of computing the values at runtime in the static constructor. I have a [one-off test](https://gist.github.com/justinvp/0c1b5faf72349b56a2ed) (not intended to be checked-in) that asserts that the precomputed values from the new implementation are equal to the values that would have been computed at runtime using the previous implementation. +340 area-System.Text Support for RegexOptions.Compiled? `RegexOptions.Compiled` isn't currently supported (the option exists but doesn't do anything). Will this be supported? If so, when? If not, why not? +342 area-System.Text More Regex Cleanup Sorry for another larger pull request -- there are just so many opportunities for cleanup in Regex! Most of the commits are pretty fine-grained (some probably could have been squashed together, sorry). +344 area-System.Security Support for Rfc2898DeriveBytes and other founding cryptographic support Hi, Reading the contribution DOs and DON'TS it says not to file an API addition without discussing first. I have the System.Security.Cryptography.Rfc2898DeriveBytes essentially created in a PCL so works in WinRT etc. I'd like to expand on this as Rfc2898DeriveBytes is HmacSha1 based and people are trying to move onto hmacsha256 and upwards nowadays and I'd like to bring this into .NET Core I'd like to start bringing in System.Security.Cryptography namespace into .NET Core. I'll include tests from the test data listed with the cryptographic standards and whatnot where possible. Can I do this? :) +348 area-Meta Updated README.md with recently added projects +349 area-System.Threading TaskHelpers cleanup TaskHelpers.cs is a temporary stop-gap for assemblies that don't yet depend on the latest System.Threading.Tasks contract. This change removes the dependency on the file for those assemblies that do use the latest, changing them to access the Task.CompletedTask, Task.FromCanceled, and Task.FromException members on Task instead of the corresponding workarounds on TaskHelpers. This file should eventually go away entirely. +350 area-System.Console Use StringBuilderCache in additional assemblies "StringBuilderCache maintains a cache of up to a single StringBuilder per thread, avoiding StringBuilder allocations for the common pattern of: ``` C# StringBuilder sb = new StringBuilder(); // ... do some appends return sb.ToString(); ``` and instead enabling: ``` C# StringBuilder sb = StringBuilderCache.Acquire(); // ... do some appends return StringBuilderCache.GetStringAndRelease(sb); ``` It was added to the repo as part of System.IO.FileSystem. This change deploys usage of it through other assemblies. Not all ""new StringBuilder(...)"" usage has been replaced, just those instances that are expected to be most impactful, e.g. tests were ignored, places where StringBuilders are stored into fields were ignored, debug code was ignored, less common members were ignored, etc. Simple microbenchmarks showed measurable improvements as a result. For example, a test around Regex.Replace showed that ~10% of the allocations incurred were for StringBuilder instances; using StringBuilderCache mostly eliminated these and improved throughput by a corresponding ~10%. This will of course vary based on the test employed, but it's a data point. " +352 area-Meta Design document for performance patterns As noted in #351, some patterns which are commonly used in the .NET Framework for performance reasons are not obvious to users who are new to this project. Due to the number of projects which leverage the .NET library as part of their own applications, performance is a particularly sensitive area, especially in regards to [unnecessary] memory allocations. It would be very helpful to have a document explaining commonly used patterns intended to avoid unnecessary memory allocations, and perhaps other techniques which your prior work has indicated are high-value practices for some reason. +361 area-System.Net Ability to set the HttpWebRequest.DefaultMaximumErrorResponseLength on a per request basis I realize the http code hasn't been imported yet.. But it would be really nice if this could be changed in >=4.6 Currently the only way you can set the DefaultMaximumErrorResponseLength for a request is AppDomain wide. We should also be able to be set on a per request basis (like we can do with ServicePoint). +362 area-System.Console Bring back Console.CancelKeyPress We need this so that we can wait on Ctrl + C events in console applications. issue #311 +371 area-System.IO Unix Interop Code is platform specific In commits like this: https://github.com/dotnet/corefx/commit/377dde76c5df105a7bab2c0a3002c0d835ff1b07 An attempt has been made to map both structures and constants to C# managed structures. Unix does not have a binary interface for either the constants or the structures, so the definition is likely already wrong for some platforms and will likely be wrong for ports, even within Linux itself. While the structures are constants do change from Unix to Unix a little known quirk is that both structures and constants also change in size, layout and the values in Linux itself. Early versions of Linux chose to emulate the ABI of the host platform, allowing early Linux to easily execute binaries written for the mainstream operating system of the platform. Linux/Alpha copied OSF/1; Linux/SPARC copied SunOS 4; Linux/MIPS some variation of IRIX and so on. This is why Linux includes many of these definitions in /usr/include/arch/XXX, because they are different in each platform. You should do something similar to what Mono.Posix does, which is to have a managed wrapper that talks to a C library that actually performs the native call and marshals the native version to a well-known structure shared with the managed implementation. +377 area-System.Text Regex tests intermittently fail due to memory usage "In RegexLangElementsCoverageTests.cs, there are several checks related to the total memory usage of the test: ``` CSharp // ** RegexLangElementsCoverageTests.cs ** double maxAcceptablePercentDifference = .3; startWorkingSet = GC.GetTotalMemory(true); ... endWorkingSet = GC.GetTotalMemory(true); percentDifference = ((double)Math.Abs(startWorkingSet - endWorkingSet)) / startWorkingSet; if (maxAcceptablePercentDifference < percentDifference) { Console.WriteLine(""Err_004888anied Total memory increased significantly there may be a memory leak""); Console.WriteLine(""Percent Difference={0}, Max Acceptable Percent Difference={1}, Start Working Set={2}, End Working Set={3}"", percentDifference, maxAcceptablePercentDifference, startWorkingSet, endWorkingSet); iCountErrors++; } ``` I think this check may be causing us more bad than good. I'm not sure what GC.GetTotalMemory takes into consideration, but this logic might also be getting tripped up by the fact that we have multiple tests running in parallel. Also, in general, this seems like a bit of a flaky check in the first place; it fails around 10% of the time for me, I would say. Anyone opposed to removing these checks, or at least making it not an error? " +381 area-Meta Question: Single statement `if` formatting "Looking at `System.Threading.Tasks.Dataflow` (amazing library by the way), I see three different variations of formatting of single-statement `if` statements. In _one_ method. From [`DataflowBlock.OutputAvailableAsync`](https://github.com/dotnet/corefx/blob/2bf5a7185fd81949da4d47a432662d8fe80989f6/src/System.Threading.Tasks.Dataflow/src/Base/DataflowBlock.cs#L1485-L1550) [**One line**](https://github.com/dotnet/corefx/blob/2bf5a7185fd81949da4d47a432662d8fe80989f6/src/System.Threading.Tasks.Dataflow/src/Base/DataflowBlock.cs#L1489): ``` c# if (source == null) throw new ArgumentNullException(""source""); ``` [**Two lines**](https://github.com/dotnet/corefx/blob/2bf5a7185fd81949da4d47a432662d8fe80989f6/src/System.Threading.Tasks.Dataflow/src/Base/DataflowBlock.cs#L1493-L1494): ``` c# if (cancellationToken.IsCancellationRequested) return Common.CreateTaskFromCancellation(cancellationToken); ``` [**With braces**](https://github.com/dotnet/corefx/blob/2bf5a7185fd81949da4d47a432662d8fe80989f6/src/System.Threading.Tasks.Dataflow/src/Base/DataflowBlock.cs#L1513-L1516): ``` c# if (target.Task.IsCompleted) { return target.Task; } ``` Are the guidelines for formatting these more nuanced than I'm able to see, or is this just inconsistent formatting? Is this kind of inconsistent formatting normal and acceptable? Is there a preference for how new code should be formatted? " +384 area-System.Collections Application of ObsoleteAttribute to legacy collection types As mentioned in #370, the lack of `[Obsolete]` on certain legacy types in `System.Collections.Specialized` could be confusing to developers. In general I support the use of ObsoleteAttribute, but for this particular library I would recommend it only be applied to types which have well-known newer (better) alternatives. I'm working on the following table... | Legacy Type | Replacement | | --- | --- | | `BitVector32` | No direct replacement? | | `HybridDictionary` | No direct replacement? | | `IOrderedDictionary` | No direct replacement? | | `ListDictionary` | No direct replacement? | | `NameObjectCollectionBase` | No direct replacement? | | `NameValueCollection` | No direct replacement? | | `OrderedDictionary` | No direct replacement? | | `StringCollection` | `List` | | `StringEnumerator` | Only used with `StringCollection` (not marked obsolete?) | | `StringDictionary` | `Dictionary` | +386 area-Infrastructure Jenkins connection abort issues and associated issues with subsequent runs Seeing intermittent issues with Windows remoting in Jenkins. These are known issues but have gone unfixed for a while. In addition, this causes the next job to run in a potentially un-clean environment +391 area-Meta Language or BCL data types "I'm not sure it's worth to discuss this issue. To ensure consistency within the code base the preferred data types should be noted in the wiki. I know this can be a sensitive and subjective issue... **Only use BCL data types** ``` c# String text; String.IsNullOrEmpty(text); Double number; Double.TryParse(text, out number); ``` **Only use language data types** ``` c# string text; string.IsNullOrEmpty(text); double number; double.TryParse(text, out number); ``` **Use language data types for declarations | BCL data types for calling members** ``` c# string text; String.IsNullOrEmpty(text); double number; Double.TryParse(text, out number); ``` My favorit is the last option because - an Enum can't inherit from UInt32 so you have to use uint - because it's not obvious that data types have members - ~~[MSDN](http://msdn.microsoft.com/en-us/library/ms229045.aspx) says ""**√ DO** use a generic CLR type name, rather than a language-specific name, in the rare cases when an identifier has no semantic meaning beyond its type.""~~ " +392 area-Meta Update Wiki to mention that changes to .NET Core must be binary compatible with the full .NET Framework A question came up in the comments for #271 about the possibility of a binary breaking change in the .NET Core Regex collections from the Regex collections in the full .NET Framework. @davkean responded: > You need to be able to build against this library and run on .NET Framework 4.6. And I asked: > So if you accept this suggestion (adding the generic interfaces to these types), the changes will have to be added to .NET 4.6 as well? How much time is left to make changes to .NET 4.6? And @weshaggard responded: > Yes @justinvp any types that already exist on the full desktop framework will need to be updated there as well if they are updated in .NET Core. We have a high level goal of making code written for .NET work no matter what .NET platform you are targeting. As for how much time is left to add new public APIs to .NET 4.6 at this point we are not accepting any more unless they are critical. > > With that said we fully expect .NET Core to evolve much more quickly then the full .NET framework that ships in Windows. We just have to be aware that any changes need to eventually make it there as well so while thinking about breaking changes you cannot just consider .NET Core you must consider the other platforms as well. If we don't do that then we risk diverging the platforms and making .NET development as a whole more difficult. I think it'd be worth adding this to one of the wiki pages so it is clear to everyone that types in .NET Core that exist in the full .NET Framework must be binary compatible. I don't think this is explicitly stated anywhere currently. +395 area-System.Runtime String comparer for sorting numeric strings logically "## Rationale For sorting purposes it's common to need portions of strings containing numbers to be treated like numbers. Consider the list of strings `""Windows 7"", ""Windows 10""`. Using the `Ordinal` `StringComparer` to sort the list one would get ``` Windows 10 Windows 7 ``` but the desired ascending logical sort would be ``` Windows 7 Windows 10 ``` ## Proposed API ```diff namespace System { public class StringComparer { + public static StringComparer Create(CultureInfo culture, CompareOptions options); } } namespace System.Globalization { public enum CompareOptions { + NumericOrdering = 0x00000020 } } ``` ## Usage ```cs var list = new List { ""Windows 10"", ""Windows 7"" }; list.Sort(StringComparer.Logical); // List is now ""Windows 7"", ""Windows 10"" ``` This would also be good for sorting strings containing IP addresses. ## Details * `Logical` is a convenience property equivalent to the result of `Create(CultureInfo.CurrentCulture, CompareOptions.Logical)` * `LogicalIgnoreCase` is a convenience property equivalent to the result of `Create(CultureInfo.CurrentCulture, CompareOptions.Logical | CompareOptions.IgnoreCase)` * Non-numeric sequences will be evaluated with the culture provided. * Numeric sequences will be determined by the result of `Char.IsDigit`. * All UTF-16 digits will be supported and are manually parsed using `Char.GetNumericValue`. * Only positive integral values without digit separators will be supported directly. * Numbers will be treated as `ulong`s. Logic for overflows will have to be considered. * The string `Windows 8.1` would be considered 4 sequences. The `Windows ` would be a string sequence, the `8` would be a numeric sequence, the `.` would be another string sequence, and the `1` would be another numeric sequence. * This API could later be expanded to include support for allowing signs, decimals, and digit separators through the use of overloads accepting a `NumberStyles` parameter. * When a numeric and string sequence are considered at the same time the numeric sequence always comes before the string sequence so when sorting the following list, `""a"", ""7""` the number `7` will be sorted before the letter `a`. * Existing methods that take a `CompareOptions` parameter as input will need to be updated to support the new `Logical` member. ## Open Questions * Should `CompareOptions.Logical` be implemented as the flag option `SORT_DIGITSASNUMBERS` to the `dwCmpFlags` parameter of [`CompareStringEx`](https://msdn.microsoft.com/en-us/library/windows/desktop/dd317761(v=vs.85).aspx)? Using it's implementation should be more efficient but later expanding support for `NumberStyles` will require a re-implementation with matching behavior. ## Updates * Added `Logical` and `LogicalIgnoreCase` properties. * Added support for all UTF-16 digits. * Added more `CreateLogical` overloads to match the `Create` method. * Added retrieval of the `NumberFormatInfo` from the `StringComparer` parameter when not explicitly provided and is a `CultureAwareComparer`. * Removed `CreateLogical` overloads that matched the `Create` method. * Switched to only supporting positive integral values without digit separators. * Added consideration of comparing a numeric sequence with a string sequence. * Added the flag member `CompareOptions.Logical` and changed `CreateLogical` to be just an overload of `Create`." +396 area-Meta Update README.md description of legacy collections +398 area-System.Diagnostics Refactor System.Diagnostics.FileVersionInfo with PAL Introduce a Windows and Unix build for System.Diagnostics.FileVersionInfo.dll. Windows-specific functionality has been moved to separate files, with Unix-specific (but stubbed out) files added to match. +409 area-System.Xml Reduce XPath unit tests run time "Either reduce unit tests subset (apply [OuterLoop] to long tests) or modify tests to keep run time below 5s on average machine. Currently on some machine they run for ~25s. Reduce it by a factor of 5. " +410 area-Meta Update readme to reflect System.Collections.Concurrent +423 area-Meta CLA Labels I've been following the project for a while now and noticed that recently there is a bot in place that adds `cla-required`, `cla-signed` and `cla-not-required`. I personally think that these labels clutter up a lot. Wouldn't it be easier to only add `cla-required` when they haven't signed it yet and remove it when signed? Leaving out the other two labels. Also, when signing up for the CLA you require to enter the company you work for, not everyone has work and some are still studying. +424 area-System.Security X509Certificate: .pfx format unsupported on CoreCLR "This snippet works on `aspnet50` but an exception is thrown on `aspnetcore50` (tested on Windows 7 and Windows 8.1): ``` csharp public static class Program { public static void Main(string[] args) { var assembly = typeof(Program).GetTypeInfo().Assembly; using (var resource = assembly.GetManifestResourceStream(""Certificate.pfx"")) using (var buffer = new MemoryStream()) { resource.CopyTo(buffer); var certificate = new X509Certificate2(buffer.ToArray(), ""Owin.Security.OpenIdConnect.Server""); Console.ReadLine(); } } } ``` ![image](https://cloud.githubusercontent.com/assets/6998306/5743652/fdeb3562-9c1a-11e4-93db-1fec2523adcd.png) ``` {System.Security.Cryptography.CryptographicException: Impossible de trouver l’objet requis. at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) at System.Security.Cryptography.X509Certificates.X509Utils._QueryCertBlobType(Byte[] rawData) at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromBlob(Byte[] rawData, Object password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] rawData, String password) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData, String password) at X509Certificate2.Program.Main(String[] args)} ``` Complete repro: https://github.com/PinpointTownes/X509Certificate-Bug " +432 area-System.Console Fix handling of some terminfo files ConsolePal in Unix parses terminfo files to determine the correct format strings to use for setting foreground and background color. Before indexing into the file's contents to grab those strings, we were missing a check to ensure that the file actually contained enough string entries that it could contain a foreground or background color string. This commit just adds that check. +439 area-Infrastructure Building in Visual Studio stopped working While building on the command line via `build.cmd` works just fine, building with Visual Studio doesn't. It's worth calling out that building on the command line via `devenv` is also broken: ``` $ devenv .\System.Collections.NonGeneric.sln /build Microsoft Visual Studio 2013 Version 12.0.31101.0. Copyright (C) Microsoft Corp. All rights reserved. 1>------ Build started: Project: System.Collections.NonGeneric, Configuration: Debug Any CPU ------ 1>CSC : error CS0518: Predefined type 'System.Object' is not defined or imported 2>------ Build started: Project: System.Collections.NonGeneric.Tests, Configuration: Debug Any CPU ------ 2>CSC : error CS0006: Metadata file 'P:\oss\corefx\bin\Debug\System.Collections.NonGeneric\System.Collections.NonGeneric.dll' could not be found ========== Build: 0 succeeded, 2 failed, 0 up-to-date, 0 skipped ========== ``` It seems the new build-based package resolution is to blame. For example, here is the output of building **System.Collections.NonGeneric**: | Type | # | Description | Project | | --- | --- | --- | --- | | Error | 1 | Unable to find nupkg for System.Text.Encoding. | System.Collections.NonGeneric.Tests | | Error | 2 | Unable to find nupkg for xunit.console.netcore. | System.Collections.NonGeneric.Tests | | Error | 3 | Unable to find nupkg for xunit.runner.dependencies.netcore. | System.Collections.NonGeneric.Tests | | Error | 4 | Unable to find nupkg for Microsoft.DotNet.TestHost. | System.Collections.NonGeneric.Tests | | Error | 5 | Unable to find nupkg for System.Collections.Concurrent. | System.Collections.NonGeneric.Tests | | Error | 6 | Unable to find nupkg for System.Diagnostics.Tracing. | System.Collections.NonGeneric.Tests | | Error | 7 | Unable to find nupkg for System.IO.FileSystem. | System.Collections.NonGeneric.Tests | | Error | 8 | Unable to find nupkg for System.IO.FileSystem.Primitives. | System.Collections.NonGeneric.Tests | | Error | 9 | Unable to find nupkg for System.Linq. | System.Collections.NonGeneric.Tests | | Error | 10 | Unable to find nupkg for System.Reflection.Extensions. | System.Collections.NonGeneric.Tests | | Error | 11 | Unable to find nupkg for System.Runtime.Handles. | System.Collections.NonGeneric.Tests | | Error | 12 | Unable to find nupkg for System.Runtime.InteropServices. | System.Collections.NonGeneric.Tests | | Error | 13 | Unable to find nupkg for System.Text.Encoding.Extensions. | System.Collections.NonGeneric.Tests | | Error | 14 | Unable to find nupkg for System.Text.RegularExpressions. | System.Collections.NonGeneric.Tests | | Error | 15 | Unable to find nupkg for System.Xml.ReaderWriter. | System.Collections.NonGeneric.Tests | | Error | 16 | Unable to find nupkg for System.Xml.XDocument. | System.Collections.NonGeneric.Tests | +440 area-System.Text Initial commit of System.Text.Encoding.CodePages +442 area-System.Text Pull System.Text.Encoding.CodePages from v1.0 to master +445 area-System.Text Stop compiling Interop.cs into Unix build of code pages The Interop.cs file was being compiled into the unix build of System.Text.Encoding.CodePages. This commit just renames the file to be Windows-specific and includes it only in the Windows builds. It also does some minor cleanup of a couple of files. +447 area-Meta Update README.md to include System.IO.MemoryMappedFiles +449 area-Infrastructure Corefx build fails when Xamarin PCL profiles are installed 1. Install Xamarin tools 2. Build corefx EXPECTED: Build succeeds ACTUAL: Build fails with lots of type resolution errors The ResolveNuGetPackages target is failing to resolve assets out of xunit.core.netcore: ``` C:\git\corefx\src\packages\Microsoft.DotNet.BuildTools.1.0.21-prerelease\lib\packageresolve.targets(25,5): warning : Unable to resolve the assets of xunit.core.netcore: Couldn't find a matching group ``` The Xamarin tools add XML files to the SupportedFrameworks folders of some PCL profiles. This results in the configured frameworks for the project to be: ``` .NETFramework,Version=v4.5;.NETCore,Version=v4.5;WindowsPhoneApp,Version=v8.1;WindowsPhone,Version=v8.0;MonoAndroid,Version=v1.0;MonoTouch,Version=v1.0 ``` From the package, the following frameworks are supported: ``` .NETFramework,Version=v4.5;ASP.NetCore,Version=v5.0;.NETCore,Version=v4.5;WindowsPhoneApp,Version=v8.1;WindowsPhone,Version=v8.0 ``` So since the package doesn't support MonoTouch and MonoAndroid, the build system isn't resolving any of the assemblies inside it. +453 area-System.Xml Make fields readonly in System.Xml +454 area-System.Xml Using IsNullOrEmpty in checks Using IsNullOrEmpty in checks instead of direct checks on null or empty +455 area-Meta Consider merging labels `up-for-grabs` and `accepting prs` labels As discussed [here](https://github.com/dahlbyk/up-for-grabs.net/pull/146) it seems that these labels are semantically so close that it may make sense for us to merge them. - `up-for-grabs`. This is meant for tagging issues to indicate that we'd like the help of the community. - `accepting pr`. We use this label as part of the [API review process](https://github.com/dotnet/corefx/wiki/API-Review-Process). It's tagging proposals for API additions to indicate that we're happy to review & accept pull requests for those. It seems they are conceptually both doing the same thing: they are indicating to our community that we're happy if they jump in and help. Thoughts? +459 area-System.Linq Re-enable PLINQ tests The PLINQ tests are currently disabled. This PR turns them back on, alleviating the deadlocks that had caused them to be disabled initially. I also addressed a few other things, including some waits that weren't working correctly and some tests that should be OuterLoop due to their demands on the thread pool. On my machine, the tests as they are after the PR do take ~15 seconds to run as part of the build. I think that's completely reasonable for a set of tests for such a library, but if we're uncomfortable with that we can aim to bring it down further separately. For now, I just want to make sure there's at least some coverage in builds and CI. +461 area-System.Collections Add a static Shuffle method to Array and an instance method to List Consider adding a static Shuffle method to Array and an instance method to List ## Motivation Shuffling data is often required in various applications. .NET does not contain a method to shuffle an array which results in many people implementing it themselves. Implementing a Shuffle method is not really hard but it does require like 10 lines of code and people often wonder where to put these so they just prefer quick and dirty solutions like abusing sort methods with random sort key or even worse random comparison. These methods are far from ideal both because they depend on implementation details of the sorting methods and because they are less effective than the ideal O(N) implementation. ## Proposed API Methods on Array: ``` C# public static void Shuffle(T[] array) public static void Shuffle(T[] array, int index, int length) public static void Shuffle(T[] array, Random rng) public static void Shuffle(T[] array, int index, int length, Random rng) ``` Methods on List ``` C# public void Shuffle() public void Shuffle(Random rng) ``` ## Details The Shuffle method on Array has an overload that can be used to shuffle just part of the array. This is in line with existing Array methods like Sort and Copy and can be useful when implementing Shuffle on List where only the elements of the List will be shuffled without shuffling the full capacity of the list. I also suggest adding an instance Shuffle method on List since this is the most common usage of such a method. +464 area-System.ComponentModel Fix inverted documentation between two methods I just noticed this documentation mistake, the two method descriptions were swapped. +465 area-System.Linq Re-enable PLINQ tests Re-issuing #459 against v1.0 branch. Already reviewed there, so will merge once successfully passes CI. +466 area-Meta Update README.md for System.ComponentModel +467 area-System.Runtime Add a Clamp method to System.Math I know the `System.Math` library hasn't been pushed to the .Net Core library but since discussing api additions could take some time I thought it was a good idea to propose it now. # Rationale and Usage `Math.Clamp` is an easy to implement method and makes it easier for developers. Currently developers would have to implement their own methods in an extension class or use `Math.Max` and `Math.Min` together. The proposed API will shorten the amount of code needed and increase readability. Two examples on how we currently can clamp in .NET: ``` C# int result = Math.Max(Math.Min(value, 100), 0); ``` ``` C# public static class Ext { // Source: http://stackoverflow.com/a/2683487/1455541 public static T Clamp(T val, T min, T max) where T : IComparable { if (val.CompareTo(min) < 0) return min; else if(val.CompareTo(max) > 0) return max; else return val; } } // Somewhere in the codebase int result = Ext.Clamp(value, 0, 100); ``` The proposed API would turn that into: ``` C# int result = Math.Clamp(value, 0, 100); ``` # Proposed API 1 - Specialized ``` C# public static class Math { public static Byte Clamp(Byte value, Byte min, Byte max); public static Decimal Clamp(Decimal value, Decimal min, Decimal max); public static Double Clamp(Double value, Double min, Double max); public static Int16 Clamp(Int16 value, Int16 min, Int16 max); public static Int32 Clamp(Int32 value, Int32 min, Int32 max); public static Int64 Clamp(Int64 value, Int64 min, Int64 max); public static SByte Clamp(SByte value, SByte min, SByte max); public static Single Clamp(Single value, Single min, Single max); public static UInt16 Clamp(UInt16 value, UInt16 min, UInt16 max); public static UInt32 Clamp(UInt32 value, UInt32 min, UInt32 max); public static UInt64 Clamp(UInt64 value, UInt64 min, UInt64 max); } ``` This proposed version mimics the way current `System.Math` methods do it. # Proposed API 2 - IComparable Because this is a new API addition it can also be possible to have smaller implementation using generics that should cover all the cases. ``` C# public static class Math { public static T Clamp(T value, T min, T max) where T : System.IComparable; } ``` # Open Questions - If the api addition is going to be implemented should it be implemented as Proposed API 1 or 2? +468 area-System.Text Spelling fixes for System.Text.RegularExpressions Just fixing a handful of spelling errors in comments. +470 area-Meta Do not use optional arguments on public APIs As part of the [discussion](https://github.com/dotnet/apireviews/tree/master/2015-01-14-misc#110-add-async-documentelement-loading-for-xlinq) around adding async document/element loading for XLINQ (#110) it was mentioned using optional arguments (commonly called optional parameters). **PLEASE, DON'T USE IT ON PUBLIC APIS!!!** Before there were optional arguments the problem of a large number of possible parameters for an API already existed. And since we are talking about XML, look at how `XmlReader` and `XmlWritter` solved it: - [public static XmlReader Create(TextReader input, XmlReaderSettings settings)](http://referencesource.microsoft.com/#System.Xml/System/Xml/Core/XmlReader.cs,6375d7745e42dee9) - [public static XmlWriter Create(XmlWriter output, XmlWriterSettings settings)](http://referencesource.microsoft.com/System.Xml/a.html#c6b2420e91f21e33) Taking advantage of object initialization, calling it looks like optional arguments: ``` XmlReader.Create(reader, new XmlReaderSettings{ IgnoreWhitespace = true }); ``` (I'm going to propose more type inference for cases like this: [Do not require type specification for constructors when the type is known #35](https://github.com/dotnet/roslyn/issues/35)) It's extensible. Another setting can always be added with proper defaults and without breaking existing code. And those settings also become something that can be passed around. Imagine that the original API used optional arguments and there was only one `Save` method. How would you keep that and now add an `CancellationToken` parameter? +482 area-System.Xml Simple cleanup in XDocument classes +484 area-System.Xml "Explicitly marked XDocument private methods with ""private"" keyword" The `private` keyword was used for fields within the XDocument classes but not the method definitions. Updated for consistency. +489 area-System.Numerics Add primitive structs Rectangle and Point System.Drawing, System.Windows, and XNA all implement nearly-identical structures to represent points and rectangles. Given the verbosity of a correct implementation, many library developers re-use an existing implementation, and tie their public APIs to (non-core-compatible) dependencies. Offering primitives like Point, Rectangle (as well as PointF, RectangleF, and Color) would make it much easier for libraries to be compatible with each other. Or, is there a de-facto standard nuget package for these structs that we can promote? +490 area-System.Runtime Allow the Math methods to return float values I find myself casting returned results from Math methods into floats constantly, even if only floats are supplied as parameters for that method. Many developers don't need the accuracy of a double and floats works fine, many other numeric structs store their values are floats too (such as a Vector2). While explicit casting doesn't hurt anyone there are other classes I have come by that return a float if the supplied parameter(s) is float only. This wouldn't really be considered a new API addition, all it would do is add overloaded methods that accepts floats as parameters and returns a float (could call the Double version of the Method underneath to avoid code duplication and cast back). If any of the parameters become a double then the double version of the Method would be called and a double value would return. I would like feedback on what other people think before implementing it. +492 area-System.Collections statistic distribution generator I am thinking to add some random generators that obeys specific statistic distribution functions (like normal, binomial, geometric and so on) and also makes the random generator usable as IEnumerable to be easier to use in line or sequence expressions. There is a great paper that covers the ability to obtain sampling functions by composing other sampling functions that is quite nice to express via IEnumerable and IEnumerator. Suck functions can be very useful to obtain numbers that follow a specific law, for example to be used in generating correct weights to initialise untrained neural networks or similar scenarios. +494 area-System.Runtime Consider exposing extension methods for System.Array .Net 2 convenience methods With .net 2.0, `System.Array` was given a set of convenient LINQ like methods like those present on `List`. Unlike `List`, they were added as static methods. While, LINQ does offer some of these methods these variants do offer some differences/benefits as they are A: Optimized for arrays. B: Evaluated immediately. C: Always produce an array. These methods are:: ``` csharp AsReadOnly BinarySearch ConvertAll Exists Find FindAll FindIndex FindLast FindLastIndex ForEach IndexOf LastIndexOf Sort TrueForAll ``` Some of these offer no real benefit over LINQ, but others can be very useful especially in array heavy APIs like Reflection. Primarily `ConvertAll` and `FindAll`. These methods would also make it easier to work with arrays. There would be no clash with existing LINQ methods as they have different names. +496 area-System.Xml Reformat Xml code Guidelines were updated few times since the last time it was done. +497 area-Meta Remove non-cancellable overloads from async APIs I'd like to start discussion on removing the convenience overloads that call a cancellable API with `CancellationToken.None`: `Task DoAsync() { return DoAsync(CancellationToken.None); }` I think these overloads bloat the API and if you've got a large number of parameters, can be error-prone to implement. I also believe they encourage poor design: consider that a great majority of async code either already does or should support cancellation. The use of these APIs should be relatively rare in good code. +498 area-System.Collections HashSet constructor performance tuning for ISet "As it is currently, `HashSet` has a constructor that takes `IEnumerable`. `var set1 = new HashSet{2,3,4};` `var set2 = new HashSet(set1); // binds against ctor..(IEnumerable)` This works nicely, but the fact that we are ""copying/cloning"" from `ISet` is not being taken advantange of. If we have `HashSet` with ~10000 elements, **there is no efficient way to create a copy of it**. Instead, current implementation will call internally `AddIfNotPresent` for each element in given `IEnumerable`, eg, do an expensive element lookup for each item that is being added (to check if it doesn't exist in our current `HashSet`). This does not have to be the case. `ISet` already promises us the uniqueness. Let me know if this is something of interest, I would like to work on that. " +503 area-Meta Make use of Code Contracts where ever applicable. I wonder the reason why while the code contracts are part of BCL and it is a research project of Microsoft, only some of the API makes use of it. This this is effectively preventing making use of code contracts for the end consumers as well. I would appreciate at least if you can make use of Code Contracts on the public surface API. +507 area-System.Collections Specification tests for collection interfaces In the last [API review](https://github.com/dotnet/apireviews/tree/master/2015-01-14-misc#follow-ups-for-api-review-board), @KrzysztofCwalina mentioned that it would be nice to have a set of tests that can serve as specifications for the expected behavior of the built-in collection interfaces. These tests could be used by people creating types which implement these interfaces to ensure that their implementations match the specification. I love this idea, and would love to help create the suite. Is this something that the community can engage on? +516 area-Meta Replace hand-rolled tests for exceptions with xunit's Assert.Throws There is a lot of hand-rolled exception checking in various test code. This should be refactored to use xunit's Assert.Throws method as it improves readability and can reduce possible bugs in test code. For an example please see PR https://github.com/dotnet/corefx/pull/512 +519 area-System.Runtime Allow BitConverter.ToString to format without dashes "I think BitConverter is not even in CoreFx yet, but for when it is, please allow to convert to an hex string without dashes. This is to avoid this pattern: ``` BitConverter.ToString(data).Replace(""-"", string.Empty); ``` This representation of bytes is common enough that .NET should have a simple method to do this without extra code or an extra memory allocation. " +522 area-System.Threading Thread apartment states in .NET Core Hi all! Just wondering, will you support thread apartment state in .NET Core ? Currently there are no support. Maybe in future? Thanks. +525 area-Meta Consider creating a gitter channel for corefx repo "I was checking out the Aurelia docs (new JS framework), and they casually mention ""If you have questions, we hope that you will join us on our [gitter channel](https://gitter.im/Aurelia/Discuss)."" Gitter is apparently a free group chat for open source projects hosted on github. Here's the best ""About"" page I could find: http://blog.gitter.im/about/. It looks like they have really good github integration (an activity feed that shows PRs; issues; commits; etc). I'd be really interested in trying out a gitter channel for the corefx repo. " +526 area-System.Collections Dictionary class should allow to use a custom load factor Hello guys, I had seen the `Dictionary` class does not allow the use of a custom `load factor`, this may allow many optimizations, as the case we want to create a dictionary of known initial size and it will be completely filled, but we don't want that resizing operations occurs, for example it would be possible setting the `load factor` to `1.0F`. The class constructors below may be added: ``` csharp public Dictionary(int capacity, float loadFactor); public Dictionary(int capacity, float loadFactor, IEqualityComparer comparer) ``` Simirlarly to `Java`'s `HashMap` class constructor: ``` java public HashMap(int initialCapacity, float loadFactor); ``` When the `load factor` is not known, it should take a default value, for example `0.75F`. Thanks a lot :smile: and excuse me for any inconvenience. +529 area-Infrastructure Clean target removes dependencies "The ""Clean"" target of the build script intentionally removes the ""src\packages"" directory, causing the next build to have to restore them again. This is unnecessary, and atypical compared to most build scripts. ""Clean"" typically removes the outputs of the build process, not the inputs. If there is a need for an ability to wipe out the packages directory, I propose putting this functionality under a separate target, ""CleanDependencies"". " +537 area-System.Globalization Refactor globalization extensions with PAL Simple refactoring to introduce a PAL layer into System.Globalization.Extensions. Cleaned up a few things along the way as well, e.g. factoring out some duplicated code into helpers, making a few fields readonly, etc. +538 area-System.Runtime New API proposal: null replacement with Option, Some and None "The .NET framework and C# have implemented a lot of ideas of functional programming. LINQ, lambdas and immutability are only a few examples. In my eyes this makes the real difference between Java and .NET Solving the [null reference problem](http://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare) would be the next great addition to the .NET framework borrowed from functional languages. So in this issue I want to propose the addition of a [Option type](http://en.wikipedia.org/wiki/Option_type) to the .NET Framework. # Background Taken from https://github.com/louthy/language-ext#null-reference-problem: > null must be the biggest mistake in the whole of computer language history. I realise the original designers of C# had to make pragmatic decisions, it's a shame this one slipped through though. So, what to do about the 'null problem'? > > null is often used to indicate 'no value'. i.e. the method called can't produce a value of the type it said it was going to produce, and therefore it gives you 'no value'. The thing is that when 'no value' is passed to the consuming code, it gets assigned to a variable of type T, the same type that the function said it was going to return, except this variable now has a timebomb in it. You must continually check if the value is null, if it's passed around it must be checked too. > > Option works in a very similar way to Nullable except it works with all types rather than just value types. It's a struct and therefore can't be null. An instance can be created by either calling Some(value), which represents a positive 'I have a value' response; Or None, which is the equivalent of returning null. > > So why is it any better than returning T and using null? It seems we can have a non-value response again right? Yes, that's true, however you're forced to acknowledge that fact, and write code to handle both possible outcomes because you can't get to the underlying value without acknowledging the possibility of the two states that the value could be in. This bulletproofs your code. You're also explicitly telling any other programmers that: ""This method might not return a value, make sure you deal with that"". This explicit declaration is very powerful. # Rationale and Usage So basically the `Option` type enforces developers to check if a return value has really a value. An example function returning an option would be something like this: ``` public Option GetCacheValue(string key) { if(cache.Keys.Contains(key)) { return cache[key]; //return new Some(cache[key]) //return new Option(cache[key]); } else { return Option.None; //return new Option(); } } ``` The consumer code would then look like this: ``` string value = GetCacheValue(key).Match( some: v => v, none: () => ""this is the default value"" ) ``` # Proposed API ``` public struct Option { // For creating a None public Option(); public Option(T value) public static readonly Option None = new Option(); public bool IsNone {get; }; public bool IsSome { get; } public static implicit operator Option(T value) public static implicit operator Option(OptionNone none) public TReturn Match(Func some, Func none); public static Option Some(T value); } ``` # Details - This was mainly inspired by https://github.com/louthy/language-ext/blob/master/LanguageExt.Core/Option.cs of @louthy # Open questions - [ ] Should there be a public `Value` property as an alternative to Match? - [ ] In which assembly would this be correct? Namespace? - [ ] Should Option be a struct (security, since it cannot be null) or an interface (usability, since `Option` is then also an `Option`)? Thoughts? " +539 area-Meta Improve flow of readme Changed the ordering of content and a few pieces of wording. Primary goal was to pop contributing opportunities as early as possible in the readme, since the components list is getting quite long. We may want to do something different with the list as it grows even longer, but we'll not worry about that now. +540 area-System.Xml Remove double type checks in System.Xml Replace code like this: ``` if (obj is Foo) ((Foo)obj).DoSomething(); ``` with ``` Foo foo = obj as Foo; if (foo != null) foo.DoSomething(); ``` Most of these changes were verified in #491 and #482, but these PRs were reverted due reasons non-related with these changes. +549 area-System.IO DriveInfo tests fail if current user uses SUBST On my machine I'm using SUBST to map folders as drives. This causes the the drive info tests to fail: ``` System.IO.FileSystem.DriveInfoTests.Get_VolumeLabel.Test01 [FAIL] System.IO.IOException : The directory is not a subdirectory of the root directory. Stack Trace: p:\oss\corefx\src\System.IO.FileSystem.DriveInfo\src\System\IO\DriveInfo.Windows.cs(235,0): at System.IO.DriveInfo.set_VolumeLabel(String value) p:\oss\corefx\src\System.IO.FileSystem.DriveInfo\tests\GetVolumeLabelTests.cs(74,0): at System.IO.FileSystem.DriveInfoTests.Get_VolumeLabel.Test01() System.IO.FileSystem.DriveInfoTests.Set_VolumeLabel.Test01 [FAIL] System.IO.IOException : The directory is not a subdirectory of the root directory. Stack Trace: p:\oss\corefx\src\System.IO.FileSystem.DriveInfo\src\System\IO\DriveInfo.Windows.cs(235,0): at System.IO.DriveInfo.set_VolumeLabel(String value) p:\oss\corefx\src\System.IO.FileSystem.DriveInfo\tests\SetVolumeLabelTests.cs(75,0): at System.IO.FileSystem.DriveInfoTests.Set_VolumeLabel.Test01() ``` I would expect the drive info tests to be resilient to this. +572 area-System.Console Initial commit of System.Console tests +574 area-System.Collections Add PriorityQueue to Collections "See [**LATEST Proposal**](https://github.com/dotnet/corefxlab/blob/master/docs/specs/priority-queue.md) in corefxlab repo. # Second Proposal options Proposal from https://github.com/dotnet/corefx/issues/574#issuecomment-307971397 ### Assumptions Elements in priority queue are unique. If they are not, we would have to introduce 'handles' of items to enable their update/remove. Or the update/remove semantics would have to apply to first/all, which is weird. Modeled after [`Queue`](https://apisof.net/catalog/System.Collections.Generic.Queue%3CT%3E) ([MSDN link](https://msdn.microsoft.com/en-us/library/7977ey2c(v=vs.110).aspx)) ### API ```c# public class PriorityQueue : IEnumerable, IEnumerable<(TElement element, TPriority priority)>, IReadOnlyCollection<(TElement element, TPriority priority)> // ICollection not included on purpose { public PriorityQueue(); public PriorityQueue(IComparer comparer); public IComparer Comparer { get; } public int Count { get; } public bool IsEmpty { get; } public bool Contains(TElement element); // Peek & Dequeue public (TElement element, TPriority priority) Peek(); // Throws if empty public (TElement element, TPriority priority) Dequeue(); // Throws if empty public bool TryPeek(out TElement element, out TPriority priority); // Returns false if empty public bool TryDequeue(out TElement element, out TPriority priority); // Returns false if empty // Enqueue & Update public void Enqueue(TElement element, TPriority priority); // Throws if it is duplicate public void Update(TElement element, TPriority priority); // Throws if element does not exist public void EnqueueOrUpdate(TElement element, TPriority priority); public bool TryEnqueue(TElement element, TPriority priority); // Returns false if it is duplicate (does NOT update it) public bool TryUpdate(TElement element, TPriority priority); // Returns false if element does not exist (does NOT add it) public void Remove(TElement element); // Throws if element does not exist public bool TryRemove(TElement element); // Returns false if element does not exist public void Clear(); public IEnumerator<(TElement element, TPriority priority)> GetEnumerator(); IEnumerator IEnumerable.GetEnumerator(); // // Selector part // public PriorityQueue(Func prioritySelector); public PriorityQueue(Func prioritySelector, IComparer comparer); public Func PrioritySelector { get; } public void Enqueue(TElement element); public void Update(TElement element); } ```` **Open questions:** 1. Class name `PriorityQueue` vs. `Heap` 2. Introduce `IHeap` and constructor overload? (Should we wait for later?) 3. Introduce `IPriorityQueue`? (Should we wait for later - `IDictionary` example) 4. Use selector (of priority stored inside the value) or not (5 APIs difference) 5. Use tuples `(TElement element, TPriority priority)` vs. `KeyValuePair` * Should `Peek` and `Dequeue` rather have `out` argument instead of tuple? 6. Is `Peek` and `Dequeue` throwing useful at all? ----------------------------------------------------------------------------------------------- # Original Proposal Issue https://github.com/dotnet/corefx/issues/163 requested the addition of a priority queue to the core .NET collection data structures. This post, while a duplicate, is intended to act the formal submission to the corefx API Review Process. The issue contents are the _speclet_ for a new System.Collections.Generic.PriorityQueue type. I will be contributing the PR, if approved. ## Rationale and Usage The .NET Base Class Libraries (BCL) currently lacks support for ordered producer-consumer collections. A common requirement of many software applications is the ability generate a list of items over time and process them in an order different from the order they were received in. There are three generic data structures within the System.Collections hierarchy of namespaces that supported a sorted collection of items; System.Collections.Generic.SortedList, System.Collections.Generic.SortedSet, and System.Collections.Generic.SortedDictionary. Of these, SortedSet and SortedDictionary are not appropriate for producer-consumer patterns that generate duplicate values. The complexity of SortedList is Θ(n) worst case for both Add and Remove. A much more memory and time efficient data structure for ordered collections with producer-consumer usage patterns is a priority queue. Other than when capacity resizing is necessary, worse case insertion (enqueue) and remove top (dequeue) performance is Θ(log n) - far better than the existing options that exist in the BCL. Priority queues have a wide degree of applicability across different classes of applications. The Wikipedia page on Priority Queues offers a list of many different well understand use cases. While highly specialized implementations may still require custom priority queue implementations, a standard implementation would cover a broad range of usage scenarios. Priority queues are particularly useful in scheduling the output of multiple producers, which is an important pattern in highly parallelized software. It's worth noting that both the C++ standard library and Java offer priority queue functionality as part of their basic APIs. ## Proposed API ``` C# namespace System.Collections.Generic { /// /// Represents a collection of objects that are removed in a sorted order. /// /// Specifies the type of elements in the queue. [DebuggerDisplay(""Count = {count}"")] [DebuggerTypeProxy(typeof(System_PriorityQueueDebugView<>))] public class PriorityQueue : IEnumerable, ICollection, IEnumerable, IReadOnlyCollection { /// /// Initializes a new instance of the class /// that uses a default comparer. /// public PriorityQueue(); /// /// Initializes a new instance of the class /// that has the specified initial capacity. /// /// The initial number of elements that the can contain. /// is less than zero. public PriorityQueue(int capacity); /// /// Initializes a new instance of the class /// that uses a specified comparer. /// /// The to use when comparing elements. /// is null. public PriorityQueue(IComparer comparer); /// /// Initializes a new instance of the class /// that contains elements copied from the specified collection and uses a default comparer. /// /// The collection whose elements are copied to the new . /// is null. public PriorityQueue(IEnumerable collection); /// /// Initializes a new instance of the class /// that contains elements copied from the specified collection and uses a specified comparer. /// /// The collection whose elements are copied to the new . /// The to use when comparing elements. /// /// is null. -or- /// is null. /// public PriorityQueue(IEnumerable collection, IComparer comparer); /// /// Initializes a new instance of the class that is empty, /// has the specified initial capacity, and uses a specified comparer. /// /// The initial number of elements that the can contain. /// The to use when comparing elements. /// is less than zero. /// is null. public PriorityQueue(int capacity, IComparer comparer); /// /// Gets the for the . /// /// /// The that is used when /// comparing elements in the . /// public IComparer Comparer { get; } /// /// Gets the number of elements contained in the . /// /// The number of elements contained in the . public int Count { get; } /// /// Adds an object to the into the by its priority. /// /// /// The object to add to the . /// The value can be null for reference types. /// public void Enqueue(T item); /// /// Removes and returns the object with the lowest priority in the . /// /// The object with the lowest priority that is removed from the . /// The is empty. public T Dequeue(); /// /// Returns the object with the lowest priority in the . /// /// The is empty. public T Peek(); /// /// Removes all elements from the . /// public void Clear(); /// /// Determines whether an element is in the . /// /// /// The object to add to the end of the . /// The value can be null for reference types. /// /// /// true if item is found in the ; otherwise, false. /// public bool Contains(T item); /// /// Copies the elements of the to an , /// starting at a particular index. /// /// /// The one-dimensional Array that is the /// destination of the elements copied from the . /// The Array must have zero-based indexing. /// /// The zero-based index in at which copying begins. /// is null. /// /// is less than zero. -or- /// is equal to or greater than the length of the /// /// /// The number of elements in the source is /// greater than the available space from to the end of the destination /// . /// public void CopyTo(T[] array, int arrayIndex); /// /// Copies the elements of the to an /// , starting at a particular index. /// /// /// The one-dimensional Array that is the /// destination of the elements copied from the . /// The Array must have zero-based indexing. /// /// The zero-based index in at which copying begins. /// is null. /// is less than zero. /// /// is multidimensional. -or- /// does not have zero-based indexing. -or- /// is equal to or greater than the length of the -or- /// The number of elements in the source is /// greater than the available space from to the end of the destination /// . -or- /// The type of the source cannot be cast automatically /// to the type of the destination . /// void ICollection.CopyTo(Array array, int index); /// /// Copies the elements stored in the to a new array. /// /// /// A new array containing a snapshot of elements copied from the . /// public T[] ToArray(); /// /// Returns an enumerator that iterates through the /// /// An enumerator for the contents of the . public Enumerator GetEnumerator(); /// /// Returns an enumerator that iterates through the /// /// An enumerator for the contents of the . IEnumerator IEnumerable.GetEnumerator(); /// /// Returns an enumerator that iterates through the . /// /// An that can be used to iterate through the collection. IEnumerator IEnumerable.GetEnumerator(); /// /// Sets the capacity to the actual number of elements in the , /// if that number is less than than a threshold value. /// public void TrimExcess(); /// /// Gets a value that indicates whether access to the is /// synchronized with the SyncRoot. /// /// true if access to the is synchronized /// with the SyncRoot; otherwise, false. For , this property always /// returns false. bool ICollection.IsSynchronized { get; } /// /// Gets an object that can be used to synchronize access to the /// . /// /// /// An object that can be used to synchronize access to the /// . /// object ICollection.SyncRoot { get; } public struct Enumerator : IEnumerator { public T Current { get; } object IEnumerator.Current { get; } public bool MoveNext(); public void Reset(); public void Dispose(); } } } ``` ## Details - Implementation data structure will be a binary heap. Items with a greater comparison value will be returned first. (descending order) - Time complexities: | Operation | Complexity | Notes | | --- | --- | --- | | Construct | Θ(1) | | | Construct Using IEnumerable | Θ(n) | | | Enqueue | Θ(log n) | | | Dequeue | Θ(log n) | | | Peek | Θ(1) | | | Count | Θ(1) | | | Clear | Θ(N) | | | Contains | Θ(N) | | | CopyTo | Θ(N) | Uses Array.Copy, actual complexity may be lower | | ToArray | Θ(N) | Uses Array.Copy, actual complexity may be lower | | GetEnumerator | Θ(1) | | | Enumerator.MoveNext | Θ(1) | | - Additional constructor overloads that take the System.Comparison delegate were intentionally omitted in favor of a simplified API surface area. Callers can use Comparer.Create to convert a function or Lambda expression to an IComparer interface if necessary. This does require the caller to incur a one-time heap allocation. - Although System.Collections.Generic is not yet part of corefx, I propose that this class be added to corefxlab in the meantime. It can be moved to the primary corefx repository once System.Collections.Generic are added and there is consensus that its status should be elevated from experimental to an official API. - An IsEmpty property was not included, since there is no additional performance penalty calling Count. The majority of the collection data structures do not include IsEmpty. - The IsSynchronized and SyncRoot properties of ICollection were implemented explicitly as they are effectively obsolete. This also follows the pattern used for the other System.Collection.Generic data structures. - Dequeue and Peek throw an InvalidOperationException when the queue is empty to match the established behavior of System.Collections.Queue. - IProducerConsumerCollection was not implemented as its documentation states that it is only intended for thread-safe collections. ## Open Questions - Is avoiding an additional heap allocation during calls to GetEnumerator when using foreach a strong enough rationale for including the nested public enumerator structure? - Should CopyTo, ToArray, and GetEnumerator return results in prioritized (sorted) order, or the internal order used by the data structure? My assumption is that the internal order should be returned, as it doesn't incur any additional performance penalties. However, this is a potential usability issue if a developer thinks of the class as a ""sorted queue"" rather a priority queue. - Does adding a type named PriorityQueue to System.Collections.Generic cause a potentially breaking change? The namespace is heavily used, and could cause a source compatibility problem for projects that include their own priority queue type. - Should items be dequeued in ascending or descending order, based on the output of IComparer? (my assumption is ascending order, to match the normal sorting convention of IComparer). - Should the collection be 'stable'? In other words, should two items with equal IComparison results be dequeued in the exact same order they are enqueued in? (my assumption is this isn't needed) ## Updates - Fixed complexity of 'Construct Using IEnumerable' to Θ(n). Thanks @svick. - Added another option question regarding whether the priority queue should be ordered in ascending or descending order compared to the IComparer. - Removed NotSupportedException from explicit SyncRoot property to match behavior of other System.Collection.Generic types instead of using the newer pattern. - Made the public GetEnumerator method return a nested Enumerator struct instead of IEnumerable, similar to the existing System.Collections.Generic types. This is an optimization to avoid a heap (GC) allocation when using a foreach loop. - Removed ComVisible attribute. - Changed complexity of Clear to Θ(n). Thanks @mbeidler. " +579 area-System.Globalization System.Globalization.Extensions.Tests fail on Windows 7 "On Win7 (7601) the globalization extensions have several failures: System.Globalization.Extensions.Tests.IdnaConformanceTests.TestAsciiPositive [FAIL] System.ArgumentException : Decoded string is not a valid IDN name. Parameter name: Unicode System.Globalization.Extensions.Tests.IdnaConformanceTests.TestUnicodePositive [FAIL] Expected: <+á.+ɦê>. Actual:. Error on line number 61 System.Globalization.Extensions.Tests.IdnaConformanceTests.TestAsciiNegative [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: (No exception was thrown) System.Globalization.Extensions.Tests.NormalizationAll.NormalizeTest [FAIL] Assert.False() Failure (many lines like ""'\x0068' is not matched with the normalized form '\x2095 with Géò normalization"") " +581 area-System.Xml Improve performance and allocations of xpath string functions "Improve Translate perf by ~20% and allocations by around 50% (dependant on string) Improve Normalize perf by ~30% and allocations by around 55% (dependant on string) General: We are always iterating through every char so we can get them all in one go and use that as our temporary buffer instead of the StringBuilder. Because these functions can remove chars there is a read point in the buffer and an update point. The update point is always the same place or less than the read point. Normalize: No need for XmlConvertEx.TrimString as we can start ""firstSpace"" as false to trim the start and all trailing whitespace at the end is combined into one space. We can just check that at the end which avoids a trim string creation. " +584 area-System.Linq ParallelEnumerable.Range(...).AsOrdered().Concat(...) ...out of order I'm getting a pretty distressing error: ``` int leftSize = 4; int rightSize = 4; int[] leftData = new int[leftSize]; for (int i = 0; i < leftSize; i++) leftData[i] = i; int[] rightData = new int[rightSize]; for (int i = 0; i < rightSize; i++) rightData[i] = i; ParallelQuery query = ParallelEnumerable.Range(0, leftSize).AsOrdered().Concat(ParallelEnumerable.Range(0, rightSize)); Assert.True(leftData.Concat(rightData).SequenceEqual(query)); ``` ...fails. The expected sequence is `[0, 1, 2, 3, 0, 1, 2, 3]`, and the actual result of this `Concat(...)` is `[0, 0, 1, 1, 2, 2, 3, 3]`. Adding `AsOrdered()` to the inner range has no effect. There is no history of changes for `Concat(...)`, although the actual problem may be elsewhere. This issue is **NOT** present in the current .NET distribution (ie, creating a brand-new C# project won't reproduce the error, this is something happening in corefx, which is a really good thing)/ Generating the parallel sequence via `Enumerable.Range(...).AsParallel().AsOrdered()` _also_ fails, but seems to be putting the elements in non-deterministic order (the last run was `[0, 1, 1, 2, 2, 3, 0, 3]`). However, generating the sequence via `leftData.AsParallel().AsOrdered().Concat(leftData.AsParallel())` returns the expected sequence (both of them have to be generated via backing arrays, or you get the re-ordered or non-deterministic results). `ParallelEnumerable.Range(...).AsOrdered()` _does_ return an ordered sequence. The following test succeeds: ``` int count = 8; ParallelQuery elements = ParallelEnumerable.Range(0, count).AsOrdered().Select(x => (object)x); int counter = 0; Assert.All(elements.Cast(), x => Assert.Equal(counter++, x)); Assert.Equal(count, counter); ``` +585 area-System.Linq Fix PLINQ concat ordering bug For .NET Core, some (temporary) changes were made to PLINQ to remove some of its usage of generics in order to workaround some (temporary) constraints of the runtime. In doing so, this bug slipped in, with the wrong concat key being created for an element in the sequence, causing erroneous results. This PR fixes the bug and adds a test case that fails before and succeeds after the fix. (Fixes #584) +589 area-System.Linq Address remaining PLINQ test ActiveIssues A bunch of PLINQ tests are disabled as ActiveIssue. This commit fixes all of them (issues #176 and #240), except for #235, which is addressed by a separate PR (#585) for a product bug rather than test issues. I did not do a general pass through the PLINQ tests, even though they could use it. PlinqModesTests - There's an explicit comment at the top of the test that it's not meant for DOP==1 (it verifies that work happens in parallel), and then apparently we were surprised when it was failing on single core machines that result in DOP == 1 ;) UnionIntersectDistinctTests.RunOreredUnionTest1 - There's no reason this test should fail. If it does, there's a bug to be investigated. I'm assuming it was actually stalling because of another test running with it concurrently. WithCancellationTests - A bunch of these tests were scheduling tasks to asynchronously cancel/dispose a query, and the query was written to take a certain amount of time to hopefully allow for cancellation to take place. But it appears as part of the tests being ported, those timeouts were simply commented out, making it extremely likely the tests would fail. I've just rewritten them to do the cancellation as part of the query's execution rather than using a separate asynchronous task. I also deleted some duplicative tests. And I made some tests that still did explicit delays/timeouts to be OuterLoop. +594 area-System.Runtime Parsing string to enum with digit as first char takes a very long time "Note: This has to do with mscorlib. https://github.com/Microsoft/referencesource sent me here, but this doesn't look like the place where this is handled. Am I right? When parsing strings to enums with TryParse, in some cases this takes way longer than in all the other cases. After a bit of research I found that all the strings with a digit as first char are slower. This is due to the attempt to parse the string to the underlying type (https://github.com/Microsoft/referencesource/blob/master/mscorlib/system/enum.cs#L441) with a Convert.ChangeType, which can throw an exception, because further down the line it uses (for example) Int32.Parse instead of TryParse (https://github.com/Microsoft/referencesource/blob/master/mscorlib/system/convert.cs#L1121). The time it takes to create the Exception is significant. In my project I ended up writing a new Enum parser to circumvent this issue. ""Something"": 240.49 ns per parse ""1Somethin"": 37178.57 ns per parse ""123456789"": 485.63 ns per parse As users expect Convert.ToXxx() to throw an exception when it fails, changing this is a bad idea I think. Possible solutions I can think of: - Extend the Convert class with Try-methods that don't throw exceptions, and use those while trying to parse an enum (much work) - Instead of checking whether the first character is a digit (https://github.com/Microsoft/referencesource/blob/master/mscorlib/system/enum.cs#L434), change that line to a TryParse of the whole string (the easier way) " +598 area-Meta Improve flow of readme The readme file contains several pieces of information, of which the list of components is the most substantial. I pulled the engagement-oriented content above the component list, to make it easier to read. I also attempted to better clarify and position CoreFX within .NET Core. At the point that CoreCLR shows up, this will be more important. Supersedes PR #539, which had the wrong baseline and targeted the wrong branch. +617 area-System.Diagnostics Failure in System.Diagnostics.FileVersionInfoTest on Chinese Windows 8.1 "Four out of the six tests in System.Diagnostics.FileVersionInfoTest failed when `build` on Chinese Windows 8.1. They might also fail on other non-ENU OS'es. - FileVersionInfoTest.FileVersionInfo_Normal [FAIL] Error - Property 'Language' incorrect. Expected == ""English (United States)"", Actual == ""\u82f1\u8bed(\u7f8e\u56fd)"", Alternate == <null> - FileVersionInfoTest.FileVersionInfo_Chinese [FAIL] Error - Property 'Language' incorrect. Expected == ""Chinese (Simplified)"", Actual == ""\u4e2d\u6587(\u7b80\u4f53)"", Alternate == ""Chinese (Simplified, PRC)"" - FileVersionInfoTest.FileVersionInfo_DifferentFileVersionAndProductVersion [FAIL] Error - Property 'Language' incorrect. Expected == ""Process Default Language"", Actual == ""\u8fdb\u7a0b\u9ed8\u8ba4\u8bed\u8a00"", Alternate == <null> > - FileVersionInfoTest.FileVersionInfo_CustomManagedAssembly [FAIL] Error - Property 'Language' incorrect. Expected == ""Language Neutral"", Actual == ""\u8bed\u8a00\u4e2d\u6027"", Alternate == <null> " +621 area-Infrastructure Multiple nuget src\ dirs? Why are there multiple nuget src dirs.? There is a .nuget with a single file and a nuget with multiple files. Was this an oversight? Can I fix/combine them? +624 area-System.Diagnostics FileVersionInfo test: Get expected values using VerLanguageName call #617 It seems that VerLanguageName returns value in Windows locale no matter what thread locale is set, so must get expected values using that function. Fixes #617 Also, as really minor addition - change newline from \r\n to Environment.NewLine to match with same change in FileVersionInfo class (since it now uses AppendLine) +625 area-Meta HelloWorld WinRT Dependency? Hello, I'm trying to build the HelloWorld demo based off the Blog post instructions. It looks like the nuget.org packages aren't quite synced up, so that's a shame and I'm using 22416 instead. After I build and attempt to run the program I get an error stating that winrt-string is missing. Should this be working on Windows 7? -Thanks +626 area-System.Runtime Deprecate DateTime.Now (The original issue was at dotnet/coreclr#45), but I've moved it over here as the meat of the issue is about framework design. From @mj1856 I would like to propose that [`DateTime.Now`](https://github.com/dotnet/coreclr/blob/ef1e2ab328087c61a6878c1e84f4fc5d710aebce/src/mscorlib/src/System/DateTime.cs#L904-L920) be deprecated. This is most developer's first introduction to working with time, and is also a root cause of bugs related to daylight saving time and time zones. Developers should get in the habit of thinking globally, rather than locally - especially when designing for the web. Even on desktop and mobile applications that only run in a single time zone, this can create the kind of bugs that pull developers out of bed at 2AM on the morning of a daylight saving time transition. More supporting arguments: - [The Case Against DateTime.Now](http://www.codeofmatt.com/2013/04/25/the-case-against-datetime-now/) - Matt Johnson (me) - [What's Wrong with DateTime Anyway](http://blog.nodatime.org/2011/08/what-wrong-with-datetime-anyway.html) - Jon Skeet Given the widespread nature of this API, I suggest _not_ removing it from coreclr - but rather marking it with an `[Obsolete]` attribute. I can send a PR if the suggestion is approved. +636 area-System.Diagnostics Possible typo in FileVersionInfoTest "This is low priority, but logging here so it doesn't get lost. In [FileVersionInfoTest.cs line 239](https://github.com/dotnet/corefx/blob/0252409de5d77d4a104903a68d9ee34d54992e54/src/System.Diagnostics.FileVersionInfo/tests/FileVersionInfoTest.cs#L239): ``` s_fviSecondNativeLibrary.ProductName = ""Unkown_Product_Name""; ``` ""Unkown"" should be ""Unknown"", but correcting it fails the test. It should probably be first corrected wherever it originates from. Thanks. " +641 area-System.Xml Some System.Xml.Linq.XDocument tests are failing Some of the tests used to print error messages but did not fail. I added Asserts assuming that they fail and created this issue. I did not check if this is a test bug, product bug or not a bug at all (we need to check what happens on desktop and if this is something we should fix). +642 area-System.Xml Clean up System.Xml.Linq.XDocument tests "- [x] Remove spam messages (there are few left) - [x] Some of the tests might be failing but not throwing (look at the messages - https://github.com/dotnet/corefx/issues/641) - [x] Convert tests to use Xunit (right now they are only partially) - [x] Replace if (expr) throw new TestException, etc with proper use of Xunit asserts " +644 area-System.Reflection Proposal: Additional methods to aid in reflection of generic types "I don't know if this is the appropriate place to make such a suggestion. ## Problem I've always found it a bit annoying that the reflection APIs in .NET haven't been improved much since the advent of generics and when working with generic types or methods that considerable additional boilerplate needs to be written in order to correctly work with these types. ## Solution In the past I've implemented helper extension methods which significantly simplify reflection over generic types and methods. These extension methods largely work on top of the public surface of the `System.Type` class, although a few dealing with generic methods did resort to reflection in order to call internal methods to better detect and deal with ambiguities. I think that it would be very convenient to have these methods (or something like them) considered for addition into the core framework. I am willing and able to share my extension methods and could start a branch if there is traction to this idea. ### FindGenericInterfaces Identical to `Type.FindInterfaces` except that it will match on open generic interface types. ``` cs public delegate bool GenericTypeFilter(Type type, Type[] genericArguments, object filterCriteria); public static Type[] FindGenericInterfaces(this Type type, Type genericInterfaceType); public static Type[] FindGenericInterfaces(this Type type, Type genericInterfaceType, GenericTypeFilter filter, object filterCriteria); Type[] interfaces = typeof(int[]).FindGenericInterfaces(typeof(IEnumerable<>), (type, types, criteria) => types[0] == typeof(int), null); ``` ### ImplementsInterface Returns `true` if the type implements the specified interface. The interface can either be an open generic type or a closed constructed type. If the case of the former the overloads can be used to return the generic type arguments. For those overloads that accept a specific count of `out` parameters the generic type arguments must match the count of the `out Type` arguments. For the overload that accepts a `Type[]` the number of generic type arguments must match the length of the array. The overload that accepts an `out Type[]` will match any number of generic type arguments. _I also have `IsSubclassOf` and `Is` extension methods that function in almost the same manner except that the first matches if the type is a subclass of the specified type and the second matches if the type is a subclass of, implements or is of the specified type._ ``` cs public static bool ImplementsInterface(this Type type, Type interfaceType); public static bool ImplementsInterface(this Type type, Type interfaceType, out Type genericArgument); public static bool ImplementsInterface(this Type type, Type interfaceType, out Type genericArgument1, out Type genericArgument2); public static bool ImplementsInterface(this Type type, Type interfaceType, out Type genericArgument1, out Type genericArgument2, out Type genericArgument3); public static bool ImplementsInterface(this Type type, Type interfaceType, Type[] genericArguments); public static bool ImplementsInterface(this Type type, Type interfaceType, out Type[] genericArguments); Type elementType, keyType; if (typeof(int[]).ImplementsInterface(typeof(IEnumerable)) { ... } if (typeof(int[]).ImplementsInterface(typeof(IEnumerable<>), out elementType)) { ... } if (typeof(Dictionary).ImplementsInterface(typeof(IDictionary<>), out keyType, out elementType)) { ... } Type[] arguments = new Type[2]; if (typeof(Dictionary).ImplementsInterface(typeof(IDictionary<>), arguments)) { ... } arguments = null; if (typeof(Dictionary).ImplementsInterface(typeof(IDictionary<>), out arguments)) { ... } ``` ### GetGenericMethod _Separated into proposal [Add GetGenericMethod method to simplify finding generic methods via reflection](https://github.com/dotnet/corefx/issues/16567)._ Returns the generic method with the same number of specified generic arguments. The generic arguments are checked for compatibility with the generic type constraints. If a parameter type list is also specified then the parameter types must be acceptable for the given generic type arguments. _In order to properly handle matches and ambiguity resolution I did have to break out reflection in order to invoke the internal members `RuntimeType.FilterApplyMethodBase`, `DefaultBinder.FindMostDerivedNewSlotMeth` and `DefaultBinder.CompareMethodSigAndName`. A built-in implementation would not require to rely on any reflection._ ``` cs public static MethodInfo GetGenericMethod(this Type type, string name, Type[] genericArgs); public static MethodInfo GetGenericMethod(this Type type, string name, Type[] genericArgs, BindingFlags bindingAttrs); public static MethodInfo GetGenericMethod(this Type type, string name, Type[] genericArgs, Type[] types); public static MethodInfo GetGenericMethod(this Type type, string name, Type[] genericArgs, Type[] types, ParameterModifier[] modifiers); public static MethodInfo GetGenericMethod(this Type type, string name, Type[] genericArgs, BindingFlags bindingAttrs, Binder binder, Type[] types, ParameterModifier[] modifiers); public static MethodInfo GetGenericMethod(this Type type, string name, Type[] genericArgs, BindingFlags bindingAttrs, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers); public class Foo { public void Bar(object value) { ... } public void Bar(T value) { ... } } MethodInfo genericBar = typeof(Foo).GetGenericMethod(""Bar"", new Type[] { typeof(string) }, new Type[] { typeof(string) }); ``` " +645 area-System.IO Support long file names on Windows Now would seem to be the time to finally tackle the MAX_PATH nightmare. With the Win32FileSystem and other abstractions we can convert incoming paths to their long path equivalent if needed before handing off to the actual Win32 APIs. It appears that all of the APIs currently in use support the extended syntax (\?), with the exception of Get/SetDirectory. +649 area-System.Runtime String.Equals isn't intuitive and forces us to do the OrdinalIgnoreCase thing "We're doing a sample and we are FOREVER doing this ``` if (sort.Equals(""Title"", StringComparison.OrdinalIgnoreCase)) ``` I think it's time for an overload or an extension that ""does the right thing."" This is a 10 year old pattern and if the default is wrong (as we tell people to do this) then let's make a better method. Everyone has a version and extension that does this. " +652 area-Meta Remove dead code Many libraries and tests has some dead code. Please remove it per library. At minimum we should run FxCop (list might not be complete, following is just a list of folders under src/) - [ ] Microsoft.Win32.Primitives - [ ] Microsoft.Win32.Registry - [ ] System.Collections.Concurrent - [ ] System.Collections.Immutable - [ ] System.Collections.NonGeneric - [ ] System.Collections.Specialized - [ ] System.ComponentModel.Annotations - [ ] System.ComponentModel.Primitives - [ ] System.ComponentModel - [ ] System.Console - [ ] System.Diagnostics.FileVersionInfo - [ ] System.Diagnostics.Process - [ ] System.Globalization.Extensions - [ ] System.IO.FileSystem.DriveInfo - [ ] System.IO.FileSystem.Primitives - [ ] System.IO.FileSystem - [ ] System.IO.MemoryMappedFiles - [ ] System.IO.Pipes - [x] System.IO.UnmanagedMemoryStream (https://github.com/dotnet/corefx/pull/1080) - [ ] System.Linq.Parallel - [ ] System.Numerics.Vectors - [ ] System.Reflection.Metadata - [x] System.Resources.ResourceWriter - [ ] System.Runtime - [ ] System.Text.Encoding.CodePages - [ ] System.Text.RegularExpressions - [x] System.Threading.Tasks.Dataflow - [ ] System.Xml.XDocument - [ ] System.Xml.XPath.XDocument - [ ] System.Xml.XPath.XmlDocument - [ ] System.Xml.XPath - [ ] System.Xml.XmlDocument +657 area-System.Runtime System.Runtime tests fail on Win10, non en-US culture The code for the Single and Double.TryParse and ToString tests seem to assume OS < Win10 and CultureInfo = en-US. Here's a failure running on Win10 due to the same infinity issue as #136 ``` DoubleTests.TestToString [FAIL] Assert.Equal() Failure Γåô (pos 0) Expected: Infinity Actual: Γê₧ Γåæ (pos 0) Stack Trace: D:\Src\corefx\src\System.Runtime\tests\System\Double.cs(181,0): at DoubleTests.TestToString() DoubleTests.TestTryParse [FAIL] Assert.True() Failure Finished: System.Runtime.Tests Stack Trace: D:\Src\corefx\src\System.Runtime\tests\System\Double.cs(294,0): at DoubleTests.TestTryParse() SingleTests.TestToString [FAIL] Assert.Equal() Failure Γåô (pos 0) Expected: Infinity Actual: Γê₧ Γåæ (pos 0) Stack Trace: D:\Src\corefx\src\System.Runtime\tests\System\Single.cs(181,0): at SingleTests.TestToString() SingleTests.TestTryParse [FAIL] Assert.True() Failure Stack Trace: D:\Src\corefx\src\System.Runtime\tests\System\Single.cs(294,0): at SingleTests.TestTryParse() ``` I did not repro similar issues with non en-US culture, but I think from code inspection it won't work there either (even on Win7 or Win8)... +659 area-System.Runtime GCTest TotalMemory tests failing. ``` GCTests.TotalMemory [FAIL] Assert.True() Failure Stack Trace: d:\j\workspace\dotnet_corefx_prtest\Config\Release\OS\Windows_NT\Tests\false\label\windows\src\System.Runtime\tests\System\GC.cs(68,0): at GCTests.TotalMemory() ``` See: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_prtest/Config=Release,OS=Windows_NT,Tests=false,label=windows/91/console +668 area-System.Runtime Implement a generic Enum.Parse method Although the Enum.TryParse method (https://msdn.microsoft.com/en-us/library/system.enum.tryparse(v=vs.110).aspx) has two generic overloads, the Enum.Parse overloads (https://msdn.microsoft.com/en-us/library/System.Enum.Parse(v=vs.110).aspx) were added to the .NET Framework in version 1.0, before the introduction of generics. They create the need for rather redundant code, such as ``` Colors colorValue = (Colors) Enum.Parse(typeof(Colors), colorString); ``` which entails the need to add an additional cast, as well as instantiate a Type object that represents the enumeration type. It would be nice to add generic Parse overloads that correspond to the generic TryParse overloads: ``` public static TEnum Enum.Parse(String value); public static TEnum Enum.Parse(String value, Boolean ignoreCase); ``` Note that there's also another open issue on improving the performance of Enum.TryParse at https://github.com/dotnet/corefx/issues/594. +674 area-System.Diagnostics FileVersionInfo tests' native assemblies and exes do not have sources We should at least provide the sources for these native binaries so that we can tell what's going on if we hit issues. The next time we need to make a change to these tests, it would also be worth getting the native binaries to build as vcxprojs, relying on the VS2013 prerequisite for now (see [System.ServiceProcess.ServiceController.Tests](https://github.com/dotnet/corefx/tree/v1.0/src/System.ServiceProcess.ServiceController/tests/System.ServiceProcess.ServiceController.Tests) for an example). When we start to light up tests cross-platform, we will be forced to clean this up and use CMake or some other solution for native binaries. cc @weshaggard +679 area-Infrastructure Refactor build to run tests based on targets and dependencies rather than properties "The build system currently runs tests by setting the RunTestsForProject to execute after PrepareForRun. Because we don't want to run the tests after a Visual Studio build (because VS has its own mechanisms for running tests), since #508 the BuildingInsideVisualStudio property is used to disable the RunTestsForProject target. Making the build system aware of the context in which its running in order to skip a target feels odd in a build system with a robust target and dependency mechanism. It seems to me that it would be more idiomatic for the build to expose its targets in such a way so that each context can use the target system to control what targets are run. In other words, do not include the RunTestsForProject in the dependency tree of the default target for the sub-project files (which is what Visual Studio will execute), but do include it in the dependency tree of the default target for the top-level build file. In practice, I believe this would just mean changing the default target for each sub-project to be Compile instead of Build. This would also have the positive effect of making the build IDE-agnostic, which is important as .NET Core becomes truly cross-platform. What would the value of the ""BuildingInsideVisualStudio"" property be from within Xamarin Studio, or SharpDevelop, or Sublime using [OmniSharp](http://www.omnisharp.net/)? Xamarin Studio actually sets BuildingInVisualStudio to true in order to try and increase compatibility, which is obviously not a desirable state of affairs. Let's try to reduce the need for such hacks by keeping the dependencies between the build and the IDE clean (i.e. one-way). " +682 area-Meta Contract.Assert vs Debug.Assert Some of the CoreFX libraries use Contract.Assert. Others use Debug.Assert. We should be consistent, and if possible sweep the source to unify this. +683 area-System.Console Why having System.Console.dll? Why having a new DLL called `System.Console.dll`? `System.Console` class is already in `mscorlib.dll` since .NET Framework 1.0 +684 area-System.Runtime Add non-throwing methods to Convert class "Convert class is the only method to convert boxed values to needed integer type. However, it throws exceptions, so it is too hard to implement behavior that matches simple explicit cast between integer types. As a solution - add TryXXX methods to Convert class. Additionally, it would be nice to have option to make Convert behave like explicit cast. For example, this is valid: ``` C# int a = -1; int b = (int)(uint)a; ``` But this is not: ``` C# int a = -1; int b = Convert.ToInt32(Convert.ToUInt32(a)); ``` This can be really useful when you process some data as ""just some bytes"" and you may get either signed or unsigned boxed value at input. As a possible solution - add overload that accepts second boolean argument and acts like an explicit integer cast. Example of this problems and required workaround can be seen in Enum class, in particular here: https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Enum.cs#L207 " +686 area-Meta (Proposal) Coding Guidelines. "The coding guidelines should be alter to permit the following styles. which aids the readability of the code. - Align on the `:` of named parameters rather than lefthand edge of parmeter name ``` c# public static ImmutableArray GetAllMethodBodyDiagnostics(CSharpCompilation compilation, CancellationToken cancellationToken) { DiagnosticBag diagnostics = DiagnosticBag.GetInstance(); CompileMethodBodies( compilation: compilation, moduleBeingBuilt: null, generateDebugInfo: false, hasDeclarationErrors: false, filter: null, filterTree: null, filterSpanWithinTree: null, diagnostics: diagnostics, cancellationToken: cancellationToken ); DocumentationCommentCompiler.WriteDocumentationCommentXml(compilation, null, null, diagnostics, cancellationToken); compilation.ReportUnusedImports(diagnostics, cancellationToken); return diagnostics.ToReadOnlyAndFree(); } ``` vs ``` c# public static ImmutableArray GetAllMethodBodyDiagnostics(CSharpCompilation compilation, CancellationToken cancellationToken) { DiagnosticBag diagnostics = DiagnosticBag.GetInstance(); CompileMethodBodies( compilation: compilation, moduleBeingBuilt: null, generateDebugInfo: false, hasDeclarationErrors: false, filter: null, filterTree: null, filterSpanWithinTree: null, diagnostics: diagnostics, cancellationToken: cancellationToken); DocumentationCommentCompiler.WriteDocumentationCommentXml(compilation, null, null, diagnostics, cancellationToken); compilation.ReportUnusedImports(diagnostics, cancellationToken); * return diagnostics.ToReadOnlyAndFree(); } ``` - Simple IF If the If statement is small and has no else, and the code block is small enough. The combined width is less than the 80 character width limit. ``` c# if( arg0 == null ) throw new ArgumentException( nameof( arg0 ) ); if( arg0 == null ) { throw new ArgumentException( nameof( arg0 ) ); }; ``` vs ``` c# if( arg0 == null ) { throw new ArgumentException( nameof( arg0 ) ); } ``` Consider multiple guards statements you are approaching halve of the length of the screen, ever before you've reached the core of the method. - Simple case clause ``` c# select ( value ) { case 0: return ""Zero""; case 1: return ""One""; case 2: return ""Two""; // ... case 9: return ""Nine""; default: return ""Foo""; } ``` vs ``` c# select ( value ) { case 0: return ""Zero""; case 1: return ""One""; case 2: return ""Two""; // ... case 9: return ""Nine""; default: return ""Foo""; } ``` 15 LoC rather than 25 or 35 if you need to include the `break` ``` case 0: output = ""Zero""; break; ``` - 2 space indentation Consider the case of pattern-matching, each scope gets indented, 5 levels of indentation and you're already used a quarter of the permitted code width. - Method Parameter align vertically If the method signature is getting ""too"" wide, then consider vertical alignment. ``` c# internal static MethodSymbol DefineScriptEntryPoint ( CSharpCompilation compilation, PEModuleBuilder moduleBeingBuilt, TypeSymbol returnType, bool hasDeclarationErrors, DiagnosticBag diagnostics ) { ``` ``` c# internal static MethodSymbol DefineScriptEntryPoint(CSharpCompilation compilation, PEModuleBuilder moduleBeingBuilt, TypeSymbol returnType, bool hasDeclarationErrors, DiagnosticBag diagnostics) { ``` **NOTE** I not say that the existing code should be altered (it would still be valid according to the guidelines) but allow pull-requests to use some permitted alternatives forms. Yes someone could submit a pull-request that changes the exist to use the alternatives. Whether that pull-request would be accepted is a different question. " +692 area-System.Runtime Add a non-generic version of Enum.TryParse These are the methods in Enum class related to string parsing. ``` c# public static object Parse(Type enumType, string value); public static object Parse(Type enumType, string value, bool ignoreCase); public static bool TryParse(string value, out TEnum result) where TEnum : struct; public static bool TryParse(string value, bool ignoreCase, out TEnum result) where TEnum : struct; ``` Apparently Parse is exposed only in non-generic form, while TryParse is only exposed in generic form. This is somewhat inconsistent. It is simple enough to call a non-generic method in a generic method, but not the other way around. So Parse can be made generic using the following helper. But it is a lot harder to wrap TryParse into TryParse(Type enumType) without reflection calls. ``` c# public static TEnum Parse(string value, bool ignoreCase) { return Enum.Parse(typeof(TEnum), value, ignoreCase); } ``` The suggestion is to add a non-generic Enum.TryParse method, the API signature would look like ``` c# public static bool TryParse(Type enumType, string value, out object result) public static bool TryParse(Type enumType, string value, bool ignoreCase, out object result) ``` +693 area-System.Runtime Add Enum.SetFlag and Enum.RemoveFlag to make bitwise flagging easier To maintain multiple bool states in a class, instead of declaring many bool fields, an enum flag can be used to compact these states in to a single member to optimize for memory usage. ``` c# [Flags] enum DirtyFlags { X = 1, Y = 1 << 1, Z = 1 << 2 }; DirtyFlags dirtyFlags = DirtyFlags.X | DirtyFlags.Y | DirtyFlags.Z; ``` It is simple to test if a flag is set using `Enum.HasFlag(DirtyFlags.X)`, but the scenario is not complete. Without the ability to set and remove a flag, the following code needs to be maintained manually: ``` c# // Setting a flag dirtyFlags |= DirtyFlags.X; // Removing a flag, this is harder to remember :( dirtyFlags &= ^DirtyFlags.X; ``` The suggestion is to add 2 methods to Enum to help set and clear a flag. ``` c# public bool HasFlag(Enum flag); // This method already exists public bool SetFlag(Enum flag); public bool RemoveFlag(Enum flag); ``` These methods should be aggressively inlined since bitwise manipulations is very likely to be used in a performance sensitive scenario. +694 area-Meta State policy on mscorlib "I see a lot of confusion around mscorlib, since it's part of coreclr project, but it feels more like part of corefx. Some issues are open here (and sent to coreclr, like #594), some are open there and sent to here (like #684). Plus, there is some classes that exist in both repos with some differences like ConcurrentDictionary (for example of pull request open to one repo and sent to another see dotnet/coreclr#63). And even tests for runtime classes are in corefx (but runtime classes itself are in coreclr). There should be something like ""rule of a thumb"" to rule this out. " +699 area-System.Collections Implement ForEachAsync in System.Collections.Concurrent @stephentoub has some great blog posts about higher level operations that can be implemented all using public API that exists today. Some of these would be great to see in the library itself: http://blogs.msdn.com/b/pfxteam/archive/2012/03/05/10278165.aspx In particular ``` C# public static Task ForEachAsync(this IEnumerable source, Func body) { return Task.WhenAll( from item in source select Task.Run(() => body(item))); } ``` And ``` C# public static Task ForEachAsync(this IEnumerable source, int dop, Func body) { return Task.WhenAll( from partition in Partitioner.Create(source).GetPartitions(dop) select Task.Run(async delegate { using (partition) while (partition.MoveNext()) await body(partition.Current); })); } ``` +700 area-System.Runtime Proposal: System.Date type "Currently, trying to use System.DateTime to represent just calendar dates is overkill and is an easy way to introduce bugs. SQL Server supports a native date-only type, and having a date-only type in .NET to match would be very handy. But not only from SQL: accepting an MVC action method parameter from an HTML5 input type=""date"" field would be simplified with a native Date type. Examples: ``` C# Date d = new Date(2015, 2, 9); Date d2 = Date.UtcToday; Date d3 = Date.LocalToday; // helper methods for adding/subtracting days, months, years, or TimeSpan Date d4 = d.AddDays(7); Date d5 = d.Subtract(TimeSpan.FromYears(2)); string s = d.ToString(); //--> ""2015-02-09"" // properties: int y = d.Year; int m = d.Month; int day = d.Day; DayOfWeek weekday = d.DayOfWeek; int doy = d.DayOfYear; // convert from DateTime: Date d6 = DateTime.UtcNow.ToDate(); Date d7 = (Date)DateTime.UtcNow; // convert to DateTime: DateTime dt = d.ToDateTime(); DateTime dt2 = (DateTime)d; // equivalent to new DateTime(d.Year, d.Month, d.Day) ``` " +701 area-Infrastructure Add Contract Reference Asssemblies to the repo We need to enabling building our contract reference assemblies in the CoreFX repo. They are be needed for a number of reasons: 1) We need to build them to put them in our nuget packages. 2) We need them to produce our facades for our nuget packages. 3) People would like to see a reference for what is supported (see #147 as example) and for what we will be bringing online overtime. We will need to figure out the structure we want to provide them in and provide the tooling for editing them. A strawman for the structure would be something like: src\System.Runtime\src\Contract\4.0.0.0\System.Runtime.cs|csproj src\System.Runtime\src\Contract\4.0.10.0\System.Runtime.cs|csproj src\System.Runtime\src\Contract\4.0.20.0\System.Runtime.cs|csproj +703 area-System.Globalization Open-source System.Globalization unit tests Note: The implementation of this contract lives in mscorlib in the [coreclr](https://github.com/dotnet/coreclr) repository, but we are planning to put tests in this repo and test against the NuGet package produced by the coreclr repo. +704 area-System.IO Open-source System.IO unit tests Note: The implementation of this contract lives in mscorlib in the [coreclr](https://github.com/dotnet/coreclr) repository, but we are planning to put tests in this repo and test against the NuGet package produced by the coreclr repo. +705 area-System.Reflection Open-source System.Reflection unit tests Note: The implementation of this contract lives in mscorlib in the [coreclr](https://github.com/dotnet/coreclr) repository, but we are planning to put tests in this repo and test against the NuGet package produced by the coreclr repo. +707 area-System.Threading Open-source System.Threading unit tests Note: The implementation of this contract lives in mscorlib in the [coreclr](https://github.com/dotnet/coreclr) repository, but we are planning to put tests in this repo and test against the NuGet package produced by the coreclr repo. +708 area-System.Text Open-source System.Text.Encoding unit tests Note: The implementation of this contract lives in mscorlib in the [coreclr](https://github.com/dotnet/coreclr) repository, but we are planning to put tests in this repo and test against the NuGet package produced by the coreclr repo. +709 area-System.Diagnostics Write a test for PROCESS_QUERY_LIMITED functionality "Per #303 we have some debt here we need to get tested. It's not clear the best strategy here. Should this be an inner loop test? Does the test need to run elevated somehow or can we run at regular permissions and create a low integrity process? " +721 area-System.Net Registered I/O Extensions Expose Winsock's RIO Extensions to .NET. [Registered I/O is available](https://msdn.microsoft.com/en-gb/library/windows/desktop/ms740642%28v=vs.85%29.aspx) for desktop from Windows 8, Windows Server 2012, Windows Store apps from Server 2012 R2 and 8.1, and phone from Windows Phone 8 User code would want to pre-register a buffer, which would need to be pinned and go via [RIORegisterBuffer](https://msdn.microsoft.com/en-us/library/windows/desktop/hh437199%28v=vs.85%29.aspx) probably by passing through an internal buffer as per the [Websocket](http://referencesource.microsoft.com/#System/net/System/Net/WebSockets/WebSocket.cs,7dd0b6c7a0033d04)s to reduce data copies. Async sends and receives driven via ArraySegment over provided internal buffer. (Related [SO question](http://stackoverflow.com/questions/18419117/rio-registered-i-o-sockets-in-net)) +725 area-System.Console Augment terminfo search with first-letter-as-hex terminfo files are organized into subdirectories based on the first letter of the terminal name. On Linux, the letter itself is used as the directory name. On OS X, the hex value for the letter is used as the directory name. This commit updates the logic that searches for the terminfo database file to try both locations. Fixes #723 (the search portion of it, not the runtime asserts once the correct search path is used) +728 area-System.Text Open-source EncodingData tool This tool is used to generate [System.Text.Encoding.CodePages\src\System\Text\EncodingTable.Data.cs](https://github.com/dotnet/corefx/blob/master/src/System.Text.Encoding.CodePages/src/System/Text/EncodingTable.Data.cs). +735 area-Infrastructure NativeServiceTest fails to build with /p:OS=Unix "When running the following command from the root of my corefx repo: ``` build /t:rebuild /p:SkipTests=true /p:OS=Unix ``` I consistently get the following error towards the end of the build: ``` C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build tools for v120 (Platform Toolset = 'v120') cannot be found. To build using the v120 build tools, please install v120 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting ""Retarget solution"". [\src\System.ServiceProcess.ServiceController\tests\NativeTestService\NativeTestService.vcxproj] ``` I have VS2015 CTP 5 installed. I don't have VS2013 installed. (We don't actually need this Windows-only test project to build when building with OS=Unix, if that's the source of the problem.) " +736 area-System.IO Use lseek instead of lseek64 in Unix I/O As part of this, changed interop definitions of off_t to be Int64 rather than IntPtr. For now we're assuming that we'll run either on 64-bit systems and/or where _FILE_OFFSET_BITS == 64. We can revisit this if that assumption fails. Fixes #733 +738 area-System.Runtime Add more tests around Enum.TryParse +743 area-Infrastructure Feature: Need to create a solution for building localized binaries We need to come up with a solution to enable building localized binaries as well as taking contributions to localized content. +744 area-Infrastructure Top level bin\ output folder has become cluttered with overly generic names "Many of the files below are specific to a given library's tests, but there is no convention to identify them as such. e.g. 'Assembly1' is specific to FileVersionInfo tests and 'ModuleCore' is for Xml. We should either: 1. Rename all test assemblies to include a prefix matching their parent. 2. Create a hierarchical structure in bin\ I think 1 would be better as it would also make the build log easier to understand. I also question whether we even need so many test assemblies, especially in the XML case. `` D:\Src\corefx\bin\Debug>dir /b \* | findstr /v ""System"" | findstr /v ""Microsoft"" Assembly1 Axes.Tests BaseLibManaged Events.Tests MemoryMappedFile.Tests MemoryMappedViewAccessor.Tests MemoryMappedViewStream.Tests Misc.Tests ModuleCore NativeTestService ProcessTest_ConsoleApp Properties.Tests SDMSample.Tests Streaming.Tests TreeManipulation.Tests XDocument.Common XDocument.Test.ModuleCore XmlCoreTest XmlDiff xNodeBuilder.Tests xNodeReader.Tests XunitTraitsDiscoverers ``` ``` " +745 area-Infrastructure Many solutions fail to build in VS without a full build.cmd first The culprit in most cases is a missing project reference to XunitTraitsDiscoverers. VS needs the targets of project references to be in the scope of the current solution. While we could go and add this project everywhere, I think it will clutter the solutions. A better approach might be to use shared source files that we pull in the test targets/props. +746 area-Infrastructure The top-level src/ folder is cluttered with all of those .slns "IMHO, each library should have its sln file within its own folder. Instead of ``` src\ System.Xyz\ System.Xyz.sln ``` We should have ``` src\ System.Xyz\ System.Xyz.sln ``` I believe the reasons why we had the former originally are obsolete now. 1) We liked the idea of grouping related libraries together in a solution. Today, only System.Xml.\* does this. However, it will not really work long-term because we shouldn't have library-to-library project-to-project references as it messes with our package versioning story post-V1. 2) We had problems with redundant packages/ folders. I believe this was solved by the NuGet.config change that moved packages to a folder at the root outside of src " +754 area-System.Collections Simplify and modernize System.Collections tests The System.Collections tests were mechanically ported from existing test assets using a different test framework. Some of the tests also include misleading comments, and complication and obfuscation relating to constraints at the time they were written. +758 area-Infrastructure BuildPackages target fails because GetPackageVersion needs a version number "BuildPackages target is broken currently because GetPackageVersion requires more than we are currently setting in corefx repo right now. Luckily (:)) we had another bug that prevented this target from running on clean builds so not many people have hit it yet including our CI system. I'm fixing the other bug however I'm going to disable BuildPackages for now until we get this fixed. Task ""GetPackageVersion"" (TaskId:2) Task Parameter:NuSpecFile=D:\git\corefx\src\nuget\Microsoft.Bcl.Immutable.nuspec (TaskId:2) D:\git\corefx\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-4\lib\packages.targets(62,5): error MSB4044: The ""GetPackageVersion"" task was not given a value for the required parameter ""DailyBuildNumber"". " +759 area-Infrastructure Incremental build tweaks Update Clean target to no longer delete PackagesDir, to address #529. Fixed an issue with the _RestoreBuildTools target where we sometimes get into a never ending running of that target in cases where your dir.props or pacakges.config is newer than the tools. This showed its head while I had edits to that file and was no longer cleaning my Packages directory. To address I always ensure the outputs are newer by touching them at the end of the target whenever it is ran. Also realized that our BuildPackages target was not being run any longer on clean builds and only on incremental builds. This showed that it is recently broken by the latest build tools update and I filed #758 for that but for now I'm disabling the building of the packaging. I also started importing dir.targets in build.proj so the tools were restored in time for them to be used in src\dir.proj even on clean builds. +765 area-Infrastructure Add daily build number to NuGet packages and fix package versioning. This is to address issue #758. This change adds BuildNumber.props containing the daily build number property that's consumed by the package build infrastructure. Updated package versions for Immutable and Metadata based on the values of the daily building packages. The values have a build number one greater than the last build. Deleted all nuspec files for non-shipping packages. +770 area-Infrastructure Make XunitTraitDiscoverers as a part of the custom Xunit. Inorder to skip tests and other xunit functionality, the projects require an extra project reference to XunitTraitDiscoverers. Making this a part of the netcore xunit will be good. It's basically an extension on Xunit functionalities, and we should merge these two projects. +774 area-Infrastructure Add System.Threading to packages.config in test projects "This would otherwise make the Mono mcs compiler fail with: ""error CS0518: The predefined type `System.Threading.Interlocked' is defined in an assembly that is not referenced."" It's the same change as in https://github.com/dotnet/corefx/pull/328 " +775 area-Infrastructure Use xunit netcore package in XunitTraitsDiscoverers XunitTraitsDiscoverers used the original xunit.abstractions and xunit.core packages instead of the netcore version. This causes a problem like https://github.com/dotnet/buildtools/pull/38 when compiling on Mono due to the unwanted xunit.runner.tdnet.dll +776 area-Infrastructure Fix condition in dir.targets The value passed to Exists() should be enclosed in single quotes according to https://msdn.microsoft.com/en-us/library/7szfhaft.aspx +777 area-Infrastructure Move solution files to the appropriate projects folders fixes #746 +780 area-System.Collections Immutable collections test failure in CI An immutable collections test failed in a CI run: ``` System.Collections.Immutable -> d:\j\workspace\dotnet_corefx_windows_debug_prtest\bin\Windows_NT\Debug\System.Collections.Immutable\System.Collections.Immutable.dll System.Collections.Immutable.Tests -> d:\j\workspace\dotnet_corefx_windows_debug_prtest\bin\Windows_NT\Debug\System.Collections.Immutable.Tests\System.Collections.Immutable.Tests.dll xUnit.net console test runner (32-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Collections.Immutable.Tests Discovered: System.Collections.Immutable.Tests Starting: System.Collections.Immutable.Tests System.Collections.Immutable.Test.ImmutableSortedSetTest.EmptyTest [FAIL] Assert.Same() Failure Expected: ImmutableSortedSet [] Actual: ImmutableSortedSet [] Stack Trace: d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Collections.Immutable\tests\ImmutableSortedSetTest.cs(354,0): at System.Collections.Immutable.Test.ImmutableSortedSetTest.EmptyTestHelper[T](IImmutableSet`1 emptySet, T value, IComparer`1 comparer) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Collections.Immutable\tests\ImmutableSortedSetTest.cs(82,0): at System.Collections.Immutable.Test.ImmutableSortedSetTest.EmptyTest() Finished: System.Collections.Immutable.Tests === TEST EXECUTION SUMMARY === System.Collections.Immutable.Tests Total: 591, Errors: 0, Failed: 1, Skipped: 0, Time: 1.839s ``` +783 area-Infrastructure Switch to running tests with new BuildAndTest target. An attempt to address #679 This change adds a BuildAndTest and Test target to our default dir.targets file and hooks RunTestsForProject off the Test target so that by default if you build an individual project from the command line or in an IDE like VS it will just do the build and not run the tests. If people want to run the tests then they need to execute the BuildAndTest target (or just the Test target). This prevents the need for us to use special conditions like BuildingInsideVisualStudio in our targets. I've also changed the DefaultTargets for our build.proj and dirs.proj files to be BuildAndTest so if you run the build for them it will stil do the build and test run. cc @eatdrinksleepcode @nguerrera +800 area-Infrastructure Enable code coverage on VS2015 and include more libraries Two issues: 1) Code coverage doesn't work with VS2015. 2) Several of our libraries are disabled from code coverage. For the first, the issue turned out to be a failure of the OpenCover code coverage tool to read the PDBs produced by Roslyn. The library on which the tool depends for PDB reading has been updated to support Roslyn, and a more recent version of OpenCover than the one we're currently using pulls in that updated version of the PDB reader. As such, the fix is just to upgrade which version of OpenCover we use. For the second, whatever reason caused us to disable code coverage on several projects appear to have since been addressed, either by us or in the OpenCover update. The fix then is to just re-enable code coverage on these libraries. The only library that remains disabled for code coverage is System.Diagnostics.Process.dll. It's either hanging or just taking a really, really long time (PLINQ takes about 10 minutes, but at least it completes). Needs more investigation. +810 area-System.Globalization Implement System.Globalization.Extensions on Unix The library has been refactored to have the Unix implementation stubbed out. It needs to be properly implemented. +811 area-System.Diagnostics Implement System.Diagnostics.FileVersionInfo on Unix The library has been refactored to have the Unix implementation stubbed out. It should be implemented to the extent that makes sense on Unix. +817 area-System.IO Implement System.IO.FileSystem.Watcher for Mac The Linux implementation uses inotify, which is Linux-specific. We'll need a different implementation for Mac, such as one based on FAM, kqueue, or FSEvents. +818 area-Infrastructure Update solutions/projects with OS-specific configs For projects that have OS-specific implementations, this change modifies their solution and project files to create OS-specific configurations. Rather than just having a Debug or Release option, in Visual Studio a developer can now select OS_Debug or OS_Release, e.g. for a project that has a Windows implementation and a Unix implementation, Windows_Debug, Windows_Release, Unix_Debug, and Unix_Release will all be available options. Changing the configuration will update the properties used to configure conditional includes, build outputs, etc. cc: @mmitche, @AArnott. Andrew, please let me know if there's a better way to achieve this. +820 area-Infrastructure Run compliance tool against Project K " " +821 area-Infrastructure Collect telemetry from test runs +822 area-Infrastructure Auto upload packages to nuget/myget +823 area-Infrastructure Strategy for test hooks/mocks that works everywhere +824 area-Infrastructure Contract Generation +825 area-Infrastructure Runtime Facade Generation +826 area-System.IO Open Source ClrCompression.dll +838 area-Infrastructure Dashboard: Caclulate product confidence from test and code coverage data. " " +839 area-Infrastructure enable perf and stress infrastructure +840 area-Infrastructure Align ToF and xunit reporting " " +841 area-Infrastructure Run OuterLoop tests on officially built binaries " " +846 area-System.Globalization Cross Platform System.Globalization "This a meta-workitem tracking a bunch of smaller stuff, now that we have multiple folks working on this stuff concurrently. - [x] TimeZone - [x] Encodings (#2774) - [x] Collation (#2769) - [x] Casing (#2772) - [x] Locales (#2770) - [x] Calendars (#2773) " +864 area-System.Reflection Open Source System.Reflection.Primitives Tests +875 area-Infrastructure OS-independent libraries should be built to an OS-independent folder Once #818 gets merged, we should refactor how our binaries are built to output paths. Libraries that have no direct OS-dependencies and do not have an OS-specific build should go into a neutral folder, and libraries that have OS-specific builds should go into an OS-specific folder. +880 area-Microsoft.CSharp Open Source Microsoft.CSharp.dll +882 area-System.Net Open Source Networking.dll +891 area-System.Net Open Source System.Net.Http.dll +892 area-System.Net Open Source System.Net.Http.WinHttpHandler.dll +893 area-System.Net Open Source System.Net.NameResolution.dll +894 area-System.Net Open Source System.Net.NetworkInformation.dll +895 area-System.Net Open Source System.Net.Primitives.dll +896 area-System.Net Open Source System.Net.Sockets.dll +897 area-System.Net Open Source System.Net.Utilities.dll +912 area-Infrastructure Update properties in dir.props to make them more consistent Used some msbuild string functions to help eliminate some of the duplications around OS/OSGroup/ConfigurationGroup. Explicitly started defining all the needed properties by build tools in a consistent way so the build upon each other. Restructured the output paths a little to eliminate many nested directories. Binaries: $(OS).$(Platform).$(Configuration)\$(MSBuildProjectName)\ Intermediates: obj\$(OS).$(Platform).$(Configuration)\$(MSBuildProjectName)\ Tests: tests\$(OS).$(Platform).$(Configuration)\$(MSBuildProjectName)\ +914 area-System.Text Write a test for GetGroup never returning Empty Group We merged #253 without a corresponding test. We need to write one. +915 area-Meta Remove uses of Console.WriteLine in the Unit Tests? A bunch of our unit tests do `Console.WriteLine` either on regular paths or on error cases. By my count there's bout 1600 hits for `Console.Write*` in our tests. This is a bit of an over-count because some of these are the Console tests themselves. I don't really like this very much. It feels like something we inherited when porting our legacy test assets. Is it worthwhile to go clean this up? I don't mind doing the work, just don't want to put in a bunch of effort if it doesn't stand a chance of getting merged. I'm sure @nguerrera will be interested in this and my understanding was @davkean had some guidance on how to author and port tests and I'd be interested in understanding how this aligns with his thinking. +921 area-System.ComponentModel Improve code coverage for System.ComponentModel.Annotations According to the current code coverage report, this library is only at 75%. Our general goal is closer to 90%, though this will depend on the library. We should investigate to see whether the current coverage level is appropriate, and if not, improve our test suites to provide better coverage. +930 area-System.Numerics Improve code coverage for System.Numerics.Vectors According to the current code coverage report, this library is only at 72%. Our general goal is closer to 90%, though this will depend on the library. We should investigate to see whether the current coverage level is appropriate, and if not, improve our test suites to provide better coverage. +931 area-System.Reflection Improve code coverage for System.Reflection.Metadata According to the current code coverage report, this library is only at 51%. Our general goal is closer to 90%, though this will depend on the library. We should investigate to see whether the current coverage level is appropriate, and if not, improve our test suites to provide better coverage. +933 area-System.Text Improve code coverage for System.Text.Encoding.CodePages (66%) "According to the current code coverage report, this library is only at 66%. Our general goal is closer to 90%, though this will depend on the library. We should investigate to see whether the current coverage level is appropriate, and if not, improve our test suites to provide better coverage. " +934 area-System.Xml Improve code coverage for System.Xml.XPath According to the current code coverage report, this library is only at 51%. Our general goal is closer to 90%, though this will depend on the library. We should investigate to see whether the current coverage level is appropriate, and if not, improve our test suites to provide better coverage. +935 area-System.Xml Improve code coverage for System.Xml.XPath.XDocument According to the current code coverage report, this library is only at 54.5%. Our general goal is closer to 90%, though this will depend on the library. We should investigate to see whether the current coverage level is appropriate, and if not, improve our test suites to provide better coverage. +936 area-System.Xml Improve code coverage for System.Xml.XPath.XmlDocument According to the current code coverage report, this library is only at 15%! Our general goal is closer to 90%, though this will depend on the library. We should investigate to see whether the current coverage level is appropriate, and if not, improve our test suites to provide better coverage. +937 area-System.Xml Improve code coverage for System.Xml.XmlDocument According to the current code coverage report, this library is only at 47%. Our general goal is closer to 90%, though this will depend on the library. We should investigate to see whether the current coverage level is appropriate, and if not, improve our test suites to provide better coverage. +942 area-Infrastructure Failed CI build reported it completed successfully "PR #917 had a bad P/Invoke declaration that caused a TypeLoadException and a huge number of tests to fail. But even though the build lists a large number of test failures: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_prtest/138/#showFailuresLink the build still shows as green / successful, and GitHub reports ""all is well"". " +956 area-Meta VS automatically changing solution and csproj What are your thoughts about VS automatically changing stuff? I.e: https://github.com/dotnet/corefx/pull/954 VS updated version info. Also it removed new line character in the end of csproj (I removed this this change). Should we keep that kind of changes or revert them? I don't have strong opinion on that although I generally think that easier solution is always better: we should not manually change csproj & sln files so if VS wants to change it I would let it. +957 area-Infrastructure Dashboard: Hook up official build results. " " +961 area-Infrastructure Add IsInnerLoopTestProject and IsOuterLoopTestProject property support during the build "Add properties to disable selected projects from Inner- or Outer- loop run. By default all projects are Inner-loop. You can disable it from particular run by explicitly setting TestCategories property " +962 area-System.Xml Remove dependency on System.Xml.XPath.XmlDocument from System.Xml.XPath.XDocument tests "Currently the test is comparing two different implementations of XPath - one of them is assumed ""good"" as there are currently no known bugs to it. I will remove the dependency once it is no longer needed although it is helpful right now since XPath.XDocument has few bugs for investigation and it has proven to be helpful for me (there are few behavioral differences between implementations which we cannot remove now because of compat and that other implementation is helping figure out if this is known compat issue or a code/test defect). Please remove this dependency once the bugs are fixed. Related issues: https://github.com/dotnet/corefx/issues/641 https://github.com/dotnet/corefx/issues/284 https://github.com/dotnet/corefx/issues/17 " +963 area-Infrastructure Support Proxy servers for our nuget download task See PR #788 where we reverted the fix for #38 because there were some unhanded cases which caused a null reference if the DefaultWebProxy is null. We should add support again with proper checks in place. +970 area-System.Collections ReadOnlyObservableCollection.CollectionChanged should be made public "The `ReadOnlyObservableCollection.CollectionChanged` event is protected, which is flawed, it prevents you from being able to observe changes to it without casting to `INotifyCollectionChanged`. I suspect the original thinking was because the collection is ""read-only"" it never changes - this is not correct. _Read-only_ in .NET means that the consumer has a read-only view over a collection (which is why we project `IReadOnlyList` to `IVectorView`), not that the contents are immutable and never change. While we've made `protected` members `public` in the past (such as `Exception.HResult`), this event was marked `virtual`, which while binary compatible, would be a source-breaking change for those that overrode it. I suspect very little have overridden it, but we may want to consider adding a new event with a different name such as `Changed`. " +972 area-System.IO Fix for Issue #587 - Untangle FileStream's async implementation Fix for Issue #587 - Untangle FileStream's async implementation This removes the need for the old Begin\End methods in Win32FileStream by modifying the wrapper around the Overlapped (Win32FileStream.FileStreamAsyncResult) to use a TaskCompletionSource, thus allowing the core Read\Write methods to return Tasks directly. It also fixes a potential race condition where Begin\* may be registering the cancellation at the same time that End\* is trying to dispose it (if the user called the End\* method from the callback that they provided to the Begin\* method). +973 area-Meta .NET Core + Existing Platforms - What Can We Expect? I found myself watching a discussion between @davkean and @onovotny go down [[start here](https://twitter.com/davkean/status/568636866053812224)] to better understand where .NET Core sits relative to existing platforms. Because 140 characters is a terrible medium, let's keep this going here. I'm still looking at supporting Windows 7 users for a while at least, so I'm curious what options are available around continuing to build Portable Class Libraries (the plans here seem to be that referencing other NuGet packages is how you can access additional BCL functionality in the future - correct me if I'm wrong) over targeting .NET Core directly. What do we gain? What do we lose? And what expectations should we have in the short-term? +975 area-System.Runtime Fill System.Runtime.Extensions test gaps The initial merge of System.Runtime.Extensions tests (#802) included tests which we were running internally that were marked as covering the System.Runtime.Extensions contract. That set of tests does not cover all the types in the contract. We should add tests to cover the rest of this contract. +978 area-Infrastructure Dashboard: Enable User specific layouts and configs. "https://github.com/benjamine/jsondiffpatch can be used to greate user specific patch data to modify the global freeboard state. " +980 area-Infrastructure System.ObjectModel code coverage is failing === TEST EXECUTION SUMMARY === System.ObjectModel.Tests Total: 53, Errors: 0, Failed: 0, Skipped: 0, Time: 0.340s Committing... No results, this could be for a number of reasons. The most common reasons are: 1) missing PDBs for the assemblies that match the filter please review the output file and refer to the Usage guide (Usage.rtf) about filters. 2) the profiler may not be registered correctly, please refer to the Usage guide and the -register switch. +984 area-System.IO SerialPort Support on Windows Just wondering if SerialPort namespace will be included at some point? -------------------------------------------------------------------- ### Execution plan - [x] 1. @JeremyKuhne to seed the sources in CoreFX (from full .NET Framework) - add source code (sanitized, with licenses), the source won't build - [x] 2. Make the code build * CC: @JeremyKuhne @karelz on PRs * Note: We will not take any functional changes to the implementation, architecture, or API surface at this point unless they are absolutely necessary to make the code compile on .NET Core. Please give heads up on this issue as soon as you discover cases like that. - [x] 3. Add tests - tracking progress in #15752 - [x] @JeremyKuhne to find out if we can leverage full .NET Framework tests * We need to design the test environment - we need ability to test the code in CI (ideally without heavy modification of CI machines) * We need to set goal for code coverage If anyone is working on any step, please mention it & coordinate here to avoid duplicated effort. @karelz will co-assign the issue to you as well. +987 area-System.Reflection MetadataReader ReadFile fast path does not work with async file streams When a FileStream is opened with isAsync: true (.NET Core default!), the ReadFile P/Invoke code that we have in the metadata reader to read small files straight to native memory. ReadFile fails with invalid param error code because our handle was opened for overlapped IO. For now, I'm changing the code to be more defensive and always fall back to the slow file -> managed heap -> native heap code path. (It currently throws.) @ericstj: Can you help me figure out how to tweak FileStreamReadLightUp.cs to handle this? Also, @tmat has already mentioned to me that this code path will slow us down on Linux and Mac. Perhaps, this is the right opportunity to define a portable FileStream.Read overload that reads to unmanaged memory? +991 area-Infrastructure Enable code coverage report generation for individual projects If we run a subset of the projects for code coverage, we should still generate a report. +992 area-System.Numerics Consider saturated arithmetic functionality for Vector In the past, we've seen some requests for Vector to provide some means to do saturated arithmetic operations. Such operations could be useful for a variety of applications, like signal processing, image processing, etc. It makes sense to at least investigate what such functionality would look like, how it could be exposed, etc. Given that there are also SSE2+ instructions that expose some level of saturated arithmetic, I'm hopeful that we could also get some baseline hardware-instruction support for this. Work to do: - Define API surface exposed (which operations are supported) - Define which types support these operations (which integral types? all?) - Determine which operations could benefit from SIMD instructions - Create a simple working prototype (without hardware instructions) - Create formal API design speclet +993 area-System.Numerics Consider generic support for Shuffle and Shift operations on Vector Two useful operations that we have long-considered adding to Vector are shuffle and shift. These are pretty fundamental operations that low-level algorithms could very often take advantage of. One of the challenges was developing a generic but straightforward interface for utilizing such operations across all of the (integral) numeric types that Vector supports. Work to be done: - Define which operations are supported (shuffle at a minimum) - Determine which operations could benefit from SIMD instructions - These should be able to benefit greatly - Create a simple working prototype (without hardware instructions) - Create formal API design speclet and follow regular procedure +996 area-Infrastructure Dashboard: Add page to show test failures for specific area. " " +998 area-Infrastructure Dashboard: Make Bug Id link open in new window. " " +999 area-System.Runtime Add back Environment.Is64BitXXX Hi all. There are some methods that aren't yet implemented in Environment class. - Is64BitProcess - Is64BitOperatingSystem - OSVersion Will they be implemented? +1000 area-System.Diagnostics Several Dataflow ETW events aren't firing due to MethodAccessExceptions Several System.Threading.Tasks.Dataflow ETW events aren't firing on .NET Core, due to what looks like private reflection issues: MethodAccessExceptions are getting thrown and swallowed when firing these events. +1006 area-System.Net Add SmtpClient support Is there any plans to add `System.Net.Mail` into aspnetcore50? +1008 area-System.Numerics Faster and/or vectorized sin/cos In certain types of applications, the extra precision and correctness afforded by Math.Sin() and Math.Cos() are not worth the performance penalty they impose. These applications are often already using primarily single precision floats for computations, and thus have to round trip through double to make use of these methods. I propose adding a FastMath or Mathf or similar set of methods for lower precision high performance implementations of these methods. If it were not for the existence of System.Numerics.Vectors, I would advocate that these simply be an external library separate from the core framework, but since the vector math library ships Quaternion and Matrix support, I would vastly prefer that these types make use of the faster math operations for things like calculating rotations. My reasoning is that these types exist in the first place for people concerned with performance, and as it stands they're simply too slow compared to the alternatives for them to see much use. For a practical anecdote, I recently wrote an OpenGL draw call stress test to determine CPU overhead and how many draw calls I can push from my .NET app. By far the biggest consumer of frame time was Sin and Cos inside the quaternion rotation method used to rotate the cubes I was rendering. Using a fully managed implementation of SinCos based on the venerable CEPHES library cut that time roughly in half. This could be further extended by vectorizing with SIMD, provided that the Vector types support a few more intrinsics such as shuffle. I wouldn't mind doing this work if people think it would be useful. My main concern is that shipping System.Numerics.Vectors (quaternions and matrices) without these faster math routines will forever doom them to obscurity, since switching to reduced precision operations in the future would be a breaking change. +1009 area-Infrastructure Error message in System.ServiceProcess.ServiceController when building from VS2015 DevCmd When building using Developer Command from VS 2015 I get following error message: (build doesn't fail though - jut red message) ``` NativeTestService.cpp cl : Command line error D8027: cannot execute 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\c1xx.dll' [E:\oss\corefx\src\System.ServiceProcess.ServiceController\tests\NativeTestService\NativeTestService.vcxproj] ``` It doesn't repro on VS 2013 DevCmd. +1010 area-System.Numerics Add support for extracting a bit mask from a Vector SSE2/AVX supports extracting the MSB from each 8 byte,4 byte,2 byte or 1 byte segment (the `movemask_*` family). This can be extremely useful while performing algorithms that are data sensitive and use SSE registers like big buffers. A user could implement algorithms that work entirely in safe code that could benefit from avoiding the allocation and rigmarole of copying data out of a register to an array when you just want to test if a field is not empty. Admittedly, it is a downer as ARM does not have an intrinsic for this operation but there is workarounds that should perform better than copying everything in and out memory to test the bytes. http://stackoverflow.com/questions/11870910/sse-mm-movemask-epi8-equivalent-method-for-arm-neon +1016 area-System.Xml Update the XElement implementation in System.Xml.XDocument to include XmlSchemaProvider attribute once the packages are refreshed. +1019 area-Meta Consider adding Disposables [Reactive Extensions](https://github.com/Reactive-Extensions/Rx.NET/tree/master/Rx.NET/Source/System.Reactive.Core/Reactive/Disposables) and [System.Threading.Tasks.Dataflow](https://github.com/dotnet/corefx/blob/master/src/System.Threading.Tasks.Dataflow/src/Internal/ActionOnDispose.cs) are using their own internal Disposables. I don't know how many people have written similar APIs too. We also use our own disposables to run actions. This is very helpful for types implementing IObservable and types used within a `using`-statement. I think CoreFX is the right place to offer a small common API for disposables. What are your thoughts? +1021 area-Infrastructure Improving test coverage and relevance: investigate tools for code dependencies. Investigate tools that will show the dependencies between code and tests. This will allow us to only run the relevant set of tests related to new changes. +1022 area-Infrastructure MSBuild consistency in casing boolean properties "MSBuild properties are case sensitive. The ""false""/""true"" vs ""False""/""True"" What do we prefer? It looks like we don't have any standards with this and I saw various places in the targets which mix two different casings even for the same properties. I believe we should unify this Examples: src\System.Collections.Immutable\src\System.Collections.Immutable.csproj (lowercase): ``` true full false DEBUG;TRACE prompt 4 false System.Collections.Immutable.ruleset ``` and the same project in the bottom: ``` True True Strings.resx ``` src\dirs.targets: (Look at the IsTestProject property and CLSCompliant condition): https://github.com/dotnet/corefx/blob/master/src/dir.targets#L94 ``` True True False false ``` " +1033 area-System.Reflection Delimiter list in the type name grammer was incorrect "Duplicated ""*"" in the delimiter list, it should be ""\"". See Tokenizer.HandleEscapeSequence for more information. " +1034 area-Meta Update Developer Wiki with new section on Code Coverage The developer guide wiki (https://github.com/dotnet/corefx/wiki/Developer-Guide) should have a section on the code coverage system - including how to manually run the coverage build and generate a new report. +1037 area-System.Diagnostics Investigate why Assert went out of it's way to call MessageBox on a different thread There's some internal history on why this decision was made that @stephentoub and I both don't fully grok. I need to take the time and understand if this is still something we need to be doing and why it only mattered for CoreCLR and not desktop at the time. Once that's done, something like #1012 might be in order. +1039 area-Meta Why is DataTable/View/Set absent? I looked here: https://github.com/dotnet/corefx-progress and saw DataTable/View/Set isn't ported to .NET Core. IMHO this is a mistake, as DataTable and friends are a convenient way to handle untyped data at runtime, and is e.g. often used when fetching data through stored procedures as it's easy to e.g. fetch a dataset with the result of a proc which returns 3 cursors on e.g. Oracle. I fail to see why this cornerstone of many people's data-access code is absent in a framework that targets servers. +1044 area-Infrastructure Microsoft.DotNet.TestHost.1.0.3-prerelease only targets 32-bit "Running tests on Window 7 64-bit fails due to `CoreRun.exe` being 64-bit and the TestHost dlls being 32-bit. When setting the 32-bit flag on `xunit.console.netcore.exe` with `corflags.exe` and invoking it directly (iow without `corerun.exe`), the tests work again. ``` > dumpbin /headers CoreRun.exe | find ""machine"" 8664 machine (x64) > dumpbin /headers api-ms-win-core-console-l1-1-0.dll | find ""machine"" 14C machine (x86) ``` " +1045 area-System.Xml XmlReader.ReadAsync goes into infinite recursion "**Before fixing the bug please make sure the tests for Xml.ReaderWriter were already added or you can add your own tests - make sure you test old and new behavior. Any breaking changes need to be additionally reviewed.** _This is a modified copy of internal bug, may contain fragments of discussions I not necessarily written myself_ Repro: ``` csharp XmlReader xmlReader = XmlReader.Create(""http://www.example.com/example.xml"", new XmlReaderSettings{Async = true}); await xmlReader.ReadAsync(); ``` > I investigated this issue and believe the root cause is that the support for this scenario (UriString) is not yet implemented, that causes the termination statement ""laterInitParam = null"" inside FinishInitUriStringAsync() never gets a chance to execute and thus the infinite recursion. Open issues: 1) XmlReader.Create, XElement.Load, XDocument.Load overloads with ""string uri"" are not supported 2) Characters that are not supported in the current encoding are not automatically encoded as entities Code change which caused break: ``` csharp private Task FinishInitAsync() { switch (laterInitParam.initType) { // code below was removed when removing Uri support //case InitInputType.UriString: // return FinishInitUriStringAsync(); //<= This is never executed and thus leads to the infinite recursion. case InitInputType.Stream: return FinishInitStreamAsync(); case InitInputType.TextReader: return FinishInitTextReaderAsync(); default: //should never hit here Debug.Assert(false, ""Invalid InitInputType""); return AsyncHelper.DoneTask; } } ``` Tasks: - [ ] Determine if we want to support Uri or not - [ ] Fix the issue " +1050 area-System.Reflection Metadata reader CanReadFromSameMemoryMappedPEReaderInParallel test failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_prtest/257/ ``` System.Reflection.Metadata.Tests.MetadataReaderTests.CanReadFromSameMemoryMappedPEReaderInParallel [FAIL] System.AggregateException : One or more errors occurred. ---- System.BadImageFormatException : Invalid COR20 header signature. ---- System.BadImageFormatException : Invalid COR20 header signature. Stack Trace: Discovered: System.ComponentModel.Primitives.Tests at System.Threading.Tasks.TaskReplicator.Run[TState](ReplicatableUserAction`1 action, ParallelOptions options, Boolean stopOnFirstFailure) at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally) --- End of stack trace from previous location where exception was thrown --- at System.Threading.Tasks.Parallel.ThrowSingleCancellationExceptionOrOtherException(ICollection exceptions, CancellationToken cancelToken, Exception otherException) at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally) at System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, Action`1 body) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Reflection.Metadata\tests\Metadata\MetadataReaderTests.cs(2457,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.CanReadFromSameMemoryMappedPEReaderInParallel() ----- Inner Stack Trace #1 (System.BadImageFormatException) ----- d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Reflection.Metadata\src\System\Reflection\Metadata\MetadataReader.cs(173,0): at System.Reflection.Metadata.MetadataReader.ReadMetadataHeader(BlobReader& memReader) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Reflection.Metadata\src\System\Reflection\Metadata\MetadataReader.cs(97,0): at System.Reflection.Metadata.MetadataReader..ctor(Byte* metadata, Int32 length, MetadataReaderOptions options, MetadataStringDecoder utf8Decoder) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Reflection.Metadata\src\System\Reflection\Metadata\PEReaderExtensions.cs(71,0): at System.Reflection.Metadata.PEReaderExtensions.GetMetadataReader(PEReader peReader, MetadataReaderOptions options, MetadataStringDecoder utf8Decoder) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Reflection.Metadata\src\System\Reflection\Metadata\PEReaderExtensions.cs(47,0): at System.Reflection.Metadata.PEReaderExtensions.GetMetadataReader(PEReader peReader) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Reflection.Metadata\tests\Metadata\MetadataReaderTests.cs(2457,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.<>c__DisplayClass2c.b__2a(Int32 _) at System.Threading.Tasks.Parallel.<>c__DisplayClass9`1.b__12(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.Parallel.<>c__DisplayClass9`1.b__12(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) at System.Threading.Tasks.TaskReplicator.Replica.Execute() ----- Inner Stack Trace #2 (System.BadImageFormatException) ----- d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Reflection.Metadata\src\System\Reflection\Metadata\MetadataReader.cs(173,0): at System.Reflection.Metadata.MetadataReader.ReadMetadataHeader(BlobReader& memReader) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Reflection.Metadata\src\System\Reflection\Metadata\MetadataReader.cs(97,0): at System.Reflection.Metadata.MetadataReader..ctor(Byte* metadata, Int32 length, MetadataReaderOptions options, MetadataStringDecoder utf8Decoder) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Reflection.Metadata\src\System\Reflection\Metadata\PEReaderExtensions.cs(71,0): at System.Reflection.Metadata.PEReaderExtensions.GetMetadataReader(PEReader peReader, MetadataReaderOptions options, MetadataStringDecoder utf8Decoder) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Reflection.Metadata\src\System\Reflection\Metadata\PEReaderExtensions.cs(47,0): at System.Reflection.Metadata.PEReaderExtensions.GetMetadataReader(PEReader peReader) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Reflection.Metadata\tests\Metadata\MetadataReaderTests.cs(2457,0): at System.Reflection.Metadata.Tests.MetadataReaderTests.<>c__DisplayClass2c.b__2a(Int32 _) at System.Threading.Tasks.Parallel.<>c__DisplayClass9`1.b__12(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.Parallel.<>c__DisplayClass9`1.b__12(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) at System.Threading.Tasks.TaskReplicator.Replica.Execute() ``` +1051 area-System.Text RegexGroup should provide a Name #### Background Regex group can have names assigned to them (e.g. `(?.+)`). Those names can be used in an indexer of `RegexGroupCollection`, however the `RegexGroup` objects themselves do not provide a `Name` property. The names can be retrieved using `regex.GetGroupNames`, but it is not immediately obvious -- and I'm not sure it is even possible if static `Regex` method was used for matching. To prove it is not obvious, see this [Regex: get the name of captured groups in C#](http://stackoverflow.com/questions/1381097/regex-get-the-name-of-captured-groups-in-c-sharp) which at the moment had 48 votes on question, and 66 on answer. There are a few similar questions as well. #### API Design ``` csharp public class RegexGroup : ... { // ... public string Name { get; } } ``` Note that for numbered groups this should return group index as string, for consistency with `Regex.GetGroupNames`. #### Compatibility At the moment I do not see any potential compatibility issues with adding a property. +1052 area-System.IO Initial commit of System.IO.FileSystem tests (File, Directory, FI, DI) Initial commit of ported tests for the System.IO.FileSystem contract. Includes tests for File, Directory, FileInfo, and DirectoryInfo. A few tests have been rewritten in the xunit style, but the majority of these tests have been ported from ToF, which were ported from old tree. When porting, I modified or disabled tests to make sure every test only writes in its working directory. I verified this with PerfView. I also replaced hard-coded paths with calls to Path.GetRandomFileName() to prevent multiple runs from interfering with each other, and multiple tests running in parallel from interfering with each other. Any test that used a delay to wait for the state of the file system to stabilize was marked with OuterLoopAttribute. On my machine, all of the tests including OuterLoop take between 10s and 15s to run. Just inner loop tests take between 1s and 2s to run. Lots of these tests are candidates for rewriting, and Eric introduced a useful base class for tests when he rewrote the FileStream tests. Checking in these ported assets will give us a good idea of what the coverage is, and act as a baseline to compare the rewritten tests against. +1053 area-System.ComponentModel Make DisplayNameAttribute available in .NET Core This was originally going to be a request to move `DisplayNameAttribute` into Core, but the problem seems a little bigger than that. Currently, `System.dll` houses approximately a couple hundred types spread across four dozen different namespaces, but not everything in it is listed on the [Open Source Progress table](https://github.com/dotnet/corefx-progress/blob/master/src-diff/README.md) (although a select few namespaces like `System.Security.Cryptography.X509Certificates` _are_ there). This still makes some namespaces (for example `System.ComponentModel`) feel incomplete because of how they're spread across different assemblies. The previously mentioned `X509Certificates` namespace is already being tracked with all its types from `System.dll`, so other namespaces should follow suit, right? I was porting a project of mine over to see the ASP.NET vNext templates in action, but the lack of `DisplayNameAttribute` is literally the only thing preventing me from building it (even if I tell it to not target .NET Core) without commenting those attributes out. And if .NET Core's philosophy is to only use what you need, why should I be forced to import some monolithic DLL with hundreds of types that I don't need just for the one that I _do_ need, because that type is not in the DLL named after its containing namespace? ¯\(°_o)/¯ +1054 area-Infrastructure Add NuGet.org and MyGet.org latest build feeds to readme.md The CoreFX NuGet.org and MyGet.org latest build / package feeds should be added to our README.md. See https://github.com/xunit/xunit as an example. +1058 area-Infrastructure Add Windows 7 coverage to Jenkins / Outerloop runs Currently build.cmd no longer passes on Windows 7 machines (see https://github.com/dotnet/corefx/issues/1044). We should look into adding Win7 coverage to Jenkins to ensure we don't regress building or running tests on this platform. +1063 area-Meta Append guidelines with how PR feedback should be addressed "Pull request guidelines should contain something like ""rule of a thumb"" which rule how PR feedback should be addressed or how merge conflicts should be resolved. As example consider #972. Commits like `Merge branch 'master' into Issue587` (aaa5434) clutter history and should be avoided. `git rebase` should be used for updating branch with fix. Other commits in this PR could be squashed. As another example consider PR #1003. It's initial commit of the library so it's OK to address feedback in a separate commit. However in this PR feedback addressed twice and the second could be amended to the first. Conclusion: 1. Merge conflicts should be resolved through rebasing. 2. PR feedback should be in a separate commit if it contains important changes. Changes like formatting or renaming variable introduced in PR are not important and could be addressed through amending/rebasing. " +1068 area-System.Reflection Allow ISignatureTypeProvider to be a struct The `SignatureDecoder` takes the provider as a naked interface. This makes it inefficient to bake it by a struct because it will cause it being boxed each time it's passed. However, it's very desirable to make the provider a struct because it allows the caller to provide call site specific information. For example, in order for implementers to reference the generic type parameters of the method or type, the `ISignatureTypeProvider` needs to have access to the containing type / containing method. To avoid the boxing operation, the methods simply needs an additional contraint like so: ``` csharp public static TType DecodeType(Handle handle, TProvider provider) where TProvider : ISignatureTypeProvider ``` Unfortunately, this causes some noise as C# is no longer able to infer the type arguments, so each call site must now qualify the type arguments. +1071 area-System.Reflection Merge master to dev/metadata In particular, the changes from PR #1026 are needed to address the CI failure in #1068. There is no code review required as these commits have already been reviewed and there are no merge conflicts. +1072 area-System.Collections Remove source control bindings VS will keep prompting developers what to do with those. Eventually, they will show up as a diff, so it's best to commit those as a one-off. +1073 area-Infrastructure Rename all test assemblies to include a library prefix Fixes #744 Open question: what to do with - BaseLibManaged - ModuleCore - XDocument.Common - XDocument.Test.ModuleCore - XmlCoreTest - XmlDiff +1079 area-System.Security Add leaveOpen constructor overload for CryptoStream "A CryptoStream always closes the wrapped stream when it is disposed. This not ideal when using a MemoryStream or when another action needs to be taken on the result. The workarounds are manually calling `FlushFinalBlock()` and then getting the MemoryStream bytes before disposing the CryptoStream, or using a custom stream that ignores the dispose call from CryptoStream. Neither are ideal and can be avoided with a ""leaveOpen"" option. Implementation would be the same as DeflateStream, on `Dispose()` check if leaveOpen is true and don't close the internal stream. ``` public CryptoStream(Stream stream, ICryptoTransform transform, CryptoStreamMode mode, bool leaveOpen) ``` I'm happy to do the change when System.Security.Cryptography.Encryption arrives. " +1081 area-System.Diagnostics Proposal: Add new property for getting process path "## Rationale and Usage In order to get process path you need to use `someProcess.MainModule.FileName` property. However it suffers from a couple of issue: - Accessing MainModule of 64 bit process from a 32 bit one throws an exception - You can't access MainModule of elevated process from a non elevated one As you can see many developers [encounter](http://stackoverflow.com/q/8431298/239438) [these](http://stackoverflow.com/q/9501771/239438) issues. I suggest adding a new property which returns the path to executable of the Process. To overcome the issues that I described we can use `QueryFullProcessImageName` together with `PROCESS_QUERY_LIMITED_INFORMATION` access right. ## Api Proposal ```csharp namespace System.Diagnostics { public class Process : Component { public string MainModuleFilePath { get; } } } ``` ## Open Questions Should the new property be called `MainModuleFilePath` or something else? From my own experience most of people use `Path` when asking question on stackoverflow but @Priya91 suggested calling it `MainModuleFilePath` as it is returning Path of the `MainModule` property. ## Cross Platform Support To implement this property on other platforms on Linux we can use `readlink` to read the value of `""/proc/%d/exe""` symlink and on OS X we can use `proc_pidpath` which returns process path given process pid." +1085 area-System.Reflection MetadataReader: (THandle)(Handle)default(THandle) should round-trip for all handles For most handles default(THandle) is the canonical nil value that can convert to the weakly-typed Handle and back, but for some such as StringHandle and NamespaceHandle default(THandle) is an invalid value that becomes a nil module handle on conversion to Handle and cannot be round-tripped back to THandle. A fix is proposed in #1075. Filing a bug to track it so that I can close a duplicate internal bug against it. +1086 area-System.IO Add API to get actual file casing in path "Per @jasonwilliams200OK in dotnet/coreclr#390 Based on this answer: http://stackoverflow.com/a/81493/1712065 (further redirected from: http://stackoverflow.com/a/326153). Please add the ability to retrieve path with actual case via `FileInfo` and `DirectoryInfo` classes. The candidate member being `FullPath` and `Name`. Perhaps there is some sophisticated way of getting it from win32 file system API, but [that](http://stackoverflow.com/a/81493/1712065) seems to be a working solution. Expected: ``` c# using System.IO.FileInfo; // .. // actual path was: // C:\\SharePoint\\scripts\\MasterDeployment.ps1 FileInfo info = new FileInfo(""c:\\sharepoint\\scriPts\\maSTerdeploymnet.PS1""); Console.WriteLine(info.FullPath); // C:\\SharePoint\\scripts\\MasterDeployment.ps1 Console.WriteLine(info.Name); // MasterDeployment.ps1 ``` Actual result: ``` c# using System.IO.FileInfo; // .. // actual path was: // C:\\SharePoint\\scripts\\MasterDeployment.ps1 FileInfo info = new FileInfo(""c:\\sharepoint\\scriPts\\maSTerdeploymnet.PS1""); Console.WriteLine(info.FullPath); // c:\\sharepoint\\scriPts\\maSTerdeploymnet.PS1 Console.WriteLine(info.Name); // maSTerdeploymnet.PS1 ``` " +1088 area-System.Xml Remove link to a document that no longer exists There is a link to an internal SharePoint site that no longer exits, so it's unclear what the content was but the gist seems to be contained in the code comment. +1091 area-Infrastructure Projects fail to load in VS without having built on command line first "Since the new resources targets were added, projects cannot be opened in VS from a clean enlistment with no packages having been restored yet. **Repro steps** 1. Delete corefx/packages/ folder 2. Open a solution in VS ``` C:\src\corefx\src\System.Reflection.Metadata\src\System.Reflection.Metadata.csproj : error : The imported project ""C:\src\corefx\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00015 \lib\resources.targets"" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk. C:\src\corefx\src\dir.targets ``` " +1093 area-Infrastructure Create an optimization story for open-source compiled assemblies We need to design and develop the optimization story for our open-source corefx libraries. +1099 area-Infrastructure Build the exclusion list of CT errors against Project K " " +1100 area-System.Diagnostics StartInfo may return incorrect information for *running* processes. ProcessStartInfo.EnvironmentVariables gives an incorrect value for a _running_ process. We fetch environment variables via the GetEnviornmentVariables which gives the information of the current process and not of the _running_ process. Desktop also has the same behavior. +1101 area-System.Reflection Fix CustomAttributeNamedArgument to return the correct value There is a bug where `CustomAttributeNamedArgument` returns the type instead of the value. Strong typing can't help with `object`, can it? @nguerrera +1102 area-System.Numerics Further BigInteger test refactoring - Completes the removal of Console.WriteLine() from BigInteger tests and general refactoring to better use XUnit Asserts. (Progress against https://github.com/dotnet/corefx/issues/915.) - Generalizes the switch statement in Driver.cs's Worker class. - Removes duplicate code in StackCalculator.cs by referencing the identical implementations in MyBigInt.cs. - Removes duplicate implementations of Print(), GetRandomByteArray(), and IsZero() by moving them to MyBigInt.cs. - Enables a set of existing but unused tests: - RunDivRemTests - RunIsEvenTests - RunIsOneTests - ModPowValidSmallNumbers - RunMultiplyTests (If there is history for why theses tests were disabled/never enabled, please let me know, but it looks like a set of refactoring mistakes.) The first five commits are basically VS regex find-replace with the exception of the [changes to Driver.cs](https://github.com/dotnet/corefx/commit/2b7616cc33009422a662f34891406c755eecb4a6) mentioned above. The last four are more general refactoring to reduce copy/past function implementations. Please let me know how (or if) you want these commits squashed before merging. +1103 area-Infrastructure Coverage runs failing since ProcessTests changes @pallavit, since the recent ProcessTests cleanup changes got committed, all of our code coverage runs have hung. They've all hit an AV exception, followed by what appears to be OpenCover hanging during its subsequent processing: ``` xUnit.net console test runner (32-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Diagnostics.Process.Tests Discovered: System.Diagnostics.Process.Tests Starting: System.Diagnostics.Process.Tests Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at System.AppDomain.SetupDomain(Boolean allowRedirects, String path, String configFile, String[] propertyNames, String[] propertyValues) System.Diagnostics.ProcessTests.ProcessTest.Process_HasExited [FAIL] Process_HasExited001 failed Stack Trace: d:\j\workspace\dotnet_corefx_coverage_windows\src\System.Diagnostics.Process\tests\System.Diagnostics.Process.Tests\ProcessTest.cs(178,0): at System.Diagnostics.ProcessTests.ProcessTest.Process_HasExited() Finished: System.Diagnostics.Process.Tests === TEST EXECUTION SUMMARY === System.Diagnostics.Process.Tests Total: 34, Errors: 0, Failed: 1, Skipped: 0, Time: 120.241s Committing... Visited Classes 23 of 35 (65.71) Visited Methods 186 of 357 (52.1) Visited Points 1570 of 2998 (52.37) Visited Branches 515 of 1161 (44.36) ==== Alternative Results (includes all methods including those without corresponding source) ==== Alternative Visited Classes 27 of 40 (67.5) Alternative Visited Methods 193 of 415 (46.51) ``` @sawilde, FYI. +1105 area-Infrastructure CI code coverage runs failing due to invalid UploadCoverallsData "Our CI code coverage runs get all the way to the end and then fail with this error: ``` d:\j\workspace\dotnet_corefx_coverage_windows\build.proj(36,7): error MSB4113: Specified condition ""'$(UploadCoverallsData)'"" evaluates to """" instead of a boolean. ``` " +1107 area-Infrastructure Official builds should place tags on what was built "We're eventually going to want to be able to answer the question of ""what code was in build [whatever]?"". It seems the answer to this in git is tags. As an example, https://github.com/torvalds/linux, click on the branches dropdown and change to the tabs tab. Supporting documentation: http://git-scm.com/book/tr/v2/Git-Basics-Tagging " +1110 area-Infrastructure corefx helloworld Hi, I want to use corefx components and coreclr in my command line program. I started with corefxlab helloworld and I tried to add corefx from nuget manager. I was able to find corefx components but when I tried to install, I get the following error message. How do I overcome this? ``` Could not install package 'System.Globalization 4.0.10-beta-22231'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.5', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author. ``` Also, how do I install my private coreCLR and corefx components to my commandline program? I am using VS 2015 CTP6. Thanks +1118 area-Meta Use TimeSpan everywhere we use an int for seconds, milliseconds, and timeouts "In a large software project, it's easy to mess up units for time. IE, is that Int32 seconds or milliseconds? Or maybe minutes? I've been fixing my team's source code to use the unit-agnostic TimeSpan class wherever possible. However the .NET Framework is not complete in its adoption of TimeSpan. Specifically, we don't have a Process.WaitForExit overload that takes a TimeSpan, only an Int32 for the timeout. I suggest someone look through all .NET Framework API's for Int32 parameters containing ""second"", ""millisecond"", ""ms"", ""timeout"" (and perhaps ""time"") and see if there is a parallel TimeSpan-based overload. If not, please fix that. " +1121 area-System.Linq Allow customization of LINQ to XML string content. This issues comes about as a result of the following question on Stack Overflow: http://stackoverflow.com/questions/28947090/culture-and-linq-to-xml There appears to be no way to customize how a custom object is serialized to XML. The main problem this causes in my code is related to culture, but this could apply to other areas too. Looking at the code, it seems that there is no customization point for an object passed as content to LINQ to XML. Is this correct? Would it be a good idea to provide one? +1128 area-Microsoft.CSharp Add Microsoft.CSharp source +1129 area-System.Numerics More support for Math functions in System.Numerics.Vectors In particular I need Math.Exp support, similar to how there is support for Math.Sqrt via the Vector.SquareRoot function. It should be trivial to add support for Math.Exp and in fact I've done this with my local copy of System.Numerics.Vectors using SquareRoot as a guiding example. My application now uses the new Vector.Exp function instead of me having to use the CopyTo function to unpack my Vector to a double[] array, perform Math.Exp on each element of the array and then pack up into a new Vector. May I check the changes in? +1131 area-System.Linq Add System.Linq Source and Tests +1132 area-System.Security Need EncryptedXml and supporting types in Core framework This will likely depend on a large pile of other work, but I'd like to raise the issue. In porting applications to use CoreCLR, I have run into the need for the [EncryptedXml class](https://msdn.microsoft.com/en-us/library/system.security.cryptography.xml.encryptedxml%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396) more than once. From looking around, there are various 3rd party encryption libraries that exist but this adds a cost to porting from 1st-party .NET types. Enabling EncryptedXml in the Core framework will also enable encrypted configuration files in ASP.NET 5 Core profile as well... currently the user must create their own implementation of an encrypted configuration on this platform. +1133 area-System.Linq Add System.Linq.Queryable Source and Tests +1136 area-System.Collections Failure in System.Collections.Specialized.Tests.GetItemObjTests in CI MESSAGE: Error, returned wrong item for lowercase key +++++++++++++++++++ STACK TRACE: at System.Collections.Specialized.Tests.GetItemObjTests.Test01() in d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Collections.Specialized\tests\HybridDictionary\GetItemObjTests.cs:line 362 +1149 area-System.Linq Refactor System.Linq Following @stephentoub comment here: https://github.com/dotnet/corefx/issues/1143#issuecomment-81683842 I am filing this issue to track doing some refactoring in System.Linq. Currently, everything is in one file which has about 3.2k lines and around 20 classes and interfaces. It is good if this can be refactored to make the code easier to follow. +1151 area-System.Numerics New API for single-precision math ### Rationale The .NET framework does not currently provide scalar single-precision floating-point support for many of the trigonometric, logarithmic, and other common mathematical functions. Single-precision floating-point support should be provided for these mathematical functions in order to better interop with high-performance, scientific, and multimedia-based applications where single-precision floating-points are the only implementation required and/or used. Since adding these methods to the existing `System.Math` class would break backwards compatibility, they should be provided through a separate class that provides the same and/or similar functionality. Providing these new APIs would: - improve code readability (especially in the non-hardware backed implementations of methods in the `System.Numerics.Vector` structs) - improve code performance in areas where the single-precision implementation is all that is required - provide better interoperability with high-performance, scientific, and multimedia-based applications where data structures and existing code may be dependent on single-precision implementations of such methods. - provide a more advanced infrastructure for mathematics in the CoreCLR ### Proposed API The proposed API here provides feature-parity with the existing double-precision math functions provided by the framework. #### System.BitConverter ``` C# public static class BitConverter { public static float Int32BitsToSingle(int); public static int SingleToInt32Bits(float); } ``` #### System.Single ``` C# public static partial class MathF { public const float E = 2.71828183f; public const float PI = 3.14159265f; // Trigonometric Functions public static float Acos(float); public static float Asin(float); public static float Atan(float); public static float Atan2(float, float); public static float Cos(float); public static float Sin(float); public static float Tan(float); // Hyperbolic Functions public static float Cosh(float); public static float Sinh(float); public static float Tanh(float); // Exponential Functions public static float Exp(float); // Logarithmic Functions public static float Log(float); public static float Log(float, float); public static float Log10(float); // Power Functions public static float Pow(float, float); public static float Sqrt(float); // Rounding Functions public static float Ceiling(float); public static float Floor(float); public static float Round(float); public static float Round(float, int); public static float Round(float, int, MidpointRounding); public static float Round(float, MidpointRounding); public static float Truncate(float); // Manipulation Functions public static int Sign(float); // Minimum, Maximum, and Difference Functions public static float Max(float, float); public static float Min(float, float); // Other Functions public static float Abs(float); public static float IEEERemainder(float, float); } ``` ### Example Usage Currently to calculate the Tangent for each member of the `System.Numerics.Vector4` struct, you currently have to call the double-precision version of the method and cast to the result to a single-precision value: ``` C# public static Vector4 Acos(Vector4 value) { return new Vector4((float)(Math.Acos(value.X)), (float)(Math.Acos(value.Y)), (float)(Math.Acos(value.Z)), (float)(Math.Acos(value.W))); } ``` With the proposed changes, this would now be simplified to the following: ``` C# public static Vector4 Acos(Vector4 value) { return new Vector4(Mathf.Acos(value.X), Mathf.Acos(value.Y), Mathf.Acos(value.Z), Mathf.Acos(value.W)); } ``` The `System.Numerics` library itself is filled with similar examples as are various bits of code in the CoreFX and CoreCLR repositories. ### Perf Numbers All performance tests are implemented as follows: - 100,000 iterations are executed - The time of all iterations are aggregated to compute the `Total Time` - The time of all iterations are averaged to compute the `Average Time` - A single iteration executes some simple operation, using the function under test, 5000 times The execution time below is the `Total Time` for all 100,000 iterations, measured in seconds. **Hardware: Desktop w/ 3.7GHz Quad-Core A10-7850K (AMD) and 16GB RAM** | Function | Improvment | Execution Time - Double | Execution Time - Single | | :-: | :-: | :-: | :-: | | Abs | 0.199243555% | 0.63752649s | 0.63625626s | | Acos | 12.30220910% | 11.5265412s | 10.1085220s | | Asin | 18.66801808% | 11.9472425s | 9.71692911s | | Atan | 21.10350002% | 10.9964683s | 8.67582861s | | Atan2 | 20.51327307% | 24.3328097s | 19.3413540s | | Ceiling | 12.91487191% | 1.87116459s | 1.62950608s | | Cos | 5.026665542% | 7.19916547s | 6.83728750s | | Cosh | 16.46166555% | 13.5416170s | 11.3124413s | | Exp | 33.67586387% | 6.65578424s | 4.41439140s | | Floor | 10.39208688% | 1.74655247s | 1.56504922s | | Log | 19.81117664% | 6.42244806s | 5.15008553s | | Log10 | 18.40605725% | 6.75118866s | 5.50856101s | | Pow | 47.85595440% | 31.8820155s | 16.6245727s | | Round | 0.976398142% | 4.22620632s | 4.18494172s | | Sin | 15.49539339% | 5.98022268s | 5.05356365s | | Sinh | 17.96609899% | 14.6242270s | 11.9968239s | | Sqrt | 4.676516651% | 2.51281945s | 2.39530703s | | Tan | 30.33470555% | 9.07290178s | 6.32066374s | | Tanh | 0.108182099% | 8.12724112s | 8.11844890s | I believe some extra perf will be squeezed out when the intrinsics (such as `CORINFO_INTRINSIC_Sqrt`) are properly implemented in the VM layer for single-precision values. Without such functionality, it falls back to the double-precision functionality (extra precision, reduced performance) for certain calls. ### Pull Request There is a sample pull request covering these changes available: dotnet/coreclr#5492 ### Additional Details This will require several changes in the CoreCLR as well to support the new APIs via FCALLs and Intrinsics. +1153 area-System.Console Bring back Console.ReadKey() For reference, see issue #311 and the related aspnet/Hosting#140. Console.ReadKey() can solve both issues (thought explicit support for CancelKeyPress is nice as that can handle different keyboard configurations etc). ReadKey() is a helpful API for many console app scenarios and is quite difficult for users to implement in a non-Windows-specific way if they want to get the same functionality. Please consider bringing it back. +1155 area-System.Linq Ordering of ParallelEnumerable.GroupJoin and Join "This feels strange or bug-ish to me, but I'm not seeing anything either way in documentation. The following: ```c# ParallelQuery left = Enumerable.Range(1, 4).AsParallel().AsOrdered(); ParallelQuery right = Enumerable.Range(8, 32).AsParallel().AsOrdered(); foreach (Tuple> p in left.GroupJoin(right, x => x, y => y / 8, (k, g) => Tuple.Create(k, g))) { Console.Write(p.Item1.ToString() + "":""); foreach (int i in p.Item2) { Console.Write(i.ToString() + "",""); } Console.WriteLine(); } Console.Read(); ``` ... has output like this: ![groupjoin](https://cloud.githubusercontent.com/assets/5569508/6683955/d5efffe4-cccf-11e4-8958-4dfde0993f1d.jpg) The first grouping is out of order, whereas I'm expecting even the grouped elements to be returned in order (which is what the non-parallel version does). Strangely, of the multiple times I've run it, only the first run has ever been out of order. Using `OrderBy` on the right query tends to result in other runs being disordered.... `Join` has similar problems to `GroupJoin`: ```c# ParallelQuery left = Enumerable.Range(1, 4).AsParallel().AsOrdered(); ParallelQuery right = Enumerable.Range(8, 32).AsParallel().AsOrdered(); int prev = 0; foreach (Tuple p in left.Join(right, x => x, y => y / 8, (k, g) => Tuple.Create(k, g))) { if (prev != p.Item1) { Console.WriteLine(); Console.Write(p.Item1.ToString() + "":""); prev = p.Item1; } Console.Write(p.Item2.ToString() + "",""); } Console.Read(); ``` ... is producing output that looks like this: ![join](https://cloud.githubusercontent.com/assets/5569508/6684267/ee062632-ccd2-11e4-8363-679f7ed8dd0b.png) ...where every run is disordered. This is the behavior of the current consumer release as well. So is this ""intended"" behavior, and the documentation should be updated to warn people about the change from the sequential version (which explicitly states the ordering of the child elements is preserved), or is this an actual bug? @stephentoub , @svick , any thoughts? " +1165 area-System.IO FileSystemWatcher_InternalBufferSize_File test failed in CI FileSystemWatcher_4000_Tests.FileSystemWatcher_InternalBufferSize_File [FAIL] Should not observe a error event Stack Trace: d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.IO.FileSystem.Watcher\tests\Utility\Utility.cs(100,0): at Utility.ExpectNoEvent(WaitHandle eventOccured, String eventName, Int32 timeout) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.InternalBufferSize.cs(53,0): at FileSystemWatcher_4000_Tests.FileSystemWatcher_InternalBufferSize_File() Finished: System.IO.FileSystem.Watcher.Tests +1168 area-System.Numerics Vector Shuffling Operations "As mentioned in #993, a lot of useful SIMD code relies on shuffling data around within registers. There are a whole bunch of instructions available to do this, so we'd like to expose a coherent subset of these via Vector. ## Rationale and Usage Simple stream processing, such as the operations already supported on Vector, are entirely parallel and thus don't benefit from shuffling operations. However, lots of common uses of SIMD do require it, such as doing geometric vector operations like matrix multiplies and vector cross products. These are key scenarios for certain users, such as game developers. If rearranging elements is required for an algorithm and fast hardware support is not provided, the cost of loading and storing to and from SIMD registers might exceed any benefits gained from using SIMD in the first place. When looking at existing libraries that wrap SIMD functionality at a low level, it's apparent that there are a few main use cases of shuffle: - Permuting the elements of two different vectors into a result - ""Swizzling"" the elements within a single vector - ""Splatting"" or ""broadcasting"" one element to all others within a single vector Rather than expose one single shuffle method directly, I think it makes sense to go with this slightly higher level functionality such that the API doesn't become too tied to a particular architecture's instruction set. ## Proposed API New methods on the Vector struct: ``` csharp // pick elements from a and b to place into result internal static unsafe Vector Permute2 (Vector a, Vector b, int s0, int s1); internal static unsafe Vector Permute4 (Vector a, Vector b, int s0, int s1, int s2, int s3); // rearrange elements within a internal static unsafe Vector Swizzle2 (Vector a, int s0, int s1); internal static unsafe Vector Swizzle4 (Vector a, int s0, int s1, int s2, int s3); // rearrange bytes in a internal static unsafe Vector ShuffleBytes (Vector a, Vector mask); // broadcast specified element to all other elements in a internal static unsafe Vector Splat (Vector a, int element); ``` New methods on Vector class that are simple wrappers around the Vector methods. ``` csharp public static Vector Permute (Vector a, Vector b, int s0, int s1); public static Vector Permute (Vector a, Vector b, int s0, int s1); public static Vector Permute (Vector a, Vector b, int s0, int s1); public static Vector Permute (Vector a, Vector b, int s0, int s1, int s2, int s3); public static Vector Permute (Vector a, Vector b, int s0, int s1, int s2, int s3); public static Vector Permute (Vector a, Vector b, int s0, int s1, int s2, int s3); public static Vector Swizzle (Vector a, int s0, int s1); public static Vector Swizzle (Vector a, int s0, int s1); public static Vector Swizzle (Vector a, int s0, int s1); public static Vector Swizzle (Vector a, int s0, int s1, int s2, int s3); public static Vector Swizzle (Vector a, int s0, int s1, int s2, int s3); public static Vector Swizzle (Vector a, int s0, int s1, int s2, int s3); public static Vector ShuffleBytes (Vector a, Vector mask); public static Vector Splat (Vector a, int element); ``` ## Details and Questions - There are a lot of tradeoffs when picking method signatures for shuffle. For example, instead of taking many selector parameters, we could instead have one combined integer mask. However, pretty much every single caller will then implement their own helper method to do the bitwise combination of the mask, so all callsites get more complicated. Additionally, we want the JIT to discover and optimize the cases where the parameters are JIT-time constants. - I chose for the selector parameters to be ints instead of, say, bytes. I'm not sure if there's a compelling reason to choose one over the other. In either case, we'd have to define what happens when the parameters are out of range. Since the intrinsics are going to bitwise combine them, in the interests of speed it'd be good if they could say that are not range checked. - We could also have a Permute8 and Swizzle8 and extend the methods to shorts and ushorts. The parameter lists get kind of unwieldy... - ShuffleBytes is an interesting case. pshufb is a very useful instruction to expose, but it's an SSSE3 instruction. It may be worth being more explicit about which features are supported by the hardware via some set of caps flags instead of the single boolean IsHardwareAccelerated we have now. - Shuffle intrinsically breaks the abstraction of Vector of not needing to know the underlying register size. Honestly, I think that's an unworkable abstraction in the long term; it's too difficult to write usage code that can work with arbitrarily sized vectors, so it might be worth exploring having specifically sized Vector128, Vector256, etc. This is clearly a discussion to be had in a separate issue though. " +1170 area-System.Collections IEnumerator.Current does not throw after hitting the end of the collection. This issue is in the `List.Enumerator` class. When the collection is enumerated to then end and then modified, accessing `IEnumerator.Current` returns `default(T)` rather than throwing. According to the [documentation](https://msdn.microsoft.com/en-us/library/vstudio/system.collections.ienumerator.current%28v=vs.100%29.aspx) it should throw. Simple Test case: ``` CSharp var list = new List{0,1}; var enumerator = ((IEnumerable)list).GetEnumerator(); while (enumerator.MoveNext()){} list.Add(2); Assert.Throws(() => enumerator.Current); ``` This test fails currently with `enumerator.Current` returning 0. +1171 area-System.Collections Add tests for KeyedCollection. Issue #867 "This change adds tests for `KeyedCollection` ported from internal test assets, bringing test coverage from 0 to 96% This also includes tests for `IList`, `ICollection`, and `IEnumerable` that can be used across all tests involving collections. I will be bringing over tests for `IList`, `ICollection`, and `IEnumerable` in a future PR. " +1178 area-System.Linq Add System.Linq.Expressions source and tests. +1182 area-System.Linq System.Linq performance improvement suggestions "With Linq-to-Objects it is quite common practice to perform a series of transformations, and then materialize sequence to a concrete collection type by calling _ToArray(), ToList(), ToDictionary()_. These operations would work much faster if they knew the number of elements in the sequence. Currently System.Linq.Enumerable has special treatment for _ICollection_ interface only. I suppose that additional support for _IReadOnlyCollection_ can improve performance in some cases, because through it we can figure out the total number of elements. Another problem with System.Linq is that in many cases the information about the number of elements is lost. One of the most common example: ``` C# List source = ...; List transformed = source.Select(o => o + 1).ToList(); ``` Obviously _Select_ does not change the number of elements in the sequence, but _ToList_ method cannot take advantage of that. Information is lost. In this particular scenario, it would be great for _Select_ to return some _SelectIterator_ instance, which implements _IReadOnlyCollection_, and thereby passes the number of elements to the subsequent methods. **Steps to measure performance gain**: 1. Find in _System.Linq.Tests\Performance_ the test for the method you've changed; 2. Uncomment `[Fact]` attribute above that method; 3. Build test project by Visual Studio in Release mode; 4. Go to the folder with tests binaries: `bin\tests\Windows_NT.AnyCPU.Release\System.Linq.Tests\aspnetcore50\`; 5. Open command prompt (cmd.exe or PowerShell); 6. Run command: `CoreRun.exe xunit.console.netcore.exe System.Linq.Tests.dll -parallel none -trait ""Perf=true""`; 7. Wait for results that will be printed right in the command window; 8. Don't forget to run tests with different collection sizes. This can be done by varying _elementCount_ argument of _Measure_ method. **Casting to `IReadOnlyCollection`** is a slow operation so it is not a good idea to check if this interface implemented. The performance drop will be most noticeable on the small collections. **Tasks**: - [ ] `Select`: add iterators for `List`, `Array[T]`, `ICollection`; - [ ] `ToArray`, `ToDictionary`: add special support for `ICollection` (and, very carefully, for `IReadOnlyCollection`) to get the initial capacity; - [ ] `ToList` (???): add special support for `IReadOnlyCollection` to get the initial capacity (separated as it will affect _System.Collections.Generic_); - [ ] `OrderBy(Descending)/ThanBy(Descending)`: implement special iterator for `ICollection` to propagate `Count`; - [ ] `Cast`, `Reverse`: add iterators for `ICollection` to propagate `Count`; - [ ] `Range`, `Repeat`: add an iterator that implements `ICollection`; - [ ] `Skip`, `Take`: add an iterator that handle `ICollection`; - [x] Add performance tests for _System.Linq_ " +1187 area-System.Collections Improve the exception message of ToDictionary when keys are duplicated "`Enumerable.ToDictionary` makes it easy to turn an array into a dictionary. But when the keys are duplicated in the source array, it just throws an `ArgumentException` that says **An entry with the same key already exists**. It is hard to know what keys are duplicated. To improve the exception message without adding extra overhead, the exception message can be modified to **$""An entry with the key { key } already exists""**. `ToDictionary` internally calls `Dictionary.Add()`, so the improvement made to Dictionary.Add benefits all code that calls the method. " +1198 area-System.Linq Improve code coverage for System.Linq.Expressions According to the current code coverage report, this library is only at ~40%. Our general goal is closer to 90%, though this will depend on the library. We should investigate to see whether the current coverage level is appropriate, and if not, improve our test suites to provide better coverage. +1199 area-Serialization Improve code coverage for System.Xml.XmlSerializer According to the current code coverage report, this library is only at ~42%. Our general goal is closer to 90%, though this will depend on the library. We should investigate to see whether the current coverage level is appropriate, and if not, improve our test suites to provide better coverage. +1218 area-System.Collections Provide ConcurrentDictionary the ability to set initial capacity with DefaultConcurrencyLevel "It's absurdly difficult to create a ConcurrentDictionary with an initial capacity. This forces you to set the arcane DefaultConcurrencyLevel integer. I absolutely want to defer that to the platform. This leads to using this horrific code: ``` c# (int)typeof(ConcurrentDictionary<,>).MakeGenericType(typeof(int), typeof(int)) .GetProperty(""DefaultConcurrencyLevel"", BindingFlags.Static | BindingFlags.NonPublic) .GetValue(new ConcurrentDictionary()); ``` So either add a constructor that allows this. Add magic number support that providing < 1 results in this, or just make DefaultConcurrencyLevel be a public property. " +1220 area-Infrastructure Need a mechanism to be able to run dangerous Outerloop tests (that require machines to be recycled) Of the System.IO.FileSystem tests ported over, there were a couple that modified the current directory. Some set the current directory directly, some used the CurrentDirectoryContext helper class. Most of these instances were testing the behavior of APIs that acted on relative paths. For example, CreateDirectory_DotDotAsPath_WhenCurrentDirectoryIsRoot_DoesNotThrow() in CreateDirectory.cs does what its title says. This is a specific instance of the general problem of testing global process state. +1221 area-System.IO System.IO.FileSystem tests need a mechanism to test mounting drives System.IO.FileSystem tests need a way to test machine-wide state, specifically mounting network drives. +1227 area-System.Linq Performance tests for System.Linq (issue #1182) This PR introduces the performance tests for System.Linq as a part of work on the issue #1182. +1235 area-Serialization Add some tests for serialization Add/update serialization tests: DCS_BaseClassAndDerivedClassWithSameProperty Xml_StringAsRoot +1241 area-System.Linq Adding more tests to System.Linq. This time I copied some files from System.Linq.Parallel, because, looking at them, they seem to fit very well with System.Linq after removing the AsParallel() keyword. If I get a positive feedback about this from the community, then I will go ahead with copying the rest of files from System.Linq (of course on the condition that they fit) and hopefully this will improve the code coverage of System.Linq considerably. #1143 +1243 area-Infrastructure Build should disallow OS versions (and other parameters) that aren't supported We should have an allowable OS list and disallow parameters not matching the list. This avoids issues where someone sets OS=Mac vs OS=OSX. +1244 area-System.Runtime Add overloads to string trimming "The proposal is to add new extension methods / overloads for string trimming, As you know, right now, it's only possible to trim individual characters from a string, but I would like to trim suffixes & prefixes. An example usage: `""MyTest"".TrimEnd(""Test"") == ""My"" == true` I feel like they should've be there. It seems kind of weird to me, as I've implemented these by myself in the past few times, and am sure there are quite few people who miss this & would find it useful: http://stackoverflow.com/questions/7170909/trim-string-from-end-of-string-in-net-why-is-this-missing http://stackoverflow.com/questions/4101539/c-sharp-removing-strings-from-end-of-string http://stackoverflow.com/questions/5284591/how-to-remove-a-suffix-from-end-of-string http://stackoverflow.com/questions/4335878/c-sharp-trimstart-with-string-parameter Now the following statement is not true, but if it would be, it would describe how I am feeling: ""ooh hey, we offer you string replace method which can replace individual chars, but not the whole strings. It's not too hard to craft your own one, give it a try!"" The following applies to `TrimEnd` / `TrimStart`, but the overloads would be 1:1, so I will discuss only `TrimEnd`. **First overload:** `public string TrimEnd(string suffix)` Behaviour: trim the suffix, case-sensitive, and only once. The comparision is done the same way, as it would be for `string.Replace`. `""MyTestTest"".TrimEnd(""Test"") == ""MyTest"" == true` **Second overload:** `public string TrimEnd(string suffix, StringComparison comparison)` Works as the first one, but allows you to explictly tell how to compare. `""MyTESTtest"".TrimEnd(""test"", StringComparison.InvariantCultureIgnoreCase) == ""MyTEST"" == true` **Third overload(s):** I am not sure if these are needed, but I wanted to throw this out here anyway: ``` public string TrimEnd(string suffix, bool trimRepeatedly) public string TrimEnd(string suffix, bool trimRepeatedly StringComparison comparison) ""MyTestTEST"".TrimEnd(""test"", true, StringComparison.InvariantCultureIgnoreCase) == ""My"" == true ``` This proposal has nothing to do with string.Trim(), as it would be ambigious. `""tetet"".Trim(""tet"") == ???` Namespace: _System_ Type: _System.String_ Assembly: _System.Runtime.dll_ I'd be willing to work on this :3 " +1247 area-Serialization Serialization tests fail ``` DataContractSerializerTests.DCS_ContainsLinkedList [FAIL] System.Exception : Test failed for input : SerializationTypes.ContainsLinkedList Stack Trace: d:\Workspace\corefx\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs(1717,0): at DataContractSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractSerializerSettings settings, Func`1 serializerFactory) d:\Workspace\corefx\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs(1113,0): at DataContractSerializerTests.DCS_ContainsLinkedList() Starting: System.Xml.XPath.XmlDocument.Tests Finished: System.Runtime.Serialization.Xml.Tests === TEST EXECUTION SUMMARY === System.Runtime.Serialization.Xml.Tests Total: 97, Errors: 0, Failed: 1, Skipped: 0, Time: 1,906s ``` # ``` DataContractJsonSerializerTests.DCJS_ContainsLinkedList [FAIL] System.FormatException : Input string was not in a correct format. Stack Trace: at System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(IFormatProvider provider, String format, Object[] args) at System.Diagnostics.Debug.WriteLine(String format, Object[] args) d:\Workspace\corefx\src\Common\tests\System\Console.cs(12,0): at System.Console.WriteLine(String message, Object[] args) d:\Workspace\corefx\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs(1291,0): at DataContractJsonSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractJsonSerializerSettings settings, Func`1 serializerFactory, Boolean skipStringCompare) d:\Workspace\corefx\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs(1047,0): at DataContractJsonSerializerTests.DCJS_ContainsLinkedList() xUnit.net console test runner (32-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Xml.XPath.Tests Finished: System.Runtime.Serialization.Json.Tests === TEST EXECUTION SUMMARY === System.Runtime.Serialization.Json.Tests Total: 74, Errors: 0, Failed: 1, Skipped: 0, Time: 1,477s ``` /cc @khdang +1254 area-System.Linq Enumerable.Single and Enumerable.SingleOrDefault overloaded implementations are inconsistent There is an inconsistency between the implementations of [Enumerable.Single()](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Enumerable.cs#L1260) and [Enumerable.Single(predicate)](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Enumerable.cs#L1284). Similarly there is another similar inconsistency between the implementations of [Enumerable.SingleOrDefault()](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Enumerable.cs#L1306) and [Enumerable.SingleOrDefault(predicate)](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Enumerable.cs#L1330) The overloads which accept a predicate enumerate the whole sequence before eventually throwing, even if more than one matching elements were already found: For consistency and performance reasons, it may be a good idea to make [Enumerable.Single(predicate)](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Enumerable.cs#L1284) and [Enumerable.SingleOrDefault(predicate)](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Enumerable.cs#L1330) methods able to fail fast and to throw an `InvalidOperationException` as soon as a second matching element is found. If that seems like a reasonable change, I would gladly submit a pull request. +1255 area-Infrastructure Create Win7 CI build We currently have a number of folks that are still working on Win7 which we support and we keep breaking things from time to time. We need to get a CI build/test for Win7. +1256 area-Serialization Fix issue with serialization of XmlElement "From #1199 The following code runs on .net 4.5 but does not run on corefx. There is an exception {""To be XML serializable, types which inherit from IEnumerable must have an implementation of Add(System.Object) at all levels of their inheritance hierarchy. System.Xml.XmlElement does not implement Add(System.Object).""} System.Exception {System.InvalidOperationException} ``` csharp public class Program { public void Main(string[] args) { XmlSerializer serializer = new XmlSerializer(typeof(Product)); string text = @"" Iphone smartphone ""; StringReader reader = new StringReader(text); Product product = (Product)serializer.Deserialize(reader); Console.ReadLine(); } } public class Product { [XmlAnyElement] public XmlElement[] AllElements; } ``` " +1271 area-System.Runtime Add overload for case insensitive string Replace "# Introduction `String` does not provide `Replace` method for case-insensitive replacements, but only for case-sensitive replacements. # Rationale and usage The idea here is to make programmers life easier & move closer to API consistency. It is fairly common scenario where you have user inserted data that has some kind of place-holders (tokens), that later have to be replaced by some templating system. Current solutions in the internet involve using regex class for this trivial task. ```c# var userTemplateData = ""Hello there. Time now is %currenttime%""; var evaluatedData = Regex.Replace( userTemplateData, ""%CurrentTime%"", DateTime.Now.ToString(), RegexOptions.IgnoreCase); // evaluatedData = ""Hello there. Time now is 01/04/2015 14:37""; ``` This approach is horrible: 1) not readable 2) often times not correct, as pattern has to be run through `Regex.Escape` before. 3) most likely slow(er) After the necessary change is added, we can do: ```c# var evaluatedData = userTemplateData.Replace( ""%CurrentTime%"", DateTime.Now.ToString(), StringComparison.InvariantCultureIgnoreCase); ``` How common would the usage of this be? I would **speculate** that every programmer in their career will hit the lack of case-insensitive replacement in framework at least once. I can't say much more, expect provide some StackOverflow links below in Details section. I did quick search through the code-base I am new to, and found around ~30 case-insensitive `Regex.Replace` usages. # Proposed API ```c# public sealed class String : ... { .... // these two methods are provided for framework consistency // trying to follow the StartsWith/EndsWith public string Replace(string oldValue, string newValue, StringComparison comparison); public string Replace(string oldValue, string newValue, bool ignoreCase, CultureInfo culture); public string Replace(char oldValue, char newValue, CompareOptions options); .... } ``` # Details Namespace: **System** Type: **System.String** Assembly: **System.Runtime.dll** I'd love to see the current `string.Replace` [CoreClr implementation](https://github.com/dotnet/coreclr/blob/cbf46fb0b6a0b209ed1caf4a680910b383e68cba/src/classlibnative/bcltype/stringnative.cpp#L835) pulled out from CoreClr, and implemented 100% in the `String.cs`: This would help to: - avoid code-duplication - make it more transparent (programmers can take look at the implementation) - unit-test a little less, as they share both common functionality for `Replace(..., StringComparison.Ordinal);` Alternatively, we could also modify the existing `CoreClr` implementation to deal with `StringComparison`. Or, just rewrite everything from zero. # Links to explore http://stackoverflow.com/questions/244531/is-there-an-alternative-to-string-replace-that-is-case-insensitive http://stackoverflow.com/questions/6275980/string-replace-by-ignoring-case http://weblogs.asp.net/jongalloway/71188 # Updates - Edited this description to make it more of a **speclet**, based on the discussion below and the proposed API Review process. - Feedback to @tarekgh. Added my opinion about how often this functionality would be used I'd be willing to work on this :3 " +1272 area-System.Collections Make System.Collections.Immutable [Serializable] Please make collections from namespace System.Collections.Immutable serializable if it is possible - mark them with `[Serializable]` attribute and do other related changes. There can be many cases when this would be useful. Thanks. +1285 area-System.Reflection Misc additions supporting Portable PDB reader +1297 area-System.Linq Unit Tests for Enumerable.Select Set of basic tests for: ``` IEnumerable Enumerable.Select( this IEnumerable source, Func selector) ``` 1. Verify `ArgumentNullException`is thrown when either `source` or `selector` is null. 2. Verify that deferred execution works (for `T[]`, `List` and `IEnumerable`) 3. Verify that returned collection contains expected items (for `T[]`, `List` and `IEnumerable`) 4. Verify that `GetEnumerator` called twice returns two different instances of enumerator. Tests are intended to improve code coverage around `Select` method before applying performance improvements to it (https://github.com/dotnet/corefx/pull/1282). It's also connected to https://github.com/dotnet/corefx/pull/1241 and https://github.com/dotnet/corefx/issues/1143. +1298 area-System.IO System.IO.Compression test asset and native dependency proposal "System.IO.Compression provides an API to compress and decompress files. It supports the ZIP and gzip archive formats and the Deflate compression algorithm. **_Testing**_ System.IO.Compression has existing test assets that fit three categories: 1. Round trip data through compression and verify it remains intact 2. Extract and verify data compressed through other compatible compression libraries 3. Verify behavior when attempting to decompress invalid or edge case archives The existing assets include archives, as well as decompressed binary files both for use as source material, and an oracle to verify decompression. Altogether, the binary assets weigh in at about 40MB. **Problem:** these test assets need to exist at test run time. Placing them in our corefx git repository is problematic because binary assets do not compress well and will bloat the size of our repository. **Proposal:** Binary test assets are packaged in to a nuget package per test assembly to be deployed at test run time. The binary assets to generate these nuget package are persisted in a single separate Git repository. Git repository structure: corefx-testdata\ corefx-testdata\System.IO.Compression.TestData.nuspec corefx-testdata\System.IO.Compression.TestData\ Nupkg structure: content\ Test asset nuget packages are depended on by the test assembly’s packages.config Currently, nuget is designed to deploy at package reference time (ie. when a package is referenced in Visual Studio) rather than runtime. In Dev14 this is changing. Until then, we’ll include a target in the test assembly’s csproj to copy the assets from the downloaded nuget package to the test’s working directory. In addition to System.IO.Compression, metadata reader uses binary test assets, but as they are only 100KB combined and are not a practical problem. System.IO.Packaging has 60GB of test assets. **Proposal:** System.IO.Packaging split their test assets in to tiers, with a single nuget package per tier. The inner loop tests should be no more than some number of megabytes. **_Native Dependencies**_ In the desktop .NET Framework, although we have a purely managed implementation of the deflate algorithm, customers have reported that the popular cross-platform open-source zlib library is faster and performs high quality compression. In response we include zlib, which we wrap and delegate to. We build it from source using the unmodified 1.2.3 version of the sources in the FX partition, and name the resulting output “clrcompression.dll.” On Windows, to fit with .NET Core’s app-local, side-by-side model, if we include zlib, we should deploy a copy of the native assembly alongside the managed System.IO.Compression.dll assembly included with an application. zlib distributes both sources and official binaries. While we could redistribute the official zlib binary, unfortunately they only release a 32-bit version and we are currently distributing a 64-bit version of coreclr. While zlib has a permissive license, it is not the MIT license, and including it in the corefx repository would mean the corefx repository no longer only contained code under a single license. **Proposal:** Continue building clrcompression.dll from the FX repository. Publish the 64-bit version of clrcompression.dll in a nuget package System.IO.Compression.clrcompression-x64.nupkg. Make System.IO.Compression.clrcompression-x64 a dependency of the System.IO.Compression package. **X-Plat todo:** Linux has a strong history of deploying applications and their dependencies through package managers. Packagers bundle the application binaries and metadata describing dependencies in to packages, and publish those on package manager repositories. We are planning to declare other framework and runtime dependencies through package managers where appropriate, and System.IO.Compression’s zlib dependency should be consistent. " +1305 area-System.Xml Inconsistent behavior of XmlAttributeCollection.InsertBefore and InsertAfter "I've noticed an inconsistent behavior of `XmlAttributeCollection.InsertAfter(XmlAttribute newNode, XmlAttribute refNode)` comparing to `InsertBefore` when the reference node is the last in the collection (the first for `InsertBefore`) and it's a duplicate of the new node. The duplicate node (attribute) needs to be removed before inserting. `InsertAfter` is unable to handle the case and throws `System.ArgumentOutOfRangeException` further in `List.Insert()` due to an incorrectly calculated insert position, while `InsertBefore` does the job. I'm not sure if this case has any practical use, but might be worth fixing. The following unit test reproduces the problem: ``` [Fact] // [ActiveIssue(""Throws argument out of range exception"")] public void InsertAfterRemovesDupRefAttr() { const string attributeName = ""existingAttr""; const string attributeUri = ""some:existingUri""; XmlDocument doc = CreateDocumentWithElement(); XmlElement element = doc.DocumentElement; element.Attributes.Append(doc.CreateAttribute(""attr1"", ""some:uri1"")); element.Attributes.Append(doc.CreateAttribute(""attr2"", ""some:uri2"")); XmlAttribute refAttr = element.Attributes.Append(doc.CreateAttribute(attributeName, attributeUri)); //dup XmlAttribute newAttr = doc.CreateAttribute(attributeName, attributeUri); XmlAttributeCollection target = element.Attributes; target.InsertAfter(newAttr, refAttr); // throws // Assert... } ``` A similar case (the reference attribute is the first in the collection) works for `InsertBefore`: ``` [Fact] public void InsertBeforeRemovesDupRefAttr() { const string attributeName = ""existingAttr""; const string attributeUri = ""some:existingUri""; XmlDocument doc = CreateDocumentWithElement(); XmlElement element = doc.DocumentElement; XmlAttribute refAttr = element.Attributes.Append(doc.CreateAttribute(attributeName, attributeUri)); //dup element.Attributes.Append(doc.CreateAttribute(""attr1"", ""some:uri1"")); element.Attributes.Append(doc.CreateAttribute(""attr2"", ""some:uri2"")); XmlAttribute newAttr = doc.CreateAttribute(attributeName, attributeUri); XmlAttributeCollection target = element.Attributes; target.InsertBefore(newAttr, refAttr); // Assert... } ``` " +1313 area-System.IO FileInfo: get_LastWritTime test fail ``` EXEC : warning : (runTest, d:\corefx\src\System.IO.FileSystem\tests\FileInfo\get_LastWriteTime.cs, 100) Eror_f984f! LastWriteTime is way off [D:\corefx\src\System.IO.FileSystem\tests\System.IO.FileSystem.Tests.csproj] FAiL! get_LastWriteTime.cs ,iCountErrors==1 FileInfo_get_LastWriteTime.runTest [FAIL] Assert.Equal() Failure Expected: 0 Actual: 1 Stack Trace: d:\corefx\src\System.IO.FileSystem\tests\FileInfo\get_LastWriteTime.cs(126,0): at FileInfo_get_LastWriteTime.runTest() ``` +1314 area-System.Collections Regression: Comparer_DefaultInvariant.ExecuteComparer_DefaultInvariant http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release/lastFailedBuild/testReport/junit/(root)/Comparer_DefaultInvariant/ExecuteComparer_DefaultInvariant/ MESSAGE: Assert.True() Failure +++++++++++++++++++ STACK TRACE: at Comparer_DefaultInvariant.ExecuteComparer_DefaultInvariant() in d:\j\workspace\dotnet_corefx_windows_release\src\System.Collections.NonGeneric\tests\Comparer\Comparer_DefaultInvariant.cs:line 114 +1316 area-Infrastructure Use roslyn compiler to build corefx We should be using the Roslyn compiler to build +1317 area-Serialization Remove LegacyNetCF serializer from XmlSerializer +1318 area-Infrastructure Single tests should be able to be run through the IDE Currently there seems to be some miscommunication between the corefx repo/project setup and the IDE, and the test discovery inside the IDE for xunit is broken. This makes it difficult to run single tests +1326 area-System.IO System.IO.Compression tests need to remove a workaround for not understood DST issue The System.IO.Comprssion tests verify the last modified metadata of zip file entries. There is currently a workaround where the check will succeed if the entry is 1 hour earlier than expected. This is to work around a not understood DST issue either in the test, or in the library. I need to understand if the issue is a test or product issue, and fix. +1330 area-System.Linq Parallel.Linq.Distinct not returning first element equal element in ordered queries. "Parallel.Linq.Distinct doen't return the first ""equal"" element in ordered queries. Take, for example, the following set: `{0, 1, 2, 3, 4, 5, 6, 7}` - and use a comparator that says everything `mod 4` is identical (so, `0` is the same as `4`, `1` and `5`, etc). I'm somewhat expecting to get `{0, 1, 2, 3}`, but I don't - any of the 'later' identical values can be returned. For those of you contending that ""They're identical, it doesn't matter"", which I somewhat thought too, I'm basing this on comments internal to the [Distinct operator](https://github.com/dotnet/corefx/blob/master/src/System.Linq.Parallel/src/System/Linq/Parallel/QueryOperators/Unary/DistinctQueryOperator.cs#L238-L251): ``` 238 // For each element, we track the smallest order key for that element that we saw so far 239 TKey oldEntry; 240 241 Wrapper wrappedElem = new Wrapper((TInputOutput)elem.First); 242 243 // If this is the first occurrence of this element, or the order key is lower than all keys we saw previously, 244 // update the order key for this element. 245 if (!_hashLookup.TryGetValue(wrappedElem, out oldEntry) || _keyComparer.Compare(orderKey, oldEntry) < 0) 246 { 247 // For each ""elem"" value, we store the smallest key, and the element value that had that key. 248 // Note that even though two element values are ""equal"" according to the EqualityComparer, 249 // we still cannot choose arbitrarily which of the two to yield. 250 _hashLookup[wrappedElem] = orderKey; 251 } ``` The [ordering page](https://msdn.microsoft.com/en-us/library/vstudio/dd460677%28v=vs.110%29.aspx) just says these operators return ""ordered"" results given an ordered source, which is technically still happening - so long as there was an element in that original position, that or an equal one is returned in that position. Vanilla LINQ actually says `Distinct` returns _unordered_ results, but I'm guessing they really meant ""we didn't use `OrderBy` to make things easier for us"", especially as all the examples (and the way the operator is implemented) show that it retains the ordering of the original source (and how the other set operators behave - `Except` doesn't mention ordering, `Intersect` explicitly mentions the original order is retained, and `Union` mostly implies the original order is retained). So... which is correct? Should the actual-first equal element be returned (as I'm expecting), or that's a stronger guarantee than we need (and any equal item can be returned in its place)? Example reproduction code (may fail to fail): ``` using System; using System.Collections.Generic; using System.Linq; using Xunit; namespace Test { public class Example { [Fact] public static void DistinctExample() { ParallelQuery original = ParallelEnumerable.Range(0, 24).AsOrdered(); int seen = 0; Assert.All(original.Distinct(new ModularCongruenceComparer(4)), i => Assert.Equal(seen++, i)); Assert.Equal(4, seen); } private class ModularCongruenceComparer : IEqualityComparer { private int _mod; public ModularCongruenceComparer(int mod) { _mod = Math.Max(1, mod); } private int leastPositiveResidue(int x) { return ((x % _mod) + _mod) % _mod; } public bool Equals(int x, int y) { return leastPositiveResidue(x) == leastPositiveResidue(y); } public int GetHashCode(int x) { return leastPositiveResidue(x).GetHashCode(); } public int GetHashCode(object obj) { return GetHashCode((int)obj); } } } } ``` " +1332 area-System.Linq Parallel.Linq.Concat not consistent with ordered input "`Parallel.Linq.Concat` isn't behaving consistently when given ordered input sources. As `Concat` is a binary operator, two sources may be supplied. The inconsistency surfaces depending on which, and how, operand is ordered. If both **or** either (only the left or the right) is ordered via `AsOrdered()`, the entire output is ordered. If the left operator is ordered via any of the `OrderBy(...)` operators (`OrderBy`, `OrderByDescending`, `ThenBy`, `ThenByDescending`), the entire output is ordered. If the _right_ operator is ordered via any of the `OrderBy(...)` operators, only the _left_ output is ordered (as by `AsOrdered()`), and the right is returned in a non-deterministic order. It only seems to do this with right sources constructed via `Enumerable.Range(...).AsParallel()` and `Partitioner.Create(...).AsParallel()`. Using a `List` is safe (eg, `Enumerable.Range(...).ToList().AsParallel()`), however the output of LINQ is not: `list.Select(x => x).AsParallel()` can return unordered output. How the left operand is constructed appears to have no effect. This is also the behavior of the current consumer release. Example program: ``` static void Main(string[] args) { int leftSize = 8; int rightSize = 8; ParallelQuery query = ParallelEnumerable.Range(0, leftSize) .Concat(Enumerable.Range(0, rightSize).AsParallel().OrderBy(x => x)); foreach (int i in query) { Console.Write(i + ""|""); } Console.ReadLine(); } ``` (This is a bit of a Heisenbug - expect it to generate completely ordered output on occasion. It's possible that it does this for all input types, and I just haven't seen it yet, although I consider this unlikely) The [ordering page](https://msdn.microsoft.com/en-us/library/vstudio/dd460677%28v=vs.110%29.aspx) states that ordered input to `Concat` results in ordered output, and unordered input results in unordered output, but it isn't clear what happens when you have one of each. At minimum, the output actually observed is disturbing on first encounter. `Zip` appears to operate similar to how I anticipate `Concat` operating - if either input is ordered, the entire output is ordered, regardless of source. " +1334 area-System.IO Investigate async usage for System.IO.Compression "@stephentoub pointed out two suspect uses of Async in System.IO.Compression in https://github.com/dotnet/corefx/pull/1309 - In System\IO\Compression\DeflateStream.cs: ``` 347 + // If there is no data on the output buffer and we are not at 348 + // the end of the stream, we need to get more data from the base stream 349 + readTask = _stream.ReadAsync(buffer, 0, buffer.Length, cancellationToken); 350 + if (readTask == null) 351 + { 352 + throw new InvalidOperationException(SR.NotReadableStream); 353 + } 354 + 355 + var tcs = new TaskCompletionSource(); 356 + 357 + // ContinueWith will never throw here otherwise we'll be in inconsistent state 358 + readTask.ContinueWith( ``` ""It's not clear to me why ContinueWith is being used in this fashion rather than using async/await. We should open a work item to revisit this async implementation."" In System\IO\Compression\DeflateStream.cs: ``` 625 + Interlocked.Increment(ref asyncOperations); 626 + 627 + try 628 + { 629 + return base.WriteAsync(array, offset, count, cancellationToken).ContinueWith( 630 + (t) => Interlocked.Decrement(ref asyncOperations), ``` ""This looks like a real bug. Any exceptions or cancellation information from the Task returned from the base WriteAsync is getting eaten."" " +1336 area-System.Linq Collections should have extensions to compute order statistic `System.Linq` has extensions implemented for computing the minimum and maximum. Example: ``` C# var a = new int[] {100, 300, 200, 400}; WriteLine(a.Max()); // prints 400 WriteLine(a.Min()); // prints 100 ``` While these are useful values when dealing with collections, they are merely special cases of nth order statistics. More often than not, people are also interested in a specific cases. For example, when querying the collection in the sample code above, the question may be posed, what is the 3rd smallest item in the array? The naive implementation would be to sort the array and print the 3rd item in it. However, there are selection algorithms that can do this more efficiently, without the need to actually invoke a sort method on the array. A method should be implemented in line with the `Min` and `Max` extension methods to accomplish this. The API should be a simple as: ``` C# WriteLine(a.NthSmallestElement(3)) // should print 300 WriteLine(a.NthSmallestElement(1)) // should print 100 WriteLine(a.NthSmallestElement(a.Length)) // should print 400 ``` The method name may differ based on further discussion. I chose the name based on C++ references that I had seen earlier. +1343 area-Serialization Add serialization support for XmlDocument and XmlElement in XmlSerializer Add back the code that was removed when moving serialization to .NET Core. Issue #1256. +1346 area-System.Runtime Support for ICustomMarshaler Split from #1333 Recorded uses in (3rd party) libraries: - [LibGit2Sharp](https://github.com/libgit2/libgit2sharp/search?utf8=%E2%9C%93&q=ICustomMarshaler&type=Code) - Mono.Posix see #94 +1347 area-Serialization Support for binary serialization Split from #1333 Turns out binary serialization is not really needed in my case as it's used only on exceptions, but it would still be nice to know whether it's coming back or whether it is depreciated. +1349 area-System.Reflection Dev/metadata Merge changes from master. +1351 area-Serialization Add serialization support for XmlDocument and XmlElement in XmlSerializer Add back the code that was removed when moving serialization to .NET Core. Issue #1256. +1355 area-System.IO Failure in System.IO.FileSystem.DriveInfo ``` Discovering: System.IO.FileSystem.DriveInfo.Tests Discovered: System.IO.FileSystem.DriveInfo.Tests Starting: System.IO.FileSystem.DriveInfo.Tests System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests.TestVolumeLabel [FAIL] Assert.Throws() Failure Expected: typeof(System.UnauthorizedAccessException) Actual: typeof(System.IO.IOException): The request is not supported Stack Trace: e:\oss\corefx\src\System.IO.FileSystem.DriveInfo\src\System\IO\DriveInfo.Windows.cs(235,0): at System.IO.DriveInfo.set_VolumeLabel(String value) e:\oss\corefx\src\System.IO.FileSystem.DriveInfo\tests\DriveInfo.Windows.Tests.cs(180,0): at System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests.<>c__DisplayClass20.b__18() Finished: System.IO.FileSystem.DriveInfo.Tests ``` I think this is consistent failure on my box (at least repeated few times) This happens for my DVD drive when there is no drive inside. @Priya91 seemed to also have checked it on her computer but she was unable to repro. When I use DriveInfo class on my DVD drive it is able to get the DriveType but trying to access VolumeLabel or DriveFormat (also for read) causes the same failure. +1360 area-System.Collections System.Collections.Specialized.Tests.GetItemObjTests.Test01 [FAIL] ``` System.Collections.Specialized.Tests.GetItemObjTests.Test01 [FAIL] Error, returned wrong item for uppercase key Stack Trace: d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Collections.Specialized\tests\HybridDictionary\GetItemObjTests.cs(328,0): at System.Collections.Specialized.Tests.GetItemObjTests.Test01() ``` I coudln't repro locally, probably some threading issue +1370 area-System.Diagnostics Provide an API for traversing/reasoning about async call stacks Any tool that shows exceptions today also shows the callstack. With the introduction of the async keyword (yield was the same I guess), it's becoming increasingly harder to show reasonable call stacks because of the async state machine. It would be nice if there was an API somewhere that could be used to clean up the async state machine and pretty print a call stack with readable method names (tools like reflector do this). Here's an example of a typical error page in an MVC 6 application: ![image](https://cloud.githubusercontent.com/assets/95136/7085404/4e19da18-df2b-11e4-8fa7-28a0799854f0.png) +1373 area-System.Linq enumerable.AsParallel().LongCount() can only count int.MaxValue elements "... as well as `enumerable.AsParallel().LongCount(x => true)` (I thought this override had a successful run, but it isn't now) The overflow is encountered at [PartitionedDataSource.cs, line 967](https://github.com/dotnet/corefx/blob/master/src/System.Linq.Parallel/src/System/Linq/Parallel/Partitioning/PartitionedDataSource.cs#L697). The problem is that these partitioned data sources all presume to only operate over `int.MaxValue` elements, and the rest of the file (and related infrastructure) depend on that. Some sort of re-architecting (rather than simply switching the key from `int` to `long`) is probably required. Repro test: ``` [Fact] // Extremely long-running public static void LongCount_LargeCount() { Assert.Equal(int.MaxValue + 1L, new OverlyLargeEnumerable().AsParallel().LongCount()); } private class OverlyLargeEnumerable : IEnumerable { public IEnumerator GetEnumerator() { return new OverlyLargeEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } private class OverlyLargeEnumerator : IEnumerator { private long _current = -1; public long Current { get { return _current; } } object IEnumerator.Current { get { return Current; } } public void Dispose() { _current = int.MaxValue; } public bool MoveNext() { // Adds one _after_ compare, so final value is int.MaxValue + 1 return _current++ < int.MaxValue; } public void Reset() { _current = -1; } } } ``` Vanilla LINQ is fine. This behavior is present on the current consumer release. (""You had one job! ONE! JOB!"") (side note - I'm a little surprised by how much slower this runs in parallel compared to doing it sequentially - by about 6 times, or ~120 seconds vs 20 seconds) " +1378 area-System.Collections Add IEnumerable> variants to Dictionary's .ctors We should consider adding constructors to `Dictionary` which allow building a Dictionary from an IEnumerable of KeyValueParis. ## Rationale and Usage Given an `IEnumerable>` there's no simple way to construct a dictionary, around it. Instead you have to do something like: ``` csharp var dict = new Dictionary(); foreach (KeyValuePair kvp in enum) { dict.Add(kvp.Key, kvp.Value); } ``` or ``` csharp var dict = enumerable.ToDictionary(kvp => kvp.Key, kvp => kvp.Value); ``` `ConcurrentDictionary` already provides such .ctors. This is especially useful in the case where you want to make a copy of an `IReadOnlyDictionary` ## Proposed API ``` csharp public class Dictionary : ICollection, ICollection>, IDictionary, IDictionary, IEnumerable, IEnumerable>, IReadOnlyCollection>, IReadOnlyDictionary { // New .ctors public Dictionary(IEnumerable> enumerable); public Dictionary(IEnumerable> enumerable, IEqualityComparer comparer); // Existing .ctors public Dictionary(); public Dictionary(IDictionary dictionary); public Dictionary(IDictionary dictionary, IEqualityComparer comparer); public Dictionary(IEqualityComparer comparer); public Dictionary(int capacity); public Dictionary(int capacity, IEqualityComparer comparer); // Remaining members removed for brevity. } ``` See some additional discussion on this issue is at dotnet/coreclr#680 +1389 area-System.Reflection Fixes a couple of bugs in debug handle enumerators +1414 area-System.Collections ImmutableList (and Builder) IList.Contains, IndexOf, Remove methods throw instead of return -1 given unexpected argument types A bit longer story http://blog.rthand.com/post/2015/04/10/A-hidden-bug-in-Windows-Stores-ComboBox.aspx Basically a Windows Store (8.1 and 10 at least) ComboBox first tries ComboBoxItem against its ItemsSource IList.IndexOf and if that gracefully fails (returns -1) then it tries with the actual type. This works with normal List because this guy returns -1 when an incompatible type is used, where ImmutableList throws an exception (doesn't do any check actually) and ComboBox doesn't understand that very well. To make it worse ComboBox doesn't perform this stunt immediately but only after a while (when one scrolles some of its items). Now, I'd say that this is ComboBox' fault but who knows. +1415 area-System.Linq Propose: new method Enumerable.IndexOf Hi, I would like to propose a new member for Enumerable class: ``` int IndexOf(IEnumerable source, T item, IEqualityComperer comparer) ``` It's useful to find the index of an item inside the source. Only `IList` has a similar method but it forces me to completely materialize all the source. The implementation can enumerate list or, if the original source type is `IList`, call the `IList.IndexOf` method. If the source type is an `Array` we can call `Array.IndexOf`. What do you think? +1440 area-Serialization Improve code coverage for data contract serializers Improve code coverage for DataContractSerializer and DataContractJsonSerializer +1441 area-Serialization Expose more details in serialization test failures Include expected and actual output when serialization tests fail and clean up tests to get rid of Console.WriteLine. +1443 area-System.Reflection Merge master +1450 area-System.Runtime Make TimeZoneInfo.AdjustmentRule.BaseUtcOffsetDelta public I would like to propose that `TimeZoneInfo.AdjustmentRule.BaseUtcOffsetDelta` be marked `public` instead of `internal`. This can be seen [here](https://github.com/dotnet/coreclr/blob/d46b09d4dfc8e25d7e61a9994f89720cf01b5086/src/mscorlib/src/System/TimeZoneInfo.cs#L3754). There are several reasons: - The `AdjustmentRule` class is loaded from registry information, loosely matching the `_REG_TZI_FORMAT` structure. (See [this article](http://blogs.msdn.com/b/bclteam/archive/2007/06/07/exploring-windows-time-zones-with-system-timezoneinfo-josh-free.aspx)). - The whole reason this property was added ([KB3012229](https://support.microsoft.com/en-us/kb/3012229)) is such that the data from the registry can be better reflected in this class. Specifically, the `_REG_TZI_FORMAT.Bias` value can change from year to year, so `AdjustmentRule.BasUtcOffsetDelta` was created to track the delta between the year-to-year bias and the default bias for the time zone. - There's no good reason (IMHO) to keep this internal. Doing so means that the full functionality of the `AdjustmentRule` class can really only be used when populated by the framework itself. It also makes understanding the way that the framework populates the class difficult, as all fields are exposed through public properties _except_ this one. - It creates problems for those trying to use it in other scenarios. See Example 2 in Jon Skeet's post [Backward Compatibility Pain](http://codeblog.jonskeet.uk/2015/03/02/backward-compatibility-pain/). Additionally, there needs to be some public way to create an `AdjustmentRule` that has a value for this property. Either the existing `CreateAdjustmentRule` factory method should be made public, or a parameter could be added to the existing constructor, or another constructor could be added. Thanks for your consideration. +1455 area-System.Reflection Merge branch 'master' of https://github.com/dotnet/corefx into dev/metadata +1464 area-System.Reflection Set genericParameterCount in MethodSignature This addresses issue #1463 +1472 area-System.Reflection Merge branch 'master' of https://github.com/dotnet/corefx into dev/metadata +1474 area-Meta CoreFX Primer "I'm writing a [.NET Primer](https://github.com/dotnet/coreclr/pull/725) in the CoreCLR repo that has a strong bias to the runtime features. I'd like to start one that has a strong bias to the framework libraries. It makes sense for it to live in this repo. Naturally, there would be cross-linking between the two. - Good idea? - What should this primer be called? I don't want to call one "".NET Core Runtime Primer"" and then other "".NET Core Framework Primer"". The primer I'm working on right now is the primer for the fundamentals of .NET generally, in an ECMA 335 sense. It's intended to be equally meaningful for Mono. The CoreFX Primer, on the other hand, would be specific to this implementation, so we could reasonable call it the "".NET Core Framework Primer"". /cc @Petermarcu FYI: This topic would move the corefx primer: https://github.com/dotnet/coreclr/blob/dotnet-primer/Documentation/framework-libraries.md. " +1476 area-System.Text Regex constructor throws NullReferenceException and OutOfMemoryException "Following line of code throws NullReferenceException: Regex regex = new Regex(""(?(?i))""); And following line of code throws OutOfMemoryException: Regex regex = new Regex("" (?(?i))""); Both patterns are if constructs where expression ""?i"" contains quantifier following nothing. There seems to a problem with ""i"" letter or any other letter that is an inline character for a particular option (i, m, n, s, x). If you change ""i"" with ""a"" (not an inline character), ArgumentException is thrown as expected. Both patterns are invalid so according to the .NET documentation, both lines should throw ArgumentException. This behaviour is especially unpleasant in case of ""regex tester"" application (such as http://regexator.net) which tries to continually evaluate user input as regex pattern. This behaviour has been tested in .NET 4.0, 4.5 and 4.6, all with the same results. " +1477 area-Infrastructure Test infrastructure requirements and scenarios "Current updated proposal from @Chrisboh : **Requirements we need to satisfy** • Run a set of tests that all developers should run before checking in • Specify a set of tests to run from the command line • Be able to debug all test cases • Run with code coverage turned on • Only build what is required ## Proposal The key to this proposal starts at build time. We need to only build what we are going to run. This is important both for overall runtime as well running tests using .net native. In order to satisfy this we need to move our ability to filter up higher in the process. ## Building only What is Required The following include is where we find all of our test projects and add them to the list of items we would like to build. **File:** CoreFX\src\dirs.proj (line 8) `` We need to add a condition to this to only include items that match a supplied filter. This filter would contain the following items. **Filter List:** • InnerLoop • Functional • Partner • Customer #### InnerLoop This will contain everything we consider an Unit test today and until we complete the work to run our tests based on selectivity should be the minimum required set of tests that get run before accepting any PR. #### Functional (OuterLoop Ring 1) This category is made up of test cases that will test larger sections of the code and / or take longer to run. The tests in this category should also give us a quick high level check that there are no major issues with regards to basic performance, stress, or security. #### Partner (OuterLoop Ring 2) The goal of this category is to determine if we are ready for team Dogfooding. All performance and stress tests should be in this category as well as any compliance / security tests. #### Customer (OuterLoop Ring 3) The goal of this category is to determine if we are ready to release this for Partner Dogfooding. This will contain all scenario test cases and will have a manual component added as well. ## Defining Test Project In order for our filtering to work correctly we need to ensure that test project is setup correctly. The simple way to do this is to create a test project for each category in the Filter list. This would give us at most 4 test projects but it will be more typical to have around 2 projects as I could see unifying scenario, compliance, and security tests in a single location. In order to do this we will need to filter by test project name. We will follow the following naming conventions. `*..tests.dll` Example: `System.ObjectModel.InnerLoop.tests.dll` ## Xunit Attributes Now it is time to address what we are going to be doing about the Xunit attributes. First we will remove all attributes that can be replaced with the project filters. This will include things like InnerLoop, OuterLoop, Performance, and Stress. These attributes will not be used when deciding what binaries we should build and run. What this doesn't mean is that we will be removing all attributes entirely. We still need to keep and leverage certain attributes in order to give us the flexibility we need to further fine tune our runs. Here are some of the key attributes we will need to leave in place. #### Active Issue Attribute This attribute will be used to filter out failing test cases when running locally. When running our daily builds we should include these test cases and label them as failing with a known bug. #### Platform Specific Attribute This attribute will be used to filter out test cases that do not apply to the platform you are currently running on. There was some debate on whether we should promote this to the filter list or not. At this time we don’t feel there are enough test cases to warrant promoting this to the filter list. In the future if this becomes an issue we can revisit this. ## Command Line We will need to execute everything from the command line as well as be able to select everything we need. Doing so will be done via two properties. The first will be defining the test categories that you would like to include. This will be done with the following property. `/p:TestTypes=""InnerLoop;Functional""` The second property will be used to supply extra command line parameters to Xunit. This will simply be a pass-through from the msbuild command line onto Xunit and we will use the following property for that. `/p:AdditionalXunitArgs=""-notrait ActiveIssue""` Additionally if you do not specify the TestTypes property it should run all Developer test cases automatically. Also not specifying the AdditionalXunitArgs property should be default exclude any test with an Active Issue and regardless if the property is specified we should include the correct OS parameter. ## Debugging This will be the same as what we have today. In the future we should invest me making the Xunit.runner.VisualStudio work and this would simplify everything. " +1490 area-System.Linq Parallel.Linq.GroupBy not using first 'equal' key. Similar to `Distinct` ( #1330 ), `GroupBy` isn't choosing the 'first' or earliest identical element for a key. That is, given an ordered range `{0, ... 23}`and running `GroupBy(x => x, compareMod(4))`, I'm expecting the first (lowest, here) element that occurs in the source to be chosen as the key - `{0, 1, 2, 3}`. Instead, any element may be chosen as the key (although it looks like `0` is consistently being chosen for the first key... hmmm...) Reproduction code (may not always fail): ``` using System; using System.Collections.Generic; using System.Linq; using Xunit; namespace Test { public class Example { [Fact] public static void GroupByExample() { ParallelQuery original = ParallelEnumerable.Range(0, 24).AsOrdered(); int seen = 0; Assert.All(original.GroupBy(x => x, new ModularCongruenceComparer(4)), i => Assert.Equal(seen++, i.Key)); Assert.Equal(4, seen); } private class ModularCongruenceComparer : IEqualityComparer { private int _mod; public ModularCongruenceComparer(int mod) { _mod = Math.Max(1, mod); } private int leastPositiveResidue(int x) { return ((x % _mod) + _mod) % _mod; } public bool Equals(int x, int y) { return leastPositiveResidue(x) == leastPositiveResidue(y); } public int GetHashCode(int x) { return leastPositiveResidue(x).GetHashCode(); } public int GetHashCode(object obj) { return GetHashCode((int)obj); } } } } ``` +1491 area-System.Xml Some tests are failing when decimal separator is not a dot Some XML tests are failing if decimal separator is not a dot. Example repro: - Start->Run (WinKey + R) -> `intl.cpl` - Change format (no need to change locale) to `Ukrainian (Ukraine)` - `build /p:WithCategories=OuterLoop` Example error: ``` TestCase:WriteFullEndElement - ERROR: RECA Expected: -4582,24 Actual : -4582.24 elem.WriteValue(floatToUri) ``` +1498 area-System.Linq Unit tests for Enumerable.Where Following MarcinJuraszek's examples for Enumerable.Select, I added basically identical tests for Enumerable.Where. +1502 area-System.Collections [Proposal] Use B+-trees instead of AVL trees for Immutable Collections Currently the `Node` class used for `ImmutableList` includes 40 bytes of overhead per list element on X64, and 24 bytes of overhead on X86. This means the memory cost of using this data structure for an `ImmutableList` is 1000% on X64, and 600% on X86 (these figures represent the amount of memory used for storing non-data elements associated with the structure). I propose migrating to a B+-tree instead, using a fixed value for _b_ and declaring data values in the index and data pages directly (to avoid unnecessary memory overhead for arrays). The choice of _b_ primarily affects the following things: 1. The height of the tree. Shorter tree heights improve performance for random access lookups by improving memory locality for a majority of traversal operations. 2. The size of the pages. Mutations of immutable data structures require reconstructing pages leading back to the root. If the pages are large, mutations could become expensive. In addition to the above, B+-trees provide a substantial memory savings by removing the child pointers (the Left and Right pointers for AVL nodes) from the leaves. My initial calculations (which could be completely wrong) indicate that the average memory allocation required for a single mutation operation on a list of 100000 elements using the AVL structure is 775 bytes for X64 and 493 bytes for X86. The optimal value of _b_ for X64 in terms of mutation allocation overhead is _b_=8, which costs 476 bytes per operation on a list of the same size (39% reduction). For X86 this same value of _b_ costs 388 bytes per mutation (21% reduction, and _b_=6 would be optimal with 382 bytes). The overall storage overhead for _b_=8 drops a staggering amount down to 169% for X64 and 119% for X86 (counting the average page at 75% capacity, based on a merge at 50% and split at 100%). +1504 area-System.Collections Some Collections.NonGeneric tests have race conditions and ocassionally failing ( http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/963/console ) ``` Xunit.Sdk.EqualException: Assert.Equal() Failure Γåô (pos 0) Expected: en-US Actual: cs-CZ Γåæ (pos 0) at Xunit.Assert.Equal(String expected, String actual, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences) at Xunit.Assert.Equal(String expected, String actual) at Comparer_DefaultInvariant.runTest() in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Collections.NonGeneric\tests\Comparer\Comparer_DefaultInvariant.cs:line 52 Fail! iCountErrors==1 Comparer_DefaultInvariant.ExecuteComparer_DefaultInvariant [FAIL] Assert.True() Failure ``` The tests are setting: ``` csharp CultureInfo.DefaultThreadCurrentCulture = culture; CultureInfo.DefaultThreadCurrentUICulture = culture; ``` Which may fail when run on different threads. +1509 area-System.Numerics Poor hash function in .Net source The `CombineHashCodes` in `System.Numerics.HashCodeHelper` has a very high collision rate for uniformly distributed data! The method probably first appeared in `System.Web.Util.HashCodeCombiner` class and then used in `System.Array`, `System.Tuple` and dotnet/corefx. Here's an example: Assuming the `CombineHashCodes` method's implementation is: ``` C# internal static int CombineHashCodes(int h1, int h2) { return (((h1 << 5) + h1) ^ h2); } ``` 100K raw data results in more than 6K duplicate hash values, that is 6% of a uniformly distributed set: ``` C# var data = Enumerable.Range(0, 100000) .Select(t => new { Val1 = t, Val2 = 100000 + t }) .GroupBy(t => CombineHashCodes(t.Val1.GetHashCode(), t.Val2.GetHashCode())) .Where(t => t.Count() > 1) .Select(t => new { Hash = t.Key, Items = t.ToList() }) .ToList(); ``` I believe there are much better hash functions to use like the one Josh Bloch suggests in Effective Java, which results in no hash collision even for 1M records of data in example above: ``` C# internal static int CombineHashCodes(int h1, int h2) { return (17 * 31 + h1) * 31 + h2; } ``` +1511 area-Infrastructure Remove properties not relevant to code formatting from corefx.vssettings "Looks like we have a few properties that are unrelated to formatting in corefx.vssettings such as: ``` 0 2 ``` We should remove them so that only C# formatting settings are in that file. " +1512 area-System.Collections System.Collections.Immutable and APTCA/SecurityTransparentAttribute If possible please add one of attributes forcing assembly to be Security Transparent (AllowPartiallyTrustedCallersAttribute or SecurityTransparentAttribute). This will help using this library in some quite uncommon partial trust scenarios. +1513 area-System.Runtime Add String.Split overloads that take a single char and string separator It's extremely common to split a string based on a single `char` or `string` separator, yet `String.Split` only offers overloads that accept an array of separators. The `params char[] separator` overload is particularly insidious as the `params` usage often results in a large number of unnecessary `char[]` heap allocations, unbeknownst to the developer. ## Rationale and Usage [Stack Exchange ran into this](http://blog.marcgravell.com/2013/11/allocaction-allocation-allocation.html) (significant number of separator arrays in memory) and submitted a [pull request](https://aspnetwebstack.codeplex.com/SourceControl/network/forks/marcgravell/outputcachecleanup/contribution/7201) to ASP.NET MVC to cache `String.Split` separator arrays inside the ASP.NET MVC codebase. They ended up with the following: ``` c# namespace System.Web.Mvc { internal static class StringSplits { // note array contents not technically read-only; just... don't edit them! internal static readonly char[] Period = new[] { '.' }, Comma = new[] { ',' }; } } ``` With uses of `string.Split('.')` and `string.Split(',')` replaced with `string.Split(StringSplits.Period)` and `string.Split(StringSplits.Comma)` to avoid the `char[]` allocations. It'd be awesome if `String.Split` offered overloads that accepted a single separator to avoid this. ## Proposed API ``` c# public partial class String { // Proposed methods public string[] Split(char separator, StringSplitOptions options = StringSplitOptions.None); public string[] Split(char separator, int count, StringSplitOptions options = StringSplitOptions.None); public string[] Split(string separator, StringSplitOptions options = StringSplitOptions.None); public string[] Split(string separator, int count, StringSplitOptions options = StringSplitOptions.None); // Existing methods public string[] Split(params char[] separator); public string[] Split(char[] separator, int count); public string[] Split(char[] separator, StringSplitOptions options); public string[] Split(char[] separator, int count, StringSplitOptions options); public string[] Split(string[] separator, StringSplitOptions options); public string[] Split(string[] separator, int count, StringSplitOptions options); } ``` ## Notes We had wanted to add `public string[] Split(string separator)`, but this breaks source compatibility with uses of `Split(null)`, which is documented to split based on white space, because it makes the call ambiguous between `Split(char[])` and `Split(string)`. I won't go into it here as it's really a separate feature request, but it would also be worth considering new `Split` methods that return a `struct` collection of `StringSpan`/`StringSegment` structs (in lieu of internal runtime span/substring magic) to avoid the resulting `string[]` allocation (and substring allocations, unless needed). I'd be happy to contribute an implementation and tests. +1514 area-System.Runtime Add String.Format overloads to avoid unnecessary allocations "It's pretty common to pass value types to `String.Format`, unfortunately this results in unnecessary boxing allocations. ## Rationale Consider the following: ``` c# long id = ...; int index = ...; int length = ...; // Traditional call to String.Format string foo = string.Format(""{0}: Index = {1}, Length = {2}"", id, index, length); // Use of the string interpolation language feature string bar = $""{id}: Index = {index}, Length = {length}""; ``` Both the traditional call to `String.Format` and the use of the string interpolation language feature (which is just syntactic sugar for `String.Format`) requires 3 boxing allocations. ## Proposed API ``` c# namespace System { public sealed class String : ... { // Proposed methods public static string Format(string format, T0 arg0); public static string Format(string format, T0 arg0, T1 arg1); public static string Format(string format, T0 arg0, T1 arg1, T2 arg2); public static string Format(IFormatProvider provider, string format, T0 arg0); public static string Format(IFormatProvider provider, string format, T0 arg0, T1 arg1); public static string Format(IFormatProvider provider, string format, T0 arg0, T1 arg1, T2 arg2); // Existing methods public static string Format(string format, object arg0); public static string Format(string format, object arg0, object arg1); public static string Format(string format, object arg0, object arg1, object arg2); public static string Format(string format, params object[] args); public static string Format(IFormatProvider provider, string format, object arg0); public static string Format(IFormatProvider provider, string format, object arg0, object arg1); public static string Format(IFormatProvider provider, string format, object arg0, object arg1, object arg2); public static string Format(IFormatProvider provider, string format, params object[] args); ... } } namespace System.Text { public sealed class StringBuilder { // Proposed methods public StringBuilder AppendFormat(string format, T0 arg0); public StringBuilder AppendFormat(string format, T0 arg0, T1 arg1); public StringBuilder AppendFormat(string format, T0 arg0, T1 arg1, T2 arg2); public StringBuilder AppendFormat(IFormatProvider provider, string format, T0 arg0); public StringBuilder AppendFormat(IFormatProvider provider, string format, T0 arg0, T1 arg1); public StringBuilder AppendFormat(IFormatProvider provider, string format, T0 arg0, T1 arg1, T2 arg2); // Existing methods public StringBuilder AppendFormat(string format, object arg0); public StringBuilder AppendFormat(string format, object arg0, object arg1); public StringBuilder AppendFormat(string format, object arg0, object arg1, object arg2); public StringBuilder AppendFormat(string format, params object[] args); public StringBuilder AppendFormat(IFormatProvider provider, string format, object arg0); public StringBuilder AppendFormat(IFormatProvider provider, string format, object arg0, object arg1); public StringBuilder AppendFormat(IFormatProvider provider, string format, object arg0, object arg1, object arg2); public StringBuilder AppendFormat(IFormatProvider provider, string format, params object[] args); ... } } namespace System.Runtime.CompilerServices { public static class FormattableStringFactory { // Proposed methods public static FormattableString Create(string format, T0 argument0); public static FormattableString Create(string format, T0 argument0, T1 argument1); public static FormattableString Create(string format, T0 argument0, T1 argument1, T2 argument2); // Existing method public static FormattableString Create(string format, params object[] arguments); } } ``` I'd be happy to contribute an implementation and tests. " +1533 area-System.IO FileStream constructor should allow bufferSize = 0 to indicate non-buffered stream FileStream.Init will throw ArgumentOutOfRangeException if (bufferSize <-0), IMHO it should allow bufferSize = 0 value, indicating this FileStream object nerver uses buffer on this level, provides more flexibility and control for app developer, current workaround is set bufferSize to 1, which is ugly. +1534 area-System.Collections Should FEATURE_RANDOMIZED_STRING_HASHING be set in corefx For collection types in coreclr, we use randomized string hashing above a threshold. This is guarded with the feature define FEATURE_RANDOMIZED_STRING_HASHING. If we use the same behavior in corefx for types including HashSet and HashTable, we need to port its supporting code. +1538 area-System.Diagnostics Fix the System.Diagnostics.Process tests on OS X Some System.Diagnostics.Process tests are failing on OS X; root cause the failures and fix whatever is breaking +1543 area-System.Reflection Fix decoding of multi-mod types in signatures Address issue #1535 by updating the metadata reader's signature decoder to correctly decode types with multiple modifiers. +1546 area-Serialization Fix security exception with private serialization event methods in DCJS "Fix security exception in the deserialization scenario of type with serialization event method marked as private, such as: ``` csharp [DataContract] public class Data { [OnDeserialized] private void OnDeserialized(StreamingContext context) { } [DataMember] public int Property1 { get; set; } } … string json = ""{\""Property1\"":1}""; DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(Data)); Data obj = s.ReadObject(new MemoryStream(Encoding.UTF8.GetBytes(json))) as Data; //Crashes ``` Actual behavior: SecurityException: The data contract type 'DataContractInternalRepro.Data' cannot be deserialized because the OnDeserialized method 'OnDeserialized' is not public. Making the method public will fix this error. Expected behavior: no exception This scenario is working in DCS. It looks like the exception in DCJS is thrown at the wrong place. " +1552 area-System.Reflection Merge +1561 area-System.Linq LINQ's Buffer ctor requires Count/CopyTo results be consistent "LINQ's internal Buffer, which is used in operations like ToArray, OrderBy, Reverse, etc., assumes that if the input `IEnumerable` implements `ICollection`, then CopyTo will be guaranteed to copy the number of items returned previously by Count: https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Enumerable.cs#L3087-L3093 ``` C# int count = 0; ICollection collection = source as ICollection; if (collection != null) { count = collection.Count; if (count > 0) { items = new TElement[count]; collection.CopyTo(items, 0); } } else { foreach (TElement item in source) { if (items == null) { items = new TElement[4]; } else if (items.Length == count) { TElement[] newItems = ArrayT.Resize(items, checked(count * 2), count); items = newItems; } items[count] = item; count++; } } ``` This is problematic for any collection that fails this guarantee, e.g. by design the concurrent collections (`ConcurrentQueue`, `ConcurrentDictionary`, etc.) may have their number of elements change between the call to Count and CopyTo if elements were added or removed concurrently. We could address this in the implementation of Buffer by avoiding the use of CopyTo, e.g. ``` C# int count = 4; ICollection collection = source as ICollection; if (collection != null) { int tmpCount = collection.Count; if (tmpCount > 0) count = tmpCount; } foreach (TElement item in source) { if (items == null) { items = new TElement[count]; } else if (items.Length == count) { TElement[] newItems = ArrayT.Resize(items, checked(count * 2), count); items = newItems; } items[count] = item; count++; } ``` This turns Count into an estimate rather than a guarantee, avoiding the problem. However, it has the downside of having a (potentially) less efficient copy mechanism for other `ICollection` implementations, including an `IEnumerator` allocation used in the foreach. That said, it's not clear to me how often we hit the ""fast"" CopyTo path anyway; many collection types have their own ToArray method, so if the LINQ method is being used, it's likely because there are other LINQ operators in the middle, e.g. `collection.Where(...).Select(...).ToArray()`, in which case the optimization will not apply. A few possible options: 1. We say that concurrent collections may not be used concurrently with LINQ operations. Developers may of course already be doing this, and since you can pass concurrent collections around as `IEnumerable`, the developer may not even know they're using concurrent collections but may silently either get corrupted data (e.g. the count drops after allocating the array, leaving default elements at the end of the array) or exceptions (e.g. CopyTo tries to copy more elements than the array can hold). 2. We make the above change, such that we no longer require the Count == CopyTo size guarantee, potentially special casing some known types like `List`, `Collection`, etc. and some known other situations, e.g. IsReadOnly returning true. 3. We special-case the known-problematic cases in the framework, namely the Concurrent\* collections, and do the second option above just for those. We could add a marker interface or something to more easily identify them, which would also allow other collections to opt-out of such things as well. 4. ""something really cool that I don't even know about"" Thoughts? " +1563 area-System.Drawing .NET core should have primitive drawing types Issue: #1363 Based on the analysis done by Experience and Insights, primitive drawing types are commonly used even outside Image processing scenarios. The following types are to be considered: - Point - Rectangle - Size From the discussion, it is clear we need int and float based versions of the primitives, we decided to expose the already existing System.Drawing primitives as is, that is, Point, PointF, Size, SizeF, Rectangle and RectangleF to .NET Core. We are not exposing Color at the moment because we feel the existing Color type in System.Drawing is insufficient as specified in the below conversations. Once the existing types are exposed, we will start a separate discussion on crafting Color primitive for .NET Core. **Contract** System.Drawing.Primitives **API Proposal** ``` csharp namespace System.Drawing { public struct Point { public static readonly Point Empty; public Point(Size sz); public Point(int dw); public Point(int x, int y); public bool IsEmpty { get; } public int X { get; set; } public int Y { get; set; } public static Point Add(Point pt, Size sz); public static Point Ceiling(PointF value); public override bool Equals(object obj); public override int GetHashCode(); public void Offset(Point p); public void Offset(int dx, int dy); public static Point operator +(Point pt, Size sz); public static bool operator ==(Point left, Point right); public static explicit operator Size (Point p); public static implicit operator PointF (Point p); public static bool operator !=(Point left, Point right); public static Point operator -(Point pt, Size sz); public static Point Round(PointF value); public static Point Subtract(Point pt, Size sz); public override string ToString(); public static Point Truncate(PointF value); } public struct PointF { public static readonly PointF Empty; public PointF(float x, float y); public bool IsEmpty { get; } public float X { get; set; } public float Y { get; set; } public static PointF Add(PointF pt, Size sz); public static PointF Add(PointF pt, SizeF sz); public override bool Equals(object obj); public override int GetHashCode(); public static PointF operator +(PointF pt, Size sz); public static PointF operator +(PointF pt, SizeF sz); public static bool operator ==(PointF left, PointF right); public static bool operator !=(PointF left, PointF right); public static PointF operator -(PointF pt, Size sz); public static PointF operator -(PointF pt, SizeF sz); public static PointF Subtract(PointF pt, Size sz); public static PointF Subtract(PointF pt, SizeF sz); public override string ToString(); } public struct Rectangle { public static readonly Rectangle Empty; public Rectangle(Point location, Size size); public Rectangle(int x, int y, int width, int height); public int Bottom { get; } public int Height { get; set; } public bool IsEmpty { get; } public int Left { get; } public Point Location { get; set; } public int Right { get; } public Size Size { get; set; } public int Top { get; } public int Width { get; set; } public int X { get; set; } public int Y { get; set; } public static Rectangle Ceiling(RectangleF value); public bool Contains(Point pt); public bool Contains(Rectangle rect); public bool Contains(int x, int y); public override bool Equals(object obj); public static Rectangle FromLTRB(int left, int top, int right, int bottom); public override int GetHashCode(); public static Rectangle Inflate(Rectangle rect, int x, int y); public void Inflate(Size size); public void Inflate(int width, int height); public void Intersect(Rectangle rect); public static Rectangle Intersect(Rectangle a, Rectangle b); public bool IntersectsWith(Rectangle rect); public void Offset(Point pos); public void Offset(int x, int y); public static bool operator ==(Rectangle left, Rectangle right); public static bool operator !=(Rectangle left, Rectangle right); public static Rectangle Round(RectangleF value); public override string ToString(); public static Rectangle Truncate(RectangleF value); public static Rectangle Union(Rectangle a, Rectangle b); } public struct RectangleF { public static readonly RectangleF Empty; public RectangleF(PointF location, SizeF size); public RectangleF(float x, float y, float width, float height); public float Bottom { get; } public float Height { get; set; } public bool IsEmpty { get; } public float Left { get; } public PointF Location { get; set; } public float Right { get; } public SizeF Size { get; set; } public float Top { get; } public float Width { get; set; } public float X { get; set; } public float Y { get; set; } public bool Contains(PointF pt); public bool Contains(RectangleF rect); public bool Contains(float x, float y); public override bool Equals(object obj); public static RectangleF FromLTRB(float left, float top, float right, float bottom); public override int GetHashCode(); public static RectangleF Inflate(RectangleF rect, float x, float y); public void Inflate(SizeF size); public void Inflate(float x, float y); public void Intersect(RectangleF rect); public static RectangleF Intersect(RectangleF a, RectangleF b); public bool IntersectsWith(RectangleF rect); public void Offset(PointF pos); public void Offset(float x, float y); public static bool operator ==(RectangleF left, RectangleF right); public static implicit operator RectangleF (Rectangle r); public static bool operator !=(RectangleF left, RectangleF right); public override string ToString(); public static RectangleF Union(RectangleF a, RectangleF b); } public struct Size { public static readonly Size Empty; public Size(Point pt); public Size(int width, int height); public int Height { get; set; } public bool IsEmpty { get; } public int Width { get; set; } public static Size Add(Size sz1, Size sz2); public static Size Ceiling(SizeF value); public override bool Equals(object obj); public override int GetHashCode(); public static Size operator +(Size sz1, Size sz2); public static bool operator ==(Size sz1, Size sz2); public static explicit operator Point (Size size); public static implicit operator SizeF (Size p); public static bool operator !=(Size sz1, Size sz2); public static Size operator -(Size sz1, Size sz2); public static Size Round(SizeF value); public static Size Subtract(Size sz1, Size sz2); public override string ToString(); public static Size Truncate(SizeF value); } public struct SizeF { public static readonly SizeF Empty; public SizeF(PointF pt); public SizeF(SizeF size); public SizeF(float width, float height); public float Height { get; set; } public bool IsEmpty { get; } public float Width { get; set; } public static SizeF Add(SizeF sz1, SizeF sz2); public override bool Equals(object obj); public override int GetHashCode(); public static SizeF operator +(SizeF sz1, SizeF sz2); public static bool operator ==(SizeF sz1, SizeF sz2); public static explicit operator PointF (SizeF size); public static bool operator !=(SizeF sz1, SizeF sz2); public static SizeF operator -(SizeF sz1, SizeF sz2); public static SizeF Subtract(SizeF sz1, SizeF sz2); public PointF ToPointF(); public Size ToSize(); public override string ToString(); } } ``` +1565 area-System.Runtime System.String should be consistent with taking StringComparison arguments Every method on `System.String` that compares strings should take a `StringComparison` argument. An example where that's not the case is, `String.Contains`. We should to a holistic pass to make sure we don't miss others. +1571 area-System.IO Add TextWriter.Write(string value, int index, int count) overload TextWriter has an overload for writing a segment of a char array with this Write overload: void Write(char[] buffer, int index, int count) But TextWriter doesn't have an overload for writing a segment of a string, e.g.: void Write(string value, int index, int count) This means that in cases where you have a segment of a string that you want to write you either need to either substring and pass that value to Write(string) or copy the string to a char array and then use the char array segement overload. It would be a new virtual method but the default implementation could simply call the current Write(char[] buffer, int index, int count) overload. The main problem I see with adding Write(string, int, int) is there is a Write(string, object, object) overload that does string formatting that would be hidden. Avoid with different name? Example of having to having to use the Write(char[] buffer, int index, int count) overload where a string overload would simplify code and improve performance: https://github.com/JamesNK/Newtonsoft.Json/blob/6a22345e28006d74c25e353b6235bc5222bab821/Src/Newtonsoft.Json/Utilities/JavaScriptUtils.cs#L220-L228 +1577 area-System.Net HttpPrefixes So http prefixes ... Its an IIS specific API that makes zero sense when IIS is no longer present. I know this code hasn't come over yet code wise but I figured I would create an issue for it for discussion about what may happen. As an example I want to: Bind to 192.168.1.101 : 1111 Allow an elastic ip with a round robin dns to be used. In mono as example this will cause it to bind *:1111 and allow which is totally not what I wanted, there is no good way in the current api of actually specifying. I can specify 192.168.1.101:1111/ just fine. What happens when I as well specify myroundrobindns:1111/? Do I mean that I want to allow this host header or to bind to this interface? This is where the problem starts.... What if I only specified the myroundrobindns:1111? Then it would make sense to bind all or give me an error (without IIS). But this behaviour makes it impossible to do the above (common use case). There are literally dozens of derpy little gotchas like this (and no good way of working around them) due to how the api is laid out and not wanting to break compatibility with msclr. Whats the plan for CoreFX? Thoughts? Greg +1582 area-Infrastructure XML test libs included in coverage report I looked at the coverage report and noticed that a bunch of XML test libs are included: ![image](https://cloud.githubusercontent.com/assets/1376924/7392228/d392bf42-ee86-11e4-8254-db6d5ee5e20f.png) Those are dragging the overall coverage down and should be excluded from coverage. /cc @krwq +1583 area-System.Runtime Add generic overloads to Math.Min and Math.Max There are overloads of `Math.Min` and `Math.Max` for all the numeric types, but there aren't any for general comparable types (including framework types like `DateTime` and `TimeSpan`). It would be nice to have them. ## Rationale For integral types, `Math.Min` and `Math.Max` are not necessary, e.g. instead of `Math.Min(a, b)`, you can write `a <= b ? a : b`. But they are nice, because they make the meaning clear and decrease the likelihood of error. The same argument applies to general comparable types, so they should work with `Math.Min` and `Math.Max` too. ## Proposed API ``` c# public static class Math { public static T Min(T val1, T val2) where T : IComparable; public static T Min(T val1, T val2, IComparer comparer); public static T Max(T val1, T val2) where T : IComparable; public static T Max(T val1, T val2, IComparer comparer); } ``` ## Open questions - Should the constraint `where T : IComparable` be there? Other framework methods that require comparison, like `Enumerable.OrderBy`, don't have it and instead use `Comparer.Default`. - Should nullable value types be supported? The proposed version doesn't, because `T?` does not implement `IComparable`, even when `T` does implement `IComparable`. +1586 area-System.Net Initial open sourcing of System.Net.Http code. +1591 area-System.Reflection System.Reflection.Metadata.MetadataReader.MetadataReader consistently throws InvalidOperationException in store app I'm able to use System.Reflection.Metadata without any problems in my .NET 4.5.1 desktop app, but I'm unable to successfully use it in a Windows Store app--I consistently see this exception getting thrown: ``` System.InvalidOperationException occurred Message: Exception thrown: 'System.InvalidOperationException' in mscorlib.ni.dll Additional information: The API 'System.Text.Encoding.GetString(Byte*, Int32)' cannot be used on the current platform. See http://go.microsoft.com/fwlink/?LinkId=248273 for more information. ``` ...with this call stack: ``` mscorlib.ni.dll!System.Delegate.CreateDelegateInternal(System.RuntimeType rtType, System.Reflection.RuntimeMethodInfo rtMethod, object firstArgument, System.DelegateBindingFlags flags, ref System.Threading.StackCrawlMark stackMark) Unknown mscorlib.ni.dll!System.Reflection.RuntimeMethodInfo.CreateDelegateInternal(System.Type delegateType, object firstArgument, System.DelegateBindingFlags bindingFlags, ref System.Threading.StackCrawlMark stackMark) Unknown mscorlib.ni.dll!System.Reflection.RuntimeMethodInfo.CreateDelegate(System.Type delegateType, object target) Unknown > System.Reflection.Metadata.dll!System.Reflection.Internal.EncodingHelper.LoadGetStringPlatform() Unknown System.Reflection.Metadata.dll!System.Reflection.Internal.EncodingHelper.EncodingHelper() Unknown [Native to Managed Transition] [Managed to Native Transition] System.Reflection.Metadata.dll!System.Reflection.Internal.EncodingHelper.GetString(System.Text.Encoding encoding, byte* bytes, int byteCount) Unknown System.Reflection.Metadata.dll!System.Reflection.Metadata.MetadataStringDecoder.GetString(byte* bytes, int byteCount) Unknown System.Reflection.Metadata.dll!System.Reflection.Metadata.MetadataReader.ReadMetadataHeader(ref System.Reflection.Metadata.BlobReader memReader) Unknown System.Reflection.Metadata.dll!System.Reflection.Metadata.MetadataReader.MetadataReader(byte* metadata, int length, System.Reflection.Metadata.MetadataReaderOptions options, System.Reflection.Metadata.MetadataStringDecoder utf8Decoder) Unknown System.Reflection.Metadata.dll!System.Reflection.Metadata.PEReaderExtensions.GetMetadataReader(System.Reflection.PortableExecutable.PEReader peReader, System.Reflection.Metadata.MetadataReaderOptions options, System.Reflection.Metadata.MetadataStringDecoder utf8Decoder) Unknown ``` I see that the current implementation of `LoadGetStringPlatform` looks for `MemberAccessException`s as indication that some sort of platform-specific fallback is required; could it be that it needs to catch other exception types as well (i.e. `InvalidOperationException`)? +1593 area-System.Xml XPathNodeIterator should implement IEnumerable Currently XPathNodeIterator implements only IEnumerable interface. XPathNodeIterator always iterates over objects of type XPathNavigator and thus every usage ends up with casting back and forth XPathNavigator --> object --> XPathNavigator in a loop. Implementing IEnumerable on this type would allow to avoid this indirection and in cases where iterating is useful improve perf. cc: @tmat EDIT 2017/12/28: In PR: https://github.com/dotnet/corefx/pull/26083 Requested API changes: ```diff namespace System.Xml.XPath { ... - public abstract class XPathNodeIterator : ICloneable, IEnumerable + public abstract class XPathNodeIterator : ICloneable, IEnumerable ... ``` +1595 area-System.Xml Add XmlReader.ResetState to enable pooling (modified copy of internal bug / cc: @tmat) The XmlReader allocates char[] and byte[] buffers in its ParseState. XmlReader created via XmlReader.Create doesn't expose ResetState method that would allow pooling. XmlTextReader does, however the class is legacy and not available on new platforms (in portable profile). Or in simple words: put multiple xml files in one stream and try to parse it without creating multiple XmlReader instances which do a lot of allocations. Simple scenario is reading xml doc comments by Roslyn +1596 area-System.Globalization Randomized Hashing APIs Proposal is to add APIs which expose old hashing methods and the new one (old ones are non randomized). Background: On some platforms default is to use randomized hashing and on some it is non randomized. Exposing APIs allows devs to make it explicit so in case we want to always use randomized hashing for security reasons we can do it or if we want the hashing to be faster we can use non randomized. (Some work might need to be done in dotnet/coreclr) This was already reviewed internally once although here is another iteration. Proposal is to add following APIs ``` csharp //assembly System.Globalization { namespace System.Globalization { public class CompareInfo { public virtual int GetHashCode(string source, CompareOptions options, HashingOption hashingOption); } // enum numbers should be explicit in the final version public enum HashingOption { //Default, ??? NonRandomized, Randomized, } } //} //assembly System.Globalization.Extensions { namespace System.Globalization { public static class GlobalizationExtensions { public static StringComparer GetStringComparer(this CompareInfo compareInfo, CompareOptions options, HashingOption hashingOption); } } //} //assembly System.Runtime.Extensions { namespace System { public abstract class StringComparer : IComparer, IComparer, IEqualityComparer, IEqualityComparer { public static StringComparer OrdinalNonRandomized { get; } public static StringComparer OrdinalIgnoreCaseNonRandomized { get; } public static StringComparer OrdinalRandomized { get; } public static StringComparer OrdinalIgnoreCaseRandomized { get; } } } //} ``` +1597 area-Infrastructure Running CoreFx tests from VS is broken I’m using TestDriven.NET. 1) Right-click on a test method and selecting “Run Test” works well for System.Reflection.Metadata tests. Good. 2) Right-click on a test class or a test file reports an error in output: The target type doesn't contain tests from a known test framework or a 'Main' method. 3) Right-click on a test method and selecting “Test with … Debugger” freezes VS. Test Explorer doesn’t show any tests even after full solution build. Trying to set the test project as a startup project and F5 it. Error: “The working directory does not exist: 'C:\FX0\bin\tests\Windows_NT.AnyCPU.Debug\System.Reflection.Metadata.Tests\dnxcore50'.” Seems like building the entire CoreFx repo fixes this issue (although I’m not quite sure). In any case I don’t want to build the entire repo to run a single test. Couldn’t get F5 work from Dev12 VS, yet the project is Dev12 VS. With Dev14 I was able to debug the test. +1598 area-Meta Improve layout of bin\tests directory Building and running all CoreFx tests creates bin\tests directory with an insane amount of files (14493 files of total size 1.4GB). The problem is that every CoreFx library deploys its own copy of DNX and XUnit (175 files) to its test directory. Instead all tests should be deployed into a single directory with a single copy of DNX. +1603 area-Meta Add inner and outer loop testing explanation to Developer Guide +1605 area-System.Numerics Add Conversions methods to Vector It would be useful to support conversions between different types of Vector. The API and usage model is pretty straightforward for same-size types, e.g. Double and Int64, so I would suggest that we start by exposing that, and consider mixed-size converts as usage demands (we have had customer requests for at least the same-size convert). A possible instance method on Vector might look like this: public Vector ToVectorDouble(); and it would throw arg exception for non-64-bit vectors (or, alternatively, it could be defined as an extension method on the static Vector class for only those instantiations that are supported). I propose the following: - `Vector <=> Vector` - `Vector <=> Vector` - `Vector <=> Vector` - `Vector <=> Vector` +1608 area-System.Numerics Add Gather methods for Vector Vector Gathers are a commonly used paradigm in vector computation - where a gather involves constructing a vector from non-contiguous elements of a source array. Gather is supported on AVX2, but even on targets that do not directly support it, such a method would be useful, in order to avoid the overhead of having to use an array to hold the elements prior to contructing the Vector. VectorGather should perhaps be declared on the static Vector class, something like: `public static Vector VectorGather(T[] source, Vector indexVector) where T,U : struct` Initially, I think it would be reasonable to support only same/size convert and gather – but eventually we may want to consider mixed size (e.g. a gather to a Vector using the lower values of a Vector. AVX2 has a pretty rich mixture of these. @mellinoe what do you think? +1609 area-System.Diagnostics System.Diagnostics.Debug.Tests does not build on Linux System.Diagnostics.Debug.Tests currently fails trying to resolve types against System.Runtime. It is disabled in dir.props. +1611 area-System.Net HttpResponseHeader should have a Cookies property Hello, The HttpResponseHeader class (found at https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Headers/HttpResponseHeaders.cs ) doesn't seem to include a standard and pretty trivial header, the Cookies header. Furthermore, as suggested by http://www.asp.net/web-api/overview/advanced/http-cookies, we should use the HttpResponseHeadersExtensions, found at https://aspnetwebstack.codeplex.com/SourceControl/latest#src/System.Net.Http.Formatting/HttpResponseHeadersExtensions.cs , however, as you can see in the code (and in the CookieHeaderValue class) - there's no way to configure default values, e.g. HttpOnly or Secured. In a regular ASP.NET website we can set the default values in web.config, but since ASP.NET WebAPI doesn't rely on that, there's no way, even in the WebAPI configuration registering method to set such values. Part from creating my own extension to add cookies with default values, I would suggest adding support for cookies in the HttpResponseHeaders class and having the option to set default values in registration time. Thank you very much. +1612 area-System.Data System.Data.SqlClient.SqlParameter Precision and Scale do not work via the abstract API "Package from dnxcore50 via ``` ""System.Data.SqlClient"": ""4.0.0-beta-*"", ``` This works: ``` SqlParameter p = ... p.Precision = 10; p.Scale = 5; ``` However, if instead we use the abstract base class (like most tools will be): ``` SqlParameter p = ... DbParameter d = p; d.Precision = 10; d.Scale = 5; ``` then all of `p.Precision`, `p.Scale`, `d.Precision`, `d.Scale` **remain at 0**, and consequently do not work correctly. The abstract API's `Scale` and `Precision` (and any other associated members) should mirror the concrete type's equivalent. This code is not in corefx yet, so I cannot fix it :( " +1613 area-System.Data System.Data.SqlClient does not allow enum parameters values (it does in .NET) "Is this an expected break? For example: ``` using (var cmd = connection.CreateCommand()) { cmd.CommandText = ""select @foo""; cmd.Parameters.AddWithValue(""@foo"", AnEnum.B); object value = cmd.ExecuteScalar(); AnEnum val = (AnEnum)value; // cheeky unbox behavior val.IsEqualTo(AnEnum.B); } enum AnEnum { A = 2, B = 1 } ``` In .NET this works fine; in CoreCLR this breaks on the `ExecuteScalar()` call, reporting an `ArgumentException` with text: > No mapping exists from object type AnEnum to a known managed provider native type. " +1616 area-System.Numerics bug: Vector extracting components with a literal leads to incorrect code gen. It appears that if you try to retrieve components of a `Vector` with a constant something wrong is occurring and an incorrect code is generated. This does not happen when extracting to an array, or when you use a variable (like say through a for-loop). This only happens when you extract literal components. Here is a simple reproduction. This happened in VS2015 RC ``` csharp static bool TestLiterals(Vector vl) { var v = vl[0]; var v1 = vl[1]; var v2 = vl[2]; var v3 = vl[3]; return v != 0 || v1 != 0 || v2 != 0 || v3 != 0; } static bool TestLoop(Vector vl) { for(int i=0; i < Vector.Count; i++) { var v = vl[i]; if (v != 0) return true; } return false; } static void Main(string[] args) { var array = new long[4] { 0, 0, 0, 1 }; var vector = new Vector(array); Console.WriteLine(Vector.Count); Console.WriteLine(TestLiterals(vector)); Console.WriteLine(TestLoop(vector)); } ``` On my i5 broadwell chip it printed: ``` 4 False True ``` This is very much the wrong result. The correct answer should be: ``` 4 True True ``` It's pretty easy to see that both methods should yield the same result. Here is the assembly of the `testliteral` And the error becomes obvious. ``` **00007FFB1E086E20 vmovupd ymm0,ymmword ptr [rcx] 00007FFB1E086E25 vmovd rax,xmm0 ** **00007FFB1E086E2A vmovupd ymm0,ymmword ptr [rcx] 00007FFB1E086E2F vmovaps ymm1,ymm0 00007FFB1E086E34 vpsrldq ymm1,ymm1,8 00007FFB1E086E3A vmovd rdx,xmm1 ** 00007FFB1E086E3F vmovupd ymm0,ymmword ptr [rcx] 00007FFB1E086E44 vmovaps ymm1,ymm0 00007FFB1E086E49 vpsrldq ymm1,ymm1,10h 00007FFB1E086E4F vmovd r8,xmm1 00007FFB1E086E54 vmovupd ymm0,ymmword ptr [rcx] 00007FFB1E086E59 vmovaps ymm1,ymm0 00007FFB1E086E5E vpsrldq ymm1,ymm1,18h 00007FFB1E086E64 vmovd rcx,xmm1 00007FFB1E086E69 or rax,rdx 00007FFB1E086E6C or rax,r8 00007FFB1E086E6F test rax,rax 00007FFB1E086E72 jne 00007FFB1E086E7E ``` The input vector is in `ymm0` and it is using `ymm1` as its scratch buffer, first copying and then shifting the register by the offset but is trying to pull the component out of `xmm1`! It appears that the compiler while having some concept of AVX registers, is still confused. +1617 area-System.Numerics Vector should allow variable length based size of available registers. Currently, it seems that `Vector` will always be the size of the largest available register, and has no support for using a smaller register. E.g. if you have AVX2, you currently can only build `Vector` of 256bit. For some algorithms it can be very useful to be able to use either a vector of size 16 or a vector of size 32. +1622 area-Infrastructure Consider open sourcing ApiCompat. Internally we have some tooling to ensure that implementation assemblies are compatible with contracts. It would be a good idea to open source that and use it as part of the build or CI system or something. I'm not sure if this will happen naturally when we actually start generating contracts in the open or if we'll need to take extra steps. +1624 area-System.Net An simple way to mock an httpClient.GetAsync(..) method for unit tests? `System.Net.Http` has now been uploaded to the repo :smile: :tada: :balloon: Whenever I've used this in some service, it works great but makes it hard to unit test => my unit tests don't want to actually ever hit that real end point. Ages ago, I asked @davidfowl what should we do? I hoping I paraphrase and don't misquote him - but he suggested that I need to fake up a message handler (ie. `HttpClientHandler`), wire that up, etc. As such, I ended up making a helper library called [HttpClient.Helpers](https://github.com/PureKrome/HttpClient.Helpers) to help me run my unit tests. So this works ... but it feels _very_ messy and .. complicated. I'm sure I'm not the first person that needs to make sure my unit tests don't do a real call to an external service. Is there an easier way? Like .. can't we just have an `IHttpClient` interface and we can inject that into our service? +1625 area-System.Runtime "[public api] System.Runtime.Environment - OSName(""FreeBSD"") or OSName(""BSD"")" "This issue is to discuss what the final identifier will be within the entire public API surface and what will be the build target identifier that msbuild will use. https://github.com/dotnet/corefx/issues/1576 started the discussion of wether to use `OSName(""FreeBSD"")` vs `OSName(""BSD"")` in the unit tests and is recommended reading before progressing with reading this issue. `FreeBSD` won but it can be easily refactored due to being a non-public contract. The BSD's (FreeBSD/NetBSD/OpenBSD/DragonFlyBSD) unlike Linux all have different kernels so potentially it might be required to split them out as separate platforms. This might be completely unnecessary whereby the additional BSD's may just work as a direct result of the port team's efforts. There are enough differences between the different BSDs that it could be needed to differentiate between them however. We have some time before a decision needs to be cemented in as there is a more pressing issue as mentioned by @stephentoub and registered as issue #1626 > There's what's likely a more pressing issue, which is actually building for FreeBSD. Today, when we need to specialize an assembly for a particular platform, we effectively have three builds, producing three different managed assemblies: Windows, Linux, OSX. Sounds like at least for now we'll need a fourth, FreeBSD. I suggest you start by modifying the build to support an IsFreeBSD property (or just IsBSD of you think there's a high chance that the implementations across BSDs will be the same even with varied kernels) along with the appropriate OSGroup targets. That can then be used in the csproj files as needed to specialize an assembly with FreeBSD-specific code. I feel uneasy about using either `OSName(""FreeBSD"")` (platform fragmentation) or `OSName(""BSD"")` (too generic) with the amount of information available at this point in time but obviously a direction needs to be chosen. @janhenke @josteink (core members of the portteam) have put forward on multiple times that they would prefer `FreeBSD` and I have no strong preferences in any which direction as long as the _future_ implications are considered carefully because this decision affects the public API surface. Ultimately advice, direction and a decision will be needed by MSFT on this matter. note: issue was edited/refactored based on feedback from josenink since original post. " +1626 area-Meta Support for FreeBSD ## Updated proposal from 2017/9 Proposal (by @karelz - https://github.com/dotnet/corefx/issues/1626#issuecomment-329840518) will be updated in top-post based on further discussion and proposal changes. We discussed community-driven port for FreeBSD with @RussellHaley (from FreeBSD community) and @wfurt (from .NET Core team) who both expressed interest in the work. Here's a plan proposal we put together (feedback / suggestions are welcome): 1. Produce binaries in CoreCLR & CoreFX repo targeting FreeBSD - using hacks is fine * Hard to parallelize, @wfurt will work on that * The build can be mix of builds from other platforms (Mac, Linux) targeting FreeBSD * We will need documented steps (on FreeBSD wiki) to reproduce the build with FreeBSD-specific bug fixes 2. Run & stabilize CoreCLR tests (using corerun) * Tests may be built on another platform * Goal: Provides basic quality of runtime 3. Run & stabilize CoreFX tests (using corerun) * Tests may be built on another platform * Note this requires xunit. We believe, based on our past porting experience, once [2] is done, xunit will just work. * This can be in theory parallelized with [2] - it may require shortcutting xunit (e.g. generate static execution recipe on another platform) * We can expose new OSPlatform API for FreeBSD when the pass rate is reasonable: see #23989 4. Full stack build on FreeBSD (using corerun as bootstrapper from [1]-[3]) * We will need all tools (nuget, msbuild, roslyn) to work on boostrapping .NET Core 5. Installers (FreeBSD ports) * First-stage: Using product binaries from nuget feeds * Second-stage: Build product from source (blocked on build from source effort) * Requires FreeBSD community expertise and guidance on design * Note: We can link FreeBSD packages also from official .NET Core download pages as community-support packages 6. Regular build and test runs on FreeBSD * Goal: Make sure changes in .NET Core repos breaking FreeBSD are known early * Design needed * Requires FreeBSD community expertise and guidance on design Operation principles: * Changes in [2]-[4] should be done primarily in CoreCLR/CoreFX repos (due to CLA signing requirements, code reviews from .NET Core team experts/members. etc.) * We will track high-level work on this issue. Specific bugs will be filed as separate issues. If anyone is interested in helping, please let us know here. We can easily distribute work items from [2] & [3] above once we are far enough with [1]. --------------------------------------------- ## Original proposal from @ghuntley from 2015/5 This issue is to discuss unit(s) of work to actually produce FreeBSD assemblies for corefx. > @stephentoub - There's what's likely a more pressing issue, which is actually building for FreeBSD. Today, when we need to specialize an assembly for a particular platform, we effectively have three builds, producing three different managed assemblies: Windows, Linux, OSX. Sounds like at least for now we'll need a fourth, FreeBSD. I suggest you start by modifying the build to support an IsFreeBSD property (or just IsBSD of you think there's a high chance that the implementations across BSDs will be the same even with varied kernels) along with the appropriate OSGroup targets. That can then be used in the csproj files as needed to specialize an assembly with FreeBSD-specific code. Related issue(s) - #1625 (OSGroup identifier in the public API) - #1576 (OSGroup identifier in the private API) /cc: @janhenke @josteink +1633 area-System.Reflection More offsets in MetadataReader I believe MetadataReader should have more APIs which tell me about offsets. I. e.: Let's say I'm writing strong name signer, there are few steps required (assuming that assembly is already delayed signed): - calculate hash, - sign hash, - inject signature to calculate hash you need to skip some parts of the PE file like: - strong name signature blob (including the 8 bytes in the header) - certificates blob (including 8 bytes header) - checksum so I need to have offsets and sizes for each of those. For blobs there are already APIs: i.e.: ``` peReader.PEHeaders.CorHeader.StrongNameSignatureDirectory.Size peReader.PEHeaders.CorHeader.StrongNameSignatureDirectory.RelativeVirtualAddress peReader.PEHeaders.PEHeader.CertificateTableDirectory.Size peReader.PEHeaders.PEHeader.CertificateTableDirectory.RelativeVirtualAddress ``` what is missing is: - checksum offset (and optionally a size) - blob headers for blob headers we can do simple change in System.Reflection.PortableExecutable.DirectoryEntry which is: ``` diff public struct DirectoryEntry { //... + public readonly int HeaderOffset; //... internal DirectoryEntry(ref PEBinaryReader reader) { + HeaderOffset = reader.CurrentOffset; RelativeVirtualAddress = reader.ReadInt32(); Size = reader.ReadInt32(); } //... } ``` For stuff like CheckSum offset we need something like this: ``` diff public sealed class PEHeader { //... + public int BaseOffset; // this might be always 0 so const would be fine too //... + public const int CheckSumOffset; + public const int CheckSumSize; + //etc. for other fields } ``` cc: @nguerrera @tmat What are your thoughts? With good modifications we could probably reuse some of those types when writing MetadataWriter (assuming we are planning to do that) +1635 area-System.Security System.Security.Cryptography.Hashing.Algorithms cannot resolve System.Text.Encoding and System.Threading.Tasks ? "Using beta5 TFMs : dnx451 and dnxcore50 and this is my project.json dependencies: ``` ""dependencies"": { ""BioBook.Data"": ""1.0.0-*"", ""HtmlMinifier.MiddleWare"": ""1.0.0-beta5-1000"", ""Microsoft.AspNet.Authentication"": ""1.0.0-beta5-*"", ""Microsoft.AspNet.Authentication.Cookies"": ""1.0.0-beta5-*"", ""Microsoft.AspNet.Diagnostics"": ""1.0.0-beta5-*"", ""Microsoft.AspNet.Diagnostics.Entity"": ""7.0.0-beta5-*"", ""Microsoft.AspNet.Hosting"": ""1.0.0-beta5-*"", ""Microsoft.AspNet.Identity.EntityFramework"": ""3.0.0-beta5-*"", ""Microsoft.AspNet.Mvc"": ""6.0.0-beta5-*"", ""Microsoft.AspNet.Mvc.TagHelpers"": ""6.0.0-beta5-*"", ""Microsoft.AspNet.Server.IIS"": ""1.0.0-beta5-*"", ""Microsoft.AspNet.Server.WebListener"": ""1.0.0-beta5-*"", ""Microsoft.AspNet.StaticFiles"": ""1.0.0-beta5-*"", ""Microsoft.AspNet.Tooling.Razor"": ""1.0.0-beta5-*"", ""Microsoft.DataAnnotations"": ""1.0.0-beta1-*"", ""Microsoft.Framework.CodeGenerators.Mvc"": ""1.0.0-beta5-*"", ""Microsoft.Framework.ConfigurationModel.Json"": ""1.0.0-beta5-*"", ""Microsoft.Framework.DependencyInjection"": ""1.0.0-beta5-*"" }, ""frameworks"": { ""dnx451"": { ""frameworkAssemblies"": { } }, ""dnxcore50"": { ""dependencies"": { } } }, ``` When building it returns 2 errors ``` Error Dependency System.Text.Encoding >= 4.0.0-beta-22830 could not be resolved Error Dependency System.Threading.Tasks >= 4.0.0-beta-22830 could not be resolved ``` If I remove Microsoft.AspNet.Mvc.TagHelpers, the error goes away. Looking at dnu list --details I found that tag helpers doesn't have a dependency for those packages but System.Security.Cryptography.Hashing.Algorithms looks like it has. (it think that package is not open source yet, because a) can't find it. b) https://github.com/dotnet/corefx/issues/836 ) Also, removing Microsoft.AspNet.Mvc.TagHelpers but adding System.Security.Cryptography.Hashing.Algorithms triggers the same errors. If I explicit add those packages as dependencies the errors goes away like this: ``` ""dependencies"": { ""System.Text.Encoding"": ""4.0.10-beta-22830"", ""System.Threading.Tasks"": ""4.0.10-beta-22830"", ... }, ``` **Note:** I was asked on jabbr.net if I had a Compiler/Preprocess folder with uncommented directives. I do have that folder with one file `RazorPreCompilation.cs` but the code inside that file is commented. Also removing the folder does not fixes the build errors. Not sure what else I can do/look at but if you need anything else just let me know. " +1641 area-Infrastructure corefx fails on Arch Linux: Not registered task DownloadFile "I'm not sure whether corefx is supposed to work on Linux at this point, and I have no clue how to build this anyway. Still running `xbuild` in the top directory produces this. ``` [hritcu@detained corefx]$ xbuild XBuild Engine Version 12.0 Mono, Version 3.12.1.0 Copyright (C) 2005-2013 Various Mono authors Build started 5/6/2015 2:42:54 PM. __________________________________________________ Project ""/home/hritcu/Temp/corefx/build.proj"" (default target(s)): Target _RestoreBuildTools: Restoring build tools... : error : Error initializing task DownloadFile: Not registered task DownloadFile. Build FAILED. Errors: /home/hritcu/Temp/corefx/build.proj (default targets) -> /home/hritcu/Temp/corefx/dir.targets (_RestoreBuildTools target) -> : error : Error initializing task DownloadFile: Not registered task DownloadFile. 0 Warning(s) 1 Error(s) Time Elapsed 00:00:00.0923120 ``` " +1642 area-System.Numerics [BigInteger] Parse test with trailing spaces fails on some cultures ``` System.Numerics.Tests.parseTest.RunParseToStringTests [FAIL] Assert.Throws() Failure Expected: typeof(System.FormatException) Actual: (No exception was thrown) Stack Trace: m:\Workspace\github\corefx\src\System.Runtime.Numerics\tests\BigInteger\parse.cs(408,0): at System.Numerics.Tests.parseTest.VerifyParseToString(String num1, NumberStyles ns, Boolean failureNotExpected, String expected) m:\Workspace\github\corefx\src\System.Runtime.Numerics\tests\BigInteger\parse.cs(380,0): at System.Numerics.Tests.parseTest.VerifyParseToString(String num1, NumberStyles ns, Boolean failureNotExpected) m:\Workspace\github\corefx\src\System.Runtime.Numerics\tests\BigInteger\parse.cs(247,0): at System.Numerics.Tests.parseTest.VerifyNumberStyles(NumberStyles ns, Random random) m:\Workspace\github\corefx\src\System.Runtime.Numerics\tests\BigInteger\parse.cs(33,0): at System.Numerics.Tests.parseTest.RunParseToStringTests() Finished: System.Runtime.Numerics.Tests === TEST EXECUTION SUMMARY === System.Runtime.Numerics.Tests Total: 2, Errors: 0, Failed: 1, Skipped: 0, Time: 20,751s ``` Repro steps: 1. Start->Run (WinKey + R) -> intl.cpl 2. Change format (no need to change locale) to Ukrainian (Ukraine) 3. `build /p:WithCategories=OuterLoop` **Possible solution:** https://github.com/dotnet/corefx/pull/1592#issuecomment-99520215 +1645 area-System.IO Add option on StreamWriter not to emit Byte Order Mark (BOM) Someone posted on CoreClr: https://github.com/dotnet/coreclr/issues/933 a requirement to have StreamWriter to optionally not emit BOM to the stream. A possible solution is to either add a defaulted bool parameter to each/some of the constructors (bool emitBOM = True), or add a new enum e.g. StreamWriterOptions with EmitBOM as one of the enums and again having that enum as a defaulted parameter on each/some of the constructors. There maybe an issue with binary compatibility so it might be better to add a new constructor with the bool/enum.' Comments? +1647 area-System.Text Expose Hex/Char utilities from System.Text.Encoders.Web as public APIs (on some type) See: src/System.Text.Encodings.Web/src/System/Text/Encodings/Web/HexUtil.cs +1650 area-System.Security Investigate handle usage in src/common/src/Interop/Windows/secur32/Interop.LSAStructs.cs This issue came up but was not addressed in the initial commit of System.Security.Principal and System.Security.Principal.WIndows. See the constructor in UNICODE_INTPTR_STRING. The comment was regarding whether we need to add DangerousAddRef / DangerousReleasing around DangerousGetHandle. +1652 area-System.Security Address possible race conditions in System.Security.Principal.Windows tests "See src/system.security.principal.Windows/tests/WindowsIdentityTests.cs Initial commit feedback was: ""Could this not be problematic / prone to race conditions if the safe handle gets finalized concurrent with usage of logonToken (no AddRef/Releasing is being done to prevent that)?"" " +1653 area-System.IO Named pipes and array segment Hello. was thinking why the named pipe api doesn't provide the possibility to use array segments as the socket api to be able to use buffer pooling to reduce the impact of pinning for arrays that are not big enough to make it to LOH. is a common technique with socket to avoid possible out of memory exception due to fragmentation. I am having nightmares because a new app we are building is doing a lot of io via named pipes and now OOM exceptions are all over the place. Any plan about this kind of features? +1657 area-System.IO FileSystemWatcher_4000_Tests.FileSystemWatcher_IncludeSubDirectories test failing in CI This test has failed multiple times in the last few days: ``` MESSAGE: Didn't observe a created event within 500ms +++++++++++++++++++ STACK TRACE: at Utility.ExpectEvent(WaitHandle eventOccured, String eventName, Int32 timeout) in d:\j\workspace\dotnet_corefx_windows_release\src\System.IO.FileSystem.Watcher\tests\Utility\Utility.cs:line 94 at FileSystemWatcher_4000_Tests.FileSystemWatcher_IncludeSubDirectories_Directory() in d:\j\workspace\dotnet_corefx_windows_release\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.IncludeSubDirectories.cs:line 67 ``` +1664 area-System.Reflection System.Reflection.Metadata fails to read offset of DataDirectories spanning across multiple sections "If an assembly contains any DataDirectory which is in more than one section we throw ""System.BadImageFormatException : Section too small."". While I agree we should not have any assemblies like that we unfortunately already shipped one which has this issue. I believe we can still calculate the offset without checking ranges (or we can check the global range only) Example can be found here: https://github.com/krwq/corefx/tree/pereaderdatadir This is basically: ``` csharp using (FileStream fs = new FileStream(@""C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.JScript.dll"", FileMode.Open, FileAccess.Read, FileShare.ReadWrite | FileShare.Delete)) { using (PEReader reader = new PEReader(fs, PEStreamOptions.LeaveOpen | PEStreamOptions.PrefetchEntireImage | PEStreamOptions.PrefetchMetadata)) { int offset; if (reader.PEHeaders.TryGetDirectoryOffset(reader.PEHeaders.PEHeader.CertificateTableDirectory, out offset)) { } } } ``` " +1665 area-System.Reflection Vague/invalid Strong Name Signing description in ECMA-335 ECMA-335 description of strong name signing (II.6.2.1.3): - To calculate the hash, the signature is zeroed, the hash calculated, and then the result is stored into the signature. - The Strong Name (SN) signing process uses standard hash and cipher algorithms for Strong name signing. An SHA-1 hash over most of the PE file is generated. That hash value is RSA-signed with the SN private key. For verification purposes the public key is stored into the PE file as well as the signed hash value. - Except for the following, all portions of the PE File are hashed: - The Authenticode Signature entry: PE files can be authenticode signed. The authenticode signature is contained in the 8-byte entry at offset 128 of the PE Header Data Directory (“Certificate Table” in §II.25.2.3.3) and the contents of the PE File in the range specified by this directory entry. [Note: In a PE File conforming to this specification, this entry shall be zero. end note] - The Strong Name Blob: The 8-byte entry at offset 32 of the CLI Header (“StrongNameSignature” in §II.25.3.3) and the contents of the hash data contained at this RVA in the PE File. If the 8-byte entry is 0, there is no associated strong name signature. - The PE Header Checksum: The 4-byte entry at offset 64 of the PE Header Windows NT-Specific Fields (“File Checksum” in §II.25.2.3.2). [Note: In a PE File conforming to this specification, this entry shall be zero. end note] What we actually do is (hashing): - In CorHeader/CLI Header set StrongNameSigned flag (value: 8). (I believe this is starting on 12th byte of CLI Header and is UInt32 - do not remove the old flag value just do bitwise OR with value 8) - Set Checksum (4 bytes) to zeros (this is in optional PE header in NT specific fields) - Set Certificate Directory entry (only 8 byte header) to zeros - Calculate hash of PE header from the start until sections headers are finished. Notes: - Continue hashing each section in the order of occurrence in the headers (this will start immediately after section headers and will intentionally skip padding after section headers). Note: - Strong Name Directory - entirely skip from hashing (but do hash its data directory 8 byte header as is) After we get a hash we sign it and store in Strong Name Directory +1683 area-Infrastructure System.Collections.Tests runs against Nuget package not compiled output "Unit tests in System.Collections.Tests.csproj appear to execute against the System.Collections package, and not the compiled output in the bin folder. Any local changes made to System.Collections are not picked up by System.Collections.Tests during compilation at command line (build.bat, msbuild System.Collections.sln) or in Visual Studio. For example, new types are not found by the test project. Compiling in verbose mode shows that the reference to System.Collections.dll is being pulled from the packages folder (packages/System.Collections/4.0.10-beta/...) and not the compiled output of the local build. Chicken and the egg scenario, where compiling the solution for System.Collections depends on it having been successfully compiled (in the MS build lab)! In addition, some of the behavior appears to be intentional. In System.Collections.Tests.csproj, a custom comment was added above the : ""Compile tests against the contract, but copy our local-built implementation for testing"". The behavior makes it impossible to write unit tests for new logic (e.g. in forks) for System.Collection.dll. " +1690 area-Meta Publish document about reference assemblies, contracts, and facades. We are beginning to open source our facades and soon our contracts and so we need to add some documentation for people to better understand how these all work. +1691 area-System.Linq [Compiler Bug] PropertyInfo retrieved from LambdaExpression reports wrong ReflectedType when property is derived from another class This is an old bug: https://connect.microsoft.com/VisualStudio/feedback/details/554853 https://connect.microsoft.com/VisualStudio/feedback/details/607165/propertyinfo-retrieved-from-lambdaexpression-reports-wrong-reflectedtype-when-property-is-derived-from-another-class +1712 area-System.Console Investigate if we still need all the thread jumping machinery in Console's ControlCHandler Console's ControlCHandler tries to queue work the threadpool to actually call the user code which handles the control c event. This was added as part of runtime hardening during the 2.0 days. The original fix for the issue (which introduced this jumping into another thread goo) had this comment: > On 64-bit platforms the ControlC handler is executed on a thread created > outside the runtime with very small stack. Our SO checking now > conservatively checks for space, which leaves insufficient space to > allow an exception to be thrown and caught. > > The change is to launch the user event on a ThreadPool thread instead of > in the ControlC handler thread. Care is taken to ensure that the thread > does not deadlock, even if we fail to successfully begin execution of > the Threadpool thread. @jkotas wonders if this is needed anymore: > Looking at the history, this code was added in Whidbey days where we were trying to harden the runtime against stack overflows by adding probes for large amounts of stack everywhere. We have given up on it since then. Internally we have moved the code to use Tasks instead of the ThreadPool directly (as part of some general work around some internal testing scenarios for .NET Native), but we might just be able to get out of the game completely. +1718 area-System.Reflection Merges changes from master to dev/metadata +1728 area-System.IO Determine whether to change Unix behavior when getting time from a non-existent file On Windows, for back-compat reasons, getting CreationTime (and maybe last access/write time, too) from a non-existent file via FileInfo returns the equivalent of DateTime.FromFileTime(0), rather than throwing an exception. On Unix, we do what's arguably the more expected behavior and throw. We should determine whether we want to change the Unix implementation to match what's there on Windows. +1732 area-System.Reflection Update package revision number to 00003 +1739 area-System.Security Interop\Windows\BCrypt\Cng.cs does not follow the Interop guidelines Cng.cs was ported as-was from closed source into open. It should be broken up into multiple Interop.Method.cs and/or Interop.MethodCollection.cs files, and the SafeHandle types extracted into files of their own right. +1742 area-Infrastructure Coverage report should consider OuterLoop tests I have a reason to believe that coverage report doesn't count OuterLoop tests. When looking at: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_coverage_windows/lastStableBuild/Code_Coverage_Report/ I can see test project (I know it shouldn't be on report): System.Xml.RW.XmlReaderLib has 0% coverage which is impossible as I'm 100% sure some outer-loop only tests projects are including it and run tests from there (and thus test the test project). Also ridiculously low Xml.ReaderWriter coverage seems to be confirming it (I know coverage isn't perfect but I'm pretty sure it is much more than 17%). +1745 area-System.Net URI class throws with Unix file paths "The following is thrown from System.Uri.CreateThis(...) when you are using Unix file paths to construct a URI object. ""System.UriFormatException: Invalid URI: The format of the URI could not be determined."" I know for windows there is special logic to add file:// to the front of the path, and Mono handles the paths correctly, but using CoreCLR non-windows it throws. " +1751 area-System.Net "Overzealous ""URI not absolute"" InvalidOperationExceptions from Uri instance members" "Many of Uri's instance properties throw an InvalidOperationException complaining that the operation is not supported for a relative URI. In some cases, this doesn't really make sense. The best example I can think of is the Uri.HostNameType property. Consider the scenario where one constructs an instance of the Uri class with the path ""www.domain.com"". As expected, this evaluates to a relative path, because the protocol has not been specified. However, absolute or not, one would expect the value of its Uri.HostNameType to be UriHostNameType.Dns. Instead, checking the HostNameType throws an exception. This particular scenario also exhibits an inconsistency with other members of the Uri class. Uri.CheckHostName(string name) is a static method which returns a UriHostNameType value, just the same as the Uri.HostNameType instance property. One could reasonably expect the following two calls to return the same value: var hostType = new Uri(""www.domain.com"", UriKind.RelativeOrAbsolute).HostNameType; var hostType = Uri.CheckHostName(""www.domain.com""); Unfortunately, the first call throws an exception. The second call using CheckHostName, however, returns the expected value: UriHostNameType.Dns. " +1756 area-System.Text Implement generic interfaces on Regex collections Implement `IList`, `IReadOnlyList`, and `IList` on the Regex collections. Fixes #271 +1761 area-Serialization Remove dependency from System.Xml.XmlSerializer on System.Runtime.WindowsRuntime 4.0.10 "I had to workaround an issue in System.Xml.XmlSerializer with the current packages: System.Runtime.WindowsRuntime 4.0.0 has a depedendency on ""windows"" package which doesn't exist. This was caused by our auto-generation task not filtering the winrt reference in the reference assembly's surface area. I've fixed this in a separate change and we can remove the workaround once we have a new set of packages next week. " +1768 area-Serialization XmlSerializer Tests Failing after latest merge from TFS +1774 area-System.Security System.Security.Cryptography.Hashing.Algorithms: HMAC::get_Key behavior differs from desktop on large keys. "Desktop: ``` HMAC hmac = new HMACSHA1(); hmac.Key = new byte[65]; int length = hmac.Key.Length; // 20 ``` CoreFX: ``` HMAC hmac = new HMACSHA1(); hmac.Key = new byte[65]; int length = hmac.Key.Length; // 65 ``` [RFC 2104, section 2](https://tools.ietf.org/html/rfc2104#section-2) says ""Applications that use keys longer than B bytes will first hash the key using H and then use the resultant L byte string as the actual key to HMAC."". In this case, SHA-1's block size (B) is 64, so the key is replaced with H(K). And then hmac.Key should return the H(K) answer, instead of the value which was set. Once this bug is fixed, there should be a test that verifies it. " +1776 area-Infrastructure Test runs are disabled when building on Linux See the skip of RunTestsForProject in https://github.com/dotnet/corefx/blob/master/mono.targets. +1784 area-System.Reflection Assembly.GetExecutingAssembly, AppDomain.CurrentDomain and similar Are there any plans to include the following classes and methods in near future? I am porting my framework (http://github.com/riganti/redwood) to .NET Core and I miss these methods. - Assembly.GetReferencedAssemblies - Assembly.GetExecutingAssembly - Assembly.GetEntryAssembly - Assembly.GetCallingAssembly - Assembly.CreateInstance - Assembly.Load which takes byte array or a stream - AppDomain.CurrentDomain.GetAssemblies - AppDomain.CurrentDomain.AssemblyResolve Or is there another way in the new .NET Core how to list all loaded assemblies, get the assembly of method that is being executed or a calling method etc.? +1786 area-System.Reflection Merge branch 'master' of https://github.com/dotnet/corefx into dev/metadata +1787 area-Infrastructure System.IO.Compression.ZipFile.Tests failing in microbuild of dev/metadata branch Disabling these tests in dev/metadata branch until these issues are resolved. ``` System.IO.Compression.Test.ZipTest.CreateFromDirectoryNormal System.IO.Compression.Test.ZipTest.CreateEntryFromFileTest System.IO.Compression.Test.ZipTest.UpdateReadTwice System.IO.Compression.Test.ZipTest.UpdateAddFile ``` Stack trace is the same for all failures: ``` System.IO.Compression.ZLibException : The underlying compression routine could not be loaded correctly. ---- System.DllNotFoundException : Unable to load DLL 'clrcompression.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) Stack Trace: at System.IO.Compression.DeflaterZLib.DeflateInit(CompressionLevel compressionLevel, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.DeflaterZLib..ctor(CompressionLevel compressionLevel) at System.IO.Compression.DeflateStream.CreateDeflater(Nullable`1 compressionLevel) at System.IO.Compression.DeflateStream..ctor(Stream stream, CompressionMode mode, Boolean leaveOpen) at System.IO.Compression.ZipArchiveEntry.GetDataCompressor(Stream backingStream, Boolean leaveBackingStreamOpen, EventHandler onClose) at System.IO.Compression.ZipArchiveEntry.OpenInWriteMode() at System.IO.Compression.ZipArchiveEntry.Open() ``` +1788 area-System.Reflection Disable System.IO.Compression.ZipFile.Tests failing in microbuild of dev/metadata branch +1790 area-Meta .NET Core API inclusion principles doc So, I was responding in #1420 and tried to hunt down some docs here that had a set of principles for what was/should be included in .Net Core. I couldn't find anything in my quick search. Maybe I missed it? Maybe we need to get something better together? /cc @nexussays @nguerrera @blackdwarf +1791 area-Infrastructure GIT fails to sync frequently in internal corefx-dev-metadata-realsigned queue. "``` EXEC: src refspec dev/metadata does not match any. EXEC: failed to push some refs to 'https://github.com/dotnet/corefx.git' corefx-dev-metadata-realsigned\src\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00048\lib\UpdateBuildValues.targets (39): The command ""git push origin dev/metadata"" exited with code 1. ``` " +1793 area-System.IO Please add support for BufferedStream type in .NET Core We have a scenario where we implement our own stream and use the BufferedStream class to add a buffering layer on top of it. +1794 area-System.Net Why does HttpClient dispose HttpContent? Hi. I'm trying to write some tests on our custom protocol over http. So, I passed a fake message handler to client, like this (we don't use C#6 yet, so): ```c# public class CachingRequestsHandler : DelegatingHandler { public CachingRequestsHandler() { this.Requests = new List(); } public List Requests { get; private set; } protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { this.Requests.Add(request); return Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)); } } ``` When in test I'm trying to inspect request's `Content`, I'm getting an `ObjectDisposedException`. As I found `HttpClient` [unconditionally disposes](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/HttpClient.cs#L360) `Content`. I have two questions: - will this behavior change in future to give user some control over Content? - how should I work around this issue, because I want to assert and test all parts of request: headers and content? Is there a fast and easy way to clone `HttpRequestMessage`? +1797 area-System.Diagnostics Implement System.Diagnostics.StackTrace/StackFrame Per discussion in #1420, this issue is to design & implement equivalents for [StackFrame](http://referencesource.microsoft.com/#mscorlib/system/diagnostics/stackframe.cs) and [StackTrace.](http://referencesource.microsoft.com/#mscorlib/system/diagnostics/stacktrace.cs) taking into account any possible API changes that might be necessary to better fit the goals of .NET Core. Implementation discussion may want to reference #1790 +1805 area-System.Reflection Section name in PEReader contains null padding String in section name (i.e. peReader.PEHeaders.SectionHeaders[0].Name) contains null characters. I believe we should remove it, unless it is by design. ECMA description of field: ``` An 8-byte, null-padded ASCII string. There is no terminating null if the string is exactly eight characters long. ``` Here is how we get the value: ``` csharp // reader is PEBinaryReader // _name is string // PEFileConstants.SizeofSectionName = 8 _name = reader.ReadUTF8(PEFileConstants.SizeofSectionName); // impl of ReadUTF8: public string ReadUTF8(int byteCount) { byte[] bytes = ReadBytes(byteCount); return Encoding.UTF8.GetString(bytes, 0, byteCount); } ``` In theory it can also be encoding bug. +1813 area-System.Security Oid.FriendlyName gives different answers on Unix and Windows "``` new Oid(""1.2.840.113549.1.1.1"").FriendlyName ``` Windows: `""RSA""` Unix: `""rsaEncryption""` The tests for `FriendlyName` may encounter some errors when they get ported and CI tries to evaluate them. Or maybe there will be a sufficient core of sameness to allow the tests to keep running. " +1815 area-System.Reflection PEReader throws on an empty PE image +1820 area-System.Security Interop\Windows\Crypt32\OidInfo.cs does not follow the Interop guidelines OidInfo.cs was ported as-was from closed source into open. It should be broken up into multiple Interop.Method.cs and/or Interop.MethodCollection.cs files. If it is already a reasonable MethodCollection set, it still needs the type/namespace names adjusted, and the file to be renamed. +1821 area-System.Reflection Merge branch 'master' +1825 area-System.Net HttpClient ReadAsync waits for whole buffer to fill up even if HttpCompletionOption.ResponseHeadersRead is set Hi, I've prepared a simple project to demonstrate my issue: https://github.com/ppekrol/ReadAsyncIssue Steps to reproduce: 1. Run web (ReadAsyncIssue), can be under DNX451 or DNXCORE50, no difference 2. Run console app: a) when DNX451 is used, ReadAsync returns immediately (read length = 100) b) when DNXCORE50 is used, ReadAsync waits for buffer to fill (8192) I think this is a bug. +1831 area-Serialization Two XML Tests failing due to new PlatformNotSupportedException fc5506a2 introduced a platform not supported exception in a few APIs so the behavior could align with .NET Native. This is causing a few failing tests. +1832 area-System.Reflection Use immutable collections 1.1.36 in metadata +1836 area-System.Linq System.Linq.Parallel Exceptions not consistent The exceptions thrown (or wrapped) by PLINQ aren't consistent. Enumerables throwing an exception during `GetEnumerator()` will expose the original exception, and won't wrap it in `AggregateException` (which at least a naïve reading of the documentation suggests it should), for everything but the following 'output' methods: - `Average` - `Count` - `LongCount` - `Max` - `Min` - `Sum` ... and `SequenceEqual`, but only when some other method is called first (eg, `new FailingEnumerable.AsParallel().Select(x => x).SequenceEquals(b)`). If the enumerator itself throws an exception (from `MoveNext()` or `Current`), and additional PLINQ method is called first: 1. `SequenceEqual` throws nested `AggregateException`s 2. The following 'output' methods throw the original exception, and will not wrap it in an `AggregateException`: - `Aggregate(seed, accumulator)` - `Aggregate(seed, accumulator, resultSelector)` - `foreach(...)` - `ToArray` - `ToDictionary` - `ToList` This is, at minimum, a 'gotcha' waiting to trip somebody up. How should we handle it? Interestingly, `SequenceEqual` has: > // If first.GetEnumerator throws an exception, we don't want to wrap it with an AggregateException. > // If second.GetEnumerator throws an exception, we don't want to wrap it with an AggregateException. ... which I have a feeling was to deal with the case where an inner operator threw something already wrapped (to not nest it), but ended up missing the other cases.
I've got a [Gist](https://gist.github.com/Clockwork-Muse/c10553dbce3de937aecd) of the tests I'm using to find this info, although I wasn't planning on adding them to the PLINQ tests in this form. Especially because some stuff has been ad-hoc tweaked to be able to find the info better +1838 area-System.Diagnostics Provide way to send Control+C to proccess Currently .NET doesn't have way to exit nicely from created console process. It would be nice if we had a such a method. ``` csharp namespace System.Diagnostics { public class Process { public void SendCtrlCSignal() { ... } } } ``` It can be implemented following way on Windows: http://stackoverflow.com/a/15281070/61505 , for unix we can call `kill (pid, SIGINT);` http://stackoverflow.com/a/1761182/61505 It provide a lot of problems for other users too http://stanislavs.org/stopping-command-line-applications-programatically-with-ctrl-c-events-from-net/ +1839 area-System.Reflection Merge master and use immutable collections 1.1.36 in metadata +1840 area-System.IO System.IO.Pipes.Tests fail with EntryPointNotFoundException on Win10 I have disabled the following tests in dev/metadata branch until they are fixed. ``` AnonymousPipesSimpleTest.ClientPInvokeChecks [FAIL] System.EntryPointNotFoundException : Unable to find an entry point named 'GetNamedPipeHandleStateW' in DLL 'api-ms-win-core-namedpipe-l1-2-1.dll'. Stack Trace: at Interop.mincore.GetNamedPipeHandleState(SafePipeHandle hNamedPipe, Int32& lpState, IntPtr lpCurInstances, IntPtr lpMaxCollectionCount, IntPtr lpCollectDataTimeout, IntPtr lpUserName, Int32 nMaxUserNameSize) C:\FX0\src\System.IO.Pipes\src\System\IO\Pipes\PipeStream.Windows.cs(983,0): at System.IO.Pipes.PipeStream.UpdateReadMode() C:\FX0\src\System.IO.Pipes\src\System\IO\Pipes\PipeStream.Windows.cs(236,0): at System.IO.Pipes.PipeStream.get_ReadMode() C:\FX0\src\System.IO.Pipes\tests\AnonymousPipesSimpleTest.cs(221,0): at AnonymousPipesSimpleTest.ClientPInvokeChecks() NamedPipesSimpleTest.ClientServerMessages [FAIL] System.EntryPointNotFoundException : Unable to find an entry point named 'GetNamedPipeHandleStateW' in DLL 'api-ms-win-core-namedpipe-l1-2-1.dll'. Stack Trace: at Interop.mincore.GetNamedPipeHandleState(SafePipeHandle hNamedPipe, IntPtr lpState, IntPtr lpCurInstances, IntPtr lpMaxCollectionCount, IntPtr lpCollectDataTimeout, StringBuilder lpUserName, Int32 nMaxUserNameSize) C:\FX0\src\System.IO.Pipes\src\System\IO\Pipes\NamedPipeServerStream.Windows.cs(149,0): at System.IO.Pipes.NamedPipeServerStream.GetImpersonationUserName() C:\FX0\src\System.IO.Pipes\tests\NamedPipesSimpleTest.cs(389,0): at NamedPipesSimpleTest.ClientServerMessages() Finished: System.IO.Pipes.Tests ``` +1843 area-Serialization Workaround for perf issue with the new jit pointer dereference in serialization With the new jit, the *chars deference is done twice which is more costly compared to legacy jit +1844 area-System.Net Support System.Net.Security.NegotiateStream Add support for NegotiateStream that exists in the full .NET Framework. This involves either creating a new library or a newer version of an existing one. As a minimum it should support the same client API surface as the full .NET Framework. This is required for WCF to complete its NetTcpBinding implementation. +1849 area-System.IO Unix: Why not use Unix Domain Sockets for Named Pipes? System.IO.Pipes map to native windows implementations of anonymous and named pipes. Windows anonymous are close in implementation to Unix pipes in that they are one way and byte oriented (not datagram or message oriented). On the other hand, Named pipes can be either full (supporting I/O in both directions) or half (I/O in one direction) and messages can either be byte oriented or message/datagram oriented. Pipe connections can also be made across systems through the network (I believe using SMB) Unix has named pipes called FiFo's but they are one way only and not message oriented. The current Pipes port for corefx under unix uses FIfo's and therefore is a subset implementation. Instead of using Fifo's why don't we use Unix Domain Sockets? They support most of the functionality of windows named pipes including full/half duplex, byte or message oriented. They however don't support cross system connections. see overview of Unix Domain Sockets here: http://www.thomasstover.com/uds.html Ultimately, what is the goal of the corefx library on a different platform? To bind to existing similar functionality? or to provide strict portability of the api's across platforms (what I'm calling emulation)? If we strictly bind, then there will always be limitations and differences on functionality provided thus decreasing portability. However by binding, we are hooking into existing OS capabilities and can in theory hook up to other non-net apps on the host platform. If we strictly emulate (e.g. say grab a chunk of shared memory and then using semaphores to strictly emulate named pipes functionality under Unix), then we can be extremely portable however we can't communicate with anything else. A possible solution is to extend what can be used as a 'pipe name' in the system.io.pipes implementation where the syntax can be extended to give hints as to what to bind to in the underlying implementation but with the default (without any extended syntax) defaulting to an emulated functional solution. Comments? +1854 area-System.Net "SslStream.AuthenticateAsClientAsync() fails with ""The buffers supplied to a function was too small""" From time to time I receive this error message. ``` System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> System.ComponentModel.Win32Exception: The buffers supplied to a function was too small --- End of inner exception stack trace --- at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) at MailKit.Net.Imap.ImapClient.Connect(String host, Int32 port, SecureSocketOptions options, CancellationToken cancellationToken) at MailKit.MailService.<>c__DisplayClass3.b__2() at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at DownloadAndUpdatePrices.Email.EmailService.d__0.MoveNext() in d:\ProjectIS-3\WebProjectAutosouz\DownloadAndUpdatePrices\DownloadAndUpdatePrices\Email\EmailService.cs:line 35 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at DownloadAndUpdatePrices.BLL.DownloadService.d__0.MoveNext() in d:\ProjectIS-3\WebProjectAutosouz\DownloadAndUpdatePrices\DownloadAndUpdatePrices\BLL\DownloadService.cs:line 22 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at DownloadAndUpdatePrices.Program.d__d.MoveNext() in d:\ProjectIS-3\WebProjectAutosouz\DownloadAndUpdatePrices\DownloadAndUpdatePrices\Program.cs:line 48 ``` https://github.com/jstedfast/MailKit/issues/197 +1855 area-System.Reflection dotNET +1861 area-Infrastructure Linux tests fail in CI due to mscorlib.ni.dll existing. Linux test runs in CI have been failing (silently) for a while with execute assembly errors. This started around here: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst/264/ Which had these changes: Update to latest CoreFx packages (commit: 08c0d8628ef621fbd44d7aaa85b3239616a6b108) Move DNU/Roslyn forward (commit: 804b4330a6ae767694cf89ebd173533b539f16f5) The problem looks to be due to the fact that we are now copying mscorlib.ni.dll into the test folder. This is not a Linux native image so things blow up when we try to load and run it. To unblock things, I am adding some logic to run-tests.sh to just delete the native images, but that's not the right long term thing (especially with crossgen support coming real soon now). We need to stop this incorrect native image from being deployed, and eventually deploy the right one. This issue tracks doing the right thing. Once fixed, we should remove the code in run-test.sh that's tagged with this issue number. +1863 area-System.Security Some OID tests failing Cross Platform These tests are failing in CI (which we previously were not catching because no tests were running) System.Security.Cryptography.Encoding.Tests.OidTests.TestFromFriendlyName [FAIL] System.Security.Cryptography.Encoding.Tests.OidTests.TestFromOidValue [FAIL] System.Security.Cryptography.Encoding.Tests.OidTests.TestKnownValues [FAIL] +1866 area-System.Net DNS protocol support enhancement: MX and SRV records Hi, Is there any plan to support MX or SRV DNS field in corefx ? Thank you. Bhaal22 +1874 area-System.Diagnostics System.Diagnostics.ProcessTests.ProcessTest.Process_AsyncHalfCharacterAtATime test sometimes fails ``` System.Diagnostics.ProcessTests.ProcessTest.Process_AsyncHalfCharacterAtATime [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: E:\oss\corefx\src\System.Diagnostics.Process\tests\System.Diagnostics.Process.Tests\Process_StreamTests.cs(131,0): at System.Diagnostics.ProcessTests.ProcessTest.Process_AsyncHalfCharacterAtATime() ``` +1877 area-System.Linq [System.Linq.Expressions] Allow Switch with empty cases list Now we can not create an expression, that represents this code: ``` cs switch(x) { default: return 0; } ``` But c# allows this and this is can be very helpful - users do not needs a checks and brunches in own code. Problem with a next line: https://github.com/dotnet/corefx/blob/master/src/System.Linq.Expressions/src/System/Linq/Expressions/SwitchExpression.cs#L205 I have asked this question on StackOverflow a few months ago: http://stackoverflow.com/questions/28360782/switch-without-cases-but-with-default-in-system-linq-expressions Why this is not allowed? Can we change it? +1880 area-System.IO Add event buffering to Windows FileSystemWatcher to avoid InternalBufferOverflowExceptions "Consumers should not have to worry about internals like the Windows FileSystemWatcher (FSW) trying to minimize usage of precious non-paged memory resulting in InternalBufferOverflowExceptions. By default the FSW should buffer events in ""normal"" memory. This could easily be implemented using a BlockingCollection. FSW could be configurable to use the old behaviour only. For details and and a implementation sample see my post: https://petermeinl.wordpress.com/2015/05/18/tamed-filesystemwatcher/ Average programmers (for which we should make life as easy as reasonable) often are often not even aware of having to implement an OnError event handler resulting in InternalBufferOverflowExceptions going unnoticed and FSW being perceived as unreliable. " +1883 area-System.Numerics Buffer too small in BigIntegerCalculator.Divide We are seeing some memory corruption after a recent change to biginteger.divide. This is what I got from an engineer investigating the issue: I was able to repro this bug and find its cause. The bug is in System.Runtime.Numerics.dll, introduced by change #1476305 on 5/23. There is an array overflow in unsafe C# code that does division of BigInteger, in System.Numerics.BigIntegerCalculator.Divide(UInt32_, Int32, UInt32_, Int32, UInt32_, Int32, UInt32_, Int32) in FxCore/Open/src/System.Runtime.Numerics/src/System/Numerics/BigIntegerCalculator.DivRem.cs. This method allocates a few arrays: ``` fixed (uint* dividend = new uint[dividendLength], divisor = new uint[divisorLength], guess = new uint[divisorLength]) ``` The guess array is used as the destination of a multiplication: MultiplyDivisor(divisor, divisorLength, digit, guess); This multiplies an array of length divisorLength with an uint. The result length is divisorLength+1, longer than the memory allocated for guess. This overwrites the sync block of the next item in memory, causing asserts later on. Increasing the allocation of guess by 1 should fix this bug. +1891 area-Meta What are the rules on adding new APIs to CoreFX? I saw this: https://github.com/dotnet/corefx/issues/1017#issuecomment-107752252. > To expose the RuntimeEnvironment class, it requires updation to the desktop api, which will not come to effect until next desktop release. Hence, the portable version cannot be released, before the desktop 4.6.1 is released, to ensure this contract works on all platforms, which is the same problem we had with PlatformID, we want to decouple ourselves from desktop dependencies and be more quick with releases. What are the rules that are proposed for updating .NET Core? There are at least a few scenarios: - Adding new members on a type that exists in the .NET Framework. - Adding new types that represent a similar concept that exists in the .NET Framework - Adding new types (new concepts) that do not exist in the .NET Framework. Ideally, we could update .NET Core at the pace we want. Is the issue that we might add one new member to a type that is represented in contract foo and doing so would make contract foo incompatible with .NET Framework vLatest? /cc @Priya91, @terrajobst, @davidfowl +1894 area-System.Net The message or signature supplied for verification has been altered "Hello. I'm using [MailKit](https://github.com/jstedfast/MailKit) And have simple code: ``` c# public static async Task DownloadFileAsync(EmailModel emailModel, bool notSetFlagSeen) { var result = new DownloadResult(); if (emailModel != null) { using (var client = new ImapClient()) { await client.ConnectAsync(emailModel.Host, emailModel.Port, emailModel.Secure); // Note: since we don't have an OAuth2 token, disable // the XOAUTH2 authentication mechanism. client.AuthenticationMechanisms.Remove(""XOAUTH""); await client.AuthenticateAsync(emailModel.UserName, emailModel.Password); ................................... ``` From time to time I receive this error message. Stack trace: ``` System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> System.ComponentModel.Win32Exception: The message or signature supplied for verification has been altered --- End of inner exception stack trace --- at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) at MailKit.Net.Imap.ImapClient.Connect(String host, Int32 port, SecureSocketOptions options, CancellationToken cancellationToken) at MailKit.MailService.<>c__DisplayClass3.b__2() at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at DownloadAndUpdatePrices.Email.EmailService.d__0.MoveNext() in d:\ProjectIS-3\WebProjectAutosouz\DownloadAndUpdatePrices\DownloadAndUpdatePrices\Email\EmailService.cs:line 35 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at DownloadAndUpdatePrices.BLL.DownloadService.d__0.MoveNext() in d:\ProjectIS-3\WebProjectAutosouz\DownloadAndUpdatePrices\DownloadAndUpdatePrices\BLL\DownloadService.cs:line 22 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at DownloadAndUpdatePrices.Program.d__f.MoveNext() in d:\ProjectIS-3\WebProjectAutosouz\DownloadAndUpdatePrices\DownloadAndUpdatePrices\Program.cs:line 49 ``` " +1896 area-System.Diagnostics Process_MainModule failed in CI (returned different module than expected) http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release_prtest/1532/console ``` System.Diagnostics.ProcessTests.ProcessTest.Process_MainModule [FAIL] Assert.Equal() Failure  (pos 0) Expected: corerun Actual: ntdll  (pos 0) Stack Trace: d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Diagnostics.Process\tests\System.Diagnostics.Process.Tests\ProcessTest.cs(239,0): at System.Diagnostics.ProcessTests.ProcessTest.Process_MainModule() ``` +1899 area-System.Xml xmldocument load error "I am using nuget pacakge System.Xml.XmlDocument 4.0.0-beta-22819 and when I tried to load xml, I am getting the error `System.Xml.XmlException: Root element is missing.` for every valid xml file. Code ``` TextReader textReader = File.OpenText(@""xml\document.xml""); XmlReaderSettings settings = new XmlReaderSettings(); settings.IgnoreWhitespace = true; settings.DtdProcessing = DtdProcessing.Ignore; XmlDocument doc = new XmlDocument(); // doc.LoadXml(textReader.ReadToEnd()); using (StringReader sr = new StringReader(textReader.ReadToEnd())) using (XmlReader reader = XmlReader.Create(sr, settings)) { doc.Load(reader); } ``` XML files ``` University of XML Department of XML parsing George Washington Abraham Lincoln Bill J. Clinton George W. Bush Barack H. Obama Song Li ``` and another xml file ``` test test2 test3 ``` " +1900 area-System.Text Make sure object initialization in System.Text.Encodings.Web is synchronized See comments in https://github.com/dotnet/corefx/pull/1889 +1903 area-System.Runtime "[Suggestion] Add ""Time-based"" Class to enhance the ""WeakReference""" "Hello all: In asp.net we have Cache, this can be automatically set ""timeout"" and release its memory by setting dependency such as ""Timespan"", ""file""..... However in other situations we don't have such functions yet. It would be better if we have such a ""Time-based"" class, and it will automatically release many ""short-period-timed"" variable, something like WeakReferece (However, WeakReference doesn't have a time-based foundation yet, and we cannot control how long it will be released). In my mind, this can be designed something like this following: ``` public sealed class TimeBasedValue :IDisposable where T:class { //An absolute time that bombs up the value public TimeBasedValue (T value, DateTime span){……} // Absolute/Relative time for bombing up the value public TimeBasedValue (T value, int timePeriod, Mode mode, Unit unit) {……} //When time is overdue, this value must be null public T Value{get;} //""Mode"" is an enum that shows how the time period is calculated: Absolute, Relative to the last access.... public Mode TimeMode{get;} // Hour, Minute, Second or Millsecond? public Unit Unit{get;} //This will be called once the time is overdue, and it will first check whether the Value has implemented ""IDisposable"" or not, if yes, call it first. However no matter what happens, the Value should be set to null public void Dispose() { var value = Value; IDisposable idisp = value as IDisposable ; try { if(idisp!=null) { idisp.Dispose(); } } finally { idisp = null; } } } ``` " +1904 area-System.IO zip_InvalidParametersAndStrangeFiles.StrangeFiles4 disabled on Unix "I'm disabling the System.IO.Compression.Tests.zip_InvalidParametersAndStrangeFiles.StrangeFiles4 test on Unix as it fails once we fix the Path.AltDirectorySeparatorChar to be '/' instead of '\' ('\' isn't a valid directory separator char on Unix). The problem stems from an assert in ZipTestHelpers: ``` C# Assert.Equal(file.Name, entry.Name); ``` This particular ""strange"" zip file (dataDescriptor.zip) contains an entry named ""notempty\second.txt"", and the assert is expecting the entry.Name to be ""second.txt"", but when '\' isn't a separator character, the entry.Name (which just returns Path.GetFileName(...)) is coming back as ""notempty\second.txt"". This is after all a ""strange"" zip file, so I don't know whether this is a product issue or a test issue. " +1914 area-System.Reflection Build more specific test verification methods for System.Reflection.Emit.ILGeneration constructor verification tests In CustomAttributeBuilderCtor1.PosTest1() ``` csharp CustomAttributeBuilder cab = new CustomAttributeBuilder( typeof(ObsoleteAttribute).GetConstructor(ctorParams), paramValues); Assert.NotNull(cab); ``` Instead of simpe Assert.NotNull, check for configuration of cab from the ctor. +1917 area-Serialization Fix XmlSerializer issue when deserializing type with protected parameterless constructor When deserialize types with non-public default constructor, generated code from XmlSerializer throws missing method exception because no constructor is available for Activator.CreateInstance. This is affecting debugging scenario for some apps. This is to port the change we did in NetNative. +1930 area-System.Net Regression in redirection functionality of System.Net.Http.HttpClient "@davidsh , I found this regression when trying to integrating `HttpClient` into `dnu restore` Here is a simple repro: ``` public class Program { public void Main(string[] args) { Task.Run(async () => { var client = new HttpClient(); //var request = new HttpRequestMessage(HttpMethod.Get, ""http://www.bing.com""); // Works var request = new HttpRequestMessage(HttpMethod.Get, ""http://bing.com""); // Throws exception using (var response = await client.SendAsync(request)) { Console.WriteLine(await response.Content.ReadAsStringAsync()); } }).Wait(); } } ``` The exception thrown: ``` System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: The requested header was not found at System.Net.Http.WinHttpHandler.WinHttpStatusCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 stat usInformationLength) --- End of inner exception stack trace --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at ConsoleApp8.Program.<>c.<
b__0_0>d.MoveNext() in C:\AspNet\VS2015Projects\ConsoleApp8\src\ConsoleApp8\Program.cs:line 19 System.Net.Http.WinHttpException: The requested header was not found at System.Net.Http.WinHttpHandler.WinHttpStatusCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 stat usInformationLength) ``` " +1931 area-Serialization Add support for data contract surrogate type aliasing +1936 area-System.Net System.System.Net.Http.FormUrlEncodedContent(...) can't handle very long parameters/values "FormUrlEncodedContent(IEnumerable>) [uses](https://github.com/dotnet/corefx/blob/5f3cf426df9d41e629a02ee6d8fb32089e35227b/src/System.Net.Http/src/System/Net/FormUrlEncodedContent.cs#L40) Uri.EscapeDataString which internally uses [UriHelper.EscapeString](https://github.com/dotnet/corefx/blob/f969471a5719e901e9147928c9a71ea17d6d7862/src/System.Private.Uri/src/System/UriHelper.cs#L128) which [can't handle](https://github.com/dotnet/corefx/blob/f969471a5719e901e9147928c9a71ea17d6d7862/src/System.Private.Uri/src/System/UriHelper.cs#L131) strings longer than 65520 characters. ``` C# var uc1 = new FormUrlEncodedContent( new Dictionary { {""test"", new string('F', 65520)} } );//works fine var uc = new FormUrlEncodedContent( new Dictionary { {""test"", new string('F', 65521)} } ); //exception ``` " +1942 area-System.Collections Proposal: Dictionary.TryAdd(TKey, TValue) It's very common to see code that does this: ``` C# Dictionary data = ...; ... if (!data.ContainsKey(key)) data.Add(key, value); ``` This forces the dictionary to lookup the key twice when the key isn't yet in the dictionary. It'd be great if we had an additional method on the type: ``` C# public bool TryAdd(TKey key, TValue value); ``` Functionally it would behave exactly as if it were implemented like: ``` C# public bool TryAdd(TKey key, TValue value) { if (ContainsKey(key)) return false; Add(key, value); return true; } ``` but the implementation internally would be done more efficiently, essentially implemented by calling a variant of Insert but that returns false instead of throwing when a duplicate key is found. +1961 area-System.Text Review all remaining samness tests in System.Text.Encodings.Web.Tests There are some tests in the suite that Assert.Same. These need to be reviewed and either removed or we need to ensure the code is synchronizing properly and the tests will not fail. +1963 area-System.Security Add EVP_CIPHER_CTX_new to System.Security.Cryptography.Native Interop.EVP.Cipher.cs: ``` // This was computed by sizeof(EVP_CIPHER_CTX) on a 64-bit Ubuntu // machine running OpenSSL 1.0.1f. If we end up making a native // interop boundary library for OpenSSL then a very good candidate // method would be EVP_CIPHER_CTX_new, so the size can be computed // to match the platform. internal const int EVP_CIPHER_CTX_SIZE = 168; ``` Currently the native library is in dotnet/coreclr; so some mild gymnastics might be required. EVP_CIPHER_CTX_new should allocate the memory and call (OpenSSL) EVP_CIPHER_CTX_init, and have a well-defined free. If gymnastics are required for checking this in, a followup issue to use the new method should be filed. If the native library has moved to dotnet/corefx by the time this is done, then the managed code to consume it should potentially be part of the same change. +1965 area-System.Security AES DecryptorReusabilty.TestDecryptorReusability test is failing on Unix ``` 14:20:43 Finished: System.Security.Cryptography.Encoding.Tests 14:20:43 System.Security.Cryptography.Encryption.Aes.Tests.DecryptorReusabilty.TestDecryptorReusability [FAIL] 14:20:43 Assert.Equal() Failure 14:20:43 Expected: Byte[] [20, 48, 113, 173, 237, ...] 14:20:43 Actual: Byte[] [20, 48, 113, 173, 237, ...] ``` +1967 area-System.Collections [Proposal] IImmutableSet.Union should handle duplicates like ISet.UnionWith The [`ISet.UnionWith`](https://msdn.microsoft.com/en-us/library/dd411713.aspx) method is documented to handle duplicates as follows: > ``` cs > void UnionWith(IEnumerable other) > ``` > > Any duplicate elements in _other_ are ignored. The [`Enumerable.Union`](https://msdn.microsoft.com/en-us/library/vstudio/bb341731.aspx) extension method documents an even stronger condition: > ``` cs > public static IEnumerable Union(this IEnumerable first, IEnumerable second) > ``` > > When the object returned by this method is enumerated, `Union` enumerates _first_ and _second_ in that order and yields each element that has not already been yielded. The `IImmutableSet.Union` method appears to provide the same functionality as the above method, but does not specify the behavior of the result with respect to duplicate elements. In the current implementation of `ImmutableSortedSet`, the `Union` operation behavior varies depending on the relative size of the `this` and `other` sequences. This could be confusing for users expecting the elements of the `this` sequence to take precedence. I propose defining the behavior with respect to duplicates partially (to match `ISet.UnionWith`) or fully (to match `Enumerable.Union`), and updating the implementation of `ImmutableSortedSet` to follow the new behavior. +1973 area-System.Collections Please add interface IReadOnlySet and make HashSet, SortedSet implement it "Since `IReadOnlyList` was added the parity between sets and lists has declined. It would be great to re-establish it. Using it would be an implementation-agnostic way of saying: ""here is this read-only collection where items are unique"". Clearly it's needed by many people: SQL Server: https://msdn.microsoft.com/en-us/library/gg503096.aspx Roslyn: https://github.com/dotnet/roslyn/blob/master/src/Compilers/Core/Portable/InternalUtilities/IReadOnlySet.cs Some Guy In Comments: http://blogs.msdn.com/b/bclteam/archive/2013/03/06/update-to-immutable-collections.aspx " +1975 area-System.Net Fixes issues with the System.Net.Http tests - Tests were not running because the directories were not named properly. - Rename test project to match the correct name. - Fix typo in resource strings. +1985 area-System.Security X509DistinguishedName::Format returns different answers on Windows and Unix The most concrete example is that OID(2.5.4.8) displays in Windows as 'S', but on Unix (OpenSSL) as 'ST'. This is related to https://www.github.com/dotnet/corefx/issues/1813, but a targeted fix for that issue would not fix this, and vice versa. +1991 area-System.IO Improve memory allocations of DeflateStream We use GZipStream to handle the data sent on the wire to a WebAPI with both big and small requests. The allocation stress is more evident with small packages though. On a sample of 60 seconds in an stress test we measured that System.IO.Compression.OutputWindow.ctor() and System.IO.Compression.DefrateStream.ctor() would be consistently in the top 5 allocators. Between the two 1.8Gb in allocations in 60 seconds. The root is that DefrateStream will create on every construction (1 per request) an Infrater (https://github.com/dotnet/corefx/blob/master/src/System.IO.Compression/src/System/IO/Compression/DeflateStream.cs#L62) and the Infrater will also build an OutputWindow (https://github.com/dotnet/corefx/blob/master/src/System.IO.Compression/src/System/IO/Compression/OutputWindow.cs). Which in turn will allocate 32Kb to use as a buffer for each request. Reusing those buffers and/or OutputWindow would aleviate a lot the allocation stress GZipStream causes when used in small streams contexts like Web APIs. +1993 area-System.Security [Feature] Finish X509Certificate support for Unix The current Unix X509 code was to the level that it needed to be to allow presenting an SSL wire cert for verification. This needs to be completed. The functions which currently throw a `NotImplementedException` are ``` Internal.Cryptography.Pal.CertificatePal::CertificatePal.FromFile(string, string, X509KeyStorageFlags) Internal.Cryptography.Pal.CertificatePal::CertificatePal.FromHandle(IntPtr) Internal.Cryptography.Pal.OpenSslX509CertificateReader::OpenSslX509CertificateReader.Archived.set(bool) Internal.Cryptography.Pal.OpenSslX509CertificateReader::OpenSslX509CertificateReader.FriendlyName.set(string) Internal.Cryptography.Pal.OpenSslX509CertificateReader::OpenSslX509CertificateReader.SetPrivateKey(AsymmetricAlgorithm, AsymmetricAlgorithm) Internal.Cryptography.Pal.OpenSslX509ChainProcessor::OpenSslX509ChainProcessor.ChainElements.get() Internal.Cryptography.Pal.OpenSslX509ChainProcessor::OpenSslX509ChainProcessor.ChainStatus.get() Internal.Cryptography.Pal.OpenSslX509ChainProcessor::OpenSslX509ChainProcessor.Verify(X509VerificationFlags, Exception) Internal.Cryptography.Pal.OpenSslX509Encoder::OpenSslX509Encoder.ComputeCapiSha1OfPublicKey(PublicKey) Internal.Cryptography.Pal.OpenSslX509Encoder::OpenSslX509Encoder.DecodePublicKey(Oid, byte[], byte[]) Internal.Cryptography.Pal.OpenSslX509Encoder::OpenSslX509Encoder.DecodeX509BasicConstraintsExtension(byte[], bool, bool, int) Internal.Cryptography.Pal.OpenSslX509Encoder::OpenSslX509Encoder.EncodeX509BasicConstraints2Extension(bool, bool, int) Internal.Cryptography.Pal.OpenSslX509Encoder::OpenSslX509Encoder.EncodeX509EnhancedKeyUsageExtension(OidCollection) Internal.Cryptography.Pal.OpenSslX509Encoder::OpenSslX509Encoder.EncodeX509KeyUsageExtension(X509KeyUsageFlags) Internal.Cryptography.Pal.OpenSslX509Encoder::OpenSslX509Encoder.EncodeX509SubjectKeyIdentifierExtension(byte[]) Internal.Cryptography.Pal.OpenSslX509Encoder::OpenSslX509Encoder.GetCertContentType(byte[]) Internal.Cryptography.Pal.OpenSslX509Encoder::OpenSslX509Encoder.GetCertContentType(string) Internal.Cryptography.Pal.OpenSslX509Encoder::OpenSslX509Encoder.X500DistinguishedNameEncode(string, X500DistinguishedNameFlags) Internal.Cryptography.Pal.OpenSslX509Encoder::OpenSslX509Encoder.X500DistinguishedNameFormat(byte[], bool) Internal.Cryptography.Pal.OpenSslX509StoreProvider::OpenSslX509StoreProvider.Add(ICertificatePal) Internal.Cryptography.Pal.OpenSslX509StoreProvider::OpenSslX509StoreProvider.Export(X509ContentType, string) Internal.Cryptography.Pal.OpenSslX509StoreProvider::OpenSslX509StoreProvider.Remove(ICertificatePal) Internal.Cryptography.Pal.StorePal::StorePal.FromBlob(byte[], string, X509KeyStorageFlags) Internal.Cryptography.Pal.StorePal::StorePal.FromCertificate(ICertificatePal) Internal.Cryptography.Pal.StorePal::StorePal.FromFile(string, string, X509KeyStorageFlags) Internal.Cryptography.Pal.StorePal::StorePal.FromSystemStore(string, StoreLocation, OpenFlags) Internal.Cryptography.Pal.StorePal::StorePal.LinkFromCertificateCollection(X509Certificate2Collection) ``` +1994 area-System.Net System.Net.Http package doesn't target 4.5.x TFMs in latest build "I'm using System.Net.Http-4.0.0-beta-23008 (afaik, the latest) and the TFMs in the package are ""DNXCore50"", ""netcore50"", and ""net46"". `lib/net46` directory in the latest package contains nothing but a `_._` empty file. Should there be a TFM for `dnx451` or similar? " +2003 area-Infrastructure Add option for building corefx in deterministic mode Roslyn will support compiling in [deterministic mode](https://github.com/dotnet/roslyn/issues/372) where same inputs generate same outputs. There should be an option of building corefx in this mode. Note: this depends on the deterministic build feature being implemented in Roslyn, there's nothing actionable for corefx for now, but I wanted to have something to track :) +2008 area-System.Security X509's Helpers::HexToByte needs to signal invalid input "Because HexToByte doesn't signal on invalid input DecodeHexString returns a byte[] for non-hex inputs. So when the FindByInvalidThumbprint test runs (and searches for ""Nothing"") that is the same as searching for `new byte[] { 0xFF, 0xFF, 0xFF, 0xFF }`. A more marginal case would be that ""00FZ00"" becomes `{ 0x00, 0xFF, 0x00 }`, which could cause some interesting wrong matches for things like FindBySerialNumber. As the Find API returns no matches (vs throwing exception) on invalid input, the Decode probably should be redone to TryDecode, giving the helper routines the knowledge that they should just return no match. " +2009 area-System.Security SyncRoot and IsSynchronized on X509 collections should be explicitly implemented (private) I noticed that [`X509ChainElementCollection`](https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509ChainElementCollection.cs#L24-L32) and [`X509ExtensionCollection`](https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509ExtensionCollection.cs#L28-L36) implement `ICollection`'s `SyncRoot` and `IsSynchronized` properties implicitly (public). These should be explicit (private). I believe this is a compatible change from a subsetting perspective (between desktop and corefx) as this was done on the Regex collections, for example. Other collections in this assembly, like [`X509CertificateCollection`](https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509CertificateCollection.cs#L43-L54) already implement these properties explicitly (private). I'd be happy to submit a PR. cc @bartonjs +2011 area-System.IO Several FileSystemWatcher tests are failing on OSX Expected events are not being raised for at least: - FileSystemWatcher_Changed_LastWrite_File - FileSystemWatcher_Changed_LastWrite_Directory - FileSystemWatcher_Created_MoveDirectory A Debug.Assert in FindRenameChangePairedChange is also firing for the MoveDirectory test: +2022 area-System.IO What about adding interfaces to FileInfo and DirectoryInfo? When testing it would be nice to be able to mock the filesystem. Would a PR introducing interfaces be accepted? +2028 area-System.Collections Inconsistent, unexpected bounds check in RemoveRange - `ImmutableArray.RemoveRange` requires 0<=index.RemoveRange` requires 0<=index.Builder.ToImmutable Currently the documentation for `ImmutableList.Builder.ToImmutable()` includes the following remark: > This method is an O(n) operation, and approaches O(1) time as the number of actual mutations to the set since the last call to this method approaches 0. The problem with this statement is the complexity of this operation is only O(1) when the number of mutations is _exactly_ equal to 0. As the number of mutations _approaches_ 0, the complexity is actually approaching O(log n). +2036 area-System.Collections Exposed Immutable Collections APIs should allow `null` comparers Several immutable collections APIs throw an `ArgumentNullException` if a null `IComparer` or `IEqualityComparer` is provided. This is not intuitive, and deviates from a very common pattern established by the .NET framework. All publicly-exposed API methods in this assembly should be updated to ensure the following: 1. If a null value is provided for `IComparer`, `Comparer.Default` should be used instead. 2. If a null value is provided for `IEqualityComparer`, `EqualityComparer.Default` should be used instead. +2046 area-System.IO How to implement System.IO.FileSystem.Watcher on FreeBSD This issue is to discuss how we can implement `System.IO.FileSystem.Watcher` on FreeBSD which does not have inotify: - [ ] Determine/discuss if this be a source of trouble? - [ ] We could stub it out at the moment and throw a PlatformNotsupportedException as suggested in by Stephen - https://github.com/dotnet/corefx/pull/2021#issuecomment-111602342 - [ ] Implement proper solution using kqueue/libev? Any recommendations here are very much welcome. # Reference Material - https://www.freebsd.org/cgi/man.cgi?query=kqueue - http://software.schmorp.de/pkg/libev.html - http://libevent.org/ # Related Issues - https://github.com/dotnet/corefx/issues/1626#issuecomment-111975933 - https://github.com/dotnet/corefx/issues/1626#issuecomment-111975140 +2051 area-System.Reflection [PortablePdb] Local signature in method body, entry point, #Pdb stream Adds local signature token to method body, so that PDB readers have access to them without loading IL stream. Adds a new #Pdb stream to standalone debug metadata that includes sizes of type-system tables referenced by the debug metadata tables. Replaces entry point CDI with an entry in #Pdb stream. +2053 area-Serialization Fix exception message differences when deserializing empty string There is differences in the exception message when deserializing empty string using DataContractSerializer in NetCore/NetNative compared to Desktop. This is due to XmlDictionaryReader uses different kind of XmlReader in one of the CreateTextReader overloads. This PR updates the overload to initialize to the same XmlUtf8TextReader. +2058 area-System.Reflection Merge branch 'master' of https://github.com/dotnet/corefx into dev/metadata +2061 area-System.Reflection [MetadataReader] document format and constrains of -Ptr tables InitializeTableReaders method contains the following code: ``` C# // Compute ref sizes for tables that can have pointer tables int fieldRefSizeSorted = GetReferenceSize(rowCounts, TableIndex.FieldPtr) > SmallIndexSize ? LargeIndexSize : GetReferenceSize(rowCounts, TableIndex.Field); int methodRefSizeSorted = GetReferenceSize(rowCounts, TableIndex.MethodPtr) > SmallIndexSize ? LargeIndexSize : GetReferenceSize(rowCounts, TableIndex.MethodDef); int paramRefSizeSorted = GetReferenceSize(rowCounts, TableIndex.ParamPtr) > SmallIndexSize ? LargeIndexSize : GetReferenceSize(rowCounts, TableIndex.Param); int eventRefSizeSorted = GetReferenceSize(rowCounts, TableIndex.EventPtr) > SmallIndexSize ? LargeIndexSize : GetReferenceSize(rowCounts, TableIndex.Event); int propertyRefSizeSorted = GetReferenceSize(rowCounts, TableIndex.PropertyPtr) > SmallIndexSize ? LargeIndexSize : GetReferenceSize(rowCounts, TableIndex.Property); ``` It's not clear if any of these conditions are ever true. I'd think that the size of XxxPtr table is always the same as the corresponding Xxx table, since the Ptr table is used as an index. It might make sense that XxxPtr table is smaller than the Xxx table. But I don't see how it can have more rows. Do we have tests that cover these? +2064 area-System.Runtime INumber or INumeric interface for base number types I often run into the problem that I want to handle numeric base types in a common way. Unfortunately, they are missing a common interface to express their similarities. Therefore I propose to create an `INumber` or `INumeric` interface on the following numeric base types: - `System.Decimal` - `System.Double` - `System.Single` - `System.Int32` - `System.UInt32` - `System.Int64` - `System.UInt64` This interface should define common functionality, like `+`, `-`, `*`, `/`, etc. +2065 area-System.Data Are DataColumn, DataTable and DescriptionAttribute supported with ASP .Net Core ? I am trying to compile my existing app with ASP .Net Core 5.0. During compilation several error we are getting error like : error CS0246: The type or namespace name 'DescriptionAttribute' could not be found (are you missing a using directive or an assembly reference?) etc. Aren't these supported ? +2069 area-System.Reflection Disable tests failing in internal build Tracked by #1787 +2070 area-System.Diagnostics How to implement System.Diagnostics.Process on FreeBSD? This issue is to discuss how we can implement `System.Diagnostics.Process` on FreeBSD which does not have procfs by enabled by default as [it should be considered deprecated.](http://lists.freebsd.org/pipermail/freebsd-fs/2011-February/010760.html) # Reference Material - [Implement basic System.Diagnostics.Process.Modules support on Linux #2188](https://github.com/dotnet/corefx/pull/2188#issuecomment-116671221) - The System.Diagnostics.Process [specification on MSDN.](https://msdn.microsoft.com/en-us/library/system.diagnostics.process%28v=vs.110%29.aspx) - The [FreeBSD process information implementation within Mono](https://github.com/mono/mono/blob/master/mono/io-layer/processes.c#L1888-L1910) (LGPL) - The [FreeBSD process information implementation within IO.JS](https://github.com/nodejs/io.js/blob/master/deps/uv/src/unix/freebsd.c) (MIT) - https://www.freebsd.org/cgi/man.cgi?procstat and https://www.freebsd.org/cgi/man.cgi?sysctl(3) ``` KERN_PROC Return selected information about specific running processes. For the following names, an array of struct kinfo_proc structures is returned, whose size depends on the current number of such objects in the system. Third level name Fourth level is: KERN_PROC_ALL None KERN_PROC_PID A process ID KERN_PROC_PGRP A process group KERN_PROC_TTY A tty device KERN_PROC_UID A user ID KERN_PROC_RUID A real user ID If the third level name is KERN_PROC_ARGS then the command line argument array is returned in a flattened form, i.e., zero-termi- nated arguments follow each other. The total size of array is returned. It is also possible for a process to set its own process title this way. If the third level name is KERN_PROC_PATHNAME, the path of the process' text file is stored. For KERN_PROC_PATHNAME, a process ID of -1 implies the current process. Third level name Fourth level is: KERN_PROC_ARGS A process ID KERN_PROC_PATHNAME A process ID ``` /cc: @janhenke @saper @jasonwilliams200OK @josteink +2075 area-System.Linq Append/Prepend "## Summary Two of the IEnumerable extension methods that I carry in my collection (we all have a personal collection of IEnumerable extension methods, am I right?) are Append and Prepend, for adding a single element to the end or beginning of a sequence respectively. Though not quite as common as concatenating sequences, I have been surprised at how often this need arises. Doing this inside of an expression today is not straightforward; the best equivalent that I have found is far from ideal: ``` sequence.Concat(Enumerable.Repeat(singleValue, 1)) ``` I propose adding Prepend and Append extension methods to Enumerable to fill this need. ## API ``` public static class Enumerable { public static IEnumerable Append(this IEnumerable source, T value); public static IEnumerable Prepend(this IEnumerable source, T value) } ``` ## Usage ``` optionalValues.Prepend("""") ``` " +2076 area-System.Linq Sorting sequences ## Summary There are two scenarios where the existing Enumerable OrderBy methods are not ideal: - When sorting a sequence of comparable values (e.g. ints). In this case an identify function must be provided as the key selector: `ints.Sort(x => x)` - When sorting on something other than a single key, an identity function must be provided to select the element as the key, AND an instance of IComparer must be provided, which is at odds with the majority of LINQ methods which take functions (and are therefore easier to use with lambda expressions): ``` using NodaTime; using NodaTime.TimeZones; ... IEnumerable tzs = ...; var tzEqComparer = new ZoneEqualityComparer(); tzs = tzs.OrderBy(x => x, Comparer.Create((tz1, tz2) => tzEqComparer.Equals(tz1, tz2) ? 0 : tz1.Id.CompareTo(tz2.Id)); ``` I propose adding various overloads of Sort to address these situations. The name Sort is chosen specifically to distinguish these methods, which do not take a key selector, from the OrderBy methods, which do. If this is not considered an important distinction, the names could be changed to OrderBy without colliding with the existing methods. ## API ``` public static class Enumerable { public static IOrderedEnumerable Sort(this IEnumerable source) where T : IComparable public static IOrderedEnumerable Sort(this IEnumerable source, IComparer comparer) public static IOrderedEnumerable Sort(this IEnumerable source, Comparison comparison) public static IOrderedEnumerable SortDescending(this IEnumerable source) where T : IComparable public static IOrderedEnumerable SortDescending(this IEnumerable source, IComparer comparer) public static IOrderedEnumerable SortDescending(this IEnumerable source, Comparison comparison) public static IOrderedEnumerable ThenSort(this IOrderedEnumerable source) where T : IComparable public static IOrderedEnumerable ThenSort(this IOrderedEnumerable source, IComparer comparer) public static IOrderedEnumerable ThenSort(this IOrderedEnumerable source, Comparison comparison) public static IOrderedEnumerable ThenSortDescending(this IOrderedEnumerable source) where T : IComparable public static IOrderedEnumerable ThenSortDescending(this IOrderedEnumerable source, IComparer comparer) public static IOrderedEnumerable ThenSortDescending(this IOrderedEnumerable source, Comparison comparison) } ``` ## Usage ``` ints.Sort() ``` ``` using NodaTime; using NodaTime.TimeZones; ... IEnumerable tzs = ...; var tzEqComparer = new ZoneEqualityComparer(); tzs = tzs.Sort((tz1, tz2) => tzEqComparer.Equals(tz1, tz2) ? 0 : tz1.Id.CompareTo(tz2.Id)); ``` ## Questions 1. The generic restriction to IComparable is not necessary if the implementation will delegate to OrderBy with an identity function (although there are other potential implementations). However, even if not strictly necessary, it clearly expresses the intent of the method. Is there a downside to keeping it? 2. Overloads that take an IComparer are included for parity with OrderBy. Between the two, I prefer the overload that takes the Comparison, since converting an IComparer into a Comparison is more straightforward than going the other way. However, I am not aware of the rationale behind using IComparer instead of Comparison in the OrderBy methods. We should consider whether the same rationale applies to Sort, or whether it might make sense to remove the IComparer overloads to reduce the API surface. 3. Should the OrderBy methods have overloads added that take Comparison for parity? Or is there something about the usage pattern of selecting a key that makes it less likely that a comparison function will be provided inline? (This is the inverse of question 2). 4. What about Queryable? +2077 area-Serialization Support JSON-LD in DataContractJsonSerializer There is an issue raised by dotnet/wcf#28 requesting support for JSON-LD. If more info is needed, @akuckartz would be a good person to start with, as the original issue-raiser. It would be great to hear from the community if JSON-LD is useful so this work can be prioritized appropriately. Thanks! +2081 area-Serialization Update NetCore DCJS to use the same code with NetNative DCJS DCJS implementation in NetCore at the moment is based on the JavascriptSerializer/Deserializer which is rather different from the ones used in NetNative and on Desktop. This introduces unneccessary effort in making improvement and providing consistent behaviors. This change switches DCJS in NetCore to the same code that is used in NetNative with MERGE_DCJS directive. If there is no issues I will follow to clean up this directive and unused code. @SGuyGe @zhenlan @roncain @shmao +2085 area-Serialization Fix serialization of generic queue to align with NetNative Generic queue is serialized differently in NetCore compared to NetNative since it skips the queue's _syncRoot property of type object. This change is to fix the behavior when serializing property of type object in general. As Serialization of generic queue on desktop is controlled with Serializable, NonSerialized attributes, which are not available in NetCore, this results in a different load compared to desktop. I have verified that cross platform serialization/deserialization works fine. cc: @SGuyGe @zhenlan @shmao +2093 area-System.ComponentModel Can `sealed` modifier be removed from `DisplayAttribute`? I'm redirected here from MVC6 repo (https://github.com/aspnet/Mvc/issues/2706). In MVC6 we are meant to use `DisplayAttribute` to define human readable texts for model's properties. In earlier versions, MVC was using `DisplayNameAttribute` and it could be inherited, so developers were overriding it and customizing texts, messages, labels on the air (like translating or formatting them etc.). Now MVC6 uses .NET's `DisplayAttribute` for this use and it's sealed and unfortunately we are restricted here now. Is it possible to remove the `sealed` modifier from this attribute? So I think the frameworks using this attribute will be more customizable. +2101 area-System.Reflection Add TypeInfo.IsEquivalent(TypeInfo) to CoreFx It is currently not possible to write a library that compares types correctly (considering NoPIA interface unification) and that works on both Desktop CLR and CoreCLR without calling Type.IsEquivalentTo via Reflection on Desktop. +2102 area-System.Text Consider adding StringBuilder.AppendEncoded(Encoding encoding, byte* bytes, int byteCount) In general Encoding APIs don't compose well with other fundamental APIs without allocating temporary blobs/strings in between. +2103 area-System.Globalization How should we handle default data for Globalization tests? "In .NET Core, a large portion of the implementation of our globalization code is built on-top of OS primitives. which we don't control. Globalization data changes frequently and updates to the data can break unit tests. Some examples of changes we've had problems with in the past: 1. Collation data changing across releases and platforms, causing sorting tests to break. 2. Locale data changing (e.g a locale adopts a new currency symbol) causing test breaks. 3. Casing data changes, breaking ToUpper/ToLower tests. 4. Different platforms supporting different version of IDNA. In our internal tests, we've taken a few approaches to solving these problems: 1. Implementing another set of (hopefully lightweight) P/Invokes on-top of OS Functions and using them to generate the expected data at runtime. 2. Disabling specific tests (by hand) on specific platforms or changing the expected data for a specific platform via a runtime test. 3. Encoding metadata about the version of Unicode a platform supports and the version a test requires and skipping tests if they don't match. As I start to open source more of our collation tests, I'm running into problems where we depend on support libraries that implement the OS behavior from (1). It's not clear to me that adopting this is the right long term approach. There's a bunch of platform specific code in these support libraries which will also have to be brought cross platform. The library also contains a fair amount of logic itself. My general preference would be to do something like the following: 1. Use XUnit data driven tests (i.e. `[Theory]`) to write tests that decouple the implementation of the test from the input data. 2. Using `[MemberData]` control the set of inputs that flow to each test based on runtime platform detection. For example, consider something like the following: ``` csharp [Theory] [MemberData(""CompareToData"")] public static void CompareTo(string localeName, string left, string right, int expected, CompareOptions options) { CompareInfo ci = CompareInfo.GetCompareInfo(localeName); int result = ci.Compare(left, right, options); Assert.Equal(expected, Math.Sign(result)); } public static IEnumerable CompareToData { get { yield return new object[] { """", ""Works Everywhere"", ""WORKS EVERYWHERE"", 0, CompareOptions.IgnoreCase }; if (PlatformDetection.IsWindows) { yield return /* ... some set of data that only works on Windows ... */; } } } ``` Will will also need the ability to run certain cases on a specific version of Windows (since behavior changes between versions) or a specific version of ICU. However, I would expect the general shape of the tests would remain the same (`[Theory]`'s + `[MemberData]`'s) and the only thing that would differ would be the filtering we use when deciding if we include a test case in the MemberData. I think there are two downsides with this approach: 1. Bringing a new version of an existing platform online is more expensive. Since we no longer call to the OS to get our oracle data, we will need to investigate test failures to understand if there are product bugs or simply changes in OS algorithms. 2. `[Theory]` is slower than simply having a ton of a `Assert`'s for different cases (or doing a loop) in one `[Fact]`. The major slowdown was in test discovery. As an experiment (and to ease some debugging for some work I was doing), I ported the [NormalizationAll](https://github.com/dotnet/corefx/blob/master/src/System.Globalization.Extensions/tests/Normalization/NormalizationAll.cs) test to use `[Theory]` and the test which used complete very quickly now take about a minute to run (There are 72K test cases, XUnit reports that it took 10.6 seconds to execute the tests (compared to 1.5 when using a loop), but that didn't count the ~50 seconds to discover the tests). It also appears that much of this time is spent even if the tests would not be run (e.g due to `[ActiveIssue]` or `[OuterLoop]`). Ideally this could be fixed, but I am not sure, naively it feels weird that you pay an order of magnitude penalty in test execution because of Theory, but I have not dug into the internals of xUnit. The mitigation here is to not use [Theory] when doing so would generate tons of cases, I guess, and just do a loop ourselves (ideally still over something like a member data API). I'm not sure if these are dealbreakers or not. (2) seems bad, but is a general problem for us adopting Theory for large data-sets, which seems to be a a problem for more than just globalization. I also really hope that we can adopt something like this, since it makes reporting for data driven tests so much nicer. I'm interested in what @stephentoub and @tarekgh think here. Does the pain of OS Data updates make the OS Wrapper library the right approach, even if it brings in a lot of extra code and causes a another large amount of work when we bring up a new platform? Is the fixed data + filtering approach a better long term direction? Do we need both for some reason? " +2106 area-System.Security Proposal: Add Ed25519 and Curve25519 Algorithms to System.Security.Cryptography The System.Security.Cryptography namespace contains several commonly used cryptographic algorithms. I propose the addition of two commonly used algorithms which are currently missing: - **Ed25519** is an implementation of an _Edwards-curve Digital Signature Algorithm_. - **Curve25519** is an algorithm designed to be used with _elliptic curve Diffie-Hellman (ECDH) key exchange algorithm_. Both are based on the same elliptic curve. Many open source projects (e.g. OpenSSH, OpenBSD) seem to prefer this elliptic curve for use in elliptic curve cryptography (ECC). It is therefore beneficial to have these algorithms implemented in CoreFX. The two algorithms should be included in the existing classes in the `System.Security.Cryptography` namespace, but it must be possible to explicitly ask for the usage of these algorithms. +2108 area-Meta Where should ref docs and associated samples be stored? Ideally, they would live in the code repo. Thoughts? For clarity, ref docs augment the metadata and /// comments already available in the repo/builds. Many topics won't have ref topics. @blackdwarf, @danroth27 In reference to #2107 +2109 area-System.Reflection Add System.Reflection.Metadata.Test.Desktop, which targets FX 4.6 and Xunit 1.9.2 This makes it possible to run and debug tests in VS. Caveats: can't use Theory attribute since it's not available in Xunit 1.9.2 +2110 area-System.Reflection TD.NET doesn't work well with shared projects, replacing with manual sharing +2114 area-System.Linq Enumerable.SequenceEqual takes IEqualityComparer rather than a predicate Why does [Enumerable.SequenceEqual](http://msdn.microsoft.com/en-us/library/vstudio/bb342073.aspx) take its comparer as an [IEqualityComparer](http://msdn.microsoft.com/en-us/library/vstudio/ms132151.aspx)? The algorithm seems to make no use of [GetHashCode](http://msdn.microsoft.com/en-us/library/vstudio/ms132155.aspx). Why does it not instead take a `Func` predicate, similar to how [First](http://msdn.microsoft.com/en-us/library/vstudio/bb535050.aspx) takes a `Func`? +2119 area-System.Runtime Make all structs that claim to be thread-safe dereference `this` at most once per entrypoint `ImmutableArray` goes to great lengths to be thread-safe by [never dereferencing `this` more than once per public entrypoint](https://github.com/dotnet/corefx/blob/1dc118cc46f88e4889a23190b450d89e565967fd/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray%601.cs#L18-L33) (to fix bug #191). Other structs in the Framework do _not_ take this care (such as `DateTime`, `Nullable`, or `System.Int32`), despite [claiming to be thread-safe in MSDN documentation](https://msdn.microsoft.com/en-us/library/System.DateTime%28v=vs.110%29.aspx). Should we take the same care for the other structs? The community [has been fascinated](http://stackoverflow.com/questions/30957211/what-advantage-is-there-to-storing-this-in-a-local-variable-in-a-struct-method/30957262) by the pattern in `ImmutableArray` and brought up that it might make sense to spread it around more. +2121 area-System.Reflection Implements fast document name comparison, parsing, and general case-insensitive string comparison +2124 area-Infrastructure We need a way to run tests on different runtime We need a way to choose between different platforms when running tests. Example proposition: ``` build /p:TestProduct=Desktop ``` +2127 area-System.Collections Consider adding KeyValuePair type with a factory method For better or worse KeyValuePair is frequently used structure to represent a pair (mostly due to the lack of struct tuples). It is currently inconvenient to create these pairs as one needs to specify type arguments to the constructor. A simple factory method would make it more succinct since the C# and VB compilers can usually infer the generic arguments: ``` C# public static class KeyValuePair { public static KeyValuePair Create(K key, V value) { return new KeyValuePair(key, value); } } ``` this pattern is already used by ImmutableArray. +2129 area-Serialization Fix Jit assert failure in struct serialization tests due to missing cast This change fixes 3 struct serialization test Jit assert failures due to missing cast in IL generated code. cc: @zhenlan @SGuyGe @shmao +2135 area-Infrastructure Reenable build multithreading once dnx issues are fixed Once dnx concurrency issues are fixed, reenable project multithreading. Currently disabled in CI using /p:SerializeProjects=false. +2139 area-System.Net Merge changes from TFS +2146 area-System.Linq Add commonly required Enumerable methods (DistinctBy, ExceptBy, AsChunked, ...) We have Distinct, Except, Intersect, Union, etc. Often it is required, though, to base the set operation on some key. OrderBy can do that for example. I request that the following methods be added: - DistinctBy (pick the first element deterministically for each key) - ExceptBy (return all items of the first sequence that do not have a matching key in the second) - IntersectBy (return the first item in a.Concat(b) for each unique key where the key appears in both collections) - UnionBy (return the first item in a.Concat(b) for each unique key) - MaxBy/MinBy The set operations need to deal with duplicate keys in a sensible way. I have added to that list my idea for how to do that in sane and well-defined way.
Another commonly required helper method is one that splits a sequence into chunks of a fixed size: ``` static IEnumerable> AsChunked(this IEnumerable sequence, int chunkSize) ``` This is useful for many things, for example: - Split a list into pages - Make AsParallel operate on coarser items by feeding it chunks - If you want to save a huge stream of items to files you can use this to split the sequence into one chunk per file - Request rows from the database in chunks of 1000 IDs This requirement comes up on Stack Overflow a lot and there is no built-in way to do it. The chunks should be drawn lazily. In fact the items of each chunk should be lazy as well. This allows for very big chunks such as 1 billion items per chunk. Maybe we need two variants: 1. `IEnumerable> AsChunkedLazy` 2. `IEnumerable AsChunkedEager` The second one would be easier to handle for consumers. The first one requires more disciplined use because each chunk must be enumerated at most once and the chunks must be enumerated in order. This is required for an efficient streaming operation. +2149 area-System.Net Initial open source WinHttpHandler This is the initial open sourcing of the System.Net.Http.WinHttpHandler package. This commit also includes a fully buildable System.Net.Http.dll binary as well as System.Net.Http.WinHttpHandler.dll binary. Unit tests are included as well. There is a skeleton file for beginning cross-platform work on System.Net.Http. +2150 area-Infrastructure Unit tests on Windows run on 32-bit CoreCLR We are using a 32bit coreclr to run all of our tests when running on windows. This is different from what we do for OSX and Linux (where we use the 64 bit version of the runtime built from [dotnet/coreclr](https://github.com/dotnet/coreclr)). I believe because of this we also don't get coverage on any of the RyuJIT specific optimizations around Vectors as part of our unit tests. I think it would be ideal if we also ran tests on a 64 bit runtime and it corresponded to some LKG build from [dotnet/coreclr](https://github.com/dotnet/coreclr). /cc @stephentoub +2151 area-System.Reflection Fix incorrect MethodSpec signature header check There was some confusion in untested code around ELEMENTTYPE_GENERICINST vs. CALLCONV_GENERICINST cc @tmat +2152 area-System.Xml [Perf] Fix XmlDocument/XPath to properly compare strings by ref "XmlDocument/XPath when comparing namespaces it uses fixed string object (from private class defined in XmlConst.cs). During the split of System.Xml.dll to smaller libraries (XmlDocument, ReaderWriter, XPath, XPath.XmlDocument) we introduced shared XmlConst.cs file for those constants and thus different references for those strings. To optimize implementation is comparing built-in namespaces by reference and thus in some cases it doesn't work properly and causes some undefined behavior. The cases which were breaking tests were already fixed although there are some other broken scenarios which got introduced when running product on Desktop (runtime). Steps: - [x] Workaround to not compare by ref (one line change in Ref.cs) to unblock Desktop ASAP (we are gonna lose some perf but correctness is more important than perf) - https://github.com/dotnet/corefx/pull/2154 - [ ] Make sure there is only one copy of string constants in one of the libraries (ReaderWriter or XmlDocument) and other libraries should get the valid and needed references to string some other way (i.e. through XmlDoc's NameTable or exposing something new in the contract if NameTable is too slow or not possible) - [ ] Re-enable comparison by ref and validate it is passing when running on Desktop runtime (on Win 10) and coreclr **Except for the first checkbox it is up for grabs** Please revert Ref.cs to its original form with the last checkbox: ``` csharp public static bool Equal(string strA, string strB) { #if DEBUG if (((object)strA != (object)strB) && string.Equals(strA, strB)) System.Diagnostics.Debug.Fail(""Ref.Equal: Object comparison used for non-atomized string '"" + strA + ""'""); #endif return (object)strA == (object)strB; } ``` " +2153 area-System.Net Eliminate closure allocations in System.Net.Http +2155 area-System.Net System.Net.Http.dll should throw NotImplementedException instead of DllNotFoundException When sending HTTP request with HttpClient on CoreCLR + *nix, the following exception is thrown: ``` Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'winhttp.dll': Error 126 (Exception from HRESULT: 0x8007007E) at System.Net.Http.Interop.WinHttpSetStatusCallback(SafeInternetHandle handle, WINHTTP_STATUS_CALLBACK callback, UInt32 notificationFlags, IntPtr reserved) at System.Net.Http.WinHttpHandler.SetStatusCallback(SafeInternetHandle requestHandle, WINHTTP_STATUS_CALLBACK callback) at System.Net.Http.WinHttpHandler.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.AsyncMethodBuilderCore.b__4(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() libc++abi.dylib: terminating with uncaught exception of type PAL_SEHException Abort trap: 6 ``` It is better to use a more friendly exception. +2159 area-System.Linq Overridden ToString not being called (IOrderedQueryable) I have a class which implements `IOrderedQueryable`. With DNX 4, I can print out my LINQ queries as described in [this LINQ provider tutorial](http://blogs.msdn.com/b/mattwar/archive/2007/07/31/linq-building-an-iqueryable-provider-part-ii.aspx) (i.e. `Console.WriteLine(ExampleQueryable.Where(x => ...))` should call the overridden `ToString()` on my class implementing `IOrderedQueryable`). It works fine in DNX 4, but with DNX Core, it skips my overridden `ToString()` completely (I tested this by placing a breakpoint), and instead seems to be calling `ToString()` on `System.Object`. +2165 area-System.Net Follow-up feedback/action items for WinHttpHandler This issue is capturing feedback from the PR which copied the sources of WinHttpHandler into GitHub. https://github.com/dotnet/corefx/pull/2149 While most of the original feedback was addressed in the PR, some feedback action items are deferred and are being tracked in this issue. - [x] Review use of SafeWinHttpHandle. Check for leaks etc. - Tracking with #2501 - [x] Review TODO's in code. - Done. All TODO's have separate issues. - [x] Consolidate use of Safe*Handle code especially SafeHandleZeroOrMinusOneIsInvalid classes - Tracking with #2501 - [x] Optimize error handling around chain.Build(). - Done #4910 - [x] Optimize closures in Task related lambdas - Done #3867 - [x] Optimize use of TaskCompletionSource regarding `RequestState` - Done #3867 - [x] Propagate `CancellationToken` in calls to `TrySetCanceled` Fixed w/ #2608 - [x] Pass `CancellationToken` to `CopyToAsync` - Considered but `HttpContent.CopyToAsync` does not have an overload that takes a `CancellationToken`. - [x] Consider moving `HRESULT_FROM_WIN32` method to Common/Interop folder. - Done #2511 - [x] Consider change DLL import signature of `GetModuleHandle` to return `SafeHandle` or use `GetModuleEx` with `GET_MODULE_HANDLE_EX_FLAG_PIN` or `GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT` - Considered but there are no race conditions since the 'winhttp.dll' is always loaded during the use of the WinHttpHandler class. - [x] Add UnitTests to test fix with proxy authentication and redirection for PR #2463 - [x] Move duplicate code in WinHttpCertificateHelper.cs and merge with similar code used in System.Net.Security - Tracked in #14542. - [x] Optimize auth scheme lookups in WinHttpAuthHelper.cs - WON'T FIX. - [x] Register callback on cancellation token to cancel WinHTTP operation for WinHttpRequestStream, WinHttpResponseStream - Issue #8627 for WinHttpResponseStream - [x] Add logging for failures in classes such as WinHttpResponseParser, WinHttpResponseStream - Tracked in #7856. - [x] Consider refactoring cache logic from WinHttpAuthHelper into separate class and avoid out parameters - WON'T FIX. - [x] Optimize algorithm used in scanning client certificate list in WinHttpCertificateHelper - WON'T FIX. - [x] Refactor cookie handling from WinHttpHandler into separate class. - Done #5001 +2167 area-System.Collections Add ImmutableArray.Builder.Sort(Comparison comparison) List has an overload of Sort that takes a delegate. It's useful when writing an inline comparer using a lambda: ``` C# list.Sort((x, y) => ); ``` +2168 area-System.Net Sporadic wrong response from HttpClient.SendAsync() when using an authenticated proxy "@davidsh Repro steps: 1. Fiddler Web Debugger -> Rules -> Require Proxy Authentication 2. Run the following program and at some point you will see: ![capture](https://cloud.githubusercontent.com/assets/1383883/8366945/bdfdbc32-1b4e-11e5-9a4a-3c336f95fe52.PNG) Looks like you get `407 (Proxy Auth Required)` sporadically even you always provide correct credentials for the proxy. Can only repro with CoreCLR. ``` c# using System; using System.Net; using System.Net.Http; using System.Threading.Tasks; using System.Collections.Generic; namespace ConsoleApp3 { public class Program { public void Main(string[] args) { var webProxy = new WebProxy(""http://localhost:8888""); webProxy.Credentials = new NetworkCredential(""1"", ""1""); var handler = new HttpClientHandler { Proxy = webProxy, UseProxy = true }; var client = new HttpClient(handler); var tasks = new List(); foreach (var uri in URIs.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)) { tasks.Add(SendRequest(client, uri)); } Task.WhenAll(tasks).Wait(); Console.WriteLine(""Done""); } private async Task SendRequest(HttpClient client, string uri) { Console.WriteLine($""GET {uri}""); var request = new HttpRequestMessage(HttpMethod.Get, uri); using (var response = await client.SendAsync(request)) { Console.WriteLine($""{response.StatusCode} response from {uri}""); response.EnsureSuccessStatusCode(); } } private class WebProxy : IWebProxy { private readonly Uri _uri; public WebProxy(string uri) { _uri = new Uri(uri); } public ICredentials Credentials { get; set; } public Uri GetProxy(Uri destination) { return _uri; } public bool IsBypassed(Uri host) { return host.IsLoopback; } } private const string URIs = @"" https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='EntityFramework.SqlServer' https://www.nuget.org/api/v2/FindPackagesById()?id='EntityFramework.SqlServer' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='EntityFramework.SqlServer' https://nuget.org/api/v2/FindPackagesById()?id='EntityFramework.SqlServer' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='EntityFramework.SqlServer' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='EntityFramework.InMemory' https://www.nuget.org/api/v2/FindPackagesById()?id='EntityFramework.InMemory' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='EntityFramework.InMemory' https://nuget.org/api/v2/FindPackagesById()?id='EntityFramework.InMemory' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='EntityFramework.InMemory' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Kestrel' https://www.nuget.org/api/v2/FindPackagesById()?id='Kestrel' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Kestrel' https://nuget.org/api/v2/FindPackagesById()?id='Kestrel' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Kestrel' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Cookies' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Cookies' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Cookies' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Cookies' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Authentication.Cookies' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Facebook' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Facebook' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Facebook' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Facebook' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Authentication.Facebook' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Google' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Google' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Google' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Google' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Authentication.Google' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.MicrosoftAccount' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.MicrosoftAccount' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.MicrosoftAccount' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.MicrosoftAccount' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Authentication.MicrosoftAccount' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.OpenIdConnect' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.OpenIdConnect' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.OpenIdConnect' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.OpenIdConnect' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Authentication.OpenIdConnect' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Twitter' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Twitter' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Twitter' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.Twitter' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Authentication.Twitter' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Diagnostics' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics.Entity' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics.Entity' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics.Entity' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics.Entity' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Diagnostics.Entity' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Identity.EntityFramework' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Identity.EntityFramework' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Identity.EntityFramework' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Identity.EntityFramework' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Identity.EntityFramework' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Mvc' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.TagHelpers' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.TagHelpers' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.TagHelpers' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.TagHelpers' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Mvc.TagHelpers' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.IIS' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.IIS' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.IIS' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.IIS' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Server.IIS' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.WebListener' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.WebListener' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.WebListener' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.WebListener' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Server.WebListener' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Session' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Session' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Session' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Session' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Session' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.SignalR.Server' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.SignalR.Server' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.SignalR.Server' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.SignalR.Server' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.SignalR.Server' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.StaticFiles' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.StaticFiles' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.StaticFiles' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.StaticFiles' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.StaticFiles' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Tooling.Razor' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Tooling.Razor' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Tooling.Razor' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Tooling.Razor' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Tooling.Razor' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGenerators.Mvc' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGenerators.Mvc' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGenerators.Mvc' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGenerators.Mvc' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.CodeGenerators.Mvc' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.CommandLine' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.CommandLine' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.CommandLine' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.CommandLine' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.Configuration.CommandLine' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.EnvironmentVariables' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.EnvironmentVariables' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.EnvironmentVariables' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.EnvironmentVariables' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.Configuration.EnvironmentVariables' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.Json' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.Json' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.Json' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.Json' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.Configuration.Json' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Logging.Console' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Logging.Console' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Logging.Console' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Logging.Console' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.Logging.Console' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.IIS' https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Authentication.Facebook/1.0.0-beta6-12600 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Authentication.Google/1.0.0-beta6-12600 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Authentication.OpenIdConnect/1.0.0-beta6-12600 https://www.myget.org/F/aspnetvnext/api/v2/package/Kestrel/1.0.0-beta6-11901 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Authentication.Twitter/1.0.0-beta6-12600 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Authentication.MicrosoftAccount/1.0.0-beta6-12600 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Diagnostics.Entity/7.0.0-beta6-13321 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Identity.EntityFramework/3.0.0-beta6-12644 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Mvc/6.0.0-beta6-14192 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Mvc.TagHelpers/6.0.0-beta6-14192 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Server.WebListener/1.0.0-beta6-12361 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.Framework.Configuration.CommandLine/1.0.0-beta6-11520 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.Framework.Configuration.EnvironmentVariables/1.0.0-beta6-11520 https://www.myget.org/F/aspnetvnext/api/v2/package/EntityFramework.SqlServer/7.0.0-beta6-13586 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.Framework.Configuration.Json/1.0.0-beta6-11520 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Authentication.Cookies/1.0.0-beta6-12600 https://www.myget.org/F/aspnetvnext/api/v2/package/EntityFramework.InMemory/7.0.0-beta6-13586 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Diagnostics/1.0.0-beta6-13321 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.Framework.Logging.Console/1.0.0-beta6-11516 https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Hosting' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Hosting' https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.Framework.CodeGenerators.Mvc/1.0.0-beta6-12480 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Session/1.0.0-beta6-10599 https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Hosting' https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.SignalR.Server/3.0.0-beta6-12626 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Tooling.Razor/1.0.0-beta6-13550 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.StaticFiles/1.0.0-beta6-12110 https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Hosting' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Hosting' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.OAuth' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.OAuth' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.OAuth' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication.OAuth' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Authentication.OAuth' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='EntityFramework.Relational' https://www.nuget.org/api/v2/FindPackagesById()?id='EntityFramework.Relational' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='EntityFramework.Relational' https://nuget.org/api/v2/FindPackagesById()?id='EntityFramework.Relational' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='EntityFramework.Relational' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.Kestrel' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.Kestrel' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.Kestrel' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.Kestrel' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Server.Kestrel' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Newtonsoft.Json' https://www.nuget.org/api/v2/FindPackagesById()?id='Newtonsoft.Json' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Newtonsoft.Json' https://nuget.org/api/v2/FindPackagesById()?id='Newtonsoft.Json' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Newtonsoft.Json' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Threading' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Threading' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Threading' https://nuget.org/api/v2/FindPackagesById()?id='System.Threading' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Threading' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authorization' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authorization' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authorization' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authorization' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Authorization' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.Configuration' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Dynamic.Runtime' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Dynamic.Runtime' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Dynamic.Runtime' https://nuget.org/api/v2/FindPackagesById()?id='System.Dynamic.Runtime' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Dynamic.Runtime' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Authentication' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Authentication' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Identity' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Identity' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Identity' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Identity' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Identity' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.ObjectModel' https://www.nuget.org/api/v2/FindPackagesById()?id='System.ObjectModel' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.ObjectModel' https://nuget.org/api/v2/FindPackagesById()?id='System.ObjectModel' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.ObjectModel' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Cors.Core' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Cors.Core' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Cors.Core' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Cors.Core' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Cors.Core' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Cryptography.Hashing.Algorithms' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Security.Cryptography.Hashing.Algorithms' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Cryptography.Hashing.Algorithms' https://nuget.org/api/v2/FindPackagesById()?id='System.Security.Cryptography.Hashing.Algorithms' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Security.Cryptography.Hashing.Algorithms' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.IdentityModel.Protocol.Extensions' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.IdentityModel.Protocol.Extensions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.IdentityModel.Protocol.Extensions' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.IdentityModel.Protocol.Extensions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.IdentityModel.Protocol.Extensions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Runtime' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Runtime' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Runtime' https://nuget.org/api/v2/FindPackagesById()?id='System.Runtime' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Runtime' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Net.Http.Headers' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Net.Http.Headers' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Net.Http.Headers' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Net.Http.Headers' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Net.Http.Headers' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.ApiExplorer' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.ApiExplorer' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.ApiExplorer' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.ApiExplorer' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Mvc.ApiExplorer' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Net.Http.Server' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Net.Http.Server' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Net.Http.Server' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Net.Http.Server' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Net.Http.Server' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.Extensions' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.Extensions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.Extensions' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.Extensions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Mvc.Extensions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.Razor' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.Razor' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.Razor' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.Razor' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Mvc.Razor' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Caching.Memory' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Caching.Memory' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Caching.Memory' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Caching.Memory' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.Caching.Memory' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Net.Http.WinHttpHandler' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Net.Http.WinHttpHandler' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Net.Http.WinHttpHandler' https://nuget.org/api/v2/FindPackagesById()?id='System.Net.Http.WinHttpHandler' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Net.Http.WinHttpHandler' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.DependencyInjection' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.DependencyInjection' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.DependencyInjection' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.DependencyInjection' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.DependencyInjection' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Collections' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Collections' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Collections' https://nuget.org/api/v2/FindPackagesById()?id='System.Collections' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Collections' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Collections.Specialized' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Collections.Specialized' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Collections.Specialized' https://nuget.org/api/v2/FindPackagesById()?id='System.Collections.Specialized' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Collections.Specialized' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.ComponentModel' https://www.nuget.org/api/v2/FindPackagesById()?id='System.ComponentModel' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.ComponentModel' https://nuget.org/api/v2/FindPackagesById()?id='System.ComponentModel' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.ComponentModel' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Claims' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Security.Claims' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Claims' https://nuget.org/api/v2/FindPackagesById()?id='System.Security.Claims' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Security.Claims' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.ComponentModel.TypeConverter' https://www.nuget.org/api/v2/FindPackagesById()?id='System.ComponentModel.TypeConverter' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.ComponentModel.TypeConverter' https://nuget.org/api/v2/FindPackagesById()?id='System.ComponentModel.TypeConverter' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.ComponentModel.TypeConverter' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Diagnostics.Debug' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Diagnostics.Debug' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Diagnostics.Debug' https://nuget.org/api/v2/FindPackagesById()?id='System.Diagnostics.Debug' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Diagnostics.Debug' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Diagnostics.Tools' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Diagnostics.Tools' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Diagnostics.Tools' https://nuget.org/api/v2/FindPackagesById()?id='System.Diagnostics.Tools' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Diagnostics.Tools' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Globalization' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Globalization' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Globalization' https://nuget.org/api/v2/FindPackagesById()?id='System.Globalization' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Globalization' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Linq' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Linq' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Linq' https://nuget.org/api/v2/FindPackagesById()?id='System.Linq' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Linq' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Linq.Expressions' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Linq.Expressions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Linq.Expressions' https://nuget.org/api/v2/FindPackagesById()?id='System.Linq.Expressions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Linq.Expressions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Linq.Queryable' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Linq.Queryable' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Linq.Queryable' https://nuget.org/api/v2/FindPackagesById()?id='System.Linq.Queryable' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Linq.Queryable' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Reflection' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Reflection' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Reflection' https://nuget.org/api/v2/FindPackagesById()?id='System.Reflection' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Reflection' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.FileSystemGlobbing' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.FileSystemGlobbing' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.FileSystemGlobbing' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.FileSystemGlobbing' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.FileSystemGlobbing' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Resources.ResourceManager' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Resources.ResourceManager' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Resources.ResourceManager' https://nuget.org/api/v2/FindPackagesById()?id='System.Resources.ResourceManager' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Resources.ResourceManager' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Runtime.Extensions' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Runtime.Extensions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Runtime.Extensions' https://nuget.org/api/v2/FindPackagesById()?id='System.Runtime.Extensions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Runtime.Extensions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Principal' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Security.Principal' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Principal' https://nuget.org/api/v2/FindPackagesById()?id='System.Security.Principal' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Security.Principal' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Http.Abstractions' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Http.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Http.Abstractions' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Http.Abstractions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Http.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Caching.Abstractions' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Caching.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Caching.Abstractions' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Caching.Abstractions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.Caching.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Text.Encoding' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Text.Encoding' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Text.Encoding' https://nuget.org/api/v2/FindPackagesById()?id='System.Text.Encoding' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Text.Encoding' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Logging.Abstractions' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Logging.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Logging.Abstractions' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Logging.Abstractions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.Logging.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.OptionsModel' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.OptionsModel' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.OptionsModel' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.OptionsModel' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.OptionsModel' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Threading.Tasks' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Threading.Tasks' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Threading.Tasks' https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Server.IIS/1.0.0-beta6-11976 https://nuget.org/api/v2/FindPackagesById()?id='System.Threading.Tasks' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Threading.Tasks' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Http.Extensions' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Http.Extensions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Http.Extensions' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Http.Extensions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Http.Extensions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Data.SqlClient' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Data.SqlClient' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Data.SqlClient' https://nuget.org/api/v2/FindPackagesById()?id='System.Data.SqlClient' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Data.SqlClient' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Text.Encoding.CodePages' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Text.Encoding.CodePages' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Text.Encoding.CodePages' https://nuget.org/api/v2/FindPackagesById()?id='System.Text.Encoding.CodePages' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Text.Encoding.CodePages' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='EntityFramework.Core' https://www.nuget.org/api/v2/FindPackagesById()?id='EntityFramework.Core' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='EntityFramework.Core' https://nuget.org/api/v2/FindPackagesById()?id='EntityFramework.Core' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='EntityFramework.Core' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.FileProviders.Abstractions' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.FileProviders.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.FileProviders.Abstractions' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.FileProviders.Abstractions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.FileProviders.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Razor.Runtime' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Razor.Runtime' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Razor.Runtime' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Razor.Runtime' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Razor.Runtime' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics.Abstractions' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics.Abstractions' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics.Abstractions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Diagnostics.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Hosting.Abstractions' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Hosting.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Hosting.Abstractions' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Hosting.Abstractions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Hosting.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Threading.Thread' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Threading.Thread' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Threading.Thread' https://nuget.org/api/v2/FindPackagesById()?id='System.Threading.Thread' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Threading.Thread' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Cryptography.RandomNumberGenerator' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Security.Cryptography.RandomNumberGenerator' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Cryptography.RandomNumberGenerator' https://nuget.org/api/v2/FindPackagesById()?id='System.Security.Cryptography.RandomNumberGenerator' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Security.Cryptography.RandomNumberGenerator' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.WebEncoders' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.WebEncoders' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.WebEncoders' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.WebEncoders' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.WebEncoders' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.SignalR.Messaging' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.SignalR.Messaging' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.SignalR.Messaging' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.SignalR.Messaging' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.SignalR.Messaging' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.DataProtection' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.DataProtection' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.DataProtection' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.DataProtection' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.DataProtection' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Console' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Console' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Console' https://nuget.org/api/v2/FindPackagesById()?id='System.Console' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Console' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.IO' https://www.nuget.org/api/v2/FindPackagesById()?id='System.IO' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.IO' https://nuget.org/api/v2/FindPackagesById()?id='System.IO' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.IO' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.WebUtilities' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.WebUtilities' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.WebUtilities' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.WebUtilities' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.WebUtilities' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Logging' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Logging' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Logging' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Logging' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.Logging' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.WebEncoders.Core' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.WebEncoders.Core' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.WebEncoders.Core' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.WebEncoders.Core' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.WebEncoders.Core' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Runtime.Abstractions' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Runtime.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Runtime.Abstractions' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Runtime.Abstractions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.Runtime.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.CSharp' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.CSharp' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.CSharp' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.CSharp' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.CSharp' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Collections.Concurrent' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Collections.Concurrent' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Collections.Concurrent' https://nuget.org/api/v2/FindPackagesById()?id='System.Collections.Concurrent' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Collections.Concurrent' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Reflection.Extensions' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Reflection.Extensions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Reflection.Extensions' https://nuget.org/api/v2/FindPackagesById()?id='System.Reflection.Extensions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Reflection.Extensions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Reflection.Emit' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Reflection.Emit' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Reflection.Emit' https://nuget.org/api/v2/FindPackagesById()?id='System.Reflection.Emit' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Reflection.Emit' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Reflection.Emit.ILGeneration' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Reflection.Emit.ILGeneration' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Reflection.Emit.ILGeneration' https://nuget.org/api/v2/FindPackagesById()?id='System.Reflection.Emit.ILGeneration' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Reflection.Emit.ILGeneration' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Reflection.Primitives' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Reflection.Primitives' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Reflection.Primitives' https://nuget.org/api/v2/FindPackagesById()?id='System.Reflection.Primitives' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Reflection.Primitives' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Threading.ThreadPool' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Threading.ThreadPool' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Threading.ThreadPool' https://nuget.org/api/v2/FindPackagesById()?id='System.Threading.ThreadPool' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Threading.ThreadPool' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Threading.Timer' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Threading.Timer' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Threading.Timer' https://nuget.org/api/v2/FindPackagesById()?id='System.Threading.Timer' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Threading.Timer' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Loader.IIS.Interop' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Loader.IIS.Interop' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Loader.IIS.Interop' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Loader.IIS.Interop' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Loader.IIS.Interop' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Loader.IIS' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Loader.IIS' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Loader.IIS' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Loader.IIS' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Loader.IIS' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGeneration' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGeneration' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGeneration' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGeneration' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.CodeGeneration' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGeneration.EntityFramework' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGeneration.EntityFramework' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGeneration.EntityFramework' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGeneration.EntityFramework' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.CodeGeneration.EntityFramework' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGeneration.Templating' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGeneration.Templating' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGeneration.Templating' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.CodeGeneration.Templating' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.CodeGeneration.Templating' https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.Framework.FileSystemGlobbing/1.0.0-beta6-11549 https://www.myget.org/F/aspnetvnext/api/v2/package/System.Net.Http.WinHttpHandler/4.0.0-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Authentication.OAuth/1.0.0-beta6-12600 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.Framework.Configuration/1.0.0-beta6-11520 https://www.myget.org/F/aspnetvnext/api/v2/package/System.Collections.Specialized/4.0.0-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.SignalR.Messaging/3.0.0-beta6-12626 https://www.myget.org/F/aspnetvnext/api/v2/package/System.Security.Claims/4.0.0-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/package/System.Threading.Tasks/4.0.10-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/package/System.Security.Cryptography.Hashing.Algorithms/4.0.0-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/package/System.ObjectModel/4.0.10-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/package/System.Threading/4.0.10-beta-23021 http://www.myget.org/F/azureadwebstacknightly/api/v2/package/Newtonsoft.Json/6.0.6 https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Runtime.Handles' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Runtime.Handles' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Runtime.Handles' https://nuget.org/api/v2/FindPackagesById()?id='System.Runtime.Handles' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Runtime.Handles' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.Abstractions' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.Abstractions' https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Configuration.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/package/System.Threading.Thread/4.0.0-beta-23021 http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Framework.Configuration.Abstractions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Cryptography.X509Certificates' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Security.Cryptography.X509Certificates' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Cryptography.X509Certificates' https://nuget.org/api/v2/FindPackagesById()?id='System.Security.Cryptography.X509Certificates' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Security.Cryptography.X509Certificates' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Win32.Primitives' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Win32.Primitives' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Win32.Primitives' https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Loader.IIS/1.0.0-beta6-11976 https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.Win32.Primitives' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.Win32.Primitives' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.IO.FileSystem' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById?id='Microsoft.Framework.DependencyInjection'&$skiptoken='Microsoft.Framework.DependencyInjection','1.0.0-beta6-11513' https://www.nuget.org/api/v2/FindPackagesById()?id='System.IO.FileSystem' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.IO.FileSystem' https://nuget.org/api/v2/FindPackagesById()?id='System.IO.FileSystem' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.IO.FileSystem' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Net.Http' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Net.Http' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Net.Http' https://nuget.org/api/v2/FindPackagesById()?id='System.Net.Http' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Net.Http' https://www.myget.org/F/aspnetvnext/api/v2/package/System.Threading.Tasks/4.0.0-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/package/System.Threading/4.0.0-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.IO.Compression' https://www.nuget.org/api/v2/FindPackagesById()?id='System.IO.Compression' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.IO.Compression' https://nuget.org/api/v2/FindPackagesById()?id='System.IO.Compression' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.IO.Compression' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Runtime.InteropServices' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Runtime.InteropServices' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Runtime.InteropServices' https://nuget.org/api/v2/FindPackagesById()?id='System.Runtime.InteropServices' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Runtime.InteropServices' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Net.Primitives' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Net.Primitives' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Net.Primitives' https://nuget.org/api/v2/FindPackagesById()?id='System.Net.Primitives' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Net.Primitives' https://www.myget.org/F/aspnetvnext/api/v2/package/System.Reflection.Extensions/4.0.0-beta-23021 http://www.myget.org/F/azureadwebstacknightly/api/v2/package/Newtonsoft.Json/6.0.6 https://www.myget.org/F/aspnetvnext/api/v2/package/System.Security.Cryptography.RandomNumberGenerator/4.0.0-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/package/EntityFramework.Core/7.0.0-beta6-13586 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.AspNet.Razor.Runtime/4.0.0-beta6-11615 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.Framework.CodeGeneration.Templating/1.0.0-beta6-12480 https://www.myget.org/F/aspnetvnext/api/v2/package/System.Threading.Timer/4.0.0-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Cryptography.Encryption' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Security.Cryptography.Encryption' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Cryptography.Encryption' https://nuget.org/api/v2/FindPackagesById()?id='System.Security.Cryptography.Encryption' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Security.Cryptography.Encryption' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Cryptography.Hashing' https://www.nuget.org/api/v2/FindPackagesById()?id='System.Security.Cryptography.Hashing' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Security.Cryptography.Hashing' https://nuget.org/api/v2/FindPackagesById()?id='System.Security.Cryptography.Hashing' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Security.Cryptography.Hashing' https://www.myget.org/F/aspnetvnext/api/v2/package/System.IO/4.0.10-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/package/System.IO/4.0.0-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.Framework.WebEncoders/1.0.0-beta6-11657 http://www.myget.org/F/azureadwebstacknightly/api/v2/package/Newtonsoft.Json/6.0.6 https://www.myget.org/F/aspnetvnext/api/v2/package/System.Runtime/4.0.20-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/package/System.Runtime/4.0.0-beta-23021 https://www.myget.org/F/aspnetvnext/api/v2/package/Microsoft.Framework.DependencyInjection/1.0.0-beta6-11523 https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Text.Encoding.Extensions' https://www.myget.org/F/aspnetvnext/api/v2/package/System.Console/4.0.0-beta-23021 https://www.nuget.org/api/v2/FindPackagesById()?id='System.Text.Encoding.Extensions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='System.Text.Encoding.Extensions' https://nuget.org/api/v2/FindPackagesById()?id='System.Text.Encoding.Extensions' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='System.Text.Encoding.Extensions' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Razor' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Razor' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.AspNet.Razor' https://www.myget.org/F/aspnetvnext/api/v2/package/System.Text.Encoding.CodePages/4.0.0-beta-23021 https://nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Razor' http://www.myget.org/F/azureadwebstacknightly/FindPackagesById()?id='Microsoft.AspNet.Razor' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Runtime.Roslyn' https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Framework.Runtime.Roslyn' https://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById()?id='Microsoft.Framework.Runtime.Roslyn' ""; } } ``` " +2169 area-Serialization Fix serialization for type which has DataMember with special Name values This issue happens only for DCJS and affecting both NetCore and NetNative, due to missing method from recent merging of DCJS. cc: @SGuyGe @shmao @zhenlan +2171 area-Infrastructure When compiling in TFS, using the ECMA key requires setting before dir.props import Because the TFS build targets sets true, sign.targets won't respect the UseECMAKey property. Additionally, because dir.props sets based on the AssemblyKeyType conditional, AssemblyKeyType needs to be set in the project before importing dir.props. +2174 area-Serialization Deserializing xml on linux coreclr x64 throws System.NotSupportedException "When executing the following code on ubuntu 14.04 using coreclr x64 version 1.0.0-beta6-12120 a System.NotSupportedException is thrown. This works fine on windows with same coreclr version ``` c# public class Program { public class Test3 { public string Title {get;set;} } public void Main(string[] args) { string xml = ""Test 12345""; XmlSerializer serializer = new XmlSerializer(typeof(Test3)); StringReader reader = new StringReader(xml); var value = (Test3)serializer.Deserialize(reader); var title = value.Title; } } ``` the stacktrace: ``` System.InvalidOperationException: There is an error in XML document (0, 0). ---> System.NotSupportedException: Specified method is not supported. at System.Xml.Serialization.XmlSerializerImplementation.get_ReadMethods() at System.Xml.Serialization.TempAssembly.InvokeReader(XmlMapping mapping, XmlReader xmlReader, Object events, String encodingStyle) at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, Object events) --- End of inner exception stack trace --- at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, Object events) at System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader) at SampleApp.Program.Main(String[] args) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.Framework.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider) at Microsoft.Framework.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args) at Microsoft.Framework.ApplicationHost.Program.Main(String[] args) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.Framework.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider) at dnx.host.Bootstrapper.RunAsync(List`1 args, IRuntimeEnvironment env) at dnx.host.RuntimeBootstrapper.ExecuteAsync(String[] args) at dnx.host.RuntimeBootstrapper.Execute(String[] args) System.NotSupportedException: Specified method is not supported. at System.Xml.Serialization.XmlSerializerImplementation.get_ReadMethods() at System.Xml.Serialization.TempAssembly.InvokeReader(XmlMapping mapping, XmlReader xmlReader, Object events, String encodingStyle) at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, Object events) ``` " +2177 area-Serialization Silent Failure: XmlSerializer.Deserialize Method (XmlReader) "I attempted to file this on Connect, but it appears that even though Connect states that it is still accepting issues, it is closed. There is a bug in the current release version (4.5.2) that fails w/o any errors, on the deserialization of a property of a class that is defined as a List. I haven't tried lists of other types, but they are probably affected as well, and this only affects Deserialize, not Serialize. There are 2 classes below, and both serialize properly, in the exact same way. However, the Works class will deserialize properly, while the DoesNotWork class will not. The DoesNotWork class will end up with an Items property that contains a list with zero items, when 1 or more items exist. We discovered this in a property that has code in both the get and set accessors, while all properties that don't have any get or set code work perfectly. ``` C# [Serialize] [XmlRoot(""root"")] public class Works { [XmlElement(""items"")] public List Items { get; set; } } [Serialize] [XmlRoot(""root"")] public class DoesNotWork { private List _items; [XmlElement(""items"")] public List Items { get { return _items; } set { _items = value; } } } ``` " +2189 area-System.Xml Bring XSL-T to CoreFX The [xUnit.net](https://github.com/xunit) unit test framework uses XSL-T to transform its native XML reporting format into other XML (NUnit, xUnit.net v1) formats as well as to generate HTML reports. This strategy works well for desktop runners, but is currently not supported in our [DNX runner](https://github.com/xunit/dnx.xunit) because of the lack of XSL-T support on the platform. This is a [feature request for our DNX runner](https://github.com/xunit/dnx.xunit/issues/42) which we cannot satisfy without some form of XSL-T support. In particular, the code we use today exercises `XslCompiledTransform`: https://github.com/xunit/xunit/tree/05826dcfd3cee97d93ff63201db0296933dd3511/src/xunit.runner.reporters.desktop +2191 area-System.Data Add Sql Impersonation Support SqlClient team needs to add Impersonation support for Project K, but underlying code support does not currently exist. +2192 area-System.Net Update README.md for System.Net.Http.WinHttpHandler Update the README.md for the System.Net.Http.WinHttpHandler library. +2199 area-Meta Review converged configuration APIs ASP.NET has created configuration APIs (TBD: Link). @divega was driving a working group to push these APIs down so that they can become general purpose BCL-ish APIs. We should review the proposal for a converged API set. +2203 area-System.Security Add support for X509 revocation checks on Unix Due to a lack of a stable networking stack, the X509Chain for Unix does not support CRL downloading or OCSP. There are a couple of different parts to be done: - OCSP (Online checks) - CRL fetching (Online checks) - CRL caching (Online/Offline checks) - CRL cache refresh - Using the CRL during chain building +2204 area-System.Security Figure out a strategy for X509VerificationFlags on Unix Because OpenSSL reports back only the first error it finds, the Ignore\* flags can't be used to disregard error codes coming back. Whatever flags cannot be supported should be changed to a PlatformNotSupportedException. +2207 area-System.Security Add support for additional LocalMachine X509Stores on Unix, or throw PlatformNotSupportedException LM\Root, and to a lesser degree LM\CA, are populated from a system directory. The other stores could be put into another path area, if we wanted to support having writable system stores. If writable system stores makes no sense, then other LM* stores should throw a descriptive PlatformNotSupportedException, not a blank NotImplementedException. +2209 area-System.Numerics Support for SSE4 intrinsics by RyuJIT Support for many of the interesting instructions like popcnt (technically SSE4a) could be an interesting addition and prove to be useful to avoid using unmanaged code in certain performance sensitive applications. Many (technically all) of the operations can be emulated in CPU when not available with specific optimizations for the target platform or even have the ability with specially crafted if-then-else optimizations. That would allow to even switch to an entirely different algorithm without any runtime impact (if properly done at the jitting phase). +2210 area-System.Security Consider multi-threading implications on the OpenSSL ERR_get_error queue. OpenSSL compiled with OPENSSL_FIPS seems to have a single static ERR_STATE object for the process. The default appears to be set up for providing the capabilities for stack-per-thread, but OPENSSL_thread_id() appears to return the process ID, not the thread ID. The mainline seems to be served by `OPENSSL_set_id_callback` to something returning a thread ID; and lightup for FIPS could try invoking `int_ERR_lib_init`, which resets the library to the non-FIPS way of error management (though that theoretically has FIPS implications...). +2217 area-System.Text UTF8Encoding should support encoding/decoding of unpaired surrogates "According to RFC 3629 encoding/decoding unmatched surrogates should be disallowed: ""The definition of UTF-8 prohibits encoding character numbers between U+D800 and U+DFFF, which are reserved for use with the UTF-16 encoding form (as surrogate pairs) and do not directly represent characters."" However, this hasn't been followed by real world encoders/decoders. For example, the ECMA-335 standard encodes string arguments of custom attributes using UTF8 and the compilers allowed unpaired surrogates in the attribute argument. Another example is PDB - the file paths in PDB are stored as UTF8 encoded strings and unpaired surrogates are also allowed. The same for values of local string constants (e.g. `const string surrogate = ""\ud800""`). To avoid breaking changes Roslyn needs to allow unpaired surrogates in the above cases and the MetadataReader should also use a variant of UTF8 encoding that is able to decode them. Currently Roslyn has a custom implementation of UTF8 encoder originating from CCI. In general, it seems that pragmatically a UTF16-UTF8 round-tripping is desirable in certain scenarios and UTF8Encoding should support it. I propose to add a constructor to UTF8 Encoding that takes a bool allowUnpairedSurrogates (false by default) that can be used by both Roslyn and MetadataReader. " +2220 area-System.Net [WIP] Refactor HttpClient and MultipartContent with async/await +2221 area-System.Runtime Replacement for unavailable Assembly methods Hi, How is the supported way to deal with the Assembly class? For instance, I have some method calls like Assembly.Location or Assembly.GetCallingAssembly() which I couldn't find a way to bring those calls to CoreFX. Thanks. +2227 area-System.IO FileSystem intermittent test failures Tests for the FileSystem class intermittently fail. The offenders are: | Test Failure | Notes | | --- | --- | | File_WriteAll_all.runTest | | | File_ReadAll_all.runTest | | | File_WriteAllBytes_StrBtA.runTest | | | File_AppendAll_all.runTest | | | File_Copy_str_str_b.runTest | also leaves leftover test directories (only on failure) | | FileInfo_Refresh.runTest | also leaves leftover test directories (only on failure) | | FileInfo_getLastWriteTime | according to #1313 - I detected no failures on my runs | | FileInfo_Create_str | | | DirectoryInfo_Refresh.runTest | also leaves leftover test directories (only on failure) | | DirectoryInfo_Move_str.runTest | also leaves leftover test directories (only on failure) | The source of the failures is the repeated use of the same test file names causing file already in use exceptions. +2241 area-System.Linq Enumerable.ToArray() fails on the results of some uses of Enumerable.Cast() Generally any implementation of `IEnumerable` should be able to produce a `T[]` with a call to `ToArray()`. However, in some cases the `IEnumerable` produced by a call to `Cast()` will in fact be an array of another type that can be converted on the fly by the implementation of `GetEnumerator()`. This works well in many cases and is a valuable optimisation (rather than going through `CastIterator`) but if `ToArray()` is called on it, the result is an `ArrayTypeMismatchException` that would not be expected by the user, especially since code might call `ToArray()` without knowing that `Cast()` had been used, or pass the result of `Cast()` to a method, not knowing that `ToArray()` would be used. In particular this happens if you `Cast()` an array of one `enum` type to another `enum` type. +2246 area-System.Net HttpClient not thread Safe Hi, Recently I noticed HttpClient, FtpClient (maybe SMTPClient I have to check) are not thread safe when Scheme is set https. Since all those classes relies on static member SecurityProtocol in ServicePointManager. We cant have multiple tasks or threads targeting different SSL or TLS version at the same time. I didn't see ServicePointManager in corefx repository located in System.Net namespace. Are there plans to open this piece of code ? +2249 area-System.Data DbDataReader.Close() doesn't unify with System.Data.Common If I write a provider against System.Data.Common on .NET Standard 1.2 and implement `Dispose` appropriately, then I try to use that provider on .NET Framework 4.6 or .NET Core 2.0, the following code won't work. ``` C# reader.Close(); // No-op Assert.True(reader.IsClosed); // Fails since Dispose is never called ``` It fails because on .NET Framework and .NET Core 2.0, `Dispose` calls `Close` (not the other way around) and since there is no virtual `Close` method on .NET Standard 1.2, I cannot override it without cross-targeting the frameworks that do have it. +2252 area-System.Collections Provide a sorting algorithm with good behavior on nearly-sorted inputs. The existing 4.5 Array.sort is implemented with intro sort. While this has reasonable behavior, it effectively has the same number of comparisons regardless of input size. This number of comparisons is (as expected) around `n * log_n`. While this is acceptable for random inputs, it is unfortunately much slower for nearly-sorted inputs. More recent algorithms (like TimSort) can provide massive improvements here, sorting nearly-sorted lists with a nearly linear number of comparisons. For code-paths where sorting is expensive, and where comparisons are not cheap, a better sort algorithm built into the Fx would be appreciated. Whether or not this becomes the default is up to you. But providing it as an option would still be a huge boon. Note: this hits Roslyn+TypeScript. We often produce trees (i.e. for tagging) from nearly sorted data. There may be hundreds of thousands of elements in this data. Being able to sort in near-linear time means we can then build our trees in linear time. With data sets this large, the difference between `n` and `n log n` is actually quite significant. +2254 area-System.Runtime Provide ways to parse sections of a string, not an entire string. Right now .Net provides lots of ways to convert strings to other values. For example `Int32.TryParse`. This is fine if you are starting with a string, but it's very suboptimal if you have a larger string, and are trying to parse out a piece of it. You are forced to first create a substring, and then parse that. This adds GC pressure to the system and can be a large perf impact. It would be very beneficial to have overloads of these functions that took a start+length. Alternatively, if there were some sort of struct representing a piece of a string, that could also work as well. Right now this impacts TypeScript greatly. We have to marshal data from JavaScript to .Net. This comes in as a string to us, which we then need to parse out into actual values (like ints). We are forced to either send tons of strings over (not ideal), or send one big string over that we then are forced to break into tons of small strings. Right now we've worked around this by hand-writing our own Int32.Parse that can work on subsections of a string. But this is non-ideal and would really be served inside the runtime so everyone could benefit. This is a place where really ony the runtime could implement this thing. There is so much complexity around string parsing (even just for ints), with things like FormatSpecifiers and whatnot, that trying to duplicate it in another library would be unfeasible. +2255 area-System.Linq IntersectIterator not optimized to exit early In System/Linq/Enumerable.cs, the `IntersectIterator` method will iterate over all of the items of `first`, even if the `set` created by `second` is empty. A simple performance optimization would be to `yield break` when `set` is empty. +2260 area-System.Net Merge changes from TFS +2273 area-System.Security Enable AuthorityInformationAccess downloads for X509Chain on Unix. Windows will follow the AuthorityInformationAccess record and attempt to download any intermediate certificates as part of building the X509Chain, we should enable this for the Unix platforms as well, to maintain feature parity. **Important**: Downloaded self-signed certificates are NOT considered trustworthy, and they need to make the chain report as not valid (unless root trust was bypassed). Also important: Any testing for this should be [OuterLoop], because it would depend on the network. +2278 area-System.Collections Rename Validation to Microsoft.Internal.Validation "The C# (and possibly VB compiler) will match the top-level namespace `Validation` in `System.Collections.Immutable` even though it only contains internal types. This prevents customers from using a type named `Validation` in their code. Specifically, assume a customer has defined the type like this: ``` C# namespace Support { public static class Validation { public static bool IsValid(string x) { return true; } } } ``` Consuming this type stops working when `System.Collections.Immutable` is referenced: ``` C# using System; using System.Collections.Generic; using System.Linq; using System.Text; using Support; namespace ImmutableTest { public class Experiment { // With out Immutable included, the below works just fine. // Once I include immutable, Validation, which was really // Support.Validation, but was found because of the using // statement above, it starts to fail showing that it can't // find IsValid in the namespace Validation. public void Test1() { Validation.IsValid(""AS""); } public void Test2() { Support.Validation.IsValid(""AS""); } } } ``` According to @jaredpar this behavior is by-design: > This behavior is by design for C# at least. A simple name lookup will prefer matching namespaces over types (section 7.5.2). I didn’t check the VB spec but it almost assuredly has the same design here. In order to avoid that conflict, we should rename the `Validation` namespace to something like `System.Validation`. " +2279 area-System.IO File System Watching for the Root Watch Folder doesn't match on all platforms The FSW on Unix and OS X can receive notifications about the root folder being watcher but the Windows implementation cannot. There are also differences (lock being taken) on Desktop CLR that might not be the case on CoreCLR +2287 area-Serialization DataContractJsonSerializerTests.DCJS_EnumerableCollection test fails in UTC+03.00 (Minsk) timezone "DataContractJsonSerializerTests.DCJS_EnumerableCollection fails in my timezone (UTC+03.00, Minsk). Current code: ``` C# var offsetMinutes = (int)TimeZoneInfo.Local.BaseUtcOffset.TotalMinutes; var timeZoneString = string.Format(""{0:+;-}{1}"", offsetMinutes, new TimeSpan(0, offsetMinutes, 0).ToString(@""hhmm"")); var original = new EnumerableCollection(); original.Add(new DateTime(2000, 1, 1).AddMinutes(offsetMinutes)); ``` Fix: ``` C# var date = new DateTime(2000, 1, 1); var offsetMinutes = (int)TimeZoneInfo.Local.GetUtcOffset(date).TotalMinutes; var timeZoneString = string.Format(""{0:+;-}{1}"", offsetMinutes, new TimeSpan(0, offsetMinutes, 0).ToString(@""hhmm"")); var original = new EnumerableCollection(); original.Add(date.AddMinutes(offsetMinutes)); ``` " +2292 area-Serialization Improve test coverage for XmlSerializer +2295 area-System.Xml System.Xml.XPath to support XPath 2, XPath 3 and their XSLT variants #### Motivation `System.Xml.XPath` currently conforms with XPath 1.0 [[W3C-xpath-1]](http://www.w3.org/TR/xpath/) and XSLT 1.0 [[W3C-xslt-1]](http://www.w3.org/TR/xslt/) standards, but not XPath 2.0 [[W3C-xpath-2]](http://www.w3.org/TR/xpath20/), XPath 3.0 [[W3C-xpath-3]](http://www.w3.org/TR/xpath-30/), XPath 3.1 [[W3C-xpath-3.1]](http://www.w3.org/TR/xpath-31/), XSLT 2.0 [[W3C-xslt-2]](http://www.w3.org/TR/xslt20/) and XSLT 3.0 [[W3C-xslt-3]](http://www.w3.org/TR/xslt-30/). The missing standard implementations in BCL are required by many consumer scenarios, for which .NET applications rely on [third party libraries](http://stackoverflow.com/a/1533114/863980). One of the chief scenario is Content Query Web Part (CQWP) in SharePoint, where the users' XSLT code can be drastically minimized if v2 is supported by `System.Xml.XPath`. As for most parts, there are backward compatibility fallbacks available, that is; the code written in XSLT 2 precisely, can be expressed verbosely in XSLT 1 and since so forth. ### Pitfalls Unfortunately, (besides the existing third-party libraries' APIs) I do not have an off-hand -- concrete -- method list to propose, as it requires further brain-storming on whether to auto-select processor based on the input or to explicitly separate the namespaces (`System.Xml.XPath2` and `System.Xml.XPath3`). The point to ponder being; since the sub-languages XPath 2 and XPath 3 intrinsically facilitates backward compatibility modes, see [XPath 2: J.1.3 Backwards Compatibility Behavior](http://www.w3.org/TR/xslt20/#backwards-compatibility-behavior) and [XPath 3: 3.10 Backwards Compatible Processing](http://www.w3.org/TR/xslt-30/#backwards), should the API be any different than the existing one and let consumers select the standard mode? +2315 area-System.Drawing Primitive Color Type for .NET Core ## Primitive Color Type for .NET Core The previous discussion of primitives showed that color discussion should expand into a separate issue. The primitive discussion was started because many customers wanted to move to the .NET Core, but were blocked by the lack of System.Drawing primitives there. There was much discussion and internal debate over defining Point, Rect, and Size and much of that was fueled by scenarios that you guys cited in the previous primitives issue. (Thank you!) Here we are looking for additional scenarios to discuss the advantages of creating a new Color type for the cross-platform .NET Core Graphics API. Feel free to repost your two cents from the previous primitives issue. Thanks for your input! Topics of Interest: (This is where providing scenarios would be awesome) 1. Naming (ColorRgba, sRGB) 2. Different Color Formats (int8 bits, float 16 bits, float 32 bits, alpha or not) Color4F, Color3F, Color4F 3. Color Spaces (conversion issues) 4. Gamma vs Linear 5. Extension Methods (vector operations: lerp, scaling, conversions: from RGB to HSB and reverse, from vectors) 6. Semantic parity with CSS 7. WinRT Compatibility Limit Scope: KnownColors will not be brought over as they don’t always translate well into the cross-platform world depending on the hardware so let’s focus our discussion on defining the Color object for now. +2316 area-System.Linq LINQ/PLINQ `Sum(int)` does not loft to long for intermediate calculation. Currently, even if the total value of elements in a collection falls within the range of the type, LINQ/PLINQ will throw errors if the _running_ total would overflow. That is: ``` new[] { int.MaxValue, int.MaxValue, int.MinValue }.Sum() ``` ... currently throws an overflow exception because of the first two items, even though the total is within range (`int.MaxValue - 1`). It may be beneficial to loft to long for the intermediate cancellation, similar to how float lofts to double (although that particular one is more about an accurate result, not exactly overflow). +2317 area-System.Linq Make IOrderedEnumerable covariant Today, I was trying to convert an `IOrderedEnumerable` to an `IOrderedEnumerable`, but the compiler responded with an error. Looking into the interface, there doesn't seem to be any reason why it can't be [covariant](https://msdn.microsoft.com/en-us/library/dd799517%28v=vs.110%29.aspx), and in fact when I copied and pasted the interface and changed the class signature to `IOrderedEnumerable` everything compiled fine. Can we change this in the BCL, as well? There doesn't seem to be a reason not to. Sidenote: This **may** cause some [breaking changes](http://stackoverflow.com/a/2843563/4077294), but as the post points out this has already been done with `IEnumerable` on a greater scale. ### Proposed API ```C# // Updates existing interface in being covariant. public interface IOrderedEnumerable : IEnumerable { // Existing member IOrderedEnumerable CreateOrderedEnumerable(Func keySelector, IComparer comparer, bool descending); } ``` *(edited by @terrajobst to include the API write-up from @JonHanna)* +2320 area-System.Reflection (api review) IL Object Model "@terrajobst From the recent [API Review 2015-07-08](https://github.com/dotnet/apireviews/tree/master/2015-07-08-ildasm-and-drawing) **IL Object Model** **Observations** - Implement a custom object model. - use [Mono's Cecil](https://github.com/jbevain/cecil) implementation. **Parsing** - From the byte stream - From the text representation. **Output** - Byte stream - Text Representation The issue here I see is that some instructions have ""pointers"" to data embedded into the assembly bytes. A very common one is `Strings`. So you're going to need an object to represent that so that construction of the output bytes is correct. **IL Labels** These point to data objects that encoded into the assembly. - Strings being a common one. - `switch` uses them as jump targets. A benefit of an IL object model, is that you could get an IL representation of a method, without doing a full compilation. **Targeting** For example Roslyn should ""compile"" to an IL Object model, first. which then permit for further diagnostic analysers (or an optional layer). On the produced IL For example:- A analyser to help minimise Boxing operations. you'll should be able to trickle that information back to source-code level. **Compilation** The last stage would ""Compilation Targets"" for various architectures eg. x86, x64,ARM and maybe even Typescript. This could be supplied as NuGet package. --- Side Note I implemented a partial implementation of an object model for IL [here](https://github.com/AdamSpeight2008/IL.Sarc) " +2321 area-System.Runtime ReadOnlyCollection interfaces. From MSDN: ``` public class ReadOnlyCollection : IList, ICollection, IEnumerable, IEnumerable, IList, ICollection, IReadOnlyList, IReadOnlyCollection ``` Suggested fix: ``` public class ReadOnlyCollection : IEnumerable, IEnumerable, IReadOnlyList, IReadOnlyCollection, ICollection ``` +2323 area-System.Linq Add Enumerable.ToHashSet We have `Enumerable.To*` methods for many common collections. `HashSet` is sorely missing. This feature should be cheap to implement and not be problematic in any way that I can see. Evidence that this feature is sorely missing: https://www.google.com/webhp?complete=1&hl=en&gws_rd=cr,ssl&ei=#complete=1&hl=en&q=.net+tohashset People are writing this method over and over again. +2324 area-System.Runtime Add common helper methods to the String class "The `String` class is missing some helper methods for string manipulation that are commonly needed. Of course it is possible for developers to add extension methods but that should not be required. here, I'll propose a list of methods that I think can be easily understood and are commonly required. The ordering of this list starts with the least controversial in my mind. 1. `bool Contains(this string str, string value, StringComparison comparisonType)`. We have no Contains version that takes a StringComparison. The workaround with `IndexOf` is awkward and feels like magic. 2. `Replace(..., StringComparison)`. Right now, `Replace` always uses `Ordinal`. 3. `string Left(this string str, int count)` as well as `Right`. `Left` is equivalent to `str.Substring(0, count)` but right is `str.Substring(str.Length - count, count)`. 4. `Truncate(int maxLength)`. This is not equivalent to Substring(maxLength) because Substring throws if the string is short. 5. `bool IsValidIndex(this string str, int index)` tests whether the argument can be used to obtain a character from the indexer. That sometimes comes in handy. Also `bool IsValidRange(this string str, int index, int count)`. Both can be useful for `Debug.Assert` assertions. 6. `string TrimPrefix(this string str, string prefix)` as well as `TrimPostfix`. It turns out that when working with externally generated strings (ETL processes) it is very common to need to remove a prefix. For example to get a JIRA issue number as an int you do `int.Parse(""PROJ-2317"".TrimPrefix(""PROJ-""))`. `Replace(..., ""PROJ-"", """")` is not equivalent and semantically wrong. The `TrimStart` method cannot be used here. Further helper methods would be `EnsurePrefix/Postfix`. 7. Some helpers to work on strings that might be null or empty. This comes up _all the time_. ``` public static string EmptyToNull(this string str) { return string.IsNullOrEmpty(str) ? null : str; } public static string NullToEmpty(this string str) { return str ?? string.Empty; } public static bool IsNullOrEmpty(this string str) { return string.IsNullOrEmpty(str); } public static bool IsNullOrWhitespace(this string str) { return string.IsNullOrWhiteSpace(str); } ``` 1. `SplitLines()`. Returns the string split into lines. Need to define how to deal with OS-specific line endings. Probably, this should just be `str.Replace(""\r"", """").Split('\n')` which seems to work for everything. I can see some issues with some of these proposals. They are not perfect but I want to get the discussion going. I feel the BCL has a blind spot here. The list certainly starts out with a few no-brainers. " +2327 area-System.Linq Make Enumerable.Any use the same optimizations that Count has (ICollection checks) `Enumerable.Count` uses `ICollection` and `ICollection` to perform a fast and allocation-free computation. `Enumerable.Any` should do that as well. The fact that `Any` does not check `ICollection` is pretty much the only downside to using `Any` vs. `Count() != 0`. This downside should be eliminated. This missing optimization causes confusion: - http://stackoverflow.com/questions/2989300/interview-question-any-vs-if-length-0-for-testing-if-a-collection-has-e - http://dpatrickcaldwell.blogspot.de/2011/08/enumerableany-vs-enumerablecount.html +2329 area-System.Threading Use a more dependable policy for thread pool thread injection As of .NET 4.5 the thread pool injects one thread per 0.5sec if it thinks more threads are required. This is a problem if the number of required threads suddenly increases. Example: A corporate ASP.NET website is idle at night. In the morning at 8AM 1000 people log on and start working. If the app is using let's say 100 threads starting from 8AM it will take like 50sec to create all of them. Until then there will be serious delays and timeouts. It is possible to construe arbitrarily bad scenarios. **Problem statement:** If thread pool load suddenly increases in IO bound workloads the pool is too slow to respond. This causes throughput and availability disruption. IO bound workloads relying on synchronous IO are common. Sudden workload changes are also common. Sometimes the workload can change due to a problem outside of the developer's control: A web service timing out or a database become slow. Let me stress that this causes service interruption. You can easily repro this yourself. Run a load test on an ASP.NET site with `Thread.Sleep(10000);`. The thread count goes up by 2 each second. Starting and shutting down a thread was benchmarked by me to be around 1ms in total. Threads are not really an expensive resource. The thread pool should be a lot more eager to create and destroy threads. 500ms delay to potentially save 1ms is not a good trade-off. **Easy fix:** I propose lowering the injection delay to 100ms. This reduces the problem given above by 5x. Ideally, the rate would be configurable. The shutdown delay could be lowered from 30s as well. Keeping an idle thread for 30000ms to save 1ms seems excessive. In this ticket I'm not that concerned with retiring threads, though. **Smarter, riskier fix:** The delay could depend on the number of threads in existence, the core count and the perceived pressure on the thread-pool. The injection rate could be: - 0ms delay for up to (ProcessorCount \* 1) threads - 50ms delay for up to (ProcessorCount \* 4) threads - Starting from that a delay of (100ms \* (ThreadCount / ProcessorCount \* someFloatFactor)). Reasoning: The more the CPU is oversubscribed the slower we want to inject. Maybe we need to have a maximum delay of 1sec. Or, the delay must rise sub-linearly (e.g. sqrt). Note, that the Windows Kernel has some thread pool injection heuristics that apply back pressure the more threads are in existence. This seems to work. Source: https://channel9.msdn.com/Shows/Going+Deep/Inside-Windows-8-Pedro-Teixeira-Thread-pool +2332 area-System.Net Improve ServicePointManager.DefaultConnectionLimit "`ServicePointManager.DefaultConnectionLimit` appears to be `2` on .NET 4.5 in non-ASP.NET apps. This is too low for almost any production load. I don't know what this low limit is supposed to accomplish. I understand the presence of _some_ limit as a safety measure but `2` is really never useful. Many developers have trouble with that: https://www.google.com/webhp?complete=1&hl=en&gws_rd=cr,ssl&ei=#complete=1&hl=en&q=site:stackoverflow.com+%22ServicePointManager.DefaultConnectionLimit%22 When somebody asks ""My HTTP requests are unexpectedly slow"" the default answer is ""DefaultConnectionLimit = int.MaxValue"" and this solves the problem in about 80% of the cases. This is strong evidence that the default should be changed. This is an ongoing cause for trouble and surprise. There are three choices that I can think of: 1. Unlimited. ASP.NET has chosen this (`SetAutoConfigLimits`) presumably for good reasons. I think this is the least surprising choice. When a developer says `new WebClient().Download(...)` he expects the request to be sent right away. The dev is responsible for ensuring a sane degree of concurrency. he can use `SemaphoreSlim` or the service point infrastructure for that. 2. A constant factor on the CPU count of the machine (e.g. 10). Pro: This scales up with the size of the machine. Con: It might be a low-CPU (e.g. 2) machine that does little processing but relays it's request to some backend REST service that does the heavy lifting. 100 outstanding requests per CPU would not surprise me at all in such a situation. The benefits of async IO would be throttled. 3. `1`. At least this would make developers very quickly aware that the limit exists and that they need to change it. Maybe the value of `2` follows from that reasoning. I consider this to be a weak choice that is going to be perceived as stupid (as is `2`). Another reason for ""Unlimited"" is that there should not be global limits but per-service limits. A .NET process often hosts many components each of which potentially take from the global limit. They could interact in surprising (and spooky) ways. I think the .NET Framework should pick the default value that has the least surprise and set this to `int.MaxValue`. Also, consider revising the default value of `Expect100Continue`. I believe there is not a single developer in the world who expects each `POST` request to be performed twice by default. I do not know a single case where this was ever deemed useful. Disabling this behavior would entail, I believe, low compatibility risk. (See http://stackoverflow.com/search?q=Expect100Continue) " +2335 area-System.Collections Improve ConcurrentBag GetEnumerator performance Currently `ConcurrentBag` `GetEnumerator()` causes list copying everytime enumerator is accessed eg. through `foreach`. This causes strain on the GC and list copying is also heavy operation on large bags. There should be alternative methods to enumarate the bag contents or implement `GetEnumerator()` so that it does not cause list copying. I have presented here 3 possbile solutions to this problem. **Solution 1)** Add `ForEach` method to `ConcurrentBag`: ``` CSharp public void ForEach(Func action) { // Short path if the bag is empty if (_headList == null) return; bool lockTaken = false; try { FreezeBag(ref lockTaken); ThreadLocalList currentList = _headList; while (currentList != null) // Go through thread lists { Node currentNode = currentList._head; while (currentNode != null) // Go through thead specific linked list { if (!action(currentNode._value)) return; // User wanted to break the operation currentNode = currentNode._next; } currentList = currentList._nextList; } } finally { UnfreezeBag(lockTaken); } } ``` `ForEach` function takes user specified `Func` delegate. This delegate takes the bag item as an argument and returns true/false depending on whether the user wants to continue or stop the enumeration operation. Here `ForEach` operation would lock the bag so that other threads would need to wait for the operation to finish. Therefore results of this operation would represent the bag as a moment-in-time snapshot. **Solution 2)** Add `GetEnumerableSlim` function: ``` CSharp public IEnumerable GetEnumerableSlim() { ThreadLocalList currentList = _headList; while (currentList != null) { Node currentNode = currentList._head; while (currentNode != null) { yield return currentNode._value; currentNode = currentNode._next; } currentList = currentList._nextList; } } ``` This would require an additional change to the internal class `Node`: ``` CSharp internal class Node { public Node(T value) { _value = value; } public readonly T _value; public volatile Node _next; // This needs to be marked as volatile public Node _prev; } ``` `GetEnumerableSlim` would enumerate the bag contents concurrently without locking the bag. The proposed implementation is thread safe from memory model point of view. The fields `ConcurrentBag._headList`, `ThreadLocalList._head` and `Node._next` are all volatile variables. Therefore all the threads always have the newest value available. In addition the `Node._value` reference/value is immutable. `GetEnumerableSlim` is safe to use concurrently. Of course here the enumerator would miss some of the concurrent additions/removals from the bag. Also enumerator could contain modification after the `GetEnumerator` was called. Similiar behaviour is also used in `ConcurrentDictionary`, `GetEnumerator` which may also miss some of the concurrent changes or contain new changes after the `GetEnumerator` was called. Therefore the `GetEnumerableSlim` is consistent with other concurrent collections and their enumerator implementations. (It would be intresting to know why `ConcurrentBag` `GetEnumerator` was originally implementeted so that it copies the bag contents to a list where as the other concurrent collections enumerate the contents concurrently eg. `ConcurrentQueue`.) **Solution 3)** Replace `GetEnumerator` with `GetEnumeratorSlim` implementation. This solution would totally eliminate the risk of performance degradation due to list allocations. But this might not be possible if the existing code relies on the fact that `GetEnumerator` returns moment-in-time representation of the bag. +2336 area-System.Globalization Rename tests in System.Globalization About 40-50% of the tests in System.Globalization do not have self descriptive names. They are currently named PosTest, NegTest etc. +2337 area-System.Globalization Add Unicode Tests to System.Globalization Write Unicode Tests that are generic and not coupled with a particular version of Unicode. Specifically CharUnicodeInfo.GetNumericValue() and CharUnicodeInfo.GetUnicodeCategory() +2338 area-System.Collections Add ConcurrentBag and ConcurrentQueue Clear method Currently `ConcurrentBag` does not support clearing of the bag. Currently only way to clear the bag is to call `TryTake` in a loop which is suboptimal in high concurrency applications: ``` CSharp T dummy; while(bag.TryTake(out dummy)) {} ``` Instead `Clear` method could be implemented so that the bag is emptied at once. Here is the proposed implementation: ``` CSharp public void Clear() { // Short path if the bag is empty if (_headList == null) return; bool lockTaken = false; try { FreezeBag(ref lockTaken); ThreadLocalList currentList = _headList; while (currentList != null) { currentList.Reset(); currentList = currentList._nextList; } } finally { UnfreezeBag(lockTaken); } } ``` Internal class `ThreadLocalList` needs new `Reset/Invalidate` method which sets the thread specific linked list _head and _tail to null as well as resets the counters. GC would then collect the non referenced linked list nodes. ``` CSharp internal void Reset() { _head = null; _tail = null; _count = 0; _stealCount = 0; } ``` `Clear` would lock the bag for the duration of the operation since it could cause undefined behaviour if other threads would access the bag while linked lists are being reseted. (Similarly ConcurrentDictionary also locks the dictionary when `Clear` is called.) +2339 area-System.IO Finish rewriting System.IO.FileSystem tests Finish rewriting the tests for System.IO.FileSystem and replacing the giant runTest() methods with individual [Fact]s and [Theory]s, replacing every instance of Console.WriteLine along the way. +2342 area-System.Xml XmlSchema in CoreFX Hi, Are there any plans to include XmlSchema in CoreFX? If not, is there any recommended way to manipulate schemas? Thank you. +2352 area-System.Runtime API Addition: Add generic Array.Reverse Add generic `Array.Reverse`. ## Rationale [`Array.Reverse`](https://github.com/dotnet/coreclr/blob/ef1e2ab328087c61a6878c1e84f4fc5d710aebce/src/mscorlib/src/System/Array.cs#L1570-L1606) is non-generic. It includes a fast path for a known set of primitive types via a call into the runtime (see [`TrySZReverse`](https://github.com/dotnet/coreclr/blob/4cf8a6b082d9bb1789facd996d8265d3908757b2/src/classlibnative/bcltype/arrayhelpers.cpp#L390-L424)), otherwise it falls back to slower code paths that involve boxing for value types. This is a significant performance cost for non-primitive value types, ~22x slower. Callers of `Array.Reverse` (like `List.Reverse` and `ImmutableArray.Builder.Reverse`) are affected by this performance issue. As a workaround, [`List.Reverse`](https://github.com/dotnet/coreclr/pull/1231) and [`ImmutableArray.Builder.Reverse`](https://github.com/dotnet/corefx/pull/2354) are being updated to not use the non-generic `Array.Reverse` method until the generic `Array.Reverse` method becomes available. Other non-generic methods on `Array` have generic counterparts like `Array.Sort` and `Array.Sort`, so this would just be making `Reverse` consistent with those. ## Proposed API ``` c# public abstract class Array : ... { // Proposed public static void Reverse(T[] array); public static void Reverse(T[] array, int index, int length); // Existing public static void Reverse(Array array); public static void Reverse(Array array, int index, int length); } ``` +2358 area-System.Net Initial commit of System.Net.WebHeaderCollection Just what it says on the tin. +2368 area-System.Net Address PR feedback for System.Net.WebHeaderCollection - Replace `HeaderParser` with `Func` - Make static fields `readonly` - Optimize `HeaderInfoTable` for allocation volume and remove the static constructor - Replace non-generic collections with generic collections +2369 area-System.IO Directory AccessTime, WriteTime, and CreationTime for nonexistent directories inconsistent "Labeld in code as ""//See VSWhidbey # 92050"" On Windows, Directory.GetAccessTime, Directory.GetWriteTime, and Directory.GetCreationTime (as well as their DirectoryInfo clones) will return default values when queried with a path to a nonexistent directory. On Unix, running those same methods for AccessTime and WriteTime throws a ""FileNotFoundException"". Is this behavioral difference desired? Example: ``` Assert.Equal(DateTime.FromFileTime(0).Ticks, Directory.GetLastAccessTime(""doesntexist"").Ticks); //true on Windows, throws on Ubuntu Assert.Equal(DateTime.FromFileTime(0).Ticks, Directory.GetLastWriteTime(""doesntexist"").Ticks); //same as above ``` " +2370 area-System.Net Move some System.Net.WebHeaderCollection tests from [Fact]s to [Theory]s The current version of xUnit used by CoreFX has problems writing text containing certain code points to the test log. There are tests in S.N.WHC that use these code points. These tests are currently [Fact]s, but should be combined with the appropriate [Theory] once CoreFX has taken an updated version of xUnit that fixes the issue. +2372 area-System.Net Add System.Net.WebHeaderCollection to README.md Add System.Net.WebHeaderCollection to README.md +2375 area-System.Reflection Add metadata tokens/module versions back to reflection libraries in CORE CLR. Recent versions of the CORE clr have removed metadata from the reflection libraries. We are writing .NET diagnostics tools, and these APIs are important for supporting our diagnostics scenarios. We would like the APIs to be added back. +2376 area-System.Numerics BigRational The BCL project included a BigRational type: http://bcl.codeplex.com/releases/view/42782 The code seems to be released under the [Microsoft Public License](http://bcl.codeplex.com/license). Would there be any license related issue around including BigRational in corefx? It looks like it's also available on [NuGet](https://www.nuget.org/packages/BigRationalLibrary/). There's also a Rational type in [Solver Foundation](https://msdn.microsoft.com/en-us/library/microsoft.solverfoundation.common.rational%28v=vs.93%29.aspx), but the code doesn't appear to be freely available. +2380 area-System.Net Address PR feedback for System.Net.WebHeaderCollection Fixes #2368 +2382 area-System.Net Initial commit of System.Net.WebSockets +2383 area-Infrastructure Figure out how to provide parameters to unit tests at build/run-time. The System.Net tests are likely to need this in order to provide some configurability for the servers used during testing. +2384 area-System.Net WebException: update WebException.GetStatusFromException after System.Net.Http API changes For now, we use the .HResult of the exception to help us map to a suitable WebExceptionStatus enum value. The .HResult is set into this exception by the underlying .NET Core and .NET Native versions of the System.Net.Http stack. In the future, the HttpRequestException will have its own .Status property that is an enum type that is more compatible directly with the WebExceptionStatus enum. +2385 area-System.Net System.Net.Requests.Tests: HttpWebResponse tests need a server that does not provide a Content-Type header Just what it says on the tin. The httpbin servers we're currently using for testing do not have this characteristic. +2386 area-System.Net Initial commit of System.Net.Requests This change also contains some minor refactorings in System.Net.{Http,WebHeaderCollection} in order to share some code between the various System.Net assemblies. +2387 area-System.Net Refactor Http tests for multiple test projects "This change sets up the layout for having multiple test projects for Http. It follows the current guidlines as well as working within the BUILDTOOLS requirements of having "".Tests.csproj"" for the names of the projects. After this PR is done, we will be migrating a large set of http functional tests to GitHub " +2390 area-System.IO FileSystem test update - Updated Directory tests. Note that there are still some unresolved issues pending a solution to #1221 - Consolidated AccessTime, WriteTime, and CreationTime tests for FileInfo, File, DirectoryInfo, and Directory into one file per folder - GetSetTimes.cs - Removed failing tests for the above properties - Added some Unix tests - Resolves #2359 +2392 area-System.Collections Add ImmutableArray.Builder.AddRange, MoveToArray methods The builder currently has APIs: ``` C# public void AddRange(T[] items, int length); public ImmutableArray MoveToImmutable(); ``` but is missing the following: ``` C# public void AddRange(T[] items, int start, int length); public T[] MoveToArray(); ``` +2394 area-Meta Port Workflow Foundation to .NET Core Hello, I don't see in the plans neither here and coreCLR for porting Workflow Foundation for CoreCLR... We want know how can we start porting it and add PRs for it here. Thanks +2399 area-System.Net Address CR feedback for System.Net.WebSockets. - Document the ASCII validation in `WebSocketValidate.ValidateSubProtocol` - Clean up `using` statements in `WebSocketValidate` - Decide which exception type to derive from in `WebSocketException` +2400 area-System.Linq Take advantage of algorihmic differences between first-from-ordered and ordered. The fact of something being ordered can have implications for subsequent operations. The ordering Linq methods (`OrderBy`, `ThenBy`, etc.) operate first in O(1) time and space to make a promise of a subsequent O(n log n) sort in O(n) space. In many case though the following operation does not need all of the promised operation. `.OrderBy(λ).First()`, `.OrderBy(λ).First(λ)`, and so on request that a sequence be sorted (O(n log n) time/O(n) space) and then the first element taken (O(1) time and space) which is in total an O(n log n) time/O(n) space operation. However, it is reducible to the O(n) time/O(1) space operation of identifying just the item in question which can be done in O(n) time and O(1) space. As `First`, `Last` and their variants are particularly common with ordered sequences (in some cases not having any meaning without an order), I think this would be a worth-while optimisation. There are other optimisations available, such as all aggregate operations (`Sum` etc.) could be moved from O(n log n) time to O(n) time simply by extracting the source and ignoring the ordering, this may not be as common a case as to make it worthwhile. One could argue that the user should have not put the ordering in there in the first place, and while the cost of checking for an ordered source is slightly, it's not worth paying it on all aggregate operations to benefit a flawed case. `Reverse` is somewhere in the middle. It's reasonable to expect someone might construct an ordered sequence and then `Reverse` in some cases. It's got subtleties (one cannot simply reverse all `OrderBy` to `OrderByDescending` and vice-versa because `OrderBy` is documented as performing stable ordering in linq-2-objects and therefore reversed must have reverse source ordering on equivalent items) but wouldn't be hard, but it's less clear whether the pay off would be worth it. In the more useful cases of `First` etc. there is a fly in the ointment in that this would affect the number of times both key selectors for ordering and predicates for `First` etc. were called. As per #2349 this means side effects on `Func`s would be affected, though perhaps in a way that was less predictable to the user than with that issue anyway. As such, changing the behaviour of `First` in this case would require either a decision in favour of the change that issue would allow for, or a decision that this case was less harmed by such changing side-effects. In summary. I propose that `OrderBy(…).First(…)` and its cousins be optimised, and the trade-offs of optimising `OrderBy(…).Reverse()` be considered. +2402 area-System.IO DirectoryInfo.CreateSubdirectory(path) trims whitespace and returns parent directory "Calling directory.CreateSubdirectory(""whitespaces"") will return ""directory"" and create no subdirectory. ``` DirectoryInfo parentDir = new DirectoryInfo(TestDirectory); DirectoryInfo childDir = parentDir.CreateSubdirectory("" ""); Assert.Equal(parentDir.FullName + Path.DirectorySeparatorChar, childDir.FullName); ``` If newlines or tabs are used, then it throws as expected: ``` DirectoryInfo parentDir = new DirectoryInfo(TestDirectory); Assert.Throws(() => parentDir.CreateSubdirectory(""\n"")); Assert.Throws(() => parentDir.CreateSubdirectory(""\t"")); ``` The reason for this is that dir.CreateSubdirectory(path) essentially wraps around Directory.CreateDirectory(Path.Combine(dir.FullName, path)) which trims trailing whitespace (in this case ""path""). Is this functionality desired? It makes sense to keep curtailing trailing whitespace in Directory.CreateDirectory for back compat reasons, but having CreateSubdirectory on whitespace return the parent directory is unintuitive. " +2403 area-System.IO DirectoryInfo.CreateSubdirectory(path) throws ArgumentException for newline and tab nonsignificant trailing characters "There's a discrepancy in the way DirectoryInfo.CreateSubdirectory and Directory.CreateDirectory handle trailing tab and newline characters on Windows. The below code exhibits the difference: ``` { // Directory.CreateDirectory curtails trailing tab and newline characters string filePath = IOServices.RemoveTrailingSlash(GetTestFilePath()); DirectoryInfo result = Directory.CreateDirectory(filePath + ""\n""); Assert.Equal(filePath, IOServices.RemoveTrailingSlash(result.FullName)); } { // DirectoryInfo.CreateSubdirectory throws an ArgumentException when there are newline or tab characters anywhere in a file name, even as trailing chars string fileName = IOServices.RemoveTrailingSlash(GetTestFileName()); DirectoryInfo parentDir = new DirectoryInfo(TestDirectory); Assert.Throws(() => parentDir.CreateSubdirectory(fileName + ""\n"")); //illegal characters in path } ``` This is somewhat related to #2402 in that DirectoryInfo.CreateDirectory handles whitespace very differently than Directory.CreateDirectory or even DirectoryInfo.Create. " +2405 area-System.Net Refactor WinHttpHandler tests for multiple test projects "This change sets up the layout for having multiple test projects for WinHttpHandler. It follows the current guidlines as well as working within the BUILDTOOLS requirements of having "".Tests.csproj"" for the names of the projects. Also, fixed up some cross-platform definitions in the solutions files for Http and WinHttpHandler. After this PR is done, we will be migrating a large set of http functional tests to GitHub " +2408 area-System.Net Fix WebHeaderCollection.GetEnumerator(). Change WebHeaderCollection.GetEnumerator() from an explicit implementation to a public override to avoid delegating to the base collection. This change also adds a test for this behavior. +2409 area-System.Net Address PR feedback for System.Net.Requests - Audit WebException.cs for inefficient usage of string.Format - Audit the code for string.Compare vs. string.Equals +2416 area-System.Net Abort_BeginGetRequestStreamThenAbort_RequestStreamCallbackCalledBeforeAbortReturns failed in CI "http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug/813/consoleFull ``` System.Net.Requests.Test.HttpWebRequestTest.Abort_BeginGetRequestStreamThenAbort_RequestStreamCallbackCalledBeforeAbortReturns(remoteServer: Uri { AbsolutePath = ""/post"", AbsoluteUri = ""http://httpbin.org/post"", Authority = ""httpbin.org"", DnsSafeHost = ""httpbin.org"", Fragment = """", ... }) [FAIL] 19:58:58 Assert.Equal() Failure 19:58:58 Expected: 1 19:58:58 Actual: 0 19:58:58 Stack Trace: d:\j\workspace\dotnet_corefx_windows_debug\src\System.Net.Requests\tests\HttpWebRequestTest.cs(548,0): at System.Net.Requests.Test.HttpWebRequestTest.Abort_BeginGetRequestStreamThenAbort_RequestStreamCallbackCalledBeforeAbortReturns(Uri remoteServer) ``` " +2424 area-System.Net Remove unstable System.Net.Requests tests As per issue #2416 remove unstable System.Net.Requests tests that were inadvertently ported to GitHub. +2427 area-Infrastructure Update CoreFx build to shipping nuget Need to do the following to bring ourselves current with the shipping nuget scenarios. - [x] switch from DNX to nuget.exe - [x] move projects from `dnxcore50` to `netstandard1.x` - [ ] use PCL meta-package in all test projects - [x] eliminate `test-runtime\project.json` hack - [ ] ensure we use inbox nuget task/targets when present and only use BuildTools version when inbox is missing - [x] switch to stable version consumption of packages +2433 area-System.IO Update to FileSystem Tests - Consolidated AccessTime, WriteTime, and CreationTime tests for FileInfo, File, DirectoryInfo, and Directory into one file per folder - GetSetTimes.cs - Added some Unix tests - Overhauled the Write/Read/Append tests for the File class and removed many duplicate tests - Continuation of #2390 +2435 area-Serialization DataContractSerializer constructor causes NullRefException when serializing object When using [this](https://github.com/dotnet/corefx/blob/6e5d09b0334ca8735962f29f38a390c1298639c0/src/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContractSerializer.cs#L51) constructor for the DataContractSerializer: ``` csharp public DataContractSerializer(Type type, string rootName, string rootNamespace, IEnumerable knownTypes) ``` The resulting serializer can throw a `NullReferenceException`. This is caused by the creation of `XmlDictionaryString` objects which have a `null` `XmlDictionary`. There's also a bug/change in behavior in `XmlDictionaryString` compared with Desktop. On Desktop, if you specify a `null` value for the dictionary when constructing a new instance, an `ArgumentNullException` will be thrown. In corefx, it will attempt to create an empty instance of `IXmlDictionary` and assign that. It then straight away assigns the passed in `null` value to the dictionary effectively throwing away the empty dictionary that was created. Some of the Xml writers require the dictionary for an `XmlDicationary` string to be non-null. This is causing a `NullRefException` to be thrown. Here is a partial call stack from WCF: ``` csharp at System.Xml.XmlBinaryWriterSession.PriorityDictionary`2.TryGetValue(K key, V& value) at System.Xml.XmlBinaryWriterSession.TryLookup(XmlDictionaryString s, Int32& key) at System.Xml.XmlBinaryNodeWriter.TryGetKey(XmlDictionaryString s, Int32& key) at System.Xml.XmlBinaryNodeWriter.WriteXmlnsAttribute(String prefix, XmlDictionaryString ns) at System.Xml.XmlBaseWriter.NamespaceManager.DeclareNamespaces(XmlNodeWriter writer) at System.Xml.XmlBaseWriter.EndStartElement() at System.Xml.XmlBaseWriter.AutoComplete(WriteState writeState) at System.Xml.XmlBaseWriter.StartElement(String& prefix, String localName, String ns, XmlDictionaryString xNs) at System.Xml.XmlBaseWriter.WriteStartElement(String prefix, XmlDictionaryString localName, XmlDictionaryString namespaceUri) at System.Runtime.Serialization.XmlWriterDelegator.WriteStartElementPrimitive(XmlDictionaryString localName, XmlDictionaryString namespaceUri) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteString(XmlWriterDelegator xmlWriter, String value, XmlDictionaryString name, XmlDictionaryString ns) at WriteFaultDetailToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , ClassDataContract ) at System.Runtime.Serialization.ClassDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.DataContractSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.DataContractSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph) at System.Runtime.Serialization.XmlObjectSerializer.WriteObject(XmlDictionaryWriter writer, Object graph) ``` +2444 area-System.Data Open items for System.Data.Common The following needs to be incorporated based on the comments in the pull request https://github.com/dotnet/corefx/pull/2197 Please note that the code is being submitted via another pull request https://github.com/dotnet/corefx/pull/2443 1. Investigate the CancellationToken for the Tasks 2. There are more comments made by Stephen Toub, which need to be taken care of. Refer to https://github.com/dotnet/corefx/pull/2197 +2454 area-System.Threading Remove reentrancy by default from the TPL The TPL has a few performance features that cause reentrancy. Here are the ones I know of: 1. `TaskCompletionSource.SetXxx` can cause continuations to be executed synchronously. AFAIK this can happen both with or without `ExecuteSynchronously`. Starting with .NET 4.6 there is `RunContinuationsAsynchronously` to disable this behavior. 2. `Task.Wait()` and `Task.Result` can execute an unstarted CPU-based task inline. I do not know of any good workaround from the perspective of the caller of `Wait`/`Result`. Probably, `static Task.Wait(Task)` and related methods have the same problem. 3. `CancellationTokenSource.Cancel()` can execute registered notifications inline. 4. `TaskAwaiter` uses `TaskContinuationOptions.ExecuteSynchronously` if there is no synchronization context set. This forces reentrancy for whatever code completes the task being awaited. In all of these situations arbitrary code can run as part of invoking the respective TPL method. You might not control that code. There might be no way for you to know what code that is because you are writing a library. In big apps it might be architecturally impossible/unwanted to know what code might run. This is **arbitrary, non-deterministic reentrancy in multi-threaded code**. This is very dangerous behavior. Concrete problems (examples): 1. You might call `TaskCompletionSource.SetResult()` under a lock. Now, arbitrary code might run under your lock as well. This can **deadlock**. 2. That arbitrary code might perform blocking operations (e.g. IO). This will now run under your lock and **extend the lock hold time**. 3. The **invariants** of your data might be **temporarily broken**. Due to reentrancy other code can now observe invalid data. 4. **Monitor might fail to provide mutual exclusion** because `lock (x) { lock (x) { } }` does not block/deadlock. Inlining code onto the current thread opens the gates for any locks held by this thread. 5. You might run on a thread with **thread-dependent state** (STA thread, changed priority, deviating culture, `HttpContext.Current` null or not null, ...). This state is now exposed to arbitrary code. It is made available for mutation as well. **This is very unsafe behavior by default.** The number of questions that come up about it on Stack Overflow is noticeable. The bugs are insidious (racy). Please disable _all_ of these behaviors by default. Make unsafe performance features opt in. I doubt there will be compatibility impact from doing this because all of the behaviors above are, to my knowledge, non-deterministic. Completion callbacks should always be queued to the thread pool (or to any scheduler if specified) by default. The TPL should be safe by default. Reentrancy behavior should be: 1. Off by default. 2. Opt-in possible. 3. Overriding forced opt out by any side taking part (completing thread and registering thread). A library should be able to force-disable any of this, no matter whether it registers continuations or whether it completes tasks. This is a problem both for monolithic apps as well as for library authors. See this high-profile case that lead to the inclusion of `RunContinuationsAsynchronously` in .NET 4.6: http://stackoverflow.com/questions/22579206/how-can-i-prevent-synchronous-continuations-on-a-task +2458 area-System.IO FileInfo.Open() with FileMode.Append throws unexpected exception The following code is an example of the situation: ``` string fileName = GetTestFilePath(); using (FileStream fs = new FileInfo(fileName).Open(FileMode.Create)) { fs.WriteByte(0); } using (FileStream fs = new FileInfo(fileName).Open(FileMode.Append)) // Throws ArgumentException: append access can be requested only in write-only mode { } ``` The issue is a result of the default FileAccess value used in the FileInfo.Open(FileMode) method: ``` public FileStream Open(FileMode mode) { return Open(mode, FileAccess.ReadWrite, FileShare.None); } ``` when it should be the same as what File.Open(FileMode) does like so: ``` public FileStream Open(FileMode mode) { return Open(mode, (mode == FileMode.Append ? FileAccess.Write : FileAccess.ReadWrite), FileShare.None); } ``` +2459 area-System.IO DriveLetter_Unix currently failing System.IO.FileSystem.Tests.Directory_CreateDirectory.DriveLetter_Unix [FAIL] 09:58:09 System.IO.DirectoryNotFoundException : Could not find a part of the path '/mnt/j/workspace/dotnet_corefx_linux_debug_tst_prtest/bin/tests/Windows_NT.AnyCPU.Debug/System.IO.FileSystem.Tests/dnxcore50/C:'. 09:58:09 Stack Trace: 09:58:10 at System.IO.UnixFileSystem.RemoveDirectoryInternal(String fullPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound) 09:58:10 at System.IO.UnixFileSystem.RemoveDirectory(String fullPath, Boolean recursive) 09:58:10 at System.IO.Directory.Delete(String path) 09:58:10 at System.IO.FileSystem.Tests.Directory_CreateDirectory.DriveLetter_Unix() 09:58:10 Finished: System.IO.FileSystem.Tests +2460 area-System.IO File.Move relies on the UnixFileSystem CopyFile method that overwrites only when it shouldn't The File.Move(source, dest) and FileInfo.MoveTo(dest) functions do not currently function as they should with regards to overwrites. The following test passes on Windows, but fails on Linux: ``` FileInfo testFileSource = new FileInfo(GetTestFilePath()); testFileSource.Create().Dispose(); FileInfo testFileDest = new FileInfo(GetTestFilePath()); testFileDest.Create().Dispose(); Assert.Throws(() => File.Move(testFileSource.FullName, testFileDest.FullName)); // doesn't throw on Ubuntu ``` +2461 area-System.Data [RC1 blocker] Windows interop getting called on OS X Using SqlClient on CoreCLR (Darwin) calls interop methods that require Windows APIs. This is a regression. This behavior just showed after upgrading DNX. Currently using `dnx-coreclr-darwin-x64.1.0.0-beta7-12264`. Here is the stack trace: > ``` > System.DllNotFoundException : Unable to load DLL 'api-ms-win-core-processthreads-l1-1-0.dll': The specified module could not be found. > (Exception from HRESULT: 0x8007007E) > Stack Trace: > at Interop.mincore.GetCurrentThread() > at Interop.mincore.OpenThreadToken(TokenAccessLevels desiredAccess, WinSecurityContext openAs, SafeAccessTokenHandle& tokenHandle) > at System.Security.Principal.WindowsIdentity.GetCurrentToken(TokenAccessLevels desiredAccess, Boolean threadOnly, Boolean& isImpersonating, Int32& hr) > at System.Security.Principal.WindowsIdentity.GetCurrentInternal(TokenAccessLevels desiredAccess, Boolean threadOnly) > at System.Data.ProviderBase.DbConnectionPoolIdentity.GetCurrent() > at System.Data.ProviderBase.DbConnectionPoolGroup.GetConnectionPool(DbConnectionFactory connectionFactory) > at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPool(DbConnection owningObject, DbConnectionPoolGroup connectionPoolGroup) > at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) > at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) > at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) > at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) > at System.Data.SqlClient.SqlConnection.Open() > at Microsoft.Data.Entity.SqlServer.FunctionalTests.SqlServerTestStore.DeleteDatabase(String name) > at Microsoft.Data.Entity.SqlServer.FunctionalTests.SqlServerTestStore.CreateTransient(Boolean createDatabase) > at Microsoft.Data.Entity.SqlServer.FunctionalTests.SqlServerTestStore.CreateScratch(Boolean createDatabase) > at Microsoft.Data.Entity.FunctionalTests.SharedCrossStoreFixture.CreateTestStore(Type testStoreType) > at Microsoft.Data.Entity.FunctionalTests.SqlServerCrossStoreFixture.CreateTestStore(Type testStoreType) > at Microsoft.Data.Entity.FunctionalTests.EndToEndTest`2..ctor(TFixture fixture) > at Microsoft.Data.Entity.FunctionalTests.SqlServerEndToEndTest..ctor(SqlServerCrossStoreFixture fixture) > ``` +2463 area-System.Net Fix proxy authentication handling during redirects /cc @CIPop @pgavlin @SidharthNabar @ChengTian Reference issue #2168 +2467 area-System.Net Avoid internal enumerator allocations in HttpClient There are many places where `ObjectCollection` instances are enumerated internally. Each time one of these collections is enumerated, an enumerator is allocated on the heap. This change avoids the enumerator allocation by using a struct enumerator (internal-only). +2470 area-System.Net Avoid a closure/delegate allocation in WinHttpHandler One-line change to avoid a closure and delegate allocation on each call. +2473 area-System.Net Initial xplat work for HttpClient Created a CurlHandler class to wrap calls to libcurl. Very limited support currently which will be extended in future checkins. Start of #2480 +2480 area-System.Net Implement System.Net.Http on Unix +2481 area-System.Net Implement System.Net.Primitives on Unix +2482 area-System.Net Implement System.Net.Sockets on Unix +2483 area-System.Net Implement System.Net.Security on Unix +2484 area-System.Net Implement System.Net.NameResolution on Unix +2485 area-System.Net Implement System.Net.NetworkInformation on Unix +2486 area-System.Net Implement System.Net.WebSockets.Client on Unix +2487 area-System.Net Implement System.Net.Utilities on Unix +2488 area-System.Net GetResponseAsync_ServerNameNotInDns_ThrowsWebException failing locally "I just upgraded to Windows 10 RTM and VS2015 RTM. Not sure if it's related, but this test is now failing for me locally. ``` Discovering: System.Net.Requests.Tests Discovered: System.Net.Requests.Tests Starting: System.Net.Requests.Tests System.Net.Requests.Test.HttpWebRequestTest.GetResponseAsync_ServerNameNotInDns_ThrowsWebException(remoteServer: Uri { AbsolutePath = ""/get"", AbsoluteUri = ""http://httpbin.org/get"", Authority = ""httpbin.org"", DnsSafeHost = ""httpbin.org"", Fragment = """", ... }) [FAIL] Assert.True() Failure Stack Trace: \corefx\src\System.Net.Requests\tests\HttpWebRequestTest.cs(398,0): at System.Net.Requests.Test.HttpWebRequestTest.GetRes ponseAsync_ServerNameNotInDns_ThrowsWebException(Uri remoteServer) System.Net.Requests.Test.HttpWebRequestTest.GetResponseAsync_ServerNameNotInDns_ThrowsWebException(remoteServer: Uri { AbsolutePath = ""/get"", AbsoluteUri = ""https://httpbin.org/get"", Authority = ""httpbin.org"", DnsSafeHost = ""httpbin.org"", Fragment = """", ... }) [FAIL] Assert.True() Failure Stack Trace: \corefx\src\System.Net.Requests\tests\HttpWebRequestTest.cs(398,0): at System.Net.Requests.Test.HttpWebRequestTest.GetRes ponseAsync_ServerNameNotInDns_ThrowsWebException(Uri remoteServer) Finished: System.Net.Requests.Tests ``` " +2490 area-System.Net Open Source System.Net.Websockets.Client +2492 area-System.Net Open source System.Net.Security +2493 area-System.Net Avoid unnecessary byte[] allocations in HttpContent `HttpContent.ReadAsStringAsync()` has a bunch of calls to `Encoding.GetPreamble()` as part of its encoding detection. `GetPreamble()` creates a new `byte[]` each time it is called. These `byte[]` allocations can be avoided. +2496 area-Serialization Fix serialization test failure in Minsk timezone Fix #2287 +2499 area-System.Net Replace ad-hoc definitions of SafeHandleZeroOrMinusOneIsInvalid with a single definition. Just as it says. There are at least two or three distinct definitions of this type, all with identical semantics. +2500 area-System.Net Event logging for System.Net.* Event logging for these assemblies is currently unimplemented: we need to design and implement a solution. +2501 area-System.Net Remove dead code - SafeWinHttpHandleWithCallback SafeWinHttpHandleWithCallback is a better pattern; SafeWinHttpHandle is probably a better name. The implementation for the former should probably be folded into the latter. +2502 area-Serialization XmlUTF8TextWriter has not implement WriteStartElementAsync or WriteEndElementAsync WCF's async operations need to call these methods. See https://github.com/dotnet/wcf/issues/221. +2503 area-System.Net Move System.Net.* strings to resources as appropriate.` Just what it says on the tin. +2504 area-Serialization Add FlushAsync and WriteBase64Async in XmlDictionaryWriter WCF needs to use FlushAsync and WriteBase64Async. See https://github.com/dotnet/wcf/issues/222. +2505 area-System.Net Replace single-item pinned buffers in System.Net.WebSockets.Client with PinnableBufferCache. +2506 area-System.Net Optimize locking patterns in System.Net.WebSockets.Client. For example, release the lock between operations and check, under the lock, that the state is still valid before continuing. +2507 area-System.Net Optimize factoring over operations between WinHttpWebSocket and WinHttpWebSocketCallback. It may be profitable to move some code from WinHttpWebSocket to WinHttpWebSocketCallback. +2508 area-System.Net Release pinned buffers at correct time in WinHttpResponseStream, WinHttpWebSocket This is a potential bug: pinned buffers must not be released until it is guaranteed that no further operations will be made that use those buffers. +2509 area-System.Net Handle SSL-related failures in WinHttpWebSocketCallback. This code needs to be shared with WinHttpHandler. +2511 area-System.Net Initial commit of System.Net.WebSockets.Client. +2512 area-System.IO Final major update to the tests for System.IO.FileSystem "- Resolves #2458. FileInfo.Open(FileMode.Append) didn't allow appending per so I modified FileInfo to allow it - Resolves #2460. File.Move and FileInfo.MoveTo no longer always overwrite the destination file. - Resolves #2459. Reenabled Directory_CreateDirectory.DriveLetter_Unix as it's previous failures were not the fault of the method but of the system. - Added Interop.Link to the Interop files for the implementation of File.Move - Consolidated all of the related files that did nothing but inherit from other classes (e.g. File_GetFiles_str and File_GetFiles_str_str were consolidated into File_GetFiles) - Renamed all files to only include parameters in the filename if there are multiple files for a test. - Removed the ""partial"" keyword from some test classes - Finished overhauling all test cases that don't directly require solutions to Build System issues before being re-added (e.g. those that require networked drives or altering the current directory) - Added some tests to increase code coverage slightly in some cases. - All classes and files have been renamed to match the standard set by FileStream: only include parameters in the test/class name if there are overloads - Modified the Unix behavior for distinguishing between a FileNotFoundException and a DirectoryNotFoundException to match that of Windows. " +2522 area-System.Security RSAOpenSsl should support PSS signing RSAOpenSsl::SignHash throws when the signing mode is other than Pkcs1. OpenSSL's RSA_sign function only does PKCS1, and that's how signing currently works. PSS is theoretically available, but needs to be done using lower level API. Remember to keep it bound to OpenSsl 1.0.1 (if possible... if not, it might have to just throw on OSX). +2523 area-System.Security RSAOpenSsl should support OAEP padding using a SHA-2 algorithm Currently it only supports Pkcs1 and OaepSha1. Other hashing algorithms would work, but it requires doing the OAEP manually, since OpenSSL doesn't expose a convenient wrapper function for this. +2524 area-System.Net Reduce HttpWebResponse header allocations Removed unnecessary ToUpperInvariant allocation in WinHttpHandler. HttpWebResponse created a StringBuilder for every header in the response to handle possible multi-values. Common case is a single value so lazy create the buffer when there is more than 1. +2525 area-System.Net System.Uri.GetComponents behavior and MSDN documentation "`System.Uri.GetComponents` method behaves different from the MSDN documentation. https://msdn.microsoft.com/en-us/library/system.uri.getcomponents%28v=vs.110%29.aspx The documentation says: > When `Query` or `Fragment` is specified alone, the return value includes the delimiter. But actually, this method returns value without delimiter. ``` csharp var uri = new Uri(""http://www.example.com/path/to/sample.html?key=value#fragment""); // Expected: ""path/to/sample.html"" (without delimiter; not ""/path/to/sample.html"") Debug.Assert(uri.GetComponents(UriComponents.Path, UriFormat.SafeUnescaped).Equals(""path/to/sample.html"")); // Expected: ""/path/to/sample.html"" (with delimiter) Debug.Assert(uri.GetComponents(UriComponents.Path | UriComponents.KeepDelimiter, UriFormat.SafeUnescaped).Equals(""/path/to/sample.html"")); // FAIL (Expected: ""?key=value"", Actual: ""key=value"") Debug.Assert(uri.GetComponents(UriComponents.Query, UriFormat.SafeUnescaped).Equals(""?key=value"")); // Expected: ""?key=value"" (with delimter) Debug.Assert(uri.GetComponents(UriComponents.Query | UriComponents.KeepDelimiter, UriFormat.SafeUnescaped).Equals(""?key=value"")); // FAIL (Expected: ""#fragment"", Actual: ""fragment"") Debug.Assert(uri.GetComponents(UriComponents.Fragment, UriFormat.SafeUnescaped).Equals(""#fragment"")); // Expected: ""#fragment"" (with delimiter) Debug.Assert(uri.GetComponents(UriComponents.Fragment | UriComponents.KeepDelimiter, UriFormat.SafeUnescaped).Equals(""#fragment"")); ``` I needed `UriComponents.KeepDelimiter` flag just like `UriComponents.Path` to get result with delimiter. I'm not sure that this is a bug (maybe this is a documentation issue; even Mono behaves like this), but I want this ""issue"" to be reviewed anyway. " +2531 area-System.Net Remove StreamToStreamCopy in HttpClient This change removes the internal `StreamToStreamCopy` class, which is only used by `StreamContent.SerializeToStreamAsync`, thus avoiding the instance allocation of the class. `Stream` already has a built-in `CopyToAsync` helper that can be used, that `MemoryStream` [overrides](https://github.com/dotnet/coreclr/blob/ef1e2ab328087c61a6878c1e84f4fc5d710aebce/src/mscorlib/src/System/IO/MemoryStream.cs#L455-L457) to provide a more efficient implementation when the destination is another MemoryStream. Also some minor cleanup: I made some fields `readonly` that could be, and removed an unused using. Question about the existing behavior: If an exception is thrown during the copy operation, the source stream won't be disposed (if it can be disposed). Is this is by design? I was going to wrap the `await _content.CopyToAsync(...)` in a try/finally with the dispose in the finally, but I didn't want to change the existing behavior if it is by design. +2532 area-System.Net Cleanup ByteArrayContent - Use `Task.FromResult` instead of `TaskCompletionSource` (avoids the allocation) - Make readonly fields `readonly` - Remove unused `using` +2534 area-System.Net Make StreamToStreamCopy static Avoids the unnecessary instance allocation in `StreamContent.SerializeToStreamAsync()`. +2535 area-System.Text System.Text.Encoding HeaderName missing Was this property removed on purpose? Or is it just not yet implemented? If it _has_ been purposely removed, what should I be using instead if I want the name to use in email headers? +2537 area-System.IO Win32FileSystem File.Move is inconsistent with its Exception throws "There is an inconsistent behavior in File.Move with regards to non existent directories in paths that is present in both the desktop and core frameworks. If the parent directory of the source file is nonexistent, a FileNotFoundException is thrown. If the parent directory of the dest file is nonexistent, a DirectoryNotFoundException is thrown. Example: ``` File.Create(""test1"").Dispose(); File.Move(Path.Combine(Directory.GetCurrentDirectory(), ""test2"", ""test3""), ""test4""); // throws a FileNotFoundException File.Move(""test1"", Path.Combine(Directory.GetCurrentDirectory(), ""test2"", ""test3"")); // throws a DirectoryNotFoundException ``` The reason for this is that File.Move makes a call to ""InternalExists"" to check that the sourceFile exists in full and if it doesn't then a FileNotFoundException is thrown regardless of which part of the path caused the failure. Removing this check is simple and will leave path checking to the FileSystem implementation (which would be preferable), but it will need to be mirrored in the desktop as well or ignored/worked around on both. " +2538 area-System.Globalization TimeZoneInfo should have consistent Ids across Windows and Linux "Currently Windows has TimeZoneInfo.Id values like ""Pacific Standard Time"" and ""Eastern Standard Time"". But on Linux they are ""America/Los_Angeles"" and ""America/New_York"". We should make these Ids consistent across platforms so the same code can run on both Windows and Linux. Currently if you call TimeZoneInfo.FindSystemTimeZoneById you need to pass in different strings between Windows and Linux. " +2542 area-System.Net Unify System.Net.WebSockets.Client's WinHttpException with System.Net.Http's WinHttpException. +2546 area-System.Security Many deprecation warnings in System.Security.Cryptography.Native on Mac OS X I'm about to unblock the mac build by disabling the warnings, but building System.Security.Crytpography.Native on Mac OS X produces many deprecation warnings. +2551 area-System.Reflection BugFix: Signature Decoder not providing ValueType or Class flag This change would fix #2314. I just added to flags into the provider interface so that the api consumers can retrieve the information in case they need it. In order to do these they need to set the flag `bool NeedProjectedFlags` to `true` . In this case they could know if it is a valuetype or class through the `SignatureTypeCode TypeCode` property added in `ISignatureTypeProvider` as well. Adding @AlexGhiondea +2553 area-System.Net Fix regression in HttpMethod.GetHashCode() A PR from last month changed how GetHashCode() works. This ended up breaking tests against the .NET Native build of System.Net.Http which shares the same source code as CoreFx. So, reverting the change in GetHashCode() and porting additional ToF tests to GitHub. +2554 area-System.Net Update README.md for System.Net.WebSockets.Client System.Net.WebSockets.Client source code was recently ported to GitHub. Updating the README.md for that. cc: @CIPop @SidharthNabar @pgavlin @stephentoub @ericstj +2555 area-System.Net Address feedback on xplat implementation of HttpClient +2556 area-System.Net Consider changing HttpMethod to do equality comparisons case-sensitive Reference PR #2553. Consider changing the `System.Net.Http.HttpMethod` class so that equality comparison between two `HttpMethod` objects is done in a case-sensitive manner (aligning with the latest HTTP RFC) instead of the current case-insensitive manner. +2557 area-System.Net HttpClient via libcurl : proxy support This commit introduces integrates CURL handler with the proxy functionality offered by libcurl +2558 area-System.IO Modified calls to GetTestFilePath within loops to not use the same filename - Added an overload to GetTestFilePath that takes an integer index parameter to add to the generated filename so that calls to the function within loops will be able to differentiate themselves - Resolves #1434 +2559 area-System.Net Initial commit of System.Net.Primitives. +2561 area-System.Net Optimize HttpMethod.GetHashCode() Avoid unnecessary allocations associated with the use of `ToUpperInvariant()`, and test improvements. Also, some minor cleanup (made `_method` `readonly`, removed unused usings, and removed trailing whitespace). +2575 area-System.Data SQL server alias recognized with CLR runtime but not CoreCLR "I wrote a test console application and set up a SQL configuration alias in SQL server configuration manager. When running my application with the dnx 4.51 runtime, the database connection is established with no problem and the application functions normally If I switch the runtime to dnx core 5.0, any attempts to connect to the database from the application fail with the SqlException 'The network path was not found.' Replacing the alias in the connection string with the actual server name resolves the issue. The connection string I'm using is included below: ``` ""connectionString"": ""Server=aliasName;Database=dbName;Trusted_Connection=True;MultipleActiveResultSets=true"" ``` Perhaps the System.Data.SqlClient coreCLR library does not support SQL aliases and this is not a bug. I just think the different behavior between runtimes is a bit odd and the error it produces is not helpful in deciphering the problem. " +2576 area-System.Threading System.Threading.Thread should support all runtimes The current System.Threading.Thread (and System.Threading.ThreadPool) packages only support desktop and CoreCLR. The problem is that with a name like System.Threading.\* and with threads being a core part of many apps, people won't know (or care!) that UWP apps will lose out on that library because only Task is supported. The best solution is to implement Thread/ThreadPool for UWP so that people can use the threading model they're most comfortable with and what's most appropriate for the job. Forcing Task for UWP is counterproductive if it'll mean that UWP will lose out on many libraries that choose to use Thread anyway. When it comes to creation/consumption of .NET Core packages, right now ASPNet is the biggest driver. As much as we want people to use UWP, it's just smaller for now. That puts even greater pressure on UWP as library authors will either not know that Thread isn't available on UWP or care even if they do. .NET Core is supposed to be unifying the BCL and shielding libraries from platform/runtime differences. Please don't fragment it with something as central as Thread. +2582 area-Infrastructure Build warnings from outer-loop only test projects We have a bunch of these on every build: ``` EXEC : warning : System.Xml.RW.FactoryReader.Tests has no tests to run ``` My understanding is that these libraries contain only outer loop tests by design. in that case, we should adjust things to not warn in that case. I also wonder if we really need so many different XML test assemblies... +2583 area-System.Security PfxTests.TestPrivateKey intermittent failure I can't repro it, but I got the following once: ``` System.Security.Cryptography.X509Certificates.Tests.PfxTests.TestPrivateKey [FAIL] System.Security.Cryptography.CryptographicException : OpenCSP failed with error code 2148073494. Stack Trace: D:\Src\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\CapiHelper.cs(306,0): at Internal.NativeCrypto.CapiHelper.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer) D:\Src\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\CapiHelper.cs(698,0): at Internal.NativeCrypto.CapiHelper.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 keySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle) D:\Src\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\RSACryptoServiceProvider.cs(89,0): at System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair() D:\Src\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\RSACryptoServiceProvider.cs(69,0): at System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 keySize, CspParameters parameters, Boolean useDefaultKeySize) D:\Src\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\RSACryptoServiceProvider.cs(50,0): at System.Security.Cryptography.RSACryptoServiceProvider..ctor(CspParameters parameters) D:\Src\corefx\src\System.Security.Cryptography.X509Certificates\src\Internal\Cryptography\Pal.Windows\CertificatePal.PrivateKey.cs(49,0): at Internal.Cryptography.Pal.CertificatePal.get_PrivateKey() D:\Src\corefx\src\System.Security.Cryptography.X509Certificates\src\System\Security\Cryptography\X509Certificates\RSACertificateExtensions.cs(55,0): at System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2 certificate) D:\Src\corefx\src\System.Security.Cryptography.X509Certificates\tests\PfxTests.cs(70,0): at System.Security.Cryptography.X509Certificates.Tests.PfxTests.TestPrivateKey() Finished: System.Security.Cryptography.X509Certificates.Tests === TEST EXECUTION SUMMARY === System.Security.Cryptography.X509Certificates.Tests Total: 157, Errors: 0, Failed: 1, Skipped: 0, Time: 0.854s ``` +2585 area-System.Reflection Merge master to dev/metadata +2586 area-System.Reflection SignatureDecoder isValueType not set correctly for some projected types and should be optional Follow-up to PR #2551 a. isValueType is not set correctly when a type is projected from value type to class or vice versa. b. There should be an opt-in option to pas non-null isValueType. By default, it should always be null and when option is on, it should compute isValueType (including possible projection case) cc @nguerrera +2588 area-System.IO Modified the Unix implementation of FileMove and fixed the corresponding broken FileSystemWatcher tests - Resolves #2460 - Changed the way the UnixFileSystem does File moving; it was previously implemented using the rename syscall but now uses a combination of link and unlink. The side effect of this change is that the FileSystemWatcher will now treat File.Move as a deletion. - Removed all tests from FileSystemWatcher that made calls to File.Move and consolidated them into a new file: FileSystemWatcher.MoveFile.cs. This new file separates tests into Windows and Unix categories and uses Theories to supply the input WatcherChangeType and whether a move should trigger an event for the given type. If we later decide to change the Unix behavior of MoveFile, changing the FileSystemWatcher tests will be a simple matter of flipping the boolean values for the affected tests. +2589 area-System.Net Update README.md for System.Net.Primitives System.Net.Primitives source code is now on GitHub. Updating the README.md. +2591 area-System.Net Cleanup CookieCollection - Public surface area now matches the [reference assembly contract](https://github.com/dotnet/corefx/blob/b84605422a74d69e7aa61a25d8760bfe2fa32296/src/System.Net.Primitives/ref/System.Net.Primitives.cs#L47-L55) and dead code removed - Removed the `CookieCollectionEnumerator` (`_list.GetEnumerator()` used instead). This removes the need for the `_version` field as `List` already tracks this - Avoid the enumerator allocation in `Add(CookieCollection)` by enumerating `_list` - Removed unused internal constructor and associated field - Made the `_list` field readonly - Removed unused usings - Removed trailing whitespace Fixes #2593 +2593 area-System.Net Remove dead code related to CookieCollection.IsReadOnly from System.Net.Primitives **Edit:** `IsReadOnly` is dead code that should be removed from CoreCLR. --- Original issue description (kept here so the comments below make sense): > The [default constructor](https://github.com/dotnet/corefx/blob/63ff03fce5ab7c7ac6920d99af148a447d04c822/src/System.Net.Primitives/src/System/Net/CookieCollection.cs#L33) sets this to `true`, but `CookieCollection` is always mutable (same as on the desktop framework) -- there's nothing in its implementation that enforces it being read-only. > > Is it too late to remove this public property from the System.Net.Primitives contract? (I'm assuming it can't be removed, but figured I'd ask anyway). > > If it can't be removed, should the default value be changed to `false` to reflect the actual behavior? However, this would go against the [MSDN documentation](https://msdn.microsoft.com/en-us/library/w6x28886%28v=vs.110%29.aspx) for the desktop framework, which states the default value is `true`. +2595 area-System.Net Implement System.Net.Primitives for *nix. Platform abstractions have been added for IP address parsing and host information. The closest APIs that most POSIX systems have to the NTDLL IP address parsing APIs are getaddrinfo/getnameinfo. In the case of IPv6 in particular, inet_ntop/inet_pton are not sufficient, as these APIs do not support scope IDs. +2597 area-System.Net HttpClient xplat: Basic request and response processing - Also addressed some of the comments in https://github.com/dotnet/corefx/issues/2555 +2598 area-System.Net Fix HTTPS checks in xplat HttpClient cc: @davidsh @stephentoub @CIPop @SidharthNabar @pgavlin +2604 area-Infrastructure run-test.sh deploys WP8 dataflow if present, fails ETW test On my machine (might have different behavior based on file system order), running with System.Threading.Tasks.Dataflow and System.Threading.Tasks.Dataflow.WP8 dlls in the corefx bin path, the test overlay gets the WP8 build, which doesn't have FEATURE_TRACING and the ETW test fails +2608 area-System.Net From Feedback in issue 2149, Propagate CancellationToken in calls to TrySetCanceled: As a minor improvement, using the new TrySetCanceled overload, you could make this state.Tcs.TrySetCanceled(state.CancellationToken) ... that just helps to ensure that the token is propagated to anyone getting an OperationCanceledException later on. +2610 area-System.IO FileSystem GetLastWriteTime and GetLastAccessTime don't properly convert values to Local DateTimeKind "The following test has different results for each platform: ``` FileInfo testFile = new FileInfo(""test.txt""); testFile.Create().Dispose(); DateTime dt = new DateTime(2014, 12, 1, 12, 0, 0, DateTimeKind.Local); Console.WriteLine(""regular: "" + dt.ToString()); Console.WriteLine(""local: "" + dt.ToLocalTime().ToString()); Console.WriteLine(""utc: "" + dt.ToUniversalTime().ToString()); File.SetLastWriteTime(testFile.FullName, dt); var res = File.GetLastWriteTime(testFile.FullName); Console.WriteLine(""result: "" + res.ToString()); Console.WriteLine(""result.toLocal(): "" + res.ToLocalTime().ToString()); Console.WriteLine(""result.ToUTC(): "" + res.ToUniversalTime().ToString()); Console.WriteLine(); ``` On Desktop Framework: ``` regular: 12/1/2014 12:00:00 PM local: 12/1/2014 12:00:00 PM utc: 12/1/2014 8:00:00 PM result: 12/1/2014 12:00:00 PM result.toLocal(): 12/1/2014 12:00:00 PM result.ToUTC(): 12/1/2014 8:00:00 PM ``` On Win32 Core: ``` regular: 12/1/2014 12:00:00 PM local: 12/1/2014 12:00:00 PM utc: 12/1/2014 8:00:00 PM result: 12/1/2014 12:00:00 PM result.toLocal(): 12/1/2014 4:00:00 AM result.ToUTC(): 12/1/2014 8:00:00 PM ``` On Linux Core: ``` regular: 12/01/2014 12:00:00 local: 12/01/2014 12:00:00 utc: 12/01/2014 4:00:00 result: 12/01/2014 04:00:00 result.toLocal(): 12/01/2014 12:00:00 result.ToUTC(): 12/01/2014 20:00:00 ``` The issue lies in the conversions from DateTimeOffsets to DateTimes: nowhere is DateTimeKind (i.e. local or UTC) considered when reading the attributes of a file. To make the behavior in line with the Desktop, we should convert all filesystem times (CreationTime, WriteTime, AccessTime) to DateTimeKind.Local when converting them from a DateTimeOffset to a DateTime. Thanks to @eerhardt for help finding the lack of conversion. " +2611 area-System.IO Fixed AccessTime, WriteTime, and CreationTime to return a DateTime object with properly set DateTimeKind - The implementations of GetLastAccessTime, GetCreationTime, and GetLastWriteTime were not properly converting the read values to LocalTime for either Windows or Unix. - Resolves #2603, #2610 +2613 area-System.Diagnostics ProcessThreadTests.TestStartTimeProperty failed on Linux in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/1488/console ``` 20:32:15 System.Diagnostics.ProcessTests.ProcessThreadTests.TestStartTimeProperty [FAIL] 20:32:15 Assert+WrapperXunitException : File path: d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Diagnostics.Process\tests\System.Diagnostics.Process.Tests\ProcessThreadTests.cs. Line: 85 20:32:15 ---- Assert.InRange() Failure 20:32:15 Range: (635742559171500970 - 635742559171722530) 20:32:15 Actual: 635742559171972800 20:32:15 Stack Trace: 20:32:16 at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) 20:32:16 at Assert.InRange[T](T actual, T low, T high, String path, Int32 line) 20:32:16 at System.Diagnostics.ProcessTests.ProcessThreadTests.TestStartTimeProperty() 20:32:16 ----- Inner Stack Trace ----- 20:32:16 at Assert.InRange[T](T actual, T low, T high, String path, Int32 line) 20:32:20 Finished: System.Diagnostics.Process.Tests 20:32:20 20:32:20 === TEST EXECUTION SUMMARY === 20:32:20 System.Diagnostics.Process.Tests Total: 55, Errors: 0, Failed: 1, Skipped: 0, Time: 6.307s ``` +2618 area-System.Runtime TimeZoneInfo.TransitionTime cannot support Israel, et al. time zones on Linux "It currently isn't possible to support Israel, Asia/Amman, Asia/Gaza, Asia/Hebron, Pacific/Fiji and America/Godthab daylight savings rules in the POSIX string that is used on Linux to describe the daylight savings transitions for years after the last transition stored in the file. Here is Israel's POSIX string: IST-2IDT,M3.4.4/**26**,M10.5.0 This is saying that daylight savings starts 26 hours after midnight of the 4th Thursday of March. ""On July 8, 2013, the Israeli Knesset approved the bill to extend IDT even further. According to the bill, IDT will begin on the Friday before the last Sunday of March, and end on the last Sunday of October."" From https://en.wikipedia.org/wiki/Israel_Summer_Time So this might not be the last Friday of the month. Some years it is the last Friday of the month, some years it is the 2nd to last. This rule isn't possible to describe in the current [TimeZoneInfo.TransitionTime structure](https://msdn.microsoft.com/en-us/library/vstudio/system.timezoneinfo.transitiontime%28v=vs.110%29.aspx). It can only specify the 4th Friday, or the last Friday, there is no way to say ""the Friday before the last Sunday"". To fix this, we should add a ""TimeSpan Offset"" to TransitionTime that we can use to convert the string ""M3.4.4/26"" into a TransitionTime structure. Here the TimeSpan Offset = 26 hours, and month = 3, week = 4, day = 4. The ""TimeOfDay"" property would be ignored in this case. Note that America/Godthab uses a negative time offset: WGT3WGST,M3.5.0/-2,M10.5.0/-1. " +2619 area-System.Reflection Three TypeExtensions tests failing on Linux with xUnit 2.1.0 A few of the reflection tests seem to be failing on Linux when run with xUnit 2.1.0. These tests are doing fairly simple stuff, just subscribing some events and then triggering them, and checking the state afterwards. ``` System.Reflection.Compatibility.UnitTests.EventInfoAddEventHandler.PosTest2 System.Reflection.Compatibility.UnitTests.EventInfoAddEventHandler.PosTest3 System.Reflection.Compatibility.UnitTests.EventInfoAddEventHandler.PosTest1 ``` +2621 area-System.Net Fix casing to unblock Linux native builds I had hoped that this was going to be fixed by PR #2591, but that PR appears to be on hold for the moment. This change fixes the casing in the proj file so that native Linux builds will pass. +2624 area-System.Reflection Bump file version of S.R.Metadata to match assembly version +2632 area-System.IO DirectoryInfo.ToString inconsistent with Desktop On Desktop creating a DirectoryInfo with a full path returns a full path. Creating a DirectoryInfo with a short path, or creating it from a parent (eg: CreateSubdirectory, EnumerateDirectories,etc) returns just the directory name. On CoreCLR we are always trimming to just the directory name. I traced this behavior back to an IFDEF in the original code https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/IO/DirectoryInfo.cs#L639-L643. It seems that the original CoreCLR implementation (Silverlight/phone) hardcoded the short name. We should prefer the desktop behavior instead of the current. The current behavior is due to the legacy behavior of SL trying to sandbox the app. This is not a goal for CoreCLR and we don't have a back-compat burden for the current implementation. We also need to examine similar cases in other FileSystem types. +2635 area-System.Security Ensure that X509Certificates file tests run the gamut of supported formats. Updating the testdata package isn't the most friendly of things to do right now, so tracking this in an issue for later. - [X] X509-DER - [ ] X509-PEM - [X] PKCS12 - [ ] PKCS7 - [ ] PKCS7-PEM +2640 area-System.IO [IO.Pipes] Outer cancellation of WaitForConnectionAsync/ReadAsync/WriteAsync "Consider the following code ``` c# [DllImport(""api-ms-win-core-io-l1-1-0.dll"", SetLastError = true)] internal static unsafe extern bool CancelIoEx(SafeHandle handle, NativeOverlapped* lpOverlapped); public static async Task CanBeCanceled_False() { using (NamedPipeServerStream server = new NamedPipeServerStream(""unique3"", PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous, 0, 0)) { Task waitForConnectionTask = server.WaitForConnectionAsync(CancellationToken.None); // cannot be canceled unsafe { CancelIoEx(server.SafePipeHandle, null); } await waitForConnectionTask; // throws OperationCanceledException } } public static async Task CanBeCanceled_True() { using (NamedPipeServerStream server = new NamedPipeServerStream(""unique3"", PipeDirection.InOut, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous, 0, 0)) { var ctx = new CancellationTokenSource(); Task waitForConnectionTask = server.WaitForConnectionAsync(ctx.Token); // could be canceled unsafe { CancelIoEx(server.SafePipeHandle, null); } await waitForConnectionTask; // throws IOException: IO operation was aborted unexpectedly. } } ``` Is it intentional behavior or it's a bug that we receive `OperationCanceledException` even if we couldn't cancel in a normal way (without interop) ? " +2648 area-System.ComponentModel RangeAttribute with string constructor fails on various locales "`RangeAttribute(Type, string, string)` can be used to validate various types implementing `IComparable`. However, it does the conversion from the string parameters using the current culture, which is wrong. Simple repro: ``` Thread.CurrentThread.CurrentCulture = new CultureInfo(""fr""); new RangeAttribute(typeof(decimal), ""0.1"", ""0.9"").IsValid(123m) ``` fails with a `FormatException`: _0.1 is not a valid value for Decimal._ While in this sample the strings could be adjusted at runtime to represent numbers using the current culture, the typical usage of an attribute is ``` [Range(typeof(decimal), ""0.1"", ""0.9"")] public decimal Value { get; set; } ``` where the values **must** be constants, and can't change depending on the culture. Culprit line: https://github.com/dotnet/corefx/blob/master/src/System.ComponentModel.Annotations/src/System/ComponentModel/DataAnnotations/RangeAttribute.cs#L203 The fix can't be to simply change `CurrentCulture` to `InvariantCulture` here, since this will alter the runtime validation behavior: `InvariantCulture` should be used to convert the `min` and `max` parameters (maybe falling back to `CurrentCulture` for back-compat, if the constructor was used directly), but `CurrentCulture` should be kept to validate the user-entered value. If accepted, I can add some unit tests and a fix for this issue. " +2651 area-System.Net Automatic Content Decompression Modified CurlHandler to set the curl options for automatic response content decompression. +2658 area-Serialization Fix one of DCS constructors that cause NRE in wcf Verified that this fixes #2435 by aligning with the behavior on Desktop cc: @mconnew +2666 area-System.Reflection Bug fix: When decoding a modified type it was throwing a BadImageForm… …atException, the previous change to get the valuetype and class prefix flag broke that because didn't update DecodeModifiedType to read a compressed integer instead of reading a SignatureTypeCode. +2667 area-System.Security TestLoadSignedFile failure in CI See: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/2796/testReport/junit/System.Security.Cryptography.X509Certificates.Tests/LoadFromFileTests/TestLoadSignedFile/ ``` MESSAGE: System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. +++++++++++++++++++ STACK TRACE: at Internal.Cryptography.Pal.CertificatePal.GetSignerInPKCS7Store(SafeCertStoreHandle hCertStore, SafeCryptMsgHandle hCryptMsg) in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Security.Cryptography.X509Certificates\src\Internal\Cryptography\Pal.Windows\CertificatePal.Import.cs:line 142 at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, String password, X509KeyStorageFlags keyStorageFlags) in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Security.Cryptography.X509Certificates\src\Internal\Cryptography\Pal.Windows\CertificatePal.Import.cs:line 84 at Internal.Cryptography.Pal.CertificatePal.FromFile(String fileName, String password, X509KeyStorageFlags keyStorageFlags) in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Security.Cryptography.X509Certificates\src\Internal\Cryptography\Pal.Windows\CertificatePal.Import.cs:line 29 at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags) in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Security.Cryptography.X509Certificates\src\System\Security\Cryptography\X509Certificates\X509Certificate.cs:line 72 at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName) in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Security.Cryptography.X509Certificates\src\System\Security\Cryptography\X509Certificates\X509Certificate.cs:line 55 at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName) in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Security.Cryptography.X509Certificates\src\System\Security\Cryptography\X509Certificates\X509Certificate2.cs:line 48 at System.Security.Cryptography.X509Certificates.Tests.LoadFromFileTests.TestLoadSignedFile() in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Security.Cryptography.X509Certificates\tests\LoadFromFileTests.cs:line 127 ``` +2676 area-System.Net Merge changes from TFS +2684 area-System.IO FSW tests don't verify path information The tests are only checking that events are occurring, but not that they're for the right/expected paths. +2688 area-System.Reflection System.Reflection.Metadata needs a MarshalDecoder for marshalling descriptor types. It needs a marshal decoder such as CustomAttributes decoder and SignatureDecoder to decode marshalling descriptor since it specifications on ECMA spec 355 are diferent. cc @nguerrera @AlexGhiondea +2699 area-System.IO Code cleanup for System.IO.Packaging "- [x] ContentType.cs - line 234 - use String.Equals instead of String.Compare - [x] ContentType.cs - 83 - if (contentType.Length == 0) - [x] PackagePart.cs - 849 - return !s.CanRead && !s.CanSeek && !s.CanWrite; - [ ] Package.cs - 976 - What's the purpose of the try block with an empty finally? - [x] PackageUriHelper.cs - 1297 - at least one other place where the same thing was declared. Should they be consolidated? - [x] PackageUriHelper.cs - 1025 - Rather than using comments, these could use named arguments. - [x] PackageUriHelper.cs - 991 - There are various places thus far in the implementation that use '/' hardcoded... should they instead be using ForwardSlashChar? - [ ] PackageUriHelper.cs - 926 - Why not just: return the_condition; - [x] PackUriHelper.cs - 695 - the chars array could be stackalloc'd instead of heap allocated. - [x] PackUriHelper.cs - 451 - Any reason not to combine these Path.Combine calls? - [x] InternalRelationshipCollection.cs - 592 - Debug.Fail? - [ ] InternalRelationshipCollection.cs - 325 - Formatting off - [ ] IgnoreFlushAndCloseStream.cs - 18 - This comment appears out-of-date: there is no IgnoreFlushAndClose property, and Flush/Dispose never delegate to the wrapped stream's corresponding members. - [ ] IgnoreFlushAndCloseStream.cs - 48 - get { return !_disposed && _stream.CanRead; } - [ ] FileFormatException.cs - 139 - readonly? - [x] ContentType.cs - 666 - This loop could be replaced by a call to Array.IndexOf. - [x] ContentType.cs - 620 - return IsAsciiLetter(character) || (character >= '0' && character <= '9'); - [x] ContentType.cs - 561 - It seems a bit odd to be explicit about the kind of comparison we want for the characters and to be doing a Compare rather than Equal when what we're checking for is just an empty string. - [x] ContentType.cs - 527 - if (string.IsNullOrEmpty(token)) - [x] ContentType.cs - 531 - The body of this loop could be simplified to just: if (!IsAsciiLetterOrDigit(token[i]) && !IsAllowedCharacter(token[i])) throw new ArgumentException(SR.InvalidToken); - [ ] ContentType.cs - 398 - There's a lot of string manipulation / allocation / etc. happening in these various helper functions. Doesn't need to be fixed now, as it's not clear that it's a problem. But it'd be interesting to do some perf testing / profiling and see what pops as hot spots that we'll potentially want to fix. - [x] ContentType.cs - 390 - ""ans"" => ""and"" - [ ] ContentType.cs - 225 - Do we know that MoveNext is always going to return true here such that Current will be valid? - [ ] ContentType.cs - 89 - It doesn't appear that we know at this point that contentType isn't empty. Couldn't this result in indexing out of bounds into contentType? - [x] ContentType.cs - 262 - ""paramterKey"" => ""parameterKey"" - [ ] PackUriHelper.cs - 791 - Could this just do a ordinal-ignorecase comparison rather than allocating new strings with ToUpperInvariant? - [x] ContentType.cs - 323 - Is this type used anywhere? It appears to be dead code. - [x] ContentType.cs - 294 - Is this type used anywhere? It appears to be dead code. - [x] PackUriHelper.cs - 737 - I don't know if allocations matter here, but you could trivially avoid this allocation by using IndexOf instead of Contains. - [x] ContentType.cs - 604 - Couldn't it use Array.IndexOf? " +2703 area-System.Threading Add a way to wait for a task without throwing `Task.Wait` throws an exception if the task is faulted or cancelled. Sometimes it is necessary to wait for completion but not be interrupted by an exception. Catching and swallowing the exception is a really bad workaround. Using exceptions for control flow is not a good thing. Also, exceptions are extremely slow. 1. The `Wait` method should have an overload that allows the caller to specify that he does not want an exception. 2. There should be a method `Task WhenCompleted(this Task task)` that returns a new task that becomes completed when the base task becomes completed. Cancellation and exceptions should not be propagated. That way we can write `await myTask.WhenCompleted()` to avoid exceptions. 3. In the same spirit as (2) there probably should be `WhenCompletedSuccessfully`, `WhenCancelled` and `WhenFaulted`. These tasks complete when the underlying task transitions to the respective state. They do not ever complete if the underlying task transitions to a different final state. They should _not_ become cancelled in that case because the idea of these methods is that you can avoid exceptions for control flow in a convenient manner. +2705 area-System.Net Fixing multi response header issue along with putting checks in http message parser. …message parser ``` modified: System/Net/Http/Unix/CurlCallbacks.cs ``` +2711 area-System.Reflection Merge master into dev/metadata @tmat @stephentoub @nguerrera +2715 area-System.Security System.Security.Cryptography.Hashing.Algorithms contract reference is forwarding Hi, It seems that in System.Security.Cryptography.Hashing.Algorithms v4.0.0-beta-23127 all types are being forwarded, even though they are implemented in corefx. Is there any reason for this change or is it a mistake? Thanks. +2717 area-System.Threading Four failures in new System.Threading.Timer tests in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release/946/console ``` TimerFiringTests.Timer_CanDisposeSelfInCallback [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: d:\j\workspace\dotnet_corefx_windows_release\src\System.Threading.Timer\tests\TimerFiringTests.cs(126,0): at TimerFiringTests.Timer_CanDisposeSelfInCallback() TimerFiringTests.NonRepeatingTimer_ThatHasAlreadyFired_CanChangeAndFireAgain [FAIL] Should have received a second timer event after changing it Expected: True Actual: False Stack Trace: d:\j\workspace\dotnet_corefx_windows_release\src\System.Threading.Timer\tests\TimerFiringTests.cs(150,0): at TimerFiringTests.NonRepeatingTimer_ThatHasAlreadyFired_CanChangeAndFireAgain() TimerFiringTests.Running_Timer_CanBeFinalizedAndStopsFiring [FAIL] Failed to get first timer fire Expected: True Actual: False Stack Trace: d:\j\workspace\dotnet_corefx_windows_release\src\System.Threading.Timer\tests\TimerFiringTests.cs(160,0): at TimerFiringTests.Running_Timer_CanBeFinalizedAndStopsFiring() TimerFiringTests.MultpleTimers_PeriodicTimerIsntBlockedByABlockedTimer [FAIL] Blocking callback prevented a second timer from firing Expected: True Actual: False Stack Trace: d:\j\workspace\dotnet_corefx_windows_release\src\System.Threading.Timer\tests\TimerFiringTests.cs(184,0): at TimerFiringTests.MultpleTimers_PeriodicTimerIsntBlockedByABlockedTimer() Unhandled Exception: Xunit.Sdk.TrueException: Should have received a second callback while blocked Expected: True Actual: False at Xunit.Assert.True(Nullable`1 condition, String userMessage) at TimerFiringTests.<>c__DisplayClass22.b__20(Object o) at System.Threading.TimerQueueTimer.CallCallbackInContext(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.TimerQueueTimer.CallCallback() at System.Threading.TimerQueueTimer.Fire() at System.Threading.TimerQueue.FireNextTimers() at System.Threading.TimerQueue.AppDomainTimerCallback() Finished: System.Threading.Timer.Tests ``` +2720 area-System.Net HttpClient xplat: Optimize number of socket callbacks In earlier version, a curl_multi_socket_action was performed everytime the callback was invoked irrespective of whether there was activity on the socket. This in turn causes more callbacks when libcurl tries to read the socket but finds no data. This can be made more efficient by waiting for activity on the socket and informing libcurl accordingly - Also fixed a bug in the timer callback for <=0 timeout values - Fixed a bug in CheckForCompletedTransfers where a mismatch could occur between the easy handle specified in the DONE msg - Fixing a SEGV that can happen due to stack overflow caused by callback getting invoked recursively because curl_multi_socket_action was being called in the callback code cc: @stephentoub @davidsh @CIPop @SidharthNabar @pgavlin +2722 area-System.IO Remove USE_OVERLAPPED from FileSystem We now have a overlapped implementation that works on UWP so we should remove the USE_OVERLAPPED ifdefs. +2727 area-System.Collections IsPrime function unnecessary, GetPrime function inefficient. In System.Collections.HashHelpers and System.Collections.NonGeneric\src\System\Collections\Hashtable and System.Private.DataContractSerialization\src\System\Runtime\Serialization\ObjectToIdCache.cs there are copies of the same function: private static bool IsPrime(int candidate) It is used by: private static int GetPrime(int min) Which is called by: Initialize, ExpandPrime, and TrimExcess They all use a table in GetPrime: E.g. int[] primes = {3, 7, 17, 37, 89, 197, 431, 919, 1931,...7199369}. Notice that each successive prime is larger than twice the preceding one. This appears to be because hashtables are doubled in size when they need to be expanded. But they are only allowed to expand up to 2G. The GetPrime function calls IsPrime to find a prime when the search goes above the limit of the primes table. The ExpandPrime function is the most interesting as it more than doubles the size each time: public static int ExpandPrime(int oldSize) { int newSize = 2 \* oldSize; .... return GetPrime(newSize); Therefore it appears that we don't need the IsPrime function at all. Instead we simply need to expand the primes table up to 2146435069 (largest prime below 2G). {..., 7199369, 21598111, 64794337, 194383039, 583149179, 1749447569, 953375459, 2146435069}; Recommendation: 1) Use a common GetPrime(int min) function instead of having three copies 2) Expand the primes table as described above. 3) Remove the IsPrime function, modify GetPrime to only use the table. +2729 area-System.Numerics Fix very sporadically failing Complex test "I'd previously ""fixed"" this same test by incorporating infinity support, but I needed to do the comparisons based on IsNegative/PositiveInfinity rather than by comparing the values directly. cc: @mellinoe " +2730 area-System.IO Reworked the tests for System.IO.Pipes I made a number of changes to our current Pipes tests and added several hundred new tests for edge cases that were previously ignored, particularly with Named Pipes defined with an InOut PipeDirection - Refactored the great Throws tests currently in place to allow testing pipes with all in/out direction combinations for both Named pipes as well as Anonymous pipes - Replaced all relevant hardcoded pipe names with unique values - Reorganized the tests to use more inheritance and share more code for easy extensibility - All test classes are now in the same namespace: System.IO.Pipes.Tests - Expanded tests for InOut NamedPipes and made all existing In/Out tests also test all valid InOut combinations. - Split the Named and Anonymous tests into two separate folders: NamedPipeTest and AnonymousPipeTest - Increased code coverage across all test classes +2732 area-System.Numerics what set's Vector.IsHardwareAccelerated to true in System.Numerics.Vectors? I am writing a test app, 64 bit using System.Numerics.Vectors 4.1.0. I am trying to understand how `Vector.IsHardwareAccelerated` gets set to true. I’ve tried running this on three Haswell based systems. I get `Vector.IsHardwareAccelerated` as false during debugging. But when I run it from command prompt, I get true in one system and false in other two system. +2733 area-System.IO Cleaned up tests for closed issues Design review feedback brought about the closed issues #2537, #2403, #2402, #2369, #1728. This Commit cleaned up the tests around those decisions +2737 area-System.IO Removed USE_OVERLAPPED from FileSystem All ifdefs around USE_OVERLAPPED have been removed such that the new behavior mimics the old behavior when USE_OVERLAPPED = true. Resolves #2722 +2738 area-System.Reflection BlobReader.ReadBoolean: Interpret any non-zero byte as True @nguerrera @davkean +2743 area-System.Security PlatformNotSupportedException on Unix when exporting multiple private keys in a single PFX The beta7 PFX/PKCS12 export code will use OpenSSL's PKCS12_create function, which only supports one private key. OpenSSL doesn't have an inherent limitation against PKCS12 files containing multiple private keys, but the helper function can't handle it; and we're running out of time in beta7 to write it out longhand. +2745 area-System.Security Not all private keys are available when importing a PFX with multiple private keys on Unix The OpenSSL helper function `PKCS12_parse` only emits a single private key (and its associated certificate), the rest of the certificates appear, but as public-key only. Similar to #2743, the fix would be to not use the helper function, but to get into the nitty-gritty with PKCS12 primitives. +2746 area-System.Security CryptographicException on Unix when exporting an empty collection as a PFX This has the same underlying function as a cause as #2743, `PKCS12_create`. Since it never added anything to an authsafe it never created the authsafe stack, and then reports a data validation error because it didn't expect a `NULL` to make it through. When/if we switch to creating PFX files without the helper function's limitations this should go away (but it's a separate problem, and could accidentally not be fixed, so a separate issue). +2751 area-System.Diagnostics Trace.IndentLevel does not behave consistently when used from multiple threads "According to [the documentation](https://msdn.microsoft.com/en-us/library/system.diagnostics.trace.indentlevel), `Trace.IndentLevel` should be stored on a per-thread basis. And [it is](https://github.com/dotnet/corefx/blob/41e203011152581a6c65bb81ac44ec037140c1bb/src/System.Diagnostics.TraceSource/src/System/Diagnostics/TraceInternal.cs#L16), but [a cached version is also kept in each `TraceListener`](https://github.com/dotnet/corefx/blob/41e203011152581a6c65bb81ac44ec037140c1bb/src/System.Diagnostics.TraceSource/src/System/Diagnostics/TraceListener.cs#L18). And since listeners are shared among all threads and the listener-cached version of `IndentLevel` is updated only when `Trace.IndentLevel` changes on some thread, this means that the actual indent level that is printed is the indent level of the last thread that changed it, it doesn't matter what the indent level of the current thread is. Sample application to replicate the issue: ``` c# using System; using System.Diagnostics; using System.Threading; using System.Threading.Tasks; namespace TraceIndentLevel { static class Program { static void Main() { Trace.Listeners.Add(new ConsoleTraceListener()); Task.WaitAll(Task.Run((Action) T1), Task.Run((Action) T2)); } static readonly Barrier barrier = new Barrier(2); static void T1() { Trace.Indent(); Trace.Indent(); Trace.TraceInformation(""Thread 1, IndentLevel should be {0}."", Trace.IndentLevel); barrier.SignalAndWait(); barrier.SignalAndWait(); Trace.TraceInformation(""Thread 1, IndentLevel should be {0}."", Trace.IndentLevel); // this should be a noop, but isn't Trace.IndentLevel = Trace.IndentLevel; Trace.TraceInformation(""Thread 1, IndentLevel should be {0}."", Trace.IndentLevel); } static void T2() { barrier.SignalAndWait(); Trace.TraceInformation(""Thread 2, IndentLevel should be {0}."", Trace.IndentLevel); Trace.Indent(); Trace.TraceInformation(""Thread 2, IndentLevel should be {0}."", Trace.IndentLevel); barrier.SignalAndWait(); } } } ``` On my computer (using desktop .Net, but I believe core will behave the same), this prints: ``` TraceIndentLevel.exe Information: 0 : Thread 1, IndentLevel should be 2. TraceIndentLevel.exe Information: 0 : Thread 2, IndentLevel should be 0. TraceIndentLevel.exe Information: 0 : Thread 2, IndentLevel should be 1. TraceIndentLevel.exe Information: 0 : Thread 1, IndentLevel should be 2. TraceIndentLevel.exe Information: 0 : Thread 1, IndentLevel should be 2. ``` What I would expect is that the value returned by `Trace.IndentLevel` and the actual indent level matched: ``` TraceIndentLevel.exe Information: 0 : Thread 1, IndentLevel should be 2. TraceIndentLevel.exe Information: 0 : Thread 2, IndentLevel should be 0. TraceIndentLevel.exe Information: 0 : Thread 2, IndentLevel should be 1. TraceIndentLevel.exe Information: 0 : Thread 1, IndentLevel should be 2. TraceIndentLevel.exe Information: 0 : Thread 1, IndentLevel should be 2. ``` " +2755 area-System.Reflection Downgrade Reflection.Metadata to Immutable Collections 1.1.36 Can't use the latest version w/o updating VS. +2756 area-Microsoft.CSharp Need to find a way to run tests involving expression trees in interpreter mode "This involves: Linq.Expressions System.Dynamic.Runtime Microsoft.CSharp What complicates matters is that Linq.Expressions must be rebuilt with ""isInterpreting=true"" to switch from compiling to interpreting. " +2757 area-System.IO DirectoryInfo.GetFiles killed by privileged folders The seemingly useful DirectoryInfo.GetFiles method (with the SearchOption.AllDirectories parameter) is unreliable because any access control check failure causes it to bomb out with an exception rather than returning files that _are_ accessible to the user. For instance, call this on any drive root from a non-elevated process and you'll get: `Access to the path 'D:\$RECYCLE.BIN\S-1-5-18' is denied. Type: System.UnauthorizedAccessException Source: mscorlib at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileSystemEnumerableIterator``1.AddSearchableDirsToStack(SearchData localSearchData) at System.IO.FileSystemEnumerableIterator``1.MoveNext() at System.Collections.Generic.List``1..ctor(IEnumerable``1 collection) at System.IO.DirectoryInfo.InternalGetFiles(String searchPattern, SearchOption searchOption)` The API should be smart enough to skip enumerating folders to which it doesn't have permission, or it should offer some sort of callback or parameter to permit doing so. +2758 area-System.Net Enabling cookie container in HTTP xplat ``` modified: ../../Common/src/Interop/Unix/libcurl/Interop.libcurl_types.cs modified: System/Net/Http/Unix/CurlHandler.cs modified: System/Net/Http/Unix/HttpClientHandler.Unix.cs ``` Enabled cookie container & manual cookie support in HTTP. +2760 area-System.Net HttpClient response stream.Read/ReadAsync sporadically returns 0 for a non empty response We see it both in WCF streaming scenarios (receiving a stream from WCF service) and in simple repros like: ``` var c = (await client.PostAsync(url, new StreamContent(new MyStream()))).Content; var stream = await c.ReadAsStreamAsync(); byte[] buff = new byte[4096]; var bytesread = await stream.ReadAsync(buff, 0, 4096); // bytesread is sporadically 0 even though the response does contain data ``` About a half of WCF streaming scenarios fail because of this bug +2761 area-System.Net Unhandled System.Net.Http.WinHttpException in WCF streaming scenarios This blocks WCF streaming on Project K as it happens within first several seconds of single-threaded(!) stress run: ``` 0:020> !pe Exception object: 180d3de4 Exception type: System.Net.Http.WinHttpException Message: Unknown error (0x2ef2) InnerException: StackTrace (generated): SP IP Function 0EACED5C 0890E8FF System_Net_Http!System.Net.Http.WinHttpHandler.SetStatusCallback(SafeWinHttpHandle, WINHTTP_STATUS_CALLBACK)+0x57 0EACED70 0890D4C9 System_Net_Http!System.Net.Http.WinHttpHandler+d__1.MoveNext()+0x779 0EACEFE4 0781C695 mscorlib_ni!System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c__DisplayClass2.b__5(System.Object)+0x35 0EACEFEC 0781F4DB mscorlib_ni!System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)+0x43 0EACEFF4 077C4FAD mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0x9d 0EACF02C 0781F48B mscorlib_ni!System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()+0x43 0EACF03C 0781FA25 mscorlib_ni!System.Threading.ThreadPoolWorkQueue.Dispatch()+0x1e9 0EACF08C 078DB3CA mscorlib_ni!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()+0xa ``` The exception results in the following second-chance exception in the process: ``` 0:020> kL # ChildEBP RetAddr 00 0eacee0c 0fb2c37f KERNELBASE!RaiseException+0x48 01 0eaceea8 0fbb6bb3 coreclr!RaiseTheExceptionInternalOnly+0x1d9 02 0eacef28 077c4fad coreclr!IL_Rethrow+0x6a 03 0eacf020 0781f48b mscorlib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0x9d 04 0eacf034 0781fa25 mscorlib_ni!System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()+0x43 05 0eacf084 078db3ca mscorlib_ni!System.Threading.ThreadPoolWorkQueue.Dispatch()+0x1e9 06 0eacf094 0fda302f mscorlib_ni!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()+0xa 07 0eacf094 0fb77a92 coreclr!CallDescrWorkerInternal+0x34 08 0eacf0c8 0fb77d01 coreclr!CallDescrWorkerWithHandler+0x60 09 0eacf134 0fc65182 coreclr!MethodDescCallSite::CallTargetWorker+0x158 0a (Inline) -------- coreclr!MethodDescCallSite::Call_RetBool+0xb 0b 0eacf1b4 0fb27f3e coreclr!QueueUserWorkItemManagedCallback+0x23 0c 0eacf1c8 0fb27f91 coreclr!ManagedThreadBase_DispatchInner+0x5c 0d 0eacf25c 0fb2828e coreclr!ManagedThreadBase_DispatchMiddle+0x4e 0e 0eacf2c0 0fb28340 coreclr!ManagedThreadBase_DispatchOuter+0x66 0f 0eacf2e4 0fc18912 coreclr!ManagedThreadBase_FullTransitionWithAD+0x2f 10 (Inline) -------- coreclr!ManagedThreadBase::ThreadPool+0x10 11 0eacf388 0fbfbaf7 coreclr!ManagedPerAppDomainTPCount::DispatchWorkItem+0x99 12 0eacf39c 0fbfc312 coreclr!ThreadpoolMgr::ExecuteWorkRequest+0x31 13 0eacf404 0fb23702 coreclr!ThreadpoolMgr::WorkerThreadStart+0x391 14 0eacf7a8 76f97c04 coreclr!Thread::intermediateThreadProc+0x4d 15 0eacf7bc 773ead1f KERNEL32!BaseThreadInitThunk+0x24 16 0eacf804 773eacea ntdll!__RtlUserThreadStart+0x2f 17 0eacf814 00000000 ntdll!_RtlUserThreadStart+0x1b ``` +2762 area-System.Net Fast native memory leak in WinHttpHandler on corefx The leak is super-fast - 1GB+/minute and completely blocks WCF streaming scenarios. Here are the top offending call stacks: ``` ntdll!RtlAllocateHeap+14D (d:\blue\minkernel\ntos\rtl\heap.c, 1872) msvcrt!malloc+90 (d:\9147\minkernel\crts\crtw32\heap\malloc.c, 285) webio!zcalloc+20 (d:\9147\inetcore\lib\zlib12\zutil.c, 314) webio!updatewindow+39 (d:\9147\inetcore\lib\zlib12\inflate.c, 337) webio!inflate+12D7 (d:\9147\inetcore\lib\zlib12\inflate.c, 1137) webio!Decompress+56 (d:\9147\inetcore\lib\zlib12\iel1_zlib12_wrapper\zlib_wrapper.c, 218) webio!WapDecompProcessCompressedData+33 (d:\9147\net\webio\util\decompression.c, 510) webio!WaDecompDataNeeded+1C (d:\9147\net\webio\util\decompression.c, 580) webio!WapHandleParsedHttpResponse+1D74A (d:\9147\net\webio\http\recvresp.c, 1656) webio!WapHttpConnectionReceiveCompletion+258 (d:\9147\net\webio\http\httpconn.c, 2974) webio!WapTcpReceiveCompletionRoutine+89 (d:\9147\net\webio\conn\tcpconn.c, 3538) webio!WapTcpThreadPoolCompletionRoutine+3F (d:\9147\net\webio\conn\tcpconn.c, 822) webio!WapTpIoCompletionRoutine+B2 (d:\9147\net\webio\util\thrdpool.c, 370) KERNELBASE!BasepTpIoCallback+3A (d:\9147\minkernel\threadpool\kernel32\threadpool.c, 213) ntdll!TppIopExecuteCallback+D6 (d:\blue\minkernel\threadpool\ntdll\io.c, 371) ntdll!TppWorkerThread+52A (d:\blue\minkernel\threadpool\ntdll\worker.c, 1023) KERNEL32!BaseThreadInitThunk+24 (d:\9147\base\win32\client\thread.c, 78) ntdll!__RtlUserThreadStart+2F (d:\blue\minkernel\ntdll\rtlstrt.c, 1029) ntdll!_RtlUserThreadStart+1B (d:\blue\minkernel\ntdll\rtlstrt.c, 944) --- ntdll!RtlAllocateHeap+14D (d:\blue\minkernel\ntos\rtl\heap.c, 1872) webio!WaDecompCreateContext+AB (d:\9147\net\webio\util\decompression.c, 219) webio!WapHandleParsedHttpResponse+1D61A (d:\9147\net\webio\http\recvresp.c, 1496) webio!WapHttpConnectionReceiveCompletion+258 (d:\9147\net\webio\http\httpconn.c, 2974) webio!WapTcpReceiveCompletionRoutine+89 (d:\9147\net\webio\conn\tcpconn.c, 3538) webio!WapTcpThreadPoolCompletionRoutine+3F (d:\9147\net\webio\conn\tcpconn.c, 822) webio!WapTpIoCompletionRoutine+B2 (d:\9147\net\webio\util\thrdpool.c, 370) KERNELBASE!BasepTpIoCallback+3A (d:\9147\minkernel\threadpool\kernel32\threadpool.c, 213) ntdll!TppIopExecuteCallback+D6 (d:\blue\minkernel\threadpool\ntdll\io.c, 371) ntdll!TppWorkerThread+52A (d:\blue\minkernel\threadpool\ntdll\worker.c, 1023) KERNEL32!BaseThreadInitThunk+24 (d:\9147\base\win32\client\thread.c, 78) ntdll!__RtlUserThreadStart+2F (d:\blue\minkernel\ntdll\rtlstrt.c, 1029) ntdll!_RtlUserThreadStart+1B (d:\blue\minkernel\ntdll\rtlstrt.c, 944) ----- ntdll!RtlAllocateHeap+14D (d:\blue\minkernel\ntos\rtl\heap.c, 1872) msvcrt!malloc+90 (d:\9147\minkernel\crts\crtw32\heap\malloc.c, 285) webio!zcalloc+20 (d:\9147\inetcore\lib\zlib12\zutil.c, 314) webio!inflateInit2_+4F (d:\9147\inetcore\lib\zlib12\inflate.c, 164) webio!CreateDecompression+61 (d:\9147\inetcore\lib\zlib12\iel1_zlib12_wrapper\zlib_wrapper.c, 175) webio!WapHandleParsedHttpResponse+1D61A (d:\9147\net\webio\http\recvresp.c, 1496) webio!WapHttpConnectionReceiveCompletion+258 (d:\9147\net\webio\http\httpconn.c, 2974) webio!WapTcpReceiveCompletionRoutine+89 (d:\9147\net\webio\conn\tcpconn.c, 3538) webio!WapTcpThreadPoolCompletionRoutine+3F (d:\9147\net\webio\conn\tcpconn.c, 822) webio!WapTpIoCompletionRoutine+B2 (d:\9147\net\webio\util\thrdpool.c, 370) KERNELBASE!BasepTpIoCallback+3A (d:\9147\minkernel\threadpool\kernel32\threadpool.c, 213) ---- ntdll!RtlAllocateHeap+14D (d:\blue\minkernel\ntos\rtl\heap.c, 1872) winhttp!WinHttpOpenRequestInternal+7C1 (d:\9147\net\winhttp\http\open.cxx, 717) winhttp!WinHttpOpenRequest+1F9 (d:\9147\net\winhttp\http\open.cxx, 881) ---- ntdll!RtlAllocateHeap+14D (d:\blue\minkernel\ntos\rtl\heap.c, 1872) webio!WapCreateHttpRequest+C1 (d:\9147\net\webio\http\httpreq.c, 1139) webio!WebCreateHttpRequest+183 (d:\9147\net\webio\http\httpreq.c, 3192) winhttp!HTTP_USER_REQUEST::_SysSendRequest+D32 (d:\9147\net\winhttp\httpcore\usrreq.cpp, 2347) winhttp!HTTP_USER_REQUEST::_SendRequestWithDrainComplete+1A0 (d:\9147\net\winhttp\httpcore\usrreq.cpp, 1199) winhttp!HTTP_USER_REQUEST::SendRequest+3F3 (d:\9147\net\winhttp\httpcore\usrreq.cpp, 1529) winhttp!WinHttpSendRequest+4B9 (d:\9147\net\winhttp\api\sendapi.cxx, 265) ``` +2763 area-System.Net The result of the arithmetic + operation in Write method could end up… … being less than zero if the sum of the operands combined is greater than int.MaxValue. As a consequence of this integer overflow the intended check might be bypassed leading to unexpected consequences. This change adds and aditional cast to long to avoid this overflow. +2764 area-System.IO NamedPipeServerStream constructor allows MaxNumberOfServerInstances > 1 The constructor for NamedPipeServerStream allows MaxNumberOfServerInstances > 1 and we even do the same validity checks (between 1-255) as we do on Windows. However, Unix Named pipes don't support more than one connection and an exception is thrown when more are attempted. +2765 area-System.Collections ExpandPrime will throw when near MaxPrimeArrayLength Call ExpandPrime in HashHelpers.cs and HashTable.cs with MaxPrimeArrayLength + 1. The function looks like this: public static int ExpandPrime(int oldSize) { int newSize = 2 \* oldSize; ``` if ((uint)newSize > MaxPrimeArrayLength && MaxPrimeArrayLength > oldSize) { return MaxPrimeArrayLength; } return GetPrime(newSize); ``` } MaxPrimeArrayLength + 1 become -2097156 which, when cast to uint becomes 4292870140 which passes the 'if' condition and GetPrime is then called with a negative value. This caused GetPrime to: throw new ArgumentException(SR.Arg_HTCapacityOverflow); proposed solution: public static int ExpandPrime(int oldSize) { int newSize = 2 \* oldSize; ``` // newSize will be negative if it overflows so we return the largest possible instead if (newSize < 0 || oldSize > MaxPrimeArrayLength) { return MaxPrimeArrayLength; } return GetPrime(newSize); ``` } +2768 area-System.Reflection CoreCLR: TryGetRawMetadata "# Scenario Roslyn Scripting API provides applications with the capability to evaluate C# and VB code snippets. For example, ``` C# using Microsoft.CodeAnalysis.Scripting.CSharp; public class Globals { public int x; public int y; } class Program { public static void Main() { var globals = new Globals() { x = 1, y = 2 }; var options = ScriptOptions.Default.WithReferences(typeof(MyMath).Assembly); var script = CSharpScript.Create(""MyMath.CalculateStuff(x, y)"", options); Console.WriteLine(script.RunAsync(globals).Result); } } ``` In the example above `MyMath` is a type defined in an assembly referenced by and deployed with the program. The script is compiled with the following metadata references: mscorlib, the assembly containing the `Globals` type and an assembly containing `MyMath` class. All these assemblies are implementation (runtime) assemblies, not contracts. Since we are compiling scripts at runtime contracts are not relevant. The application might also run on a machine that doesn’t have any SDK. It is natural for scripting to be able to execute virtually any (public) runtime method available in any loaded assembly. Just like Reflection invocation. On Desktop CLR we use Assembly.Location to find the metadata image for given assembly. On Core CLR this property is not available and there is no other way to get the metadata of a given runtime assembly. # Proposed API We propose that the metadata of a runtime assembly are exposed thru new APIs in a form that is efficiently readable using MetadataReader of System.Reflection.Metadata library. Since metadata might not be available for all assemblies (such as AssemblyBuilder, .NET Native images, etc.) the API is allowed to return false for such assemblies. Roslyn scripting API would then report an error that the script can’t reference specified assembly. ``` C# namespace System.Reflection.Metadata { public static class AssemblyExtensions { public unsafe static bool TryGetRawMetadata(this Assembly assembly, out byte* blob, out int length); } } ``` **Lifetime considerations** The pointer would stay valid as long as the `AssemblyLoadContext` with which is the assembly associated is alive. It is the responsibility of the caller to keep the Assembly object alive while accessing the metadata blob. # Considered alternatives It was suggested that Roslyn uses Reflection API to read the metadata. There are multiple issues with such approach. 1) Expected bad performance (both working set and time) Reflection is built on top of IMetadataImport. It was measured that using IMetadataImport to reader metadata from managed code is an order of magnitude slower than using S.R.M. MetadataReader, which was not an acceptable perf hit for the compilers. Reflection API implementation adds additional memory and time overhead. Although the number of referenced assemblies is relatively low in most scripting scenarios reducing the compile time of scripts to minimum is crucial for good user experience. 2) Using Reflection APIs to read namespaces and types To get a list of namespaces in given assembly one needs to load all types in the assembly. Loading a type may trigger additional assembly loads as well (those of the base types, interfaces). If a type can’t be loaded (perhaps a dependency is missing) we get a loader exception. We can extract the loaded types from the exception, but what if the app makes the dependency available just before it is about to actually start using the type? Our model is immutable, we can’t add a type/namespace into an existing assembly symbol. 3) Missing APIs Brief analysis identified missing APIs that the compiler depends on and that are not present in DNX contracts: for example, type forwarders, GetOptionalCustomModifiers, GetRequiredCustomModifiers, class layout. Besides missing APIs Reflection performs post-processing on the data it receives from IMetadataImport that might render the values useless to the compiler. 4) Roslyn-Reflection interop We have prototyped an abstraction of Reflection symbol model to incorporate interop with Reflection runtime types. The abstraction introduces quite a lot of complexity and indirections in already complex code, which significantly increases maintenance cost of that particular area of the compiler. Testing cost would also need to be considered. We would need to effectively run most of our compiler tests twice. # Updates 1) Decided to move this to `System.Reflection.Metadata` namespace. " +2769 area-System.Globalization System.Globalization: Collation Implement the [CompareInfo PAL](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/corefx/System/Globalization/CompareInfo.Unix.cs) on top of ICU. This should give us real collation support instead of our ASCII only collation. +2770 area-System.Globalization System.Globalization: Locale Data Implement the PAL's from [CultureData](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/corefx/System/Globalization/CultureData.Unix.cs) and [CultureInfo](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/corefx/System/Globalization/CultureInfo.Unix.cs). +2772 area-System.Globalization System.Globalization: Casing Implement the [TextInfo](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/corefx/System/Globalization/TextInfo.Unix.cs) PAL. +2773 area-System.Globalization System.Globalization: Calendars Fill out the PAL implementation of [CalendarData.cs](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/corefx/System/Globalization/CalendarData.Unix.cs), [HijriCalendar.cs](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/corefx/System/Globalization/HijriCalendar.Unix.cs) and [JapaneseCalendar.cs](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/corefx/System/Globalization/JapaneseCalendar.Unix.cs) +2774 area-System.Globalization System.Globalization: Encodings We have stubbed out [EncodingTable.cs](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Globalization/EncodingTable.Unix.cs) and [EncodingDataItem.cs](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Globalization/EncodingDataItem.Unix.cs) for cross platform, but it is not clear the implementation is correct or if we need to do more. I think the big issue here will be understanding if System.Text.Encoding.Codepages and the EncodingProvider model here reduces the scope of work that we need to. +2777 area-System.Globalization System.Globalization.Extensions: Normalization We need to implement [StringNormalizationExtensions.cs](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/StringNormalizationExtensions.Unix.cs) for Linux. The major difference between ICU and Win32 is that Win32 throws an exception when the input is not a valid UTF-16 encoded string (e.g. mismatched surrogates) whereas ICU does not. +2778 area-System.Security Add ECDsa to System.Security.Cryptography suite - `ECDsa` in System.Security.Cryptography.Algorithms - `ECDsaCng : ECDsa` in System.Security.Cryptography.Cng - `ECDsaOpenSsl : ECDsa` in System.Security.Cryptography.OpenSsl - Some tests (Common\test\Cryptography\AlgorithmImplementations\ECDsa) - Other artifacts required to pull this off. - Like the contract assembly changes +2779 area-System.Globalization System.Globalization.Extensions: IDNA We need to support [IdnMapping.cs](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Globalization/IdnMapping.Unix.cs) for IDNA2008 on Unix. This is straightforward on-top of ICU, but many of our existing ICU tests assume either ICU2003 or ICU2008 as implemented by Win32. There are some differences between 2008 and 2003 in ICU for compatibility, especially around how windows works when UseStd3Rules is false. In speaking with NLS, they think it may make sense for us to just follow the 2008 standard. +2782 area-System.Diagnostics Add a way to create a suspended Process It seems that there is no way to create a suspended `Process` and resume it later. Ability to create a suspended process is useful when you want to run the process and its children in a job object. If the process isn't created as suspended it may create child processes before it is assigned to the job object which means that these child processes won't be assigned to the job object. +2784 area-System.Net Enabled max redirection in HTTP xplat ``` modified: ../../Common/src/Interop/Unix/libcurl/Interop.libcurl_types.cs modified: System/Net/Http/Unix/CurlHandler.cs modified: System/Net/Http/Unix/HttpClientHandler.Unix.cs ``` Enabled max redirection support in HTTP xplat +2785 area-System.Net Server Credential Support for CurlHandler This check-in integrates curlHandler with the credential support of libcurl. +2787 area-System.Net Use common class to set property default in winHttp & xplatHttp > stephentoub :: There are a bunch of these default values that are being copied from the WinHttp handler implementation. It's great that we're using the same defaults, but it's error prone that we're doing so via copy-and-paste. I see a whole bunch of constants/defaults in WinHttp at https://github.com/dotnet/corefx/blob/master/src/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpHandler.cs#L93-L146 .could we somehow factor out these constants/default values into a shared source file that's included in both the Windows and Unix implementation, such that this then becomes: > > ``` C# > private int _maxAutomaticRedirections = HttpHandlerDefaults.MaxAutomaticRedirections; > ``` > > instead of: > > ``` C# > private int _maxAutomaticRedirections = 50; > ``` > > davidsh :: Yes, one could create a shared source file in src\Common\src\System\Net\Http... that defined an internal static class (HttpHandlerDefaults) with those constants defined as public fields. Then that file would be used in the multiple .CSPROJ files to bring in the values. +2791 area-System.Net Unsupported address family assert in System.Net.SocketAddressPal.SetPort on Linux in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/1767/console ``` 11:17:17 Discovering: System.Net.Primitives.Linux.Unit.Tests 11:17:17 Discovering: System.Net.Primitives.Functional.Tests 11:17:17 Discovering: System.Net.Primitives.Linux.Pal.Tests 11:17:18 Discovered: System.Net.Primitives.Functional.Tests 11:17:18 Discovered: System.Net.Primitives.Linux.Unit.Tests 11:17:18 Discovered: System.Net.Primitives.Linux.Pal.Tests 11:17:18 Starting: System.Net.Primitives.Functional.Tests 11:17:18 Starting: System.Net.Primitives.Linux.Unit.Tests 11:17:18 Starting: System.Net.Primitives.Linux.Pal.Tests 11:17:18 ---- DEBUG ASSERTION FAILED ---- 11:17:18 ---- Assert Short Message ---- 11:17:18 Unsupported address family 11:17:18 ---- Assert Long Message ---- 11:17:18 11:17:18 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 11:17:18 at System.Environment.get_StackTrace() 11:17:18 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 11:17:18 at System.Diagnostics.Debug.Fail(String message) 11:17:18 at System.Net.SocketAddressPal.SetPort(Byte[] buffer, UInt16 port) 11:17:18 at System.Net.Primitives.PalTests.SocketAddressPalTests.<>c__DisplayClass6.b__4() 11:17:18 at Xunit.Assert.RecordException(Action testCode) 11:17:18 at Xunit.Assert.ThrowsAny[T](Action testCode) 11:17:18 at System.Net.Primitives.PalTests.SocketAddressPalTests.Port_Get_Set_Throws() 11:17:18 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 11:17:18 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 11:17:18 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 11:17:18 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass45_1.<b__1>d.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass45_1.b__1() 11:17:18 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 11:17:18 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 11:17:18 at Xunit.Sdk.TestInvoker`1.d__45.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 11:17:18 at Xunit.Sdk.TestInvoker`1.<b__44_0>d.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestInvoker`1.b__44_0() 11:17:18 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 11:17:18 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 11:17:18 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 11:17:18 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestRunner`1.RunAsync() 11:17:18 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 11:17:18 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 11:17:18 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 11:17:18 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 11:17:18 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestClassRunner`1.RunAsync() 11:17:18 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 11:17:18 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 11:17:18 at System.Threading.Tasks.Task`1.InnerInvoke() 11:17:18 at System.Threading.Tasks.Task.Execute() 11:17:18 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 11:17:18 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 11:17:18 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 11:17:18 at Xunit.Sdk.MaxConcurrencySyncContext.<>c__DisplayClass9_0.b__0(Object _) 11:17:18 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 11:17:18 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 11:17:18 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 11:17:18 ---- DEBUG ASSERTION FAILED ---- 11:17:18 ---- Assert Short Message ---- 11:17:18 Unsupported address family 11:17:18 ---- Assert Long Message ---- 11:17:18 11:17:18 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 11:17:18 at System.Environment.get_StackTrace() 11:17:18 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 11:17:18 at System.Diagnostics.Debug.Fail(String message) 11:17:18 at System.Net.SocketAddressPal.GetPort(Byte[] buffer) 11:17:18 at System.Net.Primitives.PalTests.SocketAddressPalTests.<>c__DisplayClass6.b__5() 11:17:18 at Xunit.Assert.RecordException(Func`1 testCode) 11:17:18 at Xunit.Assert.ThrowsAny[T](Func`1 testCode) 11:17:18 at System.Net.Primitives.PalTests.SocketAddressPalTests.Port_Get_Set_Throws() 11:17:18 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 11:17:18 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 11:17:18 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 11:17:18 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass45_1.<b__1>d.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass45_1.b__1() 11:17:18 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 11:17:18 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 11:17:18 at Xunit.Sdk.TestInvoker`1.d__45.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 11:17:18 at Xunit.Sdk.TestInvoker`1.<b__44_0>d.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestInvoker`1.b__44_0() 11:17:18 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 11:17:18 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 11:17:18 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 11:17:18 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestRunner`1.RunAsync() 11:17:18 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 11:17:18 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 11:17:18 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 11:17:18 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 11:17:18 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestClassRunner`1.RunAsync() 11:17:18 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 11:17:18 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 11:17:18 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 11:17:18 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 11:17:18 at System.Threading.Tasks.Task`1.InnerInvoke() 11:17:18 at System.Threading.Tasks.Task.Execute() 11:17:18 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 11:17:18 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 11:17:18 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 11:17:18 at Xunit.Sdk.MaxConcurrencySyncContext.<>c__DisplayClass9_0.b__0(Object _) 11:17:18 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 11:17:18 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 11:17:18 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) ``` +2793 area-System.Net Massive and fast handle leak in WCF stress scenarios 0:102> !handle 0 0 Type Count Event 26762 Key 20745 Here are the characteristic call stacks: ``` Handle = 0x000000000002ea84 - OPEN Thread ID = 0x0000000000002d74, Process ID = 0x0000000000004528 0x00007ff8c74c225a: ntdll!ZwOpenKeyEx+0x000000000000000a 0x00007ff8c47c3799: KERNELBASE!LocalBaseRegOpenKey+0x00000000000001fa 0x00007ff8c47cf532: KERNELBASE!RegOpenKeyExInternalA+0x0000000000000132 0x00007ff8c47cf5e9: KERNELBASE!RegOpenKeyExA+0x0000000000000019 0x00007ff8c0b82b1c: winhttp!OpenIeKey+0x000000000000005c 0x00007ff8c0b82c08: winhttp!OpenProxySettingsKeysForRead+0x0000000000000080 0x00007ff8c0b998bb: winhttp!INTERNET_SESSION_HANDLE_OBJECT::LoadAutomaticProxyResolvers+0x000000000000019b 0x00007ff8c0b730e5: winhttp!INTERNET_SESSION_HANDLE_OBJECT::SetProxySettings+0x0000000000044ed5 0x00007ff8c0b2d95a: winhttp!WinHttpSetOptionInternal+0x0000000000000397 0x00007ff8c0b2e9e6: winhttp!WinHttpOpen+0x000000000000027a 0x00007ff841eeccbd: System_Net_Http!DomainBoundILStubClass.IL_STUB_PInvoke(IntPtr, UInt32, System.String, System.String, Int32)+0x000000000000010d 0x00007ff841eec8b3: System_Net_Http!System.Net.Http.WinHttpHandler.EnsureSessionHandleExists(RequestState)+0x00000000000000e3 0x00007ff841eebba1: System_Net_Http!System.Net.Http.WinHttpHandler+d__1.MoveNext()+0x00000000000001f1 -------------------------------------- Handle = 0x000000000002dd10 - OPEN Thread ID = 0x00000000000027b4, Process ID = 0x0000000000004528 0x00007ff8c74c165a: ntdll!ZwCreateEvent+0x000000000000000a 0x00007ff8c47c2ce8: KERNELBASE!CreateEventW+0x0000000000000084 0x00007ff8c0b2ed38: winhttp!INTERNET_SESSION_HANDLE_OBJECT::INTERNET_SESSION_HANDLE_OBJECT+0x00000000000002be 0x00007ff8c0b2e963: winhttp!WinHttpOpen+0x00000000000001f3 0x00007ff8c0bb9afb: winhttp!CreateWinHttpSession+0x0000000000000053 0x00007ff8c0bb2fd9: winhttp!WinHttpClientSession::AcquireSession+0x0000000000000049 0x00007ff8c0bb3e34: winhttp!WinHttpClientResolver::GetProxyForUrlImpl+0x00000000000001a8 0x00007ff8c0bb3a48: winhttp!WinHttpClientResolver::GetProxyForUrlEx+0x0000000000000054 0x00007ff8c0bb50d9: winhttp!WinHttpClientCompletion::StartProxyResolve+0x0000000000000049 0x00007ff8c0b6102d: winhttp!WxProxyManager::OnProcessGetProxyForUrl+0x000000000002668d 0x00007ff8c0bb665b: winhttp!WxProxyManager::GetProxyForUrlImpl+0x00000000000000ef 0x00007ff8c0bb6518: winhttp!WxProxyManager::GetProxyForUrlEx+0x0000000000000054 0x00007ff8c0bb7683: winhttp!WxGetProxyContext::StartProxyResolve+0x0000000000000043 0x00007ff8c0b711ed: winhttp!HTTP_USER_REQUEST::_CallGetProxyForUrl+0x000000000003478d -------------------------------------- -------------------------------------- Handle = 0x000000000000cfa0 - OPEN Thread ID = 0x0000000000002d74, Process ID = 0x0000000000004528 0x00007ff8c74c165a: ntdll!ZwCreateEvent+0x000000000000000a 0x00007ff8c47c2ce8: KERNELBASE!CreateEventW+0x0000000000000084 0x00007ff8c0b2ed38: winhttp!INTERNET_SESSION_HANDLE_OBJECT::INTERNET_SESSION_HANDLE_OBJECT+0x00000000000002be 0x00007ff8c0b2e963: winhttp!WinHttpOpen+0x00000000000001f3 0x00007ff8c0bb9afb: winhttp!CreateWinHttpSession+0x0000000000000053 0x00007ff8c0bb2fd9: winhttp!WinHttpClientSession::AcquireSession+0x0000000000000049 0x00007ff8c0bb3e34: winhttp!WinHttpClientResolver::GetProxyForUrlImpl+0x00000000000001a8 0x00007ff8c0bb3a48: winhttp!WinHttpClientResolver::GetProxyForUrlEx+0x0000000000000054 0x00007ff8c0bb50d9: winhttp!WinHttpClientCompletion::StartProxyResolve+0x0000000000000049 0x00007ff8c0b6102d: winhttp!WxProxyManager::OnProcessGetProxyForUrl+0x000000000002668d 0x00007ff8c0bb665b: winhttp!WxProxyManager::GetProxyForUrlImpl+0x00000000000000ef 0x00007ff8c0bb6518: winhttp!WxProxyManager::GetProxyForUrlEx+0x0000000000000054 0x00007ff8c0bb7683: winhttp!WxGetProxyContext::StartProxyResolve+0x0000000000000043 0x00007ff8c0b711ed: winhttp!HTTP_USER_REQUEST::_CallGetProxyForUrl+0x000000000003478d -------------------------------------- ``` +2794 area-System.IO Fixed test that was leaving temp directories in root folder One of the Extended Path FileSystem tests was leaving temporary test directories in the root folder of the running directory. This small change modified the tests to instead treat the user's temp directory as the root. +2799 area-System.Net SendAsync_SlowGetRequestWithTimedCancellation test failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug/999/console 20:01:52 Discovering: System.Net.Http.Unit.Tests 20:01:53 System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTests.SendAsync_SlowGetRequestWithTimedCancellation_ExpectTaskCanceledException [FAIL] 20:01:53 Assert.Throws() Failure 20:01:53 Expected: typeof(System.Threading.Tasks.TaskCanceledException) 20:01:53 Actual: typeof(System.NullReferenceException): Object reference not set to an instance of an object. 20:01:53 Stack Trace: 20:01:53 d:\j\workspace\dotnet_corefx_windows_debug\src\System.Net.Http.WinHttpHandler\tests\UnitTests\FakeInterop.cs(238,0): at Interop.WinHttp.WinHttpQueryHeaders(SafeWinHttpHandle requestHandle, UInt32 infoLevel, String name, StringBuilder buffer, UInt32& bufferLength, IntPtr index) 20:01:53 d:\j\workspace\dotnet_corefx_windows_debug\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(1970,0): at System.Net.Http.WinHttpHandler.GetResponseHeaderStringInfo(SafeWinHttpHandle requestHandle, UInt32 infoLevel) 20:01:53 d:\j\workspace\dotnet_corefx_windows_debug\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(2014,0): at System.Net.Http.WinHttpHandler.ParseResponseHeaders(SafeWinHttpHandle requestHandle, HttpResponseMessage response, Boolean stripEncodingHeaders) 20:01:53 d:\j\workspace\dotnet_corefx_windows_debug\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(1911,0): at System.Net.Http.WinHttpHandler.CreateResponseMessage(SafeWinHttpHandle connectHandle, SafeWinHttpHandle requestHandle, HttpRequestMessage request) 20:01:53 d:\j\workspace\dotnet_corefx_windows_debug\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(1239,0): at System.Net.Http.WinHttpHandler.d__5.MoveNext() 20:01:53 --- End of stack trace from previous location where exception was thrown --- 20:01:53 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 20:01:53 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 20:01:53 at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 20:01:53 d:\j\workspace\dotnet_corefx_windows_debug\src\System.Net.Http.WinHttpHandler\tests\UnitTests\WinHttpHandlerTest.cs(833,0): at System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTests.<>c__DisplayClassd7.<b__d6>d__d9.MoveNext() 20:01:53 --- End of stack trace from previous location where exception was thrown --- 20:01:53 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 20:01:53 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 20:01:53 Finished: System.Net.Http.WinHttpHandler.Unit.Tests 20:01:53 20:01:53 === TEST EXECUTION SUMMARY === 20:01:53 System.Net.Http.WinHttpHandler.Unit.Tests Total: 115, Errors: 0, Failed: 1, Skipped: 0, Time: 2.519s +2800 area-System.Reflection Assembly.ReflectionOnlyLoad replacement - TypeInfo and family implementation over System.Reflection.Metadata Sometimes you want to use the same reflection model without loading actual types (attributes of course are interesting), but this would be a better version of reflection only load. Roslyn does something similar and can go from PEReader -> ISymbol. /cc @pranavkm @nguerrera @tmat +2801 area-Infrastructure Nice to have: Bin and Packages folders should be placed outside of the git repo The huge `Bin` and `Packages` folders are placed in the root of the git repository at the moment. This makes tools like VSCode impossible to use due to the large quantity of files they need to index. A workaround to use VSCode is to load only the \src folder but that is breaking the Git extension which requires the root of the repo to be loaded. Another reason is using a different partition for binaries that can be quickly formatted when the binaries and packages are not wanted anymore or placing it on a faster disk. +2804 area-System.Globalization System.Globalization: Abbreviated genitive month names won't work on custom DateTimeFormat strings "As found out by @jskeet , abbreviated genitive month names don't seem to work when using the ""MMM"" token on custom datetime format strings The test, written by @jskeet (I'm just copying here from https://github.com/nodatime/nodatime/issues/377): ``` using System; using System.Globalization; using System.Linq; class Test { static void Main() { var culture = (CultureInfo) CultureInfo.InvariantCulture.Clone(); culture.DateTimeFormat.AbbreviatedMonthGenitiveNames = culture.DateTimeFormat.AbbreviatedMonthNames .Select(x => ""Gen"" + x) .ToArray(); culture.DateTimeFormat.MonthGenitiveNames = culture.DateTimeFormat.MonthNames .Select(x => ""Gen"" + x) .ToArray(); Console.WriteLine(new DateTime(1976, 6, 19).ToString(""d MMMM yy"", culture)); Console.WriteLine(new DateTime(1976, 6, 19).ToString(""MMMM yy"", culture)); Console.WriteLine(new DateTime(1976, 6, 19).ToString(""d MMM yy"", culture)); Console.WriteLine(new DateTime(1976, 6, 19).ToString(""MMM yy"", culture)); } } ``` Should output: ``` 19 GenJune 76 June 76 19 GenJun 76 Jun 76 ``` But outputs: ``` 19 GenJune 76 June 76 19 Jun 76 Jun 76 ``` Disregarding the abbreviated genitives (and resorting to regular ones when abbreviated). I haven't found the DateTimeFormat files on GitHub yet (just the tests, which don't cover this), so I can't issue a request or test it, but on the reference source: http://referencesource.microsoft.com/#mscorlib/system/globalization/datetimeformat.cs,578 We got this: ``` if ((dtfi.FormatFlags & DateTimeFormatFlags.UseGenitiveMonth) != 0 && tokenLen >= 4) { result.Append( dtfi.internalGetMonthName( month, IsUseGenitiveForm(format, i, tokenLen, 'd')? MonthNameStyles.Genitive : MonthNameStyles.Regular, false)); ``` Which doesn't take MMM into account (because of the `tokenLen >= 4` conditional). If I'm not mistaken, it should look like this: ``` if ((dtfi.FormatFlags & DateTimeFormatFlags.UseGenitiveMonth) != 0 && tokenLen >= 3 /* Work for MMM and MMMM */ ) { result.Append( dtfi.internalGetMonthName( month, IsUseGenitiveForm(format, i, tokenLen, 'd')? MonthNameStyles.Genitive : MonthNameStyles.Regular, tokenLen == 3 /* Abbreviated if MMM */)); ``` " +2805 area-System.Net Introducing checks for libcurl features Runtime and load-time checks to ensure that the features user is relying on are available in the libcurl library loaded +2810 area-System.Net Moving shared default between winHttp & Unix Handler to a seperate common file ``` new file: ../../Common/src/System/Net/Http/HttpHandlerDefaults.cs modified: ../../System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpHandler.cs modified: System.Net.Http.csproj modified: System/Net/Http/Unix/CurlHandler.cs ``` Moved shared default to common file. Addressing issue #2787 . +2813 area-Infrastructure Investigate a better way to handle * dependencies "We're inconsistent across the repo and buildtools. Some places we use -\* others we use -beta-_. It seems that both have the draw back of not permitting an upgrade to latest stable version, or moving past any changes in the major.minor.build version. In most places the semantics we want is either 4.0._: latest of a given API version or 4.*: latest API of a major release. In conjunction with this we need to experiment with how to use policy to impact the behavior of restore. In some cases we want ""minimum that satisfies the constraint"" in others we want ""latest that satisfies the constraint"". /cc @weshaggard " +2817 area-Infrastructure Investigate: Partial facades should build against stable packages Today partial facades are building against live dependencies via P2P reference for other contracts. This means that they always need to reference the latest version of their contract dependencies. We should see if we can break this to allow the partial facades to version more independently. +2833 area-System.Net Credential Support in Unix HTTP Handler This checkin integrates CurlHandler to the credential support available in libcurl +2836 area-System.IO Add method for calculating relative paths It would be great if this super common functionality could be added to the path class. Using URI feels hacky to do this anyways. Related https://github.com/dotnet/corefx/issues/1745 +2837 area-System.Threading SemaphoreSlim Dispose thread safety The documentation of SemaphoreSlim says 'Dispose should only be used when all other operations have completed'. In practice, for me, I don't bother to Dispose the SemaphoreSlim because I would need to add synchronization to Dispose of this synchronization class. See also, this [question on stackoverflow](http://stackoverflow.com/questions/32035891/dispose-a-semaphoreslim-while-waitasync). Can SemaphoreSlim be extended so pending operations on other threads throw ObjectDisposedException? Related to this, I noticed some of the other synchronization classes in System.Threading do not properly document the thread safety behavior of their Dispose method. Furthermore, the reference source of ReaderWriterLockSlim shows a check in the Dispose method which throws a SynchronizationLockException when the Dispose conditions are not met. SemaphoreSlim and other classes could do the same. +2840 area-System.Net Enabling POST method options +2844 area-System.Linq Implement IList in Linq responses when possible There is code throughout .NET that accepts arguments of `IEnumerable` and has an optimised path for `IList` and/or `ICollection`. Some methods of `System.Linq.Enumerable` would be examples, but also elsewhere such as some collections' constructors. The effect upon `.ToList()`, `.ToArray()` and any operation in `Enumerable` that requires buffering are perhaps particularly of note here. Some methods of `Enumerable` have results which are conceptually lists. E.g. `Repeat` returns a sequence of a specified size where all items are the same, which can be modelled as a read-only list. Some methods of `Enumerable` have results which can be conceptually lists in certain conditions. E.g. If `Select` is called on a source that is itself a list, then the result would be a read-only list of the same size as the source list, and a different type. Returning such list types when possible would increase the times that the existing fast-paths for list types are made use of. At the same time, some such changes would add further such cases, potentially allowing chains of operations that cannot currently hit such fast-paths to do so. +2849 area-System.Security Add support for importing PKCS7 files on Unix +2851 area-Meta Port legacy LINQ tests to Git/XUnit "Current active test coverage for LINQ is not very great. While sources were ported and published, many old legacy tests has been left behind. It is not an easy task to port them to Git/XUnit, but mostly just because of the test volume and because they are not XUnit tests. It would be nice to port them over. Also it would be preferable to port these tests over writing new ones, because the old tests are by definition ""correct"". I.E. any deviation from the behavior guarded by those tests could be a compatibility issue. I have collected and pushed a lot of old legacy tests for LINQ to https://github.com/VSadov/corefx/tree/UnportedLegacyTests branch. Actual tests are at: https://github.com/VSadov/corefx/tree/UnportedLegacyTests/src/System.Linq/LegacyTestsToPort/LINQ " +2857 area-System.Net HttpClient Timeout Confusion The HttpClient from the System.Net.Http package has Timeout property that defaults to a 100 seconds which as I read through the code just means how long till the task is cancelled. The underlying windows handler WinHttpHandler has the timeout properties ConnectionTimeout, SendTimeout, ReceiveHeadersTimeout and ReceiveDataTimeout which default to 30 seconds except for ConnectionTimeout which defaults to 60 seconds. If you have an operations that takes say 40 seconds before it return back any data it will always timeout after 30 seconds. Only way to get around this is to code against the platform specific WinHttpHandler and set the timeout properties. Am I missing something about how to set timeout in a platform agnositic approach? Here is the code I wrote that directly uses the WinHttpHandler but I want to code just against the HttpClientHandler. ``` private HttpClient CreateHttpClient() { var httpMessageHandler = new System.Net.Http.WinHttpHandler(); httpMessageHandler.SendTimeout = TimeSpan.FromSeconds(200); httpMessageHandler.ReceiveDataTimeout = TimeSpan.FromSeconds(200); httpMessageHandler.ReceiveHeadersTimeout = TimeSpan.FromSeconds(200); var httpClient = new HttpClient(httpMessageHandler); httpClient.Timeout = TimeSpan.FromSeconds(200); return httpClient; } ``` +2862 area-System.Collections Add HashSet ctors with capacity Replaces PR #2122. I squashed and fixed up @MarkusSintonen's commits from that PR. Fixes #382. New tests are not included due to System.Collections.dll being a partial facade, and the repo not currently having the infrastructure to enable adding tests for new surface area in partial facades. cc: @terrajobst, @KrzysztofCwalina +2865 area-System.Threading Leaky abstraction in ThreadPool.[Unsafe]RegisterWaitForSingleObject I just went into the pitfall of using a waithandle in two different registrations. The documentation states the following: > The wait thread uses the Win32 WaitForMultipleObjects function to monitor registered wait operations. Therefore, if you must use the same native operating system handle in multiple calls to RegisterWaitForSingleObject, you must duplicate the handle using the Win32 DuplicateHandle function. It seems quite bad when the documentation is encouraging you to write non-portable code, and P/Invoking to DuplicateHandle requires full trust. Would it be a big problem to detect that the same handle is there twice with two different registrations and correctly wait for it and queue both action on the thread pool when the waithandle becomes ready? +2869 area-Meta Merge future branch back into master This issue is just for tracking the changes we have merged into future so when we merge it back to master we know which API changes we need to modify contracts and ensure are supported on our other platforms like the desktop framework. At this point it isn't clear when this will happen but we want to keep track of this item. --- Merged PRs into future --- - [x] #1384 Regex group should provide a Name property. - [x] #1783 Add ConcurrentDictionary GetOrAdd/AddOrUpdate overloads with generic arg - [x] #1756 Implement generic interfaces on Regex collections - [x] #2436 Add async XLinq document/element loading and saving - [x] #2862 Add HashSet ctors with capacity +2873 area-System.IO Unix NamedServerPipeStream disposal no longer deletes the FIFO Per the discussion in #2764, the clean up of a Unix FIFO named pipe upon disposal of the NamedPipeServerStream that created it has been removed. - Resolves #2764 cc: @stephentoub +2875 area-System.IO Removed the Unix restriction on MaxNumberOfServerInstances There were previously checks to ensure that MaxNumberOfServerInstances was within the same boundaries as it was on Windows despite never actually being used in the Unix implementation. This commit removes those checks and adds platform specific tests for the new behavior. - Resolves #2764 +2877 area-System.Collections Propose Adding a GetOrAdd(TKey key, Func valueFactory) to Dictionary "On `ConcurrentDictionary` there is the very useful function `TValue GetOrAdd(TKey key, Func valueFactory)`. The pattern that the method represents is one that issued commonly on the ""normal"" `Dictionary` as well. I propose adding such a method for this common use case. Besides simplifying it will also make switching between the two dictionaries simpler. " +2882 area-System.Security Same naming classes appear in multiple nuget packages. I know you guys are busy building the .net core packages. At the moment, I face a challenge about the following errors when target dnxcore50 Error CS0433 The type 'HashAlgorithm' exists in both 'System.Security.Cryptography.Hashing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'System.Security.Cryptography.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' Error CS0433 The type 'HMACSHA1' exists in both 'System.Security.Cryptography.Algorithms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'System.Security.Cryptography.Hashing.Algorithms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' Error CS0433 The type 'RandomNumberGenerator' exists in both 'System.Security.Cryptography.Algorithms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'System.Security.Cryptography.RandomNumberGenerator, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' Previously, we solve this kind of issues by add alias in project. Since we have new project file which is project.json. I have run out of idea how to add alias. Can one of masters give me some hints on this? +2883 area-System.Net Removed DumpHeaders dependency & coded to avoid unnecessary splitting ``` modified: ../../System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs ``` This fixed the useragent bug. The issue was DumpHeaders adding the same header twice in case of muti values header. +2885 area-System.Security X509 ExportMultiplePrivateKeys test failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/3248/console ``` Discovering: System.Security.Cryptography.X509Certificates.Tests Discovered: System.Security.Cryptography.X509Certificates.Tests Starting: System.Security.Cryptography.X509Certificates.Tests System.Security.Cryptography.X509Certificates.Tests.CollectionTests.ExportMultiplePrivateKeys [FAIL] System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. Stack Trace: d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Security.Cryptography.X509Certificates\src\Internal\Cryptography\Pal.Windows\StorePal.Export.cs(82,0): at Internal.Cryptography.Pal.StorePal.Export(X509ContentType contentType, String password) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Security.Cryptography.X509Certificates\src\System\Security\Cryptography\X509Certificates\X509Certificate2Collection.cs(123,0): at System.Security.Cryptography.X509Certificates.X509Certificate2Collection.Export(X509ContentType contentType, String password) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Security.Cryptography.X509Certificates\src\System\Security\Cryptography\X509Certificates\X509Certificate2Collection.cs(116,0): at System.Security.Cryptography.X509Certificates.X509Certificate2Collection.Export(X509ContentType contentType) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Security.Cryptography.X509Certificates\tests\CollectionTests.cs(482,0): at System.Security.Cryptography.X509Certificates.Tests.CollectionTests.ExportMultiplePrivateKeys() Finished: System.Security.Cryptography.X509Certificates.Tests ``` +2886 area-System.Reflection Reflection types should be made extensible "I'm creating a subclass of FieldInfo and there's an error in the constructor saying ""'ConstructorInfo' does not contain a constructor that takes 0 arguments"". The reason for this is that my constructor is calling the default constructor of FieldInfo, which seems to be unavailable. That's because FieldInfo's constructor was changed to internal. As there is no other constructor defined in FieldInfo it's now impossible to extend it. It's the same for ConstructorInfo, EventInfo, MethodInfo, PropertyInfo, TypeInfo and Type. Is this intended? " +2890 area-System.Net Porting System.Net.NameResolution. "Porting System.Net.NameResolution and tests. Adding a PAL layer for this contract together with x-plat implementations. Pending work is marked either as ""Shims"" or with TODO comments. Feature #893 " +2891 area-System.Net Tracking items for System.Net.NameResolution This issue is tracking TODOs and Shims removal for PR #2890 : 1. Contract changes to System.Net.Primitives: 1. [ ] Add public ctor for `SocketException(SocketError errorCode, int platformError)` 2. [ ] `IPAddress` - allow access to internal buffer via internal contract or new public API on `System.Net.Primitives`. 3. [ ] `SocketAddress[int]` - allow direct access to internal buffer via internal contract or new public API in `System.Net.Primitives`. 2. Add UnitTests required by changes made during refactoring: 1. [ ] `NameResolutionPal.GetHostByAddr(IPAddress)` : test with BIGENDIAN +2894 area-System.Net Tracking x-plat issues for System.Net.NameResolution Feature #2484 : X-Plat comments from PR #2890 related to System.Net.NameResolution: 1. Update errno helpers. 2. Add Unit/Pal test to validate potential indexing issues found in NameResolutionPal.Unix.cs CreateHostEntry(Interop.libc.hostent\* hostent); Given the design error, I suggest similar tests for the entire file. 3. `TryGetNameInfo`'s allocation of `hostname`: consider using stackalloc / StringBuilderCache. 4. Intermittent PAL test failure: `System.Net.NameResolution.PalTests.NameResolutionPalTests.GetHostByName_HostName_GetHostByAddr` MESSAGE: Assert.Equal() Failure Expected: 1XY.XYZ.XYZ Actual: 255.2.0.0 +++++++++++++++++++ STACK TRACE: at System.Net.NameResolution.PalTests.NameResolutionPalTests.GetHostByName_HostName_GetHostByAddr() 1. Intermittent PAL test failure: `System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName_TryGetNameInfo` MESSAGE: Assert.Equal() Failure Expected: Success Actual: HostNotFound +++++++++++++++++++ STACK TRACE: at System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName_TryGetNameInfo() +2895 area-System.IO 5 FileSystem tests are failing on OS X 5 test in System.IO.FileSystem are failing on OS X System.IO.FileSystem.Tests.FileInfo_GetSetTimes.SettingUpdatesProperties [FAIL] Assert.All() Failure: 2 out of 6 items in the collection did not pass. [1]: Xunit.Sdk.EqualException: Assert.Equal() Failure Expected: 2014-12-01T12:00:00.0000000Z Actual: 2015-08-19T23:25:34.0000000Z at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer) at System.IO.FileSystem.Tests.FileInfo_GetSetTimes.<>c__DisplayClass3_0.b__0(Tuple`3 tuple) at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [0]: Xunit.Sdk.EqualException: Assert.Equal() Failure Expected: 2014-12-01T12:00:00.0000000-08:00 Actual: 2015-08-19T16:25:34.0000000-07:00 at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer) at System.IO.FileSystem.Tests.FileInfo_GetSetTimes.<>c__DisplayClass3_0.b__0(Tuple`3 tuple) at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) Stack Trace: at System.IO.FileSystem.Tests.FileInfo_GetSetTimes.SettingUpdatesProperties() System.IO.FileSystem.Tests.DirectoryInfo_GetSetTimes.SettingUpdatesProperties [FAIL] Assert.All() Failure: 2 out of 6 items in the collection did not pass. [1]: Xunit.Sdk.EqualException: Assert.Equal() Failure Expected: 2014-12-01T12:00:00.0000000Z Actual: 2015-08-19T23:25:34.0000000Z at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer) at System.IO.FileSystem.Tests.DirectoryInfo_GetSetTimes.<>c__DisplayClass3_0.b__0(Tuple`3 tuple) at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [0]: Xunit.Sdk.EqualException: Assert.Equal() Failure Expected: 2014-12-01T12:00:00.0000000-08:00 Actual: 2015-08-19T16:25:34.0000000-07:00 at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer) at System.IO.FileSystem.Tests.DirectoryInfo_GetSetTimes.<>c__DisplayClass3_0.b__0(Tuple`3 tuple) at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) Stack Trace: at System.IO.FileSystem.Tests.DirectoryInfo_GetSetTimes.SettingUpdatesProperties() System.IO.FileSystem.Tests.DirectoryInfo_ToString.ParentDirectory [FAIL] Assert.Equal() Failure ↓ (pos 0) Expected: Actual: / ↑ (pos 0) Stack Trace: at System.IO.FileSystem.Tests.DirectoryInfo_ToString.ParentDirectory() System.IO.FileSystem.Tests.Directory_GetSetTimes.SettingUpdatesProperties [FAIL] Assert.All() Failure: 2 out of 6 items in the collection did not pass. [1]: Xunit.Sdk.EqualException: Assert.Equal() Failure Expected: 2014-12-01T12:00:00.0000000Z Actual: 2015-08-19T23:25:39.0000000Z at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer) at System.IO.FileSystem.Tests.Directory_GetSetTimes.<>c__DisplayClass5_0.b__0(Tuple`3 tuple) at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [0]: Xunit.Sdk.EqualException: Assert.Equal() Failure Expected: 2014-12-01T12:00:00.0000000-08:00 Actual: 2015-08-19T16:25:39.0000000-07:00 at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer) at System.IO.FileSystem.Tests.Directory_GetSetTimes.<>c__DisplayClass5_0.b__0(Tuple`3 tuple) at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) Stack Trace: at System.IO.FileSystem.Tests.Directory_GetSetTimes.SettingUpdatesProperties() System.IO.FileSystem.Tests.File_GetSetTimes.SettingUpdatesProperties [FAIL] Assert.All() Failure: 2 out of 6 items in the collection did not pass. [1]: Xunit.Sdk.EqualException: Assert.Equal() Failure Expected: 2014-12-01T12:00:00.0000000Z Actual: 2015-08-19T23:25:40.0000000Z at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer) at System.IO.FileSystem.Tests.File_GetSetTimes.<>c__DisplayClass5_0.b__0(Tuple`3 tuple) at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [0]: Xunit.Sdk.EqualException: Assert.Equal() Failure Expected: 2014-12-01T12:00:00.0000000-08:00 Actual: 2015-08-19T16:25:40.0000000-07:00 at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer) at System.IO.FileSystem.Tests.File_GetSetTimes.<>c__DisplayClass5_0.b__0(Tuple`3 tuple) at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) Stack Trace: at System.IO.FileSystem.Tests.File_GetSetTimes.SettingUpdatesProperties() +2897 area-System.Net "WinHttpRequestStream.Flush Appends ""0\r\n\r\n"" in Chunked Mode" "WinHttpRequestStream.Flush writes ""0\r\n\r\n"" to the stream every time the method is called in when _chunkedMode is true. This behavior seems wrong. The _endChunk should only be added to the end. " +2898 area-Meta Change tests to use consistent namespaces "Namespace used in test projects are all over the place: - default (previous version of System.Text.Encoding.CodePages tests) - Test (PLINQ) - $packageNamespace.Tests - $packageNamespace.UnitTests .... and potentially more. Is there any guidance for what we should be using? The only potentially applicable guideline would be ""Follow the style of the current project"", which doesn't help much in the case of new work (or say what any canonicalization tool would change things to). " +2903 area-System.Net Removed DumpHeaders dependency & coded to avoid unnecessary splitting ``` modified: System/Net/Http/Unix/CurlHandler.cs ``` I messed up while updating the changes in remote branch. Tried to fix that but could not. Will figure out what caused the issue. Sending new PR with updated changes. Copying the comments here. Sorry for any inconvenience. +2904 area-System.IO Shims should use intptr_t for file descriptors Once we get all of the IO stuff shimmed, it would be better to use intptr_t instead of int32_t for file descriptors as then we can marshal SafeHandles to descriptors without the current workarounds. +2905 area-System.Net Merge changes from TFS +2906 area-System.IO Added ZLib decompression support to DeflateStream The DeflateStream class currently uses ZLib for compression (if available) but doesn't use ZLib for decompression. This commit adds support to use either ZLib or the Managed implementation for decompression (inflation). - Resolves #2024; Added ZLib support in InflaterZLib.cs - Inflater.cs the old managed implementation is renamed to InflaterManaged.cs - Extracted interface of necessary Inflater methods into the IInflater interface from which InflaterManaged and InflaterZLib inherit. - Roughly a 3X speedup for decompression when using the ZLib library instead of the Managed implementation! +2907 area-System.Net Merge changes from TFS +2910 area-System.Security new X509Certificate2(byte[]) should return the signing cert for PKCS#7 on Unix The Windows code supports reading a PKCS#7 signed or PKCS#7 signed-and-enveloped structure; but in single certificate mode it doesn't return certs[0], it returns the certificate which signed the structure. My test files (produced by Windows (certmgr.msc and X509Certificate2Collection::Export)) aren't signed, so Windows emits an exception (`new CryptographicException(ErrorCode.CRYPT_E_SIGNER_NOT_FOUND)`). Without a sample to see what's going on here, it's hard to make compatible behavior. So, for now, the Unix implementation will just throw, even if it could have worked. +2913 area-System.Security Add support for exporting PKCS7 files on Unix +2914 area-System.Threading System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTestCases.TaskCancelWait1 failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/1989/testReport/junit/System.Threading.Tasks.Tests.CancelWait/TaskCancelWaitTestCases/TaskCancelWait1/ MESSAGE: Expected Result to lie between 1.63 and 1.65 for completed task. Actual Result -42. Using n=Light IsCanceled=False Expected: True Actual: False +++++++++++++++++++ STACK TRACE: at System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTest.VerifyResult(TaskInfo current) at System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTest.b__3(TaskInfo current) at System.Threading.Tasks.Tests.CancelWait.TaskInfo.Traversal(Action`1 predicate) at System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTest.Verify() at System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTest.RealRun() at System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTestCases.TaskCancelWait1() +2915 area-System.Net HttpClient xplat: Fix bugs in polling and callback logic - On OSX, the read end of the pipe sometimes wakes up the poll with a POLLOUT. Since we are interested in only reading on it, scoping down to POLLIN prevents this from happening. Else we attempt a read on it which fails - CheckForCompletedTransfers was being unnecessarily called from the socket callback. We are only interested in MSG_DONE after the socket callback indicates removal. This will anyway wake up PollFunction which calls CheckForCompletedTransfers. This race is also causing a seg fault sometimes because curl_multi_socket_action has been called on an fd that was getting cleaned up via curl_easy_cleanup (call sequence is CurlSocketCallback --> CheckForCompletedTransfers --> EndRequest) - Also removed some unnecessary CharSet attributes cc: @stephentoub @davidsh @CIPop @SidharthNabar @pgavlin +2916 area-System.Net Introducing a bunch of tests for http client handler This checkin tests the client handler in following scenarios: - Http and Https calls - Authentication - Redirection - Redirection + Authentication - custom headers - cookies +2928 area-System.Net Add ALPN support to System.Net.Security.SslStream Porting to newest bug tracker. https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6264363-add-support-for-alpn-to-system-net-security-sslstr https://connect.microsoft.com/VisualStudio/feedback/details/812003/system-net-security-sslstream-needs-support-for-alpn-to-negotiate-spdy-http2-connections Microsoft drove the HTTP/2 working group to adopt the ALPN TLS Extension for use in negotiating HTTP/2 connections. It succeeded. SChannel got ALPN support in the Windows 8 timeframe. .NET's SslStream class does not have ALPN support, preventing low-level socket clients (like Fiddler) from sending ALPN tokens to servers during TLS handshaking, in turn blocking support of the HTTP/2 protocol. The code change to SslStream is probably a dozen lines at worst. The current workaround for those blocked by this shortcoming is to take on a **massive** security risk and ship either BouncyCastle or OpenSSL (or re-wrap SChannel, I guess). +2930 area-System.Security Change Windows GetRSAPrivateKey to prefer CNG When GetRSAPrivateKey was added into the repository the CNG types weren't yet online. Now that they are, we should have GetRSAPrivateKey and GetRSAPublicKey use CNG when able, and fallback to CAPI for legacy support. +2934 area-System.Net Allow setting IP protection level on Socket - P2P is not possible without it It is not possible for peers to establish a connection with eachother behind NAT(s) using Windows sockets without setting the IP socket option IP_PROTECTION_LEVEL. Currently there is no way to do this on a `DatagramSocket` or .NET Core `System.Net.Socket.Socket`, thus there is _no way make Peer 2 Peer Windows Store Apps_. The issue on [Microsoft Connect](https://connect.microsoft.com/VisualStudio/feedback/details/1431526/nat-traversal-udp-hole-punching-not-possible-in-windows-store-apps-even-with-internet-client-server-capability). In .NET Framework one used [`System.Net.Sockets.IPProtectionLevel`](http://referencesource.microsoft.com/#System/net/System/Net/Sockets/Socket.cs,5eb8a772f197999a). We need to add this facility `Windows.Networking.Sockets.DatagramSocket` and/or `System.Net.Sockets.Socket` +2936 area-System.Net .NET Core's System.Net.Sockets.Socket Send and Receive methods use old async technique There is no documentation on the `System.Net.Sockets.Socket` provided in .NET Core (beyond the XML code documentation) but it seems to provide a subset of .NET Framework desktop [`Socket`s](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.sendasync%28v=vs.110%29.aspx) members. The only methods to send and receive are [`SendAsync`](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.sendasync%28v=vs.110%29.aspx) and [`RecieveAsync`](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.receiveasync%28v=vs.110%29.aspx). Despite the names they are not `async` methods but an old school variant to which one supplies the `SocketAsyncEvenArgs` parameter _shudder_. We need to bring .NET Core's `Socket` up-to-date and provide `async` variants. Also consider synchronous methods since `Socket`s are often used in in background processes with dedicated threads where that is wanted (applications tend to use higher application level type such as `HttpClient`). +2938 area-System.Runtime GC tests GetTotalMemoryTest_ForceCollection, GetGenerationTest test failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release/1057/console ``` GCTests.GetTotalMemoryTest_ForceCollection [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: d:\j\workspace\dotnet_corefx_windows_release\src\System.Runtime\tests\System\GC.cs(295,0): at GCTests.GetTotalMemoryTest_ForceCollection() ``` We should probably just delete these tests. +2942 area-System.Threading Request to Add Timer.Dispose(WaitHandle) API in CoreCLR. We are working on porting our .Net 4.5 application to the .Net Core CLR platform. We have multiple services implemented in our application which need to do some work every so often. Currently this is implemented using System.Threading.Timer with a callback method that is responsible for scheduling the next callback. During cleanup, we want to wait until we are sure that the callback is no longer running and will not run in future. Currently we do this using Threading.Timer.Dispose(WaitHandle) with additional synchronization mechanism to avoid the ObjectDisposedException. Since CoreCLR doesn't have Timer.Dispose(WaitHandle) implemented, every application/service now has to implement Timer.Dispose(WaitHandle) logic using some synchronization mechanism in their code. This adds complexity at each place where this API is used currently. We would like to carry forward the same behavior and so would request to add this API [Timer.Dispose(WaitHandle)] back in CoreCLR. Thanks, Mehul. +2944 area-System.Net Fix an assert in CurlHandler multi handle release path - If a timeout happens, the socket fd is not removed from _fdSet. When SafeCurlMultiHandle is finalized, it checks if _fdSet is empty and this assertion was failing. So ensuring that all codepaths of EndRequest result in cleanup from _fdSet cc: @stephentoub @davidsh @CIPop @SidharthNabar @pgavlin +2953 area-System.Security Add RSA.Create() to utilize the correct platform-dependent RSA implementation +2958 area-System.IO Add coverage to DriveInfo tests FileSystem.DriveInfo.dll coverage raised to at or near testable maximum. Added several scenarios that weren't present before and also split up Volume Label setting/getting to several tests so that errors can be better diagnosed. +2961 area-System.IO Avoid unnecessary allocations when using FileStream "This was originally a PR (https://github.com/dotnet/coreclr/pull/1429), turned into an issue as a result of the comments there. The idea is to avoid 4KB allocation for buffer whenever we need to work with large number of files. Consider the following code: ``` foreach (var file in System.IO.Directory.GetFiles(dirToCheck, ""*.dat"")) { using (var fs = new FileStream(file, FileMode.Open)) { // do something to read from the stream } } ``` The problem is that each instance of FileStream will allocate an independent buffer. If we are reading 10,000 files, that will result in 40MB(!) being allocated, even if we are very careful about allocations in general. See also: https://github.com/dotnet/corefx/pull/2929 The major problem is that FileStream will allocate its own buffer(s) and provide no way to really manage that. Creating large number of FileStream, or doing a big writes using WriteAsync will allocate a lot of temporary buffers, and generate a _lot_ of GC pressure. As I see it, there are a few options here: - Add a constructor that will take an external buffer to use. This will be the sole buffer that will be used, and if a bigger buffer is required, it will throw, instead of allocating a new buffer. - Add a pool of buffers that will be used. Something like the following code: [ThreadStatic] private static Stack[] _buffersBySize; private static GetBuffer(int requestedSize) { if(_buffersBySize == null) _buffersBySize = new Stack[32]; ``` var actualSize = PowerOfTwo(requestedSize); var pos = MostSignificantBit(actualSize); if(_buffersBySize[pos] == null) _buffersBySize[pos] = new Stack(); if(_buffersBySize[pos].Count == 0) return new byte[actualSize]; return _buffersBySize[pos].Pop(); ``` } private static void ReturnBuffer(byte[] buffer) { var actualSize = PowerOfTwo(buffer.Length); if(actualSize != buffer.Length) return; // can't put a buffer of strange size here (prbably an error) ``` if(_buffersBySize == null) _buffersBySize = new Stack[32]; var pos = MostSignificantBit(actualSize); if(_buffersBySize[pos] == null) _buffersBySize[pos] = new Stack(); _buffersBySize[pos].Push(buffer); ``` } The idea here is that each thread has its own set of buffers, and we'll take the buffers from there. The Dispose method will return them to the thread buffer. Note that there is no requirement to use the same thread for creation / disposal. (Although to be fair, we'll probably need to handle a case where a disposal thread is used and all streams are disposed on it). The benefit here is that this isn't going to impact the external API, while adding the external buffer will result in external API being visible. " +2963 area-System.Net Handle leak with WinHttpHandler "The following test demonstrates an unbounded leak of both memory and handles: ``` C# [Fact] public void TestLeak() { while (true) { HttpClient client = new HttpClient(); client.GetStringAsync(""http://www.httpbin.org"").Wait(); // client.Dispose(); } } ``` At least one problem appears to be that without explicitly Dispose'ing of the HttpClient instance, the underlying session SafeHandle is never cleaned up. When the session handle is created, it's DangerousAddRef'd (https://github.com/dotnet/corefx/blob/master/src/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpHandler.cs#L992), and then DangerousRelease is only called if explicitly Dispose'ing (https://github.com/dotnet/corefx/blob/master/src/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpHandler.cs#L555). " +2965 area-System.Net Dns.GetHostAddressesAsync and HttpClient can't run on Linux System.AggregateException: One or more errors occurred. ---> System.ArgumentException: The AddressFamily Unspecified is not valid for the System.Net.IPEndPoint end point, use InterNetwork instead. Parameter name: socketAddress at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at ConsoleApp1.Program.d__2.MoveNext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait() at ConsoleApp1.Program.Main(String[] args) +2967 area-System.Net Add System.Net.NameResolution to README.md Add System.Net.NameResolution to README.md. +2972 area-System.Net Add more tests for WebHeaderCollection Excluded from #2380 +2973 area-System.Net Fix HttpClientHandler timeouts Since HttpClientHandler doesn't expose all the timeout used by the underlying WinHttpHandler, we need to disable those timeouts in favor of the HttpClient.Timeout property. Addresses issue #2857. +2982 area-System.Net WebSocket extensions From using the WebSocket class, I think these extensions make sense: ``` C# Task ReceiveTextAsync(CancellationToken cancellationToken = default(CancellationToken)); Task> ReceiveBinaryAsync(CancellationToken cancellationToken = default(CancellationToken)); Task SendAsync(string message, CancellationToken cancellationToken = default(CancellationToken)) Task SendAsync(ArraySegment message, CancellationToken cancellationToken = default(CancellationToken)) ``` - All methods have a defaulted CancellationToken. - The Receive method implementations read until EndOfMessage. - The Receive methods send back a Close message when receiving one. The message sent back echos the status code which was received. - The Receive methods throw when the MessageType is different than that of the method signature. (For most protocols, the user will know what MessageType he expects to come next.) - The string overloads handle the encoding/decoding. +2984 area-System.Collections Installing System.Collections.Immutable on .NET 4.5 brings unnecessary packages "When System.Collections.Immutable nuget package is installed to project targeting .NET 4.5, some unnecessary dependencies are brought in: ``` ``` NuGet is apparently smart enough to not add those packages as references as they are only meant for .NET Core, but I still feel they should not even be added to packages.config and downloaded. [System.Collections.Immutable nuget package](https://www.nuget.org/packages/System.Collections.Immutable/) only specifies dependencies for .NET Core (DotNET 5.0). I believe that adding empty dependencies group for .NET 4.5 as can be seen in [AutoMapper nuget package](https://www.nuget.org/packages/AutoMapper/) (for example) would fix the issue and those dependencies would not be downloaded. Have not adding other dependency groups been done on purpose or is it an oversight? Thanks! " +2988 area-System.Net How to implement System.Net.NameResolution on FreeBSD? The assembly `System.Net.NameResolution` does not compile on FreeBSD. Looking at the sources it seems to have corresponding source files implementing it on Linux and OS X. Looks like a good candidate for a shim, to unify the implementation. Especially given that the sockets API is pretty consistent across POSIX systems. @nguerrera do you plan a `System.Net.Native` shim to cover this? \cc @josteink +2992 area-System.Net Merge changes from TFS +2996 area-System.Globalization System.Globalization: Expose DateTimeFormat GetShortestDayName to .NET Core contract I found what looks like a mistake in the .NET Core contracts for DateTimeFormat. This class exposes two sets of APIs: some methods, and their corresponding properties. For example, DateTimeFormat has a GetMonthName(int) method, that returns the name of the specified month. And then it has a corresponding property MonthNames, that is a string array of all the month names. This is true for Month Names, Abbreviated Month Names, Day Names, and Abbreviated Day Names. And in the full framework, this holds true for Shortest Day Names: string GetShortestDayName(DayOfWeek) & string[] ShortestDayNames. However, in the .NET Core contracts, the string[] property ShortestDayNames is public, but the method GetShortestDayName(DayOfWeek) is not exposed. I see this [is true for Silverlight](https://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo%28v=vs.95%29.aspx) as well. We should expose this method in the .NET Core. +3000 area-System.Net Switch to using async WinHTTP APIs in WinHttpHandler The current version of WinHttpHandler calls into WinHTTP using a synchronous pattern. We need to switch to using the async pattern instead, in order to provide the required performance and scalability for server scenarios of ASP.NET 5. +3002 area-System.Net Add System.Net.Http.Native shim and seed it with curl initialization cc @sokket @bartonjs @stephentoub +3007 area-System.Linq Calls with out enum arguments fail when expression tree is interpreted. "``` C# public enum MyEnum { Value } public class Foo { public static void Bar(out MyEnum o) { o = MyEnum.Value; } public void Test() { var x = Expression.Variable(typeof (MyEnum), ""x""); var expression = Expression.Lambda( Expression.Block( new [] { x }, Expression.Call(null, typeof(Foo).GetMethod(""Bar""), x))); expression.Compile()(); } } ``` Interpreter throws - $exception {""Object of type 'System.Int32' cannot be converted to type 'App1.MyEnum&'.""} System.ArgumentException " +3008 area-System.Xml Short-circuit key comparison on equal indexes in EnumerableSorter in System.Xml.XDocument System.Xml.XDocument has its own copy of EnumerableSorter and possibly can benefit from the same fix as in https://github.com/dotnet/corefx/pull/2977 +3009 area-System.IO PathHelper stackalloc version can't grow Will always fail with MAX_PATH if it goes beyond when resolving paths (relative, short names, etc.). Need to change to allow switching between stack and heap when needed. +3014 area-System.Reflection MSDN doc wrong about virtual CustomAttributeData.AttributeType property in .NET 4.5 According to MSDN, [System.Reflection.CustomAttributeData.AttributeType](https://msdn.microsoft.com/en-us/library/system.reflection.customattributedata.attributetype%28v=vs.110%29.aspx) is virtual on .NET4.5/4.6. It isn't however in reality. I suppose it's confused because in CoreFx the property _is_ indeed [virtual](https://github.com/dotnet/corefx-progress/blob/67c6fd93d8b24f5f82490e295950214a45769f4d/src-full/System.Reflection.cs#L54). Can we get this fixed? +3015 area-System.Net HttpClientHandler on unix (CurlHandler) hangs forever in case of negative scenarios "When curl handler encounters exception in its execution, it hangs forever. ``` using (var handler = new HttpClientHandler()) { handler.MaxAutomaticRedirections = 5; var client = new HttpClient(handler); await client.GetAsync(""http://httpbin.org/redirect/6""); } ``` " +3016 area-System.Net HttpClientHandler on unix (CurlHandler) Cookie Behavior different between Unix and Windows There are subtle differences in the way HttpClientHandler behaves w.r.t cookies. On windows if we set httpHandler.UseCookies = true but if the user does not provide a valid cookieContainer, we get InvalidOperationException. In case of CurlHandler, we are ignoring it. +3028 area-System.Security Add X509Chain tests for expiration boundary conditions The X509Chain object supports an explicit time for the override. Using a statically built chain, no revocation mode, and an explicit time, it should be possible to get a very deterministic test for the chain assessment. +3033 area-System.Net Fix error handling in WinHttpHandler StartRequest Addresses dnu restore exception 2547 https://github.com/aspnet/dnx/issues/2547/ - Fix a code path where `requestHandle` could be `null`. - Add unit test to simulate this error code path. +3034 area-System.Security Add support for OCSP on Unix OCSP = Online Certifciate Status Protocol +3035 area-Microsoft.CSharp System.Dynamic.Runtime tests should probably move to under Microsoft.CSharp What we have currently under System.Dynamic.Runtime\tests are mostly tests for C# dynamic. While they do provide coverage for System.Dynamic, they target various language features and only indirectly target DLR machinery. This is confusing. (see, for example, discussion in https://github.com/dotnet/corefx/pull/2941) Tests that target and require C# dynamic should go to under Microsoft.CSharp. If there are any tests that directly targets DLR and do not require C# dynamic, they can remain under System.Dynamic.Runtime. +3037 area-System.Diagnostics TestProcessStartTime test is failing on OS X The TestProcessStartTime test in System.Diagnostic.Process.ProcessTests class is failing with the following error: System.Diagnostics.ProcessTests.ProcessTests.TestProcessStartTime [FAIL] Assert+WrapperXunitException : File path: Y:\Repositories\personal\dotnet\corefx\src\System.Diagnostics.Process\tests\ProcessTests.cs. Line: 387 ---- Assert.InRange() Failure Range: (635766571991261530 - 635766571991772530) Actual: 635766571650984930 Stack Trace: at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) at Assert.InRange[T](T actual, T low, T high, String path, Int32 line) at System.Diagnostics.ProcessTests.ProcessTests.TestProcessStartTime() ----- Inner Stack Trace ----- at Assert.InRange[T](T actual, T low, T high, String path, Int32 line) +3043 area-System.Linq Allow empty BlockExpression expressions Issue #1877 discusses having `SwitchExpression` objects with no cases. One might similarly have a case where `BlockExpression` elements were being created dynamically and one hit the case of their being no expressions within the block. Such a block would be essentially the same as `Expression.Empty`, but arrived at through happening to hit zero item in a dynamic construction. It would seem that the arguments [here](https://github.com/dotnet/corefx/pull/2803#issuecomment-136514021) about zero-case switches apply equally to zero-item blocks. +3045 area-System.Net WebException.Status on Unix returning wrong result for DNS failures ``` Discovering: System.Net.Requests.Tests Discovered: System.Net.Requests.Tests Starting: System.Net.Requests.Tests System.Net.Requests.Test.HttpWebRequestTest.GetResponseAsync_ServerNameNotInDns_ThrowsWebException [FAIL] Assert.Equal() Failure Expected: NameResolutionFailure Actual: UnknownError Stack Trace: at System.Net.Requests.Test.HttpWebRequestTest.GetResponseAsync_ServerNameNotInDns_ThrowsWebException() Finished: System.Net.Requests.Tests ``` +3046 area-System.Linq Use BlockExpression subclasses more widely. BlockExpression has several subclasses that cover various numbers of sub- expressions when the type is the same as the last expression, and there are no variables. These are only used in one or two of the possible paths under which they make sense. Use them more widely. +3048 area-System.Reflection Merge branch 'master' of https://github.com/dotnet/corefx into dev/metadata +3050 area-System.Net Refactor CurlHandler for threading and resource cleanup "@davidsh, @CIPop, @pgavlin: The first commit in this PR enables the System.Net.Requests tests to run on Unix in CI. Just a few minor tweaks. @kapilash: The second commit is your commit with new tests from #2916, which this PR replaces. @kapilash, @vijaykota: The third commit is the majority of the changes for this PR... CurlHandler is now split into three types: - CurlHandler, which represents the shell of the handler, contains some helper functions, and contains a ""MultiAgent"". It submits ""EasyRequest""s to the ""MultiAgent"". - CurlHandler.EasyRequest, which represents all of the state associated with a SendAsync request on the HttpClient. - CurlHandler.MultiAgent, which represents the owner of a libcurl multi handle and all of the processing associated with it. The MultiAgent is responsible for actually processing EasyRequests, which CurlHandler queues to it. MultiAgent is designed to not require any cleanup. When the first EasyRequest arrives, it spins up a worker that creates a multi handle to process the request. Any additional requests to arrive while that worker is active will be processed by that worker and multi handle. When no work remains, the multi handle and the worker goes away. If/when another request arrives, a new multi handle / worker are spun up. Etc. Almost all of the locking previously there was removed, as the worker thread is now solely responsible for doing all work on the multi handle; any requests for processing come in through the requests queue processed by that thread. This design avoids threading issues we faced with regards to accessing state managed by the multi handle without holding the lock (e.g. polling file descriptors) and avoids having multiple threads blocked waiting on the lock to do processing associated with the multi handle. It also makes resource cleanup much easier and more deterministic: all state associated with the easy handle is cleaned up when that thread is done processing the easy handle, and all state associated with the multi handle is cleaned up when the worker thread shuts down. The change also ensures that we always complete the response message, and that any exceptions that occur are propagated as needed to Read on the response stream (fixes #3015). Further, the design will make it trivial in the future to change the relationship between a CurlHandler and a MultiAgent: - If we want one MultiAgent shared across all CurlHandlers, we just change the _agent field to be static instead of instance. - If we want a pool of MultiAgents, we can simply create a collection of them and round-robin between them from one or more CurlHandlers. - Etc. All of the configuration code remains, e.g. what options are set on the easy and multi handles, but the code has been refactored. I also include CURLOPT_NOSIGNAL to avoid multithreading problems per the docs. Along the way, I cleaned up some stale interop that's gotten left behind through various iterations, and I fixed a few small issues related to behavioral differences from Windows, e.g. CookieContainer never returning null, UseCookies defaulting to true, etc. (Fixes #3016) " +3051 area-Meta Create a C++ coding standard for the PAL layer Create a C++ code style document describing coding standards and naming standards to use the PAL layer. Also, fix up the current PAL code to adhere to the coding standard +3054 area-System.Runtime Add AssemblyLoadContext.LoadUnmanagedDllFromPath helper API "## Scenario Overrides of `System.Runtime.Loader.AssemblyLoadContext.LoadUnmanagedDll` that just wish to provide alternative paths are forced to write platform-specific code to call `LoadLibrary` or `dlopen` to load the library and return the library handle. For example: ``` c# internal class CustomAssemblyLoadContext : AssemblyLoadContext { [DllImport(""kernel32"")] private static extern IntPtr LoadLibrary(string path); [DllImport(""libdl"")] private static extern IntPtr dlopen(string path, int flags); protected override IntPtr LoadUnmanagedDll(String unmanagedDllName) { if (!ShouldLoadFromCurrentDirectory(unmanagedDllName)) { return IntPtr.Zero; // use the default loader } var libraryPath = Path.Combine(Environment.CurrentDirectory, unmanagedDllName); IntPtr libraryHandle = EnvironmentHelper.IsWindows ? LoadLibrary(libraryPath) : dlopen(libraryPath, 0); if (libraryHandle == IntPtr.Zero) { // ... (more error handling) throw new DllNotFoundException(unmanagedDllName); } return libraryHandle; } } ``` The proposal is to add an API to `AssemblyLoadContext` to provide a platform-independent way of loading an unmanaged library: ``` c# internal class CustomAssemblyLoadContext : AssemblyLoadContext { protected override IntPtr LoadUnmanagedDll(String unmanagedDllName) { if (!ShouldLoadFromCurrentDirectory(unmanagedDllName)) { return IntPtr.Zero; // use the default loader } var libraryPath = Path.Combine(Environment.CurrentDirectory, unmanagedDllName); return LoadUnmanagedDllFromPath(libraryPath); } } ``` ## Proposed API ``` c# namespace System.Runtime.Loader { public abstract class AssemblyLoadContext { // Relevant existing members protected abstract Assembly Load(AssemblyName assemblyName); protected Assembly LoadFromAssemblyPath(string assemblyPath); protected virtual IntPtr LoadUnmanagedDll(String unmanagedDllName); // Proposed members protected IntPtr LoadUnmanagedDllFromPath(String unmanagedDllPath); } } ``` ## Details ### Usage and behavior - `unmanagedDllPath` must be an absolute path to the library to load - No changes are made to the specified search path or library name in `unmanagedDllPath` before attempting the load. For example, no prepending ""lib"" and no appending "".so"". However, the system may make changes, for instance, LoadLibrary on Windows appends a "".dll"" if an extension is not specified. - `LoadUnmanagedDllFromPath` would try to load the library using default load flags, and upon success, would return the library handle (value returned by LoadLibrary/dlopen) - `LoadUnmanagedDllFromPath` would throw an exception upon failure to load the library - Upon a successful load, callers from LoadUnmanagedDll overrides are expected to return the library handle from LoadUnmanagedDll, since there is no equivalent of FreeLibrary/dlclose - Upon returning a nonzero value from LoadUnmanagedDll, the loader would attempt to load the entry point from the library ### Exceptions - `ArgumentNullException` - Self-explanatory - `ArgumentException` - `unmanagedDllPath` is an empty string or a relative path - The following exceptions are inherited by the default loader implementation: - `BadImageFormatException` - Windows only - Failed to load the library - `DllNotFoundException` - Did not find the library or failed to load the library - Note that the default loader may also throw `EntryPointNotFoundException`. Since the entry point is loaded upon returning from `LoadUnmanagedDll`, a successful return from `LoadUnmanagedDll` may still be followed by this exception. " +3055 area-System.Net System.Uri fails on long non ascii domains "This domain in russian: ``` csharp Console.WriteLine(new Uri(@""http://высококачественные-пиломатериалы.рф"", UriKind.Absolute)); output: http:/// ``` I start truncate domain from end: ``` csharp Console.WriteLine(new Uri(@""http://высококачественные-пиломатериал.рф"", UriKind.Absolute)); // still bad output: http:/// Console.WriteLine(new Uri(@""http://высококачественные-пиломатериа.рф"", UriKind.Absolute)); // remove one more char, ok output: http://высококачественные-пиломатериа.рф/ ``` `Uri.TryCreate` with schema `//` fails with `Index was outside the bounds of the array.`: ``` csharp Uri uri; Uri.TryCreate(@""//высококачественные-пиломатериалы.рф"", UriKind.Absolute, out uri); exception: Index was outside the bounds of the array. ``` " +3056 area-System.Security MD5.Create() fails on Linux/Mac (was: Windows interop getting called on Unix systems) When calling `Internal.NativeCrypto.Cng.Interop.BCryptOpenAlgorithmProvider` (e.g. when using `MD5.Create()`) on Unix systems the Windows Interop seems to be called. On both Ubuntu 14.04 and OSX I get `System.DllNotFoundException: Unable to load DLL 'BCrypt.dll'`. +3061 area-Serialization Clean up unused directives in serialization code +3062 area-System.Security CryptographicException(int hr) should assign Message based on the code Using Interop.mincore.GetMessage (or whatever the correct API is) on Windows, and the OpenSSL ERR_ APIs on Unix. +3063 area-System.Security Calls to X509_STORE_add_crl should check for unexpected errors `0x0B07D065` (X509_R_CERT_ALREADY_IN_HASH_TABLE) is expected, anything else should throw. Blocked on #3062, because currently we can either get the numeric code in the exception, or the string, but not both. +3065 area-Infrastructure Add coreclr<-> corefx repo integration build We should have an outerloop coreclr<->corefx integration build. +3066 area-System.Numerics Some Vector tests overflow their test values on AVX2 Some of the tests for Vector inadvertently overflow some of the array data they generate, because they do some arithmetic on the index of each element. For example: ``` CSharp T[] values2 = new T[Vector.Count]; for (int g = 0; g < Vector.Count; g++) { values2[g] = (T)(dynamic)(g * 5); } Vector vec2 = new Vector(values2); ``` On AVX2, there are 32 bytes in a Vector. 32 \* 5 = 160, which has far overflowed a signed byte. Anything over 25 elements here will overflow, which is breaking the tests, as they are doing GreaterThan/LessThan/etc. comparisons between the three arrays generated. Actually, the (unsigned) Byte versions of these tests will also break once they run on AVX512, since 64-byte vectors will easily overflow an unsigned byte with this calculation, as well. These should be rewritten to be more robust to this sort of issue. Note: this issue doesn't show up on the builds here; we don't run the tests in a configuration that would hit this (AVX2, x64, Release) +3067 area-System.Net Implement ReadAsync on CurlHandler's response stream +3068 area-System.Net Implement ReadAsync on CurlHandler response stream Today, CurlHandler provides a response content stream that doesn't override ReadAsync. As such, any consumers reading data using ReadAsync will actually end up blocking a thread pool thread doing a synchronous Read. This commit fixes that by implementing ReadAsync to be truly asynchronous with no additional threads blocked. If data is already available, a task is returned immediately. Otherwise, the reader asynchronously waits for the writer to publish data and then consumes that data. The overall design of the response stream remains the same as it was. However, there are some notable changes: - A SemaphoreSlim is now used instead of a ManualResetEventSlim for the _writerPublishedDataEvent. This was done because SemaphoreSlim supports both synchronous and asynchronous waiting. - The _readerRequestingDataEvent was removed, as it was no longer necessary. - We no longer allocate an UnmanagedMemoryStream per write operation, instead simply storing the IntPtr buffer and long length on the response stream. - Additional reorganization was done, primarily to share logic between Read and ReadAsync. - A bunch of comments and debug asserts were added. A second commit enables the asynchronous wait to be canceled by either the internal shutdown CancellationToken or by the CancellationToken provided by the caller to ReadAsync. Fixes #3067 cc: @vijaykota, @kapilash, @davidsh, @pgavlin, @CIPop +3069 area-System.Net Delete stale HttpClientHandler.Unix.cs file from repo There are currently two HttpClientHandler.Unix.cs files checked in: - One in System.Net.Http\src\System\Net\Http - One in System.Net.Http\src\System\Net\Http\Unix The former is the original stubbed out version, throws from every property, and isn't referenced by the .csproj, whereas the latter is where all of the recent development related to CurlHandler has happened. This PR simply deletes the former to avoid confusion, and then moves the latter up one level so that it continues to be next to its .Windows.cs counterpart. (The GitHub diff makes it looks like I actually changed .cs file content, which I didn't; I left it as two commits to make it more evident that I simply deleted a file, moved another, and then made a two-line change to the .csproj.) cc: @davidsh, @vijaykota, @kapilash +3071 area-System.Net Fix for #3045. Fixing WebException.Status on Unix This commit fixes #3045. WebExecption class currently looks at the value of underlying HResult to set the value of the Status. We need to set the value of HttpRequestMessage.HResult to appropriate CURLcode in case of errors. WebException maps this to the relevant WebExceptionStatus +3072 area-System.Security System.Security.Cryptography.Csp should support all runtimes "I want to use RSACryptoServiceProvider, but System.Cryptography.Csp seams to be not available when targeting ""dotnet"". I looked around and it doesn't look like it's moved to another assembly. Are there any plans about this? " +3077 area-System.Security WindowsPrincipalTests.WindowsPrincipalIsInRoleNeg test fails locally I get this failure when trying to run the System.Security.Principal.Windows tests locally: ``` Discovering: System.Security.Principal.Windows.Tests Discovered: System.Security.Principal.Windows.Tests Starting: System.Security.Principal.Windows.Tests WindowsPrincipalTests.WindowsPrincipalIsInRoleNeg [FAIL] System.Exception : The trust relationship between this workstation and the primary domain failed Stack Trace: \corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\NTAccount.cs(343,0): at System.Security.Princ ipal.NTAccount.TranslateToSids(IdentityReferenceCollection sourceAccounts, Boolean& someFailed) \corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\NTAccount.cs(204,0): at System.Security.Princ ipal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean& someFailed) \corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\NTAccount.cs(174,0): at System.Security.Princ ipal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean forceSuccess) \corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\WindowsPrincipal.cs(69,0): at System.Security .Principal.WindowsPrincipal.IsInRole(String role) \corefx\src\System.Security.Principal.Windows\tests\WindowsPrincipalTests.cs(14,0): at WindowsPrincipalTests.WindowsPrinc ipalIsInRoleNeg() Finished: System.Security.Principal.Windows.Tests ``` cc: @pallavit +3085 area-System.Net Improve SafeWinHttpHandle reference counting logic to prevent leaks "This PR mainly addresses ""handle leaks"" #2963, #2762, #2793. In investigating the leaks, I discovered that our use of the SafeHandle pattern was not quite right. In addition, SafeHandle has some rather quirky lifetime management aspects with respect to the Dispose() and DangerousRelease() methods. After reviewing the source code for SafeHandle itself, I discovered a better pattern to using. Native Windows WinHTTP handles wrapped by SafeHandle need additional lifetime management protection. I also needed to add finalizers to the WinHttpHandler, WinHttpRequestStream and WinHttpResponseStream classes. Finally, I added unit tests to validate our behavior assumptions and to track leaks in the WinHttpHandler logic. This change does not affect the SafeWinHttpHandleWithCallback class that is used by System.Net.WebSocket.Client. But that class is incorrectly using the SafeHandle pattern w.r.t. Dispose() and I will be fixing that in a later PR. " +3089 area-System.Net CurlHandler blocking write callback can lead to deadlock With the current implementation of CurlHandler in HttpClient on Unix, when downloaded data is available, libcurl invokes a callback to provide that data to the application. Until a reader is available to consume all of that data, the callback blocks. I'd previously noted this as a performance problem to be fixed, but it's actually a much worse problem in that it can easily lead to deadlock. Here's a new test to demonstrate: ``` C# [Fact] public async Task GetAsync_ResponseHeadersRead_ReadFromEachIterativelyDoesntDeadlock() { using (var client = new HttpClient()) { const int NumGets = 5; Task[] responseTasks = Enumerable.Range(0, NumGets) .Select(_ => client.GetAsync(HttpTestServers.RemoteGetServer, HttpCompletionOption.ResponseHeadersRead)) .ToArray(); for (int i = responseTasks.Length - 1; i >= 0; i--) { using (HttpResponseMessage response = await responseTasks[i]) { await AssertSuccessfulGetResponse(response, HttpTestServers.RemoteGetServer, _output); } } } } ``` Here we kick off N downloads and then iteratively process each to completion before moving on to process the next. This means that we only try to read from a single download at a time, and if this doesn't happen to be the same download that has data available next, our reader will block waiting for data, which will never come because the libcurl callback is blocked waiting for a reader for a different download. We should fix this by employing libcurl's ability to pause connections. When the write callback is invoked, if there isn't currently a read pending on that download, the write callback should return to libcurl to inform it that the connection needs to be paused. When the reader later comes along, it needs to unpause that connection. Obviously there will be some synchronization required here, but it shouldn't be too bad. cc: @vijaykota, @kapilash +3091 area-System.Net Enabling Testcases for POST/PUT methods +3093 area-System.Linq Add static method to create an IEnumerable with one element I find that I need the following static method quite often: ``` csharp public static class MoreEnumerableMethods { // ... public static IEnumerable Singleton(TResult element) { return Repeat(element, 1); } } ``` This seems like a really good fit for `Enumerable` itself, where it would live alongside `Repeat`, `Empty`, and `Range`. I want to be able to say `Enumerable.Singleton(x)`, not `MoreEnumerableMethods.Singleton(x)`. Even Eric Lippert has [complained](http://ericlippert.com/2013/03/18/monads-part-eight/) about the lack of this method: > I wish there was a static method on Enumerable specifically for making a one-element sequence. I have the code (and tests) ready on [a branch in my fork](https://github.com/dotnet/corefx/compare/master...benjamin-hodgson:singleton#diff-95a14d3b4ae14339b623dd95c7537fd0R1497). I can open a pull request right away, subject to any required API reviews. I'm happy to discuss things like the method name (perhaps `One` or `Singular` would be a better choice?). +3096 area-System.Net Improve WinHttpHandler and SafeWinHttpHandle reference counting logic "This PR mainly addresses ""handle leaks"" #2963, #2762, #2793. In investigating the leaks, I discovered that our use of the SafeHandle pattern was not quite right. Native Windows WinHTTP handles wrapped by SafeHandle need additional lifetime management protection to preserve parent-child relationships. Closing the parent handle too early will invalidate the child handle. So, added a SetParentHandle() method to SafeWinHttpHandle to protect against this. This also simplified the passing of handles to the WinHttpResponseStream class. I added finalizers to the WinHttpHandler and WinHttpResponseStream classes. Note that the WinHttpRequestStream class doesn't need a finalizer because its lifetime is short within the processing of the SendAsync() method. Finally, I added unit tests to validate the behavior assumptions and to track leaks in the WinHttpHandler logic. This change does not affect the SafeWinHttpHandleWithCallback class that is used by System.Net.WebSocket.Client. But that class is incorrectly using the SafeHandle pattern w.r.t. Dispose() and I will be fixing that in a later PR. " +3098 area-System.Reflection Fix System.Reflection.Metadata.nuspec dependency +3103 area-System.Numerics System.Numerics.Vectors NuGet package does not work with F# "The [System.Numerics.Vectors](https://www.nuget.org/packages/System.Numerics.Vectors/) package (v4.1.0) doesn't seem to work correctly with F#: Whenever I try to use it, it installs correctly, but the compiler always refers to the corresponding .NET 4.6 reference assembly (""C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.6\System.Numerics.Vectors.dll"", in my case) instead of the downloaded assembly in the packages directory. When installing the NuGet package into a C# project, it found that a `` item was added to the csproj file, redirecting the reference to the proper assembly (e.g. `..\packages\System.Numerics.Vectors.4.1.0\lib\net46\System.Numerics.Vectors.dll`). For F# projects however this `` is _not_ added to the fsproj file. Adding it manually fixes the problem. " +3105 area-System.Net Avoid blocking CurlHandler write callback When receiving the body of an HTTP response, libcurl provides the data received via a callback that's invoked synchronously from the thread pumping libcurl's processing. This callback can't return until it's handed off all of the available data, and thus the current implementation of CurlHandler blocks that thread until a reader has consumed the data. This is both expensive and dangerous. It's expensive because we end up blocking a thread until some reader comes along, and it's dangerous because this can easily lead to deadlock. A libcurl multi handle may be used by only one thread at a time, which means that if the handle is being used by a thread while blocked on the write callback, no other thread can access the multi handle, which means no other callbacks for other concurrent requests can be invoked. If multiple operations were queued, and then the data for them arrived in an order that didn't exactly match the order of readers consuming the data, deadlock would ensue. This change makes it so that we no longer block the callback, taking advantage of a pausing mechanism libcurl provides that allows one to pause a connection until it's needed. I rewrote the CurlResponseStream to manage this. Now when the callback has data to write, it attempts to transfer it to the stream. If there's a reader already waiting for the data (represented by a task stored on the stream), the callback simply transfers its data to the reader. If the callback has too much data than would fit in the reader, the remaining data is buffered on the stream. If instead the callback finds that either there isn't a waiting task or that there's already some remaining data buffered from a previous callback, it instead pauses the connection, such that no more callbacks will be invoked until we unpause. From the reader side, a reader who tries to read data from the stream can pull data from the remaining buffer if there is any, or can register a task with the stream that will be filled with data at some point when callback has data available. As part of debugging some issues with this change, I added a verbose tracing mechanism that's enabled by compiling the library with the CURLHANDLER_VERBOSE constant (the same that we use for enabling libcurl's verbose diagnostic output). I left the tracing in as I found it valuable in diagnosing issues with the library, but we can remove it later if desired. I also added a test that deadlocks before the change and that completes successfully after. cc: @vijaykota, @kapilash Fixes #3089 +3106 area-System.Linq Intersect not optimized for HashSet Hello, I found some old blog about an optimization of Intersect when the underlying collection is a HashSet. I have been caught of this issue in a contest and using the custom implementation made a huge performance difference. Here the blog by Patrick Smacchia with a full description of the issue : http://www.codebetter.com/patricksmacchia/2011/06/16/linq-intersect-2-7x-faster-with-hashset/ Patrice +3107 area-Meta [Feature] General purpose data binding support? "Please forgive me if this is the wrong place to post this; but it certainly seems like a good place :) I think that it would be extremely useful if there were a general-purpose data binding mechanism providing a consistent way to synchronize the properties of objects making it for developers to have consistent support for patterns that benefit from data binding such as the popular MVVM and MVPVM design patterns. Also including the `IValueConverter` interface and related functionality that is included in the `System.Windows.Data` namespace of the fully featured .NET framework but perhaps in a less platform-specific namespace like `System.Data`? Whilst not applicable in the following example; perhaps a general purpose XAML implementation would also be of benefit perhaps allowing a XAML representation of a custom selection of UI controls outside the scope of Windows or Xamarin forms? I see this being of particular use in .NET Core based game engines. # Example Use Case (User Code) For example, if the Unity game engine was using .NET Core with such a feature it would then be quite straightforward to add binding support to the Unity UI controls simply by having them implement `INotifyPropertyChanged`. ## Programmatic Bindings Continuing with the Unity example; some `MonoView`-derived component could be added to the root of each composition of UI controls allowing for manual binding similar to this: ``` // ExampleView.cs public class ExampleView : MonoView { [SerializeField] private InputField _firstNameInputField; ... protected override void OnBind() { Bindings.Add(new Binding(_firstNameInputField, ""text"", ViewModel, ""FirstName"", BindingMode.TwoWay)); } } ``` Where the base classes look like this: ``` // MonoView.cs public abstract class MonoView : MonoBehaviour { public MonoView() { Bindings = new BindingCollection(); } protected BindingCollection Bindings { get; private set; } ... protected virtual void OnBind() { } protected virtual void OnUnbind() { // Properly disposes all bindings (unsubscribes from source/target objects). foreach (var binding in Bindings) { binding.Dispose(); } Bindings.Clear(); } } // MonoView{T}.cs public abstract class MonoView : MonoView where TViewModel : class { ... } ``` ## Designer Specified Bindings In addition to programmatic binding (like above) it would also be fairly straightforward to create a custom ""PropertyBinder"" `MonoBehaviour` component which could be added to UI controls to allow designers to make similar associations using just the Unity ""Inspector"" window. ``` +---------------------------------------------------------------------------+ | Property Bindings Component: | | +-------------------------------------------------[ Remove Binding ]--+ | | | ___________________________________________ | | | | Control Property: | text | \/ | | | | | ------------------------------------------- | | | | ___________________________________________ | | | | Data Context Property: | FirstName | \/ | | | | | ------------------------------------------- | | | +---------------------------------------------------------------------+ | | _________________________ | | | Add Another Binding | | | ------------------------- | +---------------------------------------------------------------------------+ ``` ## Bindings properly disposed when removed/cleared from the `Bindings` collection When the view is unbound from the data context all `Bindings` would be properly disposed allowing the view to be reused and bound to another view model. # Closing Words I'm sure that you folks have probably already got something like this planned; but I wanted to post this feature request just in case it isn't on the roadmap :) " +3113 area-System.Net Porting System.Net.Security Missing issues for TODO comments. Will create the tracking issue and update the code, author (dotnetbot) and reference the tracking issue. @davidsh @bartonjs @pgavlin @stephentoub @SidharthNabar PTAL. +3114 area-System.Net Tracking items for System.Net.Security This issue is tracking TODOs and Shims removal for PR #3113: - [ ] Replace Interop.Secur32 names with OS names from the SDK (sspi.h and schannel.h) - [X] Replace the X509Certificate ctor shim as soon as it is available. - [X] Move _SSPIWrapper.cs OS specific classes to Interop.SSPI - [ ] Remove StreamAsyncHelper references and implement FixedSizeReader and SslState using TPL instead of APM. - [ ] _SslState.cs:1299: Within FinishWrite() the callback is called under `lock (this)`. We need to investigate if there is any chance of a deadlock. - [X] Remove SSLv2 support from SslStream. - [ ] Add new Cypher and Hashing algorithms to enums within the contract. - [ ] Split _SecuritySafeHandles.Windows.cs - [ ] In NativeSSPI: Unit/Functional test required to understand the intent and pin behavior between Desktop and CoreFX. > Decrypt checked qop != SECQOP_WRAP_NO_ENCRYPT. Sign used it. Verify just ignores it? - [ ] Replace all usage of ArrayList, Hashtable with appropriate modern collections. - [ ] Behavior impacting: check client certs for the client EKU within `private bool AcquireClientCredentials(ref byte[] thumbPrint)` - [ ] Replace the implementation of SpnDictionary with `Dictionary<>` or `ConcurrentDictionary<>`. - [X] Provide TPL Stream overrides for SslStream. (By #5541.) - [ ] Investigate ways to bring back the NetworkStream specific optimizations (`BeginMultipleWrite`, etc) - [ ] Move public parameter checks within their respective public methods. (See comments in #5541) - [ ] In `CompleteAuthToken` and `ApplyControlToken`: remove the extra allocation of a `CredHandle`; refactor the code to avoid duplication; remove the `AddRef` if the `refContext` was previously `null`. (See #11489) +3124 area-System.Net Content-Type getting set incorrectly in CurlHandler "This test passes on Windows but fails on Unix: ``` C# [Theory, MemberData(""PostServers"")] public async Task PostAsync_CallMethod_StreamContent(Uri remoteServer) { using (var handler = new HttpClientHandler()) using (var client = new HttpClient(handler)) { byte[] data = new byte[1234]; new Random(42).NextBytes(data); HttpContent content = new StreamContent(new MemoryStream(data)); HttpResponseMessage response = await client.PostAsync(remoteServer, content); Assert.Equal(HttpStatusCode.OK, response.StatusCode); string responseContent = await response.Content.ReadAsStringAsync(); Assert.Contains(Convert.ToBase64String(data), responseContent); } } ``` It looks like the Content-Type header is being set inappropriately. " +3126 area-System.Collections Circular buffer data structure As far as I know, there is no circular buffer implementation in .NET (https://en.wikipedia.org/wiki/Circular_buffer). Some simple implementations over an array or a Queue are discussed here, for instance: https://social.msdn.microsoft.com/forums/vstudio/en-US/416a2175-b05d-43b1-b99a-a01c56550dbe/circular-buffer-in-net +3128 area-Infrastructure Microsoft.CSharp fails to build when running MSBuild on Mono When using build.sh on Linux Microsoft.CSharp runs into some build issues. I am going to disable it for now and follow up with this issue. +3131 area-System.Net Fix for #3124. CurlHandler sets invalid content-type for POST requests libcurl defaults to a Content-Type:application/x-www-form-urlencoded for Post operations. This default behavior is inconsistent with dotnet API. Current PR fixes this issue by overriding the default value. +3133 area-System.Xml Investigate/Remove custom internal test frameworks There are a number of projects with their own internal test frameworks, that need to be investigated, and potentially removed in favor of xunit. To be clear, I'm not talking about projects with helper objects and methods (although some should be re-evaluated now that we're using xunit), I'm thinking of stuff like System.Xml.ReaderWriter.Tests (and its multiple constituent projects): ![image](https://cloud.githubusercontent.com/assets/5569508/9761804/e5ab2cb6-5739-11e5-8e2b-510d780c0e29.png) ...and if you'll notice, xunit isn't reporting the skipped tests, because it doesn't see them. Are those important? I really doubt reporting is turning those up. And hopefully fails percolate.... Some of these frameworks are pretty heavily entrenched in their host projects, and dismantling them would be a large-scale effort. The ones I'm aware of (can recall) at the moment are: - System.Collections - System.Threading.Tasks - System.Xml.ReaderWriter ...although there are undoubtedly more. +3134 area-Infrastructure System.ServiceProcess.ServiceController.Tests needs admin privleges... ...but the tests don't check for permission ahead of time/don't report that as a possible error. +3135 area-System.Diagnostics Support an optional exception handler in TelemetryListener/TelemetrySource "I've been playing around with the new `TelemetryListener`/`TelemetrySource` classes and have found them to be a great fit for a simple eventing pattern. However an unexpected impact on firing `WriteTelemetry` was that if a subscriber fails, no subsequent subscribers will have their `OnNext` method called. From reading the various comments - particularly @vancem's https://github.com/dotnet/corefx/pull/2932#issuecomment-134328582 - on the PR I understand that this stems from how RX approaches exceptions, yet in the case of telemetry and multi-cast events it seems like there will be many cases where one broken subscriber shouldn't bring the system down. Would it be possible to consider an overload to `WriteTelemetry` which looks like this: ``` c# public override void WriteTelemetry(string telemetryName, object arguments, Func exHandler) { for (TelemetrySubscription curSubscription = _subscriptions; curSubscription != null; curSubscription = curSubscription.Next) { try { curSubscription.Observer.OnNext(new KeyValuePair(telemetryName, arguments)); } catch (Exception ex) { if (!exHandler(ex)) { break; } } } } ``` This would then support calls that would allow the sender to pass a function that can evaluate for each exception if the calls should continue: ``` c# source.WriteTelemetry(""Send"", o, ex => !(ex is CatastrophicException) ); ``` Alternatively an approach could be considered that uses `AggregateException` that simply collects all exceptions and throws them collectively at the end. " +3136 area-System.Net TransferEncodingChunked not being set by CurlHandler for streams of unknown length "Exact same test as in #3124, but with a non-seekable stream instead of a seekable one, such that HttpClient can't access the stream's length: ``` C# [Theory, MemberData(""PostServers"")] public async Task PostAsync_CallMethod_UnknownLengthStreamContent(Uri remoteServer) { var handler = new HttpClientHandler(); using (var client = new HttpClient(handler)) { byte[] data = new byte[1234]; new Random(42).NextBytes(data); HttpContent content = new StreamContent(new NonSeekableMemoryStream(data)); HttpResponseMessage response = await client.PostAsync(remoteServer, content); Assert.Equal(HttpStatusCode.OK, response.StatusCode); string responseContent = await response.Content.ReadAsStringAsync(); Assert.Contains(Convert.ToBase64String(data), responseContent); } } private sealed class NonSeekableMemoryStream : MemoryStream { public NonSeekableMemoryStream(byte[] data) : base(data) { } public override bool CanSeek { get { return false; } } } ``` TransferEncodingChunked should be set to true in this case, but CurlHandler isn't doing so, such that the test passes on Windows but fails on Unix. " +3137 area-System.Net CurlHandler synchronously reads from request stream, blocking libcurl processing If the request message has a request content stream to send, libcurl retrieves that data via read callbacks done during its processing. These read callbacks are currently Read'ing from the content stream, which blocks the processing while the read is being completed. If the content stream is a memory stream, this is fine, as such reads will complete immediately. And even for some other stream types, like FileStream, the reads should complete quickly enough that there's no problem. But for streams that take a longer time, this can cause significant delays in CurlHandler's ability to process other pending HttpClient requests. It can also lead to deadlock if the request stream for one request is being fed by the response stream of another request being processed by the same handler. +3138 area-System.Net Avoid blocking CurlHandler read callback PR #3105 addressed the issue we were facing with libcurl and the write callback used when libcurl has response body data available. We were blocking libcurl's callback until a reader was available to consume the data, resulting in both significant scalability issues as well as the potential for easy deadlock. This was fixed by making the whole operation async via libcurl's ability to pause connections. The same issue exists for libcurl's read callback, used by libcurl to read data from the request stream to send as part of the request. The issue here isn't as impactful as on the write side, because a) a common case has no request stream or has a MemoryStream that serves up its data immediately, and b) other streams (e.g. FileStream) typically serve their data quickly even if blocking is involved and don't interact with the HttpClient in a way that could lead to deadlock. However, it's still an issue, and it's still possible to construct cases where deadlock is possible, e.g. if the output stream of one request is used as the input stream of another request associated with the same libcurl multi handle. This commit addresses the read callback case by relying on the same pause mechanism used for the write callback. When libcurl requests data, if the source is a memory stream, we just do the read and hand back the data. Otherwise, we issue a ReadAsync on the stream. If the operation completes immediately, we synchronously hand the data back to libcurl, storing any extra beyond what libcurl asked for. If the operation didn't complete immediately, we store it for later, and pause the connection, requesting an unpause when the read operation completes. Subsequent read requests from libcurl first try to be satisfied from any previous ReadAsync with data remaining. As part of this, I also removed the pause state tracking I'd previously added. In my previous PR as part of adding support for pausing, I added a field to EasyRequest to attempt to mirror the current paused state as known by libcurl. This was done to try to avoid requesting unpausing in cases where we'd like to be unpaused but have already requested it. However, this appears to have been premature optimization, as the case is relatively rare, the overheads relatively low for processing the extra request, and it causes additional headaches once we're able to pause sending/receiving individually. I added several tests for different kinds of streams. This required fixing #3136, which was preventing any data from being sent from non-seekable request streams. Fixes #3136 Fixes #3137 cc: @vijaykota, @kapilash, @davidsh, @pgavlin, @CIPop +3140 area-Meta Turn on CheckForOverflowUnderflow on all projects in Debug Right now, only System.Reflection.Metadata has CheckForOverflowUnderflow on in Debug. I think there's value in doing this across the board. Expressions that are allowed to overflow by design should be explicitly marked `unchecked`. cc @weshaggard @stephentoub +3141 area-System.Linq Expression interpreter - AddOvf does not throw OverflowException In AddInstruction.cs, the following code `(Int16)checked((Int16)l + (Int16)r)` seems to be wrong and should be `checked((Int16)((Int16)l + (Int16)r))` instead. Repro: `Expression.Lambda( Expression.AddChecked( Expression.Constant(Int16.MinValue), Expression.Constant(Int16.MinValue) ) ).Compile().DynamicInvoke()` throws TargetInvocationException with an OverflowException when using the compiler. When using the interpreter, it succeeds. +3144 area-System.Net Remove references to TaskAPMExtensions in System.Net tests Remove Common\tests\System.Net\TaskAPMExtensions.cs and rewrite tests using TPL instead. +3147 area-System.Linq Expression interpreter - NewArrayBounds does not throw OverflowException Consider the following fragment: `Expression.Lambda(Expression.NewArrayBounds(typeof(int), Expression.Constant(0), Expression.Constant(-1))).Compile().DynamicInvoke()` With the expression compiler, this throws OverflowException. With the expression interpreter, the call to Array.CreateInstance results in an ArgumentOutOfRangeException. +3149 area-System.Linq Expression compiler - Inconsistency with language specification Section 7.9 of the C# language specification describes the number of bits to shift. It looks like this rule is not honored by the expression compiler which omits the `and` instruction to perform the mask, prior to performing the `shl` or `shr` instruction. The following repros the discrepancy: Expression<Func<long?, int?, long?>> e = (x, y) => x << y; Func<long?, int?, long?> f = (x, y) => x << y; Func<long?, int?, long?> g = e.Compile(); var c = f(-9223372036854775808, -2147483648); var d = g(-9223372036854775808, -2147483648); Console.WriteLine(c); Console.WriteLine(d); Note that the implementation of the expression interpreter relies on C# compiled code fragments for << and >>, so this will cause a different result for .Compile() between frameworks that use the expression compiler versus those that use the interpreter. +3150 area-Infrastructure Cannot build System.Collections.Concurrent.Tests in Visual Studio 2015 I get the following error: ``` xunit.abstractions 2.0.0 is not compatible with DNXCore,Version=v5.0. ``` Any suggestions or work-around? +3151 area-System.Net CurlHandler supports only ClientCertificateOption.Manual Today CurlHandler supports only clientCertificateOption.Manual. Now with the availability of cross platform X509Store, CurlHandler must support ClientCertificateOption.Automatic as well. +3153 area-System.Net Could CurlHandler support UNIX sockets? There is support in `libcurl` for using UNIX sockets instead of TCP (http://curl.haxx.se/libcurl/c/CURLOPT_UNIX_SOCKET_PATH.html). In a microservice world, this capability is very useful for communication between discrete services on a single server, reducing the overhead of TCP sockets and improving performance. As a precedent, the Kestrel HTTP server now supports UNIX sockets, which Nginx can consume when reverse-proxying (see https://github.com/aspnet/KestrelHttpServer/pull/157). I took a quick look to see if I could implement this, but there doesn't seem to be a point where a socket file path could be added in, so I opted for starting a discussion instead. :open_mouth: +3156 area-System.IO Can we determine if a FileSystem is case sensitive or not through an API? I'm exploring the possibility of making our cross-platform file globbing to determine if it acts as case sensitive or not based on current file system. It can't be determined just by the current operating system since case insensitive file system can still be mounted on Linux/Unix/Darwin. Is there an API can help to determine if a file system at given path is case sensitive. +3163 area-System.Net Replace TRAVE to TRACE_VERBOSE throughout the code. **Workitem:** 1. Ensure that all instances of `TRAVE` are replaced by `TRACE_VERBOSE` throughout the code base. 2. Ensure that no other name is used to enable verbose tracing. (If others exist, they should be replaced by `TRACE_VERBOSE`.) --- **Initial Design Discussion**: In System.Net code we have debug-only verbose tracing guarded by a variable named `TRAVE` (TRAce VErbose). The following have been brought up during PRs for this code: 1. Standardize a single such name across corefx 2. Change the name (seems like a typo) Please add your suggestions and then convert this to a code issue to track changes across the entire repo. +3172 area-Meta Standardize flags declarations in native shims We have a mix of raw integers and casting scoped enums right now. See https://github.com/dotnet/corefx/pull/3142#issuecomment-139330591: A general comment on raw integers vs. enum's on C++ side for flags. I've been doing the latter based on my recollection that storing a value that is not any one of the enum members is unspecified or undefined in standard C++. However, I'm no longer sure after looking at recent edits on cppreference.com: http://en.cppreference.com/mwiki/index.php?title=cpp/language/static_cast&diff=78871&oldid=74481 My understanding was on the LHS of that diff. I don't know yet if the edits reflect errata on the site matching my own misunderstanding or just updates tracking the next version of the standard. Even if it is well defined, it requires a lot of ugly casting, which kind of eliminates the benefit of strong typing. It's not apparent in this change because your flags come in from C# with the right values, but once you have to twiddle the bits, e.g. ConvertOpenFlags, it gets messy. Assuming it is in fact well defined, we could have a macro to define bitwise operators on what we deem Flags enums. This would serve double-duty as documentation to C# caller to add [Flags]. I'm fine leaving this for a later change, but this is something we should standardize one way or the other. +3178 area-System.Net Redirect handling for cookies and creds This fix realigns CurlHandler with WinHttpHandler w.r.t Redirect handling. When redirect is detected, we clear the credentials if the credentials were originally provided as NetworkCredentials Otherwise we use the forwarding URI to get the new set of credentials. Like wise, in case of redirects, we get the cookies again from the cookieContainer In addition, this commit also collects the cookies from the response header +3179 area-System.Runtime Enhance Guid type with implicit type conversions to useful primitive types "Currently, Guid feels a little bit left out. While other built-in types have implicit type convertions, or support from Convert, Guid have it's own ""bastion"" of methods and converters, and is a source of confusion for new developers. Is there any particual reasons (except historical) that Guid should not be part of built-in types and have a implicit convertion (from bytes or string)? " +3180 area-Serialization XmlSerializationWriter not visible "I get the following error: DNXCore,Version=v5.0 error CS0234: The type or namespace name 'XmlSerializationWriter' does not exist in the namespace 'System.Xml.Serialization' (are you missing an assembly reference?) Program.cs: ``` using System; namespace XmlSerializationWriterTest { public class Program { public void Main(string[] args) { System.Xml.Serialization.XmlSerializationWriter writer = (System.Xml.Serialization.XmlSerializationWriter)(new Object()); } } } ``` project.json: ``` { ""dependencies"": { }, ""frameworks"": { ""dnxcore50"": { ""dependencies"": { ""System.Xml.XmlSerializer"": ""4.0.10"" } } } } ``` The code of XmlSerializationWriter is here: https://github.com/dotnet/corefx/blob/41e203011152581a6c65bb81ac44ec037140c1bb/src/System.Xml.XmlSerializer/src/System/Xml/Serialization/XmlSerializationWriter.cs " +3183 area-System.Data Use modern data structures and array APIs for SqlClient SqlClient in its current state has code that has been around since a long time. The usage of data structures like HashTable should be migrated to Dictionary There are some array operations which are being done manually and can be migrated to Array APIs +3184 area-System.Data Update Interop Code in SqlClient to follow guidelines Based on PR https://github.com/dotnet/corefx/pull/2986 address the interop related comments. +3185 area-System.Net Add System.Net.Http.CurlHandler HttpClient is implemented as a sort-of plug-in model, where you provide to it a “handler” that actually does the heavy lifting. There’s a default HttpClientHandler type, which on Windows is implemented around winhttp and on Unix is implemented around libcurl. HttpClientHandler only exposes core knobs that are expected to be common across all possible implementations, but the underlying implementations often provide more functionality. So on Windows, we also have System.Net.Http.WinHttpHandler (a class in its own separate assembly), which is the same handler used by default on Windows under HttpClientHandler, but which as a public type exposes additional knobs for developers to configure, e.g. timeouts on individual portions of a request/response rather than for the all-up operation. There are such knobs we’d like to be able to configure with libcurl, e.g. targeting a UNIX domain socket as a proxy, but for which we’d need to expose CurlHandler publically in order to provide the right additional surface area. +3186 area-System.IO Add System.IO.FileSystem.Unix There are a bunch of common Unix file system constructs that we have no public surface area in .NET to control or interact with. For example, Unix permissions are a very common need for users/devs to interact with, but we don’t provide any surface area for getting (stat) or setting (chmod) these. We don’t provide surface area for changing ownership (chown), for creating symlinks (symlink) or hard links (link), etc. Devs can P/Invoke to these, but it’d be nice to have surface area for it to avoid devs needing to do that, especially given that some of these are impractical to P/Invoke to in any common way across Unix systems, e.g. the struct used by stat changes in both layout and size based on which distro/version you’re targeting, which is one of the many reasons we’ve moved away from direct P/Invokes to libc and instead have a think native shim. As a comparison, Mono has a library called Mono.Posix that provides essentially 1:1 wrappers between directly callable C# functions and the underlying POSIX functions they wrap. +3187 area-System.Security Add System.Security.Principal.Unix We provide the Windows-only System.Security.Principal.Windows.dll on Windows, which brings with it WindowsIdentity and WindowsPrincipal. We don’t currently have corresponding types for UnixIdentity and UnixPrincipal. This would support getting the current user/group, setting the effective user/group (kind of like Windows impersonation), looking up information about the user, etc. +3188 area-System.IO Add System.IO.Signals.Unix Signals are a ubiquitous mechanism across Unix systems for interactions between processes and the kernel. The only API we currently have for sending any signal is Process.Kill(), which sends a SIGKILL signal, but to write robust Unix applications (and services) you likely want to be able to both send signals and handle specific signals. The former can be done by a dev using a P/Invoke, but the latter would really require libcoreclr support to do correctly, especially since the runtime itself already hooks certain signals (e.g. a SIGINT signal sent by ctrl-C, which we then subscribe to the runtime for in Console.CancelEventHandler). +3189 area-Meta Add System.Configuration.Unix There’s a lot of Unix configuration information that apps could benefit from being able to read (e.g. sysconf, pathconf, ulimit, etc.) and potentially modify. Potentially support for parsing/outputting Unix configuration files as well. +3190 area-System.Net RemoteCertificateValidationCallback for HttpWebRequest The current implementation of HttpWebRequest in .Net 4.6 lacks RemoteCertificateValidationCallback similar to that of SslStream class. This makes mutual authentication impossible, especially when client becomes aware of mutual authentication enforced by server only after SSL handshake has been initiated. Currently all certificate callbacks for HttpWebRequest is managed by ServicePointManager class, I request to include this feature in corefx releases. Please see [this question](http://stackoverflow.com/questions/9294433/how-to-detect-client-certificate-authentication-request-in-httpwebrequest) in SO. +3199 area-System.Net Reduce allocations when parsing response headers in WinHttpHandler "There are currently many unnecessary allocations when creating the response message in `WinHttpHandler`. The native `WinHttpQueryHeaders` function is called a few times to retrieve response information, such as the version string, reason phrase, and raw headers. Each call to `WinHttpQueryHeaders` currently results in 3 allocations (9 total for the 3 calls): 1. The `StringBuilder` buffer passed to the native function to be filled in. 2. The `char[]` inside the `StringBuilder`. 3. The `string` allocated when `StringBuilder.ToString()` is called. On platforms that need to do manual decompression (lower than Win 8.1), there's another 2-3 allocations to get the Content-Encoding header value. We can reduce the allocations by 1) modifying the p/invoke signature for `WinHttpQueryHeaders` to take a `char[]` instead of `StringBuilder` and 2) allocate a single `char[]` large enough to be reused across multiple calls to `WinHttpQueryHeaders`. With those changes, 9 allocations are down to 2: an allocation for the raw headers `char[]` and another for the reason phrase `string`. There are many common reason phrases, such as ""OK"" for a 200 status code, or ""Not Found"" for a 404 status code. There's already internal code in `HttpStatusDescription` for looking up a known reason phrase string based on the status code, and we can make use of this existing code to avoid the reason phrase string allocation if the reason phrase `char[]` array segment is equal to a known reason phrase. 9 allocations down to 1, for common reason phrases. When parsing the raw headers, the current code is using `string.Split` to split the raw headers by lines separated by `""\r\n""`. There are a bunch of unnecessary allocations associated with the use of `string.split`: internally `string.Split` allocates two arrays to keep track of the indexes and separator sizes, there's the overall array returned from `Split`, plus each string in the array representing each line. Each line then needs to be split further to get the header name and value for each line. The header value was also being trimmed with `string.Trim`, another potential allocation. Also, the first line of the raw headers is the status line, which is being allocated as a `string` even though this line is currently being skipped. All of these intermediate allocations can be avoided by parsing the `char[]` directly, and only allocating `string`s for the individual header names and values. And we can avoid `string` allocations for known header names and values, similar to the known reason phrase optimization. Notes: - `HttpKnownHeaderNames.TryGetHeaderName` is looking up all known header name constants, which include both request and response headers, while we only really care about response headers. My opinion is that this is OK. I think it's easier to maintain the lookup of known headers if it is just looking up all known headers, instead of trying to segregate which ones are only response headers. - `HttpKnownHeaderNames.TryGetHeaderName` is currently doing an ordinal lookup. Header names are case insensitive, so I'd be open to changing this to do an case insensitive lookup. I kept it ordinal so the string remains the exact same as the response string from WinHTTP. However, it looks like WinHTTP normalizes the casing of headers it knows about (e.g. WinHTTP returns `""Content-Length""` when the actual server response is `""content-length""`), so maybe switching to case insensitive lookup isn't a big deal. - The PR is broken up into multiple commits to make it easier to review. The earlier commits are mostly just adding helpers and tests, and moving some of the internal files to `Common` (e.g. `HttpStatusDescription`). I can squash some of the commits together, if desired. - There are still a bunch of allocations associated with how headers are enumerated and stored internally on each request/response in `HttpClient` that I'm looking into improving in a separate PR. " +3205 area-System.Net Corefx HttpClientHandler CookieContainer property deviates from Desktop During the PR for #3178 , it was discovered that the `HttpClientHandler` of corefx deviates from desktop .Net version w.r.t the setter for `CookieContainer` property. Setting a `null` value results in an exception in the desktop version. In case of corefx, it results in an error during `SendAsync`. +3206 area-Infrastructure How to run Unit tests on Windows run on 32-bit CoreCLR? Is it possible to run corefx tests on 32 bit CoreCLR? After building corefx, I opened a corefx solution and changed `platform target``to``x86`` but it doesn't work. +3207 area-System.Security PFX certificates are not well-ordered across implementations Similar to issues #2743 and #2745, the fix would be to not use the `PKCS12_parse` and `PKCS12_create` helper functions, but to get into the nitty-gritty with PKCS12 primitives. This manifests as both writing order and reading order, to be consistent across Windows, Linux, and OSX. +3213 area-System.Net IPAddressParsing.ParseIPv6_ScopeId_Success failing on OS X ``` Assert.Equal() Failure ↓ (pos 7) Expected: fe08::1%13542 Actual: fe08::1 ↑ (pos 7) +++++++++++++++++++ STACK TRACE: at System.Net.Primitives.Functional.Tests.IPAddressParsing.ParseIPv6_ScopeId_Success() ``` +3215 area-System.IO Two FileSystemWatcher tests failing on OS X ``` 09:22:39 CreatedTests.FileSystemWatcher_Created_WatcherDoesntFollowSymLinkToFile [FAIL] 09:22:39 Didn't observe a symlink created event within 30000ms 09:22:39 Expected: True 09:22:39 Actual: False 09:22:39 Stack Trace: 09:22:39 at Utility.ExpectEvent(WaitHandle eventOccured, String eventName, Int32 timeout) 09:22:39 at CreatedTests.FileSystemWatcher_Created_WatcherDoesntFollowSymLinkToFile() 09:22:44 MoveFileTests.Unix_File_Move_In_Nested_Directory_Triggers_Event(eventType: Changed, moveRaisesEvent: False) [FAIL] 09:22:44 Should not observe a Changed event within 500ms 09:22:44 Expected: False 09:22:44 Actual: True 09:22:44 Stack Trace: 09:22:44 at Utility.ExpectNoEvent(WaitHandle eventOccured, String eventName, Int32 timeout) 09:22:44 at MoveFileTests.<>c__DisplayClass1.b__0(AutoResetEvent eventOccured, TemporaryTestDirectory ttd) 09:22:44 at Utility.TestNestedDirectoriesHelper(WatcherChangeTypes change, Action`2 action, NotifyFilters changeFilers) 09:22:44 at MoveFileTests.MoveAndCheck_NestedDirectory(WatcherChangeTypes eventType, Boolean moveRaisesEvent) 09:22:44 at MoveFileTests.Unix_File_Move_In_Nested_Directory_Triggers_Event(WatcherChangeTypes eventType, Boolean moveRaisesEvent) ``` cc: @sokket +3218 area-System.Net NameResolutionPalTests.GetHostByName_HostName test failing on OS X in CI The failure didn't repro for me locally, but it's happening consistently in the CI build: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_mac_debug_tst/25/console ``` System.Net.NameResolution.PalTests.NameResolutionPalTests.GetHostByName_HostName [FAIL] 22:46:36 System.ArgumentOutOfRangeException : Specified argument was out of the range of valid values. 22:46:36 Parameter name: newAddress 22:46:36 Stack Trace: 22:46:36 at System.Net.IPAddress..ctor(Int64 newAddress) 22:46:36 at System.Net.NameResolutionPal.CreateHostEntry(hostent* hostent) 22:46:36 at System.Net.NameResolutionPal.GetHostByName(String hostName) 22:46:36 at System.Net.NameResolution.PalTests.NameResolutionPalTests.GetHostByName_HostName() ``` +3219 area-System.Net Disable GetHostByName_HostName test failing on OSX #3218 +3224 area-System.Linq Expression compiler - Y combinator issue "The following fails to compile correctly: Expression f = Expression.Lambda(Expression.Empty(), Expression.Parameter(typeof(X))); var a = Expression.Lambda(Expression.Invoke(f, f)); var m = typ.DefineMethod(""A"", MethodAttributes.Public | MethodAttributes.Static); a.CompileToMethod(m); where X is defined as: public delegate void X(X a); The object identity of 'f' used in the invocation expression seems the culprit due to some caching in the lambda compiler. " +3225 area-System.Security Investigate if Unix X509Chain.Build has the same truth table as Windows On Unix it seems to be returning false for any validation errors, and on Windows it might be more nuanced. +3226 area-System.Security Investigate if Unix and Windows X509Chains treat root certs in ExtraStore the same "Right now I think Unix says ""you told me about it, clearly it's trusted"" and Windows says ""it wasn't in one of the trust stores, it isn't trusted"". So the Unix version needs to be less trusting. But this behavior is currently unconfirmed. " +3232 area-System.Security Unix OpenSsl-based CryptographicExceptions should set both Message and HResult Currently only Message is set, making it hard to reason about the error (in cases where it makes sense to do so). This is the Unix half of #3062. +3233 area-System.Security Windows CNG/CAPI-based CryptographicExceptions should set both Message and HResult "In CoreFx the library that CryptographicException is in is platform agnostic, so it doesn't load a code for the int-only constructor. In debug builds the message should be of the form (`""(0x{0:X8}) {1}"", hr, Interop.mincore.GetMessage(hr))`; later that might change to all builds if we really like it. This is the Windows half of #3062. " +3239 area-System.IO Fixed OSX file creation time format FileInfo.CreationTime on OSX was returning a correctly timed but incorrectly formatted DateTime. This commit fixes this issue and adds coverage to a existing test to fill the test gap that let the issue through. +3243 area-System.Globalization Some tests failing due to changes in Globalization data We need to pay down some test debt here. There are a lot of places where we hard code expected values for tests which can change depending on the underlying OS which provides the data. We should figure out the right way to detect what OS we are on so we can provide the correct expected data. +3244 area-System.Linq Consider having expression interpreter available in all build flavors For some of our Bing service, we often run into the case where expression compilation is too expense, either because it's on a request/response path, or because it's statically known that the expression is small and will be evaluated only once. I can provide more details on such scenarios if needed. Unfortunately, expression interpretation is a property of the .NET build flavor, e.g. for .NET Native the Compile method uses the interpreter. It'd be nice to have an Interpret method alongside Compile to enable those scenarios. It'd also help a lot in writing parity tests for the expression compiler and interpreter because their outcomes can be cross-checked. +3245 area-System.Linq Add N-ary internal specializations for InvocationExpression "In Bing, we use an expression normal form whereby method call expressions etc. get erased for invocation expressions of an unbound parameter, e.g.: Expression.Call(where, xs, filter) becomes Expression.Invoke(Expression.Parameter(typeof(...), ""where""), xs, filter) This is done to decouple client libraries and service libraries through erasure of MemberInfo objects. The service uses a binder to bind the unbound parameter expression to a service-side definition and beta-reduces the invocation of the (lambda-based) definition. A lot of those invocation expressions have 0, 1, 2, 3 arguments. However, unlike MethodCallExpression, InvocationExpression has no N-ary specializations that help to reduce memory. The proposal is to add such specializations to conserve memory. " +3248 area-System.Net Setting HttpWebRequest.AutomaticDecompression When I look at the source of HttpWebRequest I see that the AutomaticDecompression property of the HttpClientHandler is forced to `DecompressionMethods.None` ([line 373](https://github.com/dotnet/corefx/blob/07f8c0fe64ac44bedced873181d6832bc2afcc50/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs)). How do I set it properly? In the past we could simply do this: `request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;` +3249 area-System.Runtime Add a monotonic clock to the framework "**Problem:** Many BCL components use `DateTime.UtcNow` to compute timeouts and time deltas. When you run a ""Find Usages"" on `DateTime.UtcNow` in .NET Framework assemblies a lot of usage sites come to light. For example, in ADO.NET, transactions, caches, WebRequest, remoting, WCF, SignalR, security. **All of these usages are bugs** because the current system time can change significantly forwards and backwards at any time. This means that in case the system clock is changed many .NET components will spuriously fail. Common symptoms would be timeouts firing to early or too late (possibly never). Perf counters also might show too high or negative values. Sample scenario: 1. The system clock spuriously jumps forward due to misconfiguration by years. 2. A cache item is added. 3. The clock is fixed. Then, the cache item will essentially stay around forever if eviction is based on `DateTime.UtcNow`. I believe this bug exists in the BCL. User code also has the same problems. **Solution:** Add some kind of monotonic clock to the BCL. The main property of such a clock would be that its time advances linearly. It should never jump when the system clock changes. It should not exhibit split second jumps. It should behave reasonably in case the system sleeps or hibernates or in case the VM is paused. This monotonic clock class should be fast and convenient to use so that it is a no-brainer to switch all `DateTime.UtcNow` usages over to the new model. Maybe we can add `Environment.TickCount64` as well. `Environment.TickCount64` alone would not be good enough because it is awkward to use. I'm not sure if `Stopwatch` would cover all these requirements. It is a reference type which might be too heavy for hot code path in the BCL. Maybe we can add a new value type that is made exactly for this purpose. A sketch: ``` struct MonotonicTime { long Ticks; MonotonicTime operator + (MonotonicTime, TimeSpan); TimeSpan operator - (MonotonicTime, MonotonicTime); bool IsNegative; static MonotonicTime Current; ... } ``` To summarize, I request: 1. The framework timeouts should be fixed. (The TPL bugs apparently are already fixed. I reported these a while ago.) 2. Add `Environment.TickCount64`. 3. Provide a convenient, high-performance monotonic clock. " +3253 area-System.IO Support for tar archives Right now corefx supports zip files as well as gz files. Would it be hard to get it to support tar files as well for compatibility with the other OS's who package files as tgz very often? A C# implementation already exists at https://code.google.com/p/tar-cs/ and could be used either as a guideline or directly imported. If this is something that is desired I could work on designing an API, but it shouldn't be hard to visualize how it might look like. +3256 area-System.Net WinHttpWebSocketState is leaking a GCHandle System.Net.WebSockets.Client.WinHttpWebSocketState allocates a GCHandle in the constructor with this code: ``` c# private GCHandle _operationHandle = new GCHandle(); public WinHttpWebSocketState() { _operationHandle = GCHandle.Alloc(this); } ``` But if never calls Free() on the GCHandle. Normally, you need code like this to free the handle: ``` c# if (_operationHandle.IsAllocated) { _operationHandle.Free(); } ``` +3260 area-System.Console System.Console.Is[Input|Output]Redirected is not available in CoreFX IsInputRedirected and IsOutputRedirected properties are not available in System.Console +3262 area-System.Numerics Vector tests failing on one of my machines "On my local machine I doing a default build.cmd which builds x64 debug I keep getting the below failures. If it helps these pass on my other machine and the machine they fail on has the following processor: ""Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz, 3601 Mhz, 4 Core(s), 8 Logical Processor(s)"" cc @mellinoe @CarolEidt System.Numerics.Tests.Vector3Tests.Vector3CopyToTest [FAIL](TaskId:163) Assert.Throws() Failure (TaskId:163) Expected: typeof(System.ArgumentOutOfRangeException) (TaskId:163) Actual: typeof(System.NullReferenceException): Object reference not set to an instance of an object. (TaskId:163) Stack Trace: (TaskId:163) D:\git\corefx\src\System.Numerics.Vectors\tests\Vector3Tests.cs(28,0): at System.Numerics.Tests.Vector3Tests.<>c__DisplayClass1_0.b__1() (TaskId:163) System.Numerics.Tests.Vector4Tests.Vector4CopyToTest [FAIL](TaskId:163) Assert.Throws() Failure (TaskId:163) Expected: typeof(System.ArgumentOutOfRangeException) (TaskId:163) Actual: typeof(System.NullReferenceException): Object reference not set to an instance of an object. (TaskId:163) Stack Trace: (TaskId:163) D:\git\corefx\src\System.Numerics.Vectors\tests\Vector4Tests.cs(28,0): at System.Numerics.Tests.Vector4Tests.<>c__DisplayClass1_0.b__1() (TaskId:163) System.Numerics.Tests.Vector2Tests.Vector2CopyToTest [FAIL](TaskId:163) Assert.Throws() Failure (TaskId:163) Expected: typeof(System.ArgumentOutOfRangeException) (TaskId:163) Actual: typeof(System.NullReferenceException): Object reference not set to an instance of an object. (TaskId:163) Stack Trace: (TaskId:163) D:\git\corefx\src\System.Numerics.Vectors\tests\Vector2Tests.cs(28,0): at System.Numerics.Tests.Vector2Tests.<>c__DisplayClass1_0.b__1() (TaskId:163) System.Numerics.Tests.GenericVectorTests.GreaterThanOrEqualAnySByte [FAIL](TaskId:163) Assert.False() Failure (TaskId:163) Expected: False (TaskId:163) Actual: True (TaskId:163) Stack Trace: (TaskId:163) D:\git\corefx\src\System.Numerics.Vectors\tests\GenericVectorTests.cs(1248,0): at System.Numerics.Tests.GenericVectorTests.TestVectorGreaterThanOrEqualAny[T]() (TaskId:163) D:\git\corefx\src\System.Numerics.Vectors\tests\GenericVectorTests.cs(1204,0): at System.Numerics.Tests.GenericVectorTests.GreaterThanOrEqualAnySByte() (TaskId:163) System.Numerics.Tests.GenericVectorTests.GreaterThanOrEqualAllSByte [FAIL](TaskId:163) Assert.True() Failure (TaskId:163) Expected: True (TaskId:163) Actual: False (TaskId:163) Stack Trace: (TaskId:163) D:\git\corefx\src\System.Numerics.Vectors\tests\GenericVectorTests.cs(1300,0): at System.Numerics.Tests.GenericVectorTests.TestVectorGreaterThanOrEqualAll[T]() (TaskId:163) D:\git\corefx\src\System.Numerics.Vectors\tests\GenericVectorTests.cs(1259,0): at System.Numerics.Tests.GenericVectorTests.GreaterThanOrEqualAllSByte() (TaskId:163) System.Numerics.Tests.GenericVectorTests.CopyToByte [FAIL](TaskId:163) Assert.Throws() Failure (TaskId:163) Expected: typeof(System.ArgumentOutOfRangeException) (TaskId:163) Actual: typeof(System.NullReferenceException): Object reference not set to an instance of an object. (TaskId:163) Stack Trace: (TaskId:163) D:\git\corefx\src\System.Numerics.Vectors\tests\GenericVectorTests.cs(311,0): at System.Numerics.Tests.GenericVectorTests.<>c__DisplayClass100_0`1.b__1() (TaskId:163) System.Numerics.Tests.GenericVectorTests.CopyToSByte [FAIL] (TaskId:163) Assert.Throws() Failure (TaskId:163) Expected: typeof(System.ArgumentOutOfRangeException) (TaskId:163) Actual: typeof(System.NullReferenceException): Object reference not set to an instance of an object. (TaskId:163) Stack Trace: (TaskId:163) D:\git\corefx\src\System.Numerics.Vectors\tests\GenericVectorTests.cs(311,0): at System.Numerics.Tests.GenericVectorTests.<>c__DisplayClass100_0`1.b__1() (TaskId:163) System.Numerics.Tests.GenericVectorTests.CopyToUInt16 [FAIL](TaskId:163) Assert.Throws() Failure (TaskId:163) Expected: typeof(System.ArgumentOutOfRangeException) (TaskId:163) Actual: typeof(System.NullReferenceException): Object reference not set to an instance of an object. (TaskId:163) Stack Trace: (TaskId:163) D:\git\corefx\src\System.Numerics.Vectors\tests\GenericVectorTests.cs(311,0): at System.Numerics.Tests.GenericVectorTests.<>c__DisplayClass100_0`1.b__1() (TaskId:163) System.Numerics.Tests.GenericVectorTests.CopyToInt16 [FAIL](TaskId:163) Assert.Throws() Failure (TaskId:163) Expected: typeof(System.ArgumentOutOfRangeException) (TaskId:163) " +3266 area-System.Linq Use optimized N-ary MethodCallExpression nodes from all Call factories "Unlike Expression.Block, the overloads of Expression.Call that take in an Expression[] or IEnumerable do not attempt to check the number of supplied arguments in order to instantiate more compact expression representations than the standard [Instance]MethodCallExpressionN nodes. The language binds to the Expression[] overload. Various tools on our end, such as expression deserializers, also dispatch through the IEnumerable overload. It'd be good for those factories to analyze the number of supplied arguments and use compact representations if available. Also, [Instance]MethodCallExpression0 nodes are missing, even though it's quite common to have such expressions (e.g. ToString). Those could be added as part of this. Note that - in addition to this - it may be possible for the language compilers to check for the N-ary factory method overloads and bind to more specialized overloads when it finds them in the corefx libraries it's compiling against (much like other places where the compiler uses ""feature detection""). This would avoid the Expression[] allocation when it's not needed, therefore reducing some allocation costs. " +3268 area-System.Net CurlHandler : Ensure SendAsync cannot be called twice for the same request Originally discovered during the PR, ensure that CurlHandler's SendAsync cannot be called on the same HttpRequestMessage more than once. HttpClient's `SendAsync` already ensures that. We may need similar guarantee in `CurlHandler` as well. +3269 area-System.Net CurlHandler statusCode parsing - Error cases CurlHandler does StatusCode parsing in the http response message. Verify that CurlHandler behavior is identical to WinHttpHandler in case of negative scenarios. CurlHandler throws parse exception if status code in the Http response is not a valid status code. +3275 area-System.Collections Add a way to start enumeration of SortedSet and SortedDictionary in the middle I'd like an efficient way to start enumeration of a sorted collection (in particular `SortedSet` and `SortedDictionary`) at a specified value. This should work even if the value is not part of the collection. **Why is it useful?** Such a feature would be useful for many things. For example: - Finding all elements in an interval. - Finding the closest element to an item in the set - With a properly chosen comparer prefixes sort immediately before their extensions. So this could be used to find the longest prefix that's in the collection. - Could be used to map from a continuous variable (e.g. time) to a value. For example if a system can either be `on` or `off` at a particular time, one could put the switching evens in a `SortedDictionary` and then query it to figure out if the system was `on` at a particular time. - You could save the current element, mutate the collection (invalidating existing enumerators) and then create a new iterator starting at that element. **Different approaches** One way to implement this feature is having a pair of functions that return an enumerable starting at a particular point in the collection. I'm not sure what the name should be, possible choices include `UpwardsFrom`/`DownwardsFrom`, `From`/`ReverseFrom`, `ForwardsFrom`/`BackwardsFrom`. An alternative approach would be extending `SortedSet.Enumerator` adding a public constructor that takes a start element and a flag for backward iteration, but I don't like that overly low level approach. **A concrete API suggestion** on `SortedSet` ``` public IEnumerable UpwardsFrom(T start); public IEnumerable DownwardsFrom(T start); ``` on `SortedDictionary` ``` public IEnumerable> UpwardsFrom(TKey start); public IEnumerable> DownwardsFrom(TKey start); ``` and optionally on `SortedDictionary.KeyCollection` ``` public IEnumerable UpwardsFrom(TKey start); public IEnumerable DownwardsFrom(TKey start); ``` **Test cases** ``` var sortedSet = new SortedSet{1, 3, 5}; sortedSet.UpwardsFrom(2) // [3, 5] sortedSet.UpwardsFrom(3) // [3, 5] sortedSet.UpwardsFrom(6) // [] sortedSet.DownwardsFrom(4) // [3, 1] sortedSet.DownwardsFrom(3) // [3, 1] sortedSet.DownwardsFrom(0) // [] ``` **Demo implementation** Their behaviour would match the following extension methods, but would avoid the linear scan for the first match: ``` public static IEnumerable UpwardsFrom(this SortedSet sortedSet, T start) { var comparer = sortedSet.Comparer; return sortedSet.SkipWhile(item => comparer.Compare(item, start) < 0); } public static IEnumerable DownwardsFrom(this SortedSet sortedSet, T start) { var comparer = sortedSet.Comparer; return sortedSet.Reverse().SkipWhile(item => comparer.Compare(item, start) > 0); } ``` +3278 area-System.IO Fixed test bug with FileInfo_GetSetTimes resolves #3272 +3281 area-System.Diagnostics ProcessTests.TestWorkingSet64 failed on OS X in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_mac_debug_tst/31/console ``` 21:51:43 System.Diagnostics.ProcessTests.ProcessTests.TestWorkingSet64 [FAIL] 21:51:43 Assert+WrapperXunitException : File path: d:\j\workspace\dotnet_corefx_windows_debug\src\System.Diagnostics.Process\tests\ProcessTests.cs. Line: 339 21:51:43 ---- Assert.True() Failure 21:51:43 Expected: True 21:51:43 Actual: False 21:51:43 Stack Trace: 21:51:43 at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) 21:51:43 at Assert.True(Boolean condition, String userMessage, String path, Int32 line) 21:51:43 at System.Diagnostics.ProcessTests.ProcessTests.TestWorkingSet64() 21:51:43 ----- Inner Stack Trace ----- 21:51:43 at Assert.True(Boolean condition, String userMessage, String path, Int32 line) ``` +3282 area-System.Security CtorTests.InvalidCertificateBlob failed on OS X in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_mac_debug_tst/31/console ``` 21:55:11 System.Security.Cryptography.X509Certificates.Tests.CtorTests.InvalidCertificateBlob [FAIL] 21:55:11 Assert.Equal() Failure 21:55:11 Expected: 218595386 21:55:11 Actual: -2146233088 21:55:11 Stack Trace: 21:55:11 at System.Security.Cryptography.X509Certificates.Tests.CtorTests.InvalidCertificateBlob() ``` +3290 area-System.Xml XmlWriterTestModule.TCCloseOutput failing in outer loop http://dotnet-ci.cloudapp.net/job/dotnet_corefx_outerloop_windows_release/703/console http://dotnet-ci.cloudapp.net/job/dotnet_corefx_outerloop_windows_debug/705/console ``` TestCase:XmlWriterSettings: CloseOutput - File Not Found: writer.out Check that underlying stream is NOT CLOSED when CloseOutput = FALSE and Create(TextWriter) unexpected exception happend:Object reference not set to an instance of an object. at XmlCoreTest.Common.FilePathUtil.getStream(String filename) in d:\j\workspace\dotnet_corefx_outerloop_windows_debug\src\Common\tests\SystemXml\XmlCoreTest\FilePathUtil.cs:line 173 at XmlWriterAPI.Test.TCCloseOutput.CloseOutput_1() in d:\j\workspace\dotnet_corefx_outerloop_windows_debug\src\System.Xml.ReaderWriter\tests\Writers\XmlWriterApi\XmlFactoryWriterTests.cs:line 2258 at OLEDB.Test.ModuleCore.CVariation.Execute() in d:\j\workspace\dotnet_corefx_outerloop_windows_debug\src\Common\tests\SystemXml\ModuleCore\cvariation.cs:line 74 at OLEDB.Test.ModuleCore.CTestCase.Execute() in d:\j\workspace\dotnet_corefx_outerloop_windows_debug\src\Common\tests\SystemXml\ModuleCore\ctestcase.cs:line 69 FAILED File Not Found: writer.out Check that underlying stream is NOT CLOSED when CloseOutput = FALSE and Create(Stream) unexpected exception happend:Object reference not set to an instance of an object. at XmlCoreTest.Common.FilePathUtil.getStream(String filename) in d:\j\workspace\dotnet_corefx_outerloop_windows_debug\src\Common\tests\SystemXml\XmlCoreTest\FilePathUtil.cs:line 173 at XmlWriterAPI.Test.TCCloseOutput.CloseOutput_1() in d:\j\workspace\dotnet_corefx_outerloop_windows_debug\src\System.Xml.ReaderWriter\tests\Writers\XmlWriterApi\XmlFactoryWriterTests.cs:line 2258 at OLEDB.Test.ModuleCore.CVariation.Execute() in d:\j\workspace\dotnet_corefx_outerloop_windows_debug\src\Common\tests\SystemXml\ModuleCore\cvariation.cs:line 74 at OLEDB.Test.ModuleCore.CTestCase.Execute() in d:\j\workspace\dotnet_corefx_outerloop_windows_debug\src\Common\tests\SystemXml\ModuleCore\ctestcase.cs:line 69 FAILED ``` +3292 area-System.Net POST'ing empty content throws an error in System.Net.Http If I make a web request and get an HTTP 204 in return, `WinHttpRequestStream` throws an `IOException` with a success message as the inner exception. It looks like a bug in `WinHttpRequestStream.WriteData`. `Interop.WinHttp.WinHttpWriteData` returns false if the response is a 204 (I guess because there is no content). `Marshal.GetLastError` returns `0` though indicating that there was no error. Should it check if `GetLastError() == 0` rather than checking the result of `Interop.WinHttp.WinHttpWriteData`? I don't know if this is an issue with WinHttp or System.Net.Http, but I don't get this behavior on the version of the dll in Nuget. +3293 area-System.Collections System.Collections.Immutable assembly considered Security Critical I'm writing a program where some untrusted code is running in a separate app domain. I want this untrusted code to use various Immutables, but I get the following error: `Attempt by security transparent method 'MyMethod' to access security critical method 'System.Collections.Immutable.ImmutableList.CreateBuilder()' failed.` `Assembly 'MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=**** is partially trusted, which causes the CLR to make it entirely security transparent regardless of any transparency annotations in the assembly itself. In order to access security critical code, this assembly must be fully trusted.` Why is the Immutable assembly considered security critical? I would imaging this is an oversight and it should be Security Transparent. +3294 area-System.Console Enabling System.Console.WindowWidth and System.Console.CursorVisible properties in CoreFx We are building a cross-platform command line tool which has support for displaying tables (using ascii chars) and showing progress. To render the table correctly we use WindowWidth and want to hide the cursor when we show progress. +3297 area-System.Linq Improve optimization strategy for BlockExpression The check for optimization to N-ary specialized nodes in the Block factories only happens for the Expression[] overload. With the addition of IReadOnlyList<T> to the framework, we can also optimize the IEnumerable<Expression> overloads, similar to the changes proposed in #3288. +3301 area-Serialization Reconcile XmlSerializerImplementation in XmlSerializer with desktop In NetCore: public abstract class XmlSerializerImplementation { public virtual XmlSerializationReader Reader { get { throw new NotSupportedException(); } } public virtual XmlSerializationWriter Writer { get { throw new NotSupportedException(); } } public virtual IDictionary ReadMethods { get { throw new NotSupportedException(); } } public virtual IDictionary WriteMethods { get { throw new NotSupportedException(); } } public virtual IDictionary TypedSerializers { get { throw new NotSupportedException(); } } public virtual bool CanSerialize(Type type) { throw new NotSupportedException(); } public virtual XmlSerializer GetSerializer(Type type) { throw new NotSupportedException(); } } Desktop: public abstract class XmlSerializerImplementation { public virtual XmlSerializationReader Reader { get { throw new NotSupportedException(); } } public virtual XmlSerializationWriter Writer { get { throw new NotSupportedException(); } } public virtual Hashtable ReadMethods { get { throw new NotSupportedException(); } } public virtual Hashtable WriteMethods { get { throw new NotSupportedException(); } } public virtual Hashtable TypedSerializers { get { throw new NotSupportedException(); } } public virtual bool CanSerialize(Type type) { throw new NotSupportedException(); } public virtual XmlSerializer GetSerializer(Type type) { throw new NotSupportedException(); } } +3302 area-Serialization Perf tests that deserialize large object graphs +3307 area-System.Net Allow UseDefaultCredentials property for HttpClientHandler on unix +3311 area-Infrastructure Need a standard convention to refer to bugs from corresponding regression tests. Roslyn uses WorkItemAttribute as a standardized way for regression tests to refer to bugs. It has been found very useful in the past, since bug descriptions and discussions can contain a lot of relevant information, that would be hard to make a part of a test. Being an attribute makes it easy to find in an automated way if so needed (bugs migrated to alternative store or something) Turns out Linq.Expression does not have any convention for regression tests. I suggested commented out attribute as a temporary measure to not lose the information about corresponding bug, but there seem to be a need for a better, more standard convention for this. +3312 area-System.Net WinHttpHandlerTest.SendAsync_SlowPostRequestWithTimedCancellation_ExpectTaskCanceledException failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release/1240/console http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release/1245/console ``` System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTest.SendAsync_SlowPostRequestWithTimedCancellation_ExpectTaskCanceledException [FAIL] Assert.Equal() Failure Expected: 0 Actual: 3 Stack Trace: d:\j\workspace\dotnet_corefx_windows_release\src\System.Net.Http.WinHttpHandler\tests\UnitTests\WinHttpHandlerTest.cs(37,0): at System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTest.Dispose() at ReflectionAbstractionExtensions.DisposeTestClass(ITest test, Object testClass, IMessageBus messageBus, ExecutionTimer timer, CancellationTokenSource cancellationTokenSource) ``` +3315 area-Serialization Fix performance issue when deserializing base64 content with linebreaks Porting Desktop fix to NetCore for performance issue when deserializing base64 content with linebreak characters. This changes improves the throughput to 50x for 1KB input and more than 130x for 10KB to 1MB inputs. Fix #3316 +3316 area-Serialization Fix performance issue when deserializing base64 content with linebreaks chars in DCS +3317 area-System.Reflection Merge master to dev/metadata Conflicts: src/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.cs src/System.Reflection.Metadata/src/project.lock.json +3318 area-System.Runtime Proposal: Base64/128 Variable Length Quantity (VLQ) in System.Convert "### Concept: `System.Convert` currently resides in CoreCLR repo: [https://github.com/dotnet/coreclr/../System/Convert.cs](https://github.com/dotnet/coreclr/blob/f665f226/src/mscorlib/src/System/Convert.cs). The class has number of methods `ToBase64*` and `FromBase64*` with various signatures. The base64 encoding has 8-bit fixed length. The are many applications of variable length base64 encoding; Variable Length Quantity (VLQ). IMO, one of the most popular application of B64 VLQ is in [V3 source maps](https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#!); which is used by browsers, editors, trans-compilers etc. to obtain source-to-source mappings in trans-compilation scenarios. For instance; CoffeeScript, Less, Sass, Stylus, SweetJS and TypeScript are languages, that compile into CSS or JavaScript. Today, the developer tools in all major browsers are capable of mapping generated source to original by the virtue of source-maps. Additionally, Base128 VLQ has applications in media formats, such as MIDI, XMF etc. [[1](https://en.wikipedia.org/wiki/Variable-length_quantity)] ### Proposed API: ``` c# namespace System { public static class Convert { [...] public static byte[] FromBaseNVLQString( EncodingRadix radix; string s, BaseNVLQSetting setting); public static byte[] FromBaseNVLQCharArray( EncodingRadix radix; char[] inArray, Int32 offset, Int32 length, BaseNVLQSetting setting); public static string ToBaseNVLQString( EncodingRadix radix; byte[] inArray, BaseNVLQSetting setting); public static string ToBaseNVLQString( EncodingRadix radix; byte[] inArray, int offset, int length, BaseNVLQSetting setting); public static unsafe string ToBaseNVLQString( EncodingRadix radix; byte[] inArray, int offset, int length, BaseNVLQSetting setting); public static int ToBaseNVLQCharArray( EncodingRadix radix; byte[] inArray, int offsetIn, int length, char[] outArray, int offsetOut, BaseNVLQSetting setting); public static unsafe int ToBaseNVLQCharArray( EncodingRadix radix; byte[] inArray, int offsetIn, int length, char[] outArray, int offsetOut, BaseNVLQSetting setting); public static unsafe int ToBaseNVLQCharArray( EncodingRadix radix; byte[] inArray, int offsetIn, int length, char[] outArray, int offsetOut, BaseNVLQSetting setting); } public enum EncodingRadix { Base64 = 64; Baase128 = 128; } public struct BaseNVLQSetting { private int _base, _baseShift, _baseMask. _continuationBit; private char[] separators; public BaseNVLQSetting( int base, int baseShift, int baseMask, int continuationBit, char[] separators); public enum Template { V3SourceMap, MIDI, XMF } public static BaseNVLQSetting FromTemplate(BaseNVLQSetting.Template template) { switch(template) { case Template.V3SourceMap: return new BaseNVLQSetting(1 << 5, 5, 4, 1 << 5, new char[] {',', ';'}); break; [...] default: throw new Exception(""Unknown template.""); } } } } ``` ### Working Example: We implemented sourcemap encoding and decoding in WE2013: [https://github.com/madskristensen/WebEssentials2013/../Base64VLQ.cs](https://github.com/madskristensen/WebEssentials2013/blob/96d37799/EditorExtensions/Shared/Helpers/Base64VLQ.cs), inspired by Mozilla's JavaScript implementation: https://github.com/mozilla/source-map. " +3319 area-System.Net CurlHandler asserting in WCF tests ``` ---- DEBUG ASSERTION FAILED ---- ---- Assert Short Message ---- If disposed, the stream must also be completed. ---- Assert Long Message ---- at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Assert(Boolean condition, String message) at System.Net.Http.CurlHandler.CurlResponseStream.VerifyInvariants() at System.Net.Http.CurlHandler.CurlResponseStream.SignalComplete(Exception error) at System.Net.Http.CurlHandler.EasyRequest.Cleanup() at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(EasyRequest completedOperation, Int32 messageResult) at System.Net.Http.CurlHandler.MultiAgent.WorkerLoop() at System.Net.Http.CurlHandler.MultiAgent.<>c.b__13_0(Object s) at System.Threading.Tasks.Task.Execute() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) ``` +3320 area-System.Net "CurlHandler throwing ""HTTP stack not implemented"" exception from SupportsRedirectConfiguration" https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpClientHandler.Unix.cs#L25 +3321 area-System.Net "CurlHandler throwing ""HTTP stack not implemented"" from MaxRequestContentBufferSize" https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpClientHandler.Unix.cs#L129-L133 +3322 area-System.Net CurlHandler throwing NotImplementedException for non-http/https schemes https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs#L276-L279 Even if we're supposed to throw here, it shouldn't be NotImplemented.ByDesignWithMessage, more likely PlatformNotSupportedException. That said, this might be dead code: it looks like checks for the sheme happen before we even get to this point: ``` Unhandled Exception: System.ArgumentException: Only 'http' and 'https' schemes are allowed. Parameter name: requestUri at System.Net.Http.HttpRequestMessage.InitializeValues(HttpMethod method, Uri requestUri) at System.Net.Http.HttpRequestMessage..ctor(HttpMethod method, Uri requestUri) at System.Net.Http.HttpClient.GetAsync(Uri requestUri, HttpCompletionOption completionOption, CancellationToken cancellationToken) at System.Net.Http.HttpClient.GetContentAsync[T](Uri requestUri, HttpCompletionOption completionOption, T defaultValue, Func`2 readAs) at System.Net.Http.HttpClient.GetStringAsync(Uri requestUri) at System.Net.Http.HttpClient.GetStringAsync(String requestUri) ``` So potentially this might just need to be changed to an assert. +3323 area-System.Net Disable SafeHandle leak checking in WinHttpHandler Unit Tests Addresses issue #3312 I've discovered that the FakeSafeWinHttpHandle leak detection isn't stable. SafeHandles finalize via the CriticalFinalizer thread. This thread doesn't seem to run deterministically, so using code like this to wait for SafeHandles to be finalized (and then testing for leaks) doesn't work reliably. ``` c# public static void ForceGarbageCollection() { // Make several passes through the FReachable list. for (int i = 0; i < 10; i++) { GC.Collect(); GC.WaitForPendingFinalizers(); } } ``` For now, logging will be used to verify no leaks. +3324 area-Meta Hardware Details API - Hardware Fingerprint It would be great to add an api that we could use to get hardware specific information. Some of these may include 1. Mac Addresses 2. Processor Information 3. Graphic card Information 4. Base Board Information 5. Unique fingerprint based on hardware I think many applications out there implement features depending on what hardware is available. Furthermore like us, licensing applications in certain scenarios is a must, and I am sure that many applications out there currently, make use of hardware information to create a unique fingerprint which is calculated from hardware information. +3326 area-System.Net Remove delegate allocation from WinHttpHandler.SendAsync Each SendAsync call was allocating a new delegate for StartRequest. cc: @davidsh, @CIPop +3327 area-System.Net Implement HttpClientHandler.MaxRequestContentBufferSize on Unix Changed to match behavior on Windows (get returns 0, set throws PlatformNotSupportedException). Fixes #3321 cc: @kapilash, @davidsh, @CIPop +3328 area-System.Net Implement CurlHandler.SupportsRedirectConfiguration It does. Return true. Fixes #3320 cc: @kapilash +3329 area-System.Net Client Certificate Options for Client Handler When HttpClientHandler.ClientCertificateOption is set to ClientCertificateOptions.Automatic, curl handler passes on the X509 certificates from X509 store to libcurl Fixes #3151. +3333 area-System.Net Remove faulty assert from CurlHandler.CurlResponseStream CurlResponseStream.VerifyInvariants has an assert that assumes that if the stream has been disposed, it must have also completed. But since this stream is exposed publically, it's possible for consuming code to Dispose of the stream before the request has finished, violating the assert. In such a situation, a subsequent attempt to transfer data to the response stream will fail and cause the request to be aborted as desired, cleaning up resources (there are probably some opportunities here for some optimizations to handle this case, but that can be explored later.) This commit just removes the bad assert. Fixes #3319 cc: @kapilash, @roncain +3334 area-System.Security Linux & Mac Support for System.Security.Cryptography.Pkcs Is there any plan to support classes in System.Security.Cryptography.Pkcs namespace? Its essential to create p7s files and sign data. Thanks +3340 area-System.Net Port additional System.Net.Http tests to CoreFx Added more http tests to open source from the original internal ToF tests. Some of the tests should be refactored in the future to avoid Assert'ing multiple logical things. Fixed up test namespaces for System.Net.Http and System.Net.Http.WinHttpHandler. +3343 area-System.Net HttpContentTest.ReadAsStringAsync_SetInvalidCharset_ThrowsInvalidOperationException fails on Linux Part of PR #3340, this test fails on Linux. Disabling for now. System.Net.Http.Functional.Tests.HttpContentTest.ReadAsStringAsync_SetInvalidCharset_ThrowsInvalidOperationException Stacktrace MESSAGE: Assert.Throws() Failure Expected: typeof(System.InvalidOperationException) Actual: (No exception was thrown) +++++++++++++++++++ STACK TRACE: --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpContentTest.d__bd.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +3345 area-System.Net Net Secure Xplat Implementation 1. Abstracted the code as per design shared earlier. 2. Made SecureChannel & SSPIWrapper agnostic of os. 3. Created 1 class 1 file for each new classes & move them to windows specific folder. 4. Added new interfaces & modules related to Cert. 5. SSPINegoInterface & SSPIAuthType, currently are not part of csproj as suggested by cipop. Have included unix Interop & related code as well for completeness. You can choose to review Windows first as well. +3349 area-Infrastructure Declare requirements in the tests to run\skip based on runtime checks As of now a no. of tests have requirements which make them applicable only in certain situations. For example, ServiceProcess tests can only be run in admin mode, several PLINQ tests need to be run on multi-threaded machines. (We do have an option of marking these tests OpenLoop, but that seems like a broader classification). Currently, the only way to assert these requirements is to update the constructor to check for the requirements, causing each individual test to fail. It would be good to have a means to skip\run tests based on a runtime check. #3134 has more details +3356 area-System.Net Restrict the SSL handshake test to 3 seconds. When things don't go so well this test takes significantly longer than an acceptable waiting period. On success it's fractions of a second. +3360 area-System.Net Correct broken System.Net.Http solution file. When the folders were adjusted for test prep, the folder searched for the functional tests was adjusted, but the file name needed to be updated to match too. +3362 area-System.Net System.Net.Security related Pending PR coments/TODO 1. Interop.OpenSsl TODO - See if SSL_CTX_Set_quite_shutdown can be used +3364 area-System.Threading ReaderWriterLockSlim.AcquireWriterLock timing out does not wake up waiting readers The [documentation for `ReaderWriterLockSlim.TryEnterWriteLock`](https://msdn.microsoft.com/en-us/library/bb339812.aspx) states: > While threads are blocked waiting to enter write mode, additional threads that try to enter read mode or upgradeable mode **block until all the threads waiting to enter write mode have either timed out or** entered write mode and then exited from it. (emphasis mine). However, the implementation does not behave like the bolded part of the documentation states. Imagine the following scenario with three threads (_T1_, _T2_, _T3_): 1. _T1_ acquires a read lock. 2. _T2_ tries to acquire a write lock and blocks, waiting for a timeout (as _T1_ holds the lock). 3. _T3_ tries to acquire a read lock and blocks (because _T2_ is blocked waiting for the write lock, and per the documentation, this means all further readers are blocked until _T2_ times out). 4. _T2_’s timeout expires. Per the documentation, _T3_ should now wake up and acquire the read lock. However, this does not happen and _T3_ is blocked forever (or, until some other event, e.g. _T1_ releasing the read lock, causes the implementation to wake up waiting threads). [Reproducible code for this scenario is available on StackOverflow](http://stackoverflow.com/a/32656459/304138), with some discussion. AFAICT, this is a simple bug caused by the fact that `TryEnterWriteLock` blocks further attempts to acquire a read lock, but when leaving by timeout, it does not wake them up. Specifically, I’d guess the `ExitMyLock` call in [`ReaderWriterLockSlim’s WaitOnEvent`](https://github.com/dotnet/corefx/blob/master/src/System.Threading/src/System/Threading/ReaderWriterLockSlim.cs#L923) should have been `ExitAndWakeUpAppropriateWaiters`. The same bug seems to exist for the non-slim `ReaderWriterLock`. +3365 area-System.Net Dummy PR with xplat SslStream fixes Sharing some fixes found during unit testing. We will be sending these changes as part of official PRs. The idea is to unblock devs who may be hitting issues while testing. Note that the first 2 commits are from https://github.com/dotnet/corefx/pull/3345 +3369 area-System.Net Incorporated some comments - Net Secure Xplat Implementation Incorporated some of the comments. Sending it as a new PR as original PR will be closed, once we merge into dev_sslstream to unblock partners. Tracking all issues via #3362 . (I am yet to updated the issue with complete list). Updated all TODO's in the code to refer this issue. This also includes fixes from Vijay's dummy PR https://github.com/dotnet/corefx/pull/3365. +3374 area-System.Security Add OuterLoop tests for X509Store We currently don't have tests for adding and removing certificates to an X509Store on the file system on Unix. We should add some. +3375 area-System.Net Add System.Net.Security to README.md cc: @stephentoub @CIPop @SidharthNabar +3382 area-System.Security GetECDSAPrivateKey() methods not being tested. This requires building a PFX which then triggers other testing problems (race conditions due to the temporary key being stored on disk.) +3383 area-System.Security X509Certificate2.GetECDsaPublicKey() on Unix still unimplemented. (from Jeremy) As for GetECDsaPublicKey, I think that you can get there with EVP_PKEY\* X509_PUBKEY_get(X509_PUBKEY_). Probably want to just add it to the native interop library as EVP_PKEY_ GetX509EvpPublicKey(X509\* x509). Then you can just unpack the EC_KEY the same way you did for the private key here. +3384 area-System.Globalization Investigate casing performance We should write some performance tests for casing and then play around with breaking up the loops in the implementation of the native ChangeCase method use on cross platform to see if we can make things faster. See the conversation [on the PR](https://github.com/dotnet/coreclr/pull/1604#discussion-diff-40141703) for more details. +3386 area-System.Net Various fixes for Unix SslStream @vijaykota had put out a PR into the dev-sslstream branch which gets an SslStream acting as a client working enough to connect to https://www.microsoft.com/, send it a malformed request, and read the reply. This PR is just a integrated version of #3365's non-experimental commits. +3389 area-System.Globalization Decouple CultureData from tests. Test data differs across OSes and so we need a way to select the expected data for globalization tests depending what windows version we are on or what version of the CLDR we are using. +3390 area-System.Net Add support for ECDsa certificates on Unix SslStream The initial version is being added with RSA only, because you have to start somewhere. +3391 area-System.Globalization TestDateTimeParsingWithSpecialCultures failing on ICU for sr-Latn-XX As part of b1995378c63df05117c57505c50f46e256c32b3a Tarek added some additional cultures to TestDateTimeParsingWithSpecialCultures in System.Runtime. These additional tests don't pass when run with ICU. ``` MESSAGE: Assert.True() Failure Expected: True Actual: False +++++++++++++++++++ STACK TRACE: at DateTimeTests.TestDateTimeParsingWithSpecialCultures(String cultureName) ``` +3394 area-System.Net HttpClient error on dnx-coreclr-linux-x64.1.0.0-beta8-15653 System.TypeInitializationException: The type initializer for 'System.Net.Http.CurlHandler' threw an exception. ---> System.TypeInitializationException: The type initializer for 'libcurl' threw an exception. ---> System.TypeInitializationException: The type initializer for 'HttpInitializer' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'System.Net.Http.Native': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Interop.HttpInitializer.EnsureCurlIsInitialized() at Interop.HttpInitializer..cctor() --- End of inner exception stack trace --- at Interop.HttpInitializer.Initialize() at Interop.libcurl..cctor() --- End of inner exception stack trace --- at Interop.libcurl.curl_version_info(Int32 curlVersionStamp) at System.Net.Http.CurlHandler..cctor() --- End of inner exception stack trace --- at System.Net.Http.CurlHandler..ctor() at System.Net.Http.HttpClientHandler..ctor() at ConsoleApp1.Program.d__7.MoveNext() +3406 area-System.Globalization IDNA tests conform to windows behavior, not specs The windows implementation of IDNA2008 does not follow the relevant specs in some cases (by design, for compatibility purposes). Our tests assume this behavior and then fail when run with ICU's implementation of ToAscii and ToUnicode. We need to decouple the tests into a core of tests which have the same behavior on both Windows and XPlat and then an additional set of tests which have different results and are platform specific. +3418 area-System.Runtime (Discussion) Case insensitive strings as a type I have read #649, and it seems to be a special case of a generic problem. Consider system where some strings are case sensitive (e.g. hash), and some aren't (e.g. name). Currently .NET defaults to being case sensitive, so I have to remember which string is which in all use cases. And those cases are not only about `s1.Equals(s2)` -- it is also every call to `ToDictionary`, every creation of `HashSet` and various other cases and optimizations that are really hard to keep track of. It would be great if I could define string as being case-insensitive on type level, e.g. use `CaseInsensitiveString`. This would affect Comparer selection wherever this type is used as a key, and all comparisons. Not quite sure whether it makes general sense and what the API would be like, so just putting it here as a discussion point. +3419 area-System.Runtime StringBuilder.AppendJoin (appending lists to StringBuilder) "#### Background Let's say you want to build a string that contains a separated list (e.g. list of filenames, messages, or anything else). If it is the only thing you want, you can use `string.Join`. However what if you want to append something else? If you `Concat` with the result of `string.Join`, that means that you unnecessarily allocated an intermediate joined string, which can be rather large (depending on the original collection). On the other hand, `StringBuilder` would require something like: ``` csharp var builder = new StringBuilder(""Names: ""); for (var i = 0; i < names.Length; i++) { if (i > 0) { // this becomes even more involved if `names` is `IEnumerable` builder.Append("", ""); } builder.Append(names[i]); } ``` That can be abstracted into an extension method, however I believe that extension would be general and useful enough to benefit from being in NetFX. #### API Design (updated based on API review, second pass -- see https://github.com/dotnet/corefx/issues/3419#issuecomment-273254581) ``` csharp public class StringBuilder { public StringBuilder AppendJoin(string separator, params object[] values); public StringBuilder AppendJoin(string separator, IEnumerable values); public StringBuilder AppendJoin(string separator, params string[] value); public StringBuilder AppendJoin(chat separator, params object[] values); public StringBuilder AppendJoin(char separator, IEnumerable values); public StringBuilder AppendJoin(char separator, params string[] value); // string.Join overloads NOT taken: //public StringBuilder AppendJoin(string separator, IEnumerable values); //public StringBuilder AppendJoin(string separator, string[] values, int startIndex, int count); //public StringBuilder AppendJoin(char separator, IEnumerable values); //public StringBuilder AppendJoin(char separator, string[] values, int startIndex, int count); // REJECTED in the first API review round: //public StringBuilder AppendJoin(string separator, T[] values, int startIndex, int count); //public StringBuilder AppendJoin(string separator, params T[] values); //public StringBuilder AppendJoin(char separator, params T[] values); } ``` Note: Motivation for the API approval update is described in https://github.com/dotnet/corefx/issues/3419#issuecomment-273254581 -- adjusting to follow proven working form of 'string.Join', correctly working with most-used overload calls - see usage example in https://github.com/dotnet/corefx/issues/5552#issuecomment-268395367. #### Compatibility Potential source-level issue if someone is already using an extension method with the same name. " +3421 area-System.Globalization DateTimeFormatInfoGetInstance.PosTest2 failed on Linux in CI "http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/2662/console ``` 03:20:10 System.Globalization.Tests.DateTimeFormatInfoGetInstance.PosTest2 [FAIL] 03:20:10 Assert.Equal() Failure 03:20:10 Expected: DateTimeFormatInfo { AMDesignator = ""AM"", AbbreviatedDayNames = [""Sun"", ""Mon"", ""Tue"", ""Wed"", ""Thu"", ...], AbbreviatedMonthGenitiveNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AbbreviatedMonthNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], Calendar = GregorianCalendar { CalendarType = Localized, Eras = [...], IsReadOnly = True, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, MinSupportedDateTime = 0001-01-01T00:00:00.0000000, ... }, ... } 03:20:10 Actual: DateTimeFormatInfo { AMDesignator = ""de."", AbbreviatedDayNames = [""V"", ""H"", ""K"", ""Sze"", ""Cs"", ...], AbbreviatedMonthGenitiveNames = [""jan."", ""febr."", ""m��rc."", ""��pr."", ""m��j."", ...], AbbreviatedMonthNames = [""jan."", ""febr."", ""m��rc."", ""��pr."", ""m��j."", ...], Calendar = GregorianCalendar { CalendarType = Localized, Eras = [...], IsReadOnly = False, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, MinSupportedDateTime = 0001-01-01T00:00:00.0000000, ... }, ... } 03:20:10 Stack Trace: 03:20:11 at System.Globalization.Tests.DateTimeFormatInfoGetInstance.PosTest2() 03:20:11 Finished: System.Globalization.Tests ``` " +3423 area-System.Data API for retrieving Columns Schema from DbDataReader This is to unwrap the specific issue of resultset schemas from the many involved in #1039. [Back on May 5th](https://github.com/dotnet/corefx/issues/1039#issuecomment-99186515) @davkean noted: > We want GetSchemaTable in some form (we should get a separate bug filed on that, however, as you could imagine bringing that back with a different design that doesn't pull in DataSet/DataTable). While it doesn't seem that anyone cares _what method_ exists for of getting the schema of a resultset, we seem to agree on needing _a method_ of doing it in .Net Core. For example, if a user runs a simple query such as: ``` SQL SELECT 'bob' Name, 1 Id ``` Then there's no way to see what the types are. While getting the .Net type ([via `.GetFieldType()`](https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getfieldtype%28v=vs.110%29.aspx), e.g. `DateTime`) is possible and getting _part_ the SQL type ([via `.GetDataTypeName()`](https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getdatatypename%28v=vs.110%29.aspx), e.g. `NVARCHAR`) is possible, other vital attributes of the schema shape currently aren't possible. For example there's no way to distinguish a `varchar(20)` from a `varchar(max)`. There's also no way to tell if the column was nullable. Previously, this functionality was provided by [`.GetSchemaTable()`](https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getschematable%28v=vs.110%29.aspx) which returned a [`DataTable`](https://msdn.microsoft.com/en-us/library/system.data.datatable%28v=vs.110%29.aspx) class. Currently I have a very simple use case: query data here, create a table with that data elsewhere. The query can be something like: `SELECT * FROM sys.database_files`. I point this out to illustrate that `INFORMATION_SCHEMA` (as proposed by some in #1039 as an alternative) is not a viable option. The same issue presents on any stored procedure which can also return any result set shape depending on the code paths. We need a way to see the scheme _of a result set_, these database-query alternatives are both expensive and non-covering. This is a hard blocker for projects of myself and others. I have uses in both one-off projects as well as [Opserver](https://github.com/opserver/Opserver) (which monitors SQL) and [Dapper.Net](https://github.com/StackExchange/dapper-dot-net). I know from #1039 that I'm not alone on this block. The portability of .Net core is _extremely_ appealing for certain projects, especially those where we need to monitor the innards of SQL without depending on a .Net install (many if not most existing SQL servers only have .Net 3.5). Unfortunately though, this one missing piece of the puzzle may prevent using it altogether, forcing full CLR installs. While SqlClient specifically serves my blocking use case, it's important to point out as @FransBouma [notes in the other issue](https://github.com/dotnet/corefx/issues/1039#issuecomment-142202400): this needs to be in the base API, not specifically up in SqlClient. For example, I also need this for Dapper features and it works across many providers - it is not at all SQL Server specific. So how about it, can we please get an API for result set schemas added back? I'm happy to contribute to designing and provide feedback on a new API here if that's the best route. I know many others are as well. +3425 area-System.Net Testing SslStream Read/Write logic +3431 area-System.Net Unix SslStream needs to verify the remote cert is valid for the destination address +3432 area-System.Net Adjust the PAL separation for certificate verification The Windows version requires that there be a valid handle to the native chain representation; the Unix version never has a valid native handle. So move the PAL separation to a slightly higher abstraction level, and let each side party on it in their own way. +3439 area-Infrastructure Replace Microsoft.DotNet.CoreCLR dependency with Microsoft.NETCore.Runtime.CoreCLR Remove dotnet-coreclr feed from dir.props and NuGet.config once this is done as well. See https://github.com/dotnet/corefx/pull/3413#discussion_r40368451 cc @weshaggard +3441 area-System.Net Follow up on CR feedback for System.Net.Sockets. See #3422. +3444 area-System.Net [SslStream] CheckX509Hostname wildcard matching may be too restrictive "[RFC 2595](http://www.ietf.org/rfc/rfc2595.txt) says: ``` - A ""*"" wildcard character MAY be used as the left-most name component in the certificate. For example, *.example.com would match a.example.com, foo.example.com, etc. but would not match example.com. ``` [RFC 2818](http://www.ietf.org/rfc/rfc2818.txt) says: ``` Matching is performed using the matching rules specified by [RFC2459]. If more than one identity of a given type is present in the certificate (e.g., more than one dNSName name, a match in any one of the set is considered acceptable.) Names may contain the wildcard character * which is considered to match any single domain name component or component fragment. E.g., *.a.com matches foo.a.com but not bar.foo.a.com. f*.com matches foo.com but not bar.com. ``` Where did the `f*.com` => `foo.com` example come from? " +3446 area-System.Net [Feature] CheckX509Hostname does not match IDNA Internationalized domains are very likely going to confuse this function. +3447 area-System.Net UDPClientTest.BeginSend_AsyncOperationCompletes_Success failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/4229/console ``` Discovering: System.Net.Sockets.APMServer.Tests Discovered: System.Net.Sockets.APMServer.Tests Starting: System.Net.Sockets.APMServer.Tests System.Net.Sockets.Tests.UDPClientTest.BeginSend_AsyncOperationCompletes_Success [FAIL] System.Net.Sockets.SocketException : An address incompatible with the requested protocol was used Stack Trace: d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(3211,0): at System.Net.Sockets.Socket.DoBeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint endPointSnapshot, SocketAddress socketAddress, OverlappedAsyncResult asyncResult) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(3156,0): at System.Net.Sockets.Socket.BeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback callback, Object state) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\UDPClient.cs(598,0): at System.Net.Sockets.UdpClient.BeginSend(Byte[] datagram, Int32 bytes, IPEndPoint endPoint, AsyncCallback requestCallback, Object state) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\UdpClientTest.cs(51,0): at System.Net.Sockets.Tests.UDPClientTest.BeginSend_AsyncOperationCompletes_Success() Finished: System.Net.Sockets.APMServer.Tests ``` +3450 area-System.Net 516 system.net Removing custom error checking from System.Net.* (ignoring System.Net.Sockets for the moment) @stephentoub - I'm planning on doing a squash/overall comment like for #3020 . +3463 area-System.Net Enable SslStream for Unix "Merging the current status of dev-sslstream into master. - The Windows version should continue to work just fine. - The Unix version has received sanity testing, and has limited functionality, but is believed to be in a ""basic scenarios, for integration purposes"" state. - `stream.AuthenticateAsClient(string)` :white_check_mark: - `stream.AuthenticateAsClientAsync(string)` :white_check_mark: - `stream.AuthenticateAsServer(X509Certificate)` :ok: (requires the provided instance be X509Certificate2, and using RSA) - `stream.Write(byte[])` :white_check_mark: - `stream.Read(byte[], int, int)` :white_check_mark: - {Read|Write}Async :grey_question: (it's expected to work, but wasn't explicitly verified) - Off the golden path may be a bit rough; unexpected disconnects and the like may have different exception flows than their Windows counterparts (if encountered, please report!) - Mutual authentication / client authentication certificates :x: " +3464 area-System.Net HttpClient isn't always canceling in response to cancellation requests "We first found this issue with a WCF negative test that expected a TimeOutException when setting a ‘SendTimeout’ on our BasicHttpBinding and calling a service operation that took longer to return. Previously this test passed with the elapsed time being just a little longer than the ‘SendTimeout’ value. As of a couple weeks ago we still got the TimeOutException but the elapsed time seemed to correlate to however long it took for the call to return from the service operation. So if the ‘SendTimeout’ was set to 5 milliseconds and the service operation waited 30 milliseconds to return, the elapsed time would be something over 30 milliseconds. As best we could determine it has something to do with the CancellationTokenSource perhaps when it is creating the linked token source and passing it to the SetTimeout method. (HttpClient.cs SendAsync method) We isolated this issue using no WCF code with the following client side code… ``` csharp Stopwatch watch = new Stopwatch(); HttpClient client = new HttpClient(); HttpRequestMessage message = new HttpRequestMessage(); message.RequestUri = new Uri(""http://localhost:54464/Home/About""); var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10)); try { watch.Start(); var responseTask = client.SendAsync(message, cts.Token); responseTask.Wait(); } catch (Exception ex) { Debug.WriteLine(ex.Message + ""\n"" + ex.StackTrace); } finally{ watch.Stop(); } Assert.InRange(watch.ElapsedMilliseconds, 8000, 15000); ``` In this example we are just calling the ‘About’ page of an ASP.NET MVC application (default VS template) and just added the following in the HomeController.About() method… ``` csharp public ActionResult About() { ViewBag.Message = ""Your application description page.""; Thread.Sleep(30*1000); return View(); } ``` **NOTE: I have no idea why but it seems to work as expected when in debug mode, the issue reproduces when executed normally.** " +3467 area-System.Globalization Investigate ICU EndsWith when string has zero collation elements at the end In StartsWith we ignore zero collation elements at the start of the string, we probably need to do the same thing in EndsWith. +3468 area-System.Globalization Implement IndexOfOrdinal and LastIndexOfOrdinal in the ICU Shim The naive implementation of these methods in CompareInfo.Unix.cs is correct but allocates both to do a substring and to case the string when ignore case is true. We should just just implement these methods in the Shim itself. It can walk the string without allocating and do casing inline without having to round trip to managed code for each character. +3474 area-System.Security Add opt-in setting for ensuring strong random numbers There have been some reports that Linux and OpenSSL in particular may not use enough entropy in all scenarios https://www.blackhat.com/docs/us-15/materials/us-15-Potter-Understanding-And-Managing-Entropy-Usage-wp.pdf We need to ensure we are properly seeding OpenSSL's PRNG. There are some conflicting articles/sites that say using /dev/urandom is sufficient: http://www.2uo.de/myths-about-urandom/ http://security.stackexchange.com/questions/7718/openssl-rand-poll-good-enough http://security.stackexchange.com/questions/3259/howto-seed-the-prng-in-openssl-properly?rq=1 One idea is to use the new [getrandom()](http://man7.org/linux/man-pages/man2/getrandom.2.html) syscall, which will block if there isn't enough entropy in the system. When that isn't available, we need to decide whether we should: 1. block 2. fail 3. continue +3475 area-System.Security System.Security.Cryptography.X509Certificates.Tests.ChainTests.BuildChain failure on OSX in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_mac_debug_tst/42/testReport/System.Security.Cryptography.X509Certificates.Tests/ChainTests/BuildChain/ +3476 area-System.Net Two OSX HttpClientHandlerTest Failures in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_mac_debug_tst/42/testReport/System.Net.Http.Functional.Tests/HttpClientHandlerTest/GetAsync_ResponseHeadersRead_ReadFromEachIterativelyDoesntDeadlock/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx_mac_debug_tst/42/testReport/System.Net.Http.Functional.Tests/HttpClientHandlerTest/GetAsync_CredentialIsNetworkCredentialUriRedirect_StatusCodeUnauthorized/ +3477 area-System.Net Fixes #3464 where http requests don't honor cancellation Add a registration for the passed in cancellation token which cancels the CancellationTokenSource.Token that is returned to the caller. +3480 area-System.Data Make interfaces as the official ADO.NET Provider API instead of classes From what I can see currently on the [corefx-progress page for System.Data.Common](https://github.com/dotnet/corefx-progress/blob/master/src-diff/System.Data.Common.md), the interfaces (IDbCommand, IDbConnection, etc) were removed in favor of the usage of abstract classes. But in the new API, most of the main methods are not virtual or abstract. On DbCommand alone we can see this: ``` cs public DbConnection Connection { get; set; } public DbParameterCollection Parameters { get; } public DbTransaction Transaction { get; set; } public DbParameter CreateParameter(); public Task ExecuteNonQueryAsync(); public DbDataReader ExecuteReader(); public DbDataReader ExecuteReader(CommandBehavior behavior); public Task ExecuteReaderAsync(); public Task ExecuteReaderAsync(CommandBehavior behavior); public Task ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken); public Task ExecuteReaderAsync(CancellationToken cancellationToken); public Task ExecuteScalarAsync(); ``` While these methods can certainly be made virtual or abstract, it would be much more useful to have the real interfaces back, and make any public API depend on these interfaces instead of the abstract classes. This is mostly useful when developing libraries. Today it's very hard to mock a datareader to make it return a specific value for testing purposes. The same for ensuring that ExecuteReaderAsync was called, not ExecuteReader, etc. I propose the provider factory instead should be made as an interface: ``` cs public interface IDbProviderFactory { IDbCommand CreateCommand(); IDbConnection CreateConnection(); IDbConnectionStringBuilder CreateConnectionStringBuilder(); IDbParameter CreateParameter(); } ``` And then follow from there to the rest of the provider to things like `IDbDataReader`, `IDbTransaction`, etc. We know the interfaces became out of sync for some reason in the past and the abstract classes were made the official API, but this doesn't need to be the case anymore in corefx. Note that this doesn't mean removing the System.Data.Common in any way, but instead make the Common classes implement these interfaces, and you wouldn't use System.Data.Common unless you're implementing the provider. Applications would depend only on the interfaces instead. Please consider this to make the API more testable on corefx 1.0. Related to discussions on #1039 and #3423. +3481 area-System.Linq How best to implement Linq's iterators. The current approach with `System.Linq.Enumerator`'s enumerables and their enumerators copies the approach for compiler-generated iterators; the same instance that serves as the enumerable serves as the result for the first call to `GetEnumerator()`, so avoiding an extra allocation. There is a race inherent to this approach; if two threads called `GetEnumerator()` at the same time they could end up with the same object when they should have separate instances. This is resolved by capturing `Environment.CurrentManagedThreadId` on construction and only using `this` as the result of `GetEnumerator()` if it matches a second call. This relatively expensive call is of no value if: 1. `GetEnumerator()` is never called (many optimisations skip it in various ways). 2. `GetEnumerator()` is repeatedly called (after the first call). 3. `GetEnumerator()` is only called once, on another thread (e.g. if a query is constructed before an `await` and enumerated after it). #3313 changes the approach to changing the state with `Interlocked.CompareExchange()` to resolve the race in a different way. This means no call in case 1 and 3 above, but is more expensive in case 2. It's about even in the case of one `GetEnumerator()` at least as some tests with Win64 DNX suggest (`CompareExchange` being about twice the case of `CurrentManagedThreadId` and being called half as often). In the discussion on that pull request, @Vsadov points out that the optimisation of avoid an allocation may not be as valuable as it once was in any case. Some very limited experimentation suggests that indeed just creating a new object on every call to `GetEnumerator()` is a clear win. There are a few possible variants here. We can have the same classes that server as both enumerable and enumerator, or separate classes (some reduction in state held, some increase in jitted code). If separate classes are used, internal calls to `GetEnumerator()` can be moved to this object's construction, further reducing state held in some cases, but being an observable change if that call throws an exception. A completely different possibility is to use the current approach, but avoid calling CurrentManagedThreadId is some cases. Some experimentation is in order. Some possible approaches: 1. Leave things as they are. 2. Use the basic approach currently used, but avoiding the `CurrentManagedThreadId` call, https://github.com/JonHanna/corefx/tree/fewer_threadid_calls 3. Use `Interlocked.CompareExchange()`: https://github.com/JonHanna/corefx/tree/defer_obtaining_threadid 4. Use the same classes as currently, but always allocating for `GetEnumerator()`: https://github.com/JonHanna/corefx/tree/fresh_enumerators 5. Use separate enumerators https://github.com/JonHanna/corefx/tree/separate_enumerators_cautious 6. ~~Use separate enumerators, shifting `GetEnumerator()` calls (observable change) https://github.com/JonHanna/corefx/tree/separate_enumerators~~ I'm planning to do some comparisons with these variants, but I'm opening this issue ahead of that for suggestions as to situations the comparisons must cover. In particular: Is 6 (with the observable change) completely out of the question? What tests would one expect avoiding an allocation to do better than not avoiding it? (First brief experiments suggest it's always a lose, but I'm wary of removing what was clearly intended as an optimisation if I can't see where it succeeded in optimising, though maybe it's just a matter of older CLR versions). +3482 area-System.Collections Proposal: (I)Dictionary.GetValueOrDefault ## Scenario In almost every app or library I write I almost always end up needing to write code like this, in at least one place: ``` c# SomeClass returnValue; return DictionaryOfSomeClass.TryGetValue(someKey, out returnValue) ? returnValue : null; ``` The reason that the `IDictionary` contract throws from its indexer for a non-existent key are well-known: an alternative behavior of returning `null` is nonsensical if `TValue` is a value type. Returning `default(TValue)` would work, but would clearly be a misleading behavior. But with dictionaries of class-types it is often desirable and expected to return `null` for a non-existent key. ## Proposal ```c# namespace System.Collections.Generic { public class Dictionary { public TValue GetValueOrDefault(TKey key); public TValue GetValueOrDefault(TKey key, TValue defaultValue); } public static class CollectionExtensions { public static TValue GetValueOrDefault(this IDictionary dictionary, TKey key); public static TValue GetValueOrDefault(this IDictionary dictionary, TKey key, TValue defaultValue); public static TValue GetValueOrDefault(this IReadOnlyDictionary dictionary, TKey key); public static TValue GetValueOrDefault(this IReadOnlyDictionary dictionary, TKey key, TValue defaultValue); } } ``` **Notes:** - There will be source-compile problem with ambiguity in all projects that already have such custom extension method `GetValueOrDefault` on `IDictionary` or `IReadOnlyDictionary`. Which is general problem for any extension method we add into CoreFX. ### Original Proposal - replaced by the one above I propose the following extension method (I don't like the name `GetValueNoThrow`, so that can be ignored for now). Please note that it applies only when `TValue` is a class, so it does not violate any behavior for value types. ``` c# public static class ClassyDictionaryExtensions { public static TValue GetValueNoThrow_Ignore_The_Name(this IDictionary dictionary, TKey key) where TValue : class { if (dictionary == null) { throw new ArgumentNullException(nameof(dictionary)); } TValue value; dictionary.TryGetValue(key, out value); return value; } } ``` The new code would end up with one very-easy-to-read line of code: ``` c# return DictionaryOfSomeClass.GetValueNoThrow(someKey); ``` ## Discussion Would others find such an extension method useful? +3483 area-System.Console Add an API to execute a console program and capture its output in a simple way Clearly, we can use the `Process` class to run a program, redirect its output and capture the output. But doing so correctly is unfathomably complicated: 1. You need to read both StdOut and StdErr. Failing to do so can result in hangs. 2. Output events can arrive _after_ WaitForExit has returned. (Update: This concern does not exist.) 3. Output events signal their completing by sending one `null` string at the end. 4. `myProcess.StandardOutput.ReadAsync` throws an exception for the last read with a confusing message (http://stackoverflow.com/questions/32800802/unable-to-read-output-from-child-process-from-c-sharp-app-using-async-methods#32800802). 5. Reading binary output requires contortions (`myProcess.StandardOutput.BaseStream`) where it is not clear whether this is supported at all. We are reaching into the `BaseStream` property which might expose an internal object not meant for consumption. 6. Failing to quickly read the redirected streams stalls the child process. 7. Many more on this list: http://csharptest.net/321/how-to-use-systemdiagnosticsprocess-correctly/ 8. Probably, even more that are on nobodies list. This API is terrible! Please provide an easy and reliable way to capture output. Here's a strawman for a simple API `IEnumerable Process::StartWithOutputRedirected()` Now, this clearly is insufficient and probably not nice API design but you get the point. The following goals should be achieved: 1. Little potential for mistakes. 2. Streaming output for unbounded output size. 3. Text and binary output. 4. Differentiate between StdOut and StdErr. For example by returning an `IEnumerable` of a DTO like `struct ConsoleOutput { string Data; ConsoleOutputType Type; /*Output, Error*/ }`. 5. The output stream should end at exactly the same point in time that WaitForExit ends at. Delay both to only complete when the other also has completed. 6. The API should allow reading in a non-linewise fashion. 7. A simplified version that just captures all output on both channels into one `string`. This is probably what most consumers want anyway. +3484 area-System.Net Some asserts during X-Plat Sockets Tests See: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst/1021/console. The Debug.Assert here did not cause the test to fail. ``` ---- DEBUG ASSERTION FAILED ---- ---- Assert Short Message ---- SafeCloseSocket::ReleaseHandle(handle:0) ---- Assert Long Message ---- ReleaseHandle failed. at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Fail(String message, String detailMessage) at System.Net.GlobalLog.Assert(String message, String detailMessage) at System.Net.GlobalLog.Assert(Boolean condition, String messageFormat, Object[] data) at System.Net.Sockets.SafeCloseSocket.InnerSafeCloseSocket.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.DangerousRelease() at System.Net.Sockets.SafeCloseSocket.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.InternalFinalize() at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing) at System.Runtime.InteropServices.SafeHandle.Finalize() at System.Net.DebugSafeHandleMinusOneIsInvalid.Finalize() ---- DEBUG ASSERTION FAILED ---- ---- Assert Short Message ---- SafeCloseSocket::ReleaseHandle(handle:0) ---- Assert Long Message ---- ReleaseHandle failed. at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Fail(String message, String detailMessage) at System.Net.GlobalLog.Assert(String message, String detailMessage) at System.Net.GlobalLog.Assert(Boolean condition, String messageFormat, Object[] data) at System.Net.Sockets.SafeCloseSocket.InnerSafeCloseSocket.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.DangerousRelease() at System.Net.Sockets.SafeCloseSocket.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.InternalFinalize() at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing) at System.Runtime.InteropServices.SafeHandle.Finalize() at System.Net.DebugSafeHandleMinusOneIsInvalid.Finalize() ---- DEBUG ASSERTION FAILED ---- ---- Assert Short Message ---- SafeCloseSocket::ReleaseHandle(handle:0) ---- Assert Long Message ---- ReleaseHandle failed. at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Fail(String message, String detailMessage) at System.Net.GlobalLog.Assert(String message, String detailMessage) at System.Net.GlobalLog.Assert(Boolean condition, String messageFormat, Object[] data) at System.Net.Sockets.SafeCloseSocket.InnerSafeCloseSocket.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.DangerousRelease() at System.Net.Sockets.SafeCloseSocket.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.InternalFinalize() at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing) at System.Runtime.InteropServices.SafeHandle.Finalize() at System.Net.DebugSafeHandleMinusOneIsInvalid.Finalize() Finished: System.Net.Sockets.APMServer.Tests === TEST EXECUTION SUMMARY === System.Net.Sockets.APMServer.Tests Total: 231, Errors: 0, Failed: 0, Skipped: 0, Time: 13.856s ---- DEBUG ASSERTION FAILED ---- ---- Assert Short Message ---- SafeCloseSocket::ReleaseHandle(handle:0) ---- Assert Long Message ---- ReleaseHandle failed. at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Fail(String message, String detailMessage) at System.Net.GlobalLog.Assert(String message, String detailMessage) at System.Net.GlobalLog.Assert(Boolean condition, String messageFormat, Object[] data) at System.Net.Sockets.SafeCloseSocket.InnerSafeCloseSocket.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.DangerousRelease() at System.Net.Sockets.SafeCloseSocket.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.InternalFinalize() at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing) at System.Runtime.InteropServices.SafeHandle.Finalize() at System.Net.DebugSafeHandleMinusOneIsInvalid.Finalize() Finished: System.Net.Sockets.AsyncServer.Tests === TEST EXECUTION SUMMARY === System.Net.Sockets.AsyncServer.Tests Total: 231, Errors: 0, Failed: 0, Skipped: 0, Time: 13.955s ---- DEBUG ASSERTION FAILED ---- ---- Assert Short Message ---- SafeCloseSocket::ReleaseHandle(handle:0) ---- Assert Long Message ---- ReleaseHandle failed. at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Fail(String message, String detailMessage) at System.Net.GlobalLog.Assert(String message, String detailMessage) at System.Net.GlobalLog.Assert(Boolean condition, String messageFormat, Object[] data) at System.Net.Sockets.SafeCloseSocket.InnerSafeCloseSocket.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.DangerousRelease() at System.Net.Sockets.SafeCloseSocket.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.InternalFinalize() at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing) at System.Runtime.InteropServices.SafeHandle.Finalize() at System.Net.DebugSafeHandleMinusOneIsInvalid.Finalize() ---- DEBUG ASSERTION FAILED ---- ---- Assert Short Message ---- SafeCloseSocket::ReleaseHandle(handle:0) ---- Assert Long Message ---- ReleaseHandle failed. at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Fail(String message, String detailMessage) at System.Net.GlobalLog.Assert(String message, String detailMessage) at System.Net.GlobalLog.Assert(Boolean condition, String messageFormat, Object[] data) at System.Net.Sockets.SafeCloseSocket.InnerSafeCloseSocket.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.DangerousRelease() at System.Net.Sockets.SafeCloseSocket.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.InternalFinalize() at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing) at System.Runtime.InteropServices.SafeHandle.Finalize() at System.Net.DebugSafeHandleMinusOneIsInvalid.Finalize() ``` +3490 area-System.Net Incorporated some comments - Net Secure Xplat Implementation This is same as https://github.com/dotnet/corefx/pull/3369 Comments have already been addressed/replied. Any new comments can be given here. Since it's pending for roughly ~6 days, would like a quick closure. Thanks. Creating a PR to dotnet/master as we will no longer be using dev-sslstream. I will squash the commits once,I get the sign off. +3494 area-System.Net ConnectV4MappedIPAddressToV4Host_Success failed in CI on Linux http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/2785/console ``` 09:31:53 System.Net.Sockets.Tests.DualMode.ConnectV4MappedIPAddressToV4Host_Success [FAIL] 09:31:53 System.Net.Sockets.SocketException : Unknown error 10054 09:31:53 Stack Trace: 09:31:54 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 09:31:54 at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) 09:31:54 at System.Net.Sockets.Socket.Connect(IPAddress address, Int32 port) 09:31:54 at System.Net.Sockets.Tests.DualMode.DualModeConnect_IPAddressToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Int32 port) 09:31:54 at System.Net.Sockets.Tests.DualMode.ConnectV4MappedIPAddressToV4Host_Success() ``` +3495 area-System.Net SocketPerformance_SingleSocketClientAPM_LocalHostServerAPM failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug/1351/console ``` 11:22:58 System.Net.Sockets.Performance.Tests.SocketPerformanceAPMTests.SocketPerformance_SingleSocketClientAPM_LocalHostServerAPM [FAIL] 11:22:58 Test execution is expected to be shorter than 5000 but was 7543 11:22:58 Expected: True 11:22:58 Actual: False 11:22:58 Stack Trace: 11:22:58 d:\j\workspace\dotnet_corefx_windows_debug\src\Common\tests\System.Net\Sockets\Performance\SocketPerformanceTests.cs(53,0): at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.ClientServerTest(Int32 port, SocketImplementationType serverType, SocketImplementationType clientType, Int32 iterations, Int32 bufferSize, Int32 socket_instances, Int64 expectedMilliseconds) 11:22:58 d:\j\workspace\dotnet_corefx_windows_debug\src\System.Net.Sockets.Legacy\tests\PerformanceTests\SocketPerformanceAPMTests.cs(38,0): at System.Net.Sockets.Performance.Tests.SocketPerformanceAPMTests.SocketPerformance_SingleSocketClientAPM_LocalHostServerAPM() ``` cc: @davidsh, @cipop, @pgavlin +3497 area-System.Net SendPacketsElement_FilePart_Success failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release_prtest/4322/console ``` Starting: System.Net.Sockets.AsyncServer.Tests System.Net.Sockets.Tests.SendPacketsAsync.SendPacketsElement_FilePart_Success [FAIL] Timed out Expected: True Actual: False Stack Trace: d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\SendPacketsAsync.cs(397,0): at System.Net.Sockets.Tests.SendPacketsAsync.SendPackets(SendPacketsElement[] elements, SocketError expectedResut, Int32 bytesExpected) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\SendPacketsAsync.cs(317,0): at System.Net.Sockets.Tests.SendPacketsAsync.SendPacketsElement_FilePart_Success() ``` cc: @davidsh, @cipop, @pgavlin +3498 area-System.Net System.Net changes for README.md - Update System.Net.Security description - Add System.Net.Sockets description +3499 area-System.Reflection Merge master to dev/metadata Straight PR from master -> dev/metadata (no conflicts) +3501 area-Infrastructure Add static and runtime verification tools against existing tests /cc: @stephentoub @vijaykota @pgavlin @davidsh We should augment our CI with static and runtime verification tools that can be enabled against our existing tests: Windows: - [ ] FXCop (edit: covered by https://github.com/dotnet/corefx/issues/14095) - [ ] PREfast for Native code - [ ] [AppVerifier](http://www.microsoft.com/en-us/download/details.aspx?id=20028) Linux: - [ ] [Valgrind](http://valgrind.org/) This should already be part of normal pre-commit procedures for all teams. Could we make this an automated part of CI/Weekly testing? +3502 area-System.Security Windows: new X509Certificate2(byte[]).GetRSAPrivateKey returns RSACSP instead of RSACng "The idea/thought was that we'd use CNG for everything except for hardware providers that were linked through CAPI. In particular, this would prevent the SHA256 lookup failure that occurs when using CAPI's PROV_RSA_FULL instead of PROV_RSA_AES. I'm pretty sure that we made the software keys be returned via RSACng on desktop (4.6). This was accomplished by calling CryptAcquireCertificatePrivateKey with the ""ncrypt only"" flag (see the code on [reference source](http://referencesource.microsoft.com/#System.Core/System/Security/Cryptography/X509Certificates/X509Native.cs,2e55137aa586849f)), since that can up-convert software based CAPI keys. " +3503 area-System.Reflection Merge master to dev/metadata Replacing #3499. Still no conflicts, but this time using an intermediate branch so that changes to master do not automatically become part of the PR and reset CI. +3504 area-System.Net ReceiveFromAsyncV4BoundToAnyV4_Success failure in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug/1361/console ``` System.Net.Sockets.Tests.DualMode.ReceiveFromAsyncV4BoundToAnyV4_Success [FAIL] 18:41:42 System.TimeoutException : The operation has timed out. 18:41:42 Stack Trace: 18:41:42 d:\j\workspace\dotnet_corefx_windows_debug\src\System.Net.Sockets.Legacy\tests\FunctionalTests\DualModeSocketTest.cs(1836,0): at System.Net.Sockets.Tests.DualMode.ReceiveFromAsync_Helper(IPAddress listenOn, IPAddress connectTo, Int32 port) 18:41:42 d:\j\workspace\dotnet_corefx_windows_debug\src\System.Net.Sockets.Legacy\tests\FunctionalTests\DualModeSocketTest.cs(1766,0): at System.Net.Sockets.Tests.DualMode.ReceiveFromAsyncV4BoundToAnyV4_Success() ``` cc: @davidsh, @CIPop, @pgavlin +3505 area-System.Diagnostics Process.GetProcessesByName significantly slower on Linux than Windows for nonexistent process "The performance test being run: ``` [Benchmark] [InlineData(1)] [InlineData(2)] [InlineData(3)] public void GetProcessesByName(int innerIterations) { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) { for (int i = 0; i < innerIterations; i++) { Process.GetProcessesByName(""1""); Process.GetProcessesByName(""1""); Process.GetProcessesByName(""1""); Process.GetProcessesByName(""1""); Process.GetProcessesByName(""1""); Process.GetProcessesByName(""1""); Process.GetProcessesByName(""1""); Process.GetProcessesByName(""1""); Process.GetProcessesByName(""1""); } } } ``` Linux perf results (38.455 total seconds): ``` ``` Windows perf results (3.355 total seconds): ``` ``` Further increasing the number of calls to GetProcessesByName makes comparatively little difference on Windows. For example, with an `InnerIterations` of 5000 (45000 total function calls), the elapsed time on Windows is only 106 seconds. In that same time Linux can only complete ~20 InnerIterations (180 total function calls). This suggests the Linux implementation takes roughly 250 times as long as the Windows implementation. " +3506 area-Infrastructure Can't run [Outerloop] tests using msbuild of individual test project "I frequently go to a single test directory to run tests just for that project. I.e., this will run just innerloop tests: > cd src\System.Net.Http\tests\FunctionalTests > msbuild /t:clean;build;test Now, say, I want to run `[Outerloop]` tests: I tried using this from the directory of the individual csproj file: `msbuild /t:clean;build;test /p:RunTestsWithCategories=Outerloop` or this: `msbuild /t:clean;build;test ""/p:XunitOptions=-trait category=outerloop""` and neither works. I have a vague memory of this working before. So, has this changed lately? " +3508 area-System.Net Change S.N.Sockets/tests to use (mostly) anonymous ports. This change only touches tests in System.Net.Sockets/tests; those under S.N.Sockets.Legacy/tests will be taken care of in a follow-up commit. +3510 area-System.Net Disabling System.Net.Sockets tests intermittently failing in CI. Disabling intermittently failing Sockets tests in CI. Related #3497 #3447 +3512 area-System.IO Path.GetDirectoryName slower on Linux than Windows Core "The performance test being run: ``` [Benchmark] [InlineData(10000)] [InlineData(20000)] [InlineData(30000)] public void GetDirectoryName(int innerIterations) { string testPath = PerfUtils.GetTestFilePath(); foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) for (int i = 0; i < innerIterations; i++) { Path.GetDirectoryName(testPath); Path.GetDirectoryName(testPath); Path.GetDirectoryName(testPath); Path.GetDirectoryName(testPath); Path.GetDirectoryName(testPath); Path.GetDirectoryName(testPath); Path.GetDirectoryName(testPath); Path.GetDirectoryName(testPath); Path.GetDirectoryName(testPath); } } ``` Linux perf results (99.804 seconds): ``` ``` Windows Core perf results (4.147 seconds): ``` ``` " +3516 area-System.IO Modified PathInternal.Unix for great perf increase resolves #3515, #3515 +3517 area-System.Reflection Add TypeNameParser tests @davkean Adding tests for your type name parser. I marked you as author on the commit with your original VS unit tests, then followed it up with commits to port to xunit. The port is minimal, and I have not for example bothered to convert to [Theory] etc. yet. I've also separated out the part that uses desktop-only API to compare against reflection type name parsing in to the .Desktop test project. Mind you, that project is temporary until we get test explorer working with portable tests, so I'm not sure we can keep that long term. cc @tmat Fix #534 +3518 area-System.Collections Dictionary int constructor ~10 times faster on Windows than on Linux "Perf test being run: ``` [Benchmark] [InlineData(0)] [InlineData(1024)] [InlineData(4096)] [InlineData(16384)] public void ctor_int(int size) { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) for (int i = 0; i <= 5000; i++) { new Dictionary(size); new Dictionary(size); new Dictionary(size); new Dictionary(size); new Dictionary(size); new Dictionary(size); new Dictionary(size); new Dictionary(size); new Dictionary(size); } } ``` Linux results: ``` ``` Windows results: ``` ``` Note that the because of the way the test is written, destructing of the dictionaries can be included in the measured portion. It would be worthwhile to store local copies of the dictionaries so that destruction doesn't happen within the iteration.StartMeasurement `using` so the exact problem can be narrowed down. " +3519 area-System.Net Use anonymous ports in S.N.Sockets.Legacy/test/FunctionalTests. This is a follow-up to #3508. With this change, all of the legacy functional tests use anonymous ports. This also includes a small change to `SocketPerformanceTests.cs` to address PR feedback from #3508. +3520 area-System.Threading System.Threading.Tasks.Dataflow.Tests.EtwTests.TestEtw failed in CI on OSX This is a deterministic failure as far as I can tell. ``` MESSAGE: Assert.Equal() Failure Expected: 0 Actual: 2 +++++++++++++++++++ STACK TRACE: at System.Threading.Tasks.Dataflow.Tests.EtwTests.<>c__DisplayClass7.b__1() at System.Diagnostics.Tracing.TestEventListener.RunWithCallback(Action`1 handler, Action body) at System.Threading.Tasks.Dataflow.Tests.EtwTests.TestEtw() ``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx_mac_debug_tst/50/testReport/junit/System.Threading.Tasks.Dataflow.Tests/EtwTests/TestEtw/ +3524 area-System.Data Incorporate Misc code review comments for SqlClient Please refer PR https://github.com/dotnet/corefx/pull/2986 The items to be taken care of, 1. Use utility methods. 2. Remove unnecessary base class calls 3. There is Obsolete SMI code which can be removed. Followup on the SMI v1 support and clean this up. +3528 area-System.Net Using SafeHandles instead of IntPtrs in Interop.libssl Changed the Unix code to use SafeHandles cc: @stephentoub @bartonjs @rajansingh10 @shrutigarg +3532 area-System.Net SendPacketsAsync.BufferZeroCountThenNormal_ZeroCountIgnored failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/4396/console ``` System.Net.Sockets.Tests.SendPacketsAsync.BufferZeroCountThenNormal_ZeroCountIgnored [FAIL] Timed out Expected: True Actual: False Stack Trace: d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\SendPacketsAsync.cs(231,0): at ``` cc: @davidsh, @cipop, @pgavlin +3533 area-System.Threading Timer_Change_BeforeDueTime_ChangesWhenTimerWillFire failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug/1368/console ``` TimerChangeTests.Timer_Change_BeforeDueTime_ChangesWhenTimerWillFire [FAIL] 05:19:31 Should have received a timer event after this new duration 05:19:31 Expected: True 05:19:31 Actual: False 05:19:31 Stack Trace: 05:19:31 d:\j\workspace\dotnet_corefx_windows_debug\src\System.Threading.Timer\tests\TimerChangeTests.cs(94,0): at TimerChangeTests.Timer_Change_BeforeDueTime_ChangesWhenTimerWillFire() ``` +3534 area-Infrastructure $(CommonPath) in paths causing bad Visual Studio experience. "A bunch of our .csproj files have lines like <Compile Include ""$(CommonPath)\blah\blah""> where $(CommonPath) is defined in dir.prop. This has a really bad effect on VS experience as its navigation and Intellisense engine struggle to find these files. Defining $(CommonPath) inside the individual .csproj fixes the Intellisense and still gives us some measure of encapsulation, albeit imperfect. Is the encapsulation of ""Common"" really worth this? " +3535 area-System.Data Refactor and consolidate the AdapterUtil.cs Reuse the common functions from AdapterUtil.cs The AdapterUtil is present in both Data.Common and Data.SqlClient with common functions. Refactor the AdapterUtil.cs so that most of it can reside in Data.Common +3537 area-System.Text Investigate System.Text.Encodings.Web.Tests encoding failure using XUnit Theory "We currently have this TODO in our UnicodeHelpersTests: ``` C# // This loop should instead be implemented as a [Theory] with multiple [InlineData]s. // However, until globalization support is implemented on Unix, this causes failures when // the xunit runner is configured with -xml to trace out results. When it does so with // [InlineData], the parameters get written out to the results xml file, and with our // current temporary globalization implementation on Unix, this causes exceptions like // ""The surrogate pair (0xD800, 0x22) is invalid. A high surrogate character // (0xD800 - 0xDBFF) must always be paired with a low surrogate character (0xDC00 - 0xDFFF)."" ``` However, after implementing the Encoding table on Unix, and converting this test back to a Theory, we still get a similar error running the test: `error: Invalid high surrogate character (0xDFFF). A high surrogate character must have a value from range (0xD800 - 0xDBFF).` We should investigate why this error is happening and fix it. " +3538 area-Infrastructure Discussion regarding support of CoreFX builds on non-windows OSes. "Today, building CoreFX on non windows platforms uses Mono as the runtime for all the managed code we need to run (namely MSBuild and Roslyn). The long term goal is to instead run on-top of a stable CoreCLR build. However, making this change has the possibility to regress supported build platforms since CoreCLR may not run everywhere Mono does (e.g. FreeBSD, other linux Distros, etc.) As a concrete example, our tool runtime package (which we would use to run GenFacades) contains a CoreCLR which only supports Ubuntu 14.04[1](#fr1). With buildtools 97 we are at the point now where we can actually enable GenFacades and have it work on Ubuntu 14.04, but doing so will break the build on incompatible distros. The question is, do we care enough to spend engineering effort to allow the build to work on platforms that we don't have a supported CoreCLR package for? Do we expect that when MSBuild on .NET Core lands and we try to adopt it that we will remove our mono dependency entirely? What does that mean for folks like the FreeBSD port team (/cc @janhenke), who want to build our stack on FreeBSD while they bring things up if we don't have FreeBSD packages? I know that @pgavlin is chomping at the bit to get more of the build working on Linux. It would be helpful to me as well, but we need closure here before we start going making changes that might break folks. I see a few paths forward. 1. Say that building Managed CoreFX code cross platform requires your platform be supported by CoreCLR. Since today the supported platforms are Ubuntu 14.04 and OSX, update build.sh to pass the correct RID for ToolNugetRuntimeId when invoking MSBuild. If you are on a different distro and want to go out of your way to install the correct set of dependencies so an existing supported RID can run on your distro, you're free to do so and then use that RID. 2. Do platform detection and ""light up"" when we are running on a CoreCLR supported distro. In this mode, if we are able to run CoreCLR, we prefer that otherwise we fallback to Mono. For cases where we can't fallback (e.g GenFacades) we just no-op the relevant builds tasks. 3. Make the statement that managed code that runs during build time _must_ run on Mono and _may_ run on CoreCLR. This is like (2) expect it means we can always fallback. This is not true today. I'm interested in getting everyone's take on this. Maybe I'm freaking out over nothing and I can go ahead and just do (1) without anyone getting upset. 1 Technically, this could mean any OS that has a set of libraries which are binary compatible with the versions of our dependencies in Ubuntu 14.04. For some dependencies this is easy (i.e. the version of openssl that is in another distro's package manager is probably binary compatible with the version in Ubuntu 14.04, but the version of the ICU library is probably not, since they decorate their export names per version). " +3541 area-System.Net Remove Assert(asynchronous failure) from Sockets tests. In principle, any call that fails ansynchronously may also fail synchronously. +3542 area-System.Net Should sockets performance tests be inner loop? These tests have failed to meet the baseline a few times, but they pass on re-run. http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/4407/testReport/junit/System.Net.Sockets.Performance.Tests/SocketPerformanceAPMTests/SocketPerformance_SingleSocketClientAsync_LocalHostServerAPM/ When the CI System runs jobs, it can run multiple jobs on the same machine at the same time, could that be causing problems or are there real problems here that we should be investigating? It seems like the long term plan is that we move to @ianhays's [Performance] stuff. Can we just adopt these changes for that instead of having yet another perf testing thing that also runs inner loop? /cc @CIPop @davidsh @pgavlin @bartonjs. +3543 area-Infrastructure Repo organization guidelines for Common\tests Currently, there's a free-for-all regarding how code is placed in `src/Common/tests` folders, unlike the `src/Common/src` folder tree which has clear guidelines. There are a few proposals: 1) Mirror the `src/Common/src` idea and have everything properly aligned to the namespace. So, the folder paths would look like this: `src/Common/tests/System/Net/Http/HelperClass.cs`. Note that each namespace path is one word only per part in the pathname. This seems to be the most logical choice although. It could create some confusion at first since, for example, Sockets tests will add to Threading, EventSource and Resources but in the end will allow for better organization, review and increase code reuse. 2) Organize `src/Common/tests` per namespace ownership: /System.Net; /System.Xml, etc. So, the folder paths would look like this: `src/Common/tests/System.Net.Http/HelperClass.cs` This is partially what's going on today although there are folders that aren't fully specifying the namespace such as Collections, Compression, etc. Please add your opinions. +3544 area-System.Globalization "[Linux] Default locale is ""Invariant Language (Invariant Country)""" "Odd default locale with Core CLR on Linux: It is the invariant locale rather than the expected ""English (United States)"". Test just examines `Culture.CurrentCulture.EnglishName` and `Culture.CurrentUICulture.EnglishName`. Mono gets this right on the system system. I'm using `System.Globalization/4.0.11-beta-23326`, `System.Globalization.Extensions/4.0.1-beta-23326` and `System.Runtime/4.0.21-beta-23326` for most-recent tests of this scenario. " +3546 area-System.Linq Stack overflow enumerating EnumerableQuery created from null enumerable `EnumerableQuery` can be created passing null a `Expression`, an inappropriately typed `Expression`, a null `IEnumerable`, or a null value of a derived type. Blocking this would be a breaking change, especially since such objects can be usefully used as query providers. Calling `GetEnumerator()` on most such cases result in an `ArgumentNullException` or `ArgumentException`, which could probably be improved (another exception might be more appropriate), but if the constructor was passed a null `IEnumerable` then `GetEnumerator()` hits two cases where it would go into infinite recursion. First when the expression is visited, it is then recursively visited again until stack overflow. Potentially there are other ways this path could be hit, and so other bugs it could cause. If this is fixed, then `GetEnumerator()` itself will then delegate to its own `GetEnumerator()` causing infinite recursion again. ``` C# [Fact] public void NullEnumerableConstantNullExpression() { IQueryable query = new EnumerableQuery((IEnumerable)null); var exp = (ConstantExpression)query.Expression; query.GetEnumerator(); // stack overflow. } ``` +3548 area-System.Net Move Sockets performance tests into [OuterLoop]. Fixes #3495, #3542. +3550 area-System.Net Why HttpClient can't run on linux(coreclr-1.0.0-beta8-15776) "It's not ready yet? ``` C# using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Net.Http; namespace ConsoleApp2 { public class Program { public void Main(string[] args) { using (HttpClient client = new HttpClient()) { Task task = client.GetStringAsync(""https://github.com/""); task.Wait(); Console.WriteLine(task.Result); } Console.WriteLine(""exit!!""); } } } ``` ``` System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Http, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. File name: 'System.Net.Http, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ---> System.IO.FileNotFoundException: Could not load the specified file. File name: 'System.Net.Http' at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName) at System.Runtime.Loader.AssemblyLoadContext.Resolve(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName) at ConsoleApp2.Program.Main(String[] args) at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider) at Microsoft.Dnx.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args) at Microsoft.Dnx.ApplicationHost.Program.Main(String[] args) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider) at Microsoft.Dnx.Host.Bootstrapper.RunAsync(List`1 args, IRuntimeEnvironment env, String appBase, FrameworkName targetFramework) at Microsoft.Dnx.Host.RuntimeBootstrapper.ExecuteAsync(String[] args, BootstrapperContext bootstrapperContext) at Microsoft.Dnx.Host.RuntimeBootstrapper.Execute(String[] args, BootstrapperContext bootstrapperContext) System.IO.FileNotFoundException: Could not load the specified file. File name: 'System.Net.Http' at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName) at System.Runtime.Loader.AssemblyLoadContext.Resolve(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName) ``` " +3554 area-System.Net Add more HTTP tests - Add more tests ported from the internal ToF tests. - Cleanup existing tests to be consistent in style and format as it has drifted due to many different people working on the tests. - Disposing the HttpClient object will dispose the handler as well so we don't need multiple 'using' statements unless we are explicitly testing dispose ordering semantics. +3555 area-System.Net System.Net.Http (Linux) allows insecure HTTPS -> HTTP redirect Discovered during PR #3554 Test failure: System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RedirectFromHttpsToHttp_StatusCodeRedirect MESSAGE: Assert.Equal() Failure Expected: Redirect Actual: OK +++++++++++++++++++ STACK TRACE: at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__44.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +3556 area-System.Linq Interpreting dynamic expressions failed Hello, a really Q&D example for showing the issue. First the simple callsitebinder: ``` C# private class BinaryCallSiteBinder : BinaryOperationBinder { public BinaryCallSiteBinder() : base(ExpressionType.Add) { } public override DynamicMetaObject FallbackBinaryOperation(DynamicMetaObject target, DynamicMetaObject arg, DynamicMetaObject errorSuggestion) { return new DynamicMetaObject( Expression.Convert( Expression.Add( Expression.Convert(target.Expression, typeof(int)), Expression.Convert(arg.Expression, typeof(int)) ), typeof(object)), BindingRestrictions.GetTypeRestriction(target.Expression, typeof(int)).Merge( BindingRestrictions.GetTypeRestriction(arg.Expression, typeof(int)) )); } } ``` And the calling code: ``` C# var expr = DynamicExpression.Dynamic(new BinaryCallSiteBinder(), typeof(object), Expression.Constant(40, typeof(object)), Expression.Constant(2, typeof(object))); var f = Expression.Lambda>(expr); var f2 = f.Compile(); textbox1.Text = f2().ToString(); ``` If I run the code under Windows 8.1 Phone or the desktop .net framework, it works fine. But under Windows 10 UWP (it should .net core) I get the following exception: ``` System.ArgumentException wurde nicht von Benutzercode behandelt. HResult=-2147024809 Message=Expression of type 'System.Object' cannot be used for parameter of type 'System.Runtime.CompilerServices.CallSite' of method 'Boolean SetNotMatched(System.Runtime.CompilerServices.CallSite)' Source=System.Linq.Expressions StackTrace: at System.Dynamic.Utils.ExpressionUtils.ValidateOneArgument(MethodBase method, ExpressionType nodeKind, Expression arg, ParameterInfo pi) at System.Linq.Expressions.Expression.Call(MethodInfo method, Expression arg0) at System.Runtime.CompilerServices.CallSite`1.CreateCustomNoMatchDelegate(MethodInfo invoke) at System.Runtime.CompilerServices.CallSite`1.MakeUpdateDelegate() at System.Runtime.CompilerServices.CallSite`1.GetUpdateDelegate(T& addr) at System.Runtime.CompilerServices.CallSite`1.GetUpdateDelegate() at System.Runtime.CompilerServices.CallSite`1.Create(CallSiteBinder binder) at System.Runtime.CompilerServices.CallSite.Create(Type delegateType, CallSiteBinder binder) at System.Linq.Expressions.DynamicExpression.Reduce() at System.Linq.Expressions.Interpreter.LightCompiler.CompileNoLabelPush(Expression expr) at System.Linq.Expressions.Interpreter.LightCompiler.Compile(Expression expr) at System.Linq.Expressions.Interpreter.LightCompiler.CompileTop(LambdaExpression node) at System.Linq.Expressions.Expression`1.Compile() at TestLua.MainPage.btnClick_Click(Object sender, RoutedEventArgs e) ``` What is wrong? +3557 area-System.Net System.Net.Http (Linux) not passing credentials (in cache) during redirect Discovered during PR #3554 Test Failure: System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_CredentialIsCredentialCacheUriRedirect_StatusCodeOK MESSAGE: Assert.Equal() Failure Expected: OK Actual: Unauthorized +++++++++++++++++++ STACK TRACE: at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__5c.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +3558 area-System.Console Expose System.Console.WindowWidth Azure CLI would like us to expose WindowWidth property +3559 area-System.Console Expose System.Console.CursorVisible Azure CLI would like us to expose this property +3562 area-System.Net Tracking issues for System.Net.NetworkInformation and System.Net.Utilities This issue is tracking TODOs and Shims removal for PR #: - [ ] Replace Interop.\* with OS names from the SDK (iphlpapi) - [ ] Unify error codes for Win32 (see Interop.ErrorCodes.cs in iphlpapi) - [ ] Investigate DangerousAddRef then Dispose within `SafeCloseSocketAndEvent::CompleteInitialization(...)` - [ ] In NetworkAddressChange.cs : > @stephentoub: We're invoking the user's callback while holding s_syncObject. There are trivial ways that could lead to deadlock (e.g. if the callback queued and waited on a work item that tried to add a handler), though maybe we don't care about such degenerate patterns? - [ ] In NetworkAddressChange.cs: StartHelper() > @ stephentoub: Is it not possible for both IPv4 and IPv6 to be supported and in the start options? If it is possible, we're overwriting statics that were just set in the previous section. > > > @CIPop Collaborator > > CIPop added a note just now > > Indeed, s_registeredWait is overwritten. There are other issues with this implementation: the RegisteredWaitHandle is never unregistered. https://msdn.microsoft.com/en-us/library/w9f75h7a(v=vs.110).aspx: > > > When you are finished using the RegisteredWaitHandle that is returned by this method, call its RegisteredWaitHandle.Unregister method to release references to the wait handle. We recommend that you always call the RegisteredWaitHandle.Unregister method, even if you specify true for executeOnlyOnce +3563 area-System.Collections Add System.Collections.Concurrent.ConcurrentHashSet "We already have classes in the `System.Collections.Concurrent` namespace that provide (mostly) equivalent APIs to most of those in the `System.Collections.Generic` namespace. However, one omission is a concurrent equivalent for `System.Collections.Generic.HashSet`. At the moment, if a thread-safe hash set is needed, we are left with one of three options: - Creating a thread-safe collection class from scratch. - Synchronizing `System.Collections.Generic.HashSet` in a wrapper class. - Using `System.Collections.Concurrent.ConcurrentDictionary` with ""dummy"" values such as `object` or `byte`, either directly or through a wrapper. None of these approaches is ideal. The first and second option are both error prone (concurrency is hard) and difficult to fully optimize. The third wastes memory and time spent allocating the dummy objects. It seems reasonable to expect such a class wouldn't be too challenging to create given that it would appear to mostly consist of reducing the functionality in the already-existing `ConcurrentDictionary` class (though that one is ~2,000 line long, so...). " +3564 area-System.Net Add unidirectional tests for Socket.{Send,Receive}. These tests send data in a loop from one socket to another and check that all data was correctly received. There are tests for each of: - {SendTo,ReceiveFrom} - {Begin,End}{SendTo,ReceiveFrom} - {SendTo,ReceiveFrom}Async - {Send,Receive} - {Begin,End}{Send,Receive} - {Send,Receive}Async The SendTo/ReceiveFrom tests use UDP sockets; the others use TCP sockets. All tests use either the IPv4 or IPv6 loopback interface. +3565 area-System.Net System.Net.Http (Linux) doesn't support ChannelBinding Test (HttpClientHandlerTest.cs) PostAsync_Post_ChannelBindingHasExpectedValue() fails because it returns a NULL value for ChannelBinding. +3566 area-System.Runtime Perf: Environment.ExpandEnvironmentVariables 4x slower on Linux "Perf test: ``` PerfUtils utils = new PerfUtils(); string env = utils.CreateString(15); string inputEnv = ""%"" + env + ""%""; try { // setup the environment variable so we can read it Environment.SetEnvironmentVariable(env, ""value""); // read the valid environment variable foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) for (int i = 0; i < 40000; i++) { Environment.ExpandEnvironmentVariables(inputEnv); Environment.ExpandEnvironmentVariables(inputEnv); Environment.ExpandEnvironmentVariables(inputEnv); Environment.ExpandEnvironmentVariables(inputEnv); Environment.ExpandEnvironmentVariables(inputEnv); Environment.ExpandEnvironmentVariables(inputEnv); Environment.ExpandEnvironmentVariables(inputEnv); Environment.ExpandEnvironmentVariables(inputEnv); Environment.ExpandEnvironmentVariables(inputEnv); Environment.ExpandEnvironmentVariables(inputEnv); } } finally { // clear the variable that we set Environment.SetEnvironmentVariable(env, null); } ``` Linux results: ``` ``` Windows results: ``` ``` " +3568 area-System.Runtime Perf: Environment.GetEnvironmentVariable 4x slower on Linux "Perf test: ``` [Benchmark] public void GetEnvironmentVariable() { PerfUtils utils = new PerfUtils(); string env = utils.CreateString(15); try { // setup the environment variable so we can read it Environment.SetEnvironmentVariable(env, ""value""); // read the valid environment variable for the test foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) for (int i = 0; i < 40000; i++) { Environment.GetEnvironmentVariable(env); Environment.GetEnvironmentVariable(env); Environment.GetEnvironmentVariable(env); Environment.GetEnvironmentVariable(env); Environment.GetEnvironmentVariable(env); Environment.GetEnvironmentVariable(env); Environment.GetEnvironmentVariable(env); Environment.GetEnvironmentVariable(env); Environment.GetEnvironmentVariable(env); } } finally { // clear the variable that we set Environment.SetEnvironmentVariable(env, null); } } ``` Linux results: ``` ``` Windows results: ``` ``` " +3569 area-System.Runtime System.Runtime.Loader.Tests.AssemblyLoadContextTest.InitializeDefaultContextTest failing on Linux in CI For example: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/2896/ +3570 area-System.Net Fix Net.NameResolutionPal.Unix when sockaddr shim'ing work comes in The System.Net.NameResolutionPal.Unix::TryGetAddrInfo function does a lot of copying a bit twiddling according to sockaddr sizes per-platform. This should be cleaned up when the sockaddr struct is shim'd +3571 area-System.Runtime Perf: DateTime.Now 3x slower on Linux "Perf test: ```c# [Benchmark] public void GetNow() { DateTime dt; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) for (int i = 0; i < 10000; i++) { dt = DateTime.Now; dt = DateTime.Now; dt = DateTime.Now; dt = DateTime.Now; dt = DateTime.Now; dt = DateTime.Now; dt = DateTime.Now; dt = DateTime.Now; dt = DateTime.Now; } } ``` Linux results: ```xml ``` Windows results: ```xml ``` " +3572 area-System.Runtime Perf: new Random() 2x slower on Linux "Perf test: ``` [Benchmark] public void ctor() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) for (int i = 0; i < 40000; i++) { new Random(); new Random(); new Random(); new Random(); new Random(); new Random(); new Random(); new Random(); new Random(); } } ``` Linux results: ``` ``` Windows results: ``` ``` I expect this is due to the use of DateTime.Now as the seed for the default Random constructor, making this related to #3571 " +3573 area-System.Runtime Perf: Guid.NewGuid 200x slower on Linux "Perf test: ``` [Benchmark] public void NewGuid() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) for (int i = 0; i < 10000; i++) { Guid.NewGuid(); Guid.NewGuid(); Guid.NewGuid(); Guid.NewGuid(); Guid.NewGuid(); Guid.NewGuid(); Guid.NewGuid(); Guid.NewGuid(); Guid.NewGuid(); } } ``` Linux results: ``` ``` Windows results: ``` ``` " +3574 area-System.Runtime Perf: String.ToUpper and String.ToLower 3x slower on Linux "Perf test and relevant helper methods: ``` [Benchmark] [MemberData(""TestStringSizes"")] public void ToUpper(int size) { PerfUtils utils = new PerfUtils(); string testString = utils.CreateString(size); foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) for (int i = 0; i < 10000; i++) testString.ToUpper(); } public static IEnumerable TestStringSizes() { yield return new object[] { 10 }; yield return new object[] { 100 }; yield return new object[] { 1000 }; } /// /// Helper method to create a string containing a number of random /// characters equal to the specified length /// public string CreateString(int length) { byte[] bytes = new byte[length]; rand.NextBytes(bytes); return System.Convert.ToBase64String(bytes); } ``` Linux results (same for ToLower) for length=1000: ``` ``` Windows results (same for ToUpper) for length=1000: ``` ``` Results for other lengths are similar but less severe. I have excluded them for the conciseness but may post them if desired. " +3575 area-System.Net Fix a bug in Windows async sockets. Consider the following sequence of events for a SocketAsyncEventArgs `args` and a non-null `byte` buffer `buf`: 1. `args._buffer` is set to `buf` via `args.SetBuffer(buf, 0, buf.Length)` 2. Some asychronous call is made using `args` (e.g. `socket.SendAsync(args)`) 3. The asynchronous call completed 4. `args._buffer` is set to `null` via `args.SetBuffer(null, 0, 0)` 5. A GC occurs that relocates `buf`. 6. `args._buffer` is reset to `buf` via `args.SetBuffer(buf, 0, buf.Length)` 7. Another asynchronous call is made using `args` (e.g. `socket.SendAsync(args)`) - (2) will pin `buf` via a `PreAllocatedOverlapped` instance, store the instance in `args._preAllocatedOverlapped`, set `args._pinState` to `PinState.SingleBuffer`, set up a native overlapped object, and finally set `args._ptrNativeOverlapped` to a safe handle that wraps the overlapped object. - (3) will dispose the handle stored in `args._ptrNativeOverlapped` and set `args._ptrNativeOverlapped` to `null`. - (4) will call `args.FreeOverlapped`, which will dispose `args._preAllocatedOverlapped` (thus unpinning `buf`) and set `args._preAllocatedOverlapped` to `null`. `args._pinState` and related fields will not be updated: the code that does so is conditional upon `args._ptrNativeOverlapped` being non-`null`, and (3) already set the same to `null`. - (6) will call `args.CheckPinSingleBuffer`, which will observe that `args._pinState` is `PinState.SingleBuffer` and `_pinnedSingleBuffer` is the same as `_buffer` and consider the buffer already pinned. As a result, the call will not re-pin `buf`. - Because (6) did not re-pin `buf`, the asynchronous call made in (7) will reuse the address at which the buffer was located the last time it was pinned. At best, this address is no longer mapped and the call results in an AV; at worst, this address contains unknown (and potentially sensitive) data. The fix is to reset `_pinState` and related fields when `_preAllocatedOverlapped` is disposed. +3576 area-Infrastructure Is there a Resharper settings file for this coding style? I personally dislike the default R# C# coding style configuration. It would be nice to have R# configured for this coding style. Then I could use R#'s code reformatting functionality to bring code into line. :-) While the stand-alone CodeFormatter.exe is nice to have, for the rest of my team, if it isn't integrated into their VS workflow it might as well not exist. +3578 area-System.Net CURL Handler redirect fixes This commit fixes the following issues in CurlHandler w.r.t following URI redirection - Ensure that the credentials are nullified at the right place. We should not set username and/or password to null unnecessarily. - Ensure that libcurl follows only HTTPS uri if the original request was for a HTTPS URL. - Ensure that libcurl follows only a HTTPS or a HTTP uri if the original request was for a HTTP URL. +3580 area-System.Net NullReferenceException in System.Net.Sockets.Tests.Disconnect.Success on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/4466/console ``` C# Discovering: System.Net.Sockets.AsyncServer.Tests Discovered: System.Net.Sockets.AsyncServer.Tests Starting: System.Net.Sockets.AsyncServer.Tests System.Net.Sockets.Tests.Disconnect.Success [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.Windows.cs(86,0): at System.Net.Sockets.Socket.DisconnectExBlocking(IntPtr socketHandle, IntPtr overlapped, Int32 flags, Int32 reserved) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\SocketPal.Windows.cs(156,0): at System.Net.Sockets.SocketPal.Disconnect(Socket socket, SafeCloseSocket handle, Boolean reuseSocket) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(2600,0): at System.Net.Sockets.Socket.Disconnect(Boolean reuseSocket) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\Disconnect.cs(42,0): at System.Net.Sockets.Tests.Disconnect.Success() Finished: System.Net.Sockets.AsyncServer.Tests ``` cc: @davidsh, @cipop, @pgavlin +3583 area-System.Threading Timer_Change_BeforeDueTime_ChangesWhenTimerWillFire test fails A timer test failed on PR here: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/4494/testReport/junit/(root)/TimerChangeTests/Timer_Change_BeforeDueTime_ChangesWhenTimerWillFire/ MESSAGE: Should have received a timer event after this new duration Expected: True Actual: False +++++++++++++++++++ STACK TRACE: at TimerChangeTests.Timer_Change_BeforeDueTime_ChangesWhenTimerWillFire() in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Threading.Timer\tests\TimerChangeTests.cs:line 94 +3588 area-System.Collections Perf: System.Collections List, Dictionary default constructors 2x slower on Linux "Perf Tests: ``` [Benchmark] public void ctor() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) for (int i = 0; i <= 20000; i++) { new Dictionary(); new Dictionary(); new Dictionary(); new Dictionary(); new Dictionary(); new Dictionary(); new Dictionary(); new Dictionary(); new Dictionary(); } } [Benchmark] public void ctor() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) { for (int i = 0; i < 20000; i++) { new List(); new List(); new List(); new List(); new List(); new List(); new List(); new List(); new List(); new List(); new List(); new List(); new List(); new List(); new List(); } } } ``` Linux perf results for Dictionary: ``` ``` Windows perf results for Dictionary: ``` ``` Linux perf results for List: ``` ``` Windows perf results for List ``` ``` Note that these results are only for the default constructors. Results for `new Dictionary(int size)`, `new List(int size)`, and `new List(IEnumerable enumerable)` are even across platforms. I suspect we would get similar results for other collections, but I have yet to add tests for any other generic collections Confirmed these results with the old-fashioned Stopwatch-around-the-iteration-loop method. " +3590 area-System.Collections Perf: NonGeneric.HashTable default constructor 4x slower on Linux "Perf test: ``` [Benchmark] public void ctor() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) { for (int i = 0; i < 40000; i++) { new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); new Hashtable(); } } } ``` Linux results: ``` ``` Windows results: ``` ``` Probably somehow related to #3588. Confirmed results with Stopwatch. " +3591 area-System.IO Perf: Directory.GetCurrentDirectory 20% slower on Linux "Low priority, could use more investigation: Perf test: ``` [Benchmark] public void GetCurrentDirectory() { foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) for (int i = 0; i < 20000; i++) { Directory.GetCurrentDirectory(); Directory.GetCurrentDirectory(); Directory.GetCurrentDirectory(); Directory.GetCurrentDirectory(); Directory.GetCurrentDirectory(); Directory.GetCurrentDirectory(); Directory.GetCurrentDirectory(); Directory.GetCurrentDirectory(); Directory.GetCurrentDirectory(); } } ``` Linux results: ``` ``` Windows results: ``` ``` " +3592 area-System.Linq System.Linq.Parallel test hanging in Linux CI The CTT_NonSorting_AsynchronousMergerEnumeratorDispose seems to hang sometime in CI with a callstack that looks like this: ``` System.Threading.ManualResetEventSlim.Wait() System.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken) System.Linq.Parallel.AsynchronousChannelMergeEnumerator`1[[System.Int32, mscorlib]].MoveNext() System.Linq.Parallel.QueryOpeningEnumerator`1[[System.Int32, mscorlib]].MoveNext() System.Linq.Parallel.Tests.WithCancellationTests.CTT_NonSorting_AsynchronousMergerEnumeratorDispose ``` Don't really have more details. If you would like, next time see it in CI I can hold the machine for you. +3598 area-System.Reflection Make signature and attribute decoders instances This is a new take based on the discussion on closed PR #1068. There's also some small cleanup in the other two commits. I'm going to merge this if it passes CI since dev/metadata is effectively a dead-end now. I'll resurface the SignatureDecoder with these changes in a new PR to master. Having this work captured in dev/metadata will just make it easier to reconcile things after the portable PDB and SignatureDecoder are merged to master. That will leave only CustomAttributeDecoder and TypeNameParser as features in dev but not master and we should cherry-pick those over to a new branch for v1.2 dev. +3600 area-System.Net Porting System.Net.NetworkInformation and System.Net.Utilities Will squash commits and change the author prior to commit. Note to reviewers: `Initial file port` represents the action of copying files from the dev-branch. It's probably simpler to leave comments on individual commit steps. @mellinoe @davidsh @pgavlin @stephentoub PTAL /cc @vijaykota @SidharthNabar @sokket (heads-up as this might be breaking #3471) +3601 area-System.Reflection Merge master -> dev/metadata No conflicts +3607 area-System.Linq QueryEnumerable only accepts expression features prior to Framework version 4.0 "Any expression type introduced after 3.5 will fail with an `ArgumentException`: ``` C# [Fact] public void Block() { Expression block = Expression.Block( Expression.Empty(), Expression.Constant(Enumerable.Range(0, 2).AsQueryable()) ); IQueryable q = _prov.CreateQuery(block); Assert.Equal(Enumerable.Range(0, 2), q); // ""Unhandled Expression Type: Block"" } ``` Expressions that existed with 3.5, but using features from 4.0 will also fail with an `ArgumentException`: ``` C# [Fact] public void ExplicitlyTypedConditional() { Expression call = Expression.Call( typeof(Queryable), ""OfType"", new[] { typeof(long) }, Expression.Condition( Expression.Constant(true), Expression.Constant(new long?[] { 2, 3, null, 1 }.AsQueryable()), Expression.Constant(Enumerable.Range(0, 3).AsQueryable().Select(i => (long)i)), typeof(IQueryable) ) ); IQueryable q = _prov.CreateQuery(call); Assert.Equal(new long[] { 2, 3, 1 }, q); // ""Argument types do not match"" } ``` " +3609 area-System.Net GSS-API bindings Are there any plans to implement GSS-API bindings? So that services running on linux could do domain authentication. +3610 area-System.Net SendToRecvFromAsync_Single_Datagram_UDP_IPv6 failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_outerloop_windows_debug/721/console ``` Discovering: System.Net.Sockets.Tests Discovered: System.Net.Sockets.Tests Starting: System.Net.Sockets.Tests System.Net.Sockets.Tests.SendReceive.SendToRecvFromAsync_Single_Datagram_UDP_IPv6 [FAIL] Assert.Equal() Failure Expected: 0 Actual: 2037238909 Stack Trace: d:\j\workspace\dotnet_corefx_outerloop_windows_debug\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs(124,0): at System.Net.Sockets.Tests.SendReceive.SendToRecvFromAsync_Datagram_UDP(IPAddress leftAddress, IPAddress rightAddress) d:\j\workspace\dotnet_corefx_outerloop_windows_debug\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs(315,0): at System.Net.Sockets.Tests.SendReceive.SendToRecvFromAsync_Single_Datagram_UDP_IPv6() Finished: System.Net.Sockets.Tests === TEST EXECUTION SUMMARY === System.Net.Sockets.Tests Total: 6, Errors: 0, Failed: 1, Skipped: 0, Time: 2.399s ``` cc: @davidsh, @cipop, @pgavlin +3611 area-System.Net Disable SendToRecvFromAsync_Single_Datagram_UDP_IPv6 test cc: @davidsh, @cipop, @pgavlin #3610 +3614 area-System.Reflection Merge master to dev/metadata No literal conflict, but had to add bf192c7 to make buildtools happy. +3616 area-System.Globalization Fix Serbian date formats "In the following cultures sr-Cyrl-XK sr-Latn-ME sr-Latn-RS sr-Latn-XK it has wrong date pattern as ""d. M. yyyy."". the CLDR don't include spaces. the problem with that is parser get confused between the date and the time separator and fail parse these dates. these cultures has time pattern as hh.mm.ss. so we'll have date separator as "". "" and time separator as ""."". The fix is we need to remove the spaces in the date pattern to allow the parser detect such special cases and work. if we cannot fix the format then we'll need to work around this in the parser but this comes with the regression risk. " +3617 area-System.Net Fix a bug in the Socket constructor. Only the Windows constuctor was throwing the appropriate exceptions due to misplacement of the `throw` behind the PAL. The `throw` has been moved into the platform-independent code and tests have been added. +3620 area-System.Data Add Return Value for SendControlPacket in SNIMarsHandle +3621 area-System.Data Add SetBufferSize Methods To All SNIHandle Classes +3622 area-System.Data Add Async Overrides to SslOverTdsStream +3623 area-Infrastructure System.IO.Compression.Tests solution not building on Visual Studio 2015 "It does build with build.cmd, but if you open it and try to build it from the solution file with my current environment these are the errors. ``` Restoring NuGet packages... To prevent NuGet from restoring packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages during build.' System.Linq.Expressions 4.0.0 provides a compile-time reference assembly for System.Linq.Expressions on DNXCore,Version=v5.0, but there is no run-time assembly compatible with win7-x86. System.Console 4.0.0-beta-23401 provides a compile-time reference assembly for System.Console on DNXCore,Version=v5.0, but there is no run-time assembly compatible with win7-x86. System.ObjectModel 4.0.0 provides a compile-time reference assembly for System.ObjectModel on DNXCore,Version=v5.0, but there is no run-time assembly compatible with win7-x86. System.Runtime.InteropServices.RuntimeInformation 4.0.0-beta-23401 provides a compile-time reference assembly for System.Runtime.InteropServices.RuntimeInformation on DNXCore,Version=v5.0, but there is no run-time assembly compatible with win7-x86. System.Security.Cryptography.Algorithms 4.0.0-beta-23401 provides a compile-time reference assembly for System.Security.Cryptography.Algorithms on DNXCore,Version=v5.0, but there is no run-time assembly compatible with win7-x86. System.Text.RegularExpressions 4.0.0 provides a compile-time reference assembly for System.Text.RegularExpressions on DNXCore,Version=v5.0, but there is no run-time assembly compatible with win7-x86. Some packages are not compatible with DNXCore,Version=v5.0 (win7-x86). System.Linq.Expressions 4.0.0 provides a compile-time reference assembly for System.Linq.Expressions on DNXCore,Version=v5.0, but there is no run-time assembly compatible with win7-x64. System.Console 4.0.0-beta-23401 provides a compile-time reference assembly for System.Console on DNXCore,Version=v5.0, but there is no run-time assembly compatible with win7-x64. System.ObjectModel 4.0.0 provides a compile-time reference assembly for System.ObjectModel on DNXCore,Version=v5.0, but there is no run-time assembly compatible with win7-x64. System.Runtime.InteropServices.RuntimeInformation 4.0.0-beta-23401 provides a compile-time reference assembly for System.Runtime.InteropServices.RuntimeInformation on DNXCore,Version=v5.0, but there is no run-time assembly compatible with win7-x64. System.Security.Cryptography.Algorithms 4.0.0-beta-23401 provides a compile-time reference assembly for System.Security.Cryptography.Algorithms on DNXCore,Version=v5.0, but there is no run-time assembly compatible with win7-x64. System.Text.RegularExpressions 4.0.0 provides a compile-time reference assembly for System.Text.RegularExpressions on DNXCore,Version=v5.0, but there is no run-time assembly compatible with win7-x64. Some packages are not compatible with DNXCore,Version=v5.0 (win7-x64). NuGet package restore failed. 1>------ Build started: Project: System.IO.Compression, Configuration: Linux_Debug Any CPU ------ 1> System.IO.Compression -> G:\CoreCLR\corefx\bin\Linux.AnyCPU.Debug\System.IO.Compression\System.IO.Compression.dll 2>------ Build started: Project: System.IO.Compression.Tests, Configuration: Debug Any CPU ------ 2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3274: The primary reference ""G:\CoreCLR\corefx\packages/Microsoft.DotNet.xunit.performance\1.0.0-alpha-build0022\lib\dotnet\xunit.performance.core.dll"" could not be resolved because it was built against the "".NETPortable,Version=v5.0"" framework. This is a higher version than the currently targeted framework "".NETPortable,Version=v4.5,Profile=Profile7"". 2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3275: The primary reference ""G:\CoreCLR\corefx\packages/Microsoft.DotNet.xunit.performance\1.0.0-alpha-build0022\lib\dotnet\xunit.performance.execution.dotnet.dll"" could not be resolved because it has an indirect dependency on the assembly ""xunit.performance.core, Version=1.0.0.22, Culture=neutral, PublicKeyToken=67066efe964d3b03"" which was built against the "".NETPortable,Version=v5.0"" framework. This is a higher version than the currently targeted framework "".NETPortable,Version=v4.5,Profile=Profile7"". 2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3274: The primary reference ""G:\CoreCLR\corefx\packages/Microsoft.DotNet.xunit.performance\1.0.0-alpha-build0022\lib\dotnet\xunit.performance.execution.dotnet.dll"" could not be resolved because it was built against the "".NETPortable,Version=v5.0"" framework. This is a higher version than the currently targeted framework "".NETPortable,Version=v4.5,Profile=Profile7"". 2> System.IO.Compression.Tests -> G:\CoreCLR\corefx\bin\Windows_NT.AnyCPU.Debug\System.IO.Compression.Tests\System.IO.Compression.Tests.dll ========== Build: 2 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== ``` From the error message it looks like there are issues with some of the dependencies. How build.cmd manages to work is a mystery at least to me (unless it is not building the Test projects). > dnvm list > > ``` > Active Version Runtime Architecture Location Alias > ------ ------- ------- ------------ -------- ----- > 1.0.0-beta7 clr x86 C:\Users\Federico\.dnx\runtimes default > 1.0.0-beta7 coreclr x64 C:\Users\Federico\.dnx\runtimes > * 1.0.0-rc1-15779 coreclr x64 C:\Users\Federico\.dnx\runtimes > ``` Any idea on how to solve this? " +3624 area-System.Data Improve Managed SNI Performance With Async Delegate Caching +3625 area-System.Net Beta 8 blocker: IPAddress.ToString and .Parse fails on OS X with DNX "Example program: ``` csharp using System; using System.Net; namespace Test { public class Program { public void Main(string[] args) { System.Console.WriteLine(""Test!""); IPAddress.Loopback.ToString(); // Parse also causes the process to crash var ipAddress = IPAddress.Parse(""1.1.1.1""); Console.WriteLine(""IP address: {0}"", ipAddress); } } } ``` Stack Trace: ``` System.Net.Sockets.SocketException: Input/output error at System.Net.IPAddressParser.IPv4AddressToString(Byte[] numbers) at System.Net.IPAddress.ToString() at Test.Program.Main(String[] args) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider) at Microsoft.Dnx.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args) at Microsoft.Dnx.ApplicationHost.Program.Main(String[] args) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider) at Microsoft.Dnx.Host.Bootstrapper.RunAsync(List`1 args, IRuntimeEnvironment env, String appBase, FrameworkName targetFramework) at Microsoft.Dnx.Host.RuntimeBootstrapper.ExecuteAsync(String[] args, BootstrapperContext bootstrapperContext) at Microsoft.Dnx.Host.RuntimeBootstrapper.Execute(String[] args, BootstrapperContext bootstrapperContext) ``` There is no exception or stack trace from “IPAddress.Parse(""1.1.1.1"")”. The process just crashes. Use the latest DNX (`dnx-coreclr-darwin-x64.1.0.0-beta8-15794`) from `aspnetrelease` feed. There's a reference issue that we're fixing that you'll need to workaround. Just copy `runtime.unix.Microsoft.Win32.Primitives/4.0.1-beta-23326/lib/dotnet/Microsoft.Win32.Primitives.dll` over to `~/.dnx/runtimes/dnx-coreclr-darwin-x64.1.0.0-beta8-15794/bin/` cc @halter73 @Eilon @davidfowl @brennanconroy " +3629 area-System.Data Fix the System.Net.Sockets version on SqlClient We have changed the version of the System.Data.SqlClient to use System.Net.Sockets 4.0.10-beta-\* from 4.0.10.0 This was happening due to a runtime error while resolving 4.0.10.0 This needs to be investigated. https://github.com/dotnet/corefx/pull/3567 +3630 area-System.IO RenamedTests.FileSystemWatcher_Moved_NestedDirectoryRoot failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release_prtest/4559/console ``` RenamedTests.FileSystemWatcher_Moved_NestedDirectoryRoot [FAIL] System.UnauthorizedAccessException : Access to the path '\\?\d:\j\workspace\dotnet_corefx_windows_release_prtest\bin\tests\Windows_NT.AnyCPU.Release\System.IO.FileSystem.Watcher.Tests\dnxcore50\FileSystemWatcher_Moved_NestedDirectoryRoot\test_root' is denied. Stack Trace: at System.IO.Win32FileSystem.RemoveDirectoryHelper(String fullPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound) at System.IO.Win32FileSystem.RemoveDirectory(String fullPath, Boolean recursive) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.IO.FileSystem.Watcher\tests\Utility\TemporaryTestDirectory.cs(32,0): at TemporaryTestDirectory.Dispose() d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.Renamed.cs(122,0): at RenamedTests.FileSystemWatcher_Moved_NestedDirectoryRoot() ``` +3633 area-System.Xml XSD Validation Support - Missing? As I [posted earlier on StackOverflow](http://stackoverflow.com/questions/32872684/how-do-i-validate-xml-against-xsd-separate-documents-in-dnx-core-5-0-asp-net?noredirect=1#comment53665404_32872684), I am attempting to port some older code to DNX core 5.0, but it seems that XSD validation support is missing from the library. Or if I am wrong, could someone please provide a sample or point me to the correct document that shows how to validate XML against XSD (separate documents). +3634 area-System.Drawing Which is the System.Drawing replaement? Hi, guys. I have a question... which way is to create images in .net core? +3635 area-System.Net Enable the SocketPerformance tests ``` System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests.SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync [FAIL] 04:31:37 Test execution is expected to be shorter than 10000 but was 27753 04:31:37 Expected: True 04:31:37 Actual: False 04:31:37 Stack Trace: 04:31:37 d:\j\workspace\dotnet_corefx_outerloop_windows_win10_debug\src\Common\tests\System.Net\Sockets\Performance\SocketPerformanceTests.cs(63,0): at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.ClientServerTest(Int32 port, SocketImplementationType serverType, SocketImplementationType clientType, Int32 iterations, Int32 bufferSize, Int32 socketInstances, Int64 expectedMilliseconds) 04:31:37 d:\j\workspace\dotnet_corefx_outerloop_windows_win10_debug\src\Common\tests\System.Net\Sockets\Performance\SocketPerformanceTests.cs(77,0): at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.ClientServerTest(SocketImplementationType serverType, SocketImplementationType clientType, Int32 iterations, Int32 bufferSize, Int32 socketInstances, Int64 expectedMilliseconds) 04:31:37 d:\j\workspace\dotnet_corefx_outerloop_windows_win10_debug\src\System.Net.Sockets\tests\PerformanceTests\SocketPerformanceAsyncTests.cs(60,0): at System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests.SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync() ``` cc: @davidsh, @cipop, @pgavlin +3636 area-System.ComponentModel Any chance to integrate functionality from System.ComponentModel.Composition? "A lot of `System.Composition` code has been [merged recently](https://github.com/dotnet/corefx/pull/1851), and lines up with the MEF 2 code from codeplex. Is any of the code from `System.ComponentModel.Composition` likely to be integrated? I have an old codebase that I've been refactoring and splitting out into separate components, and for some scenarios, I've had to use `System.ComponentModel.Composition` instead of the `System.Composition` package available from Nuget. The main justification behind our switch was that the `CompositionContainer` supports `ComposeExportedValue(T exportedValue)` while the `CompositionHost` doesn't. Being able to explicitly export an _existing_ object instance can be useful when the full architecture isn't adjustable. While it's not exactly the purest of approaches, in some scenarios a little flexibility goes a long way. `System.Composition` [""has been optimized for static composition scenarios and provides faster compositions""](http://mef.codeplex.com/). There are some scenarios where the alternative structure is a better fit, if less streamlined. We've also considered making this project cross-platform, which makes its presence in the OSS .NET Core desirable for us. I bring this up because `System.ComponentModel` is [marked as ""done"" on the progress chart](https://github.com/dotnet/corefx-progress/blob/master/src-diff/README.md), but `System.ComponentModel.Composition` isn't listed at all. With the integration of `System.Composition`, I'm concerned that this is something that's not even being considered and it might end up ignored by default. This also brings up the concern of whether merging namespaces would be feasible. Having multiple namespaces around isn't exactly ideal from a usability perspective, but changing them would be a compatibility issue. It's also possible that there's some code duplication between the two, at least as far as the attributes go. Discarding the old namespace for us is feasible - we want it for the functionality, but we're not attached to the namespace and are open to recompiling. If I've somehow missed the introduction of equivalent functionality, please enlighten me. " +3638 area-System.Net Fixed Renegotiate & sslV3 issue in System.Net.Security xplat. Made op… 1. Fixed xplat Renegotiate in both code path, as server & as client. 2. Fixed SSLv3 Decrypt. Now we understand Error_Want_Read & handle accordingly. 3. Various SSL method IntPtr are now being referenced once statically. +3641 area-System.Net UdpClientTest.BeginSend_Success failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/4595/console ``` System.Net.Sockets.Tests.UdpClientTest.BeginSend_Success [FAIL] System.Net.Sockets.SocketException : An address incompatible with the requested protocol was used Stack Trace: d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(3217,0): at System.Net.Sockets.Socket.DoBeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint endPointSnapshot, SocketAddress socketAddress, OverlappedAsyncResult asyncResult) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(3162,0): at System.Net.Sockets.Socket.BeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback callback, Object state) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\UDPClient.cs(598,0): at System.Net.Sockets.UdpClient.BeginSend(Byte[] datagram, Int32 bytes, IPEndPoint endPoint, AsyncCallback requestCallback, Object state) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\tests\FunctionalTests\UdpClientTest.cs(59,0): at System.Net.Sockets.Tests.UdpClientTest.BeginSend_Success() ``` cc: @cipop, @pgavlin, @davidsh +3642 area-System.Data Move strings to .Resx for managed SNi in Sql Client if needed Refer PR https://github.com/dotnet/corefx/pull/3567 Move the strings in Managed SNI to .resx if needed +3644 area-System.Net Remove dead code in S.N.Sockets.Socket. Just what it says on the tin. +3645 area-System.Net Add argument validation tests for S.N.Sockets. These tests cover the validation of input arguments for all public methods on the Socket class. +3646 area-System.Net UriBuilder.Query property setter is not idempotent "The `UriBuilder.Query` property setter prepends the supplied value with a `?` character, even if the supplied value already starts with `?`. https://github.com/dotnet/corefx/blob/41e203011152581a6c65bb81ac44ec037140c1bb/src/System.Private.Uri/src/System/UriBuilder.cs#L277 This means that code calling the `Query` setter has to check to ensure the value it's passing doesn't already have the question mark even when hoping to simply append to the end of the query. Here's example code that suffers from the issues this surfaces: ``` csharp var uri = new UriBuilder(""http://localhost/page?param1=foo""); if (someOption) { uri.Query += ""&someOption=true""; } ``` Expected value of uri.Query: `?param1=foo&someOption=true` Actual value of uri.Query: `??param1=foo&someOption=true` " +3647 area-System.Net Make UriBuilder.Query setter idempotent Fixes #3646 in a way that is hopefully determined to be backwards compatible. +3648 area-System.Net Add Tcp{Client,Listener} and UdpClient SendReceive tests. This exercises NetworkStream as well as the aforementioned types. +3654 area-System.Net Editing Socket References Some constructors that are doing complex operations (like interop or trying to connect over the network) are removed. APM methods are removed and replaced by TPL equivalent methods. +3655 area-System.Net Editing Socket References Some constructors that are doing time consuming operations for constructors (like interop or trying to connect over the network) are removed. APM methods are removed and replaced by TPL equivalent methods. +3656 area-Infrastructure Instructions for using custom CoreFX with CLI I have made some changes to the CoreFX for SqlClient and I want to test those changes with an application which is executed using DNX. How do I achieve this? I have found some Windows instructions for creating custom DNX by a custom CoreCLR build at https://github.com/dotnet/coreclr/blob/master/Documentation/building/custom-dnx-instructions.md I couldn't find anything about CoreFX. I tried to replace the dlls in the DNX runtime folder with the CoreFX build, but the application fails to run silently without any console output. +3660 area-System.Net Update test namespaces in System.Net.Requests Update test namespaces in System.Net.Requests per #2898. Clean up `using`s. +3661 area-System.IO Word spelling problem with “occurred” https://github.com/dotnet/corefx/search?utf8=%E2%9C%93&q=occured +3664 area-System.Net Disable socket perf tests These are currently in outer loop, but they're sporadically failing due to lack of appropriate infrastructure to accurately run and measure them. cc: @pgavlin, @CIPop, @davidsh +3667 area-System.Security System.Security.Claims.Claim..ctor parameter checks are too restrictive in CoreCLR There is a behaviour difference in `System.Security.Claims.Claim...ctor` that got introduced in CoreCLR but this check does not exist in Desktop. As such, there are scenarios such as creating an anonymous identity (i.e., GenericIdentity with no subject name) that now breaks in CoreCLR. Sample Repro: ``` public static void Main() { System.Security.Principal.GenericIdentity identity = new System.Security.Principal.GenericIdentity(string.Empty); } ``` The difference is a change in the way the System.Security.Claims.Claim constructor works - the empty string (valid value in desktop) is now treated the same as null (an invalid value), and therefore the call fails with the exception below ``` System.ArgumentNullException : Value cannot be null. Parameter name: value Stack Trace: at System.Security.Claims.Claim..ctor(String type, String value, String valueType, String issuer, String originalIssuer, ClaimsIdentity subject, String propertyKey, String propertyValue) at System.Security.Principal.GenericIdentity.AddNameClaim() ``` This was discovered while testing basic WCF net.tcp scenarios and is considered a major blocker for WCF. dotnet/wcf#387 tracks fixing this issue in the WCF repo cc: @joshfree +3669 area-System.IO GZipStream & DeflateStream calling Flush after write or read is not equivalent to calling Dispose. `.Dispose()` will purge buffers and finish writing data while `.Flush()` will not force that to happen. While in other Streams the `.Flush()` call will ensure that all the data is written, it is not the case for `GZipStream` and `DefrateStream`. For example if we modify `RoundtripCompressDecompress` in the `System.IO.Compression.Tests` project in the following way, all tests using it will fail. ``` csharp private async Task RoundtripCompressDecompress(bool useAsync, bool useGzip, int chunkSize, int totalSize, CompressionLevel level) { byte[] data = new byte[totalSize]; new Random(42).NextBytes(data); var compressed = new MemoryStream(); var compressor = useGzip ? (Stream)new GZipStream(compressed, level, true) : new DeflateStream(compressed, level, true); { for (int i = 0; i < data.Length; i += chunkSize) // not using CopyTo{Async} due to optimizations in MemoryStream's implementation that avoid what we're trying to test { switch (useAsync) { case true: await compressor.WriteAsync(data, i, chunkSize); break; case false: compressor.Write(data, i, chunkSize); break; } } } compressor.Flush(); compressed.Position = 0; var decompressed = new MemoryStream(); var decompressor = useGzip ? (Stream)new GZipStream(compressed, CompressionMode.Decompress, true) : new DeflateStream(compressed, CompressionMode.Decompress, true); { if (useAsync) decompressor.CopyTo(decompressed, chunkSize); else await decompressor.CopyToAsync(decompressed, chunkSize, CancellationToken.None); } decompressor.Flush(); Assert.Equal(data, decompressed.ToArray()); compressor.Dispose(); decompressor.Dispose(); } ``` That means that `GZipStream` & `DefrateStream` will not finish writing until they are effectively disposed (which could take some time if `.Dispose()` is not called immediately) and may also fail if chained. This is particularly relevant for https://github.com/dotnet/corefx/issues/1991 (cc @stephentoub) +3671 area-System.Net Fix async abort behavior for *nix accept(). Aborted accept attempts are currently returning an accepted file descriptor of 0 instead of the proper -1. This change corrects this behavior. +3672 area-System.Runtime Perf: String.StartsWith Linux regression from 1x speed to 100x speed "The perf test and all applicable helper methods: ``` [Benchmark] [MemberData(""TestStringSizes"")] public void StartsWith(int size) { PerfUtils utils = new PerfUtils(); string testString = utils.CreateString(size); string subString = testString.Substring(0, testString.Length / 4); foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) for (int i = 0; i < 10000; i++) testString.StartsWith(subString); } public static IEnumerable TestStringSizes() { yield return new object[] { 10 }; yield return new object[] { 100 }; yield return new object[] { 1000 }; } /// /// Helper method to create a string containing a number of random /// characters equal to the specified length /// public string CreateString(int length) { byte[] bytes = new byte[length]; rand.NextBytes(bytes); return System.Convert.ToBase64String(bytes); } ``` Linux results after regression (today, 10/6/2015) ``` ``` Windows results: ``` ``` Linux results before Regression: (Unfortunately these are from before I was recording dates with my results, so I'm not sure when they're from or even how valid they are - the important thing is moreso the current Linux results vs Windows) ``` ``` I verified the results from today with a Console App and received the same results as with the xunit perf runner. My first guess is that this has something to do with https://github.com/dotnet/coreclr/pull/1632. " +3673 area-System.Net WinHttpHandler client SSL certificate fixes and tests "Fixed a couple of bugs discovered in WinHttpHandler where it was not sending out client SSL certificates. Changed the final parameter to the X509Certificate2Collection.Find() method to false. I had originally set this parameter to true. The parameter tells the .Find() API to only select ""valid"" certificates from the collection. The problem is that ""valid"" also means ""trusted by the client"". But a lot of client SSL certificates are not trusted by the client. They are only trusted by the server since many servers issue client certificates based on a different trust root. Added more tests for client SSL certificates. " +3674 area-System.Net WebSocket concurrent Send/ReceiveAsync semantics unclear As observed by @mkosieradzki different WebSocket implementations have different behaviour when it comes to concurrent Send/ReceiveAsync operations: see https://github.com/aspnet/WebSockets/issues/42 I am creating a matching issue here since the semantics should be specified at the WebSocket level, so a user of a 'WebSocket' doesn't need to know what library provided the implementation. \cc @davidfowl @Tratcher +3680 area-System.Net Add more tests for System.Net.Http library "Ported more HTTP related tests. These tests focus mostly on POST scenarios mixed with authentication, pre-authentication, and the ""rewind-ability"" of content if it needs to be re-POST'd due to AUTH challeges by the server. Added a new HttpTestServers2 class to Common/tests/System/Net. This is a point-in-time thing as we improve the test infrastructure capability. In particular, we are moving away from the use of the ""httpbin.org"" server. Our new networking test server that we are bringing up has more features than httpbin.org. It can support all the main HTTP verbs when doing ""echo"" of request headers. It includes a ""Content-MD5"" HTTP response header. This contains a hash of the response body. This makes it easier to validate the returned payloads. The ""httpbin.org"" server also has a bug where it does not properly echo chunked upload headers which was causing issues when trying to port these tests. I did not change other networking tests still using ""httpbin.org"" and the Common HttpTestServers class. I will be doing that later as we finalize the test infrastructure. " +3682 area-System.Net ConnectAsyncV4IPEndPointToDualHost_Succes failed in CI on Linux http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/3091/console ``` System.Net.Sockets.Tests.DualMode.ConnectAsyncV4IPEndPointToDualHost_Success [FAIL] 16:16:16 System.Net.Sockets.SocketException : Unknown error 10054 16:16:16 Stack Trace: 16:16:16 at System.Net.Sockets.Tests.DualMode.DualModeConnectAsync_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer) 16:16:16 at System.Net.Sockets.Tests.DualMode.ConnectAsyncV4IPEndPointToDualHost_Success() ``` cc: @cipop, @pgavlin, @davidsh +3688 area-System.Data Better API for ADO.NET command batching "ADO.NET currently supports batching several statements in one command by packing them into a single string as follows: ``` c# cmd.CommandText = ""UPDATE message SET text = $text1 WHERE id = 1;"" + ""UPDATE message SET text = $text2 WHERE id = 2""; ``` While workable, it's a problematic API. The PostgreSQL protocol, for example, needs to send each single SQL statement as a separate protocol message, forcing Npgsql to split CommandText by semicolon at the client side, a pretty complex task (need to understand when the semicolon is quoted, etc.). It would be much better to provide a list-based API, where the user provides, say, an array of strings. A specific provider can still choose to join by semicolon if needed, but this should be done at the provider level rather than by the user. For backwards compatibility, the CommandText property would still support the legacy semicolon batching mode. A boolean LegacyBatchingMode connection string parameter, true by default, could be turned off to disable it (thereby removing the client-side SQL parsing in Npgsql, etc.). " +3689 area-System.Threading RunThreadLocalTest8_Values failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release_prtest/4721/console ``` System.Threading.Tests.ThreadLocalTests.RunThreadLocalTest8_Values [FAIL] RunThreadLocalTest8_Values: Expected values to contain both previous values and 1000 new values Expected: True Actual: False Stack Trace: d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Threading\tests\ThreadLocalTests.cs(259,0): at System.Threading.Tests.ThreadLocalTests.RunThreadLocalTest8_Values() ``` +3690 area-System.Security Consider what a LocalMachine\My X509Store might be on Unix Largely there's a permissions problem. - File writes, without reaching into the PAL directly, are done as rwx------ - Windows has the flexible administrator concept, Unix has root. - There's sometimes the group wheel, but that's not universal. - Windows has different permissions for reading private keys and public keys There's a possibility of having someone create /etc/dotnet/corefx/cryptography/x509stores, setting the group to whatever they want, giving the group write permission, and then we could start making use of that... but it's not as obvious as how to do it on Windows. +3691 area-Infrastructure project.lock.json files are all out of date as of yesterday afternoon. - git checkout master (no local changes) - build.cmd - git status - Ponder the sea of red as the build process made local changes to every project.lock.json file in the project. I assume fixing this is just a matter of checking in those changes, but since I don't know what caused it, I'm not blindly sticking my head out either. +3693 area-System.Net PostNonRewindableContentUsingAuth_NoPreAuthenticate_ThrowsInvalidOperationException fails on Linux System.Net.Http.Functional.Tests: Reference PR: #3680 Reference build: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_prtest/4926/ PostNonRewindableContentUsingAuth_NoPreAuthenticate_ThrowsInvalidOperationException looks like it's failing because it's expecting an InvalidOperationException but is getting an HttpRequestException. The InvalidOperationException should not be wrapped within a HttpRequestException by CurlHandler. See WinHttpHandler. It only wraps WinHttpException and IOException. WinHttpHandler also matches .NET Desktop. +3695 area-System.Net PostNonRewindableContentUsingAuth_PreAuthenticate_Success fails on Linux "System.Net.Http.Functional.Tests: Reference PR: #3680 Reference build: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_prtest/4926/ PostNonRewindableContentUsingAuth_PreAuthenticate_Success is failing with a CurlException ""Send failed since rewinding of the data stream failed"". This is failing because it is trying to rewind a non-rewindable stream. BUT it shouldn't be attempting that. It shouldn't need to rewind the stream because the POST should succeed right away. This tells me that the .PreAuthenticate feature in the Linux version of the Handler (CurlHandler) is broken. The test is issuing a HEAD request first which should ""warm up"" the authentication for the .PreAuthenticate=true. But it looks like it is broken. Also, the CurlHandler should NOT be rewinding the stream on its own. Only the HttpContent class do that as part of the contract for SerializeToStreamAsync(). See StreamContent.cs in the Http Library. I see that the Linux code might be calling Seek to rewind the content to re-POST it. That itself shouldn't happen because only the StreamContent class is responsible for rewinding itself. The handlers are NOT supposed to rewind the content on their own. I suspect that the CurlHandler is doing this because one of the tests is failing with a CurlHandler specific message: ""Send failed since rewinding of the data stream failed"". That code probably needs to change in CurlHandler. There shouldn't be a separate string resource for this error since CurlHandler shouldn't be rewinding content. " +3696 area-System.Net Added exception messages to *.resx file. using Debug.Fail wherever ap… 1. Added exception messages to *.resx. Using the SR now. 2. using Debug.Fail/Assert wherever deemed fit. 3. Fixed GetException() method. +3697 area-System.Net Add retry pattern for tests that rely on TCP/UDP > As a design change, we should extract a common config for Sockets tests and consolidate all configuration parameters there. We should include a retry pattern/internal API for tests that rely on TCP stack defaults (in case we see those fail). See https://github.com/dotnet/corefx/issues/3504 for more details. +3698 area-System.Globalization "[Linux] Incorrect output for ""g"" custom `DateTimeOffset` format specifier" "The following statement behaves differently on Windows and Linux when `CultureInfo.CurrentCulture` is `new Culture(""en-GB"")`. See [full test application](https://github.com/dougbu/CultureInfo) for more context. ``` c# Console.WriteLine(""Formatted now '{0:dddd, yyyy/MM/dd/ g}'."", DateTimeOffset.Now); ``` On Windows using either `dnx451` or `dnxcore50` and on Linux using `dnx451` (i.e. Mono), the output is: ``` Formatted now 'Wednesday, 2015/10/07/ A.D.'. ``` However on Linux using `dnxcore50`: ``` Formatted now 'Wednesday, 2015/10/07/ AD'. ``` Note periods are missing in Linux / `dnxcore50` output. Not sure if other custom (or standard) format specifiers behave differently on Linux in some locales. --- OS: Ubuntu 14.04.3 LTS DNX: 1.0.0-rc1-15837 System.Globalization/4.0.11-beta-23405 System.Globalization.Extensions/4.0.1-beta-23405 System.Runtime/4.0.21-beta-23405 " +3699 area-System.Net PostRewindableContentUsingAuth_NoPreAuthenticate_Success is failing with a NotImplementedException on Linux "System.Net.Http.Functional.Tests: Reference PR: #3680 Reference build: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_prtest/4926/ PostRewindableContentUsingAuth_NoPreAuthenticate_Success is failing with a NotImplementedException. See original discuss on PR #3680. But CurlHandler should not be using `Seek` to rewind the HttpContent request body. Instead, it should use the HttpContent.CopyToAsync() API to have the content serialize itself. @stephentoub (GitHub seems to hiding your comment so I'm re-quoting it here) > Thanks for the explanation, David. > Yes, libcurl provides a CURLOPT_SEEKFUNC callback. According to the docs, ""this function gets called by libcurl to seek to a certain position in the input stream and can be used to fast forward a file in a resumed upload (instead of reading all uploaded bytes with the normal read function/callback). It is also called to rewind a stream when data has already been sent to the server and needs to be sent again. This may happen when doing a HTTP PUT or POST with a multi-pass authentication method, or when an existing HTTP connection is reused too late and the server closes the connection."" We implement that callback by checking if the Stream's CanSeek is true, and if it is, calling Seek, otherwise we inform libcurl that the Stream isn't seekable: > https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs#L851-L859 > What would you recommend we do here instead? The CurlHandler is not supposed to be rewinding the HttpRequestMessage.Content streams. It should be simply using the HttpContent contract APIs to tell the HttpContent to ""serialize"" itself. The HttpContent object is responsible for determining how to do that. The CurlHandler should not be directly retrieving a stream from the HttpContent. Instead the HttpContent is told to serialize itself to a some ""Http Request Stream"". And it does that via the its `CopyToAsync` method. See code in WinHttpHandler for example: ``` c# // Send request body if present. if (state.RequestMessage.Content != null) { using (var requestStream = new WinHttpRequestStream(requestHandle, chunkedModeForSend)) { await state.RequestMessage.Content.CopyToAsync( requestStream, state.TransportContext).ConfigureAwait(false); requestStream.EndUpload(); } } ``` " +3700 area-System.Net Increasing timeout values for sockets tests. Increasing timeout values for sockets tests and attempting to fix protocol issue in UdpClientTests. #3504, #3641 @pgavlin @stephentoub @davidsh PTAL +3705 area-System.ComponentModel TypeDescriptor.GetConverter, what is the expected result if there is no converter? in https://github.com/dotnet/corefx/blob/master/src/System.ComponentModel.TypeConverter/tests/TypeDescriptorTests.cs I notice: `Assert.NotNull(converter);` on line 17. Based on my limited exploratory testing in .NET 4.5 I can't seem to get this method to ever return null. It always seems to at least return an instance of `System.ComponentModel.TypeConverter` (if a better converter cannot be found). Is this test over specified (and somewhere something is missing to ensure a contract on the method) or is there some way to make that method return null (a missing test case)? +3707 area-System.Net Bring x-plat work for System.Net.NetworkInformation into dev branch "I've merged all of my existing work against corefx/master, and moved into a dev/ni-xplat branch. Changes to the shared code were mainly limited to the project file (splitting things into separate sections), and introducing a few ""Pal"" files, which contain platform-specific redirections for the various global accessors we expose in this library. # Shimming I have shim'd out the implementation of interface address discovery and enumeration (getifaddrs), and have built on top of that in LinuxNetworkInterface and OsxNetworkInterface. I intend to introduce more shim'd methods for OSX's statistics querying, as I believe it can be used on BSD systems as well (sysctl). --- As of right now, most of the following types are implemented. Some may have some members which are not implemented, but the majority are unless I've noted otherwise. # Linux NetworkInterface - IPInterfaceStatistics - Address collections - NOTE: Most of the properties on these are not supported - IPInterfaceProperties IPGlobalProperties - All of the protocol statistics - DomainName, HostName, etc (instance properties) - Address collections # OSX NetworkInterface - Only enumerating interfaces and addresses (shared code with Linux) # Unimplemented NetworkChange is not at all implemented yet. I do not know of a good way to hook a notification for this yet. Everything is still stubbed out on OSX currently. I have some idea how to implement the majority of the statistics queries, which should be portable as well. " +3708 area-System.Diagnostics Debug.Assert(false) does not behave as expected compared to full CLR Redirecting issue https://github.com/aspnet/dnx/issues/2778 This is what we see in full CLR: ![image](https://cloud.githubusercontent.com/assets/924164/10353329/61ebdb1e-6d0a-11e5-8719-efbc0f723fb6.png) CoreCLR does not give the user the option to ignore the problem or to attach a debugger to the process. +3709 area-System.Net Beta 8 blocker: System.Net.Sockets nuget package authoring needs to be updated to support xplat We're not producing runtime packages for System.Net.Sockets. This means that whatever version you restore via DNX will be windows specific. /cc @chcosta @ericstj @saurabh500 +3710 area-System.Net Implement NetworkStream.ReadAsync/WriteAsync "NetworkStream currently implements its async functionality via the APM Begin/EndRead/Write methods. In the full Framework, the base Stream exposes these methods as well, as virtual, and NetworkStream's override the base ones. Then the base Stream's ReadAsync/WriteAsync implementations use these for their implementation, which means NetworkStream gets at least a basic async ReadAsync/WriteAsync implementation ""for free"". In corefx, however, Stream doesn't expose the Begin/End methods, which means NetworkStream's Begin/End methods don't override them, which means NetworkStream's ReadAsync/WriteAsync methods are currently just using the base implementation that queues a work item to call the synchronous Read/Write methods. That's far from ideal for a stream focused on I/O with high latency. This commit just adds basic implementations of NetworkStream.ReadAsync/WriteAsync that use TPL's FromAsync methods to delegate to the Begin/End methods, very similar to how the base class would have. There are currently no unit tests for NetworkStreamin the repo, so I haven't added any yet for these new methods. However, there is an existing functional test that does use ReadAsync/WriteAsync, so they're getting at least some coverage. cc: @cipop, @davidsh, @pgavlin " +3711 area-System.Net Beta 8 blocker: System.Net.Security nuget package authoring needs to be updated to support xplat Same issue as https://github.com/dotnet/corefx/issues/3709 only for System.Net.Security.dll /cc @bartonjs @chcosta @ericstj +3715 area-System.Net Pending features/comments in xplat NegotiateStream 1.1 Get the correct library to use on OSX and update Interop.Libraries.cs +3716 area-Meta Inconsistent versioning When you build the CoreFX assemblies and you put them altogether, you realize that there are some inconsistent version number. For example System.Console.dll requires System.Runtime version 4.0.20 but System.Runtime is version 4.0.21. Ideally it would be nice if all the generated assemblies were consistent with respect to the version. +3717 area-System.Net Investigate feasibility of supporting NTLM protocol on non-Windows platforms Ubuntu distribution ships with a libheimntlm. Need to see if something similar is available for OSX as well. There may be other pieces needed to make NTLM work meaningfully on non-Windows (maybe winbind etc.) +3718 area-System.Net Investigate feasibility of supporting NegotiateStream channel bindings on non-Windows platforms The gss_init_sec_context and gss_accept_sec_context APIs take channel binding as input. This support needs to be understood. This would be useful for NegotiateStream.Authenticate\* APIs +3720 area-System.Net Remove unnecessary scheme check in CurlHandler CurlHandler is explicitly checking to ensure that the request URI scheme is either http or https. HttpClient already does this check before getting to this point, WinHttpHandler doesn't do the duplicative check, and even if a bad scheme sneaks in, our subsequent usage of libcurl will enforce that only http/htps are used. Removing the check. Fixes #3322 cc: @kapilash +3722 area-System.Net Remove unnecessary TODO in CurlHandler This is handled by HttpClient. Fixes #3268 cc: @kapilash +3724 area-System.Net Renable some HttpWebResponse tests Modify tests checking for presence/absence of 'Content-Type' response headers. Switch to using the new HttpTestServers2 class which supports these kind of endpoints. Simplify the tests to be [Fact] and not [Theory]. These tests don't require to be run against both HTTP and HTTPS servers. I will be making these kinds of changes further in order to streamline the number of tests running in CI. This PR also fixes #2385. +3725 area-System.Net HttpRequestMessage multiple-send checking should be done in HttpMessageInvoker From https://github.com/dotnet/corefx/issues/3268#issuecomment-146564360 > it seems that we made a mistake when we did this. We should actually be checking for this in the HttpMessageInvoker base class SendAsync (which is public). Most people just use HttpClient to invoke the handlers. But simple scenarios can use the HttpMessageInvoker as well. That class was created as way to invoke the handler's SendAsync() method without a lot of overhead of HttpClient. The actual handler SendAsync() method is protected and can't be invoked directly. But HttpMessageInvoker is able to call that method being the handler's method is actually marked protected internal and not just protected. +3726 area-System.Net System.Net.Sockets tests will behave differently when running in an elevated (admin) context ``` Discovering: System.Net.Sockets.Tests (TaskId:239) Discovered: System.Net.Sockets.Tests (TaskId:239) Starting: System.Net.Sockets.Tests (TaskId:239) System.Net.Sockets.Tests.CreateSocket.Ctor_Failure(addressFamily: InterNetwork, socketType: Raw, protocolType: Tcp) [FAIL] (TaskId:239) Assert.Throws() Failure (TaskId:239) Expected: typeof(System.Net.Sockets.SocketException) (TaskId:239) Actual: (No exception was thrown) (TaskId:239) Stack Trace: (TaskId:239) D:\git\corefx\packages\Microsoft.DotNet ``` I'm hitting this failure consistently on my local machine any ideas of what is happening? +3727 area-System.Net Add more HTTP tests Ported some missing tests to GitHub. Cleaned up some of the existing tests. +3728 area-System.Net Merge changes from TFS +3729 area-System.Net WinHttpHandler MaxConnectionsPerServer default value Currently: ``` C# Assert.Equal(Int32.MaxValue, handler.MaxConnectionsPerServer); ``` Opening this issue to discuss if this is the correct behavior given the RFC recommendation of a max of 2 connections/server and browser current settings of about 6-10 connections/server. Throwing in a few articles about this: http://stackoverflow.com/questions/985431/max-parallel-http-connections-in-a-browser http://www.stevesouders.com/blog/2008/03/20/roundup-on-parallel-connections/ My proposal is to switch this to a smaller number, maybe something that's similar to what most modern browsers do today. +3731 area-System.Net Add test to verify default values for HttpClientHandler "Ported this test to GitHub. Note that the change in default values between Desktop and CoreFx for two of the properties is an ""intentional, improving, change"". " +3732 area-System.Net Merge changes from TFS +3735 area-System.Net Shim socket addresses. The socket address shim adds native accessors for the various bits that managed code needs to access, namely: - Address families - Port numbers - IP addresses This change also updates the name resolution shim to use an iterator-based design for walking host entries. This interface trades chattiness (a P/Invoke per IP address) for memory footprint (various native and managed allocations per IP address). +3736 area-System.Net Read the allowed certificate issuers list on Unix SslStream The Unix PAL version of GetRequestCertificateAuthorities. Development: - Split out SafeInteriorHandle to facilitate creating two more SafeHandle types following that pattern. - Applied the new shim style for the two macro-functions that were needed for reading STACK_OF(X509_NAME) - Created two new internal SafeHandle types. While in the past these were in isolated files in Common\src\Microsoft\Win32\SafeHandles, I wanted to try something new: keeping them in the file with their create/free/primary-usage. Testing: I couldn't figure out how to cause the flow that results in the PAL method getting called, so I inserted an artificial call to it in CompleteHandshake, and saw that it was decoding as expected. This is yet another partial fix for issue #3362 (GetRequestCertificateAuthorities - populate issuers. (CertModule.cs)) cc: @stephentoub @vijaykota @rajansingh10 @shrutigarg @CIPop +3737 area-System.Linq Expression interpreter - Missing support for OnesComplement nodes Found when porting an exhaustive test suite for cross-checking interpretation and compilation. I'll have a look at adding the support. +3739 area-Infrastructure Get 8 build errors on Linux Get 8 errors when building latest corefx on ubuntu with dnx-coreclr-linux-x64.1.0.0-rc1-15838. ``` CSC : error CS7027: Error signing output with public key from file '/data/git/corefx/packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00104/lib/ECMA.snk' -- mscoree.dll [/data/git/corefx/src/System.IO.Compression.ZipFile/ref/System.IO.Compression.ZipFile.csproj] CSC : error CS7033: Delay signing was specified and requires a public key, but no public key was specified [/data/git/corefx/src/System.IO.Compression.ZipFile/ref/System.IO.Compression.ZipFile.csproj] CSC : error CS7027: Error signing output with public key from file '/data/git/corefx/packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00104/lib/ECMA.snk' -- mscoree.dll [/data/git/corefx/src/System.IO.Compression/ref/System.IO.Compression.csproj] CSC : error CS7033: Delay signing was specified and requires a public key, but no public key was specified [/data/git/corefx/src/System.IO.Compression/ref/System.IO.Compression.csproj] CSC : error CS7027: Error signing output with public key from file '/data/git/corefx/packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00104/lib/ECMA.snk' -- mscoree.dll [/data/git/corefx/src/System.Reflection.Context/ref/System.Reflection.Context.csproj] CSC : error CS7033: Delay signing was specified and requires a public key, but no public key was specified [/data/git/corefx/src/System.Reflection.Context/ref/System.Reflection.Context.csproj] CSC : error CS7027: Error signing output with public key from file '/data/git/corefx/packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00104/lib/ECMA.snk' -- mscoree.dll [/data/git/corefx/src/System.Runtime.WindowsRuntime.UI.Xaml/ref/System.Runtime.WindowsRuntime.UI.Xaml.csproj] CSC : error CS7033: Delay signing was specified and requires a public key, but no public key was specified [/data/git/corefx/src/System.Runtime.WindowsRuntime.UI.Xaml/ref/System.Runtime.WindowsRuntime.UI.Xaml.csproj] ``` +3740 area-System.Threading Can we lift the name length limitation on semaphores? "Now that we have more-or-less gotten rid of the path length limitation (#645), could we also get rid of the semaphore name length restriction? The documentation for [CreateSemaphore](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682438%28v=vs.85%29.aspx) claims that the name is limited to MAX_PATH characters, however testing this shows that the documentation is wrong (at least on Windows 10): ``` using Microsoft.Win32.SafeHandles; using System; using System.ComponentModel; using System.Runtime.InteropServices; namespace SemaphoreTest { class Program { [DllImport(""kernel32.dll"", BestFitMapping = false, CharSet = CharSet.Unicode, SetLastError = true)] private static extern SafeWaitHandle CreateSemaphore(IntPtr lpSecurityAttributes, int initialCount, int maximumCount, string name); [DllImport(""kernel32.dll"", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] private static extern bool CloseHandle(SafeHandle hObject); private static void TestCreateSemaphore(string longName) { var sem = CreateSemaphore(IntPtr.Zero, 0, 1, longName); if (sem.IsInvalid) { Console.WriteLine(""Failed: "" + new Win32Exception(Marshal.GetLastWin32Error())); } else { Console.WriteLine(""OK: "" + sem.DangerousGetHandle()); CloseHandle(sem); } } static void Main(string[] args) { var longName = ""!!!!!!!!!!012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"" + // 100 ""0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"" + // 200 ""012345678901234567890123456789012345678901234567890123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN""; // 260,300 TestCreateSemaphore(longName); } } } ``` Running this prints OK followed by the handle. Setting a breakpoint before CloseHandle and inspecting the handles shows that the semaphore is indeed created with the full name: ![Process Hacker showing that the path isn't truncated](http://i.imgur.com/MLHaKWQ.png) Edit: It would be a good idea if I posted the same code that I ran when I took the screenshot :) " +3741 area-System.Numerics Change System.Numerics.Vector's unsafe constructors' access level to public. Currently Vector's constructors that accept a pointer are marked as private, e.g: private unsafe Vector(void\* dataPointer, int offset) Please consider making them public. Because at some point we might have only the pointers themselves in our own code but rather than arrays. Recreating an array from these pointers is costly. So allow us to use this constructor directly as it is. +3742 area-System.Security Fixed second write issue, introduced by PR#3675 1. PR #3675 broke the scenario where there will be successive read/write calls on stream (>1). 2. older code in finally was like, where asyncRequest will always be null. finally { if (asyncRequest == null || failed) { _NestedWrite = 0; } } 3. After removing dead code i.e. asyncRequest in PR #3675 ,the flow will never set _NestedWrite==0 in positive scenario, causing failure when read/write is called next time by the user. 4. Added multi write testcase as well for this. +3744 area-System.Net ConnectV4MappedIPEndPointToV4Host_Success failed in CI on Linux http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/3196/console ``` System.Net.Sockets.Tests.DualMode.ConnectV4MappedIPEndPointToV4Host_Success [FAIL] 16:14:57 System.Net.Sockets.SocketException : Unknown error 10054 16:14:57 Stack Trace: 16:14:57 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 16:14:57 at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) 16:14:57 at System.Net.Sockets.Tests.DualMode.DualModeConnect_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer) 16:14:57 at System.Net.Sockets.Tests.DualMode.ConnectV4MappedIPEndPointToV4Host_Success() 16:14:57 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 16:14:57 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 16:14:57 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) ``` +3748 area-System.Net ConnectAsyncV6IPEndPointToDualHost_Success failed in CI on Linux http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/3215/console ``` 10:50:47 System.Net.Sockets.Tests.DualMode.ConnectAsyncV6IPEndPointToDualHost_Success [FAIL] 10:50:47 System.Net.Sockets.SocketException : Unknown error 10054 10:50:47 Stack Trace: 10:50:47 at System.Net.Sockets.Tests.DualMode.DualModeConnectAsync_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer) 10:50:47 at System.Net.Sockets.Tests.DualMode.ConnectAsyncV6IPEndPointToDualHost_Success() 10:50:47 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 10:50:47 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 10:50:47 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) ``` +3749 area-System.Net GetAsync_ResponseContentAfterClientAndHandlerDispose_Success failed in CI on Linux http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/3215/console ``` 10:54:28 System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_ResponseContentAfterClientAndHandlerDispose_Success [FAIL] 10:54:28 Assert.True() Failure 10:54:28 Expected: True 10:54:28 Actual: False 10:54:28 Stack Trace: 10:54:28 Finished: System.Net.Http.Unit.Tests 10:54:28 10:54:28 === TEST EXECUTION SUMMARY === 10:54:28 System.Net.Http.Unit.Tests Total: 783, Errors: 0, Failed: 0, Skipped: 0, Time: 2.503s 10:54:28 at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__0.MoveNext() 10:54:28 --- End of stack trace from previous location where exception was thrown --- 10:54:28 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 10:54:28 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 10:54:28 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 10:54:28 at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__14.MoveNext() 10:54:28 --- End of stack trace from previous location where exception was thrown --- 10:54:28 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 10:54:28 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 10:54:28 --- End of stack trace from previous location where exception was thrown --- 10:54:28 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 10:54:28 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 10:54:28 --- End of stack trace from previous location where exception was thrown --- 10:54:28 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 10:54:28 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 10:54:44 Finished: System.Net.Http.Functional.Tests 10:54:44 10:54:44 === TEST EXECUTION SUMMARY === 10:54:44 System.Net.Http.Functional.Tests Total: 254, Errors: 0, Failed: 1, Skipped: 0, Time: 19.002s ``` +3750 area-System.Linq Expression interpreter - NegateChecked doesn't throw OverflowException Repro case: `Expression.NegateChecked(Expression.Constant(short.MinValue))` Issue seems to be that the checked(...) expression does not incorporate the conversion back after performing the negation. I'll have a look at fixing it. +3752 area-System.Net Add more WinHttpHandler client certificate tests Add a fake X509Store to the unit tests to simulate a real per-user certificate store on the machine. Add tests related to WinHttpHandler ClientCertificateOption.Automatic property setting. +3753 area-System.Diagnostics Switch OS X process information retrieval over to use sysctl Currently, OS X uses the platform-specific `proc_*` calls to retrieve process and thread information. By moving these calls over to use `sysctl`, we can support many more platforms (such as FreeBSD). +3755 area-System.Net Re-enable HttpClient encoding tests on Unix cc: @davidsh, @kapilash +3758 area-System.Linq Expression interpreter - Some issues with Increment and Decrement Three issues found with the interpreter code when cross-checking compiler and interpreter for Increment and Decrement nodes: - [De|In]crement(T) != T for T = UInt16 and UInt32 - Missing implementation for UInt64 - Nullable support is lacking I'll have a look. +3760 area-System.Data SqlClient for Windows: Native SNI depends on MSVCR110.dll Using SqlClient can cause a DllNotFoundException on sni.dll. This has been reported a few times by customers trying to use SqlClient on coreclr-x64/x86 on Windows (see aspnet/Home#904 for detailed symptoms). One of the possible causes is that you may need the Microsoft Visual C++ 2012 Redistributable installed to get SqlClient to work. Beta8 has not solved the problem, e.g. `link /dump /imports sni.dll` still shows MSVCR110.dll in the list of dependencies. From an email thread with @ericstj it seems that it should use msvcrt.dll instead. +3765 area-System.Net Switched Sockets perf tests to Benchmarks "Rough draft of what the sockets tests will look switched to use Benchmarks for the perf tests. Ideally there would only be one tests csproj as in this PR and tests would function as they do in other projects. These perf tests run on Windows and give reasonable results, but on Linux they throw an error that ""ws2_32.dll"" is missing. @pgavlin @stephentoub " +3766 area-Infrastructure Corefx build fails in dnu restore on windows "I am attempting to follow the instructions at: https://github.com/dotnet/coreclr/blob/master/Documentation/building/linux-instructions.md While building the corefx portion of the code in a windows enlistment I see this failure output: ``` C:\Users\noahfalk\Documents\GitHub\corefx [master]> .\build.cmd /p:OSGroup=Linux /p:SkipTests=true Restoring all packages... EXEC : warning : FindPackagesById: Microsoft.Win32.Registry [C:\Users\noahfalk\Documents\GitHub\corefx\build.proj] C:\Users\noahfalk\Documents\GitHub\corefx\build.proj(24,5): error MSB3073: The command """"C:\Users\noahfalk\Documents\Gi tHub\corefx\packages//dnx-coreclr-win-x86.1.0.0-beta7/\bin\dnu.cmd"" restore --packages ""C:\Users\noahfalk\Documents\Git Hub\corefx\packages"" --source https://www.myget.org/F/dotnet-core/ --source https://www.myget.org/F/dotnet-coreclr/ --s ource https://www.myget.org/F/dotnet-corefxtestdata/ --source https://www.myget.org/F/dotnet-buildtools/ --source https ://www.nuget.org/api/v2/ ""C:\Users\noahfalk\Documents\GitHub\corefx\src"" ""C:\Users\noahfalk\Documents\GitHub\corefx\pac kages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00097/lib/"""" exited with code 1. ``` Running a build with more diagnostics enabled reveals this: ``` C:\Users\noahfalk\Documents\GitHub\corefx [master +0 ~22 -0]> msbuild /v:detailed /p:OSGroup=Linux /p:SkipTests=true .\b uild.proj Microsoft (R) Build Engine version 12.0.40629.0 [Microsoft .NET Framework, version 4.0.30319.42000] ``` ... Omitting some hopefully irrelevant build ouput for brevity ... ``` Task ""Exec"" ""C:\Users\noahfalk\Documents\GitHub\corefx\packages//dnx-coreclr-win-x86.1.0.0-beta7/\bin\dnu.cmd"" restore --packages ""C:\Users\noahfalk\Documents\GitHub\corefx\packages"" --source https://www.myget.org/F/dotnet-core/ --source https:// www.myget.org/F/dotnet-coreclr/ --source https://www.myget.org/F/dotnet-corefxtestdata/ --source https://www.myget.or g/F/dotnet-buildtools/ --source https://www.nuget.org/api/v2/ ""C:\Users\noahfalk\Documents\GitHub\corefx\src"" ""C:\Use rs\noahfalk\Documents\GitHub\corefx\packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00097/lib/"" Microsoft .NET Development Utility CoreCLR-x86-1.0.0-beta7-15532 CACHE https://www.myget.org/F/dotnet-core/ CACHE https://www.myget.org/F/dotnet-coreclr/ CACHE https://www.myget.org/F/dotnet-corefxtestdata/ CACHE https://www.myget.org/F/dotnet-buildtools/ CACHE https://www.nuget.org/api/v2/ Restoring packages for C:\Users\noahfalk\Documents\GitHub\corefx\src\Common\tests\project.json Following lock file C:\Users\noahfalk\Documents\GitHub\corefx\src\Common\tests\project.lock.json Restore complete, 288ms elapsed Restoring packages for C:\Users\noahfalk\Documents\GitHub\corefx\src\Common\tests\System\Diagnostics\RemoteExecutorCo nsoleApp\project.json Following lock file C:\Users\noahfalk\Documents\GitHub\corefx\src\Common\tests\System\Diagnostics\RemoteExecutorConso leApp\project.lock.json Restore complete, 14ms elapsed Restoring packages for C:\Users\noahfalk\Documents\GitHub\corefx\src\Common\tests\SystemXml\BaseLibManaged\project.js on Following lock file C:\Users\noahfalk\Documents\GitHub\corefx\src\Common\tests\SystemXml\BaseLibManaged\project.lock. json Restore complete, 5ms elapsed Restoring packages for C:\Users\noahfalk\Documents\GitHub\corefx\src\Common\tests\SystemXml\ModuleCore\project.json Following lock file C:\Users\noahfalk\Documents\GitHub\corefx\src\Common\tests\SystemXml\ModuleCore\project.lock.json Restore complete, 32ms elapsed Restoring packages for C:\Users\noahfalk\Documents\GitHub\corefx\src\Common\tests\SystemXml\XmlCoreTest\project.json Following lock file C:\Users\noahfalk\Documents\GitHub\corefx\src\Common\tests\SystemXml\XmlCoreTest\project.lock.jso n Restore complete, 33ms elapsed Restoring packages for C:\Users\noahfalk\Documents\GitHub\corefx\src\Common\tests\SystemXml\XmlDiff\project.json Following lock file C:\Users\noahfalk\Documents\GitHub\corefx\src\Common\tests\SystemXml\XmlDiff\project.lock.json Restore complete, 31ms elapsed Restoring packages for C:\Users\noahfalk\Documents\GitHub\corefx\src\Microsoft.CSharp\ref\project.json Following lock file C:\Users\noahfalk\Documents\GitHub\corefx\src\Microsoft.CSharp\ref\project.lock.json Restore complete, 16ms elapsed Restoring packages for C:\Users\noahfalk\Documents\GitHub\corefx\src\Microsoft.CSharp\src\project.json Following lock file C:\Users\noahfalk\Documents\GitHub\corefx\src\Microsoft.CSharp\src\project.lock.json Restore complete, 31ms elapsed Restoring packages for C:\Users\noahfalk\Documents\GitHub\corefx\src\Microsoft.VisualBasic\ref\project.json Following lock file C:\Users\noahfalk\Documents\GitHub\corefx\src\Microsoft.VisualBasic\ref\project.lock.json Restore complete, 2ms elapsed Restoring packages for C:\Users\noahfalk\Documents\GitHub\corefx\src\Microsoft.VisualBasic\src\project.json Following lock file C:\Users\noahfalk\Documents\GitHub\corefx\src\Microsoft.VisualBasic\src\project.lock.json ---------- System.IO.IOException: The supplied user buffer is not valid for the requested operation at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.IO.Win32FileStream.ReadCore(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Win32FileStream.Read(Byte[] array, Int32 offset, Int32 count) at System.IO.FileStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.Xml.XmlTextReaderImpl.ReadData() at System.Xml.XmlTextReaderImpl.ParseDocumentContent() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r) at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, LoadOptions o) at System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options) at NuGet.XmlUtility.LoadSafe(Stream input, Boolean ignoreWhiteSpace) at NuGet.Manifest.ReadFrom(Stream stream, IPropertyProvider propertyProvider, Boolean validateSchema) at NuGet.LocalPackage.ReadManifest(Stream manifestStream) at NuGet.UnzippedPackage.EnsureManifest() at NuGet.UnzippedPackage..ctor(IFileSystem fileSystem, String manifestPath) at NuGet.PackageInfo.get_Package() at Microsoft.Dnx.Runtime.NuGetDependencyResolver.d__14.MoveNext() at Microsoft.Dnx.Tooling.RestoreOperations.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.Dnx.Tooling.RestoreCommand.d__62.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at Microsoft.Dnx.Tooling.RestoreCommand.d__61.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.Dnx.Tooling.RestoreCommand.<>c__DisplayClass60_0.<b__2>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at Microsoft.Dnx.Tooling.RestoreCommand.d__60.MoveNext() ---------- Restore failed The supplied user buffer is not valid for the requested operation ``` " +3767 area-System.Net Update CurlHandler to use HttpContent.CopyToAsync "To get a request content stream, CurlHandler currently uses the HttpContent's ReadAsStreamAsync, and when libcurl needs to rewind the stream, CurlHandler seeks on the stream. Unfortunately, it turns out ReadAsStreamAsync isn't actually intended to be used by handlers in this manner, and as such there are some deficiencies that lead to correctness problems. For example, some of the WCF HttpContent-derived types return non-seekable streams from CreateContentReadStreamAsync and thus from ReadAsStreamAsync. This means that, using ReadAsStreamAsync, if we need to resend a request, we need to call ReadAsStreamAsync again. But ReadAsStreamAsync doesn't do the same _contentConsumed check that SerializeToStreamAsync does. That means if the content is actually a StreamContent, whose CreateContentReadStreamAsync just does `return Task.FromResult(new ReadOnlyStream(this._content));`, and if the stream is non-seekable, then we'll end up getting back the ""new"" stream but that's already had its content consumed, and we won't know. We can't even try to do an object reference comparison, because StreamContent is wrapping the returned stream in a new ReadOnlyStream instance each time. The recommended approach for handlers is to use HttpContent.CopyToAsync. CopyToAsync is a push-based model, letting the HttpContent write to a target stream. CurlHandler/libcurl have a pull-based model, with CurlHandler ReadAsync'ing from the request content based on callback from libcurl. To straddle this divide, this commit adds a specialized push/pull adapter stream that let's CurlHandler effectively read from the pushing source. If/when libcurl asks to rewind, the stream resets itself by doing a new CopyToAsync operation. This revised approach does incur more costs, however care has been taken to try to minimize those overheads as much as possible, and the change is necessary for correctness. This PR also fixes an issue with regards to which exception type CurlHandler wraps. Fixes #3699, #3693 cc: @kapilash, @vijaykota, @davidsh, @pgavlin, @CIPop " +3768 area-System.Net Refactoring System.Net.Security PAL Refactoring System.Net.Security PAL in preparation to add back the Schannel Interop multi-interface SSPI object model required by NegotiateStream. The PAL design is similar to the one @pgavlin designed for System.Net.Primitives, NameResolution and Sockets: partial static classes replaced the interface/class/factory pattern that was derived from the SSPI object model. Semantics should remain the same. 1. \CertModule.cs was renamed to CertificateValidationPal..cs. CertWrapper and CertInterface have been removed. 2. \SSPISecureChannelType.cs was renamed to SslStreamPal..cs. Modified GlobalSSPI, SSPIInterface have been removed temporarily. The plan is to add them back with the original semantics for NegotiateStream support via Win32 SSPI. - Small change in QueryContextChannelBinding to simplify the PAL. - Added a static readonly sync object in the Windows implementation to preserve interlocked behavior. - Removed Win32Exception from MapToSecurityStatus. (Still needs to be redesigned to avoid string parsing.) 3. Rest of * have been moved to Interop. I did my best to integrate with the latest sources in master. 4. Removed NegotiateStream / Auth code. This will be added back with NegotiateStream support. @bartonjs @vijaykota @rajansingh10 PTAL /cc: @davidsh @stephentoub @pgavlin +3769 area-System.Security ECDsa Sign and Verify expect different data forms between Windows and Unix ECDSA's Sign operation, algorithmically, emits two values, `r` and `s`. The values produced by Desktop, and CoreFX-Windows are equivalent to `r.Concat(s)`. CoreFX-Unix is emitting (and expecting) the signature block: ``` ECDSA-Sig-Value ::= SEQUENCE { r INTEGER, s INTEGER } ``` These values will never be equal, differing by the ASN/DER structural information. Since Desktop is the de facto standard here, we need to make the Unix version match. +3771 area-System.Security Windows GetECDsaPrivateKey fails on ECDsa PFX files created with OpenSSL "When opening the private key NCrypt reports that the algorithm is ECDH_P384 instead of ECDSA_P384; then ECDsaCng rejects the key for being from the wrong algorithm group. Commenting out these lines showed the key to be functional in this role, so perhaps the checks need to be relaxed a bit. Taking a PFX generated from Windows which works and sending it through: ``` openssl pkcs12 -in working.pfx -info ``` supplying both the PFX decrypt password and a new private key encrypt password, then copying the .cer portion to `worked.cer`, and the key to `worked.encrypted.key` ``` openssl ec -in worked.encrypted.key -out worked.key openssl pkcs12 -export -in worked.cer -inkey worked.key -out worked.pfx -CSP ""Microsoft Software Key Storage Provider"" ``` Even when noticing that new keys had a parameters header, and including it in `worked.key` didn't help. Just an OID identifying the curve: secp384r1 ``` -----BEGIN EC PARAMETERS----- BgUrgQQAIg== -----END EC PARAMETERS----- ``` Clearly something is missing... " +3772 area-System.Security Unix ECDsa doesn't support P-256 Windows supports { 256, 384, 521 } Unix supports { 224, 384, 521 } I suspect the 224 was meant to be 256 (since 256 is a SuiteB curve). 256 should be added. +3777 area-System.Net Setting Socket.SendTimeOut throws SocketException on Linux "The following code runs fine on Windows dnxcore50 ``` csharp using System; using System.Net.Sockets; public class Program { public static void Main() { var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) { SendTimeout = 200, ReceiveTimeout = 200 }; } } ``` However on an Azure Linux VM it throws with Success! ``` System.Net.Sockets.SocketException: Success at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue, Boolean silent) at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue) at System.Net.Sockets.Socket.set_SendTimeout(Int32 value) at Program.Main() ``` Here's my project.json ``` javascript { ""commands"": { ""run"": ""test"" }, ""frameworks"": { ""dnxcore50"": { ""compilationOptions"": { ""define"": [ ""NETCORE"" ], ""allowUnsafe"": true, ""warningsAsErrors"": false }, ""dependencies"": { ""System.Console"": ""4.0.0-beta-*"", ""System.Net.Sockets"": ""4.1.0-beta-*"", ""System.Net.Security"": ""4.0.0-beta-*"", ""System.Net.NameResolution"": ""4.0.0-beta-*"", ""System.Net.Primitives"": ""4.0.11-beta-*"" } } }, ""dependencies"": { } } ``` " +3778 area-System.Drawing Current status of graphics library development. Hi all, I've been following the various conversations regarding graphics in corefx: #1563, #489, etc and also following the progress of the library in corefxlab https://github.com/dotnet/corefxlab/tree/master/src/System.Drawing.Graphics and I'm still left wondering what the overall plan is. Progress in the lab repo seems to have stopped and there seems to be no further discussion I can find anywhere on what is happening. I'm the primary author of the project [ImageProcessor](https://github.com/JimBobSquarePants/ImageProcessor/) which I wrote to make System.Drawing a little easier to work with. It's been fairly successful in adoption but as far as I can fathom my work (~3 years) will become obsolete very soon. Since corefx was announced I've started working on a library which can do basic stuff like encode/decode pngs, bmps, jpegs, and gifs (animated too), I've partially implemented some primitives for shapes and colors, and am experimenting with resampling algorithms now. All that work can be found [here](https://github.com/JimBobSquarePants/ImageSharp) I'm super uneasy about doing all this work though as I don't want it to be in vain, superseded immediately by something out of Microsoft. Should I continue? If so is it something that you would think the community could invest in and help me deliver (Graphics is tricky stuff and I'm no computer scientist). +3779 area-System.Runtime Collectible AssemblyLoadContext Collectible assemblies can be used for many different things but it usually comes down to some form of hot swapping code. Updating a plugin or compiling a new version of a Razor view, without restarting the process or leaking memory. .NET Core currently has no way to unload assemblies from memory if they are no longer required. In the full .NET Framework you could load the assemblies into a separate AppDomain so they can be unloaded later. ## Proposed API `AssemblyLoadContext` can be extended to enable developers to load normal assemblies, from the filesystem or any stream, as collectible assemblies. ``` csharp public abstract class AssemblyLoadContext { // ... protected AssemblyLoadContext(bool isCollectible) { } // ... } ``` Collectible assemblies loaded by `AssemblyLoadContext` would have the same [lifetime and limitations as those generated by `System.Reflection.Emit`](https://msdn.microsoft.com/en-us/library/vstudio/dd554932%28v=vs.100%29.aspx), except the lifetime extends to all assemblies loaded by the `AssemblyLoadContext`. This means the `AssemblyLoadContext` will not unload until there are no references to any of the assemblies it loaded. I am working on the implementation for this in CoreCLR: https://github.com/dotnet/coreclr/pull/1684 +3780 area-System.IO IOException on recursive Directory.Delete of path with trailing backslash I observed this after we took a recent beta System.IO over in MSBuild. Many of our tests create a directory and have a `finally` that deletes it, which suddenly started failing. After debugging, I think this is a regression caused by 0721434, which added a call in [`RemoveDirectory`](https://github.com/dotnet/corefx/blob/0721434e19e7f9ecf8bf6dba7485f6c86827388c/src/System.IO.FileSystem/src/System/IO/Win32FileSystem.cs#L491) to canonicalize the path to extended form. The following call then adds a backslash before calling `FindFirstFile`, but the extended path has different behavior in Win32: it no longer silently condenses double backslashes to a single path separator. While proving to myself that I understood the bug I wrote a fix; I'll send a PR shortly. +3783 area-System.Net Disable failing ConnectV4MappedIPEndPointToV4Host_Success test #3744 cc: @pgavlin, @davidsh, @CIPop +3784 area-Infrastructure ALINK : error AL1078: Error signing assembly -- Access is denied. "Getting build errors on Win10 + VS2015: `ALINK : error AL1078: Error signing assembly -- Access is denied. [s:\c1\src\Microsoft.CSharp\src\Microsoft.CSharp.csproj]` From the log: ``` 175>GenerateSatelliteAssemblies: Creating directory ""s:\c1\bin/obj/Windows_NT.AnyCPU.Debug\Microsoft.CSharp\it"". Creating directory ""s:\c1\bin/obj/Windows_NT.AnyCPU.Debug\Microsoft.CSharp\ja"". Creating directory ""s:\c1\bin/obj/Windows_NT.AnyCPU.Debug\Microsoft.CSharp\ko"". Creating directory ""s:\c1\bin/obj/Windows_NT.AnyCPU.Debug\Microsoft.CSharp\ru"". Creating directory ""s:\c1\bin/obj/Windows_NT.AnyCPU.Debug\Microsoft.CSharp\zh-Hans"". Creating directory ""s:\c1\bin/obj/Windows_NT.AnyCPU.Debug\Microsoft.CSharp\zh-Hant"". C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\AL.exe /culture:de /delaysign+ /keyfile:s:\c1\packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00104/lib/MSFT.snk /out:s:\c1\bin/obj/Windows_NT.AnyCPU.Debug\Microsoft.CSharp\de\Microsoft.CSharp.resources.dll /template:s:\c1\bin/obj/Windows_NT.AnyCPU.Debug\Microsoft.CSharp\Microsoft.CSharp.dll /embed:s:\c1\bin/obj/Windows_NT.AnyCPU.Debug\Microsoft.CSharp\Microsoft.CSharp.Resources.Strings.de.resources 175>ALINK : error AL1078: Error signing assembly -- Access is denied. [s:\c1\src\Microsoft.CSharp\src\Microsoft.CSharp.csproj] 175>Done Building Project ""s:\c1\src\Microsoft.CSharp\src\Microsoft.CSharp.csproj"" (BuildAndTest target(s)) -- FAILED. ``` [msbuild.log.txt](https://github.com/dotnet/corefx/files/11943/msbuild.log.txt) " +3785 area-System.Net SendReceive.SendRecvAsync_Multiple_Stream_TCP_IPv4 failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/4952/console ``` System.Net.Sockets.Tests.SendReceive.SendRecvAsync_Multiple_Stream_TCP_IPv4 [FAIL] Assert.Equal() Failure Expected: 1430411494 Actual: 228538420 Stack Trace: d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs(381,0): at System.Net.Sockets.Tests.SendReceive.SendRecvAsync_Stream_TCP(IPAddress listenAt, Boolean useMultipleBuffers) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs(501,0): at System.Net.Sockets.Tests.SendReceive.SendRecvAsync_Multiple_Stream_TCP_IPv4() ``` +3786 area-System.Net Merge changes from TFS +3787 area-System.Reflection Add unit test coverage for portable PDB There is test coverage in Roslyn for portable PDBs, but before we ship a stable System.Reflection.Metadata, we need sufficient unit tests in corefx. We'll merge #3560 with Roslyn's sign-off now so that we can get them a -rc build out of master in time. +3788 area-System.IO Complete Environmment.SpecialFolder Filed on behalf of [Joel Bennett](https://twitter.com/Jaykul). Many of [the locations](https://msdn.microsoft.com/en-us/library/dd378457) added since Vista are missing. +3789 area-Infrastructure Get automated process to enforce coding rules Currently, we have code styling and formatting rules for both native and managed code but there is no process to enforce these rules. We should enforce these rules in an automated, easy way to ensure code cleanliness and styling +3790 area-System.Net Sending http requests segfaults sometimes on Mac if the request fails I noticed this issue when trying dnx beta-8 bits on Mac. When I restore packages of my dnx app I frequently (~50% of the time) get a segfault if the request fails with an HTTP error (e.g. 404 or 400). I am not exactly sure if this is a bug in coreclr, libcurl or somewhere else. I was not able to repro this issue on Linux. I also don’t seem to be getting the segfault if the request succeeds. Exception details: ``` Process 51039 stopped * thread #7: tid = 0x51dec4, 0x00007fff8ddc7852 libsystem_coretls.dylib`tls_handshake_set_peer_trust + 4, stop reason = EXC_BAD_ACCESS (code=1, address=0x48) frame #0: 0x00007fff8ddc7852 libsystem_coretls.dylib`tls_handshake_set_peer_trust + 4 libsystem_coretls.dylib`tls_handshake_set_peer_trust: -> 0x7fff8ddc7852 <+4>: movl %esi, 0x48(%rdi) 0x7fff8ddc7855 <+7>: xorl %eax, %eax 0x7fff8ddc7857 <+9>: popq %rbp 0x7fff8ddc7858 <+10>: retq ``` Stack trace: ``` * thread #7: tid = 0x2d98, 0x00007fff8a53b852 libsystem_coretls.dylib`tls_handshake_set_peer_trust + 4, stop reason = EXC_BAD_ACCESS (code=1, address=0x48) * frame #0: 0x00007fff8a53b852 libsystem_coretls.dylib`tls_handshake_set_peer_trust + 4 frame #1: 0x00007fff898c510b Security`tls_verify_peer_cert + 537 frame #2: 0x00007fff8a537676 libsystem_coretls.dylib`SSLProcessHandshakeRecordInner + 234 frame #3: 0x00007fff8a537eff libsystem_coretls.dylib`SSLProcessHandshakeRecord + 1119 frame #4: 0x00007fff8a53b4f1 libsystem_coretls.dylib`tls_handshake_process + 116 frame #5: 0x00007fff8988efb6 Security`SSLHandshakeProceed + 126 frame #6: 0x00007fff8988ef21 Security`SSLHandshake + 148 frame #7: 0x00007fff8b864b32 libcurl.4.dylib`darwinssl_connect_step2 + 74 frame #8: 0x00007fff8b864612 libcurl.4.dylib`darwinssl_connect_common + 4013 frame #9: 0x00007fff8b862cca libcurl.4.dylib`Curl_ssl_connect_nonblocking + 77 frame #10: 0x00007fff8b82b61b libcurl.4.dylib`https_connecting + 22 frame #11: 0x00007fff8b84c6e9 libcurl.4.dylib`multi_runsingle + 1016 frame #12: 0x00007fff8b84c24f libcurl.4.dylib`curl_multi_perform + 159 frame #13: 0x000000011db0eb32 frame #14: 0x000000011db0cd7a frame #15: 0x000000011db0c9d3 frame #16: 0x000000011db4f879 frame #17: 0x000000011db4e16e frame #18: 0x000000011db4f58c frame #19: 0x000000011db4ea66 frame #20: 0x000000011db4e16e frame #21: 0x0000000101373bca libcoreclr.dylib`FastCallFinalizeWorker_End + 124 frame #22: 0x000000010128f165 libcoreclr.dylib`MethodDescCallSite::CallTargetWorker(unsigned long const*) + 917 frame #23: 0x00000001012a210c libcoreclr.dylib`ThreadNative::KickOffThread_Worker(void*) + 348 frame #24: 0x0000000101255b05 libcoreclr.dylib`ManagedThreadBase_DispatchOuter(ManagedThreadCallState*) + 277 frame #25: 0x00000001012560b9 libcoreclr.dylib`ManagedThreadBase::KickOff(ADID, void (*)(void*), void*) + 57 frame #26: 0x00000001012a2230 libcoreclr.dylib`ThreadNative::KickOffThread(void*) + 160 frame #27: 0x0000000101078c55 libcoreclr.dylib`CorUnix::CPalThread::ThreadEntry(void*) + 357 frame #28: 0x00007fff8e17305a libsystem_pthread.dylib`_pthread_body + 131 frame #29: 0x00007fff8e172fd7 libsystem_pthread.dylib`_pthread_start + 176 frame #30: 0x00007fff8e1703ed libsystem_pthread.dylib`thread_start + 13 ``` +3793 area-System.Diagnostics EventListener.DisposeOnShutdown crashing xunit processes Recently we've seen xunit failing due to a bug in EventListener.DisposeOnShutdown. Here is the stack of the failure: ``` System.InvalidOperationException: Collection was modified; enumeration operation may not execute. at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) at System.Collections.Generic.List`1.Enumerator.MoveNextRare() at System.Diagnostics.Tracing.EventListener.DisposeOnShutdown(Object sender, ``` Here is the relevant code: ``` csharp private static void DisposeOnShutdown(object sender, EventArgs e) { foreach (var esRef in s_EventSources) { EventSource es = esRef.Target as EventSource; if (es != null) es.Dispose(); } } ``` It appears this code is not accounting for the case that `s_EventSources` could be modified either by the `Dispose` call directly or indirectly via other methods in `EventListener`. All of the other methods which modify / enumerate `s_EventSources` take care to lock the appropriate guard. This method is the sole exception. Jenkins Job Link showing the failure in action: http://dotnet-ci.cloudapp.net/job/roslyn_master_win_rel_unit64/112/ +3796 area-Serialization Add perf test to deserialize large object graph Fix #3302 +3797 area-System.Net Socket.Connect(dnsname, port) throws System.ArgumentException on Linux "(Please see my project.json and a Program.cs template at https://github.com/dotnet/corefx/issues/3777) The following code runs fine on Windows dnxcore50 ``` csharp socket.Connect(""yu-ubt2.cloudapp.net"", 6379); ``` On Linux it throws ``` System.ArgumentException: The AddressFamily 117 is not valid for the System.Net.IPEndPoint end point, use InterNetwork instead. Parameter name: socketAddress at System.Net.IPEndPoint.Create(SocketAddress socketAddress) at System.Net.Dns.TryGetAddrInfo(String name, AddressInfoHints flags, IPHostEntry& hostinfo) at System.Net.Dns.TryGetAddrInfo(String name, IPHostEntry& hostinfo) at System.Net.Dns.GetAddrInfo(String name) at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) at System.Net.Dns.GetHostAddresses(String hostNameOrAddress) at System.Net.Sockets.Socket.Connect(String host, Int32 port) at Program.Main() ``` " +3799 area-System.Net Socket.Connect(ipaddress, port) throws System.Net.Sockets.SocketException on Linux "(Please see my `project.json` at https://github.com/dotnet/corefx/issues/3777) The following code runs fine on Windows dnxcore50 ``` csharp using System; using System.Net.Sockets; using System.Threading; using System.Threading.Tasks; public class Program { public static void Main() { var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) { }; try { var str = ""ping""; var data = new byte[str.Length * sizeof(char)]; System.Buffer.BlockCopy(str.ToCharArray(), 0, data, 0, data.Length); socket.Connect(""127.0.0.1"", 6379); socket.Send(data); Console.WriteLine(""data sent to server""); } catch (Exception ex) { System.Console.WriteLine(ex.ToString()); } } } ``` On Linux it throws ``` System.Net.Sockets.SocketException: Address family not supported by protocol 127.0.0.1:6379 at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port) at System.Net.Sockets.Socket.Connect(String host, Int32 port) at Program.Main() ``` " +3802 area-System.Net Test - Fix FakeNetwrokStream(System.Net.Security.Tests) read method for successive network read In SslStreamStreamToStreamTest.cs, SslStream_StreamToStream_Successive_ClientWrite_Success need to rely on DoNetworkRead() of FakeNetwrokStream because of the limitation of FakeNetworkStream. The read method in FakeNetworkStream does do NetworkRead on some condition which itself is wrong. As a result, in successive read, data is never read from the network. So for now we have put a workaround method named DoNetworkRead(), which is being explicitly called from SslStream_StreamToStream_Successive_ClientWrite_Success. This issue is to remove DoNetworkRead() & find the real fix so that a NetworkStream encapsulation is maintained +3806 area-System.Net PreAuthenticate fix When CURLOPT_HTTPAUTH is set to any, libcurl will first query the server to figure out the right authentication scheme. This breaks the expectation when PreAuthenticate is set to true. We need to iterate over available schemes and set the auth-scheme flags to only those that are available. Also, while updating the CredentialCache, we ignore ArgumentException (raised when the cache contains the given url and scheme pair) +3807 area-System.Net Adding client cert validation logic and usage of EncryptionPolicy This includes: 1. Client Certificate validation logic at server side. Enabled the Verify_callback. Added the logic of updating CA list to be sent to client. 2. Added the usage of EncryptionPolicy flag passed during handshake. 3. Enabled the constructors of SafeX509Handle and X509StoeCTXHandle to generate the handle from an Intptr. 4. Added SafeX509NameStackHandle to be used by the stack related APIs. 5. Added a few X509_NAME stack related Macro-functions in *X509_name.cpp/.h Testing done locally using the existing security testcases for Encryption Policy variations. Client Cert validation logic is tested by directly calling AuthenticateAsServer method by enabling clientCertificateRequired flag. +3808 area-System.Net Disable another failing sockets test #3494 cc: @pgavlin, @davidsh +3809 area-System.Net Fix bugs in IPPacketInformation. - GetHashCode() and Equals() both stood the chance of dereferencing a null pointer when called on default values. - GetHashCode() was using a weak method of combining hash codes. This has been updated to use the same technique used by Roslyn. - The equality and inequality operators were unnecessarily boxing input parameters. +3810 area-System.Numerics Perf: Vector operations up to 200x slower on Linux Perf results for the individual iterations are available on my share, or I can post them here if requested. The tests that produced these results are currently in PR #3764. I included all Vector tests here (not just the slower ones) to simplify comparisons. | test name | Windows time | Linux time | linux/windows | | --- | --- | --- | --- | | Perf_Vector2.Operation(operation: Add_Function) | 8.000289665 | 59.11430001 | 7.389019958 | | Perf_Vector2.Operation(operation: Add_Operator) | 0.288809858 | 52.2279 | 180.8383562 | | Perf_Vector2.Operation(operation: Distance_Squared) | 22.23037618 | 21.2417 | 0.955525891 | | Perf_Vector2.Operation(operation: Dot) | 0.351532631 | 18.29149999 | 52.03357636 | | Perf_Vector2.Operation(operation: Length_Squared) | 0.38232381 | 15.3581 | 40.17039899 | | Perf_Vector2.Operation(operation: Mul_Function) | 8.379477337 | 60.432 | 7.211905656 | | Perf_Vector2.Operation(operation: Mul_Operator) | 0.320741452 | 56.456 | 176.0171619 | | Perf_Vector2.Operation(operation: Normalize) | 60.02426801 | 67.0325 | 1.116756642 | | Perf_Vector2.Operation(operation: SquareRoot) | 0.321026555 | 73.6878 | 229.5380205 | | Perf_Vector2.Operation(operation: Sub_Function) | 8.074986785 | 60.292 | 7.466513767 | | Perf_Vector2.Operation(operation: Sub_Operator) | 0.266571784 | 56.0038 | 210.0890016 | | Perf_Vector3.Operation(operation: Add_Function) | 10.99273613 | 78.2232 | 7.115898995 | | Perf_Vector3.Operation(operation: Add_Operator) | 5.44148564 | 64.7522 | 11.89972818 | | Perf_Vector3.Operation(operation: Cross) | 37.46773341 | 70.217 | 1.874065859 | | Perf_Vector3.Operation(operation: Distance_Squared) | 23.74256521 | 20.9329 | 0.881661262 | | Perf_Vector3.Operation(operation: Dot) | 5.302070023 | 18.5697 | 3.502349068 | | Perf_Vector3.Operation(operation: Length_Squared) | 14.50720713 | 14.7616 | 1.01753562 | | Perf_Vector3.Operation(operation: Mul_Function) | 10.89209459 | 74.3459 | 6.825675206 | | Perf_Vector3.Operation(operation: Mul_Operator) | 5.499646757 | 64.2378 | 11.68035018 | | Perf_Vector3.Operation(operation: Normalize) | 69.1874949 | 90.3523 | 1.305905065 | | Perf_Vector3.Operation(operation: SquareRoot) | 2.665432739 | 117.7835 | 44.18925989 | | Perf_Vector3.Operation(operation: Sub_Function) | 10.91575818 | 75.24789999 | 6.89351108 | | Perf_Vector3.Operation(operation: Sub_Operator) | 5.528157108 | 65.3777 | 11.82631006 | | Perf_Vector4.Operation(operation: Add_Function) | 2.999859159 | 70.9498 | 23.65104368 | | Perf_Vector4.Operation(operation: Add_Operator) | 2.746117033 | 66.9818 | 24.39145863 | | Perf_Vector4.Operation(operation: Distance_Squared) | 19.94584174 | 20.5697 | 1.03127761 | | Perf_Vector4.Operation(operation: Dot) | 2.631220317 | 21.6594 | 8.231693811 | | Perf_Vector4.Operation(operation: Length_Squared) | 2.74754255 | 15.3553 | 5.588739654 | | Perf_Vector4.Operation(operation: Mul_Function) | 3.059730896 | 69.6198 | 22.75356963 | | Perf_Vector4.Operation(operation: Mul_Operator) | 2.709053576 | 68.6514 | 25.34147003 | | Perf_Vector4.Operation(operation: Normalize) | 69.79761642 | 82.259 | 1.178535947 | | Perf_Vector4.Operation(operation: SquareRoot) | 1.368781964 | 144.8611 | 105.8321222 | | Perf_Vector4.Operation(operation: Sub_Function) | 3.020101508 | 70.3999 | 23.31044165 | | Perf_Vector4.Operation(operation: Sub_Operator) | 2.664292325 | 69.3502 | 26.0295011 | Loop/testing overhead is equivalent to roughly .3 ms on both platforms. @mellinoe +3811 area-System.Globalization Perf: DateTime.Parse(string, CultureInfo) 90x slower on Linux "I can post or email the individual iteration results if desired; the values shown are the medians. | test name | date ran | Windows time | Linux time | linux/windows | | --- | --- | --- | --- | --- | | System.Globalization.Tests.Perf_DateTimeCultureInfo.Parse(culturestring: ""ja"") | 10/13/2015 | 3.926445575 | 269.9053 | 68.7403645 | | System.Globalization.Tests.Perf_DateTimeCultureInfo.Parse(culturestring: """") | 10/13/2015 | 3.748826086 | 151.5521 | 40.42654861 | | System.Globalization.Tests.Perf_DateTimeCultureInfo.Parse(culturestring: ""fr"") | 10/13/2015 | 3.861441974 | 135.64 | 35.12677412 | | System.Globalization.Tests.Perf_DateTimeCultureInfo.Parse(culturestring: ""da"") | 10/13/2015 | 5.109054945 | 113.3454 | 22.18519887 | Perf test: ``` [Benchmark] [InlineData(""fr"")] [InlineData(""da"")] [InlineData(""ja"")] [InlineData("""")] public void Parse(string culturestring) { CultureInfo cultureInfo = new CultureInfo(culturestring); foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) { for (int i = 0; i < innerIterations; i++) { DateTime.Parse(""10/10/2010 12:00:00 AM"", cultureInfo); DateTime.Parse(""10/10/2010 12:00:00 AM"", cultureInfo); DateTime.Parse(""10/10/2010 12:00:00 AM"", cultureInfo); DateTime.Parse(""10/10/2010 12:00:00 AM"", cultureInfo); } } } ``` " +3813 area-System.IO Perf: MemoryMappedFile.CreateFromFile ~20x slower on Linux | test name | date ran | Windows time | Linux time | linux/windows | | --- | --- | --- | --- | --- | | System.IO.MemoryMappedFiles.Tests.Perf_MemoryMappedFile.CreateFromFile(capacity: 10000) | 10/13/2015 | 0.433927546 | 73.4239 | 169.2077414 | | System.IO.MemoryMappedFiles.Tests.Perf_MemoryMappedFile.CreateFromFile(capacity: 100000) | 10/13/2015 | 0.626372417 | 51.90790001 | 82.87066702 | | System.IO.MemoryMappedFiles.Tests.Perf_MemoryMappedFile.CreateFromFile(capacity: 1000000) | 10/13/2015 | 1.818675306 | 57.4766 | 31.60355221 | | System.IO.MemoryMappedFiles.Tests.Perf_MemoryMappedFile.CreateFromFile(capacity: 10000000) | 10/13/2015 | 12.5975838 | 211.0644 | 16.7543557 | Perf test: ``` [Benchmark] [InlineData(10000)] [InlineData(100000)] [InlineData(1000000)] [InlineData(10000000)] public void CreateFromFile(int capacity) { // Note that the test results will include the disposal overhead of both the MemoryMappedFile // as well as the Accessor for it foreach (var iteration in Benchmark.Iterations) using (TempFile file = new TempFile(GetTestFilePath(), capacity)) using (iteration.StartMeasurement()) using (MemoryMappedFile mmfile = MemoryMappedFile.CreateFromFile(file.Path)) using (mmfile.CreateViewAccessor(capacity / 4, capacity / 2)) { } } ``` +3814 area-System.IO Perf: MemoryMappedFiles.CreateNew ~5x slower on Linux Probably related to #3813; possible duplicate | test name | date ran | Windows time | Linux time | linux/windows | | --- | --- | --- | --- | --- | | System.IO.MemoryMappedFiles.Tests.Perf_MemoryMappedFile.CreateNew(capacity: 10000) | 10/13/2015 | 1.420100596 | 25.587 | 18.01773767 | | System.IO.MemoryMappedFiles.Tests.Perf_MemoryMappedFile.CreateNew(capacity: 100000) | 10/13/2015 | 1.437777014 | 24.3962 | 16.96799974 | | System.IO.MemoryMappedFiles.Tests.Perf_MemoryMappedFile.CreateNew(capacity: 1000000) | 10/13/2015 | 1.6233794 | 24.3918 | 15.0253231 | | System.IO.MemoryMappedFiles.Tests.Perf_MemoryMappedFile.CreateNew(capacity: 10000000) | 10/13/2015 | 5.915327678 | 24.5068 | 4.142931944 | Perf Test: ``` [Benchmark] [InlineData(10000)] [InlineData(100000)] [InlineData(1000000)] [InlineData(10000000)] public void CreateNew(int capacity) { const int innerIterations = 1000; MemoryMappedFile[] files = new MemoryMappedFile[innerIterations]; foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) for (int i = 0; i < innerIterations; i++) files[i] = MemoryMappedFile.CreateNew(null, capacity); for (int i = 0; i < innerIterations; i++) files[i].Dispose(); } } ``` Note that unlike CreateFromFile, the CreateNew tests only construct the files - they do not create an accessor. Therefore, any comparison of the results between the two tests probably won't be valid. If desired, I can add a test (or modify this test) that enables a better comparison between the two. +3815 area-System.Globalization Perf: double.ToString(CultureInfo) 7x slower on Linux "| test name | date ran | Windows time | Linux time | linux/windows | | --- | --- | --- | --- | --- | | System.Globalization.Tests.Perf_NumberCultureInfo.ToString(culturestring: ""fr"") | 10/13/2015 | 3.780472576 | 29.0264 | 7.677981896 | | System.Globalization.Tests.Perf_NumberCultureInfo.ToString(culturestring: ""da"") | 10/13/2015 | 3.757379192 | 28.05800001 | 7.467439025 | | System.Globalization.Tests.Perf_NumberCultureInfo.ToString(culturestring: ""ja"") | 10/13/2015 | 3.773344988 | 27.9326 | 7.402609643 | | System.Globalization.Tests.Perf_NumberCultureInfo.ToString(culturestring: """") | 10/13/2015 | 3.806987203 | 27.96 | 7.34439033 | Perf Test: ```c# [Benchmark] [InlineData(""fr"")] [InlineData(""da"")] [InlineData(""ja"")] [InlineData("""")] public void ToString(string culturestring) { double number = 104234.343; CultureInfo cultureInfo = new CultureInfo(culturestring); foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) { for (int i = 0; i < innerIterations; i++) { number.ToString(cultureInfo); number.ToString(cultureInfo); number.ToString(cultureInfo); number.ToString(cultureInfo); number.ToString(cultureInfo); number.ToString(cultureInfo); number.ToString(cultureInfo); number.ToString(cultureInfo); number.ToString(cultureInfo); } } } ``` Although it's an admittedly poor comparative data point, the ToString(CultureInfo) method for DateTime was 1:1 between Linux:Windows so not all ToString methods are equally slow when using CultureInfo. As such, I am unsure of whom to to notify; @steveharter @stephentoub? I have not yet added equivalent ToString tests to other classes, but can if desired for more data points. " +3816 area-System.Security Enable TestECDsaPublicKey_ValidatesSignature after new packages are published Since the test pulls the OpenSsl DLL from a nuget package it doesn't have the fix from #3800; so there's a bit of a lag in re-enabling this test. +3818 area-System.Console Perf: Console Color setting 5x slower on Linux | test name | Windows time | Linux time | linux/windows | | --- | --- | --- | --- | | Perf_Console.ForegroundColor | 11.91903744 | 49.60640001 | 4.161946822 | | Perf_Console.BackgroundColor | 12.05075527 | 62.62819999 | 5.197035257 | Perf Test (same for ForegroundColor): ``` [Benchmark] public void BackgroundColor() { const int innerIterations = 1000; foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { for (int i = 0; i < innerIterations; i++) { Console.BackgroundColor = ConsoleColor.Black; Console.BackgroundColor = ConsoleColor.Blue; Console.BackgroundColor = ConsoleColor.Cyan; Console.BackgroundColor = ConsoleColor.DarkBlue; Console.BackgroundColor = ConsoleColor.DarkGray; Console.BackgroundColor = ConsoleColor.Red; Console.BackgroundColor = ConsoleColor.DarkGreen; Console.BackgroundColor = ConsoleColor.White; } } } Console.ResetColor(); } ``` Can post individual iteration results if desired. +3819 area-System.Runtime Perf: Stringbuilder ctor 5x slower on Linux The constructor that takes a string is fine, but the default constructor is slow. | test name | date ran | Windows time | Linux time | linux/windows | | --- | --- | --- | --- | --- | | System.Runtime.Tests.Perf_StringBuilder.ctor | 10/13/2015 | 1.690948933 | 9.650000006 | 5.706854783 | | System.Runtime.Tests.Perf_StringBuilder.ctor_string(length: 100) | 10/13/2015 | 5.608841402 | 11.93529999 | 2.127943926 | | System.Runtime.Tests.Perf_StringBuilder.ctor_string(length: 1000) | 10/13/2015 | 32.82909926 | 36.8228 | 1.121651243 | Perf test: ``` [Benchmark] public void ctor() { StringBuilder builder; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) for (int i = 0; i < 10000; i++) { builder = new StringBuilder(); builder = new StringBuilder(); builder = new StringBuilder(); builder = new StringBuilder(); builder = new StringBuilder(); builder = new StringBuilder(); builder = new StringBuilder(); builder = new StringBuilder(); builder = new StringBuilder(); } } [Benchmark] [InlineData(100)] [InlineData(1000)] public void ctor_string(int length) { PerfUtils utils = new PerfUtils(); string input = utils.CreateString(length); StringBuilder builder; foreach (var iteration in Benchmark.Iterations) using (iteration.StartMeasurement()) for (int i = 0; i < 10000; i++) { builder = new StringBuilder(input); builder = new StringBuilder(input); builder = new StringBuilder(input); builder = new StringBuilder(input); builder = new StringBuilder(input); builder = new StringBuilder(input); builder = new StringBuilder(input); builder = new StringBuilder(input); builder = new StringBuilder(input); } } ``` possibly related to #3588? @stephentoub @JeremyKuhne I think you have mentioned something like this? +3821 area-System.Net Shim in{,6}_pktinfo. This moves all of the processing for control messages--arguably some of the trickier interop in Sockets--into the native shims. +3825 area-System.Net Adding original SSPI object model back to the Windows SslStream implementation 1. In preparation for NegotiateStream I'm adding back the original SSPI object model. Code was brought in from c74b6f2 with cosmetic or no modifications (simplest way to review is to diff against that). SslStreamPal.Windows has been updated to match the original code in SecureChannel. 2. Updated both Windows and Unix PAL to match the interface (a few methods got moved, no substantial changes in non-Windows code). 3. Adding common test timeout configuration. @bartonjs @vijaykota @rajansingh10 PTAL /cc: @DavidSh, @josguil @SidharthNabar @pgavlin @stephentoub +3826 area-System.Security Unlist obsolete beta6/beta7 crypto packages from nuget.org "Many packages are marked ""obsolete"" and need to be removed by RTM. (It would be nice if we didn't have them for RC1) See packages marked obsolete here: https://www.nuget.org/packages?q=System.Security.Cryptography This is also throwing off corefx-progress results. cc @bartonjs @chcosta @terrajobst " +3827 area-System.Net Re-enable test on *Nix HttpContentTest.ReadAsStringAsync_SetInvalidCharset_ThrowsInvalidOperationException can be re-enabled due to fixes in the CoreCLR for System.Text.Encoding on *Nix. This fixes #3343. +3829 area-System.Net Unix SslStream: Implement RFC2812 IP Address matching for HTTP over TLS. If the hostname looks like an IP Address then do exact matches against GEN_IPADDR Subject Alternative Name entries. Unlike the GEN_DNS matching of text hostnames, the IP Address form always falls back to the CN text comparison if no other match has been found. Fixes #3445. cc: @vijaykota @stephentoub @rajansingh10 @shrutigarg @CIPop @davidsh +3830 area-System.Net Re-enable some WinHttpHandler unit tests Turned on tests: SendAsync_NoWinHttpDecompressionSupportAndResponseBodyIsDeflateCompressed_ExpectedResponse SendAsync_NoWinHttpDecompressionSupportAndResponseBodyIsGZipCompressed_ExpectedResponse since the issue with clrcompression.dll was resolved a while ago. Removed a *Nix annotation suppressing a unit test. This is not needed in the test sources since the WinHttpHandler library and tests are only supported on Windows and won't run anymore in CI (disabled in CSPROJ files) for non-Windows platforms. +3831 area-System.Net Intermittent System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Authentication_Success failure See http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/5040/ for an instance when this failed. +3832 area-System.Net Test: Add the Cipher Related tests to verify cipher Algorithms not present in the enum. Add the Cipher Related tests to verify cipher Algorithms not present in the enum. +3834 area-System.Linq Expression interpreter - Some instructions lacking an InstructionName Makes it hard to debug the emitted code. E.g. AssignLocalInstruction lacks an override for InstructionName. +3836 area-System.Linq Expression interpreter - Remove dead code There's some unused code in a variety of places of the expression interpreter that can be removed to reduce code size. +3838 area-System.Linq Expression compiler - No support for TryFault and TryCatch with Filter See CoreCLR https://github.com/dotnet/coreclr/issues/1764 for the underlying issue that causes this limitation. Note that this does work in the .NET Framework when emitting to a MethodBuilder that's not backed by a DynamicMethod. We could either get the support for it in CoreCLR or consider an emulation strategy a la a try/catch/rethrow/finally with a Boolean flag to check whether an exception was observed. +3839 area-System.Security System.Security.Cryptography.Algorithms.dll appears multiple time in the reference assemblies When you build the reference assemblies, the assembly System.Security.Cryptography.Algorithms.dll appears 3 times: ./bin/ref/System.Security.Cryptography.Algorithms/4.0.0.0/System.Security.Cryptography.Algorithms.dll ./bin/ref/System.Security.Cryptography.Cng/4.0.0.0/System.Security.Cryptography.Algorithms.dll ./bin/ref/System.Security.Cryptography.X509Certificates/4.0.0.0/System.Security.Cryptography.Algorithms.dll when I think it should only appear in ./bin/ref/System.Security.Cryptography.Algorithms/4.0.0.0/System.Security.Cryptography.Algorithms.dll +3840 area-System.Linq Expression interpreter - No support for TryFault This is not implemented right now. It may be possible to get it to work if we could get a try...fault... region in the interpreter code (in particular in EnterTryCatchFinallyInstruction.Run) but the C# compiler does not have this construct. Some options are: - Get it into the compiled binary using some ILASM magic, possibly by using a helper TryFault method that's self-contained and is parameterized on interpreter instruction ranges (range of try, range of fault, etc.). May be tricky with build. - Piggyback on a C# language construct that emits fault blocks, e.g. using blocks in iterators. An example of this trick is pasted below, but it'd obviously be changed to be parameterized on instruction ranges rather than take in Action delegates. - Emulate try...fault in some lowering phase by rewriting it to try...finally with a Boolean flag check. This could also be the way to get TryFault to work on the compiler, see #3838. Will have to be double-checked to be conform the exception semantics of the CLR construct. ``` csharp static class ExceptionHelpers { public static void TryFault(Action body, Action fault) { TryFaultCore(body, fault).MoveNext(); } private static IEnumerator TryFaultCore(Action body, Action fault) { using (new Handler(fault)) { body(); yield return null; } } } struct Handler : IDisposable { private readonly Action _fault; public Handler(Action fault) { _fault = fault; } public void Dispose() { _fault(); } } ``` +3841 area-System.Linq Expression interpreter - No support for exception filters "The expression interpreter lacks support for TryCatch with a CatchBlock whose Filter property is non-null. This is properly supported in the expression compiler though. Support for this could be likely be added by unflattening the list of catch blocks that are processed by EnterTryCatchFinallyInstruction.Run and using C# 6.0's support for filters to run a region of interpreter instructions when an exception occurs (those would have an ""isinst"" check followed by the user-supplied filter code) which get skipped on regular code paths using a goto. The reason the list of catch blocks needs to be unflattened (just in this case, we can keep things compact in cases where no filters are used) is to ensure that the code in the filters runs prior to unwinding the stack, such that any side-effects are visible across filters and eventually when the handlers run. By piggybacking on the CLR support for filters, we don't have to worry about this stack walk to evaluate which handler to use by running filter expressions; we just have to keep the nesting of exception handlers consistent with the emitted expression. Rough idea: ``` csharp public override int Run(InterpretedFrame frame) { // ... try { // ... } catch (Exception ex) when (RunFilter(frame, _filter.StartIndex, _filter.EndIndex)) { // ... } // ... } ``` There may be some trickiness around keeping the stack balance in all cases, but should be doable. " +3843 area-System.Security Unix AsnEncodedData.Format does not match Windows AsnEncodedData.Format (Apparently I missed this when moving x-plat crypto bugs from TFS to github back in April. Ouch.) The biggest example that people will notice would have to do with Subject Alternative Names. The examples below are `sanExtension.Format(true)` Windows en-US: ``` DNS Name=dns1.subject.example.org DNS Name=dns2.subject.example.org RFC822 Name=sanemail1@example.org RFC822 Name=sanemail2@example.org Other Name: Principal Name=subjectupn1@example.org Other Name: Principal Name=subjectupn2@example.org URL=http://uri1.subject.example.org/ URL=http://uri2.subject.example.org/ ``` Unix (non-localized): ``` DNS:dns1.subject.example.org, DNS:dns2.subject.example.org, email:sanemail1@example.org, email:sanemail2@example.org, othername:, othername:, URI:http://uri1.subject.example.org/, URI:http://uri2.subject.example.org/ ``` And, for good measure, showing that Windows localizes this: Windows es-ES ``` Nombre DNS=dns1.subject.example.org Nombre DNS=dns2.subject.example.org Nombre RFC822=sanemail1@example.org Nombre RFC822=sanemail2@example.org Otro nombre: Nombre de entidad de seguridad=subjectupn1@example.org Otro nombre: Nombre de entidad de seguridad=subjectupn2@example.org Dirección URL=http://uri1.subject.example.org/ Dirección URL=http://uri2.subject.example.org/ ``` Windows ja-JP: ``` DNS Name=dns1.subject.example.org DNS Name=dns2.subject.example.org RFC822 Name=sanemail1@example.org RFC822 Name=sanemail2@example.org Other Name: プリンシパル名=subjectupn1@example.org Other Name: プリンシパル名=subjectupn2@example.org URL=http://uri1.subject.example.org/ URL=http://uri2.subject.example.org/ ``` +3844 area-System.Net Crash in System.Net.Sockets.AsyncServer.Tests in CI on Windows "http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/5061/consoleFull Not much to go on in the logs: ``` Discovering: System.Net.Sockets.AsyncServer.Tests Discovered: System.Net.Sockets.AsyncServer.Tests Starting: System.Net.Sockets.AsyncServer.Tests d:\j\workspace\dotnet_corefx_windows_debug_prtest\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00104\lib\tests.targets(129,5): warning MSB3073: The command ""CoreRun.exe xunit.console.netcore.exe System.Net.Sockets.AsyncServer.Tests.dll -xml testResults.xml -notrait category=nonwindowstests -notrait category=OuterLoop -notrait category=failing "" exited with code -2146232797. [d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\System.Net.Sockets.AsyncServer.Tests.csproj] d:\j\workspace\dotnet_corefx_windows_debug_prtest\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00104\lib\tests.targets(136,5): error : One or more tests failed while running tests from 'System.Net.Sockets.AsyncServer.Tests' please check log for details! ``` " +3845 area-System.Net SslStream_StreamToStream_Authentication_Success failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release_prtest/5049/console ``` Discovering: System.Net.Security.Tests Discovered: System.Net.Security.Tests Starting: System.Net.Security.Tests System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Authentication_Success [FAIL] Handshake completed in the allotted time Expected: True Actual: False Stack Trace: d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Security\tests\FunctionalTests\SslStreamStreamToStreamTest.cs(40,0): at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Authentication_Success() ``` +3849 area-System.Globalization Investigate removing Homebrew dependency for ICU The experience when you don't have an ICU or have a mismatched ICU (anything other than version 55) today is not great. Let's improve this experience for rc1 http://userguide.icu-project.org/design#TOC-ICU-Data-Compatibility Starting in ICU 3.8 and later, the data library that comes with ICU is binary compatible and structurally compatible with versions of ICU with the same major and minor version, or a maintenance release. This allows multiple maintenance releases of ICU to share the same data, but generally the latest maintenance release of the data should be used. +3850 area-System.Globalization Modify misc tests to use Invariant culture instead of current culture Also see issue #3759 for background Some tests assume en-us or invariant and on a test machine which is not configured the tests will fail. These tests should not depend on a specific default locale. Below is a set of tests that fail when LANG variable is not set in Linux. These should be fixed to explicitly use Invariant. Note that some of these tests fail due to unrelated but known issue with case-insensitive string comparison that happens to fail with the default locale of en-US-POSIX (when LANG is not set) so these tests may have to be disabled temporary for Linux until that issue is fixed Int32Tests.TestTryParse UInt32Tests.TestTryParse UInt16Tests.TestTryParse UInt64Tests.TestTryParse StringTests.TestLastIndexOf StringTests.TestEndsWith StringTests.TestStartsWith StringTests.TestIndexOf Int16Tests.TestTryParse Int64Tests.TestTryParse TypeTests.TestGetTypeByName Tests.Expression_Tests.TestCallInstanceMethodsByName CaseInsensitiveComparer_ctor.ExecuteCaseInsensitiveComparer_ctor CaseInsensitiveComparer_Default.ExecuteCaseInsensitiveComparer_Default CaseInsensitiveComparer_Object.ExecuteCaseInsensitiveComparer_Object CollectionsUtilTests.ExecuteCollectionsUtilTests System.Reflection.Tests.ModuleTest.GetTypeTest System.Reflection.Tests.MethodInfoPropertyTests.TestReturnType2 System.Reflection.Tests.MethodInfoPropertyTests.TestReturnType4 System.Reflection.Tests.GetTypeReflectionTests.GetType1 System.Reflection.Tests.ParameterInfoNameTests.TestMethodParams1 +3856 area-System.Collections Fix exception documentation on System.Collections.Immutable I noticed in making another change that a bunch of incorrect xml docs describing exceptions existed. This fixes those up by removing the invalid ones and adding explanations for the valid ones. +3857 area-System.Net Shim ip_mreqn, ipv6_mreq, and linger. These types are used for getting and setting IP multicast options. +3858 area-System.Globalization Support all CompareOptions values For cross plat we don't currently support CompareOptions other than Ordinal, IgnoreCase, OrdinalIgnoreCase and None. We need to understand how to support the other options on top of ICU, which has a different collation model than Win32. +3860 area-System.Collections Fix ImmutableList IList implementation for incompatible element types Add 15 unit tests to cover the `ImmutableList` and `ImmutableList+Builder` class's implementation of `IList.Contains`, `IList.Remove`, and `IList.IndexOf` for cases where the `object` argument is not of a compatible type with the type argument for the collection. All 15 of the added unit tests fail. Until the final commit, which fixes all the issues the tests demonstrated. Fix #1414 +3862 area-Meta Investigate all Double-Check locked patterns and consider static or Lazy Investigate all Double-Check locked patterns and consider alternative singleton implementations such as the `static` or `Lazy` patterns. See: http://csharpindepth.com/Articles/General/Singleton.aspx +3863 area-System.Runtime Add System.Runtime.InteropServices.ICustomMarshaler to the contract c.f. [coreclr #1767](https://github.com/dotnet/coreclr/issues/1767) The ICustomMarshaler interface needs to be added to the contract so that people can use it. +3865 area-System.Diagnostics Enable System.Diagnostics.Process.HandleCount property +3866 area-System.Net Implement System.Net.Utilities on OSX and Linux This is the library containing various Ping utilities. +3867 area-System.Net WinHttpHandler uses async WinHTTP patterns This is a large PR and addresses work item #3000. I apologize for not being able to structure it in a series of smaller commits. The bulk of this PR is switching WinHttpHandler to use the async pattern of calling WinHTTP APIs. This involved a significant restructuring of the code. As part of that, I split up the large WinHttpHandler class into multiple, smaller, helper classes. While the intent of using async WinHTTP calls is better performance and cancel-ability, this PR has not been fully optimized yet. Due to the schedule of RC1 code complete next week, it's important that this PR get in and get mileage on it in the next few weeks. There are several TODO items that will be done in later PR's. There is still work being tracked in #2165 for various follow-up items. For example, re-conciling the best SafeHandle pattern to use for WinHTTP between WebSockets.Client and WinHttpHandler. I'm currently using a simple Debug.WriteLine for verbose debug logging which can be turned on/off via environment variable. I plan to switch this to System.Net ETW trace loggers in the next commit and/or PR. But the logging has proved very useful in diagnosing issues. Please provide feedback. Depending on the feedback, some of it will be marked as follow-up items for future PRs. +3872 area-System.Net What is roadmap for HttpListener "It's not regular issue - it's design and road map question about HTTP stack. Our company focused on multi-agent solutions that are installed into multi-node trusted environment. So for recent years we use HttpListener and develop some set of lightweight http-servers, tightly bound to our task. If we need some features as Internet access, SSL, advaced static file support we use NGINX as frontend. So we not require to use some of prepared ASP.NET Servers or IIS while they are not so close to our task. But HttpListener has http.sys implementation in .NET so we require use netsh in Windows, if we use Mono - on Windows we got troubles and bugs and on Linux - all works well. So from netcore(dnx)/corefx we expected that HttpListener class will be kept but rewritten on Mono-like style with own socket wrapping and managed HTTP protocol support. So it would be good base for lightweight HTTP-based solutions. Instead of this we see that (or it seems) that roadmap of netcore is focused on aspnet-related HOSTS and we lost valid HttpListener support, but we are turned to use ASP.NET+MS MVC or Kestrels model. It's not what we expected - all other modules (as Reflection, Xml and so on) moved to more atomic and know-what-you-exactly-want style and design. But in NET stack we still see tendention to using monstrous-like complex ""hosts"". In System.Net.Http we see some improvements for client HTTP but not for Server. May we are not right but we not see activity on HttpListener or it's analog so it's limitation that force as to keep using not unified .NET 4.5 + Mono 4.0.4 stack. What exactly planned in HTTP stack for netcore/dnx? " +3873 area-System.Linq Incorrect assertions on compiling unbox expression `EmitUnboxUnaryExpression(Expression expr)` and `AddressOf(UnaryExpression node, Type type)` (only ever called on an unboxing expression) both assert that the value of the node is not a nullable type. Unboxing to nullable types is valid, and indeed works in release builds where these assertions aren't tested. The assertions cause attempts to test this valid use of unboxing to crash. +3877 area-System.Net Shim various socket methods. This change adds shims for most of the remaining straightforward methods in sockets: - accept - bind - connect - getpeername - getsockname - getsockopt - listen - setsockopt - shutdown +3878 area-System.Collections Add Sort(Comparison) methods to ImmutableArray and Builder ImmutableList and Builder has these Sort overloads, as does Array itself. This makes this same functionality easily accessible from ImmutableArray. Fix #2167 +3880 area-System.Collections Do not throw from ImmutableArray.RemoveRange when index==length ImmutableArray.RemoveRange(int, int) would throw when the first argument equals the length of the array, whereas ImmutableList.RemoveRange(int, int) allows the first argument to equal the length of the list. This makes them consistent by slightly widening the allowed input to ImmutableArray. ImmutableList is changed slightly to simplify the logic (but keep the meaning equivalent). The test is enhanced and a bug in the test fixed. Fix #2028 +3881 area-System.Linq Block.Expressions sometimes throws incorrect exception on out-of-range Given: ``` BlockExpression block = Expression.Block(Expression.Empty(), Expression.Constant(3)); ``` One would expect `block.Expressions[-1]`, `block.Expressions[2]`, etc. to throw `ArgumentOutOfRangeException`. Instead they throw `InvalidOperationException`. This depends on the factory used, so some cases will throw the correct exception, which is perhaps worse as this is then inconsistent. +3882 area-System.Linq Exception on empty block expression inconsistent. `Expression.Block()` throws an `ArgumentException`. `Expression.Block(Enumerable.Repeat(Expression.Parameter(typeof(int)), 1))` throws `InvalidOperaitonException`. They should both throw `ArgumentException`. +3883 area-System.Linq Block.Update returns different expression for identical children in different collection. According to the documentation: > If all of the children are the same, it will return this expression. However, only the enumerables themselves are compared, so a different enumeration of the same children will incorrectly return a new expression. +3887 area-System.Net Merge master into the dev/ni-xplat branch Merging back the changes from dotnet/master into the dev/ni-xplat branch, with all of the code that flowed into master during the PR. I've resolved the few conflicts there were in the shared shim code, which were fairly minor after all. I am planning on separating out the NetworkInformation shim code, so that there's less chance for unrelated changes to result in merge conflicts. +3888 area-System.Xml XmlBaseReader removes significant whitespace when wrapping another reader. "This issue produces data corruption because element contents are modified. We were able to condense the repro to a few lines in LinqPad: var sourceXml = ""a\r\nb\r\nc""; XmlReaderSettings settings = new XmlReaderSettings() { IgnoreWhitespace = true }; var streamToValidate = new MemoryStream(Encoding.UTF8.GetBytes(sourceXml), false); XmlReader dictionaryReader = XmlDictionaryReader.CreateTextReader(streamToValidate, new XmlDictionaryReaderQuotas()); //// XmlReader dictionaryReader = XmlReader.Create(streamToValidate, settings); XmlReader validatingReader = XmlReader.Create(dictionaryReader, settings); XDocument.Load(validatingReader).Dump(); Uncommenting the second dictionaryReader instead of the XmlDictionaryReader doesn’t reproduce the bug. " +3889 area-System.Net Establishing TLS secure channel fails when NewSessionTicket message received **Overview** HttpWebRequest throws error a connection error when a TLS key on the server is changed. Specifically this is the implementation done by CloudFlare. Every hour, on the hour xx:00 a web service fronted by CloudFlare will throw the following exception on the first execution, but all subsequent ones succeed: _System.Net Error: 0 : [7328] Exception in HttpWebRequest#58000300::EndGetResponse - The request was aborted: Could not create SSL/TLS secure channel._ **Sample** Reproducible example here, but it needs to be running right before the hour (xx:59:59) through the following hour (xx:00:00) in order to observe the exception. We are using Fitbit.com as the example as this is fronted by the CloudFlaire service: https://github.com/aarondcoleman/FitbitProxyTest **Other Links** - More info on how CloudFlare works: https://blog.cloudflare.com/tls-session-resumption-full-speed-and-secure/ - Forum thread on this issue: https://social.msdn.microsoft.com/Forums/vstudio/en-US/eb999cd4-b43b-4779-b01b-4a04017714e3/httpwebrequest-ssl-caching-bug-cloudflare-the-request-was-aborted-could-not-create-ssltls?forum=netfxbcl - System.Net.Trace showing the occurence at the changeover of hour: https://github.com/aarondcoleman/FitbitProxyTest/blob/master/System.Net.Trace.Log This is of high importance as our integration with the Fitbit API is affected. Every first call of the hour to the API fails per server node of our infrastructure. +3890 area-System.Net Shim Interop.libc.socket(). +3891 area-System.Net WinHttpHandler: Support retrieving the Trusted Issuer List from WinHTTP Get the Trusted Issuers List from WinHTTP and use that to help narrow down the list of eligible client certificates used in the WinHttpCertificateHelper class. +3892 area-System.Security Unix X500DistinguishedName prints multicomponent RDNs different than Windows "Normal certificate subjects are similar to ``` Sequence( Set(Sequence(Oid(CN), PrintableString(""CommonName""))), Set(Sequence(Oid(O), PrintableString(""Organization"")))) ``` When presented with a multi-component RDN like ``` Sequence( Set( Sequence(Oid(CN), PrintableString(""CommonName"")), Sequence(Oid(O), PrintableString(""Organization"")))) ``` Windows prints `CN=CommonName + O=Organization`. The OpenSSL library seems to float the latter into the former, resulting in Unix builds printing `CN=CommonName, O=Organization`. This is not expected to be very common, and Windows has an explicit disrecommendation for this on MSDN (https://msdn.microsoft.com/en-us/library/windows/desktop/aa376556%28v=vs.85%29.aspx - under Remarks): > We recommend against using multicomponent RDNs (e.g., CN=James+O=Microsoft) to avoid possible ordering problems when decoding occurs. Instead, consider using single valued RDNs (e.g., CN=James, O=Microsoft). " +3893 area-System.Security Unix X509Certificate2.SerialNumber doesn't include leading zero-bytes When the serial number's most significant byte has the most significant bit set, Windows includes a leading `0x00` to prevent it from being interpreted as a negative value. Unix does not. +3894 area-System.Net Documentation for HttpClient methods should state which exceptions can be thrown by the returned task Not 100% sure this is the right place for it, but it looks like HttpClient is in this repository so I'm reporting this here. The documentation for HttpClient methods (and async methods in general) should state which exceptions can be thrown by the returned task instead of just the exceptions that can be thrown by the method that returns the task. As example of this is the documentation for [HttpClient.GetStringAsync](https://msdn.microsoft.com/en-us/library/hh551746%28v=vs.118%29.aspx). Without this documentation you either have to catch everything ([well-documented as a bad practice](https://msdn.microsoft.com/en-us/library/ms182137.aspx?f=255&MSPPError=-2147217396)) or make educated guesses based on experimentation and [digging](https://stackoverflow.com/questions/24689263/exception-handling-for-httpclient-getstringasyncurl-async-api-call) through [various](https://social.msdn.microsoft.com/Forums/en-US/d8d87789-0ac9-4294-84a0-91c9fa27e353/bug-in-httpclientgetasync-should-throw-webexception-not-taskcanceledexception?forum=netfxnetcom) posts online, and if you go that route it's easy to miss that it throws, e.g., InvalidOperationException if the charset of the content type of the requested page can't be parsed into an encoding. +3895 area-System.Net Revising System.Net.Sockets contract v4.1 This issue discusses the changes being proposed in the current API surface of `System.Net.Sockets` contract version 4.1 in .NET Core. Version 4.1 is currently at an experimental stage and this revision takes it closer to the shape we intend to release at ASP.NET 5 RTM. ## Rationale .NET Core as a platform is intended to be modern, performant and cross-plat, so we need to ensure that the API surface is streamlined and adapted accordingly. This revision omits some of the Windows-specific or legacy types and methods that were present in the earlier (beta8) version of 4.1, and now includes new methods that follow the recommended TPL (async/await) pattern. ## Proposed API and Usage Following are the new Task Parallel Library-compatible methods being added to the class `System.Net.Sockets.Socket`. These are being added as extension methods to `Socket` class so that they can be supported on .NET framework via an OOB package as well (since we cannot add instance methods to types that are already defined in the .NET framework) ``` c# public static partial class SocketTaskExtensions { public static System.Threading.Tasks.Task AcceptAsync(this System.Net.Sockets.Socket socket) public static System.Threading.Tasks.Task AcceptAsync(this System.Net.Sockets.Socket thisSocket, System.Net.Sockets.Socket acceptSocket) public static System.Threading.Tasks.Task ConnectAsync(this System.Net.Sockets.Socket socket, System.Net.EndPoint remoteEndPoint) public static System.Threading.Tasks.Task ConnectAsync(this System.Net.Sockets.Socket socket, System.Net.IPAddress address, int port) public static System.Threading.Tasks.Task ConnectAsync(this System.Net.Sockets.Socket socket, System.Net.IPAddress[] addresses, int port) public static System.Threading.Tasks.Task ConnectAsync(this System.Net.Sockets.Socket socket, string host, int port) public static System.Threading.Tasks.Task ReceiveAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags) public static System.Threading.Tasks.Task ReceiveAsync(this System.Net.Sockets.Socket socket, System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) public static System.Threading.Tasks.Task ReceiveFromAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint) public static System.Threading.Tasks.Task ReceiveMessageFromAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint) public static System.Threading.Tasks.Task SendAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags) public static System.Threading.Tasks.Task SendAsync(this System.Net.Sockets.Socket socket, System.Collections.Generic.IList> buffers, System.Net.Sockets.SocketFlags socketFlags) public static System.Threading.Tasks.Task SendToAsync(this System.Net.Sockets.Socket socket, System.ArraySegment buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndpoint) } public struct SocketReceiveFromResult { public int ReceivedBytes; public EndPoint RemoteEndPoint; } public struct SocketReceiveMessageFromResult { public int ReceivedBytes; public SocketFlags SocketFlags; public EndPoint RemoteEndPoint; public IPPacketInformation PacketInformation; } ``` The usage of these new methods is the same as other APIs in .NET that follow the async/await pattern. For example: ``` c# private async void ConnectToServerAsync () { var socket = new Socket(SocketType.Stream, ProtocolType.Tcp); await socket.ConnectAsync(serverAddress, serverPort); // Use connected socket. } ``` ## Pull Request The pull request for this API change is #3655. It shows the diff from the previous revision of this contract, so you can see the types and methods that are no longer included in the proposed revision. ## Updates from Discussion - Revised initial proposal based on API review feedback from @terrajobst - Revised the signatures of methods `ReceiveFromAsync` and `ReceiveMessageFromAsync` based on feedback from @CIPop and @stephentoub - these async methods were modifying multiple variables through `ref` and `out` parameters. In order to avoid this, we have now defined their return values as structs (`SocketReceiveFromResult` and `SocketReceiveMessageFromResult`) that contain all the variables returned by the respective async methods. These new structs will also be added to the contract. - Also revised `ReceiveAsync` and `SendAsync` methods to accept `ArraySegment` as input parameter, in order to match existing APIs. - Need to add overloads for methods such as ConnectAsync, SendAsync and ReceiveAsync that take CancellationTokens to support canceling the operations +3905 area-System.Net Disable failing socket tests running in elevated mode Some of the cases expected to fail don't actually fail when running elevated. See https://github.com/dotnet/corefx/issues/3726. This disables those test cases so the tests can run in elevated mode. +3906 area-System.Diagnostics PerformanceCounters - Read OS counters on .NET Core Currently CoreFX generates the reference assembly System.Diagnostics.PerformanceCounter.dll however, there doesn't seem to be any counter part implementation for it, nor can I see an entry for this in the progress page at https://github.com/dotnet/corefx-progress/blob/master/src-diff/README.md. Is this expected? Thanks +3908 area-System.Linq Incorrect exception in parameterised block's last child is null. Creating a block from a list of expressions which contains a null normally throws `ArgumentNullException`. However, if this null expression is the last expression, and if the block has variables and doesn't have an explicitly set type, then it throws `NullReferenceException` instead. +3909 area-System.Linq Wrong parameter name when creating block with erroneous element Creating a `BlockExpression` with a null or unreadable expression throws `ArgumentNullException` and `ArgumentException` respectively. However, if the call was made to one of the overloads that receives these expressions as `IEnumerable` or `params Expression[]` and there is no explicit type, no variables and the number of expressions is between 2 and 5, then the parameter name in the exception throw is incorrect. +3911 area-System.Net Finish most of the sockets shims. - Shim SocketFlags - Shim select() - Fix some issues with error propagation in socket creation and accepted sockets The only functions that have not been shimmed are those relied upon for event notification (epoll/kqueue). +3913 area-System.Net System.Net.Sockets 4.1. contract contains several Windows-specific APIs and APM pattern methods This issue tracks the removal of some APIs from the Sockets contract in order to align it better to the .NET Core platform. ## Rationale The current version of Sockets 4.1 contract in beta8 includes some types, properties and methods that are tied to Windows-specific concepts. Since .NET Core is intended to be cross-plat, these need to be excluded in order to provide similar behavior and API surface across platforms. Further, the Sockets contract also contains methods following the APM pattern (Begin/End), which is not supported for other APIs within .NET Core. Hence, these methods are being excluded and new methods are being added that follow the recommended pattern TPL-based pattern of async/await (See #3895). Lastly, there are some constructors that are performing expensive, blocking operations within the constructor - these need to be removed as well. This issue tracks the removal of these APIs - a related issue is #3895 , which tracks addition of the TPL-based methods. ## Proposed API Exclusions Following are the types, properties and methods being excluded by the proposed revision to the contract: ### Types: ``` c# public partial struct SocketInformation public enum SocketInformationOptions public enum TransmitFileOptions ``` ### Properties/Methods/Constructors: ``` c# Type: Socket public Socket(System.Net.Sockets.SocketInformation socketInformation) public System.IAsyncResult BeginAccept - all overloads public System.IAsyncResult BeginConnect - all overloads public System.IAsyncResult BeginDisconnect public System.IAsyncResult BeginReceive - all overloads public System.IAsyncResult BeginReceiveFrom public System.IAsyncResult BeginReceiveMessageFrom public System.IAsyncResult BeginSend - all overloads public System.IAsyncResult BeginSendTo public void Disconnect(bool reuseSocket) public bool DisconnectAsync(System.Net.Sockets.SocketAsyncEventArgs e) public System.Net.Sockets.SocketInformation DuplicateAndClose(int targetProcessId) public System.Net.Sockets.Socket EndAccept - all overloads public void EndConnect(System.IAsyncResult asyncResult) public void EndDisconnect(System.IAsyncResult asyncResult) public int EndReceive - all overloads public int EndReceiveFrom(System.IAsyncResult asyncResult, ref System.Net.EndPoint endPoint) public int EndReceiveMessageFrom(System.IAsyncResult asyncResult, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint endPoint, out System.Net.Sockets.IPPacketInformation ipPacketInformation) public int EndSend - all overloads public int EndSendTo(System.IAsyncResult asyncResult) public void SetIPProtectionLevel(System.Net.Sockets.IPProtectionLevel level) Type: SocketAsyncEventArgs public bool DisconnectReuseSocket public System.Net.Sockets.TransmitFileOptions SendPacketsFlags Type: SocketFlags MaxIOVectorLength Type: TcpClient public TcpClient(System.Net.IPEndPoint localEP) public TcpClient(string hostname, int port) public System.IAsyncResult BeginConnect - all overloads public void Connect - all overloads public void EndConnect(System.IAsyncResult asyncResult) Type:TcpListener public System.Net.Sockets.Socket AcceptSocket() public System.Net.Sockets.TcpClient AcceptTcpClient() public void AllowNatTraversal(bool allowed) { } public System.IAsyncResult BeginAcceptSocket(System.AsyncCallback callback, object state) public System.IAsyncResult BeginAcceptTcpClient(System.AsyncCallback callback, object state) public static System.Net.Sockets.TcpListener Create(int port) public System.Net.Sockets.Socket EndAcceptSocket(System.IAsyncResult asyncResult) public System.Net.Sockets.TcpClient EndAcceptTcpClient(System.IAsyncResult asyncResult) Type:UdpClient public UdpClient(string hostname, int port) public void AllowNatTraversal(bool allowed) public System.IAsyncResult BeginReceive(System.AsyncCallback requestCallback, object state) public System.IAsyncResult BeginSend - all overloads public void Connect - all overloads public byte[] EndReceive(System.IAsyncResult asyncResult, ref System.Net.IPEndPoint remoteEP) public int EndSend(System.IAsyncResult asyncResult) public byte[] Receive(ref System.Net.IPEndPoint remoteEP) public int Send - all overloads public Task SendAsync(byte[] datagram, int bytes) ``` ## Pull Request The pull request that implements the removal of the above APIs is #3655 ## Discussion We are looking for feedback on the removal of these APIs based on the rationale described above. Also, if your code uses any of these APIs, please look at the revised contract in the PR for alternatives to use instead. If you believe the alternatives are not sufficient to address specific scenarios, that would be good to raise here as well. +3915 area-System.Net ClientAsyncAuthenticate_EachProtocol_Success failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release_prtest/5187/console ``` System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_EachProtocol_Success [FAIL] Timed Out Expected: True Actual: False Stack Trace: d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Security\tests\FunctionalTests\ClientAsyncAuthenticateTest.cs(196,0): at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Security\tests\FunctionalTests\ClientAsyncAuthenticateTest.cs(90,0): at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_EachProtocol_Success() ``` +3918 area-System.Net Create a placeholder stub for WebSockets.Client for non-Windows platforms WCF currently depends on WebSockets.Client API, but this API is not exposed on non-Windows platforms. There is a plan to add this in the future, but that will not happen in RC timeframe. However, we need to at least provide a placeholder stub so that WCF code will at least compile. @vijaykota - PTAL. +3920 area-System.Net Switched Sockets perf tests to Benchmarks "Rough draft of what the sockets tests will look switched to use Benchmarks for the perf tests. These perf tests run on Windows and give reasonable results, but on Linux they throw an error that ""ws2_32.dll"" is missing. replaces #3765 Results for Windows running on the core framework: ``` ``` Results for Windows running on the full framework: ``` ``` Times are in ms. @davidsh @pgavlin @cipop @stephentoub " +3922 area-System.Net Add a temporary PAL for ClientWebSocket. On Windows, the PAL delegates to WinHttpWebSocket; on *nix, all methods throw PlatformNotSupportedException. +3924 area-Infrastructure System.Security.Cryptography.Native fails to build on OSX El Capitan (10.11) It looks like that El Capitan may have removed the OpenSSL headers we depend on. @gkhanna79 is hitting some issues locally because `openssl/asn1.h` is not found. It would appear that the libraries we link against are still present in El Captian (so the .dylib we build should still run there) we just can't seem to build it out of the box. We need to figure out what the correct work around is (does installing the previous version of XCode or the command line compiler tools work, or maybe we need to get the headers via homebrew or something else)? The fact that Apple is on a 0.9.8 version of OpenSSL seems like it will also hurt us in obtaining the correct headers from a reasonably up to date package manager. +3926 area-System.Net Merge changes from TFS +3930 area-Meta Windows 7 build fails (update dev instructions about proxies and myget.org access) "I've been trying to build the latest good build for a couple of hours, I've updated dnvm and dnu build still cannot build: EXEC : error : FindPackagesById: Microsoft.NETCore.Platforms [c:\git\dotnet\corefx\build.proj] An error occurred while sending the request. EXEC : error : FindPackagesById: coveralls.io [c:\git\dotnet\corefx\build.proj] An error occurred while sending the request. EXEC : error : FindPackagesById: Microsoft.NETCore.Console [c:\git\dotnet\corefx\build.proj] HTTP request timed out. Exiting. EXEC : error : FindPackagesById: Microsoft.NETCore.TestHost [c:\git\dotnet\corefx\build.proj] An error occurred while sending the request. EXEC : error : FindPackagesById: OpenCover [c:\git\dotnet\corefx\build.proj] An error occurred while sending the request. EXEC : error : FindPackagesById: Microsoft.NETCore.Platforms [c:\git\dotnet\corefx\build.proj] HTTP request timed out. Exiting. EXEC : error : FindPackagesById: coveralls.io [c:\git\dotnet\corefx\build.proj] HTTP request timed out. Exiting. EXEC : error : FindPackagesById: Microsoft.NETCore.TestHost [c:\git\dotnet\corefx\build.proj] HTTP request timed out. Exiting. EXEC : error : FindPackagesById: Microsoft.NETCore.Console [c:\git\dotnet\corefx\build.proj] HTTP request timed out. Exiting. EXEC : error : FindPackagesById: OpenCover [c:\git\dotnet\corefx\build.proj] An error occurred while sending the request. EXEC : error : FindPackagesById: xunit.runner.utility [c:\git\dotnet\corefx\build.proj] An error occurred while sending the request. EXEC : error : FindPackagesById: Microsoft.NETCore.Platforms [c:\git\dotnet\corefx\build.proj] HTTP request timed out. Exiting. EXEC : error : FindPackagesById: ReportGenerator [c:\git\dotnet\corefx\build.proj] An error occurred while sending the request. EXEC : error : FindPackagesById: Microsoft.NETCore.Platforms [c:\git\dotnet\corefx\build.proj] HTTP request timed out. Exiting. EXEC : error : FindPackagesById: xunit.runner.utility [c:\git\dotnet\corefx\build.proj] An error occurred while sending the request. EXEC : error : FindPackagesById: ReportGenerator [c:\git\dotnet\corefx\build.proj] HTTP request timed out. Exiting. EXEC : error : FindPackagesById: Microsoft.DotNet.xunit.performance.analysis [c:\git\dotnet\corefx\build.proj] HTTP request timed out. Exiting. EXEC : error : FindPackagesById: ReportGenerator [c:\git\dotnet\corefx\build.proj] An error occurred while sending the request. c:\git\dotnet\corefx\build.proj(24,5): error MSB3073: The command """"c:\git\dotnet\corefx\packages//dnx-coreclr-win-x86.1.0.0-beta7/ \bin\dnu.cmd"" restore --packages ""c:\git\dotnet\corefx\packages"" --source https://www.myget.org/F/dotnet-core/ --source https://www .myget.org/F/dotnet-coreclr/ --source https://www.myget.org/F/dotnet-corefxtestdata/ --source https://www.myget.org/F/dotnet-buildt ools/ --source https://www.nuget.org/api/v2/ ""c:\git\dotnet\corefx\src"" ""c:\git\dotnet\corefx\packages/Microsoft.DotNet.BuildTools. 1.0.25-prerelease-00104/lib/"""" exited with code 1. I'd think this should ""just work"", did I miss an install or setup step? " +3934 area-Meta Produce reference assembly packages for everything that exists today in `c:\Program Files(x86)\Reference Assemblies` It would be great to not require visual studio installs to compile for any of the framework defined in `c:\Program Files(x86)\Reference Assemblies`. We don't have to do all up front but we could start with the most popular ones (this includes all of the PCL profiles as well). It would make it possible to compile PCLs on mono without installing the `xbuild-frameworks` package. It would also make it possible to compile class libraries on linux targeting .NET Framework. I would allow us to delete this entire class that I hate so much :smile: https://github.com/aspnet/dnx/blob/dev/src/Microsoft.Dnx.Runtime/FrameworkReferenceResolver.cs +3935 area-System.Security Unix FindBySubjectKeyIdentifier does not do the same fallback as Windows It turns out that a lot of the test failing marked as #3099 aren't failing due to that problem. The test failures coming from a PFX was a red herring. In the case of the System.Security.Cryptography.X509Certificates.Tests.FindTests.TestBySubjectKeyIdentifier_MatchA test case, it was actually testing the fallback behavior of [CertGetCertificateContextProperty(CERT_KEY_IDENTIFIER_PROP_ID)](https://msdn.microsoft.com/en-us/library/windows/desktop/aa376079%28v=vs.85%29.aspx#_CERT_KEY_IDENTIFIER_PROP_ID): > If nonexistent, searches for the szOID_SUBJECT_KEY_IDENTIFIER extension. If that fails, a SHA1 hash is done on the certificate's SubjectPublicKeyInfo member to produce the identifier values. So, yeah, we should do that. +3936 area-System.Security X509Duplicate is used like X509UpRef, but may actually allocate new memory, investigate usages For the most part the callers of the function use it to turn cert.Handle (IntPtr) into a SafeX509Handle. There are probably good-and-less-expensive ways of doing that. +3942 area-Infrastructure Set AssemblyInfomationalVersion to package version It would make tracking down builds so much easier. /cc @ericstj +3948 area-System.Net Linux Sockets: Background thread NullReferenceException in APMServer Tests http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/3552/ ``` Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object. at System.Net.Sockets.SafeCloseSocket.get_AsyncContext() at System.Net.Sockets.SocketPal.AcceptAsync(Socket socket, SafeCloseSocket handle, SafeCloseSocket acceptHandle, Int32 receiveSize, Int32 socketAddressSize, AcceptOverlappedAsyncResult asyncResult) at System.Net.Sockets.Socket.DoBeginAccept(Socket acceptSocket, Int32 receiveSize, AcceptOverlappedAsyncResult asyncResult) at System.Net.Sockets.Socket.BeginAccept(Socket acceptSocket, Int32 receiveSize, AsyncCallback callback, Object state) at System.Net.Sockets.Socket.BeginAccept(Int32 receiveSize, AsyncCallback callback, Object state) at System.Net.Sockets.Socket.BeginAccept(AsyncCallback callback, Object state) at System.Net.Sockets.Tests.SocketTestServerAPM.OnAccept(IAsyncResult result) at System.Net.LazyAsyncResult.Complete(IntPtr userToken) at System.Net.ContextAwareResult.CompleteCallback(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Net.ContextAwareResult.Complete(IntPtr userToken) at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) at System.Net.LazyAsyncResult.InvokeCallback(Object result) at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionCallback(Int32 numBytes, SocketError errorCode) at System.Net.Sockets.AcceptOverlappedAsyncResult.CompletionCallback(Int32 acceptedFileDescriptor, Byte[] socketAddress, Int32 socketAddressLen, SocketError errorCode) at System.Net.Sockets.SocketAsyncContext.AcceptOperation.InvokeCallback() at System.Net.Sockets.SocketAsyncContext.AsyncOperation.b__26(Object o) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() One or more tests failed while running tests from 'System.Net.Sockets.APMServer.Tests'. Exit code 6. ``` +3949 area-System.Net Merge changes from TFS +3951 area-System.Net Complete x-plat implementations of NetworkInformation This brings all of my pending changes into the corefx dev/ni-xplat branch. At this point, all of the members in this library are either implemented or throw a PlatformNotSupportedException. The only exception for this is NetworkChange.NetworkAddressChanged, which is implemented on Linux, but not yet on OSX. The implementation for that looks like it will be fairly complicated, so I am going to try to get everything else checked in before attempting it. Before moving all of this into corefx/master, I'll try to address any pending cleanup and refactoring that reviewers recomnmend. The goal is to get the code here into corefx/master by our Wednesday feature deadline. After that, and before RC1 releases, I will make do some additional code cleanup and add more test validation to the library; to the string parsing logic in particular. +3952 area-System.Security Unix AES in-place decryption returns incorrect answers There was a specific test, VerifyInPlaceEncryption, that passed. Another test, TransformStateSeparation, was marked as failing due to #1965. #1965 is fixed locally (it was a test bug), but TransformStateSeparation continues to fail. Investigation showed that the problem went away without using in-place decryption. So now TransformStateSeparation uses distinct buffers for input and output, and a new test, VerifyInPlaceDecryption, tracks this new failure. +3954 area-System.Net Support channel binding in xplat SslStream WCF uses the SslStream.TransportContext property from the client to the server. This requires support for the GetChannelBinding method +3956 area-Infrastructure Disk space for Mac CI tests "All CI tests are failing with ""There is not enough space on the disk."" on dotnet_corefx_mac_release_prtest " +3957 area-System.Linq CatchBlock with named exception variable should have space in before variable name on ToString() "The result of `Expression.Catch(Expression.Variable(typeof(Exception), ""ex""), Expression.Empty()).ToString()` is `catch (Exceptionex) { ... }`. It should be `catch (Exception ex) { ... }`. " +3958 area-System.Linq Many XxxExpression.Update returns different expression for identical children in different collection. According to the documentation: > If all of the children are the same, it will return this expression. However, only the enumerables themselves are compared, so a different enumeration of the same children will incorrectly return a new expression. In particular a `TryExpression` with no catch blocks (valid if the expression has a finally or fault block) must be `Update`d with the empty `Handlers` property it holds fed back to it, rather than `null` or another empty collection of handlers. +3962 area-System.Net Finish the shims for S.N.Sockets. - Unify the remaining platform-specific managed bits: Information on platform support for multiple connection attempts and dual-stack IPv4 packet info is now provided by a pair of shim functions rather than compile-time constants. - Change Interop.Sys.Socket() to be more restrictive in the address families, socket types, and protocol families it allows. The code now only recognizes values that we have mappings for and returns appropraite errors otherwise. - Delete some leftover files. +3963 area-Serialization Generalized serialization surrogate support Provide a solution for types that are serializable on desktop .NET but not on .NET Core +3966 area-Infrastructure Upgrade CoreFX to buildtools 106 Consumes some changes to perf testing from https://github.com/dotnet/buildtools/pull/308 @stephentoub @mellinoe +3967 area-Infrastructure Code coverage badge is out of date **Line coverage** Badge number: 56.8% Actual number: 57.8% **Branch coverage** Badge number: 45.5% Actual number: 47.0% +3968 area-System.Globalization [System.Globalization] TestLocaleAlternateSortOrder failed (local build) "``` Discovering: System.Globalization.Tests Discovered: System.Globalization.Tests Starting: System.Globalization.Tests System.Globalization.Tests.CompareInfoTest.TestLocaleAlternateSortOrder(locale: ""de-DE"", string1: ""њ"", string2: ""UE"", expected: -1) [FAIL] Assert.Equal() Failure Expected: -1 Actual: 1 Stack Trace: E:\Workspace\github\corefx\src\System.Globalization\tests\CompareInfo\compareinfo.cs(137,0): at System.Globalization.Tests.CompareInfoTest.TestLocaleAlternateSortOrder(String locale, String string1, String string2, Int32 expected) System.Globalization.Tests.CompareInfoTest.TestLocaleAlternateSortOrder(locale: ""de-DE_phoneb"", string1: ""њ"", string2: ""UE"", expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: 1 Stack Trace: E:\Workspace\github\corefx\src\System.Globalization\tests\CompareInfo\compareinfo.cs(137,0): at System.Globalization.Tests.CompareInfoTest.TestLocaleAlternateSortOrder(String locale, String string1, String string2, Int32 expected) Finished: System.Globalization.Tests === TEST EXECUTION SUMMARY === System.Globalization.Tests Total: 1145, Errors: 0, Failed: 2, Skipped: 0, Time: 6,192s ``` " +3969 area-System.Net [System.Net.NetworkInformation] BasicTest_AccessInstanceProperties_NoExceptions test failed (local build) ``` System.Net.NetworkInformation.Tests.NetworkInterfaceBasicTest.BasicTest_AccessInstanceProperties_NoExceptions [FAIL] Overflow Expected: True Actual: False Stack Trace: Discovered: System.Composition.Tests E:\Workspace\github\corefx\src\System.Net.NetworkInformation\tests\FunctionalTests\NetworkInterfaceBasicTest.cs(39,0): at System.Net.NetworkInformation.Tests.NetworkInterfaceBasicTest.BasicTest_AccessInstanceProperties_NoExceptions() Finished: System.Net.NetworkInformation.Functional.Tests Starting: System.Composition.Tests === TEST EXECUTION SUMMARY === System.Net.NetworkInformation.Functional.Tests Total: 19, Errors: 0, Failed: 1, Skipped: 0, Time: 3,682s ``` +3970 area-System.Net Add System.Net.NetworkInformation to README.md @stephentoub @SidharthNabar @CIPop @pgavlin PTAL +3971 area-System.Net Add System.Net.NetworkInformation to README.md +3972 area-System.Globalization Hungarian double compression test failing on Linux "``` C# CultureInfo.CurrentCulture = new CultureInfo(""hu-HU""); Console.WriteLine(""dzsdzs"".IndexOf(""ddzs"")); ``` This prints out 0 on Windows but -1 on Linux. If StringComparison.CurrentCultureIgnoreCase is used instead of the CurrentCulture default, both Windows and Linux print out 0. " +3973 area-System.Globalization Diacritics test failing on Linux "``` C# CultureInfo.CurrentCulture = new CultureInfo(""en-US""); Console.WriteLine(""Exhibit a\u0300\u00C0"".IndexOf(""\u0300"")); ``` Using both StringComparison.CurrentCulture, CurrentCultureIgnoreCase, or OrdinalIgnoreCase, on Windows this prints out 9, but on Linux it prints out -1. " +3975 area-System.Net System.Net.Sockets.Tests failing ``` System.Net.Sockets.Tests -> E:\oss\corefx\bin\Windows_NT.AnyCPU.Debug\System.Net.Sockets.Tests\System.Net.Sockets.Tests.dll xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Net.Sockets.Tests Discovered: System.Net.Sockets.Tests Starting: System.Net.Sockets.Tests System.Net.Sockets.Tests.UdpClientTest.BeginSend_Success [FAIL] System.Net.Sockets.SocketException : An address incompatible with the requested protocol was used Stack Trace: E:\oss\corefx\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(3213,0): at System.Net.Sockets.Socket.DoBeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint endPointSnapshot, SocketAddress socketAddress, OverlappedAsyncResult asyncResult) E:\oss\corefx\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(3158,0): at System.Net.Sockets.Socket.BeginSendTo(Byte[] buffer, Int32 offset, In t32 size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback callback, Object state) E:\oss\corefx\src\System.Net.Sockets\src\System\Net\Sockets\UDPClient.cs(598,0): at System.Net.Sockets.UdpClient.BeginSend(Byte[] datagram, Int32 bytes , IPEndPoint endPoint, AsyncCallback requestCallback, Object state) E:\oss\corefx\src\System.Net.Sockets\tests\FunctionalTests\UdpClientTest.cs(59,0): at System.Net.Sockets.Tests.UdpClientTest.BeginSend_Success() Finished: System.Net.Sockets.Tests ``` I think it might be some kind of intermittent issue. +3978 area-System.Net Shim the last platform APIs used by S.N.NameResolution. gethostbyaddr and gethostbyname had not yet been shimmed. +3982 area-System.Data System.Data.SqlClient package regression: no DNXCore50 build in 4.0.0-beta-23409 "I can't find anywhere this is intentional - so assuming it's a bug. Between `4.0.0-beta-23225` and `4.0.0-beta-23409` (current) the DNXCore50 lib was dropped. This of course breaks anyone with `4.0.0-beta-*` doing a `dnxcore50` build. Here's a better illustration of the problem: Was this an intentional change I just can't find the documentation for, or does nuget.org just need an fixed build here? Or am I an idiot? All of these are valid options. " +3985 area-System.Net Implement HttpContentAsyncStream.Write in CurlHandler WCF ends up trying to use Stream.Write as part of HttpContent.CopyToAsync implementation. While that should be addressed separately to use WriteAsync, it's possible others are also using Write instead of WriteAsync, and today we throw NotSupportedException from Write. So as to let this at least work, I'm implementing Write to delegate to WriteAsync. I also noticed we were missing a FlushAsync implementation, so I've added one. cc: @davidsh, @roncain, @kapilash +3986 area-System.IO Use Optimized Zlib-Intel to Build clrcompression.dll **Summary** Intel has developed an optimized version of Zlib that includes architecture specific optimizations and algorithmic changes to improve the included deflate() and crc32() functions. Since System.IO.Compression calls out to these functions through clrcompression.dll, I suggest that Zlib-Intel to be used to build clrcompression.dll. **Test Results** I have compiled the library myself, and by renaming the .dll to clrcompression.dll and replacing the clrcompression included with .NET Core, I see an improvement of **20-30%** when doing compression using GZipStream on an Intel® 5th Generation Core (tm) i5 Processor based system, as well as on an Intel® Xeon® Processor E5 v2 Family based server system. The gain comes entirely from the optimized deflate() function. **Link** The developer of Zlib-Intel has provided support for VS Intrinsics here: https://github.com/jtkukunas/zlib/tree/win32_nmake +3993 area-System.IO "Overload of Directory.DeleteDirectory(""path"", true) that deletes what it can and leaves rest" Whenever we have clean up code to remove directories and files, we always end up with hacks to workaround issues with readonly files, handles being temporarily held. The is no reliable mechanism to delete the folders and files, and there is no mechanism to skip failures and report them at the end. Which leads to poor implementations that fail on long paths, sym and hard links, and random errors. See: https://github.com/NuGet/NuGet.Client/pull/13 http://stackoverflow.com/questions/329355/cannot-delete-directory-with-directory-deletepath-true And many more random suggestions pop up on the interwebs CC // @xavierdecoster +3995 area-System.Linq Add tests for expression interpreter Cross-check expression interpreter against expression compiler by using a catalog of expressions. +4001 area-System.Net Fix assert and leak of WinHttpRequestState object Discovered during testing with DEBUG version of CoreCLR running internal ToF tests. The design of the WinHttpRequestState is such that it stays alive due to a GCHandle.Alloc(this) in its constructor. This keeps the object alive during any of the native WinHTTP callbacks. However, the object was being prematurely disposed during the Dispose() of the WinHttpResponseStream. Instead, it should have been explicitly disposed during the final HANDLE_CLOSING callback from WinHTTP when the request handle was disposed. The early disposing of the WinHttpRequestState object was doing a GCHandle.Free() of the state object. This later caused an Assert() in the DEBUG version of the CoreCLR when doing GCHandle.FromIntPtr() indicating that the handle was already deallocated. +4002 area-System.Net "Sockets tests depend on ""localhost"" resolving to an IPv6 and an IPv4 address" This is not always the case on Linux: how the name resolves depends on the host's configuration. +4003 area-System.Net Socket_SendToAsyncV4IPEndPointToV4Host_Throws_Unix fails on OSX. +4004 area-System.Net OS X does not provide IPv4 packet info for dual-stack sockets. There is not likely to be a mitigation, so this will probably just need to be documented. +4005 area-System.Net AcceptV6BoundToSpecificV6_Success fails on *nix. +4006 area-System.Net Socket_SendToAsyncV4IPEndPointToV4Host_Throws fails on *nix. There is a mismatch in the error code returned by Socket.SendToAsync. +4007 area-System.Net Consider implementing Socket.SendPacketsAsync on *nix. +4008 area-System.Net Linger time is incorrect on OS X for boundary values. +4009 area-System.Net Sockets APM performance tests fail on OS X. This is possibly due to a large number of open sockets: IIRC the default limit for open file descriptors on OS X is 256; these tests may open many more when run in parallel. +4010 area-System.Net Address PR feedback for System.Net.Sockets. I've also replaced all of the dummy issues with the actual issue numbers. Fixes #3441. +4012 area-System.Net Merge master back into dev/ni-xplat I'm going to put this PR here to check that it passes CI. I'll merge once it completes then rebase my work against master and submit there. +4014 area-System.Linq IRuntimeVariables implementations inconsistent on out-of-range access "Some of the implementations of `IRuntimeVariables` that can be produced from `RuntimeVariablesExpression` will, when indexed with an out-of-range index, throw `ArgumentOutOfRangeException` with a `ParamName` value of `""index""` as one would expect. Some however will throw `IndexOutOfRangeException`. " +4018 area-System.Linq Expression interpreter - Issue with MemberInit "See disabled test ""CompileInterpretCrossCheck_MemberInit"" in PR for #3995. System.Exception : Error for expression 'new MI2() {MI1 = {X = 42, Y = ""qux""}, Bars = {Void Add(Int32)(2), Void Add(Int32)(3), Void Add(Int32)(5)}}': ``` System.NullReferenceException: Object reference not set to an instance of an object. at System.Linq.Expressions.Interpreter.LightCompiler.CompileMember(Expression from, MemberInfo member) in src\System\Linq\Expressions\Interpreter\LightCompiler.cs:line 2415 ``` " +4019 area-System.Linq Expression interpreter - Issue with Convert "See disabled test ""CompileInterpretCrossCheck_Convert"" in PR for #3995. System.Exception : Error for expression 'Convert(null)': ``` Xunit.Sdk.NotNullException: Assert.NotNull() Failure ``` " +4020 area-System.Linq Expression interpreter - Issue with Invoke "See disabled test ""CompileInterpretCrossCheck_Invoke"" in PR for #3995. System.Exception : Error for expression '{var Param_0;var Param_1;var Param_2; ... }': ``` Xunit.Sdk.EqualException: Assert.Equal() Failure Expected: (null) Actual: 1 ``` " +4021 area-System.Linq Expression interpreter - Issue with Unbox "See disabled test ""CompileInterpretCrossCheck_Unbox"" in PR for #3995. System.Exception : Error for expression 'Unbox(null)': ``` Xunit.Sdk.NotNullException: Assert.NotNull() Failure at Xunit.Assert.NotNull(Object object) ``` " +4022 area-System.Linq Expression interpreter - Issue with ConvertChecked "See disabled test ""CompileInterpretCrossCheck_ConvertChecked"" in PR for #3995. System.Exception : Error for expression 'ConvertChecked(False)': ``` Xunit.Sdk.NotNullException: Assert.NotNull() Failure at Xunit.Assert.NotNull(Object object) ``` " +4030 area-System.Security Adding a dependency in one project.json breaks build very badly "Adding the following line in `src\System.Net.Http\src\project.json` is breaking build (on all platforms). ``` ""System.Security.Cryptography.OpenSsl"": ""4.0.0-beta-*"", ``` Firstly, running build in the root directory results in failure in the package restore step. This error is due to e945fa2b4e1d54ee68c92e8d027e99fc4b894448 Strangely, only on windows, we get to go past this just by running `build.cmd` again. Secondly, even if we revert the above commit, The build break is not just in System.Net.Http project but across the board. The following projects are broken because of one line change in one project.json : - `System.Net.Security` - `System.Net.Sockets` - `System.Security.AccessControl` - `System.Security.Cryptography.Algorithms` and a few more. I can see from the build logs that the System.Security.Cryptography etc are missing from the references. I am not able to figure out if this is an issue with dnu's resolution mechanism (coupled with the dependencies in corefx) or if this a problem with current version of this particular package. Please note that this was working till very recently in a PR. Am seeing this only when I tried to rebase it with master. " +4031 area-System.Net Fix System.Net's Interop.OpenSsl error handling There are 2 issues with OpenSsl's current error handling 1. In Interop.OpenSsl.Disconnect, we are ignoring the SSL_get_error error code, and just continuing even though there was an error from SSL_shutdown. 2. There are 2 sets of error codes in OpenSSL: 1. Those defined in err.h 2. Those defined in ssl.h These two sets overlap, for example ERR_R_SYS_LIB = 2 and SSL_ERROR_WANT_READ = 2. In Interop.OpenSsl.GetSslError, if the SslErrorCode returned from SSL_get_error (defined in ssl.h) is SSL_ERROR_SYSCALL, it calls ERR_get_error (defined in err.h), and casts that result to an SslErrorCode, which is incorrect since it will return a separate set of error codes. We need to treat these errors separately, since they are separate sets with conflicting values. +4033 area-System.Linq Unconditionally enable expression interpreter To ship in RC1, we can just enable it unconditionally in the .csproj files. +4037 area-System.Net System.Net.Sockets.APMServer.Tests crashed in CI on Windows "http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/5448/console ``` Discovering: System.Net.Sockets.APMServer.Tests Discovering: System.Net.NetworkInformation.Functional.Tests Discovered: System.Net.NetworkInformation.Functional.Tests Starting: System.Net.NetworkInformation.Functional.Tests Discovered: System.Net.Sockets.APMServer.Tests Starting: System.Net.Sockets.APMServer.Tests Finished: System.Net.NetworkInformation.Functional.Tests === TEST EXECUTION SUMMARY === System.Net.NetworkInformation.Functional.Tests Total: 19, Errors: 0, Failed: 0, Skipped: 0, Time: 0.547s System.Xml.RW.XmlSystemPathResolver.Tests -> d:\j\workspace\dotnet_corefx_windows_debug_prtest\bin\Windows_NT.AnyCPU.Debug\System.Xml.RW.XmlSystemPathResolver.Tests\System.Xml.RW.XmlSystemPathResolver.Tests.dll System.Xml.RW.XmlReader.Tests -> d:\j\workspace\dotnet_corefx_windows_debug_prtest\bin\Windows_NT.AnyCPU.Debug\System.Xml.RW.XmlReader.Tests\System.Xml.RW.XmlReader.Tests.dll xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Xml.RW.XmlSystemPathResolver.Tests Discovered: System.Xml.RW.XmlSystemPathResolver.Tests d:\j\workspace\dotnet_corefx_windows_debug_prtest\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00107\lib\tests.targets(129,5): warning MSB3073: The command ""CoreRun.exe xunit.console.netcore.exe System.Net.Sockets.APMServer.Tests.dll -xml testResults.xml -notrait category=nonwindowstests -notrait category=OuterLoop -notrait category=failing "" exited with code -2146232797. [d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\System.Net.Sockets.APMServer.Tests.csproj] d:\j\workspace\dotnet_corefx_windows_debug_prtest\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00107\lib\tests.targets(136,5): error : One or more tests failed while running tests from 'System.Net.Sockets.APMServer.Tests' please check log for details! [d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\System.Net.Sockets.APMServer.Tests.csproj] ``` " +4039 area-System.Net Implement System.Net.NetworkInformation on OSX, Linux This brings the Linux and OSX implementations of System.Net.NetworkInformation into master. I've rebased my work from my dev branch (dev/ni-xplat) into a single commit, as the history of that branch was very very convoluted and messy, and wasn't easily rebaseable. On top of that, I've run CodeFormatter.exe, manually formatted the project file with some extra spacing, and resolved an additional merge conflict with the master branch. The code was reviewed prior to merging into the dev branch. For context for anyone wanting a brief overview, here's the description I put into the consolidated commit: This commit adds the Linux and OSX implementations for System.Net.NetworkInformation, a library for querying local system information regarding network interfaces, network capabilities, current network connection status, socket connections, various network protocol statistics, both global and per-network-interface, current network addresses, and various other configuration options and statistics. On Linux the information is primarily surfaced through: - /proc/net/*, various other in-memory files that expose network configuration and machine statistics - Getifaddrs() for querying the addresses for all network interfaces - Netlink sockets for detecting network address change events On OSX: - Sysctl: Exposes most of the network and protocol statistics, as well as routing information, configuration options, etc. - Getifaddrs(): Same as above, for enumerating addresses. - Some network configuration files are also parsed from disk, if available, similar to above. NOTE: Due to the fact that this API is closely tied to the information and statistics that are exposed through Win32 APIs (iphlpapi.dll), some individual pieces of information are not available on Linux and OSX. Depending on the range of information exposed through those operating systems, we are able to gather much of the same data, but it is often not identical to the set that is exposed from Windows. Members that cannot be retrieved instead throw a PlatformNotSupportedException. +4040 area-System.IO DriveInfo tests seeing / instead of \ after CoreCLR test-runtime upgrade ``` Discovered: System.IO.FileSystem.DriveInfo.Tests Starting: System.IO.FileSystem.DriveInfo.Tests System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests.TestConstructor [FAIL] Assert.Equal() Failure Expected: C:\ Actual: C:/ Stack Trace: D:\Src\corefx\src\System.IO.FileSystem.DriveInfo\tests\DriveInfo.Windows.Tests.cs(39,0): at System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests.TestConstructor() Finished: System.IO.FileSystem.DriveInfo.Tests === TEST EXECUTION SUMMARY === System.IO.FileSystem.DriveInfo.Tests Total: 8, Errors: 0, Failed: 1, Skipped: 0, Time: 0.313s ``` +4041 area-System.Net Unify the two definitions of WinHttpException. Fixes #2542. +4044 area-System.Net Current proposed version of System.Net.NetworkInformation 4.1 contains APM and synchronous pattern methods The `IPGlobalProperties` abstract class has the following APM pattern/synchronous methods: ``` c# public virtual System.IAsyncResult BeginGetUnicastAddresses(System.AsyncCallback callback, object state) public virtual System.Net.NetworkInformation.UnicastIPAddressInformationCollection EndGetUnicastAddresses(System.IAsyncResult asyncResult) public virtual System.Net.NetworkInformation.UnicastIPAddressInformationCollection GetUnicastAddresses() ``` These need to be removed in order for this contract to better align with the other APIs in .NET Core. Further, an equivalent method that follows the TPL pattern already exists in this class and should be the one that is used for this functionality: ``` c# public virtual System.Threading.Tasks.Task GetUnicastAddressesAsync() ``` +4045 area-System.Reflection Handle properties on types in System.Reflection.Metadata should be public "It appears that all types that wrap metadata rows (such as TypeDefinition) have a private Handle property. [Example](https://github.com/dotnet/corefx/blob/master/src/System.Reflection.Metadata/src/System/Reflection/Metadata/TypeDefinition.cs#L36-L39): ``` csharp // from TypeDefinition.cs private TypeDefinitionHandle Handle { get { return TypeDefinitionHandle.FromRowId(RowId); } } ``` I find that I often use LINQ to search thru table results looking for specific information, but need the handle at the end. For example, this code searches thru the TypeReferences for System.Object - useful for finding all the class objects in an assembly. Note how I have to create an anonymous type to hold the handle separately from the type reference, even though the TypeReference can easily construct a handle internally. ``` csharp _reader.TypeReferences .Select(h => new { Handle = h, TypeRef = _reader.GetTypeReference(h) }) .Where(o => _reader.GetString(o.TypeRef.Name) == ""Object"" && _reader.GetString(o.TypeRef.Namespace) == ""System"") .Select(o => o.Handle) .Single(); ``` I'd much rather write this: ``` csharp _reader.TypeReferences .Select(h => _reader.GetTypeReference(h)) .Where(tr => _reader.GetString(tr.Name) == ""Object"" && _reader.GetString(tr.Namespace) == ""System"") .Select(tr => tr.Handle) .Single(); ``` " +4046 area-Meta Co-locate Reference Docs and Sample Code within the Repo on a Per-Library Basis "# Problem As .NET Core moves the platform towards being more modular, sample code and reference docs should move in that direction too. We should have a good story in place for reference docs and samples. **Note:** Samples here mean samples which _only_ call the API they are co-located with. These are not cross-cutting, they don't cover scenarios, and they don't involve other app models (ASP.NET, UWP, etc). They will be console apps which cover only the ""happy path"" of an API in a demonstrative way. # Solution Co-locate reference docs and samples with the code they describe and demonstrate usage of, on a per-library basis. The existing structure of libraries in corefx would be altered as such (using `System.Linq` as an example): Before: ``` /src |__System.Linq |__/ref |__/src |__/tests ``` After: ``` /src |__System.Linq |__/ref |__/doc (new! contains documentation, perhaps in markdown files) |__/src |__/samples (new! contains a buildable sample project) |__/tests ``` Sample code in `/samples` will be embedded directly into docs in the `/doc` folder so that any time sample code is changed, the documentation is automatically updated. See [an example of how this may look](https://github.com/cartermp/corefx/tree/samples/src/System.Linq) for some more detail. ## Building The proposed solution would affect the build process. I see two options here: a. Force `/samples` to build before a release b. Eventually have `/samples` build as ""full"" build, but do not require that to release Both have their benefits and drawbacks which are worth discussing. Finally, hooks will have to eventually be added to force other sample projects outside of corefx to build so their sample code can also stay up-to-date. # Justification This solution will form the ""core"" of an eventual samples system which will ultimately accomplish the following: - Easier to update reference docs and samples if they live with the code they describe - No code samples in reference docs will be out-of-date and fail to compile - No code samples in any .NET Core conceptual docs will be out-of-date and fail to compile - No .NET Core sample applications will be out-of-date and fail to compile We want to avoid a future scenario where developers have to turn to places like StackOverflow to learn how to use an API because the sample code in the documentation is outdated and/or won't compile. If all our .NET Core samples are tied into the build system, we can avoid that scenario. " +4047 area-System.Net HttpClientHandlerTest.PostAsync_CallMethod_StreamContent failed in Windows_Debug PR test ``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/5475/testReport/junit/System.Net.Http.Functional.Tests/HttpClientHandlerTest/PostAsync_CallMethod_StreamContent_remoteServer__http___httpbin_org_post__requestContentStream__MemoryStream___CanRead___True__CanSeek___True__CanTimeout___False__CanWrite___False__Capacity___1234_________expectedData___62__23__186__150__174_______/ ``` It seems the operation timed out in the test run. Here's the log: ``` Stacktrace MESSAGE: System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The operation timed out +++++++++++++++++++ STACK TRACE: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__c5.MoveNext() in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.cs:line 478 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.WinHttpHandler.d__5.MoveNext() in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 837 ``` +4048 area-System.Net HttpClientHandlerTest.PostAsync_CallMethod_FormUrlEncodedContent Failed in Windows_Debug PR Test ``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/5475/testReport/junit/System.Net.Http.Functional.Tests/HttpClientHandlerTest/PostAsync_CallMethod_FormUrlEncodedContent_remoteServer__http___httpbin_org_post_/ ``` Operation timed out. Log: ``` Stacktrace MESSAGE: System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The operation timed out +++++++++++++++++++ STACK TRACE: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__9d.MoveNext() in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.cs:line 380 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.WinHttpHandler.d__5.MoveNext() in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 837 ``` +4049 area-System.Net HttpClientHandlerTest.PostAsync_Post_ChannelBindingHasExpectedValue failed in Windows_Debug PR Test "``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/5475/testReport/junit/System.Net.Http.Functional.Tests/HttpClientHandlerTest/PostAsync_Post_ChannelBindingHasExpectedValue/ ``` Another ""operation timed out"" error. Log: ``` Stacktrace MESSAGE: System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The operation timed out +++++++++++++++++++ STACK TRACE: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__102.MoveNext() in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.cs:line 584 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.WinHttpHandler.d__5.MoveNext() in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 837 ``` " +4052 area-System.Net System.Net.Sockets TPL tracking items - [x] Optimize delegate allocations. - [x] Investigate behavior difference from Desktop: Used to throw SocketException. - [x] Investigate behavior difference in tests in System.Net.Sockets.Legacy +4054 area-System.Xml Reevaluate a design decision - XDocument automatically connects text nodes next to each other XDocument automatically connects text nodes which are next to each other, and combines them in a single node. The expected behavior is to have a separate node for each. +4056 area-System.Net 3 Name Resolution Tests fail on OSX ``` System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName [FAIL] Assert.Equal() Failure Expected: Success Actual: HostNotFound Stack Trace: at System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName() at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) System.Net.NameResolution.PalTests.NameResolutionPalTests.GetHostByName_HostName [FAIL] System.Net.Internals.InternalSocketException : Unknown error: 11001 Stack Trace: at System.Net.NameResolutionPal.GetHostByName(String hostName) at System.Net.NameResolution.PalTests.NameResolutionPalTests.GetHostByName_HostName() at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName_TryGetNameInfo [FAIL] Assert.Equal() Failure Expected: Success Actual: HostNotFound Stack Trace: at System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName_TryGetNameInfo() at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) ``` Seeing this on my local mac (which is connected to Corp-Net, so maybe that's an issue. Let me know if you need help getting a repo @pgavlin), +4057 area-System.Xml Reevaluate a design decision - XDocument allows double-hyphen within comment by adding a space in between "XDocument allows ""--"" within a comment by representing it with a space between the two hyphens (“- -“) in the outer Xml. However, when reading the document, the XmlReader will contain the invalid content “--“ which was forbidden in the outer Xml. According to the spec, double-hyphen MUST NOT occur within comments. This is not a regression issue. I tried writing some tests for Desktop. Tests are attached. The behavior was consistent among corefx and Desktop. [WriteCommentWithDoubleHyphensTests.txt](https://github.com/dotnet/corefx/files/18981/WriteCommentWithDoubleHyphensTests.txt) " +4058 area-System.Net [System.Net.NetworkInformation] Implement NetworkAddressChanged on OSX This is one of the leftovers that I did not have time to implement for today's deadline (10/21/15). A basic search came up with this, which seems to be the standard way to do this: http://stackoverflow.com/questions/11532144/how-to-detect-ip-address-change-on-osx-programmatically-in-c-or-c The approach mentioned there is using the SystemConfiguration framework. +4059 area-System.Net [System.Net.NetworkInformation] Pull out string parsing logic and test it Right now, the string parsing code is generally located in the class that uses it to parse some known network files. Instead, we should pull out all of the string parsing into a separate class, and separate it out from the file reading itself. Adding unit tests for all of the convoluted parsing logic would then be easy at that point. +4060 area-System.Net [System.Net.NetworkInformation] Follow up on miscellaneous perf / style issues - [x] There are a number of // PERF markers in the code - [x] @pgavlin suggested that, when collecting data using sysctl on OSX, we could try to use a stack-allocated buffer of some fixed size before falling back to heap allocation if the call fails. There are a number of instances of this in pal_networkstatistics.cpp. - [x] A number of properties on various types in the library can be lazily instantiated, assuming that doing so will not alter the resulting object that is created. I don't have an exhaustive list of all the properties that can be optimized this way. We should match the behavior of Windows here with regards to when the data is finalized for those properties. - [x] When parsing the Linux network files, we should probably use invariant string comparisons, rather than the default culture-aware. - [x] Address miscellaneous comments from the previous PR (https://github.com/dotnet/corefx/pull/4039) - [x] Move TcpState mapping from C# to native shim - [x] Consider bailing on sysctl calls if estimated buffer size isn't big enough. (Most code examples do this and I've never seen the estimated size be incorrect). +4062 area-Infrastructure build.sh on OS X has problems with package restore "When running build.sh on a Mac, I'm seeing a hang during package restore. I've built corefx successfully on this Mac before, but it's been at least a few weeks since I last tried. ``` ./build.sh clean Setting up directories for build WARNING: Mono 4.0.1.44 or later is required to build corefx. Unable to assess if current version is supported. Restoring NuGet.exe... Restoring MSBuild... Attempting to resolve dependency 'Microsoft.Tpl.Dataflow (≥ 4.5.24)'. Installing 'Microsoft.Tpl.Dataflow 4.5.24'. Successfully installed 'Microsoft.Tpl.Dataflow 4.5.24'. Installing 'Microsoft.Build.Mono.Debug 14.1.0.0-prerelease'. Successfully installed 'Microsoft.Build.Mono.Debug 14.1.0.0-prerelease'. Restoring build tools... Restoring all packages... ``` It was stuck on that part for a long time, and eventually, I got some timeout errors like the following (this is a small sampling of them): ``` Error: DownloadPackageAsync: https://www.myget.org/F/dotnet-core/api/v2/package/runtime.win7.System.IO.Pipes/4.0.0-beta-23328 Error getting response stream (InitRead): ReceiveFailure Error: DownloadPackageAsync: https://www.myget.org/F/dotnet-core/api/v2/package/runtime.win7.System.Net.Http/4.0.1-beta-23328 EXEC : error : SendFailure (Error writing headers) [/Users/adityam/code/corefx/build.proj] Error: DownloadPackageAsync: https://www.myget.org/F/dotnet-core/api/v2/package/runtime.win7.System.IO.FileSystem.Watcher/4.0.0-beta-23328 HTTP request timed out. Exiting. Error: DownloadPackageAsync: https://www.myget.org/F/dotnet-core/api/v2/package/runtime.win7.System.IO.MemoryMappedFiles/4.0.0-beta-23328 HTTP request timed out. Exiting. Error: DownloadPackageAsync: https://www.myget.org/F/dotnet-core/api/v2/package/runtime.win7.System.Net.Requests/4.0.11-beta-23328 HTTP request timed out. Exiting. Error: DownloadPackageAsync: https://www.myget.org/F/dotnet-core/api/v2/package/runtime.win7.System.Net.Primitives/4.0.11-beta-23328 HTTP request timed out. Exiting. ``` I then tried manually running the same dnu restore command that the script is trying to run. The first time I tried this, it seemed to download all the packages successfully, but then I ran into problems like the following when running build.sh: ``` Restoring all packages... /corefx/packages/Microsoft.Build.Mono.Debug.14.1.0.0-prerelease/lib/Microsoft.CSharp.CurrentVersion.targets(383,9): error MSB6006: ""csc2.exe"" exited with code 1. [/corefx/src/Microsoft.CSharp/ref/Microsoft.CSharp.csproj] /corefx/packages/Microsoft.Build.Mono.Debug.14.1.0.0-prerelease/lib/Microsoft.CSharp.CurrentVersion.targets(383,9): error MSB6006: ""csc2.exe"" exited with code 1. [/corefx/src/Microsoft.VisualBasic/ref/Microsoft.VisualBasic.csproj] ``` I've also tried deleting everything and starting from scratch and this time, I got some request timeouts when running the dnu command manually (and it still hangs on package restore when running build.sh). Is this a problem with myget or could there be something else going wrong? " +4063 area-System.Xml Reevaluate a design decision - bad PI within XDocument One of the tests prints error messages but does not fail. It checks for bad ProcessingInstruction within an XDocument. I'm not sure if the contents of the two XmlReaders are truly supposed to the equivalent or different. I have attached the simplified version of the test. [BadPITestExample.txt](https://github.com/dotnet/corefx/files/18179/BadPITestExample.txt) +4065 area-System.Net HttpClient.GetAsync() sends an empty Cookie header on Mac and Linux When running [this test](https://github.com/aspnet/KestrelHttpServer/blob/8d107b22aecc03785814643ef82b61233ff9196b/test/Microsoft.AspNet.Server.Kestrel.FunctionalTests/ResponseTests.cs#L52) (which just does a plain call to GetAsync without any special configuration), HttpClient sends the following request on Mac and Linux: ``` GET / HTTP/1.1\r\nHost: localhost:8792\r\nAccept: */*\r\nAccept-Encoding: gzip,deflate\r\nCookie: \r\n\r\n ``` This helped expose a header parsing bug in Ketrel :smile:, but I don't think the Cookie header should be sent in this case. +4066 area-System.Net CurlHandler sending empty cookie CurlHandler is sending an empty cookie unnecessarily. This commit fixes the behavior Fixes #4065 +4071 area-System.Net TCP/UDP: System.Net.Sockets.SocketException : An address incompatible with the requested protocol was used http://dotnet-ci.cloudapp.net/job/dotnet_corefx_prtest/5713/ ``` System.Net.Sockets.Tests.DualMode.BeginSendToV4IPEndPointToDualHost_Success [FAIL] System.Net.Sockets.SocketException : An address incompatible with the requested protocol was used Stack Trace: d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(3210,0): at System.Net.Sockets.Socket.DoBeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint endPointSnapshot, SocketAddress socketAddress, OverlappedAsyncResult asyncResult) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(3161,0): at System.Net.Sockets.Socket.BeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback callback, Object state) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\DualModeSocketTest.cs(1364,0): at System.Net.Sockets.Tests.DualMode.DualModeBeginSendTo_EndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\DualModeSocketTest.cs(1350,0): at System.Net.Sockets.Tests.DualMode.BeginSendToV4IPEndPointToDualHost_Success() ``` cc: @cipop, @pgavlin +4072 area-System.Collections Suggested API Addition: ConcurrentDictionary.TryUpdate(TKey key, Func updateFactory) The discussion on #4068 made me think of how it's possible to add to a `ConcurrentDictionary` based on a key, or to do an add-or-update based on the key and/or current value, but it's not possible to do an update based on current values that would not add a new value if there wasn't one already. This can be added externally easily enough: ``` C# public static bool TryUpdate(this ConcurrentDictionary dict, TKey key, Func updateFactory) { TValue curValue; while(dict.TryGetValue(key, out curValue)) { TValue value = updateFactory(key, curValue); if( (default(TValue) == null && ReferenceEqual(curValue, value)) || dict.TryUpdate(key, value, curValue) ) return true; } return false; } ``` But this is slower (and hence more likely to have to loop) than if the call was an instance method, and also prevents the factory from being called with the stored key rather than the passed key (should a difference be significant to the factory). That it's come up for at least someone else before is suggested by http://stackoverflow.com/q/12240219/400547 (they didn't need the key in their factory, but the above would have provided them with an answer too as their factory could simply ignore it). +4074 area-System.Security If possible, stop hard-coding magic values that aren't exposed in OpenSSL headers See discussion here: https://github.com/dotnet/corefx/pull/4026/files#r42687456 +4076 area-System.Collections [RC1 blocker] Access violation while running System.Collections.Tests in CI on Linux http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/3747/consoleFull ``` 08:32:50 Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. 08:32:50 at System.Collections.Generic.HashSet`1.System.Collections.Generic.IEnumerable.GetEnumerator() 08:32:50 at Xunit.Assert.Contains[T](T expected, IEnumerable`1 collection, IEqualityComparer`1 comparer) 08:32:50 at Tests.HashSet_HashSetTestSupport.HashSetTestSupport`1.<>c__DisplayClass2.b__1(T item) 08:32:50 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) 08:32:50 at Tests.HashSet_HashSetTestSupport.HashSetTestSupport`1.VerifyHashSet(HashSet`1 set, ICollection`1 contents, IEqualityComparer`1 comparerToUse) 08:32:50 at Tests.HashSet_TrimExcessTests.TrimExcess_Test6() 08:32:50 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 08:32:50 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 08:32:50 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 08:32:50 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 08:32:50 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 08:32:50 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 08:32:50 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 08:32:50 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 08:32:50 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestInvoker`1.b__45_0() 08:32:50 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 08:32:50 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 08:32:50 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 08:32:50 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestRunner`1.RunAsync() 08:32:50 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 08:32:50 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 08:32:50 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 08:32:50 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 08:32:50 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestClassRunner`1.RunAsync() 08:32:50 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 08:32:50 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 08:32:50 at System.Threading.Tasks.Task`1.InnerInvoke() 08:32:50 at System.Threading.Tasks.Task.Execute() 08:32:50 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 08:32:50 --- End of inner exception stack trace --- 08:32:50 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 08:32:50 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 08:32:50 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 08:32:50 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 08:32:50 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 08:32:50 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 08:32:50 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 08:32:50 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 08:32:50 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestInvoker`1.b__45_0() 08:32:50 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 08:32:50 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 08:32:50 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 08:32:50 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestRunner`1.RunAsync() 08:32:50 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 08:32:50 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 08:32:50 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 08:32:50 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 08:32:50 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestClassRunner`1.RunAsync() 08:32:50 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 08:32:50 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 08:32:50 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 08:32:50 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 08:32:50 at System.Threading.Tasks.Task`1.InnerInvoke() 08:32:50 at System.Threading.Tasks.Task.Execute() 08:32:50 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 08:32:50 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 08:32:50 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 08:32:50 at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) 08:32:50 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 08:32:50 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 08:32:50 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) 08:32:50 at System.Threading.Tasks.Task.Execute() 08:32:50 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 08:32:50 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 08:32:50 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 08:32:50 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 08:32:50 ./run-test.sh: line 130: 32445 Aborted (core dumped) ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory 08:32:50 One or more tests failed while running tests from 'System.Collections.Tests'. Exit code 134. ``` +4077 area-System.Net HttpClient hangs when sending chunked encoded request When WCF uses HttpClient to send a chunked encoded request, the request never completes. There is a thread hung blocked on a Write call to the request stream. This was using build version 4.0.1-beta-23419. Here's the call stack. ``` mscorlib.ni.dll!System.Threading.ManualResetEventSlim.Wait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) Line 651 C# mscorlib.ni.dll!System.Threading.Tasks.Task.SpinThenBlockingWait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) Line 3308 C# mscorlib.ni.dll!System.Threading.Tasks.Task.InternalWait(int millisecondsTimeout, System.Threading.CancellationToken cancellationToken) Line 3240 C# mscorlib.ni.dll!System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task task) Line 149 C# mscorlib.ni.dll!System.Runtime.CompilerServices.TaskAwaiter.GetResult() Line 110 C# system.net.http.dll!System.Net.Http.WinHttpRequestStream.Write(byte[] buffer, int offset, int count) Line 136 C# system.private.datacontractserialization.dll!System.Xml.XmlStreamNodeWriter.FlushBuffer() Line 494 C# system.private.datacontractserialization.dll!System.Xml.XmlStreamNodeWriter.Flush() Line 513 C# system.private.datacontractserialization.dll!System.Xml.XmlBaseWriter.Flush() Line 67 C# system.private.datacontractserialization.dll!System.Xml.XmlDictionaryAsyncCheckWriter.Flush() Line 84 C# system.private.servicemodel.dll!System.ServiceModel.Channels.TextMessageEncoderFactory.TextMessageEncoder.WriteMessageAsync(System.ServiceModel.Channels.Message message, System.IO.Stream stream) Line 551 C# system.private.servicemodel.dll!System.ServiceModel.Channels.StreamedMessageContent.SerializeToStreamAsync(System.IO.Stream stream, System.Net.TransportContext context) Line 189 C# system.net.http.dll!System.Net.Http.HttpContent.CopyToAsync(System.IO.Stream stream, System.Net.TransportContext context) Line 323 C# system.net.http.dll!System.Net.Http.WinHttpHandler.InternalSendRequestBodyAsync(System.Net.Http.WinHttpRequestState state, bool chunkedModeForSend) Line 1317 C# system.net.http.dll!System.Net.Http.WinHttpHandler.StartRequest(object obj) Line 841 C# [Resuming Async Method] mscorlib.ni.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Line 92 C# mscorlib.ni.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() Line 1070 C# mscorlib.ni.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.OutputAsyncCausalityEvents.AnonymousMethod__0() Line 977 C# mscorlib.ni.dll!System.Runtime.CompilerServices.TaskAwaiter.OutputWaitEtwEvents.AnonymousMethod__0() Line 284 C# mscorlib.ni.dll!System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action action, bool allowInlining, ref System.Threading.Tasks.Task currentTask) Line 806 C# mscorlib.ni.dll!System.Threading.Tasks.Task.FinishContinuations() Line 3605 C# mscorlib.ni.dll!System.Threading.Tasks.Task.TrySetResult(bool result) Line 485 C# mscorlib.ni.dll!System.Threading.Tasks.TaskCompletionSource.TrySetResult(bool result) Line 294 C# system.net.http.dll!System.Net.Http.WinHttpRequestCallback.OnRequestSendRequestComplete(System.Net.Http.WinHttpRequestState state) Line 123 C# system.net.http.dll!System.Net.Http.WinHttpRequestCallback.RequestCallback(System.IntPtr handle, System.Net.Http.WinHttpRequestState state, uint internetStatus, System.IntPtr statusInformation, uint statusInformationLength) Line 72 C# system.net.http.dll!System.Net.Http.WinHttpRequestCallback.WinHttpCallback(System.IntPtr handle, System.IntPtr context, uint internetStatus, System.IntPtr statusInformation, uint statusInformationLength) Line 57 C# ``` +4078 area-System.Net Fix hang when writing request stream in WinHttpHandler WinHttpHandler was hanging due to blocking on the WinHTTP status callback thread. The blocking was coming from a task continuation resuming on the same thread and subsequently calling a blocking Stream.Write method in a custom HttpContent class being written onto the request stream. Blocking is not allowed on the WinHTTP callback thread. So any task continuations need to occur on a different thread. The fix is to create the TaskCompletionSources to use RunContinuationsAsynchronously. This allows them to unblock the WinHTTP thread. Additionally, I added some missing ConfigureAwait(false) settings to some await'd operations. Added a new test which uses a custom HttpContent class that uses a blocking Write() call when serializing onto the request stream. Fix #4077 +4080 area-System.Net Fix WinHttpHandler on Win7 When WinHttpHandler was recently switched to use async WinHTTP pattern, it started setting an option which improves performance. However, the WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS option is not available on downlevel Windows versions. This was causing an exception to be thrown when sending an HTTP request. The fix is to ignore the ERROR_WINHTTP_INVALID_OPTION error code when trying to set this option. +4081 area-System.Net Removing Nuget.Props file Nuget.Props file was added by mistake in a previous commit. +4082 area-System.Net Enable NetworkInformation tests on Linux, OSX "cc: @stephentoub , @CIPop This removes the ""Unsupported"" tag for OSX and Linux from the NetworkInformation tests. Some of the tests just attempt to enumerate all of the properties and statistics that the library exposes. I've disabled those test cases on Linux and OSX because many of those members are not supported. I encountered a couple small issues after running the tests and fixed the issues in subsequent commits: - In Linux's NetworkChange implementation, the field storing the netlink socket's file descriptor was not being set to 0 after it was closed. This means if you tried to close the socket, and then re-open or re-close it, you'd hit a debug assertion I had in place. I've set the field to 0 after it is closed, and clarified the debug assertion messages. - UnixIP(v4/v6)InterfaceProperties was caching the network interface's index too early, and was always storing 0. The network interface's index isn't initialized until the link-layer address is enumerated from the native shim call. To avoid timing issues like this, I might consider storing all of the information from the address enumeration in a separate object, and then constructing the UnixNetworkInterface object all at once. - OSX didn't implement OperationalStatus. I've added a very crude implementation which just determines whether an interface is ""Up"" or not by checking if it has any addresses assigned to it. I think the OS exposes a bit more information here, but I don't think that we can necessarily map that info to our enum values (except perhaps ""Dormant""). " +4083 area-System.Net Socket ArgumentValidation test failures See the discussion in https://github.com/dotnet/corefx/pull/4079#issuecomment-150347175. I am disabling the failing tests in order to get changes from TFS in. +4086 area-System.Net Validate linger time. Some platforms behave strangely when confronted with linger times that are out-of-range. In particular, OS X silently truncates `linger::l_linger` to 16 bits and interprets the results as a `short`. This change validates the linger time before calling `setsockopt` to ensure reliable behavior across platforms. On OS X, the maximum linger time is actually in units of ticks, so validation is a bit more involved than on other platforms (where the max time is defined by the size of the integer used to store the value): on the first call to `SetLingerOption`, the number of ticks per second is obtained via `sysconf()` and is then used to derive the maximum linger time by simple division. This does mean that the maximum linger time on OS X may vary with the number of ticks per second, and so may vary between machines. +4087 area-System.Net Merge changes from TFS +4089 area-System.Net Provisionally Ignoring tests to unblock the build Some tests that are having different behavior following the System.Net.Sockets API revision will be disabled temporally. +4091 area-Meta Question: Is .Net Remoting supported? Also WCF Interfacing We can hide .Net Remitting behind WCF and visa versa +4092 area-System.Net Fixing some of the tests throwing different expected exceptions A method CreateArraySegment for correctly throw ArgumentOutOfRangeException instead of ArgumentException is added to fix the Tests in ArgumentValidationTests. Fix #4083 +4093 area-System.Net [Linux] HttpClientHandler PostSyncBlockingContentUsingChunkedEncoding_Success test hangs Referencing PR #4078, the new test added hangs on Linux. System.Net.Http.Functional.Tests, PostScenarioTest.cs, PostSyncBlockingContentUsingChunkedEncoding_Success test does a blocking Stream.Write() call in a custom HttpContent class SerializeToStreamAsync() method. This test passes on Windows. +4095 area-System.Net Fix CurlHandler deadlock with synchronous CopyToAsync CurlHandler calls to HttpContext.CopyToAsync with a stream that CopyToAsync should write to asynchronously. If, however, the call to CopyToAsync blocks Write'ing to it synchronously as part of the synchronous call to CopyToAsync, CurlHandler will deadlock. As a precaution, we ensure that the CopyToAsync call is asynchronous from the perspective of CurlHandler. Fixes #4093 cc: @davidsh, @kapilash, @vijaykota +4097 area-System.Net Disable sporadically failing SslStream test The timeout may simply need to be increased. For now, disabling. as it's failed several times. #3845 cc: @davidsh +4100 area-System.Reflection Missing accessors on PropertyDefinition The implementation of System.Reflection.Metadata [PropertyDefinition](https://github.com/dotnet/corefx/blob/master/src/System.Reflection.Metadata/src/System/Reflection/Metadata/TypeSystem/PropertyDefinition.cs#L91) and [EventDefinition](https://github.com/dotnet/corefx/blob/master/src/System.Reflection.Metadata/src/System/Reflection/Metadata/TypeSystem/EventDefinition.cs#L84) swallows some accessors and doesn't make them available publically. This has been marked as _TODO_ in the source code. These _'other'_ accessors are not often encountered, but handling them is required for certain special case tooling. ## usage of _'other'_ property accessors * The .NET Framework exposes 'other' accessors through [PropertyInfo.GetAccessors](https://referencesource.microsoft.com/#mscorlib/system/reflection/propertyinfo.cs,496) * .NET assemblies generated by the 'tlbimp' tool can generate this metadata when a COM property has both a PUT and a PUTREF accessor. * They are valid metadata, even though rarely used, but if you build tools for processing or inspecting .NET assemblies (like tlbexp or ildasm do) you want to handle them. The last point is a real-world use case I have. The tlbexp functionality built into the .NET Framework requires loading an assembly into the AppDomain to generate a TLB. Loading the assembly can fail for various reasons, so generating a TLB by only inspecting metadata is desireable. The omission of 'other' accessors is a problem here. ## Proposed API ``` csharp namespace System.Reflection.Metadata { public struct PropertyAccessors { // Existing public MethodDefinitionHandle Getter { get; } public MethodDefinitionHandle Setter { get; } // New public ImmutableArray Others { get; } } public struct EventAccessors { // Existing public MethodDefinitionHandle Adder { get; } public MethodDefinitionHandle Remover { get; } public MethodDefinitionHandle Raiser { get; } // New public ImmutableArray Others { get; } } } ``` ## Details In the large majority of cases there will be no 'other' accessors in the metadata. It is trivially possible to implement this case without any additional allocations compared to the current implementation. For the purpose of the discussion I have provided an initial [implementation](https://github.com/weltkante/corefx/pull/3) of the suggested change. ## Updates - Expose other accessors directly on the `PropertyAccessors` and `EventAccessors` structs instead of returning them as an out-param +4101 area-System.Net Unix HttpClient does not use the same https server cert validation as Unix SslStream It seems that - If you start with a certificate that is not trusted by the OpenSSL default trust list - Then you add the root to the CurrentUser\My X509Store It still fails to validate on an https connection (but would succeed if connecting with SslStream). The two SSL consumers should use the same validation. +4104 area-System.Linq Re-evaluate various #define symbols in System.Linq.Expressions The following symbols are used in the code but are never set in corefx: - FEATURE_DLG_INVOKE - FEATURE_FAST_CREATE - FEATURE_MAKE_RUN_METHODS - FEATURE_THREAD_ABORT - FEATURE_STACK_TRACES - NO_FEATURE_STATIC_DELEGATE We should re-evaluate whether those are useful to enable in some build flavors e.g. to improve performance of the interpreter. +4108 area-Infrastructure Add validation that project.json's don't overspecify dependencies It would be really nice if we validated that no project.json specifies dependencies that aren't used. See https://github.com/dotnet/corefx/pull/4107#issuecomment-150646389 +4110 area-System.Data AccessViolationException in System.Data.SqlClient when a second copy is loaded at application shutdown We are seeing the following error [on one of the EF tests](https://github.com/aspnet/EntityFramework/blob/de4f73e9517ba75f69064e45ff30d2755a3981d3/test/EntityFramework.CrossStore.FunctionalTests/EndToEndTest.cs#L21). Not sure if it’s SqlClient or CoreCLR issue. ``` [12:16:22]Step 6/6: Run tests (Command Line) (3m:53s) [12:17:56][Step 6/6] xunit-test (2m:19s) [12:19:42][xunit-test] Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. [12:19:42][xunit-test] at System.Data.SqlClient.SNINativeMethodWrapper.SNITerminate() [12:19:42][xunit-test] at System.Data.SqlClient.SNILoadHandle.ReleaseHandle() [12:19:42][xunit-test] at System.Runtime.InteropServices.SafeHandle.InternalFinalize() [12:19:42][xunit-test] at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing) [12:19:42][xunit-test] at System.Runtime.InteropServices.SafeHandle.Finalize() [12:20:15][xunit-test] Step Run tests (Command Line) failed ``` +4111 area-System.Net Change some dual-mode tests to accommodate platform differences. On *nix, the OS IP stack changes a dual-mode socket back to a normal IPv6 socket once the socket is bound to an IPv6-specific address. This can cause behavioral differences in code that checks the value of DualMode (e.g. the checks in CanTryAddressFamily). We've decided not to emulate the Winsock behavior (which does not change the value of `IPV6_V6ONLY` for dual-mode sockets bound to IPv6-specific addresses) due to the cost of caching the expected value on each socket instance; some tests needed changes as a consequence of this decision. Fixes #4005. +4112 area-System.Linq Expression interpreter - Bug when passing Type.Missing to Invoke calls Blocked by https://github.com/dotnet/coreclr/issues/7253 Found while enabling more tests (see #3995): ``` Tests.Compiler_Tests.CallCompiledLambdaWithTypeMissing [FAIL] Assert.Equal() Failure Expected: (null) Actual: System.ArgumentException: Missing parameter does not have a default value. Parameter name: parameters at System.Reflection.MethodBase.CheckArguments(Object[] parameters, Binder binder, BindingFlags invokeAttr, CultureInfo culture, Signature sig) at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at System.Linq.Expressions.Interpreter.ByRefMethodInfoCallInstruction.Run(InterpretedFrame frame) in Interpreter\CallInstruction.cs:line 499 at System.Linq.Expressions.Interpreter.Interpreter.Run(InterpretedFrame frame) in \Interpreter\Interpreter.cs:line 106 at System.Linq.Expressions.Interpreter.LightLambda.Run(Object[] arguments) in Interpreter\LightLambda.cs:line 264 at Thunk(Func`2 , Object ) at lambda_method(Closure , Object ) Stack Trace: TestExtensions.cs(134,0): at TestExtensions.AssertVoid(Exception e1, Exception e2) TestExtensions.cs(145,0): at TestExtensions.AssertNonVoid(Object o1, Object o2, Exception e1, Exception e2) at lambda_method(Closure , Object ) SequenceTests\SequenceTests.cs(2914,0): at Tests.Compiler_Tests.CallCompiledLambdaWithTypeMissing() ``` +4114 area-System.Net Update a socket test to accommodate differences on *nix. On *nix, the SendTo APIs return ENETUNREACH instead of EFAULT when confronted with a socket address with an invalid address family: these platforms check the family of the provided socket address before checking its size (as long as the socket address is large enough to store an address family). Fixes #4003. +4117 area-System.Net WinHttpHandler: Fix POSTs with zero length content While researching #3292, I discovered that POST'ing zero length content throws an exception. This was because we were calling WinHttpWriteData() and passing in a zero length for the buffer size. This returns an error back from WinHTTP. We don't need to call WinHTTP APIs to write zero length data. We simply need to return a completed task back to the caller. Added tests to verify the fix. +4120 area-System.Net Unix HttpClient does not do CRL checking on the connection The libcurl+openssl default is to not check CRLs, since they have to be manually provided. The work done by #4101 isn't going to change the revocation check status, because currently the Unix X509Chain implementation doesn't support opportunistic revocation, and self-signed certs require opportunistic revocation. #2204 is the issue tracking opportunistic revocation. +4121 area-System.Net Make Unix HttpClient use X509Chain instead of the default chain validator "Opportunistically redirect the SSL validation logic. On OSX this is expected to return CURLE_NOT_BUILT_IN, and just use the DarwinSsl logic (unless the user has built libcurl+openssl themselves). This particular pull request enables the ability to use a self-signed certificate that is trusted only in the CurrentUser\Root store. Along the way I discovered that we weren't doing CRL validation either, and that's tracked in issue #4120. Enabling CRL validation in this change would mean self-signed test certs still don't work, because #2204 seems to be required for supporting ""opportunistic CRL"" (require it be valid if there's a CDP entry, but if there's no CDP don't consider that a failure). cc: @stephentoub @vijaykota @rajansingh10 @shrutigarg " +4123 area-System.Security Where's the TransformBlock functionality on SHA256? "Hi, I have this working code in good old .NET 4.5 console application: ``` c# var sha256 = System.Security.Cryptography.SHA256.Create(); var message = new byte[] {1, 2, 3}; var s = new byte[32]; var m = sha256.ComputeHash(message); sha256.TransformBlock(m, 0, m.Length, m, 0); sha256.TransformFinalBlock(s, 0, s.Length); var x = sha256.Hash; // x = {236, 196, 174, 128, 243....} ``` How do I achieve the same thing when targetting dnxcore50 or a Universal Windows 10 App? I get errormessages saying TransformBlock() / TransformFinalBlock() / Hash does not exist, but ComputeHash() seem to exist and work as before. I have added dependency to ""System.Security.Cryptography.Algorithms"": ""4.0.0-beta-23409"" " +4125 area-System.Linq Expression interpreter - Reflection calls could be made cheaper Blocked by https://github.com/dotnet/coreclr/issues/7253 Spotted while looking into #4112. The calls to MethodBase.Invoke in various places ultimately call into MethodBase.CheckArguments which performs a copy of the arguments array passed in. In cases such as the interpreter's where the caller is trusted to transfer ownership of the array, this copy is redundant. Both #4112 and this issue could possibly get resolved by controlling more of those behaviors (i.e. Type.Missing checks in #4112 and argument copying in this issue) through the Binder that's passed to the Invoke method. An (internal-only) specialized fast-path binder could be passed by the interpreter. +4128 area-System.Net Remove obsolete TODOs from xplat SslStream code In the code there are references to issue# 3362. These have been investigated and the existing code does not need changes. But there are TODO comments in the code which need to be removed. +4131 area-System.Net Handling Invalid http response This PR introduces changes in CurlHandler so that its behavior matches that of WinHttpHandler vis-a-vis invalid status line or invalid http headers in the response. Fix for #3269 +4132 area-Serialization Make S.Runtime.Serialization.Xml 4.1 be legal for WCF to reference "Currently, if WCF attempts to take a dependency on S.R.Serialization.Xml 4.1.0, it causes CrossGen to fail because the new contract does not exist in TestNet, Desktop, etc. This became a P0 blocker during RC1, and it forced WCF to revert to referencing 4.0.10. We need WCF to be able to refer to 4.1 (or later) versions of S.R.S.Xml without breaking TFS lab builds. To verify the fix, increase the dependency to 4.1.0 in WcfOpen\src\System.Private.ServiceModel\src\project.json, update the lock file and then do a full build of NDP. You need to run CrossGen manually. I did it like this from a Razzle window: msbuild /m /nologo %_NTROOT%\Binaries.niproj /p:TargetPlatform=x86 /p:TargetClrAssembly=core /p:ProductGroupsToBuild=""PK"" /l:%VsSDKToolsPath%\StatusLogger.exe;context=""Process Ship Binaries/Generate Native Images"" /flp:append;logfile=e:_scr\CrossGen-2015-10-23-05-07-08.log /flp1:append;errorsonly;logfile=e:_scr\CrossGen-2015-10-23-05-07-08.err"" " +4134 area-System.Net HttpClient SendAsync sending a GET instead of DELETE on Mac OS "When I make a DELETE request via SendAsync, a GET is sent instead of a DELETE. This happens only on Mac OS. The code produces a correct DELETE request on Windows. Code: ``` C# using System; using System.Net.Http; namespace Deltest { public class Program { public static void Main(string[] args) { HttpClient client = new HttpClient(new HttpClientHandler() { // redirect to Charles Proxy on Mac OS and Fiddler on Windows Proxy = new WebProxy(new Uri(""http://127.0.0.1:8888"")), UseProxy = true }); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Delete, ""http://localhost:8080/document""); // on Windows the host's IP is used instead HttpResponseMessage response = client.SendAsync(request).Result; Console.WriteLine(response); } } } ``` On Mac OS El Capitan, the following HTTP Request is send: ``` GET /document HTTP/1.1 Host: localhost:8080 Accept: */* Accept-Encoding: gzip,deflate Cookie: ``` Whereas on Windows 10, it is as follows: ``` DELETE http://192.168.1.8:8080/document HTTP/1.1 Accept-Encoding: gzip, deflate Connection: Keep-Alive Host: 192.168.1.8:8080 ``` Mac OS is the host machine. The code was run from both the host machine and a Windows client VM, connecting to the same server running on the host. Is this a bug or am I missing something? Thank you for your time. " +4135 area-System.Linq Common Language Runtime detected an invalid program Using Csla 4.5.701, using remote data-portal in Window 8.1 Store app. Trying to create/instantiate new Object, generating following error (i can fetch existing object from DB successfully), System.AggregateException: One or more errors occurred. ---> Csla.Server.DataPortalException: DataPortal.Create failed on the server ---> System.InvalidProgramException: Common Language Runtime detected an invalid program. at System.Runtime.CompilerServices.RuntimeHelpers._CompileMethod(IRuntimeMethodInfo method) at System.Reflection.Emit.DynamicMethod.CreateDelegate(Type delegateType, Object target) at System.Linq.Expressions.Compiler.LambdaCompiler.CreateDelegate() at System.Linq.Expressions.Compiler.LambdaCompiler.Compile(LambdaExpression lambda, DebugInfoGenerator debugInfoGenerator) at System.Linq.Expressions.Expression`1.Compile() at Csla.Reflection.DynamicMethodHandlerFactory.CreateConstructor(ConstructorInfo constructor) at Csla.Reflection.MethodCaller.GetCachedConstructor(Type objectType) at Csla.Reflection.MethodCaller.CreateInstance(Type objectType) at Csla.Server.DefaultDataPortalActivator.CreateInstance(Type requestedType) at Csla.Server.SimpleDataPortal.d__0.MoveNext() --- End of inner exception stack trace --- at Csla.Server.DataPortal.NewDataPortalException(String message, Exception innerException, Object businessObject) at Csla.Server.SimpleDataPortal.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at Csla.Server.DataPortalSelector.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at Csla.Server.DataPortal.d__4.MoveNext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task`1.get_Result() at Csla.DataPortalClient.LocalProxy.<>c__DisplayClass1_0.b__0(Object s, DoWorkEventArgs o) at Csla.Threading.BackgroundWorker.InternalDoWork(Object sender, DoWorkEventArgs e) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at Csla.DataPortalClient.LocalProxy.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at Csla.DataPortal`1.d__8.MoveNext() ---> (Inner Exception #0) Csla.Server.DataPortalException: DataPortal.Create failed on the server ---> System.InvalidProgramException: Common Language Runtime detected an invalid program. at System.Runtime.CompilerServices.RuntimeHelpers._CompileMethod(IRuntimeMethodInfo method) at System.Reflection.Emit.DynamicMethod.CreateDelegate(Type delegateType, Object target) at System.Linq.Expressions.Compiler.LambdaCompiler.CreateDelegate() at System.Linq.Expressions.Compiler.LambdaCompiler.Compile(LambdaExpression lambda, DebugInfoGenerator debugInfoGenerator) at System.Linq.Expressions.Expression`1.Compile() at Csla.Reflection.DynamicMethodHandlerFactory.CreateConstructor(ConstructorInfo constructor) at Csla.Reflection.MethodCaller.GetCachedConstructor(Type objectType) at Csla.Reflection.MethodCaller.CreateInstance(Type objectType) at Csla.Server.DefaultDataPortalActivator.CreateInstance(Type requestedType) at Csla.Server.SimpleDataPortal.d__0.MoveNext() --- End of inner exception stack trace --- at Csla.Server.DataPortal.NewDataPortalException(String message, Exception innerException, Object businessObject) at Csla.Server.SimpleDataPortal.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at Csla.Server.DataPortalSelector.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at Csla.Server.DataPortal.d__4.MoveNext()<--- +4136 area-System.Net Remove dead code in S.N.Sockets. Now that the Disconnect\* APIs are gone, we can remove the remnants of the code that used to support these APIs. +4140 area-System.Net Readjust a Sockets test to accommodate OS X. OS X returns yet another different error code when an IPv4 socket address is passed to recvmsg on an IPv6-only socket. Fixes #4003. +4142 area-System.Globalization System.Globalization tests crashed on Windows "See http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/5634/console for more details: ``` d:\j\workspace\dotnet_corefx_windows_debug_prtest\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00110\lib\tests.targets(129,5): warning MSB3073: The command ""CoreRun.exe xunit.console.netcore.exe System.Globalization.Tests.dll -xml testResults.xml -notrait category=nonwindowstests -notrait category=OuterLoop -notrait category=failing "" exited with code -1073741819. [d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Globalization\tests\System.Globalization.Tests.csproj] d:\j\workspace\dotnet_corefx_windows_debug_prtest\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00110\lib\tests.targets(136,5): error : One or more tests failed while running tests from 'System.Globalization.Tests' please check log for details! [d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Globalization\tests\System.Globalization.Tests.csproj] ``` " +4143 area-System.Net Fix TFS integration for WebSockets.Client In https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.WinRT.cs: ``` // TODO: ** TFS BUILD IS BROKEN ** // This doesn't compile right now due to missing types 'WebErrorStatus' and 'RTWebSocketError' // Commenting out for now to allow the build to resume. //WebErrorStatus status = RTWebSocketError.GetStatus(ex.HResult); //var inner = new Exception(status.ToString(), ex); ``` +4144 area-System.Net Adding TODO issue number to WebSockets.Client Adding TODO tracking issue number (#4143) to fix the NetNative WebSocket.Client contract implementation. +4147 area-System.IO Added explicit reference to Compression in test-runtime DNX is consuming the runtime.json for 4.0.0 and pulling in old versions of CLRCompression that went by a different name. Adding an explicit reference in the common test-runtime project.json to System.IO.Compression resolves this issue until the DNX issue https://github.com/aspnet/dnx/issues/3078 is resolved. This change is to update our CLRCompression to a more recent version that includes the CRC32 function export. @stephentoub @ericstj @bjjones +4148 area-System.Net Unix HttpClient doesn't throw exceptions consistent with Windows/NetNative WCF throws specific exceptions consistent across all transports and platforms that allows developers using WCF to have unified exception handling. For HttpClient, because of lack of an explicit mechanism to indicate the error condition, we have been using HttpRequestException.InnerException.HResult as a consistent way to know what the error was. This was after a discussion with @davidsh and @CIPop about how to achieve this. For the error condition of the specified hostname in the url not resolving, we are expecting the HResult to have a value of 0x80072ee7 (ERROR_INTERNET_NAME_NOT_RESOLVED). With the Unix version of HttpClient, the value being returned is 0x00000006 (ERROR_INVALID_HANDLE). This is causing WCF to not be able to tell what the error condition is and we can't throw the correct exception. Currently we have one other error condition mapped, which is the case where the server sends a reset on the socket while we're receiving data. In this case, we expect an HResult of 0x80072eff (ERROR_INTERNET_CONNECTION_RESET). +4149 area-System.Linq [RC1 blocker] AV in System.Linq.Expressions tests http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/3850/console ``` 15:34:41 Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. 15:34:41 at Tests.Expressions.InterpreterTests.Verify(Expression expr) 15:34:41 at Tests.Expressions.InterpreterTests.CompileInterpretCrossCheck_Divide() 15:34:41 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 15:34:41 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 15:34:41 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 15:34:41 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 15:34:41 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 15:34:41 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 15:34:41 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 15:34:41 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 15:34:41 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestInvoker`1.b__45_0() 15:34:41 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 15:34:41 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 15:34:41 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 15:34:41 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestRunner`1.RunAsync() 15:34:41 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 15:34:41 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 15:34:41 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 15:34:41 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 15:34:41 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestClassRunner`1.RunAsync() 15:34:41 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 15:34:41 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 15:34:41 at System.Threading.Tasks.Task`1.InnerInvoke() 15:34:41 at System.Threading.Tasks.Task.Execute() 15:34:41 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 15:34:41 --- End of inner exception stack trace --- 15:34:41 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 15:34:41 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 15:34:41 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 15:34:41 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 15:34:41 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 15:34:41 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 15:34:41 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 15:34:41 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 15:34:41 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestInvoker`1.b__45_0() 15:34:41 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 15:34:41 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 15:34:41 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 15:34:41 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestRunner`1.RunAsync() 15:34:41 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 15:34:41 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 15:34:41 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 15:34:41 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 15:34:41 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestClassRunner`1.RunAsync() 15:34:41 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 15:34:41 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 15:34:41 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 15:34:41 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 15:34:41 at System.Threading.Tasks.Task`1.InnerInvoke() 15:34:41 at System.Threading.Tasks.Task.Execute() 15:34:41 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 15:34:41 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 15:34:41 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 15:34:41 at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) 15:34:41 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 15:34:41 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 15:34:41 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) 15:34:41 at System.Threading.Tasks.Task.Execute() 15:34:41 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 15:34:41 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 15:34:41 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 15:34:41 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 15:34:42 ./run-test.sh: line 130: 39009 Aborted (core dumped) ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory ``` +4150 area-System.Linq System.Linq.Expression.Invoke not thread safe on lambda argument. "This is a crazy bug that took me awhile to track down. System.Expression.Invoke will modify its lambda argument, making it unsafe if the lambda can be changed in a field updated by another thread. This simple test illustrates the problem: ``` using System; using System.Diagnostics; using System.Linq.Expressions; using System.Threading.Tasks; public class Indirect { public Func DoItA = () => 0; public Func DoItB = () => 0; private int Count = 1; public void Refresh() { { var valueA = DoItA(); var valueB = DoItB(); Debug.Assert(valueA == valueB); } var idx = Count; Count += 1; DoItA = () => idx; DoItB = DoItA; } public static Action Compile(Indirect ind) { var ind0 = Expression.Constant(ind); var fld = Expression.PropertyOrField(ind0, ""DoItA""); var block = Expression.Block(typeof(void), Expression.Invoke(fld)); return (Action)Expression.Lambda(block).Compile(); } public static void DoTest() { var ind = new Indirect(); Task.Run(() => { while (true) ind.Refresh(); }); var act = Compile(ind); Task.Run(() => { while (true) act(); }); } } ``` Note that DoItA and DoItB are apparently only modified by the Refresh call that occurs in the first task forked by DoTest. However, the assertion will eventually fail because the mere invocation of the lambda through a field can cause that field to retain its value even if it is modified by another thread during the invocation! The work around on the user side is to load the field into a temporary variable and invoke on that variable. Not a big deal, but the fact that Expression.Invoke is not thread safe on its lambda argument is not documented...either it should be thread safe (by not storing into its lambda operand argument, which is really unexpected behavior), or it should be documented that it could do this. " +4152 area-Infrastructure Collect EventSource logs in CI system In order to help with investigations related to native failures we should have a way to collect the following from the CI system when a test fails: 1. Full-memory dumps + symbols [edit: covered by #14093] 2. EventSource traces System.Net defines EventSource (ETW) tracing for both production and test code: `*Microsoft-System-Net-Debug` `*Microsoft-System-Net-TestLogging` To investigate issues such as #4037 I would need to enable collection for these two sources as well as memory dump collection. +4153 area-System.Net Increasing test timeout for System.Net.Security (SslStream). Increasing test timeout for System.Net.Security (SslStream). Fix #3845 +4154 area-System.Net [release/1.0.0-rc1] Cherry-pick two commits for System.Net.NetworkInformation for x-plat packaging work The two changes here to the System.Net.NetworkInformation project file are needed for our internal packaging build. This lets us build x-plat packages for System.Net.NetworkInformation that are properly divided up and packaged. I've just cherry-picked these two commits from the master branch. +4155 area-System.Net Removing APM and synchronous methods from System.Net.NetworkInformation Removing APM and synchronous methods from System.Net.NetworkInformation Fix #4044 +4158 area-System.Net Removing ActiveIssue since the test timeouts have been already increased Removing ActiveIssue since the test timeouts have been already increased Fix #3497 +4159 area-System.Net Stub out System.Net.Utilities on Unix This change introduces a Unix build of System.Net.Utilities, with an implementation that simply throws a PlatformNotSupportedException. We'll provide a functioning implementation later. Most of the Ping class can be shared between Windows and Unix. Since there's essentially just two instance methods (InternalSendAsync and InternalDisposeCore) that need differ between Windows and Unix, but which need access to the rest of the state on the Ping instance, I've made Ping a partial class and put those two methods into .Windows.cs and .Unix.cs files. The logic in the Windows implementation is unchanged, other than removing some dead code and cleaning up a few formatting issues. Some of the helper types, e.g. PingReply, had ctors with Windows-specific logic, so I moved those out of the helpers into Ping as platform-specific factories, leaving the helper types to be platform-agnostic. I've put the PR up with the commits that I had as I was going through the changes, but I'll squash them all (along with addressing any feedback) prior to merging. cc: @cipop, @pgavlin, @mellinoe +4161 area-System.Linq Expression compiler - VerificationException: Operation could destabilize the runtime. "Issue occurs when trying to evaluate the following using .Compile(): ``` var p = Expression.Parameter(typeof(TimeSpan).MakeArrayType(1)); var o = Expression.ArrayAccess(p, Expression.Constant(0)); var m = Expression.PropertyOrField(o, ""Ticks""); return Expression.Block(new[] { p }, m); ``` " +4166 area-System.Net Support for http delete method for CurlHandler Update CurlHandler to allow sending Http 'delete' method. Add two test cases for delete +4171 area-System.Net The server returned an invalid or unrecognized response http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release_prtest/5650/console ``` System.Net.Http.Functional.Tests.PostScenarioTest.PostEmptyContentUsingChunkedEncoding_Success(serverUri: https://corefx-networking.azurewebsites.net/Echo.ashx) [FAIL] System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.IO.IOException : The write operation failed, see inner exception. -------- System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response Stack Trace: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Http\tests\FunctionalTests\PostScenarioTest.cs(152,0): at System.Net.Http.Functional.Tests.PostScenarioTest.d__2b.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Http\tests\FunctionalTests\PostScenarioTest.cs(62,0): at System.Net.Http.Functional.Tests.PostScenarioTest.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestStream.cs(160,0): at System.Net.Http.WinHttpRequestStream.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(1326,0): at System.Net.Http.WinHttpHandler.d__15.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(847,0): at System.Net.Http.WinHttpHandler.d__5.MoveNext() ----- Inner Stack Trace ----- ``` +4172 area-System.Net Sockets ReceiveMessageFrom.Success test failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release_prtest/5657/console ``` System.Net.Sockets.Tests.ReceiveMessageFrom.Success [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.Windows.cs(100,0): at System.Net.Sockets.Socket.WSARecvMsgBlocking(IntPtr socketHandle, IntPtr msg, Int32& bytesTransferred, IntPtr overlapped, IntPtr completionRoutine) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets\src\System\Net\Sockets\SocketPal.Windows.cs(315,0): at System.Net.Sockets.SocketPal.ReceiveMessageFrom(Socket socket, SafeCloseSocket handle, Byte[] buffer, Int32 offset, Int32 size, SocketFlags& socketFlags, SocketAddress socketAddress, SocketAddress& receiveAddress, IPPacketInformation& ipPacketInformation, Int32& bytesTransferred) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(1714,0): at System.Net.Sockets.Socket.ReceiveMessageFrom(Byte[] buffer, Int32 offset, Int32 size, SocketFlags& socketFlags, EndPoint& remoteEP, IPPacketInformation& ipPacketInformation) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\ReceiveMessageFrom.cs(29,0): at System.Net.Sockets.Tests.ReceiveMessageFrom.Success() ``` +4173 area-System.Net Add self-signed and untrusted root HTTPS tests for HttpClient Both the Windows and X-Plat codebases would benefit from these tests. Negative trust tests are good for verifying that the trust model is being respected, and validating the exceptions being thrown. Additionally, OuterLoop versions which then temporarily add trust for the untrusted root and verify it's then passes are virtuous. Other potential cases of increasing complexity - Target vs SubjectAltName/Subject mismatch - Expired - Revoked - Certificate is invalid for server role (has an EKU extension, but doesn't say ServerAuthentication) - Domain is outside of the issuance scope of the CA +4174 area-System.Linq Expression interpreter - Test some write-back edge cases Creating this issue as a coat hanger for tests related to write-back behavior. +4180 area-System.Net Enable some System.Net tests for OSX/*nix. - The NameResolution functional tests were disabled on all *nixes. - The NameResolution PAL tests have been switched to the more modern style. - The Sockets.Legacy tests were disabled for OS X when using run-test.sh. +4184 area-System.Net Add HttpClient tests to support all HTTP verbs Added tests for validating against all standard and custom HTTP verbs. These tests use the new networking test server. Cosolidated some existing tests that were duplicative. More test porting and reorganzing will be done in later PRs. +4186 area-System.Net Add shim for libcurl version info. Adding a native shim for curl_version_info and removing the managed constants that are no longer needed. @kapilash @nguerrera @sokket @stephentoub +4187 area-System.Net [Linux] SendAsync_SendRequestUsingMethodToEchoServerWithNoContent_MethodCorrectlySent tests fail New tests added in PR #4184 has tests failing on Linux: SendAsync_SendRequestUsingMethodToEchoServerWithNoContent_MethodCorrectlySent() SendAsync_SendRequestUsingMethodToEchoServerWithContent_Success http://dotnet-ci.cloudapp.net/job/dotnet_corefx_prtest/5931/ +4190 area-System.Runtime Add System.String constructors taking sbyte * If you have a lot of code that interops with C strings, chances are that you have used those constructors in the past. Not having them makes code a little bit more complicated to port to CoreCLR. So this would be a nice addition to have. +4191 area-System.Linq Update ref file for System.Linq.Expressions to add Compile overload Seems this was omitted. +4194 area-System.Net Trim response headers in CurlHandler Apply same header response trimming done by WinHttpHandler. Fixes #4187 cc: @kapilash, @davidsh (At some point I'd like to go through and replace all Substring(...).Trim() calls with a more efficient SubstringTrim(...) that doesn't allocate an intermediate string. But in the meantime, this addresses the problem.) +4196 area-System.Linq Lambdas with same signature always have same hash codes "In debugging my last issue (Expression.Invoke not being thread safe), I ran into a problem with code execution in being tell my lambdas apart since they had the same signature; consider: Since the hashcode of f and g is the same, the only way I can tell them apart in the debugger is by (a) executing them, (b) comparing them via equality, or (c) using the IDE's assign ID function. I realize unequal objects can have the same hash code by accident, but I think it is not very useful if unequal objects _always_ have the same hash code, if only for debugging purposes. In normal Windows, a work around is probably to use the hashcode of Method (e.g. f.Method.GetHashCode()), which seems to return a more diverse result. However, in universal Windows, that member isn't available. We could also use the string, but that isn't useful when the lambda is compiled via the DLR. " +4198 area-System.Data Support windows authentication for SqlClient on Xplat Currently Windows Authentication is not supported on Xplat. Explore supporting Windows Authentication using Kerberos on Xplat +4199 area-System.Net Port to RC1: Support for http delete and other methods for CurlHandler Update CurlHandler to allow sending Http 'delete', 'options' and etc Add two test cases for delete Add two test cases for options TRACE should not upload content. +4203 area-System.Net Replace Substring(...).Trim() with SubstringTrim(...) System.Net.WebHeaderCollection already had a SubstringTrim helper that's used instead of Substring(...).Trim() to avoid first creating the substring and then trimming it, instead just offsetting the startIndex and length appropriately to do the Substring and create only one string. I've factored this helper out into Common, cleaned it up a bit, added unit tests for it, and used it in a few more places in System.Net. cc: @ellismg, @davidsh, @cipop (@justinvp, I know you have an outstanding PR that touches one of these locations, though I think that's already needing updates based on other changes that have gone in. Sorry for any additional churn.) +4204 area-System.Net System.Net.Sockets tests crashed in CI on Windows "http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release_prtest/5725/console ``` Discovering: System.Net.Sockets.Tests Discovered: System.Net.Sockets.Tests Starting: System.Net.Sockets.Tests d:\j\workspace\dotnet_corefx_windows_release_prtest\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00111\lib\tests.targets(129,5): warning MSB3073: The command ""CoreRun.exe xunit.console.netcore.exe System.Net.Sockets.Tests.dll -xml testResults.xml -notrait category=nonwindowstests -notrait category=OuterLoop -notrait category=failing "" exited with code -1073741819. [d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets\tests\FunctionalTests\System.Net.Sockets.Tests.csproj] d:\j\workspace\dotnet_corefx_windows_release_prtest\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00111\lib\tests.targets(136,5): error : One or more tests failed while running tests from 'System.Net.Sockets.Tests' please check log for details! [d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets\tests\FunctionalTests\System.Net.Sockets.Tests.csproj] ``` " +4206 area-System.Net Port to RC1: Fix hang when writing request stream in WinHttpHandler Cherry-pick of #4078 for RC1 +4207 area-System.Net Port to RC1: WinHttpHandler Fix POSTs with zero length content Cherry-pick of #4117 for RC1 +4208 area-System.IO Make System.IO.Path.NormalizePath public Right now the only way to normalize a path is by calling `GetFullPath`, but this is not always desirable. This could be especially useful since .NET is cross platform now. Thoughts? +4209 area-System.Net Port to RC1: Fix CurlHandler deadlock with synchronous CopyToAsync CurlHandler calls to HttpContext.CopyToAsync with a stream that CopyToAsync should write to asynchronously. If, however, the call to CopyToAsync writes to it synchronously as part of the synchronous call to CopyToAsync, CurlHandler will deadlock. As a precaution, we ensure that the CopyToAsync call is asynchronous from the perspective of CurlHandler. +4213 area-Infrastructure Move non-Windows scripts over to Python To help normalize our helper scripts cross-platform while removing environment dependencies (such as shells), we should switch our non-Windows scripts over from bash scripts to Python scripts. This will remove the Bash dependency (which is a heavy one) and add a Python dependency, which is installed by-default on our supported, non-Windows platforms to date (OS X and Ubuntu). The scripts that need to be changed are: - [ ] build.sh - [ ] run-test.sh - [ ] src/Native/format-code.sh - [ ] src/Native/gen-buildsys-clang.sh /cc @ellismg @mmitche /fyi @janhenke @ghuntley @jasonwilliams200OK +4215 area-Serialization Add implementation and contract change for serialization surrogate Fix #1931 +4216 area-System.Net Shim libcurl slist and easy functions Add shims for Interop.libcurl_slist.cs functions. Add shims for libcurl curl_easy_\* functions. @kapilash @vijaykota @nguerrera @sokket @stephentoub @bartonjs +4217 area-System.Net System.Net.Security not found on Linux I installed the runtime version 1.0.0-rc1-16048 on Ubuntu 14.04 and tried to connect to Azure Sql database on Linux When I run the test I receive the error System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. I checked the runtime folder coreCLR and I dont see System.Net.Security.dll in there. Is this a packaging issue? +4218 area-System.Net Add some missing using statements. The lack of these statements was breaking the TFS build. Fixes #4143. +4219 area-System.Console [System.Console] Behavior of piping into a bad/nonexistent program on Unix Right now, if you try to pipe a program's output into a non-existent program on Unix, you will get an IOException on the first call to Console.Write(Line) (and probably other paths): ``` Unhandled Exception: System.IO.IOException: Broken pipe at Interop.CheckIo(Int64 result, String path, Boolean isDirectory, Func`2 errorRewriter) at System.ConsolePal.Write(Int32 fd, Byte[] buffer, Int32 offset, Int32 count) at System.ConsolePal.UnixConsoleStream.Write(Byte[] buffer, Int32 offset, Int32 count) at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder) at System.IO.SyncTextWriter.WriteLine(String value) at System.Console.WriteLine(String value) ``` I chatted with Stephen briefly and we thought that it might be sensible to just ignore this particular exception (in Interop.CheckIO) and allow the program to continue. That is, if we are able to easily detect such a case, and are still able to correctly throw if some other error occurs. How do others feel about this? This seems to be in line with what other programs do if piped into a bad program. +4222 area-System.Runtime Adding ApplicationException and other some other exception types I've been migrating quite a few projects to CoreCLR recently and the lack of ApplicationException is definitely problematic as a lot of existing code is using that type. Using just Exception doesn't sound quite right. Can we have it back in CoreFX? Other exceptions I've seen no present in CoreFX that would also be useful are: - AccessViolationException - EntryPointNotFoundException Thanks, Manu +4223 area-System.Net Update the Trailer Size with the correct value which vaires with the protocol used This is to track the changes needed to update the Trailer size value in StreamSizes with the correct value +4224 area-System.Diagnostics System.Diagnostics.Process missing environment variables. "/cc @Priya91, @pallavit, @joshfree, @stephentoub I am using Process to run a ""Build.cmd"", I have `echo %PATH%`, The result which run by C# is empty, at the same time, I tried add the system env vars again, it still not works. However, I double click the ""Build.cmd"", It can run the correct %PATH% ``` Process = new Process(); WorkingDirectory = FindDirectory(workingDirectory); var fileName = ""cmd.exe""; if (OS.Current != OSType.Windows) { fileName = ""bash""; } var arguments = ""/c build.cmd""; if (OS.Current != OSType.Windows) { arguments = ""./build.sh""; } Process.StartInfo = new ProcessStartInfo { FileName = fileName, Arguments = arguments, UseShellExecute = false, RedirectStandardError = true, RedirectStandardOutput = true, RedirectStandardInput = true, WorkingDirectory = WorkingDirectory }; ``` ... ``` var sysenv = Environment.GetEnvironmentVariables(); foreach(dynamic ev in sysenv) { #if DNXCORE50 if (Process.StartInfo.Environment[ev.Key] != null) Process.StartInfo.Environment[ev.Key] = Process.StartInfo.Environment[ev.Key].TrimEnd(' ').TrimEnd(';') + "";"" + ev.Value; else Process.StartInfo.Environment.Add(ev.Key, ev.Value); #else if (Process.StartInfo.EnvironmentVariables[ev.Key] != null) Process.StartInfo.EnvironmentVariables[ev.Key] = Process.StartInfo.EnvironmentVariables[ev.Key].TrimEnd(' ').TrimEnd(';') + "";"" + ev.Value; else Process.StartInfo.EnvironmentVariables.Add(ev.Key, ev.Value); #endif } ``` " +4227 area-Infrastructure Code coverage broken on Windows "It appears recent buildtools changes result in a corrupted path while trying to invoke OpenCover, causing code coverage to fail with a ""The filename, directory name, or volume label syntax is incorrect."" error. " +4231 area-Infrastructure Native code format checker failing in CI "All PRs are failing with errors like: ``` 06:10:33 [native_code_format_check_prtest] $ cmd /c call /tmp/hudson5140982484119790206.bat 06:10:33 FATAL: command execution failed 06:10:33 java.io.IOException: Cannot run program ""cmd"" (in directory ""/mnt/j/workspace/dotnet_corefx/native_code_format_check_prtest""): error=2, No such file or directory 06:10:33 at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047) ``` " +4234 area-System.Data SqlClient cannot connect to server from Linux/OS X SqlConnection.Open() fails to establish a connection from Linux (Ubuntu 14.04) or OS X 10.11 to SQL Server. The error thrown on Linux is > System.Data.SqlClient.SqlException : A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - A call to SSPI failed, see inner exception.) The error thrown on OS X is > System.Data.SqlClient.SqlException : A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server) Using SqlClient 4.0.0-beta-23428 and dnx-coreclr-1.0.0-rc1-16048. SqlConnection works just fine when using dnx-**mono**-1.0.0-rc1-16048 instead. Repro: https://github.com/natemcmaster/test-sqlclient/tree/b2e76a6bcbd3805d8f84696f6d0ec208647d33b2 (change config.json to include connection string). +4237 area-System.Net Added Support for GetChannelBinding() in xplat Added Support for GetChannelBinding() in xplat System.Net.Security - Added support for both EndPoint & Unique type of channel binding. - Validated cbt with what we get with Windows. - corresponding tests passed as well. There is no inbuilt openssl library which gives you channel binding token directly. It have to be framed using basic APIs. +4248 area-System.Net Fixing tests having different behavior We discovered some tests were having a different behavior due to the nondeterministic nature of calling a disposal of a socket that is doing an EndAccept operation in a different thread. Also, the test was incorrectly propagating the expected SocketException coming from the client socket, using the server as an intermediary. Now it's correctly done using a SocketError. Fix #4052 +4249 area-System.Reflection Merge master to dev/metadata Reconcile the portable-pdb work that went in to master with additional API review changes. dev/metadata is now a proper superset of master with decoders added. Bump dev S.R.M version to 1.2 Note that the decoders will also go through individual API review/PRs to master, but this puts dev/metadata back in a place where follow-up work on the decoders can be reviewed vs. what we had in dev/metadata so far. +4252 area-System.Net System.Net.NetworkInformation: Use List instead of Collection Avoids unnecessary `Collection` overhead. cc: @CIPop, @mellinoe +4253 area-System.Net Handle CURLE_UNKNOWN_OPTION when registering HTTPS callbacks on older… … versions of curl. Prior to curl 7.39 the case label for CURLOPT_SSL_CTX_FUNCTION was compiled out, resulting in CURLE_UNKNOWN_OPTION. In 7.39 they changed it to always present, but reporting CURLE_NOT_BUILT_IN when the backend SSL provider didn't support that callback. The code was written based on the behavior of curl 7.43, so didn't know about the legacy behavioral difference. Fixes #4233. cc: @stephentoub @eerhardt @kapilash +4254 area-System.Net WinHttpHandler WinHttpResponseStream reads should return back with partial data ".NET Stream.Read() semantics leave it to the implementation to decide how much data to return given a buffer of size N: https://msdn.microsoft.com/en-us/library/system.io.stream.read(v=vs.110).aspx ""An implementation is free to return fewer bytes than requested even if the end of the stream has not been reached."" The behavior of System.Net HTTP APIs (i.e. .NET Framework) are such that stream reads are able to return as soon as data is available. They don't wait until the provided buffer is full. The current WinHttpHandler was not behaving that way because it didn't call WinHttpQueryDataAvailable before calling WinHttpReadData. WinHttpQueryDataAvailable would indicate how many bytes can be read immediately. This fix changes the WinHttpResponseStream.Read\* methods to use WinHttpQueryDataAvailable before calling WinHttpReadData. Added both WinHttpHandler unit tests (helps with simulating/testing network errors) and HttpClientHandler functional tests (which will test x-plat). Fixes #1825 " +4255 area-System.Net WinHttpHandler ResponseStream reads should return back with partial data ".NET Stream.Read() semantics leave it to the implementation to decide how much data to return given a buffer of size N: https://msdn.microsoft.com/en-us/library/system.io.stream.read(v=vs.110).aspx ""An implementation is free to return fewer bytes than requested even if the end of the stream has not been reached."" The behavior of System.Net HTTP APIs (i.e. .NET Framework) are such that stream reads are able to return as soon as data is available. They don't wait until the provided buffer is full. The current WinHttpHandler was not behaving that way because it didn't call WinHttpQueryDataAvailable before calling WinHttpReadData. WinHttpQueryDataAvailable would indicate how many bytes can be read immediately. This fix changes the WinHttpResponseStream.Read\* methods to use WinHttpQueryDataAvailable before calling WinHttpReadData. Added both WinHttpHandler unit tests (helps with simulating/testing network errors) and HttpClientHandler functional tests (which will test x-plat). Fixes #1825 " +4256 area-System.Net [System.Net.NetworkInformation] Address performance to-do markers "Contains a few changes based on the perf markers I left in the code. - I made it optional to pass in callbacks to the Interop.Sys.EnumerateInterfaceAddresses function. In the new usages, I don't need to know about the link-layer addresses, so I don't pass a callback for them. - I pulled out two common methods into an IPAddressUtil class for use when dealing with Interop.SysEnumerateInterfaceAddresses. - The implemention for GetUnicastAddresses(Async) is the same for Linux and OSX, so I've created a ""UnixIPGlobalProperties"" base class that implements that method for both operating systems. - There was an additional marker regarding using sysctl to query the machine's address count. Looking at it again, I don't think it's actually worth bothering. All we are doing instead is adding up the number of addresses from the list of interfaces we already have. It's probably faster than PInvoking for a single number. Addresses the first part of #4060. " +4257 area-Serialization Port to RC1: Add implementation and contract change for serialization surrogate PR for serialization surrogate targeting 1.0.0.rc1 branch. Merge pull request #4215 from khdang/add_serialization_surrogate +4259 area-System.Net [Linux] HttpClient test SendAsync_ReadFromSlowStreamingServer_PartialDataReturned failed "Reference new PR #4255 Build: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_prtest/6065/ New test added: test failed on Linux: System.Net.Http.Functional.Tests.HttpClientHandlerTest.SendAsync_ReadFromSlowStreamingServer_PartialDataReturned ""bytesRead should be less than buffer.Length Expected: True Actual: False"" " +4261 area-Infrastructure Build failure on OSX "Building from root fails on OSX with 7 errors related to GenFacades. A sample is below > /Users/kapilash/src/corefx/packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00112/lib/partialfacades.targets(180,5): error MSB3073: The command """"/Users/kapilash/src/corefx/bin/obj/OSX.AnyCPU.Debug/ToolRuntime/corerun"" ""/Users/kapilash/src/corefx/packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00112/lib/GenFacades.exe"" -partialFacadeAssemblyPath:""/Users/kapilash/src/corefx/bin/obj/OSX.AnyCPU.Debug/System.Reflection.TypeExtensions.CoreCLR/PreGenFacades/System.Reflection.TypeExtensions.dll"" -contracts:""/Users/kapilash/src/corefx/packages/System.Reflection.TypeExtensions/4.1.0-beta-23429/ref/dotnet5.1/System.Reflection.TypeExtensions.dll"" -seeds:""/Users/kapilash/src/corefx/packages/Microsoft.DotNet.CoreCLR/1.0.5-prerelease/lib/dnxcore50/mscorlib.dll"" -facadePath:""/Users/kapilash/src/corefx/bin/obj/OSX.AnyCPU.Debug/System.Reflection.TypeExtensions.CoreCLR/"" -producePdb:false"" exited with code 255. [/Users/kapilash/src/corefx/src/System.Reflection.TypeExtensions/src/System.Reflection.TypeExtensions.CoreCLR.csproj] It seems the problem is the presence of the [file called mscorlib.ni.dll](https://github.com/dotnet/coreclr/issues/1419#issuecomment-134156283). Removing that from `$HOME/bin/obj/OSX.AnyCPU.Debug/ToolRuntime` fixes the build failure. " +4262 area-System.Net Remove obsolete TODOs from xplat SslStream code This includes removing TODOs from the places which are already investigated and fixed . There are few places where TODO was kept but after investigation no changes needed. At few places updated the TODO with new issue id where we have scope to further investigate and fix. +4263 area-System.Net Enabling System.Net.Security tests in Linux Enabled the tests to run on Linux . Marked all ssl2 related tests to run on windows only as Openssl doesn't allow ssl2 .. +4267 area-System.Net Add shims for libcurl multi_* functions. Adding shims for all of the libcurl multi_\* functions. I was able to remove all of the structs being used. There is only 1 place left to shim for libcurl, and it is a little tricky. Libcurl has some callback functions that use 'size_t' and 'long' in their signatures. To shim this, I will need to add some native 'thunk' functions that will do the marshalling between size_t and long to the managed stable signature. This will be my next task. @bartonjs @stephentoub @nguerrera @sokket @vijaykota @kapilash @shrutigarg +4268 area-System.Net Implement GetEnumerator for InternalIPAddressCollection "Right now, there's a bit of a mix-up with this type/method. Both the Windows and x-plat libraries use this type to return IPAddress collections. The base class (IPAddressCollection) throws a NotImplemented exception for the GetEnumerator method, which is not overridden here in System.Net.NetworkInformation. The Windows tests are not catching this issue because they are running against the ""System.Private.Networking"" version of System.Net.Primitives, which DOES implement the enumerator. This change just adds a very simple overload for GetEnumerator which defers to the wrapped List. " +4272 area-System.Net [NetworkInformation] Add basic API surface tests for Linux, OSX I've copied out the existing tests that Windows uses, which log all of the properties available on various types in the library, to separate versions for Linux and OSX. For those properties that aren't supported on Linux or OSX, I instead assert that a PlatformNotSupportedException is thrown. Although this doesn't give us guarantees about the results of those methods, it does let us know if they have stopped working altogether. One issue I discovered was that UnixUnicastIPAddressInformation was throwing a NotImplementedException (from the base class) rather than a PlatformNotSupportedException. I've fixed this as well. +4273 area-System.Data 28% of SqlClient connections on OSX/Linux break On Linux, calls to `SqlCommand.ExecuteReader` often die due to a broken connection. Ubuntu 14.04, CoreCLR rc1 System.Data.SqlClient build 23429 These failures are nondeterministic, and do not appear on Windows. ``` Microsoft.Data.Entity.SqlServer.FunctionalTests.DataAnnotationSqlServerTest.TimestampAttribute_throws_if_value_in_database_changed [FAIL] Microsoft.Data.Entity.DbUpdateException : An error occurred while updating the entries. See the inner exception for details. ---- System.Data.SqlClient.SqlException : The connection is broken and recovery is not possible. The connection is marked by the server as unrecoverable. No attempt was made to restore the connection. ----- Inner Stack Trace ----- at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.SqlConnection.ValidateAndReconnect(Action beforeDisconnect, Int32 timeout) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) ``` Calls to `ExecuteNonQuery` often fail with this error: ``` System.Data.SqlClient.SqlException : A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - Connection was terminated) A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - Connection was terminated) Stack Trace: at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) at System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync() at System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket() at System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer() at System.Data.SqlClient.TdsParserStateObject.TryReadByte(Byte& value) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() ``` or with a similar variant that has this error: ``` (provider: TCP Provider, error: 0 - Unable to read data from the transport connection: Unknown error 10054.) ``` Repeated runs of one test do not always fail, but it does not take high load to produce the error. This error consistently reproduces at some point when running the all tests in EntityFramework ([code here](https://github.com/aspnet/EntityFramework/tree/release/test/EntityFramework.MicrosoftSqlServer.FunctionalTests)). I can create a simplified repro project if necessary. Full test log here: [sqlserver-functionaltests.log](https://gist.githubusercontent.com/natemcmaster/13532755aeeee6a53ccb/raw/259802c7a4e6fd182e0e0bf5a86d04392eba8dad/sqlserver-functionaltests.log) +4274 area-System.IO Path.GetDirectoryName removes necessary relative paths "`Path.GetDirectoryName(@""..\..\files.txt"")` returns an empty string instead of `..\..` This breaks stories such as ""write a new file in the same directory as another specific file"" " +4275 area-System.Net Merge changes from TFS +4276 area-System.Net Optimize delegate allocations in SocketTaskExtensions Fixes #4052 If you have plans to eliminate Begin/End in short terms feel free to close PR :smile: +4277 area-System.Net HttpWebRequest request stream WriteAsync, FlushAsync overrides This was a prior TODO from PR #2386. Added overrides for Stream's WriteAsync and FlushAync methods. As the request stream is a memory stream, it'll perform the operations synchronously anyways. Whereas if these methods remain not overridden, it'll default to the base stream's implementation which will queue work items that just call Write and Flush, respectively. So, this improves performance a little bit by not having to queue work items. Added tests for RequestStream class that is returned via the HttpWebRequest.GetRequstStream\* methods. +4278 area-System.Security Add System.Security.Cryptography.Xml.SignedXml class ## Execution plan **Goal:** Provide APIs fully compatible with full/Desktop .NET Framework (no changes as part of this work - straight port only) **Plan:** - [x] 1. Add the source code on GH sanitized, with licenses, etc. (it won't build) - [x] 2. Make the source code build (still excluded from overall repo build) - [x] 3. Remove Desktop registry-compat code paths - Remove methods that have [RegistryPermission] (Utils and SignedXml classes) along with any owned methods - Address any other registry-related compile errors such as those using Registry, RegistryPermission, RegistryKey, etc (delete code as necessary) - [x] 4. Add tests (We have to agree on expected code coverage and how much of the spec we have to cover) - Compare test results between Desktop and .NET Core implementations - [x] 5. Make it part of overall repo build & ship it! Code changes rules: **Only code changes absolutely necessary** to make it build and compatible with (full) .NET Framework are allowed, no additional bug fixes or changing architecture - such PRs will be rejected now. Changes like that can be considered after the initial port is done, when we have a good test bed and when we are able to validate such change. If larger code/architecture changes are needed from some reason, we should discuss them first here, before doing the work / submitting PR. If you work on some parts of the plan, please say so in the discussion to avoid duplicated work. We (@steveharter @karelz) will co-assign the issue to you. --------------------------------------------------------- ## Original The class to digitally sign XML needs to be added. +4279 area-System.Net Please provide inline authorization support for HttpClient Hi, The [`HttpClient`](https://github.com/dotnet/corefx/blob/c02d33b18398199f6acc17d375dab154e9a1df66/src/System.Net.Http/src/System/Net/Http/HttpClient.cs) facility is amazing. However, it lacks OO support for authentication and authorization. There should be a way to set a few properties (like `ClientId`, `SecretId`, `AuthenticationType`, `UserName` and `Password` etc.), and once the `HttpClient` is initialized with authentication, it should internally keep track of its authentication state, token expiry, refresh tokens, and all that. +4282 area-System.Diagnostics On OSX, launching a non existent process looks for Windows specific DllImport ``` Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'api-ms-win-core-errorhandling-l1-1-0.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Interop.mincore.SetErrorMode(UInt32 newMode) at System.IO.Win32FileSystem.FillAttributeInfo(String path, WIN32_FILE_ATTRIBUTE_DATA& data, Boolean tryagain, Boolean returnErrorOnNotFound) at System.IO.Win32FileSystem.FileExists(String fullPath) at System.IO.File.Exists(String path) at System.Diagnostics.Process.ResolvePath(String filename) at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) at Program.Main() ``` /cc @stephentoub +4283 area-System.Diagnostics [RC1] Avoid hang related to System.Diagnostics.Process and shutdown #4269 We need to port PR #4269 to RC1 +4284 area-Serialization Fix the header of DataContractSurrogateCaller.cs Update the header of file below to be under MIT license System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContractSurrogateCaller.cs +4285 area-System.Net [NetworkInformation] Address remaining code issues and general code cleanup @CIPop I went through and tried to address all of the feedback you left on the original PR to bring the code into corefx. I also did some general cleanup and formatting, and fixed up things like the XML doc comments, etc. Here's a list of the things I did: - Attempted to normalize the formatting of properties (single-line properties for trivial getters) - Added missing newlines - Normalized exception messages and exception throwing behavior in the library, particularly around string parsing errors, and PInvoke errors encountered when calling to System.Native. - Re-formatted existing comments into XML documentation comments in variety of shared files. I also removed some redundant comments from derived classes when the parent class already has the comment in place. - Deleted some dead code and some unused files from previous work-in-progress states +4286 area-System.Net Port to RC1: WinHttpHandler ResponseStream reads should return back with partial data Cherry-pick of #4255 for RC1 +4288 area-System.Net CoreFx builds failing with undeclared identifier - CURLM_ADDED_ALREADY "I've just started this failure in CoreFx builds on CentOS 7.1.1503 This is with libcurl version 7.29.0 See PR #4267 2015-11-02T18:00:27.683Z: [ 12%] Building C object System.Security.Cryptography.Native/CMakeFiles/System.Security.Cryptography.Native.dir/openssl.c.o 2015-11-02T18:00:27.772Z: error: use of undeclared identifier 'CURLM_ADDED_ALREADY'; did you mean 'PAL_CURLM_ADDED_ALREADY'? 2015-11-02T18:00:27.772Z: static_assert(PAL_CURLM_ADDED_ALREADY == CURLM_ADDED_ALREADY, """"); 2015-11-02T18:00:27.773Z: ^~~~~~~~~~~~~~~~~~~ 2015-11-02T18:00:27.773Z: PAL_CURLM_ADDED_ALREADY 2015-11-02T18:00:27.773Z: /root/corefx/src/Native/System.Net.Http.Native/pal_multi.h:19:5: note: 'PAL_CURLM_ADDED_ALREADY' declared here 2015-11-02T18:00:27.773Z: PAL_CURLM_ADDED_ALREADY = 7, 2015-11-02T18:00:27.773Z: ^ 2015-11-02T18:00:27.780Z: 1 error generated. 2015-11-02T18:00:27.782Z: make[2]: **\* [System.Net.Http.Native/CMakeFiles/System.Net.Http.Native.dir/pal_multi.cpp.o] Error 1 " +4289 area-System.Reflection The System.Reflection.Emit.ILGeneration contract contains APM-style async APIs Consider replacing Begin/End APM-style APIs with TPL Task-Async APIs: ``` C# public virtual void BeginCatchBlock(System.Type exceptionType) { } public virtual void BeginExceptFilterBlock() { } public virtual System.Reflection.Emit.Label BeginExceptionBlock() { return default(System.Reflection.Emit.Label); } public virtual void BeginFaultBlock() { } public virtual void BeginFinallyBlock() { } public virtual void BeginScope() { } public virtual void EndExceptionBlock() { } public virtual void EndScope() { } ``` +4290 area-System.Net Optimize Task Extension Methods Calling directly all begin methods to avoid delegate allocations which improves the performance overall. Fix #4052 +4291 area-Serialization Header and formatting changes for serialization Fix #4284 cc: @shmao @SGuyGe +4293 area-System.Net Fixing Debug code to do proper snapshot isolation of the ref-count variable Adding snapshot isolation to debugging ref-count code to avoid a race condition with SafeCloseSocket.Dispose() or .CloseAsIs(). Fix #4204 Validated that the original setup: VM with 2 CPUs and 8 instances of the same test. @josguil @davidsh @pgavlin PTAL +4295 area-System.Net Enabling ChannelBinding testcase in Unix Channel binding implementation has been added by Rajan , so enabling the testcase , +4297 area-System.Net Fix FakeNetworkStream to remove direct Fix DoNetworkRead() use fix for the issue #3802 +4298 area-System.Linq Expression.Loop doesn't check against reference equal break and continue labels Fails to compile with non-obvious error. Factory should likely check against this. +4299 area-System.IO BufferedStream should have a leaveOpen constructor [Migrated issue https://github.com/dotnet/coreclr/issues/1825 on behalf of @redknightlois] Currently the BufferedStream class doesnt have such a constructor, while there are many others that are intended to be chained like GZipStream do have it. +4301 area-System.Net 21 System.Net.Security tests failing on OS X ``` 03:30:45 Starting: System.Net.Security.Tests 03:30:46 ---- DEBUG ASSERTION FAILED ---- 03:30:46 ---- Assert Short Message ---- 03:30:46 Exception Caught. - Interop+OpenSsl+SslException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher ---> Interop+Crypto+OpenSslCryptographicException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher 03:30:46 --- End of inner exception stack trace --- 03:30:46 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 03:30:46 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:46 ---- Assert Long Message ---- 03:30:46 03:30:46 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:46 at System.Environment.get_StackTrace() 03:30:46 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:46 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:46 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 03:30:46 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:46 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:46 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:46 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:46 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 03:30:46 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 03:30:46 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 03:30:46 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 03:30:46 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 03:30:46 at System.Threading.Tasks.Task.Execute() 03:30:46 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:46 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:46 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:46 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:46 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:46 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 03:30:46 at System.Threading.Tasks.Task.FinishContinuations() 03:30:46 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 03:30:46 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:46 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:46 at System.Threading.ThreadPoolWorkQueue.Dispatch() 03:30:46 System.Net.Security.Tests.ServerNoEncryptionTest.ServerNoEncryption_ClientAllowNoEncryption_ConnectWithNoEncryption [FAIL] 03:30:46 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:46 (Exception from HRESULT: 0x8007007E) 03:30:46 ---- DEBUG ASSERTION FAILED ---- 03:30:46 ---- Assert Short Message ---- 03:30:46 Exception Caught. - Interop+OpenSsl+SslException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher ---> Interop+Crypto+OpenSslCryptographicException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher 03:30:46 --- End of inner exception stack trace --- 03:30:46 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 03:30:46 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:46 ---- Assert Long Message ---- 03:30:46 03:30:46 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:46 at System.Environment.get_StackTrace() 03:30:46 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:46 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:46 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 03:30:46 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:46 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:46 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:46 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:46 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 03:30:46 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 03:30:46 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 03:30:46 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 03:30:47 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 03:30:47 at System.Threading.Tasks.Task.FinishContinuations() 03:30:47 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ThreadPoolWorkQueue.Dispatch() 03:30:47 Stack Trace: 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher ---> Interop+Crypto+OpenSslCryptographicException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher 03:30:47 --- End of inner exception stack trace --- 03:30:47 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 03:30:47 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 03:30:47 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 03:30:47 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 03:30:47 at System.Threading.Tasks.Task.FinishContinuations() 03:30:47 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ThreadPoolWorkQueue.Dispatch() 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher ---> Interop+Crypto+OpenSslCryptographicException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher 03:30:47 --- End of inner exception stack trace --- 03:30:47 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 03:30:47 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 03:30:47 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 03:30:47 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 03:30:47 at System.Threading.Tasks.Task.FinishContinuations() 03:30:47 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ThreadPoolWorkQueue.Dispatch() 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol ---> Interop+Crypto+OpenSslCryptographicException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol 03:30:47 --- End of inner exception stack trace --- 03:30:47 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 03:30:47 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 03:30:47 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 03:30:47 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 03:30:47 at System.Threading.Tasks.Task.FinishContinuations() 03:30:47 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ThreadPoolWorkQueue.Dispatch() 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number 03:30:47 --- End of inner exception stack trace --- 03:30:47 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 03:30:47 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 03:30:47 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 03:30:47 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 03:30:47 at System.Threading.Tasks.Task.FinishContinuations() 03:30:47 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ThreadPoolWorkQueue.Dispatch() 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: Failed to get SSL method 'TLSv1_1_method'. Ensure the OpenSSL method exists on the current system. 03:30:47 at Interop.OpenSsl.GetSslMethod(SslProtocols protocols) 03:30:47 at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SafeDeleteContext..ctor(SafeFreeCredentials credential, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 03:30:47 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 03:30:47 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 03:30:47 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 03:30:47 at System.Threading.Tasks.Task.FinishContinuations() 03:30:47 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ThreadPoolWorkQueue.Dispatch() 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: Failed to get SSL method 'TLSv1_2_method'. Ensure the OpenSSL method exists on the current system. 03:30:47 at Interop.OpenSsl.GetSslMethod(SslProtocols protocols) 03:30:47 at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SafeDeleteContext..ctor(SafeFreeCredentials credential, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 03:30:47 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 03:30:47 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 03:30:47 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 03:30:47 at System.Threading.Tasks.Task.FinishContinuations() 03:30:47 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ThreadPoolWorkQueue.Dispatch() 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol ---> Interop+Crypto+OpenSslCryptographicException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol 03:30:47 --- End of inner exception stack trace --- 03:30:47 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 03:30:47 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 03:30:47 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 03:30:47 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 03:30:47 at System.Threading.Tasks.Task.FinishContinuations() 03:30:47 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ThreadPoolWorkQueue.Dispatch() 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number 03:30:47 --- End of inner exception stack trace --- 03:30:47 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials credential, SafeDeleteContext& context, String targetName, SecurityBuffer[] inputBuffers, SecurityBuffer outputBuffer) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 03:30:47 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 03:30:47 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 03:30:47 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 03:30:47 at System.Threading.Tasks.Task.FinishContinuations() 03:30:47 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ThreadPoolWorkQueue.Dispatch() 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: Failed to get SSL method 'TLSv1_1_method'. Ensure the OpenSSL method exists on the current system. 03:30:47 at Interop.OpenSsl.GetSslMethod(SslProtocols protocols) 03:30:47 at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SafeDeleteContext..ctor(SafeFreeCredentials credential, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 03:30:47 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 03:30:47 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 03:30:47 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 03:30:47 at System.Threading.Tasks.Task.FinishContinuations() 03:30:47 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ThreadPoolWorkQueue.Dispatch() 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: Failed to get SSL method 'TLSv1_2_method'. Ensure the OpenSSL method exists on the current system. 03:30:47 at Interop.OpenSsl.GetSslMethod(SslProtocols protocols) 03:30:47 at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SafeDeleteContext..ctor(SafeFreeCredentials credential, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 03:30:47 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 03:30:47 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 03:30:47 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 03:30:47 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 03:30:47 at System.Threading.Tasks.Task.FinishContinuations() 03:30:47 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ThreadPoolWorkQueue.Dispatch() 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: Failed to get SSL method 'TLSv1_1_method'. Ensure the OpenSSL method exists on the current system. 03:30:47 at Interop.OpenSsl.GetSslMethod(SslProtocols protocols) 03:30:47 at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SafeDeleteContext..ctor(SafeFreeCredentials credential, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, String targetName, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.SslStream.<>c__DisplayClass1.b__0(AsyncCallback callback, Object state) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 03:30:47 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsClient(SslStream s, String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.<>c__DisplayClassb.b__a() 03:30:47 at Xunit.Assert.RecordException(Action testCode) 03:30:47 at Xunit.Assert.Throws(Type exceptionType, Action testCode) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(SslProtocols server, SslProtocols client, Type expected) 03:30:47 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 03:30:47 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 03:30:47 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 03:30:47 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 03:30:47 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 03:30:47 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.b__45_0() 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.RunTestAsync() 03:30:47 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 03:30:47 at System.Threading.Tasks.Task`1.InnerInvoke() 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 03:30:47 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: Failed to get SSL method 'TLSv1_1_method'. Ensure the OpenSSL method exists on the current system. 03:30:47 at Interop.OpenSsl.GetSslMethod(SslProtocols protocols) 03:30:47 at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SafeDeleteContext..ctor(SafeFreeCredentials credential, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, String targetName, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.SslStream.<>c__DisplayClass1.b__0(AsyncCallback callback, Object state) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 03:30:47 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsClient(SslStream s, String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.<>c__DisplayClassb.b__a() 03:30:47 at Xunit.Assert.RecordException(Action testCode) 03:30:47 at Xunit.Assert.Throws(Type exceptionType, Action testCode) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(SslProtocols server, SslProtocols client, Type expected) 03:30:47 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 03:30:47 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 03:30:47 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 03:30:47 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 03:30:47 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 03:30:47 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.b__45_0() 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.RunTestAsync() 03:30:47 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 03:30:47 at System.Threading.Tasks.Task`1.InnerInvoke() 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 03:30:47 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: Failed to get SSL method 'TLSv1_1_method'. Ensure the OpenSSL method exists on the current system. 03:30:47 at Interop.OpenSsl.GetSslMethod(SslProtocols protocols) 03:30:47 at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SafeDeleteContext..ctor(SafeFreeCredentials credential, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, String targetName, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.SslStream.<>c__DisplayClass1.b__0(AsyncCallback callback, Object state) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 03:30:47 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsClient(SslStream s, String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.<>c__DisplayClassb.b__a() 03:30:47 at Xunit.Assert.RecordException(Action testCode) 03:30:47 at Xunit.Assert.Throws(Type exceptionType, Action testCode) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(SslProtocols server, SslProtocols client, Type expected) 03:30:47 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 03:30:47 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 03:30:47 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 03:30:47 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 03:30:47 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 03:30:47 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.b__45_0() 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.RunTestAsync() 03:30:47 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 03:30:47 at System.Threading.Tasks.Task`1.InnerInvoke() 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 03:30:47 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: Failed to get SSL method 'TLSv1_1_method'. Ensure the OpenSSL method exists on the current system. 03:30:47 at Interop.OpenSsl.GetSslMethod(SslProtocols protocols) 03:30:47 at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SafeDeleteContext..ctor(SafeFreeCredentials credential, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, String targetName, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.SslStream.<>c__DisplayClass1.b__0(AsyncCallback callback, Object state) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 03:30:47 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsClient(SslStream s, String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.<>c__DisplayClassb.b__a() 03:30:47 at Xunit.Assert.RecordException(Action testCode) 03:30:47 at Xunit.Assert.Throws(Type exceptionType, Action testCode) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(SslProtocols server, SslProtocols client, Type expected) 03:30:47 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 03:30:47 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 03:30:47 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 03:30:47 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 03:30:47 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 03:30:47 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.b__45_0() 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.RunTestAsync() 03:30:47 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 03:30:47 at System.Threading.Tasks.Task`1.InnerInvoke() 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 03:30:47 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: Failed to get SSL method 'TLSv1_2_method'. Ensure the OpenSSL method exists on the current system. 03:30:47 at Interop.OpenSsl.GetSslMethod(SslProtocols protocols) 03:30:47 at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SafeDeleteContext..ctor(SafeFreeCredentials credential, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, String targetName, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.SslStream.<>c__DisplayClass1.b__0(AsyncCallback callback, Object state) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 03:30:47 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsClient(SslStream s, String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.<>c__DisplayClassb.b__a() 03:30:47 at Xunit.Assert.RecordException(Action testCode) 03:30:47 at Xunit.Assert.Throws(Type exceptionType, Action testCode) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(SslProtocols server, SslProtocols client, Type expected) 03:30:47 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 03:30:47 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 03:30:47 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 03:30:47 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 03:30:47 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 03:30:47 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.b__45_0() 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.RunTestAsync() 03:30:47 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 03:30:47 at System.Threading.Tasks.Task`1.InnerInvoke() 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 03:30:47 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: Failed to get SSL method 'TLSv1_2_method'. Ensure the OpenSSL method exists on the current system. 03:30:47 at Interop.OpenSsl.GetSslMethod(SslProtocols protocols) 03:30:47 at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SafeDeleteContext..ctor(SafeFreeCredentials credential, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, String targetName, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.SslStream.<>c__DisplayClass1.b__0(AsyncCallback callback, Object state) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 03:30:47 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsClient(SslStream s, String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.<>c__DisplayClassb.b__a() 03:30:47 at Xunit.Assert.RecordException(Action testCode) 03:30:47 at Xunit.Assert.Throws(Type exceptionType, Action testCode) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(SslProtocols server, SslProtocols client, Type expected) 03:30:47 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 03:30:47 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 03:30:47 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 03:30:47 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 03:30:47 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 03:30:47 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.b__45_0() 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.RunTestAsync() 03:30:47 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 03:30:47 at System.Threading.Tasks.Task`1.InnerInvoke() 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 03:30:47 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: Failed to get SSL method 'TLSv1_2_method'. Ensure the OpenSSL method exists on the current system. 03:30:47 at Interop.OpenSsl.GetSslMethod(SslProtocols protocols) 03:30:47 at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SafeDeleteContext..ctor(SafeFreeCredentials credential, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, String targetName, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.SslStream.<>c__DisplayClass1.b__0(AsyncCallback callback, Object state) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 03:30:47 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsClient(SslStream s, String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.<>c__DisplayClassb.b__a() 03:30:47 at Xunit.Assert.RecordException(Action testCode) 03:30:47 at Xunit.Assert.Throws(Type exceptionType, Action testCode) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(SslProtocols server, SslProtocols client, Type expected) 03:30:47 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 03:30:47 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 03:30:47 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 03:30:47 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 03:30:47 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 03:30:47 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.b__45_0() 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.RunTestAsync() 03:30:47 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 03:30:47 at System.Threading.Tasks.Task`1.InnerInvoke() 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 03:30:47 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at Interop.libcurl.curl_easy_init() 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadAsset(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadCertificate(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindIssuer(X509Certificate2 cert, X509Certificate2Collection[] stores, List`1 downloadedCerts, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindCandidates(X509Certificate2 leaf, X509Certificate2Collection extraStore, List`1 downloaded, List`1 systemTrusted, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 03:30:47 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) 03:30:47 at System.Net.CertificateValidationPal.VerifyCertificateProperties(X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, Boolean isServer, String hostName) 03:30:47 at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) 03:30:47 at System.Net.Security.SslState.CompleteHandshake() 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.Tests.ServerNoEncryptionTest.ServerNoEncryption_ClientAllowNoEncryption_ConnectWithNoEncryption() 03:30:47 System.Net.Security.Tests.ServerRequireEncryptionTest.ServerRequireEncryption_ClientRequireEncryption_ConnectWithEncryption [FAIL] 03:30:47 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at Interop.libcurl.curl_easy_init() 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadAsset(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadCertificate(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindIssuer(X509Certificate2 cert, X509Certificate2Collection[] stores, List`1 downloadedCerts, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindCandidates(X509Certificate2 leaf, X509Certificate2Collection extraStore, List`1 downloaded, List`1 systemTrusted, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 03:30:47 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) 03:30:47 at System.Net.CertificateValidationPal.VerifyCertificateProperties(X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, Boolean isServer, String hostName) 03:30:47 at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) 03:30:47 at System.Net.Security.SslState.CompleteHandshake() 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: Failed to get SSL method 'TLSv1_2_method'. Ensure the OpenSSL method exists on the current system. 03:30:47 at Interop.OpenSsl.GetSslMethod(SslProtocols protocols) 03:30:47 at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SafeDeleteContext..ctor(SafeFreeCredentials credential, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, String targetName, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.SslStream.<>c__DisplayClass1.b__0(AsyncCallback callback, Object state) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 03:30:47 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsClient(SslStream s, String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.<>c__DisplayClassb.b__a() 03:30:47 at Xunit.Assert.RecordException(Action testCode) 03:30:47 at Xunit.Assert.Throws(Type exceptionType, Action testCode) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(SslProtocols server, SslProtocols client, Type expected) 03:30:47 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 03:30:47 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 03:30:47 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 03:30:47 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 03:30:47 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 03:30:47 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.b__45_0() 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTheoryTestCaseRunner.RunTestAsync() 03:30:47 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 03:30:47 at System.Threading.Tasks.Task`1.InnerInvoke() 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at Xunit.Sdk.MaxConcurrency at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 SyncContext.WorkerThreadProc() 03:30:47 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.Tests.ServerRequireEncryptionTest.ServerRequireEncryption_ClientRequireEncryption_ConnectWithEncryption() 03:30:47 System.Net.Security.Tests.ClientDefaultEncryptionTest.ClientDefaultEncryption_ServerAllowNoEncryption_ConnectWithEncryption [FAIL] 03:30:47 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at Interop.libcurl.curl_easy_init() 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadAsset(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadCertificate(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindIssuer(X509Certificate2 cert, X509Certificate2Collection[] stores, List`1 downloadedCerts, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindCandidates(X509Certificate2 leaf, X509Certificate2Collection extraStore, List`1 downloaded, List`1 systemTrusted, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 03:30:47 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) 03:30:47 at System.Net.CertificateValidationPal.VerifyCertificateProperties(X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, Boolean isServer, String hostName) 03:30:47 at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) 03:30:47 at System.Net.Security.SslState.CompleteHandshake() 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.Tests.ClientDefaultEncryptionTest.ClientDefaultEncryption_ServerAllowNoEncryption_ConnectWithEncryption() 03:30:47 System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Authentication_Success [FAIL] 03:30:47 System.AggregateException : One or more errors occurred. 03:30:47 ---- System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) 03:30:47 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) 03:30:47 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, TimeSpan timeout) 03:30:47 at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Authentication_Success() 03:30:47 ----- Inner Stack Trace ----- 03:30:47 at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) 03:30:47 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 03:30:47 System.Net.Security.Tests.ServerRequireEncryptionTest.ServerRequireEncryption_ClientAllowNoEncryption_ConnectWithEncryption [FAIL] 03:30:47 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at Interop.libcurl.curl_easy_init() 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadAsset(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadCertificate(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindIssuer(X509Certificate2 cert, X509Certificate2Collection[] stores, List`1 downloadedCerts, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindCandidates(X509Certificate2 leaf, X509Certificate2Collection extraStore, List`1 downloaded, List`1 systemTrusted, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 03:30:47 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) 03:30:47 at System.Net.CertificateValidationPal.VerifyCertificateProperties(X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, Boolean isServer, String hostName) 03:30:47 at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) 03:30:47 at System.Net.Security.SslState.CompleteHandshake() 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.Tests.ServerRequireEncryptionTest.ServerRequireEncryption_ClientAllowNoEncryption_ConnectWithEncryption() 03:30:47 System.Net.Security.Tests.ClientDefaultEncryptionTest.ClientDefaultEncryption_ServerRequireEncryption_ConnectWithEncryption [FAIL] 03:30:47 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at Interop.libcurl.curl_easy_init() 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadAsset(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadCertificate(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindIssuer(X509Certificate2 cert, X509Certificate2Collection[] stores, List`1 downloadedCerts, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindCandidates(X509Certificate2 leaf, X509Certificate2Collection extraStore, List`1 downloaded, List`1 systemTrusted, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 03:30:47 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) 03:30:47 at System.Net.CertificateValidationPal.VerifyCertificateProperties(X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, Boolean isServer, String hostName) 03:30:47 at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) 03:30:47 at System.Net.Security.SslState.CompleteHandshake() 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.Tests.ClientDefaultEncryptionTest.ClientDefaultEncryption_ServerRequireEncryption_ConnectWithEncryption() 03:30:47 System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Authentication_IncorrectServerName_Fail [FAIL] 03:30:47 Assert.Throws() Failure 03:30:47 Expected: typeof(System.Security.Authentication.AuthenticationException) 03:30:47 Actual: typeof(System.DllNotFoundException): Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) 03:30:47 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 03:30:47 --- End of stack trace from previous location where exception was thrown --- 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 03:30:47 at System.Net.Security.Tests.SslStreamStreamToStreamTest.<>c__DisplayClass1.b__0() 03:30:47 System.Net.Security.Tests.ServerNoEncryptionTest.ServerNoEncryption_ClientNoEncryption_ConnectWithNoEncryption [FAIL] 03:30:47 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at Interop.libcurl.curl_easy_init() 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadAsset(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadCertificate(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindIssuer(X509Certificate2 cert, X509Certificate2Collection[] stores, List`1 downloadedCerts, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindCandidates(X509Certificate2 leaf, X509Certificate2Collection extraStore, List`1 downloaded, List`1 systemTrusted, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 03:30:47 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) 03:30:47 at System.Net.CertificateValidationPal.VerifyCertificateProperties(X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, Boolean isServer, String hostName) 03:30:47 at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) 03:30:47 at System.Net.Security.SslState.CompleteHandshake() 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.Tests.ServerNoEncryptionTest.ServerNoEncryption_ClientNoEncryption_ConnectWithNoEncryption() 03:30:47 System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Successive_ClientWrite_Success [FAIL] 03:30:47 System.AggregateException : One or more errors occurred. 03:30:47 ---- System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) 03:30:47 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) 03:30:47 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, TimeSpan timeout) 03:30:47 at System.Net.Security.Tests.SslStreamStreamToStreamTest.DoHandshake(SslStream clientSslStream, SslStream serverSslStream) 03:30:47 at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Successive_ClientWrite_Success() 03:30:47 ----- Inner Stack Trace ----- 03:30:47 at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) 03:30:47 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 03:30:47 System.Net.Security.Tests.ServerAllowNoEncryptionTest.ServerAllowNoEncryption_ClientNoEncryption_ConnectWithNoEncryption [FAIL] 03:30:47 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at Interop.libcurl.curl_easy_init() 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadAsset(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadCertificate(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindIssuer(X509Certificate2 cert, X509Certificate2Collection[] stores, List`1 downloadedCerts, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindCandidates(X509Certificate2 leaf, X509Certificate2Collection extraStore, List`1 downloaded, List`1 systemTrusted, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 03:30:47 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) 03:30:47 at System.Net.CertificateValidationPal.VerifyCertificateProperties(X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, Boolean isServer, String hostName) 03:30:47 at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) 03:30:47 at System.Net.Security.SslState.CompleteHandshake() 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.Tests.ServerAllowNoEncryptionTest.ServerAllowNoEncryption_ClientNoEncryption_ConnectWithNoEncryption() 03:30:47 System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_EachProtocol_Success [FAIL] 03:30:47 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) 03:30:47 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 03:30:47 --- End of stack trace from previous location where exception was thrown --- 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 03:30:47 at System.Net.Security.SslStreamAPMExtensions.EndAuthenticateAsClient(SslStream s, IAsyncResult asyncResult) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_EachProtocol_Success() 03:30:47 System.Net.Security.Tests.ServerAllowNoEncryptionTest.ServerAllowNoEncryption_ClientAllowNoEncryption_ConnectWithEncryption [FAIL] 03:30:47 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at Interop.libcurl.curl_easy_init() 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadAsset(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadCertificate(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindIssuer(X509Certificate2 cert, X509Certificate2Collection[] stores, List`1 downloadedCerts, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindCandidates(X509Certificate2 leaf, X509Certificate2Collection extraStore, List`1 downloaded, List`1 systemTrusted, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 03:30:47 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) 03:30:47 at System.Net.CertificateValidationPal.VerifyCertificateProperties(X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, Boolean isServer, String hostName) 03:30:47 at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) 03:30:47 at System.Net.Security.SslState.CompleteHandshake() 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.Tests.ServerAllowNoEncryptionTest.ServerAllowNoEncryption_ClientAllowNoEncryption_ConnectWithEncryption() 03:30:47 System.Net.Security.Tests.ServerAllowNoEncryptionTest.ServerAllowNoEncryption_ClientRequireEncryption_ConnectWithEncryption [FAIL] 03:30:47 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at Interop.libcurl.curl_easy_init() 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadAsset(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.CertificateAssetDownloader.DownloadCertificate(String uri, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindIssuer(X509Certificate2 cert, X509Certificate2Collection[] stores, List`1 downloadedCerts, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindCandidates(X509Certificate2 leaf, X509Certificate2Collection extraStore, List`1 downloaded, List`1 systemTrusted, TimeSpan& remainingDownloadTime) 03:30:47 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 03:30:47 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) 03:30:47 at System.Net.CertificateValidationPal.VerifyCertificateProperties(X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, Boolean isServer, String hostName) 03:30:47 at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) 03:30:47 at System.Net.Security.SslState.CompleteHandshake() 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.Tests.ServerAllowNoEncryptionTest.ServerAllowNoEncryption_ClientRequireEncryption_ConnectWithEncryption() 03:30:47 System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(server: Tls11, client: Ssl2, expected: typeof(System.IO.IOException)) [FAIL] 03:30:47 Assert.Throws() Failure 03:30:47 Expected: typeof(System.IO.IOException) 03:30:47 Actual: typeof(System.Security.Authentication.AuthenticationException): A call to SSPI failed, see inner exception. 03:30:47 Stack Trace: 03:30:47 at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.SslStream.<>c__DisplayClass1.b__0(AsyncCallback callback, Object state) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 03:30:47 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsClient(SslStream s, String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.<>c__DisplayClassb.b__a() 03:30:47 System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(server: Tls11, client: Tls12, expected: typeof(System.IO.IOException)) [FAIL] 03:30:47 Assert.Throws() Failure 03:30:47 Expected: typeof(System.IO.IOException) 03:30:47 Actual: typeof(System.Security.Authentication.AuthenticationException): A call to SSPI failed, see inner exception. 03:30:47 Stack Trace: 03:30:47 at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.SslStream.<>c__DisplayClass1.b__0(AsyncCallback callback, Object state) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 03:30:47 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsClient(SslStream s, String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.<>c__DisplayClassb.b__a() 03:30:47 System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(server: Tls12, client: Ssl2, expected: typeof(System.IO.IOException)) [FAIL] 03:30:47 Assert.Throws() Failure 03:30:47 Expected: typeof(System.IO.IOException) 03:30:47 Actual: typeof(System.Security.Authentication.AuthenticationException): A call to SSPI failed, see inner exception. 03:30:47 Stack Trace: 03:30:47 at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.SslStream.<>c__DisplayClass1.b__0(AsyncCallback callback, Object state) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 03:30:47 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsClient(SslStream s, String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.<>c__DisplayClassb.b__a() 03:30:47 System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_ServerRequireEncryption_ConnectWithEncryption [FAIL] 03:30:47 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) 03:30:47 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 03:30:47 --- End of stack trace from previous location where exception was thrown --- 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 03:30:47 at System.Net.Security.SslStreamAPMExtensions.EndAuthenticateAsClient(SslStream s, IAsyncResult asyncResult) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_ServerRequireEncryption_ConnectWithEncryption() 03:30:47 System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_AllServerVsIndividualClientProtocols_Success [FAIL] 03:30:47 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) 03:30:47 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 03:30:47 --- End of stack trace from previous location where exception was thrown --- 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 03:30:47 at System.Net.Security.SslStreamAPMExtensions.EndAuthenticateAsClient(SslStream s, IAsyncResult asyncResult) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_AllServerVsIndividualClientProtocols_Success() 03:30:47 System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_AllServerAllClient_Success [FAIL] 03:30:47 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) 03:30:47 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 03:30:47 --- End of stack trace from previous location where exception was thrown --- 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 03:30:47 at System.Net.Security.SslStreamAPMExtensions.EndAuthenticateAsClient(SslStream s, IAsyncResult asyncResult) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_AllServerAllClient_Success() 03:30:47 System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_IndividualServerVsAllClientProtocols_Success [FAIL] 03:30:47 System.DllNotFoundException : Unable to load DLL 'libcurl.so.4': The specified module could not be found. 03:30:47 (Exception from HRESULT: 0x8007007E) 03:30:47 Stack Trace: 03:30:47 at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) 03:30:47 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 03:30:47 --- End of stack trace from previous location where exception was thrown --- 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 03:30:47 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 03:30:47 at System.Net.Security.SslStreamAPMExtensions.EndAuthenticateAsClient(SslStream s, IAsyncResult asyncResult) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_IndividualServerVsAllClientProtocols_Success() 03:30:47 ---- DEBUG ASSERTION FAILED ---- 03:30:47 ---- Assert Short Message ---- 03:30:47 Exception Caught. - Interop+OpenSsl+SslException: Failed to get SSL method 'TLSv1_2_method'. Ensure the OpenSSL method exists on the current system. 03:30:47 at Interop.OpenSsl.GetSslMethod(SslProtocols protocols) 03:30:47 at Interop.OpenSsl.AllocateSslContext(SslProtocols protocols, SafeX509Handle certHandle, SafeEvpPKeyHandle certKeyHandle, EncryptionPolicy policy, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.Security.SafeDeleteContext..ctor(SafeFreeCredentials credential, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 ---- Assert Long Message ---- 03:30:47 03:30:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 03:30:47 at System.Environment.get_StackTrace() 03:30:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 03:30:47 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 03:30:47 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, String targetName, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer) 03:30:47 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 03:30:47 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.SslStream.<>c__DisplayClass1.b__0(AsyncCallback callback, Object state) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 03:30:47 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsClient(SslStream s, String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_Tls12ServerSsl2Tls12Client_Success() 03:30:47 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 03:30:47 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 03:30:47 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 03:30:47 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 03:30:47 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 03:30:47 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 03:30:47 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestInvoker`1.b__45_0() 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 03:30:47 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 03:30:47 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 03:30:47 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 03:30:47 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestClassRunner`1.RunAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 03:30:47 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 03:30:47 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 03:30:47 at System.Threading.Tasks.Task`1.InnerInvoke() 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 03:30:47 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) 03:30:47 at System.Threading.Tasks.Task.Execute() 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 03:30:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 03:30:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 03:30:47 System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_Tls12ServerSsl2Tls12Client_Success [FAIL] 03:30:47 System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. 03:30:47 ---- Interop+OpenSsl+SslException : Operation failed with error - 12. 03:30:47 Stack Trace: 03:30:47 at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) 03:30:47 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 03:30:47 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 03:30:47 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.SslStream.<>c__DisplayClass1.b__0(AsyncCallback callback, Object state) 03:30:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 03:30:47 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 03:30:47 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 03:30:47 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsClient(SslStream s, String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 03:30:47 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_Tls12ServerSsl2Tls12Client_Success() 03:30:47 ----- Inner Stack Trace ----- 03:30:47 03:30:47 Finished: System.Net.Security.Tests 03:30:47 03:30:47 === TEST EXECUTION SUMMARY === 03:30:47 System.Net.Security.Tests Total: 39, Errors: 0, Failed: 21, Skipped: 0, Time: 2.173s ``` +4302 area-Serialization Cleanup an inactive directive in serialization Clean up MERGE_DCJS directive for data contract serializers. Fix #3061 cc: @SGuyGe @shmao +4303 area-System.Security "Windows: new Oid("""").Value is not """"" "On Desktop, `""""` is returned for the OID Value, and null for the OID name (http://referencesource.microsoft.com/#System/security/system/security/cryptography/x509/x509utils.cs,359) On Linux, `""""` is returned. But Windows CoreFX returns `1.2.840.113549.1.9.9`. One can only presume that this unexpected result is why that empty value check existed in Desktop. " +4307 area-System.Net Add shims for Seek, ReadWrite and SslCtx callbacks in libcurl. Since libcurl defines callbacks with varying signatures from platform to platform, we need to define a signature for the callbacks that doesn't change. Then we register our own native callbacks, which then converts the parameters from the varying signature to the unchanging signature and invokes the managed callback. @stephentoub @nguerrera @bartonjs @sokket @vijaykota @kapilash @shrutigarg +4308 area-System.Net CentOS CI build failing to compile System.Net.Http.Native "``` /mnt/resource/j/workspace/dotnet_corefx_linux_centos71_nativecomp_release/src/Native/System.Net.Http.Native/pal_multi.cpp:15:42: error: use of undeclared identifier 'CURLM_ADDED_ALREADY'; did you mean 'PAL_CURLM_ADDED_ALREADY'? static_assert(PAL_CURLM_ADDED_ALREADY == CURLM_ADDED_ALREADY, """"); ^~~~~~~~~~~~~~~~~~~ PAL_CURLM_ADDED_ALREADY /mnt/resource/j/workspace/dotnet_corefx_linux_centos71_nativecomp_release/src/Native/System.Net.Http.Native/pal_multi.h:19:5: note: 'PAL_CURLM_ADDED_ALREADY' declared here PAL_CURLM_ADDED_ALREADY = 7, ^ 1 error generated. make[2]: *** [System.Net.Http.Native/CMakeFiles/System.Net.Http.Native.dir/pal_multi.cpp.o] Error 1 ``` " +4309 area-System.Net Fix a race in DynamicWinsockMethods. There was a race between an initialization check and an initializer: in EnsureWSARecvMsg, the field used to check that multiple fields had been initialized was written to before the other field. The writes have been reordered and appropriate barriers have been added. Fixes #4172. +4316 area-System.Collections Add TryDequeue to Queue [`System.Collections.Generic.Queue`](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/Queue.cs) does not have a `TryDequeue` method, however its `Dequeue` is a throwing method so the following pattern always has to be used: ``` csharp T item ...; if (queue.Count > 0) { item = queue.Dequeue(); ... } ``` with extra boilerplate for for whatever no item handling; this would be better as: ``` csharp T item; if (queue.TryDequeue(out item) { ... } ``` As per `ConcurrentQueue` or `TryGet` of Dictionary +4317 area-System.Net System.Net.Security tests asserting and failing on Linux in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst/1373/consoleFull ``` 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher ---> Interop+Crypto+OpenSslCryptographicException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher ---> Interop+Crypto+OpenSslCryptographicException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher ---> Interop+Crypto+OpenSslCryptographicException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher ---> Interop+Crypto+OpenSslCryptographicException: error:1408A0C1:SSL routines:SSL3_GET_CLIENT_HELLO:no shared cipher 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 Finished: System.Threading.Timer.Tests 00:17:33 00:17:33 === TEST EXECUTION SUMMARY === 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol ---> Interop+Crypto+OpenSslCryptographicException: error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials credential, SafeDeleteContext& context, String targetName, SecurityBuffer[] inputBuffers, SecurityBuffer outputBuffer) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol ---> Interop+Crypto+OpenSslCryptographicException: error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials credential, SafeDeleteContext& context, String targetName, SecurityBuffer[] inputBuffers, SecurityBuffer outputBuffer) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol ---> Interop+Crypto+OpenSslCryptographicException: error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials credential, SafeDeleteContext& context, String targetName, SecurityBuffer[] inputBuffers, SecurityBuffer outputBuffer) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 System.Threading.Timer.Tests Total: 27, Errors: 0, Failed: 0, Skipped: 0, Time: 3.129s 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol ---> Interop+Crypto+OpenSslCryptographicException: error:14077102:SSL routines:SSL23_GET_SERVER_HELLO:unsupported protocol 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials credential, SafeDeleteContext& context, String targetName, SecurityBuffer[] inputBuffers, SecurityBuffer outputBuffer) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol ---> Interop+Crypto+OpenSslCryptographicException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 00:17:33 at System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 00:17:33 at System.Net.Security.SslStream.<>c__DisplayClass4.b__3(AsyncCallback callback, Object state) 00:17:33 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 00:17:33 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 00:17:33 at System.Net.Security.SslStream.AuthenticateAsServerAsync(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 00:17:33 at System.Net.Security.SslStreamAPMExtensions.BeginAuthenticateAsServer(SslStream s, X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 00:17:33 at System.Net.Security.Tests.DummyTcpServer.OnAccept(IAsyncResult result) 00:17:33 at System.Net.LazyAsyncResult.Complete(IntPtr userToken) 00:17:33 at System.Net.ContextAwareResult.Complete(IntPtr userToken) 00:17:33 at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) 00:17:33 at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionCallback(Int32 numBytes, SocketError errorCode) 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(server: Ssl3, client: Ssl2, expected: typeof(System.IO.IOException)) [FAIL] 00:17:33 Assert.Throws() Failure 00:17:33 Expected: typeof(System.IO.IOException) 00:17:33 Actual: typeof(System.InvalidOperationException): EndAuthenticate can only be called once for each asynchronous operation. 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol ---> Interop+Crypto+OpenSslCryptographicException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 Stack Trace: 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials credential, SafeDeleteContext& context, String targetName, SecurityBuffer[] inputBuffers, SecurityBuffer outputBuffer) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol ---> Interop+Crypto+OpenSslCryptographicException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials credential, SafeDeleteContext& context, String targetName, SecurityBuffer[] inputBuffers, SecurityBuffer outputBuffer) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials credential, SafeDeleteContext& context, String targetName, SecurityBuffer[] inputBuffers, SecurityBuffer outputBuffer) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol ---> Interop+Crypto+OpenSslCryptographicException: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.AcceptSecurityContext(SafeFreeCredentials& credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean remoteCertRequired) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials credential, SafeDeleteContext& context, String targetName, SecurityBuffer[] inputBuffers, SecurityBuffer outputBuffer) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials credential, SafeDeleteContext& context, String targetName, SecurityBuffer[] inputBuffers, SecurityBuffer outputBuffer) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:33 ---- DEBUG ASSERTION FAILED ---- 00:17:33 ---- Assert Short Message ---- 00:17:33 Exception Caught. - Interop+OpenSsl+SslException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number ---> Interop+Crypto+OpenSslCryptographicException: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number 00:17:33 --- End of inner exception stack trace --- 00:17:33 at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 ---- Assert Long Message ---- 00:17:33 00:17:33 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 00:17:33 at System.Environment.get_StackTrace() 00:17:33 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 00:17:33 at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) 00:17:33 at System.Net.SslStreamPal.InitializeSecurityContext(SafeFreeCredentials credential, SafeDeleteContext& context, String targetName, SecurityBuffer[] inputBuffers, SecurityBuffer outputBuffer) 00:17:33 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 00:17:33 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 00:17:33 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) 00:17:33 at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 00:17:33 at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) 00:17:33 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 00:17:33 at System.IO.StreamAsyncHelper.b__4(Task _, Object obj) 00:17:33 at System.Threading.Tasks.Task.Execute() 00:17:33 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskScheduler.TryRunInline(Task task, Boolean taskWasPreviouslyQueued) 00:17:33 at System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(Task task, Boolean needsProtection) 00:17:33 at System.Threading.Tasks.Task.FinishContinuations() 00:17:33 at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 00:17:33 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 00:17:33 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 00:17:33 at System.Threading.ThreadPoolWorkQueue.Dispatch() 00:17:34 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) 00:17:34 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) 00:17:34 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 00:17:34 --- End of stack trace from previous location where exception was thrown --- 00:17:34 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 00:17:34 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 00:17:34 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 00:17:34 at System.Net.Security.SslStreamAPMExtensions.EndAuthenticateAsClient(SslStream s, IAsyncResult asyncResult) 00:17:34 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(EncryptionPolicy encryptionPolicy, SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 00:17:34 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncSslHelper(SslProtocols clientSslProtocols, SslProtocols serverSslProtocols) 00:17:34 at System.Net.Security.Tests.ClientAsyncAuthenticateTest.<>c__DisplayClassb.b__a() 00:17:34 Finished: System.Net.Security.Tests 00:17:34 00:17:34 === TEST EXECUTION SUMMARY === 00:17:34 System.Net.Security.Tests Total: 44, Errors: 0, Failed: 1, Skipped: 0, Time: 4.134s ``` +4322 area-System.Net [NetworkInformation] Make last fixes tracked by issue #4060. This addresses the last two issues I have tracked in #4060. - When calling into System.Native for obtaining TCP and UDP socket connection information (current open/listening sockets), just bail if the first call fails, i.e. if the estimated buffer size is not big enough. This is what most code examples do that I have seen, and I have not personally seen the first call fail anyways. - Shim out MapTcpState for Linux. There was previously a function doing the same thing, but only for OSX, and only in the context of gather connection informations. I've pulled it out into a separate source file and made an implementation for both platforms. This replaces the hard-coded enum in the managed code. NOTE: I have kept the managed enum in the test project, because the static test files we are using are from a specific distribution, and we therefore need to account for that some way in the parsing logic in the test library. cc: @CIPop , @stephentoub . After this, the only remaining work item I have is implementing NetworkChange for OSX, which I've already started. +4323 area-System.Net NetworkStream doesn't retrieve all the data for the SqlClient Refer https://github.com/dotnet/corefx/issues/4273 While using stream.ReadAsync to retrieve data, the stream returns 0 bytes when data is expected from the server. This problem occurs on Windows, Linux and OSX while running the entity framework tests at https://github.com/aspnet/EntityFramework +4328 area-System.Net Disable System.Net.Security tests on Unix https://github.com/dotnet/corefx/issues/4317 https://github.com/dotnet/corefx/issues/4301 cc: @ellismg, @eerhardt, @shrutigarg +4329 area-System.Net Implement NetworkAddressChanged event on OSX This is the last work item I have for NetworkInformation. It addresses Issue #4058 . I'm using the OSX SystemConfiguration Framework to listen for notifications about network address changes. The implementation here works, but I'd like some feedback on the threading approach and the general style I've used for cleaning up the temporary OSX string objects that need to be created for the native calls. It's fairly messy right now. @sokket I followed your general example from FileSystemWatcher and adapted it a bit for this. Please take a look, @sokket, @stephentoub , @CIPop +4331 area-System.Net Fix 43 of the 44 failing System.Net.Security tests on Linux - System.Net.Sockets removed a bunch of APIs. They're somehow still in the contracts, so compilation succeeds, but they're not implementation, so the tests fail when trying to use methods like TcpClient.Connect and various Begin/End methods. I've changed these to use the appropriate Async methods. - SslStream has a Debug.Fail which has been failing regularly, but it wasn't being noticed. Now that Debug.Fail will throw an exception, the tests that were previously asserting are now failing. I've temporarily commented out the Debug.Fail with a TODO comment. One test is still failing: ``` System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Ssl2_Fails_Linux(server: Ssl2, client: Tls11, expected: typeof(System.Security.Authentication.AuthenticationException)) [FAIL] Assert.Throws() Failure Expected: typeof(System.Security.Authentication.AuthenticationException) Actual: typeof(System.InvalidOperationException): EndAuthenticate can only be called once for each asynchronous operation. Stack Trace: at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) ``` cc: @ellismg, @eerhardt, @bartonjs, @shrutigarg, @vijaykota, @CIPop, @josguil, @davidsh +4336 area-System.Security X509Certificates.Tests.ChainTests.BuildChain failing on CentOS http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_centos71_debug_tst/133/consoleFull ``` 18:57:46 System.Security.Cryptography.X509Certificates.Tests.ChainTests.BuildChain [FAIL] 18:57:46 Chain built validly 18:57:46 Expected: True 18:57:46 Actual: False 18:57:46 Stack Trace: 18:57:46 at System.Security.Cryptography.X509Certificates.Tests.ChainTests.BuildChain() 18:57:46 Finished: System.Security.Cryptography.X509Certificates.Tests ``` cc: @bartonjs, @ellismg +4337 area-System.Security ECDsaOpenSsl tests failing on CentOS http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_centos71_debug_tst/133/consoleFull ``` Interop+Crypto+OpenSslCryptographicException : error:100AE081:elliptic curve routines:EC_GROUP_new_by_curve_name:unknown group 19:01:48 Stack Trace: 19:01:48 at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey() 19:01:48 at System.Lazy`1.CreateValue() 19:01:48 at System.Lazy`1.LazyInitValue() 19:01:48 at System.Security.Cryptography.ECDsaOpenSsl.SignHash(Byte[] hash) 19:01:48 at System.Security.Cryptography.ECDsa.SignData(Byte[] data, Int32 offset, Int32 count, HashAlgorithmName hashAlgorithm) 19:01:48 at System.Security.Cryptography.EcDsaOpenSsl.Tests.EcDsaOpenSslTests.Exercise(ECDsaOpenSsl e) 19:01:48 at System.Security.Cryptography.EcDsaOpenSsl.Tests.EcDsaOpenSslTests.KeySizeProp() 19:01:48 System.Security.Cryptography.EcDsaOpenSsl.Tests.EcDsaOpenSslTests.Ctor224 [FAIL] 19:01:48 Interop+Crypto+OpenSslCryptographicException : error:100AE081:elliptic curve routines:EC_GROUP_new_by_curve_name:unknown group 19:01:48 Stack Trace: 19:01:48 at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey() 19:01:48 at System.Lazy`1.CreateValue() 19:01:48 at System.Lazy`1.LazyInitValue() 19:01:48 at System.Security.Cryptography.ECDsaOpenSsl.SignHash(Byte[] hash) 19:01:48 at System.Security.Cryptography.ECDsa.SignData(Byte[] data, Int32 offset, Int32 count, HashAlgorithmName hashAlgorithm) 19:01:48 at System.Security.Cryptography.EcDsaOpenSsl.Tests.EcDsaOpenSslTests.Exercise(ECDsaOpenSsl e) 19:01:48 at System.Security.Cryptography.EcDsaOpenSsl.Tests.EcDsaOpenSslTests.Ctor224() ``` Looks like this particular algorithm isn't available in the OpenSSL installed on the CentOS image. Can we install one that has them? cc: @bartonjs, @mmitche, @ellismg +4338 area-System.Globalization Several NumberFormatInfoCurrencyNegativePattern tests failing on CentOS "http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_centos71_debug_tst/133/consoleFull ``` 19:01:41 System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern.TestCurrencyNegativePatternLocale(locale: ""fr-CD"", expectedWindows: 4, expectedIcu: 8) [FAIL] 19:01:41 Assert.Equal() Failure 19:01:41 Expected: 8 19:01:41 Actual: 15 19:01:41 Stack Trace: 19:01:42 Finished: System.Reflection.Tests 19:01:42 19:01:42 === TEST EXECUTION SUMMARY === 19:01:42 System.Reflection.Tests Total: 677, Errors: 0, Failed: 0, Skipped: 0, Time: 1.694s 19:01:42 at System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern.TestCurrencyNegativePatternLocale(String locale, Int32 expectedWindows, Int32 expectedIcu) 19:01:42 System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern.TestCurrencyNegativePatternLocale(locale: ""en-US"", expectedWindows: 0, expectedIcu: 1) [FAIL] 19:01:42 Assert.Equal() Failure 19:01:42 Expected: 1 19:01:42 Actual: 0 19:01:42 Stack Trace: 19:01:42 at System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern.TestCurrencyNegativePatternLocale(String locale, Int32 expectedWindows, Int32 expectedIcu) 19:01:42 System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern.TestCurrencyNegativePatternLocale(locale: ""fa-IR"", expectedWindows: 3, expectedIcu: 1) [FAIL] 19:01:42 Assert.Equal() Failure 19:01:42 Expected: 1 19:01:42 Actual: 0 19:01:42 Stack Trace: 19:01:42 at System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern.TestCurrencyNegativePatternLocale(String locale, Int32 expectedWindows, Int32 expectedIcu) 19:01:42 System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern.TestCurrencyNegativePatternLocale(locale: ""fr-CA"", expectedWindows: 15, expectedIcu: 8) [FAIL] 19:01:42 Assert.Equal() Failure 19:01:42 Expected: 8 19:01:42 Actual: 15 19:01:42 Stack Trace: 19:01:42 at System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern.TestCurrencyNegativePatternLocale(String locale, Int32 expectedWindows, Int32 expectedIcu) 19:01:42 System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern.TestCurrencyNegativePatternLocale2(locale: ""en-CA"", expected: 1) [FAIL] 19:01:42 Assert.Equal() Failure 19:01:42 Expected: 1 19:01:42 Actual: 0 19:01:42 Stack Trace: 19:01:42 at System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern.TestCurrencyNegativePatternLocale2(String locale, Int32 expected) ``` cc: @steveharter, @ellismg " +4339 area-System.Data SqlClient fails on Ubuntu with exception While trying to connect to a database using SqlClient on Ubuntu, the following exception is encountered. The version of DNX used is : 1.0.0-rc1-16108 System.Data.SqlClient.SqlException: A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - A call to SSPI failed, see inner exception.) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean& marsCapable) at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at SqlClientError.Program.Main(String[] args) The error originates from SslStream.AuthenticateAsClient where the authentication fails. This is a regression from 1.0.0-rc1-16048 build where the authentication was succeeding for PreLogin handshake of the SqlClient. +4343 area-Meta Generate API docs grouped by .NET Platform Standard version from packages The same way we generated this list: https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/standard-platform.md#list-of-net-corefx-apis-and-their-associated-net-standard-platform-version-tentative It would be cool if we could generate an MSDN style API doc experience for the .NET Standard Platform versions. /cc @ericstj @richlander @Petermarcu +4346 area-System.Data "SqlClient connection with ""instance""" "If I establish a connection with SqlClient using the ""server\instance"" data source syntax this works fine on windows. On Linux it fails with a host resolution error. If I monitor with Wireshark, I can see the DNS query being executed but it is searching for serverinstance - i.e. it concatenates the both the service and the instance into one host name - which then fails. Is anyone else seeing this ? " +4347 area-System.Net Merge changes from TFS +4351 area-System.Net Adjust System.Net.Sockets implementation to match contract The System.Net.Sockets 4.1 contract (refs folder) does NOT have public methods for Socket.Close() or NetworkStream.Close(). However, the implementional DLL was still having public methods for these. Changed the 'public' to 'internal' for the Close() methods and removed a test that isn't needed anymore. +4352 area-System.Net Avoid delegate and closure allocations in System.Net.Sockets +4355 area-Serialization Remove project reference to System.Runtime.Serialization.Primitives from System.Private.DataContractSerialization "The project reference should be removed from csproj and put into project.json. 151 152 {CDF0ACB5-1361-4E48-8ECB-22E8022F5F01} 153 System.Runtime.Serialization.Primitives 154 " +4357 area-System.Net TCPClient.ReceiveTimeout should be in Milliseconds ? Based on MSDN TCPCleint.ReceiveTimeout should be in Millisecond. https://msdn.microsoft.com/en-us/library/system.net.sockets.tcpclient.receivetimeout(v=vs.110).aspx But when I read the code it said in second. https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/TCPClient.cs#L328 Which one is correct ? +4360 area-System.Reflection Fixup previous merge from master -> dev/metadata - Dead files were left behind - Doc comment fix was merged incorrectly +4361 area-System.Data SqlCommand Timeout = 0 should behave as infinite timeout SqlCommand Timeout = 0 should behave as infinite timeout +4363 area-System.Net BeginSend_AsyncOperationCompletes_Success failure in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_prtest/6206/ ``` System.Net.Sockets.Tests.UdpClientTest.BeginSend_AsyncOperationCompletes_Success MESSAGE: System.Net.Sockets.SocketException : An address incompatible with the requested protocol was used +++++++++++++++++++ STACK TRACE: at System.Net.Sockets.Socket.DoBeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint endPointSnapshot, SocketAddress socketAddress, OverlappedAsyncResult asyncResult) in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs:line 2955 at System.Net.Sockets.Socket.BeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback callback, Object state) in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs:line 2900 at System.Net.Sockets.UdpClient.BeginSend(Byte[] datagram, Int32 bytes, IPEndPoint endPoint, AsyncCallback requestCallback, Object state) in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\UDPClient.cs:line 297 at System.Net.Sockets.UdpClient.b__4(Byte[] targetDatagram, Int32 targetBytes, IPEndPoint targetEndpoint, AsyncCallback callback, Object state) in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\UDPClient.cs:line 618 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2,TArg3](Func`6 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory`1.FromAsync[TArg1,TArg2,TArg3](Func`6 beginMethod, Func`2 endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state) at System.Net.Sockets.UdpClient.SendAsync(Byte[] datagram, Int32 bytes, IPEndPoint endPoint) in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\UDPClient.cs:line 617 at System.Net.Sockets.UdpClientAPMExtensions.BeginSend(UdpClient client, Byte[] datagram, Int32 bytes, IPEndPoint endPoint, AsyncCallback requestCallback, Object state) in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\Common\src\System\Net\Sockets\SocketAPMExtensions.cs:line 1184 at System.Net.Sockets.Tests.UdpClientTest.BeginSend_AsyncOperationCompletes_Success() in d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\UdpClientTest.cs:line 51 ``` +4364 area-System.Net GetAsync_AllowAutoRedirectFalse_RedirectFromHttpToHttp_StatusCodeRedirect failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/5997/console ``` System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectFalse_RedirectFromHttpToHttp_StatusCodeRedirect [FAIL] Assert.Equal() Failure Expected: Redirect Actual: NotFound Stack Trace: d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.cs(217,0): at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__45.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +4365 area-System.Data System.Data Should surface the internal exceptions Currently all the internal exceptions received by System.Data are being wrapped around as SNI error codes. These exceptions should be surfaced in the exception stack trace so that the reason for exception is knows. This is needed in the managed SNI components of System.Data where we are relying on other .Net components for networking etc. +4366 area-System.Net Array Segment change in Global Log When length was equal to 0, bufferSegment was not correctly initialized and does not let logging work. Instead of copying from a loop, now we use the ArraySegment constructor for this, which has a better behavior when length is 0. +4368 area-System.Data Refactor SNIHandle.ReceivePacket to use out instead of ref "https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.cs#L269 I think we should refactor this to use ""out"" instead of ref. As it can lead to confusion whether that Packet is always null or there may have initialized object. Especially when the decision of releasing that packet. If it designed to always null, then we should use ""out"" instead. " +4369 area-System.Net Delete SslStreamAPMExtensions.cs from System.Net.Security tests After https://github.com/dotnet/corefx/pull/4331, it's now dead code. cc: @CIPop, @josguil, @davidsh +4370 area-System.Net Remove non-Windows clutter from WinHttpHandler sln/projs This project is and will always be Windows-specific. There's no need for all of the placeholders related to non-Windows targets. cc: @davidsh +4371 area-System.Reflection Why GetRuntimeFields return non public field vs GetRuntimeField return public only flags ? Why GetRuntimeFields return non public field vs GetRuntimeField return public only flags ? ``` public static IEnumerable GetRuntimeFields(this Type type) { return type.GetFields(defaultNonPublicFlags).AsNothingButIEnumerable(); } public static FieldInfo GetRuntimeField(this Type type, String name) { return type.GetField(name, defaultPublicFlags); } ``` +4373 area-Meta .NET Platform Standard Document - Some Ideas to improve it "I was reading the "".NET Platform Standard"" document. I liked it a lot, but there are some details where I would love some clarification in the document - It is about the Platform Standard. Nevertheless, many will use the netstandard TFMs for their libraries. So when speaking of ""Reference Assembly"" and ""Implementation Assembly"", I think we need a very clear separation between a library targeting a netstandard which is - distributed by an normal library developer which is portable (he delivers a nuget package with a ref and a implementation assembly (or only a impl?)) - distributed by an normal library developer which is not portable (bait and switch) - a library like System.IO which is 99% delivered as part of the platform which is not portable (which has a ref assembly and a implementation assembly per platform, in the platform), but nevertheless has a NuGet package. How does that work (only ref?). - a library like System.Xml.XDocument which is part of the CoreFx, which is portable which future platforms should just use via NuGet but some older platforms may still have as a implementation assembly in the platform. - I would add a line stating that targeting a lower platform standard is preferable. - In the CoreFx list a classification which library is portable, sometimes portable and always platform specific would be nice - A word about how the NuGet packages of the netstandard (e.g. System.IO) build only with their refs and their implementation assemblies as part of the platforms (they are build and shipped with them, e.g. in coreclr). I think it should be clarified that the public NuGet which reflect platform features only have refs. @davidfowl @AArnott ps: I am surely not 100% accurate here. I just think myself into nuget3, DNX, corefx, coreclr, etc. and jump on any documentation I get. " +4375 area-System.Linq Expression.Property should reject indexers - SecurityException "Generates invalid IL ``` csharp Expression.Lambda>( Expression.Property( Expression.Default(typeof(List)), typeof(List).GetProperty(""Item"") ) ).Compile()(); ``` with exception ``` System.Security.VerificationException: Operation could destabilize the runtime. ``` Simple fix in expression factories to reject indexers. " +4376 area-System.Xml DtdProcessing.Parse missing Not sure if I am doing something wrong, but how do I access DtdProcessing.Parse enum value in corefx? There seems to be a Parse static method as well now, so getting this compilation error: ``` DNXCore,Version=v5.0 error CS0428: Cannot convert method group 'Parse' to non-delegate type 'DtdProcessing'. Did you intend to invoke the method? ``` Any advice? +4379 area-System.Collections Implementation of IStructuralEquatable.GetHashCode in Array class consider just element with 0 index "This is the implementation: ``` int IStructuralEquatable.GetHashCode(IEqualityComparer comparer) { if (comparer == null) { throw new ArgumentNullException(""comparer""); } int num = 0; for (int i = (this.Length >= 8) ? (this.Length - 8) : 0; i < this.Length; i++) { num = CombineHashCodes(num, comparer.GetHashCode(this.GetValue(0))); } return num; } ``` As you can see the CombineHashCodes keeps combining the hashcode of element with 0 index. This makes array as new[]{""aa"",""bb""} and new[]{""aa"",""cc""} to have the same hashcode. And the probability that there are array with the first element equal is usually higher. " +4381 area-System.Net Change TCPClient.ReceiveTimeout comment into Milliseconds #4357 +4382 area-System.Net Update HttpStatusCode enum with updates # Latest Proposal We should update current [HttpStatusCode](https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.Net.Primitives/src/System/Net/HttpStatusCode.cs) to include more official status codes defined in recent RFCs. ## Proposed API ```diff public enum HttpStatusCode { // Informational 1xx Continue = 100, SwitchingProtocols = 101, + Processing = 102, + EarlyHints = 103, // Successful 2xx OK = 200, Created = 201, Accepted = 202, NonAuthoritativeInformation = 203, NoContent = 204, ResetContent = 205, PartialContent = 206, + MultiStatus = 207, + AlreadyReported = 208, + IMUsed = 226, // Redirection 3xx MultipleChoices = 300, Ambiguous = 300, MovedPermanently = 301, Moved = 301, Found = 302, Redirect = 302, SeeOther = 303, RedirectMethod = 303, NotModified = 304, UseProxy = 305, Unused = 306, TemporaryRedirect = 307, RedirectKeepVerb = 307, + PermanentRedirect = 308, // Client Error 4xx BadRequest = 400, Unauthorized = 401, PaymentRequired = 402, Forbidden = 403, NotFound = 404, MethodNotAllowed = 405, NotAcceptable = 406, ProxyAuthenticationRequired = 407, RequestTimeout = 408, Conflict = 409, Gone = 410, LengthRequired = 411, PreconditionFailed = 412, RequestEntityTooLarge = 413, RequestUriTooLong = 414, UnsupportedMediaType = 415, RequestedRangeNotSatisfiable = 416, ExpectationFailed = 417, + // Removed status code: ImATeapot = 418, + MisdirectedRequest = 421, + UnprocessableEntity = 422, + Locked = 423, + FailedDependency = 424, UpgradeRequired = 426, + PreconditionRequired = 428, + TooManyRequests = 429, + RequestHeaderFieldsTooLarge = 431, + UnavailableForLegalReasons = 451, // Server Error 5xx InternalServerError = 500, NotImplemented = 501, BadGateway = 502, ServiceUnavailable = 503, GatewayTimeout = 504, HttpVersionNotSupported = 505, + VariantAlsoNegotiates = 506, + InsufficientStorage = 507, + LoopDetected = 508, + NotExtended = 510, + NetworkAuthenticationRequired = 511, } ``` ## Details Values added from WinRT: [Windows.Web.Http.HttpStatusCode](https://docs.microsoft.com/en-us/uwp/api/windows.web.http.httpstatuscode): ``` AlreadyReported FailedDependency IMUsed InsufficientStorage Locked LoopDetected MultiStatus NetworkAuthenticationRequired None (not sure what's this, not added) NotExtended PermanentRedirect PreconditionRequired Processing RequestHeaderFieldsTooLarge TooManyRequests UnprocessableEntity VariantAlsoNegotiates ``` * [RFC 2324](https://tools.ietf.org/html/rfc2324): `ImATeapot` * [RFC 7540](https://tools.ietf.org/html/rfc7540): `MisdirectedRequest` * [RFC 7725](https://tools.ietf.org/html/rfc7725): `UnavailableForLegalReasons` * [RFC 8297](https://tools.ietf.org/html/rfc8297): `EarlyHints` # Original Proposal Please update with codes from RFCs 2817, 5785, 6266, 6585. +4383 area-System.Collections Fix Culture bug around NameValueCollection tests Some tests for NameValueCollection were setting the DefaultThreadCurrentCulture to Turkish and not resetting it back to the default. This was causing failures in the HybridDictionary tests that were running concurrently with these tests. I refactored the code to instead use CurrentCulture and also added a try/finally to reset the CurrentCulture just to be safe. Resloves #1136 @stephentoub +4385 area-System.Runtime Replace windows RTLGetVersion with a better win32 version api that will work on all platforms. This change will affect the output of `RuntimeInformation.OSDecription` on windows. This API and several other documented version APIs for windows are not available on onecoreuwp and hence will fail WACK test for .NET Native. This work item tracks sync up with windows team to either expose these to onecoreuwp or for better alternatives. +4386 area-System.Net Cleanup System.Net.Requests tests Switch remaining tests to use the new test server. Fix up 'var' usage. Use 'async Task' pattern and 'await' instead of GetResult() for tests. +4388 area-Infrastructure Test baseline is wrong We need to investigate the bits that we use for testing in corefx and for CI. Today each test decides which dependencies are live (via ProjectReferences) or baseline (via packages). Additionally the baseline is only updated periodically. This can lead us to a place where folks commit bits that might work independently by not together. For TOF, internally, folks are solving this by always using a fixed set of packages after they are produced by the build. In CoreFx we don't yet build the packages in build, so we have the [TestWithLocalLibraries](https://github.com/dotnet/buildtools/blob/master/src/Microsoft.DotNet.Build.Tasks/PackageFiles/publishtest.targets#L75) property, but I don't know if this is used in CI or local dev builds. Also I don't think this will currently work for linux/OS due to the assumed DLL pattern. Finally it looks to me like our RC builds are still pulling packages from the [master feed](https://github.com/dotnet/corefx/blob/release/1.0.0-rc1/dir.props#L77). /cc @joshfree @weshaggard +4389 area-System.Net Removing the X509Chain shim from System.Net.Security Adding code proposed by @bartonjs and remving the X509CertificateExtensions shim. Changing the test server and client certificates (pending https://github.com/dotnet/corefx-testdata/pull/3) and adding a few e2e tests. Related: #3114. +4391 area-System.Runtime Add version information to FrameworkDescription. What version string is expected for .NET Framework, .NET Core and .NET Native. +PM @terrajobst on providing insight with marketing names. cc @weshaggard cc @gkhanna79 To provide insight on runtime side. @davidfowl Please provide more data on how useful knowing version of framework is, and what you expect for the 3 different framework stacks. +4396 area-System.Net Called on completed result assert in Socket APM tests on Linux http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/4193/console ``` 16:36:36 Unhandled Exception: System.Diagnostics.Debug+DebugAssertException: LazyAsyncResult#1978366::set_Result() 16:36:36 Called on completed result. 16:36:36 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 16:36:36 at System.Environment.get_StackTrace() 16:36:36 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 16:36:36 at System.Net.GlobalLog.Assert(String message, String detailMessage) 16:36:36 at System.Net.GlobalLog.Assert(Boolean condition, String messageFormat, Object[] data) 16:36:36 at System.Net.LazyAsyncResult.set_Result(Object value) 16:36:36 at System.Net.Sockets.BaseOverlappedAsyncResult.CheckAsyncCallOverlappedResult(SocketError errorCode) 16:36:36 at System.Net.Sockets.Socket.DoBeginAccept(Socket acceptSocket, Int32 receiveSize, AcceptOverlappedAsyncResult asyncResult) 16:36:36 at System.Net.Sockets.Socket.BeginAccept(Socket acceptSocket, Int32 receiveSize, AsyncCallback callback, Object state) 16:36:36 at System.Net.Sockets.Socket.BeginAccept(Int32 receiveSize, AsyncCallback callback, Object state) 16:36:36 at System.Net.Sockets.Socket.BeginAccept(AsyncCallback callback, Object state) 16:36:36 at System.Net.Sockets.SocketTaskExtensions.b__0(AsyncCallback callback, Object state) 16:36:36 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 16:36:36 at System.Net.Sockets.SocketTaskExtensions.AcceptAsync(Socket socket) 16:36:36 at System.Net.Sockets.SocketAPMExtensions.BeginAccept(Socket socket, AsyncCallback callback, Object state) 16:36:36 at System.Net.Sockets.Tests.SocketTestServerAPM.OnAccept(IAsyncResult result) 16:36:36 at System.Threading.Tasks.TaskToApm.<>c__DisplayClass1.b__0() 16:36:36 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 16:36:36 at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) 16:36:36 at System.Threading.Tasks.Task.FinishContinuations() 16:36:36 at System.Threading.Tasks.Task`1.TrySetResult(TResult result) 16:36:36 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 16:36:36 at System.Net.LazyAsyncResult.Complete(IntPtr userToken) 16:36:36 at System.Net.ContextAwareResult.CompleteCallback(Object state) 16:36:36 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 16:36:36 at System.Net.ContextAwareResult.Complete(IntPtr userToken) 16:36:36 at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) 16:36:36 at System.Net.LazyAsyncResult.InvokeCallback(Object result) 16:36:36 at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionCallback(Int32 numBytes, SocketError errorCode) 16:36:36 at System.Net.Sockets.AcceptOverlappedAsyncResult.CompletionCallback(Int32 acceptedFileDescriptor, Byte[] socketAddress, Int32 socketAddressLen, SocketError errorCode) 16:36:36 at System.Net.Sockets.SocketAsyncContext.AcceptOperation.InvokeCallback() 16:36:36 at System.Net.Sockets.SocketAsyncContext.AsyncOperation.b__26(Object o) 16:36:36 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 16:36:36 at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 16:36:36 at System.Threading.ThreadPoolWorkQueue.Dispatch() 16:36:36 at System.Diagnostics.Debug.UnixDebugLogger.ShowAssertDialog(String stackTrace, String message, String detailMessage) 16:36:36 at System.Net.GlobalLog.Assert(String message, String detailMessage) 16:36:36 at System.Net.GlobalLog.Assert(Boolean condition, String messageFormat, Object[] data) 16:36:36 at System.Net.LazyAsyncResult.set_Result(Object value) 16:36:36 at System.Net.Sockets.BaseOverlappedAsyncResult.CheckAsyncCallOverlappedResult(SocketError errorCode) 16:36:36 at System.Net.Sockets.Socket.DoBeginAccept(Socket acceptSocket, Int32 receiveSize, AcceptOverlappedAsyncResult asyncResult) 16:36:36 at System.Net.Sockets.Socket.BeginAccept(Socket acceptSocket, Int32 receiveSize, AsyncCallback callback, Object state) 16:36:36 at System.Net.Sockets.Socket.BeginAccept(Int32 receiveSize, AsyncCallback callback, Object state) 16:36:36 at System.Net.Sockets.Socket.BeginAccept(AsyncCallback callback, Object state) 16:36:36 at System.Net.Sockets.SocketTaskExtensions.b__0(AsyncCallback callback, Object state) 16:36:36 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 16:36:36 at System.Net.Sockets.SocketTaskExtensions.AcceptAsync(Socket socket) 16:36:36 at System.Net.Sockets.SocketAPMExtensions.BeginAccept(Socket socket, AsyncCallback callback, Object state) 16:36:36 at System.Net.Sockets.Tests.SocketTestServerAPM.OnAccept(IAsyncResult result) 16:36:36 at System.Threading.Tasks.TaskToApm.<>c__DisplayClass1.b__0() 16:36:36 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 16:36:36 at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) 16:36:36 --- End of stack trace from previous location where exception was thrown --- 16:36:36 at System.Threading.Tasks.AwaitTaskContinuation.<>c.b__18_0(Object s) 16:36:36 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 16:36:36 at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 16:36:36 at System.Threading.ThreadPoolWorkQueue.Dispatch() 16:36:36 ./run-test.sh: line 130: 61302 Aborted (core dumped) ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory 16:36:36 One or more tests failed while running tests from 'System.Net.Sockets.APMServer.Tests'. Exit code 134. ``` cc: @pgavlin, @cipop, @davidsh +4397 area-System.Diagnostics Perf_Process.Kill test failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_debug_prtest/6046/console ``` System.InvalidOperationException : Cannot process request because the process (10824) has exited. Stack Trace: d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Diagnostics.Process\src\System\Diagnostics\Process.Windows.cs(810,0): at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Diagnostics.Process\src\System\Diagnostics\Process.Windows.cs(839,0): at System.Diagnostics.Process.GetProcessHandle(Int32 access) d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Diagnostics.Process\src\System\Diagnostics\Process.Windows.cs(71,0): at System.Diagnostics.Process.Kill() d:\j\workspace\dotnet_corefx_windows_debug_prtest\src\System.Diagnostics.Process\tests\Performance\Perf.Process.cs(30,0): at System.Diagnostics.Tests.Perf_Process.Kill() ``` +4400 area-System.Linq Expression.VisitBlock throws NullReferenceException if only variables change Repro: ``` csharp static void Repro() { new V().Visit(Expression.Block(new[] { Expression.Parameter(typeof(int)) }, Expression.Empty())); } class V : ExpressionVisitor { protected override Expression VisitParameter(ParameterExpression node) { return Expression.Parameter(node.Type, node.Name); } } ``` This came up when writing a variable substitution visitor to eliminate aliasing of variables. The issue is in the loop at the end of `VisitBlock` making the assumption that the array cannot be null. It will only be non-null if at least one expression in the block was rewritten. +4403 area-System.Net Consolidate some shared Linux/OSX code in NetworkInformation The same code was duplicated in both the Linux and OSX implementations, when it could instead be on the base Unix implementation. This also results in a better error message being used on OS X. cc: @mellinoe, @cipop +4405 area-Serialization Serializing a TimeSpan writes an empty element ``` using System; using System.IO; using System.Text; using System.Xml; using System.Xml.Serialization; public class Program { public static void Main() { var dummy = new Dummy { Value = TimeSpan.FromSeconds(1) }; Console.WriteLine(dummy.Value); Console.WriteLine(XmlConvert.ToString(dummy.Value)); var stringBuilder = new StringBuilder(); var serializer = new XmlSerializer(dummy.GetType()); using (var writer = new StringWriter(stringBuilder)) { serializer.Serialize(writer, dummy); } var xml = stringBuilder.ToString(); Console.WriteLine(); Console.Write(xml); } public class Dummy { public TimeSpan Value { get; set; } } } ``` Outputs `` This is not pit of success. [Sample](https://dotnetfiddle.net/t6tE23) +4406 area-System.Runtime Additional coverage for GetEnvironmentVariable for empty variable We should add some more tests around GetEnvironmentVariable when the value of the environment variable is an empty string. This is not possible on Windows, but should be possible on other platforms. +4410 area-Infrastructure Performance testing I'm trying to write own performance test but get the following error. `msbuild /t:RebuildAndTest /p:Performance=true /p:Configuration=Release` ``` System.IO.FileLoadException : Could not load file or assembly 'xunit.pe rformance.core, Version=1.0.0.26, Culture=neutral, PublicKeyToken=67066efe964 d3b03' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) Stack Trace: at Microsoft.Xunit.Performance.BenchmarkTestInvoker.CallTestMetho d(Object testClassInstance) --- End of stack trace from previous location where exception was th rown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAn dDebuggerNotification(Task task) --- End of stack trace from previous location where exception was th rown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAn dDebuggerNotification(Task task) ``` @ianhays +4411 area-System.Reflection There is no way to make a reflection call to a method with ref parameters while preserving aliasing nature of ref VSadov: while passing parameters byref can be modeled through passing mutable object[] + copybacks. It is not the same as truly passing arguments byref. Some methods, like ones from Interlocked family, rely on aliasing nature of ref and the difference is observable. Since all the calls in Interpreter are done via reflection, we cannot interpret certain calls correctly due to insufficient APIs. ============== Unlike the expression compiler where address-obtaining instructions are used to call by reference, the expression interpreter has to perform copy operations in and out of an arguments array upon calling the `Invoke` method. As a result, calls to constructs like `Interlocked` methods don't have the intended effect. An example repro is shown below: ``` csharp var inc = ReflectionUtils.MethodInfoOf((int x) => Interlocked.Increment(ref x)); var run = ReflectionUtils.MethodInfoOf(() => Task.Run(default(Action))); var all = ReflectionUtils.MethodInfoOf(() => Task.WaitAll(default(Task), default(Task))); var p = Expression.Parameter(typeof(int)); var n = Expression.Parameter(typeof(int)); var i = Expression.Parameter(typeof(int)); var b = Expression.Label(); var l = Expression.Block( new[] { i }, Expression.Loop( Expression.Block( Expression.IfThen( Expression.Equal(i, n), Expression.Break(b) ), Expression.Call(inc, p), Expression.PostIncrementAssign(i) ), b ) ); var a = Expression.Lambda(l); var t = Expression.Call(run, a); var e = Expression.Block( new[] { p }, Expression.Call(all, Expression.NewArrayInit(typeof(Task), t, t)), p ); var f = Expression.Lambda>(e, n).Compile(); ``` One would expect f(N) to return 2 \* N. This is the case for the compiler, but not for the interpreter. +4414 area-System.Net Cleanup System.Net.Http tests - Move more tests to the new test server - Cleanup 'var' coding patterns - Remove duplicate tests (*Content clas related) that are already covered with the *Content class tests - Utiilize the newer test server VerifyUpload endpoint which does 'Content-MD5' verification of transmitted payload to the server as well as payload from the server - Add GZip related tests in addition to Deflate compression schemes +4416 area-System.Net Cleanup System.Net.Http.WinHttpHandler tests - Move tests to the new test server - Fixup an SSL certificate test to handle wildcard certs - Remove HttpTestServers.cs file. The next PR will then rename HttpTestServers2.cs to HttpTestServers.cs +4417 area-System.Net Rename HttpTestServers2.cs to HttpTestServers.cs @CIPop @stephentoub PTAL +4420 area-System.Net Failed Debug.Assert in SendAsync_SendRequestUsingMethodToEchoServerWithContent_Success on Linux "http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/4225/console ``` 14:05:57 System.Net.Http.Functional.Tests.HttpClientHandlerTest.SendAsync_SendRequestUsingMethodToEchoServerWithContent_Success(method: ""GET"", secureServer: True) [FAIL] 14:05:57 System.Diagnostics.Debug+DebugAssertException : The task must have completed if we're getting called back. 14:05:57 14:05:57 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 14:05:57 at System.Environment.get_StackTrace() 14:05:57 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 14:05:57 at System.Net.Http.CurlHandler.MultiAgent.TransferDataFromRequestStream(IntPtr buffer, Int32 length, EasyRequest easy) 14:05:57 at System.Net.Http.CurlHandler.MultiAgent.CurlSendCallback(IntPtr buffer, UInt64 size, UInt64 nitems, IntPtr context) 14:05:57 at Interop.Http.MultiPerform(SafeCurlMultiHandle multiHandle) 14:05:57 at Interop.Http.MultiPerform(SafeCurlMultiHandle multiHandle) 14:05:57 at System.Net.Http.CurlHandler.MultiAgent.WorkerLoop() 14:05:57 at System.Net.Http.CurlHandler.MultiAgent.b__14(Object s) 14:05:57 at System.Threading.Tasks.Task.Execute() 14:05:57 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 14:05:57 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 14:05:57 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 14:05:57 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 14:05:57 Stack Trace: 14:05:57 at System.Diagnostics.Debug.UnixDebugLogger.ShowAssertDialog(String stackTrace, String message, String detailMessage) 14:05:57 at System.Net.Http.CurlHandler.MultiAgent.TransferDataFromRequestStream(IntPtr buffer, Int32 length, EasyRequest easy) 14:05:57 at System.Net.Http.CurlHandler.MultiAgent.CurlSendCallback(IntPtr buffer, UInt64 size, UInt64 nitems, IntPtr context) 14:05:57 --- End of stack trace from previous location where exception was thrown --- 14:05:57 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:05:57 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:05:57 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() 14:05:57 at System.Net.Http.StreamToStreamCopy.d__0.MoveNext() 14:05:57 --- End of stack trace from previous location where exception was thrown --- 14:05:57 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:05:57 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:05:57 at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 14:05:57 at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__12e.MoveNext() 14:05:57 --- End of stack trace from previous location where exception was thrown --- 14:05:57 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:05:57 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:05:57 --- End of stack trace from previous location where exception was thrown --- 14:05:57 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:05:57 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:05:57 --- End of stack trace from previous location where exception was thrown --- 14:05:57 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:05:57 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` " +4421 area-System.Net Some System.Net.Primitive Tests Covered: - IPAddress - IPEndPoint - DnsEndPoint - EndPoint - Cookie - CookieCollection - CookieContainer - NetworkCredential - SystemCredential - CredentialCache +4422 area-System.Net Disable test BeginSend_AsyncOperationCompletes_Success Issue #4363 +4423 area-System.Net ReceiveFromAsyncV4BoundToSpecificV4_Success timed out in CI on Windows ``` Discovering: System.Net.Sockets.Tests Discovered: System.Net.Sockets.Tests Starting: System.Net.Sockets.Tests System.Net.Sockets.Tests.DualMode.ReceiveFromAsyncV4BoundToSpecificV4_Success [FAIL] System.TimeoutException : The operation has timed out. Stack Trace: d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets\tests\FunctionalTests\DualModeSocketTest.cs(596,0): at System.Net.Sockets.Tests.DualMode.ReceiveFromAsync_Helper(IPAddress listenOn, IPAddress connectTo) Finished: System.Net.Sockets.Tests ``` +4425 area-Meta A contributors team on the Stack Overflow Teams beta Stack Overflow just started a private beta of [Teams](http://meta.stackoverflow.com/questions/309716/the-teams-private-beta-is-starting) where you create a page around an OSS project, team, company, etc. I wondered whether people are interested in joining such a team page around corefx contributions? If so it can be done by clicking [here](http://stackoverflow.com/teams/98/corefx-contributors/join?auth=12806578-0500-4963-8821-399d75de5ee4) +4428 area-System.Data Refactor SNI 'ref' to use 'out' +4429 area-System.Net System.Net.WebSockets.Client hangs when blocking a callback thread The effective sequence of events (this isn't the actual code, it's a lot more convoluted and disjoint so it's a lot of work to change) is this: ``` csharp var result = await _webSocket.ReceiveAsync(new ArraySegment(buffer, 0, _receiveBufferSize), _ct); result = _webSocket.ReceiveAsync(new ArraySegment(buffer, 0, _receiveBufferSize), _ct).GetAwaiter().GetResult(); ``` The second ReceiveAsync never completes. Here is the bottom of the call stack. Further up won't help any, it eventually calls _webSocket.ReceiveAsync() and ends up blocking in TaskAwaiter<int>.GetResult(). ``` system.private.servicemodel.dll!System.ServiceModel.Channels.WebSocketTransportDuplexSessionChannel.WebSocketMessageSource.PrepareMessage(System.Net.WebSockets.WebSocketReceiveResult result, byte[] buffer, int count) Line 891 C# system.private.servicemodel.dll!System.ServiceModel.Channels.WebSocketTransportDuplexSessionChannel.WebSocketMessageSource.StartNextReceiveAsync() Line 815 C# [Resuming Async Method] mscorlib.ni.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown mscorlib.ni.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() Unknown mscorlib.ni.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.OutputAsyncCausalityEvents.AnonymousMethod__0() Unknown mscorlib.ni.dll!System.Runtime.CompilerServices.TaskAwaiter.OutputWaitEtwEvents.AnonymousMethod__0() Unknown mscorlib.ni.dll!System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action action, bool allowInlining, ref System.Threading.Tasks.Task currentTask) Unknown mscorlib.ni.dll!System.Threading.Tasks.Task.FinishContinuations() Unknown mscorlib.ni.dll!System.Threading.Tasks.Task.TrySetResult(System.__Canon result) Unknown mscorlib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.SetResult(System.Net.WebSockets.WebSocketReceiveResult result) Unknown system.net.websockets.client.dll!System.Net.WebSockets.WinHttpWebSocket.ReceiveAsync(System.ArraySegment buffer, System.Threading.CancellationToken cancellationToken) Unknown mscorlib.ni.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown mscorlib.ni.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() Unknown mscorlib.ni.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.OutputAsyncCausalityEvents.AnonymousMethod__0() Unknown mscorlib.ni.dll!System.Runtime.CompilerServices.TaskAwaiter.OutputWaitEtwEvents.AnonymousMethod__0() Unknown mscorlib.ni.dll!System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action action, bool allowInlining, ref System.Threading.Tasks.Task currentTask) Unknown mscorlib.ni.dll!System.Threading.Tasks.Task.FinishContinuations() Unknown mscorlib.ni.dll!System.Threading.Tasks.Task.TrySetResult(bool result) Unknown mscorlib.ni.dll!System.Threading.Tasks.TaskCompletionSource.TrySetResult(bool result) Unknown system.net.websockets.client.dll!System.Net.WebSockets.WinHttpWebSocketCallback.OnWebSocketReadComplete(System.Net.WebSockets.WinHttpWebSocketState state, Interop.WinHttp.WINHTTP_WEB_SOCKET_STATUS info) Unknown system.net.websockets.client.dll!System.Net.WebSockets.WinHttpWebSocketCallback.WebSocketCallback(System.IntPtr handle, System.Net.WebSockets.WinHttpWebSocketState state, uint internetStatus, System.IntPtr statusInformation, uint statusInformationLength) Unknown system.net.websockets.client.dll!System.Net.WebSockets.WinHttpWebSocketCallback.WinHttpCallback(System.IntPtr handle, System.IntPtr context, uint internetStatus, System.IntPtr statusInformation, uint statusInformationLength) Unknown ``` I tried removing the following code from WinHttpWebSocket.InitializeWinHttp but it made no difference: ``` uint optionAssuredNonBlockingTrue = 0; // TRUE if (!Interop.WinHttp.WinHttpSetOption( sessionHandle, Interop.WinHttp.WINHTTP_OPTION_ASSURED_NON_BLOCKING_CALLBACKS, ref optionAssuredNonBlockingTrue, (uint)Marshal.SizeOf())) { WinHttpException.ThrowExceptionUsingLastError(); } ``` As an experiment, I changed our call to PrepareMessage to use await Task.Run instead and everything started working. +4431 area-System.Net ReceiveFromAsyncV6BoundToAnyV6_Success failed due to timeouts in CI on Windows This has failed due to timeouts a few times recently. http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release_prtest/6089/consoleFull ``` System.Net.Sockets.Tests.DualMode.ReceiveFromAsyncV6BoundToAnyV6_Success [FAIL] System.TimeoutException : The operation has timed out. Stack Trace: d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Sockets\tests\FunctionalTests\DualModeSocketTest.cs(596,0): at ``` +4434 area-Infrastructure Enable CMake sanitizers for coreclr This enables the CMake sanitizers for coreclr including all native code (clr and pal layers). The sanitizers include Address Sanitizer, Undefined Behavior Sanitizer, and Leak Sanitizer. See http://clang.llvm.org/docs/UsersManual.html (search for sanitize) http://clang.llvm.org/docs/AddressSanitizer.html http://clang.llvm.org/docs/LeakSanitizer.html It works in debug mode only and is enabled by running enablesanitizers.sh (a new shell script). Performance hit is approx. 50% slower to build and test (unknown since tests abort currently due to sanitizers failure). Size of libraries doubles. Enabling sanitizers including fixing cryptic linker errors where the header files includes methods that don't have a corresponding implementation. Normally those methods are dropped by the linker because they are unused\dead code but not with address sanitizer enabled. Current code: https://github.com/dotnet/coreclr/compare/master...steveharter:CMake +4438 area-System.Data Mars - Intermittently Failed - Causing Timeout "Repro ``` using (var conn = new SqlConnection(""Data Source=***; User ID=***; Password=***;Initial Catalog=***;MultipleActiveResultSets=true;"")) { conn.Open(); var cmdText = ""select 1""; var cmd1 = new SqlCommand(cmdText, conn); var cmd2 = new SqlCommand(cmdText, conn); Console.WriteLine(""{0:hh:mm:ss} - Execute Reader 1"", DateTime.Now); using (var reader1 = cmd1.ExecuteReader()) { Console.WriteLine(""{0:hh:mm:ss} - Execute Reader 2"", DateTime.Now); using (var reader2 = cmd2.ExecuteReader()) { Console.WriteLine(""{0:hh:mm:ss} - Start Read Reader 2"", DateTime.Now); reader2.Read(); Console.WriteLine(""{0:hh:mm:ss} - Finish Read Reader 2"", DateTime.Now); } Console.WriteLine(""{0:hh:mm:ss} - Start Read Reader 1"", DateTime.Now); reader1.Read(); Console.WriteLine(""{0:hh:mm:ss} - Finish Read Reader 1"", DateTime.Now); } } ``` results : 01:01:19 - Execute Reader 1 01:01:19 - Execute Reader 2 01:01:49 - ERROR : System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. " +4439 area-System.Data Managed SNI - Open connection to unsupported sql server (SQL2000) - get timeout based on connection string and spit different error "Repro ``` try { using (var conn = new SqlConnection(""Data Source = sql2000; User ID = ***; Password = ***;"") ) { Console.WriteLine(""{0:hh:mm:ss} - Start Opening Invalid connection"", DateTime.Now); conn.Open(); } } catch (Exception ex) { Console.WriteLine(""{0:hh:mm:ss} - ERROR : {1}"", DateTime.Now, ex.ToString()); } ``` Expected Error Message ``` 02:27:15 - Start Opening 02:27:36 - ERROR : System.InvalidOperationException: The SQL Server instance returned an invalid or unsupported protocol version during login negotiation. at System.Data.SqlClient.TdsParser.TryProcessLoginAck( ``` Actual Error Message ``` 02:16:47 - Start Opening Invalid connection 02:17:02 - ERROR : System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server) ``` " +4441 area-System.Runtime Add Convert.ToHexString / FromHexString This would complement `Convert.ToBase64String` / `Convert.FromBase64String`. You all know you've written this API over and over again in your projects. :) +4442 area-System.IO LastAccessTime throws on Linux for non-existent files on CoreCLR "LastAccessTime for non-existent file must return 1/1/1601 12:00:00 AM. It does so on Windows. Throws on Linux. Below program assumes file ""haha"" does not exist. ``` using System; using System.IO; namespace nonExistent { public class Program { public void Main(string[] args) { FileInfo i = new FileInfo(""haha""); Console.WriteLine(i.LastAccessTimeUtc); } } } ``` " +4443 area-System.Globalization Update System.Text.Encodings.Web to Unicode 8 When HttpAbstractions issue https://github.com/aspnet/HttpAbstractions/issues/391 was resolved it switched to using the encoders in the CoreFX repo. The encoders in the aspnet org already had support for Unicode 8.0, which is not yet available in the CoreFX repo. +4449 area-System.Net Replace faulty assert in CurlHandler with proper handling CurlHandler's support for pausing the connection needs to be resilient against spurious unpausing. This commit just removes a faulty assert for a condition that is possible and replaces it with proper handling (repausing). Fixes #4187 cc: @kapilash, @davidsh +4451 area-System.IO Remove Managed Inflator and Deflator code in System.IO.Compression With #4440 we no longer need the managed compression code as we are always using a native compression implementation. The managed code is now dead and can't be hit by a user. We should remove this code. +4452 area-System.Net Changing S.N.NetworkInformation tests to allow NICs with Speed==-1 Certain WiFi NICs report `Speed` of -1 when the `OperationalStatus` is `Down`. This was discovered by @stephentoub by running the tests on his machine. @mellinoe @stephentoub @davidsh PTAL /cc @SidharthNabar +4453 area-System.Threading Linux System.Threading.Tasks.Dataflow.Tests failed http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/4273/consoleFull#-21371504001f1a4601-6aec-4fd5-b678-78d4389fd5e8 13:34:51 === TEST EXECUTION SUMMARY === 13:34:51 System.Runtime.Extensions.Tests Total: 503, Errors: 0, Failed: 0, Skipped: 0, Time: 4.543s 13:34:53 System.Threading.Tasks.Dataflow.Tests.DebugAttributeTests.TestDebuggerDisplaysAndTypeProxies [FAIL] 13:34:53 System.InvalidOperationException : Collection was modified; enumeration operation may not execute. 13:34:53 Stack Trace: 13:34:53 at System.Collections.Generic.Queue`1.Enumerator.MoveNext() 13:34:53 at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) 13:34:53 at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) 13:34:53 at System.Threading.Tasks.Dataflow.BroadcastBlock`1.BroadcastingSourceCore`1.DebuggingInformation.get_InputQueue() 13:34:53 at System.Threading.Tasks.Dataflow.BroadcastBlock`1.DebugView.get_InputQueue() 13:34:59 Finished: System.Numerics.Vectors.Tests 13:34:59 13:34:59 === TEST EXECUTION SUMMARY === 13:34:59 System.Numerics.Vectors.Tests Total: 1058, Errors: 0, Failed: 0, Skipped: 0, Time: 12.685s 13:35:04 Finished: System.Threading.Tasks.Dataflow.Tests 13:35:04 13:35:04 === TEST EXECUTION SUMMARY === 13:35:04 System.Threading.Tasks.Dataflow.Tests Total: 282, Errors: 0, Failed: 1, Skipped: 0, Time: 17.754s 13:35:04 One or more tests failed while running tests from 'System.Threading.Tasks.Dataflow.Tests'. Exit code 1. +4454 area-System.Data _gcHandle usage ? https://github.com/dotnet/corefx/blob/1d9edc6f2da2c9cedf1e1c700fe88d3fe3299d91/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIProxy.cs It seems there is no one allocated this _gcHandle. This path will always false https://github.com/dotnet/corefx/blob/1d9edc6f2da2c9cedf1e1c700fe88d3fe3299d91/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObject.cs#L902 Can we remove this ? +4455 area-System.Text System.Text.Encodings.Web.TextEncoder.EncodeIntoBuffer throws ArgumentException on 32-bit Mono "Simple repro: ``` using System; using System.Text.Encodings.Web; namespace EncodeIssue { public class Program { public void Main(string[] args) { Console.WriteLine(UrlEncoder.Default.Encode(""na me"")); } } } ``` When run: ``` System.ArgumentException: Argument encoder does not implement MaxOutputCharsPerInputChar correctly. at System.Text.Encodings.Web.TextEncoder.EncodeIntoBuffer (System.Char* value, Int32 valueLength, Int32 firstCharacterToEncode, System.Char* buffer, Int32 bufferLength) [0x00000] in :0 at System.Text.Encodings.Web.TextEncoder.Encode (System.String value) [0x00000] in :0 at EncodeIssue.Program.Main (System.String[] args) [0x00000] in :0 at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object[],System.Exception&) at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in :0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in :0 at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute (System.Reflection.Assembly assembly, System.String[] args, IServiceProvider serviceProvider) [0x00000] in :0 at Microsoft.Dnx.ApplicationHost.Program+<>c__DisplayClass3_0.b__0 () [0x00000] in :0 at System.Threading.Tasks.Task`1[System.Threading.Tasks.Task`1[System.Int32]].InnerInvoke () [0x00000] in :0 at System.Threading.Tasks.Task.Execute () [0x00000] in :0 ``` Make sure you're using a 32-bit Mono to repro, since it doesn't happen on 64-bit. " +4456 area-System.IO Add BufferedStream to CoreFX Adds source and tests to CoreFX for System.IO.BufferedStream. Tests: I modified the existing System.IO tests that used MemoryStreams to instead be inheritable. I made a FakeStream that is an indirection around MemoryStream that enables BufferedStream(new FakeStream) to be used interchangeably with MemoryStream(). Though wrapping a MemoryStream with a BufferedStream isn't useful in the real world, it's an adequate method of ensuring the BufferedStream is calling the underlying stream functions correctly. Coverage is 89%/80% for BufferedStream with these additions. resolves #1793 The tests will fail CI as they will be compiled against the contract pulled in from nuget for System.IO version 4.0.10. For testing, I manually modified the reference assemblies to those produced by my System.IO/src build and all tests pass. I expect I need to do something on the TFS side of things to resolve this issue. The N custom implementation in \ndp\FxCore\src\System.Runtime.WindowsRuntime\System\IO can also be removed in favor of this one. @stephentoub @mellinoe @manu-silicon +4458 area-System.Runtime Ensure minimum GUID entropy on all platforms. GUIDs on Windows have, for years, provided 122 bits of entropy. This behavior needs to be enshrined and guaranteed on all platforms as people have taken dependencies upon it. +4459 area-System.Diagnostics Fix intermittent perf_process test failure. Perf_Process.Kill was trying to kill processes that could exit before it had the chance to get to them. I modified the ProcessTestBase helpers to make CreateProcessInfinite create an actually infinitely running process for the Kill test and renamed the old CreateProcessInfinite to the more accurate CreateProcessLong resolves #4397 @stephentoub @Priya91 +4460 area-Infrastructure Enabled Native Windows Build of System.IO.Compression.Native (zlib) "This commit adds scripts to enable building Windows-specific binaries in CoreFX. The code is mostly modeled off of CoreCLR with some elements taken from build.sh building for native Unix components. It uses CMake to produce the projects that are then passed to msbuild. The logic primarily resides within the ""build-native.cmd"" script that is called by ""build.cmd"" from the corefx root when ""__BuildNative"" is set. Some things to be aware of: - __BuildNative in build.cmd is currently always set. Either some logic should be added to actually evaluate it, or the variable should be removed. - Cross compilation isn't set up. build-native.cmd can only build for windows at this time. It can build for x64 or x86, however. The default is currently x64. AnyCPU also defaults to x64. - Since manual parsing of args is used, most of the msbuild targets that can be passed to build.cmd will be ignored by native compilation. Currently, only Configuration and Platform are acknowledged. I can imagine a system where the native project can be used with the same targets as the managed ones, but that capability isn't complete now. Those properties/targets are still used in the managed build, of course. - A TFS-side commit to the package definitions will need to follow this PR so that we can consume the publicly built System.IO.Compression.Native. - I minimized most of the compilation options for Windows cmake. Some will likely needed to be reenabled in the CMakeLists.txt in corefx/src/native/ - I tested the System.IO.Compression.Native.dll built by ""build.cmd /p:Configuration=Release"" by renaming it to ""clrcompression.dll"" and running the unit tests using it. - This PR will need to be modified pending the merging of https://github.com/dotnet/corefx/pull/4440. - The Zlib code included is unaltered 1.2.3 code. - This will unblock https://github.com/dotnet/corefx/issues/3986 @bjjones if we merge this and don't decide to instead consume a different zlib package (e.g. http://nuget.org/api/v2/package/zlib/1.2.8.8) resolves #826 @stephentoub @mellinoe @joshfree @richlander @eerhardt " +4462 area-System.Reflection Expose GetMethod and GetConstructor extensions with both BindingFlags and Type[] `System.Reflection.TypeExtensions` is good for porting existing .NET Framework code across, however it is missing an overload with a combination of `BindingFlags` and `Type[]` for both `GetMethod` and `GetConstructor`. My use case is getting a private constructor when there are multiple constructors: ``` type.GetConstructor( BindingFlags.Instance | BindingFlags.NonPublic, null, // binder new[] { typeof(object), ... }, null // modifiers ); ``` I assume these weren't exposed in corefx because you didn't want to provide the overloads with a `Binder` parameter, so something like these would be optimal however would be new overloads not available in .NET Framework: ``` public static MethodInfo GetMethod(this Type type, string name, BindingFlags bindingAttr, Type[] types) public static ConstructorInfo GetConstructor(this Type type, BindingFlags bindingAttr, Type[] types) ``` I've looked at using Linq over the `TypeInfo` but I'd have to check each property rather than use BindingFlags, and `TypeInfo` isn't available in .NET 3.5/4.0 so I can't just change to one or the other. For now I've emulated the old .NET Framework signature using `type.GetConstructors(bindingAttr).SingleOrDefault(...)`, it is ugly and likely heaps slower than the .NET Framework reflection call. I'm keen to hear if you have any intention of providing this API, otherwise I'll probably change all our code using the API to a shim extension method something like `type.GetPrivateConstructor(new[] { ... })` with conditionally compiled implementation. +4463 area-System.Reflection Expose System.Reflection.TargetException .NET Framework exposed both `TargetException` (fail on an invalid target, e.g, null) and `TargetInvocationException` (fail actually invoking the target). The runtime still throws a `TargetException` in coreclr and there is code in the corefx unit tests that check the exception is thrown using `Type.FullName` or `Assert.ThrowsAny`. Is there a reason this exception hasn't been exposed? I'm porting code checking for this exception. +4465 area-System.ComponentModel EnsureValidDataType should reject whitespaces in DataTypeAttribute.CustomDataType property "Method EnsureValidDataType() should not raise an exception when the property CustomDataType is a WhiteSpace? This code: ``` c# /// /// Throws an exception if this attribute is not correctly formed /// /// is thrown if the current attribute is ill-formed. private void EnsureValidDataType() { if (DataType == DataType.Custom && string.IsNullOrEmpty(CustomDataType)) { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, SR.DataTypeAttribute_EmptyDataTypeString)); } } ``` Should be? ``` c# /// /// Throws an exception if this attribute is not correctly formed /// /// is thrown if the current attribute is ill-formed. private void EnsureValidDataType() { if (DataType == DataType.Custom && string.IsNullOrWhiteSpace(CustomDataType)) { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, SR.DataTypeAttribute_EmptyDataTypeString)); } } ``` " +4466 area-System.Diagnostics TestUserCredentialsPropertiesOnWindows failed in CI in outer loop http://dotnet-ci.cloudapp.net/job/dotnet_corefx_outerloop_windows_win10_debug/88/console ``` 03:38:50 System.Diagnostics.Tests.ProcessStartInfoTests.TestUserCredentialsPropertiesOnWindows [FAIL] 03:38:50 System.InvalidOperationException : No process is associated with this object. 03:38:50 Stack Trace: 03:38:50 d:\j\workspace\dotnet_corefx_outerloop_windows_win10_debug\src\System.Diagnostics.Process\src\System\Diagnostics\Process.cs(753,0): at System.Diagnostics.Process.EnsureState(State state) 03:38:50 d:\j\workspace\dotnet_corefx_outerloop_windows_win10_debug\src\System.Diagnostics.Process\src\System\Diagnostics\Process.cs(172,0): at System.Diagnostics.Process.get_HasExited() 03:38:50 d:\j\workspace\dotnet_corefx_outerloop_windows_win10_debug\src\System.Diagnostics.Process\tests\ProcessStartInfoTests.cs(325,0): at System.Diagnostics.Tests.ProcessStartInfoTests.TestUserCredentialsPropertiesOnWindows() ``` +4467 area-System.Net SslStream tests: timeout http://dotnet-ci.cloudapp.net/job/dotnet_corefx_windows_release_prtest/6135/console ``` System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Authentication_Success [FAIL] Handshake completed in the allotted time Expected: True Actual: False Stack Trace: d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Security\tests\FunctionalTests\SslStreamStreamToStreamTest.cs(36,0): at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Authentication_Success() System.Net.Security.Tests.CertificateValidationClientServer.CertificateValidationClientServer_EndToEnd_Ok [FAIL] Client/Server Authentication timed out. Expected: True Actual: False Stack Trace: d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Security\tests\FunctionalTests\CertificateValidationClientServer.cs(80,0): at System.Net.Security.Tests.CertificateValidationClientServer.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_EachProtocol_Success [FAIL] Timed Out Expected: True Actual: False Stack Trace: d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Security\tests\FunctionalTests\ClientAsyncAuthenticateTest.cs(252,0): at System.Net.Security.Tests.ClientAsyncAuthenticateTest.d__5c.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) d:\j\workspace\dotnet_corefx_windows_release_prtest\src\System.Net.Security\tests\FunctionalTests\ClientAsyncAuthenticateTest.cs(108,0): at System.Net.Security.Tests.ClientAsyncAuthenticateTest.d__16.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +4468 area-Infrastructure Reenable Win7 in CI All of our Windows 7 testing is offline. +4473 area-System.Net WinHTTP certificate chain build algorithm is potentially not including certificates obtained from the TLS connection Similarly to how SslStream is including TLS certificates obtained from Schannel, WinHTTP should use the `PCERT_CONTEXT` obtained using `WINHTTP_OPTION_SERVER_CERT_CONTEXT` to extract certificates from the virtual store and use them during chain construction. See https://github.com/dotnet/corefx/blob/master/src/Common/src/Interop/Windows/SChannel/UnmanagedCertificateContext.cs for reference. +4474 area-System.Diagnostics Debug.Assert throws System.Diagnostics.Debug+DebugAssertException Is this by designed for corefx ? because in .net, this should open a debugger instead. Our code currently depends a lot on Debug.Assert. Unfortunately Debug.Assert now throws Debug+DebugAssertException which causing inconsistent from the release mode I remember previously it throws a special uncatchable exception (Environment.FailFast()) which i think can be better instead of causing different behavior. +4475 area-System.IO Change ZLib Optimal CompressionLevel on Unix We currently have this comment and code in System.IO.Compression: ``` C# // Note that ZLib currently exactly correspond to the optimal values. // However, we have determined the optimal values by intependent measurements across // a range of all possible ZLib parameters and over a set of different data. // We stress that by using explicitly the values obtained by the measurements rather than // ZLib defaults even if they happened to be the same. // For ZLib 1.2.3 we have (copied from ZLibNative.cs): // ZLibNative.CompressionLevel.DefaultCompression = 6; // ZLibNative.Deflate_DefaultWindowBits = -15; // ZLibNative.Deflate_DefaultMemLevel = 8; case CompressionLevel.Optimal: zlibCompressionLevel = (ZLibNative.CompressionLevel)6; windowBits = -15; memLevel = 8; strategy = ZLibNative.CompressionStrategy.DefaultStrategy; break; ``` Since we are now using the “current” ZLib version on Unix, and because we are planning on changing which version we use on Windows, I don’t think this is the best approach anymore. It was probably correct when we were hard-coding a version, but since we don’t know which version will actually be used, I think we should be letting the zlib library figure out which is the best compression level to use. I have 2 separate options on how to address this: 1. On Unix, create a new shim method DeflateInit that only takes in the ZStream. The shim code will use the default values from the ZLib headers. Windows remains unchanged. https://github.com/eerhardt/corefx/commit/c1be54d6dfaf64098b42c186c041344e4378f083 2. Change both Windows and Unix code to always use the default compression level (-1) and let the zlib version pick. https://github.com/eerhardt/corefx/commit/38883e3df53153a9434dfc16696667279b18dd82 @ianhays @stephentoub - Do you guys agree this should be fixed? If so, do you have a preferred option - or an even better option than the 2 I've listed? +4476 area-System.Net Add support for custom validation of server SSL Certificate to HttpClient API This issue tracks the addition of new functionality to the HttpClient API. In order to implement certificate pinning and self-signed SSL certificate scenarios, developers need access to the SSL cert presented by the server, and the ability to do their own validation and then accept/reject the connection accordingly. Today, this ability is provided in .NET Framework by ServicePointManager.ServerCertificateValidationCallback and in ASP.NET 5 by WinHttpHandler.ServerCertificateValidationCallback. However, ServicePointManager is not in .NET Core, and WinHttpHandler is not available x-plat and on all app models. Hence, there is a need to add this API to the top-level HttpClient or HttpClientHandler types. If you have specific requirements around this scenario, please enter those here - we will track this issue in our backlog. +4477 area-System.Security Add missing X509ChainStatusFlags net461 added some new X509ChainStatusFlags values. While these are present already in the implementation library, they aren't in the ref library. GetChainStatusInformation was rewritten as a loop for net461, that change should also be ported over to corefx. +4478 area-System.Net Add System.Net.WebSockets.Client tests - Port some of the ToF ClientWebSocket tests that talk to a real websocket server - Cleanup naming of existing tests to conform to System.Net test method naming - Skip tests if not supported on platform. Specifically, these tests were failing on Win7 since Win7 does not support WinHttp WebSockets. We haven't really noticed this failing since the CI doesn't yet run Win7 tests (issue #4468) I plan to port the remainder of the ToF websocket related tests in a subsequent PR. +4479 area-System.Net Add Client certificate support to HttpClient API "The `HttpClientHandler` API has a `ClientCertificateOptions` enum that lets you pick between `Automatic` and `Manual` client cert option. Choosing `Automatic` lets the system choose the ""best"" client certificate for the user from among the installed and accessible ones. `Manual` means that the developer can explicitly pass in a client cert. However, `HttpClientHandler` does not have a `ClientCertificate` property, so you can't assign a certificate for the `Manual` option to use. This issue tracks the fix to address this gap. (`WinHttpHandler` has a `ClientCertificates` property for this purpose, but it is not x-plat and is not supported for all app models (e.g. UWP)) If you have specific requirements around this feature, please enter them here. " +4480 area-System.Net Interop.Ssl.SslShutdown crashes process during GC finalization A WCF test that attempts to write to an SslStream(https://github.com/dotnet/wcf/blob/master/src/System.Private.ServiceModel/tests/Scenarios/Security/TransportSecurity/Tcp/ClientCredentialTypeTests.cs) leaves SafeSslHandle in a closed state (which is correct). But when the next GC happens its finalizer is called and tries to Dispose it, causing an ObjectDisposedException. On Linux, this crashes the process. Unhandled Exception: System.ObjectDisposedException: Safe handle has been closed at System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean& success) at System.StubHelpers.StubHelpers.SafeHandleAddRef(SafeHandle pHandle, Boolean& success) at Interop.Ssl.SslShutdown(SafeSslHandle ssl) at Interop.OpenSsl.Disconnect(SafeSslHandle context) at System.Net.Security.SafeDeleteContext.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.InternalFinalize() at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing) at System.Runtime.InteropServices.SafeHandle.Finalize() +4481 area-System.ComponentModel new DataAnnotations.EmailAddressAttribute() set customErrorMessageSet=true When create a `new EmailAddressAttribute()` the property Errormessage has the value of DefaultErrormessage and customErrorMessageSet=true. Now I can't detect if the user set this Errormessage. Look to CompareAttribute. This is the way it can be implemented. Create an extra overload in DataTypeAttribute. ```c# public EmailAddressAttribute() : base(DataType.EmailAddress) { // DevDiv 468241: set DefaultErrorMessage not ErrorMessage, allowing user to set // ErrorMessageResourceType and ErrorMessageResourceName to use localized messages. DefaultErrorMessage = DataAnnotationsResources.EmailAddressAttribute_Invalid; } ``` Should be ```c# public EmailAddressAttribute() : base(DataType.EmailAddress, DataAnnotationsResources.EmailAddressAttribute_Invalid) { } ``` This should also be done for all other Attributes that has the basetype `DataTypeAttribute` +4483 area-System.Net Removing SSLv2 and SSLv3 support from System.Net.Security APIs will throw NotSupportedException if SSLv2 or v3 is used. This behavior is different from .NET Desktop. There is _no_ way to re-enable SSL2 or 3 support via configuration in CoreFX. Tests have been changed to pin this new behavior. Increased passing-test timeouts to 15s. Fix #3114 (partial), #4467 @davidsh @josguil @bartonjs @vijaykota @rajansingh10 @shrutigarg PTAL /cc: @stephentoub @SidharthNabar +4484 area-System.Net Implement Ping on Unix. "This implements System.Net.Utilities on Unix. The implementation is shared between Unix platforms, and should work anywhere that either supports raw sockets or has a discoverable ""ping"" utility. There are two ""modes"" in which a Ping can be sent on Unix. If the user has privileges to create and use raw sockets, then the ""good"" path is taken. The good path uses raw sockets to send ICMP echo requests to the given host, and then listens for ICMP echo replies. If the user does not have privileges to do so, then the implementation simply launches a new process using the ping or ping6 utility program (depending on whether the destination address is an IPv4 or IPv6 address), parses the output, and returns the result. The information from the ""bad path"" is less reliable, and doesn't include things like the IPStatus property, which should be able to cover most of the possible ICMP response message types, not just ""Success"". Additionally, the ""bad path"" cannot send arbitrary buffers along with the echo request, although we can at least preserve the size of the data. This means you can't inspect the PingReply and see that the same data you sent in the echo request was returned unchanged. There are a couple of additions to the Sockets PAL and shim in order to accomodate the ICMP protocol which I'm using in the ""good path"" described above. @cipop, @stephentoub, @pgavlin " +4487 area-System.Data Mars - Intermittently Failed - because of race condition "Repro ``` using (var conn = new SqlConnection(""Data Source=***; User ID=***; Password=***;Initial Catalog=***;MultipleActiveResultSets=true;"")) { conn.Open(); var cmdText = ""select 1""; var cmd1 = new SqlCommand(cmdText, conn); var cmd2 = new SqlCommand(cmdText, conn); Console.WriteLine(""{0:hh:mm:ss} - Execute Reader 1"", DateTime.Now); using (var reader1 = cmd1.ExecuteReader()) { Console.WriteLine(""{0:hh:mm:ss} - Execute Reader 2"", DateTime.Now); using (var reader2 = cmd2.ExecuteReader()) { Console.WriteLine(""{0:hh:mm:ss} - Start Read Reader 2"", DateTime.Now); reader2.Read(); Console.WriteLine(""{0:hh:mm:ss} - Finish Read Reader 2"", DateTime.Now); } Console.WriteLine(""{0:hh:mm:ss} - Start Read Reader 1"", DateTime.Now); reader1.Read(); Console.WriteLine(""{0:hh:mm:ss} - Finish Read Reader 1"", DateTime.Now); } } ``` Sometimes this will error caused by syn packet was sent after the second data packet for second session sent. " +4488 area-System.Net Fix WebHeaderCollection test TODO Now that our xunit runner doesn't balk at some bad characters in theory arguments, fixing a few TODOs. Fixes #2370 cc: @davidsh, @pgavlin +4489 area-System.Data Mars cleanup - create session async constructor https://github.com/dotnet/corefx/pull/4486 I think this async constructor was carried over from native sni params. But it doesn't mean that it will create a session async. Create session async will be dangerous as it will potentially caused race condition where data packet get sent before SYN control packet / session created. +4491 area-System.Reflection System.Reflection.Emit.AssemblyBuilder.Save `AssemblyBuilder.Save` and `AssemblyBuilderAccess.RunAndSave` isn't available in .NET Core, however coreclr seems to have the code to implement it but I looks conditionally compiled out. https://github.com/dotnet/coreclr/blob/bc146608854d1db9cdbcc0b08029a87754e12b49/src/mscorlib/src/System/Reflection/Emit/AssemblyBuilder.cs#L1690-L1711 Our use case in Castle DynamicProxy is to write out dynamically created assemblies to disk so we can run peverify over the assembly in unit tests. It also greatly helps writing out the assembly and opening it in ildasm to manually verify IL. Is there any chance we can get this functionality that .NET Framework has introduced into .NET Core, or an alternative way of doing the same thing. This might not sound like a big deal if you aren't familiar with Castle DynamicProxy's internals, but it really is as it heavily reduces our confidence in both our code and the .NET runtime as well as reducing our ability to track down defects. +4492 area-System.Net Fixing Issue #4480, ReleaseHandle() getting called more than once due to probable race condition Fix for issue #4480. Looks like this is happening due to probable race condition which leads to ReleaseHandle() getting called more than once. ReleaseHandle was not setting holding object/pointer to null/Intptr. Setting it explicitly now. @roncain can you please validate this fix with your test which was crashing earlier. +4495 area-System.Net Support IDNA host matching on Unix SslStream - Split the Unix and Windows project.json files for System.Net.Security since they have different dependencies at the implementation level. - Use the managed IdnMapping to do the IDNA rules application - Update comments in the native half of the match logic This was verified against a private domain which uses a mix of ASCII and non-ASCII characters. - Lowercase punycode form: Success before, success after - Mixed-case punycode form: Failed before, success after - Unicode form: Failed before, success after. cc: @ellismg @stephentoub @vijaykota @rajansingh10 @shrutigarg @CIPop @davidsh +4497 area-System.Reflection Add support for calling a varargs constructor through IlGenerator.EmitCall "## Rationale Emitting code which calls vararg method is good, but emitting code to invoke **vararg constructor** is different tricky (via symbol lookup). ## Proposed API Goal: Unify emitting of vararg constructor calls with any other vararg method calls ```diff public partial class System.Reflection.Emit.ILGenerator { + public virtual void EmitCall(OpCode opcode, ConstructorInfo constructorInfo, Type[] optionalParameterTypes); public virtual void EmitCall(OpCode opcode, MethodInfo methodInfo, Type[] optionalParameterTypes); } ``` Context: * [ILGenerator methods - apisof.net](https://apisof.net/catalog/System.Reflection.Emit.ILGenerator) * [EmitCall on msdn](https://msdn.microsoft.com/en-us/library/system.reflection.emit.ilgenerator.emitcall(v=vs.110).aspx) ## Usage ```c# public class V { public V(__arglist) { /* ... */ } public int MyMethod(__arglist) { /* ... */ } } // Emitting calls - code snippets { var il = mb.GetIlGenerator(); // Emitting call to static vararg method il.EmitCall(Opcodes.Call, typeof(V).GetMethod(""MyMethod"", BindingFlags.Public), new[] { typeof(string), typeof(string), typeof(int) } ); // Emitting call to vararg constructor - today requires MetaData token var token = mb.GetConstructorToken( typeof(V).GetConstructors()[0], // or other way to get to ConstructorInfo new[] { typeof(string),typeof(string), typeof(int) } ); il.Emit(Opcodes.Call, token.Token); // Emitting call to vararg constructor - with the newly proposed API il.EmitCall(Opcodes.Call, typeof(V).GetConstructors()[0], // or other way to get to ConstructorInfo new[] { typeof(string), typeof(string), typeof(int) } ); } ``` # Original Proposal Currently, the only way to call a varargs constructor through an `IlGenerator` is through the usage of a symbol, which is weird and poorly documented. I propose `EmitCall` which is the supported way to call varargs methods should have an overload to take `MethodBase` instead of a `MethodInfo`. see: http://stackoverflow.com/a/24041217/468672 edit: I propose adding the following method to the `IlGenerator` base type: ``` csharp public virtual void EmitCall(OpCode opcode, ConstructorInfo constructor, Type[] optionalParameterTypes); ``` This overload would allow support for calling a `vararg` constructor. Consider the following class `V` ``` csharp public class V { public int Count{get;} public V(__arglist) { this.Count = new ArgIterator(__arglist).GetRemainingCount(); } public static int F(__arglist) { return new ArgIterator(__arglist).GetRemainingCount(); } } ``` To generate a method that calls the static method F, we can do the following: ``` csharp public void BuildCallFMethod(TypeBuilder tb) { var mb = tb.DefineMethod(""CallFMethod"", MethodAttributes.Public | MethodAttributes.Static); var il = mb.GetIlGenerator(); il.Emit(OpCodes.Ldstr, ""one""); il.Emit(OpCodes.Ldstr, ""two""); il.Emit(OpCodes.Ldc_I4_3); il.EmitCall(Opcodes.Call, typeof(V).GetMethod(""F"", BindingFlags.Static | BindingFlags.Public), new[]{typeof(string), typeof(string), typeof(int)}); il.Emit(OpCodes.Ret); } ``` However, if we wanted to create a type that extended `V`, despite needing to emit a `call` opcode on the constructor, we cannot use `EmitCall` and instead need to look up a symbol. This is asymmetric and is bad api design. ``` csharp public void BuildCtorForExtenderOfV(TypeBuilder tb, ModuleBuilder mb) { var ctor = tb.DefineConstructor(MethodAttributes.HideBySig | MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.RTSpecialName, CallingConventions.HasThis, Type.EmptyTypes); var il = ctor.GetIlGenerator(); var token = mb.GetConstructorToken(typeof(V).GetConstructors()[0], new[]{typeof(string),typeof(string), typeof(int)}); il.Emit(OpCodes.Ldarg_0); il.Emit(OpCodes.Ldstr, ""one""); il.Emit(OpCodes.Ldstr, ""two""); il.Emit(OpCodes.Ldc_I4_3); il.Emit(Opcodes.Call, token.Token); il.Emit(OpCodes.Ret); } ``` Instead, I propose we allow this overload, allowing the two calls to have the same IlGenerator code pattern. The benefit is that `EmitCall`, does some validation beforehand, where as the token variant basically only validates when you build the method/ctor. As an additional benefit, I also recommend we allow using the `OpCode.NewObj` for the first parameter of `EmitCall` as well." +4500 area-System.Net Investigate problematic Sockets assertion There is an assertion in the Socket constructor which I believe might be faulty. I've tried the same code on the desktop framework and didn't hit any issues. The assertion is on line 112 of Socket.cs: https://github.com/dotnet/corefx/blob/a22364202c6d6cabeeb662fde346941b7284a8da/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs#L112 ``` CSharp Debug.Assert(addressFamily != AddressFamily.InterNetworkV6 || !DualMode); ``` I hit this assertion on CoreCLR when instantiating a Socket with the following args: ``` CSharp new Socket(AddressFamily.InterNetworkV6, SocketType.Raw, ProtocolType.IcmpV6); ``` (NOTE: You have to run as admin or the above will throw some other exception.) cc: @CIPop , @pgavlin +4501 area-System.Net XPlat: System.Net.Socket.Poll(0, SelectMode.SelectError) provides incorrect results On Linux, the call to System.Net.Socket.Poll(0, SelectMode.SelectError) returns true for some cases when consumed in SqlClient. If the SqlClient ignores the Socket poll result and continues to use the socket, there is no problem reading from the socket. Based on the investigation @pgavlin figured out that this is a bug with linux Native implementation for Poll. +4502 area-System.Net Add support to HttpClient for mutual authentication On the desktop, WCF uses mutual authentication when using Kerberos authentication. We specify the servers SPN by adding the relevant SPN to `AuthenticationManager.CustomTargetNameDictionary`. We need a way to: 1. Enable mutual authentication 2. Override the SPN we expect the server to be using The second item is needed if mutual auth is enabled as on the service side only a system process is able to use the host/hostname SPN. When the remote service is using HTTP.SYS in a non-system process and not using Kernal mode authentication, a unique SPN must be created and used. If mutual auth is enabled, this would break without being able to specify the SPN for the server on the client side. +4503 area-System.Data sni.dll can't be loaded on Win 7/2008R2 This issue is not the same as [this one](https://github.com/dotnet/corefx/issues/3760) because I already have the C++ runtime installed. We're seeing the issue while running the ASP.NET MusicStore sample automation on Win 7 and Win 2008 R2 but we don't know what's the root cause. Worth mentioning that the same code works on Win 8 and Win 10. ``` System.Reflection.TargetInvocationException: Exception has been thr own by the target of an invocation. ---> System.AggregateException: One or more errors occurred. ---> System.DllNotFoundException: Unable to load DLL 'C:\Users\ victorhu\.dnx\packages\runtime.win7-x86.System.Data.SqlClient.sni\4.0.0-beta-235 09\runtimes\win7-x86\native\sni.dll': The specified module could not be found. ( Exception from HRESULT: 0x8007007E) at System.Runtime.Loader.AssemblyLoadContext.InternalLoadUnmanagedDllFromPath (String unmanagedDllPath) at System.Runtime.Loader.AssemblyLoadContext.LoadUnmanagedDllFromPath(String unmanagedDllPath) at Microsoft.Dnx.Runtime.Loader.LoadContext.LoadUnmanagedLibraryFromPath(Stri ng path) at Microsoft.Dnx.Runtime.Loader.PackageAssemblyLoader.LoadUnmanagedLibrary(St ring name) at Microsoft.Dnx.Host.LoaderContainer.LoadUnmanagedLibrary(String name) at Microsoft.Dnx.Host.DefaultLoadContext.LoadUnmanagedLibrary(String name) at Microsoft.Dnx.Runtime.Loader.LoadContext.LoadUnmanagedDll(String unmanaged DllName) at System.Runtime.Loader.AssemblyLoadContext.ResolveUnmanagedDll(String unman agedDllName, IntPtr gchManagedAssemblyLoadContext) at System.Data.SqlClient.SNINativeMethodWrapper.UnmanagedIsTokenRestricted(In tPtr token, Boolean& isRestricted) at System.Data.Win32NativeMethods.IsTokenRestrictedWrapper(IntPtr token) at System.Data.ProviderBase.DbConnectionPoolIdentity.GetCurrent() at System.Data.ProviderBase.DbConnectionPoolGroup.GetConnectionPool(DbConnect ionFactory connectionFactory) at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPool(DbConnectio n owningObject, DbConnectionPoolGroup connectionPoolGroup) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions , DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(Db Connection outerConnection, DbConnectionFactory connectionFactory, TaskCompletio nSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.OpenAsync(CancellationToken cancellati onToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNot ification(Task task) at Microsoft.Data.Entity.Storage.RelationalConnection.d__32.MoveNe xt() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNot ification(Task task) at Microsoft.Data.Entity.Storage.Internal.SqlServerDatabaseCreator.d__13.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNot ification(Task task) at Microsoft.Data.Entity.Storage.RelationalDatabaseCreator.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNot ification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at MusicStore.Models.SampleData.d__3.MoveN ext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceled Exceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationTo ken cancellationToken) at System.Threading.Tasks.Task.Wait() at MusicStore.Startup.Configure(IApplicationBuilder app) at MusicStore.Startup.ConfigureDevelopment(IApplicationBuilder app, ILoggerFa ctory loggerFactory) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Objec t[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invoke Attr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.AspNet.Hosting.Startup.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder) at Microsoft.AspNet.Hosting.Startup.ConfigureBuilder.<>c__DisplayClass4_0.b__0(IApplicationBuilder builder) at Microsoft.AspNet.Hosting.Internal.AutoRequestServicesStartupFilter.<>c__Di splayClass0_0.b__0(IApplicationBuilder builder) at Microsoft.AspNet.Hosting.Internal.HostingEngine.BuildApplication() ``` The investigation that we did so far involved looking at the dependencies of `sni.dll` but there's nothing obviously wrong. Maybe someone with more experience in this area can identify something: ``` Dump of file C:\Users\victorhu\.dnx\packages\runtime.win7-x86.System.Data.SqlClient.sni\4.0.0-beta-23509\runtimes\win7-x86\native\sni.dll File Type: DLL Image has the following dependencies: api-ms-win-core-processenvironment-l1-1-0.dll api-ms-win-core-file-l1-1-0.dll api-ms-win-core-debug-l1-1-0.dll api-ms-win-core-errorhandling-l1-1-0.dll api-ms-win-core-synch-l1-2-0.dll api-ms-win-core-interlocked-l1-1-0.dll api-ms-win-core-memory-l1-1-0.dll api-ms-win-core-libraryloader-l1-1-0.dll api-ms-win-core-string-obsolete-l1-1-0.dll api-ms-win-core-kernel32-legacy-l1-1-0.dll api-ms-win-core-registry-l1-1-0.dll api-ms-win-core-sysinfo-l1-2-0.dll api-ms-win-core-handle-l1-1-0.dll api-ms-win-core-io-l1-1-0.dll api-ms-win-core-synch-l1-1-0.dll api-ms-win-core-processthreads-l1-1-0.dll api-ms-win-core-sysinfo-l1-1-0.dll api-ms-win-core-timezone-l1-1-0.dll api-ms-win-core-stringansi-l1-1-0.dll api-ms-win-core-string-l1-1-0.dll api-ms-win-core-localization-obsolete-l1-2-0.dll api-ms-win-core-localization-l1-2-0.dll api-ms-win-security-base-l1-1-0.dll api-ms-win-core-namedpipe-l1-1-0.dll MSVCR110.dll KERNEL32.dll ADVAPI32.dll RPCRT4.dll WS2_32.dll CRYPT32.dll Summary 4000 .data 16000 .rdata 6000 .reloc 1000 .rsrc 3000 .sdbid 2C000 .text ``` To reproduce clone [MusicStore](https://github.com/aspnet/musicstore/tree/release) and run `build verify` cc @divega +4504 area-Serialization Data Contract overflow when reading objects concurrently Data contract serializers are prone to cache exception when used by multiple threads. This is an issue that are being fixed on Desktop which should be ported to CoreClr. +4507 area-System.Console Provide better x-plat Console/Terminal features The current implementation of System.Console doesn't provide good experience on Linux. For example, arrow keys (left/right for caret navigation, up/down for history) don't work. It is left to the developer to implement this basic functionality in their app if they want to provide consistent good experience across platforms. CoreFX should provide such implementation either as part of System.Console or as a separate library/nuget. On Linux the implementation can use existing native libraries such as curses or readline. Related Roslyn issue: https://github.com/dotnet/roslyn/issues/6751 +4508 area-System.Net Ensure that only API usage exceptions are thrown on the sync path from System.Net TPL APIs API usage and development-time errors should throw exceptions on the sync path of TPL (async) APIs. All other errors should be configured within the returned Task object. /cc: @davidsh @stephentoub +4510 area-System.Net X509Certificate2(X509Certificate) missing I am using SslStream with a userCertificateValidationCallback. The callback is passed a X509Certificate which I would like to convert to a X509Certificate2. The constructor to convert the certificate is missing/not yet implemented. Somewhat related: perhaps SslStream should pass a X509Certificate2 instead of a X509Certificate to the userCertificateValidationCallback? +4511 area-System.Data SqlClient - Mars Bug - FIN Packet handler after session is disposed **Repro:** ExecuteReaderAsyn couple times and wait until that reader is dispose / called dispose. **Root Cause:** When session is disposed it send FIN packet. https://github.com/dotnet/corefx/blob/5344db30650f331851f3232538616704d713d9e1/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIMarsHandle.cs#L60-L64 after server receive FIN packet, it will also send FIN Packet back to the client. Unfortunately, we don't handle this properly and causing to error as that session no longer exists. https://github.com/dotnet/corefx/blob/a3050bacc9b716f52f086751bfb4bf0384019f53/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIMarsConnection.cs#L247-L254 **More investigation:** - need to find out why FIN packet only sent on disposed - this can results another issue where all other sessions are not put back into the pool. **Possible solutions:** - check if it is FIN packet during HandleReceiveComplete and handle this gracefully. - we may need to send FIN packet outside dispose() as well. rather than wait dispose to happen. +4512 area-System.Net SslStream.AuthenticateAsServer with client certificates doesn't allow for ACCEPT I am connecting to a server which has an invalid certificate, using HttpClientHandler (desktop) and WinHttpHandler (CoreCLR). This works fine. ``` // Desktop Framework var handler = new HttpClientHandler(); ServicePointManager.ServerCertificateValidationCallback = // return true; // CoreCLR var handler = new WinHttpHandler(); handler.ServerCertificateValidationCallback += // return true ``` When I configure the server to accept client certificates (ssl handshake), but do not provide a client certificate. The HttpClientHandler works as before, but the WinHttpHandler throws a WinHttpException (ERROR_INTERNET_SECURE_FAILURE). +4513 area-System.Net Use new ConditionalFact in WebSockets tests Upgrade to new buildtools and try out ConditionalFact in the WebSockets tests. Other tests elsewhere in corefx can be moved over separately. cc: @davidsh, @CIPop Fixes #3349 +4518 area-System.Net Reduce the size of System.Net.IPAddress This change reduces the size of `IPAddress` from 40 bytes to 24 bytes (64 bit) and also avoids an unnecessary array allocation for IPv4 addresses. cc: @davidsh, @CIPop, @stephentoub These are the current fields on `IPAddress` that add up to 40 bytes (64 bit): ``` c# internal long Address; internal string StringRepresentation; private readonly AddressFamily _family = AddressFamily.InterNetwork; private readonly ushort[] _numbers = new ushort[NumberOfLabels]; private long _scopeId = 0; private int _hashCode = 0; ``` - `Address` is only used for IPv4 addresses. The size is actually `uint`, but it is typed as `long` because public APIs use `long` for CLS compliance. This field can be changed to `uint` to save 4 bytes. - `StringRepresentation` is a cache of the result of `ToString()` and can remain as-is. - `_family` indicates whether the `IPAddress` instance is an IPv4 address or an IPv6 address through the `AddressFamily.InterNetwork` (IPv4) and `AddressFamily.InterNetworkV6` (IPv6) enum values. We can eliminate this field and instead use the `_numbers` field, which is only used for IPv6 addresses, to indicate whether or not the address is IPv4 vs. IPv6. This saves 4 bytes. - `_numbers`, as mentioned in the previous bullet, is only used for IPv6 addresses. Note that currently the array is always being allocated, even for IPv4 addresses. We can change this to only allocate the array for IPv6 addresses. When the field is null, it indicates that the address is an IPv4 address, when the field is non-null it is an IPv6 address. - `_scopeId` is only used for IPv6 addresses. Similar to `Address`, the size is actually `uint`, but it is typed as `long` because public APIs use `long` for CLS compliance. We can eliminate this field and instead use the same `uint` field as `Address` for IPv4 addresses, reducing the size by another 8 bytes. - `_hashCode` is only used for IPv6 addresses (IPv4 just uses the `Address` for the hash code). We could consider getting rid of this field, to reduce the size by another 4 bytes, and instead always re-calculate the hash code when `GetHashCode` is called (all it's doing is calling `StringComparer.OrdinalIgnoreCase.GetHashCode()` on a cached `ToString()` result), but I assume it is here for performance reasons, so I've kept it for now. Here are the fields after the changes: ``` C# private uint _addressOrScopeId; private readonly ushort[] _numbers; private string _toString; private int _hashCode; ``` From 40 bytes to 24 bytes (64 bit). (Note: I renamed some of the fields and made them all private. The two renamed internal fields (`Address` and `StringRepresentation`) now have internal properties with the same type and name as the old fields, to avoid breaking any internal callers.) (There are other potential optimizations for `IPAddress` that could be handled in separate PRs. For example, `ToString()` could be optimized to avoid unnecessary intermediate allocations. Also, as noted in #2891, some means to access to the internal buffer to avoid unnecessary `byte[]` allocations could be added.) +4525 area-System.Net Address PR feedback for System.Net.Requests - Remove unnecessary string.Format in WebException - Replace several string.Compare calls with string.Equals - Improve FromAsync usage in WebRequest cc: @pgavlin, @CIPop, @davidsh Fixes https://github.com/dotnet/corefx/issues/2409 +4526 area-System.Net Disable three System.Net.Security tests that repeatedly timeout https://github.com/dotnet/corefx/issues/4467 cc: @CIPop, @davidsh +4528 area-System.Net Port more System.Net.WebSockets.Client tests Continued porting internal ToF tests to GitHub. Modified tests to use a good dev pattern of `using` around websocket use. +4530 area-System.Net Change System.Net.WebSockets contract for WebSocketReceiveResult "Follow up from ""Resuable WebSocketReceiveResult"" #4520 At the moment is `WebSocketReceiveResult` is a read only POCO type that as a class must be garbage collected on every single socket message; probably gen0; but still bad for high speed websockets. I can see two approaches to address this: 1. Change the setters to protected, which opens up a possibility for types derived from `System.Net.WebSockets.WebSocket` to reuse the result object using a derived `WebSocketReceiveResult` type. 2. Change type from `class` to `struct`. Either approach halves the number of allocations, second is safer but allocates more memory. (Though ValueTask returns could change this) " +4532 area-System.Net Update MultipartContent.cs Added a support for choosing a CRLF type during content creation. Check #4531. +4533 area-System.Net System.Net.Security doesn't support coreclr It targets .NETFramework 4.6 but not .NETPlatoform 5.4/netstandard 1.3 or dnxcore5.0 Myget feed ![myget](http://aoa.blob.core.windows.net/aspnet/myget.png) Libs installed ![installedlibs](http://aoa.blob.core.windows.net/aspnet/installedlibs.png) Error using ![errors](http://aoa.blob.core.windows.net/aspnet/errors.png) +4534 area-System.Net Fixed Issue #4480, Adding Addref for the handle & doing release in releaseHandle() Adding Addref for the parent handle & doing release before disposing in releaseHandle(). +4535 area-System.Runtime System.Runtime.Tests The tests contained in System.Runtime.Tests (probably as well as others) do not follow the testing naming and structure guidelines suggested by the corefx team. A good example for the suggested naming and structure guidelines are tests in the System.Net namespace. Examples include suffixing test classes with `Test` and naming test methods in the format `UnitOfWork_StateUnderTest_ExpectedBehaviour()`. Edit: I think that this is the book recommended by the corefx team for unit testing standards http://www.amazon.co.uk/The-Art-Unit-Testing-Examples/dp/1933988274 For example the `String` test class should be renamed to `StringTest`. A method named `TestContains` should be renamed to `Contains_String_MatchesExpected` and `TestContainsInvalid` to `Contains_InvalidInput_ThrowsException`. Why this could be good: - Matches suggested naming standards for .NET unit tests - Modernises the test suite - Consistency with other unit tests in the project - Easier to understand what tests do for debugging, test changes or future test additions - Reasons of perfectionism Why this could be undesirable: - Renaming existing tests or test classes could be a breaking change - Could break parity with the full .NET Framework - Could cause merge conflicts and extra hassle for the team If the good people of GitHub and the corefx team see this as desirable, then I shall submit a pull request to modernize this System.Runtime.Tests suite. Maybe in the future, other test namespaces could be updated too. +4537 area-Infrastructure Build should collect all errors and write a summary after build completed Example log contains a hidden error about 10 pages up in the command prompt. Developers shouldn't be required to scroll up or to search for keywords to find errors. These should be summarized at the end of the log. ``` [ . . . ] System.Globalization.Extensions -> s:\c2\bin\Windows_NT.AnyCPU.Debug\System.Globalization.Extensions\System.Globalization.Exte nsions.dll System.IO.FileSystem.Primitives -> s:\c2\bin\Windows_NT.AnyCPU.Debug\System.IO.FileSystem.Primitives\System.IO.FileSystem.Prim itives.dll ALINK : error AL1078: Error signing assembly -- Access is denied. [s:\c2\src\Microsoft.CSharp\src\Microsoft.CSharp.csproj] System.IO.Compression.ZipFile -> s:\c2\bin\Windows_NT.AnyCPU.Debug\System.IO.Compression.ZipFile\System.IO.Compression.ZipFile .dll System.IO.FileSystem.DriveInfo -> s:\c2\bin\Windows_NT.AnyCPU.Debug\System.IO.FileSystem.DriveInfo\System.IO.FileSystem.DriveI nfo.dll System.IO.Compression -> s:\c2\bin\Windows_NT.AnyCPU.Debug\System.IO.Compression\System.IO.Compression.dll System.Dynamic.Runtime -> s:\c2\bin\Windows_NT.AnyCPU.Debug\System.Dynamic.Runtime\System.Dynamic.Runtime.dll System.IO.FileSystem.Watcher -> s:\c2\bin\Windows_NT.AnyCPU.Debug\System.IO.FileSystem.Watcher\System.IO.FileSystem.Watcher.dl [ . . . ] === TEST EXECUTION SUMMARY === System.Runtime.Serialization.Xml.Tests Total: 127, Errors: 0, Failed: 0, Skipped: 0, Time: 1.594s 0 Warning(s) 1 Error(s) Time Elapsed 00:06:51.95 Build Exit Code = 1 ``` +4540 area-System.Net WinHttpHandlerFunctional.Tests.WinHttpHandlerTest.SendAsync_SlowServerRespondsAfterDefaultReceiveTimeout_ThrowsHttpRequestException (from (empty)) http://dotnet-ci.cloudapp.net/job/dotnet_corefx_outerloop_windows_win8_release/lastCompletedBuild/testReport/junit/System.Net.Http.WinHttpHandlerFunctional.Tests/WinHttpHandlerTest/SendAsync_SlowServerRespondsAfterDefaultReceiveTimeout_ThrowsHttpRequestException/ System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest.SendAsync_SlowServerRespondsAfterDefaultReceiveTimeout_ThrowsHttpRequestException (from (empty)) Failing for the past 1 build (Since Failed#786 ) Took 11 sec. Stacktrace MESSAGE: Assert.Throws() Failure\r\nExpected: typeof(System.AggregateException)\r\nActual: (No exception was thrown) +++++++++++++++++++ STACK TRACE: at System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest.SendAsync_SlowServerRespondsAfterDefaultReceiveTimeout_ThrowsHttpRequestException() in d:\j\workspace\dotnet_corefx_outerloop_windows_win8_release\src\System.Net.Http.WinHttpHandler\tests\FunctionalTests\WinHttpHandlerTest.cs:line 68 +4543 area-System.Reflection Some specific meta-programming (metadata access) questions... "Blame @davidfowl - he told me to put them here ;p 1. the big one; is there an indirect equivalent to `GetMethodBody()` / `GetILAsByteArray()` (plus locals, params, exception clauses etc)? Basically, is there an API that exposes the raw underlying IL? If the answer to this one is ""nope"", then the rest is moot... 2. `[UnverifiableCodeAttribute]` - no longer exists; is there a way to determine if a member is unverifiable? 3. can `volatile` fields be detected? Sigil used to do this via `GetRequiredCustomModifiers()` 4. `TypedReference` - am I right in thinking this simply doesn't exist as a concept? 5. any mechanism to resolve string literal and fields from metadata tokens? (akin to `ResolveString()` / `ResolveField()`) Context: I'm converting Sigil/Jil; most stuff is working, but some low-level meta-programming stuff is missing. It would be nice to reinstate the original optimizations to Jil (and an entire chunk of Sigil). " +4544 area-Meta Presence of project.json breaks existing csproj tooling (and makes unexpected demands) "I'm trying to transition multiple libraries to CoreCLR, moving to the DNX build tools. Since the folder name defines the assembly/package name (not editable), and since `**/*.cs` is the default inclusion list, the natural thing to want to do is to add a project.json _alongside_ the pre-existing csproj. This is particularly valuable where not all parties are yet working with DNX. Things go south very quickly, though, with errors from nuget package restore including errors about ""runtimes"", having to add explicit version numbers to project references, and complains about projects targeting multiple frameworks (which gets generated into `{projectt}.nuget.targets`). Short term, `del project.json /s`, `del project.lock.json /s` (and `del *.nuget.targes /s` if you have already failed once) makes everything work - so it is the mere presence of those files that makes the csproj unhappy. And obviously you need to not push those deletions back to source control! This means that the only way to transition to DNX tooling alongside csproj is: - have the `project.json` in the `{ProjectName}` folder - have the csproj in a _different_ folder - edit the csproj to pick the files up from outside the tree, ideally using `""../{ProjectName}/**/*.cs""` so no more edits will be needed - (note you can do the same from `project.json`, but if you do that the IDE doesn't show them, where-as this at least does) - accept the fact that adding new files via the csproj is a ""no-no"" It is a bit of a faff. Am I doing something insanely wrong here? I know csproj alongside project.json isn't the ideal end goal, but we live in the real world where most people aren't using pre-RC software ;p " +4553 area-System.Net Ping is internally posting back to the original SynchronizationContext Several issues to be fixed: 1. The Ping contract doesn't expose the EAP methods, but they're still in the implementation. 2. The SendPingAsync methods are implemented on top of that EAP implementation, resulting in unnecessary additional costs. 3. As a result of that wrapping, completion of the task requires posting back to the original synchronization context. +4554 area-Serialization Fix XmlSerializer writes empty element when serializing TimeSpan XmlSerializer writes empty element when serializing TimeSpan because this type's properties and fields are get only. This change is to handle TimeSpan type by reading and writing it in string with XmlConvert. Fixes #4405 cc: @SGuyGe @shmao @zhenlan +4561 area-Serialization Pre-generated serializers using sgen.exe Hello, We currently use pre-generated XMLSerializers generated by sgen.exe to boost the startup time, but these serializers are not available in CoreCLR. Is there any plan to include these serializers into CoreCLR? Or is there any modified version of sgen.exe which generates the CoreCLR compliant assembly? Thanks, Mehul. +4562 area-System.Net Support TLS client certs in CurlHandler (for libcurl+openssl) Make curlHandler support Client Certificates when the linked libcurl's ssl backend is compatible with openssl. Fix for #3151 +4563 area-System.Net Unknown error 10058 caused crash in Sockets tests on OS X http://dotnet-ci.cloudapp.net/job/dotnet_corefx_mac_debug_tst/128/console ``` Unhandled Exception: System.Net.Sockets.SocketException: Unknown error: 10058 11:40:37 at System.Net.Sockets.Socket.Receive(IList`1 buffers, SocketFlags socketFlags) 11:40:37 at System.Net.Sockets.Tests.SendReceive.<>c__DisplayClassa.b__9() 11:40:37 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 11:40:40 ./run-test.sh: line 130: 95631 Abort trap: 6 ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory -notrait Benchmark=true 11:40:40 One or more tests failed while running tests from 'System.Net.Sockets.APMServer.Tests'. Exit code 134. ``` +4564 area-System.Net terminate called recursively in System.Net.Requests tests on Linux in CI "Not much to go on, but the System.Net.Requests tests failed with the error ""terminate called recursively"" here: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/4406/console ``` 00:11:29 Discovered: System.Net.Requests.Tests 00:11:29 Discovered: System.Reflection.DispatchProxy.Tests 00:11:29 Starting: System.Net.Requests.Tests 00:11:29 Starting: System.Reflection.DispatchProxy.Tests 00:11:29 Discovered: System.IO.Compression.ZipFile.Tests 00:11:29 Discovered: InterProcessCommunication.Tests 00:11:29 Starting: System.IO.Compression.ZipFile.Tests 00:11:29 Discovered: System.Reflection.Emit.Lightweight.Tests 00:11:30 Starting: InterProcessCommunication.Tests 00:11:30 Starting: System.Reflection.Emit.Lightweight.Tests 00:11:30 Finished: System.Reflection.DispatchProxy.Tests 00:11:30 00:11:30 === TEST EXECUTION SUMMARY === 00:11:30 System.Reflection.DispatchProxy.Tests Total: 22, Errors: 0, Failed: 0, Skipped: 0, Time: 1.323s 00:11:31 terminate called recursively 00:11:31 Finished: System.Reflection.Emit.Lightweight.Tests 00:11:31 00:11:31 === TEST EXECUTION SUMMARY === 00:11:31 ./run-test.sh: line 130: 11518 Aborted (core dumped) ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory -notrait Benchmark=true 00:11:31 One or more tests failed while running tests from 'System.Net.Requests.Tests'. Exit code 134. ``` " +4571 area-System.Data Port over DbProviderFactories class I have seen no info about this with respect to .NET Core, and it's a crucial element for (micro) ORMs and data-access libraries. The .NET full API for DbProviderFactory contains usage of DataTable, so I recon that's not going to be ported anytime soon, but there's a bigger problem: most provider factories are defined in machine.config, which with 'bcl per app' isn't going to fly anymore. Have there been any design thoughts on this? Will .NET core have DbProviderFactory machinery so an ORM can obtain the factory from a central API (I couldn't find the API of .NET full in corefx at the moment), and create ADO.NET elements using that factory? Or is this in limbo just like DataTable (https://github.com/dotnet/corefx/issues/1039) +4574 area-System.Security Desktop Compat: GetECDsa*Key doesn't check the KeyUsage values In Desktop GetECDsaPublicKey and GetECDsaPrivateKey will return null when KeyAgreement is the only KeyUsage value specified. This logic didn't get ported into corefx when ECDSA support was added. +4577 area-System.Diagnostics X-plat Performance Counters Hi all, is there any way I can get machine-specs with .NET Core that are cross-platform friendly? Like mono's PerformanceCounters? Specifically I'm trying to get the physical RAM available for a machine in .NET Core. I notice mono has a native function `mono_determine_physical_ram_size` that is cross-platform. Are there any plans to incorporate something similar with .NET Core PerformanceCounters? Thanks :) +4579 area-System.Data Unable to load DLL 'api-ms-win-core-localization-obsolete-l1-2-0.dll' "This issue occurs in System.Data.SqlClient on Linux. Set the database collation to Chinese_PRC_CI_AS in SQL Server. The SQL Server will reponse ""Codepage: 2052"" to SqlClient. See the following tabular tata stream. This will cause System.Data.SqlClient to load api-ms-win-core-localization-obsolete-l1-2-0.dll. Changing database collation from Chinese_PRC_CI_AS to SQL_Latin1_General_CP1_CI_AS will fix. Error messages: ``` DllNotFoundException: Unable to load DLL 'api-ms-win-core-localization-obsolete-l1-2-0.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) ``` ``` System.DllNotFoundException: Unable to load DLL 'api-ms-win-core-localization-obsolete-l1-2-0.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at System.Data.LocaleInterop.LCIDToLocaleName(UInt32 Locale, StringBuilder lpName, Int32 cchName, Int32 dwFlags) at System.Data.LocaleInterop.LcidToLocaleNameInternal(Int32 lcid) at System.Data.LocaleInterop.GetDetailsInternal(Int32 lcid) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Data.SqlClient.TdsParser.GetCodePage(SqlCollation collation, TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.TryProcessEnvChange(Int32 tokenLength, TdsParserStateObject stateObj, SqlEnvChange[]& sqlEnvChange) ``` " +4581 area-System.Security Add DiffieHellman Dear all, It looks like we got ECDH in corefx now, but what about the old DH? Are these two interchangeable or any specific reason the old DH is not implemented. It is done in mono. I can try to port it here if it is allowed to merge. ( I mean if there is no policy saying we must NOT have DH anymore, things like that.) Best, Dong +4585 area-System.Net Port more System.Net.WebSockets.Client tests Add subprotocol tests Add unknown/incorrect websocket endpoint tests +4586 area-System.Data SQL Server connection fails via web app, but succeeds in all other tools "I'm running ASP.NET 5, RC1 and am trying to connect to a MSSQL server instance on the local network. There are no firewalls between here and there. _If I try the same code in the same environment under MVC 5, everything works fine._ I am able to connect to the server successfully with the VS2015 Server Explorer as well as SQL Management Studio. When I attempt to connect to the DB with the following connection string (which I got from the VS2015 Server Explorer), it fails with the given error: string cs = @""Data Source=DBSERVER\INSTANCE1;Initial Catalog=MyDb;User ID=ASPNET-Db-User;Password=thepassword""; The code is: System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(cs); con.Open(); The exception is: An exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.SqlClient.dll but was not handled in user code Additional information: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) The stack is: at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Isengard.Startup.ConfigureServices(IServiceCollection services) in C:\TFS\Isengard\src\Isengard\Startup.cs:line 46 " +4587 area-System.Globalization String.EndsWith on CoreCLR \ Linux does not work correctly for line feeds "Here's the repro example: ``` C# using System; public class Program { public static void Main (string[] args) { var text = ""Hello\r\n""; Console.WriteLine(text.EndsWith(""\n"")); Console.WriteLine(text.LastIndexOf('\n') == text.Length - 1); } } ``` **Expected**: True True **Actual**: False True I used DNX v1.0.0-rc2-16216 to run this application. The version of `System.Console` I used was `4.0.0-beta-23516`. Running it with DNX Mono or running this on Windows produces the right results. " +4588 area-System.Net Enable Unix domain sockets to be used via System.Net.Sockets +4590 area-System.Globalization "Support locales ending with ""utf8"" (as compared to ""UTF-8"")" "Something changed on my CentOS machines that has switch my locale from ""en_US.UTF-8"" to ""en_US.utf8"". As a result I can no longer run .NET Core apps (see stack trace below). I don't know what caused this change but it seems like we should support both formats. Unhandled Exception: System.ArgumentException: 'utf8' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. Parameter name: name at System.Globalization.EncodingTable.GetCodePageFromName(String name) at System.Text.Encoding.GetEncoding(String name) at System.ConsolePal.GetConsoleEncoding() at System.Console.CreateOutputWriter(Stream outputStream) at System.Console.EnsureInitialized[T](T& field, Func`1 initializer) at System.Console.WriteLine(String format, Object arg0) at Xunit.ConsoleClient.Program.Main(String[] args) " +4593 area-System.Data RC1- A call to SSPI failed, see inner exception I am getting a similar issue to this too, @natemcmaster mentioned my issue was similar to this, I have managed to create a repro https://github.com/hahmed/TeamKudu my app is being developed on osx for dnx rc1. I cleaned out the cache too dnu clear-http-cache which did not resolve this issue for me. Hope you can help... ``` fail: Microsoft.Data.Entity.Query.Internal.QueryCompiler[1] An exception occurred in the database while iterating the results of a query. System.Data.SqlClient.SqlException: A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - A call to SSPI failed, see inner exception.) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean& marsCapable) at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.Data.Entity.Storage.RelationalConnection.Open() at Microsoft.Data.Entity.Query.Internal.QueryingEnumerable.Enumerator.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source) at lambda_method(Closure , QueryContext ) at Microsoft.Data.Entity.Query.Internal.QueryCompiler.<>c__DisplayClass18_1`1.b__1(QueryContext qc) ClientConnectionId:197d6bf2-dc99-4209-a2f7-e4b8c8aad6e0 fail: Microsoft.AspNet.Diagnostics.DeveloperExceptionPageMiddleware[0] An unhandled exception has occurred while executing the request System.IO.FileNotFoundException: Could not load the specified file. File name: 'EntityFramework.Core.resources' at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName) at Microsoft.Data.Entity.Query.Internal.QueryCompiler.<>c__DisplayClass18_1`1.b__1(QueryContext qc) at System.Linq.Queryable.SingleOrDefault[TSource](IQueryable`1 source, Expression`1 predicate) at Team.Controllers.HomeController.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Mvc.Controllers.ControllerActionExecutor.d__8`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Mvc.Controllers.ControllerActionInvoker.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Mvc.Controllers.FilterActionInvoker.d__53.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNet.Mvc.Controllers.FilterActionInvoker.d__44.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Mvc.Infrastructure.MvcRouteHandler.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at Microsoft.AspNet.Mvc.Routing.InnerAttributeRoute.d__10.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at Microsoft.AspNet.Routing.RouteCollection.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Builder.RouterMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNet.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Diagnostics.Entity.MigrationsEndPointMiddleware.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Diagnostics.Entity.DatabaseErrorPageMiddleware.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNet.Diagnostics.Entity.DatabaseErrorPageMiddleware.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Diagnostics.DeveloperExceptionPageMiddleware.d__7.MoveNext() info: Microsoft.AspNet.Hosting.Internal.HostingEngine[2] Request finished in 0.1901ms 500 text/html; charset=utf-8 ``` +4595 area-Serialization Issue with serializing ReadOnlyCollection using DCS in NetCoreForCoreClr Error: ``` Exception thrown: 'System.InvalidOperationException' in mscorlib.ni.dll Additional information: The API 'System.Collections.ObjectModel.ReadOnlyCollection`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]._syncRoot' cannot be used on the current platform. See http://go.microsoft.com/fwlink/?LinkId=248273 for more information. ``` Call stack: ``` mscorlib.ni.dll!System.Reflection.Emit.DynamicILGenerator.GetTokenFor(System.Reflection.RuntimeFieldInfo runtimeField, System.RuntimeType rtType) Unknown mscorlib.ni.dll!System.Reflection.Emit.DynamicILGenerator.Emit(System.Reflection.Emit.OpCode opcode, System.Reflection.FieldInfo field) Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.CodeGenerator.LoadMember(System.Reflection.MemberInfo memberInfo) Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.XmlFormatWriterGenerator.CriticalHelper.LoadMemberValue(System.Runtime.Serialization.DataMember member) Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.XmlFormatWriterGenerator.CriticalHelper.WriteMembers(System.Runtime.Serialization.ClassDataContract classContract, System.Reflection.Emit.LocalBuilder extensionDataLocal, System.Runtime.Serialization.ClassDataContract derivedMostClassContract) Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.XmlFormatWriterGenerator.CriticalHelper.WriteClass(System.Runtime.Serialization.ClassDataContract classContract) Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.XmlFormatWriterGenerator.CriticalHelper.GenerateClassWriter(System.Runtime.Serialization.ClassDataContract classContract) Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.ClassDataContract.XmlFormatWriterDelegate.get() Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.ClassDataContract.WriteXmlValue(System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.Runtime.Serialization.XmlObjectSerializerWriteContext context) Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle declaredTypeHandle) Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(System.Runtime.Serialization.DataContract dataContract, System.Runtime.Serialization.XmlWriterDelegator xmlWriter, object obj, System.RuntimeTypeHandle declaredTypeHandle) Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.DataContractSerializer.InternalWriteObjectContent(System.Runtime.Serialization.XmlWriterDelegator writer, object graph, System.Runtime.Serialization.DataContractResolver dataContractResolver) Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.DataContractSerializer.InternalWriteObject(System.Runtime.Serialization.XmlWriterDelegator writer, object graph, System.Runtime.Serialization.DataContractResolver dataContractResolver) Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(System.Runtime.Serialization.XmlWriterDelegator writer, object graph, System.Runtime.Serialization.DataContractResolver dataContractResolver) Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.XmlObjectSerializer.WriteObject(System.Xml.XmlDictionaryWriter writer, object graph) Unknown System.Private.DataContractSerialization.dll!System.Runtime.Serialization.XmlObjectSerializer.WriteObject(System.IO.Stream stream, object graph) Unknown > App1.exe!App1.App.TestReadOnlyCollection() Line 120 C# App1.exe!App1.App.OnLaunched(Windows.ApplicationModel.Activation.LaunchActivatedEventArgs e) Line 85 C# ``` +4596 area-System.IO "Add ""static"" BinaryReader-like APIs on Stream" In many scenarios, there is a need to read binary data from a stream without allocating BinaryReader. See System.Resources.Reader as an example. We should add such non-allocating static reader APIs, e.g. int ReadInt32(Stream stream). +4597 area-System.Net CurlHandler empty header values not being sent "You can use the following piece of code to test this: ``` var client = new HttpClient(); client.DefaultRequestHeaders.Add(""No-value"", """"); client.DefaultRequestHeaders.Add(""With-value"", ""value""); await client.GetAsync(""http://www.google.com""); ``` Then on linux, the header No-value is not sent. This breaks things such as the AWS SDK on linux due to the request's signature not matching, plus, it is different to the behaviour on windows " +4604 area-System.Net Ensure CurlHandler sends no-value headers "By default libcurl drops headers with empty values, as it uses an empty value as a sentinel to mean ""remove a previously added header with this key name."" If you actually want a header with an empty value, it needs to have a semicolon appended to the key name. cc: @vijaykota, @kapilash, @davidsh Fixes #4597 " +4605 area-System.IO A bunch of tests recently started failing on OS X These have been consistently failing for the last few days: ``` System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.ReadOnlyFile(access: CopyOnWrite) System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.ReadOnlyFile(access: ReadWrite) System.IO.Tests.FileInfo_AppendText.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_ReadWriteAllLines_Encoded.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_AppendAllLines.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_OpenText.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_ReadWriteAllLines.WriteToReadOnlyFile_UnauthException System.IO.Tests.FileInfo_CreateText.WriteToReadOnlyFile_UnauthException System.IO.Tests.FileInfo_OpenText.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_ReadLines_Encoded.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_ReadWriteAllText_Encoded.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_ReadWriteAllText.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_ReadLines.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_CreateText.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_AppendAllText_Encoded.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_AppendAllText.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_AppendText.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_ReadWriteAllBytes.WriteToReadOnlyFile_UnauthException System.IO.Tests.File_AppendAllLines_Encoded.WriteToReadOnlyFile_UnauthException ``` These are all tests that expected an UnauthorizedAccessException, and they're no longer getting one: ``` 11:29:49 Expected: typeof(System.UnauthorizedAccessException) 11:29:49 Actual: (No exception was thrown) ``` +4606 area-System.Net Re-enable System.Net.Security tests on Linux and OSX The tests were disabled in PR #4328 since there were multiple crashes in CI builds. They should be renabled after fixing foll. issues: #4317 #4301 Also regressions since then (eg. PR #4483) need to be resolved +4608 area-Meta Consistent ToString() implementations At the moment some classes override `ToString()` and some don't. So it means that if you call `ToString()` on an object for debugging/logging purposes you may get something useful or you may just get the default which is the fully qualified `Type` name. To see how widespread this is, I wrote a [simple app using Cecil](https://gist.github.com/mattwarren/33edc6d07ea087542ccb) (please let me know if [my logic is wrong](https://gist.github.com/mattwarren/33edc6d07ea087542ccb#file-clrtostringoverrides-cs-L91-L107)). Here's the lists of types that don't override ToString(): - [Value types](https://gist.github.com/mattwarren/1dc37901be49a18a7204) and a [shorter summary](https://gist.github.com/mattwarren/afba4b325f02e66db419) - [Reference types](https://gist.github.com/mattwarren/3bcecf5d2b9810c48b41) and a [shorter summary](https://gist.github.com/mattwarren/79cc5669e1e4ebae6a46) Is there any desire to be more consistent across types or is it not something that people worry about? Is it expected that `[DebuggerDisplayAttribute]` should be used instead? For instance in Java you can call ToString() on an object and you always gets something meaningful back. This even extends to collections, it calls ToString() on each item in the collection and appends those into a string, which might be going a bit too far. **Useful links**: - [Object.ToString Method ()](https://msdn.microsoft.com/en-us/library/system.object.tostring.aspx) - [Framework Design Guidelines: Overriding Object.ToString()](http://blogs.msdn.com/b/brada/archive/2009/02/02/framework-design-guidelines-overriding-object-tostring.aspx) - [Why override ToString()? Use DebuggerDisplayAttribute instead](http://blogs.msdn.com/b/soultech/archive/2011/04/05/whyoverridetostring_2d00_use_2d00_debuggerdisplayattribute_2d00_instead.aspx) +4609 area-System.Runtime FileNotFoundException issue "I can not compile a new lib I started with new VS 2015 Update 1 RC. ``` The type ""FileNotFoundException"" is in ""System.IO, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" and ""System.Runtime, Version=4.0.21.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" available. ``` It's only underlined in the corefx code view. Any ideas? " +4610 area-System.Numerics BigInteger helper methods like IsProbablePrime(), GenerateRandom(), etc. Dear all, Shall we implement those which exist in JAVA and Mono? If there is no objection from design point of view or other concerns then I will make a PR soon. (BTW, in general is it ok to copy code from Mono into Corefx? What about reference the JAVA source?) +4613 area-System.Net Remove EAP implementation from Ping When System.Net.NetworkInformation.Ping had async functionality added to it originally, it was done with the Event-based Async Pattern (EAP). Then when Task-based Async Pattern (TAP) was added to it, the Task-based implementation was done in a quick manner on top of the EAP implementation. And now that Ping is being exposed in corefx, it only has the TAP implementation. There are several ramifications of this and issues to be addressed: - The Task-based implementation is suffering from some of the behaviors of the EAP implementation, e.g. completing the Task requires posting back to the original synchronization context, which both is inefficient and can cause problems for a caller that blocks waiting for the result. - There's lots of unnecessary code now in Ping. - There are members being exposed as public and protected that aren't part of the contract. - When a host name is provided, an extra worker is being queued and then synchronously blocked waiting for the results of the DNS lookup. This PR fixes all of that. It also adds some more tests. cc: @mellinoe, @CIPop, @davidsh Fixes #4553 +4622 area-System.Data Investigate why InnerExceptions for SNI SqlExceptions only have top line in stack trace +4624 area-System.Net Add some validation/sanity tests for usage of the Unix ping command line tool I wrote a basic validation test for our usage of the ping command line utility in System.Net.Utilities. I am validating that we only send a single ping, and that we send the correct number of bytes in our packet. This will give us some basic assurance that, at the very least, the machine's ping utility is usable, supports the options we are using, and its output can be parsed as we expect. I also noticed this issue after writing the test: - It appears that ping6 on OSX does not allow you to specify a 0-length packet size for whatever reason, even though you can do so with ping (IPv4 version of the utility), as well as with ping6 on Ubuntu. Because of that, I just send a packet size of 1 instead. cc; @CIPop, @stephentoub +4628 area-System.Net System.Net.Sockets.Tests.ConnectExTest.Success failure on Linux "http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/4500/testReport/ Hit a failure in this test: [System.Net.Sockets.Tests.ConnectExTest.Success](http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_debug_tst_prtest/4500/testReport/System.Net.Sockets.Tests/ConnectExTest/Success/) Exception in question: `System.Net.Sockets.SocketException : Unknown error 10048` Seems to indicate a ""Address In Use"" error, so perhaps this is a timing issue from multiple tests trying to open the same socket, or something of the sort. I didn't see any other issues mentioning this so it may be very rare. " +4631 area-System.Net Socket.Select() method doesn't work correctly in linux. "I use linux mint mate 17.2 which is ubuntu and debian based. I cannot connect to Ngpsql database from Linux client. But I can connect from Windows client. Because: After the following line is called =>Socket.Select(null, write, error, perIpTimeout); In Linux: The list write doesn't have any elements. As a result it enters the if (!write.Any()) block and creates ""Timeout exception"" there. In Windows: The list write has the element. It works. Here is a sample code to produce it. It is a console application that works on CoreClr. ``` c# // Program.cs using System; // using Npgsql; using System.Net; using System.Net.Sockets; using System.Collections.Generic; using System.Linq; namespace Sample { public class Program { public void Main() { Console.WriteLine(""App started..""); string Host = ""192.168.1.72""; int Port = 5432; int perIpTimeout = -1; var ips = Dns.GetHostAddressesAsync(Host).Result; var ep = new IPEndPoint(ips[0], Port); var socket = new Socket(ep.AddressFamily, SocketType.Stream, ProtocolType.Tcp) { Blocking = false }; try { try { socket.Connect(ep); } catch (SocketException e) { if (e.SocketErrorCode != SocketError.WouldBlock) { throw; } } var write = new List { socket }; var error = new List { socket }; Socket.Select(null, write, error, perIpTimeout); var errorCode = (int)socket.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Error); if (errorCode != 0) { throw new SocketException((int)socket.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Error)); } if (!write.Any()) { // When it is Linux, it will enter this block here! Console.WriteLine( $""Timeout after {new TimeSpan(perIpTimeout * 10).TotalSeconds} seconds when connecting to {ips[0]}""); try { socket.Dispose(); } catch { // ignored } // if i == 0 Console.WriteLine(""i==0 exception""); throw new TimeoutException(); // continue; } socket.Blocking = true; return; } catch (TimeoutException) { throw; } catch { try { socket.Dispose(); } catch { // ignored } Console.WriteLine(""Failed to connect to "" + ips[0]); // if (i == 0) Console.WriteLine(""i==0 exception 2""); throw; } } } // TODO: Remove. Will be fixed in the next release of EF. public class Startup { public void Configure() { } } } ``` " +4632 area-System.Runtime StringBuilder creates unnecessary strings with Append methods Append that takes a non-string value like int, double, etc, converts the value to a string then appends that string. StringBuilder should write the value's chars to the buffer without creating unnecessary strings. +4633 area-System.Net Cookies Added tests , especially for CookieContainer/Parser/Tokenizer Removed unused usings and simplified names Removed unecessary code +4634 area-System.Net Undo dependency on System.Net.Http #4562 introduced a temporary csproj dependency between System.Net.Requests.Tests and System.Net.Http.csproj as a work-around to a backward-incompatible change in System.Net.Http.Native library. This commit removes the dependency. +4635 area-System.Net Enable ChannelBinding Test for CurlHandler Enabling Channel Binding test for curlhandler. +4637 area-System.Threading System.Threading.Thread - Unable to run as foreground thread. Hi there, For `System.Threading.Thread : 4.0.0-beta-23516`, there appears to be a problem having the thread execute as a foreground thread on DNX (`1.0.0-beta6-12120`). The property `IsBackground` does not appear to have any bearing on how this thread is treated, with it seemingly behaving like a background thread with `IsBackground` reporting false. The end result is the caller must explicitly join on the thread to prevent a process exiting, which is not typical behavior. I am mindful that this may be related to DNX, or potentially functionality under review for corefx with consideration to varying platforms. MSDN: CLR Thread.IsBackground Property https://msdn.microsoft.com/en-us/library/system.threading.thread.isbackground%28v=vs.110%29.aspx Below, the expected behavior would be to have the process stay running until this thread exits. ``` csharp using System; namespace example { public class Program { public static void Main(string[] args) { // 4.0.0-beta-23516 var t = new System.Threading.Thread(() => { var running = true; while(running) { // we do not want this thread to exit. } }); t..Start(); // t.Join(); // this shouldn't be necessary for IsBackground = false } } } ``` Many Thanks +4638 area-System.Xml Wrong encoding when using XmlTextWriter Hi, does anyone know how to do the following with .NET core? ``` using (XmlTextWriter sw = new XmlTextWriter(this.FilePath, new UTF8Encoding(false))) { sw.Formatting = Formatting.Indented; sw.Indentation = 1; sw.IndentChar = '\t'; this.XmlDocument.WriteTo(sw); } ``` Kind regards +4641 area-Serialization Add support for surrogate for XmlSerializer +4642 area-Serialization Add support for surrogate in DataContractJsonSerializer +4646 area-System.Data Request for clarification on System.Data DbDataRecord / DbDataReader "`DbDataReader` has a `GetEnumerator()` API which is intended to return an `IEnumerable` that exposes `IDataRecord` (often: `DbDataRecord`) - this is often implemented via `DbEnumerator`. On core-clr at the current time, `DbDataReader` has an `abstract IEnumerator GetEnumerator()` method that must be overridden. However, without `DbDataRecord` or `DbEnumerator`, it is unclear how this is meant to be done in any way. I've checked the `SqlDataReader` code, and it currently refers to a local copy of a publicly declared `DbEnumerator` (et al), but these public declarations do not seem to be accessible on the currently published packages. So; can someone clarify this? a: is this `abstract` method an accidental inclusion that should have been dropped in the core-clr API? or b: is this meant to be there, but the required APIs to do it are in the wrong place and not yet available? Assuming ""b"", is there a timescale to get this into place so we can verify again the proposed API? " +4647 area-System.Security Missing CFB cipher mode Currently only three modes are supported by .NET Core, (CBC = 1, CTS = 5, ECB = 2). Is there any plan to add CFB support as it has been required by some network protocols (such as SNMP v3)? This mode is available on .NET Framework though. From where does the limitation of three modes come? The comment in `CipherMode` does not reveal enough background information. https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.Primitives/src/System/Security/Cryptography/CipherMode.cs +4650 area-Infrastructure ./build.sh doesn't work on CentOS "I set up a CentOS 7.1.1503 machine with the following steps: 1. Install a new VM using ""Gen 1"" in Hyper-V and using an .iso from http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1503-01.iso - I had this mounted as a DVD drive - When installing the OS, make sure you don't use the default ""minimal"" because you don't even get networking enabled. I used the ""developer"" option, which took a really long time. 2. Run software updates after installing the OS 3. sudo yum install -y libuuid-devel uuid-devel userspace-rcu-de bzip2 libicu-devel unzip openssl-devel libcurl-devel git clang libunwind-devel libxml2-devel python-devel libedit-devel libstdc++-static wget swig gcc cmake 4. Install Mono and Reference Assemblies: 1. sudo rpm --import ""http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"" 2. sudo yum-config-manager --add-repo http://download.mono-project.com/repo/centos/ 3. sudo yum upgrade -y 4. sudo yum install -y mono-complete referenceassemblies-pcl 5. add `fs.file-max = 100000` to /etc/sysctl.conf, and then run `sudo sysctl -p`. 6. Git clone corefx 7. `./build.sh` And during the build, I got errors like the following: ``` System.Private.Uri.CoreCLR -> /home/eerhardt/git/corefx/bin/Linux.AnyCPU.Debug/System.Private.Uri.CoreCLR/System.Private.Uri.dll EXEC : dlopen failed to open the libcoreclr.so with error libunwind-x86_64.so.8: cannot open shared object file: No such file or directory [/home/eerhardt/git/corefx/src/System.Runtime/src/System.Runtime.CoreCLR.csproj] /home/eerhardt/git/corefx/packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00121/lib/partialfacades.targets(180,5): error MSB3073: The command """"/home/eerhardt/git/corefx/bin/obj/Linux.AnyCPU.Debug/ToolRuntime/corerun"" ""/home/eerhardt/git/corefx/packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00121/lib/GenFacades.exe"" -partialFacadeAssemblyPath:""/home/eerhardt/git/corefx/bin/obj/Linux.AnyCPU.Debug/System.Runtime.CoreCLR/PreGenFacades/System.Runtime.dll"" -contracts:""/home/eerhardt/git/corefx/packages/System.Runtime/4.0.21-rc2-23523/ref/dotnet5.4/System.Runtime.dll"" -seeds:""/home/eerhardt/git/corefx/packages/Microsoft.DotNet.CoreCLR/1.0.5-prerelease/lib/dnxcore50/mscorlib.dll;/home/eerhardt/git/corefx/bin/Linux.AnyCPU.Debug/System.Private.Uri.CoreCLR/System.Private.Uri.dll"" -facadePath:""/home/eerhardt/git/corefx/bin/obj/Linux.AnyCPU.Debug/System.Runtime.CoreCLR/"" -producePdb:false"" exited with code 255. [/home/eerhardt/git/corefx/src/System.Runtime/src/System.Runtime.CoreCLR.csproj] EXEC : dlopen failed to open the libcoreclr.so with error libunwind-x86_64.so.8: cannot open shared object file: No such file or directory [/home/eerhardt/git/corefx/src/System.Diagnostics.Debug/src/System.Diagnostics.Debug.csproj] /home/eerhardt/git/corefx/packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00121/lib/partialfacades.targets(180,5): error MSB3073: The command """"/home/eerhardt/git/corefx/bin/obj/Linux.AnyCPU.Debug/ToolRuntime/corerun"" ""/home/eerhardt/git/corefx/packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00121/lib/GenFacades.exe"" -partialFacadeAssemblyPath:""/home/eerhardt/git/corefx/bin/obj/Linux.AnyCPU.Debug/System.Diagnostics.Debug/PreGenFacades/System.Diagnostics.Debug.dll"" -contracts:""/home/eerhardt/git/corefx/packages/System.Diagnostics.Debug/4.0.11-rc2-23523/ref/dotnet5.4/System.Diagnostics.Debug.dll"" -seeds:""/home/eerhardt/git/corefx/packages/Microsoft.DotNet.CoreCLR/1.0.5-prerelease/lib/dnxcore50/mscorlib.dll"" -facadePath:""/home/eerhardt/git/corefx/bin/obj/Linux.AnyCPU.Debug/System.Diagnostics.Debug/"" -producePdb:false"" exited with code 255. [/home/eerhardt/git/corefx/src/System.Diagnostics.Debug/src/System.Diagnostics.Debug.csproj] System.ComponentModel.Annotations -> /home/eerhardt/git/corefx/bin/Linux.AnyCPU.Debug/System.ComponentModel.Annotations/System.ComponentModel.Annotations.dll ``` Also, after those build errors, none of the tests pass during the build. This is because the CoreCLR fails to initialize when running `./corerun xunit.console.netcore.exe` with the same error: ``` [eerhardt@localhost dnxcore50]$ pwd /home/eerhardt/git/corefx/bin/tests/Linux.AnyCPU.Debug/System.Globalization.Tests/dnxcore50 [eerhardt@localhost dnxcore50]$ ./corerun xunit.console.netcore.exe dlopen failed to open the libcoreclr.so with error libunwind-x86_64.so.8: cannot open shared object file: No such file or directory ``` " +4651 area-Serialization XmlDictionaryReaderQuotas.MaxDepth \ MaxStringContentLength don't seem to be honored in dnxcore50 \ coreclr "Minimal repro from a failing test in Mvc: ``` C# using System; using System.IO; using System.Runtime.Serialization; using System.Text; using System.Xml; namespace ConsoleApp4 { public class Program { public static void Main(string[] args) { var input = ""10""; var content = new MemoryStream(Encoding.UTF8.GetBytes(input)); var quotas = new XmlDictionaryReaderQuotas { MaxDepth = 1, }; using (var reader = XmlDictionaryReader.CreateTextReader(content, Encoding.UTF8, quotas, onClose: null)) { var serializer = new DataContractSerializer(typeof(TestLevelTwo), new DataContractSerializerSettings()); // This throws a SerializerException in dnx451 but succeeds just fine in CoreCLR. var deserializedObject = (TestLevelTwo)serializer.ReadObject(reader); Console.WriteLine(deserializedObject.TestOne.SampleInt); } } } [DataContract(Name = ""TestLevelOne"", Namespace = """")] public class TestLevelOne { [DataMember] public int SampleInt { get; set; } } [DataContract(Name = ""TestLevelTwo"", Namespace = """")] public class TestLevelTwo { [DataMember] public TestLevelOne TestOne { get; set; } } } ``` We're seeing a similar issue with MaxStringContentLength. I'm using build 23509 of `System.Runtime.Serialization.Xml` " +4652 area-System.Net Fix a bug in Select() on *nix. The translations between PAL <-> platform file descriptor sets were inverted, causing incorrect behavior in the case that a Select() completed with any signalled file descriptors. +4653 area-Infrastructure "Add ""Windows Server 2008 R2 Enterprise (Server Core Installation)"" CI / Rolling Build" We're currently testing NT 6.1+ versions of full client and server windows. We need to also add an NT 6.1 Server Core installation to Jenkins outer loop. https://en.wikipedia.org/wiki/Server_Core https://msdn.microsoft.com/en-us/library/dd184075.aspx /cc @Chrisboh @mmitche @markwilkie @leecow +4654 area-Infrastructure Change minimum required Mac OS X version to 10.11.1 (El Capitan) We should be upgrading our Mac OS X test bed to 10.11.1. https://en.wikipedia.org/wiki/OS_X_El_Capitan /cc @Chrisboh @mmitche @markwilkie @leecow +4656 area-Infrastructure Add Debian 8.2 (Jessie) CI / Rolling Build We should have a DebianStable Jenkins outerloop build & test. The current stable version is 8.2 (Jessie) https://hub.docker.com/_/debian/. We'll need to upgrade this about once per year when newer Debian stable releases are available. https://wiki.debian.org/DebianReleases /cc @mmitche @leecow @dleeapho @ellismg @chcosta +4658 area-Serialization Add serialization performance tests for XmlSerializer and DCJS +4659 area-System.Data System.Data.Common from a PCL project Posting on behalf of a customer report via nuget.org > I would really like to be able to reference System.Data.Common from a PCL project - however the >current NuGet package doesn't support PCL. > Would you consider adding support for PCL? > Otherwise, I am planning on implementing it in a separate repository - I'm looking at using Type >Forwarding based on approach here: http://stackoverflow.com/questions/21357321/handling-missing->types-in-pcl-with-real-types-existing-on-some-of-the-platforms > Kind Regards Darrell /cc @saurabh500 @YoungGah +4661 area-System.Net Remove Secur32 dependencies from System.Net.Security Currently, I've replaced the `Secur32` string to point at the OneCore supported `sspicli.dll`. We need to properly replace the name and move Interop files under the `\sspicli` folder. +4663 area-System.Net CurlHandler empty header values not being sent in the event of a redirect occuring Thanks for your quick turnaround on https://github.com/dotnet/corefx/issues/4597. There is still an issue which seems related (although, I'm not personally affected by this one): The example I gave (http://www.google.com) actually causes a 302 redirect in Australia, and I happened to notice that the header is missing from the subsequent request on linux. This is different behaviour to windows Linux: ``` GET http://www.google.com/ HTTP/1.1 Host: www.google.com Accept: */* Accept-Encoding: gzip,deflate Connection: Keep-Alive No-value: With-value: value ``` ``` GET http://www.google.com.au/?gfe_rd=cr&ei=btBTVp6vCsTu8we45Kv4Dg HTTP/1.1 Host: www.google.com.au Accept: */* Accept-Encoding: gzip,deflate Connection: Keep-Alive With-value: value ``` Windows: ``` GET http://www.google.com/ HTTP/1.1 Accept-Encoding: gzip, deflate No-value: With-value: value Connection: Keep-Alive Host: www.google.com ``` ``` GET http://www.google.com.au/?gfe_rd=cr&ei=pdBTVqyuG8Tu8we45Kv4Dg HTTP/1.1 Accept-Encoding: gzip, deflate No-value: With-value: value Connection: Keep-Alive Host: www.google.com.au ``` +4665 area-System.Net New Socket select tests failing on OS X, CentOS, openSUSE CentOS: http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_centos71_debug_tst/157/console ``` 20:09:40 terminate called after throwing an instance of 'PAL_SEHException' 20:09:40 ./run-test.sh: line 130: 59310 Aborted ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory -notrait Benchmark=true 20:09:40 One or more tests failed while running tests from 'System.Net.Sockets.APMServer.Tests'. Exit code 134. 20:09:41 System.Net.Sockets.Tests.SelectAndPollTests.SelectWrite_Multiple_Mixed [FAIL] 20:09:41 Assert.Equal() Failure 20:09:41 Expected: 1 20:09:41 Actual: 0 20:09:41 terminate called after throwing an instance of 'PAL_SEHException' 20:09:41 ./run-test.sh: line 130: 59318 Aborted ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory -notrait Benchmark=true 20:09:41 One or more tests failed while running tests from 'System.Net.Sockets.AsyncServer.Tests'. Exit code 134. ``` openSUSE http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_opensuse132_debug_tst/188/console ``` 20:15:57 terminate called after throwing an instance of 'PAL_SEHException' 20:15:57 ./run-test.sh: line 130: 2689 Aborted ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory -notrait Benchmark=true 20:15:57 One or more tests failed while running tests from 'System.Net.Sockets.APMServer.Tests'. Exit code 134. 20:15:57 System.Net.Sockets.Tests.SelectAndPollTests.SelectWrite_Multiple_Mixed [FAIL] 20:15:57 System.Net.Sockets.SocketException : Unknown error -1 20:15:57 terminate called after throwing an instance of 'PAL_SEHException' 20:15:57 ./run-test.sh: line 130: 2688 Aborted ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory -notrait Benchmark=true 20:15:57 One or more tests failed while running tests from 'System.Net.Sockets.AsyncServer.Tests'. Exit code 134. ``` +4667 area-System.Globalization NumberFormatInfoNumberGroupSizes.TestNumberGroupSizesLocale failing on OS X "``` 20:31:33 System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.TestNumberGroupSizesLocale(locale: ""ur-IN"") [FAIL] 20:31:33 Assert.Equal() Failure 20:31:33 Expected: Int32[] [3] 20:31:33 Actual: Int32[] [3, 2] 20:31:33 Stack Trace: 20:31:33 at System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.TestNumberGroupSizesLocale(String locale) ``` " +4668 area-Serialization XML parsing fails in dnx451 but passes in dnxcore50 "I'm the maintainer of a library that provides C# bindings for the MusicBrainz API in DNX (it's a fork of a previous project). It's open source an available there: https://github.com/ribandelle/MusicBrainz.DNX While I was porting and using the library I noticed that some of the XML responses would crash when the application was running from the dnx451 profile, but not when using the dnxcore50 profile. An example of an XML response that crashes is this one: http://musicbrainz.org/ws/2/artist/?query=Metallica But other responses don't crash at all, like this one: http://musicbrainz.org/ws/2/artist/?query=Lofofora According to the W3C XML Validator, both responses are valid XML (just a warning that there's no doctype): http://validator.w3.org/check?uri=http%3A%2F%2Fmusicbrainz.org%2Fws%2F2%2Fartist%2F%3Fquery%3DMetallica http://validator.w3.org/check?uri=http%3A%2F%2Fmusicbrainz.org%2Fws%2F2%2Fartist%2F%3Fquery%3DLofofora The error I get happens here: ``` public static T Find(string query, int limit, int offset, string part) { var serializer = new XmlSerializer(typeof(T)); try { var o = Get(""http://musicbrainz.org/ws/2/"" + part + ""/?query="" + query + LimitOffsetToString(limit, offset)); { return (T)serializer.Deserialize(o.CreateReader()); } } catch (Exception ex) { return default(T); } } ``` When the Deserialize part of the code is reached, the catch is triggered and the exception says `There is an error in XML document (0, 0)`. The stacktrace is the following: `at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader) at MusicBrainz.Help.Find[T](String query, Int32 limit, Int32 offset, String part) in D:\GitHub\MusicBrainz.DNX\MusicBrainz.DNX\Help.cs:line 111` I have created a small console program that illustrates that issue. It's available here: https://github.com/acastaner/xmlparsing.git (make sure to use the ""debug"" branch). I haven't bundled the library in that program, you'll need to also clone the MusicBrainz.DNX repo. Also make sure to clone the debug branch as I have added an ""ex"" Exception object in the catch so you can see the details of the exception. If you run that console program with dnx451 it WILL crash when trying to parse the Metallica response, but it will NOT crash if you run it with a dnxcore50 profile. Note that I'm using Windows 10 build 10586 but I've also reproduced the issue on Linux (Ubuntu and CentOS). It _seems_ to me that only responses with a larger body will crash. Metallica triggers the crash, but so does ""Queen"" for instance. Artists with a shorter content response seem to never crash. Just a thought, maybe it's unrelated. " +4669 area-System.ComponentModel RequireAttribute ignored "I have a class with an integer property decorated with [Required] attribute. When I use it within an ASP.NET 5 application MVC controller as a parameter in a Post method accepting json, RequiredAttribute seemed to be ignored when property is not contained in JSON. Model deserialized in controller method contains UserId with default property value 0 for an Int32 and is therefore valid. If the RequiredAttribute was not ignored, model should not be deserialized and should be null, right? I am using ASP.NET 5 RC1 Here is my code: JSON: ``` { ""Token"" : ""abcd"" } ``` Model: ``` [DataContract] public class MyClass { [Required] [DataMember] public int UserId { get; set; } [DataMember] public string Token { get; set; } } ``` MVC Controller: ``` [HttpPost] public async Task MyMethod([FromBody][Required] MyClass model) { if (!ModelState.IsValid || model == null) throw new HttpResponseException(400); await ... } ``` Thanks for your help Alain " +4670 area-System.Reflection MemberTypes not found, yet the immediate window can find the type. "I'm not sure if this is a runtime mismatch of something Here is my method: ``` private static object ValueFor(object obj, MemberInfo member) { object value = null; if (member != null) { switch (member.MemberType) { case MemberTypes.Field: value = ((FieldInfo)member).GetValue(obj); break; case MemberTypes.Property: value = ((PropertyInfo)member).GetValue(obj, null); break; case MemberTypes.Method: break; default: throw new System.ArgumentOutOfRangeException(); } } return value; } ``` And then in my immediate window: ``` ?member.MemberType Property ?member.MemberType.GetType() {Name = ""MemberTypes"" FullName = ""System.Reflection.MemberTypes""} Assembly: {mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e} ``` My dependencies in project.json ``` { ""dependencies"": { ""EntityFramework.MicrosoftSqlServer"": ""(7.0.0-rc1-final,]"", ""EntityFramework.MicrosoftSqlServer.Design"": ""(7.0.0-rc1-final,]"", ""EntityFramework.Commands"": ""(7.0.0-rc1-final,]"", ""System.Reflection"": ""4.1.0-beta-*"", ""Microsoft.Extensions.PlatformAbstractions"": ""(1.0.0-rc1-final,]"" }, ... ``` So there looks to be a version mismatch of System.Reflection. What's up with that? I'm debugging in Visual Studio 2015. " +4671 area-System.Reflection SignatureDecoder.DecodeMethodSignature throws `BadImageFormatException` when decoding method with `int, __arglist` parameters "A BadImageFormatException is thrown when using System.Reflection.Metadata to get method signature for `public static void ArglistMethod(int i, __arglist)`. This behaviour worked in ""1.1.0-alpha-00008"". ## Version **Branch**: `dev/metadata` **Affected Package/Version**: ""System.Reflection.Metadata"": ""1.2.0-alpha-00016"" ## Repro Steps 1. Create library with the following code below. 2. Try to decode the method with: `SignatureDecoder.DecodeMethodSignature(memberReference.Signature, this)` ``` csharp public class TestClass { public static void ArglistMethod(int i, __arglist) { } public static void Main(string[] args) { ArglistMethod(5, __arglist(1, 2, 3)); } } ``` ## Expected ""M:TestClass.ArglistMethod(System.Int32,__arglist)"" ## Actual ``` System.BadImageFormatException occurred HResult=-2147024885 Message=Format of the executable (.exe) or library (.dll) is invalid. Source=System.Reflection.Metadata StackTrace: at System.Reflection.Metadata.Decoding.SignatureDecoder.DecodeType[TType](BlobReader& blobReader, Int32 typeCode, ISignatureTypeProvider`1 provider) at System.Reflection.Metadata.Decoding.SignatureDecoder.DecodeType[TType](BlobReader& blobReader, ISignatureTypeProvider`1 provider) at System.Reflection.Metadata.Decoding.SignatureDecoder.DecodeMethodSignature[TType](BlobReader& blobReader, ISignatureTypeProvider`1 provider) at System.Reflection.Metadata.Decoding.SignatureDecoder.DecodeMethodSignature[TType](BlobHandle handle, ISignatureTypeProvider`1 provider) at Microsoft.Fx.Portability.Analyzer.MemberMetadataInfoTypeProvider.GetMemberRefInfo(MemberReference memberReference) in E:\dotnet-apiport\src\Microsoft.Fx.Portability.MetadataReader\MemberMetadataInfoTypeProvider.cs:line 43 InnerException: ``` " +4672 area-Microsoft.CSharp DLR does not respect InternalsVisibleTo for anonymous types "In full .NET, anonymous types are accessible via DLR across assembly boundaries if an `InternalsVisibleTo` attribute is present. This behavior is not the same in CoreCLR. Instead, a `RuntimeBinderException` is thrown. ``` Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'object' does not contain a definition for 'xxxx' ``` Consider the following scenario: In assembly ConsoleApp: ``` c# public class Program { public static void Main() { var list = new List(); list.AddGreeting(""Hello world""); dynamic item = list[0]; Console.WriteLine(item.Greeting); // throws in CoreCLR. Prints ""Hello world"" in full .NET } } ``` In assembly GreetingLibrary: ``` c# [assembly: InternalsVisibleTo(""ConsoleApp"")] public static class ListExtension { public static void AddGreeting(this List source, string greeting) { source.Add(new { Greeting = greeting }); } } ``` In .NET 4.5.1, this console application will print ""Hello world"" but in CoreCLR this application throws an exception. Full repro project: [test-dlr-bug-master.zip](https://github.com/dotnet/corefx/files/402776/test-dlr-bug-master.zip) " +4673 area-System.Runtime Add: BitConverter.SingleToInt32Bits and Int32BitsToSingle ### Migrated from https://github.com/dotnet/coreclr/issues/832 To match the existing `DoubleToInt64Bits` and `Int64BitsToDouble`. This is important for binary serialization tools to get hold of the underlying value without requiring unsafe themselves, which may not be accepted. Example usage: IO / sockets tools, raw protocol tools, network libraries, serialization tools. ## Existing 64-bit API ``` public static long BitConverter.DoubleToInt64Bits(double value); public static double BitConverter.Int64BitsToDouble(long value); ``` However, no 32-bit api exists ## Proposed 32-bit API To mimic existing API: ``` public static int BitConverter.SingleToInt32Bits(float value); public static float BitConverter.Int32BitsToSingle(int value); ``` ## Rationale and Usage Exactly the same as pre-existing 64-bit API: - caller can populate an `int` (perhaps via shift ops and network access / stream, perhaps via raw memory access), and force it to a `float`, for example during deserialization - caller can consume a `float` and force it to an `int` (perhaps for use on network access / stream via shift, perhaps via raw memory access), for example during serialization ## Details To follow same rules and conventions as the existing 64-bit api, which is to say: uses straight unsafe cast - does not explicitly consider machines where integer and floating-point endianness are different (integer big-endian, floating-point little-endian), but is fine on both big-endian and little-endian machines - in reality the endianness matches. To emphasise: there is nothing in here that is different from the expectations of the existing 64-bit api. It would be inconsistent to have the 32-bit API operate with different expectations to the 64-bit api, and it would be a breaking change to alter the expectations of the existing 64-bit api. ## Pull Request A pull request is available with the proposed implementation (comments etc based on the existing 64-bit API): https://github.com/dotnet/coreclr/pull/833 ## Issues None known; not a breaking change, and no overload resolution issue since uniquely named static non-extension methods. ## Discussion Point Possible doubt over relevancy of comments and assertion. This is addressed separately in https://github.com/dotnet/coreclr/issues/834 +4676 area-System.Data SqlDataReader throws invalid operation exception `System.Data.SqlDataReader` throws when it attempts to dispose Using System.Data.SqlClient 4.0.0-rc2-23525 on OSX and Linux. ``` System.InvalidOperationException : Internal connection fatal error. Stack Trace: at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.SqlDataReader.TryCloseInternal(Boolean closeReader) at System.Data.SqlClient.SqlDataReader.Close() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader() ``` Reproduces consistently when running [SqlServerDatabaseModelFactoryTest](https://github.com/aspnet/EntityFramework/blob/48e365d3433eef53b210a3f132676f1f1a1f1c4c/test/EntityFramework.MicrosoftSqlServer.Design.FunctionalTests/SqlServerDatabaseModelFactoryTest.cs#L16) from Entity Framework against SQL 2014. +4682 area-System.ComponentModel [DataAnnotations] resx localization not work on RC1 "### environment - Windows 10 Enterprize N + japanese lang pack - Visual Studio 2015 Enterprize (ja-jp localized) ### repro steps 1. create new ASP.NET Web Application project 2. add Resource.resx 3. define `Password` resource 4. edit `ViewModels/Account/LoginViewModel.cs` ``` [Required] [DataType(DataType.Password)] [Display( ResourceType = typeof(Resource), Name =""Password"")] public string Password { get; set; } ``` run application and go to login page ### expected result Login form field label shown as resource defined text. ### actual result ``` An unhandled exception occurred while processing the request. InvalidOperationException: ローカライズに失敗したため、プロパティ 'Name' を取得できません。型 'WebApplication1.Resource' がパブリックでないか、'Password' という名前のパブリックで静的な文字列プロパティが含まれていません。 場所 System.ComponentModel.DataAnnotations.LocalizableString.<>c__DisplayClass0.b__3() ``` error was reports WebApplication1.Resource is not `public` or 'Password' is not `public static`. in generated Resources.Designer.cs ``` internal class Resource { snip internal static string Password { get { return ResourceManager.GetString(""Password"", resourceCulture); } } } ``` - Resource class generated with `internal` - Password property generated with `internal static` " +4686 area-System.Net SelectRead_Multiple_Success failing in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_mac_debug_tst/140/console ``` 04:51:52 System.Net.Sockets.Tests.SelectAndPollTests.SelectRead_Multiple_Success [FAIL] 04:51:52 Assert.Equal() Failure 04:51:52 Expected: 2 04:51:52 Actual: 1 04:51:52 Stack Trace: 04:51:52 at System.Net.Sockets.Tests.SelectAndPollTests.SelectRead_Multiple_Success() ``` +4690 area-System.Collections Add bool TryGetValue(TKey, out TItem) method to a KeyedCollection<,> class "Suggested TryGetValue method allows to check a collection for an ""item"" with specific ""key"" and get item if it exists in the collection. Similar that occur in the [Dictionary<,>](https://msdn.microsoft.com/en-us/library/bb299639.aspx). ``` cs public bool TryGetValue(TKey key, out TItem item) { if (key == null) { throw new ArgumentNullException(""key""); } if (_dict != null) { return _dict.TryGetValue(key, out item); } foreach (TItem itemInItems in Items) { TKey keyInItems = GetKeyForItem(itemInItems); if (keyInItems != null && _comparer.Equals(key, keyInItems)) { item = itemInItems; return true; } } item = default(TItem); return false; } ``` If some existing derived type ""MyKeyedCollection<,>"" already contains the same method, only warning occurred in compilation: > warning CS0108: 'MyKeyedCollection. TryGetValue(TKey, out TItem)' hides inherited member 'KeyedCollection. TryGetValue(TKey, out TItem)'. Use the new keyword if hiding was intended. " +4691 area-System.Collections Redundant checks in KeyedCollection<,> classes "In methods [Contains](https://github.com/dotnet/corefx/blob/49b8925bcf2bd1bd742915fe2f673b153dc74942/src/System.ObjectModel/src/System/Collections/ObjectModel/KeyedCollection.cs#L91) and [Remove](https://github.com/dotnet/corefx/blob/49b8925bcf2bd1bd742915fe2f673b153dc74942/src/System.ObjectModel/src/System/Collections/ObjectModel/KeyedCollection.cs#L131) we have a checks ``` cs if (key == null) { throw new ArgumentNullException(""key""); } // … if (key != null) // <-- this ""if"" is redundant because we checked key == null above { // … } ``` Should this be fixed? " +4693 area-System.ComponentModel Proposal: CompareAttribute should apply to fields, too Currently the CompareAttribute can't be used with fields. Particularly with ViewModels, where property logic commonly isn't applicable, fields are a valid alternative, if not even a better choice to use. So I propose to extend all DataAnnotation attributes to be applicable to properties and fields as well. +4694 area-System.Linq Expression.Label with null LabelTarget has wrong parameter name in exception. We would expect the following: ``` C# try { Expression.Label(default(LabelTarget)); } catch(ArgumentNullException ane) { Console.WriteLine(ane.ParamName); } ``` To output `target` as that is the name of the parameter that is incorrectly null. Instead it outputs `label`. +4695 area-System.Collections Indexer for SortedSet ``` var set = new SortedSet(); set.Add(5.6); set.Add(2.1); set.Add(3.4); var x = set[1]; Assert.AreEqual(3.4, x); CS0021 Cannot apply indexing with [] to an expression of type 'SortedSet' ``` It would be useful if SortedSet had an indexer for random access. Would this be possible? Reading the code I see SortedSet is implemented using a red-black tree. Also useful would be an IndexOf method. https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/SortedSet.cs +4696 area-System.Collections Stable sort [As documented](https://msdn.microsoft.com/en-us/library/w56d4y5z%28v=vs.110%29.aspx), `List.Sort` does an unstable sort: > This implementation performs an unstable sort; that is, if two elements are equal, their order might not be preserved. In contrast, a stable sort preserves the order of elements that are equal. It would be useful to offer a stable sort method for when the stronger behaviour is required. The same applies to Array.Sort 1. C++ offers both sort and [stable_sort](http://www.cplusplus.com/reference/algorithm/stable_sort/) 2. Golang offers both Sort and Stable https://golang.org/pkg/sort/#Stable 3. Python's sort is stable https://docs.python.org/3/library/stdtypes.html#list.sort +4697 area-System.Collections Binary search for IList and IReadOnlyList > arguably the most important algorithm of all: binary search We have [List.BinarySearch](https://msdn.microsoft.com/en-us/library/6sh2ey19%28v=vs.110%29.aspx) and [Array.Search](https://msdn.microsoft.com/en-us/library/system.array.binarysearch%28v=vs.110%29.aspx) for searching sorted lists and arrays. But what about other collections that implement `IList` or `IReadOnlyList`? It would be useful to have similar functions (extension methods) to search them. Binary search is a fundamental algorithm, so it's helpful to have a fast reliable well-documented implementation in the standard library. Otherwise developers waste time reinventing the wheel. A workaround is calling `.ToList()` or `.ToArray()` and then searching the new object, but that's not ideal because it copies the collection. +4698 area-System.Collections Strengthen binary search to return index of first matching element "[As documented](https://msdn.microsoft.com/en-us/library/w4e7fxsh%28v=vs.110%29.aspx) the behaviour of List.BinarySearch and Array.BinarySearch is undefined when the sorted list contains two elements with the same value: > If the List contains more than one element with the same value, the method returns only one of the occurrences, and it might return any one of the occurrences, not necessarily the first one. It would be useful to strengthen this to return the first matching element—for some problems this detail is important. This could be done without cost—the complexity would remain O(log n). The binary search methods in C++, Golang and Python all return the first matching element 1. http://www.cplusplus.com/reference/algorithm/lower_bound/ ""Returns an iterator pointing to the first element which ... "" 2. https://golang.org/pkg/sort/#Search ""find and return the smallest index ... "" 3. https://docs.python.org/3/library/bisect.html#bisect.bisect_left ""the insertion point will be before (to the left of) any existing entries ... "" " +4699 area-System.Net GetAllNetworkInterfaces throws FileNotFoundException on OS X "`System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()` throws an error when OS X (v 10.10.5) has no internet access (i.e after turning off Wi-Fi, removing the network cable etc.). .NET Version Manager: Version 1.0.0-rc2-15545 ``` Active Version Runtime Architecture OperatingSystem Alias ------ ------- ------- ------------ --------------- ----- 1.0.0-rc1-final clr x64 win 1.0.0-rc1-final clr x86 win * 1.0.0-rc1-final coreclr x64 darwin default 1.0.0-rc1-final coreclr x64 linux 1.0.0-rc1-final coreclr x64 win 1.0.0-rc1-final coreclr x86 win 1.0.0-rc1-final mono linux/osx ``` project.json ``` { ""version"": ""1.0.0-*"", ""compilationOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""Microsoft.NETCore.Runtime"": ""1.0.1-beta-*"", ""System.IO"": ""4.0.10-beta-*"", ""System.Console"": ""4.0.0-beta-*"", ""System.Runtime"": ""4.0.21-beta-*"", ""System.Net.NetworkInformation"": ""4.1.0-beta-23516"" }, ""frameworks"": { ""dnxcore50"": { } } } ``` Exception ``` Unhandled Exception: System.IO.FileNotFoundException: Could not find file '/etc/resolv.conf'. at Interop.CheckIo(Int64 result, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at System.IO.UnixFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.UnixFileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at System.Net.NetworkInformation.UnixIPInterfaceProperties.GetDnsSuffix() at System.Net.NetworkInformation.UnixIPInterfaceProperties..ctor(UnixNetworkInterface uni) at System.Net.NetworkInformation.OsxIpInterfaceProperties..ctor(OsxNetworkInterface oni, Int32 mtu) at System.Net.NetworkInformation.OsxNetworkInterface..ctor(String name) at System.Net.NetworkInformation.OsxNetworkInterface.GetOrCreate(Dictionary`2 interfaces, String name) at System.Net.NetworkInformation.OsxNetworkInterface.<>c__DisplayClass3_0.b__2(String name, LinkLayerAddressInfo* llAddr) at Interop.Sys.EnumerateInterfaceAddresses(IPv4AddressDiscoveredCallback ipv4Found, IPv6AddressDiscoveredCallback ipv6Found, LinkLayerAddressDiscoveredCallback linkLayerFound) at System.Net.NetworkInformation.OsxNetworkInterface.GetOsxNetworkInterfaces() at System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces() at ConsoleApplication.Program.Main(String[] args) ``` " +4707 area-System.Net Fix corruption when FD_SETSIZE larger than expected The expected FD_SETSIZE for Select is currently hardcoded to be 1024. While common, this is not required, and many servers will have this limit increased. With the current hardcoded value, if a file descriptor comes in beyond the limit, we end up corrupting memory. This commit fixes it by making the limit in managed code dynamic, supplied via a call to the native shim to return the actual value of FD_SETSIZE so that the managed and native expectations match. cc: @pgavlin, @sergiy-k +4708 area-System.Threading Add ValueTask to corefx [ValueTask](https://github.com/dotnet/corefxlab/blob/master/src/System.Threading.Tasks.Channels/src/System/Threading/Tasks/ValueTask.cs) being developed for System.Threading.Tasks.Channels in corefxlab is very valuable on its own and should be included independently of Channels (and earlier). > `ReadAsync` is defined to return a `ValueTask`, a new struct type included in this library. `ValueTask` is a discriminated union of a `T` and a `Task`, making it allocation-free for `ReadAsync` to synchronously return a `T` value it has available (in contrast to using `Task.FromResult`, which needs to allocate a `Task` instance). `ValueTask` is awaitable, so most consumption of instances will be indistinguishable from with a `Task`. If a `Task` is needed, one can be retrieved using `ValueTask`'s `AsTask()` method, which will either return the `Task` it stores internally or will return an instance created from the `T` it stores. +4717 area-System.Reflection Fix decoding of varags method references We were peeking at the sentinel between required and variable arguments, but not consuming it. Fix #4671 FYI, @tmat, @conniey -- I'm going to merge this to the dev branch if CI succeeds. I have a bunch of more refactoring+tests for the signature decoder pending and it will all show up soon for full review in a PR to master. +4719 area-System.Reflection Merge master to dev/metadata +4720 area-System.Diagnostics Escaping quotes - portable way How do you escape quotes the portable way when using Process with UseShellExecute and Arguments? EDIT: UseShellExecute: ``` System.PlatformNotSupportedException: UseShellExecute must always be set to false. at System.Diagnostics.ProcessStartInfo.set_UseShellExecute(Boolean value) ``` Process could perhaps have an option of taking string[] to match Main and be able roundtrip +4721 area-System.Net Add ALPN support to System.Net.Security.SslStream API "## Rationale In order to initiate HTTP/2 connection over TLS, application protocol must be negotiated (References: [rfc7540 section-3.3](https://tools.ietf.org/html/rfc7540#section-3.3),[rfc7301](https://tools.ietf.org/html/rfc7301)). ALPN support [is available](https://technet.microsoft.com/en-us/library/hh831771.aspx) in SChannel for Windows Server 2012 R2, Windows 8.1 or later. Support in SslStream is a popular feature request: See [here](https://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6264363-add-support-for-alpn-to-system-net-security-sslstr) and #2928. Client and server applications need a way to specify their supported application protocol list and be able to query the negotiated protocol. ## Proposed API change ``` C# public partial class SslStream : AuthenticatedStream { ... public virtual void AuthenticateAsClient(string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation, string[] applicationProtocols); public virtual System.Threading.Tasks.Task AuthenticateAsClientAsync(string targetHost, System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation, string[] applicationProtocols); public virtual void AuthenticateAsServer(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation, string[] applicationProtocols); public virtual System.Threading.Tasks.Task AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation, string[] applicationProtocols); public virtual string NegotiatedApplicationProtocol; } ``` (New method overloads of `AuthenticateAsClient`/`AuthenticateAsServer` (+their async versions) are being added having new parameter `string[] applicationProtocols`. New property `string NegotiatedApplicationProtocol` is added as well). Full view of SslStream API containing the proposed changes is in [PR](https://github.com/jubarat/corefx/blob/sslstream_alpn/src/System.Net.Security/ref/System.Net.Security.cs). ## Example usage Client: ``` C# SslStream sslStream = new SslStream(serverStream); string[] applicationProtocols = new[] { ""h2"", ""http/1.1"" }; sslStream.AuthenticateAsClient(certificate.Subject, new X509CertificateCollection(), SslProtocols.Tls12, false, applicationProtocols); string protocol = sslStream.NegotiatedApplicationProtocol; ``` Server: ``` C# SslStream sslStream = new SslStream(serverStream) string[] applicationProtocols = new[] { ""h2"", ""http/1.1"" }; sslStream.AuthenticateAsServer(certificate, false, SslProtocols.Tls12, false, applicationProtocols); string protocol = sslStream.NegotiatedApplicationProtocol; ``` ## Details Client advertises list of protocols in descending order of preference. After the TLS handshake is complete the client queries the TLS stack for negotiated application protocol. Similar way server side application provides its own list of supported protocols (again in descending order of preference). The TLS stack makes the application protocol match internally. After the handshake completes the server application queries the negotiated application protocol. Note: This behavior is supported by SChannel and is compatible with OpenSSL ALPN API. Unlike OpenSSL the SChannel does not expose possibility of querying client's advertised list of protocols therefore this API proposal does not contain server side protocol selecting based on callback. `AuthenticateAsClient`/`AuthenticateAsServer` methods - null value passed to `applicationProtocols` parameter means the caller is not requesting application protocol negotiation. This is also the behavior of existing method overloads. - If both client and server specified their application protocol list and there was no match then `AuthenticateAsServer` throws `AuthenticationException` with inner exception having OS native error code. At this point the TLS handshake is aborted so the client gets `IOException` due to server application closing the transport connection. - An alternative approach how to pass application protocol list instead of `AuthenticateAs…` methods could be as parameter of SslStream constructor. - In following cases `ArgumentException` is thrown: - Empty protocol list. - Any element of protocol list is null. - Any element has more than 255 characters. - The full protocol list serialized size is more than 32767 bytes. `NegotiatedApplicationProtocol` property - If successfully negotiated then it returns the negotiated application protocol string. - If peer did not advertise ALPN TLS extension or `applicationProtocols` was null then this property returns null. - Throws `InvalidOperationException` if calling before `AuthenticateAsClient` or `AuthenticateAsServer` completes. Examples of API behavior are in [functional tests](https://github.com/jubarat/corefx/blob/sslstream_alpn/src/System.Net.Security/tests/FunctionalTests/ApplicationProtocolNegotiationTest.cs) of PR. ## Pull request #4685 " +4722 area-System.Linq Public Surface of System.Linq.Expressions.Expression exposing too much? In the code base, the methods [`DebugView`](https://github.com/dotnet/corefx/blob/master/src/System.Linq.Expressions/src/System/Linq/Expressions/Expression.cs#L222), [`ReturnReadOnly`](https://github.com/dotnet/corefx/blob/master/src/System.Linq.Expressions/src/System/Linq/Expressions/Expression.cs#L245), [`ReturnReadOnly`](https://github.com/dotnet/corefx/blob/master/src/System.Linq.Expressions/src/System/Linq/Expressions/Expression.cs#L263), [`ReturnObject`](https://github.com/dotnet/corefx/blob/master/src/System.Linq.Expressions/src/System/Linq/Expressions/Expression.cs#L276), [`RequiresCanRead`](https://github.com/dotnet/corefx/blob/master/src/System.Linq.Expressions/src/System/Linq/Expressions/Expression.cs#L281), [`RequiresCanRead` (another overload)](https://github.com/dotnet/corefx/blob/master/src/System.Linq.Expressions/src/System/Linq/Expressions/Expression.cs#L286), are all public. They are not documented, nor public in any of the other .Net versions. I can't see any trace of a decision to make them public here, and the blame record suggests they were imported as such. With the possible exception of `DebugView`, they don't seem particularly useful to outside code or if they are they should perhaps be defined elsewhere. Also, `RequiresCanWrite` remains private and should surely be public if `RequiresCanRead` is. This looks like it was introduced by accident in a refactoring of some of these methods into `ExpressionUtils` that happened in between the release of .NET 4.6 and the code being brought into dotnet/corefx (or in a different branch, etc.). If I'm correct in deducing that their access is a mistake, removing the access to them would be a breaking change, but by the same token should perhaps be done as soon as possible before more dependencies on them appear. +4724 area-Serialization [.Net Native] XmlTextAttribute on a primitive type property in struct seems not to be supported "This problem only occur when the c# code was compiled by .Net Native tool. If there's a property in a class. This property is a struct. In this struct, there's a primitive type property, such as string. If there's an XmlTextAttribute on this property, the xml serialization and deserialization will go wrong. Here is the code: It is a piece of code from a UWP App. ``` [XmlRoot(""库"")] public class LibraryPropertyFile { [XmlElement(""库名称"")] public FieldWithDateTime Name { get; set; } } public struct FieldWithDateTime//struct, not class. { //Here: [XmlText] public T Field { get; set; } [XmlAttribute(""修改日期"")] public DateTime DateTime { get; set; } } ``` //Serialize: ``` StorageFile libraryFile = ...; XmlSerializerNamespaces xmlSerializerNamespaces = new XmlSerializerNamespaces(); xmlSerializerNamespaces.Add(string.Empty, string.Empty); XmlWriterSettings xmlWriterSettings = new XmlWriterSettings { Encoding = new UTF8Encoding(false) }; Stream libraryFileStream = await libraryFile.OpenStreamForWriteAsync(); XmlSerializer serializer = new XmlSerializer(typeof(LibraryPropertyFile)); XmlWriter xmlWriter = XmlWriter.Create(libraryFileStream, xmlWriterSettings); serializer.Serialize(xmlWriter, libraryPropertyFile, xmlSerializerNamespaces); xmlWriter.Flush(); xmlWriter.Dispose(); libraryFileStream.Flush(); libraryFileStream.Dispose(); ``` //Deserialize: ``` StorageFile libraryFile = ...; Stream libraryFileStream = await libraryFile.OpenStreamForReadAsync(); XmlSerializer libraryXmlSerializer = new XmlSerializer(typeof(LibraryPropertyFile)); LibraryPropertyFile libraryPropertyFile = libraryXmlSerializer.Deserialize(libraryFileStream) as LibraryPropertyFile; libraryFileStream.Dispose(); ``` Pay attention! In the Debug mode, the code is run on CLR, it works perfectly. But in the release mode, the code is compiled into native code. When it is going to Serialize or Deserialize, it crashs. But I can modify my code: ``` public class FieldWithDateTime//change from struct to class ``` And then, Compile it, it works perfectly. So, if FieldWithDateTime is a class, the code can work both in Debug or Release mode, but if FieldWithDateTime is a struct, the code can only work in Debug mode. My develop platform: Windows 10 1511, Visual Studio 2015. " +4727 area-System.IO FileVersionInfo.GetVersionInfo(string fileName) fails on Unix with ArgumentException Calling FileVersionInfo.GetVersionInfo(string) on Unix (passing valid input) results in the following exception: ``` System.ArgumentException: Argument must be between 0 and 3. Parameter name: fieldCount at System.Version.ToString(Int32 fieldCount) at System.Diagnostics.FileVersionInfo.LoadManagedAssemblyMetadata(MetadataReader metadataReader) at System.Diagnostics.FileVersionInfo.TryLoadManagedAssemblyMetadata() at System.Diagnostics.FileVersionInfo.GetVersionInfo(String fileName) ``` The error seems to be in [FileVersionInfo.Unix.cs@131](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.FileVersionInfo/src/System/Diagnostics/FileVersionInfo.Unix.cs#L131) which explicitly calls Version.ToString with an argument '4' despite the exception message saying that the argument should fall in the range [0-3]. +4728 area-System.Net Switch Socket.Select to use poll rather than select in the implementation +4732 area-System.Net Incorporate API review feedback for System.Net.* APIs All networking APIs in .NET Core (System.Net, System.Net.Sockets, etc.) were recently reviewed by the API Review board. The detailed notes are here: https://github.com/dotnet/apireviews/pull/21 Filing this issue to track the following proposed changes based on API review feedback: - [x] In `WebException` in the System.Net.Requests contract: For the constructors, change parameter name `inner` to `innerException` to match that in .NET Framework - Done #4740 - [x] In `WinHttpHandler.ServerCertificateValidationCallback`: Document/add comments for the meaning of each parameter - Documentation bug referred to MSDN doc team. Update - Added this here: https://msdn.microsoft.com/en-US/library/mt345545(VS.105).aspx - [x] In types `NegotiateStream` and `SslStream`: Remove synchronous versions of `AuthenticateAsServer` and `AuthenticateAsClient` methods - Done #4868 - [x] In `System.Net.Utilities` contract: Consider if we want it to be a bag of multiple utilities OR more scoped down to just ICMP-related utilities. If scoped down, consider renaming the contract - Done #5232 renamed the contract to `System.Net.Ping` - [x] Cancellation support: Add CancellationToken overloads to appropriate async methods in all contracts – e.g. `System.Net.Sockets`, `System.Net.Security` - Deferred #5211 - [x] In `enum SocketFlags`: Remove value `MaxIOVectorLength`, but document that slot 16 should not be used since it will cause conflict with .NET Framework - Done #4888 - [x] In `enum SocketOptionName`: Add ReuseUnicastPort support. This is a new option added to .NET Framework 4.6 to improve server scalability and is currently missing from .NET Core. - Done #4888 - [x] In structs `SocketReceiveFromResult` and `SocketReceiveMessageFromResult`: Investigate if the individual fields be properties. - Investigated. Final decision is to leave it as-is with public fields. +4733 area-System.Net System.Net.Sockets.Socket.DoConnect() doesn't work as expected. "Here is an other application which makes the stack trace more clear: ``` C# try { try { socket.Connect(ep); } catch (SocketException e) { => The socket exception is catched here! Console.WriteLine(""Excpetion Message="" + e.Message); Console.WriteLine(""Excpetion Stack="" + e.StackTrace); Console.WriteLine(""Socket Error Code="" + e.SocketErrorCode.ToString()); if (e.SocketErrorCode != SocketError.WouldBlock) { throw; } } var write = new List { socket }; var error = new List { socket }; Socket.Select(null, write, error, perIpTimeout); var errorCode = (int)socket.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Error); if (errorCode != 0) { Console.WriteLine(""error code is not zero!""); throw new SocketException((int)socket.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Error)); } if (!write.Any()) { Console.WriteLine( $""Timeout after {new TimeSpan(perIpTimeout * 10).TotalSeconds} seconds when connecting to {ips[0]}""); try { socket.Dispose(); } catch { // ignored } // if i == 0 Console.WriteLine(""i==0 exception""); throw new TimeoutException(); // continue; } socket.Blocking = true; return; } catch (TimeoutException) { throw; } catch { try { socket.Dispose(); } catch { // ignored } Console.WriteLine(""Failed to connect to "" + ips[0]); // if (i == 0) Console.WriteLine(""i==0 exception 2""); throw; } ``` Here is my output from the above program: Excpetion Message=Unknown error 10035 Excpetion Stack= at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) at SirenTek.Program.Main(String[] args) Socket Error Code=WouldBlock Timeout after -1E-06 seconds when connecting to 192.168.1.72 i==0 exception System.TimeoutException: The operation has timed out. Socket.DoConnect method creates an exception. _This makes us unable to use npgsql with core50 runtime._ " +4734 area-Serialization Remove dependency from System.Xml.XmlSerializer on System.Runtime.WindowsRuntime 4.0.10 Fix #1761 cc: @ericstj @SGuyGe @shmao +4736 area-Serialization Fix DCS serialization tests compilation failures Fix compilations failures due to recent update of surrogate API in this PR #4735 cc: @stephentoub @SGuyGe +4737 area-System.Security Update libssl minimum required version for Mac OS X "We're currently using a deprecated and unsupported version of OpenSSL on Mac (0.9.8). We need to upgrade our minimum required version to a supported version 1.0.1/1.0.2. This issue is tracking this upgrade; including updating the build server definitions; updating dev instructions; and updating the Mac end-user binary installer (TBD either requiring homebrew again or possibly using another provided libssl installer). http://lists.apple.com/archives/macnetworkprog/2015/Jun/msg00025.html > Subject: Re: OpenSSL -> Secure Transport for libevent2 > From: ""Quinn \""The Eskimo!\"""" email@hidden > Date: Mon, 15 Jun 2015 12:28:41 -0700 > On 15 Jun 2015, at 11:11, John Pannell email@hidden wrote: > > Apple stopped shipping OpenSSL with OS X some time ago, citing lack of a stable API from version to version. > > It's a bit more subtle than that: > > o Apple deprecated its OpenSSL shared libraries a while back (with OS X 10.7). That's because OpenSSL doesn't offer release-to-release binary compatibility, so we can't update the shared libraries to the latest OpenSSL without breaking all the existing clients. > > o At the same time we marked the OpenSSL headers in the OS X SDK as deprecated so you'd get deprecation warnings if you build with a deployment target of 10.7 or later. > > o With the latest OS X SDK we've removed the headers entirely, making it much harder to use the long-since-deprecated shared libraries. > > o We recommend that developers who need OpenSSL build their own copy of it and include that copy in their app. Alternatively you can use native OS X APIs, like Secure Transport. > > Share and Enjoy > > Quinn ""The Eskimo!"" http://www.apple.com/developer/ > Apple Developer Relations, Developer Technical Support, Core OS/Hardware Related issue https://github.com/dotnet/corefx/issues/3924 " +4738 area-System.IO FileSystemWatcher.Dispose hangs on OSX It seems that the FileSystemWatcher doesn't trigger on OSX. This makes [dnx-watch](https://github.com/aspnet/dnx-watch) unusable on CoreCLR. Side note: it works on Mono. I will provide a simple repro soon but I wanted to open the bug so we can start tracking this because `dnx-watch` will need to become `dotnet-watch` for RC2 and we want it to work on OSX. For now you can repro by running `dnx-watch` cc @glennc +4739 area-System.Net Building System.Net.Security/tests/UnitTests clean causing project.lock.json to update Recent changes in GitHub are now causing the System.Net.Security/tests/UnitTests to update the project.lock.json file everything I build the enlistment clean. It causes my git working directory to show a the file as modified. +4740 area-System.Net Fix WebException constructor parameters to match Desktop naming As per the System.Net.\* API review dotnet/apireviews#21 fixing the parameter name used for the inner exception in the WebException constructor overloads to match the name used in .NET Framework (Desktop). Part of #4732 +4750 area-System.Linq Improve Enumerable.Reverse() performance for IList and LinkedList I would like to suggest and discuss a possible performance improvement of the Enumerable.Reverse() extension function in the System.Linq namespace. Currently a _Buffer_ struct is created that allocates a new array of elements in most cases, as can be seen here: ``` csharp internal struct Buffer { internal TElement[] items; internal int count; internal Buffer(IEnumerable source) { IArrayProvider iterator = source as IArrayProvider; if (iterator != null) { TElement[] array = iterator.ToArray(); items = array; count = array.Length; } else { items = EnumerableHelpers.ToArray(source, out count); } } internal TElement[] ToArray() { //... } } ``` For the ReverseIterator the _items_ array of the _Buffer_ struct is then iterated through from end to start. I would think that the array allocation is not always needed, so I suggest to handle the reverse iteration of _IList_ and _LinkedList_ differently. An _IList_ object could be directly used for reverse iteration like the buffer struct but without creating and allocating the in this case unneccesary buffer first. For _LinkedList_ sources the reverse iteration would be easily possible without a _Buffer_ too. So what do you think about this? Am I missing a good reason here why this has not been done already? I could imagine the argument that Enumerable cannot handle every special collection differently, but at least _IList_ is often treated special. Oh and btw: I think this ``` csharp TElement[] array = iterator.ToArray(); items = array; count = array.Length; ``` should be ``` csharp items = iterator.ToArray(); count = items.Length; ``` as I don't see a reason for introducing the variable _array_. +4754 area-System.Net HttpClient doesn't respect HttpRequestMessage.Version e.g. if it's set to 1.0, the request still gets sent with a version 1.1 +4756 area-System.Net Add HTTP/2 support to HttpClient on Unix The latest versions of libcurl have HTTP/2 support; this commit enables that to be used from HttpClient via setting the request Version. Setting the Version will now pass along that version preference to libcurl; if it's set to 2.0, libcurl will use HTTP/2 if supported, otherwise it'll fall back to its default (1.1). As part of this I also fixed CurlHandler to pass along v1.0 and v1.1 so libcurl can respect the developer's explicit wishes. (Note that the HTTP/2 light-up is only available if libcurl supports it. libcurl relies on nghttp2, which needs to be installed, and a version of libcurl needs to be used that's built against it. To test, I built these locally from source.) cc: @vijaykota, @kapilash, @davidsh, @cipop, @eerhardt +4757 area-System.Net Updating and locking project.lock.json for Security UnitTests. Updating and locking project.lock.json for Security UnitTests. Fix #4739 +4760 area-System.Net Method not found: 'System.Threading.Tasks.Task`1 System.Net.NetworkInformation.Ping.SendPingAsync(System.Net.IPAddress, Int32)'. I think I found a bug in System.Net.NetworkInformation where PingReply is missing. You can find my source code [here](https://github.com/00101010b/PingTest1/blob/master/Controllers/HomeController.cs) on GitHub. I get the following errors during build: ``` An unhandled exception has occurred: Method not found: 'System.Threading.Tasks.Task`1 System.Net.NetworkInformation.Ping.SendPingAsync(System.Net.IPAddress, Int32)'. System.MissingMethodException: Method not found: 'System.Threading.Tasks.Task`1 System.Net.NetworkInformation.Ping.SendPingAsync(System.Net.IPAddress, Int32)'. ``` +4767 area-System.Net System.Net.Http nuget package need depend on System.Security.Cryptography.X509Certificates dotnet publish System.Net.Http can not work, it need System.Security.Cryptography.X509Certificates. +4769 area-System.Reflection Change SignatureDecoder design in preparation for API review - Segregate type provider interfaces so that custom attribute decoding does not require unnecessary provider implementation. - Change SignatureDecoder from static class to struct, which captures the provider, metadata reader, and options. - Move the overloads that took (MetadataReader, Handle) to instead hang off of the corresponding entity struct. This follows the precedent of blob-decoding done for Portable PDBs, makes the API more discoverable, and eliminates questions around which API to call for which blobs, which was exacerbated by the weak typing of BlobHandle. SignatureDecoder.DecodeXxx now all take ref BlobReader alone. Convenience overloads to allow parsing byte sequences without forcing the caller to pin and use pointers should be added, but that is deferred until `Span` arrives. - Remove ISignatureTypeProvider.Reader and instead pass along the metadata reader to the provider whenever there is a handle. The reader is allowed to be null (to decode byte sequence that didn't come from a metadata reader, which our tests do). Many type providers will already capture the metadata reader so that they have enough context in other situations than resolving handles (e.g. interpreting generic parameters beyond their index.), but this duplication is harmless and it simplifies the API. - Change CustomModifier handling to happen one-at-a-time and give the provider the raw handle rather than a decoded TType so that modifiers are cheaper to skip, and so that we do not traverse in to typespec signatures on provider's behalf. - Make class/value-type differentiation optional and handle WinRT projections correctly when enabled. - Add considerably more doc comments. - Add significant test coverage. All blocks in the SignatureDecoder with the exception of WinRT class <-> value type projection (I'll write some tests for that shortly) are now covered. - Use ImmutableArray.Builder.MoveToImmutable throughout to eliminate unnecessary copying. - Move everything in the Decoding folder to the Decoding namespace. (Some types being in the root was unintentional.) - Add specific error messages to all BadImageFormatException throws. NOTE: - A change to make it possible for the context-carrying provider to be passed around as an unboxed struct (reducing allocation) was attempted and reverted. The API is complex enough and the extra type parameter that could not be inferred was quite cumbersome. The Decoding namespace is given more freedom than the rest of S.R.M to allocate. In typical scenarios, symbols are parsed once and cached. - The type name parser and custom attribute decoder still need more refactoring and testing and will not be submitted to master just yet. FYI: @tmat, @michaelcfanning -- I'm going to turn around and submit this (minus type name and custom attribute decoding) as a PR to master (along with API review materials), so I'll merge to the dev branch once CI is green. +4771 area-System.Net System.Net.Sockets Build Failure (VS2015/Win10) Steps to reproduce: 1. git clone https://github.com/dotnet/corefx (OK) 2. C:\git\corefx>build.cmd /t:rebuild (OK) 3. Install .NET Core via the official MSI installer (OK~ dotnet/cli #362 ) 4. C:\git\corefx\src\System.Net.Sockets\ref>dotnet restore (OK) 5. C:\git\corefx\src\System.Net.Sockets\src>dotnet restore (OK) 6. C:\git\corefx\src\System.Net.Sockets\tests\FunctionalTests>dotnet restore (OK) 7. C:\git\corefx\src\System.Net.Sockets\tests\PerformanceTests>dotnet restore (OK) 8. Opened C:\git\corefx\src\System.Net.Sockets\System.Net.Sockets.sln via in V2015 Community Ed. 9. Rebuild Solution Errors: Severity Code Description Project File Line Error xunit.abstractions 2.0.0 is not compatible with DNXCore,Version=v5.0. 0 Error Some packages are not compatible with DNXCore,Version=v5.0. 0 Error xunit.abstractions 2.0.0 is not compatible with DNXCore,Version=v5.0. 0 Error Some packages are not compatible with DNXCore,Version=v5.0. 0 Warnings: Severity Code Description Project File Line Warning The referenced component 'System.Net.NameResolution' could not be found. System.Net.Sockets.Async.Performance.Tests Warning The referenced component 'System.Net.NameResolution' could not be found. System.Net.Sockets.Tests Warning Failed to resolve all project references for 'tests\PerformanceTests\System.Net.Sockets.Async.Performance.Tests'. The package restore result for 'tests\PerformanceTests\System.Net.Sockets.Async.Performance.Tests' may be incomplete. 0 Warning Detected package downgrade: System.Threading from 4.0.10 to 4.0.0 System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Threading.Tasks.Parallel (≥ 4.0.0) -> System.Threading (≥ 4.0.10) System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Threading (≥ 4.0.0) 0 Warning Detected package downgrade: System.Threading from 4.0.10 to 4.0.0 System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> xunit.netcore.extensions (≥ 1.0.0-prerelease-) -> System.Threading (≥ 4.0.10) System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Threading (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Net.Primitives (≥ 4.0.10) -> System.Private.Networking (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Detected package downgrade: System.Threading from 4.0.10 to 4.0.0 System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Net.Primitives (≥ 4.0.10) -> System.Private.Networking (≥ 4.0.0) -> System.Threading (≥ 4.0.10) System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Threading (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Threading.Tasks.Parallel (≥ 4.0.0) -> System.Collections.Concurrent (≥ 4.0.10) -> System.Collections (≥ 4.0.10) System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> xunit.netcore.extensions (≥ 1.0.0-prerelease-) -> System.Linq (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> src\System.Net.Sockets -> System.IO.FileSystem (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Detected package downgrade: System.Threading from 4.0.10 to 4.0.0 System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> src\System.Net.Sockets -> System.IO.FileSystem (≥ 4.0.0) -> System.Threading (≥ 4.0.10) System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Threading (≥ 4.0.0) 0 Warning Detected package downgrade: System.Threading from 4.0.10 to 4.0.0 System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> src\System.Net.Sockets -> System.Security.Principal.Windows (≥ 4.0.0-beta-) -> System.Threading (≥ 4.0.10) System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Threading (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> xunit (≥ 2.1.0) -> xunit.core (= 2.1.0) -> System.Linq (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> xunit (≥ 2.1.0) -> xunit.assert (= 2.1.0) -> System.Linq (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets.Async.Performance.Tests (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Failed to resolve all project references for 'tests\FunctionalTests\System.Net.Sockets.Tests'. The package restore result for 'tests\FunctionalTests\System.Net.Sockets.Tests' may be incomplete. 0 Warning Detected package downgrade: System.Threading from 4.0.10 to 4.0.0 System.Net.Sockets.Tests (≥ 1.0.0) -> System.Threading.Tasks.Parallel (≥ 4.0.0) -> System.Threading (≥ 4.0.10) System.Net.Sockets.Tests (≥ 1.0.0) -> System.Threading (≥ 4.0.0) 0 Warning Detected package downgrade: System.Threading from 4.0.10 to 4.0.0 System.Net.Sockets.Tests (≥ 1.0.0) -> xunit.netcore.extensions (≥ 1.0.0-prerelease-) -> System.Threading (≥ 4.0.10) System.Net.Sockets.Tests (≥ 1.0.0) -> System.Threading (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets.Tests (≥ 1.0.0) -> System.Net.Primitives (≥ 4.0.10) -> System.Private.Networking (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets.Tests (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Detected package downgrade: System.Threading from 4.0.10 to 4.0.0 System.Net.Sockets.Tests (≥ 1.0.0) -> System.Net.Primitives (≥ 4.0.10) -> System.Private.Networking (≥ 4.0.0) -> System.Threading (≥ 4.0.10) System.Net.Sockets.Tests (≥ 1.0.0) -> System.Threading (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets.Tests (≥ 1.0.0) -> System.Threading.Tasks.Parallel (≥ 4.0.0) -> System.Collections.Concurrent (≥ 4.0.10) -> System.Collections (≥ 4.0.10) System.Net.Sockets.Tests (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets.Tests (≥ 1.0.0) -> xunit.netcore.extensions (≥ 1.0.0-prerelease-) -> System.Linq (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets.Tests (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets.Tests (≥ 1.0.0) -> src\System.Net.Sockets -> System.IO.FileSystem (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets.Tests (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Detected package downgrade: System.Threading from 4.0.10 to 4.0.0 System.Net.Sockets.Tests (≥ 1.0.0) -> src\System.Net.Sockets -> System.IO.FileSystem (≥ 4.0.0) -> System.Threading (≥ 4.0.10) System.Net.Sockets.Tests (≥ 1.0.0) -> System.Threading (≥ 4.0.0) 0 Warning Detected package downgrade: System.Threading from 4.0.10 to 4.0.0 System.Net.Sockets.Tests (≥ 1.0.0) -> src\System.Net.Sockets -> System.Security.Principal.Windows (≥ 4.0.0-beta-) -> System.Threading (≥ 4.0.10) System.Net.Sockets.Tests (≥ 1.0.0) -> System.Threading (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets.Tests (≥ 1.0.0) -> xunit (≥ 2.1.0) -> xunit.core (= 2.1.0) -> System.Linq (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets.Tests (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets.Tests (≥ 1.0.0) -> xunit (≥ 2.1.0) -> xunit.assert (= 2.1.0) -> System.Linq (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets.Tests (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets (≥ 1.0.0) -> System.IO.FileSystem (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Detected package downgrade: System.Threading from 4.0.10 to 4.0.0 System.Net.Sockets (≥ 1.0.0) -> System.IO.FileSystem (≥ 4.0.0) -> System.Threading (≥ 4.0.10) System.Net.Sockets (≥ 1.0.0) -> System.Threading (≥ 4.0.0) 0 Warning Detected package downgrade: System.Threading from 4.0.10 to 4.0.0 System.Net.Sockets (≥ 1.0.0) -> System.Security.Principal.Windows (≥ 4.0.0-beta-) -> System.Threading (≥ 4.0.10) System.Net.Sockets (≥ 1.0.0) -> System.Threading (≥ 4.0.0) 0 Warning Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets (≥ 1.0.0) -> System.Net.Primitives (≥ 4.0.10) -> System.Private.Networking (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets (≥ 1.0.0) -> System.Collections (≥ 4.0.0) 0 Warning Detected package downgrade: System.Threading from 4.0.10 to 4.0.0 System.Net.Sockets (≥ 1.0.0) -> System.Net.Primitives (≥ 4.0.10) -> System.Private.Networking (≥ 4.0.0) -> System.Threading (≥ 4.0.10) System.Net.Sockets (≥ 1.0.0) -> System.Threading (≥ 4.0.0) 0 Warning Detected package downgrade: System.Globalization from 4.0.10 to 4.0.0 System.Net.Sockets (≥ 1.0.0) -> System.Net.Primitives (≥ 4.0.10) -> System.Private.Networking (≥ 4.0.0) -> System.Globalization (≥ 4.0.10) System.Net.Sockets (≥ 1.0.0) -> System.Globalization (≥ 4.0.0) 0 +4777 area-System.Net System.Net.Socket EndPoint-extensibility broken in corefx The current corefx codebase appears to be closed off to any EndPoint customization. The Sockets codebase expects every EndPoint to be either a DnsEndPoint or an IPEndPoint, and anything that’s not built in to System.Net.Sockets will result in failures. This is a silly little quick example which obviously won’t do anything meaningful: ``` C# private class MyEndPoint : EndPoint { } [Fact] public void Socket_CustomEndPoint() { Socket s = new Socket(SocketType.Raw, ProtocolType.Raw); s.Connect(new MyEndPoint()); } ``` but it fails on corefx due to a cast exception that highlights the problem: ``` System.InvalidCastException : Unable to cast object of type 'MyEndPoint' to type 'System.Net.IPEndPoint'. Stack Trace: c:\Users\stoub\Source\repos\corefx\src\Common\src\System\Net\Internals\IPEndPointExtensions.cs(14,0): at System.Net.Sockets.IPEndPointExtensions.Serialize(EndPoint endpoint) c:\Users\stoub\Source\repos\corefx\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(4894,0): at System.Net.Sockets.Socket.CheckCacheRemote(EndPoint& remoteEP, Boolean isOverwrite) c:\Users\stoub\Source\repos\corefx\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(848,0): at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) ``` In contrast, on desktop it also fails but where and with the exception I’d expect: ``` Unhandled Exception: System.NotImplementedException: This method is not implemented by this class. at System.Net.EndPoint.Serialize() at System.Net.Sockets.Socket.CallSerializeCheckDnsEndPoint(EndPoint remoteEP) at System.Net.Sockets.Socket.CheckCacheRemote(EndPoint& remoteEP, Boolean isOverwrite) at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) ``` cc: @cipop, @davidsh, @SidharthNabar +4779 area-Infrastructure "Add ""Windows Server 2016 TP4 (Nano Server Installation)"" CI / Rolling Build" Now that Nano Server TP4 is available in the Azure Gallery we should investigate adding it to our non-blocking outer-loop build and test system: http://blogs.technet.com/b/nanoserver/archive/2015/11/25/nano-server-iaas-image-in-the-azure-gallery.aspx https://en.wikipedia.org/wiki/Windows_Server_2016#Nano_Server +4782 area-System.Data Add basic test for System.Data.SqlClient Connection.Open to debug package issues +4784 area-System.Reflection System.Reflection.Metadata depends on Windows API's @nguerrera , I noticed that System.Reflection.Metadata has a dependency on Windows API's (api-ms-win-core-file-l1-2-0.dll). I understand that this is light-up code, but is there a reason that we have this requirement instead of using a different method that doesn't include this dependency? cc @ericstj +4786 area-System.IO Mechanism for reading directly from file to unmanaged memory System.Reflection.Metadata has an optimization where it reads files small enough to not warrant memory mapping directly into the unmanaged heap (without an intermediate copy on the managed heap). This optimization is done by lighting up on Windows to the native `ReadFile` API. For this to work cross-plat there should be a way to pass unmanaged memory to Stream and have FileStream override it to not involve intermediate copies to managed memory. This could possibly be accomplished via `Span` support in `Stream` overridden by `FileStream`. cc @KrzysztofCwalina +4792 area-System.IO Add Path.TryGetExtension Today Path.GetExtension throws if the value passed in has invalid chars. See https://github.com/aspnet/StaticFiles/commit/657a5ab26bea3f0b9293a216f28f7b37e004d707#diff-e0272e80448d0ed39c75613bfe35ee62R438. It would be great if there was a way to avoid that exception without reimplementing it. +4793 area-Serialization Make ISerializatonSurrogateProvider support OOB to desktop .NET Framework By making ISerializatonSurrogateProvider support OOB to desktop .NET Framework, the end user can have the same code that works on both .NET Core and full .NET Framework. +4794 area-System.Diagnostics Process.Start not working for HTTP links On windows (with .NET Core) calling: System.Diagnostics.Process.Start(SomeWebLinkHere); Results in: An exception of type 'System.ComponentModel.Win32Exception' occurred in System.Diagnostics.Process.dll but was not handled in user code. Additional information: The system cannot find the file specified. Works fine on the .NET Framework, is this intended? +4797 area-System.Xml How to use XmlWriter.Close(); in coreCLR +4798 area-Meta Evaluate the need to shim native calls on OSX We have a few OSX-specific native calls that don't use shims. From my understanding this was deemed acceptable because OSX already has a stable Application Binary Interface (ABI). However, looking through some of these calls, I'm not completely sure this is true. For example https://github.com/dotnet/corefx/blob/master/src/Common/src/Interop/OSX/Interop.CoreFoundation.cs#L72-L77 has : ``` C# private static extern SafeCreateHandle CFArrayCreate( IntPtr allocator, [MarshalAs(UnmanagedType.LPArray)] IntPtr[] values, ulong numValues, IntPtr callbacks); ``` Which on my Mac appears to be defined as: ``` C++ CFArrayRef CFArrayCreate( CFAllocatorRef allocator, const void **values, CFIndex numValues, const CFArrayCallbacks *callbacks); ``` And where `CFIndex` is defined as: ``` C++ #if __LLP64__ typedef signed long long CFIndex; #else typedef signed long CFIndex; #endif ``` Are we guaranteed that CFIndex will always be an 8-byte integer? What if we were on a 32-bit OSX? We should analyze all our non-shimmed native calls on OSX and be 100% sure we will always have ABI stability, no matter the OSX system we are running on. +4801 area-System.Net GetAsync_ResponseHeadersRead_ReadFromEachIterativelyDoesntDeadlock failed on CentOS in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx_linux_centos71_debug_tst/166/console ``` 07:38:26 System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_ResponseHeadersRead_ReadFromEachIterativelyDoesntDeadlock [FAIL] 07:38:26 System.Threading.Tasks.TaskCanceledException : A task was canceled. 07:38:26 Stack Trace: 07:38:27 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 07:38:27 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 07:38:27 at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 07:38:27 at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__94.MoveNext() 07:38:27 --- End of stack trace from previous location where exception was thrown --- 07:38:27 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 07:38:27 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 07:38:27 --- End of stack trace from previous location where exception was thrown --- 07:38:27 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 07:38:27 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 07:38:27 --- End of stack trace from previous location where exception was thrown --- 07:38:27 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 07:38:27 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +4802 area-System.Data Windows 8 support for System.Data.Common According to [this](https://github.com/aspnet/Microsoft.Data.Sqlite/issues/185#issuecomment-161726607) issue, `System.Data.Common` needs to support Windows 8 before `Microsoft.Data.Sqlite` can. Is it possible to add Windows 8 support to that package? cc @bricelam +4803 area-Infrastructure Enable Clang sanitizers for debug builds As part of #3501 enable the Clang sanitizers for corefx native code. It has already been enabled for coreclr native code. +4804 area-Meta Fix CLR startup issues provided by Clang sanitizer As part of #3501, attempt fix the clr startup issues so that test-specific sanitizer output can be determined and evaluated. Currently, when the sanitizers are enabled, several messages from the undefined behavior sanitizer are displayed when any program is run: /src/inc/clrhost.h:137:30: runtime error: call to function CExecutionEngine::GetTlsData() through pointer to incorrect function type 'void ()()' /src/coreclr/hosts/unixcoreruncommon/coreruncommon.cpp:336:22: runtime error: call to function coreclr_initialize through pointer to incorrect function type 'int ()(const char *, const char *, int, const char *, const char *, void *, unsigned int *)' /src/dlls/mscoree/unixinterface.cpp:187: note: coreclr_initialize defined here /src/inc/clrhost.h:137:30: runtime error: call to function ClrFlsGetBlockGeneric() through pointer to incorrect function type 'void *()()' /src/utilcode/clrhost_nodependencies.cpp:768: note: ClrFlsGetBlockGeneric() defined here /src/inc/clrhost.h:184:30: runtime error: call to function ClrFlsGetBlockGeneric() through pointer to incorrect function type 'void *()()' /src/vm/object.cpp:2633:5: runtime error: member call on null pointer of type 'Object' /src/vm/object.cpp:2712:5: runtime error: member call on null pointer of type 'Object' /src/gc/handletablecore.cpp:1987:42: runtime error: shift exponent 64 is too large for 32-bit type 'unsigned int' /src/debug/ee/debugger.cpp:2351:24: runtime error: reference binding to null pointer of type 'const InteropSafe' /src/debug/ee/controller.cpp:894:26: runtime error: reference binding to null pointer of type 'const InteropSafe' /src/inc/random.h:108:30: runtime error: signed integer overflow: 1855390761 - -1417746578 cannot be represented in type 'int' /src/gc/gc.cpp:9922:14: runtime error: member access within null pointer of type 'WKS::gc_heap' /src/inc/sstring.inl:2090:20: runtime error: left shift of negative value -1 /src/pal/src/map/map.cpp:1588:35: runtime error: member access within null pointer of type 'MAPPED_VIEW_LIST' (aka 'CorUnix::_MVL') There is also an address sanitizer error (these errors stop processing so it is blocking) ==51212==ERROR: AddressSanitizer: stack-buffer-underflow on address 0x7ffd252450df at pc 0x7fe3711c2a68 bp 0x7ffd25244f70 sp 0x7ffd25244f68 READ of size 1 at 0x7ffd252450df thread T0 #0 0x7fe3711c2a67 in CMiniMdBase::UsesAllocatedMemory(CMiniColDef*) /src/md/runtime/metamodel.cpp:1240:5 +4805 area-System.Runtime Add/Expose String.EndsWith(char) "Moved bug from https://github.com/dotnet/coreclr/issues/1463 to proper repo > ## davidfowl commented on Aug 31 > > So we don't have to rewrite it over and over :smile:. Seems like its already there just made internal for > some reason: > > https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/String.cs#L2210 > > People end up writing code like this: > > https://github.com/aspnet/dnx/blob/dev/ext/compiler/preprocess/Internalization.cs#L100 > > and this > > https://github.com/aspnet/dnx/blob/dev/src/Microsoft.Dnx.Runtime/NuGet/Utility/PathUtility.cs#L45 > ## bbowyersmyth commented on Sep 2 > > I had the same thought a while back and discovered it would be a breaking change for an edge case in VB. > > Against the current framework the following is valid VB: > Dim find As Char = ""a""c > Dim result = ""abc"".StartsWith(find) > > The compiler wraps find with a call to a string conversion and all is good. If EndsWith(char) was > made public and the code recompiled it would switch from using the CurrentCulture based EndsWith(string) to the Ordinal based EndsWith(char) . > > Whether any of the offending characters or the above scenario is deemed important I would love to hear. Especially a StartsWith(char) with direct access to String.m_firstChar > ## AlexGhiondea commented on Sep 8 > > It seems like the VB compiler is trying to help by picking an overload that will work. > > @VSadov -- do you know what the VB compile would do if we were to introduce the bool EndsWith(char value) overload on string? > > @davidfowl can you create an issue in the CoreFx repo (following the API review process)? " +4807 area-System.Security System.Security.Principal.Windows throws exceptions of type Exception Several code paths in System.Security.Principal.Windows throw a System.Exception, which is generally not a good practice. These are all code paths which threw a System.SystemException in desktop, which does not exist in .NET Core. They should probably be updated to Win32Exception since they all relate to Win32 failures. At the very least, they should be changed to a more specific exception type than 'Exception'. The APIs that throw a plain Exception are: - SecurityIdentifier.ctor(string) - SecurityIdentifier.ctor(WellKnownSidType, SecurityIdentifier) - SecurityIdentifier.GetAccountDomainSid - SecurityIdentifier.TranslateToNTAccounts - Win32.LsaOpenPolicy +4809 area-System.Reflection Add SignatureDecoder to System.Reflection.Metadata See #262 for API review and design information. For those who followed the evolution in the dev branch, #4769 shows just the last round of design changes. cc @tmat +4812 area-System.Reflection Bump dev/metadata version to 1.3 Master will move to 1.2 and acquire SignatureDecoder and MetadataWriter dev/metadata, still has CustomAttributeDecoder and TypeNameParser which need further refactoring and testing, so bump dev version to 1.3. +4813 area-System.Security Add DSA to CoreFX When added there should be adequate support for implementation hiding, and it should support FIPS 186-3's addition of SHA-2 algorithms. +4816 area-System.Net Fix pipelining in System.Net.Http on CentOS My previous change to add HTTP/2 multiplexing broke some System.Net.Http functionality on CentOS, or more specifically when using an old version of libcurl that's in our CentOS 7.1 image. That version of libcurl is from before HTTP/2 multiplexing was introduced. When multiplexing was added to libcurl, one of the existing libcurl functions (curl_multi_setopt) was changed such that if you were to pass in the HTTP/2 multiplexing option (which didn't exist at the time), due to the way the method was implemented, you'd end up opting in to HTTP 1.1 pipelining rather than having the option just be ignored. This is not the desired behavior and ends up breaking behaviors where we issue multiple HTTP 1.1 calls on the same multi handle concurrently. This fix exposes from the native shim whether we're using a version of libcurl that supports HTTP/2 and that knows about the multiplexing option, and only configures the multi handle for multiplexing in that case. Fixes #4801 cc: @kapilash, @ellismg, @eerhardt +4817 area-System.Net SendToRecvFrom_Single_Datagram_UDP_IPv6 failed in CI on OS X http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst_prtest/3/console ``` 16:32:02 System.Net.Sockets.Tests.SendReceive.SendToRecvFrom_Single_Datagram_UDP_IPv6 [FAIL] 16:32:02 Assert.True() Failure 16:32:02 Expected: True 16:32:02 Actual: False 16:32:02 Stack Trace: 16:32:02 at System.Net.Sockets.Tests.SendReceive.SendToRecvFrom_Datagram_UDP(IPAddress leftAddress, IPAddress rightAddress) ``` +4820 area-System.Security VerifyKnownTransform_CBC128_NoPadding failed on OS X in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst_prtest/11/console ``` 20:30:37 System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC128_NoPadding [FAIL] 20:30:37 Assert.Equal() Failure 20:30:37 Expected: Byte[] [216, 245, 50, 83, 130, ...] 20:30:37 Actual: Byte[] [0, 0, 0, 0, 0, ...] 20:30:37 Stack Trace: 20:30:38 at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) ``` +4821 area-System.Net Disabling intermittently failing tests (timeout) from System.Net.Security Disabling two of the tests to investigate the intermittent authentication timeouts. @stephentoub @bartonjs @davidsh PTAL +4822 area-System.Net SslStream: Authentication failed because the remote party has closed the transport stream @SidharthNabar Hey ... ran into an issue following the updates to `System.Net.Sockets`. Under `4.0.10-beta-*`, I was using this to hit up a GoDaddy (yuck!) mail server ... ``` using (var client = new TcpClient(server, port)) { using (var stream = new SslStream(client.GetStream(), false)) { stream.AuthenticateAsClient(server); ... USE THE STREAM ... ``` ... after the [revision](https://github.com/dotnet/corefx/issues/3913) to `System.Net.Sockets` using `4.1.0-beta-*`, I converted that over to ... ``` using (var client = new TcpClient()) { await client.ConnectAsync(server, port); using (var stream = new SslStream(client.GetStream(), true)) { stream.AuthenticateAsClient(server); ... USE THE STREAM ... ``` ... it runs locally (note that I had to change the `leaveInnerStreamOpen` to `true` to even get it to run on IIS Express), but it throws on the server ... ``` System.IO.IOException: Authentication failed because the remote party has closed the transport stream. at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost) at MyApp.ContactController.d__5.MoveNext() ``` If I immediately re-submit the form, it throws slightly differently ... ``` System.IO.IOException: Authentication failed because the remote party has closed the transport stream. at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost) at MyApp.ContactController.d__5.MoveNext() ``` Am I coding that change correctly? +4823 area-System.Security Seg fault in X509Certificates.Tests on Ubuntu in CI Unfortunately not much to go on in the log: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/ubuntu_release_tst_prtest/14/console ``` 23:38:13 Discovering: System.Security.Cryptography.X509Certificates.Tests 23:38:13 Discovering: System.Globalization.Tests 23:38:13 xUnit.net console test runner (64-bit .NET Core) 23:38:13 Copyright (C) 2014 Outercurve Foundation. 23:38:13 23:38:13 xUnit.net console test runner (64-bit .NET Core) 23:38:13 Copyright (C) 2014 Outercurve Foundation. 23:38:13 23:38:13 xUnit.net console test runner (64-bit .NET Core) 23:38:13 Copyright (C) 2014 Outercurve Foundation. 23:38:13 23:38:14 Discovering: System.Security.Cryptography.OpenSsl.Tests 23:38:14 Discovering: System.Resources.ResourceManager.Tests 23:38:14 Discovered: System.Security.Cryptography.X509Certificates.Tests 23:38:14 Discovering: System.Diagnostics.TraceSource.Tests 23:38:14 Starting: System.Security.Cryptography.X509Certificates.Tests 23:38:14 Discovered: System.Resources.ResourceManager.Tests 23:38:15 Discovered: System.Diagnostics.TraceSource.Tests 23:38:15 Discovered: System.Security.Cryptography.OpenSsl.Tests 23:38:15 Starting: System.Resources.ResourceManager.Tests 23:38:15 Discovered: System.Globalization.Tests 23:38:15 Starting: System.Diagnostics.TraceSource.Tests 23:38:15 Starting: System.Security.Cryptography.OpenSsl.Tests 23:38:15 Starting: System.Globalization.Tests 23:38:16 Finished: System.Resources.ResourceManager.Tests 23:38:16 23:38:16 === TEST EXECUTION SUMMARY === 23:38:16 terminate called after throwing an instance of 'PAL_SEHException' 23:38:16 System.Resources.ResourceManager.Tests Total: 22, Errors: 0, Failed: 0, Skipped: 0, Time: 1.036s 23:38:16 ./run-test.sh: line 130: 21770 Aborted (core dumped) ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory -notrait Benchmark=true 23:38:16 One or more tests failed while running tests from 'System.Security.Cryptography.X509Certificates.Tests'. Exit code 134. ``` +4824 area-System.Net NameResolutionPalTests.GetHostByName_HostName failed on OS X in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst_prtest/10/console ``` 20:10:25 System.Net.NameResolution.PalTests.NameResolutionPalTests.GetHostByName_HostName [FAIL] 20:10:25 System.Net.Internals.InternalSocketException : Unknown error: 11001 20:10:25 Stack Trace: 20:10:25 at System.Net.NameResolutionPal.GetHostByName(String hostName) 20:10:25 at System.Net.NameResolution.PalTests.NameResolutionPalTests.GetHostByName_HostName() ``` +4825 area-System.IO coreCLR no option for passing filepath as string inside constructors "I noticed there are several constructors for IO tasks that do not include the option for passing a string in .NET Core. ``` csharp //old way XmlDocument xdoc xdoc.Load(@""file\path""); //new way XmlDocument xdoc xdoc.Load(new FileStream(@""file\path"", FileMode.Open); //old string file = @""file\path""; var sw = new StreamWriter(file, false, new UTF8Encoding(false)) // new string file = @""file\path""; var sw = new StreamWriter(new FileStream(file, FileMode.OpenOrCreate), new UTF8Encoding(false)) ``` What is the reason behind this and is there a better way than using the FileStream constructor to pass the filepath as string? " +4829 area-System.Net AcceptAsyncV4BoundToAnyV6_Success failed on OSX in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst_prtest/21/console ``` 09:22:19 System.Net.Sockets.Tests.DualMode.AcceptAsyncV4BoundToAnyV6_Success [FAIL] 09:22:19 Assert.Equal() Failure 09:22:19 Expected: ::ffff:127.0.0.1 09:22:19 Actual: ::127.0.0.1 09:22:19 Stack Trace: 09:22:19 at System.Net.Sockets.Tests.DualMode.DualModeConnect_AcceptAsync_Helper(IPAddress listenOn, IPAddress connectTo) 09:22:19 at System.Net.Sockets.Tests.DualMode.AcceptAsyncV4BoundToAnyV6_Success() ``` +4833 area-System.Numerics Intermittent Matrix4x4DecomposeTest01 failed in CI on OS X http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst_prtest/19/console ``` 08:54:36 System.Numerics.Tests.Matrix4x4Tests.Matrix4x4DecomposeTest01 [FAIL] 08:54:36 Matrix4x4.Decompose did not return expected value. Expected:<10, 20, 30> actual:<10, 20.19675, 30>. 08:54:36 Expected: True 08:54:36 Actual: False 08:54:36 Stack Trace: 08:54:36 at System.Numerics.Tests.Matrix4x4Tests.DecomposeTest(Single yaw, Single pitch, Single roll, Vector3 expectedTranslation, Vector3 expectedScales) 08:54:36 at System.Numerics.Tests.Matrix4x4Tests.Matrix4x4DecomposeTest01() ``` +4834 area-System.Threading Allow to configure IO awaited Tasks to complete on the IOCP worker thread. "For background info see @stephentoub excellent post: http://blogs.msdn.com/b/pfxteam/archive/2012/01/20/10259049.aspx Key relevant quote: ""If the context comes back as null, then the continuation could run “anywhere”. I put anywhere in quotes because obviously the continuation can’t run “anywhere,” but logically you can think of it like that… it’ll either end up running on the same thread that completed the awaited task, or it’ll end up running in the ThreadPool."" What I noticed in .NET FW 4.6 is that HttpListener completions _sometimes_ get posted to the ThreadPool _Work Queue_ instead of being directly completed on the IOCP worker thread itself. The way I manage to avoid this unnecessarily context switch is by ""overriding"" the Task code policy on how to dispatch the completion: var currentContext = SynchronizationContext.Current; try { SynchronizationContext.SetSynchronizationContext(new NoOpSynchronizationContext()); ``` await listener.GetContextAsync() ``` } finally { SynchronizationContext.SetSynchronizationContext(currentContext); } public class NoOpSynchronizationContext : SynchronizationContext { public override void Post(SendOrPostCallback d, object state) { d(state); } } Needless to say this is boilerplate code one would want to avoid when awaiting tasks of libs using IOCP. " +4836 area-System.Net System.Net.Sockets.APMServer.Tests has a test that hangs, causes build timeout on OSX. ``` System.Net.Sockets.Tests.SendReceive.SendRecvAPM_Single_Stream_TCP_IPv4 [FAIL] 15:49:15 Assert.True() Failure 15:49:15 Expected: True 15:49:15 Actual: False 15:49:15 Stack Trace: 15:49:16 at System.Net.Sockets.Tests.SendReceive.SendRecvAPM_Stream_TCP(IPAddress listenAt, Boolean useMultipleBuffers) 15:49:16 at System.Net.Sockets.Tests.SendReceive.SendRecvAPM_Single_Stream_TCP_IPv4() 17:34:43 Build timed out (after 120 minutes). Marking the build as aborted. 17:34:44 ./run-test.sh: line 130: 9296 Terminated: 15 ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory -notrait Benchmark=true 17:34:44 One or more tests failed while running tests from 'System.Net.Sockets.APMServer.Tests'. Exit code 143. ``` +4839 area-System.IO Determine the correct notification smoothing for all FileSystemWatchers Currently, each system's FileSystemWatcher generates different notifications based on different non-trivial events. For instance, OS X and Ubuntu generate Changed events on the root watch folder while Windows does not; or, on OS X, unlink and link (aka a FileSystem Move) causes a metadata change on the parent folder. Smoothing out some of the above scenarios (aka making them consistent across each platform) can get quite complicated due to the underlying non-deterministic basis of each FSW API. None of the supported OS kernels (Linux Kernel, Darwin, or NT) make a guarantee that callers will receive all notifications or notifications in a timely manor, due to internal buffers and system load. Theoretically, each underlying File System **could** also generate events differently (ie ext3 to ext4); it may not, but that would require more intensive testing. Consumers of the FSW, anecdotally from my past experience, will usually have state machines to determine what actually changed based on certain notifications or notification patterns. Trying to fit each platforms nuances into one single pattern would require a quite intricate state machine to handle some of the edge case situations that can occur, such as a delay between the unlink and the re-link notifications due to system load or a full buffer; therefore, I'd propose that we allow the FSW classes to be best-effort and acknowledge that minor differences will happen cross-platform (for example, an extra Change notification on OS X due to unlink and re-link behavior) as long as the differences do not cause dramatic functional differences to consumers. The action for this proposal would be changing the tests to be a little less strict about what is an expected and not-expected notification; for instance, allowing metadata change notifications to be sent to parent items when children items generate non-file-data changes. @stephentoub, thoughts? +4845 area-System.Security Symmetric encryption with TripleDES ... not implemented? "I get a ""not implemented"" exception if I try to use TripleDES. What's the preferred ""simple"" and ""not so secure but easy and fast"" way to symmetrically encrypt/decrypt a string with a key in a dnxcore50 project? ![capture](https://cloud.githubusercontent.com/assets/1622880/11606629/e7c81784-9adc-11e5-9d68-4978bedeac85.PNG) " +4851 area-System.Net System.Net.Primitives tests Added tests, especially for CookieContainer/Parser/Tokenizer/Collection Removed unecessary code +4854 area-System.Net AcceptAsyncV4BoundToSpecificV4_Success failed on OSX in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst_prtest/55/consoleFull#-21371504001f1a4601-6aec-4fd5-b678-78d4389fd5e8 ``` 17:00:48 System.Net.Sockets.Tests.DualMode.AcceptAsyncV4BoundToSpecificV4_Success [FAIL] 17:00:48 Assert.Equal() Failure 17:00:48 Expected: ::ffff:127.0.0.1 17:00:48 Actual: ::127.0.0.1 17:00:48 Stack Trace: 17:00:48 at System.Net.Sockets.Tests.DualMode.DualModeConnect_AcceptAsync_Helper(IPAddress listenOn, IPAddress connectTo) ``` +4856 area-System.IO WatcherDoesntFollowSymLinkToFolder failed on OSX in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst_prtest/50/console ``` 11:48:22 CreatedTests.FileSystemWatcher_Created_WatcherDoesntFollowSymLinkToFolder [FAIL] 11:48:22 Didn't observe a symlink created event within 30000ms 11:48:22 Expected: True 11:48:22 Actual: False 11:48:22 Stack Trace: 11:48:22 at Utility.ExpectEvent(WaitHandle eventOccurred, String eventName, Int32 timeout) 11:48:22 at CreatedTests.FileSystemWatcher_Created_WatcherDoesntFollowSymLinkToFolder() ``` +4864 area-System.Diagnostics Vaildation of ETW events need TraceEvent EventSource needs TraceEvent to validate ETW events in the tests. +4865 area-System.Diagnostics EventListener tests for Events are not enabled because we haven't shipped that API yet We are in the process of putting a new API to consume EventSource events through EventListeners without having to subclass an EventListener. The tests for these changes are disabled until the feature ships. +4866 area-System.Security CURDLE and Cryptographic algorithm APIs / selection One of the major problem areas in .NET at present is the organization and algorithm selection for cryptography. In particular: - .NET 4.6 does not supply many of the preferred algorithms for IETF protocols - The organization of the APIs is haphazard and inconsistent. I know that there are several comments on this and an expectation that 'something' will be done. I would like to make some suggestions. First, for algorithm selection, note that IETF just started a call for comments on a new working group to choose a consistent set of algorithms for use in IETF protocols. So the idea is that S/MIME, TLS, SSH, OpenPGP, etc. all use the same set of algorithms. This is not a completely open ended process either as pretty much anyone involved in that process can tell you right now that you are not going to need anything outside: Encryption/Integrity: AES-CCM, AES-GSCM, AES-CBC in 128 and 256 bit strengths ChaCha20 and Poly1305 Digest: SHA2 and SHA3 Public Key: Key agreement (ECDH) and digital signatures (EdDSA) with Curve25519 and Curve448 as defined by CFRG RSA signature and encryption at 1024 and 2048 bit key strengths. It will take at least 18 months to get documents out that describe in detail how these are applied in all the application protocols. But that is the set of algorithms we are trying to establish as standard across the board. On the API side, there is a lot of inconsistency right now and the current classes are really not well suited for use with the encrypt-plus-authenticate modes we prefer in modern protocol design. The classes for encryption, authentication and public key ops expose different functionality at different layers in the inheritance hierarchy. They don't expose the identification info we need for interface with certificates, or S/MIME, JOSE, etc. So what I have done for my own code is to develop a set of classes that essentially wrap the .NET classes which in turn wrap either the Windows classes or OpenSSL. I also have a much simpler certificate parser/issuer library that is in native C#. Both of those will be released as open source under an MIT license in the next few days. Right now my project is built in .NET 4.6 because it is what existed. But the aim all along was to move to .NET Core, that was part of the reason for choosing .NET in the first place. +4867 area-System.Diagnostics EventSource dictionary events are broken on CoreCLR "Writing a dictionary to an EventSource like the following is broken. `EventSource logger = new EventSource();` `logger.Write(""EventWithStringDict_C"", new { myDict = dict, s = ""end"" });` This fails because Activator.CreateInstance fails because it can't find the constructor for one of the types we use in TraceLogging to parse the dictionary. The type is `KeyValuePairTypeInfo`. " +4868 area-System.Net Remove sync APIs from SslStream and NegotiateStream As per the System.Net.\* API review dotnet/apireviews#21 removing the sync versions of the AuthenticateAsClient, AuthenticateAsServer methods from the SslStream and NegotiateStream classes. Part of #4732 +4870 area-System.Net Adding HTTP 2.0 support to HttpClient It appears as though UWP has a new HttpClient in the Windows.Web.Http namespace which has HTTP 2.0 support: https://msdn.microsoft.com/en-us/library/windows/apps/mt187345.aspx Is porting this work to the coreclr HttpClient in the roadmap? +4871 area-System.Diagnostics EventSource tests fail on non-windows platforms The majority of the EventSource tests fail on non-windows platforms. Need to investigate further. +4872 area-System.Diagnostics Add Tests for Dataflow ETW events in EventSource The failing tests are tracked by issue #1000. It needs to be verified that this issue is fixed and tests added. +4873 area-System.Diagnostics Add tests for null/empty array issue in EventSource Add tests for https://github.com/dotnet/coreclr/pull/1988. +4874 area-System.IO Removed Managed Inflater/Deflater code in System.IO.Compression Now that we always use the zlib implementations for inflation/deflation, the managed ones may be removed. resolves #4451 @eerhardt @stephentoub @tarekgh +4879 area-System.IO Modify System.IO.Compression.DeflateStream.Flush to actually flush. The existing implementation of Flush and FlushAsync for System.IO.Compression.DeflateStream doesn't actually flush - it only checks that the stream isn't disposed. This commit modifies Flush to Flush and also adds unit tests around the new functionality. Some more detailed discussion is available at #3669 @stephentoub @redknightlois @ericstj +4880 area-System.Net Reconsider Socket Timeout Api Timeout settings for Socket Send/Recv operations only work for blocking API's. It's too easy to shoot yourself in the foot thinking these setting will come into effect for non-blocking network operations, especially nowadays given the simplicity of issuing async calls using async/await. I suggest either: - Implement timeout support for async send/recv operations into the Socket class (Preferred) - Why windows doesn't support timeouts for non-blocking socket calls is quite a mystery. - Remove blocking timeout properties (force explicit use of socket options) For reference, all these properties are no-up with respect to async calls Socket Class: ReceiveTimeout SendTimeout NetworkStream: CanTimeout (fixed to True) ReadTimeout WriteTimeout TcpClient: ReceiveTimeout SendTimeout +4882 area-System.Numerics Matrix4x4CreateFromYawPitchRollTest2 failed on OS X in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst_prtest/79/console ``` 07:00:32 System.Numerics.Tests.Matrix4x4Tests.Matrix4x4CreateFromYawPitchRollTest2 [FAIL] 07:00:32 Yaw:-265 Pitch:155 Roll:-405 07:00:32 Expected: True 07:00:32 Actual: False 07:00:32 Stack Trace: 07:00:33 at System.Numerics.Tests.Matrix4x4Tests.Matrix4x4CreateFromYawPitchRollTest2() ``` +4883 area-Infrastructure Resource editing stopped working in VS on corefx projects Attempting to open a Strings.resx now fails with an error like this: ![capture](https://cloud.githubusercontent.com/assets/2642209/11661432/e1eb2c5a-9d9f-11e5-80f6-83f2bf18254e.PNG) Seems to have started happening in the last week or two. +4884 area-Infrastructure IntelliSense/coloring/etc. broken in corefx projects Within the last few weeks, something has changed to break IntelliSense, coloring, etc. within corefx projects. For example, open a test project: [Fact] attributes aren't colored, no IntelliSense is provided for the Assert class, etc. And IntelliSense within src assemblies appears to be pulling from the full framework rather than from the actually referenced corefx assemblies. +4887 area-System.Net Allow test infrastructure to work for specialized Windows 10 tests Some Windows CoreFx features like System.Net.Sockets socket option SocketOptionName.ReuseUnicastPort require a specific version of Windows (10) and customized networking configuration using Powershell scripts. And changing these settings requires a machine reboot. This is difficult to test in the current CI environment. Need to find a way to create 'disposable' test machines/VM's with these customized settings so that these kinds of specific tests can be automated. +4888 area-System.Net Add System.Net.Sockets, SocketOptionName.ReuseUnicastPort As per the System.Net.\* API review dotnet/apireviews#21 adding back the SocketOptionName.ReuseUnicastPort enum value. Also, reserving SocketFlags.MaxIOVectorLength=16 enum value to prevent future conflicts. Part of #4732 +4890 area-System.Net AcceptV6BoundToAnyV6_Success failed on OS X in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst_prtest/66/console ``` 12:50:37 System.Net.Sockets.Tests.DualMode.AcceptV6BoundToAnyV6_Success [FAIL] 12:50:37 System.ArgumentException : The supplied System.Net.Internals.SocketAddress is an invalid size for the System.Net.IPEndPoint end point. 12:50:37 Parameter name: socketAddress 12:50:37 Stack Trace: 12:50:37 at System.Net.Sockets.IPEndPointExtensions.Create(EndPoint thisObj, SocketAddress socketAddress) 12:50:37 at System.Net.Sockets.Socket.Accept() 12:50:37 at System.Net.Sockets.Tests.DualMode.Accept_Helper(IPAddress listenOn, IPAddress connectTo) ``` +4891 area-System.IO "GZipStream always writes a header with the OS set to ""Windows"" even on Unix" "`GZipStream` [always](https://github.com/dotnet/corefx/blob/085865e6f375d11dd1d5dd815b251356b0f88d2b/src/System.IO.Compression/src/System/IO/Compression/GZipUtils.cs#L43) writes a header with the OS member set to ""Windows"" (0). When running on Unix, should it be set to ""Unix"" (3)? Or maybe even ""unknown"" (255) for all OSes? From the [RFC](http://www.zlib.org/rfc-gzip.html#header-trailer): ``` OS (Operating System) This identifies the type of file system on which compression took place. This may be useful in determining end-of-line convention for text files. The currently defined values are as follows: 0 - FAT filesystem (MS-DOS, OS/2, NT/Win32) 1 - Amiga 2 - VMS (or OpenVMS) 3 - Unix 4 - VM/CMS 5 - Atari TOS 6 - HPFS filesystem (OS/2, NT) 7 - Macintosh 8 - Z-System 9 - CP/M 10 - TOPS-20 11 - NTFS filesystem (NT) 12 - QDOS 13 - Acorn RISCOS 255 - unknown ``` Now that the managed inflater/deflater implementation has been removed in #4874, perhaps it'd be a good time to refactor the gzip implementation to have zlib handle it entirely (zlib can be configured to write the gzip header/footer itself). This should take care of the header OS issue (let zlib handle it) and would reduce the number of lines of code that needs to be maintained in CoreFX, allow zlib to handle the crc32 calculation on its own, and avoid unnecessary allocations associated with having to create instances of `GZipFormatter` and intermediate `byte[]` buffers for the header/footer. cc: @ianhays, @stephentoub " +4895 area-System.IO Remove custom header writing in System.IO.Compression in favor of Zlib Now that we removed the managed implementations for compression, we should consider removing the manual header writing/reading in favor of calling the zlib header setter/getter. Diverged from #4891 where the discussion started. +4897 area-System.Net Change System.Net.Sockets, SocketOptionName.ReuseUnicastPort behavior on *NIX See related PR #4888. Change *NIX to throw SocketException (instead of PlatformNotSupportedException) when doing a Set/Get SocketOption with SocketOptionName.ReuseUnicastPort. +4899 area-System.Net System.Net.Requests.Tests seg faulting on shutdown on Unix Most of our test runs recently started failing on Unix when the System.Net.Requests.Tests are shutting down. It appears to be due to an interaction between https://github.com/dotnet/coreclr/pull/2207 and something in our System.Net.Http implementation related to multi and easy handle cleanup. @kouvel and I are investigating. +4900 area-System.Net Implement SocketAsyncEventArgs FILE_SKIP_COMPLETION_PORT_ON_SUCCESS - TODO Tracking Issue While there is a TODO comment for this in SocketAsyncEventArgs, I think this is important enough to be tracked as an issue. +4906 area-System.Net Support HttpRequestMessage.Version in WinHttpHandler WinHttpHandler was currently ignoring the `HttpRequestMessage.Version` property and was always sending out requests using 'HTTP/1.1' which is the default for winhttp. This fix now will look at the request message `Version` property and send out the request using either 1.0 or 1.1. If neither of these versions are specified, then the request is sent out using the default winhttp version (which is currently 1.1 as of Windows 10). Note: The .NET Framework (Desktop) will throw an exception if neither 1.0 nor 1.1 version is specified. Currently CoreFx including NETNative, WinHttpHandler and CurlHandler will simply use a default instead of throwing. While this is different behavior than Desktop, it is more desirable in the long run. There is a separate issue #4870 to add HTTP/2.0 support to WinHttpHandler. Fixes #4754 +4907 area-System.Globalization CompareOptions.IgnoreSymbols only ignores punctuation on Unix, but not other symbols When using CompareOptions.IgnoreSymbols for string comparison on Unix, we are using the ICU option ALTERNATE_HANDLING = SHIFTED. This effectively ignores any punctuation characters: ! - . , etc. However by default, ICU only includes punctuation characters, and not other symbols, like currency and math symbols. We need to ignore these characters on Unix as well when IgnoreSymbols is set to true. +4909 area-System.Console Share GetCharset() for Unix We need to use this code as well in SQL Client for Unix. In Windows we use Windows API to get windows locale. I will be reusable if this code can be shared in CurrentCulture.CharSet() (CultureInfo). +4910 area-System.Net Optimize error handling around chain.Build in WinHttpHandler This was a TODO item from #2165 suggested by @bartonjs. The X509CertificateChain.Build() method returns a boolean indicating if there were errors building the chain. It's more performant to check that instead of inspecting the individual fields in the chain. +4913 area-System.Net Fix two issues in SelectAndPollTests "1. The timeout value used in the tests was written assuming the unit was milliseconds, but microseconds is actually used. This meant we were passing in a timeout of 5 milliseconds instead of 5 seconds. Changed to use the right value. 2. The SelectRead_Multiple_Success test attempts to use Select as a form of ""when all"", passing in two sockets and expecting that it'll find both have data available. But the data is available asynchronously from the send, and Select returns when at least one of the sockets is readable. As a result, there's a race condition that results in the test failing sporadically: on my machine, it fails ~15 out of every 1000 runs. I've fixed the test by looping until either the timeout is reached or we find both sockets available, whichever comes first. Fixes #4686 cc: @pgavlin, @CIPop, @davidsh " +4915 area-System.Net Remove dead code from System.Runtime Remove unused private fields, methods, nested types and resource strings. +4916 area-System.IO FileSystemWatcher_Changed_FileInNestedDirectory failed in CI on OpenSUSE http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/opensuse13.2_debug_tst_prtest/126/console ``` 15:21:12 ChangedTests.FileSystemWatcher_Changed_FileInNestedDirectory [FAIL] 15:21:12 Didn't observe a nested created event within 30000ms 15:21:12 Expected: True 15:21:12 Actual: False 15:21:12 Stack Trace: 15:21:13 at Utility.ExpectEvent(WaitHandle eventOccurred, String eventName, Int32 timeout) 15:21:13 at Utility.TestNestedDirectoriesHelper(WatcherChangeTypes change, Action`2 action, NotifyFilters changeFilers) 15:21:13 at ChangedTests.FileSystemWatcher_Changed_FileInNestedDirectory() ``` +4917 area-System.IO Remove custom header writers in System.IO.Compression Now that we removed the managed implementations for compression we can remove the manual header writing/reading in favor of calling the zlib header setter/getter. I also cleaned up the constructors a bit and removed some now dead code. resolves #4895. Also affects #4891: this PR uses zlib for gzip header generation without calling DeflateSetHeader. This means that the OS value in the Gzip header will be set based on the platform zlib was compiled to. This PR will therefore need to be updated if we decide to go a different route than using the default behavior. +4919 area-Infrastructure VS: Create tool to generate VS .sln from .builds files Continuing #4901 @weshaggard I suggest keeping this open just for a little bit longer. > We want to keep libraries isolated so they can ship independent of each other and in general we want the libraries to depend upon the lowest version of the package that contains the necessary dependencies, and not have project references to the live versions of their dependent libraries. This goal is completely orthogonal to the pain points I listed. Inter-project dependencies are a fact and attempting to solve the granularity problem (Packages or not) by trading in developer productivity is simply a mistake, and if you insist to compare apples to oranges than aiding to code comprehension is by far more important to correctness. Technically there is nothing that prohibits someone from directly referencing any other project (csprog) . (something which is already being done between existing projects in the corefx repo). What constitutes the right level of package isolation can only be determined by peer code-review not the build system. Suggesting that independent build scripts solve the problem is a misunderstanding of the problem because build scripts are also modified to create dependencies just in a less visible way. > For cases were folks have a desire to run tests against the live versions of all the dependencies built in the repo people can pass /p:TestWithLocalLibraries=true when building test projects Building unit tests is a minor problem and has nothing to do with this issue. The fundamental problem is Navigating the source (Goto To Definition) and Debugging (Step Into) _across different implementation projects and test projects using Visual Studio_ again, aiding to code comprehension should be a key requirement. (WinDbg - Forget it!) We need to automatically generate a solution that references projects (csproj) that live in parallel to the independent existing project csproj. What gets into final Nuget packages or specified in the project.json is a completely different issue. Failing to address this is a pushback to potential contributing (a.k.a volunteering) efforts - a financial lose for the project. +4925 area-System.Security Add PackageTargetRuntime to System.Security.Principal.Windows to name supported OSes Update the .csproj in System.Security.Principal.Windows to specify for only the runtimes it supports. Right now, the package believes a Linux implementation exists but inserts the Windows implementation, causing consumers to break at runtime if they attempt to use it. +4927 area-System.Net Specifying SSL3.0 throws an exception when trying to authenticate with SslStream In PR #4483 a change was made which causes an exception to be thrown when requesting SSL3.0. This is the wrong behavior for the following reasons: - Existing code written for the desktop may fail with an exception - There's no compile time error when writing code which is guaranteed to fail at runtime - An exception can be thrown even when SSL3.0 wouldn't be used even though specified - Inconsistent behavior with other mechanisms to disable SSL3.0 **Existing code written for the desktop may fail with an exception** Any code written for the desktop which specifies SSL3.0 will now throw an exception, but the developer may not discover this until after code has been released. If a third party library developer is able to port their code to core clr with minimal changes, they may not test every code path in their library on core clr. This is becoming more and more likely now that we support Linux and OSX as many developers won't have the capability to verify their code on those platforms. They should be able to expect that as long as the api surface is available, that their code will behave the same on all platforms that support the api. **There's no compile time error when writing code which is guaranteed to fail at runtime** If I create an SslStream and try to authenticate to a remote host specifying SSL3 | TLS | TLS11 | TLS12 in a call to AuthenticateAsClient, this method call is now guaranteed to fail at runtime 100% of the time. That code is deemed invalid and yet there's no compile time warning or error. This is a bad developer experience. **An exception can be thrown even when SSL3.0 wouldn't be used even though specified** On desktop and with the prior behavior, if I pass the list SSL3 | TLS | TLS11 | TLS12 to SslStream.AuthenticateAsXXXXX at both ends of a stream I'm attempting to secure, SSL3 won't get negotiated as a higher protocol will attempt to be established. This change causes an application/library which wouldn't have resulted in an insecure connection being negotiated now having a runtime failure despite still being secure. **Inconsistent behavior with other mechanisms to disable SSL3.0** Other mechanisms where SSL3.0 can't be used are the protocol being disabled at the OS level (registry change in Windows for example), or the remote end not supporting SSL3.0. In either of these cases, specifying SSL3.0 can't result in SSL3.0 being used as it's been made unavailable, and as long as other protocols have been specified the connection will be negotiated without any problem. If SSL3.0 was the only protocol specified, then an exception would be thrown stating that a secure connection wasn't able to be negotiated. Throwing a different exception because SSL3.0 has been disabled via a different mechanism (hard coded in .NET networking code) is an inconsistent response to the same basic reason (support for the protocol has been disabled for security reasons). Specifying the protocol to use is a negotiation and there's no guarantee that any one protocol that was specified can or will be used as there are other dependent factors (OS support, remote party protocol support etc). If SSL3.0 (or 2.0) is specified, simply removing it from the list passed down to lower layers (such as SCHANNEL) without any error or exception is compatible with the purpose of specifying which protocols to use in that it's a negotiation and there's no guarantee that everyone agrees to the same list. If only SSL3.0 or SSL2.0 are specified, then there are no alternatives so I could see failing fast and informing by exception that those protocols aren't supported. But in that situation you would be guaranteed a failure regardless of mechanism to disable the protocol and you wouldn't be breaking code which otherwise would continue working had a different mechanism been used to disable these protocols. When other more secure protocols have been specified, there's no need to fail the request, just don't use the insecure protocols. I would suggest having the following behavior(s): - Bitwise AND any specified protocols with the compliment of (SSL3 | SSL2) to disable their usage when applying the specified protocols (so as not to break round-tripping of property getter and setter values). - Optionally throw an exception if only unsupported protocols have been specified. - Optionally, if SSL3/SSL2 were specified along with other protocols but a secure connection was unable to be negotiated, have a special exception message noting that SSL3/SSL2 are no longer supported to give a hint to a possible cause +4928 area-System.Runtime Add StringBuilder append methods to StringBuilder. This is useful for more complicated string manipulation (interop in particular). See CoreCLR issue: https://github.com/dotnet/coreclr/issues/1843 And PR: https://github.com/dotnet/coreclr/pull/2287 @terrajobst; @vancem Per the discussion below the following is the *new* proposal: ### (NEW) APIs being added ``` diff namespace System.Text { public sealed class StringBuilder { + // Parameter handling to match existing string Append methods + public StringBuilder Append(StringBuilder value) + public StringBuilder Append(StringBuilder value, int startIndex, int count) } } ``` ### REJECTED Proposal: ``` diff namespace System.Text { public sealed class StringBuilder { + public StringBuilder(StringBuilder value) + public StringBuilder(StringBuilder value, int capacity) + public StringBuilder(StringBuilder value, int startIndex, int length, int capacity) } } ``` +4930 area-System.Net Remove dead code from System.Private.Uri Remove unused private fields, methods, nested types and resource strings. +4934 area-System.Net Got System.IO.Exception When Expecting a Not-Found Response "https://github.com/dotnet/wcf/issues/87 seems caused by an issue in System.Net. I have a repro for the issue. To repro the issue, you can add the following test in System.Net.Http.Functional.Tests and run the test. ``` csharp [Theory, MemberData(""VerifyUploadServersStreamsAndExpectedData"")] public async Task PostAsync_CallMethod_StreamContent_NotFound(Uri remoteServer, Stream requestContentStream, byte[] expectedData) { int contentLenght = 1000000; using (var client = new HttpClient()) { // Ensure the service start HttpContent content = content = new StringContent( """", Encoding.UTF8, ""application/json""); client.PutAsync(""http://localhost:44283/resource/WcfService.TestResources.BasicHttpResource"", content).GetAwaiter().GetResult(); content = new StringContent(new string('a', contentLenght)); content.Headers.ContentMD5 = TestHelper.ComputeMD5Hash(expectedData); using (HttpResponseMessage response = await client.PostAsync(new Uri(""http://localhost:8081/BridgeAppDomain0/Basicnot-an-endpoint""), content)) { Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); } } } ``` Note that the test needs to use WCF's bridge service to repro the issue. The service is available on [One Drive](https://onedrive.live.com/redir?resid=CE2984E291F58617!3365&authkey=!ACO_zktAGj0aTZI&ithint=folder%2c). To start the service, download the 'bridge folder', and run the script SetupWCFTestService.cmd in bridge\tools. You need to start the service on your machine before running the test. Expect: the test passes. Actual: the test fails. Please feel free to contact me if you have any questions. Thanks. " +4935 area-System.Security Respond to PR code review comments for ported library System.Security.Claims @brentschmaltz as the owner of the System.Security.Claims library can you please have a look through the code review comments provided in https://github.com/dotnet/corefx/pull/4933 and address them appropriately. +4941 area-Infrastructure Consolidate facade projects With #4878 , we have a bunch of loose facade projects that can be consolidated into the other project for the library, and also a handful of facade projects in a subdirectory unnecessarily. We should go and consolidate those where we can. Here's a list from the tool I ran to detect such projects: - [ ] Microsoft.Win32.Primtives - [ ] Microsoft.Win32.Registry - [x] System.AppContext only has a 'facade' project - [x] System.Collections has a full facade and partial facade project that should be merged. - [x] System.Diagnostics.Contracts only has a 'facade' project - [x] System.Diagnostics.Debug has a full facade and partial facade project that should be merged. - [x] System.Diagnostics.Tools only has a 'facade' project - [x] System.Diagnostics.Tools has a full facade and partial facade project that should be merged. - [x] System.Diagnostics.Tracing only has a 'facade' project - [x] System.Globalization only has a 'facade' project - [x] System.Globalization.Calendars only has a 'facade' project - [ ] System.IO has a full facade and partial facade project that should be merged. - [x] System.Reflection only has a 'facade' project - [x] System.Reflection.Emit only has a 'facade' project - [x] System.Reflection.Emit.ILGeneration only has a 'facade' project - [x] System.Reflection.Emit.Lightweight only has a 'facade' project - [x] System.Reflection.Extensions only has a 'facade' project - [x] System.Reflection.Primitives only has a 'facade' project - [x] System.Resources.ResourceManager only has a 'facade' project - [x] System.Runtime only has a 'facade' project - [x] System.Runtime has a full facade and partial facade project that should be merged. - [x] System.Runtime.CompilerServices.VisualC only has a 'facade' project - [x] System.Runtime.Extensions only has a 'facade' project - [x] System.Runtime.Extensions has a full facade and partial facade project that should be merged. - [x] System.Runtime.Handles only has a 'facade' project - [x] System.Runtime.Handles has a full facade and partial facade project that should be merged. - [x] System.Runtime.InteropServices only has a 'facade' project - [x] System.Runtime.InteropServices has a full facade and partial facade project that should be merged. - [x] System.Runtime.InteropServices.WindowsRuntime only has a 'facade' project - [x] System.Runtime.Loader only has a 'facade' project - [x] System.Runtime.Serialization.Json only has a 'facade' project - [x] System.Runtime.Serialization.Xml only has a 'facade' project - [x] System.Security.AccessControl only has a 'facade' project - [ ] System.Security.Claims only has a 'facade' project - [x] System.Text.Encoding only has a 'facade' project - [x] System.Text.Encoding.Extensions only has a 'facade' project - [x] System.Threading only has a 'facade' project - [x] System.Threading has a full facade and partial facade project that should be merged. - [x] System.Threading.Tasks only has a 'facade' project - [x] System.Threading.Tasks has a full facade and partial facade project that should be merged. - [x] System.Threading.Thread only has a 'facade' project - [x] System.Threading.ThreadPool only has a 'facade' project - [x] System.Threading.Timer only has a 'facade' project +4942 area-System.ComponentModel Some ValidationAttributes are stateful. "CompareAttribute has the property OtherPropertyDisplayName, which is set to the otherProperty value you passed in until you call IsValid, at which point it becomes the other properties actual DisplayName. RangeAttribute has an overload which takes a type and lets you give it string for Min and Max, however those strings aren't converted until you call FormatErrorMessage. Both of these instances of statefulness make the attributes unpredictable and require gross hacks. If for example you call the Minimum property of RangeAttribute before and after calling FormatErrorMessage you might first get ""0"" then 0d (which is not a side effect one would expect without examining the source). Now you have to keep track of whether you've called that or not when looking at Minimum and Maximum so you know what to expect. I understand that throwing in setters and Attribute constructors is bad, but perhaps the work could be done in the getters so that it's never wrong and any exceptions don't break attribute construction. " +4945 area-System.Net Redirected request's absolute uri is missing the query string information on CoreClr and Linux "I have a http client which tries to communicate to a secure endpoint. This endpoint authorizes the request and redirects if the user is not authenticated. Some of tests are failing due to different api behavior when on windows and linux platforms. **CoreClr and Windows** http://localhost:5000/Account/Login?ReturnUrl=%2Fadmin%2Fstoremanager <--- **this is fine** --- http://localhost:5000/Admin/StoreManager StatusCode: 302, ReasonPhrase: 'Found', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { Date: Fri, 11 Dec 2015 20:03:29 GMT Location: http://localhost:5000/Account/Login?ReturnUrl=%2FAdmin%2FStoreManager Server: Kestrel Content-Length: 0 } **CoreClr and Linux** http://localhost:5000/Admin/StoreManager <--- **note this** --- http://localhost:5000/Admin/StoreManager StatusCode: 302, ReasonPhrase: 'Found', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { Date: Fri, 11 Dec 2015 20:00:46 GMT Location: http://localhost:5000/Account/Login?ReturnUrl=%2FAdmin%2FStoreManager Server: Kestrel Content-Length: 0 } **Repro** ``` using System; using System.Net.Http; namespace ConsoleApp24 { public class Program { public static void Main(string[] args) { WithAutoRedirect(); Console.WriteLine(""-------------""); NoAutoRedirect(); } private static void WithAutoRedirect() { var client = new HttpClient(); client.BaseAddress = new Uri(""http://localhost:5000/""); var response = client.GetAsync(""admin/storemanager"").Result; Console.WriteLine(response.RequestMessage.RequestUri); } private static void NoAutoRedirect() { var clientHandler = new HttpClientHandler() { AllowAutoRedirect = false }; var client = new HttpClient(clientHandler); client.BaseAddress = new Uri(""http://localhost:5000/""); var response = client.GetAsync(""Admin/StoreManager"").Result; Console.WriteLine(response.RequestMessage.RequestUri); Console.WriteLine(response); } } } ``` cc @Tratcher " +4950 area-Infrastructure tags don't correspond to nuget releases I tried to find the source for for https://www.nuget.org/packages/System.Reflection.Metadata/ v 1.1.0 and https://www.nuget.org/packages/System.Collections.Immutable/ v 1.1.37 Unfortunately, tags are out-of-sync with nuget releases. +4953 area-System.IO Increase Code Coverage for System.IO.FileSystem.AccessControl @GiriSr as the owner of the System.IO.FileSystem.AccessControl library can you please have a look through the code review comments provided in https://github.com/dotnet/corefx/pull/4946 and address them appropriately. +4955 area-System.Data Fix Localization Issues on Linux Due to Unsupported Windows DLLs "Bypasses Windows localization references on Linux/OSX by using hardcoded English-US locale constants. Using the Windows localization DLLs on Linux/OSX causes DLL load failure issues. Once actual localization support is added for Linux/OSX, these workarounds can be removed. Same DLL load issue as in: https://github.com/dotnet/corefx/issues/4579 This DLL load issue also caused the problems seen in: https://github.com/dotnet/corefx/issues/4676 ^ The Close() error in the issue 4676 is due to packet data processing issues in a graceful close that was caused by a caught load-DLL exception. Basically, the localization DLL load throws an Exception, and when we catch this exception we try to do some cleanup & close on a DataReader. This throws another exception due to invalid packet data caused by the original DLL exception. Thus the true cause was being masked by this new ""connection error"" exception in SqlDataReader.Close(). " +4960 area-System.Net HttpClient not sending cookies which were part of earlier redirect response in Core Clr I am using CoreClr version of HttpClient on my Windows 10 OS. **Scenario:** Successful login will redirect the user to a page where the logging in user info is displayed **Issue:** Since the necessary cookie is not present, the system thinks that the user is not logged in **Trace of calls for the above scenario(Note: all these messages were logged at the server side)** --- Request: _request for login page_ GET /account/login ||Connection: Keep-Alive||Accept-Encoding: gzip, deflate||Cookie: U58hr9PQBAQ=CfDJ8IcTvLBrmYtHm19jNmsLC62rbm_jC2LBGRmurk0fd2R9YeGdeOLdRpC-rEVSSK24hsMjOToMUnjgo_cZwFLrDge_a0sHVy5eJc9qYkjYvThiFcG7MA9MB-HYLsoxlQIzT6v8tmAUbTOZ-39AakEWLTI; .AspNet.Session=7e8cee49-8d6b-6ab5-357b-d29e964af60d||Host: localhost:5000 Response: _login page sent to client_ 200 GET /account/login ||Date: Sat, 12 Dec 2015 14:27:39 GMT||Transfer-Encoding: chunked||Content-Type: text/html; charset=utf-8||Server: Kestrel|| Request: _client request to login with details of username and password_ POST /Account/Login ||Connection: Keep-Alive||Content-Length: 69||Content-Type: application/x-www-form-urlencoded||Accept-Encoding: gzip, deflate||Cookie: U58hr9PQBAQ=CfDJ8IcTvLBrmYtHm19jNmsLC62rbm_jC2LBGRmurk0fd2R9YeGdeOLdRpC-rEVSSK24hsMjOToMUnjgo_cZwFLrDge_a0sHVy5eJc9qYkjYvThiFcG7MA9MB-HYLsoxlQIzT6v8tmAUbTOZ-39AakEWLTI; .AspNet.Session=7e8cee49-8d6b-6ab5-357b-d29e964af60d||Host: localhost:5000|| Response: _server successful login response with redirect to home page /_ 302 POST /Account/Login ||Cache-Control: no-cache||Date: Sat, 12 Dec 2015 14:27:39 GMT||Pragma: no-cache||Expires: -1||Location: /||Server: Kestrel||Set-Cookie: .AspNet.Microsoft.AspNet.Identity.Application=CfDJ8IcTvLBrmYtHm19jNmsLC60z9IhWh_D65HPs01cDjGLzpfs5B5SeoX4k5tem5BqxDavdDWtijmOSUKuWw_lkI3PEeWJjUHn_mk8ArChjrFgySrEuCSkQMZU4vGVL3R3F2_aNbpixFkI3Oh2_PN1VF9Peb1XUJJTZDCDLlUFP7QSreFC4qaiJWaWTpGdp-_nStQSr2OzP5qAvqbGn2ME4fICTfm7BqWas_h_WaZPWjOwRT68V9ewibMxR2odTbcQf3Bqie1IEx2kjwiYLdXrzaT2sc-TmzKnNSTELgWmCVBdV27dMM2YGlwUOIL_YTgyAqCNLSO_YjfG8_gTODvhjTCJ9ff8hc_xTx0PYiZMdah5oNZPmAyAC2FJh_hWCRQD1jzgDVVGp2le9TaEw6XPdvsa_2u1HbjH_vRBIdtd49i9ZJv9Z_rO5X3PDgTYkAahAlGx7ym_vDOTZA-VC3KvM-JMOyIfcjYjovU9QkhsXBg8UI5COArVxLPXHSyXADoltftMxOg8oKBdl-55I8bKe-0ep6haIAz6ozlSFR41fEQN_j9kyNCaSjZYGu6-A6Qu8YP6tGEb3EPGhicE15NtrkDj7YhnJruOGKip2ZMvv-V0xg1UfzmNgOvvpMZHElbFsL2jlPaP0nzPn4uffArK6hlxo_ExYOdp596omQjPCF4h-; path=/; httponly|| **NOTE:** This call is missing the `.AspNet.Microsoft.AspNet.Identity.Application` cookie Request: _client request to home page_ GET / ||Connection: Keep-Alive||Accept-Encoding: gzip, deflate||Cookie: U58hr9PQBAQ=CfDJ8IcTvLBrmYtHm19jNmsLC62rbm_jC2LBGRmurk0fd2R9YeGdeOLdRpC-rEVSSK24hsMjOToMUnjgo_cZwFLrDge_a0sHVy5eJc9qYkjYvThiFcG7MA9MB-HYLsoxlQIzT6v8tmAUbTOZ-39AakEWLTI; .AspNet.Session=7e8cee49-8d6b-6ab5-357b-d29e964af60d||Host: localhost:5000|| Response: 200 GET / ||Date: Sat, 12 Dec 2015 14:27:39 GMT||Transfer-Encoding: chunked||Content-Type: text/html; charset=utf-8||Server: Kestrel|| --- **NOTE** that this scenario works fine with regular desktop HttpClient. @Tratcher +4961 area-System.Collections Stack and Queue should allow for random access in constant time The `Stack` and `Queue` classes algorithmically could allow for random access in constant time. At the moment this is not represented in the API surface of those types. I propose to lift that restriction. In fact most members of `List` could be made available on `Stack` and `Queue` as well. Really, `Stack` and `Queue` are mostly different ways to index and interpret an underlying array. There is no reason a `Stack` could not have for example `Remove(T)` or a `RemoveAll(Func)` methods just like `List` has. I propose in priority order: 1. Add `get` indexers to `Stack` and `Queue` 2. Add the core read and write methods that are required for users to implement the remaining ones. I think that would be `Insert`, `RemoveAt` and a `set` indexer. 3. Add as many `List` methods as seems appropriate to `Stack` and `Queue`, copying them from `List`. I don't see a reason why the set of methods to copy should be limited. We could go for feature parity. This issue seems like a good candidate for a community contribution. +4963 area-Infrastructure Top-level dir.props claims Roslyn can't build PDBs on Unix In particular, this piece of (Unix-only) code: ``` xml false none ``` ... claims that it's necessary to disable PDBs when building on Unix because dotnet/roslyn#2449 wasn't yet ready. However, that's been implemented, so perhaps this doesn't need to stay disabled anymore? Also note this, just a bit further down in the same Unix-only block: ``` xml true ``` (And, um, while we're looking at this comment: Windows is the one that uses backslashes as directory separators, not Unix, and you don't seem to have any nuspec files in this repository, so I'm not sure where any unexpected backslashes could be creeping in from.) +4964 area-System.Collections CreateSetComparer methods for HashSet<> and SortedSet<> This methods exists in the .NET Framework: [here](https://msdn.microsoft.com/en-us/library/bb335475.aspx) and [here](https://msdn.microsoft.com/en-us/library/dd321103.aspx). I know, this methods has a some issues and I want report about it and, probably, try to fix it. Are these methods still supported? If not, class [SortedSetEqualityComparer](https://github.com/dotnet/corefx/blob/d43a8a92151b2af9073257bd3c40160dd7404927/src/System.Collections/src/System/Collections/Generic/SortedSet.cs#L2419) should be removed. +4967 area-System.Net Cookie Tests Added tests, especially for CookieContainer/Parser/Tokenizer/Collection +4968 area-System.Net "UDP Socket.ConnectAsync result in ""An invalid argument was supplied Error Code:10022""" "For version RC1 A very simple call failed and throw exception ""An invalid argument was supplied Error Code:10022"" Repro: ``` var c = new UdpClient(); c.Client.ConnectAsync(""114.114.114.114"", 53).Wait(); ``` It works with sync mode: ``` var c = new UdpClient(); c.Client.Connect(""114.114.114.114"", 53); ``` Let me know if it's not a bug " +4969 area-System.Data SqlParameter Scale and Precison properties should override DbParameter implementations # Background In the desktop framework, The System.Data namespace included a set of interfaces from the .net 1.1 era. DbParameter implemented the IDbParameter interface which included the Scale and Precision properties. When System.Data was added to corefx, the interfaces were dropped since the abstract classes had been preferred since .net 2.0 and forward. @mgravell noticed ( #1612 ) however, that when the interfaces were removed, the Scale and Precision properties were broken. For some reason they used the interface to call the child implementation instead of traditional class inheritance. You can see the old implementation here : http://referencesource.microsoft.com/#System.Data/System/Data/Common/DBParameter.cs,68 The net result is that calling Scale or Precision on a SqlParameter object **casted to a DbParameter** is a no-op. This is the problem. # Motivation The are 3 motivators for this change. 1. Maintaining perceived behavior from the desktop framework 2. Implementing the path of least surprise 3. Enabling DB agnostic code (very important) The first point being that the following 2 statements are equivalent in .net 4.5 ``` C# SqlParameter param = new SqlParameter(); param.Scale = 1; ``` and ``` C# DbParameter param = new SqlParameter(); param.Scale = 1; ``` Whereas they are not currently equivalent in corefx. The 2nd statement will **not** update the value of Scale. The same behavior applies to the Precision property. The second motivation is that this kind of behavior difference is very unexpected. Most developers would assume that the behavior of setting or reading a property would not change due to inheritance. Lastly if you wanted to write DB agnostic code that only used the Db\* classes, you would be unable to set these parameters without a test and cast special case down to SqlParameter. # Proposed Change Simply alter SqlParameter to make Scale and Precision override the DbParameter implementations. # Risks I can see two _possibly_ breaking changes here: 1. Calling Scale and Precision from DbParameter now returns the SqlParameter implementation 2. Scale and Precision on SqlParameter are now virtual and therefore overridable The first one, is actually the existing behavior under .net. The SqlParameter members implicitly implemented the interface and get called from the parent (DbParameter) by it casting itself to the interface. The net result was the child implementation getting called. The second is not actually observable since SqlParameter is sealed and therefore no child classes can break. Now lets say that a 3rd party library was inheriting from DbParameter. They would more than likely just override Scale and Precision directly in .net. In core they could only do that, so this should not present a breaking change to existing or ported libraries. So i think that this is a safe change to make unless someone wrote code against corefx that was counting on DbParameter.Scale always being zero regardless of what they assigned it. Therefore **I believe this change has minimal risk in breaking code.** # Pull Request The changes are implemented here #4902 +4970 area-System.Diagnostics An argument for dnx to set the process name _From @tuespetre on December 5, 2015 17:36_ Since ASP.NET 5 is aiming to provide a highly scalable, deployable, or otherwise 'cloud-friendly' approach to writing applications, I think it is important to discuss [the 'processes' components of the twelve-factor methodology:](http://12factor.net/processes) > ... a production deploy of a sophisticated app may use many process types, instantiated into zero or more running processes. In order to properly identify the running instances of a process, it can be useful for each process to have a distinct name. This allows processes to be easily identified through various user interfaces and command line utilities that provide information on a node's running process, and if set via command-line arguments, allows other utilities like Powershell DSC to distinguish the instances of the running processes that they are supposed to manage. I realize this can be implemented within each application with very little effort but I hadn't seen a discussion on this yet so I wanted to hear some other opinions. _Copied from original issue: aspnet/dnx#3235_ +4973 area-System.IO Re-enable DriveInfo VolumeLabel test resolves #1355 +4976 area-System.Diagnostics Address reviews for porting System.Diagnostics.StackTrace to open @noahfalk Please address the comments posted to PR related to porting System.Diagnostics.StackTrace here https://github.com/dotnet/corefx/pull/4972#issuecomment-164534670 +4980 area-System.Net SMTP Client does not use correct MediaType for Body when Alternate Views are Specified "Hi DotNet: I've found a bug in System.Net.Mail. First, here's how you replicate the issue: ``` var MessageTest = new System.Net.Mail.MailMessage(FromAddress, ToAddress); MessageTest.Body = ""This is HTML""; MessageTest.IsBodyHtml = true; MessageTest.AlternateViews.Add(System.Net.Mail.AlternateView.CreateAlternateViewFromString(""This is text"", Encoding.ASCII, ""text/plain"")); Server.Send(MessageTest); ``` You'll notice that I am sending an HTML email that has a plaintext alternate view. The problem that occurs is that the message gets generated like so: ``` ----boundary_0_f09cf3de-0b0f-45cf-960c-47ec45675f7e Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable This is HTML ----boundary_0_f09cf3de-0b0f-45cf-960c-47ec45675f7e Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable This is text ----boundary_0_f09cf3de-0b0f-45cf-960c-47ec45675f7e-- ``` If you look at that content above, you'll see that the HTML part has its content-type as text/plain. After digging through the System.Net.Mail.MailMessage class with JustDecompile, I have found the issue: in the lines following the elseif ``` else if (this.AlternateViews.Count != 0 || this.Attachments.Count <= 0) ``` there is this line: ``` this.bodyView = AlternateView.CreateAlternateViewFromString(this.body, this.bodyEncoding, null); ``` You'll notice that null is passed in as the last parameter. This is the error. ""text/html"" should be passed in if IsBodyHtml is set to true and, otherwise, ""text/plain"" should be passed in. Can you please fix this bug? Thanks! " +4981 area-System.Security Respond to PR code review comments for ported library System.Security.AccessControl @GiriSr as the owner of the System.Security.AcessControl library can you please have a look through the code review comments provided in https://github.com/dotnet/corefx/pull/4977 and address them appropriately. +4984 area-System.Linq Reduce methods in UnaryExpression and BinaryExpression don't honor mutable struct semantics "Found while working on extended expression tree support for C#: ``` csharp // Prints 5 { var s = new S(); s.X += 5; Console.WriteLine(s.X); } // Prints 0 { var s = Expression.Parameter(typeof(S), ""s""); var x = Expression.Field(s, ""X""); var e = Expression.Lambda( Expression.Block( new[] { s }, Expression.Assign(s, Expression.New(typeof(S))), Expression.AddAssign(x, Expression.Constant(5)), Expression.Call(typeof(Console).GetMethod(""WriteLine"", new[] { typeof(int) }), x) ) ); var f = e.Compile(); f(); } ``` where ``` csharp struct S { public int X; } ``` The culprit is in `ReduceMember` and `ReduceIndex` in `UnaryExpression` and `BinaryExpression` where the receiver of the LHS is copied to a temporary. Those should really capture a `ref` to the value rather than making a copy of the value. Unfortunately, blocks don't support `ByRef` variables (if they would escape the stack frame, things would go terribly wrong of course), so options are: - do nothing and consider this behavior to be expression-specific; extension nodes for languages like C# and VB need to deal with it themselves; - make the copying behavior for receivers less aggressive; if the target is classified as a variable, the copy can be avoided (also the case of accessing a field with a mutable struct); - use a write-back approach (not desirable knowing that there are perfectly suited IL instructions to deal with reference indirection for loads and stores); - support ByRef variables in blocks which would need escape analysis in the lambda compiler to ensure verifiable code gets emitted. Obviously, any change here would be considered a breaking change. Nonetheless, this is an interesting behavior that can cause issues when layering language-specific extension nodes on top of the existing API. " +4986 area-System.Security Investigate adding common Linux crypto algorithms Most of the crypto algorithms that .NET supports on Windows are now included in CoreFX. However, there are a number of algorithms in common use on Linux that .NET doesn't support. We should investigate if there are some from that set that we should support for better integration with other Linux components. That would include assessing the current security of the algorithms. This would likely also require finding a way to have them work on Windows (and other OSes). Some possibilities include: - BCrypt hash algorithm - Blowfish (possibly only for BCrypt) - TwoFish - ThreeFish - GPG +4988 area-System.Net CurlHandler Fix for request uri during redirect CurlHandler is fixed to set the Response.RequestMessage.RequestUri to the redirected uri. Fixes #4945 +4989 area-System.Net Provide a way for developers to self-instantiate a server for networking API tests Most of the tests for networking APIs (e.g. System.Net.Sockets, System.Net.Http, etc.) depend on a setup where the client machine exchanges data with a remote server (since loopback to same host introduces unsolicited optimizations). In order to allow developers to test their PR locally, it would be great to have a script that sets up a server on their machine with a consistent set of configurations, features and settings. The developer can then run the suite of tests against this server to validate their PR. Today, tests run the tests against an Azure server. This issue tracks the creation and publishing of a script for setting up a local server. +4991 area-System.IO System.IO.Compression: Path validation of zip entries is done based on current OS "When reading a Zip file, calls are made to Path validation that check invalid characters based on the current OS. This brings about ArgumentException errors with the message ""Illegal characters in path."" Example repro: - Linux commands: - touch ""ab"" - zip newzip.zip ""ab"" - copy newzip.zip to Windows - Windows console app: ``` using System; using System.Diagnostics; using System.IO; using System.IO.Compression; class Program { static void Main() { using (ZipArchive archive = new ZipArchive(new FileStream(""newzip.zip"", FileMode.Open), ZipArchiveMode.Read)) { foreach (var entry in archive.Entries) { } } } } ``` Result: ``` Unhandled Exception: System.ArgumentException: Illegal characters in path. arameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path, Boolean checkAdditional) at System.IO.Path.GetFileName(String path) at System.IO.Compression.ZipHelper.EndsWithDirChar(String test) at System.IO.Compression.ZipArchiveEntry.set_FullName(String value) at System.IO.Compression.ZipArchiveEntry..ctor(ZipArchive archive, ZipCentralDirectoryFileHeader cd) at System.IO.Compression.ZipArchive.ReadCentralDirectory() at System.IO.Compression.ZipArchive.get_Entries() at Program.Main() ``` We should at least throw a more useful error message like ""Zip file contains files with invalid characters in the path names"". We should also consider modifying the checks to do path validation based on the zip's source OS instead of the current OS but will need to be careful to think about the ramifications of returning paths from Name and FullName that are invalid on the current system. @stephentoub @justinvp " +4992 area-System.IO System.IO.Compression: Add tests to ZipArchive for zips with invalid file names There are currently no tests for zip archives that contain files with invalid names. We should add these tests and the corresponding zips. The tests should cover zips that are created on Windows as well as those created on Unix since names that are valid on one will be invalid on the other. Should be done regardless of the outcome of #4991, though does depend on it. +4994 area-System.IO System.IO.Compression : Consider protection against zip bombs As folks tend to use the built in classes for random zipping and unzipping they are vulnerable to zip bombs. Consider adding a way to protect against this. Typically this involves decompressing in a separate process which is time limited, or examining the file entries looking for nested compressed files. +4997 area-System.Reflection System.Reflection.Assembly contract contains internal constructor causing friction for testing The contract for `System.Reflection.Assembly` contains a internal parameter-less constructor, although most implementations (all as far as I can see) have it protected. The internal constructor blocks compiling a type that derives from Assembly, which would be useful thing to create for testing purposes. This forces you to take different testing strategies depending on whether the tests targets .NET Core (you have to use Moq) or desktop .NET (then you can't use Moq because of `ISerializable` but you can easily create a test double that derives from Assembly). The internal constructor in the contract may very well be intentional and I think this is a very advanced scenario, but I wanted to raise it mainly because: 1. It would be nice if you could use a uniform and simple testing strategy for both .NET Core and desktop .NET. 2. The compilation error is very annoying and obscure: It is even hard to understand what is going on by looking at the source code of the implementation. As far I am aware you have to reverse engineer the ref assembly to see the internal constructor. 3. This might actually be a leftover. See https://github.com/aspnet/EntityFramework/pull/4084 where we hit this. +4998 area-System.Threading Address PR code review feedback for ported System.Threading.AccessControl @GiriSr as the owner of the System.Threading.AccessControl library can you please have a look through the code review comments provided in https://github.com/dotnet/corefx/pull/4996 and address them appropriately. +4999 area-System.IO Fixed OS tag in ZipArchive header When writing, the OS tag in the header of a ZipArchive CentralDirectoryHeader was being set to 0 (Windows) regardless of platform. When reading, the os tag was being ignored. I added logic to set/get this tag properly and also modified the ArchiveEntry Name getter to parse the path based on the source OS instead of on the running OS. This will break anyone that was uzing the Name property of ZipArchiveEntries that had paths containing the backslash character within a ZipArchive that was compressed on a Unix machine but decompressed on a Windows machine. resolves #1904. Related to #4991 @stephentoub @justinvp @mellinoe +5001 area-System.Net Fix WinHttpHandler response handling for manual cookie parsing WinHttpHandler was losing 'Set-Cookie' response headers during auto redirection handling when the handler was in 'manual cookie' mode. I.e. `CookieUsePolicy.UseSpecifiedCookieContainer`. This is the only mode that HttpClientHandler uses. The 'Set-Cookie' headers were currently only parsed out when a final HTTP response happened. This meant that 'Set-Cookie' headers present in interim 3xx redirection responses as well as interim 401, 407 auth responses would not be stored into the CookieContainer. Hence, those same cookies could not be sent back to the server when needed. The fix is to make sure we parse out the 'Set-Cookie' headers whenever we get an HTTP response back from WinHTTP. As part of this fix, I re-factored out the cookie handling code into a separate class. I also added specific WinHttpHandler tests for the two different cookie modes as well as a HttpClientHandler test to validate cross-platform (i.e. CurlHandler). Fixes #4960 +5002 area-System.Net Corefx test hang from System.Net.Utilities.Functional.Tests Configuration: Debug CoreCLR runtime: coreclr.dll, corerun.exe and mscorlib.dll CoreFX assemblies and CoreFX tests: release Linux environment: Ubuntu 14.04 LTS on Hyper-V The following test doesn't finish with **one virtual processor** on Hyper-V. ./corerun xunit.console.netcore.exe System.Net.Utilities.Functional.Tests.dll -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=nonlinuxtests -notrait Benchmark=true **\* GDB stack traces for all threads *** [thread_backtrace.txt](https://github.com/dotnet/corefx/files/63367/thread_backtrace.txt) **\* SOS clr stack *** (lldb) sos ClrStack OS Thread Id: 0x1762 (1) Child SP IP Call Site 00007FFFFFFFD028 00007FFFF79C4414 [HelperMethodFrame_1OBJ: 00007fffffffd028] System.Threading.WaitHandle.WaitOneNative(System.Runtime.InteropServices.SafeHandle, UInt32, Boolean, Boolean) 00007FFFFFFFD160 00007FFF7C4F9F32 System.Threading.WaitHandle.InternalWaitOne(System.Runtime.InteropServices.SafeHandle, Int64, Boolean, Boolean) 00007FFFFFFFD180 00007FFF7C4F9DDE System.Threading.WaitHandle.WaitOne(Int32, Boolean) 00007FFFFFFFD1B0 00007FFF7C31C45E Xunit.ConsoleClient.Program.ExecuteAssembly(System.Object, System.String, Xunit.XunitProjectAssembly, Boolean, Boolean, Boolean, Boolean, System.Nullable`1, System.Nullable`1, Xunit.XunitFilters) 00007FFFFFFFD2B0 00007FFF7C31521F Xunit.ConsoleClient.Program.RunProject(System.String, Xunit.XunitProject, Boolean, Boolean, Boolean, System.Nullable`1, System.Nullable`1, System.Nullable`1) 00007FFFFFFFD420 00007FFF7C2FA889 Xunit.ConsoleClient.Program.Main(System.String[]) 00007FFFFFFFD8D0 00007FFFF5FB21DF [GCFrame: 00007fffffffd8d0] 00007FFFFFFFDF80 00007FFFF5FB21DF [GCFrame: 00007fffffffdf80] **\* SOS threads *** (lldb) sos Threads ThreadCount: 9 UnstartedThread: 0 BackgroundThread: 4 PendingThread: 0 DeadThread: 4 Hosted Runtime: no Lock ID OSID ThreadOBJ State GC Mode GC Alloc Context Domain Count Apt Exception 1 1 1762 00000000006648F0 2020020 Preemptive 00007FFF5C1C03A0:00007FFF5C1C1FD0 0000000000645A80 0 Ukn 7 2 176b 0000000000688D70 21220 Preemptive 0000000000000000:0000000000000000 0000000000645A80 0 Ukn (Finalizer) XXXX 3 0 0000000000864760 31820 Preemptive 0000000000000000:0000000000000000 0000000000645A80 0 Ukn XXXX 4 0 00007FFF5000EFC0 31820 Preemptive 0000000000000000:0000000000000000 0000000000645A80 0 Ukn 11 5 176f 0000000000890AF0 2021220 Preemptive 00007FFF5C1B5E68:00007FFF5C1B5FD0 0000000000645A80 0 Ukn 12 6 1770 0000000000943B50 2021220 Preemptive 00007FFF5C210200:00007FFF5C212040 0000000000645A80 0 Ukn XXXX 7 0 00007FFF5007D840 1031820 Preemptive 0000000000000000:0000000000000000 0000000000645A80 0 Ukn (Threadpool Worker) XXXX 8 0 00007FFF48015D20 1031820 Preemptive 0000000000000000:0000000000000000 0000000000645A80 0 Ukn (Threadpool Worker) 16 9 1775 00007FFF3C000F50 1020220 Preemptive 0000000000000000:0000000000000000 0000000000645A80 0 Ukn (Threadpool Worker) +5003 area-System.Security WindowsIdentity.Name is missing from the System.Security.Principal.Windows contract The test code at https://github.com/dotnet/corefx/blob/master/src/System.Security.Principal.Windows/tests/WindowsIdentityTests.cs References `WindowsIdentity.Name`: `Assert.Throws(() => identity.Name);` which is not present in the contract defined within the respective `ref` folder. This is currently working because the test code references the `src` project. It's unclear what the right fix is: add the `Name` property to the contract or remove the test reference. @AtsushiKan @ericstj @nguerrera @weshaggard @bartonjs PTAL (usernames determined based on GitHub history for src) +5008 area-System.Security Respond to PR code review comments for ported library System.Security.Crypto.Algorithms @bartonjs as the owner of the System.Security.Crypto.Algorithms library can you please have a look through the code review comments provided in https://github.com/dotnet/corefx/pull/5005 and address them appropriately. Edit: For clarity, the issues are - [ ] See if the TFS Desktop-targetting build can succeed when using Array.Empty(). - [ ] The desktop facade is facading against net46, but 4.6.1 is the minimum compatible version. +5009 area-System.Reflection Implements PE Debug Directory reader. @nguerrera Please review. +5014 area-System.Net Bug in HttpContent.ReadAsStringAsync() if the content-type charset is surrounded with quotes (which is allowed by http spec) "I have just found a small bug in System.Net.HttpContent.ReadAsStringAsync(). This method tries to get the encoding from the content-type HTTP header. Unfortunately the HTTP spec allows to surround the charset value with quotes as in the following example: application/json; charset=""utf-8"" You can find the spec here: https://tools.ietf.org/html/rfc2616#section-3.6 Of course Encoding.GetEncoding(""\""utf-8\"""") throws an ArgumentException because of the surrounding quotes which leads to an InvalidOperationException in System.Net.HttpContent.ReadAsStringAsync(). This is the corresponding line: https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpContent.cs#L204 " +5015 area-System.IO File.GetFileAttributes doesn't get symbolic link data on Unix Directories which are symbolic links or junctions (made with mklink /d or /j) on Windows have the FileAttributes.ReparsePoint flag set in their attributes. On *nix platforms, though, symbolic links (made with ln -s) have no special attributes set. A better user experience would be to use the ReparsePoint flag on such file or, possibly, to add new Unix-specific flags if the ReparsePoint one is inapplicable for some reason. +5017 area-System.Diagnostics Respond to PR code review comments for ported library System.Diagnostics.StackTrace @noahfalk as the owner of the System.Diagnostics.StackTrace library can you please have a look through the code review comments provided in https://github.com/dotnet/corefx/pull/4972 and address them appropriately. +5018 area-System.Reflection A few small public API changes To be used by metadata/PE writer. +5019 area-System.Net Update Http and WebSocket test servers Switch to a different (more scalable) Azure-based test server for Http and WebSocket.tests. +5021 area-Infrastructure Use .NetCore MSBuild to build corefx repo in Linux We want to remove the dependency of using Mono MSBuild, so we want to use the .NetCore version of MSBuild instead. There is still some work that need to be done to actually be able to restore .NetCore MSBuild, so the idea is to use what we have now to try to build corefx repo and start calling out the issues we find to the MSBuild so that we can get those issues addressed. For now, we are only going to use this version of MSBuild in Linux builds, since it is still not yet in the scope to support building in parallel, so that would slow the windows builds by a lot. Once/If that is enabled, we can change to use .NetCore MSBuild in Windows as well. +5022 area-System.Globalization Compare string with IgnoreCase/Kana in ja-JP character failed in unix "There seems to be a bug when ignoring Kana Character in ja-JP locale. **Repro** ``` private static CultureInfo[] _cultureInfo = { new CultureInfo(""ar-SA""), // Arabic - Saudi Arabia new CultureInfo(""ja-JP""), // Japanese - Japan new CultureInfo(""de-DE""), // German - Germany new CultureInfo(""hi-IN""), // Hindi - India new CultureInfo(""tr-TR""), // Turkish - Turkey new CultureInfo(""th-TH""), // Thai - Thailand new CultureInfo(""el-GR""), // Greek - Greece new CultureInfo(""ru-RU""), // Russian - Russia new CultureInfo(""he-IL""), // Hebrew - Israel new CultureInfo(""cs-CZ""), // Czech - Czech Republic new CultureInfo(""fr-CH""), // French - Switzerland new CultureInfo(""en-US"") // English - United States }; private static string[,] _specialMatchingString = new string[4, 2] {{""Lorem ipsum dolor sit amet"", ""Lorem ipsum dolor sit amet""}, {""かたかな"", ""カタカナ""}, {""ファズ・ギター"", ""ファズ・ギター""}, {""engine"", ""eNGine""}}; [Fact] public void CultureComparisonTests() { foreach (var cultureInfo in _cultureInfo) { for (var testNo = 0; testNo < _specialMatchingString.GetLength(0); testNo++) { CultureComparisonTests(cultureInfo.Name, _specialMatchingString[testNo, 0], _specialMatchingString[testNo, 1]); } } } public void CultureComparisonTests(string localeName, string str1, string str2) { Console.WriteLine(""CultureComparisonTests for {0} : {1} : {2}"", localeName, str1, str2); var options = CompareOptions.IgnoreCase | CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth; var comparisonInfo = new CultureInfo(localeName).CompareInfo; var result = comparisonInfo.Compare(str1, 0, str1.Length, str2, 0, str2.Length, options); Assert.True(result == 0, String.Format(""{0} : {1} comparison should ignore case, kana type and width"", str1, str2)); } ``` **Summary** Test this in UNIX ``` CultureComparisonTests(""ja-JP"", ""ファズ・ギター"" , ""ファズ・ギター""); ``` Expected to be true for comparison with ignore Kana and ignore case character This only failed in - Unix - ja-JP locale - Probably cause by Kana Case character ""ファズ・ギター"" VS ""ファズ・ギター"" " +5024 area-System.Data Define the Schema Objects for the DbConnection getSchema Ref issue https://github.com/dotnet/corefx/issues/3423 The Database schema being exposed by the DbConnection.GetSchema() needs to return the schema of the database. The API should expose strongly typed objects. Issue #3423 is an effort to design the DbColumn representing the Column schema which will be one of the items of the collection of Base types which the Database schema should expose. This issue is for the discussion of the Types for the schema and refining the types. I will add more details here as we come up with the design. The Base types will be added to System.Data.Common and an API will be added to the DbConnection exposing the top level schema object. +5034 area-System.Net Fix race condition in SslStream authentication This fixes the race condition we were seeing in test case execution .For which the issue is #4317 . the basic cause for it was - _nestedAuth was getting set at 2 places still at the later stage it was checking if its not already checked , but there can be cases where (due to the delay in the execution of another threads) at both the places it sets _nestedAuth to 0 and hence results into the unwanted exception. Refer issue #4317 for more details. +5036 area-System.Net Improve WinHttpHandler use of notification callbacks WinHttpHandler currently uses the WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS when setting up the status callback function. This isn't strictly necessary. However, some of the notification flags are required such as WINHTTP_CALLBACK_FLAG_REDIRECT, WINHTTP_CALLBACK_FLAG_READ_COMPLETE and others. This issue will track optimizing the set of notification required as well as providing a way to turn them all on for debugging/logging purposes. +5037 area-System.Net System.Net.Security.Unit.Tests: Test failures with System.NotImplementedException : The method or operation is not implemented. "**Configuration** Debug CoreCLR runtime: coreclr.dll, corerun.exe and mscorlib.dll CoreFX assemblies and CoreFX tests: release **Linux environment** Ubuntu 14.04 LTS on Hyper-V Run .run-test.sh **with sudo** to avoid a hang issue in #5025 **Test names** ``` ./bin/tests/Linux.AnyCPU.Release/System.Net.Security.Unit.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.Net.Security.Unit.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.Net.Security.Unit.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.Net.Security.Unit.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.Net.Security.Unit.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.Net.Security.Unit.Tests/dnxcore50/testResults.xml: ``` **Stack trace** ``` d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)]]> ``` " +5039 area-System.IO System.IO.FileSystem.Tests: Test failures with Assert.Throws() Failure\nExpected: typeof(System.UnauthorizedAccessException)\nActual: (No exception was thrown) "**Configuration** Debug CoreCLR runtime: coreclr.dll, corerun.exe and mscorlib.dll CoreFX assemblies and CoreFX tests: release **Linux environment** Ubuntu 14.04 LTS on Hyper-V Run .run-test.sh **with sudo** to avoid a hang issue in #5025 **Test names** ``` ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/testResults.xml: ``` **Stack trace** ``` ``` " +5040 area-Infrastructure String resources need to be configurable on a per-configuration basis "Right now, string resources are included by default in an assembly if there exists a ""Strings.resx"" file in a ""Resources"" subdirectory under the csproj. All of the string resources in that file are included in the assembly, even if they are not used at all, or if only a subset are used. You can ""opt-out"" in a sense by changing the directory that the resource targets look in for the ""Strings.resx"" file (the `ResourcesSourceOutputDirectory` Property). This has worked fine for our projects with a single configuration, or with only a few similar configurations. However, this can cause significant bloat in assemblies which don't need those resources. For example, full-facade projects are generally around 5-6 KB in total size. With unnecessary string resources included, they can easily bloat to 25-30 KB each. To a lesser extent, configurations which only need a subset of the resources are also bloated by having extra strings in them. In our internal build, I recall we used text files that allowed condition inclusion/exclusion of certain strings, based on the project's DefineConstants. We might want to look into something similar to that in order to accomodate this. " +5041 area-System.IO System.IO.MemoryMappedFiles.Tests: Test failures with Assert.Throws() Failure\nExpected: typeof(System.UnauthorizedAccessException)\nActual: (No exception was thrown "The error message is the same as #5039 but the failures are from a different test set. **Configuration** Debug CoreCLR runtime: coreclr.dll, corerun.exe and mscorlib.dll CoreFX assemblies and CoreFX tests: release **Linux environment** Ubuntu 14.04 LTS on Hyper-V Run run-test.sh **with sudo** to avoid a hang issue reported in #5025 **Test names** ``` ./bin/tests/Linux.AnyCPU.Release/System.IO.MemoryMappedFiles.Tests/dnxcore50/testResults.xml: ./bin/tests/Linux.AnyCPU.Release/System.IO.MemoryMappedFiles.Tests/dnxcore50/testResults.xml: ``` **Stack trace** ``` ``` " +5042 area-Infrastructure TargetingPackReference items show up in VS Solution Explorer This has no real negative effect, it's just kind of annoying. We should consider putting the `false` metadata on the includes, which hides them from the solution explorer. +5044 area-System.Net Discussion: advantage to using sync over async for I/O? "Continuation of discussion from #4868 > > Without AuthenticateAsClient(), Open() must resort to calling an async method internally, which means that it's no longer purely synchronous... > > The code above is as synchronous as the old implementation. When you call synchronous I/O on something like NetworkStream, internally, the thread will be waiting on an event for the operation to finish. Even more broadly: in reality there is no such thing as synchronous I/O in Windows. Thanks for this detail. I was aware that at least in some cases sync methods actually perform async operations under the hood. However, coming from the Unix universe, it doesn't seem to hold that there's ""no such thing as synchronous I/O"" at least at the kernel level: I would expect .NET I/O operations to map to simple sync I/O system calls such as write and read. Also, the implementation details underlying async operations across platforms may make sync I/O more attractive at least in some cases (i.e. is async I/O implemented efficiently on Linux with mono, or with coreclr for that matter?). I admit I'm just asking questions, I don't have enough solid knowledge here. Regardless of these questions, and I said back in #4868, there's something odd about removing such a specific sync API (SslStream.AuthenticateAsClient) for such a general ""sync I/O is bad"" argument, without touching any other sync API. In other words, I'd expect either all sync APIs to stay for backwards compatibility or for a more sweeping removal of sync I/O APIs. " +5045 area-System.Net HttpClientHandler is not honoring UseDefaultCredentials set to false We're trying to enable [WebListener](https://github.com/aspnet/WebListener) tests on CoreCLR, however we're running into some issues on authentication tests. We have tests that check that an anonymous request to a server requiring authentication gets a 401 status back along with challenges. The request is made using an `HttpClient` taking an `HttpClientHandler` with `UseDefaultCredentials` set to `false`. On desktop CLR, we only see one HTTP request/response pair in the network: ![image](https://cloud.githubusercontent.com/assets/924164/11881634/cc350af6-a4bc-11e5-83b4-9be7f4bc9861.png) Which is expected for the test to pass. On CoreCLR however, we're seeing the client trying to negotiate authentication even when `UseDefaultCredentials` is set to `false`: ![image](https://cloud.githubusercontent.com/assets/924164/11881643/e1365590-a4bc-11e5-9b72-805c7d629375.png) Here's what we see when setting `UseDefaultCredentials` to `true`: ![image](https://cloud.githubusercontent.com/assets/924164/11881665/f63bcd30-a4bc-11e5-9f83-617a440601fb.png) Which is essentially the same as when it's set to `false`, which means the `UseDefaultCredentials` is not being honored in requests. Our tests are failing because they don't expect authentication to be successful in those requests. cc @Tratcher +5048 area-System.Net Disabling tests failing on *NIX. Fix #5037 Temporarily disabling UTs from running on *NIX. Fix #5037 +5049 area-System.Net Enable custom socket end points and allow Unix Domain Sockets With code separation into System.Net.Primitives and System.Net.Sockets, EndPoint extensibility was broken because System.Net.Sockets started to use its own copy of SocketAddress and didn't respect SocketAddress that a custom EndPoint may provide. The fix is to allow conversion between SocketAddress from System.Net.Primitives and System.Net.Sockets. This way custom implementations of EndPoint will be able to provide their own SocketAddress and it'll be honored by the Socket APIs. The fix also allows sockets to use 'Unspecified' protocol type which is needed for Unix Domain Sockets. There are several changes in socket test server to allow tests pass protocol type. Add new unit tests that use end point extensibility to implement Unix Domain Sockets. Fix #4777 +5050 area-System.Runtime System.Runtime.Extensions should be 4.1.0.0 There were API changes since the last stable version so we need to update minor version. +5051 area-System.Net Enable custom socket end points and allow Unix Domain Sockets With code separation into System.Net.Primitives and System.Net.Sockets, EndPoint extensibility was broken because System.Net.Sockets started to use its own copy of SocketAddress and didn't respect SocketAddress that a custom EndPoint may provide. The fix is to allow conversion between SocketAddress from System.Net.Primitives and System.Net.Sockets. This way custom implementations of EndPoint will be able to provide their own SocketAddress and it'll be honored by the Socket APIs. The fix also allows sockets to use 'Unspecified' protocol type which is needed for Unix Domain Sockets. There are several changes in socket test server to allow tests pass protocol type. Add new unit tests that use end point extensibility to implement Unix Domain Sockets. Fix #4777 +5055 area-System.Collections Clean up and Format System.Collections There's quite a few things in this project that should be cleaned up, not limited to: - Remove/sort usings - Use C# alias over type name (`Object` -> `object`, `Int32` -> `int`, etc.) - Non-compliant field names - We need to be careful about renaming these, we've hit issues in the past where Debugger components were relying on the exact names of these fields to not change. - General block/braces formatting +5058 area-System.Data Timeout Error on Conn.Open() for TDS Version 7.3 and below Timeout Error on Conn.Open() for TDS Version 7.3 and below or SQL Server 2008 and below # Here error message ``` System.Data.SqlClient.SqlException : Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=33; handshake=433; [Login] initialization=0; authentication=0; [Post-Login] complete=29018; ---- System.ComponentModel.Win32Exception : Unknown error 258 Stack Trace: at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParserStateObject.ThrowExceptionAndWarning(Boolean callerHasConnectionLock, Boolean asyncClose) at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) at System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync() at System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket() at System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer() at System.Data.SqlClient.TdsParserStateObject.TryReadByte(Byte& value) at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Suites.Data.Test.ExceptionTest.TestConnectionString(String connstr) at Suites.Data.Test.ExceptionTest.TestConnectionString() ----- Inner Stack Trace ----- ``` +5060 area-System.Data Invalid Server Name Exception will return Name Piped error message in Windows VS TCP in UNIX "Repro : ``` static void Main(string[] args) { try { TestConnectionString(""Data Source=NotAServer;Initial Catalog=Northwind;User ID=xx;Password=xxx;Connect Timeout=30""); } catch (Exception ex) { Console.WriteLine(""Exception : "" + ex.Message); } } public void TestConnectionString(string connstr) { using (var conn = new SqlConnection(connstr)) { Console.WriteLine(""Conn Open..."" + connstr); conn.Open(); Console.WriteLine(""create command...""); var cmd = new SqlCommand(""select @@Version"", conn); Console.WriteLine(""Execute reader...""); using (var reader = cmd.ExecuteReader()) { Console.WriteLine(""read...""); while (reader.Read()) { Console.WriteLine(reader.GetString(0)); } } } } ``` **_EXCEPTION**_ A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: **Named Pipes**\* Provider, error: 40 - Could not open a connection to SQL Server) But in unix it will return **.....TCP Provider ...***, **_Expected**_ We just need to make consistent for this. whether we should return Named Pipes / TCP if there is invalid server name. Or **_This can be the expected behavior**_ as Unix only support TCP provider at this moment, but Windows try to connect this with TCP first and Namepipe, and since Name pipe was the last provider than Name pipe was picked up. " +5062 area-System.Net Fixing System.Net.Security.Unit.Tests failure Fxing issue #5037 Tested on both Windows and Linux. +5065 area-System.Net "System.Net.Http.HttpClient SendAsync throws ""The requested header was not found"" when parsing 307 HTTP response from server" "Hi I am actually having ta weird issue with System.Net.Http.HttpRequestMessage when trying to add a custom header. The header is added and yet SendAsync throws an exception about ""header was not found""! Here in the team, we have spent 4 days in vain to get this to work. Any help would be appreciated. private static async Task MakeRequestExample(string url) { try { HttpMethod httpMethod = HttpMethod.Get; ``` using (HttpClient httpClient = new HttpClient()) { using (HttpRequestMessage httpRequestMessage = new HttpRequestMessage(httpMethod, url)) { //httpRequestMessage.Headers.Accept.TryParseAdd(""text/plain""); <-- not sure about this bool added = httpRequestMessage.Headers.TryAddWithoutValidation(""Client-Id"", ""314""); // added will be true and when I debug this I actually find the header using (HttpResponseMessage httpResponse = await httpClient.SendAsync(httpRequestMessage)) { switch (httpResponse.StatusCode) { case HttpStatusCode.OK: // logic 1 break; case HttpStatusCode.RedirectKeepVerb: case HttpStatusCode.NotFound: case HttpStatusCode.Moved: case HttpStatusCode.BadRequest: case HttpStatusCode.InternalServerError: // logic 2 break; default: // logic 3 break; } } } } } catch (Exception e) { Debug.WriteLine(""MakeRequest - Exception message: "" + e.Message); Debug.WriteLine(""MakeRequest - Exception stack trace: "" + e.StackTrace); Debug.WriteLine(""MakeRequest - Exception HResult: "" + e.HResult); Debug.WriteLine(""MakeRequest - Exception inner ex: "" + e.InnerException); } } ``` The exception: Exception message: An error occurred while sending the request. Exception stack trace: at System.Net.Http.HttpClientHandler.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at Proj.Api.d__7.MoveNext() Proj.Api=> Exception HResult: -2147012746 Proj.Api=> Exception inner ex: System.Runtime.InteropServices.COMException (0x80072F76): The text associated with this error code could not be found. The requested header was not found at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpHandlerToFilter.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClientHandler.d__1.MoveNext() " +5068 area-System.Runtime unsafe struct with fixed byte array runtime error If i create an unsafe struct with an explicit layout and add a fixed byte array to access the data in a lib targeting dotnet5.4, and then try to access that struct in a unit test it compiles ok, but I get a runtime error. The unit test lib target dnxcore50 as per the instructions on the xunit site. If i try and access via a method in a third lib also targeting dotnet5.4 it works fine. I have a small repo containing a reproduction of the issue here https://github.com/jageall/DNXRuntimeIssueWithFIxedByteArray if this behaviour is by design I would expect a compile time error, not a runtime error +5072 area-System.Diagnostics Code cleanup related to System.Diagnostics.Tracing porting @vancem @davmason please clean up, format and address reviews for code ported as a part of https://github.com/dotnet/corefx/pull/5071 +5073 area-System.Net HttpClient hangs on 206 Partial Content response until connection is closed by the server "Request: ``` GET / HTTP/1.1 Connection: Keep-Alive Accept-Encoding: gzip, deflate Range: bytes=0-10 Host: localhost:8080 ``` Response: ``` HTTP/1.1 206 Partial Content Content-Length: 100 Content-Length: 11 Content-Range: bytes 0-10/100 Accept-Ranges: bytes <...content...> ``` Code: ``` var request = new HttpRequestMessage(new HttpMethod(""GET""), ""http://localhost:8080""); request.Headers.Add(""Range"", ""bytes=0-10""); var response = await httpClient.SendAsync(request); ``` Expected: `response` should be available as soon as 11 bytes are read by `HttpClient`. **This is the behavior on desktop CLR**. Actual: Execution hangs on `SendAsync`. If I set `httpCompletionOption` to `ResponseHeadersRead`, it hangs later when I try to read `response.Content`. If the connection is closed by the server, `SendAsync` completes and I can read `response.Content`. I think it is waiting for the 100 bytes indicated by the first `Content-Length` header and ignoring the latter value (11). " +5077 area-System.Net SslStream ReadAsync and WriteAsync never continues. "Calling ""await ReadAsync"" then calling ""await WriteAsync"" (while ReadAsync is still waiting) results in neither continuing ever. I tested the exact same app with .NET Framework libraries and it works fine. Using Windows 10 PRO x64, with DNX RC1 runtime. " +5078 area-System.Linq Add instance factory overloads to Enumerable.Repeat "Hi, There are `Enumerable.Range` and `Enumerable.Repeat` which are awesome, however, when using `Repeat` with a reference type, it's the reference to the same object being repeated, hence, changing a property of the repeated object will reflect in that property being changed for all indexes. The solution would be to create another overload of `Enumerable.Repeat` that is either parameterless or ones that accepts `Func` or `Func` that uses as a factory of the generated element, where the latter overload (with the `int` argument provides the index of the current element to be generated. ``` //will initialize an array of 40 instantiated StringBuilder objects. var builders = Enumerable.Repeat(40).ToArray(); //will initialize an array of 40 instantiated StringBuilder objects using a custom constructor var builders = Enumerable.Repeat(i => new StringBuilder($""Line {i} says:"")); ``` Another overload I'd want to see is for `Enumberable.Range`, is omitting the `start` parameter so that it's set to `0`, and only the `count` is provided. Merely a syntactic sugar. " +5079 area-System.Text Proposal: System.Text.RegularExpressions.RegexRunner to become a public type Today the RegexRunner class is internal in CoreFX, because the Regex.CompileToAssembly functionality (the historically main entry point) that generates code inheriting from this class is not available in CoreFX. The CompileToAssembly API is not the only way to create such assemblies though, one could write code that inherits from this class and all the functionality required by RegexRunner to function properly is available in CoreFX and is used by other internal classes. The proposal is to make the RegexRunner class public, allowing scenarios where people are willing to generate code using a tool other than Regex.CompileToAssembly that targets CoreFX to be able to do so. In fact, it is also entirely possible that a developer could use Regex.CompileToAssembly in a build step (where they may have access to the full framework) and generate an assembly that initially (i.e. the output of CompileToAssembly) compiles against mscorlib, but further processing could result in the assembly being compiled against the System.Runtime contract assemblies. This brings a well-tested Regex interpreter implementation, the same one that is used in all other scenarios except precompilation to this scenario as well. The precompilation scenario is compelling (to us) for working set and startup performance reasons. +5080 area-System.Net CurlHandler fix for cookie handling CurlHandler has been handling cookies only from the final HTTP response. The cookies sent during the intermediate http responses (during 3XX redirection as well as interim 401, 407 responses) were getting ignored. This fix ensures that the cookies from all the responses are handled. +5085 area-System.IO Fixed System.IO.Compression FileData DST bug The FileData class for testing in System.IO.Compression was initializing DateTimes using Ticks and an unspecified DateTimeKind that resulted in some times being off by an hour when the time was during Daylight Savings Time. I've fixed these times and reformatted them to use UTC times so testing is timezone independent. I also reformatted some tests to use Theories. resolves #1326 @stephentoub @justinvp +5086 area-System.IO Add tests for System.IO.BufferedStream Once BufferedStream gets mirrored over from TFS, tests need to be added for it. Depends on #4456 +5087 area-System.Collections Specialized Collections Tests Improve code coverage to 100% for System.Collections.Specialized Remove dead code +5088 area-System.Linq System.Linq.Expression rd.xml file leads to spurious warnings Start a new UWP and add this to it: ``` System.Linq.Expressions.Expression> e = () => 1234; ``` When building with .NET Native you'll now get two build warnings because the rd.xml file in this assembly has some wonky bits. This keeps folks from being warning clean and is actually pretty distracting for folks as it provides a lovely red herring for their other investigations. :-) Here's the warnings I get with VS Update 1: Method 'CreateLambda' within 'System.Linq.Expressions.Expression' could not be found. Method 'ParameterIsAssignable' within 'System.Linq.Expressions.Expression' could not be found. @VSadov ? +5093 area-System.Net Avoid some array allocations in HttpContent Changes: - `CopyToAsync` avoids creating a huge intermediary array when copying to another stream. - `ReadAsStreamAsync` avoids allocating a new array in .NET 4.6 by using `TryGetBuffer`, which should be invisible to the caller since the returned `MemoryStream` isn't writable. - Fixed associated TODO in `GetDataBuffer`. - Removed an assert for `_bufferedContent.Length` being less than `int.MaxValue` (as the comments themselves say, .NET doesn't support arrays with lengths over that). +5096 area-System.IO System.IO.Compression: Tests for creating ZipArchive with unicode filename failing on Unix When trying to create a ZipArchive from a directory that contains a filename containing unicode characters a FileNotFoundException is thrown. CI failure from #5085: 12:22:45 System.IO.FileNotFoundException : Could not find file '/mnt/j/workspace/dotnet_corefx/ubuntu_debug_tst_prtest/bin/tests/Linux.AnyCPU.Debug/System.IO.Compression.Tests/dnxcore50/ZipTestData/refzipfolders/unicode/������.txt'. Unable to repro on my Ubuntu VM but is failing CI for CentOS and Ubuntu Debug&Release. +5099 area-System.Net System.Net EventSource Logging Adding EventSources to substitute the previous logging model using TraceSources. In this PR 4 event sources are added: -NetEventSource -SocketsEventSource -HttpEventSource -SecurityEventSource Only the event methods for NetEventSource and SocketsEventSource are fully added. HttpEventSource and SecurityEventSource have only a few of the new event methods implemented. Changes in production are done to match this new implementation. (Only changes for events in Sockets are mostly done). +5101 area-System.Net System.Net EventSource Logging Adding EventSources to substitute the previous logging model using TraceSources. In this PR 4 event sources are added: -NetEventSource -SocketsEventSource -HttpEventSource -SecurityEventSource Event methods for NetEventSource, SocketsEventSource and HttpEventSource are fully added. SecurityEventSource has only a few of the new event methods implemented. Changes in production code are done to match this new implementation. (Only changes for events in Sockets, Http are fully done in this iteration). +5102 area-System.Security Unix X500DistinguishedName.Decode throws with an empty RDN value "``` C# var dn = new X500DistinguishedName(""300B3109300706035504031300"".HexToByteArray()); string value = dn.Format(false); Assert.Equal(""CN="", value); ``` Throws on dn.Format(false); ``` System.Security.Cryptography.X509Certificates.Tests.X500DistinguishedNameEncodingTests.EncodeSingleRdn(testCase: SimpleEncoderTestCase { Input = ""CN="" }) [FAIL] System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. Stack Trace: at Interop.Crypto.Asn1StringToManagedString[THandle](THandle asn1String, Func`4 asn1StringPrintEx) at Interop.Crypto.Asn1StringToManagedString(SafeSharedAsn1StringHandle asn1String) at Internal.Cryptography.Pal.X500NameEncoder.X500DistinguishedNameDecode(Byte[] encodedName, Boolean printOid, X500DistinguishedNameFlags flags, Boolean addTrailingDelimieter) at Internal.Cryptography.Pal.OpenSslX509Encoder.X500DistinguishedNameFormat(Byte[] encodedDistinguishedName, Boolean multiLine) at System.Security.Cryptography.X509Certificates.X500DistinguishedName.Format(Boolean multiLine) at System.Security.Cryptography.X509Certificates.Tests.X500DistinguishedNameEncodingTests.ProcessTestCase(SimpleEncoderTestCase testCase, X500DistinguishedName dn) at System.Security.Cryptography.X509Certificates.Tests.X500DistinguishedNameEncodingTests.EncodeSingleRdn(SimpleEncoderTestCase testCase) ``` " +5105 area-Infrastructure Cannot run tests from console if sln previusly was built with VS 2015 CE (log of error in task) "Clone and build coreclr and corefx according to guide, Windows 10, Visual Studio 15 CE. It succeed. When I start investigate code in VS Open System.Collections.sln, build from VS (many many errors in intellisense and so on but Output writes that build succed) Then go to console: ``` cd .\src\System.Collections\tests msbuild /t:Test ``` It fails with: ``` ""d:\net\corefx\src\System.Collections\tests\System.Collections.Tests.csproj"" (target object Build ) (1) -> ""d:\net\corefx\src\System.Collections\src\System.Collections.csproj"" (target object Build;DebugSymbolsProjectOutputGroup ) (2) -> (Целевой объект OpenSourceSign) -> d:\net\corefx\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00137\li b\sign.targets(39,5): error : d:\net\corefx\bin/obj/Windows_NT.AnyCPU.Debug\Sys tem.Collections\System.Collections.dll: PE file is already strong-name signed. [d:\net\corefx\src\System.Collections\src\System.Collections.csproj] ``` But if i build sln from cmd: ``` cd .\src\System.Collections msbuild /t:Clean;Build cd .\tests msbuild /t:Test ``` All is well. What is bad with visual studio and how to match it's behavior with what MSBuild does itself? " +5106 area-System.Numerics Add overload for Vector.CopyTo() that supports pointers At the moment we have only one signature that supports arrays only: ``` csharp public unsafe void CopyTo(T[] destination) ``` But sometimes we have only pointers in code when converting them back to arrays isn't an option. Please add the ability to pass pointers directly to `CopyTo()` method. Something like that would work: ``` csharp public unsafe void CopyTo(void* destination) ``` The issue is related to #3741 +5107 area-System.Net CurlHandler fix for cookie handling CurlHandler has been handling cookies only from the final HTTP response. The cookies sent during the intermediate http responses (during 3XX redirection as well as interim 401, 407 responses) were getting ignored. This fix ensures that the cookies from all the responses are handled. +5109 area-System.Console Console stops echoing typed keys after calling ReadKey from background thread and exiting process on Ubuntu Repro application is the ASP.NET benchmarks app at https://github.com/aspnet/benchmarks/tree/dev/src/Benchmarks I'm creating a background thread in order to do non-blocking reads of keys as `Console.KeyAvailable` isn't in .NET Core yet. Once the app exits however (after Ctrl+C) no keystrokes show up in the console. The keystrokes are still being sent to the shell as commands can be executed. Normality is restored after executing `reset`. I attempted to resolve it by changing the `while` loop in the bg thread to return once the `app.Run()` had returned and joining it with the main thread, and while it exits fine, the issue remained. The same app behaves as expected on Windows. Repro steps: 1. Clone https://github.com/aspnet/benchmarks 2. Ensure latest DNX for Core CLR: `dnvm install latest -r coreclr -arch x64 -u` 3. Switch to latest DNX: `dnvm use 1.0.0-rc2-[version installed above] -r coreclr` 4. Navigate to `~/src/Benchmarks` in repo 5. Restore packages: `dnu restore` 6. Run application: `dnx run` 7. Hit the spacebar to see console interaction and output from application background thread works 8. Hit Ctrl+C, application will shutdown 9. Try typing in the console now, no keystrokes are echoed +5114 area-System.Data SqlBulkCopy class lacks option to specify ORDER BY hint Bulk insert into a table with PK is significantly faster if input data is in order (no need to write to tempdb first and run a sort). Need to add the ORDER(...) hint to the tdscommand string. +5116 area-System.Net Can't disable KeepAlive for ClientWebSocket I ported a project from .net 4.5 to Core. Building worked fine, but execution with .net Core doesn't work. First of all setting KeepAliveInterval to -1 is no longer supported and throws an OutOfRangeException. Setting it to any other value (e.g. 0) keeps KeepAlive on. I looked at the ClientWebSocket-Code. I suspect KeepAliveInterval is never used. So currently there is no way to modify KeepAlive behavior. +5118 area-System.Runtime Christmas Analysis of .NET Core Libraries (CoreFX) To demonstrate the capabilities of our analyzer, we regularly perform analysis of open source projects. We had recently checked the CoreFX project. Here is the link to the article about it: http://www.viva64.com/en/b/0365/ Official page of the analyzer: http://www.viva64.com/en/pvs-studio/ If you have any questions, or if you are interested in the evaluation of our static analyzer or in any other source code quality control services that our company provides, please contact us at support@viva64.com. +5120 area-System.Net Fully implement ClientWebSocketOptions for .NET Core Currently, .NET Core has a placeholder implementation for ClientWebSocketOptions. Filing this issue to track the complete implementation. +5126 area-System.Diagnostics Keeping in sync Localization Resources name when using Event Sources. "Event Sources can be localized by specifying the name of the resources file. But that name needs to be hard coded in the attribute of the event source. So, if at some point in time, the name of the resources changes, the event source will not be in sync anymore and a message like: ""Could not find any resources appropriate for the specified culture or the neutral culture. Make sure ""NameOfMyResources.resources"" was correctly embedded or linked into assembly..."" will be the only log that appears in our event source recorder. If in the future, a better way to specify LocalizationResources that does not depend on a constant variable is available, changes to the EventSources code in System.Net should be made. " +5127 area-Serialization Some DateTime Serialization tests failed in Moscow time zone "### Description Some DateTime Serialization tests failed in Moscow time zone. Test output [placed](https://gist.github.com/speshuric/49c7e1b5072095cebe7b) in a gist. Here is reduced output: ``` XmlSerializerTests.Xml_DateTimeAsRoot [FAIL] Test failed for input: 02.01.2013 3:04:05 Expected: 2013-01-02T03:04:05.006+03:00 Actual: 2013-01-02T03:04:05.006+04:00 =================================================================== DataContractJsonSerializerTests.DCJS_DateTimeAsRoot [FAIL] [expected]:ate(1357084800000+0300)\/"" [actual ]:ate(1357081200000+0400)\/"" [Expected (with length=30)]: ""\/Date(1357084800000+0300)\/"" [Actual (with length=30)]: ""\/Date(1357081200000+0400)\/"" =================================================================== DataContractSerializerTests.DCS_TypeWithDatetimeOffsetTypeProperty [FAIL] Expected: 2013-01-02T03:04:05.006Z180 Actual: 2013-01-02T02:04:05.006Z240 DataContractSerializerTests.DCS_DateTimeOffsetAsRoot [FAIL] Expected: 2013-01-02T03:04:05.006Z180 Actual: 2013-01-02T02:04:05.006Z240 ``` ### Research All these tests failed by the similar reasons. In these tests used `TimeZoneInfo.Local.BaseUtcOffset.TotalMinutes` which is not right. Offset _can_ change. For example: ``` cs TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById(""Russian Standard Time""); DateTime d1Utc = new DateTime(2015, 1, 2, 3, 4, 5, 6, DateTimeKind.Utc); Console.WriteLine(""2015: Offset: {0}"", timeZone.GetUtcOffset(d1Utc)); DateTime d2Utc = new DateTime(2013, 1, 2, 3, 4, 5, 6, DateTimeKind.Utc); Console.WriteLine(""2013: Offset: {0}"", timeZone.GetUtcOffset(d2Utc)); ``` Output is: ``` 2015: Offset: 03:00:00 2013: Offset: 04:00:00 ``` This issue was fixed in #2496 **Fix serialization test failure in Minsk timezone**, and #2541 **Serialization time zone fixes** but broken again in 3f91ae10 (it was rather big commit and it's no wonder that something was broken). ### Questions to discuss As @stephentoub mentioned in #2496, it would be better > to make this test not depend on the local timezoneinfo and instead have the test run for a variety of specific time zones, e.g. by making it a `[Theory]` and passing in via InlineData or MemberData a few different time zones to test I think this is right idea and I propose to discuss how to do it better: 1. Make 2 PR (the first - small roll back fix, the second - new tests with `[Theory]` attribute) 2. Make only full PR (but it will take some time for me) Small rollback PR I can do ASAP And how can we prevent accidental changes like https://github.com/dotnet/corefx/commit/3f91ae10 " +5130 area-System.Collections System.Collections.Generic: HashSet constructor throwing when passed another HashSet The constructor for HashSet that takes an IEnumerable is throwing an unexpected exception when passed another HashSet. repro test added to System.Collections test proj: ``` [Fact] public void CopyConstructor() { HashSet set = new HashSet(); HashSet set2 = new HashSet(set); // throws NullReferenceException } ``` Stack trace: ``` System.Collections.Tests.HashSet_Generic_Tests_int.CopyConstructor [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: D:\git\corefx\src\system.collections\src\System\Collections\Generic\HashSet.cs(118,0): at System.Collections.Generic.HashSet`1..ctor(IEnumerable`1 collection, IEqualityComparer`1 comparer) D:\git\corefx\src\system.collections\src\System\Collections\Generic\HashSet.cs(96,0): at System.Collections.Generic.HashSet`1..ctor(IEnumerable`1 collection) D:\git\corefx\src\system.collections\tests\Generic\HashSet\HashSet.Generic.Tests.cs(39,0): at System.Collections.Tests.HashSet_Generic_Tests`1.CopyConstructor() ``` The throwing code was introduced in #4349 by Toni Petrina and is snippeted here: ``` ... var otherAsHashSet = collection as HashSet; if (otherAsHashSet != null && AreEqualityComparersEqual(this, otherAsHashSet)) { _buckets = (int[])otherAsHashSet._buckets.Clone(); // THROWS _slots = (Slot[])otherAsHashSet._slots.Clone(); ... ``` Note that it doesn't fail when using the System.Collections.dll in 4.0.11-rc2-23616. +5137 area-System.Net System.Net.CredentialKey and System.Net.CredentialHostKey should implement IEquatable These classes exist to be used as keys, and hence to be compared for equality. As such the faster path offered to `EqualityComparer.Default` by implementing `IEquatable` is worth obtaining. Doing so would also remove the logical error identified in #5118, and although the path with this error (throwing on comparison with other instance of another type) is unreachable, that's worth doing. +5138 area-System.Net Implement IEquatable in CredentialKey and CredentialHostKey Improve performance of these types uses as dictionary keys, which is their intended purpose. Fixes #5137 +5139 area-System.Net Make SslStream::RemoteCertificate return an X509Certificate2 object. This is the only place in all of corefx (outside of the X509Certificates tests) that instantiates an X509Certificate object (instead of an X509Certificate2). Since the property still return an X509Certificate(1), the callers would have to cast it to use the X509Certificate2-only properties, but now an `as` will suffice, whereas before it required an up-converting operation. This should alleviate the user concern from #4510. cc: @CIPop @davidsh +5141 area-System.Collections HashSet constructor perf optimization concern #4349 added an optimization to `HashSet`'s constructor when constructing from another `HashSet` with the same comparer, by cloning the other `HashSet`'s fields: ``` c# public HashSet(IEnumerable collection, IEqualityComparer comparer) : this(comparer) { ... var otherAsHashSet = collection as HashSet; if (otherAsHashSet != null && AreEqualityComparersEqual(this, otherAsHashSet)) { ... _buckets = (int[])otherAsHashSet._buckets.Clone(); _slots = (Slot[])otherAsHashSet._slots.Clone(); _count = otherAsHashSet._count; ... } .... } ``` The upside to this optimization is it's fast, but there's a downside that I haven't seen discussed: If the other set had a large number of items at one point, and was subsequently reduced in size, the new set is going to simply clone the `_buckets` and `_slots` arrays, which means the new set could be creating new arrays that are substantially larger than they need to be. For example: ``` c# var source = new HashSet(Enumerable.Range(1, 8950)); source.Clear(); source.UnionWith(Enumerable.Range(1, 20)); var destination = new HashSet(source); ``` Behavior before the #4349 optimization: - `source._buckets` and `source._slots` are of length 17,519. - `destination._buckets` and `destination._slots` are of length 23. Behavior after the #4349 optimization: - `source._buckets` and `source._slots` are of length 17,519. - `destination._buckets` and `destination._slots` are of length 17,519. A workaround would be to call `source.TrimExcess()` before using it to construct a new `HashSet`, or calling `destination.TrimExcess()` after constructing, but that won't help existing code and using `TrimExcess()` is going to result in more array allocations. It'd be nice if the optimized path didn't blindly clone potentially unnecessarily huge arrays for `_buckets` and `_slots` when smaller array sizes would be sufficient for the destination. Does anyone else share this concern? An alternative optimization might look something like: ``` c# var otherAsHashSet = collection as HashSet; if (otherAsHashSet != null && AreEqualityComparersEqual(this, otherAsHashSet)) { Initialize(otherAsHashSet.Count); int lastIndex = otherAsHashSet._lastIndex; Slot[] slots = otherAsHashSet._slots; for (int i = 0; i < lastIndex; i++) { if (slots[i].hashCode >= 0) { AddIfNotPresent(slots[i].hashCode, slots[i].value) } } } ``` Where `AddIfNotPresent` has a new overload that supports taking a pre-calculated hashcode. This entire alternative optimization could also be moved inside `UnionWith`, which would simplify the constructor and optimize `UnionWith`. cc: @tpetrina @stephentoub @ellismg @ianhays @JonHanna +5144 area-System.Net System.Net Logging Tracking Items Tracking Items for https://github.com/dotnet/corefx/pull/5101 Formatting in *EventSource classes: - [ ] Make constants have PascalCasing. - [ ] Correctly separate arguments of methods in different lines (when needed). - [ ] Add spaces needed in the attributes of the methods when not correctly aligned. - [ ] New lines after if/else blocks (mainly after the IsEnabled check). Dump Methods in SocketsEventSource: - [ ] Analyse if the method type is necessary.Change if possible to receive a Socket (hash). - [ ] Analyse if copying the buffer when it is received as an IntPtr to a byte [] is necessary. Update: After trying in different ways, I couldn't make the event method work without making a copy to a byte[]. When using the predefined WriteEvent it would only log the address and not the array. I could not make an override method work properly. Keywords: - [ ] Analyse if the right keywords are used for each event. Logging.cs class - [ ] Look for all the references done to this class in all projects and change calls to hash methods instead to LoggingHash. - [ ] Delete Logging.cs (in both S:\corefx\src\Common\src\System\Net\Logging AND S:\corefx\src\common\src\system\net) Keep in sync with Localization: - [ ] https://github.com/dotnet/corefx/issues/5126 Testing - [ ] Add some automated tests for the new EventSources created. Compatibility - [ ] Due to possible incompatibility between different versions of NetEventSource packaged inside distinct dlls, this class should not be changed in the future: > The minute you have multiple copies of an EventSource that claim to be the same identity, you have the problem of who to 'believe' at runtime (each will send out a manifest for the events). Sure if they are the same, you are OK, but if they are in different modules, there is a pretty good chance they will ship at different times, and thus you might have machines that have one copy that is older than another. This creates a bunch of subtle error modes (new events may not be recognized) that would be very difficult to diagnose. We are trying to avoid subtlety like this. Performance - [x] Update System.Net.Sockets to avoid allocations/work at call sites when logging is disabled - [x] Update System.Net.Security accordingly - [x] Update System.Net.Ping accordingly - [x] Update the rest of System.Net.\* accordingly - [x] Remove GlobalLog.Assert(bool, ...) as it leads to bad habits +5147 area-System.Collections Improve memory use of HashSet constructed from HashSet. If a `HashSet` is constructed from an existing `HashSet` then use the current approach if the count is above a particular ratio to the capacity, but if it is below that ratio (small enough that if created just from those items and then added to the next resize would still not reach that capacity) use an optimised version of `AddIfNotPresent` to add each item. Fixes #5141 @justinvp this combines your suggestion about an optimised version of `AddIfNotPresent` with mine of using the current approach above a certain threshold of count/capacity. I took that threshold as being `ExpandPrime(count + 1)` though there's no perfect value (the best value would depend on what additions where later done, and how long the produced set would be kept in memory, so it can't be perfectly deduced). Done on top of the two commits for #5131 rather than repeat things that need to be included in this. I pretty much ignored the idea of optimising `UnionWith`. That certainly could be done along the same lines, but the `AddValue` I have here couldn't be quite as tightly optimised, with the skip on tests for the item being present and the skips on incrementing the count and version having to be undone. At the very least this needs more tests before I take off the WIP tag. Contains the commits that were previously in #5131, so Fixes #5130. +5148 area-System.Net Port System.Private.Uri project configurations cc @tarekgh PTAL at the resource files when you get a chance. cc @davidsh @CIPop PTAL look at the project conversion when you get a chance. +5149 area-System.Collections System.Collections.Generic: SortedSet constructors not properly validating passed IComparer The SortedSet constructors: - `new SortedSet(IComparer< T> comparer)` - `new SortedSet(IEnumerable< T> collection, IComparer< T> comparer)` are not consistent with their behavior when `comparer` is null. The docs for [the comparer constructor](https://msdn.microsoft.com/en-us/library/dd395024%28v=vs.110%29.aspx) state that a null comparer should throw an ArgumentNullException. However, the code actually performs a check on the comparer if it is null and sets it to the default comparer if it is. The docs for [the enumerable and comparer constructor](https://msdn.microsoft.com/en-us/library/dd394885%28v=vs.110%29.aspx) neglect to mention any behavior for when the comparer is null. The code will throw a NullReferenceException on [line 148 of SortedSet.cs](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/SortedSet.cs) when it attempts to call `Compare` on the null Comparer that was passed as input. Suggested Solution: Behavior for null Comparers should be consistent across constructors. Modify the `SortedSet(IEnumerable< T> collection, IComparer< T> comparer)` constructor to use the default Comparer when the passed comparer is null. +5150 area-System.Collections Fix SortedSet constructors to use default Comparer tests coming in #754 resolves #5149 +5151 area-System.Net Deleting Logging.cs file and references Substituting Logging calls to EventSource calls, or calls to LoggingHash. Fix #5144 +5152 area-System.Numerics Should Vector.Count be readonly? ``` csharp [JitIntrinsic] public static int Count { get { return s_count; } } private static int s_count = InitializeCount(); ``` If hardware accelerated is false will `s_count` still be Jitted to a const even though its not `readonly`? Or should it be readonly? +5153 area-Infrastructure Use different strong name key for new projects Commit that key to source control and don't delay sign or oss sign those binaries. - System.Buffers - System.Text.Encodings.Web - System.Diagnostics.DiagnosticSource Anything that doesn't have the burden of assembly strong name backwards compatiblity +5156 area-System.Net Porting NegotiateStream Summary: - Porting NegotiateStream - Adding a simple Unix PAL that throws `PlatformNotSupportedException`. - Renaming Secur32 to SspiCli - Integrating with ETW Logging changes - Formatting Fix #1844, #4661 @davidsh @josguil @bartonjs @stephentoub @roncain PTAL @ericeil @vijaykota - PTAL, parts of this will need to be ported to x-plat as well. /cc: @SidharthNabar +5157 area-System.Security Unix: GetECDsaPublicKey from an unknown named curve throws ArgumentException ``` System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests.TestECDsa224PublicKey [FAIL] System.ArgumentException : Cannot open an invalid handle. Parameter name: pkeyHandle Stack Trace: at System.Security.Cryptography.ECDsaOpenSsl..ctor(SafeEvpPKeyHandle pkeyHandle) at Internal.Cryptography.Pal.OpenSslX509CertificateReader.GetECDsaPublicKey() at Internal.Cryptography.Pal.OpenSslX509Encoder.DecodePublicKey(Oid oid, Byte[] encodedKeyValue, Byte[] encodedParameters, ICertificatePal certificatePal) at Internal.Cryptography.Pal.CertificateExtensionsCommon.GetPublicKey[T](X509Certificate2 certificate, Predicate`1 matchesConstraints) at System.Security.Cryptography.X509Certificates.ECDsaCertificateExtensions.GetECDsaPublicKey(X509Certificate2 certificate) at System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests.TestECDsa224PublicKey() ``` A more graceful exception seems warranted. On Windows (2008 R2): ``` Discovering: System.Security.Cryptography.X509Certificates.Tests Discovered: System.Security.Cryptography.X509Certificates.Tests Starting: System.Security.Cryptography.X509Certificates.Tests System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests.TestECDsa224PublicKey [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Unknown cryptographic algorithm Stack Trace: at Internal.Cryptography.Pal.X509Pal.ImportPublicKeyInfo(SafeCertContextHandle certContext) at Internal.Cryptography.Pal.X509Pal.DecodeECDsaPublicKey(CertificatePal certificatePal) at Internal.Cryptography.Pal.X509Pal.DecodePublicKey(Oid oid, Byte[] encodedKeyValue, Byte[] encodedParameters, ICertificatePal certificatePal) at Internal.Cryptography.Pal.CertificateExtensionsCommon.GetPublicKey[T](X509Certificate2 certificate, Predicate`1 matchesConstraints) at System.Security.Cryptography.X509Certificates.ECDsaCertificateExtensions.GetECDsaPublicKey(X509Certificate2 certificate) at System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests.TestECDsa224PublicKey() ``` +5159 area-System.IO FileStream opens in async mode by default "The following code: ``` var fs = new FileStream(""vogavoa"", FileMode.OpenOrCreate, FileAccess.Write); Console.WriteLine(fs.IsAsync); ``` Returns false for full .net and true for coreclr. shouldn't the behavior be the same? " +5162 area-System.Security Add ChaCha20-Poly1305 to CoreFX Add ChaCha20-Poly1305 to CoreFX's cipher suite. It is a very fast AEAD (significantly faster than AES-GCM except when the latter has hardware support) that is immune to side channel attacks and is relatively easy to implement. It is included in OpenSSL 1.1 or later, or in libSodium. +5165 area-System.Collections Documentation needed on System.Collections.Immutable (what exist is seriously lacking) The documentation for how to use System.Collections.Immutable is the worst I have seen of any general microsoft libraries. No general introduction and very few examples. + Most stuff that google can find on the net is outdated and may no longer work. I need quite some detective work just to find out how to instantiate an instance of an immutable list with specific values, how to convert a IEnumerable etc. +5167 area-System.Security Windows 10: x509 GetECDsa*Key fails on new keys (secp224r1, brainpool, etc) This likely applies to any curve which was added in Windows 10. The data that DecodeECDsaPublicKey (https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Windows/X509Pal.PublicKey.cs#L64) passes into CngKey.Import ends up failing (and throwing) for curves that are not { secp256r1, secp384r1, secp521r1 }. +5168 area-Infrastructure Outerloop tests failing with packaging error System.IO.FileSystem.dll does not exist, ensure you have built libraries before building the package. ``` 08:07:44 d:\j\workspace\dotnet_corefx\outerloop_win10_release\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00141\lib\Packaging.targets(460,5): error : File d:\j\workspace\dotnet_corefx\outerloop_win10_release\bin\Linux.AnyCPU.Release\System.IO.FileSystem\System.IO.FileSystem.dll does not exist, ensure you have built libraries before building the package. [d:\j\workspace\dotnet_corefx\outerloop_win10_release\src\System.IO.FileSystem\pkg\unix\System.IO.FileSystem.pkgproj] 08:07:44 d:\j\workspace\dotnet_corefx\outerloop_win10_release\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00141\lib\Packaging.targets(886,5): error : Error when creating nuget package from d:\j\workspace\dotnet_corefx\outerloop_win10_release\bin\pkg\specs\runtime.unix.System.IO.FileSystem.nuspec. System.IO.DirectoryNotFoundException: Could not find a part of the path 'd:\j\workspace\dotnet_corefx\outerloop_win10_release\bin\Linux.AnyCPU.Release\System.IO.FileSystem'. [d:\j\workspace\dotnet_corefx\outerloop_win10_release\src\System.IO.FileSystem\pkg\unix\System.IO.FileSystem.pkgproj] 08:07:44 d:\j\workspace\dotnet_corefx\outerloop_win10_release\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00141\lib\Packaging.targets(886,5): error : at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) [d:\j\workspace\dotnet_corefx\outerloop_win10_release\src\System.IO.FileSystem\pkg\unix\System.IO.FileSystem.pkgproj] 08:07:44 d:\j\workspace\dotnet_corefx\outerloop_win10_release\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00141\lib\Packaging.targets(886,5): error : at System.IO.FileSystemEnumerableIterator`1.CommonInit() [d:\j\workspace\dotnet_corefx\outerloop_win10_release\src\System.IO.FileSystem\pkg\unix\System.IO.FileSystem.pkgproj] 08:07:44 d:\j\workspace\dotnet_corefx\outerloop_win10_release\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00141\lib\Packaging.targets(886,5): error : at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost) [d:\j\workspace\dotnet_corefx\outerloop_win10_release\src\System.IO.FileSystem\pkg\unix\System.IO.FileSystem.pkgproj] 08:07:44 d:\j\workspace\dotnet_corefx\outerloop_win10_release\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00141\lib\Packaging.targets(886,5): error : at System.IO.Directory.GetFiles(String path, String searchPattern, SearchOption searchOption) [d:\j\workspace\dotnet_corefx\outerloop_win10_release\src\System.IO.FileSystem\pkg\unix\System.IO.FileSystem.pkgproj] 08:07:44 d:\j\workspace\dotnet_corefx\outerloop_win10_release\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00141\lib\Packaging.targets(886,5): error : at NuGet.PathResolver.PerformWildcardSearchInternal(String basePath, String searchPath, Boolean includeEmptyDirectories, String& normalizedBasePath) [d:\j\workspace\dotnet_corefx\outerloop_win10_release\src\System.IO.FileSystem\pkg\unix\System.IO.FileSystem.pkgproj] 08:07:44 d:\j\workspace\dotnet_corefx\outerloop_win10_release\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00141\lib\Packaging.targets(886,5): error : at NuGet.PathResolver.ResolveSearchPattern(String basePath, String searchPath, String targetPath, Boolean includeEmptyDirectories) [d:\j\workspace\dotnet_corefx\outerloop_win10_release\src\System.IO.FileSystem\pkg\unix\System.IO.FileSystem.pkgproj] 08:07:44 d:\j\workspace\dotnet_corefx\outerloop_win10_release\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00141\lib\Packaging.targets(886,5): error : at NuGet.PackageBuilder.AddFiles(String basePath, String source, String destination, String exclude) [d:\j\workspace\dotnet_corefx\outerloop_win10_release\src\System.IO.FileSystem\pkg\unix\System.IO.FileSystem.pkgproj] 08:07:44 d:\j\workspace\dotnet_corefx\outerloop_win10_release\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00141\lib\Packaging.targets(886,5): error : at NuGet.PackageBuilder.PopulateFiles(String basePath, IEnumerable`1 files) [d:\j\workspace\dotnet_corefx\outerloop_win10_release\src\System.IO.FileSystem\pkg\unix\System.IO.FileSystem.pkgproj] 08:07:44 d:\j\workspace\dotnet_corefx\outerloop_win10_release\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00141\lib\Packaging.targets(886,5): error : at NuGet.PackageBuilder.ReadManifest(Stream stream, String basePath, IPropertyProvider propertyProvider) [d:\j\workspace\dotnet_corefx\outerloop_win10_release\src\System.IO.FileSystem\pkg\unix\System.IO.FileSystem.pkgproj] 08:07:44 d:\j\workspace\dotnet_corefx\outerloop_win10_release\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00141\lib\Packaging.targets(886,5): error : at NuGet.PackageBuilder..ctor(String path, String basePath, IPropertyProvider propertyProvider, Boolean includeEmptyDirectories) [d:\j\workspace\dotnet_corefx\outerloop_win10_release\src\System.IO.FileSystem\pkg\unix\System.IO.FileSystem.pkgproj] 08:07:44 d:\j\workspace\dotnet_corefx\outerloop_win10_release\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00141\lib\Packaging.targets(886,5): error : at Microsoft.DotNet.Build.Tasks.Packaging.NuGetPack.Execute() [d:\j\workspace\dotnet_corefx\outerloop_win10_release\src\System.IO.FileSystem\pkg\unix\System.IO.FileSystem.pkgproj] ``` +5173 area-System.Data Certificate validation fails on osx 10.11 Moved from https://github.com/dotnet/corefx/issues/4593#issuecomment-166719300 --- I am not able to connect from OS X 10.11 to **SQL Azure** when using `Encrypt=true` in the connection string. ``` System.Data.SqlClient.SqlException : A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 - An internal exception was caught) ---- System.Security.Authentication.AuthenticationException : The remote certificate is invalid according to the validation procedure. ``` [Full stack trace here](https://gist.github.com/natemcmaster/d4816c77789a08f78a41) dnx 1.0.0-rc2-16348 coreclr System.Data.SqlClient 4.0.0-rc2-23622 +5178 area-System.Net TLS Client Handshake seems to violate the protocol in unix I am currently having problem communicating with SQL Server (older version) with TLS 1.0 I do notice that the packet that was sent by SSLStream sent different versions In UNIX ![image](https://cloud.githubusercontent.com/assets/698547/12099774/6aafc6a0-b2df-11e5-8726-9f003ccd0f90.png) +5181 area-Serialization Fix serialization data contract overflow when reading object concurrently This change is to port the fix from Desktop (CS 1558305) which has been validated. @SGuyGe @shmao Fix #4504 +5183 area-System.Numerics Add support for floating point control register manipulation - esp denormal/subnormal flush-to-zero "The general request I'm making is to expose the floating point control register to managed code. I realize that could have a lot of implications, so the minimal request is exposing the denormal/subnormal flush mode, so that ""flush to zero"" can be enabled on IEEE float values. The scenario is that for certain real-time signal processing applications denormal numbers can pose performance problems. For a concrete scenario, consider the case of a real-time music synthesis program which provides various audio channels which have various audio processors operating on them. There is a class of audio processors, including delay/reverb type effects, which are implemented as IIR (infinite impulse response) filters. The character of these filters is that, when the input goes to silence, the internal state (and output) of the filter exponentially decays towards zero over time. The trouble arises if non-silent input occurs sporadically, which significant periods of silence between. In that case, it is possible for the internal state of the filter to decay to denormal float range. This usually causes a 1-2 order of magnitude cost increase in computation time, which often causes the synthesizer to glitch because it starts missing it's deadlines to provide buffers to the audio output device. The classic ""C"" solution is to enable ""flush-to-zero"" mode on the fpu, which solves the problem without code changes. The denormal threshhold is so far below audible that there is no loss of correctness for audio applications. In managed code, one could write code to detect the denormal bit pattern and flush to zero explicitly, but this comes at a performance cost, which is a pity especially since the hardware can do it for free. The reason it could be difficult is the question of how this would interoperate with other floating point consumers in the managed realm, such as WPF/winforms graphics libraries, as well as interop with unmanaged users of floating point. In general, modifying the fpu control register is very expensive (basically purges the entire processor pipeline), so it's to be done only infrequently. But correctness of other packages potentially could rely on IEEE denormal behavior. At minimum there could be a significant test impact. One mitigation could be that this option would be set on a per-thread basis, once, at thread initialization, much like the COM apartment model specification is done. That would fit well with the music synthesis world of this specific scenario, where dedicated threads are used to do the real-time work. " +5185 area-System.Net UDP tests fail with timeout sending/receiving data over loopback Hit a timeout in this test: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/565/testReport/junit/System.Net.Sockets.Tests/DualMode/ReceiveFromAsyncV6BoundToSpecificV6_Success/ ``` Stacktrace MESSAGE: System.TimeoutException : The operation has timed out. +++++++++++++++++++ STACK TRACE: at System.Net.Sockets.Tests.DualMode.ReceiveFromAsync_Helper(IPAddress listenOn, IPAddress connectTo) in d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Sockets\tests\FunctionalTests\DualModeSocketTest.cs:line 599 at System.Net.Sockets.Tests.DualMode.ReceiveFromAsyncV6BoundToSpecificV6_Success() in d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Sockets\tests\FunctionalTests\DualModeSocketTest.cs:line 536 ``` +5187 area-System.Net TLS 1.0 in Unix send additional 32 bytes of application data In Unix, TLS 1.0 via SSLStream send addition 32 bytes of application data. This may cause old communication server only pick the first application data. ***In Unix - TLS 1.0 - (send 2 application data - Additional 32 bytes of data) ![image](https://cloud.githubusercontent.com/assets/698547/12105337/a5388680-b308-11e5-81c0-310ccb78178a.png) ***In Windows - TLS 1.0 - (send 1 application data) ![image](https://cloud.githubusercontent.com/assets/698547/12105340/b42823d0-b308-11e5-88dd-22b7a314a410.png) ***In Unix - TLS 1.2 (send 1 application data) ![image](https://cloud.githubusercontent.com/assets/698547/12105357/e21128c8-b308-11e5-8e61-7c025082ef1d.png) +5188 area-System.Collections Add key value to KeyNotFoundException It would be great if, for example, when dictionary throws KeyNotFoundException, we can have the searched key in the exception for some traces +5189 area-System.Net Sockets.APMServer.Tests failed on OS X with unhandled SocketException 10004 http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst/110/console ``` Unhandled Exception: System.Net.Sockets.SocketException: Unknown error: 10004 05:45:07 at System.Net.Sockets.Socket.Receive(IList`1 buffers, SocketFlags socketFlags) 05:45:07 at System.Net.Sockets.Tests.SendReceive.<>c__DisplayClass4_0.b__0() 05:45:07 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 05:45:10 ./run-test.sh: line 130: 62000 Abort trap: 6 ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory -notrait Benchmark=true 05:45:10 error: One or more tests failed while running tests from 'System.Net.Sockets.APMServer.Tests'. Exit code 134. ``` +5190 area-Infrastructure CoreFx managed build doesn't distinguish by distro "We currently only distinguish between OSX, Linux, FreeBSD and Windows in the managed build. See https://github.com/dotnet/corefx/blob/13486efbd6619da273c6658fbf927cccd67fa27c/build.sh#L200-L220. This is sufficient for our managed implementations, but packages for the native shims require a specific OS. Today I'm ignoring this distinction and building all Linux packages on any linux distro and we need to ""know"" not to publish the centos shim packages produced from an unbuntu machine. We should clean this up. /cc @weshaggard @chcosta " +5193 area-Serialization Fix behavior difference when XmlSerializer deserializes out-of-range byte values Deserializing out-of-range byte value using XmlSerializer succeeds whereas it fails on Desktop. The reason was due to additional conditionals were used as workaround for issues on Silverlight. This change will make the behavior consistent with Desktop which is to throw InvalidOperationException when reading invalid value for byte data type. Fix #4668 @SGuyGe @shmao +5199 area-Infrastructure Build failure on master (Ubuntu Desktop 14.04.3) "Installed fresh copy of Ubuntu Desktop 14.04.3 LTS in VirtualBox 5.0.12 **Build CoreCLR on Linux (Instructs to build CoreFx as well)** https://github.com/dotnet/coreclr/blob/master/Documentation/building/linux-instructions.md installed git 1) clrjunkie@ubuntu-14-desktop:~$ cd ~ 2) clrjunkie@ubuntu-14-desktop:~$ mkdir git 3) clrjunkie@ubuntu-14-desktop:~$ cd git 4) clrjunkie@ubuntu-14-desktop:~/git$ git clone https://github.com/dotnet/coreclr.git //today 5) clrjunkie@ubuntu-14-desktop:~/git$ git clone https://github.com/dotnet/corefx.git //today 6) clrjunkie@ubuntu-14-desktop:~/git$ echo ""deb http://llvm.org/apt/trusty/ llvm-toolchain-trusty-3.6 main"" | sudo tee /etc/apt/sources.list.d/llvm.list 7) clrjunkie@ubuntu-14-desktop:~/git$ wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add - 8) clrjunkie@ubuntu-14-desktop:~/git$ sudo apt-get update 9) clrjunkie@ubuntu-14-desktop:~/git$ sudo apt-get install cmake llvm-3.5 clang-3.5 lldb-3.6 lldb-3.6-dev libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev libcurl4-openssl-dev libssl-dev uuid-dev 10) clrjunkie@ubuntu-14-desktop:~/git$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF 11) clrjunkie@ubuntu-14-desktop:~/git$ echo ""deb http://download.mono-project.com/repo/debian wheezy main"" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list 12) clrjunkie@ubuntu-14-desktop:~/git$ sudo apt-get update 13) clrjunkie@ubuntu-14-desktop:~/git$ sudo apt-get install mono-devel 14) clrjunkie@ubuntu-14-desktop:~/git$ sudo nano /etc/security/limits.conf Add: clrjunkie soft nofile 50000 clrjunkie hard nofile 50000 15) clrjunkie@ubuntu-14-desktop:~/git$ sudo nano /etc/sysctl.conf Add: fs.file-max = 100000 16) clrjunkie@ubuntu-14-desktop:~/git$ sudo sysctl -p 17) logout & login 18) clrjunkie@ubuntu-14-desktop:~$ ulimit -Hn 50000 19) clrjunkie@ubuntu-14-desktop:~$ cd git/coreclr 20) clrjunkie@ubuntu-14-desktop:~/git/coreclr$ ./build.sh Repo successfully built. Product binaries are available at /home/clrjunkie/git/coreclr/bin/Product/Linux.x64.Debug 21) clrjunkie@ubuntu-14-desktop:~/git/coreclr$ cd ../corefx **Website doc error - Need to mention FX requires additional setup** 22) clrjunkie@ubuntu-14-desktop:~/git/corefx$ ./build.sh Setting up directories for build PCL reference assemblies not found. Please see https://github.com/dotnet/corefx/blob/master/Documentation/building/unix-instructions.md for more details. [fxbuild.txt](https://github.com/dotnet/corefx/files/80209/fxbuild.txt) **Building CoreFX on FreeBSD, Linux and OS X** https://github.com/dotnet/corefx/blob/master/Documentation/building/unix-instructions.md 23) clrjunkie@ubuntu-14-desktop:~/git/corefx$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF 24) clrjunkie@ubuntu-14-desktop:~/git/corefx$ echo ""deb http://download.mono-project.com/repo/debian wheezy main"" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list 25) clrjunkie@ubuntu-14-desktop:~/git/corefx$ echo ""deb http://jenkins.mono-project.com/repo/debian sid main"" | sudo tee /etc/apt/sources.list.d/mono-jenkins.list 26) clrjunkie@ubuntu-14-desktop:~/git/corefx$ sudo apt-get update 27) clrjunkie@ubuntu-14-desktop:~/git/corefx$ sudo apt-get install mono-snapshot-latest referenceassemblies-pcl 28) clrjunkie@ubuntu-14-desktop:~/git/corefx$ . mono-snapshot mono 29) [mono-2016.01.05+18.26.39]clrjunkie@ubuntu-14-desktop:~/git/corefx$ sudo ln -s /usr/lib/mono/xbuild-frameworks/.NETPortable/ $MONO_PREFIX/lib/mono/xbuild-frameworks/ 30) [mono-2016.01.05+18.26.39]clrjunkie@ubuntu-14-desktop:~/git/corefx$ ./build.sh 7 Warning(s) 73 Error(s) Time Elapsed 01:50:40.53 Build Exit Code = 1 (Attached full log) " +5200 area-System.Net ReceiveAsync cancellation throws WebSocketException and terminates the socket await Socket.ReceiveAsync( new ArraySegment( Buffer ), Ct ); cannot be cancelled on a ClientWebSocket when Ct is the CancellationToken. Instead of throwing a OperationCanceledException and keeping the socket alive, the following exception is thrown and the socket is aborted: System.Net.WebSockets.WebSocketException: The 'System.Net.WebSockets.InternalClientWebSocket' instance cannot be used for communication because it has been transitioned into the 'Aborted' state. ---> System.Net.Http.WinHttpException: The operation has been canceled This is true for both the ClientWebSocket and on a server socket when WebListener is used. When Kestrel is used, ReceiveAsync CAN be cancelled on the SERVER, the cancellation takes about 10 seconds though. Minimal solution with both the client and server part to reproduce on Stack Overflow: http://stackoverflow.com/questions/34634652/dnx-core-websocket-clientwebsocket-receiveasync-cancellation-is-not-working-p +5202 area-System.Numerics [API Proposal] Support for constructing and copying Vector from pointers # Summary Currently, the System.Numerics.Vectors library provides no way to construct `Vector` objects out of native pointers, or from anything other than an array or a single constant element. Although part of the draw of this library is access to high-performance vector math without resorting to native or unsafe code, there’s a lot of reasons you might have your data stored somewhere outside of a managed array. It’s not reasonable to copy all of your data into an array just to do vector operations on it, and then copy it back to its original location. Additionally, you might want to construct a one-off vector from the stack (perhaps using `stackalloc`), without having to make an entire array for the purpose of a single vector. Even if you have a safe `IntPtr` to your storage location, you cannot currently construct a `Vector` from it. We should expose better support for, at the very least, constructing `Vector`’s from arbitrary pointers, and storing them back into arbitrary locations. # Proposed API ``` CSharp public struct Vector { public Vector(void* dataPointer); public Vector(void* dataPointer, int offset); public Vector(IntPtr dataPointer); public Vector(IntPtr dataPointer, int offset); public void CopyTo(void* destination); public void CopyTo(void* destination, offset); public void CopyTo(IntPtr destination); public void CopyTo(IntPtr destination, offset); } ``` Because all pointer types can be implicitly converted to a `void*` pointer, you can use the first overloads above to load a `Vector` by passing a `float*` for example. It also allows you to load a `Vector` with any other pointer type, but in my opinion this is not a problem. Even with the alternate approach below (see “Alternative Approaches”), you can simply cast a pointer type to another and construct any kind of `Vector` you would like. This is desirable in some situations if you want to perform different calculations or reinterpret your data in some way. ## Constructor This behaves exactly the same way as the constructor taking an array, and allows an optional offset to be given in order to skip elements at the beginning of your storage. ## CopyTo This behaves exactly the same way as `CopyTo(T[])`, also with an optional offset to control the storage location. # JIT Recognition These new overloads must be recognized by the JIT. Functionally, they are pretty much identical to the existing overloads which operate on arrays. # Alternative Approach Instead of a “universal” pointer constructor, we could expose some “factory” methods which take a specifically-typed pointer and return a specifically typed `Vector`. ``` CSharp public static Vector Load(byte* dataPointer, int offset); public static Vector Load(int* dataPointer, int offset); public static Vector Load(float* dataPointer, int offset); ... ``` I don’t personally favor this approach as using static methods for construction doesn’t necessarily mesh with the existing usage patterns, and it also just adds a lot more methods than constructors (two per primitive type, so 20 in total). Also, It would still make sense to add the `IntPtr` constructor even if we went this route. Related to https://github.com/dotnet/corefx/issues/5106, https://github.com/dotnet/corefx/issues/3741 I have part of the additions (`void*` overloads) implemented in [this branch](https://github.com/mellinoe/corefx/commit/b7c5db276ac89dd599d9d088d0a467482ca340e8) with tests added. # Clarifications ### Q: Since `Vector` is a struct, why do we need special constructors for pointers pointers? Other BCL structures don't need special constructors for this, you can just cast, de-reference, etc. Because `Vector` is a generic struct, you can't directly take it's address, nor have a pointer to it. ``` error CS0208: Cannot take the address of, get the size of, or declare a pointer to a managed type ('Vector') ``` Consider `Vector4`, which is sort of similar to `Vector`. If you want to get a `Vector4` from a `float*` or vice-versa, you can just do the following, and you don't need a specialized constructor for it: ``` CSharp float* data = stackalloc float[4]; Vector4 vec = *(Vector4*)data; Vector4* vectorData = stackalloc Vector4[100]; Vector4 first = vectorData[0]; float* xPtr = &first.X; // etc. ``` Because `Vector` is generic, the above mechanisms aren't applicable and you're much more limited in how you can constructor and store them with pointers. +5203 area-System.ComponentModel Fix CustomValidationAttribute to properly implement RequiresValidatonContext Squashed replacement for https://github.com/dotnet/corefx/pull/3794 +5204 area-Infrastructure corefx code coverage runs are consistently failing in CI "Some are failing with errors like this in the log: ``` 12:13:13 An exception occured: Failed to register(user:True,register:True,is64:False):5 the profiler assembly; you may want to look into permissions or using the -register:user option instead. C:\Windows\system32\regsvr32.exe /s /n /i:user ""d:\j\workspace\dotnet_corefx\code_coverage_windows\packages\OpenCover\4.6.166\tools\x86\OpenCover.Profiler.dll"" 12:13:13 stack: at OpenCover.Framework.ProfilerRegistration.ExecuteRegsvr32(Boolean userRegistration, Boolean register, Boolean is64) in c:\projects\opencover\main\OpenCover.Framework\ProfilerRegistration.cs:line 66 12:13:13 at OpenCover.Console.Program.RunWithContainer(CommandLineParser parser, Bootstrapper container, IPersistance persistance) in c:\projects\opencover\main\OpenCover.Console\Program.cs:line 114 12:13:13 at OpenCover.Console.Program.Main(String[] args) in c:\projects\opencover\main\OpenCover.Console\Program.cs:line 57 12:13:14 d:\j\workspace\dotnet_corefx\code_coverage_windows\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00142\lib\tests.targets(129,5): warning MSB3073: The command ""d:\j\workspace\dotnet_corefx\code_coverage_windows\packages/OpenCover\4.6.166\tools\OpenCover.Console.exe -filter:""+[*]* -[*.Tests]*"" -excludebyfile:""*\Common\src\System\SR.*"" -nodefaultfilters -excludebyattribute:*.ExcludeFromCodeCoverage* -skipautoprops -hideskipped:All -threshold:1 -returntargetcode -register:user -target:d:\j\workspace\dotnet_corefx\code_coverage_windows\bin/tests/Windows_NT.AnyCPU.Debug\System.Net.Primitives.Pal.Tests\dnxcore50/CoreRun.exe -output:d:\j\workspace\dotnet_corefx\code_coverage_windows\bin/tests/coverage\System.Net.Primitives.Pal.Tests.coverage.xml -targetargs:""xunit.console.netcore.exe System.Net.Primitives.Pal.Tests.dll -xml testResults.xml -notrait category=nonwindowstests -notrait Benchmark=true -notrait category=OuterLoop -notrait category=failing """" exited with code 1. [d:\j\workspace\dotnet_corefx\code_coverage_windows\src\System.Net.Primitives\tests\PalTests\System.Net.Primitives.Pal.Tests.csproj] ``` Others are failing with errors like this in the log: ``` 16:21:59 Unhandled Exception: System.OverflowException: Array dimensions exceeded supported range. 16:21:59 at OpenCover.Framework.Communication.CommunicationManager.HandleMemoryBlock(IManagedMemoryBlock mmb) in c:\projects\opencover\main\OpenCover.Framework\Communication\CommunicationManager.cs:line 82 16:22:00 at OpenCover.Framework.Manager.ProfilerManager.<>c__DisplayClass24.b__22(Object state) in c:\projects\opencover\main\OpenCover.Framework\Manager\ProfilerManager.cs:line 248 16:22:00 at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 16:22:00 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 16:22:01 at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 16:22:01 at System.Threading.ThreadPoolWorkQueue.Dispatch() ``` We haven't updated to a newer version of OpenCover since July, and these issues only just started happening in the last few days, implying to me this is somehow infrastructure related...? " +5205 area-System.Runtime API review: During shutdown, revisit finalization and provide a way to clean up resources "Running finalizers on reachable objects during shutdown is currently unreliable. This is a proposal to fix that and provide a way to clean up resources on shutdown in a reliable way. ## Issues observed on shutdown Currently, a best-effort attempt is made to run finalizers for all finalizable objects during shutdown, including reachable objects. Running finalizers for reachable objects is not reliable, as the objects are in an undefined state. - In order to finalize reachable objects, threads must be blocked, since objects that are still reachable cannot be used during or after finalization. Later, threads are terminated without running any more user code. - Running user code in finalizers after blocking other threads is unreliable, as those threads may be blocked at an inopportune point, and may cause finalizers to block indefinitely or result in undefined behavior due to the undefined state of the object - Example from a user code perspective. Consider an object that writes to a network stream using some stateful communication protocol. The finalizer would write a termination value to the stream and close the stream. Suppose that the termination value indicates to the receiving end that all data has been written, while abruptly closing the stream without writing the termination value would indicate incomplete transmission due to disconnection or some other reason. Writing the termination value in the finalizer assumes that there are no more references to the object, indicating that all data has been written. Suppose that a background thread is using the object, writing data to the pipe. During shutdown, the background thread is blocked at some arbitrary point, and the object is still referenced. Writing the termination value to the pipe in the finalizer at that point may be invalid according to the protocol. - Example from a runtime perspective. If a thread is blocked during GC, and a finalizer tries to allocate something, it may block waiting for GC to complete, which will never happen. The finalizer itself may not even allocate anything, but even just jitting the finalizer method will trigger allocation. While this particular issue can be fixed separately, it demonstrates the unreliability of the current design not just from a user code perspective but from a runtime perspective. - Effectively, the best-effort attempt to run finalizers for reachable finalizable objects is not reliable. ## Proposal - Don't run finalizers on shutdown (for reachable or unreachable objects) - Don't block threads on shutdown - Don't do a GC on shutdown (no change from current behavior) - Under this proposal, it is not guaranteed that all finalizable objects will be finalized before shutdown. - Doing a GC on shutdown and running finalizers for unreachable objects can guarantee that objects that are deterministically unreachable by the time of shutdown will be finalized. However, such objects should also be deterministically disposed before shutdown. For cases that require this, the user can trigger a GC explicitly and wait for finalizers before shutdown. - When there are background threads that are still running, there would be no guarantee on how many objects will be finalized anyway - Provide a public AssemblyLoadContext.Unloading event - An AssemblyLoadContext manages the lifetime of assemblies loaded under that context - Code should register for the event in the AssemblyLoadContext instance associated with the assembly - The event is raised when the GC determines that the AssemblyLoadContext instance is no longer referenced. For the default AssemblyLoadContext instance and for a custom instance installed as the default load context, the event will be raised before normal shutdown. - Abrupt shutdown due to unhandled exception, process kill, etc., will not raise any further Unloading events - As unloading an AssemblyLoadContext is not yet implemented, instances that have been used to load assemblies will currently live until the end of the process - No timeout. The timeout on waiting for finalizers to complete on shutdown was removed in CoreCLR some time back. In favor of treating blocking issues as program errors, no timeout will be used for this event either. - Event handler exceptions will crash the process. Any exception propagating out of an event handler will be treated as an unhandled exception. - Since other threads are not blocked before this, and may continue to run for a short period after the event is raised, event handlers may need to handle concurrency, and safeguard from using cleaned up resources from other threads ### Behavioral change ``` c# public static void Main() { var obj = new MyFinalizable(); } private class MyFinalizable { ~MyFinalizable() { Console.WriteLine(""~MyFinalizable""); } } ``` Previous output: ~MyFinalizable Typical output with the proposal above (running the finalizer is not guaranteed, but may run if a GC is triggered): (empty) ## Proposed API ``` c# namespace System.Runtime.Loader { public abstract class AssemblyLoadContext { public event Action Unloading; } } ``` ### Example ``` c# public class Logger { private static readonly object s_lock = new object(); private static bool s_isClosed = false; static Logger() { var currentAssembly = typeof(Loader).GetTypeInfo().Assembly; AssemblyLoadContext.GetLoadContext(currentAssembly).Unloading += OnAssemblyLoadContextUnloading; // Create log file based on configuration } private static void OnAssemblyLoadContextUnloading(AssemblyLoadContext sender) { // This may be called concurrently with WriteLine Close(); } private static void Close() { lock (s_lock) { if (s_isClosed) return; s_isClosed = true; // Write remaining in-memory log messages to log file and close log file } } public static void WriteLine(string message) { lock (s_lock) { if (s_isClosed) return; // Save log message in memory, if buffer is full, write messages to log file } } } ``` " +5206 area-Serialization XmlDictionaryReader removing significant whitespace "Using XmlDictionaryReader wrapped in a XmlReader to parse element with white spaces results in the white spaces being skipped. The MSDN suggests this is a by-design behavior. However XML specs indicates white spaces in content are significant and should not be ignored. The following is the test demonstrating the issue: ``` static Stream GetXmlStream() { //var sourceXml = ""a\r\nb\r\nc""; return new MemoryStream(Encoding.UTF8.GetBytes(sourceXml), false); } static XmlReaderSettings GetXmlSettings() { return new XmlReaderSettings() { IgnoreWhitespace = true }; } static string Escape(string s) { return s.Replace(""\r"", ""\\r"").Replace(""\n"", ""\\n""); } static string PrintNodes(string header, XmlReader r) { var sb = new StringBuilder(); //Console.WriteLine($""--== {header} ==--""); while (r.Read()) { //Console.Write(""{0}"", r.NodeType); sb.Append(string.Format(""{0}"", r.NodeType)); switch (r.NodeType) { case XmlNodeType.Element: { //Console.Write("" {0}="", r.Name); sb.Append(string.Format("" {0}="", r.Name)); goto case XmlNodeType.Text; } case XmlNodeType.Text: case XmlNodeType.CDATA: case XmlNodeType.Whitespace: case XmlNodeType.SignificantWhitespace: { //Console.Write("" \""{0}\"""", Escape(r.Value)); sb.Append(string.Format("" \""{0}\"""", Escape(r.Value))); break; } } //Console.WriteLine(); } return sb.ToString(); } [Fact] public static void XmlReaderTest() { var s1 = PrintNodes(""XmlDictionaryReader"", XmlDictionaryReader.CreateTextReader(GetXmlStream(), new XmlDictionaryReaderQuotas())); var s2 = PrintNodes(""XmlReader"", XmlReader.Create(GetXmlStream(), GetXmlSettings())); var s3 = PrintNodes(""XmlReader(XmlDictionaryReader)"", XmlReader.Create(XmlDictionaryReader.CreateTextReader(GetXmlStream(), new XmlDictionaryReaderQuotas()), GetXmlSettings())); Assert.StrictEqual(@""XmlDeclarationElement Value= """"""""Text """"a""""SignificantWhitespace """"\n""""Text """"b""""SignificantWhitespace """"\n""""Text """"c""""EndElement"", s1); Assert.StrictEqual(@""XmlDeclarationElement Value= """"""""Text """"a\nb\nc""""EndElement"", s2); Assert.StrictEqual(@""XmlDeclarationElement Value= """"""""Text """"a""""SignificantWhitespace """"\n""""Text """"b""""SignificantWhitespace """"\n""""Text """"c""""EndElement"", s3); } ``` " +5207 area-System.Net Fix #3610 Fixes #3610. These tests were failing due to a problem with re-use of `SocketAsyncEventArgs` objects. `args.SetBuffer(null, 0, 0)` unpins the buffer, and other miscellaneous items. Subsequent re-use of the `SocketAsyncEventArgs` object is supposed to pin whatever buffers, etc., are current, but will only do so if the previous cached pointers appear to be invalid. 86241bd4e80971e803b1c7440888fee23afaa1d3 fixed this for the buffer itself; this change implements the same pattern for the other pinned items. @stoub, @pgavlin, @CIPop +5211 area-System.Net Add CancellationToken overloads to async methods in System.Net.Security Ref: #4732 +5212 area-System.Reflection API review: System.Reflection.Metadata debug directory reading + misc Tracking the pending API review for PRs #5009 and #5018 ## New types ``` C# namespace System.Reflection { public enum MethodSemanticsAttributes { Setter = 0x0001, Getter = 0x0002, Other = 0x0004, Adder = 0x0008, Remover = 0x0010, Raiser = 0x0020, } } namespace System.Reflection.PortableExecutable { public struct CodeViewDebugDirectoryData { public Guid Guid { get; } public int Age { get; } public string Path { get; } } public struct DebugDirectoryEntry { public uint Stamp { get; } public ushort MajorVersion { get; } public ushort MinorVersion { get; } public DebugDirectoryEntryType Type { get; } public int DataSize { get; } public int DataRelativeVirtualAddress { get; } public int DataPointer { get; private set; } public DebugDirectoryEntry( uint stamp, ushort majorVersion, ushort minorVersion, DebugDirectoryEntryType type, int dataSize, int dataRelativeVirtualAddress, int dataPointer) } public enum DebugDirectoryEntryType { Unknown = 0, Coff = 1, CodeView = 2, Deterministic = 16, } } ``` ## New members ``` C# namespace System.Reflection.PortableExecutable { public struct DirectoryEntry { + public DirectoryEntry(int relativeVirtualAddress, int size); } public sealed class PEReader { + public ImmutableArray ReadDebugDirectory(); + public CodeViewDebugDirectoryData ReadCodeViewDebugDirectoryData( DebugDirectoryEntry entry); } } namespace System.Reflection.Metadata { public struct BlobReader { + public Guid ReadGuid(); } } ``` +5217 area-System.Reflection Add signing support to System.Reflection.Metadata There is already work in progress to [add the capability](https://github.com/dotnet/cli/issues/720) to the `dotnet` tool However, compilers usually do strong naming as part of the compilation process. This requires having a library that can be used to perform the signing. It seems `System.Reflection.Metadata` is the right location said functionality, especially when we support writing metadata. Compiler integration is also most logical way to make these attributes work: - `AssemblyDelaySignAttribute` - `AssemblyKeyFileAttribute` - `AssemblyKeyNameAttribute` +5222 area-System.Numerics Vector2 precision I'm finding Vector2's precision to be completely unsuitable for my app (a sketching application with lots of trigonometry), and I'm wondering what the sanctioned Vector with double precision elements are? There was the one in WPF, of course, but for a universal app we can't use that. There is Point, but it doesn't provide much of the necessary math. Are people just rolling their own when they need it? +5223 area-System.Drawing Add System.Drawing.Primitives contract to .NET Core. +5228 area-System.IO Add tests for BufferedStream This PR has two commits: - The first commit adds tests for BufferedStream and consolidates some of the existing tests - The second commit modifies all System.IO tests to be in the System.IO.Tests namespace. It also simplifies all of the variable declarations. resolves #5086 @stephentoub +5230 area-Infrastructure VB projects cannot be built on non-Windows platforms "We only have one in the repo here, but I believe there is an issue in the x-plat version of MSBuild that is causing these to fail. I think the problem is that this Task (https://github.com/Microsoft/msbuild/blob/xplat/src/Utilities/ToolTask.cs) has a workaround to normalize all backslashes to forward-slashes, for file paths. Unfortunately it does that on the entire response file we generate to pass to vbc.exe. The define constants have quotation marks in them that need to be escaped, so we initially start with something like ``` -define: ""CONFIG=\""Debug\"" ``` which gets normalized to ``` -define: ""CONFIG=/""Debug/"" ``` which is no longer valid, and causes vbc.exe to error out. I've manually invoked vbc.exe with the same command line, but with the backslashes put back in, and it seems to work fine. @weshaggard " +5232 area-System.Net Merge changes from TFS +5233 area-Infrastructure NuGet packages cannot be built on Ubuntu (Probably other non-Windows platforms as well) There seems to be some path issue on Ubuntu when running the package build on Ubuntu. It seems like some paths are not being combined properly, or something of the sort. The inputs to the packaging task seem to be correct, though, so there may be an issue in the NuGet task itself. Here's a representative error: ``` /home/eric/projects/corefx/packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00144/lib/Packaging.targets : error : Error when creating nuget package from /home/eric/projects/corefx/bin/pkg/specs/System.Reflection.Metadata.nuspec. System.IO.DirectoryNotFoundException: Directory '/home/eric/projects/corefx/bin/pkg/specs/home/eric/projects/corefx/bin/AnyOS.AnyCPU.Debug/System.Reflection.Metadata' not found. [/home/eric/projects/corefx/src/System.Reflection.Metadata/pkg/System.Reflection.Metadata.pkgproj] ``` Notice the path: **/home/eric/projects/corefx/bin/pkg/specs/home/eric/projects/corefx/bin/AnyOS.AnyCPU.Debug/System.Reflection.Metadata** is malformed and includes the whole project directory prefix twice. [Full build output with stacktrace](https://gist.github.com/mellinoe/053405a1187abb91abf3) @ericstj , @weshaggard +5234 area-System.Net UDP tests fail with invalid checksum ``` System.Net.Sockets.Tests.SendReceive.SendToRecvFromAsync_Single_Datagram_UDP_IPv4 [FAIL] 11:27:58 Assert.Equal() Failure 11:27:58 Expected: 0 11:27:58 Actual: 1161193313 11:27:58 Stack Trace: 11:27:58 d:\j\workspace\dotnet_corefx\windows_nt_release_prtest\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs(121,0): at System.Net.Sockets.Tests.SendReceive.SendToRecvFromAsync_Datagram_UDP(IPAddress leftAddress, IPAddress rightAddress) ``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_release_prtest/682/console +5235 area-Infrastructure Build.sh runs tests that should not be supported Running build.sh on Ubuntu (for example) will run the Microsoft.Win32.Registry tests, as well as a bunch of other inapplicable test projects. It seems that only runtests.sh is actually detecting which projects should be skipped. +5236 area-Infrastructure GenFacades failure in CI due to file in use "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/689/consoleFull#-37241274779494335-f7bd-47d0-8771-8661e00c2db2 cc @mellinoe @weshaggard ``` 11:29:16 Unhandled Exception: System.IO.IOException: The process cannot access the file 'd:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\bin\obj\AnyOS.AnyCPU.Debug\System.Runtime\System.Runtime.dll' because it is being used by another process. 11:29:16 at System.IO.Win32FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs) 11:29:16 at System.IO.Win32FileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) 11:29:16 at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 11:29:16 at GenFacades.Program.OutputFacadeToFile(String facadePath, HostEnvironment seedHost, Assembly facade, IAssembly contract, String pdbLocation) 11:29:16 at GenFacades.Program.Main(String[] args) 11:29:16 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00144\lib\partialfacades.targets(101,5): error MSB3073: The command """"d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\bin/obj/AnyOS.AnyCPU.Debug\ToolRuntime\CoreRun.exe"" ""d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\packages/Microsoft.DotNet.BuildTools.1.0.25-prerelease-00144/lib/GenFacades.exe"" -partialFacadeAssemblyPath:""d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\bin/obj/AnyOS.AnyCPU.Debug\System.Runtime\PreGenFacades\System.Runtime.dll"" -contracts:""d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\bin\ref\System.Runtime\4.0.21.0\System.Runtime.dll"" -seeds:""d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\packages/Microsoft.TargetingPack.Private.CoreCLR\1.0.0-rc2-23520\ref\dnxcore50\mscorlib.dll;d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\bin\Windows_NT.AnyCPU.Debug\System.Private.Uri\System.Private.Uri.dll"" -facadePath:""d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\bin/obj/AnyOS.AnyCPU.Debug\System.Runtime"""" exited with code -532462766. [d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Runtime\src\System.Runtime.csproj] ``` " +5238 area-System.Net Significantly reduce release logging overhead in System.Net.Sockets Logging work that's happening in System.Net.Sockets in release builds and even when logging is disabled is resulting in significant impact on both memory allocated and on throughput. This set of commits adjusts how the logging is done so that work which happens at the call site only occurs if logging is enabled, if an assertion's condition fails, etc. This includes lots of string allocation, array allocation, array copies, hashing, etc. @pgavlin shared with me a simple set of tests that just have a client connect up to a server and receive a bunch of data. Prior to these changes, running this test with 4096 clients receiving 128 bytes each, the test client allocated ~45MB. After these changes, the client allocated only ~15MB. Throughput on the client also improved by ~20% on my machine. (This is on Windows with a release build of System.Net.Sockets.dll and with logging disabled.) cc: @pgavlin, @CIPop, @davidsh, @ericeil, @josguil Example before: ![image](https://cloud.githubusercontent.com/assets/2642209/12184632/620b0a1e-b564-11e5-9d48-b45e9884809b.png) Example after: ![image](https://cloud.githubusercontent.com/assets/2642209/12184576/0b3dce42-b564-11e5-9e3c-99871f89631c.png) +5241 area-System.Security WindowsIdentity ctor doesn't support WindowsAccountType and isAuthenticated The ctor was used by NegotiateStream to create an authenticated WindowsIdentity (in NegoState.Windows.cs:333). The lack of the ctor causes a difference in the behavior of NegotiateStream on .Net Desktop vs CoreFX. +5244 area-System.Linq Should Expression.TypeIs allow void as a type argument? "Currently any expression will compare with `void` with `TypeIs` as `false`: ``` C# Expression.Lambda>( Expression.TypeIs(Expression.Empty(), typeof(void)) ).Compile()() // false ``` This is at odds with `TypeEqual`: ``` C# Expression.Lambda>( Expression.TypeEqual(Expression.Empty(), typeof(void)) ).Compile()() // true ``` The decision happens at `AnalyzeTypeIs()` which is commented as saying: ``` C# // Oddly, we allow void operands // This is LinqV1 behavior of TypeIs ``` Arguably, its not that odd to allow void operands, considering that expressions of void type are allowed, or more reasonaly that dynamic use could mean passing something an expression of type `void` one time and a different type another. This also makes it a logical exception to the comment saying the result should match the result of `isinst` since there's no way to pass a void expression's value to in CIL (obviously enough as it doesn't have one). The differences between expression trees and CIL (and C#, VB.NET, etc.) are such that what is meaningless in CIL is meaningful, though constant, in trees. As such it seems to me that the value of `Expression.TypeIs(Expression.Empty(), typeof(void))` should be true, rather than false. In the other direction, we allow `Expression.TypeIs(Expression.Constant(""hello""), typeof(void))` but: ``` C# Expression.Lambda>(Expression.TypeIs(Expression.Constant(""hello""), typeof(void))).Compile()() ``` Throws `InvalidProgramException`. By the same reasoning as above it would make sense for this to return false. This would also make it match `IsInstanceOf()` (but not `isinst` but again that isn't as meaningful in CIL as it is in trees). " +5246 area-System.Net SendReceive.SendRecvAsync_TcpListener_TcpClient_IPv4 failed in CI on CentOS http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/centos7.1_debug_tst_prtest/608/console ``` 05:24:14 System.Net.Sockets.Tests.SendReceive.SendRecvAsync_TcpListener_TcpClient_IPv4 [FAIL] 05:24:14 Assert.True() Failure 05:24:14 Expected: True 05:24:14 Actual: False 05:24:14 Stack Trace: 05:24:14 at System.Net.Sockets.Tests.SendReceive.SendRecvAsync_TcpListener_TcpClient(IPAddress listenAt) 05:24:14 at System.Net.Sockets.Tests.SendReceive.SendRecvAsync_TcpListener_TcpClient_IPv4() 05:24:15 05:24:15 Unhandled Exception: Xunit.Sdk.TrueException: Assert.True() Failure 05:24:15 Expected: True 05:24:15 Actual: False 05:24:15 at Xunit.Assert.True(Nullable`1 condition, String userMessage) 05:24:15 at System.Net.Sockets.Tests.SendReceive.<>c__DisplayClass2_0.b__1(Int32 sent) 05:24:15 at System.Net.Sockets.Tests.SocketAsyncExtensions.<>c__DisplayClass7_0.b__0(Object _, SocketAsyncEventArgs args) 05:24:15 at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e) 05:24:15 at System.Net.Sockets.SocketAsyncEventArgs.ExecutionCallback(Object ignored) 05:24:15 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 05:24:15 at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSuccess(SocketError socketError, Int32 bytesTransferred, SocketFlags flags) 05:24:15 at System.Net.Sockets.SocketAsyncEventArgs.CompletionCallback(Int32 bytesTransferred, SocketError socketError) 05:24:15 at System.Net.Sockets.SocketAsyncEventArgs.TransferCompletionCallback(Int32 bytesTransferred, Byte[] socketAddress, Int32 socketAddressSize, SocketFlags receivedFlags, SocketError socketError) 05:24:15 at System.Net.Sockets.SocketAsyncContext.<>c.b__48_0(Object args) 05:24:15 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 05:24:15 at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 05:24:15 at System.Threading.ThreadPoolWorkQueue.Dispatch() ``` cc: @pgavlin, @ericeil, @cipop +5247 area-System.Linq Expression.TypeEquals throws on void-typed operand in Interpreter These work fine with the compiler: ``` C# Expression.Lambda>( Expression.TypeEqual(Expression.Empty(), typeof(void)) ).Compile(false)(); // true Expression.Lambda>( Expression.TypeEqual(Expression.Empty(), typeof(int)) ).Compile(false)(); // false ``` These throw `IndexOutOfRangeException` (or hit an assert in debug): ``` C# Expression.Lambda>( Expression.TypeEqual(Expression.Empty(), typeof(void)) ).Compile(true)(); Expression.Lambda>( Expression.TypeEqual(Expression.Empty(), typeof(int)) ).Compile(true)(); ``` CC: @bartdesmet @VSadov +5248 area-System.IO Cross-platform way of getting HOME directory Right now there doesn't seem to be any simple cross-platform way of getting the current home directory. This would seem to be a common-enough need, especially as .NET Core begins to be used outside of web apps. One complication as to why this is non-trivial is that the environment variable to this location is different on different OS's. Developers should not need to be aware of this just to get a home directory. It seems like there is some code to do this internally and it's even more complicated than I initially thought: https://github.com/dotnet/corefx/blob/d8508b20caa5fe523f1552cde174cb9ba5c31730/src/Common/src/System/IO/PersistedFiles.Unix.cs#L100 I wouldn't expect anyone to get that right if they had to do that on their own. I don't have any specific proposals but something might fit into the Environment class to return that. +5250 area-System.Net Guard logging usage behind IsEnabled checks in the rest of System.Net.* Same treatment as in #5238, but for the rest of System.Net. I may have missed a call site here or there, but those can be fixed as one-offs. Contributes to #5144 cc: @ericeil, @pgavlin, @davidsh, @cipop, @josguil +5251 area-System.Net Unix SslStream may be reporting ECDH exchanges as ECDSA There may be no bug here. I merely saw some code that confused me while fixing another issue, and feel that it warrants investigation. If it's correct, it probably warrants a comment :smile:. https://github.com/dotnet/corefx/blob/71544a4ea55406740b1d3a00667b3ef0b816c9a2/src/Native/System.Security.Cryptography.Native/pal_ssl.cpp#L426-L433 ``` c++ case SSL_KeyExchangeAlgorithm::SSL_kECDHr: return ExchangeAlgorithmType::SSL_ECDH; case SSL_KeyExchangeAlgorithm::SSL_kECDHe: return ExchangeAlgorithmType::SSL_ECDSA; case SSL_KeyExchangeAlgorithm::SSL_kEECDH: return ExchangeAlgorithmType::SSL_ECDSA; ``` Note that ECDHr says ECDH, while ECDHe and EECDH say ECDSA. Based on comparison against what might be a trace helper in OpenSsl (https://github.com/openssl/openssl/blob/bc71f91064a3eec10310fa4cc14fe2a3fd9bc7bb/ssl/t1_trce.c#L909) I can understand why ECDHe and EECDH say ECDSA, but then I'd expect ECDHr to say RSA. Really these need to be validated against what we say in Windows for the same session types. +5252 area-System.Data SQL Client: Unable to load sni.dll (DllNotFoundException) Several customers have reported errors loading sni.dll. This is not the same as https://github.com/dotnet/corefx/issues/3760 because installing the Microsoft Visual C++ 2012 Redistributable does not resolve the issue. Examples of the customer reports are on https://github.com/aspnet/EntityFramework/issues/4162. Many of those are seeing the error when using EF7 but have confirmed that the error reproduces when using SQL Client directly. Several people have reported that the error occurs under the following environment > coreclr-x64-rc1-update1 with IIS 7.5 on Windows Server 2008 R2 with C++ redistributable installed (x64 & x86). Full details of the exception... ``` The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception.Exception caught: The type initializer for 'System.Data.SqlClient.SNILoadHandle' threw an exception.Exception caught: Unable to load DLL 'C:\Users\ddragan\.dnx\packages\runtime.win7-x64.System.Data.SqlClient.sni\4.0.0-beta-23616\runtimes\win7-x64\native\sni.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)Exception thrown: 'System.TypeInitializationException' in Platform.Authentication Exception thrown: 'System.TypeInitializationException' in mscorlib.ni.dll Microsoft.AspNet.Diagnostics.ExceptionHandlerMiddleware:Error: An unhandled exception has occurred: The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception. System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.SNILoadHandle' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'C:\Users\ddragan\.dnx\packages\runtime.win7-x64.System.Data.SqlClient.sni\4.0.0-beta-23616\runtimes\win7-x64\native\sni.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at System.Runtime.Loader.AssemblyLoadContext.InternalLoadUnmanagedDllFromPath(String unmanagedDllPath) at Microsoft.Dnx.Runtime.Loader.PackageAssemblyLoader.LoadUnmanagedLibrary(String name) at Microsoft.Dnx.Host.LoaderContainer.LoadUnmanagedLibrary(String name) at Microsoft.Dnx.Runtime.Loader.LoadContext.LoadUnmanagedDll(String unmanagedDllName) at System.Runtime.Loader.AssemblyLoadContext.ResolveUnmanagedDll(String unmanagedDllName, IntPtr gchManagedAssemblyLoadContext) at System.Data.SqlClient.SNINativeMethodWrapper.SNIInitialize(IntPtr pmo) at System.Data.SqlClient.SNILoadHandle..ctor() at System.Data.SqlClient.SNILoadHandle..cctor() --- End of inner exception stack trace --- at System.Data.SqlClient.TdsParser..cctor() --- End of inner exception stack trace --- at ExternalDataAccessor.GetFirm(String firmName) ``` +5253 area-System.Net Unix SslStream: SSL_KeyExchangeAlgorithm values may no longer match OpenSSL "While looking into the background for #5251 I ran across a commit in OpenSSL that looks like it'll break assumptions made in `pal_ssl.cpp`. Namely https://github.com/openssl/openssl/commit/bc71f91064a3eec10310fa4cc14fe2a3fd9bc7bb: ``` diff /* tmp DH key no DH cert */ -# define SSL_kDHE 0x00000008U +# define SSL_kDHE 0x00000002U /* synonym */ # define SSL_kEDH SSL_kDHE /* ECDH cert, RSA CA cert */ -# define SSL_kECDHr 0x00000020U +# define SSL_kECDHr 0x00000004U /* ECDH cert, ECDSA CA cert */ -# define SSL_kECDHe 0x00000040U +# define SSL_kECDHe 0x00000008U /* ephemeral ECDH */ -# define SSL_kECDHE 0x00000080U +# define SSL_kECDHE 0x00000010U /* synonym */ # define SSL_kEECDH SSL_kECDHE ``` These values come from a non-public header (ssl_locl.h). We very likely need a new mechanism for determining these values. The most public way that I see is to use the `SSL_CIPHER->name` value, and compare it against the public identifiers (e.g. `SSL_TXT_kECDHr`); but that's not from in-depth investigation. ``` jbarton@jsb-ubuntu2:/usr/include/openssl$ grep -i ecdhr * ssl.h:#define SSL_TXT_kECDHr ""kECDHr"" jbarton@jsb-ubuntu2:/usr/include/openssl$ ``` " +5255 area-System.Drawing Implement IEquatable interface on System.Drawing structs This requires changes to the .NET Full Framework code as well, changes to .NET Core to be made after following up with the desktop release cycles to ensure no breaks happen. Follow up from PR #1563 # Motivation These structures all have equality operators, they should also implement the IEquatable interface. # Proposed API ``` C# namespace System.Drawing { public struct Color : IEquatable { public bool Equals(Color other); } public struct Point : IEquatable { public bool Equals(Point other); } public struct PointF : IEquatable { public bool Equals(PointF other); } public struct Rectangle : IEquatable { public bool Equals(Rectangle other); } public struct RectangleF : IEquatable { public bool Equals(RectangleF other); } public struct Size : IEquatable { public bool Equals(Size other); } public struct SizeF : IEquatable { public bool Equals(SizeF other); } } ``` +5256 area-System.Drawing Write alternate implementations for GetHashCode System.Drawing float types. PR: #5223, [comment](https://github.com/dotnet/corefx/pull/5223#discussion_r49156587) This also requires changes to .NET Full Framework desktop code. +5258 area-System.Net SendToRecvFromAsync_Single_Datagram_UDP_IPv4 failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_release_prtest/731/ ``` 13:26:44 System.Net.Sockets.Tests.SendReceive.SendToRecvFromAsync_Single_Datagram_UDP_IPv4 [FAIL] 13:26:44 Assert.Equal() Failure 13:26:44 Expected: 0 13:26:44 Actual: 2413092642 13:26:44 Stack Trace: 13:26:44 d:\j\workspace\dotnet_corefx\windows_nt_release_prtest\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs(121,0): at System.Net.Sockets.Tests.SendReceive.SendToRecvFromAsync_Datagram_UDP(IPAddress leftAddress, IPAddress rightAddress) ``` +5260 area-Infrastructure Find a way to Mock function calls for Unit Testing Some functions have branches that are dependent on conditions that cannot be hit during normal Unit Test conditions, such as relying on System.Diagnostics.Debugger.IsAttached. Being able to mock function calls / return values would benefit the testing framework +5262 area-System.IO System.IO.Compression: Modify path validation to be based on ZipArchive source OS This commit resolves #4991 by adding explicit path validation based on the OS that a ZipArchive was written on instead of just using CheckInvalidPathChars for all cases. This PR will fail until a new corefx-testdata package is published that contains the test assets for the new tests added. @stephentoub +5265 area-System.Net System.Net GlobalLog.Assert* must call Debug.Assert even if nothing is listening for the ETW events The original GlobalLog code was calling `Debug.Assert`: http://referencesource.microsoft.com/#System/net/System/Net/_LoggingObject.cs,978 We need to fix the `GlobalLog.Assert*` as well as ensuring that the Assert is not conditioned by `GlobalLog.IsEnabled` when being called. +5266 area-System.Net System.Net.Http.HttpRequestException does not have a deserialization constructor Nor it is marked with `Serializable` attribute. Is it by design? It seems that full .NET Framework has this type marked with `ISerializable` but a deserialization constructor is also missing there. +5267 area-System.Globalization EnUsPosixIsNotATurkishCasingLocale running on Windows sometimes EnUsPosixIsNotATurkishCasingLocale is marked with [PlatformSpecific(PlatformID.AnyUnix)] but as of #5242 seems to be getting picked up on Windows as well. I have added some code to the test to workaround this issue, but we need to fix it for real. One problematic issue is that you may not see the test fail on Windows 10, since it allows more cultures that 8.1 +5272 area-System.Linq Expression.TypeEquals throws on Nullable parameter. ``` C# Expression value = Expression.Constant(DateTime.MaxValue, typeof(DateTime?)); var param = Expression.Parameter(value.Type); Func func = Expression.Lambda>( Expression.Block( new[] { param }, Expression.Assign(param, value), Expression.TypeEqual(param, typeof(object)) ) ).Compile(); ``` The above throws `InvalidOperationException` on the `Compile()` with both compilation options. This happens for any type for the `type` parameter except for the actual nullable type of the parameter which correctly returns `false` if the value of `value` is null and `true` otherwise. This includes the related non-nullable type (should return the same as with the nullable type). +5281 area-System.Net Native assert failed in NetworkInformation on Ubuntu in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/ubuntu_debug_tst/213/console ``` 00:04:32 corerun: /mnt/j/workspace/dotnet_corefx/nativecomp_ubuntu_debug/src/Native/System.Native/pal_networkchange.cpp:66: NetworkChangeKind SystemNative_ReadSingleEvent(int32_t): Assertion `(hdr->nlmsg_flags & 2) == 0' failed. ``` +5283 area-System.Net NegotiateStream tests: timeout http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/770/consoleFull ``` 05:38:51 System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Successive_ClientWrite_Sync_Success [FAIL] 05:38:51 Starting: System.ObjectModel.Tests 05:38:51 Handshake completed in the allotted time 05:38:51 Expected: True 05:38:51 Actual: False 05:38:51 Stack Trace: 05:38:51 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\tests\FunctionalTests\NegotiateStreamStreamToStreamTest.cs(207,0): at System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Successive_ClientWrite_Sync_Success() ``` +5284 area-System.Net NegotiateStream tests: Unable to read data from the transport connection: Queue empty http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/772/consoleFull ``` 06:00:09 System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Successive_ClientWrite_Async_Success [FAIL] 06:00:09 System.AggregateException : One or more errors occurred. 06:00:09 ---- System.IO.IOException : Unable to read data from the transport connection: Queue empty.. 06:00:09 -------- System.InvalidOperationException : Queue empty. 06:00:09 Stack Trace: 06:00:09 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) 06:00:09 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) 06:00:09 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\tests\FunctionalTests\NegotiateStreamStreamToStreamTest.cs(240,0): at System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Successive_ClientWrite_Async_Success() 06:00:09 ----- Inner Stack Trace ----- 06:00:09 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\src\System\Net\SecureProtocols\NegoState.Windows.cs(447,0): at System.Net.Security.NegoState.EndProcessAuthentication(IAsyncResult result) 06:00:09 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\src\System\Net\SecureProtocols\NegotiateStream.cs(114,0): at System.Net.Security.NegotiateStream.EndAuthenticateAsClient(IAsyncResult asyncResult) 06:00:09 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 06:00:09 ----- Inner Stack Trace ----- 06:00:09 at System.Collections.Generic.Queue`1.Dequeue() 06:00:09 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\tests\FunctionalTests\MockNetwork.cs(34,0): at System.Net.Security.Tests.MockNetwork.ReadFrame(Boolean server, Byte[]& buffer) 06:00:09 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\tests\FunctionalTests\FakeNetworkStream.cs(102,0): at System.Net.Security.Tests.FakeNetworkStream.UpdateReadStream() 06:00:09 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\tests\FunctionalTests\FakeNetworkStream.cs(82,0): at System.Net.Security.Tests.FakeNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) 06:00:09 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\Common\src\System\IO\StreamAsyncHelper.cs(74,0): at System.IO.StreamAsyncHelper.<>c.b__7_0(Object obj) 06:00:09 at System.Threading.Tasks.Task`1.InnerInvoke() 06:00:09 System.Numerics.Vectors.Tests -> d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\bin\Windows_NT.AnyCPU.Debug\System.Numerics.Vectors.Tests\System.Numerics.Vectors.Tests.dll 06:00:09 at System.Threading.Tasks.Task.Execute() 06:00:09 --- End of stack trace from previous location where exception was thrown --- 06:00:09 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 06:00:09 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 06:00:09 at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 06:00:09 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\Common\src\System\IO\StreamAsyncHelper.cs(133,0): at System.IO.StreamAsyncHelper.EndRead(IAsyncResult asyncResult) 06:00:09 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\src\System\Net\StreamFramer.cs(205,0): at System.Net.StreamFramer.ReadFrameComplete(IAsyncResult transportResult) 06:00:09 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\src\System\Net\StreamFramer.cs(169,0): at System.Net.StreamFramer.ReadFrameCallback(IAsyncResult transportResult) ``` +5285 area-System.Net Mop up more System.Net logging guards Some more GlobalLog.IsEnabled guards. I noticed a few while doing some other profiling, and so did another set of searches across the whole codebase. Many of these came from the System.Net.Security PRs that were in-progress at the same time I was doing the previous logging changes. cc: @davidsh, @cipop, @ericeil, @pgavlin, @josguil (@cipop, there's no rush on merging this... if it's going to cause conflicts elsewhere, we can delay merging this until those other PRs are in and then I can handle fixing up any conflicts... just let me know.) +5286 area-System.Reflection Method exposing the Initblk opcode Hello! I'm looking at some optimizations in some unsafe code and i ran into an opcode called Initblk, http://stackoverflow.com/questions/1897555/what-is-the-equivalent-of-memset-in-c#_=_ and https://msdn.microsoft.com/en-us/library/system.reflection.emit.opcodes.initblk(v=vs.110).aspx Is this now exposed somewhere in the core fx? if not, i'd love to help add it but i'm not sure what the best way to do it would be. The folks in the SO thread does it via emitting but i would be great to have built in, especially for --native down the line. Any thoughts on this are welcome! +5291 area-System.Net ConnectAsyncV6IPEndPointToV6Host_Success failed in CI on Ubuntu http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/ubuntu_release_tst_prtest/655/console ``` 13:35:12 System.Net.Sockets.Tests.DualMode.ConnectAsyncV6IPEndPointToV6Host_Success [FAIL] 13:35:12 System.Net.Sockets.SocketException : Unknown error 10054 13:35:12 Stack Trace: 13:35:13 at System.Net.Sockets.Tests.DualMode.DualModeConnectAsync_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer) ``` Likely the same cause as: https://github.com/dotnet/corefx/issues/3748 https://github.com/dotnet/corefx/issues/3744 https://github.com/dotnet/corefx/issues/3682 https://github.com/dotnet/corefx/issues/3494 +5293 area-System.Collections Incorrect ArgumentNullException In List.ForEach "It looks like the `ArgumentNullException` in [System.Collections.Generic.List](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/List.cs#L603) is passing in ""match"" as the null param instead of ""action"". " +5296 area-System.Data Use the Azure Sql database benchmark infrastructure to stress test System.Data "While System.Net.Sockets provides the same ""completion port"" interface for both Windows and Linux The underlying implementation for Linux is radically different and is implemented using an epoll event loop. This is important to keep in mind since SqlClient or any other DB driver are the most important consumers of this Api. I suggest using Azure Sql database benchmark infrastructure to do the stress test, preferably inside azure first, so timeout handling behavior can be observed. https://azure.microsoft.com/en-us/documentation/articles/sql-database-benchmark-overview/#schema " +5297 area-System.Net CertificateValidationRemoteServer_EndToEnd_Ok failed in CI on Windows A bunch of occurrences of this over the past day: ``` 04:09:01 System.Net.Security.Tests.CertificateValidationRemoteServer.CertificateValidationRemoteServer_EndToEnd_Ok [FAIL] 04:09:01 System.Net.Internals.InternalSocketException : No such host is known 04:09:01 Stack Trace: 04:09:01 at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) 04:09:01 at System.Net.Sockets.TcpClient.EndConnect(IAsyncResult asyncResult) 04:09:01 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 04:09:01 --- End of stack trace from previous location where exception was thrown --- 04:09:01 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 04:09:01 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 04:09:01 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 04:09:01 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\tests\FunctionalTests\CertificateValidationRemoteServer.cs(19,0): at System.Net.Security.Tests.CertificateValidationRemoteServer.d__0.MoveNext() 04:09:01 --- End of stack trace from previous location where exception was thrown --- 04:09:01 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 04:09:01 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 04:09:01 --- End of stack trace from previous location where exception was thrown --- 04:09:01 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 04:09:01 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 04:09:01 --- End of stack trace from previous location where exception was thrown --- 04:09:01 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 04:09:01 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/791/consoleFull http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/787/consoleFull http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_release_prtest/790/consoleFull +5302 area-System.Net Fix URL used in System.Net.Security tests An incorrect URL was causing the CertificateValidationRemoteServer_EndToEnd_Ok test to fail. Fixes #5297 cc: @cipop, @davidsh, @ericeil, @weshaggard +5304 area-System.Net Switch System.Net.Security test to use shared HttpTestServers cc: @davidsh +5306 area-System.IO FileSystemWatcher_Moved_NestedDirectoryRootWithoutSubdirectoriesFlag failed with UnauthorizedAccessException on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_release/222/consoleFull ``` 08:50:59 RenamedTests.FileSystemWatcher_Moved_NestedDirectoryRootWithoutSubdirectoriesFlag [FAIL] 08:50:59 System.UnauthorizedAccessException : Access to the path '\\?\d:\j\workspace\dotnet_corefx\windows_nt_release\bin\tests\Windows_NT.AnyCPU.Release\System.IO.FileSystem.Watcher.Tests\dnxcore50\FileSystemWatcher_Moved_NestedDirectoryRootWithoutSubdirectoriesFlag\test_root' is denied. 08:50:59 Stack Trace: 08:51:00 d:\j\workspace\dotnet_corefx\windows_nt_release\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs(627,0): at System.IO.Win32FileSystem.RemoveDirectoryHelper(String fullPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound) 08:51:00 d:\j\workspace\dotnet_corefx\windows_nt_release\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs(493,0): at System.IO.Win32FileSystem.RemoveDirectory(String fullPath, Boolean recursive) 08:51:00 d:\j\workspace\dotnet_corefx\windows_nt_release\src\System.IO.FileSystem.Watcher\tests\Utility\TemporaryTestDirectory.cs(32,0): at TemporaryTestDirectory.Dispose() 08:51:00 d:\j\workspace\dotnet_corefx\windows_nt_release\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.Renamed.cs(166,0): at RenamedTests.FileSystemWatcher_Moved_NestedDirectoryRootWithoutSubdirectoriesFlag() ``` +5311 area-Infrastructure Build.cmd: Add arg to enable/disable native Windows build "Currently the native Windows build will run whenever build.cmd is called. We should add an arg check to enable/disable it like in build.sh where ""build.sh native"" builds native code only, ""build.sh managed"" builds managed code only, and ""build.sh"" builds both. " +5312 area-System.Collections Cleanup and complete System.Collections.NonGeneric tests Completely revamped the System.Collections.NonGeneric test project - Rewrote every single test in the project - Converted tests to modern xunit testing - Split individual tests into multiple tests - Deobfuscate loads of tests - Remove unnecessary (already covered) tests - Test uncovered areas of the library - Removed dead code from the library itself +5314 area-System.Security Add ExportParameters/ImportParameters to ECDsa We have ExportParameters/ImportParameters for RSA (and DSA on Desktop), but don't have them for the EC types (ECDsa, ECDiffieHellman). While RSA and DSA parameters are always fixed (modulo the public/private distinction) ECParameters are polymorphic in the spec. Snippets from [SEC-1 v2 (2009)](http://www.secg.org/sec1-v2.pdf): ``` asn ECDomainParameters{ECDOMAIN:IOSet} ::= CHOICE { specified SpecifiedECDomain, named ECDOMAIN.&id({IOSet}), implicitCA NULL } SpecifiedECDomain ::= SEQUENCE { version SpecifiedECDomainVersion(ecdpVer1 | ecdpVer2 | ecdpVer3, ...), fieldID FieldID {{FieldTypes}}, curve Curve, base ECPoint, order INTEGER, cofactor INTEGER OPTIONAL, hash HashAlgorithm OPTIONAL, ... } FieldID { FIELD-ID:IOSet } ::= SEQUENCE { -- Finite field fieldType FIELD-ID.&id({IOSet}), parameters FIELD-ID.&Type({IOSet}{@fieldType}) } FieldTypes FIELD-ID ::= { { Prime-p IDENTIFIED BY prime-field } | { Characteristic-two IDENTIFIED BY characteristic-two-field } } BasisTypes CHARACTERISTIC-TWO ::= { { NULL IDENTIFIED BY gnBasis } | { Trinomial IDENTIFIED BY tpBasis } | { Pentanomial IDENTIFIED BY ppBasis }, ... } ``` This is probably something like ``` C# public abstract class ECParameters { public byte[] Qx { get; set; } public byte[] Qy { get; set; } public byte[] D { get; set; } } public class NamedCurveECParameters : ECParameters { public Oid CurveId { get; set; } } public abstract class ExplicitECParameters : ECParameters { public byte[] Order { get; set; } public byte[] Cofactor { get; set; } } ... ``` Do we want any of them to be BigInteger instead of byte[]? Etc. Should we have an API that accepts a NamedCurve and returns it as an explicit one? Or should that be a tuning parameter on Export? Do we need public API to describe the limitations of an implementation? (Windows doesn't do Char-2 curves, etc). Do we want to allow an explicit curve to be mapped back to a named one? Lots of questions to be answered :smile:. +5315 area-Meta Rename constant NET_NATIVE to netcore50 This is a tracking issue to rename this constant to follow our naming conventions. +5320 area-Infrastructure Corefxlab nuget package version scheme is broken "Currently, we use .dMMDDYY-N versioning scheme for packages. This does not work as nuget (and VS) use linguistic sort order of the "".d..."" part to determine which version order and so: .d010116 is considered to be older than .d123015 " +5322 area-System.Net Add net46 and netcore50 configurations for System.Net.NetworkInformation All of the source code is already here, just adding the project configurations and appropriate project.json entries. @davidsh , @CIPop , @weshaggard +5325 area-System.Threading AsyncInfoToTaskBridge may leak when in debug mode. In debug mode, AsyncInfoToTaskBridge is adding tasks to the Active Task list on it's constructor. However it is never removing them due to some line missing when ported from previous implementation. The solution would be to remove the task from the Active tasks list when completing. https://github.com/dotnet/corefx/blob/cf17ff1d110b9984e63a1825b3d012c8002a8a3b/src/System.Runtime.WindowsRuntime/src/System/Threading/Tasks/AsyncInfoToTaskBridge.cs#L128 I'm submitting the P.R. after creating the issue. +5326 area-System.Net NegotiateStream_StreamToStream_Authentication_Success failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_release_prtest/854/consoleFull ``` 19:42:31 System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Authentication_Success [FAIL] 19:42:31 System.AggregateException : One or more errors occurred. 19:42:31 ---- System.IO.IOException : Unable to read data from the transport connection: Queue empty.. 19:42:31 -------- System.InvalidOperationException : Queue empty. 19:42:31 Stack Trace: 19:42:31 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) 19:42:31 d:\j\workspace\dotnet_corefx\windows_nt_release_prtest\src\System.Net.Security\tests\FunctionalTests\NegotiateStreamStreamToStreamTest.cs(36,0): at System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Authentication_Success() 19:42:31 ----- Inner Stack Trace ----- 19:42:31 d:\j\workspace\dotnet_corefx\windows_nt_release_prtest\src\System.Net.Security\src\System\Net\SecureProtocols\NegoState.Windows.cs(445,0): at System.Net.Security.NegoState.EndProcessAuthentication(IAsyncResult result) 19:42:31 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 19:42:31 ----- Inner Stack Trace ----- 19:42:31 at System.Collections.Generic.Queue`1.Dequeue() 19:42:31 d:\j\workspace\dotnet_corefx\windows_nt_release_prtest\src\System.Net.Security\tests\FunctionalTests\MockNetwork.cs(34,0): at System.Net.Security.Tests.MockNetwork.ReadFrame(Boolean server, Byte[]& buffer) 19:42:31 d:\j\workspace\dotnet_corefx\windows_nt_release_prtest\src\System.Net.Security\tests\FunctionalTests\FakeNetworkStream.cs(103,0): at System.Net.Security.Tests.FakeNetworkStream.UpdateReadStream() 19:42:31 d:\j\workspace\dotnet_corefx\windows_nt_release_prtest\src\System.Net.Security\tests\FunctionalTests\FakeNetworkStream.cs(83,0): at System.Net.Security.Tests.FakeNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) 19:42:31 at System.Threading.Tasks.Task`1.InnerInvoke() 19:42:31 at System.Threading.Tasks.Task.Execute() 19:42:31 --- End of stack trace from previous location where exception was thrown --- 19:42:31 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 19:42:31 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 19:42:31 d:\j\workspace\dotnet_corefx\windows_nt_release_prtest\src\Common\src\System\IO\StreamAsyncHelper.cs(105,0): at System.IO.StreamAsyncHelper.EndRead(IAsyncResult asyncResult) 19:42:31 d:\j\workspace\dotnet_corefx\windows_nt_release_prtest\src\System.Net.Security\src\System\Net\StreamFramer.cs(205,0): at System.Net.StreamFramer.ReadFrameComplete(IAsyncResult transportResult) 19:42:31 d:\j\workspace\dotnet_corefx\windows_nt_release_prtest\src\System.Net.Security\src\System\Net\StreamFramer.cs(169,0): at System.Net.StreamFramer.ReadFrameCallback(IAsyncResult transportResult) ``` +5330 area-System.Threading Missing System.Threading.ExecutionContext.IsFlowSuppressed() Hello, I am currently looking at porting a library to .NET Core and I have noticed there is no ExecutionContext.IsFlowSuppressed() method. Are there are any plans to implement this on .NET Core or are there any alternatives? +5331 area-Infrastructure CI broken? The web-view at dotnet-ci.cloudapp.net is unreachable, and the trigger phrases don't seem to be triggering new builds. Is CI down? +5332 area-Infrastructure Building with MSBuild or Visual Studio on Windows failing "Multiple projects, attempt to run MSBuild receive: > d:\dotnet\corefxTemp\dir.props(67,3): error MSB4019: The imported project ""d:\dotnet\corefxTemp\Tools\Build.Common.prop s"" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk. [d:\d otnet\corefxTemp\src\System.Linq.Queryable\tests\System.Linq.Queryable.Tests.csproj] Attempt to build in Visual Studio receive: > The imported project ""D:\dotnet\corefx\packages\Microsoft.DotNet.BuildTools.1.0.25-prerelease-00144\lib\Build.Common.targets"" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk. The problem seems to have been introduced with 3cbbca94331bd78f881903a2fd21edf2ebea4e31, particularly https://github.com/dotnet/corefx/commit/3cbbca94331bd78f881903a2fd21edf2ebea4e31#diff-0b192804a6349e8c26d2b027afbd89a2L52 " +5334 area-Infrastructure 6 warnings during clean build ``` C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [corefx\src\System.Net.Sockets.Legacy\tests\FunctionalTests\System.Net.Sockets.APMServer.Tests.csproj] C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [corefx\src\System.Net.Sockets.Legacy\tests\FunctionalTests\System.Net.Sockets.AsyncServer.Tests.csproj] C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [corefx\src\System.Net.Sockets.Legacy\tests\PerformanceTests\System.Net.Sockets.APM.Performance.Tests.csproj] C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [corefx\src\System.Net.Sockets\tests\FunctionalTests\System.Net.Sockets.Tests.csproj] C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [corefx\src\System.Net.Sockets\tests\PerformanceTests\System.Net.Sockets.Async.Performance.Tests.csproj] C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [corefx\src\System.Runtime.InteropServices.RuntimeInformation\tests\System.Runtime.InteropServices.RuntimeInformation.Tests.csproj] ``` +5335 area-Infrastructure Build fails with mulitple errors on Windows 10 (Jan-12) build /t:rebuild /property:Configuration=Debug /p:SkipTests=true System.Globalization -> C:\clrjunkie\corefx\bin\ref\System.Globalization\4.0.11.0\System.Globalization.dll C:\clrjunkie\corefx\src\Common\src\System\StringNormalizationExtensions.cs(17,20): error CS1501: No overload for method 'IsNormalized' takes 2 arguments [C:\clrjunkie\corefx\src\System.Globalization.Extensions\src\System.Globalization.Ext ensions.csproj] C:\clrjunkie\corefx\src\Common\src\System\StringNormalizationExtensions.cs(23,20): error CS1501: No overload for method 'Normalize' takes 2 arguments [C:\clrjunkie\corefx\src\System.Globalization.Extensions\src\System.Globalization.Extens ions.csproj] C:\clrjunkie\corefx\src\Common\src\System\IO\PathInternal.cs(24,30): error CS0117: 'PathInternal' does not contain a de finition for 'HasIllegalCharacters' [C:\clrjunkie\corefx\src\System.IO.Compression\src\System.IO.Compression.csproj] System\IO\Compression\ZipArchiveEntry.cs(115,38): error CS0103: The name 'CurrentZipPlatform' does not exist in the cur rent context [C:\clrjunkie\corefx\src\System.IO.Compression\src\System.IO.Compression.csproj] System\IO\Compression\ZipArchiveEntry.cs(256,24): error CS0103: The name 'ParseFileName' does not exist in the current context [C:\clrjunkie\corefx\src\System.IO.Compression\src\System.IO.Compression.csproj] System\IO\Compression\ZipArchiveEntry.cs(571,32): error CS0103: The name 'CurrentZipPlatform' does not exist in the cur rent context [C:\clrjunkie\corefx\src\System.IO.Compression\src\System.IO.Compression.csproj] C:\clrjunkie\corefx\src\Common\src\System\Diagnostics\Debug.cs(45,17): error CS0103: The name 's_logger' does not exist in the current context [C:\clrjunkie\corefx\src\System.Diagnostics.Debug\src\System.Diagnostics.Debug.csproj] C:\clrjunkie\corefx\src\Common\src\System\Diagnostics\Debug.cs(86,13): error CS0103: The name 's_logger' does not exist in the current context [C:\clrjunkie\corefx\src\System.Diagnostics.Debug\src\System.Diagnostics.Debug.csproj] C:\clrjunkie\corefx\Tools\Packaging.targets(460,5): error : File C:\clrjunkie\corefx\bin\Windows_NT.AnyCPU.Debug\System .Security.Cryptography.Algorithms\net46\System.Security.Cryptography.Algorithms.dll does not exist, ensure you have bui lt libraries before building the package. [C:\clrjunkie\corefx\src\System.Security.Cryptography.Algorithms\pkg\System.S ecurity.Cryptography.Algorithms.pkgproj] C:\clrjunkie\corefx\Tools\Packaging.targets(460,5): error : File C:\clrjunkie\corefx\bin\Windows_NT.AnyCPU.Debug\System .Security.Cryptography.Algorithms\net46\System.Security.Cryptography.Algorithms.dll does not exist, ensure you have bui lt libraries before building the package. [C:\clrjunkie\corefx\src\System.Security.Cryptography.Algorithms\pkg\System.S ecurity.Cryptography.Algorithms.pkgproj] C:\clrjunkie\corefx\Tools\Packaging.targets(897,5): error : Error when creating nuget package from C:\clrjunkie\corefx\ bin\pkg\specs\System.Security.Cryptography.Algorithms.nuspec. System.IO.DirectoryNotFoundException: Could not find a pa rt of the path 'C:\clrjunkie\corefx\bin\Windows_NT.AnyCPU.Debug\System.Security.Cryptography.Algorithms\net46'.\r [C:\c lrjunkie\corefx\src\System.Security.Cryptography.Algorithms\pkg\System.Security.Cryptography.Algorithms.pkgproj] C:\clrjunkie\corefx\Tools\Packaging.targets(897,5): error : at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r [C:\clrjunkie\corefx\src\System.Security.Cryptography.Algorithms\pkg\System.Security.Cryptography.Algo rithms.pkgproj] C:\clrjunkie\corefx\Tools\Packaging.targets(897,5): error : at System.IO.FileSystemEnumerableIterator`1.CommonInit() \r [C:\clrjunkie\corefx\src\System.Security.Cryptography.Algorithms\pkg\System.Security.Cryptography.Algorithms.pkgproj ] C:\clrjunkie\corefx\Tools\Packaging.targets(897,5): error : at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, B oolean checkHost)\r [C:\clrjunkie\corefx\src\System.Security.Cryptography.Algorithms\pkg\System.Security.Cryptography.A lgorithms.pkgproj] C:\clrjunkie\corefx\Tools\Packaging.targets(897,5): error : at System.IO.Directory.GetFiles(String path, String sear chPattern, SearchOption searchOption)\r [C:\clrjunkie\corefx\src\System.Security.Cryptography.Algorithms\pkg\System.Sec urity.Cryptography.Algorithms.pkgproj] C:\clrjunkie\corefx\Tools\Packaging.targets(897,5): error : at NuGet.PathResolver.PerformWildcardSearchInternal(Stri ng basePath, String searchPath, Boolean includeEmptyDirectories, String& normalizedBasePath)\r [C:\clrjunkie\corefx\src \System.Security.Cryptography.Algorithms\pkg\System.Security.Cryptography.Algorithms.pkgproj] C:\clrjunkie\corefx\Tools\Packaging.targets(897,5): error : at NuGet.PathResolver.ResolveSearchPattern(String basePa th, String searchPath, String targetPath, Boolean includeEmptyDirectories)\r [C:\clrjunkie\corefx\src\System.Security.C ryptography.Algorithms\pkg\System.Security.Cryptography.Algorithms.pkgproj] C:\clrjunkie\corefx\Tools\Packaging.targets(897,5): error : at NuGet.PackageBuilder.AddFiles(String basePath, String source, String destination, String exclude)\r [C:\clrjunkie\corefx\src\System.Security.Cryptography.Algorithms\pkg\Sys tem.Security.Cryptography.Algorithms.pkgproj] C:\clrjunkie\corefx\Tools\Packaging.targets(897,5): error : at NuGet.PackageBuilder.PopulateFiles(String basePath, I Enumerable`1 files)\r [C:\clrjunkie\corefx\src\System.Security.Cryptography.Algorithms\pkg\System.Security.Cryptography .Algorithms.pkgproj] C:\clrjunkie\corefx\Tools\Packaging.targets(897,5): error : at NuGet.PackageBuilder.ReadManifest(Stream stream, Stri ng basePath, IPropertyProvider propertyProvider)\r [C:\clrjunkie\corefx\src\System.Security.Cryptography.Algorithms\pkg \System.Security.Cryptography.Algorithms.pkgproj] C:\clrjunkie\corefx\Tools\Packaging.targets(897,5): error : at NuGet.PackageBuilder..ctor(String path, String basePa th, IPropertyProvider propertyProvider, Boolean includeEmptyDirectories)\r [C:\clrjunkie\corefx\src\System.Security.Cry ptography.Algorithms\pkg\System.Security.Cryptography.Algorithms.pkgproj] C:\clrjunkie\corefx\Tools\Packaging.targets(897,5): error : at Microsoft.DotNet.Build.Tasks.Packaging.NuGetPack.Exec ute() [C:\clrjunkie\corefx\src\System.Security.Cryptography.Algorithms\pkg\System.Security.Cryptography.Algorithms.pkgp roj] ``` 6 Warning(s) 11 Error(s) ``` Time Elapsed 00:33:47.81 Build Exit Code = 1 +5336 area-System.Net Move failing DNS test to OuterLoop For a long time now I've been unable to get a clean local build because of this test. On the networks I'm usually on, the DNS server serves up a descriptive page for an invalid address, which causes this test to fail, as the test is expecting an error. I'm moving the test to OuterLoop so that at least normal builds/test runs can pass on such networks. cc: @davidsh, @cipop +5337 area-System.ComponentModel TypeConverter lookup does uncached reflection on CoreCLR We're making fairly frequent use of `TypeConverter` in ASP.NET MVC. Traditionally, it's been a point of extensibility in our system for enabling serialization of your types to and from strings in query string and form data. We also rely on the built in converters for commonly used built-in types like `DateTime`. On CoreCLR the lookup of a `TypeConverter` is doing a bunch of attribute work up and down the inheritance hierarchy before falling back to a lookup table. On Desktop CLR this is cached in the common case. The performance effect on MVC of all of this attribute lookup is quite large. This is sampling data from an app doing model binding on 3 fields and then displaying them in an HTML form. Two of these fields use `TypeConverter` as shown here in the profile. Percentages here reflect % of CPU time inside of routing/MVC: ![image](https://cloud.githubusercontent.com/assets/1430011/12270760/8902d09c-b90c-11e5-84f3-749c02cc57a6.png) **Is this something we could work to address inside CoreFx?** **Or should we implement our own cache?** This is caching we've never had a need to do on Desktop. +5339 area-System.Console CancelKeyPress not firing on coreclr on ubuntu "Code: ``` using System; using System.IO; namespace HelloMvc { public class Program { public static void Main(string[] args) { System.Console.CancelKeyPress += (s,e) => System.Console.WriteLine(""BBB""); Console.ReadLine(); } } } ``` project.json: ``` { ""version"": ""1.0.1-*"", ""compilationOptions"": { ""emitEntryPoint"": true }, ""dependencies"" : { ""NETStandard.Library"": ""1.0.0-*"" }, ""frameworks"": { ""dnxcore50"": { } } } ``` Steps: 1. Compile 2. Run 3. Press Ctrl+C Coreclr output: ``` ``` Mono output: ``` BBB ``` Environment: ``` > uname -a Linux pkrymets 3.19.0-31-generic #36-Ubuntu SMP Wed Oct 7 15:04:02 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux > cat /usr/local/share/dotnet/cli/.version ecda2a810615dda9f280fd8a87d23be2e2fcae45 1.0.0-dev-1452359345 ``` Packages: ``` Package references: Microsoft.NETCore.Platforms 1.0.1-rc2-23712 Microsoft.NETCore.Runtime 1.0.1-rc2-23712 Microsoft.NETCore.Runtime.CoreCLR 1.0.1-rc2-23712 Microsoft.NETCore.Runtime.Native 1.0.1-rc2-23712 Microsoft.NETCore.Targets 1.0.1-rc2-23712 Microsoft.NETCore.Targets.DNXCore 5.0.0-rc2-23712 Microsoft.NETCore.Windows.ApiSets 1.0.1-rc2-23712 Microsoft.Win32.Primitives 4.0.1-rc2-23712 * NETStandard.Library 1.0.0-rc2-23712 NETStandard.Platform 1.0.0-rc2-23712 System.AppContext 4.0.1-rc2-23712 System.Collections 4.0.11-rc2-23712 System.Collections.Concurrent 4.0.11-rc2-23712 System.Console 4.0.0-rc2-23712 System.Diagnostics.Debug 4.0.11-rc2-23712 System.Diagnostics.Process 4.1.0-rc2-23712 System.Diagnostics.Tools 4.0.1-rc2-23712 System.Diagnostics.Tracing 4.0.21-rc2-23712 System.Globalization 4.0.11-rc2-23712 System.Globalization.Calendars 4.0.1-rc2-23712 System.IO 4.1.0-rc2-23712 System.IO.FileSystem 4.0.1-rc2-23712 System.IO.FileSystem.Primitives 4.0.1-rc2-23712 System.Linq 4.0.1-rc2-23712 System.Net.Primitives 4.0.11-rc2-23712 System.Net.Sockets 4.1.0-rc2-23712 System.Private.Uri 4.0.1-rc2-23712 System.Reflection 4.1.0-rc2-23712 System.Reflection.Extensions 4.0.1-rc2-23712 System.Reflection.Primitives 4.0.1-rc2-23712 System.Reflection.TypeExtensions 4.1.0-rc2-23712 System.Resources.ResourceManager 4.0.0 System.Runtime 4.0.21-rc2-23712 System.Runtime.Extensions 4.0.11-rc2-23712 System.Runtime.Handles 4.0.1-rc2-23712 System.Runtime.InteropServices 4.0.21-rc2-23712 System.Runtime.InteropServices.RuntimeInformation 4.0.0-rc2-23712 System.Runtime.Numerics 4.0.1-rc2-23712 System.Text.Encoding 4.0.11-rc2-23712 System.Text.Encoding.Extensions 4.0.11-rc2-23712 System.Text.RegularExpressions 4.0.11-rc2-23712 System.Threading 4.0.11-rc2-23712 System.Threading.Tasks 4.0.11-rc2-23712 System.Threading.Timer 4.0.1-rc2-23712 ``` @muratg " +5343 area-Serialization Fix XmlDictionaryReaderQuotas so MaxDepth and MaxStringContentLength are honored MaxDepth and MaxStringContentLength settings in XmlDictionaryReaderQuotas are not effective due to missing the right handling in the implementation. This change adds the checks and throws exception when these two limit are exceeded. Fix #4651 @shmao @SGuyGe +5348 area-System.Diagnostics Process.Start isn't properly handling escape characters "e.g. the string `""\\"" ""\\\\""` is getting parsed as `\” \\\”` rather than as `\ \\` " +5349 area-Infrastructure Add Ubuntu 15.10 (Wily Werewolf) CI / Rolling Build In preparation for Ubuntu 16.04LTS shipping in April, we should start running on Ubuntu 15.10 as a temporary surrogate. We can then drop 15.10 when we add 16.04LTS later this year. https://wiki.ubuntu.com/Releases Related CI work items: https://github.com/dotnet/corefx/issues/4653 (2008 R2 ServerCore), https://github.com/dotnet/corefx/issues/4656 (Debian 8.2), https://github.com/dotnet/corefx/issues/4779 (2016 NanoServer) +5352 area-Serialization [Port] XmlReader.ReadValueChunk will throw ArgumentException when body contents contain double-wide chars encoded as UTF-8 This issue is to port a fix that was made on Desktop to corefx. Please see [Reference Source](http://referencesource.microsoft.com/#System.Runtime.Serialization/System/Xml/ValueHandle.cs,700) for the fix on Desktop. +5357 area-System.Net Port additional WebSocket tests "Port remaining websocket client tests dealing with close handshake semantics including ""server initiated"" close handshakes. Switch networking test servers to the newer Azure Cloud Service servers which work better with websocket close handshakes. " +5359 area-Infrastructure "System.Data.SqlClient tfms not aligned with ""runtime.unix.S.D.S""" "System.Data.SqlClient supports `dotnet5.4` but its `runtime.unix.System.Data.SqlClient` requires `dotnet5.5`. This leads to runtime errors due to missing dependencies on Linux/OSX. Example: ``` json { ""frameworks"": { ""dotnet5.4"": { ""dependencies"": { ""System.Data.SqlClient"": ""4.0.0-*"" } } } } ``` :white_check_mark: dotnet restore :x: dotnet run `Could not load file or assembly 'System.Net.Security'` Change to `dotnet5.5` :white_check_mark: dotnet restore :white_check_mark: dotnet run " +5360 area-System.Numerics Design initialization API for Vector that supports padding The size of `Vector` is hardware dependent. When constructing a vector, we either accept the value coming from an array or a raw pointer. However, the number of elements being read is always `Vector.Length`. In many cases, the number of inputs to be processed is extrinsically defined and might not be a multiplier of `Vector.Length`, i.e. it's likely that there is a remainder. It might be beneficial to support constructing a vector and if there are fewer values than `Vector.Length` we pad with, for instance, zeroes. @mellinoe @CarolEidt +5362 area-Serialization Add support for XmlElement for data contract serializers This change is porting the support for XmlElement from Desktop implementation to data contract serializers. @shmao @SGuyGe @zhenlan +5364 area-System.Threading AggregateException should report better error messages A common issue when not using await is the print out ex.Message or ex.ToString() In the case of `AggregateException` and perhaps also `TargetInvocationException` these messages are kinda useless: `One or more errors occurred.` it would be nice to print out a more detailed message by default: 1. Print out how many error where found. 2. Print out the actual inner exceptions +5373 area-System.Net Disable failing NegotiateStream test #5284, #5326 cc: @davidsh, @cipop +5374 area-System.Net Throw SocketException rather than PNSE for unsupported socket option on Unix Match Windows exception type when an unsupported socket option is provided. cc: @davidsh, @ericeil, @cipop, @pgavlin Fixes https://github.com/dotnet/corefx/issues/4897 +5377 area-System.Reflection Consider adding TypeDefinition.IsNested { get; } I'm testing https://github.com/dotnet/corefx/pull/4809/files. DisassemblingTypeProvider, the sample implementation used for tests, calls TypeDefinition.Attributes.IsNested in GetTypeFromDefinition, which can't be done outside Roslyn. I'm guessing we'll want everything the reference implementation does be possible for public consumers to do. +5378 area-System.Diagnostics Process.Start() sometimes returns wrong ProcessName "If executing following code with NETStandard.Library of 1.0.0-rc2-23712: using System; using System.Diagnostics; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { for (int i=0; i<100; i++) { ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = ""ping""; startInfo.Arguments = ""localhost -c 1""; ``` Process process = new Process(); process.StartInfo = startInfo; process.Start(); Console.WriteLine(""processName is: {0}"", process.ProcessName); } } } ``` } You will see that output ProcessName is usually correct (""ping"") the first time, but usually incorrect in subsequent iterations. If one extends the life of command (change argument to something like ""-c 3""), wait a second or so, and then do a ""GetProcessById"", you would see that the ProcessName has become correct. This indicates a race condition of some sort. " +5381 area-System.Reflection Add missing members for System.Reflection namespace This is a blanket issue to review gaps in System.Reflection namespace in .NetCore vs Desktop ### Proposed additions to .NET Core ``` diff ---.NET Core Currently +++.NET Core Proposed namespace System.Reflection { public sealed class AmbiguousMatchException : Exception { public AmbiguousMatchException(); public AmbiguousMatchException(string message); public AmbiguousMatchException(string message, Exception inner); } public abstract class Assembly { + public virtual string CodeBase { get; } public virtual IEnumerable CustomAttributes { get; } public abstract IEnumerable DefinedTypes { get; } public virtual MethodInfo EntryPoint { get; } + public virtual string EscapedCodeBase { get; } public virtual IEnumerable ExportedTypes { get; } public virtual string FullName { get; } public virtual bool IsDynamic { get; } public virtual string Location { get; } public virtual Module ManifestModule { get; } public abstract IEnumerable Modules { get; } public override bool Equals(object o); public static Assembly GetEntryAssembly(); public override int GetHashCode(); public virtual ManifestResourceInfo GetManifestResourceInfo(string resourceName); public virtual string[] GetManifestResourceNames(); public virtual Stream GetManifestResourceStream(string name); public virtual AssemblyName GetName(); public virtual Type GetType(string name); public virtual Type GetType(string name, bool throwOnError, bool ignoreCase); public static Assembly Load(AssemblyName assemblyRef); public override string ToString(); } public enum AssemblyContentType { Default = 0, WindowsRuntime = 1, } public sealed class AssemblyName { public AssemblyName(); public AssemblyName(string assemblyName); public AssemblyContentType ContentType { get; set; } public string CultureName { get; set; } public AssemblyNameFlags Flags { get; set; } public string FullName { get; } public string Name { get; set; } public ProcessorArchitecture ProcessorArchitecture { get; set; } public Version Version { get; set; } public byte[] GetPublicKey(); public byte[] GetPublicKeyToken(); public void SetPublicKey(byte[] publicKey); public void SetPublicKeyToken(byte[] publicKeyToken); public override string ToString(); } + public abstract class Binder { + protected Binder(); } + public enum BindingFlags { + CreateInstance = 512, + DeclaredOnly = 2, + Default = 0, + FlattenHierarchy = 64, + GetField = 1024, + GetProperty = 4096, + IgnoreCase = 1, + Instance = 4, + InvokeMethod = 256, + NonPublic = 32, + Public = 16, + SetField = 2048, + SetProperty = 8192, + Static = 8, } public abstract class ConstructorInfo : MethodBase { public static readonly string ConstructorName; public static readonly string TypeConstructorName; + public override MemberTypes MemberType { get; } public override bool Equals(object obj); public override int GetHashCode(); public virtual object Invoke(object[] parameters); } public class CustomAttributeData { public virtual Type AttributeType { get; } + public virtual ConstructorInfo Constructor { get; } public virtual IList ConstructorArguments { get; } public virtual IList NamedArguments { get; } + public static IList GetCustomAttributes(Assembly target); + public static IList GetCustomAttributes(MemberInfo target); + public static IList GetCustomAttributes(Module target); + public static IList GetCustomAttributes(ParameterInfo target); } [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] public struct CustomAttributeNamedArgument { public bool IsField { get; } + public MemberInfo MemberInfo { get; } public string MemberName { get; } public CustomAttributeTypedArgument TypedValue { get; } } [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] public struct CustomAttributeTypedArgument { public Type ArgumentType { get; } public object Value { get; } } public abstract class EventInfo : MemberInfo { public virtual MethodInfo AddMethod { get; } public abstract EventAttributes Attributes { get; } public virtual Type EventHandlerType { get; } + public virtual bool IsMulticast { get; } public bool IsSpecialName { get; } + public override MemberTypes MemberType { get; } public virtual MethodInfo RaiseMethod { get; } public virtual MethodInfo RemoveMethod { get; } public virtual void AddEventHandler(object target, Delegate handler); public override bool Equals(object obj); + public MethodInfo GetAddMethod(); + public virtual MethodInfo GetAddMethod(bool nonPublic); public override int GetHashCode(); + public MethodInfo GetRaiseMethod(); + public virtual MethodInfo GetRaiseMethod(bool nonPublic); + public MethodInfo GetRemoveMethod(); + public virtual MethodInfo GetRemoveMethod(bool nonPublic); public virtual void RemoveEventHandler(object target, Delegate handler); } public abstract class FieldInfo : MemberInfo { public abstract FieldAttributes Attributes { get; } + public virtual RuntimeFieldHandle FieldHandle { get; } public abstract Type FieldType { get; } public bool IsAssembly { get; } public bool IsFamily { get; } public bool IsFamilyAndAssembly { get; } public bool IsFamilyOrAssembly { get; } public bool IsInitOnly { get; } public bool IsLiteral { get; } public bool IsPrivate { get; } public bool IsPublic { get; } public bool IsSpecialName { get; } public bool IsStatic { get; } + public override MemberTypes MemberType { get; } public override bool Equals(object obj); public static FieldInfo GetFieldFromHandle(RuntimeFieldHandle handle); public static FieldInfo GetFieldFromHandle(RuntimeFieldHandle handle, RuntimeTypeHandle declaringType); public override int GetHashCode(); public abstract object GetValue(object obj); public virtual void SetValue(object obj, object value); } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] public struct InterfaceMapping { + public MethodInfo[] InterfaceMethods; + public MethodInfo[] TargetMethods; + public Type InterfaceType; + public Type TargetType; } public static class IntrospectionExtensions { public static TypeInfo GetTypeInfo(this Type type); } + public class InvalidFilterCriteriaException : Exception { + public InvalidFilterCriteriaException(); + public InvalidFilterCriteriaException(string message); + public InvalidFilterCriteriaException(string message, Exception inner); } public interface IReflectableType { TypeInfo GetTypeInfo(); } public class LocalVariableInfo { protected LocalVariableInfo(); public virtual bool IsPinned { get; } public virtual int LocalIndex { get; } public virtual Type LocalType { get; } public override string ToString(); } public class ManifestResourceInfo { public ManifestResourceInfo(Assembly containingAssembly, string containingFileName, ResourceLocation resourceLocation); public virtual string FileName { get; } public virtual Assembly ReferencedAssembly { get; } public virtual ResourceLocation ResourceLocation { get; } } + public delegate bool MemberFilter(MemberInfo m, object filterCriteria); public abstract class MemberInfo { public virtual IEnumerable CustomAttributes { get; } public abstract Type DeclaringType { get; } + public virtual MemberTypes MemberType { get; } + public virtual int MetadataToken { get; } public virtual Module Module { get; } public abstract string Name { get; } + public virtual Type ReflectedType { get; } public override bool Equals(object obj); public override int GetHashCode(); } + public enum MemberTypes { + All = 191, + Constructor = 1, + Custom = 64, + Event = 2, + Field = 4, + Method = 8, + NestedType = 128, + Property = 16, + TypeInfo = 32, } public abstract class MethodBase : MemberInfo { public abstract MethodAttributes Attributes { get; } public virtual CallingConventions CallingConvention { get; } public virtual bool ContainsGenericParameters { get; } public bool IsAbstract { get; } public bool IsAssembly { get; } public bool IsConstructor { get; } public bool IsFamily { get; } public bool IsFamilyAndAssembly { get; } public bool IsFamilyOrAssembly { get; } public bool IsFinal { get; } public virtual bool IsGenericMethod { get; } public virtual bool IsGenericMethodDefinition { get; } public bool IsHideBySig { get; } public bool IsPrivate { get; } public bool IsPublic { get; } public bool IsSpecialName { get; } public bool IsStatic { get; } public bool IsVirtual { get; } + public virtual RuntimeMethodHandle MethodHandle { get; } public abstract MethodImplAttributes MethodImplementationFlags { get; } public override bool Equals(object obj); + public static MethodBase GetCurrentMethod(); public virtual Type[] GetGenericArguments(); public override int GetHashCode(); public static MethodBase GetMethodFromHandle(RuntimeMethodHandle handle); public static MethodBase GetMethodFromHandle(RuntimeMethodHandle handle, RuntimeTypeHandle declaringType); + public virtual MethodImplAttributes GetMethodImplementationFlags(); public abstract ParameterInfo[] GetParameters(); public virtual object Invoke(object obj, object[] parameters); } public abstract class MethodInfo : MethodBase { + public override MemberTypes MemberType { get; } public virtual ParameterInfo ReturnParameter { get; } public virtual Type ReturnType { get; } public virtual Delegate CreateDelegate(Type delegateType); public virtual Delegate CreateDelegate(Type delegateType, object target); public override bool Equals(object obj); + public virtual MethodInfo GetBaseDefinition(); public override Type[] GetGenericArguments(); public virtual MethodInfo GetGenericMethodDefinition(); public override int GetHashCode(); public virtual MethodInfo MakeGenericMethod(params Type[] typeArguments); } public abstract class Module { + public static readonly TypeFilter FilterTypeName; + public static readonly TypeFilter FilterTypeNameIgnoreCase; public virtual Assembly Assembly { get; } public virtual IEnumerable CustomAttributes { get; } public virtual string FullyQualifiedName { get; } + public virtual int MDStreamVersion { get; } + public virtual int MetadataToken { get; } + public virtual Guid ModuleVersionId { get; } public virtual string Name { get; } + public virtual string ScopeName { get; } public override bool Equals(object o); + public virtual Type[] FindTypes(TypeFilter filter, object filterCriteria); + public FieldInfo GetField(string name); + public virtual FieldInfo GetField(string name, BindingFlags bindingAttr); + public FieldInfo[] GetFields(); + public virtual FieldInfo[] GetFields(BindingFlags bindingFlags); public override int GetHashCode(); + public MethodInfo GetMethod(string name); + public MethodInfo GetMethod(string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers); + public MethodInfo GetMethod(string name, Type[] types); + public MethodInfo[] GetMethods(); + public virtual MethodInfo[] GetMethods(BindingFlags bindingFlags); + public virtual Type GetType(string className); + public virtual Type GetType(string className, bool ignoreCase); public virtual Type GetType(string className, bool throwOnError, bool ignoreCase); + public virtual Type[] GetTypes(); + public FieldInfo ResolveField(int metadataToken); + public virtual FieldInfo ResolveField(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments); + public MemberInfo ResolveMember(int metadataToken); + public virtual MemberInfo ResolveMember(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments); + public MethodBase ResolveMethod(int metadataToken); + public virtual MethodBase ResolveMethod(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments); + public virtual byte[] ResolveSignature(int metadataToken); + public virtual string ResolveString(int metadataToken); + public Type ResolveType(int metadataToken); + public virtual Type ResolveType(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments); public override string ToString(); } public class ParameterInfo { public virtual ParameterAttributes Attributes { get; } public virtual IEnumerable CustomAttributes { get; } public virtual object DefaultValue { get; } public virtual bool HasDefaultValue { get; } public bool IsIn { get; } public bool IsOptional { get; } public bool IsOut { get; } public bool IsRetval { get; } public virtual MemberInfo Member { get; } + public virtual int MetadataToken { get; } public virtual string Name { get; } public virtual Type ParameterType { get; } public virtual int Position { get; } + public virtual object RawDefaultValue { get; } } + [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] public struct ParameterModifier { + public ParameterModifier(int parameterCount); + public bool this[int index] { get; set; } } public abstract class PropertyInfo : MemberInfo { public abstract PropertyAttributes Attributes { get; } public abstract bool CanRead { get; } public abstract bool CanWrite { get; } public virtual MethodInfo GetMethod { get; } public bool IsSpecialName { get; } + public override MemberTypes MemberType { get; } public abstract Type PropertyType { get; } public virtual MethodInfo SetMethod { get; } public override bool Equals(object obj); + public MethodInfo[] GetAccessors(); + public virtual MethodInfo[] GetAccessors(bool nonPublic); public virtual object GetConstantValue(); + public MethodInfo GetGetMethod(); + public virtual MethodInfo GetGetMethod(bool nonPublic); public override int GetHashCode(); public abstract ParameterInfo[] GetIndexParameters(); + public MethodInfo GetSetMethod(); + public virtual MethodInfo GetSetMethod(bool nonPublic); public object GetValue(object obj); public virtual object GetValue(object obj, object[] index); public void SetValue(object obj, object value); public virtual void SetValue(object obj, object value, object[] index); } public abstract class ReflectionContext { protected ReflectionContext(); public virtual TypeInfo GetTypeForObject(object value); public abstract Assembly MapAssembly(Assembly assembly); public abstract TypeInfo MapType(TypeInfo type); } public sealed class ReflectionTypeLoadException : Exception { public ReflectionTypeLoadException(Type[] classes, Exception[] exceptions); public ReflectionTypeLoadException(Type[] classes, Exception[] exceptions, string message); public Exception[] LoaderExceptions { get; } public Type[] Types { get; } } public enum ResourceLocation { ContainedInAnotherAssembly = 2, ContainedInManifestFile = 4, Embedded = 1, } + public class TargetException : Exception { + public TargetException(); + public TargetException(string message); + public TargetException(string message, Exception inner); } public sealed class TargetInvocationException : Exception { public TargetInvocationException(Exception inner); public TargetInvocationException(string message, Exception inner); } public sealed class TargetParameterCountException : Exception { public TargetParameterCountException(); public TargetParameterCountException(string message); public TargetParameterCountException(string message, Exception inner); } + public delegate bool TypeFilter(Type m, object filterCriteria); public abstract class TypeInfo : MemberInfo, IReflectableType { public abstract Assembly Assembly { get; } public abstract string AssemblyQualifiedName { get; } public abstract TypeAttributes Attributes { get; } public abstract Type BaseType { get; } public abstract bool ContainsGenericParameters { get; } public virtual IEnumerable DeclaredConstructors { get; } public virtual IEnumerable DeclaredEvents { get; } public virtual IEnumerable DeclaredFields { get; } public virtual IEnumerable DeclaredMembers { get; } public virtual IEnumerable DeclaredMethods { get; } public virtual IEnumerable DeclaredNestedTypes { get; } public virtual IEnumerable DeclaredProperties { get; } public abstract MethodBase DeclaringMethod { get; } public abstract string FullName { get; } public abstract GenericParameterAttributes GenericParameterAttributes { get; } public abstract int GenericParameterPosition { get; } public abstract Type[] GenericTypeArguments { get; } public virtual Type[] GenericTypeParameters { get; } public abstract Guid GUID { get; } public bool HasElementType { get; } public virtual IEnumerable ImplementedInterfaces { get; } public bool IsAbstract { get; } public bool IsAnsiClass { get; } public bool IsArray { get; } public bool IsAutoClass { get; } public bool IsAutoLayout { get; } public bool IsByRef { get; } public bool IsClass { get; } public virtual bool IsCOMObject { get; } public abstract bool IsEnum { get; } public bool IsExplicitLayout { get; } public abstract bool IsGenericParameter { get; } public abstract bool IsGenericType { get; } public abstract bool IsGenericTypeDefinition { get; } public bool IsImport { get; } public bool IsInterface { get; } public bool IsLayoutSequential { get; } public bool IsMarshalByRef { get; } public bool IsNested { get; } public bool IsNestedAssembly { get; } public bool IsNestedFamANDAssem { get; } public bool IsNestedFamily { get; } public bool IsNestedFamORAssem { get; } public bool IsNestedPrivate { get; } public bool IsNestedPublic { get; } public bool IsNotPublic { get; } public bool IsPointer { get; } public virtual bool IsPrimitive { get; } public bool IsPublic { get; } public bool IsSealed { get; } public abstract bool IsSerializable { get; } public bool IsSpecialName { get; } public bool IsUnicodeClass { get; } public virtual bool IsValueType { get; } public bool IsVisible { get; } public abstract string Namespace { get; } + public virtual StructLayoutAttribute StructLayoutAttribute { get; } + public ConstructorInfo TypeInitializer { get; } + public abstract Type UnderlyingSystemType { get; } public virtual Type AsType(); + public virtual Type[] FindInterfaces(TypeFilter filter, object filterCriteria); + public virtual MemberInfo[] FindMembers(MemberTypes memberType, BindingFlags bindingAttr, MemberFilter filter, object filterCriteria); public abstract int GetArrayRank(); + public ConstructorInfo GetConstructor(Type[] types); + public ConstructorInfo[] GetConstructors(); + public abstract ConstructorInfo[] GetConstructors(BindingFlags bindingAttr); public virtual EventInfo GetDeclaredEvent(string name); public virtual FieldInfo GetDeclaredField(string name); public virtual MethodInfo GetDeclaredMethod(string name); public virtual IEnumerable GetDeclaredMethods(string name); public virtual TypeInfo GetDeclaredNestedType(string name); public virtual PropertyInfo GetDeclaredProperty(string name); + public virtual MemberInfo[] GetDefaultMembers(); public abstract Type GetElementType(); + public virtual string GetEnumName(object value); + public virtual string[] GetEnumNames(); + public virtual Type GetEnumUnderlyingType(); + public virtual Array GetEnumValues(); + public EventInfo GetEvent(string name); + public abstract EventInfo GetEvent(string name, BindingFlags bindingAttr); + public virtual EventInfo[] GetEvents(); + public abstract EventInfo[] GetEvents(BindingFlags bindingAttr); + public FieldInfo GetField(string name); + public abstract FieldInfo GetField(string name, BindingFlags bindingAttr); + public FieldInfo[] GetFields(); + public abstract FieldInfo[] GetFields(BindingFlags bindingAttr); + public virtual Type[] GetGenericArguments(); public abstract Type[] GetGenericParameterConstraints(); public abstract Type GetGenericTypeDefinition(); + public Type GetInterface(string name); + public abstract Type GetInterface(string name, bool ignoreCase); + public virtual InterfaceMapping GetInterfaceMap(Type interfaceType); + public abstract Type[] GetInterfaces(); + public MemberInfo[] GetMember(string name); + public virtual MemberInfo[] GetMember(string name, BindingFlags bindingAttr); + public virtual MemberInfo[] GetMember(string name, MemberTypes type, BindingFlags bindingAttr); + public MemberInfo[] GetMembers(); + public abstract MemberInfo[] GetMembers(BindingFlags bindingAttr); + public MethodInfo GetMethod(string name); + public MethodInfo GetMethod(string name, BindingFlags bindingAttr); + public MethodInfo GetMethod(string name, Type[] types); + public MethodInfo GetMethod(string name, Type[] types, ParameterModifier[] modifiers); + public MethodInfo[] GetMethods(); + public abstract MethodInfo[] GetMethods(BindingFlags bindingAttr); + public Type GetNestedType(string name); + public abstract Type GetNestedType(string name, BindingFlags bindingAttr); + public Type[] GetNestedTypes(); + public abstract Type[] GetNestedTypes(BindingFlags bindingAttr); + public PropertyInfo[] GetProperties(); + public abstract PropertyInfo[] GetProperties(BindingFlags bindingAttr); + public PropertyInfo GetProperty(string name); + public PropertyInfo GetProperty(string name, BindingFlags bindingAttr); + public PropertyInfo GetProperty(string name, Type returnType); + public PropertyInfo GetProperty(string name, Type returnType, Type[] types); + public PropertyInfo GetProperty(string name, Type returnType, Type[] types, ParameterModifier[] modifiers); + public PropertyInfo GetProperty(string name, Type[] types); public virtual bool IsAssignableFrom(TypeInfo typeInfo); + public virtual bool IsAssignableFrom(Type c); + public abstract bool IsDefined(Type attributeType, bool inherit); + public virtual bool IsEnumDefined(object value); public virtual bool IsEquivalentTo(Type other); + public virtual bool IsInstanceOfType(object o); public virtual bool IsSubclassOf(Type c); public abstract Type MakeArrayType(); public abstract Type MakeArrayType(int rank); public abstract Type MakeByRefType(); public abstract Type MakeGenericType(params Type[] typeArguments); public abstract Type MakePointerType(); TypeInfo System.Reflection.IReflectableType.GetTypeInfo(); } } ``` ### Notes ``` diff ---.NET Framework +++.NET Core namespace System { public abstract class Type : MemberInfo, _Type, IReflect { public static readonly char Delimiter; ^ Pallavi Taneja: Added on the Type. public static readonly object Missing; ^ Pallavi Taneja: Already present. - public static readonly MemberFilter FilterAttribute; ^ Pallavi Taneja: Filter* can't be added to TypeInfo in this contract revision. - public static readonly MemberFilter FilterName; - public static readonly MemberFilter FilterNameIgnoreCase; public static readonly Type[] EmptyTypes; ^ Pallavi Taneja: Already present. - protected Type(); - public abstract Assembly Assembly { get; } public abstract string AssemblyQualifiedName { get; } - public TypeAttributes Attributes { get; } - public abstract Type BaseType { get; } - public virtual bool ContainsGenericParameters { get; } - public virtual MethodBase DeclaringMethod { get; } public overrideabstract Type DeclaringType { get; } - public static Binder DefaultBinder { get; } ^ Pallavi Taneja: [Pending discussion] Whether Binder should be empty or exposed via a separate contract. public abstract string FullName { get; } - public virtual GenericParameterAttributes GenericParameterAttributes { get; } public virtualabstract int GenericParameterPosition { get; } public virtualabstract Type[] GenericTypeArguments { get; } - public abstract Guid GUID { get; } public bool HasElementType { get; } - public bool IsAbstract { get; } - public bool IsAnsiClass { get; } public virtual bool IsArray { get; } - public bool IsAutoClass { get; } - public bool IsAutoLayout { get; } public virtual bool IsByRef { get; } - public bool IsClass { get; } - public bool IsCOMObject { get; } public virtualabstract bool IsConstructedGenericType { get; } ^ Pallavi Taneja: Already exposed in Type. - public bool IsContextful { get; } ^ Pallavi Taneja: Used only in remoting. - public virtual bool IsEnum { get; } - public bool IsExplicitLayout { get; } public virtualabstract bool IsGenericParameter { get; } - public virtual bool IsGenericType { get; } - public virtual bool IsGenericTypeDefinition { get; } - public bool IsImport { get; } - public bool IsInterface { get; } - public bool IsLayoutSequential { get; } - public bool IsMarshalByRef { get; } public bool IsNested { get; } - public bool IsNestedAssembly { get; } - public bool IsNestedFamANDAssem { get; } - public bool IsNestedFamily { get; } - public bool IsNestedFamORAssem { get; } - public bool IsNestedPrivate { get; } - public bool IsNestedPublic { get; } - public bool IsNotPublic { get; } public virtual bool IsPointer { get; } - public bool IsPrimitive { get; } - public bool IsPublic { get; } - public bool IsSealed { get; } - public virtual bool IsSecurityCritical { get; } ^ Pallavi Taneja: Obsolete concept. - public virtual bool IsSecuritySafeCritical { get; } - public virtual bool IsSecurityTransparent { get; } - public virtual bool IsSerializable { get; } - public bool IsSpecialName { get; } - public bool IsUnicodeClass { get; } - public bool IsValueType { get; } - public bool IsVisible { get; } - public override MemberTypes MemberType { get; } - public abstract new Module Module { get; } + public abstract string Name { get; } public abstract string Namespace { get; } - public override Type ReflectedType { get; } - public virtual StructLayoutAttribute StructLayoutAttribute { get; } public virtual RuntimeTypeHandle TypeHandle { get; } ^ Pallavi Taneja: Already exposed in Type - public ConstructorInfo TypeInitializer { get; } - public abstract Type UnderlyingSystemType { get; } public override bool Equals(object o); public virtual bool Equals(Type o); - public virtual Type[] FindInterfaces(TypeFilter filter, object filterCriteria); - public virtual MemberInfo[] FindMembers(MemberTypes memberType, BindingFlags bindingAttr, MemberFilter filter, object filterCriteria); public virtualabstract int GetArrayRank(); - protected abstract TypeAttributes GetAttributeFlagsImpl(); - public ConstructorInfo GetConstructor(BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers); ^ Pallavi Taneja: Binder decision pending. - public ConstructorInfo GetConstructor(BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers); - public ConstructorInfo GetConstructor(Type[] types); - protected abstract ConstructorInfo GetConstructorImpl(BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers); - public ConstructorInfo[] GetConstructors(); - public abstract ConstructorInfo[] GetConstructors(BindingFlags bindingAttr); - public virtual MemberInfo[] GetDefaultMembers(); public abstract Type GetElementType(); - public virtual string GetEnumName(object value); - public virtual string[] GetEnumNames(); - public virtual Type GetEnumUnderlyingType(); - public virtual Array GetEnumValues(); - public EventInfo GetEvent(string name); - public abstract EventInfo GetEvent(string name, BindingFlags bindingAttr); - public virtual EventInfo[] GetEvents(); - public abstract EventInfo[] GetEvents(BindingFlags bindingAttr); - public FieldInfo GetField(string name); - public abstract FieldInfo GetField(string name, BindingFlags bindingAttr); - public FieldInfo[] GetFields(); - public abstract FieldInfo[] GetFields(BindingFlags bindingAttr); - public virtual Type[] GetGenericArguments(); - public virtual Type[] GetGenericParameterConstraints(); public virtualabstract Type GetGenericTypeDefinition(); public override int GetHashCode(); - public Type GetInterface(string name); - public abstract Type GetInterface(string name, bool ignoreCase); - public virtual InterfaceMapping GetInterfaceMap(Type interfaceType); - public abstract Type[] GetInterfaces(); - public MemberInfo[] GetMember(string name); - public virtual MemberInfo[] GetMember(string name, BindingFlags bindingAttr); - public virtual MemberInfo[] GetMember(string name, MemberTypes type, BindingFlags bindingAttr); - public MemberInfo[] GetMembers(); - public abstract MemberInfo[] GetMembers(BindingFlags bindingAttr); - public MethodInfo GetMethod(string name); - public MethodInfo GetMethod(string name, BindingFlags bindingAttr); - public MethodInfo GetMethod(string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers); ^ Pallavi Taneja: Binder decision pending. - public MethodInfo GetMethod(string name, BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers); - public MethodInfo GetMethod(string name, Type[] types); - public MethodInfo GetMethod(string name, Type[] types, ParameterModifier[] modifiers); - protected abstract MethodInfo GetMethodImpl(string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers); - public MethodInfo[] GetMethods(); - public abstract MethodInfo[] GetMethods(BindingFlags bindingAttr); - public Type GetNestedType(string name); - public abstract Type GetNestedType(string name, BindingFlags bindingAttr); - public Type[] GetNestedTypes(); - public abstract Type[] GetNestedTypes(BindingFlags bindingAttr); - public PropertyInfo[] GetProperties(); - public abstract PropertyInfo[] GetProperties(BindingFlags bindingAttr); - public PropertyInfo GetProperty(string name); - public PropertyInfo GetProperty(string name, BindingFlags bindingAttr); - public PropertyInfo GetProperty(string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers); ^ Pallavi Taneja: Binder decision pending. - public PropertyInfo GetProperty(string name, Type returnType); - public PropertyInfo GetProperty(string name, Type returnType, Type[] types); - public PropertyInfo GetProperty(string name, Type returnType, Type[] types, ParameterModifier[] modifiers); - public PropertyInfo GetProperty(string name, Type[] types); - protected abstract PropertyInfo GetPropertyImpl(string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers); - public new Type GetType(); - [MethodImpl(NoInlining)]public static Type GetType(string typeName); ^ Pallavi Taneja: GetType* can't be added to TypeInfo in the current contract version. - [MethodImpl(NoInlining)]public static Type GetType(string typeName, bool throwOnError); - [MethodImpl(NoInlining)]public static Type GetType(string typeName, bool throwOnError, bool ignoreCase); - [MethodImpl(NoInlining)]public static Type GetType(string typeName, Func assemblyResolver, Func typeResolver); - [MethodImpl(NoInlining)]public static Type GetType(string typeName, Func assemblyResolver, Func typeResolver, bool throwOnError); - [MethodImpl(NoInlining)]public static Type GetType(string typeName, Func assemblyResolver, Func typeResolver, bool throwOnError, bool ignoreCase); - public static Type[] GetTypeArray(object[] args); ^ Pallavi Taneja: Can't be added to TypeInfo in the current contract version. public static TypeCode GetTypeCode(Type type); - protected virtual TypeCode GetTypeCodeImpl(); - public static Type GetTypeFromCLSID(Guid clsid); ^ Pallavi Taneja: Interop concept - public static Type GetTypeFromCLSID(Guid clsid, bool throwOnError); - public static Type GetTypeFromCLSID(Guid clsid, string server); - public static Type GetTypeFromCLSID(Guid clsid, string server, bool throwOnError); - [MethodImpl(InternalCall)]public static Type GetTypeFromHandle(RuntimeTypeHandle handle); ^ Pallavi Taneja: Already implemented. - public static Type GetTypeFromProgID(string progID); ^ Pallavi Taneja: Interop concept - public static Type GetTypeFromProgID(string progID, bool throwOnError); - public static Type GetTypeFromProgID(string progID, string server); - public static Type GetTypeFromProgID(string progID, string server, bool throwOnError); - public static RuntimeTypeHandle GetTypeHandle(object o); ^ Pallavi Taneja: Decision pending. - protected abstract bool HasElementTypeImpl(); - public object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args); ^ Pallavi Taneja: Binder decision pending. - public object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture); - public abstract object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParameters); - protected abstract bool IsArrayImpl(); - public virtual bool IsAssignableFrom(Type c); - protected abstract bool IsByRefImpl(); - protected abstract bool IsCOMObjectImpl(); - protected virtual bool IsContextfulImpl(); - public virtual bool IsEnumDefined(object value); - public virtual bool IsEquivalentTo(Type other); - public virtual bool IsInstanceOfType(object o); - protected virtual bool IsMarshalByRefImpl(); - protected abstract bool IsPointerImpl(); - protected abstract bool IsPrimitiveImpl(); - public virtual bool IsSubclassOf(Type c); - protected virtual bool IsValueTypeImpl(); public virtualabstract Type MakeArrayType(); public virtualabstract Type MakeArrayType(int rank); public virtualabstract Type MakeByRefType(); public virtualabstract Type MakeGenericType(params Type[] typeArguments); public virtualabstract Type MakePointerType(); - [MethodImpl(InternalCall)]public static bool operator ==(Type left, Type right); - [MethodImpl(InternalCall)]public static bool operator !=(Type left, Type right); - [MethodImpl(NoInlining)]public static Type ReflectionOnlyGetType(string typeName, bool throwIfNotFound, bool ignoreCase); - void System.Runtime.InteropServices._Type.GetIDsOfNames(ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId); - void System.Runtime.InteropServices._Type.GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo); - void System.Runtime.InteropServices._Type.GetTypeInfoCount(out uint pcTInfo); - void System.Runtime.InteropServices._Type.Invoke(uint dispIdMember, ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr); public override string ToString(); } namespace System.Reflection { public abstract class Binder { ^ Pallavi Taneja: Expose as Empty in System.Reflection. Options added separately. protected Binder(); - public abstract FieldInfo BindToField(BindingFlags bindingAttr, FieldInfo[] match, object value, CultureInfo culture); - public abstract MethodBase BindToMethod(BindingFlags bindingAttr, MethodBase[] match, ref object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] names, out object state); - public abstract object ChangeType(object value, Type type, CultureInfo culture); - public abstract void ReorderArgumentArray(ref object[] args, object state); - public abstract MethodBase SelectMethod(BindingFlags bindingAttr, MethodBase[] match, Type[] types, ParameterModifier[] modifiers); - public abstract PropertyInfo SelectProperty(BindingFlags bindingAttr, PropertyInfo[] match, Type returnType, Type[] indexes, ParameterModifier[] modifiers); } public enum BindingFlags { CreateInstance = 512, DeclaredOnly = 2, Default = 0, - ExactBinding = 65536, ^ Pallavi Taneja: Used only in case Binder is extensible. FlattenHierarchy = 64, GetField = 1024, GetProperty = 4096, IgnoreCase = 1, - IgnoreReturn = 16777216, ^ Pallavi Taneja: Only used in Interop. Instance = 4, InvokeMethod = 256, NonPublic = 32, - OptionalParamBinding = 262144, ^ Pallavi Taneja: [Unsure] used most only in varArgs scenario. Public = 16, - PutDispProperty = 16384, ^ Pallavi Taneja: Interop scenario. - PutRefDispProperty = 32768, SetField = 2048, SetProperty = 8192, Static = 8, - SuppressChangeType = 131072, } public abstract class ConstructorInfo : MethodBase, _ConstructorInfo { public static readonly string ConstructorName; public static readonly string TypeConstructorName; - protected ConstructorInfo(); public override MemberTypes MemberType { get; } public override bool Equals(object obj); public override int GetHashCode(); public virtual object Invoke(object[] parameters); - public abstract object Invoke(BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture); ^ Pallavi Taneja: System.Globalization dependency. Usage < 2%. No reflection contract currently take glob dep not just S.R.dll - public static bool operator ==(ConstructorInfo left, ConstructorInfo right); - public static bool operator !=(ConstructorInfo left, ConstructorInfo right); - void System.Runtime.InteropServices._ConstructorInfo.GetIDsOfNames(ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId); - Type System.Runtime.InteropServices._ConstructorInfo.GetType(); - void System.Runtime.InteropServices._ConstructorInfo.GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo); - void System.Runtime.InteropServices._ConstructorInfo.GetTypeInfoCount(out uint pcTInfo); - void System.Runtime.InteropServices._ConstructorInfo.Invoke(uint dispIdMember, ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr); - object System.Runtime.InteropServices._ConstructorInfo.Invoke_2(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture); - object System.Runtime.InteropServices._ConstructorInfo.Invoke_3(object obj, object[] parameters); - object System.Runtime.InteropServices._ConstructorInfo.Invoke_4(BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture); - object System.Runtime.InteropServices._ConstructorInfo.Invoke_5(object[] parameters); } - public class CustomAttributeFormatException : FormatException { ^ Pallavi Taneja: [Not sure] Used mainly in case a tool formatted a custom attribute incorrectly. - public CustomAttributeFormatException(); - protected CustomAttributeFormatException(SerializationInfo info, StreamingContext context); - public CustomAttributeFormatException(string message); - public CustomAttributeFormatException(string message, Exception inner); } [System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)] public struct CustomAttributeNamedArgument { - public CustomAttributeNamedArgument(MemberInfo memberInfo, object value); - public CustomAttributeNamedArgument(MemberInfo memberInfo, CustomAttributeTypedArgument typedArgument); public bool IsField { get; } public MemberInfo MemberInfo { get; } public string MemberName { get; } public CustomAttributeTypedArgument TypedValue { get; } - public override bool Equals(object obj); - public override int GetHashCode(); - public static bool operator ==(CustomAttributeNamedArgument left, CustomAttributeNamedArgument right); ^ Pallavi Taneja: I have left out equality operators across reflection since, there were concerns earlier that its behavior might not be consistent with .Equals - public static bool operator !=(CustomAttributeNamedArgument left, CustomAttributeNamedArgument right); - public override string ToString(); } public abstract class EventInfo : MemberInfo, _EventInfo { - protected EventInfo(); public virtual MethodInfo AddMethod { get; } public abstract EventAttributes Attributes { get; } public virtual Type EventHandlerType { get; } public virtual bool IsMulticast { get; } public bool IsSpecialName { get; } public override MemberTypes MemberType { get; } public virtual MethodInfo RaiseMethod { get; } public virtual MethodInfo RemoveMethod { get; } public virtual void AddEventHandler(object target, Delegate handler); public override bool Equals(object obj); public MethodInfo GetAddMethod(); ^ Pallavi Taneja: Get*Method are exposed via S.R.TE. Consider removing from there. public abstractvirtual MethodInfo GetAddMethod(bool nonPublic); public override int GetHashCode(); - public MethodInfo[] GetOtherMethods(); ^ Pallavi Taneja: .other directive in events is not exposed in any language semantics we care about AFAIK and currently can be leveraged using ilasm only. - public virtual MethodInfo[] GetOtherMethods(bool nonPublic); public MethodInfo GetRaiseMethod(); public abstractvirtual MethodInfo GetRaiseMethod(bool nonPublic); public MethodInfo GetRemoveMethod(); public abstractvirtual MethodInfo GetRemoveMethod(bool nonPublic); - public static bool operator ==(EventInfo left, EventInfo right); - public static bool operator !=(EventInfo left, EventInfo right); public virtual void RemoveEventHandler(object target, Delegate handler); - void System.Runtime.InteropServices._EventInfo.GetIDsOfNames(ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId); - Type System.Runtime.InteropServices._EventInfo.GetType(); - void System.Runtime.InteropServices._EventInfo.GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo); - void System.Runtime.InteropServices._EventInfo.GetTypeInfoCount(out uint pcTInfo); - void System.Runtime.InteropServices._EventInfo.Invoke(uint dispIdMember, ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr); } - public class ExceptionHandlingClause { ^ Pallavi Taneja: Not sure if we would want to expose SEH inspection or IL inspection in general. - protected ExceptionHandlingClause(); - public virtual Type CatchType { get; } - public virtual int FilterOffset { get; } - public virtual ExceptionHandlingClauseOptions Flags { get; } - public virtual int HandlerLength { get; } - public virtual int HandlerOffset { get; } - public virtual int TryLength { get; } - public virtual int TryOffset { get; } - public override string ToString(); } - public enum ExceptionHandlingClauseOptions { ^ Pallavi Taneja: Same as above. - Clause = 0, - Fault = 4, - Filter = 1, - Finally = 2, } public abstract class FieldInfo : MemberInfo, _FieldInfo { - protected FieldInfo(); public abstract FieldAttributes Attributes { get; } public abstractvirtual RuntimeFieldHandle FieldHandle { get; } public abstract Type FieldType { get; } public bool IsAssembly { get; } public bool IsFamily { get; } public bool IsFamilyAndAssembly { get; } public bool IsFamilyOrAssembly { get; } public bool IsInitOnly { get; } public bool IsLiteral { get; } - public bool IsNotSerialized { get; } ^ Pallavi Taneja: We do not expose NotSerializedAttribute notion. - public bool IsPinvokeImpl { get; } public bool IsPrivate { get; } public bool IsPublic { get; } - public virtual bool IsSecurityCritical { get; } - public virtual bool IsSecuritySafeCritical { get; } - public virtual bool IsSecurityTransparent { get; } public bool IsSpecialName { get; } public bool IsStatic { get; } public override MemberTypes MemberType { get; } public override bool Equals(object obj); public static FieldInfo GetFieldFromHandle(RuntimeFieldHandle handle); public static FieldInfo GetFieldFromHandle(RuntimeFieldHandle handle, RuntimeTypeHandle declaringType); public override int GetHashCode(); - public virtual Type[] GetOptionalCustomModifiers(); ^ Pallavi Taneja: [Not sure] Used in Compiler only context. Usage < 1% except xamarin using GetRawConstantValue 10%. Should there not be an alternative in metadata instead? - public virtual object GetRawConstantValue(); - public virtual Type[] GetRequiredCustomModifiers(); public abstract object GetValue(object obj); - public virtual object GetValueDirect(TypedReference obj); ^ Pallavi Taneja: TypedReference is not exposed. - public static bool operator ==(FieldInfo left, FieldInfo right); - public static bool operator !=(FieldInfo left, FieldInfo right); public virtual void SetValue(object obj, object value); - public abstract void SetValue(object obj, object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture); - public virtual void SetValueDirect(TypedReference obj, object value); - void System.Runtime.InteropServices._FieldInfo.GetIDsOfNames(ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId); - Type System.Runtime.InteropServices._FieldInfo.GetType(); - void System.Runtime.InteropServices._FieldInfo.GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo); - void System.Runtime.InteropServices._FieldInfo.GetTypeInfoCount(out uint pcTInfo); - void System.Runtime.InteropServices._FieldInfo.Invoke(uint dispIdMember, ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr); } - public interface ICustomAttributeProvider { ^ Pallavi Taneja: We do not expose ICustomAttributeProvider, however we expose the members via extension methods via S.R.E. Hence, exposing this correctly will be difficult. - object[] GetCustomAttributes(bool inherit); - object[] GetCustomAttributes(Type attributeType, bool inherit); - bool IsDefined(Type attributeType, bool inherit); } - public enum ImageFileMachine { ^ Pallavi Taneja: Use S.R.I.RuntimeInformation instead - AMD64 = 34404, - ARM = 452, - I386 = 332, - IA64 = 512, } public class InvalidFilterCriteriaException : ApplicationExceptionException { ^ Pallavi Taneja: Used my Module and TYpe. Although Type.Filter* can't be exposed yet, we can expose Module.Filter* members. public InvalidFilterCriteriaException(); - protected InvalidFilterCriteriaException(SerializationInfo info, StreamingContext context); public InvalidFilterCriteriaException(string message); public InvalidFilterCriteriaException(string message, Exception inner); } - public interface IReflect { ^ Pallavi Taneja: Exposed in S.R.IS as used with IDispatch. - Type UnderlyingSystemType { get; } - FieldInfo GetField(string name, BindingFlags bindingAttr); - FieldInfo[] GetFields(BindingFlags bindingAttr); - MemberInfo[] GetMember(string name, BindingFlags bindingAttr); - MemberInfo[] GetMembers(BindingFlags bindingAttr); - MethodInfo GetMethod(string name, BindingFlags bindingAttr); - MethodInfo GetMethod(string name, BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers); - MethodInfo[] GetMethods(BindingFlags bindingAttr); - PropertyInfo[] GetProperties(BindingFlags bindingAttr); - PropertyInfo GetProperty(string name, BindingFlags bindingAttr); - PropertyInfo GetProperty(string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers); - object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParameters); } public abstract class MemberInfo : _MemberInfo, ICustomAttributeProvider { - protected MemberInfo(); public virtual IEnumerable CustomAttributes { get; } public abstract Type DeclaringType { get; } public abstractvirtual MemberTypes MemberType { get; } public virtual int MetadataToken { get; } public virtual Module Module { get; } public abstract string Name { get; } public abstractvirtual Type ReflectedType { get; } ^ Pallavi Taneja: Some concerns around PN implementation. public override bool Equals(object obj); - public abstract object[] GetCustomAttributes(bool inherit); ^ Pallavi Taneja: Already exposed via extensions. - public abstract object[] GetCustomAttributes(Type attributeType, bool inherit); - public virtual IList GetCustomAttributesData(); public override int GetHashCode(); - public abstract bool IsDefined(Type attributeType, bool inherit); - public static bool operator ==(MemberInfo left, MemberInfo right); ^ Pallavi Taneja: Operator overloads behave different than .Equals(). - public static bool operator !=(MemberInfo left, MemberInfo right); - void System.Runtime.InteropServices._MemberInfo.GetIDsOfNames(ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId); - Type System.Runtime.InteropServices._MemberInfo.GetType(); - void System.Runtime.InteropServices._MemberInfo.GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo); - void System.Runtime.InteropServices._MemberInfo.GetTypeInfoCount(out uint pcTInfo); - void System.Runtime.InteropServices._MemberInfo.Invoke(uint dispIdMember, ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr); } public abstract class MethodBase : MemberInfo, _MethodBase { - protected MethodBase(); public abstract MethodAttributes Attributes { get; } public virtual CallingConventions CallingConvention { get; } public virtual bool ContainsGenericParameters { get; } public bool IsAbstract { get; } public bool IsAssembly { get; } public bool IsConstructor { get; } public bool IsFamily { get; } public bool IsFamilyAndAssembly { get; } public bool IsFamilyOrAssembly { get; } public bool IsFinal { get; } public virtual bool IsGenericMethod { get; } public virtual bool IsGenericMethodDefinition { get; } public bool IsHideBySig { get; } public bool IsPrivate { get; } public bool IsPublic { get; } - public virtual bool IsSecurityCritical { get; } - public virtual bool IsSecuritySafeCritical { get; } - public virtual bool IsSecurityTransparent { get; } public bool IsSpecialName { get; } public bool IsStatic { get; } public bool IsVirtual { get; } public abstractvirtual RuntimeMethodHandle MethodHandle { get; } public virtualabstract MethodImplAttributes MethodImplementationFlags { get; } - bool System.Runtime.InteropServices._MethodBase.IsAbstract { get; } - bool System.Runtime.InteropServices._MethodBase.IsAssembly { get; } - bool System.Runtime.InteropServices._MethodBase.IsConstructor { get; } - bool System.Runtime.InteropServices._MethodBase.IsFamily { get; } - bool System.Runtime.InteropServices._MethodBase.IsFamilyAndAssembly { get; } - bool System.Runtime.InteropServices._MethodBase.IsFamilyOrAssembly { get; } - bool System.Runtime.InteropServices._MethodBase.IsFinal { get; } - bool System.Runtime.InteropServices._MethodBase.IsHideBySig { get; } - bool System.Runtime.InteropServices._MethodBase.IsPrivate { get; } - bool System.Runtime.InteropServices._MethodBase.IsPublic { get; } - bool System.Runtime.InteropServices._MethodBase.IsSpecialName { get; } - bool System.Runtime.InteropServices._MethodBase.IsStatic { get; } - bool System.Runtime.InteropServices._MethodBase.IsVirtual { get; } public override bool Equals(object obj); - [MethodImpl(NoInlining)]public static MethodBase GetCurrentMethod(); public virtual Type[] GetGenericArguments(); public override int GetHashCode(); - public virtual MethodBody GetMethodBody(); ^ Pallavi Taneja: [Not sure] Used for IL inspection. Usage ~ 1% public static MethodBase GetMethodFromHandle(RuntimeMethodHandle handle); public static MethodBase GetMethodFromHandle(RuntimeMethodHandle handle, RuntimeTypeHandle declaringType); public abstractvirtual MethodImplAttributes GetMethodImplementationFlags(); public abstract ParameterInfo[] GetParameters(); public virtual object Invoke(object obj, object[] parameters); - public abstract object Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture); ^ Pallavi Taneja: Dependency on System.Glob - public static bool operator ==(MethodBase left, MethodBase right); - public static bool operator !=(MethodBase left, MethodBase right); - void System.Runtime.InteropServices._MethodBase.GetIDsOfNames(ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId); - Type System.Runtime.InteropServices._MethodBase.GetType(); - void System.Runtime.InteropServices._MethodBase.GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo); - void System.Runtime.InteropServices._MethodBase.GetTypeInfoCount(out uint pcTInfo); - void System.Runtime.InteropServices._MethodBase.Invoke(uint dispIdMember, ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr); } - public class MethodBody { ^ Pallavi Taneja: [Not sure] IL inspection - protected MethodBody(); - public virtual IList ExceptionHandlingClauses { get; } - public virtual bool InitLocals { get; } - public virtual int LocalSignatureMetadataToken { get; } - public virtual IList LocalVariables { get; } - public virtual int MaxStackSize { get; } - public virtual byte[] GetILAsByteArray(); } public abstract class MethodInfo : MethodBase, _MethodInfo { - protected MethodInfo(); public override MemberTypes MemberType { get; } public virtual ParameterInfo ReturnParameter { get; } public virtual Type ReturnType { get; } - public abstract ICustomAttributeProvider ReturnTypeCustomAttributes { get; } ^ Pallavi Taneja: Issues with exposing ICustomAttributeProvider public virtual Delegate CreateDelegate(Type delegateType); public virtual Delegate CreateDelegate(Type delegateType, object target); public override bool Equals(object obj); public abstractvirtual MethodInfo GetBaseDefinition(); public override Type[] GetGenericArguments(); public virtual MethodInfo GetGenericMethodDefinition(); public override int GetHashCode(); public virtual MethodInfo MakeGenericMethod(params Type[] typeArguments); - public static bool operator ==(MethodInfo left, MethodInfo right); - public static bool operator !=(MethodInfo left, MethodInfo right); - void System.Runtime.InteropServices._MethodInfo.GetIDsOfNames(ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId); - Type System.Runtime.InteropServices._MethodInfo.GetType(); - void System.Runtime.InteropServices._MethodInfo.GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo); - void System.Runtime.InteropServices._MethodInfo.GetTypeInfoCount(out uint pcTInfo); - void System.Runtime.InteropServices._MethodInfo.Invoke(uint dispIdMember, ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr); } - public sealed class Missing : ISerializable { ^ Pallavi Taneja: Interop sceanrio, used in IDispatch. - public static readonly Missing Value; - void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo info, StreamingContext context); } public abstract class Module : _Module, ICustomAttributeProvider, ISerializable { public static readonly TypeFilter FilterTypeName; public static readonly TypeFilter FilterTypeNameIgnoreCase; - protected Module(); public virtual Assembly Assembly { get; } public virtual IEnumerable CustomAttributes { get; } public virtual string FullyQualifiedName { get; } public virtual int MDStreamVersion { get; } public virtual int MetadataToken { get; } - public ModuleHandle ModuleHandle { get; } ^ Pallavi Taneja: ModuleHandle is not exposed. public virtual Guid ModuleVersionId { get; } public virtual string Name { get; } public virtual string ScopeName { get; } public override bool Equals(object o); public virtual Type[] FindTypes(TypeFilter filter, object filterCriteria); - public virtual object[] GetCustomAttributes(bool inherit); - public virtual object[] GetCustomAttributes(Type attributeType, bool inherit); - public virtual IList GetCustomAttributesData(); public FieldInfo GetField(string name); public virtual FieldInfo GetField(string name, BindingFlags bindingAttr); public FieldInfo[] GetFields(); public virtual FieldInfo[] GetFields(BindingFlags bindingFlags); public override int GetHashCode(); public MethodInfo GetMethod(string name); public MethodInfo GetMethod(string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers); public MethodInfo GetMethod(string name, Type[] types); - protected virtual MethodInfo GetMethodImpl(string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers); public MethodInfo[] GetMethods(); public virtual MethodInfo[] GetMethods(BindingFlags bindingFlags); - public virtual void GetObjectData(SerializationInfo info, StreamingContext context); - public virtual void GetPEKind(out PortableExecutableKinds peKind, out ImageFileMachine machine); - public virtual X509Certificate GetSignerCertificate(); public virtual Type GetType(string className); public virtual Type GetType(string className, bool ignoreCase); public virtual Type GetType(string className, bool throwOnError, bool ignoreCase); public virtual Type[] GetTypes(); - public virtual bool IsDefined(Type attributeType, bool inherit); - public virtual bool IsResource(); - public static bool operator ==(Module left, Module right); - public static bool operator !=(Module left, Module right); public FieldInfo ResolveField(int metadataToken); public virtual FieldInfo ResolveField(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments); public MemberInfo ResolveMember(int metadataToken); public virtual MemberInfo ResolveMember(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments); public MethodBase ResolveMethod(int metadataToken); public virtual MethodBase ResolveMethod(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments); public virtual byte[] ResolveSignature(int metadataToken); public virtual string ResolveString(int metadataToken); public Type ResolveType(int metadataToken); public virtual Type ResolveType(int metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments); - void System.Runtime.InteropServices._Module.GetIDsOfNames(ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId); - void System.Runtime.InteropServices._Module.GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo); - void System.Runtime.InteropServices._Module.GetTypeInfoCount(out uint pcTInfo); - void System.Runtime.InteropServices._Module.Invoke(uint dispIdMember, ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr); public override string ToString(); } - public sealed class ObfuscateAssemblyAttribute : Attribute { ^ Pallavi Taneja: Not a reflection concept. - public ObfuscateAssemblyAttribute(bool assemblyIsPrivate); - public bool AssemblyIsPrivate { get; } - public bool StripAfterObfuscation { get; set; } } - public sealed class ObfuscationAttribute : Attribute { ^ Pallavi Taneja: Same as above.s - public ObfuscationAttribute(); - public bool ApplyToMembers { get; set; } - public bool Exclude { get; set; } - public string Feature { get; set; } - public bool StripAfterObfuscation { get; set; } } public class ParameterInfo : _ParameterInfo, ICustomAttributeProvider, IObjectReference { - protected int PositionImpl; - protected object DefaultValueImpl; - protected MemberInfo MemberImpl; - protected ParameterAttributes AttrsImpl; - protected string NameImpl; - protected Type ClassImpl; - protected ParameterInfo(); public virtual ParameterAttributes Attributes { get; } public virtual IEnumerable CustomAttributes { get; } public virtual object DefaultValue { get; } public virtual bool HasDefaultValue { get; } public bool IsIn { get; } - public bool IsLcid { get; } public bool IsOptional { get; } public bool IsOut { get; } public bool IsRetval { get; } public virtual MemberInfo Member { get; } public virtual int MetadataToken { get; } public virtual string Name { get; } public virtual Type ParameterType { get; } public virtual int Position { get; } public virtual object RawDefaultValue { get; } - public virtual object[] GetCustomAttributes(bool inherit); - public virtual object[] GetCustomAttributes(Type attributeType, bool inherit); - public virtual IList GetCustomAttributesData(); - public virtual Type[] GetOptionalCustomModifiers(); - public object GetRealObject(StreamingContext context); - public virtual Type[] GetRequiredCustomModifiers(); ^ Pallavi Taneja: [Not sure] Compiler only scenario. - public virtual bool IsDefined(Type attributeType, bool inherit); - void System.Runtime.InteropServices._ParameterInfo.GetIDsOfNames(ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId); - void System.Runtime.InteropServices._ParameterInfo.GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo); - void System.Runtime.InteropServices._ParameterInfo.GetTypeInfoCount(out uint pcTInfo); - void System.Runtime.InteropServices._ParameterInfo.Invoke(uint dispIdMember, ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr); - public override string ToString(); } - public sealed class Pointer : ISerializable { ^ Pallavi Taneja: Interop scenario. - public unsafe static object Box(void* ptr, Type type); - void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo info, StreamingContext context); - public unsafe static void* Unbox(object ptr); } public abstract class PropertyInfo : MemberInfo, _PropertyInfo { - protected PropertyInfo(); public abstract PropertyAttributes Attributes { get; } public abstract bool CanRead { get; } public abstract bool CanWrite { get; } public virtual MethodInfo GetMethod { get; } public bool IsSpecialName { get; } public override MemberTypes MemberType { get; } public abstract Type PropertyType { get; } public virtual MethodInfo SetMethod { get; } public override bool Equals(object obj); public MethodInfo[] GetAccessors(); ^ Pallavi Taneja: Get* APIs exposed via TypeExtensions public abstractvirtual MethodInfo[] GetAccessors(bool nonPublic); public virtual object GetConstantValue(); public MethodInfo GetGetMethod(); public abstractvirtual MethodInfo GetGetMethod(bool nonPublic); public override int GetHashCode(); public abstract ParameterInfo[] GetIndexParameters(); - public virtual Type[] GetOptionalCustomModifiers(); ^ Pallavi Taneja: Compiler only scenario. - public virtual object GetRawConstantValue(); - public virtual Type[] GetRequiredCustomModifiers(); public MethodInfo GetSetMethod(); public abstractvirtual MethodInfo GetSetMethod(bool nonPublic); public object GetValue(object obj); public virtual object GetValue(object obj, object[] index); - public abstract object GetValue(object obj, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture); ^ Pallavi Taneja: CultureInfo dependency. - public static bool operator ==(PropertyInfo left, PropertyInfo right); - public static bool operator !=(PropertyInfo left, PropertyInfo right); public void SetValue(object obj, object value); public virtual void SetValue(object obj, object value, object[] index); - public abstract void SetValue(object obj, object value, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture); - void System.Runtime.InteropServices._PropertyInfo.GetIDsOfNames(ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId); - Type System.Runtime.InteropServices._PropertyInfo.GetType(); - void System.Runtime.InteropServices._PropertyInfo.GetTypeInfo(uint iTInfo, uint lcid, IntPtr ppTInfo); - void System.Runtime.InteropServices._PropertyInfo.GetTypeInfoCount(out uint pcTInfo); - void System.Runtime.InteropServices._PropertyInfo.Invoke(uint dispIdMember, ref Guid riid, uint lcid, short wFlags, IntPtr pDispParams, IntPtr pVarResult, IntPtr pExcepInfo, IntPtr puArgErr); } - public class StrongNameKeyPair : IDeserializationCallback, ISerializable { ^ Pallavi Taneja: Is System.Reflection the right place for this? - public StrongNameKeyPair(byte[] keyPairArray); - public StrongNameKeyPair(FileStream keyPairFile); - protected StrongNameKeyPair(SerializationInfo info, StreamingContext context); - public StrongNameKeyPair(string keyPairContainer); - public byte[] PublicKey { get; } - void System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(object sender); - void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo info, StreamingContext context); } - public class TypeDelegator : TypeInfo { ^ Pallavi Taneja: Used in extension scenarios. - protected Type typeImpl; - protected TypeDelegator(); - public TypeDelegator(Type delegatingType); - public override Assembly Assembly { get; } - public override string AssemblyQualifiedName { get; } - public override Type BaseType { get; } - public override string FullName { get; } - public override Guid GUID { get; } - public override bool IsConstructedGenericType { get; } - public override int MetadataToken { get; } - public override Module Module { get; } - public override string Name { get; } - public override string Namespace { get; } - public override RuntimeTypeHandle TypeHandle { get; } - public override Type UnderlyingSystemType { get; } - protected override TypeAttributes GetAttributeFlagsImpl(); - protected override ConstructorInfo GetConstructorImpl(BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers); - public override ConstructorInfo[] GetConstructors(BindingFlags bindingAttr); - public override object[] GetCustomAttributes(bool inherit); - public override object[] GetCustomAttributes(Type attributeType, bool inherit); - public override Type GetElementType(); - public override EventInfo GetEvent(string name, BindingFlags bindingAttr); - public override EventInfo[] GetEvents(); - public override EventInfo[] GetEvents(BindingFlags bindingAttr); - public override FieldInfo GetField(string name, BindingFlags bindingAttr); - public override FieldInfo[] GetFields(BindingFlags bindingAttr); - public override Type GetInterface(string name, bool ignoreCase); - public override InterfaceMapping GetInterfaceMap(Type interfaceType); - public override Type[] GetInterfaces(); - public override MemberInfo[] GetMember(string name, MemberTypes type, BindingFlags bindingAttr); - public override MemberInfo[] GetMembers(BindingFlags bindingAttr); - protected override MethodInfo GetMethodImpl(string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers); - public override MethodInfo[] GetMethods(BindingFlags bindingAttr); - public override Type GetNestedType(string name, BindingFlags bindingAttr); - public override Type[] GetNestedTypes(BindingFlags bindingAttr); - public override PropertyInfo[] GetProperties(BindingFlags bindingAttr); - protected override PropertyInfo GetPropertyImpl(string name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers); - protected override bool HasElementTypeImpl(); - public override object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParameters); - protected override bool IsArrayImpl(); - public override bool IsAssignableFrom(TypeInfo typeInfo); - protected override bool IsByRefImpl(); - protected override bool IsCOMObjectImpl(); - public override bool IsDefined(Type attributeType, bool inherit); - protected override bool IsPointerImpl(); - protected override bool IsPrimitiveImpl(); - protected override bool IsValueTypeImpl(); } } ``` +5386 area-System.Net Add netcore50 configuration to System.Net.Primitives Also consolidate the net46 project in the 'facade' directory down into the root project file. @davidsh , @CIPop , @weshaggard +5388 area-System.Net Disable two more NegotiateStream tests These have also been taking out multiple builds. I'm assuming it's the same cause as the other ones on this type and have as such associated it with the same issue. cc: @cipop, @davidsh +5389 area-Serialization Improve XmlSerializer.FromTypes Review comments in https://github.com/dotnet/corefx/pull/5384 and see if we need to make any changes. +5391 area-System.Net Add netcore50 and net46 configurations for System.Net.Sockets @davidsh , @CIPop , @weshaggard +5394 area-Serialization Fix serialization of _syncRoot field so behavior aligns with Desktop This is to revert back the change made a while ago regarding serializing of object property to make sure compatibility with Desktop for types with private _syncRoot field. Some types with private field _syncRoot of type object on Desktop prevent the serialization of this field by using [NonSerializable] attribute. Because this attribute doesn't exist in NetCore/NetNative, we skip the serialization of object type altogether to ensure consistent payload and serialization-deserialization among the platforms. Related issue #4595 @shmao @SGuyGe @zhenlan +5395 area-System.Net Add netcore50 support to System.Net.WebSockets.Client library cc @mellinoe @CIPop @davidsh +5396 area-System.Net Eliminate unnecessary GC handle allocations in Unix Sockets implementation Replaces GC handle allocation with a pinned local, in the cases where we are pinning a single buffer over a statically-scoped region. This should have significantly lower runtime overhead. @stephentoub, @pgavlin +5397 area-System.Net Test fails to verify client.ImpersonationLevel: System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Authentication_EmptyCredentials_Fails() MESSAGE: Assert.True() Failure\r\nExpected: True\r\nActual: False +++++++++++++++++++ STACK TRACE: at System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Authentication_EmptyCredentials_Fails() in d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\tests\FunctionalTests\NegotiateStreamStreamToStreamTest.cs:line 155 This is: Assert.Equal(TokenImpersonationLevel.Identification, client.ImpersonationLevel); +5398 area-Serialization Fix serialization of recursive collections in data contract serializers This is a port of a change-set from Desktop to fix the stack overflow issue when serializing recursive collections. The new behavior is to throw exception whenever they are recognized because serialization of them is not supported. @shmao @SGuyGe @zhenlan +5401 area-System.Net Test failure in NegotiateStream_StreamToStream_Authentication_TargetName_Success http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/924/testReport/junit/System.Net.Security.Tests/NegotiateStreamStreamToStreamTest/NegotiateStream_StreamToStream_Authentication_TargetName_Success/ Appears that there was a timeout during the handshake. ``` Stacktrace MESSAGE: Handshake completed in the allotted time\r\nExpected: True\r\nActual: False +++++++++++++++++++ STACK TRACE: at System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Authentication_TargetName_Success() in d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\tests\FunctionalTests\NegotiateStreamStreamToStreamTest.cs:line 92 ``` +5404 area-Serialization Fix serialization of get-only IEnumerable to throw exception Porting a fix from Desktop. Deserialization of get-only IEnumerable collection is not supported. This change fixes the NRE by throwing exception earlier in the deserialization process. @shmao @SGuyGe @zhenlan +5405 area-System.Net Add netcore50 configuration for System.Net.NameResolution Also consolidated the existing net46 facade configuration into the root-level project file, and deleted the facade folder. @davidsh, @cipop, @weshaggard +5406 area-System.IO IsoStore: Packaging for libraries that only support a single platform Today if a package only targets a single platform our packaging infrastructure still requires a `dotnetX.Y` reference assembly. We should relax this requirement since it doesn't make sense, packages should only use `dotnetX.Y` if they need to be portable to more than one platform. Sample packages: System.IO.IsolatedStorage System.Runtime.Loader An alternate solution here would be to tweak these implementations to work on more than one platform and package them as dotnet implementations. +5410 area-Serialization XML reading issue with Binary Reader: certain string content lengths can't be read The issue has been fixed on Desktop. We should port the fix to corefx. +5411 area-System.Net UDP tests fail with timeout sending/receiving data over loopback http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_release_prtest/956/consoleFull ``` 17:49:39 System.Net.Sockets.Tests.SendReceive.SendToRecvFromAsync_UdpClient_Single_Datagram_UDP_IPv4 [FAIL] 17:49:39 Assert.True() Failure 17:49:39 Expected: True 17:49:39 Actual: False 17:49:39 Stack Trace: 17:49:39 d:\j\workspace\dotnet_corefx\windows_nt_release_prtest\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs(192,0): at System.Net.Sockets.Tests.SendReceive.SendToRecvFromAsync_UdpClient_Datagram_UDP(IPAddress leftAddress, IPAddress rightAddress) ``` +5412 area-System.Net NegotiateStream_StreamToStream_Authentication_EmptyCredentials_Fails failed on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_release_prtest/942/consoleFull ``` 15:42:24 System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Authentication_EmptyCredentials_Fails [FAIL] 15:42:24 Assert.True() Failure 15:42:24 Expected: True 15:42:24 Actual: False 15:42:24 Stack Trace: 15:42:24 d:\j\workspace\dotnet_corefx\windows_nt_release_prtest\src\System.Net.Security\tests\FunctionalTests\NegotiateStreamStreamToStreamTest.cs(156,0): at System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Authentication_EmptyCredentials_Fails() ``` +5414 area-System.Data System.Data.ProviderBase.DbConnectionFactory.s_pendingOpenNonPooledNext careless manipulation System.Data.ProviderBase.DbConnectionFactory.s_pendingOpenNonPooledNext is declared as `static int` which means it is signed and retains its value for very long. Here's the only place where it's manipulated: ``` idx = s_pendingOpenNonPooledNext++ % s_pendingOpenNonPooled.Length; ``` If `pendingOpenNonPooledNext == Int32.MaxValue` then one of the following will happen. If code runs in unchecked context then the variable overflows. Then depending on `s_pendingOpenNonPooled.Length` value `%` may yield a negative value and later array access results in exception. If code runs in checked context then an exception is thrown immediately. This variable should be unsigned (`uint` would do). The `++` operation should be wrapped in `unchecked {}` so that it surely causes an overflow, not an exception. +5415 area-System.Data as used instead of cast in System.Data.SqlClient.SqlConnection.TryOpen() "System.Data.SqlClient.SqlConnection.TryOpen() goes like this: ``` var tdsInnerConnection = (InnerConnection as SqlInternalConnectionTds); Debug.Assert(tdsInnerConnection.Parser != null, ""Where's the parser?""); if (!tdsInnerConnection.ConnectionOptions.Pooling) ``` If for any stupid reason `InnerConnection` cannot be cast to `SqlInternalConnectionTds` then `as` yields a null reference and later code yields a NullReferenceException. This causes error hiding. A cast would be better - an InvalidCastException would be thrown which would be much clearer. " +5416 area-System.Linq EnumerableQuery stack-overflow on Block or Conditional that is not of queryable type E.g. ``` C# Enumerable.Empty().AsQueryable().Provider.Execute( Expression.Condition( Expression.Constant(true), Expression.Return(target, Expression.Constant(3)), Expression.Return(target, Expression.Constant(1)) ) ); Enumerable.Empty().AsQueryable().Provider.Execute( Expression.Block( Expression.Return(target, Expression.Constant(2)), Expression.Label(target, Expression.Default(typeof(int))) ) ); ``` Both go into infinite recursion and overflow the stack. While non-queryable-type expressions aren't likely in this context, they could still be used and of course could be sub-expressions of a queryable-type expression. +5419 area-System.Net Augment GlobalLog.Assert* call sites in System.Net "The ""temporary"" part 1 of https://github.com/dotnet/corefx/issues/5265 until a better logging solution can be put in place. 1. Removed the ""bool globalLogEnabled = GlobalLog.IsEnabled"" that had been used previously. 2. Added Debug.Fail calls at all GlobalLog.Assert\* call sites. cc: @cipop, @davidsh, @josguil " +5420 area-Infrastructure Builds files don't handle 'unix' bins correctly IL libraries in corefx tend to take one of 3 shapes. 1. Single cross-platform library. 2. Windows/Unix library. 3. Windows/Linux/OSX library. Right now we don't handle 2 correctly in the builds files. Instead of treating them as OSGroup=Unix and building on both Linux and OSX they use OSGroup=linux and only build on Linux. /cc @weshaggard @stephentoub +5422 area-Infrastructure [Bug] Portable Class Library compilation gets broken when a target is _removed_ "Filing on behalf of @dsaf from https://github.com/dotnet/coreclr/issues/2651: Steps to reproduce: 1) Create a new PCL project targeting .NET 4.5, Win 8 and SL 5 (Profile47) 2) Change `Class1.cs` to following code (notice it compiles): ``` csharp public class Class1 { private void Test() { IConvertible test; } } ``` 3) Disable SL 5 target in project settings, notice a message _""The following will be automatically targeted because they support the same set of portable APIs: ASP.NET Core 5.0""_. Project changes to Profile7 4) Compilation is now broken: _""CS0246 The type or namespace name 'IConvertible' could not be found (are you missing a using directive or an assembly reference?)""_ The code could be relying on value types inheriting `IConvertible` as well, so it needs the interface. There are likely to be other similar breaking changes around Reflection APIs. Effectively there seems to be a bug in some piece of code that tells that a set of portable APIs is common when in fact it is not. I don't know where it is: in PCL profile configuration, Visual Studio or .NET Framework. Removing a target should not be a breaking change. " +5423 area-System.IO [Performance] System.IO.Compression: Increase range of test scenarios As part of resolving https://github.com/dotnet/corefx/issues/4475 and https://github.com/dotnet/corefx/issues/3986 we should add more reusable test assets that cover scenarios other than random or semi-random files. One option would be to look into including the Canterbury/Calgary corpus in the Compression.Testdata nuget package. +5424 area-Infrastructure Enable the stack-protector compiler option for all corefx native code on Unix We need to make this change for corefx: https://github.com/dotnet/coreclr/pull/2616/files +5426 area-System.Net Ensure error handling is properly checking the last error in Sockets See https://github.com/dotnet/corefx/pull/5419#issuecomment-171752102. +5428 area-System.Runtime Add Environment.MachineName to .NET Core. In reference to #4306 The implementation is not provided for .NET Native, and will be documented in `AppCompatBaseLine.txt`. The win32 api `GetComputerName` is not available for Store profile, will be implementing this for .NET Native when there are relevant win32 apis that can be used. cc @joshfree +5430 area-System.Diagnostics DirectoryNotFoundException from TestGetProcessesByName in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/centos7.1_debug_tst_prtest/814/console ``` 13:02:00 System.Diagnostics.Tests.ProcessTests.TestGetProcessesByName [FAIL] 13:02:00 System.IO.DirectoryNotFoundException : Could not find a part of the path '/proc/49303/task/'. 13:02:00 Stack Trace: 13:02:00 at System.IO.UnixFileSystem.FileSystemEnumerable`1.OpenDirectory(String fullPath) 13:02:00 at System.IO.UnixFileSystem.FileSystemEnumerable`1.Enumerate() 13:02:00 at System.IO.UnixFileSystem.FileSystemEnumerable`1..ctor(String userPath, String searchPattern, SearchOption searchOption, SearchTarget searchTarget, Func`3 translateResult) 13:02:00 at System.IO.UnixFileSystem.EnumeratePaths(String path, String searchPattern, SearchOption searchOption, SearchTarget searchTarget) 13:02:00 at System.IO.Directory.EnumerateDirectories(String path) 13:02:00 at System.Diagnostics.ProcessManager.CreateProcessInfo(ParsedStat procFsStat, ReusableTextReader reusableReader) 13:02:00 at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName) 13:02:00 at System.Diagnostics.Process.GetProcessesByName(String processName) 13:02:00 at System.Diagnostics.Tests.ProcessTests.TestGetProcessesByName() ``` +5432 area-Infrastructure ./init-tools.sh fails on OSX I am getting an error on OSX ``` ./init-tools.sh: line 39: wget: command not found ``` We should be using curl instead, since it is installed by default and we already need libcurl to build the native components in corefx. +5434 area-Infrastructure Installing dotnet cli during the build shows Windows dialog (with files being copied) As in the subject +5436 area-System.Net TcpClient Has some issues on Mac with coreclr here is a test app: https://github.com/zhili1208/coreclrMacTcpTest Server side just listens and print incoming string, client side just connect to server and send string. On Mac, when I start client, it just hang or the string from server is null. only happens with coreclr 1.0.0-rc1-update1, works well on mono. +5440 area-Serialization Add serialization negative tests for different collections of same type as KnownTypes Add serialization negative tests for scenario when different collection types are provided through KnowType attribute but they're seen as the same type within serialization. @shmao @SGuyGe @zhenlan +5441 area-System.Net Clean up Unix Domain Sockets example - Separate the type out into its own file, to make it easier for others to consume - Fix a bug that prohbited it from being used with Accept (removed min length validation in ctor) - Added a test that does Connect/Accept and Send/Receive - A few other cleanups in the existing tests As a follow-on to https://github.com/dotnet/corefx/pull/5051, fixes #4588. cc: @IlyaBiryukov, @pgavlin, @ericeil +5443 area-Infrastructure Capture the log files in failed CI runs https://github.com/dotnet/dotnet-ci/blob/8e3c2c86f3b9f6edcd1a1e0aafe8cc8ea5a1cad4/jobs/generation/Utilities.groovy#L379 We currently only capture the log file for jobs when the pass but there are a lot of time we really need to full log for failed jobs. We should see if we can conditionally always archive the log file or find another way to capture the log, even perhaps dumping to the console as part of the CI. cc @mmitche +5444 area-Infrastructure Switch to users wide package cache Today we scope our packages to the repo which gives us isolation but it causes things like CI jobs to always have to download these package every time, which cost time and add extra unnecessary reliability issues. For local devs it also costs in disk space because ever instance of this repo or our sister repo's has their own cache which causes a lot of duplication. We should find a good user wide cache directory, perhaps just use the default location that nuget/dnu use. +5445 area-Serialization Remove unnecessary access checks in data contract serializers Internal private member access doesn't require InternalsVisibleTo attribute anymore. In addition to that, implementation of DataConractSerializer and DataContractJsonSerializer have been consolidated into one assembly so there is no need to check for access visibility to System.ServiceModel.Web which no longer exists. This is porting a change from full Desktop to clean up the unnecessary checks for assembly by name patterns. @shmao @SGuyGe @zhenlan +5449 area-System.Linq ForRef and MapRef extension method for array It is an easy implement to let foreach for reference in array I want it to be included in official System.Linq library ```c# public delegate void RefAction(ref T item); public static T[] ForRef(this T[] array,RefAction action) { int i = 0; while(i < array.Length) { action(ref array[i]); i++; } return array; /// return self to chain with Linq } public delegate void RefFunction(ref T item,out R obj); public static R[] MapRef(this T[] array,RefFunction func) { int i = 0; var res = new R[array.Length]; while(i < array.Length) { func(ref array[i],out res[i]); i++; } return res; } ``` Also it could be great if this pattern also allowed in Dictionary and List I want to discus first then I may create a fork and pull request by myself +5450 area-System.Data System.Data.SqlClient.SqlCommand.Prepare() calls SqlStatistics.StopTimer() outside finally block All methods of `System.Data.SqlClient.SqlCommand` which call `SqlStatistics.StartTimer()` go like this: ``` SqlStatistics statistics = null; try { statistics = SqlStatistics.StartTimer(Statistics); doSomethingUseful(); } finally { SqlStatistics.StopTimer(statistics); } ``` but `SqlCommand.Prepare()` does not follow that pattern - it contains `StopTimer()` call outside `finally` so `StopTimer()` is not guaranteed to run should useful code throw an exception. +5452 area-System.Data System.Data.SqlClient.SqlConnection.Open()/OpenAsync() code duplication "Both `System.Data.SqlClient.SqlConnection.Open()` and `System.Data.SqlClient.SqlConnection.OpenAsync()` contain this code ``` if (StatisticsEnabled) { if (null == _statistics) { _statistics = new SqlStatistics(); } else { _statistics.ContinueOnNewConnection(); } } ``` which performs something non-trivial which looks like preparing the ""statistics"" object for the new session. I assume the two pieces of code must be in sync at all times yet these eleven lines of code are duplicated without any explanation. This should either be documented or just extracted into a separate method. " +5453 area-Meta Create a versioning document to clarify how we version assemblies and packages We have a doc internally. I need to update it and publish it. +5458 area-System.IO System.IO.Compression: Make the ZLib BestCompression 6 CompressionLevel 6 is what we used to use and we changed it in #4589 because we didn't see any perf regressions in doing so. With more testing, it has become clear that moving from 6 to 9 severely hurt perf in some scenarios so it's being reverted back to 6. resolves #4475 @stephentoub @eerhardt @bjjones Perf results coming in subsequent comments. +5459 area-System.IO "Three ""unicode"" System.IO.Compression.ZipFile tests are failing on Unix" "We currently have the following tests not running on Unix: https://github.com/dotnet/corefx/blob/master/src/System.IO.Compression.ZipFile/tests/ZipFileConvenienceMethods.cs#L17 https://github.com/dotnet/corefx/blob/master/src/System.IO.Compression.ZipFile/tests/ZipFileConvenienceMethods.cs#L69 https://github.com/dotnet/corefx/blob/master/src/System.IO.Compression.ZipFile/tests/ZipFileConvenienceMethods.cs#L165 with code like the following: ``` C# if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) // [ActiveIssue(846, PlatformID.AnyUnix)] { await TestCreateDirectory(zfolder(""unicode""), true); } ``` Since #846 has been closed, we need to investigate these tests and figure out why they aren't passing on Unix. " +5460 area-System.Collections Investigate and fix System.Collections tests marked with ActiveIssue #846 Currently there are 6 tests in System.Collections.Tests and System.Collections.NonGeneric.Tests that are marked with ActiveIssue #846, but #846 has been implemented and closed. We should investigate these tests and find out why they are failing. https://github.com/dotnet/corefx/blob/c02d33b18398199f6acc17d375dab154e9a1df66/src/System.Collections/tests/Generic/SortedList/Constructor_IDictionary_ComparisonType.cs#L309 https://github.com/dotnet/corefx/blob/c02d33b18398199f6acc17d375dab154e9a1df66/src/System.Collections/tests/Generic/SortedList/Constructor_IDictionary_IKeyComparer.cs#L204 https://github.com/dotnet/corefx/blob/c02d33b18398199f6acc17d375dab154e9a1df66/src/System.Collections/tests/Generic/SortedList/Constructor_IKeyComparer.cs#L178 https://github.com/dotnet/corefx/blob/c02d33b18398199f6acc17d375dab154e9a1df66/src/System.Collections/tests/Generic/SortedList/Constructor_int_ComparisonType.cs#L152 https://github.com/dotnet/corefx/blob/c02d33b18398199f6acc17d375dab154e9a1df66/src/System.Collections/tests/Generic/SortedList/Constructor_int_IKeyComparer.cs#L196 https://github.com/dotnet/corefx/blob/c02d33b18398199f6acc17d375dab154e9a1df66/src/System.Collections.NonGeneric/tests/Comparer/Comparer_CaseInsensitive.cs#L115 +5461 area-System.Net Disabling System.Net intermittently failing tests - Disabling failing tests based on reported bugs. - Adding new tests that repro reported issues. - Fixing System.Net.Security.Tests.csproj. @davidsh @stephentoub @ericeil PTAL +5462 area-System.Xml System.Xml.Tests.XmlConvertTests.ToTypeTests failing on Unix The XmlConvertTests.ToTypeTests is currently failing on Unix https://github.com/dotnet/corefx/blob/c02d33b18398199f6acc17d375dab154e9a1df66/src/System.Xml.ReaderWriter/tests/XmlConvert/XmlConvertTests.cs#L57 We should investigate this test and figure out why it is failing. +5463 area-System.Globalization Investigate failing System.Globalization.Tests on Unix There are a number of tests under https://github.com/dotnet/corefx/tree/c02d33b18398199f6acc17d375dab154e9a1df66/src/System.Globalization/tests that are disabled against #846. However, #846 has been implemented and closed. We should investigate these tests and figure out why they are still failing on Unix. +5468 area-Serialization Revert the removed lines to fix build break in NetNative These were removed as part of https://github.com/dotnet/corefx/pull/5404. However they are needed for NetNative. So revert this change to fix NetNative build break. @shmao @SGuyGe +5469 area-System.Globalization TimeZoneInfo FindById behaves differently before and after calling GetSystemTimeZones on Unix "See the third issue listed here: https://github.com/dotnet/coreclr/issues/2185 > Zones usually in the ""backward"" file behave inconsistently. If you call GetSystemTimeZones() before requesting them by ID, only zone.tab is loaded and the old zone ID can't be used. If you call FindSystemTimeZoneById before calling GetSystemTimeZones() , the zone is loaded from its file, and a later call to GetSystemTimeZones() will include the ID. Sample zone for this behaviour: America/Atka . I can understand the zone either never being available, or being available through FindSystemTimeZoneById but never advertized by GetSystemTimeZones() , but the current behaviour is really unpleasant. Here is the code to illustrate the problem: ``` C# // Uncomment these lines to show False and then an exception... // var atkaPresent = TimeZoneInfo.GetSystemTimeZones().Select(zone => zone.Id).Contains(""America/Atka""); // Console.WriteLine(atkaPresent); var atka = TimeZoneInfo.FindSystemTimeZoneById(""America/Atka""); Console.WriteLine(atka.Id); ``` " +5471 area-Infrastructure Remove workaround from System.Runtime.Loader package Related: https://github.com/dotnet/corefx/issues/5406 I updated the generation mapping for DNXCore50 to 5.6 in NuGet. When our validation task picked up this change it saw that the minimum generation supported by all platforms is now 5.6. As a result it produced an error saying that we should update the reference assembly to 5.6 as well. The problem is that not everyone consuming this package is using the latest nuget. For now we will workaround this by duplicating the reference in the dncore50 folder. This issue is tracking removal of that workaround. +5472 area-System.Net Improve Unix synchronous socket perf "Synchronous operations on sockets are currently always emulated in terms of async/non-blocking operations. This has quite a lot of run-time overhead, due to extra system calls, context switches, etc. With this change we keep the socket in ""blocking"" mode until the user requests non-blocking mode _or_ initiates an asynchronous operation. The result is that a socket that only ever experiences synchronous operations will not have the overhead of emulating sync over async. " +5473 area-System.Net Fix GetHostByName_HostName_GetHostByAddr test I couldn't repro the original failure mentioned, and instead got a deterministic failure on every execution. I've fixed that, and was able to run the test 10,000 times on both Windows and Linux without failure. Fixes https://github.com/dotnet/corefx/issues/2894 (the remainder of the mentioned issues were already addressed). cc: @cipop, @ericeil +5474 area-System.Runtime Provide a generic API to read from and write to a pointer C# doesn't support pointer operations on generic types. We can, however, express them in IL. A prototype could like this: ``` C# public static class Unsafe { [MethodImpl(MethodImplOptions.AggressiveInlining)] public static T Read(void * p) { // Can't be expressed in C#, thus in IL: ldarg.0 ldobj !!T ret } [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void Write(void * p, T value) { // Can't be expressed in C#, thus in IL: ldarg.0 ldarg.1 stobj !!T ret } } ``` This would also solve issues like #5202 without any additional work. +5478 area-Serialization Fix serialization in NetNative to throw exception for get-only IEnumerable collection For IEnumerable get-only collection deserialization is not supported because there is no Add method to populate the collection. In this scenario, the NetNative sgen will not initialize the delegate to read them so we should throw meaningful exception when that happens. This change only affects NetNative. The fix for NetCore has been merged in https://github.com/dotnet/corefx/pull/5404 @shmao @SGuyGe @zhenlan +5479 area-System.IO GZipStream throws an exception on creation since 5.0.1-rc2-23614 "I cannot get any version past 5.0.1-rc2-23614 to work when calling the following code. ``` public Task CompressAsync(byte[] uncompressedData) { return Task.Run(() => { using (MemoryStream compressedMemoryStream = new MemoryStream()) { using (GZipStream zipStream = new GZipStream(compressedMemoryStream, CompressionMode.Compress, true)) { zipStream.Write(uncompressedData, 0, uncompressedData.Length); } return compressedMemoryStream.ToArray(); } }); } ``` Receives the following exception: ``` System.IO.Compression.ZLibException was unhandled by user code HResult=-2146232800 Message=The underlying compression routine could not be loaded correctly. Source=System.IO.Compression ZLibContext="""" ZLibErrorCode=0 ZLibErrorMessage="""" StackTrace: at System.IO.Compression.Deflater.DeflateInit(CompressionLevel compressionLevel, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.Deflater..ctor(CompressionLevel compressionLevel, Int32 windowBits) at System.IO.Compression.DeflateStream.InitializeDeflater(Stream stream, Boolean leaveOpen, Int32 windowBits, CompressionLevel compressionLevel) at System.IO.Compression.DeflateStream..ctor(Stream stream, CompressionMode mode, Boolean leaveOpen, Int32 windowBits) at System.IO.Compression.GZipStream..ctor(Stream stream, CompressionMode mode, Boolean leaveOpen) at CCC.Core.Framework.Compression.GZipCompressor.<>c__DisplayClass1_0.b__0() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.Execute() InnerException: HResult=-2146233052 Message=Unable to load DLL 'clrcompression.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) Source=System.IO.Compression TypeName="""" StackTrace: at Interop.zlib.deflateInit2_(Byte* stream, Int32 level, Int32 method, Int32 windowBits, Int32 memLevel, Int32 strategy, Byte* version, Int32 stream_size) at Interop.zlib.DeflateInit2_(ZStream& stream, CompressionLevel level, CompressionMethod method, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.ZLibNative.ZLibStreamHandle.DeflateInit2_(CompressionLevel level, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.Deflater.DeflateInit(CompressionLevel compressionLevel, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) InnerException: ``` " +5480 area-Meta Add documentation for porting, triage, and issue bar This also includes some boiler plate for the roadmap for post-RTM, but it's not fully done yet. However, I believe it's better to get the parts in we already have, then waiting for the complete set. @weshaggard @KrzysztofCwalina @richlander @bleroy +5481 area-System.IO Remove SecurityTransparentAttribute from the Open Compression [this TFS commit](https://github.com/dotnet/corefx/commit/15f47efe119b17032a661f752248ae1fcc172bf3) added an assembly tag to both the open and desktop builds that was previously only in the desktop build. The inclusion to the Open build is causing an upstream failure https://github.com/dotnet/corefx/issues/5380. This PR moves the Security tag inclusion to only be used on the net46 build. @weshaggard @stephentoub @troydai +5482 area-Serialization Port from desktop .NET: Performance improvement for XmlUTF8TextReader when reading invalid chars The desktop code can be found at: http://referencesource.microsoft.com/#System.Runtime.Serialization/System/Xml/XmlUTF8TextReader.cs,c4ce4aec957c3cd6 +5484 area-System.Net Detect Keep-Alive failures In desktop CLR, it is fairly straightforward to detect a keep-alive failure using `WebExceptionStatus.KeepAliveFailure`. I have yet to find any equivalent in CoreCLR. It seems that even the PAL in System.Net.Requests only detects name resolution failures. I have specific processing for keep-alive failures in an application that I am porting to CoreCLR and I am not seeing how I can do that on CoreCLR. Is there a way? Or will there be a way? +5485 area-System.Net PostEmptyContentUsingChunkedEncoding_Success failed on Windows The server returned an invalid or unrecognized response... I assume this is just some sort of intermittent infrastructure issue, but opening an issue just in case. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/1092/consoleFull ``` 09:59:40 System.Net.Http.Functional.Tests.PostScenarioTest.PostEmptyContentUsingChunkedEncoding_Success(serverUri: http://corefx-net.cloudapp.net/Echo.ashx) [FAIL] 09:59:40 System.Net.Http.HttpRequestException : An error occurred while sending the request. 09:59:40 ---- System.IO.IOException : The write operation failed, see inner exception. 09:59:41 -------- System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response 09:59:41 Stack Trace: 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 09:59:41 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Http\tests\FunctionalTests\PostScenarioTest.cs(152,0): at System.Net.Http.Functional.Tests.PostScenarioTest.d__21.MoveNext() 09:59:41 --- End of stack trace from previous location where exception was thrown --- 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 09:59:41 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Http\tests\FunctionalTests\PostScenarioTest.cs(62,0): at System.Net.Http.Functional.Tests.PostScenarioTest.d__11.MoveNext() 09:59:41 --- End of stack trace from previous location where exception was thrown --- 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:59:41 --- End of stack trace from previous location where exception was thrown --- 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:59:41 --- End of stack trace from previous location where exception was thrown --- 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:59:41 ----- Inner Stack Trace ----- 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:59:41 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() 09:59:41 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestStream.cs(160,0): at System.Net.Http.WinHttpRequestStream.d__25.MoveNext() 09:59:41 --- End of stack trace from previous location where exception was thrown --- 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:59:41 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() 09:59:41 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(1324,0): at System.Net.Http.WinHttpHandler.d__126.MoveNext() 09:59:41 --- End of stack trace from previous location where exception was thrown --- 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:59:41 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:59:41 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() 09:59:41 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(835,0): at System.Net.Http.WinHttpHandler.d__101.MoveNext() ``` +5487 area-System.Threading TestOutputAvailableAsyncAfterTryReceiveAll failed in CI ``` 18:53:36 System.Threading.Tasks.Dataflow.Tests.BufferBlockTests.TestOutputAvailableAsyncAfterTryReceiveAll [FAIL] 18:53:36 Assert.True() Failure 18:53:36 Expected: True 18:53:36 Actual: False 18:53:36 Stack Trace: 18:53:36 d:\j\workspace\dotnet_corefx\outerloop_windows_nt_debug\src\System.Threading.Tasks.Dataflow\tests\Dataflow\BufferBlockTests.cs(338,0): at System.Threading.Tasks.Dataflow.Tests.BufferBlockTests.d__14.MoveNext() 18:53:36 --- End of stack trace from previous location where exception was thrown --- 18:53:36 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 18:53:36 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 18:53:36 --- End of stack trace from previous location where exception was thrown --- 18:53:36 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 18:53:36 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 18:53:36 --- End of stack trace from previous location where exception was thrown --- 18:53:36 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 18:53:36 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +5488 area-System.Net SslStream ReadAsync/WriteAsync end up Sync Symptom: https://github.com/aspnet/KestrelHttpServer/issues/569 `SslStream` doesn't override `Stream`'s `ReadAsync`/`WriteAsync` methods which means they call the default implementation which is a wrapper on `Stream`'s `BeginRead` and `EndRead` etc. `BeginRead` eventually ends up calling the underlying stream's synchronous `Read` method. If the stream it wraps is completely async; then its sync read may wait on a `.GetAwaiter().GetResult()` of its async read/write. At which point you have Async->Sync->Async.Wait() and things go bad... First guess would be `SslStream` should additionally override ``` csharp public override Task ReadAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) { return _sslState.SecureStream.ReadAsync(buffer, offset, count, cancellationToken); } public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken token) { return _sslState.SecureStream.WriteAsync(buffer, offset, count, token); } ``` but there may be more to it. +5491 area-System.Net SslStream override stream's async methods Rather than using Streams default implementation which end up calling the sync methods. Resolves #5488 +5495 area-Infrastructure AssemblyLoadContext broken in build 23714 "Hello again, While upgrading to build 23715 from 23712, I encountered this error when building our project that implements the `AssemblyLoadContext`: ``` error CS1069: The type name 'AssemblyLoadContext' could not be found in the namespace 'System.Runtime.Loader'. This type has been forwarded to assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' Consider adding a reference to that assembly. ``` 23712 and 23713 work, 23714 and 23715 do not. Relevant `project.json` excerpt: ``` json ""dependencies"": { ""NETStandard.Library"": ""1.0.0-rc2-23715"", ""System.Runtime.Loader"": ""4.0.0-rc2-23714"" }, ""frameworks"": { ""dnxcore50"": { } } ``` The code is implementing the abstract class `AssemblyLoadContext`, but I cannot provide it here due to the usual reasons, though I can give access now to MSFT employees if you ping me. Ubuntu 14.04 using `dotnet-cli`. Thanks, Andy " +5497 area-System.Data System.Data.SqlClient.SqlConnection.PermissionDemand() method name doesn't match what it does "There's `System.Data.SqlClient.SqlConnection.PermissionDemand()` method which actually checks whether the connection strings are proper set. That doesn't sound like ""permission demand"" at all. " +5498 area-System.Data "System.Data.SqlClient has code with variable name mistyped as ""outter""" `System.Data.SqlClient.SqlConnection.RegisterForConnectionCloseNotification()` has one parameter called `outter`. There're others which can be found with good old text search. +5500 area-System.Net Interop Layer for supporting xplat NegotiateStream Introducing native shims for libgssapi in order to support NegotiateStream +5501 area-System.Data Where is SqlCommandBuilder class ? Should be in System.Data.SqlClient assembly. If where no plans implementing it please give a hint how to retrieve stored procedure parameter information (SqlCommandBuilder.DeriveParameters) . Thanks +5502 area-System.Data System.Data.SqlClient.SqlInternalConnectionTds constructor purges original call stack when rethrowing an exception `System.Data.SqlClient.SqlInternalConnectionTds` currently goes like this: ``` try { OpenLoginEnlist(timeout, connectionOptions, redirectedUserInstance); break; } catch (SqlException sqlex) { if (something) { throw sqlex; } ``` `throw sqlex` causes original call stack of where the exception was thrown to be lost. If that's what it desired then it should be explained, otherwise just use `throw;` +5503 area-System.Data System.Data.SqlClient.SqlInternalConnectionTds.Login() unclear timeout manipulations "`System.Data.SqlClient.SqlInternalConnectionTds.Login()` goes like this: ``` if (!timeout.IsInfinite) { long t = timeout.MillisecondsRemaining / 1000; if ((long)Int32.MaxValue > t) { timeoutInSeconds = (int)t; } } ``` First, a better name could have been invented for `t`. Perhaps `secondsRemaining`? Second, why does it check `Max > t` instead of `t < Max`? Is that a yet another `5 == a` Yoda condition? Finally, if the value is ""too large"" the result is... zero, not ""maximum value"" and that's not explained. Is that desired behavior? That's not clear. I suspect this is a bug. " +5505 area-System.Net SslStream WriteAsync This is just the WriteAsync portion of https://github.com/dotnet/corefx/issues/5077 The ReadAsync looks a lot more complicated so I'm not even going to attempt (i.e. the Read wasn't immediately apparent to me) +5507 area-Infrastructure Restoring all packages is taking way too long Restoring all packages is taking a long time even when there is nothing to do when all the packages are in the cache and all the lock files already exist. @dagood I know you are looking into this but it is clear to me that we need a solution both internally and externally for this problem because it is currently killing productivity. It is also causing huge lang in our CI system. We are currently almost spawning 300 processes during this restore step. For reference on my machine this step is taking 20-30 minutes alone where the rest of the build is less then 10 minutes. From a recent CI run (http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/1117/consoleFull) you can see: ``` 12:27:35 Restoring all packages... 12:50:01 Microsoft.CSharp -> ``` It is took more then 20 minutes. +5508 area-Infrastructure AV from GenFacades on Windows outer loop http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_windows_nt_release/61/consoleFull ``` 11:32:56 Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. 11:32:56 at Microsoft.Cci.ISymUnmanagedWriter2.Close() 11:32:56 at Microsoft.Cci.PdbWriter.Dispose() 11:32:56 at GenFacades.Program.OutputFacadeToFile(String facadePath, HostEnvironment seedHost, Assembly facade, IAssembly contract, String pdbLocation) 11:32:56 at GenFacades.Program.Main(String[] args) ``` +5511 area-System.Numerics Intermittent Numeric Tests Failures on OSX If you look a the history for the [OSX Release Test Job](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst/) some of the matrix tests have been failing intermittently. I'm not sure if the failures are machine specific (one of the Matrix 4x4 tests has failed twice on -1 mac but passes elsewhere). +5520 area-System.IO Fix FileSystem related permissions failures. A number of tests involving ReadOnly files were failing on Unix and Linux when run with elevated user permissions (e.g. sudo). This commit modifies those Unix tests to accommodate either set of permissions and verify the result accordingly. This unfortunately means we can't verify if the behavior is 'right', only that it is executed correctly. Windows is unchanged. resolves #5039, #5041, #4605 +5521 area-System.Data Opening SqlConnection results in DllNotFoundException (Unable to load sni.dll) in case of executing from Visual Studio "works fine from command line code ``` var connection = new SqlConnection(""valid connection string""); connection.Open(); ``` project.json: ``` { ""version"": ""1.0.0-*"", ""description"": ""ConsoleApp10 Console Application"", ""authors"": [ ""sady4850"" ], ""tags"": [ """" ], ""projectUrl"": """", ""licenseUrl"": """", ""compilationOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""System.Data.SqlClient"": ""4.0.0-beta-23516"" }, ""commands"": { ""ConsoleApp10"": ""ConsoleApp10"" }, ""frameworks"": { ""dnxcore50"": { ""dependencies"": { ""Microsoft.CSharp"": ""4.0.1-beta-23516"", ""System.Collections"": ""4.0.11-beta-23516"", ""System.Console"": ""4.0.0-beta-23516"", ""System.Linq"": ""4.0.1-beta-23516"", ""System.Threading"": ""4.0.11-beta-23516"" } } } } ``` exception: ``` at System.Runtime.Loader.AssemblyLoadContext.InternalLoadUnmanagedDllFromPath(String unmanagedDllPath) at System.Runtime.Loader.AssemblyLoadContext.LoadUnmanagedDllFromPath(String unmanagedDllPath) at Microsoft.Dnx.Runtime.Loader.LoadContext.LoadUnmanagedLibraryFromPath(String path) at Microsoft.Dnx.Runtime.Loader.PackageAssemblyLoader.LoadUnmanagedLibrary(String name) at Microsoft.Dnx.Host.LoaderContainer.LoadUnmanagedLibrary(String name) at Microsoft.Dnx.Host.DefaultLoadContext.LoadUnmanagedLibrary(String name) at Microsoft.Dnx.Runtime.Loader.LoadContext.LoadUnmanagedDll(String unmanagedDllName) at System.Runtime.Loader.AssemblyLoadContext.ResolveUnmanagedDll(String unmanagedDllName, IntPtr gchManagedAssemblyLoadContext) at System.Data.SqlClient.SNINativeMethodWrapper.SNIInitialize(IntPtr pmo) at System.Data.SqlClient.SNILoadHandle..ctor() at System.Data.SqlClient.SNILoadHandle..cctor() SQL Client: Unable to load sni.dll (DllNotFoundException) ``` " +5523 area-System.Net 'Content-Length' header not always returned when enumerating HttpContentHeaders Duplicated from internal bug 122111. Creating this tracking issue here so that we can trace these through the markers in the code back to the original internal bug tracker discussions if necessary. +5525 area-System.Net Clean up new netcore50 code in System.Net.Http, and reconcile with existing code "See the list of files in the System.Net.Http project file under the netcore50 TargetGroup: ``` XML Common\System\NotImplemented.cs Common\System\Net\HttpVersion.cs Common\System\StringExtensions.cs ``` Additionally, the code could use a bit of cleanup in general. Things like field names, brace usage, comment formatting, etc. " +5526 area-System.Net Add netcore50 configuration to System.Net.Http This includes a bit of new platform-specific code for System.Net.Http, as this library is built on top of WinRT for .NET Native / UWP. I opened #5525 and #5523 as trackers for existing issues in the code/project files. NOTE: We still need to do some major cleanup of the code to bring it in line with the style guidelines. I would like to leave that as a separate work item. I did some very minor cleanup before bringing the code out from our internal repository. @davidsh , @CIPop , @weshaggard +5531 area-System.Threading System.Threading.Tasks' RunStackGuardTests AV "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/ubuntu_debug_prtest/1120/ All I see is ""1 test(s) failed"" but I can't find which test failed. " +5535 area-Meta Add links to triage, road to RTM, and porting @weshaggard +5538 area-System.Net CurlHandler.EasyRequest.SetProxyOptions() throws ArgException when default credentials used "Issue moved from https://github.com/dotnet/coreclr/issues/2355 on behalf of @rtwede Data Point 1: When default credentials are used with the System.Net.Http.CurlHandler.Proxy as is the case in tools such as the DNX tools it results in ArgumentExceptions being thrown due to empty credentials/username. Data Point 2: System.Net.CredentialCache.DefaultCredentials is immutably set to a default SystemNetworkCredential (all empty strings for user, password, domain). Data Point 3: http://dotnet.github.io/getting-started/ Following the recommended steps to install .net core on Ubuntu Linux includes the step ""dotnet restore"" and exposes this failure whenever a simple proxy server is configured (e.g http_proxy=http://myserver.domain:8080/) DNX tools grab the default credendtials and the entire installation fails due to the exception in SetProxyOptions(). It's clear the intention is that the Curl library should detect the lack of credentials and not attempt to use them. Presently it only succeeds if creds are null, but not when username is an empty string as in the case of the default creds used by DNX tools. Conclusion: Fundamentally this is an incompatibility between the three implementations: DNX tools, the CurlHandler.SetproxyOptions() and DefaultCredentials. One of the three needs to be changed so that the three are compatible with one another. Arguably the DNX tools or the default credentials could be faulted, but SetProxyOptions seems the friendliest change to the contract between these three components because other clients might similarly use default empty credentials in the case where none are specified or present. " +5540 area-Meta CoreFx implementation assemblies contain duplicate definitions of public types "The public types listed below have multiple definitions in CoreFX assemblies. This causes issues when the assemblies are used in dynamic/runtime compilation scenarios such as C# scripting (see e.g. https://github.com/dotnet/cli/issues/320), dynamic languages, dynamic runtime binders, etc. and in VS Expression Evaluators. All these tools work with implementation assemblies since the reference assemblies are not available. These duplicate definitions should be made internal. Duplicate types in recent .NET Core build: ``` Microsoft.Win32.SafeHandles.SafeRegistryHandle: ""Microsoft.Win32.Registry, Version=4.0.0.0, PKT=b03f5f7f11d50a3a""; ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e"" Microsoft.Win32.SafeHandles.SafeFileHandle: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.IO.FileSystem, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.BitConverter: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Runtime.Extensions, Version=4.0.11.0, PKT=b03f5f7f11d50a3a"" System.Console: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Console, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.IO.Directory: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.IO.FileSystem, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.IO.DirectoryInfo: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.IO.FileSystem, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.IO.SearchOption: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.IO.FileSystem, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.IO.File: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.IO.FileSystem, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.IO.FileAccess: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.IO.FileSystem.Primitives, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.IO.FileInfo: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.IO.FileSystem, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.IO.FileMode: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.IO.FileSystem.Primitives, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.IO.FileShare: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.IO.FileSystem.Primitives, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.IO.FileStream: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.IO.FileSystem, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.IO.FileSystemInfo: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.IO.FileSystem, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.IO.FileAttributes: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.IO.FileSystem.Primitives, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.IO.Path: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Runtime.Extensions, Version=4.0.11.0, PKT=b03f5f7f11d50a3a"" System.Collections.CollectionBase: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Collections.NonGeneric, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.Collections.StructuralComparisons: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Collections, Version=4.0.11.0, PKT=b03f5f7f11d50a3a"" System.Collections.ObjectModel.ReadOnlyDictionary`2: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.ObjectModel, Version=4.0.11.0, PKT=b03f5f7f11d50a3a"" System.Collections.ObjectModel.KeyedCollection`2: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.ObjectModel, Version=4.0.11.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.CipherMode: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Primitives, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.PaddingMode: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Primitives, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.KeySizes: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Primitives, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.CryptographicException: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Primitives, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.ICryptoTransform: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Primitives, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.RandomNumberGenerator: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.Aes: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.AsymmetricAlgorithm: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Primitives, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.CspProviderFlags: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Csp, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.CspParameters: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Csp, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.CryptoStreamMode: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Primitives, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.CryptoStream: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Primitives, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.DeriveBytes: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.HMAC: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Primitives, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.HMACSHA1: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.HMACSHA256: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.HMACSHA384: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.HMACSHA512: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.HashAlgorithm: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Primitives, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.KeyNumber: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Csp, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.CspKeyContainerInfo: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Csp, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.ICspAsymmetricAlgorithm: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Csp, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.KeyedHashAlgorithm: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Primitives, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.MD5: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.Rfc2898DeriveBytes: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.RSAParameters: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.RSA: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.RSACryptoServiceProvider: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Csp, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.SHA1: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.SHA256: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.SHA384: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.SHA512: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Algorithms, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.SymmetricAlgorithm: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.Primitives, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.X509Certificates.X509ContentType: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.X509Certificates, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.X509Certificates.X509KeyStorageFlags: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.X509Certificates, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Cryptography.X509Certificates.X509Certificate: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Cryptography.X509Certificates, Version=4.0.0.0, PKT=b03f5f7f11d50a3a"" System.Security.Principal.IIdentity: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Principal, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.Security.Principal.IPrincipal: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Principal, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.Security.Principal.TokenImpersonationLevel: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Security.Principal, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.Threading.WaitHandleExtensions: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Runtime.Handles, Version=4.0.1.0, PKT=b03f5f7f11d50a3a"" System.Threading.CountdownEvent: ""mscorlib, Version=4.0.0.0, PKT=7cec85d7bea7798e""; ""System.Threading, Version=4.0.11.0, PKT=b03f5f7f11d50a3a"" ``` " +5541 area-System.Net Porting async implementation and adding TPL overrides for SslStream Read/WriteAsync - Porting APM functionality for SslStream's InnerStream - Adding TPL wrappers - Adding the test proposed by @xanather Fixes #5077 @stephentoub @davidsh @bartonjs @vijaykota PTAL /cc @xanather, @benaadams @leecow After review, I'll follow the internal process for RC2. +5545 area-Serialization System.Web.Script.Serialization.JavaScriptSerializer incompatible with ES6 (and V8) "A string with a quote (') is serialized as ""\'"" which departs from JSON.stringify() Number serialization is not aligned with ES6. Other reference: https://github.com/Microsoft/ChakraCore/issues/149 " +5546 area-System.Reflection Respond to PR code review comments for ported library System.Reflection.Extensions @weshaggard Who should this be assigned to? +5549 area-System.Linq Enumerable.Sum overloads that take selectors should perform the sum themselves "And should not `Select(selector).Sum()`. When summing large sequences, the overhead added by the extra iterator is noticeable. ``` csharp void Main() { int n = 10000; var origList = Enumerable.Range(0, n); var l = origList.Interleave(origList, origList, origList, origList).Select(i => new { k = i, val = i*i }).ToList().Take(n*4); Benchmark(() => { l.MySum(i => i.k); }, name: ""SumInline""); Benchmark(() => { l.MySum2(i => i.k); }, name: ""SumProjection""); } // Define other methods and classes here static class ext { public static int MySum(this IEnumerable src, Func val) { int sum = 0; checked { foreach(var d in src) { sum += val(d); } } return sum; } public static int MySum2(this IEnumerable src, Func val) { return MySum2(src.Select(val)); } public static int MySum2(this IEnumerable src) { int sum = 0; checked { foreach(var d in src) { sum += d; } } return sum; } } public static void Benchmark(Action block, int ntimes = 1000, string name = ""block"") { // Precompile method block(); var sw = new Stopwatch(); sw.Start(); for (int i=0; i < ntimes; i++) { block(); } sw.Stop(); var perLap = (double)sw.ElapsedMilliseconds/(double)ntimes; String.Format($""Time Taken: {sw.ElapsedMilliseconds:n}ms total, {perLap:0.000}ms p/i: {name}"", sw.ElapsedMilliseconds, name).Dump(); } ``` Output is: ``` Time Taken: 1,098.00ms total, 1.098ms p/i: SumInline Time Taken: 1,297.00ms total, 1.297ms p/i: SumProjection ``` Difference tends to move between 100 and 300 ms total (0.1-0.3ms per iteration). " +5551 area-System.Net Several System.Net.Security fixes "1. Windows and Unix. The ProcessAuthentication method sets a flag to indicate that an operation is in progress, then kicks off the operation, and then in a finally block potentially resets the flag. The intent of resetting it is to reset the flag iff the operation is no longer in progress, which would be the case if the operation was synchronous or if the initiation of the asynchronous operation resulted in an exception. As such, the finally block is checking whether the operation was synchronous or whether an exception has been captured. However, for the exceptional case, this leads to race conditions. The initiation of the asynchronous operaiton can lead to the operation running concurrently with the remainder of the ProcessAuthentication method, namely concurrently with the finally block. If the operation starts quickly and fails quickly, it'll store the exception, which will cause the finally block to see that an exception has been captured and mistakenly believe that the operation failed synchronously, thus resetting the flag. But the operation was actually asynchronous, and when EndAuthentication is called, it'll see that the flag has been reset and think that the EndAuthentication call is erroneous, thus throwing an exception. While it should throw an exception (the one that caused the operation to fail), it ends up throwing an InvalidOperationException instead to signal that EndAuthentication was used incorrectly. The fix is to move the check for the exceptional situation out of the finally and into a catch block. The catch block is then used to reset the flag only if an exception emerges synchronously, and the finally block is used to reset the flag only for synchronous operations. (It's possible that for synchronous operations that fail, the flag could be written as 0 twice... that's fine.) This fixes the failure on both Windows and Unix. The failure wasn't reproing on Windows but only because of differences in timing... adding a brief pause at the end of the try block would trigger the failure on Windows as well. 2. Unix. The design of AuthenticateAsServerAsync has a clientCertificatesRequired flag. On Unix we were mapping that to ""SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT"", which causes OpenSSL to fail the handshake if no cert is provided. But the Windows code actually still allows this through, instead setting a policy error to indicate that no certificate was required. I'm simply removing the SSL_VERIFY_FAIL_IF_NO_PEER_CERT flag to match that design. I've also updated the test to assert that the error is actually being set. 3. Unix. When SSL failures occur, there are multiple places to check for errors. One starts with SSL errors, then potentially examines general crypto errors, and then potentially examines errno values. Our code wasn't properly handling this, and even for situations where it was, it was potentially conflating all of the values together as the first category, making it more difficult to interpret and tell them apart. This updates the code to capture the appropriate exception information. There are still some issues around properly mapping and roundtripping error values between the Unix PAL implementation and the consuming shared code, but this at least makes it easier for a developer of the library to debug issues. 4. Linux. All of the System.Net.Security tests were disabled on Unix. I've re-enabled them on Linux now that the causes for the failures have been fixed. I've not yet verified the fixes on OS X, so I've left them disabled there for now. cc: @bartonjs, @ericeil, @cipop, @davidsh, @vijaykota Fixes https://github.com/dotnet/corefx/issues/4317, https://github.com/dotnet/corefx/issues/4606 " +5552 area-System.Runtime Add string.Join(char, ...) overloads "Moved from https://github.com/dotnet/coreclr/issues/2736#issuecomment-173295835 on behalf of @jasonwilliams200OK Current situation: ``` c# char separator = ':'; string joined = string.Join(separator.ToString(), ""one"", ""two"", ""three""); ``` With `char` overload, users will be able to join string without calling `ToString()` i.e. `string joined = string.Join(separator, ""one"", ""two"", ""three"");` This will reduce at least one string allocation per call: https://github.com/dotnet/coreclr/blob/80c2952/src/mscorlib/src/System/Char.cs#L145-L168. # Proposed API surface - @jasonwilliams200OK ``` csharp // in -> coreclr/src/mscorlib/src/System/String.cs public static string Join(char separator, params object[] value) public static string Join(char separator, IEnumerable values) public static string Join(char separator, params string[] value) public static string Join(char separator, string[] value, int startIndex, int count) // REJECTED: //public static string Join(char separator, IEnumerable values) // in -> coreclr/src/mscorlib/src/System/UnSafeCharBuffer.cs public void AppendString(char charToAppend) ``` " +5555 area-System.Net CertificateValidationRemoteServer_EndToEnd_Ok fails on OS X ``` 09:41:41 System.Net.Security.Tests.CertificateValidationRemoteServer.CertificateValidationRemoteServer_EndToEnd_Ok [FAIL] 09:41:41 Assert.Equal() Failure 09:41:41 Expected: None 09:41:41 Actual: RemoteCertificateChainErrors 09:41:41 Stack Trace: 09:41:42 at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) 09:41:42 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) 09:41:42 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) 09:41:42 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 09:41:42 --- End of stack trace from previous location where exception was thrown --- 09:41:42 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:41:42 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:41:42 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 09:41:42 at System.Net.Security.Tests.CertificateValidationRemoteServer.d__0.MoveNext() 09:41:42 --- End of stack trace from previous location where exception was thrown --- 09:41:42 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:41:42 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:41:42 --- End of stack trace from previous location where exception was thrown --- 09:41:42 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:41:42 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:41:42 --- End of stack trace from previous location where exception was thrown --- 09:41:42 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:41:42 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` It passes on Ubuntu. +5557 area-System.Net "System.Net.Security ""no encryption"" tests failing on OpenSUSE" ``` 09:37:45 System.Net.Security.Tests.ServerAllowNoEncryptionTest.ServerAllowNoEncryption_ClientNoEncryption_ConnectWithNoEncryption [FAIL] 09:37:45 System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. 09:37:45 ---- Interop+OpenSsl+SslException : Operation failed with error - 12. 09:37:45 Stack Trace: 09:37:46 at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) 09:37:46 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 09:37:46 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 09:37:46 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 09:37:46 at System.Net.Security.SslStream.<>c__DisplayClass21_0.b__0(AsyncCallback callback, Object state) 09:37:46 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 09:37:46 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 09:37:46 at System.Net.Security.Tests.ServerAllowNoEncryptionTest.d__5.MoveNext() 09:37:46 --- End of stack trace from previous location where exception was thrown --- 09:37:46 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:37:46 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:37:46 --- End of stack trace from previous location where exception was thrown --- 09:37:46 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:37:46 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:37:46 --- End of stack trace from previous location where exception was thrown --- 09:37:46 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:37:46 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:37:46 ----- Inner Stack Trace ----- 09:37:46 09:37:47 System.Net.Security.Tests.ServerNoEncryptionTest.ServerNoEncryption_ClientAllowNoEncryption_ConnectWithNoEncryption [FAIL] 09:37:47 System.IO.IOException : Authentication failed because the remote party has closed the transport stream. 09:37:47 Stack Trace: 09:37:47 at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) 09:37:47 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) 09:37:47 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 09:37:47 --- End of stack trace from previous location where exception was thrown --- 09:37:47 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:37:47 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:37:47 at System.Net.Security.Tests.ServerNoEncryptionTest.d__4.MoveNext() 09:37:47 --- End of stack trace from previous location where exception was thrown --- 09:37:47 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:37:47 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:37:47 --- End of stack trace from previous location where exception was thrown --- 09:37:47 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:37:47 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:37:47 --- End of stack trace from previous location where exception was thrown --- 09:37:47 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:37:47 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:37:48 Finished: System.Reflection.Metadata.Tests 09:37:48 09:37:48 === TEST EXECUTION SUMMARY === 09:37:48 System.Reflection.Metadata.Tests Total: 146, Errors: 0, Failed: 0, Skipped: 0, Time: 5.368s 09:37:48 System.Net.Security.Tests.ServerNoEncryptionTest.ServerNoEncryption_ClientNoEncryption_ConnectWithNoEncryption [FAIL] 09:37:48 System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. 09:37:48 ---- Interop+OpenSsl+SslException : Operation failed with error - 12. 09:37:48 Stack Trace: 09:37:48 at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) 09:37:48 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 09:37:48 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 09:37:48 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 09:37:48 at System.Net.Security.SslStream.<>c__DisplayClass21_0.b__0(AsyncCallback callback, Object state) 09:37:48 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 09:37:48 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 09:37:48 at System.Net.Security.Tests.ServerNoEncryptionTest.d__5.MoveNext() 09:37:48 --- End of stack trace from previous location where exception was thrown --- 09:37:48 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:37:48 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:37:48 --- End of stack trace from previous location where exception was thrown --- 09:37:48 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:37:48 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:37:48 --- End of stack trace from previous location where exception was thrown --- 09:37:48 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 09:37:48 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 09:37:48 ----- Inner Stack Trace ----- 09:37:48 09:37:48 System.Net.Security.Tests.ServerRequireEncryptionTest.ServerRequireEncryption_ClientNoEncryption_NoConnect [FAIL] 09:37:48 Assert.Throws() Failure 09:37:48 Expected: typeof(System.IO.IOException) 09:37:48 Actual: typeof(System.Security.Authentication.AuthenticationException): A call to SSPI failed, see inner exception. 09:37:48 Stack Trace: 09:37:48 at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) 09:37:48 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 09:37:48 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 09:37:48 at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 09:37:48 at System.Net.Security.SslStream.<>c__DisplayClass21_0.b__0(AsyncCallback callback, Object state) 09:37:48 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 09:37:48 at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) ``` These pass on Windows, Ubuntu, and CentOS. +5558 area-System.Runtime EqualityComparerForDouble and EqualityComparerForSingle use the == operator but should use Equals The class should be calling the Equals(System.Double) method on System.Double because == has the wrong semantic for NaN. +5559 area-System.Net Add netcore50 configuration for System.Net.Http.Rtc This contract is only supported on .NET Native. NOTE: This contract type-forwards its only type to System.Net.Http, the implementation assembly. I have ported this as-is from our internal build, but we probably want to change this. The type, `RtcRequestFactory` is a static class with only one static method on it, so I don't see why it can't just be implemented in System.Net.Http.Rtc itself. At the very least, we can share the same source file with System.Net.Http if it still needs to live there. @davidsh Do you recall why these two assemblies were factored as such? @weshaggard , @CIPop +5560 area-System.Net WinHttpResponseStream.ReadAsync may never finish when canceled "This example code pattern can result in the awaited task never moving to a terminal state: ``` c# var tokenSource = new CancellationTokenSource(); CancellationToken token = tokenSource.Token; var client = new HttpClient(); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, ""some uri""); HttpResponseMessage response = client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead).Result; Stream stream = response.Content.ReadAsStreamAsync().Result; byte[] buffer = new byte[1000000]; Task task = stream.ReadAsync(buffer, 0, buffer.Length, token); tokenSource.Cancel(); task.Wait(); // BUG - the Wait() never returns ``` " +5565 area-System.Net HttpWebRequest ignores Content-Type in Universal Windows (UWP) App "Filing this on behalf of @AmadeusW from https://github.com/dotnet/coreclr/issues/2680: I'm working on a UWP app that connects to a third party server and accesses their data via API. By default, they serve XML responses, and JSON when requested using `Content-Type` header. Despite calling `request.ContentType = ""application/json"";` the UWP App incorrectly makes a request without the desired `Content-Type` header. The same code works fine in regular windows Console Application. Furthermore, running the culprit method from a regular Win32 process (by loading the assembly via AppDomain) correctly sets `Content-Type`, which makes me assume that the problem lies within the UWP runtime. Below are traces collected with Fiddler and minimal repro code. Let me know if there is a better place to file this bug than this repo. Method `Go()` invoked from Win32 AppDomain, or pasted into a Win32 application: ``` GET http://github.com/ HTTP/1.1 Content-Type: application/json Host: github.com Connection: Keep-Alive ``` Method `Go()` invoked as a UWP unit test, or pasted into UWP app (non-test) ``` GET http://github.com/ HTTP/1.1 Host: github.com Connection: Keep-Alive ``` Code to reproduce the issue: ``` csharp using System; using Microsoft.VisualStudio.TestPlatform.UnitTestFramework; using System.Net; using System.IO; using System.Threading.Tasks; namespace UnitTestProject1 { [TestClass] public class UnitTest1 { [TestMethod] public void TestMethod1() { var x = Go().Result; } public static async Task Go() { var request = WebRequest.Create($""http://github.com/""); request.ContentType = ""application/json""; using (var response = await request.GetResponseAsync()) { using (var reader = new StreamReader(response.GetResponseStream())) { var test = request.Headers; var data = await reader.ReadToEndAsync(); return data; } // <- set breakpoint here } } } } ``` Observe that `test` contains the `Content-Type` header (so it didn't get ""lost"") Check in Fiddler that the request does _not_ have the `Content-Type` header My actual issue: I need to send & receive this: ``` GET http://api.translink.ca/RTTIAPI/V1/stops/61453/estimates?apiKey=XXX&routeNo=099 HTTP/1.1 Content-Type: application/json Host: api.translink.ca Connection: Keep-Alive HTTP/1.1 200 OK Cache-Control: private Content-Length: 1588 Content-Type: application/json; charset=utf-8 Server: Microsoft-IIS/8.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Fri, 15 Jan 2016 06:04:48 GMT [{""RouteNo"":""099"",""RouteName"":""COMMERCIAL-BROADWAY\/UBC (B-LINE) ... ``` but instead the UWP app sends & receives this: ``` GET http://api.translink.ca/RTTIAPI/V1/stops/59997/estimates?apiKey=XXX&routeNo=099 HTTP/1.1 Host: api.translink.ca Connection: Keep-Alive HTTP/1.1 200 OK Cache-Control: private Content-Length: 4123 Content-Type: application/xml; charset=utf-8 Server: Microsoft-IIS/8.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Fri, 15 Jan 2016 06:03:13 GMT 099COMMERCIAL-BROADWAY/UBC (B-LINE) ``` " +5566 area-Infrastructure Add Red Hat Enterprise Linux 7.2 CI / Rolling Build Add RHEL 7.2 to Jenkins outerloop build & test. https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.2/x86_64/product-software Related CI work items: https://github.com/dotnet/corefx/issues/4653 (2008 R2 ServerCore), https://github.com/dotnet/corefx/issues/4656 (Debian 8.2), https://github.com/dotnet/corefx/issues/4779 (2016 NanoServer), https://github.com/dotnet/corefx/issues/5349 (Ubuntu 15.10) +5567 area-System.Collections Add List constructor size to ConcurrentCollections ToList and other similiar functions Many of the ConcurrentCollections create Lists of all the items but do not initialize the list to the size of the number of items in the collection. Most of the time the list will end up containing the exact Count of the number of items in the collection. Rather than continuously resize the List it makes sense to initialize it to the expected size. +5569 area-System.Net Obsoleting SSL2, 3 Includes fixes for the sln (currently broken) and one of the csproj files for Primitives. These files were automatically generated by Visual Studio. The csproj GUID has been updated to an unique value: currently the PAL project shares the same with the UnitTests project. @SidharthNabar @leecow @ericstj PTAL /cc @davidsh Fixes #4927 +5572 area-Infrastructure GitHub build is unstable and takes longer than in RC1 timeframe "Build became unstable after the latest updates. Examples: 1. On clone 1: ``` git clean -xdf build Restoring BuildTools version 1.0.25-prerelease-00151... Initializing BuildTools ... Done initializing tools. [14:01:26.01] Building Native Libraries... [14:01:41.52] Building Managed Libraries... [14:01:44.30] Restoring all packages... [14:26:05.76] Restoring all packages...Done. <------------- note the 24 minute time to restore packages. S:\c1\Tools\publishtest.targets(116,5): error MSB3027: Could not copy ""S:\c1\bin\Windows_NT.AnyCPU.Debug\System.Threading.Overlap ped\System.Threading.Overlapped.dll"" to ""S:\c1\bin/tests/Windows_NT.AnyCPU.Debug\System.Threading.Overlapped.Tests\dnxcore50\Syst em.Threading.Overlapped.dll"". Exceeded retry count of 10. Failed. [S:\c1\src\System.Threading.Overlapped\tests\System.Threading.O verlapped.Tests.csproj] S:\c1\Tools\publishtest.targets(116,5): error MSB3021: Unable to copy file ""S:\c1\bin\Windows_NT.AnyCPU.Debug\System.Threading.Ov erlapped\System.Threading.Overlapped.dll"" to ""S:\c1\bin/tests/Windows_NT.AnyCPU.Debug\System.Threading.Overlapped.Tests\dnxcore50 \System.Threading.Overlapped.dll"". The process cannot access the file 'S:\c1\bin/tests/Windows_NT.AnyCPU.Debug\System.Threading.O verlapped.Tests\dnxcore50\System.Threading.Overlapped.dll' because it is being used by another process. [S:\c1\src\System.Threadi ng.Overlapped\tests\System.Threading.Overlapped.Tests.csproj] ``` 1. On clone 2 I didn't run clean: ``` build QueryOperators\OrderByThenByTests.cs(351,52): error CS0518: Predefined type 'System.Int32' is not defined or imported [S:\c2\src\ System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] QueryOperators\OrderByThenByTests.cs(351,65): error CS0518: Predefined type 'System.Int32' is not defined or imported [S:\c2\src\ System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] QueryOperators\OrderByThenByTests.cs(351,58): error CS0518: Predefined type 'System.Int32' is not defined or imported [S:\c2\src\ System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] QueryOperators\OrderByThenByTests.cs(351,40): error CS0518: Predefined type 'System.Int32' is not defined or imported [S:\c2\src\ System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] QueryOperators\OrderByThenByTests.cs(351,32): error CS0518: Predefined type 'System.Object' is not defined or imported [S:\c2\src \System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] QueryOperators\OrderByThenByTests.cs(351,72): error CS0246: The type or namespace name 'MemberType' could not be found (are you m issing a using directive or an assembly reference?) [S:\c2\src\System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] QueryOperators\OrderByThenByTests.cs(351,92): error CS0518: Predefined type 'System.Object' is not defined or imported [S:\c2\src \System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] QueryOperators\OrderByThenByTests.cs(351,85): error CS0518: Predefined type 'System.Type' is not defined or imported [S:\c2\src\S ystem.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] QueryOperators\SkipSkipWhileTests.cs(246,10): error CS0518: Predefined type 'System.Object' is not defined or imported [S:\c2\src \System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] QueryOperators\SkipSkipWhileTests.cs(246,10): error CS0246: The type or namespace name 'Theory' could not be found (are you missi ng a using directive or an assembly reference?) [S:\c2\src\System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] QueryOperators\SkipSkipWhileTests.cs(247,10): error CS0518: Predefined type 'System.Object' is not defined or imported [S:\c2\src \System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] QueryOperators\SkipSkipWhileTests.cs(247,10): error CS0246: The type or namespace name 'OuterLoop' could not be found (are you mi ssing a using directive or an assembly reference?) [S:\c2\src\System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] QueryOperators\SkipSkipWhileTests.cs(248,10): error CS0518: Predefined type 'System.Object' is not defined or imported [S:\c2\src \System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] QueryOperators\SkipSkipWhileTests.cs(248,10): error CS0246: The type or namespace name 'MemberData' could not be found (are you m issing a using directive or an assembly reference?) [S:\c2\src\System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] ^CTerminate batch job (Y/N)? y ``` This was scrolling for a while so I've aborted the build. Could this warning be the cause? If yes, shouldn't it be transformed to an error? ``` 1>S:\c2\build.proj(40,5): warning MSB3073: The command """"S:\c2\Tools/dotnetcli/bin/dotnet.exe"" restore --packages ""S:\c2\packages"" --source https://www.myget.org/F/dotnet-core/ --source https://www.myget.org/F/dotnet-coreclr/ --source https://www.myget.org/F/dotnet-corefxtestdata/ --source https://www.myget.org/F/dotnet-buildtools/ --source https://www.nuget.org/api/v2/ ""S:\c2\src\System.Collections\src\project.json"""" exited with code 1. ``` Attached the full msbuild.log [msbuild.log.txt](https://github.com/dotnet/corefx/files/98238/msbuild.log.txt) " +5574 area-Meta Framework Design Guidelines Updates to Consider This list represents some guidelines that we often run into and feel like they should be updated: - [ ] Event design guidelines (should we use Func/Action? do we need sender, etc.) - [ ] Async pattern (task based async, cancellations) - [ ] Default parameters - [ ] Exceptions - [ ] Nested types +5575 area-Infrastructure System.AppContext cannot be found I don't know if this is CoreFX or CoreCLR or dotnet-cli, but I tried updating to build rc3-23720, and can no longer load `System.AppContext` on Ubuntu 14.04. ``` Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.AppContext, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. ``` I thought perhaps I needed to reference it as a dependency explicitly (though it is depended on by [NETStandard.Platform](https://www.myget.org/feed/dotnet-core/package/nuget/NETStandard.Platform)), but that does not seem to be the case. I build with `dotnet publish --framework dnxcore50` using the dotnet-nightly package. Sure enough, `System.AppContext.dll` is not included in the output, but it shouldn't be looking in there anyway, as the type is in `mscorlib.dll`, which exists. @stephentoub any ideas? +5581 area-System.Net Refactoring the Windows specific code in NegotiateStream summary Renaming NegoState.Windows.cs to InternalNegoState.cs as it had much common code applicable for Unix. (commit1) Separating out the common code and windows specific code in InternalNegoState and NegoState.Windows.cs respectiviely. Adding NegotiateInfoClass.cs to be used by Unix impl. Tested locally both AuthenticateAsServer/Client on Windows. /cc: @SidharthNabar @stephentoub @davidsh @CIPop @vijaykota +5582 area-System.Linq Implement IReadOnlyList<> in Grouping<,> class from System.Linq "Hello! I talk about [class Grouping](https://github.com/dotnet/corefx/blob/a58f490274e286d844d277f2658f2c074a4d5350/src/System.Linq/src/System/Linq/Enumerable.cs#L3544) from System.Linq. Now it declared as # Proposed API ``` c# public class Grouping : // Existing interfaces IGrouping, IList // Proposed interfaces IReadOnlyList, IReadOnlyCollection { … ``` # Workaround In many scenarios I want to have a group (an instance of IGrouping<,>) as an instance of IReadOnlyCollection<> or IReadOnlyList<>. Now I have to wrap the group in a ReadOnlyCollection<> or copy it to the new List<>. ``` c# public static IReadOnlyCollection AsReadOnlyCollection(this IGrouping group) { if(group == null) { throw new ArgumentNullException(""group""); } var readOnly = group as IReadOnlyCollection; if(readOnly != null) { return readOnly; } var list = group as IList; if(list != null) { return new ReadOnlyCollection(list); } return new List(group); } ``` I know, that not any IGrouping<,> should implement list interfaces, but in many cases I can use a fast path. All I need is add IReadOnlyList to a list of interfaces, that Group implements." +5584 area-System.Security X509CertificateCollection.Remove() weird error checking X509CertificateCollection.Remove() disallows removing null objects but allows removing objects which are not in the collection (because it just forwards to `List.Remove()` and never checks the result). MSDN https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificatecollection.remove%28v=vs.100%29.aspx says removing elements which are not in the collection is disallowed. If you want to allow removing elements that are not in the collection then you should also allow removing null objects - they are never in the collection. +5585 area-System.Runtime Indexing into a large stringbuilder is extremely innefficient "Run the following program (reverse a string in a string builder) Results: When i runs up to 100,000. About 1 : 13 elapsed time. When i runs up to 1,000,000: 1 : 5000 elapsed time. On 10,000,000 you give up. ``` c# using System; using System.Diagnostics; using System.Text; namespace ConsoleApplication32 { class Program { static void Main(string[] args) { StringBuilder builder = new StringBuilder(); for (int i = 0; i < 1000000; i++) { builder.Append(""ABCDEF""); } var input = builder.ToString().ToCharArray(); var last = input.Length - 1; var mid = last / 2; Stopwatch sw1 = new Stopwatch(); sw1.Start(); char temp; for (int i = 0; i <= mid; i++) { temp = input[i]; input[i] = input[last - i]; input[last - i] = temp; } sw1.Stop(); Console.WriteLine(sw1.ElapsedMilliseconds); Stopwatch sw2 = new Stopwatch(); sw2.Start(); for (int i = 0; i <= mid; i++) { temp = builder[i]; builder[i] = builder[last - i]; builder[last - i] = temp; } sw2.Stop(); Console.WriteLine(sw2.ElapsedMilliseconds); } } } ``` " +5590 area-System.Net Fix hang when WinHttpHandler response stream reads are canceled "The task from ReadAsync was never moving to a terminal state (i.e. ""hanging"") if the token was marked for cancellation after starting the task. The problem was that our task continuation wasn't being called if the token was cancelled before the continuation was scheduled. The fix is to avoid passing in the token during the .ContinueWith call. Instead, the token is checked inside the continuation. This puts all the logic in the same place for checking the final status of the ReadAsync operation (which has multiple inner operations) including whether it should fault due to an error or have a successful completion. Fixes #5560. " +5591 area-System.Reflection Remove System.Reflection.Extensions dependency on System.Reflection.TypeExtensions This is an issue based on comments from @ericstj on PR #5542 . It is not OK to reference public surface area that is only available in the implementation assembly. Can we either 1) share this source or 2) create a public API? +5593 area-System.Xml Add System.Xml.Xsl .NET Core currently doesn't support running XML transforms (XSLT). +5600 area-System.Net Disable HttpClient test sometimes failing in CI Ref: Issue #5485 +5601 area-System.Data System.PlatformNotSupportedException being thrown in SQLClient on Windows machines When running ASP.NET tests on our CI machine (Windows), we are observing a System.PlatformNotSupportedException exception being thrown. The problem looks to be in: https://github.com/dotnet/corefx/blob/ceae1d38c93e3f53210ad91884dabc1bd6d30a90/src/System.Data.SqlClient/src/Interop/SNINativeMethodWrapper.cs#L420 ``` System.PlatformNotSupportedException The Win32NativeMethods.IsTokenRestrictedWrapper is not supported on non-Windows platform ``` +5606 area-System.Net "System.Net: Replace existing ""catch Exception / throw later"" patterns with ExceptionDispatchInfo " @stephentoub : > There are a bunch of places in the code where an Exception is caught and then later thrown. This kind of re-throwing ends up clobbering the original call stack and Watson bucket stored in the Exception, making it more difficult for someone looking at the exception to understand where it came from. To address this, ExceptionDispatchInfo was added in .NET 4.5, and is now used in places like Task that have this exact issue. I'd suggest we look at using ExceptionDispatchInfo in all of these places. Basically, instead of just storing an Exception, you'd store the result of ExceptionDispatchInfo.Capture(caughtException), and then instead of using throw _caughtException;, you'd do _caughtExceptionDispatchInfo.Throw();. ExceptionDispatchInfo will preserve the original information and append the new throw location's call stack rather than using it to overwrite the original. This was discussed in https://github.com/dotnet/corefx/pull/5541#discussion_r50399913. +5607 area-System.Data Fix INVALID_PROV references in Managed SNI Strings.resx in SqlClient doesn't have an entry for Invalid Provider (ID: SNI_PN10), which causes a Debug.Assert to be tripped in ProcessSniError when fetching that resource. So we should either add an Invalid Provider value in Strings.resx, or default to using another SniProvider value as the default provider in error messages. +5610 area-System.Linq dynamic usage causing live hangs after upgrading packages I'm trying to upgrade our packages to rc3-23721, and on Windows the System.Numerics.Vectors tests are hanging, pegging the CPU at the line doing the dynamic cast here: ``` C# public static T GenerateSingleValue(int min = 1, int max = 100) where T : struct { var randomRange = s_random.Next(min, max); T value = (T)(dynamic)randomRange; return value; } ``` +5611 area-System.Data Remove System.Data.Common.DbColumn's _customValues Per #5609 and @saurabh500, creating an issue here: I think the Dictionary on `DbColumn` should be protected so that implementers can access the structure more efficiently. Downstream people will want to iterate, bulk create, etc. The indexer being the only point of access internally will be a problem/bottleneck there. +5613 area-System.Net Port https://github.com/dotnet/corefx/pull/5590 to RC2 "The task from ReadAsync was never moving to a terminal state (i.e. ""hanging"") if the token was marked for cancellation after starting the task. The problem was that our task continuation wasn't being called if the token was cancelled before the continuation was scheduled. The fix is to avoid passing in the token during the .ContinueWith call. Instead, the token is checked inside the continuation. This puts all the logic in the same place for checking the final status of the ReadAsync operation (which has multiple inner operations) including whether it should fault due to an error or have a successful completion. " +5615 area-Serialization [Port to RC2] Fix serialization of recursive collections in data contract serializers Porting https://github.com/dotnet/corefx/pull/5398 to release/1.0.0-rc2 branch. +5617 area-System.Net Additional PR feedback for NegotiateStream porting "- [ ] End if / else if / else if /... waterfalls with one last ""if"" see detailed comment https://github.com/dotnet/corefx/pull/5581#discussion_r50420783 - [ ] https://github.com/dotnet/corefx/pull/5581#discussion_r50420982 - [ ] #5541 (comment) - [ ] https://github.com/dotnet/corefx/pull/5581#discussion_r50422362- [ ] fix comment ""// This is to not depend on GC&SafeHandle class if the context is not needed anymore"" - [ ] https://github.com/dotnet/corefx/pull/5581#discussion_r50426276 - [ ] use a variable instead of direct usage of number 4, 16 in the code. https://github.com/dotnet/corefx/pull/5581#discussion_r50431861 - [ ] https://github.com/dotnet/corefx/pull/5581#discussion-diff-50433441 https://github.com/dotnet/corefx/pull/5581#discussion_r50433347 - [ ] https://github.com/dotnet/corefx/pull/5581#discussion_r50423078 - [ ] https://github.com/dotnet/corefx/pull/5772#discussion_r51471912 - [ ] https://github.com/dotnet/corefx/pull/5772#discussion_r51472457 - [ ] https://github.com/dotnet/corefx/pull/5772#discussion_r51473319 - [ ] https://github.com/dotnet/corefx/pull/5772#discussion_r51472857 - [ ] https://github.com/dotnet/corefx/pull/5772#discussion_r51473345 - [ ] https://github.com/dotnet/corefx/pull/5772#discussion_r51472547 - [ ] https://github.com/dotnet/corefx/pull/5772#discussion_r51473799 - [ ] https://github.com/dotnet/corefx/pull/5772#discussion_r52743275 Need to throw more accurate exception in syn with other exception in code. " +5625 area-System.ComponentModel Expose DescriptionAtttribute Splitting this out from https://github.com/dotnet/corefx/issues/2065 since it has scenarios outside of System.Data. See https://github.com/aspnet/Home/issues/1251 +5626 area-System.ComponentModel System.ComponentModel: Cache TypeConverter results Uses the IntrinsicTypes table and performs a check for existing entries in that table before doing anything else. Also adds performance tests for GetConverter. Works for types that declare a Converter through an attribute as well as built-in types. resolves #5337 @Tanya-Solyanik +5628 area-System.Net Assert from SystemNative_Accept on CentOS http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/centos7.1_debug_tst_prtest/1050/console ``` 08:44:21 corerun: /mnt/resource/j/workspace/dotnet_corefx/nativecomp_centos7.1_debug_prtest/src/Native/System.Native/pal_networking.cpp:1458: Error SystemNative_Accept(int32_t, uint8_t *, int32_t *, int32_t *): Assertion `addrLen <= static_cast(*socketAddressLen)' failed. 08:44:21 ./run-test.sh: line 130: 38134 Aborted ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait ``` +5630 area-System.IO DirectoryInfo.Exists on a symlink to a directory fails on Unix Due to https://github.com/dotnet/corefx/pull/5020, now a DirectoryInfo created for a symlink to a valid directory returns false for Exists. This is causing any HttpClient request to an https URL to fail on Ubuntu, as X509Certificates uses DirectoryInfo.Exists to determine whether it can enumerate the root store certs directory, and on Ubuntu, the default certs path is a symlink. cc: @mjrousos, @ianhays +5634 area-System.Data Add test to verify the correct bits for SqlClient SqlClient should have a test which verifies that the correct bits are being built for the respective platforms. +5639 area-System.IO Re-enable unicode zip tests for Unix I'm unable to repro any errors in the tests on my local Ubuntu machine. +5642 area-System.Net Fixing assert conditions for System.Net.Security. Fixing incorrectly converted Debug.Assert during NegotiateStream port (9a414b0af4230b59a06dd9e255a36400582f482e). These affect DBG builds, will render incorrect ETW in production builds and impact test execution. Tested locally by removing all ActiveIssues temporarily to ensure we get enough coverage. @davidsh @stephentoub @shrutigarg PTAL +5645 area-System.Runtime CharTests failing on Windows after upgrading to rc3-23722 http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/1339/consoleFull ``` 17:59:44 Discovering: System.Runtime.Tests 17:59:45 Discovered: System.Runtime.Tests 17:59:45 Starting: System.Runtime.Tests 17:59:46 CharTests.TestIsLetterStrInt [FAIL] 17:59:46 Assert.False() Failure 17:59:46 Expected: False 17:59:46 Actual: True 17:59:46 Stack Trace: 17:59:46 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Runtime\tests\System\Char.cs(294,0): at CharTests.TestIsLetterStrInt() 17:59:46 CharTests.TestIsLower [FAIL] 17:59:46 Assert.False() Failure 17:59:46 Expected: False 17:59:46 Actual: True 17:59:46 Stack Trace: 17:59:46 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Runtime\tests\System\Char.cs(359,0): at CharTests.TestIsLower() 17:59:46 CharTests.TestIsNumber [FAIL] 17:59:46 Assert.False() Failure 17:59:46 Expected: False 17:59:46 Actual: True 17:59:46 Stack Trace: 17:59:46 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Runtime\tests\System\Char.cs(389,0): at CharTests.TestIsNumber() 17:59:46 CharTests.TestIsLetter [FAIL] 17:59:46 Assert.False() Failure 17:59:46 Expected: False 17:59:46 Actual: True 17:59:46 Stack Trace: 17:59:46 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Runtime\tests\System\Char.cs(275,0): at CharTests.TestIsLetter() 17:59:46 CharTests.TestIsDigit [FAIL] 17:59:46 Assert.False() Failure 17:59:46 Expected: False 17:59:46 Actual: True 17:59:46 Stack Trace: 17:59:46 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Runtime\tests\System\Char.cs(239,0): at CharTests.TestIsDigit() 17:59:46 CharTests.TestIsNumberStrInt [FAIL] 17:59:46 Assert.False() Failure 17:59:46 Expected: False 17:59:46 Actual: True 17:59:46 Stack Trace: 17:59:46 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Runtime\tests\System\Char.cs(402,0): at CharTests.TestIsNumberStrInt() 17:59:46 CharTests.TestIsLetterOrDigit [FAIL] 17:59:46 Assert.False() Failure 17:59:46 Expected: False 17:59:46 Actual: True 17:59:46 Stack Trace: 17:59:46 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Runtime\tests\System\Char.cs(321,0): at CharTests.TestIsLetterOrDigit() 17:59:46 CharTests.TestIsDigitStrInt [FAIL] 17:59:46 Assert.False() Failure 17:59:46 Expected: False 17:59:46 Actual: True 17:59:46 Stack Trace: 17:59:46 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Runtime\tests\System\Char.cs(250,0): at CharTests.TestIsDigitStrInt() 17:59:46 CharTests.TestIsLowerStrInt [FAIL] 17:59:46 Assert.False() Failure 17:59:46 Expected: False 17:59:46 Actual: True 17:59:46 Stack Trace: 17:59:46 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Runtime\tests\System\Char.cs(370,0): at CharTests.TestIsLowerStrInt() 17:59:46 CharTests.TestIsLetterOrDigitStrInt [FAIL] 17:59:46 Assert.False() Failure 17:59:46 Expected: False 17:59:46 Actual: True 17:59:46 Stack Trace: 17:59:46 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Runtime\tests\System\Char.cs(342,0): at CharTests.TestIsLetterOrDigitStrInt() ``` +5647 area-Serialization DataContractJsonSerializer incompatible with ES6 (and V8) Bug report with code: https://github.com/cyberphone/jsondotnet +5653 area-Infrastructure Win7 outer loop debug build broken It ends up with tons of warnings of the form: ``` 01:43:43 EXEC : warning : FindPackagesById: System.Console [d:\j\workspace\dotnet_corefx\outerloop_win7_debug\build.proj] ``` and then times out. +5655 area-System.Net Remove spinning from event instances in Unix socket operations We use ManualResetEventSlims to enable blocking waiting for non-blocking socket operations to complete when making calls to Socket's synchronous methods. By default, if an MRES isn't yet Set when it's waited on, MRES.Wait() does a bit of spinning before falling back to a true blocking wait. But in this situation, we expect that either the socket operation will complete synchronously or will take some non-trivial amount of time to complete asynchronously, in which case the spinning is generally unnecessary overhead. This commit simply disables that extra spinning. cc: @pgavlin, @ericeil, @vancem (Assuming https://github.com/dotnet/corefx/pull/5472 gets checked in after the issues it's facing are fixed, this change will still matter but only in the situation where sync and async calls are mixed on the same Socket instance, such that the socket is put into non-blocking mode and we hit these code paths.) +5657 area-System.Data RC2 - A connection was successfully established with the server, but then an error occurred during the pre-login handshake "Platform : Linux Ubuntu Runtime : 1.0.0-rc2-16357,coreclr,x64,linux System.Data.SqlClient : 4.0.0-rc2-23623 ConnectionString : Data Source=XXXXXXXX,60606;Initial Catalog=XXXXXXXX;Integrated Security=False;User ID=sa;Password=XXXX;Connect Timeout=10;Encrypt=False;Application Name=""vNEXT"" Works perfectly on Windows using same runtime as above. Perform a dnu restore --no-cache before running console application. First SqlClient.Open connection results in below stack trace **A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 - An internal exception was caught) ---> System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> Interop+OpenSsl+SslException: Operation failed with error - 12** ``` fail: XXX.Ims.Common.Data.TenantDbConnectionStringBuilder[0] System.Data.SqlClient.SqlException: A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 - An internal exception was caught) ---> System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> Interop+OpenSsl+SslException: Operation failed with error - 12. --- End of inner exception stack trace --- at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, AsyncCallback asyncCallback, Object asyncState) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1](Func`4 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, Object state, TaskCreationOptions creationOptions) at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost) at System.Data.SqlClient.SNI.SNITCPHandle.EnableSsl(UInt32 options) --- End of inner exception stack trace --- at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at XXX.Ims.Common.Data.TenantDbConnectionStringBuilder.Build(Int32 tenantId) ClientConnectionId:c185aa23-7668-46f1-9a83-ad3018d65229 ``` " +5660 area-Infrastructure FileSystemWatcher tests fail intermittently on Unix due to too many open inotify instances http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/centos7.1_release_tst_prtest/1094/console ``` 19:32:38 FileSystemWatcherTests.FileSystemWatcher_EnableRaisingEvents [FAIL] 19:32:38 System.IO.IOException : The configured user limit (128) on the number of inotify instances has been reached. 19:32:38 Stack Trace: 19:32:38 at System.IO.FileSystemWatcher.StartRaisingEvents() 19:32:38 at FileSystemWatcherTests.FileSystemWatcher_EnableRaisingEvents() 19:32:38 Finished: System.IO.FileSystem.Watcher.Tests ``` +5662 area-System.Linq InterpreterTests.CompileInterpretCrossCheck_OrAssign failed in CI on OS X http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst/272/console ``` 18:30:18 System.Linq.Expressions.Tests.InterpreterTests.CompileInterpretCrossCheck_OrAssign [FAIL] 18:30:18 System.NullReferenceException : Object reference not set to an instance of an object. 18:30:18 Stack Trace: 18:30:18 at System.Linq.Expressions.Tests.InterpreterTests.Verify(Expression expr) 18:30:18 at System.Linq.Expressions.Tests.InterpreterTests.CompileInterpretCrossCheck_OrAssign() ``` cc: @bartdesmet, @VSadov +5663 area-System.Net Two System.Net.Security tests timing out on Windows I've seen this happen a couple of times now: ``` 05:07:44 System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_ServerNoEncryption_NoConnect [FAIL] 05:07:44 Assert.Throws() Failure 05:07:44 Expected: typeof(System.IO.IOException) 05:07:44 Actual: typeof(Xunit.Sdk.TrueException): Timed Out 05:07:44 Expected: True 05:07:44 Actual: False 05:07:45 Stack Trace: 05:07:45 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\tests\FunctionalTests\ClientAsyncAuthenticateTest.cs(172,0): at System.Net.Security.Tests.ClientAsyncAuthenticateTest.d__18.MoveNext() 05:07:45 --- End of stack trace from previous location where exception was thrown --- 05:07:45 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 05:07:45 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` and ``` 05:07:45 System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Successive_ClientWrite_Sync_Success [FAIL] 05:07:45 Handshake completed. 05:07:45 Expected: True 05:07:45 Actual: False 05:07:45 Stack Trace: 05:07:45 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Security\tests\FunctionalTests\SslStreamStreamToStreamTest.cs(76,0): at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Successive_ClientWrite_Sync_Success() ``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/1381/consoleFull +5667 area-System.Net Linux - SslStream.AuthenticateAsClient is not presenting client certificates to server _This issue exists on Linux only_ When establishing a connection to a TCP server where a client certificate is required, the client certificate does not get passed to the server side. The connection then gets aborted by the server, resulting in an exception as below. Using NetMon, we can observe during that handshake that the server successfully sends its certificate to the client, but the client never presents the client certificate to the server. At this point, the server will send an RST and the connection is killed. I've isolated the repro to using just a TcpClient and TcpServer + SslStream - see https://gist.github.com/iamjasonp/27cd1ebce287f8b51d0e for the rudimentary repro. Platforms tested - .NET Desktop - :white_check_mark: - .NET Core - Windows: :white_check_mark: - .NET Core - Linux: :x: First chance exception caught: ``` 'System.Security.Authentication.AuthenticationException' in System.dll Additional information: The remote certificate is invalid according to the validation procedure. ``` Server call stack: ``` System.dll!System.Net.Security.SslState.ForceAuthentication(bool receiveFirst, byte[] buffer, System.Net.AsyncProtocolRequest asyncRequest) System.dll!System.Net.Security.SslState.ProcessAuthentication(System.Net.LazyAsyncResult lazyResult) System.dll!System.Net.Security.SslStream.AuthenticateAsServer(System.Security.Cryptography.X509Certificates.X509Certificate serverCertificate, bool clientCertificateRequired, System.Security.Authentication.SslProtocols enabledSslProtocols, bool checkCertificateRevocation) TcpRepro-Server.exe!Examples.System.Net.SslTcpServer.ProcessClient(System.Net.Sockets.TcpClient client) TcpRepro-Server.exe!Examples.System.Net.SslTcpServer.RunServer() TcpRepro-Server.exe!Examples.System.Net.SslTcpServer.Main(string[] args) ``` This also looks to be the root cause of the issue in https://github.com/dotnet/wcf/issues/619#issuecomment-173177433 +5671 area-System.IO Add Canterbury Corpus perf tests to Compression Our System.IO.Compression tests were using deterministically generated random data to test compression/decompression time. While the results were useful, they missed a scope of tests that is required for good compression testing. This commit adds perf tests for GZipStream that make use of the popular Canterbury Corpus testing suite. resolves #5423. Requires https://github.com/dotnet/corefx-testdata/pull/7 @stephentoub @bjjones +5678 area-System.Net Enable System.Net.Security tests on OS X +5681 area-System.IO Add async ZipFile APIs All ZipFile APIs are currently synchronous. This means manipulations to zip files will always block a thread. We should investigate using an async file and calling async IO APIs (ReadAsync/WriteAsync) to free up the thread while IO is happening. https://github.com/dotnet/corefx/pull/5680 +5683 area-System.Net Allow the remote cert validation test to pass for an UntrustedRoot SInce it's not practical to require particular trust on individual machines, allow the tests to pass when the root cert is untrusted. Fixes #5555. cc: @stephentoub @CIPop @eerhardt +5685 area-System.Security CentOS: X509Store(Root, LocalMachine) doesn't contain all the system certs "Ubuntu uses a hybrid model of ""one giant file"" and ""one cert per file"", which led to the initial implementation of X509Store being what it is. CentOS just uses the ""one giant file"" approach, so we only read the first cert out of it and call it a day. When reading the system cert files we should read until the file is drained. " +5688 area-System.Net Enable System.Net.Security tests on OS X Fixes #4606 cc: @bartonjs, @vijaykota, @cipop, @davidsh +5689 area-System.Data Will DbConnection be abstracted behind an interface? I've started building out a little ORM project for .Net Core and noticed that the DbConnection did not have any interfaces that I can wrap my providers behind. Is this something in the roadmap? If not, what is the expectation for unit testing, fakes by inheritance and what was the reasoning behind making this change from how .Net worked? Would this mean I have to build an abstraction layer over IDbConnection/DbConnection so I can support a .Net 4.5 implementation & a .Net Core implementation? I tried looking for some documentation or issues related to this to help understand the direction you are going with DbConnection; came up empty. +5690 area-System.Net RC2: Porting System.Net.Primitives contract change Porting the fix for #4927 (PR: #5569) The code changes also include small fixes for the sln and csproj files that will allow developers to run the tests in Visual Studio (mostly VS generated changes, ensuring that the GUIDs are unique and the SLN matches the csproj information). @leecow @ellismg PTAL /cc: @davidsh @stephentoub +5691 area-System.Net RC2: Porting SslStream Async overrides and regression fix Porting the fixes for #5077: #5541 #5642 The second commit is fixing a regression that was introduced during a merge/pattern change made concurrently with the initial port development. @leecow @ellismg PTAL /cc: @davidsh @stephentoub +5694 area-System.Net System.Security.Principal.Windows missing runtime assembly on Linux Or incorrectly referenced? Not sure, not directly referenced It restores fine `Installing System.Security.Principal.Windows.4.0.0-rc2-23722` Then errors in use ``` Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Security.Principal.Windows, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. ---> System.IO.FileNotFoundException: Could not load the specified file. at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName) at System.Runtime.Loader.AssemblyLoadContext.Resolve(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName) --- End of inner exception stack trace --- at System.Net.ContextAwareResult.Cleanup() at System.Net.LazyAsyncResult.Complete(IntPtr userToken) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Net.ContextAwareResult.Complete(IntPtr userToken) at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionCallback(Int32 numBytes, SocketError errorCode) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() bash: line 1: 13883 Aborted (core dumped) dnx test fail: Exit code 134 from /usr/bin/env fail: Stack trace: ``` No issues on Windows +5700 area-System.IO "RC2 Test failed: DeletedTests.FileSystemWatcher_Deleted_Negative: ""Should not observe a deleted event within 500ms""" In #5690: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst_prtest/151/consoleFull#-21371504001f1a4601-6aec-4fd5-b678-78d4389fd5e8 @stephentoub @nguerrera PTAL ``` 00:16:53 === TEST EXECUTION SUMMARY === 00:16:53 System.IO.MemoryMappedFiles.Tests Total: 342, Errors: 0, Failed: 0, Skipped: 0, Time: 7.944s 00:16:56 DeletedTests.FileSystemWatcher_Deleted_Negative [FAIL] 00:16:56 Should not observe a deleted event within 500ms 00:16:56 Expected: False 00:16:56 Actual: True 00:16:56 Stack Trace: 00:16:57 at Utility.ExpectNoEvent(WaitHandle eventOccurred, String eventName, Int32 timeout) 00:16:57 at DeletedTests.FileSystemWatcher_Deleted_Negative() 00:16:59 Finished: System.IO.FileSystem.Tests 00:16:59 00:16:59 === TEST EXECUTION SUMMARY === 00:16:59 System.IO.FileSystem.Tests Total: 2029, Errors: 0, Failed: 0, Skipped: 0, Time: 7.687s 00:17:03 Finished: System.IO.FileSystem.Watcher.Tests 00:17:03 00:17:03 === TEST EXECUTION SUMMARY === 00:17:03 System.IO.FileSystem.Watcher.Tests Total: 58, Errors: 0, Failed: 1, Skipped: 0, Time: 17.725s 00:17:04 error: One or more tests failed while running tests from 'System.IO.FileSystem.Watcher.Tests'. Exit code 1. ``` +5701 area-System.Xml "Unix test: System.Xml.XDocument: ""Mismatch : expected: ?>""" Failed in #5690 Some Console.WriteLine race condition is hiding the test execution summary for the test that failed: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst_prtest/146/consoleFull#-21371504001f1a4601-6aec-4fd5-b678-78d4389fd5e8 @krwq, @sepidehMS PTAL ``` 23:53:19 === TEST EXECUTION SUMMARY === 23:53:19 System.Xml.XDocument.TreeManipulation.Tests Total: 2, Errors: 0, Failed: 0, Skipped: 0, Time: 0.988s 23:53:19 Mismatch : expected: test]]> 23:53:19 actual: test]]> 23:53:19 Mismatch : expected: 23:53:19 actual: 23:53:19 23:53:19 23:53:19 Mismatch : expected: ?> 23:53:19 actual: 23:53:19 ?> 23:53:19 23:53:19 Finished: System.Xml.XDocument.xNodeBuilder.Tests 23:53:19 23:53:19 === TEST EXECUTION SUMMARY === 23:53:20 System.Xml.XDocument.xNodeBuilder.Tests Total: 19, Errors: 0, Failed: 0, Skipped: 0, Time: 1.178s 23:53:20 Finished: System.Xml.XDocument.SDMSample.Tests ``` +5706 area-System.Diagnostics System.Diagnostics.Tracing should be updated to 4.1.0 https://github.com/dotnet/corefx/commit/aa42148a3ef85bf767a6a14124cfb0492d45bccc added surface area over the last stable version and should have updated the minor version of this assembly. /cc @cshung +5708 area-System.Net SslProtocols obsolete warnings-as-errors while trying to upgrade to newest packages e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_release_prtest/1441/ ``` d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\Common\tests\System\Net\SslProtocolSupport.cs(21,15): error CS0618: 'SslProtocols.Ssl3' is obsolete: 'This value has been deprecated. It is no longer supported. http://go.microsoft.com/fwlink/?linkid=14202' [d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Http.WinHttpHandler\tests\UnitTests\System.Net.Http.WinHttpHandler.Unit.Tests.csproj] ``` cc: @davidsh, @CIPop, @SidharthNabar +5710 area-System.Net TLS 1.0 in Windows Client may still vulnerable to Beast This is a followup issue raised on https://github.com/dotnet/corefx/issues/5187#issuecomment-175138937 Based on this security vulnerability. http://blogs.msdn.com/b/kaushal/archive/2012/01/21/fixing-the-beast.aspx **_The BEAST vulnerability is addressed by splitting (or fragmenting) the application data in to SSL records in the fashion 1/(n-1). This is explained in RFC2246 (section 6.2.1 Fragmentation).**_ In Unix, we get these split bytes which is the fix for Beast Vulnerability ![image](https://cloud.githubusercontent.com/assets/698547/12596701/0263bd3c-c436-11e5-9f02-c6c8661dedb2.png) But In Windows, we don't get this split bytes. ![image](https://cloud.githubusercontent.com/assets/698547/12596711/11c30742-c436-11e5-8f21-aaac7faad199.png) I just want to make sure that TLS 1.0 in Windows Client does not vulnerable to this BEAST Security issue. References : http://blogs.msdn.com/b/kaushal/archive/2012/01/21/fixing-the-beast.aspx http://blogs.msdn.com/b/kaushal/archive/2011/10/03/taming-the-beast-browser-exploit-against-ssl-tls.aspx http://vnhacker.blogspot.com/2011/09/beast.html Sql Server 2008 Patch - https://support.microsoft.com/en-us/kb/2653857 +5714 area-System.Net Allowing Ssl2,3 within tests. Fixes #5708. @Priya91 @stephentoub @davidsh PTAL We can either merge or just cherry-pick this from my private branch to the original PR (#5703). +5715 area-System.Net Reorganize System.Net.Http and remove the Internal folder. Reogranize System.Net.Http by removing the Internal folder and changing the csproj. +5716 area-System.Net Ensure that System.Net tests are executing against the checked-in implementations /cc: @davidsh Several System.Net test assemblies are referencing externally downloaded packages for System.Net dependencies.This makes it harder to discover issues early in development (see #5708 for an example). We should change the test csproj files to directly reference other System.Net implementations (see NameResolution, Sockets for examples). +5717 area-System.Net Removing/updating TODOs from System.Net CSProj files System.Private.Networking is now removed but we want to keep the tests executing against locally built binaries. Added a TODO tracking issue for System.Net.Http. @stephentoub @davidsh PTAL (related: #5708) +5726 area-System.Net Implementing NegoState.Unix.cs It includes the implementation on NegoState.Unix pal on top of the common refactoring changes( https://github.com/dotnet/corefx/pull/5581) Please refer to the Commit 4 of this PR for reviewing. Includes: Implementation of NegoState.Unix.cs Methods. Implementaion of SafeHandles to be used. Tested locally as Linux client with windows server. cc: @stephentoub , @bartonjs @vijaykota +5727 area-Infrastructure Ubuntu Debug Build and Test CI out of space E.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/ubuntu_debug_prtest/1464/console > fatal: cannot create directory at 'src/System.Text.RegularExpressions': No space left on device +5730 area-System.Numerics Add Matrix3x3 I am working on a project involving graphics & Win2D and I would welcome to have an invertible Matrix3x3 type, mainly for transformations between color spaces. Anyone else? +5733 area-Infrastructure Enable building and publishing of portable PDBs for x-plat libraries For our x-plat builds we need to start producing portable PDBs. Once we do that we need to also ensure they are getting published like our windows PDBs. +5737 area-System.Security RSACryptoServiceProvider throws System.DllNotFoundException: Unable to load DLL 'Advapi32.dll' on Linux Opened on behalf of @YEVHENO from https://github.com/dotnet/coreclr/issues/2876 Running ASP.NET 5 application on the coreclr on Linux fails when using the RSACryptoServiceProvider DNX version: 1.0.0-rc1-final ``` System.DllNotFoundException: Unable to load DLL 'Advapi32.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Internal.NativeCrypto.CapiHelper.Interop.CryptGetDefaultProvider(Int32 dwProvType, IntPtr pdwReserved, Int32 dwFlags, StringBuilder pszProvName, Int32& IntPtrProvName) at Internal.NativeCrypto.CapiHelper.GetDefaultProvider(Int32 dwType) at Internal.NativeCrypto.CapiHelper.OpenCSP(CspParameters cspParameters, UInt32 flags, SafeProvHandle& safeProvHandle) at Internal.NativeCrypto.CapiHelper.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer) at System.Security.Cryptography.RSACryptoServiceProvider.ImportCspBlob(Byte[] keyBlob) ``` +5739 area-System.Net SendRecvAPM_Single_Stream_TCP_IPv4 failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst_prtest/208/console ``` 12:33:50 System.Net.Sockets.Tests.SendReceive.SendRecvAPM_Single_Stream_TCP_IPv4 [FAIL] 12:33:50 Assert.True() Failure 12:33:50 Expected: True 12:33:50 Actual: False 12:33:50 Stack Trace: 12:33:50 at System.Net.Sockets.Tests.SendReceive.SendRecvAPM_Stream_TCP(IPAddress listenAt, Boolean useMultipleBuffers) 12:33:50 at System.Net.Sockets.Tests.SendReceive.SendRecvAPM_Single_Stream_TCP_IPv4() ``` +5740 area-System.IO Consider adding an EventSource for System.IO.FileSystem We should consider adding an EventSource to System.IO.FileSystem. Events could include files being opened/closed, interesting places where we fall off a fast-path (e.g. allocating extra buffers), etc. +5741 area-System.Runtime TimeZoneInfo DisplayName is always set to StandardName on Unix "In order to read the localized standard and daylight display names of time zones on Unix, we are using ICU. There doesn't appear to be a ""C"" api for the generic name. There is an ICU C++ api to get the 'generic' name. However, we can only use the ""C"" apis and not the C++ apis. See [Remove OSX Homebrew ICU dependency](https://github.com/dotnet/coreclr/pull/1851). I can think of 2 ways to fix this: 1. Use the C++ apis on platforms that allow it (not OSX) 2. Read the CLDR data directly. Some background from @mj1856, if we decide to take the second approach: part of the reason generic names are challenging is because there are three different patterns in the raw data. Examples of each: Pattern 1 – Generic name differs from both standard and daylight names: Generic Name: “Pacific Time” Standard Name: “Pacific Standard Time” Daylight Name: “Pacific Daylight Time” Pattern 2 – Generic name matches the standard name: Generic Name: “Central European Time” Standard Name: “Central European Time” Daylight Name: “Central European Summer Time” Pattern 3 – No generic name exists, so revert to the location based form: Generic Name: none, so use “UK Time” Standard Name: “Greenwich Mean Time” Daylight Name: “British Summer Time” I’m not sure exactly why, but I can confirm in these [docs](http://userguide.icu-project.org/datetime/timezone): > Generic name, such as ""Pacific Time"". Currently, this is not supported by ICU. Not sure why they chose not to implement, but might have something to do with the above. Also worth mentioning, CLDR Generic Name is not quite a one-to-one match with our idea of a Display Name. Consider that many build time zone pickers by iterating over all time zones given by TimeZoneInfo.GetSystemTimeZones, then putting them in a dropdown with Id for the value and DisplayName for the text shown to the user. This works because Display Names are unique within the results. It doesn’t quite work with Generic Name, as multiple different time zones will use the same Generic Name. For example, both Europe/Paris and Europe/Berlin will have “Central European Time” as their generic name, because they’re both in the same CLDR metazone. To build a picker for IANA zones that doesn’t actually show the Id to the user requires also asking the user for a country. If we use Generic Name as a Display Name, we might want to concatenate a country name or code, such as “Central European Time (France)” / “Central European Time (Germany)”. " +5743 area-Infrastructure Clean up build.sh and mono.targets Once we move to using .Net Core MSBuild for x-plat build, we should clean up build.sh script since it has a lot of code that downloaded msbuild plus it had some checks for prerequisites. We should also stop using mono.targets, since they shouldn't be required anymore. +5744 area-System.Reflection Allow reflection to identify substituted generic types "For overload resolution tie breakers Roslyn needs a way to differentiate between a substituted generic and actual type, e.g: ``` C# class Foo { void Bar(T v); void Bar(int v); } ``` Consider this code: ``` C# dynamic foo = new Foo(); foo.Bar(2); ``` Notice the use of `dynamic`. This forces the overload resolution to happen at runtime, with reflection being the provider for the type information the C# binder uses. The goal is to have overload resolution pick the second method, instead of failing. They currently use `MetadataToken` to compare the original definitions. Given this API throws in certain cases now (e.g. CoreRT), it would be better if we could introduce a new APIs. ### Repro ``` C# class Program { static void Main(string[] args) { dynamic foo = new Foo(); foo.Bar(2); } class Foo { public void Bar(T v) { System.Console.WriteLine(""generic""); } public void Bar(int v) { System.Console.WriteLine(""not generic""); } } } ``` - Works on .NET Framework and prints ""not generic"", - On .NET Core the behavior is not guaranteed. The late binder will try to get to `MetadataToken` through private reflection and use that, but if that fails - it is not there or throws -- it will will just pick one of the overloads at random. @VSadov @weshaggard @pallavit " +5745 area-System.Data Add Default Configuration Option in System.Data.Common.csproj The csproj should include a default Windows_Debug Configuration to prevent potential packaging issues on Windows +5749 area-System.Net Add a clean way to cancel a long-running Socket operation (e.g. accept or connect) The normal pattern to listen for incoming connections is: ```c# using (var s = new Socket(...)) { s.Bind(...); s.Listen(...); while (true) { var connectionSocket = s.Accept(); Task.Run(() => ProcessConnection(connectionSocket)); } } ``` The only way to reliably cancel that loop is to close the socket. This works, but it causes an `ObjectDisposedException` which is usually one of the reserved exception types that always indicate a bug such as `NRE` and `ArgumentNullException`. Catching that exception might hide real bugs. You might confuse the intended `ObjectDisposedException` with one that is not supposed to happen but did (bug). Also, this seems to be racy. What if the handle is closed right before `Accept` passes it to the native `accept` function? Is that even thread-safe?! Could be a use of an invalid/unintended handle. Note sure if the BCL has a way to prevent that scenario. Some people suggest to break the loop by connecting to that socket. That might not be possible depending on what interface you are listening on. There are no guarantees to be able to connect anywhere at all. Also, this feels like such a dirty hack. There are ideas of using `IAsyncResult.WaitHandle` with a timeout or in combination with another wait handle but that's quite nasty code and much slower than not using a wait handle. It's much faster to let the kernel wait as part of a synchronous call than to execute an asynchronous call, then create an event object, wait for it and then dispose of all of this. Also, in case you do a `WaitHandle.WaitAny(ioHandle, cancelHandle)` and you find yourself in the cancellation case you _still_ need to abort the IO using `Socket.Close` which is the same dirtiness. It does not matter for this issue whether you're using sync or async IO. Please add a way to cancel any long-running socket operation such as accept, connect, read, write, shutdown in a clean way. This could take the form of a `CancellationToken` or a method `Socket.AbortPendingOperations()`. A cancelled operation should throw an exception that allows to identify the situation so that it can be caught reliably. Cancelling is not just important for breaking the accept loop but it's useful for all other long-running operations as well. Sometimes you need to be able to shut down processing. +5750 area-System.Net SendRecvAsync_Stream_TCP test failed on OS X http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst/306/console ``` 09:48:08 Unhandled Exception: Xunit.Sdk.EqualException: Assert.Equal() Failure 09:48:08 Expected: Success 09:48:08 Actual: OperationAborted 09:48:08 at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer) 09:48:08 at System.Net.Sockets.Tests.SocketAsyncExtensions.<>c__DisplayClass3_0.b__0(Object _, SocketAsyncEventArgs args) 09:48:08 at System.Net.Sockets.Tests.SocketAsyncExtensions.ReceiveAsync(Socket socket, SocketAsyncEventArgs eventArgs, IList`1 buffers, SocketFlags flags, Action`1 handler) 09:48:08 at System.Net.Sockets.Tests.SendReceive.<>c__DisplayClass4_3.b__2(Int32 received) 09:48:08 at System.Net.Sockets.Tests.SocketAsyncExtensions.<>c__DisplayClass3_0.b__0(Object _, SocketAsyncEventArgs args) 09:48:08 at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e) 09:48:08 at System.Net.Sockets.SocketAsyncEventArgs.ExecutionCallback(Object state) 09:48:08 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 09:48:08 at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationSuccess(SocketError socketError, Int32 bytesTransferred, SocketFlags flags) 09:48:08 at System.Net.Sockets.SocketAsyncEventArgs.CompletionCallback(Int32 bytesTransferred, SocketError socketError) 09:48:08 at System.Net.Sockets.SocketAsyncEventArgs.TransferCompletionCallback(Int32 bytesTransferred, Byte[] socketAddress, Int32 socketAddressSize, SocketFlags receivedFlags, SocketError socketError) 09:48:08 at System.Net.Sockets.SocketAsyncContext.<>c.b__42_0(Object args) 09:48:08 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 09:48:08 at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 09:48:08 at System.Threading.ThreadPoolWorkQueue.Dispatch() ``` +5754 area-System.Net Linux workaround for multiple connect attempts per socket does not work "On Linux, we attempt to re-use a socket for multiple connection attempts by ""connecting"" the socket to an invalid address between each ""real"" connect attempt. See [PrimeForNextConnectAttempt](https://github.com/dotnet/corefx/blob/ac67ffac987d0c27236c4a6cf1255c2bcbc7fe7d/src/System.Net.Sockets/src/System/Net/Sockets/SocketPal.Unix.cs#L525). This does not work as intended. In the current implementation, the raw call to `connect()` cases any pending call to `epoll_wait()` to wake up and mark the socket as connected; any subsequent connect attempt on a non-blocking socket (or an Async connect attempt) then appears to succeed immediately, whether it did in fact or not. This is causing some tests (e.g., `System.Net.Sockets.Tests.DualMode.ConnectV4V6IPAddressListToV6Host_Success`) to appear to succeed, even though the connection is never successfully established. Once #5472 is merged, this test will hang, as the non-blocking connect will now be blocking, and this bug will no longer mask the underlying issue. I tried fixing this in the blocking case, by adding a call to `PrimeForNextConnectAttempt` after a blocking `connect` fails, and discovered that this also does not work. The subsequent connect attempt simply blocks until it times out. If I disable this feature entirely, forcing Socket methods that connect to address lists to use multiple sockets instead, then the test passes. " +5755 area-System.Net System.Net EventSources conflict, reducing total logging "Given: ``` C# internal class ConsoleEventListener : EventListener { private static string[] s_optOut = { ""System.Threading.Tasks.TplEventSource"", ""System.Diagnostics.Eventing.FrameworkEventSource"", }; public ConsoleEventListener() { foreach (EventSource source in EventSource.GetSources()) { if (Array.IndexOf(s_optOut, source.Name) == -1) { EnableEvents(source, EventLevel.LogAlways); } } } protected override void OnEventSourceCreated(EventSource eventSource) { base.OnEventSourceCreated(eventSource); if (Array.IndexOf(s_optOut, eventSource.Name) == -1) { EnableEvents(eventSource, EventLevel.LogAlways, EventKeywords.All); } } protected override void OnEventWritten(EventWrittenEventArgs eventData) { Console.Write(""Event ""); Console.Write(eventData.EventSource.Name); Console.Write('-'); Console.Write(eventData.EventId); Console.Write("" (""); if (eventData.Payload != null) { bool writeComma = false; foreach (object value in eventData.Payload) { if (writeComma) { Console.Write("", ""); } Console.Write(value); writeComma = true; } } Console.WriteLine("").""); } } ``` Open an instance of the logger, then proceed to open a TcpListener and a (client) SslStream. Notice that many of the logs appear to be missing, which is likely due to: ``` ... Event Microsoft-System-Net-Debug-1 (Dns.GetHostName). Event Microsoft-System-Net-Debug-0 (ERROR: Exception in Command Processing for EventSource Microsoft-System-Net-Debug: An instance of EventSource with Guid 99e4576b-9d7e-585f-8b32-0ac3082f2282 already exists.). ... Event Microsoft-System-Net-1 (System.Net.Sockets.Socket, 55915408, BeginConnect, localhost, 0, 0). Event Microsoft-System-Net-0 (ERROR: Exception in Command Processing for EventSource Microsoft-System-Net: An instance of EventSource with Guid 501a994a-eb63-5415-9af1-1b031260f16c already exists.). ... Event Microsoft-System-Net-2 (System.Net.Sockets.TcpClient, 43495525, GetStream, System.Net.Sockets.NetworkStream, 2606490, 0). Event Microsoft-System-Net-Debug-0 (ERROR: Exception in Command Processing for EventSource Microsoft-System-Net-Debug: An instance of EventSource with Guid 99e4576b-9d7e-585f-8b32-0ac3082f2282 already exists.). ... ``` Each of the event 0 events seems to be a place where the next System.Net library woke up and tried logging something, and then that event source never gets activated due to a duplicate registration. Looks to be true for both Windows and Linux. " +5756 area-Serialization Update serialization to use metadata writer to support persistence of generated code to disk Related issue: #4561 +5757 area-System.Net Sockets logging emits an argument/parameter count mismatch error Given the ConsoleEventLogger from #5755, lots of errors seem to be emitted from Sockets logging: ``` Event Microsoft-System-Net-2 (System.Net.Sockets.Socket, 55915408, Receive, System.Int32, 5, 0). Event Microsoft-System-Net-1 (System.Net.Sockets.Socket, 55915408, Receive, , 0, 0). Event Microsoft-System-Net-Sockets-0 (Event 5 was called with 3 argument(s), but it is defined with 2 parameter(s).). Event Microsoft-System-Net-Sockets-5 (System.Byte[], Receive). ``` +5758 area-System.Net Enable Client Auth Certs for Unix SslStream. 1) Pass the handle The Windows SslStream flow is to start a TLS session as server auth, then process a CredentialsRequired during the handshake, add credentials to the existing session, and continue. It's hard to maintain symmetry on that flow for the Unix pathway, due to the API differences in OpenSSL and SChannel. So, the Unix session will always pass down to native the provided client auth credentials, and OpenSSL can use them when it sees appropriate. 2) Untrusted certificates should still complete handshake The Unix SslStream implementation had two different places that a client authentication certificate was validated. The first one was from an OpenSSL callback, and reporting an error will interrupt the TLS handshake. The second was from after the handshake, and presents the results to the user validation callback to determine if data should be sent after the handshake. In the ideal case the first version is redundant, in a user-handled case it caused a failure when success was expected; so it should just be removed. 3) Enable the end-to-end client authentication cert test for Unix Also asserts that the IsMutuallyAuthenticated property gets set, the certificates used were the correct ones, and that both forward and callback versions of providing the certificate function. Fixes #5667. cc: @CIPop @davidsh +5760 area-Meta Add documentation around platform naming Given the widespread use of .NET, there is some room for confusion what certain platforms names mean, for instance here: https://github.com/dotnet/corefx/issues/2394#issuecomment-175933165 I've added this doc to help clarify a bit what we mean by X and that we sometimes say Y instead. Kudos to @mellinoe for providing me with a head start :smile: @richlander @blackdwarf @weshaggard +5763 area-System.Data ObjectDisposedException on OpenSSL when connecting to SQLAzure on Unix I notice SSLStream (OpenSSL) on Unix throws ObjectDisposedException after finish connecting on SqlAzure on Unix. (There is no exception on Prem). This may be related with issue on Mac as well. On Mac, it throws RemoteCertificateNameMismatch. https://github.com/dotnet/corefx/issues/5173 ![image](https://cloud.githubusercontent.com/assets/698547/12663551/fe2abc94-c5dd-11e5-9f22-be1775c8df01.png) ``` Unhandled Exception: System.ObjectDisposedException: Safe handle has been closed at System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean& success) at System.StubHelpers.StubHelpers.SafeHandleAddRef(SafeHandle pHandle, Boolean& success) at Interop.Ssl.SslShutdown(SafeSslHandle ssl) at Interop.OpenSsl.Disconnect(SafeSslHandle context) at System.Net.Security.SafeDeleteContext.ReleaseHandle() at System.Runtime.InteropServices.SafeHandle.InternalFinalize() at System.Runtime.InteropServices.SafeHandle.Dispose(Boolean disposing) at System.Runtime.InteropServices.SafeHandle.Finalize() [1] 24788 abort (core dumped) ./corerun xunit.console.netcore.exe System.Data.SqlClient.Tests.dll -class ``` +5764 area-System.Collections Simplify and Modernize System.Collections tests The tests for System.Collections were ported from an old framework and filled with Drivers and unnecessary obfuscations. I simplified them and consolidated code wherever possible. - refactored the tests to maximize code reuse and achieve a higher coverage rate. - Interface-specific tests were added for interface-specific behavior e.g. ICollection_Generic_tests. I added these tests to Common/tests alongside the existing IEnumerableTest, ICollectionTests, etc. - Note that these new classes encompass all of the coverage that the existing IEnumerableTest/IDictionaryTest/etc do. However, those classes are being used in System.ObjectModel and may not be deleted until that library is modified to use the new structures. I am going to do that at a later date. - removed some lines of code form System.Collections that weren't being hit. - Added generic scenarios for every collections for at least one value type (int) and one reference type (string). Some collections (e.g. HashSet) have many more test sets Improvements: 16547 additions, 44866 deletions => 28319 lines removed | | before | after | | --- | --- | --- | | line coverage | 74.5% | 96.2% | | branch coverage | 70.4% | 92.8% | | execution time | 49.388 s | 41.496 s | | number of tests | 1604 | 36140 | *coverage doesn't include Dictionary or List since those are in mscorlib. For those libraries (particularly Dictionary) I mostly just added new tests and didn't remove old ones. resolves #754, #4964 cc: people who have been active in the Collections space recently: @stephentoub @hughbe @Clockwork-Muse +5765 area-System.Net Reenable cert validation test on Linux cc: @bartonjs +5766 area-Meta Port System.Xaml to .NET Core Filed as a result of the discussion in #2394. **Note**: this doesn't represent a commitment from us to open source System.Xaml or to even port it to .NET Core -- it's simply capturing the community request to do so. ------------------------------------------------------------------------------------- ### Scenarios 1. WF (Workflow Foundation) - #2394 * However, note that [CoreWF](https://github.com/dmetzgar/corewf) is also trying to abstract serialization from Xaml (as it was originally intended). That said, all existing Desktop serialziations are in Xaml and we need it for transition path at minimum (having converters would be another option). 1. Prereq for WPF * Note: WPF / GUI frameworks are a big step for .NET Core (which targets server and console apps scenarios today) - it needs full end-to-end plan & commitment first. 1. Prereq for UI frameworks * https://github.com/AvaloniaUI/Avalonia - @grokys (see https://github.com/dotnet/corefx/issues/5766#issuecomment-275260663) * [Eto.Forms](https://github.com/picoe/Eto) - @cwensley (see https://github.com/dotnet/corefx/issues/5766#issuecomment-275282292) 1. ... more scenarios will be added based on the discussion * @Mike-EEE's [*devops* scenario](https://github.com/dotnet/corefx/issues/5766#issuecomment-275164640) - waiting on more details * @Kation's [non-UI framework scenarios](https://github.com/dotnet/corefx/issues/5766#issuecomment-275310753) - waiting on more details +5768 area-System.Data RemoteCertificateNameMismatch on OSX SSLStream.ClientAuthenticate to SQL Azure In Mac OS when using SSLStream to AuthenticateAsClient to SQL Azure, we get RemoteCertificateNameMismatch Policy error during validation. Here is how we init the stream https://github.com/dotnet/corefx/blob/ac67ffac987d0c27236c4a6cf1255c2bcbc7fe7d/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.cs#L151 When we authenticate as Client https://github.com/dotnet/corefx/blob/ac67ffac987d0c27236c4a6cf1255c2bcbc7fe7d/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.cs#L177 It give us policy error : RemoteCertificateNameMismatch https://github.com/dotnet/corefx/blob/ac67ffac987d0c27236c4a6cf1255c2bcbc7fe7d/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.cs#L221 This issue is the root cause of https://github.com/dotnet/corefx/issues/5173 +5770 area-System.Net Adding fallback logic to NTLM This includes implementing the NTLM logic for OSX/Linux. fallback logic to ntlm if Kerberos fails. tested locally as linux client against windows server. ongoing testing with OSX client , will update here once testing is done. Please refer to commit 5 for the changes.. other commits are maintained and reviewed separately in separate PRs. cc @stephentoub @bartonjs @vijaykota +5772 area-System.Net Refactoring the Windows specific code in NegotiateStream summary Renaming NegoState.Windows.cs to InternalNegoState.cs as it had much common code applicable for Unix. (commit1) Separating out the common code and windows specific code in InternalNegoState and NegoState.Windows.cs respectiviely. Adding NegotiateInfoClass.cs to be used by Unix impl. Tested locally both AuthenticateAsServer/Client on Windows. /cc:@stephentoub @bartonjs @CIPop @vijaykota +5773 area-System.Net Implementing NegoState.Unix.cs It includes the implementation on NegoState.Unix pal on top of the common refactoring changes( #5581) Please refer to the Commit 4 of this PR for reviewing. Includes: Implementation of NegoState.Unix.cs Methods. Implementaion of SafeHandles to be used. Tested locally as Linux client with windows server. cc: @stephentoub , @bartonjs @vijaykota +5774 area-System.Net Introducing native shims for libgssapi in order to support NegotiateStream Introducing native shims for libgssapi in order to support NegotiateStream +5782 area-System.Data Where is DbProviderFactories??? Hi... in NET451 we have this class called DbProviderFactories that has a method called GetFactory that allows clients to obtain a DbProviderFactory given a connection... I am trying to port to NETCORE50 and I don't see DbProviderFactories although I do see DbProviderFactory... are there plans to include DbProviderFactories in NETCORE50? or is there another generic way in NETCORE50 to obtain a connection's DbProviderFactory? thank you // // Summary: // Returns an instance of a System.Data.Common.DbProviderFactory. // // Parameters: // connection: // The connection used. // // Returns: // An instance of a System.Data.Common.DbProviderFactory for a specified connection. public static DbProviderFactory GetFactory(DbConnection connection); +5788 area-Meta Update platform-names.md Clarifications and corrections +5789 area-Infrastructure Have dotnet-bot automatically submit PRs for package updates We should have @dotnet-bot automatically do https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/project-nuget-dependencies.md#upgrading-a-package-dependency when new packages are available and submit a PR. /cc @stephentoub @dagood @markwilkie +5790 area-System.Net Disable multiple connect attempts per socket on Linux. The Linux implementation of multiple connect attempts per socket does not work correctly, per #5754. This change disables multiple connect attempts on all Unix platforms (since Linux was the only one that claimed to support it). Fixes #5754 @pgavlin , @stephentoub +5792 area-Infrastructure Add build.cmd property to toggle native build "Currently the native Windows build will run whenever build.cmd is called. This commit adds a toggle through msbuild Property syntax to enable/disable the native or managed build. By default both are built. To build just the native components: ./build.cmd /p:buildspec=native To build just the managed components: ./build.cmd /p:buildspec=managed To build both: ./build.cmd or ./build.cmd /p:buildspec=both I opted to use syntax of the msbuild format so that the args can then be passed as %\* to msbuild without causing errors. I originally used ""native"" or ""managed"" but it felt jarring against the other args to build.cmd and required passing a cloned args array to msbuild. Using a property seemed cleaner. resolves #5311 @weshaggard @stephentoub " +5800 area-System.Xml System.Xml.XmlNodeReader is not Available in .Net Core This API is not available in .Net Core. https://github.com/dotnet/wcf/issues/702 is being blocked by this issue. +5811 area-System.Net What's the recommended approach for reusing/disposing new HttpClient handlers? It's been recommended to reuse the full framework's `HttpClientHandler` across multiple requests instead of disposing it every time (because disposing it means the performance hit of closing and re-opening the underlying connection). Does this advice stands true for the brand new world of `CurlHandler` and `WinHttpHandler`? +5814 area-System.Net Fix HttpWebRequest to allow content-related headers without content HttpWebRequest, part of the System.Net.Requests contract, has historically allowed any request header to be sent. However, in CoreFx it is built on top of System.Net.Http. And System.Net.Http has a stricter object model where it requires headers to be added only to specific collections. The bug was trying to add a content-related header without any content being sent. This worked in .NET Framework (Desktop). While we encourage developers to migrate to the newer System.Net.Http library, we try to maintain app-compat where possible for HttpWebRequest. The fix is to internally create an empty HttpContent object when calling into System.Net.Http and place the content-related headers into that collection. Fixes #5565. +5819 area-System.Net HttpClient doesnt expose the correct method as virtual I want to extend HttpClient class to create a wrapper over it. The problem is that it doesnt have the right method exposed as virtual. The following method should be virtual. ``` public Task SendAsync( HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken) ``` Moreover, the following method should be new because it actually hides the implementation of the base method. ``` public override Task SendAsync( HttpRequestMessage request, CancellationToken cancellationToken) ``` +5822 area-System.Text Use XML comments in System.Text.Encodings.Web As a new library in corefx, System.Text.Encodings.Web should use XML comments to document the APIs, and should have `$(OutputPath)$(AssemblyName).xml` in the .csproj so that the XML comments are validated by the compiler, a documentation XML file is produced, and that documentation file is included in the NuGet package. +5824 area-Meta Add table of terms The document uses many terms that aren't defined. In order to avoid breaking the flow of the document, it's best if those are defined at the top of the file. This addresses much of the feedback raised in #5760. +5826 area-System.Net Remove SystemNative_PlatformSupportsMultipleConnectAttempts #5790 removed the uses of this shim. We need to remove the shim itself, once we have a new build of System.Threading.Socket that no longer needs it. This should be a matter of reverting 7000023f729abe20337ed91816c019744b6a6a5c. +5828 area-System.Data Investigate if named pipe path parsing can use URI utilities +5829 area-System.Net Socket.Connect methods that connect to multiple endpoints are broken on Unix "Unlike Windows, the sockets API on Linux and OSX does not allow a single socket to attempt more than one connection. We had attempted to do this on Linux, but it did not work (see #5754). `Socket` has multiple methods that depend on being able to try connections to multiple endpoints on a single socket: ``` csharp public void Connect(IPAddress[] addresses, int port) ``` ...attempts to connect to each of `addresses`, returning when one of them is successful. ``` csharp public void Connect(string host, int port) ``` ...does a DNS lookup, which may return multiple addresses, then attempts to connect to each of them until successful. ``` csharp public void Connect(EndPoint remoteEP) ``` If this is passed a `DnsEndPoint`, then this behaves the same as `Connect(string, int)`, trying all resolved addresses. Additionally, we support async variants of all of these. On Unix we currently ""fake"" this by creating multiple temporary sockets behind the scenes, trying to connect each of them to a different address. If one succeeds, we immediately disconnect it and connect the ""real"" socket to that address. This workaround has some possibly unacceptable implications: 1) Whichever endpoint we finally choose, we will end up connecting to it _twice_, once for the ""probe"" connection, to see if it will work, and again for the ""real"" connection. This will cause issues for servers that do not expect more than one connection, for load balancers that try to distribute connections, etc. It's also a lot of undesired network overhead. 2) Even though the first connection attempt succeeded, the second will not necessarily succeed. This is especially true in scenarios like DNS-based load balancing. So we have a functional issue here, where we may fail to connect the ""real"" socket in cases where we would have succeeded. I do not think we should leave this as-is, as it will create too many unexpected strange behaviors in code that uses these, expecting them to behave the same way as they do on Windows. So I propose doing one of the following: a) Remove the `Connect` overloads that take multiple endpoints, and the `DnsEndpoint` type, from the public contracts. -- or -- b) Change these Connect overloads to throw `PlatformNotSupportedException` on Unix, Also, change `Connect(EndPoint, int)` to throw `PlatformNotSupportedException` if passed a `DnsEndPoint`. In either case, we should provide sample code for how to code equivalent behavior using the remaining APIs. @stephentoub, @pgavlin, @CIPop, @davidsh, @SidharthNabar, please provide feedback. " +5831 area-Serialization XmlElementAttributes.Remove doesn't throw on missing element On Desktop this method is provided by CollectionBase, which throws when it can't find the element to remove: http://referencesource.microsoft.com/#mscorlib/system/collections/collectionbase.cs,147. The implementation in CoreFx defers to ArrayList, which does not exhibit the same exception pattern on Remove. +5832 area-System.Net System.Net.Sockets.Tests.DualMode.AcceptV6BoundToSpecificV4_CantConnect hangs on Unix With PR #5472, System.Net.Sockets.Tests.DualMode.AcceptV6BoundToSpecificV4_CantConnect hangs because it expects `Socket.Dispose` to unblock a synchronous call to `Socket.Accept`. Closing a socket does not cancel a blocking operation on Unix OSs. +5835 area-System.Net Override ReadByte on SslStream In an application that's using the Redis client library, a significant portion of the allocations are coming from calls to ReadByte on an SslStream. Since SslStream doesn't override ReadByte, the base Stream.ReadByte is used, and it ends up allocating a temporary array to use in a call to Read. This commit adds an override of ReadByte on SslStream that returns data from the stream's internal buffer if any is available, otherwise falling back to the old behavior. On a test that repeatedly writes 1000 bytes and then reads each of those with ReadByte, allocations are reduced by 10x and throughput is doubled. (Note that removing the Interlocked.Exchange in ReadByte yields another 20% improvement in throughput, but I've left it in so as not to impact guarantees of the type.) cc: @cipop, @davidsh, @vancem +5840 area-System.Data System.Data.ProviderBase.DbConnectionFactory.TryGetConnection() has a misleading comment for use of Sleep() "`System.Data.ProviderBase.DbConnectionFactory.TryGetConnection()` has these lines: ``` // Yield time slice to allow shut down activities to complete and a new, running pool to be instantiated // before retrying. Threading.Thread.Sleep(timeBetweenRetriesMilliseconds); timeBetweenRetriesMilliseconds *= 2; // double the wait time for next iteration ``` `timeBetweenRetriesMilliseconds` starts with a value of `1` and is doubled on each iteration. ""yield time slice"" is the idiom for passing zero into `Sleep()` to mean ""I don't want to wait for long, but if there's anyone else wanting CPU time then I'll let them have that time"". When any other value is passed that actual wait, not ""yielding time slice"". " +5841 area-System.Data System.Data.SqlClient.SqlConnection.TryOpen() registers an object without finalizer for finalization System.Data.SqlClient.SqlConnection.TryOpen() has this code ``` if (!tdsInnerConnection.ConnectionOptions.Pooling) { // For non-pooled connections, we need to make sure that the finalizer does actually run to avoid leaking SNI handles GC.ReRegisterForFinalize(this); } ``` but `SqlConnection` has no finalizer and neither does its base class. This code does nothing useful. If some magic must be run then this won't help. +5844 area-System.Reflection Implement CustomReflectionContext I was just browsing through the source here and I noticed that `System.Reflection.Context.CustomReflectionContext` is not implemented. One of the projects I work on (RobotDotNet) uses this in our library for some additional nice features. +5846 area-System.Net Fix HttpClientHandler UseDefaultCredentials=false HttpClientHandler (on Windows) was attempting to use default credentials against a server that needed auth even when the property .UseDefaultCredentials was set to false. In order to map the different HttpClientHandler properties to the WinHttpHandler properties, the HttpClientHandler .UseDefaultCredentials. needs to turn on/off two credentials related properties of WinHttpHandler, .ServerCredentials and .DefaultProxyCredentials. However, it was only toggling the single .ServerCredentials property. The fix is to update both properties accordingly. Fixes #5045. +5847 area-System.Net Leaking System.Net.WebSockets.WinHttpWebSocketState in WCF stress We see a fast memory leak on WCF stress using web sockets binding for duplex streaming. The leaked objects are all rooted by strong GC handles: ``` 0:011> !gcroot 000000e90c1162b8 HandleTable: 000000e58bc85250 (strong handle) -> 000000e90c116170 System.Net.WebSockets.WinHttpWebSocketState -> 000000e90c1162b8 System.Threading.Tasks.TaskCompletionSource`1[[System.Boolean, mscorlib]] ``` And their state indicates that they were disposed: ``` !do 000000e90c116170 Name: System.Net.WebSockets.WinHttpWebSocketState MethodTable: 00007fff0fd7cd58 EEClass: 00007fff0fd83ed8 Size: 120(0x78) bytes File: C:\Users\kkhurin\.dnx\packages\runtime.win7.System.Net.WebSockets.Client\4.0.0-rc2-23617\runtimes\win7\lib\dotnet5.4\System.Net.WebSockets.Client.dll Fields: MT Field Offset Type VT Attr Value Name 00007fff678f15e8 400002e 8 System.Object 0 instance 000000e90c1161e8 _lock 00007fff0fd7d468 400002f 10 ...SafeWinHttpHandle 0 instance 0000000000000000 _sessionHandle 00007fff0fd7d468 4000030 18 ...SafeWinHttpHandle 0 instance 0000000000000000 _connectionHandle 00007fff0fd7d580 4000031 20 ...andleWithCallback 0 instance 0000000000000000 _requestHandle 00007fff0fd7d580 4000032 28 ...andleWithCallback 0 instance 0000000000000000 _webSocketHandle 00007fff678f3628 4000033 68 ...Services.GCHandle 1 instance 000000e90c1161d8 _operationHandle 00007fff0fd77078 4000034 58 System.Int32 1 instance 5 _state 00007fff678f5d90 4000035 64 System.Boolean 1 instance 0 _pendingReadOperation 00007fff678f5d90 4000036 65 System.Boolean 1 instance 0 _pendingWriteOperation 00007fff678f5d90 4000037 66 System.Boolean 1 instance 1 _disposed 00007fff0fb9d278 4000038 30 ...olean, mscorlib]] 0 instance 0000000000000000 k__BackingField 00007fff0fb9d278 4000039 38 ...olean, mscorlib]] 0 instance 000000e88c115ed8 k__BackingField 00007fff0fb9d278 400003a 40 ...olean, mscorlib]] 0 instance 000000e90c1162b8 k__BackingField 00007fff0fb9d278 400003b 48 ...olean, mscorlib]] 0 instance 000000e80c138b70 k__BackingField 00007fff0fb9d278 400003c 50 ...olean, mscorlib]] 0 instance 000000e90c116320 k__BackingField 00007fff0fd7cc00 400003d 5c System.Int32 1 instance 4 k__BackingField 00007fff67919930 400003e 60 System.UInt32 1 instance 0 k__BackingField ``` A repro app is available upon request. +5848 area-System.Data DbEnumerator is included in both System.Data.Common and System.Data.SqlClient SqlClient shares some code with System.Data.Common by including source files in https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System.Data.SqlClient.csproj#L49-L59. Of all code shared at least `DbEnumerator` is a public type, so when you depend on both libraries the type is duplicated. I don't think this has a huge impact but I was wondering if it is just an oversight. cc @saurabh500 +5849 area-System.Net Sockets error messages are incorrect on non-Windows platforms. We need to map the SocketError values back to their native equivalents before using them to fetch descriptive error messages. +5852 area-System.Net Test fixes for System.Net.Security - Renaming/moving the `VirtualNetwork/Stream` classes. - A few concurrency fixes for the `VirtualNetwork/Stream` classes. - Adding VirtualNetwork/Stream tests. - Adding the TaskTimeoutExtensions and correcting the timeout pattern within one of the S.N.Security tests. - Moving all common test code within the System.Net.Test.Common namespace. @davidsh @stephentoub @shrutigarg PTAL +5853 area-System.Data Add default SQL path to NP path parsing if only server name is provided +5854 area-System.IO Native ClrCompression.dll for win7-x64 package depends on MSVCR110.dll @ianhays : Much like issue #3760 for SqlClient, the 64-bit specific version of clrcompression.dll takes a dependency on MSVCR110.dll. The issue appears to be specific to the x64 version currently. +5858 area-System.Net System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Security ...' ocurring in Windows using rc1-final and OSX using rc1-update1 ### TLDR; I'm getting a runtime error only when building in **OSX** with `dnx-coreclr-x64-1.0.0-rc1-update1` or building in **Windows** with `dnx-coreclr-win-x64.1.0.0-rc1-final` but if I build in **Windows** with `dnx-coreclr-win-x64.1.0.0-rc1-update1` the error doesn't happen. Isn't it supposed that if you use the same version number for both platforms is because both of them are the same and have the same features and fixes? If so, is it possible there was a build mistake and the **OSX** version released is not really `rc1-update1` **(CoreClr-x64-1.0.0-rc1-16231)** but `rc1-final` **(CoreClr-x64-1.0.0-rc1-16202)**. Here's is the error trace: ``` An unhandled exception has occurred: Could not load file or assembly 'System.Net.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. File name: 'System.Net.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ---> System.IO.FileNotFoundException: Could not load the specified file. File name: 'System.Net.Security' at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName) at System.Runtime.Loader.AssemblyLoadContext.Resolve(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName) at MailKit.Net.Smtp.SmtpClient.Connect(String host, Int32 port, SecureSocketOptions options, CancellationToken cancellationToken) at MailKit.MailService.Connect(String host, Int32 port, Boolean useSsl, CancellationToken cancellationToken) at GReembolsos.Controllers.GastosController.EnviarEmail() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.AspNet.Mvc.Controllers.ControllerActionExecutor.ExecuteAsync(MethodInfo actionMethodInfo, Object instance, Object[] orderedActionArguments) at Microsoft.AspNet.Mvc.Controllers.ControllerActionInvoker.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Mvc.Controllers.FilterActionInvoker.d__53.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNet.Mvc.Controllers.FilterActionInvoker.d__44.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Mvc.Infrastructure.MvcRouteHandler.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at Microsoft.AspNet.Mvc.Routing.InnerAttributeRoute.d__10.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at Microsoft.AspNet.Routing.RouteCollection.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Builder.RouterMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.IISPlatformHandler.IISPlatformHandlerMiddleware.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Diagnostics.ExceptionHandlerMiddleware.d__6.MoveNext() ``` ### Update I've just found issue #2483 and certainly appears to be the reason of my error but I'm not an expert on the subject and if it is the case then my questions / doubts are still valid I think. Thank you in advance for any help. ### Long Story I'm working on a prototype using **Mac OSX** and **Visual Studio Code** with `dnxcore50` using `coreclr-rc1-update1` but I'm getting the runtime error when trying to send email using **MailKit** lib. @jstedfast, the lib developer said the lib was working perfectly fine when things ran on windows so the problem could be in **the CLR version** for non Windows environments. I setup a **Windows 10** VM to verify if the problem was indeed not present. The test was successful. No runtime error was thrown. I tried to deploy as an **Azure Web Site**, and after a few hours of troubleshooting trying to make **coreclr** and not **clr** the runtime target I finally got the app built. But the test failed with the same error I was getting in **Mac OSX** even though it was a Windows Environment! I made more research and found this: - In my local **Windows 10** when I built the project the **DNU** starting message was `Microsoft .NET Development Utility CoreClr-x64-1.0.0-rc1-16231` - In the **Azure** building log stream the **DNU** starting message was `Microsoft .NET Development Utility CoreClr-x64-1.0.0-rc1-16202` Looking at the `deploy.cmd` that I had previously modified to target **coreclr** and not **clr** I noticed that the targeted runtime was `dnx-coreclr-win-x64.1.0.0-rc1-final` In my **Windows 10** local the target runtime was `dnx-coreclr-win-x64.1.0.0-rc1-update1` So I changed the target runtime in `deploy.cmd` to `dnx-coreclr-win-x64.1.0.0-rc1-update1`, pushed to **Azure** and now in the building log stream the **DNU** starting message was `Microsoft .NET Development Utility CoreClr-x64-1.0.0-rc1-16231`, the same as my **Windows 10** local. I ran my test again and the error was gone!! After that I concluded that whatever the root cause of the exception I was getting, the problem appears to be fixed in `rc1-update1`, BUT... it turns out that in **OSX** the error is triggering even though the **DNU** starting message is `Microsoft .NET Development Utility CoreClr-x64-1.0.0-rc1-16231` when I build the project. So it makes me think it could be that the **OSX** version is not really `rc1-update1` **(CoreClr-x64-1.0.0-rc1-16231)** but `rc1-final` **(CoreClr-x64-1.0.0-rc1-16202)**. It's just a though as I don't know if it's possible or correct/normal that the same version on both platforms can have different features / fixes. That's why I'm submitting this issue. +5861 area-System.Data DbConnection and DbCommand should have a finaliser Originally `DbConnection` and `DbCommand` classes were derived from `System.ComponentModel.Component`. From that they inherited a finaliser that called `Dispose(false)`. Their descendants sometimes depend on this, in particular `SqlConnection` has finaliser-only code. They should have finalisers directly added. ~~`DbTransaction` and `DbDataReader` were never derived from `Component` but do both follow the `Dispose(bool)` pattern, as such suggesting that a finaliser exists which would call `Dispose(false)`. While not used within the corefx assemblies a third party derived class could erroneously depend on this.~~ ~~As such they should have finalisers added, and then suppressed in the existing derived classes.~~ (Moved this part to #5865) +5864 area-Infrastructure CI jobs failing with WS-CLEANUP errors Lots of legs failing with errors like this, e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_bld_prtest/495/console ``` ERROR: [WS-CLEANUP] Cannot delete workspace: remote file operation failed: d:\j\workspace\dotnet_corefx\osx_release_bld_prtest at hudson.remoting.Channel@270f3ae7:dci-win-tbld-6: java.nio.file.AccessDeniedException: d:\j\workspace\dotnet_corefx\osx_release_bld_prtest\Tools\dotnetcli\bin\coreclr.dll ``` +5868 area-System.Diagnostics Debugger.NotifyOfCrossThreadDependency missing from System.Diagnostics.Debug contract NotifyOfCrossThreadDependency is used in code any time a debugger accessing that property would potentially cause deadlocks, race conditions, or other behavior changes, e.g. if the debugger has frozen all threads in the process (which it does at a breakpoint), and a property getting evaluated blocks waiting for another thread to perform some operation. We should expose this in the contract. If the runtime is built for a platform that doesn't support it, it can simply be a nop. +5871 area-System.Net Throw PNSE from Socket.Connect on *nix iff a previous connect attempt has failed See https://github.com/dotnet/corefx/pull/5867 and https://github.com/dotnet/corefx/issues/5829 for details on the problems with multiple connection attempts using the same socket on platforms that follow BSD/POSIX semantics for sockets. +5873 area-System.Reflection DynamicILGenerator does not support BeginFaultBlock and BeginExceptFilterBlock #1764 dotnet/coreclr#1764 has more information on the issue. Based on the conversation with Jan, this is only an artificial limitation and can be removed from both Desktop and CoreCLR. +5874 area-System.Security Crypto contracts desktop support I believe the current version of the crypto contracts require desktop 4.6.1 but are representing themselves in the packages as requiring 4.6. We need to clean this up, but before we do we need to a) look upstack in CoreFx and b) reach out to partner teams to find out if anyone is expecting support on 4.6. If so, then we probably need to look into a pre-version of the contracts to support 4.6. +5875 area-System.Console Console support for NETCore Since Console was added to NETStandard.Library we need to suppoort it on netcore50. To do this and still pass the WACK we should either: 1. Get the APIs we call added to the modern SDK. 2. Build a version of the contract specific to netcore that only calls supported APIs. For example, by just using readfile/writefile on the console handles or directing the output to something more appropriate for UWP (EG: debug or etw). /cc @pallavit @weshaggard +5877 area-Meta [WIP] Frameworks Section "We talk about lots of frameworks, and I'm sure more come up, so I though it be a good idea to add a section on them. I've done a ""demo"" of what I was thinking with Windows Forms. I was thinking of including: WPF, ASP.NET, ASP.NET Core, ASP.NET MVC, Signalr, DirectX (and maybe some of the sub libraries), and WCF. @terrajobst " +5878 area-Infrastructure Modify the windows native build to be razzle friendly Internally we are using an existing vcproj to build the native windows binaries. This commit modifies the CMake build script in the open to allow more fine grained control of the build environment. The result of this is that we can specify the necessary environment args from the caller, enabling us to run the build-native script from fxcore/src in a Razzle environment via a wrapper project. resolves #5854 when accompanying TFS commit goes through @weshaggard @ericstj +5881 area-System.Net Http request/response DiagnosticSource logging. - Added logging to WinHttpHandler, CurlHandler, and HttpHandlerToFilter for HTTP request/response. - Added functional tests for HttpClient and WinHttpHandler. @davidsh @cipop @stephentoub +5884 area-System.Reflection Portable mechanism needed to determine if two MemberInfos are backed by the same metadata definition "Currently, there is a hole in reflection whereby there's no straight-forward way to determine if: ### 1. MemberInfos differ only by ReflectedType (i.e. they are the same member, but one of them was obtained from a derived type.) ``` C# public class C { public int F; } public class D : C {} static class Program { static void Main(string[] args) { var f1 = typeof(C).GetField(""F""); var f2 = typeof(D).GetField(""F""); System.Console.WriteLine(f1.Equals(f2)); // False } } ``` ### 2. One MemberInfo is a generic instantiation of another. ``` C# static class Program { static void Main(string[] args) { var m1 = typeof(List<>).GetMethod(""Add""); var m2 = typeof(List).GetMethod(""Add""); // how to determine that m2 is instantiated from m1? } } ``` On platforms that support the MetadataToken, this can be worked around by comparing the tokens, but without them, one has to resort to error-prone comparisons of the declaring type, name, and signature. There should be a first-class portable way to address both. ### Proposal for New API: HasSameMetadataDefinitionAs Add a new API that determines if a member is backed/instantiated from the same metadata definition. In ECMA-335 terms, this is a member/type from the same module that has the same metadata def token. Platforms like .NET Native that do not keep around metadata tokens should still preserve enough information to answer this query portably. ``` C# public class MemberInfo { public virtual bool HasSameMetadataDefinitionAs(MemberInfo other); ... } ``` A mostly correct implementation is: ``` C# return Module.Equals(other.Module) && MetadataToken == other.MetadataToken; ``` But that ignores edge cases such as TypeInfo instances for array, byref, pointer, and type parameters types, which we'd need to spec and test. " +5886 area-System.Net Process and Ping should have finaliser In the wake of #5861 I decided to examine other classes in CoreFX that were originally derived from `Component` to see if there was a risk that classes derived from them in turn could depend upon their having a finaliser. The following need no action, but I list them in case someone can spot one I missed or a flaw in my reasoning that they are okay as-is: `ProcessThread`. No longer disposable, functionally sealed (can't be derived as there are no public or protected constructors). `ProcessModule`. No longer disposable, functionally sealed. `FileSystemWatcher`. Already has a finaliser. `PerformanceCounter`. ref only. This leaves `Process` and `Ping` as two classes that can be derived from, would originally have had a finalizer calling `Dispose(false)` via `Component`, and which do not currently have this. For compatibility with 4.6 and earlier they should have a finalizer. Further, `ProcessModule` no longer needs one, but still calls `SuppressFinalize` which should be removed as unnecessary. +5887 area-System.Net Add finalizers to Process and Ping Have them call `Dispose(false)`. `SuppressFinalize(this)` in constructors if they are not a derived type to lessen the possible negative impact on collection. Remove unnecessary `SuppressFinalize(this)` from `ProcessModule`. Fixes #5886 +5888 area-System.Net WebUtility.UrlDecode to take StringBuilder `WebUtility.UrlDecode` could take a string builder; `UrlDecoder` could be a struct and use `System.Buffers` for its arrays for reduced allocations. +5889 area-System.Net Identify exceptions that should cause NTLM fallback in xplat NegotiateStream This is with reference to this [PR comment](https://github.com/dotnet/corefx/pull/5770#commitcomment-15854837). Currently, for any exceptions in the SPNEGO codepath, the xplat implementation falls back to NTLM. We need to check if there are specific exceptions we should target. +5890 area-System.Net Return more error information for SslStream and NegotiateStream from *Pal.Unix.cs Please see [PR comment](https://github.com/dotnet/corefx/pull/5773#commitcomment-15855088). We need to figure a way of passing the extended error information returned by the shim layer to the platform-agnostic code. Currently any exception is translated to SecurityStatusPal.InternalError +5892 area-System.Net Add a large write/read test for SslStream cc: @davidsh, @CIPop +5894 area-System.Net BeginSendToV4IPEndPointToDualHost_Success failed on Windows in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/1768/consoleFull ``` 05:13:45 System.Net.Sockets.Tests.DualMode.BeginSendToV4IPEndPointToDualHost_Success [FAIL] 05:13:45 System.Net.Sockets.SocketException : An address incompatible with the requested protocol was used 05:13:45 Stack Trace: 05:13:45 xUnit.net console test runner (64-bit .NET Core) 05:13:45 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(3077,0): at System.Net.Sockets.Socket.DoBeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint endPointSnapshot, SocketAddress socketAddress, OverlappedAsyncResult asyncResult) 05:13:45 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(3015,0): at System.Net.Sockets.Socket.BeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback callback, Object state) 05:13:45 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\SocketTaskExtensions.cs(235,0): at System.Net.Sockets.SocketTaskExtensions.<>c.b__12_0(ArraySegment`1 targetBuffer, SocketFlags flags, EndPoint endPoint, AsyncCallback callback, Object state) 05:13:45 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2,TArg3](Func`6 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state, TaskCreationOptions creationOptions) 05:13:45 at System.Threading.Tasks.TaskFactory`1.FromAsync[TArg1,TArg2,TArg3](Func`6 beginMethod, Func`2 endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state) 05:13:45 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Sockets\src\System\Net\Sockets\SocketTaskExtensions.cs(234,0): at System.Net.Sockets.SocketTaskExtensions.SendToAsync(Socket socket, ArraySegment`1 buffer, SocketFlags socketFlags, EndPoint remoteEndPoint) 05:13:45 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\Common\src\System\Net\Sockets\SocketAPMExtensions.cs(565,0): at System.Net.Sockets.SocketAPMExtensions.BeginSendTo(Socket socket, Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback callback, Object state) 05:13:45 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\DualModeSocketTest.cs(1393,0): at System.Net.Sockets.Tests.DualMode.DualModeBeginSendTo_EndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) 05:13:45 d:\j\workspace\dotnet_corefx\windows_nt_debug_prtest\src\System.Net.Sockets.Legacy\tests\FunctionalTests\DualModeSocketTest.cs(1378,0): at System.Net.Sockets.Tests.DualMode.BeginSendToV4IPEndPointToDualHost_Success() ``` +5896 area-System.Net Writing to SslStream fails on OS X when count is larger than SslStream's internal buffer size See SslStream_StreamToStream_Successive_ClientWrite_Sync_Success. This consistently passes on Windows and other Unix environments, but consistently fails on OS X. +5898 area-System.Linq Expression interpreter can neither catch nor throw non–Exception-derived exceptions Using the interpreter it is impossible to either throw or catch an exception that isn't derived from `Exception`. This differs from the compiler, which allows both. Possibly this should just be documented as a limitation. Possibly something could be done by manipulating `RuntimeWrappedException`. Possibly something could be done for catching, but not for throwing, which both seems easier on first blush, and may have more use (throwing such an object is a bad idea after all, catching one might be needed due to someone else's bad idea). cc: @VSadov @bartdesmet +5899 area-Meta Documentation Duplication Between .NET Projects As I'm working on #5877, I started thinking that between CoreCLR and CoreFX there's going to be lots of things that need to be explain in both contexts. The Terms section alone in [glossary](../Documentation/project-docs/glossary.md) would probably be useful for both projects. Would it make sense to move this kind of stuff to the [core-docs](https://github.com/dotnet/core-docs) repo? /CC: @terrajobst @jasonwilliams200OK +5902 area-System.Console echo TTY mode disabled for launched processes Similar to #5109, if `Console.ReadKey()` has been used by a .NET program, the `echo` TTY mode is disabled. To resolve the prior issues, dotnet/coreclr#2561 re-enabled the `echo` mode on program shutdown. However, we've run into a different scenario: launching a process from the .NET program inherits the TTY modes. So if you launch Bash from the .NET program, you can't type in it until you've explicitly re-enabled `echo`. +5907 area-System.Net Keep accepted sockets open until the tests are done with them. Prior to this change, a GC triggered at the wrong time could cause a newly-accepted Socket to be collected and finalized, closing the connection before the other end of the socket was done. To avoid this, we keep a reference to the new socket until the test is done with the connection. Fixes #5291, #3748, #3744, #3682, #3494. @stephentoub, @pgavlin, @CIPop +5908 area-System.Linq Interpretter incorrectly handles void TryExpression with non-void parts "It is not necessary for the body and/or catch blocks of a `TryExpression` to match the type of the expression if that type is void (or to look at it another way, all types can be ""assigned"" to void). As such the following is valid: ``` C# Expression.MakeTry( typeof(void), Expression.Throw(Expression.Constant(new InvalidOperationException()), typeof(int)), null, null, new[] { Expression.Catch(typeof(InvalidCastException), Expression.Constant(""hello"")), Expression.Catch(typeof(Exception), Expression.Constant(2.2)) } ) ``` This works fine with the compiler. With the interpreter it unbalances the stack, leaking a value and throwing several asserts in Debug. " +5910 area-Infrastructure TFS build should update BuildValues.props Now that we have packages in CoreFx it'd be great if those packages had consistent versions with the ones built in TFS. Can we have the TFS build update https://github.com/dotnet/corefx/blob/master/src/BuildValues.props? +5912 area-Serialization [Port Fix from Desktop] Stress issue in Serialization ObjectToIdCache There was a stress issue with System.Runtime.Serialization.ObjectToIdCache. The bug had been fixed on desktop. We should port the fix to .Net Core. +5915 area-System.Data API for retrieving Columns Metadata from DbDataReader # API for GetColumnSchema ## Problem DbDataReader on .Net Framework, provides an API called `DataTable GetSchemaTable()` which was returns the metadata of the columns being read using the DbDataReader object. Because of the removal of DataTable in .Net Core this API had to be removed. `DbDataReader.GetSchemaTable()` needs a replacement in .Net core. ## Progress The data structure DbColumn along with the necessary attributes which should be present for the various ADO.Net providers to effectively provide the metadata for the columns is provided in the issue. ``` C# namespace System.Data.Common { // DbColumn contains the base attributes that are common to most Database columns. An indexer // has been provided in case a property added by a provider needs to be accessed without a dependency on the provider implementation. public class DbColumn { public bool? AllowDBNull { get; protected set; } public string BaseCatalogName { get; protected set; } public string BaseColumnName { get; protected set; } public string BaseSchemaName { get; protected set; } public string BaseServerName { get; protected set; } public string BaseTableName { get; protected set; } public string ColumnName { get; protected set; } public int? ColumnOrdinal { get; protected set; } public int? ColumnSize { get; protected set; } public bool? IsAliased { get; protected set; } public bool? IsAutoIncrement { get; protected set; } public bool? IsExpression { get; protected set; } public bool? IsHidden { get; protected set; } public bool? IsIdentity { get; protected set; } public bool? IsKey { get; protected set; } public bool? IsLong { get; protected set; } public bool? IsReadOnly { get; protected set; } public bool? IsUnique { get; protected set; } public int? NumericPrecision { get; protected set; } public int? NumericScale { get; protected set; } public string UdtAssemblyQualifiedName { get; protected set; } public Type DataType { get; protected set; } public string DataTypeName { get; protected set; } public virtual object this[string property] { get; } } } ``` The next part of the API is to expose a ReadOnlyCollection from the DbDataReader The right way of exposing the API would be to add an API in the DbDataReader class called `ReadOnlyCollection DbDataReader.GetColumnSchema()` This is however not possible in .Net Core current version as it would hinder portability of apps created on .Net core with .Net framework. https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/breaking-change-rules.md Based on the contents of the link above, the following rule is allowed `Adding an abstract member to a public type when there are no accessible (public or protected) constructors, or the type is sealed` The restriction is due to type forwarding, which needs the calls to DbDataReader to be forwarded to the .Net framework's DbDataReader. ## Proposal We introduce an interface called IDbColumnSchemaGenerator, in .Net core which can be implemented by a type which can provide the Column Metadata. For DbDataReader, this interface needs to be implemented by the subclasses of the `DbDataReader` to provide the Column metadata provided by the `DbDataReader` ``` C# namespace System.Data.Common { public interface IDbColumnSchemaGenerator { System.Collections.ObjectModel.ReadOnlyCollection GetColumnSchema(); } } ``` The subclasses of DbDataReader in the ADO.Net providers implement this interface. ``` C# public class SqlDataReader : DbDataReader, IDbColumnSchemaGenerator { public ReadOnlyCollection GetColumnSchema(){ return ... ; } } ``` In .Net core, to allow the Column Metadata to be exposed from the DbDataReader, an extension to the DbDataReader will be provided. This extension has the same signature as the interface method. ``` C# using System.Collections.ObjectModel; namespace System.Data.Common { public static class DbDataReaderExtension { public static System.Collections.ObjectModel.ReadOnlyCollection GetColumnSchema(this DbDataReader reader) { if(reader is IDbColumnSchemaGenerator) { return ((IDbColumnSchemaGenerator)reader).GetColumnSchema(); } throw new NotImplementedException()); } } } ``` It is recommended that the extension be used by consumers, for compatibility with .Net Framework. The details are mentioned in the compatibility section below. ## Producer The ADO.Net providers are the producers of the Column Schema. The interface will be implemented by the sub-classes of `DbDataReader` in the ADO.Net providers. E.g. ``` C# class SqlDataReader : DbDataReader, IDbColumnSchemaGenerator { ... public ReadOnlyCollection GetDbColumnSchema() { ReadOnlyCollection metadata = ... ; // Build the list of columns metadata. Each columns metadata is represented by the DbColumn return metadata; // } ... } ``` ## Consumer The consumers can retrieve the column metadata using an extension method on the DbDataReader. This extension will be provided in System.Data.Common For a library consuming the `DbDataReader` the code will look like the following: ``` C# using System.Data.Common; namespace org.example.my { ... public void ProcessMetadata(DbDataReader reader) { ICollection columnMetadata = reader.GetColumnSchema(); } ... } ``` ## Compatibility of libraries written on .Net Core with .Net Framework The extension method will have a different implementation in the **_partial facade_** to get the Schema. The implementation will use the DbDataReader.GetSchemaTable() api which returns the schema as a Datatable. This Datatable will be mapped to a ReadOnlyCollection and returned by the implementation of the extension in the partial facade. # vNext In the next version of .Net we add a Interface to .Net desktop and the the consumers continue to access the schema using the Interface ## Reference Github issue https://github.com/dotnet/corefx/issues/3423 +5919 area-System.Net Native shims for libheimntlm inorder to support NTLM Introducing native shims for libheimntlm inorder to support NTLM This PR overwrites #5728 +5920 area-System.Threading Configure ThreadPool Hello, There is some way to configure the threadPool and the ConnectionLimit in DNX Core 50? We use this configure in dnx 451: ThreadPool.SetMinThreads(50, 50); ThreadPool.SetMaxThreads(10000, 10000); System.Net.ServicePointManager.DefaultConnectionLimit = int.MaxValue; How can I put this parameters in core? Thank you +5921 area-System.Drawing Proposal for minimalistic imaging platform ## Proposal for minimalistic imaging platform .NET does not provide a truly portable image format nor portable image IO operations. For example System.Drawing.Bitmap nor WPF's BitmapSource and does not provide generic interface which imposes compile-time constraints. EmguCV's generic image provides the generic interface but is heavily coupled with OpenCV. All mentioned image types do not provide a unified interoperability needed when mixing image-processing algorithms from different libraries. ### Goals: - [ ] to create a portable module for image reading/writing - [x] to create a portable, slim image format such as [DotImaging](https://github.com/dajuric/dot-imaging) has (native array Bgr<byte>[,]) - [x] to create system drawing primitives - such as in [DotImaging.Primitives2D](https://www.nuget.org/packages/DotImaging.Primitives2D/) - [ ] _optionally to create portable video reading and web-camera access module_ ### Proposal To leverage existing structure and components of [DotImaging](https://github.com/dajuric/dot-imaging) framework, but to replace the backing OpenCV part needed for image IO. The first step would be to create a portable image reading/writing module with the most simplistic API (e.g. ImageIO.LoadColor(), LoadGray()...). Options: - a wrapper arround LibGD (@ #2020) - trim down and reuse the existing platform specific module of: [Eto.Forms](https://github.com/picoe/Eto) - includes drawing capabilities as well, or [Splat](https://github.com/paulcbetts/splat). ### Related issues [Proposal for Cross-plat Server-side Image Manipulation Library](https://github.com/dotnet/corefx/issues/2020) - proposal of much broader scale - this proposal resolves the core issue and levaes out separates image processing part managed by other libraries [Accord.NET](http://accord-framework.net/), [Accord.NET Extensions](https://github.com/dajuric/accord-net-extensions), [EmguCV](http://www.emgu.com/wiki/index.php/Main_Page). [.NET core should have primitive drawing types](https://github.com/dotnet/corefx/issues/1563) - already done in [DotImaging.Primitives2D](https://www.nuget.org/packages/DotImaging.Primitives2D/) +5924 area-System.Net Use OpenSSL for cert chain verification in CurlHandler Our certificate chain verification includes the ability to check user store certificates in addition to the root store, but it's more expensive than the default verification provided by OpenSSL, which only includes the system store. This commit modifies our CurlHandler's VerifyCertChain implementation to first use the OpenSSL implementation, and only fall back to ours if it fails, resulting in much faster processing in https cases. (It'll be easiest to look at the whitespace-free diff view: https://github.com/dotnet/corefx/pull/5924/files?w=1 ) cc: @bartonjs +5925 area-Meta Add suggestions/samples for dealing with common missing desktop APIs Customers coming from a .NET desktop background are frequently running into issues with a few common feature areas that are missing/changed in .NET Core (in ways too general to be thoroughly covered by API catalog recommendations). It would be great to have a page (maybe linked from [here](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/support-dotnet-core-instructions.md) that listed the commonly missed areas and how to deal with them in .NET Core. Some areas that should be covered include: - Serialization (moving to DCS from binary serialization) - Xml (some high level changes to which APIs are available, like XmlTextReader vs. XmlReader - Managed security.(CAS is gone; Transparency still exists, but usually isn't needed) +5927 area-System.Net Leaking System.Net.Http.WinHttpRequestState in WCF Streaming over Http This is really fast - ~1GB per 1minute. To repro: ``` dnx --configuration RETAIL run . Program2Run:Perf Binding:Http Async:true Test:Streaming ``` Here are some details: ``` 0:012> !gcroot 000000859f603ab8 HandleTable: 00000086a7c81668 (strong handle) -> 000000859e5f5780 System.Net.Http.WinHttpRequestState -> 000000859e5f5718 System.Threading.Tasks.TaskCompletionSource`1[[System.Net.Http.HttpResponseMessage, System.Net.Http]] -> 000000859e5f5730 System.Threading.Tasks.Task`1[[System.Net.Http.HttpResponseMessage, System.Net.Http]] -> 000000841e3aa2a8 System.Net.Http.HttpResponseMessage -> 000000859e5f4ab0 System.Net.Http.HttpRequestMessage -> 000000859e5f4af8 System.Net.Http.Headers.HttpRequestHeaders -> 000000859e5f4c30 System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo, System.Net.Http]] -> 000000859e5f4ca8 System.Collections.Generic.Dictionary`2+Entry[[System.String, mscorlib],[System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo, System.Net.Http]][] -> 000000859f603ab8 System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo Found 1 unique roots (run '!GCRoot -all' to see all roots). 0:012> !do 000000859e5f5780 Name: System.Net.Http.WinHttpRequestState MethodTable: 00007fff0f29a520 EEClass: 00007fff0f28fc98 Size: 184(0xb8) bytes File: C:\Users\kkhurin\.dnx\packages\System.Net.Http.WinHttpHandler\4.0.0-rc3-23720\lib\DNXCore50\System.Net.Http.WinHttpHandler.dll Fields: MT Field Offset Type VT Attr Value Name 00007fff696e15e8 4000044 8 System.Object 0 instance 000000859e5f5838 _lock 00007fff696e3628 4000045 a0 ...Services.GCHandle 1 instance 000000859e5f5820 _operationHandle 00007fff696e5d90 4000046 98 System.Boolean 1 instance 0 _disposed 00007fff6fbf5c58 4000047 10 ...System.Net.Http]] 0 instance 000000859e5f5718 k__BackingField 00007fff696ef250 4000048 a8 ...CancellationToken 1 instance 000000859e5f5828 k__BackingField 00007fff6fbf7f90 4000049 18 ...ttpRequestMessage 0 instance 000000859e5f4ab0 k__BackingField 00007fff0f292580 400004a 20 ...tp.WinHttpHandler 0 instance 000000839dd16e30 k__BackingField 00007fff0f29b288 400004b 28 ...SafeWinHttpHandle 0 instance 000000831e798458 k__BackingField 00007fff696e1330 400004c 30 System.Exception 0 instance 0000000000000000 k__BackingField 00007fff696e5d90 400004d 99 System.Boolean 1 instance 0 k__BackingField 00007fff6fbf3738 400004e 38 ...olean, mscorlib]] 0 instance 0000000000000000 k__BackingField 00007fff0f29a900 400004f 40 ...pTransportContext 0 instance 000000859e5f5850 k__BackingField 00007fff0f292428 4000050 90 System.Int32 1 instance 2 k__BackingField 00007fff69f7fd18 4000051 48 System.Net.IWebProxy 0 instance 0000000000000000 k__BackingField 00007fff69f7fc78 4000052 50 ....Net.ICredentials 0 instance 0000000000000000 k__BackingField 00007fff69f7fc78 4000053 58 ....Net.ICredentials 0 instance 000000839dcaed18 k__BackingField 00007fff696e5d90 4000054 9a System.Boolean 1 instance 1 k__BackingField 00007fff69f7fc18 4000055 94 System.Int32 1 instance 0 k__BackingField 00007fff696e5d90 4000056 9b System.Boolean 1 instance 0 k__BackingField 00007fff0f11cde8 4000057 60 ...olean, mscorlib]] 0 instance 000000831e79a068 k__BackingField 00007fff0f11cde8 4000058 68 ...olean, mscorlib]] 0 instance 0000000000000000 k__BackingField 00007fff0f11cde8 4000059 70 ...olean, mscorlib]] 0 instance 000000831e79a430 k__BackingField 00007fff0f11cde8 400005a 78 ...olean, mscorlib]] 0 instance 000000831e79a498 k__BackingField 00007fff0eda9d10 400005b 80 ...Int32, mscorlib]] 0 instance 000000859e5f8428 k__BackingField 00007fff0eda9d10 400005c 88 ...Int32, mscorlib]] 0 instance 000000859e5f83c0 k__BackingField 0:012> !do 000000841e3aa2a8 ; !do 000000859e5f4ab0 Name: System.Net.Http.HttpResponseMessage MethodTable: 00007fff6fbf8120 EEClass: 00007fff6fb5b240 Size: 64(0x40) bytes File: C:\Users\kkhurin\.dnx\runtimes\dnx-coreclr-win-x64.1.0.0-rc1-update1\bin\System.Net.Http.dll Fields: MT Field Offset Type VT Attr Value Name 00007fff69f7fc18 40000b6 30 System.Int32 1 instance 200 _statusCode 00007fff6fbf6f20 40000b7 8 ...tpResponseHeaders 0 instance 000000841e3aa3e8 _headers 00007fff696dfc28 40000b8 10 System.String 0 instance 000000841e3aa2e8 _reasonPhrase 00007fff6fbf7f90 40000b9 18 ...ttpRequestMessage 0 instance 000000859e5f4ab0 _requestMessage 00007fff696ec228 40000ba 20 System.Version 0 instance 000000831daf5a88 _version 00007fff6fbf6a60 40000bb 28 ....Http.HttpContent 0 instance 000000841e3aa340 _content 00007fff696e5d90 40000bc 34 System.Boolean 1 instance 0 _disposed Name: System.Net.Http.HttpRequestMessage MethodTable: 00007fff6fbf7f90 EEClass: 00007fff6fb5b138 Size: 72(0x48) bytes File: C:\Users\kkhurin\.dnx\runtimes\dnx-coreclr-win-x64.1.0.0-rc1-update1\bin\System.Net.Http.dll Fields: MT Field Offset Type VT Attr Value Name 00007fff696f7db8 40000ad 38 System.Int32 1 instance 1 _sendStatus 00007fff6fbf8cf8 40000ae 8 ...t.Http.HttpMethod 0 instance 000000839dcaf910 _method 00007fff7cf55c38 40000af 10 System.Uri 0 instance 000000839dd11a08 _requestUri 00007fff6fbf6e98 40000b0 18 ...ttpRequestHeaders 0 instance 000000859e5f4af8 _headers 00007fff696ec228 40000b1 20 System.Version 0 instance 000000839dcafa40 _version 00007fff6fbf6a60 40000b2 28 ....Http.HttpContent 0 instance 000000859e5f51f0 _content 00007fff696e5d90 40000b3 3c System.Boolean 1 instance 1 _disposed 00007fff68db3b78 40000b4 30 ...bject, mscorlib]] 0 instance 0000000000000000 _properties ``` +5928 area-System.Net Fix gchandle leak in WebSockets.Client The Windows implementation of WebSockets.Client leaks the WinHttpWebSocketState object. This object was being pinned by `GCHandle.Alloc(this)` in the contructor. And it was never freed. This object needs to be pinned during the WebSocket lifecycle because the address of the object is passed to native WinHTTP and used as the context value during callbacks. However, it needs to be manually freed at the proper time after all WinHTTP callbacks are done via closing down the handles. This fix adds Pin() and Unpin() methods to WinHttpWebSocketState and calls them at appropriate times. While fixing this I discovered other places where the object might be left as pinned. The current logic relies on WinHTTP calling the callback with HANDLE_CLOSING before the object would get unpinned. But since the object is pinned very early on, it's possible due to unexpected errors, that the wiring of the WinHTTP callback never gets done. And thus, the object would never have been unpinned. This fix delays the pinning of the object until the right time where it is assured that the WinHTTP callback wiring has been completed. This logic is now similar to the state handling in WinHttpHandler. There is still a work item #2501 to merge these design implementations and share code in the future. Fixes #3256. +5930 area-Infrastructure Generalize story for building multiple package versions See discussion on PR #5916. Right now, there's some custom path adjustment in metadata, but there should be a general way to cross-compile multiple versions as needed for all projects. +5939 area-System.Net Can't locate TcpClient and TcpListener from Socket.Net.Sockets Hi .NET Core, I like the direction of this project. It's fun to watch and see everything evolve.. Trying to upgrade an existing 4.5.1 project to .NET core on windows 10 and VS2015. It uses lots of TcpClient and TcpListener. From searching github repo, it appears like it's in the System.Web.Sockets package. However, these classes aren't visible to me on public nuget. Including the package: ![image](https://cloud.githubusercontent.com/assets/120773/12864092/a24c8eee-ccd5-11e5-8cbd-e453380e8a56.png) Checking object browser: ![image](https://cloud.githubusercontent.com/assets/120773/12864096/c54c5cc6-ccd5-11e5-9a29-c5a3a699cf08.png) What am I doing wrong? Where can I find TcpClient and TcpListener? Many thanks +5940 area-System.Runtime MulticastDelegate, BeginInvoke throws NotSupportedException Invoking the BeginInvoke method of a MulticastDelegate derived delegate compiles fine with .NET Core, but throws a NotSupportedException. Should this really be the case? Sample code is here, .NET 4.6 runs ok, but .NET Core fails with the mentioned exception: https://github.com/ProfessionalCSharp/ProfessionalCSharp6/tree/master/Synchronization/SynchronizationSamples/AsyncDelegate Thanks, Christian +5941 area-System.IO Using System.IO.Compression cannot resolve System.Buffers with .NET 4.6 "Using System.IO.Compression, 4.1.0-rc3-23805 cannot resolve System.Buffers compiling with .NET 4.6. It's ok with .NET Core. Compiling with ""dotnet build"". Sample code: https://github.com/ProfessionalCSharp/ProfessionalCSharp6/tree/master/FilesAndStreams/FilesAndStreamsSamples/CompressFileSample " +5942 area-Infrastructure System.Net.Http.Native.so in package linked to libcurl-gnutls.so.4 It should instead be linked to libcurl.so.4 (as is the one that gets built in Jenkins). cc: @bartonjs, @chcosta +5945 area-System.Linq ListInitExpression with non-void Add method fails with interpreter An expression of the form `() => new HashSet{ 1, 2, 3}` works fine with the compiler, but fails with the interpreter with a `TargetException` (or an assertion failure in debug), or possibly some other bad things with variants of this. The interpreter is assuming that `Add()` methods return void, so doesn't deal with the value pushed to the stack by a method like `HashSet.Add()` that returns `bool` cc @VSadov @bartdesmet . +5946 area-System.Linq ListInitExpression from Expression list fails with multiple expression types. "Consider: ``` C# private class MixedAddable : IEnumerable { private readonly List _strings = new List(); private readonly List _ints = new List(); public void Add(string value) { _strings.Add(value); } public void Add(int value) { _ints.Add(value); } public IEnumerator GetEnumerator() { return _strings.Concat(_ints.Select(i => i.ToString())).GetEnumerator(); } } ``` The likes of `() => new MixedAddable { 1, ""a"", 2, ""b"" }` works fine, but the following fails: ``` C# Expression.ListInit( Expression.New(typeof(MixedAddable)), Expression.Constant(0), Expression.Constant(""a"") ) ``` It's assumed that the correct `Add` method for the first expression is also correct for the rest, though this doesn't necessarily hold. " +5950 area-System.Xml System.Xml.XDocument.TreeManipulation.Tests failing for OSX Release in CI Looks like something whitespace or end-of-line related from the error message. +5951 area-System.Linq Incorrect argument name for null initializer to Expression.ListInit "If an initializer to `ListInit` is null the exception should give the argument name as ""initializers[0]"", etc. Instead it can be ""argument"", ""arguments"" or ""initializers"" depending on the overload used. " +5953 area-System.Net Remove Client property from TcpClient and UdpClient The property leaks through the abstraction. It's rarely used. And it complicates things on Unix due to exposing the underlying socket instance combined with difficulties with multiple connect calls on a single socket instance. Until we have good reason to expose it in the contract, we're removing it from the contract before it's stable. cc: @davidsh, @cipop, @SidharthNabar, @terrajobst, @weshaggard, @saurabh500 Closes #4968 Closes #5411 +5963 area-System.Linq MemberInit will write to readonly fields on interpreter "Given: ``` C# private class PropertyAndFields { public readonly string ReadonlyStringField; } ``` Then `Expression> exp = () => new PropertyAndFields{ReadonlyStringField = ""Hello Readonly Field""}` won't compile (CS0191). However, this is accepted: ``` C# Func func = Expression.Lambda>( Expression.MemberInit( Expression.New(typeof(PropertyAndFields)), Expression.Bind( typeof(PropertyAndFields).GetMember(""ReadonlyStringField"")[0], Expression.Constant(""Hello Readonly Field"") ) ) ).Compile(); ``` If compiled with the compiler then attempting to invoke the delegate throws a `VerificationException`. If compiled with the interpreter then invoking the delegate returns a `PropertyAndFields` object with the readonly field set as requested. With an attempt to initialise a constant, the compiler will throw `NotSupportedException`, the interpreter return a delegate that throws `FieldAccessException` (or hit an assert in debug). With an attempt to initialise a static property the compiler will return a delegate that throws a `VerificationException` on invocation, the interpreter one that writes to the property (or hit an assert in debug, it unbalances the stack). Attempts to write initialise static fields will work for either, but again unbalances the stack for the interpreted version. The ideal solution would be to throw on the call to `Expression.Bind` which could be easily done by adding more checks to `ValidateSettableFieldOrPropertyMember`. If the backwards compatibility impact was considered too great, the interpreter could be change to throw the same exceptions as the compiler, in those cases where it throws. cc @VSadov @bartdesmet " +5964 area-System.IO Expose existing FileStream.Lock() and FileStream.Unlock() APIs on MacOS/Unix Dear Team, As the subject line states we seek the consideration to add Lock() and Unlock() for FileStream in the contract. The implementation should be straight forward at least for Windows platform. Current .NET 4.61 calls Win32 LockFile underneath: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365202(v=vs.85).aspx Although we don't have access to LockFile for UWP, we do luckily have the brother of it LockFileEx, which also supports async, which is good news. I believe for Linux/BSD/Mac there should be easy equivalent to find as locking on file is very common in old days. Will find all the details if the team is willing to consider the proposal. We could do our own P/Invoke to call the LockFileEx, but it would be much elegant if corefx support that out of box, unless there is significant reason to reject it. +5965 area-System.Linq Expression.ListBind accepts non-addable properties if element list is empty. "`Expression.ListBind` will accept a property or field that is not of a type with an `Add` method, though it should require such. The validation only passes fully if the element list is empty, as otherwise an attempt to create an `ElementInit` for such a type will fail. Example: ``` C# public class TypeWithEnumerable { public IEnumerable Numbers; } Expression.ListBind(typeof(TypeWithEnumerable).GetProperty(""Numbers"")); // Should throw. ``` " +5966 area-System.Net Allow libcurl to use CURLAUTH_NTLM We already have Negotiate, Digest, and Basic... adding NTLM. @kapilash, @vijaykota, why wasn't this done initially? Is there something important I'm missing? I just tested it, and it appears to work fine (using libcurl4-openssl-dev), and the docs for CURLAUTH_NTLM state it should work with multiple backends. Seems like worst case is there's some platform where it's simply not available but the other auth protocols continue to work as they would...? cc: @kapilash, @vijaykota, @ericeil +5969 area-Infrastructure Ubuntu 14.04.3 Corefx Build Error "Following instructions here https://github.com/dotnet/coreclr/blob/master/Documentation/building/linux-instructions.md CoreCLR builds ok. Corefx gets following error ~/git/corefx$ ./build.sh Setting up directories for build MSBUILD : error MSB1025: An internal failure occurred while running MSBuild. System.EntryPointNotFoundException: Unable to find an entry point named 'SetConsoleCtrlHandler' in DLL 'libcoreclr'. at Interop.libcoreclr.SetConsoleCtrlHandler(ConsoleCtrlHandlerRoutine handler, Boolean addOrRemove) at System.ConsolePal.ControlCHandlerRegistrar.RegisterOrUnregister(Boolean register) at System.Console.add_CancelKeyPress(ConsoleCancelEventHandler value) at Microsoft.Build.CommandLine.MSBuildApp.Execute(String[] commandLine) Unhandled Exception: System.EntryPointNotFoundException: Unable to find an entry point named 'SetConsoleCtrlHandler' in DLL 'libcoreclr'. at Interop.libcoreclr.SetConsoleCtrlHandler(ConsoleCtrlHandlerRoutine handler, Boolean addOrRemove) at System.ConsolePal.ControlCHandlerRegistrar.RegisterOrUnregister(Boolean register) at System.Console.add_CancelKeyPress(ConsoleCancelEventHandler value) at Microsoft.Build.CommandLine.MSBuildApp.Execute(String[] commandLine) at Microsoft.Build.CommandLine.MSBuildApp.Main(String[] args) ./build.sh: line 132: 31021 Aborted (core dumped) ReferenceAssemblyRoot=$__referenceassemblyroot $__scriptpath/Tools/corerun $__scriptpath/Tools/MSBuild.exe ""$__buildproj"" /nologo /verbosity:minimal ""/fileloggerparameters:Verbosity=normal;LogFile=$__buildlog"" /t:Build /p:OSGroup=$__BuildOS /p:COMPUTERNAME=$(hostname) /p:USERNAME=$(id -un) /p:TestNugetRuntimeId=$__TestNugetRuntimeId /p:ToolNugetRuntimeId=$__TestNugetRuntimeId $__UnprocessedBuildArgs tail: cannot open ‘/home/tonyh/git/corefx/msbuild.log’ for reading: No such file or directory Build Exit Code = 134 " +5971 area-System.Net Remove SystemNative_PlatformSupportsMultipleConnectAttempts #5790 removed the uses of this shim. Now we should be able to remove the shim itself. Fixes #5826. @stephentoub, @pgavlin +5972 area-Meta Add documentation around porting to .NET Framework @AlexGhiondea @weshaggard @leecow +5974 area-System.Numerics Cleanup Complex - Format the source file - Combine tests into one source file - Rewrite tests to make advantage of xunit +5975 area-System.Net Change socket test to stop sending data only when we've sent all the data, or an error occurs. If send returns zero, that does not necessarily mean we are done. Fixes #5739 Fixes #4817 @stephentoub, @pgavlin , @CIPop +5976 area-System.Data Change the DbColumn Indexer to use nameof(property) The issue https://github.com/dotnet/corefx/pull/5968 allows the access of attributes of DbColumn using the name of the properties. For better maintainability, the implementation of the indexer should use the nameof(property) instead of the names as strings. This can be done with upgrade of CoreFX repo to C# 6.0 being tracked by #1316 Refer pull request for further details https://github.com/dotnet/corefx/pull/5968 +5980 area-Meta Consider exposing the WinRT targeting pack on NuGet "Hi, I'm trying to write a DNX-based library that will compile on both WPF and Windows 10. This is what my project.json looks like: ``` json ""frameworks"": { ""net46"": { ""frameworkAssemblies"": { ""WindowsBase"": ""4.0.0.0"" } }, ""netcore50"": { ""dependencies"": { ""Microsoft.NETCore.UniversalWindowsPlatform"": ""5.0.0"" } } } ``` And this is what my C# code looks like: ``` csharp #if NET46 using System.Windows; #elif NETCORE50 using Windows.UI.Xaml; #endif public class Dependency { public static DependencyProperty Register(/*...*/) where TOwner : DependencyObject { // ... } } ``` While I have no trouble compiling the code for WPF, the compiler isn't recognizing types like `DependencyProperty` for UWP. I eventually narrowed it down to the fact that it was missing the reference to `Windows.winmd` (or the universal API contract for Windows 10) that contained the types. So suddenly I remembered you guys had WinRT-specific libraries, and I looked into your `project.json` to see how you do it. I eventually figured out you're doing this using some kind of ['targeting pack'](https://github.com/dotnet/corefx/blob/ac67ffac987d0c27236c4a6cf1255c2bcbc7fe7d/src/System.Runtime.WindowsRuntime/src/project.json#L12) package, hosted privately on MyGet. Would it be possible for you guys to upload the package officially to NuGet, so others could use WinRT-specific types in .NET Core libraries? I'm assuming it shouldn't be too much of a trouble, since it only contains the `.winmd` file, right? " +5981 area-System.Net Remove the stale ActiveIssue(5555) tag for OSX Since the default root store should have trust for this cert now, consider this scenario to be Generally Regarded As Safe, like it is for the other platforms. Fixes #5555 (well, it was fixed a while ago, but the test-runtimes lagged) +5982 area-System.Diagnostics TraceSource: Will support load setting from App.config file? The original System.Diagnostic.TraceSource support define tracesource/sourceswitch/tracelistener in app.config xml. Will that be support in the near future for dotnet core? Thanks, Ting +5987 area-System.Diagnostics Process start doesn't resolve environment variables in the executable path. "If you use Process.Start(ProcessStartInfo) method on OSX (or any Unix OS) and a path to executable contains environment variables in it (this environment variables are passed to ProcessStartInfo.Environment). This variables will not be resolved and ""System.ComponentModel.Win32Exception: No such file or directory"" exception will be thrown. This behavior is inconsistent with the Windows version. Note: path looks like ""%EnvVar%\test.exe " +5990 area-Infrastructure Add Fedora 23 to CI / RID Graph / Packages https://getfedora.org/en/cloud/download/docker.html https://fedoraproject.org/wiki/Releases +5991 area-System.Net Address issues in PR #5852 Address issues with Virtualnetwork found in PR#5852. Postponing the fixes for later given the CI system instabilities with *NIX in the last week. - VirtualNetworkStream.cs:112 Nit: I think you said this will never be canceled at this time, so this can wait until later, but if this does have cancellation requested, it'll end up throwing a cancellation exception that's then caught by the catch block, which will return a task in the Faulted state. Technically it'd be better for the task to be in the Canceled state. In reality, for your testing purposes, it's unlikely to matter, as if the operation is immediately awaited, the caller won't be able to tell the difference. If, however, a caller were to inspect the Status of the returned task once it completed (as they might if they were using ContinueWith), they could tell the difference. - VirtualNetworkStreamTest.cs:110 Random isn't thread-safe, so this call should be protected (or you should use RandomNumberGenerator, which is thread-safe). Random has a nasty habit when it's used concurrently of getting into a corrupted state where it then only ever produces zeros. +5993 area-Infrastructure init-tools.sh output should mimic the cmd equivalent where the output is logged out to a file. +5994 area-System.IO Cleanup and reformat System.IO.Packaging Fixes #2699 +5998 area-System.Net Eliminate CallbackHandle in CurlHandler For each request, we end up allocating a native CallbackHandle and wrapping it on the managed side with a SafeCallbackHandle. Then each P/Invoke to register a callback passes a delegate and a GCHandle, stores both in the CallbackHandle, and passes to libcurl a shim function and the CallbackHandle as the user pointer. The shim when invoked then pulls the relevant function out of the CallbackHandle and invokes it. But, we always use the same functions, for which delegates are cached in statics, both for perf and to keep them from being collected. If we instead had a single P/Invoke we called to store pointers to all of these delegates, then we would no longer need to store the delegates in the CallbackHandle, and we'd only have a single piece of state (the GCHandle) to pass for each invocation, which means we could just pass that as the user pointer and get rid of the CallbackHandle altogether. +5999 area-System.Net System.Net.Http.CurlHandler and Unix Sockets "I previously opened #3153 asking about exposing Unix Socket functionality in the CurlHandler, and @stephentoub closed the issue with [an excellent explanation](https://github.com/dotnet/corefx/issues/3153#issuecomment-139289555). However, as things in .NET Core Land have progressed, I'm wondering again about this. Basically, the **dotnet/corert** project is looking to enable native compilation, which means that C# can potentially be used to create useful, native cross-platform tools, much like Go. It's very common for these command-line applications or services on Linux to need to communicate over Unix Sockets; for example, `/var/run/docker.sock` is used to talk to the local Docker daemon. I had a quick look at the `HttpClient` and `HttpRequestMessage` APIs, and the internal handling of `HttpRequestMessage` by `CurlHandler`. There is a potential opportunity to introduce this functionality in an obscure but workable way without breaking or even changing the public API, by using the `Properties` dictionary on `HttpRequestMessage` (which is a `Dictionary`). One could set a property in here, perhaps like: ``` csharp var message = new HttpRequestMessage(HttpMethod.Get, ""http://localhost/api/list""); message.Properties[""Curl.UnixSocketPath""] = ""/var/run/docker.sock""; ``` `CurlHandler` could then check for this property and set `CURLOPT_UNIX_SOCKET_PATH` using `Interop.Http.EasySetOptionString`. An application or library developer using this feature could easily create extension methods on `HttpClient` to give themselves a nicer syntax. If that API would be acceptable, I'd be happy to have a go at implementing it. Thoughts? " +6001 area-System.Net Enable EventSource logging in CurlHandler We currently have a bunch of tracing in CurlHandler, but it's all guarded behind compile-time flags, making it difficult to use to diagnose issues. This converts that to all be EventSource-based logging. It also enables libcurl to provide its debug info via a callback, which is then routed to the EventSource as well, and mapped to the easy handles with which the info is associated. cc: @kapilash, @davidsh, @josguil, @eerhardt +6006 area-System.Net Failed assert in socket tests in ToFileDescriptor on OS X http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst/412/console ``` 23:16:04 Assertion failed: (0 <= fd && fd <= OPEN_MAX), function ToFileDescriptor, file /Users/dotnet-bot/j/workspace/dotnet_corefx/nativecomp_osx_debug/src/Native/Common/pal_utilities.h, line 127. 23:16:04 ./run-test.sh: line 130: 70671 Abort trap: 6 ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory -notrait Benchmark=true 23:16:04 error: One or more tests failed while running tests from 'System.Net.Sockets.APMServer.Tests'. Exit code 134. ``` +6007 area-System.IO Win32FileStream turns async reads into sync reads When filling the internal buffer, Win32FileStream does this as part of ReadAsync: ``` C# Task readTask = ReadInternalCoreAsync(_buffer, 0, _bufferSize, 0, cancellationToken); _readLen = readTask.GetAwaiter().GetResult(); ``` Ugh! There's a large comment about how this is done to avoid concurrent use of the buffer when concurrent read operations are issued, but we should be able to work around that using something similar to what I previously did for WriteAsync and FlushAsync, with the HasActiveBufferOperation mechanism (https://github.com/dotnet/corefx/pull/2929). As it currently stands, it appears that when async reads are performed against a Win32FileStream and those reads are smaller than the file stream's buffer, all such reads will be made synchronous, either because they're pulling from the buffer or because they're blocking waiting for the buffer to be filled. cc: @ericstj, @ianhays, @JeremyKuhne +6008 area-System.Net System.Net.Cache whole namespace is not in corefx? Was porting something that is doing: ``` if (u) request.CachePolicy = new System.Net.Cache.RequestCachePolicy (System.Net.Cache.RequestCacheLevel.Default); else request.CachePolicy = new System.Net.Cache.RequestCachePolicy (System.Net.Cache.RequestCacheLevel.BypassCache); ``` Then discovered that this namespace doesn't exist in the corefx, not even asked or mentioned in issues/code. 1, Is there better practices cancelling the need of this? 2, Is the function absorbed into somewhere else? 3, Or simply missing? +6009 area-Infrastructure prerelease build Microsoft.NETCore.UniversalWindowsPlatform 5.2.0-rc3-23809 can't install in vs 2015 It gives this error msg: ``` All packages are compatible with UAP,Version=v10.0. System.AppContext 4.1.0-rc3-23809 provides a compile-time reference assembly for System.AppContext on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-arm. Some packages are not compatible with UAP,Version=v10.0 (win10-arm). System.AppContext 4.1.0-rc3-23809 provides a compile-time reference assembly for System.AppContext on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-arm-aot. Some packages are not compatible with UAP,Version=v10.0 (win10-arm-aot). System.AppContext 4.1.0-rc3-23809 provides a compile-time reference assembly for System.AppContext on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x86. Some packages are not compatible with UAP,Version=v10.0 (win10-x86). System.AppContext 4.1.0-rc3-23809 provides a compile-time reference assembly for System.AppContext on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x86-aot. Some packages are not compatible with UAP,Version=v10.0 (win10-x86-aot). System.AppContext 4.1.0-rc3-23809 provides a compile-time reference assembly for System.AppContext on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x64. Some packages are not compatible with UAP,Version=v10.0 (win10-x64). System.AppContext 4.1.0-rc3-23809 provides a compile-time reference assembly for System.AppContext on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x64-aot. Some packages are not compatible with UAP,Version=v10.0 (win10-x64-aot). Package restore failed for 'myproject'. Package restore failed. Rolling back package changes for 'myproject'. ``` I tried one earlier build 23808, same error. +6010 area-System.Security Investigate RSACng handle usage When splitting out a thinner RSA implementation from RSACng (https://github.com/dotnet/corefx/commit/58d7b85d3b8a9632d1614716b966381e6d6b4efb) it seemed that RSACng does a lot of accessing of the Key.Handle property. This property returns a distinct disposable/finalizable resource each call, and RSACng does not appear to dispose it when done. Perhaps a single handle can be extracted from the key and cached until the key gets changed. +6011 area-System.Net HttpClient does not support proxy PAC file with file:// scheme "I have a vanilla ASP.net vnext project, and when switching from `dnx451`to `dnxcore50`, `HttpClient`stops working assuming an URI with an invalid protocol. The code itself is trivial: ``` public IActionResult Get() { string baseUrl = ""http://someserver.com/foo/""; using (var client = new HttpClient() { BaseAddress = new Uri(baseUrl) }) { var result = client.GetAsync(""items"").Result; ... } } ``` I tried importing different versions of `System.Net.Http` (e.g. _""System.Net.Http"": ""4.0.1-beta-23409""_), including the latest stable and latest beta, but they are all the same when running under the CoreClr. I didn't find another implementation of HttpClient for the CoreClr, but then, I have a hard time believing that something as elementary would be missing or broken. Am I missing something or using the wrong library? Thanks, Philipp System.AggregateException: One or more errors occurred. ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: The URL does not use a recognized protocol at System.Net.Http.WinInetProxyHelper.GetProxyForUrl(SafeWinHttpHandle sessionHandle, Uri uri, WINHTTP_PROXY_INFO& proxyInfo) at System.Net.Http.WinHttpHandler.SetRequestHandleProxyOptions(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.SetRequestHandleOptions(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.d__103.MoveNext() --- End of inner exception stack trace --- --- End of inner exception stack trace --- at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task`1.get_Result() at OrderManager.Controllers.JobsController.Get() ---> (Inner Exception #0) System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: The URL does not use a recognized protocol at System.Net.Http.WinInetProxyHelper.GetProxyForUrl(SafeWinHttpHandle sessionHandle, Uri uri, WINHTTP_PROXY_INFO& proxyInfo) at System.Net.Http.WinHttpHandler.SetRequestHandleProxyOptions(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.SetRequestHandleOptions(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.d__103.MoveNext() --- End of inner exception stack trace -- " +6013 area-System.Linq Refactor System.Linq Move classes into separate files. Split Enumerable among several files. Remove redundant references to generic types or namespaces. Fixes #1149 @stephentoub since you suggested to @VSadov that splitting this file might be useful at https://github.com/dotnet/corefx/pull/5820#discussion_r52452253 +6017 area-System.Linq System.Linq needs to support 4.1.0.0 on desktop or increase the generation I've added a baseline for our internal build to permit the missing members for now, but you either need to add these APIs to desktop or create an API surface that is OOB-able to desktop. An example of an OOB-able design would be to put the new members on a new type. If you can OOB the new APIs then you can make 4.1.0 dotnet5.4/netstandard1.3. It will work on .NET 4.6 and later. If you cannot OOB the new APIs (or do not want to ) and you add the APIs to .NET 4.6.2/4.7 then you can make 4.0 dotnet5.6/netstandard1.5. If you cannot OOB the new APIs and you cannot add the APIs to .NET 4.6.2/4.7 then we must create a new generation and put the APIs there: dotnet5.7/netstandard1.6. Future versions of desktop must implement the new API in order to claim support for the new generation. /cc @weshaggard @stephentoub +6022 area-System.Numerics Inconsistent results for Math.Cos(double.MaxValue) on Windows and non-Windows platforms ## Problem - `Math.Cos(double.MaxValue)` has inconsistent results on Windows and non-Windows platforms. - Windows: returns `double.MaxValue` - Non-Windows: returns `-0.99998768942656` ## Symptom Whilst working on #5974, I noticed that I broke the Ubuntu, Mac OSX and CentOS builds by causing test failures. Interesting Windows did not break, and the tests ran as expected. Consider the following code: ``` var complex = new Complex(double.MaxValue, 0); Complex result = Complex.Exp(complex); ``` On Windows: `result == new Complex(double.PositiveInfinity, double.NaN)` On Ubuntu etc: `result == new Complex(double.NegativeInfinity, double.NaN)` In the [build logs](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/centos7.1_debug_tst_prtest/1595/consoleFull#-21371504001f1a4601-6aec-4fd5-b678-78d4389fd5e8), this test failure occurs at 8:39:16. The code for Complex.Exp(Complex) is as follows: ``` double expReal = Math.Exp(value._real); double cosImaginary = expReal * Math.Cos(value._imaginary); double sinImaginary = expReal * Math.Sin(value._imaginary); return new Complex(cosImaginary, sinImaginary); ``` This may be a bug, as there are inconsistent implementations of these `System.Math` functions, leading to unexpected/undefined behaviour. I've added a test for this behaviour marked with ActiveIssue in #5974. +6023 area-Serialization Remove System.ServiceModel.Dispatcher namespace to fix reflection block issue in Wcf Type 'System.ServiceModel.Dispatcher.FaultFormatter.OperationFault' is blocked from reflection in NetNative by the toolchain. Reflection on System.Xml.XmlSerializer is blocked which causes overzealous blocking for the System.ServiceModel.Dispatcher namespace as well. Since serialization doesn't use this namespace, this change removes it together with XmlSchema.cs. cc: @hongdai @morganbr @AlexGhiondea @SGuyGe @zhenlan @shmao +6026 area-System.Net HttpWebRequest.UserAgent is not available in corefx? any particular reason why? +6027 area-System.Net Throw PNSE from Socket.Connect on *nix iff a previous connect attempt has failed See #5867 and #5829 for details on the problems with multiple connection attempts using the same socket on platforms that follow BSD/POSIX semantics for sockets. Fixes #5871. @pgavlin, @stephentoub, @davidsh +6028 area-System.Net Modify Outerloop job in groovy to run on Ubuntu and Windows. cc @mmitche @joshfree @rahulkotecha @vijaykota +6035 area-Infrastructure Building and running tests with the latest pre-release packages I would like to enable the scenario for developers to build the tests against the latest packages to be restored from myget. At the moment the current test projects utilize the project.json which are static and have project references to the product being built with the tests. This new scenario would allow for the test project.json to have a reference to the latest version of the product dependency it is testing and the latest versions of their sub dependencies. Your thoughts on this scenario? @weshaggard @ericstj CC: @joshfree @ianhays +6037 area-Infrastructure OpenSUSE PR jobs passing all tests but then failing the job e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/opensuse13.2_debug_tst_prtest/1125/console ``` 02:58:37 All tests passed. 02:58:37 [xUnit] [INFO] - Starting to record. 02:58:37 [xUnit] [INFO] - Processing xUnit.Net-v2 (default) 02:58:38 [xUnit] [INFO] - [xUnit.Net-v2 (default)] - 143 test report file(s) were found with the pattern '**/testResults.xml' relative to '/mnt/resource/j/workspace/dotnet_corefx/opensuse13.2_debug_tst_prtest' for the testing framework 'xUnit.Net-v2 (default)'. 02:58:38 [xUnit] [ERROR] - Test reports were found but not all of them are new. Did all the tests run? ``` +6038 area-System.Net Allow CurlHandler to opt-in to NTLM via CredentialCache "libcurl supports four auth types (Negotiate, NTLM, Digest, and Basic), but today our CurlHandler implementation only enables three (Negotiate, Digest, and Basic), with NTLM explicitly disabled to match what was done in WinHttpHandler in corefx (the full framework enables it). However, there are a few key differences that need to be taken into account for CurlHandler. For example, popular implementations of gssapi and Negotiate on Unix do not include implementations for fallback to NTLM. So whereas including “Negotiate” in WinHttpHandler often allows code on Windows to use NTLM if Kerberos is not available, the current state of CurlHandler often does not. And although NTLM has some known issues, if it's the only option for a scenario where a Unix front-end needs to communicate with a Windows back-end (say because the front-end doesn't have Kerberos infrastructure available and the back-end only has Windows authentication enabled), we still want it to be possible for a developer to write an app that communicates with that back-end: the underlying platform supports it, so if the developer explicitly wants it, CurlHandler sitting in the middle shouldn't get in the way. As such, this commit enables NTLM to be used, essentially removing the blocking of it that was previously done. However, it's not enabled by default for arbitrary credentials; rather, it's only enabled when a credential added to a CredentialCache explicitly specifies ""NTLM"". That way, it's available for a dev to opt-in to if desired, but just providing a NetworkCredential to CurlHandler will not use NTLM. cc: @bartonjs, @davidsh, @cipop, @kapilash, @chrisrpatterson, @ericeil " +6039 area-System.IO Win32FileStream will issue a seek on every ReadAsync call Full description is here: https://ayende.com/blog/173345/the-cost-of-async-i-o?key=227b21e219594be48ca03bc8312b08b9 But the gist of it is that we are trying to call ReadAsync on a file that is located on a remote share. Using ReadAsync, we saw a really horrible performance degradation. We tracked it down to this issue: ![image](https://cloud.githubusercontent.com/assets/116915/12979633/159bc0ae-d0e1-11e5-85f8-ba055fa313fb.png) And here is the problematic code: https://github.com/dotnet/corefx/blob/master/src/System.IO.FileSystem/src/System/IO/Win32FileStream.cs#L1201 Given that all async calls are always passing the position they use in the overlap, and how expensive this call is, it make for a very bad combination. +6041 area-System.Net Exception Format Bug A bug in the exception formatter results in format exception, there by giving wrong message in case of exceptions. This PR attempts to fix the issue. cc @stephentoub , @vijaykota @shrutigarg +6042 area-System.Net Native PkgProj for System.Net.Security Introducing package proj for gssapi native libraries. +6045 area-System.Reflection [SRM] Mark assembly as [CLSCompliant(true)] and mark individual APIs as [CLSCompliant(false)] Some APIs use pointers (e.g. MetadataReader constructor). Provide an alternative CLS compliant API. Such APIs could also improve usability in C# when the caller has byte[] or ImmutableArray and no interest in dealing with pointers. +6046 area-System.Security Restore the S.S.C.OpenSsl package to Unix-only PR #5880 made the OpenSsl package claim to be cross-platform to allow consumers of a particular form of lack-of-RSA.Create-workaround to continue having their code function after improved package validation came online. Now that RSA.Create exists, we should undo that workaround and go back to being honest that the package doesn't work on Windows. +6049 area-System.Net Allow IPv4 Loopback for DualModeConnect_AcceptAsync sockets tests Some sockets tests were connecting with the IPv4 loopback address and asserting that the connected IPv6 address was equivalent to the IPv4 loopback mapped to IPv6 (ffff:127.0.0.1). However, a non-mapped IPv4 loopback (127.0.01) is still supported on some platforms so the test needs to accommodate that case as it is still a valid loopback address. resolves #4829 @ericeil +6058 area-System.Net Modify NetworkInformation tests to search deeper for test files. "Helix builds for the Open tests for System.Net.NetworkInformation.FunctionalTests are failing because the testdata is being binplaced differently from in the open. The Helix build is placing the testdata into a ""NetworkFiles"" subdirectory like it is in the project structure, whereas it is binplaced to the dnxcore50 directory when running them normally. Rather than add complicated special-casing for Helix for this particular test project, I instead modified the only place we use that testdata to check both possible places before performing the file read. @CIPop @MattGal @joshfree @davidsh " +6059 area-Infrastructure Remove validation suppression from System.Runtime.Serialization.Primitives We're suppressing validation in System.Runtime.Serialization.Primitives until we can oob it to desktop. +6063 area-System.Net fixing comment check if we need to fix the comment https://github.com/shrutigarg/corefx/commit/f047a7d53ae699e51b8ee631e80d72cde4b6139b#commitcomment-16019127 +6064 area-System.Net Merge master to dev/negotiatestream +6070 area-System.Globalization OpenSUSE CI builds with lots of test failures "Most (all) of these look globalization related: ``` CaseInsensitiveComparer_ctor.ExecuteCaseInsensitiveComparer_ctor CaseInsensitiveComparer_Default.ExecuteCaseInsensitiveComparer_Default CaseInsensitiveComparer_Object.ExecuteCaseInsensitiveComparer_Object CollectionsUtilTests.ExecuteCollectionsUtilTests StringTests.TestEndsWith(comparisonType: CurrentCultureIgnoreCase, text: ""Hello"", value: ""LLO"", expected: True) StringTests.TestCompare(strA: ""HELLO"", strB: ""hello"", comparisonType: CurrentCultureIgnoreCase, expected: 0) StringTests.TestStartsWith(comparisonType: CurrentCultureIgnoreCase, text: ""Hello"", value: ""HEL"", expected: True) StringTests.TestCompareIndexed(strA: ""HELLO"", indexA: 2, strB: ""hello"", indexB: 2, length: 3, comparisonType: CurrentCultureIgnoreCase, expected: 0) StringTests.TestCompareIndexed(strA: ""HELLO"", indexA: 2, strB: ""hello"", indexB: 2, length: 3, comparisonType: CurrentCulture, expected: 1) StringTests.TestCompareIndexed(strA: ""hello"", indexA: 2, strB: ""HELLO"", indexB: 2, length: 3, comparisonType: CurrentCulture, expected: -1) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""abcde"", i: 0, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""abcd"", i: 0, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""abc"", i: 0, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""ab"", i: 0, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""a"", i: 0, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""bcde"", i: 1, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""bcd"", i: 1, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""bc"", i: 1, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""b"", i: 1, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""cde"", i: 2, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""cd"", i: 2, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""c"", i: 2, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""de"", i: 3, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""d"", i: 3, comparison: CurrentCultureIgnoreCase) StringTests.TestIndexOf_AllSubstrings(source: ""abcde"", substring: ""e"", i: 4, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""abcde"", i: 0, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""abcd"", i: 0, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""abc"", i: 0, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""ab"", i: 0, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""a"", i: 0, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""bcde"", i: 1, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""bcd"", i: 1, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""bc"", i: 1, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""b"", i: 1, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""cde"", i: 2, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""cd"", i: 2, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""c"", i: 2, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""de"", i: 3, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""d"", i: 3, comparison: CurrentCultureIgnoreCase) StringTests.TestLastIndexOf_AllSubstrings(source: ""abcde"", substring: ""e"", i: 4, comparison: CurrentCultureIgnoreCase) TupleTests.TestCompareTo System.Reflection.Tests.MethodInfoPropertyTests.TestReturnType2 System.Reflection.Tests.MethodInfoPropertyTests.TestReturnType4 System.Reflection.Tests.ParameterInfoNameTests.TestMethodParams1 System.Collections.Specialized.Tests.OrderedDictionaryTests.PassingEqualityComparers System.Linq.Expressions.Tests.Expression_Tests.TestCallInstanceMethodsByName StringComparerTests.TestCurrent RegexReplaceStringTests.RegexReplaceStringTestCase0 ``` " +6072 area-System.Net Disable Linux specific testcase for Plateform not supprted exception This testcase is no longer valid after the move of Platform specific content from NegoState.csl to NegoStreamPal. +6073 area-System.Linq Add TrySingle(IEnumerable, out TSource) "## Motivation In LINQ we have the `Single` and `SingleOrDefault` methods, but they don't tell you if it succeeded or not. The problem with these methods is that if there is more than one element in `source` (or more than one matching element in case of `predicate`) they all throw a `System.InvalidOperationException`. That is fine if more than one element is an error or very rare. If more than one element is common or expected then this will cause major slow downs. Additionaly, in cases of (example: int collections), default(int) is 0, which wouldn't tell the caller whether the operation succeeded (returning the item 0) or not (returning the default 0). ## Proposal ``` diff namespace System.Linq { public static class Enumerable { public static TSource Single(this IEnumerable source); public static TSource Single(this IEnumerable source, Func predicate); public static TSource SingleOrDefault(this IEnumerable source); public static TSource SingleOrDefault(this IEnumerable source, Func predicate); + public static bool TrySingle(this IEnumerable source, out TSource element); + public static bool TrySingle(this IEnumerable source, Func predicate, out TSource element); public static TSource First(this IEnumerable source); public static TSource First(this IEnumerable source, Func predicate); public static TSource FirstOrDefault(this IEnumerable source); public static TSource FirstOrDefault(this IEnumerable source, Func predicate); + public static bool TryFirst(this IEnumerable source, out TSource element); + public static bool TryFirst(this IEnumerable source, Func predicate, out TSource element); public static TSource Last(this IEnumerable source); public static TSource Last(this IEnumerable source, Func predicate); public static TSource LastOrDefault(this IEnumerable source); public static TSource LastOrDefault(this IEnumerable source, Func predicate); + public static bool TryLast(this IEnumerable source, out TSource element); + public static bool TryLast(this IEnumerable source, Func predicate, out TSource element); public static TSource ElementAt(this IEnumerable source, int index); public static TSource ElementAtOrDefault(this IEnumerable source, int index); + public static bool TryElementAt(this IEnumerable source, int index, out TSource element); } public static class Queryable { public static TSource Single(this IQueryable source); public static TSource Single(this IQueryable source, Expression> predicate); public static TSource SingleOrDefault(this IQueryable source); public static TSource SingleOrDefault(this IQueryable source, Expression> predicate); + public static (bool success, T value) TrySingle(this IQueryable source); + public static (bool success, T value) TrySingle(this IQueryable source, Expression> predicate); + public static bool TrySingle(this IQueryable source, out TSource element); + public static bool TrySingle(this IQueryable source, Expression> predicate, out TSource element); public static TSource First(this IQueryable source); public static TSource First(this IQueryable source, Expression> predicate); public static TSource FirstOrDefault(this IQueryable source); public static TSource FirstOrDefault(this IQueryable source, Expression> predicate); + public static (bool success, T value) TryFirst(this IQueryable source); + public static (bool success, T value) TryFirst(this IQueryable source, Expression> predicate); + public static bool TryFirst(this IQueryable source, out TSource element); + public static bool TryFirst(this IQueryable source, Expression> predicate, out TSource element); public static TSource Last(this IQueryable source); public static TSource Last(this IQueryable source, Expression> predicate); public static TSource LastOrDefault(this IQueryable source); public static TSource LastOrDefault(this IQueryable source, Expression> predicate); + public static (bool success, T value) TryLast(this IQueryable source); + public static (bool success, T value) TryLast(this IQueryable source, Expression> predicate); + public static bool TryLast(this IQueryable source, out TSource element); + public static bool TryLast(this IQueryable source, Expression> predicate, out TSource element); public static TSource ElementAt(this IQueryable source, int index); public static TSource ElementAtOrDefault(this IQueryable source, int index); + public static (bool success, T value) TryElementAt(this IQueryable source, int index); + public static bool TryElementAt(this IQueryable source, int index, out TSource element); } } ``` ## Original I'd like to propose a new LINQ method: `TrySingle`. The idea is pretty much the same as the existing `Single` method except it does not throw an exception when there is not only a single item in the sequence. To do this I made to modifications to the `Single` contract: 1. First the method returns `bool`. `true` if the sequence contains exactly one item, `false` otherwise. 2. I added an out parameter of type `TSource`. This will ""hold"" the single element on success. On failure it is filled with `default(TSource)`. I have found this method very useful in my own code and if accepted can quickly put together a pull request. " +6075 area-System.Net InnerSafeCloseSocket.SetNonBlocking should access the AsyncContext property InnerSafeCloseSocket.SetNonBlocking should access the AsyncContext property, rather than using _asyncContext directly. _asyncContext might not be initialized yet. This causes a NullReferenceException if setting the socket to non-blocking before some other operation has initialized the AsyncContext. +6076 area-Serialization [Port] System.Text.EncoderFallbackException: Unable to translate Unicode character We fixed the issue on desktop. We need to port the fix to .Net Core. ``` Discovering: System.Runtime.Serialization.Xml.Tests Discovered: System.Runtime.Serialization.Xml.Tests Starting: System.Runtime.Serialization.Xml.Tests XmlDictionaryWriterTest.XmlDictionaryWriter_InvalidUnicodeChar [FAIL] System.Text.EncoderFallbackException : Unable to translate Unicode character \uDB1B at index 0 to specified code page. Stack Trace: at System.Text.EncoderExceptionFallbackBuffer.Fallback(Char charUnknown, Int32 index) at System.Text.EncoderFallbackBuffer.InternalFallback(Char ch, Char*& chars) at System.Text.UTF8Encoding.GetByteCount(Char* chars, Int32 count, EncoderNLS baseEncoder) at System.Text.UTF8Encoding.GetByteCount(String chars) at System.Text.Encoding.GetBytes(String s) D:\OSS\corefx\src\System.Private.DataContractSerialization\src\System\Xml\XmlStreamNodeWriter.cs(468,0): atSystem.Xml.XmlStreamNodeWriter.UnsafeGetUTF8Chars(Char* chars, Int32 charCount, Byte[] buffer, Int32 offset) D:\OSS\corefx\src\System.Private.DataContractSerialization\src\System\Xml\XmlStreamNodeWriter.cs(354,0): atSystem.Xml.XmlStreamNodeWriter.UnsafeWriteUTF8Chars(Char* chars, Int32 charCount) D:\OSS\corefx\src\System.Private.DataContractSerialization\src\System\Xml\XmlUTF8TextWriter.cs(480,0): at System.Xml.XmlUTF8NodeWriter.UnsafeWriteEscapedText(Char* chars, Int32 count) D:\OSS\corefx\src\System.Private.DataContractSerialization\src\System\Xml\XmlUTF8TextWriter.cs(447,0): at System.Xml.XmlUTF8NodeWriter.WriteEscapedText(String s) D:\OSS\corefx\src\System.Private.DataContractSerialization\src\System\Xml\XmlBaseWriter.cs(1019,0): at System.Xml.XmlBaseWriter.WriteString(String value) D:\OSS\corefx\src\System.Private.DataContractSerialization\src\System\Xml\XmlDictionaryAsyncCheckWriter.cs(381,0): at System.Xml.XmlDictionaryAsyncCheckWriter.WriteString(String text) D:\OSS\corefx\src\System.Runtime.Serialization.Xml\tests\XmlDictionaryWriterTest.cs(127,0): at XmlDictionaryWriterTest.XmlDictionaryWriter_InvalidUnicodeChar() Finished: System.Runtime.Serialization.Xml.Tests ``` +6078 area-System.Reflection CustomAttributeExtensions.GetCustomAttribute does not return inherited attributes for indexer argument "System.Reflection.CustomAttributeExtensions.GetCustomAttribute(this ParameterInfo element, Type attributeType, bool inherit) - which is located in the **System.Reflection.Extensions** assembly - does not returned inherited attributes for indexer arguments. It does work fine for method arguments though (for example). To reproduce, compile and run the following code snippet: ``` c# using System; using System.Reflection; namespace ConsoleApp1 { public class Program { static void Main() { var indexerParam = typeof(Sub).GetProperty(""Item"").GetIndexParameters()[0]; var indexerParamAttr = indexerParam.GetCustomAttribute(typeof(MyAttribute), true); Console.WriteLine($""Indexer: {indexerParamAttr != null}""); var methodParam = typeof(Sub).GetMethod(""Run"").GetParameters()[0]; var methodParamAttr = methodParam.GetCustomAttribute(typeof(MyAttribute), true); Console.WriteLine($""Method: {methodParamAttr != null}""); } } [AttributeUsage(AttributeTargets.All)] public class MyAttribute : Attribute { } public abstract class Base { public abstract string Run([MyAttribute] int[] args); public abstract object this[[MyAttribute] int[] args] { get; set; } } public class Sub : Base { public override string Run(int[] args) { return null; } public override object this[int[] args] { get { return null; } set { } } } } ``` Expected result: ``` text Indexer: True Method: True ``` Actual result: ``` text Indexer: False Method: True ``` " +6079 area-System.Net CurlException during 'dotnet restore' in Ubuntu when redirected to certain CDN servers "Ubuntu 14.04 LTS. Reproduced in the Performance repository for ASP.NET. **The exact same scenario succeeds in Windows**. Repro code: ``` C# using System; using System.Diagnostics; using System.IO; using System.Net.Http; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { var url1 = @""https://dotnet.myget.org/F/dotnet-core/api/v3/flatcontainer/runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography/1.0.1-rc2-23805/runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.1.0.1-rc2-23805.nupkg""; var url2 = @""https://www.myget.org/F/aspnetcidev/api/v3/flatcontainer/microsoft.aspnetcore.server.kestrel/1.0.0-rc2-16391/microsoft.aspnetcore.server.kestrel.1.0.0-rc2-16391.nupkg""; //this one succeeds always Test(url1); //this one fails in Linux, succeeds in Windows Test(url2); } public static void Test(string url) { Console.WriteLine(url); var client = new HttpClient(); var webstask = client.GetAsync(url); var result = webstask.Result; if(result.IsSuccessStatusCode) { Console.WriteLine(""Success""); var readtask = result.Content.ReadAsByteArrayAsync(); var bytes = readtask.Result; Console.WriteLine(""Read {0} bytes"", bytes.Length); } else { Console.Write(""Failed with status code {0}"", result.StatusCode); } } } } ``` This program will succeed to run in Windows but fail in Linux with the following exception: ``` Unhandled Exception: System.AggregateException: One or more errors occurred. (An error occurred while sending the request.) ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: Peer certificate cannot be authenticated with given CA certificates at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(EasyRequest completedOperation, CURLcode messageResult) --- End of inner exception stack trace --- --- End of inner exception stack trace --- at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at ConsoleApplication.Program.Test(String url) at ConsoleApplication.Program.Main(String[] args) ``` We found this by getting [HelloWorldMvc](https://github.com/aspnet/Performance/tree/dev/testapp/HelloWorldMvc) and trying to `dotnet restore -s https://myget.org/f/dotnet-core -s https://myget.org/f/aspnetcidev -s https://api.nuget.org/v3/index.json`. The result is a number of messages indicating `An error occurred while sending the request.` and failure to load one or multiple packages. Note however that some packages will actually succeed. We identified that when requesting for nuget packages we get 302 redirected to CDN nodes. In the repro code above, the first URL will 302 redirect to a blob file under a `windows.net` domain. The second URL 302 redirects to a `kxcdn.com`. The certificate for this CDN node was issued by COMODO RSA Domain Validation Secure Server CA. I took Fiddler traces on Windows to see if anything was suspicious about the requests or responses, but so far I haven't identified anything. Here's a copy of the response headers I saw. Success case: ``` GET https://dotnet.myget.org/F/dotnet-core/api/v3/flatcontainer/runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography/1.0.1-rc2-23805/runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.1.0.1-rc2-23805.nupkg HTTP/1.1 302 Found Cache-Control: private, s-maxage=0 Content-Type: text/html; charset=utf-8 Location: https://dotnetmyget.blob.core.windows.net/privatefeeddotnet0core/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography-1.0.1-rc2-23805?sv=2014-02-14&sr=b&sig=hTjHAsbpKJ2DujU2qrQH%2FNYlRRV4suZQLwi4A6RFHXI%3D&st=2016-02-12T18:55:00Z&se=2016-02-12T20:05:00Z&sp=r&rscc=max-age%3D3600&rsct=binary%2Foctet-stream&rscd=filename%3Druntime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.1.0.1-rc2-23805.nupkg Server: Microsoft-IIS/8.5 X-Frame-Options: deny X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Date: Fri, 12 Feb 2016 19:20:50 GMT Content-Length: 577 -----------> GET https://dotnetmyget.blob.core.windows.net/privatefeeddotnet0core/runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography-1.0.1-rc2-23805?sv=2014-02-14&sr=b&sig=hTjHAsbpKJ2DujU2qrQH%2FNYlRRV4suZQLwi4A6RFHXI%3D&st=2016-02-12T18:55:00Z&se=2016-02-12T20:05:00Z&sp=r&rscc=max-age%3D3600&rsct=binary%2Foctet-stream&rscd=filename%3Druntime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.1.0.1-rc2-23805.nupkg HTTP/1.1 200 OK Cache-Control: max-age=3600 Content-Length: 37506 Content-Type: binary/octet-stream Content-MD5: AqSICrowLpVQZrsGBsbipQ== Last-Modified: Fri, 05 Feb 2016 07:22:40 GMT Accept-Ranges: bytes ETag: ""0x8D32DFD220326C7"" Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 x-ms-request-id: 065fa41c-0001-000a-37ca-657f0c000000 x-ms-version: 2014-02-14 x-ms-lease-status: unlocked x-ms-lease-state: available x-ms-blob-type: BlockBlob Content-Disposition: filename=runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.1.0.1-rc2-23805.nupkg Date: Fri, 12 Feb 2016 19:20:52 GMT ``` Fail case: ``` GET https://www.myget.org/F/aspnetcidev/api/v3/flatcontainer/microsoft.aspnetcore.server.kestrel/1.0.0-rc2-16391/microsoft.aspnetcore.server.kestrel.1.0.0-rc2-16391.nupkg HTTP/1.1 302 Found Cache-Control: private, s-maxage=0 Content-Type: text/html; charset=utf-8 Location: https://myget-2e16.kxcdn.com/privatefeedaspnetcidev/Microsoft.AspNetCore.Server.Kestrel-1.0.0-rc2-16391?sv=2014-02-14&sr=b&sig=OfWatRJb4qdl29OJDx9PmotBAeNZeyhx3nqHqqJ0260%3D&st=2016-02-12T18%3A55%3A00Z&se=2016-02-12T20%3A05%3A00Z&sp=r&rscc=max-age%3D3600&rsct=binary%2Foctet-stream&rscd=filename%3DMicrosoft.AspNetCore.Server.Kestrel.1.0.0-rc2-16391.nupkg Server: Microsoft-IIS/8.5 X-Frame-Options: deny X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Date: Fri, 12 Feb 2016 19:21:01 GMT Content-Length: 504 -----------> GET https://myget-2e16.kxcdn.com/privatefeedaspnetcidev/Microsoft.AspNetCore.Server.Kestrel-1.0.0-rc2-16391?sv=2014-02-14&sr=b&sig=OfWatRJb4qdl29OJDx9PmotBAeNZeyhx3nqHqqJ0260%3D&st=2016-02-12T18%3A55%3A00Z&se=2016-02-12T20%3A05%3A00Z&sp=r&rscc=max-age%3D3600&rsct=binary%2Foctet-stream&rscd=filename%3DMicrosoft.AspNetCore.Server.Kestrel.1.0.0-rc2-16391.nupkg HTTP/1.1 200 OK Server: keycdn-engine Date: Fri, 12 Feb 2016 19:21:01 GMT Content-Type: binary/octet-stream Content-Length: 698348 Connection: keep-alive Cache-Control: max-age=3600 Content-MD5: IOWe07QD6QTPyvhA0dSGpQ== Last-Modified: Tue, 09 Feb 2016 07:00:20 GMT ETag: ""0x8D3311EACA7E862"" x-ms-request-id: f4df10d2-0001-0010-1cc9-65c4fc000000 x-ms-version: 2014-02-14 x-ms-lease-status: unlocked x-ms-lease-state: available x-ms-blob-type: BlockBlob Content-Disposition: filename=Microsoft.AspNetCore.Server.Kestrel.1.0.0-rc2-16391.nupkg X-Cache: HIT X-Edge-Location: usse Access-Control-Allow-Origin: * Accept-Ranges: bytes ``` **Note** we can still restore the packages by using `dnu restore` instead. For some reason `dnu` isn't affected by this issue. " +6083 area-System.IO [System.IO]: File.Copy does not retain the timestamp of the original file Copied file has the current timestamp instead of the source file's timestamp. +6085 area-Infrastructure Use Roslyn toolset package for Windows builds Currently we are only using new Roslyn toolset packages in our x-plat builds since we are using .NetCore MSBuild in those platforms. On Windows, we are still using the Full VS MSBuild which doesn't have those roslyn tools. Once we move Windows to use them as well, we will be able to start using C#6 features on our repo. Steps for this to work: - [x] In BuildTools repo: restore the full framework roslyn compilers as part of the tool initialization. (PR dotnet/buildtools#453) - [x] In CoreFx repo: Update corefx to depend on this new version of BuildTools and change the dir.props to use the new roslyn compilers. (PR #6181) cc: @weshaggard FYI: @jaredpar @NickCraver +6087 area-Serialization Remove unused legacy data contract json serializer code We have switched to share data contract json serializer with NetNative instead of the implementation based on JavaScriptSerializer in https://github.com/dotnet/corefx/commit/06d51d6f49eb41a71810833c26c3eb4a89a73df7. This change is to remove the remaining unused code. cc: @mellinoe @SGuyGe @shmao @zhenlan +6090 area-Infrastructure ./build broken for Debian As of 8ca8c48 the `build.sh` script errors out on Debian 8.2: ``` ~/projects/dotnet/corefx$ ./build.sh Setting up directories for build ./build.sh: line 106: /home/projects/dotnet/corefx/Tools/corerun: No such file or directory tail: cannot open ‘/home/projects/dotnet/corefx/msbuild.log’ for reading: No such file or directory Build Exit Code = 127 ``` I regret that I don't have time to dig into this but mention it because the new and improved build tooling will be very appreciated. BTW, I see that the CI builds are still passing, so I'm guessing that Jenkins is not using the same tooling? +6092 area-System.IO MemoryMappedFile.CreateFromFile not able to open file for read "@stephentoub, my changes for ILC integration with CLI https://github.com/dotnet/cli/pull/1363 failed in the CI. Is the below by design? I narrowed it down to this scenario: XUnit runner process and the ILC's input project both refer to the same version of the NETStandard.Library. XUnit runner loads System.Console.dll from the shared packages cache location. ILC wants to compile an user's app using the same System.Console.dll specified in the project.json file and opens a `MemoryMappedFile` on it which errors out with: ``` The process cannot access the file 'C:\Users\schellap\.nuget\packages\runtime.win7.System.Console\4.0.0-rc2 -23811\runtimes\win7\lib\dotnet5.4\System.Console.dll' because it is being used by another process. ``` To repro, 1. Download [CLI](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/Latest/dotnet-win-x64.latest.zip) and unzip into c:\cli 2. `set DOTNET=c:\cli` 3. Unzip this zip file [temp2.zip](https://github.com/dotnet/corefx/files/128969/temp2.zip) or use below code. 4. Run repro.bat from the zip file. 5. Unexpected result. ``` public static int Main(string[] args) { MemoryMappedFile mappedFile = null; while (true) try { mappedFile = MemoryMappedFile.CreateFromFile(args[0], FileMode.Open, null, 0, MemoryMappedFileAccess.Read); Console.WriteLine(""Expected""); return 100; } catch (IOException e) { Console.WriteLine(""Unexpected "" + e.Message); } finally { if (mappedFile != null) mappedFile.Dispose(); } return -1; } ``` ``` :: populate the shared location %DOTNET%\bin\dotnet.exe restore :: compile the app %DOTNET%\bin\dotnet.exe publish :: delete system.console so shared system.console will be used if exist ""bin\Debug\dnxcore50\win7-x64\System.Console.dll"" (del ""bin\Debug\dnxcore50\win7-x64\System.Console.dll"") :: run the process bin\Debug\dnxcore50\win7-x64\temp2.exe %USERPROFILE%\.nuget\packages\runtime.win7.System.Console\4.0.0-rc2-23811\runtimes\win7\lib\dotnet5.4\System.Console.dll ``` " +6104 area-System.Threading Expose cancellation due to exceptions and breaking with Parallel loops The `Parallel` loops break when an exception is thrown or when the loop is aborted using `ParallelLoopState` members. When that happens the existing work items that are still executing have no (built-in) way to find out. They cannot cancel themselves to speed up the failure/exit case. `ParallelLoopState` should expose a `CancellationToken` that becomes signaled when the loop aborts for any reason. There is a workaround for this available: Users can catch all exceptions, signal a custom token, then `throw;`. It would be nicer and possibly faster if this was built-in, though. +6107 area-System.Net Add LocalEndPoint and RemoteEndPoint properties to TcpClient Due to https://github.com/dotnet/corefx/pull/5953 it is not possible to get this information. This is a pretty important property and I think should be added to the contract before next RC release. Obtaining IP address information is essential for application-level IP blocking/banning etc among many other things... +6109 area-System.ComponentModel Remove sealed from Phone and EmailAddress data annotation attributes Can you remove sealed from [Phone], [EmailAddress] and [Url] data annotation attributes(classes). It would be great if developers can inherit their implementation and add their own improvements to the existing functionality. > ``` > public class PhoneAttribute : DataTypeAttribute > { > public PhoneAttribute(); > > public override bool IsValid(object value); > } > ``` **And I will use it as follows:** Example: > public class PhoneLocalized : PhoneAttribute > { > public PhoneLocalized() > { > base.ErrorMessageResourceType = typeof(WebPortalResource); > base.ErrorMessageResourceName = WebPortalResourceName.PhoneWrong; > } > } **How I use Phone attrbute now in my view model:** > public class RegViewModel > { > [Phone(ErrorMessageResourceType = typeof(WebPortalResource), ErrorMessageResourceName = WebPortalResourceName.PhoneWrong)] > public string Phone { get; set; } > } **How I would use it if I was able to inherit the [Phone] attribute** > public class RegViewModel > { > [PhoneLocalized] > public string Phone { get; set; } > } +6110 area-System.Data Suspicious, likely broken checks inside System.Data.SqlClient.SqlConnectionFactory.CreateConnection() `System.Data.SqlClient.SqlConnectionFactory.CreateConnection()` goes like this: ``` SqlConnection sqlOwningConnection = owningConnection as SqlConnection; // then later... else if (owningConnection != null) { userOpt = (SqlConnectionString)(((SqlConnection)owningConnection).UserConnectionOptions); } if (owningConnection != null) { recoverySessionData = ((SqlConnection)owningConnection)._recoverySessionData; } ``` why is `owningConnection` being cast to `SqlConnection` again and irrespective to what `as SqlConnection` returned? Technically it allows for cases when `owningConnection` is non-null but if of type other than `SqlConnection` - then casts will just fail with an exception. Is that intended? Should `sqlOwningConnection` be used instead? Maybe `as` should be replaced with a cast instead? +6111 area-System.Net Fix in SafeCredentialHandle when using default credentials This PR fixes the Null Reference Exception when default credentials are used. +6113 area-System.Net Merge master to dev/negotiatestream Some changes are necessary to pick up to unblock the build. +6114 area-System.Net Negotiate Stream on Unix does not fail with invalid target `NegotiateStream.AuthenticateAsClientAsync` does not fail for invalid target. +6115 area-System.Data Suspicious timeout computations in System.Data.SqlClient.SqlInternalConnectionTds `System.Data.SqlClient.SqlInternalConnectionTds` has `LoginNoFailover()` and `LoginWithFailover()` methods which differently compute `timeoutUnitInterval`. `LoginWithFailover()` does this: ``` if (timeout.IsInfinite) { timeoutUnitInterval = checked((long)ADP.FailoverTimeoutStep * ADP.TimerFromSeconds(ADP.DefaultConnectionTimeout)); } else { timeoutUnitInterval = checked((long)(ADP.FailoverTimeoutStep * timeout.MillisecondsRemaining)); } ``` and `LoginNoFailover()` does this: ``` if (timeout.IsInfinite) { timeoutUnitInterval = checked((long)(ADP.FailoverTimeoutStep * (1000L * ADP.DefaultConnectionTimeout))); } else { timeoutUnitInterval = checked((long)(ADP.FailoverTimeoutStep * timeout.MillisecondsRemaining)); } ``` `else`-branches are exactly the same. Yet one `if` branch uses `TimerFromSeconds()` which returns number of ticks for given number of seconds and another uses multiplication by one thousand. Why the difference? +6116 area-System.Data Suspicious comment on use of GC.KeepAlive() in System.Data.SqlClient.SqlConnection.TryOpen() `System.Data.SqlClient.SqlConnection.TryOpen()` has this comment ``` // does not require GC.KeepAlive(this) because of OnStateChange ``` I don't see an explicit call to `OnStateChange()` anywhere in that method. Even if there's a call chain which leads to `OnStateChange()` from that method it'd be more reliable to put `GC.KeepAlive()` call so that code isn't broken by later changes. It's worth remembering that failing to use `GC.KeepAlive()` can causes the subtlest race conditions. +6118 area-System.Data Suspicious comment about non-existing lock in System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() `System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()` has this warning: ``` // call OnError outside of _ErrorCollectionLock to avoid deadlock ``` there's nothing called `_ErrorCollectionLock` or similarly in the codebase. The comment is full of magic. +6119 area-System.Data System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() silently swallows error conditions `System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()` has a Debug.Assert check that the errors connection is not empty and also this excellent `if`: ``` SqlConnection exception = null; //later... if (temp != null && temp.Count > 0) //craft exception } //later ... if (exception != null ) { //do a lot of cool stuff } // else do nothing ``` which means that allowing to have this function called when there're no elements in `temp` leads to a logical error - no error indication is given and the connection is just silently closed. Those `Debug.Assert`s should instead throw something like `InvalidOperationException`. +6120 area-System.Data Suspicious error object creation in System.Data.SqlClient.TdsParserStateObject.OnTimeout() "`System.Data.SqlClient.TdsParserStateObject.OnTimeout()` goes like this: ``` _internalTimeout = true; // lock protects against Close and Cancel lock (this) { if (!_attentionSent) { AddError(new SqlError( WHATEVER )); ``` If you look through usage of `_internalTimeout` elsewhere in the same class you may notice that `ReadSniError()` also checks `_internalTimeout` and optionally sets `fail` local variable. It's unclear whether this may cause `ThrowExceptionAndWarning()` being called with empty ""errors"" collection which would cause https://github.com/dotnet/corefx/issues/6119 I guess that `OnTimeout()` should add a new `SqlError()` no matter if `_attentionSent` is set. " +6122 area-System.Net Cannot locate reference to type IPAddress "Hello, I've published a .NET Core library to nuget. Here is the project.json of this package: ``` ""frameworks"": { ""dnx451"": { ""frameworkAssemblies"": { ""System"": """", ""System.Net"": """" } }, ""dnxcore50"": { ""dependencies"": { ""System.Console"": ""4.0.0-beta-23516"", ""System.Collections"": ""4.0.11-beta-23516"", ""System.Linq"": ""4.0.1-beta-23516"", ""System.Net.Sockets"": ""4.1.0-beta-23516"", ""System.Runtime"": ""4.0.21-beta-23516"", ""System.Threading"": ""4.0.11-beta-23516"" } } ``` I've installed this package from nuget to the DNX451 console app and restored nuget packages. Unfortunately I have a problem with compiling. > Reference to type 'IPAddress' claims it is defined in 'System.Net.Primitives', but it could not be found ConsoleNet451Sample` What is wrong? In my .NET Core project i have no references to System.Net.Primitives " +6126 area-System.Net Use SafeHandles in *nix Sockets implementation "Most of the *nix Sockets code was dealing directly in file descriptors, without using SafeHandles to keep the file descriptors alive during pending operations. #5750 is an example of the kind of issue this can lead to; in that case, the Socket object was collected and finalized while a pending async I/O was in progress, effectively cancelling the I/O. On Windows, pending async I/O keeps the native socket alive (unless someone explicitly calls `Dispose` on the socket), so we need to have similar behavior on *nix. The ""meat"" of the change is to track the `SafeCloseSocket` instance in `SocketAsyncContext` (instead of the file descriptor), and to pass these as SafeHandles to the interop layer whenever possible. Unfortunately, System.Native.so's functions mostly take `int32_t` file descriptor arguments. Fixing this the ""pretty"" way would involve changing all of these to `intptr_t`, and then using the normal p/invoke `SafeHandle`->`IntPtr` marshaling. But updating all of the signatures in System.Native.so is quite a project, as we'd need to keep both the old _and_ new signatures for some time. For now, I've done manual `SafeHandle`->`int` marshaling, and will open an issue for cleaning this up further. We will need to think some more about how this interacts with `SocketAsyncEngine`; I believe there is a race there that will lead to problems, but I don't think this change makes it any worse. Fixes #5750 Probably fixes #4563 Might fix #4890, #5628. @stephentoub @pgavlin @CIPop " +6128 area-Infrastructure Cannot compile CoreFX on Linux anymore "There is a MSBuild failure when you build CoreFX on Ubuntu 14.04: ``` ./build.sh Setting up directories for build Restoring NuGet.exe... Installing dotnet cli... Restoring BuildTools version 1.0.25-prerelease-00167... Initializing BuildTools... Done initializing tools. MSBUILD : error MSB1025: An internal failure occurred while running MSBuild. System.EntryPointNotFoundException: Unable to find an entry point named 'Stat' in DLL 'System.Native'. at Interop.Sys.Stat(String path, FileStatus& output) at System.IO.UnixFileSystem.DirectoryExists(String fullPath) at System.IO.Directory.Exists(String path) at Microsoft.Build.Shared.FileUtilities.LooksLikeUnixFilePath(String value) at Microsoft.Build.CommandLine.MSBuildApp.GatherCommandLineSwitches(ArrayList commandLineArgs, CommandLineSwitches commandLineSwitches) at Microsoft.Build.CommandLine.MSBuildApp.GatherAllSwitches(String[] commandLine, CommandLineSwitches& switchesFromAutoResponseFile, CommandLineSwitches& switchesNotFromAutoResponseFile) at Microsoft.Build.CommandLine.MSBuildApp.Execute(String[] commandLine) Unhandled Exception: System.EntryPointNotFoundException: Unable to find an entry point named 'Stat' in DLL 'System.Native'. at Interop.Sys.Stat(String path, FileStatus& output) at System.IO.UnixFileSystem.DirectoryExists(String fullPath) at System.IO.Directory.Exists(String path) at Microsoft.Build.Shared.FileUtilities.LooksLikeUnixFilePath(String value) at Microsoft.Build.CommandLine.MSBuildApp.GatherCommandLineSwitches(ArrayList commandLineArgs, CommandLineSwitches commandLineSwitches) at Microsoft.Build.CommandLine.MSBuildApp.GatherAllSwitches(String[] commandLine, CommandLineSwitches& switchesFromAutoResponseFile, CommandLineSwitches& switchesNotFromAutoResponseFile) at Microsoft.Build.CommandLine.MSBuildApp.Execute(String[] commandLine) at Microsoft.Build.CommandLine.MSBuildApp.Main(String[] args) ./build.sh: line 100: 12558 Aborted (core dumped) ReferenceAssemblyRoot=$__referenceassemblyroot $__scriptpath/Tools/corerun $__scriptpath/Tools/MSBuild.exe ""$__buildproj"" /nologo /verbosity:minimal ""/fileloggerparameters:Verbosity=normal;LogFile=$__buildlog"" ""/l:BinClashLogger,$__binclashloggerdll;LogFile=$__binclashlog"" /t:Build /p:OSGroup=$__BuildOS /p:COMPUTERNAME=$(hostname) /p:USERNAME=$(id -un) /p:TestNugetRuntimeId=$__TestNugetRuntimeId $__UnprocessedBuildArgs ``` " +6132 area-System.Linq System.Dynamic.Utils.CollectionExtensions.ToReadOnly modifies ReadOnlyCollectionBuilder "`System.Dynamic.Utils.CollectionExtensions.ToReadOnly` contains the lines: ``` C# var builder = enumerable as ReadOnlyCollectionBuilder; if (builder != null) { return builder.ToReadOnlyCollection(); } ``` `ReadOnlyCollectionBuilder.ToReadOnlyCollection` basically does this: ``` C# val old = this._items; this._items = Array.Empty(); return old; ``` Meaning `CollectionExtensions.ToReadOnly` clears the `ReadOnlyCollectionBuilder` object passed in. As an example of the weirdness that ensues: ``` C# using System.Runtime.CompilerServices; using System.Linq.Expressions; public static class Weird { public static void Run() { var parameters = new ReadOnlyCollectionBuilder { Expression.Parameter(typeof(int), ""a""), Expression.Parameter(typeof(int), ""b"") }; var blah = Expression.Lambda(Expression.Empty(), parameters); if (parameters.Count == 0) { System.Console.WriteLine(""This line gets printed, which is strange""); } } } ``` I don't mind the weirdness of random methods being treated as a sink for `ReadOnlyCollectionBuilder` objects but it's not really clear from the documentation that this behavior is intentional. " +6134 area-System.Data System.Data.SqlClient.TdsParser contains but fails to properly own an AutoResetEvent `System.Data.SqlClient.TdsParser` has this member: ``` internal AutoResetEvent _resetConnectionEvent = null; // Used to serialize executes and call reset on first execute only. ``` `AutoResetEvent` _is_ `IDisposable`, yet nothing is done to have `Dispose()` called. +6135 area-System.Net Include NetSecurityNative for Native Build cc @vijaykota @stephentoub +6136 area-System.Threading System.Threading.ReaderWriterLockSlim.LazyCreateEvent() fails to properly own the just created event `System.Threading.ReaderWriterLockSlim.LazyCreateEvent()` goes like this: ``` EventWaitHandle newEvent; if (makeAutoResetEvent) newEvent = new AutoResetEvent(false); else newEvent = new ManualResetEvent(false); EnterMyLock(); if (waitEvent == null) // maybe someone snuck in. waitEvent = newEvent; else newEvent.Dispose(); ``` There's quite a lot of code between a new event is created _and_ its ownership is passed to the caller. If there's an exception in between the newly created event gets leaked. +6139 area-System.Net NegotiateStream Tests on Unix Introducing CI tests for NegotiateStream on Unix. This PR is introduced as two commits - 1) where the infrastructure setup (related to installing and configuring kdc) is done as a part of external script (that is run by the jenkins job). 2)where the setup is done via a test fixture. In order for the tests to run successfully, #5773 needs to be merged. cc: @stephentoub @vijaykota @shrutigarg +6142 area-System.Net ClientWebSocket Dispose AV's while operations still in-flight WCF stress hits an AV while inside an async call to SendAsync on a web socket that is already disposed. ``` 0:023> k 00 coreclr!MarshalNative::GCHandleInternalGet [f:\dd\ndp\clr\src\vm\marshalnative.cpp @ 731] 01 mscorlib_ni!System.Runtime.InteropServices.GCHandle.get_Target()+0x1e 02 System_Net_WebSockets_Client!System.Net.WebSockets.WinHttpWebSocket.SendAsync 03 System_Net_WebSockets_Client!System.Net.WebSockets.ClientWebSocket.SendAsync 04 System_Private_ServiceModel!System.ServiceModel.Channels.WebSocketTransportDuplexSessionChannel+WebSocketStream+ 05 mscorlib_ni!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start 06 System_Private_ServiceModel!System.ServiceModel.Channels.WebSocketTransportDuplexSessionChannel+WebSocketStream.WriteAsync 07 System_Private_ServiceModel!System.ServiceModel.Channels.TimeoutStream+d__10.MoveNext() 08 mscorlib_ni!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start 09 System_Private_ServiceModel!System.ServiceModel.Channels.TimeoutStream.WriteAsync 0a System_Private_ServiceModel!System.ServiceModel.Channels.TimeoutStream+ 0b mscorlib_ni!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start 0c System_Private_ServiceModel!System.ServiceModel.Channels.TimeoutStream.WriteAsyncInternal 0d System_Private_ServiceModel!System.ServiceModel.Channels.TimeoutStream.Write 0e System_Private_DataContractSerialization_ni!System.Xml.XmlStreamNodeWriter.WriteBytes 0f System_Private_DataContractSerialization_ni!System.Xml.XmlBinaryNodeWriter.WriteBase64Text 10 System_Private_DataContractSerialization_ni!System.Xml.XmlBaseWriter.WriteBase64(Byte[], Int32, Int32)+0x18d 11 System_Private_ServiceModel!System.ServiceModel.Dispatcher.StreamFormatter+StreamFormatterHelper.WriteValue 12 System_Private_ServiceModel!System.ServiceModel.Dispatcher.StreamFormatter.Serialize 13 System_Private_ServiceModel!System.ServiceModel.Dispatcher.OperationFormatter.SerializeBodyContents 14 System_Private_ServiceModel!System.ServiceModel.Dispatcher.OperationFormatter+OperationFormatterMessage+OperationFormatterBodyWriter.OnWriteBodyContents 15 System_Private_ServiceModel!System.ServiceModel.Channels.BodyWriterMessage.OnWriteBodyContents 16 System_Private_ServiceModel!System.ServiceModel.Channels.Message.OnWriteMessage 17 System_Private_ServiceModel!System.ServiceModel.Channels.BinaryMessageEncoderFactory+BinaryMessageEncoder.WriteMessage 18 System_Private_ServiceModel!System.ServiceModel.Channels.WebSocketTransportDuplexSessionChannel.OnSendCore 19 System_Private_ServiceModel!System.ServiceModel.Channels.TransportDuplexSessionChannel.OnSend 1a System_Private_ServiceModel!System.ServiceModel.Channels.OutputChannel.Send 1b System_Private_ServiceModel!System.ServiceModel.Dispatcher.DuplexChannelBinder+DuplexRequestContext.OnReply 1c System_Private_ServiceModel!System.ServiceModel.Channels.RequestContextBase.Reply 1d System_Private_ServiceModel!System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.Reply 1e System_Private_ServiceModel!System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage9 1f System_Private_ServiceModel!System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage8 20 System_Private_ServiceModel!System.ServiceModel.Dispatcher.MessageRpc.Process 21 System_Private_ServiceModel!System.ServiceModel.Dispatcher.MessageRpc+Wrapper.Resume 22 System_Private_ServiceModel!System.ServiceModel.Dispatcher.ThreadBehavior.CleanThreadCallback 23 mscorlib_ni!System.Threading.Tasks.Task.Execute() ``` +6145 area-Infrastructure Re-enable unicode zip tests for Unix "Consumes the new xunit Trait ""IgnoreForCI"" for the System.IO.Compression unicode tests that are failing on Jenkins. We'll need to pass `-notrait Category=IgnoreForCI` to build.cmd in Jenkins, though I do not know the process for that. resolves #5096, #5459 @stephentoub @ellismg " +6147 area-System.Net Fix HttpClient diagnostic logging PR https://github.com/dotnet/corefx/pull/5881 Pulls the commit from https://github.com/dotnet/corefx/pull/5881, then adds one to fix it up to pass the builds and tests. cc: @nbilling Replaces https://github.com/dotnet/corefx/pull/5881 +6149 area-System.Numerics Further work after #5974 Some remaining work needs to be done, brought up in #5974 - consolidate common test data - refactor test methods (I'm gonna need some more details on this one - it was mentioned but not very much expanded on in the PR) /cc @mellinoe +6150 area-System.Linq Make Linq, Dynamic and Expressions use the same coding style as the rest of corefx At least for consistency sake. It could be as simple as running the formatter tool, but could be a fairly big change. In particular for Linq. +6153 area-System.IO System.IO.Tests.FileStream_Dispose.DisposeVirtualBehavior failed on Ubuntu Release ``` System.IO.Tests.FileStream_Dispose.DisposeVirtualBehavior [FAIL] 17:42:30 Assert.True() Failure 17:42:30 Expected: True 17:42:30 Actual: False 17:42:30 Stack Trace: 17:42:31 at System.IO.Tests.FileStream_Dispose.DisposeVirtualBehavior() ``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/ubuntu_release_tst_prtest/1916/consoleFull#-21371504001f1a4601-6aec-4fd5-b678-78d4389fd5e8 +6154 area-System.Net System.Net.Sockets.Tests.ConnectExTest.ConnectEx_Success failed on CentOS Release ``` System.Net.Sockets.Tests.ConnectExTest.ConnectEx_Success [FAIL] 17:43:39 System.Net.Sockets.SocketException : Unknown error 10048 17:43:39 Stack Trace: 17:43:39 at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) 17:43:39 at System.Net.Sockets.Socket.Bind(EndPoint localEP) 17:43:39 at System.Net.Sockets.Tests.SocketTestServerAsync.Start(EndPoint localEndPoint) 17:43:39 at System.Net.Sockets.Tests.SocketTestServer.SocketTestServerFactory(SocketImplementationType type, Int32 numConnections, Int32 receiveBufferSize, EndPoint localEndPoint, ProtocolType protocolType) 17:43:39 at System.Net.Sockets.Tests.ConnectExTest.ConnectEx_Success() 17:43:39 Finished: System.Net.Sockets.Tests ``` +6156 area-System.IO Add System.IO.* tests missing from Open As part of disabling the ToF tests, we're raising coverage in Open where there are gaps that are covered by the ToF tests. This commit gets us to parity with ToF for: - System.IO.Compression - System.IO.Compression.ZipFile - System.IO.FileSystem.DriveInfo - System.IO.FileSystem.Watcher - System.IO.MemoryMappedFiles - System.IO.Pipes - System.IO.UnmanagedMemoryStream +6158 area-System.Net KDC setup for Linux cc: @stephentoub, @bartonjs, @Priya91 - Added KDC setup script and config files (tested on Ubuntu, Debian, CentOS and Red Hat) - Changes to System.Net.Security.Tests project file so as to copy the KDC setup script and related conf files to output directory +6161 area-System.Net Enable NegotiateStream tests on OSX The script used on Linux OSs (see #6158) does not work on OSX since the latter uses Heimdal KDC. So currently the tests are blocked on OSX. The script needs to be fixed and tests need to be enabled for OSX. +6162 area-System.Numerics New method to get permutations of items in 1D collections "Getting all the possible permutations (understood in its widest sense) of elements in a given 1D collection is a somehow common requirement. For example (C# version): ``` List items = new List() { 1, 2, 3 }; //All permutations of 2 //a) No repeated elements and order doesn't matter (1-2 = 2-1) //1-2, 1-3, 2-3 //b) No repeated elements and order matters (1-2 != 2-1) //1-2, 1-3, 2-1, 2-3, 3-1, 3-2 //c) Repeated elements and order doesn't matter //1-1, 1-2, 1-3, 2-3, 2-2, 3-3 //d) Repeated elements and order matters //1-1, 1-2, 1-3, 2-1, 2-3, 2-2, 3-1, 3-2, 3-3 //All permutations of 3, etc. ``` With a constant number of elements (e.g., 3, as proposed in the aforementioned example), implementing an algorithm to deliver this functionality is quite straightforward (i.e., as many nested loops as elements). On the other hand, with a variable number of elements (e.g., any number between 3 and 10), the complexity is notably increased. Even in the first simpler scenario, being able to just type `myPermutations = myCollection.Permutations(2);` would be certainly helpful. My proposal is to create a new method for 1D collections delivering all the possible permutations among its elements. It might be called ""Permutations"" and accept various arguments, like number of items per permutation or type of permutation (as shown in the example above). At least for the first version, I think that the best format for the output variable is a dictionary of integers (key) and collection of objects (value). By assuming that the first version will be included within the `System.Array` methods, I guess that the dictionary should be of type (C#) `Dictionary`. In case of deciding to go ahead with this proposal, I would like to implement it myself. " +6167 area-Meta Add a issue_template.md and pull_request_template.md Please see https://github.com/dear-github/dear-github/issues/125 and https://news.ycombinator.com/item?id=11119411 Maybe an idea for this repo? +6172 area-System.IO System.IO.Compression DeflateStream WriteAsync doesn't use underlying WriteAsync In DeflateStream WriteAsync and FlushAsync we're using the base Stream's async operations that wrap the underlying stream's Write/Flush in a Begin/End architecture to jury-rig an async operation. That doesn't make much sense imo when our underlying stream already implements Stream and possibly has its own specific asynchronous methods that it wants to be used. We should consider modifying the DeflateStream asynchronous Write and Flush methods to do like ReadAsync does and directly call the underlying stream's asynchronous methods. If the underlying stream doesn't override WriteAsync then there will be no change from the current behavior. @stephentoub +6173 area-System.Net Race conditions in SocketAsyncEngine "In [`SocketAsyncEngine.EventLoop`](https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEngine.Unix.cs#L80), there is a window where `WaitForSocketEvents` has returned an event for a socket, but we have not yet deferenced the event's `GCHandle` to obtain the socket's `SocketAsyncContext`. In that window, another thread may close the socket and free the `GCHandle`. This can lead to some problems, depending on what _else_ happens in this window. The most egregious of these is probably as follows: If another `GCHandle` is allocated for another `SocketAsyncContext`, when we will misattribute the events to the new socket. For the most part this won't matter, as it will simply mean that we have to retry some operation again. But if the new socket has a pending ""connect"" operation, and we receive a ""write"" event, we'll think the new socket is connected, and there is likely no way we can recover from this. We need to find a way to synchronize the freeing of these handles with any pending calls to `WaitForSocketEvents` _or_ switch to a handle allocation mechanism that does not re-use handles. " +6174 area-System.Net Cleanup WebUtility tests - Use xunit InlineData +6180 area-System.Net HttpClient.GetAsync is slow in dnxcore50 compared to dnx461 When using GetAsync on HttpClient the request is taking considerably longer to return when running the same code targeting dnxcore50 compared to dnx461. This is from an ASP.NET 5 project, and happens when running within IIS Express and Kestrel. As an aside was hoping to debug against the core code, but even after cloning the repo, and adding the source folder to my global.json file I couldn't get VS2015 to pick up the local reference, so any help on that would be great. +6182 area-System.IO System.IO.Compression: Delegate to underlying stream async methods This commit modifies our DeflateStream FlushAsync and WriteAsync methods to delegate to the underlying stream instead of the base stream. resolves #6172 @stephentoub @ericstj +6185 area-Meta Reference assemblies need to include private struct fields Today the reference assemblies for .NET assemblies strip private fields from structs. This has an observable, and potentially dangerous, impact on project that consume them: - Allows pointers to be created for structs with fields of a reference type. - Prevents the compiler from catching cyclic struct layout problems. - Breaks C# definite assignment checking. - Allows structs using `[FieldOffset]` to verify when they should not. - Prevents developers from correctly planning for interop scenarios. More details are available [here](http://blog.paranoidcoding.com/2016/02/15/are-private-members-api-surface.html) and an example of the problems this can produce is [here](https://github.com/dotnet/roslyn/issues/8410). I understand part of the motivation for removing these fields is to keep the reference assemblies small. Keeping the fields necessitates keeping the type definitions for the types of the fields and this can cascade into many more types / members being included thus increasing size. Cutting private fields for classes is fine as it's unobservable. Unfortunately for structs fields are observable irrespective of their accessibility and must be maintained in reference assemblies. The only action I think that can be done to curtail the number of types a struct brings in is the following: > A reference assembly can represent an inaccessible struct field which is a reference type as `object`. Essentially `class`, `interface`, `delegate` and generic type parameters constrained to `class` can be transformed to object. ``` csharp // Implementation assembly private interface IBigInterface { ... } public struct S { private IBigInterface _field; } // Reference assembly public struct S { private object _field; } ``` This is unobservable to the compiler and can help limit the number of types brought it. +6186 area-System.Net Fix race in SocketAsyncEngine "In `SocketAsyncEngine.EventLoop`, there is a window where `WaitForSocketEvents` has returned an event for a socket, but we have not yet dereferenced the event's 'GCHandle' to obtain the socket's `SocketAsyncContext`. In that window, another thread may close the socket and free the `GCHandle`. This can lead to some problems, depending on what else happens in this window. The most egregious of these is probably as follows: If another `GCHandle` with the same value is allocated for another `SocketAsyncContext`, then we will misattribute the events to the new socket. For the most part this won't matter, as it will simply mean that we have to retry some operation again. But if the new socket has a pending ""connect"" operation, and we receive a ""write"" event, we'll think the new socket is connected, and there is likely no way we can recover from this. This change switches to a new handle allocation strategy that does not permit re-use of a given handle with a given event port. Handle values increase monotonically until we reach the handle's maximum size; at that point, we allocate a new event port, and start allocating handle values from zero. The old port will be freed once all of the handles associated with that port have been freed. On 64-bit platforms, the maximum handle value is `long.MaxValue`, which effectively means that we will never need to allocate a new event port. On 32-bit platforms, we top out at `int.MaxValue`, and so a long-running process may occasionally need to allocate a new port. Since this limit is reachable on 32-bit, but is in any case hard to reach, we artificially impose a very low limit in ""debug"" builds, so we can be sure to exercise the rollover to the new event port. Fixes #6173. @pgavlin, @stephentoub " +6187 area-System.Net Socket_ConnectAsyncDnsEndPoint_HostNotFound test failed with TryAgain error http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_release_prtest/2364/consoleFull ``` 16:18:38 System.Net.Sockets.Tests.DnsEndPointTest.Socket_ConnectAsyncDnsEndPoint_HostNotFound [FAIL] 16:18:38 SocketError: TryAgain 16:18:38 Expected: True 16:18:38 Actual: False 16:18:38 Stack Trace: 16:18:38 d:\j\workspace\windows_nt_re---5067c899\src\System.Net.Sockets.Legacy\tests\FunctionalTests\DnsEndPointTest.cs(348,0): at System.Net.Sockets.Tests.DnsEndPointTest.AssertHostNotFoundOrNoData(SocketAsyncEventArgs args) 16:18:38 d:\j\workspace\windows_nt_re---5067c899\src\System.Net.Sockets.Legacy\tests\FunctionalTests\DnsEndPointTest.cs(196,0): at System.Net.Sockets.Tests.DnsEndPointTest.Socket_ConnectAsyncDnsEndPoint_HostNotFound() ``` +6188 area-System.Xml ReadContentAsInt18 XML test failure on OS X http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst_prtest/946/console ``` 16:45:15 System.Xml.Tests.IntegerTests.ReadContentAsInt18 [FAIL] 16:45:15 Assert.Equal() Failure 16:45:15 ↓ (pos 25) 16:45:15 Expected: ···1 12:00:00 AM +00:00 16:45:15 Actual: ···1 12:00:00 AM +00:00 +00:00 16:45:15 ↑ (pos 25) 16:45:15 Stack Trace: 16:45:15 at System.Xml.Tests.IntegerTests.ReadContentAsInt18() ``` +6191 area-System.IO Add Path.CreateRelativePath method to calculate a relative path between two others "### Background Currently, there's no built-in way to recalculate a path relative to another directory in .NET. The [most popular SO answer](http://stackoverflow.com/a/340454/4077294) on the topic is over 10 lines, which is less than ideal. Also, it's pretty allocation-heavy since it instantiates 3 `Uri` objects and 3 strings. ## Proposal ### Signature The method would look like this: ``` csharp public static string CreateRelativePath(string @from, string to) ``` - **from** would be the directory path for which the newly returned path would be relative to. It could be absolute or relative. - **to** would be the path for which the returned path would point to. It could also be absolute or relative. If either paths are relative, they are resolved in relation to the process' current directory (e.g. via `Path.GetFullPath`). ### Example inputs/outputs ``` csharp Path.CreateRelativePath(@""C:\Users"", @""C:\Users\James""); // returns James Path.CreateRelativePath(""/usr/local/bin"", ""/usr/bin""); // returns ../../bin Path.CreateRelativePath(""lib"", ""../test""); // returns ../../test ``` What do you guys think? " +6195 area-Infrastructure Native code does not compile under arm64 I'm looking into it. +6196 area-System.Diagnostics Unable to register Trace Listener in CORE CLR I want to capture logs in Core CLR and want to register a trace listener for same. But I am unable to find a way to do so. This can be achieved in Full CLR in this way: ``` TextWriterTraceListener writer = new TextWriterTraceListener(System.Console.Out); Debug.Listeners.Add(writer); ``` I want to achieve same thing in Core CLR but TextWriterTraceListner is not available in core CLR. How can this be achieved? +6200 area-System.Net Implementing BidirectionDictionary and using it for statusCode mapping - Added BidirectionalDictionary implementation in Collections/Generic. - Updated the logic of mapping native status code to common status codeby using BidirectionalDictionary Tested locally. cc: @stephentoub @bartonjs @vijaykota +6201 area-System.Net Remove an aggressive assert Fix for #6199 cc @stephentoub @vijaykota +6204 area-Meta Add support for SystemMessaging and SOAP Web Services Is there planned support for Queueing through the System.Messaging namespace and Soap WebServices through some other namespace? Will there be support for MSMQ, AMQP, SOAP, etc? +6205 area-System.Security S.S.C.Csp SafeHandle types have an allocating+finalizing InvalidHandle property SafeProvHandle, SafeKeyHandle, SafeHashHandle all have allocating InvalidHandle properties, but all the usages assume a static object (at least, none of them dispose the value they get back) +6210 area-System.Security Investigate handle usage in S.S.C.Csp's CapiHelper class A lot of CapiHelper was a transliteration of the crypto VM QCall functions from C++ to C#. Unfortunately, some handle management got lost in transliteration: The VM held these handles in stack-allocated classes similar to SafeHandle, which means that the dtor fired on block exit. Since the VM never visibly called CryptDestroyKey (or the appropriate function for the handle type) this caused a lot of Disposes to be converted to Finalizes. And that exposed a handle-order-free problem. (The SafeKeyHandle has an underlying relationship with the SafeProvHandle that allocated it, if the SafeProvHandle is freed first, the SafeKeyHandle free returns false. And largely they're both being finalized). +6211 area-System.Security SafeKeyHandle depends on SafeProvHandle, and should track that A SafeKeyHandle is allocated from a SafeProvHandle. The SafeKeyHandle needs the SafeProvHandle to not be freed first. So the SafeKeyHandle should track its parent/child relationship similar to how SafeInteriorHandle does. +6218 area-System.Net Lots of timeouts on Unix in DualMode connect tests Some of the tests are hanging in EndConnect, e.g. ``` 00007F6A6C94B150 00007F6A6D897DF0 System.Net.Sockets.SocketAPMExtensions.EndConnect(System.Net.Sockets.Socket, System.IAsyncResult) 00007F6A6C94B170 00007F6A6D89784B System.Net.Sockets.Tests.DualMode.DualModeBeginConnect_IPEndPointToHost_Helper(System.Net.IPAddress, System.Net.IPAddress, Boolean) 00007F6A6C94B200 00007F6A6D897718 System.Net.Sockets.Tests.DualMode.b__45_0() 00007F6A6C94B220 00007F6A6D79D36E Xunit.Assert.RecordException(System.Action) 00007F6A6C94B250 00007F6A6D79D2FB Xunit.Assert.Throws[[System.__Canon, mscorlib]](System.Action) 00007F6A6C94B280 00007F6A6D8976AA System.Net.Sockets.Tests.DualMode.BeginConnectV6IPEndPointToV4Host_Fails() ``` Others are timing out, e.g. ``` 10:32:46 System.Net.Sockets.Tests.DualMode.ConnectAsyncV4IPEndPointToV4Host_Success [FAIL] 10:32:46 Timed out while waiting for connection 10:32:46 Expected: True 10:32:46 Actual: False 10:32:46 Stack Trace: 10:32:46 at System.Net.Sockets.Tests.DualMode.DualModeConnectAsync_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer) 10:32:46 at System.Net.Sockets.Tests.DualMode.ConnectAsyncV4IPEndPointToV4Host_Success() ``` +6220 area-Infrastructure Incremental build does not work outside Windows RIght now if you build a project twice in a row, the second build re-runs some targets that should be up-to-date already. When I build System.Private.Uri twice on Windows, almost all of the targets are skipped on the second try. On Linux, some targets are re-run. Namely, the CoreResGen and CoreCompile targets are both run again, and those are probably two of the most expensive targets, relatively speaking. This may be due to some difference in the x-plat MSBuild we are using. I have tried to use the CoreCLR version of MSBuild on Windows to see if this would reproduce, but there seems to be an issue with csc in that case (something about a COM interface cast failing). Notably, though, it DOES try to rerun the CoreResGen and CoreCompile steps like it does on Linux, and skips the same targets that it does on Linux. So I strongly suspect this is a bug in the CoreCLR-MSBuild we are using. @joperezr +6222 area-System.Net Make setup-kdc.sh executable. cc @kapilash @rahku @vijaykota Refer this [comment](https://github.com/dotnet/corefx/pull/6139#issuecomment-185936932) +6223 area-System.Console WindowAndCursorProps.Title_Set failed on Windows 10 http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win10_debug/91/consoleFull ``` 10:33:10 WindowAndCursorProps.Title_Set [FAIL] 10:33:10 System.IO.IOException : No process is on the other end of the pipe 10:33:10 Stack Trace: 10:33:10 d:\j\workspace\outerloop_win---0cba2915\src\System.Console\src\System\ConsolePal.Windows.cs(539,0): at System.ConsolePal.set_Title(String value) 10:33:10 d:\j\workspace\outerloop_win---0cba2915\src\System.Console\src\System\Console.cs(265,0): at System.Console.set_Title(String value) 10:33:10 d:\j\workspace\outerloop_win---0cba2915\src\System.Console\tests\WindowAndCursorProps.cs(107,0): at WindowAndCursorProps.Title_Set() ``` +6224 area-Infrastructure Windows 7 outer loop test runs failing finding vcvarsall.bat "``` 05:45:09 d:\j\workspace\outerloop_win---627ab81b>call ""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"" x86 && Build.cmd /p:ConfigurationGroup=Release /p:WithCategories=""InnerLoop;OuterLoop"" /p:TestWithLocalLibraries=true 05:45:09 '""C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat""' is not recognized as an internal or external command, 05:45:09 operable program or batch file. ``` " +6226 area-System.IO DeletedTests.FileSystemWatcher_Deleted_Negative failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst_prtest/1011/console ``` 13:40:44 DeletedTests.FileSystemWatcher_Deleted_Negative [FAIL] 13:40:44 Should not observe a deleted event within 500ms 13:40:44 Expected: False 13:40:44 Actual: True 13:40:44 Stack Trace: 13:40:44 at Utility.ExpectNoEvent(WaitHandle eventOccurred, String eventName, Int32 timeout) 13:40:44 at DeletedTests.FileSystemWatcher_Deleted_Negative() ``` +6230 area-System.Runtime Add Arm64 support in RuntimeInformation Currently there is no Arm64 support in CoreFX. I've added support in the native part (see PR #6229), but the managed part needs to go through a review process which I'm opening here. The simple change requested is to add the Arm64 enum entry to the various enum types listing all the supported platforms. However this is not sufficient, the various platform/OS implementation of RuntimeInformation needs to be updated to take into account this new value. Here is the list of C# classes that will be most likely need to be updated (list is not exhaustive): ``` src/System.Runtime.InteropServices.RuntimeInformation/ref/System.Runtime.InteropServices.RuntimeInformation.cs src/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/Architecture.cs src/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/RuntimeInformation.Windows.cs src/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/RuntimeInformation.Unix.cs src/Common/src/Interop/Windows/mincore/Interop.SYSTEM_INFO.cs src/Common/src/Interop/Unix/System.Native/Interop.GetUnixArchitecture.cs src/System.Runtime/ref/System.Runtime.cs ``` +6231 area-System.Net HTTP response Stream.ReadAsync acts differently from .NET Framework When an HTTP server closes the connection before sending all of the content, `HttpClient` in the .NET Framework throws a `System.IO.IOException`. .NET Core treats this as an acceptable end of content and throws no exception. This occurs when the server sends `Content-Length`. When using `Transfer-Encoding: chunked`, both .NET Framework and .NET Core throw a `System.IO.IOException` but the inner exceptions seem like the error is being handled differently. Oddly, when using HTTP response `Stream.Read` (not `async`), `Content-Length` works just fine in both .NET Core and .NET Framework and `Transfer-Encoding: chunked` throws in both cases. I tested .NET Core with `dnx run` and `dotnet run` and tested .NET Framework with Visual Studio 2015's F5 experience in a .csproj as well as `dnx run`. I have not tested this on any other operating system. Library versions and a minimal repro are available in this project. [CloseTooEarly.zip](https://github.com/dotnet/corefx/files/137222/CloseTooEarly.zip) This is concerning because it seems that the .NET Core HTTP client is less strict about the `Content-Length` header, which is (as far as I know) is strong assertion by the server of how much it will sent and should therefore throw to not risk data corruption. Also, there seems to be inconsistency between the `async` and non-`async` cases. +6232 area-Serialization Move CoreCLR-only serialization tests to a separate file We have internal lab run of serialization tests on corefx for NetNative which involve these tests affecting other tests because of compilation failure so this is to move them out to a separate file until that issue is fixed. @SGuyGe @shmao @zhenlan +6235 area-System.Net On Ubuntu 14.04 CoreFX build hangs while Test Execution I have been trying to build CoreFX on Ubuntu but every time the build hangs while performing Test Execution for System.Net.Security.Unit.Tests with System.TimeOutException. Only way to come out of it is to kill the process. Any idea what could be the reason? System.Net.Sockets.APMServer.Tests-> /home/clrtestbld1/git/corefx/bin/Linux.AnyCPU.Debug/System.Net.Sockets.APMServer.Tests/System.Net.Sockets.APMServer.Tests.dll xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Net.Sockets.APMServer.Tests Discovered: System.Net.Sockets.APMServer.Tests Starting: System.Net.Sockets.APMServer.Tests System.Net.Sockets.Tests.DualMode.ReceiveMessageFromAsyncV6BoundToSpecificV6_Success [FAIL] **System.TimeoutException : The operation has timed out.** Stack Trace: at System.Net.Sockets.Tests.DualMode.ReceiveMessageFromAsync_Helper(IPAddress listenOn, IPAddress connectTo, Boolean expectedToTimeout) at System.Net.Sockets.Tests.DualMode.ReceiveMessageFromAsyncV6BoundToSpecificV6_Success() System.Net.Sockets.Tests.DualMode.ConnectAsyncV4IPEndPointToV6Host_Fails [FAIL] Assert.Throws() Failure Expected: typeof(System.Net.Sockets.SocketException) Actual: typeof(Xunit.Sdk.TrueException): Timed out while waiting for connection Expected: True Actual: False Stack Trace: at System.Net.Sockets.Tests.DualMode.DualModeConnectAsync_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer) at System.Net.Sockets.Tests.DualMode.b__55_0() +6239 area-System.Net Commit edbd7ba / PR 6147 is causing test failures in internal TFS builds Regarding: https://github.com/dotnet/corefx/commit/edbd7ba720699bbe20753872ac430f0b3fdaf3a9 (PR #6147) This commit seems to be causing a lot of failures in the internal TFS runs with the exception of this sort: CoreCLR: ``` Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The system cannot find the file specified. File name: 'System.Diagnostics.DiagnosticSource, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' at System.Net.Http.WinHttpHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.DelegatingHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) ``` Net Native: ``` but encountered exception net_http_client_execution_error ---> System.Net.Http.HttpRequestException: net_http_client_execution_error ---> System.TypeInitializationException: TypeInitialization_Type_NoTypeAvailable ---> System.Exception: Method 'DiagnosticListener..ctor(string)' was not included in compilation, but was referenced in HttpHandlerToFilter..cctor(). There may have been a missing assembly. at System.Net.Http.HttpHandlerToFilter..cctor() at System.Runtime.CompilerServices.ClassConstructorRunner.Call(IntPtr pfn) at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun(Void* returnValue, StaticClassConstructionContext* pContext, IntPtr pfnCctor) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 72 Exception_EndOfInnerExceptionStack ``` These are failing from run numbers 23818.00 (ProjectK branch), and private runs (N from K) Exception in more detail: https://gist.github.com/iamjasonp/4f47c687c0a62ff16261 /cc: @davidsh @stephentoub +6240 area-Infrastructure CentOS PR jobs failing with TraceSource FileNotFoundExceptions http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/centos7.1_debug_tst_prtest/2057/consoleFull ``` 01:37:32 System.Diagnostics.TextWriterTraceListenerTests.CtorsDelimiterTests.TestDelimiterProperty [FAIL] 01:37:32 System.IO.FileNotFoundException : Could not load file or assembly 'System.Diagnostics.TraceSource, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. ``` Some kind of packaging issue? Machine configuration? We're only seeing this I believe on CentOS, and it seems to be happening on every run. cc: @chcosta, @mmitche +6241 area-System.IO FileSystemWatcher_Created_WatcherDoesntFollowSymLinkToFolder failed on OS X and Win10 http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst_prtest/1052/console ``` 23:01:41 CreatedTests.FileSystemWatcher_Created_WatcherDoesntFollowSymLinkToFolder [FAIL] 23:01:41 Didn't observe a symlink created event within 30000ms 23:01:41 Expected: True 23:01:41 Actual: False 23:01:41 Stack Trace: 23:01:42 at Utility.ExpectEvent(WaitHandle eventOccurred, String eventName, Int32 timeout) 23:01:42 at CreatedTests.FileSystemWatcher_Created_WatcherDoesntFollowSymLinkToFolder() ``` +6242 area-Infrastructure Ubuntu builds failing in CI (lack of diskspace?) e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/nativecomp_ubuntu_debug/628/console ``` 04:24:23 Building remotely on Azure0216060553 (auto-ubuntu1404-20160211) in workspace /mnt/j/workspace/dotnet_corefx/nativecomp_ubuntu_debug 04:24:23 [WS-CLEANUP] Deleting project workspace... 04:24:23 java.io.IOException: Failed to mkdirs: /mnt/j/workspace/dotnet_corefx/nativecomp_ubuntu_debug 04:24:23 at hudson.FilePath.mkdirs(FilePath.java:1163) 04:24:23 at hudson.model.AbstractProject.checkout(AbstractProject.java:1269) 04:24:23 at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:607) 04:24:23 at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86) 04:24:23 at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:529) 04:24:23 at hudson.model.Run.execute(Run.java:1738) 04:24:23 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 04:24:23 at hudson.model.ResourceController.execute(ResourceController.java:98) 04:24:23 at hudson.model.Executor.run(Executor.java:410) ``` cc: @mmitche, @Priya91 +6247 area-System.Net Use nameof for a couple MemberData tests that were missed #3199 added two new `MemberData` tests and was merged after #6209 was opened. This PR simply switches the two new `MemberData` tests over to using `nameof`. +6250 area-System.Net Change CurlHandler to use IOExceptions for Stream failures As with WinHttpHandler, CurlHandler wraps exceptions in HttpRequestException. But WinHttpHandler switches to using IOException when sending exceptions out via Stream.Read/WriteAsync. This change does the same for CurlHandler. This also adds a test for #6231, which was correctly failing on Unix but with the wrong exception type (which is now the correct type with the previous commit). cc: @davidsh, @joelverhagen, @ericeil, @kapilash +6255 area-System.Net SendReceive_PartialMessage_Success failed on Windows in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/2534/consoleFull ``` 13:13:19 System.Net.WebSockets.Client.Tests.ClientWebSocketTest.SendReceive_PartialMessage_Success(server: wss://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx) [FAIL] 13:13:19 System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response 13:13:19 Stack Trace: 13:13:19 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 13:13:19 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 13:13:19 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() 13:13:19 d:\j\workspace\windows_nt_de---06b7984d\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WinHttpWebSocket.cs(475,0): at System.Net.WebSockets.WinHttpWebSocket.d__32.MoveNext() 13:13:19 --- End of stack trace from previous location where exception was thrown --- 13:13:19 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 13:13:19 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 13:13:19 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 13:13:19 d:\j\workspace\windows_nt_de---06b7984d\src\System.Net.WebSockets.Client\tests\ClientWebSocketTest.cs(195,0): at System.Net.WebSockets.Client.Tests.ClientWebSocketTest.d__16.MoveNext() 13:13:19 --- End of stack trace from previous location where exception was thrown --- 13:13:19 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 13:13:19 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 13:13:19 --- End of stack trace from previous location where exception was thrown --- 13:13:19 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 13:13:19 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 13:13:19 --- End of stack trace from previous location where exception was thrown --- 13:13:19 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 13:13:19 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 13:13:19 Finished: System.Net.WebSockets.Client.Tests ``` +6258 area-System.Linq Infinite loop in dynamic dispatch code when calling through contravariant delegate When upgrading from 23803 to 23818 of System.Linq.Expression.dll we are now seeing an infinite loop in the dynamic dispatch code. I have not been able to come up with a minimal repro that I can attach to this bug, but I have a trivial one that I can email anyone who wants it. In the bug we are calling into a delegate of type Action<... my-class>, and the target of the delegate uses an interface for the last argument. If I change the delegate to also use an interface, the issue goes away. The infinite loop is in code labeled as 'Lightweight Function' by the managed debugger: `System.Dynamic.Runtime.dll!System.Runtime.CompilerServices.CallSiteBinder.BindCore, string, object, OpenDebug.DispatchResponder>>(System.Runtime.CompilerServices.CallSite, string, object, OpenDebug.DispatchResponder>> site, object[] args) Line 133` <-- This function is called infinately `[Lightweight Function]` **<-- Hang here** `OpenDebugAD7.dll!OpenDebug.DispatcherProtocol.Dispatch(string req)` <-- My code calling delegate.Invoke Looking at the stack in Windbg, I think Windbg gives the method this name: `26 00000027`ac5fec80 0000019d`bcc88cc8 DynamicClass.CallSite.Target(System.Runtime.CompilerServices.Closure, System.Runtime.CompilerServices.CallSite, System.Action'3, System.String, System.Object, OpenDebug.DispatchResponder)+0x2c2` This looks similar to #5610, but I should have the fix for that and I am still seeing the problem. +6262 area-System.Net Simplify locking / extend scope of _queueLock While investigating the test failures due to #6126, we noticed that there are accesses to the operation queues outside of _queueLock. This creates a race with TryBeginOperation, such that beginning a new operation while completing an existing one can corrupt the queue. After extending the scope of _queueLock in HandleEvents, I noticed that it became largely redundant with _closeLock. So we also remove _closeLock, and just use _queueLock for everything. As far as I can tell, the only scenario this will impact is when beginning operations while simultaneously closing the socket, which will have other problems anyway. @stephentoub @pgavlin +6268 area-System.Net PostNonRewindableContentUsingAuth_NoPreAuthenticate_ThrowsInvalidOperationException failed in CI See the failure [here](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/ubuntu_debug_tst_prtest/2123/testReport/junit/System.Net.Http.Functional.Tests/PostScenarioTest/PostNonRewindableContentUsingAuth_NoPreAuthenticate_ThrowsInvalidOperationException_serverUri__http___corefx_net_cloudapp_net_Echo_ashx_auth_basic_user_user1_password_password1_/). Maybe this is due to a network hiccup? +6269 area-System.Net Improve several areas of CurlHandler error handling While tracking down an issue related to exception handling in CurlHandler, I fixed up a few issues: - On older libcurl's curl_multi_perform can return an error code that means to retry curl_multi_perform, but we were treating it as an actual error. - Several places we were creating an HttpRequestException with a null inner exception, even if we had additional information about the cause. I've fixed those call sites to include an appropriate inner exception. - Cleaned up a few error messages. - Fixed one place where I was overzealous in mapping exceptions to IOException cc: @ericeil, @kapilash Fixes https://github.com/dotnet/corefx/issues/6268 +6277 area-System.Net Add more Http response stream tests Building on PR #6250, added more response stream tests dealing with invalid response body transfer semantics. I still plan to move the localhost server (recently added to these Http tests) to be Azure based.in the near future. +6281 area-System.Net Rewrite WebUtility.HtmlEntities to minimize array/substring allocations I was browsing the `WebUtility` source code recently and noticed there a huge static array allocation that was never actually used. In addition to that, all of the strings in the array were being `Substring`'d in a loop to initialize a dictionary, which added even more unnecessary allocations. I [rewrote](https://gist.github.com/jamesqo/dda32f6e7a4154053862) the code so it straight-up initializes the dictionary as a literal, using C# 6's new dictionary initializers feature. The new code also passes in a predefined capacity to the dictionary, so there's no resizing taking place when elements are added. +6285 area-System.Net Fix WinHttpHandler memory leaks The WinHttpHandler was leaking a lot of objects in cases where an explicit Dispose was not done for the various HttpResponseMessage related objects. It was leaking because there was a cycle between the strong GCHandle of WinHttpRequestState and the objects contained within it. To break the cycle, we now clear out object references within WinHttpRequestState that are no longer needed once the SendRequest phase is completed. There was also a leak of a pinned GCHandle and related memory in WinHttpResponseStream. The free'ing of that allocated GCHandle was done in the Dispose(bool disposing) method. However, it wasn't being called when disposing=false (i.e. a finalizer). Since it is a pinned GCHandle, it needed to be freed in all cases. Fixes #5927. +6291 area-System.Net Response stream reads should return error for insufficient data "WinHttpResponseStream was not tracking the amount of data read when the response used 'Content-Length' semantics. So, if the amount of bytes read from the server was less than expected, we did not return an error. This was different behavior than .NET Framework. Fixed WinHttpResponseStream so that it will track the total number of bytes read and compare it to the expected number of bytes if using 'Content-Length' semantics. Note that we don't do this checking if the HTTP request is a HEAD request. That is because the definition of that HTTP verb is to return headers ""as-if"" it was returning a real response body. So, the 'Content-Length' might be set but there is no response body for a HEAD request. For cases of using 'Transfer-Encoding: chunked' semantics for the response body, there is already error checking at the lower HTTP layer in WinHTTP. Fixes #6231. " +6302 area-System.Security PublicKeyTests.TestKey_RSA failure on Unix in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/centos7.1_release_tst_prtest/1959/console ``` 17:10:15 System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests.TestKey_RSA [FAIL] 17:10:15 Assert.Equal() Failure 17:10:15 Expected: Byte[] [232, 175, 92, 162, 32, ...] 17:10:15 Actual: Byte[] [0, 0, 0, 0, 0, ...] 17:10:15 Stack Trace: 17:10:16 at System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests.TestKey_RSA() ``` +6306 area-System.Net System.Net.Sockets.APMServer.Tests Hang on OSX in CI The [test run hung](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst_prtest/1251/console) and the job was aborted. > Build timed out (after 120 minutes). Marking the build as aborted. > 22:43:45 ./run-test.sh: line 131: 529 Terminated: 15 ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory -notrait Benchmark=true > 22:43:45 error: One or more tests failed while running tests from 'System.Net.Sockets.APMServer.Tests'. Exit code 143. +6308 area-System.Numerics Additional overloads in some System.Math methods to support more types NOTE: I wrote a first ticket in CoreCLR (https://github.com/dotnet/coreclr/issues/3204), even did a PR for `int.Round` (https://github.com/dotnet/coreclr/pull/3232); but I have been suggested to move it here. For the time being, I will keep some additional comments in that CoreCLR issue, so you might want to take a look there. `Math.Round` can only deal with `decimal` and `double` arguments, what is quite arbitrary as far as these functionalities might also be used with integer types (e.g., `int` or `long`). There is no difference between removing all the digits after 6 in 1.5658 and in 15658, but .NET treats both situations differently. In the first case, it is possible to use `Math.Round` right away; in the second case, two additional steps would be required: either converting to a decimal type or to string and use `Substring`; and then back to the original integer type. Other function with restricted input types is `Math.Pow` which only accepts `double` type inputs. I have been in quite a few scenarios where I had to convert `decimal` variables to `double` (and then back to `decimal`) just to use this function. Equivalent ideas are applicable to other `System.Math` methods which only work with `double` variables. In case of deciding to go ahead and by assuming that such an option is possible, I would like to take care of the actual (in-principle-C#) implementation myself. +6309 area-System.Threading RunAsyncTaskAwaiterTests failed in OuterLoop CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win10_debug/97/consoleFull ``` 22:53:45 System.Threading.Tasks.Tests.TaskAwaiterTests.RunAsyncTaskAwaiterTests [FAIL] 22:53:45 After completion, excepted all GetResult calls to completed successfully 22:53:45 Expected: True 22:53:45 Actual: False 22:53:45 Stack Trace: 22:53:52 d:\j\workspace\outerloop_win---0cba2915\src\System.Threading.Tasks\tests\System.Runtime.CompilerServices\TaskAwaiterTests.cs(204,0): at System.Threading.Tasks.Tests.TaskAwaiterTests.RunAsyncTaskAwaiterTests() ``` +6311 area-System.Net DnsEndPointTest.Socket_StaticConnectAsync_HostNotFound timed out in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/rhel7.2_debug_tst/38/console ``` 08:17:47 System.Net.Sockets.Tests.DnsEndPointTest.Socket_StaticConnectAsync_HostNotFound [FAIL] 08:17:47 Timed out while waiting for connection 08:17:47 Expected: True 08:17:47 Actual: False 08:17:47 Stack Trace: 08:17:47 at System.Net.Sockets.Tests.DnsEndPointTest.Socket_StaticConnectAsync_HostNotFound() ``` +6312 area-System.Net [Apline] Need a better approach to fix CMSG_NXTHDR on Alpine Linux (musl-libc) The current master ([`5b793bc`](https://github.com/dotnet/corefx/tree/5b793bc735d6a63b7f4be466df3351008b27a426)) breaks the native build (`corefx/build.sh native`) at 70% on Alpine Linux with the following error: ``` ash /root/corefx/src/Native/System.Native/pal_networking.cpp:1311:31: error: cast from 'unsigned char *' to 'struct cmsghdr *' increases required alignment from 1 to 4 [-Werror,-Wcast-align] controlMessage = CMSG_NXTHDR(&header, controlMessage)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/sys/socket.h:267:10: note: expanded from macro 'CMSG_NXTHDR' ((struct cmsghdr *)__CMSG_NEXT(cmsg)))) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``` Code comparison between glibc and musl-libc: - musl-libc: https://fossies.org/dox/musl-1.1.14/include_2sys_2socket_8h.html#a4f70853d9633fb80428189cd7bb292d0 (click on `__CMSG_NEXT` in that macro to see `unsigned char*` cast) - glibc: http://lxr.free-electrons.com/source/include/linux/socket.h#L89 (click on `__cmsg_nxthdr` in the called macro to notice that it returns `cmsghdr *`) https://github.com/dotnet/corefx/pull/6263 provides a workaround to turn that warning off inline for this particular call to macro and then restores it using Clang's `pragma`tic directives. The warning disabling only affects the musl-libc systems (enclosed by `#ifndef __GLIBC__`). This probably needs to be fixed upstream. cc @pgavlin, @benpye, @ncopa +6313 area-System.Globalization Is DateTimeFormatInfo.ReadOnly(readonlyDtfi) sameness guaranteed? "In reviewing the test refactoring for DateTimeFormatInfo, I was about to ask if the test for ReadOnly should be asserting NotSame, Same, or a contextual-version thereof. MSDN doesn't describe; I can certainly see what the implementation does; but the question is: ""is the sameness guaranteed?"" If so, we should test it. If we guarantee it's a copy when !IsReadOnly then we should assert NotSame, and then mutuate the original and see that it's not preserved. NotSame on !IsReadOnly => IsReadOnly seems like a pretty obvious guarantee to me (and that it's not receptive to mutation on the original), but since I wasn't sure about the already-is-read-only case I decided that a standalone issue was probably best. " +6315 area-System.Runtime new Guid(byte[]) should explicitly test byte ordering The only tests for the byte array ctor for Guid use Guid.ToByteArray and round-trip the value. While this is good (proving we read what we write), there is an order to that input byte array, and we should verify it against a static array / static GUID. +6316 area-System.Runtime Guid.TryParseExact throws FormatException for certain inputs "## TryParseExact with hex specifier ""X"" or TryParse - `Guid.TryParseExact(input, ""X"")` - `Guid.TryParse(input)` The following values of `input` throw a FormatException: - `{0xdddddddd, 0xdddd, 0xdddd,{0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd}}` - `{0xdddddddd, 0xdddd, 0xdddd,{0xdd0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd}}` - `{0xdddddddd, 0xdddd, 0xdddd,{0xdd,0xdd,0xdd0xdd,0xdd,0xdd,0xdd,0xdd}}` - `{0xdddddddd, 0xdddd, 0xdddd,{0xdd,0xdd,0xdd,0xdd0xdd,0xdd,0xdd,0xdd}}` - `{0xdddddddd, 0xdddd, 0xdddd,{0xdd,0xdd,0xdd,0xdd,0xdd0xdd,0xdd,0xdd}}` - `{0xdddddddd, 0xdddd, 0xdddd,{0xdd,0xdd,0xdd,0xdd,0xdd,0xdd0xdd,0xdd}}` Interestingly, `{0xdddddddd, 0xdddd, 0xdddd,{0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd0xdd}}` does NOT throw This seems to be due to incorrect parsing of `0xdd0xdd` These do not throw for any other specifiers " +6318 area-System.Collections What about adding a ConcurrentSet? The need for it comes up every now and then. To me it would make sense next to `ConcurrentDictionary` +6321 area-System.Runtime TaskAwaiterTests.OnCompleted_CompletesInAnotherTaskScheduler failed in CI It looks like a few of these new test cases hit some issue on an OSX release run: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst_prtest/1222/ Four of the six test cases failed, but the other two passed. It looks like it's intermittent as other recent runs have succeeded. The assertion hit is on line 114, and indicates that the task wasn't run on the other scheduler, when it should have been. @stephentoub +6322 area-System.Net Reduce CurlHandler header parse allocations Use existing known header and reason phrase instances instead of always allocating new strings (similar to #3199 for WinHttpHandler) and avoid unnecessary intermediate string allocations. cc: @stephentoub, @kapilash, @davidsh (@stephentoub, is there a good way to profile the allocations for a before/after comparison on Unix?) Note: I only tested this on OS X as I didn't have a Linux environment readily available; relying on CI for the other *nixes. +6329 area-System.Net Use a random password for NegotiateStream Kerberos tests This is with reference to https://github.com/dotnet/corefx/pull/6158#discussion_r53619572 Instead of hardcoding the password in setup-kdc.sh a random password can be generated which can be shared with the test code. This would improve the security of a dev machine where the script is run +6331 area-System.Xml XmlWriterApi TCEOFHandling test failing on Unix It's not handling new lines properly. +6333 area-Infrastructure GenerateRuntimeDependencies failed in CI due to runtime.json file "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win10_debug/99/consoleFull ``` d:\j\workspace\outerloop_win---0cba2915\Tools\Packaging.targets(707,5): error MSB4018: The ""GenerateRuntimeDependencies"" task failed unexpectedly. [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Primitives\pkg\System.Net.Primitives.pkgproj] 07:11:23 d:\j\workspace\outerloop_win---0cba2915\Tools\Packaging.targets(707,5): error MSB4018: System.IO.IOException: The process cannot access the file 'd:\j\workspace\outerloop_win---0cba2915\bin\pkg\specs\System.Net.Primitives\runtime.json' because it is being used by another process. [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Primitives\pkg\System.Net.Primitives.pkgproj] 07:11:23 d:\j\workspace\outerloop_win---0cba2915\Tools\Packaging.targets(707,5): error MSB4018: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Primitives\pkg\System.Net.Primitives.pkgproj] 07:11:23 d:\j\workspace\outerloop_win---0cba2915\Tools\Packaging.targets(707,5): error MSB4018: at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Primitives\pkg\System.Net.Primitives.pkgproj] 07:11:23 d:\j\workspace\outerloop_win---0cba2915\Tools\Packaging.targets(707,5): error MSB4018: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Primitives\pkg\System.Net.Primitives.pkgproj] 07:11:23 d:\j\workspace\outerloop_win---0cba2915\Tools\Packaging.targets(707,5): error MSB4018: at System.IO.FileStream..ctor(String path, FileMode mode) [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Primitives\pkg\System.Net.Primitives.pkgproj] 07:11:23 d:\j\workspace\outerloop_win---0cba2915\Tools\Packaging.targets(707,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.Packaging.RuntimeFileFormatter.WriteRuntimeFile(String filePath, RuntimeFile runtimeFile) [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Primitives\pkg\System.Net.Primitives.pkgproj] 07:11:23 d:\j\workspace\outerloop_win---0cba2915\Tools\Packaging.targets(707,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.Packaging.GenerateRuntimeDependencies.Execute() [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Primitives\pkg\System.Net.Primitives.pkgproj] 07:11:23 d:\j\workspace\outerloop_win---0cba2915\Tools\Packaging.targets(707,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Primitives\pkg\System.Net.Primitives.pkgproj] 07:11:23 d:\j\workspace\outerloop_win---0cba2915\Tools\Packaging.targets(707,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Primitives\pkg\System.Net.Primitives.pkgproj] ``` " +6338 area-System.Numerics Complex.Equals(object) and Complex.Equals(Complex) do not always return the same result ## Context Complex provides 3 main ways of testing equality of a complex: - `Complex.Equals(Complex)` - `Complex.Equals(object)` - `==(Complex, Complex)` ## Problem ``` public override bool Equals(object obj) { if (!(obj is Complex)) return false; return this == ((Complex)obj); // Problem is here. } public bool Equals(Complex value) { return _real.Equals(value._real) && _imaginary.Equals(value._imaginary); } public static bool operator ==(Complex left, Complex right) { return left._real == right._real && left._imaginary == right._imaginary; } ``` The problem is that `Equals(object)` calls the `==` operator instead of the `Equals(Complex)` method. Note that the `==` operator and `Equals(Complex)` method have different code, and this causes discrepancies. The problem mainly occurs with complex numbers containing `double.NaN`, as `double.NaN == double.NaN` returns `false`, but `double.NaN.Equals(double.NaN)` returns `true`. ## Example As such, we get a strange example where the following code doesn't work as expected: ``` Complex complex1 = new Complex(double.NaN, double.NaN); Complex complex2 = new Complex(double.NaN, double.NaN); complex1.Equals(complex2); // True as expected complex1.Equals((object)complex2); // False as unexpected complex1 == complex2; // False as expected ``` ## Solution Fix the implementation of `Equals(object)` to the following: ``` public override bool Equals(object obj) { if (!(obj is Complex)) return false; return Equals((Complex)obj); } ``` This may have breaking change implications, but IMO should be fixed. I would be happy to send in a PR fixing this. +6345 area-System.Net Stability improvements for *nix Sockets This PR contains the changes from #6126 and #6186, plus fixes for issues with both of those PRs. #6126 had to be reverted, so this undoes the revert and fixes the issues that were leading to tests crashing/hanging. #6186 turns out to fix one reason tests were crashing/hanging, so it needs to be folded into this PR prior to merging. @pgavlin @stephentoub Fixes #5750 Fixes #6173 Fixes #4563 Fixes #4890 Fixes #5628 Fixes #6311 Fixes #6306 Fixes #6154 +6347 area-Meta Add template for issues and pull requests Fixes #6167. @weshaggard @stephentoub @GerjanOnline Follows GitHub's suggestion documented here: - [Issue Templates](https://help.github.com/articles/creating-an-issue-template-for-your-repository/) - [Pull Request Templates](https://help.github.com/articles/creating-a-pull-request-template-for-your-repository/) +6351 area-System.Net Bug setting host to partial IPV6 address in UriBuilder "## Problem This is the code for the setter of a host in UriBuilder: ```c# public string Host { get { return _host; } set { if (value == null) value = string.Empty; _host = value; //probable ipv6 address - Note: this is only supported for cases where the authority is inet-based. if (_host.IndexOf(':') >= 0) { //set brackets if (_host[0] != '[') _host = ""["" + _host + ""]""; } _changed = true; } } ``` The setter for `UriBuilder.Host` checks to see if an IPV6 address has been provided. It follows the following alogrithm - If the host is an IPV6 address and has does not start with a square bracket, add square brackets around the host. The problem occurs when the host already has a square bracket at the end, but not at the start. ## Example ``` UriBuilder uriBuilder = new UriBuilder(); uriBuilder.Host = ""::1]""; uriBuilder.Host; // Expects ""[::1]"" but gets: ""[::1]]"" ``` ## Solution Change the code to: ``` if (_host[0] != '[') _host = ""["" + _host; if (_host[host.Length - 1] != ']') _host = _host + ""]"" ``` This does have breaking change implications, and may be considered an unnecessary change, as the input host string is invalid, so strange behavior could be expected. If fixing this seems like a good idea, I will submit a PR fixing it." +6352 area-System.Net Fix binclash in System.Net.Primitives cc @ericstj, @stephentoub +6353 area-System.Net UriBuilder needs some tests ## Problem UriBuilder currently does not have any tests in corefx. This means that changes to the class cannot be tested (especially if issues like #6351 and #3646 are fixed). Furthermore, it reduces the coverage report for System.Private.Uri. ## Solution I have sent a PR with a complete set of tests covering 100% of UriBuilder. This is PR #6354 +6354 area-System.Net Add Uri Builder tests - Cleans up some dead code from UriBuilder. - Adds tests for all members of UriBuilder, bringing code coverage up to 100%. Fixes #6353 /cc @davidsh @stephentoub +6355 area-System.Data NullReferenceException in SmiMetaData.cs when running DataStreamTest System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd10SqlClient [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: D:\CoreFX\src\System.Data.SqlClient\src\Microsoft\SqlServer\Server\SmiMetaData.cs(294,0): at Microsoft.SqlServer.Server.SmiMetaData..ctor(SqlDbType dbType, Int64 maxLength, Byte precision, Byte scale, Int64 localeId, SqlCompareOptions compareOptions, String udtAssemblyQualifiedName, Boolean isMultiValued, IList`1 fieldTypes, SmiMetaDataPropertyCollection extendedProperties) D:\CoreFX\src\System.Data.SqlClient\src\Microsoft\SqlServer\Server\SmiMetaData.cs(568,0): at Microsoft.SqlServer.Server.SmiExtendedMetaData..ctor(SqlDbType dbType, Int64 maxLength, Byte precision, Byte scale, Int64 localeId, SqlCompareOptions compareOptions, String udtAssemblyQualifiedName, Boolean isMultiValued, IList`1 fieldMetaData, SmiMetaDataPropertyCollection extendedProperties, String name, String typeSpecificNamePart1, String typeSpecificNamePart2, String typeSpecificNamePart3) D:\CoreFX\src\System.Data.SqlClient\src\Microsoft\SqlServer\Server\SmiMetaData.cs(535,0): at Microsoft.SqlServer.Server.SmiExtendedMetaData..ctor(SqlDbType dbType, Int64 maxLength, Byte precision, Byte scale, Int64 localeId, SqlCompareOptions compareOptions, Boolean isMultiValued, IList`1 fieldMetaData, SmiMetaDataPropertyCollection extendedProperties, String name, String typeSpecificNamePart1, String typeSpecificNamePart2, String typeSpecificNamePart3) D:\CoreFX\src\System.Data.SqlClient\src\Microsoft\SqlServer\Server\SmiMetaData.cs(743,0): at Microsoft.SqlServer.Server.SmiStorageMetaData..ctor(SqlDbType dbType, Int64 maxLength, Byte precision, Byte scale, Int64 localeId, SqlCompareOptions compareOptions, Boolean isMultiValued, IList`1 fieldMetaData, SmiMetaDataPropertyCollection extendedProperties, String name, String typeSpecificNamePart1, String typeSpecificNamePart2, String typeSpecificNamePart3, SqlBoolean isKey) D:\CoreFX\src\System.Data.SqlClient\src\Microsoft\SqlServer\Server\SmiMetaData.cs(793,0): at Microsoft.SqlServer.Server.SmiQueryMetaData..ctor(SqlDbType dbType, Int64 maxLength, Byte precision, Byte scale, Int64 localeId, SqlCompareOptions compareOptions, Boolean isMultiValued, IList`1 fieldMetaData, SmiMetaDataPropertyCollection extendedProperties, String name, String typeSpecificNamePart1, String typeSpecificNamePart2, String typeSpecificNamePart3, SqlBoolean isKey) D:\CoreFX\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlDataReader.cs(301,0): at System.Data.SqlClient.SqlDataReader.GetInternalSmiMetaData() D:\CoreFX\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlCommand.cs(1259,0): at System.Data.SqlClient.SqlCommand.CompleteXmlReader(SqlDataReader ds, Boolean async) D:\CoreFX\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlCommand.cs(1122,0): at System.Data.SqlClient.SqlCommand.ExecuteXmlReader() D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(555,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.ExecuteXmlReaderTest(String connectionString) D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(60,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer(String connectionString, Boolean usingNamePipes) D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(44,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd10SqlClient() +6361 area-Infrastructure BinClash logger doesn't detect clash if PkgProj doesn't set TargetPath BinClash logger doesn't catch a clash if PkgProj's don't set TargetPath. See https://github.com/dotnet/corefx/pull/6352 +6370 area-System.Net Add Uri tests The tests for Uri were previously pretty poor, but I am aware that the internal tests are more comprehensive. Therefore, there is no harm in improving the tests in the open. This PR overhauls the existing test framework for System.Uri. Existing tests, albeit far and few between, were combined into the new, and should be easy to find. Old Coverage: 41% line, 35% branch New Coverge: 72.8% line, 67.3% branch **Increase: 77% line, 92% branch** This lets us achieve the following improvements: - Easier to add new tests, especially for the constructors and methods following the template I provided - Split between test data and test code - New tests across the board: creating both valid and invalid IPV4, IPV6, UNC, File, Relative, URN and Unknown uris was the main focus. This PR has no functional changes /cc @stephentoub @davidsh +6371 area-System.Threading Reset certain thread-local state after thread pool work item execution "It can sometimes happen by accident that a thread pool work item sets some thread-local state such as: - SynchronizationContext.Current - HostContext (used for HttpContext.Current) - Thread priority - Thread name - Thread culture - Thread principal - Others? Failing to reset that state causes non-deterministic ""leaks"" that are very hard to diagnose. This is especially relevant in ASP.NET and in unit testing scenarios. The thread pool is a global process resource. Generally, code should play nice with such resources but bugs should not be catastrophic. The .NET thread pool should reset all of these items (where practical) after the execution of each work item. I see no valid scenario why someone might want to set these values and have them persist because there is no way to make that deterministic. Regarding the above items I could not find documentation that specifies which one of them are reset or are not reset. This behavior should be documented and contractually guaranteed. Ideally, setting `Thread` properties should fail outright but that might not be possible for compatibility reasons. The behavior changes proposed here should work for the legacy thread pool API as well as for the TPL. I have not added the execution context and logical call context to the list because I lack the technical understanding to recommend anything about them. Maybe they should be reset as well. I have not added `ThreadStatic` and other forms of thread-static variables because those are often useful for caching scenarios. Resetting them would be a bad idea. " +6373 area-System.Security Followup on imported TODOs in CapiHelper CapiHelper.cs was migrated in with several TODOs. Many of them are being removed right now, but there are three that are going to survive immediate pending changes: CapiHelper.GetKeyParameter: > //ToDO : Check if we should use silent flag here as this might not run > //downlevel so we might want to use silent flag CapiHelper.ValidateCspFlags: > //TODO : I don't think we need following commented code. Leaving it now for confirming the same > // during code review. Reviewers please let me kn know? CapiHelper.DecryptKey: > Array.Reverse(dataTobeDecrypted); //ToDO: Check is this is really needed? To be confirmed with tests - [ ] GetKeyParameter - [ ] ValidateCspFlags - [ ] DecryptKey +6374 area-System.Globalization When does core clr throw CultureNotSupported exception? "On windows, `new CultureInfo(""zh-CHS"")` or `new CultureInfo(""Shared"")` (bogus name) throw a CultureNotFoundException. On OSX they don't. However, ""zh-CHS"" was obtained by calling `CultureInfo.GetCultures(CultureTypes.AllCultures)` on full framework. reading #1669 I get the understanding that any string is now fair game and should be supported. In light of this, when can one expect CultureNotFoundException and why is zh-CHS not recognized on windows, when the full framework API returns it as supported? " +6375 area-System.Data Failing test with Japanese characters in SqlTypeTest.SqlStringValidComparisonTest on Linux System.Data.SqlClient.ManualTesting.Tests.SqlTypeTest.SqlStringValidComparisonTest [FAIL] Error (Default Comparison Option with Operator): ファズ・ギター and ファズ・ギター should be equal Expected: True Actual: False Stack Trace: at System.Data.SqlClient.ManualTesting.Tests.SqlTypeTest.SqlStringDefaultCompareOptionTest(Int32 localeID) at System.Data.SqlClient.ManualTesting.Tests.SqlTypeTest.SqlStringValidComparisonTest() +6377 area-System.Console Delete key on OS X not interpreted as `Backspace` "> `Key` is a `ConsoleKey`, `^X` is a key code, 'key' is an `stty` special character, and ""key"" is a physical keyboard key On OS X, with `TERM=xterm256color` when the system Terminal is left to its defaults, the ""delete"" key (used as ""backspace"") sends `^?`, which according to `stty -a` ought to be interpreted as 'erase' (as in the backspace action, or `Backspace`), but instead gets interpreted by `Console.ReadKey()` as `Delete` (as in the forward delete action). Note that ""fn-delete"" is interpreted the same way (but _should_ be the only one interpreted this way). On Linux (over SSH and RDP), with the same `TERM`, the key code being sent by my MacBook's ""delete"" key still ends up as `^?`, but it is interpreted correctly as `Backspace`. `System.Console` is not the only place where I've seen OS X's Terminal defaults cause funny things with the ""delete"" key. In fact, it seems to be so much an issue that Terminal has a setting to have ""delete"" send `^H`, which is then interpreted as `Backspace`. However, it would be nice not to have to do this :smile: and I sure would like to know how to fix it. " +6381 area-System.Data Incorrect number of pools in ConnectionPool.ClearAllPoolsTest System.Data.SqlClient.ManualTesting.Tests.ConnectionPool.ConnectionPool_Nwnd9Mars [FAIL] Incorrect number of pools exist Expected: True Actual: False Stack Trace: at System.Data.SqlClient.ManualTesting.Tests.ConnectionPool.ClearAllPoolsTest(String connectionString) at System.Data.SqlClient.ManualTesting.Tests.ConnectionPool.RunDataTestForSingleConnString(String tcpConnectionString, String npConnectionString, Boolean serverIsKatmaiOrLater) at System.Data.SqlClient.ManualTesting.Tests.ConnectionPool.ConnectionPool_Nwnd9Mars() +6382 area-System.Data Exception caused by connection closed in DDAsyncTest on Linux System.Data.SqlClient.ManualTesting.Tests.DDAsyncTest.ExecuteCommand_WithSharedConnection_ShouldPerformAsyncByDefault [FAIL] System.AggregateException : One or more errors occurred. (Invalid operation. The connection is closed.) ---- System.InvalidOperationException : Invalid operation. The connection is closed. Stack Trace: at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) at System.Threading.Tasks.Task.WaitAll(Task[] tasks) at System.Data.SqlClient.ManualTesting.Tests.DDAsyncTest.ExecuteCommand_WithSharedConnection_ShouldPerformAsyncByDefault() ----- Inner Stack Trace ----- at System.Data.SqlClient.SqlConnection.GetOpenTdsConnection() at System.Data.SqlClient.SqlCommand.WaitForAsyncResults(IAsyncResult asyncResult) at System.Data.SqlClient.SqlCommand.InternalEndExecuteReader(IAsyncResult asyncResult, String endMethod) at System.Data.SqlClient.SqlCommand.EndExecuteReaderInternal(IAsyncResult asyncResult) at System.Data.SqlClient.SqlCommand.EndExecuteReaderAsync(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) +6383 area-System.Data StateObj still has outstanding writes in AsyncTest.FailureTest System.Data.SqlClient.ManualTesting.Tests.AsyncTest.FailureTest [FAIL] FAILED: Thrown exception for ExecuteReaderAsync was not an InvalidOperationException: System.Diagnostics.Debug+DebugAssertException: StateObj still has outstanding async writes ``` at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Data.SqlClient.TdsParserStateObject.AssertStateIsClean() at System.Data.SqlClient.TdsParser.PutSession(TdsParserStateObject session) at System.Data.SqlClient.TdsParserStateObject.CloseSession() at System.Data.SqlClient.SqlCommand.PutStateObject() at System.Data.SqlClient.SqlCommand.ReliablePutStateObject() at System.Data.SqlClient.SqlCommand.BeginExecuteReaderInternal(CommandBehavior behavior, AsyncCallback callback, Object stateObject, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.BeginExecuteReaderAsync(CommandBehavior behavior, AsyncCallback callback, Object stateObject) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1](Func`4 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory`1.FromAsync[TArg1](Func`4 beginMethod, Func`2 endMethod, TArg1 arg1, Object state) at System.Data.SqlClient.SqlCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) at System.Data.SqlClient.SqlCommand.ExecuteReaderAsync() at System.Data.SqlClient.ManualTesting.Tests.AsyncTest.FailureTest() ``` +6384 area-Infrastructure Lots of restore errors in various corefx builds "e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/2746/consoleFull ``` 17:26:53 [01:26:53.91] Restoring all packages... 17:52:45 EXEC : error : Unable to resolve runtime.win7.System.Net.Requests (>= 4.0.11-rc3-23818) for DNXCore,Version=v5.0 (win7-x64). [d:\j\workspace\windows_nt_de---06b7984d\build.proj] 17:52:45 EXEC : error : Unable to resolve runtime.win7.System.Net.Requests (>= 4.0.11-rc3-23818) for DNXCore,Version=v5.0 (win7-x86). [d:\j\workspace\windows_nt_de---06b7984d\build.proj] 18:10:00 d:\j\workspace\windows_nt_de---06b7984d\build.proj(54,5): error MSB3073: The command """"d:\j\workspace\windows_nt_de---06b7984d\Tools/dotnetcli/bin/dotnet.exe"" restore --packages ""d:\j\workspace\windows_nt_de---06b7984d\packages"" --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-corefxtestdata/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://www.nuget.org/api/v2/ ""d:\j\workspace\windows_nt_de---06b7984d\/src"" ""d:\j\workspace\windows_nt_de---06b7984d\/pkg"""" exited with code 1. 18:10:00 [02:10:01.03] Restoring all packages...Done. 18:10:08 Microsoft.CSharp -> d:\j\workspace\windows_nt_de ``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/ubuntu_debug_bld/654/consoleFull ``` 17:33:13 [01:33:12.87] Restoring all packages... 18:01:04 EXEC : error : Unable to resolve runtime.unix.System.Diagnostics.Debug (>= 4.0.11-rc3-23818) for DNXCore,Version=v5.0 (osx.10.10-x64). [d:\j\workspace\ubuntu_debug_bld736a750a\build.proj] 18:01:04 EXEC : error : Unable to resolve runtime.unix.System.Diagnostics.Debug (>= 4.0.11-rc3-23818) for DNXCore,Version=v5.0 (ubuntu.14.04-x64). [d:\j\workspace\ubuntu_debug_bld736a750a\build.proj] 18:06:29 d:\j\workspace\ubuntu_debug_bld736a750a\build.proj(54,5): error MSB3073: The command """"d:\j\workspace\ubuntu_debug_bld736a750a\Tools/dotnetcli/bin/dotnet.exe"" restore --packages ""d:\j\workspace\ubuntu_debug_bld736a750a\packages"" --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-corefxtestdata/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://www.nuget.org/api/v2/ ""d:\j\workspace\ubuntu_debug_bld736a750a\/src"" ""d:\j\workspace\ubuntu_debug_bld736a750a\/pkg"""" exited with code 1. 18:06:29 [02:06:28.82] Restoring all packages...Done. ``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/ubuntu_debug_bld/654/consoleFull ``` 16:00:21 [00:00:20.19] Restoring all packages... 16:04:57 EXEC : error : Unable to resolve runtime.unix.System.IO.Pipes (>= 4.0.0-rc3-23818) for DNXCore,Version=v5.0 (centos.7-x64). [d:\j\workspace\outerloop_win---9c9e7d59\build.proj] 16:04:57 EXEC : error : Unable to resolve runtime.unix.System.IO.Pipes (>= 4.0.0-rc3-23818) for DNXCore,Version=v5.0 (debian.8.2-x64). [d:\j\workspace\outerloop_win---9c9e7d59\build.proj] 16:04:57 EXEC : error : Unable to resolve runtime.unix.System.IO.Pipes (>= 4.0.0-rc3-23818) for DNXCore,Version=v5.0 (osx.10.10-x64). [d:\j\workspace\outerloop_win---9c9e7d59\build.proj] 16:04:57 EXEC : error : Unable to resolve runtime.unix.System.IO.Pipes (>= 4.0.0-rc3-23818) for DNXCore,Version=v5.0 (rhel.7-x64). [d:\j\workspace\outerloop_win---9c9e7d59\build.proj] 16:04:57 EXEC : error : Unable to resolve runtime.unix.System.IO.Pipes (>= 4.0.0-rc3-23818) for DNXCore,Version=v5.0 (ubuntu.14.04-x64). [d:\j\workspace\outerloop_win---9c9e7d59\build.proj] 16:18:49 d:\j\workspace\outerloop_win---9c9e7d59\build.proj(54,5): error MSB3073: The command """"d:\j\workspace\outerloop_win---9c9e7d59\Tools/dotnetcli/bin/dotnet.exe"" restore --packages ""d:\j\workspace\outerloop_win---9c9e7d59\packages"" --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-corefxtestdata/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://www.nuget.org/api/v2/ ""d:\j\workspace\outerloop_win---9c9e7d59\/src"" ""d:\j\workspace\outerloop_win---9c9e7d59\/pkg"""" exited with code 1. 16:18:49 [00:18:48.65] Restoring all packages...Done. ``` These are happening frequently but randomly and taking out a lot of runs. cc: @weshaggard, @chcosta, @ericstj " +6388 area-System.Runtime TickCountTest failed on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_release_prtest/2762/consoleFull ``` 05:28:29 System.Tests.EnvironmentTickCount.TickCountTest [FAIL] 05:28:29 Assert+WrapperXunitException : File path: d:\j\workspace\windows_nt_re---5067c899\src\System.Runtime.Extensions\tests\System\Environment.TickCount.cs. Line: 16 05:28:29 ---- Assert.True() Failure 05:28:29 Expected: True 05:28:29 Actual: False 05:28:29 Stack Trace: 05:28:29 d:\j\workspace\windows_nt_re---5067c899\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs(583,0): at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) 05:28:29 d:\j\workspace\windows_nt_re---5067c899\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs(578,0): at Assert.True(Boolean condition, String userMessage, String path, Int32 line) 05:28:29 ----- Inner Stack Trace ----- 05:28:29 d:\j\workspace\windows_nt_re---5067c899\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs(571,0): at Assert.True(Boolean condition, String userMessage, String path, Int32 line) ``` +6392 area-System.Net Fix memory leak caused by cycle reference in WinHttpRequestState The fix made in PR #6285 for this memory leak turned out to be insufficient. The request handle object for the stream (SafeWinHttpHandle) was part of the strong root chain in WinHttpRequestState. And even when the WinHttpResponseStream object was finalized (implicit Dispose), the request handle was not finalized and thus leaks were happening. To address this, the request handle object reference is now cleared from the WinHttpRequestState object (along with other object references) once the WinHttpResponseStream is created. WinHttpResponseStream then gets passed the request handle reference. Then normal finalizer rules can apply to both WinHttpResponseStream and the request handle. Once the request handle gets disposed (via finalizing), native WinHTTP will send a final status callback (HANDLE_CLOSING) and that is how the state object will then get unrooted and freed. Tested this fix with WCF streaming scenarios and used WinDBG to verify the heaps. There are future plans to improve this code via refactoring as part of #2501. Fixes #5927. +6393 area-Infrastructure Reduce the number of feeds we use for restoring our repo "Currently have 4 feeds in our feed source list: https://github.com/dotnet/corefx/blob/master/dir.props#L101 ``` ``` We should eliminate corefxtestdata and buildtools from our normal source list to reduce the amount of network traffic we are doing when restoring. Note we should still keep the build-tools feed in our init-tools.cmd (https://github.com/dotnet/corefx/blob/master/init-tools.cmd#L12) but it shouildn't be needed for anything outside of the tool set initialization. " +6394 area-System.Net Increase linger time in SendRecvAsync tests These tests are failing with an OperationAborted status code on OSX, very rarely. I can't reproduce the problem locally, even if I try to artifically induce the failure. I'm guessing that the timing works out differently on the CI machines, making this (somewhat) more likely, and the only legitimate case I can see where this would happen is if the client closes the TCP connection before the server has finished reading all bytes. Increasing the linger time should help with that, so let's give it a try. Fixes #5750. @pgavlin, @stephentoub, @CIPop +6397 area-Infrastructure Consider making helper script flag syntax uniform "Just throwing this out there because it's a minor annoyance for me, nothing high priority or workflow-breaking. This is referring to the difference between `clean.cmd /b` and `clean.sh -b`. I know these were done to match the usual ""OS standard"" flag syntax, but I think it would be simpler if these were just the same across platforms (i.e. `clean -b` everywhere). I'm often typing the wrong flag after I've been working on one system for a while and then move to another. Additionally, `dotnet` has just made all systems use the ""hypen-flag"" syntax instead of allowing ""slash-syntax"" on Windows, and it seems to work fine there. Anyone else feel the same way? I'm happy to adjust to this if nobody else is having the same troubles :smile: . " +6398 area-System.Runtime Support global unhandled exception handler As outlined in https://github.com/dotnet/coreclr/issues/2999, we need a replacement for `AppDomain.UnhandledException`. Couple of requirements: - Should be a low-level API that isn't depending on other orthogonal features such as `AssemblyLoadContext`, `Task`, or `Thread` - Can't be on a type that is already exposed in .NET Framework (such as `Environment`) - Should be raised for all threads Thoughts? /cc @weshaggard @KrzysztofCwalina @stephentoub +6399 area-System.Threading RunSemaphoreSlimCurrentTests failed in Win10 outer loop http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win10_debug/101/consoleFull ``` 07:07:24 System.Threading.Tests.SemaphoreSlimTests.RunSemaphoreSlimCurrentTests [FAIL] 07:07:24 Assert.Equal() Failure 07:07:24 Expected: 50 07:07:24 Actual: 46 07:07:24 Stack Trace: 07:07:24 d:\j\workspace\outerloop_win---0cba2915\src\System.Threading\tests\SemaphoreSlimTests.cs(586,0): at System.Threading.Tests.SemaphoreSlimTests.RunSemaphoreSlimTest8_ConcWaitAsyncAndRelease(Int32 initial, Int32 maximum, Int32 waitThreads, Int32 releaseThreads, Int32 succeededWait, Int32 failedWait, Int32 finalCount, Int32 timeout) 07:07:24 d:\j\workspace\outerloop_win---0cba2915\src\System.Threading\tests\SemaphoreSlimTests.cs(173,0): at System.Threading.Tests.SemaphoreSlimTests.RunSemaphoreSlimCurrentTests() 07:07:26 System.Xml.RW.CharCheckingReader.Tests -> d:\j\workspace\outerloop_win---0cba2915\bin\Windows_NT.AnyCPU.Debug\System.Xml.RW.CharCheckingReader.Tests\System.Xml.RW.CharCheckingReader.Tests.dll ``` +6402 area-System.Reflection CustomAttributeExtensions.GetCustomAttributes returns null when called on a DynamicMethod "It should return an empty collection. Repro: Create a desktop console app: ``` C# static void Main(string[] args) { var dm = new DynamicMethod(""M"", typeof(void), Type.EmptyTypes); var il = dm.GetILGenerator(); il.Emit(OpCodes.Ret); var z = dm.GetCustomAttributes(); Console.WriteLine(z?.ToString() ?? ""null""); } ``` " +6405 area-System.Runtime To Add an ES6 Compatible Way to ToString double "DataContractJsonSerializer converts a double value to a string by calling, ``` csharp value.ToString(""R"", NumberFormatInfo.InvariantInfo) ``` The string is not compatible with ECMAScript 6 (see the [specs](http://www.ecma-international.org/ecma-262/6.0/#sec-tostring-applied-to-the-number-type)). For example, > 5E-06 should be converted as 0.000005 > -3.3333333333333338E-28 should be converted as -3.3333333333333338e-28 > 4.94065645841247E-324 should be converted as 5e-324 An ES6 compatible way to ToString double and floats would be useful. " +6406 area-System.Data Remove System.Collection.NonGeneric from SqlClient contracts Based on a PR review comment https://github.com/dotnet/corefx/pull/6396#discussion_r54168394 we should try to remove the SqlClient's dependency on System.Collection.NonGeneric System.Collections.CollectionBase is being used in SqlBulkCopyColumnMappingCollection inheritance. +6414 area-System.Collections IntersectWithEnumerable function SortedSet does unnecessary rotations ![sortedset](https://cloud.githubusercontent.com/assets/4521425/13342870/d3f94fe8-dbfa-11e5-8402-99d70c58ac06.PNG) I believe the following change would cause the tree to perform fewer rotations and therefore should be faster. This also handles the case where the set contains all the elements and does not need to be cleared and rebuilt. +6415 area-System.Collections In SortedSet replace log2 function with Math.Log(x, 2) "I did a test and 1 + (int) Math.Log(x, 2) was slightly faster than the implementation of the private static int log2(int value) function. 1. Replaces all occurrences of log2 with Math.Log(x,2). 2. Remove the log2 function. Note: it's odd that to get the same results as log2 I had to use, ""1 + (int)Math.Log(value, 2)"". So after this change the way log2 is used might want to be looked over. " +6423 area-System.Data [ToFDisable] Port tests for: System.Data.SqlClient "As part of moving out of ToF and into the open, I've been going through the ""Tree of the future"" tests and calculating which of those tests provide coverage that we're missing in the open tests. The goal of this is to get the open tests universally better than the ToF tests so that we can turn the ToF tests off for ProjectK runs and save us all a lot of headache diagnosing test failures from potentially outdated tests. For System.Data.SqlClient, we're missing 7486 lines of coverage. Our total line coverage for Open vs. ToF is 78.1%. However, this includes some data points that might not be relevant to the library being tested so the real coverage is likely lower. To fulfill the uncovered lines we would need to either create new tests for them or port 1 ToF tests to the open. Those tests are: - [ ] System.Data.SqlClient\4.0.0.0\SystemDataSqlClientTest_FullRun.XML Coverage reports, coverage xml files, and detailed json lists of each piece of missing coverage and the corresponding ToF test that fills it are available on request. " +6445 area-System.Net [ToFDisable] Port tests for: System.Runtime.Extensions, "As part of moving out of ToF and into the open, I've been going through the ""Tree of the future"" tests and calculating which of those tests provide coverage that we're missing in the open tests. The goal of this is to get the open tests universally better than the ToF tests so that we can turn the ToF tests off for ProjectK runs and save us all a lot of headache diagnosing test failures from potentially outdated tests. For System.Runtime.Extensions, we're missing 37 lines of coverage. Our total line coverage for Open vs. ToF is 98.5%. However, this includes some data points that might not be relevant to the library being tested so the real coverage is likely lower. To fulfill the uncovered lines we would need to either create new tests for them or port 5 ToF tests to the open. Those tests are: - [ ] System.Runtime.Extensions\4.0.10.0\System.Runtime.Extensions.Tests\System.Runtime.Extensions.Tests\FrameworkNameTests.FrameworkNameCtor_Id.xml - [ ] System.Runtime.Extensions\4.0.10.0\System.Runtime.Extensions.Tests\System.Runtime.Extensions.Tests\HttpWebUtilityTests.WebUtilityTests.HtmlDecodeWithoutTextWriter.xml - [ ] System.Runtime.Extensions\4.0.10.0\System.Runtime.Extensions.Tests\System.Runtime.Extensions.Tests\HttpWebUtilityTests.WebUtilityTests.HtmlDefaultStrictSettingEncode.xml - [ ] System.Runtime.Extensions\4.0.10.0\System.Runtime.Extensions.Tests\System.Runtime.Extensions.Tests\HttpWebUtilityTests.WebUtilityTests.UrlEncodeFromStringNoEncoding.xml - [ ] System.Runtime.Extensions\4.0.10.0\System.Runtime.Extensions.Tests\System.Runtime.Extensions.Tests\PathCombineTests.ContainsInvalidCharWithoutRootedAfterArgumentNull.xml Coverage reports, coverage xml files, and detailed json lists of each piece of missing coverage and the corresponding ToF test that fills it are available on request. " +6448 area-System.Security [ToFDisable] Port tests for: System.Security.Claims "As part of moving out of ToF and into the open, I've been going through the ""Tree of the future"" tests and calculating which of those tests provide coverage that we're missing in the open tests. The goal of this is to get the open tests universally better than the ToF tests so that we can turn the ToF tests off for ProjectK runs and save us all a lot of headache diagnosing test failures from potentially outdated tests. For System.Security.Claims, we're missing 691 lines of coverage. To fulfill the uncovered lines we would need to either create new tests for them or port 15 ToF tests to the open. Those tests are: - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.ClaimsIdentityTests.AddRemoveClaims.xml - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.ClaimsIdentityTests.Serialization.xml - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.ClaimTests.Serialization.xml - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.ClaimsPrincipalTests.IsInRole.xml - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.ClaimTests.Claim_Constructor_NullTypeOrValue.xml - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.ClaimTests.Clone.xml - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests_FullRun.XML - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.CommonQueryTests.Query.xml - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.ClaimsIdentityTests.SetGet.xml - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.ClaimsIdentityTests.Clone.xml - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.ClaimsIdentityTests.Constructors.xml - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.ClaimsPrincipalTests.Serialization.xml - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.ClaimsPrincipalTests.AddIdentities.xml - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.ClaimsPrincipalTests.Clone.xml - [ ] System.Security.Claims\4.0.0.0\SystemSecurityClaimsTests\System.Security.Claims.Tests.ClaimsPrincipalTests.Constructors.xml Coverage reports, coverage xml files, and detailed json lists of each piece of missing coverage and the corresponding ToF test that fills it are available on request. " +6459 area-System.Threading [ToFDisable] Port Monitor tests for: System.Threading "As part of moving out of ToF and into the open, I've been going through the ""Tree of the future"" tests and calculating which of those tests provide coverage that we're missing in the open tests. The goal of this is to get the open tests universally better than the ToF tests so that we can turn the ToF tests off for ProjectK runs and save us all a lot of headache diagnosing test failures from potentially outdated tests. For System.Threading, we're missing the entire test suite for the [Monitor class](https://msdn.microsoft.com/en-us/library/system.threading.monitor%28v=vs.110%29.aspx) under QA/ToF/tests/FX/Threading/. " +6463 area-Serialization [ToFDisable] Port tests for: System.Xml.XmlSerializer "As part of moving out of ToF and into the open, I've been going through the ""Tree of the future"" tests and calculating which of those tests provide coverage that we're missing in the open tests. The goal of this is to get the open tests universally better than the ToF tests so that we can turn the ToF tests off for ProjectK runs and save us all a lot of headache diagnosing test failures from potentially outdated tests. For System.Xml.XmlSerializer, we're missing 1 lines of coverage. To fulfill the uncovered lines we would need to either create new tests for them or port 1 ToF tests to the open. Those tests are: - [ ] System.Xml.XmlSerializer\4.0.0.0\XmlSerializerTestsForWinMD_FullRun.XML Coverage reports, coverage xml files, and detailed json lists of each piece of missing coverage and the corresponding ToF test that fills it are available on request. " +6464 area-System.Xml [ToFDisable] Port tests for: System.Xml.XPath "As part of moving out of ToF and into the open, I've been going through the ""Tree of the future"" tests and calculating which of those tests provide coverage that we're missing in the open tests. The goal of this is to get the open tests universally better than the ToF tests so that we can turn the ToF tests off for ProjectK runs and save us all a lot of headache diagnosing test failures from potentially outdated tests. For System.Xml.XPath, we're missing 7 lines of coverage. To fulfill the uncovered lines we would need to either create new tests for them or port 1 ToF tests to the open. Those tests are: - [ ] System.Xml.XPath\4.0.0.0\XDocument\System.Xml.XPath.XDocument.Tests_FullRun.XML Coverage reports, coverage xml files, and detailed json lists of each piece of missing coverage and the corresponding ToF test that fills it are available on request. " +6465 area-System.Net "[System.Net .Security Tests for NTLM] Allow Unix Implementation to take ""Domain\User"" format as a user." Currently if we pass the credential having user in format Domain/User.. It fails ,, We should fix this to accept this. +6466 area-System.Net [System.Net .Security Tests for NTLM] Figure out a way to validate if ntlm is initialized or not. +6467 area-System.Data A connection was successfully established with the server, but then an error occurred during the login process dotnet 1.0.0-beta-001528 Runtime Environment: OS Name: ubuntu OS Version: 15.04 OS Platform: Linux Runtime Id: ubuntu.15.04-x64 System.Data.SqlClient 4.0.0-rc3-23823 ConnectionString : data source=server,port;Initial Catalog=XXXXXXXX;Integrated Security=False;User ID=sa;Password=XXXX;Connect Timeout=150;Encrypt=False The same console app works on Windows. Opening SqlConnection results in the following SqlException: **A connection was successfully established with the server, but then an error occurred during the login process. (provider: TCP Provider, error: 35 - An internal exception was caught) ---> System.IO.IOException: Unable to read data from the transport connection: Unknown error 10054. ---> System.Net.Sockets.SocketException: Unknown error 10054** ``` at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) at System.Data.SqlClient.SNI.SNITCPHandle.Receive(SNIPacket& packet, Int32 timeoutInMilliseconds) --- End of inner exception stack trace --- at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at ConsoleApplication.Program.Main(String[] args) ``` +6468 area-Infrastructure Unable to upgrade packages due to Debian errors "cc: @dagood, @chcosta, @weshaggard https://github.com/dotnet/corefx/pull/6386 is still failing due to errors like the following. What else is necessary to let this work? There are some changes blocked on being able to upgrade to the newer packages. Do we need to wait for newer packages to be published to myget and upgrade to those instead? ``` [12:02:41.84] Building Managed Libraries... [12:02:43.73] Restoring all packages... EXEC : error : System.IO.Compression 4.1.0-rc3-23823 provides a compile-time reference assembly for System.IO.Compression on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : Microsoft.Win32.Primitives 4.0.1-rc3-23823 provides a compile-time reference assembly for Microsoft.Win32.Primitives on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Console 4.0.0-rc3-23823 provides a compile-time reference assembly for System.Console on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Data.SqlClient 4.0.0-rc3-23823 provides a compile-time reference assembly for System.Data.SqlClient on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Diagnostics.FileVersionInfo 4.0.0-rc3-23823 provides a compile-time reference assembly for System.Diagnostics.FileVersionInfo on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Diagnostics.Process 4.1.0-rc3-23823 provides a compile-time reference assembly for System.Diagnostics.Process on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.IO.FileSystem.DriveInfo 4.0.0-rc3-23823 provides a compile-time reference assembly for System.IO.FileSystem.DriveInfo on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.IO.FileSystem.Watcher 4.0.0-rc3-23823 provides a compile-time reference assembly for System.IO.FileSystem.Watcher on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.IO.MemoryMappedFiles 4.0.0-rc3-23823 provides a compile-time reference assembly for System.IO.MemoryMappedFiles on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.IO.Pipes 4.0.0-rc3-23823 provides a compile-time reference assembly for System.IO.Pipes on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Net.NameResolution 4.0.0-rc3-23823 provides a compile-time reference assembly for System.Net.NameResolution on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Net.NetworkInformation 4.1.0-rc3-23823 provides a compile-time reference assembly for System.Net.NetworkInformation on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Net.Ping 4.0.0-rc3-23823 provides a compile-time reference assembly for System.Net.Ping on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Net.Requests 4.0.11-rc3-23823 provides a compile-time reference assembly for System.Net.Requests on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Net.Security 4.0.0-rc3-23823 provides a compile-time reference assembly for System.Net.Security on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Net.Sockets 4.1.0-rc3-23823 provides a compile-time reference assembly for System.Net.Sockets on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Net.WebSockets.Client 4.0.0-rc3-23823 provides a compile-time reference assembly for System.Net.WebSockets.Client on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Runtime.InteropServices.RuntimeInformation 4.0.0-rc3-23823 provides a compile-time reference assembly for System.Runtime.InteropServices.RuntimeInformation on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Runtime.Serialization.Primitives 4.1.0-rc3-23823 provides a compile-time reference assembly for System.Runtime.Serialization.Primitives on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Security.Cryptography.Algorithms 4.0.0-rc3-23823 provides a compile-time reference assembly for System.Security.Cryptography.Algorithms on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Security.Cryptography.Encoding 4.0.0-rc3-23823 provides a compile-time reference assembly for System.Security.Cryptography.Encoding on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Security.Cryptography.X509Certificates 4.0.0-rc3-23823 provides a compile-time reference assembly for System.Security.Cryptography.X509Certificates on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Xml.XmlSerializer 4.0.11-rc3-23823 provides a compile-time reference assembly for System.Xml.XmlSerializer on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.AppContext 4.1.0-rc3-23823 provides a compile-time reference assembly for System.AppContext on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Collections 4.0.11-rc3-23823 provides a compile-time reference assembly for System.Collections on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Diagnostics.Debug 4.0.11-rc3-23823 provides a compile-time reference assembly for System.Diagnostics.Debug on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Diagnostics.Tools 4.0.1-rc3-23823 provides a compile-time reference assembly for System.Diagnostics.Tools on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Diagnostics.Tracing 4.1.0-rc3-23823 provides a compile-time reference assembly for System.Diagnostics.Tracing on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Globalization 4.0.11-rc3-23823 provides a compile-time reference assembly for System.Globalization on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Globalization.Calendars 4.0.1-rc3-23823 provides a compile-time reference assembly for System.Globalization.Calendars on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Globalization.Extensions 4.0.1-rc3-23823 provides a compile-time reference assembly for System.Globalization.Extensions on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.IO 4.1.0-rc3-23823 provides a compile-time reference assembly for System.IO on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.IO.FileSystem 4.0.1-rc3-23823 provides a compile-time reference assembly for System.IO.FileSystem on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Linq.Expressions 4.0.11-rc3-23823 provides a compile-time reference assembly for System.Linq.Expressions on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Net.Http 4.0.1-rc3-23823 provides a compile-time reference assembly for System.Net.Http on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Net.Primitives 4.0.11-rc3-23823 provides a compile-time reference assembly for System.Net.Primitives on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Reflection 4.1.0-rc3-23823 provides a compile-time reference assembly for System.Reflection on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Reflection.DispatchProxy 4.0.1-rc3-23823 provides a compile-time reference assembly for System.Reflection.DispatchProxy on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Reflection.Extensions 4.0.1-rc3-23823 provides a compile-time reference assembly for System.Reflection.Extensions on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Reflection.Primitives 4.0.1-rc3-23823 provides a compile-time reference assembly for System.Reflection.Primitives on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Reflection.TypeExtensions 4.1.0-rc3-23823 provides a compile-time reference assembly for System.Reflection.TypeExtensions on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Resources.ResourceManager 4.0.1-rc3-23823 provides a compile-time reference assembly for System.Resources.ResourceManager on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Runtime 4.1.0-rc3-23823 provides a compile-time reference assembly for System.Runtime on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Runtime.Extensions 4.1.0-rc3-23823 provides a compile-time reference assembly for System.Runtime.Extensions on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Runtime.Handles 4.0.1-rc3-23823 provides a compile-time reference assembly for System.Runtime.Handles on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Runtime.InteropServices 4.1.0-rc3-23823 provides a compile-time reference assembly for System.Runtime.InteropServices on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Text.Encoding 4.0.11-rc3-23823 provides a compile-time reference assembly for System.Text.Encoding on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Text.Encoding.Extensions 4.0.11-rc3-23823 provides a compile-time reference assembly for System.Text.Encoding.Extensions on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Threading.Tasks 4.0.11-rc3-23823 provides a compile-time reference assembly for System.Threading.Tasks on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : System.Threading.Timer 4.0.1-rc3-23823 provides a compile-time reference assembly for System.Threading.Timer on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (debian.8.2-x64). [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : Failed to retrieve information from remote source 'https://dotnet.myget.org/F/dotnet-buildtools/api/v3/flatcontainer/system.linq.expressions/index.json'. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : Response status code does not indicate success: 503 (Service Unavailable). [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : Failed to retrieve information from remote source 'https://dotnet.myget.org/F/dotnet-corefxtestdata/api/v3/flatcontainer/system.runtime/index.json'. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : Response status code does not indicate success: 503 (Service Unavailable). [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : Failed to retrieve information from remote source 'https://dotnet.myget.org/F/dotnet-buildtools/api/v3/flatcontainer/system.runtime.interopservices.runtimeinformation/index.json'. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : Response status code does not indicate success: 503 (Service Unavailable). [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : Failed to retrieve information from remote source 'https://dotnet.myget.org/F/dotnet-buildtools/api/v3/flatcontainer/system.runtime.interopservices.runtimeinformation/index.json'. [d:\j\workspace\windows_nt_de---06b7984d\build.proj] EXEC : error : Response status code does not indicate success: 503 (Service Unavailable). [d:\j\workspace\windows_nt_de---06b7984d\build.proj] d:\j\workspace\windows_nt_de---06b7984d\build.proj(54,5): error MSB3073: The command """"d:\j\workspace\windows_nt_de---06b7984d\Tools/dotnetcli/bin/dotnet.exe"" restore --packages ""d:\j\workspace\windows_nt_de---06b7984d\packages"" --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-corefxtestdata/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://www.nuget.org/api/v2/ ""d:\j\workspace\windows_nt_de---06b7984d\/src"" ""d:\j\workspace\windows_nt_de---06b7984d\/pkg"""" exited with code 1. [12:23:26.92] Restoring all packages...Done. ``` (Note as well there are some 503s at the end.) " +6469 area-System.Net Enable NegotiateStream For Unix # Problem Enabling `System.Net.Security.NegotiateStream` for Unix. # Solution This PR introduces the implementation of `NegotiateStream` based on native implementations of [gssapi](https://tools.ietf.org/html/rfc2743) The native implementations used are mit-krb5 on linux and the built-in GSS.Framework for OSX. Also included are scripts to configure and deploy KDC on the host machine so as to run the associated tests. cc: @stephentoub @bartonjs @CIPop @davidsh @vijaykota @shrutigarg +6471 area-Infrastructure Remove Issue and PR templates I know we just added them, but I'm already finding them to be problematic. There's a ton of text in them, so much that I end up just ignoring them, deleting everything, and writing my own message. Plus, for PRs with a single commit, it appears the template text takes precedence over the normal behavior on GitHub of using the commit's description, which means extra work to get the contents of the commit message into the PR description. My vote is to delete these, at least for now. +6476 area-System.Data API for Code based configuration for DBProviderFactories "# Problem DbProviderFactories in .NET Framework provides an API to manage DbProviderFactory which configured in machine.config and load that assembly from GAC via reflection In Corefx, there is no more GAC and machine.config. Community are asking to have a standard way to manage DbProviderFactory to write provider agnostic code in libraries. https://github.com/dotnet/corefx/issues/4571 https://github.com/dotnet/corefx/issues/5782 https://msdn.microsoft.com/en-us/library/ms971499.aspx # Proposal We will bring back DbProviderFactories in CoreFx. But instead of register/read the configuration from machine.config, we will provide a code based configuration. This will allow application writer to hook this with any configuration mechanism. ## Contract Changes We will bring back DbProviderFactories.GetFactory functions in V1 contract which will support .Net 4.6.2. And add ""RegisterFactory"" functions in V2 contract to support .Net vNext. (version after 4.6.2) For portability, we will bring ""RegisterFactory"" into .Net vNext and should work side by side with file config behavior. e.g code based config will override file based config). Portable library (such as ORM), can start using GetFactory and target it for .Net 4.6.2. If this library used in .NET 4.6.2 , GetFactory will return factory which defined in machine/app configs. Corefx application which used this portable library can register their factory using ""RegisterFactory"". Once we release ""RegisterFactory"" into .Net vNext, The behavior will be work seamless in both frameworks. ``` C# namespace System.Data.Common { public static class DbProviderFactories { // V1 -- Supported by .NET Framework 4.6.2 (the upcoming version) public static DbProviderFactory GetFactory(string providerInvariantName); public static DbProviderFactory GetFactory(DbConnection connection); // V2 -- Supported by .NET Core 1.0 and by .NET Framework vNext (version after 4.6.2) public static void RegisterFactory(string providerInvariantName, DbProviderFactory factory); public static IEnumerable GetFactoryProviderNames(); } } ``` ## DbProviderFactories CoreFx Implementation ``` C# public abstract class DbProviderFactories { internal static readonly Dictionary> _configs = new Dictionary>(); public static DbProviderFactory GetFactory(string providerInvariantName) { ADP.CheckArgumentLength(providerInvariantName, nameof(providerInvariantName)); if (_configs.ContainsKey(providerInvariantName)) { return _configs[providerInvariantName](); } throw ADP.ConfigProviderNotFound(); } public static DbProviderFactory GetFactory(DbConnection connection) { ADP.CheckArgumentNull(connection, nameof(connection)); return connection.ProviderFactory; } public static void RegisterFactory(string providerInvariantName, DbProviderFactory factory) { ADP.CheckArgumentNull(providerInvariantName, nameof(providerInvariantName)); ADP.CheckArgumentNull(constructorDelegate, nameof(constructorDelegate)); _configs[providerInvariantName] = factory; } public static IEnumerable GetFactoryProviderNames() { return _configs.Keys.toArray(); } } ``` ## Usage For CoreFX application, You need to register your provider factory during startup of your application. ``` C# public static void Startup() { //SqlClientFactory is a singleton factory DbProviderFactories.Add(""System.Data.SqlClient"", SqlClientFactory.Instance); //You can use other factory which not singleton. DbProviderFactories.Add(""System.Data.OtherProvider"", new OtherProviderFactory()); } ``` # Progress I have created initial commit on my branch to inspect what are the changes needed. https://github.com/kkurni/corefx/commit/68380b3451d3ba0ce9646119101e9b4309f09d68 " +6477 area-System.Linq Order of execution for Enumerable.Join differs between coreclr and net451 "Order of execution for Enumerable.Join differs between coreclr and net451. End results are correct for both cases, but if customers are depending on order of execution (should they?) they might run into trouble. Repro: ``` public class Program { public static void Main(string[] args) { var query = Enumerable.Join(new CustomerEnumerable(), new OrderEnumerable(), c => c.Id, o => o.Id, (c, o) => new { c, o }); var result = query.ToList(); } } public class Customer { public int Id { get; set; } public string Name { get; set; } } public class Order { public int Id { get; set; } public string OrderName { get; set; } } public class CustomerEnumerable : IEnumerable { public IEnumerator GetEnumerator() { return new CustomerEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return new CustomerEnumerator(); } private class CustomerEnumerator : IEnumerator { private int state = 0; public Customer Current { get { Console.WriteLine(""CustomerEnumerator Current""); return new Customer { Id = 1, Name = ""1"" }; } } object IEnumerator.Current { get { Console.WriteLine(""CustomerEnumerator Current""); return new Customer { Id = 1, Name = ""1"" }; } } public void Dispose() { } public bool MoveNext() { Console.WriteLine(""CustomerEnumerator MoveNext""); if (state == 0) { state = 1; return true; } return false; } public void Reset() { } } } public class OrderEnumerable : IEnumerable { public IEnumerator GetEnumerator() { return new OrderEnumerator(); } IEnumerator IEnumerable.GetEnumerator() { return new OrderEnumerator(); } private class OrderEnumerator : IEnumerator { private int state = 0; public Order Current { get { Console.WriteLine(""OrderEnumerator Current""); return new Order { Id = 1, OrderName = ""1"" }; } } object IEnumerator.Current { get { Console.WriteLine(""OrderEnumerator Current""); return new Order { Id = 1, OrderName = ""1"" }; } } public void Dispose() { } public bool MoveNext() { Console.WriteLine(""OrderEnumerator MoveNext""); if (state == 0) { state = 1; return true; } return false; } public void Reset() { } } } ``` Result on net451: OrderEnumerator MoveNext OrderEnumerator Current OrderEnumerator MoveNext CustomerEnumerator MoveNext CustomerEnumerator Current CustomerEnumerator MoveNext Result on coreclr: CustomerEnumerator MoveNext OrderEnumerator MoveNext OrderEnumerator Current OrderEnumerator MoveNext CustomerEnumerator Current CustomerEnumerator MoveNext " +6479 area-System.Net System.ObjectDisposedException thrown while trying to compose very large multipart form "I'm not sure if this is by-design, an actual issue, or something else. I'm trying to upload a **very large** file (or set of files) using a multipart form via a POST message, up to 4 GB total message size. The client that's going to send this very large message is not able to finish creating the data stream before I get a `System.ObjectDisposedException` indicating: `""Safe handle has been closed""`. The exception is thrown during the execution of the line that reads `stream.Write(buffer, 0, length);` in the repro below. It appears as if the safe handle to the stream has been disposed but I'm still writing to it. # Affected platforms I don't have access to OSX. I've repro'ed it under both Windows 10 and Ubuntu 14.04. # Repro steps Use this project.json ``` JSON { ""version"": ""1.0.0-*"", ""compilationOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""Microsoft.AspNetCore.Mvc"": ""1.0.0-*"", ""NETStandard.Library"": ""1.0.0-*"", ""System.Net.Http"": ""4.0.1-*"", ""System.Console"": ""4.0.0-*"" }, ""frameworks"": { ""dnxcore50"": { ""imports"": ""portable-net451+win8"" } }, ""commands"": { ""run"": ""LargeFileUpload"" } } ``` Use this Program.cs ``` C# using System; using System.IO; using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Threading.Tasks; namespace ConsoleApplication { public class RandomDataStreamContent : HttpContent { private const int DefaultBufferSize = 4096; private readonly int _bufferSize; private readonly long _desiredLength; private readonly Random _random = new Random(DateTime.UtcNow.Millisecond); private static long _globalWrittenBytes = 0; public RandomDataStreamContent(long desiredLength) : this(desiredLength, DefaultBufferSize) { } public RandomDataStreamContent(long desiredLength, int bufferSize) { if (bufferSize <= 0) { throw new ArgumentOutOfRangeException(nameof(bufferSize)); } _bufferSize = bufferSize; _desiredLength = desiredLength; } protected override Task SerializeToStreamAsync(Stream stream, TransportContext context) { return Task.Run(() => { var buffer = new byte[_bufferSize]; var uploaded = 0; while (uploaded < _desiredLength) { _random.NextBytes(buffer); var length = buffer.Length; uploaded += length; if (uploaded > _desiredLength) { var delta = (int)(uploaded - _desiredLength); uploaded -= delta; length -= delta; } try { _globalWrittenBytes += length; stream.Write(buffer, 0, length); } catch (Exception e) { Console.WriteLine($""Bytes written to buffer before exception: { _globalWrittenBytes }""); Console.WriteLine($""Exception thrown: { e.Message }""); throw; } } }); } protected override bool TryComputeLength(out long length) { length = _desiredLength; return true; } } public class Program { // this endpoint doesn't matter as we'll not make it to hit the actual endpoint with the payload, // we just need a URI that's valid so we can establish a connection private const string ApiEndpoint = ""http://www.httpbin.org/""; public static void Main(string[] args) { const long oneGigabyte = 1024 * 1024 * 1024; const int filesToAdd = 4; using (var client = new HttpClient()) { using (var form = new MultipartFormDataContent()) { form.Add(new StringContent(""{\""section\"" : \""This is a simple JSON content fragment\""}""), ""metadata""); for (var iter = 0; iter < filesToAdd; ++iter) { var fileName = Guid.NewGuid().ToString().ToLower(); var fileContent = GenerateFileContent(fileName, oneGigabyte); form.Add(fileContent, ""file"", fileName); } var response = client.PostAsync(ApiEndpoint + ""api/upload"", form).Result; if (!response.IsSuccessStatusCode) { var errorMessage = ""Upload failed: "" + (int)response.StatusCode + "" "" + response.ReasonPhrase; throw new Exception(errorMessage + Environment.NewLine + response.Content.ReadAsStringAsync().Result); } } } } private static RandomDataStreamContent GenerateFileContent(string fileName, long fileSize) { var fileContent = new RandomDataStreamContent(fileSize); fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue(""form-data"") { Name = ""\""files\"""", FileName = ""\"""" + fileName + ""\"""" }; fileContent.Headers.ContentType = new MediaTypeHeaderValue(""application/octet-stream""); return fileContent; } } } ``` # Expected behavior The code as it stands should 404 (Not Found) since we're trying to hit an endpoint that doesn't exist. In case you have a WebAPI endpoint where you can upload the large file, it should 200 (OK). # Actual behavior The console prints: ``` Bytes written to buffer before exception: 22691840 Exception thrown: A task was canceled. Unhandled Exception: System.AggregateException: One or more errors occurred. (A task was canceled.) ---> System.Threading.Tasks.TaskCanceledException: A task was canceled. --- End of inner exception stack trace --- at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at ConsoleApplication.Program.Main(String[] args) ``` And crashes. " +6485 area-System.Runtime Add parameterless overloads of TrimStart/TrimEnd I propose we add parameterless overloads of `TrimStart`/`TrimEnd` for the String class. # Rationale - We have a parameterless `Trim` [method](https://msdn.microsoft.com/en-us/library/t97s7bs3%28v=vs.110%29.aspx), so it's best to do this for symmetry. - We can avoid array allocations every time the method is called, e.g. `TrimStart()` would no longer transparently allocate an array. We can avoid this with `TrimStart(Array.Empty())`, but that's besides the point. - With the [current implmementation](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/String.cs#L1366) in CoreCLR, it would be relatively trivial to implement. Just add this to the class: ``` csharp public string TrimStart() => TrimHelper(TrimHead); public string TrimEnd() => TrimHelper(TrimTail); ``` - Perhaps this is just me, but when I first came across the `TrimStart(params char[])` overload (as a beginner to C#), I wasn't even aware that you could leave a `params` method empty. I just assumed that the functionality I was looking for wasn't available, and ended up making my own helper method. # Proposed API ``` csharp namespace System { public class String { // New methods public string TrimStart(); public string TrimEnd(); } } ``` +6486 area-System.Net Support setting outgoing interface for multicast on Socket The desktop framework and mono support setting the interface used for outgoing multicast traffic by passing the interface index as a value for the MulticastInterface SocketOption. ``` socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastInterface, IPAddress.HostToNetworkOrder(interfaceIndex)) ``` On Windows this is an acceptable value for IP_MULTICAST_IF, see [msdn IPPROTO_IP](https://msdn.microsoft.com/en-us/library/windows/desktop/ms738586%28v=vs.85%29.aspx). On non-Windows platforms the request should be translated to pass an ip_mreqn as the IP_MULTICAST_IF value, see [man ip](http://man7.org/linux/man-pages/man7/ip.7.html). The mono implementation for translating the value on non-Windows platforms can be found here: https://github.com/mono/mono/blob/master/mono/metadata/socket-io.c#L2333-L2345 +6487 area-System.Net HttpWebRequestTest.Abort_BeginGetRequestStreamThenAbort_EndGetRequestStreamThrowsWebException(remoteServer NullReferenceException http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst_prtest/1405/console ``` 19:07:17 System.Net.Tests.HttpWebRequestTest.Abort_BeginGetRequestStreamThenAbort_EndGetRequestStreamThrowsWebException(remoteServer: http://corefx-net.cloudapp.net/Echo.ashx) [FAIL] 19:07:17 System.NullReferenceException : Object reference not set to an instance of an object. 19:07:17 Stack Trace: 19:07:18 at System.Net.Tests.HttpWebRequestTest.Abort_BeginGetRequestStreamThenAbort_EndGetRequestStreamThrowsWebException(Uri remoteServer) ``` +6489 area-System.Net Missing ObjectContent class in System.Net.Http "It appears `ObjectContent` didn't make it among the various subclasses of `HttpContent` (`StreamContent`, `StringContent`, etc.). Is this a bug or is there another way to use `HttpClient` to POST json somewhere? e.g. ``` cs var value = new MyType(); client.PostAsync(""http://example.com/"", new ObjectContent(value, new JsonMediaTypeFormatter())) ``` " +6493 area-Infrastructure Outer loop Win7 and Win10 builds failing consistently with various errors Outer loop builds are repeatedly failing with a variety of errors: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win7_debug/98/consoleText http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win10_debug/104/consoleText http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win7_release/94/consoleText ``` 09:17:15 Installing dotnet cli... 09:17:16 Add-Type : Cannot add type. The assembly 'System.IO.Compression.FileSystem' cou 09:17:16 ld not be found. 09:17:16 At line:1 char:250 09:17:16 + (New-Object Net.WebClient).DownloadFile('https://dotnetcli.blob.core.windows. 09:17:16 net/dotnet/beta/Binaries/1.0.0.001504/dotnet-win-x64.1.0.0.001504.zip', 'd:\j\w 09:17:16 orkspace\outerloop_win---9c9e7d59\Tools\dotnetcli\dotnet-win-x64.1.0.0.001504.z 09:17:16 ip'); Add-Type <<<< -Assembly 'System.IO.Compression.FileSystem' -ErrorVariabl 09:17:16 e AddTypeErrors; if ($AddTypeErrors.Count -eq 0) { [System.IO.Compression.ZipFi 09:17:16 le]::ExtractToDirectory('d:\j\workspace\outerloop_win---9c9e7d59\Tools\dotnetcl 09:17:16 i\dotnet-win-x64.1.0.0.001504.zip', 'd:\j\workspace\outerloop_win---9c9e7d59\To 09:17:16 ols\dotnetcli\') } else { (New-Object -com shell.application).namespace('d:\j\w 09:17:16 orkspace\outerloop_win---9c9e7d59\Tools\dotnetcli\').CopyHere((new-object -com 09:17:16 shell.application).namespace('d:\j\workspace\outerloop_win---9c9e7d59\Tools\dot 09:17:16 netcli\dotnet-win-x64.1.0.0.001504.zip').Items(),16) } 09:17:16 + CategoryInfo : ObjectNotFound: (System.IO.Compression.FileSyste 09:17:16 m:String) [Add-Type], Exception 09:17:16 + FullyQualifiedErrorId : ASSEMBLY_NOT_FOUND,Microsoft.PowerShell.Commands 09:17:16 .AddTypeCommand 09:17:16 09:17:17 Add-Type : Cannot add type. One or more required assemblies are missing. 09:17:17 At line:1 char:250 09:17:17 + (New-Object Net.WebClient).DownloadFile('https://dotnetcli.blob.core.windows. 09:17:17 net/dotnet/beta/Binaries/1.0.0.001504/dotnet-win-x64.1.0.0.001504.zip', 'd:\j\w 09:17:17 orkspace\outerloop_win---9c9e7d59\Tools\dotnetcli\dotnet-win-x64.1.0.0.001504.z 09:17:17 ip'); Add-Type <<<< -Assembly 'System.IO.Compression.FileSystem' -ErrorVariabl 09:17:17 e AddTypeErrors; if ($AddTypeErrors.Count -eq 0) { [System.IO.Compression.ZipFi 09:17:17 le]::ExtractToDirectory('d:\j\workspace\outerloop_win---9c9e7d59\Tools\dotnetcl 09:17:17 i\dotnet-win-x64.1.0.0.001504.zip', 'd:\j\workspace\outerloop_win---9c9e7d59\To 09:17:17 ols\dotnetcli\') } else { (New-Object -com shell.application).namespace('d:\j\w 09:17:17 orkspace\outerloop_win---9c9e7d59\Tools\dotnetcli\').CopyHere((new-object -com 09:17:17 shell.application).namespace('d:\j\workspace\outerloop_win---9c9e7d59\Tools\dot 09:17:17 netcli\dotnet-win-x64.1.0.0.001504.zip').Items(),16) } 09:17:17 + CategoryInfo : InvalidData: (:) [Add-Type], InvalidOperationExc 09:17:17 eption 09:17:17 + FullyQualifiedErrorId : ASSEMBLY_LOAD_ERRORS,Microsoft.PowerShell.Comman 09:17:17 ds.AddTypeCommand 09:17:17 09:17:19 Restoring BuildTools version 1.0.25-prerelease-00177... 09:17:24 Initializing BuildTools ... 09:17:37 Done initializing tools. 09:17:37 [17:17:45.06] Building Native Libraries... 09:17:38 CMake is a pre-requisite to build this repository but it was not found on the path. Please install CMake from http://www.cmake.org/download/ and ensure it is on your path. 09:17:38 Native component build failed see nativebuild.log for more details. 09:17:38 [17:17:45.81] Building Managed Libraries... 09:17:39 [17:17:46.59] Restoring all packages... 09:21:19 [17:21:26.71] Restoring all packages...Done. 09:21:20 C:\Program Files (x86)\MSBuild\Microsoft\Portable\Microsoft.Portable.Core.targets(22,9): error : The TargetFrameworkProfile property is not set for project 'Microsoft.CSharp.csproj'. Portable projects must specify a profile. [d:\j\workspace\outerloop_win---9c9e7d59\src\Microsoft.CSharp\ref\Microsoft.CSharp.csproj] 09:21:21 C:\Program Files (x86)\MSBuild\Microsoft\Portable\Microsoft.Portable.Core.targets(22,9): error : The TargetFrameworkProfile property is not set for project 'Microsoft.VisualBasic.csproj'. Portable projects must specify a profile. [d:\j\workspace\outerloop_win---9c9e7d59\src\Microsoft.VisualBasic\ref\Microsoft.VisualBasic.csproj] ``` +6494 area-Infrastructure Outer loop Ubuntu legs pass all tests but then fail with IOException http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_ubuntu14.04_release/8/consoleFull ``` [xUnit] [ERROR] - IO error scanning directory '/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/bin/tests' ERROR: Step ‘Publish xUnit test result report’ aborted due to exception: java.io.IOException: remote file operation failed: /mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug at hudson.remoting.Channel@79976537:Azure0227030641: hudson.util.IOException2: There are some problems during the conversion into JUnit reports: at hudson.FilePath.act(FilePath.java:986) at hudson.FilePath.act(FilePath.java:968) at org.jenkinsci.plugins.xunit.XUnitProcessor.performTests(XUnitProcessor.java:145) at org.jenkinsci.plugins.xunit.XUnitProcessor.performXUnit(XUnitProcessor.java:88) at org.jenkinsci.plugins.xunit.XUnitPublisher.perform(XUnitPublisher.java:142) at org.jenkinsci.plugins.xunit.XUnitPublisher.perform(XUnitPublisher.java:134) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782) at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:723) at hudson.model.Build$BuildExecution.post2(Build.java:185) at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:668) at hudson.model.Run.execute(Run.java:1763) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:98) at hudson.model.Executor.run(Executor.java:410) Caused by: hudson.util.IOException2: There are some problems during the conversion into JUnit reports: at org.jenkinsci.plugins.xunit.service.XUnitTransformer.invoke(XUnitTransformer.java:183) at org.jenkinsci.plugins.xunit.service.XUnitTransformer.invoke(XUnitTransformer.java:44) at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2719) at hudson.remoting.UserRequest.perform(UserRequest.java:120) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:326) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) at ......remote call to Azure0227030641(Native Method) at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1416) at hudson.remoting.UserResponse.retrieve(UserRequest.java:220) at hudson.remoting.Channel.call(Channel.java:781) at hudson.FilePath.act(FilePath.java:979) ... 14 more Caused by: IO error scanning directory '/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/bin/tests' at org.apache.tools.ant.DirectoryScanner.scandir(DirectoryScanner.java:1207) at org.apache.tools.ant.DirectoryScanner.checkIncludePatterns(DirectoryScanner.java:1030) at org.apache.tools.ant.DirectoryScanner.scan(DirectoryScanner.java:909) at org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(AbstractFileSet.java:499) at org.apache.tools.ant.types.AbstractFileSet.getDirectoryScanner(AbstractFileSet.java:460) at org.jenkinsci.plugins.xunit.service.XUnitReportProcessorService.findReports(XUnitReportProcessorService.java:73) at org.jenkinsci.plugins.xunit.service.XUnitTransformer.invoke(XUnitTransformer.java:92) at org.jenkinsci.plugins.xunit.service.XUnitTransformer.invoke(XUnitTransformer.java:44) at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2719) at hudson.remoting.UserRequest.perform(UserRequest.java:120) at hudson.remoting.UserRequest.perform(UserRequest.java:48) at hudson.remoting.Request$2.run(Request.java:326) at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) [BFA] Scanning build for known causes... ..[BFA] Found failure cause(s): [BFA] Hung processs on target machine from category Infrastructure ``` Also, why after the tests are run is it then doing a native build? +6495 area-Infrastructure Outer loop runs aren't running inner loop tests! "`/p:WithCategories=""InnerLoop;OuterLoop""` is being passed to msbuild, causing `-trait category=InnerLoop -trait category=OuterLoop` to be passed to the xunit command line, but ""inner loop"" tests aren't attributed with an [InnerLoop] attribute, there is no ""InnerLoop"" trait, etc., and so the only tests that are getting run are the few outer loop ones. " +6500 area-System.Net Release pinned buffers correctly for WinHttpHandler, WinHttpWebSocket Both WinHttpHandler and WinHttpWebSocket use pinned buffers for receiving and sending data. The pinned GCHandle was being freed during the dispose of the WinHttpHandler or WinHttpWebSocket objects. The problem is that the buffer should not be unpinned until the async operation is done. It's possible for any async operation to be in flight (and where native code uses the buffer) when the object is explicitly or implicitly disposed. This fix moves the ownership of the pinned GCHandle to their respective state objects (WinHttRequestState, WinHttpWebSocketState). These objects are strongly rooted and are not released until all async operations are completed and the WinHTTP handles are fully closed. That makes these state objects a safe place to own and free the pinned buffers. Fixes #2508 and #6142 +6503 area-System.Net System.Net.Primitives: Remove dependency on non-generic collections `System.Net.Primitives` depends on `System.Collections.NonGeneric` only for the non-generic `SortedList`. We can instead use the generic `SortedList` in `System.Collections`, allowing us to remove the dependency on the legacy collections. cc: @stephentoub, @davidsh +6506 area-System.Net SocketAsyncEngine event loop FailFast on OSX "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst_prtest/1447/console ``` 16:35:47 CLR: Managed code called FailFast, saying ""Exception thrown from SocketAsyncEngine event loop: System.Diagnostics.Debug+DebugAssertException: 16:35:47 16:35:47 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 16:35:47 at System.Environment.get_StackTrace() 16:35:47 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 16:35:47 at System.Net.Sockets.SocketAsyncContext.UnregisterRead() 16:35:47 at System.Net.Sockets.SocketAsyncContext.HandleEvents(SocketEvents events) 16:35:47 at System.Net.Sockets.SocketAsyncEngine.EventLoop() 16:35:47 at System.Threading.Tasks.Task.Execute() 16:35:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 16:35:47 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 16:35:47 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 16:35:47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 16:35:47 at System.Diagnostics.Debug.UnixDebugLogger.ShowAssertDialog(String stackTrace, String message, String detailMessage) 16:35:47 at System.Net.Sockets.SocketAsyncContext.UnregisterRead() 16:35:47 at System.Net.Sockets.SocketAsyncContext.HandleEvents(SocketEvents events) 16:35:47 at System.Net.Sockets.SocketAsyncEngine.EventLoop()"" 16:35:47 ./run-test.sh: line 135: 55204 Abort trap: 6 ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing -notrait category=OuterLoop -notrait category=$xunitOSCategory -notrait Benchmark=true 16:35:47 error: One or more tests failed while running tests from 'System.Net.Sockets.Tests'. Exit code 134. ``` cc: @ericeil, @pgavlin " +6513 area-System.Net NullReferenceException when calling Socket.SetMulticastOption on ubuntu 14.04 "Calling Socket.SetMulticastOption throws a NullReferenceException on ubuntu 14.04. Example program: ``` using System; using System.Net; using System.Net.Sockets; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { int interfaceIndex = 0; IPAddress ip = IPAddress.Parse(""239.1.2.3""); int port = 54321; Console.WriteLine(""Creating socket""); Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); Console.WriteLine(""Binding socket""); socket.Bind(new IPEndPoint(IPAddress.Any, 54321)); Console.WriteLine(""Adding membership""); socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(ip, interfaceIndex)); Console.WriteLine(""Done!""); Console.Read(); } } } ``` ``` { ""version"": ""1.0.0-*"", ""compilationOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""NETStandard.Library"": ""1.0.0-rc2-23728"" }, ""frameworks"": { ""dnxcore50"": { } } } ``` Output: ``` Creating socket Binding socket Adding membership Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object. at System.Net.Sockets.SocketPal.SetMulticastOption(SafeCloseSocket handle, SocketOptionName optionName, MulticastOption optionValue) at System.Net.Sockets.Socket.SetMulticastOption(SocketOptionName optionName, MulticastOption MR) at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Object optionValue) at ConsoleApplication.Program.Main(String[] args) ``` " +6514 area-System.Net Fix a NullReferenceException on Unix in SetMulticastOption The implementation was assuming that MulticastOption.LocalAddress is always set, but it'll be null if an interface index was provided. cc: @ericeil, @pgavlin, @davidsh, @tmds Fixes #6513 +6516 area-System.Net SendToV4IPEndPointToDualHost_Success timeout on OS X http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst_prtest/1458/console ``` 05:22:47 System.Net.Sockets.Tests.DualMode.SendToV4IPEndPointToDualHost_Success [FAIL] 05:22:47 System.TimeoutException : The operation has timed out. 05:22:47 Stack Trace: 05:22:47 at System.Net.Sockets.Tests.DualMode.DualModeSendTo_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) 05:22:47 at System.Net.Sockets.Tests.DualMode.SendToV4IPEndPointToDualHost_Success() ``` +6517 area-System.IO Feature request: Better low-level support for making use of streaming algorithms There is a class of algorithms that works against a sequential stream of data. Typically, the algorithm is initialized with some starting state. It's then presented with a sequential stream of identically-typed elements. For each arbitrarily-chosed block of elements, the algorithm may either modify the starting state or produce an incremental block as part of an output stream, or both, depending on the algorithm in question. Algorithms which follow this pattern include compression/decompression, encryption/decryption and hashing. In the BCL, these algorithms are typically modeled as wrappers of System.IO.Stream. For instance, you write normally to a file by using a FileStream. But if you wrap this FileStream with a GZipStream, then writing to the wrapper will cause the file to be compressed. This is incredibly convenient when your use case exactly matches the functionality in the BCL. Where it falls apart, though, is for non-matching use cases. For instance, let's say you want to compress a Stream while reading it. This simply isn't supported directly today. The only way to make use of GZipStream in this scenario is by creating two adapters -- one that reads from the original stream and writes to the GZipStream, and one that intercepts the writes out of the GZipStream and puts a pull interface back on top of it. If the GZip functionality in the BCL were also exposed in a more primitive form -- for instance, something like the [Compressor interface in Hadoop](http://hadoop.apache.org/docs/current/api/org/apache/hadoop/io/compress/Compressor.html), it would be much easier to implement custom scenarios on top of the base functionality. Given a sufficiently general abstraction for the initialize/process next block/finish set of operations, it might even be possible to reduce the amount of per-algorithm code that exists simply to interface with Stream. Unfortunately, the CoreCLR footprint appears to be going backwards in this regard. As an example, the HashAlgorithm class previously had methods for TransformBlock and TransformFinalBlock, but these have removed. The only way to make use of HashAlgorithm in a streaming fashion is to go through the pain of exposing the data as a (blocking) Stream, which can be extremely inconvenient. +6519 area-System.Net Fix SocketException error codes and messages on Unix "SocketException's public ctor takes an int, which it treats as both a SocketError and the native error code, passing it down to the base Win32Exception to get the platform-specific message for the error. However, SocketError is only the same as the native error code on Windows; on Unix, a translation is required, but that translation is missing. As a result, every SocketException thrown from System.Net.Sockets on Unix comes out with an unhelpful message ""Unknown error 12345"", where 12345 is the value for the SocketError, and the base native error code is set inappropriately as the SocketError's value rather than as the real errno value. This change puts a reverse mapping in place, such that the SocketError provided to SocketException is then translated back (as best as possible) into the underlying platform's native error code, which is then both stored on the base exception and used to get the appropriate platform-specific error message. So, for example, rather than getting an error like: ``` System.Net.Sockets.SocketException: Unknown error 10047 ``` you now get an error like: ``` System.Net.Sockets.SocketException: Address family not supported by protocol ``` Additionally, several SocketErrors map to errno values that weren't included in our Interop.Errors enum. I've added them. And, SocketException had dead code in the form of an ""internal SocketException(EndPoint endPoint)"" ctor that was never used. As a result, the private _endPoint field was always null, and the Message property would always just return base.Message. I've removed the constructor, the field, and the Message property override. SocketException also had an ErrorCode property in the implementation that wasn't in the ref contract; I've removed it from the implementation, too. cc: @davidsh, @pgavlin, @ericeil Fixes https://github.com/dotnet/corefx/issues/5849 " +6522 area-Infrastructure Update netci and run-test to use the IgnoreForCI trait in Jenkins Updates the netci.groovy and runtest.sh files to pass `-notrait Category=IgnoreForCI` to `build.cmd` and `run-test.sh` in Jenkins so that we can disable tests from running when they're being run in Jenkins. @dotnet-bot test ci please @Priya91 would you mind checking (or showing me how to check) that the generated jobs are correctly passing the -notrait / WithoutCategories? replaces part of #6145 +6523 area-System.Net Support setting outgoing interface for multicast on Socket Fix https://github.com/dotnet/corefx/issues/6486 pal_networking: support specifying the network interface for outgoing multicast traffic via SocketOptionName.MulticastInterface on non-Windows platforms The interface for outgoing multicast traffic can be set as follows: socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastInterface, IPAddress.HostToNetworkOrder(interfaceIndex)) +6533 area-System.Reflection CustomAttributeDecoder should cache and reuse common arguments to avoid boxing Currently, in CustomAttributeDecoder.DecodeArgument, we'll re-box small integers, true and false every time they're encountered. The boxed values can be reused. +6534 area-System.Reflection Improve custom attribute decoding tests Currently, due to lack of time, some tests just check that we don't throw. A better approach would probably be to generically compare reflection CustomAttributeData to S.R.M CustomAttributeValue for every test attribute applied. Also, there needs to be test cases for malformed custom attributes. Test coverage is at ~70% now with only positive cases. +6535 area-System.Net HttpClient.GetAsync does not call virtual SendAsync can you confirm that this is NOT by design? All [Verb]Async methods except GetAsync end up in one particular SendAsync method ``` public override Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) ``` I think GetAsync should not be en exception. +6538 area-System.Net Reduce some allocations in WebUtility.UrlDecode This partially addresses issue #5888. It makes `UrlDecoder` a struct (and fixes the associated comments), and adds a dependency on `System.Buffers` so it can pool arrays. I'll go again and submit the `StringBuilder` changes in another PR, since from my understanding they seem to be an API change. +6541 area-System.Data SqlClient Tests: TdsParser::ThrowExceptionAndWarning called with no exceptions or warnings! Happens intermittently in various test cases. +6542 area-System.Net WebUtility.UrlEncode/Decode methods allocate even when unneeded "As it stands, the [current implementation](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/src/System/Net/WebUtility.cs#L360-L362) of `WebUtility`'s `UrlEncode`/`Decode` methods allocate even when there is nothing to change in the original string, e.g. `UrlDecode(""Foo"")`. We should probably change this (I may submit a PR) so that it just returns the original string if no changes are needed. " +6543 area-System.Net Short-circuit in UrlEncode/Decode for WebUtility Partially fixes #6542 by short-circuiting in `UrlEncode` if no encoding is required. It uses the already-existing `IsUrlSafeChar` helper method to do this. I think this may break in the case where a UTF-8 encoded string doesn't pass as 'safe' (and needs to be encoded), but its UTF-16 counterpart does. I'm not sure such a case could exist though, since all of the chars validated by `IsUrlSafeChar` should have the same representation when converted to UTF-8 and cast back to `char`. cc @stephentoub @davidsh **edit:** Added commits to deal with this for `UrlDecode` as well. +6544 area-System.Net Avoid a string allocation when parsing numeric HTML entities This change avoids an allocation by `Substring` when decoding numeric HTML entities, like `` for example. cc @stephentoub @davidsh +6546 area-Meta Tests failing on NetBSD I will track here progress on running managed code tests with CoreCLR/CoreFX on NetBSD. For now: 1. I disabled locally all tests failing on FreeBSD or Linux or OSX. 2. I added locally 'timeout 15m' call before each `corerun` execution to address hanging tests. Command: `./run-test.sh --coreclr-bins /usr/pkg/CoreCLR/ --mscorlib-bins /usr/pkg/CoreCLR/ --corefx-tests /public/bin/tests/FreeBSD.AnyCPU.Debug/ --corefx-native-bins ./bin/NetBSD.x64.Debug/Native/` +6550 area-System.Security System.Security.Cryptography.X509Certificates.X509Store hides errors when cert collection is obtained from a closed store "`System.Security.Cryptography.X509Certificates.X509Store` has ``` public X509Certificate2Collection Certificates { get { ``` which silently returns an empty collection if the store is not opened. The code to traverse a store looks something like this: ``` using( var store = new X509Store() ) { store.Open( OpenFlags.ReadOnly ); var allCerts = store.Certificates; //traverse allCerts } ``` if `Open()` call is omitted for any reason - ""no problem"", the code works, just looks at empty collection. This is error hiding. `Add()` and `Remove()` don't allow the store to be not opened in advanced. There's no way to check the store is opened. Something like this: ``` void traverseCerts( X509Store store ) { var allCerts = store.Certificates; //traverse allCerts } ``` cannot even check the store is opened - it gets a collection anyway, maybe empty and it's empty maybe because the store is not opened or because the store is indeed empty. The same behavior is on desktop. This is extremely inconvenient. A `IsOpened` property is surely needed. Also `Certificates` getter likely needs to throw an exception if the store is not opened in advance. " +6554 area-System.Net Disable failing networking tests on OS X These tests have been failing fairly regularly on OS X. I'm disabling them until we can figure out why. https://github.com/dotnet/corefx/issues/5750 cc: @eirceil +6555 area-System.Net cannot compile system.net.sockets "Hi all, trying to compile System.Net.Sockets. It fails with errors: ""System.Net.NameResolution 4.0.0-rc3-23829 is not compatible with DNXCore,Version=v5.0. System.Security.Principal.Windows 4.0.0-rc3-23829 is not compatible with DNXCore,Version=v5.0."" ..build output... Restoring NuGet packages... To prevent NuGet from restoring packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages during build.' Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets (≥ 1.0.0) -> System.IO.FileSystem (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets (≥ 1.0.0) -> System.Collections (≥ 4.0.0) Detected package downgrade: System.Collections from 4.0.10 to 4.0.0 System.Net.Sockets (≥ 1.0.0) -> System.Net.Primitives (≥ 4.0.10) -> System.Private.Networking (≥ 4.0.0) -> System.Collections (≥ 4.0.10) System.Net.Sockets (≥ 1.0.0) -> System.Collections (≥ 4.0.0) Detected package downgrade: System.Globalization from 4.0.10 to 4.0.0 System.Net.Sockets (≥ 1.0.0) -> System.Net.Primitives (≥ 4.0.10) -> System.Private.Networking (≥ 4.0.0) -> System.Globalization (≥ 4.0.10) System.Net.Sockets (≥ 1.0.0) -> System.Globalization (≥ 4.0.0) System.Net.NameResolution 4.0.0-rc3-23829 is not compatible with DNXCore,Version=v5.0. System.Security.Principal.Windows 4.0.0-rc3-23829 is not compatible with DNXCore,Version=v5.0. Some packages are not compatible with DNXCore,Version=v5.0. The project 'System.Net.Sockets' does not specify any target frameworks in 'C:\tfs\git\corefx\src\System.Net.Sockets\ref\project.json'. NuGet package restore failed. 1>------ Rebuild All started: Project: System.Net.Sockets (src\System.Net.Sockets), Configuration: Windows_Debug Any CPU ------ 1> System.Net.Sockets -> C:\tfs\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Net.Sockets\System.Net.Sockets.dll Thanks Damir " +6559 area-System.Net Remove special EOF handling in SocketAsyncContext event loop This code makes the assumption that if the other end of a socket is closed, all reads that will ever be issued on this end are already pending, so it's ok to shut down the read queue. This is not necessarily true; we need to allow other threads to continue to issue reads until they've actually read all data. This is resulting in assert failures (#6506) and is a likely cause of erroneous OperationAborted failures (#5750). It's not clear to me what value the EOF handling is providing currently; currently, aside from erroneously shutting down the queue, the only difference from the normal read event logic is that we also unregister from read events. Since we no longer are able to free handles, etc., on unregistration, it's not clear that we get any benefit from unregistering an event we'll probably never receive again. This change therefore simply removes this logic. Fixes #6506. Fixes #5750. @stephentoub @pgavlin +6563 area-Serialization Improve test coverage xmlserializer Remove unused code and add some test cases. Test coverage gets from 66.2% to 67.7% cc @shmao @SGuyGe @zhenlan +6564 area-Serialization Question: Serialization support going forward from .Net Core 1.0 Hi all, I have heard about support for serialization being discontinued in .Net Core 1.0 as it is not viable for cross-platform. (Paraphrasing from memory) What does this mean in practical terms? Are my code-bases that use BinaryFormatter's Serialize and Deserialize methods going to be completely deprecated, and I'll have to convert my codebase over to say, protobuf-net? Or have I misunderstood? Thanks, -Sam +6570 area-System.Net Fix race in several Sockets tests "These tests were comparing against some checksum values without waiting until those values were actually generated/stored. This change adds synchronization to ensure that the ""sender"" side of the test is done before validating the received data. A nice side benefit of this is that any assertions and cleanup in the sender will also complete before we return from the test case, keeping it better isolated from other tests. Fixes #5234 @CIPop " +6571 area-System.Data Null Argument Exception in AsyncTest.FailureTest on Linux System.Data.SqlClient.ManualTesting.Tests.AsyncTest.FailureTest [FAIL] System.AggregateException : One or more errors occurred. (Value cannot be null.) ---- System.ArgumentNullException : Value cannot be null. Stack Trace: at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout) at System.Data.SqlClient.ManualTesting.Tests.AsyncTest.FailureTest() +6573 area-System.ComponentModel Add missing members of System.ComponentModel namespace `System.ComponentModel` is a common dependency of applications developed for the .NET Framework. Porting these would be easier if more of the namespace were available in .NET Core. This issue proposes to add `System.ComponentModel` members with no designer, UI, or other unavailable dependencies. ## Proposed additions ``` diff --- .NET Core current +++ .NET Core proposed namespace System.ComponentModel { public class ArrayConverter : CollectionConverter { public ArrayConverter(); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); + public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes); + public override bool GetPropertiesSupported(ITypeDescriptorContext context); } public class AsyncCompletedEventArgs : EventArgs { public AsyncCompletedEventArgs(Exception error, bool cancelled, object userState); public bool Cancelled { get; } public Exception Error { get; } public object UserState { get; } protected void RaiseExceptionIfNecessary(); } public delegate void AsyncCompletedEventHandler(object sender, AsyncCompletedEventArgs e); public sealed class AsyncOperation { public SynchronizationContext SynchronizationContext { get; } public object UserSuppliedState { get; } ~AsyncOperation(); public void OperationCompleted(); public void Post(SendOrPostCallback d, object arg); public void PostOperationCompleted(SendOrPostCallback d, object arg); } public static class AsyncOperationManager { public static SynchronizationContext SynchronizationContext { get; set; } public static AsyncOperation CreateOperation(object userSuppliedState); } + public class AttributeCollection : ICollection, IEnumerable { + public static readonly AttributeCollection Empty; + protected AttributeCollection(); + public AttributeCollection(params Attribute[] attributes); + protected virtual Attribute[] Attributes { get; } + public int Count { get; } + bool System.Collections.ICollection.IsSynchronized { get; } + object System.Collections.ICollection.SyncRoot { get; } + public virtual Attribute this[int index] { get; } + public virtual Attribute this[Type attributeType] { get; } + public bool Contains(Attribute attribute); + public bool Contains(Attribute[] attributes); + public void CopyTo(Array array, int index); + public static AttributeCollection FromExisting(AttributeCollection existing, params Attribute[] newAttributes); + protected Attribute GetDefaultAttribute(Type attributeType); + public IEnumerator GetEnumerator(); + public bool Matches(Attribute attribute); + public bool Matches(Attribute[] attributes); } + public class AttributeProviderAttribute : Attribute { + public AttributeProviderAttribute(string typeName); + public AttributeProviderAttribute(string typeName, string propertyName); + public AttributeProviderAttribute(Type type); + public string PropertyName { get; } + public string TypeName { get; } } public class BackgroundWorker : IDisposable { public BackgroundWorker(); public bool CancellationPending { get; } public bool IsBusy { get; } public bool WorkerReportsProgress { get; set; } public bool WorkerSupportsCancellation { get; set; } public event DoWorkEventHandler DoWork; public event ProgressChangedEventHandler ProgressChanged; public event RunWorkerCompletedEventHandler RunWorkerCompleted; public void CancelAsync(); public void Dispose(); protected virtual void Dispose(bool disposing); protected virtual void OnDoWork(DoWorkEventArgs e); protected virtual void OnProgressChanged(ProgressChangedEventArgs e); protected virtual void OnRunWorkerCompleted(RunWorkerCompletedEventArgs e); public void ReportProgress(int percentProgress); public void ReportProgress(int percentProgress, object userState); public void RunWorkerAsync(); public void RunWorkerAsync(object argument); } public abstract class BaseNumberConverter : TypeConverter { protected BaseNumberConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type tdestinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } public class BooleanConverter : TypeConverter { public BooleanConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); + public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context); + public override bool GetStandardValuesExclusive(ITypeDescriptorContext context); + public override bool GetStandardValuesSupported(ITypeDescriptorContext context); } + public sealed class BrowsableAttribute : Attribute { + public static readonly BrowsableAttribute Default; + public static readonly BrowsableAttribute No; + public static readonly BrowsableAttribute Yes; + public BrowsableAttribute(bool browsable); + public bool Browsable { get; } + public override bool Equals(object obj); + public override int GetHashCode(); } public class ByteConverter : BaseNumberConverter { public ByteConverter(); } public class CancelEventArgs : EventArgs { public CancelEventArgs(); public CancelEventArgs(bool cancel); public bool Cancel { get; set; } } + public delegate void CancelEventHandler(object sender, CancelEventArgs e); + public class CategoryAttribute : Attribute { + public CategoryAttribute(); + public CategoryAttribute(string category); + public static CategoryAttribute Action { get; } + public static CategoryAttribute Appearance { get; } + public static CategoryAttribute Asynchronous { get; } + public static CategoryAttribute Behavior { get; } + public string Category { get; } + public static CategoryAttribute Data { get; } + public static CategoryAttribute Default { get; } + public static CategoryAttribute Design { get; } + public static CategoryAttribute DragDrop { get; } + public static CategoryAttribute Focus { get; } + public static CategoryAttribute Format { get; } + public static CategoryAttribute Key { get; } + public static CategoryAttribute Layout { get; } + public static CategoryAttribute Mouse { get; } + public static CategoryAttribute WindowStyle { get; } + public override bool Equals(object obj); + public override int GetHashCode(); + protected virtual string GetLocalizedString(string value); } public class CharConverter : TypeConverter { public CharConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } + public enum CollectionChangeAction { + Add = 1, + Refresh = 3, + Remove = 2, } + public class CollectionChangeEventArgs : EventArgs { + public CollectionChangeEventArgs(CollectionChangeAction action, object element); + public virtual CollectionChangeAction Action { get; } + public virtual object Element { get; } } + public delegate void CollectionChangeEventHandler(object sender, CollectionChangeEventArgs e); public class CollectionConverter : TypeConverter { public CollectionConverter(); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); + public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes); + public override bool GetPropertiesSupported(ITypeDescriptorContext context); } public class ComponentCollection { } + public abstract class CustomTypeDescriptor : ICustomTypeDescriptor { + protected CustomTypeDescriptor(); + protected CustomTypeDescriptor(ICustomTypeDescriptor parent); + public virtual AttributeCollection GetAttributes(); + public virtual string GetClassName(); + public virtual string GetComponentName(); + public virtual TypeConverter GetConverter(); + public virtual EventDescriptor GetDefaultEvent(); + public virtual PropertyDescriptor GetDefaultProperty(); + public virtual object GetEditor(Type editorBaseType); + public virtual EventDescriptorCollection GetEvents(); + public virtual EventDescriptorCollection GetEvents(Attribute[] attributes); + public virtual PropertyDescriptorCollection GetProperties(); + public virtual PropertyDescriptorCollection GetProperties(Attribute[] attributes); + public virtual object GetPropertyOwner(PropertyDescriptor pd); } public class DataErrorsChangedEventArgs : EventArgs { public DataErrorsChangedEventArgs(string propertyName); public virtual string PropertyName { get; } } public class DateTimeConverter : TypeConverter { public DateTimeConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } public class DateTimeOffsetConverter : TypeConverter { public DateTimeOffsetConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } public class DecimalConverter : BaseNumberConverter { public DecimalConverter(); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } + public sealed class DefaultEventAttribute : Attribute { + public static readonly DefaultEventAttribute Default; + public DefaultEventAttribute(string name); + public string Name { get; } + public override bool Equals(object obj); + public override int GetHashCode(); } + public sealed class DefaultPropertyAttribute : Attribute { + public static readonly DefaultPropertyAttribute Default; + public DefaultPropertyAttribute(string name); + public string Name { get; } + public override bool Equals(object obj); + public override int GetHashCode(); } public class DefaultValueAttribute : Attribute { public DefaultValueAttribute(bool value); public DefaultValueAttribute(byte value); public DefaultValueAttribute(char value); public DefaultValueAttribute(double value); public DefaultValueAttribute(short value); public DefaultValueAttribute(int value); public DefaultValueAttribute(long value); public DefaultValueAttribute(object value); public DefaultValueAttribute(float value); public DefaultValueAttribute(string value); public DefaultValueAttribute(Type type, string value); public virtual object Value { get; } public override bool Equals(object obj); public override int GetHashCode(); } + public class DescriptionAttribute : Attribute { + public static readonly DescriptionAttribute Default; + public DescriptionAttribute(); + public DescriptionAttribute(string description); + public virtual string Description { get; } + protected string DescriptionValue { get; set; } + public override bool Equals(object obj); + public override int GetHashCode(); } + public sealed class DesignerCategoryAttribute : Attribute { + public static readonly DesignerCategoryAttribute Component; + public static readonly DesignerCategoryAttribute Default; + public static readonly DesignerCategoryAttribute Form; + public static readonly DesignerCategoryAttribute Generic; + public DesignerCategoryAttribute(); + public DesignerCategoryAttribute(string category); + public string Category { get; } + public override bool Equals(object obj); + public override int GetHashCode(); } + public enum DesignerSerializationVisibility { + Content = 2, + Hidden = 0, + Visible = 1, } + public sealed class DesignerSerializationVisibilityAttribute : Attribute { + public static readonly DesignerSerializationVisibilityAttribute Content; + public static readonly DesignerSerializationVisibilityAttribute Default; + public static readonly DesignerSerializationVisibilityAttribute Hidden; + public static readonly DesignerSerializationVisibilityAttribute Visible; + public DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility visibility); + public DesignerSerializationVisibility Visibility { get; } + public override bool Equals(object obj); + public override int GetHashCode(); } + public class DesignOnlyAttribute : Attribute { + public static readonly DesignOnlyAttribute Default; + public static readonly DesignOnlyAttribute No; + public static readonly DesignOnlyAttribute Yes; + public DesignOnlyAttribute(bool isDesignOnly); + public bool IsDesignOnly { get; } + public override bool Equals(object obj); + public override int GetHashCode(); } + public class DisplayNameAttribute : Attribute { + public static readonly DisplayNameAttribute Default; + public DisplayNameAttribute(); + public DisplayNameAttribute(string displayName); + public virtual string DisplayName { get; } + protected string DisplayNameValue { get; set; } + public override bool Equals(object obj); + public override int GetHashCode(); } public class DoubleConverter : BaseNumberConverter { public DoubleConverter(); } public class DoWorkEventArgs : EventArgs { public DoWorkEventArgs(object argument); public object Argument { get; } public bool Cancel { get; set; } public object Result { get; set; } } public delegate void DoWorkEventHandler(object sender, DoWorkEventArgs e); public sealed class EditorBrowsableAttribute : Attribute { public EditorBrowsableAttribute(EditorBrowsableState state); public EditorBrowsableState State { get; } public override bool Equals(object obj); public override int GetHashCode(); } public enum EditorBrowsableState { Advanced = 2, Always = 0, Never = 1, } public class EnumConverter : TypeConverter { public EnumConverter(Type type); + protected virtual IComparer Comparer { get; } protected Type EnumType { get; } + protected TypeConverter.StandardValuesCollection Values { get; set; } public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); + public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context); + public override bool GetStandardValuesExclusive(ITypeDescriptorContext context); + public override bool GetStandardValuesSupported(ITypeDescriptorContext context); + public override bool IsValid(ITypeDescriptorContext context, object value); } + public abstract class EventDescriptor : MemberDescriptor { + protected EventDescriptor(MemberDescriptor descr); + protected EventDescriptor(MemberDescriptor descr, Attribute[] attrs); + protected EventDescriptor(string name, Attribute[] attrs); + public abstract Type ComponentType { get; } + public abstract Type EventType { get; } + public abstract bool IsMulticast { get; } + public abstract void AddEventHandler(object component, Delegate value); + public abstract void RemoveEventHandler(object component, Delegate value); } + public class EventDescriptorCollection : ICollection, IEnumerable, IList { + public static readonly EventDescriptorCollection Empty; + public EventDescriptorCollection(EventDescriptor[] events); + public EventDescriptorCollection(EventDescriptor[] events, bool readOnly); + public int Count { get; } + bool System.Collections.ICollection.IsSynchronized { get; } + object System.Collections.ICollection.SyncRoot { get; } + bool System.Collections.IList.IsFixedSize { get; } + bool System.Collections.IList.IsReadOnly { get; } + object System.Collections.IList.this[int index] { get; set; } + public virtual EventDescriptor this[int index] { get; } + public virtual EventDescriptor this[string name] { get; } + public int Add(EventDescriptor value); + public void Clear(); + public bool Contains(EventDescriptor value); + public virtual EventDescriptor Find(string name, bool ignoreCase); + public IEnumerator GetEnumerator(); + public int IndexOf(EventDescriptor value); + public void Insert(int index, EventDescriptor value); + protected void InternalSort(IComparer sorter); + protected void InternalSort(string[] names); + public void Remove(EventDescriptor value); + public void RemoveAt(int index); + public virtual EventDescriptorCollection Sort(); + public virtual EventDescriptorCollection Sort(IComparer comparer); + public virtual EventDescriptorCollection Sort(string[] names); + public virtual EventDescriptorCollection Sort(string[] names, IComparer comparer); + void System.Collections.ICollection.CopyTo(Array array, int index); + int System.Collections.IList.Add(object value); + bool System.Collections.IList.Contains(object value); + int System.Collections.IList.IndexOf(object value); + void System.Collections.IList.Insert(int index, object value); + void System.Collections.IList.Remove(object value); } + public sealed class EventHandlerList : IDisposable { + public EventHandlerList(); + public Delegate this[object key] { get; set; } + public void AddHandler(object key, Delegate value); + public void AddHandlers(EventHandlerList listToAddFrom); + public void Dispose(); + public void RemoveHandler(object key, Delegate value); } + public sealed class ExtenderProvidedPropertyAttribute : Attribute { + public ExtenderProvidedPropertyAttribute(); + public PropertyDescriptor ExtenderProperty { get; } + public IExtenderProvider Provider { get; } + public Type ReceiverType { get; } + public override bool Equals(object obj); + public override int GetHashCode(); } public class GuidConverter : TypeConverter { public GuidConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } + public class HandledEventArgs : EventArgs { + public HandledEventArgs(); + public HandledEventArgs(bool defaultHandledValue); + public bool Handled { get; set; } } + public delegate void HandledEventHandler(object sender, HandledEventArgs e); public interface IChangeTracking { bool IsChanged { get; } void AcceptChanges(); } public interface IComponent : IDisposable { ISite Site { get; set; } event EventHandler Disposed; } public interface IContainer : IDisposable { ComponentCollection Components { get; } void Add(IComponent component); void Add(IComponent component, string name); void Remove(IComponent component); } + public interface ICustomTypeDescriptor { + AttributeCollection GetAttributes(); + string GetClassName(); + string GetComponentName(); + TypeConverter GetConverter(); + EventDescriptor GetDefaultEvent(); + PropertyDescriptor GetDefaultProperty(); + object GetEditor(Type editorBaseType); + EventDescriptorCollection GetEvents(); + EventDescriptorCollection GetEvents(Attribute[] attributes); + PropertyDescriptorCollection GetProperties(); + PropertyDescriptorCollection GetProperties(Attribute[] attributes); + object GetPropertyOwner(PropertyDescriptor pd); } public interface IEditableObject { void BeginEdit(); void CancelEdit(); void EndEdit(); } + public interface IExtenderProvider { + bool CanExtend(object extendee); } + public interface IListSource { + bool ContainsListCollection { get; } + IList GetList(); } + public sealed class ImmutableObjectAttribute : Attribute { + public static readonly ImmutableObjectAttribute Default; + public static readonly ImmutableObjectAttribute No; + public static readonly ImmutableObjectAttribute Yes; + public ImmutableObjectAttribute(bool immutable); + public bool Immutable { get; } + public override bool Equals(object obj); + public override int GetHashCode(); } + public sealed class InitializationEventAttribute : Attribute { + public InitializationEventAttribute(string eventName); + public string EventName { get; } } public interface INotifyDataErrorInfo { bool HasErrors { get; } event EventHandler ErrorsChanged; IEnumerable GetErrors(string propertyName); } public interface INotifyPropertyChanged { event PropertyChangedEventHandler PropertyChanged; } public interface INotifyPropertyChanging { event PropertyChangingEventHandler PropertyChanging; } public class Int16Converter : BaseNumberConverter { public Int16Converter(); } public class Int32Converter : BaseNumberConverter { public Int32Converter(); } public class Int64Converter : BaseNumberConverter { public Int64Converter(); } + public class InvalidAsynchronousStateException : ArgumentException { + public InvalidAsynchronousStateException(); + public InvalidAsynchronousStateException(string message); + public InvalidAsynchronousStateException(string message, Exception innerException); } public interface IRevertibleChangeTracking : IChangeTracking { void RejectChanges(); } public interface ISite : IServiceProvider { IComponent Component { get; } IContainer Container { get; } bool DesignMode { get; } string Name { get; set; } } public interface ITypeDescriptorContext : IServiceProvider { IContainer Container { get; } object Instance { get; } PropertyDescriptor PropertyDescriptor { get; } void OnComponentChanged(); bool OnComponentChanging(); } + public interface ITypedList { + PropertyDescriptorCollection GetItemProperties(PropertyDescriptor[] listAccessors); + string GetListName(PropertyDescriptor[] listAccessors); } + public sealed class LocalizableAttribute : Attribute { + public static readonly LocalizableAttribute Default; + public static readonly LocalizableAttribute No; + public static readonly LocalizableAttribute Yes; + public LocalizableAttribute(bool isLocalizable); + public bool IsLocalizable { get; } + public override bool Equals(object obj); + public override int GetHashCode(); } + public abstract class MemberDescriptor { + protected MemberDescriptor(MemberDescriptor descr); + protected MemberDescriptor(MemberDescriptor oldMemberDescriptor, Attribute[] newAttributes); + protected MemberDescriptor(string name); + protected MemberDescriptor(string name, Attribute[] attributes); + protected virtual Attribute[] AttributeArray { get; set; } + public virtual AttributeCollection Attributes { get; } + public virtual string Category { get; } + public virtual string Description { get; } + public virtual bool DesignTimeOnly { get; } + public virtual string DisplayName { get; } + public virtual bool IsBrowsable { get; } + public virtual string Name { get; } + protected virtual int NameHashCode { get; } + protected virtual AttributeCollection CreateAttributeCollection(); + public override bool Equals(object obj); + protected virtual void FillAttributes(IList attributeList); + protected static MethodInfo FindMethod(Type componentClass, string name, Type[] args, Type returnType); + protected static MethodInfo FindMethod(Type componentClass, string name, Type[] args, Type returnType, bool publicOnly); + public override int GetHashCode(); + protected virtual object GetInvocationTarget(Type type, object instance); + protected static ISite GetSite(object component); } + public sealed class MergablePropertyAttribute : Attribute { + public static readonly MergablePropertyAttribute Default; + public static readonly MergablePropertyAttribute No; + public static readonly MergablePropertyAttribute Yes; + public MergablePropertyAttribute(bool allowMerge); + public bool AllowMerge { get; } + public override bool Equals(object obj); + public override int GetHashCode(); } public class MultilineStringConverter : TypeConverter { public MultilineStringConverter(); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); + public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes); + public override bool GetPropertiesSupported(ITypeDescriptorContext context); } + public sealed class NotifyParentPropertyAttribute : Attribute { + public static readonly NotifyParentPropertyAttribute Default; + public static readonly NotifyParentPropertyAttribute No; + public static readonly NotifyParentPropertyAttribute Yes; + public NotifyParentPropertyAttribute(bool notifyParent); + public bool NotifyParent { get; } + public override bool Equals(object obj); + public override int GetHashCode(); } public class NullableConverter : TypeConverter { public NullableConverter(Type type); public Type NullableType { get; } public Type UnderlyingType { get; } public TypeConverter UnderlyingTypeConverter { get; } public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); + public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues); + public override bool GetCreateInstanceSupported(ITypeDescriptorContext context); + public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes); + public override bool GetPropertiesSupported(ITypeDescriptorContext context); + public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context); + public override bool GetStandardValuesExclusive(ITypeDescriptorContext context); + public override bool GetStandardValuesSupported(ITypeDescriptorContext context); + public override bool IsValid(ITypeDescriptorContext context, object value); } + public sealed class ParenthesizePropertyNameAttribute : Attribute { + public static readonly ParenthesizePropertyNameAttribute Default; + public ParenthesizePropertyNameAttribute(); + public ParenthesizePropertyNameAttribute(bool needParenthesis); + public bool NeedParenthesis { get; } + public override bool Equals(object o); + public override int GetHashCode(); } public class ProgressChangedEventArgs : EventArgs { public ProgressChangedEventArgs(int progressPercentage, object userState); public int ProgressPercentage { get; } public object UserState { get; } } public delegate void ProgressChangedEventHandler(object sender, ProgressChangedEventArgs e); public class PropertyChangedEventArgs : EventArgs { public PropertyChangedEventArgs(string propertyName); public virtual string PropertyName { get; } } public delegate void PropertyChangedEventHandler(object sender, PropertyChangedEventArgs e); public class PropertyChangingEventArgs : EventArgs { public PropertyChangingEventArgs(string propertyName); public virtual string PropertyName { get; } } public delegate void PropertyChangingEventHandler(object sender, PropertyChangingEventArgs e); public abstract class PropertyDescriptor : MemberDescriptor { + protected PropertyDescriptor(MemberDescriptor descr); + protected PropertyDescriptor(MemberDescriptor descr, Attribute[] attrs); + protected PropertyDescriptor(string name, Attribute[] attrs); + public abstract Type ComponentType { get; } + public virtual TypeConverter Converter { get; } + public virtual bool IsLocalizable { get; } + public abstract bool IsReadOnly { get; } + public abstract Type PropertyType { get; } + public DesignerSerializationVisibility SerializationVisibility { get; } + public virtual bool SupportsChangeEvents { get; } + public virtual void AddValueChanged(object component, EventHandler handler); + public abstract bool CanResetValue(object component); + protected object CreateInstance(Type type); + public override bool Equals(object obj); + protected override void FillAttributes(IList attributeList); + public PropertyDescriptorCollection GetChildProperties(); + public PropertyDescriptorCollection GetChildProperties(Attribute[] filter); + public PropertyDescriptorCollection GetChildProperties(object instance); + public virtual PropertyDescriptorCollection GetChildProperties(object instance, Attribute[] filter); + public virtual object GetEditor(Type editorBaseType); + public override int GetHashCode(); + protected override object GetInvocationTarget(Type type, object instance); + protected Type GetTypeFromName(string typeName); + public abstract object GetValue(object component); + protected internal EventHandler GetValueChangedHandler(object component); + protected virtual void OnValueChanged(object component, EventArgs e); + public virtual void RemoveValueChanged(object component, EventHandler handler); + public abstract void ResetValue(object component); + public abstract void SetValue(object component, object value); + public abstract bool ShouldSerializeValue(object component); } + public class PropertyDescriptorCollection : ICollection, IDictionary, IEnumerable, IList { + public static readonly PropertyDescriptorCollection Empty; + public PropertyDescriptorCollection(PropertyDescriptor[] properties); + public PropertyDescriptorCollection(PropertyDescriptor[] properties, bool readOnly); + public int Count { get; } + bool System.Collections.ICollection.IsSynchronized { get; } + object System.Collections.ICollection.SyncRoot { get; } + bool System.Collections.IDictionary.IsFixedSize { get; } + bool System.Collections.IDictionary.IsReadOnly { get; } + object System.Collections.IDictionary.this[object key] { get; set; } + ICollection System.Collections.IDictionary.Keys { get; } + ICollection System.Collections.IDictionary.Values { get; } + bool System.Collections.IList.IsFixedSize { get; } + bool System.Collections.IList.IsReadOnly { get; } + object System.Collections.IList.this[int index] { get; set; } + public virtual PropertyDescriptor this[int index] { get; } + public virtual PropertyDescriptor this[string name] { get; } + public int Add(PropertyDescriptor value); + public void Clear(); + public bool Contains(PropertyDescriptor value); + public void CopyTo(Array array, int index); + public virtual PropertyDescriptor Find(string name, bool ignoreCase); + public virtual IEnumerator GetEnumerator(); + public int IndexOf(PropertyDescriptor value); + public void Insert(int index, PropertyDescriptor value); + protected void InternalSort(IComparer sorter); + protected void InternalSort(string[] names); + public void Remove(PropertyDescriptor value); + public void RemoveAt(int index); + public virtual PropertyDescriptorCollection Sort(); + public virtual PropertyDescriptorCollection Sort(IComparer comparer); + public virtual PropertyDescriptorCollection Sort(string[] names); + public virtual PropertyDescriptorCollection Sort(string[] names, IComparer comparer); + void System.Collections.IDictionary.Add(object key, object value); + bool System.Collections.IDictionary.Contains(object key); + IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator(); + void System.Collections.IDictionary.Remove(object key); + int System.Collections.IList.Add(object value); + bool System.Collections.IList.Contains(object value); + int System.Collections.IList.IndexOf(object value); + void System.Collections.IList.Insert(int index, object value); + void System.Collections.IList.Remove(object value); } + public sealed class ProvidePropertyAttribute : Attribute { + public ProvidePropertyAttribute(string propertyName, string receiverTypeName); + public ProvidePropertyAttribute(string propertyName, Type receiverType); + public string PropertyName { get; } + public string ReceiverTypeName { get; } + public override bool Equals(object obj); + public override int GetHashCode(); } + public sealed class ReadOnlyAttribute : Attribute { + public static readonly ReadOnlyAttribute Default; + public static readonly ReadOnlyAttribute No; + public static readonly ReadOnlyAttribute Yes; + public ReadOnlyAttribute(bool isReadOnly); + public bool IsReadOnly { get; } + public override bool Equals(object value); + public override int GetHashCode(); } + public class RefreshEventArgs : EventArgs { + public RefreshEventArgs(object componentChanged); + public RefreshEventArgs(Type typeChanged); + public object ComponentChanged { get; } + public Type TypeChanged { get; } } + public delegate void RefreshEventHandler(RefreshEventArgs e); + public enum RefreshProperties { + All = 1, + None = 0, + Repaint = 2, } + public sealed class RefreshPropertiesAttribute : Attribute { + public static readonly RefreshPropertiesAttribute All; + public static readonly RefreshPropertiesAttribute Default; + public static readonly RefreshPropertiesAttribute Repaint; + public RefreshPropertiesAttribute(RefreshProperties refresh); + public RefreshProperties RefreshProperties { get; } + public override bool Equals(object value); + public override int GetHashCode(); } public class RunWorkerCompletedEventArgs : AsyncCompletedEventArgs { public RunWorkerCompletedEventArgs(object result, Exception error, bool cancelled); public object Result { get; } public new object UserState { get; } } public delegate void RunWorkerCompletedEventHandler(object sender, RunWorkerCompletedEventArgs e); public class SByteConverter : BaseNumberConverter { public SByteConverter(); } public class SingleConverter : BaseNumberConverter { public SingleConverter(); } public class StringConverter : TypeConverter { public StringConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); } public class TimeSpanConverter : TypeConverter { public TimeSpanConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } public class TypeConverter { public TypeConverter(); public virtual bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public bool CanConvertFrom(Type sourceType); public virtual bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public bool CanConvertTo(Type destinationType); public virtual object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public object ConvertFrom(object value); + public object ConvertFromInvariantString(ITypeDescriptorContext context, string text); public object ConvertFromInvariantString(string text); public object ConvertFromString(ITypeDescriptorContext context, CultureInfo culture, string text); + public object ConvertFromString(ITypeDescriptorContext context, string text); public object ConvertFromString(string text); public virtual object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); public object ConvertTo(object value, Type destinationType); + public string ConvertToInvariantString(ITypeDescriptorContext context, object value); public string ConvertToInvariantString(object value); public string ConvertToString(ITypeDescriptorContext context, CultureInfo culture, object value); + public string ConvertToString(ITypeDescriptorContext context, object value); public string ConvertToString(object value); + public object CreateInstance(IDictionary propertyValues); + public virtual object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues); protected Exception GetConvertFromException(object value); protected Exception GetConvertToException(object value, Type destinationType); + public bool GetCreateInstanceSupported(); + public virtual bool GetCreateInstanceSupported(ITypeDescriptorContext context); + public PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value); + public virtual PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes); + public PropertyDescriptorCollection GetProperties(object value); + public bool GetPropertiesSupported(); + public virtual bool GetPropertiesSupported(ITypeDescriptorContext context); + public ICollection GetStandardValues(); + public virtual TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context); + public bool GetStandardValuesExclusive(); + public virtual bool GetStandardValuesExclusive(ITypeDescriptorContext context); + public bool GetStandardValuesSupported(); + public virtual bool GetStandardValuesSupported(ITypeDescriptorContext context); + public virtual bool IsValid(ITypeDescriptorContext context, object value); + public bool IsValid(object value); + protected PropertyDescriptorCollection SortProperties(PropertyDescriptorCollection props, string[] names); + protected abstract class SimplePropertyDescriptor : PropertyDescriptor { + protected SimplePropertyDescriptor(Type componentType, string name, Type propertyType); + protected SimplePropertyDescriptor(Type componentType, string name, Type propertyType, Attribute[] attributes); + public override Type ComponentType { get; } + public override bool IsReadOnly { get; } + public override Type PropertyType { get; } + public override bool CanResetValue(object component); + public override void ResetValue(object component); + public override bool ShouldSerializeValue(object component); } + public class StandardValuesCollection : ICollection, IEnumerable { + public StandardValuesCollection(ICollection values); + public int Count { get; } + bool System.Collections.ICollection.IsSynchronized { get; } + object System.Collections.ICollection.SyncRoot { get; } + public object this[int index] { get; } + public void CopyTo(Array array, int index); + public IEnumerator GetEnumerator(); } } public sealed class TypeConverterAttribute : Attribute { + public static readonly TypeConverterAttribute Default; + public TypeConverterAttribute(); public TypeConverterAttribute(string typeName); public TypeConverterAttribute(Type type); public string ConverterTypeName { get; } public override bool Equals(object obj); public override int GetHashCode(); } + public abstract class TypeDescriptionProvider { + protected TypeDescriptionProvider(); + protected TypeDescriptionProvider(TypeDescriptionProvider parent); + public virtual object CreateInstance(IServiceProvider provider, Type objectType, Type[] argTypes, object[] args); + public virtual IDictionary GetCache(object instance); + public virtual ICustomTypeDescriptor GetExtendedTypeDescriptor(object instance); + protected internal virtual IExtenderProvider[] GetExtenderProviders(object instance); + public virtual string GetFullComponentName(object component); + public Type GetReflectionType(object instance); + public Type GetReflectionType(Type objectType); + public virtual Type GetReflectionType(Type objectType, object instance); + public virtual Type GetRuntimeType(Type reflectionType); + public ICustomTypeDescriptor GetTypeDescriptor(object instance); + public ICustomTypeDescriptor GetTypeDescriptor(Type objectType); + public virtual ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance); + public virtual bool IsSupportedType(Type type); } + public sealed class TypeDescriptionProviderAttribute : Attribute { + public TypeDescriptionProviderAttribute(string typeName); + public TypeDescriptionProviderAttribute(Type type); + public string TypeName { get; } } public sealed class TypeDescriptor { + public static Type InterfaceType { get; } + public static event RefreshEventHandler Refreshed; + public static TypeDescriptionProvider AddAttributes(object instance, params Attribute[] attributes); + public static TypeDescriptionProvider AddAttributes(Type type, params Attribute[] attributes); + public static void AddEditorTable(Type editorBaseType, Hashtable table); + public static void AddProvider(TypeDescriptionProvider provider, object instance); + public static void AddProvider(TypeDescriptionProvider provider, Type type); + public static void AddProviderTransparent(TypeDescriptionProvider provider, object instance); + public static void AddProviderTransparent(TypeDescriptionProvider provider, Type type); + public static void CreateAssociation(object primary, object secondary); + public static EventDescriptor CreateEvent(Type componentType, EventDescriptor oldEventDescriptor, params Attribute[] attributes); + public static EventDescriptor CreateEvent(Type componentType, string name, Type type, params Attribute[] attributes); + public static object CreateInstance(IServiceProvider provider, Type objectType, Type[] argTypes, object[] args); + public static PropertyDescriptor CreateProperty(Type componentType, PropertyDescriptor oldPropertyDescriptor, params Attribute[] attributes); + public static PropertyDescriptor CreateProperty(Type componentType, string name, Type type, params Attribute[] attributes); + public static object GetAssociation(Type type, object primary); + public static AttributeCollection GetAttributes(object component); + public static AttributeCollection GetAttributes(object component, bool noCustomTypeDesc); + public static AttributeCollection GetAttributes(Type componentType); + public static string GetClassName(object component); + public static string GetClassName(object component, bool noCustomTypeDesc); + public static string GetClassName(Type componentType); + public static string GetComponentName(object component); + public static string GetComponentName(object component, bool noCustomTypeDesc); + public static TypeConverter GetConverter(object component); + public static TypeConverter GetConverter(object component, bool noCustomTypeDesc); public static TypeConverter GetConverter(Type type); + public static EventDescriptor GetDefaultEvent(object component); + public static EventDescriptor GetDefaultEvent(object component, bool noCustomTypeDesc); + public static EventDescriptor GetDefaultEvent(Type componentType); + public static PropertyDescriptor GetDefaultProperty(object component); + public static PropertyDescriptor GetDefaultProperty(object component, bool noCustomTypeDesc); + public static PropertyDescriptor GetDefaultProperty(Type componentType); + public static object GetEditor(object component, Type editorBaseType); + public static object GetEditor(object component, Type editorBaseType, bool noCustomTypeDesc); + public static object GetEditor(Type type, Type editorBaseType); + public static EventDescriptorCollection GetEvents(object component); + public static EventDescriptorCollection GetEvents(object component, Attribute[] attributes); + public static EventDescriptorCollection GetEvents(object component, Attribute[] attributes, bool noCustomTypeDesc); + public static EventDescriptorCollection GetEvents(object component, bool noCustomTypeDesc); + public static EventDescriptorCollection GetEvents(Type componentType); + public static EventDescriptorCollection GetEvents(Type componentType, Attribute[] attributes); + public static string GetFullComponentName(object component); + public static PropertyDescriptorCollection GetProperties(object component); + public static PropertyDescriptorCollection GetProperties(object component, Attribute[] attributes); + public static PropertyDescriptorCollection GetProperties(object component, Attribute[] attributes, bool noCustomTypeDesc); + public static PropertyDescriptorCollection GetProperties(object component, bool noCustomTypeDesc); + public static PropertyDescriptorCollection GetProperties(Type componentType); + public static PropertyDescriptorCollection GetProperties(Type componentType, Attribute[] attributes); + public static TypeDescriptionProvider GetProvider(object instance); + public static TypeDescriptionProvider GetProvider(Type type); + public static Type GetReflectionType(object instance); + public static Type GetReflectionType(Type type); + public static void Refresh(object component); + public static void Refresh(Assembly assembly); + public static void Refresh(Module module); + public static void Refresh(Type type); + public static void RemoveAssociation(object primary, object secondary); + public static void RemoveAssociations(object primary); + public static void RemoveProvider(TypeDescriptionProvider provider, object instance); + public static void RemoveProvider(TypeDescriptionProvider provider, Type type); + public static void RemoveProviderTransparent(TypeDescriptionProvider provider, object instance); + public static void RemoveProviderTransparent(TypeDescriptionProvider provider, Type type); + public static void SortDescriptorArray(IList infos); } public abstract class TypeListConverter : TypeConverter { protected TypeListConverter(Type[] types); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); + public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context); + public override bool GetStandardValuesExclusive(ITypeDescriptorContext context); + public override bool GetStandardValuesSupported(ITypeDescriptorContext context); } public class UInt16Converter : BaseNumberConverter { public UInt16Converter(); } public class UInt32Converter : BaseNumberConverter { public UInt32Converter(); } public class UInt64Converter : BaseNumberConverter { public UInt64Converter(); } public class Win32Exception : Exception { public Win32Exception(); public Win32Exception(int error); public Win32Exception(int error, string message); public Win32Exception(string message); public Win32Exception(string message, Exception innerException); public int NativeErrorCode { get; } } } ``` ## .NET Framework vs .NET Core proposed ``` diff --- .NET Framework 4.6.1 +++ .NET Core proposed namespace System.ComponentModel { - public class AddingNewEventArgs : EventArgs { - public AddingNewEventArgs(); - public AddingNewEventArgs(object newObject); - public object NewObject { get; set; } } - public delegate void AddingNewEventHandler(object sender, AddingNewEventArgs e); - public sealed class AmbientValueAttribute : Attribute { - public AmbientValueAttribute(bool value); - public AmbientValueAttribute(byte value); - public AmbientValueAttribute(char value); - public AmbientValueAttribute(double value); - public AmbientValueAttribute(short value); - public AmbientValueAttribute(int value); - public AmbientValueAttribute(long value); - public AmbientValueAttribute(object value); - public AmbientValueAttribute(float value); - public AmbientValueAttribute(string value); - public AmbientValueAttribute(Type type, string value); - public object Value { get; } - public override bool Equals(object obj); - public override int GetHashCode(); } public class ArrayConverter : CollectionConverter { public ArrayConverter(); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes); public override bool GetPropertiesSupported(ITypeDescriptorContext context); } public class AsyncCompletedEventArgs : EventArgs { - public AsyncCompletedEventArgs(); public AsyncCompletedEventArgs(Exception error, bool cancelled, object userState); public bool Cancelled { get; } public Exception Error { get; } public object UserState { get; } protected void RaiseExceptionIfNecessary(); } public delegate void AsyncCompletedEventHandler(object sender, AsyncCompletedEventArgs e); public sealed class AsyncOperation { public SynchronizationContext SynchronizationContext { get; } public object UserSuppliedState { get; } ~AsyncOperation(); public void OperationCompleted(); public void Post(SendOrPostCallback d, object arg); public void PostOperationCompleted(SendOrPostCallback d, object arg); } public static class AsyncOperationManager { public static SynchronizationContext SynchronizationContext { get; set; } public static AsyncOperation CreateOperation(object userSuppliedState); } public class AttributeCollection : ICollection, IEnumerable { public static readonly AttributeCollection Empty; protected AttributeCollection(); public AttributeCollection(params Attribute[] attributes); protected virtual Attribute[] Attributes { get; } public int Count { get; } - int System.Collections.ICollection.Count { get; } bool System.Collections.ICollection.IsSynchronized { get; } object System.Collections.ICollection.SyncRoot { get; } public virtual Attribute this[int index] { get; } public virtual Attribute this[Type attributeType] { get; } public bool Contains(Attribute attribute); public bool Contains(Attribute[] attributes); public void CopyTo(Array array, int index); public static AttributeCollection FromExisting(AttributeCollection existing, params Attribute[] newAttributes); protected Attribute GetDefaultAttribute(Type attributeType); public IEnumerator GetEnumerator(); public bool Matches(Attribute attribute); public bool Matches(Attribute[] attributes); - IEnumerator System.Collections.IEnumerable.GetEnumerator(); } public class AttributeProviderAttribute : Attribute { public AttributeProviderAttribute(string typeName); public AttributeProviderAttribute(string typeName, string propertyName); public AttributeProviderAttribute(Type type); public string PropertyName { get; } public string TypeName { get; } } public class BackgroundWorker : ComponentIDisposable { public BackgroundWorker(); public bool CancellationPending { get; } public bool IsBusy { get; } public bool WorkerReportsProgress { get; set; } public bool WorkerSupportsCancellation { get; set; } public event DoWorkEventHandler DoWork; public event ProgressChangedEventHandler ProgressChanged; public event RunWorkerCompletedEventHandler RunWorkerCompleted; public void CancelAsync(); + public void Dispose(); + protected virtual void Dispose(bool disposing); protected virtual void OnDoWork(DoWorkEventArgs e); protected virtual void OnProgressChanged(ProgressChangedEventArgs e); protected virtual void OnRunWorkerCompleted(RunWorkerCompletedEventArgs e); public void ReportProgress(int percentProgress); public void ReportProgress(int percentProgress, object userState); public void RunWorkerAsync(); public void RunWorkerAsync(object argument); } public abstract class BaseNumberConverter : TypeConverter { protected BaseNumberConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type tdestinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } - public sealed class BindableAttribute : Attribute { - public static readonly BindableAttribute Default; - public static readonly BindableAttribute No; - public static readonly BindableAttribute Yes; - public BindableAttribute(bool bindable); - public BindableAttribute(bool bindable, BindingDirection direction); - public BindableAttribute(BindableSupport flags); - public BindableAttribute(BindableSupport flags, BindingDirection direction); - public bool Bindable { get; } - public BindingDirection Direction { get; } - public override bool Equals(object obj); - public override int GetHashCode(); - public override bool IsDefaultAttribute(); } - public enum BindableSupport { - Default = 2, - No = 0, - Yes = 1, } - public enum BindingDirection { - OneWay = 0, - TwoWay = 1, } - public class BindingList : Collection, IBindingList, ICancelAddNew, ICollection, IEnumerable, IList, IRaiseItemChangedEvents { - public BindingList(); - public BindingList(IList list); - public bool AllowEdit { get; set; } - public bool AllowNew { get; set; } - public bool AllowRemove { get; set; } - protected virtual bool IsSortedCore { get; } - public bool RaiseListChangedEvents { get; set; } - protected virtual ListSortDirection SortDirectionCore { get; } - protected virtual PropertyDescriptor SortPropertyCore { get; } - protected virtual bool SupportsChangeNotificationCore { get; } - protected virtual bool SupportsSearchingCore { get; } - protected virtual bool SupportsSortingCore { get; } - bool System.ComponentModel.IBindingList.AllowEdit { get; } - bool System.ComponentModel.IBindingList.AllowNew { get; } - bool System.ComponentModel.IBindingList.AllowRemove { get; } - bool System.ComponentModel.IBindingList.IsSorted { get; } - ListSortDirection System.ComponentModel.IBindingList.SortDirection { get; } - PropertyDescriptor System.ComponentModel.IBindingList.SortProperty { get; } - bool System.ComponentModel.IBindingList.SupportsChangeNotification { get; } - bool System.ComponentModel.IBindingList.SupportsSearching { get; } - bool System.ComponentModel.IBindingList.SupportsSorting { get; } - bool System.ComponentModel.IRaiseItemChangedEvents.RaisesItemChangedEvents { get; } - public event AddingNewEventHandler AddingNew; - public event ListChangedEventHandler ListChanged; - public T AddNew(); - protected virtual object AddNewCore(); - protected virtual void ApplySortCore(PropertyDescriptor prop, ListSortDirection direction); - public virtual void CancelNew(int itemIndex); - protected override void ClearItems(); - public virtual void EndNew(int itemIndex); - protected virtual int FindCore(PropertyDescriptor prop, object key); - protected override void InsertItem(int index, T item); - protected virtual void OnAddingNew(AddingNewEventArgs e); - protected virtual void OnListChanged(ListChangedEventArgs e); - protected override void RemoveItem(int index); - protected virtual void RemoveSortCore(); - public void ResetBindings(); - public void ResetItem(int position); - protected override void SetItem(int index, T item); - void System.ComponentModel.IBindingList.AddIndex(PropertyDescriptor prop); - object System.ComponentModel.IBindingList.AddNew(); - void System.ComponentModel.IBindingList.ApplySort(PropertyDescriptor prop, ListSortDirection direction); - int System.ComponentModel.IBindingList.Find(PropertyDescriptor prop, object key); - void System.ComponentModel.IBindingList.RemoveIndex(PropertyDescriptor prop); - void System.ComponentModel.IBindingList.RemoveSort(); } public class BooleanConverter : TypeConverter { public BooleanConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context); public override bool GetStandardValuesExclusive(ITypeDescriptorContext context); public override bool GetStandardValuesSupported(ITypeDescriptorContext context); } public sealed class BrowsableAttribute : Attribute { public static readonly BrowsableAttribute Default; public static readonly BrowsableAttribute No; public static readonly BrowsableAttribute Yes; public BrowsableAttribute(bool browsable); public bool Browsable { get; } public override bool Equals(object obj); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } public class ByteConverter : BaseNumberConverter { public ByteConverter(); } public class CancelEventArgs : EventArgs { public CancelEventArgs(); public CancelEventArgs(bool cancel); public bool Cancel { get; set; } } public delegate void CancelEventHandler(object sender, CancelEventArgs e); public class CategoryAttribute : Attribute { public CategoryAttribute(); public CategoryAttribute(string category); public static CategoryAttribute Action { get; } public static CategoryAttribute Appearance { get; } public static CategoryAttribute Asynchronous { get; } public static CategoryAttribute Behavior { get; } public string Category { get; } public static CategoryAttribute Data { get; } public static CategoryAttribute Default { get; } public static CategoryAttribute Design { get; } public static CategoryAttribute DragDrop { get; } public static CategoryAttribute Focus { get; } public static CategoryAttribute Format { get; } public static CategoryAttribute Key { get; } public static CategoryAttribute Layout { get; } public static CategoryAttribute Mouse { get; } public static CategoryAttribute WindowStyle { get; } public override bool Equals(object obj); public override int GetHashCode(); protected virtual string GetLocalizedString(string value); - public override bool IsDefaultAttribute(); } public class CharConverter : TypeConverter { public CharConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } public enum CollectionChangeAction { Add = 1, Refresh = 3, Remove = 2, } public class CollectionChangeEventArgs : EventArgs { public CollectionChangeEventArgs(CollectionChangeAction action, object element); public virtual CollectionChangeAction Action { get; } public virtual object Element { get; } } public delegate void CollectionChangeEventHandler(object sender, CollectionChangeEventArgs e); public class CollectionConverter : TypeConverter { public CollectionConverter(); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes); public override bool GetPropertiesSupported(ITypeDescriptorContext context); } - public sealed class ComplexBindingPropertiesAttribute : Attribute { - public static readonly ComplexBindingPropertiesAttribute Default; - public ComplexBindingPropertiesAttribute(); - public ComplexBindingPropertiesAttribute(string dataSource); - public ComplexBindingPropertiesAttribute(string dataSource, string dataMember); - public string DataMember { get; } - public string DataSource { get; } - public override bool Equals(object obj); - public override int GetHashCode(); } - public class Component : MarshalByRefObject, IComponent, IDisposable { - public Component(); - protected virtual bool CanRaiseEvents { get; } - public IContainer Container { get; } - protected bool DesignMode { get; } - protected EventHandlerList Events { get; } - public virtual ISite Site { get; set; } - public event EventHandler Disposed; - public void Dispose(); - protected virtual void Dispose(bool disposing); - ~Component(); - protected virtual object GetService(Type service); - public override string ToString(); } public class ComponentCollection : ReadOnlyCollectionBase { - public ComponentCollection(IComponent[] components); - public virtual IComponent this[int index] { get; } - public virtual IComponent this[string name] { get; } - public void CopyTo(IComponent[] array, int index); } - public class ComponentConverter : ReferenceConverter { - public ComponentConverter(Type type); - public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes); - public override bool GetPropertiesSupported(ITypeDescriptorContext context); } - public abstract class ComponentEditor { - protected ComponentEditor(); - public abstract bool EditComponent(ITypeDescriptorContext context, object component); - public bool EditComponent(object component); } - public class ComponentResourceManager : ResourceManager { - public ComponentResourceManager(); - public ComponentResourceManager(Type t); - public void ApplyResources(object value, string objectName); - public virtual void ApplyResources(object value, string objectName, CultureInfo culture); } - public class Container : IContainer, IDisposable { - public Container(); - public virtual ComponentCollection Components { get; } - public virtual void Add(IComponent component); - public virtual void Add(IComponent component, string name); - protected virtual ISite CreateSite(IComponent component, string name); - public void Dispose(); - protected virtual void Dispose(bool disposing); - ~Container(); - protected virtual object GetService(Type service); - public virtual void Remove(IComponent component); - protected void RemoveWithoutUnsiting(IComponent component); - protected virtual void ValidateName(IComponent component, string name); } - public abstract class ContainerFilterService { - protected ContainerFilterService(); - public virtual ComponentCollection FilterComponents(ComponentCollection components); } - public class CultureInfoConverter : TypeConverter { - public CultureInfoConverter(); - public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); - public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); - public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); - public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); - protected virtual string GetCultureName(CultureInfo culture); - public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context); - public override bool GetStandardValuesExclusive(ITypeDescriptorContext context); - public override bool GetStandardValuesSupported(ITypeDescriptorContext context); } public abstract class CustomTypeDescriptor : ICustomTypeDescriptor { protected CustomTypeDescriptor(); protected CustomTypeDescriptor(ICustomTypeDescriptor parent); public virtual AttributeCollection GetAttributes(); public virtual string GetClassName(); public virtual string GetComponentName(); public virtual TypeConverter GetConverter(); public virtual EventDescriptor GetDefaultEvent(); public virtual PropertyDescriptor GetDefaultProperty(); public virtual object GetEditor(Type editorBaseType); public virtual EventDescriptorCollection GetEvents(); public virtual EventDescriptorCollection GetEvents(Attribute[] attributes); public virtual PropertyDescriptorCollection GetProperties(); public virtual PropertyDescriptorCollection GetProperties(Attribute[] attributes); public virtual object GetPropertyOwner(PropertyDescriptor pd); } public class DataErrorsChangedEventArgs : EventArgs { public DataErrorsChangedEventArgs(string propertyName); public virtual string PropertyName { get; } } - public sealed class DataObjectAttribute : Attribute { - public static readonly DataObjectAttribute DataObject; - public static readonly DataObjectAttribute Default; - public static readonly DataObjectAttribute NonDataObject; - public DataObjectAttribute(); - public DataObjectAttribute(bool isDataObject); - public bool IsDataObject { get; } - public override bool Equals(object obj); - public override int GetHashCode(); - public override bool IsDefaultAttribute(); } - public sealed class DataObjectFieldAttribute : Attribute { - public DataObjectFieldAttribute(bool primaryKey); - public DataObjectFieldAttribute(bool primaryKey, bool isIdentity); - public DataObjectFieldAttribute(bool primaryKey, bool isIdentity, bool isNullable); - public DataObjectFieldAttribute(bool primaryKey, bool isIdentity, bool isNullable, int length); - public bool IsIdentity { get; } - public bool IsNullable { get; } - public int Length { get; } - public bool PrimaryKey { get; } - public override bool Equals(object obj); - public override int GetHashCode(); } - public sealed class DataObjectMethodAttribute : Attribute { - public DataObjectMethodAttribute(DataObjectMethodType methodType); - public DataObjectMethodAttribute(DataObjectMethodType methodType, bool isDefault); - public bool IsDefault { get; } - public DataObjectMethodType MethodType { get; } - public override bool Equals(object obj); - public override int GetHashCode(); - public override bool Match(object obj); } - public enum DataObjectMethodType { - Delete = 4, - Fill = 0, - Insert = 3, - Select = 1, - Update = 2, } public class DateTimeConverter : TypeConverter { public DateTimeConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } public class DateTimeOffsetConverter : TypeConverter { public DateTimeOffsetConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } public class DecimalConverter : BaseNumberConverter { public DecimalConverter(); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } - public sealed class DefaultBindingPropertyAttribute : Attribute { - public static readonly DefaultBindingPropertyAttribute Default; - public DefaultBindingPropertyAttribute(); - public DefaultBindingPropertyAttribute(string name); - public string Name { get; } - public override bool Equals(object obj); - public override int GetHashCode(); } public sealed class DefaultEventAttribute : Attribute { public static readonly DefaultEventAttribute Default; public DefaultEventAttribute(string name); public string Name { get; } public override bool Equals(object obj); public override int GetHashCode(); } public sealed class DefaultPropertyAttribute : Attribute { public static readonly DefaultPropertyAttribute Default; public DefaultPropertyAttribute(string name); public string Name { get; } public override bool Equals(object obj); public override int GetHashCode(); } public class DefaultValueAttribute : Attribute { public DefaultValueAttribute(bool value); public DefaultValueAttribute(byte value); public DefaultValueAttribute(char value); public DefaultValueAttribute(double value); public DefaultValueAttribute(short value); public DefaultValueAttribute(int value); public DefaultValueAttribute(long value); public DefaultValueAttribute(object value); public DefaultValueAttribute(float value); public DefaultValueAttribute(string value); public DefaultValueAttribute(Type type, string value); public virtual object Value { get; } public override bool Equals(object obj); public override int GetHashCode(); - protected void SetValue(object value); } public class DescriptionAttribute : Attribute { public static readonly DescriptionAttribute Default; public DescriptionAttribute(); public DescriptionAttribute(string description); public virtual string Description { get; } protected string DescriptionValue { get; set; } public override bool Equals(object obj); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } - public sealed class DesignerAttribute : Attribute { - public DesignerAttribute(string designerTypeName); - public DesignerAttribute(string designerTypeName, string designerBaseTypeName); - public DesignerAttribute(string designerTypeName, Type designerBaseType); - public DesignerAttribute(Type designerType); - public DesignerAttribute(Type designerType, Type designerBaseType); - public string DesignerBaseTypeName { get; } - public string DesignerTypeName { get; } - public override object TypeId { get; } - public override bool Equals(object obj); - public override int GetHashCode(); } public sealed class DesignerCategoryAttribute : Attribute { public static readonly DesignerCategoryAttribute Component; public static readonly DesignerCategoryAttribute Default; public static readonly DesignerCategoryAttribute Form; public static readonly DesignerCategoryAttribute Generic; public DesignerCategoryAttribute(); public DesignerCategoryAttribute(string category); public string Category { get; } - public override object TypeId { get; } public override bool Equals(object obj); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } public enum DesignerSerializationVisibility { Content = 2, Hidden = 0, Visible = 1, } public sealed class DesignerSerializationVisibilityAttribute : Attribute { public static readonly DesignerSerializationVisibilityAttribute Content; public static readonly DesignerSerializationVisibilityAttribute Default; public static readonly DesignerSerializationVisibilityAttribute Hidden; public static readonly DesignerSerializationVisibilityAttribute Visible; public DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility visibility); public DesignerSerializationVisibility Visibility { get; } public override bool Equals(object obj); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } public sealed class DesignOnlyAttribute : Attribute { public static readonly DesignOnlyAttribute Default; public static readonly DesignOnlyAttribute No; public static readonly DesignOnlyAttribute Yes; public DesignOnlyAttribute(bool isDesignOnly); public bool IsDesignOnly { get; } public override bool Equals(object obj); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } - public sealed class DesignTimeVisibleAttribute : Attribute { - public static readonly DesignTimeVisibleAttribute Default; - public static readonly DesignTimeVisibleAttribute No; - public static readonly DesignTimeVisibleAttribute Yes; - public DesignTimeVisibleAttribute(); - public DesignTimeVisibleAttribute(bool visible); - public bool Visible { get; } - public override bool Equals(object obj); - public override int GetHashCode(); - public override bool IsDefaultAttribute(); } public class DisplayNameAttribute : Attribute { public static readonly DisplayNameAttribute Default; public DisplayNameAttribute(); public DisplayNameAttribute(string displayName); public virtual string DisplayName { get; } protected string DisplayNameValue { get; set; } public override bool Equals(object obj); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } public class DoubleConverter : BaseNumberConverter { public DoubleConverter(); } public class DoWorkEventArgs : CancelEventArgsEventArgs { public DoWorkEventArgs(object argument); public object Argument { get; } + public bool Cancel { get; set; } public object Result { get; set; } } public delegate void DoWorkEventHandler(object sender, DoWorkEventArgs e); - public sealed class EditorAttribute : Attribute { - public EditorAttribute(); - public EditorAttribute(string typeName, string baseTypeName); - public EditorAttribute(string typeName, Type baseType); - public EditorAttribute(Type type, Type baseType); - public string EditorBaseTypeName { get; } - public string EditorTypeName { get; } - public override object TypeId { get; } - public override bool Equals(object obj); - public override int GetHashCode(); } public sealed class EditorBrowsableAttribute : Attribute { - public EditorBrowsableAttribute(); public EditorBrowsableAttribute(EditorBrowsableState state); public EditorBrowsableState State { get; } public override bool Equals(object obj); public override int GetHashCode(); } public enum EditorBrowsableState { Advanced = 2, Always = 0, Never = 1, } public class EnumConverter : TypeConverter { public EnumConverter(Type type); protected virtual IComparer Comparer { get; } protected Type EnumType { get; } protected TypeConverter.StandardValuesCollection Values { get; set; } public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context); public override bool GetStandardValuesExclusive(ITypeDescriptorContext context); public override bool GetStandardValuesSupported(ITypeDescriptorContext context); public override bool IsValid(ITypeDescriptorContext context, object value); } public abstract class EventDescriptor : MemberDescriptor { protected EventDescriptor(MemberDescriptor descr); protected EventDescriptor(MemberDescriptor descr, Attribute[] attrs); protected EventDescriptor(string name, Attribute[] attrs); public abstract Type ComponentType { get; } public abstract Type EventType { get; } public abstract bool IsMulticast { get; } public abstract void AddEventHandler(object component, Delegate value); public abstract void RemoveEventHandler(object component, Delegate value); } public class EventDescriptorCollection : ICollection, IEnumerable, IList { public static readonly EventDescriptorCollection Empty; public EventDescriptorCollection(EventDescriptor[] events); public EventDescriptorCollection(EventDescriptor[] events, bool readOnly); public int Count { get; } - int System.Collections.ICollection.Count { get; } bool System.Collections.ICollection.IsSynchronized { get; } object System.Collections.ICollection.SyncRoot { get; } bool System.Collections.IList.IsFixedSize { get; } bool System.Collections.IList.IsReadOnly { get; } object System.Collections.IList.this[int index] { get; set; } public virtual EventDescriptor this[int index] { get; } public virtual EventDescriptor this[string name] { get; } public int Add(EventDescriptor value); public void Clear(); public bool Contains(EventDescriptor value); public virtual EventDescriptor Find(string name, bool ignoreCase); public IEnumerator GetEnumerator(); public int IndexOf(EventDescriptor value); public void Insert(int index, EventDescriptor value); protected void InternalSort(IComparer sorter); protected void InternalSort(string[] names); public void Remove(EventDescriptor value); public void RemoveAt(int index); public virtual EventDescriptorCollection Sort(); public virtual EventDescriptorCollection Sort(IComparer comparer); public virtual EventDescriptorCollection Sort(string[] names); public virtual EventDescriptorCollection Sort(string[] names, IComparer comparer); void System.Collections.ICollection.CopyTo(Array array, int index); - IEnumerator System.Collections.IEnumerable.GetEnumerator(); int System.Collections.IList.Add(object value); - void System.Collections.IList.Clear(); bool System.Collections.IList.Contains(object value); int System.Collections.IList.IndexOf(object value); void System.Collections.IList.Insert(int index, object value); void System.Collections.IList.Remove(object value); - void System.Collections.IList.RemoveAt(int index); } public sealed class EventHandlerList : IDisposable { public EventHandlerList(); public Delegate this[object key] { get; set; } public void AddHandler(object key, Delegate value); public void AddHandlers(EventHandlerList listToAddFrom); public void Dispose(); public void RemoveHandler(object key, Delegate value); } - public class ExpandableObjectConverter : TypeConverter { - public ExpandableObjectConverter(); - public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes); - public override bool GetPropertiesSupported(ITypeDescriptorContext context); } public sealed class ExtenderProvidedPropertyAttribute : Attribute { public ExtenderProvidedPropertyAttribute(); public PropertyDescriptor ExtenderProperty { get; } public IExtenderProvider Provider { get; } public Type ReceiverType { get; } public override bool Equals(object obj); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } public class GuidConverter : TypeConverter { public GuidConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } public class HandledEventArgs : EventArgs { public HandledEventArgs(); public HandledEventArgs(bool defaultHandledValue); public bool Handled { get; set; } } public delegate void HandledEventHandler(object sender, HandledEventArgs e); - public interface IBindingList : ICollection, IEnumerable, IList { - bool AllowEdit { get; } - bool AllowNew { get; } - bool AllowRemove { get; } - bool IsSorted { get; } - ListSortDirection SortDirection { get; } - PropertyDescriptor SortProperty { get; } - bool SupportsChangeNotification { get; } - bool SupportsSearching { get; } - bool SupportsSorting { get; } - event ListChangedEventHandler ListChanged; - void AddIndex(PropertyDescriptor property); - object AddNew(); - void ApplySort(PropertyDescriptor property, ListSortDirection direction); - int Find(PropertyDescriptor property, object key); - void RemoveIndex(PropertyDescriptor property); - void RemoveSort(); } - public interface IBindingListView : IBindingList, ICollection, IEnumerable, IList { - string Filter { get; set; } - ListSortDescriptionCollection SortDescriptions { get; } - bool SupportsAdvancedSorting { get; } - bool SupportsFiltering { get; } - void ApplySort(ListSortDescriptionCollection sorts); - void RemoveFilter(); } - public interface ICancelAddNew { - void CancelNew(int itemIndex); - void EndNew(int itemIndex); } public interface IChangeTracking { bool IsChanged { get; } void AcceptChanges(); } - public interface IComNativeDescriptorHandler { - AttributeCollection GetAttributes(object component); - string GetClassName(object component); - TypeConverter GetConverter(object component); - EventDescriptor GetDefaultEvent(object component); - PropertyDescriptor GetDefaultProperty(object component); - object GetEditor(object component, Type baseEditorType); - EventDescriptorCollection GetEvents(object component); - EventDescriptorCollection GetEvents(object component, Attribute[] attributes); - string GetName(object component); - PropertyDescriptorCollection GetProperties(object component, Attribute[] attributes); - object GetPropertyValue(object component, int dispid, ref bool success); - object GetPropertyValue(object component, string propertyName, ref bool success); } public interface IComponent : IDisposable { ISite Site { get; set; } event EventHandler Disposed; } public interface IContainer : IDisposable { ComponentCollection Components { get; } void Add(IComponent component); void Add(IComponent component, string name); void Remove(IComponent component); } public interface ICustomTypeDescriptor { AttributeCollection GetAttributes(); string GetClassName(); string GetComponentName(); TypeConverter GetConverter(); EventDescriptor GetDefaultEvent(); PropertyDescriptor GetDefaultProperty(); object GetEditor(Type editorBaseType); EventDescriptorCollection GetEvents(); EventDescriptorCollection GetEvents(Attribute[] attributes); PropertyDescriptorCollection GetProperties(); PropertyDescriptorCollection GetProperties(Attribute[] attributes); object GetPropertyOwner(PropertyDescriptor pd); } - public interface IDataErrorInfo { - string Error { get; } - string this[string columnName] { get; } } public interface IEditableObject { void BeginEdit(); void CancelEdit(); void EndEdit(); } public interface IExtenderProvider { bool CanExtend(object extendee); } - public interface IIntellisenseBuilder { - string Name { get; } - bool Show(string language, string value, ref string newValue); } public interface IListSource { bool ContainsListCollection { get; } IList GetList(); } public sealed class ImmutableObjectAttribute : Attribute { public static readonly ImmutableObjectAttribute Default; public static readonly ImmutableObjectAttribute No; public static readonly ImmutableObjectAttribute Yes; public ImmutableObjectAttribute(bool immutable); public bool Immutable { get; } public override bool Equals(object obj); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } - public interface INestedContainer : IContainer, IDisposable { - IComponent Owner { get; } } - public interface INestedSite : IServiceProvider, ISite { - string FullName { get; } } - public sealed class InheritanceAttribute : Attribute { - public static readonly InheritanceAttribute Default; - public static readonly InheritanceAttribute Inherited; - public static readonly InheritanceAttribute InheritedReadOnly; - public static readonly InheritanceAttribute NotInherited; - public InheritanceAttribute(); - public InheritanceAttribute(InheritanceLevel inheritanceLevel); - public InheritanceLevel InheritanceLevel { get; } - public override bool Equals(object value); - public override int GetHashCode(); - public override bool IsDefaultAttribute(); - public override string ToString(); } - public enum InheritanceLevel { - Inherited = 1, - InheritedReadOnly = 2, - NotInherited = 3, } public sealed class InitializationEventAttribute : Attribute { public InitializationEventAttribute(string eventName); public string EventName { get; } } public interface INotifyDataErrorInfo { bool HasErrors { get; } event EventHandler ErrorsChanged; IEnumerable GetErrors(string propertyName); } public interface INotifyPropertyChanged { event PropertyChangedEventHandler PropertyChanged; } public interface INotifyPropertyChanging { event PropertyChangingEventHandler PropertyChanging; } - public class InstallerTypeAttribute : Attribute { - public InstallerTypeAttribute(string typeName); - public InstallerTypeAttribute(Type installerType); - public virtual Type InstallerType { get; } - public override bool Equals(object obj); - public override int GetHashCode(); } - public abstract class InstanceCreationEditor { - protected InstanceCreationEditor(); - public virtual string Text { get; } - public abstract object CreateInstance(ITypeDescriptorContext context, Type instanceType); } public class Int16Converter : BaseNumberConverter { public Int16Converter(); } public class Int32Converter : BaseNumberConverter { public Int32Converter(); } public class Int64Converter : BaseNumberConverter { public Int64Converter(); } public class InvalidAsynchronousStateException : ArgumentException { public InvalidAsynchronousStateException(); - protected InvalidAsynchronousStateException(SerializationInfo info, StreamingContext context); public InvalidAsynchronousStateException(string message); public InvalidAsynchronousStateException(string message, Exception innerException); } - public class InvalidEnumArgumentException : ArgumentException { - public InvalidEnumArgumentException(); - protected InvalidEnumArgumentException(SerializationInfo info, StreamingContext context); - public InvalidEnumArgumentException(string message); - public InvalidEnumArgumentException(string message, Exception innerException); - public InvalidEnumArgumentException(string argumentName, int invalidValue, Type enumClass); } - public interface IRaiseItemChangedEvents { - bool RaisesItemChangedEvents { get; } } public interface IRevertibleChangeTracking : IChangeTracking { void RejectChanges(); } public interface ISite : IServiceProvider { IComponent Component { get; } IContainer Container { get; } bool DesignMode { get; } string Name { get; set; } } - public interface ISupportInitialize { - void BeginInit(); - void EndInit(); } - public interface ISupportInitializeNotification : ISupportInitialize { - bool IsInitialized { get; } - event EventHandler Initialized; } - public interface ISynchronizeInvoke { - bool InvokeRequired { get; } - IAsyncResult BeginInvoke(Delegate method, object[] args); - object EndInvoke(IAsyncResult result); - object Invoke(Delegate method, object[] args); } public interface ITypeDescriptorContext : IServiceProvider { IContainer Container { get; } object Instance { get; } PropertyDescriptor PropertyDescriptor { get; } void OnComponentChanged(); bool OnComponentChanging(); } public interface ITypedList { PropertyDescriptorCollection GetItemProperties(PropertyDescriptor[] listAccessors); string GetListName(PropertyDescriptor[] listAccessors); } - public abstract class License : IDisposable { - protected License(); - public abstract string LicenseKey { get; } - public abstract void Dispose(); } - public class LicenseContext : IServiceProvider { - public LicenseContext(); - public virtual LicenseUsageMode UsageMode { get; } - public virtual string GetSavedLicenseKey(Type type, Assembly resourceAssembly); - public virtual object GetService(Type type); - public virtual void SetSavedLicenseKey(Type type, string key); } - public class LicenseException : SystemException { - protected LicenseException(SerializationInfo info, StreamingContext context); - public LicenseException(Type type); - public LicenseException(Type type, object instance); - public LicenseException(Type type, object instance, string message); - public LicenseException(Type type, object instance, string message, Exception innerException); - public Type LicensedType { get; } - public override void GetObjectData(SerializationInfo info, StreamingContext context); } - public sealed class LicenseManager { - public static LicenseContext CurrentContext { get; set; } - public static LicenseUsageMode UsageMode { get; } - public static object CreateWithContext(Type type, LicenseContext creationContext); - public static object CreateWithContext(Type type, LicenseContext creationContext, object[] args); - public static bool IsLicensed(Type type); - public static bool IsValid(Type type); - public static bool IsValid(Type type, object instance, out License license); - public static void LockContext(object contextUser); - public static void UnlockContext(object contextUser); - public static void Validate(Type type); - public static License Validate(Type type, object instance); } - public abstract class LicenseProvider { - protected LicenseProvider(); - public abstract License GetLicense(LicenseContext context, Type type, object instance, bool allowExceptions); } - public sealed class LicenseProviderAttribute : Attribute { - public static readonly LicenseProviderAttribute Default; - public LicenseProviderAttribute(); - public LicenseProviderAttribute(string typeName); - public LicenseProviderAttribute(Type type); - public Type LicenseProvider { get; } - public override object TypeId { get; } - public override bool Equals(object value); - public override int GetHashCode(); } - public enum LicenseUsageMode { - Designtime = 1, - Runtime = 0, } - public class LicFileLicenseProvider : LicenseProvider { - public LicFileLicenseProvider(); - protected virtual string GetKey(Type type); - public override License GetLicense(LicenseContext context, Type type, object instance, bool allowExceptions); - protected virtual bool IsKeyValid(string key, Type type); } - public sealed class ListBindableAttribute : Attribute { - public static readonly ListBindableAttribute Default; - public static readonly ListBindableAttribute No; - public static readonly ListBindableAttribute Yes; - public ListBindableAttribute(bool listBindable); - public ListBindableAttribute(BindableSupport flags); - public bool ListBindable { get; } - public override bool Equals(object obj); - public override int GetHashCode(); - public override bool IsDefaultAttribute(); } - public class ListChangedEventArgs : EventArgs { - public ListChangedEventArgs(ListChangedType listChangedType, PropertyDescriptor propDesc); - public ListChangedEventArgs(ListChangedType listChangedType, int newIndex); - public ListChangedEventArgs(ListChangedType listChangedType, int newIndex, PropertyDescriptor propDesc); - public ListChangedEventArgs(ListChangedType listChangedType, int newIndex, int oldIndex); - public ListChangedType ListChangedType { get; } - public int NewIndex { get; } - public int OldIndex { get; } - public PropertyDescriptor PropertyDescriptor { get; } } - public delegate void ListChangedEventHandler(object sender, ListChangedEventArgs e); - public enum ListChangedType { - ItemAdded = 1, - ItemChanged = 4, - ItemDeleted = 2, - ItemMoved = 3, - PropertyDescriptorAdded = 5, - PropertyDescriptorChanged = 7, - PropertyDescriptorDeleted = 6, - Reset = 0, } - public class ListSortDescription { - public ListSortDescription(PropertyDescriptor property, ListSortDirection direction); - public PropertyDescriptor PropertyDescriptor { get; set; } - public ListSortDirection SortDirection { get; set; } } - public class ListSortDescriptionCollection : ICollection, IEnumerable, IList { - public ListSortDescriptionCollection(); - public ListSortDescriptionCollection(ListSortDescription[] sorts); - public int Count { get; } - bool System.Collections.ICollection.IsSynchronized { get; } - object System.Collections.ICollection.SyncRoot { get; } - bool System.Collections.IList.IsFixedSize { get; } - bool System.Collections.IList.IsReadOnly { get; } - object System.Collections.IList.this[int index] { get; set; } - public ListSortDescription this[int index] { get; set; } - public bool Contains(object value); - public void CopyTo(Array array, int index); - public int IndexOf(object value); - IEnumerator System.Collections.IEnumerable.GetEnumerator(); - int System.Collections.IList.Add(object value); - void System.Collections.IList.Clear(); - void System.Collections.IList.Insert(int index, object value); - void System.Collections.IList.Remove(object value); - void System.Collections.IList.RemoveAt(int index); } - public enum ListSortDirection { - Ascending = 0, - Descending = 1, } public sealed class LocalizableAttribute : Attribute { public static readonly LocalizableAttribute Default; public static readonly LocalizableAttribute No; public static readonly LocalizableAttribute Yes; public LocalizableAttribute(bool isLocalizable); public bool IsLocalizable { get; } public override bool Equals(object obj); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } - public sealed class LookupBindingPropertiesAttribute : Attribute { - public static readonly LookupBindingPropertiesAttribute Default; - public LookupBindingPropertiesAttribute(); - public LookupBindingPropertiesAttribute(string dataSource, string displayMember, string valueMember, string lookupMember); - public string DataSource { get; } - public string DisplayMember { get; } - public string LookupMember { get; } - public string ValueMember { get; } - public override bool Equals(object obj); - public override int GetHashCode(); } - public class MarshalByValueComponent : IComponent, IDisposable, IServiceProvider { - public MarshalByValueComponent(); - public virtual IContainer Container { get; } - public virtual bool DesignMode { get; } - protected EventHandlerList Events { get; } - public virtual ISite Site { get; set; } - public event EventHandler Disposed; - public void Dispose(); - protected virtual void Dispose(bool disposing); - ~MarshalByValueComponent(); - public virtual object GetService(Type service); - public override string ToString(); } - public class MaskedTextProvider : ICloneable { - public MaskedTextProvider(string mask); - public MaskedTextProvider(string mask, bool restrictToAscii); - public MaskedTextProvider(string mask, char passwordChar, bool allowPromptAsInput); - public MaskedTextProvider(string mask, CultureInfo culture); - public MaskedTextProvider(string mask, CultureInfo culture, bool restrictToAscii); - public MaskedTextProvider(string mask, CultureInfo culture, bool allowPromptAsInput, char promptChar, char passwordChar, bool restrictToAscii); - public MaskedTextProvider(string mask, CultureInfo culture, char passwordChar, bool allowPromptAsInput); - public bool AllowPromptAsInput { get; } - public bool AsciiOnly { get; } - public int AssignedEditPositionCount { get; } - public int AvailableEditPositionCount { get; } - public CultureInfo Culture { get; } - public static char DefaultPasswordChar { get; } - public int EditPositionCount { get; } - public IEnumerator EditPositions { get; } - public bool IncludeLiterals { get; set; } - public bool IncludePrompt { get; set; } - public static int InvalidIndex { get; } - public bool IsPassword { get; set; } - public int LastAssignedPosition { get; } - public int Length { get; } - public string Mask { get; } - public bool MaskCompleted { get; } - public bool MaskFull { get; } - public char PasswordChar { get; set; } - public char PromptChar { get; set; } - public bool ResetOnPrompt { get; set; } - public bool ResetOnSpace { get; set; } - public bool SkipLiterals { get; set; } - public char this[int index] { get; } - public bool Add(char input); - public bool Add(char input, out int testPosition, out MaskedTextResultHint resultHint); - public bool Add(string input); - public bool Add(string input, out int testPosition, out MaskedTextResultHint resultHint); - public void Clear(); - public void Clear(out MaskedTextResultHint resultHint); - public object Clone(); - public int FindAssignedEditPositionFrom(int position, bool direction); - public int FindAssignedEditPositionInRange(int startPosition, int endPosition, bool direction); - public int FindEditPositionFrom(int position, bool direction); - public int FindEditPositionInRange(int startPosition, int endPosition, bool direction); - public int FindNonEditPositionFrom(int position, bool direction); - public int FindNonEditPositionInRange(int startPosition, int endPosition, bool direction); - public int FindUnassignedEditPositionFrom(int position, bool direction); - public int FindUnassignedEditPositionInRange(int startPosition, int endPosition, bool direction); - public static bool GetOperationResultFromHint(MaskedTextResultHint hint); - public bool InsertAt(char input, int position); - public bool InsertAt(char input, int position, out int testPosition, out MaskedTextResultHint resultHint); - public bool InsertAt(string input, int position); - public bool InsertAt(string input, int position, out int testPosition, out MaskedTextResultHint resultHint); - public bool IsAvailablePosition(int position); - public bool IsEditPosition(int position); - public static bool IsValidInputChar(char c); - public static bool IsValidMaskChar(char c); - public static bool IsValidPasswordChar(char c); - public bool Remove(); - public bool Remove(out int testPosition, out MaskedTextResultHint resultHint); - public bool RemoveAt(int position); - public bool RemoveAt(int startPosition, int endPosition); - public bool RemoveAt(int startPosition, int endPosition, out int testPosition, out MaskedTextResultHint resultHint); - public bool Replace(char input, int position); - public bool Replace(char input, int position, out int testPosition, out MaskedTextResultHint resultHint); - public bool Replace(char input, int startPosition, int endPosition, out int testPosition, out MaskedTextResultHint resultHint); - public bool Replace(string input, int position); - public bool Replace(string input, int position, out int testPosition, out MaskedTextResultHint resultHint); - public bool Replace(string input, int startPosition, int endPosition, out int testPosition, out MaskedTextResultHint resultHint); - public bool Set(string input); - public bool Set(string input, out int testPosition, out MaskedTextResultHint resultHint); - public string ToDisplayString(); - public override string ToString(); - public string ToString(bool ignorePasswordChar); - public string ToString(bool includePrompt, bool includeLiterals); - public string ToString(bool ignorePasswordChar, bool includePrompt, bool includeLiterals, int startPosition, int length); - public string ToString(bool includePrompt, bool includeLiterals, int startPosition, int length); - public string ToString(bool ignorePasswordChar, int startPosition, int length); - public string ToString(int startPosition, int length); - public bool VerifyChar(char input, int position, out MaskedTextResultHint hint); - public bool VerifyEscapeChar(char input, int position); - public bool VerifyString(string input); - public bool VerifyString(string input, out int testPosition, out MaskedTextResultHint resultHint); } - public enum MaskedTextResultHint { - AlphanumericCharacterExpected = -2, - AsciiCharacterExpected = -1, - CharacterEscaped = 1, - DigitExpected = -3, - InvalidInput = -51, - LetterExpected = -4, - NoEffect = 2, - NonEditPosition = -54, - PositionOutOfRange = -55, - PromptCharNotAllowed = -52, - SideEffect = 3, - SignedDigitExpected = -5, - Success = 4, - UnavailableEditPosition = -53, - Unknown = 0, } public abstract class MemberDescriptor { protected MemberDescriptor(MemberDescriptor descr); protected MemberDescriptor(MemberDescriptor oldMemberDescriptor, Attribute[] newAttributes); protected MemberDescriptor(string name); protected MemberDescriptor(string name, Attribute[] attributes); protected virtual Attribute[] AttributeArray { get; set; } public virtual AttributeCollection Attributes { get; } public virtual string Category { get; } public virtual string Description { get; } public virtual bool DesignTimeOnly { get; } public virtual string DisplayName { get; } public virtual bool IsBrowsable { get; } public virtual string Name { get; } protected virtual int NameHashCode { get; } protected virtual AttributeCollection CreateAttributeCollection(); public override bool Equals(object obj); protected virtual void FillAttributes(IList attributeList); protected static MethodInfo FindMethod(Type componentClass, string name, Type[] args, Type returnType); protected static MethodInfo FindMethod(Type componentClass, string name, Type[] args, Type returnType, bool publicOnly); public override int GetHashCode(); protected virtual object GetInvocationTarget(Type type, object instance); - protected static object GetInvokee(Type componentClass, object component); protected static ISite GetSite(object component); } public sealed class MergablePropertyAttribute : Attribute { public static readonly MergablePropertyAttribute Default; public static readonly MergablePropertyAttribute No; public static readonly MergablePropertyAttribute Yes; public MergablePropertyAttribute(bool allowMerge); public bool AllowMerge { get; } public override bool Equals(object obj); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } public class MultilineStringConverter : TypeConverter { public MultilineStringConverter(); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes); public override bool GetPropertiesSupported(ITypeDescriptorContext context); } - public class NestedContainer : Container, IContainer, IDisposable, INestedContainer { - public NestedContainer(IComponent owner); - public IComponent Owner { get; } - protected virtual string OwnerName { get; } - protected override ISite CreateSite(IComponent component, string name); - protected override void Dispose(bool disposing); - protected override object GetService(Type service); } public sealed class NotifyParentPropertyAttribute : Attribute { public static readonly NotifyParentPropertyAttribute Default; public static readonly NotifyParentPropertyAttribute No; public static readonly NotifyParentPropertyAttribute Yes; public NotifyParentPropertyAttribute(bool notifyParent); public bool NotifyParent { get; } public override bool Equals(object obj); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } public class NullableConverter : TypeConverter { public NullableConverter(Type type); public Type NullableType { get; } public Type UnderlyingType { get; } public TypeConverter UnderlyingTypeConverter { get; } public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues); public override bool GetCreateInstanceSupported(ITypeDescriptorContext context); public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes); public override bool GetPropertiesSupported(ITypeDescriptorContext context); public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context); public override bool GetStandardValuesExclusive(ITypeDescriptorContext context); public override bool GetStandardValuesSupported(ITypeDescriptorContext context); public override bool IsValid(ITypeDescriptorContext context, object value); } public sealed class ParenthesizePropertyNameAttribute : Attribute { public static readonly ParenthesizePropertyNameAttribute Default; public ParenthesizePropertyNameAttribute(); public ParenthesizePropertyNameAttribute(bool needParenthesis); public bool NeedParenthesis { get; } public override bool Equals(object o); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } - public sealed class PasswordPropertyTextAttribute : Attribute { - public static readonly PasswordPropertyTextAttribute Default; - public static readonly PasswordPropertyTextAttribute No; - public static readonly PasswordPropertyTextAttribute Yes; - public PasswordPropertyTextAttribute(); - public PasswordPropertyTextAttribute(bool password); - public bool Password { get; } - public override bool Equals(object o); - public override int GetHashCode(); - public override bool IsDefaultAttribute(); } public class ProgressChangedEventArgs : EventArgs { public ProgressChangedEventArgs(int progressPercentage, object userState); public int ProgressPercentage { get; } public object UserState { get; } } public delegate void ProgressChangedEventHandler(object sender, ProgressChangedEventArgs e); public class PropertyChangedEventArgs : EventArgs { public PropertyChangedEventArgs(string propertyName); public virtual string PropertyName { get; } } public delegate void PropertyChangedEventHandler(object sender, PropertyChangedEventArgs e); public class PropertyChangingEventArgs : EventArgs { public PropertyChangingEventArgs(string propertyName); public virtual string PropertyName { get; } } public delegate void PropertyChangingEventHandler(object sender, PropertyChangingEventArgs e); public abstract class PropertyDescriptor : MemberDescriptor { protected PropertyDescriptor(MemberDescriptor descr); protected PropertyDescriptor(MemberDescriptor descr, Attribute[] attrs); protected PropertyDescriptor(string name, Attribute[] attrs); public abstract Type ComponentType { get; } public virtual TypeConverter Converter { get; } public virtual bool IsLocalizable { get; } public abstract bool IsReadOnly { get; } public abstract Type PropertyType { get; } public DesignerSerializationVisibility SerializationVisibility { get; } public virtual bool SupportsChangeEvents { get; } public virtual void AddValueChanged(object component, EventHandler handler); public abstract bool CanResetValue(object component); protected object CreateInstance(Type type); public override bool Equals(object obj); protected override void FillAttributes(IList attributeList); public PropertyDescriptorCollection GetChildProperties(); public PropertyDescriptorCollection GetChildProperties(Attribute[] filter); public PropertyDescriptorCollection GetChildProperties(object instance); public virtual PropertyDescriptorCollection GetChildProperties(object instance, Attribute[] filter); public virtual object GetEditor(Type editorBaseType); public override int GetHashCode(); protected override object GetInvocationTarget(Type type, object instance); protected Type GetTypeFromName(string typeName); public abstract object GetValue(object component); protected internal EventHandler GetValueChangedHandler(object component); protected virtual void OnValueChanged(object component, EventArgs e); public virtual void RemoveValueChanged(object component, EventHandler handler); public abstract void ResetValue(object component); public abstract void SetValue(object component, object value); public abstract bool ShouldSerializeValue(object component); } public class PropertyDescriptorCollection : ICollection, IDictionary, IEnumerable, IList { public static readonly PropertyDescriptorCollection Empty; public PropertyDescriptorCollection(PropertyDescriptor[] properties); public PropertyDescriptorCollection(PropertyDescriptor[] properties, bool readOnly); public int Count { get; } - int System.Collections.ICollection.Count { get; } bool System.Collections.ICollection.IsSynchronized { get; } object System.Collections.ICollection.SyncRoot { get; } bool System.Collections.IDictionary.IsFixedSize { get; } bool System.Collections.IDictionary.IsReadOnly { get; } object System.Collections.IDictionary.this[object key] { get; set; } ICollection System.Collections.IDictionary.Keys { get; } ICollection System.Collections.IDictionary.Values { get; } bool System.Collections.IList.IsFixedSize { get; } bool System.Collections.IList.IsReadOnly { get; } object System.Collections.IList.this[int index] { get; set; } public virtual PropertyDescriptor this[int index] { get; } public virtual PropertyDescriptor this[string name] { get; } public int Add(PropertyDescriptor value); public void Clear(); public bool Contains(PropertyDescriptor value); public void CopyTo(Array array, int index); public virtual PropertyDescriptor Find(string name, bool ignoreCase); public virtual IEnumerator GetEnumerator(); public int IndexOf(PropertyDescriptor value); public void Insert(int index, PropertyDescriptor value); protected void InternalSort(IComparer sorter); protected void InternalSort(string[] names); public void Remove(PropertyDescriptor value); public void RemoveAt(int index); public virtual PropertyDescriptorCollection Sort(); public virtual PropertyDescriptorCollection Sort(IComparer comparer); public virtual PropertyDescriptorCollection Sort(string[] names); public virtual PropertyDescriptorCollection Sort(string[] names, IComparer comparer); void System.Collections.IDictionary.Add(object key, object value); - void System.Collections.IDictionary.Clear(); bool System.Collections.IDictionary.Contains(object key); IDictionaryEnumerator System.Collections.IDictionary.GetEnumerator(); void System.Collections.IDictionary.Remove(object key); - IEnumerator System.Collections.IEnumerable.GetEnumerator(); int System.Collections.IList.Add(object value); - void System.Collections.IList.Clear(); bool System.Collections.IList.Contains(object value); int System.Collections.IList.IndexOf(object value); void System.Collections.IList.Insert(int index, object value); void System.Collections.IList.Remove(object value); - void System.Collections.IList.RemoveAt(int index); } - public class PropertyTabAttribute : Attribute { - public PropertyTabAttribute(); - public PropertyTabAttribute(string tabClassName); - public PropertyTabAttribute(string tabClassName, PropertyTabScope tabScope); - public PropertyTabAttribute(Type tabClass); - public PropertyTabAttribute(Type tabClass, PropertyTabScope tabScope); - public Type[] TabClasses { get; } - protected string[] TabClassNames { get; } - public PropertyTabScope[] TabScopes { get; } - public bool Equals(PropertyTabAttribute other); - public override bool Equals(object other); - public override int GetHashCode(); - protected void InitializeArrays(string[] tabClassNames, PropertyTabScope[] tabScopes); - protected void InitializeArrays(Type[] tabClasses, PropertyTabScope[] tabScopes); } - public enum PropertyTabScope { - Component = 3, - Document = 2, - Global = 1, - Static = 0, } public sealed class ProvidePropertyAttribute : Attribute { public ProvidePropertyAttribute(string propertyName, string receiverTypeName); public ProvidePropertyAttribute(string propertyName, Type receiverType); public string PropertyName { get; } public string ReceiverTypeName { get; } - public override object TypeId { get; } public override bool Equals(object obj); public override int GetHashCode(); } public sealed class ReadOnlyAttribute : Attribute { public static readonly ReadOnlyAttribute Default; public static readonly ReadOnlyAttribute No; public static readonly ReadOnlyAttribute Yes; public ReadOnlyAttribute(bool isReadOnly); public bool IsReadOnly { get; } public override bool Equals(object value); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } - public class RecommendedAsConfigurableAttribute : Attribute { - public static readonly RecommendedAsConfigurableAttribute Default; - public static readonly RecommendedAsConfigurableAttribute No; - public static readonly RecommendedAsConfigurableAttribute Yes; - public RecommendedAsConfigurableAttribute(bool recommendedAsConfigurable); - public bool RecommendedAsConfigurable { get; } - public override bool Equals(object obj); - public override int GetHashCode(); - public override bool IsDefaultAttribute(); } - public class ReferenceConverter : TypeConverter { - public ReferenceConverter(Type type); - public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); - public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); - public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); - public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context); - public override bool GetStandardValuesExclusive(ITypeDescriptorContext context); - public override bool GetStandardValuesSupported(ITypeDescriptorContext context); - protected virtual bool IsValueAllowed(ITypeDescriptorContext context, object value); } public class RefreshEventArgs : EventArgs { public RefreshEventArgs(object componentChanged); public RefreshEventArgs(Type typeChanged); public object ComponentChanged { get; } public Type TypeChanged { get; } } public delegate void RefreshEventHandler(RefreshEventArgs e); public enum RefreshProperties { All = 1, None = 0, Repaint = 2, } public sealed class RefreshPropertiesAttribute : Attribute { public static readonly RefreshPropertiesAttribute All; public static readonly RefreshPropertiesAttribute Default; public static readonly RefreshPropertiesAttribute Repaint; public RefreshPropertiesAttribute(RefreshProperties refresh); public RefreshProperties RefreshProperties { get; } public override bool Equals(object value); public override int GetHashCode(); - public override bool IsDefaultAttribute(); } - public class RunInstallerAttribute : Attribute { - public static readonly RunInstallerAttribute Default; - public static readonly RunInstallerAttribute No; - public static readonly RunInstallerAttribute Yes; - public RunInstallerAttribute(bool runInstaller); - public bool RunInstaller { get; } - public override bool Equals(object obj); - public override int GetHashCode(); - public override bool IsDefaultAttribute(); } public class RunWorkerCompletedEventArgs : AsyncCompletedEventArgs { public RunWorkerCompletedEventArgs(object result, Exception error, bool cancelled); public object Result { get; } public new object UserState { get; } } public delegate void RunWorkerCompletedEventHandler(object sender, RunWorkerCompletedEventArgs e); public class SByteConverter : BaseNumberConverter { public SByteConverter(); } - public sealed class SettingsBindableAttribute : Attribute { - public static readonly SettingsBindableAttribute No; - public static readonly SettingsBindableAttribute Yes; - public SettingsBindableAttribute(bool bindable); - public bool Bindable { get; } - public override bool Equals(object obj); - public override int GetHashCode(); } public class SingleConverter : BaseNumberConverter { public SingleConverter(); } public class StringConverter : TypeConverter { public StringConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); } - public static class SyntaxCheck { - public static bool CheckMachineName(string value); - public static bool CheckPath(string value); - public static bool CheckRootedPath(string value); } public class TimeSpanConverter : TypeConverter { public TimeSpanConverter(); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } - public class ToolboxItemAttribute : Attribute { - public static readonly ToolboxItemAttribute Default; - public static readonly ToolboxItemAttribute None; - public ToolboxItemAttribute(bool defaultType); - public ToolboxItemAttribute(string toolboxItemTypeName); - public ToolboxItemAttribute(Type toolboxItemType); - public Type ToolboxItemType { get; } - public string ToolboxItemTypeName { get; } - public override bool Equals(object obj); - public override int GetHashCode(); - public override bool IsDefaultAttribute(); } - public sealed class ToolboxItemFilterAttribute : Attribute { - public ToolboxItemFilterAttribute(string filterString); - public ToolboxItemFilterAttribute(string filterString, ToolboxItemFilterType filterType); - public string FilterString { get; } - public ToolboxItemFilterType FilterType { get; } - public override object TypeId { get; } - public override bool Equals(object obj); - public override int GetHashCode(); - public override bool Match(object obj); - public override string ToString(); } - public enum ToolboxItemFilterType { - Allow = 0, - Custom = 1, - Prevent = 2, - Require = 3, } public class TypeConverter { public TypeConverter(); public virtual bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public bool CanConvertFrom(Type sourceType); public virtual bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public bool CanConvertTo(Type destinationType); public virtual object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public object ConvertFrom(object value); public object ConvertFromInvariantString(ITypeDescriptorContext context, string text); public object ConvertFromInvariantString(string text); public object ConvertFromString(ITypeDescriptorContext context, CultureInfo culture, string text); public object ConvertFromString(ITypeDescriptorContext context, string text); public object ConvertFromString(string text); public virtual object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); public object ConvertTo(object value, Type destinationType); public string ConvertToInvariantString(ITypeDescriptorContext context, object value); public string ConvertToInvariantString(object value); public string ConvertToString(ITypeDescriptorContext context, CultureInfo culture, object value); public string ConvertToString(ITypeDescriptorContext context, object value); public string ConvertToString(object value); public object CreateInstance(IDictionary propertyValues); public virtual object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues); protected Exception GetConvertFromException(object value); protected Exception GetConvertToException(object value, Type destinationType); public bool GetCreateInstanceSupported(); public virtual bool GetCreateInstanceSupported(ITypeDescriptorContext context); public PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value); public virtual PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes); public PropertyDescriptorCollection GetProperties(object value); public bool GetPropertiesSupported(); public virtual bool GetPropertiesSupported(ITypeDescriptorContext context); public ICollection GetStandardValues(); public virtual TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context); public bool GetStandardValuesExclusive(); public virtual bool GetStandardValuesExclusive(ITypeDescriptorContext context); public bool GetStandardValuesSupported(); public virtual bool GetStandardValuesSupported(ITypeDescriptorContext context); public virtual bool IsValid(ITypeDescriptorContext context, object value); public bool IsValid(object value); protected PropertyDescriptorCollection SortProperties(PropertyDescriptorCollection props, string[] names); protected abstract class SimplePropertyDescriptor : PropertyDescriptor { protected SimplePropertyDescriptor(Type componentType, string name, Type propertyType); protected SimplePropertyDescriptor(Type componentType, string name, Type propertyType, Attribute[] attributes); public override Type ComponentType { get; } public override bool IsReadOnly { get; } public override Type PropertyType { get; } public override bool CanResetValue(object component); public override void ResetValue(object component); public override bool ShouldSerializeValue(object component); } public class StandardValuesCollection : ICollection, IEnumerable { public StandardValuesCollection(ICollection values); public int Count { get; } - int System.Collections.ICollection.Count { get; } bool System.Collections.ICollection.IsSynchronized { get; } object System.Collections.ICollection.SyncRoot { get; } public object this[int index] { get; } public void CopyTo(Array array, int index); public IEnumerator GetEnumerator(); - void System.Collections.ICollection.CopyTo(Array array, int index); - IEnumerator System.Collections.IEnumerable.GetEnumerator(); } } public sealed class TypeConverterAttribute : Attribute { public static readonly TypeConverterAttribute Default; public TypeConverterAttribute(); public TypeConverterAttribute(string typeName); public TypeConverterAttribute(Type type); public string ConverterTypeName { get; } public override bool Equals(object obj); public override int GetHashCode(); } public abstract class TypeDescriptionProvider { protected TypeDescriptionProvider(); protected TypeDescriptionProvider(TypeDescriptionProvider parent); public virtual object CreateInstance(IServiceProvider provider, Type objectType, Type[] argTypes, object[] args); public virtual IDictionary GetCache(object instance); public virtual ICustomTypeDescriptor GetExtendedTypeDescriptor(object instance); protected internal virtual IExtenderProvider[] GetExtenderProviders(object instance); public virtual string GetFullComponentName(object component); public Type GetReflectionType(object instance); public Type GetReflectionType(Type objectType); public virtual Type GetReflectionType(Type objectType, object instance); public virtual Type GetRuntimeType(Type reflectionType); public ICustomTypeDescriptor GetTypeDescriptor(object instance); public ICustomTypeDescriptor GetTypeDescriptor(Type objectType); public virtual ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance); public virtual bool IsSupportedType(Type type); } public sealed class TypeDescriptionProviderAttribute : Attribute { public TypeDescriptionProviderAttribute(string typeName); public TypeDescriptionProviderAttribute(Type type); public string TypeName { get; } } public sealed class TypeDescriptor { - public static IComNativeDescriptorHandler ComNativeDescriptorHandler { get; set; } - public static Type ComObjectType { get; } public static Type InterfaceType { get; } public static event RefreshEventHandler Refreshed; public static TypeDescriptionProvider AddAttributes(object instance, params Attribute[] attributes); public static TypeDescriptionProvider AddAttributes(Type type, params Attribute[] attributes); public static void AddEditorTable(Type editorBaseType, Hashtable table); public static void AddProvider(TypeDescriptionProvider provider, object instance); public static void AddProvider(TypeDescriptionProvider provider, Type type); public static void AddProviderTransparent(TypeDescriptionProvider provider, object instance); public static void AddProviderTransparent(TypeDescriptionProvider provider, Type type); public static void CreateAssociation(object primary, object secondary); - public static IDesigner CreateDesigner(IComponent component, Type designerBaseType); public static EventDescriptor CreateEvent(Type componentType, EventDescriptor oldEventDescriptor, params Attribute[] attributes); public static EventDescriptor CreateEvent(Type componentType, string name, Type type, params Attribute[] attributes); public static object CreateInstance(IServiceProvider provider, Type objectType, Type[] argTypes, object[] args); public static PropertyDescriptor CreateProperty(Type componentType, PropertyDescriptor oldPropertyDescriptor, params Attribute[] attributes); public static PropertyDescriptor CreateProperty(Type componentType, string name, Type type, params Attribute[] attributes); public static object GetAssociation(Type type, object primary); public static AttributeCollection GetAttributes(object component); public static AttributeCollection GetAttributes(object component, bool noCustomTypeDesc); public static AttributeCollection GetAttributes(Type componentType); public static string GetClassName(object component); public static string GetClassName(object component, bool noCustomTypeDesc); public static string GetClassName(Type componentType); public static string GetComponentName(object component); public static string GetComponentName(object component, bool noCustomTypeDesc); public static TypeConverter GetConverter(object component); public static TypeConverter GetConverter(object component, bool noCustomTypeDesc); public static TypeConverter GetConverter(Type type); public static EventDescriptor GetDefaultEvent(object component); public static EventDescriptor GetDefaultEvent(object component, bool noCustomTypeDesc); public static EventDescriptor GetDefaultEvent(Type componentType); public static PropertyDescriptor GetDefaultProperty(object component); public static PropertyDescriptor GetDefaultProperty(object component, bool noCustomTypeDesc); public static PropertyDescriptor GetDefaultProperty(Type componentType); public static object GetEditor(object component, Type editorBaseType); public static object GetEditor(object component, Type editorBaseType, bool noCustomTypeDesc); public static object GetEditor(Type type, Type editorBaseType); public static EventDescriptorCollection GetEvents(object component); public static EventDescriptorCollection GetEvents(object component, Attribute[] attributes); public static EventDescriptorCollection GetEvents(object component, Attribute[] attributes, bool noCustomTypeDesc); public static EventDescriptorCollection GetEvents(object component, bool noCustomTypeDesc); public static EventDescriptorCollection GetEvents(Type componentType); public static EventDescriptorCollection GetEvents(Type componentType, Attribute[] attributes); public static string GetFullComponentName(object component); public static PropertyDescriptorCollection GetProperties(object component); public static PropertyDescriptorCollection GetProperties(object component, Attribute[] attributes); public static PropertyDescriptorCollection GetProperties(object component, Attribute[] attributes, bool noCustomTypeDesc); public static PropertyDescriptorCollection GetProperties(object component, bool noCustomTypeDesc); public static PropertyDescriptorCollection GetProperties(Type componentType); public static PropertyDescriptorCollection GetProperties(Type componentType, Attribute[] attributes); public static TypeDescriptionProvider GetProvider(object instance); public static TypeDescriptionProvider GetProvider(Type type); public static Type GetReflectionType(object instance); public static Type GetReflectionType(Type type); public static void Refresh(object component); public static void Refresh(Assembly assembly); public static void Refresh(Module module); public static void Refresh(Type type); public static void RemoveAssociation(object primary, object secondary); public static void RemoveAssociations(object primary); public static void RemoveProvider(TypeDescriptionProvider provider, object instance); public static void RemoveProvider(TypeDescriptionProvider provider, Type type); public static void RemoveProviderTransparent(TypeDescriptionProvider provider, object instance); public static void RemoveProviderTransparent(TypeDescriptionProvider provider, Type type); public static void SortDescriptorArray(IList infos); } public abstract class TypeListConverter : TypeConverter { protected TypeListConverter(Type[] types); public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context); public override bool GetStandardValuesExclusive(ITypeDescriptorContext context); public override bool GetStandardValuesSupported(ITypeDescriptorContext context); } public class UInt16Converter : BaseNumberConverter { public UInt16Converter(); } public class UInt32Converter : BaseNumberConverter { public UInt32Converter(); } public class UInt64Converter : BaseNumberConverter { public UInt64Converter(); } - public class WarningException : SystemException { - public WarningException(); - protected WarningException(SerializationInfo info, StreamingContext context); - public WarningException(string message); - public WarningException(string message, Exception innerException); - public WarningException(string message, string helpUrl); - public WarningException(string message, string helpUrl, string helpTopic); - public string HelpTopic { get; } - public string HelpUrl { get; } - public override void GetObjectData(SerializationInfo info, StreamingContext context); } public class Win32Exception : ExternalExceptionException, ISerializable { public Win32Exception(); public Win32Exception(int error); public Win32Exception(int error, string message); - protected Win32Exception(SerializationInfo info, StreamingContext context); public Win32Exception(string message); public Win32Exception(string message, Exception innerException); public int NativeErrorCode { get; } - public override void GetObjectData(SerializationInfo info, StreamingContext context); } } ``` +6580 area-System.Net [ToFDisable] Port URI tests "As part of moving out of ToF and into the open, I've been going through the ""Tree of the future"" tests and calculating which of those tests provide coverage that we're missing in the open tests. The goal of this is to get the open tests universally better than the ToF tests so that we can turn the ToF tests off for ProjectK runs and save us all a lot of headache diagnosing test failures from potentially outdated tests. For System.Runtime, we're missing 2020 lines of coverage. Our total line coverage for Open vs. ToF is 69.7%. However, this includes some data points that might not be relevant to the library being tested so the real coverage is likely lower. To fulfill the uncovered lines we would need to either create new tests for them or port 56 ToF tests to the open. Those tests are: - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IdnDnsSafeHostTest.IdnDnsSafeHost_IdnOffWithBuiltInScheme_Success.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriTest.Iri_IncompleteSurrogate.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriEscapingTest.UriFile_ImplicitUncFile_FragmentNotAllowed.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriTest.Iri_ReservedCharacters.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.AppxUriValues.SupportStringsOfForm_MsApp.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriMailToTest.UriMailTo_SchemeUserAt_Throws.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriRelativeFileResolutionTest.IriRelativeResolution_CompareImplcitAndExplicitUncForwardSlashesWithNoUnicode_AllPropertiesTheSame.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriRelativeFileResolutionTest.IriRelativeResolution_CompareRelativeAndOriginalHttpWithNoUnicodeAndReservedChar_AllPropertiesTheSame.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriTest.Iri_EscapedAscii.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriGetComponentsTest.GetComponents_ASCIIHost_LowerCaseResult.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriGetComponentsTest.GetComponents_UnknownScheme_ComponentsUnaffected.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IdnHostNameValidationTest.IdnHost_FileFqdn_Success.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriGetComponentsTest.GetComponents_UnknownScheme_LocalHostAndPort_Success.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IdnDnsSafeHostTest.IdnDnsSafeHost_IPv6Host_ScopeIdButNoBrackets.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriEscapingTest.UriAbsoluteEscaping_FullIPv6Uri_NothingEscaped.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriRelativeFileResolutionTest.IriRelativeResolution_CompareRelativeAndOriginalHttpWithUnicodeAndReservedCharIriOff_AllPropertiesTheSame.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriTest.Iri_804110_TryCreateUri_ShouldNotThrowIndexOutOfRange.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests_FullRun.XML - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IdnDnsSafeHostTest.IdnDnsSafeHost_SingleLabelAllExceptIntranet_Unicode.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriRelativeFileResolutionTest.IriRelativeResolution_CompareImplcitAndExplicitFileWithNoUnicode_AllPropertiesTheSame.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriRelativeResolutionTest.Uri_Relative_BaseVsAbsolute_ReturnsFullAbsolute.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriEscapingTest.UriAbsoluteEscaping_EscapeBufferRealloc.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriIsWellFormedUriStringTest.UriIsWellFormed_NewRelativeWithKnownSchemeAndQuery_SuccessButNotWellFormed.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriTest.Iri_UnicodePlane0.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriRelativeResolutionTest.Uri_Relative_BaseVsFileLikeUri_MissingRootSlash_ThrowsUriFormatException.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriIsWellFormedUriStringTest.UriIsWellFormed_NewAbsoluteUnregisteredAsRelative_Throws.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriRelativeFileResolutionTest.IriRelativeResolution_CompareImplcitAndExplicitFileWithReservedChar_AllPropertiesTheSame.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriRelativeFileResolutionTest.IriRelativeResolution_CompareImplcitAndExplicitUncWithUnicodeIriOn_AllPropertiesTheSame.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriRelativeFileResolutionTest.IriRelativeResolution_CompareImplcitAndExplicitFileWithUnicodeAndReservedCharIriOn_AllPropertiesTheSame.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriIsWellFormedUriStringTest.UriMakeRelative_DifferentHost_ReturnsSecondUri.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriIsWellFormedUriStringTest.UriIsWellFormed_AbsoluteWithColonToRelative_AppendsDotSlash.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriIsWellFormedUriStringTest.UriIsWellFormed_NewRelativeWithUnknownSchemeAndQuery_Throws.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriRelativeResolutionTest.Uri_Relative_BaseVsDoubleCharColinChar_ReturnsCharColinChar.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriMailToTest.UriMailTo_SchemeAndBackslash_Throws.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriIsWellFormedUriStringTest.UriMakeRelative_ExplicitDosFileVsUncFile_ReturnsSecondUri.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriMailToTest.UriMailTo_EAI_SomeEscaping.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IdnHostNameValidationTest.IdnHost_GopherFqdn_Success.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriRelativeResolutionTest.Uri_Relative_BaseMadeRelativeToLastSlash_ReturnsDotSlash.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IdnHostNameValidationTest.IdnHost_Internal_Call_ThrowsException.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriIsWellFormedUriStringTest.UriIsWellFormed_RelativeWithPercentAndColon_Failure.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriEscapingTest.UriFile_ImplicitDosFile_QueryNotAllowed.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriEscapingTest.UriFile_ImplicitDosFile_FragmentNotAllowed.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriTest.Iri_EscapedReservedCharacters.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriRelativeFileResolutionTest.IriRelativeResolution_CompareImplcitAndOriginalFileWithNoUnicode_AllPropertiesTheSame.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriRelativeResolutionTest.Uri_Relative_BaseVsAuthority_ReturnsBaseSchemePlusAuthority.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriIsWellFormedUriStringTest.UriIsWellFormed_AbsoluteWellFormed_Success.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriEscapingTest.UriUnescapeInvalid_AsciiIncompleteUtf8AsciiIriOn_InvalidUtf8LeftAlone.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriTest.Iri_ValidateVeryLongInputString_EscapeUriString.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriTest.Iri_ValidateVeryLongInputString_EscapeDataString.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriRelativeResolutionTest.Uri_Relative_BaseVsFragment_ReturnsBasePlusFragment.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriRelativeResolutionTest.Uri_Relative_BaseVsQueryAndFragment_ReturnsBaseAuthorityAndPathPlusQueryAndFragment.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriIsWellFormedUriStringTest.UriMakeRelative_ImplicitFileDifferentBaseWithColon_ReturnsSecondUri.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.UriIsWellFormedUriStringTest.UriMakeRelative_DifferentPort_ReturnsSecondUri.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriTest.Iri_829158_IncorrectNormalization.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IriTest.Iri_IncompleteEscapedCharacter.xml - [ ] System.Runtime\4.0.0.0\Uri\UriTests\NCLFunctional.UriTest.IdnHostNameValidationTest.IdnHost_UnknownFqdn_Success.xml Coverage reports, coverage xml files, and detailed json lists of each piece of missing coverage and the corresponding ToF test that fills it are available on request. " +6584 area-System.Net Make WebUtility.UrlDecoder a struct Follow-up from #6538: basically the same changes except for the `System.Buffers`-related ones, since we wanted to avoid a dependency on that for the package `WebUtility` lives in. cc @stephentoub +6589 area-System.Diagnostics Add a production assert facility It is possible to use `Debug.Assert` in `DEBUG` builds to assert runtime conditions. The Base Class Library currently has no way to assert something in non-debug builds. That's a pity because in many applications it is a prudent choice to leave (cheap) assertions enabled in production. Many projects do not wish to make use of Code Contracts. It seems heavy-weight to pull in Code Contracts just to have an assert method. Please add a release build assert to the BCL. Here are some naming proposals: ``` Debug.ReleaseAssert(...) Assert.Debug.IsTrue(...); Assert.Release.IsTrue(...); ``` Another thing that makes `Debug.Assert` unusable in production is that it pops up a dialog box or crashes the process. This is inappropriate with ASP.NET where you normally want to simply abort the current HTTP request and let the process live. It's also inappropriate in any form of client-side GUI app. Frankly, the Abort-Retry-Cancel dialog that pops up is ... not very nice. Most apps are not overly concerned with state corruption. A `FailFast`-like approach is not desirable. Therefore, the new assert functions should merely throw an `AssertFailedException`. If the developer chooses to add a catch-all top-level handler to his request processing then so be it. The assertion failure exception will contain the stack trace pointing to the location of the error. It will be fairly easy to debug the assertion failure from logging output. The new assertion facility should _not_ be configurable to do something else (e.g. log and `FailFast`). Developers should be able to rely on the exact exception throwing behavior outlined above. When I see a production assert in foreign code I want to know what it does. I don't want the possibility that some developer-provided hook is called. Another benefit is that the whole ecosystem can standardize on this `AssertFailedException` class. All tools and testing frameworks can learn to understand it. The `AssertFailedException` is useful by itself, for example to signify unreachable code: ``` switch (...) { case: return 1; default: throw new AssertFailedException(); } ``` This would _not_ be possible with `Assert(false)` because the compiler must know that all paths return a value or throw. To help with this scenario, we could as a `class UnreachableException : AssertFailedException`. Now, tools can standardize on that one as well. When Resharper generates a `switch` it can use this exception type, for example. In this issue I have outlined the approach that I have used over 5 years in a 100 kLOC codebase. I found it to work very well. +6591 area-System.IO Fix System.IO.FileSystem handling of symlinks "We've visited this topic a few times... hopefully this is the last. We previously misunderstood some of how Windows handles symlinks, leading us to make some invalid choices on Unix. This addresses those issues. For the most part with this commit, we now match Windows behavior on Unix wherever possible, while also trying to do something sensible on the Unix side. The only notable difference now comes into play for broken symlinks, due to a fundamental difference between symlinks on Windows and Unix: on Windows, a symlink is created as either a file or directory symlink and thus .NET can tell which it is even if it's broken... on Unix, a symlink only stores a path to its target, so when it's broken, there's no information about whether it's intended to be a file or a directory. As a result, we fall back to always treating it as a file. To help highlight the behavior, consider this set up: - TargetDir - normal directory - LinkDir - a symlink to TargetDir - BrokenLinkDir - a symlink for a directory that's been deleted - TargetFile.txt - normal file - LinkFile.txt - a symlink to TargetFile.txt - BrokenLinkFile.txt - a symlink to a file that's been deleted - ReadonlyTargetFile.txt - a file attributed as readonly - LinkReadonlyFile.txt - a link to ReadonlyTargetFile With that, this program: ``` C# using System; using System.IO; using System.Linq; using static System.Console; class Program { static void Main() { WritePathDetails( ""TargetDir"", ""LinkDir"", ""BrokenLinkDir"", ""TargetFile.txt"", ""LinkFile.txt"", ""BrokenLinkFile.txt"", ""ReadonlyTargetFile.txt"", ""LinkReadonlyFile.txt""); } static void WritePathDetails(params string[] paths) { foreach (string path in paths) { WriteLine($""Path : {Try(() => Path.GetFileName(path))}""); WriteLine($""File.Exists : {Try(() => File.Exists(path))}""); WriteLine($""FileInfo.Exists : {Try(() => new FileInfo(path).Exists)}""); WriteLine($""Dir.Exists : {Try(() => Directory.Exists(path))}""); WriteLine($""DirInfo.Exists : {Try(() => new DirectoryInfo(path).Exists)}""); WriteLine($""FileInfo.Length : {Try(() => new FileInfo(path).Length)}""); WriteLine($""FileStream.Length : {Try(() => { using (var fs = File.OpenRead(path)) return fs.Length; })}""); WriteLine($""FileInfo.Attributes : {Try(() => new FileInfo(path).Attributes)}""); WriteLine($""DirInfo.Attributes : {Try(() => new DirectoryInfo(path).Attributes)}""); WriteLine($""Dir.Enumerate : {Try(() => Directory.EnumerateFiles(path).Count())}""); WriteLine($""DirInfo.Enumerate : {Try(() => new DirectoryInfo(path).EnumerateFiles().Count())}""); WriteLine(); } } static object Try(Func func) { try { return func(); } catch (Exception e) { return $""{e.GetType().Name}: {e.Message}""; } } } ``` now outputs the following:
WindowsUnix
Path                : TargetDir File.Exists         : False FileInfo.Exists     : False Dir.Exists          : True DirInfo.Exists      : True FileInfo.Length     : FileNotFoundException FileStream.Length   : UnauthorizedAccessException FileInfo.Attributes : Directory DirInfo.Attributes  : Directory Dir.Enumerate       : 18 DirInfo.Enumerate   : 18  Path                : LinkDir File.Exists         : False FileInfo.Exists     : False Dir.Exists          : True DirInfo.Exists      : True FileInfo.Length     : FileNotFoundException FileStream.Length   : UnauthorizedAccessException FileInfo.Attributes : Directory, ReparsePoint DirInfo.Attributes  : Directory, ReparsePoint Dir.Enumerate       : 18 DirInfo.Enumerate   : 18  Path                : BrokenLinkDir File.Exists         : False FileInfo.Exists     : False Dir.Exists          : True DirInfo.Exists      : True FileInfo.Length     : FileNotFoundException FileStream.Length   : UnauthorizedAccessException FileInfo.Attributes : Directory, ReparsePoint DirInfo.Attributes  : Directory, ReparsePoint Dir.Enumerate       : DirectoryNotFoundException DirInfo.Enumerate   : DirectoryNotFoundException  Path                : TargetFile.txt File.Exists         : True FileInfo.Exists     : True Dir.Exists          : False DirInfo.Exists      : False FileInfo.Length     : 70 FileStream.Length   : 70 FileInfo.Attributes : Archive DirInfo.Attributes  : Archive Dir.Enumerate       : IOException DirInfo.Enumerate   : IOException  Path                : LinkFile.txt File.Exists         : True FileInfo.Exists     : True Dir.Exists          : False DirInfo.Exists      : False FileInfo.Length     : 0 FileStream.Length   : 70 FileInfo.Attributes : Archive, ReparsePoint DirInfo.Attributes  : Archive, ReparsePoint Dir.Enumerate       : IOException DirInfo.Enumerate   : IOException  Path                : BrokenLinkFile.txt File.Exists         : True FileInfo.Exists     : True Dir.Exists          : False DirInfo.Exists      : False FileInfo.Length     : 0 FileStream.Length   : FileNotFoundException FileInfo.Attributes : Archive, ReparsePoint DirInfo.Attributes  : Archive, ReparsePoint Dir.Enumerate       : IOException DirInfo.Enumerate   : IOException  Path                : ReadonlyTargetFile.txt File.Exists         : True FileInfo.Exists     : True Dir.Exists          : False DirInfo.Exists      : False FileInfo.Length     : 70 FileStream.Length   : 70 FileInfo.Attributes : ReadOnly, Archive DirInfo.Attributes  : ReadOnly, Archive Dir.Enumerate       : IOException DirInfo.Enumerate   : IOException  Path                : LinkReadonlyFile.txt File.Exists         : True FileInfo.Exists     : True Dir.Exists          : False DirInfo.Exists      : False FileInfo.Length     : 0 FileStream.Length   : 70 FileInfo.Attributes : Archive, ReparsePoint DirInfo.Attributes  : Archive, ReparsePoint Dir.Enumerate       : IOException DirInfo.Enumerate   : IOException
Path                : TargetDir File.Exists         : False FileInfo.Exists     : False Dir.Exists          : True DirInfo.Exists      : True FileInfo.Length     : FileNotFoundException FileStream.Length   : UnauthorizedAccessException FileInfo.Attributes : Directory DirInfo.Attributes  : Directory Dir.Enumerate       : 18 DirInfo.Enumerate   : 18  Path                : LinkDir File.Exists         : False FileInfo.Exists     : False Dir.Exists          : True DirInfo.Exists      : True FileInfo.Length     : FileNotFoundException FileStream.Length   : UnauthorizedAccessException FileInfo.Attributes : Directory, ReparsePoint DirInfo.Attributes  : Directory, ReparsePoint Dir.Enumerate       : 18 DirInfo.Enumerate   : 18  Path                : BrokenLinkDir File.Exists         : True FileInfo.Exists     : True Dir.Exists          : False DirInfo.Exists      : False FileInfo.Length     : 6 FileStream.Length   : FileNotFoundException FileInfo.Attributes : ReparsePoint DirInfo.Attributes  : ReparsePoint Dir.Enumerate       : DirectoryNotFoundException DirInfo.Enumerate   : DirectoryNotFoundException  Path                : TargetFile.txt File.Exists         : True FileInfo.Exists     : True Dir.Exists          : False DirInfo.Exists      : False FileInfo.Length     : 70 FileStream.Length   : 70 FileInfo.Attributes : Normal DirInfo.Attributes  : Normal Dir.Enumerate       : IOException DirInfo.Enumerate   : IOException  Path                : LinkFile.txt File.Exists         : True FileInfo.Exists     : True Dir.Exists          : False DirInfo.Exists      : False FileInfo.Length     : 14 FileStream.Length   : 70 FileInfo.Attributes : ReparsePoint DirInfo.Attributes  : ReparsePoint Dir.Enumerate       : IOException DirInfo.Enumerate   : IOException  Path                : BrokenLinkFile.txt File.Exists         : True FileInfo.Exists     : True Dir.Exists          : False DirInfo.Exists      : False FileInfo.Length     : 7 FileStream.Length   : FileNotFoundException FileInfo.Attributes : ReparsePoint DirInfo.Attributes  : ReparsePoint Dir.Enumerate       : DirectoryNotFoundException DirInfo.Enumerate   : DirectoryNotFoundException  Path                : ReadonlyTargetFile.txt File.Exists         : True FileInfo.Exists     : True Dir.Exists          : False DirInfo.Exists      : False FileInfo.Length     : 70 FileStream.Length   : 70 FileInfo.Attributes : ReadOnly DirInfo.Attributes  : ReadOnly Dir.Enumerate       : IOException DirInfo.Enumerate   : IOException  Path                : LinkReadonlyFile.txt File.Exists         : True FileInfo.Exists     : True Dir.Exists          : False DirInfo.Exists      : False FileInfo.Length     : 22 FileStream.Length   : 70 FileInfo.Attributes : ReparsePoint DirInfo.Attributes  : ReparsePoint Dir.Enumerate       : IOException DirInfo.Enumerate   : IOException
Interesting things to notice: - The only meaningful differences are for the ""Broken"" cases. - On Windows, symlinks are empty files and thus have 0 length. On Unix, they contain a path and thus have a length proportional to that path. - On Windows, files sometimes include an Archive attribute. This is Windows-specific and we don't include that attribute on Unix. Fixes #6556 cc: @ianhays, @bartonjs, @joshfree, @palladia, @andschwa " +6592 area-System.Net HttpClient ctor failed on Mac due to Unable to load DLL 'System.Security.Cryptography.Native' Call stack: Unhandled exception of type 'System.TypeInitializationException': System.TypeInitializationException : The type initializer for 'System.Net.Http.CurlHandler' threw an exception.\n---- System.TypeInitializationException : The type initializer for 'Http' threw an exception.\n-------- System.TypeInitializationException : The type initializer for 'HttpInitializer' threw an exception.\n------------ System.TypeInitializationException : The type initializer for 'CryptoInitializer' threw an exception.\n---------------- System.DllNotFoundException : Unable to load DLL 'System.Security.Cryptography.Native': The specified module could not be found.\n (Exception from HRESULT: 0x8007007E) at System.Net.Http.CurlHandler..ctor() at System.Net.Http.HttpClient..ctor() +6598 area-Infrastructure System.Composition.* libraries do not produce a NuGet package "On top of this, the assemblies do not list an AssemblyVersion. These were ""special"" libraries in that they were already previously shipped as a [NuGet package](https://www.nuget.org/packages/Microsoft.Composition/1.0.30) before we moved them into corefx. We should come up with a story for them going forward. The previous version used was 1.0.30, so we should bump up from that at the very least. There is also the question of whether we want to use the old name (""Microsoft.Composition"") or switch to matching the assembly names (which might be difficult since there's 5 of them). " +6600 area-System.Net System.Net.CredentialCache: Avoid dictionary enumerator allocations Use `Dictionary`'s struct enumerator with `foreach` instead of using the enumerator as `IDictionaryEnumerator`, which boxes the struct. Test line & branch coverage over the changed lines is 100%. cc: @stephentoub @davidsh +6602 area-System.IO Add back managed implementation of System.IO.Compression We want to put System.IO.Compression into NetStandard.Library (not NetStandard.Platform) but in order to do that we need to have a fallback implementation that is pure IL that can be used on new platforms that may not have the native dependency supported. cc @ericstj @KrzysztofCwalina +6606 area-System.Net Kerberos ticket is not fetched when target is a user The xplat NegotiateStream implementation is able to successfully use Kerberos auth when the target of `AuthenticateAsClientAsync` is a service principal eg. HOST/machine, HTTP@machine etc. However, if the target is a user like foo@domainfqdn, the auth is failing. Perhaps in this case, the `gss_import_name` needs to be called with some OID other than `GSS_KRB5_NT_PRINCIPAL_NAME` +6607 area-System.Net Add HttpClientHandler test for proxies We don't currently have any functional tests in the repo for using HTTP proxies. This commit adds a very simple loopback GET request proxy server, just enough to verify that HttpClient does go through the specified proxy and pass credentials if requested. (When we get better infrastructure in place for this kind of thing, we can remove the proxy implementation and replace the test, but for now, this at least provides some automated verification cross-platform.) cc: @davidsh, @Petermarcu, @kapilash +6614 area-Infrastructure Produce package for System.Composition We currently don't produce packages for System.Composition.*. We should do so that we've a single tree for shipping fixes and features (it's currently only producing packages in our old internal Roxel tree). It's also worth pointing out that the Roslyn workspace layer has a dependency on the `Microsoft.Composition` package. +6615 area-Infrastructure Update clean.cmd to kill Roslyn compiler long running task. "@joperezr I synced your changes to dir.props for adding the Roslyn compiler to the build process. With that change we get a long running task (VBCSCompiler.exe) after we finish building that prevents us from then running ""git clean -xdf"" without first manually killing that task. (can't delete the tools dir) I'd like to request a change perhaps in the clean.cmd script to kill that task if it is still running. Making this change in the corefx repo would be ideal since we try to keep the scripts in the Wcf repo in sync with corefx. " +6617 area-Infrastructure OSX runs are run with elevated permissions by default on innerloop and outerloop OSX runs are launched by lauchdaemon, which runs as root, and runs all tests elevated. This might cause bugs in innerloop to be missed. cc @joshfree +6618 area-System.Security Break X509Certificates dependency on FileSystemWatcher I'm looking at our dependencies and noticed that the unix implementation of X509Certificates depends on FileSystemWatcher which we should try to break the dependency on. https://github.com/dotnet/corefx/commit/0522e19dc6c06bd80c1f80232fd9600862cdb70c#diff-9c28d44206dff30cadeb4ac3e316aabaR32 I don't know the reliability of FileSystemWatcher on unix but it is notoriously bad on windows and we shouldn't have a dependency on it from a low level library. +6621 area-System.Globalization System.Globalization.Tests.NormalizationAll.NormalizeTest fails with OOM on Windows Nano ``` Discovering: System.Globalization.Extensions.Tests 14:12:40 Discovered: System.Globalization.Extensions.Tests 14:12:40 Starting: System.Globalization.Extensions.Tests 14:12:40 System.Globalization.Tests.NormalizationAll.NormalizeTest [FAIL] 14:12:40 System.TypeInitializationException : The type initializer for 'System.Globalization.Tests.NormalizationAll' threw an exception. 14:12:40 ---- System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:12:40 Stack Trace: 14:12:40 at System.Globalization.Tests.NormalizationAll.NormalizeTest() 14:12:40 ----- Inner Stack Trace ----- 14:12:40 at System.Globalization.Tests.NormalizationAll..cctor() 14:12:40 Finished: System.Globalization.Extensions.Tests ``` Test result [here](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_winnano_debug_tst/6/console) +6622 area-System.Diagnostics System.Diagnostics.Process failures on Windows Nano ``` Discovering: System.Diagnostics.Process.Tests 14:11:45 Discovered: System.Diagnostics.Process.Tests 14:11:45 Starting: System.Diagnostics.Process.Tests 14:11:46 **System.Diagnostics.Tests.ProcessStandardConsoleTests.TestChangesInConsoleEncoding** [FAIL] 14:11:46 Assert+WrapperXunitException : File path: d:\j\workspace\outerloop_win---ce410c48\src\System.Diagnostics.Process\tests\ProcessStandardConsoleTests.cs. Line: 26 14:11:46 ---- Assert.Equal() Failure 14:11:46 Expected: 65001 14:11:46 Actual: 437 14:11:46 Stack Trace: 14:11:46 TestUserCredentialsPropertiesOnWindows: NetUserAdd failed: The account already exists 14:11:46 at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) 14:11:46 at Assert.Equal[T](T expected, T actual, String path, Int32 line) 14:11:46 at System.Diagnostics.Tests.ProcessStandardConsoleTests.b__1_0(Int32 expectedCodePage) 14:11:46 at System.Diagnostics.Tests.ProcessStandardConsoleTests.TestChangesInConsoleEncoding() 14:11:46 ----- Inner Stack Trace ----- 14:11:46 at Assert.Equal[T](T expected, T actual, String path, Int32 line) 14:11:48 ** System.Diagnostics.Tests.ProcessThreadTests.TestStartAddressProperty** [FAIL] 14:11:48 Assert+WrapperXunitException : File path: d:\j\workspace\outerloop_win---ce410c48\src\System.Diagnostics.Process\tests\ProcessThreadTests.cs. Line: 113 14:11:48 ---- Assert.Equal() Failure 14:11:48 Expected: False 14:11:48 Actual: True 14:11:48 Stack Trace: 14:11:48 at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) 14:11:48 at Assert.Equal[T](T expected, T actual, String path, Int32 line) 14:11:48 at System.Diagnostics.Tests.ProcessThreadTests.TestStartAddressProperty() 14:11:48 ----- Inner Stack Trace ----- 14:11:48 at Assert.Equal[T](T expected, T actual, String path, Int32 line) 14:11:49 **System.Diagnostics.Tests.ProcessWaitingTests.MultipleProcesses_StartAllKillAllWaitAll **[FAIL] 14:11:49 System.ComponentModel.Win32Exception : Not enough quota is available to process this command 14:11:49 Stack Trace: 14:11:49 at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) 14:11:49 at System.Diagnostics.Process.Start() 14:11:49 at System.Diagnostics.Tests.ProcessWaitingTests.MultipleProcesses_StartAllKillAllWaitAll() ``` Test result [here](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_winnano_debug_tst/6/console) +6623 area-System.Data System.Data.SqlClient.ManualTesting tests failing on Windows Nano ``` 14:11:38 Discovering: System.Data.SqlClient.ManualTesting.Tests 14:11:38 Discovered: System.Data.SqlClient.ManualTesting.Tests 14:11:38 Starting: System.Data.SqlClient.ManualTesting.Tests 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ReaderTest.TestMain [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Pubs 14:11:38 Stack Trace: 14:11:38 Test Failed! 14:11:38 Please compare baseline : F:\j\workspace\outerloop_win---75965e55\bin\tests\Windows_NT.AnyCPU.Debug\System.Data.SqlClient.ManualTesting.Tests\dnxcore50\MultipleResultsTest.bsl with output :F:\j\workspace\outerloop_win---75965e55\bin\tests\Windows_NT.AnyCPU.Debug\System.Data.SqlClient.ManualTesting.Tests\dnxcore50\MultipleResultsTest.out 14:11:38 Comparison Results : 14:11:38 ** DIFF at line 0 14:11:38 A : System.Exception: Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 E : MultipleErrorHandling SqlConnection 14:11:38 ** DIFF at line 1 14:11:38 A : at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 E : **** ExecuteNonQuery ***** 14:11:38 ** DIFF at line 2 14:11:38 A : at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 E : SqlException: Error 1 14:11:38 ** DIFF at line 3 14:11:38 A : at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 E : Error 2 14:11:38 ** DIFF at line 4 14:11:38 A : at System.Data.SqlClient.ManualTesting.Tests.MultipleResultsTest.RunDataTest() 14:11:38 E : Error 3 14:11:38 ** DIFF at line 5 14:11:38 A : at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.RunTest() 14:11:38 E : Error 4 14:11:38 ** MISSING 14:11:38 5 : Error 46 : Error 57 : 08 : 19 : 310 : 411 : 512 : 613 : 714 : 815 : 916 : 1017 : 1118 : **** ExecuteScalar ****19 : *** SQL CONNECTION INFO MESSAGE : 0 ****20 : **** ExecuteReader ****21 : *** SQL CONNECTION INFO MESSAGE : 0 ****22 : NextResult23 : *** SQL CONNECTION INFO MESSAGE : 1 ****24 : SqlException: Error 125 : NextResult26 : *** SQL CONNECTION INFO MESSAGE : 3 ****27 : NextResult28 : *** SQL CONNECTION INFO MESSAGE : 4 ****29 : SqlException: Error 230 : NextResult31 : *** SQL CONNECTION INFO MESSAGE : 5 ****32 : NextResult33 : *** SQL CONNECTION INFO MESSAGE : 6 ****34 : SqlException: Error 335 : NextResult36 : *** SQL CONNECTION INFO MESSAGE : 7 ****37 : NextResult38 : *** SQL CONNECTION INFO MESSAGE : 8 ****39 : SqlException: Error 440 : NextResult41 : *** SQL CONNECTION INFO MESSAGE : 9 ****42 : NextResult43 : *** SQL CONNECTION INFO MESSAGE : 10 ****44 : SqlException: Error 545 : NextResult46 : *** SQL CONNECTION INFO MESSAGE : 11 **** 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Pubs() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ReaderTest.TestMain() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ExceptionTest.VariousExceptionTests [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ExceptionTest.VariousExceptionTests() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ParallelTransactionsTest.MultipleExecutesInSameTransactionTest_ShouldThrowsUnsupported_Katmai [FAIL] 14:11:38 System.NullReferenceException : Object reference not set to an instance of an object. 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.PopulateConnectionStrings() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ParallelTransactionsTest.MultipleExecutesInSameTransactionTest_ShouldThrowsUnsupported_Katmai() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ExceptionTest.ExceptionTests [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ExceptionTest.ExceptionTests() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ExceptionTest.WarningsBeforeRowsTest [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ExceptionTest.WarningsBeforeRowsTest() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ExceptionTest.IndependentConnectionExceptionTest [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ExceptionTest.IndependentConnectionExceptionTest() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ExceptionTest.WarningTest [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ExceptionTest.WarningTest() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DDAsyncTest.ExecuteCommand_WithNewConnection_ShouldPerformAsyncByDefault [FAIL] 14:11:38 System.AggregateException : One or more errors occurred. (Could not find a valid connection string for the key: SQL2005_Northwind) (Could not find a valid connection string for the key: SQL2005_Northwind) 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) 14:11:38 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) 14:11:38 at System.Threading.Tasks.Task.WaitAll(Task[] tasks) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DDAsyncTest.ExecuteCommand_WithNewConnection_ShouldPerformAsyncByDefault() 14:11:38 ----- Inner Stack Trace #1 (System.Exception) ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DDAsyncTest.d__3.MoveNext() 14:11:38 ----- Inner Stack Trace #2 (System.Exception) ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DDAsyncTest.d__3.MoveNext() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DDAsyncTest.ExecuteCommand_WithSharedConnection_ShouldPerformAsyncByDefault [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DDAsyncTest.ExecuteCommand_WithSharedConnection_ShouldPerformAsyncByDefault() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DDAsyncTest.OpenConnection_WithAsyncTrue_ThrowsNotSupportedException [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DDAsyncTest.OpenConnection_WithAsyncTrue_ThrowsNotSupportedException() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DateTimeTest.TypeVersionKnobTest [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Master 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Master() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DateTimeTest.TypeVersionKnobTest() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.TransactionTest.TestKatmai [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.TransactionTest.TestKatmai() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.TransactionTest.TestYukon [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.TransactionTest.TestYukon() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ConnectionPoolTest.ConnectionPool_Nwnd9 [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ConnectionPoolTest..ctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ConnectionPoolTest.ConnectionPool_Nwnd9Mars [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ConnectionPoolTest..ctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ConnectionPoolTest.ConnectionPool_Nwnd10Mars [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ConnectionPoolTest..ctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ConnectionPoolTest.ConnectionPool_Nwnd10 [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ConnectionPoolTest..ctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MultipleResultsTest.TestMain [FAIL] 14:11:38 Assert.True() Failure 14:11:38 Expected: True 14:11:38 Actual: False 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MultipleResultsTest.TestMain() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncTimeoutTest [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncTimeoutTest() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncExecuteReaderTest4 [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncExecuteReaderTest4() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.AsyncTest.FailureTest [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.AsyncTest.FailureTest() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.AsyncTest.ExecuteTest [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.AsyncTest.ExecuteTest() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DateTimeTest.ReaderParameterTest [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Master 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Master() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DateTimeTest.ReaderParameterTest() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncExecuteReaderTest3 [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncExecuteReaderTest3() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.WeakRefTest.TestReaderNonMars [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Pubs 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Pubs() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.WeakRefTest.TestReaderNonMars() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.WeakRefTest.TestTransactionSingle [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Pubs 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Pubs() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.WeakRefTest.TestTransactionSingle() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncExecuteNonQueryTest [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncExecuteNonQueryTest() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DateTimeTest.SQLBU503290Test [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Master 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Master() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DateTimeTest.SQLBU503290Test() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest.MarsExecuteNonQuery_AllFlavors [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Master 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest.MarsExecuteNonQuery_AllFlavors() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Master() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSAsyncTimeoutTest [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSAsyncTimeoutTest() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest.MarsExecuteScalar_AllFlavors [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Master 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest.MarsExecuteScalar_AllFlavors() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Master() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest.MarsExecuteReader_RPC_NoGC [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Master 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest.MarsExecuteReader_RPC_NoGC() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Master() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest.MarsExecuteReader_StoredProcedure_WithGC [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Master 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest.MarsExecuteReader_StoredProcedure_WithGC() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Master() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncBusyReaderTest [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncBusyReaderTest() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest.MarsExecuteReader_Text_WithGC [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Master 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest.MarsExecuteReader_Text_WithGC() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Master() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest.MarsExecuteReader_Text_NoGC [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Master 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest.MarsExecuteReader_Text_NoGC() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Master() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSSessionPoolingTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncExecuteReaderTest1 [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncExecuteReaderTest1() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncExecuteReaderTest2 [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.MARSTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest.MARSSyncExecuteReaderTest2() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.MARSTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd9SqlClient_NP [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind_NamedPipes 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind_NamedPipes() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd9SqlClient_NP() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd11SqlClient_NP [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2012_Northwind_NamedPipes 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2012_Northwind_NamedPipes() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd11SqlClient_NP() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd10SqlClient [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd10SqlClient() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd10SqlClient_NP [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind_NamedPipes 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind_NamedPipes() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd10SqlClient_NP() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd9SqlClient [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd9SqlClient() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.SqlNamedPipesTest.InvalidConnStringTest [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind_NamedPipes 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind_NamedPipes() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.SqlNamedPipesTest.InvalidConnStringTest() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.SqlNamedPipesTest.ValidConnStringTest [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind_NamedPipes 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind_NamedPipes() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.SqlNamedPipesTest.ValidConnStringTest() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DDMARSTest.TestMain [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DDMARSTest.TestMain() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DataTypes.XmlTest [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Master 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Master() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTypes.XmlTest() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ParallelTransactionsTest.BasicParallelTest_ShouldThrowsUnsupported_Yukon [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Pubs 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Pubs() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ParallelTransactionsTest.BasicParallelTest_ShouldThrowsUnsupported_Yukon() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ParallelTransactionsTest.MultipleExecutesInSameTransactionTest_ShouldThrowsUnsupported_Yukon [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Pubs 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Pubs() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ParallelTransactionsTest.MultipleExecutesInSameTransactionTest_ShouldThrowsUnsupported_Yukon() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.ParallelTransactionsTest.BasicParallelTest_ShouldThrowsUnsupported_Katmai [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2008_Pubs 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Pubs() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.ParallelTransactionsTest.BasicParallelTest_ShouldThrowsUnsupported_Katmai() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.WeakRefTestYukonSpecific.TestReaderMars [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.WeakRefTestYukonSpecific.TestReaderMars() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.DataTypes.MaxTypesTest [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Master 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Master() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTypes.MaxTypesTest() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.WeakRefTestYukonSpecific.TestTransactionSingle [FAIL] 14:11:38 System.Exception : Could not find a valid connection string for the key: SQL2005_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2005_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.WeakRefTestYukonSpecific.TestTransactionSingle() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest.TimeoutCancel [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest.TimeoutCancel() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest.CancelAndDisposePreparedCommand [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest.CancelAndDisposePreparedCommand() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest.MultiThreadedCancel_NonAsync [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest.MultiThreadedCancel_NonAsync() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest..cctor() 14:11:38 System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest.TimeOutDuringRead [FAIL] 14:11:38 System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest' threw an exception. 14:11:38 ---- System.Exception : Could not find a valid connection string for the key: SQL2008_Northwind 14:11:38 Stack Trace: 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest.TimeOutDuringRead() 14:11:38 ----- Inner Stack Trace ----- 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Northwind() 14:11:38 at System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest..cctor() 14:11:39 System.Data.SqlClient.ManualTesting.Tests.SqlRandomStress.TestMain [FAIL] 14:11:39 System.Exception : Could not find a valid connection string for the key: SQL2008_Master 14:11:39 Stack Trace: 14:11:39 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionStringFromXml(String key) 14:11:39 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.GetConnectionString(String connectionStringName) 14:11:39 at System.Data.SqlClient.ManualTesting.Tests.DataTestClass.get_SQL2008_Master() 14:11:39 at System.Data.SqlClient.ManualTesting.Tests.SqlRandomStress.TestMain() 14:11:39 Finished: System.Data.SqlClient.ManualTesting.Tests 14:11:39 14:11:39 === TEST EXECUTION SUMMARY === ``` **System.Data.SqlClient.ManualTesting.Tests Total: 66, Errors: 0, Failed: 58, Skipped: 0, Time: 0.947s** Test result [here](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_winnano_debug_tst/6/console) +6624 area-System.Collections OOM exceptions from System.Collections Tests on Windows Nano ``` 14:10:54 Discovering: System.Collections.Tests 14:10:54 Discovered: System.Collections.Tests 14:10:55 Starting: System.Collections.Tests 14:10:58 System.Collections.Tests.InternalHashCodeTests.OutOfBoundsRegression [FAIL] 14:10:58 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:10:58 Stack Trace: 14:10:58 at System.Collections.Tests.TestData.d__0.MoveNext() 14:10:58 at System.Collections.Tests.InternalHashCodeTests.OutOfBoundsRegression() 14:11:30 System.Collections.Tests.Perf_List.Clear(size: 10000) [FAIL] 14:11:30 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:11:30 Stack Trace: 14:11:30 at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) 14:11:30 at System.Collections.Tests.Perf_List.Clear(Int32 size) 14:11:30 System.Collections.Tests.Perf_List.Clear(size: 100000) [FAIL] 14:11:30 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:11:30 Stack Trace: 14:11:30 at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) 14:11:30 at System.Collections.Tests.Perf_List.Clear(Int32 size) 14:11:30 Finished: System.Collections.Tests 14:11:30 14:11:30 === TEST EXECUTION SUMMARY === ``` **System.Collections.Tests Total: 36399, Errors: 0, Failed: 3, Skipped: 0, Time: 34.902s** +6625 area-System.Console System.Console test failure on Windows Nano ``` 14:11:37 WindowAndCursorProps.Title [FAIL] 14:11:37 Assert+WrapperXunitException : File path: d:\j\workspace\outerloop_win---ce410c48\src\System.Console\tests\WindowAndCursorProps.cs. Line: 124 14:11:37 ---- Assert.Equal() Failure 14:11:37 ↓ (pos 0) 14:11:37 Expected: Title set by unit test 14:11:37 Actual: 14:11:37 ↑ (pos 0) 14:11:37 Stack Trace: 14:11:37 at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) 14:11:37 at Assert.Equal(String expected, String actual, String path, Int32 line) 14:11:37 at WindowAndCursorProps.Title() 14:11:37 ----- Inner Stack Trace ----- 14:11:37 at Assert.Equal(String expected, String actual, String path, Int32 line) 14:11:37 Finished: System.Console.Tests 14:11:37 14:11:37 === TEST EXECUTION SUMMARY === 14:11:37 System.Console.Tests Total: 80, Errors: 0, Failed: 1, Skipped: 0, Time: 0.892s ``` Test result [here](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_winnano_debug_tst/6/console) +6626 area-System.IO System.IO.FileSystem.Tests throw OOM on windows nano ``` 14:13:21 Discovered: System.IO.FileSystem.Tests 14:13:22 Starting: System.IO.FileSystem.Tests 14:13:22 symbolic link created for C:\Users\dotnet-bot\AppData\Local\Temp\Directory_Exists_n14uv1wg.rru\SymlinkToNewDirectory_327 <<===>> C:\Users\dotnet-bot\AppData\Local\Temp\Directory_Exists_n14uv1wg.rru\SymlinkToNewDirectory_324 14:13:23 symbolic link created for C:\Users\dotnet-bot\AppData\Local\Temp\FileInfo_Exists_xtqquk01.5qz\SymLinksMayExistIndependentlyOfTarget_92 <<===>> C:\Users\dotnet-bot\AppData\Local\Temp\FileInfo_Exists_xtqquk01.5qz\SymLinksMayExistIndependentlyOfTarget_91 14:13:23 symbolic link created for C:\Users\dotnet-bot\AppData\Local\Temp\File_GetSetAttributes_pdlxjhto.k5i\SymLinksAreReparsePoints_114 <<===>> C:\Users\dotnet-bot\AppData\Local\Temp\File_GetSetAttributes_pdlxjhto.k5i\SymLinksAreReparsePoints_113 14:13:23 symbolic link created for C:\Users\dotnet-bot\AppData\Local\Temp\File_GetSetAttributes_tgxbi3ng.xuy\SymLinksReflectTargetAttributes_127 <<===>> C:\Users\dotnet-bot\AppData\Local\Temp\File_GetSetAttributes_tgxbi3ng.xuy\SymLinksReflectTargetAttributes_126 14:13:24 System.IO.Tests.Perf_FileStream.Read(useAsync: True, bufferSize: 512, totalSize: 10000000) [FAIL] 14:13:24 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:24 Stack Trace: 14:13:24 [FATAL] System.OutOfMemoryException 14:13:24 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:24 Stack Trace: 14:13:24 System.IO.Tests.Perf_FileStream.Read(useAsync: False, bufferSize: 512, totalSize: 10000000) [FAIL] 14:13:24 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:24 Stack Trace: 14:13:24 [FATAL] System.OutOfMemoryException 14:13:24 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:24 Stack Trace: 14:13:24 System.IO.Tests.File_ReadWriteAllBytes.ReadFileOver2GB [FAIL] 14:13:24 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:24 Stack Trace: 14:13:24 [FATAL] System.OutOfMemoryException 14:13:24 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:24 Stack Trace: 14:13:24 System.IO.Tests.File_Copy_str_str_b.CopyFileWithData_MemberData(data: ['ó', 'b', '´', 0x0011, 'L', ...], readOnly: True) [FAIL] 14:13:24 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:24 Stack Trace: 14:13:24 [FATAL] System.OutOfMemoryException 14:13:24 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:24 Stack Trace: 14:13:24 System.IO.Tests.FileInfo_CopyTo_str_b.CopyFileWithData_MemberData(data: ['Y', 0x0003, 0x0001, 'á', 'g', ...], readOnly: True) [FAIL] 14:13:24 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:24 Stack Trace: 14:13:24 [FATAL] System.OutOfMemoryException 14:13:24 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:24 Stack Trace: 14:13:24 System.IO.Tests.FileInfo_CopyTo_str.CopyFileWithData_MemberData(data: [0x0097, 'Ã�', 'Z', 0x0008, 0x0011, ...], readOnly: True) [FAIL] 14:13:24 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:24 Stack Trace: 14:13:24 [FATAL] System.OutOfMemoryException 14:13:24 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:24 Stack Trace: 14:13:25 System.IO.Tests.FileInfo_CopyTo_str_b.CopyFileWithData_MemberData(data: [0x0080, 'ø', '[', 'ú', 'ô', ...], readOnly: False) [FAIL] 14:13:25 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:25 Stack Trace: 14:13:26 [FATAL] System.OutOfMemoryException 14:13:26 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:26 Stack Trace: 14:13:26 System.IO.Tests.File_Copy_str_str_b.CopyFileWithData_MemberData(data: ['Q', ';', 'û', 'r', 0x008f, ...], readOnly: False) [FAIL] 14:13:26 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:26 Stack Trace: 14:13:26 [FATAL] System.OutOfMemoryException 14:13:26 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:26 Stack Trace: 14:13:26 System.IO.Tests.FileInfo_Length.SymLinkLength [FAIL] 14:13:26 System.ComponentModel.Win32Exception : The paging file is too small for this operation to complete 14:13:26 Stack Trace: 14:13:26 [FATAL] System.OutOfMemoryException 14:13:26 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:26 Stack Trace: 14:13:27 System.IO.Tests.File_Copy_str_str.CopyFileWithData_MemberData(data: [0x008b, '#', 'î', 'H', 'ì', ...], readOnly: True) [FAIL] 14:13:27 System.IO.IOException : Not enough storage is available to process this command 14:13:27 Stack Trace: 14:13:27 [FATAL] System.OutOfMemoryException 14:13:27 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:27 Stack Trace: 14:13:27 System.IO.Tests.File_Copy_str_str.CopyFileWithData_MemberData(data: ['s', 'j', '!', 'þ', '¿', ...], readOnly: False) [FAIL] 14:13:27 System.IO.IOException : Not enough storage is available to process this command 14:13:27 Stack Trace: 14:13:27 [FATAL] System.OutOfMemoryException 14:13:27 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:27 Stack Trace: 14:13:27 System.IO.Tests.FileStream_SafeFileHandle.ThrowWhenHandlePositionIsChanged [FAIL] 14:13:27 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:27 Stack Trace: 14:13:27 [FATAL] System.OutOfMemoryException 14:13:27 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:27 Stack Trace: 14:13:28 System.IO.Tests.FileStream_Position.PositionPastEnd [FAIL] 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 [FATAL] System.OutOfMemoryException 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 System.IO.Tests.DirectoryInfo_Exists.SymlinkToNewDirectoryInfo [FAIL] 14:13:28 System.ComponentModel.Win32Exception : The paging file is too small for this operation to complete 14:13:28 Stack Trace: 14:13:28 [FATAL] System.OutOfMemoryException 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 System.IO.Tests.Directory_GetSetTimes.NullPath_ThrowsArgumentNullException [FAIL] 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 [FATAL] System.OutOfMemoryException 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 System.IO.Tests.Directory_GetSetTimes.Windows_DirectoryDoesntExist_ReturnDefaultValues [FAIL] 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 [FATAL] System.OutOfMemoryException 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 System.IO.Tests.Directory_GetSetTimes.EmptyPath_ThrowsArgumentException [FAIL] 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 [FATAL] System.OutOfMemoryException 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 System.IO.Tests.Directory_GetSetTimes.SettingUpdatesProperties [FAIL] 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 [FATAL] System.OutOfMemoryException 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 System.IO.Tests.Directory_GetSetTimes.CreationSetsAllTimes [FAIL] 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 [FATAL] System.OutOfMemoryException 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 System.IO.Tests.DirectoryInfo_GetSetTimes.SettingUpdatesProperties [FAIL] 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 [FATAL] System.OutOfMemoryException 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 System.IO.Tests.DirectoryInfo_GetSetTimes.CreationSetsAllTimes [FAIL] 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:28 [FATAL] System.OutOfMemoryException 14:13:28 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:28 Stack Trace: 14:13:29 System.IO.Tests.File_GetSetTimes.EmptyPath_ThrowsArgumentException [FAIL] 14:13:29 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:29 Stack Trace: 14:13:29 [FATAL] System.OutOfMemoryException 14:13:29 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:29 Stack Trace: 14:13:29 System.IO.Tests.File_GetSetTimes.SettingUpdatesProperties [FAIL] 14:13:29 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:29 Stack Trace: 14:13:29 [FATAL] System.OutOfMemoryException 14:13:29 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:29 Stack Trace: 14:13:29 System.IO.Tests.File_GetSetTimes.Windows_FileDoesntExist_ReturnDefaultValues [FAIL] 14:13:29 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:29 Stack Trace: 14:13:29 [FATAL] System.OutOfMemoryException 14:13:29 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:29 Stack Trace: 14:13:29 System.IO.Tests.File_GetSetTimes.NullPath_ThrowsArgumentNullException [FAIL] 14:13:29 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:29 Stack Trace: 14:13:29 [FATAL] System.OutOfMemoryException 14:13:29 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:29 Stack Trace: 14:13:29 System.IO.Tests.File_GetSetTimes.CreationSetsAllTimes [FAIL] 14:13:29 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:29 Stack Trace: 14:13:29 [FATAL] System.OutOfMemoryException 14:13:29 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 14:13:29 Stack Trace: 14:13:31 14:13:31 Unhandled Exception: OutOfMemoryException. ``` Test result [here](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_winnano_debug_tst/6/console) +6632 area-System.Net CredentialCache.Remove compat: Don't throw when key not found This PR changes `CredentialCache.Remove` to not throw in .NET Core to match the behavior of the full framework. In the full framework, `CredentialCache.Remove` does not throw when the key isn't found, which is consistent with the behavior described in the MSDN [documentation](https://msdn.microsoft.com/en-us/library/4zaz5c95%28v=vs.110%29.aspx): > If authType is null or uriPrefix is null, or no matching credential is found in the cache, this method does nothing. cc: @stephentoub @davidsh +6644 area-System.IO Add FileSystem.Watcher support for NetBSD There is need to make use of the libinotify port. +6645 area-System.Reflection Expose System.Reflection APIs on .Net Native #5381 has the list of the APIs that need to be exposed. +6659 area-System.Net remove assert on gss_buffer members Fix for #6199 Testing in downstream components revealed that the earlier fix #6201, is not sufficient. There are cases where the instance of `gss_buffer_t` returned from the api is not null and has a zero length, but its data field may point to a non-null pointer. This PR attempts removes assertions about relation between the length and the data pointer. cc: @stephentoub @vijaykota +6663 area-System.IO Provide a version of Stream.Read that reads as much as possible I believe one of the most common mistakes when using `Stream.Read()` is that the programmer doesn't realize that `Read()` may return less data than what is available in the `Stream`. And even for programmers who are aware of this, having to write the same loop every single time they want to read from a `Stream` is annoying. So, my proposal is to add the following methods to `Stream` (mirroring the existing `Read` methods): ``` c# public int ReadAll(byte[] buffer, int offset, int count) public Task ReadAllAsync(byte[] buffer, int offset, int count) public Task ReadAllAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) ``` Each `ReadAll` method would call the corresponding `Read` method in a loop, until the `buffer` was filled or until `Read` returned 0. Questions: - Is there a better name than `ReadAll`? - These methods would work as well if they were extension methods. Should they be? - Very similar functionality is already exposed through `BinaryReader.ReadBytes()`. Why doesn't it have `async` version? +6666 area-System.Net On OSX, throw PlatformNotSupportedException from Socket.ReceiveFrom, … …ReceiveMessageFrom, etc., if called on a dual-mode socket. OSX does not provide IPv4 packet information for dual-mode sockets, so these APIs cannot be made to behave consistently when used on dual-mode sockets. Rather than behave inconsistently, we will throw PlatformNotSupportedException with suggestions for getting consistent behavior. Fixes #4004. @pgavlin, @CIPop, @stephentoub +6668 area-System.Net SSLv3.0 is not supported on Windows but is supported on Linux This very well may be an environment issue (I am vaguely aware that curl is used on non-Windows platforms), but I wanted to report it just in case. I made a test app to demonstrate this: [SslProtocols.zip](https://github.com/dotnet/corefx/files/159292/SslProtocols.zip). Just use `dotnet restore` and `dotnet run` to try it. My CI test results indicated that Mac does not support SSLv3.0 just like Windows, but I was not able to log in and try my test app there. ### Test app output: #### Windows ``` SSLv2.0: not supported (exception: A connection with the server could not be established) SSLv3.0: not supported (exception: A security error occurred) TLSv1.0: supported (response: HTTP/1.1 200 OK) TLSv1.1: supported (response: HTTP/1.1 200 OK) TLSv1.2: supported (response: HTTP/1.1 200 OK) ``` #### Linux ``` SSLv2.0: not supported (exception: SSL connect error) SSLv3.0: supported (response: HTTP/1.1 200 OK) TLSv1.0: supported (response: HTTP/1.1 200 OK) TLSv1.1: supported (response: HTTP/1.1 200 OK) TLSv1.2: supported (response: HTTP/1.1 200 OK) ``` _(note that the inner exception message is different from Windows and Linux, not sure if that is an issue)_ ### `dotnet --version` output: #### Windows [Version 1.0.0.001598](https://dotnetcli.blob.core.windows.net/dotnet/beta/Binaries/1.0.0.001598/dotnet-win-x64.1.0.0.001598.zip) ``` .NET Command Line Tools (1.0.0) Runtime Environment: OS Name: Windows OS Version: 10.0.10586 OS Platform: Windows Runtime Id: win10-x64 ``` #### Linux ``` .NET Command Line Tools (1.0.0-beta-001598) Product Information: Version: 1.0.0-beta-001598 Commit Sha: N/A Runtime Environment: OS Name: ubuntu OS Version: 14.04 OS Platform: Linux Runtime Id: ubuntu.14.04-x64 ``` +6671 area-System.Net Delete unused OSXIPv6GlobalStatistics file This file was not being included in compilation, so it should be deleted. @stephentoub +6672 area-System.Net Disable SSLv2 and SSLv3 in CurlHandler Forces CurlHandler to not use SSLv2 or SSLv3 even if they're available. SSLv2 has been disabled by default in libcurl since 7.18.1, and SSLv3 since 7.39.0, but this ensures they're disabled even before those versions. Fixes https://github.com/dotnet/corefx/issues/6668 cc: @bartonjs, @cipop, @davidsh, @kapilash, @joelverhagen +6673 area-System.Security Verify the behavior of GetRSAPrivateKey with a 384-bit key "384 is chosen only as a ""value that RSACSP supports that RSACng doesn't"" representative sample. Early testing suggests that the key may load validly into a CngKey and then fail when loading it into the RSACng object. If it works (returns any valid RSA instance), great; add a test. If not, fix it and add a test :smile:. " +6675 area-System.IO FileSystemWatcher doesn't trigger in the temp folder on OSX "I found a very peculiar bug that happens only under certain conditions. So, you need: - To be running on OSX (ElCapitain in my case) - The watched folder must be in the temp folder returned by `Path.GetTempPath()` Here's the code to reproduce: ``` csharp // This works (update the username): // var folder = Path.Combine(""/Users/victorhurdugaci/temp"", Guid.NewGuid().ToString()); // This fails: var folder = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); Console.WriteLine(folder); Directory.CreateDirectory(folder); using (var watcher = new FileSystemWatcher(folder)) { watcher.Created += (s, e) => { Console.WriteLine(""### Triggered""); }; watcher.EnableRaisingEvents = true; File.WriteAllText(folder + ""/f2"", """"); Console.WriteLine(""waiting...""); System.Threading.Thread.Sleep(10000); } ``` With the temp folder, it only prints ``` waiting... ``` With the user folder, it prints: ``` ### Triggered waiting... ``` Not sure if it's something special about the path characters or length. On my machine, the generated temp folder looks like `/var/folders/x4/h490d6xs4mndqfg5sk231_mw0000gn/T/1cc8944d-b218-4f95-8dd0-ea208fb9b9b7` `System.IO.FileSystem.Watcher` version is `4.0.0-rc2-23826` " +6676 area-System.Net Need more tests for non-DualMode socket usage There is a lot of coverage of DualMode socket send/receive operations that does not have corresponding coverage for non-DualMode sockets. We should add that, particularly since #6666 renders the DualMode tests mostly useless on OSX. +6677 area-System.Diagnostics Process.Modules tests are hanging in CI on OS X Locally then run fine, and they made it through a couple of CI runs. But something about shelling out to vmmap is causing them to hang in CI. +6681 area-System.Net BeginAcceptV4BoundToAnyV6_Success failed in CI ``` 18:18:24 System.Net.Sockets.Tests.DualMode.BeginAcceptV4BoundToAnyV6_Success [FAIL] 18:18:24 Assert.Equal() Failure 18:18:24 Expected: ::ffff:127.0.0.1 18:18:24 Actual: ::127.0.0.1 18:18:24 Stack Trace: 18:18:24 at System.Net.Sockets.Tests.DualMode.DualModeConnect_BeginAccept_Helper(IPAddress listenOn, IPAddress connectTo) 18:18:24 at System.Net.Sockets.Tests.DualMode.BeginAcceptV4BoundToAnyV6_Success() ``` cc: @ericeil , @ianhays +6684 area-System.Runtime Bug in System.Runtime.InteropServices.WindowsRuntime packaging I noticed that the System.Runtime.InteropServices.WindowsRuntime package only has a runtime output for `win8`. Unfortunately that breaks code on CoreCLR that uses reflection. The issue is that a netstandard library can reference types in that assembly even if it’s not used at runtime. It’s part of PCL 259 as well. So if I have an app (or unit test in this case) that runs on CoreCLR and uses reflection against a type in that library, I get a FileNotFoundException and it cannot load the types. Here's an example from Rx.NET ``` ReactiveTests.Tests.ObservableEventsTest.FromEventPattern_Reflection_Instance_InvalidVariance [FAIL] Expected InvalidOperationException threw FileNotFoundException. Stack trace: at System.Reactive.ReflectionUtils.GetEventMethods[TSender,TEventArgs](Type targetType, Object target, String eventName, MethodInfo& addMethod, MethodInfo& removeMethod, Type& delegateType, Boolean& isWinRT) at System.Reactive.Linq.QueryLanguage.FromEventPattern_[TSender,TEventArgs,TResult](Type targetType, Object target, String eventName, Func`3 getResult, IScheduler scheduler) at System.Reactive.Linq.QueryLanguage.FromEventPattern_[TEventArgs](Object target, String eventName, IScheduler scheduler) at System.Reactive.Linq.QueryLanguage.FromEventPattern[TEventArgs](Object target, String eventName) at System.Reactive.Linq.Observable.FromEventPattern[TEventArgs](Object target, String eventName) at ReactiveTests.Tests.ObservableEventsTest.<>c.b__9_0() in C:\Users\oren\source\git\reactive-extensions-private\Rx.NET\Source\Tests.System.Reactive\Tests\Linq\ObservableEventsTest.cs:line 280 at Microsoft.Reactive.Testing.ReactiveAssert.Throws[TException](Action action) Expected: True Actual: False ``` The unit test is a `netstandardapp1.5` and the library under test is a `netstandard1.0` lib. It just so happens that the code references types in that `System.Runtime.InteropServices.WindowsRuntime` package. This worked (and the tests passed) in dnx. Note that I don't necessarily expect WinRT functionality to work, but it seems critical that the file exists and is copied to all runtimes. Xamarin had this issue at one point too as they didn't generate this façade assembly. They finally did even if it was mostly no-ops. +6685 area-System.Text Proposal: Regex Repetition Syntax Enhancement "# The Issue If we want to match a list of any kind in regex, we currently have to make certain compromises. For example, say we wanted to match a list of names, such as: `Anna,Bob,Charlie` (a more complex example would be a list of phone numbers, or url's, so imagine the regex is potentially long and complex). We could try: ``` ((Anna|Bob|Charlie),)+ ``` However that doesn't match our original text as it requires a final `,` to match. | Text | Should match | Matches | | --- | --- | --- | | `""Anna,Bob,Charlie""` | yes | no **(wrong)** | | `""AnnaBob,Charlie""` | no | no | We could try: ``` ((Anna|Bob|Charlie),?)+ ``` But this will wrongly match items without the separator, which is probably not what the user wants: | Text | Should match | Matches | | --- | --- | --- | | `""Anna,Bob,Charlie""` | yes | yes | | `""AnnaBob,Charlie""` | no | yes **(wrong)** | Currently the only way to achieve this is through the duplication of the list-item regex group: ``` (Anna|Bob|Charlie)(,(Anna|Bob|Charlie))* ``` Which is a pain when the match is long like a phone number or a url, and if you update one part you have to remember to copy the changes to the other one. It also gets tricky if say you wanted it to match from 0 to 20 items, you'd have to do it like this: ``` ((Anna|Bob|Charlie)(,(Anna|Bob|Charlie)){0,19})? ``` The only way to somewhat avoid this is to put that regex part into a variable and use the variable twice to construct the regex, but this relies on the host language, still creates a longer than necessary regex, and matches an extra redundant matching group which the user then has to manually group with the first in the host language. # Proposal A more useful approach could be to use some repetition separator syntax. Regex already has repetition quantifiers like `+`, `*`, `?` and also `{m,n}`. The last one could be enhanced to specify an optional third parameter as a repetition-separator group: ``` (Anna|Bob|Charlie){0,20,(,)} ``` Since it can contain any valid regex syntax, it should always be enclosed inside a group, and it behaves like any normal group. Just like in normal usage, the quantifier limit values can be missing entirely: ``` (Anna|Bob|Charlie){,,(,)} ``` And if we only wanted to specify the separator: ``` (Anna|Bob|Charlie){(,)} ``` This would allow infinite repetition, equivalent to using the `*` or `{,}` quantifiers. | Text | Should match | Matches | | --- | --- | --- | | `""Anna,Bob,Charlie""` | yes | yes | | `""AnnaBob,Charlie""` | no | no | We could then easily enhance it to, for example, allow spaces after each comma: ``` (Anna|Bob|Charlie){(, *)} ``` This is much shorter and more readable than any existing alternatives, and produces a match result with all the correct values in the same matching group. The flow would look like this: ![regex separator flow](https://cloud.githubusercontent.com/assets/785247/13548375/98ba6ba2-e2f7-11e5-8396-38e6d0a68265.png) # Other examples These examples have been kept short for readability reasons and could need fine-tuning to work in all cases. | Description | Regex | | --- | --- | | Phone number lists | `(\(?\d{3}\)?-? *\d{3}-? *-?\d{4}){(, *)}` | | Versions names (""3.7.15"") | `(\d){(\.)}` | | Html class attribute | `class=""\s*(?\S+){(\s+)}\s*""` | | Html class attribute (alternative) | `class=""(\s*){(?\S+)}""` | | Mathematical calculations (""7.5 \* 2 + 10"") | `(\d+(\.\d)?([Ee]\d)?){( *[+-*/] *)}` | | Name parts (""Johann Wolfgang von Goethe"") | `^(?\S+){( )}$` | | Natural language (notice the nested repetitions) | `winners are (?(?\S+){1,,( )}){( then )}` | | Time matching (""03:15"", ""23:59:59"") | `(\d\d):(\d\d){1,2,(:)}` | | Javascript object notation | `[{] *(?[a-zA-Z_]\w*) *: *(?""[^""]*""|\d+(\.\d*)?([Ee]\d*)?|...other.types..){( *, *)} *[}]` | # Special Case In certain use cases a final optional separator match is also desirable. For example, in C# the collection initializer syntax allows for an optional final `,`: ``` C# var names = new List { ""Anna Alyson"", ""Bob Borton"", ""Charlie Cob"", }; ``` For this we could further enhance the syntax so that if the separator-group has a `+` after it, it can have an optional final match (the separator-group would not allowed to have any other quantifiers, however sub-groups can). The regex would look like this: ``` [{]\s*(?""[^""]*""){(\s*,\s*)+}\s*[}] ``` The new flow would then look like this: ![regex separator flow 2](https://cloud.githubusercontent.com/assets/785247/13548546/8badb2b2-e2fb-11e5-9d74-3860cc64ec2a.png) " +6689 area-System.Reflection Type conflict with BindingFlags "Type/namespace conflict with BindingFlags and `System.Reflection.TypeExtensions` renders code unable to compile. Same issue discussed here: https://github.com/dotnet/corefx/pull/6636#issuecomment-192417128 ## Steps to reproduce **program.cs:** ``` using System; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { var bf = System.Reflection.BindingFlags.CreateInstance; } } } ``` **project.json:** ``` { ""version"": ""1.0.0-*"", ""compilationOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""System.Reflection.TypeExtensions"": ""4.1.0-rc3-23904"" }, ""frameworks"": { ""netstandardapp1.5"": { ""dependencies"": { ""NETStandard.Library"": ""1.0.0-rc3-23904"" }, ""imports"": [ ""dnxcore50"", ""portable-net451+win8"" ] } } } ``` **Nuget.config:** ``` ``` Full code to reproduce is also available here: https://github.com/joshcomley/BugSamples/tree/master/DotNetCore/BindingFlagsBug ## Expected behavior It should compile ## Actual behavior `error CS0433: The type 'BindingFlags' exists in both 'System.Reflection.TypeExtensions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'System.Reflection, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'` ## Environment data `dotnet --version` output: .NET Command Line Tools (1.0.0-beta-001494) Product Information: Version: 1.0.0-beta-001494 Commit Sha: c7a9d1d63a Runtime Environment: OS Name: Windows OS Version: 10.0.10586 OS Platform: Windows Runtime Id: win10-x64 " +6691 area-Infrastructure Outer loop Unix runs failing with package restore errors "e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_osx_debug/25/consoleFull ``` 20:25:17 [20:29:24.72] Restoring all packages... 20:25:31 EXEC : error : System.Threading.Overlapped 4.0.1-rc3-23901 provides a compile-time reference assembly for System.Threading.Overlapped on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:31 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:33 EXEC : error : System.Security.AccessControl 4.0.0-rc3-23901 provides a compile-time reference assembly for System.Security.AccessControl on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:33 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:35 EXEC : error : Microsoft.Win32.Registry 4.0.0-rc3-23901 provides a compile-time reference assembly for Microsoft.Win32.Registry on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:35 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:35 EXEC : error : System.Security.Cryptography.Csp 4.0.0-rc3-23901 provides a compile-time reference assembly for System.Security.Cryptography.Csp on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:35 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:49 EXEC : error : System.Threading.Overlapped 4.0.1-rc3-23901 provides a compile-time reference assembly for System.Threading.Overlapped on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:49 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:58 EXEC : error : System.Threading.Overlapped 4.0.1-rc3-23901 provides a compile-time reference assembly for System.Threading.Overlapped on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:58 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:58 EXEC : error : System.Threading.Overlapped 4.0.1-rc3-23901 provides a compile-time reference assembly for System.Threading.Overlapped on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:58 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:59 EXEC : error : System.Threading.Overlapped 4.0.1-rc3-23901 provides a compile-time reference assembly for System.Threading.Overlapped on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:25:59 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:00 EXEC : error : System.Threading.Overlapped 4.0.1-rc3-23901 provides a compile-time reference assembly for System.Threading.Overlapped on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:00 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:00 EXEC : error : System.Security.AccessControl 4.0.0-rc3-23901 provides a compile-time reference assembly for System.Security.AccessControl on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:00 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:04 EXEC : error : Microsoft.Win32.Registry 4.0.0-rc3-23901 provides a compile-time reference assembly for Microsoft.Win32.Registry on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:04 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:13 EXEC : error : Microsoft.Win32.Registry 4.0.0-rc3-23901 provides a compile-time reference assembly for Microsoft.Win32.Registry on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:13 EXEC : error : System.Security.AccessControl 4.0.0-rc3-23901 provides a compile-time reference assembly for System.Security.AccessControl on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:13 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:13 EXEC : error : Microsoft.Win32.Registry 4.0.0-rc3-23901 provides a compile-time reference assembly for Microsoft.Win32.Registry on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:13 EXEC : error : System.Security.AccessControl 4.0.0-rc3-23901 provides a compile-time reference assembly for System.Security.AccessControl on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:13 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:14 EXEC : error : Microsoft.Win32.Registry 4.0.0-rc3-23901 provides a compile-time reference assembly for Microsoft.Win32.Registry on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:14 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:15 EXEC : error : System.Runtime 4.0.0 provides a compile-time reference assembly for System.Runtime on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:15 EXEC : error : System.Reflection 4.0.0 provides a compile-time reference assembly for System.Reflection on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:15 EXEC : error : System.IO 4.0.0 provides a compile-time reference assembly for System.IO on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:15 EXEC : error : System.Text.Encoding 4.0.0 provides a compile-time reference assembly for System.Text.Encoding on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:15 EXEC : error : System.Threading.Tasks 4.0.0 provides a compile-time reference assembly for System.Threading.Tasks on DNXCore,Version=v5.0, but there is no run-time assembly compatible with osx.10.11-x64. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:15 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (osx.10.11-x64). [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:26:26 /Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj(54,5): error MSB3073: The command """"/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/Tools/dotnetcli/bin/dotnet"" restore --packages ""/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/packages"" --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://www.nuget.org/api/v2/ ""/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/src"" ""/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/pkg"""" exited with code -1. ``` " +6693 area-System.Xml XDocument writer DateTime serialization difference between full framework and CoreCLR "Repro ``` using System; using System.Xml.Linq; public class Program { public static void Main() { var doc = new XDocument(); using (var w = doc.CreateWriter()) { w.WriteStartElement(""Root""); w.WriteValue(new DateTime(2002, 4, 3, 0, 0, 0)); w.WriteEndElement(); } Console.WriteLine(doc.ToString()); } } ``` Output on .NET 4.6.1: ``` 2002-04-03T00:00:00 ``` Output on .NET Core: ``` 2002-04-03T00:00:00-05:00 ``` Note the difference regarding the inclusion of the timezone offset. " +6695 area-System.Runtime Adding an Array.Fill method ## Background At the moment, there's no built-in way to fill an array with a particular value in .NET. You'd have to hand-roll your own extension method, like this: ``` csharp public static void Fill(this T[] array, T value) { for (int i = 0; i < array.Length; i++) array[i] = value; } ``` While this may be the most obvious way, it is not necessarily the most efficient. For example, we could specialize to `memset` if the array was a byte array, or use an algorithm where we fill the beginning of the array and [double the number of elements copied each time](http://stackoverflow.com/a/13806014/4077294). To increase the efficiency of code doing this and prevent people from reinventing the wheel, I propose we add a static `Fill` method to the `Array` class that does this. ## Proposed API ``` csharp public class Array { public static void Fill(T[] array, T value); public static void Fill(T[] array, int offset, int count, T value); } ``` +6698 area-System.Net Short-circuit for strings in WebUtility.UrlEncode This is a follow-up on #6543 for `UrlEncode`. It has separate implementations for making passes over the strings/byte arrays, so (I haven't tested this yet) there should be no performance loss. cc @stephentoub +6700 area-System.Net Add performance tests for WebUtility You asked for perf tests in #6698, so here they are. cc @davidsh **note:** I'm having trouble compiling the tests locally because of some error with `SafeProcessHandle` (probably unrelated), so I'll fix any errors if they pop up in CI. +6701 area-System.Reflection Propose, API change: DispatchProxy instantiation The current API for instancing the DispatchProxy is counter intuitive name- and usage-wise. Especially when injecting dependencies into the proxy. ``` cs public static T Create() where TProxy : DispatchProxy ``` Currently `Create` will return the proxied instance of T, which then oddly needs to be cast to the TProxy type in order to inject any dependencies into the proxy instance itself: ``` cs ISomeServiceInterface proxiedInstance = DispatchProxy.Create(); var actualProxy = proxiedInstance as MyProxy; actualProxy.MyDependency = dependency; ``` Instead consider returning the proxy instance itself, and add a property in order to retrieve the proxied instance to allow following usage: ``` cs MyProxy proxy = DispatchProxy.Create(); proxy.MyDependency = dependency; IServiceInterface proxiedInstance = actualProxy.ProxiedInstance; ``` +6702 area-Infrastructure Errors during cross-building NetBSD assemblies Crossbuilding on Ubuntu: ftp://ftp.netbsd.org/pub/NetBSD/misc/kamil/corefx-crossbuild-netbsd-assemblies-1.txt Summary: ``` 24 Warning(s) 66 Error(s) ``` ``` System/Diagnostics/ProcessManager.Unix.cs(40,20): error CS0103: The name 'CreateProcessInfo' does not exist in the current context [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/ProcessThread.cs(92,38): error CS0103: The name 'PriorityLevelCore' does not exist in the current context [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/ProcessThread.cs(98,17): error CS0103: The name 'PriorityLevelCore' does not exist in the current context [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/ProcessManager.Unix.cs(49,20): error CS7036: There is no argument given that corresponds to the required formal parameter 'machineName' of 'ProcessManager.GetProcessIds(string)' [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/Process.cs(293,63): error CS0117: 'ProcessManager' does not contain a definition for 'GetModuleInfos' [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/Process.cs(452,42): error CS0103: The name 'ProcessorAffinityCore' does not exist in the current context [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/Process.cs(459,17): error CS0103: The name 'ProcessorAffinityCore' does not exist in the current context [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/Process.cs(856,17): error CS0103: The name 'GetWorkingSetLimits' does not exist in the current context [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/Process.cs(867,13): error CS0103: The name 'SetWorkingSetLimitsCore' does not exist in the current context [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/Process.cs(908,20): error CS1501: No overload for method 'GetProcessesByName' takes 2 arguments [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/Process.cs(932,57): error CS0117: 'ProcessManager' does not contain a definition for 'GetProcessInfos' [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/Process.Unix.cs(337,27): error CS0103: The name 'GetExePath' does not exist in the current context [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/ThreadInfo.cs(16,24): error CS0649: Field 'ThreadInfo._threadId' is never assigned to, and will always have its default value 0 [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/ThreadInfo.cs(22,35): error CS0649: Field 'ThreadInfo._threadWaitReason' is never assigned to, and will always have its default value [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/ThreadInfo.cs(18,22): error CS0649: Field 'ThreadInfo._basePriority' is never assigned to, and will always have its default value 0 [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/ThreadInfo.cs(21,30): error CS0649: Field 'ThreadInfo._threadState' is never assigned to, and will always have its default value [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/ThreadInfo.cs(20,25): error CS0649: Field 'ThreadInfo._startAddress' is never assigned to, and will always have its default value [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/ThreadInfo.cs(17,22): error CS0649: Field 'ThreadInfo._processId' is never assigned to, and will always have its default value 0 [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/Diagnostics/ThreadInfo.cs(19,22): error CS0649: Field 'ThreadInfo._currentPriority' is never assigned to, and will always have its default value 0 [/home/kamil/corefx/src/System.Diagnostics.Process/src/System.Diagnostics.Process.csproj] System/IO/FileSystemWatcher.cs(158,21): error CS0103: The name 'StopRaisingEvents' does not exist in the current context [/home/kamil/corefx/src/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj] System/IO/FileSystemWatcher.cs(370,21): error CS0103: The name 'StopRaisingEvents' does not exist in the current context [/home/kamil/corefx/src/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj] System/IO/FileSystemWatcher.cs(381,21): error CS0103: The name 'FinalizeDispose' does not exist in the current context [/home/kamil/corefx/src/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj] System/IO/FileSystemWatcher.cs(533,17): error CS0103: The name 'StopRaisingEvents' does not exist in the current context [/home/kamil/corefx/src/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj] System/IO/FileSystemWatcher.cs(543,13): error CS0103: The name 'StartRaisingEvents' does not exist in the current context [/home/kamil/corefx/src/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj] System/Net/NetworkInformation/IPGlobalProperties.cs(17,20): error CS0103: The name 'IPGlobalPropertiesPal' does not exist in the current context [/home/kamil/corefx/src/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj] System/Net/NetworkInformation/NetworkInterface.cs(15,20): error CS0103: The name 'NetworkInterfacePal' does not exist in the current context [/home/kamil/corefx/src/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj] System/Net/NetworkInformation/NetworkInterface.cs(20,20): error CS0103: The name 'NetworkInterfacePal' does not exist in the current context [/home/kamil/corefx/src/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj] System/Net/NetworkInformation/NetworkInterface.cs(27,24): error CS0103: The name 'NetworkInterfacePal' does not exist in the current context [/home/kamil/corefx/src/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj] System/Net/NetworkInformation/NetworkInterface.cs(35,24): error CS0103: The name 'NetworkInterfacePal' does not exist in the current context [/home/kamil/corefx/src/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj ``` +6705 area-System.Net PostAsync coreclr send different request compare to PostAsync clr "When I send a PostAsync request in clr using (`GAC_MSIL\System.Net.Http\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll`) the request is accepted. But sending the same request in coreclr using (`System.Net.Http\4.0.1-beta-23516\ref\dotnet5.2\System.Net.Http.dll`) the request is not accepted Code used ``` var x = new HttpClient(); x.BaseAddress = new Uri(""https://leerlingen.trinitascollege.nl""); var content = new FormUrlEncodedContent(new[] { new KeyValuePair(""wu_loginname"",""name""), new KeyValuePair(""wu_password"",""password""), new KeyValuePair(""path"",""/"") }); var result = await x.PostAsync(""/login?passAction=login"", content); ``` Fiddler raw request coreclr request ``` POST https://leerlingen.trinitascollege.nl/login?passAction=login HTTP/1.1 Connection: Keep-Alive Content-Type: application/x-www-form-urlencoded Host: leerlingen.trinitascollege.nl Content-Length: 49 Accept-Encoding: gzip, deflate wu_loginname=name&wu_password=password&path=%2F ``` coreclr response ``` HTTP/1.1 302 Moved Temporarily Server: Apache-Coyote/1.1 Set-Cookie: JSESSIONID=B25FE445133AF103021C6B9FD731FEC2; Path=/; Secure; HttpOnly Cache-control: no-cache Expires: Thu, 01 Dec 1994 16:00:00 GMT Pragma: no-cache Connection: close location: / Content-Type: text/html;charset=UTF-8 Content-Language: nl-NL Content-Length: 117 Date: Sun, 06 Mar 2016 16:02:23 GMT Document Moved

Object Moved

here ``` clr request ``` POST https://leerlingen.trinitascollege.nl/login?passAction=login HTTP/1.1 Connection: Keep-Alive Content-Type: application/x-www-form-urlencoded Host: leerlingen.trinitascollege.nl Content-Length: 49 Expect: 100-continue wu_loginname=name&wu_password=password&path=%2F ``` clr response ``` HTTP/1.1 302 Moved Temporarily Server: Apache-Coyote/1.1 Set-Cookie: JSESSIONID=6CFCD4313BB8B24B1BC65F246C4346F1; Path=/; Secure; HttpOnly Cache-control: no-cache Expires: Thu, 01 Dec 1994 16:00:00 GMT Pragma: no-cache Connection: close location: / Content-Type: text/html;charset=UTF-8 Content-Language: nl-NL Content-Length: 117 Date: Sun, 06 Mar 2016 16:05:55 GMT Document Moved

Object Moved

here ``` " +6706 area-Meta Create Silverlight 5 targeting pack Please publish a targeting pack for building Silverlight 5 projects with CLI. Essentially something like this: https://gist.github.com/onovotny/93ecd8021c0f0cf7b4f4 There may be limitations for item types that require custom tasks/targets, but this handles the bulk of non-GUI libs useful in an xproj. The scenario is porting/maintaining projects that need to cross-compile to existing full frameworks. +6707 area-Meta Create Xamarin targeting packs "Similar to #6706, it would be extremely useful to have the Xamarin reference assemblies packaged into targeting packs for cross-compiling in xproj/CLI. There may be limitations in that certain item types that need custom tasks may not work, but this still opens up significant functionality in ""regular"" class libraries that are x-plat. I understand that this will likely need to wait until the acquisition closes and some dust settling, but wanted to file an issue to track it. " +6708 area-System.Net CookieContainer: Make internal PathList a struct Avoid the unnecessary wrapper object and lock object allocations. Test line & branch coverage of the changes is 100%. cc: @davidsh @stephentoub +6709 area-System.Data Should DataTable be sealed in the contract and implementation? `DataTable` is currently an empty class in .NET Core, included only to complete the `IDataReader` interface. As such, the constructor is `internal` ([ref](https://github.com/dotnet/corefx/blob/e2f0f429788f611b3d7ac35f0154c975011fd191/src/System.Data.Common/ref/System.Data.Common.cs#L52-L55), [src](https://github.com/dotnet/corefx/blob/e2f0f429788f611b3d7ac35f0154c975011fd191/src/System.Data.Common/src/System/Data/DataTable.cs)), preventing external callers from subclassing or creating an instance. Any reason why it shouldn't also be `sealed` in both the contract and implementation? cc: @saurabh500 +6710 area-System.Runtime Proposal: Adding a Buffer.MemoryFill method equivalent to memset Separated out from #6695 since I made a false assumption that `initblk` could be used to fill non-byte arrays with a particular value; apparently not. ## Rationale There's no fast, convenient way at the moment to fill a byte array with a particular value; the fastest method on [StackOverflow](http://stackoverflow.com/a/13806014/4077294) currently involves filling the first few bytes with a for-loop, and then iteratively copying those over to the next few bytes via calls to `BlockCopy`. It would be nice if we could just provide a `MemoryFill` method that was equivalent to memset/the initblk opcode. ## Proposed API ``` csharp public static class Buffer { public unsafe static void MemoryFill(void* pointer, byte value, long count); public unsafe static void MemoryFill(void* pointer, byte value, ulong count); } ``` (revision: Changed the wording from `MemorySet` to `MemoryFill` since that sounds less awkward) +6718 area-System.Security Remove X509Certificates workaround after updating packages After we update to package version 23908 or later we need to remove the project reference workaround I added to address lack of support for netstandard1.3. See https://github.com/dotnet/corefx/pull/6717 & https://github.com/dotnet/corefx/pull/6713. I added a workaround to System.Net.Http.WinHttpHandler, System.Net.Security, and System.Net.WebSockets.Client. All of these assemblies were targeting NETStandard1.3 and using X509Certificates. I had to replace the package reference with a project reference to the reference assembly temporarily because the assembly was missing from the package. I temporarily added dependencies on other crypto contracts (required to make package validation see a full closure). Once we update packages, replace these with a single reference to the X509Certificates package and remove the project reference from the csprojs. +6720 area-System.IO Add better failure messages when trying to create a named pipe on non-Windows "Trying to create a cross-machine named pipe or a named pipe with a name that includes characters that aren't valid as a filename throws a `PlatformNotSupportedException`. Currently the default constructor for the exception is used, so there's no information about what specifically wasn't supported. The exception message should describe what wasn't supported (ie ""Cross-machine pipes are not supported on this operating system"" or ""The specified pipe name contained characters which are not supported in pipe names on this operating system""). Otherwise when people hit this issue they may conclude that named pipes aren't supported at all on non-Windows operating systems. Relevant code: https://github.com/dotnet/corefx/blob/61ff821f213cf323bd52aad3623f9204901311e7/src/System.IO.Pipes/src/System/IO/Pipes/PipeStream.Unix.cs#L24-L42 cc @stephentoub " +6721 area-System.Net System.Net.Http.HttpResponseMessage.ReasonPhrase can return null on core There was a recent regression with WinHttpHandler where HttpResponseMessage.ReasonPhrase now returns `null` rather than `string.Empty` if no reason phrase was specified in the response message. This diverges from the HttpClientHandler/HttpWebRequest behavior in the full framework that always return `string.Emtpy`. @davidsh +6725 area-System.Net Break dependency on older collections in System.Net.Security ReadOnlyCollectionBase https://github.com/dotnet/corefx/blob/master/src/System.Net.Security/src/System/Security/Authentication/ExtendedProtection/ServiceNameCollection.cs#L12 In the contract it is only ICollection and IEnumerable so we should try to make the implementation more closely match. ArrayList https://github.com/dotnet/corefx/blob/master/src/System.Net.Security/src/System/Security/Authentication/ExtendedProtection/ServiceNameCollection.cs#L30 Hashtable https://github.com/dotnet/corefx/blob/master/src/System.Net.Security/src/System/Net/SslSessionsCache.cs#L15 cc @davidsh @CIPop @justinvp you broke some similar dependencies in other networking APIs are you interested in tackling this one? +6726 area-System.Net Break dependency on older collections in System.Net.WebHeaderCollection System.Net.WebHeaderCollection pulls in System.Collections.Specialized which pulls in System.Collections.NonGeneric which we are trying to break dependencies on. We should see if we can break the below dependency in a reasonable way. NameValueCollection https://github.com/dotnet/corefx/blob/master/src/System.Net.WebHeaderCollection/src/System/Net/WebHeaderCollection.cs#L33 cc @davidsh @CIPop +6727 area-System.Net HttpResponseMessage.ReasonPhrase should not be null Recent changes due to PR #3199 caused the `HttpResponseMessage.ReasonPhrase` property to be a null string if the HTTP server response only contained a statuscode but no description on the status line. The existing .NET Framwork behavior is to have empty string as the property value in that case. Added a new test to validate this change. Fixes #6721. +6728 area-System.Net HttpClientHandler does not store HttpOnly cookies by default In testing for ASP.NET, we found a curious behavior in System.Net.HttpClientHandler. This handler is not storing HttpOnly cookies in the cookie collection it creates. Should it store HttpOnly cookies by default as well? It appears this issue has a history. The comment in code (see [HttpClientHandler.cs 462-473)](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/netcore50/System/Net/HttpClientHandler.cs#L462-L473) explains the history of this quirk. Before you could turn off lower-level cookie handling in WinRT (before [HttpBaseProtocolFilter.CookieUsageBehavior](https://msdn.microsoft.com/en-us/library/windows/apps/windows.web.http.filters.httpbaseprotocolfilter.cookieusagebehavior.aspx)), storing httponly cookies could cause issues. But this clearly does not apply to all platforms (e.g. Linux). To play with the issue, see this example app: https://gist.github.com/natemcmaster/e51aa33cf77416772afc This creates a simple server that response with 2 cookies, on HttpOnly and the other not. HttpClientHandler only stores the HttpOnly=false cookie. +6729 area-System.Net Http/WebSocket stacks: Support further limiting of SSL protocols As noted in https://github.com/dotnet/corefx/issues/6668 & https://github.com/NuGet/Home/issues/390 The framwork is currently limiting SSL protocols, but customers might choose to be more restrictive, there is currently no way to specify it in code, and perhaps alternatively in an external configuration (local or machine level). +6732 area-System.IO ChangedTests.FileSystemWatcher_Changed_PreSeededNestedStructure(includeSubdirectories: False) fails on windows The ChangedTests.FileSystemWatcher_Changed_PreSeededNestedStructure(includeSubdirectories: False) test failed on Windows with System.UnauthorizedAccessException. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_release_prtest/3194/testReport/junit/(root)/ChangedTests/FileSystemWatcher_Changed_PreSeededNestedStructure_includeSubdirectories__False_/ +6734 area-System.Data System.Data.SqlClient reference assembly surface area doesn't match impl "When compiling our tests against the System.Data.SqlClient reference assembly, instead of the Windows implementation assembly, there are compilation issues... ``` ""E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj"" (BuildAndTest target) (78) -> (CoreCompile target) -> SqlBulkCopyColumnMappingCollectionTest.cs(78,62): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(79,62): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(102,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(105,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(232,56): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(325,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(326,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(327,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(372,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(373,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(374,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(390,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(391,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(392,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(400,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(401,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(405,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(406,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(407,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(450,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(487,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(488,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] SqlBulkCopyColumnMappingCollectionTest.cs(492,32): error CS0021: Cannot apply indexing with [] to an expression of type 'SqlBulkCopyColumnMappingCollection' [E:\gh\chcosta\corefx\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] ``` You can repro this by compiling System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj and exchanging the reference to System.Data.SqlClient.dll, with a reference to the reference assembly. This blocks our ability to compile our tests against current packages. /cc @ericstj @karajas " +6735 area-System.Net Return correct SslStream.KeyExchangeValue when algorithm is ECDH "We needed to add another constant for the ECDH key exchange algorithm, to match the behavior on Windows. Also, the string comparisons used when parsing out the results for `CryptoNative_GetSslConnectionInfo` were not doing the right thing; they needed to compare the _lengths_ of the strings as well, to avoid, for example, ""ECDH"" matching ""ECDH/RSA"". Fixes #5251. @bartonjs, @eerhardt please have a look. " +6737 area-System.Net HttpClient is not sending cookies to server in some scenarios **Repro code solution:** https://github.com/kichalla/httpclientnotsendingcookie **Steps to run the repro code** - `dotnet restore` and `dotnet build` the `WebApplication1` app. This is a simple ASP.NET Core web app which has couple of middleware. - Now do `dotnet run` the web app and it should listen at the default address `http://localhost:5000` - Now for the client `dotnet restore`, `dotnet run` the project `coreclrhttpclient`. **Expected:** Postdata action received the following cookies: .AspNetCore.Session : RAExEmXpoCbueP_QYM, .AspNetCore.Antiforgery.Xam7_OeLcN4 : CfDJ8NGNxAt7CbdClq3UJ8_6w_4661wRQZT1aDtUOIUKshbcV4P0NdS8klCL5qGSN-PNBBV7w23G6MYpQ81t0PMmzIN4O04fqhZ0u1YPv66mixtkX3iTi291DgwT3o5kozfQhe08-RAExEmXpoCbueP_QYM **Actual:** Postdata action received the following cookies: .AspNetCore.Session : RAExEmXpoCbueP_QYM @natemcmaster @Tratcher @muratg +6740 area-System.IO API Proposal: Adding ArraySegment-based methods to the System.IO namespace ## Background To avoid unnecessary allocations, lots of code that works with Streams and I/O passes around a 'portion' of an array containing the relevant data instead of copying it to a new one. Since .NET does not yet support multiple return values, this is commonly represented as an `ArraySegment`, where T is the type of the element contained in the array. Unfortunately, the System.IO namespace does not have overly sophisticated support for `ArraySegments` (aside from the recently-added `TryGetBuffer` for `MemoryStream`), forcing people who use them to 'unravel' them like this: ``` csharp stream.Write(segment.Array, segment.Offset, segment.Count); ``` I propose adding convenience methods to the existing System.IO APIs that will make this less verbose, and prevent accidents like e.g. the programmer mixing up `Offset` and `Count`. ## Proposed API ``` csharp namespace System.IO { public class BinaryReader : IDisposable { public int Read(ArraySegment buffer); public int Read(ArraySegment buffer); } public class BinaryWriter : IDisposable { public void Write(ArraySegment buffer); public void Write(ArraySegment buffer); } public class MemoryStream : Stream { public MemoryStream(ArraySegment buffer); public MemoryStream(ArraySegment buffer, bool writable); public MemoryStream(ArraySegment buffer, bool writable, bool publiclyVisible); } public class Stream : IDisposable { public int Read(ArraySegment buffer); public Task ReadAsync(ArraySegment buffer); public Task ReadAsync(ArraySegment buffer, CancellationToken cancellationToken); public void Write(ArraySegment buffer); public Task WriteAsync(ArraySegment buffer); public Task WriteAsync(ArraySegment buffer, CancellationToken cancellationToken); } public abstract class TextReader : IDisposable { public int Read(ArraySegment buffer); public int ReadBlock(ArraySegment buffer); public Task ReadBlockAsync(ArraySegment buffer); } public abstract class TextWriter : IDisposable { public void Write(ArraySegment buffer); public Task WriteAsync(ArraySegment buffer); public void WriteLine(ArraySegment buffer); public Task WriteLineAsync(ArraySegment buffer); } } ``` +6742 area-Infrastructure Arch Linux: Build.sh Managed Is Broken With Wrong Paths "``` $ ./build.sh x64 release Unsupported Linux distribution 'arch' detected. Configuring as if for Ubuntu. Setting up directories for build Restoring NuGet.exe... Unsupported Linux distribution 'arch' detected. Downloading ubuntu-x64 tools. Installing dotnet cli... Restoring BuildTools version 1.0.25-prerelease-00190... Failed to initialize CoreCLR, HRESULT: 0x80131500 ERROR: Could not restore build tools correctly. See '/init-tools.log' for more details. Initializing BuildTools... /init-tools.sh: line 83: /packages/Microsoft.DotNet.BuildTools/1.0.25-prerelease-00190/lib/init-tools.sh: No such file or directory Done initializing tools. ./build.sh: line 108: /Tools/corerun: No such file or directory tail: cannot open '/msbuild.log' for reading: No such file or directory Build Exit Code = 127 ``` ""dotnet-ubuntu-x64.1.0.0.001504.tar.gz"" does not contain ANY .sh Files are extracted to ""./Tools/dotnetcli/bin/"", so corerun will not be found in ./Tools. " +6746 area-System.Security ProtectedData usage How can I use ProtectedData from https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.ProtectedData/ref/System.Security.Cryptography.ProtectedData.cs? I see no nuget package available or is it? Thank You +6750 area-System.Net Two error handling changes to SslStream "Commit (1). Pass Exception through SecurityStatusPal in SslStream. There isn't a good mapping between OpenSSL errors and most of the errors in SecurityStatusPal. As a result, with the current set up, important information about errors that occurred is getting lost and translated into meaningless information by the time it makes it out to the developer, making it difficult to diagnose the cause of a failure. This commit allows the original exception behind a failure to be passed through the PAL layer, such that when an exception is eventually thrown, the Unix implementation can choose to use the original exception rather than translating the error code. For example, instead of: ``` System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. ---- Interop+OpenSsl+SslException : Operation failed with error - 12. ``` (where ""12"" is the number that ends up getting used for all failures, as the numerical value of SecurityStatusPal.InternalError), we now get: ``` System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. ---- Interop+OpenSsl+SslException : SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL. -------- Interop+Crypto+OpenSslCryptographicException : error:140740B5:SSL routines:SSL23_CLIENT_HELLO:no ciphers available ``` Commit (2). Use ExceptionDispatchInfo in SslStream. Currently in SslStream, exceptions get captured and then later thrown with ""throw exception;"". This causes their stack traces to get overwritten, losing information about where the exception actually came from. This commit changes these locations to use ExceptionDispatchInfo instead, enabling the stacks and Watson bucket information to be preserved. For example, instead of: ``` System.IO.IOException: Authentication failed because the remote party has closed the transport stream. at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) in corefx\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs:line 752 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) in corefx\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs:line 722 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) in corefx\src\System.Net.Security\src\System\Net\SecureProtocols\SslStream.cs:line 125 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Xunit.Assert.d__61.MoveNext() ``` we now get: ``` System.IO.IOException: Authentication failed because the remote party has closed the transport stream. at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) in corefx\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs:line 882 at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) in corefx\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs:line 1110 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) in corefx\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs:line 752 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) in corefx\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs:line 722 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) in corefx\src\System.Net.Security\src\System\Net\SecureProtocols\SslStream.cs:line 125 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Xunit.Assert.d__61.MoveNext() ``` Contributes to https://github.com/dotnet/corefx/issues/5606 and https://github.com/dotnet/corefx/issues/5890. For both this doesn't completely fix the issue: I've stayed away from touching NegotiateStream to avoid conflicts with the incoming PR from the NegotiateStream work on Unix. Commit (3). Fixes some warnings during the build for the System.Net.Security.Tests project when building for Unix. cc: @davidsh, @cipop, @ericeil, @bartonjs, @vijaykota, @kapilash " +6751 area-System.Data Will EF7 support UWP with SQL server when released? I originally posted this question to the entity framework github repo and they said it should work, but was dependent on the SqlClient (the ADO.NET provider for SQL Server). Can you tell me if there are plans to have SqlClient compatible with UWP? If so what is the estimated timeline. @YoungGah @saurabh500 Original question with EF team's answers https://github.com/aspnet/EntityFramework/issues/4692 Thanks, Jason +6752 area-System.Collections ImmutableArray should come with a Count property "When refactoring code it is not uncommon that you need to change types, e.g. ImmutableArray to IReadOnlyList due to its covariance. While it is common that certain members are not available in a supertype it certainly feels very strange that a property just get's renamed without any semantic change. You argued: ""We’ve decided to go with having a Length property instead of Count because we see ImmutableArray as a replacement for regular arrays. This makes it easier to port existing code. It also makes the design a bit more self-contained."" But since most other collections besides the array come with a Count property, the chances are very hight that with using the Length property you keep on switching between those properties on every larger refactoring. It would be nice if you could just add the Count property if possible. By that users that more likely switch between covariant access and direct access to the immutable array (instead of switching between mutable and immutable) can just stick with a property that doesn't break code. " +6753 area-Infrastructure Enable Ready2Run version of Microsoft.NETCore.App packages Packages comprising NEtCore.App meta package must have their assemblies compiled as R2R images prior to packaging. CC @davidfowl @weshaggard @piotrpMSFT @JohnChen0 @jkotas +6755 area-System.Diagnostics TraceListenerCollection is not thread-safe "Both CoreFx and the desktop implementations claim that TraceListenerCollection is thread-safe. But two threads executing **System.Diagnostics.Trace.Listeners.Remove(""Default"")** at the same time can run into each other. The problem is that several operations (like Remove(string)) are built on top of enumerating the collection, and enumerating the collection will neither lock it nor make a copy of it. It's possible to squint and say ""but it is thread-safe in that its internal state can't be corrupted via multiple simultaneous mutation"", but I don't think that's consistent with the way that most people think of thread-safety. If nothing else, the documentation should be updated. " +6757 area-System.Net "Re-enable System.Net.Security ""no encryption"" tests on Linux" We'd disabled these tests on Linux because they were failing on OpenSUSE. The reason turned out to be that the OpenSSL installed on OpenSUSE was built explicitly without null cipher support. This commit re-enables the tests, but as ConditionalFacts that check whether we're either on Windows or on a Unix with an OpenSSL that sports null ciphers. cc: @ericeil, @bartonjs, @davidsh, @CIPop, @vijaykota Fixes #5557 +6759 area-Infrastructure Remove OpenSourceSign from Microsoft.DotNet.Build.Tasks Csc now supports OSS signing via /publicsign switch. The build task is not needed anymore and can be removed and CoreFX build simplified. +6760 area-Infrastructure Fork project.jsons for windows-only dependencies @Priya91 pointed out some restore errors to me on Ubuntu that seem to be because of auto-RID: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_ubuntu14.04_debug/23/consoleText ``` EXEC : error : Microsoft.Win32.Registry 4.0.0-rc3-23908 provides a compile-time reference assembly for Microsoft.Win32.Registry on DNXCore,Version=v5.0, but there is no run-time assembly compatible with ubuntu.14.04-x64. [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/build.proj] EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (ubuntu.14.04-x64). [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/build.proj] EXEC : error : System.Security.AccessControl 4.0.0-rc3-23908 provides a compile-time reference assembly for System.Security.AccessControl on DNXCore,Version=v5.0, but there is no run-time assembly compatible with ubuntu.14.04-x64. [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/build.proj] EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (ubuntu.14.04-x64). [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/build.proj] EXEC : error : System.Threading.Overlapped 4.0.1-rc3-23908 provides a compile-time reference assembly for System.Threading.Overlapped on DNXCore,Version=v5.0, but there is no run-time assembly compatible with ubuntu.14.04-x64. [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/build.proj] EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (ubuntu.14.04-x64). [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/build.proj] ... ``` It looks like these stopped working after upgrading from `23829` because no `dnxcore50` implementation is provided anymore. It seems to me that the right temporary fix is to fork any `project.json` using these dependencies. I can do this if it sounds right. I'm not sure how to see which configurations a project uses a dependency in except by compiling it. The long-term fix is to take up a version of CLI/nuget that got rid of auto-RID. (We can get rid of our RID-specific forks then too.) @ericstj Thoughts? Should this be happening? /cc @weshaggard +6761 area-Serialization "[Port] XmlSerializer incorrectly serializing Fields with [XmlText(DataType = ""time"")]" "XmlSerializer incorrectly serializes DateTime fields/properties marked with [XmlText(DataType = ""time"")] if the DateTime value is of UTC kind. " +6764 area-System.Net HttpClient should not miss Set-Cookie response headers Recent changes due to PR #3199 caused `HttpClient` on Windows to miss `Set-Cookie` response headers when one of the header values was large enough to cause `WinHttpQueryHeaders` to fail with `ERROR_INSUFFICIENT_BUFFER`. This commit addresses the regression. Added a new test to validate this change. Fixes #6737. cc: @davidsh @stephentoub @kichalla, FYI. +6770 area-Meta Add support for running dotnet core on Banana linux There are some pull requests on supporting specific well known distributions in this repository. I created this issue to improve documentation (and perhaps tooling) for the general issue. Banana Unix is the term used by @jasonwilliams200OK in https://github.com/dotnet/cli/issues/1532 for some platform that doesn't support coreclr yet. This could be the next version of Debian or it may just as well be a custom built linux system for an embedded device. Some concrete questions: What are the minimal parts that need to be built for supporting a new platform? In what repos are they? And with which commands can they be built? Can these bits be built on an existing supported platform? Or does the build have to be done on the new platform? If the latter, is there any bootstrapping needed (e.g. get a first-stage core runtime to build the one for the new platform)? How is this done? \cc @jasonwilliams200OK @ellismg @stephentoub +6771 area-System.Net .NET Core Http Support So I wrote some test apps in C against LibUV and Libcurl api to get a feel of what’s powering Kestrel and HttpClient and while I can say that both libraries provide a very elegant and straightforward callback API I can’t help but raise the question: Why do we need these in .NET Core? Sure, LibUV makes perfect sense for NodeJS as a cross-platform abstraction layer for sockets, files, timers, thread pool, mutex.. but in .NET Core all these services are already inherently offered cross-platform by CoreFX. Simply put what does uv_accept / uv_read_start provide that the Socket.AcceptAsync/Socket.ReceiveAsync lack? As for Libcurl, again great library for Native developers but what’s in it for Managed developers? Furthermore, from what I see we are not using the high performance event driven curl_multi_socket_action interface with timeout callback and in any case why not just port the full .NET HttpWebRequest to use .NET Core cross-platform async socket interface and have a consistent implementation across both Windows / *Unix down to the socket level? There is also a potential problem if someone wants to use a third-party native library (PInvoke) that depends on some version specific build of one of these; I mean how can you load multiple versions of LibUV or Libcurl in the same .NET process and why does the FW need to take part of any potential conflict that might occur? Lastly, I think it's very important to include an equivalent of HttpListener for both Windows and *inux in CoreFX Because: 1. There are probably existing applications that use HttpListener interface that now can’t be ported to .NET Core and run on both Windows and *inux as is. 2. Experience shows that web application framework’s (including ASP.NET) are highly opinionated. Some people need/like the “Application model” some just want access to an Http interface. In my opinion it would be a mistake not include a low-level http server in CoreFX as part of the standard library as the case in Go and NodeJS. Kestrel is great but it’s an ASP.NET server subsystem not a .NET CoreFX library. +6772 area-System.Net Fix IAsyncResult.AsyncState cast to ExceptionDispatchInfo I had this change locally but neglected to include it as part of my SslStream errors fix-up PR yesterday. In one place we were storing an exception into an AsyncState typed as object, and then were pulling it out and checking whether it was an exception... when I changed the storing location to use ExceptionDispatchInfo (https://github.com/stephentoub/corefx/blob/fix_edi_asyncstate/src/System.Net.Security/src/System/Net/SecureProtocols/SslState.cs#L989), the cast on the way out also needed to change. cc: @ericeil, @bartonjs, @davidsh +6774 area-System.Globalization Creating an UmAlQuraCalendar fails on Linux ## Problem In PR #6733 the following error occured when constructing an UmAlQuaraCalendar on Linux. The Windows build and test did not fail or throw any exceptions. They passed as expected. > 15:52:30 ---- System.NullReferenceException : Object reference not set to an instance of an object. > 15:52:30 Stack Trace: > 15:52:30 at System.Globalization.UmAlQuraCalendar.get_MaxSupportedDateTime() > 15:52:30 at System.Globalization.Tests.CalendarHelpers.MaxCalendarYearInEra(Calendar calendar, Int32 era) > 15:52:30 at System.Globalization.Tests.CalendarHelpers.ToDateTime_Invalid(Calendar calendar) > 15:52:30 ----- Inner Stack Trace ----- > 15:52:30 at System.Globalization.UmAlQuraCalendar.InitDateMapping() > 15:52:30 at System.Globalization.UmAlQuraCalendar..cctor() > 15:52:30 System.Globalization.Tests.CalendarHelpers.GetMonth_Invalid [FAIL] > 15:52:30 System.TypeInitializationException : The type initializer for 'System.Globalization.UmAlQuraCalendar' threw an exception. > 15:52:30 ---- System.NullReferenceException : Object reference not set to an instance of an object. > 15:52:30 Stack Trace: > 15:52:30 at System.Globalization.UmAlQuraCalendar.get_MinSupportedDateTime() > 15:52:30 at System.Globalization.Tests.CalendarHelpers.d__10.MoveNext() > 15:52:30 at System.Linq.Enumerable.SelectEnumerableIterator2.MoveNext() 15:52:30 ----- Inner Stack Trace ----- 15:52:30 at System.Globalization.UmAlQuraCalendar.InitDateMapping() 15:52:30 at System.Globalization.UmAlQuraCalendar..cctor() 15:52:30 System.Globalization.Tests.CalendarHelpers.IsLeapMonth_Invalid [FAIL] 15:52:30 System.TypeInitializationException : The type initializer for 'System.Globalization.UmAlQuraCalendar' threw an exception. 15:52:30 ---- System.NullReferenceException : Object reference not set to an instance of an object. 15:52:30 Stack Trace: 15:52:30 at System.Globalization.UmAlQuraCalendar.get_MaxSupportedDateTime() 15:52:30 at System.Globalization.Tests.CalendarHelpers.MaxCalendarYearInEra(Calendar calendar, Int32 era) 15:52:30 at System.Globalization.Tests.CalendarHelpers.d__9.MoveNext() 15:52:30 at System.Linq.Enumerable.SelectEnumerableIterator2.MoveNext() > 15:52:30 ----- Inner Stack Trace ----- > 15:52:30 at System.Globalization.UmAlQuraCalendar.InitDateMapping() > 15:52:30 at System.Globalization.UmAlQuraCalendar..cctor() > 15:52:30 Finished: System.Globalization.Calendars.Tests ## Investigation It seems like this exception is thrown in [this](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Globalization/UmAlQuraCalendar.cs#L42) method (`InitDateMapping`) There is a comment in the code: ``` //Direct inline initialization of DateMapping array would produce a lot of code bloat. // We take advantage of C# compiler compiles inline initialization of primitive type array into very compact code. // So we start with raw data stored in primitive type array, and initialize the DateMapping out of it ``` Maybe this behaviour cannot be guaranteed on roslyn on Linux? /cc @stephentoub @tarekgh +6775 area-System.Globalization Improve negative tests in System.Globalization.Calendars ### Context I have done work in #6733 for consolidating common negative tests for Calendars exposed in corefx. The implementation is generic, and should support all calendars. ### Todo There are some issues to be investigated: - [x] JapenseLunisolarCalendar is not supported. This is because the implementation calculates that the `MaximumCalendarYearInEra(new JapaneseLunisolarCalendar(), 3)` is 1, not as 64 (IIRC) expected. This can be fixed by changing the code from `return calendar.GetYear(calendar.ToDateTime(1, 1, 1, 0, 0, 0, 0, era + 1).AddDays(-1)) + 1;` to `return calendar.GetYear(calendar.ToDateTime(1, 1, 1, 0, 0, 0, 0, era + 1).AddMonths(-1)) + 1;`, but this reduces the versatility of existing tests. - [ ] `GetDayOfWeek_Invalid` should not be tested for Lunar and lunarsolar calendars, as the method doesn't throw on these calendars. There is no way in corefx to check if a calendar is lunarsolar - [ ] `GetEra_Invalid` throws an exception for most calendars, but not HebrewCalendar, TaiwanLunisolarCalendar and JapaneseLunisolarCalendar. Maybe this is a similar cause from the previous point ### Further ideas Some further ideas that are nice but not so important - Test each year, and invalid months outside the max and min month in each year - Test each month, and invalid days outside the max and min day in each month /cc @tarekgh +6778 area-System.Runtime [corert] Define and implement Marshal.GetLastWin32Error for Linux systems System.Private.Uri is using Marshal.GetLastWin32Error, when compiling it as aot (corert netstandard13aot) for Linux it complain about Marshal.GetLastWin32Error is not implemented. Temporary we are providing empty stub to work around the issue but we need a permanent solution either get it implemented in Linux or kill the dependency on that API in Linux code +6781 area-System.Security System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests.TestKey_RSA failed on CentOS http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/centos7.1_release_tst_prtest/2479/consoleFull#-21371504001f1a4601-6aec-4fd5-b678-78d4389fd5e8 ``` 11:16:56 System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests.TestKey_RSA [FAIL] 11:16:56 Assert.Equal() Failure 11:16:56 Expected: Byte[] [232, 175, 92, 162, 32, ...] 11:16:56 Actual: Byte[] [0, 0, 0, 0, 0, ...] 11:16:56 Stack Trace: 11:16:57 at System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests.TestKey_RSA() ``` +6782 area-System.Security Unable to find an entry point named 'GetMaxMdSize' on Linux "I'm getting this error trying to use the AWS Dotnet SDKv3. This is on Ubuntu 14.04 with openssl 1.0.1f ``` sh $ openssl version OpenSSL 1.0.1f 6 Jan 2014 ``` ``` Unhandled Exception: System.AggregateException: One or more errors occurred. (The type initializer for 'Crypto' threw an exception.) ---> System.TypeInitializationException: The type initializer for 'Crypto' threw an exception. ---> System.EntryPointNotFoundException: Unable to find an entry point named 'GetMaxMdSize' in DLL 'System.Security.Cryptography.Native'. at Interop.Crypto.GetMaxMdSize() at Interop.Crypto..cctor() --- End of inner exception stack trace --- at Interop.Crypto.EvpSha256() ``` ``` ""dependencies"": { ""NETStandard.Library"": ""1.0.0-rc2-23901"", ``` " +6783 area-System.IO System.IO.File.Close() missing; prevents writing idiomatic F# code "Although I realize that .NET Core is intentionally stripped down relative to the full .NET platform, this method is necessary for idiomatic (i.e. single-assignment) programming with F# on Windows. Without it, the only way to close a file is to delete the `File` object which requires coping with nulls, a thing F# tries very hard to avoid. Explicitly closing a file is often necessary on Windows due to its mandatory file locking semantics. For example, you cannot typically move or a file to another directory while a `File` object is open for writing on that file. Lacking a `Close()` method, single-assignment code such as this: ``` open System.IO let file = File.Create(""myfile"", ...) ... do stuff with file file.Close() ... do something with myfile on disk ``` must be rewritten to use a mutable `file` object: ``` open System.IO let mutable file = File.Create(""myfile"", ...) ... do stuff with file file <- null ... do something with myfile on disk ``` Although that looks like a simple fix, now all the F# code dealing with `file` has to check for `null` before using the value, a very un-F# style of coding. (Moved from [https://github.com/dotnet/cli/issues/1776]) " +6796 area-System.Net Different Behavior for Content-Encoding response header on HttpClient running on windows and Linux Hello, I'm experiencing different behavior on linux and windows for the response header Content-Encoding when AutomaticDecompression is enabled. On windows when the response has the header Content-Encoding:gzip the body is automatically decompressed and the header is stripped out. https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpClientHandler.Windows.cs#L219 https://github.com/dotnet/corefx/blob/2ba2083ec3da237ad2beabc2a361a2d9b1e1777b/src/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpHandler.cs#L865 https://github.com/dotnet/corefx/blob/2ba2083ec3da237ad2beabc2a361a2d9b1e1777b/src/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpResponseParser.cs#L81 On Linux the response body is automatically decompressed but the Content-Encoding header is NOT stripped out. https://github.com/dotnet/corefx/blob/ac67ffac987d0c27236c4a6cf1255c2bcbc7fe7d/src/System.Net.Http/src/System/Net/Http/HttpClientHandler.Unix.cs#L162 +6798 area-Infrastructure "Clean-up: Is ""PortableNuGetMode"" required in dir.targets" https://github.com/dotnet/corefx/blob/master/dir.targets#L30 The question was raised in PR #6785, is PortableNuGetMode still required in dir.targets? Investigate whether this has been added to buildtools (perhaps add it), and clean up this code. +6799 area-System.Net Remove content headers in CurlHandler when automatically decompressed WinHttpHandler removes the Content-Length and Content-Encoding headers when the content was automatically decompressed. Do the same in CurlHandler. cc: @davidsh, @kapilash, @ericeil Fixes #6796 +6802 area-System.Data System.Data.SqlClient FileNotFoundException (1.0.0-rc1-update1) "I run into the following error on Windows Server 2012, when running dnx or within Visual Studio 2015 (having all latest updates): dnx -p . web `Hosting environment: Production Now listening on: http://localhost:5000 Application started. Press Ctrl+C to shut down. info: Microsoft.AspNet.Hosting.Internal.HostingEngine[1] Request starting HTTP/1.1 GET http://localhost:5000/api/comm info: Microsoft.AspNet.Hosting.Internal.HostingEngine[3] Request finished in 0.0312ms 500 fail: Microsoft.AspNet.Server.Kestrel[13] An unhandled exception was thrown by the application. System.IO.FileNotFoundException: Could not load file or assembly 'System.Data.SqlClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. File name: 'System.Data.SqlClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' at WebAPI.Service.DbSscaService..ctor() at WebAPI.Controllers.CommController..ctor() in D:\Data\Projects\WebApplication5\src\WebApplication5\Controllers\CommController.cs:line 20 at lambda_method(Closure , IServiceProvider , Object[] ) at Microsoft.AspNet.Mvc.Infrastructure.DefaultTypeActivatorCache.CreateInstance[TInstance](IServiceProvider serviceProvider, Type implementationType) at Microsoft.AspNet.Mvc.Controllers.DefaultControllerActivator.Create(ActionContext actionContext, Type controllerType) at Microsoft.AspNet.Mvc.Controllers.DefaultControllerFactory.CreateController(ActionContext actionContext) at Microsoft.AspNet.Mvc.Controllers.ControllerActionInvoker.CreateInstance() at Microsoft.AspNet.Mvc.Controllers.FilterActionInvoker.d__52.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Mvc.Controllers.FilterActionInvoker.d__51.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNet.Mvc.Controllers.FilterActionInvoker.d__44.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Mvc.Infrastructure.MvcRouteHandler.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Mvc.Routing.InnerAttributeRoute.d__10.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Routing.RouteCollection.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Builder.RouterMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.IISPlatformHandler.IISPlatformHandlerMiddleware.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Hosting.Internal.RequestServicesContainerMiddleware.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Hosting.Internal.HostingEngine.<>c__DisplayClass32_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Server.Kestrel.Http.Frame.d__79.MoveNext() ``` = Pre-bind state information = LOG: DisplayName = System.Data.SqlClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ``` (Fully-specified) LOG: Appbase = file:///C:/Users/ps2-v000997/.dnx/runtimes/dnx-clr-win-x86.1.0.0-rc1-update1/bin/ LOG: Initial PrivatePath = NULL Calling assembly : (Unknown). === LOG: This bind starts in default load context. LOG: No application configuration file found. LOG: Using host configuration file: LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. LOG: Post-policy reference: System.Data.SqlClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a LOG: Fusion is hosted. Check host about this assembly. LOG: Try host assembly store with assembly system.data.sqlclient, version=4.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a, processorarchitecture=x86. LOG: Try host assembly store with assembly system.data.sqlclient, version=4.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a, processorarchitecture=msil. LOG: Try host assembly store with assembly system.data.sqlclient, version=4.0.0.0, culture=neutral, publickeytoken=b03f5f7f11d50a3a. WRN: Host assembly store does not contain this assembly. LOG: Attempting download of new URL file:///C:/Users/ps2-v000997/.dnx/runtimes/dnx-clr-win-x86.1.0.0-rc1-update1/bin/System.Data.SqlClient.DLL. LOG: Attempting download of new URL file:///C:/Users/ps2-v000997/.dnx/runtimes/dnx-clr-win-x86.1.0.0-rc1-update1/bin/System.Data.SqlClient/System.Data.SqlClient.DLL. LOG: Attempting download of new URL file:///C:/Users/ps2-v000997/.dnx/runtimes/dnx-clr-win-x86.1.0.0-rc1-update1/bin/System.Data.SqlClient.EXE. LOG: Attempting download of new URL file:///C:/Users/ps2-v000997/.dnx/runtimes/dnx-clr-win-x86.1.0.0-rc1-update1/bin/System.Data.SqlClient/System.Data.SqlClient.EXE.` project.json: `{ ""version"": ""1.0.0-*"", ""compilationOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""Microsoft.AspNet.IISPlatformHandler"": ""1.0.0-rc1-final"", ""Microsoft.AspNet.Mvc"": ""6.0.0-rc1-final"", ""Microsoft.AspNet.Server.Kestrel"": ""1.0.0-rc1-final"", ""Microsoft.AspNet.StaticFiles"": ""1.0.0-rc1-final"", ""Microsoft.Extensions.Configuration.FileProviderExtensions"": ""1.0.0-rc1-final"", ""Microsoft.Extensions.Configuration.Json"": ""1.0.0-rc1-final"", ""Microsoft.Extensions.Logging"": ""1.0.0-rc1-final"", ""Microsoft.Extensions.Logging.Console"": ""1.0.0-rc1-final"", ""Microsoft.Extensions.Logging.Debug"": ""1.0.0-rc1-final"", ""System.Data.Common"": ""4.0.1-beta-23516"", ""System.Data.SqlClient"": ""4.0.0-beta-23516"" }, ""commands"": { ""web"": ""Microsoft.AspNet.Server.Kestrel"" }, ""frameworks"": { ""dnx451"": { } }, ""exclude"": [ ""wwwroot"", ""node_modules"" ], ""publishExclude"": [ ""**.user"", ""**.vspscc"" ] }` `Active Version Runtime Architecture OperatingSystem Alias 1.0.0-rc1-update1 clr x64 win - 1.0.0-rc1-update1 clr x86 win default 1.0.0-rc1-update1 coreclr x64 win 1.0.0-rc1-update1 coreclr x86 win ` Any fixes available? Any beta version eventually working? " +6803 area-System.Net Need more testing of multiple pending async Socket operations We don't have much coverage of scenarios involving multiple pending operations on a single Socket. For example, do operations maintain correct ordering? Do we deal correctly with a socket closing with multiple pending operations? Etc. +6804 area-System.Net Let the system allocate ports for the IPv6 sockets in ConnectExTest "This avoids an ""address in use"" error when running concurrently with other tests. Fixes #4628. @CIPop @stephentoub " +6806 area-System.Net Assert in TryCompleteOrAbortAsync with Unix domain sockets "The following assert: ``` Unexpected oldState: Complete at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Assert(Boolean condition, String message) at System.Net.Sockets.SocketAsyncContext.AsyncOperation.TryCompleteOrAbortAsync(SocketAsyncContext context, Boolean abort) at System.Net.Sockets.SocketAsyncContext.AsyncOperation.TryCompleteAsync(SocketAsyncContext context) at System.Net.Sockets.SocketAsyncContext.OperationQueue`1.Complete(SocketAsyncContext context) at System.Net.Sockets.SocketAsyncContext.HandleEvents(SocketEvents events) at System.Net.Sockets.SocketAsyncEngine.EventLoop() at System.Threading.Tasks.Task.Execute() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)Aborted (core dumped) ``` gets triggers by this repro: ``` C# using System; using System.IO; using System.IO.Pipes; using System.Net.Http; using System.Diagnostics; using System.Threading.Tasks; using System.Text; using System.Net; using System.Net.Sockets; public class Program { public static void Main() { using (Socket server = new Socket(AddressFamily.Unix, SocketType.Stream, ProtocolType.Unspecified)) using (Socket client = new Socket(AddressFamily.Unix, SocketType.Stream, ProtocolType.Unspecified)) { const int Iters = 100; // Increase this value const int Chunk = 1024; byte[] sendData = new byte[Chunk * Iters]; byte[] receiveData = new byte[sendData.Length]; new Random().NextBytes(sendData); string path = ""./example.sock""; File.Delete(path); server.Bind(new UnixDomainSocketEndPoint(path)); server.Listen(1); Task acceptTask = server.AcceptAsync(); client.Connect(new UnixDomainSocketEndPoint(path)); acceptTask.Wait(); Socket accepted = acceptTask.Result; Task[] writes = new Task[Iters]; Task[] reads = new Task[Iters]; for (int i = 0; i < Iters; i++) writes[i] = client.SendAsync(new ArraySegment(sendData, i * Chunk, Chunk), SocketFlags.None); for (int i = 0; i < Iters; i++) reads[i] = accepted.ReceiveAsync(new ArraySegment(receiveData, i * Chunk, Chunk), SocketFlags.None); Task.WaitAll(writes); Task.WaitAll(reads); for (int i = 0; i < sendData.Length; i++) if (receiveData[i] != sendData[i]) throw new Exception($""Different at {i}""); Console.WriteLine(""Done""); } } } // Copied verbatim from https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Net/Sockets/UnixDomainSocketEndPoint.cs namespace System.Net.Sockets { /// Represents a Unix Domain Socket endpoint as a path. public sealed class UnixDomainSocketEndPoint : EndPoint { private const int MaxPathLength = 92; // sockaddr_un.sun_path at http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_un.h.html private const int PathOffset = 2; // = offsetof(struct sockaddr_un, sun_path). It's the same on Linux and OSX private const int MaxSocketAddressSize = PathOffset + MaxPathLength; private const int MinSocketAddressSize = PathOffset + 2; // +1 for one character and +1 for \0 ending private const AddressFamily EndPointAddressFamily = AddressFamily.Unix; private static readonly Encoding s_pathEncoding = Encoding.UTF8; private readonly string _path; private readonly byte[] _encodedPath; public UnixDomainSocketEndPoint(string path) { if (path == null) { throw new ArgumentNullException(nameof(path)); } if (path.Length == 0 || s_pathEncoding.GetByteCount(path) >= MaxPathLength) { throw new ArgumentOutOfRangeException(nameof(path)); } _path = path; _encodedPath = s_pathEncoding.GetBytes(_path); } internal UnixDomainSocketEndPoint(SocketAddress socketAddress) { if (socketAddress == null) { throw new ArgumentNullException(nameof(socketAddress)); } if (socketAddress.Family != EndPointAddressFamily || socketAddress.Size > MaxSocketAddressSize) { throw new ArgumentOutOfRangeException(nameof(socketAddress)); } if (socketAddress.Size >= MinSocketAddressSize) { _encodedPath = new byte[socketAddress.Size - PathOffset]; for (int index = 0; index < socketAddress.Size - PathOffset; index++) { _encodedPath[index] = socketAddress[PathOffset + index]; } _path = s_pathEncoding.GetString(_encodedPath, 0, _encodedPath.Length); } else { // Empty path may be used by System.Net.Socket logging. _encodedPath = Array.Empty(); _path = string.Empty; } } public string Path { get { return _path; } } public override AddressFamily AddressFamily { get { return EndPointAddressFamily; } } public override SocketAddress Serialize() { var result = new SocketAddress(AddressFamily.Unix, MaxSocketAddressSize); // Ctor has already checked that PathOffset + _encodedPath.Length < MaxSocketAddressSize for (int index = 0; index < _encodedPath.Length; index++) { result[PathOffset + index] = _encodedPath[index]; } result[PathOffset + _encodedPath.Length] = 0; // The path must be ending with \0 return result; } public override EndPoint Create(SocketAddress socketAddress) { return new UnixDomainSocketEndPoint(socketAddress); } public override string ToString() { return Path; } } } ``` As you increase Iters to increase the number of concurrent operations, the change of hitting the assert gets much larger. " +6807 area-System.Net Consider exposing Socket.Handle / Socket.SafeHandle In the full framework, Socket provides an `IntPtr Handle { get; }` property that returns a representation of the underlying OS' socket. This enables using functionality not exposed via the Socket object model. In corefx, this property isn't available, and there's no IntPtr-based or SafeHandle-based replacement for it, preventing such use. +6812 area-System.ComponentModel Expose additional APIs in System.ComponentModel contracts This exposes the APIs tracked by #6573 in the contracts. Tests to come alongside implementation. cc: @terrajobst @twsouthwick @weshaggard +6814 area-System.Net "Fix SocketAsyncContext's ""requeue"" operation" `Requeue` is supposed to add an item back to the head of the queue. It was not implemented correctly, resulting in a corrupt queue in cases where an operation needed to be retried after an attempt to complete it on the event handler thread. This addresses part of #6806 (the assert). The test code in that issue still fails with a different problem, which I'll look into next. @stephentoub, @pgavlin +6819 area-System.Linq OrderBy-Take-Skip combination gives incorrect result "`OrderBy` followed by `Take(2).Skip(1)` gives empty list instead of list of size 1. Repro code: ``` c# using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { var cs = new List { new Customer { CustomerID = ""ANATR"" }, new Customer { CustomerID = ""ANTON"" }, new Customer { CustomerID = ""AROUT"" }, new Customer { CustomerID = ""BERGS"" }, new Customer { CustomerID = ""BONAP"" }, new Customer { CustomerID = ""ALFKI"" }, }; // Only Skip Console.WriteLine(cs.Count()); Console.WriteLine(cs.Skip(1).Count()); // OrderBy & Skip Console.WriteLine(cs.OrderBy(c => c.CustomerID).Count()); Console.WriteLine(cs.OrderBy(c => c.CustomerID).Skip(1).Count()); // Take & Skip Console.WriteLine(cs.Take(2).Count()); Console.WriteLine(cs.Take(2).Skip(1).Count()); // OrderBy, Take & Skip Console.WriteLine(cs.OrderBy(c => c.CustomerID).Take(2).Count()); Console.WriteLine(cs.OrderBy(c => c.CustomerID).Take(2).Skip(1).Count()); Console.WriteLine(""Hello World!""); } } public class Customer { public string CustomerID {get; set;} } } ``` project.json ``` json { ""version"": ""1.0.0-*"", ""compilationOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""NETStandard.Library"": ""1.0.0-rc2-23811"" }, ""frameworks"": { ""dnxcore50"": { } } } ``` Console Output: ``` D:\issue> dotnet run Project issue (DNXCore,Version=v5.0) was previously compiled. Skipping compilation. 6 5 6 5 2 1 2 0 // Should have been 1 Hello World! ``` " +6822 area-System.Net Fix WinHttpHandler when no proxy creds after 407 response We were getting an assert if we had an authenticating proxy but didn't have any credentials to send. After the initial 407 was received from the proxy, we then tried to set credentials for a retry. But since we didn't have any, we triggered an assert in SetWinHttpCredential. The fix is to check for null credentials after getting the 407 response. If there are no credentials, then we end the retry loop with the final 407 status code. +6826 area-Meta await Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync(emailMessage); launches Outlook email composer with incomplete content I have been having issues with launching the Windows Phone 10 Outlook email composer with a pre-populated body from a UWP app. On both emulator and device, I experience inconsistent results with the same piece of code. The core of the code is provided below: `public static async Task ComposeEmail()` `{` ` `var emailMessage = new Windows.ApplicationModel.Email.EmailMessage();` ``emailMessage.Body = GenerateMessageBody();` ` ``await Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync(emailMessage);` `}` `await Windows.ApplicationModel.Email.EmailManager.ShowComposeNewEmailAsync(emailMessage);` **_renders the body with incomplete content_** whose length before truncation is not consistent. I have crosschecked that `emailMessage.Body` contains the full content of the string passed to it. In the case of a string containing HTML tags, Outlook sometimes renders the body as processed html (just like a web browser should) or plaintext html. In either of these cases, it stops printing the string passed to the body at different points irrespective of whether it outputs it as processed html or plain text html. Please be aware that this has been tested with strings with different character length but the issue still persists irrespective. **I have attached a complete standalone troubleshooting zip containing:** • sample app which tries to launch the Outlook email composer whose body is prepopulated at the click of a button on the home screen. I’ll be pleased if you can look into this. [EmailComposer.zip](https://github.com/dotnet/corefx/files/168905/EmailComposer.zip) +6827 area-System.Data SqlClient hangs when loading in Docker "A simple client is create to talk to a remote Sql database - this works in all cases on Linux) A docker image is created based on aspnet/1.0.0-rc1-update1 but with 1.0.0-rc2-16595 installed A docker image is created based on the above with the test client inside it. DNX_TRACE=1 is enabled in the container When run, all is well until the runtime tries to load the SqlClient. The process then hangs indefinitely requiring it to be killed as in below image. Is this known and/or is there a workaround - can anyone suggest more diagnostics ? - thanks in advance.... ![image](https://cloud.githubusercontent.com/assets/4983720/13703128/7bbd432e-e78b-11e5-9151-c3524f21db0e.png) I've tried this on : 1.0.0-rc2-16357, 1.0.0-rc2-16551, 1.0.0-rc2-16595 and the result is the same Docker file for runtime base is created like this ``` FROM microsoft/aspnet:1.0.0-rc1-update1-coreclr ENV DNX_TRACE 1 RUN bash -c ""source $DNX_USER_HOME/dnvm/dnvm.sh \ && dnvm install 1.0.0-rc2-16595 -alias default -u -r coreclr \ && dnvm alias default | xargs -i ln -s $DNX_USER_HOME/runtimes/{} $DNX_USER_HOME/runtimes/default"" ``` Docker file for test client is create like this (FROM refers to the above) ``` FROM coreclr:1.0.0-rc2-16595 COPY ""./approot"" ""/approot"" WORKDIR /approot EXPOSE 5004 ENTRYPOINT [""./run""] ``` " +6828 area-System.Net SocketPal.Ioctl isn't implemented on Unix "There's currently a TODO in the code (""TODO: can this be supported in some reasonable fashion?""). We should either figure out the right design for this and implement it or remove the TODO. " +6830 area-System.ComponentModel ValidationAttribute _errorMessageResourceAccessor does not support UWP style Resw resources "The ValidationAttribute needs to be updated to include support for UWP style Resw resource files that do not generate a C# code file with static properties to represent the resources in the Resw file. It might need a new property to allow the developer to specify the `Windows.ApplicationModel.Resources.ResourceLoader` instance to use and then specify the ResourceKey. Then just add an if block in the ""private void SetupResourceAccessor(){...}"" method to setup the ""_errorMessageResourceAccessor"" delegate to use the new ResourceLoader class to get the resource using the specified ResourceKey. Something like: ``` _errorMessageResourceAccessor = delegate { return _theResourceLoaderToUse.GetString(_theResourceKey); }; ``` Where ""_theResourceLoaderToUse"" and ""_theResourceKey"" are internal properties set by the developer. And, instead of code like this: ``` [Required(ErrorMessageResourceType = typeof(Resources.Strings), ErrorMessageResourceName = ""EmailInvalidMessage"")] ``` We use code like this: ``` [Required(ErrorMessageResourceLoaderDelegate = delegate { return Windows.ApplicationModel.Resources.ResourceLoader.GetForCurrentView(); }, ErrorMessageResourceName = ""EmailInvalidMessage"")] ``` " +6831 area-System.Numerics New Magnitude class for System.Numerics "Supporting magnitudes (values + units) might be a good complement for the current vector functionalities of `System.Numerics`. It would allow .NET to deal with any Physics-based situation in an intuitive and easy way. What I am proposing here might also be adapted to other not-related-to-Physics requirements, like angles or computing units (e.g., bit/byte). The new `Magnitude` class is expected to be defined in such a way that all the operations and unit conversions might be easily performed. The idea is allowing programmers to interact with values+units as intuitively as they currently do with just values. For example: having 5 m/s and wanting to convert it to in/s or to add it to 3 ft/h. Rough sketch of what I have in mind: ``` C# public class Magnitude { public static Magnitude operator +(Magnitude first, Magnitude second) { //It is necessary to confirm whether ""type"" & ""measurement"" are compatible and eventually perform all the required conversions. return new Magnitude((decimal)first.value + (decimal)second.value, first.measurement.unit.ToString()); } //Further basic operator overloads. //Other methods performing basic operations among Magnitude instances. public readonly MagnitudeType type; //The type of the instance has to remain unaltered. public object value { get; set; } //The getter will be defined on account of the ""measurement"" properties. public Measurement measurement { get; set; } public Magnitude(decimal value, string unit) { this.value = value; //The ""unit"" value will be adequately parsed and analysed. //The version below is a simplistic version to show the idea. if (unit == ""m"") { this.type = MagnitudeType.Length; this.measurement = new Measurement(UnitSystem.InternationalSystem, LengthInternational.Meter); } else if (unit == ""ft"") { this.type = MagnitudeType.Length; this.measurement = new Measurement(UnitSystem.ImperialSystem, LengthImperial.Foot); } } //Other overloads accepting different arguments. } public class Measurement { public UnitSystem system { get; set; } public object unit { get; set; } public Measurement(UnitSystem system, object unit) { this.system = system; this.unit = unit; } } //Very simplified versions showing how the enums are expected to look like. public enum MagnitudeType { Length, Weight } public enum UnitSystem { InternationalSystem, ImperialSystem }; public enum LengthInternational { Millimeter, Centimeter, Meter }; public enum LengthImperial { Inch, Foot }; ``` Simple example showing how the aforementioned code is expected to be used: ``` C# Magnitude var1 = new Magnitude(1.234m, ""m""); Magnitude var2 = new Magnitude(5.678m, ""ft""); Magnitude var3 = var1 + var2; ``` I can only think of one drawback for the proposed approach: relying on enums in a situation like this (i.e., with many alternatives and classifications) implies hardcoding a relevant amount of different scenarios. In any case, I think that it would be worthy anyway. CLARIFICATION (from my previous contributions, I understand that this issue should be evident, but just in case...): I am expecting to take care of the proposed implementation completely by my own and also to deliver a comprehensive-enough first version. The initial lack of detail is exclusively motivated by the fact that I prefer to not spend too much time on this before confirming that the .NET community/team likes it. " +6832 area-System.Net Sockets on Unix don't maintain ordering of async operations "If the user initiates multiple concurrent async operations, the expectation (and guarantee, on Windows) is that these will operate on the underlying data stream in the order in which they were submitted. For example, if two asynchronous reads are started, the first read must be satisfied from the first bytes received from the remote peer, and the second read must receive the next bytes, etc. Without this guarantee, it is impossible to reconstruct a data stream received via concurrent read operations. The same ordering requirements apply to writes, for the same reasons. In the current Unix implementation of Sockets, we maintain ordering of operations enqueued to the `SocketAsyncContext`, but we do not actually enqueue operations there before first trying to complete the operation. This allows later operations to ""jump ahead"" of prior operations, in cases where the later operation is started just as data becomes available, but before the `SocketAsyncContext` event loop has had a chance to consume the data. It is important to have this initial attempt to complete the operation before waiting for the asynchronous event, because typically data _is_ available when the operation is initiated, and we don't want to pay the cost of multiple allocations, context switches, etc., for an operation that can complete synchronously. However, if prior operations are already enqueued, waiting for their turn, subsequent operations need to forego the initial attempt to complete synchronously, and wait in line behind the prior operations. See #6806 for an example of a test that fails due to this problem. " +6833 area-System.Net Implement NamedPipe*Stream on Unix domain sockets Today, NamedPipeServer/ClientStream on Unix are implemented on top of FIFOs, aka named pipes. There are some unfortunate limitations to this that are causing problems for typical usage of NamedPipeServer/ClientStream: - FIFOs can be constructed as both read and write (i.e. InOut), but a writer can then immediately read what was written. In other words, whereas one might expect there two be two data channels, one in each direction, there's only one that everyone can read and write from. - FIFOs can be connected to by any number of readers and writers, which has the effect of meaning a reader doesn't unblock when a writer disconnects, because there may be another writer in the future. To address these significant limitations, this commit moves NamedPipeServer/ClientStream to be built instead on top of Unix domain sockets. Unix domain sockets are an IPC mechanism for local communication using the sockets model, and we have support for it via System.Net.Sockets, thanks to #5051. Both of the aforementioned problems are addressed by this change. A few other positive outcomes: - The participants on each side of the connection can get the credentials of the other side, so GetImpersonatedUserName is now implemented. - Our Socket implementation has a good async implementation, so we can use it for all of the async operations exposed rather than queueing a work item that then blocks doing the synchronous operation. There are a few downsides, but they're worth the tradeoff: - FIFOs have the same general blocking behavior as anonymous pipes and as named pipes on Windows: a call to Write doesn't complete until an associated Read comes along. That's not the case with Unix domain sockets, where a Write typically just deposits the data into a buffer. Writes on a socket only block when the buffer is full. - Unix domain sockets are considered to be a bit slower than FIFOs. - Changing the buffer size of a FIFO impacts the whole FIFO, whereas changing the buffer size for a socket impacts just that end of the socket. - There's also a small hack that uses reflection to work around #6807, the lack of an exposed handle property on Socket. Hopefully that'll be fixed soon and then we can remove the hack. There continue to be several features that we don't support on Unix, e.g. message transmission, max number of servers, etc. (One oddity here is that this makes the Unix implementation of System.IO.Pipes.dll have a dependency on System.Net.Sockets.dll, but I spoke with @weshaggard and, other than it being odd, we couldn't come up with any strong reason not to. In the layering, Sockets is already considered lower-level.) cc: @ericeil, @ianhays, @bartonjs, @jaredpar, @AArnott, @cipop, @ericstj, @dsplaisted, @IlyaBiryukov, @bpschoch Fixes https://github.com/dotnet/corefx/issues/1849 +6835 area-System.Net Don't get available bytes for the socket unless we actually need the result While reading through the code I noticed that we're making unnecessary `ioctl` calls in Receive calls, to get the count of available bytes. This turns out to only be used if the caller supplied a list of buffers, which is not the typical case. This change moves the `ioctl` call so that it happens only if needed, which should help with throughput in most scenarios. @stephentoub +6838 area-System.Net Ensure ordering of async Socket send/receive operations If the send/receive queue is not empty, don't attempt to synchronously send/receive. Instead, wait our turn behind prior pending operations. This has the unfortunate consequence of making `_queueLock` cover more code. This is solvable, but is a much larger change, which will have to wait for later. It's worth noting that this lock will only experience contention if there are actually concurrent operations, in which case we need _something_ to synchronize/serialize those operations in any case. For mainstream scenarios, I would not expect any noticeable perf impact due to this change. Fixes #6832. @stephentoub @pgavlin +6846 area-System.Net Implement SocketPal.Poll on Unix with poll instead of select SocketPal.Poll on Unix is currently implemented with select. This is causing problems due to limitations of select, which fails with file descriptors >= FD_SETSIZE. I've changed the implementation to use poll instead, which both fixes the problem and results in simpler code. I've also added a few tests, and in the process of doing so cleaned up some related tests to use theories. This is blocking #6833, which in CI is frequently getting file descriptors for sockets larger than FD_SETSIZE. cc: @ericeil, @pgavlin, @davidsh, @CIPop Contributes to #4728. +6847 area-System.Net HttpClient: Add comment to Set-Cookie test Add a comment explaining the header value lengths being tested per #6764 PR feedback ([comment](https://github.com/dotnet/corefx/pull/6764#discussion_r55526369)). cc: @stephentoub @davidsh +6849 area-System.Net Progress while downloading a large file with HttpClient Hi All, Googling around I found that Windows.Web.Http.HttpClient provides a way to get progress of a download. Is there an way to get some kind of progress information when downloading a large file using ASP.NET Core's HttpClient? Thanks, -Brian +6850 area-System.Reflection Unable to use Reflection to get StructLayoutAttribute for a type In .NET CoreCLR it is not possible to get the `System.Runtime.InteropServices.StructLayoutAttribute` for a given type via reflection. In usual .NET CLR the `System.Type` and `System.Reflection.TypeInfo` declare the `StructLayoutAttribute` member as the StructLayout cannot be retrieved by calls to `GetCustomAttribute()` or through the `CustomAttributes` property. The consequence of this is that it is impossible to use reflection to get the packing size, or the constant size of a StructLayout marked type. Ironically, The `LayoutKind` and `CharSet` values can be infrerred from the `TypeAttributes` of a type info. +6854 area-System.Net Merge master into dev/negotiatestream cc @stephentoub @vijaykota +6856 area-System.Net Implement SocketPal.Select on Unix with poll instead of with select (Ignore the first commit. It's copied from #6846 as it builds on some changes made there.) The second commit adds tests for Socket.Select, which didn't have any other than some tests for argument validation. The third commit changes Unix's SocketPal.Select to be implemented with poll instead of with select. select suffers from the limitation that it only works with file descriptors less than FD_SETSIZE; if the system assigns a file descriptor >= FD_SETSIZE, Socket.Select will fail. This commit changes the implementation to use poll instead of select. (I considered keeping the current Select implementation and falling back to the new one only if a file descriptor >= FD_SETSIZE was found, but after coding it and trying both, it didn't seem worth keeping all of the select code around.) Fixes #4728 cc: @ericeil, @pgavlin, @davidsh, @cipop +6858 area-System.Net Fix WinHttpHandler proxy discovery behavior "In order to support WindowsProxyUsePolicy.UseWinInetProxy, WinHTTP provides the WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY option. This allows for reading the per-user registry settings to determine how to find a proxy for a given url. This includes using WPAD protocol to find and execute a Javascript PAC file. The WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY only works on Windows 8.1 and above. For Windows 7 and Windows 8, we have to manually do the work and the WinInetProxyHelper class provides for that by calling various WinHTTP APIs. This fix is about having the AUTOMATIC_PROXY behaviors work the same whether done automatically by WinHTTP or manually using the WinInetProxyHelper class. In general, errors processing the auto discovery logic should be ignored and the proxy settings should fallback to manual settings if present in the registry. This is difficult to test in an Xunit test since registry settings need to be changed as well as recycling the ""WinHTTP Web Proxy Autodiscover Discovery Service"" since it caches PAC file processing. So, this was tested manually for now and additional traces were added to the WinInetProxyHelper class. Fixes #6011 " +6863 area-System.Net WebUtility.UrlDecode Not decoding %b6 "I am seeing an issue with %b6 being left as ""%b6"" instead of being converted to 0xb6. I don't know if there is any way I can debug it, but if you take the string ""%b6"" and pass it through the WebUtility.UrlDecode, and you will see that doing an Encoding.UTF8.GetBytes, you will see 0xef, 0xbf, 0xbd, instead of the expected 0xb6. Any help debugging this would be appreciated. " +6866 area-System.IO FileSystemWatcher.Rename clips FullPath and Name "- on OSX run the snippet below with a path to watch - in that path run `mv existing.file newName.file` - the rename event clips the first character of the new name ![screen shot 2016-03-14 at 16 07 39](https://cloud.githubusercontent.com/assets/1794099/13748859/ff9a6f1c-e9fe-11e5-9874-49194b4d05cd.png) ``` c# using System; using System.IO; using System.Threading.Tasks; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { Watch(args[0]).Wait(); Console.WriteLine(""done""); } private static async Task Watch(string path) { FileSystemWatcher watcher = new FileSystemWatcher(path); var tcs = new TaskCompletionSource(); watcher.Renamed += (sender, arg) => { Console.WriteLine(arg.ChangeType); Console.WriteLine(arg.OldFullPath); Console.WriteLine(arg.FullPath); Console.WriteLine(arg.Name); }; watcher.EnableRaisingEvents = true; watcher.IncludeSubdirectories = true; Console.WriteLine(""Waiting for a file to change...""); var result = await tcs.Task; return result; } } } ``` " +6869 area-System.Runtime Add StringBuilder.AppendLine(char) StringBuilder.AppendLine does not have an overload that takes a char. It might be useful to add one. +6872 area-System.Diagnostics Investigate failures when DiagnosticSource tests are run concurrently Currently there are failures when we run allow the DiagnosticSource tests to run concurrently with one another. This suggests there may be bugs in the implementation. To repro remove the assembly directive in DiagnosticSourceEventSourceTests.cs Also see the TODO in the AllSubscriberStress test case. +6874 area-System.ComponentModel Add System.ComponentModel types to support TypeDescriptors This is an initial push that includes the original source of TypeDescriptors and necessary files to facillitate porting to core. The source has been formatted according to the repo standards, but the files have not been added into the projects beyond a placeholder comment for when the file is ready to build. This will make it easier to see what changes were done to enable support on .NET Core. +6877 area-System.Data NullRef Exceptions in Release DataStreamTest Starting: System.Data.SqlClient.ManualTesting.Tests System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd9SqlClient_NP [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(1162,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.GetStream(String connectionString) D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(88,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer(String connectionString, Boolean usingNamePipes) D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(29,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd9SqlClient_NP() System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd11SqlClient_NP [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(1162,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.GetStream(String connectionString) D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(88,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer(String connectionString, Boolean usingNamePipes) D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(55,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd11SqlClient_NP() System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd10SqlClient [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(1162,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.GetStream(String connectionString) D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(88,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer(String connectionString, Boolean usingNamePipes) System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd10SqlClient_NP [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(1162,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.GetStream(String connectionString) D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(88,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer(String connectionString, Boolean usingNamePipes) D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(42,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd10SqlClient_NP() System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer_nwnd9SqlClient [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(1162,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.GetStream(String connectionString) D:\CoreFX\src\System.Data.SqlClient\tests\ManualTests\SQL\DataStreamTest\DataStreamTest.cs(88,0): at System.Data.SqlClient.ManualTesting.Tests.DataStreamTest.RunAllTestsForSingleServer(String connectionString, Boolean usingNamePipes) Finished: System.Data.SqlClient.ManualTesting.Tests === TEST EXECUTION SUMMARY === System.Data.SqlClient.ManualTesting.Tests Total: 5, Errors: 0, Failed: 5, Skipped: 0, Time: 7.038s +6880 area-System.Net Break dependency on older collections in System.Net.Security Removes `System.Net.Security`'s dependency on `System.Collections.NonGeneric` and `System.Collections.Specialized`. This PR is broken up into 3 commits: 1. Adds tests for `ServiceNameCollection`. 100% line and branch coverage, other than the `NormalizeServiceName` method. The tests pass on both the full framework and before/after these changes on .NET Core ~~(other than one behavior difference in `CopyTo` noted below)~~. 2. Removes the dependency on `System.Collections.NonGeneric` and `System.Collections.Specialized`. - `SpnDictionary`: Removed. It's the only thing that depends on the Specialized collections and isn't currently being used anywhere in CoreFX. In the full framework, it's only used in [a few places](http://referencesource.microsoft.com/#System/net/System/Net/_SpnDictionary.cs,3c13c3eec03ce802,references) related to `HttpWebRequest`'s implementation that I don't think is relevant in CoreFX. I also verified it isn't currently used in dev/negotiatestream branch. - `ServiceNameCollection`: No longer inherits from `ReadOnlyCollectionBase` and uses `List` instead of `ArrayList`. - `SslSessionsCache`: Uses of `Hashtable` replaced with `ConcurrentDictionary`. - `SecureChannel`: Uses of `ArrayList` replaced with `List`. 3. `ServiceNameCollection`: Minor perf optimizations and cleanup, while making changes here. ~~Behavior change: In the full framework, `ServiceNameCollection.CopyTo(Array, int)` throws `InvalidCastException` when the destination array is not of a compatible type, but now it throws `ArgumentException` because we now use `List`'s implementation of the non-generic `CopyTo`. Do we need to match the full framework and throw `InvalidCastException` here? (This could have implications for other collections in .NET Core that are now backed by `List` instead of `ArrayList`).~~ **Update**: I added a commit that makes the behavior of `CopyTo` match the full framework. Note: `SslSessionsCache` could use some test coverage around shrinking the cache, but I didn't have a chance to work on it. Not sure if I will anytime soon. Fixes #6725. cc: @weshaggard @davidsh +6881 area-System.Net Remove unused internal Socket.IOControl overload While investigating #6828, I noticed that one `Socket.IOControl` overload does not appear to be used by anything on Windows _or_ Unix, and is not exposed to the public. I assume this is a vestige of the port from the full CLR codebase. @davidsh @CIPop @stephentoub +6884 area-System.Net Fix generation of Net.Security This was regressed by https://github.com/dotnet/corefx/commit/be08afd9701053f5f9369762db58b87c8ca9559f /cc @chcosta +6892 area-Meta Define .NETCoreApp SharedFramework redist +6893 area-System.Runtime (API proposal) Adding a StringBuffer class with a MoveToString method (Sorry for all the proposals I've been posting here lately, I promise this will be my last one for a while :smile:) ## Background It's a common scenario to have code where you want to perform a bunch of operations on a string, like replacing a character or overwriting part of the string, but don't want to allocate a bunch of substrings. What most developers end up doing is copying the string into a temporary `char[]` or `StringBuilder`, calling the mutable counterparts of the methods in question, and then calling `ToString` on the result. This is wasteful, since two allocations are required: one to copy the data into the mutable buffer, and one to construct a new immutable string. Each of these operations takes O(n) time. `ImmutableArray` solves this problem by having a `MoveToImmutable` method in its 'builder' class, which simply [transfers the array reference](https://github.com/dotnet/corefx/blob/master/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray%601+Builder.cs#L198-L201) to a new `ImmutableArray` and sets its own to an empty one. This takes O(1) constant time and does not require copying any data. ## Proposal I propose adding a `StringBuffer` class that represents a fixed-length, mutable string. Its closest counterpart would be a `char[]`, except that it would use a string as its backing store and thus could be 'moved' directly to a string. Here is a rough sketch of how it would look like: ``` csharp public class StringBuffer { private string value; public StringBuffer(int capacity) { this.value = string.FastAllocateString(capacity); } public StringBuffer(char[] value) { this.value = new string(value); } public StringBuffer(string value) { this.value = string.Copy(value); } public int Length => value.Length; public unsafe void Replace(char from, char to) { if (Length == 0) return; // Modify the string in-place fixed (char* pch = value) { for (int i = 0; i < value.Length; i++) { if (pch[i] == from) pch[i] = to; } } } // Other methods, like CopyTo or ToCharArray // No length-changing methods like Append, // since this is supposed to be a fixed-size buffer public string MoveToString() { // Just do a pointer swap and empty out our reference // No copying needed, so this takes constant time var result = this.value; this.value = string.Empty; return result; } } ``` ## Usage Existing code that looks like this: ``` csharp // Replace non-ASCII chars with question marks char[] buffer = input.ToCharArray(); for (int i = 0; i < buffer.Length; i++) { if (buffer[i] >= 128) buffer[i] = '?'; } var output = new string(buffer); ``` could be converted to look like this: ``` csharp var buffer = new StringBuffer(input); for (int i = 0; i < buffer.Length; i++) { if (buffer[i] >= 128) buffer[i] = '?'; } var output = buffer.MoveToString(); ``` ## Why not add MoveToString on top of StringBuilder? - At the moment, `StringBuilder` is implemented internally on top of a `char` array. If we wanted to add a `MoveToString` method, we would have to refactor it to use a string as its backing store instead. - The move would only be valid if the builder's capacity was equal to its count (see [here](https://github.com/dotnet/corefx/blob/master/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray%601+Builder.cs#L193-L196) for how `ImmutableArray` handles this); if not, the data would need to be copied to a new string anyway, since there would be trailing nulls left off the end of the string. What are your thoughts on this? +6897 area-System.Net [ToFDisable] Port tests for: System.Net* "As part of moving out of ToF and into the open, I've been going through the ""Tree of the future"" tests and calculating which of those tests provide coverage that we're missing in the open tests. The goal of this is to get the open tests universally better than the ToF tests so that we can turn the ToF tests off for ProjectK runs and save us all a lot of headache diagnosing test failures from potentially outdated tests. For System.Net.Requests, we're missing 0 lines of coverage. For System.Net.Security, we're missing 0 lines of coverage. For System.Net.Sockets, we're missing 1246 lines of coverage. For System.Net.WebHeaderCollection, we're missing 0 lines of coverage. For System.Net.WebSockets.Client, we're missing 19 lines of coverage. To fulfill the uncovered lines we would need to either create new tests for them or port 6 ToF tests to the open. Those tests are: - [ ] System.Net.Sockets\4.0.10.0\NetSocketsTestAsyncServer_FullRun.XML - [ ] System.Net.Sockets\4.0.10.0\NetSocketsPerformanceTest_FullRun.XML - [ ] System.Net.Sockets\4.0.10.0\NetSocketsTest_FullRun.XML - [ ] System.Net.Sockets\4.0.0.0\NetSocketsTest_FullRun.XML - [ ] System.Net.Sockets\4.0.0.0\NetSocketsPerformanceTest_FullRun.XML - [ ] System.Net.WebSockets.Client\4.0.0.0\NetWebSocketsClient_FullRun.XML Coverage reports, coverage xml files, and detailed json lists of each piece of missing coverage and the corresponding ToF test that fills it are available on request. " +6901 area-Infrastructure Integrate Arm64 test runs in Helix +6905 area-System.Net NTLM Implementation This includes the changes done for supporting NTLM by using gssntlmssp plugin. Tests are also included for the same. cc: @stephentoub @bartonjs @vijaykota +6907 area-System.Console System.Console: Add OutputStream empty write test resolves #6422 @stephentoub +6910 area-System.Net Optimize WinHTTP notification callbacks Modify WinHttpHandler and WinHttpWebSocket notification callbacks to only receive those notifications that are actually being used in the status callback. This will improve performance. Fixes #5036 +6911 area-System.IO MemoryMappedFileTests_CreateOrOpen.ValidArgumentCombinations_NonExecute failed in CI on Windows "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/3493/testReport/junit/System.IO.MemoryMappedFiles.Tests/MemoryMappedFileTests_CreateOrOpen/ValidArgumentCombinations_NonExecute_mapName___8fdc2f7d02eb4cd283e0400af5ffa06b___capacity__1__access__Read__options__DelayAllocatePages__inheritability__Inheritable_/ ``` System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateOrOpen.ValidArgumentCombinations_NonExecute(mapName: ""8fdc2f7d02eb4cd283e0400af5ffa06b"", capacity: 1, access: Read, options: DelayAllocatePages, inheritability: Inheritable) (from (empty)) System.IO.IOException : Cannot create a file when that file already exists +++++++++++++++++++ STACK TRACE: at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateCore(FileStream fileStream, String mapName, HandleInheritability inheritability, MemoryMappedFileAccess access, MemoryMappedFileOptions options, Int64 capacity) in d:\j\workspace\windows_nt_de---06b7984d\src\System.IO.MemoryMappedFiles\src\System\IO\MemoryMappedFiles\MemoryMappedFile.Windows.cs:line 46 at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateNew(String mapName, Int64 capacity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, HandleInheritability inheritability) in d:\j\workspace\windows_nt_de---06b7984d\src\System.IO.MemoryMappedFiles\src\System\IO\MemoryMappedFiles\MemoryMappedFile.cs:line 314 at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateNew(String mapName, Int64 capacity) in d:\j\workspace\windows_nt_de---06b7984d\src\System.IO.MemoryMappedFiles\src\System\IO\MemoryMappedFiles\MemoryMappedFile.cs:line 263 at System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateOrOpen.ValidArgumentCombinations_NonExecute(String mapName, Int64 capacity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, HandleInheritability inheritability) in d:\j\workspace\windows_nt_de---06b7984d\src\System.IO.MemoryMappedFiles\tests\MemoryMappedFile.CreateOrOpen.Tests.cs:line 134 ``` " +6912 area-System.Net Restructure async operation queues in Unix Socket implementation "Currently we maintain the queue of pending operations chained off of the ""event port"" (epoll/kqueue). This has some unfortunate implications: 1) We maintain ordering only for the processing of these events. The actual I/O is still unordered, without some extra mechanism. #6838 is a stop-gap fix for this, using the queue lock to maintain ordering of the I/O, but this means that we may block some threads unnecessarily, waiting for other pending I/O to complete. 2) In the current implementation, once we receive the notification, we end up doing the actual I/O operation on the event handler thread itself. This effectively serializes all of the kernel calls involved in the I/O (which includes all of the actual buffer-copies to and from the socket stream data). This impacts scalability significantly, relative to the Windows implementation _and_ Mono on Linux/OSX. 3) Doing the queueing at this level leads to synchronization complexity, which has lead to numerous reliability issues over the last couple of months. I have some ideas for simplifying and improving this, which I'll write up shortly. " +6913 area-System.Diagnostics Port EventLog to .NET Core This includes `System.Diagnostics.EventLog` and friends. +6915 area-System.Reflection System.Reflection.Metadata: Review all exceptions thrown by new code in 1.3 - [x] Localize all messages. - [x] Move all Throw methods to a single place. - [x] Check arguments in new public APIs. - [x] Include exception info in doc comments. +6918 area-System.IO ArgumentOutOfRangeException when creating named pipes on OSX When I run `System.IO.NamedPipes.Tests` on my OSX machine, most tests fail with an `ArgumentOutOfRangeException` in `UnixDomainSocketEndPoint(string)`. It seems the socket path is too long. I am seeing path strings like this: ``` /var/folders/c7/vc_7ks111wqg4svm2dwq81yw0000gn/T/.dotnet/corefx/pipes/42900fc4-3df4-4a0f-bc93-85b9432ce8b3 ``` It looks like this is derived from `Environment.GetTempPath`. I haven't done anything to customize my temp path, so I assume others with stock configurations will hit this as well. +6920 area-Meta Port and update System.Addin Though not used massively there is a real use for it, and as far as I know nothing to replace it. UWP environment as it grows will want this functionality to support business apps. +6926 area-System.Net Make UriBuilder.Query setter idempotent This is a PR meant to replace dotnet/corefx#3647. That pull request should be closed. This fixes #3646. +6927 area-System.Net Remove the SocketPal.Ioctl TODO comment Remove the `SocketPal.Ioctl` TODO comment, rename the PAL methods to make it clear that they are for Windows-specific IOCTLs, and add a comment to that effect. For compat, I can imagine that we'll support some Windows-specific IOCTLs on Linux/OSX in the future (translating them to the appropriate platform-specific call). We should do this only if/when there is demand for specific control code support. Fixes #6828. @stephentoub @CIPop @davidsh +6928 area-System.Net Remove manual SafeHandle marshaling in Unix Socket interop code "#6345 plumbed SafeHandle usage throughout the Unix Socket interop layer, but had to do manual marshaling from SafeHandles to file descriptors in the native interop layer because most of the Socket-related methods in System.Native take ""int""-type file descriptor arguments, rather than IntPtr. If these are changed to IntPtr, we can remove the manual marshaling code. " +6929 area-System.IO Opening a fifo stream fails on OSX Attempting to create a FileStream with a fifo created via mkfifo fails on OSX in the UnixFileStream constructor. The failure is in the attempt to flock the file. Flock fails with ENOTSUP (operation not supported). Example call stack: LocalOsxTransport exited with exception: Operation not supported Stack: at System.IO.UnixFileStream.CheckFileCall(Int64 result, Boolean ignoreNotSupported) at System.IO.UnixFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.UnixFileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode) at MICore.LocalOsxTransport.InitStreams(LaunchOptions options, StreamReader& reader, StreamWriter& writer) +6930 area-System.Data System.Data.SqlClient.Tests.ExceptionTest fails with updated package On updating to latest package rc3-23915 this test fails ``` System.Data.SqlClient.Tests.ExceptionTest.IndependentConnectionExceptionTestOpenConnection [FAIL] Assert.Throws() Failure Expected: typeof(System.Data.SqlClient.SqlException) Actual: typeof(System.TypeInitializationException): The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception. Stack Trace: E:\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParser.cs(54,0): at System.Data.SqlClient.TdsParser..ctor(Boolean MARS, Boolean fAsynchronous) E:\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs(1100,0): at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, TimeoutTimer timeout) ``` ``` System.Data.SqlClient.Tests.ExceptionTest.ExceptionTests [FAIL] Assert.Throws() Failure Expected: typeof(System.Data.SqlClient.SqlException) Actual: typeof(System.TypeInitializationException): The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception. Stack Trace: E:\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParser.cs(54,0): at System.Data.SqlClient.TdsParser..ctor(Boolean MARS, Boolean fAsynchronous) E:\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs(1100,0): at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, Boolean redirectedUserInstance , SqlConnectionString connectionOptions, TimeoutTimer timeout) E:\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs(1014,0): at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionO ptions, Boolean redirectedUserInstance) E:\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs(358,0): at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectio nOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) E:\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnectionFactory.cs(133,0): at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Obj ect poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) E:\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionFactory.cs(114,0): at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, D bConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) E:\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs(476,0): at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConne ctionInternal oldConnection) E:\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs(1187,0): at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, D bConnectionInternal oldConnection) E:\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs(792,0): at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout , Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) E:\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs(712,0): at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConn ectionOptions userOptions, DbConnectionInternal& connection) E:\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionFactory.cs(287,0): at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 ret ry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) E:\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionInternal.cs(452,0): at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFact ory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) E:\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionClosed.cs(64,0): at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectio nFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) E:\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnection.cs(911,0): at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) E:\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnection.cs(541,0): at System.Data.SqlClient.SqlConnection.Open() E:\corefx\src\System.Data.SqlClient\tests\FunctionalTests\ExceptionTest.cs(81,0): at System.Data.SqlClient.Tests.ExceptionTest.GenerateConnectionException(String connectionString) E:\corefx\src\System.Data.SqlClient\tests\FunctionalTests\ExceptionTest.cs(28,0): at System.Data.SqlClient.Tests.ExceptionTest.<>c__DisplayClass5_0.b__0() ``` +6931 area-System.IO System.IO.Filesystem.Tests fail with package update to rc3-23915 ``` **System.IO.Tests.FileInfo_MoveTo.PathWithIllegalCharacters** [FAIL] Assert.All() Failure: 3 out of 44 items in the collection did not pass. [5]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.IOException): The specified path is invalid at System.IO.Win32FileSystem.MoveFile(String sourceFullPath, String destFullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 430 at System.IO.FileInfo.MoveTo(String destFileName) in E:\corefx\src\System.IO.FileSystem\src\System\IO\FileInfo.cs:line 284 at System.IO.Tests.FileInfo_MoveTo.Move(String sourceFile, String destFile) in E:\corefx\src\System.IO.FileSystem\tests\FileInfo\MoveTo.cs:line 13 at System.IO.Tests.File_Move.<>c__DisplayClass4_1.b__1() in E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs:line 53 at Xunit.Assert.RecordException(Action testCode) ``` ``` **System.IO.Tests.Directory_CreateDirectory.PathWithInvalidCharactersAsPath_ThrowsArgumentException** [FAIL] Assert.All() Failure: 3 out of 44 items in the collection did not pass. [5]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.DirectoryNotFoundException): Could not find a part of the path '\\?\UNC\LOCALHOST'. at System.IO.Win32FileSystem.CreateDirectory(String fullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 147 at System.IO.Directory.CreateDirectory(String path) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Directory.cs:line 50 at System.IO.Tests.Directory_CreateDirectory.Create(String path) in E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 16 at System.IO.Tests.Directory_CreateDirectory.<>c__DisplayClass3_0.b__1() in E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 41 at Xunit.Assert.RecordException(Func`1 testCode) ``` ``` **System.IO.Tests.File_Move.PathWithIllegalCharacters** [FAIL] Assert.All() Failure: 3 out of 44 items in the collection did not pass. [5]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.IOException): The specified path is invalid at System.IO.Win32FileSystem.MoveFile(String sourceFullPath, String destFullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 430 at System.IO.File.Move(String sourceFileName, String destFileName) in E:\corefx\src\System.IO.FileSystem\src\System\IO\File.cs:line 698 at System.IO.Tests.File_Move.Move(String sourceFile, String destFile) in E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs:line 15 at System.IO.Tests.File_Move.<>c__DisplayClass4_1.b__1() in E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs:line 53 at Xunit.Assert.RecordException(Action testCode) ``` ``` **System.IO.Tests.DirectoryInfo_Create.PathWithInvalidCharactersAsPath_ThrowsArgumentException** [FAIL] Assert.All() Failure: 3 out of 44 items in the collection did not pass. [5]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.DirectoryNotFoundException): Could not find a part of the path '\\?\UNC\LOCALHOST'. at System.IO.Win32FileSystem.CreateDirectory(String fullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 147 at System.IO.DirectoryInfo.Create() in E:\corefx\src\System.IO.FileSystem\src\System\IO\DirectoryInfo.cs:line 102 at System.IO.Tests.DirectoryInfo_Create.Create(String path) in E:\corefx\src\System.IO.FileSystem\tests\DirectoryInfo\Create.cs:line 16 at System.IO.Tests.Directory_CreateDirectory.<>c__DisplayClass3_0.b__1() in E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 41 at Xunit.Assert.RecordException(Func`1 testCode) ``` +6932 area-System.Reflection System.Reflection.TypeExtensions test fails with package upgrade to rc3-23915 ``` System.Reflection.Tests.PropertyInfoGetAccessor1.NegTest1 [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentNullException) Actual: typeof(System.NullReferenceException): Object reference not set to an instance of an object. Stack Trace: E:\corefx\src\System.Reflection.TypeExtensions\tests\PropertyInfo\PropertyInfoGetAccessors1.cs(77,0): at System.Reflection.Tests.PropertyInfoGetAccessor1.<>c__DisplayClass5_0.b__0() Finished: System.Reflection.TypeExtensions.Tests ``` +6937 area-System.Data Fix ApiCompat issues for System.Data.Common Remove ApiCompatBaseline.net45.txt once errors mentioned in it are resolved. +6939 area-System.Linq Fix ApiCompat issues for System.Linq.Expressions Remove ApiCompatBaseline.net46.txt once errors mentioned in it are resolved. +6942 area-System.Reflection System.Reflection.Metadata: Avoid allocations in custom attribute parser The custom attribute parser allocates an ImmutableArray for FixedArguments and NamedArguments. We should explore options to parse these lazily and avoid the array allocation. +6945 area-Infrastructure Need to remove Framework-specific assembly attributes from test assemblies "The test DLLs for CoreFX are getting created using the values from https://github.com/dotnet/corefx/blob/master/dir.props This leads to assembly metadata like this: [assembly: AssemblyVersion(""999.999.999.999"")] [assembly: OptimizeForBenchmarks] [assembly: AssemblyCompany(""Microsoft Corporation"")] [assembly: AssemblyCopyright(""© Microsoft Corporation. All rights reserved."")] [assembly: AssemblyDefaultAlias(""System.Collections.Tests"")] [assembly: AssemblyDescription(""System.Collections.Tests"")] [assembly: AssemblyFileVersion(""1.0.00001.0"")] [assembly: AssemblyInformationalVersion(""1.0.00001.0 built by: NETCORETSTBLD19-CORBVT"")] **[assembly: AssemblyMetadata("".NETFrameworkAssembly"", """")]** **[assembly: AssemblyMetadata(""Serviceable"", ""True"")]** **[assembly: AssemblyProduct(""Microsoft® .NET Framework"")]** [assembly: AssemblyTitle(""System.Collections.Tests"")] [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] As well as having the same public key token as the actual product dlls. This becomes a much bigger deal when trying to compile these tests for .NET Native, as .NET Native considers these DLLs to be part of the platform and doesn't include them as part of the test ""application"" to be compiled as native. Fixing this will entail either signing with a different key (perhaps just using the OpenKey ) or no key, and removing these attributes. " +6946 area-System.Net Uri percent-encoding inconsistency between .NET Framework and UWP "I am not sure this is the best place to notify Microsoft about the following problem but here we go : I have noticed an inconsistency of HttpClient.SendAsync between ""Console"" and W10 Universal App. The inconsistency can be detected via Fiddler when executing a query with special characters. Please note that I am using the `HttpClient` from a Portable Class Library. If I user `HttpClient.SendAsync` the following query : https://api.twitter.com/1.1/search/tweets.json?q=%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%21&result_type=mixed&count=100, the query executed by .NET is different if it is run in UAP and if it is run in a Console application. (query = **Привет!**) I have been able to identify this via Fiddler: **Console Application :** > GET https://api.twitter.com/1.1/search/tweets.json?q=%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82!&result_type=mixed&count=100 HTTP/1.1 > > User-Agent: Tweetinvi/0.9.11.1 > > Cache-Control: no-cache > > Authorization: OAuth oauth_consumer_key=""jjMV4k3n9EswD9hlhRZqQCZrm"",oauth_nonce=""222222"",oauth_signature_method=""HMAC-SHA1"",oauth_timestamp=""1458086400"",oauth_token=""1693649419-BlEivyWIiOVrb22JjdzRipXWp4ltVdo4VLye1VW"",oauth_version=""1.0"",oauth_signature=""ODaUZNfxMbM7l0gtZ1GEFsjr%2BAA%3D"" > > Host: api.twitter.com > > Connection: Keep-Alive **Windows 10 Universal App :** > GET https://api.twitter.com/1.1/search/tweets.json?q=%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%21&result_type=mixed&count=100 HTTP/1.1 > > Cache-Control: no-cache > > User-Agent: Tweetinvi/0.9.11.1 > > Authorization: OAuth oauth_consumer_key=""jjMV4k3n9EswD9hlhRZqQCZrm"",oauth_nonce=""222222"",oauth_signature_method=""HMAC-SHA1"",oauth_timestamp=""1458086400"",oauth_token=""1693649419-BlEivyWIiOVrb22JjdzRipXWp4ltVdo4VLye1VW"",oauth_version=""1.0"",oauth_signature=""ODaUZNfxMbM7l0gtZ1GEFsjr%2BAA%3D"" > > Host: api.twitter.com > > Connection: Keep-Alive > > Cookie: guest_id=v1%3A145704170375190067 If you take attention, you will notice that on the console, the end of the query parameter is **%82!** (with a question mark). On the other side the W10 query parameter finishes by **%82%21**. Here the question mark has kept its HTML escaping. You can also notice that W10 is adding a cookie. Is it a bug of the .NET Framework/HttpClient library? I can assure that the query entered is the SAME in the `HttpClient.SendAsync` as both application uses the same binaries to create and execute the query (and I verified). Here is my code for reference: ``` c# public class HttpClientWebHelper : IHttpClientWebHelper { public async Task GetHttpResponse(ITwitterQuery twitterQuery, HttpContent httpContent = null, ITwitterClientHandler handler = null) { using (var client = GetHttpClient(twitterQuery, handler)) { client.Timeout = twitterQuery.Timeout; var httpMethod = new HttpMethod(twitterQuery.HttpMethod.ToString()); if (httpContent == null) { return await client.SendAsync(new HttpRequestMessage(httpMethod, twitterQuery.QueryURL)).ConfigureAwait(false); } else { if (httpMethod != HttpMethod.Post) { throw new ArgumentException(""Cannot send HttpContent in a WebRequest that is not POST.""); } return await client.PostAsync(twitterQuery.QueryURL, httpContent).ConfigureAwait(false); } } } public HttpClient GetHttpClient(ITwitterQuery twitterQuery, ITwitterClientHandler twitterHandler = null) { var handler = (twitterHandler as TwitterClientHandler) ?? new TwitterClientHandler(); handler.TwitterQuery = twitterQuery; var client = new HttpClient(handler) { Timeout = twitterQuery.Timeout, }; return client; } } ``` This post is a ""duplicate"" of this [StackOverflow question](http://stackoverflow.com/questions/36025004/httpclient-does-not-send-same-request-in-w10-uap). " +6947 area-System.Net WebUtility.UrlEncodeToBytes erroneously returns the full array if no encoding is needed This code prints `1 2 3`, when it should print `2 3`: ``` csharp byte[] input = { 49, 50, 51 }; byte[] output = WebUtility.UrlEncodeToBytes(input, offset: 1, count: 2); foreach (var item in output) Console.WriteLine((char)item); ``` The problem seems to be coming from [this](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/src/System/Net/WebUtility.cs#L319) line in the internal `UrlEncode` implementation, which returns the whole byte array disregarding the offset and the count. Luckily I've found out that I accidentally fixed this with #6698, so this can be closed soon enough when that is merged. cc @stephentoub @davidsh +6952 area-System.Net WebHeaderCollection: Remove dependency on older collections `System.Net.WebHeaderCollection` pulls in `System.Collections.Specialized` which pulls in `System.Collections.NonGeneric` which we are trying to break dependencies on. This PR removes the dependency, paring down `WebHeaderCollection`'s implementation to only what's needed to support the contract's public surface area ([ref](https://github.com/dotnet/corefx/blob/50c11108d65ed6b110ea125a6d072206ca227f4a/src/System.Net.WebHeaderCollection/ref/System.Net.WebHeaderCollection.cs#L88-L96), [manual](https://github.com/dotnet/corefx/blob/50c11108d65ed6b110ea125a6d072206ca227f4a/src/System.Net.WebHeaderCollection/ref/System.Net.WebHeaderCollection.Manual.cs#L10-L15)). Updated tests pass before/after these changes (100% line and branch coverage of the changes), and on the full framework. Fixes #6726. cc: @weshaggard @davidsh +6956 area-System.IO Unix_BufferSizeRoundtripping failing sporadically on OS X ``` 05:05:15 System.IO.Pipes.Tests.NamedPipeTest_Specific.Unix_BufferSizeRoundtripping(direction: Out) [FAIL] 05:05:15 Assert+WrapperXunitException : File path: d:\j\workspace\osx_debug_bld---2f4069d6\src\System.IO.Pipes\tests\NamedPipeTests\NamedPipeTest.Specific.cs. Line: 271 05:05:15 ---- Assert.InRange() Failure 05:05:15 Range: (16384 - 2147483647) 05:05:15 Actual: 0 05:05:15 Stack Trace: 05:05:15 Starting: System.Linq.Parallel.Tests 05:05:15 at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) 05:05:15 at Assert.InRange[T](T actual, T low, T high, String path, Int32 line) 05:05:15 at System.IO.Pipes.Tests.NamedPipeTest_Specific.Unix_BufferSizeRoundtripping(PipeDirection direction) 05:05:15 ----- Inner Stack Trace ----- 05:05:15 at Assert.InRange[T](T actual, T low, T high, String path, Int32 line) ``` +6960 area-Infrastructure HttpClient and WinHttpHandler tests failing on Windows due to FileLoadException "e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win10_debug/123/consoleFull http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_windows_nt_debug/117/console http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win7_debug/120/consoleFull ``` 06:41:51 System.IO.FileLoadException: Could not load file or assembly 'System.Net.Primitives, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 06:41:51 d:\j\workspace\outerloop_win---0cba2915\Tools\tests.targets(130,5): warning MSB3073: The command ""d:\j\workspace\outerloop_win---0cba2915\bin/tests/Windows_NT.AnyCPU.Debug/System.Net.Http.WinHttpHandler.Functional.Tests/dnxcore50/CoreRun.exe xunit.console.netcore.exe System.Net.Http.WinHttpHandler.Functional.Tests.dll -xml testResults.xml -notrait category=nonwindowstests -notrait Benchmark=true -trait category=InnerLoop -trait category=OuterLoop -notrait category=failing "" exited with code 1. [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Http.WinHttpHandler\tests\FunctionalTests\System.Net.Http.WinHttpHandler.Functional.Tests.csproj] 06:41:51 d:\j\workspace\outerloop_win---0cba2915\Tools\tests.targets(137,5): error : One or more tests failed while running tests from 'System.Net.Http.WinHttpHandler.Functional.Tests' please check log for details! [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Http.WinHttpHandler\tests\FunctionalTests\System.Net.Http.WinHttpHandler.Functional.Tests.csproj] 06:41:53 System.Net.Http.WinHttpHandler.Unit.Tests -> d:\j\workspace\outerloop_win---0cba2915\bin\Windows_NT.AnyCPU.Debug\System.Net.Http.WinHttpHandler.Unit.Tests\System.Net.Http.WinHttpHandler.Unit.Tests.dll 06:41:54 xUnit.net console test runner (64-bit .NET Core) 06:41:54 Copyright (C) 2014 Outercurve Foundation. 06:41:54 06:41:54 Discovering: System.Net.Http.WinHttpHandler.Unit.Tests 06:41:54 System.IO.FileLoadException: Could not load file or assembly 'System.Net.Primitives, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 06:41:55 d:\j\workspace\outerloop_win---0cba2915\Tools\tests.targets(130,5): warning MSB3073: The command ""d:\j\workspace\outerloop_win---0cba2915\bin/tests/Windows_NT.AnyCPU.Debug/System.Net.Http.WinHttpHandler.Unit.Tests/dnxcore50/CoreRun.exe xunit.console.netcore.exe System.Net.Http.WinHttpHandler.Unit.Tests.dll -xml testResults.xml -notrait category=nonwindowstests -notrait Benchmark=true -trait category=InnerLoop -trait category=OuterLoop -notrait category=failing "" exited with code 1. [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Http.WinHttpHandler\tests\UnitTests\System.Net.Http.WinHttpHandler.Unit.Tests.csproj] 06:41:56 d:\j\workspace\outerloop_win---0cba2915\Tools\tests.targets(137,5): error : One or more tests failed while running tests from 'System.Net.Http.WinHttpHandler.Unit.Tests' please check log for details! [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Http.WinHttpHandler\tests\UnitTests\System.Net.Http.WinHttpHandler.Unit.Tests.csproj] 06:42:13 Finished: System.IO.FileSystem.Tests 06:42:13 06:42:13 === TEST EXECUTION SUMMARY === 06:42:13 System.IO.FileSystem.Tests Total: 89, Errors: 0, Failed: 0, Skipped: 0, Time: 61.993s 06:42:13 System.Net.Http -> d:\j\workspace\outerloop_win---0cba2915\bin\Windows_NT.AnyCPU.Debug\System.Net.Http\System.Net.Http.dll 06:42:15 xUnit.net console test runner (64-bit .NET Core) 06:42:15 Copyright (C) 2014 Outercurve Foundation. 06:42:15 06:42:15 Discovering: System.Composition.Tests 06:42:16 Discovered: System.Composition.Tests 06:42:16 Info: System.Composition.Tests has no tests to run 06:42:16 System.Net.Http.Functional.Tests -> d:\j\workspace\outerloop_win---0cba2915\bin\Windows_NT.AnyCPU.Debug\System.Net.Http.Functional.Tests\System.Net.Http.Functional.Tests.dll 06:42:16 xUnit.net console test runner (64-bit .NET Core) 06:42:16 Copyright (C) 2014 Outercurve Foundation. 06:42:16 06:42:16 Discovering: System.Net.Http.Functional.Tests 06:42:17 System.IO.FileLoadException: Could not load file or assembly 'System.Net.Primitives, Version=4.0.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 06:42:17 d:\j\workspace\outerloop_win---0cba2915\Tools\tests.targets(130,5): warning MSB3073: The command ""d:\j\workspace\outerloop_win---0cba2915\bin/tests/Windows_NT.AnyCPU.Debug/System.Net.Http.Functional.Tests/dnxcore50/CoreRun.exe xunit.console.netcore.exe System.Net.Http.Functional.Tests.dll -xml testResults.xml -notrait category=nonwindowstests -notrait Benchmark=true -trait category=InnerLoop -trait category=OuterLoop -notrait category=failing "" exited with code 1. [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] 06:42:18 d:\j\workspace\outerloop_win---0cba2915\Tools\tests.targets(137,5): error : One or more tests failed while running tests from 'System.Net.Http.Functional.Tests' please check log for details! [d:\j\workspace\outerloop_win---0cba2915\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] ``` cc: @ericstj, @davidsh " +6962 area-System.ComponentModel Add custom collections used for TypeDescriptors This adds the AttributeCollection, PropertyDescriptorCollection, and EventDescriptorCollection that are needed in the TypeDescriptor methods. +6965 area-System.IO Add missing tests for System.IO Ports some ToF tests for System.IO and adds some new tests to cover gaps. resolves #6431 @stephentoub +6966 area-System.Collections Add missing tests for System.Collections Ports some ToF tests for System.Collections and adds some new tests to cover gaps. resolves #6809 @stephentoub +6973 area-Infrastructure "After correcting errors, clean.cmd still reports ""An error occured while cleaning""" "I had a file open in ildasm when I ran clean. After closing this, subsequent calls to clean worked but showed the same error. Console output: C:\GIT\CoreFX>clean.cmd Running init-tools.cmd Tools are already initialized. Running msbuild clean targets ""Clean"" ... C:\GIT\CoreFX\build.proj(98,5): error MSB3231: Unable to remove directory ""C:\GIT\CoreFX\bin/"". The process cannot access the file 'System.Xml.XDocument.Streaming.Tests.dll' because it is b eing used by another process. An error occured while cleaning; see C:\GIT\CoreFX\clean.log for more details. C:\GIT\CoreFX>clean.cmd Running init-tools.cmd Tools are already initialized. Running msbuild clean targets ""Clean"" ... An error occured while cleaning; see C:\GIT\CoreFX\clean.log for more details. " +6978 area-System.ComponentModel Add attribute types to System.ComponentModel This adds the types deriving from Attribute proposed in #6573. This also addresses #1053 and #5625. +6983 area-System.Net Make Unix domain socket path handling in Pipes more robust - Rather than hardcoding offsets and lengths related to the size of the native struct sockaddr_un's, get it from the native shim. This will help with future platform support. - With that info, allow the path to be as long as the platform will support, rather than capping it at a hardcoded value. - Throw a meaningful exception when too long a length is specified cc: @ianhays, @ericeil Related to https://github.com/dotnet/corefx/issues/6918 +6989 area-System.Net Kerberos sign only interop issue When kerberos is negotiated with Sign Only protection level from *nix client against a windows server, *nix client interprets the session flags as supported and hence always set CONFIDENTIALITY flag irrespective of the requested flags/protection level. This, in windows server which interprets the flags as required, causes the windows server to expect all further communication to be encrypted, which is not the case and hence server side processing fails. To override this behavior, starting MIT Kerberos 1.14 and heimdal implementation, we need to call gss_set_cred_option with GSS_KRB5_CRED_NO_CI_FLAGS_X. When not available, the windows server should fail in negotiating Sign Only. @stephentoub @bartonjs @vijaykota @kapilash @shrutigarg +6991 area-System.Net fixing bug in contextflag mapping Since ContextFlagsPal enum has AcceptIntegrity flag and InitIdentify flag with same value.. mapping of that to Native flag returns some invalid flag for a context. Values being same is not an issue as these flags are used in independent contexts. we will have to limit the mapping by reading whether it is server or client context. +6992 area-System.Net Query for the right proxy creds in HttpClient Both the WinHttp and libcurl implementations are using the target Uri to lookup the right proxy credentials rather than using the proxy's Uri. cc: @davidsh, @alpaix, @ericeil, @cipop, @kapilash +6994 area-Infrastructure All Unix test legs are stalling They appear to be hanging while in the Discovering phase of looking for xunit tests. +6997 area-System.Net WinHttpHandler needs to better handle proxy url when DefaultProxyCredentials used See discussion here: https://github.com/dotnet/corefx/pull/6992/files#r56524599 +6998 area-Meta Q: The legacy .NET System.Configuration.Provider namespace & system I'm not familiar with the new configuration system, but can it be used to perform the same functions that this legacy system does? I've been heavily using this system for 14 years now, and it works really well, but most people don't even know it exists, or how to use it. I have created several provider systems, with abstracted interfaces, creating a plug-n-play system for consumers. I've mostly used it for persistence where one consumer may use SQL Server, another may use Oracle, and another may use web services, etc., but it can be used for anything. It also works great for versioning support, where you may be required to support clients that require new data using an old data format. If the new configuration system doesn't support something like this, is there a way to do this in .NET Core? +6999 area-System.Net Where is httplistener? Is it renamed? Hi, I was checking dotnet and didn't find System.net.httplistener. Is it implemented? Is it renamed? Is it going to be implemented? -XDVarpunen +7002 area-System.IO FileSystemWatcher_Changed_PreSeededNestedStructure failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/3639/consoleFull ``` 13:15:04 ChangedTests.FileSystemWatcher_Changed_PreSeededNestedStructure(includeSubdirectories: False) [FAIL] 13:15:05 System.UnauthorizedAccessException : Access to the path '\\?\d:\j\workspace\windows_nt_de---06b7984d\bin\tests\Windows_NT.AnyCPU.Debug\System.IO.FileSystem.Watcher.Tests\dnxcore50\FileSystemWatcher_Changed_PreSeededNestedStructure' is denied. 13:15:05 Stack Trace: 13:15:05 at System.IO.Win32FileSystem.RemoveDirectoryHelper(String fullPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound) 13:15:05 at System.IO.Win32FileSystem.RemoveDirectory(String fullPath, Boolean recursive) 13:15:05 d:\j\workspace\windows_nt_de---06b7984d\src\System.IO.FileSystem.Watcher\tests\Utility\Utility.cs(60,0): at Utility.EnsureDelete(String path) 13:15:05 d:\j\workspace\windows_nt_de---06b7984d\src\System.IO.FileSystem.Watcher\tests\Utility\TemporaryTestDirectory.cs(40,0): at TemporaryTestDirectory.Dispose(Boolean disposing) 13:15:05 d:\j\workspace\windows_nt_de---06b7984d\src\System.IO.FileSystem.Watcher\tests\Utility\TemporaryTestDirectory.cs(32,0): at TemporaryTestDirectory.Dispose() 13:15:05 d:\j\workspace\windows_nt_de---06b7984d\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.Changed.cs(192,0): at ChangedTests.FileSystemWatcher_Changed_PreSeededNestedStructure(Boolean includeSubdirectories) ``` +7010 area-Infrastructure Update tool-runtime project.json to reflect debian.8 RID When we are ready to update the tool-runtime, ensure the project.json RID is updated debian.8.2 => debian.8 +7011 area-Infrastructure Build packages outside of build.cmd/sh - [x] Build packages as a separate task of build.cmd with an build-packages.cmd script - [x] Build packages as a separate task of build.sh with an build-packages.sh script +7012 area-System.Runtime DateTimeOffset.ToString Returns Different Value between Desktop and CoreFx "Please see the following example, ``` csharp string format = ""HH:mm:ss.fffffffzzzzzz""; DateTime time = new DateTime(549269870000L, DateTimeKind.Local); DateTimeOffset offset = DateTime.MinValue + time.TimeOfDay; string offsetString = offset.ToString(format, DateTimeFormatInfo.InvariantInfo); string timeString = time.ToString(format); Assert.Equal(timeString, offsetString); ``` On desktop, timeString equals offsetString; but on CoreFx, they are not equal. Note that this issue seems related to Daylight Save Time change. The assert succeeded last week before the DST change. The issue is blocking https://github.com/dotnet/corefx/pull/6762. " +7021 area-System.IO AnonymousPipeTest_Specific.ClonedServer_ActsAsOriginalServer sporadically failing in CI ``` 06:02:14 System.IO.Pipes.Tests.AnonymousPipeTest_Specific.ClonedServer_ActsAsOriginalServer [FAIL] 06:02:14 Assert+WrapperXunitException : File path: d:\j\workspace\debian8.2_deb---3bf9911c\src\System.IO.Pipes\tests\AnonymousPipeTests\AnonymousPipeTest.Specific.cs. Line: 54 06:02:14 ---- Assert.Throws() Failure 06:02:14 Expected: typeof(System.IO.IOException) 06:02:14 Actual: (No exception was thrown) 06:02:14 Stack Trace: 06:02:15 at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) 06:02:15 at Assert.Throws[T](Action testCode, String path, Int32 line) 06:02:15 at System.IO.Pipes.Tests.AnonymousPipeTest_Specific.ClonedServer_ActsAsOriginalServer() 06:02:15 ----- Inner Stack Trace ----- 06:02:15 at Assert.Throws[T](Action testCode, String path, Int32 line) ``` +7023 area-System.Security Support AES-GCM Currently I am using AuthenticatedAesCng in [Security.Cryptography.dll](https://clrsecurity.codeplex.com/) for AES-GCM encryption and decryption in a .NET application. I would like to have it added to CoreFX. +7026 area-System.Security Easier CngKey extraction from X509Certificate/X509Certificate2 Please provide methods in X509Certificate/X509Certificate2 or extension methods for easier CngKey extraction from X509Certificate/X509Certificate2.There should be at least 2 methods -- one for public key and another for private key. +7027 area-System.Net Make UriBuilder.Fragment setter idempotent Similar to #6926, but for UriBuilder.Fragment. This is a breaking change, but I noticed that if the PR above was merged, this made sense /cc @stephentoub +7031 area-System.Net Incorporate PR Feedback - Code Cleanup in NegotiateStream "The following comments were made in #6469 and need to be incorporated into negotiatestream ~~_1_. [One to one mapping with native calls and Interop.*.cs files](https://github.com/dotnet/corefx/pull/6469#discussion_r56656680)~~ This is a lot of code being added to the Interop.*.cs files. Typically we've kept these as close to 1:1 with the underlying operation being wrapped as possible, typiclaly just the P/Invoke signature or maybe a 1-2 line wrapper if necessary, and then all of this additional logic ends up living in the consuming code. ~~_2_. [Split up safefreecredentials](https://github.com/dotnet/corefx/pull/6469#discussion_r56659315) As post-merge cleanup this file should probably be split up (now that this base class applies to two different libraries' interop). And since libssl is the last lib\* directory left in Interop, that could be cleaned up at the same time.~~ ~~_3_. [Fix up boiler plate code in KerberosTest.cs](https://github.com/dotnet/corefx/pull/6469#discussion_r56673383) I honestly can't figure out how each of these tests is different... it'd be great to factor out boilerplate and leave each test showing the kernel of what it's testing.~~ (fixed in #7317) ~~_4_. [Non-SafeHandle SafeHandles to be refactored out](https://github.com/dotnet/corefx/pull/6469#discussion_r56658414) Some of the safehandles in PAL are not really safe handles. These need to reworked.~~ > Not today, but one day it would give me a warm and fuzzy feeling if the PAL was reworked to not require non-SafeHandle SafeHandles be created. ~~_5_. [A compile time constant for the size of OID lengths](https://github.com/dotnet/corefx/pull/6469#discussion_r56660671)~~ The following code has /magic/ value of 6. ``` gss_OID_desc gss_mech_spnego_OID_desc = {.length = 6, .elements = static_cast(gss_spnego_oid_value)}; ``` ~~_6_. [Debug only constructor with an assert for size](https://github.com/dotnet/corefx/pull/6469#discussion_r56661993)~~ (fixed in #7317) ``` private const int StatusDictionarySize = 39; #if DEBUG static SecurityStatusAdapterPal() { Debug.Assert(s_statusDictionary.Count == StatusDictionarySize, $""Expected size {StatusDictionarySize}, got size {s_statusDictionary.Count}""); } #endif private static readonly ... = new BidirectionDictionary<...>(StatusDictionarySize); ``` " +7034 area-System.ComponentModel Expose MemberDescriptor in ComponentModel This exposes all the members in MemberDescriptor and updates PropertyDescriptor and EventDescriptor to derive from it. This also exposes a few methods in TypeDescriptor that are necessary for these types, but leaves the implementation empty (or throw NotImplementedException). @chlowell +7035 area-Infrastructure Outerloop Ubuntu build failing with GenAPI errors "``` /mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/Tools/notsupported.targets(50,5): error MSB3073: The command """"/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/Tools/corerun"" ""/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/Tools/GenAPI.exe"" ""/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/bin/ref/Microsoft.Win32.Registry.AccessControl/4.0.0.0/Microsoft.Win32.Registry.AccessControl.dll"" -libPath:""/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/Microsoft.Win32.Registry/4.0.0-rc3-23910/ref/netstandard1.3/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.Globalization/4.0.11-rc3-23910/ref/netstandard1.3/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.IO/4.0.10/ref/dotnet/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.Reflection/4.1.0-rc3-23910/ref/netstandard1.3/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.Reflection.Primitives/4.0.1-rc3-23910/ref/netstandard1.0/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.Resources.ResourceManager/4.0.0/ref/dotnet/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.Runtime/4.0.20/ref/dotnet/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.Runtime.Handles/4.0.0/ref/dotnet/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.Runtime.InteropServices/4.0.20/ref/dotnet/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.Security.AccessControl/4.0.0-rc3-23910/ref/netstandard1.3/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.Security.Claims/4.0.1-rc3-23910/ref/netstandard1.3/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.Security.Principal/4.0.1-rc3-23910/ref/netstandard1.0/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.Security.Principal.Windows/4.0.0-rc3-23910/ref/netstandard1.3/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.Text.Encoding/4.0.11-rc3-23910/ref/netstandard1.3/;/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages/System.Threading.Tasks/4.0.11-rc3-23910/ref/netstandard1.3/"" -out:""/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/bin/obj/Unix.AnyCPU.Debug/Microsoft.Win32.Registry.AccessControl/Microsoft.Win32.Registry.AccessControl.notsupported.cs"" -throw"" exited with code -1. [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/src/Microsoft.Win32.Registry.AccessControl/src/Microsoft.Win32.Registry.AccessControl.csproj] ``` " +7036 area-System.Net WebUtility.UrlDecode fails to make a round-trip for surrogate characters "Discovered this while adding some tests for `WebUtility`. This prints `False`: ``` csharp string value = ""\uD800""; string input = WebUtility.UrlEncode(value); string output = WebUtility.UrlDecode(input); Console.WriteLine(output == value); ``` Here's a console program on [.NET Fiddle](https://dotnetfiddle.net/DRBu6a) to demonstrate this so you can see it for yourself. cc @davidsh @stephentoub " +7037 area-System.Net WebRequest.DefaultWebProxy not compatible with HttpClient "If I have the following HttpClient: ``` var handler = new HttpClientHandler(); handler.UseDefaultCredentials = true; handler.Proxy = WebRequest.DefaultWebProxy; var client = new HttpClient(handler); client.DefaultRequestHeaders.TryAddWithoutValidation(""User-Agent"", ""Mozilla/5.0 Bla"") ``` The first time I use this client (with `client.GetAsync(""http://www.nuget.org/api/v2"")`), I will get back the correct result. However, if I reuse the client, I will get an exception: ``` System.PlatformNotSupportedException: Operation is not supported on this platform. at System.Net.SystemWebProxy.IsBypassed(Uri host) at System.Net.Http.WinHttpHandler.SetRequestHandleProxyOptions(RequestState state) at System.Net.Http.WinHttpHandler.SetRequestHandleOptions(RequestState state) at System.Net.Http.WinHttpHandler.d__1.MoveNext() ``` Is this a bug on CoreClr? Do I have to create new instance of HttpClient everytime? " +7038 area-Infrastructure System.IO.FileLoadException: Could not load file or assembly 'System.Collections.Concurrent, Version=4.0.12.0 Trying to use the rc2-23918 libraries, when I try to run `dotnet test`, I get the following: ``` C:\users\oren\source\git\reactive-extensions-private\Rx.NET\Source\Tests.System.Reactive [dotnet-cli ≡ +0 ~9 -0 !]> dotnet test Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'System.Collections.Concurrent, Version=4.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) at Xunit.Runner.DotNet.Program..ctor() at Xunit.Runner.DotNet.Program.Main(String[] args) ``` Here's the project.lock.json for it: https://gist.github.com/onovotny/8fe9a08ed4d8d7f7f0fb +7042 area-System.Net Cleanup and add extensive WebUtility tests This follows up on #6698 by adding extensive testing based on the failures encountered in that PR. Primarily, it adds tests for surrogate characters, and makes sure spaces are properly en/decoded in the `ToBytes` methods. Additional changes: - Test data sharing between regular `UrlEncode`/`Decode` and the `byte[]`-based methods - Replace magic string usage in `MemberData` with `nameof` - Added comments to the code to separate it into different regions - Added tests to make sure the `ToBytes` methods always return a new array - Added, but commented out regression tests for #6947 (uncomment once that issue is resolved) cc @davidsh @stephentoub @JonHanna +7043 area-Serialization System.Runtime.Serialization.Xml broken "I can't seem to use System.Runtime.Serialization.Xml and NETStandard.Library. (This was really hard to track down.) When combined with NETStandard.Library 1.5.0-rc3-23918 like so: ``` json { ""name"": ""repro"", ""compilationOptions"": { ""emitEntryPoint"": true }, ""frameworks"": { ""netstandardapp1.5"": { ""dependencies"": { ""System.Runtime.Serialization.Xml"": ""4.1.1-rc3-23918"", ""NETStandard.Library"": ""1.5.0-rc3-23918"" } } }, ""runtimes"": { ""ubuntu.14.04-x64"": { }, ""centos.7.1-x64"": { }, ""win7-x64"": { }, ""win10-x64"": { }, ""osx.10.10-x64"": { }, ""osx.10.11-x64"": { } } } ``` A very confusing error about System.Reflection.TypeExtensions occurs: ``` sh $ dotnet restore log : Restoring packages for /home/andrew/src/scratch/project.json... error: System.Reflection.TypeExtensions 4.1.0-rc3-23918 provides a compile-time reference assembly for System.Reflection.TypeExtensions on .NETStandardApp,Version=v1.5, but there is no run$ error: Some packages are not compatible with .NETStandardApp,Version=v1.5 (centos.7.1-x64). error: System.Reflection.TypeExtensions 4.1.0-rc3-23918 provides a compile-time reference assembly for System.Reflection.TypeExtensions on .NETStandardApp,Version=v1.5, but there is no run$ error: Some packages are not compatible with .NETStandardApp,Version=v1.5 (osx.10.10-x64). error: System.Reflection.TypeExtensions 4.1.0-rc3-23918 provides a compile-time reference assembly for System.Reflection.TypeExtensions on .NETStandardApp,Version=v1.5, but there is no run$ error: Some packages are not compatible with .NETStandardApp,Version=v1.5 (osx.10.11-x64). error: System.Reflection.TypeExtensions 4.1.0-rc3-23918 provides a compile-time reference assembly for System.Reflection.TypeExtensions on .NETStandardApp,Version=v1.5, but there is no run$ error: Some packages are not compatible with .NETStandardApp,Version=v1.5 (ubuntu.14.04-x64). error: System.Reflection.TypeExtensions 4.1.0-rc3-23918 provides a compile-time reference assembly for System.Reflection.TypeExtensions on .NETStandardApp,Version=v1.5, but there is no run$ error: Some packages are not compatible with .NETStandardApp,Version=v1.5 (win10-x64). error: System.Reflection.TypeExtensions 4.1.0-rc3-23918 provides a compile-time reference assembly for System.Reflection.TypeExtensions on .NETStandardApp,Version=v1.5, but there is no run$ error: Some packages are not compatible with .NETStandardApp,Version=v1.5 (win7-x64). info : Committing restore... log : /home/andrew/src/scratch/project.json log : Restore failed in 767ms. Errors in /home/andrew/src/scratch/project.json System.Reflection.TypeExtensions 4.1.0-rc3-23918 provides a compile-time reference assembly for System.Reflection.TypeExtensions on .NETStandardApp,Version=v1.5, but there is no run-ti$ Some packages are not compatible with .NETStandardApp,Version=v1.5 (centos.7.1-x64). System.Reflection.TypeExtensions 4.1.0-rc3-23918 provides a compile-time reference assembly for System.Reflection.TypeExtensions on .NETStandardApp,Version=v1.5, but there is no run-ti$ Some packages are not compatible with .NETStandardApp,Version=v1.5 (osx.10.10-x64). System.Reflection.TypeExtensions 4.1.0-rc3-23918 provides a compile-time reference assembly for System.Reflection.TypeExtensions on .NETStandardApp,Version=v1.5, but there is no run-ti$ Some packages are not compatible with .NETStandardApp,Version=v1.5 (osx.10.11-x64). System.Reflection.TypeExtensions 4.1.0-rc3-23918 provides a compile-time reference assembly for System.Reflection.TypeExtensions on .NETStandardApp,Version=v1.5, but there is no run-ti$ Some packages are not compatible with .NETStandardApp,Version=v1.5 (ubuntu.14.04-x64). System.Reflection.TypeExtensions 4.1.0-rc3-23918 provides a compile-time reference assembly for System.Reflection.TypeExtensions on .NETStandardApp,Version=v1.5, but there is no run-ti$ Some packages are not compatible with .NETStandardApp,Version=v1.5 (win10-x64). System.Reflection.TypeExtensions 4.1.0-rc3-23918 provides a compile-time reference assembly for System.Reflection.TypeExtensions on .NETStandardApp,Version=v1.5, but there is no run-ti$ Some packages are not compatible with .NETStandardApp,Version=v1.5 (win7-x64). NuGet Config files used: /home/andrew/src/scratch/nuget.config /home/andrew/.nuget/NuGet/NuGet.Config Feeds used: https://www.myget.org/F/dotnet-core/api/v3/index.json https://dotnet.myget.org/F/cli-deps/api/v3/index.json https://api.nuget.org/v3/index.json /home/andrew/src/scratch/./src/windows-build/nuget-feed ``` " +7047 area-System.Security Cannot build System.Cryptography.(Cng|Csp).Tests projects I can't build projects System.Security.Cryptography.Cng.Tests and System.Security.Cryptography.Csp.Tests in msbuild or VS. In System.Security.Cryptography.Cng.Tests, I get these errors: > TestData.cs(35,32): error CS0246: The type or namespace name 'CngKey' could not be found (are you missing a using directive or an assembly reference?) > TestData.cs(41,32): error CS0246: The type or namespace name 'CngKey' could not be found (are you missing a using directive or an assembly reference?) > TestData.cs(55,32): error CS0246: The type or namespace name 'CngKey' could not be found (are you missing a using directive or an assembly reference?) In System.Security.Cryptography.Csp.Tests, the errors are similar: > RSACryptoServiceProviderTests.cs(275,30): error CS0246: The type or namespace name 'CspParameters' could not be found (are you missing a using directive or an assembly reference?) > RSACryptoServiceProviderTests.cs(277,37): error CS0246: The type or namespace name 'CspParameters' could not be found (are you missing a using directive or an assembly reference?) In both cases, it looks like some issue with referencing the tested project. +7058 area-System.IO FileSystem tests broken with recent Path changes /cc @JeremyKuhne your change https://github.com/dotnet/corefx/commit/b37b8035c1d693f491545a53b701fe7a01df312e has caused a number of failures in the FileSystem tests. I hit these when upgrading the packages and was able to isolate it to System.Runtime.Extensions.dll by patching the assembly back to the old version to fix the errors: ``` System.IO.Tests.DirectoryInfo_Create.PathWithInvalidCharactersAsPath_ThrowsArgumentException [FAIL] Assert.All() Failure: 3 out of 44 items in the collection did not pass. [5]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.DirectoryNotFoundException): Could not find a part of the path '\\?\UNC\LOCALHOST'. at System.IO.Win32FileSystem.CreateDirectory(String fullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 147 at System.IO.DirectoryInfo.Create() in E:\corefx\src\System.IO.FileSystem\src\System\IO\DirectoryInfo.cs:line 102 at System.IO.Tests.DirectoryInfo_Create.Create(String path) in E:\corefx\src\System.IO.FileSystem\tests\DirectoryInfo\Create.cs:line 16 at System.IO.Tests.Directory_CreateDirectory.<>c__DisplayClass3_0.b__1() in E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 41 at Xunit.Assert.RecordException(Func`1 testCode) [4]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.DirectoryNotFoundException): Could not find a part of the path '\\?\UNC\'. at System.IO.Win32FileSystem.CreateDirectory(String fullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 147 at System.IO.DirectoryInfo.Create() in E:\corefx\src\System.IO.FileSystem\src\System\IO\DirectoryInfo.cs:line 102 at System.IO.Tests.DirectoryInfo_Create.Create(String path) in E:\corefx\src\System.IO.FileSystem\tests\DirectoryInfo\Create.cs:line 16 at System.IO.Tests.Directory_CreateDirectory.<>c__DisplayClass3_0.b__1() in E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 41 at Xunit.Assert.RecordException(Func`1 testCode) [3]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.IOException): The specified path is invalid at System.IO.Win32FileSystem.CreateDirectory(String fullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 154 at System.IO.DirectoryInfo.Create() in E:\corefx\src\System.IO.FileSystem\src\System\IO\DirectoryInfo.cs:line 102 at System.IO.Tests.DirectoryInfo_Create.Create(String path) in E:\corefx\src\System.IO.FileSystem\tests\DirectoryInfo\Create.cs:line 16 at System.IO.Tests.Directory_CreateDirectory.<>c__DisplayClass3_0.b__1() in E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 41 at Xunit.Assert.RecordException(Func`1 testCode) Stack Trace: E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs(39,0): at System.IO.Tests.Directory_CreateDirectory.PathWithInvalidCharactersAsPath_ThrowsArgumentException() System.IO.Tests.FileInfo_MoveTo.PathWithIllegalCharacters [FAIL] Assert.All() Failure: 3 out of 44 items in the collection did not pass. [5]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.IOException): The specified path is invalid at System.IO.Win32FileSystem.MoveFile(String sourceFullPath, String destFullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 430 at System.IO.FileInfo.MoveTo(String destFileName) in E:\corefx\src\System.IO.FileSystem\src\System\IO\FileInfo.cs:line 284 at System.IO.Tests.FileInfo_MoveTo.Move(String sourceFile, String destFile) in E:\corefx\src\System.IO.FileSystem\tests\FileInfo\MoveTo.cs:line 13 at System.IO.Tests.File_Move.<>c__DisplayClass4_1.b__1() in E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs:line 53 at Xunit.Assert.RecordException(Action testCode) [4]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.IOException): The filename, directory name, or volume label syntax is incorrect at System.IO.Win32FileSystem.MoveFile(String sourceFullPath, String destFullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 430 at System.IO.FileInfo.MoveTo(String destFileName) in E:\corefx\src\System.IO.FileSystem\src\System\IO\FileInfo.cs:line 284 at System.IO.Tests.FileInfo_MoveTo.Move(String sourceFile, String destFile) in E:\corefx\src\System.IO.FileSystem\tests\FileInfo\MoveTo.cs:line 13 at System.IO.Tests.File_Move.<>c__DisplayClass4_1.b__1() in E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs:line 53 at Xunit.Assert.RecordException(Action testCode) [3]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.IOException): The filename, directory name, or volume label syntax is incorrect at System.IO.Win32FileSystem.MoveFile(String sourceFullPath, String destFullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 430 at System.IO.FileInfo.MoveTo(String destFileName) in E:\corefx\src\System.IO.FileSystem\src\System\IO\FileInfo.cs:line 284 at System.IO.Tests.FileInfo_MoveTo.Move(String sourceFile, String destFile) in E:\corefx\src\System.IO.FileSystem\tests\FileInfo\MoveTo.cs:line 13 at System.IO.Tests.File_Move.<>c__DisplayClass4_1.b__1() in E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs:line 53 at Xunit.Assert.RecordException(Action testCode) Stack Trace: E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs(51,0): at System.IO.Tests.File_Move.PathWithIllegalCharacters() System.IO.Tests.File_Move.PathWithIllegalCharacters [FAIL] Assert.All() Failure: 3 out of 44 items in the collection did not pass. [5]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.IOException): The specified path is invalid at System.IO.Win32FileSystem.MoveFile(String sourceFullPath, String destFullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 430 at System.IO.File.Move(String sourceFileName, String destFileName) in E:\corefx\src\System.IO.FileSystem\src\System\IO\File.cs:line 698 at System.IO.Tests.File_Move.Move(String sourceFile, String destFile) in E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs:line 15 at System.IO.Tests.File_Move.<>c__DisplayClass4_1.b__1() in E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs:line 53 at Xunit.Assert.RecordException(Action testCode) [4]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.IOException): The filename, directory name, or volume label syntax is incorrect at System.IO.Win32FileSystem.MoveFile(String sourceFullPath, String destFullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 430 at System.IO.File.Move(String sourceFileName, String destFileName) in E:\corefx\src\System.IO.FileSystem\src\System\IO\File.cs:line 698 at System.IO.Tests.File_Move.Move(String sourceFile, String destFile) in E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs:line 15 at System.IO.Tests.File_Move.<>c__DisplayClass4_1.b__1() in E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs:line 53 at Xunit.Assert.RecordException(Action testCode) [3]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.IOException): The filename, directory name, or volume label syntax is incorrect at System.IO.Win32FileSystem.MoveFile(String sourceFullPath, String destFullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 430 at System.IO.File.Move(String sourceFileName, String destFileName) in E:\corefx\src\System.IO.FileSystem\src\System\IO\File.cs:line 698 at System.IO.Tests.File_Move.Move(String sourceFile, String destFile) in E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs:line 15 at System.IO.Tests.File_Move.<>c__DisplayClass4_1.b__1() in E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs:line 53 at Xunit.Assert.RecordException(Action testCode) Stack Trace: E:\corefx\src\System.IO.FileSystem\tests\File\Move.cs(51,0): at System.IO.Tests.File_Move.PathWithIllegalCharacters() System.IO.Tests.Directory_CreateDirectory.PathWithInvalidCharactersAsPath_ThrowsArgumentException [FAIL] Assert.All() Failure: 3 out of 44 items in the collection did not pass. [5]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.DirectoryNotFoundException): Could not find a part of the path '\\?\UNC\LOCALHOST'. at System.IO.Win32FileSystem.CreateDirectory(String fullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 147 at System.IO.Directory.CreateDirectory(String path) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Directory.cs:line 50 at System.IO.Tests.Directory_CreateDirectory.Create(String path) in E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 16 at System.IO.Tests.Directory_CreateDirectory.<>c__DisplayClass3_0.b__1() in E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 41 at Xunit.Assert.RecordException(Func`1 testCode) [4]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.DirectoryNotFoundException): Could not find a part of the path '\\?\UNC\'. at System.IO.Win32FileSystem.CreateDirectory(String fullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 147 at System.IO.Directory.CreateDirectory(String path) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Directory.cs:line 50 at System.IO.Tests.Directory_CreateDirectory.Create(String path) in E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 16 at System.IO.Tests.Directory_CreateDirectory.<>c__DisplayClass3_0.b__1() in E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 41 at Xunit.Assert.RecordException(Func`1 testCode) [3]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.IOException): The specified path is invalid at System.IO.Win32FileSystem.CreateDirectory(String fullPath) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 154 at System.IO.Directory.CreateDirectory(String path) in E:\corefx\src\System.IO.FileSystem\src\System\IO\Directory.cs:line 50 at System.IO.Tests.Directory_CreateDirectory.Create(String path) in E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 16 at System.IO.Tests.Directory_CreateDirectory.<>c__DisplayClass3_0.b__1() in E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 41 at Xunit.Assert.RecordException(Func`1 testCode) Stack Trace: E:\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs(39,0): at System.IO.Tests.Directory_CreateDirectory.PathWithInvalidCharactersAsPath_ThrowsArgumentException() ``` +7060 area-System.Net Implement several certificate properties on CurlHandler Adds implementations to CurlHandler for: - ClientCertificates - ServerCertificateValidationCallback - CheckCertificateRevocationList I've explicitly not added these to the contract, as we're not ready for that yet on other platforms, and I've not added tests (though I've done some testing manually, such as verifying that I could run tweaked versions of the WinHttp server callback tests against this successfully). This is about being able to easy expose them in the contract for HttpClientHandler, hopefully in the near future. cc: @bartonjs, @ericeil, @davidsh, @SidharthNabar, @joshfree, @kapilash Related to https://github.com/dotnet/corefx/issues/4476, https://github.com/dotnet/corefx/issues/4120, and https://github.com/dotnet/corefx/issues/4479 +7061 area-Infrastructure LoadInDefaultContext failing in CI on Windows outerloop http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win10_debug/128/consoleFull ``` 12:24:22 System.Runtime.Loader.Tests.DefaultLoadContextTests.LoadInDefaultContext [FAIL] 12:24:22 System.IO.FileNotFoundException : Could not load file or assembly 'System.Runtime.Loader.Noop.Assembly, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified. 12:24:22 Stack Trace: 12:24:22 at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 12:24:22 at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 12:24:22 at System.Reflection.Assembly.Load(AssemblyName assemblyRef) 12:24:22 d:\j\workspace\outerloop_win---0cba2915\src\System.Runtime.Loader\tests\DefaultContext\DefaultLoadContextTest.cs(73,0): at System.Runtime.Loader.Tests.DefaultLoadContextTests.LoadInDefaultContext() 12:24:22 Finished: System.Runtime.Loader.DefaultContext.Tests 12:24:22 12:24:22 === TEST EXECUTION SUMMARY === 12:24:22 System.Runtime.Loader.DefaultContext.Tests Total: 2, Errors: 0, Failed: 1, Skipped: 0, Time: 0.439s ``` +7062 area-Infrastructure Package restore failures in outerloop on Ubuntu "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_ubuntu14.04_debug/38/consoleFull ``` 11:03:57 [18:04:10.16] Restoring all packages... 11:04:39 EXEC : error : System.Threading.Overlapped 4.0.1-rc3-23918 provides a compile-time reference assembly for System.Threading.Overlapped on DNXCore,Version=v5.0, but there is no run-time assembly compatible with ubuntu.14.04-x64. [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/build.proj] 11:04:39 EXEC : error : Some packages are not compatible with DNXCore,Version=v5.0 (ubuntu.14.04-x64). [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/build.proj] 11:04:48 EXEC : error : System.Runtime.Extensions 4.0.0 provides a compile-time reference assembly for System.Runtime.Extensions on .NETCore,Version=v5.0, but there is no run-time assembly compatible with ubuntu.14.04-x64. [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/build.proj] 11:04:48 EXEC : error : Some packages are not compatible with .NETCore,Version=v5.0 (ubuntu.14.04-x64). [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/build.proj] 11:05:01 EXEC : error : System.Runtime.Extensions 4.0.0 provides a compile-time reference assembly for System.Runtime.Extensions on .NETCore,Version=v5.0, but there is no run-time assembly compatible with ubuntu.14.04-x64. [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/build.proj] 11:05:01 EXEC : error : Some packages are not compatible with .NETCore,Version=v5.0 (ubuntu.14.04-x64). [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/build.proj] 11:05:38 /mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/build.proj(60,5): error MSB3073: The command """"/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/Tools/dotnetcli/bin/dotnet"" restore --packages ""/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/packages"" --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://www.nuget.org/api/v2/ ""/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/src"" ""/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/pkg"""" exited with code -1. 11:05:38 [18:05:51.34] Restoring all packages...Done. ``` " +7063 area-System.Net NegotiateStream_EchoServer_ClientWriteRead_Successive_Async_Success failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_rhel7.2_debug_tst/19/consoleFull ``` 11:42:15 System.Net.Security.Tests.KerberosTest.NegotiateStream_EchoServer_ClientWriteRead_Successive_Async_Success [FAIL] 11:42:15 The second message received is as expected 11:42:15 Expected: True 11:42:15 Actual: False 11:42:15 Stack Trace: 11:42:15 at System.Net.Security.Tests.KerberosTest.NegotiateStream_EchoServer_ClientWriteRead_Successive_Async_Success() 11:42:19 Finished: System.Net.Security.Tests 11:42:19 11:42:19 === TEST EXECUTION SUMMARY === 11:42:19 System.Net.Security.Tests Total: 106, Errors: 0, Failed: 1, Skipped: 0, Time: 9.625s ``` +7064 area-System.Net Ping tests failing in outerloop on Unix In several outer loop runs, e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_rhel7.2_release_tst/19/console many of the ping tests are failing with errors like: ``` 11:53:26 System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithIPAddressAndTimeoutAndBufferAndPingOptions_Unix [FAIL] 11:53:26 System.Net.Sockets.SocketException : Invalid argument 11:53:26 Stack Trace: 11:53:26 at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType) 11:53:26 at System.Net.NetworkInformation.Ping.d__34.MoveNext() 11:53:26 --- End of stack trace from previous location where exception was thrown --- 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 11:53:26 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() 11:53:26 at System.Net.NetworkInformation.Ping.d__33.MoveNext() 11:53:26 --- End of stack trace from previous location where exception was thrown --- 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 11:53:26 at System.Net.NetworkInformation.Tests.PingTest.d__21.MoveNext() 11:53:26 --- End of stack trace from previous location where exception was thrown --- 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 11:53:26 at System.Net.NetworkInformation.Tests.PingTest.d__8.MoveNext() 11:53:26 --- End of stack trace from previous location where exception was thrown --- 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 11:53:26 --- End of stack trace from previous location where exception was thrown --- 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 11:53:26 --- End of stack trace from previous location where exception was thrown --- 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 11:53:26 System.Net.NetworkInformation.Tests.PingTest.Ping_DisposeAfterSend_Success [FAIL] 11:53:26 System.Diagnostics.Debug+DebugAssertException : Invalid status: 0 11:53:26 11:53:26 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 11:53:26 at System.Environment.get_StackTrace() 11:53:26 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 11:53:26 at System.Net.NetworkInformation.Ping.Finish() 11:53:26 at System.Net.NetworkInformation.Ping.d__25.MoveNext() 11:53:26 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 11:53:26 at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.Run() 11:53:26 at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(Action action, Boolean allowInlining, Task& currentTask) 11:53:26 at System.Threading.Tasks.Task.FinishContinuations() 11:53:26 at System.Threading.Tasks.Task`1.TrySetResult(TResult result) 11:53:26 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 11:53:26 at System.Net.LazyAsyncResult.Complete(IntPtr userToken) 11:53:26 at System.Net.ContextAwareResult.CompleteCallback() 11:53:26 at System.Net.ContextAwareResult.<>c.b__17_0(Object s) 11:53:26 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 11:53:26 at System.Net.ContextAwareResult.Complete(IntPtr userToken) 11:53:26 at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) 11:53:26 at System.Net.LazyAsyncResult.InvokeCallback(Object result) 11:53:26 at System.Net.Dns.ResolveCallback(Object context) 11:53:26 at System.Net.Dns.<>c.b__6_0(Object s) 11:53:26 at System.Threading.Tasks.Task.Execute() 11:53:26 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 11:53:26 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 11:53:26 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 11:53:26 at System.Threading.ThreadPoolWorkQueue.Dispatch() 11:53:26 Stack Trace: 11:53:26 at System.Diagnostics.Debug.UnixDebugLogger.ShowAssertDialog(String stackTrace, String message, String detailMessage) 11:53:26 at System.Net.NetworkInformation.Ping.Finish() 11:53:26 at System.Net.NetworkInformation.Ping.d__25.MoveNext() 11:53:26 --- End of stack trace from previous location where exception was thrown --- 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 11:53:26 at System.Net.NetworkInformation.Tests.PingTest.d__16.MoveNext() 11:53:26 --- End of stack trace from previous location where exception was thrown --- 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 11:53:26 --- End of stack trace from previous location where exception was thrown --- 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 11:53:26 --- End of stack trace from previous location where exception was thrown --- 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 11:53:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +7072 area-System.Collections Add performance tests for all collections I see performance tests for only List and SortedDictionary at the moment in the System.Collections solution.. Given that the collections are probably one of the most exercised body of code in the entire .Net Framework I expect that it be treated as a performance critical body of code and therefore have a complete suite of performance tests. +7077 area-System.IO Remove work around from pipes tests Once we upgrade packages we can remove the workaround from https://github.com/dotnet/corefx/pull/7074 +7079 area-Infrastructure Dependency conflict warning from buildtools on clean build ``` corefx>git clean -xdf corefx>build.cmd Installing dotnet cli... Restoring BuildTools version 1.0.25-prerelease-00208... Initializing BuildTools ... c:\Users\stoub\Source\repos\corefx\packages\Microsoft.DotNet.BuildTools\1.0.25-prerelease-00208\lib\tool-runtime\project.json(37,37): warning NU1012: Dependency conflict. Microsoft.Build 0.1.0-preview-00017 expected System.Diagnostics.Contracts >= 4.0.1-rc2-23712 but got 4.0.0 c:\Users\stoub\Source\repos\corefx\packages\Microsoft.DotNet.BuildTools\1.0.25-prerelease-00208\lib\tool-runtime\project.json(37,37): warning NU1012: Dependency conflict. Microsoft.NETCore.Console 1.0.0-rc2-23907 expected System.Diagnostics.Contracts >= 4.0.1-rc2-23907 but got 4.0.0 ``` cc: @weshaggard, @ericstj +7080 area-Infrastructure Lots of packaging build warnings on clean build Clean build on Windows produces the following warnings: ``` c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.rhel.7-x64.runtime.native.System.IO.Compression.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\System.IO.C ompression.Native.so [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.IO.Compression\rhel\runtime.native.System.IO.Compression.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.debian.8-x64.runtime.native.System.IO.Compression.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\System.IO .Compression.Native.so [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.IO.Compression\debian\runtime.native.System.IO.Compression.pkgp roj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.ubuntu.14.04-x64.runtime.native.System.IO.Compression.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\Syste m.IO.Compression.Native.so [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.IO.Compression\ubuntu\runtime.native.System.IO.Compression. pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.osx.10.10-x64.runtime.native.System.IO.Compression.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\System.I O.Compression.Native.dylib [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.IO.Compression\osx\runtime.native.System.IO.Compression.pkg proj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.win7-x86.runtime.native.System.IO.Compression.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\\clrcompressi on.dll [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.IO.Compression\win7\runtime.native.System.IO.Compression.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.win7-x64.runtime.native.System.IO.Compression.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\\clrcompressi on.dll [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.IO.Compression\win7\runtime.native.System.IO.Compression.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.win7-arm.runtime.native.System.IO.Compression.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\\clrcompressi on.dll [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.IO.Compression\win7\runtime.native.System.IO.Compression.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.win10-x86.runtime.native.System.IO.Compression.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\..\..\NetCor eForCoreCLR\native\clrcompression.dll [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.IO.Compression\win10\runtime.native.System.IO.Co mpression.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.win10-x64.runtime.native.System.IO.Compression.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\..\..\NetCor eForCoreCLR\native\clrcompression.dll [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.IO.Compression\win10\runtime.native.System.IO.Co mpression.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.win10-arm.runtime.native.System.IO.Compression.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\..\..\NetCor eForCoreCLR\native\clrcompression.dll [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.IO.Compression\win10\runtime.native.System.IO.Co mpression.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.rhel.7-x64.runtime.native.System.Net.Http.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\System.Net.Http.N ative.so [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.Net.Http\rhel\runtime.native.System.Net.Http.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.debian.8-x64.runtime.native.System.Net.Http.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\System.Net.Http .Native.so [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.Net.Http\debian\runtime.native.System.Net.Http.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.ubuntu.14.04-x64.runtime.native.System.Net.Http.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\System.Net. Http.Native.so [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.Net.Http\ubuntu\runtime.native.System.Net.Http.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.osx.10.10-x64.runtime.native.System.Net.Http.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\System.Net.Htt p.Native.dylib [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.Net.Http\osx\runtime.native.System.Net.Http.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.rhel.7-x64.runtime.native.System.Net.Security.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\\System.Net.S ecurity.Native.so [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.Net.Security\rhel\runtime.native.System.Net.Security.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.win7-x64.runtime.native.System.Data.SqlClient.sni.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\sni.dll [ c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.Data.SqlClient.sni\win\runtime.native.System.Data.SqlClient.sni.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.debian.8-x64.runtime.native.System.Net.Security.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\\System.Net .Security.Native.so [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.Net.Security\debian\runtime.native.System.Net.Security.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.ubuntu.14.04-x64.runtime.native.System.Net.Security.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\\System .Net.Security.Native.so [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.Net.Security\ubuntu\runtime.native.System.Net.Security.pkgproj ] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.osx.10.10-x64.runtime.native.System.Net.Security.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\\System.Ne t.Security.Native.dylib [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.Net.Security\osx\runtime.native.System.Net.Security.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.rhel.7-x64.runtime.native.System.Security.Cryptography.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\Syst em.Security.Cryptography.Native.so [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.Security.Cryptography\rhel\runtime.native.System.Se curity.Cryptography.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.debian.8-x64.runtime.native.System.Security.Cryptography.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\Sy stem.Security.Cryptography.Native.so [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.Security.Cryptography\debian\runtime.native.Syste m.Security.Cryptography.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/nativ e\System.Security.Cryptography.Native.so [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.Security.Cryptography\ubuntu\runtime.native.S ystem.Security.Cryptography.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.osx.10.10-x64.runtime.native.System.Security.Cryptography.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\S ystem.Security.Cryptography.Native.dylib [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System.Security.Cryptography\osx\runtime.native.Syst em.Security.Cryptography.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.rhel.7-x64.runtime.native.System.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\System.Native.so;c:\Users\ stoub\Source\repos\corefx\bin/native\System.Native.a [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System\rhel\runtime.native.System.pkgpro j] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.ubuntu.14.04-x64.runtime.native.System.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\System.Native.so;c:\ Users\stoub\Source\repos\corefx\bin/native\System.Native.a [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System\ubuntu\runtime.native.Syste m.pkgproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.debian.8-x64.runtime.native.System.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\System.Native.so;c:\User s\stoub\Source\repos\corefx\bin/native\System.Native.a [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System\debian\runtime.native.System.pk gproj] c:\Users\stoub\Source\repos\corefx\Tools\Packaging.targets(893,5): warning : Skipping package creation for c:\Users\stoub\Source\repos\corefx\bin/pkg/specs/run time.osx.10.10-x64.runtime.native.System.nuspec because the following files do not exist: c:\Users\stoub\Source\repos\corefx\bin/native\System.Native.dylib;c:\ Users\stoub\Source\repos\corefx\bin/native\System.Native.a [c:\Users\stoub\Source\repos\corefx\src\Native\pkg\runtime.native.System\osx\runtime.native.System.p kgproj] ``` cc: @chcosta, @ericstj, @weshaggard +7081 area-Infrastructure Outerloop Unix runs using stale native shims Outerloop runs are currently failing on Unix with hundreds of failures due to System.Native.so missing some entrypoints that were added at the same time consumers of those entrypoints were added to the managed assemblies, e.g. System.IO.Pipes.dll consuming SystemNative_GetDomainSocketSizes. +7082 area-System.Console WindowAndCursorProps.Title test fails on Win7 ``` 14:19:45 WindowAndCursorProps.Title [FAIL] 14:19:45 Assert+WrapperXunitException : File path: d:\j\workspace\outerloop_win---9c9e7d59\src\System.Console\tests\WindowAndCursorProps.cs. Line: 121 14:19:45 ---- Assert.Equal() Failure 14:19:45  (pos 511) 14:19:45 Expected: úúúaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaúúú 14:19:45 Actual: úúúaaaaaaaaaaaaaaaaaaaa 14:19:45  (pos 511) 14:19:45 Stack Trace: 14:19:45 at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) 14:19:45 at Assert.Equal(String expected, String actual, String path, Int32 line) 14:19:45 at WindowAndCursorProps.Title() 14:19:45 ----- Inner Stack Trace ----- 14:19:45 at Assert.Equal(String expected, String actual, String path, Int32 line) ``` +7083 area-System.Diagnostics ProcessTests.TestSessionId fails on Win 7 ``` 14:19:57 System.Diagnostics.Tests.ProcessTests.TestSessionId [FAIL] 14:19:57 System.EntryPointNotFoundException : Unable to find an entry point named 'ProcessIdToSessionId' in DLL 'api-ms-win-core-processthreads-l1-1-2.dll'. 14:19:57 Stack Trace: 14:19:57 at System.Diagnostics.Tests.Interop.ProcessIdToSessionId(UInt32 dwProcessId, UInt32& pSessionId) 14:19:57 at System.Diagnostics.Tests.ProcessTests.TestSessionId() ``` +7084 area-System.Globalization 11 globalization tests failing on Win 7 "``` 14:20:11 Starting: System.Globalization.Tests 14:20:12 System.Globalization.Tests.DateTimeFormatInfoCalendarWeekRule.CalendarWeekRuleTest(format: DateTimeFormatInfo { AbbreviatedDayNames = [""Sul"", ""Lun"", ""Meu."", ""Mer."", ""Yaou"", ...], AbbreviatedMonthGenitiveNames = [""Gen."", ""C'hwe."", ""Meur."", ""Ebr."", ""Mae"", ...], AbbreviatedMonthNames = [""Gen."", ""C'hwe."", ""Meur."", ""Ebr."", ""Mae"", ...], AMDesignator = """", Calendar = GregorianCalendar { AlgorithmType = SolarCalendar, CalendarType = Localized, Eras = [...], IsReadOnly = False, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, ... }, ... }, expected: FirstFullWeek) [FAIL] 14:20:13 Assert.Equal() Failure 14:20:13 Expected: FirstFullWeek 14:20:13 Actual: FirstDay 14:20:13 Stack Trace: 14:20:13 at System.Globalization.Tests.DateTimeFormatInfoCalendarWeekRule.CalendarWeekRuleTest(DateTimeFormatInfo format, CalendarWeekRule expected) 14:20:13 TextInfoTests.ToUpper(localeName: """") [FAIL] 14:20:14 System.Globalization.Extensions.Tests -> d:\j\workspace\outerloop_win---9c9e7d59\bin\Windows_NT.AnyCPU.Debug\System.Globalization.Extensions.Tests\System.Globalization.Extensions.Tests.dll 14:20:14 Assert.Equal() Failure 14:20:14  (pos 1) 14:20:14 Expected: ?? 14:20:14 Actual: ?? 14:20:14  (pos 1) 14:20:14 Stack Trace: 14:20:14 at TextInfoTests.ToUpper(String localeName) 14:20:14 TextInfoTests.ToUpper(localeName: ""en-US"") [FAIL] 14:20:14 Assert.Equal() Failure 14:20:14  (pos 1) 14:20:14 Expected: ?? 14:20:14 Actual: ?? 14:20:14  (pos 1) 14:20:14 Stack Trace: 14:20:14 at TextInfoTests.ToUpper(String localeName) 14:20:14 TextInfoTests.ToUpper(localeName: ""fr"") [FAIL] 14:20:14 Assert.Equal() Failure 14:20:14  (pos 1) 14:20:14 Expected: ?? 14:20:14 Actual: ?? 14:20:14  (pos 1) 14:20:14 Stack Trace: 14:20:14 at TextInfoTests.ToUpper(String localeName) 14:20:14 TextInfoTests.ToLower(localeName: """") [FAIL] 14:20:14 Assert.Equal() Failure 14:20:14  (pos 1) 14:20:14 Expected: ?? 14:20:14 Actual: ?? 14:20:14  (pos 1) 14:20:14 Stack Trace: 14:20:14 at TextInfoTests.ToLower(String localeName) 14:20:14 TextInfoTests.ToLower(localeName: ""en-US"") [FAIL] 14:20:14 Assert.Equal() Failure 14:20:14  (pos 1) 14:20:14 Expected: ?? 14:20:14 Actual: ?? 14:20:14  (pos 1) 14:20:14 Stack Trace: 14:20:14 at TextInfoTests.ToLower(String localeName) 14:20:14 TextInfoTests.ToLower(localeName: ""fr"") [FAIL] 14:20:14 Assert.Equal() Failure 14:20:14  (pos 1) 14:20:14 Expected: ?? 14:20:14 Actual: ?? 14:20:14  (pos 1) 14:20:14 Stack Trace: 14:20:14 at TextInfoTests.ToLower(String localeName) 14:20:14 System.Globalization.Tests.NumberFormatInfoCurrencyGroupSizes.TestCurrencyGroupSizesLocale(locale: ""ur-IN"", primaryGroupSize: 3, secondaryGroupSize: 2) [FAIL] 14:20:14 System.Globalization.CultureNotFoundException : Culture is not supported. 14:20:14 Parameter name: name 14:20:14 ur-IN is an invalid culture identifier. 14:20:14 Stack Trace: 14:20:14 at System.Globalization.CultureInfo..ctor(String name, Boolean useUserOverride) 14:20:14 at System.Globalization.Tests.NumberFormatInfoCurrencyGroupSizes.TestCurrencyGroupSizesLocale(String locale, Int32 primaryGroupSize, Int32 secondaryGroupSize) 14:20:14 System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.TestNumberGroupSizesLocale(locale: ""ur-IN"") [FAIL] 14:20:14 System.Globalization.CultureNotFoundException : Culture is not supported. 14:20:14 Parameter name: name 14:20:14 ur-IN is an invalid culture identifier. 14:20:14 Stack Trace: 14:20:14 at System.Globalization.CultureInfo..ctor(String name, Boolean useUserOverride) 14:20:14 at System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.TestNumberGroupSizesLocale(String locale) 14:20:14 System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern.TestCurrencyNegativePatternLocale(locale: ""fr-CD"") [FAIL] 14:20:14 System.Globalization.CultureNotFoundException : Culture is not supported. 14:20:14 Parameter name: name 14:20:14 fr-CD is an invalid culture identifier. 14:20:14 Stack Trace: 14:20:14 at System.Globalization.CultureInfo..ctor(String name, Boolean useUserOverride) 14:20:14 at System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern.TestCurrencyNegativePatternLocale(String locale) 14:20:14 CompareInfoTests.Compare(localeName: """", left: ""ABCDE"", right: ""aBCDE"", expected: -1, options: None) [FAIL] 14:20:14 Assert.Equal() Failure 14:20:14 Expected: -1 14:20:14 Actual: 1 14:20:14 Stack Trace: 14:20:14 at CompareInfoTests.Compare(String localeName, String left, String right, Int32 expected, CompareOptions options) 14:20:14 Finished: System.Globalization.Tests 14:20:14 14:20:14 === TEST EXECUTION SUMMARY === 14:20:14 System.Globalization.Tests Total: 5520, Errors: 0, Failed: 11, Skipped: 0, Time: 2.953s ``` " +7085 area-System.Net GetAsync_ResponseHeadersRead_ReadFromEachIterativelyDoesntDeadlock HTTP test failed on Win 7 http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win7_debug/127/consoleFull ``` 14:23:38 System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_ResponseHeadersRead_ReadFromEachIterativelyDoesntDeadlock [FAIL] 14:23:38 System.Net.Http.HttpRequestException : An error occurred while sending the request. 14:23:38 ---- System.Net.Http.WinHttpException : The supplied handle is the wrong type for the requested operation 14:23:38 Stack Trace: 14:23:38 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:23:38 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:23:38 at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 14:23:38 at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__41.MoveNext() 14:23:38 --- End of stack trace from previous location where exception was thrown --- 14:23:38 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:23:38 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:23:38 --- End of stack trace from previous location where exception was thrown --- 14:23:38 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:23:38 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:23:38 --- End of stack trace from previous location where exception was thrown --- 14:23:38 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:23:38 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:23:38 ----- Inner Stack Trace ----- 14:23:38 at System.Net.Http.WinHttpException.ThrowExceptionUsingLastError() 14:23:38 at System.Net.Http.WinHttpHandler.SetWinHttpOption(SafeWinHttpHandle handle, UInt32 option, UInt32& optionData) 14:23:38 at System.Net.Http.WinHttpHandler.SetSessionHandleConnectionOptions() 14:23:38 at System.Net.Http.WinHttpHandler.SetSessionHandleOptions() 14:23:38 at System.Net.Http.WinHttpHandler.d__102.MoveNext() ``` +7086 area-System.Security CNG tests failing on Win 7 Lots of failures, and then it looks like they hang until killed by Jenkins. ``` Discovering: System.Security.Cryptography.Cng.Tests Discovered: System.Security.Cryptography.Cng.Tests Starting: System.Security.Cryptography.Cng.Tests System.Security.Cryptography.Encryption.Aes.Tests.AesModeTests.SupportsECB [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesModeTests.SupportsMode(CipherMode mode) System.Security.Cryptography.Encryption.Aes.Tests.AesModeTests.SupportsCBC [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesModeTests.SupportsMode(CipherMode mode) System.Security.Cryptography.Encryption.Aes.Tests.DecryptorReusabilty.TestDecryptorReusability [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateDecryptor() at System.Security.Cryptography.Encryption.Aes.Tests.DecryptorReusabilty.TestDecryptorReusability() System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESReusabilityTests.TripleDESReuseEncryptorDecryptor [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.TripleDESCng.CreateEncryptor() at System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESReusabilityTests.TripleDESReuseEncryptorDecryptor() System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.ValidateEncryptorProperties [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.ValidateEncryptorProperties() System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.CreateTransformExceptions [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.CreateTransformExceptions() System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.ValidateOffsetAndCount [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.ValidateOffsetAndCount() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.StableEncryptDecrypt [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.StableEncryptDecrypt() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_128 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip(Aes aes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_128() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC128_NoPadding_3 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesEncryptDirectKey(Aes aes, Byte[] key, Byte[] iv, Byte[] plainBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC128_NoPadding_3() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_ECB192_NoPadding [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesEncryptDirectKey(Aes aes, Byte[] key, Byte[] iv, Byte[] plainBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_ECB192_NoPadding() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC128_NoPadding_2 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesEncryptDirectKey(Aes aes, Byte[] key, Byte[] iv, Byte[] plainBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC128_NoPadding_2() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.DecryptKnownCBC256 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateDecryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesDecrypt(CipherMode mode, Byte[] key, Byte[] iv, Byte[] encryptedBytes, Byte[] expectedAnswer) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.DecryptKnownCBC256() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesZeroPad [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesZeroPad() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_ECB128_NoPadding [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesEncryptDirectKey(Aes aes, Byte[] key, Byte[] iv, Byte[] plainBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_ECB128_NoPadding() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_ECB192_NoPadding_2 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesEncryptDirectKey(Aes aes, Byte[] key, Byte[] iv, Byte[] plainBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_ECB192_NoPadding_2() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyInPlaceEncryption [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyInPlaceEncryption() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_192 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip(Aes aes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_192() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC256_NoPadding [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesEncryptDirectKey(Aes aes, Byte[] key, Byte[] iv, Byte[] plainBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC256_NoPadding() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.WrongKeyFailDecrypt_2 [FAIL] Assert.Throws() Failure Expected: typeof(System.Security.Cryptography.CryptographicException) Actual: typeof(Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException): The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateDecryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.<>c__DisplayClass28_1.b__0() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_ECB128_NoPadding_2 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesEncryptDirectKey(Aes aes, Byte[] key, Byte[] iv, Byte[] plainBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_ECB128_NoPadding_2() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_ECB128_NoPadding_3 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesEncryptDirectKey(Aes aes, Byte[] key, Byte[] iv, Byte[] plainBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_ECB128_NoPadding_3() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC192_NoPadding_2 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesEncryptDirectKey(Aes aes, Byte[] key, Byte[] iv, Byte[] plainBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC192_NoPadding_2() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.WrongKeyFailDecrypt [FAIL] Assert.Throws() Failure Expected: typeof(System.Security.Cryptography.CryptographicException) Actual: typeof(Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException): The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateDecryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.<>c__DisplayClass27_1.b__0() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_256 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip(Aes aes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_256() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC192_NoPadding [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesEncryptDirectKey(Aes aes, Byte[] key, Byte[] iv, Byte[] plainBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC192_NoPadding() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_ECB256_NoPadding [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesEncryptDirectKey(Aes aes, Byte[] key, Byte[] iv, Byte[] plainBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_ECB256_NoPadding() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.DecryptKnownECB192 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateDecryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesDecrypt(CipherMode mode, Byte[] key, Byte[] iv, Byte[] encryptedBytes, Byte[] expectedAnswer) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.DecryptKnownECB192() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_Default [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip(Aes aes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_Default() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC128_NoPadding [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesEncryptDirectKey(Aes aes, Byte[] key, Byte[] iv, Byte[] plainBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC128_NoPadding() System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.ValidateDecryptorProperties [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.AesCng.CreateDecryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.ValidateDecryptorProperties() System.Security.Cryptography.Cng.Tests.RsaCngTests.RSACng_Ctor_UnusualKeysize_384 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at System.Security.Cryptography.Cng.Tests.RsaCngTests.RSACng_Ctor_UnusualKeysize(Int32 expectedKeySize, Byte[] keyBlob, RSAParameters expectedParameters) at System.Security.Cryptography.Cng.Tests.RsaCngTests.RSACng_Ctor_UnusualKeysize_384() System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESCipherTests.TripleDESRoundTrip192BitsPKCS7CBC [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.TripleDESCng.CreateEncryptor() at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) at System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESCipherTests.TripleDESRoundTrip192BitsPKCS7CBC() System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESCipherTests.TripleDESRoundTrip192BitsNoneCBC [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.TripleDESCng.CreateEncryptor() at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) at System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESCipherTests.TripleDESRoundTrip192BitsNoneCBC() System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESCipherTests.TripleDESRoundTrip192BitsZerosCBC [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.TripleDESCng.CreateEncryptor() at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) at System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESCipherTests.TripleDESRoundTrip192BitsZerosCBC() System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESCipherTests.TripleDESRoundTrip192BitsPKCS7ECB [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.TripleDESCng.CreateEncryptor() at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) at System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESCipherTests.TripleDESRoundTrip192BitsPKCS7ECB() System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESCipherTests.TripleDESRoundTrip192BitsZerosECB [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.TripleDESCng.CreateEncryptor() at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) at System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESCipherTests.TripleDESRoundTrip192BitsZerosECB() System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESCipherTests.TripleDESRoundTrip192BitsNoneECB [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at Internal.Cryptography.SymmetricImportExportExtensions.ToCngKey(Byte[] key, String algorithm) at Internal.Cryptography.BasicSymmetricCipherCng..ctor(Func`1 cngKeyFactory, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] iv, Boolean encrypting) at Internal.Cryptography.CngSymmetricAlgorithmCore.CreateCryptoTransformCore(Func`1 cngKeyFactory, Byte[] iv, Boolean encrypting) at System.Security.Cryptography.TripleDESCng.CreateEncryptor() at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) at System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESCipherTests.TripleDESRoundTrip192BitsNoneECB() System.Security.Cryptography.Rsa.Tests.SignVerify.ExpectedSignature_SHA1_384 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKey.Import(Byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider) at System.Security.Cryptography.RSACng.ImportKeyBlob(Byte[] rsaBlob, Boolean includePrivate) at System.Security.Cryptography.RSACng.ImportParameters(RSAParameters parameters) at System.Security.Cryptography.Rsa.Tests.SignVerify.ExpectSignature(Byte[] expectedSignature, Byte[] data, String hashAlgorithmName, RSAParameters rsaParameters) at System.Security.Cryptography.Rsa.Tests.SignVerify.ExpectedSignature_SHA1_384() ``` +7087 area-System.Globalization Four System.Globalization.Extensions tests failing on Win 7 "``` 14:20:15 System.Globalization.Tests.IdnMappingIdnaConformanceTests.GetAscii_Success [FAIL] 14:20:15 System.ArgumentException : Decoded string is not a valid IDN name. 14:20:15 Parameter name: unicode 14:20:15 Stack Trace: 14:20:15 at System.Globalization.IdnMapping.ThrowForZeroLength(String paramName, String invalidNameString, String otherString) 14:20:15 at System.Globalization.IdnMapping.GetAsciiCore(String unicode) 14:20:15 at System.Globalization.IdnMapping.GetAscii(String unicode, Int32 index, Int32 count) 14:20:15 at System.Globalization.IdnMapping.GetAscii(String unicode, Int32 index) 14:20:15 at System.Globalization.IdnMapping.GetAscii(String unicode) 14:20:15 at System.Globalization.Tests.IdnMappingIdnaConformanceTests.GetAscii_Success() 14:20:15 System.Globalization.Tests.IdnMappingIdnaConformanceTests.GetUnicode_Succes [FAIL] 14:20:15 Assert.Equal() Failure 14:20:15 Expected: ….?"" 14:20:15 Actual: xn--0ca.xn--ssa73l 14:20:15 Stack Trace: 14:20:15 at System.Globalization.Tests.IdnMappingIdnaConformanceTests.GetUnicode_Succes() 14:20:15 System.Globalization.Tests.IdnMappingIdnaConformanceTests.GetAscii_Invalid [FAIL] 14:20:15 Assert.Throws() Failure 14:20:15 Expected: typeof(System.ArgumentException) 14:20:15 Actual: (No exception was thrown) 14:20:15 Stack Trace: 14:20:15 at System.Globalization.Tests.IdnMappingIdnaConformanceTests.GetAscii_Invalid() 14:20:18 System.Globalization.Tests.StringNormalizationAllTests.Normalize [FAIL] 14:20:18 '\x0068' is not matched with the normalized form '\x2095 with ? normalization 14:20:18 Expected: True 14:20:18 Actual: False 14:20:18 Stack Trace: 14:20:18 at System.Globalization.Tests.StringNormalizationAllTests.AssertEqualsForm(String c, String cForm) 14:20:18 at System.Globalization.Tests.StringNormalizationAllTests.VerifyConformanceInvariant(NormalizationForm normForm, String c1, String c2, String c3, String c4, String c5) 14:20:18 at System.Globalization.Tests.StringNormalizationAllTests.Normalize() ``` " +7089 area-System.Net Distinguish raw IPv4 from IPv6 in unix Ping implementation Some systems enable raw sockets to be opened for ICMP but not ICMPv6, but our current test in Ping for whether to open a raw socket directly is based only on ICMP, which then causes run-time failures when an IPv6 address is used. This commit augments the current check to distinguish between the two. cc: @mellinoe, @ericeil Fixes #7064 +7091 area-System.IO System.IO.UnixFileSystem.MoveFile throwing `Access to the path is denied.` in Docker on Mac I created a docker image, so this should be easy to create, but the docker host needs to be OS X. When the docker host is Linux, this error does not occur, which leads me to believe it is something wrong with [System.IO.UnixFileSystem.MoveFile](https://github.com/dotnet/corefx/blob/master/src/System.IO.FileSystem/src/System/IO/UnixFileSystem.cs). It is being called from the latest `dotnet` 1.0.0-dev-001806 executable [from here I believe](https://github.com/dotnet/cli/blob/rel/1.0.0/src/dotnet/commands/dotnet-compile-fsc/Program.cs). cc @enricosada Steps to reproduce on Mac OS X: ``` git clone https://github.com/ctaggart/visualfsharp-docker.git cd visualfsharp-docker docker run --rm -ti -v $PWD/template:/root/template ctaggart/visualfsharp:1.0.0-alpha-160318 cd template ./build.sh ``` It will fail with: ``` Unhandled Exception: System.UnauthorizedAccessException: Access to the path is denied. at System.IO.UnixFileSystem.MoveFile(String sourceFullPath, String destFullPath) at Microsoft.DotNet.Tools.Compiler.Fsc.CompileFscCommand.Run(Stringrgs) at Microsoft.DotNet.Cli.Program.ProcessArgs(Stringrgs) at Microsoft.DotNet.Cli.Program.Main(Stringrgs) /usr/share/dotnet/bin/dotnet compile-fsc @/root/template/obj/Debug/dnxcore50/dotnet-compile.rsp returned Exit Code 134 Compilation failed. ``` The compilation actually succeeds and then `dotnet` tries to move the files because `fsc` didn't used to support compiling executables with a `dll` extension like `dotnet` wants. That hack can probably be removed, but I think there is still a bug dealing with `MoveFile`. +7095 area-System.Net Dispose of X509Certificate used in WinHttpHandler server callback cc: @davidsh, @bartonjs +7096 area-Infrastructure The plugin hasn't been performed correctly: Problem on deletion failures in CI tests "@mmitche, I've seen this error now several times in the last 24 hours. All tests pass, but then at the very end of processing the xunit results, we get an error ""The plugin hasn't been performed correctly: Problem on deletion"", e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst_prtest/2140/console ``` 06:33:54 All tests passed. 06:34:11 [xUnit] [INFO] - Starting to record. 06:34:11 [xUnit] [INFO] - Processing xUnit.Net-v2 (default) 06:34:16 [xUnit] [INFO] - [xUnit.Net-v2 (default)] - 143 test report file(s) were found with the pattern '**/testResults.xml' relative to '/Users/dotnet-bot/j/workspace/dotnet_corefx/osx_release_tst_prtest' for the testing framework 'xUnit.Net-v2 (default)'. 06:34:16 [xUnit] [INFO] - Converting '/Users/dotnet-bot/j/workspace/dotnet_corefx/osx_release_tst_prtest/bin/tests/OSX.AnyCPU.Release/Common.Tests/dnxcore50/testResults.xml' . ... 06:44:24 [xUnit] [ERROR] - The plugin hasn't been performed correctly: Problem on deletion 06:44:24 Build step 'Publish xUnit test result report' changed build result to FAILURE 06:44:24 [BFA] Scanning build for known causes... 06:44:25 .[BFA] Found failure cause(s): 06:44:26 [BFA] There are errors when processing test results from category Test 06:44:26 [BFA] Done. 1s 06:44:26 [WS-CLEANUP] Deleting project workspace...[WS-CLEANUP] done 06:44:26 Finished: FAILURE ``` " +7097 area-System.Net Fix NegotiateStream_EchoServer_ClientWriteRead_Successive_Async_Success test Two issues: 1. It's calling ReadAsync and expecting that all bytes requested will be read, even though it's valid for ReadAsync to return fewer than the number requested. 2. It's expecting ContinueWith to automatically unwrap the inner task, and as a result it's not actually waiting for the second write or the second read to complete. This is causing many of our outer loop Unix runs to fail. Fixes https://github.com/dotnet/corefx/issues/7063 cc: @kapilash, @ericeil +7103 area-System.Net Port to RC2: Fix NegotiateStream_EchoServer_ClientWriteRead_Successive_Async_Success test #7097 +7104 area-Infrastructure Outerloop OSX fails with nuget package restore "``` 20:27:39 [20:32:06.64] Restoring all packages... 20:27:58 EXEC : error : Could not find file '/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/tempHome/.local/share/NuGet/v3-cache/0b99e17097bea891c4215989667b88d90c9f7540$_F_dotnet-core_api_v3_index.json/nupkg_runtime.any.System.IO.4.1.0-rc3-23918.dat'. [/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj] 20:27:58 /Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/build.proj(60,5): error MSB3073: The command """"/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/Tools/dotnetcli/bin/dotnet"" restore --packages ""/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/packages"" --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://www.nuget.org/api/v2/ ""/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/src"" ""/Users/dotnet-bot/j/workspace/dotnet_corefx/outerloop_osx_debug/pkg"""" exited with code -1. 20:27:58 [20:32:19.04] Restoring all packages...Done. ``` " +7105 area-System.Diagnostics ProcessTests.TestExitTime failed on OSX http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst_prtest/2237/console ``` 11:35:29 System.Diagnostics.Tests.ProcessTests.TestExitTime [FAIL] 11:35:29 Assert+WrapperXunitException : File path: d:\j\workspace\osx_debug_bld---2f4069d6\src\System.Diagnostics.Process\tests\ProcessTests.cs. Line: 164 11:35:29 ---- Assert.True() Failure 11:35:29 Expected: True 11:35:29 Actual: False 11:35:29 Stack Trace: 11:35:29 at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) 11:35:29 at Assert.True(Boolean condition, String userMessage, String path, Int32 line) 11:35:29 at System.Diagnostics.Tests.ProcessTests.TestExitTime() 11:35:29 ----- Inner Stack Trace ----- 11:35:29 at Assert.True(Boolean condition, String userMessage, String path, Int32 line) ``` +7112 area-System.Net Improve UDP test reliability Harden the UDP Sockets tests against packet loss. Whenever we expect to receive a UDP packet, we'll send 10 packets; hopefully this will reduce the failure rate in these tests. There are three remaining tests that are a little trickier to harden; I've marked these with TODOs, and will address them separately. Fixes most of #5185 @stephentoub @cipop @davidsh +7115 area-System.ComponentModel Enable attributes in Member/PropertyDescriptor This exposes method implementations that use the new attributes in System.ComponentModel.Primitives. Once the reference assemblies for that are created, commit c4f2db0 can be reverted, but for now, project-to-project reference will allow the TypeDescriptor assembly to access the new attributes. +7119 area-Serialization Improve serialization performance tests - Refactor all serialization performance tests to remove duplicated code. Adding more perf tests for all serializers is also more straightforward. Update namespace so the tests show up properly in reports. - Add a flag in test project to enable running tests without project references, which helps us run against Desktop facades for comparison purpose - Add performance tests for Json.Net for comparison purpose cc: @SGuyGe @shmao @zhenlan +7121 area-System.Xml Create all emitted types at once after emit phase finishes This change is a prerequisite to moving Xml serialization over to metadata/pe writer from System.Reflection.Metadata. Types being emitted can't be loaded until the entire assembly is emitted. +7123 area-System.Xml Xml serializer: Custom Reflection, Reflection.Emit [Work in progress] An experimental PR. +7125 area-System.Reflection Several MetadataReaderTests failing with NullReferenceException on OSX http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_osx_debug/49/consoleFull ``` 12:42:12 System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateMethodImplTable [FAIL] 12:42:12 System.TypeInitializationException : The type initializer for 'System.Reflection.Metadata.Tests.Interop' threw an exception. 12:42:12 ---- System.NullReferenceException : Object reference not set to an instance of an object. 12:42:12 Stack Trace: 12:42:12 at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateMethodImplTable() 12:42:12 ----- Inner Stack Trace ----- 12:42:12 at System.Reflection.Metadata.Tests.ResourceHelper.GetResource(String name) 12:42:12 at System.Reflection.Metadata.Tests.Interop..cctor() 12:42:12 System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateSignature [FAIL] 12:42:12 System.TypeInitializationException : The type initializer for 'System.Reflection.Metadata.Tests.Interop' threw an exception. 12:42:12 ---- System.NullReferenceException : Object reference not set to an instance of an object. 12:42:12 Stack Trace: 12:42:12 at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateSignature() 12:42:12 ----- Inner Stack Trace ----- 12:42:12 at System.Reflection.Metadata.Tests.ResourceHelper.GetResource(String name) 12:42:12 at System.Reflection.Metadata.Tests.Interop..cctor() 12:42:12 System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateInterfaceImplTable [FAIL] 12:42:12 System.TypeInitializationException : The type initializer for 'System.Reflection.Metadata.Tests.Interop' threw an exception. 12:42:12 ---- System.NullReferenceException : Object reference not set to an instance of an object. 12:42:12 Stack Trace: 12:42:12 at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateInterfaceImplTable() 12:42:12 ----- Inner Stack Trace ----- 12:42:12 at System.Reflection.Metadata.Tests.ResourceHelper.GetResource(String name) 12:42:12 at System.Reflection.Metadata.Tests.Interop..cctor() 12:42:12 System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateFieldLayoutTable [FAIL] 12:42:12 System.TypeInitializationException : The type initializer for 'System.Reflection.Metadata.Tests.Interop' threw an exception. 12:42:12 ---- System.NullReferenceException : Object reference not set to an instance of an object. 12:42:12 Stack Trace: 12:42:12 at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateFieldLayoutTable() 12:42:12 ----- Inner Stack Trace ----- 12:42:12 at System.Reflection.Metadata.Tests.ResourceHelper.GetResource(String name) 12:42:12 at System.Reflection.Metadata.Tests.Interop..cctor() 12:42:12 System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateCustomAttribute [FAIL] 12:42:12 System.TypeInitializationException : The type initializer for 'System.Reflection.Metadata.Tests.Interop' threw an exception. 12:42:12 ---- System.NullReferenceException : Object reference not set to an instance of an object. 12:42:12 Stack Trace: 12:42:12 at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateCustomAttribute() 12:42:12 ----- Inner Stack Trace ----- 12:42:12 at System.Reflection.Metadata.Tests.ResourceHelper.GetResource(String name) 12:42:12 at System.Reflection.Metadata.Tests.Interop..cctor() 12:42:12 System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateFieldMarshal [FAIL] 12:42:12 System.TypeInitializationException : The type initializer for 'System.Reflection.Metadata.Tests.Interop' threw an exception. 12:42:12 ---- System.NullReferenceException : Object reference not set to an instance of an object. 12:42:12 Stack Trace: 12:42:12 at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateFieldMarshal() 12:42:12 ----- Inner Stack Trace ----- 12:42:12 at System.Reflection.Metadata.Tests.ResourceHelper.GetResource(String name) 12:42:12 at System.Reflection.Metadata.Tests.Interop..cctor() 12:42:12 System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateClassLayoutTable [FAIL] 12:42:12 System.TypeInitializationException : The type initializer for 'System.Reflection.Metadata.Tests.Interop' threw an exception. 12:42:12 ---- System.NullReferenceException : Object reference not set to an instance of an object. 12:42:12 Stack Trace: 12:42:12 at System.Reflection.Metadata.Tests.MetadataReaderTests.ValidateClassLayoutTable() 12:42:12 ----- Inner Stack Trace ----- 12:42:12 at System.Reflection.Metadata.Tests.ResourceHelper.GetResource(String name) 12:42:12 at System.Reflection.Metadata.Tests.Interop..cctor() 12:42:12 Finished: System.Reflection.Metadata.Tests 12:42:12 12:42:12 === TEST EXECUTION SUMMARY === 12:42:12 System.Reflection.Metadata.Tests Total: 153, Errors: 0, Failed: 7, Skipped: 0, Time: 0.512s ``` +7126 area-System.Text 96 System.Text.Encodings.Web.Tests failing in outerloop on OSX and Ubuntu14.04 e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_osx_release/46/consoleText http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_osx_debug/49/consoleText Mostly due to NullReferenceExceptions, e.g. ``` Microsoft.Framework.WebEncoders.UnicodeEncoderBaseTests.Encode_NullInput_ReturnsNull [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Text.Unicode.UnicodeHelpers.CreateDefinedCharacterBitmap() at System.Text.Internal.AllowedCharactersBitmap.ForbidUndefinedCharacters() at Microsoft.Framework.WebEncoders.UnicodeEncoderBaseTests.Encode_NullInput_ReturnsNull() ``` The pages take a while to load, in part due to one of the tests incurring 65K NullReferenceExceptions, each of which is output in the log. +7127 area-System.Security New crypto API "The current cryptography APIs are badly designed. They provide neither authenticated encryption nor the current best-practice algorithms. According to ""Cryptography in the Web: The Case of Cryptographic Design Flaws in ASP.NET"", > Unauthenticated encryption should be considered harmful. > This is not just a theoretical problem; rather, unauthenti- > cated encryption has repeatedly led to devastating attacks > against real systems. Any cryptographic API should use > authenticated encryption whenever its users want to encrypt > data. The development and popularization of high-level > cryptographic toolkits that include authenticated encryption > such as Keyczar [25], Cryptlib [26], and NaCl [27] is > the first step to providing secure cryptographic software > libraries to the general public. The next step might be the > integration of these cryptographic toolkits into mainstream > web development frameworks. To solve this problem, two steps are required: 1. The existing API should be obsoleted. It uses CBC mode, which is unnecessarily slow, and does not provide authenticated encryption. 2. New, high-level APIs should be provided. A good choice would start with bindings to [libsodium](https://download.libsodium.org/doc/), which provides a high-level C API. Alternatively, similar high-level APIs should be provided. Here is my personal list of algorithms by category. It is based on various sources ([libsodium](https://download.libsodium.org/doc/), CAESAR, TLS), but I am not a cryptographer, so it needs review before it is actually used as the basis for implementation. - Authenticated encryption with associated data: - ChaCha20-Poly1305 - XChaCha20-Poly1305 or XSalsa20-Poly1305 - AES-GCM but possibly only on platforms that have hardware acceleration – it is vulnerable to side channel attacks otherwise. - The CAESAR winner, once that is decided - Nonce-misuse-resistant authenticated encryption - HS1-SIV - Public key cryptography - Ed25519 signatures - Curve25519 key exchange - Deterministic ECDSA signatures and ECDH key exchange, for backwards compatibility. Must use an implementation that is resistant to side-channel attacks. - Possibly RSA but only for backwards compatibility. Should use best known padding: RSA-PSS and RSA-OAEP - Hashing - Blake2b is preferred: very fast & immune to length extension. All options should be exposed, including key and personalization. - SHA2 (both standalone and HMAC) in 256- and 512- bit versions for backwards compatibility - Password hashing and password-based key derivation: - Argon2 - Non-password-based key derivation - Blake2b " +7129 area-System.Security API for manipulating certificates Will you plan to add the ability to create self-signed certificates, create a certificate signing requests - CSR, sign that CSR, and so on? +7131 area-System.Net Merge with master +7134 area-System.Net Fix UrlEncodeToBytes returning entire rather than partial array Port fix from .NET Framework. Fixes #6947 cc: @davidsh, @jamesqo +7140 area-System.Net Merge System.Net.Sockets.Legacy.Tests into System.Net.Sockets.Tests There is a lot of duplication between these two test collections, resulting in needing to make fixes in both places quite often. We should just merge these and eliminate any duplicate testing. +7141 area-Infrastructure Need to copy xunit.runner.utility.desktop.dll in order to run performance tests For some reasons, l have to copy xunit.runner.utility.desktop.dll to run the perf test on CoreClr. I have tried getting a new clone of corefx, do build.cmd and then run serialization performance tests, but I still see the complain that xunit.runner.utility.desktop.dll cannot be loaded. e.g. I ran: ``` msbuild src\System.Runtime.Serialization.Xml\tests\System.Runtime.Serialization.Xml.Tests.csproj /t:rebuildandtest /p:Performance=true /p:Configuration=Windows_Release ``` I saw this error: ``` Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'xunit.runner.utility.desktop, Version=2.1.0.3179, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c' or one of its dependencies. The system cannot f ind the file specified. at Microsoft.Xunit.Performance.ProgramCore.Run(String[] args) at Microsoft.Xunit.Performance.Program.Main(String[] args) ``` If I copy corefx\packages\Microsoft.DotNet.xunit.performance.runner.Windows\1.0.0-alpha-build0029\tools\xunit.runner.utility.desktop.dll to dnxcore50 directory and run the msbuild command again it works fine. I'm wondering if I'm missing anything here. +7146 area-Meta Allow a way to specify native shim dependencies for libs in build targets. **Repro:** Using build.sh without `TestWithLocalLibraries=true` will cause builds to fail, if the correct package version with the shim update is not used. Currently, we are copying all the native shim libs built locally to be used while running tests (when setting `TestWithLocalLibraries=true`). We need a way to just copy over just the required shims, so that, there is no need to keep updating the packages for every shim update. +7150 area-System.Net SendRecvPollSync_TcpListener_Socket failed on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/3854/consoleFull ``` 12:13:24 System.Net.Sockets.Tests.SendReceive.SendRecvPollSync_TcpListener_Socket(listenAt: 127.0.0.1, pollBeforeOperation: False) [FAIL] 12:13:24 System.AggregateException : One or more errors occurred. (Read poll after completion should have succeeded 12:13:24 Expected: True 12:13:24 Actual: False) 12:13:24 ---- Read poll after completion should have succeeded 12:13:24 Expected: True 12:13:24 Actual: False 12:13:24 Stack Trace: 12:13:24 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) 12:13:24 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) 12:13:24 d:\j\workspace\windows_nt_de---06b7984d\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs(506,0): at System.Net.Sockets.Tests.SendReceive.SendRecvPollSync_TcpListener_Socket(IPAddress listenAt, Boolean pollBeforeOperation) ``` +7151 area-System.ComponentModel NullableConverterTests failed in CI due to enumerating modified collection http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_tst_prtest/2190/consoleFull ``` 12:30:09 System.ComponentModel.Tests.NullableConverterTests.CanConvertTo_WithContext [FAIL] 12:30:09 System.TypeInitializationException : The type initializer for 'System.ComponentModel.Tests.NullableConverterTests' threw an exception. 12:30:09 ---- System.InvalidOperationException : Collection was modified; enumeration operation may not execute. 12:30:09 Stack Trace: 12:30:09 at System.ComponentModel.Tests.NullableConverterTests.CanConvertTo_WithContext() 12:30:09 ----- Inner Stack Trace ----- 12:30:09 at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) 12:30:09 at System.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext() 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.SearchIntrinsicTable(Type callingType) 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.GetConverter(Type type) 12:30:09 at System.ComponentModel.NullableConverter..ctor(Type type) 12:30:09 at System.ComponentModel.Tests.NullableConverterTests..cctor() 12:30:09 System.ComponentModel.Tests.NullableConverterTests.ConvertTo_WithContext [FAIL] 12:30:09 System.TypeInitializationException : The type initializer for 'System.ComponentModel.Tests.NullableConverterTests' threw an exception. 12:30:09 ---- System.InvalidOperationException : Collection was modified; enumeration operation may not execute. 12:30:09 Stack Trace: 12:30:09 at System.ComponentModel.Tests.NullableConverterTests.ConvertTo_WithContext() 12:30:09 ----- Inner Stack Trace ----- 12:30:09 at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) 12:30:09 at System.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext() 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.SearchIntrinsicTable(Type callingType) 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.GetConverter(Type type) 12:30:09 at System.ComponentModel.NullableConverter..ctor(Type type) 12:30:09 at System.ComponentModel.Tests.NullableConverterTests..cctor() 12:30:09 System.ComponentModel.Tests.NullableConverterTests.Get_UnderlyingTypeConverter [FAIL] 12:30:09 System.TypeInitializationException : The type initializer for 'System.ComponentModel.Tests.NullableConverterTests' threw an exception. 12:30:09 ---- System.InvalidOperationException : Collection was modified; enumeration operation may not execute. 12:30:09 Stack Trace: 12:30:09 at System.ComponentModel.Tests.NullableConverterTests.Get_UnderlyingTypeConverter() 12:30:09 ----- Inner Stack Trace ----- 12:30:09 at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) 12:30:09 at System.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext() 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.SearchIntrinsicTable(Type callingType) 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.GetConverter(Type type) 12:30:09 at System.ComponentModel.NullableConverter..ctor(Type type) 12:30:09 at System.ComponentModel.Tests.NullableConverterTests..cctor() 12:30:09 System.ComponentModel.Tests.NullableConverterTests.Get_NullableType [FAIL] 12:30:09 System.TypeInitializationException : The type initializer for 'System.ComponentModel.Tests.NullableConverterTests' threw an exception. 12:30:09 ---- System.InvalidOperationException : Collection was modified; enumeration operation may not execute. 12:30:09 Stack Trace: 12:30:09 at System.ComponentModel.Tests.NullableConverterTests.Get_NullableType() 12:30:09 ----- Inner Stack Trace ----- 12:30:09 at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) 12:30:09 at System.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext() 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.SearchIntrinsicTable(Type callingType) 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.GetConverter(Type type) 12:30:09 at System.ComponentModel.NullableConverter..ctor(Type type) 12:30:09 at System.ComponentModel.Tests.NullableConverterTests..cctor() 12:30:09 System.ComponentModel.Tests.NullableConverterTests.ConvertFrom_WithContext [FAIL] 12:30:09 System.TypeInitializationException : The type initializer for 'System.ComponentModel.Tests.NullableConverterTests' threw an exception. 12:30:09 ---- System.InvalidOperationException : Collection was modified; enumeration operation may not execute. 12:30:09 Stack Trace: 12:30:09 at System.ComponentModel.Tests.NullableConverterTests.ConvertFrom_WithContext() 12:30:09 ----- Inner Stack Trace ----- 12:30:09 at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) 12:30:09 at System.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext() 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.SearchIntrinsicTable(Type callingType) 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.GetConverter(Type type) 12:30:09 at System.ComponentModel.NullableConverter..ctor(Type type) 12:30:09 at System.ComponentModel.Tests.NullableConverterTests..cctor() 12:30:09 System.ComponentModel.Tests.NullableConverterTests.CanConvertFrom_WithContext [FAIL] 12:30:09 System.TypeInitializationException : The type initializer for 'System.ComponentModel.Tests.NullableConverterTests' threw an exception. 12:30:09 ---- System.InvalidOperationException : Collection was modified; enumeration operation may not execute. 12:30:09 Stack Trace: 12:30:09 at System.ComponentModel.Tests.NullableConverterTests.CanConvertFrom_WithContext() 12:30:09 ----- Inner Stack Trace ----- 12:30:09 at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) 12:30:09 at System.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext() 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.SearchIntrinsicTable(Type callingType) 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.GetConverter(Type type) 12:30:09 at System.ComponentModel.NullableConverter..ctor(Type type) 12:30:09 at System.ComponentModel.Tests.NullableConverterTests..cctor() 12:30:09 System.ComponentModel.Tests.NullableConverterTests.Get_UnderlyingType [FAIL] 12:30:09 System.TypeInitializationException : The type initializer for 'System.ComponentModel.Tests.NullableConverterTests' threw an exception. 12:30:09 ---- System.InvalidOperationException : Collection was modified; enumeration operation may not execute. 12:30:09 Stack Trace: 12:30:09 at System.ComponentModel.Tests.NullableConverterTests.Get_UnderlyingType() 12:30:09 ----- Inner Stack Trace ----- 12:30:09 at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) 12:30:09 at System.Collections.Generic.Dictionary`2.KeyCollection.Enumerator.MoveNext() 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.SearchIntrinsicTable(Type callingType) 12:30:09 at System.ComponentModel.ReflectTypeDescriptionProvider.GetConverter(Type type) 12:30:09 at System.ComponentModel.NullableConverter..ctor(Type type) 12:30:09 at System.ComponentModel.Tests.NullableConverterTests..cctor() ``` +7154 area-System.Net Implicit windows or UNC uris doesn't parse query or fragment "## Reproduce ### Implicit windows file ``` Uri uri = new Uri(""C:/path?query#fragment""); uri.AbsolutePath; // ""C:/path%3Fquery%23fragment"" uri.Query; // """" Uri.Fragment; // """" ``` ### Explicit windows file ``` Uri uri = new Uri(""file:///C:/path?query#fragment""); uri.AbsolutePath; // ""C:/path"" uri.Query; // ""?query"" Uri.Fragment; // ""#fragment"" ``` ### Implicit UNC file ``` Uri uri = new Uri(@""\\host\path?query#fragment""); uri.AbsolutePath; // ""/path%3Fquery%23fragment"" uri.Query; // """" Uri.Fragment; // """" ``` ## Explicit UNC file ``` Uri uri = new Uri(@""file://\\host/path?query#fragment""); uri.AbsolutePath; // ""/path"" uri.Query; // ""?query"" Uri.Fragment; // ""#fragment"" ``` ## Problem description - Clearly, there is an inconsistency between parsing of implicit and explicit windows files. - The query and fragment are escaped in an implicit file, so are not parsed, unlike in explicit files ## Solution - This may be by design, but I don't see any mention of this in the MSDN docs. - Furthermore, it seems that this is a bug, as there certainly are many use cases for creating implicit Uris. This may actually deter the impetus for fixing, as this breaking change affects many consumers. - The solution, a breaking change, would be to correctly the query and fragment of implicit files in the same manner as explicit files. /cc @davidsh (sorry that I found another breaking change bug!) " +7155 area-System.Runtime TestCtor_CharPtr failing on Unix sporadically "This test has started failing randomly in the past day. I've seen it now on both CentOS and OpenSUSE. e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/centos7.1_debug_tst/999/console ``` 12:19:35 StringTests.TestCtor_CharPtr(valueArray: ['a', 'b', 'c', 'd', 'e', ...], expected: ""abcdefgh"") [FAIL] 12:19:35 Assert.Equal() Failure 12:19:35 ↓ (pos 8) 12:19:35 Expected: abcdefgh 12:19:35 Actual: abcdefgh 12:19:35 ↑ (pos 8) 12:19:35 Stack Trace: 12:19:35 at StringTests.TestCtor_CharPtr(Char[] valueArray, String expected) ``` https://github.com/dotnet/corefx/blob/master/src/System.Runtime/tests/System/String.cs#L24 " +7165 area-Serialization Improve DataContractJsonSerializer performance for dictionary In DCJS code path to serialize/de-serialize dictionary, there is one place where we always create new data contract for key-value type, while we can leverage on the data contract cache instead. This results in significant performance differences between CoreClr and Desktop. This change resolves that issue by getting data contract for key-value type with a method which utilizes the cache. With this change we'll see 10-20x perf improvement for dictionary scenarios. I'm confirming with NetNative to ensure no regression and will update. cc: @SGuyGe @zhenlan @shmao +7166 area-Infrastructure xUnit console runner crashes when writing invalid characters to the XML file "Separating this out from #7042 (where the bug was discovered) so we have a separate issue to keep track of it. Currently, the xUnit console runner will crash if certain invalid characters, like standalone surrogates, U+FFFE or U+FFFF are written to the XML file. For example, this would fail: ``` csharp public static IEnumerable Equal_TestData() { yield return new object[] { ""\uD800"", ""\uD800"" }; } [Theory] [MemberData(nameof(Equal_TestData))] public void Equal(string expected, string actual) { Assert.Equal(expected, actual); } ``` The fix is to alter [this](https://github.com/dotnet/buildtools/blob/37d1d57167d2d112b26f94135f3281fe2601ab65/src/common/XmlTestExecutionVisitor.cs#L269) method of `XmlTestExecutionVisitor` in the buildtools repo to handle these invalid chars, in addition to C0 controls. See the fix I've made upstream here: xunit/xunit#804 I'll be submitting a PR shortly to buildtools to fix this. " +7169 area-System.Linq Expression.Convert() incorrect in interpreter with enum types. "Given an enum type `E`, a long-backed enumtype `El` and a value of type `E` called `e` then `Expression.Convert()` will be treated differently in the compiler and the interpreter. ``` C# // comparable numerical value to e on all Expression.Convert(Expression.Constant(e, typeof(E)), typeof(El)) // InvalidCastException in compiler. // comparable numerical value to e in interpreter Expression.Convert(Expression.Constant(e, typeof(object)), typeof(El)) Expression.Convert(Expression.Constant(e, typeof(Enum)), typeof(El)) // InvalidCastException in compiler. // ArgumentException in interpreter. Expression.Convert(Expression.Constant(""hello""), typeof(El)) ``` Aside from the compiler winning on the grounds of precedence, it would appear to be correct on each count here, with the `ArgumentException` being plainly wrong. There is a bit of a risk to fixing the second case, as it could cause a throw in working code, though it's perhaps better to nip it in the bud. " +7171 area-System.Net Add HttpClientHandler tests for server certificates Based in part on the ones for WinHttpHandler. Right now these tests are only included for Unix. cc: @davidsh, @bartonjs +7172 area-System.Xml XElement Namespace Handling "I found a problem with the way XElement handles namespaces. If You look at the following code (executed with .Net Core 1.0.0-rc2-23811): ``` C# var x1 = new XElement(""{http://example.com}root""); Console.WriteLine(x1); var x2 = XElement.Parse(x1.ToString()); Console.WriteLine(x2); Console.WriteLine($""Attributes of x1: '{string.Join("", "", x1.Attributes())}'""); Console.WriteLine($""Attributes of x2: '{string.Join("", "", x2.Attributes())}'""); ``` The output is as follows: ``` xml Attributes of x1: '' Attributes of x2: 'xmlns=""http://example.com""' ``` To me this behaviour seems strange / **inconsistent**, as one **cannot rely** that the xmnls attribute is represented as **xmlns attribute in the memory model**. Some Frameworks (e.g. Json.NET) however require the xmlns attribute to exist in the memory model, which leads to strange results. My suggestion is: - Either always add the xmlns attribute when using the syntax I wrote above automatically. - Or never add the xmnls attribute (disallow adding it in the api) - also not during parsing xml, but make it implicit (accessible via Name.Namespace) So basically keep the Name.NamespaceName and the xmnls attribute in sync. " +7175 area-System.Runtime API Proposal: Support operators * / etc on type TimeSpan "## Background TimeSpan represents a time interval, which makes it a common candidate for ""mathematical"" processing, such as taking a 1-hour interval, and divide it by 2, resulting a 0.5-hour interval. Currently, the TimeSpan type support only a limited subset of operators (+ and -), and only with a TimeSpan operand. ## Proposed API - Approved Approved in * https://github.com/dotnet/corefx/issues/7175#issuecomment-262323805 * https://github.com/dotnet/corefx/issues/7175#issuecomment-274889934 ```C# namespace System { public struct TimeSpan { public static System.TimeSpan operator *(TimeSpan timeSpan, double factor); public static System.TimeSpan operator /(TimeSpan timeSpan, double divisor); public static TimeSpan operator *(double factor, TimeSpan timeSpan); public static double operator /(TimeSpan t1, TimeSpan t2); } } ``` **Motivation:** The extra 2 APIs proposal are mainly for supporting the commutative * and / operation (basically adding the same operation with flipped parameters order) and support / with time span. ## Naïve implementation ``` csharp namespace System { public struct TimeSpan { public static System.TimeSpan operator *(TimeSpan timeSpan, double factor) { return TimeSpan.FromTicks(timeSpan.Ticks * factor); } public static System.TimeSpan operator /(TimeSpan timeSpan, double divisor); { return TimeSpan.FromTicks(timeSpan.Ticks / divisor); } } } ``` " +7184 area-System.Net Split _queueLock into multiple locks #6838 introduced a new issue; with a single lock, it was impossible to have a Send proceed concurrently with a Receive, which should work. This caused a [hang in the .NET CLI tests](https://github.com/dotnet/cli/pull/1990#issuecomment-200500819). This change splits the lock into two, plus adds a third lock to cover event registration. (This used to be covered by _queueLock as well, but cannot be covered by the two new locks without lock ordering issues). This is admittedly a bit of a mess; I'll clean this up as part of #6912. Will add additional testing for this case separately, but we need to get this in ASAP to unblock the CLI. @stephentoub @eerhardt +7185 area-System.Net Fix WinHttpHandler session handle initialization "A test running on Windows 7 was doing multiple parallel requests using the same HttpClient but throwing an unexpected winHTTP error. The problem only occurred on Windows 7 because the proxy initialization code in WinHttpHandler is different for that platform. In general, there is only one session handle created per handler and it is shared with multiple requests. The ""init once"" logic was faulty because it was setting the `_sessionHandle` field too early before everything was init'd. In addition, this exposed another bug where the session handle options were repeatedly set for each request even though they should only have been set once. Fixed up the EnsureSessionHandleExists method to do the proper initialization. Also added more tracing. Fixes #7085 " +7187 area-System.IO FileInfo.Length on symbolic links should return the size of the target of the link. "FileInfo.Length on a symbolic link in Windows returns 0, not the length of the file referred to by the link. For a symbolic link, Windows’ FindFirstFile returns 0 bytes as the length. This may also be true with GetFileAttributesEx. So a pattern like this prints out 0 for the length of a file that happens to be a symbolic link: ``` DirectoryInfo dir = new DirectoryInfo("".""); foreach(var file in dir.GetFiles()) { Console.WriteLine(""File: {0} Size: {1}"", file.Name, file.Length); } ``` Fixing this will require opening the file then getting the length, which you can do with FileStream. Jeremy Kuhne points out it's best if we open then handle without requesting read or write permission (ie calling CreateFile with the right parameters). If you look at GetFileSizeEx, it's clear you need to specify FILE_READ_ATTRIBUTES when calling CreateFile (and we should use some appropriate sharing mode, like allowing reading and deleting. Maybe writing too - yes there's a race but for monotonically increasing log files the answer is not useless). https://msdn.microsoft.com/en-us/library/windows/desktop/aa364957(v=vs.85).aspx Repro by creating file.txt, then running ""mklink link.txt file.txt"" from an admin command prompt. Then use FileInfo.Length on link.txt. " +7189 area-System.ComponentModel Initial TypeDescriptor implementation This is an initial buildable implementation of TypeDescriptor. Some code remains behind feature flags. Several tests must be skipped because ReflectTypeDescriptionProvider is implemented with stubs. cc @twsouthwick +7191 area-Infrastructure [April 21, 2016] Add Ubuntu 16.04 LTS (Xenial Xerusis) to CI and the RID graph Ubuntu 16.04 LTS, codenamed Xenial Xerusis is set for release on April 21, 2016. Add 16.04LTS to the RID graph and replace 15.10 in Jenkins with 16.04LTS. https://wiki.ubuntu.com/Releases Related item tracking Fedora 23: https://github.com/dotnet/corefx/issues/5990 +7193 area-System.Security WIF API is confusing when implementing CustomIdentity "I found implementing a CustomIdentity to be very confusing, and there's alot of things about the API that feel very ""spin in your chair three times and clap your hands and it'll work"". - IsAuthenticated used to be the premier way to signal to the framework that the user is successfully authenticated. This not sufficient, and is fact ignored by the framework which instead checks to see if AuthenticationType is set. - IIdentity has only three properties, one of which being IsAuthenticated. Even if you are unfamiliar with old approaches of implementing CustomIdentities, the first thing you would do is look at the default ClaimsIdentity and see what interfaces does it implement. IIdentity is the only one. So naturally you would conclude that your custom identity must simply implement this interface. This is not sufficient. - No interface describes the additional requirements needed to be a successfully functioning custom identity. - You must magically know that you must inherit from ClaimsIdentity - When using only a ClaimsIdentity directly, you can successfully authenticate the user. The framework automatically creates the necessary token so long as AuthenticationType is set. However, a custom identity implementing ClaimsIdentity for some reason does not get the same benefit from the framework. Having IsAuthenticated==true and AuthenticationType set means nothing to the framework if you are instead inheriting from ClaimsIdentity. As soon as you derive from ClaimsIdentity, you then have to set the token yourself. - Returning a principal from the ClaimsAuthenticationManager leads one to the think the framework will then pick that up and use that as the principal if IsAuthenticated==true. In fact, as demonstrate in the below, many other steps are needed to get the principal and identity to ""stick"". Why doesn't this method just have a void return type if it isn't going to respect the return? - If an Identity with IsAuthenticated==true and no AuthenticationType==null means the user is interpreted as not authenticated, then this should be an exception. Clearly if an identity is returning true for IsAuthenticated, the indication is the user should be authenticated. If you are going to have an obscure nuance that AuthenticationType must also be set, then an exception should be thrown so developers are not dealing with what is essentially a silent error as result of them failing to set the AuthenticationType. Really this type of lock step should be avoided when trying to represent a single concept in multiple properties. You're trying to represent the fact that a user is successfully authenticated, and if some other required information is missing to satisfy that discrete value, then throw an exception. - If IsAuthenticated==true is ignored for types which implement IIDentity, but are not a ClaimsIdentity then this should again be an exception. If you're going to let my IIdentity interface return an AuthenticationType and IsAuthenticated==true, and then completely ignore the information I've exposed through the one and only interface that is used by the Identity class hierarchy, then throw an exception that makes it clear that identities not inheriting ClaimsIdentity are not supported. -Other aspects of the framework require specific claims be present. There's no compile/design time safety or other measures to verify my implementation is correct until I stumble upon them later. AntiForgeryToken is an example that you will not reallize requires a specific claim until you stumble onto a page with it on there. I do not know what other things I will stumble upon that will bite me because it is a dirty stringly type dependency on a specifically named claim. Ideally these requirements should be represented as properties on an interface. If you so choose not to support the feature, you can opt not to implement the interface and suffer a lack of support for the feature. This allows you to compose interfaces into an identity that supports your needs. - Will I run into problems because my CustomIdentity does not implement all the many and varied signatures of the ClaimsIdentity construct? One would usually think no, but the fact that we're now doing things like requiring a specific concrete class, stringly typed claim values, and not communicating API requirements through interfaces means that I have to wonder if specific constructor signatures may be required by certain parts of the framework, and I will painfully discover later through a bug which is unlikely to throw an exception. - Will I run into problems that basically invalidate my entire approach down the road? - Now that I'm setting the token myself, is there potential for problems with stepping on the framework's own code for handling the token? - Do I need to do all the stuff to manage the sliding expiration of the token and all other related stuff? Will the framework still handle this for me? Not really looking for an answer, as much to point out the strangeness that I must take on setting the token when I'm still returning a derived ClaimsIdentity, which calls into question what else I must take on that was automatically handled by the framework. - This is one of those things where the combination of things to get it working doesn't really make any sense. One of my other developers figured out that the token needed to be set, and I was very doubtful of that. What is so different between returning a ClaimsIdentity and a derived custom ClaimsIdentity? That with the obscure nuances of what can break it, and the fact that I may find certain scenarios in the future that do not work with this crazy combination of settings. I am setting my expectation to have users complain of edge case scenarios where they have problems with authentication, and no amount of exception logging will help me identify the problem because clearly there's several scenarios where we are just silently failing to authenticate due to a failure to meet obscure requirements to set a certain property a certain way. So I can look forward to encountering these in the future and hunting through the reference source to try and guess at what obscure requirement I am missing that is causing certain users to have problems. Hopefully this doesn't sound to ranty. Here's the path I took. Actually the final combination of inheriting from a ClaimsIdentity AND setting the token was found by another developer. It actually involved a ~week of each of 3 developer's time before we found the right combination. Between all the identity factories, ApplicatonUser factories, UserStore's, and UserManager's(conceptually similar names that seem to represent the same purpose, but really server different role) we had alot to investigate. ``` public class KentorAuthenticationManager : ClaimsAuthenticationManager { public override ClaimsPrincipal Authenticate(string resourceName, ClaimsPrincipal incomingPrincipal) { // create our custom identity var customIdentity = new CustomIdentity(); customIdentity.IsAuthenticated = true; customIdentity.AuthenticationType = ""testtype""; customIdentity.Name = ""John Doe""; var newPrincipal = new ClaimsPrincipal(customIdentity); base.Authenticate("""", newPrincipal); HttpContext.Current.User = newPrincipal; System.Threading.Thread.CurrentPrincipal = newPrincipal; return newPrincipal; } } [Serializable] public class CustomIdentity : //System.Security.Claims.ClaimsIdentity, IIdentity, IIdentityContext { public CustomIdentity()//:base(""UnifiedEngagement"") { } public int UserId { get; set; } public string Name { get; set; } public string AuthenticationType { get; set; } public bool IsAuthenticated { get; set; } // other custom properties... } ``` The problem is the custom identity gets converted to a claims identity: [![enter image description here](http://i.stack.imgur.com/IFTzM.png)](http://i.stack.imgur.com/IFTzM.png) ## Generic Principal w/CustomIdentity If we use a GenericPrincipal, then within the CustomAuthenticationManager, the newPrincipal.Identity is my custom type: `var newPrincipal = new GenericPrincipal(customIdentity);` [![enter image description here](http://i.stack.imgur.com/h1VRa.png)](http://i.stack.imgur.com/h1VRa.png) [![enter image description here](http://i.stack.imgur.com/u3gCL.png)](http://i.stack.imgur.com/u3gCL.png) Looking good, until the roundtrip completes and accessing the current principal from anywhere else, it then shows a GenericIdentity with `IsAuthenticated==false`, which loses all the extra properties that were in my CustomIdentity: [![enter image description here](http://i.stack.imgur.com/igbYB.png)](http://i.stack.imgur.com/igbYB.png) Essentially it ignored the IsAuthenticated==true I set(I also set AuthenticationType since WIF depends on that to determine authentication). If I use a ClaimsIdentity, all I have to do is make sure it is instantiated with a AuthenticationType and it authenticates properly. ## GenericPrincipal w/CustomIdentity and setting SessionSecurityToken I shouldn't need to do this, because based on setting IsAuthenticated and the AuthenticationType, it should authenticate automatically and generate the token. So to force it to authenticate successfully, I explicitly set the session token. But my CustomIdentity is gone and is instead a ClaimsIdentity after the roundtrip, and so loses my custom properties(It does create claims representing the IIdentity properties for name, nameid, etc. but all other custom properties are lost): ``` var sessionSecurityToken = new SessionSecurityToken(newPrincipal, TimeSpan.FromHours(8)); FederatedAuthentication.SessionAuthenticationModule.WriteSessionTokenToCookie(sessionSecurityToken); ``` After roundtrip CustomIdentity is now a ClaimsIdentity: [![enter image description here](http://i.stack.imgur.com/GImlL.png)](http://i.stack.imgur.com/GImlL.png) ## Inheriting ClaimsIdentity If my CustomIdentity inherits from ClaimsIdentity: ``` [Serializable] public class CustomIdentity : System.Security.Claims.ClaimsIdentity, IIdentityContext { public CustomIdentity(IIdentity claimsIdentity) : base(claimsIdentity, null, ""TestAuthType"", null,null) { } //... ``` But I do **not** explicitly set SessionSecurityToken(no call to WriteSessionTokenToCookie), then it fails to authenticate and leaves me with a GenericIdentity with IsAuthenticated==false. ## Inheriting ClaimsIdentity w/setting SessionSecurityToken If I use the above identity that inherits from ClaimsIdentity **and** set SessionSecurityToken, then everything works fine. It was a long road to get here. 2 senior and 1 midlevel developer spent roughly a week each trying different variations. [![enter image description here](http://i.stack.imgur.com/FHavZ.png)](http://i.stack.imgur.com/FHavZ.png) ## Why do I not put custom info in claims? Note I have enough custom properties that I am not looking to stuff them in as claims. The recommendation I've seen on more than one occasion is that putting too much into claims is a poor design and can cause poor performance because they end up in the token. Additionally, some data is much easier to represent in a C# object model than within a flat list of claims. It is data specific to the user, minimal enough that the memory footprint in session is acceptable, and large enough that I wouldn't want it encrypted/decrypted and pushed across the wire: https://msdn.microsoft.com/en-us/library/azure/hh531494.aspx " +7196 area-System.Net Merge System.Net.Sockets.Legacy tests into System.Net.Sockets This reduces duplication in the Sockets tests, and reduces the innermost development loop for Sockets changes to a single test assembly. Fixes #7140. @CIPop, please have a look. +7198 area-System.Net Deadlock in ClientWebSocket when CancellationToken is cancelled during a call to ConnectAsync() In WinHttpWebSocket.ConnectAsync, there is a using block around the main implementation of the function which looks like this: ``` csharp using (CancellationTokenRegistration ctr = ThrowOrRegisterCancellation(cancellationToken)) ``` ThrowOrRegisterCancellation registers a callback which calls Abort() on the WinHttpWebSocket. The Abort() method immediately attempts to take a lock on `_operation.Lock`. Inside the using block of ConnectAsync, there are two inner blocks which take a lock on `_operation.Lock`. While in the second lock, if the CancellationToken is cancelled, a deadlock occurs. What happens is the callback is fired, which calls Abort() which then blocks waiting to obtain a lock on `_operation.Lock`. This lock can't be taken because ConnectAsync is holding the lock. At the end of the second lock block in ConnectAsync, a call to ctr.Dispose() is made. When calling Dispose() on a CancellationTokenRegistration, if the cancellation callback is currently in progress, it blocks waiting for the callback to complete. The callback won't complete because it's waiting for the lock to be released by ConnectAsync. ConnectAsync won't release the lock until the Dispose() call completes, which won't complete until the callback is complete. Here are the two deadlocked call stacks: ``` [HelperMethodFrame: 0000001d84e5e6b8] System.Threading.Thread.SleepInternal(Int32) System.Threading.Thread.Sleep(Int32) [f:\dd\ndp\clr\src\mscorlib\src\System\Threading\Thread.cs @ 708] System.Threading.SpinWait.SpinOnce() [f:\dd\ndp\clr\src\mscorlib\src\System\Threading\SpinWait.cs @ 147] System.Threading.CancellationTokenSource.WaitForCallbackToComplete(System.Threading.CancellationCallbackInfo) [f:\dd\ndp\clr\src\mscorlib\src\System\Threading\CancellationTokenSource.cs @ 890] System.Net.WebSockets.WinHttpWebSocket+d__18.MoveNext() ``` ``` [HelperMethodFrame_1OBJ: 0000001d8384e8d8] System.Threading.Monitor.Enter(System.Object) System.Net.WebSockets.WinHttpWebSocket.Abort() System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) [f:\dd\ndp\clr\src\mscorlib\src\System\Threading\ExecutionContext.cs @ 93] System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(Boolean) [f:\dd\ndp\clr\src\mscorlib\src\System\Threading\CancellationTokenSource.cs @ 785] System.Threading.CancellationTokenSource.TimerCallbackLogic(System.Object) [f:\dd\ndp\clr\src\mscorlib\src\System\Threading\CancellationTokenSource.cs @ 513] ``` This will use a lot of CPU as the code for waiting for the callback to complete looks like this: ``` csharp SpinWait sw = new SpinWait(); while (ExecutingCallback == callbackInfo) { sw.SpinOnce(); //spin as we assume callback execution is fast and that this situation is rare. } ``` +7201 area-System.Security Use BCrypt.dll for ephemeral symmetric operations The majority of tests failing in https://github.com/dotnet/corefx/issues/7086 are due to Windows 7 not having support for symmetric encryption through the Microsoft KSP (using NCrypt.dll). The guidance from the Windows Cryptography team is to use BCrypt when an ephemeral key is used, and only use NCrypt when a persisted key was explicitly requested. And that'll make Windows 7 have exactly the right support. +7203 area-System.Net Port to RC2: Fix WinHttpHandler session handle initialization #7185 +7204 area-System.Net How can I add System.Net.Sockets 4.1.0 to my project's reference? "Hello, I'm trying to port my project using System.Net.Sockets.TcpClient class. So I tried to add latest System.Net.Sockets using NuGet. However it fails. Please help. ### PROBLEM Adding System.Net.Sockets 4.1.0 fails with incompatible errors like this: ``` System.Net.Sockets 4.1.0-rc3-23923 is not compatible with UAP,Version=v10.0. Some packages are not compatible with UAP,Version=v10.0. System.Net.Sockets 4.1.0-rc3-23923 is not compatible with UAP,Version=v10.0 (win10-arm). Some packages are not compatible with UAP,Version=v10.0 (win10-arm). System.Net.Sockets 4.1.0-rc3-23923 is not compatible with UAP,Version=v10.0 (win10-arm-aot). Some packages are not compatible with UAP,Version=v10.0 (win10-arm-aot). System.Net.Sockets 4.1.0-rc3-23923 is not compatible with UAP,Version=v10.0 (win10-x86). Some packages are not compatible with UAP,Version=v10.0 (win10-x86). System.Net.Sockets 4.1.0-rc3-23923 is not compatible with UAP,Version=v10.0 (win10-x86-aot). Some packages are not compatible with UAP,Version=v10.0 (win10-x86-aot). System.Net.Sockets 4.1.0-rc3-23923 is not compatible with UAP,Version=v10.0 (win10-x64). Some packages are not compatible with UAP,Version=v10.0 (win10-x64). System.Net.Sockets 4.1.0-rc3-23923 is not compatible with UAP,Version=v10.0 (win10-x64-aot). Some packages are not compatible with UAP,Version=v10.0 (win10-x64-aot). ``` ### NOTES I could add System.Net.Sockets 4.0.0 successfully. But it doesn't include TcpClient class so I need 4.1.0. I guess it would be solved by tweaking project.json but I don't know where/how to tweak. Adding System.Net.Sockets still fails for a newly-created Universal Windows (10) Blank App. ### STEPS - Create new Blank App (Universal Windows) with Visual Studio 2015 Update 1 - Locate Tools->Options->NuGet Package Manager->Package Sources and add .NET Core package source (*1). - Right click References in Solution Explorer and select Manage NuGet Packages... - Select newly-added Package Source and find latest System.Net.Sockets(*2). Don't forget to check ""Include prerelease"" - Install latest System.Net.Sockets. It fails. Errors are logged in Output window. - Double-click project.json in Solution Explorer. Original project.json is as follows: ``` { ""dependencies"": { ""Microsoft.NETCore.UniversalWindowsPlatform"": ""5.0.0"" }, ""frameworks"": { ""uap10.0"": {} }, ""runtimes"": { ""win10-arm"": {}, ""win10-arm-aot"": {}, ""win10-x86"": {}, ""win10-x86-aot"": {}, ""win10-x64"": {}, ""win10-x64-aot"": {} } } ``` **Tweak a.** Change ""dependencies"": {""Microsoft.NETCore.UniversalWindowsPlatform"": ""5.0.0""} -> ""5.4.0"" => Try to add System.Net.Sockets again. Fails. **Tweak b.** Add ""dotnet5.4"": {}, into ""frameworks"": { ""uap10.0"": {} }, => Try to add System.Net.Sockets again. Fails. **Tweak c.** Delete ""uap10.0"": {} after adding ""dotnet5.4"": {} into ""frameworks"". => Try to add System.Net.Sockets again. Fails. ### REFERENCE Can't locate TcpClient and TcpListener from Socket.Net.Sockets #5939 *) This page says you have to switch platform to ""dotnet5.4"". (*1) https://dotnet.myget.org/F/dotnet-core/api/v3/index.json (*2) Currently the latest is 4.1.0-rc3-23923 " +7206 area-System.Diagnostics Install fails for Microsoft.Diagnostics.Tracing.EventSource Trying to use this with my PCL, nit sure what's wrong. It's not a beta version of event source. Restoring packages for 'Symbiotic.Core'. Restoring packages for F:\Dev\FrozenElephant\SymbioticORM\Symbiotic\Symbiotic.Core\project.json... Installing Microsoft.Diagnostics.Tracing.EventSource.Redist 1.1.28. Installing Microsoft.Diagnostics.Tracing.EventSource 1.1.28. Installing Microsoft.Diagnostics.Tracing.EventRegister 1.1.28. Microsoft.Diagnostics.Tracing.EventSource.Redist 1.1.28 is not compatible with .NETPlatform,Version=v5.0. Some packages are not compatible with .NETPlatform,Version=v5.0. All packages are compatible with .NETFramework,Version=v4.6. All packages are compatible with UAP,Version=v10.0. Microsoft.Diagnostics.Tracing.EventSource 1.1.28 is not compatible with DNXCore,Version=v5.0. Microsoft.Diagnostics.Tracing.EventSource.Redist 1.1.28 is not compatible with DNXCore,Version=v5.0. Some packages are not compatible with DNXCore,Version=v5.0. All packages are compatible with .NETFramework,Version=v4.6 (win-x86). All packages are compatible with .NETFramework,Version=v4.6 (win-x64). All packages are compatible with UAP,Version=v10.0 (win10-x86). All packages are compatible with UAP,Version=v10.0 (win10-x86-aot). All packages are compatible with UAP,Version=v10.0 (win10-x64). All packages are compatible with UAP,Version=v10.0 (win10-x64-aot). All packages are compatible with UAP,Version=v10.0 (win10-arm). All packages are compatible with UAP,Version=v10.0 (win10-arm-aot). Microsoft.Diagnostics.Tracing.EventSource 1.1.28 is not compatible with DNXCore,Version=v5.0 (win7-x86). Microsoft.Diagnostics.Tracing.EventSource.Redist 1.1.28 is not compatible with DNXCore,Version=v5.0 (win7-x86). Some packages are not compatible with DNXCore,Version=v5.0 (win7-x86). Microsoft.Diagnostics.Tracing.EventSource 1.1.28 is not compatible with DNXCore,Version=v5.0 (win7-x64). Microsoft.Diagnostics.Tracing.EventSource.Redist 1.1.28 is not compatible with DNXCore,Version=v5.0 (win7-x64). Some packages are not compatible with DNXCore,Version=v5.0 (win7-x64). Package restore failed for 'Symbiotic.Core'. Package restore failed. Rolling back package changes for 'Symbiotic.Core'. ========== Finished ========== +7208 area-System.Runtime string.Join as Concat(separator) extension method on IEnumerable "I find myself reverting string.Join into an extension method in every project I write. Like so: ``` C# public static string Concat(this IEnumerable values, string separator = """") => string.Join(separator, values); ``` it's considerably more flexible and enjoyable to use especially when chaining together with Linq to objects queries: ``` C# intList.Where(n => n > 50).OrderBy(n => n).Concat("", "") ``` as oppose to: ``` C# string.Join("", "", intList.Where(n => n > 50).OrderBy(n => n)) ``` So if I'm not the only one using this method this way, maybe we can add it to the corefx. **Note:** I named it `Concat` because there already exists a standard query operator called `Join`. The name is as much up for discussion as the feature itself. " +7209 area-System.Data Extract duplicated code This resolves https://github.com/dotnet/corefx/issues/5452 +7214 area-System.Net Need tests for full-duplex Sockets behavior #7184 fixes a problem we missed in the Sockets tests because we do not have tests which do concurrent sends _and_ receives on a single socket. This is a very common usage, and we should have test coverage for it. +7216 area-System.ComponentModel Use ReflectTypeDescriptor in TypeDescriptor @chlowell +7224 area-System.IO Seg faults on OSX in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_release_prtest/2884/ ``` ./run-test.sh: line 135: 85272 Segmentation fault: 11 ./corerun xunit.console.netcore.exe $testDllName -xml testResults.xml -notrait category=failing $OuterLoop -notrait category=$xunitOSCategory -notrait Benchmark=true error: One or more tests failed while running tests from 'System.IO.FileSystem.Watcher.Tests'. Exit code 139. ``` +7234 area-Infrastructure GetAsync_ResponseWithSetCookieHeaders_AllCookiesRead failed in CI See http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/ubuntu_release_tst_prtest/3294/consoleFull ``` 14:06:32 System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_ResponseWithSetCookieHeaders_AllCookiesRead(cookie1: [foo, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]) [FAIL] 14:06:32 Assert.Equal() Failure 14:06:32 Expected: 3 14:06:32 Actual: 0 14:06:32 Stack Trace: 14:06:33 at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__40.MoveNext() 14:06:33 --- End of stack trace from previous location where exception was thrown --- 14:06:33 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:06:33 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:06:33 --- End of stack trace from previous location where exception was thrown --- 14:06:33 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:06:33 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:06:33 --- End of stack trace from previous location where exception was thrown --- 14:06:33 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:06:33 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:06:43 System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_ResponseWithSetCookieHeaders_AllCookiesRead(cookie1: [foo, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]) [FAIL] 14:06:43 Assert.Equal() Failure 14:06:43 Expected: 3 14:06:43 Actual: 0 14:06:43 Stack Trace: 14:06:43 at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__40.MoveNext() 14:06:43 --- End of stack trace from previous location where exception was thrown --- 14:06:43 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:06:43 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:06:43 --- End of stack trace from previous location where exception was thrown --- 14:06:43 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:06:43 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:06:43 --- End of stack trace from previous location where exception was thrown --- 14:06:43 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:06:43 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:06:51 System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_ResponseWithSetCookieHeaders_AllCookiesRead(cookie1: [foo, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa]) [FAIL] 14:06:51 Assert.Equal() Failure 14:06:51 Expected: 3 14:06:51 Actual: 0 14:06:51 Stack Trace: 14:06:51 at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__40.MoveNext() 14:06:51 --- End of stack trace from previous location where exception was thrown --- 14:06:51 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:06:51 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:06:51 --- End of stack trace from previous location where exception was thrown --- 14:06:51 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:06:51 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:06:51 --- End of stack trace from previous location where exception was thrown --- 14:06:51 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:06:51 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +7235 area-System.Net Add assert for status code to cookies test This test failed once, and I expect it was just due to a network blip that caused the request to fail, but since we're not currently checking the http status code, I can't be sure. As such, I'm just adding another assert for the expected status code, and if this repros again, we'll know whether that's the issue. Closes https://github.com/dotnet/corefx/issues/7234 +7244 area-System.Threading TestSendAsync_DelayedConsume test failed in CI ``` 06:21:05 System.Threading.Tasks.Dataflow.Tests.DataflowBlockExtensionsTests.TestSendAsync_DelayedConsume [FAIL] 06:21:05 Assert.False() Failure 06:21:05 Expected: False 06:21:05 Actual: True 06:21:05 Stack Trace: 06:21:05 at System.Threading.Tasks.Dataflow.Tests.DataflowBlockExtensionsTests.d__28.MoveNext() 06:21:05 --- End of stack trace from previous location where exception was thrown --- 06:21:05 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 06:21:05 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 06:21:05 --- End of stack trace from previous location where exception was thrown --- 06:21:05 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 06:21:05 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 06:21:05 --- End of stack trace from previous location where exception was thrown --- 06:21:05 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 06:21:05 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +7248 area-System.Net System.Net.Http is missing RID for Unix build "Looks like this was regressed with https://github.com/dotnet/corefx/commit/be08afd9701053f5f9369762db58b87c8ca9559f which changed the library to build as ""Unix"" instead of ""Linux"" but didn't update the PackageTargetRuntime conditions in the CSProj. " +7249 area-System.Net Update PTR to Unix for System.Net.HTTP Addresses https://github.com/dotnet/corefx/issues/7248 Validated updated nuspec has runtimes/unix target path [System.Net.Http.nuspec.txt](https://github.com/dotnet/corefx/files/189789/System.Net.Http.nuspec.txt) /cc @ericstj +7252 area-System.Runtime AssemblyLoadContextTest tests failing on Unix in outerloop I assume this is the same problem as with https://github.com/dotnet/corefx/issues/7125 and is due to https://github.com/Microsoft/msbuild/issues/541, but unless we're going to pick up a new msbuild imminently, we should temporarily change this to avoid breaking the outerloop runs. cc: @mellinoe, @gkhanna79 ``` 03:17:12 System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadAssemblyByPath_ValidUserAssembly [FAIL] 03:17:12 System.IO.FileNotFoundException : Could not load the specified file. 03:17:12 Stack Trace: 03:17:12 at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName) 03:17:12 at System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadAssemblyByPath_ValidUserAssembly() 03:17:12 Finished: System.Runtime.Loader.Tests 03:17:12 03:17:12 === TEST EXECUTION SUMMARY === 03:17:12 System.Runtime.Loader.Tests Total: 10, Errors: 0, Failed: 3, Skipped: 0, Time: 0.265s 03:17:12 System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetLoadContextTest_ValidUserAssembly [FAIL] 03:17:12 System.IO.FileNotFoundException : Could not load the specified file. 03:17:12 Stack Trace: 03:17:12 at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName) 03:17:12 at System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetLoadContextTest_ValidUserAssembly() 03:17:12 System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadAssemblyByStream_ValidUserAssembly [FAIL] 03:17:12 System.IO.FileNotFoundException : Could not load the specified file. 03:17:12 Stack Trace: 03:17:12 at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName) 03:17:12 at System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadAssemblyByStream_ValidUserAssembly() ``` +7254 area-System.Net Shutting down a Socket should not set it to disconnected [Calling `Shutdown` on a `Socket` will cause it to become disconnected](https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs#L4212) which is incorrect. This can cause, for example, `TcpClient.GetStream` to fail on a half-open socket. +7261 area-Infrastructure Make builds deterministic We need to enable `/deterministic` flag for the compiler and work through any other tools that cause the builds to not be deterministic. See https://github.com/dotnet/roslyn/blob/master/build/scripts/test-determinism.ps1 for how Roslyn tests this. +7266 area-System.Net Lazily allocate ChannelBinding in CurlHandler This SafeHandle is only used by HttpContent-derived types that care about TransportContext, which is not a common case, and it's only used by the implementation when doing something custom with certificates and when there is request content. Lazily allocate it. Just as an example, before this change, it was being allocated during ~50 tests. After this change, it's allocated just once, in the test explicitly verifying the binding. cc: @ericeil, @kapilash, @davidsh +7268 area-System.Net Avoid creating CurlChannelBinding.ToString() description until needed Today CurlChannelBinding creates the result of ToString when the token is set into it. Getting the description of the binding is rare compared to setting a token into the binding, so just create the string when it's requested. Also a bit of miscellaneous cleanup in related code. cc: @bartonjs, @ericeil, @davidsh, @kapilash +7270 area-Meta Archlinux 7 Failed Test Results "``` Running tests in ./bin/tests/Linux.AnyCPU.Release//System.Reflection.Metadata.Tests/dnxcore50 ./corerun xunit.console.netcore.exe System.Reflection.Metadata.Tests.dll -xml testResults.xml -notrait category=failing -notrait category=outerloop -notrait category=nonlinuxtests -notrait Benchmark=true xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Xml.RW.RwFactory.Tests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.IO.FileSystem.DriveInfo.Tests Discovered: System.Xml.RW.RwFactory.Tests Info: System.Xml.RW.RwFactory.Tests has no tests to run Discovering: System.Reflection.Metadata.Tests Discovered: System.IO.FileSystem.DriveInfo.Tests Starting: System.IO.FileSystem.DriveInfo.Tests Discovered: System.Reflection.Metadata.Tests Starting: System.Reflection.Metadata.Tests System.IO.FileSystem.DriveInfoTests.DriveInfoUnixTests.PropertiesOfValidDrive [FAIL] Assert.Equal() Failure Expected: Fixed Actual: Unknown Stack Trace: at System.IO.FileSystem.DriveInfoTests.DriveInfoUnixTests.PropertiesOfValidDrive() Finished: System.IO.FileSystem.DriveInfo.Tests === TEST EXECUTION SUMMARY === System.IO.FileSystem.DriveInfo.Tests Total: 5, Errors: 0, Failed: 1, Skipped: 0, Time: 1.927s Finished: System.Reflection.Metadata.Tests === TEST EXECUTION SUMMARY === System.Reflection.Metadata.Tests Total: 153, Errors: 0, Failed: 0, Skipped: 0, Time: 1.704s error: One or more tests failed while running tests from 'System.IO.FileSystem.DriveInfo.Tests'. Exit code 1. ``` ``` Running tests in ./bin/tests/Linux.AnyCPU.Release//System.Runtime.Serialization.Json.Tests/dnxcore50 ./corerun xunit.console.netcore.exe System.Runtime.Serialization.Json.Tests.dll -xml testResults.xml -notrait category=failing -notrait category=outerloop -notrait category=nonlinuxtests -notrait Benchmark=true Starting: System.Runtime.Tests CharTests.TestToUpper [FAIL] Assert.Equal() Failure Expected: 0xabbd Actual: 'Ꮽ' Stack Trace: xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Runtime.Serialization.Json.Tests at CharTests.TestToUpper() CharTests.TestToUpperInvariant [FAIL] Assert.Equal() Failure Expected: 0xabbd Actual: 'Ꮽ' Stack Trace: at CharTests.TestToUpperInvariant() Discovered: System.Runtime.Serialization.Json.Tests Starting: System.Runtime.Serialization.Json.Tests Finished: System.Runtime.Tests === TEST EXECUTION SUMMARY === System.Runtime.Tests Total: 3786, Errors: 0, Failed: 2, Skipped: 0, Time: 8.102s error: One or more tests failed while running tests from 'System.Runtime.Tests'. Exit code 2. Finished: System.Runtime.Serialization.Json.Tests === TEST EXECUTION SUMMARY === System.Runtime.Serialization.Json.Tests Total: 110, Errors: 0, Failed: 0, Skipped: 0, Time: 6.415s System.Diagnostics.Tests.ProcessTests.TestGetProcesses [FAIL] System.IO.InvalidDataException : Found invalid data while decoding. Stack Trace: at System.IO.StringParser.ParseNextChar() at Interop.procfs.TryParseStatFile(String statFilePath, ParsedStat& result, ReusableTextReader reusableReader) at System.Diagnostics.ProcessManager.CreateProcessInfo(ParsedStat procFsStat, ReusableTextReader reusableReader) at System.Diagnostics.ProcessManager.CreateProcessInfo(Int32 pid, ReusableTextReader reusableReader) at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName) at System.Diagnostics.Process.GetProcesses(String machineName) at System.Diagnostics.Tests.ProcessTests.TestGetProcesses() Finished: System.Diagnostics.Process.Tests === TEST EXECUTION SUMMARY === System.Diagnostics.Process.Tests Total: 87, Errors: 0, Failed: 1, Skipped: 0, Time: 31.505s error: One or more tests failed while running tests from 'System.Diagnostics.Process.Tests'. Exit code 1. ``` ``` Running tests in ./bin/tests/Linux.AnyCPU.Release//System.Runtime.Serialization.Json.Tests/dnxcore50 ./corerun xunit.console.netcore.exe System.Runtime.Serialization.Json.Tests.dll -xml testResults.xml -notrait category=failing -notrait category=outerloop -notrait category=nonlinuxtests -notrait Benchmark=true Starting: System.Runtime.Tests CharTests.TestToUpper [FAIL] Assert.Equal() Failure Expected: 0xabbd Actual: 'Ꮽ' Stack Trace: xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Runtime.Serialization.Json.Tests at CharTests.TestToUpper() CharTests.TestToUpperInvariant [FAIL] Assert.Equal() Failure Expected: 0xabbd Actual: 'Ꮽ' Stack Trace: at CharTests.TestToUpperInvariant() Discovered: System.Runtime.Serialization.Json.Tests Starting: System.Runtime.Serialization.Json.Tests Finished: System.Runtime.Tests === TEST EXECUTION SUMMARY === System.Runtime.Tests Total: 3786, Errors: 0, Failed: 2, Skipped: 0, Time: 8.102s error: One or more tests failed while running tests from 'System.Runtime.Tests'. Exit code 2. Finished: System.Runtime.Serialization.Json.Tests === TEST EXECUTION SUMMARY === System.Runtime.Serialization.Json.Tests Total: 110, Errors: 0, Failed: 0, Skipped: 0, Time: 6.415s System.Diagnostics.Tests.ProcessTests.TestGetProcesses [FAIL] System.IO.InvalidDataException : Found invalid data while decoding. Stack Trace: at System.IO.StringParser.ParseNextChar() at Interop.procfs.TryParseStatFile(String statFilePath, ParsedStat& result, ReusableTextReader reusableReader) at System.Diagnostics.ProcessManager.CreateProcessInfo(ParsedStat procFsStat, ReusableTextReader reusableReader) at System.Diagnostics.ProcessManager.CreateProcessInfo(Int32 pid, ReusableTextReader reusableReader) at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName) at System.Diagnostics.Process.GetProcesses(String machineName) at System.Diagnostics.Tests.ProcessTests.TestGetProcesses() Finished: System.Diagnostics.Process.Tests === TEST EXECUTION SUMMARY === System.Diagnostics.Process.Tests Total: 87, Errors: 0, Failed: 1, Skipped: 0, Time: 31.505s error: One or more tests failed while running tests from 'System.Diagnostics.Process.Tests'. Exit code 1. ``` ``` Running tests in ./bin/tests/Linux.AnyCPU.Release//System.Globalization.Calendars.Tests/dnxcore50 ./corerun xunit.console.netcore.exe System.Globalization.Calendars.Tests.dll -xml testResults.xml -notrait category=failing -notrait category=outerloop -notrait category=nonlinuxtests -notrait Benchmark=true xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Globalization.Tests Discovered: System.Diagnostics.Tracing.Tests Starting: System.Diagnostics.Tracing.Tests Discovered: System.Globalization.Tests EventSource Error: ERROR: Exception in Command Processing for EventSource BadEventSource_Bad_Type_UserClass: Unsupported type UserClass in event source. Starting: System.Globalization.Tests Finished: System.Diagnostics.Tracing.Tests === TEST EXECUTION SUMMARY === System.Diagnostics.Tracing.Tests Total: 4, Errors: 0, Failed: 0, Skipped: 0, Time: 0.473s xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Globalization.Calendars.Tests System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.NumberGroupSizes_Get(format: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = ""."", CurrencyGroupSeparator = "","", CurrencyGroupSizes = [3, 2], CurrencyNegativePattern = 9, ... }, expected: [3, 2]) [FAIL] Assert.Equal() Failure Expected: Int32[] [3, 2] Actual: Int32[] [3] Stack Trace: at System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.NumberGroupSizes_Get(NumberFormatInfo format, Int32[] expected) Finished: System.Globalization.Tests === TEST EXECUTION SUMMARY === Discovered: System.Globalization.Calendars.Tests System.Globalization.Tests Total: 984, Errors: 0, Failed: 1, Skipped: 0, Time: 1.548s Starting: System.Globalization.Calendars.Tests error: One or more tests failed while running tests from 'System.Globalization.Tests'. Exit code 1. Finished: System.Globalization.Calendars.Tests === TEST EXECUTION SUMMARY === System.Globalization.Calendars.Tests Total: 1850, Errors: 0, Failed: 0, Skipped: 0, Time: 1.065s ``` ``` Running tests in ./bin/tests/Linux.AnyCPU.Release//System.Net.NetworkInformation.WinRT.Unit.Tests/dnxcore50 ./corerun xunit.console.netcore.exe System.Net.NetworkInformation.WinRT.Unit.Tests.dll -xml testResults.xml -notrait category=failing -notrait category=outerloop -notrait category=nonlinuxtests -notrait Benchmark=true Discovering: System.Net.Ping.Functional.Tests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovered: System.Net.Ping.Functional.Tests Starting: System.Net.Ping.Functional.Tests Discovering: System.Net.NetworkInformation.WinRT.Unit.Tests Discovered: System.Net.NetworkInformation.WinRT.Unit.Tests Starting: System.Net.NetworkInformation.WinRT.Unit.Tests System.Net.NetworkInformation.Tests.UnixPingUtilityTests.PacketSizeIsRespected(payloadSize: 0) [FAIL] System.InvalidOperationException : Cannot start process because a file name has not been provided. Stack Trace: at System.Diagnostics.Process.Start() at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) at System.Net.NetworkInformation.Tests.UnixPingUtilityTests.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.UnixPingUtilityTests.PacketSizeIsRespected(payloadSize: 1) [FAIL] System.InvalidOperationException : Cannot start process because a file name has not been provided. Stack Trace: at System.Diagnostics.Process.Start() at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) at System.Net.NetworkInformation.Tests.UnixPingUtilityTests.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithHostAndTimeout [FAIL] System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: at System.Net.NetworkInformation.Ping.d__25.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__10.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.NetworkInformation.Ping.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__25.MoveNext() System.Net.NetworkInformation.Tests.UnixPingUtilityTests.PacketSizeIsRespected(payloadSize: 50) [FAIL] System.InvalidOperationException : Cannot start process because a file name has not been provided. Stack Trace: at System.Diagnostics.Process.Start() at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) at System.Net.NetworkInformation.Tests.UnixPingUtilityTests.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.UnixPingUtilityTests.PacketSizeIsRespected(payloadSize: 1000) [FAIL] System.InvalidOperationException : Cannot start process because a file name has not been provided. Stack Trace: at System.Diagnostics.Process.Start() at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) at System.Net.NetworkInformation.Tests.UnixPingUtilityTests.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithIPAddressAndTimeoutAndBufferAndPingOptions_Unix [FAIL] System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: at System.Net.NetworkInformation.Ping.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithHostAndTimeoutAndBufferAndPingOptions_Unix [FAIL] System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: at System.Net.NetworkInformation.Ping.d__25.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__14.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.NetworkInformation.Ping.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__25.MoveNext() System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithIPAddressAndTimeout [FAIL] System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: at System.Net.NetworkInformation.Ping.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithHostAndTimeoutAndBuffer_Unix [FAIL] System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: at System.Net.NetworkInformation.Ping.d__25.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__12.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.NetworkInformation.Ping.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__25.MoveNext() System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithHost [FAIL] System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: at System.Net.NetworkInformation.Ping.d__25.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.NetworkInformation.Ping.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__25.MoveNext() System.Net.NetworkInformation.Tests.PingTest.SendPings_ReuseInstance_Hostname [FAIL] System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: at System.Net.NetworkInformation.Ping.d__25.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__15.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.NetworkInformation.Ping.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__25.MoveNext() System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithIPAddress_AddressAsString [FAIL] System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: at System.Net.NetworkInformation.Ping.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.Ping_DisposeAfterSend_Success [FAIL] System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: at System.Net.NetworkInformation.Ping.d__25.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__16.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.NetworkInformation.Ping.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__25.MoveNext() System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithIPAddressAndTimeoutAndBuffer_Unix [FAIL] System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: at System.Net.NetworkInformation.Ping.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithIPAddress [FAIL] System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: at System.Net.NetworkInformation.Ping.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Finished: System.Net.Ping.Functional.Tests === TEST EXECUTION SUMMARY === System.Net.Ping.Functional.Tests Total: 28, Errors: 0, Failed: 15, Skipped: 0, Time: 1.257s error: One or more tests failed while running tests from 'System.Net.Ping.Functional.Tests'. Exit code 15. Finished: System.Net.NetworkInformation.WinRT.Unit.Tests === TEST EXECUTION SUMMARY === System.Net.NetworkInformation.WinRT.Unit.Tests Total: 5, Errors: 0, Failed: 0, Skipped: 0, Time: 0.693s ``` ``` Running tests in ./bin/tests/Linux.AnyCPU.Release//System.Runtime.Loader.DefaultContext.Tests/dnxcore50 ./corerun xunit.console.netcore.exe System.Runtime.Loader.DefaultContext.Tests.dll -xml testResults.xml -notrait category=failing -notrait category=outerloop -notrait category=nonlinuxtests -notrait Benchmark=true Discovering: System.Runtime.Loader.Tests Discovered: System.Runtime.Loader.Tests Starting: System.Runtime.Loader.Tests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Runtime.Loader.DefaultContext.Tests System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadAssemblyByPath_ValidUserAssembly [FAIL] System.IO.FileNotFoundException : Could not load the specified file. Stack Trace: at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName) at System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadAssemblyByPath_ValidUserAssembly() System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetLoadContextTest_ValidUserAssembly [FAIL] System.IO.FileNotFoundException : Could not load the specified file. Stack Trace: at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName) at System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetLoadContextTest_ValidUserAssembly() System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadAssemblyByStream_ValidUserAssembly [FAIL] System.IO.FileNotFoundException : Could not load the specified file. Stack Trace: at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName) at System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadAssemblyByStream_ValidUserAssembly() Finished: System.Runtime.Loader.Tests === TEST EXECUTION SUMMARY === Discovered: System.Runtime.Loader.DefaultContext.Tests System.Runtime.Loader.Tests Total: 10, Errors: 0, Failed: 3, Skipped: 0, Time: 1.025s Starting: System.Runtime.Loader.DefaultContext.Tests error: One or more tests failed while running tests from 'System.Runtime.Loader.Tests'. Exit code 3. Finished: System.Runtime.Loader.DefaultContext.Tests === TEST EXECUTION SUMMARY === System.Runtime.Loader.DefaultContext.Tests Total: 2, Errors: 0, Failed: 0, Skipped: 0, Time: 1.039s Finished: System.Security.Cryptography.Algorithms.Tests === TEST EXECUTION SUMMARY === System.Security.Cryptography.Algorithms.Tests Total: 253, Errors: 0, Failed: 0, Skipped: 0, Time: 12.283s Test project file ./src/System.Security.Cryptography.ProtectedData/tests/System.Security.Cryptography.ProtectedData.Tests.csproj indicates this test is not supported on Linux, skipping Test project file ./src/System.Security.Cryptography.Csp/tests/System.Security.Cryptography.Csp.Tests.csproj indicates this test is not supported on Linux, skipping ``` ``` 7 test(s) failed ``` I only counted 6? Basically only grepping the sections between ""Running tests in"". " +7272 area-System.Net Remove unnecessary branches in UrlDecoder FlushBytes already checks for if _numBytes > 0 so we can remove this check at the call site I renamed FlushBytes to FlushBytesIfNeeded to convey this semantic at the call site /cc @stephentoub @jamesqo +7274 area-System.Runtime Type forwarding for same type defined in both System.Runtime.Interop and *.PInvoke assembly "Currently, type forwarding is defined for (for example, but not limited to) the **System.Runtime.InteropServices.GuidAttribute** type in both the **System.Runtime.InteropServices.PInvoke** and the **System.Runtime.InteropServices** assembly. The nuget packages for these assemblies are listed as dependencies of the **Microsoft.NETCore** package in the latest build (5.0.1-rc3-23925-00): ``` json ""Microsoft.NETCore/5.0.1-rc3-23925-00"": { ""type"": ""package"", ""dependencies"": { ""System.Runtime.InteropServices"": ""4.1.0-rc3-23925-00"", ""System.Runtime.InteropServices.PInvoke"": ""4.0.0-rc3-23925-00"", } ``` This means that if you reference the latest build of **Microsoft.NETCore.UniversalWindowsPlatform** (5.2.0-rc3-23925-00), you'll get the following compile error whenever you use one of the types that are forwarded in these two assemblies: _error CS0433: The type 'GuidAttribute' exists in both 'System.Runtime.InteropServices.PInvoke, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'System.Runtime.InteropServices, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'_ Sorry if I'm missing the obvious here ... " +7277 area-System.Net #7276 Fix Socket.SendAsync calling NetEventSource.Enter twice +7280 area-System.Collections Inconsistent bounds checking for CopyTo operations (Standard collections, Generics and Specialized) "Consider the following example (trying to copy an empty dictionary to 1-sized buffer starting from index 1, 1 is out of bounds, no exceptions been thrown) ``` C# using System; using System.Collections; using System.Collections.Generic; using System.Linq; namespace TestX { class Program { static void Main(string[] args) { var dictionary = new Dictionary(); var dictionaryAsCollection = dictionary as ICollection; var buffer = new KeyValuePair[1]; dictionaryAsCollection.CopyTo(buffer, 1); // 1 is out of bounds for buffer Console.WriteLine(buffer.First()); } } } ``` Now we change CopyTo arguments (1 -> 2), this code will throw an exception (ArgumentOutOfRangeException) ``` C# using System; using System.Collections; using System.Collections.Generic; using System.Linq; namespace TestX { class Program { static void Main(string[] args) { var dictionary = new Dictionary(); var dictionaryAsCollection = dictionary as ICollection; var buffer = new KeyValuePair[1]; dictionaryAsCollection.CopyTo(buffer, 2); // 2 is out of bounds for buffer Console.WriteLine(buffer.First()); } } } ``` Now, instead of changing CopyTo arguments, add an element to the dictionary. We will receive an exception of type ArgumentException ``` C# using System.Collections; using System.Collections.Generic; using System.Linq; namespace TestX { class Program { static void Main(string[] args) { var dictionary = new Dictionary(); dictionary.Add(""Test"", ""Ok""); // new dictionary element var dictionaryAsCollection = dictionary as ICollection; var buffer = new KeyValuePair[1]; dictionaryAsCollection.CopyTo(buffer, 1); // 1 is out of bounds for buffer Console.WriteLine(buffer.First()); } } } ``` For (almost) all the standard collections there are an issue: when CopyTo starting index is equal to destination buffer length, no ArgumentOutOfRangeException is thrown. For me it seems inconsistent: CopyTo(buffer, 1) should throw ArgumentOutOfRangeException in all cases except CopyTo(buffer, 0), because this time it is only valid argument value. I've created a small project in order to demonstrate this issue: https://github.com/nettsundere/CollectionsCopyTo And the output is: ``` Trying to copy to buffer having size of 1 starting with index=1 -------------------------------------------------- Array No exceptions -------------------------------------------------- ArrayList No exceptions -------------------------------------------------- BitArray No exceptions -------------------------------------------------- ConcurrentBag No exceptions -------------------------------------------------- ConcurrentDictionary No exceptions -------------------------------------------------- ConcurrentQueue No exceptions -------------------------------------------------- ConcurrentStack No exceptions -------------------------------------------------- Dictionary No exceptions -------------------------------------------------- HashSet No exceptions -------------------------------------------------- Hashtable No exceptions -------------------------------------------------- HybridDictionary No exceptions -------------------------------------------------- List No exceptions -------------------------------------------------- LinkedList No exceptions -------------------------------------------------- ListDictionary No exceptions -------------------------------------------------- NameValueCollection No exceptions -------------------------------------------------- Queue No exceptions -------------------------------------------------- Queue (Generic) No exceptions -------------------------------------------------- Readonly collection No exceptions -------------------------------------------------- SortedDictionary No exceptions -------------------------------------------------- SortedList No exceptions -------------------------------------------------- SortedList (Generic) No exceptions -------------------------------------------------- Sorted set No exceptions -------------------------------------------------- Stack No exceptions -------------------------------------------------- Stack (Generic) No exceptions -------------------------------------------------- StringDictionary No exceptions - - - Trying to copy to buffer having size of 1 starting with index=2 -------------------------------------------------- Array System.ArgumentException: Destination array was not long enough. Check destIndex and length, and the array's lower bounds. at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Array.CopyTo(Array array, Int32 index) at CollectionsCopyTo.CopyToExample.ArrayCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 16 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__0() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 22 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- ArrayList System.ArgumentException: Destination array was not long enough. Check destIndex and length, and the array's lower bounds. at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Collections.ArrayList.CopyTo(Array array, Int32 arrayIndex) at CollectionsCopyTo.CopyToExample.ArrayListCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 28 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__1() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 23 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- BitArray System.ArgumentException: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection. at System.Collections.BitArray.CopyTo(Array array, Int32 index) at CollectionsCopyTo.CopyToExample.BitArrayCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 42 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__2() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 24 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- ConcurrentBag No exceptions -------------------------------------------------- ConcurrentDictionary System.ArgumentException: The index is equal to or greater than the length of the array, or the number of elements in the dictionary is greater than the available space from index to the end ination array. at System.Collections.Concurrent.ConcurrentDictionary`2.System.Collections.ICollection.CopyTo(Array array, Int32 index) at CollectionsCopyTo.CopyToExample.ConcurrentDictionaryCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 71 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__4() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 26 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- ConcurrentQueue System.ArgumentException: Destination array was not long enough. Check destIndex and length, and the array's lower bounds. at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Collections.Concurrent.ConcurrentQueue`1.CopyTo(T[] array, Int32 index) at CollectionsCopyTo.CopyToExample.ConcurrentQueueCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 99 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__5() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 27 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- ConcurrentStack System.ArgumentException: Destination array was not long enough. Check destIndex and length, and the array's lower bounds. at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Collections.Concurrent.ConcurrentStack`1.CopyTo(T[] array, Int32 index) at CollectionsCopyTo.CopyToExample.ConcurrentStackCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 85 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__6() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 28 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- Dictionary System.ArgumentOutOfRangeException: Non-negative number required. Parameter name: index at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource) at System.Collections.Generic.Dictionary`2.System.Collections.ICollection.CopyTo(Array array, Int32 index) at CollectionsCopyTo.CopyToExample.DictionaryCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 114 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__7() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 29 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- HashSet System.ArgumentException: Destination array is not long enough to copy all the items in the collection. Check array index and length. at System.Collections.Generic.HashSet`1.CopyTo(T[] array, Int32 arrayIndex, Int32 count) at CollectionsCopyTo.CopyToExample.HashSetCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 128 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__8() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 30 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- Hashtable System.ArgumentException: Destination array is not long enough to copy all the items in the collection. Check array index and length. at System.Collections.Hashtable.CopyTo(Array array, Int32 arrayIndex) at CollectionsCopyTo.CopyToExample.HashtableCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 143 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__9() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 31 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- HybridDictionary System.ArgumentException: Insufficient space in the target location to copy the information. at System.Collections.Specialized.ListDictionary.CopyTo(Array array, Int32 index) at CollectionsCopyTo.CopyToExample.HybridDictionaryCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 158 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__10() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 32 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- List System.ArgumentException: Destination array was not long enough. Check destIndex and length, and the array's lower bounds. at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Collections.Generic.List`1.CopyTo(T[] array, Int32 arrayIndex) at CollectionsCopyTo.CopyToExample.ListCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 172 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__11() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 33 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- LinkedList System.ArgumentOutOfRangeException: Must be less than or equal to the size of the collection. Parameter name: index Actual value was 2. at System.Collections.Generic.LinkedList`1.CopyTo(T[] array, Int32 index) at CollectionsCopyTo.CopyToExample.LinkedListCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 186 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__12() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 34 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- ListDictionary System.ArgumentException: Insufficient space in the target location to copy the information. at System.Collections.Specialized.ListDictionary.CopyTo(Array array, Int32 index) at CollectionsCopyTo.CopyToExample.ListDictionaryCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 200 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__13() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 35 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- NameValueCollection System.ArgumentException: Insufficient space in the target location to copy the information. at System.Collections.Specialized.NameValueCollection.CopyTo(Array dest, Int32 index) at CollectionsCopyTo.CopyToExample.NameValueCollectionCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 214 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__14() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 36 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- Queue System.ArgumentException: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection. at System.Collections.Queue.CopyTo(Array array, Int32 index) at CollectionsCopyTo.CopyToExample.QueueCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 242 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__15() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 37 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- Queue (Generic) System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: arrayIndex Actual value was 2. at System.Collections.Generic.Queue`1.CopyTo(T[] array, Int32 arrayIndex) at CollectionsCopyTo.CopyToExample.QueueGenericCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 228 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__16() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 38 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- Readonly collection System.ArgumentException: Destination array was not long enough. Check destIndex and length, and the array's lower bounds. at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Collections.Generic.List`1.CopyTo(T[] array, Int32 arrayIndex) at CollectionsCopyTo.CopyToExample.ReadOnlyCollectionCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 256 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__17() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 39 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- SortedDictionary System.ArgumentException: Destination array is not long enough to copy all the items in the collection. Check array index and length. at System.Collections.Generic.SortedSet`1.System.Collections.ICollection.CopyTo(Array array, Int32 index) at CollectionsCopyTo.CopyToExample.SortedDictionaryCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 271 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__18() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 40 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- SortedList System.ArgumentException: Destination array is not long enough to copy all the items in the collection. Check array index and length. at System.Collections.SortedList.CopyTo(Array array, Int32 arrayIndex) at CollectionsCopyTo.CopyToExample.SortedListCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 301 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__19() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 41 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- SortedList (Generic) System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index Actual value was 2. at System.Collections.Generic.SortedList`2.System.Collections.ICollection.CopyTo(Array array, Int32 index) at CollectionsCopyTo.CopyToExample.SortedListGenericCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 286 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__20() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 42 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- Sorted set System.ArgumentException: Destination array is not long enough to copy all the items in the collection. Check array index and length. at System.Collections.Generic.SortedSet`1.CopyTo(T[] array, Int32 index, Int32 count) at CollectionsCopyTo.CopyToExample.SortedSetCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 315 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__21() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 43 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- Stack System.ArgumentException: Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection. at System.Collections.Stack.CopyTo(Array array, Int32 index) at CollectionsCopyTo.CopyToExample.StackCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 343 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__22() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 44 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- Stack (Generic) System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: arrayIndex Actual value was 2. at System.Collections.Generic.Stack`1.CopyTo(T[] array, Int32 arrayIndex) at CollectionsCopyTo.CopyToExample.StackGenericCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 329 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__23() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 45 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 -------------------------------------------------- StringDictionary System.ArgumentException: Destination array is not long enough to copy all the items in the collection. Check array index and length. at System.Collections.Hashtable.CopyTo(Array array, Int32 arrayIndex) at CollectionsCopyTo.CopyToExample.StringDictionaryCopyTo(Boolean greaterIndex) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\CopyToExample.cs:line 357 at CollectionsCopyTo.Program.<>c__DisplayClass1_0.b__24() in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 46 at CollectionsCopyTo.Program.FormatExceptionDetails(String header, Action exampleAction) in C:\Users\nettsundere\Documents\Visual Studio 2015\Projects\collectionsCopyTo\Program.cs:line 55 ``` upd: Fixed BitArray result upd2: Updated dependencies, new output This is obviously a breaking change, so I'm not changing anything, just trying to report / discuss an issue. " +7282 area-System.Net Ensure CurlHandler sets CBT even on fast verification path When we get called back by libcurl to verify the server's certificate, we try to take a fast path where we use OpenSSL's certificate verification rather than doing our own, which is more comprehensive but also slower. However, when we added that fast path, we inadvertently ended up not setting the Channel Binding Token in that case, only doing so in the fallback path. This fixes that, moving the configuring of the CBT up to before we ask OpenSSL to verify the cert. (I'd recommend reviewing the src changes with the whitespace-ignored view: https://github.com/dotnet/corefx/pull/7282/files?w=1) cc: @bartonjs, @kapilash, @davidsh +7284 area-System.Data Misleading ADP_OpenReaderExists exception message on MARS-disabled Sql Connection when incorrectly doing parallel requests "I've discovered the issue using ordinary .net4.5 on Windows but further investigating shows that it is related to code that now is in the .net Core While simultaneousely (incrorrcetly) using single SqlConnection with Multiple Active Result Sets (MARS) disabled an exception with text ``` There is already an open DataReader associated with this Command which must be closed first. ``` Note that text mentions same ""Command"" but in reality the resource taht is wrongly shared is not command but connection. The exception is raised from https://github.com/dotnet/corefx/blob/cf19c22be88b5ea31b5e2ea69ab3632f930b1e26/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInternalConnectionTds.cs#L587 The comment ``` // if MARS is on, then a datareader associated with the command exists // or if MARS is off, then a datareader exists ``` above raising the exception is absolutely correct - if MARS is on the exception text is correct - problem is in using multiple readers with single command. But if mars is off the checks above checking for any active datareaders for the same connection, not only for datareaders for the same command. So the problem is that information about what scope (Connection or Command) was checked is not passed to exception cinstructor and it incorrectly always says that there is another reader associated with the _command_ " +7285 area-System.Net Reduce allocations in CookieContainer.GetCookieHeader "HttpClient defaults to UseCookies=true, which means by default every request ends up asking the CookieContainer to get the cookie header that should be used. Today, even if there aren't any cookies for the given Uri, this ends up doing a lot of allocation. And if there are cookies for the Uri, the serialization of each cookie results in a handful of strings, char[]s, and string[] allocations. This commit tweaks the implementation to avoid a bunch of these, including taking advantage of StringBuilderCache. (There are still some more that could be cleaned up with further work, but it becomes much more invasive.) For this sample program: ``` C# CookieContainer cc = new CookieContainer(); Uri exists = new Uri(""http://example.com/exists""); Uri notExists = new Uri(""http://example.com/notExists""); cc.Add(exists, new Cookie(""test1"", ""value1"")); cc.Add(exists, new Cookie(""test2"", ""value2"")); for (int i = 0; i < 1000; i++) { cc.GetCookieHeader(exists); } ``` before these changes, I see the following allocations: ![image](https://cloud.githubusercontent.com/assets/2642209/14066895/e68b9854-f424-11e5-910e-a65caff8f4ce.png) and after thes changes: ![image](https://cloud.githubusercontent.com/assets/2642209/14066898/14d278ae-f425-11e5-8f07-82bb29139f59.png) If I then change the GetCookieHeader line to be: ``` C# cc.GetCookieHeader(notExists); ``` before these changes, I see the following allocations: ![image](https://cloud.githubusercontent.com/assets/2642209/14066925/ad052856-f425-11e5-9049-1e38d8432687.png) and after these changes: ![image](https://cloud.githubusercontent.com/assets/2642209/14066930/c066e6c8-f425-11e5-82ce-989b6692d0a8.png) cc: @davidsh, @cipop, @ericeil " +7289 area-System.Net WebHeaderCollection: Specify ArgumentException paramName Split `CheckBadChars` into separate `CheckBadHeaderValueChars` and `CheckBadHeaderNameChars` methods and use `nameof` to include the `paramName` when throwing `ArgumentException`. +7292 area-System.Net Remove unnecessary string allocations in MultipartContent "More low-hanging fruit. When building up its output, MultipartContent is already using a StringBuilder, but it's creating temporary intermediate strings which it then writes to the StringBuilder, rather than just adding the constituent pieces to the StringBuilder directly. And when computing the length of the output, it's again generating lots of intermediate strings, when it could instead just measure the size of each of the constituent pieces. For a little perf test: ``` C# var subContent = new ByteArrayContent(Encoding.UTF8.GetBytes(""This is a ByteArrayContent"")); subContent.Headers.Add(""header1"", ""value1""); subContent.Headers.Add(""header2"", new[] { ""value2"", ""value3"", ""value4"" }); for (int i = 0; i < 1000; i++) { var mc = new MultipartContent(); mc.Add(subContent); mc.ReadAsStringAsync().GetAwaiter().GetResult(); } ``` Before: ![image](https://cloud.githubusercontent.com/assets/2642209/14069816/ba661554-f46c-11e5-8e26-b9616922b493.png) After: ![image](https://cloud.githubusercontent.com/assets/2642209/14069820/c8400bf8-f46c-11e5-8540-8c2a5d942340.png) cc: @davidsh, @cipop, @ericeil " +7293 area-System.Net Replace HttpContent.CreateCompletedTask with Task.CompletedTask We can just use Task.CompletedTask, rather than creating a new TCS and its Task each time. cc: @davidsh, @cipop, @ericeil +7294 area-Infrastructure "Win7 builds failing with """"GetTargetMachineInfo"" task failed unexpectedly""" "e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win7_debug/141/console ``` d:\j\workspace\outerloop_win---9c9e7d59\Tools\publishtest.targets(77,5): error MSB4018: The ""GetTargetMachineInfo"" task failed unexpectedly. [d:\j\workspace\outerloop_win---9c9e7d59\src\Common\tests\Common.Tests.csproj] 18:12:03 d:\j\workspace\outerloop_win---9c9e7d59\Tools\publishtest.targets(77,5): error MSB4018: System.DllNotFoundException: Unable to load DLL 'api-ms-win-core-sysinfo-l1-2-0.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) [d:\j\workspace\outerloop_win---9c9e7d59\src\Common\tests\Common.Tests.csproj] 18:12:03 d:\j\workspace\outerloop_win---9c9e7d59\Tools\publishtest.targets(77,5): error MSB4018: at Interop.mincore.GetNativeSystemInfo(SYSTEM_INFO& lpSystemInfo) [d:\j\workspace\outerloop_win---9c9e7d59\src\Common\tests\Common.Tests.csproj] 18:12:03 d:\j\workspace\outerloop_win---9c9e7d59\Tools\publishtest.targets(77,5): error MSB4018: at System.Runtime.InteropServices.RuntimeInformation.get_OSArchitecture() [d:\j\workspace\outerloop_win---9c9e7d59\src\Common\tests\Common.Tests.csproj] 18:12:03 d:\j\workspace\outerloop_win---9c9e7d59\Tools\publishtest.targets(77,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.GetTargetMachineInfo.Execute() [d:\j\workspace\outerloop_win---9c9e7d59\src\Common\tests\Common.Tests.csproj] 18:12:03 d:\j\workspace\outerloop_win---9c9e7d59\Tools\publishtest.targets(77,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [d:\j\workspace\outerloop_win---9c9e7d59\src\Common\tests\Common.Tests.csproj] 18:12:03 d:\j\workspace\outerloop_win---9c9e7d59\Tools\publishtest.targets(77,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() [d:\j\workspace\outerloop_win---9c9e7d59\src\Common\tests\Common.Tests.csproj] ``` " +7295 area-System.Net [System.Net.Security]Disable direct Use of NTLM This is to track the changes to disable NTLM usage directly, +7298 area-Infrastructure "All builds failing with error ""Cannot delete workspace: remote file operation failed""" e.g. ``` 03:50:35 GitHub pull request #7297 of commit 8fcc99132a7a6f7781304fdb1321e4ad5ffb8ec7, no merge conflicts. 03:50:35 Setting status of 8fcc99132a7a6f7781304fdb1321e4ad5ffb8ec7 to PENDING with url http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/4085/ and message: 'Build started sha1 is merged.' 03:50:35 Using context: Innerloop Windows_NT Debug Build and Test 03:50:35 Building remotely on dci-win-bld-15 (windows-roslyn windows) in workspace d:\j\workspace\windows_nt_de---06b7984d 03:50:35 [WS-CLEANUP] Deleting project workspace... 03:50:41 ERROR: [WS-CLEANUP] Cannot delete workspace: remote file operation failed: d:\j\workspace\windows_nt_de---06b7984d at hudson.remoting.Channel@728b6416:dci-win-bld-15: hudson.remoting.ChannelClosedException: channel is already closed 03:50:41 ERROR: Cannot delete workspace: remote file operation failed: d:\j\workspace\windows_nt_de---06b7984d at hudson.remoting.Channel@728b6416:dci-win-bld-15: hudson.remoting.ChannelClosedException: channel is already closed ``` +7299 area-Infrastructure System.Globalization.Tests.CompareInfoTests.GetHashCode_EmptyString failed on Ubuntu 14.04 outerloop http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_ubuntu14.04_debug/58/consoleFull ``` 02:40:21 Discovering: System.Globalization.Tests 02:40:21 Discovered: System.Globalization.Tests 02:40:21 Starting: System.Globalization.Tests 02:40:21 System.Globalization.Tests.CompareInfoTests.GetHashCode_EmptyString [FAIL] 02:40:22 Assert.Equal() Failure 02:40:22 Expected: 0 02:40:22 Actual: -482897332 02:40:22 Stack Trace: 02:40:22 at System.Globalization.Tests.CompareInfoTests.GetHashCode_EmptyString() 02:40:22 Finished: System.Globalization.Tests 02:40:22 ``` +7302 area-System.Net Improve memory usage of HttpClient's StreamToStreamCopy "Copying between streams represents one of the larger sources of memory allocations and copying in HttpClient. HttpClient has its own stream-to-stream copy implementation, but there are ways we can significantly improve it based on typical usage within HttpClient. This commit does the following: - Previously it would special case when both the source and destination stream were MemoryStreams, but even in that case it would allocate a temporary buffer and do a Read/Write loop to copy between them, and even then it's relatively rare to copy from a MemoryStream to a MemoryStream. Instead, if the source stream is a MemoryStream and we can get its buffer, we can do a single write to the destination (regardless of what kind of stream it is), avoiding the need for multiple read/writes and for the temporary buffer. If we can't get its buffer but its length is known to be less than or equal to the requested buffer size and it's positioned at the beginning, we can simply ToArray the source and still do a single write to the target. - If the destination is the special LimitMemoryStream, used for buffering output, and if that LimitMemoryStream was pre-sized based on the response having a Content-Length, then rather than allocating a temporary buffer and repeatedly copying from the source stream into that buffer and copying from the buffer into the memory stream, we can instead give the destination's buffer directly to be read into by the source, avoiding the temporary buffer and the extra copies. This is a very common case. - If the source does not need to be disposed after the copy, rather than doing our own copy loop, we can instead ask the source to use its CopyToAsync implementation to copy to the destination stream. Worst case this will be exactly what we were previously doing, but best case the source has its own CopyToAsync override that's more efficient. - When constructing a LimitMemoryStream, if the Content-Length isn't known, we were explicitly passing a 0 capacity to the base, which causes it to allocate a new zero-length array; I've added a ctor to avoid that. As a small example, with this short test: ``` C# var uri = new Uri(""http://httpbin.org/get""); var c = new HttpClient(); for (int i = 0; i < 100; i++) c.GetAsync(uri).GetAwaiter().GetResult().Dispose(); ``` before the change it allocated 1,411,714 bytes, and after the change, it allocated 1,003,702, for an ~30% reduction. That drop is almost entirely in avoiding needing byte[]s: I'd appreciate some extra scrutiny on this. cc: @davidsh, @cipop, @ericeil, @kapilash, @bartonjs, @ianhays " +7304 area-System.Numerics Vector while debugging incorrectly reports size of register The `Vector` type on a machine which supports 256 bit registers will return 8, however the debug/non-accelerated version of the register only will act as a 128bit register. This means that algorithms that look like so:: ``` csharp for(var offset= 0;count >= Vector.Count; count-= Vector.Count, offset+= Vector.Count) ``` Will go out of bounds or skip elements potentially while debugging giving an incorrect test. +7306 area-System.ComponentModel Small changes to unblock test scenario cc @twsouthwick +7311 area-System.ComponentModel Add support for IsDefaultAttribute on TypeDescriptor attributes This adds a layer between `System.Attribute` and the TypeDescriptor attributes that expose `IsDefaultAttribute`, `Matches`, and `TypeId` as these are used extensively in the TypeDescriptor implementation. @chlowell +7315 area-System.Net Refactor HttpClient with async/await "When HttpClient was initially written, async/await didn't exist, and it was written to use ContinueWith. By switching to async/await, we can both improve the readability and maintainability of the code and improve performance. This commit addresses just the HttpClient class and not the rest of the library, but those can follow. From a readability/maintainability perspective, the code is now more concise and linear, which should hopefully be evident from the diff. From a performance perspective, here's a little test using GetStringAsync: ``` C# var c = new HttpClient(); var url = new Uri(""http://httpbin.org/get""); for (int i = 0; i < 100; i++) { c.GetStringAsync(url).GetAwaiter().GetResult(); } ``` and here's an allocation comparison showing the number of allocations that change due to this switch: ![image](https://cloud.githubusercontent.com/assets/2642209/14107936/d5d5f738-f588-11e5-97c5-80fb22aac69f.png) and showing the amount of memory allocated: ![image](https://cloud.githubusercontent.com/assets/2642209/14107972/05ef2f0c-f589-11e5-949d-13a5e935a210.png) cc: @davidsh, @cipop, @ericeil " +7317 area-System.Net Unix NegotiateStream: Addressing PR feedback #7031 listed out the places in NegotiateStream that needed fix. This PR addresses those of the comments where the scope is limited to NegotiateStream functionality. Specifically, - the tests are cleaned up to remove boilerplate code. - `SecurityStatusAdapterPal` is changed to include a static constructor in the Debug mode. - Constants in pal_gssapi.cpp are defined at a single location. - CMakeLists.txt is modified to give proper, OS-specific error message +7318 area-System.Net Improve serial throughput of HttpClient on Unix "HttpClient on Unix has a thread dedicated to multiplexing the processing of any number of concurrent requests on that client. When a request comes in and that worker thread isn't running, a worker is spun up, and that worker will service any number of requests that come in while it's up. Then, when requests quiesce and there's no more processing to be done, the worker goes away. If more work later arrives, a new worker is spun up. This is done to avoid burning a thread per HttpClient when there's no work to be done on that client. It works well for bursts of activity as well as for sustained concurrent usage. However, if the client is used for a sequence of requests, one after the other, there's a good chance that the worker will go away between requests, requiring a new worker to be spun up for each. This has non-trivial costs, both in terms of CPU processing and in terms of managed and native resource allocation/deallocation. This commit enables a worker to briefly pause before exiting, blocking for a short period of time for new work to arrive rather than simply exiting. With a simple serial workload like: ``` C# using System; using System.Diagnostics; using System.Net.Http; using System.Threading.Tasks; public class Program { public static void Main() { MainAsync().GetAwaiter().GetResult(); } private static async Task MainAsync() { var c = new HttpClient(); var url = new Uri(""http://httpbin.org/ip""); while (true) { var sw = Stopwatch.StartNew(); for (int i = 0; i < 100; i++) { await c.GetStringAsync(url); } Console.WriteLine(sw.Elapsed.TotalSeconds); Task.Delay(500).Wait(); } } } ``` Prior to this change, each run of 100 requests would end up spinning up anywhere between 20 and 40 workers, whereas after the change it typically only spins up 1. This has a significant impact on throughput, typically doubling throughput of this test on my machine, e.g. before: ``` 4.1502928 3.8951023 4.7506992 4.0254529 ``` and after: ``` 2.2819518 1.9307756 1.9129248 1.8165896 ``` cc: @ericeil, @kapilash, @davidsh, @cipop " +7323 area-System.Globalization Add a few culture tests to System.Globalization Ports missing ToF tests to Open. resolves #6429 +7325 area-System.Security Open System.Security.Principal.WindowsIdentity As a developer I need access to the current logged in active directory user to check if the user has a specific role. Normally I do this with: ``` csharp WindowsIdentity currentUser = WindowsIdentity.GetCurrent(); var groups = currentUser.Groups; //or groups.Claims ``` So I can get the SID or the groups of the user. Most companies want to control the access of the user with active directory. The enterprise application uses this information to determine whether a user got access or not. If there is no api to access this information, enterprise application development with uwp becomes uninteresting. Please help us out! +7326 area-System.Text Fix System.Text.Encoding test helper. A test helper in System.Text.Encoding had a typo that was causing the GetBytes(char[],...) methods to not be tested for positive validation. resolves #6924 +7328 area-System.Text Add tests for CodePages with duplicate names. There are two names that have duplicate associated CodePages. For those two names, we have to test with the expectation that querying the name will always return the same codepage. resolves #6456 +7329 area-Infrastructure Pass additional arguments to the dev workflow scripts Right now the dev workflow scripts only admits certain parameters and we want the developer to be able to pass additional parameters to them and propagate those parameters to the msbuild call +7330 area-System.Diagnostics Add Tracing test to filter an event with a higher EventLevel We didn't have any tests that filtered events with a higher event level than being listened to. This adds one (adapted from a ToF test) and resolves #6428. +7332 area-System.Collections Fill coverage gaps for Collections.Concurrent One test supplied most of the missing coverage but simply wasn't decorated as a fact. Most other missing coverage bits were the result of the same test taking different code paths from execution to execution (e.g. race conditions) resolves #6417 +7335 area-System.Diagnostics Calling EventSource.WriteEvent(int eventId, string arg1, string arg2) throws an ArgumentNullException "I'm calling the method EventSource.WriteEvent(int eventId, string arg1, string arg2) and arg2 is a string with 90947 characters. It throws the following exception: Exception thrown: 'System.ArgumentNullException' in mscorlib.ni.dll Additional information: Value cannot be null. {""Value cannot be null.\r\nParameter name: format""} ``` at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(IFormatProvider provider, String format, Object[] args) at System.Environment.GetResourceString(String key, Object[] values) at System.Diagnostics.Tracing.EventSource.ThrowEventSourceException(String eventName, Exception innerEx) at System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityIdCore(Int32 eventId, Guid* relatedActivityId, Int32 eventDataCount, EventData* data) at System.Diagnostics.Tracing.EventSource.WriteEvent(Int32 eventId, String arg1, String arg2) ``` " +7337 area-System.Net Add more tests for HttpClient To have more confidence while refactoring (https://github.com/dotnet/corefx/pull/7315), added more HttpClient coverage, in particular of error paths. Brings HttpClient line coverage from 64.7% to 98.3%, and branch coverage from 42.3% to 78.7%. cc: @davidsh, @cipop, @ericeil, @kapilash +7340 area-System.Net DnsTests.GetHostEntryAsyncWithAddress failed on outerloop ubuntu14.04, ipaddress is null. ``` Discovering: System.Net.NameResolution.Functional.Tests 02:06:51 Discovered: System.Net.NameResolution.Functional.Tests 02:06:51 Starting: System.Net.NameResolution.Functional.Tests 02:06:51 System.Net.NameResolution.Tests.DnsTests.GetHostEntryAsyncWithAddress [FAIL] 02:06:51 System.ArgumentNullException : Value cannot be null. 02:06:51 Parameter name: address 02:06:51 Stack Trace: 02:06:51 at System.Net.Dns.HostResolutionBeginHelper(IPAddress address, Boolean flowContext, Boolean includeIPv6, AsyncCallback requestCallback, Object state) 02:06:51 at System.Net.Dns.BeginGetHostEntry(IPAddress address, AsyncCallback requestCallback, Object stateObject) 02:06:51 at System.Net.Dns.<>c.b__15_0(IPAddress arg, AsyncCallback requestCallback, Object stateObject) 02:06:51 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1](Func`4 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, Object state, TaskCreationOptions creationOptions) 02:06:51 at System.Threading.Tasks.TaskFactory`1.FromAsync[TArg1](Func`4 beginMethod, Func`2 endMethod, TArg1 arg1, Object state) 02:06:51 at System.Net.Dns.GetHostEntryAsync(IPAddress address) 02:06:51 at System.Net.NameResolution.Tests.DnsTests.<>c__DisplayClass1_0.b__0() 02:06:51 at System.Net.NameResolution.Tests.DnsTests.GetHostEntryAsync(Func`1 getHostEntryFunc) 02:06:51 at System.Net.NameResolution.Tests.DnsTests.d__1.MoveNext() 02:06:51 --- End of stack trace from previous location where exception was thrown --- 02:06:51 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 02:06:51 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 02:06:51 --- End of stack trace from previous location where exception was thrown --- 02:06:51 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 02:06:51 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 02:06:51 --- End of stack trace from previous location where exception was thrown --- 02:06:51 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 02:06:51 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 02:06:51 Finished: System.Net.NameResolution.Functional.Tests ``` +7342 area-System.Net ARM build failing due to padding warning in System.Net.Security.Native I encounter a `-Wpadded` warning when building corefx for Linux arm32 environment (using the `arm cross` option in the build script). The build fails due to the presence of `-Werror` flag. ``` In file included from /home/prajwal/dotnet/corefx/src/Native/System.Net.Security.Native/pal_gssapi.cpp:7: /home/prajwal/dotnet/corefx/src/Native/System.Net.Security.Native/pal_gssapi.h:42:8: error: padding size of 'PAL_GssBuffer' with 4 bytes to alignment boundary [-Werror,-Wpadded] struct PAL_GssBuffer ^ 1 error generated. ``` This occurs due to the size of uint8_t pointer being 4 bytes on Linux arm32. I am able to suppress this warning using the `-Wno-padded` warning in the CMakeLists file. Is this a valid fix (suppressing all future padding warnings)? +7343 area-System.Diagnostics "System.Diagnostics.Process doesn't allow to ""wait and kill"" without a race" "Suppose I have a `System.Diagnostics.Process` bound to some running process. I want to wait until that process exits and if it fails to exit in five seconds I want that process terminated. Here's a piece of pseudocode: ``` if( !process.WaitForExit( 5000 ) ) { process.Kill(); } process.Dispose(); ``` The problem is the process might exit between `WaitForExit()` and `Kill()` and then this code gets a rather generic exception. There's no way to write the code above such that there's no potential for the race condition between the other process exiting and this process making the decision of whether to terminate the other process or not. Same problem on desktop. There're three approaches to how this can be resolved. The first one is that `Kill()` does nothing if the process has exited. This would violate the contract stated in the documentation but it's actually the right thing to do. The purpose of `Kill()` is ""get rid of the process"" and if it so happens the process has exited - okay, nothing to do. I cannot imagine a reasonable case where someone would blindly call `Kill()` and then catch the possible exception and make any decisions on what to do based on whether there was an exception. The second one is that a parameter with a default value is added to `Kill()` - such that it turns into `Kill( bool throwIfExited = true )`. This prevents violating the current contract but honestly it's stupid. The third one is crafting some special exception exactly for this case - such that the caller can reliably detect that the process has exited by programmatically inspecting the exception. This would break the contract and it's also stupid. " +7348 area-System.Net Fix NullReferenceException in HttpClient.BaseAddress when logging enabled cc: @davidsh, @cipop, @josguil +7351 area-System.Globalization CharUnicodeInfo has incorrect results on Unix CharUnicodeInfo is expected to return consistent (identical) results across platforms, according to the latest Unicode Standard - 8.0.0 In PR #7279 I added tests for CharUnicodeInfo: the test data comes from the [publicly available Unicode dataset](http://www.unicode.org/Public/UNIDATA/UnicodeData.txt). The Windows tests pass, but Unix builds don't. Unfortunately, owing to a bug in xunit, we can't use [MemberData], so the first assertion failure stops all the tests from running. I presume there are more failures that therefore aren't being reported Here are some examples of the failures. These are not the only ones - there are many more - CodeValue: 00A7; Expected `GetUnicodeCategory`: OtherPunctuation; actual: OtherSymbol - CodeValue: 09F4; Expected `GetNumericValue`: 0.0625; actual: 1 /cc @tarekgh +7357 area-Infrastructure Win7 run failed with coreclr bind error ``` 10:08:22 Installing dotnet cli... 10:08:26 Restoring BuildTools version 1.0.25-prerelease-00228-02... 10:08:26 Failed to load the dll from d:\j\workspace\outerloop_win---9c9e7d59\Tools\dotnetcli\shared\Microsoft.NETCore.App\1.0.0-rc2-23928\coreclr.dll, HRESULT: 0x8007007E 10:08:26 Failed to bind to coreclr 10:08:26 ERROR: Could not restore build tools correctly. See 'd:\j\workspace\outerloop_win---9c9e7d59\init-tools.log' for more details. ``` This may be from dotnetcli update? cc @dagood +7358 area-System.IO System.IO.FileSystem: Unix SetCurrentDirectory follows symlinks "Using `Directory.SetCurrentDirectory` on a symlink in Unix follows the symlink and sets the directory to what the symlink links to. This differs from the Windows behavior as well as the behavior one would see on the command line using similar utilities. Unit test: ``` [ConditionalFact(nameof(CanCreateSymbolicLinks))] public void SetToPathContainingSymLink() { var path = GetTestFilePath(); var linkPath = GetTestFilePath(); Directory.CreateDirectory(path); Assert.True(MountHelper.CreateSymbolicLink(linkPath, path, isDirectory: true)); // Both the symlink and the target exist Assert.True(Directory.Exists(path), ""path should exist""); Assert.True(Directory.Exists(linkPath), ""linkPath should exist""); // Set Current Directory to symlink string currentDir = Directory.GetCurrentDirectory(); try { Console.WriteLine(""LINKPATH : "" + linkPath); Console.WriteLine(""PATH : "" + path); Directory.SetCurrentDirectory(linkPath); Assert.Equal(path, Directory.GetCurrentDirectory()); } finally { Directory.SetCurrentDirectory(currentDir); } Assert.Equal(currentDir, Directory.GetCurrentDirectory()); } ``` On Windows the current directory is set to LinkPath; on Unix it is path. Ubuntu command line behavior using `cd` and `pwd`: ``` mkdir cat touch cat/fluffy sudo ln -s cat fat cd fat pwd ``` prints `/home/ianha/test/fat`. Ubuntu c program behavior using `getcwd` and `chdir` (what we interop to in System.IO.FileSystem) follows the link as expected: ``` #include #include #include int main(char args[]) { char* currentPath = malloc(300); char linkPath[] = ""fat""; chdir(linkPath); getcwd(currentPath, 299); printf(""%s\n"", currentPath); free(currentPath); } ``` Though the current behavior aligns with the c behavior on Unix, it is different from Windows so I decided to open this issue for Future visibility. @stephentoub " +7360 area-System.Collections System.Collections.Concurrent.Tests.BlockingCollectionTests.TestBugFix914998 failed in Windows outerloop See http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_windows_nt_debug/141/consoleFull ``` 08:57:28 System.Collections.Concurrent.Tests.BlockingCollectionTests.TestBugFix914998 [FAIL] 08:57:28 Assert.Equal() Failure 08:57:28 Expected: 1 08:57:28 Actual: -1 08:57:28 Stack Trace: 08:57:28 d:\j\workspace\outerloop_win---069ccc6f\src\System.Collections.Concurrent\tests\BlockingCollectionTests.cs(169,0): at System.Collections.Concurrent.Tests.BlockingCollectionTests.TestBugFix914998() ``` +7362 area-Infrastructure build.sh throws no errors even though there are test failures Build.sh will build and run the tests as part of its workflow, but if a test fails, the build will still succeed. This is wrong since CI will eventually just run build.sh so we specifically want that build.sh should fail if a test fails. +7363 area-System.Runtime Add tests for System.Runtime. Add tests to cover all coverage gaps in System.Runtime and System.Runtime.Extensions with the exception of the URI tests which still need to be ported. resolves #6445. +7364 area-System.Net 2 HttpClientHandler_ServerCertificates_Test failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/debian8.2_debug_tst/763/console ``` 14:24:52 System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.NoCallback_RevokedCertificate_RevocationChecking_Fails [FAIL] 14:24:52 Assert.Throws() Failure 14:24:52 Expected: typeof(System.Net.Http.HttpRequestException) 14:24:52 Actual: typeof(System.Threading.Tasks.TaskCanceledException): A task was canceled. 14:24:52 Stack Trace: 14:24:52 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:24:52 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:24:52 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() 14:24:52 at System.Net.Http.HttpClient.d__59.MoveNext() 14:24:52 --- End of stack trace from previous location where exception was thrown --- 14:24:52 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:24:52 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` ``` 14:26:32 System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds [FAIL] 14:26:32 System.Threading.Tasks.TaskCanceledException : A task was canceled. 14:26:32 Stack Trace: 14:26:32 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:26:32 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:26:32 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() 14:26:32 at System.Net.Http.HttpClient.d__59.MoveNext() 14:26:32 --- End of stack trace from previous location where exception was thrown --- 14:26:32 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:26:32 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:26:32 at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 14:26:32 at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__7.MoveNext() 14:26:32 --- End of stack trace from previous location where exception was thrown --- 14:26:32 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:26:32 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:26:32 --- End of stack trace from previous location where exception was thrown --- 14:26:32 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:26:32 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:26:32 --- End of stack trace from previous location where exception was thrown --- 14:26:32 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:26:32 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Both tests failed because a TaskCanceledException was thrown. These do not seem to be recurring failures. @davidsh , @CIPop +7367 area-System.Globalization DateTimeFormatInfoGetInstance.GetInstance failed on Unix in CI "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/debian8.2_debug_tst/764/console ``` 15:21:57 System.Globalization.Tests.DateTimeFormatInfoGetInstance.GetInstance(provider: TestIFormatProviderClass { }, expected: DateTimeFormatInfo { AbbreviatedDayNames = [""Sun"", ""Mon"", ""Tue"", ""Wed"", ""Thu"", ...], AbbreviatedMonthGenitiveNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AbbreviatedMonthNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AMDesignator = ""AM"", Calendar = GregorianCalendar { CalendarType = Localized, Eras = [...], IsReadOnly = True, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, MinSupportedDateTime = 0001-01-01T00:00:00.0000000, ... }, ... }) [FAIL] 15:21:57 Assert.Equal() Failure 15:21:57 Expected: DateTimeFormatInfo { AbbreviatedDayNames = [""Sun"", ""Mon"", ""Tue"", ""Wed"", ""Thu"", ...], AbbreviatedMonthGenitiveNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AbbreviatedMonthNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AMDesignator = ""AM"", Calendar = GregorianCalendar { CalendarType = Localized, Eras = [...], IsReadOnly = True, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, MinSupportedDateTime = 0001-01-01T00:00:00.0000000, ... }, ... } 15:21:57 Actual: DateTimeFormatInfo { AbbreviatedDayNames = [""���"", ""���"", ""���"", ""���"", ""���"", ...], AbbreviatedMonthGenitiveNames = [""1���"", ""2���"", ""3���"", ""4���"", ""5���"", ...], AbbreviatedMonthNames = [""1���"", ""2���"", ""3���"", ""4���"", ""5���"", ...], AMDesignator = ""������"", Calendar = GregorianCalendar { CalendarType = Localized, Eras = [...], IsReadOnly = False, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, MinSupportedDateTime = 0001-01-01T00:00:00.0000000, ... }, ... } 15:21:57 Stack Trace: 15:21:57 at System.Globalization.Tests.DateTimeFormatInfoGetInstance.GetInstance(IFormatProvider provider, DateTimeFormatInfo expected) ``` cc: @tarekgh, @hughbe " +7368 area-Infrastructure Modify netci.groovy to include outerloop for coverage resolves #1742 consumes https://github.com/dotnet/buildtools/pull/546 @mmitche @Priya91 @stephentoub +7372 area-System.Numerics Add missing tests to BigInteger resolves #6579 +7375 area-Infrastructure Building individual test projects on OSX has issues Right now, if you run `msbuild /t:RebuildAndTest /p:OSGroup=OSX` on some test projects on OSX, the run fails for a few reasons. In general, it seems that we are restoring some Windows binaries which fails early on, usually before any test runs. It seems that certain tests are not fully specifying their dependencies, which results in old versions of packages being pulled in. For example, System.Globalization.Tests.csproj, if run with the above command, fails when calling `Directory.GetCurrentDirectory()` in the Xunit console runner, because the System.IO.FileSystem.dll that is deployed next to the test is the Windows version. If you explicitly add a new version of this package to the tests dependencies, it is successfully restored and the test project gets further. Then it fails because the version of System.Runtime.InteropServices.RuntimeInformation.dll is the Windows version. If you add THAT to the project.json, then the tests finally pass. Easy repro: ``` cd src/System.Globalization/tests /t:RebuildAndTest /p:OSGroup=OSX ``` Interestingly, this issue does not occur if you ALSO pass `/p:TestWithLocalLibraries=true`. I haven't figured out what is happening in this case, but the correct DLL's seem to be copied in if this flag is set. It also shouldn't be necessary to pass `/p:OSGroup=OSX`, either. If this is omitted, no tests are run, though. We should auto-detect this and run tests anyways. We should have the information to make this possible. It's likely that this is also affecting the other non-Windows builds. @Priya91, @joperezr +7377 area-System.Reflection Consider adding PureAttribute to IntrospectionExtensions.GetTypeInfo Porting some code to .NET Core, I encountered the following code: ``` C# public static Type FindImplementationType(Type type, ObjectLiteral objLit, Func getResolverKind) { Contract.Requires(type.IsInterface); // ... } ``` So I added the call to GetTypeInfo(): ``` C# Contract.Requires(type.GetTypeInfo().IsInterface); ``` However, when code contracts actually runs, I get the following error: > error CC1036: Detected call to method 'System.Reflection.IntrospectionExtensions.GetTypeInfo(System.Type)' without [Pure] in contracts of method 'Util.ConfigurationConverter.FindImplementationType(System.Type,ObjectLiteral,System.Func`1)' Is it possible to add a PureAttribute to the GetTypeInfo() method? That seems like it might be a dependency we don't want to add to the contract, is there another way of specifying that a method is pure for code contracts? Should the attribute at least be added to the .NET Framework version of this method? +7379 area-System.Net Refactor MultipartContent to use async/await "Currently serialization of MultipartContent is split across multiple Task-based methods that each ContinueWith to each other. We can instead just write the code naturally in an async method. In addition to being simpler, it also helps with performance, especially when serializing to a memory stream and the whole operation can actually run synchronously. For example, with this little snippet: ``` C# var c = new HttpClient(); var url = new Uri(""http://httpbin.org/post""); for (int i = 0; i < 100; i++) { var mc = new MultipartContent(""someSubtype"", ""theBoundary""); mc.Add(new ByteArrayContent(Encoding.UTF8.GetBytes(""This is a ByteArrayContent""))); mc.Add(new StringContent(""This is a StringContent"")); await c.PostAsync(url, mc); } ``` the number of allocations drops nicely: ![image](https://cloud.githubusercontent.com/assets/2642209/14164603/e51fe004-f6ce-11e5-893e-9c1d10480102.png) cc: @davidsh, @cipop, @ericeil, @kapilash " +7380 area-Infrastructure Code coverage builds failing due to bin clashes "The last few code coverage builds in CI have failed, with lots of errors like this: ``` 16:19:59 Error : Multiple projects built twice with the same target path d:\j\workspace\code_coverage---7bd9c464\bin\ref\System.Threading\4.0.10.0\System.Threading.dll. 16:19:59 d:\j\workspace\code_coverage---7bd9c464\build.proj --> 16:19:59 Global Properties: 16:19:59 Coverage = true 16:19:59 d:\j\workspace\code_coverage---7bd9c464\src\tests.builds --> 16:19:59 Global Properties: 16:19:59 Coverage = true 16:19:59 DefaultBuildAllTarget = BuildAndTest 16:19:59 BuildAllProjects = true 16:19:59 d:\j\workspace\code_coverage---7bd9c464\src\System.Threading\tests\System.Threading.Tests.csproj --> 16:19:59 Global Properties: 16:19:59 Coverage = true 16:19:59 BuildAllProjects = true 16:19:59 OSGroup = Windows_NT 16:19:59 d:\j\workspace\code_coverage---7bd9c464\src\System.Threading\src\System.Threading.csproj --> 16:19:59 Global Properties: 16:19:59 Coverage = true 16:19:59 BuildAllProjects = true 16:19:59 OSGroup = Windows_NT 16:19:59 d:\j\workspace\code_coverage---7bd9c464\src\System.Threading\ref\System.Threading.csproj 16:19:59 Global Properties: 16:19:59 Coverage = true 16:19:59 BuildAllProjects = true ``` and then a note at the end: ``` 16:19:59 MSBUILD : error MSB4015: The build stopped unexpectedly because the ""ReusableLogger"" logger failed unexpectedly during shutdown. 16:19:59 System.Exception: 66 bin clashes were detected during the build. 16:19:59 at Microsoft.DotNet.Build.Tasks.BinClashLogger.Shutdown() 16:19:59 at Microsoft.Build.Evaluation.ProjectCollection.ReusableLogger.Shutdown() 16:19:59 at Microsoft.Build.BackEnd.Logging.LoggingService.ShutdownLogger(ILogger logger) ``` @ericstj, does this look familiar? http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/code_coverage_windows/204/consoleFull " +7383 area-Infrastructure Unix builds fail when trying to sign a project Calling `./build.sh /p:ConfigurationGroup=Release` throws the following error: ``` CSC : error CS7027: Error signing output with public key from file '/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_release/Tools/Test.snk' -- Cannot marshal 'return value': Unknown error. [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_release/src/System.Globalization/tests/System.Globalization.Tests.csproj] ``` [Here is a sample](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_ubuntu14.04_release/58/consoleFull) of a build that is running into the issue. +7390 area-Infrastructure Outerloop Unix runs failing with signing error ``` CSC : error CS7027: Error signing output with public key from file '/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_release/Tools/Test.snk' -- Cannot marshal 'return value': Unknown error. [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_release/src/System.Globalization/tests/System.Globalization.Tests.csproj] ``` e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_ubuntu14.04_release/58/consoleFull http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_ubuntu14.04_debug/64/consoleFull http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_osx_release/61/consoleFull http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_centos7.1_release_bld/42/consoleFull +7391 area-System.Console Boolean System.Console.get_KeyAvailable() "Following issue: #2936 I made a small project referencing the dev nuget feed. When using `SystemConsole.KeyAvailable`, I'm getting an error: System.MissingMethodException: Method not found: 'Boolean System.Console.get_Key Available()'. at SharpSyslogServer.Console.Program.Main(String[] args) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider) at Microsoft.Dnx.ApplicationHost.Program.<>c__DisplayClass3_0.b_ _0() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.Execute() The version I'm using is: ""System.Console"": ""4.0.0-rc2-23826"", And the branch with the code to reproduce it: https://github.com/bruno-garcia/SharpSyslogServer/tree/system-console-issue " +7397 area-System.Linq Explicitly void switch expressions imbalance stack on interpreter. "Explicitly void-typed `SwitchExpression`s are allowed to have typed default body and cases, which may even be heterogeneous: ``` C# Expression.Switch( typeof(void), Expression.Constant(0), Expression.Constant(1), null, Expression.SwitchCase(Expression.Constant(""Foo""), Expression.Constant(2)), Expression.SwitchCase(Expression.Constant(DateTime.MinValue), Expression.Constant(3)) ) ``` However for integral and string value types with the default comparison, the interpreter will put the value from the case (or default body) that ran on the stack, upsetting subsequent operations. " +7400 area-System.Data System.Data.SqlClient.SqlException: The connection is broken and recovery is not possible _From @robbpriestley on March 23, 2016 19:27_ Hello, I'm pretty new to EF and .NET Core, but I just thought I'd report an issue I had today and have been able to diagnose somewhat. It has to do with the runtime and applying a migration. In my ASP.NET Core project, when I removed the **dnx451** framework from project.json (intending instead to rely entirely on the **dnxcore50** framework) and I perform the following actions: ``` dnvm use default -r coreclr dnx ef database update ``` I consistently get the below exception. To resolve, I need to restore the **dnx451** framework in the project.json and use the **mono** runtime. Then, it works. My database is SQL Server running on Amazon RDS. Exception message: ``` Applying migration '20160323185819_Update1'. System.Data.SqlClient.SqlException: The connection is broken and recovery is not possible. The connection is marked by the server as unrecoverable. No attempt was made to restore the connection. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) at System.Data.SqlClient.SqlConnection.ValidateAndReconnect(Action beforeDisconnect, Int32 timeout) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.Data.Entity.Storage.Internal.RelationalCommand.<>c.b__13_0(DbCommand cmd, IRelationalConnection con) at Microsoft.Data.Entity.Storage.Internal.RelationalCommand.Execute[T](IRelationalConnection connection, Func`3 action, String executeMethod, Boolean openConnection, Boolean closeConnection) at Microsoft.Data.Entity.Storage.RelationalCommandExtensions.ExecuteNonQuery(IEnumerable`1 commands, IRelationalConnection connection) at Microsoft.Data.Entity.Migrations.Internal.Migrator.Execute(IEnumerable`1 relationalCommands) at Microsoft.Data.Entity.Migrations.Internal.Migrator.Migrate(String targetMigration) at Microsoft.Data.Entity.Design.MigrationsOperations.UpdateDatabase(String targetMigration, String contextType) at Microsoft.Data.Entity.Commands.Program.Executor.Execute(Action action) ClientConnectionId:7f7dac22-d9a0-49cc-950b-5a532b754754 The connection is broken and recovery is not possible. The connection is marked by the server as unrecoverable. No attempt was made to restore the connection. ``` _Copied from original issue: aspnet/EntityFramework#4891_ +7402 area-System.Globalization Add Globalization tests Adds new globalization tests and modified existing tests where the CultureInfo of the process is modified. All tests that modify the process state were moved to execute in their own process. replaces #7323. resolves #6429 +7403 area-System.Net System.Net.Sockets.Socket.SetLingerOption() throws exception on OS X 16 WCF OuterLoop tests fail in nightly Helix runs on OS X, all with the same stack trace. These tests pass on Ubuntu. It looks like SetLingerOption() is not properly hooked up in OS X. Here is the Helix log for one such test: ``` Path FunctionalTest.Client.ClientBase.Tests#DuplexClientBaseTests.DuplexClientBaseOfT_OverNetTcp_Synchronous_Call Run On Wednesday, March 30, 2016 12:57 PM Architecture AnyCpu Configuration CHK OperatingSystem OSX.1011 Test Output Test Failed Unhandled exception of type 'System.Net.Sockets.SocketException': System.Net.Sockets.SocketException : Invalid argument at System.Net.Sockets.Socket.SetLingerOption(LingerOption lref) at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Object optionValue) at System.ServiceModel.Channels.CoreClrSocketConnection.Abort(Int32 traceEventType, String timeoutErrorString, TransferOperation transferOperation) at System.ServiceModel.Channels.SocketConnection.Abort(String timeoutErrorString, TransferOperation transferOperation) at System.ServiceModel.Channels.SocketConnection.Abort() at System.ServiceModel.Channels.DelegatingConnection.Abort() at System.ServiceModel.Channels.ConnectionPool.AbortItem(IConnection item) at System.ServiceModel.Channels.CommunicationPool`2.EndpointConnectionPool.AbortItem(TItem item) at System.ServiceModel.Channels.IdlingCommunicationPool`2.IdleTimeoutEndpointConnectionPool.AbortItem(TItem item) at System.ServiceModel.Channels.CommunicationPool`2.EndpointConnectionPool.AbortConnections(List`1 idleItemsToClose) at System.ServiceModel.Channels.CommunicationPool`2.EndpointConnectionPool.Close(TimeSpan timeout) at System.ServiceModel.Channels.CommunicationPool`2.OnClose(TimeSpan timeout) at System.ServiceModel.Channels.CommunicationPool`2.Close(TimeSpan timeout) at System.ServiceModel.Channels.ConnectionPoolRegistry.Release(ConnectionPool pool, TimeSpan timeout) at System.ServiceModel.Channels.TcpChannelFactory`1.ReleaseConnectionPool(ConnectionPool pool, TimeSpan timeout) at System.ServiceModel.Channels.ConnectionOrientedTransportChannelFactory`1.d__52.MoveNext() . . . at System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan timeout) at System.ServiceModel.ClientBase`1.System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout) at System.ServiceModel.ClientBase`1.Close() at DuplexClientBaseTests.DuplexClientBaseOfT_OverNetTcp_Synchronous_Call() ``` See WCF issue https://github.com/dotnet/wcf/issues/951 +7405 area-System.Net Further reduce Task allocations in GetString/ByteArrayAsync The HttpContent ReadAsStringAsync and ReadAsByteArrayAsync methods ensure that the data is loaded into the buffer, via an async operation, and then process that buffer synchronously. This refactors that synchronous processing into its own method, and changes ReadAs methods to use a simple async method that does the await on LoadIntoBufferAsync and then calls these methods. This avoids any task-related allocations if the data is already buffered. It also makes those synchronous methods callable from the GetString/ByteArrayAsync directly, such that these methods can avoid an extra layer of continuations, as they already do their own buffering. I will separately follow-up on converting the rest of HttpContent to use async/await where it makes sense. cc: @davidsh, @cipop, @ericeil, @kapilash +7407 area-System.Runtime Add Byte, Int16, Int32, Int64, SByte, UInt16, UInt32 and UInt64 tests - Take advantage of xunit - Refactor and add tests for Parse and ToString Contributes to #6286 Cherry picked from #5490 Helps test dotnet/coreclr#3995 +7408 area-System.IO Add SetCurrentDirectory test for a symlink path resolves #7358 @stephentoub +7409 area-System.Runtime Regression in StringBuilder.AppendLine and Console.Write and Console.WriteLine "This code: ``` csharp static void Main() { var sb = new StringBuilder(); sb.Append(""hello""); sb.AppendLine(); sb.AppendLine(); sb.Append(""world""); sb.AppendLine(); var s = sb.ToString(); Console.WriteLine(s); } ``` In .NET Framework 4.6, it prints this output (with a completely empty line between the two words): ``` hello world ``` But when I write it in a dotnet-cli console app (generated using ""dotnet new"", and targeting `""frameworks"": {""netstandard1.5""}` and dependency `""Microsoft.NETCore.App"": { ""version"": ""1.0.0-rc2-23930""}`, then it omits the blank line: ``` hello world ``` " +7416 area-Serialization DataConstractJsonSerializer should Escape '<', '>', and '& "@cyberphone submitted the following suggestion in #5647 > Having looked around a bit it seems that the JSON world is rather divided and needs to consider supporting two different serializations, one which is ES6-compatible and another which is ES6-compatible but properly escaped to be declared in browser as a JavaScript object. The latter means that '<', '>', and '&' must be expressed as \unnnn. Preferably quotes around identifier-compatible property names are also dropped in the JavaScript mode. > > Well, ""on the wire"" only real JSON encoding makes sense, but if you express JSON as a JavaScript object embedded in an HTML page like this > > ``` javascript > var jsonData = { > myprop: """" > }; > ``` > > it will break in a browser so I made (in my Java tools...), JavaScript a serializer option that: > •escapes '<', '>', and '&' > •removes """" around properties that adhere to JavaScript identifier syntax (excluding for example ""my-prop"") > •prints data in a pretty (readable) way > > The cool thing is that JSON.stringify() is unaffected by this change since it using ES6 restores data to its true JSON format! " +7417 area-System.Data Only throw NotSupportedException if Integrated Security is set to True on non-Windows platforms Currently an exception is thrown if the keyword is set at all: https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionString.cs#L198 But we shouldn't expected any failures if Integrated Security is set to false on non-Windows platforms. +7421 area-System.Runtime Add null test for Nullable GetUnderlyingType +7424 area-System.Linq Expression.Convert() fails in the face of an explicitly named `op_implicit` that doesn't have correct arity Consider: ``` C# private class PerverselyNamedMembers { public readonly uint Field; public PerverselyNamedMembers(uint value) { Field = value; } public static uint op_Implicit() { return 0x8BADF00D; } } ``` Then while `Expression.Convert(Expression.Constant(new PerverselyNamedMembers(0)), typeof(uint)))` should fail with an `InvalidOperationException` it fails with an `IndexOutOfRangeException`. Worse is if there also really is an appropriate `implicit` or `explicit` operator (either on the target or the source type) as then it fails when it should succeed. It _is_ admittedly a perverse case, but perhaps worth guarding against all the same. The case of a multary method with such a name is even worse, as it would then be picked as a match. +7425 area-System.Threading Enable SpinWait tests in System.Threading. SpinWait tests in System.Threading were present but the file wasn't added to the csproj. resolves #6459 +7426 area-System.Threading Add test for CancellationTokenSource exceptions resolves #6578 +7433 area-System.Runtime GetFullPath_Windows_83Paths failed on Windows Nano ``` 19:42:53 Discovering: System.Runtime.Extensions.Tests 19:42:53 Discovered: System.Runtime.Extensions.Tests 19:42:54 Starting: System.Runtime.Extensions.Tests 19:42:54 System.IO.Tests.PathTests.GetFullPath_Windows_83Paths [FAIL] 19:42:54 Assert+WrapperXunitException : File path: d:\j\workspace\outerloop_win---ce410c48\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs. Line: 650 19:42:54 ---- Assert.Equal() Failure 19:42:54 ↓ (pos 12) 19:42:54 Expected: C:\Windows\TEMP\2516432d47634334a66fb171ea9af088.txt 19:42:54 Actual: C:\Windows\Temp\2516432d47634334a66fb171ea9af088.txt 19:42:54 ↑ (pos 12) 19:42:54 Stack Trace: 19:42:54 at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) 19:42:54 at Assert.Equal(String expected, String actual, String path, Int32 line) 19:42:54 at System.IO.Tests.PathTests.GetFullPath_Windows_83Paths() 19:42:54 ----- Inner Stack Trace ----- 19:42:54 at Assert.Equal(String expected, String actual, String path, Int32 line) 19:42:55 Finished: System.Runtime.Extensions.Tests ``` `GetTempPath` and `GetFullPath` returning temp path with different casing? cc @JeremyKuhne +7434 area-System.IO Filestream with FileOptions.Encrypted | FileOptions.WriteThrough fails to write on Nano ``` 19:39:16 System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo.ValidFileOptions(option: Encrypted) [FAIL] 19:39:16 System.UnauthorizedAccessException : Access to the path 'C:\Windows\TEMP\FileStream_ctor_str_fm_fa_fs_buffer_fo_3qffgkdi.mfj\ValidFileOptions_50' is denied. 19:39:16 Stack Trace: 19:39:17 at System.IO.Win32FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) 19:39:17 at System.IO.Win32FileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) 19:39:17 at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 19:39:17 at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 19:39:17 at System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo.CreateFileStream(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 19:39:17 at System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo.ValidFileOptions(FileOptions option) 19:39:37 System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo.ValidFileOptions(option: Encrypted, Asynchronous) [FAIL] 19:39:37 System.UnauthorizedAccessException : Access to the path 'C:\Windows\TEMP\FileStream_ctor_str_fm_fa_fs_buffer_fo_ts5rrahw.xkr\ValidFileOptions_50' is denied. 19:39:37 Stack Trace: 19:39:37 at System.IO.Win32FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) 19:39:37 at System.IO.Win32FileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) 19:39:37 at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 19:39:37 at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 19:39:37 at System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo.CreateFileStream(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 19:39:37 at System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo.ValidFileOptions(FileOptions option) 19:39:57 System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo.ValidFileOptions(option: Encrypted, DeleteOnClose, SequentialScan, RandomAccess, Asynchronous, WriteThrough) [FAIL] 19:39:57 System.UnauthorizedAccessException : Access to the path 'C:\Windows\TEMP\FileStream_ctor_str_fm_fa_fs_buffer_fo_1doetiwe.nbk\ValidFileOptions_50' is denied. 19:39:57 Stack Trace: 19:39:57 at System.IO.Win32FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) 19:39:57 at System.IO.Win32FileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) 19:39:57 at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 19:39:57 at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 19:39:57 at System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo.CreateFileStream(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 19:39:57 at System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo.ValidFileOptions(FileOptions option) 19:39:57 Finished: System.IO.FileSystem.Tests ``` +7436 area-System.IO clrcompression package issues Currently there is a Win7 and Win10, the one in Win10 has the appcontainer which causes some issues issues for folks outside of UWP. To help eliminate potential conflicts we should put the Win10 access in the netcore50 folder as that is the only one that is used for UWP. https://github.com/dotnet/corefx/blob/master/src/Native/pkg/runtime.native.System.IO.Compression/win10/runtime.native.System.IO.Compression.pkgproj#L13 `runtimes/lib/netcore50/` On top of that the ARM version of this package has a win7-arm asset which isn't even a valid RID. It would need to be a win8-arm or higher. We should do some validation on the various scenarios for this package. cc @mellinoe @ericstj +7437 area-System.Runtime LoadAssemblyByPath_ValidUserAssembly test failure in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/osx_debug_tst_prtest/2650/console ``` 19:00:04 System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadAssemblyByPath_ValidUserAssembly [FAIL] 19:00:04 System.IO.IOException : The process cannot access the file '/tmp/System.Runtime.Loader.Test.Assembly.dll' because it is being used by another ``` +7439 area-System.Net ASP.NET Core 1.0 - FTP upload files Hi, I'm trying to upload files to a FTP server. I've tried using old piece of code I've used ASP.NET MVC 5 but DNX Core does not see to provide FtpWebRequest class for FTP manipulation. One workaround has come to my mind to use HttpClient with external Web service (WebAPI 2) which will upload my files, but I would have to maintain two applications and I don't like this approach... So is there any other approach I could use and I'm apparently missing? Thanks! ![ftp](https://cloud.githubusercontent.com/assets/5251112/14212399/56cff172-f83b-11e5-9eb9-36905de58c6f.png) +7440 area-System.Net HttpClient not stripping Content-Length header after redirect on non-Windows systems Scenario: 1) Client sends POST to server with some content. 2) Server sends 302 response. 3) Client sends GET to redirect location **with Content-Length from original POST request but no content**. Example: Client: ``` POST / HTTP/1.1 Host: 10.135.34.146:5000 Accept: */* Accept-Encoding: gzip,deflate Content-Type: text/plain; charset=utf-8 Content-Length: 7 Expect: 100-continue content ``` Server: ``` HTTP/1.1 302 Found Date: Fri, 01 Apr 2016 17:48:58 GMT Content-Length: 0 Location: /Somewhere Server: Kestrel ``` Client: ``` GET /Somewhere HTTP/1.1 Host: 10.135.34.146:5000 Accept: */* Accept-Encoding: gzip,deflate Content-Type: text/plain; charset=utf-8 Content-Length: 7 <----------------------- wrong ``` This is breaking one of our functional tests: https://github.com/aspnet/MusicStore/blob/dev/test/E2ETests/OpenIdConnectTests.cs Reproes on Linux and Mac. +7441 area-Serialization Improve serialization perf tests - Refactor all serialization performance tests to remove duplicated code. Adding more perf tests for all serializers is also more straightforward. Update namespace so the tests show up properly in reports. - Add a flag in test project to enable running tests without project references, which helps us run against Desktop facades for comparison purpose - Add performance tests for Json.Net for comparison purpose Previous PR: https://github.com/dotnet/corefx/pull/7119 @zhenlan @SGuyGe @shmao @brianrob +7447 area-System.Xml [ToFDisable] Port tests for: System.Xml.ReaderWriter "As part of moving out of ToF and into the open, I've been going through the ""Tree of the future"" tests and calculating which of those tests provide coverage that we're missing in the open tests. The goal of this is to get the open tests universally better than the ToF tests so that we can turn the ToF tests off for ProjectK runs and save us all a lot of headache diagnosing test failures from potentially outdated tests. For System.Xml.ReaderWriter, we're missing 13883 lines of coverage. To fulfill the uncovered lines we would need to either create new tests for them or port 6 ToF tests to the open. Those tests are: - [ ] System.Xml.ReaderWriter\4.0.0.0\Writers\XmlWriterApi\System.Xml.RW.XmlWriterApi.Tests_FullRun.XML - [ ] System.Xml.ReaderWriter\4.0.0.0\XmlConvert\System.Xml.RW.XmlConvert.Tests_FullRun.XML - [ ] System.Xml.ReaderWriter\4.0.0.0\Readers\CharCheckingReader\System.Xml.RW.CharCheckingReader.Tests_FullRun.XML - [ ] System.Xml.ReaderWriter\4.0.0.0\Readers\FactoryReader\System.Xml.RW.FactoryReader.Tests_FullRun.XML - [ ] System.Xml.ReaderWriter\4.0.0.0\Readers\CustomReader\System.Xml.RW.CustomReader.Tests_FullRun.XML - [ ] System.Xml.ReaderWriter\4.0.0.0\Readers\SubtreeReader\System.Xml.RW.SubtreeReader.Tests_FullRun.XML Coverage reports, coverage xml files, and detailed json lists of each piece of missing coverage and the corresponding ToF test that fills it are available on request. " +7448 area-System.Xml [ToFDisable] Port tests for: System.Xml.XDocument "As part of moving out of ToF and into the open, I've been going through the ""Tree of the future"" tests and calculating which of those tests provide coverage that we're missing in the open tests. The goal of this is to get the open tests universally better than the ToF tests so that we can turn the ToF tests off for ProjectK runs and save us all a lot of headache diagnosing test failures from potentially outdated tests. For System.Xml.XDocument, we're missing 945 lines of coverage. To fulfill the uncovered lines we would need to either create new tests for them or port 5 ToF tests to the open. Those tests are: - [ ] System.Xml.XDocument\4.0.0.0\TreeManipulation\TreeManipulation.Tests_FullRun.XML - [ ] System.Xml.XDocument\4.0.0.0\Properties\Properties.Tests_FullRun.XML - [ ] System.Xml.XDocument\4.0.0.0\xNodeBuilder\xNodeBuilder.Tests_FullRun.XML - [ ] System.Xml.XDocument\4.0.0.0\misc\Misc.Tests_FullRun.XML - [ ] System.Xml.XDocument\4.0.0.0\xNodeReader\xNodeReader.Tests_FullRun.XML Coverage reports, coverage xml files, and detailed json lists of each piece of missing coverage and the corresponding ToF test that fills it are available on request. " +7449 area-System.IO Port AccessControl for System.IO.Pipes Port PipeSecurity to Open and expose it in a new windows specific library `System.IO.Pipes.AccessControl` +7454 area-System.ComponentModel Implement more System.ComponentModel.TypeConverter surface This implements the remaining surface, removing `CultureInfoConverter` and `ReferenceConverter` due to their problematic purposes and implementations. @twsouthwick +7457 area-System.Globalization IdnMapping unnecessarily allocates substrings Discovered this while going through the code in #7291. It looks like `IdnMapping` is allocating a substring where it shouldn't need to, specifically [here](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Globalization/IdnMapping.cs#L85) and [here](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Globalization/IdnMapping.cs#L132). I'm going to open up a PR in a couple of days for this when I have time, but I'm raising an issue here first as a self-reminder. +7458 area-Microsoft.CSharp Microsoft.CSharp code could use some refactoring/optimization This program: ``` cs public static void Main() { for (int i = 0; i < 1000000000; i++) { dynamic thing = new object(); thing.Equals(null); } } ``` causes _many_ GC marks when run from the Visual Studio profiler within a short period of time. Here's a snapshot from my machine: ![](http://i.imgur.com/NVxqwfk.png) Here's the data from the memory profiler about which objects are being allocated the most: ![](http://i.imgur.com/smsN2px.png) Of course, obviously perf is not the first consideration when using `dynamic` objects, but it looks like a lot of these could be avoided. I looked a bit further into the `Microsoft.CSharp` package where this code is coming from, and it looks like the code is [somewhat of a mess.](https://github.com/dotnet/corefx/blob/59f4427b223dc944fb189a6fc9ee6186d690974b/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Types/TypeArray.cs#L16) It uses a lot of [Hungarian notation](https://github.com/dotnet/corefx/blob/59f4427b223dc944fb189a6fc9ee6186d690974b/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Symbols/SymbolManagerBase.cs#L325) and classes with [COM-style all-caps names.](https://github.com/dotnet/corefx/blob/59f4427b223dc944fb189a6fc9ee6186d690974b/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Symbols/SymbolManagerBase.cs#L32-L34) As for perf, [here's](https://github.com/dotnet/corefx/blob/ac67ffac987d0c27236c4a6cf1255c2bcbc7fe7d/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Syntax/KnownName.cs#L60) a random example of where it could be optimized, and also [here](https://github.com/dotnet/corefx/blob/59f4427b223dc944fb189a6fc9ee6186d690974b/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Symbols/SymbolManagerBase.cs#L378-L381). As another example, [this](https://github.com/dotnet/corefx/blob/59f4427b223dc944fb189a6fc9ee6186d690974b/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Types/TypeArray.cs#L14) looks like it could be a struct. Posting this here as a self-note, since I'm planning to submit a couple of PRs to remedy this in the next couple of weeks. +7459 area-System.Net Cookie class does not abide by the MSDN docs ## Cookie Constructor (String, String) A `CookieException` is thrown in the following circumstances, according to MSDN: - The `name` parameter is null. - The `name` parameter is of zero length. - The `name` parameter contains an invalid character. - **The `value` parameter is null.** - **The `value` parameter contains a string not enclosed in quotes that contains an invalid character.** The circumstances in bold are currently not followed by the Cookie class - no exception is thrown, but MSDN tells us one should be. ## Cookie.Value Property This field has the following remark: **The Value of a Cookie must not be null. The following characters are reserved and cannot be used for this property: semicolon, comma.** - MSDN does not make it clear if an exception is thrown or not in the above circumstances. - However, in corefx, the second condition is not checked. If a value is null, it is converted to an empty string. ## Solutions - Fix the documentation according to the current behaviour - Adapt the documentation for Cookie.Value Property and change some current behaviour - Change all the behaviours to that described in the MSDN docs ## Notes - Corefx currently aligns with the behaviour of .NET desktop (no exceptions are thrown there) - I reckon its quite important to ensure that Cookie.Value can never be null, as this is documented in MSDN and therefore can lead to NREs. The solutions to this are throwing an exception or setting Cookie.Value to string.Empty /cc @davidsh +7462 area-System.Net Fix CurlHandler Content-Length handling on redirects CurlHandler was explicitly setting the Content-Length header, which overrides libcurl's default handling of Content-Length. This means that Content-Length was being sent even when it shouldn't have been, such as when redirecting a POST to a GET. This commit changes how we handle Content-Length. Rather than explicitly setting the header ourselves, we let libcurl do it, and we tell it the length of the input via the INFILESIZE and POSTFIELDSIZE options. A few other issues addressed as well in the act of fixing this: - A SafeHandle wasn't being disposed of in the case of a redirect. - 301 wasn't being considered a redirect status code for the purposes of credential handling. - Some code could have been a bit cleaner. Fixes https://github.com/dotnet/corefx/issues/7440 cc: @kapilash, @ericeil, @davidsh, @cesarbs +7464 area-System.Net Refactor HttpContent with async/await cc: @davidsh, @cipop, @ericeil, @kapilash +7465 area-System.Security Two CNG tests failing on Win8 outerloop http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_windows_nt_debug/146/consoleFull ``` 14:10:20 System.Security.Cryptography.Cng.Tests.TripleDESCngTests.VerifyMachineKey [FAIL] 14:10:20 Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Access denied 14:10:20 Stack Trace: 14:10:20 D:\j\workspace\outerloop_win---069ccc6f\src\System.Security.Cryptography.Cng\src\System\Security\Cryptography\CngKey.Create.cs(53,0): at System.Security.Cryptography.CngKey.Create(CngAlgorithm algorithm, String keyName, CngKeyCreationParameters creationParameters) 14:10:20 D:\j\workspace\outerloop_win---069ccc6f\src\System.Security.Cryptography.Cng\tests\SymmetricCngTestHelpers.cs(240,0): at System.Security.Cryptography.Cng.Tests.SymmetricCngTestHelpers.VerifyMachineKey(CngAlgorithm algorithm, Int32 plainBytesCount, Func`2 persistedFunc, Func`1 ephemeralFunc) 14:10:20 D:\j\workspace\outerloop_win---069ccc6f\src\System.Security.Cryptography.Cng\tests\TripleDESCngTests.cs(79,0): at System.Security.Cryptography.Cng.Tests.TripleDESCngTests.VerifyMachineKey() 14:10:20 System.Security.Cryptography.Cng.Tests.AesCngTests.VerifyMachineKey [FAIL] 14:10:20 Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Access denied 14:10:20 Stack Trace: 14:10:20 D:\j\workspace\outerloop_win---069ccc6f\src\System.Security.Cryptography.Cng\src\System\Security\Cryptography\CngKey.Create.cs(53,0): at System.Security.Cryptography.CngKey.Create(CngAlgorithm algorithm, String keyName, CngKeyCreationParameters creationParameters) 14:10:20 D:\j\workspace\outerloop_win---069ccc6f\src\System.Security.Cryptography.Cng\tests\SymmetricCngTestHelpers.cs(240,0): at System.Security.Cryptography.Cng.Tests.SymmetricCngTestHelpers.VerifyMachineKey(CngAlgorithm algorithm, Int32 plainBytesCount, Func`2 persistedFunc, Func`1 ephemeralFunc) 14:10:20 D:\j\workspace\outerloop_win---069ccc6f\src\System.Security.Cryptography.Cng\tests\AesCngTests.cs(82,0): at System.Security.Cryptography.Cng.Tests.AesCngTests.VerifyMachineKey() ``` +7468 area-System.Net Avoid string.Split allocations in System.Net.Http Similar changes that were made in the `FrameworkName` PR in #7288, except for System.Net.Http. Also switched a couple of places to use `nameof`. @stephentoub and @davidsh, I found another place that could be optimized similarly to not use `string.Split` [here](https://github.com/dotnet/corefx/compare/master...jamesqo:string-split?expand=1#diff-7cb88d670b5606422fd0cabab628f90cR505). Do you think it's worth it? It would lead to a lot of boilerplate code since this is a 5-element array, but would also help us avoid a couple of `Substring` allocations in addition to the `Split` ones, since `parts[0]`, `parts[4]`, and `parts[2]` wouldn't actually have to be used. +7469 area-System.Net Use `using static` in CurlHandler Saw [this](https://github.com/dotnet/corefx/compare/master...jamesqo:curl-todo?expand=1#diff-e5ffb568f6f994c4243d35ef1b6830ceL14) TODO suggesting to replace all of the `using Foo = Interop.Http.Foo` with `using static` once C# 6 was being used. Now that it is, I took the liberty of adding the directives and running `sed` on all the files in the directory to replace all of the explicit references. Do you guys think I should just remove the `using` directives at the top of the file and limit it to that, or should the changes I've made with `sed` be kept? cc @davidsh @stephentoub +7473 area-System.Net Problem installing System.Net.NetworkInformation in a project targeting dnxcore50 "Hi I'm trying to run a simple code to print Hostname using static class Dns.(using System.Net) /_string HostName = Dns.GetHostName(); Console.WriteLine(""Host Name of machine ="" + HostName);_/ This runs fine on VS 2015 and moreover **assembly portability analyser claims that it's 100% portable to dot NetCore 5.0.** However, DNX on Ubuntu 14.04 fails to run it with following error. **error CS0103: The name 'Dns' does not exist in the current context** Note: Its the same code as ran on VS2015. I just ported it to ubuntu. It's not a programming error. Is the location of Dns changed or its just not supported in latest DNX? I've noticed a **similar behaviour for class NetworkInterface** which also **depends on system.dll** assembly. Again, the **porting tool reported that code is 100% portable**, but it actually failed in compilation with following error. **error CS0246: The type or namespace name 'NetworkInterface' could not be found (are you missing a using directive or an assembly reference?)** I've checked the project.lock.json file for the linux project and there was no mention of System.dll in it. However the same was present as References in VS 2015. Please let me know if I'm missing something. Regards " +7474 area-System.Net Avoid array allocations in HttpStatusDescription Currently, `HttpStatusDescription` in `Common` allocates a static array to map status codes to messages. I've replaced it with a giant switch-case statement that both 1) takes less lines of code and 2) is self explanatory (doesn't need comments explaining what code the message represents). Script used to generate the output: https://gist.github.com/jamesqo/78121659bb7b555ac63ecc05f0e7b4de cc @davidsh @stephentoub +7475 area-System.Net Use nameof in WinRT's HttpClientHandler Found a couple of places in the netcore50 `HttpClientHandler` that look like they could use `nameof`, so I changed them accordingly. cc @stephentoub +7483 area-System.Net Tweak SSL context callback in CurlHandler - Perf. We were creating a SafeHandle for the SSL context, but it didn't own the underlying handle, and we were then just passing it back to two native functions. We can skip the SafeHandle altogether, saving on the allocation and marshaling costs for all SSL connections. - Error handling. For robustness, we should be ensuring that any problems related to getting the state from the GCHandle result in returning an error code rather than propagating an exception, which will likely crash. - Naming. The name of the callback method is no longer correct, as it's used for more than just cert verification. cc: @bartonjs, @ericeil, @kapilash +7484 area-System.IO CurrentDirectory test failed in CI on Ubuntu http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/ubuntu_release_tst_prtest/3614/console ``` 05:32:47 System.IO.Tests.Directory_GetFileSystemEntries_str_str_so_alldirs.CurrentDirectory [FAIL] 05:32:47 System.IO.DirectoryNotFoundException : Could not find a part of the path '/mnt/j/workspace/dotnet_corefx/ubuntu_release_tst_prtest/bin/tests/Linux.AnyCPU.Release/System.IO.FileSystem.Tests/dnxcore50/slteu4ll.311'. 05:32:47 Stack Trace: 05:32:47 at System.IO.UnixFileSystem.FileSystemEnumerable`1.OpenDirectory(String fullPath) 05:32:47 at System.IO.UnixFileSystem.FileSystemEnumerable`1.d__11.MoveNext() 05:32:47 at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source, Int32& length) 05:32:47 at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption) 05:32:47 at System.IO.Directory.GetFileSystemEntries(String path, String searchPattern, SearchOption searchOption) 05:32:47 at System.IO.Tests.Directory_GetFileSystemEntries_str.CurrentDirectory() ``` +7485 area-System.Net Add CurlHandlers.SslProtocols option (Ignore the first commit for review purposes; it's a dup of #7483.) Implements the SslProtocols option on CurlHandler, enabling a developer to further constraint which SSL protocols are used. With libcurl on the OpenSSL backend (the recommended configuration), we can provide full-fidelity for this option. With libcurl on another SSL backend, we can allow choosing all three TLS protocols or just one TLS protocol, but we can't support selecting two of the three. Note that, as with the previous certificate properties, I'm not adding this to the contract. We can customize the entrypoint based on how we ultimately decide to expose this, but this commit provides the implementation and testing for it, regardless of how we choose to expose it. cc: @davidsh, @bartonjs, @ericeil, @kapilash, @joshfree +7487 area-System.ComponentModel Add tests for MemberDescriptor and CustomTypeDescriptor @chlowell +7488 area-System.IO Make Unix EnumerateFileSystemEntries not throw on missing middle dir UnixFileSystem fileentry enumeration will throw an DirectoryNotFoundException when it yields a directory that is then deleted before enumeration of that directory's contents can be completed. This commit modifies the behavior to ignore the exception throw and continue iterating through the other entries instead. It also adds a Unix-Specific test to ensure the new behavior functions as expected. resolves #7484 @stephentoub +7490 area-System.Net Add CurlHandler.MaxConnectionsPerServer option Adds MaxConnectionsPerServer to CurlHandler. cc; @davidsh, @cipop, @ericeil, @kapilash, @bartonjs, @joshfree +7492 area-System.Net Add CurlHandler.ConnectTimeout Adds a timeout to the connection phase of CurlHandler. cc: @davidsh, @cipop, @ericeil, @kapilash, @bartonjs, @joshfree +7494 area-System.Net Fix encoding of proxy credentials in CurlHandler We need to URL encode the username/password for a proxy. Otherwise, for example, a colon in the name could mess up how the concatenated username and password are parsed. libcurl URL decodes them. cc: @ericeil, @kapilash +7496 area-Infrastructure Trouble finding includes for OpenSSL on OS X 10.10/10.11 On OS X 10.10 & 10.11, System.Security.Cryptograhpy.Native is having problems finding the copy of OpenSSL found by homebrew on my system. I originally get the error: ``` /corefx/src/Native/System.Security.Cryptography.Native/openssl.c:14:10: fatal error: 'openssl/asn1.h' file not found #include ``` If I work around this issue by adding OPENSSL_INCLUDE_DIR to the target header search path, I then have errors with warnings in the headers. For example: ``` /usr/local/include/openssl/ecdsa.h:295:14: error: parameter 'flags' not found in the function declaration [-Werror,-Wdocumentation] /usr/local/include/openssl/objects.h:1025:10: error: macro name is a reserved identifier [-Werror,-Wreserved-id-macro] /Sources/dotnet/corefx/src/Native/System.Security.Cryptography.Native/pal_err.cpp:25:27: error: use of old-style cast [-Werror,-Wold-style-cast] *isAllocFailure = ERR_GET_REASON(err) == ERR_R_MALLOC_FAILURE; ^~~~~~~~~~~~~~~~~~~ /usr/local/include/openssl/err.h:246:34: note: expanded from macro 'ERR_GET_REASON' # define ERR_GET_REASON(l) (int)((l)&0xfffL) ``` Is this user error or a problem with the build? If it's a problem with the build, any suggestions on what kind of fix is most likely to be accepted back? Tested on OS X 10.11 Apple LLVM version 7.3.0 (clang-703.0.29) Target: x86_64-apple-darwin15.4.0 Thread model: posix Homebrew 0.9.9 (git revision ac80; last commit 2016-04-03) Homebrew/homebrew-core (git revision 0db2; last commit 2016-04-03) openssl: stable 1.0.2g +7497 area-System.Security Add missing coverage for Crypto CSP One of the VerifyHash methods in RSACryptoServiceProvider wasn't being tested. I modified the existing VerifyHashSignature test to use this VerifyHash method in addition to the one already in place (RSA.VerifyHash). resolves #6450 +7499 area-System.Net Add Sockets performance tests We currently have no formal performance testing of Sockets. We have a couple of tests checked in, but they are disabled, haven't been adapted to the xunit.performance infrastructure, and test only a couple of particular end-to-end scenarios. We should add new tests to cover individual operations, as well as a couple of larger scenarios. +7501 area-System.ComponentModel TypeConverter cannot convert from String to Uri on Core "``` TypeDescriptor.GetConverter(typeof(Uri)).ConvertFromInvariantString(""http://www.bing.com""); ``` Results in: ``` System.InvalidOperationException : Failed to convert 'http://www.bing.com' to type 'System.Uri'. ---- System.NotSupportedException : TypeConverter cannot convert from System.String. ``` Works fine on netstandard " +7503 area-System.Net Add CurlHandler.DefaultProxyCredentials cc: @davidsh, @cipop, @ericeil, @kapilash, @bartonjs, @joshfree +7505 area-System.Net Add HttpClientHandler redirect tests Right now we only have redirect tests for 302. It'd be good to have tests for other redirects (301, 303, 307), and to do that, ideally we'd modify our existing Redirect.ashx endpoint to support returning other redirect status codes. +7506 area-System.Net Ignore EINVAL from SO_LINGER on OSX "On OSX, `SO_LINGER` can return `EINVAL` if the other end of the socket is already closed. In that case, there is nothing for this end of the socket to do, so there's no reason to ""linger."" Windows and Linux do not return errors in this case, so we'll simulate success on OSX as well. @stephentoub Fixes #7403 " +7513 area-System.ComponentModel Add TypeId extension to mimic .NET Framework implementation @chlowell +7514 area-Infrastructure Consider running code coverage builds in Release mode Currently code coverage runs (in the CI) run in debug mode by default. I propose considering changing the build to be a release build for the following reasons: 1. Some debug code will always be uncovered (e.g. numerous `internal void Dump()` methods in System.Net or System.Text.RegularExpressions) 2. Release mode tends to run quicker than debug (I don't have empirical evidence to prove this, and this is definitely a smaller reason than 1.) 3. Tests (typically) test code that the API consumer calls publically to a .dll file built in release mode. If any behaviour is considerably different in release mode then it may not be covered in debug CC runs. This could cause problems. 4. A more accurate coverage report I'd be interested in hearing the arguments for keeping the CC runs in debug mode. +7515 area-System.Net Add CurlHandler.MaxResponseHeadersLength Adds the MaxResponseHeadersLength property to CurlHandler. I also changed the ConnectTimeout default to Infinite until the property is exposed; otherwise, we're enforcing a 60 second timeout on connects without providing any way to override it. cc: @davidsh, @cipop, @ericeil, @kapilash +7517 area-System.Net SslStream test failure in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug_prtest/4495/console ``` 07:32:12 System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_LargeWrites_Sync_Success(randomizedData: False) [FAIL] 07:32:12 Handshake complete 07:32:12 Expected: True 07:32:12 Actual: False 07:32:12 Stack Trace: 07:32:12 d:\j\workspace\windows_nt_de---06b7984d\src\System.Net.Security\tests\FunctionalTests\SslStreamStreamToStreamTest.cs(105,0): at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_LargeWrites_Sync_Success(Boolean randomizedData) ``` +7518 area-System.Data SqlClient: Unable to load DLL 'sni.dll' We are seeing a number of folks hitting the `Unable to load DLL 'sni.dll'` issue with the latest RC2 builds. Folks are hitting this when using EF Core but have confirmed that the issue exists when working directly with SQL Client too. See https://github.com/aspnet/EntityFramework/issues/4953 for a good description from someone hitting the issue. cc @mrmeek who filed the above issue +7520 area-System.Reflection How to use Reflection over .net core libraries? "It is not clear how to properly use reflection over .net core libraries. When trying to use T4 template to reflect over a class library (we do this to generate Typescript definition files of our Dto's. The way we have always done this and expected it to work is the following a simple template: ``` <#@ template debug=""false"" language=""C#"" #> <#@ assembly name=""System.Core"" #> <#@ assembly name=""System.Collections"" #> <#@ assembly name=""System.Linq"" #> <#@ assembly name=""$(SolutionDir)\srcCore\CM.Dtos\bin\Debug\dnx451\CM.Dtos.dll"" #> <#@ import namespace=""System"" #> <#@ import namespace=""System.Linq"" #> <#@ import namespace=""System.Reflection"" #> <#@ import namespace=""System.Collections.Generic"" #> <#@ output extension="".d.ts"" #> <# var assembly = Assembly.GetAssembly(typeof(CM.Dtos.PagedRequest)); var allTypes = assembly.GetTypes().ToList(); ``` this does not seem to work with dnx/core libraries as we expected. How would one crack open library the correct way to reflect over it's classes? " +7522 area-System.Net HttpResponseMessage.Dispose does not cancel an ongoing call to ReadAsync "The ""netcore50"" but not the ""dnxcore50"" version of System.Net.Http 4.0.1-beta-23516 has a bug where calling HttpResponseMessage.Dispose() does not cancel an ongoing call to responseStream.ReadAsync(). This breaks the SignalR client in Universal Windows Platform apps. Here is an example of code that will hang indefinitely if HttpResponseMessage.Dispose() is called before the response body is completed. ``` c# using (var client = new HttpClient()) { var request = new HttpRequestMessage(HttpMethod.Get, ""http://localhost:5000/""); HttpResponseMessage response = null; var ignore = Task.Delay(5000).ContinueWith(_ => { mLogger.WriteLine(""Canceling request""); response.Dispose(); }); mLogger.WriteLine(""Making request""); response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, CancellationToken.None); mLogger.WriteLine(""Got headers""); var buffer = new byte[1024]; int count = -1; var responseStream = await response.Content.ReadAsStreamAsync(); while (count != 0) { mLogger.WriteLine(""ReadAsync""); count = await responseStream.ReadAsync(buffer, 0, 1024); mLogger.WriteLine(""Finished ReadAsync""); } mLogger.WriteLine(""Request complete""); } ``` **Expected behavior (which happens with the dnxcore50 assembly):** When HttpResponseMessage.Dispose() is called, the ongoing call to responseStream.ReadAsync throws a TaskedCanceledException. **Actual behavior (which happens only with dotnetcore50 assembly):** stream.ReadAsync never completes after HttpResponseMessage.Dispose() is called. To make matters even worse, when/if the response body actually does complete, responseStream.ReadAsync _still_ never finishes. **Note:** If the CancellationToken that is passed to Send is canceled before client.SendAsync completes, SendAsync will throw a TaskedCanceledException with both the dnxcore50 and netcore50 versions of System.Net.Http. That is not what this bug is about. " +7527 area-Microsoft.CSharp Dynamic type resolution goes into infinite recursion "Under certain circumstances dynamic type resolution goes into infinite recursion (causing program to terminate with StackOverflowException) alternating between these methods: ``` Microsoft.CSharp.dll!Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager.SubstTypeCore(Microsoft.CSharp.RuntimeBinder.Semantics.CType type, Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext pctx) Microsoft.CSharp.dll!Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager.SubstTypeArray(Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray taSrc, Microsoft.CSharp.RuntimeBinder.Semantics.SubstContext pctx) ``` This happens only when an argument of type ""dynamic"" is passed, of course. Static typing works fine. Repro: ```c# using System; class Program { static void Main(string[] args) { // vvv--- changing ""dynamic"" to ""var"" or ""string"" here fixes the issue dynamic parsedDocument = """"; var mystery = new FailingClass(); Console.WriteLine(""Entering...""); mystery.FailingMethod(parsedDocument); Console.WriteLine(""... and we are back!""); Console.ReadLine(); } } public abstract class CommonBase {} // Technically, this class does nothing and deriving from it should be identical to deriving from CommonBase public abstract class FailingClassBase : CommonBase {} // However, deriving from CommonBase instead of FailingClassBase here also fixes the issue // ----------------------------vvvvvvvvvvvvvvvv public class FailingClass : FailingClassBase> { public void FailingMethod(T src) {} } ``` [EDIT] Fixed callstack formatting by @karelz [EDIT] Inlined source code from original attachment [repro.txt](https://github.com/dotnet/corefx/files/205290/repro.txt), with minor formatting changes by @karelz" +7528 area-Meta Add not supported assemblies for more packages Some packages are only supported starting with a particular RID (EG: System.Runtime.WinRT packages) For these we should add a dummy impl so that folks can compile, JIT, then light up on win8. +7538 area-Infrastructure Building is slow on Linux On Linux, it takes quite a bit of time to build CoreFX from scratch even if skipping tests (about 52 minutes). However, I was surprised to see that if you just do a change in one of the C# file, the recompilation time (it should really be just recompiling an assembly) is quite long (about 31 minutes). This is on a relatively fast machine with a SSD drive. Is this expected? If not, what am I doing wrong? If so, should we have a fast mode that only compiles the assemblies for which their C# code has changed? Note that on Windows, the behavior is the same but it doesn't take the same amount of time (5 minutes for a rebuild with no changes). +7545 area-System.Security ConvertStringSidToSid() result compared against TRUE "`System.Security.Principal.CreateSidFromString()` has this code: ``` if (TRUE != Interop.mincore.ConvertStringSidToSid(stringSid, out ByteArray)) ``` It looks like this causes `ConvertStringSidToSid()` WinAPI function call and `ConvertStringSidToSid()` is documented to return either ""zero"" or ""non-zero"". So this check should compare the result against `FALSE`, not `TRUE`. " +7546 area-System.Net Improve performance of WebUtility "## Summary No escaping needed: - x5 performance improvement - 0 allocations Basic escaping needed (single char): - 20% performance improvement - Allocations cut by a third Advanced escaping needed (surrogate pair): - 15% performance improvement - Allocations cut by a third ## Benchmark Results - No breaking change in behaviour in these validation tests - Times measured in seconds ![benchmark](https://cloud.githubusercontent.com/assets/1275900/14318468/e4ba70d0-fc04-11e5-8a42-3604666dbab3.png) ## Benchmark Code and !!Validation Tests!! - **To ensure there were no breaking changes** I ran the new output against the old output for every single char and surrogate pair in the UTF16 plane. ``` c# static unsafe void Main(string[] args) { PerformanceTests(); VerificationTests(); Console.ReadLine(); } private static void PerformanceTests() { Console.WriteLine(""**** MEASURE NO ESCAPING ****""); TimeAction(""Old: "", () => Old.UrlEncode(""abcxyz"")); TimeAction(""New: "", () => New.UrlEncode(""abcxyz"")); Console.WriteLine(""**** MEASURE SPACES ****""); TimeAction(""Old: "", () => Old.UrlEncode(""abc xyz"")); TimeAction(""New: "", () => New.UrlEncode(""abc xyz"")); Console.WriteLine(""**** MEASURE ESCAPING 1 TIMES ****""); TimeAction(""Old: "", () => Old.UrlEncode(""\u007F"")); TimeAction(""New: "", () => New.UrlEncode(""\u007F"")); Console.WriteLine(""**** MEASURE ESCAPING 2 TIMES ****""); TimeAction(""Old: "", () => Old.UrlEncode(""\u07FF"")); TimeAction(""New: "", () => New.UrlEncode(""\u07FF"")); Console.WriteLine(""**** MEASURE ESCAPING 3 TIMES ****""); TimeAction(""Old: "", () => Old.UrlEncode(""\u1234"")); TimeAction(""New: "", () => New.UrlEncode(""\u1234"")); Console.WriteLine(""**** MEASURE ESCAPING SURROGATE PAIR ****""); TimeAction(""Old: "", () => Old.UrlEncode(""\uD801\uDC37"")); TimeAction(""New: "", () => New.UrlEncode(""\uD801\uDC37"")); } public static void TimeAction(string prefix, Action action) { action(); GC.Collect(); var sw = new Stopwatch(); for (int iter = 0; iter < 5; iter++) { int gen0 = GC.CollectionCount(0); sw.Restart(); for (int i = 0; i < 100000000; i++) { action(); } sw.Stop(); Console.WriteLine($""{prefix}Time: {sw.Elapsed.TotalSeconds}\tGC0: {GC.CollectionCount(0) - gen0}""); } } private static void VerificationTests() { for (int i = 0; i < char.MaxValue; i++) { char c = (char)i; string oldString = Old.UrlEncode(c.ToString()); string newString = New.UrlEncode(c.ToString()); if (!oldString.Equals(newString)) { Console.WriteLine($""FAIL for char {i}. Expected: {oldString}. Actual: {newString}""); } } for (int i = 0x10000; i < 0x10FFFF; i++) { string utf32 = char.ConvertFromUtf32(i); string oldString = Old.UrlEncode(utf32); string newString = New.UrlEncode(utf32); if (!oldString.Equals(newString)) { Console.WriteLine($""FAIL for char {i}. Expected: {oldString}. Actual: {newString}""); } } Console.WriteLine(""Passes Validation Tests""); } ``` /cc @davidsh, @stephentoub, @jamesqo " +7547 area-System.Security ConvertStringSdToSd()/ConvertSdToStringSd() result compared against TRUE "`System.Security.AccessControl.RawSecurityDescriptor.BinaryFormFromSddlForm()` has this code: ``` if (TRUE != Interop.mincore.ConvertStringSdToSd( ``` and `System.Security.AccessControl.Win32.ConvertSdToSddl()` has this code: ``` if (TRUE != Interop.mincore.ConvertSdToStringSd(binaryForm, //WHATEVER ``` `ConvertStringSdToSd()/ConvertSdToStringSd()` are some barely documented functions which looks very similar to `ConvertStringSidToSid()/ConvertSidToStringSid()` and the latter return either ""zero"" or ""non-zero"". Most likely `ConvertStringSdToSd()/ConvertSdToStringSd()` behave the same way and so those checks should compare the result against `FALSE`, not against `TRUE`. " +7548 area-System.Net Exception thrown in Constructor of CookieContainer "I've got an issue with the CookieContainer in my UWP application. ### Expected behaviour The constructors of `CookieContainer`, `HttpClient` and `HttpClientHandler` should not thow an exception when invoked without a parameter. ### Actual behavior - Creating a new instance of `CookieContainer` throws an exception. - Creating a new `HttpClient` or `HttpClientHandler` throws an exception because they create a new `CookieContainer` internally. - It is not possible to use any of these classes. Stack trace/message of the exception: ``` System.ArgumentException: The parameter is incorrect. hostName at Windows.Networking.Connectivity.NetworkInformation.GetHostNames() at System.Net.NetworkInformation.HostInformation.GetFixedInfo() at System.Net.NetworkInformation.HostInformation.get_FixedInfo() at System.Net.NetworkInformation.HostInformation.get_DomainName() at System.Net.CookieContainer..ctor() at System.Net.Http.HttpClientHandler..ctor() ``` The last function in the call stack: [`NetworkInformation.GetHostNames`](https://msdn.microsoft.com/library/windows/apps/windows.networking.connectivity.networkinformation.gethostnames), which doesn't take any parameters. Therefore, I don't which parameter `hostName` could be wrong that I am passing causing the exception. ### Steps to fix/reproduce I figured out how to work around the problem: - Goto `Control Panel\All Control Panel Items\System` -> `Advanced System Settings` -> `Computer Name` -> `Change` -> `More` - Clear what's in the text box of ""Primary DNS suffix of this computer"" (it was `42` before, since this is my local dns suffix, so the FQDN of my host is `hostname.42`). - This is reproducible on my machine. Didn't test this on other machines. - It works using a DNS suffix which is not a number (tested with `foo`). If this behaviour is intended, the possibility of an exception when calling `NetworkInformation.GetHostNames` should be documented. Windows Build: Version 1511 (10586.164) Edit: What I think is that NetworkInformation.GetHostNames() calls `GetAllHostNames()` from `Windows.Networking.HostName.dll` (listed as import of the dll of NetworkInformation). The `HostName` constructor is then used to create the instances of `HostName`. I think the call to the function `HostNameImpl::CanonicalizeHostName` fails, since it raises an exception when it fails. Maybe it's [`DnsValidateName`](https://msdn.microsoft.com/en-us/library/windows/desktop/ms682032%28v=vs.85%29.aspx) that classifies the host name `host.42` as invalid (which seems correct to me). " +7550 area-System.Security Remove Pinvoke exceptions in System.Security.Cryptography.Csp PinvokeAnalyzerExceptionList.analyzerdata in System.Security.Cryptography.Csp implementation contains non api-set pinvokes. Corefx repro is following apiset model and so these Pinvokes should be changed to use the APISet counter parts. If you remove exception list. Pinvoke analyzer will suggest in its error message the correct Apiset to use for this. Advapi32.dll!CryptAcquireContextW Advapi32.dll!CryptGetProvParam Advapi32.dll!CryptGetUserKey Advapi32.dll!CryptGetKeyParam Advapi32.dll!CryptGenKey Advapi32.dll!CryptReleaseContext Advapi32.dll!CryptDecrypt Advapi32.dll!CryptEncrypt Advapi32.dll!CryptExportKey Advapi32.dll!CryptImportKey Advapi32.dll!CryptCreateHash Advapi32.dll!CryptGetHashParam Advapi32.dll!CryptSetHashParam Advapi32.dll!CryptSignHashW Advapi32.dll!CryptVerifySignatureW Advapi32.dll!CryptDestroyKey Advapi32.dll!CryptDestroyHash +7551 area-System.Security Remove Pinvoke exceptions in System.Security.Cryptography.X509Certificates PinvokeAnalyzerExceptionList.analyzerdata in System.Security.Cryptography.X509Certificates implementation contains non api-set pinvoke. Corefx repro is following apiset model and so these Pinvokes should be changed to use the APISet counter part. If you remove exception list, Pinvoke analyzer will suggest in its error message the correct Apiset to use for this. advapi32.dll!CryptAcquireContextW bcrypt.dll!BCryptDestroyKey --> I believe this was ok, I think we discussed this and it was fixed by windows (@bartonjs might know more about this :)). +7552 area-System.Runtime TimeZoneInfo.FindSystemTimeZoneById throws TimeZoneNotFoundException ".NET Core exposes `TimeZoneInfo.FindSystemTimeZoneById(string)` [(MSDN)](https://msdn.microsoft.com/en-us/library/system.timezoneinfo.findsystemtimezonebyid%28v=vs.110%29.aspx) which throws a `TimeZoneNotFoundException`. But the exception can't be caught because `TimeZoneNotFoundException` isn't exposed in .NET Core. We should include the exception type in the System.Runtime contract alongside the API that throws it. Repro: ``` C# using System; public class Program { public static void Main(string[] args) { Console.WriteLine(TimeZoneInfo.FindSystemTimeZoneById(""DoesNotExist"").ToString()); } } ``` " +7561 area-System.Net Strange HttpClient behavior with many concurrent requests on OS X and Linux "When a lot of concurrent requests are thrown at `HttpClient`, I see varying behavior on the different platforms: **Mac OS X**: lots of ""Couldn't connect to server"" and ""Couldn't resolve host name"" errors. **Linux**: works a lot of the time but sometimes hangs due and throws a `TaskCancelledException` due to `HttpClient.Timeout`. **Windows**: works fine. Here is a small `dotnet` application that reproduces the problem: [lotsofhttp.zip](https://github.com/dotnet/corefx/files/207394/lotsofhttp.zip) The input I give to my program is: ``` dotnet run 500 10 500 https://api.nuget.org/v3-flatcontainer/newtonsoft.json/index.json ``` That is, 500 concurrent tasks, 10 iterations per tasks, and a throttling semaphore of 500. The URL `https://api.nuget.org/v3-flatcontainer/newtonsoft.json/index.json` is downloaded for each iteration. My suspicion is there is some kind of handle limiting going on OS X that prevents so many concurrent requests. Are these failures expected? Am I voiding a warranty :smile:? The workaround is certainly to apply throttling above `HttpClient` in the application, correct? I am using System.Net.Http 4.0.1-rc2-23931. " +7562 area-System.Runtime Add missing System.Runtime tests Porting missing tests that are present in SystemRuntimeBringup internally. +7563 area-System.Runtime Add a few GCSettings tests Tests round-tripping for GCSettings properties. Taken from the tests in `QA\ToF\tests\FX\GC`, though there are a number of tests present there that are far more in depth than these. I won't be disabling those tests without the go-ahead from someone more familiar with the GC. +7564 area-System.Net Improvements to CurlHandler perf and reliability 1. **Extend SafeCurlMultiHandle lifetime to that of its MultiAgent.** Today each time we spin up a worker in CurlHandler, we create a new SafeCurlMultiHandle, use it for the lifetime of that worker, and then when the worker goes away, the multi handle is torn down. This was done for simplicity of resource management, but it also leads to significant overheads due to everything that libcurl caches associated with the multi handle, e.g. when the multi handle goes away, so does it connection cache, its DNS cache, etc. This commit addresses that by extending the lifetime of the multi handle to match that of the CurlHandler. We still lazily create the handle when the first worker is spun up, but then we keep it alive until the CurlHandler is disposed. As before, we ensure that as long as a worker is running, the multi handle will be kept alive, even if the handler is disposed. 2. **Extend DNS cache timeout in CurlHandler.** Now that we're allowing the multi handle to live for as long as the CurlHandler, the DNS cache timeout starts to matter much more. libcurl will cache the results of DNS lookups, and by default will timeout entries after 1 minute. Our Windows implementation defaults to 10 minutes, so I'm extending our Unix implementation to match that. 3. **Only call curl_multi_wait if there are active operations.** The CurlHandler work is sometimes hitting pauses unnecessarily, where it finishes processing the last active request and then calls curl_multi_wait to wait for more work to do. This is purely wasteful and can be skipped when we know there aren't any more active operations. 4. **Improve reliability of CurlHandler MultiAgent worker.** If something unexpectedly goes wrong in our worker loop, and in particular when queuing a replacement worker, we may end up leaving a request sitting in the request queue with no one to process it. This commit ensures that if something does go horribly wrong, the agent is left in a state where subsequent incoming requests can still kick off another worker, and in the meantime any pending requests in the queue are failed, so that code blocking on them doesn't simply hang. As I was looking at this and some of our dispose usage, I also cleaned up a few places that could be simplified using the C# 6 ?. syntax. cc: @ericeil, @bartonjs +7569 area-System.Text Regex incorrectly identify surrogate pair unicode category "This defect makes regex useless when you need to match string using unicode categories and string could contain surrogate pairs: ``` c# [Test] public void ClassifySurrogates_Test() { var value = ""𦕒""; var regexLetters = new Regex(@""^\p{Lo}$""); var regexSurrogates = new Regex(@""^\p{Cs}{2}$""); Assert.AreEqual(UnicodeCategory.OtherLetter, char.GetUnicodeCategory(value, 0)); Assert.AreEqual(UnicodeCategory.OtherLetter, CharUnicodeInfo.GetUnicodeCategory(value, 0)); Assert.True(regexSurrogates.IsMatch(value)); // Fails here Assert.True(regexLetters.IsMatch(value)); } ``` " +7570 area-System.IO System.IO.Compression to support zlib thin wrapper over DEFLATE? Currently we have access to this: https://msdn.microsoft.com/en-us/library/system.io.compression.deflatestream(v=vs.110).aspx The _DeflateStream_ type can be used to compress/decompress DEFLATE data. Yet in the wild world people normally wrap that with zlib (i.e. RFC1950), e.g. in the Git pack file, there are multiple zlib streams embedded within. Given underneath we are calling zlib Native, any chance we could provide types that can handle zlib streams? As in: https://github.com/icsharpcode/SharpZipLib/blob/master/src/Zip/Compression/Inflater.cs https://docs.python.org/2/library/zlib.html (zlib.compress(string[, level])) +7575 area-System.IO Filesystem enumeratenonexistent When enumerating over the entries in the current directory there is the potential for a DirectoryNotFoundException if one of the directories in the current directory is deleted. Since we can't easily ensure no corefx tests are modifying the files in the current directory, I opted to instead run the test in its own process with its own current directory (set to a test path). resolves #7484 @stephentoub +7576 area-System.IO FileSystemWatcher and network shares This is related to this bug: https://github.com/aspnet/dotnet-watch/issues/55 The scenario is that you are running your application inside a container using dotnet-watch. Dotnet-watch will watch your files and restart your app whenever you change your code. The issue is that when using Docker your source is typically mounted using something like Samba or VirtualBox shares which means you don't get watcher events fired. What should dotnet-watch do in this case? My current plan is to use a polling file watcher and have a way to launch dotnet-watch in a mode that uses polling when needed. Is there something we can do in corefx to make this better or is this completely up to dotnet-watch to implement? +7577 area-Serialization DataContractSerializer in CoreCLR underperforms Desktop in dictionary scenarios In CoreClr simple dictionary is serialized/deserialized slower up to 2x compared to Desktop +7578 area-Serialization DataContractJsonSerializer in CoreClr is slower than Desktop in simple dictionary scenarios +7579 area-Serialization DataContractJsonSerializer in CoreClr is slower than Desktop in string scenarios +7580 area-System.Linq Linq (Enumerable.cs) should provide overloads for functions that can benefit heavily from knowing the static type of the receiver. Methods like Enumerable.Last work terribly if you pass in something that implements IReadOnlyList but not IList. We could provide additional overloads like: `public static T Last(this IReadOnlyList list) { ... }` so that we now had optimized implementations for these types. This would also be beneficial so we can have codepaths that avoid having to dynamically check the type of the receiver at runtime when the compiler already knows statically what it can dispatch to. +7584 area-Serialization Perf test failures in corefx / src / System.Xml.XmlSerializer / tests / System.Xml.XmlSerializer.Tests.csproj @khdang there seem to be some failures in tests related to corefx / src / System.Xml.XmlSerializer / tests / System.Xml.XmlSerializer.Tests.csproj (Can be repro-ed by >msbuild src\System.Xml.XmlSerializer\tests\System.Xml.XmlSerializer.Tests.csproj /t:BuildAndTest /p:Performance=true /p:Configuration=Release) Please take a look and fix these +7585 area-Infrastructure PInvokeAnalyzer throws NullReferenceException on x-plat builds See http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_ubuntu14.04_debug/76/consoleFull ``` 02:12:18 CSC : error AD0001: Analyzer 'Microsoft.DotNet.CodeAnalysis.Analyzers.PinvokeAnalyzer' threw an exception of type 'System.NullReferenceException' with message 'Object reference not set to an instance of an object.'. [/mnt/j/workspace/dotnet_corefx/outerloop_ubuntu14.04_debug/src/System.IO.FileSystem/src/System.IO.FileSystem.csproj] ``` +7587 area-System.Net Use IntPtr-based file descriptors exclusively, in native calls from Sockets code. This is step 1 of the fix for #6928. This change introduces new native methods that take `IntPtr` file descriptor arguments instead of `int`, and moves all callers to use the new methods, eliminating custom SafeHandle marshaling. Once this new `System.Native` propagates everywhere, we can remove the old methods and eliminate the `_IntPtr` suffix on the names. @stephentoub +7593 area-System.Runtime Parse integers in a string based on an index ## Summary Currently parsing integers takes a string, and parses the entirety of the string. I propose adding APIs to parse a string from an index, with an additional overload specifying the length. ## Rationale In order to parse part of a string, we need to perform a `string.Substring(...)` method on the string. This results in allocations, affecting performance. ## Proposed APIs - with slices ``` csharp public int Parse(ReadOnlySlice s) public int Parse(ReadOnlySlice s, IFormatProvider format); public bool TryParse(ReadOnlySlice s, out int i); public bool TryParse(ReadOnlySlice s, IFormatProvider format, out int i); ``` ## Proposed APIs - without slices ``` csharp public class Int32 { // Proposed new APIs public int Parse(string s, int index); // Either public int Parse(string s, int index, int count); // or Public int Parse(string s, int index, int length); // or public int Parse(string s, int startIndex, int endIndex); // Existing parsing APIs public int Parse(string); ... } ``` ## Discussion - These overloads should be intelligent and not allocate any substrings - I assume TryParse overloads would also have to be added - Would we need to add overloads taking an IFormatProvider too - How common is this use case? - Is this worth adding 4 public methods to each integer type? - Should we bother with the `Parse(string, int)` overload? I think most people calling his API would know the required length. ## Example I added some custom parsing code in a PR in coreclr (dotnet/coreclr#3992). This is basically the code that these proposed methods would use. Parsing performance of ints in Version increased by up to 4x due to reduced substring allocations. Another example is Guid (dotnet/coreclr#3965) where performance of parsing Guid strings increased by up to 3x with the allocation count reducing to 0. ## Alternatives - Add a `Parse(char* s, int count)` method instead but this is rare +7594 area-System.Runtime BitConverter: Write bytes to exisiting array "I moved this here from dotnet/coreclr#4142 because I was told this is the right place. Hello, are there any ambitions to provide an API to BitConverter that takes an exisiting `byte[]` and position to include the bytes of a primitive? Right now I have an additional converter based on BitConverter that has methods like this: ``` c# /// /// Includes an int into an array of bytes /// public unsafe static void InsertBytes(int value, byte[] bytes, int index) { // Error handling and parameter validation if (bytes == null) throw new ArgumentNullException(nameof(bytes)); if (index + 4 > bytes.Length) throw new ArgumentOutOfRangeException(nameof(index)); fixed (byte* b = bytes) *((int*)(b + index)) = value; } /// /// Includes a long into an array of bytes /// [System.Security.SecuritySafeCritical] // auto-generated public unsafe static void InsertBytes(long value, byte[] bytes, int index) { // Error handling and parameter validation if (bytes == null) throw new ArgumentNullException(""bytes""); if (index + 8 > bytes.Length) throw new ArgumentOutOfRangeException(""index""); fixed (byte* b = bytes) *((long*)(b + index)) = value; } ``` I think it would be great to have those methods as well whenever we try to serialize values into an array without having to use `Array.Copy` all the time. To avoid redundant code the `GetBytes` methods should then just call the new methods. ``` c# // Converts an int into an array of bytes with length // four. [System.Security.SecuritySafeCritical] // auto-generated public unsafe static byte[] GetBytes(int value) { Contract.Ensures(Contract.Result() != null); Contract.Ensures(Contract.Result().Length == 4); byte[] bytes = new byte[4]; InsertBytes(value, bytes, 0); return bytes; } // Converts a long into an array of bytes with length // eight. [System.Security.SecuritySafeCritical] // auto-generated public unsafe static byte[] GetBytes(long value) { Contract.Ensures(Contract.Result() != null); Contract.Ensures(Contract.Result().Length == 8); byte[] bytes = new byte[8]; InsertBytes(value, bytes, 0); return bytes; } ``` I would be happy to submit a PR once this was reviewed and approved. " +7595 area-System.Threading Add some Threading tests Adds threading tests to cover all gaps from ToF/tests/FX/Threading with the exception of the tests for the Monitor class which will have their own issue now: #6459 +7596 area-Microsoft.CSharp SymbolTable.DoesMethodHaveParameterArray throws exception when accessing a dynamic created property "--> Tested with **dnxcore50**: The following helper code to create a dynamic type with certain properties: ``` c# public static dynamic Create(IDictionary properties) { AssemblyName name = new AssemblyName(""Test.DynamicClasses, Version=1.0.0.0""); AssemblyBuilder assembly = AssemblyBuilder.DefineDynamicAssembly(name, AssemblyBuilderAccess.RunAndCollect); var module = assembly.DefineDynamicModule(""Test.DynamicClasses""); string typeName = ""DynamicClass1""; TypeBuilder tb = module.DefineType(typeName, TypeAttributes.Class | TypeAttributes.Public, typeof(DynamicClass)); GenerateProperties(tb, properties); Type result = tb.CreateTypeInfo().AsType(); return Activator.CreateInstance(result); } ``` And the method which uses IL to create the backing fields, get/set methods and the properties: ``` c# private static FieldInfo[] GenerateProperties(TypeBuilder tb, IDictionary properties) { const MethodAttributes getSetAttr = MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.HideBySig; FieldInfo[] fields = new FieldBuilder[properties.Count]; int i = 0; foreach (string key in properties.Keys) { string name = key; Type type = properties[key]; FieldBuilder fb = tb.DefineField(""_"" + key, type, FieldAttributes.Public); PropertyBuilder pb = tb.DefineProperty(key, PropertyAttributes.HasDefault, type, null); MethodBuilder mbGet = tb.DefineMethod(""get_"" + name, getSetAttr, type, Type.EmptyTypes); ILGenerator genGet = mbGet.GetILGenerator(8); genGet.Emit(OpCodes.Ldarg_0); genGet.Emit(OpCodes.Ldfld, fb); genGet.Emit(OpCodes.Ret); pb.SetGetMethod(mbGet); MethodBuilder mbSet = tb.DefineMethod(""set_"" + name, getSetAttr, null, new Type[] { type }); ILGenerator genSet = mbSet.GetILGenerator(8); genSet.Emit(OpCodes.Ldarg_0); genSet.Emit(OpCodes.Ldarg_1); genSet.Emit(OpCodes.Stfld, fb); genSet.Emit(OpCodes.Ret); pb.SetSetMethod(mbSet); fields[i] = fb; } return fields; } ``` And the test code is like: ``` c# var list = new Dictionary(); list.Add(""x"", typeof(string)); var obj = Fact.Create(list); obj._x = ""ddd""; // accessing backing field directly works string x_ = obj._x; // works Console.WriteLine(""x_=[{0}]"", x_); obj.x = ""err""; // does not work --> throws exception like below string x = obj.x; // does not work --> throws exception like below Console.WriteLine(x); ``` ``` System.NullReferenceException: Object reference not set to an instance of an object. at Microsoft.CSharp.RuntimeBinder.SymbolTable.DoesMethodHaveParameterArray(ParameterInfo[] parameters) at Microsoft.CSharp.RuntimeBinder.SymbolTable.AddMethodToSymbolTable(MemberInfo member, AggregateSymbol callingAggregate, MethodKindEnum kind) at Microsoft.CSharp.RuntimeBinder.SymbolTable.AddPropertyToSymbolTable(PropertyInfo property, AggregateSymbol aggregate) at Microsoft.CSharp.RuntimeBinder.SymbolTable.AddNamesInInheritanceHierarchy(String name, List`1 inheritance) at Microsoft.CSharp.RuntimeBinder.SymbolTable.PopulateSymbolTableWithName(String name, IEnumerable`1 typeArguments, Type callingType) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.PopulateSymbolTableWithPayloadInformation(DynamicMetaObjectBinder payload, Type callingType, ArgumentObject[] arguments) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.BindCore(DynamicMetaObjectBinder payload, IEnumerable`1 parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.Bind(DynamicMetaObjectBinder payload, IEnumerable`1 parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.BinderHelper.Bind(DynamicMetaObjectBinder action, RuntimeBinder binder, IEnumerable`1 args, IEnumerable`1 arginfos, DynamicMetaObject onBindingError) at Microsoft.CSharp.RuntimeBinder.CSharpSetMemberBinder.FallbackSetMember(DynamicMetaObject target, DynamicMetaObject value, DynamicMetaObject errorSuggestion) at System.Dynamic.DynamicMetaObject.BindSetMember(SetMemberBinder binder, DynamicMetaObject value) at System.Dynamic.SetMemberBinder.Bind(DynamicMetaObject target, DynamicMetaObject[] args) at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[] args, ReadOnlyCollection`1 parameters, LabelTarget returnLabel) at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args) ``` " +7597 area-Infrastructure .NET Core test coverage for Bash on Windows https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/ We should add a .NET Core test run for Bash on Windows. @Chrisboh could you add this to Helix initially? +7599 area-System.Net Linux: ArgumentOutOfRangeException on multi-row insert on SQL Azure I get: ``` ---- System.Data.SqlClient.SqlException : A transport-level error has occurred when sending the request to the server. (provider: TCP Provider, error: 35 - An internal exception was caught) -------- System.IO.IOException : The write operation failed, see inner exception. ------------ System.ArgumentOutOfRangeException : Specified argument was out of the range of valid values. Parameter name: size at System.Data.SqlClient.TdsParser.TdsExecuteRPC(_SqlRPC[] rpcArray, Int32 timeout, Boolean inSchema, TdsParserStateObject stateObj, Boolean isCommandProc, Boolean sync, TaskCompletionSource`1 completion, Int32 startRpc, Int32 startParam) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.Execute(IRelationalConnection connection, String executeMethod, IReadOnlyDictionary`2 parameterValues, Boolean openConnection, Boolean closeConnection) at Microsoft.EntityFrameworkCore.Storage.Internal.RelationalCommand.ExecuteReader(IRelationalConnection connection, IReadOnlyDictionary`2 parameterValues, Boolean manageConnection) at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.Execute(IRelationalConnection connection) ----- Inner Stack Trace ----- at System.Net.Security.SslStreamInternal.ProcessWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.Write(Byte[] buffer, Int32 offset, Int32 count) at System.Data.SqlClient.SNI.SNITCPHandle.Send(SNIPacket packet) ----- Inner Stack Trace ----- at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) at System.Data.SqlClient.SNI.SslOverTdsStream.Write(Byte[] buffer, Int32 offset, Int32 count) at System.Net.Security.SslStreamInternal.StartWriting(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) ``` When running ``` SQL SET NOCOUNT ON; DECLARE @toInsert2 TABLE ([Color] nvarchar(15), [DiscontinuedDate] datetime, [ListPrice] money, [Name] nvarchar(450), [ProductCategoryID] int, [ProductModelID] int, [ProductNumber] nvarchar(25), [SellEndDate] datetime, [SellStartDate] datetime, [Size] nvarchar(5), [StandardCost] money, [ThumbNailPhoto] varbinary(max), [ThumbnailPhotoFileName] nvarchar(50), [Weight] decimal, [_Position] [int]); INSERT INTO @toInsert2 VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12, @p13, 0), (@p14, @p15, @p16, @p17, @p18, @p19, @p20, @p21, @p22, @p23, @p24, @p25, @p26, @p27, 1); DECLARE @inserted2 TABLE ([ProductID] int, [Color] nvarchar(15), [DiscontinuedDate] datetime, [ListPrice] money, [ModifiedDate] datetime, [Name] nvarchar(450), [ProductCategoryID] int, [ProductModelID] int, [ProductNumber] nvarchar(25), [SellEndDate] datetime, [SellStartDate] datetime, [Size] nvarchar(5), [StandardCost] money, [ThumbNailPhoto] varbinary(max), [ThumbnailPhotoFileName] nvarchar(50), [Weight] decimal, [rowguid] uniqueidentifier, [_Position] [int]); MERGE [SalesLT].[Product] USING @toInsert2 AS i ON 1=0 WHEN NOT MATCHED THEN INSERT ([Color], [DiscontinuedDate], [ListPrice], [Name], [ProductCategoryID], [ProductModelID], [ProductNumber], [SellEndDate], [SellStartDate], [Size], [StandardCost], [ThumbNailPhoto], [ThumbnailPhotoFileName], [Weight]) VALUES (i.[Color], i.[DiscontinuedDate], i.[ListPrice], i.[Name], i.[ProductCategoryID], i.[ProductModelID], i.[ProductNumber], i.[SellEndDate], i.[SellStartDate], i.[Size], i.[StandardCost], i.[ThumbNailPhoto], i.[ThumbnailPhotoFileName], i.[Weight]) OUTPUT INSERTED.[ProductID], INSERTED.[Color], INSERTED.[DiscontinuedDate], INSERTED.[ListPrice], INSERTED.[ModifiedDate], INSERTED.[Name], INSERTED.[ProductCategoryID], INSERTED.[ProductModelID], INSERTED.[ProductNumber], INSERTED.[SellEndDate], INSERTED.[SellStartDate], INSERTED.[Size], INSERTED.[StandardCost], INSERTED.[ThumbNailPhoto], INSERTED.[ThumbnailPhotoFileName], INSERTED.[Weight], INSERTED.[rowguid], i._Position INTO @inserted2; SELECT [ProductID], [ModifiedDate], [rowguid] FROM @inserted2 ORDER BY _Position; ``` with ``` SQL `@p0 nvarchar(max) ,@p1 datetime2(7),@p2 decimal(1,0),@p3 nvarchar(4000),@p4 int,@p5 int,@p6 nvarchar(4000),@p7 datetime2(7),@p8 datetime2(7),@p9 nvarchar(max) ,@p10 decimal(1,0),@p11 varbinary(max) ,@p12 nvarchar(max) ,@p13 decimal(4,0),@p14 nvarchar(max) ,@p15 datetime2(7),@p16 decimal(1,0),@p17 nvarchar(4000),@p18 int,@p19 int,@p20 nvarchar(4000),@p21 datetime2(7),@p22 datetime2(7),@p23 nvarchar(max) ,@p24 decimal(1,0),@p25 varbinary(max) ,@p26 nvarchar(max) ,@p27 decimal(4,0)', @p0=NULL,@p1=NULL,@p2=0,@p3=N'1705deb0-2dff-40d1-a40e-f3ff1c42e36d',@p4=NULL,@p5=NULL,@p6=N'1705deb0-2dff-40d1-a40e-f',@p7=NULL,@p8='2016-04-08 13:03:35.3168817',@p9=NULL,@p10=0,@p11=NULL,@p12=NULL,@p13=1000,@p14=NULL,@p15=NULL,@p16=0,@p17=N'5c6dc402-ab8c-4f7f-a40d-945c0491c8b8',@p18=NULL,@p19=NULL,@p20=N'5c6dc402-ab8c-4f7f-a40d-9',@p21=NULL,@p22='2016-04-08 13:03:35.8103840',@p23=NULL,@p24=0,@p25=NULL,@p26=NULL,@p27=1000 ``` On Linux CoreCLR against [adventureworks.zip](https://github.com/dotnet/corefx/files/210782/adventureworks.zip) See aspnet/EntityFramework#4228 +7600 area-System.Net Use IntPtr-based file descriptors exclusively, in native calls from Sockets code, part 2 "Part 2 of the fix for #6928. Change signatures of the ""permanent"" native networking methods to take IntPtr arguments, and switch back to using those methods. Once this change propagates everywhere, we can remove the *_IntPtr methods introduced in #7587. @stephentoub " +7605 area-Infrastructure Add /a option to clean.cmd clean.cmd supports /all, clean.sh supports -a and --all, for parity consider adding /a option to clean.cmd +7608 area-Serialization Improve data contract serializers performance in dictionary scenario - Improve data contract serializers performance in dictionary scenario by 2x. - Instead of the current way to get encoded string which involves string creation and buffer copy, use the encoding.GetBytes API - When creating a new instance of a type without a default constructor we use reflection to invoke a method that is not from the serialization assembly. Since that is significantly slower, we should use Activator.CreateInstance whenever we can. The Activator.CreateInstance throws exception so we need to check to know if a type has default constructor or not and use the appropriate method. As this check is also slow, so I've added a cache to make sure we only do this once for each type. - ~~Internally dictionaries are handled as collection of KeyValues. I've updated this type to have default constructor so we can use Activator.CreateInstance to create new instance of it.~~ Update: - Instead of converting KeyValue type to class, which potentially causes GC long pauses, use Activator.CreateInstance for value type cc: @shmao @SGuyGe @zhenlan @mconnew Fix #7578 and #7577 +7622 area-System.Net WinHttpResponseStream: Cannot access a disposed object. @davidsh Looks like this might be for you based on other issues. This just started cropping up with my use of both `WindowsAzure.Storage` versions `6.2.2-preview` and `7.0.1-preview` when calling `.ExecuteQuerySegmentedAsync(...)`. The resolved version of the `System.Net.Http` package is `4.0.1-rc3-24008-00`. If you would like a repro of the issue, let me know, and I'll put one up. If this is just due to current churn, no prob, I can wait (a few days anyway). ``` xml 501 NotImplemented Primary 128c10da-0002-001a-0982-920393000000 Sat, 09 Apr 2016 17:07:40 GMT Sat, 09 Apr 2016 17:07:38 GMT Sat, 09 Apr 2016 17:07:41 GMT NotImplemented The requested operation is not implemented on the specified resource. RequestId:128c10da-0002-001a-0982-920393000000 Time:2016-04-09T17:07:40.7566462Z StorageException -2146233088 Cannot access a disposed object. Object name: 'System.Net.Http.WinHttpResponseStream'. ObjectDisposedException -2146232798 Cannot access a disposed object. Object name: 'System.Net.Http.WinHttpResponseStream'. System.Net.Http at System.Net.Http.WinHttpResponseStream.CheckDisposed() at System.Net.Http.WinHttpResponseStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken token) at System.Net.Http.DelegatingStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at Microsoft.WindowsAzure.Storage.Core.Util.StreamExtensions.<WriteToAsync>d__1`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.<ExecuteAsyncInternal>d__4`1.MoveNext() ``` +7623 area-System.Net System.Net.Http 4.1 Contract Revisions ## Background To support important customer scenarios for CoreFx RTM, we want to update the System.Net.Http contract from 4.0 to 4.1. The System.Net.Http API surface consists of several classes. All of the implementation also lives in the .NET Framework as mostly a standalone implementation DLL (System.Net.Http.dll). Some functionality depends on low level APIs (such as HttpWebRequest) that lives in System.dll As part of updating the contract to 4.1, we are also OOB'ing the Desktop (net46 Windows) implementation so that the package won't be a facade over Desktop but rather a full implementation. As part of this, we are changing the implementation used for Desktop from the legacy HttpWebRequest sockets stack to the WinHttpHandler stack based on native WinHTTP. This will give us a good path forward as WinHttpHandler stack will be getting HTTP/2.0 support with newer versions of Windows 10. Since we are OOB'ing the DLL, we are able to add surface area as regular properties and not be forced to use extension methods (which wouldn't work in this case anyways). .NET Framework (Desktop) developers will only get this new implementation and expanded API set when they consume the NuGet package. Otherwise .NET Framework (Desktop) developers will get the existing inbox implementation. ## Proposed API ``` c# namespace System.Net.Http { // Other classes already part of System.Net.Http 4.0 contract ... public partial class HttpClientHandler : System.Net.Http.HttpMessageHandler { // // Existing methods and properties. // public HttpClientHandler() { } public bool AllowAutoRedirect { get; set; } public System.Net.DecompressionMethods AutomaticDecompression { get; set; } public System.Net.Http.ClientCertificateOption ClientCertificateOptions { get; set; } public System.Net.CookieContainer CookieContainer { get; set; } public System.Net.ICredentials Credentials { get; set; } public int MaxAutomaticRedirections { get; set; } public long MaxRequestContentBufferSize { get; set; } public bool PreAuthenticate { get; set; } public System.Net.IWebProxy Proxy { get; set; } public virtual bool SupportsAutomaticDecompression { get; } public virtual bool SupportsProxy { get; } public virtual bool SupportsRedirectConfiguration { get; } public bool UseCookies { get; set; } public bool UseDefaultCredentials { get; set; } public bool UseProxy { get; set; } protected override void Dispose(bool disposing); protected internal override System.Threading.Tasks.Task SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken); // // New properties. // public bool CheckCertificateRevocationList { get; set; } // Wanted to have this property be on type 'X509Certificate2Collection' but conflicts // with derived class WebRequestHandler in .NET Framework of the same property name. public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get; set; } // Wanted to have this property be called 'ServerCertificateValidationCallback` but // that name would conflict the derived class WebRequestHandler in .NET Framework // where the property is of a different type. public System.Func ServerCertificateCustomValidationCallback { get; set; } public System.Net.ICredentials DefaultProxyCredentials { get; set; } public int MaxConnectionsPerServer { get; set; } public int MaxResponseHeadersLength { get; set; } public System.Security.Authentication.SslProtocols SslProtocols { get; set; } // Generic property bag to that would allow for additional properties to be set and recognized by particular implementations (i.e. Windows vs. Unix, Unix-only connection socket options, etc.) public System.Collections.Generic.IDictionary Properties { get; } } } ``` ## Open Questions / Issues - There is an existing .NET Framework type, `System.Net.Http.WebRequestHandler` that lives in `System.Net.Http.WebRequest.dll`. `WebRequestHandler` derives from `HttpClientHandler`. And `WebRequestHandler` already has these properties on the type: ``` c# public System.Security.Cryptography.X509Certificates.X509CertificateCollection ClientCertificates { get; set; } public RemoteCertificateValidationCallback ServerCertificateValidationCallback { get; set; } ``` ## Usage The new HttpClientHandler properties being considered are currently already in the System.Net.Http.WinHttpHandler contract, as properties of the WinHttpHandler class. That contract is only implemented on Windows. For reference, all the System.Net.\* APIs were previously reviewed including WinHttpHandler: https://github.com/dotnet/apireviews/pull/21 Pending the 4.1 System.Net.Http review, the WinHttpHandler contract is being considered for removal from CoreFx final RTM contracts since it will be duplicative to the revised System.Net.Http 4.1 contract. +7626 area-System.Net Initial System.Net.Http 4.1 contract To support important customer scenarios for CoreFx RTM, we will be updating the System.Net.Http contract from 4.0 to 4.1. We are focusing on HttpClientHandler enhancements. We will be submitting the final proposed list of additions as part of issue #7623. As part of updating the contract to 4.1, we are also OOB'ing the Desktop (net46 Windows) implementation so that the package won't be a facade over Desktop but rather a full implementation. This is possible since System.Net.Http has always been a standalone dll in the .NET Framework. As part of this, we are changing the implementation for Desktop from the legacy HttpWebRequest sockets stack to the WinHttpHandler stack based on native WinHTTP. This will give us a good path forward as WinHttpHandler stack will be getting HTTP/2.0 support with newer versions of Windows 10. This initial PR has a few API additions that we are definitely going to be adding. It's important to get these changes into the builds so that we can fully bake the OOB Http.dll assembly on all the platforms and continue package testing. There is an existing System.Net.Http.WebRequestHandler class in the .NET Framework located in System.Net.Http.WebRequest.dll. This class is a subclass of HttpClientHandler. Due to this, we are being careful not to cause collisions with some of these added properties. WebRequestHandler has a 'ClientCertificates' property and a 'ServerCertificateValidationCallback' property. So, we are aligning/renaming the properties as we add them to HttpClientHandler OOB assembly. This may get altered slightly as we finalize the 4.1 System.Net.Http API. +7630 area-System.Diagnostics EventListener.DisposeOnShutdown crash due to collection modified during enumeration "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/windows_nt_debug/1206/consoleFull ``` 10:51:06 System.InvalidOperationException: Collection was modified; enumeration operation may not execute. 10:51:06 at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) 10:51:06 at System.Collections.Generic.List`1.Enumerator.MoveNextRare() 10:51:06 at System.Diagnostics.Tracing.EventListener.DisposeOnShutdown(Object sender, EventArgs e) 10:51:06 d:\j\workspace\windows_nt_debuge57bf35e\Tools\tests.targets(147,5): warning MSB3073: The command ""xunit.console.exe System.Globalization.Calendars.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=OuterLoop -notrait category=failing -notrait category=nonwindowstests "" exited with code 1. ``` " +7633 area-System.Net Use exception filters in StreamFramer Contributes to #7632. cc @stephentoub @bartonjs +7634 area-System.Linq Would it be possible to remove some of the LowLevel* classes? As I understand it, the purpose of the `LowLevel*` classes in `Common` (such as [`LowLevelEnumerable`](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Linq/LowLevelEnumerable.cs)) is to avoid a dependency on `System.Linq` or `System.Collections`, while still being able to use features from the collection classes. Unfortunately, they have to be maintained in tandem with their counterparts and as a result are more poorly optimized (e.g. [this](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Linq/LowLevelEnumerable.cs#L33) naïve implementation of `Select`, vs. [this](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Select.cs#L12) one). Would it be possible to move the actual sources for the collection classes into `Common`, and a partial class that simply pointed people looking for the code to the `Common` folder? For example, we do this with `Debug` today; the actual source is [here](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Diagnostics/Debug.cs) in `Common`, while the file in `System.Diagnostics` is just there to [define public visibility](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Debug/src/System/Diagnostics/Debug.Public.cs). cc @stephentoub @JonHanna +7635 area-System.IO NamedPipeClientStream poorly handles the case where the pipe does not exist NamedPipeClientStream waits when the pipe does not exist, and it waits by spinning: ``` // Some platforms may return immediately from TryConnect if the connection could not be made, // e.g. WaitNamedPipe on Win32 will return immediately if the pipe hasn't yet been created, // and open on Unix will fail if the file isn't yet available. Rather than just immediately // looping around again, do slightly smarter busy waiting. sw.SpinOnce(); ``` This is problematic for two reasons. 1. I typically do not want to wait if the pipe does not exist; I only want to wait if the pipe is busy. This is because if the pipe doesn't exist, the server is probably not running, so waiting is unlikely to resolve anything. 2. Spinning on file not found consumes an entire CPU waiting for a service to start. Not a good choice. This combination of problems basically makes timeouts larger than a few milliseconds useless if there is any risk that the pipe will not exist. To fix this, I would propose two things: 1. Stop spinning. Sleep for a short time if you must poll. 2. Provide an option to fail if the pipe does not yet exist. Frankly I think this should be the default, but there are probably compatibility implications of this. +7636 area-System.Net Convert BidirectionalDictionary to be a struct Similarly to #7559, since `BidirectionalDictionary` is a type with all-readonly fields (and is always <= 16 bytes, even on 64-bit platforms), it's optimal for being converted to a struct. This PR includes the following changes: - Change definition from `sealed class` to `struct` - Removed `IEnumerable` interface implementation, as `foreach` is duck-typed and we don't want to encourage boxing - If future consumers of the class need to use it with LINQ, they can define their own reference-type wrapper around the struct - Converted call sites of the type to use C# 6 dictionary initializers rather than collection initializers - Dictionary initializers are duck-typed, so we don't need to implement `IEnumerable` - Added indexer property to satisfy the dictionary initializer cc @stephentoub @bartonjs @davidsh @CIPop +7637 area-System.Data System.Data.SqlClient still uses the non-generic collections A quick [GitHub search](https://github.com/dotnet/corefx/search?l=json&q=NonGeneric&utf8=%E2%9C%93) shows that `System.Collections.Specialized` and `System.Data.SqlClient` are the only non-test assemblies still dependent on the non-generic collections. While it's kind of inevitable for the specialized collections since it contains a lot of legacy code, it appears from [this](https://github.com/dotnet/corefx/pull/6527) PR that we can remove `System.Collections.NonGeneric` from the `SqlClient` implementation, since it's not exposed to callers. This is a tracking issue I'm opening up to remove the dependency from `SqlClient`. +7640 area-Infrastructure Command files (*.cmd) can't use directories with spaces "When creating or evaluating an environment variable, quotes are not required: ``` batchfile set INIT_TOOLS_LOG=%~dp0init-tools.log if [%PACKAGES_DIR%]==[] set PACKAGES_DIR=%~dp0packages\ ``` However, when turning that environment variable into a file to be used, quotes are required. Instead of: ``` batchfile set /P BUILDTOOLS_VERSION=< %~dp0BuildToolsVersion.txt echo %PROJECT_JSON_CONTENTS% > %PROJECT_JSON_FILE% echo Running %0 > %INIT_TOOLS_LOG% ``` The correct syntax is: ``` batchfile set /P BUILDTOOLS_VERSION=< ""%~dp0BuildToolsVersion.txt"" echo %PROJECT_JSON_CONTENTS% > ""%PROJECT_JSON_FILE%"" echo Running %0 > ""%INIT_TOOLS_LOG%"" ``` Because of the lack of quotes, any attempt to use these command files in a directory with spaces will fail. -Neil " +7647 area-System.Net NegotiateStream NTLM implementation on Unix Cherry Picked the reviewed commit from dev/NegotiateStream and resending against master. cc: @stephentoub +7652 area-Infrastructure Encapsulate dev workflow common logic Add a script that encapsulates the common logic used in the dev workflow (i.e. OSGroup selection, common logging, init-tools, etc) and have all other dev workflow scripts (sync, clean, build-test, etc) simply call it with extra arguments unique to each dev workflow script. As mentioned by @weshaggard in PR #7566 +7654 area-System.ComponentModel Expand System.ComponentModel.TypeConverter test coverage This brings `System.ComponentModel.TypeConverter` line coverage to 47% via some straightforward unit tests of `EventDescriptor`, `PropertyDescriptor`, and `TypeDescriptor` APIs. @twsouthwick +7656 area-System.Runtime Add Split string extension that returns IEnumberable instead of an array. "It's common when parsing strings to need a specific element from a parsed string. Currently, String.Split returns a fully parsed array of all the values, whether the developer needs them all or not. It would very useful to return a IEnumerable that can be used in a Linq expression. Then this can be done: string csv = ""Bill, Gates, One Microsoft Way, Redmond, WA, 98052""; var lastName = csv.EnumerateString(',').Take(2).Last(); The function would not need to fully parse the string if it is done after the second item, in this example. I wrote something like this many years ago and have found it to be very helpful, easier to read, and in many cases, faster than using Split. " +7657 area-System.Security Perform manual verification for Crypto on UWP Automated tests are all well and good, but at some point one really does need to try using a thing to make sure that the tests aren't being unreasonable. - [x] Hash some data using MD5, SHA-1, SHA-2 (SHA256, SHA384, SHA512) - [x] HMAC some data - [x] Encrypt/Decrypt something using AES - [x] Sign/Verify with ECDSA - [x] Encrypt/Decrypt something using RSA-PKCS#1 - [x] Encrypt/Decrypt something using RSA-OAEP (SHA-1, SHA-2) - [x] Sign/Verify with RSA-PKCS#1 - [x] Sign/Verify with RSA-PSS - [x] Encrypt/Decrypt something using 3DES - [x] Get an RSA Public Key from a cert - [x] Get an RSA Private Key from a PFX - [x] Get an ECDSA Public Key from a cert - [x] Get an ECDSA Private Key from a PFX - [x] Play with X509Store All of these are expected to work. Any unusual responses should be turned into issues. +7658 area-System.Diagnostics On Mac/Linux, Process.ExitCode always returns 0 when Process.Exited is used "When `Process.WaitForExit()` is called on a `Process` that was configured to do something with its `Exited` event, it always returns `0`, regardless of the actual exit code of the process. If `WaitForExit()` immediately follows `Start()`, things work as I expect. Sample program: ``` C# using System; using System.Diagnostics; using System.Threading; class ExitedEventExitCodeDemo { public static void Main() { ManualResetEvent toolExited = new ManualResetEvent(false); var proc = new Process(); proc.StartInfo = new ProcessStartInfo(""/bin/sh""); proc.StartInfo.Arguments = ""-c \""exit 1\""""; // turn on the Process.Exited event proc.EnableRaisingEvents = true; // sign up for the exit notification proc.Exited += (object sender, EventArgs e) => toolExited.Set(); proc.Start(); // Waiting for this event after Start gives a 0 ExitCode. toolExited.WaitOne(); // Just sleeping for a while also gives 0. //Thread.Sleep(1000); // But if this is the next line after Start(), ExitCode is 1 as expected. proc.WaitForExit(); Console.WriteLine(""Exit code (should be 1): "" + proc.ExitCode); } } ``` Here's evidence that the child process really fails, but `ExitCode` is `0`: ``` ShellSession $ strace -f -e trace=process ./corerun exec.exe execve(""./corerun"", [""./corerun"", ""exec.exe""], [/* 20 vars */]) = 0 arch_prctl(ARCH_SET_FS, 0x7fac47a52780) = 0 clone(child_stack=0x7fac453def70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fac453df9d0, tls=0x7fac453df700, child_tidptr=0x7fac453df9d0) = 10383 Process 10383 attached [pid 10382] clone(child_stack=0x7fac44bddf70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fac44bde9d0, tls=0x7fac44bde700, child_tidptr=0x7fac44bde9d0) = 10384 Process 10384 attached [pid 10382] clone(child_stack=0x7fac443dcf70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fac443dd9d0, tls=0x7fac443dd700, child_tidptr=0x7fac443dd9d0) = 10385 Process 10385 attached [pid 10382] clone(child_stack=0x7fac43bdbf70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fac43bdc9d0, tls=0x7fac43bdc700, child_tidptr=0x7fac43bdc9d0) = 10386 Process 10386 attached [pid 10382] clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fac47a52a50) = 10387 Process 10387 attached [pid 10387] execve(""/bin/sh"", [""/bin/sh"", ""-c"", ""exit 1""], [/* 20 vars */]) = 0 [pid 10387] arch_prctl(ARCH_SET_FS, 0x7f80adbdb740) = 0 [pid 10387] exit_group(1) = ? [pid 10387] +++ exited with 1 +++ [pid 10382] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=10387, si_status=1, si_utime=0, si_stime=0} --- [pid 10382] clone(child_stack=0x7fac40eb5f70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fac40eb69d0, tls=0x7fac40eb6700, child_tidptr=0x7fac40eb69d0) = 10388 Process 10388 attached [pid 10382] clone(child_stack=0x7fac406b4f70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fac406b59d0, tls=0x7fac406b5700, child_tidptr=0x7fac406b59d0) = 10389 Process 10389 attached [pid 10382] clone(child_stack=0x7fac3fe73f70, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x7fac3fe749d0, tls=0x7fac3fe74700, child_tidptr=0x7fac3fe749d0) = 10390 [pid 10388] wait4(10387, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG, NULL) = 10387 Process 10390 attached [pid 10388] wait4(10387, 0x7fac40eb55e4, WNOHANG, NULL) = -1 ECHILD (No child processes) Exit code (should be 1): 0 [pid 10385] _exit(0) = ? [pid 10385] +++ exited with 0 +++ [pid 10382] exit_group(0) = ? [pid 10390] +++ exited with 0 +++ [pid 10389] +++ exited with 0 +++ [pid 10388] +++ exited with 0 +++ [pid 10386] +++ exited with 0 +++ [pid 10384] +++ exited with 0 +++ [pid 10383] +++ exited with 0 +++ +++ exited with 0 +++ ``` Note that pid 10387 exited with 1 according to strace, but `proc.ExitCode` was 0. This is the root cause of Microsoft/MSBuild#566. " +7660 area-System.ComponentModel ComponentModel attributes that assist in altering data for integrity "It's been asked, [how data annotations can change data](http://stackoverflow.com/questions/51269), and [replace](http://stackoverflow.com/questions/15541199) or [trim](http://stackoverflow.com/questions/2864343/) property values. I don't feel annotations should be used in this way, but there could be benefit in attributes that would preform common and simple tasks that do alter data. These attributes might appropriately be called mutation attributes, which could include: Trim, Replace, RegexReplace, EnsureCase, etc. ### Simple Example It's common that models will trim whitespace form string properties and change empty strings to null. ``` csharp public class User { private string _firstName; public string FirstName { get { return _firstName; } set { value = value.Trim(); _firstName = String.IsNullOrEmpty(value) ? null : value; } } } ``` This could be the business requirement for all string properties of the user class. With mutation attributes this could be shortened drastically. ``` csharp public class User { [Trim, ToDefaultValue("""")] public string FirstName { get; set; } } ``` ### Advanced Example Let's assume we have sign up screen that accepts a username and password, and a model that annotates `User.UserName` as accepting any alphanumeric string including underscores as valid characters. Should the end-user enter `m@x_speed.01` as their desired username, validation would cause exceptions. Then the program should give an appropriate error message: ""Username must contain only alphanumeric character and underscores"". However if the designer would provide mutation attributes, the program could try to determine a valid value from the input. We could then provide a better message to the user: ""That username is invalid. Would you like to use 'mx_speed01' instead?"" ### Proposed API ``` csharp namespace System.ComponentModel.DataMutations { // Describes the context in which mutation is performed. // It supports IServiceProvider so that custom mutation code can acquire additional services to help it perform its mutation. public interface IMutationContext : IServiceProvider { object ObjectInstance { get; } IDictionary Items { get; } IEnumerable Attributes { get; } } // Describes the context in which mutation is performed. // T: The type to consult during mutation. public sealed class MutationContext : IMutationContext { // Constructors public MutationContext(T instance, IDictionary items) : this(instance, items, null); public MutationContext(T instance, IServiceProvider serviceProvider) : this(instance, null, serviceProvider); public MutationContext(T instance, IDictionary items, IServiceProvider serviceProvider) : this(instance); public MutationContext(T instance); // Properties public T ObjectInstance { get; } object IMutationContext.ObjectInstance { get; } public IDictionary Items { get; } public IEnumerable Attributes { get; } // Methods public void InitializeServiceProvider(Func serviceProvider); public object GetService(Type serviceType); } // Helper class to validate objects, properties, and other values using their associated MutationAttributes and custom mutation as implemented through the IMutableObject interface. public static class Mutator { // Mutate Value public static T Mutate(this MutationContext context, IEnumerable attributes) => typeof(T).GetTypeInfo().IsValueType ? // Mutate as value : // Mutate as object; public static T Mutate(this MutationContext context, IEnumerable attributes, T value) where T : struct; // Mutate Object public static T Mutate(this MutationContext context) where T : class; public static T Mutate(this MutationContext context, T instance) where T : class; public static T Mutate(this MutationContext context, T instance, IEnumerable attributes) where T : class; // Mutate Property public static object MutateProperty(this MutationContext context, PropertyInfo property) where T : class; public static P MutateProperty(this MutationContext context, PropertyInfo property, P value) where T : class; public static P MutateProperty(this MutationContext context, Expression> property) where T : class; public static P MutateProperty(this MutationContext context, Expression> property, P value) where T : class; } // Describes custom mutation logic that should be preformed on an object during mutation. public interface IMutableObject { void Mutate(IMutationContext context); } // Base class for all mutation attributes. public abstract class MutationAttribute : Attribute { // Properties public virtual bool RequiresContext { get; } public virtual int Priority { get; set; } // Methods public object Mutate(object value, IMutationContext context = null); protected abstract object MutateValue(object value, IMutationContext context); } // Trim Provides as sample implementation of MutationAttribute [AttributeUsage(AttributeTargets.Property, AllowMultiple = true)] public class TrimAttribute : MutationAttribute { // Constructors public TrimAttribute(params char[] characters); // Properties public char[] Characters { get; private set; } public TrimOptions Direction { get; set; } // Methods protected override object MutateValue(object value, IMutationContext context); } } ``` #### Implemented as Proposed Time has been spent on an implementation as it was needed for a project. Further documentation is provided on the repo. I will continue to update the repo according to this issue. **Source:** [roydukkey/Dado.ComponentModel.Mutations](https://github.com/roydukkey/Dado.ComponentModel.Mutations) **MyGet:** http://www.myget.org/gallery/roydukkey #### Updates 1. Add Attributes property to IMutationContext 2. Add Priority property to MutationAttribute - Without a priority `[DefaultValue(""~/data/""), Trim, ToDefaultValue("""")] string path { get; set; } = "" "";` will have a different result than `[DefaultValue(""~/data/""), ToDefaultValue(""""), Trim] string path { get; set; } = "" "";`. - This will get even messier when inheritance is introduced. " +7661 area-System.Security Add tests for System.Security.AccessControl ACE classes There doesn't seem to be any tests for System.Security.AccessControl in open. I decided to port these tests in chunks instead of all at once to ease reviewing and get feedback on structure before it was difficult to modify. The tests in ToF are very incompatible with Xunit so after wasting a bunch of time trying to get them running in Open, I opted to rewrite them instead. The structure of the tests is different than it was, but the MemberData we're testing with is the same. Progress towards #6922. @stephentoub +7664 area-System.Net Implement send/receive timeouts on CurlHandler This adds SendTimeout, ReceiveHeadersTimeout, and ReceiveDataTimeout to CurlHandler. It's implemented by mapping the timeouts to libcurl's notion of a low speed limit, which lets libcurl automatically cancel a request if an average rate of sending/receiving bytes isn't maintained over a specified period of time. cc: @davidsh, @ericeil, @kapilash, @bartonjs @davidsh, as with the previous additions, this can be tweaked based on what surface area we decide to expose. For now I've matched the APIs exposed from WinHttpHandler, albeit using Timeout.Infinite as the default to make it pay-for-play and to avoid changing from current HttpClientHandler behaviors. +7666 area-System.Security CspParameters.ParentWindowHandle is not respected +7669 area-System.Net Fix HttpContent.CopyToAsync to return rather than throw exception I broke this as part of my async/await refactorings. It was supposed to return a Task.FromException but instead was throwing. And the tests didn't catch it, as they were too loose in what they were checking, so also tightening the tests. cc: @davidsh +7671 area-System.Net Improve performance of WebUtility.Decode for non-escaped strings "- Cuts allocations down to 1/3 of the original - Doubles performance (in time) - We still allocate a little bit, as removing all allocations would harm the performance of strings that actually need escaping ## Benchmark - escaping needed - No performance regressions ![benchmark escaping](https://cloud.githubusercontent.com/assets/1275900/14454716/c85fc7bc-0093-11e6-8c65-3eba5ce34729.png) ## Benchmark - no escaping needed ![benchmark no escaping](https://cloud.githubusercontent.com/assets/1275900/14454713/c5124e54-0093-11e6-983b-ad3ae9e654ff.png) ## Benchmark Code
Click here ``` static void Main(string[] args) { // Escaping TimeAction(""Old: "", () => Old.UrlDecode(""%ABabc"")); TimeAction(""New: "", () => New.UrlDecode(""%ABabc"")); // No escaping TimeAction(""Old: "", () => Old.UrlDecode(""abc"")); TimeAction(""New: "", () => New.UrlDecode(""abc"")); Console.ReadLine(); } public static void TimeAction(string prefix, Action action) { var sw = new Stopwatch(); for (int iter = 0; iter < 5; iter++) { int gen0 = GC.CollectionCount(0); sw.Restart(); for (int i = 0; i < 10000000; i++) { action(); } sw.Stop(); Console.WriteLine($""{prefix}Time: {sw.Elapsed.TotalSeconds}\tGC0: {GC.CollectionCount(0) - gen0}""); } } ```
/cc @stephentoub @jamesqo @davidsh Fixes #6542 together with #7546 " +7681 area-System.Net Fix ConnectTimeout_TimesOut_Throws test This test wasn't actually running because it was incorrectly annotated as a [Theory] but without any data. When changed to be a [Fact], it failed because the test depends on the Socket's listening backlog being filled so that a subsequent connect will time out, but Listen(1) doesn't actually force the OS to use a queue of max size of 1, it's just advisory. The fix is to flood the server with requests that don't get accepted, filling the listen queue. cc: @davidsh, @bartonjs +7683 area-System.Runtime Document how unmanaged libraries are loaded with AssemblyLoadContext "On Windows, System.Data.SqlClient currently p/invokes to a native component sni.dll via DllImport `[DllImport(""sni.dll"")]`. This is inconsistent with other Dllimport calls in corefx that do not include the "".dll"" extension in the native dll name. This causes inconsistent behavior in other parts of the stack. e.g. `AssemblyLoadContext.LoadUnmanagedDll(string unmanagedDllName)` is called with `unmanagedDllName == ""sni.dll""`, but for other libraries the extension is left off. This means AssemblyLoadContext is usually implemented to look for `""sni""`, not `""sni.dll""`. cref https://github.com/dotnet/cli/issues/2289#issuecomment-208655706 **Update** Decided the behavior is fine, but we should document it as it's non-obvious. " +7685 area-System.IO Path.Combine on Unix thinks the filename /foo is rooted "Uncovered via #7680, calling `Path.Combine` with the following parameters yields unexpected results: ``` string fullDirectory = ""/foo/bar.txt""; string dirName = ""/foo/""; string fileName = ""/bar.txt""; string result = Path.Combine(dirName, fileName); Assert.Equal(fullDirectory, result); ``` This fails because `fileName` is thought to be rooted since it begins with a '/' character. " +7688 area-System.Security Add support for import\export and named Crypto Elliptic Curves (API review) "Currently, both .NET 4.6 and .NET Core support only three Elliptic Curves (nistP256, nistP384 and nistP521). There have been requests to add additional curves and to add the ability to import and export parameters similar to how RSA and DSA already have. The proposed API additions are intended for both .NET 4.6.3 and for .NET Core rtm. For .NET Core, both Windows (via [Cryptograph Next Generation or CNG](https://msdn.microsoft.com/en-us/library/windows/desktop/mt632245%28v=vs.85%29.aspx)) and Linux\OSX (via [OpenSsl](https://wiki.openssl.org/index.php/Elliptic_Curve_Cryptography)) are to be supported. ## Rationale and Usage The current implementation has three curves selected by providing their key size (as an integer). However, this is no longer tenable as there are many curves (of different algorithms) that have the same keysize. Instead, a curve should be represented by a well-known Oid. Using named curves enables direct access to the curves supported by the underlying platform and thus does not require additional .NET framework code or public APIs to be added or changed in order to accommodate new curves (in most cases), although adding helper methods to pre-define the Oids may be desired. Using named curves in this way is consistent with both CNG and OpenSsl. In some cases, however, a curve name may not be known by the underlying platform, or a custom curve is desired. In that case, 'explicit' curves are desired which means all domain parameters are explicitly specified instead of being implied by the curve name. An explicit curve is abstract, contains common domain parameters, and is derived from by Prime and Characteristic-2 where each adds an additional domain parameter. The logical hierarchy:            Curve (abstract)             /      \ Named       Explicit (abstract)                    /        \               Prime   Characteristic-2 Note that this logical hierarchy is collapsed into a single struct called ECCurve. This was based on previous API review where class minimization was desired. ## Pull Request Current code is located [here](https://github.com/steveharter/dotnet_corefx/tree/Crypto) with pull request for code review [here](https://github.com/dotnet/corefx/pull/6789). ## High Level Programming Model (platform independent) The most common scenario is to instantiate an instance of [ECDsa](https://msdn.microsoft.com/en-us/library/system.security.cryptography.ecdsa%28v=vs.110%29.aspx) by passing in the name of the curve, and then sign some data or perform other action such as import, export and generate key. ECDsa is abstract, and the concrete dervived class depends upon the platform. For Windows, that is ECDsaCng and for Linux\OSX that class is ECDsaOpenSsl. Work is in progress to allow static Create factory methods to be directly on ECDsa in order to better support platform independent code by removing the need to instantiate the ECDsaCng or ECDsaOpenSsl directly. With that additional work, the programming model is: ``` c# using (ECDsa ec = ECDsa.Create(ECCurve.NamedCurves.nistP256)) { // sign some data, etc. ``` NamedCurves is a nested class under ECCurve, and nistP256 is a static factory method. Other Create() overloads include using the ECParameters class which contains the public and private key as well as a curve: ``` c# ECParameters parameters = ... using (ECDsa ec = ECDsa.Create(parameters)) { // sign some data, etc. ``` and the empty constructor: ``` c# using (ECDsa ec = ECDsa.Create()) { ec.GenerateKey(ECCurve.NamedCurves.brainpoolP256r1); // sign some data, etc. ``` The empty constructor will lazily-create a 521-bit nist curve when the key is first accessed (for backwards compatibility as that it what the constructor on derived classes do). This Create() is useful when the curve is not known at the time of creation and instead can be passed in later during GenerateKey() as shown in the example above. ## High Level Programming Model (platform dependent) The previous programming model examples include the static Create() methods on the abstract ECDsa base class. The examples below show usage of ECDsaCng directly which means the code is tied to a particular platform. ECDsaOpenSsl is not shown however it has the same examples as below, although the Cng and OpenSsl classes do differ in other public members not shown below. The current (but now considered obsolete) programming model using key size as integer: ``` c# // Use nistP256 (one of three supported curves) using (var ec = new ECDsaCng(256)) { // sign some data, etc. ``` The proposed programming model (using NamedCurves factory helper methods): ``` c# using (var ec = new ECDsaCng(ECCurve.NamedCurves.nistP256)) { // sign some data, etc. ``` The curve name can also be provided directly through using an Oid FriendlyName: ``` c# using (var ec = new ECDsaCng(ECCurve.CreateFromFriendlyName(""nistP256""))) { // sign some data, etc. ``` or by using an Oid Value: ``` c# using (var ec = new ECDsaCng(ECCurve.CreateFromValue(""1.2.840.10045.3.1.7""))) { // sign some data, etc. ``` or by using an instance of the Oid class directly: ``` c# using (var ec = new ECDsaCng(ECCurve.CreateFromOid(new Oid(""1.2.840.10045.3.1.7"", ""nistP256"")))) { // sign some data, etc. ``` ## ECCurve Namespace: System.Security.Cryptography.Algorithms Assembly: System.Security.Cryptography.Algorithms.dll This type serves several purposes: 1) Creation. Expose strongly-typed static helper methods to create an instance. 2) Domain Parameters. Contains the domain parameters for a named or explicit curve. For a named curve it uses an [Oid](https://msdn.microsoft.com/en-us/library/system.security.cryptography.oid%28v=vs.110%29.aspx)). For explicit curves it contains several domain parameters. 3) ECCurveType. It nests this class in order to hide it from the root of the namespace. ## ECCurve - Creation ``` c# /// /// An elliptic curve. /// /// /// The CurveType property determines whether the curve is a named curve or an explicit curve /// which is either a prime curve or a characteristic-2 curve. /// public struct ECCurve { /// Create a curve from the given cref=""Oid"". /// /// The Oid to use. /// An ECCurve representing a named curve. public static ECCurve CreateFromOid(Oid curveOid); /// /// Create a curve from the given cref=""Oid"" friendly name. /// /// The Oid friendly name to use. /// An ECCurve representing a named curve. public static ECCurve CreateFromFriendlyName(string oidFriendlyName); /// /// Create a curve from the given cref=""Oid"" value. /// /// The Oid value to use. /// An ECCurve representing a named curve. public static ECCurve CreateFromValue(string oidValue); /// /// Factory class for creating named curves. /// public static class NamedCurves { public static ECCurve brainpoolP160r1 {get;} public static ECCurve brainpoolP160t1 {get;} public static ECCurve brainpoolP192r1 {get;} public static ECCurve brainpoolP192t1 {get;} public static ECCurve brainpoolP224r1 {get;} public static ECCurve brainpoolP224t1 {get;} public static ECCurve brainpoolP256r1 {get;} public static ECCurve brainpoolP256t1 {get;} public static ECCurve brainpoolP320r1 {get;} public static ECCurve brainpoolP320t1 {get;} public static ECCurve brainpoolP384r1 {get;} public static ECCurve brainpoolP384t1 {get;} public static ECCurve brainpoolP512r1 {get;} public static ECCurve brainpoolP512t1 {get;} public static ECCurve nistP256 {get;} public static ECCurve nistP384 {get;} public static ECCurve nistP521 {get;} } ``` For named curves, only the friendly name or the value is required, not both, provided that the platform recognizes it, or if the other value can be determined. For CNG, the FriendlyName is eventually required. For OpenSsl, either will work however the FriendlyName values are not necessarily compatible or the same between Cng and FriendlyName for some curves. Using the Oid Value is preferred as it is stable across platforms although there are a handful of curves that only have the FriendlyName. Discussion topic: the set of static factory methods on NamedCurves are a subset of those from [Windows 10](https://msdn.microsoft.com/en-us/library/windows/desktop/mt632245%28v=vs.85%29.aspx). OpenSsl supports the nist curves, but not the brainpool, plus supports several additional (varies depending on OpenSsl version). RESOLUTION: this list was chosen because the nist and brainpool curves are likely to be the normally recommended curves. ## ECCurve - Domain parameters Elliptical curves contain [domain parameters](http://www.secg.org/sec1-v2.pdf) which are factored to support named curves and two types of explicit curves (Prime and Characteristic-2), to interop with CNG and OpenSsl. These types are used in cases where the parameters need to be provided to import\export and to generatekey. Currently CNG does not support Characteristic-2 curves. The ECCharacteristic2 class is present in the shared Algorithms assembly however -- i.e. it wasn't place in the OpenSsl-only assembly. Note: most of the parameter types are opaque and represented by byte[], even though they could be better represented by BigInteger or a standard integer in some cases. The rationale is because RSA also does this and because we do not expose all of the functionality that CNG or OpenSsl does regarding these types. In addition byte[] preserves the big-endian byte ordering of CNG and OpenSsl, unlike BigInteger. Discussion Topic Fields with public getter and setters are used as that is consistent with other types like RSAParameters. The alternative is to use properties with private setters and to provide additional Create() methods to specify all domain parameters for explicit curves. ``` c# public struct ECCurve { /// /// Coefficient A. Applies only to Explicit curves. /// public byte[] A; /// /// Coefficient B. Applies only to Explicit curves. /// public byte[] B; /// /// Base Point. Applies only to Explicit curves. /// public ECPoint G; /// /// Order of the group generated by G = (x,y). Applies only to Explicit curves. /// public byte[] Order; /// /// Cofactor (optional). Applies only to Explicit curves. /// public byte[] Cofactor; /// /// Seed of the curve (optional). Applies only to Explicit curves. /// public byte[] Seed; /// /// Curve Type. /// public ECCurveType CurveType; /// /// The hash algorithm used to generate A and B from the Seed. Applies only to Explicit curves. /// public HashAlgorithmName? Hash; /// /// The binary polynomial. Applies only to Characteristic2 curves. /// public byte[] Polynomial; /// /// The prime specifying the base field. Applies only to Prime curves. /// public byte[] Prime; /// /// The Oid representing the named curve. Applies only to Named curves. /// /// A clone is returned, not the current instance. public Oid Oid {get; private set} /// /// Validate the current curve. /// /// /// if the curve parameters are not valid for the current CurveType. /// public void Validate(); public bool IsPrime {get;} public bool IsCharacteristic2 {get;} public bool IsExplicit {get;} public bool IsNamed {get;} ``` ECCurve.Oid is immutable, even though the underlying Oid object is not (the Value and FriendlyName properties are settable). This is achieved by making a clone of the Oid during creation of the curve and making a clone of the Oid when the property getter is called. This simplifies usage of the classes that use ECCurve as they don't have to concern themselves with making their own copies of the Oid because the immutability prevents the Value or FriendlyName properties from changing afterwards by someone holding a reference to the Oid. ## ECCurve - nested ECCurveType This enum is used to identify the curve type, and during execution pass to CNG or OpenSsl to identify which explicit algorithm to use. The Prime\* values match a CNG native enum. Characteristic2 is only supported by OpenSsl. ``` c# public struct ECCurve { /// /// Represents the type of an elliptic curve. /// public enum ECCurveType : int { Implicit = 0, PrimeShortWeierstrass = 1, PrimeTwistedEdwards = 2, PrimeMontgomery = 3, Characteristic2 = 4, Named = 5, } ``` ## ECPoint ECPoint is used in ECParameters and ECCurve to represent a point on a curve. ``` c# /// /// Represents a point on an elliptic curve. /// public struct ECPoint { public byte[] X; public byte[] Y; } ``` ## Compatibility Windows 10 added support for named curves, so on versions of Windows before 10, when attempting to use curves except for the 3 that were supported previously, a PlatformNotSupportedException is raised during execution. For versions of Windows <10, extra work has been peformed to ensure that the *named* curve APIs on ECCurve and import\export of named curves work with the 3 curves. Even though named curves were not added until Windows 10, this was accomplished by mapping the names of the 3 curves to individual integer-based curve identifiers used in the older versions of CNG that work Discussion topic Note that _explicit_ curve import\export does not work on these 3 curves in < Windows 10 because that requires Windows 10 features. However it is possible that we hard-code the explicit curve values for the 3 curve values and get that to work if we decided that was worth the effort; this would mean that we hard-code the ECPrimeCurve values for those 3 curves. It is probably not worth the effort because the main scenario for using explicit import\export is to import a custom curve that does not have a name, or does not have a name known by the current platform, so it does not apply to the 3 curves. Windows does not support any Characteristic-2 curves, unlike OpenSsl. None of the Characteristic-2 curves (or in general OpenSsl-only curves) were added as helper factory methods to ECCurve. OpenSsl curve support varies by version, so some curves may work one version of OpenSsl but not another. PlatformNotSupportedException is thrown in such cases. Discussion topic: no [obsolete] keywords have been added in cases where the three existing curves are currently exposed on CngAlgorithm, or when keysize is used in the ECDsaCng and ECDsaOpenSsl constructors. RESOLUTION: obsolete is no longer used Discussion topic: no API has been added to determine if a curve is valid for a platform. Users must use try\catch. It is possible to add such as API. Also, the Oid class cannot be relied upon for determining such status as internally we maintain a global hard-coded mapping between Oid values and friendly names, and because some curves have an friendly name but no value and the Oid class cannot help resolve or verify the friendly name in such cases. RESOLUTION: address later, if at all. Additional work has also been done to ensure that values exported from Windows and OpenSsl have the same validation requirements. When importing, CNG requires the byte[] values of some properties to match, however OpenSsl doesn't. So there has been additional padding and max() calculations added to the OpenSsl side to match the Windows side. This enables better interop in cross-plat user code, at the expense however of those who may use OpenSsl APIs directly and are not constrained by those additional validation checks otherwise. ## ECParameters. This type is used during import\export to specify the public key, optional private key, and curve parameters. ``` c# /// /// Represents the public and private key of the specified elliptical curve. /// public struct ECParameters { /// /// Public point. /// public ECPoint Q; /// /// Private Key. Not always present. /// public byte[] D; /// /// The Curve. /// public ECCurve Curve; } ``` ## Import \ Export \ GenerateKey Namespace: System.Security.Cryptography.Algorithms Assembly: System.Security.Cryptography.Algorithms.dll These methods are overridden in ECDsaCng and ECDsaOpenSsl classes and for .NET 4.6.3 also the ECDiffieHellman class. ``` c# public abstract class ECDsa : AsymmetricAlgorithm { public static ECDsa Create(); public static ECDsa Create(ECCurve curve); public static ECDsa Create(ECParameters parameters); /// /// When overridden in a derived class, exports the named or explicit ECParameters for an ECCurve. /// If the curve has a name, the Curve property will contain named curve parameters otherwise it will contain explicit parameters. /// /// true to include private parameters, otherwise, false. /// public virtual ECParameters ExportParameters(bool includePrivateParameters); /// /// When overridden in a derived class, exports the explicit ECParameters for an ECCurve. /// /// true to include private parameters, otherwise, false. /// public virtual ECParameters ExportExplicitParameters(bool includePrivateParameters); /// /// When overridden in a derived class, imports the specified ECParameters. /// /// The curve parameters. public virtual void ImportParameters(ECParameters parameters); /// /// Generates the public and private key. /// /// The curve to use. /// public virtual void GenerateKey(ECCurve curve); ``` Note: not shown here, but ECDH, RSA and DSA are to add matching Create factory support to better support platform independent code. ECDSA/ECDH: Create(), Create(ECCurve), Create(ECParameters) RSA: Create(), Create(int), Create(RSAParameters) DSA: Create(), Create(int), Create(DSAParameters) ## CNG Specific APIs Namespace: System.Security.Cryptography Assembly: System.Security.Cryptography.Cng.dll A constructor was added to accept the named curve, and overrides for import, export and generatekey. ``` c# public sealed partial class ECDsaCng : ECDsa { /// /// Create an ECDsaCng algorithm with a named curve. /// /// The representing the curve. /// if is null. /// if does not contain an Oid with a FriendlyName. public ECDsaCng(ECCurve curve); /// /// ImportParameters will replace the existing key that ECDsaOpenSsl is working with by creating a /// new CngKey. If the parameters contains only Q, then only a public key will be imported. /// If the parameters also contains D, then a full key pair will be imported. /// The parameters Curve value specifies the type of the curve to import. /// /// /// if does not contain valid values. /// /// /// if references a curve that cannot be imported. /// /// /// if references a curve that is not supported by this platform. /// public override void ImportParameters(ECParameters parameters); /// /// Exports the key and explicit curve parameters used by the ECC object into an object. /// /// /// if there was an issue obtaining the curve values. /// /// /// if explicit export is not supported by this platform. Windows 10 or higher is required. /// /// The key and explicit curve parameters used by the ECC object. public override ECParameters ExportExplicitCurveParameters(bool includePrivateParameters); /// /// Exports the key used by the ECC object into an object. /// If the curve has a name, the Curve property will contain named curve parameters otherwise it will contain explicit parameters. /// /// /// if there was an issue obtaining the curve values. /// /// The key and named curve parameters used by the ECC object. public override ECParameters ExportCurveParameters(bool includePrivateParameters); public override void GenerateKey(ECCurve curve); ``` Misc changes to extend the list of known blob formats (used by import) ``` c# public sealed class CngKeyBlobFormat : IEquatable ... public static CngKeyBlobFormat EccPrivateBlob; public static CngKeyBlobFormat EccPublicBlob; ... ``` Misc changes to extend the list of algorithms. Also includes the previously existing 3 nist curves for backwards compatibility-- i.e. they weren't removed, even though named curves should be used instead going forward. ``` c# public sealed class CngAlgorithm : IEquatable ... public static CngAlgorithm ECDiffieHellman {get;} public static CngAlgorithm ECDsa {get;} ... ``` ## OpenSsl Specific APIs Namespace: System.Security.Cryptography Assembly: System.Security.Cryptography.OpenSsl.dll A constructor was added to accept the named curve and overrides for import, export and generatekey. ``` c# public sealed partial class ECDsaOpenSsl : ECDsa { /// /// Create an ECDsaCng algorithm with a named curve. /// /// The representing the curve. public ECDsaOpenSsl(ECCurve curve); /// /// ImportParameters will replace the existing key that ECDsaOpenSsl is working with by creating a /// new CngKey. If the parameters contains only Q, then only a public key will be imported. /// If the parameters also contains D, then a full key pair will be imported. /// The parameters Curve value specifies the type of the curve to import. /// /// /// if does not contain valid values. /// /// /// if references a curve that cannot be imported. /// /// /// if references a curve that is not supported by this platform. /// public override void ImportParameters(ECParameters parameters); /// /// Exports the key and explicit curve parameters used by the ECC object into an object. /// /// /// if there was an issue obtaining the curve values. /// /// /// if explicit export is not supported by this platform. Windows 10 or higher is required. /// /// The key and explicit curve parameters used by the ECC object. public override ECParameters ExportExplicitCurveParameters(bool includePrivateParameters); /// /// Exports the key used by the ECC object into an object. /// If the curve has a name, the Curve property will contain named curve parameters otherwise it will contain explicit parameters. /// /// /// if there was an issue obtaining the curve values. /// /// The key and named curve parameters used by the ECC object. public override ECParameters ExportCurveParameters(bool includePrivateParameters); public override void GenerateKey(ECCurve curve); ``` ## .NET 4.6.3 Specific APIs The [ECDiffieHellman](https://msdn.microsoft.com/en-us/library/system.security.cryptography.ecdiffiehellman%28v=vs.110%29.aspx) class will have the same members added as ECDsaCng and ECDsaOpenSsl including import, export, and generate key. " +7696 area-System.Net [Part 1] Use nameof in Socket This PR refactors the following places to use `nameof`: - `TraceLoggingTypeInfo` - `UnixFileSystem` - `NegoState` - `SslState` - `Socket` (split up into 2 commits, as the file is massive) cc @stephentoub +7697 area-System.Reflection Test dlls and pdbs containing large tables We don't have much test coverage of PE files (and Portable PDBs) with large numbers of rows. The correctness of size calculation of cross table reference (2B vs 4B) is thus not validated. The problem with testing is that it requires somewhat large files. Having them checked into the repo is not ideal. Instead they should be generated in-memory using the metadata writer once it's ready. See bug https://github.com/dotnet/roslyn/issues/10401 for an example of an issue encountered recently. +7698 area-System.Reflection Fix CustomDebugInfo table row size calculation Fixes issue discovered when testing scenario https://github.com/dotnet/roslyn/issues/10401. Filed https://github.com/dotnet/corefx/issues/7697 to follow up with appropriate unit tests (require metadata writer). +7699 area-Serialization System.Xml.XmlSerializer uses non-generic shim collections It appears from [here](https://github.com/dotnet/corefx/tree/master/src/System.Xml.XmlSerializer/src/System/Collections) that, although it doesn't depend on `System.Collections.NonGeneric`, the `XmlSerializer` assembly has a few shim non-generic collection classes since it hasn't been refactored yet from its port to .NET Core. Indeed, hitting Shift + F12 in Visual Studio shows that `InternalHashtable` is being used in at least 32 different places, and `ArrayList` at least 20. It would be better to eliminate usages of these classes, so less code + avoiding things like boxing/casting. +7700 area-System.Globalization Win7 Outer Loop Test Failures in System.Globalization.Tests.TextInfoToLower.ToLower (and TextInfoToUpper.ToUpper) https://github.com/dotnet/corefx/blob/d725f9f6a7232118f9179dc74f56af8ae54dc269/src/System.Globalization/tests/TextInfo/TextInfoToLower.cs#L78 http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win7_release/lastCompletedBuild/testReport/System.Globalization.Tests/TextInfoToLower/ToLower_name___en_US___str___34__34____34______34________34__________34____________34______________34___________________expected___34__34____34______34________34__________34____________34______________34________________34____________________/ MESSAGE: Assert.Equal() Failure\r\n ↓ (pos 1)\r\nExpected: 𐐀\r\nActual: 𐐨\r\n ↑ (pos 1) +++++++++++++++++++ STACK TRACE: at System.Globalization.Tests.TextInfoToLower.ToLower(String name, String str, String expected) in d:\j\workspace\outerloop_win---627ab81b\src\System.Globalization\tests\TextInfo\TextInfoToLower.cs:line 81 http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win7_release/lastCompletedBuild/testReport/System.Globalization.Tests/TextInfoToLower/ToLower_name___fr___str___34__34____34______34________34__________34____________34______________34________________34__________________34____________________34______________________34___________________________expected___34__34____34______34________34__________34____________34______________34________________34__________________34____________________34______________________34________________________34____________________________/ MESSAGE: Assert.Equal() Failure\r\n ↓ (pos 1)\r\nExpected: 𐐀\r\nActual: 𐐨\r\n ↑ (pos 1) +++++++++++++++++++ STACK TRACE: at System.Globalization.Tests.TextInfoToLower.ToLower(String name, String str, String expected) in d:\j\workspace\outerloop_win---627ab81b\src\System.Globalization\tests\TextInfo\TextInfoToLower.cs:line 81 http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win7_release/lastCompletedBuild/testReport/System.Globalization.Tests/TextInfoToLower/ToLower_name___fr_FR___str___34__34____34______34________34__________34____________34______________34________________34__________________34____________________34______________________34________________________34__________________________34____________________________34______________________________34___________________________________expected___34__34____34______34________34__________34____________34______________34________________34__________________34____________________34______________________34________________________34__________________________34____________________________34______________________________34________________________________34____________________________________/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win7_release/lastCompletedBuild/testReport/System.Globalization.Tests/TextInfoToUpper/ToUpper_name___en_US___str___34__34____34______34________34__________34____________34______________34________________34__________________34____________________34______________________34________________________34__________________________34____________________________34______________________________34________________________________34__________________________________34____________________________________34______________________________________34________________________________________34__________________________________________34____________________________________________34______________________________________________34___________________________________________________expected___34__34____34______34________34__________34____________34______________34________________34__________________34____________________34______________________34________________________34__________________________34____________________________34______________________________34________________________________34__________________________________34____________________________________34______________________________________34________________________________________34__________________________________________34____________________________________________34______________________________________________34________________________________________________34____________________________________________________/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win7_release/lastCompletedBuild/testReport/System.Globalization.Tests/TextInfoToUpper/ToUpper_name___fr___str___34__34____34______34________34__________34____________34______________34________________34__________________34____________________34______________________34________________________34__________________________34____________________________34______________________________34________________________________34__________________________________34____________________________________34______________________________________34________________________________________34__________________________________________34____________________________________________34______________________________________________34________________________________________________34__________________________________________________34____________________________________________________34______________________________________________________34___________________________________________________________expected___34__34____34______34________34__________34____________34______________34________________34__________________34____________________34______________________34________________________34__________________________34____________________________34______________________________34________________________________34__________________________________34____________________________________34______________________________________34________________________________________34__________________________________________34____________________________________________34______________________________________________34________________________________________________34__________________________________________________34____________________________________________________34______________________________________________________34________________________________________________________34____________________________________________________________/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_win7_release/lastCompletedBuild/testReport/System.Globalization.Tests/TextInfoToUpper/ToUpper_name___fr_FR___str___34__34____34______34________34__________34____________34______________34________________34__________________34____________________34______________________34________________________34__________________________34____________________________34______________________________34________________________________34__________________________________34____________________________________34______________________________________34________________________________________34__________________________________________34____________________________________________34______________________________________________34________________________________________________34__________________________________________________34____________________________________________________34______________________________________________________34________________________________________________________34__________________________________________________________34____________________________________________________________34______________________________________________________________34___________________________________________________________________expected___34__34____34______34________34__________34____________34______________34________________34__________________34____________________34______________________34________________________34__________________________34____________________________34______________________________34________________________________34__________________________________34____________________________________34______________________________________34________________________________________34__________________________________________34____________________________________________34______________________________________________34________________________________________________34__________________________________________________34____________________________________________________34______________________________________________________34________________________________________________________34__________________________________________________________34____________________________________________________________34______________________________________________________________34________________________________________________________________34____________________________________________________________________/ +7702 area-System.IO System.IO.Compression.ZipFile missing classes for net46 Hi there! Trying to use `System.IO.Compression.ZipFile` with `net46` platform from nuget version `4.0.1-rc3-24013-00` (from `myget/dotnet-core` feed), and it seems that ZipFile is missing from the assembly for this TFM. Note that the only valid assembly that contains the class is for `dotnet5.4` TFM Is this a known issue? +7705 area-Infrastructure InputOSGroup not correctly set when building individual test projects for x-plat `c:\Users\stoub\Source\repos\corefx\src\System.Diagnostics.Process\tests>msbuild /t:rebuild /p:OSGroup=Linux /v:m` With that command line it ends up building the Linux version of the tests but the Windows version of the product libraries: ``` System.Diagnostics.Process -> c:\Users\stoub\Source\repos\corefx\bin\Windows_NT.AnyCPU.Debug\System.Diagnostics.Process\System.Diagnostics.Process.dll RemoteExecutorConsoleApp -> c:\Users\stoub\Source\repos\corefx\bin\Windows_NT.AnyCPU.Debug\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.exe System.Diagnostics.Process.Tests -> c:\Users\stoub\Source\repos\corefx\bin\Linux.AnyCPU.Debug\System.Diagnostics.Process.Tests\System.Diagnostics.Process.Tests.dll ``` That is because the InputOSGroup isn't set correctly and defaults to OSEnvironment windows is Windows_NT when building this on Windows. As a temporary workaround you can do: `c:\Users\stoub\Source\repos\corefx\src\System.Diagnostics.Process\tests>msbuild /t:rebuild /p:OSGroup=Linux /p:InputOSGroup=Linux /v:m` We should do some more testing of the test infrastructure to make sure basic scenarios like this work, in our dev workflow. cc @maririos @stephentoub @sokket +7706 area-System.Net Unified HTTP API for client and server scenarios I have been looking at the potential use of HTTP in IoT scenarios, and I have been wondering and thinking about the current stack that seems incomplete. Historically, in .NET Framework, there has been two distinct set of HTTP API:s: one for handling client scenarios (HttpClient), and another for server scenarios (HttpListener). Both are residing in the System.Net.Http namespace. Presently, there is no HttpListener in the .NET Core stack. It made me to build my own: https://github.com/robertsundstrom/HttpListener I wonder if there are any plans to implement the HttpListener API further down the road. In any case, I have a suggestion for that: Merge the two API:s so that they share a common base and common constructs like: HttpRequestMessage, HttpResponseMessage, etc. This would mean that the HttpClient sends an HttpRequestMessage, and the HttpListener should give a HttpRequestMessage. The content should be virtually the same in each end. Correspondingly, the HttpListener would send a HttpResponseMessage back, and the client would receive a HttpResponseMessage. In this way we get a more flexible API that is also easier to use, because the developers do not have to handle two sets of what actually could be the same thing. +7707 area-System.Net NegotiateStream_StreamToStream_AuthToHttpTarget_Success test failing on RHEL http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_rhel7.2_release_tst/47/consoleFull ``` 08:18:40 System.Net.Security.Tests.KerberosTest.NegotiateStream_StreamToStream_AuthToHttpTarget_Success [FAIL] 08:18:40 System.AggregateException : One or more errors occurred. (A call to SSPI failed, see inner exception.) 08:18:40 ---- System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. 08:18:40 -------- System.ComponentModel.Win32Exception : ErrorCode=InternalError, Exception=Interop+NetSecurityNative+GssApiException: GSSAPI operation failed with error - An invalid status code was supplied (Server not found in Kerberos database). 08:18:40 at Interop.GssApi.EstablishSecurityContext(SafeGssContextHandle& context, SafeGssCredHandle credential, Boolean isNtlm, SafeGssNameHandle targetName, GssFlags inFlags, Byte[] buffer, Byte[]& outputBuffer, UInt32& outFlags) 08:18:40 at System.Net.Security.NegotiateStreamPal.EstablishSecurityContext(SafeFreeNegoCredentials credential, SafeDeleteContext& context, Boolean isNtlm, String targetName, ContextFlagsPal inFlags, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, ContextFlagsPal& outFlags) 08:18:40 Stack Trace: 08:18:40 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) 08:18:40 at System.Net.Security.Tests.KerberosTest.NegotiateStream_StreamToStream_AuthToHttpTarget_Success() 08:18:40 ----- Inner Stack Trace ----- 08:18:40 at System.Net.Security.NegoState.EndProcessAuthentication(IAsyncResult result) 08:18:40 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 08:18:40 ----- Inner Stack Trace ----- ``` +7713 area-System.Net System.Net.Security.Tests.KerberosTest.NegotiateStream_StreamToStream_AuthToHttpTarget_Success [FAIL] http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/outerloop_rhel7.2_release_tst/47/consoleFull#-21371504001f1a4601-6aec-4fd5-b678-78d4389fd5e8 08:18:33 === TEST EXECUTION SUMMARY === 08:18:33 System.Net.Primitives.Functional.Tests Total: 260, Errors: 0, Failed: 0, Skipped: 0, Time: 5.249s 08:18:40 System.Net.Security.Tests.KerberosTest.NegotiateStream_StreamToStream_AuthToHttpTarget_Success [FAIL] 08:18:40 System.AggregateException : One or more errors occurred. (A call to SSPI failed, see inner exception.) 08:18:40 ---- System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. 08:18:40 -------- System.ComponentModel.Win32Exception : ErrorCode=InternalError, Exception=Interop+NetSecurityNative+GssApiException: GSSAPI operation failed with error - An invalid status code was supplied (Server not found in Kerberos database). 08:18:40 at Interop.GssApi.EstablishSecurityContext(SafeGssContextHandle& context, SafeGssCredHandle credential, Boolean isNtlm, SafeGssNameHandle targetName, GssFlags inFlags, Byte[] buffer, Byte[]& outputBuffer, UInt32& outFlags) 08:18:40 at System.Net.Security.NegotiateStreamPal.EstablishSecurityContext(SafeFreeNegoCredentials credential, SafeDeleteContext& context, Boolean isNtlm, String targetName, ContextFlagsPal inFlags, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, ContextFlagsPal& outFlags) 08:18:40 Stack Trace: 08:18:40 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) 08:18:40 at System.Net.Security.Tests.KerberosTest.NegotiateStream_StreamToStream_AuthToHttpTarget_Success() 08:18:40 ----- Inner Stack Trace ----- 08:18:40 at System.Net.Security.NegoState.EndProcessAuthentication(IAsyncResult result) 08:18:40 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 08:18:40 ----- Inner Stack Trace ----- 08:18:40 08:18:40 Finished: System.Net.Security.Tests 08:18:40 08:18:40 === TEST EXECUTION SUMMARY === 08:18:40 System.Net.Security.Tests Total: 106, Errors: 0, Failed: 1, Skipped: 0, Time: 11.159s 08:18:40 error: One or more tests failed while running tests from ''. Exit code 1. +7714 area-System.Net Fix HttpClient dependencies on desktop The latest changes to make HttpClient an OOB implementation on desktop were not getting the correct dependency set. This has to do with the the way that EnsureOOBFrameworks evaluates assets to duplicate. It does so by seeing if any placeholders are obscuring the netstandard asset and copying the netstandard asset if that is the case. This worked fine for the reference assembly, but not the implementation since it wasn't actually obscured. The result was that NuGet selects the correct assets, but is missing implementation dependencies. For now I'm fixing this by changing the package structure to explicitly break out the net46 implementations into their own folders. This is essentially what we were trying to make happen automatically with EnsureOOBFrameworks. Longer term we might want to refactor how we generate dependencies to do an actual nuget-asset selection in order to harvest from the actual assemblies that NuGet will choose. For now I'm also working around the problem that the unix shims are being referenced everywhere even though they're only needed for Unix. There's still a problem with this package in that we have two different netstandard dependency groups (one meant for Windows and one meant for Unix) but because we can't express that in a fat package the Unix one will win, even on a windows machine, if the target framework supports NETStandard1.4 or higher. This doesn't cause a problem at the moment because the unix implementation is using a superset of the Windows dependencies but we need to see about how to better handle in lieu of the NuGet feature for RID-specific dependencies. /cc @davidsh @weshaggard @chcosta +7719 area-System.Linq LINQ: Append/Prepend/Cast could probably be optimized Currently, the implementation for `Append` looks like this: ``` cs public static IEnumerable Append(this IEnumerable source, T value) { foreach (var item in source) yield return item; yield return value; } ``` This looks like it's missing out on chances for optimization. For example, this code could probably be optimized if `items` was an array/list: ``` cs items.Append(foo).ToArray(); ``` since we'd know that the result would have a length of exactly `items.Length + 1`. Same for this: ``` cs items.Append(foo).Count(); ``` cc @JonHanna --- **edit:** Also `Cast` too, since the number of elements in the resulting enumerable is guaranteed to have the same number of items as the source. Today we still naively use an iterator block like this: ``` cs public static IEnumerable Cast(this IEnumerable source) { foreach (object obj in source) yield return (T)obj; } ``` +7720 area-System.Threading Add some basic Monitor tests. We don't currently have any tests for argument validation of the Monitor class. I added those as well as some basic functionality tests (ported from ToF). @stephentoub resolves #6459 +7725 area-System.Net Allow SslStreamPal.EncryptMessage to resize the output buffer SecureChannel tried precalculating the size of the ouput buffer, because that's how you interact with the Windows SChannel provider. Since OpenSSL has the BIO type to handle payload buffering it isn't set up to report the header and footer sizes the same way SChannel is. So, let the PAL implementation change the output buffer if it wants it to be bigger. The Windows implementation is largely unchanged, the only difference being that the Buffer.BlockCopy that aligns the data for SChannel interpretation has moved into the PAL. The Unix implementation doesn't need that extra copy to happen, so there's even a mild perf gain here. Fixes #7599. CC: @davidsh @CIPop @shrutigarg @stephentoub +7732 area-System.Xml System.Xml.RW.XmlSystemPathResolver.Tests failing ``` System.Xml.Tests.XmlSystemPathResolverTests.TestResolveInvalidPaths [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: at System.Xml.Tests.XmlSystemPathResolverTests.AssertInvalidPath(String path) at System.Xml.Tests.XmlSystemPathResolverTests.TestResolveInvalidPaths() ``` +7733 area-System.Runtime ARM64: System.Runtime.InteropServices.RuntimeInformation.Tests failing "``` c__DisplayClass46_1.<b__1>d.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1()\r\n at Xunit.Sdk.ExecutionTimer.d__4.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction)\r\n at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__0()\r\n at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code)\r\n at Xunit.Sdk.TestInvoker`1.d__46.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance)\r\n at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestInvoker`1.b__45_0()\r\n at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code)\r\n at Xunit.Sdk.TestInvoker`1.RunAsync()\r\n at Xunit.Sdk.XunitTestRunner.InvokeTestMethodAsync(ExceptionAggregator aggregator)\r\n at Xunit.Sdk.XunitTestRunner.d__4.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator)\r\n at Xunit.Sdk.TestRunner`1.<>c__DisplayClass43_0.b__0()\r\n at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code)\r\n at Xunit.Sdk.TestRunner`1.d__43.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestRunner`1.RunAsync()\r\n at Xunit.Sdk.XunitTestCaseRunner.RunTestAsync()\r\n at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestCaseRunner`1.RunAsync()\r\n at Xunit.Sdk.XunitTestCase.RunAsync(IMessageSink diagnosticMessageSink, IMessageBus messageBus, Object[] constructorArguments, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource)\r\n at Xunit.Sdk.XunitTestMethodRunner.RunTestCaseAsync(IXunitTestCase testCase)\r\n at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync()\r\n at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestMethodRunner`1.RunAsync()\r\n at Xunit.Sdk.XunitTestClassRunner.RunTestMethodAsync(ITestMethod testMethod, IReflectionMethodInfo method, IEnumerable`1 testCases, Object[] constructorArguments)\r\n at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync()\r\n at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestClassRunner`1.RunAsync()\r\n at Xunit.Sdk.XunitTestCollectionRunner.RunTestClassAsync(ITestClass testClass, IReflectionTypeInfo class, IEnumerable`1 testCases)\r\n at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync()\r\n at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext()\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestCollectionRunner`1.RunAsync()\r\n at Xunit.Sdk.XunitTestAssemblyRunner.RunTestCollectionAsync(IMessageBus messageBus, ITestCollection testCollection, IEnumerable`1 testCases, CancellationTokenSource cancellationTokenSource)\r\n at Xunit.Sdk.XunitTestAssemblyRunner.<>c__DisplayClass14_2.b__3()\r\n at System.Threading.Tasks.Task`1.InnerInvoke()\r\n at System.Threading.Tasks.Task.Execute()\r\n at System.Threading.Tasks.Task.ExecutionContextCallback(Object obj)\r\n at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)\r\n at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)\r\n at System.Threading.Tasks.SynchronizationContextTaskScheduler.PostCallback(Object obj)\r\n at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state)\r\n at Xunit.Sdk.MaxConcurrencySyncContext.<>c__DisplayClass11_0.b__0(Object _)\r\n at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n at lambda_method(Closure , Object , Object )\r\n at Xunit.Sdk.ExecutionContextHelper.Run(Object context, Action`1 action)\r\n at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc()\r\n at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _)\r\n at System.Threading.Tasks.Task.InnerInvoke()\r\n at System.Threading.Tasks.Task.Execute()\r\n at System.Threading.Tasks.Task.ExecutionContextCallback(Object obj)\r\n at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)\r\n at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)\r\n at System.Threading.Tasks.ThreadPoolTaskScheduler.LongRunningThreadWork(Object obj)\r\n at System.Threading.ThreadHelper.ThreadStart_Context(Object state)\r\n at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n at System.Threading.ThreadHelper.ThreadStart(Object obj)]]> ``` " +7735 area-Infrastructure ARM64: System.Net.WebSockets.Client.Tests failing "``` d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.WebSockets.ClientWebSocket.d__17.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.WebSockets.Client.Tests.WebSocketHelper.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.WebSockets.Client.Tests.ClientWebSocketTest.d__41.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.WebSockets.Client.Tests.ClientWebSocketTest.d__33.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.WebSockets.WinHttpWebSocket.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.WebSockets.WebSocketHandle.d__21.MoveNext() ----- Inner Stack Trace ----- ]]> ``` " +7736 area-System.IO ARM64: System.Net.Http.WinHttpHandler.Unit.Tests fails "``` c__DisplayClass55_0.b__0() at System.Net.Http.WinHttpHandlerUnitTests.SendRequestHelper.Send(WinHttpHandler handler, Action setup, String fakeServerEndpoint) at System.Net.Http.WinHttpHandlerUnitTests.SendRequestHelper.Send(WinHttpHandler handler, Action setup) at System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTest.d__55.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at Interop.zlib.deflateInit2_(Byte* stream, Int32 level, Int32 method, Int32 windowBits, Int32 memLevel, Int32 strategy, Byte* version, Int32 stream_size) at Interop.zlib.DeflateInit2_(ZStream& stream, CompressionLevel level, CompressionMethod method, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.ZLibNative.ZLibStreamHandle.DeflateInit2_(CompressionLevel level, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.Deflater.DeflateInit(CompressionLevel compressionLevel, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy)]]> c__DisplayClass54_0.b__0() at System.Net.Http.WinHttpHandlerUnitTests.SendRequestHelper.Send(WinHttpHandler handler, Action setup, String fakeServerEndpoint) at System.Net.Http.WinHttpHandlerUnitTests.SendRequestHelper.Send(WinHttpHandler handler, Action setup) at System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTest.d__54.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at Interop.zlib.deflateInit2_(Byte* stream, Int32 level, Int32 method, Int32 windowBits, Int32 memLevel, Int32 strategy, Byte* version, Int32 stream_size) at Interop.zlib.DeflateInit2_(ZStream& stream, CompressionLevel level, CompressionMethod method, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.ZLibNative.ZLibStreamHandle.DeflateInit2_(CompressionLevel level, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.Deflater.DeflateInit(CompressionLevel compressionLevel, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy)]]> ``` " +7737 area-System.IO ARM64: Tests failing due to missing native components Need to investigate failures, most of them might be fixed when the native dependency is built for arm64. But do verify they pass after that System.Data.SqlClient.Tests Total: 25, Errors: 0, Failed: 2, Skipped: 0, Time: 12.869s System.IO.Compression.Tests Total: 143, Errors: 0, Failed: 113, Skipped: 0, Time: 61.830s System.IO.Compression.ZipFile.Tests Total: 24, Errors: 0, Failed: 12, Skipped: 0, Time: 19.632s System.IO.FileSystem.DriveInfo.Tests Total: 9, Errors: 0, Failed: 1, Skipped: 0, Time: 9.713s System.IO.FileSystem.Tests Total: 2227, Errors: 0, Failed: 18, Skipped: 25, Time: 4181.445s System.IO.Packaging.Tests Total: 131, Errors: 0, Failed: 112, Skipped: 0, Time: 67.804s +7742 area-System.Net AcceptAsyncV4BoundToSpecificV6_CantConnect wrong exception on CentOS http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/centos7.1_release_tst/1272/consoleFull#-21371504001f1a4601-6aec-4fd5-b678-78d4389fd5e8 ``` 23:24:01 System.Net.Sockets.Tests.DualMode.AcceptAsyncV4BoundToSpecificV6_CantConnect [FAIL] 23:24:01 Assert.Throws() Failure 23:24:01 Expected: typeof(System.Net.Sockets.SocketException) 23:24:01 Actual: typeof(System.TimeoutException): Timed out while waiting for the server accept... 23:24:01 Stack Trace: 23:24:02 at System.Net.Sockets.Tests.DualMode.DualModeConnect_AcceptAsync_Helper(IPAddress listenOn, IPAddress connectTo) 23:24:21 Finished: System.Net.Sockets.Tests 23:24:21 23:24:21 === TEST EXECUTION SUMMARY === 23:24:21 System.Net.Sockets.Tests Total: 587, Errors: 0, Failed: 1, Skipped: 2, Time: 44.837s 23:24:21 error: One or more tests failed while running tests from ''. Exit code 1. ``` +7745 area-System.IO Crc32Helper set to internal within System.IO.Compression Currently we have this: https://github.com/dotnet/corefx/blob/master/src/System.IO.Compression/src/System/IO/Compression/Crc32Helper.cs Yet we can't use it for our own checksum calculation. Why it can't be exposed? Best +7750 area-System.Net HttpClient and Cookies not working with redirects under netcore50 "I have a test project that uses an HTTP-Client to connect to a service, which in term uses cookies to store user information. Once done, it performs a redirect. Here's the service API: ``` [HttpGet] [Authorize(ActiveAuthenticationSchemes = ""Cookies"")] [Authorize(ActiveAuthenticationSchemes = ""Bearer"")] public async Task SelectTenant([FromQuery]string tenant) { ... var identity = (ClaimsIdentity) User.Identity; identity.AddClaim(new Claim(""foo"", bar)); // sign in again to persist the new claim in the cookie await HttpContext.Authentication.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, User); // redirect to the index (which won't realize we just logged in on DNX Core) return Redirect(""/""); } ``` Now, when on dnx451, the code works just fine. The index page is invoked, recognizes the cookie and the caller (HttpClient) also gets the cookie information. However, as soon as I switch to netcore50, the redirect isn't working properly anymore, as authentication data (in the cookie) seems to be lost. This is happening **before** `GetAsync` returns control to me. Here is the console output when running on DNX Core as of the redirect. Note that server-side authorization failed after the redirect: ``` info: Microsoft.AspNet.Authentication.Cookies.CookieAuthenticationMiddleware[3] AuthenticationScheme: Cookies signed in. 2016-04-14 18:43:15 [Information] Executing RedirectResult, redirecting to ""/"". info: Microsoft.AspNet.Mvc.RedirectResult[1] Executing RedirectResult, redirecting to /. 2016-04-14 18:43:15 [Information] Executed action ""OrderManager.Controllers.AccountController.SelectTenant"" in 0.0016ms info: Microsoft.AspNet.Mvc.Infrastructure.MvcRouteHandler[2] Executed action OrderManager.Controllers.AccountController.SelectTenant in 0.0016ms 2016-04-14 18:43:15 [Information] Request finished in 0.0016ms 302 info: Microsoft.AspNet.Hosting.Internal.HostingEngine[2] Request finished in 0.0016ms 302 2016-04-14 18:43:15 [Information] Protocol: HTTP/1.1 Method: GET ContentType: ContentLength: Scheme: http Host: localhost:5000 PathBase: Path: / Quer yString: info: Microsoft.AspNet.Hosting.Internal.HostingEngine[1] Request starting HTTP/1.1 GET http://localhost:5000/ 2016-04-14 18:43:15 [Warning] Authorization failed for the request at filter '""Microsoft.AspNet.Mvc.Filters.AuthorizeFilter""'. warn: Microsoft.AspNet.Mvc.Controllers.ControllerActionInvoker[0] Authorization failed for the request at filter 'Microsoft.AspNet.Mvc.Filters.AuthorizeFilter'. 2016-04-14 18:43:15 [Information] AuthenticationScheme: ""Cookies"" was challenged. info: Microsoft.AspNet.Authentication.Cookies.CookieAuthenticationMiddleware[5] AuthenticationScheme: Cookies was challenged. 2016-04-14 18:43:15 [Information] Executing ChallengeResult with authentication schemes ([""Cookies""]). info: Microsoft.AspNet.Mvc.ChallengeResult[1] Executing ChallengeResult with authentication schemes (Cookies). 2016-04-14 18:43:15 [Information] Executed action ""OrderManager.Controllers.HomeController.Index"" in 0.0015ms ``` It's worth noting that once control is returned to my code, HttpClient actually does get Cookies returned (just the wrong ones, since the Index page does another redirect to the logon because it doesn't realize I already logged in). So I guess that after `HttpContext.Authentication.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, User);` is executed, and the redirect happens, `HttpClient`on Core50 doesn't resubmit the cookie to the Index page or something. Here's the client call btw: ``` internal static async Task GetAuthCookie() { var c = new AuthenticationApiClient(new Uri(""https://foo.auth0.com"")); AuthenticationRequest request = new AuthenticationRequest { ... }; // authenticate with auth0 var authToken = await c.AuthenticateAsync(request); // set the authorization header var authHeader = new AuthenticationHeaderValue(""Bearer"", authToken.IdToken); var httpHandler = new HttpClientHandler(); using (var client = new HttpClient(httpHandler) { BaseAddress = new Uri(Settings.Uri) }) { client.DefaultRequestHeaders.Authorization = authHeader; string selectTenantUrl = ""Account/SelectTenant?tenant=bar""; //THIS IS THE CALL THAT DOESN'T WORK THE SAME ON CORE50 var result = await client.GetAsync(selectTenantUrl); Cookies = httpHandler.CookieContainer; } } ``` " +7751 area-System.Numerics Consider SIMD acceleration for Matrix and Quaternion operations similar to Vector ones Currently only Vector operations seem to benefit from SIMD acceleration. Matrix and Quaternion operations still use scalar operations instead. For instance, adding two Vector4 instances would emit a single instruction for packed addition, while transforming a Vector4 with a Matrix4x4 would result in 16 scalar multiplications and 12 scalar additions, instead of 4 packed multiplications and 3 packet additions. Since one of the main usage scenarios of System.Numerics.Vectors is in graphically intensive 2D and 3D applications, there are many cases where such applications can greatly benefit from accelerating Matrix and Quaternion operations. The theoretical speedup of a factor of 4 simply cannot be ignored. Some operations can be emulated by using Vector instead (e.g. Matrix4x4 can be represented with 4 Vector4 instances, so we can emulate the Matrix4x4 x Vector4 transformation by inlining the necessary code by hand), but other operations are hard or impossible to emulate efficiently. +7757 area-System.Globalization TimeZoneInfo should expose FromSerializedString and ToSerializedString `TimeZoneInfo` cannot be serialized with the data contract serializer (which is a recommended serialization API for .NET Core) - serializing it results in an `InvalidDataContractException`. An easy workaround would be to use `ToSerializedString` and `FromSerializedString` to convert the TimeZoneInfo into a string, but those APIs are also not available in .NET Core. This combination makes attempting to serialize a type containing a `TimeZoneInfo` a poor experience (the user needs to add a lot of `[KnownType]` attributes as per [this guidance](https://social.msdn.microsoft.com/Forums/en-US/f164f185-ae18-4775-a2ff-a814813d262d/unable-to-serialze-member-of-type-timezoneinfo?forum=wcf)) which results in messy code. +7758 area-System.ComponentModel Improve code coverage for System.ComponentModel.TypeConverter (24%) The code coverage report shows us at 47% for the next version of the package (currently in `dev/typedescriptor`). Improving this will mostly require work around `TypeDescriptor`. The largest gaps in its coverage are in private code requiring more elaborate scenarios to reach than what we have in unit tests. +7760 area-System.Net Add Http redirect tests Now that the Azure test endpoint has been updated, we can add more redirect tests that use different redirect status codes. It isn't necessary to modify every existing test to use different codes. But I modified the important ones especially those using credentials. Fixes #7505 +7763 area-System.Net Convert static readonly fields in Uri to const Right now `Uri` has a bunch of `static readonly` string fields that represent different scheme names, e.g. `UriSchemeFile`. Presumably they correspond to [these](https://msdn.microsoft.com/en-us/library/system.uri_fields%28v=vs.110%29.aspx) fields on MSDN, but since they don't appear to be exposed in the contract (and thus aren't visible publicly), I've converted them to be `const` strings. Summary of full changes in this PR: - Converted `static readonly` fields -> `const` strings - Refactored `UriParser` to reference these constants during intialization of built-in URI parsers - Since a few of them were schemes that were not previously exposed as a field (e.g. `vsmacros`), I've added a few extra `const` strings (such as `UriSchemeVsMacros`) and moved the definitions to `UriParser` - Added a `using static` to `Uri` and `UriBuilder`, which previously referenced those constants cc @justinvp @hughbe @stephentoub +7765 area-Serialization Remove nongeneric collections shim from serialization Remove non-generic collections `ArrayList` and `InternalHashtable` and use ArrayList and generic dictionary instead. There should be no change in behavior. cc: @shmao @zhenlan @SGuyGe Fix #7699 +7776 area-System.Net Remove SslStreamPal.PresizeEncryptBuffer - Move the Windows buffer (p)resizing code into the Windows PAL - Remove the consts from the PAL interface - Harden an assert in the Unix PAL TLS Encrypt method Addresses feedback from #7725. cc: @CIPop @stephentoub +7777 area-System.Net Fix build problem in WinHttpHandler tests PR #7760 broke the compilation of these tests but wasn't discovered in CI since WinHttpHandler tests weren't building properly. This PR will fix the compiler error while PR #7747 will make sure that these tests get built/run again in CI. +7778 area-Serialization XmlSerializer internal cache could have issue with concurrent reading and writing operations https://github.com/dotnet/corefx/pull/7765#discussion_r59859405 +7779 area-System.Security System.Security.Cryptography.CryptoStream.Dispose throws an exception "Moved from https://github.com/dotnet/coreclr/issues/4329 on behalf of @kosta-arnorsky If Dispose method of System.Security.Cryptography.CryptoStream class which uses AES/Rijndael algorithm with padding is called before the ends of decryption a target data stream it throws the exception: System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed. It's especially unpleasant when decryption is interrupted by an uncaught exception: ``` using (var transform = new System.Security.Cryptography.AesManaged().CreateDecryptor(key, iv)) using (var cryptoStream = new System.Security.Cryptography.CryptoStream(encryptedDataStream, transform, System.Security.Cryptography.CryptoStreamMode.Read)) using (var decryptedStream = new System.IO.MemoryStream()) { var buffer = new byte[5000]; var readed = cryptoStream.Read(buffer, 0, buffer.Length); decryptedStream.Write(buffer, 0, readed); throw new Exception(""Something bad has happend.""); } ``` Actual Result: Dispose throws the exception: ``` System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed. at System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast) at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) at System.Security.Cryptography.CryptoStream.FlushFinalBlock() at System.Security.Cryptography.CryptoStream.Dispose(Boolean disposing) at System.IO.Stream.Close() at System.IO.Stream.Dispose() ``` I've created a [small example](https://github.com/kosta-arnorsky/CryptoStream-Dispose-Exception-Sample) to demonstrate this behavior. " +7781 area-Serialization Serialization: iterate with KeyValuePair instead of keys collections for dictionary https://github.com/dotnet/corefx/pull/7765#discussion-diff-59931593 +7785 area-System.Net Remove a closure allocation from WinHttpResponseStream Pass in the current `WinHttpResponseStream` as a state parameter to the continuation, so we avoid a closure. Also unindented the code. cc @davidsh @stephentoub --- **edit:** Just updated it to pass in the method parameters as state, as well. +7787 area-System.Data [perf] System.Data.SqlClient allocates lots of closures with ContinueWith Ran this grep query: ``` bash grep --include='*.cs' --exclude-dir=tests --exclude-dir=ref -r 'ContinueWith[^(]*(([^,]*)' . ``` It printed out the following results: https://gist.github.com/anonymous/7afb47c97f2f632c7ddf963111ad3136 The closure in `WinHttpHandler` is fixed by #7785, but there appear to be a bunch of them in `System.Data.SqlClient` that could be removed. Opening up a tracking issue to remove them (which I'll do myself). --- **edit:** Just realized I wasn't picking up on some of them, because most are written in the form: ``` cs task.ContinueWith(t => ...) ``` rather than ``` cs task.ContinueWith((t) => ...) ``` so I ran a new query, which seems to pick up more matches. See: https://gist.github.com/anonymous/14aa1dea4fe3a26e42e338c5b30b09b4 +7788 area-System.Net Avoid a closure allocation in MessageProcessingHandler Contributes to #7787 by removing a closure allocation from `MessageProcessingHandler.SendAsync`. cc @davidsh @stephentoub +7790 area-System.Net Improve performance of decoding only '+' in WebUtility "- x4-x5 performance increase (benchmark) - 2x allocations decrease - I think that this is quite a common use case, as a lot of the time our inputs are normal text/phrases/sentences which typically contain ASCII and spaces (e.g. in Google) - Existing tests cover the new branches ## Benchmark ![benchmark](https://cloud.githubusercontent.com/assets/1275900/14580100/b936386e-03ba-11e6-849b-16cf7c8d1ea4.png) ## Benchmark Code
Click here ``` c# static unsafe void Main(string[] args) { TimeAction(""Old: "", () => Old.UrlDecode(""abc+def"")); TimeAction(""New: "", () => New.UrlDecode(""abc+def"")); Console.ReadLine(); } public static void TimeAction(string prefix, Action action) { var sw = new Stopwatch(); for (int iter = 0; iter < 5; iter++) { int gen0 = GC.CollectionCount(0); sw.Restart(); for (int i = 0; i < 10000000; i++) { action(); } sw.Stop(); Console.WriteLine($""{prefix}Time: {sw.Elapsed.TotalSeconds}\tGC0: {GC.CollectionCount(0) - gen0}""); } } ```
/cc @davidsh @stephentoub @jamesqo " +7792 area-Microsoft.CSharp "The method ""GetCustomAttributes(this ParameterInfo element, bool inherit)"" in CustomAttributeExtensions returns wrong value in case of generated property+method.." "The method `var attributes = p.GetCustomAttributes(false);` returns **null** in case the property and get/set-methods are generated using the ILGenerator. However according to the specifications, it should return: `A collection of the custom attributes that are applied to , or an empty collection if no such attributes exist. `. For details s this issue #7596. " +7793 area-System.Xml [xml] Code duplication of some XML decoder types The following types look like they have 2-3 different files, one in `Common` and one in the `System.Xml` assemblies. - `Base64Decoder` and `Base64Encoder`: present in both `Common` and `ReaderWriter` - `BinHexDecoder` and `BinHexEncoder`: present in `Common`, `ReaderWriter`, and `XmlSerializer` - `IncrementalReadDecoder`: present in both `Common` and `ReaderWriter` cc @khdang @zhenlan +7798 area-System.Threading [API Proposal] Task.Default for returning a cached Task with a result of default(T) Basically as the title says. It's a common scenario to want to return a cached `Task` if there's no async work that needs to be done in a method; .NET 4.6 offers `Task.CompletedTask` which helps with this, but for methods that actually return a result through the task there is no such alternative. Examples of where this would be useful: - `Stream.ReadAsync`: Classes that override `ReadAsync` can return `Task.Default()` instead of `Task.FromResult(0)` when there's no more work to do. - For any method returning `Task` where T is a reference type, if the return value is null then they can use `Task.Default()`. - Any method returning `Task.FromResult(false)` can use `Task.Default()` instead, which is likely a common scenario since there's only two boolean values. ## Proposed API ``` cs namespace System.Threading.Tasks { public class Task : IAsyncResult { public static Task Default(); } public class Task : Task { public static Task Default { get; } } } ``` +7800 area-System.Net Replace StreamAsyncHelper with StreamApmExtensions in System.Net.Security System.Net.Security was originally written to use Stream.Begin/EndRead/Write. When it was ported to .NET Core, it took a dependency on a helper that provided such Begin/End methods, but this helper was originally written for a different purpose: providing async Begin/End wrappers for the synchronous Read/Write methods. As a result of this mismatch, the async calls in System.Net.Security are queueing work items that then do work synchronously, blocking thread pool threads unnecessarily. This commit changes those helpers to sit on top of ReadAsync/WriteAsync instead. Eventually System.Net.Security should have its async I/O redone to sit natively on ReadAsync/WriteAsync using async/await, as it'll result in less overhead, but for now with minimal changes this improves the scalability of the library. cc: @davidsh, @cipop, @ericeil, @mikeharder +7804 area-System.Runtime Add UTF8 to CharSet The CharSet enumeration is used to specify how strings should be marshaled: https://github.com/dotnet/corefx/blob/master/src/System.Runtime/ref/System.Runtime.cs#L3019-L3023 ``` C# public enum CharSet { Ansi = 2, Unicode = 3, } ``` `Unicode` specifies that UTF16 should be used, regardless of platform, but `Ansi` is interpreted differently based on platform: on Windows it's interpreted to mean the ANSI format, whereas on Unix it's interpreted to mean UTF8. This means that on Windows we lack the ability to specify UTF8 as the marshaling, and more generally we lack the ability to specify UTF8 marshaling regardless of platform, making writing cross-platform managed components more difficult. We should add a new UTF8 enum value: ``` C# public enum CharSet { Ansi = 2, Unicode = 3, UTF8 = 5, } ``` that when used will cause the runtime's marshaling to be done with UTF8, which is the standard for modern services. [Added-by-Yi] We should also add a new corresponding UnmanagedType enum in UnmanagedType for UTF8 as well, for finer control and parity (between UnmanagedType and CharSet): https://github.com/dotnet/corefx/blob/master/src/System.Runtime.InteropServices.PInvoke/ref/System.Runtime.InteropServices.PInvoke.cs ``` C# public enum UnmanagedType { LPUTF8Str = 0x30 } ``` And new Marshal helpers while we are at it: ``` C# public class PInvokeMarshal { public static string PtrToStringUTF8(System.IntPtr ptr); public static string PtrToStringUTF8(System.IntPtr ptr, int len); public static System.IntPtr StringToAllocatedMemoryUTF8(string s); public static System.IntPtr ZeroFreeMemoryUTF8(System.IntPtr s); } ``` +7805 area-System.Runtime LoadInDefaultContext failed in CI with permissions error http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu15.10_release_tst/15/console ``` 04:16:23 System.Runtime.Loader.Tests.DefaultLoadContextTests.LoadInDefaultContext [FAIL] 04:16:23 System.UnauthorizedAccessException : Access to the path '/tmp/System.Runtime.Loader.Noop.Assembly.dll' is denied. 04:16:23 ---- System.IO.IOException : Operation not permitted 04:16:23 Stack Trace: 04:16:23 Starting: System.Runtime.Loader.Tests 04:16:23 at System.IO.UnixFileSystem.DeleteFile(String fullPath) 04:16:23 at System.Runtime.Loader.Tests.DefaultLoadContextTests.Init() 04:16:23 at System.Runtime.Loader.Tests.DefaultLoadContextTests.LoadInDefaultContext() ``` +7806 area-System.Numerics Intermittent System.Numerics.Tests.divremTest.RunDivRemTests failed in CI on CentOS, Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_centos7.1_debug_tst/3/consoleFull ``` 00:29:07 System.Numerics.Tests.divremTest.RunDivRemTests [FAIL] 00:29:07 Assert.Throws() Failure 00:29:07 Expected: typeof(System.DivideByZeroException) 00:29:07 Actual: typeof(Xunit.Sdk.TrueException): Out parameters not matching 00:29:07 Expected: True 00:29:07 Actual: False 00:29:07 Stack Trace: 00:29:07 at System.Numerics.Tests.StackCalc.VerifyOutParameter() 00:29:07 at System.Numerics.Tests.divremTest.VerifyDivRemString(String opstring) 00:29:07 at System.Numerics.Tests.divremTest.<>c__DisplayClass8_0.b__0() ``` +7807 area-System.Threading 14 System.Threading.Tasks.Parallel tests failing in outerloop They all look similar to: ``` 00:32:12 System.Threading.Tasks.Test.ParallelState.ParallelState73 [FAIL] 00:32:12 Assert.IsType() Failure 00:32:12 Expected: System.InvalidOperationException 00:32:12 Actual: Xunit.Sdk.TrueException 00:32:12 Stack Trace: 00:32:12 at System.Threading.Tasks.Test.ParallelStateTest.RealRun() 00:32:12 at System.Threading.Tasks.Test.ParallelState.ParallelState73() ``` +7809 area-System.Collections Cleanup StringDictionary tests - Use xunit - Remove duplicate tests already covered - Remove unecessary tests +7810 area-System.Data Provider test suite for ADO.NET To promote standard behavior across ADO.NET providers, it would be great if a test suite existed. Ideally all provider-independent tests would be extracted from SqlClient and made available via a nuget. This would be similar to what the EF Core team has done. +7812 area-System.Net WinHttp buffer supplied to the function was too small error should not be exposed "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/80/consoleFull ``` 07:27:26 System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.UseCallback_BadCertificate_ExpectedPolicyErrors(url: ""https://wrong.host.badssl.com/"", expectedErrors: RemoteCertificateNameMismatch) [FAIL] 07:27:26 System.Net.Http.HttpRequestException : An error occurred while sending the request. 07:27:26 ---- System.Net.Http.WinHttpException : A security error occurred 07:27:26 Stack Trace: 07:27:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 07:27:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 07:27:26 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(392,0): at System.Net.Http.HttpClient.d__58.MoveNext() 07:27:26 --- End of stack trace from previous location where exception was thrown --- 07:27:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 07:27:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 07:27:26 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.ServerCertificates.cs(174,0): at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__9.MoveNext() 07:27:26 --- End of stack trace from previous location where exception was thrown --- 07:27:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 07:27:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 07:27:26 --- End of stack trace from previous location where exception was thrown --- 07:27:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 07:27:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 07:27:26 --- End of stack trace from previous location where exception was thrown --- 07:27:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 07:27:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 07:27:26 ----- Inner Stack Trace ----- 07:27:26 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 07:27:26 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 07:27:26 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(843,0): at System.Net.Http.WinHttpHandler.d__102.MoveNext() ``` " +7814 area-System.Linq Remove expression catalog tests from expressions tests There are currently many tests run from src\System.Linq.Expressions\tests\Interpreter* that invoke expressions via both the compiler and interpreter to ensure they give the same results. The same set of expressions is also used in testing a no-op visitor. These are very time-consuming; removing them reduces run time from around 2m 50s on my machine to around 30s. They also give a false sense of coverage; a flaw within the expression itself would lead a correctly implemented compiler and interpreter to give the same incorrect result, so the coverage the tests lead to give a false impression of what branches are actually checked by tests. The drop in coverage makes it not a no-brainer clear win, but I think ultimately more of a boon toward the purpose of #1198 than the decrease in running time, even if it does take a step back in the metric. +7818 area-System.Diagnostics TestProcessStartTime failing on certain machines in CI This just started acting up again. I've seen it fail several times today. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_tst_prtest/68/console ``` 14:50:03 System.Diagnostics.Tests.ProcessTests.TestProcessStartTime [FAIL] 14:50:03 Assert+WrapperXunitException : File path: D:\j\workspace\osx_debug_bld---9c844ccb\src\System.Diagnostics.Process\tests\ProcessTests.cs. Line: 411 14:50:03 ---- Assert.InRange() Failure 14:50:03 Range: (4/17/16 9:56:53 PM - 4/17/16 9:56:59 PM) 14:50:03 Actual: 6/6/16 2:59:43 PM 14:50:03 Stack Trace: 14:50:03 at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) 14:50:03 at Assert.InRange[T](T actual, T low, T high, String path, Int32 line) 14:50:03 at System.Diagnostics.Tests.ProcessTests.TestProcessStartTime() 14:50:03 ----- Inner Stack Trace ----- 14:50:03 at Assert.InRange[T](T actual, T low, T high, String path, Int32 line) ``` +7819 area-System.Net Port to RC2: Replace StreamAsyncHelper with StreamApmExtensions in System.Net.Security https://github.com/dotnet/corefx/pull/7800 System.Net.Security was originally written to use Stream.Begin/EndRead/Write. When it was ported to .NET Core, it took a dependency on a helper that provided such Begin/End methods, but this helper was originally written for a different purpose: providing async Begin/End wrappers for the synchronous Read/Write methods. As a result of this mismatch, the async calls in System.Net.Security are queueing work items that then do work synchronously, blocking thread pool threads unnecessarily. This commit changes those helpers to sit on top of ReadAsync/WriteAsync instead. Eventually System.Net.Security should have its async I/O redone to sit natively on ReadAsync/WriteAsync using async/await, as it'll result in less overhead, but for now with minimal changes this improves the scalability of the library. +7820 area-System.Linq Public members of ExpressionVisitor throw NullReferenceException rather than ArgumentNullException. Calling `Visit(ReadOnlyCollection)` with a null collection, `Visit(ReadOnlyCollection, Func)` with a null collection or function or `VisitAndConvert(ReadOnlyCollection, String)` with a null collection will result in `NullReferenceException` rather than `NullArgumentException` which would be more appropriate. In the case of `Visit(ReadOnlyCollection, Func)` if the collection is empty and the function is null, no exception is thrown. +7824 area-System.Net SendToRecvFromAPM_Single_Datagram_UDP_IPv4 failed on Windows in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release/4/consoleFull ``` 03:23:09 System.Net.Sockets.Tests.SendReceive.SendToRecvFromAPM_Single_Datagram_UDP_IPv4 [FAIL] 03:23:09 Assert.True() Failure 03:23:09 Expected: True 03:23:09 Actual: False 03:23:09 Stack Trace: 03:23:09 D:\j\workspace\outerloop_win---65ef7d78\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs(211,0): at System.Net.Sockets.Tests.SendReceive.SendToRecvFromAPM_Datagram_UDP(IPAddress leftAddress, IPAddress rightAddress) ``` +7825 area-System.Net Kerberos to ntlm fallback is not happening with the ntlmssp plugin when passed valid ntlm creds. There is a bug in ntlmssp package .If we try spnego with valid ntlm creds, it first tries Kerberos and since the creds are not present in Kerberos database it should fallback to ntlm. Which is not happening in the current verison. The issue is discussed with ntlmssp plugin developer (simo sorce) .He will look into this. +7826 area-System.Net Ensure WinHttpHandler exceptions have good stack traces WinHttpHandler often creates an exception in response to some native error code and then stores that exception into a Task. As the exception isn't actually thrown until it's propagated out at the eventual await site, the these exceptions often lack a good stack trace to help highlight where the error came from. This commit ensures that such exceptions have a stack trace by throwing and catching them before storing them into either another exception as an inner exception or directly into a Task. I've not touched cases where the exception was already being thrown or where an exception was wrapping another exception that has a stack trace. cc: @davidsh Inspired by https://github.com/dotnet/corefx/issues/7812 +7830 area-System.Security Add Support for EnvelopedCms (API Review) "There have been requests to support EnvelopedCms on UWP and .NET Core. We will start with a Windows-only package (for time/cost reasons) but the package will be structured so that platform dependencies are isolated into a PAL layer and OpenSSL support can be added later. **Usage** The proposed api is designed to be source-compatible with the existing .NET feature (System.Security.Cryptography.Pkcs.EnvelopeCms) https://msdn.microsoft.com/en-us/library/system.security.cryptography.pkcs.envelopedcms(v=vs.110).aspx This is not intended to be an endorsement of that feature’s API design, rather an acknowledgement that easy source migratability remains a compelling feature. In addition to the EnvelopedCms type, we will migrate over the exchange types it needs. This represents the minimal set (despite its size.) ``` namespace System.Security.Cryptography { public sealed class CryptographicAttributeObject {} public sealed class CryptographicAttributeObjectCollection : ICollection, IEnumerable {} public sealed class CryptographicAttributeObjectEnumerator : IEnumerator {} } namespace System.Security.Cryptography.Pkcs { public sealed class AlgorithmIdentifier {} public sealed class CmsRecipient {} public sealed class CmsRecipientCollection : ICollection, IEnumerable {} public sealed class CmsRecipientEnumerator : IEnumerator {} public sealed class ContentInfo {} public sealed class EnvelopedCms {} public sealed class KeyAgreeRecipientInfo : RecipientInfo {} public sealed class KeyTransRecipientInfo : RecipientInfo {} public class Pkcs9AttributeObject : AsnEncodedData {} public sealed class Pkcs9ContentType : Pkcs9AttributeObject {} public sealed class Pkcs9DocumentDescription : Pkcs9AttributeObject {} public sealed class Pkcs9DocumentName : Pkcs9AttributeObject {} public sealed class Pkcs9MessageDigest : Pkcs9AttributeObject {} public sealed class Pkcs9SigningTime : Pkcs9AttributeObject {} public sealed class PublicKeyInfo {} public abstract class RecipientInfo {} public sealed class RecipientInfoCollection : ICollection, IEnumerable {} public sealed class RecipientInfoEnumerator : IEnumerator {} public enum RecipientInfoType {} public sealed class SubjectIdentifier {} public sealed class SubjectIdentifierOrKey {} public enum SubjectIdentifierOrKeyType {} public enum SubjectIdentifierType {} } namespace System.Security.Cryptography.Xml { public struct X509IssuerSerial {} } ``` **Compatibility** Nevertheless, we do propose to remove some of the harder-to-implement/troublesome surface area. **Senders must pass at least one CmsRecipient programmatically.** Unlike the full framework, we will not put up a dialog box for the user to select a certificate interactively. Passing an empty “recipients” argument to EnvelopedCms.Encrypt() will throw a PlatformNotSupportedException. Rationale: The dialog box is a disproportionally costly item to implement and may be irrelevant on Unix platforms (where we probably won’t automatically search a “MY store”) Our current asks have confirmed they do not require this feature. As part of this, we would remove the following method and constructor overloads: ``` EnvelopedCms.Encrypt() EnvelopedCms..ctor(SubjectIdentifierType recipientIdentifierType, ContentInfo contentInfo) EnvelopedCms..ctor(SubjectIdentifierType recipientIdentifierType, ContentInfo contentInfo, AlgorithmIdentifier encryptionAlgorithm) ``` The nullary Encrypt() message will always throw a PlatformNotSupportedException – making it useless. Passing a SubjectIdentifierType to the constructor is useless if the dialog box is unavailable, as that’s the only scenario in which this parameter’s value is used. Its very existence is confusing as the recipientIdentifierType is a per-recipient value, not a per-CMS value. **Remove the Parameter property from the AlgorithmIdentifier class.** Rationale: This property has two purposes: Extract the IV from a decoded CMS and to extract the key encryption algorithm parameters from the CMS. Unfortunately, the “IV” part has been plagued with problems from the start. For DES and 3DES, it returns a bogus value entirely. It only decodes the IV for mostly obsolete algorithms (RC2, RC4, DES and 3DES). For newer algorithms such as AES, it returns you an undefined encoded value. Since the result is a simple byte[] array, there is no way for the caller to know what he got back other than to know these idiosyncracies – nor can we easily fix them in a way that the caller can distinguish good returns from bad. The existence of the Parameters property also tricks one into thinking he can use it as an input to the EnvelopedCms constructor. But that assumption is wrong. EnvelopedCms’s constructor immediately zeroes out the Parameter property of the passed in AlgorithmIdentifier. (This is also rude API behavior as the mutation is visible to the caller.) Given all these historical problems, its vaguely defined nature and the fact that none of our asks need this information, we’d prefer to amputate this problem now. If a need for this information comes up in the future, we can take the opportunity to design the api better. Having said that, the philosophy for this iteration of the package is that we enable the basic encrypt/decrypt/decode scenarios. Supporting the writing of a full-fledged “CMS dumper” utility or attempting to decrypt the content yourself is a non-goal. **Turn IsSynchronized and SyncRoot on the Collection classes into methodimpls.** This has been an ongoing pattern as we port Collection classes. **Remove the finalizer from ContentInfo.** ContentInfo is nothing more than a tuple class that bundles an Oid and a byte array. There is no legitimate reason for it to hold native resources or contain any OS-specific code at all. The original desktop code threw an internal ""pin the byte array and give us a pointer to it"" helper method into it to solely to avoid three lines of ""pin the byte array and call the P/Invoke"" somewhere else. " +7833 area-System.Net Consider implementing perf counters in System.Net.Sockets The Sockets pert counter code is [currently disabled](https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/SocketPerfCounters.cs#L45). The comments reference #2500, which covers tracing, not perf counters, and has already been closed. We should sort out what to do about pert counters in Sockets. +7836 area-System.Net Receive bytes on accepted socket if requested See TODO here: https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/AcceptOverlappedAsyncResult.Unix.cs#L31 and here: https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.Unix.cs#L55 +7837 area-Serialization Consider XmlAnyElementAttributes to implement typed list instead of IList https://github.com/dotnet/corefx/pull/7765/files#r59948232 +7839 area-System.Data System.Data.Common target framework changes Change the System.Data.Common so that it can target portable-net451 and the contracts can reference wp8 . The comments from Eric in https://github.com/dotnet/corefx/pull/7767 can be used as a guideline. +7840 area-System.IO Fix clrcompression windows build The Open Windows native build of clrcompression was inferior to the one in TFS for a few reasons: - The Open clrcompression imported vcruntime140.dll - It did not produce a pdb for either build config - The linker/compiler flags being used were incorrect or inadequate Those problems have been resolved. The clrcompression.dll produced in the open is now the same as the one produced internally with the exception that it is linked against the UCRT instead of a fixed msvcrt from TFS. I also took this opportunity to fix the appx package and add the /guard:cf flag which is missing from the TFS clrcompression. resolves #7436 resolves #7748 related to #7756 @dagood @ellismg @gkhanna79 +7841 area-System.IO Better documentation of asynchronous I/O implementation per OS Hey all, I'm trying to dive into the sources for async sockets on Posix/Linux.. And I just want to make sure that I'm not imagining... In posix based systems the async sockets actually queue work items into the ThreadPool, and the actual IO is performed in a synchronous (maybe non-blocking) manner? Is this right? I assume that this is a very big split from how things are done on a native win32 system... I would appreciate any sort of clarification on this matter from someone well aware of the actual implementation I also think the documentation could benefit from a more detailed explanation of how async I/O works in different scenarios (OS)... I would be more than happy to submit a PR for the documentation, but I just want to make sure I'm reading the situation the right way Basically people doing async IO need to be aware of how the .NET idioms map to the actual OS... Better documentation for Windows/Linux/OSX should be very useful +7848 area-Serialization Remove unused files in serialization Follow up from https://github.com/dotnet/corefx/commit/c2babe77ed4af3066ebc3bade23ea5b7eb277d19, removing unused files from serialization folder. cc: @SGuyGe @shmao @zhenlan +7849 area-System.Net Eliminate unnecessary Dns.GetHostName call on Unix in Socket.InitializeSockets See https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs#L5073 This call can be eliminated on Linux/OSX, which should have some effect on startup perf on those platforms. +7850 area-System.Net Deal with failure in SocketAsyncContext.Register on Unix See TODO here: https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncContext.Unix.cs#L472 We should either throw a different exception, or possibly FailFast. +7851 area-System.Net Consider implementing SocketAsyncEventArgs.LogBuffer on Unix See TODO: https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.Unix.cs#L234 +7852 area-System.Net Add validation of Socket.Connect and Socket.Accept on disconnected socket From [the TODO in ArgumentValidationTests](https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/tests/FunctionalTests/ArgumentValidationTests.cs#L15): ``` csharp // TODO: // // - Connect(EndPoint): // - disconnected socket // - Accept(EndPoint): // - disconnected socket ``` +7853 area-System.Net Decide whether InternalSocketException from Socket.Connect is an acceptable behavioral difference "From the TODO in DnsEndPointTest.cs: ``` // TODO: Behavior difference from .Net Desktop. This will actually throw InternalSocketException. SocketException ex = Assert.ThrowsAny(() => { sock.Connect(new DnsEndPoint(""notahostname.invalid.corp.microsoft.com"", UnusedPort)); }); ``` " +7854 area-System.Net Resolve TODO: Move to NetworkInformation tests. From the [TODO in DualModeSocketTest.cs](https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs#L2059): ``` // TODO: Move to NetworkInformation tests. // Assert.Equal(NetworkInterface.IPv6LoopbackInterfaceIndex, ipPacketInformation.Interface); ``` (There are three of these in this file) +7855 area-System.Net Figure out how to get interface index with in_addr. From [pal_networking.cpp](https://github.com/dotnet/corefx/blob/master/src/Native/System.Native/pal_networking.cpp#L1254): ``` // TODO: Figure out how to get interface index with in_addr. // One option is http://www.unix.com/man-page/freebsd/3/if_nametoindex // which requires interface name to be known. // Meanwhile: packetInfo->InterfaceIndex = 0; ``` +7856 area-System.Net Add logging to calls to WinHttp based code Tracking EventSource logging for all WinHttp code. This applies to both WinHttpHandler as well as the WinHttp WebSockets implementation. One example from Interop.SafeWinHttpHandle.cs: ``` // TODO(Issue 2500): Add logging so we know when the handle gets closed. return Interop.WinHttp.WinHttpCloseHandle(handle); ``` #2500 was already closed; this issue will cover the specific potential log usage. +7857 area-System.Net Update System.Net TODO comments Update some `TODO` comments with issue numbers. Also, removed a few out-of-date or non-actionable `TODO` comments. See individual commits for specifics on each change. This PR covers all TODOs in `System.Net.Sockets`; I am working through the rest of `System.Net` now. +7858 area-System.Console Console.WindowWidth fails with IOException "Try the following: Program.cs: ``` csharp using System; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { Console.WriteLine($""Width: {Console.WindowWidth}""); } } } ``` project.json: ``` json { ""version"": ""1.0.0-*"", ""compilationOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.0-rc2-3002424"" } }, ""frameworks"": { ""netcoreapp1.0"": {} } } ``` The fails with the following exception: ``` Unhandled Exception: System.IO.IOException: The handle is invalid at System.ConsolePal.GetBufferInfo(Boolean throwOnNoConsole, Boolean& succeeded) at System.ConsolePal.get_WindowWidth() at System.Console.get_WindowWidth() at ConsoleApplication.Program.Main(String[] args) ``` " +7859 area-System.Console Empty Console.WriteLine call does not write blank line "`Console.WriteLine()` should output an empty line: ``` csharp using System; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { Console.WriteLine(""Should have empty line below""); Console.WriteLine(); Console.WriteLine(""Should have empty line above""); } } } ``` **Expected** ``` Should have empty line below Should have empty line above ``` **Observed (1.0.0-rc2-3002424)** ``` Should have empty line below Should have empty line above ``` " +7862 area-System.Net System.Net.Http.WebRequest works as a Microsoft.NETCore.App but not as a NETStandard.Library "The following code snippet and project.json combo restore, build and run: program.cs ... HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); project.json { ""version"": ""1.0.0-*"", ""compilationOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.0-rc2-3002394"" } }, ""frameworks"": { ""netcoreapp1.0"": {} } } Using the same code and creating a library does not [http.tar.gz](https://github.com/dotnet/corefx/files/226190/http.tar.gz) build (note the original library code did not have an entry point, but this was just for simplicity). project.json { ""version"": ""1.0.0-*"", ""compilationOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""NETStandard.Library"" : ""1.5.0-rc2-23931"" }, ""frameworks"": { ""netstandard1.5"": {} } } /Users/xyz/Documents/Projects/bug/http/Program.cs(17,9): error CS0246: The type or namespace name 'HttpWebRequest' could not be found (are you missing a using directive or an assembly reference?) /Users/xyz/Documents/Projects/bug/http/Program.cs(17,50): error CS0103: The name 'WebRequest' does not exist in the current context /Users/xyz/Documents/Projects/bug/http/Program.cs(17,35): error CS0246: The type or namespace name 'HttpWebRequest' could not be found (are you missing a using directive or an assembly reference?) /Users/xyz/Documents/Projects/bug/http/Program.cs(21,20): error CS0246: The type or namespace name 'HttpWebResponse' could not be found (are you missing a using directive or an assembly reference?) /Users/xyz/Documents/Projects/bug/http/Program.cs(21,48): error CS0246: The type or namespace name 'HttpWebResponse' could not be found (are you missing a using directive or an assembly reference?) dotnet --info .NET Command Line Tools (1.0.0-rc2-002394) Product Information: Version: 1.0.0-rc2-002394 Commit Sha: 3a423b1080 Runtime Environment: OS Name: Mac OS X OS Version: 10.11 OS Platform: Darwin RID: osx.10.11-x64 " +7864 area-System.Net Is the Content-Type header produced by StringContent() correct? "Consider the following code ... ``` c# string contentType = ""application/atom+xml""; string requestPayload = ""some data""; var stringContent = new StringContent(requestPayload, Encoding.UTF8, contentType); ``` According to Wireshark, I'm seeing a POST using `HttpClient` with this ... ``` Content-Type: application/atom+xml; charset=utf-8 ``` ![capture](https://cloud.githubusercontent.com/assets/1622880/14647964/a1396782-0625-11e6-9c7a-3cdc1b92e4a2.PNG) Shouldn't that `Content-Type` value just be ... ``` Content-Type: application/atom+xml ``` ?? Confused, because something is choking my Azure Table Storage requests with ... ``` string stringToSign = $""{requestMethod}\n\n{contentType}\n{dateInRfc1123Format}\n{canonicalizedResource}""; ``` ... and since `SharedKeyLite`, which only requires the date and resource, **works** with my `dateInRfc1123Format` and `canonicalizedResource`, I've sort of narrowed it down to the `contentType` of the request (shown above) not matching what I'm putting into the signature sting, namely just `application/atom+xml`. " +7866 area-System.ComponentModel Port UriTypeConverter source and add tests. The first commit ports the sources from TFS by dotnet-bot. The second commit clean ups and changes the sources to work in CoreFX. It also adds some tests. I couldn't find the existing tests so I just wrote some new ones in the style of the other tests in the project. The unusual comment style of the sources (devdoc) is to match the other sources in the TypeConverter namespace for consistency. resolves #7501 @Tanya-Solyanik @stephentoub +7870 area-System.Security The type initializer for 'Crypto' threw an exception - Unix "When starting my coreclr web application on a docker image, I receive the following exception: The type initializer for 'Crypto' threw an exception. ---> System.NullReferenceException: Object reference not set to an instance of an object. Full stack trace: http://textuploader.com/5yccn I think this is the line throwing the exception: https://github.com/dotnet/corefx/blob/release/1.0.0-rc1/src/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.EVP.cs#L50 I have tried both update1 and update2 of coreclr. I am utilizing the docker image: microsoft/aspnet:1.0.0-rc1-update1-coreclr I can find the library here and openssl dev is installed: root@475b687:/# find -name ""libcrypto.so"" ./usr/lib/x86_64-linux-gnu/libcrypto.so My project.json looks like: ""dependencies"": { ""Microsoft.AspNet.Authentication.JwtBearer"": ""1.0.0-rc1-final"", ""Microsoft.AspNet.IISPlatformHandler"": ""1.0.0-rc1-final"", ""Microsoft.AspNet.Mvc"": ""6.0.0-rc1-final"", ""Microsoft.AspNet.Server.Kestrel"": ""1.0.0-rc1-final"", ""Microsoft.AspNet.StaticFiles"": ""1.0.0-rc1-final"", ""Microsoft.Extensions.Configuration.FileProviderExtensions"": ""1.0.0-rc1-final"", ""Microsoft.Extensions.Configuration.Json"": ""1.0.0-rc1-final"", ""Microsoft.Extensions.Logging"": ""1.0.0-rc1-final"", ""Microsoft.Extensions.Logging.Console"": ""1.0.0-rc1-final"", ""Microsoft.Extensions.Logging.Debug"": ""1.0.0-rc1-final"", ""System.IdentityModel.Tokens.Jwt"": ""5.0.0-rc1-211161024"" }, " +7871 area-System.Security Port and Fix remaining AccessControl tests "Fixes the ports for the rest of the AccessControl tests to open. Tests are kept mostly intact with a few exceptions: - TestCaseStore data was programatically turned into XUnit MemberData providers. - Test classes were broken up into their own classes and files - Most validation checks were scripted into Assert calls. - Replaced most try/catch blocks with Assert.Throws calls. - Removed all of the ""testCasesPassed++"" calls. - Removed failing tests where the failures were due to bad tests and not bad source. - Tried to clean up the logic where it was easy to do so (e.g. Assert.True(!condition); should be Assert.False(condition);) though there are some of these remaining. Despite the above, there are still gaps and inconsistencies in these tests. The goal of this PR is only to port the tests from ToF and fix the low-hanging errors, but a future clean-up would be beneficial. resolves #6922 @bartonjs @stephentoub " +7873 area-System.Net Expose SocketException(int, EndPoint) to maintain exception Message compatibility. From the TODO in SocketExceptionFactory.cs: ``` csharp public static SocketException CreateSocketException(int socketError, EndPoint endPoint) { // TODO: expose SocketException(int, EndPoint) to maintain exception Message compatibility. return new SocketException(socketError); } ``` +7874 area-System.Data Stub System.Data with type redirections to System.Data.Common ODP.NET is complied against System.Data and now cannot be used under CoreCLR +7875 area-System.Diagnostics Make System.Diagnostics.FileVersionInfo non-RID specific Today we use PInvokes on Windows to implement System.Diagnostics.FileVersionInfo and we use MetadataReader for Unix. If we can do it compatibly we should make this a pure portable library and use the MetadataReader for all platforms and eliminate the need for the RID fork. +7876 area-Infrastructure Update netci and run-test to use the IgnoreForCI trait in Jenkins Updates the netci.groovy and runtest.sh files to pass -notrait Category=IgnoreForCI to build.cmd and run-test.sh in Jenkins so that we can disable tests from running when they're being run in Jenkins. @dotnet-bot test ci please replaces #6522 which replaced part of #6145 (I will merge this someday, you know ) @Priya91 +7877 area-System.Net Use HttpCacheReadBehavior.NoCache on Windows 10 From HttpClientHandler.cs: ``` csharp // The .NET Desktop System.Net Http APIs (based on HttpWebRequest/HttpClient) uses no caching by default. // To preserve app-compat, we turn off caching (as much as possible) in the WinRT HttpClient APIs. // TODO: use RTHttpCacheReadBehavior.NoCache when available in the next version of WinRT HttpClient API. this.rtFilter.CacheControl.ReadBehavior = RTHttpCacheReadBehavior.MostRecent; this.rtFilter.CacheControl.WriteBehavior = RTHttpCacheWriteBehavior.NoCache; ``` It looks like `RTHttpCacheReadBehavior.NoCache` is supported on Windows 10; we should consider using it. +7878 area-System.Net Behavior difference from NETFX when unknown HttpRequestMessage.Version is used "From HttpHandlerToFilter.cs: ``` csharp else { // TODO: We need to throw an exception here similar to .NET Desktop // throw new ArgumentException(SR.GetString(SR.net_wrongversion), ""value""); // // But we need to do that checking in the HttpClientHandler object itself. // and we have that bug as well for the WinHttpHandler version also. maxVersion = RTHttpVersion.Http11; } ``` ...but maybe this would be a breaking change at this point? " +7879 area-System.Net Add exception message explaining the PlatformNotSupportedException on MaxRequestContentBufferSize From HttpClientHandler.Windows.cs: ``` csharp public long MaxRequestContentBufferSize { // This property has been deprecated. In the .NET Desktop it was only used when the handler needed to // automatically buffer the request content. That only happened if neither 'Content-Length' nor // 'Transfer-Encoding: chunked' request headers were specified. So, the handler thus needed to buffer // in the request content to determine its length and then would choose 'Content-Length' semantics when // POST'ing. In CoreCLR and .NETNative, the handler will resolve the ambiguity by always choosing // 'Transfer-Encoding: chunked'. The handler will never automatically buffer in the request content. get { return 0; } // TODO: Add message/link to exception explaining the deprecation. // Update corresponding exception in HttpClientHandler.Unix.cs if/when this is updated. set { throw new PlatformNotSupportedException(); } } ``` +7882 area-System.IO Re-Enable Unicode Compression tests Some Compression tests were using unicode files that were failing specifically in CI runs. I've modified those tests to use the IgnoreForCI tag so we can avoid those failures. resolves #5459, #5096 +7883 area-System.Net In CurlHandler, use WinHttp's default connect timeout From CurlHandler.cs: ``` csharp private TimeSpan _connectTimeout = Timeout.InfiniteTimeSpan; // TODO: Use the WinHttp default once we determine how to expose this. HttpHandlerDefaults.DefaultConnectTimeout; ``` +7884 area-System.Net Determine if CurlHandler request buffer size should be optimized to start smaller and grow From CurlHandler.EasyRequest.cs: ``` csharp internal readonly byte[] _buffer = new byte[RequestBufferSize]; // PERF TODO: Determine if this should be optimized to start smaller and grow ``` +7885 area-System.Net Consider enhancing HTTP test server endpoint to provide a custom response header with a SHA1 hash of the expected response body From ResponseStreamTest.cs: ``` csharp // TODO: This validation will be improved in the future once the test server endpoint // is able to provide a custom response header with a SHA1 hash of the expected response body. ``` +7889 area-System.Net Figure out the possible values that Linux might return from /sys/class/net//operstate "From LinuxNetworkInterface.cs: ``` csharp // Maps values from /sys/class/net//operstate to OperationStatus values. private static OperationalStatus MapState(string state) { // TODO: Figure out the possible values that Linux might return. switch (state) { case ""up"": return OperationalStatus.Up; case ""down"": return OperationalStatus.Down; default: return OperationalStatus.Unknown; } } ``` " +7890 area-System.Net Better error handling in RequestStream.GetBuffer From RequestStream.cs: ``` csharp public ArraySegment GetBuffer() { ArraySegment bytes; bool success = _buffer.TryGetBuffer(out bytes); if (!success) { // TODO: Need to figure out how to log this and throw a good exception. throw new Exception(); } return bytes; } ``` +7893 area-System.Net Share code between WinHttpWebSocket and WinHttpClientHandler "From WinHttpWebSocket.cs: ``` csharp internal class WinHttpWebSocket : WebSocket { #region Constants // TODO: This code needs to be shared with WinHttpClientHandler private const string HeaderNameCookie = ""Cookie""; private const string HeaderNameWebSocketProtocol = ""Sec-WebSocket-Protocol""; #endregion ``` " +7895 area-System.Net Better error handling in WinHttpWebSocketCallback.cs From WinHttpWebSocketCallback.cs: ``` csharp // TODO: handle SSL related exceptions. state.UpdateState(WebSocketState.Closed); // TODO: Create exception from WINHTTP_CALLBACK_STATUS_SECURE_FAILURE flags. state.TcsUpgrade.TrySetException(exception); ``` +7896 area-System.Net Refactor WinRTWebSocket state into encapsulated class From WinRTWebSocket.cs: ``` csharp #region State // Code related to state management // TODO: Refactor state into encapsulated class ``` +7898 area-System.Net Associate issues with more TODO comments in System.Net This covers all TODO comments I found in the System.Net code. We should now have an open issue for every TODO, and every TODO should reference each issue by ID. There were a couple of comments suggesting that we change some iterative `[Fact]` cases into `[Theory]` cases; rather than file issues on these, I just went ahead and did it. @stephentoub, @CIPop, @davidsh +7899 area-System.Net Failing network tests in the CI "Of the past dozen or so PRs I've done I've noticed the following tests failing repeatedly. This one at least 4 times: System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.UseCallback_BadCertificate_ExpectedPolicyErrors(url: ""https://expired.badssl.com/"", expectedErrors: RemoteCertificateChainErrors) ``` MESSAGE: System.Net.Http.HttpRequestException : An error occurred while sending the request.\r\n---- System.Net.Http.WinHttpException : A security error occurred +++++++++++++++++++ STACK TRACE: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 392 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__9.MoveNext() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.ServerCertificates.cs:line 174 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Diagnostics.ExceptionHelpers.InitializeStackTrace[TException](TException e) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\Diagnostics\ExceptionExtensions.cs:line 15 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.WinHttpHandler.d__102.MoveNext() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 843 ``` This one twice: System.Net.Sockets.Tests.SendReceive.SendToRecvFromAPM_Single_Datagram_UDP_IPv4 ``` MESSAGE: Assert.True() Failure\r\nExpected: True\r\nActual: False +++++++++++++++++++ STACK TRACE: at System.Net.Sockets.Tests.SendReceive.SendToRecvFromAPM_Datagram_UDP(IPAddress leftAddress, IPAddress rightAddress) in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs:line 211 ``` " +7901 area-System.Linq Interpreter fails to throw when compiling redefined labels. A label re-defined in the same scope should throw upon compilation, but this does not happen in the interpreter. This bug was introduced by me at https://github.com/dotnet/corefx/pull/6993/files#diff-e009724c302721a6062e8980279534feR71 +7904 area-System.Linq Some tests in Linq.Expressions should be in Linq or Linq.Queryable In particular `MatchSequencePattern` tests for consistency between `Enumerable` and `Queryable` and so should be in the tests for each to catch any regressions in either. (Consider how #5947 changing the `Enumerable` API didn't trigger it in CI). There are some further tests that are really testing `Enumerable` or `Queryable` and should be tested along with the relevant assembly, though most are already well covered by the existing tests. And exception is `QueryableOfQueryable` which hits features of both `Queryable` and of `Expressions` but those features of `Expressions` it touches on are already well covered in parameter an lambda tests. +7906 area-System.Net Building System.Net.Primitives.FunctionalTests against packages fails Building the FunctionalTests with /p:BuildTestsAgainstPackages=true throws errors. Currently true has been added to keep the project reference. We should be able to remove this project reference (just reference the nupkg) and build the test project without errors. +7908 area-System.Security Building System.Sec.Crypto.Cng.Tests against packages fails Building the Tests with /p:BuildTestsAgainstPackages=true throws errors. Currently true has been added to keep the project reference. We should be able to remove this project reference (just reference the nupkg) and build the test project without errors. @bartonjs @weshaggard +7910 area-System.Security Building System.Sec.Crypto.X509Cert.Tests against packages fails Building the Tests with /p:BuildTestsAgainstPackages=true throws errors. Currently true has been added to keep the project reference. We should be able to remove this project reference (just reference the nupkg) and build the test project without errors. @bartonjs @weshaggard +7912 area-Serialization Building System.Xml.XmlSerializer.Tests against packages fails Building the Tests with /p:BuildTestsAgainstPackages=true throws errors. Currently true has been added to keep the project reference. We should be able to remove this project reference (just reference the nupkg) and build the test project without errors. @weshaggard +7913 area-System.Xml Building System.Xml.XDocument.TreeManipulation.Tests against packages fails Building the Tests with /p:BuildTestsAgainstPackages=true throws errors. Currently true has been added to keep the project reference. We should be able to remove this project reference (just reference the nupkg) and build the test project without errors. @weshaggard +7917 area-System.Collections ConcurrentBag allocations ConcurrentBag is potentially the best of the concurrent data structures when it comes to object pooling for high throughput as it has the lowest contention. However, it allocates a lot of `Node`s which means in practice its generally better to use a ConcurrentQueue which is based on array chunks since if you are pooling you are trying to avoid the allocations. It allocates a [new Node for every Add](https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentBag.cs#L905). If for example it used a lockless `ThreadStatic` stack or queue for the `Node`s and recycled them this would reduce its allocation weight; while still having the low contention. (Might be better approaches, just a suggestion) The following code allocates 32M Nodes and 1,278,983,840 bytes ``` csharp var o = new object(); var bag = new ConcurrentBag(); for (var ii = 0; ii < 1000000; ii++) { for (var i = 0; i < 32; i++) { bag.Add(o); } for (var i = 0; i < 32; i++) { bag.TryTake(out o); } } ``` ![Node allocations](http://aoa.blob.core.windows.net/aspnet/concurrentbag1.png) /cc @stephentoub +7920 area-System.Reflection TypeExtensions does not contain GetConstructor, GetMethod which accepts both BindingFlags and a Type[] "For example: in the full framework you could obtain a protected constructor with a specific signature by using the ""Type.GetConstructor(BindingFlags, Binder, Type[], ParameterModifier[])"" method. TypeExtensions provides a method which accepts BindingFlags and one that accepts a Type[]. But there is no method that accepts both. " +7921 area-System.Net Uri GetComponents test fails with invalid punycode on Unix "``` System.Tests.UriMethodTests.GetComponents(uri: http://xn--ሴpck.com/, components: NormalizedHost, expected: ""xn--ሴpck.com"") [FAIL] Assert.Equal() Failure ↓ (pos 0) Expected: xn--ሴpck.com Actual: ఽూ.com ↑ (pos 0) Stack Trace: at System.Tests.UriMethodTests.GetComponents(Uri uri, UriComponents components, UriFormat format, String expected) at System.Tests.UriMethodTests.GetComponents(Uri uri, UriComponents components, String expected) ``` " +7923 area-System.Net Simplify CurlHandler auth type handling After further discussions, it's been decided we don't need to remove NTLM from the auth type list and do lots of gyrations to only allow it in specific circumstances. This commit simplifies the auth type handling as a result, putting NTLM back into the ordered list of auth types. A similar change will be made separately for Windows. cc: @ericeil, @bartonjs, @davidsh +7927 area-Meta ProjectReference -> Package Dependency: No packages available for System.Composition.* project references "In our test builds, we'd like to be able to compile our libraries with project references converted to packages. System.Composition and System.Composition.Convention have project references to these libraries which we do not publish packaging for... > ""System.Composition.AttributedModel"" > ""System.Composition.Convention"" > ""System.Composition.Hosting"" > ""System.Composition.Runtime"" > ""System.Composition.TypedParts"" > ""TestLibrary"" > ""Microsoft.Composition.Demos.ExtendedCollectionImports"" The System.Composition.Convention test library was opted out of the project reference to package dependency conversion with https://github.com/dotnet/corefx/commit/c1ec94b74183f598513199cde0d799a514c0a0fb You can repro the issue by removing the ""KeepAllProjectReferences"" property from System.Composition.Convention.Tests.csproj and running ""sync /p /t"". " +7929 area-System.Net Fix HttpClient package for NETCore50 Recent refactoring broke asset selection for HttpClient on NETCore50. I had removed PackageTargetRuntime in order to use PackageDestination instead but this caused the RID-specific implementation to be chosen for NETCore50: https://github.com/ericstj/corefx/commit/0a8c4fb115246f80bcc86ddb88797bfd1c7271f7#diff-d6c266b4814b075db300e51936fdf722L17 Instead we need to make sure that we package the NETCore50 build as RID-specific as well so that it can take precedence of the RID- specific NETStandard implementation. /cc @davidsh @shmao +7930 area-System.Reflection ProjectReference -> Package Dependency: System.Reflection.Context does not restore against packages In our test builds, we'd like to be able to compile our libraries with project references converted to packages. System.Reflection.Context test project does not build when its project references are converted to package dependencies. EXEC : error : System.Reflection.Context 4.0.1-rc3-24018-00 provides a compile-time reference assembly for System.Reflection.Context on DNXCore,Version=v5.0, but there is no run-time assembly compatible with centos.7-x64. [E:\gh\chcosta\corefx\build.proj] EXEC : error : One or more packages are incompatible with DNXCore,Version=v5.0 (centos.7-x64). [E:\gh\chcosta\corefx\build.proj] EXEC : error : System.Reflection.Context 4.0.1-rc3-24018-00 provides a compile-time reference assembly for System.Reflection.Context on DNXCore,Version=v5.0, but there is no run-time assembly compatible with debian.8.2-x64. [E:\gh\chcosta\corefx\build.proj] EXEC : error : One or more packages are incompatible with DNXCore,Version=v5.0 (debian.8.2-x64). [E:\gh\chcosta\corefx\build.proj] Perhaps the right thing to do here is to remove the System.Reflection.Context test build as I hear it provides very little value... Alternatively, we could switch the target framework to netcore50, but then we'd need to create a netcore50 test-runtime. +7932 area-System.Net HttpResponseMessage dispose doesn't close when the body is not read When using `HttpClient.SendAsync` with `HttpCompletionOption.ResponseHeadersRead`, `HttpResponseMessage.Dispose` on the resulting response does not close the connection if none of the content has been read. If you even read a single byte of the content, `Dispose` works just fine. `HttpCompletionOption.ResponseContentRead` is the default so this is perhaps a less common scenario. I have tested Mac OS X and Linux, which have the same results. Windows acts differently. ``` > dotnet --version 1.0.0-rc2-002345 ``` ### Use Case This is important because sometimes it's not necessary for a client application to read the response body (e.g. if the status code is `500 Internal Server Error` then perhaps the client does not care to download the response). ### Workaround The client can just read a single byte from the response. However this seems like a hack and could break in the future for all I know. ### Test procedure 1. Extract the following .NET CLI test app: [closehttp.zip](https://github.com/dotnet/corefx/files/228633/closehttp.zip) 2. Open a connection but don't read any content (`dotnet run` on the test app). 3. Use some other tool to see open TCP connections on the test app process and verify one exists. - `lsof` on OS X and Linux. - [Process Explorer](https://technet.microsoft.com/en-us/sysinternals/processexplorer.aspx) on Windows. 4. Dispose the connection by following the tool's prompts. (`HttpResponseMessage.Dispose`) 5. Expect the connection to be closed in the tool and verify in the tool used in step 3. 6. Repeat steps 2-5 with `dotnet run read` (or any command line argument) to read a byte of the content body. ### Mac OS X and Linux results Checking a process's TCP connections: ``` > lsof -p PID | grep TCP dotnet 49733 46u IPv4 0t0 TCP :50657->ec2-54-175-222-246.compute-1.amazonaws.com:http (ESTABLISHED) ``` `HttpResponseMessage.Dispose` only closes the connection if an attempt has been made to read from the content stream. Calling `Dispose` on the network stream (from `HttpResponseMessage.Content.ReadAsStreamAsync`) does not help. `HttpClient.Dispose` _does_ close the connections. ### Windows results Checking a process's TCP connections: Screenshot for Process Explorer. ![capture](https://cloud.githubusercontent.com/assets/94054/14687430/572239e4-06f2-11e6-8bfb-5b20dcf13d4d.PNG) `HttpResponseMessage.Dispose` never seems to close the connection. Calling `Dispose` on the network stream (from `HttpResponseMessage.Content.ReadAsStreamAsync`) does not help. `HttpClient.Dispose` _does_ close the connections. I am thinking this may be due to the fact that the underlying layer is doing some connection pooling or `Keep-Alive` stuff. Not sure. +7933 area-Infrastructure Publish a package list with each build We change the set of packages / versions produced quite often. It would be good to produce a build artifact dropped to a public server that lists what packages make up a particular build. +7934 area-System.IO Modify FileSystemWatcher tests to use temp paths. This is a pretty general clean-up of the FSW tests to be more in line with the other FileSystem tests. - Add Common TempDirectory class for short-term temporary directories that are easy to create and destroy - Put all FSW tests into the System.IO.Tests namespace - Modify all FSW tests to use the common TempFile/TempDirectory classes instead of their own custom one - Modify all FSW tests to watch for events in a temporary directory. There shouldn't be any more new items being created or watched in the runtime folder. - Fix the SymLink tests to use the ConditionalFact attribute similar to how the FileSystem tests function. - Remove the symlink print statements being outputted by the FileSystem CreateSymbolicLink function. @stephentoub +7937 area-System.Net System.Net.Security test stabilization - Adding generic parallel test execution script. - Address several System.Net.Security test issues found using the script. The following tests have been used: - 100 parallel test processes on a 12CPU/16GB machine for 1hr - 20 parallel test processes on a 8CPU/3GB machine (leaving this to run overnight) - 20 parallel test processes on a 2CPU/2GB machine (leaving this to run overnight) Most of below bugs were potentially fixed by #7800 at least in part. Other test-code fixes to issues discovered during stress tests have been added to this PR. Fixes #4467 #5283 #5284 #5991. @davidsh @stephentoub @ericeil PTAL /cc @himadrisarkar +7938 area-Serialization `FormatterServices.GetUninitializedObject` replacement? I'm author of [FsPickler](http://nessos.github.io/FsPickler/), a multi-format message serialization library intended as a replacement to BinaryFormatter. The focus of the library is _serialization of closures_, which means that I need to support things like subtyping and internal, compiler-generated classes that often have no accessible constructors or serialization attribute annotations. I would be interested in porting FsPickler (and its father project, [mbrace](http://mbrace.io/)) to CoreCLR, however there are many obstacles, mostly related to deprecated APIs. The component I'm more concerned about is the `FormatterServices.GetUninitializedObject` method which is used for instantiating objects without relying on a parameterless constructor. This is crucial for us since many closure types (particularly F# lambdas) do not come with such constructors. Do you have any plans for replacing this with equivalent functionality? /cc https://github.com/dotnet/corefx/issues/6564#issuecomment-212620200 https://github.com/dotnet/coreclr/issues/2715 +7939 area-Infrastructure Update Windows Nano Server image used in CI cc @joshfree +7941 area-System.Net Fail more gracefully if the user specifies a receive buffer for AcceptAsync On Windows, `AcceptAsync` can optionally receive an initial buffer-full of data from the newly connected socket, via the magic of [`AcceptEx`](https://msdn.microsoft.com/en-us/library/windows/desktop/ms737524%28v=vs.85%29.aspx). We currently have no emulation of this feature on Unix. Instead, we fail an assert in Debug builds, or report erroneous results in Release builds. This change causes `AcceptAsync` to throw `PlatformNotSupportedException` if the user has supplied a buffer to receive data. In the future, we can consider implementing this feature, but for now it's better to fail correctly rather than succeed erroneously. I've also added a couple of new test cases (to check that this works on Windows, and does _not_ work on Unix), and some new asserts to make sure this doesn't come up elsewhere. Addresses #7836 @stephentoub, @CIPop +7942 area-Serialization XmlDictionaryWriterTest.XmlBaseWriter_CheckAsync_ThrowInvalidOperationException Fails in Net Native The test asserts the exception message. But in Net Native the exception contains the resource name only instead of the error message, thus the test fails in Net Native. +7944 area-System.Reflection Implements MetadataReaderProvider MetadataReaderProvider can be created from array, stream or a memory block, manages the specified resource and provides MetadataReader. +7946 area-System.Net Fix CurlResponseStream.Dispose to cancel the request We weren't canceling the request when prematurely Dispose'ing the response stream. Because of how asynchronous transfers work, where we need to pause the connection until a reader has requested data, if no reader ever requested data (e.g. the stream was disposed without reading anything) then the connection could remain paused indefinitely, and it would sit around until the HttpClient timeout kicked in and canceled it. This could lead to unbounded growth of the number of sockets being used, as sockets couldn't be pooled or cleaned up due to still being associated with an active download. The fix is simply to cancel the request in Dispose if the request isn't already completed. cc: @ericeil, @kapilash, @davidsh, @joelverhagen +7947 area-System.Net Force CurlHandler active operations to shutdown when handler disposed If the CurlHandler is disposed of while active operations are in progress, fail them. This was generally already happening, but not reliably, and not with the right exception type (a cancellation exception). cc: @ericeil, @kapilash, @davidsh +7948 area-System.Linq CanCatchExceptionAsObject failed in CI on unix http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release_prtest/138/consoleText ``` System.Linq.Expressions.Tests.ExceptionHandlingExpressions.CanCatchExceptionAsObject(useInterpreter: True) [FAIL] System.Exception : Exception of type 'System.Exception' was thrown. Stack Trace: at System.Linq.Expressions.Interpreter.ThrowInstruction.Run(InterpretedFrame frame) at System.Linq.Expressions.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame) at System.Linq.Expressions.Interpreter.Interpreter.Run(InterpretedFrame frame) at System.Linq.Expressions.Interpreter.LightLambda.Run(Object[] arguments) at Thunk(Func`2 ) at System.Linq.Expressions.Tests.ExceptionHandlingExpressions.CanCatchExceptionAsObject(Boolean useInterpreter) ``` +7952 area-Infrastructure CoreFX's version of CLI should be updated automatically when a new LKG of CLI is available "For more info on the plan, skip to this comment: https://github.com/dotnet/corefx/issues/7952#issuecomment-213072085 This issue was originally about the following bug that we're fairly sure was because we had an out of date CLI: --- Error during restore in [this OSX Release build](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_release_prtest/28/): ``` Tools are already initialized [14:24:51.24] Restoring all packages... /tmp/tmp62f36ecd1afa49f8a8396d696921c22e.exec.cmd: line 3: 4667 Segmentation fault: 11 ""/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest/Tools/dotnetcli/dotnet"" restore --packages ""/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest/packages"" --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://www.nuget.org/api/v2/ --infer-runtimes ""/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest/src"" ""/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest/pkg"" [14:28:23.61] Restoring all packages...Done. ``` So far this has only been observed in that one linked build, so I don't know if it's a one-off issue or not. Summary of ideas on this (thanks @ericstj @mellinoe) This was found in https://github.com/dotnet/corefx/pull/7931. However, https://github.com/dotnet/corefx/issues/7902 indicated that there was a corrupted package in the NuGet cache, which suggests that some sort of interruption earlier caused a package to be corrupted during restore. It may have been this same kind of segfault during a package install that caused the corrupt package, but we don't have a good way of tracking this down. A simple `./build.sh managed release` doesn't repro the segfault on my OSX box. One thing to try is to update CLI to take any fixes to the runtime that might have happened. (Side effect: NuGet may also want to be resilient to corrupted cache files, in case segfaults or even just build cancellations happen when the cache is being written.) " +7953 area-System.Linq Lambda compilation causes a stackoverflow when selecting a large number of columns from an EF entity. "This has been moved from https://github.com/aspnet/EntityFramework/issues/5131 We have a bit of an odd use-case and I think I may have uncovered a bug. I am going to be as clear as I can, but please ask any questions you need for clarification. I know this bug (if it is a bug) isn't going to be fixed today, so if someone can point me to the location in source this might originating from, I can take a look and 1) see if I can fix it or 2) if it isn't a bug in EF adjust my code accordingly. #### Problem System.Stackoverflow exception originating from EntityFramework.dll is causing W3WP to crash. #### What we are trying to do We have an entity defined in a DB context - nothing out of the ordinary here. The entity is exposed over a WebAPI Odata endpoint. The web client is able to query the data just fine and exports it to CSV for customers to download. The view backing the entity in question is approaching 1 millions records. We have an SLA to meet when being able to export the CSV, and when you have to export 1million records this SLA is broken. We originally tried a multi-threaded approach by have X number of threads getting N number of records per page and each doing a specific number of pages. So, 5 threads running at a time, each responsible for 200,000 records paging through them at 100 each. This helped, but it would still take ~20 minutes for a full export. So we moved to a streaming approach - this is where the fun starts :) #### Repro steps 1) Create a view in a database with more than 100 columns. 2) Bind that to an entity using the designer and expose it over a WebAPI Odata endpoint 3) Using the Odata framework, construct a query that selects all 100 rows from the entity. Note, you have to **explicitly** select the rows. Allowing the default select (which returns all rows) or doing a ""Select=*"" will not reproduce the problem. EX: `http://localhost/odata/entity?$select=col1,col2,...col99,col100` 4) W3WP crashes with an unhandled exception. You can see this in the Application Log. ``` Faulting application name: w3wp.exe, version: 8.0.9200.16384, time stamp: 0x50108835 Faulting module name: clrjit.dll, version: 4.6.96.0, time stamp: 0x55b96549 Exception code: 0xc00000fd Fault offset: 0x00000000000778ac Faulting process id: 0x2f4c Faulting application start time: 0x01d19b20a1c244cf Faulting application path: c:\windows\system32\inetsrv\w3wp.exe Faulting module path: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clrjit.dll Report Id: 7678dc0b-071e-11e6-945c-000d3a900c63 Faulting package full name: Faulting package-relative application ID: ``` 5) Attach a debugger and make the request again. Make sure your IDE is set to stop on all exceptions and you will see this exception is caught. (The line is annotated in the Example code code blow). Dig into the error and you will see it being thrown from EntityFramework.dll. ``` System.StackOverflowException was unhandled HResult=-2147023895 Message=Exception of type 'System.StackOverflowException' was thrown. InnerException: ``` #### Notes - I did some testing, and as soon as we select more than 96 columns the stackoverflow is thrown. Select 96 or less and it works - Notice we are not using a strongly typed entity. As far as PushStreamContent is concerned, it is just an IQueryable. I think this is important because a few years ago [this non-public patch](https://support.microsoft.com/en-us/kb/2384016) was put put for something very similar. I know it isn't the same, but there are similarities. I assume this would have been included in subsequent versions though. > - If I change the endpoint to _not_ use the PushStreamContent and instead just return the data like you see in most applications (i.e. `return Request.CreateResponse(view );`) it actually works. This leads me to believe it has something to do with the enumeration over the IQueryable. _Edit: The above point is wrong. It will fail either way_ - I mention it in passing, but I want to call out that if the client does a `$select=*`, then everything works. Even if there are more than the 96 columns. I wonder if it has to do with the size of the expression tree being built? - I have traced the bug down to the System.Linq.Expressions.Compiler.LambdaCompiler specifically this: ``` private void EmitLambdaBody() { // The lambda body is the ""last"" expression of the lambda CompilationFlags tailCallFlag = _lambda.TailCall ? CompilationFlags.EmitAsTail : CompilationFlags.EmitAsNoTail; EmitLambdaBody(null, false, tailCallFlag); } ``` #### Example code _you can see here that we are not using the @Queryable annotation, but instead calling options.ApplyTo our self_ ``` public HttpResponseMessage GetEntity(ODataQueryOptions options) { //the IsPublic isn't important here. I am just showing the we do additional query filtering on top of what the client asks for IQueryable view = options.ApplyTo(DbContext.vwEntity.where(row => row.IsPublic)); return new ResponseStreamer(Request).StreamAsync(view); } ``` _ResponseStreamer takes the current HttpWebRequests, and flushes rows out to a `PushStreamContent` as we get read them from the database. This, in essence, allows us to send rows to the client as fast as we are able to get them from SQL_ ``` public HttpResponseMessage StreamAsync(IQueryable data) { HttpResponseMessage response = request.CreateResponse(); response.Content = new PushStreamContent( async (outputStream, httpContent, transportContext) => { try { using (TextWriter tw = new StreamWriter(outputStream)) { using (JsonWriter writer = new JsonTextWriter(tw)) { writer.WriteStartArray(); // The exception is throw while enumerating over ""data"" foreach (var item in data) { string json = JsonConvert.SerializeObject(item)+"",""+Environment.NewLine; writer.WriteRaw(json); await outputStream.FlushAsync(); } writer.WriteEndArray(); } } } catch (Exception ex) { var errorBuffer = Encoding.Default.GetBytes(""an error for the client to see""); outputStream.Write(errorBuffer, 0, errorBuffer.Length); outputStream.Flush(); } finally { outputStream.Close(); } }); return response; } ``` #### Stacktrace ``` [Managed to Native Transition] mscorlib.dll!System.Reflection.Emit.DynamicMethod.CreateDelegate(System.Type delegateType = {Name = Inspecting the state of an object in the debuggee of type System.Type is not supported in this context. FullName = Inspecting the state of an object in the debuggee of type System.Type is not supported in this context.}, object target = {System.Runtime.CompilerServices.Closure}) Unknown System.Core.dll!System.Linq.Expressions.Compiler.LambdaCompiler.Compile(System.Linq.Expressions.LambdaExpression lambda, System.Runtime.CompilerServices.DebugInfoGenerator debugInfoGenerator) Line 210 C# System.Core.dll!System.Linq.Expressions.Expression>>.Compile() Line 190 C# EntityFramework.dll!System.Data.Entity.Core.Common.Internal.Materialization.CoordinatorFactory>.CoordinatorFactory(int depth, int stateSlot, System.Linq.Expressions.Expression> hasData = null, System.Linq.Expressions.Expression> setKeys = null, System.Linq.Expressions.Expression> checkKeys = null, System.Data.Entity.Core.Common.Internal.Materialization.CoordinatorFactory[] nestedCoordinators, System.Linq.Expressions.Expression>> element = {System.Linq.Expressions.Expression>>}, System.Linq.Expressions.Expression> wrappedElement, System.Linq.Expressions.Expression>> elementWithErrorHandling, System.Linq.Expressions.Expression>>> initializeCollection = null, System.Data.Entity.Core.Common.Internal.Materialization.RecordStateFactory[] recordStateFactories) Unknown EntityFramework.dll!System.Data.Entity.Core.Common.Internal.Materialization.CoordinatorFactory>.CoordinatorFactory(int depth, int stateSlot, System.Linq.Expressions.Expression hasData, System.Linq.Expressions.Expression setKeys, System.Linq.Expressions.Expression checkKeys, System.Data.Entity.Core.Common.Internal.Materialization.CoordinatorFactory[] nestedCoordinators, System.Linq.Expressions.Expression element, System.Linq.Expressions.Expression elementWithErrorHandling, System.Linq.Expressions.Expression initializeCollection, System.Data.Entity.Core.Common.Internal.Materialization.RecordStateFactory[] recordStateFactories) Unknown [Native to Managed Transition] [Managed to Native Transition] mscorlib.dll!System.RuntimeType.CreateInstanceImpl(System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder = {System.DefaultBinder}, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes = null, ref System.Threading.StackCrawlMark stackMark) Unknown mscorlib.dll!System.Activator.CreateInstance(System.Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) Unknown mscorlib.dll!System.Activator.CreateInstance(System.Type type, object[] args) Unknown EntityFramework.dll!System.Data.Entity.Core.Common.Internal.Materialization.CoordinatorScratchpad.Compile() Unknown EntityFramework.dll!System.Data.Entity.Core.Common.Internal.Materialization.Translator.TranslateColumnMap>(System.Data.Entity.Core.Query.InternalTrees.ColumnMap columnMap, System.Data.Entity.Core.Metadata.Edm.MetadataWorkspace workspace, System.Data.Entity.Core.Objects.Internal.SpanIndex spanIndex, System.Data.Entity.Core.Objects.MergeOption mergeOption = NoTracking, bool streaming = true, bool valueLayer) Unknown [Native to Managed Transition] [Managed to Native Transition] EntityFramework.dll!System.Data.Entity.Core.Common.Internal.Materialization.Translator.TranslateColumnMap(System.Data.Entity.Core.Common.Internal.Materialization.Translator translator, System.Type elementType, System.Data.Entity.Core.Query.InternalTrees.ColumnMap columnMap, System.Data.Entity.Core.Metadata.Edm.MetadataWorkspace workspace, System.Data.Entity.Core.Objects.Internal.SpanIndex spanIndex, System.Data.Entity.Core.Objects.MergeOption mergeOption, bool streaming, bool valueLayer) Unknown EntityFramework.dll!System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlanFactory.Prepare(System.Data.Entity.Core.Objects.ObjectContext context, System.Data.Entity.Core.Common.CommandTrees.DbQueryCommandTree tree, System.Type elementType, System.Data.Entity.Core.Objects.MergeOption mergeOption = NoTracking, bool streaming = true, System.Data.Entity.Core.Objects.Span span, System.Collections.Generic.IEnumerable> compiledQueryParameters = null, System.Data.Entity.Core.Common.Utils.AliasGenerator aliasGenerator) Unknown EntityFramework.dll!System.Data.Entity.Core.Objects.ELinq.ELinqQueryState.GetExecutionPlan(System.Data.Entity.Core.Objects.MergeOption? forMergeOption) Unknown EntityFramework.dll!System.Data.Entity.Core.Objects.ObjectQuery>.GetResults.AnonymousMethod__6() Unknown EntityFramework.dll!System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction(System.Func func, System.Data.Entity.Infrastructure.IDbExecutionStrategy executionStrategy, bool startLocalTransaction, bool releaseConnectionOnSuccess = false) Unknown EntityFramework.dll!System.Data.Entity.Core.Objects.ObjectQuery>.GetResults.AnonymousMethod__5() Unknown EntityFramework.SqlServer.dll!System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute>>(System.Func>> operation) Unknown EntityFramework.dll!System.Data.Entity.Core.Objects.ObjectQuery>.GetResults(System.Data.Entity.Core.Objects.MergeOption? forMergeOption) Unknown EntityFramework.dll!System.Data.Entity.Core.Objects.ObjectQuery.System.Collections.Generic.IEnumerable.GetEnumerator.AnonymousMethod__0() Unknown EntityFramework.dll!System.Data.Entity.Internal.LazyEnumerator>.MoveNext() Unknown > MyAssembly.dll!MyAssembly.ResponseStreamer.StreamAsync.AnonymousMethod__0(System.IO.Stream outputStream = {System.Net.Http.PushStreamContent.CompleteTaskOnCloseStream}, System.Net.Http.HttpContent httpContent = {System.Net.Http.PushStreamContent}, System.Net.TransportContext transportContext = null) Line 37 C# ``` " +7959 area-Infrastructure Collection modified during package restore "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/72/consoleFull#205152537279494335-f7bd-47d0-8771-8661e00c2db2 > 08:47:54 [08:53:09.86] Restoring all packages... > 08:51:58 EXEC : error : Collection was modified; enumeration operation may not execute. [/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/build.proj] > > 08:51:58 > /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/build.proj(80,5): error MSB3073: The command """"/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/Tools/dotnetcli/dotnet"" restore --packages ""/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/packages"" --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://www.nuget.org/api/v2/ --infer-runtimes ""/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src"" ""/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/pkg"""" exited with code -1. " +7962 area-System.Net Ensure CurlHandler properly cleans up resources when finalized Right now resources get cleaned up when a request completes, regardless of whether it's disposed or not. But a) that might artificially delay when the resources are cleaned up, e.g. if a response is dropped without disposing it while there's still lots of data to be downloaded, and b) there are some cases where it might leak until the request times out (default is 60 seconds), e.g. if a response message gets dropped without having read any of its data and without being disposed. +7964 area-System.Net Port to RC2: Fix CurlResponseStream.Dispose to cancel the request We weren't canceling the request when prematurely Dispose'ing the response stream. Because of how asynchronous transfers work, where we need to pause the connection until a reader has requested data, if no reader ever requested data (e.g. the stream was disposed without reading anything) then the connection could remain paused indefinitely, and it would sit around until the HttpClient timeout kicked in and canceled it. This could lead to unbounded growth of the number of sockets being used, as sockets couldn't be pooled or cleaned up due to still being associated with an active download. The fix is simply to cancel the request in Dispose if the request isn't already completed. Port of #7946 +7973 area-Infrastructure A small suggestion for making the VS experience in corefx more idiot-proof. "Know all these lines that show up in various .csproj files? ``` ``` Well heck, these are just NOP's - might as well get rid of them, right? Or at least, not worry if they don't line up with the Configurations actually supported by the project (is this library ""Debug"" or ""Windows_Debug""?) **Wrong**. I just found out, the hard way, that the VS IDE looks for these conditionals as a sign that a .csproj ""supports"" a certain configuration. And if the .sln file specifies a certain configuration for your .csproj file and your .csproj file doesn't have this magic line, VS ""helpfully"" ""fixes"" your .sln to use a configuration that the .csproj appears to support (how does it know it picked a good one? Beats me.) And unless you're like me and keep files read-only as long as possible, you'll get no notice that ""Hey! We just applied a fix to _your_ file without knowing what we're doing. But I guess you didn't need to know that."" In the mean time, hitting F6 now yields broken or misleading results and you wonder why you have to commit an .sln file change that you have no understanding of. This seems like boilerplate that could go into dir.props so everyone doesn't have to deal with this. It's fine by me if the boilerplate includes every $(Configuration) name we use repo-wide - I see no value in the VS IDE insisting that the $(Configuration)/Project pairup be approved on both sides like that. " +7975 area-System.Net Change handling of NTLM in WinHttpHandler +7976 area-System.Net Implement SocketAsyncEventArgs.LogBuffer Fixes #7851. +7980 area-System.Linq Interpreter throws wrong exception on irreducible extension expression. Given the likes of: ``` private class IrreducibleWithTypeAndNodeType : Expression { public override Type Type => typeof(void); public override ExpressionType NodeType => ExpressionType.Extension; } ``` The compiler throws `ArgumentException` if compilation is attempted. The interpreter throws `PlatformNotSupportedException`. It should be made to correspond with the compiler. +7983 area-System.Net Add UriTemplate from WCF to .NET Core? The [UriTemplate](https://msdn.microsoft.com/en-us/library/system.uritemplate%28v=vs.110%29.aspx) class looks useful for scenarios with calling HTTP clients, however it is part of System.ServiceModel.dll. Could this type (or a similar one) be moved into the core framework along the `Uri` class to allow it to be used more widely and in .NET Core scenarios? +7987 area-System.ComponentModel Fix System.ComponentModel.TypeConverter package generation Due to implementation requirements for TypeDescriptors, the .NET Standard generation needs to be bumped to 1.5. The packages then broke, and this gives the NET Standard 1.0 surface area to wp8/win8 for S.CM.TypeDescriptor 4.1.0. The generation bump is due to new Reflection surface area (such as UnderlyingType and BindingFlags among others). There are also a many places where non-generic and specialized collections are used (which require 1.3) and in an attempt to get the implementation functional, those have not been replaced with generic versions. @chlowell @ericstj @weshaggard +7991 area-Serialization Certain XmlSerializer constructors are not supported in NetNative The following tests fail in NetNative due the corresponding constructors are not supported on NetNative. ``` XmlSerializerTests.Xml_ConstructorWithXmlRootAttr XmlSerializerTests.Xml_ConstructorWithXmlAttributeOverrides ``` +7992 area-System.IO WIP: Re-enable previously failing FileSystemWatcher tests There are a bunch of FileSystemWatcher tests that are ActiveIssue'd out that aren't failing anymore on my local box (Ubuntu or Windows). It's highly probable some of these are intermittent issues but some of them were also failing from concurrency issues that were resolved in https://github.com/dotnet/corefx/pull/7934. It's not immediately clear which are which, so I'm re-enabling them all and updating this as I determine which are which. progress towards: #1165, #7002, #6732, #6241, #6226, #5306, #4916, #3630, #3215, #2011, #1657 +7996 area-System.Reflection Unify decoding PE headers and reading other PE sections PEHeaders are currently decoded using (customized) BinaryReader while the rest of the PE file is read using blob readers. We should use blob readers everywhere to avoid doing things in two different ways. As a by-product reading PE headers from non-zero position in the stream would just work. Currently it's broken. +7999 area-System.Net Remove dead code form WebUtility - We no longer need to check `alwaysCreateNewReturnValue`, as now only `true` is ever passed into the method - We are guaranteed to have a non-empty `_charBuffer`, as the string is never empty, so the `if (_numChars > 0)` is always guaranteed to be true We have tests for `UrlEncodeToBytes_NewArray` already /cc @davidsh @stephentoub @jamesqo +8000 area-System.Net Lots of first chance exception System.ObjectDisposedException on SafeHandle in middleware scenario when request is cancelled We were running some middleware scenario where our ASP.NET site would make outgoing request via HttpClient. The request would be cancelled at any time. In the stress run I saw many first chance C++ exception and then accompanying CLR System.ObjectDisposedException on SafeHandle. Actually the WinHttpRequestState already shows it’s disposed. Although the exception would be populated and handled, it sounds more perf/debug-friendly to avoid it by checking the state object before making the PInvoke calls to native code and throw exception. 0:019> !mk Thread 19: SP IP 00:U 000000ac8b21e590 00007ffcc8398a5c KERNELBASE!RaiseException+0x68 [d:\blue\minkernel\kernelbase\xcpt.c @ 828] 01:U 000000ac8b21e670 00007ffca297670c coreclr!RaiseTheExceptionInternalOnly+0x3a4 [f:\dd\ndp\clr\src\vm\excep.cpp @ 3113] 02:U 000000ac8b21e7a0 00007ffca297a8f6 coreclr!UnwindAndContinueRethrowHelperAfterCatch+0x76 [f:\dd\ndp\clr\src\vm\excep.cpp @ 8747] 03:U 000000ac8b21e7f0 00007ffca2a196a2 coreclr!SafeHandle::DangerousAddRef+0xce [f:\dd\ndp\clr\src\vm\safehandle.cpp @ 415] 04:M 000000ac8b21e970 00007ffca2500ad0 System.StubHelpers.StubHelpers.SafeHandleAddRef(System.Runtime.InteropServices.SafeHandle, Boolean ByRef)(+0x1a IL,+0x20 Native) [f:\dd\ndp\clr\src\mscorlib\src\System\StubHelpers.cs @ 1679,13] 05:M 000000ac8b21e9b0 00007ffc44a1a6bd DomainBoundILStubClass.IL_STUB_PInvoke(SafeWinHttpHandle, IntPtr) 06:U 000000ac8b21e9b8 000000ab6417dff0 CLRStub@000000ab6417dff0 07:M 000000ac8b21e9c0 00007ffca2499efe System.Threading.TimerQueueTimer.Close()(+0x6e Native) [f:\dd\ndp\clr\src\mscorlib\src\System\Threading\Timer.cs @ 599,9] 08:M 000000ac8b21ea80 00007ffc44a1a5d2 System.Net.Http.WinHttpHandler.InternalReceiveResponseHeadersAsync(System.Net.Http.WinHttpRequestState)(+0xe2 Native) [f:\dd\ndp\fxcore\Open\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs @ 1361,13] 09:M 000000ac8b21eae0 00007ffc44a07ca0 System.Net.Http.WinHttpHandler+d__102.MoveNext()(+0x40a IL,+0x7d0 Native) [f:\dd\ndp\fxcore\Open\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs @ 849,25] 0a:M 000000ac8b21ebf0 00007ffca2431903 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)(+0x15 IL,+0x83 Native) [f:\dd\ndp\clr\src\mscorlib\src\System\Threading\ExecutionContext.cs @ 93,17] 0b:M 000000ac8b21ec60 00007ffca249a5c1 System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run()(+0x24 IL,+0x91 Native) [f:\dd\ndp\clr\src\mscorlib\src\System\Runtime\CompilerServices\AsyncMethodBuilder.cs @ 1071,25] 0c:M 000000ac8b21ecb0 00007ffca2497627 System.Threading.ThreadPoolWorkQueue.Dispatch()(+0xa4 IL,+0x1c7 Native) [f:\dd\ndp\clr\src\mscorlib\src\System\Threading\ThreadPool.cs @ 815,29] 0d:U 000000ac8b21ed50 00007ffca2cf2503 coreclr!CallDescrWorkerInternal+0x83 [f:\dd\ndp\clr\src\vm\amd64\CallDescrWorkerAMD64.asm @ 101] 0e:U 000000ac8b21ed90 00007ffca299b907 coreclr!MethodDescCallSite::CallTargetWorker+0x20f [f:\dd\ndp\clr\src\vm\callhelpers.cpp @ 653] 0f:U 000000ac8b21eea0 00007ffca2aebc96 coreclr!QueueUserWorkItemManagedCallback+0x2a [f:\dd\ndp\clr\src\vm\comthreadpool.cpp @ 510] 10:U 000000ac8b21ef90 00007ffca2957921 coreclr!ManagedThreadBase_DispatchMiddle+0x89 [f:\dd\ndp\clr\src\vm\threads.cpp @ 10144] 11:U 000000ac8b21f0f0 00007ffca2957c6c coreclr!ManagedThreadBase_DispatchOuter+0xb4 [f:\dd\ndp\clr\src\vm\threads.cpp @ 10399] 12:U 000000ac8b21f1a0 00007ffca2957d06 coreclr!ManagedThreadBase::ThreadPool+0x32 [f:\dd\ndp\clr\src\vm\threads.cpp @ 10505] 13:U 000000ac8b21f200 00007ffca2a7be50 coreclr!ManagedPerAppDomainTPCount::DispatchWorkItem+0xe4 [f:\dd\ndp\clr\src\vm\threadpoolrequest.cpp @ 760] 14:U 000000ac8b21f350 00007ffca2a7523a coreclr!ThreadpoolMgr::ExecuteWorkRequest+0x13a [f:\dd\ndp\clr\src\vm\win32threadpool.cpp @ 1891] 15:U 000000ac8b21f3a0 00007ffca2a75d25 coreclr!ThreadpoolMgr::WorkerThreadStart+0x4cd [f:\dd\ndp\clr\src\vm\win32threadpool.cpp @ 2361] 16:U 000000ac8b21f440 00007ffca295243c coreclr!Thread::intermediateThreadProc+0x80 [f:\dd\ndp\clr\src\vm\threads.cpp @ 2859] 17:U 000000ac8b21fe80 00007ffcca3413d2 kernel32!BaseThreadInitThunk+0x22 [d:\9147\base\win32\client\thread.c @ 78] 18:U 000000ac8b21feb0 00007ffccafa54e4 ntdll!RtlUserThreadStart+0x34 [d:\blue\minkernel\ntdll\rtlstrt.c @ 1026] 0:019> !mdt 000000ab630f2738 000000ab630f2738 (System.Net.Http.WinHttpRequestState) _lock:000000ab630f2810 (System.Object) _operationHandle:(System.Runtime.InteropServices.GCHandle) VALTYPE (MT=00007ffca2748ef0, ADDR=000000ab630f27e0) _disposed:true (System.Boolean) k__BackingField:000000ab630f26d0 (System.Threading.Tasks.TaskCompletionSource`1[[System.Net.Http.HttpResponseMessage, System.Net.Http]]) k__BackingField:(System.Threading.CancellationToken) VALTYPE (MT=00007ffca2754758, ADDR=000000ab630f27e8) k__BackingField:000000ab630f22d0 (System.Net.Http.HttpRequestMessage) k__BackingField:000000ab630f19e0 (System.Net.Http.WinHttpHandler) k__BackingField:000000ab6417d920 (Interop+WinHttp+SafeWinHttpHandle) k__BackingField:NULL (System.Exception) k__BackingField:false (System.Boolean) … 000000ac8b21f120 0:019> !mdt 000000ab6417d920 000000ab6417d920 (Interop+WinHttp+SafeWinHttpHandle) handle:000000ac8a3f7200 (System.IntPtr) _state:0x3 (System.Int32) _ownsHandle:true (System.Boolean) _fullyInitialized:true (System.Boolean) _parentHandle:NULL (Interop+WinHttp+SafeWinHttpHandle) +8001 area-System.Linq Missing exception type on xml docs for SingleOrDefault(src, predicate) `public static TSource SingleOrDefault(this IEnumerable source);` has the doc for all exceptions. `public static TSource SingleOrDefault(this IEnumerable source, Func predicate);` looks like it's missing the invalid operation one. ```c# // ..... // Exceptions: // T:System.ArgumentNullException: // source is null. // // T:System.InvalidOperationException: // The input sequence contains more than one element. public static TSource SingleOrDefault(this IEnumerable source); // ..... // Exceptions: // T:System.ArgumentNullException: // source or predicate is null. public static TSource SingleOrDefault(this IEnumerable source, Func predicate); ``` +8003 area-System.Net Add support for all OperationStatus values on Linux I found some documentation on this (now linked from the source). Also, this appears to be how Mono does it. Fixes #7889. @stephentoub @CIPop +8004 area-System.Reflection BlobReader should expose Pointer, Seek, Skip, Align. I was working on pushing down forward-only IL decoding out of IL -> IOperation prototype (but still in separate assembly from SRM for now) and found that BlobReader hides some things (kept internal) that are of general use. Given a BlobReader, I should be able to drop down to pointers/unsafe myself and I should also be able to skip around without resorting to copying a previous BlobReader instance at a previous position which has a bunch of fields (I think we can cut those down, but still, seek should be as cheap as possible). +8005 area-System.Net Add tests for HtmlDecode and HtmlEncode to WebUtility - Valid encoding - Invalid encoding - Unecessary encoding - No encoding needed - High BMP chars - Surrogate pairs - Chars in range 160-255 /cc @davidsh @stephentoub @jamesqo +8006 area-System.Net Add several HttpClient mini-stress tests Several outerloop tests that verify HttpClient doesn't completely fall over under some load: - Use one HttpClient instance to make many requests serially and in parallel - Use multiple HttpClient instances to make many requests serially and in parallel - Ensure that HttpResponseMessages can be GCd even if the associated response hasn't been fully drained. This one fails right now on unix due to an open issue. cc: @davidsh, @ericeil +8012 area-System.IO [CoreRT] Behavior mismatch between CoreCLR and CoreRT Streams in async methods **TL;DR** This will throw a `TaskCanceledException` in CoreCLR, while it will throw a `OperationCanceledException` in CoreRT: ``` cs await Stream.Null.FlushAsync(new CancellationToken(true)); ``` --- Recently noticed that several async methods in `Stream` and `MemoryStream` have differing implementations when it comes to cancellation tokens in the CoreCLR/CoreFX repos. For example, [here](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/IO/Stream.cs#L894) is the source code of `NullStream.FlushAsync` in CoreCLR, and [here](https://github.com/dotnet/corefx/blob/master/src/System.IO/src/System/IO/Stream.cs#L412) it is in CoreFX. Attempting to await the previous results in a `TaskCanceledException`, and the latter an `OperationCanceledException`. The fix would be to remove the `ThrowIfCancellationRequested` calls (along with all of the `pragmas`) and replace them with an `IsCancellationRequested` - `Task.FromCanceled` pattern. @stephentoub, do you know of any reason why the behaviors should differ? If not then I can submit a PR (along with tests) to fix this. +8013 area-System.Net SocketException improvements - Move all instantiation of InternalSocketException into SocketExceptionFactory. Rename InternalSocketException to ExtendedSocketException, and encapsulate it in SocketExceptionFactory to prevent a proliferation of dependencies on this type. - Add support for adding an EndPoint to the exception message in ExtendedSocketException (fixes #7873). - Remove the TODOs around #7853. I don't believe it's worth complicating the public contracts just in case someone does an exact type equality comparison on a SocketException. (Fixes #7853) +8023 area-System.IO FileSystemWatcher_Deleted_FileDeletedInNestedDirectory failed on Ubuntu in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release_prtest/279/consoleText ``` System.IO.Tests.DeletedTests.FileSystemWatcher_Deleted_FileDeletedInNestedDirectory [FAIL] Didn't observe a deleted event within 30000ms Expected: True Actual: False Stack Trace: Discovering: System.Net.Ping.Functional.Tests at System.IO.Tests.FileSystemWatcherTest.ExpectEvent(WaitHandle eventOccurred, String eventName, Int32 timeout) at System.IO.Tests.DeletedTests.FileSystemWatcher_Deleted_FileDeletedInNestedDirectory() ``` +8024 area-System.IO Two MoveFileTests failing on Windows OuterLoop > System.IO.Tests.MoveFileTests.Windows_File_Move_To_Different_Directory_Triggers_Event(eventType: Deleted, moveRaisesEvent: False) > System.IO.Tests.MoveFileTests.Windows_File_Move_To_Different_Directory_Triggers_Event(eventType: Renamed, moveRaisesEvent: True) http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release_prtest/1/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug_prtest/3/ +8028 area-System.Globalization System.Globalization.Tests fails on NetBSD "``` System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.NumberGroupSizes_Get(format: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = ""."", CurrencyGroupSeparator = "","", CurrencyGroupSizes = [3, 2], CurrencyNegativePattern = 9, ... }, expected: [3, 2]) [FAIL] Assert.Equal() Failure Expected: Int32[] [3, 2] Actual: Int32[] [3] Stack Trace: at System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.NumberGroupSizes_Get(NumberFormatInfo format, Int32[] expected) ``` " +8031 area-System.IO Disable failing FSW tests Disables a few failing tests that are dirtying up the CI. Tests will be permanently fixed as a part of #7992. related to #8023, #8024. @stephentoub +8032 area-System.Console "TermInfo.cs test fail for TERM=""xterm""" "There are entries for ""xterm-256color"", but not for ""xterm"". I don't understand offhand these magic values: ``` [Theory] [PlatformSpecific(PlatformID.AnyUnix)] [InlineData(""xterm-256color"", ""\u001B\u005B\u00330m"", ""\u001B\u005B\u00340m"", 0)] [InlineData(""xterm-256color"", ""\u001B\u005B\u00331m"", ""\u001B\u005B\u00341m"", 1)] [InlineData(""xterm-256color"", ""\u001B\u005B90m"", ""\u001B\u005B100m"", 8)] [InlineData(""screen"", ""\u001B\u005B\u00330m"", ""\u001B\u005B\u00340m"", 0)] [InlineData(""screen"", ""\u001B\u005B\u00332m"", ""\u001B\u005B\u00342m"", 2)] [InlineData(""screen"", ""\u001B\u005B\u00339m"", ""\u001B\u005B\u00349m"", 9)] [InlineData(""Eterm"", ""\u001B\u005B\u00330m"", ""\u001B\u005B\u00340m"", 0)] [InlineData(""Eterm"", ""\u001B\u005B\u00333m"", ""\u001B\u005B\u00343m"", 3)] [InlineData(""Eterm"", ""\u001B\u005B\u003310m"", ""\u001B\u005B\u003410m"", 10)] [InlineData(""wsvt25"", ""\u001B\u005B\u00330m"", ""\u001B\u005B\u00340m"", 0)] [InlineData(""wsvt25"", ""\u001B\u005B\u00334m"", ""\u001B\u005B\u00344m"", 4)] [InlineData(""wsvt25"", ""\u001B\u005B\u003311m"", ""\u001B\u005B\u003411m"", 11)] [InlineData(""mach-color"", ""\u001B\u005B\u00330m"", ""\u001B\u005B\u00340m"", 0)] [InlineData(""mach-color"", ""\u001B\u005B\u00335m"", ""\u001B\u005B\u00345m"", 5)] [InlineData(""mach-color"", ""\u001B\u005B\u003312m"", ""\u001B\u005B\u003412m"", 12)] public void TermInfoVerification(string termToTest, string expectedForeground, string expectedBackground, int colorValue) { ``` I was told that they differ between implementations.. NetBSD (I think) keeps the original curses(3) library still maintained, but I think I can try to use ncurses database for now. Do you know what values would be added for ""xterm""? " +8034 area-System.Numerics Adding a HashCode type to help with combining hash codes Replacing the long discussion with 200+ comments with **new issue #14354** This issue is **CLOSED!!!** ------------------------------------------------------ ### Motivation Java has `Objects.hash` for quickly combining the hash codes of constituent fields to return in `Object.hashCode()`. Unfortunately, .NET has no such equivalent and developers are forced to roll their own hashes like [this](http://stackoverflow.com/a/263416/4077294): ``` cs public override int GetHashCode() { unchecked { int result = 17; result = result * 23 + field1.GetHashCode(); result = result * 23 + field2.GetHashCode(); return result; } } ``` [Sometimes](https://msdn.microsoft.com/en-us/library/system.object.gethashcode.aspx) people even resort to using `Tuple.Create(field1, field2, ...).GetHashCode()` for this, which is bad (obviously) since it allocates. ### Proposal - List of changes in current proposal (against last approved version https://github.com/dotnet/corefx/issues/8034#issuecomment-262331783): - `Empty` property added (as natural starting point analogous to `ImmutableArray`) - Argument names updated: `hash`->`hashCode`, `obj` -> `item` ```cs namespace System { public struct HashCode : IEquatable { public HashCode(); public static HashCode Empty { get; } public static HashCode Create(int hashCode); public static HashCode Create(T item); public static HashCode Create(T item, IEqualityComparer comparer); public HashCode Combine(int hashCode); public HashCode Combine(T item); public HashCode Combine(T item, IEqualityComparer comparer); public int Value { get; } public static implicit operator int(HashCode hashCode); public static bool operator ==(HashCode left, HashCode right); public static bool operator !=(HashCode left, HashCode right); public bool Equals(HashCode other); public override bool Equals(object obj); public override int GetHashCode(); public override string ToString(); } } ``` Usage: ```c# int hashCode1 = HashCode.Create(f1).Combine(f2).Value; int hashCode2 = hashes.Aggregate(HashCode.Empty, (seed, hash) => seed.Combine(hash)); var hashCode3 = HashCode.Empty; foreach (int hash in hashes) { hashCode3 = hashCode3.Combine(hash); } (int)hashCode3; ``` ### Notes Implementation should use algorithm in [`HashHelpers`](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Numerics/Hashing/HashHelpers.cs#L9). +8036 area-System.Linq Allow ListInitExpression to have zero initializers Akin to #1877 allowing zero case blocks in a `SwitchExpression` and #3043 allowing empty `BlockExpression`s, it seems reasonable to allow `ListInitExpression`s to have zero elements. All the more so considering that `MemberListBinding`s allow them, and it requires no action beyond removing the explicit prohibition. +8043 area-System.Runtime Is Marshal.SizeOf(Type) supposed to be obsolete? "When using Marshal.SizeOf(Type), this gives a warning: ""'Marshal.SizeOf(Type)' is obsolete"" Does this make sense? What's the rationale? What is the alternative? cc @mellinoe " +8048 area-Infrastructure The default debug action for *.Tests projects should disable xunit parallelism. "I see no advantage to having multiple tests running in multiple threads firing off breakpoints when I'm trying to debug a test. tools\test.targets already nicely adds the ""-wait"" argument by default so the console doesn't disappear on you. `$(TestArguments) -wait ` The argument ""-parallel none"" would be a great companion to the ""-wait"" argument. xunit.console.netcore.exe doesn't care if you specify ""-parallel"" multiple times so this should be safe. " +8050 area-System.ComponentModel Remove explicit reference to System.ComponentModel.Primitives project when dev/typedescriptor is merged to master The updated System.ComponentModel.TypeConverter utilizes new attributes in the S.CM.Primitives assembly, but the reference assembly has not been updated with that surface area. For now, there is an explicit reference. Once the branch gets merged and built, the reference assembly will be available and can be referenced instead of explicitly referencing the project file. +8053 area-Infrastructure Build fails on Ubuntu with missing corerun error I was successfully able to do a native build on Ubuntu Linux, but when attempting to do a `./build.sh managed` I received the following error: > `./build.sh: line 129: /var/lib/corefx/Tools/corerun: No such file or directory` And looking at the Tools dir, I don't see `corerun` there. Below are the contents of this directory: ``` drwxr-x--- 4 root root 4096 Apr 25 11:48 . drwxr-xr-x 10 root root 4096 Apr 25 12:05 .. drwxr-xr-x 2 root root 4096 Apr 25 11:48 1.0.25-prerelease-00321-01 drwxr-xr-x 4 1001 sudo 4096 Apr 21 13:47 dotnetcli ``` Here is my build of Ubuntu: ``` Distributor ID: Ubuntu Description: Ubuntu 14.04.4 LTS Release: 14.04 Codename: trusty ``` Is there something I'm missing or should have done? I have followed the *nix build instructions line by line! Thank you in advance! +8054 area-System.Linq Misleading error message on exception for expression delegate type. The error message for a lamda expression of an invalid type is: > Lambda type parameter must be derived from System.Delegate In fact it must be derived from `System.MulticastDelegate`, `System.MulticastDelegate` itself is not allowed, though it is derived from `System.Delegate`. +8059 area-System.IO FileSystem Watcher: Consider polling API There is a prototype for a [Polling FileSystem Watcher in CoreFXLab](https://github.com/dotnet/corefxlab/tree/master/src/System.IO.FileSystem.Watcher.Polling) that we should look into bringing to CoreFX as an alternative to our current implementation. ### Some benefits of polling: - Works on all systems for network drives - Completely reliable - no event buffer overflow causing dropped/failed events - Avoids system resource limitations e.g. inotify max user instances - Consistency is generally achieved (or attempted) with the existing FSW by greatly increasing the size of internal event buffer. The downside of this is that it is using memory that won't be paged out and the max size is 64kb. Polling avoids this issue. ### Some downsides: - Doesn't scale well to very large directories e.g. an entire drive. - Generally considered to be less performant than the OS's watching APIs (though there are some factors that affect this like buffer size, watched directory size, and polling frequency). #### Bringing it to CoreFX There would be a few ways to bring the Polling FSW into CoreFX that we can consider: 1. Bring it in its own library System.IO.FileSystem.Watcher.Polling that is completely separate from the existing FSW 2. Put it into System.IO.FileSystem.Watcher but have it be its own separate class 3. Merge the implementation into the existing FSW and provide a bool constructor overload (e.g. `bool poll = false`) that allows specification of which implementation to use 4. Merge the implementation into the existing FSW and try to programatically determine which implementation to use. We could base our decision on the initial number of entries in the watched directory, for example. 5. Merge the implementation into the existing FSW and use both in unison. Use the OS's API's but also poll every now and then to catch things that the OS's FSW may have missed. 6. Replace our existing implementation with a polling implementation ### Examples of demand for a polling FSW: - https://github.com/dotnet/corefx/issues/7576 - http://stackoverflow.com/questions/239988/filesystemwatcher-vs-polling-to-watch-for-file-changes/240008#240008 - http://stackoverflow.com/questions/3612311/monitoring-a-directory-for-new-file-creation-without-filesystemwatcher/3612432#3612432 @KrzysztofCwalina @stephentoub @sokket @joshfree @chcosta +8061 area-System.Net Timeout_SetTo60AndGetResponseFromServerWhichTakes40_Success failed on Windows The handle is invalid http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_win10_debug/12/consoleText ``` System.Net.Http.Functional.Tests.HttpClientTest.Timeout_SetTo60AndGetResponseFromServerWhichTakes40_Success [FAIL] System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The handle is invalid Stack Trace: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() d:\j\workspace\outerloop_win---097a300f\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(392,0): at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() d:\j\workspace\outerloop_win---097a300f\src\System.Net.Http\tests\FunctionalTests\HttpClientTest.cs(389,0): at System.Net.Http.Functional.Tests.HttpClientTest.Timeout_SetTo60AndGetResponseFromServerWhichTakes40_Success() ----- Inner Stack Trace ----- d:\j\workspace\outerloop_win---097a300f\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(1360,0): at System.Net.Http.WinHttpHandler.InternalReceiveResponseHeadersAsync(WinHttpRequestState state) d:\j\workspace\outerloop_win---097a300f\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(850,0): at System.Net.Http.WinHttpHandler.d__102.MoveNext() ``` +8063 area-System.Net Fixed typo in GetHostAddressesAsync test for Dns class Fixed typo in GetHostAddressesAsync() test. +8064 area-Serialization System.Xml.XmlSerializer Perf tests failing @khdang when I run `msbuild /t:BuildAndTest src\System.Xml.XmlSerializer\tests\System.Xml.XmlSerializer.Tests.csproj /p:Performance=true` there seem to be some exceptions being thrown `System.Xml.XmlSerializer.Tests.Performance.XsPerformanceTest.XsSerializationTest(numberOfRuns: 1000, testType: Dictionary, testSize: 128) [FAIL] System.NotSupportedException : The type System.Collections.Generic.Dictionary`2[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, mscorlib, Version=4.0.0.0, Culture=neutr al, PublicKeyToken=7cec85d7bea7798e]] is not supported because it implements IDictionary.` Could you take a look and fix this +8065 area-System.Collections Fix ListDictionary.CopyTo throwing IndexOutOfRangeException - Now works as expected according to MSDN docs - Found in #7997, and caused inconsistencies in HybridDictionary behaviour at different lengths I got the impression that we should not throw an exception if count == 0, let me know if this is incorrect. /cc @ianhays +8066 area-System.Net OSX System.Net.NetworkInformation.Functional.Tests timeout in CI "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/263/console > 08:53:21 Discovering: System.Net.NetworkInformation.Functional.Tests > 08:53:21 Discovered: System.Net.NetworkInformation.Functional.Tests > 08:53:21 Starting: System.Net.NetworkInformation.Functional.Tests > 08:53:21 System.Xml.XDocument.xNodeBuilder.Tests -> /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/bin/AnyOS.AnyCPU.Debug/System.Xml.XDocument.xNodeBuilder.Tests/System.Xml.XDocument.xNodeBuilder.Tests.dll > 10:22:33 > Build timed out (after 120 minutes). Marking the build as aborted. > 10:22:39 > Build was aborted > 10:22:39 [xUnit] [INFO] - Starting to record. > 10:22:39 [xUnit] [INFO] - Processing xUnit.Net-v2 (default) > 10:22:39 > MSBUILD : error MSB4166: Child node ""3"" exited prematurely. Shutting down. Diagnostic information may be found in files in the temporary files directory named MSBuild_*.failure.txt. > 10:22:39 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/Tools/tests.targets(145,5): warning MSB5021: ""sh"" and its child processes are being terminated in order to cancel the build. [/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Net.NetworkInformation/tests/FunctionalTests/System.Net.NetworkInformation.Functional.Tests.csproj] " +8067 area-System.Linq ProjectReference -> Package Dependency: Disabled System.Linq.Expressions from package dependency build System.Linq.Expressions does not build when project references are converted to package dependencies due to > Catalog\ExpressionCatalog.RuntimeVariables.cs(34,39): error CS0246: The type or namespace name 'IRuntimeVariables' could not be found (are you missing a using directive or an assembly reference?) [D:\A_work\8\s\src\System.Linq.Expressions\tests See PR #7998 +8070 area-Infrastructure Can't open VS project due to missing files "corefx-master\corefx-master\src\System.IO.FileSystem.DriveInfo\src\System.IO.FileSystem.DriveInfo.csproj : error : The imported project ""\corefx-master\corefx-master\Tools\BuildVersion.targets"" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk. \corefx-master\corefx-master\dir.props Where are these files? " +8074 area-System.Linq Lamda expressions can have pointer types with high arity but not with low. The following works: ``` C# Expression.Lambda( Expression.Constant(3L), Enumerable.Range(0, 20).Select(_ => Expression.Variable(typeof(int).MakePointerType())) ); ``` However, the following does not: ``` C# Expression.Lambda( Expression.Constant(3L), Enumerable.Range(0, 2).Select(_ => Expression.Variable(typeof(int).MakePointerType())) ); ``` The difference being whether the arity is higher than the highest-arity `Func<>` delegate or not. Neither are likely to be useful, as pointer types hit snags elsewhere, but if the former is allowed, then so should be the latter. +8077 area-System.Text How do i get an spesified encoding like this. "Encoding enc = Encoding.GetEncoding(""gbk""); ↓↓↓↓↓↓↓↓↓↓ Exception: 'gbk' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. Parameter name: name can anyone give a solution,please. " +8081 area-System.Linq Expressions can be typed as open generic types The likes of `Expression.Default(typeof(List<>))`, `Expression.Constant(null, typeof(Dictionary<,>))` and some other expressions (though often other rules will get in the way) are allowed. Since these represent a value of an open generic type, they aren't really meaningful. They can have a value of null which can be used as long as it is converted to `object` and both compilation types accept `Expression.Lambda>(Expression.Default(typeof(List<>)))` as an expression that can be compiled into a delegate that returns null. While they can be pressed into service, it seems more appropriate to prohibit them. Factory methods that have at least one overload that takes `Type` arguments directly. Will check these off when they're either found to already prohibit such types, or fixed to do so (PRs just adding tests of already-correct behaviour marked immediately, PRs fixing behaviour upon acceptance): - [x] `Block` (entailed in check that type is reference-assignable from type of last child expression). - [x] `Break` - [x] `Call` #17333 - [x] `Catch` - [x] `Condition` - [x] `Constant` - [x] `Continue` - [x] `Convert` - [x] `ConvertChecked` - [x] `Default` - [x] `Dynamic` (Entailed in check that arguments match delegate method). - [x] `Field` #16231 - [x] `GetActionType` (Exception: Has practical use here) - [x] `GetDelegateType` (Exception: Has practical use here) - [x] `GetFuncType` (Exception: Has practical use here) - [x] `Goto` - [x] `Label` #16140 - [x] `Lambda` #16233 - [x] `MakeCatchBlock` - [x] `MakeDynamic` (Entailed in check that arguments match delegate method). - [x] `MakeGoto` - [x] `MakeTry` (entailed by check that type is void or that body and catch types are reference-assignable) - [x] `MakeUnary` Waiting on #16141 - [x] `New` - [x] `NewArrayBounds` - [x] `NewArrayInit` - [x] `Parameter` (byref types allowed) - [x] `Property` #16231 - [x] `Rethrow` #16141 - [x] `Return` - [x] `Switch` (Entailed by check that type is void or default and case types are reference-assignable) - [x] `Throw` #16141 - [x] `TryGetActionType` (Exception: Has practical use here) - [x] `TryGetFuncType` (Exception: Has practical use here) - [x] `TypeAs` - [x] `TypeEqual` #16150 (pointer types allowed; always results in `false`) - [x] `TypeIs` #16150 (pointer types allowed; always results in `false`) - [x] `Unbox` #16186 - [x] `Variable` Also the following have overrides that take `MemberInfo`, which could be generic and/or be related to an open generic type. Most will block this with restrictions they place on those `MemberInfo` arguments relating to other types, but they need to be checked. - [x] `Add` #16142 - [x] `AddAsign` #16142 - [x] `AddAsignChecked` #16142 - [x] `AddChecked` #16142 - [x] `And` #16142 - [x] `AndAlso` #16142 - [x] `AndAssign` #16142 - [ ] `Bind` #18610 - [x] `Call` - [x] `Convert` #16437 - [x] `ConvertChecked` #16437 - [x] `Decrement` #16437 - [x] `Divide` #16142 - [x] `DivideAssign` #16142 - [x] `ElementInit` - [x] `Equal` #16142 - [x] `ExclusiveOr` #16142 - [x] `ExclusiveOrAssign` #16142 - [x] `Field` #16231 - [x] `GreaterThan` #16142 - [x] `GreaterThanOrEqual` #16142 - [x] `Increment` #16437 - [x] `IsFalse` #16437 - [x] `IsTrue` #16437 - [x] `LeftShift` #16142 - [x] `LeftShiftAssign` #16142 - [x] `LessThan` #16142 - [x] `LessThanOrEqual` #16142 - [x] `ListBind` #18011 - [x] `ListInit` #16624 - [x] `MakeBinary` #16142 - [x] `MakeIndex` - [x] `MakeMemberAccess` - [x] `MakeUnary` #16437 - [x] `MemberBind` (Covered by validation added in #18011 but also entailed by need of type to match). - [x] `Modulo` #16142 - [x] `ModuloAssign` #16142 - [x] `Multiply` #16142 - [x] `MultiplyAssign` #16142 - [x] `MultiplyAssignChecked` #16142 - [x] `MultiplyChecked` #16142 - [x] `Negate` #16437 - [x] `NegateChecked` #16437 - [x] `New` - [x] `Not` #16437 - [x] `NotEqual` #16142 - [x] `OnesComplement` #16437 - [x] `Or` #16142 - [x] `OrAssign` #16142 - [x] `OrElse` #16142 - [x] `PostDecrementAssign` #16437 - [x] `PostIncrementAssign` #16437 - [x] `Power` #16142 - [x] `PowerAssign` #16142 - [x] `PreDecrementAssign` #16437 - [x] `PreIncrementAssign` #16437 - [x] `Property` #16231 - [x] `RightShift` #16142 - [x] `RightShiftAssign` #16142 - [x] `Subtract` #16142 - [x] `SubtractAssign` #16142 - [x] `SubtractAssignChecked` #16142 - [x] `SubtractChecked` #16142 - [x] `Switch` #16344 - [x] `UnaryPlus` #16437 +8082 area-System.Net Enable finalization of resources in CurlHandler This change is primarily about enabling abandoned requests to be cleaned up. Today, if you make a ResponseHeadersRead request on an HttpClient and then drop it without disposing it, the associated state will end up being leaked into the HttpClient until either the HttpClient is disposed or until the request times out, which by default is 60 seconds but could have been extended to never. This change enables such requests to be finalized. See the detailed comment in CurlHandler.cs for a description of the approach taken. Fixes #7962 cc: @ericeil, @bartonjs, @davidsh, @kapilash +8084 area-System.Linq Extension expressions with custom node types throws unreachable exception. "Considering the likes of: ``` C# private class ReducesFromStrangeNodeType : Expression { public override Type Type => typeof(int); public override ExpressionType NodeType => (ExpressionType)(-1); public override bool CanReduce => true; public override Expression Reduce() => Constant(3); } ``` Attempting to compile will throw a reasonable `PlatformNotSupportedException` on the interpreter, but an unreachable error (assertion failure in debug, IOE with the text ""Code supposed to be unreachable"" in release) on the interpreter. At the very least the code clearly isn't unreachable when it's just been reached. Having the compiler match the interpreter would be reasonable enough, but having both call `ReduceAndCheck()` and acting on the results is probably better still; in the worse case there's a better exception than saying the code isn't reachable, and if the node is reducible, we can compile it. " +8086 area-System.Data System.Net.Internals.InternalSocketException on OSX/Linux (Debian) "Hi guys, I have been struggling with this error for a few days, on an asp.net core application. I've created a simpler application that just does a select query, and while it works fine in Windows, it doesn't work on both OS X and Linux (under docker with a debian image). Although the Exception is the same on both environments, the message is slightly different: OS X: Environment details:
 Unhandled Exception: System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 35 - An internal exception was caught) ---> System.AggregateException: One or more errors occurred. (Device not configured) --->  System.Net.Internals.InternalSocketException: Device not configured    at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult)    at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult)    at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown ---    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)    at System.Data.SqlClient.SNI.SNITCPHandle.d__22.MoveNext()    --- End of inner exception stack trace ---    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)    at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)    at System.Threading.Tasks.Task.Wait(TimeSpan timeout)    at System.Data.SqlClient.SNI.SNITCPHandle..ctor(String serverName, Int32 port, Int64 timerExpire, Object callbackObject, Boolean parallel)    --- End of inner exception stack trace ---    at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling)    at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)    at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)    at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)    at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)    at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)    at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)    at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)    at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)    at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)    at System.Data.SqlClient.SqlConnection.Open()    at SqlClientTest.Program.Main(String[] args) 
The message on Linux:
 Unhandled Exception: System.Data.SqlClient.SqlException: A network-related or in stance-specific error occurred while establishing a connection to SQL Server. Th e server was not found or was not accessible. Verify that the instance name is c orrect and that SQL Server is configured to allow remote connections. (provider:  TCP Provider, error: 35 - An internal exception was caught) ---> System.Aggrega teException: One or more errors occurred. (No such device or address) --->  Syste m.Net.Internals.InternalSocketException: No such device or address    at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult)    at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult)    at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchron ization) --- End of stack trace from previous location where exception was thrown ---    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNot ification(Task task)    at System.Data.SqlClient.SNI.SNITCPHandle.d__22.MoveNext()    --- End of inner exception stack trace ---    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceled Exceptions)    at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationTo ken cancellationToken)    at System.Threading.Tasks.Task.Wait(TimeSpan timeout)    at System.Data.SqlClient.SNI.SNITCPHandle..ctor(String serverName, Int32 port , Int64 timerExpire, Object callbackObject, Boolean parallel)    --- End of inner exception stack trace ---    at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdent ity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolea n redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData  reconnectSessionData, Boolean applyTransientFaultHandling)    at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOp tions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConn ectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)    at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConn ectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConne ctionPoolKey poolKey, DbConnectionOptions userOptions)    at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owning Object, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)    at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection o wningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection )    at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection ow ningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean o nlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& co nnection)    at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection ow ningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbCon nectionInternal& connection)    at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection  owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions , DbConnectionInternal oldConnection, DbConnectionInternal& connection)    at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(Db Connection outerConnection, DbConnectionFactory connectionFactory, TaskCompletio nSource`1 retry, DbConnectionOptions userOptions)    at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)    at System.Data.SqlClient.SqlConnection.Open()    at SqlClientTest.Program.Main(String[] args) 
Environment settings: - dotnet cli version : 1.0.0-rc2-002422 - nuget feed: https://www.myget.org/F/aspnetvnext - database version: Sql Server 2012 SP1 (11.00.3412) The application is just this Program.cs ``` using System; using System.Data.SqlClient; using System.Collections.Generic; namespace SqlClientTest { public static class Program { public static void Main(string[] args) { string connectionString = ""Data Source=[OUR_DB_SERVER_IP]\\MASTER;Initial Catalog=[OUR_DB_NAME];MultipleActiveResultSets=False;User Id=[USER_ID]; Password=[OUR_PASSWORD];""; string sql = ""select TOP 10 id, vestigingNummer, kantoorNaam1 from NVM_Vestiging where idIsActive = 1""; List makelaars = new List(); using (var conn = new SqlConnection(connectionString)) { conn.Open(); using (var command = new SqlCommand(sql, conn)) { var reader = command.ExecuteReader(); while (reader.Read()) { int id = reader.GetInt32(0); int vestigingNummer = reader.GetInt32(1); string kantoorNaam = reader.GetString(2); makelaars.Add(new Makelaar(id, vestigingNummer, kantoorNaam)); } } } foreach (var makelaar in makelaars) { Console.WriteLine($""{makelaar.VestigingNummer}: {makelaar.KantoorNaam}""); } } } public class Makelaar { public Makelaar(int id, int vestigingNummer, string kantoorNaam) { Id = id; VestigingNummer = vestigingNummer; KantoorNaam = kantoorNaam; } public int Id { get; set; } public int VestigingNummer { get; set; } public string KantoorNaam { get; set; } } } ``` and the project.json: ``` { ""version"": ""1.0.0-*"", ""compilationOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.0-rc2-*"" }, ""System.Runtime"": ""4.0.0-rc2-24018"", ""System.Data.SqlClient"": ""4.1.0-rc2-24018"", ""System.Collections"":""4.0.0-rc2-24018"", ""System.Console"": ""4.0.0-rc2-24018"" }, ""frameworks"": { ""netcoreapp1.0"": { ""imports"": ""dnxcore50"" } } } ``` Running a python client using the FreeTDS driver works fine, so this seems specific to System.Data.SqlClient, and not to our database. " +8093 area-System.ComponentModel Add TypeDescriptor to System.ComponentModel.TypeConverter This change is to get the main functional parts of the TypeDescriptor infrastructure into System.ComponentModel.TypeConverter. There is still some clean up that should be done, but we can track those with some other issues. Fixes #6573 +8095 area-System.Net Add WinHttpHandler NTLM auth type handling After further discussions and feedback regarding app-compat with legacy servers, it's been decided we don't need to remove NTLM from the auth type list. This commit puts NTLM back into the ordered list of auth types. A similar change was made to CurlHandler in PR #7923. Due to current limitations with the Azure test server endpoints regarding integrated auth, this change was tested manually. cc: @stephentoub @joshfree @Petermarcu @CIPop @himadrisarkar +8099 area-System.Runtime OSInformation not querying the underlying OS runtime is simply not good enough. Here is a real example of use why build time OS Information without the real runtime is not a good idea. See discussions here: - https://github.com/dotnet/corefx/issues/3032 - https://github.com/dotnet/corefx/issues/6105 - https://github.com/dotnet/corefx/issues/1017 I code for a managed NoSQL database and for us performance is a must; therefore in some cases we have to do some platform specific stuff like calling PrefetchVirtualMemory. The problem is that the function is not supported on any OS, it is only supported in Windows 8+. While this may look like an isolated example, not even in windows (which is very stable) the runtime is changing and underlying APIs are not set in stone. Knowing that, think about newer platforms like Android where versions numbers would mean something is viable or not. Not having a cross-platform way to query the runtime is a no-no for performance and support OS that are not mature enough to absolutely not require having specific dedicated codepath depending on the runtime. EDIT: I know I can still get it with a Win32 call now I know that I am on windows, but that is not the point. +8100 area-Serialization Fix serialization perf test failures XmlSerializer doesn't support dictionary scenarios so skipping them in perf tests cc: @shmao @SGuyGe @zhenlan Fix #7584 +8104 area-System.Data ProjectReference -> Package Dependency: Disable SqlClient tests from package dependency build System.Data.SqlClient.Tests.csproj and System.Data.SqlClient.ManualTesting.Tests.csproj have a dependency on sni.dll which we do not currently build in the open. If we build packages in the open (producing new package versions), and then we attempt to restore packages against the new versions, we hit an error because the sni packages were not produced... Errors in E:\gh\chcosta\corefx\bin/obj/generated\System.Data.SqlClient.ManualTesting.Tests\AnyOS\project.json Unable to resolve 'runtime.win7-x86.runtime.native.System.Data.SqlClient.sni (>= 4.0.1-rc3-24026-01)' for 'DNXCore,Version=v5.0'. Unable to resolve 'runtime.win7-x64.runtime.native.System.Data.SqlClient.sni (>= 4.0.1-rc3-24026-01)' for 'DNXCore,Version=v5.0'. Errors in E:\gh\chcosta\corefx\bin/obj/generated\System.Data.SqlClient.Tests\AnyOS\project.json Unable to resolve 'runtime.win7-x64.runtime.native.System.Data.SqlClient.sni (>= 4.0.1-rc3-24026-01)' for 'DNXCore,Version=v5.0'. Unable to resolve 'runtime.win7-x86.runtime.native.System.Data.SqlClient.sni (>= 4.0.1-rc3-24026-01)' for 'DNXCore,Version=v5.0'. I'm going to submit a PR to disable these projects from the Project Reference to package dependency conversion for test builds so that I can unblock some build pipeline work while investigating how we want to resolve this problem. This issue is tracking disabling the System.Data.SqlClient test projects from the project reference to package dependency conversion process so that we can re-enable it once the underlying problem is resolved. +8108 area-System.IO Implement File enumeration over WinRT "We are missing an implementation of FileSystem.EnumeratePaths and FileSystem.EnumerateFileSystemInfos on WinRTFileSystem. https://github.com/dotnet/corefx/blob/master/src/System.IO.FileSystem/src/System/IO/WinRTFileSystem.cs#L231 This should be implemented by grabbing a StorageFolder for the path, then constructing a query and calling CreateFileQueryWithOptions. - Translate SearchOption into [FolderDepth](https://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.search.queryoptions.folderdepth). - Split the searchPattern into `name` and `extension` - Set [ApplicationSearchFilter](https://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.search.queryoptions.applicationsearchfilter.aspx) as `$""System.FileName:~\""{name}\""""` using [AQS](https://msdn.microsoft.com/en-us/library/windows/apps/bb266512.aspx) - Set [FileTypeFilter](https://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.search.queryoptions.filetypefilter.aspx) as `extension`, if it exists. " +8110 area-System.Runtime Remove temporary project references in ref/System.Runtime.InteropServices.csproj The System.Runtime.InteropServices reference assembly contains temporary project references to the System.Runtime and System.Runtime.InteropServices.PInvoke reference assemblies. This is necessary because of the GCHandle move (see https://github.com/dotnet/corefx/pull/7900). +8113 area-System.Net SendAsync - System.Net.Http.HttpRequestException: Error while copying content to a stream "I have a quite critical issue with HttpContent disposing _just_ on linux. (under IIS 8.5 it's working fine) Tried with: coreclr 1.0.0-rc1-update1 and 1.0.0-rc1-update2 I made an action in an asp.net web api, and in that: ``` var uri = ""http://....""; content = new ByteArrayContent(new byte[0]); var requestMsg = new HttpRequestMessage(System.Net.Http.HttpMethod.Post, uri); requestMsg.Content = content; var client = new HttpClient(); var response = client.SendAsync(requestMsg, HttpCompletionOption.ResponseContentRead, System.Threading.CancellationToken.None).GetAwaiter().GetResult(); return Json(string.Empty); ``` If I start a load test on thin, then randomly get this error message: ``` Microsoft.AspNet.Server.Kestrel[13] An unhandled exception was thrown by the application. System.Net.Http.HttpRequestException: Error while copying content to a stream. ---> System.ObjectDisposedException: Cannot access a disposed object. Object name: 'System.Net.Http.ByteArrayContent'. at System.Net.Http.HttpContent.CheckDisposed() at System.Net.Http.HttpContent.CopyToAsync(Stream stream, TransportContext context) at System.Net.Http.CurlHandler.HttpContentAsyncStream.b__26_0() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.CurlHandler.MultiAgent.TransferDataFromRequestStream(IntPtr buffer, Int32 length, EasyRequest easy) at System.Net.Http.CurlHandler.MultiAgent.CurlSendCallback(IntPtr buffer, UInt64 size, UInt64 nitems, IntPtr context) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Net.Http.StreamToStreamCopy.d__0.MoveNext() --- End of inner exception stack trace --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at httptest.Controllers.ValuesController.Get() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.AspNet.Mvc.Controllers.ControllerActionExecutor.ExecuteAsync(MethodInfo actionMethodInfo, Object instance, Object[] orderedActionArguments) at Microsoft.AspNet.Mvc.Controllers.ControllerActionInvoker.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Mvc.Controllers.FilterActionInvoker.d__53.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNet.Mvc.Controllers.FilterActionInvoker.d__44.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Mvc.Infrastructure.MvcRouteHandler.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at Microsoft.AspNet.Mvc.Routing.InnerAttributeRoute.d__10.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at Microsoft.AspNet.Routing.RouteCollection.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Builder.RouterMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.IISPlatformHandler.IISPlatformHandlerMiddleware.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Hosting.Internal.RequestServicesContainerMiddleware.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNet.Hosting.Internal.HostingEngine.<>c__DisplayClass32_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at Microsoft.AspNet.Server.Kestrel.Http.Frame.d__79.MoveNext() ``` I investigated it for several days. Finally I make a wrapper class for the ByteArrayContent: ``` public class SlambyByteArrayContent : ByteArrayContent { public SlambyByteArrayContent(byte[] content):base(content) { } protected override void Dispose(bool disposing) { //do nothing } public void DisposeManually(bool disposing) { base.Dispose(disposing); } } ``` And change my code to: ``` SlambyByteArrayContent content = null; try { var uri = ""http://....""; content = new SlambyByteArrayContent(new byte[0]); var requestMsg = new HttpRequestMessage(System.Net.Http.HttpMethod.Get, uri + ""_stats""); requestMsg.Content = content; var client = new HttpClient(); var response = client.SendAsync(requestMsg, HttpCompletionOption.ResponseContentRead, System.Threading.CancellationToken.None).GetAwaiter().GetResult(); return Json(string.Empty); }finally { if (content != null) content.DisposeManually(true); } ``` Now it's working for my case but I think there must be some evil around the HttpContent disposing. " +8114 area-System.Text System.Text.Encoding and System.Text.Encoding.Extensions test duplication Currently, the System.Text.Encoding and System.Text.Encoding.Extensions test projects test the same things for the same classes - I.e. ASCIIEncoding, UT7Encoding, UTF32Encoding, UTD8Encoding and UnicodeEncoding. For Latin1Encoding, System.Text.Encoding.Extensions is the only one testing this class This means that there is lots of duplication between the test projects. Ideally, this should be fixed. There are some solutions: - Remove/combine the tests in System.Text.Encoding.Extensions to the new more modern System.Text.Encoding.Tests - Extract the current tests in System.Text.Encoding.Tests and System.Text.Encoding.Extensions to src/common/tests and reference the files in both projects - keep as is, and duplicate tests (not an ideal solution IMO) My preferred solution is to migrate the existing non-duplicated tests to System.Text.Encoding.Tests as that project is more modern. In terms of coverage loss, there wouldn't really be any, as the code is in mscorlib anyway. In fact, this could consolidate coverage even more by having he tests in one place. @tarekgh let me know what approach you think is the best and I'll work on it +8115 area-System.Net Refactor SafeFreeCredentials class Tracking issue to fix the following code smells [``SafeFreeCredentials`](https://github.com/dotnet/corefx/blob/master/src/Common/src/Interop/Unix/libssl/SecuritySafeHandles.cs#L62) class: ~~\* As pointed out in [the PR comments of #6469](https://github.com/dotnet/corefx/pull/6469#discussion_r56659315), this class needs to be split up into two separate classes~~ (via #8452) - Rework PAL to remove non- SafeHandle SafeHandles. (Source of this observation was [the PR Comments of #6469](https://github.com/dotnet/corefx/pull/6469#discussion_r56658414) ) +8117 area-System.Net NegotiateStreamTest For Unix relies on ManualSkip The current situation with running functional tests on Linux for `NegotiateStream` is suboptimal. Instead of using a `ConditionalFlag`, each test [checks if the installation is successful or not](https://github.com/dotnet/corefx/blob/master/src/System.Net.Security/tests/FunctionalTests/NegotiateStreamTestForUnix.cs#L155) and bails out if it wasn't. This means that we cannot rely on the output of xunit to know if the test was successful or if it was skipped. This was written this way due to following orthogonal constraints: 1. Unlike other tests, the NegotiateStreamTests were expected to download and install the prereqs (This constraint is related to the infra team). 2. When the tests are run on a dev machine, the installation should be done only if the developer chooses to do so. 3. If the developer does not choose to download, install and configure KDC (presumably because he/she is not testing negotiatestream) the outerloop should not fail. 4. If the tests install anything, we need to uninstall them as well. In order to achieve 1 and 4, we need to use the XUnit's disposable fixture mechanism. But XUnit can only guarantee that the fixture instance is created before the any of the test is run. There are no documented relative ordering of - fixture instance creation - filtering of test cases Thus making it really tricky to achieve all the four requirements. +8119 area-System.Linq TryGetActionType and TryGetFuncType throw on some failures instead of returning false/null. If there are too many types, too few, or if one of the types is `ByRef` then these return false (with `null` to the `out` parameter) as expected. However, if the type list is null, contains null, contains a pointer type, or contains `typeof(void)`, they throw an exception, contrary to the `TryXXX` semantics. Throwing on null or containing null is perhaps defensible, but probably still incorrect. Throwing on pointer types and void less so. +8120 area-System.Linq Are types VBCallSiteDelegate0…7 missing? There's code in src/Common/src/System/Linq/Expressions/Compiler/DelegateHelpers.Generated.cs defining and using public types `VBCallSiteDelegate0` through `VBCallSiteDelegate7`. Because these are wrapped in `#if !FEATURE_COMPILE` they aren't active. Since however the compiler and interpreter used to be mutually exclusive, `!FEATURE_COMPILER` used to entail `FEATURE_INTERPRET` perhaps this should in fact be wrapped with `#if FEATURE_INTERPRET` and hence lit up? Has a type that was public in some contexts been removed due to this? CC @VSadov @bartdesmet +8121 area-System.Linq Expression.GetDelegateType works with pointer types for high arity but not for low. The following works: ``` C# Expression.GetDelegateType(Enumerable.Repeat(typeof(int).MakePointerType(), 18).ToArray()) ``` But the following throws `ArgumentException`: ``` C# Expression.GetDelegateType(Enumerable.Repeat(typeof(int).MakePointerType(), 17).ToArray()) ``` This is similar to (indeed, a variant of) #8074, but differs as while there the usefulness of lambda expressions that take pointer arguments is questionable, here the delegate could be used in a variety of ways that don't meet the same issues, so there's more value in making both work, rather than in making both throw. +8123 area-System.ComponentModel Allow DisplayAttribute on Class declarations Hello, I'd like you to consider allowing `DisplayAttribute` on class declarations. Forgive me if this is a duplicate, I haven't found anything related. Some use cases for it: - Auto-generate form captions - Auto-generate report captions - Use this information to extend nested property captions (like `Person.Details.Address` could get a label as `Personal info / Address`) - Auto-generate documentation (consuming `Description` and `Order` for example) - etc. +8124 area-System.Security Make System.Security.Cryptography.Native.dylib reference libcrypto/libssl via rpath The brew installed openssl has a library id of /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib, which doesn't seem to interact well with the macports installed version. For all the same reasons we make our libraries use an id with rpath we should use `install_name_tool –change` to rewrite these references post-link. +8126 area-System.Runtime Allow custom format strings for boolean values "This is moved from User Voice https://visualstudio.uservoice.com/forums/121579-visual-studio-2015/suggestions/5748267-allow-custom-format-strings-for-boolean-values?tracking_code=59376d71f1665e5476be1026a8c3318e I would like to be able to specify how string.Format displays the True and False values of Boolean variables. For example I would like the following C# snippet to output ""Boiler: On"" rather than ""Boiler: True"": bool boilerIsOn = true; Console.WriteLine(""Boiler: {0:On:Off}"", boilerIsOn ); " +8128 area-System.Net More HttpClient test fixes and additions - The GetAsync_ResponseWithSetCookieHeaders_AllCookiesRead test has been failing with some regularity in CI, with strange GatewayTimeout errors. I don't know why this particular test is so much more susceptible to that, but I've changed the test to use a local loopback server rather than an external site. - The SendAsync_ReadFromSlowStreamingServer_PartialDataReturned test was relying on timings from the server that might not always be correct, and due to internal differences between curl and WinHttp were very frequently wrong on Unix such that the test was disabled there. I reimplemented it with a local loopback server, too. - I've added another mini-stress test, with posts instead of gets. Fixes https://github.com/dotnet/corefx/issues/7234 Fixes https://github.com/dotnet/corefx/issues/4259 cc: @davidsh, @ericeil +8130 area-System.Reflection Comparing Reflection objects. We either need a story or decide we don't have a story. "This came up as an underlying issue in Issue #6857. Opening this as a Future issue to track. What's a developer to do if you need to compare two Reflection objects such as ParameterInfo for ""semantic equality""? On .NET Native, we actually did override Equals/GetHashCode on these objects and they perform semantic equality. However, .NET Native uses a completely different implementation of Reflection. On CoreClr, Reflection objects inherit the Object Equals() method, so those checks are just reference equality checks. They don't check semantic equality, but they often fool people into thinking they do because the CLR often caches Reflection objects for reuse. We probably don't want to make the caching 100% (unnecessary memory usage) but overriding Equals/GetHashCode may also have its costs (surface area compat? What about user-extended Reflection types if we ever support that?) " +8133 area-System.Runtime Add FormatterServices.GetUninitializedObject The current plan is to not support binary serialization **natively** in .NET Core, but we would like to enable the community and partners (e.g. distributed computing framework providers), and possibly our own out-of-band libraries (BinaryFromatter in a compatibility pack published to nuget) to implement something similar to what binary serialization is doing on top of .NET Core. So far, we identified a couple of enabler features that we do need to add to the core to make such out-of-band serializers possible: 1. FormatterServices.GetUninitializedObject 2. Exception.set_StackTrace This issue/request is to add these two asap. They are absolutely blocking and required. We might need more as we work with partners and community on enabling their scenarios. See the following issues for more context: #7938, #6564, +8135 area-System.Net Removed unsupported schemes from WebRequest.Create CoreFx doesn't support file: or ftp: schemes for WebRequest classes. However, those schemes were left in the source code when it was ported from .NET Framework. Removed the file: and ftp: schemes. Added tests. Fixes #7439. +8139 area-System.Reflection Handle projections for TypeSpecs in ResolveSignatureTypeKind Also add tests for all inputs to ResolveSignatureTypeKind Tracking TODO in code: https://source.dot.net/#System.Reflection.Metadata/System/Reflection/Metadata/Ecma335/MetadataReaderExtensions.cs,420 +8141 area-System.Diagnostics Missing DebuggingFlags on DebuggableAttribute Are there plan to add `DebuggingFlags` to System.Diagnostics.DebuggableAttribute? Especially since the constructor takes them as arguments, it seems natural that one could query it? +8142 area-System.Threading Add a way to wait for a Task without throwing and without allocating At the moment there does not seem to be ay direct API that you can use to wait for a task to complete without throwing in case the task completes cancelled or faulted. This forces using exceptions for control flow: ``` try { task.Wait(); } catch (AggEx) { } //Do nothing. ``` This is ugly and _very_ slow. Exceptions seem to cost ~0.1ms of CPU time to process. So if you are writing a port scanner using async IO you will find that you cannot scan more that 10k ports per second because the CPU is pegged from exception processing(!). Also, I don't know if exceptions scale across CPUs. I know that `ExceptionDispatchInfo` uses a global lock internally. So at least some of the processing does not scale at all. It might not be too common to have many faulted tasks. But it is more likely to rely on a greater number of cancelled tasks. I know of two workarounds: ``` Task.WhenAny(task); //params overload task.CW(() => { }, ExecuteSynchronously).Wait(); ``` Both allocate, add overhead and both make it unclear what you want to achieve. Please add a simpler and faster way to wait for a task to complete regardless of the terminal state it ends up in. The same problem exists with `await`. There is no direct way to wait for completion without throwing. Maybe `ConfigureAwait` can be extended with an `AwaitOptions` enum that has the values `IgnoreContext, NoThrow`. +8144 area-System.Net System.Net.Requests: Specify the capacity when creating the PrefixList Minor improvement: Specify the capacity when creating `WebRequest`'s `PrefixList` and reuse the same `HttpRequestCreator` instance for both http and https. As part of that, I added an explicit dependency on `System.Diagnostics.Debug`, so I could add a `Debug.Assert` (it was already being pulled in by other dependencies). While I was at it, I removed the dependency on `System.Diagnostics.Contracts` because it was only being used in one place and code contracts are not being maintained in .NET Core. I also made a few fields readonly, along with fixing the naming/capitalization of a couple parameters in the same class. cc: @davidsh, @stephentoub +8146 area-System.IO System.IO.Compression: Create ExtractToDirectory overload that accepts 'overwrite' boolean "Currently `ExtractToDirectory` is only useful if the target directory is virginal (eg clean or contains files which are not in the zip being extracted). If you're performing an extraction over an existing directory however, then the functionality is extremely limited because you will encounter the following example exception: > Exception calling ""ExtractToDirectory"" with ""2"" argument(s): ""The file 'D:\foo\bar.txt' already exists."" I would like to ask the developers to consider writing a new overload for the `ExtractToDirectory` method that includes an 'overwrite existing files' parameter. Many thanks. " +8150 area-System.Net Fix HttpRequestMessage.Version tests The current tests validating HTTP request message version were depending on a server behavior that is not guaranteed. In particular, HTTP RFC 7230 states that servers are NOT required to respond back with the same minor version if they support a higher minor version. In fact, the RFC states that servers SHOULD send back the highest minor version they support. So, testing the response version to see if the client sent a particular request version only works for some servers. In particular the 'Http2Servers' used in these tests seemed to echo the minor version of the request. However, depending on network configuration, intermediate proxies can change the HTTP version that ends up getting sent to the destination server. And as a result, we can have unpredictable behavior in these tests. To fix this, the tests were switched to use a loopback server that has deterministic behavior. +8153 area-System.Net Disable hanging OSX NetworkInformation test Based on my very basic investigation, it looks like the thread running CFRunLoopRun is not being terminated properly, which should happen after the only listener unsubscribes on the third line of the test case. I'll have to do more in-depth investigation with a local machine. +8154 area-System.IO System.IO.Tests.CreatedTests.FileSystemWatcher_Created_Negative is failing on OSX This has been failing periodically in some runs that I have looked at. For example: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/463/consoleFull http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/457/testReport/junit/System.IO.Tests/CreatedTests/FileSystemWatcher_Created_Negative/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/455/testReport/junit/System.IO.Tests/CreatedTests/FileSystemWatcher_Created_Negative/ +8158 area-System.Security Port S.S.C.ECDiffieHellman +8162 area-System.Console Console.Readline throws null reference exception following is the stack trace System.NullReferenceException: Object reference not set to an instance of an object. at System.ConsolePal.TryGetSpecialConsoleKey(Char[] givenChars, Int32 startIndex, Int32 endIndex, ConsoleKeyInfo& key, Int32& keyLength) at System.IO.StdInStreamReader.MapBufferToConsoleKey(ConsoleKey& key, Char& ch, Boolean& isShift, Boolean& isAlt, Boolean& isCtrl) at System.IO.StdInStreamReader.ReadKey(Boolean& previouslyProcessed) at System.IO.StdInStreamReader.ReadLine(Boolean consumeKeys) at System.IO.SyncTextReader.ReadLine() at System.Console.ReadLine() My scenario is following My command takes inputs from user interactively. When I give inputs interactively it works fine. But when I used expect,send to give inputs remotely, I got a null ref exception. from the diag logs of expect, I can see that send sends the input properly. Yet I got this exception. Can someone throw light what can be wrong? +8163 area-System.Net Avoid string allocations in Cookie.GetHashCode Previously, `Cookie.GetHashCode` implicitly allocated a new string (from `string.Concat`) every time it was called, in addition to a `params object[]` array and boxing the version. This PR changes its override of `GetHashCode` to match the one used by `Tuple` ([here](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Tuple.cs#L57)), and adds tests for the change. (Note that this could be considered a breaking change.) This leads to an about 8x speedup in the method. cc @stephentoub @davidsh +8165 area-System.Net HttpWebRequest/HttpClient with self-signed client certificate Is there a way to do a HttpWebRequest/HttpClient request with a self signed client certificate that is _not_ trusted by the OS (i.e. not stored as trusted root)? +8171 area-System.Net Cookies should use the Value property as opposed to field in constructor "This behavior seems somewhat unintuitive: ``` cs public static void Main() { var cookie = new Cookie(""name"", null); Console.WriteLine(cookie.Value == null); // -> True cookie.Value = null; Console.WriteLine(cookie.Value.Length == 0); // -> True } ``` The fix would be to change [this](https://github.com/dotnet/corefx/blob/master/src/System.Net.Primitives/src/System/Net/Cookie.cs#L106) line of `Cookie` to use the value property instead of field to set the value, since the property defaults to `string.Empty` if the parameter is null. cc @davidsh " +8173 area-System.IO Simpler way to specify leaveOpen in StreamWriter constructor Currently, the `StreamWriter` constructor has the following overloads: ``` c# public StreamWriter(Stream stream) public StreamWriter(Stream stream, Encoding encoding) public StreamWriter(Stream stream, Encoding encoding, int bufferSize) public StreamWriter(Stream stream, Encoding encoding, int bufferSize, bool leaveOpen) ``` I believe a relatively common need is to set `leaveOpen` to `true`, while keeping both `encoding` and `bufferSize` at their default values. But the process of doing that goes something like this: - Figure out there is no way to specify just `leaveOpen`. - From the documentation of `StreamWriter(Stream stream)`, figure out that the default encoding is UTF-8. (Though it doesn't mention it's actually UTF-8 _without BOM_.) - Either make a guess about what a good buffer size is, or look at the source code of `StreamWriter`. - Finally write `new StreamWriter(stream, Encoding.UTF8, 1024, true)`. I don't think that's acceptable, so I'm proposing to make `new StreamWriter(stream, leaveOpen: true)` work. I can see few options on how to do this: 1. Assuming optional arguments are okay (they probably aren't, see dotnet/corefx#470), make use of them by changing the full overload to: ``` c# public StreamWriter( Stream stream, Encoding encoding = null, int bufferSize = -1, bool leaveOpen = false) ``` This would require relaxing `encoding` and `bufferSize` to accept `null` and `-1`, respectively, but I think that's okay. I think this is the most convenient option, since it allows one to easily specify any combination of options. 2. Add a new constructor overload: ``` c# public StreamWriter(Stream stream, bool leaveOpen) ``` Adding some other overloads might make sense too. 3. Don't add anything, just relax `encoding` and `bufferSize` as in option 1. I think this is the most conservative option, but also least convenient, since it would require writing `new StreamWriter(stream, null, -1, true)`. +8175 area-System.Net Clean up ResponseStreamTest Used the MD5 hash verification when verifying correct response body dowload. Fixes #7885. +8176 area-System.Net Default credentials behavior different from .NET Framework "The following code doesn't work on .NET Core (CoreFx) but does work in .NET Framework: ``` c# string url = """"; var handler = new HttpClientHandler(); handler.UseDefaultCredentials = false; //this works on regular .net, does not work on .Net Core handler.Credentials = new CredentialWrapper { InnerCredentials = CredentialCache.DefaultCredentials }; var client = new HttpClient(handler); HttpResponseMessage response = await client.GetAsync(url); Assert.Equal(HttpStatusCode.OK, response.StatusCode); class CredentialWrapper : ICredentials { public ICredentials InnerCredentials { get; set; } public NetworkCredential GetCredential( Uri uri, String authType) { if (InnerCredentials != null) { return InnerCredentials.GetCredential(uri, authType); } else { return null; } } } ``` " +8177 area-System.Net Avoid race condition between queued HttpContent.CopyToAsync and request completion HttpContentAsyncStream is used by CurlHandler as the request content stream, with writes to it done via HttpContent.CopyToAsync. We expect the writes to all be asynchronous via WriteAsync. However, it's possible for an override of CopyToAsync to use Write, and if it does, and if we just delegated from Write(...) to WriteAsync(...).GetAwaiter().GetResult(), we would likely deadlock, as the CopyToAsync call is invoked from the single thread responsible for processing libcurl interactions, including supplying the reader that would unblock the writer. To handle this, we have two options: schedule the CopyToAsync to be invoked asynchronously just in case it does a synchronous write, or implement the write to buffer the data. The former is what was done in https://github.com/dotnet/corefx/pull/4095. It adds some cost to the expected / common case, but more importantly and worse it can also lead to concurrency problems and spurious exceptions, as for example if the request is faulted/canceled between the time that a task to invoke CopyToAsync is scheduled and the time that it actually executes, we could be invoking CopyToAsync on a disposed HttpContent; worse, we could end up invoking CopyToAsync while it's being disposed, which could lead to arbitrary state corruption, and which means we can't guard against this with checks to see if the task has already completed. The only way to fully guard against that is via a lock, but such a lock would itself lead to deadlocks, as the reader that would unblock the writer would have to take the same lock. In comparison, buffering has the downside of taking up more and arbitrary amounts of memory to store all of the input. But, we expect synchronous Writes to be rare, and code shouldn't be doing it anyway; if it does, the fix should really be to switch to asynchronous writes. This commit changes from the first approach to the second, using buffering in synchronous Write calls in order to ensure correctness and to optimize for the expected case. @mconnew, @roncain, this all originally started from https://github.com/dotnet/corefx/issues/4077. Is WCF still doing such synchronous writes as part of HttpContent.CopyToAsync? If so, is this change going to cause a problem for that? We're between a rock and a hard place given the design of HttpClient. Fixes https://github.com/dotnet/corefx/issues/8113 (I think; I couldn't actually reproduce it in the successful case mentioned) cc: @davidsh, @ericeil, @kapilash +8180 area-System.Globalization System.Globalization.Tests failed on Ubuntu16.04 "``` 12:19:16 System.Globalization.Tests.DateTimeFormatInfoGetDayName.GetDayName(format: DateTimeFormatInfo { AbbreviatedDayNames = [""Dim."", ""Lun."", ""Mar."", ""Mer."", ""Jeu."", ...], AbbreviatedMonthGenitiveNames = [""janv."", ""févr."", ""mars"", ""avr."", ""mai"", ...], AbbreviatedMonthNames = [""Janv."", ""Févr."", ""Mars"", ""Avr."", ""Mai"", ...], AMDesignator = ""AM"", Calendar = GregorianCalendar { CalendarType = Localized, Eras = [...], IsReadOnly = False, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, MinSupportedDateTime = 0001-01-01T00:00:00.0000000, ... }, ... }, expected: [""dimanche"", ""lundi"", ""mardi"", ""mercredi"", ""jeudi"", ...]) [FAIL] 12:19:16 Assert.Equal() Failure 12:19:16 ↓ (pos 0) 12:19:16 Expected: dimanche 12:19:16 Actual: Dimanche 12:19:16 ↑ (pos 0) 12:19:16 Stack Trace: 12:19:16 at System.Globalization.Tests.DateTimeFormatInfoGetDayName.GetDayName(DateTimeFormatInfo format, String[] expected) 12:19:16 System.Globalization.Tests.DateTimeFormatInfoGetMonthName.GetMonthName(format: DateTimeFormatInfo { AbbreviatedDayNames = [""Dim."", ""Lun."", ""Mar."", ""Mer."", ""Jeu."", ...], AbbreviatedMonthGenitiveNames = [""janv."", ""févr."", ""mars"", ""avr."", ""mai"", ...], AbbreviatedMonthNames = [""Janv."", ""Févr."", ""Mars"", ""Avr."", ""Mai"", ...], AMDesignator = ""AM"", Calendar = GregorianCalendar { CalendarType = Localized, Eras = [...], IsReadOnly = False, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, MinSupportedDateTime = 0001-01-01T00:00:00.0000000, ... }, ... }, expected: ["""", ""janvier"", ""février"", ""mars"", ""avril"", ...]) [FAIL] 12:19:16 Assert.Equal() Failure 12:19:16 ↓ (pos 0) 12:19:16 Expected: janvier 12:19:16 Actual: Janvier 12:19:16 ↑ (pos 0) 12:19:16 Stack Trace: 12:19:16 at System.Globalization.Tests.DateTimeFormatInfoGetMonthName.GetMonthName(DateTimeFormatInfo format, String[] expected) 12:19:16 System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.NumberGroupSizes_Get(format: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = ""."", CurrencyGroupSeparator = "","", CurrencyGroupSizes = [3, 2], CurrencyNegativePattern = 9, ... }, expected: [3, 2]) [FAIL] 12:19:16 Assert.Equal() Failure 12:19:16 Expected: Int32[] [3, 2] 12:19:16 Actual: Int32[] [3] 12:19:16 Stack Trace: 12:19:16 at System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.NumberGroupSizes_Get(NumberFormatInfo format, Int32[] expected) 12:19:17 Finished: System.IO.Compression.ZipFile.Tests 12:19:17 12:19:17 === TEST EXECUTION SUMMARY === 12:19:17 System.IO.Compression.ZipFile.Tests Total: 24, Errors: 0, Failed: 0, Skipped: 0, Time: 2.360s 12:19:17 Finished: System.Globalization.Calendars.Tests 12:19:17 12:19:17 === TEST EXECUTION SUMMARY === 12:19:17 System.Globalization.Calendars.Tests Total: 2086, Errors: 0, Failed: 0, Skipped: 0, Time: 2.121s 12:19:17 System.Globalization.Tests.DateTimeFormatInfoGetAbbreviatedDayName.GetAbbreviatedDayName(info: DateTimeFormatInfo { AbbreviatedDayNames = [""Dim."", ""Lun."", ""Mar."", ""Mer."", ""Jeu."", ...], AbbreviatedMonthGenitiveNames = [""janv."", ""févr."", ""mars"", ""avr."", ""mai"", ...], AbbreviatedMonthNames = [""Janv."", ""Févr."", ""Mars"", ""Avr."", ""Mai"", ...], AMDesignator = ""AM"", Calendar = GregorianCalendar { CalendarType = Localized, Eras = [...], IsReadOnly = False, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, MinSupportedDateTime = 0001-01-01T00:00:00.0000000, ... }, ... }, expected: [""dim."", ""lun."", ""mar."", ""mer."", ""jeu."", ...]) [FAIL] 12:19:17 Assert.Equal() Failure 12:19:17 ↓ (pos 0) 12:19:17 Expected: dim. 12:19:17 Actual: Dim. 12:19:17 ↑ (pos 0) 12:19:17 Stack Trace: 12:19:17 at System.Globalization.Tests.DateTimeFormatInfoGetAbbreviatedDayName.GetAbbreviatedDayName(DateTimeFormatInfo info, String[] expected) 12:19:17 System.Globalization.Tests.DateTimeFormatInfoGetAbbreviatedMonthName.GetAbbreviatedMonthName(info: DateTimeFormatInfo { AbbreviatedDayNames = [""Dim."", ""Lun."", ""Mar."", ""Mer."", ""Jeu."", ...], AbbreviatedMonthGenitiveNames = [""janv."", ""févr."", ""mars"", ""avr."", ""mai"", ...], AbbreviatedMonthNames = [""Janv."", ""Févr."", ""Mars"", ""Avr."", ""Mai"", ...], AMDesignator = ""AM"", Calendar = GregorianCalendar { CalendarType = Localized, Eras = [...], IsReadOnly = False, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, MinSupportedDateTime = 0001-01-01T00:00:00.0000000, ... }, ... }, expected: ["""", ""janv."", ""févr."", ""mars"", ""avr."", ...]) [FAIL] 12:19:17 Assert.Equal() Failure 12:19:17 ↓ (pos 0) 12:19:17 Expected: janv. 12:19:17 Actual: Janv. 12:19:17 ↑ (pos 0) 12:19:17 Stack Trace: 12:19:17 at System.Globalization.Tests.DateTimeFormatInfoGetAbbreviatedMonthName.GetAbbreviatedMonthName(DateTimeFormatInfo info, String[] expected) 12:19:19 Discovered: System.Dynamic.Runtime.Tests 12:19:19 Starting: System.Dynamic.Runtime.Tests 12:19:20 Finished: System.Globalization.Tests ``` " +8181 area-System.Net System.Net.Http.Functional.Tests.HttpClientHandler test failed on Ubuntu16.04 ``` 12:38:02 System.Net.Http.Functional.Tests.HttpClientHandler_Timeouts_Test.ConnectTimeout_TimesOut_Throws [FAIL] 12:38:02 Assert.InRange() Failure 12:38:02 Range: (1 - 10000) 12:38:02 Actual: 100003 12:38:02 Stack Trace: 12:38:02 at System.Net.Http.Functional.Tests.HttpClientHandler_Timeouts_Test.<>c.<b__4_0>d.MoveNext() 12:38:02 --- End of stack trace from previous location where exception was thrown --- 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 12:38:02 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() 12:38:02 at System.Net.Http.Functional.Tests.LoopbackServer.<>c__DisplayClass0_0.<b__0>d.MoveNext() 12:38:02 --- End of stack trace from previous location where exception was thrown --- 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 12:38:02 at System.Net.Http.Functional.Tests.LoopbackServer.<>c__DisplayClass2_0.b__0(Task t) 12:38:02 at System.Threading.Tasks.Task.Execute() 12:38:02 --- End of stack trace from previous location where exception was thrown --- 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 12:38:02 at System.Net.Http.Functional.Tests.HttpClientHandler_Timeouts_Test.d__4.MoveNext() 12:38:02 --- End of stack trace from previous location where exception was thrown --- 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 12:38:02 --- End of stack trace from previous location where exception was thrown --- 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 12:38:02 --- End of stack trace from previous location where exception was thrown --- 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 12:38:02 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 12:38:02 Finished: System.Net.Http.Functional.Tests ``` +8182 area-System.Diagnostics System.Diagnostics.Tracing package version 4.1.0 contains version 4.0.20 reference assembly "I am trying to reference System.Diagnostics.Tracing version 4.1.0 from System.Net.Sockets, so I can use the new EventCounter type. I changed the project.json in src\System.Net.Sockets\src\win to include: ``` ""System.Diagnostics.Tracing"": ""4.1.0-rc3-24026-00"", ``` However, the build complains that EventCounter doesn't exist in any referenced assembly. If I open up the reference assembly: ``` packages/System.Diagnostics.Tracing\4.1.0-rc3-24026-00\ref\netstandard1.3\System.Diagnostics.Tracing.dll ``` ...in ILSpy, I see that the assembly version is *4.0.20.00,"" and that indeed it does not contain the EventCounter type. Why does the 4.1.0 package contain the 4.0.20 reference assembly? @ericstj, @vancem " +8183 area-System.Console Console.Write() doesn't show output until a newline "On RHEL 7, `Console.Write()`'s output does not get displayed until a newline is used (or the program exits). If you run the following application, you don't see anything as the output until 10 seconds have passed. Then all of ""HelloWorld!"" appears at once. ``` public static void Main(string[] args) { Console.Write(""Hello World""); Console.Out.Flush(); Task.Delay(10000).Wait(); Console.WriteLine(""!""); } ``` Console applications that do input/output may use a style like the following: ``` public static void Main(string[] args) { Console.Write(""Name: ""); var name = Console.ReadLine(); Console.WriteLine(""Your name is '"" + name + ""'.""); } ``` This doesn't work for me. You get no output at all at first. If you type in something (say ""Foo"") and hit ENTER, then you see all of the output at once: ``` Name: Foo Your name is 'Foo'. ``` If you don't hit enter, then it seems like the application has hung. A `Console.Out.Flush()` doesn't fix this, as in the following: ``` public static void Main(string[] args) { Console.Write(""Name: ""); Console.Out.Flush(); var name = Console.ReadLine(); Console.WriteLine(""Your name is '"" + name + ""'.""); } ``` I ran all the test cases while ssh'ed into the RHEL 7 VM. ``` $ dotnet --version 1.0.0-rc2-002538 ``` " +8186 area-System.Security Add support for opening a PFX with an ephemeral key Currently opening a PFX on Windows creates a temporary keyfile on disk which is deleted if the cert is disposed/finalized without being added to a cert store. While it might not be feasible to change the default to ephemeral, we should add the option to allow better guarantees against key-leak. (PKCS12_NO_PERSIST_KEY, Vista+) ## Rationale Currently .NET supports loading a PFX in two different key-persistence modes. The default mode, which I call perphemeral (a portmanteau of persistent and ephemeral), is to let the key file be created on disk, and then delete that file when the certificate is disposed. Alternatively, the PFX can be loaded with X509KeyStorageFlags.PersistKeySet, and then the key files will not be deleted upon certificate disposal. Both current modes have some pros and some cons: ### Persisted - Pro: You can add it to a persisted X509Store meaningfully. - Pro: new X509Certificate2(cert.Handle) has no surprises - Con: If you open a PFX persisted to add it to an X509Store, and detect the duplicate, you still have emitted the key. (Cleanup is possible, but hard to do correctly) - Con: If you meant to use the key ephemerally this leaks a file on disk every time you use it. ### Perphemeral (default) - Pro: If your application terminates normally, no net key material was leaked to disk. - Con: If you add a perphemeral cert to an X509Store the key file is still deleted, so while it is temporarily a public/private pair in the store it finishes as a public-only import. - Con: new X509Certificate2(cert.Handle) makes the cleanup hard to assess from a user perspective (it's stable, but hard to describe). - Con: If your application does not terminate normally (or it was held outside of the scope of finalization), the keyfile leaks as if you had opened it with PersistKeySet. - Con: Under parallel loads of the same PFX there's a if-available-use race condition (out of our reach) where two different objects were given the same backing keyfile; disposing one copy eliminates the keyfile of the other. When seeking ephemeral behavior (load from a PFX, do some signing/decrypting, dispose) it seems significantly better to just load it ephemerally. ### Ephemeral (new proposal) - Pro: No key material is ever written to disk (modulo the pagefile) so it can't create a persisted file under any circumstance. - Pro: Immune to parallel load race conditions - Pro: new X509Certificate2(cert.Handle) behaves just fine. - Con: Adding the cert to an X509Store may behave as adding the public key only. - Con: Existing interop code expecting to load the key name structure will fail. ## Proposed API: ``` diff public enum X509KeyStorageFlags { DefaultKeySet = 0, + EphemeralKeys = 32, Exportable = 4, MachineKeySet = 2, PersistKeySet = 16, UserKeySet = 1, UserProtected = 8, } ``` Opening an X509Certificate2 (or Importing into a collection) with both PersistKeySet and EphemeralKeySet defined will be an error. On Windows EphemeralKeySet will also force loading into CNG. On Unix this flag has no effect. Since the key handle is now actually owned by the native object, we need to track that dependency like an interior pointer. To that end, new public members have to be added into the CNG contract: ``` diff public abstract partial class SafeNCryptHandle : System.Runtime.InteropServices.SafeHandle { protected SafeNCryptHandle() : base (default(System.IntPtr), default(bool)) { } + protected SafeNCryptHandle(System.IntPtr handle, System.Runtime.InteropServices.SafeHandle parentHandle) : base (default(System.IntPtr), default(bool)) { } public override bool IsInvalid { get { return default(bool); } } protected override bool ReleaseHandle() { return default(bool); } protected abstract bool ReleaseNativeHandle(); } public sealed partial class SafeNCryptKeyHandle : Microsoft.Win32.SafeHandles.SafeNCryptHandle { public SafeNCryptKeyHandle() { } + public SafeNCryptKeyHandle(System.IntPtr handle, System.Runtime.InteropServices.SafeHandle parentHandle) : base (default(System.IntPtr), default(System.Runtime.InteropServices.SafeHandle)) { } protected override bool ReleaseNativeHandle() { return default(bool); } } ``` The parentHandle constructors of these SafeHandles will require that parentHandle be - Not null (ArgumentNullException) - Not IsClosed (ArgumentException) - Not IsInvalid (ArgumentException) otherwise, it will AddRef in the constructor and Release in ReleaseHandle. +8187 area-System.Security Add support for getting a private key handle with no UI prompting "Equivalently ""pass CRYPT_SILENT when opening the key handle"". While some apps may want to use that key and get the PIN/unprotect prompt, other contexts are headless and would rather opening the key just fail. We should add an overload to Get[Algorithm]PrivateKey which lets the caller suppress UI. " +8188 area-System.Data Are Query Notifications on the roadmap? It seems the System.Data.SqlClient does not include any of the query notification (SqlNotification or SqlDependency) classes. is this on the roadmap to be added? +8190 area-System.Linq Expression.Default() accepts null type. Attempting to use the expression (particularly, in compiling) will then result in NRE when that null type is used. Is there a back-compat issue in blocking this? (Anything one could reasonably have been using such an expression for?) Since fixing would involve an arg check, and fixing how #8081 applies to the same method, may be worth fixing together. +8194 area-System.Net Correctly annotate a stress test with HttpStressEnabled It's failed a few times in outerloop; we only want it enabled when we're doing a stress test and nothing else is running, as the time it takes can fluctuate if lots of other things are running. +8195 area-System.Net BeginConnectV6IPEndPointToV4Host_Fails failed in CI on Ubuntu http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/580/consoleText ``` System.Net.Sockets.Tests.DualMode.BeginConnectV6IPEndPointToV4Host_Fails [FAIL] Assert.Throws() Failure Expected: typeof(System.Net.Sockets.SocketException) Actual: (No exception was thrown) Stack Trace: at System.Net.Sockets.Tests.DualMode.BeginConnectV6IPEndPointToV4Host_Fails() ``` +8196 area-System.Net Move Windows-specific Sockets initialization into SocketPal Fixes https://github.com/dotnet/corefx/issues/7849 cc: @ericeil, @cipop +8201 area-System.ComponentModel Reference Source repo: Resource string files missing The resource file [/src/System.ComponentModel.Annotations/src/Resources/Strings.resx](https://github.com/dotnet/corefx/blob/7965a9020fef095e2d2e3f5a6c543e455ce97c11/src/System.ComponentModel.Annotations/src/Resources/Strings.resx) is not part of [Microsoft/referencesource](https://github.com/Microsoft/referencesource) which [mono is using](https://github.com/mono/referencesource/tree/mono/System.ComponentModel.DataAnnotations/Resources). As a result validation results on mono have the resource names being returned instead of the actual validation message. Running the same code on Windows returns proper validation messages. +8203 area-System.Net Add DefaultCredentials scenario tests These tests require the client and server to be on a Windows Active Directory domain. These tests are Windows specific. Currently this cannot be done in the CI system. So, these tests are only enabled when an environment variable is set which points to the test server. There is a separate todo item #4989 to provide more automated scripts for setting up the test server. For now, there is a readme file with some details. These tests will help support fixes for #8176 and related bugs. +8206 area-System.Net Cookie: Set value to an empty string when null is passed in Addresses #8171 cc @davidsh @hughbe +8208 area-System.Net Fix System.Net.Primitives tests Clean up System.Net.Primitives unit and functional tests. Moved some functional tests to the unit tests projects since they are testing non-public methods. Change the `public` attribute on some of the CookieContainer` methods to match the public ref contract. This wasn't done properly when this code was first ported from .NET Framework to .NET Core. Some of the public methods are only public in Desktop and not Core. With these changes, the System.Net.Primitives tests can now build and run with `/p:BuildTestsAgainstPackages=true`. Fixes #7906. +8213 area-System.Reflection MethodBodyEncoderTests.FatBody test failed on OSX http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/604/consoleText ``` System.Reflection.Metadata.Ecma335.Tests.MethodBodyEncoderTests.FatBody [FAIL] Expected: 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x2B, 0xFE Actual: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xBD, 0xD2, 0x0B, 0x01, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x82, 0x71, 0xF1, 0x7F, 0x00, 0x00, 0xDB, 0x10, 0x28, 0x0C Differences: ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0xF8, ++> 0xBD, ++> 0xD2, ++> 0x0B, 0x01, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0xC0, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x05, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0x00, ++> 0xD8, ++> 0x82, ++> 0x71, ++> 0xF1, ++> 0x7F, ++> 0x00, ++> 0x00, ++> 0xDB, ++> 0x10, ++> 0x28, ++> 0x0C, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x01, --> 0x2B, --> 0xFE Expected: True Actual: False Stack Trace: at System.Reflection.Metadata.Tests.AssertEx.Equal[T](IEnumerable`1 expected, IEnumerable`1 actual, IEqualityComparer`1 comparer, String message, String itemSeparator, Func`2 itemInspector) at System.Reflection.Metadata.Ecma335.Tests.MethodBodyEncoderTests.FatBody() ``` +8214 area-Infrastructure Some csproj files still use DNXCore,Version=5.0 as the moniker The document for .NET Platform Standard says that `dnxcore` is deprecated, however it's still being used in a couple of `.csproj` files: https://github.com/dotnet/corefx/search?l=xml&q=DNXCore&utf8=%E2%9C%93 Not sure if this is intentional or not. cc @ericstj +8215 area-System.Net Remove TODO in HttpWebRequest RequestStream Changed the TODO to an Assert(). TryGetBuffer() should always succeed since the default MemoryStream() constructor is used and thus the buffer is always visible. Fixes #7890. +8219 area-System.Net Enable Channel Binding in Negotiate Stream for Unix. This is to track the Channel Binding support for NegotiateStream . +8220 area-System.Reflection Attribute.GetCustomAttributes does not resepct 'inherit' flag for non-RuntimeTypes. "The method `GetCustomAttributes` on `PropertyInfo` and `EventInfo` ignores the `inherit` parameter, which is mentioned in the documentation. Instead one is supposed to use the `Attribute.GetCustomAttributes` method to get attributes in the inheritance chain. The problem is that this method only walks the inheritance chain if the type of the `PropertyInfo` (or rather the `MethodInfo` returned from `GetAccessors()` in the case of a property) is an instance of `RuntimePropertyInfo` (or `RuntimeMethodInfo`). This means that for any custom implementation of a `MemberInfo`, such as those provided from `CustomReflectionContext`, there is no way to get the attributes in the inheritance chain in a transparent way, regardless of the implementation of the `MemberInfo` in question. Suggest that the implementation of `Attribute.GetCustomAttributes()` is changed so that it works regardless of the underlying implementation of the `MemberInfo` provided. A sample program illustrating the issue: ```c# [AttributeUsage(AttributeTargets.All, Inherited = true)] public sealed class TestAttribute : Attribute { } class A { [Test] public virtual object MyProp { get; set; } } class B : A { public override object MyProp { get; set; } } class MyReflectionContext : CustomReflectionContext { } class Program { static void Main(string[] args) { PropertyInfo propertyInfo = typeof(B).GetProperty(""MyProp""); var attrs1 = propertyInfo.GetCustomAttributes(true); var attrs2 = Attribute.GetCustomAttributes(propertyInfo, true); MyReflectionContext ctx = new MyReflectionContext(); propertyInfo = ctx.MapType(typeof(B).GetTypeInfo()).GetProperty(""MyProp""); var attrs3 = propertyInfo.GetCustomAttributes(true); var attrs4 = Attribute.GetCustomAttributes(propertyInfo, true); Console.WriteLine(attrs1.Length); // Returns 0 - As expected Console.WriteLine(attrs2.Length); // Returns 1 - As expected Console.WriteLine(attrs3.Length); // Returns 0 - As epected Console.WriteLine(attrs4.Length); // Returns 0 - We want 1 here! } } ``` " +8221 area-System.Net Implement server-side of NegotiateStream on Unix We currently only support the client side. +8223 area-System.Diagnostics Can we make EventCounter work in NetStandard 1.3? Currently EventCounter is only available in NetStandard 1.5. This makes it unavailable to many (most?) CoreFx implementation assemblies. We'd like to use EventCounter in System.Net.Sockets, but it must remain on NetStandard 1.3 (see #7833). We should consider making EventCounter available on 1.3, if possible. +8226 area-System.Runtime StringBuilder.AppendFormat additional pre-checks. Split from #1514 [AppendFormatHelper](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Text/StringBuilder.cs/#L1285) It maybe beneficial to do extra checks before actually generating the output. [Approximation Routine](https://gist.github.com/AdamSpeight2008/ef6834483148afcac59234eef36ef36f) _Note: this is rough coding._ This gets us - the number of argholes (`{0}`) - If this is zero, we could just return the original format string. - the approximate length of the output. - we can pre-size the output, reducing the number of resizes and copying - Is the format string structurally sound. (Excluding `IFormatable` errors) - If it is likely to throw an error. Don't generate the output. +8228 area-Infrastructure Update CI to Debian 8.4 1. We should update CI infra to Debian 8.4 (https://www.debian.org/News/2016/20160402) 2. Also please review the RID graph entries for Debian 8.2+ (8.3, 8.4) so there are no issues for users on newer Debian 8 patch levels +8230 area-Meta CoreRun of Xunit.Console.Netcore causes terminal to stop responding to certain inputs on OSX "When running individual CoreFX test cases on OSX (using vanilla corefx fetched this morning), every time I run Xunit.Console.Netcore.exe using corerun my terminal is never the same after. Observations: - You have to actually run tests to get the repro (just running ./corerun xunit.console.netcore.exe doesn't repro) - Running ""reset"" solves this temporarily. Some keys this takes away (not exhaustive list) - Period - Num keys - dash and + (but not _ and =) " +8231 area-System.IO FileSystemWatcher fixes and test changes Fixes to FileSystemWatcher tests to increase their reliability. - Filtering on the OSX FileSystemWatcher was letting through events that should have been filtered out due to the passed NotifyFilters. The first commit fixes this. - Reworks the FSW tests to be 100% passing. - Adds path validation to most tests. - Adds a Retry mechanism to handle expected intermittent failures due to untrustworthy underlying API calls. The tests pass without it but it's a good fallback in case the CI gets bogged down and our tests start failing due to expired wait times. - Adds more test cases to NotifyFilter and splits existing tests into separate dir/file tests to cover either behavior. resolves #1165 resolves #1657 resolves #2011 resolves #2684 resolves #3215 resolves #3630 resolves #4916 resolves #5306 resolves #6226 resolves #6241 resolves #6732 resolves #7002 resolves #8023 resolves #8024 resolves #8154 +8234 area-Meta Ubuntu support needs to be better "I'm sure this seems like a nuisance ticket, but it's hard to gauge the level of interest in solving concerns I've seen brought up by others over the .NET experience on Ubuntu. There are a few top-level issues at the moment, immediately apparent by the current install instructions: ![image](https://cloud.githubusercontent.com/assets/115199/14971129/198149e8-1095-11e6-913f-3d58e3e6011a.png) 1. The current instructions to install .NET on Ubuntu are second-rate. The big issue here is that you are requiring additional steps when they could be avoided. If you examine Chrome and other debian packages, they are able to provide a PPA configuration without making you drop to the command line. You can consider this on par with an MSI installer: ![image](https://cloud.githubusercontent.com/assets/115199/14971157/597c511e-1095-11e6-819f-f40a604cf269.png) This entry, as viewed in the ""Software Sources"" app in Ubuntu did not require me to do anything except add the `.deb` found [here](https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb). It's also worth noting that using a PPA also avoids the need to make people do things with keys. 2. Only supporting 14.04. We're coming up to a month with 16.04. If the current build system cannot even support getting 14.10, 15.04 and 15.10 over the last 2 years, something has been seriously overlooked. At the very least, this is a problem you shouldn't be carrying into a 1.0 release. 3. ""Feeds"". Really, you can just package all the versions you want in a single feed and have a metapackage that points to the most current version. As you can see, there are a few things that can be done to reduce the number of touchpoints for an Ubuntu developer as well as increasing the likelihood that they can run this wonderful new platform with confidence. Having a first-rate install experience on Windows is great, but always allowing Linux to lag risks sending a message of what to expect in the future. " +8235 area-System.Net HttpClient does not support IPv6 with scope ID on Mac or Linux **Repro Steps** 1. Start an HTTP server on an IPv6 address with a scope ID. An example is the link-local address provided by running `ifconfig`. 2. Run `curl` to verify the server is working. 2a. On Mac, I needed to wrap the IPv6 address with brackets, and escape the `%` as `%25`. For example: `curl http://[fe80::blah%25en0]:1234/`. 2b. On Linux, I needed to _not_ wrap with brackets, and _not_ escape the `%`. For example: `curl http://fe80::blah%eth0:1234/`. 3. Call `new HttpClient().GetAsync()` using the same URL you passed to curl. **Expected** HttpClient works the same as curl itself. **Actual** HttpClient fails with an error like `System.Net.Http.CurlException: Couldn't connect to server` or `System.UriFormatException: Invalid URI`. **Notes** I tested many combinations of with/without brackets and with/without `%` encoded as `%25`, but none of them worked. HttpClient on Windows does work correctly with IPv6 scope ID (tested with brackets and without encoding `%`). Documentation for IPv6 scope ID support in Windows: https://msdn.microsoft.com/en-us/library/windows/desktop/aa385325(v=vs.85).aspx **Curl Versions** Mac ``` curl 7.37.1 (x86_64-apple-darwin14.0) libcurl/7.37.1 SecureTransport zlib/1.2.5 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp Features: AsynchDNS GSS-Negotiate IPv6 Largefile NTLM NTLM_WB SSL libz ``` Linux ``` curl 7.35.0 (x86_64-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smtp smtps telnet tftp Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP ``` +8236 area-System.Net Better perf/readability improvements for UrlEncode and UrlEncodeToBytes Changes: - `UrlEncode` - Instead of maintaining two separate counters for spaces and safe chars, combine them into one variable, `unexpandedCount`. Keep a `foundSpaces` bool around so we can short-circuit. - Removed the Hungarian notation-style prefix. - Assigned the result of `GetByteCount` directly into a variable, so we don't have to subtract from it and then add to it `unexpandedCount` again while getting the length of the array. - `UrlEncodeToBytes` - Removed Hungarian notation, unnecessary counter variable again. - Removed unnecessary branch in the case where there's nothing to encode; `Buffer.BlockCopy` works just fine, and is faster than `Array.Clone`. - [Benchmark to back this up](https://gist.github.com/jamesqo/25a4d0878fc24c2a7a6ae47a670628b5) - [Results](https://gist.github.com/jamesqo/ca74b20d0992b46c1772d35fc7a22f17) cc @hughbe @davidsh @stephentoub +8237 area-System.Net Incorporating SSH client lib in corefx? Given .Net is cross platform now, and in the *nix world SSH (server and client) is used everywhere, should we add basic SSH functionalities into corefx? For managed implementation we can reference: https://github.com/sshnet/SSH.NET For native maybe we can borrow something from PowerShell team? https://github.com/PowerShell/Win32-OpenSSH Thoughts? +8238 area-Serialization `System.Xml.XmlSerializer` cannot serialize `System.Nullable` as attribute ``` System.InvalidOperationException occurred HResult=-2146233079 Message=Cannot serialize member 'ResX' of type System.Nullable`1[System.Double]. XmlAttribute/XmlText cannot be used to encode complex types. Source=System.Xml.XmlSerializer StackTrace: at System.Xml.Serialization.XmlReflectionImporter.ImportAccessorMapping(MemberMapping accessor, FieldModel model, XmlAttributes a, String ns, Type choiceIdentifierType, Boolean rpc, Boolean openModel, RecursionLimiter limiter) InnerException: ``` +8242 area-System.Globalization Inconsistencies in IdnMapping on Unix and Windows Originally, some of these were found in #7921 and I found more inconsistencies in #8224 so its worth creating a new issue and closing the old one that diagnosed the problems as with Uri.GetComponents. ## GetAscii - uppercase ASCII chars (e.g. `A, B, C`) - Windows behaviour: returns the uppercase chars - Unix behaviour: returns the lowercase chars ## GetAscii - single dash (e.g. `-`) - Windows behaviour: returns the original string - Unix behaviour: throws an `ArgumentException` ## GetAscii - single full stop (e.g. `.`) - Windows behaviour: throws an `ArgumentException` - Mac OSX behaviour: throws an `ArgumentException` - Unix behaviour: returns the original string ## GetUnicode - invalid punycode (e.g. `xn--\u1234pck`) - Windows behaviour: returns the original string - Unix behaviour: returns `ఽూ` /cc @ellismg @tarekgh +8249 area-System.Net Ensure CurlHandler includes IPv6 scope IDs in Urls when applicable Uri.AbsoluteUri omits the scope ID if present. Switch to using GetComponents with SerializationInfoString. (I'll add a test as a follow-up; I need to figure out how to use NetworkInformation to get a link-local address with a scope ID.) Fixes #8235 cc: @davidsh, @ericeil, @mikeharder +8262 area-System.ComponentModel TypeDescriptor APIs Hi there, I was wondering what the status of the `TypeDescriptor` API is. Currently I am using `TypeDescriptor.AddAttributes()` but unfortunately this is not available on .NET Core. Is there any equivalent available or a timeline when this API will be ported? Thanks in advance. +8264 area-System.Security Remove bcrypt exceptions from Algorithms.dll once buildtools is updated Remove the bcrypt exceptions once we get a version of buildtools with dotnet/buildtools#691. +8274 area-System.Net System.Net.Http.Functional.Tests.PostScenarioTest.PostUsingChunkedEncoding_Success failed in CI Happened in a Windows Debug PR test. See: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/796/ +8280 area-Infrastructure Install cmake on Win10 images in CI We started building native libs on windows with clrcompression.dll. +8288 area-System.Console [.NET Framework] Console.CancelKeyPress fails to hook Ctrl+C on subsequent registrations "Moved from https://github.com/dotnet/coreclr/issues/892 The Console.CancelKeyPress event handler code doesn't call ControlCHooker.Hook in the follow sequence of events: ``` csharp Console.CancelKeyPress += SomeHandler; Console.CancelKeyPress -= SomeHandler; Console.CancelKeyPress += SomeHandler; // doesn't call _hooker.Hook(); ``` It looks like a fairly trivial issue in the event registration/unregistration implementation: ``` csharp public static event ConsoleCancelEventHandler CancelKeyPress { [System.Security.SecuritySafeCritical] // auto-generated add { new UIPermission(UIPermissionWindow.SafeTopLevelWindows).Demand(); lock(InternalSyncObject) { // Add this delegate to the pile. _cancelCallbacks += value; // If we haven't registered our control-C handler, do it. // NOTE: _hooker will be instantiated but unhooked on the second registration. if (_hooker == null) { _hooker = new ControlCHooker(); _hooker.Hook(); } } } [System.Security.SecuritySafeCritical] // auto-generated remove { new UIPermission(UIPermissionWindow.SafeTopLevelWindows).Demand(); lock(InternalSyncObject) { // If count was 0, call SetConsoleCtrlEvent to remove cb. _cancelCallbacks -= value; Contract.Assert(_cancelCallbacks == null || _cancelCallbacks.GetInvocationList().Length > 0, ""Teach Console::CancelKeyPress to handle a non-null but empty list of callbacks""); if (_hooker != null && _cancelCallbacks == null) _hooker.Unhook(); } } } ``` " +8291 area-Infrastructure "Win7 CoreFX build/testing failing: ""Unable to load DLL""" "I've followed the instructions at https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md on a Windows 7 machine. I'm getting the following error when running the `.\build` command: ``` ""C:\corefx\build.proj"" (default target) (1) -> ""C:\corefx\src\tests.builds"" (BuildAndTest target) (494) -> ""C:\corefx\src\System.Xml.XDocument\tests\System.Xml.XDocument.Tests.builds"" (BuildAndTest target) (750) -> ""C:\corefx\src\System.Xml.XDocument\tests\TreeManipulation\System.Xml.XDocument.TreeManipulation.Tests.csproj"" (BuildAndTest target) (769) -> C:\corefx\Tools\tests.targets(190,5): error MSB4018: The ""GetTargetMachineInfo"" task failed unexpectedly.\r [C:\corefx\src\System.Xml.XDocument\tests\TreeManipulation\System.Xml.XDocument.TreeManipulation.Tests.csproj] C:\corefx\Tools\tests.targets(190,5): error MSB4018: System.DllNotFoundException: Unable to load DLL 'api-ms-win-core-sysinfo-l1-2-0.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)\r [C:\corefx\src\System.Xml.XDocument\tests\TreeManipulation\System.Xml.XDocument.TreeManipulation.Tests.csproj] C:\corefx\Tools\tests.targets(190,5): error MSB4018: at Interop.mincore.GetNativeSystemInfo(SYSTEM_INFO& lpSystemInfo)\r [C:\corefx\src\System.Xml.XDocument\tests\TreeManipulation\System.Xml.XDocument.TreeManipulation.Tests.csproj] C:\corefx\Tools\tests.targets(190,5): error MSB4018: at System.Runtime.InteropServices.RuntimeInformation.get_OSArchitecture()\r [C:\corefx\src\System.Xml.XDocument\tests\TreeManipulation\System.Xml.XDocument.TreeManipulation.Tests.csproj] C:\corefx\Tools\tests.targets(190,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.GetTargetMachineInfo.Execute()\r [C:\corefx\src\System.Xml.XDocument\tests\TreeManipulation\System.Xml.XDocument.TreeManipulation.Tests.csproj] C:\corefx\Tools\tests.targets(190,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()\r [C:\corefx\src\System.Xml.XDocument\tests\TreeManipulation\System.Xml.XDocument.TreeManipulation.Tests.csproj] C:\corefx\Tools\tests.targets(190,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() [C:\corefx\src\System.Xml.XDocument\tests\TreeManipulation\System.Xml.XDocument.TreeManipulation.Tests.csproj] ""C:\corefx\build.proj"" (default target) (1) -> ""C:\corefx\src\tests.builds"" (BuildAndTest target) (494) -> ""C:\corefx\src\System.Xml.XDocument\tests\System.Xml.XDocument.Tests.builds"" (BuildAndTest target) (750) -> ""C:\corefx\src\System.Xml.XDocument\tests\Streaming\System.Xml.XDocument.Streaming.Tests.csproj"" (BuildAndTest target) (768) -> C:\corefx\Tools\tests.targets(190,5): error MSB4018: The ""GetTargetMachineInfo"" task failed unexpectedly.\r [C:\corefx\src\System.Xml.XDocument\tests\Streaming\System.Xml.XDocument.Streaming.Tests.csproj] C:\corefx\Tools\tests.targets(190,5): error MSB4018: System.DllNotFoundException: Unable to load DLL 'api-ms-win-core-sysinfo-l1-2-0.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)\r [C:\corefx\src\System.Xml.XDocument\tests\Streaming\System.Xml.XDocument.Streaming.Tests.csproj] C:\corefx\Tools\tests.targets(190,5): error MSB4018: at Interop.mincore.GetNativeSystemInfo(SYSTEM_INFO& lpSystemInfo)\r [C:\corefx\src\System.Xml.XDocument\tests\Streaming\System.Xml.XDocument.Streaming.Tests.csproj] C:\corefx\Tools\tests.targets(190,5): error MSB4018: at System.Runtime.InteropServices.RuntimeInformation.get_OSArchitecture()\r [C:\corefx\src\System.Xml.XDocument\tests\Streaming\System.Xml.XDocument.Streaming.Tests.csproj] C:\corefx\Tools\tests.targets(190,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.GetTargetMachineInfo.Execute()\r [C:\corefx\src\System.Xml.XDocument\tests\Streaming\System.Xml.XDocument.Streaming.Tests.csproj] C:\corefx\Tools\tests.targets(190,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()\r [C:\corefx\src\System.Xml.XDocument\tests\Streaming\System.Xml.XDocument.Streaming.Tests.csproj] C:\corefx\Tools\tests.targets(190,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() [C:\corefx\src\System.Xml.XDocument\tests\Streaming\System.Xml.XDocument.Streaming.Tests.csproj] 15 Warning(s) 160 Error(s) ``` [msbuild.log.txt](https://github.com/dotnet/corefx/files/249606/msbuild.log.txt) " +8297 area-System.Net LinuxNetworkInterface Id and Description implementation Currently NetworkInterface Id and Description throw PlatformNotSupportedException on Linux. I'd like to propose the following: Id returns _name Description returns _name The linux kernel does not grantee a network interface will have the same name after reboot but it can be done by using [udev](http://www.debianhelp.co.uk/udev.htm) or [systemd](https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/). +8307 area-Infrastructure Cross building much slower with new universal runner infrastructure. "As part of adopting the universal runners, we need to copy the entire packages folder from the builder machines to the test executor machines when we have to build managed code on Linux but test it on windows. Previously, the amount of data we needed to copy was on the order of 130 MB (this was the entire ""bin"" folder, de-duplicated in a zip file, via Packer). After the changes to also include the packages folder, we've grown to about 630 MB. We should figure out how to shrink this amount of data. I expect there is low-hanging fruit here (e.g. we are archiving all the nupkg's we downloaded, which we don't need? This removes about 300 MB from the compressed archive if we stop that). " +8311 area-System.Net Any plans to include NetworkAvailabilityChanged We use this event off `NetworkChange`, Portability Analyzer says NetworkChange is available but not that event. Any plans to bring this in for 1.0.0? +8315 area-System.Linq Consider adding System.Linq.Expressions into Standard Library Currently System.Linq.Expressions is not included in the .NETStandard.Library. While it's true that some cases might fallback to interpretation, there does seem to be an implementation that works everywhere. Even Xamarin.iOS had a solution to this (might be interpretation as well). +8319 area-System.IO Modify Path.Combine to not treat slashes as roots Path.Combine on all systems treats directory separators as the root. This is somewhat unexpected behavior on Windows and unhelpful on Unix. This commit changes the behaviors of all systems for path.Combine with path segments that begin with a DirectorySeparator and adds tests for the new behavior. No changes were made to invalid char checking. This is a breaking change. We should either merge this to resolve #7685 or close both by the RTM deadline. @JeremyKuhne @stephentoub @sokket +8320 area-System.Net Every time System.Net.Security\tests\FunctionalTests runs, some disk space gets eaten up permanently. "Every time System.Net.Security\tests\FunctionalTests runs, some disk space gets eaten up permanently. (That means every time people type ""build"" at the root.) To observe: ``` cd %APPDATA%\Roaming\Microsoft\Crypto\RSA cd S-1-5-21-2127521184-1604012920-1887927527-47149 // except yours will have different numbers: it's your user SID dir /A // Remember the number of files here. msbuild -t:clean;build;test System.Net.Security\tests\FunctionalTests\System.Net.Security.Tests.csproj dir /A // Note now that a dozen or so around new files have appeared. This is happening every time // people type ""build"" at the root as our nice documentation says. ``` This is because the test loads up and imports certificates from PFX files. https://github.com/dotnet/corefx/blob/master/src/System.Net.Security/tests/FunctionalTests/TestConfiguration.cs#L58 Each time you call ""new X509Certificate2()"" or ""X509Certificate2Collection.Import()"" on a PFX file, a new key container is created on disk. To get rid of it, you need to call Dispose() on the X509Certificate2 you instantiated and/or the members of the X509Certificate2Collection you imported into. You cannot rely on the finalizer because process shutdown doesn't always wait for the finalizers to run. It would be preferable if each test created a new certificate instance and disposed it manually rather than caching these in the test class instance. See this commit (https://github.com/dotnet/corefx/commit/c0afa93132e2f13f403b26ea742c292e55e888c1) for how we fixed this in the X509 tests. If you can't get to this for a while, as a min-bar, please mark the tests that trigger PFX loads with the ""[Outerloop]"" attribute so they don't run on individual dev machines by default. " +8324 area-System.Linq Two PLINQ tests consistently fail on 6 core HT Xeon machine "I have a particular machine with a 6 core (Hyperthreaded to 12) CPU Xeon processor. On this machine both in Windows and an ubuntu VM, I see the following two tests always fail in System.Linq.Parallel tests: ``` ``` As this is the only machine like this I have like this, internal folks can stop by my office to investigate if needed. " +8328 area-Serialization Fix XmlAttributes.Remove behavior difference - The issue is due to implementation difference XmlAttributes.Remove throws on Desktop if item is not found whereas there is no exception on CoreCLR. - Since we don't want to update XmlAttributes back to legacy type CollectionBase, I'm changing these XmlAttributes type to derive from generic List<> and override Remove() method to throw on missing item. - Fix #5831 and also #7837 cc: @SGuyGe @zhenlan @shmao +8330 area-System.Net Uri known issues - [ ] Uri should not throw ArgumentOutOfRangeException for unknown schemes. - [ ] Normalization should produce the same result for escaped/unescaped URIs - [ ] Canonical IPv6 is still performed for unknown schemes. - [ ] IPAddrees doesn't accept bad scopes, Uri does. +8331 area-System.Net Porting System.Private.Uri tests Porting existing internal tests to GitHub. Porting new Unit Tests to GitHub. Fixing a production-code bug discovered by the UnitTests. Code format + sanitize Fixes #6580. @davidsh @ianhays @stephentoub @weshaggard PTAL +8337 area-Infrastructure "Centos tests are failing with ""Permission denied"":" "*NIX tests are failing with ""Permission denied"": http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_debug_prtest/932/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_release_prtest/929/ ``` 17:06:35 Finished running tests. End time=00:08:09. Return value was 126 17:06:35 ./RunTests.sh: line 199: ./corerun: Permission denied 17:06:35 error: One or more tests failed while running tests from ''. Exit code 126. 17:06:35 Running tests... Start time: 00:08:09 17:06:35 Commands: 17:06:35 ./corerun xunit.console.netcore.exe System.Net.Security.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests 17:06:35 ./RunTests.sh: line 199: ./corerun: Permission denied 17:06:35 Finished running tests. End time=00:08:09. Return value was 126 17:06:35 error: One or more tests failed while running tests from ''. Exit code 126. 17:06:35 Finished running tests. End time=00:08:09. Return value was 126 17:06:35 error: One or more tests failed while running tests from ''. Exit code 126. 17:06:35 145 test(s) failed ``` " +8353 area-System.Runtime Consider adding UnixTime support to DateTime and DateTimeOffset "One of the big reasons to use dotnetcore is to be able to run on Linux. Please consider adding functions to output datetime to epoch format which is the standard on Linux environments. These suggestions may be a little off but they seem to make sense to me. Add a UnixTime DateTimeKind enum value https://msdn.microsoft.com/en-us/library/shx7s921(v=vs.110).aspx DateTimeOffset can output in unix time using a special function already https://msdn.microsoft.com/en-us/library/system.datetimeoffset.tounixtimeseconds(v=vs.110).aspx But it has no constructor allowing you to initialize a DateTimeOffset from an int64 and DateTimeKind enum. Consider adding this https://msdn.microsoft.com/en-us/library/system.datetimeoffset(v=vs.110).aspx DateTime has a constuctor taking int64 and DateTimeKind, but the int64 represents ticks instead of seconds. Consider setting the behavior for DateTime(int64, DateTimeKind (of UnixTime)) to initialize a DateTime using int64 as seconds instead of ticks, or add a FromUnixTime(int64 seconds) method if you don't want to confuse the payload of the int64 parameter. https://msdn.microsoft.com/en-us/library/w0d47c9c(v=vs.110).aspx. Consider adding a ToUnixTime method to the DateTime structure. Consider adding support for an ""e"" string in ToString, for epoch format, https://msdn.microsoft.com/en-us/library/system.datetimeoffset(v=vs.110).aspx " +8355 area-System.IO Unix Pipes temp directory creation has ACL issues for multi users. When the pipes code creates the temporary directory (/tmp/.dotnet/corefx) it will create the directories with 700 permissions if they are missing. Once this is done, no other user can use this name. This breaks cases where you run dotnet apps as two different users (a common case would be you run one app as root and then another as your local user. If the root one runs first, you can no longer use pipes). Perhaps we need to scope stuff in /tmp based on the current UID? +8356 area-System.Net Assertion in TryPreprocessIPv6Address within the *NIX IPAddressPAL Repro test: System.PrivateUri.Tests.UriIpHostTest.UriIPv6Host_BadAddresses_AllFail() From http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/823/testReport/junit/System.PrivateUri.Tests/UriIpHostTest/UriIPv6Host_BadAddresses_AllFail/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/823/ ``` MESSAGE: System.Diagnostics.Debug+DebugAssertException : at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Assert(Boolean condition) at System.Net.IPAddressPal.TryPreprocessIPv6Address(String input, String& host, String& port) at System.Net.IPAddressPal.Ipv6StringToAddress(String ipString, Byte[] bytes, UInt32& scope) at System.Net.IPAddressParser.Parse(String ipString, Boolean tryParse) at System.Net.IPAddress.TryParse(String ipString, IPAddress& address) at System.PrivateUri.Tests.UriIpHostTest.ParseBadIPv6Address(String badIpv6String) at System.PrivateUri.Tests.UriIpHostTest.UriIPv6Host_BadAddresses_AllFail() at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.b__45_0() at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) at Xunit.Sdk.TestRunner`1.d__43.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestRunner`1.RunAsync() at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCaseRunner`1.RunAsync() at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestMethodRunner`1.RunAsync() at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestClassRunner`1.RunAsync() at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCollectionRunner`1.RunAsync() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.Execute() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) at System.Threading.Tasks.Task.Execute() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) +++++++++++++++++++ STACK TRACE: at System.Diagnostics.Debug.UnixDebugLogger.ShowAssertDialog(String stackTrace, String message, String detailMessage) at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Assert(Boolean condition) at System.Net.IPAddressPal.TryPreprocessIPv6Address(String input, String& host, String& port) at System.Net.IPAddressPal.Ipv6StringToAddress(String ipString, Byte[] bytes, UInt32& scope) at System.Net.IPAddressParser.Parse(String ipString, Boolean tryParse) at System.Net.IPAddress.TryParse(String ipString, IPAddress& address) at System.PrivateUri.Tests.UriIpHostTest.ParseBadIPv6Address(String badIpv6String) at System.PrivateUri.Tests.UriIpHostTest.UriIPv6Host_BadAddresses_AllFail() ``` +8357 area-System.IO Make win8 ARM clrcompression pkg win7-arm is not a valid RID. This commit removes that package and replaces it with an equivalent win8-arm package. resolves #7436 @weshaggard @ericstj +8358 area-System.IO Expose Stream.Begin/EndRead/Write in System.IO contract We really want devs to use Stream.Read/WriteAsync, but not having these Begin/End methods exposed breaks portability scenarios, e.g. where a stream in the full framework wraps another stream (e.g. SslStream) and the wrapper's async implementation wraps the Begin/End methods on the underlying Stream. Without these Begin/End members in the contract, it's impossible for a portable Stream implementation to plug in to that wrapper correctly. The core work here (for RTM) is to: - Expose the Begin/EndRead/Write virtual methods in the contract - Fix all of our Stream implementations in corefx to override these. In some cases, the methods already exist and we just need to change them from internal methods to public overrides. In other cases, we need to implement them and can do so easily on top of the Read/WriteAsync implementations. After that, we can optionally consider: - Changing the base Stream.Begin/EndRead/Write implementation to check if ReadAsync/WriteAsync are overridden, and if they are, delegating to those instead of queueing a work item that invokes the synchronous Read/Write. There are potential issues here, though, e.g. if a Stream overrides ReadAsync/WriteAsync to delegate to Begin/End which it doesn't override, at which point they'll end up in an infinite redirection loop. There may be ways to mitigate that. If we added that, we need a similar change (under a quirk) in the full framework. cc: @weshaggard, @terrajobst, @KrzysztofCwalina, @davidfowl, @benaadams +8359 area-System.ComponentModel Use generic collections in System.ComponentModel.TypeConverter implementation instead of non-generic +8360 area-System.Net IPAddress.ToString behavior difference: IPv6-mapped addresses format as regular IPv6 addresses From http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/823/testReport/junit/System.PrivateUri.Tests/UriIpHostTest/UriIPv6Host_EmbeddedIPv4_Success/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/823/ ``` MESSAGE: Assert.Equal() Failure ↓ (pos 10) Expected: [::ffff:0:c0a8:1] Actual: [::ffff:0:192.168.0.1] ↑ (pos 10) +++++++++++++++++++ STACK TRACE: at System.PrivateUri.Tests.UriIpHostTest.ParseIPv6Address(String ipv6String) at System.PrivateUri.Tests.UriIpHostTest.UriIPv6Host_EmbeddedIPv4_Success() ``` +8361 area-System.Net IPAddress.Parse behavior difference: failure to reject many bad IP address strings. System.PrivateUri.Tests.UriIpHostTest.UriIPv4Host_BadAddresses_AllFail From: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/823/testReport/junit/System.PrivateUri.Tests/UriIpHostTest/UriIPv4Host_BadAddresses_AllFail/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/823/ ``` MESSAGE: 127.0.0.1 \nExpected: False\nActual: True +++++++++++++++++++ STACK TRACE: at System.PrivateUri.Tests.UriIpHostTest.ParseBadIPv4Address(String badIpv4String) at System.PrivateUri.Tests.UriIpHostTest.UriIPv4Host_BadAddresses_AllFail() ``` +8362 area-System.Net IPAddress.TryParse behavior difference: dotted octal In OSX _only_ there are 3 tests failing for the dotted octal IP format: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/867/ - [ ] UriIPv4Host_DottedOctalExtraLeadingZeros_Success ``` Assert.Equal() Failure\n ↓ (pos 0)\nExpected: 235.73.31.33\nActual: 157.59.25.27\n ↑ (pos 0) +++++++++++++++++++ STACK TRACE: at System.PrivateUri.Tests.UriIpHostTest.ParseIPv4Address(String ipv4String) at System.PrivateUri.Tests.UriIpHostTest.UriIPv4Host_DottedOctalExtraLeadingZeros_Success() ``` - [ ] UriIPv4Host_PartialOctal_Success ``` MESSAGE: Assert.Equal() Failure\n ↓ (pos 10)\nExpected: 157.59.25.33\nActual: 157.59.25.27\n ↑ (pos 10) +++++++++++++++++++ STACK TRACE: at System.PrivateUri.Tests.UriIpHostTest.ParseIPv4Address(String ipv4String) at System.PrivateUri.Tests.UriIpHostTest.UriIPv4Host_PartialOctal_Success() ``` - [ ] UriIPv4Host_DottedOctal_Success ``` MESSAGE: Assert.Equal() Failure\n ↓ (pos 0)\nExpected: 235.73.31.33\nActual: 157.59.25.27\n ↑ (pos 0) +++++++++++++++++++ STACK TRACE: at System.PrivateUri.Tests.UriIpHostTest.ParseIPv4Address(String ipv4String) at System.PrivateUri.Tests.UriIpHostTest.UriIPv4Host_DottedOctal_Success() ``` +8366 area-System.Net System.Net.Http.Functional.Tests RevokedCertificate 2 tests fail Failures on Ubuntu: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release_prtest/854/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release_prtest/854/ Failures on Centos: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_release_tst_prtest/861/consoleFull#6262143651f1a4601-6aec-4fd5-b678-78d4389fd5e8 ``` MESSAGE: Assert.Throws() Failure Expected: typeof(System.Net.Http.HttpRequestException) Actual: typeof(System.Threading.Tasks.TaskCanceledException): A task was canceled. +++++++++++++++++++ STACK TRACE: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` ``` MESSAGE: System.Threading.Tasks.TaskCanceledException : A task was canceled. +++++++++++++++++++ STACK TRACE: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__7.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +8367 area-Infrastructure "Several tests ""Aborted"" on CentOS" From : http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_debug_tst_prtest/858/consoleFull#6262143651f1a4601-6aec-4fd5-b678-78d4389fd5e8 ``` 15:26:50 ./RunTests.sh: line 198: 33206 Aborted ./corerun xunit.console.netcore.exe System.Reflection.TypeExtensions.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests 15:26:50 Finished running tests. End time=22:28:27. Return value was 134 15:26:50 error: One or more tests failed while running tests from ''. Exit code 134. 15:26:50 Finished running tests. End time=22:28:27. Return value was 0 15:26:50 ./RunTests.sh: line 198: 33345 Segmentation fault ./corerun xunit.console.netcore.exe System.Reflection.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests 15:26:50 Finished running tests. End time=22:28:27. Return value was 139 15:26:50 error: One or more tests failed while running tests from ''. Exit code 139. 15:27:06 ./RunTests.sh: line 201: 40586 Aborted ./corerun xunit.console.netcore.exe System.Runtime.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests 15:27:06 Finished running tests. End time=22:28:43. Return value was 134 ``` +8369 area-Infrastructure Building CoreFx on Windows requires both MsBuild 12.0 and 14.0 tools installed The instructions for setting up a machine to build CoreFx are not precise and can lead to problems building. The instructions right now say: https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md “Visual Studio 2015 is required.” However, that is not sufficient using the default settings of Visual Studio 2015 install. The default settings will only install MsBuild 14.0. But the CoreFx CSPROJ and other scripts seem to want MsBuild 12.0 (you will see warning messages when doing “build” from the CoreFx root directory). In addition, it ends up using the C# 5 compiler: ![image](https://cloud.githubusercontent.com/assets/7684835/15089388/f19df56e-13b6-11e6-8b32-1ca1c936e675.png) This will cause compilation errors in System.Net.Http/src for example due to C# 6 features being used in the source files. The fix is to install these additional things from Visual Studio 2015. This will install MsBuild 12.0 tools. ![image](https://cloud.githubusercontent.com/assets/7684835/15089391/f85c2a2e-13b6-11e6-89b7-bb5cd0faf2fb.png) Which then results in the C# 6 compiler being used: ![image](https://cloud.githubusercontent.com/assets/7684835/15089394/ff56d630-13b6-11e6-9f7a-43d438f5ca89.png) Why does our build system require both MsBuild 12.0 and MsBuild 14.0 tools? +8371 area-System.Net Dns.GetHostAddressesAsync is blocking a ThreadPool thread The implementation of Dns.GetHostAddressesAsync is just a wrapper around the blocking implementation and is queued on the ThreadPool. https://github.com/dotnet/corefx/blob/1baa9ad06a466a5d6399e1e0a7a7a02564ab51b0/src/System.Net.NameResolution/src/System/Net/DNS.cs#L274 This can lead to a ThreadPool starvation when there are many concurrent calls of GetHostAddressAsync in an environment where the DNS is slow. The code in .Net 4.6 is slightly different but suffers from the same issue: http://referencesource.microsoft.com/#System/net/System/Net/DNS.cs,744 Windows and Linux both provides real asynchronous calls to resolve a DNS. The asynchronous implementation could use these. +8372 area-System.Security Add System.Security.SecureString to corefx We'd previously removed it due to not believing in the type, but it's used by enough apps that it's important to provide simply to aid in porting. This reverts the previous removal, and then does a bunch of work to fix it up to build and run again successfully. cc: @bartonjs, @weshaggard, @ellismg +8373 area-System.Net Add InvalidCredentialException to System.Net.Security contract It looks like this exception type was inadvertently left out of the contract file. It's a public type in the implementation and it's thrown in several places. cc: @davidsh, @cipop +8376 area-System.IO Reduce the minimum buffer size required by the StreamWriter class `StreamWriter` forces its `bufferSize` constructor parameter to be at least `128`. There is no workaround. This seems unnecessarily limiting. `bufferSize = 128` actually consumes about `256+(128*3)` bytes of memory with UTF8 (I checked this using the debugger). This is a significant amount of memory per instance. If the user really wants a smaller size, maybe knowing something about the data distribution, the user-specified value should take effect. For example, I might know that I will be writing only a few dozen bytes when serializing a cookie or an HTTP header. Simply lowering this minimum value would be a compatibility concern. So I propose this: The user-specified `bufferSize` value should be used with a minimum of `1`. Each time the buffer is actually exhausted, grow the internal buffers by doubling them each time until a size of `128` is reached. This way the user can specify a smaller buffer size if they know that not much data will be coming. But if a small size was mistakenly specified `StreamWriter` will quickly adapt to a bigger, more efficient buffer. This mitigates the compatibility concern. An alternative scheme would be to always start with a size of `16` and double until `max(bufferSize, 128)` is reached. That way the user-provided value is taken as a maximum instead of a precise value. I'm not convinced this scheme should be implemented. Just mentioning it. +8377 area-System.Net Add SSL support to LoopbackServer in HTTP tests We currently make a lot of calls off-box in our unit tests. By adding SSL support to the loopback server, we should be able to convert many more tests to avoid needing to actually hit the network. This adds such basic support, and converts a few tests to use it. Per previous PR feedback, I also moved the client-related code out of the loopback server, moving it to the call sites. Those call sites will be more easily reviewed with whitespace-diffing disabled, as the majority of the changes are indentation due to adding using blocks. Also, since I was moving the certificate configuration code to a central location, I fixed an issue related to cleanup. Fixes https://github.com/dotnet/corefx/issues/8320 cc: @davidsh, @cipop, @bartonjs +8378 area-System.IO Add Stream.Begin/EndRead and Stream.Begin/EndWrite While we want developers to implement and consume the ReadAsync/WriteAsync methods on Stream, not having the older Begin/End\* methods causes portability problems for libraries (it also makes porting harder). This commit adds back the virtual methods in the contract and provides an implementation for Stream in corert (coreclr already has implementations in mscorlib). It also provides overrides on the streams defined in System.IO.dll. Once a new package is published with this updated contract, I'll add overrides to the rest of our stream implementations in corefx as well as tests. cc: @ianhays, @weshaggard, @danmosemsft, @KrzysztofCwalina, @jkotas +8379 area-System.Security Evaluate the impact of changing to CryptProtectData in SecureString https://github.com/dotnet/corefx/pull/8372 is resurrecting a CoreFx implementation of SecureString. The desktop version uses CryptProtectMemory at the SAME_PROCESS scope. The current corefx version uses CryptProtectData, which is a SAME_USER scope. There are two compatibility changes to consider: 1) CoreFx effectively allows a SecureString to now be marshalled into another process (though there are complicated things making that hard still) 2) The desktop and CoreFx versions might not have the same behavior under impersonation. At minimum a test should be done for behavioral differences across an impersonation boundary; and the SAME_PROCESS v SAME_USER impact should be considered. One solution may be to build UWP as CryptProtectData, but the full-Windows version as CryptProtectMemory. +8380 area-System.Net Add way to receive RemoteEndPoint from TcpClient I'm working on porting one of my networking libraries to .NET Core, and some of the changes made to sockets and TcpClient have made some information impossible to get. I was using a derived version of NetworkStream, however with the removal of the Client property, I could not create that anymore. I can work without that, but with neither NetworkStream or TcpClient providing the RemoteEndPoint of the socket, I cannot receive the remote address or remote port of the client. In addition, because of the removal of Async methods from Socket, I can't use raw sockets either. Any chance a way to get RemoteEndPoint data from a TcpClient or NetworkStream, a way to get the raw Socket again from TcpClient, or Task based async methods on raw Sockets? +8382 area-System.IO Add async overloads to BinaryReader/Writer Because I'd love to use it to read/write things, asynchronously from the network. +8385 area-Infrastructure "Skipping build of test assemblies when ""skiptests"" is specified" On Unix, one can specify the `skiptests` command line option to `build.sh`. However, it still compiles all the test assemblies and increases the overall compile time. Shouldn't the build of test assemblies be actually skipped too? +8386 area-Infrastructure chmod errors when building on Linux When building on Linux, I'm getting a lot of those messages. Luckily they do not cause the build to break. It would be nice however to not have those: ``` Common.Tests -> /home/local/Microsoft/corefx/bin/Unix.AnyCPU.Debug/Common.Tests/Common.Tests.dll chmod: cannot access ‘/home/local/Microsoft/corefx/bin/tests/Unix.AnyCPU.Debug/Common.Tests/dnxcore50/corerun’: No such file or directory ``` +8389 area-System.Net PostSyncBlockingContentUsingChunkedEncoding_Success failed on Windows in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug/247/consoleText ``` System.Net.Http.Functional.Tests.PostScenarioTest.PostSyncBlockingContentUsingChunkedEncoding_Success(serverUri: https://corefx-net.cloudapp.net/Echo.ashx) [FAIL] System.Threading.Tasks.TaskCanceledException : A task was canceled. Stack Trace: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() D:\j\workspace\windows_nt_debug88592b53\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(850,0): at System.Net.Http.WinHttpHandler.d__102.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() D:\j\workspace\windows_nt_debug88592b53\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(392,0): at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() D:\j\workspace\windows_nt_debug88592b53\src\System.Net.Http\tests\FunctionalTests\PostScenarioTest.cs(171,0): at System.Net.Http.Functional.Tests.PostScenarioTest.d__22.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\windows_nt_debug88592b53\src\System.Net.Http\tests\FunctionalTests\PostScenarioTest.cs(85,0): at System.Net.Http.Functional.Tests.PostScenarioTest.d__14.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +8390 area-System.Numerics divremTest.RunDivRemTests failed on OSX in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_osx_debug/29/consoleText ``` System.Numerics.Tests.divremTest.RunDivRemTests [FAIL] Out parameters not matching Expected: True Actual: False Stack Trace: System.Threading -> /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_osx_debug/bin/OSX.AnyCPU.Debug/System.Threading/System.Threading.dll at System.Numerics.Tests.StackCalc.VerifyOutParameter() at System.Numerics.Tests.divremTest.VerifyDivRemString(String opstring) at System.Numerics.Tests.divremTest.RunDivRemTests() ``` +8392 area-Infrastructure Clean.cmd and .sh should offer an option to prevent user prompt on failures "When Clean.cmd or .sh fail to unlink a file during the 'git clean -xdf' phase, they prompt ""Should I try again?"" This is fatal for an automated environment like CI and will require manual intervention. Clean should offer an option that prevents prompts. Possible solution is: - Optionally 'set GIT_ASK_YESNO=false' in clean.cmd I would prefer this prompt suppression should be the default. Interactive users can see the failures and try again, but lab machines cannot. Any netci.groovy scripts using clean.cmd/sh or doing manual 'git clean -xdf' should also be aware of whichever option is chosen and use it. " +8393 area-System.Security Several EnvelopedCms test failures on Windows 7 and Windows 8.1 **Windows 7** http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_win7_release/lastCompletedBuild/testReport/System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests/StateTests/PostDecrypt_Encode/ Stacktrace MESSAGE: Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Cannot find the certificate and private key for decryption +++++++++++++++++++ STACK TRACE: at System.Security.Cryptography.Pkcs.EnvelopedCms.DecryptContent(RecipientInfoCollection recipientInfos, X509Certificate2Collection extraStore) at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.StateTests.PostDecrypt_Encode() http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_win7_release/lastCompletedBuild/testReport/System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests/EdgeCasesTests/ImportEdgeCaseSki/ Stacktrace MESSAGE: Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Cannot find the certificate and private key for decryption +++++++++++++++++++ STACK TRACE: at System.Security.Cryptography.Pkcs.EnvelopedCms.DecryptContent(RecipientInfoCollection recipientInfos, X509Certificate2Collection extraStore) at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.ImportEdgeCaseSki() http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_win7_debug/lastCompletedBuild/testReport/System.Net.Security.Tests/CertificateValidationClientServer/CertificateValidationClientServer_EndToEnd_Ok_useClientSelectionCallback__False_/ System.Net.Security.Tests.CertificateValidationClientServer.CertificateValidationClientServer_EndToEnd_Ok(useClientSelectionCallback: False) (from (empty)) MESSAGE: System.AggregateException : One or more errors occurred. (Assert.Equal() Failure\r\nExpected: RemoteCertificateChainErrors\r\nActual: RemoteCertificateNotAvailable)\r\n---- Assert.Equal() Failure\r\nExpected: RemoteCertificateChainErrors\r\nActual: RemoteCertificateNotAvailable +++++++++++++++++++ STACK TRACE: at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) at System.Net.Security.Tests.CertificateValidationClientServer.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Security.Tests.CertificateValidationClientServer.ServerSideRemoteClientCertificateValidation(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) at System.Net.Security.SslStream.UserCertValidationCallbackWrapper(String hostName, X509Certificate2 certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) at System.Net.Security.SslState.CompleteHandshake() at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.WriteCallback(IAsyncResult transportResult) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) **Windows 8.1** http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug/lastCompletedBuild/testReport/System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests/DecryptTests/Decrypt_IssuerAndSerial/ Stacktrace MESSAGE: Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Keyset does not exist +++++++++++++++++++ STACK TRACE: at System.Security.Cryptography.Pkcs.EnvelopedCms.DecryptContent(RecipientInfoCollection recipientInfos, X509Certificate2Collection extraStore) in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Security.Cryptography.Pkcs\src\System\Security\Cryptography\Pkcs\EnvelopedCms.cs:line 240 at System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(X509Certificate2Collection extraStore) in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Security.Cryptography.Pkcs\src\System\Security\Cryptography\Pkcs\EnvelopedCms.cs:line 188 at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.DecryptTests.VerifySimpleDecrypt(Byte[] encodedMessage, CertLoader certLoader, ContentInfo expectedContent) in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Security.Cryptography.Pkcs\tests\EnvelopedCms\DecryptTests.cs:line 210 at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.DecryptTests.TestSimpleDecrypt_RoundTrip(CertLoader certLoader, ContentInfo contentInfo, String algorithmOidValue, SubjectIdentifierType type) in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Security.Cryptography.Pkcs\tests\EnvelopedCms\DecryptTests.cs:line 196 at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.DecryptTests.Decrypt_IssuerAndSerial() in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Security.Cryptography.Pkcs\tests\EnvelopedCms\DecryptTests.cs:line 30 +8396 area-System.Diagnostics Windows 8.1 outerloop release - System.Diagnostics.Tests.ProcessStartInfoTests.TestUserCredentialsPropertiesOnWindows http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release/lastCompletedBuild/testReport/System.Diagnostics.Tests/ProcessStartInfoTests/TestUserCredentialsPropertiesOnWindows/ Stacktrace MESSAGE: System.InvalidOperationException : No process is associated with this object. +++++++++++++++++++ STACK TRACE: at System.Diagnostics.Process.EnsureState(State state) in D:\j\workspace\outerloop_win---65ef7d78\src\System.Diagnostics.Process\src\System\Diagnostics\Process.cs:line 779 at System.Diagnostics.Process.get_HasExited() in D:\j\workspace\outerloop_win---65ef7d78\src\System.Diagnostics.Process\src\System\Diagnostics\Process.cs:line 189 at System.Diagnostics.Tests.ProcessStartInfoTests.TestUserCredentialsPropertiesOnWindows() in D:\j\workspace\outerloop_win---65ef7d78\src\System.Diagnostics.Process\tests\ProcessStartInfoTests.cs:line 393 +8398 area-System.Reflection Alternative for Assembly.Location / bring back Assembly.Location Getting the location of a loaded assembly is a core feature of the Assembly class. Now that the Assembly.Location property is only available in .net standard 1.5, how can code targeting lower platform versions retrieve the path where an assembly got loaded from? Alternatively, can Assembly.Location be brought back? According to msdn it was there since 1.1: https://msdn.microsoft.com/en-us/library/system.reflection.assembly.location(v=vs.110).aspx +8399 area-System.Net Disable BadCertificate test failing on Windows "This has recently been failing on Windows (inconsistently), with errors like ""A security error occurred"" and ""The buffers supplied to a function was too small"". https://github.com/dotnet/corefx/issues/7812 cc: @davidsh " +8410 area-System.IO FileSystemWatcher Test failure: FileSystemWatcher_File_Create_DeepDirectoryStructure Creating a file in a nested directory does not always send a Created event on some Linux distros. This results in the `FileSystemWatcher_File_Create_DeepDirectoryStructure` test failing intermittently. +8413 area-System.Net Fix PhysicalAddress.Equals() PhysicalAddress.Equals() returned false for 2 PhysicalAddress instances with byte array contents that are equal but not reference equals. +8414 area-System.Net SslStream/NegotiateStream should throw InvalidCredentialException when the authentication fails and cannot be retried According to MSDN: https://msdn.microsoft.com/en-us/library/system.security.authentication.invalidcredentialexception(v=vs.110).aspx > The exception that is thrown when authentication fails for an authentication stream and cannot be retried. At the moment SslStream is throwing only `AuthenticationException`. +8415 area-System.IO FileSystem: Implement WinRT File Enumeration "The enumeration in WinRTFileSystem is currently stubbed out to return an empty array. This commit adds an implementation with behavior matching the Win32FileSystem as much as possbible. There are still a few differences: - Search paths that contain a file with an extension containing a wildcard will have those extensions ignored when filtering results. - Double dot ("".."") search patterns do not throw an ArgumentException like they do on Win32. resolves #8108 @ericstj " +8418 area-Serialization ReflectionBasedDCS: Fix 5 test failures, MemberInfo, DateTimeOffset, KeyValuePair Fix the following 5 tests: DCS_DateTimeOffsetAsRoot DCS_DataMemberAttribute DCS_DuplicatedKnownTypesWithAdapterThroughConstructor DCS_DuplicatedKeyDateTimeOffset DCS_MyPersonSurrogate cc: @SGuyGe @shmao @zhenlan +8422 area-Serialization Nullref while deserializing on many threads with DataContractJsonSerializer "Updating the packages used for serialization seems to have introduced a crash. Repro: 1) dotnet new 2) replace program.cs with [this](https://gist.github.com/billwert/183050efed9a3ff9856dda9cd58be86c#file-program-cs) 3) Add these to your project.json: ""System.Runtime.Serialization.Json"": ""4.0.2-rc3-24109-00"", ""System.Runtime.Serialization.Primitives"": ""4.1.1-rc3-24109-00"" 4) dotnet restore 5) dotnet build 6) dotnet run It should crash with something like this at the top of the stack: Unhandled Exception: System.AggregateException: One or more errors occurred. (Object reference not set to an instance of an object.) (Object reference not set to an instance of an object.) (Object reference not set to an instance of an object.) ---> System.NullReferenceException: Object reference not set to an instance of an object. at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at System.Runtime.Serialization.XmlFormatReaderGenerator.UnsafeGetUninitializedObject(Type type) at ReadPersonFromJson(XmlReaderDelegator , XmlObjectSerializerReadContextComplexJson , XmlDictionaryString , XmlDictionaryString[] ) Rolling the packages back to these will make the bug go away. ""System.Runtime.Serialization.Json"": ""4.0.2-rc3-23924"", ""System.Runtime.Serialization.Primitives"": ""4.1.1-rc3-23924"" " +8423 area-System.Security PublicKeyTests.TestKey_RSA failed in CI on Ubuntu 14.04 http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release/254/consoleText ``` System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests.TestKey_RSA [FAIL] Assert.Equal() Failure Expected: Byte[] [1, 0, 1] Actual: Byte[] [] ``` +8424 area-System.Net Disable ConnectTimeoout test on Linux It's failing on Ubuntu 16.04. Something about the curl used in CI is likely wrong. https://github.com/dotnet/corefx/issues/8181 +8425 area-System.Security System.Security.SecureString.Tests fails using Ubuntu 14.04.3 LTS I noticed one error when building the corefx repository. The repository was freshly cloned to ensure it wasn't fixed in the meantime. An extract of the `msbuild.log` file (hopefully) indicating the issue. [https://gist.github.com/TorbenJ/40e4fe407d18976bb0d881a606f4a048](url) I tried to build using `./build.sh` and another time using `./build.sh Linux` with the same results. +8426 area-System.Net PostNonRewindableContentUsingAuth_PreAuthenticate_Success failed on Windows in CI The handle is invalid error. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/1074/consoleText ``` System.Net.Http.Functional.Tests.PostScenarioTest.PostNonRewindableContentUsingAuth_PreAuthenticate_Success(serverUri: http://corefx-net.cloudapp.net/Echo.ashx?auth=basic&user=user1&password=password1) [FAIL] System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The handle is invalid Stack Trace: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(392,0): at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http\tests\FunctionalTests\PostScenarioTest.cs(207,0): at System.Net.Http.Functional.Tests.PostScenarioTest.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http\tests\FunctionalTests\PostScenarioTest.cs(149,0): at System.Net.Http.Functional.Tests.PostScenarioTest.d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(1331,0): at System.Net.Http.WinHttpHandler.InternalSendRequestAsync(WinHttpRequestState state) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(843,0): at System.Net.Http.WinHttpHandler.d__102.MoveNext() ``` +8429 area-System.Runtime Addition ConditionalWeakTable.AddOrUpdate From https://github.com/dotnet/coreclr/issues/4545 Or indexer setter? At the moment you need to do ``` csharp lock (cwt) { cwt.Remove(key); cwt.Add(key, newValue); } ``` Would be nicer if you could just do ``` csharp cwt[key] = newValue; ``` or ``` csharp cwt.AddOrUpdate(key, newValue); ``` +8430 area-Infrastructure Enable ApiCompat for CoreFX builds @venkat-raman251 setup ApiCompat and did some initial clean runs but ever enabled it in the corefx builds. We need to enable by adding RunApiCompat=true (see https://github.com/weshaggard/corefx/commit/f208510f7720116c139f7fedbb89bbf31ebcc184), but before turning it on we have to clean-up the existing issues that have occurred since then. +8434 area-System.Net Improve WinHttpHandler logic regarding default credentials In some cases, WinHttpHandler was not sending default credentials that were specified inside a custom ICredentials object. In other cases, default credentials would be sent even though CredentialCache.DefaultCredentials was not specified. The code was incorrectly comparing the proxy and server credential (ICredential interface) values against the DefaultCredentials object. Instead, the ICredentials.GetCredential() method should be called to compute the final NetworkCredential object. This takes into account the given uri and auth scheme. This PR fixes the logic by delay the setting in WinHTTP for releasing default credentials. This ensures that default crdentials are released when requested. Fixes #8176. +8435 area-System.Net System.Net.Sockets\tests\PerformanceTests is not building on Windows "Running `msbuild /t:rebuild,test` on Windows will result in: ``` ""S:\c2\src\System.Net.Sockets\tests\PerformanceTests\System.Net.Sockets.Async.Performance.Tests.csproj"" (rebuild;test target) (1) -> (CoreCompile target) -> S:\c2\src\Common\tests\System\Net\Sockets\Performance\SocketTestClient.cs(209,18): error CS0103: The name 'SocketTestMemcmp' does not exist in the c urrent context [S:\c2\src\System.Net.Sockets\tests\PerformanceTests\System.Net.Sockets.Async.Performance.Tests.csproj] 0 Warning(s) 1 Error(s) ``` Specifying `/property:Configuration=Windows_Debug` (or `Linux_*`/`OSX_` works as expected). /cc @davidsh @himadrisarkar @ericeil " +8437 area-System.Net CertificateValidationClientServer_EndToEnd_Ok if failing on Windows7 ``` System.AggregateException : One or more errors occurred. (Assert.Equal() Failure\r\nExpected: RemoteCertificateChainErrors\r\nActual: RemoteCertificateNotAvailable)\r\n---- Assert.Equal() Failure\r\nExpected: RemoteCertificateChainErrors\r\nActual: RemoteCertificateNotAvailable +++++++++++++++++++ STACK TRACE: at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) at System.Net.Security.Tests.CertificateValidationClientServer.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Security.Tests.CertificateValidationClientServer.ServerSideRemoteClientCertificateValidation(Object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) at System.Net.Security.SslStream.UserCertValidationCallbackWrapper(String hostName, X509Certificate2 certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) at System.Net.Security.SslState.CompleteHandshake() at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.WriteCallback(IAsyncResult transportResult) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) ``` Has been failing consistently in past 3 builds. +8439 area-System.IO System.IO.Tests.WaitForChangedTests.Created_Success(changeType: Created) [FAIL] From: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_debug_tst_prtest/965/consoleFull#-21371504001f1a4601-6aec-4fd5-b678-78d4389fd5e8 Failed on Innerloop CentOS7.1 Debug Build and Test: ``` 14:05:40 System.IO.Tests.WaitForChangedTests.Created_Success(changeType: Created) [FAIL] 14:05:40 WaitForChanged didn't complete 14:05:40 Expected: True 14:05:40 Actual: False 14:05:40 Stack Trace: 14:05:40 at System.IO.Tests.WaitForChangedTests.Created_Success(WatcherChangeTypes changeType) 14:05:40 Finished: System.IO.FileSystem.Watcher.Tests 14:05:40 14:05:40 === TEST EXECUTION SUMMARY === 14:05:40 System.IO.FileSystem.Watcher.Tests Total: 185, Errors: 0, Failed: 1, Skipped: 0, Time: 11.844s 14:05:41 Finished running tests. End time=21:07:28. Return value was 1 14:05:41 error: One or more tests failed while running tests from ''. Exit code 1. ``` +8440 area-System.Net HttpClient Unstable on CoreCLR "I've been using HttpClient in my ASP.NET Core application, running on the (full) `clr` runtime. It works great. However, when I `dnvm use` to switch to `coreclr` runtime, then I've found that HttpClient invocations fail. At first this seems like this is a Kestrel issue, but please read my post through to learn my workaround. The workaround suggests this is an issue with HttpClient itself. To create this problem: - Run under `1.0.0-rc1-update2 coreclr`. I use `x86` for architecture, but I don't think that matters. - Execute an HttpClient request **in an async / await construct**. This part is necessary! - Perform back-to-back HttpClient POST requests that serialize payload (I have been using `Microsoft.AspNet.WebApi.Client v5.2.3` extensions, such as `PostAsJsonAsync`). I launch the test by typing `dnx test`, which launches xUnit. The first HttpClient request will work correctly. The next request will mysteriously receive a 404. When I insert fiddler to spy on traffic, it interferes by ""post-poning"" the problem; it allows two or three HttpClient requests to be processed before finally failing with a 404. Furthermore, Fiddler will only capture half or less of the traffic(!!!!) being received by Kestrel (even though all requests are coming from the same HttpClient object instance!). One of the 404 requests that was captured by both Fiddler and Kestrel looked like this: ``` PATCH http://localhost:60996/evt/Subscribers/bcf8edb0-dbae-4e83-bb8d-b5d966b2736b/AddNumbers HTTP/1.1 Content-Type: application/json; charset=utf-8 Accept-Encoding: gzip, deflate Connection: Keep-Alive Host: localhost:60996 Content-Length: 15 [""303 2968199""] ``` Looks normal. On the Kestrel side, it looks like this: ``` info: Microsoft.AspNet.Hosting.Internal.HostingEngine[1] Request starting HTTP/1.1 PATCH http://localhost:60996/evt/Subscribers/bcf8edb0-dbae-4e83-bb8d-b5d966b2736b/AddNumbers application/json; charset=utf-8 verb: Microsoft.AspNet.Mvc.Routing.InnerAttributeRoute[0] Request successfully matched the route with name '' and template 'evt/Subscribers/{id}/AddNumbers'. verb: Microsoft.AspNet.Mvc.Infrastructure.DefaultActionSelector[0] Action 'ApiBasics.Controllers.SubscribersController.AddNumbers' with id 'b482e6ad-649c-4885-9b7d-12a25e3b422a' did not match the constraint 'Microsoft.AspNet.Mvc.ActionConstraints.HttpMethodConstraint' verb: Microsoft.AspNet.Mvc.Infrastructure.MvcRouteHandler[3] No actions matched the current request verb: Microsoft.AspNet.Builder.RouterMiddleware[0] Request did not match any routes. ``` It would seem this is a Kestrel problem, but consider the workaround. If I simply Dispose() the HttpClient after every request, and re-create it fresh for each subsequent request - then I can successfully run this code on coreclr. Furthermore, if I don't use async/await constructs with HttpClient, then this problem also does not appear. Evidently, there is some sort of state that HttpClient is retaining between calls. Again, this work-around is not necessary and the problem does not occur **if I use dnvm to switch to `1.0.0-rc1-update2 clr`** and then run my test again. I'm launching my test via xUnit. I have an xUnit `IClassFixture` which launches Kestrel. In other words, I am performing in-memory fast integration tests. The versions I am using for these two tools are: ``` ""xunit.runner.dnx"": ""2.1.0-rc1-build204"", ""xunit"": ""2.2.0-beta1-build3239"", ""Microsoft.AspNet.Server.Kestrel"": ""1.0.0-rc1-final"", ``` ## Work-around Test Code To simplify my ability to test the ""restart HttpClient"" work-around, I have been using this code: ``` public class AsyncClient { Uri address; HttpClient client; public AsyncClient(Uri baseAddress) { address = baseAddress; client = new HttpClient(); client.BaseAddress = baseAddress; } public async Task Request(Func> call) { HttpResponseMessage response = null; using (var client = new HttpClient()) { client.BaseAddress = address; response = await call(client); } return response; } } ``` The above `AsyncClient` is registered as a singleton in my IOC container. By simply commenting the ""using"" line in the `Request` method, I can toggle between a singleton `HttpClient` or a ""per invocation"" `HttpClient`. ## Further Anomaly Using the `AsyncClient` code shown above, I can ensure the `HttpClient` is fresh for every request - and this allows the `coreclr` execution to be successful. However, when I change the address of the server so that Fiddler can intercept traffic, then this 404 problem occurs all over again!!!! So if the `HttpClient` base address normally points here: ``` http://localhost:60996 ``` And I change that address (for Fiddler's sake) to this address: ``` http://localhost.fiddler:60996 ``` Then the same 404 appears after the third or fourth request! And this time, my ""workaround"" can't save me...the `coreclr` execution simply will not work...due to these 404 issues. No Fiddler for `coreclr` !!! Incidentally, if I switch back to the full `clr` runtime...my errors might be gone, but Fiddler still only captures half the traffic that Kestrel is successfully receiving. Queue twilight zone music. :sweat: " +8443 area-System.Net Allow CurlHandler to work with link-local Uris on older libcurls "In https://github.com/dotnet/corefx/pull/8249 I modified CurlHandler to work with Uris that included scope/zone IDs. This was based on libcurl's parsing support for IPv6 uris with scope/zone IDs, but that support was added in libcurl v7.37, and some systems we target have an earlier version (e.g. Ubuntu 14.04 uses v7.35 by default). Rather than just saying ""use a newer libcurl"", we can use libcurl's CURLOPT_ADDRESS_SCOPE feature (which has been around for a very long time) to explicitly set the link-local scope ID when it's set, and allow such Uris to be used on older libcurls. cc: @ericeil, @davidsh, @cipop, @mikeharder " +8444 area-System.Net System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol: Tls) failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/994/testReport/junit/System.Net.Http.Functional.Tests/HttpClientHandler_SslProtocols_Test/GetAsync_AllowedSSLVersion_Succeeds_acceptedProtocol__Tls_/ ``` MESSAGE: System.Net.Http.HttpRequestException : An error occurred while sending the request.\n---- System.Net.Http.CurlException : Failure when receiving data from the peer +++++++++++++++++++ STACK TRACE: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.<>c__DisplayClass4_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) ``` This was talking to the loopback server. +8445 area-System.Net Disable two recently added tests These were both added in the last few days and have both failed in CI at least once. cc: @ellismg +8449 area-System.Collections Why ImmutableList throws ArgumentOutOfRange instead of IndexOutOfRange on insertion Why `ImmutableList` throws `ArgumentOutOfRangeException` instead of `IndexOutOfRangeException` when index out of allowed range is passed to `Insert` method? +8450 area-System.Security X509Certificate2.GetECDsaPublicKey fails on UWP https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Windows/X509Pal.PublicKey.cs ``` C# private static ECDsa DecodeECDsaPublicKey(CertificatePal certificatePal) { using (SafeBCryptKeyHandle bCryptKeyHandle = ImportPublicKeyInfo(certificatePal.CertContext)) { ... } } private static SafeBCryptKeyHandle ImportPublicKeyInfo(SafeCertContextHandle certContext) { #if NETNATIVE // CryptImportPublicKeyInfoEx2() not in the UWP api list. throw new PlatformNotSupportedException(); #else ... #endif } ``` +8452 area-System.Net Moving SafeDeleteContext and SafeFreeCredentials to common location SafeFreeCredentials and SafeDeleteContext are used across two native libraries - libssl and System.Net.Security.Native. Moving these two classes a common location. +8453 area-System.Runtime System.Runtime.Loader depends on Net462 "Of all the Microsoft.NETCore.App dependencies only 1 requires something higher than Net46 and that package is System.Runtime.Loader. Why? The reason I ran into this was trying to cross compile a .NET console app between core and net46. To do this I need to target at least 4.6.2, but only for 1 package. It would be nice to know if that is a hard dependency, a nice to have, or a dependency that could be avoided. Repo: dotnet new vi project.json ``` { ""version"": ""1.0.0-*"", ""compilationOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.0-rc2-3002426"" } }, ""frameworks"": { ""netcoreapp1.0"": {}, ""net46"": {} } } ``` dotnet restore dotnet build Expected: dotnet build for .NETFramework,Version=v4.6 succeeds Actual: project.json(7,31): error NU1002: The dependency System.Runtime.Loader 4.0.0-rc2-24018 does not support framework .NETFramework,Version=v4.6. " +8454 area-System.Reflection API difference between ref assembly and actuall assembly `System.Reflection.ParameterInfo` defines a protected constructor in mscorlib, but in the ref assembly `System.Reflection` it does not. This prevents me from inheriting from it. While I suspect this is the very reason this is done... 1. Why change the API contract? 2. Why block me from inheriting (even more so only by ref assembly)? +8455 area-System.Security RSACertificateExtensions.GetRSAPrivateKey() fails on UWP Since 4.2.0-rc3-24105-00, in UWP, calling RSACertificateExtensions.GetRSAPrivateKey() results in: System.TypeLoadException occurred Message=Could not load type 'System.Security.Cryptography.ECDsa' from assembly 'System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Source=System.Security.Cryptography.X509Certificates I see in the package that the runtime changed from netstandard1.4 to 1.6. 4.1.0-rc3-24104 works fine. +8456 area-System.Net Fix HttpClient test hanging on machines with a single core One of the HttpClient client tests hangs on a machine with a single core. xunit by default uses a SynchronizationContext that has N threads to do work, where N defaults to Environment.ProcessorCount. Thus on a single core machine, there's only one thread available to run tests, and if that thread blocks waiting for an async operation that'll schedule work back to that context, it'll deadlock. cc: @davidsh, @bartonjs +8458 area-System.Net IPAddresses returned from System.Net.NetworkInformation are missing ScopeID on OSX and Linux "**Repro Steps** 1. Run the following code, and compare the results to ipconfig/ifconfig: ``` CSharp NetworkInterface.GetAllNetworkInterfaces() .SelectMany(i => i.GetIPProperties().UnicastAddresses) .Select(a => a.Address) .Where(a => a.IsIPv6LinkLocal) .ToList() .ForEach(ip => Console.WriteLine($""IP: {ip}, ScopeId: {ip.ScopeId}"")); ``` **Windows** .NET Core ``` IP: fe80::1234:5678:90ab:cdef%18, ScopeId: 18 IP: fe80::1234:5.6.7.8%15, ScopeId: 15 ``` ipconfig /all ``` Link-local IPv6 Address . . . . . : fe80::1234:5678:90ab:cdef%18(Preferred) ``` **OS X** .NET Core ``` IP: fe80::1, ScopeId: 0 IP: fe80::1234:5678:90ab:cdef, ScopeId: 0 ``` ifconfig ``` inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 inet6 fe80::1234:5678:90ab:cdef%en0 prefixlen 64 scopeid 0x4 ``` **Linux** .NET Core ``` IP: fe80::1234:5468:90ab:cdef, ScopeId: 0 ``` ifconfig ``` eth0 inet6 addr: fe80::1234:5678:90ab:cdef/64 Scope:Link ``` " +8462 area-System.Net Fix handling of ScopeIDs with IPAddresses in NetworkInformation We had the scopeId, we just weren't storing it into the IPAddress. (As with other aspects of NetworkInformation, this is hard to add a test for, but I'm going to add a test to the HttpClient suite that tries to use a link-local Uri with a loopback server, and that will implicitly provide some verification here, as that will only succeed if the scope ID is correct.) Fixes https://github.com/dotnet/corefx/issues/8458 cc: @mellinoe, @ericeil, @mikeharder +8464 area-System.Net Issues with Socket.GetSocketOption for errors on Linux "It seems I've stumbled on some behavior issues with Socket.GetSocketOption. In Npgsql I use a pretty standard pattern for non-blocking socket connect: ``` c# var ep = new IPEndPoint(IPAddress.Parse(""127.0.0.1""), 44444); var socket = new Socket(ep.AddressFamily, SocketType.Stream, ProtocolType.Tcp) { Blocking = false }; try { socket.Connect(ep); } catch (SocketException e) { if (e.SocketErrorCode != SocketError.WouldBlock) throw; } var write = new List { socket }; var error = new List { socket }; Socket.Select(null, write, error, -1); var errorCode = (int)socket.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Error); Console.WriteLine(""First getsockopt: "" + (SocketError)errorCode); if (errorCode != 0) { var second = (int)socket.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Error); Console.WriteLine(""Second getsockopt: "" + (SocketError)second); throw new SocketException(errorCode); } ``` The code above is supposed to fail with a ConnectionRefused since nobody's listening at 44444. On Linux/mono, as well as on Windows/coreclr and Windows/net451 the output of this code is ConnectionRefused from both GetSocketOption invocations. However, on Linux/coreclr I curiously get 111 from the first GetSocketOption, and Success from the second. " +8467 area-System.Net Add HttpClient test with IPv6 Uris Adds support to the loopback server for binding to IPv6 local addresses, then adds a test that uses both ::1 and a link-local address for the current machine. cc: @davidsh, @ericeil, @mellinoe, @mikeharder (Relies on https://github.com/dotnet/corefx/pull/8462; won't pass on Unix until that's merged.) +8468 area-Serialization Fix race condition issue in data contract serializers Use ConcurrentDictionary instead of Dictionary. I ran perf tests a few times to get the comparison before and after the change. Although there are noises in the results no consistent trend of regression is identified. Fix https://github.com/dotnet/corefx/issues/8422 cc: @shmao @SGuyGe @zhenlan +8470 area-System.Net Dispose of the inner HttpClient in HttpWebRequest While browsing through the code recently, I noticed that `HttpWebRequest` uses an `HttpClient` internally, which it does not dispose of afterwards. I made a quick fix to use `using` where the variables were initialized; since they're not saved to fields or anything I'm assuming I don't have to touch the finalizer/Dispose methods of this class. (Also assuming that since `client.SendAsync` is awaited immediately after it is invoked, we don't have to worry about the client being disposed before it finishes sending or anything.) Changes: - Added `using` statements - Indented the code (hence why the diff is so big, try adding ?w=1 to the end of the GitHub URL to unsee whitespace changes) cc @davidsh @stephentoub +8471 area-System.Net Fix translation in GetSocketOption with SocketOptionName.Error On Unix we're currently handing back the underlying errno value from the platform. We need to instead translate that to a SocketError value. Also added a test. Fixes https://github.com/dotnet/corefx/issues/8464 cc: @ericeil, @davidsh, @cipop, @roji +8472 area-System.Net Unhandled exception from SslStream in CI I'm not sure what test this is from, but it's from something in System.Net.Security.Tests http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_release_tst_prtest/1004/consoleText ``` Unhandled Exception: System.InvalidOperationException: This operation is only allowed using a successfully authenticated context. at System.Net.Security.SslState.CheckThrow(Boolean authSucessCheck) at System.Net.Security.SslState.get_SecureStream() at System.Net.Security.SslStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.<>c.b__38_0(Object ) at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.IO.Stream.EndRead(IAsyncResult asyncResult) at System.Net.Security.Tests.DummyTcpServer.OnReceive(IAsyncResult result) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.IO.Stream.ReadWriteTask.System.Threading.Tasks.ITaskCompletionAction.Invoke(Task completingTask) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) at System.Threading.ThreadPoolWorkQueue.Dispatch() ./RunTests.sh: line 198: 61827 Aborted ./corerun xunit.console.netcore.exe System.Net.Security.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests ``` +8479 area-Infrastructure Enable checksumalgorithm:SHA256 for managed code. see https://github.com/dotnet/roslyn/issues/10451 We will need to generate an rsp file for this for now because it isn't exposed in the csc build task. +8480 area-System.Net Add configurable test settings for Http and WebSocket tests Building on the current use of environment variables for passing in test settings, added a common test helper class to allow the http and websocket tests to access alternate test servers. This will help with load balancing and network latency issues which are causing occasional timeouts in CI tests. This will also allow developers to run their own version of the Azure test endpoints. Consolidated the current environment variables used and standardized on a naming format. Fixes #2383. +8482 area-System.Net System.Net.Http surface area on Linux "When compiling the System.Net.Http.Functional tests with projectreferences converted to package dependencies, the build breaks due to differing surface area. I'm testing a temporary fix to opt system.net.http.functional tests out of the projectreference-> package dependency conversion, but these failures should be investigated so that we can reimplement to compile against packages instead of implementation assemblies if desired. This issue is tracking the failures. I'll provide better repro instructions soon. ``` ""D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj"" (Build target) (172) -> (CoreCompile target) -> HttpClientHandlerTest.Timeouts.cs(22,64): error CS1061: 'HttpClientHandler' does not contain a definition for 'ConnectTimeout' and no extension method 'ConnectTimeout' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.Timeouts.cs(34,74): error CS1061: 'HttpClientHandler' does not contain a definition for 'ConnectTimeout' and no extension method 'ConnectTimeout' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.Timeouts.cs(47,25): error CS1061: 'HttpClientHandler' does not contain a definition for 'ConnectTimeout' and no extension method 'ConnectTimeout' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.Timeouts.cs(48,69): error CS1061: 'HttpClientHandler' does not contain a definition for 'ConnectTimeout' and no extension method 'ConnectTimeout' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.Timeouts.cs(58,25): error CS1061: 'HttpClientHandler' does not contain a definition for 'ConnectTimeout' and no extension method 'ConnectTimeout' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.Timeouts.cs(60,79): error CS1061: 'HttpClientHandler' does not contain a definition for 'ConnectTimeout' and no extension method 'ConnectTimeout' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.Timeouts.cs(61,72): error CS1061: 'HttpClientHandler' does not contain a definition for 'ConnectTimeout' and no extension method 'ConnectTimeout' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.Timeouts.cs(71,64): error CS0117: 'HttpClientHandler' does not contain a definition for 'ConnectTimeout' [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.SslProtocols.cs(23,55): error CS1061: 'HttpClientHandler' does not contain a definition for 'SslProtocols' and no extension method 'SslProtocols' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.SslProtocols.cs(39,25): error CS1061: 'HttpClientHandler' does not contain a definition for 'SslProtocols' and no extension method 'SslProtocols' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.SslProtocols.cs(40,49): error CS1061: 'HttpClientHandler' does not contain a definition for 'SslProtocols' and no extension method 'SslProtocols' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.SslProtocols.cs(56,72): error CS1061: 'HttpClientHandler' does not contain a definition for 'SslProtocols' and no extension method 'SslProtocols' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.SslProtocols.cs(73,68): error CS1061: 'HttpClientHandler' does not contain a definition for 'SslProtocols' and no extension method 'SslProtocols' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.SslProtocols.cs(84,60): error CS0117: 'HttpClientHandler' does not contain a definition for 'SslProtocols' [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.SslProtocols.cs(104,60): error CS0117: 'HttpClientHandler' does not contain a definition for 'SslProtocols' [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.SslProtocols.cs(120,60): error CS0117: 'HttpClientHandler' does not contain a definition for 'SslProtocols' [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.MaxResponseHeadersLength.cs(22,49): error CS1061: 'HttpClientHandler' does not contain a definition for 'MaxResponseHeadersLength' and no extension method 'MaxResponseHeadersLength' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.MaxResponseHeadersLength.cs(33,83): error CS1061: 'HttpClientHandler' does not contain a definition for 'MaxResponseHeadersLength' and no extension method 'MaxResponseHeadersLength' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.MaxResponseHeadersLength.cs(45,25): error CS1061: 'HttpClientHandler' does not contain a definition for 'MaxResponseHeadersLength' and no extension method 'MaxResponseHeadersLength' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.MaxResponseHeadersLength.cs(46,50): error CS1061: 'HttpClientHandler' does not contain a definition for 'MaxResponseHeadersLength' and no extension method 'MaxResponseHeadersLength' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.MaxResponseHeadersLength.cs(56,25): error CS1061: 'HttpClientHandler' does not contain a definition for 'MaxResponseHeadersLength' and no extension method 'MaxResponseHeadersLength' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.MaxResponseHeadersLength.cs(58,72): error CS1061: 'HttpClientHandler' does not contain a definition for 'MaxResponseHeadersLength' and no extension method 'MaxResponseHeadersLength' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.MaxResponseHeadersLength.cs(70,64): error CS0117: 'HttpClientHandler' does not contain a definition for 'MaxResponseHeadersLength' [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.MaxConnectionsPerServer.cs(21,52): error CS1061: 'HttpClientHandler' does not contain a definition for 'MaxConnectionsPerServer' and no extension method 'MaxConnectionsPerServer' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.MaxConnectionsPerServer.cs(32,74): error CS1061: 'HttpClientHandler' does not contain a definition for 'MaxConnectionsPerServer' and no extension method 'MaxConnectionsPerServer' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.MaxConnectionsPerServer.cs(47,29): error CS1061: 'HttpClientHandler' does not contain a definition for 'MaxConnectionsPerServer' and no extension method 'MaxConnectionsPerServer' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.MaxConnectionsPerServer.cs(65,29): error CS1061: 'HttpClientHandler' does not contain a definition for 'MaxConnectionsPerServer' and no extension method 'MaxConnectionsPerServer' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.DefaultProxyCredentials.cs(20,73): error CS1061: 'HttpClientHandler' does not contain a definition for 'DefaultProxyCredentials' and no extension method 'DefaultProxyCredentials' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.DefaultProxyCredentials.cs(30,25): error CS1061: 'HttpClientHandler' does not contain a definition for 'DefaultProxyCredentials' and no extension method 'DefaultProxyCredentials' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.DefaultProxyCredentials.cs(31,44): error CS1061: 'HttpClientHandler' does not contain a definition for 'DefaultProxyCredentials' and no extension method 'DefaultProxyCredentials' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.DefaultProxyCredentials.cs(33,25): error CS1061: 'HttpClientHandler' does not contain a definition for 'DefaultProxyCredentials' and no extension method 'DefaultProxyCredentials' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.DefaultProxyCredentials.cs(34,73): error CS1061: 'HttpClientHandler' does not contain a definition for 'DefaultProxyCredentials' and no extension method 'DefaultProxyCredentials' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.DefaultProxyCredentials.cs(52,25): error CS1061: 'HttpClientHandler' does not contain a definition for 'DefaultProxyCredentials' and no extension method 'DefaultProxyCredentials' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] HttpClientHandlerTest.DefaultProxyCredentials.cs(87,29): error CS1061: 'HttpClientHandler' does not contain a definition for 'DefaultProxyCredentials' and no extension method 'DefaultProxyCredentials' accepting a first argument of type 'HttpClientHandler' could be found (are you missing a using directive or an assembly reference?) [D:\A\_work\9\s\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] ""D:\A\_work\9\s\src\System.Net.Security\tests\FunctionalTests\System.Net.Security.Tests.csproj"" (Build target) (190) -> NegotiateStreamTestForUnix.cs(35,34): error CS0103: The name 'File' does not exist in the current context [D:\A\_work\9\s\src\System.Net.Security\tests\FunctionalTests\System.Net.Security.Tests.csproj] NegotiateStreamTestForUnix.cs(36,17): error CS0103: The name 'File' does not exist in the current context [D:\A\_work\9\s\src\System.Net.Security\tests\FunctionalTests\System.Net.Security.Tests.csproj] NegotiateStreamTestForUnix.cs(89,17): error CS0103: The name 'File' does not exist in the current context [D:\A\_work\9\s\src\System.Net.Security\tests\FunctionalTests\System.Net.Security.Tests.csproj] ``` " +8484 area-System.Net Don't cancel all requests when HttpClient disposed on Unix On Unix when an HttpClientHandler is disposed, we cancel all outstanding operations associated with that handler. It turns out this isn't the desired behavior (aka the behavior of WinHttpHandler), which is that we should cancel all outstanding operations that haven't yet published its HttpResponseMessage, but for requests where the HttpResponseMessage has been published, it should remain valid. This commit tweaks the behavior accordingly and adds a test for it. cc: @ericeil, @davidsh, @cipop +8488 area-System.Net If we fail to register a socket file descriptor with kqueue/epoll, throw a more appropriate exception As it turns out, the only circumstance under which these should fail is resource exhaustion, so we can just throw OutOfMemoryException, with InternalException as a fallback in case something unexpected happens. Fixes #7850 @stephentoub +8489 area-System.Security Bring back protected fields for SymmetricAlgorithm ``` C# protected int BlockSizeValue; protected byte[] IVValue; protected byte[] KeyValue; protected KeySizes[] LegalBlockSizesValue; protected KeySizes[] LegalKeySizesValue; protected int KeySizeValue; protected CipherMode ModeValue; protected PaddingMode PaddingValue; ``` There's also `protected int FeedbackSizeValue`; but right now FeedbackSize is out-of-contract; so I'm not sure what the best plan is there. This would be merged back into the existing contract and implementation before RTM, no package version bump. +8490 area-System.Security Bring back protected fields for AsymmetricAlgorithm ``` C# protected int KeySizeValue; protected KeySizes[] LegalKeySizesValue; ``` This would be merged back into the existing contract and implementation before RTM, no package version bump. +8491 area-System.Security Consider adding algorithm-agnostic X509Certificate2.GetPublicKey() and X509Certificate2.GetPrivateKey() A while ago, it was decided to remove these properties from the public contract to encourage people to use the strongly typed extensions: https://github.com/dotnet/corefx/issues/2449#issuecomment-129042445. Though the motivation seems legitimate, this approach leads to very weird code in practice, specially in framework classes that don't need to deal with the concrete algorithm instance, as it ties them to algorithm-specific extensions: - https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/KDev/src/Microsoft.IdentityModel.Tokens/X509SecurityKey.cs#L78 - https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/KDev/src/Microsoft.IdentityModel.Tokens/X509SecurityKey.cs#L102 Is there a chance to bring these properties back? /cc @bartonjs @brentschmaltz +8495 area-Infrastructure Test crashes cross plat don't trigger CI failures in MSBuild While investigating https://github.com/dotnet/corefx/issues/8425, I noticed a case where a test project was failing in CI, but the build was not being marked as an error. The best way to reproduce it may be to just revert the change I'm going to merge to fix this issue and run a CI job or local build. I'm not yet sure where the problems lies. Is the universal runner not flowing the correct exit code back in this case or is MSBuild just dropping it for some reason? +8496 area-System.Net PostLongerContentLengths_UsesChunkedSemantics failed in CI on Windows The handle is invalid http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug/304/consoleText ``` System.Net.Http.Functional.Tests.PostScenarioTest.PostLongerContentLengths_UsesChunkedSemantics(contentLength: 64512) [FAIL] System.Net.Http.HttpRequestException : Error while copying content to a stream. ---- System.IO.IOException : The read operation failed, see inner exception. -------- System.Net.Http.WinHttpException : The handle is invalid Stack Trace: D:\j\workspace\windows_nt_debug88592b53\src\System.Net.Http\src\System\Net\Http\HttpContent.cs(365,0): at System.Net.Http.HttpContent.d__50.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() D:\j\workspace\windows_nt_debug88592b53\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(392,0): at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() D:\j\workspace\windows_nt_debug88592b53\src\System.Net.Http\tests\FunctionalTests\PostScenarioTest.cs(171,0): at System.Net.Http.Functional.Tests.PostScenarioTest.d__22.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\windows_nt_debug88592b53\src\System.Net.Http\tests\FunctionalTests\PostScenarioTest.cs(123,0): at System.Net.Http.Functional.Tests.PostScenarioTest.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() D:\j\workspace\windows_nt_debug88592b53\src\System.Net.Http\src\System\Net\Http\StreamToStreamCopy.cs(171,0): at System.Net.Http.StreamToStreamCopy.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() D:\j\workspace\windows_nt_debug88592b53\src\System.Net.Http\src\System\Net\Http\HttpContent.cs(358,0): at System.Net.Http.HttpContent.d__50.MoveNext() ----- Inner Stack Trace ----- ``` +8497 area-System.Net Remove CurlHandler.ConnectTimeout property I'd added this when bringing properties from WinHttpHandler to CurlHandler in bulk, with the expectation that we might expose them. Since we're not planning on exposing this particular property from HttpClientHandler (turns out it's not very useful in practice), I'm removing it. Related to https://github.com/dotnet/corefx/issues/7623 Closes https://github.com/dotnet/corefx/issues/8181 cc: @davidsh, @ericeil +8498 area-System.Data SqlClient diagnostics Before event should record timestamp The following [logging of the before event for SqlClient diagnostics](https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlClientDiagnosticListenerExtensions.cs#L27-L32) should include a timestamp member. This would be as simple as adding `Timestamp = Stopwatch.GetTimestamp()` to the anonymous type passed into `DiagnosticListener.Write()`. Please assign this issue to me, as I will be making the code change and submitting the pull request (I am the author of the code in question). +8502 area-System.Net Remove WinHttpHandler.ConnectTimeout property It turns out that setting the WinHTTP 'Connect' timeout does nothing. We discovered this because we still got ERROR_WINHTTP_TIMEOUT errors after about 20 seconds even after setting the 'Connect' timeout to INFINITE. We discussed this with the WinHTTP team and they told us that this timeout is essentially deprecated due to performance enhancements in the TCP stack. For the technically curious, here is the explanation. Underneath the 'Connect' timeout is really a set of TCP timeouts related to setting up the socket via the 3-leg SYN/ACK exchange. The TCP timeout is about retransmits with backoff and how many is tried by the winsock stack. The default of these initial packet exchanges is 21 seconds with 2 retransmits (3 overall SYNs) and initial RTO of 3 (3 + 6 + 12). So that explained the timeouts we saw during periods of high network congestion. There is no API exposed in WinHTTP to control those low-level TCP timeouts. And thus it doesn't make any sense to have a 'ConnectTimeout' on the WinHttpHandler class. +8504 area-System.Security Delete CryptoNative_GetStreamSizes Delaying the function removal until 1.1 to allow for a smooth RC2 to RTM upgrade path. +8505 area-System.Net Disable parts of the test build from projectreference->package dependency conversion. Disables System.net.http.functional.tests and system.net.security.functional.tests from the projectreference -> package dependency conversion during the test build. These test libraries have build breaks when targeting Linux using packages due to differing surface area. Further investigation will be required to understand the failures and produce a fix. Opting out of conversion for now unblock our build pipeline. Tracking issue - https://github.com/dotnet/corefx/issues/8482 I'll flesh out the tracking issue with more info soon... /cc @weshaggard @jhendrixMSFT +8507 area-Serialization ReflectionBasedDCS: refactor to avoid concrete adapters in ReflectionXmlFormatReader/Writer https://github.com/dotnet/corefx/pull/8418#discussion_r62722072 +8509 area-System.Net System.Net.IPAddress and IPv6 zone indices "I already reported this issue on mono's bugzilla but since it's mainly a .NET issue, I was redirected here. Here's my original bug entry: https://bugzilla.xamarin.com/show_bug.cgi?id=37724 As per this article (https://en.wikipedia.org/wiki/IPv6_address#Link-local_addresses_and_zone_indices) the syntax of specifying IPv6 zone indices and link-local addresses depends on the platform. On MS Windows the index is determined by the interface number while on Unix-like OS's (including OS X) the interface name (ie. en0) is used. System.Net.IPAddress only has support for specifying the interface the MS Windows way in the form of it's ""ScopeId"" property which is a ""long"". So this causes issues on non-Windows systems and in some cases, specifically where the MS Windows notation is not supported as an alternate way of specifying the interface it renders this class completely useless. Even worse, IPAddress.Parse succeeds in parsing an IP Address with a zone index specified as name (ie. %en0"") but totally ignores/scraps the zone index resulting in a false positive. At least on OS X (can't speak for other Unix or BSD based platforms) one can alternatively specify the zone index using the index of the interface. This is not well known or widely used though and requires finding an interface's index instead of just using it's name. So on platforms where the number-based notation is available but not the default, IPAddress.Parse could be extended to look up the interface index using the System.Net.NetworkInformation.NetworkInterface class. On systems where this ""fallback"" isn't available this wouldn't work though and apart from introducing a new property and adjusting the parsing code I have no suggestion for this scenario. " +8510 area-System.Diagnostics Cleanup dependencies on System.Diagnostics.Contracts Code Contracts are not being maintained in .NET Core and `Debug.Assert` is being used in favor of `Contract.Assert`, yet many CoreFX components still depend on `System.Diagnostics.Contracts` in their implementation. https://github.com/dotnet/corefx/search?l=json&p=1&q=%22System.Diagnostics.Contracts%22&type=Code Could we start removing dependencies on `System.Diagnostics.Contracts` (similar to how most dependencies on `System.Collections.NonGeneric` have been removed) or is there a reason to keep the dependencies the way they are? cc: @weshaggard +8511 area-System.Diagnostics Add the notion of metadata to DiagnosticsSource DiagnosticsSource has been around for a while now and as more sites are instrumented and more listeners come online, it is becoming evident that there is a need for metadata to be provided as part of the system - specifically, the notion of collecting `timestamps`, `duration`, `correlationid` and possibly `stack`, `processid` and `threadid`. These concerns are currently being tracked in an inconsistent manner across the publisher and subscriber code bases and has lead to several problems (i.e. different listeners coming up with different durations or timestamps, correlations not being determined correctly, listening to more events than are needed just to calculate duration, etc). Hence, after seeing issues like #8498 arise, it has been determined that the correct place isn't in the publisher or the subscriber, but most likely in the underlying subsystem - DiagnosticsSource. This issue is to track this discussion and determine the best way to start including this data into the system. Considerations that need to be had are as follows: - Can we get these updates in place before RTM/RTW lockdowns? - Can we make these changes in a non breaking way, given the fact that people are already taking a dependency on DS today? - A possible solution here is to have two subscription methods which listeners can use, listen without metadata (what they would be using today) and listening with metadata. Other solutions are also possible. - Is there the need for the subscribers to dictate which metadata they would like collected (i.e. if no listeners want the stack, then the stack wouldn't be collected)? - Can the system be optimized so that to calculate durations, listener don't have to listen to both the `begin`/`end` events? - To do this work, do we need to take any extra dependencies, and if so does it matter? - Can correlations between `begin`/`end` events be provided in a deterministic way? Obviously given where things are at timing wise with release schedules, we need to see what we think is the right solution and what we can get done in the time we have. Assuming this work is done, we can also go through and cleanup some of the publishers code and simply things greatly. // @vancem @stephentoub (note this should be assigned to @vancem for the time being). +8515 area-Meta Cleanup ApiCompat baseline for 4.6.3+ TargetingPack Also includes APIs from #6936. While enabling ApiCompat for our builds by default https://github.com/dotnet/corefx/pull/8513 we are hitting the following compat errors: netcore50 ``` TypesMustExist : Type 'System.Security.Cryptography.ECDsa' does not exist in the implementation but it does exist in the contract. ``` net463 - I suspect these are planned to go into net463 so it there might not be anything needed except the baseline before the actually exist there. ``` TypesMustExist : Type 'System.Security.Cryptography.ECCurve' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsa.Create(System.Security.Cryptography.ECCurve)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsa.Create(System.Security.Cryptography.ECParameters)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsa.ExportExplicitParameters(System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsa.ExportParameters(System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsa.GenerateKey(System.Security.Cryptography.ECCurve)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsa.ImportParameters(System.Security.Cryptography.ECParameters)' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Security.Cryptography.ECParameters' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Security.Cryptography.ECPoint' does not exist in the implementation but it does exist in the contract. ``` @bartonjs @steveharter +8516 area-System.Runtime ApiCompat issues with System.Runtime.Extensions While enabling ApiCompat by default in our builds https://github.com/dotnet/corefx/pull/8513 we discovered the following compat errors: netstandard15aot ``` MembersMustExist : Member 'System.Environment.Exit(System.Int32)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Environment.GetCommandLineArgs()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Environment.MachineName.get()' does not exist in the implementation but it does exist in the contract. ``` @tarekgh you added that configuration what are the plans for getting correct support for these APIs? +8517 area-System.Net System.Net.InternalException should include more diagnostic info "We throw `System.Net.InternalException` as a kind of ""soft assert"" in the networking code; In DEBUG builds, this will stop the process immediately, while in RELEASE builds this is just an exception, albeit an unexpected one. In DEBUG builds, because we crash immediately, we should be able to reconstruct the state that lead to the exception, in a debugger; but in RELEASE builds this information may be long gone before we get a chance to debug. We should consider enhancing `InternalException` to carry some state info to aid in debugging. " +8518 area-System.Net WinHttpHandler.SslProtocols initially will use OS defaults To support future security improvements, the default value for WinHttpHandler.SslProtocols will use the enum value of .None. This means that no preferred list of protocols is being expressed. And that means to use the best OS defaults. Currently this translates into using: ``` c# Tls10 | Tls11 | Tls12 ``` This list will change over time as platforms adopt newer Tls versions and phase out older versions. +8519 area-System.Net System.Net.Http.Functional.Tests.PostScenarioTest.PostUsingUsingConflictingSemantics_UsesChunkedSemantics failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/1179/testReport/junit/System.Net.Http.Functional.Tests/PostScenarioTest/PostUsingUsingConflictingSemantics_UsesChunkedSemantics_serverUri__https___corefx_net_cloudapp_net_Echo_ashx_/ > MESSAGE: > System.Net.Http.HttpRequestException : An error occurred while sending the request.\r\n---- System.Net.Http.WinHttpException : The operation has been canceled > +++++++++++++++++++ > STACK TRACE: > at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 392 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.PostScenarioTest.d__22.MoveNext() in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http\tests\FunctionalTests\PostScenarioTest.cs:line 171 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.PostScenarioTest.d__16.MoveNext() in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http\tests\FunctionalTests\PostScenarioTest.cs:line 99 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.WinHttpHandler.d__102.MoveNext() in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 843 +8521 area-System.Net Change CurlHandler.SslProtocols default Same change as https://github.com/dotnet/corefx/pull/8518, but for CurlHandler. cc: @davidsh, @ericeil +8522 area-System.Net Fail gracefully if IPAddress.Parse is given an IPv6 address beginning with ':' Fixes #8356. @stephentoub, @CIPop +8523 area-System.Net Add HttpClient e2e test validating SslProtocols.None behavior "See: https://github.com/dotnet/corefx/pull/8518 > useful to have an e2e test validating that if ""None"" is set, Tls12 (at least at this time) is going to be negotiated. The test can check SslStream.SslStream on the new LocalhostServer. " +8526 area-System.Runtime Proposal: Introduce System.Runtime.Loader as a Desktop contract System.Runtime.Loader is the only difference between NET462 and NETCoreApp today, this means that code that is targeting both Desktop and NETCoreApp need to have different code paths. Adding a simple emulator of the APIs on Desktop would suffice a lot of scenarios, certainly those that want to run on NETCoreApp. Previous discussion: #8453 +8530 area-System.Net Fail gracefully if IPAddress.Parse is given an IPv6 address beginning with a single ':' "(This is one of the commits from #8522. I will have to submit the test changes separately, after this change to System.Net.Primitives propagates such that it can be used from the System.Private.Uri tests.) This is to match the Unix behavior with the existing Windows behavior. On Windows (both CLR and CoreFx), `IPAddress.Parse("":1"")` throws `FormatException`. On Unix, we were failing an assert (or throwing `IndexOutOfRangeException`, in release builds). Fixes #8356. @stephentoub, @CIPop " +8531 area-System.Net Remove ActiveIssue for #8356 Removes the ActiveIssue tag for #8356, and reorganizes the tests into [Theory]- based cases. Won't pass CI until #8530 is merged. @stephentoub @CIPop +8535 area-System.Net Use stackalloc in WebUtility + avoid some branching Changes: - Refactor `UrlEncode` to use `stackalloc` if the UTF-8 representation of the input is <= 1024 bytes - Refactored the core of `GetEncodedBytes` to use pointers - Refactored the array-based overload of `GetEncodedBytes` to forward everything to the new pointer-based one - Added plenty of debug asserts to prevent buffer overflows/UB by `fixed` when the input array is null or empty - Avoided branches in `HexToInt` and `IsUrlSafeChar` methods - Added `IsIntBetween` helper method to check whether a given int is between 2 others, without branching - Used it in `IsUrlSafeChar`, `HexToInt`, and some of the `Html*` methods - Another trick: since the difference between `a` (97) and `A` (65) is 32, which is a power of 2, you can use this fact to avoid a branch when checking if a char is a letter (recently found this out in dotnet/coreclr#4881) - [Related StackOverflow question](http://stackoverflow.com/q/37179678/4077294) - Renamed `safeSpecialCharMask` to use Pascal casing as it is const Will post perf measurements as soon as I get the chance, but I wanted to submit a PR for code review/feedback first. cc @hughbe @stephentoub +8537 area-System.Net Add NetworkInterface.LoopbackInterfaceIndex test Fixes https://github.com/dotnet/corefx/issues/7854 cc: @ericeil, @davidsh, @cipop +8538 area-System.Net WinHttpHandler not updating response state with error from server when client supports multiple TLS protocols Might be a test bug. Noticed this while adding HttpClientHandler.SslProtocols property to Windows. System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_DisallowTls10_AllowTls11_AllowTls12 ``` Assert.Throws() Failure Expected: typeof(System.Net.Http.HttpRequestException) Actual: typeof(System.Threading.Tasks.TaskCanceledException): A task was canceled. Stack Trace: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() s:\GitHub\corefx\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(392,0): at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +8539 area-System.Net System.Net.Http 4.1 contract implementation "As per approved #7623, add remaining properties to HttpClientHandler for all platforms. Move pre-existing Unix-only Http tests to run for all platforms. Ensure that ""credentials"" related properties are secure by default and have an initial (default) value of null. " +8540 area-System.Runtime S.R.CS.Unsafe: Adding a Copy(ref T, ref U) overload Right now we support copying from a pointer to a reference, and a reference to a pointer via `Unsafe.Copy`, but not between two references. We should add an overload with the following signature: ``` cs public static class Unsafe { public static void Copy(ref U destination, ref T source); } ``` that copies `sizeof(T)` bytes from `source` to `destination`. Example usages: ``` cs // Reinterpret binary data byte[] array = { 0x01, 0x02, 0x03, 0x04 }; int asInt = 0; Unsafe.Copy(ref asInt, ref array[0]); Assert.Equal(0x04030201, asInt); // Object-to-pointer public unsafe static void* GetCurrentAddress(this object obj) { var result = default(IntPtr); Unsafe.Copy(ref result, ref obj); return result.ToPointer(); } // As-style functionality extended to structs public static ImmutableArray FakeAsImmutable(this T[] array) { var result = default(ImmutableArray); Unsafe.Copy(ref result, ref array); return result; } ``` cc @mellinoe @nietras @jkotas +8541 area-System.Net Determine default value for netcore50 HttpClientHandler.MaxResponseHeadersLength Ref: PR #8539 Determine the proper value to return as the default value of 'MaxResponseHeaderLength'. Unlike WinHTTP which has WINHTTP_OPTION_MAX_RESPONSE_HEADER_SIZE, there is no known default value for WinINet used in WinRT Windows.Web.Http. +8546 area-System.Net Add test verifying HttpClient negotiates Tls12 when None specified Fixes https://github.com/dotnet/corefx/issues/8523 cc: @davidsh, @cipop +8547 area-System.IO FileSystemWatcher Test failure (OSX): WaitForChangedTests.CreatedDeleted_Success http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/1149/consoleText ``` System.IO.Tests.WaitForChangedTests.CreatedDeleted_Success(changeType: Deleted) [FAIL] Assert.Equal() Failure Expected: Deleted Actual: 0 Stack Trace: at System.IO.Tests.WaitForChangedTests.CreatedDeleted_Success(WatcherChangeTypes changeType) ``` +8552 area-System.Net Impossible to create UdpClient on shared port As per the discussion here: https://github.com/dotnet/corefx/pull/5953#issuecomment-219304032 With the removal of `Client` from `UdpClient`, it's now impossible to create a `UdpClient` instance that can listen on a shared port if the port is already in use. The core issue is that the ctor of `UdpClient` creates the socket. The `ExclusiveAddressUse` is a property that evaluates after the ctor, so it's too late. Today, this is accomplished by using the default `UdpClient` ctor, then setting a bunch of options on the socket/client and then calling `udpClient.Client.Bind(localEndpoint)`. This allows for the socket to be setup as a shared socket before binding. We need a way to create a `UdpClient` while specifying exclusive address use is false. One suggestion could be to add another ctor parameter with that flag. Another might be to add a collection of socket options. +8553 area-System.Net Fix WinHttpHandler default cred auth when server offers multiple schemes When a server offers multiple auth schemes, WinHttpHandler is supposed to select the more secure scheme regardless of the order of the authentication headers. So, despite a server offering Basic and Negotitate (in that order), Negotiate would be selected. When using default credentials, however, it was not calling WinHttpSetCredentials(null, null). This resulted in the first scheme offered by the server (Basic) to be attempted. But there were no credentials set and so a 401 resulted. Fix WinHttpHandler so that it will always call WinHttpSetCredentials even with default credentials. This ensures that the selected auth scheme (in this case Negotiate) is used correctly. Revised test configuration instructions. An IHttpModule is used for the test server endpoint to ensure that IIS will put 'Basic' first in the response headers. +8555 area-System.Net Change some System.Net.Requests tests to use LoopbackServer Moved LoopbackServer.cs to Common/tests path. Changed HttpWebResponse test to use LoopbackServer. More tests will be changed to use this server as part of increasing test reliability and simplifying the requirements for the Azure test server. +8556 area-System.Net Change some System.Net.Requests tests to use LoopbackServer Changed HttpWebResponse test to use LoopbackServer. More tests will be changed to use this server as part of increasing test reliability and simplifying the requirements for the Azure test server. +8557 area-Infrastructure [ARM/Linux] Build Failure on ARM Recent commit (9c2f1fe) breaks ARM build. The (len) variable need explicit type conversion to unsigned value. ``` /home/jyoung/git/dotnet/corefx/src/Native/System.Native/pal_networkchange.cpp:63:63: error: comparison of integers of different signs: '__u32' (aka 'unsigned int') and 'ssize_t' (aka 'int') [-Werror,-Wsign-compare] for (nlmsghdr* hdr = reinterpret_cast(buffer); NLMSG_OK(hdr, len); NLMSG_NEXT(hdr, len)) ^~~~~~~~~~~~~~~~~~ /home/jyoung/git/dotnet/rootfs-corefx/arm/usr/include/linux/netlink.h:89:24: note: expanded from macro 'NLMSG_OK' (nlh)->nlmsg_len <= (len)) ~~~~~~~~~~~~~~~~ ^ 1 error generated. ``` ``` 55 ssize_t len; ... SKIP ... 63 for (nlmsghdr* hdr = reinterpret_cast(buffer); NLMSG_OK(hdr, len); NLMSG_NEXT(hdr, len)) ``` ``` 87 #define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \ 88 (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \ 89 (nlh)->nlmsg_len <= (len)) ``` I will post a PR soon. +8560 area-System.Threading missing System.Threading.Thread VolatileRead/VolatileWrite/MemoryBarrier methods or porting documentation Recently I started porting some concurrent data structure to coreclr and I ran into this issue. Maybe I missed some api / documentation / deprecation notices, but the VolatileRead(_), VolatileWrite(_), MemoryBarrier() methods seems missing from System.Threading.Thread class [1]. However the coreclr repo has an implementation [2], and also has some documentation reference [3]. Please note, I am perfectly fine to left out these methods from the api in order to simplify it (in this case could somebody please give me a pointer about these decisions?). [1] https://github.com/dotnet/corefx/blob/master/src/System.Threading.Thread/ref/System.Threading.Thread.cs#L13 [2] https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Threading/Thread.cs#L1477 [3] https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Threading/Volatile.cs#L20 +8567 area-System.Numerics BigInteger.Parse returns bogus value for exponents above 1000 "When parsing a `BigInteger` in exponential form, the FX code artificially limits the exponent to 1000. If a larger exponent than that is found, an exponent of 9999 (!!) is substituted instead. See [FormatProvider.Number.cs, from line 495](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Globalization/FormatProvider.Number.cs#L495) or test it yourself: ``` Console.WriteLine(BigInteger.Parse(""1e+1000"", NumberStyles.AllowExponent).ToString(""E"", CultureInfo.InvariantCulture)); Console.WriteLine(BigInteger.Parse(""1e+1001"", NumberStyles.AllowExponent).ToString(""E"", CultureInfo.InvariantCulture)); ``` > 1.000000E+1000 > > 1.000000E+9999 The explicit coding seems like this was intentional, but it is hard to accept. The behavior is surprising and inconsistent; also, this exponent is not in any way a limit of BigInteger itself, only in the parsing: ``` Console.WriteLine((BigInteger.Parse(""1e+1000"", NumberStyles.AllowExponent) * 10).ToString(""E"", CultureInfo.InvariantCulture)); ``` > 1.000000E+1001 If `BigInteger.Parse` needs to have a limitation (e.g. currently it uses an `int` to store the exponent, so it might need to have a limit around `Int32.MaxValue` until this gets reimplemented), it should probably rather die with a `FormatException` or `NotSupportedException` or somesuch when the limit is reached instead of delivering a completely bogus value. (This was discovered [in a question on StackOverflow](http://stackoverflow.com/a/37195411/304138).) " +8575 area-System.Net Update netcore50 MaxResponseHeadersLength property Windows.Web.Http is built on WinINet. There is no maximum limit (except for out of memory) for received response headers. So, returning 0 (indicating no limit) is appropriate. Fixes #8541. +8576 area-System.Linq Restore the use of reflection methods with binding flags in Linq.Expressions "Reflection used to expose APIs like ``` C# // allocates nothing in steady state return type.GetMethod(name, BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic, ...); ``` In CoreFX the surface was reduced to minimum ""GetMethods() forcing the following solution: ``` C# // allocates array with all methods each time MethodInfo[] methods = type.GetMethods(); foreach (var method in methods) { if (method.IsStatic && method.Name == name) return methods; } ``` The second is wore performance-wise and we should be getting the original API with binding flags back. Make sure that Linq.Expression is switched back to using that API " +8577 area-Microsoft.CSharp Restore the use of reflection methods with binding flags in Microsoft.CSharp "Reflection used to expose APIs like ``` C# // allocates nothing in steady state return type.GetMethod(name, BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic, ...); ``` In CoreFX the surface was reduced to minimum ""GetMethods() forcing the following solution: ``` C# // allocates array with all methods each time MethodInfo[] methods = type.GetMethods(); foreach (var method in methods) { if (method.IsStatic && method.Name == name) return methods; } ``` The second is worse performance-wise and we should be getting the original API with binding flags back. Make sure that Microsoft.CSharp is switched back to using that API " +8581 area-System.Net System.Net.WebSockets.Client.Tests.ClientWebSocketTest.SendAsync__MultipleOutstandingSendOperations_Throws failed in CI On Windows NT Release: System.Net.WebSockets.WebSocketException : Unable to connect to the remote server\r\n---- System.Net.WebSockets.WebSocketException : Unable to connect to the remote server\r\n-------- System.Net.Http.WinHttpException : The operation has been canceled [Details](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/1316/testReport/junit/System.Net.WebSockets.Client.Tests/ClientWebSocketTest/SendAsync__MultipleOutstandingSendOperations_Throws_server__wss___corefx_net_cloudapp_net_WebSocket_EchoWebSocket_ashx_/) +8585 area-Infrastructure Add openSUSE Leap 42.1 Add openSUSE Leap 42.1 to Jenkins CI and release infrastructure +8586 area-System.Net Implement NetworkInterface.Id and .Description on Linux and OSX "These now return the same value as ""Name"" on these platforms, but this value is more useful than simply throwing a `PlatformNotSupportedException`. Previously, `OSXNetworkInterface.Id` was returning the system index of the network interface. This was not particularly useful. Technically, these are implemented via `UnixNetworkInterface`, so future subclasses will also inherit the behavior. @tmds , @CIPop Fixes https://github.com/dotnet/corefx/issues/8297 " +8592 area-System.Runtime IntPtr and UIntPtr should implement the IEquatable interface Both are structs, overload ==, and even have [specialized implementations](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/EqualityComparer.cs#L64-L67) for the default `EqualityComparer`, yet they don't implement `IEquatable` (or override `Equals`). Should we consider making them implement the interface? If there's no particular reason why they shouldn't, then here is the API proposal: ``` cs public struct IntPtr : IEquatable { public bool Equals(IntPtr other); } public struct UIntPtr : IEquatable { public bool Equals(UIntPtr other); } ``` +8593 area-Serialization Perf Improvements on ReflectionReadCollectionCore(). The perf improvements speed up the following performance tests: ``` DeSerializationTest(numberOfRuns: 1000, testType: ListOfInt, testSize: 128) Baseline: 563.00 Fix: 153.00 Diff: -72.82% DeSerializationTest(numberOfRuns: 1000, testType: ListOfInt, testSize: 1024) Baseline: 4610.00 Fix: 1200.00 Diff: -73.97% DeSerializationTest(numberOfRuns: 1, testType: ListOfInt, testSize: 1048576) Baseline:4660.00 Fix: 1270.00 Diff: -72.75% ``` The numbers for baseline/fix indicate the time taken by the tests with/without the fix. +8597 area-System.Data DataTable future? Hi, there is a newly introduced (empty) type System.Data.DataTable in RC2, is this some sort of workaround that will be removed in final, or do you plan to extend it and keep DataTable and related classes as part of the core framework? I am asking because our code similarly to lot of others relies on DataSet / DataTable structures and we need to outline some strategy how to address this or wait. +8598 area-Meta .NET Core compatibility change list Provide a table highlighting all major changes in technology (api, specification etc.) between .NET Framework and .NET Core. Something like: | Change No. | Technology | Change | Public Reference | | --- | --- | --- | --- | | 1 | System.Net.Sockets | API Surface, Async Only | None | | 2 | AppDomains | Removed | Blog - http:// | | 3 | Shutdown | Specification | GitHub #5205 | +8601 area-System.Security Set KeySizeValue directly, rather than doing gymnastics "In the RSA and ECDSA types we do gymnastics to ensure that we can make get_KeySize return ""the correct answer"", even if it isn't ""a legal answer"" per LegalKeySizes. In full .NET Framework this is easily solvable by setting the protected field instead of the property. Since #8571 brought the fields back, we can simplify the code now (once the new packages are introduced... so, tomorrow-ish). " +8603 area-System.Net Add back TcpClient/UdpClient.Client properties to System.Net.Sockets Mainly a cleaned-up revert of https://github.com/dotnet/corefx/pull/5953. cc: @ericeil, @davidsh, @CIPop +8606 area-System.ComponentModel System.ComponentModel.Tests.MemberDescriptorTests.CopiedMemberDescriptorEqualsItsSource test failure http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/1257/testReport/junit/System.ComponentModel.Tests/MemberDescriptorTests/CopiedMemberDescriptorEqualsItsSource/ > Stacktrace > > MESSAGE: > Assert.True() Failure > Expected: True > Actual: False > +++++++++++++++++++ > STACK TRACE: > at System.ComponentModel.Tests.MemberDescriptorTests.CopiedMemberDescriptorEqualsItsSource() +8608 area-System.Collections System.Collections.Immutable should not use ` and + in its file names so source lookup works. Currently in System.Collections.Immutable\src\System\Collections\Immutable there are a number of files that have names like ``` ImmutableHashSet`1+MutationResult.cs ``` which have unusal characters like ` and +. It turns out that these characters cause problem with the Nuget Symbol packages we generate in that they need to be escaped. See the package bin\symbolpkg\System.Collections.*.symbols.nupkg You will see that the special characters are escaped, in the nuget package archive. This in turn confuses the nuget source server. (basically source lookup for these files simply fail). While we could try to push nuget and all downstream components to support ` and + as normal characters, this seems like more trouble than it is worth. System.Collections.Immutable is the only assembly in CoreFX that does this. Thus my recommendation is to simply avoid the problem and reaname the source files to avoid ` and + (very easy). This will have no effect on the assembly, but it will make source code lookup work properly. Thus low cost, useful value. +8610 area-System.IO ZipArchive doesn't verify checksums when decompressing. The Zip specification includes a crc32 for each individual file entry header. When writing a ZipArchive, we calculate this crc32 and include it for each file. When reading/decompressing a ZipArchive, we read this crc32 from the file header but don't ever validate it. We pass the data block to the underlying DeflateStream to decompress then return that deflatestream to the caller. The end result of this is that you can successfully unzip an archive that has potentially invalid data. Changing this behavior would introduce a large number of new errors and breaking changes. This issue is copied from an internal bug report. +8617 area-Infrastructure Desktop System.Globalization test need strong name skip verification entries to run All failing tests Log [here](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_win7_debug/38/) ``` System.IO.FileLoadException : Could not load file or assembly 'System.Globalization.Extensions, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A)\r\n---- System.Security.SecurityException : Strong name validation failed. (Exception from HRESULT: 0x8013141A) +++++++++++++++++++ STACK TRACE: at System.Globalization.Tests.GetStringComparerTests.Compare(String x, String y, String cultureName, CompareOptions options, Int32 expectedWindows, Int32 expectedICU) ----- Inner Stack Trace ----- ``` +8618 area-System.ComponentModel Create lookup table for IsDefault and TypeId System.ComponentModel.TypeDescriptor expects certain attributes(defined in System.ComponentModel.Primitives) to override IsDesfaultAttribute and TypeId from System.Attribute. This is not available on .NET Core, so an interface had been supplied for it instead. This design required the projects to depend on each other rather than the ref assemblies, so this removes that dependency by creating a lookup table that should cover the majority of the cases. Fixes #8050 +8622 area-System.Data DataTable like API in .Net Core `System.Data.DataTable` is present in .Net core as an empty class to complete the interfaces implementation. This issue is to track the work needed to bring in an API to provide DataTable like API in .Net Core. +8623 area-Serialization Fix serialization issue for type with XmlNode[] property XmlSerializer fails to serialize type with XmlNode[] property due to the implementation is not complete yet. This change ports the code path from Desktop to enable the scenario. cc: @shmao @SGuyGe @zhenlan +8624 area-System.ComponentModel Skip failing System.ComponentModel.TypeConverter test This works around #8606 to unblock CI, pending a permanent fix. +8627 area-System.Net HttpClient/WinHttpHandler can't cancel slow response stream reads "Was part of #2165 list items > Register callback on cancellation token to cancel WinHTTP operation for WinHttpRequestStream, WinHttpResponseStream Creating separate issue for this. Cancelling an http request where the response headers arrive slowly works correctly. However, if the response headers arrive fast but the reads from the response body are slow, then the cancellation doesn't really work and still takes a long time. Both HttpClient.Timeout or cancellation token Cancel() doesn't work correctly against the WinHttpResponseStream.ReadAsync() method. ``` c# [Fact] public async Task GetIncludesReadingResponseBody_CancelUsingTimeout_TaskCanceledInShortTime() { var stopwatch = new Stopwatch(); stopwatch.Start(); using (var client = new HttpClient()) { client.Timeout = new TimeSpan(0, 0, 1); Task getResponse = client.GetAsync(s_fastHeadersSlowBodyServer, HttpCompletionOption.ResponseContentRead); try { await getResponse; _output.WriteLine(""GetAsync() success""); } catch (TaskCanceledException) { _output.WriteLine(""TaskCanceledException""); } finally { stopwatch.Stop(); _output.WriteLine(""Time to complete GetAsync(): {0}"", stopwatch.Elapsed.ToString()); } } } [Fact] public async Task GetIncludesReadingResponseBody_CancelUsingToken_TaskCanceledInShortTime() { var stopwatch = new Stopwatch(); stopwatch.Start(); var cts = new CancellationTokenSource(); using (var client = new HttpClient()) { Task getResponse = client.GetAsync(s_fastHeadersSlowBodyServer, HttpCompletionOption.ResponseContentRead, cts.Token); Task ignore = Task.Delay(1000).ContinueWith(_ => { _output.WriteLine(""Calling cts.Cancel() at: {0}"", stopwatch.Elapsed.ToString()); cts.Cancel(); }); try { await getResponse; _output.WriteLine(""GetAsync() success""); } catch (TaskCanceledException) { _output.WriteLine(""TaskCanceledException""); } finally { stopwatch.Stop(); _output.WriteLine(""Time to complete GetAsync(): {0}"", stopwatch.Elapsed.ToString()); } } } [Fact] public async Task ResponseStreamRead_CancelUsingToken_TaskCanceledInShortTime() { var stopwatch = new Stopwatch(); stopwatch.Start(); using (var client = new HttpClient()) using (HttpResponseMessage response = await client.GetAsync(s_fastHeadersSlowBodyServer, HttpCompletionOption.ResponseHeadersRead)) { stopwatch.Stop(); _output.WriteLine(""Time to get headers: {0}"", stopwatch.Elapsed.ToString()); Assert.Equal(HttpStatusCode.OK, response.StatusCode); var cts = new CancellationTokenSource(); Stream stream = await response.Content.ReadAsStreamAsync(); byte[] buffer = new byte[ResponseBodyLength]; Task ignore = Task.Delay(1000).ContinueWith(_ => { _output.WriteLine(""Calling cts.Cancel() at: {0}"", stopwatch.Elapsed.ToString()); cts.Cancel(); }); stopwatch.Restart(); try { await stream.ReadAsync(buffer, 0, buffer.Length, cts.Token); _output.WriteLine(""ReadAsync() success""); } catch (TaskCanceledException) { _output.WriteLine(""TaskCanceledException""); } finally { stopwatch.Stop(); _output.WriteLine(""Time to complete response stream read: {0}"", stopwatch.Elapsed.ToString()); } } } ``` " +8628 area-System.Net Fix hang in OSX NetworkAddressChange implementation Fixes #8066 If the NetworkAddressChanged event is quickly subscribed and unsubscribed, there is a chance we experience a deadlock in the threaded CFRunLoop implementation. It seems that if CFRunLoopStop is called too quickly after CFRunLoopStart is called, we may end up successfully calling CFRunLoopStop without actually terminating the CFRunLoopRun call which has, or is just about to, start. To work around this, I have added a call to CFRunLoopIsWaiting in order to ensure that the call to CFRunLoopRun has happened, and that thread is waiting for messages. This means that, when we finally call CFRunLoopStop, the call to CFRunLoopRun has definitely already begun and we can successfully terminate it. This seems to be entirely a timing issue. With a debug runtime, the tests run a lot slower, and the behavior is never encountered (no hangs). With an optimized runtime, it is much more likely to occur. Without this change, around 1 in 10 test runs would hang on my test laptop. With the change, I am not seeing any hangs, and I have run the tests >1000 times in a row. +8629 area-Serialization 1. Updating for .NET Native; 2. Adding SerializationOption. @shmao @khdang @zhenlan +8630 area-System.ComponentModel Remove dependencies on project references for TypeConverter library This tests are depending on project references instead of the package references. This is fine in CI builds and local builds, but breaks the lab builds. This unblocks the lab builds by disabling all the tests. Once the reference assemblies are updated, the tests can be reenabled. +8631 area-System.Net Fixing ClientCertificate functional tests for Windows 7. Starting with Windows 8, Schannel is not sending the Distinguished Name within the Server Hello record. This list was based on certificates present in the Trusted Root Authorities in Win7 and below: https://technet.microsoft.com/en-us/library/hh831771.aspx#BKMK_Changes2012R2 Adding OS and TRA certificate detection to the test. In order to run all aspects of this test on a Win7 machine, we need the client certificate issuer installed on the test machine in TRA. With this fix, the test will skip validating all aspects on machines without the issuer installed in TRA. Fixing the csproj to be able to build, test and debug from VS. @Priya91 @davidsh PTAL /cc @stephentoub @bartonjs Fixes #8437 +8634 area-Infrastructure Symlinks are causing tests to fail when building on mapped drive "OS: Win10 Repro: - Map network drive to any drive on your PC - clone repo in the mapped drive - build example output: (I'm seeing dozens of similar errors) ``` E:\oss\xml\Tools\tests.targets(180,5): warning MSB3073: The command ""E:\oss\xml\bin/tests/AnyOS.AnyCPU.Debug/System.Run time.Serialization.Json.Tests/dnxcore50/RunTests.cmd E:\oss\xml\packages/"" exited with code -1. [E:\oss\xml\src\System. Runtime.Serialization.Json\tests\System.Runtime.Serialization.Json.Tests.csproj] E:\oss\xml\Tools\tests.targets(189,5): error : One or more tests failed while running tests from 'System.Runtime.Serial ization.Json.Tests' please check log for details! [E:\oss\xml\src\System.Runtime.Serialization.Json\tests\System.Runtim e.Serialization.Json.Tests.csproj] System.Security.Cryptography.Csp.Tests -> E:\oss\xml\bin\Windows_NT.AnyCPU.Debug\System.Security.Cryptography.Csp.Tes ts\System.Security.Cryptography.Csp.Tests.dll Using E:\oss\xml\packages/ as folder for resolving package dependencies. Executing in E:\oss\xml\bin\tests\AnyOS.AnyCPU.Debug\System.Runtime.Serialization.Xml.Tests\dnxcore50\ Hard linking dependent files... Local NTFS volumes are required to complete the operation. ``` " +8636 area-System.Net SendToV4IPEndPointToV6Host_NotReceived failed in CI on OSX http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_release_prtest/1297/consoleText ``` System.Net.Sockets.Tests.DualMode.SendToV4IPEndPointToV6Host_NotReceived [FAIL] Assert.Throws() Failure Expected: typeof(System.TimeoutException) Actual: typeof(System.Net.Sockets.SocketException): Connection refused Stack Trace: at System.Net.Sockets.Socket.SendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP) at System.Net.Sockets.Tests.DualMode.DualModeSendTo_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) ``` +8638 area-Infrastructure Warning when running sync.cmd "When I run sync.cmd now, I get this warning: ``` corefx\dir.traversal.targets(235,3): warning MSB4011: ""corefx\Tools\versioning.targets"" cannot be impor ted again. It was already imported at ""corefx\Tools\Build.Common.targets (96,3)"". This is most likely a build authoring error. This subsequent import will be ignored. [corefx\build.proj] ``` " +8641 area-System.Data IsKey is always null in SqlDataReader.GetColumnSchema() "``` c# using (var cmd = new SqlCommand(""CREATE TABLE data (id INTEGER PRIMARY KEY)"", conn)) cmd.ExecuteNonQuery(); using (var cmd = new SqlCommand(""SELECT id FROM data"", conn)) using (var reader = cmd.ExecuteReader(CommandBehavior.SchemaOnly)) { var columns = reader.GetColumnSchema(); Console.WriteLine(columns[0].IsKey); } ``` " +8643 area-System.Runtime LoadFromAssemblyName_ValidTrustedPlatformAssembly failing in all CentOS runs I assume we're only seeing this on CentOS because we're pulling the latest CoreCLR artifacts on CentOS and not in the other PR legs. e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_debug_tst_prtest/1247/consoleText ``` System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadFromAssemblyName_ValidTrustedPlatformAssembly [FAIL] System.IO.FileLoadException : Could not load file or assembly 'System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Stack Trace: Discovered: System.Runtime.Serialization.Json.Tests at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, String ilPath, String niPath, ObjectHandleOnStack retAssembly) at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath) at System.Runtime.Loader.Tests.CustomTPALoadContext.Load(AssemblyName assemblyName) at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyName(AssemblyName assemblyName) at System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadFromAssemblyName_ValidTrustedPlatformAssembly() ``` +8645 area-System.Data [SQL Server 2005] System.Data.SqlClient: pre-login fails with SSL error even with Encryption=false "Platform : Debian 8 ""Jessie"" Runtime : 1.0.0-preview1-002702,coreclr,x64,linux System.Data.SqlClient : 4.1.0-rc2-24027 ConnectionString : Server=tcp:server.domain.lan,1433;User ID=XXXX;Password=XXXX;Encrypt=False"" An attempt to connect to a Microsoft SQL Server 2005 instance results in the following exception: ``` Project foo (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation. Unhandled Exception: System.Data.SqlClient.SqlException: A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed) ---> System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: size at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) at System.Data.SqlClient.SNI.SslOverTdsStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.<>c.b__39_0(Object ) at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Threading.Tasks.TaskToApm.End[TResult](IAsyncResult asyncResult) at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) --- End of stack trace from previous location where exception was thrown --- at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.SqlClient.SNI.SNITCPHandle.EnableSsl(UInt32 options) at System.Data.SqlClient.SNI.SNIProxy.EnableSsl(SNIHandle handle, UInt32 options) --- End of inner exception stack trace --- at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at ConsoleApplication.Program.Main(String[] args) ``` To me, the error looks as if the `Encrypt=false` just does not get communicated properly in the [`PRELOGIN` packet](https://msdn.microsoft.com/en-us/library/dd357559.aspx) because the exception is the same no matter if I set `Encrypt` to `true` (the default) or `false`. Adding `TrustServerCertificate=true` with the `Encrypt` setting enabled or disabled has no effect. The `Encrypt` setting is parsed as if I specify an invalid value for it, I get an error about it. " +8647 area-System.Xml Port xsd.exe to .NET Core We use xsd.exe to generate C# classes for based on xml schema. At present there is no xsd.exe tool to generate CoreCLR compliant code and hence code generation can not be fully automated as part of the build at the moment. Please let us know plan/timelines around availability of the same. +8652 area-System.ComponentModel Skip failing S.CM.TypeConverter test #8606 can also affect Windows builds, so with this change the test is skipped on all platforms. @stephentoub +8655 area-System.IO .NET should no longer preemptively check for paths being too long "EDIT: See latest list of work items: https://github.com/dotnet/corefx/issues/8655#issuecomment-314969840 We've never been able to get this correct. Historically we've blocked using legitimate paths by trying to guess up front. Across all of the platforms we don't have a rock solid way to know that a path will go over a particular API's limit. On Windows the historical ""limit"" has been MAX_PATH, but not all of the APIs enforce it. In addition, there is an ability to circumvent it for _some_ APIs with extended DOS device syntax (`\\?\`). Even if we did have a list of every API we called and what it supported: 1. That API's support could (and likely will) change 2. The real limits are based on complicated internal details that are difficult, if not impossible, to replicate (see [DOS to NT: A Path's Journey](https://blogs.msdn.microsoft.com/jeremykuhne/2016/05/02/dos-to-nt-a-paths-journey/)) 3. Lower level file systems (CDFS, UDF, NTFS, FAT16, ReFS, etc., etc.) impose their own limits which are nearly impossible to check with reparse points 4. Related to above we already get it wrong with path segments- not all file systems have a max of 255 characters It is particularly problematic with normalization methods that we provide (Path.GetFullPath). Checking there can block legitimate uses with other API's that don't have the limits we are claiming are system wide. PathTooLong should only throw from the actual platform invokes, which we already do. " +8657 area-System.Security Seg fault in System.Security.Cryptography.X509Certificates.Tests.dll on CentOS in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_release_tst_prtest/1252/consoleText ``` ./RunTests.sh: line 208: 41177 Segmentation fault ./corerun xunit.console.netcore.exe System.Security.Cryptography.X509Certificates.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests Finished running tests. End time=18:46:58. Return value was 139 error: One or more tests failed while running tests from ''. Exit code 139. ``` I don't know if this is the same issue @janvorli is already chasing down... +8661 area-System.Collections None of the System.Collections.Generic collections have a ToString override. "It would be very useful to have `ToString` overrides on our generic collections, to make it easier for a user in the debugger to see at a glance what's inside of them. This could probably be mostly implemented in terms of a simple helper method for `IEnumerable` that goes something like this: ``` return string.Join(enumerable.Select(obj => obj == null ? ""null"" : obj.ToString()), "", ""); ``` Any thoughts on this? Good idea? Bad idea? (Please forgive me if the LINQ syntax isn't perfect; I don't do much work with lambdas in C#.) " +8662 area-System.Net WinHttpResponseStream.ReadAsync() ignores cancellation token "(Split from #8627 which contained multiple related bugs) The following code demonstrates the problem. This test server will return response headers quickly. But will take 15 seconds to return response body. We cancel the ReadAsync() after 1 second. But the ReadAsync() task doesn't cancel until the 15 seconds has elapsed. ``` c# [Fact] public async Task ResponseStreamRead_CancelUsingToken_TaskCanceledQuickly() { var stopwatch = new Stopwatch(); stopwatch.Start(); using (var client = new HttpClient()) using (HttpResponseMessage response = await client.GetAsync(s_fastHeadersSlowBodyServer, HttpCompletionOption.ResponseHeadersRead)) { stopwatch.Stop(); _output.WriteLine(""Time to get headers: {0}"", stopwatch.Elapsed.ToString()); Assert.Equal(HttpStatusCode.OK, response.StatusCode); var cts = new CancellationTokenSource(); Stream stream = await response.Content.ReadAsStreamAsync(); byte[] buffer = new byte[ResponseBodyLength]; Task ignore = Task.Delay(new TimeSpan(0,0,1)).ContinueWith(_ => { _output.WriteLine(""Calling cts.Cancel() at: {0}"", stopwatch.Elapsed.ToString()); cts.Cancel(); }); stopwatch.Restart(); await Assert.ThrowsAsync( () => stream.ReadAsync(buffer, 0, buffer.Length, cts.Token)); stopwatch.Stop(); _output.WriteLine(""ReadAsync() completed at: {0}"", stopwatch.Elapsed.ToString()); Assert.True(stopwatch.Elapsed < new TimeSpan(0,0,3), ""Elapsed time should be short""); } } ``` " +8663 area-System.Net HttpClient ignores Timeout and cancellation token for slow response body reads on Windows "(Split from #8627 which contained multiple related bugs) This bug is in the core logic for HttpClient, HttpContent classes and will affect both Windows and *Nix. The following code demonstrates the problem with all of the HttpClient *Async() methods when set to buffer in the response body. This test server will return response headers quickly. But will take 15 seconds to return response body. In these examples, we call GetAsync() and include the option (default) to read in (buffer into memory) the response body as well as response headers. Each test uses a different method to cancel the operation after 1 second. Either the .Timeout property or a cancellation token. In both case, we request cancellation after 1 second. But the GetAsync() task doesn't cancel until the 15 seconds has elapsed. This pattern works on .NET Framework (Desktop). Looking at the Desktop code, it is surprising that it works because the cancellation token passed into `HttpClient.GetAsync` is not actually propagated down thru the stack. The cancellation logic only works on Desktop because of a special internal method used by Desktop HTTP stack (HttpWebRequest). Since we have a different HTTP stack for CoreFx, this doesn't work. ``` c# [ActiveIssue(8663)] [Fact] public async Task GetIncludesReadingResponseBody_CancelUsingTimeout_TaskCanceledInShortTime() { var stopwatch = new Stopwatch(); stopwatch.Start(); using (var client = new HttpClient()) { client.Timeout = new TimeSpan(0, 0, 1); Task getResponse = client.GetAsync(s_fastHeadersSlowBodyServer, HttpCompletionOption.ResponseContentRead); stopwatch.Restart(); await Assert.ThrowsAsync( () => getResponse); stopwatch.Stop(); _output.WriteLine(""GetAsync() completed at: {0}"", stopwatch.Elapsed.ToString()); Assert.True(stopwatch.Elapsed < new TimeSpan(0,0,3), ""Elapsed time should be short""); } } [ActiveIssue(8663)] [Fact] public async Task GetIncludesReadingResponseBody_CancelUsingToken_TaskCanceledInShortTime() { var stopwatch = new Stopwatch(); stopwatch.Start(); var cts = new CancellationTokenSource(); using (var client = new HttpClient()) { Task getResponse = client.GetAsync(s_fastHeadersSlowBodyServer, HttpCompletionOption.ResponseContentRead, cts.Token); Task ignore = Task.Delay(new TimeSpan(0, 0, 1)).ContinueWith(_ => { _output.WriteLine(""Calling cts.Cancel() at: {0}"", stopwatch.Elapsed.ToString()); cts.Cancel(); }); stopwatch.Restart(); await Assert.ThrowsAsync( () => getResponse); stopwatch.Stop(); _output.WriteLine(""GetAsync() completed at: {0}"", stopwatch.Elapsed.ToString()); Assert.True(stopwatch.Elapsed < new TimeSpan(0,0,3), ""Elapsed time should be short""); } } ``` " +8664 area-System.IO Allow other file handle types If using `\\?\` allow handle types via the path constructor that we allow in handle constructors. #187 @zippy1981, @davkean, @ericstj, @ianhays +8665 area-Infrastructure Change dnxcore50 to netcoreapp10 Most existing projects assume dnxcore50 in various ways including the json and csproj. These should all be changed to netcoreapp10 per @ericstj Note that the test scripts for unix (including runtest.sh) assume dnxcore50 being the last folder in the test's bin directory. An attempt was made to use netcoreapp10 for the folder test name for System.Security.Cryptography.OpenSll and .Cng but resulted in various hacks in its respective .csproj. +8668 area-System.Reflection System.Reflection.TargetException.ctor() has different message between Core and Framework While refactoring tests for System.Reflection.TargetException, I found that the [.NET documentation](https://msdn.microsoft.com/en-us/library/system.reflection.targetexception%28v=vs.110%29.aspx) states that the default constructor: > Initializes a new instance of the TargetException class with an empty message and the root cause of the exception. However I'm getting different messages in the exception on the [.NET framework](http://referencesource.microsoft.com/#mscorlib/system/reflection/targetexception.cs,8aea524b98ba77d4) where I get: > Error in the application. and .NET Core, where I get: > Exception of type 'System.Reflection.TargetException' was thrown. What should be the behavior I should test for? +8671 area-Infrastructure Slave went offline (OSX Release Build and Test) ``` Slave went offline during the build 14:40:45 ERROR: Connection was broken: java.io.IOException: Connection aborted: org.jenkinsci.remoting.nio.NioChannelHub$MonoNioTransport@6cd7293e[name=dci-macpro-04] 14:40:45 at org.jenkinsci.remoting.nio.NioChannelHub$NioTransport.abort(NioChannelHub.java:208) 14:40:45 at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:628) 14:40:45 at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) 14:40:45 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 14:40:45 at java.util.concurrent.FutureTask.run(FutureTask.java:262) 14:40:45 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 14:40:45 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 14:40:45 at java.lang.Thread.run(Thread.java:745) 14:40:45 Caused by: java.io.IOException: Connection reset by peer 14:40:45 at sun.nio.ch.FileDispatcherImpl.read0(Native Method) 14:40:45 at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) 14:40:45 at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 14:40:45 at sun.nio.ch.IOUtil.read(IOUtil.java:197) 14:40:45 at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:384) 14:40:45 at org.jenkinsci.remoting.nio.FifoBuffer$Pointer.receive(FifoBuffer.java:136) 14:40:45 at org.jenkinsci.remoting.nio.FifoBuffer.receive(FifoBuffer.java:306) 14:40:45 at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:561) 14:40:45 ... 6 more ``` Found in #8631: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_release_prtest/1337/consoleFull#-1250096032a6fc86e9-18e8-40d3-a876-f39e33df2c41 +8673 area-System.Net HttpClientHandler needs Expect: 100-Continue support to use client certificates fully "Without support for this header, some scenarios are completely broken with no workaround. If you are sending a request to a server over HTTPS which doesn't immediately require a client certificate on the initial handshake and the request entity body is non-trivial in size then the request will always fail. This is because when the server sends the SSL renegotiation request the client has already sent too much data for the server to buffer before it can receive the SSL renegotiation response. If you support HTTP and HTTPS on the same site in IIS, then you can't set certificates to be required, only accepted. When communicating with IIS/HTTP.SYS, 16KB is the amount of data that the client needs to send so that the connection can't be established. The `Expect: 100-Continue` header works around this issue by causing the client to hold off sending the entity body until the server sends a ""100 Continue"" status response. This allows the server to do the SSL renegotiation before it sends the ""100 Continue"" response and the connection/request succeeds. Without full support for this header, client certificates with an entity body > 16KB are going to be a fragile use case depending on server config and client/server latency. " +8675 area-Infrastructure Enabling ARM based builds in corefx CI The current CI code in corefx does not build (cross/native) for ARM architecture. Some commits could break the native part of corefx for Linux ARM (as can be seen here #8557 ). I want to add the code to cross build the native part of corefx for Ubuntu-ARM to prevent such build breaks. I would like to do the same in 2 steps. 1. Add code to enable cross build for Ubuntu ARM to the CI (supporting manual trigger of the CI check). 2. Once this is confirmed to work correctly, change the code to make this check automatically triggered for every PR. I saw the CI script, and have a question regarding where in the script could this change be best accommodated. 1. Adding code to build native corefx (no testing) under the outerloop testing part of the script (lines 319 to 375). 2. Adding code to build native corefx (again, no testing) under the innerloop part of the script (lines 467 to 590). What is the best choice for this change? @mmitche @Priya91 +8677 area-System.Linq ParallelQueryCombinationTests.GetEnumerator_AggregateException test failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_osx_release/40/consoleText ``` System.Linq.Parallel.Tests.ParallelQueryCombinationTests.GetEnumerator_AggregateException(source: ThrowOnFirstEnumeration, operation: Union-Left:Default) [FAIL] Assert.Throws() Failure Expected: typeof(System.AggregateException) Actual: (No exception was thrown) Stack Trace: at System.Linq.Parallel.Tests.AssertThrows.Wrapped[T](Action action) at System.Linq.Parallel.Tests.ParallelQueryCombinationTests.GetEnumerator_AggregateException(Labeled`1 source, Labeled`1 operation) ``` +8679 area-System.ComponentModel Custom Type Converters in Core "Custom Type converters as detailed here: https://msdn.microsoft.com/en-us/library/ayybcxe5.aspx are not working in core. The ConvertFrom() and ConvertTo() methods never get hit but they do work when targetting full CLR. This is how my project.json looks like: `""dependencies"": { ""Newtonsoft.Json"": ""8.0.3"", ""System.ComponentModel.TypeConverter"": ""4.0.1-rc2-24027"" }, ""runtimes"": { ""win7-x64"": { }, ""win7-x86"": { } }, ""frameworks"": { ""netcoreapp1.0"": { ""imports"": ""dnxcore50"", ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.0-rc2-3002702"" }, ""System.Dynamic.Runtime"": ""4.0.11-rc2-24027"", ""System.Runtime.Serialization.Primitives"": ""4.1.1-rc2-24027"" } } }` " +8681 area-System.Threading AsyncLocal is behaving differently after upgraging from DNX "## Steps to reproduce I have the following class: ``` c# namespace MyTested.Mvc.Internal.Caching { using System.Linq; using System.Collections.Generic; #if NET451 using System.Runtime.Remoting.Messaging; using System.Runtime.Remoting; #elif NETSTANDARD1_5 using System.Threading; #endif using Contracts; using Microsoft.Extensions.Caching.Memory; public class MockedMemoryCache : IMockedMemoryCache { #if NET451 private const string DataKey = ""__MemoryCache_Current__""; #elif NETSTANDARD1_5 private static readonly AsyncLocal> МemoryCacheCurrent = new AsyncLocal>(); #endif private readonly IDictionary cache; public MockedMemoryCache() { this.cache = this.GetCurrentCache(); } public int Count => this.cache.Count; public void Dispose() { this.cache.Clear(); } public void Remove(object key) { if (this.cache.ContainsKey(key)) { this.cache.Remove(key); } } public ICacheEntry CreateEntry(object key) { var value = new MockedCacheEntry(key); this.cache[key] = value; return value; } public bool TryGetValue(object key, out object value) { ICacheEntry cacheEntry; if (this.TryGetCacheEntry(key, out cacheEntry)) { value = cacheEntry.Value; return true; } value = null; return false; } public bool TryGetCacheEntry(object key, out ICacheEntry value) { if (this.cache.ContainsKey(key)) { value = this.cache[key]; return true; } else { value = null; return false; } } public IDictionary GetCacheAsDictionary() { return this.cache.ToDictionary(c => c.Key, c => c.Value.Value); } private IDictionary GetCurrentCache() { #if NET451 var handle = CallContext.GetData(DataKey) as ObjectHandle; var result = handle?.Unwrap() as IDictionary; if (result == null) { result = new Dictionary(); CallContext.SetData(DataKey, new ObjectHandle(result)); } return result; #elif NETSTANDARD1_5 var result = МemoryCacheCurrent.Value; if (result == null) { result = new Dictionary(); МemoryCacheCurrent.Value = result; } return result; #endif } } } ``` The following test runs successfully on DNX. Assume that TestServiceProvider always returns the same instanve of MockedMemoryCache and TestHelper just call Dispose, which clears the dictionary. ``` c# [Fact] public void MockedMemoryCacheShouldBeDifferentForEveryCallAsynchronously() { Task .Run(async () => { TestHelper.ClearMemoryCache(); string firstValue = null; string secondValue = null; string thirdValue = null; string fourthValue = null; string fifthValue = null; var tasks = new List { Task.Run(() => { var memoryCache = TestServiceProvider.GetService(); memoryCache.Set(""test"", ""first""); firstValue = TestServiceProvider.GetService().Get(""test""); TestHelper.ClearMemoryCache(); }), Task.Run(() => { var memoryCache = TestServiceProvider.GetService(); memoryCache.Set(""test"", ""second""); secondValue = TestServiceProvider.GetService().Get(""test""); TestHelper.ClearMemoryCache(); }), Task.Run(() => { var memoryCache = TestServiceProvider.GetService(); memoryCache.Set(""test"", ""third""); thirdValue = TestServiceProvider.GetService().Get(""test""); TestHelper.ClearMemoryCache(); }), Task.Run(() => { var memoryCache = TestServiceProvider.GetService(); memoryCache.Set(""test"", ""fourth""); fourthValue = TestServiceProvider.GetService().Get(""test""); TestHelper.ClearMemoryCache(); }), Task.Run(() => { var memoryCache = TestServiceProvider.GetService(); memoryCache.Set(""test"", ""fifth""); fifthValue = TestServiceProvider.GetService().Get(""test""); TestHelper.ClearMemoryCache(); }) }; await Task.WhenAll(tasks); Assert.Equal(""first"", firstValue); Assert.Equal(""second"", secondValue); Assert.Equal(""third"", thirdValue); Assert.Equal(""fourth"", fourthValue); Assert.Equal(""fifth"", fifthValue); }) .GetAwaiter() .GetResult(); } ``` ## Expected behavior The test to pass like it did on DNX. ## Actual behavior After moving to CLI the test started failing with unexpected values like `first` equals `third` and so on. It seems that the internal dictionary is shared between the tasks and it should not be. Maybe I am missing something? Is this expected behavior? If you need more minimalistic example, I can provide one. NOTE: After changing AsyncLocal to ThreadLocal the test passed right away. " +8683 area-System.Threading Thread.Yield not available on CoreClr It is used for example in `SpinWait` etc however it is not exposed publicly in the api - although it is public https://github.com/dotnet/coreclr/issues/5094 +8684 area-System.Security Improve crypto error handling for ECDSA Misc low-priority issues found post code review (elliptic curve support): - Clear native errors in cases where validating oid, and other failure cases where a native crypto exception will not occur (ERR_clear_error) to avoid false exception information - Add [DebuggerDisplay] ECCurve to return the curve oid so we get useful debugger information instead of the default type name semantics (via ToString) - Remove any unused resource strings (one known: Cryptography_UnsupportedEcKeyAlgorithm) +8686 area-System.Security S.S.C.OpenSsl contract does not include ECDSA import/export The contract stayed at netstandard1.4, it needs to be bumped to 1.6 and the new override methods declared. We should do a search across github to find out how prevalent references to this package directly are, but the quick consensus is we should just bump it to 1.6 and not carry around the 1.4 compat version. +8688 area-System.Security Enhance RSA.Create During the API review of #7688 it was decided that to enable better cross-plat authoring we should have Create() methods on the following crypto base classes: ECDsa: Create(), Create(ECCurve), Create(ECParameters) _RSA: Create(), Create(int), Create(RSAParameters)_ ECDiffieHellman: Create(), Create(ECCurve), Create(ECParameters) DSA: Create(), Create(int), Create(DSAParameters) Hopefully all of these make it for net463, and we should have them in .NET Core as well. This specific issue tracks adding the int and RSAParameters create overloads for RSA, and is an offshoot of #8487. +8692 area-System.Net "Add ""FastHeadersSlowBody"" capability to CI-accessible test server" "Ref: Issue #8662 ``` c# // TODO: Issue #X. Move this internal test server capability to Azure test server or Loopback server. private const string FastHeadersSlowBodyHost = ""winrtnet.corp.microsoft.com""; private const int FastHeadersSlowBodyPort = 1337; private const int ResponseBodyReadDelayInMilliseconds = 15000; // 15 seconds. private const int ResponseBodyLength = 1024; private static Uri s_fastHeadersSlowBodyServer = new Uri(string.Format( ""http://{0}:{1}/?slow={2}&length={3}"", FastHeadersSlowBodyHost, FastHeadersSlowBodyPort, ResponseBodyReadDelayInMilliseconds, ResponseBodyLength)); ``` " +8693 area-System.Net Fix cancellation of WinHttpHandler response stream reads Reading from the response stream using ReadAsync() was ignoring the cancellation token passed in. To fix this, registered a delegate that will be called to dispose the WinHTTP request handle during pending I/O. This will cause the WinHTTP operation to cancel. Added tests. For now, left them disabled to be resolved in issue #8692 next week. But wanted to get this fix in asap since it blocks partners for RTM. Fixes #8662. +8695 area-System.ComponentModel Preserve ordering in MemberDescriptor.FilterAttributesIfNeeded Prior code used `Hashtable` to remove duplicates in the `_attributes` array, then reassigned that array with `Hashtable.Values`, sometimes changing the ordering of elements and causing `Equals` to erroneously return false. With this change, duplicates are removed without affecting the order of elements. This fixes #8606. @stephentoub @Tanya-Solyanik @twsouthwick +8700 area-System.Net Restructure IP address parsing tests "- The System.Uri tests were relying on IPAddress.Parse to validate their results. Changed these to hard-code known good results, so we're no longer dependent on IPAddress.Parse to validate System.Uri. - The IPAddress.Parse tests were missing many cases that were covered in the System.Uri tests. Added these cases to the IPAddress tests. - Restructured all of these as ""theories."" - Marked known differences between platforms for various IPAddress.Parse cases. This represents the ""fix"" for most of the platform differences in IPAddress.Parse, which we have decided should simply behave as the underlying platform does. One exception is #8362, which we can still fix by switching from `getaddrinfo` to `inet_aton` on OSX. Closes #8361. Closes #8360. @stephentoub @CIPop " +8701 area-System.Data SqlClient: async command to fetch sequence values hangs connection on Linux "Executing a DbCommand asynchronously with SqlClient can cause the connection to hang on Linux. ### Setup Minimal repro here: [Archive.zip](https://github.com/dotnet/corefx/files/402773/Archive.zip) What this test app does: Create 50 tasks. Each task tries to select a value from a sequence using ExecuteScalarAsync. The important part of this repro: ``` c# using (var conn = new SqlConnection(connStr)) { var command = conn.CreateCommand(); command.CommandText = ""SELECT NEXT VALUE FOR TestSequence""; conn.Open(); await command.ExecuteScalarAsync(); } ``` ### Expected behavior Can retrieve 50 values in parallel for all platforms. It works on Windows 10-x64. ### Actual behavior On Linux, command execution hangs on executescalarasync. Subsequent attempts to open a connection will overwhelm the server until to refuses more connections. A few of the first calls to ExecuteScalarAsync may pass, but with in a few seconds, this simple app crashes as subsequent connections are rejected: ``` System.Data.SqlClient.SqlException : A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server) ``` ### Setup SQL 2014 and SQL 2016 Ubuntu 14.04-x64 System.Data.SqlClient/4.1.0-rc2-24027 Exact same app works on Windows against the exact same database using an identical connection string: `Server=mymachine.com;User ID=user;Password=password;Connect Timeout=30` " +8703 area-System.Data System.Data.SqlClient: System.OverflowException during Prelogin Handshake "During the Sql Client prelogin handshake, it appears the Sql Client does not respect the stream nature of TCP and will fail with _System.OverflowException: Arithmetic operation resulted in an overflow_ if the underlying socket read call returns less bytes than expected. Sample app that repro's the issue: ``` csharp class Program { static void Main(string[] args) { string sqlHost = ""[YourDBHost]""; Task.Factory.StartNew(() => { SetupProxy(sqlHost); }); // Using sleeps to avoid any races... Thread.Sleep(1000); using (SqlConnection conn = new SqlConnection(""Server=localhost,9999;Database=[YourDBName];User ID=sa;Password=[password];Encrypt=False"")) { conn.Open(); Console.WriteLine(""Open succeeds""); } } static void SetupProxy(string actualHost) { // Create listener, wait for client TcpListener listener = new TcpListener(9999); listener.Start(); var client = listener.AcceptTcpClient(); var sqlClient = new TcpClient(actualHost, 1433); // Setup reading and writing proxy Task.Factory.StartNew(() => { ForwardToSql(client, sqlClient); }); Task.Factory.StartNew(() => { ForwardToClient(client, sqlClient); }); } static void ForwardToSql(TcpClient ourClient, TcpClient sqlClient) { while(true) { byte[] buffer = new byte[1024]; int bytesRead = ourClient.GetStream().Read(buffer, 0, 1024); sqlClient.GetStream().Write(buffer, 0, bytesRead); } } static void ForwardToClient(TcpClient ourClient, TcpClient sqlClient) { byte[] buffer; int bytesRead; // Read one byte first to show the issue. // Comment this out to see things work as expected. buffer = new byte[1]; bytesRead = sqlClient.GetStream().Read(buffer, 0, 1); if(bytesRead != 1) { Console.WriteLine(""Failed reading a single byte...""); return; } ourClient.GetStream().Write(buffer, 0, bytesRead); // Now proxy normally. We will sleep for 500ms to make sure that nagling doesn't cause further data to be bundled with this. Thread.Sleep(500); while (true) { buffer = new byte[1024]; bytesRead = sqlClient.GetStream().Read(buffer, 0, 1024); ourClient.GetStream().Write(buffer, 0, bytesRead); } } } ``` " +8704 area-Serialization Setting ReflectionAsBackup as default. @shmao @khdang @zhenlan +8708 area-System.Globalization System.Tests.StringTests.{Starts|Ends}With_NullInStrings failures on CentOS ``` 18:23:43 System.Tests.StringTests.StartsWith_NullInStrings(comparison: CurrentCulture) [FAIL] 18:23:43 Assert.False() Failure 18:23:43 Expected: False 18:23:43 Actual: True 18:23:43 Stack Trace: 18:23:43 at System.Tests.StringTests.StartsWith_NullInStrings(StringComparison comparison) 18:23:43 System.Tests.StringTests.StartsWith_NullInStrings(comparison: CurrentCultureIgnoreCase) [FAIL] 18:23:43 Assert.False() Failure 18:23:43 Expected: False 18:23:43 Actual: True 18:23:43 Stack Trace: 18:23:43 at System.Tests.StringTests.StartsWith_NullInStrings(StringComparison comparison) 18:23:43 System.Tests.StringTests.EndsWith_NullInStrings(comparison: CurrentCulture) [FAIL] 18:23:43 Assert.False() Failure 18:23:43 Expected: False 18:23:43 Actual: True 18:23:43 Stack Trace: 18:23:43 at System.Tests.StringTests.EndsWith_NullInStrings(StringComparison comparison) 18:23:43 System.Tests.StringTests.EndsWith_NullInStrings(comparison: CurrentCultureIgnoreCase) [FAIL] 18:23:43 Assert.False() Failure 18:23:43 Expected: False 18:23:43 Actual: True 18:23:43 Stack Trace: 18:23:43 at System.Tests.StringTests.EndsWith_NullInStrings(StringComparison comparison) 18:23:43 Finished: System.Runtime.Tests 18:23:43 18:23:43 === TEST EXECUTION SUMMARY === 18:23:43 System.Runtime.Tests Total: 5781, Errors: 0, Failed: 4, Skipped: 0, Time: 3.193s ``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_release_tst_prtest/1303/consoleFull#-21371504001f1a4601-6aec-4fd5-b678-78d4389fd5e8 +8712 area-System.Security JwtBearer validation failes on osx but works on windows "_From @hsorbo on May 20, 2016 14:16_ Been struggeling with exceptions porting from rc1 to rc2 on os x. On windows it seems to work, but failes with this on os x. Im using RS256. Am i missing something? ``` info: Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerMiddleware[7] auth0 was not authenticated. Failure message: IDX10503: Signature validation failed. Keys tried: 'Microsoft.IdentityModel.Tokens.X509SecurityKey , KeyId: RkUxNDU0QTg0RTNCRTNEQjk5ODg5MDBGRjIxQTJFQkM0NThBODgwQg '. Exceptions caught: 'System.ArgumentNullException: Value cannot be null. Parameter name: SafeHandle cannot be null. at System.StubHelpers.StubHelpers.SafeHandleAddRef(SafeHandle pHandle, Boolean& success) at Interop.Crypto.RsaVerify(Int32 type, Byte[] m, Int32 m_len, Byte[] sigbuf, Int32 siglen, SafeRsaHandle rsa) at System.Security.Cryptography.RSAOpenSsl.VerifyHash(Byte[] hash, Byte[] signature, HashAlgorithmName hashAlgorithmName) at System.Security.Cryptography.RSAOpenSsl.VerifyHash(Byte[] hash, Byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) at System.Security.Cryptography.RSA.VerifyData(Byte[] data, Int32 offset, Int32 count, Byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) at System.Security.Cryptography.RSA.VerifyData(Byte[] data, Byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) at Microsoft.IdentityModel.Tokens.AsymmetricSignatureProvider.Verify(Byte[] input, Byte[] signature) at System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.ValidateSignature(Byte[] encodedBytes, Byte[] signature, SecurityKey key, String algorithm) at System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.ValidateSignature(String token, TokenValidationParameters validationParameters) ``` The setup code is fairly trivial: ``` app.UseJwtBearerAuthentication(new JwtBearerOptions { AuthenticationScheme = ""auth0"", Audience = Configuration[""Auth0:Audience""], Authority = Configuration[""Auth0:Authority""], AutomaticAuthenticate = true, AutomaticChallenge = true, }); ``` ``` brew info openssl openssl: stable 1.0.2h (bottled) [keg-only] ``` ``` dotnet --version 1.0.0-preview1-002702` ``` ``` uname -a Darwin Macarena.local 15.4.0 Darwin Kernel Version 15.4.0: Fri Feb 26 22:08:05 PST 2016; root:xnu-3248.40.184~3/RELEASE_X86_64 x86_64` ``` _Copied from original issue: aspnet/Security#826_ " +8713 area-System.Net HttpMessageContent - Is this a part of .NET Core? Can I use `HttpMessageContent` with .NET Core. I can't seem to find this class here or anywhere else. Any pointer will be appreciated. +8714 area-System.Net MailMessage and SmtpClient libraries in CoreFx Greetings, I'm using RC1 in production for my web application and it uses .NET Mail Service assemblies for sending mails using MailMessage and SmtpClient. These are only available on .NET Framework, when I'll get these libraries as a part of CoreFx so that I can port my application on .NET Core and avoid using 3rd party libraries. Regards, +8715 area-System.Net HttpRequestHeaders Date header Hello, Proposal: I think Date header in HttpRequestHeaders (and maybe other headers of DateTimeOffset type) must be of new DateTimeHeaderValue type which will be convertible to/from DateTimeOffset and string. Rationale: Many token based authentication schemes require client to send some hash/HMAC of request data. Value of Date header is almost always part of data to be hashed/HMACed. While values of other types of headers (like StringWithQualityHeaderValue) can be get by simply calling ToString() this is not the case for Date. So you'll have to read documentation on how dates are represented in HTTP headers and convert value exactly the same way. Or probably dig into source code of CoreFX to see how it's done. Abstraction leaked the bad way. As a side note, maybe it's good idea to provide type conversion operators for header value types, which will call ToString/Parse internally and ease one's life. +8716 area-System.Security System.Security.Cryptography.Native OSX build errors. My native build on OSX is failing from some compilation errors in the native crypto library. The failures look to be introduced by https://github.com/dotnet/corefx/pull/8600. ``` Scanning dependencies of target System.Security.Cryptography.Native [ 66%] [ 67%] [ 69%] [ 70%] [ 72%] Building CXX object System.Security.Cryptography.Native/CMakeFiles/System.Security.Cryptography.Native.dir/pal_ecc_import_export.cpp.o Building CXX object System.Security.Cryptography.Native/CMakeFiles/System.Security.Cryptography.Native.dir/pal_hmac.cpp.o Building CXX object System.Security.Cryptography.Native/CMakeFiles/System.Security.Cryptography.Native.dir/pal_ssl.cpp.o Building CXX object System.Security.Cryptography.Native/CMakeFiles/System.Security.Cryptography.Native.dir/pal_x509ext.cpp.o Building CXX object System.Security.Cryptography.Native/CMakeFiles/System.Security.Cryptography.Native.dir/pal_x509_root.cpp.o /Users/bryan/git/corefx/src/Native/System.Security.Cryptography.Native/pal_ecc_import_export.cpp:351:14: error: use of undeclared identifier 'EC_KEY_set_public_key_affine_coordinates' if (!EC_KEY_set_public_key_affine_coordinates(*key, qxBn, qyBn)) ^ /Users/bryan/git/corefx/src/Native/System.Security.Cryptography.Native/pal_ecc_import_export.cpp:493:14: error: use of undeclared identifier 'EC_KEY_set_public_key_affine_coordinates' if (!EC_KEY_set_public_key_affine_coordinates(key, qxBn, qyBn)) ^ 2 errors generated. make[2]: *** [System.Security.Cryptography.Native/CMakeFiles/System.Security.Cryptography.Native.dir/pal_ecc_import_export.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... /Users/bryan/git/corefx/src/Native/System.Security.Cryptography.Native/pal_ssl.cpp:80:34: error: use of undeclared identifier 'SSL_OP_NO_COMPRESSION' SSL_CTX_set_options(ctx, SSL_OP_NO_COMPRESSION); ^ /usr/include/openssl/ssl.h:582:39: note: expanded from macro 'SSL_CTX_set_options' SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL) ^ 1 error generated. make[2]: *** [System.Security.Cryptography.Native/CMakeFiles/System.Security.Cryptography.Native.dir/pal_ssl.cpp.o] Error 1 /Users/bryan/git/corefx/src/Native/System.Security.Cryptography.Native/pal_hmac.cpp:33:9: error: cannot initialize a variable of type 'int' with an rvalue of type 'void' int ret = HMAC_Init_ex(ctx.get(), key, keyLen, md, nullptr); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/bryan/git/corefx/src/Native/System.Security.Cryptography.Native/pal_hmac.cpp:56:12: error: cannot initialize return object of type 'int32_t' (aka 'int') with an rvalue of type 'void' return HMAC_Init_ex(ctx, nullptr, 0, nullptr, nullptr); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/bryan/git/corefx/src/Native/System.Security.Cryptography.Native/pal_hmac.cpp:70:12: error: cannot initialize return object of type 'int32_t' (aka 'int') with an rvalue of type 'void' return HMAC_Update(ctx, data, UnsignedCast(len)); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/bryan/git/corefx/src/Native/System.Security.Cryptography.Native/pal_hmac.cpp:86:9: error: cannot initialize a variable of type 'int' with an rvalue of type 'void' int ret = HMAC_Final(ctx, md, &unsignedLen); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 4 errors generated. make[2]: *** [System.Security.Cryptography.Native/CMakeFiles/System.Security.Cryptography.Native.dir/pal_hmac.cpp.o] Error 1 make[1]: *** [System.Security.Cryptography.Native/CMakeFiles/System.Security.Cryptography.Native.dir/all] Error 2 ``` This is on a fresh clone of the CoreFX repo. @steveharter @bartonjs +8718 area-Infrastructure NuGet packages for releases should have more memorable versions "Currently, the package versions for the RC2 release look something like this: | Package | Version | | --- | --- | | Microsoft.NETCore.App | 1.0.0-rc2-3002702 | | NETStandard.Library | 1.5.0-rc2-24027 | | System.Collections | 4.0.11-rc2-24027 | | Microsoft.AspNetCore.Server.Kestrel | 1.0.0-rc2-final | There seem to be three groups: - Microsoft.NETCore.App: rc2-3002702 - CoreFX: rc2-24027 - ASP.NET Core: rc2-final I like the ASP.NET Core approach of marking the release version by ""-final"", while CoreFX and NETCore.App just use a seemingly meaningless number. Would it be possible to use the ""-final"" approach for future releases of CoreFX, NETCore.App and any other .Net Core packages? I think this is especially important since hand-editing project.json seems to be a relatively common practice. " +8719 area-System.Collections BitArray should include shift operators As far as I can tell, BitArray does not currently support shift operators. These would be really useful if they could be implemented efficiently. ### API Proposal For details see https://github.com/dotnet/corefx/issues/8719#issuecomment-221659151 and https://github.com/dotnet/corefx/issues/8719#issuecomment-245046251 ```diff public sealed partial class BitArray : System.Collections.ICollection, System.Collections.IEnumerable { ... + public System.Collections.BitArray RightShift(int count); + public System.Collections.BitArray LeftShift(int count); ... } ``` +8721 area-System.Security ProjectReference -> Package Dependency: cannot convert from 'System.Security.Cryptography.ECCurve' to 'int' A recent change to System.Security.Cryptography.OpenSsl changed the surface area of the library. The result is that if you try to build tests against packages (convert projectrefrence’s into package dependencies), you get a build break. ``` 2016-05-20T07:00:03.3568246Z EcDsaOpenSslProvider.cs(21,37): error CS1503: Argument 1: cannot convert from 'System.Security.Cryptography.ECCurve' to 'int' [D:\A\_work\1\s\src\System.Security.Cryptography.OpenSsl\tests\System.Security.Cryptography.OpenSsl.Tests.csproj] 2016-05-20T07:00:03.3568246Z EcDsaOpenSslTests.cs(250,35): error CS1503: Argument 1: cannot convert from 'System.Security.Cryptography.ECCurve' to 'int' [D:\A\_work\1\s\src\System.Security.Cryptography.OpenSsl\tests\System.Security.Cryptography.OpenSsl.Tests.csproj] 2016-05-20T07:00:03.3568246Z EcDsaOpenSslTests.cs(265,35): error CS1503: Argument 1: cannot convert from 'System.Security.Cryptography.ECCurve' to 'int' [D:\A\_work\1\s\src\System.Security.Cryptography.OpenSsl\tests\System.Security.Cryptography.OpenSsl.Tests.csproj] 2016-05-20T07:00:03.3568246Z EcDsaOpenSslTests.cs(274,35): error CS1503: Argument 1: cannot convert from 'System.Security.Cryptography.ECCurve' to 'int' [D:\A\_work\1\s\src\System.Security.Cryptography.OpenSsl\tests\System.Security.Cryptography.OpenSsl.Tests.csproj] ``` I am creating a PR to disable this library from the conversion until this issue has been resolved. This issue is tracking the problem, and the temporary work-around. /cc @steveharter , @bartonjs +8723 area-Meta Port WCF message security to Core For full WCF support, and compatibility with Mono, WCF needs to bring in Message Security and the myriad of supporting classes around it. Message security enables confidentially, integrity and authentication within the message, rather than relying on the transport, thus enabling end-to-end security through message routers and a wider set of authentication mechanisms which are not limited by transport capabilities. +8724 area-System.IO Disable event filtering on OSX FSW The OSX FileSystemWatcher coalesces past events of a file into new events. Previously we did some special work to try to filter out those extraneous events to better match the FSW inotify/win32 behavior. However, this had the consequence that we filtered out some valid events. This commit modifies the behavior to raise an event for exactly every flag that the OS API sets. It also modifies the OSX tests to no longer assert that an event _didn't_ occur, but to only assert that an event _did_ occur. resolves #8547 +8725 area-System.IO Increase FSW InternalBufferSize test values Seems we're intermittently not hitting the InternalBufferSize capacity in one of our FSW tests. Upping the expected capacity should resolve the issue. @stephentoub resolves #8569 +8726 area-System.IO Special-case FSW tests for Win7 A few of the FSW tests are failing from differences between the win7 FSW behavior and the win8+ FSW behavior. resolves #8436 @stephentoub @Priya91 +8727 area-System.Net UnixDomainSocketEndPoint should set length instead of null-terminating I've used (a copy of) UnixDomainSocketEndPoint to connect to a unix socket with an abstract address (path starts with a zero-byte). The connect call failed with ECONNREFUSED. When I changed the implementation to pass `2 + _encodedPath.Length` instead of `s_nativeAddressSize` in Serialize the connect works. \cc @stephentoub +8731 area-System.Net Remove dead code from System.Net.CredentialCache Remove an internal property on `CredentialCache` that is not used anywhere in CoreFX. In the full framework, the internal property is only used in [two places](http://referencesource.microsoft.com/#System/net/System/Net/CredentialCache.cs,7f6f0db537998048,references), inside `HttpWebRequest` and `SmtpClient`. cc: @davidsh, @CIPop +8735 area-System.Globalization Question: How to get RegionInfo from CultureInfo "In net45 I was using the following code to get the correct region info. ``` var ci = new System.Globalization.CultureInfo(""sv-SE""); var ri = new System.Globalization.RegionInfo(ci.LCID); ``` Is there any way that I can do more or less the same in dotnet-core? The reason is that the Swedish region info (if created from `SE`) is returned the following; that not is the main region information, and need to find correct main region. ``` PS> New-Object system.globalization.regioninfo(""SE"") Name : SE EnglishName : Sweden DisplayName : Sweden NativeName : Ruoŧŧa TwoLetterISORegionName : SE ThreeLetterISORegionName : SWE ThreeLetterWindowsRegionName : SWE IsMetric : True GeoId : 221 CurrencyEnglishName : Swedish Krona CurrencyNativeName : ruvdnu CurrencySymbol : kr ISOCurrencySymbol : SEK ``` If I go with the LCID instead from `CultureInfo(""sv-SE"")` I got the correct main region out. ``` PS> New-Object system.globalization.regioninfo((New-Object system.globalization.cultureinfo(""sv-se"")).LCID) Name : SE EnglishName : Sweden DisplayName : Sweden NativeName : Sverige TwoLetterISORegionName : SE ThreeLetterISORegionName : SWE ThreeLetterWindowsRegionName : SWE IsMetric : True GeoId : 221 CurrencyEnglishName : Swedish Krona CurrencyNativeName : Svensk krona CurrencySymbol : kr ISOCurrencySymbol : SEK ``` " +8736 area-Serialization DCS/DCJS: CultureInfo is not serializable Today, if you try to serialize CultureInfo, you'll get the following error: System.Runtime.Serialization.InvalidDataContractException : Type 'System.Globalization.CompareInfo' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute. Alternatively, you can ensure that the type is public and has a parameterless constructor - all public members of the type will then be serialized, and no attributes will be required. +8742 area-Serialization Reflection Based DCS Bug Fixes: Fixed All Test Failures in NetCore. This PR includes 7 commits fixing 22 failed tests. One commit addressed one issue/bug. It might be easier to review the PR by reviewing each commit separately. /cc: @SGuyGe @khdang @zhenlan +8744 area-System.Net failure in ServerAsyncAuthenticate_AllClientVsIndividualServerSupportedProtocols_Success Details in http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/1552/console on a [PR](https://github.com/dotnet/corefx/pull/8707) that could not possibly cause the issue System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_AllClientVsIndividualServerSupportedProtocols_Success(serverProtocol: Tls11) [FAIL] System.ComponentModel.Win32Exception : The credentials supplied to the package were not recognized Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\Common\src\Interop\Windows\sspicli\SSPIWrapper.cs(232,0): at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SecureCredential scc) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\SslStreamPal.Windows.cs(330,0): at System.Net.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SecureCredential secureCredential) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\SslStreamPal.Windows.cs(126,0): at System.Net.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\SecureChannel.cs(769,0): at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\SecureChannel.cs(901,0): at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\SecureChannel.cs(805,0): at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs(749,0): at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs(955,0): at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs(1131,0): at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs(742,0): at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs(710,0): at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- +8749 area-Infrastructure CoreRun.exe not being copied to test directory when the script is run "Hi, I've recently rebased against the latest changes you guys have made to the repo. When I do a clean build of the repo via ``` cmd build /p:ConfigurationGroup=Release /p:SkipTests=true ``` and then cd to an individual `bin/tests/OS.CPU.Release/Assembly.Tests`, then run the `RunTests` script with `path\to\corefx\packages` as the argument, I get the following output: ``` Using C:\Users\James\Code\git\corefx\packages as folder for resolving package dependencies. Executing in C:\Users\James\Code\git\corefx\bin\tests\AnyOS.AnyCPU.Release\System.Reflection.Tests\dnxcore50\ Hard linking dependent files... Finished linking needed files, moving to running tests. Running tests... Start time: 23:42:38.95 Command(s): CoreRun.exe xunit.console.netcore.exe System.Reflection.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=OuterLoop -notrait category=failing -notrait category=nonwindowstests 'CoreRun.exe' is not recognized as an internal or external command, operable program or batch file. Finished running tests. End time=23:42:38.97, Exit code = 1 ``` Looking into the code of the script, it appears the `CoreRun` executable isn't being copied into the test directory, even though it's still being used. [Here's](https://gist.github.com/jamesqo/66617b7ae005de8e6019cc9de146691e) a gist I made of the script (this particular one is for `System.Runtime.Tests`); if you do a Ctrl + F and search for ""corerun"", you'll notice it's not in one of the dependent files linked in. " +8761 area-System.IO Pipes tests failing on CentOS innerloop - UnauthorizedAccessException : Access to the path '/tmp/.dotnet/corefx' is denied http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/release_1.0.0/job/centos7.1_release_tst_prtest/4/testReport/ MESSAGE: System.UnauthorizedAccessException : Access to the path '/tmp/.dotnet/corefx' is denied.\n---- System.IO.IOException : Permission denied +++++++++++++++++++ STACK TRACE: at System.IO.Pipes.PipeStream.CreateDirectory(String directoryPath) at System.IO.Pipes.PipeStream.EnsurePipeDirectoryPath() at System.IO.Pipes.PipeStream.GetPipePath(String serverName, String pipeName) at System.IO.Pipes.NamedPipeServerStream.Create(String pipeName, PipeDirection direction, Int32 maxNumberOfServerInstances, PipeTransmissionMode transmissionMode, PipeOptions options, Int32 inBufferSize, Int32 outBufferSize, HandleInheritability inheritability) at System.IO.Pipes.Tests.NamedPipeTest_CreateServer.Unix_GetHandleOfNewServerStream_Throws_InvalidOperationException() ----- Inner Stack Trace ----- +8763 area-System.Runtime 300+ test failures with TypeLoadException: Could not load type 'System.Runtime.InteropServices.GCHandle' from assembly 'System.Runtime' "- OS X http://dotnet-ci.cloudapp.net/job/dotnet_coreclr/job/master/job/checked_osx_tst_prtest/1821/testReport/ - Ubuntu http://dotnet-ci.cloudapp.net/job/dotnet_coreclr/job/master/job/checked_ubuntu_tst_prtest/1954/testReport/ Stacktrace MESSAGE: BEGIN EXECUTION /Users/dotnet-bot/j/workspace/dotnet_coreclr/master/checked_osx_tst_prtest/bin/tests/Windows_NT.x64.Checked/Tests/coreoverlay/corerun Pinned.exe Unhandled Exception: System.TypeLoadException: Could not load type 'System.Runtime.InteropServices.GCHandle' from assembly 'System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. ./Pinned.sh: line 106: 61574 Abort trap: 6 $_DebuggerFullPath ""$CORE_ROOT/corerun"" Pinned.exe $CLRTestExecutionArguments Expected: 100 Actual: 134 END EXECUTION - FAILED +++++++++++++++++++ STACK TRACE: " +8768 area-System.Net Restore Socket.ConnectAsync via hostname on *nix platforms. There's a bit of history to this, but due to https://github.com/dotnet/corefx/issues/5829 which was resolved by https://github.com/dotnet/corefx/commit/30bd4b79185d83f269f6a6e432881998a0158178, we are no longer able to use hostnames in socket connections for some platforms. Currently, it's a runtime `PlatformNotSupportedException`. This breaks [StackExchange.Redis](https://github.com/StackExchange/StackExchange.Redis) on at least OS X and Linux, you can see the issue filed here: https://github.com/StackExchange/StackExchange.Redis/issues/410 The best notes for this are in the https://github.com/dotnet/corefx/commit/30bd4b79185d83f269f6a6e432881998a0158178 commit, copied here for ease of consumption: > On unix, once connect fails on a socket, that socket becomes unusable for further operations, including additional connect attempts. This is at direct odds with Socket's instance Connect methods, some of which allow for multiple connect attempts, either due to multiple IPAddresses being provided or due to a string hostname / DnsEndPoint being provided that could then result in multiple IPAddresses to be tried. > > We've explored multiple workarounds for this, all of which have problems. The workaround still in the code involves creating a temporary socket for each address, connecting to it, and if that's successful then immediately disconnecting and connecting with the actual socket. But that causes mayhem for a server not expecting that pattern, e.g. that fails if the client disconnects and attempts a reconnect. > > This leaves us with a few choices, none of which are great: > 1. Remove the offending Connect instance methods. Ideally they'd be replaced with static methods, which can be implemented with POSIX-compliant behavior. But these methods are heavily used and work on Windows. > 2. Always throw from the instance Connect methods when there's a possibility that multiple addresses will be tried, e.g. from Connect(IPAddress[], ...) but also from Connect(EndPoint) if a DnsEndPoint is specified. This will break a lot of existing code, but it's also predictable, and developers will know quickly when using a problematic API and move away from it to supported patterns. > 3. Throw from the Connect methods if multiple addresses are actually supplied, e.g. calling Connect(IPAddress[]) with an array of length 1 would work but an array of length 2 will fail. This will allow a lot more existing code to work, but it's also very unpredictable, e.g. if a string host is provided and gets mapped by DNS to a single IPAddress in the test environment but then multiple IPAddresses in the production environment, everything will work fine locally but then fail in production. > 4. When presented with multiple addresses, try the first one, and if it fails, then throw a PlatformNotSupportedException. This may be slightly more predictable than (3), but is still unpredictable, e.g. if a DNS server returns addresses in a different quantity or order from another server. Currently option 2 is implemented, which breaks this codepath: [`SocketTaskExtensions.ConnectAsync(this Socket socket, string host, int port)`](https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/System.Net.Sockets/src/System/Net/Sockets/SocketTaskExtensions.cs#L60) [`Socket.BeginConnect(string host, int port, AsyncCallback requestCallback, object state)`](https://github.com/dotnet/corefx/blob/c2a6a128a6d2cdbad3a8be663d027152ca9d63bc/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs#L2304) This hits [line 2334](https://github.com/dotnet/corefx/blob/c2a6a128a6d2cdbad3a8be663d027152ca9d63bc/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs#L2334): `ThrowIfNotSupportsMultipleConnectAttempts();` The _exact_ codepath doesn't matter, because several more feed into this one. In fact even if you call [`BeginConnect(EndPoint remoteEP, AsyncCallback callback, object state)`](https://github.com/dotnet/corefx/blob/c2a6a128a6d2cdbad3a8be663d027152ca9d63bc/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs#L2262), it's still calling [`BeginConnect(dnsEP.Host, dnsEP.Port, callback, state);`](https://github.com/dotnet/corefx/blob/c2a6a128a6d2cdbad3a8be663d027152ca9d63bc/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs#L2293) in the host case anyway. So even using the explicit overload of a single endpoint, it still breaks. I would like us to change to option 3 in the comments above, only throwing **for the case that breaks**. The current state needlessly breaks existing code for no real reason. The comments in option 3 about deployments being a surprise break is perfectly valid, but it's no worse than option 2 and we're seeing that break in actual runtime usage already out in the wild. If we can't prevent the issue in general (it looks like all practical options have been exhausted there), I would argue for 2 changes: 1. Only break when multiple endpoints are _actually_ passed in. 2. Provide a much clearer exception message on why we're throwing, [here's a link to the current one](https://github.com/dotnet/corefx/blob/183f7fb0136d8b25f7e0194df4f18930d4199939/src/System.Net.Sockets/src/Resources/Strings.resx#L277). +8771 area-System.Reflection Downgrade S.R.Metadata to v1.2.1 and internalize public surface for NET Core 1.0.0 RTM "The changes under development for S.R.Metadata 1.3 are aligned to the VS ""15"" schedule and there are insufficient resources to lock them down now. We should set the .NET Core 1.0.0 RTM version of System.Reflection.Metadata to 1.2.1 and internalize the features under development for 1.3. We still need a new 1.2.1 package to support the new netstandard scheme for packages. cc @ericstj @tmat I have the change ready. Creating a tracking issue to follow the v1.0.0 change process. " +8773 area-System.IO ReadLinesReader.CreateIterator might not dispose a stream I just discovered [this](https://github.com/dotnet/corefx/blob/538a35ee2e7fe09ea5024ad464cb99331fec0b05/src/System.IO.FileSystem/src/System/IO/ReadLinesIterator.cs#L100) dubious line in the ReadLineIterator. If the StreamReader reader is not null the method still opens a stream but never disposes it or returns it in any way to the caller. This looks wrong to me. This might happen if Clone() is called. I think this should be fixed or a comment should be added explaining why this is the correct behavior. +8779 area-Serialization NetDatacontractSerializer functionality on linux Hi, We are trying to port our codebase to Linux. Right now, we are using NetDatacontractSerializer to send exception over wire as the client doesn't know the type of exception beforehand. Since NetDatacontractSerializer is no longer present in coreclr, we tried using DataContractResolver . However, since type information is not embedded in the serialized object, it throws an exception when we are trying to deserialize. In full CLR, DataContractResolver with dataContractSerializer would've solved the problem. Though DataContractResolver is available in coreCLR, there is no constructor of DataContractResolver using DataContractResolver. Is this the intended behavior. Can you help me out? +8783 area-System.Runtime Interop.mincore.IdnToAscii/IdnToUnicode fails on UWP there are two pinvoke definitions in Interop.Idna.cs which isn't compatible with UWP app. https://github.com/dotnet/corefx/blob/d7d2f7a83269b9540cd9a966338149dcc014171b/src/Common/src/Interop/Windows/mincore/Interop.Idna.cs 1> Compiling interop code 1>c:\users\namc\documents\visual studio 2015\Projects\App2\App2\obj\x86\Release\ilc\intermediate\App2.McgInterop\PInvoke.g.cs(2132,21): error : The best overloaded method match for 'McgInterop.api_ms_win_core_localization_l1_2_0_dll_PInvokes.IdnToUnicode(uint, ushort_, int, ushort_, int)' has some invalid arguments 1>c:\users\namc\documents\visual studio 2015\Projects\App2\App2\obj\x86\Release\ilc\intermediate\App2.McgInterop\PInvoke.g.cs(2136,9): error : Argument 4: cannot convert from 'char_' to 'ushort_' 1>c:\users\namc\documents\visual studio 2015\Projects\App2\App2\obj\x86\Release\ilc\intermediate\App2.McgInterop\PInvoke.g.cs(2231,21): error : The best overloaded method match for 'McgInterop.api_ms_win_core_localization_l1_2_0_dll_PInvokes.IdnToAscii(uint, ushort_, int, ushort_, int)' has some invalid arguments 1>c:\users\namc\documents\visual studio 2015\Projects\App2\App2\obj\x86\Release\ilc\intermediate\App2.McgInterop\PInvoke.g.cs(2235,9): error : Argument 4: cannot convert from 'char_' to 'ushort_' 1>c:\users\namc\documents\visual studio 2015\Projects\App2\App2\obj\x86\Release\ilc\intermediate\App2.McgInterop\PInvoke.g.cs(2289,21): error : The best overloaded method match for 'McgInterop.api_ms_win_core_localization_l1_2_0_dll_PInvokes.IdnToAscii__0(uint, ushort_, int, ushort_, int)' has some invalid arguments 1>c:\users\namc\documents\visual studio 2015\Projects\App2\App2\obj\x86\Release\ilc\intermediate\App2.McgInterop\PInvoke.g.cs(2293,9): error : Argument 4: cannot convert from 'char_' to 'ushort_' 1>c:\users\namc\documents\visual studio 2015\Projects\App2\App2\obj\x86\Release\ilc\intermediate\App2.McgInterop\PInvoke.g.cs(2317,21): error : The best overloaded method match for 'McgInterop.api_ms_win_core_localization_l1_2_0_dll_PInvokes.IdnToUnicode__0(uint, ushort_, int, ushort_, int)' has some invalid arguments 1>c:\users\namc\documents\visual studio 2015\Projects\App2\App2\obj\x86\Release\ilc\intermediate\App2.McgInterop\PInvoke.g.cs(2321,9): error : Argument 4: cannot convert from 'char_' to 'ushort_' +8787 area-Infrastructure OuterLoop: Release builds test with previous build native binaries, causing upgrade failures ``` MESSAGE: System.EntryPointNotFoundException : Unable to find an entry point named 'CryptoNative_EcKeyCreateByOid' in DLL 'System.Security.Cryptography.Native'. +++++++++++++++++++ STACK TRACE: at Interop.Crypto.EcKeyCreateByOid(String oid) at System.Security.Cryptography.ECDsaOpenSsl.GenerateKeyLazy() at System.Lazy`1.CreateValue() at System.Lazy`1.LazyInitValue() at System.Security.Cryptography.ECDsaOpenSsl.DuplicateKeyHandle() at System.Security.Cryptography.OpenSsl.Tests.RsaOpenSslTests.VerifyDuplicateKey_ECDsaHandle() ``` To see full test log [here](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_osx_release/47/#showFailuresLink) +8797 area-System.IO FileStream to fully support externally open files # Proposal Add ``` FileStream(string path, SafeFileHandle handle, FileAccess fileAccess, int bufferSize, bool isAsync) ``` platform independent constructor for externally opened files, when both handle and path are known. # Rationale My case is good support for Transactioned NTFS file stream https://bitbucket.org/triflesoft/nabu/src/c52a39909bab429e4a7ce61fa1432e1d48b09ca9/Sources/Modules/Nabu.Platform.Vista/FileSystem/Streams/TxFileStream.cs where I open file by calling CreateFileTransactedW native API function and know both path and handle, but cannot supply both to constructor and forced to use dirty hack. Maybe there are other similar cases I do not know about. Anyway this is just a few lines of code which will break nothing. So effort is small and risk is absent. +8806 area-System.Runtime Provide API to enumerate assemblies that constitute the application "This has shown up a couple times as a limitation in the Win8-aot .NET profile - .NET Core doesn't provide a way to enumerate assemblies that constitute the ""running application"". Frameworks such as Xamarin Forms need to use [workarounds](https://developer.xamarin.com/guides/xamarin-forms/platform-features/windows/installation/universal/#troubleshooting) to build such lists. It can be up to a debate whether: - We define a new API, or reuse an existing one (`AppDomain.GetAssemblies` with a well defined behavior) - The API returns Assemblies, or string names. - We treat System.Private assemblies specially or not. - Etc. " +8807 area-System.Data AAD Auth (Federated Authenticaion) Support for Azure SQL Database "Please add AAD auth support for Azure SQL Database the way how that' s supported in .NET framework 4.6. We should be able to use Authentication modes like ""Active Directory Integrated"" and ""Active Directory Password"" in the connecting string. Currently, including aforementioned authentication modes result into following error: “Keyword not supported: ‘authentication’ . " +8809 area-System.Net Huge performance issue with HttpClient.PostAsync after upgrade from RC1 to RC2 "This issue related to (_https://github.com/aspnet/JavaScriptServices/issues/92_) We faced some strange issue with `await client.PostAsync` I created sample repository to show what we have here, you can find it [here](https://github.com/laskoviymishka/HttpIssue) To run sample do following steps: 1. Clone repository 2. Run `cd src\WebApplication1 & dotnet restore & dotnet run` 3. Run `cd ..\ConsoleApp1\ & dotnet restore & dotnet run` 4. Check how long it takes to make 20 post api requests To see how it works in classic .net open solution There is 2 console project with really same code, but .netcore version take significant longer. Please notice that stop watch show incorrect amount of time, or may be i log it incorect. Please notice that in RC1 version of _https://github.com/aspnet/JavaScriptServices_ the really same code perform usually for ~50-60 ms. Right not it executed ~1.2-1.5 second. Here is version of dotnet which i use: `.NET Command Line Tools (1.0.0-preview1-002702)` ConsoleApp run for following framework: ``` ""frameworks"": { ""netcoreapp1.0"": { ""imports"": ""dnxcore50"" } } ``` JavaScriptServices for following: ``` ""frameworks"": { ""netcoreapp1.0"": { ""imports"": [ ""dotnet5.6"", ""dnxcore50"", ""portable-net45+win8"" ] } }, ``` This is major issue IMHO. Can anyone advise? May be i miss something? " +8810 area-System.IO Path Too Long Exception Raising here as per: https://github.com/aspnet/FileSystem/issues/193 I'm listing files from an `IFileProvider` by enumerating the files, and filtering based on the file extension. However when accessing `IFileInfo.PhysicalPath` I'm getting a `PathTooLongException` ![image](https://cloud.githubusercontent.com/assets/3176632/15479635/f963432a-2118-11e6-8fb8-5a801bfb7e06.png) I'm using build `1.0.0-rc2-15922` in an ASP.NET 5 RC1 based application. Given that the file exists (on Windows), why should it error when accessing it's path? +8811 area-System.Net SslStream should handle handshake and close_notify alerts At least until 2014, there was a problem with SslStream, where it didn't terminate the connection properly. There is a solution for the problem described on [Stack Overflow: .NET SslStream doesn't close TLS connection properly](http://stackoverflow.com/questions/237807/net-sslstream-doesnt-close-tls-connection-properly). This solution (obviously) doesn't work any more with .NET Core. Is this problem fixed, or do we still need some kind of workaround? +8813 area-System.Data SqlConnection with a blank password leads to NRE The repro code is below `SqlConnectionStringBuilder bldr = new SqlConnectionStringBuilder(); bldr.Password = string.Empty; SqlConnection conn = new SqlConnection(bldr.ConnectionString); ` The above code throws a NullReferenceException when an empty password is set. +8815 area-Infrastructure "Lots of ""CoreRun.exe"" not found issues during CI" I noticed when looking at a test results lots of errors like ``` 14:16:22 System.AppContext -> /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/bin/ref/System.AppContext/4.1.0.0/System.AppContext.dll 14:16:25 /bin/sh: 3: /tmp/tmpe981cd0cc1d24e4dbb12e5d80b2be7eb.exec.cmd: /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/Tools/CoreRun.exe: not found ``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/1490/consoleFull This one, for example, has 319 of these messages. I can't quite tell if this means that the tests aren't running or if it is innocuous. @MattGal is this related to your test runner work? I'm guessing this is coming from https://github.com/dotnet/buildtools/commit/6a824644b18126db086065175226f3f5dd6b4ed8 /cc @weshaggard @joperezr in case they have any ideas. I see Joe previously made a change to tool-runtime to copy corerun to corerun.exe. +8819 area-System.Net WinHttpRequestState memory leak when cancelling requests (reported by ASP.NET team). cc: @DavidObando There is a memory leak of WinHttpRequestState (and related objects) when the outstanding http request is canceled prior to it completing with an HttpResponseMessage. +8821 area-System.Threading Non value returning TaskCompletionSource `TaskCompletionSource` is an easy to use class to use for deferred result returning Tasks controlled via user code; with coverage for exception and cancellation handling. However it would be good to have a non-result returning, non-generic version also e.g. `TaskCompletionSource` with `TrySetResult` => `TrySetCompleted` I often see `TaskCompletionSource` with `TrySetResult(null)` used for this purpose, however that is not very clean. +8835 area-Infrastructure Updating versions of externalpackages in pkg\ExternalPackages\versions.props This PR, https://github.com/dotnet/corefx/pull/8824, is introducing pkg\ExternalPackages\versions.props which we are using to determine version numbers for external packages (System.IO.Compression for example). We need some method (similar to UpdatePackageDependencyVersion), so that we can keep this file up to date w.r.t. the latest stable package version for these packages (perhaps making use of the versions repo). Until that is done, we'll have to be diligent about manually updating this file. :( /cc @jhendrixMSFT @weshaggard @jhendrixMSFT , assigning to you for tracking at the moment... +8839 area-System.Data Unable to load DLL 'sni.dll' I have seen several threads and applied all the solutions but unable to resolve my issue. I am building a simple console application which uses SQL Client for connecting to a database and execute the query in VS 2015 and i am getting this error. I installed visual c++ also for VS 2015 but it didn't solve my issue. What else i can do to resolve this ? P.S I am using .NET core 1.0.0. version +8841 area-Infrastructure Stop pulling live CoreCLR We've been hitting issues left and right recently because some of our jobs pull live CoreCLR bits and that breaks us. We've hit issues due to the mscorlib rename, changes that expose test issues, and the inability to get a consistent mscorlib/coreclr pair because of how we pull from jobs. Windows, OSX and Ubuntu 14.04 consume CoreCLR from packages. It's time that we do the same for the other distros. If we are concerned about trying to get an early read on if CoreCLR changes are going to break CoreFX, there should be tests in CoreCLR that use a LKG test drop and run with a live CoreCLR. +8848 area-System.Linq LinQ GroupBy fails with TResult I have the following Linq Expression (after loading elements from the database): ``` C# var result = memberships.GroupBy( m => m.Role, (role, ms) => new RoleUsage { Role = role, MemberCount = ms.Count(m => m.StructuralUnitId == query.StructuralUnitId), InheritedMemberCount = ms.Count(m => m.StructuralUnitId != query.StructuralUnitId) }).ToList(); ``` Where `memberships` is a `List` of _non null_ `Membership` instances. `Role` and `Membership` are simple classes. Running that Linq will fail with a NullReferenceException in the inner `Count(m => m..)` Expression, since `m` is `null`. We first thought, it would have to do with EF, which loads the `Memberships`, but it's not the case. Appearantly somewhere in Linqs GroupBy something goes wrong, since pointing with the Debugger on `ms` states Powers of 2 in elemt Count, with lots of empty entries. Further Investigation leads to `corefx / src / System.Linq / src / System / Linq / Lookup.cs` and especially `ApplyResultSelector` (Line 240), which applies the result selector to the Elemtents of a Grouping. Unfortunately that `_elements` (Line 253) appearantly contains null entries, which should not be present. +8853 area-System.Console Implement Console support for netcore50 The Windows implementation currently used for netcore50 will fail the WACK check as it calls a number of APIs unsupported by UWP. This commit adds a separate netcore50 build that stubs out the API calls and replaces them with PlatformNotSupportedExceptions or no-ops where appropriate. The result is a platform-agnostic version of System.Console that can be used anywhere but is severely stripped of functionality. - Where possible the behavior of a redirected Console operation will attempt to mimic that of a Unix redirected Console operation. Otherwise it will throw. - Encoding is fixed to UTF8. Attempting to set the Console encoding will no-op. - Added a section in the packaging build for the new netcore50 specific binary - Input/Output redirection and subsequent reads/writes work as expected. Discussion points: - This does not add System.Console to the UWP meta-package. That is mostly because I do not know where the UWP meta-package lives. - This does not redirect Console.WriteLine to Debug or ETW. Those functions currently throw PlatformSupportedException on a non-redirected stdout. I'm going to push an update that special-cases them to call Debug.WriteLine if the Console isn't redirected if we're sure that is the most useful alternative. @ericstj @weshaggard resolves #5875. +8855 area-System.Reflection Any reason System.Reflection.TypeExtensions can also target Profile151 I see no reason why it can't profile 151 when it already targets a lot of similar profiles. +8856 area-System.Data SqlClient high memory consumption when there is disk IO saturation ### Repro environment - Windows 10 - LocalDb - [npm](https://nodejs.org/en/) - loadtest: `npm install -g loadtest` - dotnet 1.0.0-preview2-002823 ### Scenario description Stress test for ASP.NET and Entity Framework. The code is [here](https://github.com/aspnet/Performance/tree/dev/testapp/BasicApi). There's a server side and a client side to the test. For the server side, execute the app with `dotnet run -c Release`. For the client side, execute `.\loadtest.ps1 -iterations 50000 -rps 500` The `-rps 500` part is important, as the issue only manifests itself when disk IO is saturated. ### Observed results Once the test starts running we're reaching disk IO saturation almost immediately. The memory increases dramatically, up to 1 GB in private bytes when loadtest is run with the parameters stated above. After the test is up, we force GC collection once and take some measurements of the managed heap: - Gen 0: 49,440 bytes - Gen 1: 384,344 bytes - Gen 2: 5,178,176 bytes - LOH: 6,375,520 bytes Totalling roughly 12 MB. That said, the application is currently taking 959 MB in total committed memory. I'm assuming then that there's native memory being held. A profile trace of the execution shows that most of the time is being spent in `ReadSniSyncOverAsync`. ### Expected results We expect the memory to not grow as much as it's doing now. ### Notes After forcing GC collection a number of times, we end up bringing the committed memory down to 515 MB and it stabilizes there. The managed heap shrinks from 12 MB to 10 MB. +8857 area-System.Threading Regression threading.NamedMutex.test1 (from (empty)) http://dotnet-ci.cloudapp.net/job/dotnet_coreclr/job/release_1.0.0/job/debug_centos7.1_prtest/11/testReport/junit/threading/NamedMutex/test1/ Stacktrace MESSAGE: 'paltest_namedmutex_test1' failed at line 355. Expression: m != nullptr 'paltest_namedmutex_test1' failed at line 421. Expression: WriteHeaderInfo(BuildGlobalShmFilePath(name, NamePrefix), -1, 0, &fd) 'paltest_namedmutex_test1' failed at line 502. Expression: m != nullptr 'paltest_namedmutex_test1' failed at line 607. Expression: m != nullptr 'paltest_namedmutex_test1' failed at line 248. Expression: parentEvents[i] != nullptr 'paltest_namedmutex_test1' failed at line 629. Expression: InitializeParent(parentEvents, childEvents) 'paltest_namedmutex_test1' failed at line 761. Expression: AbandonTests_Parent() 'paltest_namedmutex_test1' failed at line 234. Expression: WaitForSingleObject(childRunningEvent, FailTimeoutMilliseconds) == WAIT_OBJECT_0 'paltest_namedmutex_test1' failed at line 280. Expression: AcquireChildRunningEvent(childRunningEvent) 'paltest_namedmutex_test1' failed at line 675. Expression: InitializeChild(childRunningEvent, parentEvents, childEvents) +++++++++++++++++++ STACK TRACE: +8860 area-Infrastructure Update CI to use dotnet cli to build Ubuntu16.04 This is a tracking bug, to ensure using dotnet cli packages once available. dotnet/cli#2957 cc @joshfree +8864 area-Infrastructure Improve reliability of official builds. Official builds have been failing for the following reasons in order of severity. 1. Race in the build when building tests with one or more TargetGroups defined. 2. Missing retries when making Azure REST API calls. 3. Missing retries when downloading the CLI. These fixes have been tested and made in master, we need to port them to the release/1.0.0 branch as they are the only known issues causing those builds to fail. +8868 area-System.Net Regression System.Net.Sockets.Tests.DualMode.SendToV4IPEndPointToV6Host_NotReceived (from (empty)) http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/release_1.0.0/job/osx_release_prtest/24/testReport/junit/System.Net.Sockets.Tests/DualMode/SendToV4IPEndPointToV6Host_NotReceived/ Stacktrace MESSAGE: Assert.Throws() Failure\nExpected: typeof(System.TimeoutException)\nActual: typeof(System.Net.Sockets.SocketException): Connection refused +++++++++++++++++++ STACK TRACE: at System.Net.Sockets.Socket.SendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP) at System.Net.Sockets.Tests.DualMode.DualModeSendTo_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) Test failure in PR https://github.com/dotnet/corefx/pull/8863 +8869 area-System.Globalization Regression - 10 CharTests failures in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_release_tst/490/consoleFull#-21371504001f1a4601-6aec-4fd5-b678-78d4389fd5e8 16:33:59 System.Tests.CharTests.IsNumber_String_Int [FAIL] 16:33:59 Assert.False() Failure 16:33:59 Expected: False 16:33:59 Actual: True 16:33:59 Stack Trace: 16:34:00 at System.Tests.CharTests.IsNumber_String_Int() 16:34:00 System.Tests.CharTests.IsLower_String_Int [FAIL] 16:34:00 Assert.False() Failure 16:34:00 Expected: False 16:34:00 Actual: True 16:34:00 Stack Trace: 16:34:00 at System.Tests.CharTests.IsLower_String_Int() 16:34:00 System.Tests.CharTests.IsLower_Char [FAIL] 16:34:00 Assert.False() Failure 16:34:00 Expected: False 16:34:00 Actual: True 16:34:00 Stack Trace: 16:34:00 at System.Tests.CharTests.IsLower_Char() 16:34:00 System.Tests.CharTests.IsNumber_Char [FAIL] 16:34:00 Assert.False() Failure 16:34:00 Expected: False 16:34:00 Actual: True 16:34:00 Stack Trace: 16:34:00 at System.Tests.CharTests.IsNumber_Char() 16:34:00 System.Tests.CharTests.IsDigit_Char [FAIL] 16:34:00 Assert.False() Failure 16:34:00 Expected: False 16:34:00 Actual: True 16:34:00 Stack Trace: 16:34:00 at System.Tests.CharTests.IsDigit_Char() 16:34:00 System.Tests.CharTests.IsLetter_String_Int [FAIL] 16:34:00 Assert.False() Failure 16:34:00 Expected: False 16:34:00 Actual: True 16:34:00 Stack Trace: 16:34:00 at System.Tests.CharTests.IsLetter_String_Int() 16:34:00 System.Tests.CharTests.IsLetterOrDigit_Char [FAIL] 16:34:00 Assert.False() Failure 16:34:00 Expected: False 16:34:00 Actual: True 16:34:00 Stack Trace: 16:34:00 at System.Tests.CharTests.IsLetterOrDigit_Char() 16:34:00 System.Tests.CharTests.IsLetterOrDigit_String_Int [FAIL] 16:34:00 Assert.False() Failure 16:34:00 Expected: False 16:34:00 Actual: True 16:34:00 Stack Trace: 16:34:00 at System.Tests.CharTests.IsLetterOrDigit_String_Int() 16:34:00 System.Tests.CharTests.IsDigit_String_Int [FAIL] 16:34:00 Assert.False() Failure 16:34:00 Expected: False 16:34:00 Actual: True 16:34:00 Stack Trace: 16:34:00 at System.Tests.CharTests.IsDigit_String_Int() 16:34:00 System.Tests.CharTests.IsLetter_Char [FAIL] 16:34:00 Assert.False() Failure 16:34:00 Expected: False 16:34:00 Actual: True 16:34:00 Stack Trace: 16:34:00 at System.Tests.CharTests.IsLetter_Char() 16:34:01 Finished: System.Runtime.Tests 16:34:01 16:34:01 === TEST EXECUTION SUMMARY === 16:34:01 System.Runtime.Tests Total: 5757, Errors: 0, Failed: 10, Skipped: 0, Time: 2.846s 16:34:01 Finished running tests. End time=23:34:38. Return value was 10 +8872 area-Serialization Fixed an Issue in NetNative. Fixed bugs with using GetDataContractFromGeneratedAssembly in NetNative. This unblocked many failed tests in NetNative. +8874 area-Serialization Migrate xmlserializer metadatawriter This is work in progress as part of an attempt to add shim types for Reflection namespace so that we can use MetadataWriter in XmlSerializer. This PR is just for record. +8877 area-System.Net SendToAsyncV4IPEndPointToDualHost_Success timeout on OSX in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/1605/consoleText ``` System.Net.Sockets.Tests.DualMode.SendToAsyncV4IPEndPointToDualHost_Success [FAIL] System.TimeoutException : The operation has timed out. Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest@2/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(1372,0): at System.Net.Sockets.Tests.DualMode.DualModeSendToAsync_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest@2/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(1327,0): at System.Net.Sockets.Tests.DualMode.SendToAsyncV4IPEndPointToDualHost_Success() ``` +8880 area-Infrastructure Code coverage broken recently Code coverage doesn't seem to be working anymore (I think after dnxcore50 -> netcoreapp1.0). ## Steps to reproduce - Clone the repo - Initialize build tools - Navigate to a test project (e.g. System.Collections.NonGeneric) - Run `msbuild /T:BuildAndTest /P:Coverage=true` ## Expected - ~100% code coverage ## Actual - 0% code coverage reported ![untitled](https://cloud.githubusercontent.com/assets/1275900/15567682/8c1a36a8-231f-11e6-836f-fc9f79f85cfd.png) /cc @ericstj +8883 area-System.Console Console Title test should run in separate process. Modifying the Title of the test process in Outerloop is prone to failure. Moving it to its own process is a bit safer. probably resolves #6223. I'll have to keep an eye on the win10 outerloop runs to verify this. They pass without issue locally. +8884 area-System.Net Delay HttpResponseMessage publishing in CurlHandler until all request data sent "libcurl uses a callback model, where it asks for request data when it wants to send it and passes back response information as it's received. It doesn't enforce any significant constraints on top of this, such that if a server sends response headers and even body before all of the request information has been received, libcurl will dutifully pass that data back to the application as it's received. CurlHandler responses to receiving response body data by completing the SendAsync with the HttpResponseMessage, which means it can complete this task after receiving all response headers but in some cases before all of the request data has been sent. This can actually be beneficial for some scenarios, however with the current HttpClient implementation, it can cause a problem: the request message is Dispose'd of as soon as the SendAsync Task completes, which means HttpClient might dispose of the request message while we're still trying to send data from it. There are two high-level solutions here: 1. Stop always disposing of the request message when SendAsync completes, leaving such disposal up to the consumer (or moving the responsibility to the handler), and state that it's allowed for a handler to complete the SendAsync task when all response headers have been received even if all request data has not yet been sent. 2. Force CurlHandler to not complete the SendAsync task until all request data has been sent, even if the response headers were completed before then. While in the future I would like to see us go with (1), as it opens up additional scenarios and simplifies this implementation, a decision was made to go with (2) for now. This PR implements that. There are two commits: - The first commit adds a bunch of additional tracing. This was beneficial in tracking down the cause of the original problem as seen in some WCF workloads, and it's useful to check it in to help with future investigations. - The second commit adds the completion delay to SendAsync. This is done primarily in the routine that's used to complete the SendAsync task and publish the response message: it now keeps track of whether it was previously invoked, and if it wasn't, it proceeds to do the publishing... but if a copy operation is still in progress, rather than doing the publishing directly, it hooks up a continuation to the copy task so that the publishing will be done when the copy completes. It also disables the ""Expect: 100-continue"" header that libcurl uses with posts by default, as otherwise libcurl may decide in certain situations not to send the payload, and if we've already kicked off the copy operation, we could end up hanging until the operation times out (such hanging is the biggest risk with this change). I also added several additional tests. cc: @davidsh, @ericeil, @mconnew, @KKhurin, @bartonjs Fixes https://github.com/dotnet/wcf/issues/1211 " +8887 area-Serialization Fixed issues in NetNative. Fixes all the places where we use GetDataContractFromGeneratedAssembly. +8890 area-System.Net Parsing /etc/resolv.conf throws exception when iterating network interfaces The default generated /etc/resolve.conf for a docker container causes enumeration of network interfaces to throw because the file does not end with a newline. ``` hexdump -C /etc/resolv.conf 00000000 0a 6e 61 6d 65 73 65 72 76 65 72 20 38 2e 38 2e |.nameserver 8.8.| 00000010 38 2e 38 0a 6e 61 6d 65 73 65 72 76 65 72 20 38 |8.8.nameserver 8| 00000020 2e 38 2e 34 2e 34 |.8.4.4| 00000026 ``` stacktrace ``` Unhandled Exception: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: startIndex at System.String.LastIndexOf(Char value, Int32 startIndex, Int32 count) at System.IO.RowConfigReader.TryGetNextValue(String key, String& value) at System.Net.NetworkInformation.StringParsingHelpers.ParseDnsAddressesFromResolvConfFile(String filePath) at System.Net.NetworkInformation.UnixIPInterfaceProperties.GetDnsAddresses() at System.Net.NetworkInformation.UnixIPInterfaceProperties..ctor(UnixNetworkInterface uni) at System.Net.NetworkInformation.LinuxIPInterfaceProperties..ctor(LinuxNetworkInterface lni) at System.Net.NetworkInformation.LinuxNetworkInterface..ctor(String name) at System.Net.NetworkInformation.LinuxNetworkInterface.GetOrCreate(Dictionary`2 interfaces, String name) at System.Net.NetworkInformation.LinuxNetworkInterface.<>c__DisplayClass5_0.b__2(String name, LinkLayerAddressInfo* llAddr) at Interop.Sys.EnumerateInterfaceAddresses(IPv4AddressDiscoveredCallback ipv4Found, IPv6AddressDiscoveredCallback ipv6Found, LinkLayerAddressDiscoveredCallback linkLayerFound) at System.Net.NetworkInformation.LinuxNetworkInterface.GetLinuxNetworkInterfaces() ``` /cc @mellinoe +8894 area-System.Net Move HTTP request content disposal responsibility to handlers Alternate to https://github.com/dotnet/corefx/pull/8884. Same core problem, but rather than addressing it by making CurlHandler artificially delay the SendAsync task's completion until all request data has been sent, it allows for that case and instead moves the responsibility for disposing of the request content from HttpClient to the handler. The first commit here is the same as in the other PR and simply adds a bunch of tracing (a small amount of that made it into the second PR as well). cc: @davidsh, @ericeil, @mconnew, @KKhurin, @bartonjs Partially addresses dotnet/wcf#1211. +8895 area-System.IO System.IO.Stream.Close() behavior issues "So normally you would think Dispose() does the same job including writing out the file to disk. It turns out there is one extra case. Space for the file is not guaranteed to have been allocated until calling close() or CloseHandle() and may not in fact exist. This means that writing a file swallows knowledge of certain errors that should be thrown. Close() must throw to catch write errors Dispose() must _not_ throw to avoid problems with using() {} blocks. In effect Dispose() is { try { Cose(); } catch (IOException){}} (omitting certain details of the dispose pattern for clarity) The code to replace a file safely was: using (f = new System.IO.FileStream(""name~"", ...) { /\* write contents */ f.Close(); } System.IO.Move(""name~"", ""name""); But now that doesn't work because Close() can't be there to error out. Adding it to just FileStream() doesn't help all that much. I have many occasions to do new MyStream1(new MyStream2(new GzipOutputStream(new FileStream(...)))); " +8899 area-Infrastructure Enable ApiCompat on Linux I am disabling this because it is broken presently and the breaks will cause problems when MSBuild actually starts to catch them. We need to fix up the problems (there are some file casing issues that need to be tracked down). +8908 area-Infrastructure Improve the CoreFX test runner Print out the detail information about discovered, passed or failed test case counts. And catch a ctrl-c event and stop the execution and print the results. I will post PR soon. +8910 area-System.Runtime Question: Is there any way to get all types from all loaded assemblies? Hi. In our solution we are during startup scanning all loaded assemblies (AppDomain.CurrentDomain.GetAssemblies()) and fetching all types and depend on custom attributes register the classes in different factories and/or ServiceProvider. When I tried to use netstandard as TFM I didn't find a way to get the assembly. I was trying with the DependencyContext that I found in some other issue that was possible to use to find all dependencies. Does it exists any simplier way to get the loaded assemblies then check all dependencies from DependencyContext and manually load them? +8912 area-System.Console Console.ReadKey returns escape sequence instead of expected key on Ubuntu 14.04 Code snippit: ``` while (true) { var key = Console.ReadKey(true).Key; Console.WriteLine(key); } ``` Pressing the right and left arrow outputs: ``` Escape C Escape D ``` Expected output: ``` RightArrow LeftArrow ``` +8913 area-System.ComponentModel FileExtensionsAttribute always says invalid "Hello, i have a property that the model always says is invalid, i have tried to not put any extensions only with `[FileExtensions]` but doesnt work, only works if i dont put the attribute, what i have is this. ``` [FileExtensions(Extensions = ""png"")] public IFormFile Property { get; set; } ``` " +8916 area-System.IO WaitForChangedTests.Changed_Success failed on Unix in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/1619/consoleText ``` System.IO.Tests.WaitForChangedTests.Changed_Success [FAIL] Assert.Equal() Failure Expected: Changed Actual: 0 Stack Trace: /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/src/System.IO.FileSystem.Watcher/tests/FileSystemWatcher.WaitForChanged.cs(173,0): at System.IO.Tests.WaitForChangedTests.Changed_Success() ``` +8919 area-System.Net Improve tracing in CurlHandler While debugging some HttpClient issues, I needed more tracing in CurlHandler. It's useful to check this in to help with future investigations. This is the same changes as from: https://github.com/dotnet/corefx/pull/8894 https://github.com/dotnet/corefx/pull/8884 as I'd like to get these tracing changes merged without first resolving what to do with those changes. cc: @bartonjs, @ericeil (you guys already reviewed these changes as part of that other commit) +8920 area-System.Runtime Add mono detection to RuntimeInformation Currently the RuntimeInformation class has a FrameworkDescription which will display `.NET Framework 4.0.0.0` on Mono. There should be a different value for Mono so that is easier to tell if you are running on Mono +8921 area-Serialization Fixing regression of KeyValuePair test in CodeGenOnly mode. @shmao @zhenlan @khdang +8923 area-System.Net Port to release/1.0.0: Improve tracing in CurlHandler Porting #8919 to release/1.0.0 branch +8924 area-System.IO IsolatedStorageFileStream no longer derives from FileStream... The base implementation was changed and the class name wasn't updated. https://github.com/dotnet/corefx/blob/master/src/System.IO.IsolatedStorage/src/System/IO/IsolatedStorage/IsolatedStorageFileStream.cs +8926 area-System.Net System.Net.Http.Functional.Tests randomly hanging on Windows in CI e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/1753/consoleText +8928 area-System.Net GetAsync_AllowedSSLVersion_Succeeds failure on Windows in CI The handle is invalid http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/1778/consoleText ``` System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol: Tls) [FAIL] System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The handle is invalid Stack Trace: Discovering: System.Security.Claims.Tests at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(391,0): at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() System.Security.AccessControl.Tests -> D:\j\workspace\windows_nt_de---4526f5ff\bin\Windows_NT.AnyCPU.Debug\System.Security.AccessControl.Tests\System.Security.AccessControl.Tests.dll D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.SslProtocols.cs(90,0): at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.<>c__DisplayClass4_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Net\Http\LoopbackServer.cs(57,0): at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.SslProtocols.cs(88,0): at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(1356,0): at System.Net.Http.WinHttpHandler.InternalReceiveResponseHeadersAsync(WinHttpRequestState state) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(853,0): at System.Net.Http.WinHttpHandler.d__102.MoveNext() ``` +8930 area-System.IO Port System.IO.Pipes AccessControl to CoreFX This commit ports the Pipes AccessControl source from the full framework and adds infrastructure to fit it into CoreFX as part of the regular build. - The PipeStream GetAccessControl and SetAccessControl functions are implemented as Extension methods similar to what was done for FileSystem AccessControl. - A few basic tests for behavior were added. - A net46 implementation of the extension methods is available as well. - This commit includes packaging - Behavior is the same as the .NET 4.6 version of PipeSecurity/PipeAuditRule/etc. with the exception that the SetAccessControl extension method does not retain the same exception throwing behavior for NamedPipeClientStream. Since it's an extension method, we don't have access to the internal PipeStream State that is used in the full version to decide which error to throw. The original will throw an InvalidOperation for a WaitingToConnect stream or a IOException for a Broken stream. We just throw an InvalidOperation for either. resolves https://github.com/dotnet/corefx/issues/7449 +8931 area-System.Threading Obsolete Task.Result, Introduce Task.TryGetResult "Related https://github.com/dotnet/corefx/pull/8902 ""Remove ""Result"" property of ValueTask"" - `Task.Result` has can have implicit blocking. If you invoke an async method in a UI app, and try to fetch the .Result of the returned task before it is completed, you’ll get a deadlock. - `.GetAwaiter().GetResult()` will force a blocking value return if required - An expected test to see if the result is ready without exceptions may be `task.IsCompleted`, however it should really be `task.Status == TaskStatus.RanToCompletion` An alternative `bool TryGetResult(out T value)` would be a safer option increasing the chance of writing correct code. It would return `true` if the task has `RanToCompletion` with the result in the out param. It would return `false` if the task hadn't completed (or was cancelled/faulted, maybe throw exception then) " +8935 area-System.Net Dispose of request HttpContent after buffering response Related to: https://github.com/dotnet/corefx/pull/8884 and https://github.com/dotnet/corefx/pull/8894 Both of those PRs attempt to fix the issue described in https://github.com/dotnet/corefx/pull/8884. The first does it by delaying the completion of the HttpClientHandler's SendAsync task until all request data has been sent. The second does it by moving the responsibility for Dispose into the HttpClientHandler, which can then do it when it knows it's done with the request content. Both of those changes carry some risk. In contrast, this PR is a very low-risk change, which just moves the request content Dispose done by HttpClient to be a bit later, though it's only a partial mitigation rather than an actual fix. For several of the methods on HttpClient, e.g. GetAsync, PostAsync, etc., the default mode is to buffer all of the response data (HttpCompletionOption.ResponseContentRead), and in the rare situations where a server does start sending a response body before it's received all of the request body, it will still likely not send all of the response body until it's received all of the request body. As such, if we delay the disposal of the request content until after we've finished buffering the response, the chances of hitting an issue here are further reduced. (This doesn't solve the issue for WCF; WCF would still need to take a separate fix to workaround the issue, but it would hopefully mitigate an already rare case to the point where it's unlikely to be impactful.) cc: @davidsh, @cipop, @ericeil, @mconnew, @KKhurin +8941 area-System.Net HttpClient not overwriting RequestURI after server redirect on non-Windows Scenario: 1) Client sends GET to server, server sends 302 response. 2) Client sends GET to redirect location and completes the request but the RequestURI is not updated Example: ``` 1): Request URL:http://localhost:5000/ Request Method:GET Status Code:302 Found Remote Address:127.0.0.1:5000 2): Request URL:http://localhost:5000/hello Request Method:GET Status Code:200 OK Remote Address:127.0.0.1:5000 ``` The expected content of the `HttpResponseMessage` is: ``` Response.RequestMessage: Method: GET, RequestUri: 'http://localhost:5000/hello', Version: 1.1, Content: , Headers: { } Response: Hello world StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { Date: Sat, 28 May 2016 02:18:13 GMT Transfer-Encoding: chunked Server: Kestrel } ``` This is correct and what I see on Windows. But on Mac, (and most likely Linux too) I'm seeing: ``` Response.RequestMessage: Method: GET, RequestUri: 'http://localhost:5000/', Version: 1.1, Content: , Headers: { } Response: Hello world StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { Date: Sat, 28 May 2016 01:48:35 GMT Transfer-Encoding: chunked Server: Kestrel } ``` I have a simple repro on https://github.com/JunTaoLuo/ServerRedirect. You can repro by running `dotnet restore` at the solution root, then running `dotnet run` in the ServerRedirect project followed by `dotnet run` in the Client project. This is breaking one of some of our functional tests when I re-enabled them while trying to verify the fix for https://github.com/dotnet/corefx/issues/7440: https://github.com/aspnet/MusicStore/blob/dev/test/E2ETests/SmokeTests.cs#L103 https://github.com/aspnet/MusicStore/blob/dev/test/E2ETests/OpenIdConnectTests.cs#L41 I have been able to repro this on Mac and I suspect this will also affect Linux (I'll follow up when I try that on a Ubuntu machine). cc @Tratcher @muratg @Eilon +8944 area-System.Net NameResolution TryGetAddrInfo_HostName test failed then seg faulted in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/opensuse13.2_release_tst/483/consoleText ``` System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName [FAIL] Assert.Equal() Failure Expected: Success Actual: HostNotFound Stack Trace: ./RunTests.sh: line 208: 8433 Segmentation fault ./corerun xunit.console.netcore.exe System.Net.NameResolution.Pal.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests ``` +8945 area-System.Net WinHttpHandler off-by-1 in MaxAutomaticRedirections It appears that WinHttpHandler has an off-by-1 error in its handling of MaxAutomaticRedirections. When MaxAutomaticRedirections is set to N, it successfully follows N-1 redirects, but fails on the Nth, rather than successfully following N redirects and failing on the N+1th. +8946 area-System.Net Fix CurlHandler handling of redirects - Relative urls in Location headers were not being handled correctly. We now allow any url that TryCreate will parse using the current url as a base. - We were only handling a subset of redirect status codes as redirects, trying to second-guess which status codes libcurl would redirect for, e.g. 300 wasn't being treated as a redirect with regards to our processing of it (it would redirect but we wouldn't reconfigure some of our state). We now let libcurl do all the work. - We should have been playing it safer with regards to clearing out credentials if we weren't sure a Uri redirect location was valid. Now we do. - We were tracking state unnecessarily that we should have instead been asking libcurl for, e.g. the last url used in a redirect. This also caused us to store the wrong RequestMessage.Uri in some cases where a location header came in but we didn't actually follow it. cc: @davidsh, @ericeil, @JunTaoLuo, @bartonjs Fixes https://github.com/dotnet/corefx/issues/8941 +8947 area-System.Net MaxAutomaticRedirections behavior difference between .NET Framework and .NET Core "Repro: ``` C# using System; using System.Net.Http; class Program { static void Main() { var c = new HttpClient(new HttpClientHandler { MaxAutomaticRedirections = 3 }); Console.WriteLine(c.GetAsync(""http://corefx-net.cloudapp.net/Redirect.ashx?statuscode=302&uri=%2FEcho.ashx&hops=4"").GetAwaiter().GetResult().StatusCode); } } ``` With the .NET Framework, this prints out ""Redirect"". With .NET Core (both on Windows and on Unix), this throws an HttpRequestException due to exceeding the number of allowed redirects. Is this behavioral change by design? cc: @davidsh, @cipop " +8948 area-Meta Add an announcements repo for dotnet Hey there, The aspnet GitHub org has a special repo for announcements, it would be really useful to have that for the dotnet org as well, especially with the changes coming to the api surface and the fact that there is a very large amount of activity in the corefx repo, so its easy for announcements/calls for feedback to get lost. An announcement repo where you link to issues for discussion would be a great way to alleviate that +8949 area-System.Threading Sync-blocking on threadpool threads If there is a sync block on a threadpool thread `task.Wait()` etc; could it increment the threadpool min thread count by one? Then decrement by one on complete? May or may not help with threadpool starvation in async-over-sync situations which seem to keep popping up. +8950 area-System.Console Console not echoing input on Mac OS X until enter is pressed There appears to be a difference in behaviour with respect to echoing console input on at least .NET Core RC 2 on Mac OS X vs. .NET 4.6 on Windows. ### Environment - OS X El Capitan 10.11.4 - Bash config and inputrc (in case they matter): https://github.com/nguerrera/.dot - .NET Core RC 2 installed following https://www.microsoft.com/net/core#macosx ### Repro steps - Create project ``` $ mkdir repro $ cd repro $ dotnet new $ dotnet restore ``` - Edit Program.cs to match: ``` C# class Program { static void Main(string[] args) { System.Console.ReadLine(); } } ``` - Run: ``` $ dotnet run ``` - Wait for compilation to succeed and app to start up - Start typing ### Expected result Characters I type are echoed back to me as I type. ### Actual result Characters are not shown to me until I hit enter. @stephentoub @pallavit +8951 area-Meta dotnet restore segfaults on Debian 9.0/stretch Testing The standard, default project.json files cause 'dotnet restore' to segfault on Debian Testing. ``` barnett@barnett-debian:~/csharp_proj$ dotnet new Created new C# project in /home/barnett/csharp_proj. barnett@barnett-debian:~/csharp_proj$ dotnet restore log : Restoring packages for /home/barnett/csharp_proj/project.json... Segmentation fault ``` ``` .NET Command Line Tools (1.0.0-preview2-002900) Product Information: Version: 1.0.0-preview2-002900 Commit SHA-1 hash: f4ceb1f213 Runtime Environment: OS Name: debian OS Version: OS Platform: Linux RID: debian.-x64 ``` ``` barnett@barnett-debian:~$ uname -a Linux barnett-debian 4.5.0-2-amd64 #1 SMP Debian 4.5.4-1 (2016-05-16) x86_64 GNU/Linux ``` [csharp_proj.zip](https://github.com/dotnet/corefx/files/288127/csharp_proj.zip) +8954 area-System.Data Retrieving records affected by statement DbDataRecord has a RecordsAffected property, which allows users to know how many rows were inserted/updated/deleted. However, when executing a multi-statement command (e.g. `UPDATE xxx; UPDATE xxx`), this property provides an aggregation of all rows across statements. There's no programmatic way to get records affected per statement. For an example of why this might be useful, see [EFCore's modification command batch](https://github.com/aspnet/EntityFramework/blob/dev/src/Microsoft.EntityFrameworkCore.Relational/Update/AffectedCountModificationCommandBatch.cs). One of EFCore's major new features are command batching (i.e. the use of multi-statement commands), but in order to implement optimistic concurrency it needs to know, _for each command_, how many records were affected. For SqlServer this is implemented by sending `SELECT @@ROWCOUNT` after each update, and parsing the results. PostgreSQL has no equivalent SQL query, so in Npgsql I actually developed a statement-by-statement RecordsAffected mechanism to support this. In a nutshell, a collection of NpgsqlStatements is exposed by NpgsqlDataReader, and each object has its own RecordsAffected. Let me know if you want more detail. Note that this is somewhat related to #3688, where the possibility of a better API for command batching is discussed (the latter may/could also depend on multiple DbStatement instances being managed within a single DbCommand). +8955 area-System.Data API for writing parameters without boxing In the current ADO.NET API, writing a parameter to the database involves passing it through an object. This implies a boxing operation, which can create lots of garbage in a scenario where lots of value types (e.g. ints) are written to the database. A generic subclass of DbParameter could solve this, if properly implemented by providers. +8956 area-System.Net Fix client certificates-related seg fault in HttpClientHandler Using HttpClient with client certificates on Unix would crash when making a request, waiting for several minutes, and making another one. The issue was that our client certificate code was disposing of SafeHandles for resources we'd logically transferred ownership of to OpenSSL. The underlying connection cache would keep the connection open for any requests made within a few minutes, but once the connection's timeout expired, it would be culled from the cache, and the resources associated with these handles would then be re-freed, resulting in a seg fault (either immediately when closing or when we next tried to use an SSL connection). The fix is simply to not dispose of the resources we no longer own. cc: @bartonjs, @billwert, @ericeil Fixes https://github.com/dotnet/corefx/issues/8958 +8960 area-Infrastructure Building System.Data.SqlClient.sln in parallel often fails "When I build System.Data.SqlClient.sln without parallelization, it works fine (but notice the same file is built twice): ``` >msbuild /v:m /t:rebuild System.Data.SqlClient.sln Microsoft (R) Build Engine version 14.0.25123.0 Copyright (C) Microsoft Corporation. All rights reserved. System.Data.SqlClient -> E:\Users\Svick\git\corefx\bin\ref\System.Data.SqlClient\4.1.0.0\System.Data.SqlClient.dll System.Data.SqlClient -> E:\Users\Svick\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Data.SqlClient\System.Data.SqlClient.dll System.Data.SqlClient -> E:\Users\Svick\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Data.SqlClient\System.Data.SqlClient.dll System.Data.SqlClient.Tests -> E:\Users\Svick\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Data.SqlClient.Tests\System.Data.SqlClient.Tests.dll System.Data.SqlClient.ManualTesting.Tests -> E:\Users\Svick\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Data.SqlClient.ManualTesting.Tests\System.Data.SqlClient.ManualTesting.Tests.dll ``` But when I build it in parallel, it often (but not always) fails: ``` >msbuild /v:m /m /t:rebuild System.Data.SqlClient.sln Microsoft (R) Build Engine version 14.0.25123.0 Copyright (C) Microsoft Corporation. All rights reserved. System.Data.SqlClient -> E:\Users\Svick\git\corefx\bin\ref\System.Data.SqlClient\4.1.0.0\System.Data.SqlClient.dll E:\Users\Svick\git\corefx\Tools\sign.targets(70,5): error : E:\Users\Svick\git\corefx\bin/obj/Windows_NT.AnyCPU.Debug/System.Data.SqlClient/System.Data.SqlClient.dll: I/O error reading or writing PE file: The process cannot access the f ile 'E:\Users\Svick\git\corefx\bin\obj\Windows_NT.AnyCPU.Debug\System.Data.SqlClient\System.Data.SqlClient.dll' because it is being used by another process. [E:\Users\Svick\git\corefx\src\System.Data.SqlClient\src\System.Data.SqlClient. csproj] System.Data.SqlClient -> E:\Users\Svick\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Data.SqlClient\System.Data.SqlClient.dll System.Data.SqlClient.ManualTesting.Tests -> E:\Users\Svick\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Data.SqlClient.ManualTesting.Tests\System.Data.SqlClient.ManualTesting.Tests.dll System.Data.SqlClient.Tests -> E:\Users\Svick\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Data.SqlClient.Tests\System.Data.SqlClient.Tests.dll ``` Sometimes it just produces warnings: ``` >msbuild /v:m /m /t:rebuild System.Data.SqlClient.sln Microsoft (R) Build Engine version 14.0.25123.0 Copyright (C) Microsoft Corporation. All rights reserved. System.Data.SqlClient -> E:\Users\Svick\git\corefx\bin\ref\System.Data.SqlClient\4.1.0.0\System.Data.SqlClient.dll C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3088: Could not read state file ""E:\Users\Svick\git\corefx\bin/obj/Windows_NT.AnyCPU.De bug/System.Data.SqlClient/System.Data.SqlClient.csprojResolveAssemblyReference.cache"". The process cannot access the file 'E:\Users\Svick\git\corefx\bin\obj\Windows_NT.AnyCPU.Debug\System .Data.SqlClient\System.Data.SqlClient.csprojResolveAssemblyReference.cache' because it is being used by another process. [E:\Users\Svick\git\corefx\src\System.Data.SqlClient\src\System.Da ta.SqlClient.csproj] System.Data.SqlClient -> E:\Users\Svick\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Data.SqlClient\System.Data.SqlClient.dll System.Data.SqlClient -> E:\Users\Svick\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Data.SqlClient\System.Data.SqlClient.dll C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(3863,5): warning MSB3026: Could not copy ""E:\Users\Svick\git\corefx\bin/obj/Windows_NT.AnyCPU.Debug/System. Data.SqlClient/System.Data.SqlClient.pdb"" to ""E:\Users\Svick\git\corefx\bin/Windows_NT.AnyCPU.Debug/System.Data.SqlClient/System.Data.SqlClient.pdb"". Beginning retry 1 in 1000ms. The proc ess cannot access the file 'E:\Users\Svick\git\corefx\bin/Windows_NT.AnyCPU.Debug/System.Data.SqlClient/System.Data.SqlClient.pdb' because it is being used by another process. [E:\Users\S vick\git\corefx\src\System.Data.SqlClient\src\System.Data.SqlClient.csproj] System.Data.SqlClient.ManualTesting.Tests -> E:\Users\Svick\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Data.SqlClient.ManualTesting.Tests\System.Data.SqlClient.ManualTesting.Tests.dll System.Data.SqlClient.Tests -> E:\Users\Svick\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Data.SqlClient.Tests\System.Data.SqlClient.Tests.dll ``` I believe those issues are because the same project is built twice in parallel, causing a race condition. Other solutions have the same issue too, for example, System.Net.Http.sln. This looks similar to #5292. CC: @weshaggard " +8962 area-Infrastructure Set up and run tests on BigEndian platforms. At the moment, it appears that all tests are being run on LittleEndian platforms. Given there are a number of packages and protocols that actually care about the endianness of the system, we should make sure our tests pass on these systems. In theory only those packages that deal with endian-handline code would need this, but I'm not sure how easy that would be to check for... +8963 area-Infrastructure 1.Nuget package restore failed for project tests\System.Data/Sqlclient.Manualtesting.Tests for 'test-runtime' 2.Unable to resolve test-runtime for .NETCoreApp, Version=v1.0 I am trying to build sqlclient (System.Data.SqlClient) from the source available from github. But i get these issues when i trying to build it. I tried uninstalled and re-installed nuget packet manager, still it doesn't solve the issue. What else i am missing ? +8965 area-System.Runtime System.Runtime.Loader not working in webapp targeting 4.6.2 ? "I am using System.Runtime.Loader in .NET Core app (net462) it doesn't give error at compile time but gives exception at run time ""Could not load assembly System.Runtime.Loader"". I want to know System.Runtime.Loader is not working in 4.6.2 webapp? " +8967 area-System.Numerics "Optimize BigInteger ""DataTip"" speed" "For very big BigIntegers the Visual Studio DataTip (the thing that appears when hovering over a variable with the mouse) takes a long time to load. I assume that's because the ToString processing takes too long. The result is not visible anyway because it is aborted by a timeout as it seems. Can the DataTip be made faster for super long BigIntegers? Maybe it could just show the first and last 20 digits instead of all digits. It's still possible to see all digits by calling ToString using the debugger. Maybe the output could be `$""{firstDigits} ... {lastDigits} ({totalDigits} digits in total, {byteCount} bytes}""`. That would be useful to both see the data and to get a feel for memory consumption. The ToString output would stay unchanged. " +8968 area-Serialization DataContractSerializer exception when deserializing exceptions with async stack traces "This used to work on RC1, and also works when targeting `net46`. Repro (only happens if `Run` is an `async` method): ``` csharp using System; using System.IO; using System.Runtime.Serialization; using System.Threading.Tasks; namespace ConsoleApp5 { public class Program { public static void Main(string[] args) { Run().GetAwaiter().GetResult(); } public static async Task Run() { try { throw new Exception(""Foo""); } catch (Exception e) { SerializeAndDeserializeException(e); } } private static void SerializeAndDeserializeException(Exception e) { using (var stream = new MemoryStream()) { var serializer = new DataContractSerializer(e.GetType()); serializer.WriteObject(stream, e); Console.WriteLine(""Serialized!""); stream.Position = 0; var ex = (Exception)serializer.ReadObject(stream); Console.WriteLine(""Deserialized! Message = "" + ex.Message); } } } } ``` `ReadObject` throws the following exception: ``` Unhandled Exception: System.Runtime.Serialization.SerializationException: There was an error deserializing the object of type System.Exception. End element '_stackTraceString' from namespace 'http://schemas.datacontract.org/2004/07/System' expected. Found element 'Run' from namespace 'http://schemas.datacontract.org/2004/07/System'. Line 1, position 259. ---> System.Xml.XmlException: End element '_stackTraceString' from namespace 'http://schemas.datacontract.org/2004/07/System' expected. Found element 'Run' from namespace 'http://schemas.datacontract.org/2004/07/System'. Line 1, position 259. at System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String res, String arg1, String arg2, String arg3) at System.Xml.XmlBaseReader.ReadEndElement() at System.Xml.XmlBaseReader.ReadElementContentAsString() at ReadExceptionFromXml(XmlReaderDelegator , XmlObjectSerializerReadContext , XmlDictionaryString[] , XmlDictionaryString[] ) at System.Runtime.Serialization.ClassDataContract.ReadXmlValue(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context) at System.Runtime.Serialization.ExceptionDataContract.ReadXmlValue(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context) at System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator reader, String name, String ns, DataContract& dataContract) at System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator xmlReader, Type declaredType, DataContract dataContract, String name, String ns) at System.Runtime.Serialization.DataContractSerializer.InternalReadObject(XmlReaderDelegator xmlReader, Boolean verifyObjectName, DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver) --- End of inner exception stack trace --- at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.ReadObject(XmlDictionaryReader reader) at ConsoleApp5.Program.SerializeAndDeserializeException(Exception e) at ConsoleApp5.Program.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at ConsoleApp5.Program.Main(String[] args) ``` " +8973 area-System.Runtime Proposal: Enums should implement generic IEquatable/IComparable interfaces Every enum should implement its own version of `IEquatable` and `IComparable`, to avoid boxing when being compared/tested for equality (as they are really just ints underneath). The API would be similar to how each delegate class has its own version of `Invoke`/each `T[]` implements `IList`, although there is no strongly-typed base class that actually declares this. (Note: I'm aware that `EqualityComparer.Default` already specializes for enums, however I still think this would be an API addition worth pursuing. Additionally, `Comparer.Default` [does not](https://dotnetfiddle.net/vlr0UV) specialize for enums and falls back to boxing.) Enums already implement the non-generic `IComparable` interface (there is no non-generic `IEquatable`), so I think this would be a welcome change right? +8979 area-Infrastructure Clean build produces lots of warnings "12 on Windows: ``` D:\j\workspace\windows_nt_debug88592b53\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [D:\j\workspace\windows_nt_debug88592b53\src\System.AppContext\ref\System.AppContext.csproj] D:\j\workspace\windows_nt_debug88592b53\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [D:\j\workspace\windows_nt_debug88592b53\src\System.AppContext\ref\System.AppContext.csproj] D:\j\workspace\windows_nt_debug88592b53\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [D:\j\workspace\windows_nt_debug88592b53\src\System.AppContext\ref\System.AppContext.csproj] D:\j\workspace\windows_nt_debug88592b53\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [D:\j\workspace\windows_nt_debug88592b53\src\System.AppContext\ref\System.AppContext.csproj] D:\j\workspace\windows_nt_debug88592b53\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [D:\j\workspace\windows_nt_debug88592b53\src\System.AppContext\src\System.AppContext.csproj] D:\j\workspace\windows_nt_debug88592b53\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [D:\j\workspace\windows_nt_debug88592b53\src\System.AppContext\src\System.AppContext.csproj] D:\j\workspace\windows_nt_debug88592b53\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [D:\j\workspace\windows_nt_debug88592b53\src\System.AppContext\src\System.AppContext.csproj] D:\j\workspace\windows_nt_debug88592b53\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [D:\j\workspace\windows_nt_debug88592b53\src\System.AppContext\src\System.AppContext.csproj] C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [D:\j\workspace\windows_nt_debug88592b53\src\System.Net.Http\src\System.Net.Http.csproj] C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [D:\j\workspace\windows_nt_debug88592b53\src\System.Security.Cryptography.OpenSsl\ref\System.Security.Cryptography.OpenSsl.csproj] C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [D:\j\workspace\windows_nt_debug88592b53\src\System.Security.Cryptography.X509Certificates\src\System.Security.Cryptography.X509Certificates.csproj] C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [D:\j\workspace\windows_nt_debug88592b53\src\System.Security.Cryptography.X509Certificates\src\System.Security.Cryptography.X509Certificates.csproj] 12 Warning(s) 0 Error(s) ``` 27 on Ubuntu: ``` /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/Tools/packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.AppContext/ref/System.AppContext.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/Tools/packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.AppContext/ref/System.AppContext.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/Tools/packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.AppContext/ref/System.AppContext.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/Tools/packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.AppContext/ref/System.AppContext.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/Tools/packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.AppContext/src/System.AppContext.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/Tools/packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.AppContext/src/System.AppContext.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/Tools/packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.AppContext/src/System.AppContext.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/Tools/packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.6"" framework. Add a reference to "".NETStandard,Version=v1.6"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.AppContext/src/System.AppContext.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""TypeDescriptorProviderError"" is not allowed, ignored. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""TypeDescriptorUnsupportedRemoteObject"" is not allowed, ignored. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""TypeDescriptorProviderError"" is not allowed, ignored. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""TypeDescriptorUnsupportedRemoteObject"" is not allowed, ignored. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""TypeDescriptorProviderError"" is not allowed, ignored. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""TypeDescriptorUnsupportedRemoteObject"" is not allowed, ignored. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""TypeDescriptorProviderError"" is not allowed, ignored. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""TypeDescriptorUnsupportedRemoteObject"" is not allowed, ignored. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/Tools/Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Net.Http/src/System.Net.Http.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/Tools/Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Security.Cryptography.OpenSsl/ref/System.Security.Cryptography.OpenSsl.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/Tools/Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/Tools/Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Security.Cryptography.X509Certificates/src/System.Security.Cryptography.X509Certificates.csproj] libust[33786/33786] : warning : HOME environment variable not set. Disabling LTTng-UST per-user tracing. (in setup_local_apps() at lttng-ust-comm.c:305) [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Globalization/tests/System.Globalization.Tests.csproj] libust[33796/33796] : warning : HOME environment variable not set. Disabling LTTng-UST per-user tracing. (in setup_local_apps() at lttng-ust-comm.c:305) [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Globalization/tests/System.Globalization.Tests.csproj] libust[33823/33823] : warning : HOME environment variable not set. Disabling LTTng-UST per-user tracing. (in setup_local_apps() at lttng-ust-comm.c:305) [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Globalization/tests/System.Globalization.Tests.csproj] libust[33833/33833] : warning : HOME environment variable not set. Disabling LTTng-UST per-user tracing. (in setup_local_apps() at lttng-ust-comm.c:305) [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Globalization/tests/System.Globalization.Tests.csproj] libust[33839/33839] : warning : HOME environment variable not set. Disabling LTTng-UST per-user tracing. (in setup_local_apps() at lttng-ust-comm.c:305) [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Globalization/tests/System.Globalization.Tests.csproj] libust[33862/33862] : warning : HOME environment variable not set. Disabling LTTng-UST per-user tracing. (in setup_local_apps() at lttng-ust-comm.c:305) [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Globalization/tests/System.Globalization.Tests.csproj] libust[33869/33869] : warning : HOME environment variable not set. Disabling LTTng-UST per-user tracing. (in setup_local_apps() at lttng-ust-comm.c:305) [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Globalization/tests/System.Globalization.Tests.csproj] 27 Warning(s) 0 Error(s) ``` " +8983 area-System.IO Seg fault running FileSystemWatcher tests on OSX "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_osx_debug/52/consoleText ``` /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_osx_debug/bin/tests/OSX.AnyCPU.Debug/System.IO.FileSystem.Watcher.Tests/netcoreapp1.0/RunTests.sh: line 285: 70576 Segmentation fault: 11 ./corerun xunit.console.netcore.exe System.IO.FileSystem.Watcher.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=failing -notrait category=nonosxtests Finished running tests. End time=23:20:31. Return value was 139 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_osx_debug/Tools/tests.targets(202,5): warning MSB3073: The command ""/Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_osx_debug/bin/tests/OSX.AnyCPU.Debug/System.IO.FileSystem.Watcher.Tests/netcoreapp1.0/RunTests.sh /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_osx_debug/packages/"" exited with code 139. [/Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_osx_debug/src/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj] /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_osx_debug/Tools/tests.targets(211,5): error : One or more tests failed while running tests from 'System.IO.FileSystem.Watcher.Tests' please check log for details! [/Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_osx_debug/src/System.IO.FileSystem.Watcher/tests/System.IO.FileSystem.Watcher.Tests.csproj] ``` cc: @janvorli, @ianhays " +8984 area-System.Diagnostics TestUserCredentialsPropertiesOnWindows failed on Win10 in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_win10_release/51/consoleText ``` System.Diagnostics.Tests.ProcessStartInfoTests.TestUserCredentialsPropertiesOnWindows [FAIL] System.ComponentModel.Win32Exception : The user name or password is incorrect Stack Trace: d:\j\workspace\outerloop_win---6835b088\src\System.Diagnostics.Process\src\System\Diagnostics\Process.Windows.cs(619,0): at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) d:\j\workspace\outerloop_win---6835b088\src\System.Diagnostics.Process\tests\ProcessStartInfoTests.cs(375,0): at System.Diagnostics.Tests.ProcessStartInfoTests.TestUserCredentialsPropertiesOnWindows() ``` +8986 area-System.IO Increase the min supported version of the Zip spec Zips created by ZipArchive right now say that they will support any version of the ZIP format. However, they will actually only support versions 2.0 and up. This would mean that zips created by the core version of ziparchive will be improperly unzipped by unzippers from versions 0.0 to 2.0 (1989 to 1993). This commit fixes a regression from the full framework that sets the min to 2.0. The windows zip utility also sets the version to 2.0. @ericstj +8987 area-System.Console Port to release/1.0.0: Implement Console support for netcore50 port https://github.com/dotnet/corefx/pull/8853: The Windows implementation currently used for netcore50 will fail the WACK check as it calls a number of APIs unsupported by UWP. This commit adds a separate netcore50 build that stubs out the API calls and replaces them with PlatformNotSupportedExceptions or no-ops where appropriate. The result is a platform-agnostic version of System.Console that can be used anywhere but is severely stripped of functionality. - Where possible the behavior of a redirected Console operation will attempt to mimic that of a Unix redirected Console operation. Otherwise it will throw. - Encoding is fixed to UTF8. Attempting to set the Console encoding will no-op. - Added a section in the packaging build for the new netcore50 specific binary - Input/Output redirection and subsequent reads/writes work as expected. @weshaggard @ericstj +8990 area-System.Net Remove innerloop dependencies on www.ssllabs.com We have several tests that make HTTP calls during System.Net.Http.Functional.Tests out to www.ssllabs.com, which has SSL endpoints for different SSL protocols. This commit avoids using that server during innerloop tests. Some of the dependencies are removed entirely, by using a localhost SSL server instead. The remainder are made outerloop. cc: @bartonjs, @davidsh, @cipop, @ericeil +8995 area-System.IO ZipArchiveEntry always writes Unicode bit for entries Initial discussion here: https://github.com/dotnet/corefx/pull/8986#issuecomment-222739144 Previously we would only write the Unicode bit if 1. The system default was UTF8. 2. Any characters in the string were greater than 127. It turns out that neither of these were very common so before the bit was rarely set, now it is always set. /cc @ianhays +8996 area-System.Net Fix some memory leaks in WinHttpRequestState When HTTP requests are canceled, we are leaking WinHttpRequestState objects and some child objects. Since WInHttpRequestState is strongly pinned, it's important to release things as soon as possible. This fix addresses part of the leaks involved in #8819 by removing references to some fields in the state object related to the request/response phase (CancellationToken). In addition, this fix addresses some cases where the state object is created and pinned but the request is canceled before we hook up the state object to the WInHTTP status callback. Because of not being hooked up yet, the state object won't get HANDLE_CLOSING notifications and remains pinned forever. We now pin the state object later when we're sure that we've hooked up the status callback. I also added some DEBUG tracking to help diagnose the rest of the leaks of #8819. +9002 area-System.Net If we don't expect UDP packets to be received, don't send redundant packets. "Fixes #8636. On OSX, if a UDP packet is actively rejected, a subsequent send on the same socket can result in a ""connection refused"" error. This change avoids that error for the cases where we're intentionally sending packets that might be rejected. @stephentoub " +9003 area-System.Net System.Net.Http.HttpClientHandler.CookieContainer is empty in a UWP app when cookies are set on 302 redirect response When the System.Net.Http.HttpClient class - with a HttpClientHandler is used from a UWP, the response cookie collection returned is empty. **This happens when the cookies are being set on a 302 redirect response.** When you collect a network trace, you should notice the below request/response pattern: # Request: GET _location_ HTTP/1.1 Host: _host_ Connection: Keep-Alive ..._other request headers_ # Response: HTTP/1.1 302 Object moved Set-Cookie: name=value; Location: _redirect location_ ..._other response headers_ The problem happens because the default behavior of the HttpClientHandler is to perform auto-redirection. With this setting, the .NET layer does not get to see the cookies in the redirect response leading to the buggy behavior. +9004 area-System.IO Allow writing an ASCII ZipArchive ZipArchive currently always sets the Zip header Unicode bit. This is a regression from the net46 version that set the bit based on the current default encoding page set. This commit modifies the behavior to default write ASCII whenever possible and only write/set Unicode when it is necessary or explicitly asked for. - When encoding an entry name, we check if it contains any characters outside 32-126. If it does, we encode it as UTF8. If it doesn't, we encode it as ASCII. - Decoding is unchanged. If the encoding isn't set, then we assume UTF8. This is so we have the widest range of effective readability and because we cannot represent values outside of the ASCII 32-126 range from CP437 @ericstj resolves #8995 +9006 area-System.Net CurlHandler completes SendAsync task even if request content not fully sent This is a feature or a bug depending on who you talk to. CurlHandler completes the Task returned from SendAsync when all of the response headers have been received. That's by design. However, it does this regardless of whether all of the request content has been received. While rare, it's possible a server might send the response headers and even some or all of the body before the request content has been sent/received, e.g. in a streaming scenario where it was echoing/transforming/etc. the request content out as response content. WinHttpHandler and the implementation on desktop complete the SendAsync task only once all of the request content has been sent and all of the response headers have been received. The CurlHandler design is potentially problematic, however, as HttpClient explicitly disposes of the request content once the SendAsync task completes. If that task completes and the request content is still being sent, obvious problems can result. Several potential solutions: - Modify HttpClient to stop Dispose'ing of the request content, e.g. https://github.com/dotnet/corefx/issues/1794 - Moving the responsibility for Dispose'ing of the HttpContent to the HttpClientHandler, which can know when it's safe to dispose, e.g. https://github.com/dotnet/corefx/pull/8894 - Modifying CurlHandler to only complete the SendAsync task once the request content has all been sent, e.g. https://github.com/dotnet/corefx/pull/8884 +9008 area-System.Net Socket.Handle isn't public *and* no access to SIO_KEEPALIVE_VALS / SIOCKEEPALIVE via Socket Got here looking for how to call ioctl(SIOCKEEPALVIE) / WSAIOCTL(SIO_KEEPALIVE_VALS). No access via public Socket API layer and no access to the handle either. I could P/Invoke it if I had the handle, but I don't oops. +9009 area-System.IO Filesystem tests for symlinks failing in Helix for OSX These tests are all failing with a similar error and there don't seem to be any recent changes to the tests themselves. System.IO.Tests.FileInfo_Exists.SymLinksMayExistIndependentlyOfTarget System.IO.Tests.Directory_GetDirectories_str.EnumerateWithSymLinkToDirectory System.IO.Tests.Directory_Delete_str_bool.DeletingSymLinkDoesntDeleteTarget System.IO.Tests.Directory_Delete_Tests.FileSystemWatcher_Directory_Delete_SymLink System.IO.Tests.Directory_Create_Tests.FileSystemWatcher_Directory_Create_SymLink Log: ``` System.ComponentModel.Win32Exception : No such file or directory ``` @dsgouda can you please take a look, you had the most recent changes to this directory (https://github.com/dotnet/corefx/tree/master/src/System.IO.FileSystem/tests) @weshaggard @ericstj Any ideas on the cause? +9010 area-System.Net Adding image example for PerfView collection. Fixes #4325 @saurabh500 @davidsh PTAL +9011 area-System.Runtime Consider exposing more APIs via RuntimeInformation The CLI and AspNet Core have a bunch of APIs that p/invoke to read runtime information that's not readily available via `RuntimeInformation`. This includes operating system version and Unix distro name. Scanning through the code, there're internal APIs to read both these pieces of information, but they aren't surfaced in a way that can be consumed. Could the API surface for `RuntimeInformation` be enhanced to include this information? +9012 area-System.Runtime Dependency on System.Runtime.InteropServices.RuntimeInformation causes runtime error for apps targeting net451 on *nix systems (i.e. running on Mono) ## Scenario 1) Running a `net451` app depending on `System.Runtime.InteropServices.RuntimeInformation` on OSX/Ubuntu will produce the following exception at runtime: ``` dotnet -v run -f net451 1 ↵ Telemetry is: Enabled Project RuntimeServiceOnMono (.NETFramework,Version=v4.5.1) was previously compiled. Skipping compilation. Running /usr/local/bin/mono --debug /Users/jtluo/Documents/workspace/juntaoluo/tp/RuntimeServiceOnMono/bin/Debug/net451/osx.10.11-x64/RuntimeServiceOnMono.exe Process ID: 29130 Unhandled Exception: System.DllNotFoundException: System.Native at (wrapper managed-to-native) Interop/Sys:GetUnixNamePrivate () at Interop+Sys.GetUnixName () [0x00000] in :0 at System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform (OSPlatform osPlatform) [0x00000] in :0 at ConsoleApplication.Program.Main (System.String[] args) [0x00000] in :0 [ERROR] FATAL UNHANDLED EXCEPTION: System.DllNotFoundException: System.Native at (wrapper managed-to-native) Interop/Sys:GetUnixNamePrivate () at Interop+Sys.GetUnixName () [0x00000] in :0 at System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform (OSPlatform osPlatform) [0x00000] in :0 at ConsoleApplication.Program.Main (System.String[] args) [0x00000] in :0 ``` ## Example See repro at https://github.com/JunTaoLuo/RuntimeServiceOnMono. To run the sample, run `dotnet restore` and `dotnet run -f net451` I understand Mono is not a scenario that's actively being developed for but we should not be causing a exception like this especially since we intend to use the `InteropServices` APIs in often used ASP.NET packages like Logging. Currently this means that most of our samples and apps cannot run on Mono (full CLR on *nix). ## Environment `dotnet --version`: ``` Microsoft .NET Core Shared Framework Host Version : 1.0.1-rc3-004312-00 Build : 1db6c07638a70a621b312e78d4dc9fb31a530f2f ``` `mono -V`: ``` Mono JIT compiler version 4.0.5 ((detached/1d8d582 Tue Oct 20 15:15:33 EDT 2015) Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com TLS: normal SIGSEGV: altstack Notification: kqueue Architecture: x86 Disabled: none Misc: softdebug LLVM: yes(3.6.0svn-mono-(detached/a173357) GC: sgen ``` cc @BrennanConroy @muratg @Eilon +9015 area-System.Net Fixing PerformanceTests command line build. Fixes #8435 @davidsh @ericeil @stephentoub PTAL +9017 area-System.Net Sockets test failures SendToAsyncV4IPEndPointToV6Host_NotReceived & BeginSendToV4IPEndPointToV6Host_NotReceived ``` Test Result (2 failures / +2) ``` System.Net.Sockets.Tests.DualMode.SendToAsyncV4IPEndPointToV6Host_NotReceived System.Net.Sockets.Tests.DualMode.BeginSendToV4IPEndPointToV6Host_NotReceived http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/release_1.0.0/job/osx_debug_prtest/58/testReport/ Regression System.Net.Sockets.Tests.DualMode.SendToAsyncV4IPEndPointToV6Host_NotReceived (from (empty)) Failing for the past 1 build (Since Failed#58 ) Took 0.31 sec. Stacktrace MESSAGE: Assert.Throws() Failure\nExpected: typeof(System.TimeoutException)\nActual: typeof(Xunit.Sdk.EqualException): Assert.Equal() Failure\nExpected: 1\nActual: 0 +++++++++++++++++++ STACK TRACE: at System.Net.Sockets.Tests.DualMode.DualModeSendToAsync_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_1.0.0/osx_debug_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 1359 at System.Net.Sockets.Tests.DualMode.b__119_0() in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_1.0.0/osx_debug_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 1311 Regression System.Net.Sockets.Tests.DualMode.BeginSendToV4IPEndPointToV6Host_NotReceived (from (empty)) Failing for the past 1 build (Since Failed#58 ) Took 7 ms. Stacktrace MESSAGE: Assert.Throws() Failure\nExpected: typeof(System.TimeoutException)\nActual: typeof(System.Net.Sockets.SocketException): Connection refused +++++++++++++++++++ STACK TRACE: at System.Net.Sockets.Socket.DoBeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint endPointSnapshot, SocketAddress socketAddress, OverlappedAsyncResult asyncResult) in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_1.0.0/osx_debug_prtest/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 3004 at System.Net.Sockets.Socket.BeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback callback, Object state) in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_1.0.0/osx_debug_prtest/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 2942 at System.Net.Sockets.SocketTaskExtensions.<>c.b__12_0(ArraySegment`1 targetBuffer, SocketFlags flags, EndPoint endPoint, AsyncCallback callback, Object state) in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_1.0.0/osx_debug_prtest/src/System.Net.Sockets/src/System/Net/Sockets/SocketTaskExtensions.cs:line 235 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2,TArg3](Func`6 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory`1.FromAsync[TArg1,TArg2,TArg3](Func`6 beginMethod, Func`2 endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state) at System.Net.Sockets.SocketTaskExtensions.SendToAsync(Socket socket, ArraySegment`1 buffer, SocketFlags socketFlags, EndPoint remoteEndPoint) in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_1.0.0/osx_debug_prtest/src/System.Net.Sockets/src/System/Net/Sockets/SocketTaskExtensions.cs:line 234 at System.Net.Sockets.SocketAPMExtensions.BeginSendTo(Socket socket, Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback callback, Object state) in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_1.0.0/osx_debug_prtest/src/Common/src/System/Net/Sockets/SocketAPMExtensions.cs:line 565 at System.Net.Sockets.Tests.DualMode.DualModeBeginSendTo_EndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_1.0.0/osx_debug_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 1234 at System.Net.Sockets.Tests.DualMode.b__110_0() in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_1.0.0/osx_debug_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 1200 +9018 area-Infrastructure Jenkins CI OS X slave went offline during the build http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/release_1.0.0/job/osx_debug_prtest/60/consoleFull#-1250096032a6fc86e9-18e8-40d3-a876-f39e33df2c41 Slave went offline during the build 18:42:55 ERROR: Connection was broken: java.io.IOException: Connection aborted: org.jenkinsci.remoting.nio.NioChannelHub$MonoNioTransport@3b61e371[name=dci-macpro-12] 18:42:55 at org.jenkinsci.remoting.nio.NioChannelHub$NioTransport.abort(NioChannelHub.java:208) 18:42:55 at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:628) 18:42:55 at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) 18:42:55 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 18:42:55 at java.util.concurrent.FutureTask.run(FutureTask.java:262) 18:42:55 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 18:42:55 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 18:42:55 at java.lang.Thread.run(Thread.java:745) 18:42:55 Caused by: java.io.IOException: Connection reset by peer 18:42:55 at sun.nio.ch.FileDispatcherImpl.read0(Native Method) 18:42:55 at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) 18:42:55 at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) 18:42:55 at sun.nio.ch.IOUtil.read(IOUtil.java:197) 18:42:55 at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:384) 18:42:55 at org.jenkinsci.remoting.nio.FifoBuffer$Pointer.receive(FifoBuffer.java:136) 18:42:55 at org.jenkinsci.remoting.nio.FifoBuffer.receive(FifoBuffer.java:306) 18:42:55 at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:561) 18:42:55 ... 6 more +9023 area-System.Net HttpClient.SendAsync with HttpMethod.Trace and request content sends a body "https://tools.ietf.org/html/rfc7231 states for TRACE ""A client MUST NOT send a message body in a TRACE request,"" but WinHttpHandler does: ``` C# using (var client = new HttpClient()) { var request = new HttpRequestMessage(HttpMethod.Trace, ""http://corefx-net.cloudapp.net/Echo.ashx"") { Content = new StringContent(""some body"") }; using (HttpResponseMessage response = client.SendAsync(request).GetAwaiter().GetResult()) { Console.WriteLine(response.StatusCode); } } ``` This outputs BadRequest. " +9024 area-System.Net Add several HttpClientHandler tests related to content - Verify that request content isn't disposed until after response content is buffered (https://github.com/dotnet/corefx/pull/8935) - Verify that request content isn't disposed until after request content is sent and response headers are received (https://github.com/dotnet/corefx/issues/9006) - Verify that verbs which shouldn't send request content don't (https://github.com/dotnet/corefx/issues/9023) cc: @davidsh, @ericeil +9025 area-System.Net Port to release/1.0.0: Fix CurlHandler handling of redirects Port #8946 to release/1.0.0 +9027 area-System.Net SendAsync_ExpectedDiagnosticSourceLogging tests failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/1863/consoleText ``` System.Net.Http.Functional.Tests.HttpClientTest.SendAsync_ExpectedDiagnosticSourceNoLogging [FAIL] Request was logged while logging disabled. Expected: False Actual: True Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\tests\FunctionalTests\HttpClientTest.cs(476,0): at System.Net.Http.Functional.Tests.HttpClientTest.SendAsync_ExpectedDiagnosticSourceNoLogging() ``` and ``` System.Net.Http.Functional.Tests.HttpClientTest.SendAsync_ExpectedDiagnosticSourceLogging [FAIL] System.AggregateException : One or more errors occurred. (An error occurred while sending the request.) Finished: System.Resources.Writer.Tests ---- System.Net.Http.HttpRequestException : An error occurred while sending the request. -------- System.Net.Http.WinHttpException : The operation has been canceled Stack Trace: at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\tests\FunctionalTests\HttpClientTest.cs(435,0): at System.Net.Http.Functional.Tests.HttpClientTest.SendAsync_ExpectedDiagnosticSourceLogging() ----- Inner Stack Trace ----- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(381,0): at System.Net.Http.HttpClient.d__58.MoveNext() ----- Inner Stack Trace ----- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(838,0): at System.Net.Http.WinHttpHandler.d__101.MoveNext() ``` +9031 area-System.Net Port to release/1.0.0: Fix some memory leaks in WinHttpRequestState Port #8996 to release/1.0.0 +9033 area-System.IO Add Compression binary compat tests We don't currently test binary equality of outputted test zips, so tested compatibility is limited to the parts of the header we expose via a ZipArchive API. This commit adds some tests that compare normal and unicode zips between the current version and .NET 4.5 and .NET 4.6. depends on https://github.com/dotnet/corefx-testdata/pull/10. Tests will fail without https://github.com/dotnet/corefx/pull/9004. +9039 area-Meta Strategy for targetting safe subsets of mscorlib This blog post describes plans to support more API on .NET core: https://blogs.msdn.microsoft.com/dotnet/2016/05/27/making-it-easier-to-port-to-net-core/ Good news, but it does raise some questions. Let's say that in six months it's possible to link against the BCL reference assemblies; you compile a dll, which can now be used on the various platforms and appmodels of the core CLR. So: what happens to code which calls System.DoesntWorkOnLinux? Or in the case of UWP, System.IO? As a library author, I won't have the capability to test every current and future platform. How should I go about building packages which do not throw PlatformNotSupportedException in an unexpected new environment? Can netstandard help here? It's not yet clear how it will relate to mscorlib - and some problems would still exist, like the one with System.IO in Store apps. +9041 area-System.Net Flow HttpClient timeouts and cancellation to the response stream When using a timeout and/or a cancellation token with a buffered HttpClient operation, the cancellation/timeout doesn't flow through to the actual read/write operations on the underlying streams. This fixes that. cc: @davidsh, @cipop, @ericeil, @bartonjs Fixes #8663 +9043 area-System.Net Reduce System.Net.CredentialCache allocations This PR is broken up into multiple commits to make it easier to review... - The first two commits add some more tests and modifies an `ArgumentException` to include the param name using `nameof`. The tests in the first commit pass before and after the rest of the changes. - The next commit changes `CredentialCache`'s dictionaries to be lazily allocated. `CredentialCache` has two backing dictionaries: one is for Uri-based protocols like HTTP/HTTPS used by `HttpClient`, the other for Host/Port-based protocols like SMTP, used by `SmtpClient` in the full framework (but not in CoreFX as `SmtpClient` hasn't been ported yet). While it's possible that both types of protocols could be used at the same time with the same `CredentialCache` instance, it's more likely that only one dictionary will be used per instance. Instead of always allocating both dictionaries up-front, lazily allocate the dictionaries only when needed. - The next commit avoids the array allocation/copying in `CredentialCache`'s enumerator, using the dictionary enumerator(s) instead. - The next commit reduces allocations in `CredentialHostKey`. `CredentialHostKey` can be a struct instead of a class. Unlike with the Uri-based dictionary, there's no need to enumerate all items in the Host/Port-based dictionary to find the greatest prefix length. Instead, we can look up the item in the dictionary directly. There's also no need to cache the hash code. Allocations associated with `ToUpperInvariant().GetHashCode()` can be avoided by using `StringComparer.OrdinalIgnoreCase.GetHashCode()`. - The next commit reduces allocations in `CredentialKey`. Unlike `CredentialHostKey`, I've left `CredentialKey` as a class for now, as the dictionary needs to be enumerated to find the longest matching prefix, and I was concerned about potential perf degradation due to copying a large struct. However, there is still room for improvement. The `AuthenticationType.ToUpperInvariant().GetHashCode()` allocation can be avoided in `GetHashCode` by using `StringComparer.OrdinalIgnoreCase.GetHashCode(AuthenticationType)`. There's no need to include the length in the hash code, as the hash code for the Uri is sufficient. And, there's no need to cache the hash code, which allows us to at least reduce the size of `CredentialKey`. - The last commit contains some minor cleanup while making changes in this file. cc: @stephentoub, @davidsh +9044 area-System.Net Port System.Net.Http UWP tests /cc @davidsh Requires NetNative test execution support. +9045 area-System.Net Enable System.Net tests to run against NetFX /cc @tarekgh @davidsh An example is already available in `System.Globalization.Calendars`. To run the tests against .Net 4.6 Desktop: `msbuild /t:rebuild,test /property:Configuration=net46`. +9048 area-System.Net Add multi-machine and Enterprise scenario support for System.Net tests /cc @himadrisarkar @davidsh @vijaykota @shrutigarg @markwilkie @MattGal System.Net.\* testing requires multiple machines to exercise real-world networking scenarios. These include both the outer-loop tests as well as tests requiring more complicated setup and fixed SKUs such as perf. Here is a list of requirements that our team brainstormed a while back: ## Network Scenarios - Internet scenarios - Use a set of publicly available, always available Azure servers. - Allow `localhost`, local network or private Azure servers. - Enterprise scenarios (auth, IPSec) - Use `localhost` servers - Use local network servers - Use an Azure closed test environment - Performance/stress scenarios ## Test Server Requirements - Scripts should allow deployment on `localhost` as well as a specific on-prem machine or an Azure account. An example of such deployment is available at https://github.com/davidsh/corefx-net-testservers. - Server configuration scripts (both for local and remote deployments) - Use Bash/Powershell - Scripts should be able to both install and uninstall the server. - Ensure a clear state of the machine after uninstall. ## Test Client Requirements - Standardized script naming and location will allow for automatic prerequisite installation/cleanup. - Client prerequisite scripts: install and cleanup - Use Powershell/Bash - Will run as `Administrator` / `root`. ## Test Execution - Endpoint configuration will be made through Environment variables (see #2383). - A single script will be used to: - set the environment variables (a `.gitignore`d override file could allow developers to set up their own custom environment) - detect and install prerequisites - run selected tests - uninstall prerequisites - Proposed prerequisite script location and naming: - contract_name\tests\scripts\client - setupclient.ps1(.sh) [-u(ninstall)] - contract_name\tests\scripts\server - setupserver.ps1(.sh) [-u(ninstall)] +9049 area-System.Net Port System.Net.WebSockets.Client tests /cc @davidsh The following tests need to be ported: - [ ] Performance tests - [ ] NetNative tests - will be part of 2.1 work - [x] Server code and scripts +9053 area-System.Runtime MathTests.Pow test failing after recent coreclr change e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_debug_tst/558/consoleText http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/fedora23_debug_tst/167/consoleText http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu16.04_debug_tst/347/consoleText ``` System.Tests.MathTests.Pow [FAIL] Assert+WrapperXunitException : File path: D:\j\workspace\fedora23_debu---1725fa63\src\System.Runtime.Extensions\tests\System\Math.cs. Line: 266 ---- Assert.Equal() Failure Expected: 1 Actual: NaN Stack Trace: at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) at Assert.Equal[T](T expected, T actual, String path, Int32 line) at System.Tests.MathTests.Pow() ----- Inner Stack Trace ----- at Assert.Equal[T](T expected, T actual, String path, Int32 line) ``` I believe this was caused by https://github.com/dotnet/coreclr/pull/4847 cc: @tannergooding, @janvorli, @jkotas https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/System.Runtime.Extensions/tests/System/Math.cs#L266 +9058 area-System.Security Port ProtectedMemory I found the class ProtectedData in System.Security.Cryptography, but did not find the class ProtectedMemory. +9063 area-System.Threading Thread.IsThreadPoolThread not exposed in coreclr https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Threading/Thread.cs#L645-L649 Some times we want to queue things on the threadpool; but if we are already on the threadpool continue executing rather than queue - however the thread can't be checked if is threadpool thread currently. Coreclr issue https://github.com/dotnet/coreclr/issues/5407 +9064 area-System.Data System.Data.SqlClient | UWP ARM Build ## Win 10 IoT ARM Build The .NET Core Foundation Libraries already got Builds for most common platforms and architectures. Since the release of Windows 10 IoT Preview Version and announced support for Raspberry Pi Products many developers want to use it in a commercial way but the current build does not inherit the full core. The main issue with the current IoT-Build is the missing ability to connect to MS SQL Server and pass your requests. Using an additional WCF Service and communicate over REST-API is not the proper way to transfer Data in a company. So my request is to add a build of the .NET CORE on ARM for Windows 10 IoT usage on the github list or at least adding the ability to handle SQL for MS SQL Server. **tl;dr** No possibility to connect to MS SQL Server via UWP Should be implemented since Raspberry Pi 3 got Win 10 IoT and is rising interest for companies Please consider: According to the porting documentation and a missing branch for IoT ARM I am leaving this request/issue on the master page. There is no other project handling my request +9066 area-Infrastructure CI tests pass, but plugin fails to report results, failing leg ``` [xUnit] [ERROR] - The plugin hasn't been performed correctly: Problem on deletion ``` e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_release_prtest/1749/consoleText http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/1790/consoleText +9068 area-Infrastructure "Two outerloop Process tests failing on OSX with ""Permission denied""" "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_osx_debug/55/consoleText http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_osx_release/58/consoleText ``` System.Diagnostics.Tests.ProcessTests.TestBasePriorityOnUnix [FAIL] System.ComponentModel.Win32Exception : Permission denied Stack Trace: at System.Diagnostics.Process.set_PriorityClassCore(ProcessPriorityClass value) at System.Diagnostics.Process.set_PriorityClass(ProcessPriorityClass value) at System.Diagnostics.Tests.ProcessTests.SetAndCheckBasePriority(ProcessPriorityClass exPriorityClass, Int32 priority) at System.Diagnostics.Tests.ProcessTests.TestBasePriorityOnUnix() ``` and ``` System.Diagnostics.Tests.ProcessTests.TestPriorityClassUnix [FAIL] System.ComponentModel.Win32Exception : Permission denied Stack Trace: at System.Diagnostics.Process.set_PriorityClassCore(ProcessPriorityClass value) at System.Diagnostics.Process.set_PriorityClass(ProcessPriorityClass value) at System.Diagnostics.Tests.ProcessTests.TestPriorityClassUnix() ``` Both of these tests have a comment next to them ""// This test requires admin elevation on Unix ""... maybe the runs where these fail isn't being done elevated? " +9070 area-System.Security X509Certificate2.GetECDsaPrivateKey fails "I have a certificate in the certificate store that `GetECDsaPrivateKey` fails on in Windows Server 2012 R2. It fails with the exception: > Keys used with the ECDsaCng algorithm must have an algorithm group of ECDsa. > Parameter name: key First, some details on the certificate. It is a self signed (for now) certificate with a 256-bit ECC key, the public key parameters are ECDSA_P256. The keyUsage extension is Critical:digitalSignature (80) and the EKU is codeSigning. The certificate was added to the certificate store using the import wizard when opening a PKCS12 file. When I platform invoke CNG myself with `CryptAcquireCertificatePrivateKey` and pass the key handle to `CngKey.Open` the same way the CertificatePal does it [here](https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Windows/CertificatePal.PrivateKey.cs#L66), I see that the CngKey is believed to be ECDH and has a key usage of ""AllUsage"". Regardless, I need an ECDsa instance for this certificate. What is the trick to getting CNG / GetECDsaPrivateKey is a ECDSA key, not an ECDH? There really isn't a difference between an ECDSA key or an ECDH key, as long as you don't use the same key for both purposes, so I would think this should work. /cc @bartonjs " +9071 area-System.Net Add CancellationToken-accepting overloads to HttpContent members We should consider adding overloads for methods like SerializeToStreamAsync, so that cancellation can be passed in and threaded through to the underlying ReadAsync/WriteAsync operations performed. +9075 area-System.Net HttpClientHandler.SendAsync on Unix completes at start-of-body, not end-of-headers The implementation currently looks for the first byte of the body (or no more processing to be done) as an indication that the response message should be published, but it should really be when the last byte of the headers are received. Ideally we'd find some mechanism to be notified by libcurl of end-of-headers (including end-of-headers for the final request when doing automatic redirection) so we can publish then, in case there's a delay between the last byte of the headers and the first byte of the body. We may need to switch to not using libcurl's automatic redirection mechanism and instead handle automatic redirections manually, using https://curl.haxx.se/libcurl/c/CURLOPT_FOLLOWLOCATION.html. +9085 area-System.Linq Enumerable Append and Prepend should be ported to the netfx Enumerable.Append and Enumerable.Prepend are new public API added in CoreFX +9087 area-System.Linq NETFX: Port Compile(System.Boolean) overloads in Linq.Expressions to netfx Preferrable with full interpreter support. It would be acceptable just to port the API and fallback to compiling since API does not strictly require interpretation. +9088 area-Infrastructure The build.cmd script should accept more common options Currently to build the repo as release you have to do this: ``` cmd build /p:ConfigurationGroup=Release ``` This is very error-prone to typos, since you can write something like `/p:ConfigurationGrouo=Release` and go away from your computer for 40 minutes only to realize you built on Debug configuration. We should provide `--debug` and `--release` shortcuts like is done in [the `build.sh` script](https://github.com/dotnet/corefx/blob/master/build.sh#L10), as well as update the documentation/`--help` output. Then, we could call the script like this: ``` cmd build --release ``` Other things we might want to consider: `--skiptests[ bool]` (default false), `--buildtests[ bool]` (default true), `--buildpackages[ bool]` (default true) cc: @mellinoe Note: I have knowledge of batch/shell scripting, so I can submit a PR to fix this myself if this is OK. **edit:** Additionally we should echo the arguments that are being passed to MSBuild to the user, so they know right away if they made a typo. +9091 area-System.Net Sometimes Socket.Dispose() doesn’t trigger ws2_32!closesocket() in NanoServer I have a full SKU physical machine on which I created a Nanoserver virtual machine (i.e., VM). If I run below PowerShell command on physical machine twice, the second command sometimes will either hang or fail. This is due to the fact that Socket.Dispose() sometimes doesn’t trigger ws2_32!closesocket() in Nanoserver. Statistically the repro rate is about 50%, but for the same physical machine-VM pair, the repro rate seems to be either 0 or 100%. New-PSSession -vmname -credential +9094 area-Infrastructure Port build fixes to unblock official builds Need to port the following commits from master to unblock building on new Linux distros. 3e3ab10bc37fb4379b7e38366ca0978ce8efa4b0 1d8bac52febbaf4f1cc626cc8ef4c030054e92ef 02f40870f59eda6dae5c55550670dc4b433cb59e 217289492a53b9972a9c0f9d0ce3503c422fe601 +9102 area-System.Net Flow HttpClient timeouts and cancellation to the response stream (This is the same PR as #9041, which was already signed-off on; Jenkins wasn't responding to requests on it.) When using a timeout and/or a cancellation token with a buffered HttpClient operation, the cancellation/timeout doesn't flow through to the actual read/write operations on the underlying streams. This means that on Windows, doing a basic operation like GetStringAsync with a server that pauses for arbitrarily long periods of time while sending the response body won't cancel or timeout until it sends more data. (We don't need to do this on Unix, as on Unix we already handle this case differently, with a single registration for the duration of the SendAsync operation.) +9108 area-System.IO System.IO.Compression ZipArchive improvements I've been spending some time with zips and found our APIs lacking in a few places: 1. Cannot rename an entry, have to remove it and re-add-it 2. Cannot open multiple entries at once since they seem share the same underlying stream. 3. Cannot control the order/re-order entries in the zip +9109 area-System.Net Add some HttpClientHandler client certificate tests We didn't previously have any. And fix a small bug discovered from this, lack of argument validation when setting the enum value. cc: @davidsh, @cipop, @bartonjs, @ericeil +9110 area-System.Net Port to release/1.0.0: Flow HttpClient timeouts and cancellation to the response stream Port https://github.com/dotnet/corefx/pull/9102 to release/1.0.0 +9114 area-System.Security "VerifyCrlCache test failed in release branch: ""Chain should not build validly""" http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/release_1.0.0/job/outerloop_ubuntu14.04_debug_prtest/1/consoleText ``` System.Security.Cryptography.X509Certificates.Tests.X509FilesystemTests.VerifyCrlCache [FAIL] Chain should not build validly Expected: False Actual: True Stack Trace: /mnt/j/workspace/dotnet_corefx/release_1.0.0/outerloop_ubuntu14.04_debug_prtest/src/System.Security.Cryptography.X509Certificates/tests/X509FilesystemTests.Unix.cs(58,0): at System.Security.Cryptography.X509Certificates.Tests.X509FilesystemTests.VerifyCrlCache() ``` +9116 area-System.IO System.IO.Compression perf tests failing on linux machines When running the System.IO.Compression perf tests locally on a linux machine, a bunch for FileNotFoundExceptions show up Eg.: System.IO.Compression.Tests/netcoreapp1.0/GZTestData/Canterbury/GZCompressed/grammar.lsp.gz not found To repro the error: On a linux machine, build the CoreFX repro and run the following command ``` Tools/corerun Tools/MSBuild.exe src/System.IO.Compression/tests/System.IO.Compression.tests.csproj /t:BuildAndTest /p:Performance=true /p:OSGroup=Linux ``` +9118 area-System.IO System.IO.Pipes perf tests never finish exection on linux machine When running System.IO.Pipes perf tests on a linux machine, the tests seem to run infinitely and need to be killed/timed out To repro the error: On a linux machine, build the CoreFX repo and run the following command `Tools/corerun Tools/MSBuild.exe src/System.IO.Pipes/tests/System.IO.Pipes.tests.csproj /t:BuildAndTest /p:Performance=true /p:OSGroup=Linux` +9119 area-System.Net Fix HttpClientMiniStressTests tests These were broken at some point (almost all of the tests fail, complaining about invalid responses from the server), but we didn't notice because they're not enabled by default. cc: @davidsh +9124 area-System.Net "HttpClient.GetAsync throws an exception, if server response has more than one""WWW-Authenticate: Basic"" header with different realm" "HttpClient.GetAsync throws an exception, if server response has more than one ""WWW-Authenticate: Basic"" header with different realms. The sample client code is: ` ``` var handler = new HttpClientHandler(); handler.UseDefaultCredentials = false; handler.Credentials = System.Net.CredentialCache.DefaultCredentials; handler.AllowAutoRedirect = true; using (var client = new HttpClient(handler)) { client.BaseAddress = new Uri(""type you server URI here""); HttpResponseMessage response = await client.GetAsync(""api/values""); } ``` ` Same code works fine under desktop .Net framework. The exception call stack is: System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: The operation identifier is not valid at System.Net.Http.WinHttpAuthHelper.CheckResponseForAuthentication(WinHttpRequestState state, UInt32& proxyAuthScheme, UInt32& serverAuthScheme) at System.Net.Http.WinHttpHandler.d__101.MoveNext() --- End of inner exception stack trace --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at ConsoleApplication.Program.d__1.MoveNext() in D:\prj\repro_ntlm_integrated\Client\Program.cs:line 42 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at ConsoleApplication.Program.d__0.MoveNext() in D:\prj\repro_ntlm_integrated\Client\Program.cs:line 28 Below is fiddler trace: > GET http://stiliev-dev/WebApplication2/api/values HTTP/1.1 > Accept: application/json > Accept-Encoding: gzip, deflate, peerdist > Connection: Keep-Alive > X-P2P-PeerDist: Version=1.1 > X-P2P-PeerDistEx: MinContentInformation=1.0, MaxContentInformation=2.0 > Host: stiliev-dev > > HTTP/1.1 401 Unauthorized > Cache-Control: no-cache > Pragma: no-cache > Content-Type: application/json; charset=utf-8 > Expires: -1 > Server: Microsoft-IIS/10.0 > X-AspNet-Version: 4.0.30319 > WWW-Authenticate: Basic realm=""http://stiliev-dev:8080/tfs"" > WWW-Authenticate: Basic realm=""http://stiliev-dev:8080"" > WWW-Authenticate: Negotiate > WWW-Authenticate: NTLM > X-Powered-By: ASP.NET > Date: Fri, 03 Jun 2016 14:50:44 GMT > Content-Length: 61 > {""Message"":""Authorization has been denied for this request.""} " +9127 area-System.Net Add greater validation to HttpClient SSL cerificate validation Add more checks in addition to the host name, validity periods and chaining to trusted roots. +9130 area-System.Net System.Net.Security: Authentication failed because the remote party has closed the transport stream. In #9115: On a `Standard_D3_v2` Azure machine: Windows_NT Debug Build and Test failed because: ``` System.Net.Security.Tests.ServerNoEncryptionTest.ServerNoEncryption_ClientAllowNoEncryption_ConnectWithNoEncryption [FAIL] failed. MESSAGE: System.IO.IOException : Authentication failed because the remote party has closed the transport stream. +++++++++++++++++++ STACK TRACE: at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) in D:\j\workspace\windows_nt_de---494cfe0d\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs:line 870 at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) in D:\j\workspace\windows_nt_de---494cfe0d\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs:line 1098 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) in D:\j\workspace\windows_nt_de---494cfe0d\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs:line 740 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) in D:\j\workspace\windows_nt_de---494cfe0d\src\System.Net.Security\src\System\Net\SecureProtocols\SslState.cs:line 710 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) in D:\j\workspace\windows_nt_de---494cfe0d\src\System.Net.Security\src\System\Net\SecureProtocols\SslStream.cs:line 125 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Security.Tests.ServerNoEncryptionTest.d__4.MoveNext() in D:\j\workspace\windows_nt_de---494cfe0d\src\System.Net.Security\tests\FunctionalTests\ServerNoEncryptionTest.cs:line 63 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +9131 area-System.Net Fix crash in HttpClient on Unix when using client certificates In HttpClient on Unix when a client certificate is used, we add the intermediate certificates for the client authentication cert's chain so that the server can chain-verify. When we add the extra chain certificate to the SSL handle, we're transferring ownership to that handle, which we subequently dispose... but we don't mark the original SafeHandle as invalid, so it eventually gets finalized and we end up double-free'ing, leading to seg faults and other badness. This commit simply cleans up the handle appropriately. cc: @bartonjs, @billwert +9137 area-System.Net Fixing Socket async connect for connection-less protocols; Fixing and enabling Socket perf tests. Simulating an asynchronous Connect (APM/TPL) for connection-less protocols. Moving SocketPerformance to Outerloop and enabling the tests without an execution time expectation. Fixes #4968, #3635 +9140 area-System.Net "Revert ""Flow HttpClient timeouts and cancellation to the response stream""" This reverts the product changes from commit cc8b48c8ea41b9cee888055483d16072f3f3a1c5. The test changes remain. cc: @davidsh, @cipop +9142 area-System.Net Unix SslStream may not be sending intermediate CA certs when required "As a followup to #9109 I was looking for the equivalent code in SslStream, and there doesn't seem to be any. This issue is currently ""determine if there really is a problem"", with the implicit ""if there was, fix it"". This is somewhat hard to test, since the only way to get the intermediate certs on the request given the current API (I think) is to have them in a CA store; but if they're in a CA store we'll already find them when we chain walk on the receiver side. If the client API made guarantees about when the chain was walked then it could be [OuterLoop] managed by adding intermediates to the store, setting up the client, removing the certs from the store, and letting the request initiate. " +9143 area-System.Security Dispose unneeded certs in chain walk Followup to #8978. OpenSslChainProcessor.FindCandidates causes a lot of X509Certificate2 objects to be spawned (https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/OpenSslX509ChainProcessor.cs#L495-L498). When the toProcess queue is empty it should find all certificates not referenced in `candidates` and Dispose() them, to be a much better citizen with the underlying SafeX509Handles. +9145 area-System.Console Interruptable read on a pipe "Challenge: Try reading from System.Console.StandardInput.BaseStream without blocking a thread such that another thread can interrupt the read without resorting to P/Invoke. ReadAsync does indeed return immediately, but the Task's cancellation token isn't bound to the task thanks to ""Tuple.Create(this, buffer, offset, count), CancellationToken.None, "" in Stream.cs and no descendant path to WindowsConsoleStream attempts to fix this. This means that attempting to gather the completion result wedges the thread. Both the Windows and the Unix APIs are capable of solving this, but each do so completely differently. I've got thousands upon thousands of lines of code written attempting this problem and still more to go before it works at all. " +9155 area-System.Net HttpClient and PreAuthenticate I am just curious why PreAuthenticate has never worked as expected. On several occasions when I am using Server to Server auth the nounce needs to stay the same on consecutive request but with the way HttpClient behaves I cannot implement that. +9156 area-Infrastructure Official Build Frequency? Today, in the new build pipeline, we have triggers set to build CoreFX 4 times a day, every day, and CoreCLR 3 times a day, every day. This leads to tons on version updates everyday and it's generating a lot of noise, IMHO. I think we should consider doing some (all?) of the following: - Reduce the frequency of triggered builds. As we can launch these on demand and have results in an hour, there's less need to be doing them proactively. - Don't build over the weekend. - Have automation which auto merges green dependency updates. - Have automation which closes old dependency updates with no comments/additional commits. I'm interested in hearing everyone else's thoughts. /cc @dotnet/corefx-contrib @jhendrixMSFT @eerhardt @wtgodbe +9158 area-System.Text 'Cyrillic' is not a supported encoding name. "When I run this: ``` Encoding.GetEncoding(""Cyrillic""); ``` I am now getting this: ``` Unhandled Exception: System.ArgumentException: 'Cyrillic' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. Parameter name: name at System.Globalization.EncodingTable.GetCodePageFromName(String name) at System.Text.Encoding.GetEncoding(String name) at ConsoleApplication.Program.Main(String[] args) ``` which wasn't the case before, it started happening in RC2. dotnet CLI: ``` .NET Command Line Tools (1.0.0-preview1-002702) Product Information: Version: 1.0.0-preview1-002702 Commit Sha: 6cde21225e Runtime Environment: OS Name: ubuntu OS Version: 14.04 OS Platform: Linux RID: ubuntu.14.04-x64 ``` project.json ``` { ""version"": ""1.0.0-*"", ""buildOptions"": { ""emitEntryPoint"": true, ""preserveCompilationContext"": true }, ""dependencies"": { ""Microsoft.Extensions.DependencyModel"": ""1.0.0-rc2-final"", ""Microsoft.Extensions.Configuration.EnvironmentVariables"": ""1.0.0-rc2-final"", ""Microsoft.Extensions.Configuration.Json"": ""1.0.0-rc2-final"", ""Microsoft.Extensions.Options"": ""1.0.0-rc2-final"", ""Microsoft.Extensions.Configuration.Binder"": ""1.0.0-rc2-final"", ""Microsoft.Extensions.Options.ConfigurationExtensions"": ""1.0.0-rc2-final"", ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.0-rc2-3002702"" } }, ""frameworks"": { ""netcoreapp1.0"": { ""imports"": ""portable-net45+wp80+win8+wpa81+dnxcore50"" } } } ``` " +9160 area-System.Net NegotiateStream AuthenticateAsClientAsync does not work for non default credential NegotiateStream AuthenticateAsClientAsync works for default credential, but not non default credential. I have a repro app similar to the sample in https://msdn.microsoft.com/en-us/library/system.net.security.negotiatestream(v=vs.110).aspx The repro app is passing in desktop, but failing in .net core. I have observed that the client has got a NTLM credential instead of kerberos and failed to log on to the server. [Repro.zip](https://github.com/dotnet/corefx/files/299179/Repro.zip) with below exception from client. > System.Net.Security.dll!System.Net.Security.NegoState.ThrowCredentialException(long error) Line 842 C# > System.Net.Security.dll!System.Net.Security.NegoState.ProcessReceivedBlob(byte[] message, System.Net.LazyAsyncResult lazyResult) Line 608 C# > System.Net.Security.dll!System.Net.Security.NegoState.ReadCallback(System.IAsyncResult transportResult) Line 758 C# > System.Net.Security.dll!System.Net.LazyAsyncResult.Complete(System.IntPtr userToken) Line 481 C# > System.Net.Security.dll!System.Net.LazyAsyncResult.ProtectedInvokeCallback(object result, System.IntPtr userToken) Line 431 C# > System.Net.Security.dll!System.Net.StreamFramer.ReadFrameComplete(System.IAsyncResult transportResult) Line 292 C# > System.Net.Security.dll!System.Net.StreamFramer.ReadFrameCallback(System.IAsyncResult transportResult) Line 171 C# > System.Net.Security.dll!System.Threading.Tasks.TaskToApm.InvokeCallbackWhenTaskCompletes.AnonymousMethod__0() Line 137 C# > System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.TaskAwaiter.OutputWaitEtwEvents.AnonymousMethod__0() Unknown > System.Private.CoreLib.ni.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown > System.Private.CoreLib.ni.dll!System.Threading.Tasks.AwaitTaskContinuation.RunCallback(System.Threading.ContextCallback callback, object state, ref System.Threading.Tasks.Task currentTask) Unknown > System.Private.CoreLib.ni.dll!System.Threading.Tasks.Task.FinishContinuations() Unknown > System.Private.CoreLib.ni.dll!System.Threading.Tasks.Task.TrySetResult(int result) Unknown > System.Private.CoreLib.ni.dll!System.Threading.Tasks.TaskFactory.FromAsyncCoreLogic(System.IAsyncResult iar, System.Func endFunction, System.Action endAction, System.Threading.Tasks.Task promise, bool requiresSynchronization) Unknown > System.Private.CoreLib.ni.dll!System.Threading.Tasks.TaskFactory.FromAsyncImpl.AnonymousMethod__1(System.IAsyncResult iar) Unknown > System.Net.Sockets.dll!System.Net.LazyAsyncResult.Complete(System.IntPtr userToken) Line 481 C# > System.Net.Sockets.dll!System.Net.ContextAwareResult.CompleteCallback() Line 461 C# > System.Net.Sockets.dll!System.Net.ContextAwareResult.Complete.AnonymousMethod__15_0(object s) Line 450 C# > System.Private.CoreLib.ni.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown > System.Net.Sockets.dll!System.Net.ContextAwareResult.Complete(System.IntPtr userToken) Line 451 C# > System.Net.Sockets.dll!System.Net.LazyAsyncResult.ProtectedInvokeCallback(object result, System.IntPtr userToken) Line 431 C# > System.Net.Sockets.dll!System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(uint errorCode, uint numBytes, System.Threading.NativeOverlapped\* nativeOverlapped) Line 181 C# > System.Threading.Overlapped.dll!System.Threading.ThreadPoolBoundHandleOverlapped.CompletionCallback(uint errorCode, uint numBytes, System.Threading.NativeOverlapped\* nativeOverlapped) Line 48 C# +9162 area-Meta Introduce System.Json as a Json.Net-compatible foundational library "JSON has entered the global software ecosystem with a force that is as strong, arguably stronger, than XML was in its time. In the .NET ecosystem, for years, it has been striking that the framework was not supporting JSON in a built-in way. As a result, `Newtonsoft.Json` is now the No1 package on Nugget. I suggest that the foundational libraries should include a `System.Json` library with an API compatible with `Newtonsoft.Json`. Indeed, as it stands Json.NET represents a tax that every .NET developer need to pay: you have to discover first _why_ there is no built-in way to deal with JSON, then you have to discover that this one specific third party package is worthy to be trusted. I am not dismissing the quality of this excellent package, but this massive hit primarily demonstrates that JSON should be part of the foundational libraries of .NET. Then, taking the longer view, I am worried - and I believe others should be - about the long term implications of having such a _narrow_ yet _mission-critical_ library developed and maintained separately. .NET Core can be a viable economic product to maintain over time even without the backing of Microsoft. However, Json.NET _alone_ is not economically viable, not even through commercial support, not only 10 years time scale anyway. The project might or might no go the way ServiceStack went (another great project by the way). Also, the commit profile of this project, with the _first contributor having literally over 100x more commits than the second_, a scenario ala NDoc is not to be ruled out either. Presently, Newtonsoft is taking the path of building complementary products on top of Json.NET, which again is very good, yet should not be relied upon for the future of .NET. Opening .NET to the community is great. However, the fundational libraries should cover the _very basic_ use cases. XML is covered, JSON should be as well. In particular, ""outsourcing"" narrow yet critical components is paving the way for upcoming messes ala left-pad. Ideally, `System.Json` would be API-compatible with `Newtonsoft.Json`. There are multiple ways to achieve that. Starting a discussion on this precise matter between corefx representants and James Newton-King would be a start. " +9179 area-System.Net Make the internal CookieComparer class static `CookieComparer` is never used as an `IComparer`, so there's no need for a singleton instance to be created on-demand and cached. Instead, a simple static `Compare` method is sufficient. cc: @stephentoub, @davidsh, @CIPop +9180 area-System.Diagnostics SIGABRT_ASSERT_System.Native.so!SystemNative_ForkAndExecProcess "**The notes in this bug refer to the Ubuntu.14.04 dump [rc3-24202-00_004C](https://rapreqs.blob.core.windows.net/sschaab/BodyPart_669c030d-366e-481c-8f12-0e82c88679f2?sv=2015-04-05&sr=b&sig=yodf0SNKqzeSzh2ZReKVeGouiJC8UhD%2B504JC9qrI1s%3D&st=2016-06-03T22%3A16%3A16Z&se=2017-06-03T22%3A16%3A16Z&sp=r). Other dumps are available if needed.** ``` STOP_REASON: SIGABRT FAULT_SYMBOL: System.Native.so!SystemNative_ForkAndExecProcess FAILURE_HASH: SIGABRT_System.Native.so!SystemNative_ForkAndExecProcess FAULT_STACK: libc.so.6!__GI_raise libc.so.6!__GI_abort libc.so.6!__assert_fail_base libc.so.6!UNKNOWN System.Native.so!SystemNative_ForkAndExecProcess System.Runtime.Extensions.dll!DomainBoundILStubClass.IL_STUB_PInvoke(System.String, Byte**, Byte**, System.String, Int32, Int32, Int32, Int32 ByRef, Int32 ByRef, Int32 ByRef, Int32 ByRef) System.Diagnostics.Process.dll!Interop+Sys.ForkAndExecProcess(System.String, System.String[], System.String[], System.String, Boolean, Boolean, Boolean, Int32 ByRef, Int32 ByRef, Int32 ByRef, Int32 ByRef) System.Diagnostics.Process.dll!System.Diagnostics.Process.StartCore(System.Diagnostics.ProcessStartInfo) System.Diagnostics.Process.dll!System.Diagnostics.Process.Start() System.Diagnostics.Process.Tests.dll!System.Diagnostics.Tests.ProcessWaitingTests.SingleProcess_TryWaitMultipleTimesBeforeCompleting() rc3-24202-00_004C.exe!stress.generated.UnitTests.UT0() stress.execution.dll!stress.execution.UnitTest.Execute() stress.execution.dll!stress.execution.DedicatedThreadWorkerStrategy.RunWorker(stress.execution.ITestPattern, System.Threading.CancellationToken) stress.execution.dll!stress.execution.DedicatedThreadWorkerStrategy+<>c__DisplayClass1_0.b__0() System.Private.CoreLib.ni.dll!System.Threading.Tasks.Task.Execute() System.Private.CoreLib.ni.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) System.Private.CoreLib.ni.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef) System.Private.CoreLib.ni.dll!System.Threading.Tasks.Task.ExecuteEntry(Boolean) System.Private.CoreLib.ni.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) libcoreclr.so!CallDescrWorkerInternal libcoreclr.so!CallDescrWorkerWithHandler(CallDescrData*, int) libcoreclr.so!MethodDescCallSite::CallTargetWorker(unsigned long const*) libcoreclr.so!MethodDescCallSite::Call(unsigned long const*) libcoreclr.so!ThreadNative::KickOffThread_Worker(void*) libcoreclr.so!ManagedThreadBase_DispatchInner(ManagedThreadCallState*) libcoreclr.so!ManagedThreadBase_DispatchMiddle(ManagedThreadCallState*) libcoreclr.so!ManagedThreadBase_DispatchOuter(ManagedThreadCallState*)::$_6::operator()(ManagedThreadBase_DispatchOuter(ManagedThreadCallState*)::TryArgs*) const::{lambda(Param*)#1}::operator()(Param*) const libcoreclr.so!ManagedThreadBase_DispatchOuter(ManagedThreadCallState*)::$_6::operator()(ManagedThreadBase_DispatchOuter(ManagedThreadCallState*)::TryArgs*) const libcoreclr.so!ManagedThreadBase_DispatchOuter(ManagedThreadCallState*) libcoreclr.so!ManagedThreadBase_FullTransitionWithAD(ADID, void (*)(void*), void*, UnhandledExceptionLocation) libcoreclr.so!ManagedThreadBase::KickOff(ADID, void (*)(void*), void*) libcoreclr.so!ThreadNative::KickOffThread(void*) libcoreclr.so!Thread::intermediateThreadProc(void*) libcoreclr.so!CorUnix::CPalThread::ThreadEntry(void*) libpthread.so.0!start_thread libc.so.6!__clone FAULT_THREAD: thread #1: tid = 53100, 0x00007f00ab935cc9 libc.so.6`__GI_raise(sig=6) + 57 at raise.c:56, name = 'corerun', stop reason = signal SIGABRT ``` **Looking at the code for frame 4 (pal_process.cpp line 151) it looks like the call to fork() returns -1 so it asserts with the message ""fork() failed.""** ``` (lldb) fr s 4 frame #4: 0x00007effd1df2cb5 System.Native.so`::SystemNative_ForkAndExecProcess(filename=""/home/DotNetBot/dotnetbuild/work/b36360ef-8151-4402-8438-48a63dd3588d/Work/d643c218-6748-4941-8172-9696a99dcf7b/Exec/execution/corerun"", argv=0x00007eff87d5ebc0, envp=0x00007eff87d61380, cwd=0x0000000000000000, redirectStdin=0, redirectStdout=0, redirectStderr=0, childPid=0x00007f000aff9d30, stdinFd=0x00007f000aff9d28, stdoutFd=0x00007f000aff9d20, stderrFd=0x00007f000aff9d18) + 645 at pal_process.cpp:151 (lldb) fr v -D1 (const char *) filename = 0x00007eff87d62220 ""/home/DotNetBot/dotnetbuild/work/b36360ef-8151-4402-8438-48a63dd3588d/Work/d643c218-6748-4941-8172-9696a99dcf7b/Exec/execution/corerun"" (char *const *) argv = 0x00007eff87d5ebc0 (char *const *) envp = 0x00007eff87d61380 (const char *) cwd = 0x0000000000000000 (int32_t) redirectStdin = 0 (int32_t) redirectStdout = 0 (int32_t) redirectStderr = 0 (int32_t *) childPid = 0x00007f000aff9d30 (int32_t *) stdinFd = 0x00007f000aff9d28 (int32_t *) stdoutFd = 0x00007f000aff9d20 (int32_t *) stderrFd = 0x00007f000aff9d18 (int) success = 1 (int [2]) stdinFds = ([0] = -1, [1] = -1) (int [2]) stdoutFds = ([0] = -1, [1] = -1) (int [2]) stderrFds = ([0] = -1, [1] = -1) (int [2]) waitForChildToExecPipe = ([0] = 162, [1] = 164) (int) processId = -1 // Fork the child process if ((processId = fork()) == -1) { assert(false && ""fork() failed.""); success = false; goto done; } ``` " +9181 area-Serialization Addressed Feedback for PR #9125. The change is to avoid the intermediate `StringBuilder` and `string` allocations. Thanks for @justinvp 's suggestions. +9184 area-System.Net Allow CookieContainer to be Serialized/Deserialized "Currently, serialization and deserialization of the CookieContainer doesn't work. The documentation says to use the CookieContainer if one needs to save off HttpOnly cookies. It seems that saving the CookieContainer isn't possible. ""If the server sends HTTPOnly cookies, you should create a System.Net.CookieContainer on the request to hold the cookies, although you will not see or be able to access the cookies that are stored in the container."" We should look at providing support for CookieContainer class to have XML serialization. " +9187 area-Infrastructure Introduce Gentoo Linux RID and a job in CI matrix The current master branches of CoreCLR and CoreFX native builds on Gentoo Linux. I have compiled the steps to create a Gentoo LXC container on Ubuntu 14 with list of dependencies required for the said repos: https://gist.github.com/jasonwilliams200OK/1a2e2c0e904ffa95faf6333fcd88d9b8. Please assign an RID for Gentoo Linux and add CI job to continuously monitor its build status. Thanks! :) +9189 area-System.Net Socket.Connect fails for connection-less and single IP-address remote endpoints on Unix Ref: #9137, #4968 [System.Net.Sockets.Tests.UdpClientTest.Connect_Success (from (empty))](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/1814/testReport/junit/System.Net.Sockets.Tests/UdpClientTest/Connect_Success/) ``` Stacktrace MESSAGE: System.PlatformNotSupportedException : Sockets on this platform are invalid for use after a failed connection attempt, and as a result do not support attempts to connect to multiple endpoints. +++++++++++++++++++ STACK TRACE: at System.Net.Sockets.Socket.ThrowIfNotSupportsMultipleConnectAttempts() at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port) at System.Net.Sockets.Socket.Connect(String host, Int32 port) at System.Net.Sockets.Tests.UdpClientTest.Connect_Success() ``` [System.Net.Sockets.Tests.UdpClientTest.ConnectAsync_Success (from (empty))](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/1814/testReport/junit/System.Net.Sockets.Tests/UdpClientTest/ConnectAsync_Success/) ``` Stacktrace MESSAGE: System.PlatformNotSupportedException : Sockets on this platform are invalid for use after a failed connection attempt, and as a result do not support attempts to connect to multiple endpoints. +++++++++++++++++++ STACK TRACE: at System.Net.Sockets.Socket.ThrowIfNotSupportsMultipleConnectAttempts() at System.Net.Sockets.Socket.BeginConnect(String host, Int32 port, AsyncCallback requestCallback, Object state) at System.Net.Sockets.SocketTaskExtensions.<>c.b__5_0(String targetHost, Int32 targetPort, AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2](Func`5 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory.FromAsync[TArg1,TArg2](Func`5 beginMethod, Action`1 endMethod, TArg1 arg1, TArg2 arg2, Object state) at System.Net.Sockets.SocketTaskExtensions.ConnectAsync(Socket socket, String host, Int32 port) at System.Net.Sockets.Tests.UdpClientTest.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +9191 area-System.IO Fix Filesystem tests failing from path changes Changes in path validation disabled some of the FileSystem tests. Re-enable them with the new path logic in place. resolves #6931 +9201 area-System.Net HttpClient PostAsync - The server returned an invalid or unrecognized response "EDITED: If I run this application on a Windows computer everything works out fine. When I run this application on a Linux (CentOS) computer I get the following exception: > System.Net.Http.HttpRequestException: The server returned an invalid or unrecognized response. at System.Net.Http.CurlResponseHeaderReader.ReadHeader(String& headerName, String& headerValue) at System.Net.Http.CurlHandler.MultiAgent.CurlReceiveHeadersCallback(IntPtr buffer, UInt64 size, UInt64 nitems, IntPtr context) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) I've tried this code on a Windows machine and it is working perfectly. I've also tried to make a SOAP call on CentOS console trough curl and it also works fine (I get the response). In the web application I keep getting the exception saying that the server returned an invalid or unrecognized response. This is the code - Exception thrown right on the hc.PostAsync(). ``` Uri uri = new Uri(ServiceConfiguration.SERVICE_URL); string sSOAPResponse = String.Empty; HttpClient hc = new HttpClient(); hc.DefaultRequestHeaders.Add(""SOAPAction"", oRequest.Action); var content = new StringContent(oRequest.RequestMessage, Encoding.UTF8, ""text/xml""); try { using (HttpResponseMessage response = await hc.PostAsync(uri, content)) { sSOAPResponse = await response.Content.ReadAsStringAsync(); (...) } ``` ` ## Steps to reproduce Call post async method with HttpClient on a Linux Server (CentOS 7.1 My case) ## Expected behavior Get the SOAP response (Works perfectly on Windows). ## Actual behavior The server returned an invalid or unrecognized response thrown. ## Environment data Product Information: Version: 1.0.0-preview1-002702 Commit Sha: 6cde21225e Runtime Environment: OS Name: centos OS Version: 7 OS Platform: Linux RID: centos.7-x64 Moved from https://github.com/dotnet/cli/issues/3344 on behalf of @RicardoRazz as this seems to be an HttpClient issue in the RC2 release of Shared Framework. " +9202 area-System.Globalization string.IndexOf not giving correct index "## Repro Steps 1. Copy code below 2. Run code ``` csharp namespace TestApp { class Program { static void Main(string[] args) { var sentence = ""\uDAD1²\uDF8F 㽜|""; var index = sentence.IndexOf(sentence); Console.WriteLine(""index: {0}"", index); if (index == 0) { Console.WriteLine(""It works!""); } else { throw new InvalidOperationException(""Expected that it is 0""); } } } } ``` ## Expected `index` is equal to 0. ## Actual An InvalidOperationException is thrown because `index` is equal to 1. " +9204 area-Infrastructure CentOS 7 outerloop runs failing [cmake is not found] After upgrading to build everything on the target machines the CentOS outerloop runs are failing with an error saying cmake is not found. Looking at how the labels are set up in Jenkins, it looks like the outerloop runs use a different base image id than the inner loop ones. I suppose CMake is not present on this newer image? +9208 area-System.Net Allow whitespace after HTTP response header name Be a bit more lenient in what we allow in the formatting of response headers. Fixes https://github.com/dotnet/corefx/issues/9201 cc: @davidsh, @ericeil, @RicardoRazz +9212 area-System.Net Manual_CertificateSentMatchesCertificateReceived_Success failed on Windows CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/2007/consoleFull#-4102119967b4762c-faac-47f0-8268-9f6835e4535e ``` System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.Manual_CertificateSentMatchesCertificateReceived_Success(numberOfRequests: 3, reuseClient: True) [FAIL] 16:28:34 System.Net.Http.HttpRequestException : An error occurred while sending the request. 16:28:34 ---- System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response 16:28:34 Stack Trace: 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 16:28:34 Starting: System.Threading.Tasks.Tests 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 16:28:34 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() 16:28:34 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(381,0): at System.Net.Http.HttpClient.d__58.MoveNext() 16:28:34 --- End of stack trace from previous location where exception was thrown --- 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 16:28:34 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() 16:28:34 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(172,0): at System.Net.Http.HttpClient.d__32`1.MoveNext() 16:28:34 --- End of stack trace from previous location where exception was thrown --- 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 16:28:34 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.ClientCertificates.cs(88,0): at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.<>c__DisplayClass5_0.<b__2>d.MoveNext() 16:28:34 --- End of stack trace from previous location where exception was thrown --- 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 16:28:34 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.ClientCertificates.cs(106,0): at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.<>c__DisplayClass5_2.<b__4>d.MoveNext() 16:28:34 --- End of stack trace from previous location where exception was thrown --- 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 16:28:34 D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Net\Http\LoopbackServer.cs(57,0): at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) 16:28:34 at System.Threading.Tasks.Task.Execute() 16:28:34 --- End of stack trace from previous location where exception was thrown --- 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 16:28:34 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.ClientCertificates.cs(98,0): at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.d__5.MoveNext() 16:28:34 --- End of stack trace from previous location where exception was thrown --- 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 16:28:34 --- End of stack trace from previous location where exception was thrown --- 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 16:28:34 --- End of stack trace from previous location where exception was thrown --- 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 16:28:34 ----- Inner Stack Trace ----- 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 16:28:34 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 16:28:34 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() 16:28:34 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(845,0): at System.Net.Http.WinHttpHandler.d__101.MoveNext() ``` +9213 area-System.Net Sample Application on HttpClient with .NET core I want to send a Http request to some website(URL) and get a response(Basically i need to use GetAsync and PutAsync methods for this) and i need to do with **.NET Core** in vs2015. Since i am new to .NET Core, i am unable to do it on my own and i didn't find good useful links that address my need. Can anyone set me on the path by providing sample applications or useful links ?Thanks in advance. P.S. I tried randomly some console application(Not sure if it is correct) but when i am adding Microsoft.Net.Http dependency to the project.json, i am getting an error like This dependency cannot be supported on .NET Core framework. +9218 area-System.Net Allow Socket.Connect{Async} to be used with a string-based IP addresses "As outlined in https://github.com/dotnet/corefx/issues/8768, on Unix we don't currently support using the instance Connect/ConnectAsync methods that take a string host or a DnsEndPoint, because they could map to multiple addresses, which means we might need to try reconnecting on the same socket after a failed attempt, and that's not supported with BSD sockets. They are potential workarounds we can explore as outlined in that issue, but they're non-trivial and/or have undesirable ramifications. However, one simple thing we can do is allow a string/DnsEndPoint version of an IPAddress, e.g. just as someone can provide an IPAddress, they can provide a string version of that IPAddress, such as ""127.0.0.1"". This is a common thing to do, and we can make it work just by attempting to parse the address. Fixes https://github.com/dotnet/corefx/issues/9189 Related to https://github.com/dotnet/corefx/issues/8768 cc: @ericeil, @cipop, @davidsh, @joshfree " +9220 area-System.Reflection DispatchProxy should emit interface properties and events metadata "Currently, `DispatchProxyGenerator` only emits accessor methods of the interface type, does not emit any properties and/or events. Thus, getting properties and/or events via reflection fails as following: ``` csharp interface IFoo { string Bar { get; set; } }; IFoo proxy = DispatchProxy.Create(); PropertyInfo[] props = proxy.GetType().GetProperties(); ``` In this point, it is natural to think that `props` has 1 property (string Bar), but it is actually an empty array even though `var bar = proxy.Bar` and `proxy.Bar = ""something""` can be compiled. It looks unnatural. In addition, it limits effectiveness of `DispatchProxy`. For example, when we generate a wrapper which implements `INotifyPropertyChanged` around underlying model object using `DispatchProxy`, we cannot do that because the data binding engine fails to retrieve `PropertyInfo` and then fails to bind object. Other AOP scenario may also be restricted by this issue. So, `DispatchProxyGenerator` should also emit properties and events of specified interface type as well as their accessor methods. " +9222 area-System.IO Consider File.WriteAll(Stream) method I frequently find myself wanting to dump all of the data from a stream to a new file. Currently, the best way to do that is: ``` using (var fs = new FileStream(pathForNewFile, FileMode.Create)) { streamIWantToDump.CopyTo(fs); } // OR using (var fs = File.OpenWrite(pathForNewFile)) { streamIWantToDump.CopyTo(fs); } // or async CopyTo equivalents. ``` while these are fine, I'd really like to be able to do: ``` File.WriteAllFromStream(pathForNewFile, streamIWantToDump); ``` where `WriteAllFromStream` reads from `streamIWantToDump` until its end is reached. +9224 area-System.Net Port to release/1.0.0: Allow whitespace after HTTP response header name Port https://github.com/dotnet/corefx/pull/9208 to release/1.0.0 +9225 area-System.Security System.Security.AccessControl Unix implementation It may be worth looking into providing an implementation of AccessControl on Unix. It would at least be nice to have some control over basic RWX permissions for user/group/all, or we could go deeper with getfacl and setfacl. Most of the things on Windows would likely have to be left out as it would be too far a stretch to map them to anything on Unix, but it's worth considering regardless. discussion started in https://github.com/dotnet/corefx/pull/8930. +9227 area-System.Net HttpRequestException StatusCode property Is it possible to add HttpStatusCode to the `HttpRequestException` class? It seems like we have the ability to add the status code [here](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpResponseMessage.cs#L161), but it's added to the exception message instead of an extra property on the exception. +9228 area-System.Net "Cancelling Http requests can result in ""The handle is invalid"" or other WinHTTP state errors" Http requests can be cancelled in various ways using a cancellation token or even a timeout. Sometimes the CI tests timeout contacting the Azure test server due to network congestion, so this results in the requests getting cancelled as well by the HttpClient.Timeout property. When Http requests are cancelled in WinHttpHandler, the WinHTTP handle is closed. This cancels any outstanding async operations in WinHTTP. However, the current CancellationTokenRegistration code is closing the handle without first seeing if there is an active operation in flight. ``` c# private async void StartRequest(object obj) { // ... using (state.CancellationToken.Register(s => ((WinHttpRequestState)s).RequestHandle.Dispose(), state)) { do { // ... } while (state.RetryRequest); } ``` Since this cancellation is happening on a different thread from the main StartRequest() logic, it results in in-deterministic behavior. PR #8693 (Fix cancellation of WinHttpHandler response stream reads) has a similar CancellationToken.Register logic but it correctly checks for an active operation. This same logic needs to apply to the StartRequest() operation. This is the root cause of the following issues: #8928 #8496 #8426 #8061 #8000 ## History of failures ``` System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The handle is invalid ``` Day | Build | OS | Test -- | -- | -- | -- 5/9 | 20170509.01 | Win7 | Timeout_SetTo30AndGetResponseFromLoopbackQuickly_Success 5/10 | 20170510.01 | Win7 | GetAsync_AllowedSSLVersion_Succeeds 5/11 | 20170511.01 | Win7 | GetAsync_AllowedSSLVersion_Succeeds 5/19 | 20170519.04 | Win7 | PostAsync_CallMethod_StreamContent 5/26 | 20170526.01 | Win7 | PostLongerContentLengths_UsesChunkedSemantics 5/30 | 20170530.06 | Win7 | SetDelegate_ConnectionSucceeds 6/4 | 20170604.02 | Win7 | NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds 6/7 | 20170607.01 | Win7 | PostSyncBlockingContentUsingChunkedEncoding_Success 6/13 | 20170613.02 | Win7 | SetDelegate_ConnectionSucceeds 6/14 | 20170614.01 | Win7 | PostAsync_CallMethod_StreamContent 6/15 | 20170615.03 | Win7 | NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds 6/15 | 20170615.03 | Win8.1 | GetAsync_ServerNeedsNonStandardAuthAndSetCredential_StatusCodeUnauthorized 6/16 | 20170616.01 | Win7 | PostAsync_CallMethod_EmptyContent 9/26 | 20170926.06 | Win7 | ReadAsStreamAsync_ValidServerResponse_Success 10/10 | 20171010.03 | Win7 | GetStreamAsync_ReadToEnd_Success 10/11 | 20171011.02 | Win7 | PostAsync_CallMethod_StreamContent 10/20 | 20171020.01 | Win7 | SetDelegate_ConnectionSucceeds 10/22 | 20171022.01 | Win7 | MaxResponseContentBufferSize_ThrowsIfTooSmallForContent 10/22 | 20171022.02 | Win7 | MaxResponseContentBufferSize_ThrowsIfTooSmallForContent 10/23 | 20171023.02 | Win7 | ReadAsStreamAsync_ValidServerResponse_Success 10/25 | 20171025.04 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 10/25 | 20171025.08 | Win7 | PostRewindableContentUsingAuth_NoPreAuthenticate_Success 10/25 | 20171025.08 | Win7 | PostAsync_CallMethod_StreamContent 10/27 | 20171027.03 | Win7 | PostUsingContentLengthSemantics_Success 10/30 | 20171030.01 | Win7 | PostRewindableContentUsingAuth_NoPreAuthenticate_Success 10/30 | 20171030.02 | Win7 | GetAsync_SupportedSSLVersion_Succeeds 10/31 | 20171030.05 | Win7 | SetDelegate_ConnectionSucceeds 11/3 | 20171103.07 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 11/6 | 20171106.03 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 11/6 | 20171106.01 | Win7 | PostRewindableContentUsingAuth_NoPreAuthenticate_Success 11/7 | 20171107.02 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 11/9 | 20171109.04 | Win7 | ReadAsStreamAsync_ValidServerResponse_Success 11/15 | 20171115.02 | Win7 | PostAsync_EmptyContent_ContentTypeHeaderNotSent 11/15 | 20171115.03 | Win7 | GetAsync_TrailingHeaders_Ignored 11/18 | 20171118.04 | Win7 | GetStreamAsync_ReadZeroBytes_Success 11/20 | 20171120.01 | Win7 | GetAsync_TrailingHeaders_Ignored 11/20 | 20171120.02 | Win7 | GetAsync_AllowedSSLVersion_Succeeds 11/22 | 20171122.02 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 11/23 | 20171123.02 | Win7 | GetAsync_ServerNeedsNonStandardAuthAndSetCredential_StatusCodeUnauthorized 11/24 | 20171124.01 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 11/27 | 20171127.06 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 11/28 | 20171128.01 | Win7 | SetDelegate_ConnectionSucceeds 11/28 | 20171128.07 | Win10 | UseCallback_NotSecureConnection_CallbackNotCalled 12/5 | 20171205.05 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 12/5 | 20171205.06 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 12/8 | 20171208.01 | Win7 | PostAsync_EmptyContent_ContentTypeHeaderNotSent 12/12 | 20171212.02 | Win7 | GetStreamAsync_ReadToEnd_Success 12/23 | 20171223.01 | Win7 | GetAsync_MaxLimited_ConcurrentCallsStillSucceed - [link](https://mc.dot.net/#/product/netcore/master/source/official%7E2Fcorefx%7E2Fmaster%7E2F/type/test%7E2Ffunctional%7E2Fcli%7E2F/build/20171223.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test%7E2FGetAsync_MaxLimited_ConcurrentCallsStillSucceed(maxConnections:%203,%20numRequests:%202,%20secure:%20True)) 12/24 | 20171224.02 | Win7 | GetAsync_MaxLimited_ConcurrentCallsStillSucceed - [link](https://mc.dot.net/#/product/netcore/master/source/official%7E2Fcorefx%7E2Fmaster%7E2F/type/test%7E2Ffunctional%7E2Fcli%7E2F/build/20171224.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test%7E2FGetAsync_MaxLimited_ConcurrentCallsStillSucceed(maxConnections:%203,%20numRequests:%202,%20secure:%20True)) 12/31 | 20171231.01 | Win7 | GetAsync_ServerNeedsNonStandardAuthAndSetCredential_StatusCodeUnauthorized - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171231.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FGetAsync_ServerNeedsNonStandardAuthAndSetCredential_StatusCodeUnauthorized(authHeaders:%20%5C%22WWW-Authenticate:%20CustomAuth%5C%5Cr%5C%5Cn%5C%22)) 1/5 | 20180105.01 | Win7 | SetDelegate_ConnectionSucceeds - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180105.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20Tls,%20Tls11,%20Tls12,%20requestOnlyThisProtocol:%20True)) 1/10 | 20180110.03 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180110.03/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpProtocolTests_Dribble~2FGetAsync_ExpectedStatusCodeAndReason_Success(statusLine:%20%5C%22HTTP~2F1.1%20201%20Created%5C%22,%20expectedStatusCode:%20201,%20expectedReason:%20%5C%22Created%5C%22)) 1/11 | 20180111.02 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180111.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpProtocolTests_Dribble~2FGetAsync_ExpectedStatusCodeAndReason_Success(statusLine:%20%5C%22HTTP~2F1.1%20500%20Internal%20Server%20Error%5C%22,%20expectedStatusCode:%20500,%20expectedReason:%20%5C%22Inter)) 1/14 | 20180114.01 | Win7 | PostAsync_EmptyContent_ContentTypeHeaderNotSent - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180114.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.PostScenarioTest~2FPostAsync_EmptyContent_ContentTypeHeaderNotSent(serverUri:%20https:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx)) 1/16 | 20180116.01 | Win7 | SetDelegate_ConnectionSucceeds - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180116.03/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20None,%20requestOnlyThisProtocol:%20True)) 1/18 | 20180118.04 | Win7 | MaxResponseContentBufferSize_ThrowsIfTooSmallForContent - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180118.04/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpProtocolTests~2FMaxResponseContentBufferSize_ThrowsIfTooSmallForContent(maxSize:%202,%20contentLength:%201,%20exceptionExpected:%20False)) 1/19 | 20180119.02 | Win7 | GetAsync_AllowedSSLVersion_Succeeds - [link](https://mc.dot.net/#/product/netcore/master/source/official%7E2Fcorefx%7E2Fmaster%7E2F/type/test%7E2Ffunctional%7E2Fcli%7E2F/build/20180119.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test%7E2FGetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol:%20Tls11,%20requestOnlyThisProtocol:%20False)) 1/19 | 20180119.04 | Win7 | PostUsingContentLengthSemantics_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180119.04/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.PostScenarioTest~2FPostUsingContentLengthSemantics_Success(serverUri:%20http:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx)) 1/21 | 20180121.01 | Win7 | MaxResponseContentBufferSize_ThrowsIfTooSmallForContent - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180121.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpProtocolTests~2FMaxResponseContentBufferSize_ThrowsIfTooSmallForContent(maxSize:%202,%20contentLength:%201,%20exceptionExpected:%20False)) 1/22 | 20180122.02 | Win7 | ReadAsStreamAsync_ValidServerResponse_Success - only in [catastrophic failure logs](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180122.02/workItem/System.Net.Http.Functional.Tests/wilogs) 1/23 | 20180123.01 | Win7 | PostRewindableContentUsingAuth_NoPreAuthenticate_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180123.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.PostScenarioTest~2FPostRewindableContentUsingAuth_NoPreAuthenticate_Success(serverUri:%20http:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx%3Fauth=basic&user=user1&password=password1)) 1/23 | 20180123.01 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180123.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpProtocolTests~2FGetAsync_ExpectedStatusCodeAndReason_Success(statusLine:%20%5C%22HTTP~2F1.1%20200%20OK%C2%80%5C%22,%20expectedStatusCode:%20200,%20expectedReason:%20%5C%22OK%3F%5C%22)) 1/23 | 20180123.01 | Win7 | GetAsync_MaxLimited_ConcurrentCallsStillSucceed - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180123.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test~2FGetAsync_MaxLimited_ConcurrentCallsStillSucceed(maxConnections:%203,%20numRequests:%205,%20secure:%20False)) 1/25 | 20180125.01 | Win7 | PostAsync_ReuseRequestContent_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180125.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FPostAsync_ReuseRequestContent_Success(remoteServer:%20http:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx)) 1/27 | 20180127.01 | Win7 | GetAsync_TrailingHeaders_Ignored - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180127.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FGetAsync_TrailingHeaders_Ignored(includeTrailerHeader:%20True)) 1/27 | 20180127.04 | Win10 | PostRepeatedFlushContentUsingChunkedEncoding_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180127.04/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.PostScenarioTest~2FPostRepeatedFlushContentUsingChunkedEncoding_Success(serverUri:%20http:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx)) 1/27 | 20180127.04 | Win7 | GetAsync_RedirectResponseHasCookie_CookieSentToFinalUri - only in [catastrophic failure logs](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180127.04/workItem/System.Net.Http.Functional.Tests/wilogs) 1/29 | 20180129.05 | Win7 | GetAsync_MaxLimited_ConcurrentCallsStillSucceed - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180129.05/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test~2FGetAsync_MaxLimited_ConcurrentCallsStillSucceed(maxConnections:%203,%20numRequests:%202,%20secure:%20True)) 1/30 | 20180130.05 | Win7 | PostEmptyContentUsingConflictingSemantics_Success - only in [catastrophic failure logs](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180130.05/workItem/System.Net.Http.Functional.Tests/wilogs) 1/31 | 20180131.05 | Win7 | SetDelegate_ConnectionSucceeds - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180131.05/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20Tls,%20Tls11,%20Tls12,%20requestOnlyThisProtocol:%20True)) 2/1 | 20180201.01 | Win7 | PostUsingChunkedEncoding_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180201.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.PostScenarioTest~2FPostUsingChunkedEncoding_Success(serverUri:%20https:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx)) 2/1 | 20180201.01 | Win7 | GetAsync_MaxLimited_ConcurrentCallsStillSucceed - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180201.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test~2FGetAsync_MaxLimited_ConcurrentCallsStillSucceed(maxConnections:%203,%20numRequests:%205,%20secure:%20False)) 2/1 | 20180201.05 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180201.05/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpProtocolTests~2FGetAsync_ExpectedStatusCodeAndReason_Success(statusLine:%20%5C%22HTTP~2F1.1%20200%20OK%C2%80%5C%22,%20expectedStatusCode:%20200,%20expectedReason:%20%5C%22OK%3F%5C%22)) 2/5 | 20180205.01 | Win7 | SetDelegate_ConnectionSucceeds - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180205.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20None,%20requestOnlyThisProtocol:%20False)) 2/6 | 20180206.04 | Win7 | SetDelegate_ConnectionSucceeds - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180206.04/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20None,%20requestOnlyThisProtocol:%20False)) 2/6 | 20180206.05 | Win7 | UseCallback_NotSecureConnection_CallbackNotCalled - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180206.05/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test~2FUseCallback_NotSecureConnection_CallbackNotCalled) 2/8 | 20180208.01 | Win7 | 2x GetAsync_ExpectedStatusCodeAndReason_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180208.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpProtocolTests~2FGetAsync_ExpectedStatusCodeAndReason_Success(statusLine:%20%5C%22HTTP~2F1.1%20200%20O%20K%5C%22,%20expectedStatusCode:%20200,%20expectedReason:%20%5C%22O%20K%5C%22)) and [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180208.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpProtocolTests~2FGetAsync_ExpectedStatusCodeAndReason_Success(statusLine:%20%5C%22HTTP~2F1.1%20600%20still%20valid%5C%22,%20expectedStatusCode:%20600,%20expectedReason:%20%5C%22still%20valid%5C%22)) 2/9 | 20180209.05 | Win7 | ThresholdExceeded_ThrowsException - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180209.05/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_MaxResponseHeadersLength_Test~2FThresholdExceeded_ThrowsException(responseHeaders:%20%5C%22HTTP~2F1.1%20200%20OK%5C%5Cr%5C%5CnContent-Length:%200%5C%5Cr%5C%5CnCustom-000%5C%22...,%20maxResponseHeadersLe)) 2/10 | 20180210.01 | Win7 | GetAsync_MaxLimited_ConcurrentCallsStillSucceed - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180210.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test~2FGetAsync_MaxLimited_ConcurrentCallsStillSucceed(maxConnections:%203,%20numRequests:%205,%20secure:%20False)) 2/10 | 20180210.01 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success - only in [catastrophic failure logs](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180210.01/workItem/System.Net.Http.Functional.Tests/wilogs) 2/13 | 20180213.01 | Win7 | ThresholdExceeded_ThrowsException 2/20 | 20180220.08 | Win7 | The handle is invalid | GetAsync_ExpectedStatusCodeAndReason_Success 2/21 | 20180221.01 | Win7 | The handle is invalid | GetAsync_ExpectedStatusCodeAndReason_Success 2/25 | 20180225.01 | Win7 | HttpClientHandler_IncorrectCredentials_Fails - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180225.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_Authentication_Test~2FHttpClientHandler_IncorrectCredentials_Fails(authenticateHeader:%20%5C%22WWW-Authenticate:%20Digest%20realm=%5C%5C%5C%22hello%5C%5C%5C%22,%20nonce=%5C%5C%5C%22%5C%22...)) 2/25 | 20180225.02 | Win10 | HttpClientHandler_Authentication_Succeeds - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180225.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_Authentication_Test~2FHttpClientHandler_Authentication_Succeeds(authenticateHeader:%20%5C%22Basic%20something,%20Digest%20something%5C%22,%20result:%20False)) 2/26 | 20180226.04 | Win7 | GetAsync_AllowedSSLVersion_Succeeds - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180226.04/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test~2FGetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol:%20Tls11,%20requestOnlyThisProtocol:%20True)) 2/28 | 20180228.07 | Win7 | ThresholdExceeded_ThrowsException 3/1 | 20180301.01 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 3/2 | 20180302.06 | Win7 | ReadAsStreamAsync_ValidServerResponse_Success 3/4 | 20180304.01 | Win7 | ReadAsStreamAsync_ValidServerResponse_Success 3/7 | 20180307.03 | Win7 | GetAsync_MaxLimited_ConcurrentCallsStillSucceed 3/7 | 20180307.03 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 3/7 | 20180307.04 | Win7 | ReadAsStreamAsync_ValidServerResponse_Success 3/8 | 20180308.01 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 3/8 | 20180308.09 | Win7 | GetAsync_SetCookieContainer_CookieSent 3/10 | 20180310.02 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 3/14 | 20180314.01 | Win7 | GetAsync_ExpectedStatusCodeAndReason_Success 3/17 | 20180317.03 | Win7 | GetAsync_MaxLimited_ConcurrentCallsStillSucceed 3/22 | 20180322.06 | Win7 | ThresholdExceeded_ThrowsException #### Similar failure with IOException wrapped in the middle ``` System.Net.Http.HttpRequestException : Error while copying content to a stream. ---- System.IO.IOException : The write operation failed, see inner exception. -------- System.Net.Http.WinHttpException : The handle is invalid ``` Day | Build | OS | Test -- | -- | -- | -- 11/17 | 20171117.04 | Win7 | PostUsingContentLengthSemantics_Success 12/2 | 20171202.01 | Win7 | PostAsync_ReuseRequestContent_Success +9233 area-System.Net Remove keepallprojectreferences from system.net.http and system.net.security tests Private testing has shown that the surface area discrepancy between Windows / Linux has been resolved, per @stephentoub 's suspicion. This changes removes the property which keeps tests from compiling against packages for these test libraries. Fixes issue https://github.com/dotnet/corefx/issues/8482 /cc @stephentoub @weshaggard +9234 area-System.Net NTLM credentials not sent by client when there are multiple WWW-Authenticate headers "We have a strange case after migrating from RC1 to RC2. We use HttpClient with default windows credentials authentication. The code works fine with one server, but does not work with another server. In the second case client just receives 401 error and does not start NTLM handshake. The only difference that I spotted was that second server sends two WWW-Authenticate headers (one with basic, another with HTML). When I intercepted the response with Fiddler, and removed ""WWW-Authenticate"" header with basic authorization, everything worked fine, client started NTLM handshake, and finally authorized. ```c# var handler = new HttpClientHandler(); handler.UseDefaultCredentials = true; var client = new HttpClient(handler); HttpResponseMessage response = await client.GetAsync(url); ``` Request/response from second server: ``` GET https://my-server:8081/tfs/DefaultCollection/_apis/projects?api-version=1.0 HTTP/1.1 Connection: Keep-Alive Accept-Encoding: gzip, deflate Host: my-server:8081 HTTP/1.1 401 Unauthorized Content-Type: text/html Server: Microsoft-IIS/8.5 Access-Control-Allow-Origin: * Access-Control-Max-Age: 3600 Access-Control-Allow-Methods: OPTIONS,GET,POST,PATCH,PUT,DELETE Access-Control-Expose-Headers: ActivityId,X-TFS-Session,X-MS-ContinuationToken Access-Control-Allow-Headers: authorization X-FRAME-OPTIONS: SAMEORIGIN Set-Cookie: Tfs-SessionId=XXX; path=/; secure Set-Cookie: Tfs-SessionActive=2016-06-07 20:44:23Z; path=/; secure WWW-Authenticate: Basic realm=""my-server"" WWW-Authenticate: NTLM P3P: CP=""CAO DSP COR ADMa DEV CONo TELo CUR PSA PSD TAI IVDo OUR SAMi BUS DEM NAV STA UNI COM INT PHY ONL FIN PUR LOC CNT"" X-Content-Type-Options: nosniff Date: Tue, 07 Jun 2016 20:44:22 GMT Content-Length: 1293 ``` OS: windows 10 x64, app running on coreclr RC2 " +9237 area-System.IO Discuss adding System.IO.Compression static shortcuts "# Problem I'd like to see some better support for compressing data in different forms quickly. Say you have a string right now - to compress it you have to do something like this: ``` string iWantToCompress = ""thisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokaythisisalongstringokay?""; byte[] bytesToCompress = Encoding.UTF8.GetBytes(iWantToCompress); using (var streamWithCompressed = new MemoryStream()) { using (var compressor = new DeflateStream(streamWithCompressed, CompressionMode.Compress, true)) { compressor.Write(bytesToCompress, 0, bytesToCompress.Length); } byte[] compressed = streamWithCompressed.ToArray(); } ``` # Proposal It would be nice if we could compress or decompress a string more intuitively, like so: ``` byte[] compressed = Deflate.Compress(iWantToCompress); ``` This would be somewhat similar to what we did in FileSystem by having`File.WriteAll*` operations to circumvent the need for a `FileStream`. # Design ### Deflate / Zlib / GZIP Deflate, Zlib, and GZip are all variants of the DEFLATE algorithm. The difference between them is that Deflate does not have a header, while ZLib and GZip have their own distinct headers. We currently support Deflate and GZip via DeflateStream and GZipStream, though there is [an issue for adding Zlib header support](https://github.com/dotnet/corefx/issues/7570). Do we add string support for all three types? If so, how? Some options: - Have one `Compression` static class with methods `Compress` and `Decompress` that take in an optional `HeaderType` enum with values `None`, `ZLib`, and `GZip`. The default would be None. ``` string compressed, decompressed; compressed = Compression.Compress(""stringToCompress"", HeaderType.GZip); compressed = Compression.Compress(""stringToCompress""); // uses Deflate i.e. no header is written decompressed = Compression.Decompress(compressed); // decompression can detect and interpret the header for any of the three DEFLATE types, so specifying it explicitly would override that behavior and force the header to conform to the given type ``` - Have 2-3 static classes `Deflate`, `GZip`, and `ZLib` that contain their own `Compress` and `Decompress` methods. ``` string compressed, decompressed; compressed = GZip.Compress(""stringToCompress""); compressed = Deflate.Compress(""stringToCompress""); decompressed = Deflate.Decompress(compressed); ``` - Add static `Compress` and `Decompress` methods to the existing `DeflateStream` and `GZipStream` classes: ``` string compressed, decompressed; compressed = GZipStream.Compress(""stringToCompress""); compressed = DeflateStream.Compress(""stringToCompress""); decompressed = DeflateStream.Decompress(compressed); ``` ### Parameters There should be three versions of Compress + three versions of Decompress: ``` Compress(string stringToCompress); Compress(string stringToCompress, Encoding encoding); Compress(byte[] bytesToCompress); Decompress(string stringToDecompress); Decompress(string stringToDecompress, Encoding encoding); Decompress(byte[] bytesToDecompress); ``` though I could see the value for `stream` equivalents (similar to https://github.com/dotnet/corefx/issues/9222) as well: ``` Compress(Stream streamToCompress); Decompress(Stream streamToCompress); ``` ### Return value Three sensible options: - Return a string with the results of the operation. :-1: - Return a byte[] with the results of the operation - Return a stream that can be read for the results of the operation. - The return type varies based on the parameter type e.g. `Compress(string)` returns a string, `Compress(byte[])` returns a byte[], etc. :-1: # Perf Using these shortcuts would circumvent the need for: - an Underlying stream (e.g. a MemoryStream) to hold the results of the (de)compression. - a DeflateStream/GZipStream object - A Deflater/Inflater object since we would be able to directly hit the ZLibStream SetInput/GetOutput methods because we know the entirety of the item being compressed/decompressed. The downside to this is that the thing being (de)compressed would have to first be entirely in memory, but for a string or byte[] array that isn't an issue. There would be a net memory savings of an object already in memory since we wouldn't need to allocate the internal arrays of a DeflateStream object. # Downsides - Every compress/decompress opens its own ZLibStreamHandle. For a lot of repeated operations this would be a performance hit. - Adding fine-grained Compression support (e.g. CompressionLevel) would be too clunky to be worthwhile - Adds a potentially large amount of new API " +9240 area-System.Net Add note about Unix HTTP header handling to release notes "To add to release notes: ### HttpClient handler header parsing strictness on Linux and OS X HttpClient response header parsing logic on Linux and on OS X fairly strictly follows the RFC. Certain ""invalid"" headers, such as with spaces between the header name and the colon, might be accepted by other browsers or even by HttpClient on Windows, but could be rejected when run on Linux or on OS X. " +9244 area-System.Net [release/1.0.0] HttpClientHandler tests failed with SSL Connect error on Debian and OSX In both master and release, hence tagging this issue for RTM, pending investigation. ``` MESSAGE: System.Net.Http.HttpRequestException : An error occurred while sending the request.\n---- System.Net.Http.CurlException : SSL connect error +++++++++++++++++++ STACK TRACE: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__69.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) ``` Test runs here http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/release_1.0.0/job/debian8.4_debug/1/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/release_1.0.0/job/debian8.4_release/1/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/release_1.0.0/job/osx_debug/78/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/debian8.4_release/24/testReport/ +9245 area-System.Data Cancelling an async SqlClient operation throws SqlException, not TaskCanceledException When using a cancellation token to cancel an SqlClient async operation, an SqlException is thrown rather than TaskCanceledException. This seems like problematic behavior, here's some analysis. On the problematic side, standard async APIs generally throw TaskCanceledException, and SqlClient is doing something different and therefore unexpected. Also, as a result, canceled SqlClient tasks don't have status Canceled, they're Faulted instead. This makes differentiating cancellations from real exceptions more difficult, and the problem is compounded if the SqlClient call is just part of a larger async operation (which again, will be faulted instead of canceled unless some manual specific handling is involved). The argument for the current behavior seems to be that all of SqlClient's server and network errors are raised as SqlException, making it easy to catch all database errors under a single exception type. On the other hand, it seems that cancellation isn't really an error condition as it's been requested by the user and is expected to occur. The TaskCanceledException is simply a mechanism for conveying the cancellation up the stack. For the record, this was originally reported by @mikkeljohnsen for Npgsql in https://github.com/npgsql/npgsql/issues/1146. Whatever is decided here for SqlClient will also be adopted for Npgsql (which currently behaves like SqlClient in this respect). +9248 area-System.Security X509Certificates.Tests.X509FilesystemTests.X509Store_AddAfterDispose This appears to be a test issue. Please investigate and confirm. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/release_1.0.0/job/fedora23_release/lastCompletedBuild/testReport/System.Security.Cryptography.X509Certificates.Tests/X509FilesystemTests/X509Store_AddAfterDispose/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/release_1.0.0/job/fedora23_debug/lastCompletedBuild/testReport/System.Security.Cryptography.X509Certificates.Tests/X509FilesystemTests/X509Store_AddAfterDispose/ ``` MESSAGE: System.Security.Cryptography.CryptographicException : The owner of '/mnt/resource/j/workspace/dotnet_corefx/release_1.0.0/fedora23_release/tempHome/.dotnet/corefx/cryptography/x509stores/teststorea5d8b5c4bda94ae2bdb99f5cc6afdcdd' is not the current user. +++++++++++++++++++ STACK TRACE: at Internal.Cryptography.Pal.DirectoryBasedStoreProvider.EnsureDirectoryPermissions(String path, UInt32 userId) at Internal.Cryptography.Pal.DirectoryBasedStoreProvider.Add(ICertificatePal certPal) at System.Security.Cryptography.X509Certificates.Tests.X509FilesystemTests.<>c.b__7_0(X509Store store, String storeDirectory) at System.Security.Cryptography.X509Certificates.Tests.X509FilesystemTests.RunX509StoreTest(Action`2 testAction) ``` ``` MESSAGE: System.Security.Cryptography.CryptographicException : The owner of '/mnt/resource/j/workspace/dotnet_corefx/release_1.0.0/fedora23_debug/tempHome/.dotnet/corefx/cryptography/x509stores/teststore99ac8254ea77466ebf1bf59151bb561d' is not the current user. +++++++++++++++++++ STACK TRACE: at Internal.Cryptography.Pal.DirectoryBasedStoreProvider.EnsureDirectoryPermissions(String path, UInt32 userId) at Internal.Cryptography.Pal.DirectoryBasedStoreProvider.Add(ICertificatePal certPal) at System.Security.Cryptography.X509Certificates.X509Store.Add(X509Certificate2 certificate) at System.Security.Cryptography.X509Certificates.Tests.X509FilesystemTests.<>c.b__7_0(X509Store store, String storeDirectory) at System.Security.Cryptography.X509Certificates.Tests.X509FilesystemTests.RunX509StoreTest(Action`2 testAction) at System.Security.Cryptography.X509Certificates.Tests.X509FilesystemTests.X509Store_AddAfterDispose() ``` +9249 area-Infrastructure VSO build should fail if package upload also fails "Currently all the new build pipeline results are ""green"" even though all builds have failed to publish since MyGet.org is returning HTTP 500. The pipeline should actually catch this and not report success. " +9252 area-System.Security [dev/cms_unix] EnvelopedCms Decode different behavior between Framework and Core Decode on Framework returns a CryptographicAttributeObjectCollection for unprotected attributes that has a CryptographicAttributeObject for every Oid listed in the encoding, even if it holds no attributes (if it's given an empty set for that oid). However Core won't create an object for the oid if the set is empty. Thus EnvelopedCms.UnprotectedAttributes.Count will return different things on framework and core. +9253 area-System.Globalization InvalidOperationException: Unknown error '3' from string.Normalize CentOS 7 https://github.com/aspnet/Home/issues/1536 ``` Unhandled Exception: System.InvalidOperationException: Unknown error '3'. at System.StringNormalizationExtensions.IsNormalized(String value, NormalizationForm normalizationForm) at Microsoft.AspNetCore.Server.Kestrel.Http.PathNormalizer.NormalizeToNFC(String path) ``` Windows Docker: ``` System.InvalidOperationException: Unknown error '3'. at System.StringNormalizationExtensions.Normalize(String value, NormalizationForm normalizationForm) at Microsoft.AspNetCore.Identity.UpperInvariantLookupNormalizer.Normalize(String key) ``` +9257 area-Meta Instructions to run perf tests need to be updated The instructions provided to run perf tests here https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/performance-tests.md need to be modified now that we have enabled execution of perf tests using dotnet cli. We also need to remove dependencies mentioned there that are no longer applicable. +9258 area-System.Net Initial System.Net.WebSockets.Client implementation on Unix This PR provides an initial implementation of the client WebSockets library for Unix. It's actually not Unix-specific, and rather is a managed implementation on top of System.Net.Sockets and System.Net.Security. I opted to start with a managed implementation as there does not appear to be a universally-adopted native implementation we can utilize. I looked to see if we could just adopt the Mono implementation, but it's based on HttpWebRequest, which in corefx is built on top of HttpClient, which isn't particularly amenable to being used for websockets (and libcurl does not have websockets support). This is passing all of the unit/functional tests, including a few more I added, though I'm fairly confident that there are additional bugs lurking (i.e. I assume there's going to be a bug tail here). I'm opting to check this in as an initial implementation now in hopes that others will be able to help with finding and fixing issues. Along with that, I've spent close to zero time looking at performance; I'm sure there are opportunities to make meaningful improvements, but for now I've opted for simplicity and functionality. There are also two features I didn't implement: proxies and credentials... but it doesn't look like either the WinHttp or WinRT implementations pay attention to those either. cc: @ericeil, @cipop, @davidsh, @bartonjs Fix https://github.com/dotnet/corefx/issues/2486 +9260 area-System.Net Update PlatformNotSupportedException message for Socket.Connect on Unix Just the exception message improvement from https://github.com/dotnet/corefx/pull/9218. +9261 area-System.Net Port to release/1.0.0: Update PlatformNotSupportedException message for Socket.Connect on Unix Port https://github.com/dotnet/corefx/pull/9260 to release/1.0.0 +9265 area-System.IO AccessViolationException in zlib on CLI Windows build ## Repro steps: - step 1: get a CLI repo - step 1.a: add a remote for github.com/dotnet/cli - step 2: git checkout -b preview2 upstream/rel/1.0.0-preview2 - In case the cli repo moves forward, and somehow that causes the AV to no longer occur: use this sha1: 3c9f8dd99be5918a504f34260f4d6016a086ea99 - step 3: build.cmd -Targets Prepare,Compile - that should succeed - step 4: build.cmd -Targets Prepare,InitPackage,GenerateVersionBadge,GenerateZip,GenerateMsis,GenerateNugetPackages - that will hit the AV ## Notes I’ve uploaded a mini dump with heap: `\\scratch2\scratch\eerhardt\dotnet.dmp` I was able to find clrcompression symbols on the MyGet symbol server: https://dotnet.myget.org/F/dotnet-core/symbols/ Unfortunately, talking with @dagood we are not able to locate the coreclr.pdb file matching the build from yesterday’s CoreCLR build: 1.0.24207.2. I still have the process broken on my machine with an attached debugger, here is the callstack: ``` > clrcompression.dll!fizzle_matches(internal_state * s, match * current, match * next) Line 121 C clrcompression.dll!deflate_medium(internal_state * s, int flush) Line 265 C clrcompression.dll!deflate(z_stream_s * strm, int flush) Line 982 C 00007ff7c22e8403() Unknown 0000020f85a48610() Unknown 00000016a837cb40() Unknown 0000020f876fd5b8() Unknown 0000020f876ff710() Unknown 0000be2449de0620() Unknown coreclr.dll!00007ff8220276b0() Unknown ``` line 121 is: ``` C static void fizzle_matches(deflate_state *s, struct match *current, struct match *next) { IPos limit; unsigned char *match, *orig; int changed = 0; struct match c,n; /* step zero: sanity checks */ if (current->match_length <= 1) return; match = s->window - current->match_length + 1 + next->match_start ; orig = s->window - current->match_length + 1 + next->strstart ; /* quick exit check.. if this fails then don't bother with anything else */ if (zlikely(*match != *orig)) <<<<< HERE return; ``` /cc @ianhays @stephentoub @Petermarcu +9268 area-System.Data Query: options for connecting to Oracle databases Hi I am considering using the cross platform dot net framework for building a major new application. But I have hit an issue - I am unsure whether the current corefx supports connecting to Oracle databases or not. I need to be able to support multiple database backends, including Oracle and SQL Server. Thanks +9270 area-System.Net [Release/1.0.0]HttpClientHandlerTest.PostAsync_CallMethod_StreamContent failed on fedora debug This test is failing intermittently between builds, filing it under RTM for investigation. ``` MESSAGE: System.Threading.Tasks.TaskCanceledException : A task was canceled. +++++++++++++++++++ STACK TRACE: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__55.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/release_1.0.0/job/fedora23_debug/3/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/release_1.0.0/job/fedora23_debug/5/ +9272 area-System.Net [Release/1.0.0]System.Net.Security.Tests failing on Opensuse "``` 15:50:21 Copyright (C) 2014 Outercurve Foundation. 15:50:21 15:50:21 Discovering: System.Net.Security.Unit.Tests 15:50:21 Discovered: System.Net.Security.Unit.Tests 15:50:21 Starting: System.Net.Security.Unit.Tests 15:50:22 Finished: System.Net.Security.Tests 15:50:22 15:50:22 === TEST EXECUTION SUMMARY === 15:50:22 System.Net.Security.Tests Total: 97, Errors: 0, Failed: 0, Skipped: 3, Time: 3.204s 15:50:22 Finished running tests. End time=22:51:38. Return value was 0 15:50:22 /mnt/resource/j/workspace/dotnet_corefx/release_1.0.0/opensuse13.2_debug/Tools/tests.targets(202,5): warning MSB3073: The command ""/mnt/resource/j/workspace/dotnet_corefx/release_1.0.0/opensuse13.2_debug/bin/tests/Linux.AnyCPU.Debug/System.Net.Security.Tests/netcoreapp1.0/RunTests.sh /mnt/resource/j/workspace/dotnet_corefx/release_1.0.0/opensuse13.2_debug/packages/"" exited with code -1. [/mnt/resource/j/workspace/dotnet_corefx/release_1.0.0/opensuse13.2_debug/src/System.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj] 15:50:22 /mnt/resource/j/workspace/dotnet_corefx/release_1.0.0/opensuse13.2_debug/Tools/tests.targets(211,5): error : One or more tests failed while running tests from 'System.Net.Security.Tests' please check log for details! ``` " +9274 area-System.Runtime "OS X is now branded as ""macOS""" "**Update (6/13):** Apple has officially announced that ""OS X"" is now ""macOS"". --- It appears highly likely that ""OS X"" will be rebranded as ""macOS"" next week at WWDC. - http://9to5mac.com/2016/06/08/latest-hint-at-macos-rebranding-of-os-x-appears-in-new-app-store-guidelines/ - https://daringfireball.net/linked/2016/03/30/macos Is it too late to tweak the naming of new .NET Core APIs with `OSX`, or will the first version of .NET Core RTM with obsolete naming? e.g. [`RuntimeInformation.IsOSPlatform(OSPlatform.OSX)`](https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/OSPlatform.cs#L13) -> `OSPlatform.Mac` or `OSPlatform.MacOS` or `OSPlatform.Darwin` or ? " +9276 area-System.Net Race condition in HttpClient on Unix when redirecting a post request https://github.com/aspnet/MusicStore/pull/683 +9278 area-Infrastructure We should archive msbuild.* even on failed CI jobs Today we only archive msbuild log files if the job completes successfully, but the logs have value in cases where the job fails as well. +9282 area-System.Net Change how request content is read in libcurl libcurl wants to be able to call back to CurlHandler at arbitrary times to ask it to seek in the request content stream. This can happen for redirects, for auth challenges, etc. Handling this has been a challenge due to the way HttpContent is designed. HttpContent provides two modes for accessing the data via Streams: - Push: You call CopyToAsync(Stream, TransportContext) to have the data from the HttpContent copied into the target stream. - Pull: You call ReadAsStreamAsync to get a stream that represents the data in the HttpContent, and you can read from that. The pull model is ideal for libcurl. It allows us to get a stream which we can jump around in if it's seekable, and we can request a new stream if it's not seekable. The push model is challenging, as we're forced to put in plcae an intermediary, a push-pull adapter that let's us effectively read from a type that's trying to write to us. There is however an issue with the pull model. With the push model, StreamContent's CopyToAsync tracks whether the stream has already been accessed, and if it has and if it's non-seekable, trying to call CopyToAsync again throws to alert you that rewinding simply isn't possible. The pull StreamContent's ReadAsStreamAsync, however, does not. This means that if you get a non-seekable stream and you call ReadAsStreamAsync again, you get back the same stream (or, rather, a read-only wrapper around the same stream) that is at the existing position rather than the original position. Then resending that content will end up sending less data than it should have, resulting in failure, just not abruptly. That issue caused us to go down the path of the more challenging push model and trying to use CopyToAsync. However, recently that's been shown to have even worse effects. We don't have the ability to cancel CopyToAsync, which means that if the first copy is still in-flight when we try to seek, we have no choice but to fail, even if the stream is actually seekable, as most are (e.g. memory streams, file streams, etc.) This can happen deterministically in cases where libcurl decides to redirect before it's fully sent the request content, but it's also prone to race conditions even for cases where the request content is fully sent but the copy hasn't been officially marked as complete by the time libcurl tries to redirect. ASP.NET recently began hitting this frequently on some machines in their lab runs. While there's no perfect solution, the best solution is to go with the one that's the simplest code, the fastest code, and the deterministic outcome: the pull model. This commit deletes a whole bunch of code that was there in support of the push model, adds just a bit of code to enable the pull model, and fixes up a couple of tests that were written to expect the push model. Fixes https://github.com/dotnet/corefx/issues/9276 cc: @davidsh, @cipop, @ericeil, @bartonjs, @mconnew, @JunTaoLuo @mconnew, is this going to cause any issues for WCF? @JunTaoLuo, can you help verify that this makes the MusicStore issue go away and that it doesn't introduce any other such issues? @davidsh, I know this isn't the model that was intended for an HttpClientHandler consuming HttpContent, but I don't see any way to do so correctly/without race conditions given the APIs available. +9293 area-Infrastructure Fedora /mnt/resource is an NTFS mount, making permissions checks fail ``` $ mount | grep resource /dev/sdb1 on /mnt/resource type fuseblk (rw,relatime,user_id=0,group_id=0,allow_other,blksize=4096) ``` fuseblk is NTFS, which doesn't support Unix mode-based permissions; and leads to things like the X509Store permissions set/checks failing. +9294 area-System.Runtime Allow setting the stack trace on deserialized exception object ## Proposal Provide a setter property for SourceExceptionStackTrace in ExceptionDispatchInfo class ```C# namespace System.Runtime.ExceptionServices { public sealed class ExceptionDispatchInfo { public string SourceExceptionStackTrace { get; set; } } } ``` ## Details Exception serialization scenario is challenging as there is no easy way can deserialize an exception object and include the stack trace in the de-serialized object. The reason is Exception lack supporting a StackTrace setter property or providing a constructor that can take stack trace as a paramter. The net core supports binary serialization which can serialize and de-serialize the exception objects including the stack trace but this approach is not helping much for the following reasons: - Net core is not promising supporting binary serialization across different net core versions (or with other targets like full framework). - Other serialization engines (e.g. DateContractSerialization) will not benefit from the binary serialization and need to have a way to fully deserialize exception objects. - When binary deserialize exception object which include a stack trace and then throw this de-serialized object, the stack trace after throwing is the one reflect the place where we threw this exception but the original de-serialized stack trace will be lost. The original stack trace will be preserved only in case re-throw previously thrown exception. The following code demonstrate this issue ```C# try { throw new Exception(); } catch (Exception e) { using (MemoryStream ms = new MemoryStream(100)) { BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(ms, e); // reset the stream ms.Position = 0; var excp = (Exception)formatter.Deserialize(ms); Console.WriteLine(excp.StackTrace); // this will show the right original serialized stack try { throw excp; } catch (Exception excp1) { Console.WriteLine(excp1.StackTrace); } // this will show the new stack but the old de-serialized stack will be lost. throw; // the thrown exception will include the original exception stack in “e” object } } ``` To support the scenario, we need to add SourceExceptionStackTrace property to ExceptionDispatchInfo class. The following code demonstrate how ExceptionDispatchInfo can be used to get the exception with the original serialized stack trace and also how to throw the exception with the new stack trace. ```C# ExceptionDispatchInfo edi = ExceptionDispatchInfo.Capture(deserializedException); edi.SourceExceptionStackTrace = originalStackTrace; Exception deserializedExceptionWithOriginalStackTrace = edi.SourceException; edi.Throw(); ``` ## Behavior ExceptionDispatchInfo.SourceExceptionStackTrace The setter of this property will overwrite the current source trace on the source exception. the setter will not affect any other properties in the source exception object. The getter will return the stack trace from the source exception. this can be empty string if there is no stack trace in the source #exception ## Alternative Design We can think in adding a setter for Exception.StackTrace property or expose a method like Exception AddPreservedStack(string stackTrace)) ```C# namespace System { public class Exception : ISerializable, _Exception { public virtual String StackTrace { get; set; } } } ``` I got some feedback from different people that they don't like this option as in the main scenarios nobody should set the stack trace on the exception objects and this option can cause confusion and people misuse it. +9296 area-System.Net Test failure: WebSockets.Client.Tests.SendReceiveTest.SendReceive_PartialMessage_Success (server: wss://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx) http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/release_1.0.0/job/outerloop_windows_nt_debug/lastCompletedBuild/testReport/System.Net.WebSockets.Client.Tests/ClientWebSocketTest/SendReceive_PartialMessage_Success_server__wss___corefx_net_cloudapp_net_WebSocket_EchoWebSocket_ashx_/ ``` MESSAGE: System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response +++++++++++++++++++ STACK TRACE: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.WebSockets.WinHttpWebSocket.d__30.MoveNext() in d:\j\workspace\outerloop_win---b9d0e81a\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WinHttpWebSocket.cs:line 458 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.WebSockets.Client.Tests.ClientWebSocketTest.d__16.MoveNext() in d:\j\workspace\outerloop_win---b9d0e81a\src\System.Net.WebSockets.Client\tests\ClientWebSocketTest.cs:line 195 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +9304 area-System.Net "UDP Socket.ConnectAsync(IPAddress, int) fails with ""An invalid argument was supplied""" "Related to https://github.com/dotnet/corefx/issues/4968... This code works fine on desktop: ``` C# var c = new UdpClient(); c.Client.EndConnect(c.Client.BeginConnect(IPAddress.Parse(""114.114.114.114""), 53, null, null)); ``` but this fails in corefx: ``` [Fact] public async Task ConnectAsync_IPAddress_Success() { using (var c = new UdpClient()) { await c.Client.ConnectAsync(IPAddress.Parse(""114.114.114.114""), 53); } } ``` with the error: ``` System.Net.Sockets.Tests.UdpClientTest.ConnectAsync_IPAddress_Success [FAIL] System.Net.Sockets.SocketException : An invalid argument was supplied Stack Trace: c:\Users\stoub\Source\repos\corefx\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(5774,0): at System.Net.Sockets.Socket.BeginConnectEx(EndP oint remoteEP, Boolean flowContext, AsyncCallback callback, Object state) c:\Users\stoub\Source\repos\corefx\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(2296,0): at System.Net.Sockets.Socket.BeginConnect(EndPoi nt remoteEP, AsyncCallback callback, Object state) c:\Users\stoub\Source\repos\corefx\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(2411,0): at System.Net.Sockets.Socket.BeginConnect(IPAddr ess address, Int32 port, AsyncCallback requestCallback, Object state) c:\Users\stoub\Source\repos\corefx\src\System.Net.Sockets\src\System\Net\Sockets\SocketTaskExtensions.cs(43,0): at System.Net.Sockets.SocketTaskExte nsions.<>c.b__3_0(IPAddress targetAddress, Int32 targetPort, AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2](Func`5 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory.FromAsync[TArg1,TArg2](Func`5 beginMethod, Action`1 endMethod, TArg1 arg1, TArg2 arg2, Object state) c:\Users\stoub\Source\repos\corefx\src\System.Net.Sockets\src\System\Net\Sockets\SocketTaskExtensions.cs(42,0): at System.Net.Sockets.SocketTaskExte nsions.ConnectAsync(Socket socket, IPAddress address, Int32 port) c:\Users\stoub\Source\repos\corefx\src\System.Net.Sockets\tests\FunctionalTests\UdpClientTest.cs(93,0): at System.Net.Sockets.Tests.UdpClientTest.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` " +9320 area-System.Net Expected !isStopped assert in sockets on Fedora http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_fedora23_debug_prtest/1/consoleText ``` Expected !IsStopped at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Assert(Boolean condition, String message) at System.Net.Sockets.SocketAsyncContext.OperationQueue`1.Enqueue(TOperation operation) at System.Net.Sockets.SocketAsyncContext.TryBeginOperation[TOperation](OperationQueue`1& queue, TOperation operation, SocketEvents events, Boolean maintainOrder, Boolean& isStopped) at System.Net.Sockets.SocketAsyncContext.ReceiveFromAsync(Byte[] buffer, Int32 offset, Int32 count, SocketFlags flags, Byte[] socketAddress, Int32 socketAddressLen, Action`5 callback) at System.Net.Sockets.SocketAsyncContext.ReceiveAsync(Byte[] buffer, Int32 offset, Int32 count, SocketFlags flags, Action`5 callback) at System.Net.Sockets.SocketPal.ReceiveAsync(SafeCloseSocket handle, Byte[] buffer, Int32 offset, Int32 count, SocketFlags socketFlags, OverlappedAsyncResult asyncResult) at System.Net.Sockets.Socket.DoBeginReceive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, OverlappedAsyncResult asyncResult) at System.Net.Sockets.Socket.BeginReceive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, SocketError& errorCode, AsyncCallback callback, Object state) at System.Net.Sockets.Socket.BeginReceive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, AsyncCallback callback, Object state) at System.Net.Sockets.NetworkStream.BeginRead(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state) at System.Net.Sockets.NetworkStream.<>c.b__58_0(Byte[] bufferArg, Int32 offsetArg, Int32 sizeArg, AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2,TArg3](Func`6 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory.FromAsync[TArg1,TArg2,TArg3,TResult](Func`6 beginMethod, Func`2 endMethod, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state) at System.Net.Sockets.NetworkStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 size, CancellationToken cancellationToken) at System.IO.Stream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count) at System.IO.StreamApmExtensions.BeginRead(Stream stream, Byte[] buffer, Int32 offset, Int32 count, AsyncCallback callback, Object state) at System.Net.FixedSizeReader.StartReading() at System.Net.FixedSizeReader.AsyncReadPacket(AsyncProtocolRequest request) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.WriteCallback(IAsyncResult transportResult) at System.Threading.Tasks.TaskToApm.<>c__DisplayClass3_0.b__0() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) at System.Threading.Tasks.Task.FinishContinuations() at System.Threading.Tasks.Task`1.TrySetResult(TResult result) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) at System.Net.LazyAsyncResult.Complete(IntPtr userToken) at System.Net.ContextAwareResult.CompleteCallback() at System.Net.ContextAwareResult.<>c.b__17_0(Object s) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Net.ContextAwareResult.Complete(IntPtr userToken) at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) at System.Net.LazyAsyncResult.InvokeCallback(Object result) at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionCallback(Int32 numBytes, SocketError errorCode) at System.Net.Sockets.OverlappedAsyncResult.CompletionCallback(Int32 numBytes, Byte[] socketAddress, Int32 socketAddressSize, SocketFlags receivedFlags, SocketError errorCode) at System.Net.Sockets.SocketAsyncContext.<>c.b__46_0(Object args) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.QueueUserWorkItemCallbackDefaultContext.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() ``` +9324 area-System.Net Fix hanging System.Net.Http test We've been plagued for the last few weeks by CI jobs on Windows that hang in System.Net.Http.Functional.Tests, causing the whole job to fail after it eventually times out after two hours. I managed to find a CI server that had a process still alive after having experienced the hang and was able to debug it. The Dispose_DisposingHandlerCancelsActiveOperationsWithoutResponses test is creating three loopback servers and using HttpClient.GetAsync to access each of them. It's then Disposing of the HttpClient to verify that requests which should have been canceled are canceled. The problem is that there's a race condition. We may end up canceling one of the requests before it even gets a chance to connect to the server. As a result, the server remains stuck in an asynchronous accept on it socket, and at the end of the test, we're waiting for all of the servers to shutdown... deadlock. The fix is simple: don't wait for the servers... we don't care about their results, and they'll all be torn down when we exit the inner delegate. Fixes #8926 cc: @davidsh, @ericeil +9325 area-System.Reflection The NetNative implementation of System.Reflection.TypeExtensions does not properly handle generic method overriding. "Consider this class: ``` public abstract class Base { public abstract TResult Foo(Func f); } public sealed class Derived { public override TResult Foo Func f) { return null; } } ``` Calling typeof(Derived).GetMethods() on this is expected to return only Derived.Foo. However, on .NET Native, it returns Base.Foo as well. The bug is in the helper method: AreNamesAndSignaturesEqual(MethodInfo method1, MethodInfo method2) https://github.com/AtsushiKan/corefx/blob/master/src/System.Reflection.TypeExtensions/src/Internal/Reflection/Extensions/NonPortable/MemberPolicies.cs#L63 This method detects overrides by comparing the method name and parameter types. The simple comparison of parameter types is insufficent to detect the override here because the TResult of Base.Foo is considered to be a different type from the TResult of Derived.Foo. We need to do something different here. Probably we'll have to manually compare the types using recursion and define the comparison of generic method parameters as ""compare the position only."" " +9327 area-System.Runtime Fill out AppDomain There are several buckets here, which likely should be broken out. We know .UnhandledException, .CurrentDomain, .GetAssemblies, .GetCurrentThreadId are heavily used in Xamarin/Unity and should be straightforward to add. DefineDynamicAssembly is in the next bucket. True AppDomain support would be a larger challenge. We may distinguish design time support (eg for Unity IDE) vs. bulletproof runtime level support. +9329 area-System.Runtime Fill out GC class Below is what's in Xamarin Android but not in Core. If these are all still in the implementation, we should expose them. ``` public static class GC { public static void CancelFullGCNotification(); public static int GetGeneration(WeakReference wo); public static void RegisterForFullGCNotification(int maxGenerationThreshold, int largeObjectHeapThreshold); public static GCNotificationStatus WaitForFullGCApproach(); public static GCNotificationStatus WaitForFullGCApproach(int millisecondsTimeout); public static GCNotificationStatus WaitForFullGCComplete(); public static GCNotificationStatus WaitForFullGCComplete(int millisecondsTimeout); } public enum GCNotificationStatus { Canceled = 2, Failed = 1, NotApplicable = 4, Succeeded = 0, Timeout = 3, } ``` +9331 area-Serialization Refactor Exception Messages New Added in ReflectionBasedDCS Branch +9333 area-Serialization Fixes for Reflection Based DCS in NetNative This PR include several bug fixes for reflection based DCS in Net Native. Each commit addressed one issue. @roncain @mconnew @zhenlan Can you please help review the PR? Before reviewing this, it might be worth to take a look at three PRs that enabled reflection based DCS in Net Native: https://github.com/dotnet/corefx/pull/8629 https://github.com/dotnet/corefx/pull/8704 https://github.com/dotnet/corefx/pull/8887 Please feel free to comment on parts that had been checked in. +9337 area-System.Net [release/1.0.0] Many networking tests fail with ---- System.ComponentModel.Win32Exception : Unable to load DLL 'System.Net.Security.Native': The specified module could not be found. One example failure: ``` Starting KDC.. System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_EchoServer_ClientWriteRead_Successive_Async_Success [FAIL] System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. ---- System.ComponentModel.Win32Exception : Unable to load DLL 'System.Net.Security.Native': The specified module could not be found. (Exception from HRESULT: 0x8007007E) Stack Trace: at System.Net.Security.NegoState.ValidateCreateContext(String package, Boolean isServer, NetworkCredential credential, String servicePrincipalName, ChannelBinding channelBinding, ProtectionLevel protectionLevel, TokenImpersonationLevel impersonationLevel) at System.Net.Security.NegotiateStream.BeginAuthenticateAsClient(NetworkCredential credential, ChannelBinding binding, String targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel, AsyncCallback asyncCallback, Object asyncState) at System.Net.Security.NegotiateStream.BeginAuthenticateAsClient(NetworkCredential credential, String targetName, AsyncCallback asyncCallback, Object asyncState) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2](Func`5 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory.FromAsync[TArg1,TArg2](Func`5 beginMethod, Action`1 endMethod, TArg1 arg1, TArg2 arg2, Object state) at System.Net.Security.NegotiateStream.AuthenticateAsClientAsync(NetworkCredential credential, String targetName) at System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_EchoServer_ClientWriteRead_Successive_Async_Success() ----- Inner Stack Trace ----- at System.Net.Security.NegotiateStreamPal.AcquireCredentialsHandle(String package, Boolean isServer, NetworkCredential credential) at System.Net.NTAuthentication.Initialize(Boolean isServer, String package, NetworkCredential credential, String spn, ContextFlagsPal requestedContextFlags, ChannelBinding channelBinding) at System.Net.NTAuthentication..ctor(Boolean isServer, String package, NetworkCredential credential, String spn, ContextFlagsPal requestedContextFlags, ChannelBinding channelBinding) at System.Net.Security.NegoState.ValidateCreateContext(String package, Boolean isServer, NetworkCredential credential, String servicePrincipalName, ChannelBinding channelBinding, ProtectionLevel protectionLevel, TokenImpersonationLevel impersonationLevel) ``` +9342 area-Serialization Speed up JsonWriterDelegator.WriteDateTimeInDefaultFormat. "While investigating https://github.com/dotnet/coreclr/issues/5558 it was noted that JsonWriterDelegator.WriteDateTimeInDefaultFormat can be sped up considerably for some cases. @mconnew had the following comments: Looking at that code, my guess would be fetching the timezone info from Linux is the expensive operation. This can be easily avoided in the first if-block and this code sped up considerably. This is purely to check an edge case where the regular code won’t catch it and is unlikely to happen but is there for correctness. We can do a cheaper pre-check to reduce the chance of hitting this code. The result from TimeZoneInfo.Local.GetUtcOffset(value) is bounded to +/- 24 hours so we can have some constants which allow us to check if (DateTime.MinValue + 24 hours) < value < (DateTime.MaxValue – 24 hours). If this is true, then we don’t need to do the more expensive check. If it’s false, then we do the full more expensive check. It could be something like this: ``` if (value.Kind != DateTimeKind.Utc) { // lowBound and highBound should be cached statics DateTime lowBound = DateTime.MinValue.AddDays(1.0); DateTime highBound = DateTime.MaxValue.AddDays(-1.0); if(lowBound.CompareTo(value)>0 || highBound.CompareTo(value)<0) { long tickCount = value.Ticks - TimeZoneInfo.Local.GetUtcOffset(value).Ticks; if ((tickCount > DateTime.MaxValue.Ticks) || (tickCount < DateTime.MinValue.Ticks)) { throw XmlObjectSerializer.CreateSerializationException(SR.JsonDateTimeOutOfRange, new ArgumentOutOfRangeException(nameof(value))); } } } ``` In the Local/Unspecified switch block, the code can be rewritten like this: ``` // +""zzzz""; //TimeSpan ts = TimeZone.CurrentTimeZone.GetUtcOffset(value.ToLocalTime()); TimeSpan ts = TimeZoneInfo.Local.GetUtcOffset(value.ToLocalTime()); writer.WriteString(string.Format(CultureInfo.InvariantCulture, ""{0:+00;-00}{1:00;00}"", ts.Hours, ts.Minutes)); break; ``` This results in only one call to writer.WriteString and removes some string concatenations and a bunch of comparisons. " +9343 area-System.Net Use stackalloc for UrlEncode in WebUtility This contains basically the same changes as #8535, except without the branching-related stuff. I've refactored `WebUtility.UrlEncode` to use `stackalloc` instead of allocating on the heap under a certain threshold (<= 1024 bytes). I also did a bit of refactoring/made sure to comment a lot of the added code for clarity. ### Perf impact The changes made here seem to make the method 2x faster for inputs that meet the `stackalloc` criteria. (Disclaimer: I tested against the RC2 packages, as opposed to a build of the master branch of the repo.) - [Test code](https://gist.github.com/jamesqo/a002901c2925967d21052a0945ed54ba) - [Old results](https://gist.github.com/jamesqo/9a95188d52609d778a7deeab9897772e) - [New results](https://gist.github.com/jamesqo/79331f536eefd66cd8bd7361aa7247d4) cc @davidsh, @ellismg, @hughbe, @stephentoub +9347 area-System.Reflection Stress: Investigate re-adding Reflection.Emit tests to runs The Reflection.Emit tests are causing daily dumps to be generated because of their high heap allocations causing OutOfMemoryExceptions everywhere. Turn them off with `[Trait(“Stress”, “Excluded”)]`. +9350 area-System.Net System.Net.Ping ignores PingOptions on unix [Relevant code](https://github.com/dotnet/corefx/blob/master/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs#L59) Ignoring DontFragment or TTL produces different behaviour between linux and windows builds when implementing a simple ICMP trace. Is this the intended/by-design behaviour? Wouldn't a NotImplementedException if PingOptions are given/non default be a nicer signal to the developer? +9353 area-System.Net Come up with a plan for the NegotiateStream tests on Linux The tests have both prerequisites and modify machine state during execution. It would be great if we could eliminate the machine state modifications. +9357 area-System.Net System.Net.Http.CurlException HttpClient PostAsync "### **Environment** > DISTRIB_ID=Ubuntu > DISTRIB_RELEASE=16.04 > DISTRIB_CODENAME=xenial > DISTRIB_DESCRIPTION=""Ubuntu 16.04 LTS"" ### **Curl version** > curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3 > Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp > Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets ### **Code** ``` C# var client = new HttpClient() { BaseAddress = new Uri(""http://example.com/"") }; var formContent = new FormUrlEncodedContent(new[] { new KeyValuePair(""key"", ""val"") }); var response = await client.PostAsync(""/some.php"", formContent, CancellationToken.None); ``` ### **Target** > dotnet 1.0.0-preview1-002702 > ""System.Net.Http"": ""4.0.1-rc2-24027"" ### **Exception** > Unhandled Exception: System.AggregateException: One or more errors occurred. (An error occurred while sending the request.) ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: _**Failure when receiving data from the peer**_ > at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) > at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(EasyRequest completedOperation, CURLcode messageResult) ### **Run Curl directly is working** `curl -c cookies.txt -b cookies.txt -X POST --form ""key=val"" http://example.com/some.php -L ` ~~Can't get it working with dotnet, everything else just fine, except when I post **FormUrlEncodedContent**. I tried different setup with HttpClientHandler, same exception.~~ #### **Update!** Running with **1.0.0-preview2-003119** works fine. " +9369 area-System.Security Add static hash helper methods "Computing a hash code currently requires this code: ``` byte[] hashBytes; using (var hashAlgo = SHA256.Create()) hashBytes = hashAlgo.ComputeHash(bytes); ``` Or the more awkward `HashAlgorithm.Create(""SHA256"")`. This code is alright. It's not the end of the world. But I think it should be slimmer than that: ``` var hashBytes = SHA256.ComputeHash(bytes); ``` Benefits: 1. This is more terse. 2. It's an expression as opposed to a statement. That makes it more composable. It can be a subexpression for example in a LINQ query. 3. No way to forget resource cleanup or mess up code quality otherwise. 4. `SHA256.ComputeHash` can look at it's input size and dynamically pick the fastest implementation. I found the following to be optimal through testing on Windows x64: `estimatedDataLength <= 512 ? new SHA1Managed() : HashAlgorithm.Create(""SHA1"")`. Apparently, using the Windows crypto API has quite some per-hash cost. I request that static helper method be added to the framework. This seems like an attractive case for a community contribution. " +9370 area-System.Net MultipartContent should override CreateContentReadStreamAsync "This program: ``` C# using System; using System.Net.Http; class Program { static void Main() { var form = new MultipartFormDataContent(); var bytes = new byte[1024 * 1024]; for (int i = 0; i < 2048; i++) { form.Add(new ByteArrayContent(bytes), ""file"", Guid.NewGuid().ToString()); } form.ReadAsStreamAsync().GetAwaiter().GetResult(); } } ``` throws an exception: ``` System.Net.Http.HttpRequestException: Cannot write more bytes to the buffer than the configured maximum buffer size: 2147483647 ``` This is because MultipartContent doesn't override CreateContentReadStreamAsync, which means it's trying to serialize all of the parts to a MemoryStream which it can then return. It should instead return a custom stream that reads from each part in turn, just as its override of SerializeToStreamAsync doesn't try to store the whole thing into a byte[]/MemoryStream which it could write out but rather writes out each part individually. " +9371 area-System.Net Remove some allocations from unix WebSocket client Some low-hanging fruit. (I have another change that gets rid of many more allocations coming from the networking stack, but I'm seeing an odd behavior I wasn't expecting and am following up on that before submitting it.) - Change how we read message headers. Rather than using a `Task ReadMessageHeaderAsync` method, we now separate the buffering and the reading of the header, saving several allocations. - Removing the WithAbortAsync method. I'd initially added this when it wasn't clear to me that any operation getting canceled is meant to trigger the whole websocket getting aborted. Since that is the behavior, this method is no longer needed and we can do something much simpler, resulting in many fewer allocations per operation. This change modifies indentation in several places, so it's most easily reviewed ignoring whitespace changes: https://github.com/dotnet/corefx/pull/9371/files?w=1 cc: @ericeil, @bartonjs, @davidsh, @cipop +9376 area-System.Diagnostics System.Diagnostics.PerformanceCounter is missing in .Net Core missing Performance counter in .Net Core +9377 area-System.Net Override HttpContent.CreateContentReadStreamAsync in MultipartContent MultipartContent doesn't override CreateContentReadStreamAsync. This means that a ReadAsStreamAsync operation will end up serializing all of the content to a MemoryStream, which can be problematic for very large content, preventing such content from being uploaded with some HttpClientHandlers. This change overrides CreateContentReadStreamAsync to use a custom stream that delegates to all of the inner streams from each content. Fixes https://github.com/dotnet/corefx/issues/9370 cc: @davidsh, @cipop, @ericeil +9379 area-System.Runtime Improve test coverage for Comparer/EqualityComparer of enums The runtime has special logic to create Comparer/EqualityComparer of enums, but we do not seem to have any tests to exercise these special paths. +9383 area-Infrastructure Hello. Is it possible to install CoreFX to a custom folder? Is it possible to install CoreFX to a custom folder after the building from sources? Command to build: `./build.sh x64 debug` But in this case CoreFX installs to a current folder. What command I must enter to onfigure sources and instal to a custom folder? PS: OS Ubuntu 16.04 LTS. Problem with building are missing. +9384 area-System.Net Avoid send/receive delegate allocations with SocketAsyncEventArgs on Unix Every send/receive operation on a Socket on Unix when using SocketAsyncEventArgs is allocating a new delegate. Since the whole point of SocketAsyncEventArgs is to cache state and ammortize the costs of things across multiple operations, it's better to create the delegate once and reuse it for all operations. cc: @ericeil +9394 area-System.Security [macOS] Move standard cryptographic operations from OpenSSL to Apple's libraries "Today when you install openssl via brew, it may print a message saying ""Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries"". We should add to the release notes that this is expected and lay out our plan on moving off OpenSLL and onto Apple stuff (maybe it happens for 1.1?, I think right know it's in the ""we will do this in the future"" bucket, but it would be good for us to start thinking about what the actual timeline is). **Edit:** Since this issue is already known to people as the tracking item for the move, it has been repurposed from ""make a roadmap"" to ""go, baby, go!"". " +9395 area-System.Net Fix build break cc: @wtgodbe +9397 area-Serialization DCS Deserialization Failure with PreserveObjectReferences Set to true "DCS failed during deserialization when PreserveObjectReferences is set to true. See below for an example of the error message: ``` DataContractSerializerTests.DCS_CircularTypes_PreserveObjectReferences_True [FAIL] System.Runtime.Serialization.SerializationException : Deserialized object with reference id 'i3' not found in stream. Stack Trace: D:\OSS\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerReadContext.cs(442,0): at System.Runtime.Serialization.XmlObjectSerializerReadContext.GetExistingObject(String id, Type type, String name, String ns) ... ``` Serializing and de-serializing the following root object would repro the issue. ``` csharp var root = new Root(); root.Children = new List { new Child { Root = root, Name = ""A"" }, new Child { Root = root, Name = ""B"" } }; [DataContract] public class Root { [DataMember] public List Children { get; set; } } [DataContract(IsReference = true)] public class Child { [DataMember] public Root Root { get; set; } [DataMember] public string Name { get; set; } } ``` " +9402 area-System.Security X509Certificates cannot be used in Mac? I can `dotnet build` my Asp.Net Core RC2 code in OS X, but `dotnet run` throw following exception (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation. Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Interop+Crypto+OpenSslCryptographicException: error:2006D080:BIO routines:BIO_new_file:no such file at Interop.Crypto.CheckValidOpenSslHandle(SafeHandle handle) at Internal.Cryptography.Pal.CertificatePal.FromFile(String fileName, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password) at mycode.Startup.ConfigureServices(IServiceCollection services) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.AspNetCore.Hosting.Startup.ConfigureServicesBuilder.Invoke(Object instance, IServiceCollection exportServices) at Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices() at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication() at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build() +9407 area-System.Net ClientWebSocket_Abort_CloseOutputAsync failed in CI on Unix http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/2082/consoleText ``` System.Net.WebSockets.Client.Tests.ClientWebSocketTest.ClientWebSocket_Abort_CloseOutputAsync(server: wss://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx) [FAIL] System.InvalidOperationException : This operation is only allowed using a successfully authenticated context. Stack Trace: Using /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest@2/packages/ as folder for resolving package dependencies. Executing in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest@2/bin/tests/AnyOS.AnyCPU.Debug/System.Composition.Tests/netcoreapp1.0 Executing in unpack directory, do not have to copy files Hard linking dependent files... at System.Net.Security.SslState.CheckThrow(Boolean authSucessCheck) at System.Net.Security.SslState.get_SecureStream() at System.Net.Security.SslStream.EndWrite(IAsyncResult asyncResult) at System.Net.Security.SslStream.<>c.b__86_1(IAsyncResult iar) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.WebSockets.WebSocketHandle.ManagedClientWebSocket.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.WebSockets.WebSocketHandle.ManagedClientWebSocket.d__69.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.WebSockets.Client.Tests.ClientWebSocketTest.<>c.<b__37_0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.WebSockets.Client.Tests.ClientWebSocketTest.d__44.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.WebSockets.Client.Tests.ClientWebSocketTest.d__37.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +9408 area-System.Net CloseAsync_CloseDescriptionIsMaxLengthPlusOne_ThrowsArgumentException periodically throwing wrong exception on Unix ``` System.Net.WebSockets.Client.Tests.ClientWebSocketTest.CloseAsync_CloseDescriptionIsMaxLengthPlusOne_ThrowsArgumentException(server: ws://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx) [FAIL] System.Net.WebSockets.WebSocketException : Unable to connect to the remote server ---- System.ObjectDisposedException : Cannot access a disposed object. Object name: 'System.Net.Sockets.TcpClient'. Stack Trace: at System.Net.WebSockets.WebSocketHandle.ManagedClientWebSocket.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.WebSockets.ClientWebSocket.d__16.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.WebSockets.Client.Tests.WebSocketHelper.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.WebSockets.Client.Tests.ClientWebSocketTest.d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Sockets.TcpClient.GetStream() at System.Net.WebSockets.WebSocketHandle.ManagedClientWebSocket.d__48.MoveNext() ``` +9409 area-System.Numerics QuaternionCreateFromYawPitchRollTest2 failed in CI on OSX http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_osx_release/72/consoleText ``` System.Numerics.Tests.QuaternionTests.QuaternionCreateFromYawPitchRollTest2 [FAIL] Yaw:-545 Pitch:155 Roll:365 Expected: True Actual: False ``` cc: @mellinoe, @RussKeldorph +9410 area-Infrastructure build.sh script hammering proxy When trying to build corefx via the build.sh script, at some point it fetches some data from https://dotnetmyget.blob.core.windows.net This is hammering our proxy with 5-10 requests per second, which in turn causes the proxy to rate-limit and stall/disconnect the client, which in turn leads to failures during the build stage: ``` darkstar@kubuntu:/usr/src/corefx$ ./build.sh managed x64 debug Setting up directories for build Installing dotnet cli... Restoring BuildTools version 1.0.25-prerelease-00512-01... Initializing BuildTools... ERROR: An error occured when trying to initialize the tools. Please check '/usr/src/corefx/init-tools.log' for more details. ./build.sh: line 107: /usr/src/corefx/Tools/corerun: No such file or directory tail: cannot open '/usr/src/corefx/msbuild.log' for reading: No such file or directory Build Exit Code = 127 darkstar@kubuntu:/usr/src/corefx$ ``` the problem is that there is no way of recovering from such a failed build as subsequent builds will fail quite early in the process: ``` darkstar@kubuntu:/usr/src/corefx$ ./build.sh managed x64 debug Setting up directories for build Tools are already initialized ./build.sh: line 107: /usr/src/corefx/Tools/corerun: No such file or directory tail: cannot open '/usr/src/corefx/msbuild.log' for reading: No such file or directory Build Exit Code = 127 darkstar@kubuntu:/usr/src/corefx$ ``` There should be an option for build.sh to not hammer the proxy with hundreds of parallel requests, or instead of requesting each and every file individually maybe something like a ZIP archive could be downloaded instead? another idea could be that the `build.sh` script checks which files are downloaded already and only downloads those that are missing/incomplete, instead of nothing (if re-running `build.sh` without cleaning) or everything (if running `clean.sh` before retrying `build.sh`) right now I'm unable to build corefx and coreclr because of this issue. Any ideas for workarounds will be appreciated :) +9412 area-System.Net More perf improvements for managed WebSocket client on Unix Primary changes: - NetworkStream's Read/WriteAsync simply uses the underlying Socket's Begin/EndReceive/Send methods, wrapped in tasks. While that could be optimized further, we have a more constrained scenario in WebSockets, in that we only support a single read at a time and a single write at a time. As a result, we can create, cache, and reuse a single SocketAsyncEventArgs instance for reading and another for writing, using the socket's Send/ReceiveAsync methods with that cached args instance. This avoids a bunch of per operation allocation. - Due to #4900 (and the behavior that was made to match on Unix), successful socket operations never complete synchronously. This means that code which awaits them typically ends up needing to yield, due to the callbacks being invoked asynchronously, even if the socket operation completed synchronously, which is very likely in the case of a send. Our SendFrameAsync method suffers from this, as it really just delegates to the socket's send method, albeit with a tiny amount of pre- and post-work. The real solution is to make it so that Socket.SendAsync can complete synchronously, after which SendFrameAsync will also typically complete synchronously and generally be allocation-free. Until then, though, since this is a hot path, we can optimize it for the common case to reduce the amount of allocation and general work involved when the socket operation does complete asynchronously. - For chatty cases where each send expects a receive, it's likely that each receive needs to read from the network. This means we end up going through several layers of async methods (ReceiveAsyncPrivate, EnsureBufferContainsHeaderAsync, EnsureBufferContainsAsync), which will all end up yielding and allocating when the read on the network doesn't complete synchronously. Since EnsureBufferContainsHeaderAsync is small and only used from one place, we can avoid all of the allocations associated with it by simply inlining it into its caller (ReceiveAsyncPrivate). Other miscellaneous: - Removed the base class from the internal ManagedWebSocket. It's unnecessary and leads to virtual methods on the instance. More importantly, though, we end up potentially handing out this instance via a Task's AsyncState, and we don't want folks to be able to cast to the base class and call methods without going through the thin ClientWebSocket wrapper. - A bunch of resources weren't being used. I deleted them. - WebSocketReceiveResult had non-readonly backing fields for each of its properties, which had private setters purely to be able to set the properties in the constructor. Now that we're using C# 6, we can simply make these get-only properties, eliminating the setters and allowing the compiler to make the backing fields readonly. - Used nameof in a few more places. Results: I ran a simple test with a local echo server, where I'd repeatedly send a message and receive its echo. As a baseline, with the Windows WinHTTP implementation sending and receiving 20,000 messages, I get the following. Each line is a run of the 20,000 messages, with the first number being the elapsed time and the second number being the number of gen 0 GCs. ``` > corerun WSPerf.exe 28745 20000 1 2.6906097, 5 2.7209642, 5 2.6802832, 5 2.7098154, 5 2.7061351, 6 2.6964876, 5 2.7943476, 5 2.7638309, 5 2.7918148, 5 2.744804, 6 ``` Instead using the managed implementation on Windows, before these changes, I got: ``` > corerun WSPerf.exe 28745 20000 1 3.1177403, 22 3.2149994, 22 2.6798198, 23 2.8078613, 23 2.6670316, 24 2.6744515, 23 2.6619906, 24 2.7596847, 23 2.6485313, 24 2.6559615, 23 ``` After these changes, using the managed implementation on Windows, I get: ``` > corerun WSPerf.exe 28745 20000 1 2.576682, 9 2.6461474, 9 2.5376302, 9 2.5192637, 9 2.5189807, 10 2.5227088, 9 2.5305238, 9 2.5696738, 9 2.5766855, 9 2.5433629, 9 ``` On Linux, I'm using a different local echo server, so the timing numbers aren't directly comparable to the ones on Windows, however before the changes I got: ``` $ ./corerun WSPerf.exe 7681 20000 1 1.6772411, 16 1.2316513, 11 1.1890394, 10 1.7308767, 19 1.1968002, 11 1.5696637, 19 1.5461821, 18 1.2686805, 12 1.1765528, 10 1.124586, 11 ``` and after the changes I got: ``` $ ./corerun WSPerf.exe 7681 20000 1 1.2716779, 5 1.0913687, 5 1.0198689, 5 1.1038351, 4 1.0823826, 4 1.0074977, 4 1.0132344, 5 1.0704005, 4 1.1775556, 6 1.0341026, 6 1.0462667, 4 ``` At this point I'm not planning to do any more proactive work on improving the send/receive performance, as the performance after these changes on Linux looks to be on par with the Windows implementation. There are likely more opportunities which can be addressed individually and reactively, including once #4900 is addressed. There may also be opportunities to improve scenarios other than lots of sending/receiving with the same websocket, e.g. minimizing the overhead associated with creating lots of websockets that each do relatively little work. cc: @ericeil, @bartonjs, @davidsh, @cipop Also fixes #9408 and fixes #9407 +9413 area-System.IO System.IO.FileSystem.DriveInfo is missing from .Net Core System.IO.FileSystem.DriveInfo is missing https://github.com/dotnet/corefx/tree/master/src/System.IO.FileSystem/src/System/IO https://dotnet.github.io/api/System.IO.DriveInfo.html +9414 area-System.Net Add test for posting FormUrlEncodedContent with HttpClient https://github.com/dotnet/corefx/issues/9357 cc: @ericeil +9416 area-System.Runtime System.Dynamic.Runtime and System.Runtime tests hanging in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/2040/consoleText Both the System.Dynamic.Runtime.Tests and the System.Runtime.Tests are hanging. Note that we just picked up a new CoreCLR: rc4-24214-02. I don't know if this is related, but to my knowledge we haven't seen these hang like this before. cc: @jkotas, @sergiy-k +9417 area-Infrastructure [PostRTM] Introduce .depproj references for newly stable packages The stable versions of contracts are embedded via a .depproj; rather than continuing to rebuild them (and potentially rewriting history). As part of our Post-RTM tasks we should change .csproj to .depproj as appropriate, holistically. +9418 area-Infrastructure [PostRTM] Change project.json references to stable packages Part of the problem with the build frequency (#9156) is that the project.json updates frequently end up with merge conflicts (not only between the bots, but between the bots and humans). If all of the existing references are snapped to the stable versions the updates won't be editing any files, and will continue to not need to edit any files until live dependencies on new contract API starts to creep in; making for significantly less noise than we have today. +9420 area-System.Runtime System.Runtime.Serialization.Formatters takes dependency on xunit.performance but has no perf tests The perf tests are currently detected by figuring out which tests take a dependency on xunit.performance and running those test dlls with xunit performance runner. System.Runtime.Serialization.Formatters seems to take a dependency on xunit.performance but does not have a perf test to execute To repro: `msbuild .\src\System.Runtime.Serialization.Formatters\tests\System.Runtime.Serialization.Formatters.Tests.csproj /t:buildAndtest /p:performance=true /p:OSGroup=Windows_NT` Is this intended? +9423 area-System.Net TcpClient.Dispose used concurrently with ConnectAsync may not Dispose of the Socket TcpClient is not documented to have thread-safe members, and in general Dispose implementations should not be used concurrently with other members on the containing types. However, as TcpClient is a thin wrapper for a Socket, code may end up calling Dispose on the TcpClient in order to cancel in-progress async operations, such as ConnectAsync. However, on Unix, ConnectAsync is implemented by creating a new Socket for each address it attempts to connect to, and that Socket isn't stored into the TcpClient until after a connection has been successfully established. As a result, Dispose can't be used to cancel the connect operation, as the Socket won't have been stored yet, and in such cases the Socket won't get disposed of. +9427 area-System.Runtime Several DateTimeOffset tests fail in certain timezones on Linux "e.g. ``` stoub@stoublinux2:~/netcore$ echo ""Europe/Prague"" | sudo tee /etc/timezone Europe/Prague stoub@stoublinux2:~/netcore$ sudo dpkg-reconfigure --frontend noninteractive tzdata Current default time zone: 'Europe/Prague' Local time is now: Tue Jun 14 23:58:46 CEST 2016. Universal Time is now: Tue Jun 14 21:58:46 UTC 2016. stoub@stoublinux2:~/netcore$ ./corerun xunit.console.netcore.exe System.Runtime.Tests.dll -notrait category=nonlinuxtests -notrait category=failing -notrait category=outerloop xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Runtime.Tests Discovered: System.Runtime.Tests Starting: System.Runtime.Tests System.Tests.DateTimeOffsetTests.AddYears(dateTimeOffset: 1986-08-15T10:20:05.0700000+02:00, years: -10, expected: 1976-08-15T10:20:05.0700000+01:00) [FAIL] Assert.Equal() Failure Expected: 1976-08-15T10:20:05.0700000+01:00 Actual: 1976-08-15T10:20:05.0700000+02:00 Stack Trace: at System.Tests.DateTimeOffsetTests.AddYears(DateTimeOffset dateTimeOffset, Int32 years, DateTimeOffset expected) System.Tests.DateTimeOffsetTests.AddMonths(dateTimeOffset: 1986-08-15T10:20:05.0700000+02:00, months: 2, expected: 1986-10-15T10:20:05.0700000+01:00) [FAIL] Assert.Equal() Failure Expected: 1986-10-15T10:20:05.0700000+01:00 Actual: 1986-10-15T10:20:05.0700000+02:00 Stack Trace: at System.Tests.DateTimeOffsetTests.AddMonths(DateTimeOffset dateTimeOffset, Int32 months, DateTimeOffset expected) Finished: System.Runtime.Tests === TEST EXECUTION SUMMARY === System.Runtime.Tests Total: 6871, Errors: 0, Failed: 2, Skipped: 0, Time: 6.537s ``` " +9428 area-Infrastructure Move TestSuite package to dotnet-core feed To improve perf of restore and avoiding hitting multiple feeds, move the new sets of packages to the dotnet-core feed and not the dotnet-buildtools feed. +9433 area-System.Net HttpWebResponse.ContentType returns empty string when response has malformed headers "Copied from https://github.com/dotnet/coreclr/issues/5806 /cc @erezvani1529 The content-type property is being stripped off of response if it is not in ""type/subtype"" format. Information on the project and target frameworks: - .NetCore Console App - project.json ``` JSON { ""version"": ""1.0.0-*"", ""buildOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.0-rc2-3002702"" }, ""WindowsAzure.Storage"": ""7.0.2-preview"" }, ""frameworks"": { ""netcoreapp1.0"": { ""imports"": [ ""dnxcore50"", ""portable-net451+win8"" ] } } } ``` Sample fiddler trace using WindowsAzure.Storage client library(CoreCLR RC2 release): ``` User-Agent: Azure-Storage/7.0.2-preview (.NET Core 5.0) x-ms-content-language: languagevalue x-ms-content-type: contenttypevalue---> Content type header is sent successfully x-ms-client-request-id: 271c0518-3f42-4a05-89f0-27fcdf082d25 x-ms-version: 2015-07-08 x-ms-date: Wed, 08 Jun 2016 21:12:46 GMT ---------------------- Content-Type: contenttypevalue --> the stored content type returned from server Content-Language: languagevalue Last-Modified: Wed, 08 Jun 2016 21:12:45 GMT ETag: ""0x8D38FE1A3263418"" Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0 x-ms-request-id: cf262393-001a-0014-27ca-c18fe2000000 x-ms-version: 2015-07-08 x-ms-type: File Date: Wed, 08 Jun 2016 21:14:23 GMT ``` result: ContentType doesn't have the specified value (null value is retuned in the application). Note: I have tried the same scenario with a content-type with ""type/subtype"" format such as: ""contenttypeva/lue"" and it works fine. Please let me know if there are any more information required to investigate this issue. Thanks! " +9434 area-System.Net Fixing NegotiateStream Windows Interop. Adding NTLM and Kerberos remote tests. Fixing Windows SSPI Interop. Adding a common Configuration and Capabilities infrastructure for System.Net in preparation for multi-machine testing. Fixes #9160. @davidsh @stephentoub PTAL +9436 area-System.Net Significantly reduce running time of WebSocket.Client tests Two commits: - The first one essentially just replaces the regions used in the single ClientWebSocketTest.cs file with classes. - The second one moves those classes to their own files. No test logic/code was changed at all. This split helps to keep things a bit tidier, but more importantly, it enables xunit's default parallelization to run tests (from different test classes) concurrently. On my quad-core (which translates into xunit allowing four tests to run concurrently), it reduces the running time of the tests from ~40s to ~10s. Subsequently we might want to move the WebSocketHelper and WebSocketData functions into the new ClientWebSocketTestBase class, but that's orthogonal to this change. The ClientWebSocketTestBase just contains all of the helpers that were in ClientWebSocketTest.cs and that were shared by the various tests. cc: @davidsh, @cipop, @ericeil, @weshaggard +9438 area-System.Security Parameterize System.Security.Cryptography.Rfc2898DeriveBytes for HMAC Currently [System.Security.Cryptography.Rfc2898DeriveBytes](https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/Rfc2898DeriveBytes.cs) is hardcoded to use HMACSHA1, it would be nice if HMAC could be parameterized. (More specifically, so that developers can use HMACSHA256 for more security.) Eg : public Rfc2898DeriveBytes(HMAC hmac, string password, byte[] salt, int iterations). +9439 area-System.Data RC2: Connecting to SQL Server from Linux Docker Container throws OpenSSL exception When connecting to SQL Server from .NET Core 1.0 RC2 running within a Linux container, the System.Data.SqlClient library throws an exception citing issues with the OpenSSL handshake. Code/steps to reproduce can be found here: https://github.com/iSynaptic/LinuxSqlServer +9445 area-System.Xml Add TryParse to XDocument Hi, this is a RFC issues to request support for a adding a `bool TryParse(string text, out XDocument document)` method to the `XDocument` class. I've searched around the repo but cannot find anything related, so if this is a dupe feel free to close. ## Problem: Sometimes happens that you have to work with XML files that comes from _untrusted_ sources, and you have to ensure that the file is actually well formed XML. Currently there are [some](http://stackoverflow.com/questions/25791738/determine-whether-a-given-string-is-xml-or-not) not so nice [ways](http://stackoverflow.com/questions/117007/how-best-to-test-the-validity-of-xml-from-a-method) to verify a string is a well formed XML that involves exception handling. None of the suggested ways looks like a clean solution to a quite common problem (at least IMO). Please note also that other [BCL classes](http://referencesource.microsoft.com/#q=Parse) that exposes a `Parse(string source)` method usually also exposes a `bool TryParse(string source, out...)` thus adding a `TryParse` method will make `XDocument` class somewhat more consistent with other BCL classes. ## Suggestion: add the following method `bool TryParse(string text, out XDocument document)` to `XDocument` and `XElement` classes ## Question: Do we need feature parity with `XmlDocument` classes? Actually `XmlDocument` exposes a `LoadXml(string xml)` so we could add a `bool TryLoadXml(string xml, out XmlDocument document)` but I really don't like the name and thus if feature parity isn't a must, I would prefer not adding it. +9446 area-System.Net Flow HttpClient timeouts and cancellation to the response stream Basically this is the same as PR #9102. We reverted that PR when the internal ToF tests started failing. But it was determined that the failure was due to infrastructure which is now fixed via https://github.com/dotnet/coreclr/pull/5695 +9448 area-System.IO Add UWP clrcompression build "The AOT netcore50 clrcompression (formerly represented by win10) is currently the only one that still needs to be built in TFS. This commit resolves that requirement by adding AppContainer support to the Open Windows native build. It also ports some custom CRT code to circumvent undefined API errors and make it WACK-friendly. - The result of this is that a clrcompression built with /p:TargetGroup=netcore50 will have the APPCONTAINER bit set. - When building in netcore50 Release, the imports of the clrcompression will be a limited set of the usual (i.e. non-UWP) imports - this makes the dll pass the WACK supported API check. - The import methods of the Release netcore50 clrcompression are identical to the corresponding clrcompression shipped out of TFS, though the latter imports ""api-ms-win-core*"" whereas the former imports ""kernel32"" and ""ole32"". - This commit will need to be merged alongside a TFS commit to remove clrcompression entirely from the ""PackagesToPublish"" group. - We will also need a commit to the build pipeline to add netcore50 configs to the ""pipelines.corefx.json"" file for the ""CoreFx-Windows-Product-Native-Trusted"" builds. imports of this dll: ``` KERNEL32.dll 180009000 Import Address Table 18000CF30 Import Name Table 0 time date stamp 0 Index of first forwarder reference 214 GetCurrentThreadId 2FA GetTickCount64 117 DisableThreadLibraryCalls 2DD GetSystemTimeAsFileTime 430 QueryPerformanceCounter ole32.dll 180009030 Import Address Table 18000CF60 Import Name Table 0 time date stamp 0 Index of first forwarder reference 7F CoTaskMemFree 7E CoTaskMemAlloc ``` imports of the dll from TFS: ``` api-ms-win-core-profile-l1-1-0.dll 180008038 Import Address Table 18000C188 Import Name Table 0 time date stamp 0 Index of first forwarder reference 0 QueryPerformanceCounter api-ms-win-core-processthreads-l1-1-0.dll 180008028 Import Address Table 18000C178 Import Name Table 0 time date stamp 0 Index of first forwarder reference D GetCurrentThreadId api-ms-win-core-sysinfo-l1-1-0.dll 180008048 Import Address Table 18000C198 Import Name Table 0 time date stamp 0 Index of first forwarder reference A GetSystemTimeAsFileTime E GetTickCount64 api-ms-win-core-libraryloader-l1-1-0.dll 180008018 Import Address Table 18000C168 Import Name Table 0 time date stamp 0 Index of first forwarder reference 0 DisableThreadLibraryCalls api-ms-win-core-com-l1-1-0.dll 180008000 Import Address Table 18000C150 Import Name Table 0 time date stamp 0 Index of first forwarder reference 3E CoTaskMemFree 3D CoTaskMemAlloc ``` This also has the added benefit of upgrading the version of ZLib used in UWP to Zlib-Intel. " +9449 area-System.Net CentOS: System.Net.WebSockets.WebSocketException : Unable to connect to the remote server http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_release_prtest/221/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_release_prtest/221/testReport/junit/System.Net.WebSockets.Client.Tests/ClientWebSocketTest/SendReceive_Concurrent_Success_server__ws___corefx_net_cloudapp_net_WebSocket_EchoWebSocket_ashx_/ ``` MESSAGE: System.Net.WebSockets.WebSocketException : Unable to connect to the remote server\n---- System.ObjectDisposedException : Cannot access a disposed object.\nObject name: 'System.Net.Sockets.TcpClient'. +++++++++++++++++++ STACK TRACE: at System.Net.WebSockets.WebSocketHandle.ManagedClientWebSocket.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.ClientWebSocket.d__16.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.Client.Tests.WebSocketHelper.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.Client.Tests.ClientWebSocketTest.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Sockets.TcpClient.GetStream() at System.Net.WebSockets.WebSocketHandle.ManagedClientWebSocket.d__48.MoveNext() ``` +9451 area-System.Runtime Issue, Proposal: Decimal, Double (Negative 0) ToString "I am having a hard time believing I never caught this before but none the less; I must be missing something and if I am not then this should probably be corrected... `System.BitConverter.ToDouble(System.BitConverter.GetBytes(-0.0), 0)` Evaluates to : '0.0' `System.BitConverter.Int64BitsToDouble(System.BitConverter.ToInt64(System.BitConverter.GetBytes(-0.0), 0))` Evaluates to : '0.0' But ... `System.BitConverter.DoubleToInt64Bits(-0.0)` Evaluates to '-9223372036854775808', e.g. long.MaxValue + 1. I guess my issue / question is how to round trip negative zero in the CLR using the BitConverter.. It gets the Bytes correctly as can be seen here: `System.BitConverter.GetBytes(-0.0)` > {byte[8]} > [0]: 0 > [1]: 0 > [2]: 0 > [3]: 0 > [4]: 0 > [5]: 0 > [6]: 0 > [7]: 128 `System.BitConverter.GetBytes(0.0)` > {byte[8]} > [0]: 0 > [1]: 0 > [2]: 0 > [3]: 0 > [4]: 0 > [5]: 0 > [6]: 0 > [7]: 0 And I believe that it actually does parse to `-0.0`. However as can be seen by the following statement(s): `-unchecked(-System.BitConverter.Int64BitsToDouble(long.MaxValue + 1))` `unchecked(-System.BitConverter.Int64BitsToDouble(long.MaxValue + 1))` `unchecked(-0.0)` `(0.0 + -0.0)` `System.BitConverter.GetBytes((-1.0 * 0.0))` > {byte[8]} > [0]: 0 > [1]: 0 > [2]: 0 > [3]: 0 > [4]: 0 > [5]: 0 > [6]: 0 > [7]: 128 `System.BitConverter.ToDouble(System.BitConverter.GetBytes((-1.0 * 0.0)), 0)`, Evaluates to 0 but as can be seen using the following code: `System.BitConverter.GetBytes(System.BitConverter.ToDouble(System.BitConverter.GetBytes((-1.0 * 0.0)), 0))` You get the same bytes... Yes I am aware there is IEEE 754, which also says that both are equal except in terms of divisions with negative numbers... It also says `−1.0*0.0` == `-0.0` [Wikipedia Signed Zero](https://en.wikipedia.org/wiki/Signed_zero) You cannot evaluate an expression to negative zero because the interpreter always replaces it with absolute 0, however in memory the bytes are actually as they are given by the BitConverter or otherwise which can also be verified as follows: `double d = -0.0;` `*((byte*)(&d) + 7)` Evaluates to `0x80` e.g. `128`. The following code can detect the anomaly: ``` [System.CLSCompliant(false)] public unsafe static bool IsNegativeZero(double* d) { //Check for -0.0 return (*((long*)(d))).Equals(Common.Binary.NegativeZeroBits); } public unsafe static bool IsNegativeZero(ref double d) { //Make a pointer to the pointer, which when dereferenced can access the result. System.IntPtr value = Unsafe.AddressOf(ref d); //Check for -0.0 return (*((long*)((int*)&value))).Equals(Common.Binary.NegativeZeroBits); } ``` This gets even more confusing with Decimals as `new Decimal(0, 0, 0, true, 0).Equals(-0.0m)` evaluates to true. However > System.Decimal.GetBits(new Decimal(0, 0, 0, true, 0)) > {int[4]} > [0]: 0 > [1]: 0 > [2]: 0 > [3]: -2147483648 > > System.Decimal.GetBits(-0.0m) > {int[4]} > [0]: 0 > [1]: 0 > [2]: 0 > [3]: -2147418112 Since the Decimal type itself is documented this way I find it less intrusive to deal with, however the issue still remains that the value I pass is interpreted as a different but equal value in the cases of Double and Decimal where I do not believe they should be, neither mathematically typing nor obviously with respect to their binary representation. I guess I will go as far as to even propose that '-0.0' Should not be equal to `0.0`, furthermore that the same should also apply to Decimal with respect to the variations of Zero which are possible although I am sure that proposal can be taken elsewhere besides the corefx issues. For instance... `(1 / -0.0) + Double.PositiveInfinity` == `NaN` This indicates the value is actually preserved and calculated as expected to the standard but there is no way to indicate the display of such a value without testing specifically for such and augmenting the results thereof. The only source of information I can find in relation to this topic was from the BCL Team Blog back in 2006: [Here](https://blogs.msdn.microsoft.com/bclteam/2006/10/12/decimal-negative-zero-representation-lakshan-fernando/). It obviates the differences between the decimal representations of negative zero but doesn't touch on the subject for the double type; although I am fairly sure after seeing this the same obviously applies there as well. A more reasonable approach or proposal which would still be compliant to the IEEE standard would be to allow the 'sign' to be given as '+' or '-' via the ToString and not omit it; and also to return the value parsed and not an equivalent representation. Finally, here is a good example of a 'buggy' or weird case in my humble opinion: `System.BitConverter.GetBytes(double.Parse(""-0.0""))` > {byte[8]} > [0]: 0 > [1]: 0 > [2]: 0 > [3]: 0 > [4]: 0 > [5]: 0 > [6]: 0 > [7]: 0 Thanks in advance! " +9453 area-System.Data Refactor SqlClient ManualTests to fetch connection strings from environment variables. This change also allows ManualTests to be built and run automatically, but no actual tests will be run if the connection strings aren't present. CC @saurabh500 +9463 area-System.Net SendReceive_PartialMessage_Success websockets test failed on Windows in CI The server returned an invalid or unrecognized response http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug/655/consoleText ``` System.Net.WebSockets.Client.Tests.SendReceiveTest.SendReceive_PartialMessage_Success(server: wss://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx) [FAIL] System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response Stack Trace: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.WebSockets.WinHttpWebSocket.d__30.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\windows_nt_debug88592b53\src\System.Net.WebSockets.Client\tests\SendReceiveTest.cs(49,0): at System.Net.WebSockets.Client.Tests.SendReceiveTest.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +9464 area-Infrastructure Clean build in master yields 32 warnings "``` c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.0"" framework. Add a reference to "".NETStandard,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\coref x\src\System.Diagnostics.FileVersionInfo\tests\System.Diagnostics.FileVersionInfo.TestAssembly\System.Diagnostics.FileVersionInfo.TestAssembly.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.0"" framework. Add a reference to "".NETStandard,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\coref x\src\System.Diagnostics.FileVersionInfo\tests\System.Diagnostics.FileVersionInfo.TestAssembly\System.Diagnostics.FileVersionInfo.TestAssembly.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.0"" framework. Add a reference to "".NETStandard,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\coref x\src\System.Diagnostics.FileVersionInfo\tests\System.Diagnostics.FileVersionInfo.TestAssembly\System.Diagnostics.FileVersionInfo.TestAssembly.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.0"" framework. Add a reference to "".NETStandard,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\coref x\src\System.Diagnostics.FileVersionInfo\tests\System.Diagnostics.FileVersionInfo.TestAssembly\System.Diagnostics.FileVersionInfo.TestAssembly.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\System.Reflection\tests\TestExe\System.Reflection.Tests.TestExe.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\System.Reflection\tests\TestExe\System.Reflection.Tests.TestExe.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\System.Reflection\tests\TestExe\System.Reflection.Tests.TestExe.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\System.Reflection\tests\TestExe\System.Reflection.Tests.TestExe.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.0"" framework. Add a reference to "".NETStandard,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\coref x\src\System.Runtime.Loader\tests\System.Runtime.Loader.Noop.Assembly\System.Runtime.Loader.Noop.Assembly.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.0"" framework. Add a reference to "".NETStandard,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\coref x\src\System.Runtime.Loader\tests\System.Runtime.Loader.Noop.Assembly\System.Runtime.Loader.Noop.Assembly.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.0"" framework. Add a reference to "".NETStandard,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\coref x\src\System.Runtime.Loader\tests\System.Runtime.Loader.Noop.Assembly\System.Runtime.Loader.Noop.Assembly.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETStandard,Version=v1.0"" framework. Add a reference to "".NETStandard,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\coref x\src\System.Runtime.Loader\tests\System.Runtime.Loader.Noop.Assembly\System.Runtime.Loader.Noop.Assembly.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Xml\ModuleCore\ModuleCore.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Xml\ModuleCore\ModuleCore.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Xml\ModuleCore\ModuleCore.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Xml\ModuleCore\ModuleCore.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Xml\XmlDiff\XmlDiff.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Xml\XmlDiff\XmlDiff.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Xml\XmlDiff\XmlDiff.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Xml\XmlDiff\XmlDiff.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Xml\XmlCoreTest\XmlCoreTest.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Xml\XmlCoreTest\XmlCoreTest.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Xml\XmlCoreTest\XmlCoreTest.csproj] c:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(73,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [c:\Users\stoub\Source\repos\corefx\ src\Common\tests\System\Xml\XmlCoreTest\XmlCoreTest.csproj] ``` " +9465 area-System.IO Compat work for IO category Break out as needed, tagging with the dev/api-xxx tags. +9471 area-System.Net Fix MulticastInterface_Set_ValidIndex_Success failures on non-Windows platforms. "This test assumed that the ""loopback"" interface was always at index 1, which is not true on Linux/OSX/etc. This change makes that assumption explicitly Windows-only, while allowing the ""any interface"" case to run on all platforms. I also added a retry loop around the UDP send to harden this a little against the loopback packet loss we've seen on Unix platforms in other tests. Fixes #8971. @CIPop @stephentoub " +9472 area-System.Net CloseAsync_Cancel_Success failed in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/2252/consoleText ``` System.Net.WebSockets.Client.Tests.CancelTest.CloseAsync_Cancel_Success(server: ws://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx) [FAIL] Assert.Equal() Failure  (pos 4) Expected: The 'System.Net.WebSockets.InternalClientWebS��� Actual: The WebSocket is in an invalid state ('Aborte���  (pos 4) Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Net.WebSockets.Client\tests\ClientWebSocketTestBase.cs(81,0): at System.Net.WebSockets.Client.Tests.ClientWebSocketTestBase.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.WebSockets.Client\tests\CancelTest.cs(77,0): at System.Net.WebSockets.Client.Tests.CancelTest.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +9474 area-System.ComponentModel Adding Facade for System.ComponentModel.Composition cc: @weshaggard @danmosemsft FYI: @JeremyKuhne +9477 area-System.Net Fix octal IP address string parsing on OSX "On OSX and Linux, IPAddress.Parse uses getaddrinfo to parse the string. This is spec'd to only work for decimal, but seems to do more than that on both platforms. On Linux, I guess it works well for both hex and octal. On OSX, hex seems to work, but octal only sometimes works. After some experimentation, I think what's going on is that getaddrinfo on OSX tries to parse the address as decimal first, and only if that fails does it try to parse it as octal. So an address like ""010.010.010.010"" will parse as ""10.10.10.10,"" but ""0300.0300.0300.0300,"" since it's not a valid address in decimal, will correctly parse as ""192.192.192.192."" With this change, we use inet_aton to parse IPv4 addresses, instead of getaddrinfo. inet_aton seems to handle octal strings correctly, and is officially documented to do so. Fixes #8362 " +9478 area-Meta Document building against packages We need to document the various aspects of building against packages. Including but not necessary limited to: - How to build with it. (i.e. /p:BuildTestAgainstsPckages=true) - What does KeepProjectReference property mean - What does KeepAllProjectReferences property mean - When is it OK for people to use those properties or not. (i.e. They should be exceptional cases and we need to always make sure we have test projects that work against the packages to ensure the packages are correct). +9480 area-System.Security Compat work for ACL +9481 area-System.Net ContentEncoding header stripped out of response.header.content.contentEncoding "When getting a response with ""gzip"" as the content encoding, this value is not populated into the response.Header.Content.contentEncoding object. If the value is ""foo"" this value is properly propagated from the response to the header object. However, setting the AutomaticDecompression to DecompressionMethods.None on the HttpClientHandler instance is a workaround for us at the moment. Note: this issue was originally opened in Coreclr repo ([Closed](https://github.com/dotnet/coreclr/issues/4114#issuecomment-226612226) and opened here as it is related to HttpClient) " +9483 area-System.Security Compat work Claims based security System.Security.Claims.* +9484 area-System.IO System.IO.Compression.ZipFile tests leak folders into temp directory The ZipFile tests create paths like this in the /tmp or %TEMP% folders: ./ZipTestsRoot_ef3dc45b504d4ff58e009af435fb4ccc ./ZipTestsRoot_ef3dc45b504d4ff58e009af435fb4ccc/ZipTests1 On a long-running test VM, these random folders build up, and on Linux can eventually fill /tmp so hard that execution of pretty much anything is blocked. I'm working to prevent this from mattering in infrastructure, but if the tests could either use their current directory (which gets automatic cleanup on .NET Helix) or be more aggressive in cleaning up leaked ZipTest folders that would prevent this in the future. +9487 area-System.Runtime Compat work for System.*.Compiler* System.Runtime.CompilerServices System.CodeDom.Compiler +9489 area-System.ComponentModel Compat work for Component Model non/MEF System.ComponentModel excepting System.ComponentModel.Composition +9491 area-System.IO Compat work for Compression System.IO.Compression. Looks like there's almost nothing missing here just APM +9492 area-Meta Compat work for Configuration We do not plan to bring System.Configuration.*. Xamarin does not include it, and the usage in mobile apps that we have seems to be essentially zero. It is also problematic in terms of layering. +9500 area-Infrastructure Enable (optionally) statically linking native dependencies on Linux Related: dotnet/coreclr#5853 +9503 area-System.Net Use managed WebSockets implementation on all Windows (not UWP) Now that we have a managed implementation of Websockets that we use on Unix, should we also use it on Windows pre-Windows 8, since the current Windows implementation requires OS support only available Windows 8 and later? I'm assuming this should mostly be an issue of package authoring? cc: @davidsh, @cipop, @ericstj, @davidfowl +9511 area-System.Net Speed up System.Net.Sockets.Tests execution - Split `System.Net.Sockets.Tests.DualMode` into multiple classes, to allow more tests to run in parallel. - Tweak the timeout values in some of these tests, so that operations that are expected to time out do so faster. - Removed the `TestFinalizers` case, which was of questionable value in the first place. The assumptions made here before this change were probably not valid (xunit doesn't run tests in any particular order), and they certainly aren't valid after this change. We run enough tests in this suite that finalizers are going to end up running, with or without this test case. On my Windows machine, this brings System.Net.Sockets.Tests execution time from ~76 seconds to ~15 seconds. On my Ubuntu 14.04 VM, execution time goes from ~40 seconds to ~6 seconds. @CIPop @stephentoub +9514 area-Meta Compat work for ClickOnce (stub it) Without CAS, this would not work anyway. Issue tracks stubbing it. +9516 area-System.Console Compat work for Console Not much here to match Xamarin mobile, as much of it isn't there. We do miss these: ``` public static Stream OpenStandardError(int bufferSize); public static Stream OpenStandardInput(int bufferSize); public static Stream OpenStandardOutput(int bufferSize); public static void Write(string format, object arg0, object arg1, object arg2, object arg3, __arglist); public static void WriteLine(string format, object arg0, object arg1, object arg2, object arg3, __arglist); ``` also `enum ConsoleKey` +9521 area-System.Console System.Console implementations with limitations such as Color should not throw All NetCore50 implementations of System.Console I've found so far throw if any color settings are used (i.e. ForegroundColor) due to limitations of where they run. This means that I can't use Xunit.Console.NetCore.exe against these versions because the first thing XUnit DOES is to set the console color. I favor turning these NotSupportedExceptions into noops... ideally with some kind of debug output that indicates to the user this happened, in case the behavior is desired so much that they're checking it out under a debugger. Either way, I need some way to run executables that expect to set these colors on such a runtime. +9527 area-System.Net Convert CredentialCache perf tests to xunit.performance These tests were running for a long time, and then ignoring the result. These tests run for ~2 minutes in our functional test passes, even though we're not getting useful data out of them. This change converts the tests to use xunit.performance. This will greatly reduce their runtime when not running as performance tests (we just run one iteration in that case). It will also enable them to produce useful results in our perf lab, where we _do_ have the infrastructure to find regressions in both throughput and GC counts for xunit.performance-based tests. @stephentoub @davidsh @CIPop @justinvp @brianrob +9533 area-System.Net HttpClient on non-Windows does not support Windows authentication "The following code snippet works fine on Windows (.NET Framework), and can authenticate against an IIS web service configured with Windows authentication only. Status code is 200. ``` using (var client = new HttpClient ( new HttpClientHandler { PreAuthenticate = true, UseDefaultCredentials = false, UseProxy = false, Credentials = new NetworkCredential (""user"", ""pass"", ""domain"") })) { client.BaseAddress = new Uri (""http://test.com""); client.DefaultRequestHeaders.Accept.Clear (); client.DefaultRequestHeaders.Accept.Add (new MediaTypeWithQualityHeaderValue (""application/json"")); HttpResponseMessage response = await client.GetAsync (""test/values""); if (response.IsSuccessStatusCode) { Console.WriteLine (await response.Content.ReadAsStringAsync ()); } else { Console.WriteLine (response.StatusCode); } } ``` However, when it runs in a .NET Core RC2 app on Mac, the response status code is always 401. By capturing packets via Wireshark, no user credentials are sent. (if disable Windows authentication and enable Basic authentication, then it works with 200 status code and user credentials in packets.) So I think the cross platform Windows authentication support is not yet fully implemented. Is there a plan to address this? " +9534 area-System.Net Several managed WebSockets tweaks - When we fail to connect due to an abort/cancellation, ensure the inner exception of the WebSocketException is an OperationCanceledException rather than an ObjectDisposedException. - When sending a keep-alive ping, if the send lock is already held, that means we're actively sending something, so there's no value in also sending a keep-alive; we can simply make it a nop. - Only create the keep-alive timer if asked for. - Make a field readonly. cc: @ericeil +9535 area-System.ComponentModel TryValidateObject not returning localized text after migration from RC1 to RC2 "I have MVC project that uses some model validation outside of MVC pipe by calling directly System.ComponentModel.DataAnnotations.Validator.TryValidateObject(...) The project is for French market, so CurrentCulture and CurrentUICulture are both set to ""fr"" In RC1, this setup was returning correctly validation error messages in French. After migration to RC2, all messages are now in english, regardless of current culture that is set. Do I miss something (localization package or different runtime), or is this a bug ? " +9536 area-System.Net Add retry to GetConnectedWebSocket To hopefully avoid spurious failures when connecting to the remote endpoint. cc: @cipop, @davidsh, @ericeil +9537 area-System.Net Allow default xunit parallelization for System.Net.Http.Functional.Tests The System.Net.Http functional tests currently run serially, but the stated reasons for disabling xunit's parallelism no longer exist. The only remaining reason I see for them to not run concurrently is that some of the tests exercise EventSources/DiagnosticSources, which affect the entire process. This PR: - Makes each of those tests run in its own process, so that they don't affect and are unaffected by other tests in the same process - Enables the default xunit parallelism No test logic was changed in this PR, other than moving some tests to their own file and wrapping the body of those tests with RemoveInvoke. As a result, the innerloop execution time drops on my machine from ~60s to ~40s. The majority of the remaining time is spent in the HttpClientHandlerTest class, and simply by splitting up that class, the execution time can easily be dropped to ~15s on a quad core, resulting in xunit's default parallelism level being 4. (I've not done that in this PR, however.) cc: @davidsh, @cipop, @ericeil, @Priya91 +9538 area-System.Net MulticastInterface_Set_AnyInterface_Succeeds failing on Fedora in CI Since https://github.com/dotnet/corefx/pull/9471 was merged, all Fedora runs appear to be failing in this test with this error: ``` System.Net.Sockets.Tests.SocketOptionNameTest.MulticastInterface_Set_AnyInterface_Succeeds [FAIL] System.Net.Sockets.SocketException : Connection timed out Stack Trace: at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.Tests.SocketOptionNameTest.MulticastInterface_Set_Helper(Int32 interfaceIndex) ``` +9539 area-System.Runtime Why System.Runtime.Loader isn't available on UWP? Load assembly at runtime is very useful for app extension purpose. UWP apps can have the codeGeneration capability. And there is VirtualProtectFromApp function. Why System.Runtime.Loader isn't available on UWP? +9541 area-System.Net Uri.TryCreate method throws NullReferenceException "NullReferenceException is thrown at the line https://github.com/dotnet/corefx/blob/master/src/System.Private.Uri/src/System/Uri.cs#L2042 (_syntax is null) for the following call: ``` System.Uri url; System.Uri.TryCreate(""http:Ç"", System.UriKind.RelativeOrAbsolute, out url); ``` with the stack trace ``` at System.Uri.CreateUriInfo(Flags cF) at System.Uri.EnsureUriInfo() at System.Uri.ParseRemaining() at System.Uri.EnsureParseRemaining() at System.Uri.InitializeUri(ParsingError err, UriKind uriKind, UriFormatException& e) at System.Uri.CreateHelper(String uriString, Boolean dontEscape, UriKind uriKind, UriFormatException& e) at System.Uri.TryCreate(String uriString, UriKind uriKind, Uri& result) at ConsoleApplication36.Program.Main(String[] args) at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() ``` https://connect.microsoft.com/VisualStudio/feedback/details/2826777/uri-trycreate-method-throws-nullreferenceexception " +9542 area-System.Net Uri parser supports paths wrt. RFC3986-5.4.2 "Unicode relative paths with known schemes that have without ""//"" characters are parsed correctly. Fix #9541 " +9543 area-System.Net Test failure: Manual_CertificateSentMatchesCertificateReceived_Success "The test as currently written fails sporadically on Windows. If, however, `GC.Collect(); GC.WaitForPendingFinalizers();` is added inside the loop here: https://github.com/dotnet/corefx/blob/483aa5a3012fe78ea001ece1b0404b18c0b90a29/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.ClientCertificates.cs#L117 the `reuseClient==false` test fails deterministically for me with the error ""The client certificate credentials were not recognized"". It appears something is getting finalized and preventing the same certificate instance from being used with subsequent HttpClientHandler instances. " +9544 area-System.Net Tweak HTTP client certificates test and add ActiveIssue With GC/finalization at the right moment, the test currently fails on Windows. https://github.com/dotnet/corefx/issues/9543 cc: @davidsh, @cipop, @ericeil +9545 area-System.Security Make KeyDerivationAlgorithm a primitive @bartonjs I think this would allow for more flexibility than simply parameterizing Rfc2898DeriveBytes, UWP already has concepts of KeyDerivationAlgorithm, HashAlgorithm, MacAlgorithm, AsymmetricAlgorithm and SymmetricAlgorithm defined. +9547 area-Serialization Performance Improvments on Reflection Based De-serialization The fix improves the performance of reflection based de-serialization. The basic idea was to cache useful information acquired via reflection when de-serializing collections and create delegates for reflection invokes. The table below shows the results of the perf test runs, | DeSerializationTest | numberOfRuns | testSize | Baseline | Fix | Diff | | --- | --- | --- | --- | --- | --- | | ByteArray | 100 | 1024 | 0.563 | 0.597 | 6.04% | | ByteArray | 5 | 1048576 | 21.4 | 21.8 | 1.87% | | String | 10000 | 128 | 23.7 | 24.6 | 3.80% | | String | 10000 | 1024 | 48.6 | 47.9 | -1.44% | | ListOfInt | 1000 | 128 | 611 | 64.9 | -89.38% | | ListOfInt | 100 | 1024 | 494 | 46.8 | -90.53% | | ListOfInt | 1 | 1048576 | 5.07E+03 | 474 | -90.65% | | Dictionary | 1000 | 128 | 694 | 497 | -28.39% | | Dictionary | 100 | 1024 | 539 | 368 | -31.73% | | SimpleType | 10 | 1 | 0.616 | 0.31 | -49.68% | | SimpleType | 1 | 15 | 2.21E+03 | 1.07E+03 | -51.58% | | ISerializable | 10000 | -1 | 73.2 | 76.2 | 4.10% | | XmlElement | 10000 | -1 | 34.6 | 35.2 | 1.73% | | ArrayOfSimpleType | 1000 | 128 | 1.90E+03 | 394 | -79.26% | | ArrayOfSimpleType | 100 | 1024 | 1.53E+03 | 294 | -80.78% | | ListOfSimpleType | 1000 | 128 | 1.77E+03 | 371 | -79.04% | | ListOfSimpleType | 100 | 1024 | 1.43E+03 | 290 | -79.72% | | DictionaryOfSimpleType | 1000 | 128 | 1.81E+03 | 934 | -48.40% | | DictionaryOfSimpleType | 100 | 1024 | 1.44E+03 | 721 | -49.93% | +9548 area-System.Net Allow the HTTP2 protocol test to pass with untrusted chains on Debian. "The TLS context is set up to make this chain: CN=http2.akamai.com, O=Akamai Technologies Inc., L=Santa Clara, S=CA, C=US CN=Verizon Akamai SureServer CA G14-SHA2, OU=Cybertrust, O=Verizon Enterprise Solutions, L=Amsterdam, C=NL CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE CN=GTE CyberTrust Global Root, OU=""GTE CyberTrust Solutions, Inc."", O=GTE Corporation, C=US making use of the cross-signed Baltimore CyberTrust Root certificate. Unfortunately, that chain is not trusted on Debian 8.4 (GTE CyberTrust Global Root was removed), and a combination of data and installed software results in the valid chain using the self-signed Baltimore root is never built. To prevent this situation from making the tests show as a failure, selectively allow Debian 8 to succeed on an incomplete chain. " +9550 area-System.Xml [dev/xml] Port XslCompiledTransform tests This needs to be done as a part of dev/xml branch work. Workload size: large +9555 area-System.IO FileSystem: Expand CanCreateSymlinks test Make it harder to pass the CanCreateSymbolicLinks check so that tests don't fail on some systems where a file symlink can be created but a directory symlink can't be. Also adds a File.Exists/Directory.Exists check to provide a bit more strengthening to the CanCreateSymbolicLinks check. likely resolves #9009 +9556 area-Meta Update new API's to netstandard1.7 Once we have a nuget client that support NS1.7 (https://github.com/NuGet/Home/issues/2998) then we need to update a number of our contracts, particularly in the dev/api branch, to target NS1.7 +9559 area-System.Security Compat work for Crypto Need to define how much we want to do here. +9562 area-System.IO Update System.IO target version to NS1.7 When #9556 is available we need to update System.IO. +9565 area-System.Net Several more WebSocket tweaks "- Refactor out of the ReceiveAsyncPrivate method the portions responsibility for handling the close, ping, and pong messages; this slightly increases allocations for handling those, but helps with the send/receive cases. - Ensure we capture an exception into the task returned from SendAsync rather than throwing it out synchronously - Properly handle a few more ""bad message"" cases. We're now passing 100% of the autobahn WebSockets tests (other than the ""unimplemented"" compression ones). cc: @ericeil " +9570 area-System.Diagnostics Proposal: support for local variables in SymbolReader for Portable PDB, Linux To support getting names of local variables from Portable PDB (see dotnet/coreclr#5809) the following method should be added to System.Diagnostics.Debug.SymbolReader (#8981): ``` c# public static bool GetLocalVariableName(string assemblyFileName, int methodToken, int localIndex, out IntPtr localVarName) { } ``` The output parameter `localVarName` is supposed to be marshaled as BSTR to native code. @lucenticus @mikem8361 @seanshpark @chunseoklee +9576 area-System.Net Removed redundant calls to SetFieldsFromUri() in UriBuilder SetFieldsFromUri() is more or less identical to Init() (which for some reason calls SetFieldsFromUri() resulting in UriBuilder being initialized twice). The only other place it's called is in the Uri property after the new Uri object has been constructed. It doesn't make sense for a UriBuilder to re-initialize itself with the information it just used to construct a new Uri object. +9577 area-System.Net Fix MulticastInterface_Set_Helper in Fedora Outerloop runs Attempt to work around routing issues in the test environment by manually sending from the same interface we'll receive on. Fixes #9538. +9578 area-System.Net "System.ArgumentNullException: ""SafeHandle cannot be null"" on every http request" Looks like we missed this in WCF HelloWorld perf/stress :( There is a System.ArgumentNullException per WCF request which gets handled and the request proceeds successfully, but the exception isn't the most performant way to control the execution flow ... I didn't dig into the details on why it happens (whether it needs a multi-threaded access to http client or not), I only have the call stack for now: ``` System.StubHelpers.StubHelpers.SafeHandleAddRef(System.Runtime.InteropServices.SafeHandle, Boolean ByRef) Interop+WinHttp.WinHttpSetOption(SafeWinHttpHandle, UInt32, UInt32 ByRef, UInt32) DomainBoundILStubClass.IL_STUB_PInvoke(SafeWinHttpHandle, UInt32, UInt32 ByRef, UInt32) System.Net.Http.WinHttpHandler+d__101.MoveNext() System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.RunWithDefaultContext() System.Threading.ThreadPoolWorkQueue.Dispatch() ``` +9580 area-System.Net Disable SocketOptionNameTest.MulticastInterface_Set_AnyInterface_Succeeds on Fedora 23 Disable `SocketOptionNameTest.MulticastInterface_Set_AnyInterface_Succeeds` on Fedora, while we investigate why this test has been failing (#9538). +9581 area-System.Collections System.Collections.BitArray tests fail for netcore50aot "There's a slight difference in the implementations of `System.Collections.BitArray` in mscorlib and for netcore50aot (which is in the corefx repository): netcore50aot includes a parameter name for an exception, while mscorlib does not. [coreclr/mscorlib](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Collections/BitArray.cs#L390): ``` if (array is int[]) { // .... } else if (array is byte[]) { // .... } else if (array is bool[]) { // .... } else throw new ArgumentException(Environment.GetResourceString(""Arg_BitArrayTypeUnsupported"")); // No argument name in this message. ``` [corefx/netcore50aot](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/BitArray.cs#L422) ``` if (array is int[]) { // ..... } else if (array is byte[]) { // .... } else if (array is bool[]) { // .... } else throw new ArgumentException(SR.Arg_BitArrayTypeUnsupported, nameof(array)); // Uses name of argument ``` ...this is causing tests to fail, because the tests verify the non-existence of the parameter name. What should be done in this case? Remove the parameter name from the version in corefx? Add them to mscorlib (perhaps in future)? (more classes' tests may fail, these are just the one I've been investigating) " +9582 area-Serialization Compat work for Serialization Devise our plan for increasing compatibility with serialization, and break out the work. +9583 area-System.Text Compat work for Encoding (for Windows) ~70 types and members on the types, among these types: ``` System.Text.Decoder System.Text.DecoderExceptionFallbackBuffer System.Text.DecoderReplacementFallbackBuffer System.Text.Encoder System.Text.EncoderExceptionFallbackBuffer System.Text.EncoderReplacementFallbackBuffer System.Text.Encoding System.Text.EncodingInfo System.Text.UnicodeEncoding ``` +9596 area-System.Net Uri.TryCreate creates wrong Uri "Uri class duplicates everytrhing after the colon when scheme is unknown and there are unicode characters in the uri. `Uri.TryCreate(""scheme:Ç"", System.UriKind.RelativeOrAbsolute, out url);` creates `""scheme:ÇÇ""`, `Uri.TryCreate(""scheme:Ç/Ğ/İ?a=b"", System.UriKind.RelativeOrAbsolute, out url);` creates `""scheme:Ç/Ğ/İ?a=bÇ/Ğ/İ?a=b""`. https://connect.microsoft.com/VisualStudio/feedback/details/2844324 " +9597 area-System.Net Uri supports unknown schemes wrt. RFC3986-5.4.2 "Unicode relative paths with unknown schemes without ""//"" characters are parsed correctly. Fix #9596 " +9600 area-Infrastructure [ARM/Linux] Fix build break: /usr/bin/objcopy: Unable to recognise the format of the input file ... ARM cross build on Ubuntu 14.04LTS is stop with following message. ``` /home/sjlee/git/corefx/bin/obj/Linux.arm.Release/Native/System.IO.Compression.Native/System.IO.Compression.Native.so.dbg Reaping winning child 0x01168930 PID 6432 cd /home/sjlee/git/corefx/bin/obj/Linux.arm.Release/Native/System.IO.Compression.Native && /usr/bin/objcopy --only-keep-debug /home/sjlee/git/corefx/bin/obj/Linux.arm.Release/Native/System.IO.Compression.Native/System.IO.Compression.Native.so /home/sjlee/git/corefx/bin/obj/Linux.arm.Release/Native/System.IO.Compression.Native/System.IO.Compression.Native.so.dbg Live child 0x01168930 (System.IO.Compression.Native/System.IO.Compression.Native.so) PID 6433 /usr/bin/objcopy: Unable to recognise the format of the input file `/home/sjlee/git/corefx/bin/obj/Linux.arm.Release/Native/System.IO.Compression.Native/System.IO.Compression.Native.so' Reaping losing child 0x01168930 PID 6433 make[2]: *** [System.IO.Compression.Native/System.IO.Compression.Native.so] Error 1 Removing child 0x01168930 PID 6433 from chain. make[2]: Leaving directory `/home/sjlee/git/corefx/bin/obj/Linux.arm.Release/Native' Reaping losing child 0x008abc00 PID 6413 make[1]: *** [System.IO.Compression.Native/CMakeFiles/System.IO.Compression.Native.dir/all] Error 2 Removing child 0x008abc00 PID 6413 from chain. make[1]: Leaving directory `/home/sjlee/git/corefx/bin/obj/Linux.arm.Release/Native' Reaping losing child 0x01a8c5c0 PID 6409 make: *** [all] Error 2 Removing child 0x01a8c5c0 PID 6409 from chain. Failed to build corefx native components. Command exited with non-zero status 1 1.76user 1.17system 0:02.91elapsed 101%CPU (0avgtext+0avgdata 39456maxresident)k 0inputs+17168outputs (0major+428797minor)pagefaults 0swaps ``` It was caused by wrong reference of toolchain `/usr/bin/objcopy` instead `/usr/bin/arm-linux-gnueabihf-objcopy` during cross build. +9605 area-System.Runtime Port the new UTF8 API and contract to 4.6.3 and remove APICompact exception +9608 area-System.Net Add server-side SslStream support for SNI and multiple server certificates https://tools.ietf.org/html/rfc6066#section-3 This is needed for servers servicing multiple host names. https://github.com/aspnet/KestrelHttpServer/issues/241 +9623 area-Infrastructure Code coverage broken, again, due to missing .pdbs "The RunTests.cmd isn't copying the .pdb file for the target assembly to the execution directory. As a result, code coverage doesn't produce any results. For example: ``` c:\Users\stoub\Source\repos\corefx\src\System.Linq.Parallel\tests>msbuild /v:m /t:rebuildandtest /p:Coverage=true Microsoft (R) Build Engine version 14.0.25123.0 Copyright (C) Microsoft Corporation. All rights reserved. System.Linq.Parallel -> c:\Users\stoub\Source\repos\corefx\bin\ref\System.Linq.Parallel\4.0.0.0\System.Linq.Parallel.dll System.Linq.Parallel -> c:\Users\stoub\Source\repos\corefx\bin\ref\System.Linq.Parallel\4.0.0.0\System.Linq.Parallel.dll System.Linq.Parallel -> c:\Users\stoub\Source\repos\corefx\bin\AnyOS.AnyCPU.Debug\System.Linq.Parallel\System.Linq.Parallel.dll System.Linq.Parallel -> c:\Users\stoub\Source\repos\corefx\bin/packages/Debug/specs/System.Linq.Parallel.nuspec System.Linq.Parallel.Tests -> c:\Users\stoub\Source\repos\corefx\bin\AnyOS.AnyCPU.Debug\System.Linq.Parallel.Tests\System.Linq.Parallel.Tests.dll Using c:\Users\stoub\Source\repos\corefx\packages/ as folder for resolving package dependencies. Executing in c:\Users\stoub\Source\repos\corefx\bin\tests\AnyOS.AnyCPU.Debug\System.Linq.Parallel.Tests\netcoreapp1.0\ Hard linking dependent files... Finished linking needed files, moving to running tests. Running tests... Start time: 9:37:20.24 Command(s): c:\Users\stoub\Source\repos\corefx\packages/OpenCover\4.6.519\tools\OpenCover.Console.exe -oldStyle -filter:""+[*]* -[*.Tests]* -[xunit.*]*"" -excludebyfile:""* \Common\src\System\SR.*"" -nodefaultfilters -excludebyattribute:*.ExcludeFromCodeCoverage* -skipautoprops -hideskipped:All -threshold:1 -returntargetcode -reg ister:user -target:CoreRun.exe -output:c:\Users\stoub\Source\repos\corefx\bin/tests/coverage\System.Linq.Parallel.Tests.coverage.xml -targetargs:""xunit.conso le.netcore.exe System.Linq.Parallel.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=OuterLoop -notrait category=failing -notrait c ategory=nonwindowstests "" Executing: c:\Users\stoub\Source\repos\corefx\bin\tests\AnyOS.AnyCPU.Debug\System.Linq.Parallel.Tests\netcoreapp1.0\CoreRun.exe xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Linq.Parallel.Tests Discovered: System.Linq.Parallel.Tests Starting: System.Linq.Parallel.Tests Finished: System.Linq.Parallel.Tests === TEST EXECUTION SUMMARY === System.Linq.Parallel.Tests Total: 21007, Errors: 0, Failed: 0, Skipped: 0, Time: 9.131s Committing... No results, this could be for a number of reasons. The most common reasons are: 1) missing PDBs for the assemblies that match the filter please review the output file and refer to the Usage guide (Usage.rtf) about filters. 2) the profiler may not be registered correctly, please refer to the Usage guide and the -register switch. Finished running tests. End time= 9:37:31.92, Exit code = 0 Loading report 'c:\Users\stoub\Source\repos\corefx\bin\tests\coverage\System.Linq.Parallel.Tests.coverage.xml' Preprocessing report Initiating parser for OpenCover Initializing report builders for report types: Html, Badges Analyzing 0 classes Creating summary Report generation took 0.2 seconds c:\Users\stoub\Source\repos\corefx\src\System.Linq.Parallel\tests> ``` Note the ""No results"" part. The RunTests.cmd shows that the .dll is being copied but not the .pdb: ``` call :copyandcheck ""%PACKAGE_DIR%\c:\Users\stoub\Source\repos\corefx\bin\AnyOS.AnyCPU.Debug\System.Linq.Parallel\System.Linq.Parallel.dll"" ""%EXECUTION_DIR%\System.Linq.Parallel.dll"" || exit /b -1 ``` If I manually copy over the .pdb to the execution directory, then it works. " +9624 area-System.Net Fix logic with setting response body receive timeout Due to code moving around with PR #8996, the `state.RequestHandle` was already null when trying to set the receive timeout for the response body. This generated an exception which was caught internally. This fix moves the setting of the receive timeout so that it has a valid `state.RequestHandle` to use. Fixes #9578 +9626 area-System.Console ARM64: System.Console.Tests ``` WindowAndCursorProps.SetWindowSize [FAIL] System.ArgumentOutOfRangeException : The new console window size would force the console buffer size to be too large. Parameter name: width Actual value was 241. Stack Trace: at System.ConsolePal.SetWindowSize(Int32 width, Int32 height) at System.Console.set_WindowWidth(Int32 value) at WindowAndCursorProps.SetWindowSize() Finished: System.Console.Tests === TEST EXECUTION SUMMARY === System.Console.Tests Total: 75, Errors: 0, Failed: 1, Skipped: 0, Time: 15.235s Finished running tests. End time= 8:33:55.37, Exit code = 1 ``` +9627 area-System.Data ARM64: System.Data.SqlClient.Tests ``` System.Data.SqlClient.Tests.SqlErrorCollectionTest.Indexer_Success [FAIL] System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception. ---- System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.SNILoadHandle' threw an exception. -------- System.BadImageFormatException : An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B (COR_E_BADIMAGEFORMAT)) Stack Trace: at System.Data.SqlClient.TdsParser..ctor(Boolean MARS, Boolean fAsynchronous) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.Tests.SqlErrorCollectionTest.Indexer_Success() at System.Data.SqlClient.SqlConnection.Open() at System.Data.SqlClient.Tests.ExceptionTest.GenerateConnectionException(String connectionString) at System.Data.SqlClient.Tests.ExceptionTest.<>c__DisplayClass5_0.b__0() ----- Inner Stack Trace ----- at System.Data.SqlClient.TdsParser..cctor() ----- Inner Stack Trace ----- at System.Data.SqlClient.SNINativeMethodWrapper.SNIInitialize(IntPtr pmo) at System.Data.SqlClient.SNILoadHandle..ctor() at System.Data.SqlClient.SNILoadHandle..cctor() System.Data.SqlClient.Tests.ExceptionTest.ExceptionTests [FAIL] System.Data.SqlClient.Tests.ExceptionTest.IndependentConnectionExceptionTestOpenConnection [FAIL] System.Data.SqlClient.Tests.SqlErrorCollectionTest.CopyTo_NonGeneric_Success [FAIL] System.Data.SqlClient.Tests.SqlErrorCollectionTest.CopyTo_Throws [FAIL] System.Data.SqlClient.Tests.SqlErrorCollectionTest.IsSynchronized_Success [FAIL] System.Data.SqlClient.Tests.SqlErrorCollectionTest.SyncRoot_Success [FAIL] System.Data.SqlClient.Tests.SqlErrorCollectionTest.CopyTo_Success [FAIL] System.Data.SqlClient.Tests.SqlErrorCollectionTest.CopyTo_NonGeneric_Throws [FAIL] System.Data.SqlClient.Tests.SqlErrorCollectionTest.GetEnumerator_Success [FAIL] System.Data.SqlClient.Tests.SqlErrorCollectionTest.Indexer_Throws [FAIL] ... Finished: System.Data.SqlClient.Tests === TEST EXECUTION SUMMARY === System.Data.SqlClient.Tests Total: 82, Errors: 0, Failed: 11, Skipped: 0, Time: 8.406s ``` +9628 area-System.Diagnostics ARM64: System.Diagnostics.Process.Tests ``` System.Diagnostics.Tests.ProcessTests.TestProcessOnRemoteMachineWindows [FAIL] System.InvalidOperationException : Couldn't connect to remote machine. ---- System.InvalidOperationException : Couldn't get process information from performance counter. -------- System.InvalidOperationException : Cannot load Counter Name data because an invalid index '' was read from the registry. Stack Trace: at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) at System.Diagnostics.NtProcessManager.GetProcessIds(String machineName, Boolean isRemoteMachine) at System.Diagnostics.ProcessManager.GetProcessIds(String machineName) at System.Diagnostics.Process.GetProcessById(Int32 processId, String machineName) at System.Diagnostics.Tests.ProcessTests.d__39.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() ----- Inner Stack Trace ----- at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library) at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) ----- Inner Stack Trace ----- at System.Diagnostics.PerformanceCounterLib.GetStringTable(Boolean isHelp) at System.Diagnostics.PerformanceCounterLib.get_NameTable() at System.Diagnostics.PerformanceCounterLib.GetCounterName(Int32 index) at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library, Int32 processIndex, Int32 threadIndex, Byte[] data) at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library) Finished: System.Diagnostics.Process.Tests === TEST EXECUTION SUMMARY === System.Diagnostics.Process.Tests Total: 88, Errors: 0, Failed: 1, Skipped: 0, Time: 42.874s ``` +9629 area-System.IO ARM64: System.IO.Compression.ZipFile.Tests ``` System.IO.Compression.Tests.ZipTest.InvalidDates [FAIL] System.IO.Compression.ZLibException : The underlying compression routine could not be loaded correctly. ---- System.BadImageFormatException : An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B (COR_E_BADIMAGEFORMAT)) Stack Trace: at System.IO.Compression.Deflater.DeflateInit(CompressionLevel compressionLevel, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.Deflater..ctor(CompressionLevel compressionLevel, Int32 windowBits) at System.IO.Compression.DeflateStream.InitializeDeflater(Stream stream, Boolean leaveOpen, Int32 windowBits, CompressionLevel compressionLevel) at System.IO.Compression.DeflateStream..ctor(Stream stream, CompressionMode mode, Boolean leaveOpen, Int32 windowBits) at System.IO.Compression.ZipArchiveEntry.GetDataCompressor(Stream backingStream, Boolean leaveBackingStreamOpen, EventHandler onClose) at System.IO.Compression.ZipArchiveEntry.OpenInWriteMode() at System.IO.Compression.ZipArchiveEntry.Open() at System.IO.Compression.ZipFileExtensions.DoCreateEntryFromFile(ZipArchive destination, String sourceFileName, String entryName, Nullable`1 compressionLevel) at System.IO.Compression.Tests.ZipTest.InvalidDates() ----- Inner Stack Trace ----- at Interop.zlib.deflateInit2_(Byte* stream, Int32 level, Int32 method, Int32 windowBits, Int32 memLevel, Int32 strategy, Byte* version, Int32 stream_size) at Interop.zlib.DeflateInit2_(ZStream& stream, CompressionLevel level, CompressionMethod method, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.ZLibNative.ZLibStreamHandle.DeflateInit2_(CompressionLevel level, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.Deflater.DeflateInit(CompressionLevel compressionLevel, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) System.IO.Compression.Tests.ZipTest.CreateEntryFromFileTest(withCompressionLevel: True) [FAIL] System.IO.Compression.Tests.ZipTest.CreateEntryFromFileTest(withCompressionLevel: False) [FAIL] System.IO.Compression.Tests.ZipTest.FilesOutsideDirectory [FAIL] System.IO.Compression.Tests.ZipTest.DirectoryEntryWithData [FAIL] System.IO.Compression.Tests.ZipTest.CreateFromDirectoryNormal [FAIL] System.IO.Compression.Tests.ZipTest.ReadStreamOps [FAIL] System.IO.Compression.Tests.ZipTest.UpdateAddFile [FAIL] System.IO.Compression.Tests.ZipTest.ExtractToDirectoryNormal [FAIL] System.IO.Compression.Tests.ZipTest.UpdateReadTwice [FAIL] System.IO.Compression.Tests.ZipTest.UnsupportedCompression [FAIL] System.IO.Compression.Tests.ZipTest.ExtractToDirectoryTest [FAIL] === TEST EXECUTION SUMMARY === System.IO.Compression.ZipFile.Tests Total: 24, Errors: 0, Failed: 12, Skipped: 0, Time: 11.467s ``` +9630 area-System.IO ARM64: System.IO.Packaging.Tests ``` System.IO.Packaging.Tests.Tests.T168_InvalidRelationshipId [FAIL] System.IO.Compression.ZLibException : The underlying compression routine could not be loaded correctly. ---- System.BadImageFormatException : An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B (COR_E_BADIMAGEFORMAT)) Stack Trace: at System.IO.Compression.Deflater.DeflateInit(CompressionLevel compressionLevel, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.Deflater..ctor(CompressionLevel compressionLevel, Int32 windowBits) at System.IO.Compression.DeflateStream.InitializeDeflater(Stream stream, Boolean leaveOpen, Int32 windowBits, CompressionLevel compressionLevel) at System.IO.Compression.DeflateStream..ctor(Stream stream, CompressionLevel compressionLevel, Boolean leaveOpen, Int32 windowBits) at System.IO.Compression.ZipArchiveEntry.GetDataCompressor(Stream backingStream, Boolean leaveBackingStreamOpen, EventHandler onClose) at System.IO.Compression.ZipArchiveEntry.WriteLocalFileHeaderAndDataIfNeeded() at System.IO.Compression.ZipArchive.WriteFile() at System.IO.Compression.ZipArchive.Dispose(Boolean disposing) at System.IO.Packaging.ZipPackage.Dispose(Boolean disposing) at System.IO.Packaging.Package.System.IDisposable.Dispose() at System.IO.Packaging.Tests.Tests.T168_InvalidRelationshipId() ----- Inner Stack Trace ----- at Interop.zlib.deflateInit2_(Byte* stream, Int32 level, Int32 method, Int32 windowBits, Int32 memLevel, Int32 strategy, Byte* version, Int32 stream_size) at Interop.zlib.DeflateInit2_(ZStream& stream, CompressionLevel level, CompressionMethod method, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.ZLibNative.ZLibStreamHandle.DeflateInit2_(CompressionLevel level, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.Deflater.DeflateInit(CompressionLevel compressionLevel, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) ... === TEST EXECUTION SUMMARY === System.IO.Packaging.Tests Total: 131, Errors: 0, Failed: 112, Skipped: 0, Time: 26.291s ``` +9631 area-System.Linq ARM64: System.Linq.Expressions.Tests ``` System.Linq.Expressions.Tests.BinaryModuloTests.CheckLongModuloTest(useInterpreter: False) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: at System.Linq.Expressions.Tests.BinaryModuloTests.VerifyLongModulo(Int64 a, Int64 b, Boolean useInterpreter) at System.Linq.Expressions.Tests.BinaryModuloTests.CheckLongModuloTest(Boolean useInterpreter) System.Linq.Expressions.Tests.BinaryModuloTests.CheckUShortModuloTest(useInterpreter: False) [FAIL] Assert.Equal() Failure Expected: 0 Actual: 65535 Stack Trace: at System.Linq.Expressions.Tests.BinaryModuloTests.VerifyUShortModulo(UInt16 a, UInt16 b, Boolean useInterpreter) at System.Linq.Expressions.Tests.BinaryModuloTests.CheckUShortModuloTest(Boolean useInterpreter) System.Linq.Expressions.Tests.BinaryModuloTests.CheckULongModuloTest(useInterpreter: False) [FAIL] Assert.Equal() Failure Expected: 0 Actual: 18446744073709551615 Stack Trace: at System.Linq.Expressions.Tests.BinaryModuloTests.VerifyULongModulo(UInt64 a, UInt64 b, Boolean useInterpreter) at System.Linq.Expressions.Tests.BinaryModuloTests.CheckULongModuloTest(Boolean useInterpreter) System.Linq.Expressions.Tests.BinaryModuloTests.CheckUIntModuloTest(useInterpreter: False) [FAIL] Assert.Equal() Failure Expected: 0 Actual: 4294967295 Stack Trace: at System.Linq.Expressions.Tests.BinaryModuloTests.VerifyUIntModulo(UInt32 a, UInt32 b, Boolean useInterpreter) at System.Linq.Expressions.Tests.BinaryModuloTests.CheckUIntModuloTest(Boolean useInterpreter) System.Linq.Expressions.Tests.BinaryModuloTests.CheckShortModuloTest(useInterpreter: False) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: at System.Linq.Expressions.Tests.BinaryModuloTests.VerifyShortModulo(Int16 a, Int16 b, Boolean useInterpreter) at System.Linq.Expressions.Tests.BinaryModuloTests.CheckShortModuloTest(Boolean useInterpreter) System.Linq.Expressions.Tests.OpAssign.AssignmentEquivalentsWithIndexAccess(nonAssign: System.Linq.Expressions.BinaryExpression Modulo(System.Linq.Expressions.Expression, System.Linq.Expressions.Expression), assign: System.Linq.Expressions.BinaryExpression ModuloAssign(System.Linq.Expressions.Expression, System.Linq.Expressions.Expression), type: typeof(int), useInterpreter: False) [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: at System.Linq.Expressions.Tests.OpAssign.AssignmentEquivalentsWithIndexAccess(MethodInfo nonAssign, MethodInfo assign, Type type, Boolean useInterpreter) System.Linq.Expressions.Tests.OpAssign.AssignmentEquivalentsWithMemberAccess(nonAssign: System.Linq.Expressions.BinaryExpression Modulo(System.Linq.Expressions.Expression, System.Linq.Expressions.Expression), assign: System.Linq.Expressions.BinaryExpression ModuloAssign(System.Linq.Expressions.Expression, System.Linq.Expressions.Expression), type: typeof(int), useInterpreter: False) [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: at System.Linq.Expressions.Tests.OpAssign.AssignmentEquivalentsWithMemberAccess(MethodInfo nonAssign, MethodInfo assign, Type type, Boolean useInterpreter) Finished: System.Linq.Expressions.Tests === TEST EXECUTION SUMMARY === System.Linq.Expressions.Tests Total: 25919, Errors: 0, Failed: 7, Skipped: 5, Time: 813.119s ``` +9632 area-System.IO ARM64: System.IO.Compression.Tests ``` System.IO.Compression.Tests.DeflateStreamTests.DoubleDispose [FAIL] System.IO.Compression.ZLibException : The underlying compression routine could not be loaded correctly. ---- System.BadImageFormatException : An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B (COR_E_BADIMAGEFORMAT)) Stack Trace: at System.IO.Compression.Deflater.DeflateInit(CompressionLevel compressionLevel, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.Deflater..ctor(CompressionLevel compressionLevel, Int32 windowBits) at System.IO.Compression.DeflateStream.InitializeDeflater(Stream stream, Boolean leaveOpen, Int32 windowBits, CompressionLevel compressionLevel) at System.IO.Compression.DeflateStream..ctor(Stream stream, CompressionMode mode, Boolean leaveOpen, Int32 windowBits) at System.IO.Compression.Tests.DeflateStreamTests.DoubleDispose() ----- Inner Stack Trace ----- at Interop.zlib.deflateInit2_(Byte* stream, Int32 level, Int32 method, Int32 windowBits, Int32 memLevel, Int32 strategy, Byte* version, Int32 stream_size) at Interop.zlib.DeflateInit2_(ZStream& stream, CompressionLevel level, CompressionMethod method, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) at System.IO.Compression.ZLibNative.ZLibStreamHandle.DeflateInit2_(CompressionLevel level, Int32 windowBits, Int32 memLevel, CompressionStrategy strategy) ... === TEST EXECUTION SUMMARY === System.IO.Compression.Tests Total: 151, Errors: 0, Failed: 112, Skipped: 0, Time: 24.877s ``` +9634 area-System.IO ARM64: System.IO.FileSystem.Tests fail ``` You do not have sufficient privilege to perform this operation. Discovered: System.IO.FileSystem.Tests Starting: System.IO.FileSystem.Tests ... System.IO.Tests.Directory_EnumFiles_str_str.WindowsSearchPatternInvalid [FAIL] Assert.Throws() Failure Expected: typeof(System.IO.IOException) Actual: (No exception was thrown) Stack Trace: at System.IO.Tests.Directory_GetFileSystemEntries_str_str.WindowsSearchPatternInvalid() ... System.IO.Tests.File_Create_str_i_fo.CreateCurrentDirectory [FAIL] Assert.Throws() Failure Expected: typeof(System.UnauthorizedAccessException) Actual: typeof(System.IO.IOException): The process cannot access the file 'E:\Github\corefx\bin\tests\Windows_NT.AnyCPU.Release\System.IO.FileSystem.Tests\netcoreapp1.0' because it is being used by another process. Stack Trace: at System.IO.Win32FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.Win32FileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.Tests.File_Create_str_i_fo.Create(String path) at System.IO.Tests.File_Create_str.b__4_0() ... System.IO.Tests.Directory_CreateDirectory.PathWithReservedDeviceNameAsExtendedPath [FAIL] Assert.All() Failure: 22 out of 22 items in the collection did not pass. [21]: System.UnauthorizedAccessException: Access to the path '\\?\E:\Github\corefx\bin\tests\Windows_NT.AnyCPU.Release\System.IO.FileSystem.Tests\netcoreapp1.0\ei4v2v0y.ww1\LPT9' is denied. at System.IO.Win32FileSystem.CreateDirectory(String fullPath) at System.IO.Directory.CreateDirectory(String path) at System.IO.Tests.Directory_CreateDirectory.Create(String path) at System.IO.Tests.Directory_CreateDirectory.<>c__DisplayClass33_0.b__0(String path) at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 act ... === TEST EXECUTION SUMMARY === System.IO.FileSystem.Tests Total: 2276, Errors: 0, Failed: 32, Skipped: 26, Time: 3924.654s ``` +9641 area-System.Security Add System.Security.Permissions.PrincipalPermission "We see this being used in apps. It does have effect in Desktop in the default configuration (unlike CAS). We could reasonably implement it cross platform. So we should add it. ``` class Program { static void Main() { new System.Security.Permissions.PrincipalPermission(""foo"", ""bar"").Demand(); } } Unhandled Exception: System.Security.SecurityException: Request for principal permission failed. at System.Security.Permissions.PrincipalPermission.ThrowSecurityException() at System.Security.Permissions.PrincipalPermission.Demand() at Program.Main() in C:\Users\stoub\Documents\Visual Studio 2015\Projects\ConsoleApplication27\ConsoleApplication27\Program.cs:line 5 ``` " +9643 area-System.Globalization Compat work for Globalization Most interesting from usage point of view are: ``` M:System.Globalization.TextInfo.get_OEMCodePage M:System.Globalization.CultureInfo.CreateSpecificCulture(System.String) M:System.Globalization.TextInfo.ToTitleCase(System.String) M:System.Globalization.CultureInfo.GetCultureInfo(System.String) M:System.Globalization.CultureInfo.get_InstalledUICulture M:System.Globalization.CultureInfo.#ctor(System.String,System.Boolean) M:System.Globalization.CompareInfo.GetSortKey(System.String) ``` Fuller list, including many with little usage in our corpora: ``` types removed T:System.Globalization.CalendarAlgorithmType T:System.Globalization.CultureTypes T:System.Globalization.DaylightTime T:System.Globalization.DigitShapes T:System.Globalization.SortKey T:System.Globalization.SortVersion ``` ``` types with changes to members System.Globalization.Calendar System.Globalization.CalendarAlgorithmType System.Globalization.CharUnicodeInfo System.Globalization.ChineseLunisolarCalendar System.Globalization.CompareInfo System.Globalization.CultureInfo System.Globalization.CultureNotFoundException System.Globalization.CultureTypes System.Globalization.DateTimeFormatInfo System.Globalization.DaylightTime System.Globalization.DigitShapes System.Globalization.EastAsianLunisolarCalendar System.Globalization.GregorianCalendar System.Globalization.HebrewCalendar System.Globalization.HijriCalendar System.Globalization.JapaneseCalendar System.Globalization.JapaneseLunisolarCalendar System.Globalization.JulianCalendar System.Globalization.KoreanCalendar System.Globalization.KoreanLunisolarCalendar System.Globalization.NumberFormatInfo System.Globalization.PersianCalendar System.Globalization.RegionInfo System.Globalization.SortKey System.Globalization.SortVersion System.Globalization.StringInfo System.Globalization.TaiwanCalendar System.Globalization.TaiwanLunisolarCalendar System.Globalization.TextInfo System.Globalization.ThaiBuddhistCalendar System.Globalization.UmAlQuraCalendar ``` +9644 area-System.Net HttpClient stripping Content-Length header after redirect on non-Windows systems "Scenario: 1) Client sends PATCH to server with some content. 2) Server sends 401 response. 3) Client add a new auth-header then re-sends PATCH to server with same content sent before. Example: Client: ``` PATCH /_apis/distributedtask/pools/1/jobrequests/34?lockToken=00000000-0000-0000-0000-000000000000 HTTP/1.1 Host: ting.tfsbuildhost3.tfsallin.net Accept-Encoding: gzip Content-Type: application/json; charset=utf-8; api-version=3.0-preview.1 Accept: application/json; api-version=3.0-preview.1 User-Agent: VSServices/15.255.65000.0 (NetStandard) VstsAgentCore-osx.10.11-x64/2.102.0 (Darwin 15.0.0 Darwin Kernel Version 15.0.0: Wed Aug 26 16:57:32 PDT 2015; root:xnu-3247.1.106~1/RELEASE_X86_64) Accept-Language: en-US X-TFS-FedAuthRedirect: Suppress X-TFS-Session: a458e637-3514-4103-9713-61bb2b32140f Content-Length: 16 Expect: 100-continue {""requestId"":34} <------ this is the content object ``` Server: ``` HTTP/1.1 401 Unauthorized Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/8.5 X-TFS-ProcessId: 8ec18195-7fd1-4116-8397-3b6fd8a2cdd6 Strict-Transport-Security: max-age=31536000; includeSubDomains Access-Control-Allow-Origin: * Access-Control-Max-Age: 3600 Access-Control-Allow-Methods: OPTIONS,GET,POST,PATCH,PUT,DELETE Access-Control-Expose-Headers: ActivityId,X-TFS-Session,X-MS-ContinuationToken Access-Control-Allow-Headers: authorization X-FRAME-OPTIONS: SAMEORIGIN X-TFS-FedAuthRealm: https://app.tfsbuildhost3.tfsallin.net/ X-TFS-FedAuthIssuer: https://tfstest.accesscontrol.windows.net/v2/wsfederation X-VSS-ResourceTenant: 00000000-0000-0000-0000-000000000000 X-TFS-SoapException: %3c%3fxml+version%3d%221.0%22+encoding%3d%22utf-8%22%3f%3e%3csoap%3aEnvelope+xmlns%3asoap%3d%22http%3a%2f%2fwww.w3.org%2f2003%2f05%2fsoap-envelope%22%3e%3csoap%3aBody%3e%3csoap%3aFault%3e%3csoap%3aCode%3e%3csoap%3aValue%3esoap%3aReceiver%3c%2fsoap%3aValue%3e%3csoap%3aSubcode%3e%3csoap%3aValue%3eUnauthorizedRequestException%3c%2fsoap%3aValue%3e%3c%2fsoap%3aSubcode%3e%3c%2fsoap%3aCode%3e%3csoap%3aReason%3e%3csoap%3aText+xml%3alang%3d%22en%22%3eTF400813%3a+Resource+not+available+for+anonymous+access.+Client+authentication+required.%3c%2fsoap%3aText%3e%3c%2fsoap%3aReason%3e%3c%2fsoap%3aFault%3e%3c%2fsoap%3aBody%3e%3c%2fsoap%3aEnvelope%3e X-TFS-ServiceError: TF400813%3a+Resource+not+available+for+anonymous+access.+Client+authentication+required. WWW-Authenticate: TFS-Federated X-TFS-FedAuthRedirect: https://app.tfsbuildhost3sps.tfsallin.net/_signin?realm=ting.tfsbuildhost3.tfsallin.net&reply_to=https%3A%2F%2Fting.tfsbuildhost3.tfsallin.net%2F_apis%2Fdistributedtask%2Fpools%2F1%2Fjobrequests%2F34%3FlockToken%3D00000000-0000-0000-0000-000000000000&redirect=1&context=eyJodCI6MiwiaGlkIjoiNDk2YThiNTgtZmFjZi00NDAzLWJkZWQtZjBiMDU5ZDBhMGY2IiwicXMiOnt9LCJyciI6Imh0dHBzOi8vYXBwLnRmc2J1aWxkaG9zdDNzcHMudGZzYWxsaW4ubmV0LyIsInZoIjoiMTluSVNfZ0VfSU9Hb2NqeGg2NEViZ21rSTBKQzBoY1N2R0pWblpVMVc4YzEiLCJjdiI6IiIsImNzIjoiIn01#ctx=eyJTaWduSW5Db29raWVEb21haW5zIjpbImh0dHBzOi8vbG9naW4ud2luZG93cy1wcGUubmV0IiwiaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tIl190 WWW-Authenticate: Basic realm=""https://app.tfsbuildhost3.tfsallin.net/"" X-VSS-S2STargetService: 00000002-0000-8888-8000-000000000000/visualstudio.com WWW-Authenticate: Bearer X-Powered-By: ASP.NET P3P: CP=""CAO DSP COR ADMa DEV CONo TELo CUR PSA PSD TAI IVDo OUR SAMi BUS DEM NAV STA UNI COM INT PHY ONL FIN PUR LOC CNT"" X-Content-Type-Options: nosniff Date: Thu, 23 Jun 2016 18:49:42 GMT Content-Length: 9867 ... ``` Client: ``` PATCH /_apis/distributedtask/pools/1/jobrequests/34?lockToken=00000000-0000-0000-0000-000000000000 HTTP/1.1 Host: ting.tfsbuildhost3.tfsallin.net Accept-Encoding: gzip Content-Type: application/json; charset=utf-8; api-version=3.0-preview.1 Accept: application/json; api-version=3.0-preview.1 User-Agent: VSServices/15.255.65000.0 (NetStandard) VstsAgentCore-osx.10.11-x64/2.102.0 (Darwin 15.0.0 Darwin Kernel Version 15.0.0: Wed Aug 26 16:57:32 PDT 2015; root:xnu-3247.1.106~1/RELEASE_X86_64) Accept-Language: en-US X-TFS-FedAuthRedirect: Suppress X-TFS-Session: a458e637-3514-4103-9713-61bb2b32140f X-VSS-UserData: Authorization: Bearer <-- since we got 401 from server, we add an auth header. eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6InotVUk5MW1ZR2cyRE9oVC1kSUw4a3JGX1o3RSJ9.eyJuYW1laWQiOiJlNzViYzIxYi1hNDc0LTQzM2QtOTM5OS04Y2UzYTkyZWY1MjUiLCJzY3AiOiJ2c28uYWdlbnRwb29sc19saXN0ZW4iLCJpc3MiOiJhcHAudGZzYnVpbGRob3N0M3Nwcy50ZnNhbGxpbi5uZXQiLCJhdWQiOiJhcHAudGZzYnVpbGRob3N0M3Nwcy50ZnNhbGxpbi5uZXR8dnNvOjQ5NmE4YjU4LWZhY2YtNDQwMy1iZGVkLWYwYjA1OWQwYTBmNiIsIm5iZiI6MTQ2NjcwNzc4MywiZXhwIjoxNDY2NzExMzgzfQ.bImbtAmuTlGAVtyogb4sb5yO2AODMEpPa7sQFcyUPCxgZBD99qXEzNefSdJeup_4HT5T-SiUlZy6hUSEDf6SxKrpJhj8boRSLshwP8QYbjo_lSH-hV_NsnVHMLlGN8LE9dXV6y9PCLXuv3P8GI3S_H8OkEDqy_mE4PgcM4Nl5qUudw2zObfXQwKIXrt2M1fb1dnv5_qZTZxmiPDzG6UQrgSLcY-qtlO_fSpKqoQEpaDismFKgSBSJprHjGqalGSa3Pz9NoPJWd6gO_XyT4u5NLNwx0Kfk3HxGg6yaSCCONGuPu7oSy9qXbtrfKHAvb2UAwAzm1NeqHJQaoRVsV7aHA Transfer-Encoding: chunked <----- Content-Length is missing here, as a result, server will get null for the patch object -----> Expect: 100-continue {""requestId"":34} ``` The problem only repros on Linux or OSX, windows client works fine, seems like opposite situation to #7440 " +9650 area-System.Globalization String.Normalize() throws SEHException on Windows Server 2016 TP5 "# Repro Steps 1. Install CLI 1.0.0-preview2-003121 2. `dotnet new& dotnet restore& dotnet run` 3. Edit `Program.cs`, and change the code to `Console.WriteLine(""Hello World!"".Normalize());` 4. `dotnet run` # Expected Prints `Hello World!` # Actual On Windows Server 2012 R2, it works fine. On Windows Server 2016 TP5, it fails with the following exception: ``` Unhandled Exception: System.Runtime.InteropServices.SEHException: External component has thrown an exception. at Interop.mincore.NormalizeString(Int32 normForm, String source, Int32 sourceLength, Char[] destenation, Int32 destenationLength) at System.StringNormalizationExtensions.Normalize(String strInput, NormalizationForm normalizationForm) at System.StringNormalizationExtensions.Normalize(String strInput) at ConsoleApplication.Program.Main(String[] args) ``` I'm not sure if this is a bug in CoreFx or Windows Server 2016 TP5. " +9651 area-System.Globalization Typo in parameter names for method Interop.mincore.NormalizeString() There is a typo in the parameter names for method `Interop.mincore.NormalizeString()`. The parameters use the word `destenation` instead of `destination`. https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/Common/src/Interop/Windows/mincore/Interop.Normalization.cs#L37-L38 +9652 area-System.Net Consider options for supporting Socket.DontFragment on Unix sockets Right now, setting `Socket.DontFragment` outside of windows results in an exception being thrown. We do not have a mapping for this option in `Interop.Sys.SetSockOpt`. It would be nice for this to work, especially if we can get the same behavior as Windows. It looks like there are a couple of options. Supposedly, there exists `IP_DONTFRAG` on some systems (https://www.ibm.com/support/knowledgecenter/ssw_i5_54/apis/ssocko.htm). I'm not sure if any of the systems we support actually have this. Ubuntu/CentOS don't seem to. There is another option, `IP_MTU_DISCOVER` (http://man7.org/linux/man-pages/man7/ip.7.html), which seems to control what we want: ``` Set or receive the Path MTU Discovery setting for a socket. When enabled, Linux will perform Path MTU Discovery as defined in RFC 1191 on SOCK_STREAM sockets. For non-SOCK_STREAM sockets, IP_PMTUDISC_DO forces the don't-fragment flag to be set on all outgoing packets. ``` I'm not familiar with the difference between SOCK_STREAM and non-SOCK_STREAM sockets is, or which we use in our implementation. If we use non-SOCK_STREAM sockets, this seems like a good option. For reference, it looks like [mono](https://github.com/mono/mono/blob/91734968b83a0971c041254286cdc903b26564e2/mono/metadata/socket-io.c#L445) uses `IP_DONTFRAGMENT` or `IP_MTU_DISCOVER`, based on which is available. Presumably, `IP_DONTFRAGMENT` is only available on Windows. If we use `IP_MTU_DISCOVER`, we need to set the value to `IP_PMTUDISC_DO`, according to the above manpage. @ericeil , @pgavlin +9657 area-System.IO Add support for 7z/LZMA1/LZMA2 to System.IO.Compression http://7-zip.org/sdk.html +9664 area-System.Globalization Missing creation of StringComparer for other languages "I'm trying to retarget a portable C# library for .Net core 1.0. I used to do something like this to get a string comparer for a different language, once I obtained a CultureInfo object for the language (via a delegate set by the caller): IComparer comparer = (IComparer)StringComparer.Create(cultureInfo, caseInsensitive); .Net Core currently seems to only support it for the current culture via properties like StringComparer.CurrentCulture. Is there a way to get a string comparer for a given language or culture? This is important for an app that uses multiple languages simultaneously, such as an app for language-learning. From a StackOverflow post I made (http://stackoverflow.com/questions/37801425/how-to-create-stringcomparer-for-different-languages-in-net-core?s=1|2.5892) I got this: ""So, you could set Thread.CurrentThread.CurrentCulture to the desired culture, then grab the StringComparer for that culture using StringComparer.CurrentCulture, then set the Thread.CurrentThread.CurrentCulture to the next desired culture, then grab another StringComparer ... etc."" But it seems it could be better. If it's going to be different from the old .Net, how about something even simpler like: public static StringComparer Create(string languageCode) where language code is a language code such as ""en"" or ""en-us"". Thanks. -John " +9665 area-System.Net Fix HttpRequestMessage reuse handling in HttpClientHandler on Unix HttpRequestMessages are meant to be used for a single request. However, that checking is done by HttpClient rather than by HttpClientHandler. As a result, if code bypasses HttpClient, e.g. by using HttpMessageInvoker or by using a custom HttpMessageHandler sitting between the HttpClient and the HttpClientHandler, the same HttpRequestMessage can be used multiple times without an exception being thrown warning of the invalid usage. And on Windows, things happen to work, but with our Unix implementation was never expecting this scenario and doesn't work well with it: - The handler is explicitly disposing of the request content stream rather than leaving that up to the request content's disposal to handle. - The handler is removing the Content-Length header from the request message content, as a simple way to avoid overriding the Content-Length header that libcurl itself may send based on previous configuration. - The handler is using ReadAsStreamAsync to get the request stream to send, but ReadAsStreamAsync caches the returned stream, so if the same request message is reused with the same Content, the stream will have already advanced to the end of the stream, and when the message gets reused, we won't have content to send. This commit fixes that: - We now don't dispose the request content stream. That'll be left up to the request content's disposal. - We now don't remove the ContentLength header from the request message. We instead just check as we're writing out the headers whether the header is Content-Length, skipping it if it is. - We now store the original position of a seekable stream that's provided to us, and at the end of the request, rather than disposing of the stream, we rewind to the original position if it exists. (If the stream isn't seekable, reusing the request message wouldn't be possible anyway.) This last point also fixes another theoretical issue. When libcurl wants to go back to the beginning of the stream (e.g. in a redirect scenario where it needs to rewind), it asks us to seek back to the beginning. We're currently seeking back to the exact position asked for. But the stream may have come in to us already advanced beyond 0, in which case we need to seek back to the requested offset plus that original position rather than just the requested offset. And in doing this, I noticed that we were inadvertently allowing a set of closure/delegate allocations due to inadvertently using some captured state in a place where we were trying to avoid that. I fixed that as well. We were also marking everything complete before we'd cleaned up all resources, which meant that any failures from such cleanup would go unnoticed. I've fixed that to ensure we clean up all state before we officially declare the async operation done. Fixes #9644 cc: @ericeil, @davidsh +9669 area-System.Diagnostics Trace uses the string DEFAULT_APPNAME unconditionally in logged messages "This looks like a temporary workaround that was never fully resolved, and got lost in an old bug tracker. https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/System.Diagnostics.TraceSource/src/System/Diagnostics/TraceInternal.cs#L52 ``` CSharp // This needs to be updated once we have the correct property implemented in the Environment class. // Bug:895000 is tracking this. s_appName = ""DEFAULT_APPNAME""; ``` Desktop uses the code below, which may not be a good idea in today's world where the first command-line arg is often the CLR host. ``` CSharp appName = Path.GetFileName(Environment.GetCommandLineArgs()[0]); ``` I propose we use `Assembly.GetEntryAssembly()`, but it would require us to bump the support up to `netstandard1.5`: ``` CSharp s_appName = Assembly.GetEntryAssembly().GetName().Name; ``` " +9670 area-System.Diagnostics Line number is incorrect in the stack trace of the exception thrown in middleware on x64 machines "I have created a repro for this issue at https://github.com/JunTaoLuo/TestHost/tree/johluo/stack-trace-zip for incorrect line numbers in the stack trace of exceptions thrown. Run the sample at `/samples/TestMiddlewareSample` with `dotnet run` after restoring packages. Then navigate to `http://localhost:5000/MiddlewareException` to trigger an exception at https://github.com/JunTaoLuo/TestHost/blob/johluo/stack-trace-zip/src/TestMiddleware/TestMiddleware.cs#L24. In the console of a x64 machine (Windows, Linux and Mac), however, I see the following stack trace report that the exception is thrown on line 27 instead: ``` == Test Middleware == Request Path: /MiddlewareException fail: Microsoft.AspNetCore.Server.Kestrel[13] Connection id ""0HKSSBS4L43JJ"": An unhandled exception was thrown by the application. System.Exception: Middleware Exception at TestHost.TestMiddleware.d__2.MoveNext() in C:\gh\tp\TestHost\src\TestMiddleware\TestMiddleware.cs:line 27 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() ``` The incorrect line number doesn't affect all exceptions though. In the repro, navigating to `http://localhost:5000` will trigger an exception at https://github.com/JunTaoLuo/TestHost/blob/johluo/stack-trace-zip/sample/TestMiddlewareSample/Startup.cs#L16. This exception is reported correctly: ``` == Test Middleware == Request Path: / fail: Microsoft.AspNetCore.Server.Kestrel[13] Connection id ""0HKSSBS4L43JJ"": An unhandled exception was thrown by the application. System.Exception: Application Exception at TestHost.Sample.Startup.<>c.b__0_0(HttpContext context) in C:\gh\tp\TestHost\sample\TestMiddlewareSample\Startup.cs:line 16 at TestHost.TestMiddleware.d__2.MoveNext() in C:\gh\tp\TestHost\src\TestMiddleware\TestMiddleware.cs:line 27 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() ``` I also see that this problem seems to only affect x64 machines. On a Windows x86 machine I see that the exceptions contain the correct line numbers: ``` == Test Middleware == Request Path: / fail: Microsoft.AspNetCore.Server.Kestrel[13] Connection id ""0HKSSB81Q7FVP"": An unhandled exception was thrown by the application. System.Exception: Application Exception at TestHost.Sample.Startup.<>c.b__0_0(HttpContext context) in C:\gh\tp\TestHost\sample\TestMiddlewareSample\Startup.cs:line 16 at TestHost.TestMiddleware.d__2.MoveNext() in C:\gh\tp\TestHost\src\TestMiddleware\TestMiddleware.cs:line 27 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() == Test Middleware == Request Path: /MiddlewareException fail: Microsoft.AspNetCore.Server.Kestrel[13] Connection id ""0HKSSB81Q7FVP"": An unhandled exception was thrown by the application. System.Exception: Middleware Exception at TestHost.TestMiddleware.d__2.MoveNext() in C:\gh\tp\TestHost\src\TestMiddleware\TestMiddleware.cs:line 24 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() C:\gh\tp\TestHost\sample\TestMiddlewareSamplePS> ``` I have attached the zip files of the repro project and its build outputs (`.dll`s, `.pdb`s, ...) in the root of the repro as `.zip` files. cc @pakrym @davidfowl " +9672 area-System.Net HttpClientHandler on Linux/OSX doesn't correctly implement Digest authentication "When making a request to a server requiring Digest authentication, the username is incorrectly specified as `realm\\username` in the challenge response. WCF has an implementation of the digest authentication algorithm in our tests which the following is from. The details of the authentication handshake that we're seeing uses the following credential information. ``` Username: be70abb0 Password: c84613c28bee44e5 Realm: bfd3c ``` A request is first made to the server with no authorization header. The server responds with a 401 Access Denied response and provides the following response header, `WWWAuthenticate: Digest realm=""bfd3c"", nonce=""Ni8yNC8yMDE2IDEyOjMyOjI0IFBN"", opaque=""0000000000000000"", stale=false, algorithm=MD5, qop=""auth""` The client then sends the following response headers. `Authorization: Digest username=""bfd3c\\be70abb0"", realm=""bfd3c"", nonce=""Ni8yNC8yMDE2IDEyOjMyOjI0IFBN"", uri=""//HttpDigestNoDomain.svc/http-digest-nodomain"", cnonce=""MTliMzMyYmFlNmZiZWZiMTAwMTE2NDQ4MDAwMDFjNjc="", nc=00000001, qop=auth, response=""d632601dd17ae997ec1fd065da22cf7f"", opaque=""0000000000000000"", algorithm=""MD5""` The digest username sent is `bfd3c\\be70abb0` which is `realm\\username`. This is incorrect as the username should be sent without the realm. " +9673 area-System.IO System.IO.Compression should support *tar files Now that we have x-plat implementation it'd be great to be able to work with .tar & .tar.gz. +9675 area-System.Net NetworkInterface.GetAllNetworkInterfaces throws on UWP I’m using the “final” .NET Core bits off of the MyGet feed and ran into an issue trying to use System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces(). The method throws on UWP with a NotImplementedException. ``` System.Net.NetworkInformation.dll!System.Net.NetworkInformation.NetNativeNetworkInterface.GetNetworkInterfaces() Unknown System.Net.NetworkInformation.dll!System.Net.NetworkInformation.NetworkInterfacePal.GetAllNetworkInterfaces() Unknown System.Net.NetworkInformation.dll!System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces() Unknown > Zeroconf.dll!Zeroconf.NetworkInterface.NetworkRequestAsync(byte[] requestBytes, System.TimeSpan scanTime, int retries, int retryDelayMilliseconds, System.Action onResponse, System.Threading.CancellationToken cancellationToken) Line 28 C# Zeroconf.dll!Zeroconf.ZeroconfResolver.ResolveInternal(System.Collections.Generic.IEnumerable protocols, byte[] requestBytes, System.TimeSpan scanTime, int retries, int retryDelayMilliseconds, System.Action callback, System.Threading.CancellationToken cancellationToken) Line 75 C# Zeroconf.dll!Zeroconf.ZeroconfResolver.BrowseDomainsAsync(System.TimeSpan scanTime, int retries, int retryDelayMilliseconds, System.Action callback, System.Threading.CancellationToken cancellationToken) Line 113 C# ZeroconfTest.UWP.exe!ZeroconfTest.UWP.MainPage.ResolveClick(object sender, Windows.UI.Xaml.RoutedEventArgs e) Line 25 C# ``` Why isn’t this working on UWP? The library has explicit support for netcore50 in the 4.1.0 nuget package. I would not expect arbitrary methods to simply not work. It sort of undermines trust that WYSIWYG when it comes to available surface area. +9678 area-System.Diagnostics TestUserCredentialsPropertiesOnWindows failing on Windows outer loop e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release/79/consoleText/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release/78/consoleText/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release/76/consoleText/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug/79/consoleText http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug/78/consoleText http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug/77/consoleText ``` System.Diagnostics.Tests.ProcessStartInfoTests.TestUserCredentialsPropertiesOnWindows [FAIL] System.ComponentModel.Win32Exception : The user name or password is incorrect Stack Trace: D:\j\workspace\outerloop_win---65ef7d78\src\System.Diagnostics.Process\src\System\Diagnostics\Process.Windows.cs(619,0): at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) D:\j\workspace\outerloop_win---65ef7d78\src\System.Diagnostics.Process\tests\ProcessStartInfoTests.cs(375,0): at System.Diagnostics.Tests.ProcessStartInfoTests.TestUserCredentialsPropertiesOnWindows() ``` +9680 area-System.Net Add a Socket.Listen() overload "[`Socket.Listen`](https://msdn.microsoft.com/en-us/library/system.net.sockets.socket.listen%28v=vs.110%29.aspx) requires an `int backlog` parameter. Please add an overload that chooses a good default value. 1. Almost nobody seems to know what's a good value to pass here. Nobody takes the time to test this. 2. So far I have never seen a practical case where the value mattered. 3. I'm not even sure to what extent the different operating systems use that value. I know for sure that some do not allow certain ranges of values and override. Quoting [MSDN `listen` documentation](https://msdn.microsoft.com/en-us/library/windows/desktop/ms739168%28v=vs.85%29.aspx): > The maximum length of the queue of pending connections. If set to SOMAXCONN, the underlying service provider responsible for socket s will set the backlog to a maximum reasonable value. If set to SOMAXCONN_HINT(N) (where N is a number), the backlog value will be N, adjusted to be within the range (200, 65535). Note that SOMAXCONN_HINT can be used to set the backlog to a larger value than possible with SOMAXCONN. > SOMAXCONN_HINT is only supported by the Microsoft TCP/IP service provider. There is no standard provision to obtain the actual backlog value. I suggest this: ``` void Listen() => Listen(int.MaxValue); ``` Because this is what `TcpListener.Start()` does. Probably, every interesting OS replaces that with ""a maximum reasonable value"". `SOMAXCONN` is `int.MaxValue` anyway. This seems to trigger the dynamic backlog feature of Windows server OS'es. Note, that `TcpListener.Start(int backlog)` does different argument validation than `Socket.Listen(int backlog)` does. Might be worth investigating and unifying. But that's not what this ticket is about. Surveying what .NET internal code passes: 1. FTP uses `1` for it's active channel. Seems unsafe since a spurious connect (port scan) could kill the connection. 2. WCF uses `if (OSEnvironmentHelper.IsApplicationTargeting45) return (12 * OSEnvironmentHelper.ProcessorCount); else return 10;`. Seems like they made a mistake here and fixed it. `10` clearly is not an appropriate value for a webservice with unknown load profile. I think the new computation is not good, either. They should just pass `int.MaxValue`. I suggest marking this issue as available for community contribution. " +9688 area-System.Text Compat work for Regex As far as I can tell, after commit 4d40e9e there is nothing left to do here. We have the same surface area as Desktop/Xamarin. Please reactivate if this is not the case. +9697 area-System.Net Add Task-based async methods to Socket The Socket class is fully capable of async IO but `Task`-returning methods are missing. I find myself pulling in the same set of helper extensions each time I use async sockets. Since sockets are a primary use case for async IO I'd find this API addition extremely useful. Note, that the async methods on `NetworkStream` are not enough because we need async support for things like `Connect` as well. +9698 area-System.Net Add reliable timeouts to socket operations Socket operations do not support timeouts sufficiently in the following cases: 1. All async operations do not respect the configured timeout. 2. `Connect` cannot be made to observe a timeout. I think there is no timeout for `Accept` either but that's usually an operation that is never supposed to time out. The workarounds usually are quite nasty. For (1) people build their own (tedious and often flawed) timeouts. For (2) people often use an event plus an async IO. In case the timeout fires they close the socket. (This actually triggers [this unavoidable race condition resulting in an access violation!](https://github.com/dotnet/corefx/issues/5749#issuecomment-215597396)) Note the amount of confusion that these problems cause: https://www.google.com/webhp?complete=1&hl=en&gws_rd=cr,ssl&ei=#complete=1&hl=en&q=socket+beginreceive+timeout (I sometimes like to point to Google and Stack Overflow to show a nice sample of real-world user complaints. I have opened this ticket because I'm repeatedly facing this issue as well.) I understand that the underlying Winsock (and now Linux) APIs make some of this hard. Since these issues are so widespread I believe it's worth the work to fix this at the managed code level (by implementing the timeouts and aborts in .NET code as opposed to making the native APIs do that). As an open concern for (1) I see the question what happens to an IO that is cancelled at the managed level due to timeout or cancellation but still running at the native level. This can cause data to be discarded. The only clean way to solve this that I could find is to terminate the connection when a read or write ends up being cancelled. In my experience this matches perfectly with real world requirements. In case of a timeout usually the calling code backs out and just wants to shut everything down. To summarize the ticket: Please add timeouts to all possibly blocking socket operations. Related ticket: [Allow the user to cancel anything at will (this is needed in addition to the timeout).](https://github.com/dotnet/corefx/issues/5749). Also related: [Add Task-based async methods which should take a `CancellationToken` _and_ observe the configured timeout.](https://github.com/dotnet/corefx/issues/9697) +9699 area-System.Runtime Remove System.Runtime\src\ApiCompatBaseline.uap101aot.txt DebuggableAttribute members. Right now, these baseline entries are needed because the new members aren't present in System.Private.CoreLib, and it's logistically inefficient to address that right now. Once we have the means to port those members to .Net Native, we can get rid of these entries. +9702 area-Serialization Performance Improvments on Reflection Based Serialization The PR includes several performance optimizations on reflection based serialization (~60% improvement). Some optimizations also improved de-serialization (~20% improvement). @mconnew @roncain @zhenlan , can you please review the PR? Thanks. +9703 area-System.Runtime Delist System.Runtime.InteropServices.PInvoke package Seems like this package has been removed as the source is no longer in this repo: https://www.nuget.org/packages/System.Runtime.InteropServices.PInvoke/ +9704 area-System.IO Add support for LZ4 to System.Compression As per requested in https://github.com/dotnet/corefx/issues/9657 I am adding a new one. LZ4 is by far the fastest compression algorithm out there (at the expense of compression ratio that-is). It makes sense to have such an algorithm available on the baseline release. We can also provide our port of our managed LZ4 implementation of the r131 (which includes acceleration) if that makes the official inclusion of an algorithm we heavily rely upon easier. We are still working on the perf front but it is currently faster than the one that we had https://github.com/Corvalius/ravendb/blob/lz4-131/src/Sparrow/Compression/LZ4.cs +9706 area-System.Net Socket.SendFile leaks FileStream in case of error Here's a sketch of the method: ```c# public void SendFile(string fileName, byte[] preBuffer, byte[] postBuffer, TransmitFileOptions flags) { ... FileStream fileStream = null; ... fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read); ... if (fileStream != null) { ExceptionHelper.UnmanagedPermission.Assert(); ... } ... } ``` 1. The `fileStream` can leak if there's an exception. Actually, I can't find the place where the stream is ever closed but this might be an oversight on my part. This is a resource leak and therefore a bug. 2. `new TransmitFileOverlappedAsyncResult(this)` can leak in case anything throws. This class has a finalizer. Probably a minor issue. 3. Another issue is that if `ReuseSocket` is set but not `Disconnect` we in fact disconnect. Is this really intended? The whole design of the enum stinks as well but we're stuck with that. Also, the enum is not validated and directly passed into unmanaged code. Hope this is alright. Disclaimer: I have not tested this. This is from code review only. +9709 area-System.IO Investigate high-level CompressionStream with header detection "## Problem There have been a number of requests coming up lately to add new compression algorithms to System.IO.Compression. This is a great way to expand the usefulness of the library and be more friendly to other platforms that frequently use compression algorithms other than Deflate/GZip/Zip. However, adding those algorithms will likely introduce lots of new, in-depth API that may add too much complexity to the scenarios where the user just wants to compress/decompress something using the defaults. ## Suggestion We should consider whether we want to provide a high-level way of compression without the need for fine-grained construction and setup, possibly by adding API that allow easy choosing of a Compression algorithm . A **major** part of this would be to add header detection to the default decompression stream. This way we can add detailed compression algorithms in their individual classes (e.g. LZMAStream, BZ2Stream, GZipStream) while still providing a simple Compression/Decompression vehicle with plenty of Algorithm choices. ## API 1 - CompressionStream type ``` public enum Compressiontype { Deflate = 0, GZip = 1, ZLib = 2, LZMA = 3 ... } public partial class CompressionStream : System.IO.Stream { public CompressionStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode) { } // default Deflate for CompressionMode.Compress. CompressionMode.Decompress attempts to detect type from header and defaults to Deflate if it can not be determined. public CompressionStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode, System.IO.Compression.CompressionType type) { } // no auto-header detection for Decompression. public CompressionStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode, bool leaveOpen) { } public CompressionStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode, System.IO.Compression.CompressionType type, bool leaveOpen) { } ... } ``` ### Examples ``` using (FileStream fs = File.OpenRead(""existinggzipfile.gz"")) using (CompressionStream compStream = new CompressionStream(fs, CompressionMode.Decompress)) { // compStream defers entirely to GZipStream } using (FileStream fs = File.OpenWrite(""newgzipfile.gz"")) using (CompressionStream compStream = new CompressionStream(fs, CompressionMode.Compress, CompressionType.GZip)) { // compStream defers entirely to GZipStream } ``` ## API 2 - Compression static class ``` public enum Compressiontype { Deflate = 0, GZip = 1, ZLib = 2, LZMA = 3 ... } public partial static class Compression { public static Stream CreateStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode) { } // default Deflate for CompressionMode.Compress. CompressionMode.Decompress attempts to detect type from header and defaults to Deflate if it can not be determined. public static Stream CreateStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode, System.IO.Compression.CompressionType type) { } // no auto-header detection for Decompression. public static Stream CreateStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode, bool leaveOpen) { } public static Stream CreateStream(System.IO.Stream stream, System.IO.Compression.CompressionMode mode, System.IO.Compression.CompressionType type, bool leaveOpen) { } ... } ``` ### Examples ``` using (FileStream fs = File.OpenRead(""existinggzipfile.gz"")) using (Stream compStream = Compression.CreateStream(fs, CompressionMode.Decompress)) // stream is a GZipStream { ... } using (FileStream fs = File.OpenWrite(""newgzipfile.gz"")) using (Stream compStream = Compression.CreateStream(fs, CompressionMode.Compress, CompressionType.GZip)) // stream is a GZipStream { ... } ``` Somewhat related to https://github.com/dotnet/corefx/issues/9237. Discussion forked from https://github.com/dotnet/corefx/issues/9657. Issues for adding new compression algorithms: - ZLib https://github.com/dotnet/corefx/issues/7570 - 7z/LZMA1/LZMA2 https://github.com/dotnet/corefx/issues/9657 - LZ4 https://github.com/dotnet/corefx/issues/9704 - Bz2 https://github.com/dotnet/corefx/issues/3253 " +9710 area-System.IO Move UWP-AOT clrcompression build to the Open The AOT netcore50 clrcompression (formerly represented by win10) is currently the only one that still needs to be built in TFS. Until we can build against the API sets in the open, we'll have to continue building it internally. https://github.com/dotnet/corefx/pull/9448 is a closed PR and https://github.com/ianhays/corefx/tree/clrcompression_arm is the corresponding branch that contains the changes required to make the build work for UWP whenever we resolve the API set issue. More info copied from #9448: - OneCore based platforms need api-set imports as opposed to kernel32 imports. The binaries produced by CMake use the kernel32 imports. - The kernel32 import issue is present in the non-appcontainer build as well but it is less of an issue there - Until we solve the API sets import issue, we'll need to keep building the UWP-aot native binaries internally - This means that the aot clrcompression is the old zlib that does not contain the zlib-intel changes. - Since it is only the aot clrcompression that still imports the API sets, debug will use the newer clrcompression that imports kernel32. +9715 area-System.Net Adding multi-machine installation scripts and unifying test configuration. - Powershell scripts to create a 3-machine environment with a client, IIS server and Active Directory Domain Controller. - Changing all test projects to use the `Configuration.*.cs` pattern. This is WIP for #9048. The ASP.Net applications are not working as expected at this point (disabled + TODO). Additional work is required to convert them to ASP.Net Core and have a single way to deploy on both a private environment or Azure. @davidsh @stephentoub @ericeil @himadrisarkar PTAL +9719 area-System.Data SqlException: Connection Timeout Expired. The timeout period elapsed during the post-login phase. "**dotnet 1.0.0-rc2-3002702 Microsoft.EntityFrameworkCore.SqlServer 1.0.0-rc2-final Ubuntu 14.04 LTS** **Microsoft SQL Server 2008 R2 (SP1)** 10.50.2550.0 (X64) Jun 11 2012 16:41:53 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1) Connection string: Data Source=192.168.1.x;Initial Catalog=DBName;Persist Security Info=False;User ID=username;Password=pass This issue may be related to #6467. Unfortunately, we cannot upgrade our SQL server service pack. The same application works fine on Windows. This also impacts Entity Framework . Code: ``` using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand(queryString, connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { Console.WriteLine(String.Format(""{0}, {1}"", reader[""Id""], reader[""Email""])); } } catch(Exception ex) { Console.WriteLine(ex.ToString()); } } ``` **Full error:** Executing action method Dashboard.Controllers.HomeController.Index (Dashboard) with arguments () - ModelState is Valid' Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware An unhandled exception has occurred while executing the request System.Data.SqlClient.SqlException: Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=159; handshake=578; [Login] initialization=9; authentication=40; [Post-Login] complete=14062; ---> System.ComponentModel.Win32Exception: Unknown error 258 --- End of inner exception stack trace --- at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Dashboard.Controllers.HomeController.Index() at lambda_method(Closure , Object , Object[] ) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.FilterActionInvoker.d__41.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Mvc.Internal.FilterActionInvoker.d__32.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.MvcRouteHandler.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Builder.RouterMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.ApplicationInsights.AspNetCore.ExceptionTrackingMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.d__7.MoveNext() ClientConnectionId:1f658ddc-13f8-43e8-85a3-fdd8cc853eff Error Number:-2,State:0,Class:11 " +9724 area-System.Collections ICollection.CopyTo argument validation is inconsistent or non-existent Posting now after RTM, as suggested once upon a time. The method `ICollection.CopyTo(Array array, int index)` has a multitude of invalid inputs. Here are some examples ### `array.GetLowerBound(0) != 0` Suggested throw type: `ArgumentException` Problem if not checked: `IndexOutOfRangeException` (bug) Compatability impact: minimal (lower bound is very rarely not 0) ### `array.Rank != 1` Suggested throw type: `ArgumentException` Problem if not checked: `IndexOutOfRangeException` (bug) Compatability impact: slight (array could be multidimensional but this is unlikely to be caught) ### `array == null` Suggested throw type: `ArgumentNullException` Problem if not checked: `NullReferenceException` (bug) Compatability impact: medium (null is a common argument passed incorrectly) ### `index < 0` Suggested throw type: `ArgumentOutOfRangeException` Problem if not checked: `IndexOutOfRangeException` (bug) Compatability impact: medium (e.g. letting user type in a custom index and catching IORE) ### `array.Count - index < collection.Count` Suggested throw type: `ArgumentException` Problem if not checked: `IndexOutOfRangeException` (bug) Compatability impact: medium (e.g. letting user type in a custom index and catching IORE) These are all I can think of at the moment. ## Examples Here are some examples that I've encountered in the past. I haven't gone searching but I'm certain there are some more - Regex ICollections only check if `array == null` and perform no other checks - System.Security.Cryptography ICollections do not check the lower bound - Hashtable, Hashtable.Keys and Hashtable.Values does not check the lower bound ## Proposition Many ICollections do not perform all of these checks. The majority check for `array == null` and `index < 0`. The builtin `System.Collections.Generic` types have these checks, but many ICollections offer custom `CopyTo` implementations We should discuss the following: - Do the benefits of validating arguments (fixing a buggy implementation) outweigh the potential compat effects? - Should we allow a non-zero lower bound (e.g. like SortedList)? - Should we establish a consistent ordering for argument validation? Should existing argument validation checks be reordered? /cc @stephentoub and @bartonjs who suggested creating a discussion +9728 area-System.Net HttpClientHandler.ServerCertificateCustomValidationCallback blows up on OSX "I just updated my Project to RTM and did testing on Windows and everything worked. I then went to test on OSX 10.11.5 (latest stable everything, dotnet, openssl) and ran into issues very quickly.. I'm getting `The libcurl library in use (7.43.0) and its SSL backend (\""SecureTransport\"") do not support custom handling of certificates. A libcurl built with OpenSSL is required.` in stable latest everything on macOS... ``` "" at System.Net.Http.CurlHandler.SslProvider.SetSslOptions(EasyRequest easy, ClientCertificateOption clientCertOption)\n at System.Net.Http.CurlHandler.EasyRequest.InitializeCurl()\n at System.Net.Http.CurlHandler.MultiAgent.ActivateNewRequest(EasyRequest easy)\n--- End of stack trace from previous location where exception was thrown ---\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\n at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()\n at System.Net.Http.HttpClient.d__58.MoveNext()\n--- End of stack trace from previous location where exception was thrown ---\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\n at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()\n at Exceptionless.Submission.DefaultSubmissionClient.GetSettings(ExceptionlessConfiguration config, Int32 version, IJsonSerializer serializer) in /Users/blake/Code/Exceptionless.Net/src/Exceptionless/Submission/DefaultSubmissionClient.cs:line 89"" [string] ``` ``` 5] blake@:~/Code/Exceptionless.Net$ brew info openssl openssl: stable 1.0.2h (bottled) [keg-only] SSL/TLS cryptography library [2:16] lake@:~/Code/Exceptionless.Net$ brew install openssl Warning: openssl-1.0.2h_1 already installed blake@:~/Code/Exceptionless.Net$ brew link --force openssl Warning: Already linked: /usr/local/Cellar/openssl/1.0.2h_1 To relink: brew unlink openssl && brew link openssl blake@:~/Code/Exceptionless.Net$ ``` I narrowed it down to defining a custom validation callback breaks the http client.. I can't even do a `GET`. ``` cs var handler = new HttpClientHandler { UseDefaultCredentials = true }; handler.ServerCertificateCustomValidationCallback = delegate { return true; }; var client = new HttpClient(handler, true); client.GetAsync(url).GetAwaiter().GetResult(); ``` All the code can be found here: http://github.com/exceptionless/Exceptionless.Net " +9734 area-System.Net Routing all BeginConnect calls through UnsafeBeginConnect This allows all calls to `BeginConnect(...)` overloads to be used with connection-less protocols such as UDP. Fixes #9304. Note that non-task based `ConnectAsync` APIs will still throw SocketException if used with a non-`Stream` Socket (similar to .Net Desktop). +9735 area-Infrastructure Assemblies in NETFramework TargetingPack do not compile on non-Windows platforms "The targeting packs for full desktop .NET on dotnet.myget.org/F/dotnet-core do not currently work when attempting to compile on OSX or Linux. **Repro** ``` json { ""dependencies"": { ""Microsoft.TargetingPack.NETFramework.v4.5.1"": { ""type"": ""build"", ""version"": ""1.0.1"" } }, ""frameworks"": { ""net451"": {} } } ``` `dotnet build` > /private/tmp/targeting/error CS1509: The referenced file '/Users/namc/.nuget/packages/Microsoft.TargetingPack.NETFramework.v4.5.1/1.0.1/lib/net451/System.EnterpriseServices.Wrapper.dll' is not an assembly > /private/tmp/targeting/error CS0009: Metadata file '/Users/namc/.nuget/packages/Microsoft.TargetingPack.NETFramework.v4.5.1/1.0.1/lib/net451/System.EnterpriseServices.Thunk.dll' could not be opened -- PE image doesn't contain managed metadata. " +9747 area-System.Diagnostics Microsoft.Diagnostics.Tracing.EventSource package does not play nicely with .NET Framework 4.5 projects using project.json "1) Create a new csproj-based project targeting .NET Framework 4.5 2) Add a project.json with: ``` { ""supports"": { }, ""dependencies"": { ""Microsoft.Diagnostics.Trace.EventSource"": { ""version"": ""1.1.16-beta"", } }, ""frameworks"": { "".NETFramework,Version=v4.5"": { } } } ``` 3) Close project, reopen 4) Build Expected: No errors or warnings Actual: ``` Warning The referenced component 'Microsoft.Diagnostics.Tracing.EventSource' could not be found. VisualStudio Warning Failed to resolve all project references for 'VisualStudio'. The package restore result for 'C:\Users\frsilb\Documents\git\roslyn-project-system\src\Dependencies\VisualStudio\VisualStudio.csproj' may be incomplete. 0 ``` Reason described in this PR: https://github.com/dotnet/roslyn-project-system/pull/278. " +9748 area-Serialization DataContractSerializer Fails to deserialize if any part contain '<' and '>'. Espically when u serialize exceptions stacktrace "Run the Program.cs file. I have reproduced the issue in simple format. The issue happens when i serialize any exception , espically stacktrace as it contains tempelate reference i.e. containing '<' and '>'. **Program.cs** using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace SampleNetCore { using System.IO; using System.Runtime.Serialization; public class Program { public static void Main(String[] srgs) { Exception e = new ArgumentException(""Hello <> World""); byte[] d = FromException1(e); Exception e1 = null; if (ToException1(d, out e1)) { Console.WriteLine(""After Deserializing Exception {0}"", e1); } else { Console.WriteLine(""Deserialiing Failed""); } Console.ReadLine(); ``` } public static byte[] FromException1(Exception exception) { var serializer = new DataContractSerializer(typeof(AggregateException)); using (var stream = new MemoryStream()) { AggregateException e1 = new AggregateException(new Exception[] { exception }); serializer.WriteObject(stream, e1); stream.Flush(); return stream.ToArray(); } } public static bool ToException1(byte[] remoteExceptionInformation, out Exception result) { var serializer = new DataContractSerializer(typeof(AggregateException)); try { using (var stream = new MemoryStream(remoteExceptionInformation)) { AggregateException result12 = (AggregateException)serializer.ReadObject(stream); result = result12.InnerException; return true; } } catch (Exception e) { System.Console.WriteLine(""Exception Occured while Deserializing {0} "", e); } result = null; return false; } ``` } } **project.json** { ""version"": ""1.0.0-*"", ""buildOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.0"" }, ""System.Runtime.Serialization.Xml"": ""4.1.1"" }, ""frameworks"": { ""netcoreapp1.0"": { ""imports"": ""dnxcore50"" } } } Expected behavior Any kind of exception should be serialize and deserialize, even if the content like ""Message"" / ""StackTrace"" contains '<' and '>'. Actual behavior The deserializing failed for above scenario. **Environment data** dotnet --info output: .NET Command Line Tools (1.0.0-preview3-003161) **Product Information:** Version: 1.0.0-preview3-003161 Commit SHA-1 hash: 63846c5 **Runtime Environment:** OS Name: ubuntu OS Version: 16.04 OS Platform: Linux RID: ubuntu.16.04-x64 " +9750 area-System.ComponentModel ForeignKeyAttribute add cascadeDelete cascadeUpdate param ForeignKeyAttribute add cascadeDelete cascadeUpdate param +9751 area-System.Net HttpContent Stream Read() and ReadAsync() consume 100% CPU on Scientific Linux 7.2 Running 1.0.0-preview2-003121 on Scientific Linux release 7.2 (Nitrogen), which `dotnet --info` identifies as (OS Name: rhel, OS Version: 7.2, OS Platform: Linux, RID: rhel.7.2-x64). In order to read from a SSE EventSource (which is basically just a HTTP GET that doesn't close immediately), my code currently: 1. Creates a `HttpClient` 2. Sets up a `HttpRequestMessage` and uses it in a `SendAsync()` on the `HttpClient` to get a `HttpResponseMessage` 3. awaits `HttpResponseMessage.Content.ReadAsStreamAsync()` 4. Enters into a loop calling `ReadAsync()` on the `Stream`, which is then fed into a decoder. The issue is that on RHEL 7.2, `await ReadAsync()` blocks (as expected), but with 100% CPU used by the `dotnet` process. This also occurs if the `ReadAsync()` is replaced by the standard blocking `Read()`. To my untrained eye, it appears to be spin waiting or spin locking, or something in that vain. I have tested and confirmed that the issue does not manifest itself on Windows 10 (build 14372) or Ubuntu 14.04. I have attached a small example project that reproduces the issue. It is unfortunately slightly cumbersome to run, since an event source must be hosted for it to read, and I can't find an existing example event source server to point it to. [RHELBugTest.zip](https://github.com/dotnet/corefx/files/338889/RHELBugTest.zip) +9756 area-Meta mscorlib reference assembly shouldn't need to expose internal types with FriendAccessAllowed Attribute. per @jkotas: > The desired state should be: > - System.Private.CoreLib exposes two kinds of types/methods: types/methods for public consumption, and types/methods for internal consumption by other framework libraries. > - mscorlib facade has forwarders for the types for public consumption only. Today framework libraries still reference mscorlib, so our mscorlib reference assembly still needs to add type forwards for internal types to S.P.Corelib. We should figure out a plan to remove this without breaking backward compat with developing a framework library that we need to run in UWP against an older version of coreclr which doesn't contain S.P.CoreLib Related: #9712 +9759 area-System.IO Add Retain to OSX FileSystemWatcher runloop The OSX FileSystemWatcher uses the CoreFoundation RunLoop API to watch for events. There is a rule that CF objects received from getter functions are not guaranteed to exist unless explicitly retained. We were not doing this, so there was a very infrequent potential race condition wherein cancellation raced with completion of the thread that owned the runloop. When completion happened first, OSX disposed the unmanaged CoreFoundation RunLoop object that was unique to the thread, and cancellation attempted to call API on that now-invalid object. This commit adds explicit retain/release logic to prevent that race condition. resolves #8983 +9760 area-System.Console Make UWP Console Color operations not throw Removes the PlatformNotSupportedExceptions thrown in the Console Color operations and adds some very basic logic to allow roundtripping. resolves #9521 @mattgal @danmosemsft @weshaggard +9761 area-System.Net NetworkInterface.GetAllNetworkInterfaces() on Ubuntu 14.04 unhandled exception FileNotFoundException "I get the following exception when calling GetAllNetworkInterfaces on Ubuntu: ``` Unhandled Exception: System.IO.FileNotFoundException: Could not find file '/sys/class/net/em1:avahi/operstate'. at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at System.IO.UnixFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.UnixFileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at System.Net.NetworkInformation.LinuxNetworkInterface.GetOperationalStatus(String name) at System.Net.NetworkInformation.LinuxNetworkInterface..ctor(String name) at System.Net.NetworkInformation.LinuxNetworkInterface.GetOrCreate(Dictionary`2 interfaces, String name) at System.Net.NetworkInformation.LinuxNetworkInterface.<>c__DisplayClass5_0.b__0(String name, IpAddressInfo* ipAddr, IpAddressInfo* maskAddr) at Interop.Sys.EnumerateInterfaceAddresses(IPv4AddressDiscoveredCallback ipv4Found, IPv6AddressDiscoveredCallback ipv6Found, LinkLayerAddressDiscoveredCallback linkLayerFound) at System.Net.NetworkInformation.LinuxNetworkInterface.GetLinuxNetworkInterfaces() at System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces() ``` I’m using package: ""System.Net.NetworkInformation"": ""4.1.0-rc3-24210-09"" This isn’t reproducible on all Ubuntu machines, since on some it works while on others it throws the above exception Thanks, Alon " +9762 area-System.Net TcpClient.Connected throws NullReferenceException on Windows when there is no Socket The following code throws `NullReferenceException` on .Net Core on Windows and on .Net Framework: ``` c# var client = new TcpClient(); client.Dispose(); Console.WriteLine(client.Connected); ``` On Unix, it writes `False`, as expected. This is because `Connected` on Windows [just returns `Connected` of the underlying socket](https://github.com/dotnet/corefx/blob/v1.0.0/src/System.Net.Sockets/src/System/Net/Sockets/TCPClient.Windows.cs#L25), while [on Unix it checks for `null`](https://github.com/dotnet/corefx/blob/v1.0.0/src/System.Net.Sockets/src/System/Net/Sockets/TCPClient.Unix.cs#L164-L172). This happens when accessing `Connected` while the underlying socket is `null`. That can happen after calling `Dispose()` and also after explicitly assigning `null` to `Client` (the underlying socket). This also affects `Available` and `ExclusiveAddressUse`. +9764 area-System.Net Dns.GetHostAddressesAsync Unexpected Result on Ubuntu 14.04 "running the following in Ubuntu 14.04: Dns.GetHostAddressesAsync(Dns.GetHostName()).Result returns: Three entries where the AddressFamily is InterNetwork and the ip is 127.0.1.1 using the following package: ""Microsoft.NETCore.App"": ""1.0.0-rc3-004432-00"" Thanks, Alon " +9765 area-System.IO Cleanup ZipFile tests using temp files Some ZipFile tests aren't cleaning up after themselves like good little tests are supposed to. This commit makes them use the FileCleanupTestBase/TempFile/TempDirectory common files to resolve that. resolves #9484 +9767 area-System.Console Peek and Read do not work well together on Console.In on OSX "Consider this program: ``` csharp using System; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { Console.Out.WriteLine(""preparing to read some text""); Console.Out.Write("">> ""); Console.Out.Flush(); char peeked = (char)Console.In.Peek(); char c = (char)Console.In.Read(); char d = (char)Console.In.Read(); Console.Out.WriteLine($""peeked: {peeked}""); Console.Out.WriteLine($""read: {c} and {d}""); } } } ``` The expected behavior is that, when faced with two input characters such as ""54"", we will peek at the ""5"", then read the ""5"", and then read the ""4"". On Windows, this is what happens when this program is run: ``` preparing to read some text >> 54 peeked: 5 read: 5 and 4 ``` On OSX, this doesn't happen: ``` preparing to read some text >> 54 peeked: 5 read: and ``` It would appear that Peek and Read are not on the same page about the state of the input stream. No matter how may characters I enter on OSX, the ""peeked"" character is the first char that I entered and the ""read"" chars are both newlines. This readily repros with the RTM .NET CLI and the project.json that is generated by `dotnet new`. " +9768 area-System.Net Support for Socks4/5 proxy in HttpClient/WebRequests Any chances of this happening? +9769 area-System.ComponentModel UrlAttribute.IsValid too naive ? When looking at https://github.com/dotnet/corefx/blob/6df5eb18807fa42e27a20e41257dcd8cc83d96d9/src/System.Private.Uri/src/System/UriExt.cs and https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/System.ComponentModel.Annotations/src/System/ComponentModel/DataAnnotations/UrlAttribute.cs I think the `UrlAttribute` is way too naive to be any useful for url validation. Is this missing implementation or is the idea to only check if string starts with http(s) or ftp ? +9777 area-System.Console Console tests don't verify actual In/Out "The tests in System.Console for the TextReader and TextWriter returned from Console.In and Console.Out don't verify anything about the non-redirected streams. Each test first calls `SetIn` or `SetOut` on a StreamWriter/Reader wrapped around a MemoryStream. This leads to issues like #9767 where basic operations have bugs that are supposedly tested against. For example, we have this test: ``` [Fact] public void Peek() { const string expected = ""ABC""; Test(expected, () => { foreach (char expectedChar in expected) { Assert.Equal(expectedChar, Console.In.Peek()); Assert.Equal(expectedChar, Console.In.Read()); } }); } ``` that _seems_ to be testing exactly what #9767 proved broken. However, in the `Test` helper we call `Console.SetIn(sr)` - where `sr` is a StreamReader around a MemoryStream - before performing the test action. So this test is actually only verifying that `Console.In` roundtrips with `Console.SetIn` and further that a StreamWriter's Peek and Read functions work. TL;DR: We should look for a better way to test the Writer/Reader returned from a non-redirected Console.Out/Console.In. " +9778 area-System.Net Guard file reads in /sys/class/net/ directories "Some systems may not have the expected files present in these directories. If such a situation is encountered, try still to return a reasonable value, or throw a PlatformNotSupportedException instead of a FileNotFoundException if we shouldn't ""guess"" a value. @stephentoub , @davidsh I think I will take a look at all of the file access in the library and consider guarding additional places. As long as there are obscure cases where some systems do not have the information we expect, we should try to throw a `PlatformNotSupportedException` instead of a less-obvious `FileNotFoundException`. For this PR, I've only guarded accesses made to files in the /sys/class/net directory, as it seems avahi-daemon maintains files there that do not conform to what we expect. Addresses #9761 " +9780 area-System.Net TcpListener fails to re-bind under Unix for 2 minutes after Stop. Have created a gist to reproduce the behaviour: https://gist.github.com/sichbo/77615b5c0a6ef7f0fab367862bffb1bd Basically what's happening is I have a console app which when re-started will always crash on second run because a socket re-bind fails with: > Unhandled Exception: System.Net.Sockets.SocketException: Address already in use > at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) > at System.Net.Sockets.Socket.Bind(EndPoint localEP) > at System.Net.Sockets.TcpListener.Start(Int32 backlog) > at System.Net.Sockets.TcpListener.Start() > at TcpListenerTest.Program. d__1.MoveNext() After about 2 minutes, the application starts normally. It's as if there's a clean-up taking place at OS level some time after the dotnet process quits. Under Windows there is no such issue and you can `Start/AcceptTcpClient/Stop` and repeat the procedure without any problem. +9785 area-System.Net Manual_CertificateSentMatchesCertificateReceived_Success failed on Ubuntu.14.04 Sample error: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/2465/testReport/junit/System.Net.Http.Functional.Tests/HttpClientHandler_ClientCertificates_Test/Manual_CertificateSentMatchesCertificateReceived_Success_numberOfRequests__3__reuseClient__True_/ Another: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/2303/testReport/junit/System.Net.Http.Functional.Tests/HttpClientHandler_ClientCertificates_Test/Manual_CertificateSentMatchesCertificateReceived_Success_numberOfRequests__3__reuseClient__True_/ ``` MESSAGE: System.Threading.Tasks.TaskCanceledException : A task was canceled. +++++++++++++++++++ STACK TRACE: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.<>c__DisplayClass5_0.<b__2>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.<>c__DisplayClass5_2.<b__4>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +9789 area-System.IO CLRCompression ARM package is not built in the open https://github.com/dotnet/corefx/blob/master/src/Native/pkg/runtime.native.System.IO.Compression/runtime.native.System.IO.Compression.pkgproj#L56 expects the open build to produce the ARM binary for clrcompression, but as far as I can tell, this doesn't happen. If we plan to still ship this from TFS please update the package to use ExternalExpectedPrerelease just like the AOT build. One making the change, please **test** the locally built packages in a UWP app. +9792 area-System.Security ArgumentNullException when calling RSACertificateExtensions.GetRSAPrivateKey Hi, after migrating project to .NET Core 1.0.0 I had to change ``` RSACryptoServiceProvider cryptoProvider = (RSACryptoServiceProvider)_qzOptions.Certificate.PrivateKey; ``` to ``` RSA cryptoProvider = _qzOptions.Certificate.GetRSAPrivateKey(); ``` Unfortunately this call throws following exception: ``` {System.ArgumentNullException: Value cannot be null. Parameter name: source at System.Runtime.InteropServices.Marshal.CopyToManaged(IntPtr source, Object destination, Int32 startIndex, Int32 length) at Internal.Cryptography.Pal.Native.CRYPTOAPI_BLOB.ToByteArray() at Internal.Cryptography.Pal.CertificatePal.get_KeyAlgorithmParameters() at System.Security.Cryptography.X509Certificates.X509Certificate.GetKeyAlgorithmParameters() at System.Security.Cryptography.X509Certificates.X509Certificate2.get_PublicKey() at Internal.Cryptography.Pal.CertificateExtensionsCommon.GetPrivateKey[T](X509Certificate2 certificate, Predicate`1 matchesConstraints) at System.Security.Cryptography.X509Certificates.RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2 certificate)} ``` This code is for signing requests for printing using QZ Tray (https://qz.io/wiki/2.0-signing-messages). C# example on which my code is based is provided at https://github.com/qzind/tray/blob/2.0/assets/signing/sign-message.cs. Thanks! +9793 area-System.Net Use string.Replace for UriBuilder.set_Path There seems to be no point in creating a new StringBuilder and appending each char (replacing \s with /s) individually, when we could just do a `string.Replace` and get rid of the helper method. cc @davidsh @stephentoub +9795 area-System.Data System.Data.SqlClient.SqlException: A connection was successfully established with the server, but then an error occurred during the login process. `System.Data.SqlClient.SqlException: A connection was successfully established with the server, but then an error occurred during the login process. (provider: TCP Provider, error: 0 - Unable to write data to the transport connection: Unknown error 10054.) ` I'm getting this error when trying to run our .net core dockerized app against our production sql server. `select @@VERSION`: `Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64) Aug 19 2014 12:21:34 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1) (Hypervisor)` Here is the connection string we are using: ``` Server=172.x.x.x;Database=xxx;User Id=xxx;Password=abcd; ``` I saw one issue that seemed similar that referred to some TLS settings, but those all seem good for us. Any help is appreciated. +9796 area-System.Net "System.Net.Http.WinHttpException (""The option is invalid"") in System.Net.Http when ClientCertificates are used." "I am trying to call a soap based webservice that requires client certs for authentication and the following exception occurs: ``` Exception: Exception thrown: 'System.Net.Http.WinHttpException' in System.Net.Http.dll (""The option is invalid""). Exception thrown: 'System.Net.Http.WinHttpException' in System.Net.Http.dll (""The option is invalid"") ``` I've tried making these calls using the HttpClientHandler class directly as well as WCF client libraries, and the outcome is the same for both. Here is the code I am using the make these calls. ```c# using (var httpHandler = new HttpClientHandler()) { string certFilePath = @""C:\share\Certificates\mytestcert.cer""; X509Certificate2 cert2 = new X509Certificate2(certFilePath); httpHandler.ClientCertificateOptions = ClientCertificateOption.Manual; httpHandler.ClientCertificates.Add(cert2); using (var client = new HttpClient(httpHandler)) { client.DefaultRequestHeaders.Add(""SOAPAction"", soapAction); client.DefaultRequestHeaders.Add(""Expect"", ""100-continue""); client.DefaultRequestHeaders.Add(""Accept-Encoding"", ""gzip, deflate""); client.DefaultRequestHeaders.Add(""Connection"", ""Keep-Alive""); StringContent stringContent = new StringContent(soapTemplate, null, ""text/xml""); using (HttpResponseMessage response = await client.PostAsync(sUrl, stringContent)) using (HttpContent content = response.Content) { result = await content.ReadAsStringAsync(); } } ``` If there is additional information I can provide, please let me know. " +9797 area-Serialization Add Reflection Based (De-)Serialization Support for DCJS The PR is enable DataContractJsonSerializer to do reflection based serialization/de-serialization. All tests passed when running on CoreCLR. Most of the tests passed in NetNative. Failed test cases are the same as those failed for DCS in NetNative. @mconnew @roncain @huanwu @zhenlan Can you please review the PR? Thanks! +9798 area-System.IO Create a new portable library for IO "There are a lot of IO utility APIs that we'd like to add to .NET. While adding methods to the existing classes (say, System.IO.Path) is a big usability plus, it is a deployment headache. Example: If we add Path.CreateRelativePath() it would create a dependency on some future version of the various runtimes (say 4.6.3 for desktop) which inhibits writing portable libraries that consume this API that has no lower level runtime dependencies. We could easily create a library that supports standard 1.0 or 1.3 that contains the pieces people are asking for and not need to force them to a newer set of runtimes to consume the functionality. It would also facilitate getting the desired functionality to users faster as we wouldn't have nearly the same level of plumbing overhead. (For Path in particular there are a _lot_ of pending functionality requests.) Initial name ideas: - System.IO.Portable - System.IO.Utility - System.IO.PathExtended If we go with a more generic name we'd have the ability to add other functionality that we are looking to do without exploding the library count too much. (One example is adding a set of interfaces for basic IO access, say IFileSystem.) For existing static classes we could do something like Path -> PathExtended (thinking of PathEx). The other pattern that is commonly used is ""Path2"". @weshaggard, @ericstj, @terrajobst, @stephentoub " +9800 area-System.Reflection CallingConvention gap in ILGenerator.EmitCalli Based on [this stackoverflow submission](http://stackoverflow.com/questions/38129594/emitcalli-net-core-alternative/38134706#38134706). It seems like there is a bit of a feature gap in the current interface for `ILGenerator`. .NET Core has a `EmitCalli` method, but the calling conventions it supports do not line up exactly with the ones exposed from the .NET Framework: https://msdn.microsoft.com/en-us/library/d81ee808(v=vs.110).aspx We should understand if this is a meaningful gap, or if the use cases for the .NET Framework version can still be covered by the new version. We may already be considering adding this functionality back as part of our bigger API compat push. cc: @AtsushiKan +9805 area-System.Reflection Restore Reflection API (.NET Native) +9807 area-System.Numerics Assigning VectorX right to VectorX left CopyTo allows copying of value to arrays but not another Vector of the same length. +9809 area-System.Data Exception occur when Registraing a new User in .NetCoreApp ### The issue Exception occur while Registring a new user in .NetCoreApp v1.0.0-rc2-3002702 ### STACK **OverflowException: Arithmetic operation resulted in an overflow.** System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) AggregateException: One or more errors occurred. (Arithmetic operation resulted in an overflow.) System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) AggregateException: One or more errors occurred. (Arithmetic operation resulted in an overflow.) ``` System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Microsoft.AspNetCore.Identity.UserValidator`1.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Microsoft.AspNetCore.Identity.UserValidator`1.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Microsoft.AspNetCore.Identity.UserManager`1.d__157.MoveNext() --- End of stack trace from previous location where exception was thrown --- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Microsoft.AspNetCore.Identity.UserManager`1.d__68.MoveNext() --- End of stack trace from previous location where exception was thrown --- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Microsoft.AspNetCore.Identity.UserManager`1.d__73.MoveNext() --- End of stack trace from previous location where exception was thrown --- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() SoundBoard.Controllers.AccountController.d__9.MoveNext() in AccountController.cs var result = await _userManager.CreateAsync(user, model.Password); --- End of stack trace from previous location where exception was thrown --- ``` ``` EF Core version: EF 7 / EF Core Operating system: Windows 8.1 Visual Studio version: VS 2015 ``` +9812 area-System.Console Custom Console Colours I'm working on .NET Core support in [Colorful.Console](http://colorfulconsole.com/). I've added nestandard1.3 support but it uses interop to set custom colours in the console, so I'm now looking at how to add this support for Windows, Mac and Linux to support every platform. Currently I'm using `RuntimeInformation.IsOSPlatform` to only use interop on Windows (See code [here](https://github.com/tomakita/Colorful.Console/blob/master/src/Colorful.Console/ColorMapper.cs#L93-L109)). Example of what the library can currently do using Figlet fonts: ![ascii_x1](https://cloud.githubusercontent.com/assets/2270364/16540939/3ee3d972-406e-11e6-8e71-e6918241db2d.png) First of all, is there anything stopping built in support for this in `System.Console`? Perhaps using `System.Drawing.Color` and adding a `Background` and `Foreground` property to `System.Console`. My understanding is that `System.Drawing.Color` is coming to .NET Core soon. Alternatively, I've been looking at the internal [ConsolePal](https://github.com/dotnet/corefx/tree/56600ecc3738940219f3c5a886c6bb0afe1f6a75/src/System.Console/src/System) classes in trying to understand how I can add this support to [Colorful.Console](http://colorfulconsole.com/). Could someone explain: 1. Why there are only Windows, WinRT and Unix versions (I guess Mac uses the same Console API as Unix but I didn't realize WinRT is totally separate too). 2. Are there any tutorials about how to compile for each platform? [System.Console.csproj](https://github.com/dotnet/corefx/blob/56600ecc3738940219f3c5a886c6bb0afe1f6a75/src/System.Console/src/System.Console.csproj) seems to contain some complicated rules around this. Also it's not an xproj, which is what I was expecting but it does have a project.json file. 3. Any guidance on understanding how ConsolePal is setting colours would help. +9814 area-System.Net Less crap-tastic fix for Unix intermediate certificates. Per @bartonjs comments regarding #9810. +9817 area-System.Runtime Project with .NET Standard won't compile on Xamarin.iOS - missing type in facade "When trying to compile the ZeroconfTest.Xam.iOS test project from here: https://github.com/onovotny/Zeroconf/tree/netstandard I get a compile time error: ``` Severity Code Description Project File Line Suppression State Error Failed to resolve ""System.Runtime.CompilerServices.ConditionalWeakTable`2"" reference from ""System.Runtime, Version=4.0.20.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" ZeroconfTest.Xam.iOS C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets 681 ``` Digging into it, the facades that Xamarin ships do not have a type forwarder for `System.Runtime.CompilerServices.ConditionalWeakTable`2`. I suspect the fix has to come from Xamarin, but it's these packages that's causing the compiler error. /cc @mhutch @ericstj " +9824 area-System.IO DevicePathsDontThrowForInvalidChars_Windows test fails with all inputs "e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/2673/consoleText ``` System.IO.Tests.PathTests.DevicePathsDontThrowForInvalidChars_Windows(prefix: ""\\?\"") [FAIL] Assert+WrapperXunitException : File path: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs. Line: 274 ---- Assert.All() Failure: 36 out of 36 items in the collection did not pass. [35]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [34]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [33]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [32]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [31]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [30]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [29]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [28]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [27]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [26]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [25]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [24]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [23]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [22]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [21]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [20]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [19]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [18]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [17]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [16]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [15]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [14]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [13]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [12]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [11]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [10]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [9]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [8]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [7]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [6]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [5]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [4]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [3]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [2]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [1]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [0]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs(583,0): at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs(39,0): at Assert.All[T](IEnumerable`1 collection, Action`1 action, String path, Int32 line) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs(274,0): at System.IO.Tests.PathTests.DevicePathsDontThrowForInvalidChars_Windows(String prefix) ----- Inner Stack Trace ----- D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs(38,0): at Assert.All[T](IEnumerable`1 collection, Action`1 action, String path, Int32 line) System.IO.Tests.PathTests.DevicePathsDontThrowForInvalidChars_Windows(prefix: ""\\.\"") [FAIL] Assert+WrapperXunitException : File path: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs. Line: 274 ---- Assert.All() Failure: 36 out of 36 items in the collection did not pass. [35]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [34]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [33]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [32]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [31]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [30]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [29]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [28]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [27]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [26]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [25]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [24]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [23]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [22]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [21]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [20]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [19]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [18]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [17]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [16]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [15]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [14]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [13]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [12]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [11]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [10]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [9]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [8]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [7]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [6]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [5]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [4]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [3]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [2]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [1]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [0]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs(583,0): at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs(39,0): at Assert.All[T](IEnumerable`1 collection, Action`1 action, String path, Int32 line) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs(274,0): at System.IO.Tests.PathTests.DevicePathsDontThrowForInvalidChars_Windows(String prefix) ----- Inner Stack Trace ----- D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs(38,0): at Assert.All[T](IEnumerable`1 collection, Action`1 action, String path, Int32 line) System.IO.Tests.PathTests.DevicePathsDontThrowForInvalidChars_Windows(prefix: ""\??\"") [FAIL] Assert+WrapperXunitException : File path: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs. Line: 274 ---- Assert.All() Failure: 36 out of 36 items in the collection did not pass. [35]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [34]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [33]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [32]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [31]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [30]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [29]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [28]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [27]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [26]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [25]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [24]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [23]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [22]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [21]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [20]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [19]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [18]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [17]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [16]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [15]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [14]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [13]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [12]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [11]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [10]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [9]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [8]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [7]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [6]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [5]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [4]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [3]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [2]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [1]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [0]: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\IO\PathInternal.cs:line 26 at System.IO.Path.ChangeExtension(String path, String extension) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\src\System\IO\Path.cs:line 36 at System.IO.Tests.PathTests.<>c__DisplayClass19_0.b__0(Char c) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 278 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs(583,0): at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs(39,0): at Assert.All[T](IEnumerable`1 collection, Action`1 action, String path, Int32 line) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs(274,0): at System.IO.Tests.PathTests.DevicePathsDontThrowForInvalidChars_Windows(String prefix) ----- Inner Stack Trace ----- D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs(38,0): at Assert.All[T](IEnumerable`1 collection, Action`1 action, String path, Int32 line) ``` " +9826 area-System.Runtime Move Environment from coreclr to corefx Some of the Environment class needs to access runtime functionality, e.g. HasShutdownStarted, but a lot of it can be implemented in corefx, and doing so helps to avoid a) duplicating functionality/code with elsewhere in corefx, and b) duplicating implementations between CoreCLR and CoreRT. We can reimplement the bulk of Environment, including the remainder of the surface area that's missing, in corefx, calling into a special class exposed from the runtime(s) just for the core pieces we need. +9833 area-System.Net Investigate using buffer pooling for StringContent "Currently `StringContent` calls `Encoding.GetBytes` to get the underlying bytes of the string, so it can pass it in to the base constructor: https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/StringContent.cs#L51 This method always allocates a new byte array. Since `StringContent` is an `IDisposable`, we should investigate renting a buffer from `ArrayPool.Shared` when initializing the content, and returning it when we dispose. I've made a prototype here: https://github.com/anonpenguin/PooledStringContent/blob/master/src/Pooling.Net.Http/PooledStringContent.cs (Note however, we may want to come up with a scheme for existing code that assumes `StringContent`'s `Dispose` doesn't do any important work and neglects to dispose it, e.g. ``` cs var content = new StringContent(""...""); // no using return await _httpClient.PutAsync(_uri, content).ConfigureAwait(false); ``` In those cases we may want to stop after renting a certain amount of ArrayPools without disposing, and fallback to allocating like we originally did.) cc @benaadams @davidsh " +9834 area-System.Net Avoid a boxing allocation in UriBuilder.ToString `_port` is an int, so adding it to a string means the `string.Conat(object, object)` overload gets called, which in turn means it gets boxed. Call `ToString` to avoid this. cc @stephentoub @davidsh +9838 area-System.Collections "BitArray.CopyTo copies also unused bits (""leaks data"")" `BitArray.CopyTo(...)` leaks internal data, if the data copied is shorter than the destination type. For instance, if set via `new BitArray(16, true)` (16 bits long, all on), then copy to an int array, all bits in the int are set (as if the `BitArray` is actually 32 bits long). [Demonstration tests](https://github.com/Clockwork-Muse/corefx/commit/19a67977e876aaa80eb42f7e04feae1fed1a815c) (although would need to be switched for regression tests). At the moment I had to verify the tests in a separate project - Something about the System.Collections is borked up when trying to run tests. I'm assuming that this is _not_ the desired behavior, given the data is automatically cleared when the length is increased. Granted, it's somewhat on the programmer for this, using a type shorter than there's officially data for... +9839 area-System.IO Can't use Path.GetFullPath in netstandard1.2 Hi, _Same issue/question as https://github.com/aspnet/Home/issues/1551 by @Sebosek_ How to get the full path of a given relative path in _netstandard1.2_? `Path.GetFullPath` seems to be available only for _netstandard1.3_ and above. Out of curiosity, why is that? Thanks +9842 area-System.IO Add IsolatedStorage types Bring back System.IO.IsolatedStorage, comprising these types ``` T:System.IO.IsolatedStorage.INormalizeForIsolatedStorage T:System.IO.IsolatedStorage.IsolatedStorage T:System.IO.IsolatedStorage.IsolatedStorageException T:System.IO.IsolatedStorage.IsolatedStorageFile T:System.IO.IsolatedStorage.IsolatedStorageFileStream T:System.IO.IsolatedStorage.IsolatedStorageScope T:System.IO.IsolatedStorage.IsolatedStorageSecurityOptions T:System.IO.IsolatedStorage.IsolatedStorageSecurityState ``` The most used types are ``` T:System.IO.IsolatedStorage.IsolatedStorageFile T:System.IO.IsolatedStorage.IsolatedStorageFileStream ``` and members in descending order ``` M:System.IO.IsolatedStorage.IsolatedStorageFile.FileExists(System.String) M:System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication M:System.IO.IsolatedStorage.IsolatedStorageFile.DirectoryExists(System.String) M:System.IO.IsolatedStorage.IsolatedStorageFile.CreateDirectory(System.String) M:System.IO.IsolatedStorage.IsolatedStorageFile.OpenFile(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare) M:System.IO.IsolatedStorage.IsolatedStorageFile.OpenFile(System.String,System.IO.FileMode,System.IO.FileAccess)M:System.IO.IsolatedStorage.IsolatedStorageFile.GetLastWriteTime(System.String) M:System.IO.IsolatedStorage.IsolatedStorageFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.IsolatedStorage.IsolatedStorageFile) M:System.IO.IsolatedStorage.IsolatedStorageFile.DeleteFile(System.String) M:System.IO.IsolatedStorage.IsolatedStorageFile.DeleteDirectory(System.String)M:System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForAssembly ``` +9846 area-System.Net .Net Plaform Standard implementation on .Net 4.6.1 has version inconsistency for System.Net.Http "I created a netstandard1.4 library (csproj) which uses System.Net.Http, and the highest available netstandard1.3 listed in NETStandard.Library meta package references System.Net.Http **v4.1.0**. I reference this library from a .Net Core console app which targets net461, and the latter has System.Net.Http **v4.0.0.0** in GAC. During build I get a warning regarding library versions conflict, and at run time get a FileNoFoundException: ""Could not load file or assembly 'System.Net.Http, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies."" Also, in project references (in solution explorer) System.Net.Http **v4.0.0** is shown. This looks pretty confusing, since I expect that once I referenced NETStandard.Library and target netstandard, I should not care about such versions consistency, since .NET Platform Standard docs claim that netstandard 1.4 is supported by net461 and higher, and netstandard 1.3 is supported by net46 and higher. UPDATE: I was also able to reproduce this problem when the library is xproj-based. [Here is the link to the sample project which reproduces the bug](https://1drv.ms/u/s!AuaAKPMkiTEAtvIeZ_3nHyiA2dUsqA) " +9848 area-System.Net UdpClient: Cancellation support for Async methods "In the current UdpClient methods, the `SendAsync` and `ReceiveAsync` method have no support for cancellation. A method could be in an `await RecieveAsync()`, which effectively never returns in a ""clean"" way. Instead, you have to call `Dispose()`/`Close()` on the `UdpClient` instance and catch `ObjectDisposedException` and `NullReferenceException`'s coming from that await. There's a race condition here: https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/UDPClient.cs#L397 That that triggers the NRE -- the `FreeResources()` call could be called as part of a dispose while another thread hit's that `EndRecieve()` Rather than handling exceptions to end things, having a `CancellationToken` available in the async calls would enable a clean shutdown. " +9849 area-System.Net Make sure TcpClient properties do not throw when the underlying Socket is null Fixes #9762 +9852 area-System.Net Fixing CookieCollection interface methods The Core version of CookieCollection modified the visibility of some interface methods. This PR updates our Reference Assembly to mimic that. cc: @weshaggard @danmosemsft +9855 area-System.Security Support System.Security.Cryptography.Native OpenSSL 1.1 release OpenSSL 1.1 has a new model of opaque structures with more accessor functions. Anything previously obtained by an accessor function will likely be fine, but direct field accesses won't work. For example, UpRefEvpPkey will need to change to EVP_PKEY_up_ref, but needs to do the current behavior on 1.0.x builds. +9857 area-System.Net [TODO] Avoid boxing in IPv4AddressHelper.ParseCanonicalName cc: @stephentoub @davidsh +9859 area-System.Runtime CS0019: Comparing a Nullable enum type with null results in compiler error "The StackOverflow user ""Warren P."" posted this issue on StackOverflow, which sounds like a bug or oversight to me. You can find the original issue [here](http://stackoverflow.com/questions/38191166/c-sharp-optional-enum-type-property-setter-compiles-in-classic-net-but-not-in). Comparing an optional/Nullable Enum type property to null results in CS0019 compiler error. ```c# /// This uses the native .NET datatype, rather than the FHIR equivalent [NotMapped] [IgnoreDataMemberAttribute] public Hl7.Fhir.Model.RemittanceOutcome? Outcome { get { return OutcomeElement != null ? OutcomeElement.Value : null; } set { if(value == null) // CS00019 OutcomeElement = null; else OutcomeElement = new Code(value); OnPropertyChanged(""Outcome""); } } ``` The resulting compiler error: ``` CS0019 Operator '==' cannot be applied to operands of type 'RemittanceOutcome?' and '' ``` `if(value.HasValue)` works however. Seems like the == operator override is missing in .NET Core implementation of `Nullable`. Is th is by design or a bug/oversight? " +9860 area-System.Net Avoid repeated char[] allocations in CheckForColonInFirstPathSegment There's no reason to allocate a `char[]` every time the method is called and call `IndexOfAny`, when we can replace it with our own manual for-loop. cc @stephentoub @davidsh +9861 area-System.Net Remove unused static field from Uri The field says it's used by `DigestClient`, but there is no such class in corefx. cc @davidsh @stephentoub +9864 area-System.Net [TODO] Remove some boxing from IPv6AddressHelper.CreateCanonicalName Don't use `StringBuilder.AppendFormat` which converts the rest of the arguments to objects, instead call the `ToString` overload accepting a format/format provider ourselves and `Append` it to the builder. cc @stephentoub @davidsh +9865 area-Infrastructure [ARM/Linux] Workaround for running unit-test on Linux ARM32 In default, runtimes environments for CoreFX unit-test uses `*.ni.dll`s (mscorlib.ni.dll, System.Private.CoreLib.ni.dll) which extracted from NuGet packages. It's good for performance, but as of now, we don't have proper packages for Linux/ARM32. I want to work around this situation by using `*.dll`s instead of `*.ni.dll`s, with `--ignore-native-dlls` option, in spite of performance degradation in test. #9862 is patch for this. In addition, to improve the readability of test log, add `--sequential` option to run tests one by one. #9863 is patch for this. +9867 area-System.IO Compression.ZipFile Unicode tests failing on OSX in Helix Failing tests: ``` System.IO.Compression.Tests.ZipFileTest_ConvenienceMethods CreateFromDirectoryUnicodel ExtractToDirectoryTest_Unicode ExtractToDirectoryUnicode ``` Error: ``` Unhandled Exception of type System.NullReferenceException Message: System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.IO.Compression.Tests.ZipFileTestBase.ItemEqual(String[] actualList, List`1 expectedList, Boolean isFile) at System.IO.Compression.Tests.ZipFileTestBase.DirsEqual(String actual, String expected) at System.IO.Compression.Tests.ZipFileTest_ConvenienceMethods.ExtractToDirectoryTest_Unicode() ``` +9869 area-System.Net Use try/finally in DelegatingStream.Dispose cc @davidsh +9872 area-System.IO AccessControl related methods from IO ``` M:System.IO.Directory.SetAccessControl(System.String,System.Security.AccessControl.DirectorySecurity) M:System.IO.DirectoryInfo.Create(System.Security.AccessControl.DirectorySecurity) M:System.IO.DirectoryInfo.CreateSubdirectory(System.String,System.Security.AccessControl.DirectorySecurity) M:System.IO.DirectoryInfo.GetAccessControl M:System.IO.DirectoryInfo.GetAccessControl(System.Security.AccessControl.AccessControlSections) M:System.IO.DirectoryInfo.SetAccessControl(System.Security.AccessControl.DirectorySecurity) M:System.IO.Directory.CreateDirectory(System.String,System.Security.AccessControl.DirectorySecurity) M:System.IO.Directory.GetAccessControl(System.String) M:System.IO.Directory.GetAccessControl(System.String,System.Security.AccessControl.AccessControlSections) M:System.IO.FileStream.#ctor(System.IntPtr,System.IO.FileAccess) M:System.IO.FileStream.#ctor(System.IntPtr,System.IO.FileAccess,System.Boolean) M:System.IO.FileStream.#ctor(System.IntPtr,System.IO.FileAccess,System.Boolean,System.Int32) M:System.IO.FileStream.#ctor(System.IntPtr,System.IO.FileAccess,System.Boolean,System.Int32,System.Boolean) ``` from #9465 +9873 area-System.Xml [dev/xml] Fix XSL scripts compilation in XmlCompiledTransform If XSL contains scripts (C#, VB, JScript), the script is currently not being compiled from a dll correctly. Either need to bring back CodeDom or find a workaround. The tests related to this scenario should be re-enabled. (Look for ActiveIssue(9873)) This needs to be done as a part of dev/xml branch work +9875 area-Meta Consistency of partial class filenames There are multiple different axes along which we customize the implementation via partial classes. From https://github.com/dotnet/corefx/pull/9851/files/282ad11461c480a282a529c38d8fc353bc03663b#r69807075: 1. Classic win32 vs. UWP apps (vs. non-Windows OSes). The two Windows appmodels are very much like different OSes because of there are different APIs available and things have to be generally done differently in number of places. I believe that the most common pattern has been to use `.Win32.cs` vs. `.WinRT.cs` to provide different implementations. `System.IO.FileSystem` or `System.Console` are good examples. 2. JIT vs. full AOT. I do not actually see any good examples. `System.Linq.Expressions` or data contract serialization where this difference is most prelevant are configured via ifdefs, not via alternative file includes. 3. Different surface of System.Private.CoreLib between CoreCLR and CoreRT/.NET Native. The common pattern for this is `.CoreCLR.cs` vs. `.netcore50.cs` or `.netcore50aot.cs`. Hopefully, most of these will go away over time as we work on filling in the missing APIs and converging the implementations. +9876 area-System.Xml Re-enable tests with XSL resolving external URIs These tests are marked with ActiveIssue. This needs to be done as a part of dev/xml branch work +9877 area-System.Xml Re-enable and fix failing 60-70 Xsl checksum based tests These tests are marked with ActiveIssue This needs to be done as a part of dev/xml branch work +9878 area-System.Net Fix HttpWebResponse.ContentType when response has invalid headers The HttpWebResponse.ContentType property is supposed to return a string value with the response's `Content-Type` header value. Even if the response header is considered non-conformant with RFC7231, the value is returned as-is as received on the wire. In .NET Core, HttpWebRequest/HttpWebResponse is implemented as a wrapper around HttpClient. HttpClient has a strongly-typed model for headers. The current implementation of HttpWebResponse.ContentType was trying to use the strongly typed header from HttpClient. In cases where the header was malformed, it was returning empty string. This was a difference in behavior from .NET Framework. The fix is to use TryGetValues() to retrieve the raw response header value for the 'Content-Type' header. This will result in compatible behavior with .NET Framework. Fixes #9433. +9884 area-System.Net System.Net.Http does not behave as an OOB package when used with System.Net.Http.Formatting This issue has been created to separate it from the conversation in issue #9846. As explained there, when using `System.Net.Http v4.0.0.0` as distributed by the .NET Framework 4.6.1, everything works correctly. When updating the reference to the NuGet-distributed package for `System.Net.Http v4.1.0.0` (here: https://www.nuget.org/packages/System.Net.Http/) the code fails at runtime whith the below exception: ``` [VerificationException: Method System.Net.Http.CloneableExtensions.Clone: type argument 'System.Net.Http.Headers.MediaTypeHeaderValue' violates the constraint of type parameter 'T'.] System.Net.Http.Formatting.MediaTypeConstants.get_ApplicationJsonMediaType() +0 System.Net.Http.Formatting.JsonMediaTypeFormatter..ctor() +79 System.Net.Http.Formatting.MediaTypeFormatterCollection.CreateDefaultFormatters() +49 System.Web.Http.HttpConfiguration..ctor(HttpRouteCollection routes) ... ``` When reverting to the out-of-the box v.4.0.0.0 version it works as expected without problems. Therefore, version 4.1.0.0 is not an OOB package as it breaks the functionality of other packages that relate to this one. +9889 area-System.Runtime Complete Environment.GetFolderPath on Unix #9826 added back the full surface area of Environment. However, GetFolderPath on Unix doesn't support the vast majority of the SpecialFolder values. We should look at fleshing this out. +9890 area-System.IO Environment.GetFolderPath on Windows can't use SHGetFolderPath #9826 added back the full surface area of Environment. However, GetFolderPath on Windows in the desktop framework uses SHGetFolderPath to implement this method, but that Win32 function isn't available: https://github.com/dotnet/buildtools/blob/master/src/Microsoft.DotNet.CodeAnalysis/PackageFiles/PinvokeAnalyzer_OneCoreApis.txt As a result, the method is mostly unusable. +9892 area-Meta Running tests for a single project on Linux I am trying to run tests for a single project on Ubuntu 16.04. I figured out that the command I need to run (assuming corefx is in `~/corefx`) is: `~/corefx/Tools/dotnetcli/dotnet ~/corefx/Tools/MSBuild.exe /t:BuildAndTest /p:TestNugetRuntimeId=ubuntu.16.04-x64 /p:OSGroup=Linux /p:TargetOS=Linux` As far as I can tell, this is not documented anywhere and I think it should be, probably in [unix-instructions.md](https://github.com/dotnet/corefx/blob/master/Documentation/building/unix-instructions.md). Also, I think it's confusing that [the default for `TestNugetRuntimeId` is `win7-x64`](https://github.com/dotnet/buildtools/blob/acf2600/src/Microsoft.DotNet.Build.Tasks/PackageFiles/publishtest.targets#L18), even on Linux. Should it be changed to detect the OS? The same applies to `OSGroup` and `TargetOS`. +9893 area-System.Net SSLStream does not clear InternalBuffer after read SSLStream is vulnerable to memory dump attacks. When working with sensitive data, a programmer has no way to clear the internal buffer of SslStreamInternal after data has been read. And as long as a new packet does not arrive the data will be there indefinitely. SslStream should provide a mechanism to clear the internal buffer or SslStreamInternal should clear InternalBuffer either during every call to DecrementInternalBufferCount or after data is BlockCopy-ed from InternalBuffer to buffer in ProcessRead. +9894 area-System.Xml [dev/xml] Intermittent failures in random System.Xml.XmlDocument tests related to attributes Some threading issue in XmlDoc tests. I'm leaving them not marked as Active issue so it's easier to track it down by finding some common traits. (+ not really sure which ones to disable) Not sure if this is test or product issue. This might be already fixed - need to be re-verified after merging corefx changes to System.Xml. Failures catched so far: ``` Discovering: System.Xml.XmlDocument.Tests System.Xml.XPath.Tests -> E:\src\oss\xml\bin\AnyOS.AnyCPU.Debug\System.Xml.XPath.Tests\System.Xml.XPath.Tests.dll Using E:\src\oss\xml\packages/ as folder for resolving package dependencies. Executing in E:\src\oss\xml\bin\tests\AnyOS.AnyCPU.Debug\System.Xml.XPath.Tests\netcoreapp1.0\ Hard linking dependent files... Discovered: System.Xml.XmlDocument.Tests Starting: System.Xml.XmlDocument.Tests System.Xml.Tests.CopyToTests.CopyToCopiesClonedAttributesAtSpecifiedLocation [FAIL] System.Xml.XmlException : The 'r' character, hexadecimal value 0x72, cannot be included in a name. Stack Trace: E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlDocument.cs(135,0): at System.Xml.XmlDocument.CheckName(String name) E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlElement.cs(28,0): at System.Xml.XmlElement..ctor(XmlName name, Boolean empty, XmlDocument doc) E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlDocument.cs(1014,0): at System.Xml.XmlDocument.CreateElement(String prefix, String localName, String namespaceURI) E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlDocument.cs(599,0): at System.Xml.XmlDocument.CreateElement(String name) E:\src\oss\xml\src\System.Xml\tests\XmlDocument\XmlAttributeCollectionTests\CopyToTests.cs(14,0): at System.Xml.Tests.CopyToTests.CreateDocumentWithElement() E:\src\oss\xml\src\System.Xml\tests\XmlDocument\XmlAttributeCollectionTests\CopyToTests.cs(44,0): at System.Xml.Tests.CopyToTests.CopyToCopiesClonedAttributesAtSpecifiedLocation() Finished: System.Xml.XmlDocument.Tests (this might be related to Globalization tests too so leaving these here) Discovering: System.Globalization.Extensions.Tests Discovered: System.Globalization.Extensions.Tests Discovered: System.Xml.XmlDocument.Tests Starting: System.Globalization.Extensions.Tests Starting: System.Xml.XmlDocument.Tests System.Xml.Tests.LocalNameTests.ElementWithPrefix [FAIL] System.Xml.XmlException : The 'e' character, hexadecimal value 0x65, cannot be included in a name. Stack Trace: E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlDocument.cs(135,0): at System.Xml.XmlDocument.CheckName(String name) E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlElement.cs(28,0): at System.Xml.XmlElement..ctor(XmlName name, Boolean empty, XmlDocument doc) E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlDocument.cs(1014,0): at System.Xml.XmlDocument.CreateElement(String prefix, String localName, String namespaceURI) E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlDocument.cs(599,0): at System.Xml.XmlDocument.CreateElement(String name) E:\src\oss\xml\src\System.Xml\tests\XmlDocument\XmlNodeTests\LocalNameTests.cs(30,0): at System.Xml.Tests.LocalNameTests.ElementWithPrefix() System.Xml.Tests.CreateAttributeTests.CreateBasicAttributeTest [FAIL] System.Xml.XmlException : The 'a' character, hexadecimal value 0x61, cannot be included in a name. Stack Trace: E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlDocument.cs(135,0): at System.Xml.XmlDocument.CheckName(String name) E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlAttribute.cs(27,0): at System.Xml.XmlAttribute..ctor(XmlName name, XmlDocument doc) E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlDocument.cs(1004,0): at System.Xml.XmlDocument.CreateAttribute(String prefix, String localName, String namespaceURI) E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlDocument.cs(553,0): at System.Xml.XmlDocument.CreateAttribute(String name) E:\src\oss\xml\src\System.Xml\tests\XmlDocument\XmlDocumentTests\CreateAttributeTests.cs(15,0): at System.Xml.Tests.CreateAttributeTests.CreateBasicAttributeTest() System.Xml.Tests.AppendTests.AppendRemovesExistingAttribute [FAIL] System.Xml.XmlException : The 'r' character, hexadecimal value 0x72, cannot be included in a name. Stack Trace: E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlDocument.cs(135,0): at System.Xml.XmlDocument.CheckName(String name) E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlElement.cs(21,0): at System.Xml.XmlElement..ctor(XmlName name, Boolean empty, XmlDocument doc) E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlDocument.cs(1014,0): at System.Xml.XmlDocument.CreateElement(String prefix, String localName, String namespaceURI) E:\src\oss\xml\src\System.Xml\src\System\Xml\Dom\XmlDocument.cs(595,0): at System.Xml.XmlDocument.CreateElement(String name) E:\src\oss\xml\src\System.Xml\tests\XmlDocument\XmlAttributeCollectionTests\AppendTests.cs(14,0): at System.Xml.Tests.AppendTests.CreateDocumentWithElement() E:\src\oss\xml\src\System.Xml\tests\XmlDocument\XmlAttributeCollectionTests\AppendTests.cs(48,0): at System.Xml.Tests.AppendTests.AppendRemovesExistingAttribute() Finished: System.Xml.XmlDocument.Tests ``` +9895 area-System.Net Make sure TcpClient.ExclusiveAddressUse throws on Unix This is related to the failure that happened in #9849. cc: @stephentoub @ericeil +9905 area-System.Net Do a Debug.Assert in HttpContent.TryGetBuffer if we can't get it This will cause debug builds that start going down this path to fail, so we're notified if we start copying the data. cc @davidsh @stephentoub @CIPop +9911 area-System.Xml [dev/xml] Fix packaging for System.Xml and System.Xml.Linq +9913 area-System.Xml Fix or remove all BINCOMPAT TODO in System.Private.Xml +9915 area-System.Xml [dev/xml] Check if System.Text.StringBuilder should be used instead of System.Xml.BufferBuilder +9917 area-Infrastructure Enable CoreFX test runs on OneCoreUAP images for x86 and x64 CC @weshaggard @joshfree +9920 area-System.Text Expose XmlTextReaderImpl.DetectEncoding as more general API (also for text files) Seems pretty useful. cc: @tarekgh +9924 area-System.IO ZipArchive: Throw specific error messages for unsupported data ZipArchive decompression should throw a better error message when an entry is compressed using an unsupported method. Right now it says `The archive entry was compressed using an unsupported compression method.` It should say something like `The archive entry was compressed using [type] and is not supported` +9925 area-System.IO Compression: Add support for Deflate64 We allow decompression of Zip64 zips but not if they contain entries compressed with Deflate64. This is somewhat problematic, as zips created by the Windows explorer utility that are >2gb are compressed using Deflate64. ZLib doesn't support deflate64, so it would need to be our own implementation. +9928 area-Infrastructure build.sh fails on Arch Linux because Blob missing "init-tools.log: ``` Running: /home/paul/code/paulcbetts/corefx/init-tools.sh Installing 'https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/1.0.0-preview2-002733/dotnet-dev-arch.-x64.1.0.0-preview2-002733.tar.gz' to '/home/paul/code/paulcbetts/corefx/Tools/dotnetcli/dotnet.tar' Running: /home/paul/code/paulcbetts/corefx/Tools/dotnetcli/dotnet restore ""/home/paul/code/paulcbetts/corefx/Tools/1.0.25-prerelease-00517-05/project.json"" --packages /home/paul/code/paulcbetts/corefx/packages --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json Running: /home/paul/code/paulcbetts/corefx/packages/Microsoft.DotNet.BuildTools/1.0.25-prerelease-00517-05/lib/init-tools.sh /home/paul/code/paulcbetts/corefx /home/paul/code/paulcbetts/corefx/Tools/dotnetcli/dotnet /home/paul/code/paulcbetts/corefx/Tools ``` ``` paul@io:~/code/paulcbetts/corefx/Tools/dotnetcli% cat dotnet.tar BlobNotFoundThe specified blob does not exist. RequestId:ccf4fbc2-0001-0128-1f9c-d9576f000000 Time:2016-07-09T04:47:08.2585465Z ``` " +9932 area-System.IO Inconsistent default access mode for Package.Open(Stream) between .Net Core and .Net Framework The default access mode for `Package.Open(Stream)` is `ReadWrite` on .Net Core, while it's `Read` on .Net Framework. This means that a program that runs on one can fail on the other, in both directions. In my case, I have code like: ``` c# Package.Open(File.OpenRead(path)); ``` [This code](https://gist.github.com/svick/0dfbcef372c72127df791de8f4d1b471) runs successfully with `dotnet run -f net46`, but throws with `dotnet run -f netcoreap1.0`: ``` Unhandled Exception: System.ArgumentException: Update mode requires a stream with read, write, and seek capabilities. at System.IO.Compression.ZipArchive.Init(Stream stream, ZipArchiveMode mode, Boolean leaveOpen) at System.IO.Compression.ZipArchive..ctor(Stream stream, ZipArchiveMode mode, Boolean leaveOpen, Encoding entryNameEncoding) at System.IO.Packaging.ZipPackage..ctor(Stream s, FileMode packageFileMode, FileAccess packageFileAccess) at System.IO.Packaging.Package.Open(Stream stream, FileMode packageMode, FileAccess packageAccess) at System.IO.Packaging.Package.Open(Stream stream) at ConsoleApplication.Program.Main(String[] args) ``` The cause seems to be that on .Net Framework [`Package.Open(Stream)` calls `Open(stream, _defaultStreamMode, _defaultStreamAccess)`](http://referencesource.microsoft.com/#WindowsBase/Base/System/IO/Packaging/Package.cs,226), where `_defaultStreamAccess` is `FileAccess.Read`, while on .Net Core, [`Package.Open(Stream)` calls `Open(stream, s_defaultStreamMode)`](https://github.com/dotnet/corefx/blob/83432af/src/System.IO.Packaging/src/System/IO/Packaging/Package.cs#L149), which in turn calls `Open(stream, packageMode, s_defaultFileAccess)`, where `s_defaultFileAccess` is `FileAccess.ReadWrite`. I'm not sure how could this be fixed without breaking compatibility on .Net Core or .Net Framework. +9933 area-Meta All Linux ARM Emulator Cross Build legs in PRs are failing @Priya91 +9938 area-Serialization Change System.Json version number to match Mono? From @ericstj here: https://github.com/dotnet/corefx/pull/9897/files/391dae1d0f3789e0c11190f357e02fbcc03570db#r70150707 > I think this version needs to match the version xamarin has inbox (2.0.5.0). We should test that. +9946 area-System.ComponentModel Investigate return of System.ComponentModel.Composition.* Core has System.Composition.dll Core does not have S.ComponentModel.Composition and System.ComponentModel.Composition.DataAnnotations. These are in Xamarin for Android (unlike System.ComponentModel.Composition.Registration) These two need to get into Core. They are reflection heavy so that work has to happen first. I see a bit of ref.emit also, which hopefully isn't essential. +9949 area-Meta UWP-EF-SQlite (Not compatible with Prism Framework) "For some strange reason on a Blank App(UWP) with suggested (temporary)fixes solved the issues in 5.2. with SQLite on closely following the docs. However the fixes break the xaml designer when the Prism framework i.e. prism 6.1.0, unity 4.0.1 and on VS update 3 is applied. ""GridView, Stackpanel ... Etc cannot be children of the Grid"" is the error message. It's not just the grid but most layout controls seems to broken. And this might not be just prism but it seems also on Template 10 according to this..https://github.com/Windows-XAML/Template10/issues/1109 " +9952 area-Infrastructure 450+ warnings on a build! "They're all currently of the form: ``` C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. ``` or: ``` D:\j\workspace\windows_nt_debug88592b53\Tools\packageresolve.targets(74,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. ``` but it makes it really hard to spot important warnings. Replaces https://github.com/dotnet/corefx/issues/9464 cc: @weshaggard, @ericstj, @joperezr, @karajas " +9956 area-System.Net Improve behavior of TcpClient Dispose concurrent with ConnectAsync TcpClient.Dispose is not meant to be used concurrently with other operations on the instance, but some code does do so as a way to provide a cancellation mechanism. There are two easily hit issues with this: 1. On Unix, the ConnectAsync operation doesn't publish the actual Socket on which a connection was made until after the connection is established, as it needs to use temporary sockets to try each potential target address, and publishing it before connecting could end up publishing a Socket that won't end up being the actual one used. As such, if a Dispose occurs during the ConnectAsync operation, it won't end up disposing the socket being used to make the connection, such that the connection won't be canceled. 2. On all platforms, Dispose nulls out the client socket field. When the connection then subsequently completes, it hits a NullReferenceException while trying to dereference that field. This commit addresses both issues: a. When the client is disposed, on Unix we cancel a CancellationTokenSource, and each Socket we create is registered with that source to dispose the socket. That way, we dispose of each socket even if it hasn't been published onto the instance yet. b. We grab the Socket from the field and check for null prior to dereferencing it. cc: @cipop, @ericeil, @davidsh Fixes #9423 +9958 area-Infrastructure Support to run selected tests in run-test.sh Add --test-dir option to run selected tests only. To run given tests only, add '--test-dir' option to run-test.sh. The existing '--restrict-proj' option compares all test list to jugde if it runs or not. And it runs only matched tests with regex. If there is no matched rule among tests, this option will be useful. I will post PR soon. +9966 area-System.Security TripleDES is not allowing 16 byte keys "This works on full framework, but not core. This is a simple alteration of the dotnet new to isolate the problem (only other change is to add net452 to project.json). ``` csharp using System; using System.Security.Cryptography; using System.Text; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { var d = TripleDES.Create(); d.Key = ASCIIEncoding.ASCII.GetBytes(""1234567890123456""); Console.WriteLine(""Hello World!""); } } } ``` Running the above under net452 works fine, but under netcoreapp10 results in: ``` Unhandled Exception: System.Security.Cryptography.CryptographicException: Specified key is not a valid size for this alg orithm. at System.Security.Cryptography.SymmetricAlgorithm.set_Key(Byte[] value) at System.Security.Cryptography.TripleDES.set_Key(Byte[] value) at ConsoleApplication.Program.Main(String[] args) ``` " +9973 area-Infrastructure Build on specific Platform restores current Platform's binaries e.g. ``` PS D:\git\corefx\src\System.IO.Compression\tests [master]> msbuild /t:rebuildandtest /P:Platform=arm PS D:\git\corefx\src\System.IO.Compression\tests [master]> cd D:\git\corefx\bin/tests/Windows_NT.arm.Debug/System.IO.Compression.Tests/netcoreapp1.0/ PS D:\git\corefx\bin\tests\Windows_NT.arm.Debug\System.IO.Compression.Tests\netcoreapp1.0 [master]> dumpbin .\clrcompression.dll /headers Dump of file .\clrcompression.dll PE signature found File Type: DLL FILE HEADER VALUES 8664 machine (x64) ``` +9975 area-Infrastructure Windows Nano runs are not working on Jenkins Recently (after Jul 7 buildtools update) on build.cmd /p:OSGroup=Windows_NT is dropping assemblies that build for AnyOS to both tests/AnyOS.AnyCPU.Configuration/lib/netcoreapp1.0 and tests/Windows_NT.AnyCPU.Configuration/lib/netcoreapp1.0. These libs mostly have the builds file authored for AnyOS on netcoreapp1.0 and Windows_NT for net46 and netcore50, for ex, [System.AppContext.Tests.builds](https://github.com/dotnet/corefx/blob/master/src/System.AppContext/tests/System.AppContext.Tests.builds). This change is causing Windows Nano builds to fail, as there is no RunTests.cmd generated for the net46 and netcore50 sku in tests\Windows_NT.AnyCPU.Configuration\lib\netcoreapp1.0. The test TFM folder name is also wrong (netcoreapp1.0) for the net46 and netcore50 sku. cc @karajas +9979 area-System.Reflection Seg fault on CentOS in System.Reflection.Metadata.Tests "``` /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release_prtest/bin/tests/AnyOS.AnyCPU.Release/System.Reflection.Metadata.Tests/netcoreapp1.0/RunTests.sh: line 297: 27365 Segmentation fault (core dumped) ./corerun xunit.console.netcore.exe System.Reflection.Metadata.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests 13:51:22 Finished running tests. End time=20:51:36. Return value was 139 13:51:22 GDB was not found. Unable to print core file. 13:51:23 /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release_prtest/Tools/tests.targets(253,5): warning MSB3073: The command ""/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release_prtest/bin/tests/AnyOS.AnyCPU.Release/System.Reflection.Metadata.Tests/netcoreapp1.0/RunTests.sh /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release_prtest/packages/"" exited with code 139. [/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release_prtest/src/System.Reflection.Metadata/tests/System.Reflection.Metadata.Tests.csproj] 13:51:23 /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release_prtest/Tools/tests.targets(262,5): error : One or more tests failed while running tests from 'System.Reflection.Metadata.Tests' please check log for details! [/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release_prtest/src/System.Reflection.Metadata/tests/System.Reflection.Metadata.Tests.csproj] ``` Log here: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_release_prtest/822/consoleFull#-17798639014b7730ef-150b-4be7-a00f-82ba6c50792b " +9981 area-System.Security Add Crypto provider wrappers Breakout of some Crypto types that are in Xamarin but not in Core. These are public types which suggest an implementation, but they should now defer to the standard impl. Similarly-prefixed things can/should be done as a single work item. (e.g. Aes\* is one small task). Ideally everything is [EditorBrowsable(Never)] ``` Type or Member Notes T:System.Security.Cryptography.AesManaged Cover over the instance returned by Aes.Create() T:System.Security.Cryptography.AesCryptoServiceProvider Cover over the instance returned by Aes.Create() T:System.Security.Cryptography.MD5CryptoServiceProvider Cover over the instance returned by MD5.Create() T:System.Security.Cryptography.RNGCryptoServiceProvider Cover over the instance returned by RandomNumberGenerator.Create() T:System.Security.Cryptography.SHA1CryptoServiceProvider Cover over the instance returned by SHA1.Create() T:System.Security.Cryptography.SHA1Managed Cover over the instance returned by SHA1.Create() T:System.Security.Cryptography.SHA256Managed Cover over the instance returned by SHA256.Create() T:System.Security.Cryptography.SHA384Managed Cover over the instance returned by SHA384.Create() T:System.Security.Cryptography.SHA512Managed Cover over the instance returned by SHA512.Create() T:System.Security.Cryptography.TripleDESCryptoServiceProvider Cover over the instance returned by TripleDES.Create() ``` +9982 area-System.Security Port System.Security.Cryptography.DSA ``` T:System.Security.Cryptography.DSA ``` Contract is System.Security.Cryptography.Algorithms. Windows: Port DSACng. Unix: All new code. Tests: Some tests exist in RedZone Desktop suite, needs a whole lot of tests. +9983 area-System.Security Port System.Security.Cryptography.HashAlgorithm ``` T:System.Security.Cryptography.HashAlgorithm (ICryptoTransform / incremental hashing) F:System.Security.Cryptography.HashAlgorithm.HashValue F:System.Security.Cryptography.HashAlgorithm.State ``` The incremental hashing methods and ComputeHash together can produce unexpected data and break the incremental hash state machine. In .NET Core 1.0 the incremental part was moved to a new type and the ICryptoTransform declaration was removed. Presumably requires bug-for-bug compat with Framework, and lots of bug-verifying tests. The other two are required for incremental hash mainly. Or derived types as a secondary thing. +9984 area-System.Security Port System.Security.Cryptography.RijndaelManaged, limited to AES This type is getting significant use. `T:System.Security.Cryptography.RijndaelManaged` We should bring it back as functional, but to make it just wrap Aes.Create(), and fail for any Rijndael settings which are not AES settings (since it looks like our Rijndael implementation restricted it to 128/192/256-bit keys already that really just means use a fixed block size). And make it be [EditorBrowsable(Never)] so IntelliSense never suggests it to someone (and we’ll hide it in a different contract/implementation assembly so it only gets picked up by the mscorlib forwarder anyways). Existing code may be copying extraordinarily stale samples which are merely recommending Rijndael-as-AES over DES/3DES. But, since no one used the Rijndael type directly, and it defines no new members, the compat shim RijndaelManaged should directly extend SymmetricAlgorithm. So pretty much every member just defers to the Aes.Create() object, with the possible exception of BlockSize: ``` public int BlockSize { get { return _aes.BlockSize; } set { // Values which were legal in .NET Framework RijndaelManaged but not .NET Core’s shim type if (value == 192 || value == 256) throw new PlatformNotSupportedException(some resource string saying raw Rijndael is not supported); // Any other invalid block size will get the normal “invalid block size” exception. _aes.BlockSize = value; } } ``` (Or, don’t special case it, and let it just throw the invalid block size exception; but that might be bad form) +9985 area-System.Net WebSocket.CloseAsync can throw when WebSocket.CloseOutputAsync has been previously called on Unix If a client calls WebSocket.CloseOutputAsync on an open WebSocket, a Close frame is sent and the WebSocket transitions into the CloseSent state. If it's then desired to wait until the response Close frame is received, for example to check the response status code that the server sends, a call to WebSocket.CloseAsync can then be made. This is necessary as otherwise the alternative is to poll the WebSocket status property until the state changes. This is also codified as CloseAsync is valid to call when the state is CloseSent. If the Close frame sent by the server is received and processed before the state check in WebSocket.CloseAsync is executed, the state will be Closed and CloseAsync will throw (only allowed states when calling CloseAsync are Open, CloseSent and CloseReceived). This is blocking WCF enabling the WebSockets transport for Unix platforms. +9986 area-System.Security Port missing X509Certificate members In System.Security.Cryptography.X509Certificates.X509Certificate -- Easy impl, just needs a couple tests (real cert, and new X509Certificate2() -- default ctor). ``` X509Certificate.GetCertHashString X509Certificate.GetEffectiveDateString X509Certificate.GetExpirationDateString X509Certificate.GetIssuerName X509Certificate.GetName X509Certificate.GetPublicKeyString X509Certificate.GetRawCertData X509Certificate.GetRawCertDataString X509Certificate.GetSerialNumberString ``` Should probably defer to the new PAL ctor instead of copying the Handle ctor. ``` X509Certificate.#ctor(System.Security.Cryptography.X509Certificates.X509Certificate) X509Certificate2.#ctor(System.Security.Cryptography.X509Certificates.X509Certificate) ``` Needed by SignedCms; can be deferred until that is ready. ``` T:System.Security.Cryptography.X509Certificates.X509IncludeOption ``` +9988 area-System.Xml Re-enable and fix Xsl tests loading xsl from dll Re-write these tests so that they don't load xsl from the dll These tests are marked with ActiveIssue This needs to be done as a part of dev/xml branch work +9989 area-System.Collections Lots of code duplication/type unsafety/messiness in System.Collections tests At the moment there appears to be a lot of messiness in the `System.Collections.*` tests. For example the tests [for each collection type](https://github.com/dotnet/corefx/blob/master/src/System.Collections/tests/Generic/HashSet/HashSet.Generic.cs) contains code related to generating the seed/explicitly saying what kinds of type parameters to test. This makes it very hard to add tests for new kinds of types. There is also a lot of `protected abstract` / `override` which makes the code hard to read without jumping back and forth between files, and things like [this](https://github.com/dotnet/corefx/blob/master/src/Common/tests/System/Collections/IGenericSharedAPI.Tests.cs#L50-L55) are not typesafe and reduce readability, since the collection is passed as an argument to the method instead of the method being called on it (e.g. `Count(collection)` vs `collection.Count()`). I'm going to attempt to clean a lot of this code up, as part of #9379 and #9947. +9990 area-System.Security Port System.Security.Cryptography.*Formatters ``` Type or Member Estimate Contract Notes T:System.Security.Cryptography.AsymmetricKeyExchangeDeformatter XS System.Security.Cryptography.Primitives Essentially an interface, no tests. T:System.Security.Cryptography.AsymmetricKeyExchangeFormatter XS System.Security.Cryptography.Primitives Essentially an interface, no tests. (CreateKeyExchange(byte[], Type) could be omitted, or made virtual to ignore the 2nd argument, or leave as-is) T:System.Security.Cryptography.RSAOAEPKeyExchangeFormatter S- System.Security.Cryptography.Algorithms Omit the Rng member. It is never used externally or internally. Should just call new Encrypt(byte[], RSAEncryptionPadding) method, no fallback to Encrypt(byte[]) T:System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter S- System.Security.Cryptography.Algorithms Should just call new Decrypt(byte[], RSAEncryptionPadding) method. No fallback to Decrypt(byte[]) T:System.Security.Cryptography.RSAPKCS1KeyExchangeDeformatter S- System.Security.Cryptography.Algorithms Omit the RNG member. It is never used externally or internally. Should just call new Decrypt(byte[], RSAEncryptionPadding) method. No fallback to Decrypt(byte[]) T:System.Security.Cryptography.RSAPKCS1KeyExchangeFormatter S- System.Security.Cryptography.Algorithms Omit the Rng member. It is never used externally and should not have been internally. Should just call new Encrypt(byte[], RSAEncryptionPadding) method, no fallback to Encrypt(byte[]) T:System.Security.Cryptography.AsymmetricSignatureDeformatter XS System.Security.Cryptography.Primitives Essentially an interface, no tests. (VerifySignature(HashAlgorithm) should be omitted) T:System.Security.Cryptography.AsymmetricSignatureFormatter XS System.Security.Cryptography.Primitives Essentially an interface, no tests. (CreateSignature(HashAlgorithm) should be omitted) T:System.Security.Cryptography.DSASignatureDeformatter S- System.Security.Cryptography.Algorithms Blocked behind DSA. Technically should be updated to allow newer hash algorithms (FIPS-186-3). T:System.Security.Cryptography.DSASignatureFormatter S- System.Security.Cryptography.Algorithms Blocked behind DSA. Technically should be updated to allow newer hash algorithms (FIPS-186-3). T:System.Security.Cryptography.RSAPKCS1SignatureDeformatter S- System.Security.Cryptography.Algorithms Just use the new VerifyHash(byte[], byte[], HashAlgorithmName, RSASignaturePadding) method, no other paths. T:System.Security.Cryptography.RSAPKCS1SignatureFormatter S- System.Security.Cryptography.Algorithms Just use the new SignHash(byte[], byte[], HashAlgorithmName, RSASignaturePadding) method, no other paths. ``` +9991 area-System.Security Port KeyedHashAlgorithm.KeyValue `F:System.Security.Cryptography.KeyedHashAlgorithm.KeyValue` Change an auto-prop to have a protected backing field. XS +9992 area-System.Security Port System.Security.Cryptography.xxTransform ``` T:System.Security.Cryptography.ToBase64Transform T:System.Security.Cryptography.FromBase64Transform ``` Need tests: the latter needs lots of whitespace tests. +9996 area-System.Net WindowsIdentity impersonation does not achieve delegation Setup: Client: IE or Chrome Server: Asp.Net Core 1.0 via IIS or WebListener, with Windows Auth enabled. Scenario: A client logs into a web app using windows credentials. The web app in turn impersonates that user to make outgoing HttpClient requests also using windows credentials. Expected: The outgoing HttpClient request should made using the impersonated user's credentials. Actual: The outgoing HttpClient request is made using the web apps default credentials. The scenario works fine when running Asp.Net Core 1.0 on .NET 4.6, it only fails on .NET Core. In both the IIS and WebListener scenarios the WindowsIdentity is constructed from an existing handle from a native API: https://github.com/aspnet/IISIntegration/blob/ed85f504d8da633202b3fec5fdf11e8d6153d447/src/Microsoft.AspNetCore.Server.IISIntegration/IISMiddleware.cs#L112. Since this works with .NET 4.6 apps we assume the original handle is valid and something is wrong inside WindowsIdentity or HttpClient. HttpClient does work with impersonated WindowsIdentities created locally (http://stackoverflow.com/questions/7710538/impersonate-with-username-and-password). Only the delegation scenario appears to be broken. @brentschmaltz @CIPop Ping me directly for repro code, there are a lot of different parts. +9997 area-System.Xml [dev/xml] Re-enable test when System.Globalization.SortKey is back XmlStringSortKey class is missing from XmlSortKey right now. Bring this back if System.Globalization.SortKey is available. The test (marked with ActiveIssue) should be re-enabled as well. This needs to be done as part of dev/xml branch work. +10000 area-System.Runtime Port S.Timers.* ``` T:System.Timers.Timer P:System.Timers.ElapsedEventArgs.SignalTime M:System.Timers.ElapsedEventArgs.get_SignalTime T:System.Timers.ElapsedEventHandler M:System.Timers.ElapsedEventHandler.#ctor(System.Object,System.IntPtr) M:System.Timers.ElapsedEventHandler.BeginInvoke(System.Object,System.Timers.ElapsedEventArgs,System.AsyncCallback,System.Object) M:System.Timers.ElapsedEventHandler.EndInvoke(System.IAsyncResult) M:System.Timers.ElapsedEventHandler.Invoke(System.Object,System.Timers.ElapsedEventArgs) M:System.Timers.Timer.#ctor M:System.Timers.Timer.#ctor(System.Double) P:System.Timers.Timer.AutoReset M:System.Timers.Timer.get_AutoReset M:System.Timers.Timer.set_AutoReset(System.Boolean) P:System.Timers.Timer.Enabled M:System.Timers.Timer.get_Enabled M:System.Timers.Timer.set_Enabled(System.Boolean) P:System.Timers.Timer.Interval M:System.Timers.Timer.get_Interval M:System.Timers.Timer.set_Interval(System.Double) P:System.Timers.Timer.Site M:System.Timers.Timer.get_Site M:System.Timers.Timer.set_Site(System.ComponentModel.ISite) P:System.Timers.Timer.SynchronizingObject M:System.Timers.Timer.get_SynchronizingObject M:System.Timers.Timer.set_SynchronizingObject(System.ComponentModel.ISynchronizeInvoke) M:System.Timers.Timer.BeginInit M:System.Timers.Timer.Close M:System.Timers.Timer.Dispose(System.Boolean) M:System.Timers.Timer.EndInit M:System.Timers.Timer.Start M:System.Timers.Timer.Stop E:System.Timers.Timer.Elapsed M:System.Timers.Timer.add_Elapsed(System.Timers.ElapsedEventHandler) M:System.Timers.Timer.remove_Elapsed(System.Timers.ElapsedEventHandler) M:System.Timers.TimersDescriptionAttribute.#ctor(System.String) P:System.Timers.TimersDescriptionAttribute.Description M:System.Timers.TimersDescriptionAttribute.get_Description T:System.Timers.ElapsedEventArgs T:System.Timers.TimersDescriptionAttribute ``` +10002 area-System.IO System.IO.IsolatedStorage can be referenced by netstandard1.4, but has no associated impl The [reference assembly](https://github.com/dotnet/corefx/blob/afa634708deb4b921dd1e0e6dc5f26ddd0e143b2/src/System.IO.IsolatedStorage/ref/project.json) for System.IO.IsolatedStorage targets netstandard1.4, but the [implementation](https://github.com/dotnet/corefx/blob/afa634708deb4b921dd1e0e6dc5f26ddd0e143b2/src/System.IO.IsolatedStorage/src/project.json) only targets netcore50. Therefore, you can build an app targeting netcoreapp1.0 (+ imports dnxcore50) that'll throw a FileNotFoundException since it can't load System.IO.IsolatedStorage. There is discussion to implement IsolatedStorage in other platforms in #9842, but until that's done, you shouldn't be able to reference IsolatedStorage from platforms where it isn't implemented. +10010 area-System.Net AcceptAsync(SocketAsyncEventArgs e) return true and never call the method of SocketAsyncEventArgs.Completed Im currently developing an window app. I would like to use AcceptAsync method. At the moment there appears to be a lot of messiness in the System.Net.Sockets . AcceptAsync(SocketAsyncEventArgs e) always return true and the method of Accept_Completed never be called.If there any come up with this problem and got the solution to it? `private void ProcessAccept(SocketAsyncEventArgs e)` `{` ``` e.Completed +=new EventHandler(Accept_Completed); e.AcceptSocket = null; //acceptEvtArgs.AcceptSocket = null; bool waitFlag = listeningSocket.AcceptAsync(e); if (!waitFlag) { // operation completed synchronously Accept_Completed(null, e); } ``` `}` +10011 area-System.Xml [dev/xml] Add System.Xml.XmlSerializer APIs to System.Xml +10012 area-System.Runtime How to hook into AppDomain.ProcessExit ? In regular .NETFramework console apps, I can hook into `AppDomain.CurrentDomain.ProcessExit` event to be notified when the console app terminates. This doesn't seem to be present in .NETCore. How else can my library get notified when the calling .NETCore console app terminates? +10013 area-System.Runtime Add methods to convert between hexadecimal strings and bytes "It is quite common to need to convert bytes to hex strings and back. The .NET Framework does not have an API to do that. Look at what lengths people have gone to to solve this problem for them: [How do you convert Byte Array to Hexadecimal String, and vice versa?](http://stackoverflow.com/questions/311165/how-do-you-convert-byte-array-to-hexadecimal-string-and-vice-versa) Many of those solutions are somehow bad (e.g. slow or broken or not validating). `BitConverter.ToString(byte[])` generates strings of a practically useless format: `BitConverter.ToString(new byte[] { 0x00, 0x01, 0xAA, 0xFF })` => `00-01-AA-FF`. I don't understand how this decision was made. This seems to be a special solution for some specific purpose (debug output?). Using this API requires `Replace(str, ""-"", """")` which is ugly and slow. Also, this API is not discoverable because it does not have ""hex"" in it's name. I propose adding an API that does the following: - Supports char[] and string - Supports specifying the output buffer to support zero-allocation scenarios - Supports upper- and lowercase - Fast (probably, this means working in-place using unsafe code) - Validates input - _No_ support for any kind of hex prefix (such as ""0x""), whitespace or digit separator (such as ""-"" or ""\n""). This is out of scope. The use case for char[] in- and outputs is low-allocation scenarios. The API could look like this: ```c# static class HexConvert { byte[] ToBytes(string input, int start, int count, HexFormat hexFormat); void ToBytes(string input, int start, int count, ArraySegment outputBuffer, HexFormat hexFormat); //Repeat the same for ArraySegment as input string ToString(ArraySegment bytes); char[] ToChars(ArraySegment bytes); void ToChars(ArraySegment bytes, ArraySegment outputBuffer); //Plus obvious convenience overloads int HexDigitToInteger(char val); //0-9A-F => 0-15. char IntegerToHexDigit(int value, HexFormat hexFormat); //0-15 => 0-9A-F } [Flags] enum HexFormat { UseDefaults = 0, Lowercase = 1 } //extensible ``` A possible extension would be to support `Stream` and `IEnumerable` as sources and destinations. I would consider this out of scope. I feel that converting hexadecimal strings is an important and frequent enough thing that this should be supported well. Of course, a ""light"" version of this proposal is also feasible (just support for string and byte[] with no user-provided output buffer). Not sure if anyone wants/needs lowercase hex, I don't but others might. This seems cheap enough to implement. Testing should be easily automatable. I don't see any particular usability problems. This is suitable for community contribution. " +10021 area-System.Security Possible unnecessary Padding Oracle problems with UniversalCryptoDecryptor.cs I noticed a manual padding implementation in here while I was helping someone debug some code. I'm no crypto expert, but I noticed variable timing on the padding verification, and possibly on the BlockCopy (depending on implementation) is it just a memcpy? Does this open you up to a padding oracle attack? You mention that the platform (I'm assuming BCrypt, doesn't support padding in CBC mode for you), but it does. All you have to do is turn padding on on your last call to BCryptEncrypt and BCryptDecrypt. I recently had to deal with this and I've linked it. https://github.com/aws/aws-sdk-cpp/blob/master/aws-cpp-sdk-core/source/utils/crypto/bcrypt/CryptoImpl.cpp#L654 +10023 area-System.Xml [dev/xml] Fix debug enabled option in XslCompiledTransform Fix commented-out code (Marked with `//BinCompat TODO`) in XmlILModule supposed to run when XslCompiledTransform has enabled debug. When debug=true is passed to XslCompiledTransform, in the CompileQilToMsil step of the xsl transform the dynamic method is not being baked correctly (either due to the dynamic assembly not being generated correctly, or the dynamic module) and we get Object null reference error when the dynamic method Execute is being called. Also, re-enable tests tracking this issue. +10024 area-System.Net Dns.GetHostEntryAsync() throws SocketException if called before any other Socket APIs "# Repro Steps - dotnet new - Replace the contents of `Main()` with the following: ``` csharp Console.WriteLine(System.Net.Dns.GetHostEntryAsync(""127.0.0.1"").Result.AddressList.Length); ``` - dotnet run - App throws following exception: ``` Unhandled Exception: System.AggregateException: One or more errors occurred. (Either the application has not called WSAStartup, or WSAStartup failed) ---> System.Net.Sockets.SocketException: Either the application has not called WSAStartup, or WSAStartup failed at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) at System.Net.Dns.EndGetHostEntry(IAsyncResult asyncResult) at System.Net.Dns.<>c.b__16_1(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at ConsoleApplication.Program.Main(String[] args) ``` - Add the following before the call to `Dns.GetHostEntryAsync()`: ``` csharp new System.Net.Sockets.Socket(System.Net.Sockets.SocketType.Stream, System.Net.Sockets.ProtocolType.Tcp); ``` - App works correctly. CC: @stephentoub " +10028 area-System.Diagnostics EventSource for .Net Native does not consider properties for derived types of EventData In StubEnvironment.cs, type.GetProperties is defined as type.GetTypeInfo().DeclaredProperties, which doesn't return the properties of any derived types. It should be type.GetRuntimeProperties which does. +10031 area-System.Data System.Data.SqlClient connection issue on OS X "Attempting to open a connection to a SQL Server 2008R2 database from OS X results in a timeout during the login process: ``` System.Data.SqlClient.SqlException: Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=1232; handshake=2559; [Login] initialization=5; authentication=18; [Post-Login] complete=56058; ---> System.ComponentModel.Win32Exception: Unknown error: 258 --- End of inner exception stack trace --- at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) ``` Initially found in an ASP.NET Core MVC Controller, I have recreated the issue with the following console program: ``` c# using System; using System.Data.SqlClient; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { Console.WriteLine(""Attempting to open connection...""); try { SqlConnection conn = new SqlConnection(""Data Source=server;Initial Catalog=database;User ID=user;Password=password;Connection Timeout=60;Application Name=dotnetcore""); conn.Open(); Console.WriteLine(""...Success""); conn.Close(); } catch (Exception ex) { Console.WriteLine(string.Format(""...{0}"",ex)); } } } } ``` Both the original ASP.NET MVC Controller and the console program work on Windows. I have not been able to test on Linux as I currently don't have an environment available. The OS X machine that the issue was found on can connect to the database using SQLPro for MSSQL. " +10040 area-System.Net Deadlock in WinHttpResponseStream While investigating #9785, I saw one System.Net.Http test run deadlock in some cancellation token registration management code. One thread was unregistering from a cancellation token: ``` 00 ntdll!ZwDelayExecution 01 KERNELBASE!SleepEx 02 CoreCLR!Thread::UserSleep 03 CoreCLR!ThreadNative::Sleep 04 System_Private_CoreLib_ni!System.Threading.Thread.Sleep(Int32) 05 System_Private_CoreLib_ni!System.Threading.SpinWait.SpinOnce() 06 System_Private_CoreLib_ni!System.Threading.CancellationTokenSource.WaitForCallbackToComplete(System.Threading.CancellationCallbackInfo) 07 system_net_http!System.Net.Http.WinHttpRequestState.DisposeCtrReadFromResponseStream() 08 system_net_http!System.Net.Http.WinHttpRequestCallback.OnRequestReadComplete(System.Net.Http.WinHttpRequestState, UInt32) 09 system_net_http!System.Net.Http.WinHttpRequestCallback.RequestCallback(IntPtr, System.Net.Http.WinHttpRequestState, UInt32, IntPtr, UInt32) 0a system_net_http!System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr, IntPtr, UInt32, IntPtr, UInt32) 0b system_console!DomainBoundILStubClass.IL_STUB_ReversePInvoke(Int64, Int64, Int32, Int64, Int32) 0c CoreCLR!UMThunkStub 0d winhttp!HTTP_REQUEST_HANDLE_OBJECT::_SafeAppCallback 0e winhttp!HTTP_REQUEST_HANDLE_OBJECT::_ControlledAppCallback 0f winhttp!HTTP_REQUEST_HANDLE_OBJECT::IndicateCompletionStatusCommon 10 winhttp!HTTP_REQUEST_HANDLE_OBJECT::IndicateCompletionStatusInline 11 winhttp!WinHttpReadData 12 system_console!DomainBoundILStubClass.IL_STUB_PInvoke(SafeWinHttpHandle, IntPtr, UInt32, IntPtr) 13 system_net_http!System.Net.Http.WinHttpResponseStream+<>c__DisplayClass17_0.b__0(System.Threading.Tasks.Task`1) 14 System_Private_CoreLib_ni!System.Threading.Tasks.Task.Execute() 15 System_Private_CoreLib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 16 System_Private_CoreLib_ni!System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef) 17 System_Private_CoreLib_ni!System.Threading.Tasks.Task.ExecuteEntry(Boolean) 18 System_Private_CoreLib_ni!System.Threading.ThreadPoolWorkQueue.Dispatch() 19 CoreCLR!CallDescrWorkerInternal 1a CoreCLR!MethodDescCallSite::CallTargetWorker 1b CoreCLR!MethodDescCallSite::Call_RetBool 1c CoreCLR!QueueUserWorkItemManagedCallback 1d CoreCLR!ManagedThreadBase_DispatchInner 1e CoreCLR!ManagedThreadBase_DispatchMiddle 1f CoreCLR!ManagedThreadBase_DispatchOuter 20 CoreCLR!ManagedThreadBase_FullTransitionWithAD 21 CoreCLR!ManagedThreadBase::ThreadPool 22 CoreCLR!ManagedPerAppDomainTPCount::DispatchWorkItem 23 CoreCLR!ThreadpoolMgr::ExecuteWorkRequest 24 CoreCLR!ThreadpoolMgr::WorkerThreadStart 25 CoreCLR!Thread::intermediateThreadProc 26 KERNEL32!BaseThreadInitThunk 27 ntdll!RtlUserThreadStart ``` So, `CancellationTokenSource.WaitForCallbackToComplete` is waiting for an already-executing registered callback. This appears to be running on the following stack: ``` 00 ntdll!ZwWaitForMultipleObjects 01 KERNELBASE!WaitForMultipleObjectsEx 02 CoreCLR!WaitForMultipleObjectsEx_SO_TOLERANT 03 CoreCLR!Thread::DoAppropriateAptStateWait 04 CoreCLR!Thread::DoAppropriateWaitWorker 05 CoreCLR!Thread::DoAppropriateWait 06 CoreCLR!CLREventBase::WaitEx 07 CoreCLR!CLREventBase::Wait 08 CoreCLR!AwareLock::EnterEpilogHelper 09 CoreCLR!AwareLock::EnterEpilog 0a CoreCLR!SyncBlock::EnterMonitor 0b CoreCLR!ObjHeader::EnterObjMonitor 0c CoreCLR!Object::EnterObjMonitor 0d CoreCLR!JITutil_MonEnterWorker 0e system_net_http!System.Net.Http.WinHttpResponseStream.CancelPendingResponseStreamReadOperation() 0f system_net_http!System.Net.Http.WinHttpResponseStream+<>c.b__17_1(System.Object) 10 System_Private_CoreLib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 11 System_Private_CoreLib_ni!System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(Boolean) 12 System_Private_CoreLib_ni!System.Threading.CancellationTokenSource.Cancel() 13 system_net_http_functional_tests!System.Net.Http.Functional.Tests.ResponseStreamTest+d__5.MoveNext() 14 System_Private_CoreLib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 15 System_Private_CoreLib_ni!System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.RunWithDefaultContext() 16 xunit_execution_dotnet!Xunit.Sdk.AsyncTestSyncContext+<>c__DisplayClass7_0.b__1(System.Object) 17 xunit_execution_dotnet!Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(System.Threading.SendOrPostCallback, System.Object) 18 System_Private_CoreLib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 19 xunit_execution_dotnet!Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 1a xunit_execution_dotnet!Xunit.Sdk.XunitWorkerThread+<>c.b__5_0(System.Object) 1b System_Private_CoreLib_ni!System.Threading.Tasks.Task.Execute() 1c System_Private_CoreLib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 1d System_Private_CoreLib_ni!System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef) 1e System_Private_CoreLib_ni!System.Threading.Tasks.Task.ExecuteEntry(Boolean) 1f System_Private_CoreLib_ni!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 20 CoreCLR!CallDescrWorkerInternal 21 CoreCLR!MethodDescCallSite::CallTargetWorker 22 CoreCLR!MethodDescCallSite::Call 23 CoreCLR!ThreadNative::KickOffThread_Worker 24 CoreCLR!ManagedThreadBase_DispatchInner 25 CoreCLR!ManagedThreadBase_DispatchMiddle 26 CoreCLR!ManagedThreadBase_DispatchOuter 27 CoreCLR!ManagedThreadBase_FullTransitionWithAD 28 CoreCLR!ManagedThreadBase::KickOff 29 CoreCLR!ThreadNative::KickOffThread 2a CoreCLR!Thread::intermediateThreadProc 2b KERNEL32!BaseThreadInitThunk 2c ntdll!RtlUserThreadStart ``` `WinHttpResponseStream.CancelPendingResponseStreamReadOperation` is trying to acquire a lock, which is already held by the first thread - the one waiting for the cancellation callback to complete. So, classic deadlock. I can't reproduce this reliably, but I found it while running System.Net.Http.Functional.Tests under WinDBG, which may alter timing enough to make this more likely to repro. +10041 area-System.Net Add Negotiate and MultipleSchemes code to the System.net test Prerequisites "Add the missing `showidentity.ashx` file required by [DefaultCredentialsTest.cs](https://github.com/dotnet/corefx/blob/32b96925efce0dde416103862d0f37877918ec94/src/System.Net.Http/tests/FunctionalTests/DefaultCredentialsTest.cs#L25) ``` C# // This test endpoint offers multiple schemes, Basic and NTLM, in that specific order. This endpoint // helps test that the client will use the stronger of the server proposed auth schemes and // not the first auth scheme. private static Uri MultipleSchemesAuthenticatedServer = new Uri($""http://{DomainJoinedTestServer}/test/auth/multipleschemes/showidentity.ashx""); ``` " +10044 area-System.Net Avoid wrapping async I/O in synchronous methods in the HTTP tests "One theory I had about a potential cause of #9785 and #9270 was that it might be due to ThreadPool starvation; if not enough threads are available in the ThreadPool for long enough that a timeout fires, we might see the dreaded ""a task was canceled"" exception. To test this, I ran the System.Net.Http tests with the CoreCLR ThreadPool configured to limit itself to a single thread, and to trigger a breakpoint whenever that thread was tied up for a long time: ``` set COMPlus_ThreadPool_ForceMinWorkerThreads=1 set COMPlus_ThreadPool_ForceMaxWorkerThreads=1 set COMPlus_ThreadPool_DebugBreakOnWorkerStarvation=1 ``` The breakpoint was triggered pretty consistently for the tests which use `DelegateStream`, due to that type's default of providing synchronous `Read` and `Write` methods in terms of the caller-supplied async methods; by blocking the current thread until the async I/O completes, we potentially require _another_ ThreadPool thread, which may not be available soon, if ever. This change forces callers to prove synchronous implementations if they've provided async methods, and updates the callers to do so. After this, I have been unable to find any additional ThreadPool starvation issues in these tests. Unfortunately this does not appear to have fixed the problem I was looking at, as I still saw occasional ""a task was canceled"" errors. But maybe it's a good change to make anyway. :smile: @stephentoub @CIPop @davidsh " +10045 area-System.Net Adding server code. Fixing IIS application deployment. - Adding the server code used for the Azure deployment and the internal IIS-based test infrastructure. The code was adapted from @davidsh's private repository. - Instructions and scripts to build the ASP.Net scripts before deployment. - Changed the powershell scripts to deploy the binaries. - Verified that the tests are passing. Disabled some of the HttpClient tests as we need to re-design them to use actual Kerberos/NTLM authentication and add the missing server-side files to the repository (#10041). - Moved the prerequisites within common\test\System\Net since they are specific to the networking contracts. We can move them back if other teams want to onboard their e2e tests within this infrastructure. Fixes #9048 @davidsh @stephentoub @vijaykota @shrutigarg @himadrisarkar PTAL +10046 area-System.Data System.Data.SqlClient.SqlDataReader has no close method? Do we have to worry about closing the SqlDataReader? I get the feeling that it's handled upon closing the connection. thanks for your attention. +10051 area-System.Net HttpClient ignores ExpectContinue setting when using curl "When running on a platform that requires the curl library to back HttpClient, the curl library will automatically add an ""Expect: 100-continue"" header to any POST request which is greater than 1kB. This action is ignoring any potential setting where the headers passed into the client explicitly requested the header to be disabled. For example, something like: ``` c# var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.ExpectContinue = false; var response = await httpClient.PostAsync(""http://www.example.com"", new ByteArrayContent(new byte[16384])); ``` will result in an Expect header despite the default header setting. This issue could likely be resolved by adding a block of code almost identical to the TransferEncodingChunked header handling in CurlHandler.EasyRequest.cs, line 618 or so. Sending an ""Expect:"" header to curl will instruct the library to omit the header even if it would have added it otherwise. " +10052 area-System.Net Remove automatic curl Expect header if the request disabled it Attempts to fix #10051, but having issues with the full build on my machine. Cannot verify it passes all tests but we are running it in production and it seems to work. +10054 area-System.Console Console encoding defaults to UTF-8 "With .NET Core, the default encoding on my W10 box is now UTF-8. In the full .NET Framework, this was IBM437. Running the code fragment below gives the following results: **.NET Core:** Speed 24┬á116,00 KB/s Encoding: Unicode (UTF-8) | utf-8 **.NET Framework:** Speed 24 116,82 KB/s Encoding: OEM United States | IBM437 I could of course change the code page that the command prompt uses, but I'm not sure everyone is willing to do this. ``` cs using System; using System.Globalization; namespace ConsoleApp2 { public class Program2 { public static void Main2(string[] args) { var culture = new CultureInfo(""nl-BE""); var speed = 24116m; var formatted = string.Format(culture, ""Speed {0:N2} KB/s"", speed); Console.WriteLine(formatted); Console.WriteLine(""Encoding: {0} | {1}"", Console.OutputEncoding.EncodingName, Console.OutputEncoding.ToString()); } } } ``` " +10057 area-System.Numerics Propose additions to System.Numerics.Vectors Originally posted in https://github.com/dotnet/corefx/issues/157 as this is also features which would benefit from ref passing into and out-of matrix... unfortunatly I though I could be clever and give an interface to a struct and get just a reference of that struct, but it ends up being a separate entity entirely. Especially in a full suite, the same vector(s) might be easily reference by multiple consumers without having to keep a reference of the object they are in generically. can we have additional matrix methods, that are rotate( axis1, axis2, angle) where axis1 and 2 are enumerations for 'forward', 'right' and 'up' or whatever native direction your matrices are? enum { forward, right, left, back[ward], up, down }; where you can specify a direction normal from the matrix and rotate that towards another vector, with a given angle. ( Another solution would be to propose the rules of the JIT and allow adding/extending classes in System.Numerics.Vectors from 3rd party places instead of also requiring optimizations only get considered if the code is in a specifically named DLL; since this does seem to be a 1-off ) In real physics you rarely would apply exactly on a singular axis. It's only convenient in navigating virtual spaces from current input devices... --- More specifically I have a RotateRelative( x, y, z ) method that internally has a tick counter that goes from 0 to 5 for the 6 combinations of roll, pitch and yaw... or rotation about primary axis... This calls a more general function that does `rotate( x_axis, /*to*/ y_axis, angle )` to roll left(or right depending on direction of your axis I guess, or -angle which is just a float) rotate pitch up (pulling back on a airplane yoke)... `rotate( y_axis, z_axis, angle )` /\* rotates pitch down in a positive direction. */ These are simply sin(angle),cos(angle) applied to 2 lines of the matrix. (unfortunately I think your matrix is column major, so the rows can't be treated as the direction numbers for the matrix... to apply forward/backward translation as scale(forward, x ) to move in space that much? getting too abstract again? --- a third method I think already exists to rotate a axis around an arbitrary axis by an angle? can build a quaternion for that and reduce to a matrix? --- Experimentation has shown that in small increments ( < 90 degrees/sec in 60th of that intervals for 90 degress/60 frames) it's not too inaccurate to just use the same order (roll, pitch, yaw) to get a resulting transformation. But I do prefer to just keep my matrix as the orientation representation with an offset that works as the origin of that matrix... which an inverse application of that can work as a camera, which is a rare computation compared to other relative motion calculations.... https://docs.google.com/document/d/1_6JdZ0VplMFpBeR3QOcV5vhlOGYyn52T4-fITgI6lbc I jotted that down a bit ago. https://d3x0r.org:444/javascript/test3d/ (self signed certificate, beware, I'm spreading knowledge, please login and save the sources yourself) ... I did update my fork of three.js to have to above mentioned methods. There's a few buttons at the top, Mode 1, Mode 2 and Mode 3; and Controls 1 and Controls 2. Mode 1 and Controls 1 is the default. Controls1 click and drag moves like first person camera, controls 2 , click and move is an obit camera (not really important; no motion really required) Mode 1 - top left cube is reference relative rotation cube stepping through each of the variations... The bottom 6 cubes have their relative rotation always applied in the same order (the order specified by the text over them) ... The 3 cubes above the bottom 6 are single rotation references for directionality... It turns 90 degress and then pauses. Mode 2 is the same as Mode 1 really except slightly faster; so the divergences appear sooner... Mode 1 - the lower 6 are slow motion, as if rotated sequentailly 90 degrees in each of it's directions; in the various combinartions. THe three rotations happen then a pause showing completed doing 90 degrees each way. Mode2 - always applies the rotations in the same order but in smaller steps; some of these are faster than the ideal (top left) and some are slower.... I'm not sure what the reason exactly is for the combinations of three that are the same. Mode 3 the lower 6 cubes are based on building a quaternion using roll pitch yaw... multiplying in order (if text is yaw, pitch, roll... the multiplication is ( ( yaw \* pitch ) \* roll ) . This is saved as a target vector, and then a slerp is used between initial position and the computed target... so especially with larger angles applied; the resulting computation is not the same... demonstrating quaternions to have similar problems... and ideally should also be muxed though an iteration of applied ordering. +10061 area-System.Data SqlConnection's BeginTransaction is slow in .net core 1.0 (up to 250ms) This code is very slow compared to the full .Net Framework (under 1ms), is this expected behavior? _con is SqlConnection and _con_trans is SqlTransaction ``` try { _con.Open(); _con_trans = _con.BeginTransaction(IsolationLevel.ReadCommitted); } catch { _con_trans = null; _con.Close(); throw; } ``` +10062 area-System.Globalization Compat work for Cultures (Globalization) (for Windows) "This work to port the missing APIs from the classes: CultureInfo DateTimeFormatInfo NumberFormatInfo RegionInfo DigitShapes CharUnicodeInfo StringInfo TextInfo You can get the list of the APIs we need to expose from @danmosemsft list https://microsoft.sharepoint.com/teams/netfx/corefx/_layouts/15/WopiFrame.aspx?sourcedoc=%7b79FEE733-9D22-44F8-9BD9-536FF8DF621E%7d&file=android.to.core.component2.xlsx&action=default Please double check the list to make sure we covered all missing APIs. Here is some important notes - Please don't expose any API deals with the LCID (locale ids). these are Windows specific and not recommended to use even on Windows. people always should use culture names instead of LCIDs. here is list of such APIs: - M:System.Globalization.CultureInfo.get_LCID - P:System.Globalization.CultureInfo.LCID - P:System.Globalization.TextInfo.LCID - M:System.Globalization.TextInfo.get_LCID - M:System.Globalization.CultureInfo.#ctor(System.Int32) - M:System.Globalization.CultureInfo.#ctor(System.Int32,System.Boolean) - M:System.Globalization.RegionInfo.#ctor(System.Int32) - M:System.Globalization.CultureInfo.GetCultureInfo(System.Int32) - Please don't expose CultureType, CultureInfo.GetCultures. these are Windows specific and not useful even on Windows. - There are some properties which make sense for Windows only and not to other OS's like CultureInfo.InstalledUICulture, CultureInfo.ThreeLetterWinodwsLanguageName and RegionInfo.ThreeLettersWindowsRegionName. we need to decide if we need to expose them. if we decide to expose them we'll have to initialize those with some fake values on non-Windows OS's. in my opinion these are not really useful properties. - There are some APIs depends on the OS and we need to figure a way to do it on non-Windows OS's. ICU is your way to do it. http://site.icu-project.org/ here is some examples of such APIs - M:System.Globalization.CultureInfo.get_ThreeLetterISOLanguageName - M:System.Globalization.CultureInfo.GetCultureInfoByIetfLanguageTag(System.String) - M:System.Globalization.CultureInfo.CreateSpecificCulture(System.String) - M:System.Globalization.DateTimeFormatInfo.get_NativeCalendarName - M:System.Globalization.DateTimeFormatInfo.GetAllDateTimePatterns - M:System.Globalization.DateTimeFormatInfo.GetAllDateTimePatterns(System.Char) - M:System.Globalization.DateTimeFormatInfo.GetShortestDayName(System.DayOfWeek) - P:System.Globalization.DateTimeFormatInfo.NativeCalendarName - M:System.Globalization.NumberFormatInfo.get_DigitSubstitution - M:System.Globalization.NumberFormatInfo.get_NativeDigits - M:System.Globalization.NumberFormatInfo.set_DigitSubstitution(System.Globalization.DigitShapes) - P:System.Globalization.NumberFormatInfo.DigitSubstitution - P:System.Globalization.NumberFormatInfo.NativeDigits - M:System.Globalization.RegionInfo.get_CurrencyEnglishName - M:System.Globalization.RegionInfo.get_CurrencyNativeName - M:System.Globalization.RegionInfo.get_GeoId - M:System.Globalization.RegionInfo.get_ThreeLetterISORegionName - M:System.Globalization.RegionInfo.get_CurrencyEnglishName - M:System.Globalization.RegionInfo.get_CurrencyNativeName - M:System.Globalization.RegionInfo.get_GeoId - M:System.Globalization.RegionInfo.get_ThreeLetterISORegionName - M:System.Globalization.TextInfo.get_ANSICodePage - M:System.Globalization.TextInfo.get_EBCDICCodePage - M:System.Globalization.TextInfo.get_LCID - M:System.Globalization.TextInfo.get_MacCodePage - M:System.Globalization.TextInfo.get_OEMCodePage - P:System.Globalization.TextInfo.ANSICodePage - P:System.Globalization.TextInfo.EBCDICCodePage - P:System.Globalization.TextInfo.MacCodePage - P:System.Globalization.TextInfo.OEMCodePage - We need to decide if we are going to expose the the Serialization ""System.Runtime.Serialization"" so we can know if we need to port the serialization support in the globalization types. @danmosemsft can help with this. - CultureInfo uses user override bool flag in the constructors we are going to expose. I think this flag will not have any effect on non-Windows OS's. " +10063 area-System.Globalization Compat work for Calendars (for Windows) We need to port all missing APIs in the calendar APIs. you can look at System.Globalization.Calendar class and all types which subclass it. for the complete list please look at @danmosemsft list https://microsoft.sharepoint.com/teams/netfx/corefx/_layouts/15/WopiFrame.aspx?sourcedoc=%7b79FEE733-9D22-44F8-9BD9-536FF8DF621E%7d&file=android.to.core.component2.xlsx&action=default This should be straight forward porting as I am not expecting there is any dependency on the OS +10065 area-System.Globalization Compat work for collations/Sorting (for Windows) "This issue mainly to port all missing APIs in the classes CompareInfo, SortKey and SortVersion You can get the list of the APIs we need to expose from @danmosemsft list https://microsoft.sharepoint.com/teams/netfx/corefx/_layouts/15/WopiFrame.aspx?sourcedoc=%7b79FEE733-9D22-44F8-9BD9-536FF8DF621E%7d&file=android.to.core.component2.xlsx&action=default We already have some native PAL implementation which can be used to enable these types implementation on Linux. you can look at https://github.com/dotnet/coreclr/blob/7d1cd169944306ee25c847c77104722a60c2247c/src/corefx/System.Globalization.Native/collation.cpp especially GlobalizationNative_GetSortKey method. Here is some important notes: - Please don't expose any API deals with the LCID (locale ids). these are Windows specific and not recommended to use even on Windows. people always should use culture names instead of LCIDs. here is list of such APIs: - M:System.Globalization.CompareInfo.get_LCID - M:System.Globalization.CompareInfo.GetCompareInfo(System.Int32) - M:System.Globalization.CompareInfo.GetCompareInfo(System.Int32,System.Reflection.Assembly) - for SortVersion, I think we can use the ICU library version to implment this one as Windows implmentation is really depends on Windows APIs - We need to decide if we are going to expose the the Serialization ""System.Runtime.Serialization"" so we can know if we need to port the serialization support in the globalization types. @danmosemsft can help with this. " +10066 area-System.Globalization Compat work for String class globalization APIs (for Windows) We need to look at the string class for all APIs we need to port which uses CultureInfo object. ``` public static int Compare(string strA, int indexA, string strB, int indexB, int length, bool ignoreCase, CultureInfo culture); public static int Compare(string strA, int indexA, string strB, int indexB, int length, CultureInfo culture, CompareOptions options); public static int Compare(string strA, string strB, bool ignoreCase, CultureInfo culture); public static int Compare(string strA, string strB, CultureInfo culture, CompareOptions options); public bool EndsWith(string value, bool ignoreCase, CultureInfo culture); public bool StartsWith(string value, bool ignoreCase, CultureInfo culture); public string ToLower(CultureInfo culture); public string ToUpper(CultureInfo culture); ``` Note that we need to expose these from System.Globalization.Extensions contract as we don't want System.Runtime depends on Globalization at all. so I guess we can implement these as extension methods in the System.Globalization.Extensions library as we did with some similar APIs before. +10073 area-Meta Add members that were added in Core to types of classic assemblies to the Compat surface area. There are at least a couple of Compat surface areas that I have to update since we added some members to old types in Core. +10076 area-Infrastructure Add Ubuntu and CentOS Outerloop test coverage for Linux kernel 4.6.2 We're seeing some CLI / .NET Core bug reports where users have upgraded to 4.x kernels. We should add some outerloop runs to test this configuration: 1) Ubuntu 16.04 + kernel 4.6.2 2) CentOS 7.1 + 4.6.2 https://github.com/dotnet/coreclr/issues/6016 https://github.com/dotnet/cli/issues/3681 http://www.techrepublic.com/article/pro-tip-upgrade-ubuntu-to-the-4-x-kernel/ +10085 area-System.Reflection Missing method .IsValueType() Why don't we have IsValueType() method anymore? Workaround is easy typeof(xy).GetTypeInfo().IsValueType, but migration of existing code is painful. +10090 area-Infrastructure Enable coverage for test code (required for Unit and PAL testing) "Currently `/p:Coverage=true` excludes Test code. This leaves production code within all Unit and PAL tests without code coverage. A workaround is to to manually write a script to remove the `-filter:"" -[*.Tests]*""` portion from OpenCover: ``` batchfile call S:\c2\packages/OpenCover\4.6.519\tools\OpenCover.Console.exe -oldStyle -filter:""+[*]* -[xunit.*]*"" -excludebyfile:""*\Common\src\System\SR.*"" -nodefaultfilters -excludebyattribute:*.ExcludeFromCodeCoverage* -skipautoprops -hideskipped:All -threshold:1 -returntargetcode -register:user -target:CoreRun.exe -output:S:\c2\bin/tests/coverage\System.Net.NameResolution.Pal.Tests.coverage.xml -targetargs:""xunit.console.netcore.exe System.Net.NameResolution.Pal.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=failing -notrait category=nonwindowstests "" S:\c2\packages/ReportGenerator\2.4.3\tools\ReportGenerator.exe -targetdir:S:\c2\bin/tests/coverage\ -reporttypes:Html;Badges -reports:S:\c2\bin/tests/coverage\System.Net.NameResolution.Pal.Tests.coverage.xml ``` It would be great if we could have /p:CoverageAll to remove the Test code filter which in these cases is actually the production code directly referenced by the test project. " +10093 area-System.Runtime Proposal: LegacyAttribute "# The Problem A good thing about the .NET Core 1.0 surface area is that it made it clear what classes/methods were considered obsolete because for the most part, they just didn't exist. With the larger surface area planned for v2 a lot of this missing functionality is being brought back purely for compatibility reasons. How does a developer get informed that a given API is no longer recommended for use? `ObsoleteAttribute` is the heavy handed version of this which says ""You should stop using this immediately, it will be removed in a future version"". There needs to be an ""Info"" level version of this for things that are _considered_ to be obsolete but it's not appropriate to mark it is such. `[EditorBrowsable(EditorBrowsableState.Never)]` assists when writing new code but doesn't help someone identify usages in existing code. If I am using something that is no longer recommended I want to know about, and I would like my IDE to be able to tell me. Marking up libraries with a `LegacyAttribute` would be the first step to having that metadata. # Solution ``` c# [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Interface | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Delegate, Inherited = false)] public sealed class LegacyAttribute : Attribute { public LegacyAttribute() public LegacyAttribute(string message) public string Message { get; } } ``` **Semantic Meanings** ""This exists for backwards compatibility. Nothing to see here. Move along"" ""This will work for as long as you need it but we recommend you use something else"" # Examples TimeZone can't be marked obsolete https://github.com/dotnet/corefx/issues/10074 Analyzers need metadata https://github.com/DotNetAnalyzers/Proposals/issues/37 Legacy collections can't be marked obsolete https://github.com/dotnet/corefx/issues/370 (It's common for Java developers to use ArrayList on .net, how do we educate that's not recommended anymore?) CharSet.Unicode inappropriate to mark obsolete https://github.com/dotnet/corefx/issues/7804 BitVector32 https://github.com/dotnet/corefx/issues/373 # Summary Compatibility has been one of the full .NET frameworks great strengths. There needs to be a way to deal with the downside of that which is education of APIs that still exist only for that compatibility story. " +10096 area-System.Net Fixing NameResolution initialization Fixing NameResolution initialization for Windows, adding more FunctionalTest coverage, adding a new UnitTest project. (Ran out of time but I plan to add more Unit Tests to validate complicated scenarios such as no IPv6 available.) Fixing the ParallelTestExecution script. Fixes #10024 @davidsh @stephentoub @ericeil @himadrisarkar PTAL +10099 area-Meta It would be best if there is a .NET Platform Standard API references. "And readers could choose the specific standard version, just like the old MSDN library does, switching between different .Net Framework versions. I guess cross-platform class library developers are tend to target ""netstandard1.x"", but the only API references availabe now is the .Net Core API docs. This might bring confusion and inconvenience. " +10103 area-System.Net Fix two WebSocket issues on Unix This fixes two issues in our managed ClientWebSocket implementation, both of which stemmed from a misunderstanding on my part of how things were supposed to work (or not work): - I thought that if the WebSocket was already in a CloseSent state and then received a close frame that it should transition to Closed. Instead, it's supposed to transition to CloseReceived. Similarly, I thought a WebSocket that was already in a CloseReceived state and then sent a close frame was supposed to transition to Closed. Instead, it's supposed to transition to CloseSent. The WebSocket is only supposed to transition to Closed when the connection is closed, e.g. as part of CloseAsync after a close frame has been both sent and received. - I thought that ReceiveAsync could only be used concurrently with a SendAsync. Turns out we need to support it being used concurrently with a Close{Output}Async. This commit fixes both. Fixes https://github.com/dotnet/corefx/issues/9985 cc: @mconnew, @davidsh, @cipop, @ericeil +10113 area-Infrastructure arm: build error for arm (wily) cross build "cross build for Ubuntu 15.10 ARM rootfs option: arm wily build option: cross arm native debug ``` -- Check for working C compiler: /usr/bin/clang-3.5 -- broken CMake Error at /usr/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:61 (message): The C compiler ""/usr/bin/clang-3.5"" is not able to compile a simple test program. It fails with the following output: Change Dir: /home/hseok82/rbp3/corefx/bin/obj/Linux.arm.Debug/Native/CMakeFiles/CMakeTmp Run Build Command:/usr/bin/make ""cmTryCompileExec1892218345/fast"" /usr/bin/make -f CMakeFiles/cmTryCompileExec1892218345.dir/build.make CMakeFiles/cmTryCompileExec1892218345.dir/build make[1]: Entering directory `/home/hseok82/rbp3/corefx/bin/obj/Linux.arm.Debug/Native/CMakeFiles/CMakeTmp' /usr/bin/cmake -E cmake_progress_report /home/hseok82/rbp3/corefx/bin/obj/Linux.arm.Debug/Native/CMakeFiles/CMakeTmp/CMakeFiles 1 Building C object CMakeFiles/cmTryCompileExec1892218345.dir/testCCompiler.c.o /usr/bin/clang-3.5 -target armv7-linux-gnueabihf -mthumb -mfpu=vfpv3 --sysroot=/home/hseok82/rbp3/corefx/cross/rootfs/arm -o CMakeFiles/cmTryCompileExec1892218345.dir/testCCompiler.c.o -c /home/hseok82/rbp3/corefx/bin/obj/Linux.arm.Debug/Native/CMakeFiles/CMakeTmp/testCCompiler.c Linking C executable cmTryCompileExec1892218345 /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1892218345.dir/link.txt --verbose=1 /usr/bin/clang-3.5 -target arm-linux-gnueabihf -B/home/hseok82/rbp3/corefx/cross/rootfs/arm/usr/lib/gcc/arm-linux-gnueabihf -L/home/hseok82/rbp3/corefx/cross/rootfs/arm/lib/arm-linux-gnueabihf --sysroot=/home/hseok82/rbp3/corefx/cross/rootfs/arm CMakeFiles/cmTryCompileExec1892218345.dir/testCCompiler.c.o -o cmTryCompileExec1892218345 -rdynamic /usr/bin/arm-linux-gnueabihf-ld: cannot find crt1.o: No such file or directory /usr/bin/arm-linux-gnueabihf-ld: cannot find crti.o: No such file or directory /usr/bin/arm-linux-gnueabihf-ld: cannot find crtbegin.o: No such file or directory /usr/bin/arm-linux-gnueabihf-ld: cannot find -lgcc /usr/bin/arm-linux-gnueabihf-ld: cannot find -lgcc_s /usr/bin/arm-linux-gnueabihf-ld: cannot find -lc /usr/bin/arm-linux-gnueabihf-ld: cannot find -lgcc /usr/bin/arm-linux-gnueabihf-ld: cannot find -lgcc_s /usr/bin/arm-linux-gnueabihf-ld: cannot find crtend.o: No such file or directory /usr/bin/arm-linux-gnueabihf-ld: cannot find crtn.o: No such file or directory clang: error: linker command failed with exit code 1 (use -v to see invocation) make[1]: *** [cmTryCompileExec1892218345] Error 1 make[1]: Leaving directory `/home/hseok82/rbp3/corefx/bin/obj/Linux.arm.Debug/Native/CMakeFiles/CMakeTmp' make: *** [cmTryCompileExec1892218345/fast] Error 2 ``` " +10116 area-Serialization Serialization Support Does the Core 1.0 currently supports System.Runtime.Serialization like Serializable,SerializationFormatter attribute etc. We are in the process of upgrading 4.5.x to Core 1.0. +10117 area-System.Security Self-contained application not working on Mac because of openssl The docs state that it is possible to deploy a self-contained application via xcopy because there are no external dependencies but on Mac OS X this is not true. The Mac version requires a non-standard version of openssl that Apple does not support to be installed globally. This openssl version should be a part of dot net core files if needed. +10120 area-System.IO Request: a way to tell if two filepaths point to the same file On unix, the recommended way to tell whether two filepaths point to the same file is to use `stat` and compare `st_dev, st_ino`. http://www.boost.org/doc/libs/1_53_0/libs/filesystem/doc/reference.html#equivalent On Windows, the recommended way is to use the win32 API `GetFileInformationByHandle` and compare `nFileIndexLow, nFileIndexHigh, dwVolumeSerialNumber`. You have to do this via p/invoke because there's no .NET wrapper for it. P/invoke was tolerable to me because it was all self-contained and easy. But as I port my code over to corefx, I honestly can't be bothered to go the whole nuget platform-specific native binary route. It's far too much work. I'd love it you could add an API to corefx to judge whether two filenames point to the same file. Judging by the huge number of requests for this on stackoverflow, it seems like a common bread-and-butter scenario. +10123 area-System.Net Refactor ClientWebSocket on Unix into ManagedWebSocket shareable by ASP.NET We want to avoid having two separate implementations of the core websocket protocol. We're going to refactor the corefx managed implementation into a file that's shareable by both corefx and ASP.NET. +10127 area-System.Runtime Add new Lazy(T value) ctor to System.Runtime contract and add tests Now that the implementation of #2578 has been merged for CoreCLR (https://github.com/dotnet/coreclr/pull/6304) and CoreRT (https://github.com/dotnet/corert/pull/1538), the new API needs to be exposed in the [`System.Runtime`](https://github.com/dotnet/corefx/blob/4fccde2c42f7670ebd098513c09b30772f833e84/src/System.Runtime/ref/System.Runtime.cs#L1202) contract (and versioned as appropriate) and tests added. +10133 area-System.Collections System.Collections.NonGeneric failed to bind I'm developing an application UWP for Windows 10 Mobile, everything works fine in debug mode, but when I generate the application packages in release mode, the resources to globalization do not work and the visual studio reports the following warning attached below. I'm using the Microsoft.NETCore.UniversalWindowsPlataform in version 5.2.2. Is there any way to solve this problem? Regards > ILTransform_0027: Assembly name 'System.Collections.NonGeneric' failed to bind. +10146 area-System.Net Documentation: Update docs on supported libcurl features on Linux and OSX. "This is a cross post from dotnet/KestrelHttpServer and WCF. I've closed that issue as it is not Kestrel related, but I apologize for the cross-posting, I'm still learning about the different repositories and what functions are where. I have some functionality that is working on windows, but fails on all of the unix droplets I've spun up. I'm seeing one type of failure message on ubuntu 14.04 and debian 8.5 and another type on fedora 23 and centos 7 when using BasicHttpsbinding and the connection factory. I've tried using the svcutil to generate the interface and I've also used the new WCF Connected Services utility and I've even crafted the entire message by hand and used SendAsync and PostAsync. All scenarios exhibit the same behavior. Here's the code: ```c# private string invokeSsoSoapRequest(string xmlRequest) { ChannelFactory factory = null; SingleSignOnSoap serviceProxy = null; var binding = new BasicHttpsBinding(); binding.Security.Mode = BasicHttpsSecurityMode.Transport; binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate; var baseAddress = new Uri(mySettings.ClientUrl); var endpointAddress = new EndpointAddress(baseAddress); X509Certificate2Collection collection = new X509Certificate2Collection(); if (RuntimeEnvironment.OperatingSystemPlatform == Platform.Windows) { //windows file location collection.Import(mySettings.ClientPrivateKeyWindowsPath, mySettings.ClientPfxPass, X509KeyStorageFlags.PersistKeySet); }else { collection.Import(mySettings.ClientPrivateKeyUnixPath, mySettings.ClientPfxPass, X509KeyStorageFlags.PersistKeySet); } //parse pfx for client auth key factory = new ChannelFactory(binding, new EndpointAddress(baseAddress)); foreach (X509Certificate2 cert in collection) { if (cert.HasPrivateKey) { factory.Credentials.ClientCertificate.Certificate = cert; } } serviceProxy = factory.CreateChannel(); RequestTicketRequest request = new RequestTicketRequest(); RequestTicketRequestBody body = new RequestTicketRequestBody(); request.Body = body; request.Body.sRequestXML = xmlRequest; return serviceProxy.RequestTicket(request).Body.RequestTicketResult; } } ``` ` **Here are the errors I'm getting on Ubuntu and Debian:** > TimeoutException: The HTTP request to 'https://services.**********SingleSignOn.asmx' has exceeded the allotted timeout of 00:01:00. The time allotted to this operation may have been a portion of a longer timeout. The above dotnet error claims the service timed out while waiting for a response (00:01:00), but a tshark trace shows the SOAP response negotiation failed when the client sent [RST, ACK] back the the remote webservice. See image below. The same trace in windows environment shows no errors and the transaction works and as you can see a few lines above, the server hello, certificate, and key exchanges appear to be successful, so I don't think I'm dealing with a cert issue. ![image](https://cloud.githubusercontent.com/assets/596849/16950334/60888112-4d85-11e6-8d29-66a2a8badd9b.png) I've also tried this in docker just to rule out any host config issues with the following docker config and see the same error: > FROM microsoft/dotnet:1.0.0-preview2-sdk > RUN mkdir -p /dotnetapp > WORKDIR /dotnetapp > EXPOSE 5000 > COPY . /dotnetapp > RUN dotnet restore > ENTRYPOINT [""dotnet"", ""run""]` I've tried this on Fedora and Centos, but get a different error related to the curl version that ships with those distros. I'm not entirely sure how to fix it, but I suspect I'd have the same issue if I got past it. **Here is the error I received on Fedora and Centos:** > System.PlatformNotSupportedException: The libcurl library in use (7.43.0) and its SSL backend (""NSS/3.24 Basic ECC"") do not support custom handling of certificates. A libcurl built with OpenSSL is required. *As a note, I compiled 7.50 curl against openssl and still received the above error. I'm a little bit of a linux noob, so I'm not sure if there's a way to force dotnet core to use the 7.5 installation, but as of now, dotnet core is still using 7.4.3. Here is my project.json ` { ""dependencies"": { ""Microsoft.NETCore.App"": { ""version"": ""1.0.0"", ""type"": ""platform"" }, ""Microsoft.AspNetCore.Mvc"": ""1.0.0"", ""Microsoft.AspNetCore.Server.Kestrel"": ""1.0.0"", ""Microsoft.Extensions.Configuration.EnvironmentVariables"": ""1.0.0"", ""Microsoft.Extensions.Configuration.FileExtensions"": ""1.0.0"", ""Microsoft.Extensions.Configuration.Json"": ""1.0.0"", ""Microsoft.Extensions.Logging"": ""1.0.0"", ""Microsoft.Extensions.Logging.Console"": ""1.0.0"", ""Microsoft.Extensions.Logging.Debug"": ""1.0.0"", ""Microsoft.Extensions.Options.ConfigurationExtensions"": ""1.0.0"", ""System.ServiceModel.Http"": ""4.1.0"", ""System.Xml.XmlSerializer"": ""4.0.11"", ""Microsoft.Extensions.Options"": ""1.0.0"", ""System.Runtime.Extensions"": ""4.1.0"", ""System.Text.Encoding"": ""4.0.11"", ""System.Xml.XmlDocument"": ""4.0.1"", ""System.Xml.XDocument"": ""4.0.11"", ""System.Security.Cryptography.X509Certificates"": ""4.1.0"", ""System.Security.Cryptography.Csp"": ""4.0.0"", ""system.xml.xpath.xmldocument"": ""4.0.0"", ""JsonWebTokens"": ""1.2.0"", ""Microsoft.AspNetCore.Diagnostics"": ""1.0.0"", ""Microsoft.AspNetCore.Server.IISIntegration"": ""1.0.0"" }, ""tools"": { }, ""frameworks"": { ""netcoreapp1.0"": { ""imports"": [ ""dotnet5.6"" ] } }, ""buildOptions"": { ""emitEntryPoint"": true, ""preserveCompilationContext"": true, ""debugType"": ""portable"" }, ""runtimeOptions"": { ""configProperties"": { ""System.GC.Server"": true } }, ""publishOptions"": { ""include"": [ ""wwwroot"", ""Views"", ""Areas/**/Views"", ""appsettings.json"", ""web.config"", ""Dockerfile"" ] }, ""scripts"": { ""postpublish"": [ ""dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"" ] } }` As I said on my other post, I would appreciate any help and know that it's more than plausible I've done something wrong here. This is the only piece of this API stack that we haven't been able to port. Lastly, if I can provide any other information, please let me know! Thank you! " +10148 area-System.Runtime On `Array.Version` "The `InvalidOperation` exception is not thrown in cases where the underlying enumerable (in this case an `Array) is not enumerated using a`foreach` construct. The foreach construct is useful because of the optimizations which are allowed by such as well as the ability to be notified of new changes when they occur. This requires using a `try` and `catch` paradigm which can require more stack space inter alia. I propose that the private member which indicates the version of the `Array` be exposed such that caller would be allowed to observe this property without the use of reflection and without the use of stack preservation. This is for several reasons which I have outlined below in an example which originally arose out of a question I answered on Stack Overflow related to the use of `async` which is linked in the example. Thank you for your time and consideration. ``` #region http://stackoverflow.com/questions/37077434/async-version-of-generic-extensions?noredirect=1#comment61700684_37077434 static void _TestLogicForBeginInvoke(byte[] i) { int local; System.Console.WriteLine(""Delegate0=>"" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(i, out local) ? ""0"" : local.ToString())); System.Threading.Thread.Sleep(1); System.Console.WriteLine(""Tested0""); System.Threading.Thread.Sleep(3); System.Console.WriteLine(""Delegate0=>"" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(i, out local) ? ""0"" : local.ToString())); System.Threading.Thread.Sleep(1); System.Console.WriteLine(""Delegate0=>"" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(i, out local) ? ""0"" : local.ToString())); System.Threading.Thread.Sleep(5); System.Console.WriteLine(""Delegate0=>"" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(i, out local) ? ""0"" : local.ToString())); System.Threading.Thread.Sleep(10); System.Console.WriteLine(""Delegate0=>"" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(i, out local) ? ""0"" : local.ToString())); } static void _TestLogicForBeginInvoke(ref byte[] i) { _TestOtherLogicForBeginInvoke(i); System.Console.WriteLine(""Tested1""); System.Threading.Thread.Sleep(3); int local; System.Console.WriteLine(""Delegate1=>"" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(i, out local) ? ""0"" : local.ToString())); System.Threading.Thread.Sleep(1); System.Console.WriteLine(""Delegate1=>"" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(i, out local) ? ""0"" : local.ToString())); System.Threading.Thread.Sleep(5); System.Console.WriteLine(""Delegate1=>"" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(i, out local) ? ""0"" : local.ToString())); System.Threading.Thread.Sleep(10); System.Console.WriteLine(""Delegate1=>"" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(i, out local) ? ""0"" : local.ToString())); } static void _TestOtherLogicForBeginInvoke(byte[] i) { int local; System.Console.WriteLine(""Delegate2=>"" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(i, out local) ? ""0"" : local.ToString())); System.Threading.Thread.Sleep(1); System.Console.WriteLine(""Tested2""); } static void _Callback(IAsyncResult iar) { System.Console.WriteLine(""Callback.CompletedSynchronously "" + iar.CompletedSynchronously); System.Console.WriteLine(""Callback.IsCompleted "" + iar.IsCompleted); int local; System.Console.WriteLine(""Callback.local "" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(iar.AsyncState as System.Array, out local) ? ""0"" : local.ToString())); System.Threading.Thread.Sleep(10); System.Console.WriteLine(""Callback IsCompleted "" + iar.CompletedSynchronously); System.Console.WriteLine(""Callback.local "" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(iar.AsyncState as System.Array, out local) ? ""0"" : local.ToString())); } /// /// on `State` [dhpfr] /// /// Observe the results of the use of BeingInvoke, in this case using arrays. /// [it seems(through repeated testing)] The behavior observed varies based on the use of the local but the orders of the invocations do not. /// None of these invocations result in a `block`. /// Thus it can probably be concluded from the results that the version can give precedent to the call based on the fact that /// 'Delegate2' / _TestOtherLogicForBeginInvoke ALWAYS is the first to output outside of this call and this is due to the version of the `Array` the call received. /// Thus it can also be concluded that `_version` member of the array is very important and should be exposed if not to observe this behavior then to allow for calls to /// be able to reject data based on that property if desired. /// This is especially important after a pause or otherwise where the state of the receieved may change and would possibly indicate to callers that they don't have to do the work they were originally called to do.. /// * /// The other way to handle this apparently is to use a or otherwise which can signal the work is abandoned in that version; /// and optionally observe newer versions of the data available by using a which contains token and it's source and thus /// can obtain a new token from the source if allowed and continue to do more work. /// This is because the call and it's stack were already prepared and is possibly more efficient then using the cleanup and restore just to do the same logic which would be able /// to be performed by retaining the state. /// static void TestInvocations() { TestInvocations(false); TestInvocations(true); //TestInvocations(false); //TestInvocations(true); } /// /// Arrays can only communicate data to or from the caller within the version of the array given to a call without the `ref` annotation. /// /// static void TestInvocations(bool useLocal = false) { //Callback is written after Tested and NotDone. System.Action call = new System.Action(_TestLogicForBeginInvoke); //This variable can be used in either the invocation or the callback but you must access it by reference. byte[] data = new byte[0]; int times = 0, register = -1; //Write output System.Console.WriteLine("".Output.useLocal="" + useLocal); //Start the call, show what call was made to the callback. IAsyncResult callInvocation = call.BeginInvoke(data, _Callback, data); System.Console.WriteLine("".IsCompleted "" + callInvocation.IsCompleted); System.Console.WriteLine("".Resize0""); System.Array.Resize(ref data, 1); byte[] local = null; using (callInvocation.AsyncWaitHandle) { //Wait for the call to be completed a few times while (callInvocation.IsCompleted.Equals(false)) { System.Console.WriteLine("".Resize1""); //When the local is used the call semantic is totally different as the version is maintained through the local. if (useLocal) { if (times <= 1) { System.Array.Resize(ref data, 1); local = data; data = null; System.Array.Resize(ref local, 2); } else { data = local; local = null; System.Array.Resize(ref data, 1); } } else System.Array.Resize(ref data, 1); System.Console.WriteLine(""._TestOtherLogicForBeginInvoke""); _TestOtherLogicForBeginInvoke(data); System.Console.WriteLine(""._TestLogicForBeginInvoke""); _TestLogicForBeginInvoke(ref data); System.Console.WriteLine("".NotDone1=>"" + times + "", "" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(data, out register) ? ""0"" : register.ToString())); System.Console.WriteLine("".Resize2""); /*if (times <= 1) System.Array.Resize(ref data, 1); else*/ System.Array.Resize(ref data, ++times); } } //Probably still not completed. System.Console.WriteLine("".IsCompleted "" + callInvocation.IsCompleted); //Can only be called once, should be called to free the thread assigned to calling the logic assoicated with BeginInvoke and the callback. call.EndInvoke(callInvocation); System.Console.WriteLine("".EndInvoke "" + callInvocation.IsCompleted + "","" + times); List calls = new List(); //Call again up to 5 times while (++times < 5) { if (times <= 1) System.Array.Resize(ref data, 1); else System.Array.Resize(ref data, ++register); callInvocation = call.BeginInvoke(data, _Callback, data); calls.Add(callInvocation); _TestOtherLogicForBeginInvoke(data); _TestLogicForBeginInvoke(ref data); System.Console.WriteLine("".NotDone2=>"" + times + "", "" + (Media.Common.Extensions.Array.ArrayExtensions.IsNullOrEmpty(data, out register) ? ""0"" : register.ToString())); } foreach (IAsyncResult storedCallInvocation in calls) { System.Console.WriteLine("".EndInvoke "" + storedCallInvocation.IsCompleted); call.EndInvoke(storedCallInvocation); } }//_Callback ``` " +10149 area-System.ComponentModel No DataAnnotation for integer A thing like [DataType(DataType.number)] could be valuable for managing validation directly in the model. Look at the #4995 issue for best understanding why I ask for it. Best regards. +10154 area-System.Net Accept HttpContent on any request method Overloads are needed to support HttpContent on methods like GetAsync. The HTTP specification does not prohibit body-level content on any of the method types. They may not be commonly used but I am aware of REST services that require complex body content in GET requests (in one case, it describes a variety of search parameters). +10155 area-Serialization Mismatched behavior for verify the KnownType with Desktop version When serialize a object with unknown type, if the serializer contains a DataContractResolver, it will end up with SerializationException. However, no exception thrown from Desktop Version. This is because, in core version, it always verify knowtype if there's resolver. In the code: System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs Core Version, which always return true when there's resolver : ``` c# protected virtual bool WriteTypeInfo(XmlWriterDelegator writer, DataContract contract, DataContract declaredContract) { if (XmlObjectSerializer.IsContractDeclared(contract, declaredContract)) { return false; } bool hasResolver = DataContractResolver != null; if (hasResolver) { WriteResolvedTypeInfo(writer, contract.UnderlyingType, declaredContract.UnderlyingType); } else { WriteTypeInfo(writer, contract.Name, contract.Namespace); } return hasResolver; } ``` Desktop Version, which always return false. ``` c# protected virtual bool WriteTypeInfo(XmlWriterDelegator writer, DataContract contract, DataContract declaredContract) { if (!XmlObjectSerializer.IsContractDeclared(contract, declaredContract)) { if (DataContractResolver == null) { WriteTypeInfo(writer, contract.Name, contract.Namespace); return true; } else { WriteResolvedTypeInfo(writer, contract.OriginalUnderlyingType, declaredContract.OriginalUnderlyingType); return false; } } return false; } ``` +10156 area-System.Net Use Loopback server for HttpClient testing. Today, we use http://corefx-net.cloudapp.net/ as an endpoint for much of the HttpClient testing. We've slowly been moving towards using a loopback server that gives back fixed HTTP responses to remove this dependency, (since it's one of the main places we see intermittent network issues that cause spurious test failures) but the set of testing we do against this is currently limited because the loopback server doesn't really understand HTTP so it can't do sophisticated actions based on requests. It should be possible to take the existing implementation of http://corefx-net.cloudapp.net/ and port it to run on ASP.NET Core 1.0. Once we've done that, we could use Kestrel locally to host a loop-back server that binds to a random port as part of setting up the HttpClient tests. This server could live for the lifetime of the dependent tests and then be shut down. There are a few steps to take here: - [ ] Port existing server to ASP.NET Core 1.0 (In progress, @ellismg is working on this) - [ ] Move server from above to be hosted within the tests themselves. - [ ] Figure out how to handle HTTPS HTTPS is interesting, because we need need a valid certificate for the server or we need to configure how we validate the remote certificate, which we only support on Windows and Unix when using an openssl based libcurl (not the case on CentOS, OSX and perhaps others). +10157 area-System.Threading Provide API to understand how many allocations have happened "As discussed in https://github.com/dotnet/coreclr/issues/6275 we would like an API to expose how many bytes were allocated since the beginning of a thread's life time. What about an API like this: ``` C# namespace System { public static class GC { public long GetAllocatedBytesForCurrentThread(); } } ``` The usage could like this: ``` C# [Fact] public void EnsureAllocations() { var allocationsBefore = GC.GetAllocatedBytesForCurrentThread(); var str = ""{'Items':["" + string.Join("","", Enumerable.Range(0, 3000).Select(i => ""{}"")) + ""]}""; var jObject = JObject.Parse(str); var allocationsAfter = Thread.GetAllocatedBytesForCurrentThread(); var allocations = allocationsAfter - allocationsBefore; const long MaximumBytesAllowed = 200 * 1024; Assert.LowerOrEqual(allocations, MaximumBytesAllowed); } ``` Questions: - Can/should this method track bytes per native OS thread or for the logical call context? - Does this track memory across async boundaries? Should it? @Maoni0 ### Updates - Based on @vancem's [concerns](https://github.com/dotnet/corefx/issues/10157#issuecomment-236678904) we've decided not to add `GetAllocatedBytesForThread(int managedThreadId)`. " +10165 area-System.Net Refactor ManagedWebSocket out of ClientWebSocket on Unix On Unix we use a managed implementation of WebSocket as the backing for ClientWebSocket. We'd like to be able to share this same implementation with ASP.NET so that we have a single implementation of the protocol across client and server. This change refactors out that support to make it more shareable. I made a few tweaks to the ClientWebSocket code shared across platforms. While we typically like to have argument validation be in the shared code, I moved the (minimal) argument validation into each of the Windows and managed-specific implementations of the PAL, so that the ManagedWebSocket implementation would perform that validation. I also added support for masking on the server (the current implementation assumed that all sent messages should be masked and all received messages should not be, but a server needs the opposite), though that isn't tested, so we may have some issues to fix there subsequently. I believe ASP.NET should be able to share just the ManagedWebSocket.cs and WebSocketValidate.cs files, plus define a handful of members on an SR type. If this is too complicated to manage well, I can try to simplify it further. cc: @anurse, @Tratcher, @ericeil, @davidsh, @cipop, @davidfowl +10172 area-Meta Question: Multi-Target for NetStandard 2.0 and .NET 4.5 ? Hello! A couple of weeks ago, there was an announcement that most of the BCL will get ported to .NET Core, which is plain awesome. E.g. I should then be able to enable most of my extensive framework library (> 100 projects) for .NET Core. Now, for the question: These features will be delivered when targeting NetStandard 2.0, but I will still have a requirement to support .NET 4.5 in several of my libraries (granted, just 10-15 libraries, but still). Will it be possible to target .NET 4.5 and NetStandard 2.0 with the same build artifact, i.e. without needing to build twice? Before NetStandard, I could do this by adding multiple platform identifiers in my nuget path. Best regards, Michael +10177 area-Infrastructure Win 10 outerloop machines need to be upgraded to Server 2016 TP5 The current image we are using for the outer loop runs has expired and so the machines will reboot often. We should move to TP5 (the latest Windows Server 2016 release) and also cut the Win10 machines over to the auto infrastructure stuff instead of having fixed machines. +10194 area-System.Threading Implement System.Threading.AsyncFlowControl From #10049 These methods rely on System.Threading.AsyncFlowControl and they should be added to the CAS stubs ``` M:System.Security.SecurityContext.SuppressFlow M:System.Security.SecurityContext.SuppressFlowWindowsIdentity ``` @stephentoub @danmosemsft @ellismg @bartonjs +10195 area-System.Security Implement System.Security.SecurityElement From #10049 These methods rely on System.Security.SecurityElement and should be added to the CAS stubs ``` M:System.Security.CodeAccessPermission.FromXml(System.Security.SecurityElement) M:System.Security.CodeAccessPermission.ToXml M:System.Security.ISecurityEncodable.FromXml(System.Security.SecurityElement) M:System.Security.ISecurityEncodable.ToXml M:System.Security.ISecurityPolicyEncodable.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.ISecurityPolicyEncodable.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.NamedPermissionSet.FromXml(System.Security.SecurityElement) M:System.Security.NamedPermissionSet.ToXml M:System.Security.PermissionSet.FromXml(System.Security.SecurityElement) M:System.Security.PermissionSet.ToXml M:System.Security.Permissions.EnvironmentPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.EnvironmentPermission.ToXml M:System.Security.Permissions.FileDialogPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.FileDialogPermission.ToXml M:System.Security.Permissions.FileIOPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.FileIOPermission.ToXml M:System.Security.Permissions.GacIdentityPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.GacIdentityPermission.ToXml M:System.Security.Permissions.PrincipalPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.PrincipalPermission.ToXml M:System.Security.Permissions.PublisherIdentityPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.PublisherIdentityPermission.ToXml M:System.Security.Permissions.ReflectionPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.ReflectionPermission.ToXml M:System.Security.Permissions.RegistryPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.RegistryPermission.ToXml M:System.Security.Permissions.SecurityPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.SecurityPermission.ToXml M:System.Security.Permissions.SiteIdentityPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.SiteIdentityPermission.ToXml M:System.Security.Permissions.StrongNameIdentityPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.StrongNameIdentityPermission.ToXml M:System.Security.Permissions.TypeDescriptorPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.TypeDescriptorPermission.ToXml M:System.Security.Permissions.UIPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.UIPermission.ToXml M:System.Security.Permissions.UrlIdentityPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.UrlIdentityPermission.ToXml M:System.Security.Permissions.ZoneIdentityPermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.ZoneIdentityPermission.ToXml M:System.Security.Policy.AllMembershipCondition.FromXml(System.Security.SecurityElement) M:System.Security.Policy.AllMembershipCondition.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.AllMembershipCondition.ToXml M:System.Security.Policy.AllMembershipCondition.ToXml(System.Security.Policy.PolicyLevel) M:System.Security.Policy.ApplicationDirectoryMembershipCondition.FromXml(System.Security.SecurityElement) M:System.Security.Policy.ApplicationDirectoryMembershipCondition.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.ApplicationDirectoryMembershipCondition.ToXml M:System.Security.Policy.ApplicationDirectoryMembershipCondition.ToXml(System.Security.Policy.PolicyLevel) M:System.Security.Policy.AllMembershipCondition.FromXml(System.Security.SecurityElement) M:System.Security.Policy.AllMembershipCondition.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.AllMembershipCondition.ToXml M:System.Security.Policy.AllMembershipCondition.ToXml(System.Security.Policy.PolicyLevel) M:System.Security.Policy.ApplicationDirectoryMembershipCondition.FromXml(System.Security.SecurityElement) M:System.Security.Policy.ApplicationDirectoryMembershipCondition.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.ApplicationDirectoryMembershipCondition.ToXml M:System.Security.Policy.ApplicationDirectoryMembershipCondition.ToXml(System.Security.Policy.PolicyLevel) M:System.Security.Policy.ApplicationTrust.FromXml(System.Security.SecurityElement) M:System.Security.Policy.ApplicationTrust.ToXml M:System.Security.Policy.CodeGroup.CreateXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.CodeGroup.FromXml(System.Security.SecurityElement) M:System.Security.Policy.CodeGroup.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.CodeGroup.ParseXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.CodeGroup.ToXml M:System.Security.Policy.CodeGroup.ToXml(System.Security.Policy.PolicyLevel) M:System.Security.Policy.GacMembershipCondition.FromXml(System.Security.SecurityElement) M:System.Security.Policy.GacMembershipCondition.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.GacMembershipCondition.ToXml M:System.Security.Policy.GacMembershipCondition.ToXml(System.Security.Policy.PolicyLevel) M:System.Security.Policy.GacMembershipCondition.FromXml(System.Security.SecurityElement) M:System.Security.Policy.GacMembershipCondition.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.GacMembershipCondition.ToXml M:System.Security.Policy.GacMembershipCondition.ToXml(System.Security.Policy.PolicyLevel) M:System.Security.Policy.HashMembershipCondition.FromXml(System.Security.SecurityElement) M:System.Security.Policy.HashMembershipCondition.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.HashMembershipCondition.ToXml M:System.Security.Policy.HashMembershipCondition.ToXml(System.Security.Policy.PolicyLevel) M:System.Security.Policy.PolicyLevel.FromXml(System.Security.SecurityElement) M:System.Security.Policy.PolicyLevel.ToXml M:System.Security.Policy.PolicyStatement.FromXml(System.Security.SecurityElement) M:System.Security.Policy.PolicyStatement.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.PolicyStatement.ToXml M:System.Security.Policy.PolicyStatement.ToXml(System.Security.Policy.PolicyLevel) M:System.Security.Policy.PublisherMembershipCondition.FromXml(System.Security.SecurityElement) M:System.Security.Policy.PublisherMembershipCondition.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.PublisherMembershipCondition.ToXml M:System.Security.Policy.PublisherMembershipCondition.ToXml(System.Security.Policy.PolicyLevel) M:System.Security.Policy.SiteMembershipCondition.FromXml(System.Security.SecurityElement) M:System.Security.Policy.SiteMembershipCondition.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.SiteMembershipCondition.ToXml M:System.Security.Policy.SiteMembershipCondition.ToXml(System.Security.Policy.PolicyLevel) M:System.Security.Policy.StrongNameMembershipCondition.FromXml(System.Security.SecurityElement) M:System.Security.Policy.StrongNameMembershipCondition.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.StrongNameMembershipCondition.ToXml M:System.Security.Policy.StrongNameMembershipCondition.ToXml(System.Security.Policy.PolicyLevel) M:System.Security.Policy.UrlMembershipCondition.FromXml(System.Security.SecurityElement) M:System.Security.Policy.UrlMembershipCondition.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.UrlMembershipCondition.ToXml M:System.Security.Policy.UrlMembershipCondition.ToXml(System.Security.Policy.PolicyLevel) M:System.Security.Policy.ZoneMembershipCondition.FromXml(System.Security.SecurityElement) M:System.Security.Policy.ZoneMembershipCondition.FromXml(System.Security.SecurityElement,System.Security.Policy.PolicyLevel) M:System.Security.Policy.ZoneMembershipCondition.ToXml M:System.Security.Policy.ZoneMembershipCondition.ToXml(System.Security.Policy.PolicyLevel) ``` @stephentoub @danmosemsft @ellismg @bartonjs +10196 area-System.Runtime Implement System.ApplicationIdentity From #10049 These rely on System.ApplicationIdentity and should be added to the CAS stubs ``` M:System.Security.Policy.ApplicationTrust.#ctor(System.ApplicationIdentity) P:System.Security.Policy.ApplicationTrust.ApplicationIdentity M:System.Security.Policy.ApplicationTrust.get_ApplicationIdentity M:System.Security.Policy.ApplicationTrust.set_ApplicationIdentity(System.ApplicationIdentity) M:System.Security.Policy.ApplicationTrustCollection.Find(System.ApplicationIdentity,System.Security.Policy.ApplicationVersionMatch) M:System.Security.Policy.ApplicationTrustCollection.Remove(System.ApplicationIdentity,System.Security.Policy.ApplicationVersionMatch) P:System.Security.Policy.TrustManagerContext.PreviousApplicationIdentity M:System.Security.Policy.TrustManagerContext.get_PreviousApplicationIdentity M:System.Security.Policy.TrustManagerContext.set_PreviousApplicationIdentity(System.ApplicationIdentity) ``` @stephentoub @danmosemsft @ellismg @bartonjs +10197 area-Serialization Implement System.Runtime.Serialization The types are SerializationInfo, StreamingContext, IDeserializationCallback, ISerializable. From #10049 These methods rely on System.Runtime.Serialization.\* and should be added to the CAS stubs ``` M:System.Security.HostProtectionException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Security.HostProtectionException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Security.PermissionSet.System#Runtime#Serialization#IDeserializationCallback#OnDeserialization(System.Object) M:System.Security.Policy.Hash.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Security.Policy.HashMembershipCondition.System#Runtime#Serialization#IDeserializationCallback#OnDeserialization(System.Object) M:System.Security.Policy.HashMembershipCondition.System#Runtime#Serialization#ISerializable#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Security.Policy.PolicyException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) ``` @stephentoub @danmosemsft @ellismg @bartonjs +10198 area-System.Data SqlClient cannot connect to Azure SQL db from a Nano Server machine I have a small web app which works fine from Windows 10 or Ubuntu hosts. When I run it on a Nano Server (2016 TP5) machine, though, connecting to an Azure SQL database (via EF.Core) fails with this exception: ``` An exception occurred in the database while iterating the results of a query. System.Data.SqlClient.SqlException: The instance of SQL Server you attempted to connect to requires encryption but this machine does not support it. at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Bo olean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open() at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext() at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.GetResult[TResult](IEnumerable`1 valueBuffers) at lambda_method(Closure , QueryContext ) at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayClass19_1`1.b__1(QueryContext qc) ClientConnectionId:ca7143d2-0c75-4a31-a770-a46d781c9d57 Error Number:20,State:0,Class:20 System.Data.SqlClient.SqlException: The instance of SQL Server you attempted to connect to requires encryption but this machine does not support it. at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open() at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext() at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.GetResult[TResult](IEnumerable`1 valueBuffers) at lambda_method(Closure , QueryContext ) at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayClass19_1`1.b__1(QueryContext qc) ``` The connection string I'm using is: ``` Server=tcp:iasveotbxa.database.windows.net,1433;Database=mikerou-widgets;User ID=ReproAdmin@iasveotbxa;Password=*****;Connection Timeout=300 ``` I've tried explicitly adding both `Encrypt=false` and `Encrypt=true` to the connection string, but neither helps. Is this perhaps just a nano server limitation or is there something that can be done either in my code or in System.Data.SqlClient to make this work? +10200 area-Infrastructure Cannot open resource editor in VS on corefx projects Opening src\System.Reflection.Metadata\src\Resources\Strings.resx in VS, I get the following: ``` Could not resolve mscorlib for target framework '.NETPortable,Version=v4.5,Profile=Profile7'. Thiscan happen if the target framework is not installed or if the framework moniker is incorrectly formatted. ``` C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.5\Profile\Profile7 is installed so I assume this has something to do with the build customization in corefx. Not necessarily related, but should we even be referencing portable profiles anywhere anymore? +10202 area-System.Reflection Cleanup post Reflection Api Restoration debt. Just a reminder to myself about some opportunistic cleanup and perf tasks once we've gotten the big Reflection type hierarchy done. - Remove all remaining AsType() calls. They're useless. - IntrospectionExtensions.GetType(this Type) This no longer require any special knowledge of Reflection.Core so there's no need for it to pipe through that ReflectionAugments interface. Just implement it inline. - Consider merging the rest of the ReflectionAugments callbacks into ReflectionExecutionDomainCallback. Now that they all live happily in System.Private.CoreLib, there's no need for so many confusing channels. - There's code (looking at you, Assignability.cs) that's probably doing Type/TypeInfo conversions that are no longer necessary. Tighten some screws there. +10206 area-System.Security Many ECCurve tests failing in CI on Unix I'm disabling these until we can get to the bottom of why they're failing in dev/api. ``` System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = PrimeShortWeierstrass, IncludePrivate = False, IsCurveValidOnPlatform = True, KeySize = 256, ... }) [FAIL] System.Security.Cryptography.CryptographicException : The specified curve 'Implicit' or its parameters are not valid for this platform. Stack Trace: /mnt/j/workspace/dotnet_corefx/dev_api/ubuntu14.04_release_prtest/bin/tests/AnyOS.AnyCPU.Release/System.Reflection.Tests/netcoreapp1.0/System.Reflection.dll already exists, not copying. at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(CurveDef curveDef) System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = PrimeMontgomery, IncludePrivate = False, IsCurveValidOnPlatform = True, KeySize = 384, ... }) [FAIL] System.Security.Cryptography.CryptographicException : The specified curve 'Implicit' or its parameters are not valid for this platform. Stack Trace: at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(CurveDef curveDef) System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = PrimeShortWeierstrass, IncludePrivate = False, IsCurveValidOnPlatform = True, KeySize = 521, ... }) [FAIL] System.Security.Cryptography.CryptographicException : The specified curve 'Implicit' or its parameters are not valid for this platform. Stack Trace: at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(CurveDef curveDef) System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = Characteristic2, IncludePrivate = False, IsCurveValidOnPlatform = True, KeySize = 193, ... }) [FAIL] System.Security.Cryptography.CryptographicException : The specified curve 'Implicit' or its parameters are not valid for this platform. Stack Trace: at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(CurveDef curveDef) System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = Characteristic2, IncludePrivate = False, IsCurveValidOnPlatform = True, KeySize = 163, ... }) [FAIL] System.Security.Cryptography.CryptographicException : The specified curve 'Implicit' or its parameters are not valid for this platform. Stack Trace: at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(CurveDef curveDef) System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = Characteristic2, IncludePrivate = False, IsCurveValidOnPlatform = True, KeySize = 283, ... }) [FAIL] System.Security.Cryptography.CryptographicException : The specified curve 'Implicit' or its parameters are not valid for this platform. Stack Trace: at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(CurveDef curveDef) System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = Characteristic2, IncludePrivate = False, IsCurveValidOnPlatform = True, KeySize = 283, ... }) [FAIL] System.Security.Cryptography.CryptographicException : The specified curve 'Implicit' or its parameters are not valid for this platform. Stack Trace: at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(CurveDef curveDef) System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = PrimeMontgomery, IncludePrivate = False, IsCurveValidOnPlatform = True, KeySize = 160, ... }) [FAIL] System.Security.Cryptography.CryptographicException : The specified curve 'Implicit' or its parameters are not valid for this platform. Stack Trace: at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNamed(CurveDef curveDef) System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyExplicit(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = Characteristic2, IncludePrivate = False, IsCurveValidOnPlatform = True, KeySize = 193, ... }) [FAIL] System.Security.Cryptography.CryptographicException : The specified curve '1481013368' or its parameters are not valid for this platform. Stack Trace: at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyExplicit(CurveDef curveDef) System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyExplicit(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = Characteristic2, IncludePrivate = False, IsCurveValidOnPlatform = True, KeySize = 163, ... }) [FAIL] System.Security.Cryptography.CryptographicException : The specified curve '1481027824' or its parameters are not valid for this platform. Stack Trace: at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyExplicit(CurveDef curveDef) System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyExplicit(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = Characteristic2, IncludePrivate = False, IsCurveValidOnPlatform = True, KeySize = 283, ... }) [FAIL] System.Security.Cryptography.CryptographicException : The specified curve '1481042400' or its parameters are not valid for this platform. Stack Trace: at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyExplicit(CurveDef curveDef) System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyExplicit(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = Characteristic2, IncludePrivate = False, IsCurveValidOnPlatform = True, KeySize = 283, ... }) [FAIL] System.Security.Cryptography.CryptographicException : The specified curve '1481056944' or its parameters are not valid for this platform. Stack Trace: at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyExplicit(CurveDef curveDef) System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyExplicit(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = PrimeMontgomery, IncludePrivate = False, IsCurveValidOnPlatform = True, KeySize = 160, ... }) [FAIL] System.Security.Cryptography.CryptographicException : The specified curve 'Implicit' or its parameters are not valid for this platform. Stack Trace: at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyExplicit(CurveDef curveDef) System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNistP256 [FAIL] System.Security.Cryptography.CryptographicException : The specified curve 'Implicit' or its parameters are not valid for this platform. Stack Trace: at System.Security.Cryptography.ECCurve.Validate() at System.Security.Cryptography.ECDsaOpenSsl.GenerateKey(ECCurve curve) at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.TestRegenKeyNistP256() ``` +10207 area-System.Runtime Two ValueTuple tests started failing on Unix when updating to new CoreCLR ``` ValueTupleTests.TestEquals_GetHashCode [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: at ValueTupleTests.ValueTupleTestDriver`10.TestEquals_GetHashCode(ValueTupleTestDriver`10 other, Boolean expectEqual, Boolean expectStructuallyEqual) at ValueTupleTests.TestEquals_GetHashCode() ValueTupleTests.TestCompareTo [FAIL] Assert.Equal() Failure Expected: 0 Actual: 1 Stack Trace: at ValueTupleTests.ValueTupleTestDriver`10.TestCompareTo(ValueTupleTestDriver`10 other, Int32 expectedResult, Int32 expectedStructuralResult) at ValueTupleTests.TestCompareTo() ``` e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/dev_api/job/ubuntu14.04_release_prtest/113/consoleText cc: @jkotas, @jcouv +10211 area-System.Security SslStream fails validating CRL on Linux I am using the `MailKit` NuGet package to send emails on .NET Core 1.0. I am connecting to an Amazon SES endpoint (`email-smtp.eu-west-1.amazonaws.com:587`) using TLS. On Windows, it works fine, however on Linux, I get an error: ``` System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure. at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at MailKit.Net.Smtp.SmtpClient.Connect(String host, Int32 port, SecureSocketOptions options, CancellationToken cancellationToken) at MailKit.MailService.<>c__DisplayClass41_0.b__0() at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at MyApp.Web.Models.MailClient.d__7.MoveNext() ``` Drilling down into why the certificate validation fails, I found that the chain has `RevocationStatusUnknown` errors (`unable to get certificate CRL`). It looks like `SslStream` is not able to access CRL on Linux. +10215 area-System.Net Port Uri missing members ``` F:System.Uri.SchemeDelimiter F:System.Uri.UriSchemeFile F:System.Uri.UriSchemeFtp F:System.Uri.UriSchemeGopher F:System.Uri.UriSchemeHttp F:System.Uri.UriSchemeHttps F:System.Uri.UriSchemeMailto F:System.Uri.UriSchemeNetPipe F:System.Uri.UriSchemeNetTcp F:System.Uri.UriSchemeNews F:System.Uri.UriSchemeNntp M:System.Uri.#ctor(System.String,System.Boolean) M:System.Uri.#ctor(System.Uri,System.String,System.Boolean) M:System.Uri.Escape M:System.Uri.EscapeString(System.String) M:System.Uri.FromHex(System.Char) M:System.Uri.GetLeftPart(System.UriPartial) M:System.Uri.HexEscape(System.Char) M:System.Uri.HexUnescape(System.String,System.Int32@) M:System.Uri.IsBadFileSystemCharacter(System.Char) M:System.Uri.IsExcludedCharacter(System.Char) M:System.Uri.IsHexDigit(System.Char) M:System.Uri.IsHexEncoding(System.String,System.Int32) M:System.Uri.IsReservedCharacter(System.Char) M:System.Uri.MakeRelative(System.Uri) M:System.Uri.Parse M:System.Uri.Unescape(System.String) T:System.UriPartial F:System.UriPartial.Authority F:System.UriPartial.Path F:System.UriPartial.Query F:System.UriPartial.Scheme F:System.UriPartial.value__ ``` +10216 area-System.Runtime Fill out missing String members ``` M:System.String.#ctor(System.SByte*) M:System.String.#ctor(System.SByte*,System.Int32,System.Int32) M:System.String.Clone M:System.String.CompareTo(System.Object) M:System.String.Concat(System.Object,System.Object,System.Object,System.Object,__arglist) M:System.String.Copy(System.String) M:System.String.GetEnumerator M:System.String.GetTypeCode M:System.String.Intern(System.String) M:System.String.IsInterned(System.String) M:System.String.IsNormalized M:System.String.IsNormalized(System.Text.NormalizationForm) M:System.String.Normalize M:System.String.Normalize(System.Text.NormalizationForm) M:System.String.ToString(System.IFormatProvider) M:System.StringComparer.Create(System.Globalization.CultureInfo,System.Boolean) M:System.StringComparer.Equals(System.Object,System.Object) M:System.StringComparer.GetHashCode(System.Object) M:System.StringComparer.get_InvariantCulture M:System.StringComparer.get_InvariantCultureIgnoreCase ``` Some others are tracked in https://github.com/dotnet/corefx/issues/10066 +10217 area-Serialization Missing GetDataContractOriginalType method When serialize a object with DateTimeOffset property, the OriginalUnderlyType of DataContract is always DateTimeOffsetAgent type, which should be DateTimeOffset based on Desktop version. This is because it is missing following methods in DataContractCriticalHelper. ``` c# Type originalUnderlyingType; internal Type OriginalUnderlyingType { get { if (this.originalUnderlyingType == null) { this.originalUnderlyingType = GetDataContractOriginalType(this.underlyingType); } return this.originalUnderlyingType; } } // Maps adapted types back to the original type // Any change to this method should be reflected in GetDataContractAdapterType internal static Type GetDataContractOriginalType(Type type) { if (type == Globals.TypeOfDateTimeOffsetAdapter) { return Globals.TypeOfDateTimeOffset; } return type; } ``` +10218 area-System.Security Consider exposing the underlying error message when a CryptographicException is thrown On .NET Core, the error message returned when a cryptographic exception is thrown only includes the error code, [but not the description](https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.Csp/src/System/Security/Cryptography/CapiHelper.cs#L156). Though not always super useful, having the error description helps understand what's happening when something goes wrong. For instance, here's the exception message you get when you don't have the permission to access the private key associated with a certificate stored in the machine store: System.Security.Cryptography.CryptographicException: OpenCSP failed with error code 2148073494. at Internal.NativeCrypto.CapiHelper.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer) at System.Security.Cryptography.RSACryptoServiceProvider.get_SafeProvHandle() at System.Security.Cryptography.RSACryptoServiceProvider.get_SafeKeyHandle() at System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 keySize, CspParameters parameters, Boolean useDefaultKeySize) at System.Security.Cryptography.RSACryptoServiceProvider..ctor(CspParameters parameters) at Internal.Cryptography.Pal.CertificatePal.<>c.b__59_0(CspParameters csp) at Internal.Cryptography.Pal.CertificatePal.GetPrivateKey[T](Func`2 createCsp, Func`2 createCng) at Internal.Cryptography.Pal.CertificatePal.GetRSAPrivateKey() at Internal.Cryptography.Pal.CertificateExtensionsCommon.GetPrivateKey[T](X509Certificate2 certificate, Predicate`1 matchesConstraints) at Microsoft.IdentityModel.Tokens.X509SecurityKey.get_PrivateKey() at Microsoft.IdentityModel.Tokens.X509SecurityKey.get_HasPrivateKey() On .NET Desktop, the exception message is `Keyset does not exist`. Related ticket: https://github.com/openiddict/openiddict-core/issues/169 /cc @bartonjs +10223 area-System.IO ZipArchive permissions on linux "ZipArchive doesn't currently allow manipulation permissions within. I ran into this when creating file in memory, dropping it into a zip and handing off to another system. With this code deployed on Linux, I'm not seeing a way to give the receiving system read access to contents of zip. **Example:** ``` c# using (var memoryStream = new MemoryStream()) { using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true)) { var lambdaFile = archive.CreateEntry(""index.js""); using (var entryStream = lambdaFile.Open()) using (var streamWriter = new StreamWriter(entryStream)) { streamWriter.Write(functionContent); } } memoryStream.Seek(0, SeekOrigin.Begin); svcFile.UploadFile(bucketName, s3Key, memoryStream); } ``` " +10224 area-System.Net Remove two Sockets tests "These tests try to connect to an endpoint that is not supposed to have an active listener, and expect to fail. However, there's no guarantee that some other test (or other process) is not listening on that endpoint. This leads to occasional failures in these tests (and may trigger failure in the _other_ test that happens to have been allocated the port in question). I don't know of a way to reliably force the failure these test cases are looking for, and I don't believe these tests provide enough value to justify ""heroic"" effor here. So I'm simply removing them. Fixes #8195. @CIPop @stephentoub " +10226 area-System.Security [dev/cms_unix] EnvelopedCms.Decrypt and EnvelopedCms.Encrypt don't support use of KeyAgreement certificates on Unix Due to lack of support of OpenSSL to use certificates using DH or ECDH for encryption and decryption of enveloped messages, the current implementation doesn't support decrypting for recipients holding only KeyAgreement certificates or encrypting using one. As of now performing any of these operations throws a PlatformNotSupported exception. The only way to work around this seems to be to manually parse the message to extract the encrypted content encryption key and use the appropriate API for the corresponding algorithm (DH or ECDH) to decrypt it and then use the key to decrypt the content blob. +10230 area-System.Net HttpClientHandler.AutomaticDecompression defaults to GZip|Deflate but not on documentation `HttpClientHandler.AutomaticDecompression`'s [documentation](https://docs.microsoft.com/en-us/dotnet/core/api/system.net.http.httpclienthandler#System_Net_Http_HttpClientHandler_AutomaticDecompression) states that default value is `None` when [implementation](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Net/Http/HttpHandlerDefaults.cs#L15) says otherwise. Which one is correct? +10273 area-System.Security Signing an XML file in .NET Core **Signing an XML file in .NET Core, I can not use more SignatureXML.** +10277 area-System.Security Signature XML file with dotnet ".Net Framework 4.0, 4.5.2, 4.6 to use signing of XML use the dependencies: using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography; using System.Security.Cryptography.Xml; My sign function was as follows: ``` public void Assinar(string strArqXMLAssinar, string strUri, X509Certificate2 x509Certificado, string strArqXMLAssinado) { //Atualizar atributos de retorno com conteúdo padrão this.intResultado = 0; this.strResultadoAss = ""XML Assinado Com Sucesso!""; StreamReader SR = null; try { //Abrir o arquivo XML a ser assinado e ler o seu conteúdo SR = File.OpenText(strArqXMLAssinar); string vXMLString = SR.ReadToEnd(); SR.Close(); try { // Verifica o certificado a ser utilizado na assinatura string _xnome = """"; if (x509Certificado != null) { _xnome = x509Certificado.Subject.ToString(); } X509Certificate2 _X509Cert = new X509Certificate2(); X509Store store = new X509Store(""MY"", StoreLocation.CurrentUser); store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates; X509Certificate2Collection collection1 = (X509Certificate2Collection)collection.Find(X509FindType.FindBySubjectDistinguishedName, _xnome, false); if (collection1.Count == 0) { this.strResultadoAss = ""Detectou problemas com o certificado digital. (Código do Erro: 2)""; this.intResultado = 2; return; } else { // certificado ok _X509Cert = collection1[0]; string x; x = _X509Cert.GetKeyAlgorithm().ToString(); XmlDocument doc = new XmlDocument(); doc.PreserveWhitespace = false; try { doc.LoadXml(vXMLString); // Verifica se a tag a ser assinada existe é única int qtdeRefUri = doc.GetElementsByTagName(strUri).Count; if (qtdeRefUri == 0) { // a URI indicada não existe this.strResultadoAss = ""A tag de assinatura "" + strUri.Trim() + "" não existe no XML. (Código do Erro: 4)""; this.intResultado = 4; return; } // Exsiste mais de uma tag a ser assinada else { if (qtdeRefUri > 1) { // existe mais de uma URI indicada this.strResultadoAss = ""A tag de assinatura "" + strUri.Trim() + "" não é unica. (Código do Erro: 5)""; this.intResultado = 5; return; } else { if (doc.GetElementsByTagName(""Signature"").Count == 0) { try { SignedXml signedXml = new SignedXml(doc); signedXml.SigningKey = _X509Cert.PrivateKey; Reference reference = new Reference(); // pega o uri que deve ser assinada XmlAttributeCollection _Uri = doc.GetElementsByTagName(strUri).Item(0).Attributes; foreach (XmlAttribute _atributo in _Uri) { if (_atributo.Name == ""Id"") { reference.Uri = ""#"" + _atributo.InnerText; } } XmlDsigEnvelopedSignatureTransform env = new XmlDsigEnvelopedSignatureTransform(); reference.AddTransform(env); XmlDsigC14NTransform c14 = new XmlDsigC14NTransform(); reference.AddTransform(c14); signedXml.AddReference(reference); KeyInfo keyInfo = new KeyInfo(); keyInfo.AddClause(new KeyInfoX509Data(_X509Cert)); signedXml.KeyInfo = keyInfo; signedXml.ComputeSignature(); XmlElement xmlDigitalSignature = signedXml.GetXml(); // Gravar o elemento no documento XML doc.DocumentElement.AppendChild(doc.ImportNode(xmlDigitalSignature, true)); XMLDoc = new XmlDocument(); XMLDoc.PreserveWhitespace = false; XMLDoc = doc; // Atualizar a string do XML já assinada this.vXMLStringAssinado = XMLDoc.OuterXml; // Gravar o XML Assinado no HD StreamWriter SW_2 = File.CreateText(strArqXMLAssinado); SW_2.Write(this.vXMLStringAssinado); SW_2.Close(); } catch (Exception caught) { if (intResultado == 0) { this.intResultado = 3; this.strResultadoAss = caught.Message; return; } } } } } } catch (Exception caught) { if (intResultado == 0) { this.intResultado = 6; this.strResultadoAss = caught.Message; return; } } } } catch (Exception caught) { if (intResultado == 0) { this.intResultado = 1; this.strResultadoAss = caught.Message; return; } } } catch (Exception ex) { if (intResultado == 0) { this.intResultado = 6; this.strResultadoAss = ex.Message; return; } } finally { SR.Close(); } } ``` Does anyone know how this is now done in dotnet core? Cross-post from dotnet/core#234 /cc @ralmsdeveloper " +10299 area-Infrastructure Add ARM64 private jobs to Jenkins Adds ARM64 build and test job definition to the Jenkins netci.groovy file. For now only private job initiations are allowed by a small set of users, though both per-push and daily triggers are coming. depends on: https://github.com/dotnet/corefx/pull/10043, https://github.com/dotnet/buildtools/pull/906, SNI ARM64 Codeflow, https://github.com/dotnet/corefx/pull/10429 remaining ARM64 work: - Merge the above PRs. - Push a commit to dotnet-buildpipeline to add an ARM64 invocation to the pipelines.corefx.json file. - Add 'arm64' labeled x64 machines to Jenkins. - Bump the CoreFX buildtools version to consume the above changes as a part of this PR. - Merge this PR - Kick off some private test jobs on Jenkins to ensure the targets and scripts function as expected. Make changes where necessary. - Push a(nother) PR to CoreFX to enable per-push and daily builds (currently commented out). resolves https://github.com/dotnet/corefx/issues/6899 @mmitche @stephentoub @gkhanna79 @ericstj @weshaggard @kyulee1 @Priya91 +10302 area-System.Net Remove duplicate addresses from the result returned from getaddrinfo. `getaddrinfo` returns one entry per socket type (raw, datagram, stream), for each address. We don't currently take this into account, resulting in duplicate IP addresses returned from all DNS lookups on Linux. This change filters the list to include only unique IP addresses. It also consolidates the handling of these results in one place (we previously had two separate copies of essentially the same code). Fixes #9764. @CIPop @stephentoub +10303 area-System.Net Fix failure in MulticastInterface_Set_AnyInterface_Succeeds Before sending data to the multicast address, initiate the receive asynchronously. Otherwise, the packets might all be thrown away before we get a chance to receive one. Fixes #9538. +10304 area-Infrastructure Add a new perf job to Jenkins I am adding in a new job that will run our performance tests in Jenkins. Just starting with Windows for now, and will add Linux later. +10305 area-System.Xml Some Xsl tests don't work on non-coreclr platforms Projects affected: - XsltCompiler - System.Xml.Xsl.XslCompiledTransformApi.Tests - System.Xml.Xsl.XslTransformApi.Tests (partially) - XsltScenarios.Tests (partially) - check all xml projects + Serialization.Xml + Serialization.Json test projects Two issues: - System.Runtime.Loader should not be used by project (it's making the project need to use netstandard1.5 instead of 1.3) - few of the libraries won't work on UAP: System.Diagnostics.Process Basically: fix project.json to do what other test projects do and fix the compile/restore errors. +10307 area-System.Net Remove TODO comment from Socket ArgumentValidation tests "The Accept/Connect suggestions in this comment don't make much sense in the current API, as there is no ""disconnect"" API in CoreFx. The End\* suggestions would be great, except that the public Begin_/End_ methods are implemented using generic wrappers over Task-based async methods, and so are not likely to ever pass such tests. It doesn't seem worth complicating the implementation for this. Fixes #7852 " +10308 area-System.Net Change ActiveIssue to PlatformSpecific for closed issue #5832. +10309 area-System.Net Change ActiveIssue to PlatformSpecific for issue 4002. "There's no guarantee on non-Windows platforms that ""localhost"" will resolve to v4 and v6 addresses. Fixes #4002. " +10310 area-System.Security [dev/cms_unix] Encryption with variable keylength ciphers in EnvelopedCms for Linux not supported Ciphers that support variable keylengths with the same OID currently only support encrypting with the default keylength as OpenSSL only allows to change these in the CTX, but the APIs for CMS_ContentInfo of type EnvelopedData for encryption only take the EVP_CIPHER pointer. There's a EVP_CIPHER_CTX_getcipher macro wich returns a pointer to its cipher, but that cipher still retains the default keylength regardless of the changes made to the CTX. As of now the documented cases are RC2 and RC4 which when given a key length other than 0 or the default one will throw a PlatformNotSupportedException. +10311 area-System.Security [dev/cms_unix] Wrong key length when decoding EnvelopedCms in Linux encrypted with RC4 When decoding an DER blob that represents envelopedData using EnvelopedCms.Decrypt incorrectly reports the encryption algorithm's key length to be 0 always instead of the one used to encrypt the message. This currently happens as there is a bug when setting the asn1 parameters in the call to OpenSSL to retrieve the key length. +10314 area-System.Diagnostics EventSource - need to integrate sources from CoreCLR to .Net Native The sources for .Net Native are behind CoreCLR, they need to be updated to receive the latest bug fixes. +10322 area-System.Xml XmlResolver not public I spent a little while trying to port XmlPrime (XQuery 3.0, XSLT 2.0) to .NET Core. The change to make XmlResolver internal and the consequent removal of passing an XmlResolver via XmlReaderSettings is a blocking issue for us. If I have understood the code correctly, XmlReader is now limited to resolving files on the local file system. +10325 area-System.Xml XPathItem constructor not public I have spent a little while attempting to port XmlPrime (XQuery 3.0, XSLT 2.0) library to .NET core. XPathItem's constructor is now internal. This means we cannot derive new XPathItem types. We rely on this to add XPathAtomicValue, XPathFunctionItem, XPathMap and XPathArray which are part of the XQuery 3.1 data model. This would essentially mean we would have to entirely abandon use of System.Xml.XPath. ``` // Constructor is internal because abstract member was removed and it might be back in some time. // If someone would have created derived class without that member and we would add it back // it would break his code. internal XPathItem() { } ``` +10330 area-Infrastructure Windows native arm64 toolset arm64 builds currently use a private toolset which has not been released publicly yet. There are a few spots in the Windows Native build that require a toolset directory be passed in manually. When the toolset is publicly released, we should modify the build to use that instead. arm64 workaround added in https://github.com/dotnet/corefx/pull/10043 +10334 area-System.IO Add tests for newly added APM wrapper methods on System.IO and System.IO.Compression In dev/api branch we added some APM methods to System.IO and System.IO.Compression but we didn't add tests for them. This issue is to track the debt we have for them. related: #10181 +10335 area-Meta Remove boilerplate from test projects We should create some larger supports clauses to help reduce boiler-plate in our test projects. EG: `coreFx.Test.net46` should include tuples not just for net46, but also for net461, net462, etc. This is always the correct thing to do. We should also create some convenience supports clauses that allow tests to say they should apply to all the frameworks that support a particular netstandard version. EG: coreFx.Test.netstandard1.3 should include TFM/RID tuples for net46, netcore50, and netcoreap1.0 (as well as the future versions as stated above). This allows a test that can run everywhere to have minimal boilerplate in the project.json. Only if a test needs to hand-select frameworks does it need to use the more framework-granular clauses as mentioned above. We should also have some simple docs that explain the purpose of frameworks and supports in our test project.json's. /cc @ianhays +10338 area-Meta "Microsoft.NETCore.UniversalWindowsPlatform is missing some packages after ""exclude"": ""compile"" updates" "We updated all packages to hide their implementation dependencies with ""exclude"": ""compile"". We did this because implementation dependencies change regularly and aren't seen as part of the compatibility contract of a package. To ensure that folks don't rely on our packages for their implementation dependencies we use `""exclude"": ""compile""` in the packages. This transition caused at some package to be excluded entirely from the UWP meta-package since they were only referenced transitively. We should consider adding these back unless we specifically want to keep them out of the default reference set. /cc @weshaggard @terrajobst The dropped references are: - System.Collections.NonGeneric - System.Collections.Specialized - System.Threading.Overlapped - System.Xml.XmlDocument ## Workaround For folks that hit missing types from one of these packages after upgrading to Microsoft.NETCore.UniversalWindowsPlatform they can reference the packages directly as follows. ``` json ""System.Collections.NonGeneric"": ""4.0.1"", ""System.Collections.Specialized"": ""4.0.1"", ""System.Threading.Overlapped"": ""4.0.1"", ""System.Xml.XmlDocument"": ""4.0.1"" ``` " +10344 area-System.Net Hang in System.Net.Security.Tests (Windows debug) in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/3118/ Looking through the log, System.Net.Security.Tests is the only test that seems to have started, but not finished. This failed while testing PR #10309, which just changed an attribute on some Sockets tests, so isn't likely to have caused these tests to hang. +10345 area-System.Net Dns.GetHostEntryAsync(IPAddress.None) succeeds on macOS `await Dns.GetHostEntryAsync(IPAddress.None)` throws a SocketException on Windows, but doesn't on Unix. I don't know if the right answer here is that the failing test should be made platform-specific for Windows (i.e. this is expected behavior on Unix) or whether there's a bug in the Unix implementation we need to fix so that this case also fails. +10361 area-System.Diagnostics How to start the system default browser. "The following line doesn't work: Process.Start(""http://localhost:5000""); Microsoft said that that was the official way to start a new browser, a long time ago, at: https://support.microsoft.com/en-us/kb/305703 Is there any multiplatform way to do this now? Will it ever be? " +10365 area-System.Runtime Using AssemblyLoadContext.Default.Resolving event quits with ExecutionEngineException If the `Default.Resolving` event is used to resolve an assembly, the process quits with a `System.ExecutionEngineException`. Here is a repro project (run as console app or xUnit test): [System.Runtime.Loader.Tests.zip](https://github.com/dotnet/corefx/files/385861/System.Runtime.Loader.Tests.zip) ![assemblyloadcontext_resolving](https://cloud.githubusercontent.com/assets/11719160/17173083/8dc5f846-53f0-11e6-8c24-ca71964507e0.png) I'm stuck on this issue here: https://github.com/jcansdale/TestDriven.Net-Issues/issues/7 +10373 area-Infrastructure Update versioning documentation With the distinction between `build-native` and `build-managed`, now the documentation is not reflecting the process to custom a version number. For example, provide explanation about why using OfficialBuildID only affects build-managed and how the native binaries are generating their version according to it. +10374 area-Serialization DataContractJsonSerializer failing in Microsoft.NetCore.UniversalWindowsPlatform 5.2.2 Our library is failing to deserialize blob of data when using Microsoft.NetCore.UniversalWindowsPlatform 5.2.2 in Visual Studio 2015. The deserialization works as expected for 5.1.0 and 5.0.0. No parameterless constructor defined for this object. at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.Activator.CreateInstance(Type type) at System.Runtime.Serialization.XmlFormatReaderGenerator.UnsafeGetUninitializedObject(Type type) at ReadAuthenticationResultFromJson(XmlReaderDelegator , XmlObjectSerializerReadContextComplexJson , XmlDictionaryString , XmlDictionaryString[] ) at System.Runtime.Serialization.Json.JsonClassDataContract.ReadJsonValueCore(XmlReaderDelegator jsonReader, XmlObjectSerializerReadContextComplexJson context) at System.Runtime.Serialization.Json.JsonDataContract.ReadJsonValue(XmlReaderDelegator jsonReader, XmlObjectSerializerReadContextComplexJson context) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.ReadJsonValue(DataContract contract, XmlReaderDelegator reader, XmlObjectSerializerReadContextComplexJson context) at System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson.ReadDataContractValue(DataContract dataContract, XmlReaderDelegator reader) at System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator reader, String name, String ns, DataContract& dataContract) at System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator xmlReader, Int32 id, RuntimeTypeHandle declaredTypeHandle, String name, String ns) at System.Runtime.Serialization.XmlObjectSerializerReadContextComplex.InternalDeserialize(XmlReaderDelegator xmlReader, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle, String name, String ns) at ReadAuthenticationResultExFromJson(XmlReaderDelegator , XmlObjectSerializerReadContextComplexJson , XmlDictionaryString , XmlDictionaryString[] ) at System.Runtime.Serialization.Json.JsonClassDataContract.ReadJsonValueCore(XmlReaderDelegator jsonReader, XmlObjectSerializerReadContextComplexJson context) at System.Runtime.Serialization.Json.JsonDataContract.ReadJsonValue(XmlReaderDelegator jsonReader, XmlObjectSerializerReadContextComplexJson context) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.ReadJsonValue(DataContract contract, XmlReaderDelegator reader, XmlObjectSerializerReadContextComplexJson context) at System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson.ReadDataContractValue(DataContract dataContract, XmlReaderDelegator reader) at System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator reader, String name, String ns, DataContract& dataContract) at System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator xmlReader, Type declaredType, DataContract dataContract, String name, String ns) at System.Runtime.Serialization.XmlObjectSerializerReadContextComplex.InternalDeserialize(XmlReaderDelegator xmlReader, Type declaredType, DataContract dataContract, String name, String ns) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.InternalReadObject(XmlReaderDelegator xmlReader, Boolean verifyObjectName) at System.Runtime.Serialization.XmlObjectSerializer.InternalReadObject(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.ReadObject(XmlDictionaryReader reader) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.ReadObject(Stream stream) at System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject(Stream stream) at Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationResultEx.Deserialize(String serializedObject) at Microsoft.IdentityModel.Clients.ActiveDirectory.TokenCache.Deserialize(Byte[] state) at AdalCacheIssue.MainPage.d__1.MoveNext() +10375 area-System.Runtime Segmentation fault while running System.Runtime.Tests on CI ``` /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release_prtest/bin/tests/AnyOS.AnyCPU.Release/System.Runtime.Tests/netcoreapp1.0/RunTests.sh: line 290: 57218 Segmentation fault (core dumped) ./corerun xunit.console.netcore.exe System.Runtime.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests ``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_release_prtest/1162/consoleFull +10382 area-Infrastructure BUILDTOOLS_OVERRIDE_RUNTIME should copy the PDB files from the CoreCLR output directory if available When performing a build of CoreCLR, the PDBs are outputted in `bin/Product/OS.Arch.Configuration/PDB`, which is one subdirectory lower than where the binaries are placed (`bin/Product/OS.Arch.Configuration`). Unfortunately, these PDBs aren't automatically copied over like the binaries when settings `BUILDTOOLS_OVERRIDE_RUNTIME`, meaning you have to manually them over to get a better stack trace. It would be nice if [this](https://github.com/dotnet/buildtools/blob/acf2600c88c93efd7ead8ba5365405dd417fc2a7/src/Microsoft.DotNet.Build.Tasks/PackageFiles/publishtest.targets#L109) had some additional logic to check for the existence of a `PDB/` directory beforehand and copy that over as well, since it would make things easier for people running tests on mscorlib. cc @mellinoe @ellismg +10392 area-System.Net Fix the flags passed to getnameinfo We were trying to pass `NI_NAMEREQD` to getnameinfo so that it would fail if the address could not be resolved. However, the PAL->Native translation was backward, resulting in the wrong flags getting passed. Fixes #10345. @stephentoub @CIPop +10395 area-System.Security [dev/cms_unix] Missing static tests in EnvelopedCms generated in a Unix system Now that there is an implementation of EnvelopedCms for Unix platforms, the test suite is missing tests where a message is encrypted in a Unix platform and stored statically in a decryption test to make sure that cross platform decryption is possible (static Windows tests are already present in the suite). Tests should include using the following symmetric algorithms: - AES-128, AES-192, AES-256 - RC2 and RC4 (the only key length supported currently is 128 bits) - DES - 3DES And should be encrypted using KeyTransfer certificates. There should be a test using each IssuerAndSerialNumer and SubjectKeyIdentifier as the identifiers for the recipient. +10396 area-System.Security EnvelopedCms missing KeyAgreement tests The test suite is missing tests that perform decryption on a message that uses KeyAgreement certificates for encryption. Currently there's only one test for Encryption using a Diffie-Hellman certificate and the only check that's performed is if after decoding the RecipientInfo is as expected, but there's no check on the contents of the encrypted message currently. Round trip tests and static tests should be added to the suite to ensure not only the metadata is correct but also the contents of the message. +10397 area-System.IO Test failures for System.IO.Compression.ZipFile on OSX In our official builds the following tests are consistently failing on Mac, can you please investigate? CreateFromDirectoryUnicodel ExtractToDirectoryTest_Unicode ExtractToDirectoryUnicode More information can be found on Mission Control. https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fcli~2F/build/20160728.04/workItem/System.IO.Compression.ZipFile.Tests/details/b2e0e5b4-668a-43d3-8fa9-00a352c10b35 +10398 area-System.IO Test failures for FileSystemWatcher on Ubuntu and OSX In our official builds the following tests are failing, can you please investigate? FileSystemWatcher_Directory_Changed_SymLink FileSystemWatcher_Directory_Delete_SymLink FileSystemWatcher_Directory_NotifyFilter_DirectoryName FileSystemWatcher_File_Changed_SymLink More information can be found in Mission Control. https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fcli~2F/build/20160728.04/workItem/System.IO.FileSystem.Watcher.Tests +10399 area-System.Net Test failures for System.Net.Http In our official builds the following tests are failing, can you please investigate? GetAsync_ResponseContentRead_CancelUsingTimeoutOrToken_TaskCanceledQuickly ReadAsStreamAsync_ReadAsync_Cancel_TaskCanceledQuickly NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds More information can be found in Mission Control. https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fcli~2F/build/20160728.04/workItem/System.Net.Http.Functional.Tests +10400 area-System.Text Test failures for System.Text.RegularExpressions on OSX In our official builds the following tests are failing, can you please investigate? RegexGroupTests.Groups More information can be found on Mission Control. https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fcli~2F/build/20160728.04/workItem/System.Text.RegularExpressions.Tests +10409 area-System.Security [dev/cms_unix] EnvelopedCms doesn't support adding originator certificates in the encryption process EnvelopedCms currently throws a platform not supported exception when trying to add originator certificates. Currently OpenSSL doesn't support adding certificates to a newly instantiated CMS_ContentInfo structure, only to one that's read from raw data. It's unviable to do it this way as we'd need a byte blob for each possible symmetric cipher or a parser that would do this. +10421 area-Infrastructure Clean properties and documentation in config.json file - Go through all the options in our config.json file and get them properly documented. For example the difference between `OSGroup`, `TargetOS` and `FilterToOsGroup`. - Update documentation to use the proper properties according to the desire behavior +10422 area-Infrastructure Self-discovery documentation in Build -? Add documentation to the build command when using the argument `-?` on how to interact with the repo and not only providing information about the command per se. +10426 area-Meta New netstandard APIs The below APIs have been added to netstandard1.6 reference assemblies post 1.0 release and they don't exist on the full .NET Framework yet. We either need to remove them temporarily or make them specific to netcoreapp before we ship 1.1. - Regex.Group.Name: https://github.com/dotnet/corefx/pull/9526 cc @Priya91 - UTF8 marshaling: https://github.com/dotnet/corefx/pull/8607 cc @tijoytom @yizhang82 - ~~StreamContext: https://github.com/dotnet/corefx/pull/10036 cc @stephentoub~~ +10428 area-System.Console Using Console.SetOut doesn't affect IsOutputRedirected ... similarly for Input and Error. See : https://github.com/dotnet/corefx/blob/5e36ca02d2594f715da829aafaf7af2b554dfcdf/src/System.Console/src/System/ConsolePal.Unix.cs#L461-L467 The summary describes the behavior I expect which is checking `Console.Out` but the actual behavior is checking `STDOUT` @stephentoub @ianhays +10429 area-Infrastructure Allow netcoreapp1.1 as a valid TestTFM Updates buildtools and BuildTest versions to consume some changes that allow netcoreapp1.1 as a TestTFM. I also modified the CoreFX targets to use netcoreapp1.1 as the new default. to be merged after https://github.com/dotnet/corefx/pull/10423/files @ericstj @weshaggard @karajas +10430 area-Infrastructure New Dev Workflow doesn't detect test failures and still succeeds the build By just running build.cmd with the new workflow, if one or more test fails the build will still be marked as succeeded. When we first saw this we thought it only reproed on non-Windows, but I just got a repro on Windows as well. ![image](https://cloud.githubusercontent.com/assets/13854455/17259606/30d3ab1e-5581-11e6-8823-e8d1e73fe855.png) @maririos +10431 area-System.Diagnostics Add diagnostic tracker API As [discussed](https://github.com/dotnet/corefx/issues/10157#issuecomment-236264347) in issue #10157, we would like a higher-level tracking API for measuring allocations. The goal is to make an API that is similar to Stopwatch: ``` C# namespace System.Diagnostics { public class ManagedAllocationTracker { public static ManagedAllocationTracker StartNew(); public long AllocatedBytes { get; } } } ``` This API will also allow tracking bytes across execution contexts. @KrzysztofCwalina suggested to make it even more general purpose and allow the tracker to track more diagnostic information. +10439 area-Infrastructure Update documentation to build individual csproj for different OSs Update documentation on how to build an individual csproj for the different targets and OS's without needing to rebuild all configurations via the builds file. +10441 area-System.Linq Unverifable code generated by LambdaExpression.Compile for writebacks to structs "Repro: ``` csharp using System; using static System.Linq.Expressions.Expression; struct S { static void Main() { var e = Lambda(Call(typeof(S).GetMethod(""M""), Property(Constant(new S()), ""X""))); var f = e.Compile(); f(); } public static void M(ref bool b) {} public bool X { get; set; } } ``` Emitted IL code: ``` .method private hidebysig static void lambda_method(class [System.Core]System.Runtime.CompilerServices.Closure c) cil managed { .maxstack 2 .locals init (valuetype S V_0, valuetype S V_1, bool V_2) IL_0000: ldarg.0 IL_0001: ldfld object[] [System.Core]System.Runtime.CompilerServices.Closure::Constants IL_0006: ldc.i4.0 IL_0007: ldelem.ref IL_0008: unbox.any S IL_000d: stloc.0 IL_000e: ldloca.s V_0 IL_0010: dup IL_0011: stloc.1 IL_0012: call instance bool S::get_X() IL_0017: stloc.2 IL_0018: ldloca.s V_2 IL_001a: call void C::M(bool&) IL_001f: ldloc.1 IL_0020: ldloc.2 IL_0021: call instance void S::set_X(bool) IL_0026: ret } ``` The issue is in local `V_1` which should be declared as a `valuetype S&` rather than `valuetype S`, causing verification errors on `IL_0011` (S& being stored into S) and on `IL_0012` (instance of the call S instead of S&). It looks the bug is in `AddressOfWriteBack` where the `dup` the address of the struct (left on the stack by `EmitInstance`) is stored in a local declared to the be the value type: ``` csharp private WriteBack AddressOfWriteBack(MemberExpression node) { ... LocalBuilder instanceLocal = null; Type instanceType = null; if (node.Expression != null) { EmitInstance(node.Expression, instanceType = node.Expression.Type); _ilg.Emit(OpCodes.Dup); _ilg.Emit(OpCodes.Stloc, instanceLocal = GetLocal(instanceType)); ``` " +10443 area-System.Security Missing test that tests decryption failure with a certificate with false SKID Missing a test that encrypts a message and then tries to decrypt it using using a certificate that has the same subject key identifier as the recipient but represents a different key pair. This should throw a CryptographicException as the message should be unable to decrypt. +10445 area-System.Runtime System.Runtime.InteropServices.RuntimeInformation fails to install in Classic PCL with NuGet 2.x The `System.Runtime.InteropServices.RuntimeInformation` package will fail to install on NuGet 2.x because there is no `lib\netstandard1.1` version. There is only a `runtimes\win\lib\netstandard1.1` version, but as NuGet 2.x doesn't understand `runtimes`, it'll fail. This affects installing .NET Standard Libraries into a PCL Profile 111 as it's included by `NETStandard.Library` when evaluating dependencies for pcl profiles. To repro: With VS 2013 and NuGet 2.12 - Create a new PCL targeting .NET 4.5, Windows 8 and Windows Phone 8.1 (Profile 111). - In the NuGet package manager, try to install the `S2Geometry` library Actual results ``` Could not install package 'System.Runtime.InteropServices.RuntimeInformation 4.0.0'. You are trying to install this package into a project that targets 'portable-net45+win+wpa81+MonoAndroid10+xamarinios10+MonoTouch10', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author. ``` The `S2Geometry` library is a `netstandard1.0` library and follows the advice of having a dependency on `netstandard.library 1.6.0`. /cc @ericstj +10449 area-Infrastructure CI test crashes not being reported correctly While investigating why a potential codegen bug wasn't discovered in CoreFX Jenkins runs, I discovered that these tests were indeed crashing in outerloop runs, but the crashes were not being reported as failures. For instance, [this job](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_ubuntu14.04_release/105/) reports that there were no test failures, but if you go to the console output, you'll see that the System.Linq.Parallel.Tests actually segfaulted: ``` /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu14.04_release/bin/tests/AnyOS.AnyCPU.Release/System.Linq.Parallel.Tests/netcoreapp1.0/RunTests.sh: line 288: 14092 Segmentation fault (core dumped) ./corerun xunit.console.netcore.exe System.Linq.Parallel.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=failing -notrait category=nonlinuxtests 11:06:24 Finished running tests. End time=18:07:25. Return value was 139 ``` Furthermore, based on [this table](http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_ubuntu14.04_release/105/testReport/), there's no record that these tests were even attempted. +10454 area-System.Collections Virtualizing Observable Collection In .NET Standard 2.0, I would like to see an Virtualizing Observable Collection. Since Windows 8 (WinRT) a new design principle of Microsoft is “fast and fluid”. But in the full .NET Framework no class is available to virtualize the loading of data. There should be for all UI technologies from Microsoft (WPF, UWA, Xamarin.Forms, ASP.NET) a simple built-in way to load data by page (paging). There are some community projects that have addressed this issue, but I think that Microsoft should provide a uniform solution. - [Virtualizing Observable Collection (Andrew Whiddett, Alpha Chi Technology)](https://alphachitech.wordpress.com/2015/01/31/virtualizing-observable-collection/), [NuGet](https://www.nuget.org/packages/VirtualizingObservableCollection), [GitHub](https://github.com/anagram4wander/VirtualizingObservableCollection) - [WPF: Data Virtualization (Paul McClean)](http://www.codeproject.com/Articles/34405/WPF-Data-Virtualization) - [WPF Data Virtualization (DevZest)](https://datavirtualization.codeplex.com/) - [AsyncVirtualizingCollection (Bea Stollnitz)](http://web.archive.org/web/20111201001632/http://bea.stollnitz.com/blog/?p=378) +10455 area-System.Runtime Add an additional overload to `Marshal.Copy` **Issue:** When writing interop code, it may be desirable to copy memory from one location to another. However, there is currently no managed API for doing so. As such, the user must manually implement such a function, which can be error prone and cannot take advantage of certain optimization techniques (such as using SIMD registers to copy aligned 16-byte blocks). **Workaround:** Use `Buffer.MemoryCopy` which is non-optimal for a few reasons (see https://github.com/dotnet/corefx/issues/10455#issuecomment-236372132), manually implement an API for marshalling memory, or `DllImport` the `memcpy` function from the C Runtime (this is non optimal as it does not necessarily exist in the same library on each platform). **Request:** An additional overload to `Marshal.Copy` should be provided in the form of `public static void Copy(IntPtr source, IntPtr destination, int length)`. This would ideally end up as a call to `memcpy` behind the scenes. +10457 area-System.Runtime Operators should be exposed for `System.IntPtr` and `System.UIntPtr` **Issue:** The CLR supports a set of operators for the `System.IntPtr` and `System.UIntPtr` types (`native int`). These operators can be seen in `III.1.5` of the Command Language Infrastructure specification. However, these operators are not supported by some languages (such as C#). **Workaround:** Either directly emit IL or write non-optimal code that does not directly translate to the appropriate IL instructions. **Request::** A set of 'friendly operators' should be provided for languages that do not support the full set of operators for `System.IntPtr` and `System.UIntPtr`. These operators are: `Add`, `Divide`, `Multiply`, `Remainder`, `Subtract`, `Negate`, `Equals`, `Compare`, `And`, `Not`, `Or`, `XOr`, `ShiftLeft`, `ShiftRight`. +10466 area-System.Linq Avoid triggering lazy allocations of argument collections in LambdaCompiler In various places, the `LambdaCompiler` does access properties like `IndexerExpression.Arguments`, potentially causing the nodes to self-mutate to produce a lazily allocated `ReadOnlyCollection`. We can likely avoid this in many places. In addition, various code paths allocate dynamically growing `List` objects, even though the number of elements can be known upfront. We can reduce this. +10470 area-System.Linq Compiled Lambda Expressions and UWP Is it correct that compiled lambda expressions on UWP aren't really compiled and are instead interpreted? If so does that mean that on UWP and other AOT platforms like Xamarin/Unity with no support for IL emit it is faster to use MemberInfo and ConstructorInfo? Related: https://github.com/JamesNK/Newtonsoft.Json/issues/968 --- If normal reflection is faster on AOT platforms I would like to know is if there is a way at runtime to discover that IL emit isn't supported? A way to discover this capability at runtime will allow libraries to use compiled lambda expressions to boost on platforms it is available, and to fallback to traditional reflection on platforms where it isn't, while still using a single netstandard assembly. +10478 area-System.Threading Add x64 LOCK CMPXCHG16b (coreclr) ## 128 bit/16 byte Interlocked.CompareExchange with structs ### Use cases - Lock free algorithms using tagged state reference rather than GC (for ABA problem) - Atomic update for 16 byte structs on heap (e.g. `Span`, `Vector4`) ### Availability - Always - Windows 8.1 x64 (Required) - Always - Windows 10 x64 (Required) - Always - OSX/MacOS (Intel) - Usually - Linux x64 - Usually - Windows 7 x64 ### Performance - Not fast, but generally less than double a 8 byte LOCK CMPXCHG ### Issues - No 32 bit available (I believe?) - Not available on some early AMD x64 (pre-2006) - Alternative may not be available for ARM and other CPUs - Data needs to be 16 byte aligned ### Questions Seems a bit heavyweight for general case of 16 byte struct copy (e.g. `Vector4`) Would prevent tearing when coherence is required, though slow (e.g. [heap based `Span`](https://github.com/dotnet/coreclr/issues/5851#issuecomment-228599829)) But both tagged state reference and `Span` would have a similar data format, so also contain references. | 64 bits | 64 bits | | --- | --- | | Reference | Data | Would require the heap struct to have an alignment (16 bytes), would need to be [first class structs](https://github.com/dotnet/coreclr/blob/master/Documentation/design-docs/first-class-structs.md) for passing. Attribute? Compile time enforcement? ### Api ``` csharp namespace System.Threading { public interface IAlignedAnd16Bytes { } public static class Interlocked { public static T CompareExchange(ref T location1, T value, T comparand) where T : struct, IAlignedAnd16Bytes; } } ``` Struct would need to be TYP_STRUCT16? InterlockedCompareExchange128 https://msdn.microsoft.com/en-us/library/windows/desktop/hh972640%28v=vs.85%29.aspx /cc @CarolEidt @mikedn @jaredpar @jkotas @stephentoub +10481 area-System.Threading Proposal: Atomic (corefx) ## Atomic ### Background x64 has been able to do 128bit/16 byte Interlocked CompareExchanges for a while and its a cpu requirement to be able install Window 8.1 x64 and Windows 10 x64. Its also available on MacOS/OSX and Linux. Its availability would allow for more interesting lock-less algorithms. Was trying to think if there was an easy fallback for https://github.com/dotnet/corefx/issues/10478 but since its struct-based there is nothing to lock. So additionally it would be good to have a type Atomic which mirrors the C++ 11 atomic type, adds some .NET magic and can fallback to locks when the data width is not supported on the platform. ### Proposed Api Interface, struct, class, extenstions (and some reference manipulation types) ``` csharp namespace System.Threading.Atomics { public interface IAtomic where T : IEquatable { T Read(); T Read(MemoryOrder order); void Write(T value); void Write(T value, MemoryOrder order); T Exchange(T value); T Exchange(T value, MemoryOrder order); bool CompareExchangeWeak(T value, T comperand); bool CompareExchangeWeak(T value, T comperand, MemoryOrder order); bool CompareExchangeStrong(T value, T comperand); bool CompareExchangeStrong(T value, T comperand, MemoryOrder order); // MemoryOrder variants skipped for brevity // Unsafe transformations, bypass the atomicity T UnsafeTransform(AtomicTransform transformation); T UnsafeTransform(AtomicTransformParam transformation, T val); // Atomic transformations, Func should be pure and repeatable in case of retry // Pure transform T Transform(Func transformation); T Transform(Func transformation, TState state); // Conditional transforms e.g. Increment but only while < N T Transform(Func transformation, Func condition); T Transform(Func transformation, Func condition, TState state); // Same data transform, apply if value is what is expected T Transform(Func transformation, T comperand); T Transform(Func transformation, TState state, T comperand); } public delegate T AtomicTransform(ref T input); public delegate T AtomicTransformParam(ref T input, T val); public enum MemoryOrder { Relaxed, Consume, Acquire, Release, AcquireRelease, SequentiallyConsistent } } ``` #### Atomic struct ``` csharp [Disallow(Stack,Boxing)] public struct ValueAtomic : IAtomic where T : IEquatable { private T _data; // allocated if not supported lock-free natively private object _lock; [JitIntrinsic] public static bool IsLockFree { get; } public ValueAtomic(T value) { _data = value; _lock = IsLockFree ? null : new object(); } public T Read(); public T Read(MemoryOrder order); public void Write(T value); public void Write(T value, MemoryOrder order); public T Exchange(T value); public T Exchange(T value, MemoryOrder order); public bool CompareExchangeWeak(T value, T comperand); public bool CompareExchangeWeak(T value, T comperand, MemoryOrder order); public bool CompareExchangeStrong(T value, T comperand); public bool CompareExchangeStrong(T value, T comperand, MemoryOrder order); public unsafe T UnsafeTransform(AtomicTransform transformation) => transformation(ref _data); public unsafe T UnsafeTransform(AtomicTransformParam transformation, T val) => transformation(ref _data, val); public T Transform(Func transformation); public T Transform(Func transformation, TState state); public T Transform(Func transformation, Func condition); public T Transform(Func transformation, Func condition, TState state) { //T current = Read(); //while (condition(current, state)) //{ // T next = transformation(current); // T prev = Interlocked.CompareExchange(ref _data, next, current); // if (prev.Equals(current)) // { // return next; // } // current = prev; //} } public T Transform(Func transformation, T comperand); public T Transform(Func transformation, TState state, T comperand); public static implicit operator T(ValueAtomic atom) => atom.Read(); } ``` #### Atomic class (struct wrapper) ``` csharp public class Atomic : IAtomic where T : IEquatable { private ValueAtomic _atom; public static bool IsLockFree => ValueAtomic.IsLockFree; Atomic(T value) { _atom = new ValueAtomic(value); } public T Read() => _atom.Read(); public T Read(MemoryOrder order) => _atom.Read(order); public void Write(T value) => _atom.Write(value); public void Write(T value, MemoryOrder order) => _atom.Write(value, order); public T Exchange(T value) => _atom.Exchange(value); public T Exchange(T value, MemoryOrder order) => _atom.Exchange(value, order); public bool CompareExchangeWeak(T value, T comperand) => _atom.CompareExchangeWeak(value, comperand); public bool CompareExchangeWeak(T value, T comperand, MemoryOrder order) => _atom.CompareExchangeWeak(value, comperand, order); public bool CompareExchangeStrong(T value, T comperand) => _atom.CompareExchangeStrong(value, comperand); public bool CompareExchangeStrong(T value, T comperand, MemoryOrder order) => _atom.CompareExchangeStrong(value, comperand, order); public unsafe T UnsafeTransform(AtomicTransform transformation) => _atom.UnsafeTransform(transformation); public unsafe T UnsafeTransform(AtomicTransformParam transformation, T val) => _atom.UnsafeTransform(transformation, val); public T Transform(Func transformation) => _atom.Transform(transformation); public T Transform(Func transformation, TState state) => _atom.Transform(transformation, state); public T Transform(Func transformation, Func condition) => _atom.Transform(transformation, condition); public T Transform(Func transformation, Func condition, TState state) => _atom.Transform(transformation, condition, state); public T Transform(Func transformation, T comperand) => _atom.Transform(transformation, comperand); public T Transform(Func transformation, TState state, T comperand) => _atom.Transform(transformation, state, comperand); public static implicit operator T(Atomic atom) => atom.Read(); } ``` #### Numeric Extensions ``` csharp public static class AtomicNumericExtensions { // For byte, short, ushort, uint, int, long, ulong, single, double public static int Add(this Atomic atom, int value); public static int Subtract(this Atomic atom, int value); public static int Multiply(this Atomic atom, int value); public static int Divide(this Atomic atom, int value); // For byte, short, ushort, uint, int, long, ulong public static int Increment(this Atomic atom); public static int Increment(this Atomic atom, int max); public static int Decrement(this Atomic atom); public static int Decrement(this Atomic atom, int min); public static int And(this Atomic atom, int value); public static int Or(this Atomic atom, int value); public static int Xor(this Atomic atom, int value); public static int Not(this Atomic atom); } ``` #### Bool Extensions ``` csharp public static class AtomicBoolExtensions { public static bool TestAndSet(this Atomic atom); public static bool Clear(this Atomic atom); } ``` #### Atomic Flagged References ``` csharp public struct FlaggedReference where TRef : class { TRef Reference { get; set; } bool Flag { get; set; } } public static class AtomicFlaggedReferenceExtensions { public static bool TestAndSet(this Atomic> atom); public static bool TestAndSet( this Atomic> atom, TRef expectedReference); public static bool Clear(this Atomic> atom); public static bool Clear( this Atomic> atom, TRef expectedReference); } ``` #### Atomic Versioned References ``` csharp public struct VersionedReference : IEquatable> where TRef : class { TRef Reference { get; set; } long Version { get; set; } public bool Equals(VersionedReference other) => ReferenceEquals(Reference, other.Reference) && Version == other.Version; public static implicit operator TRef(VersionedReference atom) => atom.Reference; } public static class AtomicVersionedReferenceExtensions { public static VersionedReference Increment( this Atomic> atom) where TRef : class; public static VersionedReference Increment( this Atomic> atom, TRef expectedReference) where TRef : class; public static VersionedReference UpdateIncrement( this Atomic> atom, VersionedReference newRefExpectedVersion) where TRef : class; } ``` #### Atomic Tagged References ``` csharp public struct TaggedReference where TRef : class where TTag : struct { TRef Reference { get; set; } TTag Tag { get; set; } } public static class AtomicTaggedReferenceExtensions { public static TaggedReference Update( this TaggedReference atom, TaggedReference newTaggedReference, TRef expectedReference); public static TaggedReference Update( this TaggedReference atom, TRef newReference, TRef expectedReference); public static TaggedReference Update( this TaggedReference atom, TTag newTag, TRef expectedReference); public static TaggedReference Update( this TaggedReference atom, TaggedReference newTaggedReference, TTag expectedTag); public static TaggedReference Update( this TaggedReference atom, TRef newReference, TTag expectedTag); public static TaggedReference Update( this TaggedReference atom, TTag newTag, TTag expectedTag); public static TaggedReference Update( this TaggedReference atom, TRef newReference, TaggedReference expectedTaggedReference); public static TaggedReference Update( this TaggedReference atom, TTag newTag, TaggedReference expectedTaggedReference); // essentially CompareExchange public static TaggedReference Update( this TaggedReference atom, TaggedReference newTaggedReference, TaggedReference expectedTaggedReference); } ``` #### Atomic Double Reference ``` csharp public struct DoubleReference : IEquatable> where TRef : class { TRef ReferenceLeft { get; set; } TRef ReferenceRight { get; set; } public bool Equals(DoubleReference other) => ReferenceEquals(ReferenceLeft, other.ReferenceLeft) && ReferenceEquals(ReferenceRight, other.ReferenceRight); } public static class DoubleReferenceExtensions { public static DoubleReference ExchangeLeft( this Atomic> atom, TRef expectedRight) where TRef : class; public static DoubleReference ExchangeRight( this Atomic> atom, TRef expectedLeft) where TRef : class; } ``` #### Transforms The transforms give the flexibility to compose more complex atomic data structures; for example the `int` `Add`, `Increment` and `Increment` to limit can be implemented as ``` csharp public static int Add(this TAtomic atom, int value) where TAtomic : IAtomic { return atom.UnsafeTransform( (ref int current, int inc) => Interlocked.Add(ref current, inc), value); } public static int Increment(this TAtomic atom) where TAtomic : IAtomic { return atom.UnsafeTransform((ref int v) => Interlocked.Increment(ref v)); } public static int Increment(this TAtomic atom, int value, int max) where TAtomic : IAtomic { return atom.Transform((current) => current + 1, (c, m) => c <= m, max); } ``` Or an entirely new type that hadn't previously supported atomic updates, with new operations ``` csharp public static Decimal Multiply(this TAtomic atom, Decimal value) where TAtomic : IAtomic { return atom.Transform((current, m) => current * m, value); } ``` When the struct was 16 bytes `_data` would need to be 16 byte aligned to allow lock free use with `LOCK CMPXCHG16b` where available. Might be easier to enforce alignment than with https://github.com/dotnet/corefx/issues/10478? `VersionedReference` and `FlaggedReference` should be 16 byte aligned in `Atomic` (don't need to be outside), as should `TaggedReference` when the struct is <= 16 bytes. +10487 area-System.ComponentModel GuidConverter.ConvertTo throwing exception to convert valid guid string to Guid object. "If using the API `GuidConverter.ConvertTo(null, CultureInfo.CurrentCulture, guidStr, typeof(Guid));` we are getting an exception saying. Error Message: {""'GuidConverter' is unable to convert 'System.String' to 'System.Guid'.""} Stack Strace : ``` at System.ComponentModel.TypeConverter.GetConvertToException(Object value, Type destinationType) at System.ComponentModel.TypeConverter.ConvertTo(ITypeDescriptorContext context, CultureInfo culture, Object value, Type destinationType) at System.ComponentModel.GuidConverter.ConvertTo(ITypeDescriptorContext context, CultureInfo culture, Object value, Type destinationType) at GuidConverterRepoClassic.Program.Main(String[] args) ``` It's a consistent repro with valid Guid Strings. " +10488 area-System.Reflection System.Reflection.PortableExecutable.PEReader throws BadImageFormatException "I am trying to read the .PDB file path from an executable with System.Reflection.PortableExecutable.PEReader and it works fine in most cases - but now I have discovered that ReadCodeViewDebugDirectoryData throws a BadImageFormatException when I specify winword.exe as executable because the PDB path in winword.exe is padded with bytes different to '0'. DBH.exe and dumpbin.exe have no problem with that. So, wouldn't it be better to remove that ""throw"", to broaden the usability of PEReader? " +10490 area-System.Net ManagedWebSocket doesn't send payloads if `_isServer` is true Looks like [`System.Net.WebSockets.ManagedWebSocket.WriteFrameToSendBuffer`](https://github.com/dotnet/corefx/blob/b835f230039c4f44944b7fb3f8ce670ebf578ea4/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/ManagedWebSocket.cs#L448) fails to actually write the payload if `_isServer` is set. It copies the payload into the send buffer in the same if-branch that handles masking (which is client-only :smile:). Discovered and fixed this while porting code to ASP.NET, so I'm going to port the fix over to corefx and open a PR. /cc @stephentoub @Tratcher +10491 area-System.Net Server not resolving DNS, only accepts web service URL with IP We have an Ubuntu server set up for our .Net Core application and running Nginx. Our web services URL works when we pass the IP address, but we get an error stating the DNS cannot be found or does not exist when passing the name of the server rather than the IP. Can anyone provide insight on this issue please? +10493 area-System.Globalization Remove P2P pkgproj dependencies to System.Globalization In order to be able to update prerelease packages, we needed to add pkgproj references with #10492 so this issue is to track the work to remove that which should happen on our next prerelease dependency update. +10500 area-System.IO Test failure: System.IO.Tests.DirectoryInfo_Delete/DeletingSymLinkDoesntDeleteTarget Opened on behalf of @sokket The test `System.IO.Tests.DirectoryInfo_Delete/DeletingSymLinkDoesntDeleteTarget` has failed. ``` System.ComponentModel.Win32Exception : No such file or directory ``` Stack Trace: ``` at Interop.libproc.proc_pidpath(Int32 pid) at System.Diagnostics.Process.GetExePath() at System.Diagnostics.Process.ResolvePath(String filename) at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start() at MountHelper.CreateSymbolicLink(String linkPath, String targetPath, Boolean isDirectory) at System.IO.Tests.Directory_Delete_str.DeletingSymLinkDoesntDeleteTarget() ``` Failing configurations: - OSX.1011.Amd64 - AnyCPU-Debug +10501 area-System.IO Test failure: System.IO.Tests.DirectoryInfo_EnumerateFiles_Str/EnumerateWithSymLinkToFile Opened on behalf of @sokket The test `System.IO.Tests.DirectoryInfo_EnumerateFiles_Str/EnumerateWithSymLinkToFile` has failed. ``` System.ComponentModel.Win32Exception : No such file or directory ``` Stack Trace: ``` at Interop.libproc.proc_pidpath(Int32 pid) at System.Diagnostics.Process.GetExePath() at System.Diagnostics.Process.ResolvePath(String filename) at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start() at MountHelper.CreateSymbolicLink(String linkPath, String targetPath, Boolean isDirectory) at System.IO.Tests.Directory_GetFiles_str.EnumerateWithSymLinkToFile() ``` Failing configurations: - OSX.1011.Amd64 - AnyCPU-Debug +10504 area-System.Net Test failure: System.Net.Http.Functional.Tests.CancellationTest/GetAsync_ResponseContentRead_CancelUsingTimeoutOrToken_TaskCanceledQuickly Opened on behalf of @sokket The test `System.Net.Http.Functional.Tests.CancellationTest/GetAsync_ResponseContentRead_CancelUsingTimeoutOrToken_TaskCanceledQuickly` has failed. ``` Elapsed time should be short\r Expected: True\r Actual: False ``` Stack Trace: ``` at System.Net.Http.Functional.Tests.CancellationTest.<>c__DisplayClass2_1.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.CancellationTest.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - Windows.7.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.81.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.10.Core.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.10.Amd64 - AnyCPU-Debug +10511 area-System.Runtime Marshal.ZeroFreeMemoryUTF8 doesn't exist Looks like we didn't fully rename ZeroFreeMemoryUTF8 to ZeroFreeCoTaskMemUTF8. ZeroFreeMemoryUTF8 exists in the reference assembly but not the implementation. Reference assemblies: https://github.com/dotnet/corefx/blob/master/src/System.Runtime.InteropServices/ref/System.Runtime.InteropServices.cs#L662 https://github.com/dotnet/coreclr/blob/99c0410601955552920079a7465c64e725814c2c/src/mscorlib/ref/mscorlib.cs Change to rename in implementation: https://github.com/dotnet/coreclr/commit/42929098cb110c62a2605cdf789239950e85dadf +10513 area-System.Globalization CultureInfo's Payloads on CoreCLR and Desktop Not Compatible PR #9014 attempted to make `System.Globalization.CultureInfo` serializable on CoreCLR. The issue is that the serialization payload generated on CoreCLR is not compatible with the one on Desktop, which caused a `CultureInfo` object cannot make a roundtrip between CoreCLR and full framework. This is due to the fact that `CultureInfo` uses different names for its fields across different platforms. `CultureInfo` should have consistent names for fields, which are being serialized on Desktop, across platforms, including full framework, CoreCLR, and NetNative. https://github.com/dotnet/corefx/issues/8736 is blocked by this issue. +10515 area-System.Security Missing tests veryfing decryption contents of messages in EnvelopedCms The current test suite doesn't have verifying that the contents of the decrypted message is the expected one for the following algorithms: - Round Trips: 1. DES 2. AES-128, AES-192 3. RC2 4. RC4 - Windows generated static tests: 1. DES 2. RC2 3. RC4 +10516 area-System.Diagnostics StandardOutput and StandardError receive an extra line On Linux, compared to other languages, say Python, .NET is appending (somehow) an extra line on redirected StandardOutput and StandardError. For example, if I execute the following script: ``` bash #!/bin/sh exit 42 ``` In Python (e.g., subprocess.check_output) I receive, as I would expect, an empty string. In .NET, however, if I redirect through ProcessStartInfo, I receive an event in my OutputDataReceived handler with an empty string (and the my code cannot reject empty string out-of-hand since it may be a legal part of output). +10519 area-Infrastructure How to skip build Windows_NT OS Group while building inside Linux. It seems that Windows_NT binaries are built even with `-BuildAllOSGroups:False -FilterToOSGroup:Linux`: ``` $ ./build-managed.sh -binaries -SkipTests -OSGroup:Linux -TargetOS:Linux -BuildAllOSGroups:False -FilterToOSGroup:Linux ... $ ls bin/ AnyOS.AnyCPU.Debug/ Linux.AnyCPU.Debug/ obj/ ref/ Unix.AnyCPU.Debug/ Windows_NT.AnyCPU.Debug/ ``` Is there any other option to skip Windows_NT binaries? +10520 area-System.Linq Expression interpreter can avoid allocating (empty) arrays Did a little performance tracing session for simple expressions evaluated using the interpreter. Not surprising, a big source of allocations is for `object[]` instances passed to `Invoke` methods in reflection. I'm opening this issue to track some possible improvements in this area. Instructions for `Call`, `New`, etc. seem to allocate an empty `object[]` in case there are no arguments, in order to call the `Invoke` method through reflection. We should be able to avoid these allocations here and pass `Array.Empty()` instead. ~~In addition, we may be able to reduce `object[]` allocations in general, given that reflection also copies the argument array in `CheckArguments`, by caching a limited set of reusable `object[]` buffers for small lengths. I don't think `System.Buffers` fits the bill unfortunately, because it will hand out buffers of a minimum size or larger. Unless reflection would be able to operate on `ArraySegment` to 'trim' the view over a rented array, we'd have to keep our own cache. An obvious question is the trade-off between allocating arrays and the (synchronization) cost of renting them from a pool.~~ +10523 area-System.Data Question about database connection I know MS Sql Server is only running in Windows platform. But if it's possible to run my web app in Linux and connect to my database in Windows? I got an error message when I tried to use **SqlClient** in my application: > Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NotSupportedException: The keyword 'integrated security' is not supported on this platform. +10524 area-Meta Debugging native/ c code in vs2015 .Net core RC2 . "Hi, I am using a .Net Core Console App using Visual Studio 2015 update 2 on windows machine. I am using a package ""pack1""(managed code) in this console application which in turn calls native / c code dll. I am able to step into pack1 code, but i am not able to step into my native code. Tried giving symbol path to native code pdb file , enabled native and managed code compatibility option,tried putting breakpoint into the native c source code directly, also tried to step into c code from managed code, but none of them seem to work. Can some one please help me with this / point to any documentation ? sample Project.json file : { ""version"": ""1.0.0-*"", ""buildOptions"": { ""emitEntryPoint"": true, ""defines"": [ ""DEBUG"" ] }, ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.0-rc2-3002702"" }, ""pack1"": ""1.0.0.0"" }, ""frameworks"": { ""netcoreapp1.0"": { ""imports"": ""dnxcore50"" } }, ""configurations"": { ""debug"": { } } } Thanks and Regards, Prashanth " +10525 area-System.Net Consider adding a LinkHeaderValue/Parser Lots of APIs are now using Link headers. They are kind of an annoyance to parse manually (and do it properly.) It would be great if the System.Net.Http library offered built-ins for these. +10526 area-System.ComponentModel Consider merging DisplayFormatAttribute into DisplayAttribute We use `DisplayFormatAttribute` heavily to provide annotations which can be consumed by several kind of controls like grids, text contents, etc. The issue with this attribute is that it's not localizable. In one of .NET's earlier versions the _legacy_ `DisplayName`, `Description`, and `Category` attributes have been merged into the new `DisplayAttribute`, so that they can be nicely localized. However, at that point for some reason, the `DisplayFormatAttribute` had been kept separately. It would be important to merge it into `DisplayAttribute` too, because it has at least two fields which are important to localize: ``` public string DataFormatString { get; set; } public string NullDisplayText { get; set; } ``` These should definitely be part of `DisplayAttribute` I think. +10527 area-System.ComponentModel Allow EditableAttribute for classes I have a scenario where I need to specify `EditableAttribute` on a class, instead of applying it separately to every property. Is there any drawback of allowing this attribute for classes too? +10528 area-System.Collections "Add ""slicing"" APIs to ArraySegment" ArraySegment could be much more useful if it had the following additional APIs. I propose that we add these members to ArraySegment: ``` csharp namespace System { partial struct ArraySegment { public T this[int index] { get; set; } public static implicit operator ArraySegment(T[] array); public static explicit operator T[](ArraySegment segment); public T[] ToArray(); public int Length { get; } public ArraySegment Slice(int index, int count); public ArraySegment Slice(int index); public void CopyTo(T[] destination); public void CopyTo(T[] destination, int destinationIndex); public void CopyTo(ArraySegment destination); public static ArraySegment Empty { get; } } } ``` +10530 area-System.Reflection Restore Reflection API (.NET Core) Expose all the reflection APIs S.P.CoreLib for CoreCLR. For the exact API list refer to the tracking spreadsheet. We need to essentially expose all the APIs in S.P.CoreLib and then revise the contracts (i.e. move S.Reflection APIs into System.Runtime). cc @AtsushiKan +10533 area-Infrastructure CoreFx Build Native On Free BSD 10.1 Fails "Hi, I could build coreclr successfully, then tried to build corefx, but I had the following : root@:~/dotnet/corefx # **uname -a** FreeBSD 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov 11 21:02:49 UTC 2014 root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64 root@:~/dotnet/corefx # **./build-native.sh** Unsupported OS 'FreeBSD' detected. Downloading ubuntu-x64 tools. Installing dotnet cli... Restoring BuildTools version 1.0.26-prerelease-00629-09... ELF binary type ""0"" not known. /root/dotnet/corefx/init-tools.sh: line 78: /root/dotnet/corefx/Tools/dotnetcli/dotnet: cannot execute binary file: Exec format error ERROR: Could not restore build tools correctly. See '/root/dotnet/corefx/init-tools.log' for more details. Initializing BuildTools... /root/dotnet/corefx/init-tools.sh: line 84: /root/dotnet/corefx/packages/Microsoft.DotNet.BuildTools/1.0.26-prerelease-00629-09/lib/init-tools.sh: No such file or directory ERROR: An error occured when trying to initialize the tools. Please check '/root/dotnet/corefx/init-tools.log' for more details. root@:~/dotnet/corefx # **cat init-tools.log** Running: /root/dotnet/corefx/init-tools.sh Installing 'https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/1.0.0-preview2-002733/dotnet-dev-ubuntu-x64.1.0.0-preview2-002733.tar.gz' to '/root/dotnet/corefx/Tools/dotnetcli/dotnet.tar' Running: /root/dotnet/corefx/Tools/dotnetcli/dotnet restore ""/root/dotnet/corefx/Tools/1.0.26-prerelease-00629-09/project.json"" --no-cache --packages /root/dotnet/corefx/packages --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json Running: /root/dotnet/corefx/packages/Microsoft.DotNet.BuildTools/1.0.26-prerelease-00629-09/lib/init-tools.sh /root/dotnet/corefx /root/dotnet/corefx/Tools/dotnetcli/dotnet /root/dotnet/corefx/Tools " +10534 area-System.Security Certificate validation when using cURLHandler should look at trusted user store Currently, observation is that when using CurlHandler, we look only at the system's root certificate store for trusted CA certificates We should also have the ability to look at the certs that are stored in ~/.dotnet/corefx/cryptography/x509certificates/*\* (i.e., the user certificate store) to determine whether an endpoint is trusted Scenario: - Install a self-signed root certificate into the corefx user root store - Hit a https endpoint using the HttpClient which uses a server certificate signed by the self-signed root certificate - Observe that the request fails - Install the self-signed root certificate into the root store - Observe that the request passes now +10544 area-System.Security AesCng much slower than AesCryptoServiceProvider I get the following timings on Windows 2012R2 with freshly-installed .NET 4.6.2 final and running in 64bit release mode (via 64bit LinqPad): ``` CNG 00:00:02.3278742 CSP 00:00:00.0392550 CNG 00:00:02.3332983 CSP 00:00:00.0408160 CNG 00:00:02.2949133 CSP 00:00:00.0398848 CNG 00:00:02.2959543 CSP 00:00:00.0392522 ``` The quick & crude benchmark code: https://gist.github.com/anonymous/39929346722e641027b313a45a4f44ab Is this perf difference intentional/expected? +10547 area-Infrastructure ExternalPackages versions.props lists incorrect versions "https://github.com/dotnet/corefx/blob/master/pkg/ExternalPackages/versions.props lists the win10 non-aot packages as External, when it should list the aot packages. We do not ship the non-aot packages from TFS, so this file should be updated for correctness to: ``` 4.0.1-$(ExternalExpectedPrerelease) 4.0.1-$(ExternalExpectedPrerelease) 4.0.1-$(ExternalExpectedPrerelease) ``` This does raise the question of how it's currently functioning without errors, since it's looking for a package that does not exist. @jhendrixMSFT @chcosta " +10549 area-System.Reflection System.Reflection.Metadata should expose a way to get the containing assembly for a given type. Given a type handle you should be able to easily get a handle to the containing assembly. This is required to compute the AssemblyQualifiedName of a type when you only have a type handle. +10550 area-System.Diagnostics Missing stdout line while redirect process stdout I make a console app that using Diagnostic.Process to call `/usr/bin/git` with argument `version`, then redirect STDOUT and STDERR to get the git version info. However, i got empty string from STDOUT/STDERR of git version sometime. In order to investigate, i made a console app that siting in a loop invoke `git version` until it get empty output from `git version`. I also made a bash script that also invoke `git version` in a loop till it hit empty then exit, so i can figure out this is a git issue or dotnet core issue. So far, the test bash script is able to run for hours without find `git version` return empty. However my dotnet core app sometime will get empty string on STDOUR redirect, which make me feel this is more like a dotnet core issue. here is the code of my console app that using Diagnostic.Process to invoke process and redirect STDOUT, [gitversion.txt](https://github.com/dotnet/corefx/files/400242/gitversion.txt) Can someone help me take a look, did i do something wrong in the code or it's a real issue with dotnet core? I am able to repro on Ubuntu 14 and 16, not repro on windows, haven't try OSX since i don't have a Mac. Thanks, +10555 area-System.Collections ARM64: System.Collections.Concurrent tests hanging I've had this happen twice now. The full test run is getting stuck at System.Collections.Concurrent and not proceeding any further. We should try to repro this with better logging and see if we can diagnose the issue outside of a limited-logging scenario. +10556 area-Meta Netstandard contract list needs to be updated to be correct. https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md needs to be updated to represent what is actually shipped. There are some things in there that are not correct like the PInvoke contract that never shipped and was removed. +10561 area-System.Linq Add benchmark suite for System.Linq.Expressions I'm starting to look into some performance aspects of the expression tree interpreter and will need a `Performance` test project for it. An attempt to create it using a carbon copy from other projects with such a `Performance` project ran into some issues on referencing the `pkg`, so I'm adding an issue to track progress on this. If anyone with more awareness of the benchmark infrastructure could help out here, that'd be useful too. +10563 area-Infrastructure Needs to refactor code for option 'restrict-proj' in run-test.sh "run-test.sh accepts a parameter, regex for an option restrict-proj. The regex is used as $TestSelection in run_test(). ``` bash # $1 is the path to the test folder run_test() { testProject=`basename $1` # Check for project restrictions if [[ ! $testProject =~ $TestSelection ]]; then echo ""Skipping $testProject"" exit 0 fi // ... } ``` Above function, run_test() executes after run_all_tests(). ``` bash # $1 is the name of the platform folder (e.g Unix.AnyCPU.Debug) run_all_tests() { for testFolder in ""$CoreFxTests/$1/""* do run_test $testFolder & pids=""$pids $!"" numberOfProcesses=$(($numberOfProcesses+1)) if [ ""$numberOfProcesses"" -ge $maxProcesses ]; then wait_on_pids ""$pids"" numberOfProcesses=0 pids="""" fi done # Wait on the last processes wait_on_pids ""$pids"" pids="""" } ``` I think it's better that moving $TestSelection in run_test() into run_all_tests() and then using it with command 'find'. I'd like to know your opinion. " +10566 area-System.Net Dotnet core's sockets don't seem to have access to the SocketAPMExtensions I've made [a github repo](https://github.com/johnnymo87/socket-apm-extensions) to demo my issue. Copying the readme here ... According to my understanding of the conversation in [this issue](https://github.com/dotnet/corefx/issues/2936), dotnet core supports APM methods for sockets, such as `BeginConnect` and `EndConnect`. I believe the support for it appears [here](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Net/Sockets/SocketAPMExtensions.cs) in the source code. I must be doing something wrong, however, because I am unable to access those methods in my code. This repo has the necessary code to reproduce the issue. ``` bash docker-compose build ``` I get the following: ``` bash Building app Step 1 : FROM microsoft/dotnet:latest ---> 3502ab7a3654 Step 2 : COPY . /app ---> d129994eb685 Removing intermediate container a6ad53b0061f Step 3 : RUN dotnet restore /app ---> Running in a04726ff78a2 log : Restoring packages for /app/project.json... log : Writing lock file to disk. Path: /app/project.lock.json log : /app/project.json log : Restore completed in 608ms. ---> b3934c2e0aeb Removing intermediate container a04726ff78a2 Step 4 : RUN dotnet build /app ---> Running in 38dfed6ca88a Project app (.NETStandard,Version=v1.6) will be compiled because expected outputs are missing Compiling app for .NETStandard,Version=v1.6 /usr/share/dotnet/dotnet compile-csc @/app/obj/Debug/netstandard1.6/dotnet-compile.rsp returned Exit Code 1 /app/Program.cs(15,35): error CS1061: 'Socket' does not contain a definition for 'BeginConnect' and no extension method 'BeginConnect' accepting a first argument of type 'Socket' could be found (are you missing a using directive or an assembly reference?) /app/Program.cs(16,56): error CS1061: 'Socket' does not contain a definition for 'EndConnect' and no extension method 'EndConnect' accepting a first argument of type 'Socket' could be found (are you missing a using directive or an assembly reference?) Compilation failed. 0 Warning(s) 2 Error(s) Time elapsed 00:00:01.2293181 ``` +10567 area-Infrastructure Running performance tests requires specifying the OS "

UPDATE

Go further down the chain for the changes to the issue.
Attempting to run performance tests on my machine results in ""error: Xunit performance package was not found"", even though I have the required options installed in VS: ![image](https://cloud.githubusercontent.com/assets/5569508/17409563/aa21d390-5a24-11e6-9b91-0d48a67e96a9.png) I've attempted uninstalling/reinstalling the feature, VisualStudio itself, and onto a new machine too. Are the instructions incomplete or something? Or what might I be doing wrong? I do have VS2013 Community installed... " +10570 area-Serialization [Add Test] T:System.Xml.Serialization.XmlSerializerFactory +10572 area-Serialization [Add Test] T:System.Xml.Serialization.XmlReflectionImporter T:System.Xml.Serialization.XmlMapping T:System.Xml.Serialization.XmlMemberMapping T:System.Xml.Serialization.XmlMembersMapping T:System.Xml.Serialization.XmlReflectionImporter T:System.Xml.Serialization.XmlReflectionMember T:System.Xml.Serialization.XmlTypeMapping +10573 area-Serialization [Add Test] T:System.Xml.Serialization.XmlSchemaImporter T:System.Xml.Serialization.ImportContext T:System.Xml.Serialization.XmlSchemaEnumerator T:System.Xml.Serialization.XmlSchemaExporter T:System.Xml.Serialization.XmlSchemaImporter T:System.Xml.Serialization.SoapSchemaMember T:System.Xml.Serialization.XmlSchemas +10574 area-Serialization [Add Test] T:System.Xml.Serialization.XmlSerializerAssemblyAttribute +10575 area-Serialization [Add Test] T:System.Xml.Serialization.XmlSerializerVersionAttribute +10576 area-Serialization Add API T:System.Xml.Serialization.XmlSerializationGeneratedCode T:System.Xml.Serialization.XmlSerializationGeneratedCode T:System.Xml.Serialization.XmlSerializerImplementation +10577 area-Serialization [Add Test] T:System.Xml.Serialization.XmlSerializationWriter T:System.Xml.Serialization.XmlSerializationWriter T:System.Xml.Serialization.XmlSerializationReader T:System.Xml.Serialization.XmlSerializationGeneratedCode T:System.Xml.Serialization.XmlSerializerImplementation +10578 area-Serialization [Add Test] EventArgs Types T:System.Xml.Serialization.XmlDeserializationEvents T:System.Xml.Serialization.UnreferencedObjectEventArgs T:System.Xml.Serialization.XmlAttributeEventArgs T:System.Xml.Serialization.XmlElementEventArgs T:System.Xml.Serialization.XmlNodeEventArgs +10579 area-Serialization [Add Test] T:System.Xml.Serialization.SoapReflectionImporter T:System.Xml.Serialization.SoapAttributeAttribute T:System.Xml.Serialization.SoapAttributeOverrides T:System.Xml.Serialization.SoapAttributes T:System.Xml.Serialization.SoapElementAttribute T:System.Xml.Serialization.SoapEnumAttribute T:System.Xml.Serialization.SoapIgnoreAttribute T:System.Xml.Serialization.SoapIncludeAttribute T:System.Xml.Serialization.SoapReflectionImporter T:System.Xml.Serialization.SoapTypeAttribute +10580 area-Serialization [Add Test] T:System.Xml.Serialization.IXmlTextParser +10581 area-Serialization [Add Test] T:System.Xml.Serialization.CodeIdentifier T:System.Xml.Serialization.CodeIdentifier T:System.Xml.Serialization.CodeIdentifiers +10583 area-System.IO Implement File.Replace() as a documented safe atomic API See the real framework. ``` namespace System.IO { public static class File { public static void Replace(string source, string destination, string backup); public static void Replace(string source, string destination, string backup, bool ignoreMetadataErrors); } } ``` ## Implementation On Windows this should directly delegate to the `ReplaceFile()` API which is [guaranteed atomic wrt `source` and `destination` by this wording of the win32 API](https://msdn.microsoft.com/en-us/library/windows/desktop/hh802690%28v=vs.85%29.aspx#applications_updating_a_single_file_with_document-like_data). On POSIX (which, really, Windows should hurry up and start implementing… grr…), it should: 1. If `backup` is not `null`: 1. `unlink(backup)`, ignoring `ENOENT` error but for other failures throw `IOException`. 2. `link(destination, backup)` and if that fails throw `IOException`. 2. If `backup` is `null` 1. `stat(destination)`, if `ENOENT` throw `IOException`. 3. `rename(source, destination)` and if that fails throw `IOException`. This guarantees that the file at `destination` never ceases to exist even with program termination or power failure. The `backup` feature is best effort on POSIX any existing file is not guaranteed to be restored if the later steps fail. However, if `backup` is specified but does not exist, failure at a later step will not cause any data loss—it will just leave behind a second link to `destination` at the path `backup`. And a future call/retry would just wipe away and recreate this `backup`. Example C for all but step 2 which I should fix: https://gist.github.com/binki/e40182e4098d9714a609918908c623b8 , see [related mono bug #43062 I also opened](https://bugzilla.xamarin.com/show_bug.cgi?id=43062). +10586 area-Serialization [ReflectionBasedXmlSerializer] To Support Types with IsSequence == true Currently the reflection based method treat this kind of type as normal types. But potentially we can do some optimization for types that have ordered properties. Searching `#10586` in https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationReader.cs#L1181 would show the places to be fixed. +10587 area-Serialization [ReflectionBasedXmlSerializer] To Support SpecialMapping Types Having DerivedMappings See https://github.com/dotnet/corefx/blob/32c4013a5d750c1c6a5b240d37a689991a479097/src/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationReader.cs#L990 +10588 area-Serialization [ReflectionBasedXmlSerializer] To Support ArrayMapping Types Having ChoiceIdentifier see https://github.com/dotnet/corefx/blob/32c4013a5d750c1c6a5b240d37a689991a479097/src/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationReader.cs#L1132 +10589 area-Serialization [ReflectionBasedXmlSerializer] To Support Serializing XmlSchemaObject XmlSchemaObject is currently not in the contract. If we add it into the contract, we need to work on this issue. +10590 area-Serialization [ReflectionBasedXmlSerializer] To Support special.TypeDesc.CanBeAttributeValue == true Searching `#10590` in https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationReader.cs would show the code path to be implemented. +10591 area-Serialization [ReflectionBasedXmlSerializer] Add Tests for member.CheckSpecified == SpecifiedAccessor.ReadWrite Please have a look at the comment at https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationReader.cs#L1212. We'd like to add tests for that code path. +10592 area-Serialization [ReflectionBasedXmlSerializer] To Support text.Mapping being SpecialMapping +10593 area-Serialization Add Test project for Running XmlSeriazlier Tests in ReflectionOnly Mode We added test projects for running DataContractSerializer and DataContractJsonSerializer's tests in reflection mode, see https://github.com/dotnet/corefx/pull/11480. We should do the same thing for XmlSerizlier. +10594 area-Serialization Add Reflection Based (De-)Serialization Support for XmlSerializer The changes are to enable XmlSerializer to do (de-)serialization via reflection. /cc: @mconnew @roncain @zhenlan @huanwu +10595 area-Serialization [ReflectionBasedXmlSerializer] Enable Reflection Serialization in Net Native. +10596 area-Infrastructure Update SNI package used for testing SqlClient The sqlclient src package uses the last stable version of the runtime sni package, so I updated the hard-coded SNI versions used in testing to be the latest prerelease version. This way we're actually testing the latest SNI version that we're publishing. I also updated the ExternalPackages props to be correct for clrcompression and updated them for the new SNI package. @jhendrixMSFT @chcosta +10597 area-System.Data System.Data.SqlClient depends on the stable SNI package The beta meta SNI package (runtime.native.system.data.sqlclient.sni) depends directly on the stable RID specific SNI packages, when it should depend on Microsoft.Net.Core.Targets like runtime.native.system.io.compression does. This is an issue because System.Data.SqlClient depends on the stable version of the SNI package which is fixed to depend on the stable SNI package: ``` System.Data.SqlClient/latest => runtime.native.system.data.sqlclient.sni/stable => runtime.win7-x86.system.data.sqlclient.sni/stable System.Data.SqlClient/latest => runtime.native.system.data.sqlclient.sni/stable => runtime.win7-x64.system.data.sqlclient.sni/stable ``` So this means we're not testing the latest/prerelease/beta versions of SNI anywhere. This has the potential to cause some confusion or late-testing errors when we snap to the next stable version and we're all of a sudden testing any changes made to SNI since the previous stable version. It'd be nice to have SNI follow the native asset pattern set by the other packages (HTTP, compression, Security) to avoid potential confusion, so it would look like this instead: ``` System.Data.SqlClient/latest => runtime.native.system.data.sqlclient.sni/stable => Microsoft.Netcore.Targets/stable => (restoration uses the latest targets package) => runtime.win7-x86.system.data.sqlclient.sni/latest System.Data.SqlClient/latest => runtime.native.system.data.sqlclient.sni/stable => Microsoft.Netcore.Targets/stable => (restoration ues the latest targets package) => runtime.win7-x64.system.data.sqlclient.sni/latest System.Data.SqlClient/latest => runtime.native.system.data.sqlclient.sni/stable => Microsoft.Netcore.Targets/stable => (restoration uses the latest targets package) => runtime.win10-arm64.system.data.sqlclient.sni/latest ``` I've worked around this for now by explicitly adding the latest SNI version to the project.json for the SqlClient tests: https://github.com/dotnet/corefx/pull/10596, but that's not an ideal solution since the product is still using the stable SNI and we're just overwriting it when testing. @ericstj @weshaggard @mellinoe +10600 area-System.Net System.Net.* Tests require special compilation rules because of System.Net.Internals System.Net.\* Tests utilizes an internal namespace, System.Net.Internals. Certain NETStandard.Library dependencies like System.Net.Sockets need to be excluded from compile (they are a dependency of xunit rtm). +10603 area-System.Reflection Test failure for System.Reflection.Metadata on ARM. Three tests fail. ``` Starting: System.Reflection.Metadata.Tests System.Reflection.Metadata.Ecma335.Tests.InstructionEncoderTests.LoadConstantR8 [FAIL] System.DataMisalignedException : A datatype misalignment was detected in a load or store instruction. Stack Trace: at System.Reflection.BlobUtilities.WriteDouble(Byte[] buffer, Int32 start, Double value) at System.Reflection.Metadata.Ecma335.Tests.InstructionEncoderTests.LoadConstantR8() System.Reflection.Metadata.Ecma335.Tests.InstructionEncoderTests.LoadConstantR4 [FAIL] System.DataMisalignedException : A datatype misalignment was detected in a load or store instruction. Stack Trace: at System.Reflection.BlobUtilities.WriteSingle(Byte[] buffer, Int32 start, Single value) at System.Reflection.Metadata.Ecma335.Tests.InstructionEncoderTests.LoadConstantR4() System.Reflection.Metadata.Decoding.Tests.CustomAttributeDecoderTests.TestCustomAttributeDecoder [FAIL] System.DataMisalignedException : A datatype misalignment was detected in a load or store instruction. Stack Trace: at System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1.DecodeArgument(BlobReader& valueReader, ArgumentTypeInfo info) at System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1.DecodeFixedArguments(BlobReader& signatureReader, BlobReader& valueReader, Int32 count) at System.Reflection.Metadata.Ecma335.CustomAttributeDecoder`1.DecodeValue(EntityHandle constructor, BlobHandle value) at System.Reflection.Metadata.Decoding.Tests.CustomAttributeDecoderTests.TestCustomAttributeDecoder() Finished: System.Reflection.Metadata.Tests === TEST EXECUTION SUMMARY === System.Reflection.Metadata.Tests Total: 421, Errors: 0, Failed: 3, Skipped: 0, Time: 14.782s Finished running tests. End time=13:54:35. Return value was 3 ``` Target: RASP3, Ubuntu Mate 16.04, ARM CoreCLR - Debug & Release - Commit: 2b191fa038802f22451640b3eac13cf87355e643 CoreFx - Debug & Release - Commit: 79a924855514877f5b8e8379e553e8b98293a30f +10606 area-System.ComponentModel Potential issue with RegularExpressionAttribute and differing regex flavors client vs. server side "The System.ComponentModel.DataAnnotations.RegularExpressionAttribute is used for client side runtime value checking in ASP.NET Core websites.\* The client side validation is run via jquery.validation.* JavaScript and .Net (Core) use different RegEx engines with different flavors, though, and for example named capturing groups, working as ""`(?regex)`"" in C# code, will _not_ work on the javascript side. This leads to validation silently not taking place on client-side, there's neither an error during compilation of the C# code nor during execution in browser (took me some minutes to figure out what was going on…). It would be nice if there was either some kind of warning, or—even nicer but a lot harder to manage—an automatic transformation step that makes C# side regexes work even when they're used in the definition for the client side validation, so you don't have to keep the regex around in 2 flavors (for client and server side validation). *as per https://docs.asp.net/en/latest/tutorials/first-mvc-app/validation.html " +10610 area-Infrastructure Cannot Build For FreeBSD "While trying to follow the directions here: https://github.com/dotnet/coreclr/blob/master/Documentation/building/freebsd-instructions.md I keep getting the same error Building .NET Core on FreeBSD 10.1 and this is the second install of FreeBSD I've seen this with so far. Here is the console output I am getting: root@sawzall:/usr/home/jbennett/git/corefx # ./build-packages.sh Unsupported OS 'FreeBSD' detected. Downloading ubuntu-x64 tools. Installing dotnet cli... Restoring BuildTools version 1.0.26-prerelease-00704-01... ELF binary type ""0"" not known. /usr/home/jbennett/git/corefx/init-tools.sh: line 78: /usr/home/jbennett/git/corefx/Tools/dotnetcli/dotnet: cannot execute binary file: Exec format error ERROR: Could not restore build tools correctly. See '/usr/home/jbennett/git/corefx/init-tools.log' for more details. Initializing BuildTools... /usr/home/jbennett/git/corefx/init-tools.sh: line 84: /usr/home/jbennett/git/corefx/packages/Microsoft.DotNet.BuildTools/1.0.26-prerelease-00704-01/lib/init-tools.sh: No such file or directory ERROR: An error occured when trying to initialize the tools. Please check '/usr/home/jbennett/git/corefx/init-tools.log' for more details. Obviously, my FreeBSD 10.1 install can't run Linux 64-bit binaries here so I am wondering how would I get this to build without the tools? " +10621 area-System.Security [dev/cms_unix] Data corruption bug on round trip in EnvelopedCms for Unix Currently test DecryptTests.Decrypt_EnvelopedWithinEnveloped fails in the round trip with a data corruption. When the message gets encrypted and decrypted, the output message is the same with the exception of one byte that gets inserted. Behaviors observed - The inserted byte is always the same and in the same position if the test is run several times. It seems that the introduced is a 0x0D in place of the 154th byte. (The inserted byte could also be 0xD0, but it's unlikely as it wouldn't be byte aligned, but given that the insertion looks like ...760A9AE94... to ...760D0A9AE94... it is hard to determine which of the two was inserted and as I haven't been able to reproduce the error with any other message there's no easy way of determining it). This hints it could be a padding error. - If trailing bytes are deleted from the message, the insertion is kept consistent, both the byte inserted and the offset. - If bytes are deleted from the start of the sequence, the inserted byte is consistent but it shifts back by the number of bytes deleted from the message. - It seems like it has nothing to do with block or length as a random message of the same length could be encrypted and decrypted correctly. - There are tests trying to encrypt longer and shorted messages so it continues to seem unlikely to be a length/alignment problem. Still have to try: - Changing certificate used - Changing cipher +10629 area-System.Net HttpClient: Use string.Concat over string.Format `Concat` is cheaper than `Format` (~2x faster in 1,000,000 iteration microbenchmark on x64). +10631 area-System.Net HttpClient: Faster whitespace detection and remove internal dead code Two commits (preferably merged as separate commits): 1. **Faster whitespace detection**: Instead of allocating a List with the four allowed whitespace chars and searching the list, just check if the char is one of the four values. ~6-7x improvement in 1,000,000 iteration microbenchmark. 2. **Remove internal dead code**: Remove dead code and namespace import cleanup. +10632 area-System.Net Make HttpKnownHeaderNames public Any reason why it's internal? Perhaps it's all the unsafe stuff going on at _HttpKnownHeaderNames.TryGetHeaderName.cs_ but at least the constants could be factored out and exposed - they can be very useful. See for example: http://stackoverflow.com/questions/11037004/asp-mvc-are-there-any-constants-for-the-default-http-headers. +10633 area-System.Data Instrument ADO.NET/System.Data with EventCounters (replacement for PerformanceCounters) In .NET Framework ADO.NET publishes performance counters; these have been removed in .NET Core because they're not cross-platform. There are several conversations about bringing back some form of cross-platform performance counters, see #4577, #7833, probably based on EventCounter. This also needs to happen for ADO.NET. +10649 area-System.Net WebProxy implementaion I was making use of the WebProxy contructor- WebProxy(String, Int32). Could you tell me how to substitute for this? @davidsh Thanks +10651 area-Infrastructure Updating CoreClr dependencies to servicing-24408-03 /cc @dotnet/corefx-contrib +10654 area-Infrastructure Typo NodoReuse introduced with new build workflow "See build-\* cmd files in CoreFX and Config.json. There is a property defined named ""MsBuildNodoReuse"" and the build scripts are hard coding nodoReuse parameters as well. @maririos " +10656 area-System.Xml Support System.Xml.Schema.XmlSchema and Related APIs In CoreCLR currently there is only a place-holder for XmlSchema type. https://github.com/dotnet/corefx/issues/10573 is being blocked by the issue. +10663 area-Infrastructure Updating External dependencies to servicing-24409-00 /cc @dotnet/corefx-contrib +10666 area-Infrastructure Modifying corefx projects in Visual Studio is slow and hangs Whenever I move, rename, delete or create a new file in any project in corefx (e.g. src/System.Reflection/tests/System.Reflection.Tests.csproj) VS, updated to the latest Community version, hangs on PC for about 30 seconds to a minute the second I complete that action. During this time, I can't click, type or use VS. Its the sort of weird issue that doesn't bother you very much the first couple of times, but after months of VS hanging every time I modify the csproj file, things can get annoying. I think the issue may be that VS is running `dotnet restore` every time, as I noticed in Task Manager that a `dotnet.exe` process spawns during the hang, and when VS stops hanging, the process is gone. +10668 area-System.Numerics Fix poor hash function in System.Numerics #1509 Replace hash function for Vector (Inspired by OpenJDK). Add functional and performance tests, that show improvements. Fixes #1509 +10673 area-Infrastructure Updating CoreClr dependencies to servicing-24409-01 /cc @dotnet/corefx-contrib +10675 area-Serialization [ReflectionBasedXmlSerializer] GenerateMembersElement is not Impelmented `ReflectionXmlSerializationReader.GenerateMembersElement` and `ReflectionXmlSerializationWriter.WriteMembersElement` throw NotImplementedException. We should implement these two methods. WCF is the major customer of the methods as WCF uses XmlReflectionImporter.ImportMembersMapping and generates special serializers for OperationContracts. +10676 area-Serialization [ReflectionBasedXmlSerializer] To Support SOAP Serialization As all SOAP relates APIs are not in CoreCLR yet, the reflection based method currently throws PlatformNotSupportedException when types require SOAP serialization. +10677 area-Infrastructure Enable daily builds for arm64 @gkhanna79 @Priya91 +10681 area-Infrastructure Updating CoreClr dependencies to stable /cc @dotnet/corefx-contrib +10685 area-System.Diagnostics [ExcludeFromCodeCoverage] is marked as internal The ExcludeFromCodeCoverage attribute is marked as internal. This is more than likely intended (It's also internal in the PCL) but it's public in all other versions of the .Net framework. This attribute is as useful for user code as I'm sure it is in the framework's codebase. Is there a particular design reason this was marked as internal? Is there an alternative I'm not aware of? If not, can it be made public? +10686 area-Microsoft.CSharp Use dynamic function call with .NET core 1.0 RTM "Hi, I tried to do the following with .NET Core RTM: this.AsDynamic().Apply(@event); ((dynamic)this).Apply(@event); <-- Or this syntax (Same meaning?!) This didn't compile by default. I found out how to solve it, with adding the dependency: ""Microsoft.CSharp"": ""4.0.1"" The project compiles, but if I look at the dependency list of it, it's huge! It has 17 dependencies just for using dynamic (Just used once in the project at all) that's a high price. Is there a ""cheaper"" dependency which I can add to use dynamic? Maybe one or two of the 17? Kind regards Christian " +10688 area-System.Xml Remove unnecessary P2P references relating to xml contracts when merging #10672 , we introduced a lot of P2P references, since it was required for some libraries that depended on un-published packages. This issue is to track the work to remove all those. +10692 area-System.Runtime [Proposal] Add Enum.IsDefined() method So rather than doing this: ``` csharp string DoTheThing(MyEnum argument) { if (!Enum.IsDefined(typeof(MyEnum), argument)) { Log.Warn(...); return String.Empty; } return argument.ToString(); } ``` You can do this: ``` csharp string DoTheThing(MyEnum argument) { if (!argument.IsDefined()) { Log.Warn(...); return String.Empty; } return argument.ToString(); } ``` `Enum.IsDefined(typeof(MyEnum), argument)` is also quite slow as it needs to do lots of conversion checks etc; whereas if you already have the enum these don't need to be done. e.g. https://github.com/dotnet/corefx/blob/master/src/System.Private.Uri/src/System/UriExt.cs#L19-L24 Suggested change https://github.com/dotnet/coreclr/pull/6687 /cc @terrajobst +10694 area-System.Security Recommended way to determine when code is running on a FIPS compliant machine (desktop & coreclr)? I'm currently working on a `SHA256.Create()` implementation that works on CoreCLR and net451 FIPS compliant machines. I'm currently using try catch statements to work around net451's invalid `SHA256.Create` behavior to determine FIPS compliance but was wondering if there was a better route that worked on both desktop and coreclr? +10695 area-System.Globalization How to get DateTimeFormatInfo Time and Date separators? In .NET there are `DateSeparator` and `TimeSeparator` properties, but I can't find them in .NET Core. Were they removed or moved to a different class? I need to make ``` C# string.Join(info.TimeSeparator, array); ``` +10698 area-System.IO Add positive tests for FileStream begin/end +10702 area-System.Net System.Net test intermittent failures few test cases are marked with `[ActiveIssue(10702)]` (pending work - i need to have an issue number to mark it :smile:) http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/dev_api/job/windows_nt_release_prtest/324/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/dev_api/job/windows_nt_debug_prtest/329/ Happened in here: https://github.com/dotnet/corefx/pull/10693 +10706 area-System.Data Missing SqlDataAdapter I noticed today that the DataTable class exists in System.Data in .NET Core, but it also seems that there is no SqlDataAdapter, so there is no way to read the data in to the DataTable +10709 area-System.Security System.Security.Cryptography.Csp error on UWP Hi A user of my library is getting an error when installing the library on NuGet. My library is netstandard1.3. He is the error: ``` System.Security.Cryptography.Csp 4.0.0 provides a compile-time reference assembly for System.Security.Cryptography.Csp on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-arm. ``` https://github.com/JamesNK/Newtonsoft.Json.Schema/issues/43 +10712 area-System.IO `readdir_r` is deprecated in glibc 2.24 Hello, The `pal_io.cpp` file in `System.Native` is using a newly deprecated function `readdir_r` which makes the sources not compile for me, with the following error message: ``` ==> Starting build()... Detected Linux x86_64 /home/jaen/.cache/pacaur/dotnet-cli/src/corefx-1.0.0/src/Native/System.Native/pal_io.cpp:344:17: error: 'readdir_r' is deprecated [-Werror,-Wdeprecated-declarations] int error = readdir_r(dir, entry, &result); ^ /usr/include/dirent.h:183:12: note: 'readdir_r' has been explicitly marked deprecated here extern int readdir_r (DIR *__restrict __dirp, ^ 1 error generated. make[2]: *** [System.Native/CMakeFiles/System.Native-Static.dir/build.make:135: System.Native/CMakeFiles/System.Native-Static.dir/pal_io.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... /home/jaen/.cache/pacaur/dotnet-cli/src/corefx-1.0.0/src/Native/System.Native/pal_io.cpp:344:17: error: 'readdir_r' is deprecated [-Werror,-Wdeprecated-declarations] int error = readdir_r(dir, entry, &result); ^ /usr/include/dirent.h:183:12: note: 'readdir_r' has been explicitly marked deprecated here extern int readdir_r (DIR *__restrict __dirp, ^ 1 error generated. make[2]: *** [System.Native/CMakeFiles/System.Native.dir/build.make:135: System.Native/CMakeFiles/System.Native.dir/pal_io.cpp.o] Error 1 ``` Are there any plans to update this file for it to build with new glibc? +10713 area-System.Runtime DateTime.Parse throws TypeInitializationException, depends on System.Runtime.InteropServices.PInvoke "The following code: ``` using Microsoft.VisualStudio.TestTools.UnitTesting; using System; using System.Globalization; namespace DateTimeError { [TestClass] public class Class1 { [TestMethod] public void Test() { DateTime.Parse(""2015-11-20T10:08:01Z"", CultureInfo.CurrentCulture, DateTimeStyles.None); } } } ``` results in this error ``` Test method DateTimeError.Class1.Test threw exception: System.TypeInitializationException: The type initializer for 'System.Runtime.Versioning.BinaryCompatibility' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime.InteropServices.PInvoke, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. Stack Trace: at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type) at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext) at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments) at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg) at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent) at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType) at System.Attribute.GetCustomAttributes(Assembly element, Type attributeType, Boolean inherit) at System.AppDomain.GetTargetFrameworkName() at System.Runtime.Versioning.BinaryCompatibility.ReadTargetFrameworkId() at System.Runtime.Versioning.BinaryCompatibility.get_AppWasBuiltForFramework() at System.Runtime.Versioning.BinaryCompatibility.BinaryCompatibilityMap..ctor() at System.Runtime.Versioning.BinaryCompatibility..cctor() --- End of inner exception stack trace --- at System.Globalization.DateTimeFormatInfo.InsertHash(TokenHashValue[] hashTable, String str, TokenType tokenType, Int32 tokenValue) at System.Globalization.DateTimeFormatInfo.AddMonthNames(TokenHashValue[] temp, String monthPostfix) at System.Globalization.DateTimeFormatInfo.CreateTokenHashTable() at System.Globalization.DateTimeFormatInfo.Tokenize(TokenType TokenMask, TokenType& tokenType, Int32& tokenValue, __DTString& str) at System.__DTString.GetSeparatorToken(DateTimeFormatInfo dtfi, Int32& indexBeforeSeparator, Char& charBeforeSeparator) at System.DateTimeParse.Lex(DS dps, __DTString& str, DateTimeToken& dtok, DateTimeRawInfo& raw, DateTimeResult& result, DateTimeFormatInfo& dtfi, DateTimeStyles styles) at System.DateTimeParse.TryParse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles, DateTimeResult& result) at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles) at DateTimeError.Class1.Test() in C:\Users\FrederikCarlier\Documents\Visual Studio 2015\Projects\DateTimeError\Class1.cs:line 22 ``` when running in the context of mstest. The attached .zip file includes the full source code. You can find sporadic mentions of other hitting this issue, e.g. https://connect.microsoft.com/VisualStudio/feedback/details/2952488/unable-to-call-datetime-parse-from-within-a-net-core-app-1-0-test-project . You also hit this issue when deserializing JSON that contains a DateTime value. [DateTimeError.zip](https://github.com/dotnet/corefx/files/413418/DateTimeError.zip) " +10714 area-System.Runtime System.Runtime.Serialization.Formatters: Cleanup after merging Serialization PR in dev/api PR #10667 added Serialization back to Core. It came with a lot of ToDo's so this issue is to track those and make sure they get done.They are: - [x] Use SR instead of hard-coded strings once it is available in System.Runtime. - [x] Uncomment Debug.Asserts once it is available in System.Runtime - SerializationInfo was moved to coreclr - [x] Remove P2P references once corefx versions are updated. - [ ] Remove [temporary workaround](https://github.com/dotnet/corefx/pull/10667/files#diff-340897543d74ba6c30ea455b13aace92R1628) in ObjectManager.cs +10716 area-System.Net Cross compile System.Net.Http for Desktop "This is the first part at fixing #9846 and #9884. This PR changes the compilation of System.Net.Http for NET46 target so that it builds as a ""normal"" .NET Framework assembly by using assembly references for mscorlib.dll, system.dll, etc. " +10719 area-Infrastructure Building a corefx source or test project restores packages every time "Whenever I build a corefx source or test project that I've built before, the majority of the build time is spent in the ""RestorePackages"" target. It seems that the build system doesn't recognise that I have already restored all the packages. This increases build times significantly, and is unecessary. Is this by design and unavoidable? " +10720 area-System.Globalization System/Globalization IdnMapping, check if string is ASCII first before calling Interop? Hello, my name is Justin, current intern on the ASP.NET team. I noticed that calls to IdnMapping.GetAscii always called Interop.mincore.IdnToAscii, which can be a bit pricey because you are pinvoking. I was wondering if we could have a quick ASCII check (iterate through all characters and check the highest order bit) and only convert to puny code if it isn't ASCII? I currently implemented something similar in ASP.NET to avoid calling GetAscii, but it is more appropriate to be here. Specifically: https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Globalization/IdnMapping.cs#L72 +10727 area-System.Net [Question] Configure HTTP connections in CoreCLR (ServicePoint/ServicePointManager Properties) Hi, Would you please provide some information on the .NetCore's suggested approach to configure the connection properties which used to be provided through ServicePoint/ServicePointManager in .Net Framework, such as > UseNagleAlgorithm? Thanks! cc: @davidsh +10732 area-System.Net Add TLS system default SslStream overloads and hashing algorithm enum values This is tracking the addition of new API surface to SslStream: 1. Support for TLS system defaults (new overloads) 2. SHA256, SHA384 and SHA512 enum values +10739 area-System.Net Why doesn't HttpResponseMessage.Headers contain the values within HttpResponseMessage.Content.Headers? Whilst using HttpClient today it took me 45 minutes to realise the Content headers are not in the HttpResponseMessage.Headers but exist elsewhere. I have no clue why it's designed like this but if I look at response.Headers I expect to see ALL headers. +10744 area-Serialization [dev/api] Fix XmlSerializer tests for netcore50aot Make sure the XmlSerializer tests compile and pass for `/p:TargetGroup=netcore50aot` **EDIT**: Also make sure that we re-add the cross compilation for the implementation of XmlSerializer that was removed on 4833cbf3df34f63dddc2c0b9d254a62887964abe +10747 area-Meta SharedLibrary libs on netcore50 don't use the latest code I'm writing an UWP app which depends on a Profile111 PCL that uses `System.Linq.Expressions`, particularly the `Expression.IsTrue/IsFalse` methods, which means I need the fix from #3227 to avoid a crash. I'm new to .NET Core stuff, but from what I've read it seems like I should only need to reference the newest possible `System.Linq.Expressions` package, e.g. `4.1.1-beta-24412-03`, which should contain the fix. But doing that changes nothing; my app still crashes. So I looked at the contents of the package with ildasm, and it appears that the `netcore50` version doesn't contain the fix (looking at the contents of `System.Linq.Expressions.Interpreter.LightCompiler::CompileUnaryExpression`), while the `netstandard1.6` version does, and UWP is using the former. Is this expected, and if so, how can I get a fixed version of that package in an UWP app? +10749 area-System.Security Add time-constant equals and other utility methods to System.Security In applications sensitive to side-channel timing attacks, a constant time equality check can be used instead of a normal short-circuiting String.Equals (or similar for byte[], etc.). This is functionality often duplicated by application developers, copied and pasted from StackOverflow and what not. This is easy to subtly get wrong, and probably belongs somewhere in System.Security. We can see an example of this already implemented in an internal .NET class: [Microsoft.AspNetCore.Cryptography.Internal](https://github.com/aspnet/DataProtection/blob/dev/src/Microsoft.AspNetCore.Cryptography.Internal/CryptoUtil.cs#L90), but this isn't really the best place for it 😃 --- Edited by @bartonjs to match what was approved: ```csharp namespace System.Security.Cryptography { // new type in System.Security.Cryptography.Primitives.dll public static class CryptographicOperations { public static bool FixedTimeEquals(ReadOnlySpan left, ReadOnlySpan right); public static void ZeroMemory(Span span); } // Existing type in System.Security.Cryptography.Algorithms.dll public abstract class RandomNumberGenerator { public static void Fill(Span data); } } ``` +10752 area-System.Collections Collection and ObservableCollection do not support ranges "Let's keep the final speclet at the top for easier search # Speclet (Updated 9/23/2016) ## Scope Modernize `Collection` and `ObservableCollection` by allowing them to handle operations against multiple items simultaneously. ## Rationale The `ObservableCollection` is a critical collection when it comes to XAML-based development, though it can also be useful when building API client libraries as well. Because it implements `INotifyPropertyChanged` and `INotifyCollectionChanged`, nearly every XAML app in existence uses some form of this collection to bind a set of objects against UI. However, this class has some shortcomings. Namely, it cannot currently handle adding or removing multiple objects in a single call. Because of that, it also cannot manipulate the collection in such a way that the `PropertyChanged` events are raised at the very end of the operation. Consider the following situation: - You have a XAML app that accesses an API. - That API call returns 25 objects that need to be bound to the UI. - In order to get the data displayed into the UI, you likely have to cycle through the results, and add them one at a time to the ObservableCollection. - This has the side-effect of firing the `CollectionChanged` event 25 times. If you are also using that event to do other processing on incoming items, then those events are firing 25 times too. This can get very expensive, very quickly. - Additionally, that event will have `ChangedItems` Lists that will only ever have 0 or 1 objects in them. That is... not ideal. This behavior is unnecessary, especially considering that `NotifyCollectionChangedEventArgs` already has the components necessary to handle firing the event once for multiple items, but that capability is presently not being used at all. Implementing this properly would allow for better performance in these types of apps, and would negate the need for the plethora of replacements out there ([here](http://blog.ddeysel.com/technicals/introducing-the-awesome-observable-collection/), [here](http://tliangnet.blogspot.com/2013/04/observablecollection-performance-issue.html), and [here](https://github.com/Windows-XAML/Template10/blob/master/Template10%20%28Library%29/Utils/IEnumerableUtils.cs#L34-L45), for example). ## Usage Given the above scenario as an example, usage would look like this pseudocode: ``` cs var observable = new ObservableCollection(); var client = new HttpClient(); var result = client.GetStringAsync(""http://someapi.com/someobject""); var results = JsonConvert.DeserializeObject(result); observable.AddRange(results); ``` ## Implementation This is not the complete implementation, because other `*Range` functionality would need to be implemented as well. You can see the start of this work in PR #10751 ``` cs // Adds a range to the end of the collection. // Raises CollectionChanged (NotifyCollectionChangedAction.Add) public void AddRange(IEnumerable collection) // Inserts a range // Raises CollectionChanged (NotifyCollectionChangedAction.Add) public void InsertRange(int index, IEnumerable collection); // Removes a range. // Raises CollectionChanged (NotifyCollectionChangedAction.Remove) public void RemoveRange(int index, int count); // Will allow to replace a range with fewer, equal, or more items. // Raises CollectionChanged (NotifyCollectionChangedAction.Replace) public void ReplaceRange(int index, int count, IEnumerable collection); // Removes any item that matches the search criteria. // Raises CollectionChanged (NotifyCollectionChangedAction.Remove) // RWM: Excluded for now, will see if possible to add back in after implementation and testing. // public int RemoveAll(Predicate match); ``` ## Obstacles Doing this properly, and having the methods intuitively named, could potentially have the side effect of breaking existing classes that inherit from `ObservableCollection` to solve this problem. A good way to test this would be to make the change, compile something like Template10 against this new assembly, and see if it breaks. --- So the `ObservableCollection` is one of the cornerstones of software development, not just in Windows, but on the web. One issue that comes up constantly is that, while the `OnCollectionChanged` event has a structure and constructors that support signaling the change for multiple items being added, the `ObservableCollection` does not have a method to support this. If you look at the web as an example, Knockout has a way to be able to add multiple items to the collection, but not signal the change until the very end. The `ObservableCollection` needs the same functionality, but does not have it. If you look at other extension methods to solve this problem, like the one in [Template10](https://github.com/Windows-XAML/Template10/blob/master/Template10%20%28Library%29/Utils/IEnumerableUtils.cs#L34-L45), they let you add multiple items, but do not solve the signaling problem. That's because the `ObservableCollection.InsertItem()` method overrides `Collection.InsertItem()`, and all of the other methods are private. So the only way to fix this properly is in the `ObservableCollection` itself. I'm proposing an ""AddRange"" function that accepts an existing collection as input, optionally clears the collection before adding, and then throws the `OnCollectionChanging` event AFTER all the objects have been added. I have already implemented this in a PR #10751 so you can see what the implementation would look like. I look forward to your feedback. Thanks! " +10760 area-System.Security Exception thrown when trying to encrypt an EnvelopedCms with a Diffie-Hellman certificate if it uses AES as the symmetric cipher Currently, the only test that there is using a Diffie-Hellman certificate for encryption is using the default cipher, Triple DES CBC. However, if the cipher used is changed to any of the AES variants, the Windows implementation throws Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The parameter is incorrect. within method Internal.Cryptography.Pal.Windows.PkcsPalWindows.EncodeHelpers.CreateCryptMsgHandleToEncode +10764 area-System.Net TryGetAddrInfo_HostName_TryGetNameInfo test failing on Linux ``` System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName_TryGetNameInfo [FAIL] Assert.Equal() Failure Expected: Success Actual: HostNotFound Stack Trace: at System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName_TryGetNameInfo() ``` ``` +10769 area-System.Net Test failure: System.Net.NetworkInformation.Tests.NetworkInterfaceBasicTest/BasicTest_AccessInstanceProperties_NoExceptions_Linux Opened on behalf of @jiangzeng The test `System.Net.NetworkInformation.Tests.NetworkInterfaceBasicTest/BasicTest_AccessInstanceProperties_NoExceptions_Linux` has failed. ``` Assert.InRange() Failure\r Range: (0 - 9223372036854775807)\r Actual: -1 ``` Stack Trace: ``` at System.Net.NetworkInformation.Tests.NetworkInterfaceBasicTest.BasicTest_AccessInstanceProperties_NoExceptions_Linux() ``` Failing configurations: - Fedora.23.Amd64 - AnyCPU-Debug - AnyCPU-Release +10772 area-System.Numerics "Should add a ""Scale"" property to System.Numerics.Matrix4x4" (From #10758) ``` /// /// Gets or sets the scale component of this matrix. /// public Vector3 Scale { get { return new Vector3(M11, M22, M33); } set { M11 = value.X; M22 = value.Y; M33 = value.Z; } } ``` Thanks! +10773 area-System.Collections Test failure: System.Collections.Concurrent.Tests.BlockingCollectionTests/TestDebuggerAttributes Opened on behalf of @jiangzeng The test `System.Collections.Concurrent.Tests.BlockingCollectionTests/TestDebuggerAttributes` has failed. ``` System.InvalidOperationException : The API 'System.Collections.Concurrent.BlockingCollection`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].m_collection' cannot be used on the current platform. See http://go.microsoft.com/fwlink/?LinkId=248273 for more information. ``` Stack Trace: ``` at System.Reflection.RtFieldInfo.InternalGetValue(Object obj, StackCrawlMark& stackMark) at System.Reflection.RtFieldInfo.GetValue(Object obj) at System.Diagnostics.DebuggerAttributes.ValidateDebuggerDisplayReferences(Object obj) in D:\A\_work\1\s\src\Common\tests\System\Diagnostics\DebuggerAttributes.cs:line 122 at System.Collections.Concurrent.Tests.BlockingCollectionTests.TestDebuggerAttributes() in D:\A\_work\1\s\src\System.Collections.Concurrent\tests\BlockingCollectionTests.cs:line 176 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug +10775 area-System.Collections Test failure: System.Collections.Tests.SortedList_IDictionary_NonGeneric_Tests/CantAcceptDuplicateKeysFromSourceDictionary Opened on behalf of @jiangzeng The test `System.Collections.Tests.SortedList_IDictionary_NonGeneric_Tests/CantAcceptDuplicateKeysFromSourceDictionary` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: (No exception was thrown) ``` Stack Trace: Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Note: `System.Collections.Tests.SortedList_IDictionary_NonGeneric_Tests/IDictionary_NonGeneric_ItemSet_KeyOfWrongType` has failed with the same issue. +10776 area-System.Collections Test failure: System.Collections.Tests.BitArray_GetSetTests/CopyTo_Type_Invalid Opened on behalf of @jiangzeng The test `System.Collections.Tests.BitArray_GetSetTests/CopyTo_Type_Invalid` has failed. ``` Assert.Equal() Failure\r Expected: array\r Actual: (null) ``` Stack Trace: ``` at System.Collections.Tests.BitArray_GetSetTests.CopyTo_Type_Invalid() in D:\A\_work\1\s\src\System.Collections\tests\BitArray\BitArray_GetSetTests.cs:line 277 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug +10777 area-System.ComponentModel Test failure: System.ComponentModel.Primitives.Tests.CategoryAttributeTests/CategoryNames Opened on behalf of @jiangzeng The test `System.ComponentModel.Primitives.Tests.CategoryAttributeTests/CategoryNames` has failed. ``` Assert.Equal() Failure\r ? (pos 0)\r Expected: Misc\r Actual: Default\r ? (pos 0) ``` Stack Trace: ``` at System.ComponentModel.Primitives.Tests.CategoryAttributeTests.CategoryNames(CategoryAttribute attribute, String name) in D:\A\_work\1\s\src\System.ComponentModel.Primitives\tests\CategoryAttributeTests.cs:line 38 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug +10780 area-System.Data Test failure: System.Data.SqlClient.Tests.ExceptionTest/IndependentConnectionExceptionTestExecuteReader Opened on behalf of @jiangzeng The test `System.Data.SqlClient.Tests.ExceptionTest/IndependentConnectionExceptionTestExecuteReader` has failed. `System.Data.SqlClient.Tests.ExceptionTest/VariousExceptionTests` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.InvalidOperationException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format ``` Stack Trace: ``` at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object[] args) at System.Data.Common.ADP.OpenConnectionRequired(String method, ConnectionState state) in D:\A\_work\1\s\src\System.Data.SqlClient\src\System\Data\Common\AdapterUtil.cs:line 517 at System.Data.SqlClient.SqlCommand.ValidateCommand(Boolean async, String method) in D:\A\_work\1\s\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlCommand.cs:line 2329 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite, String method) in D:\A\_work\1\s\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlCommand.cs:line 1959 at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) in D:\A\_work\1\s\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlCommand.cs:line 1358 at System.Data.SqlClient.SqlCommand.ExecuteReader() in D:\A\_work\1\s\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlCommand.cs:line 1331 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug +10781 area-System.Data "Test failure: System.Data.SqlClient.Tests with ""System.IO.FileNotFoundException""" Opened on behalf of @jiangzeng The test `System.Data.SqlClient.Tests.ExceptionTest/ExceptionTests` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.Data.SqlClient.SqlException)\r Actual: typeof(System.IO.FileNotFoundException): Could not load file or assembly 'System.Threading.Thread, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. ``` Stack Trace: ``` at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) in D:\A\_work\1\s\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionInternal.cs:line 452 at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) in D:\A\_work\1\s\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnection.cs:line 1020 at System.Data.SqlClient.SqlConnection.Open() in D:\A\_work\1\s\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnection.cs:line 585 at System.Data.SqlClient.Tests.ExceptionTest.GenerateConnectionException(String connectionString) in D:\A\_work\1\s\src\System.Data.SqlClient\tests\FunctionalTests\ExceptionTest.cs:line 84 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Also fail with the following tests: ExceptionTests IndependentConnectionExceptionTestOpenConnection CopyTo_NonGeneric_Success CopyTo_NonGeneric_Throws CopyTo_Success CopyTo_Throws GetEnumerator_Success Indexer_Success Indexer_Throws IsSynchronized_Success SyncRoot_Success +10783 area-System.Diagnostics Test failure: System.Diagnostics.Tests.FileVersionInfoTest/FileVersionInfo_Chinese Opened on behalf of @jiangzeng The test `System.Diagnostics.Tests.FileVersionInfoTest/FileVersionInfo_Chinese` has failed. ``` Assert.Equal() Failure\r Expected: \r Actual: (null) ``` Stack Trace: ``` at System.Diagnostics.Tests.FileVersionInfoTest.VerifyVersionInfo(String filePath, MyFVI expected) in D:\A\_work\1\s\src\System.Diagnostics.FileVersionInfo\tests\System.Diagnostics.FileVersionInfo.Tests\FileVersionInfoTest.cs:line 224 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Also fail for the following tests: FileVersionInfo_Chinese FileVersionInfo_DifferentFileVersionAndProductVersion FileVersionInfo_Normal +10784 area-System.Diagnostics "Test failure: System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests with ""System.UnauthorizedAccessException""" Opened on behalf of @jiangzeng The test `System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests/TraceData_ObjectArray_Test` has failed. ``` System.UnauthorizedAccessException : Access to the path 'C:\Users\DotNetTestRunner\AppData\Local\Temp\4e5tqjd2.tg4\DelimiterWriteMethodTests.xml' is denied. ``` Stack Trace: ``` at System.IO.Win32FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.Win32FileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access) at System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests..ctor() in D:\A\_work\1\s\src\System.Diagnostics.TextWriterTraceListener\tests\DelimiterWriteMethodTests.cs:line 20 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Tests following also failed: TraceData_ObjectArray_Test TraceData_Object_Test TraceEvent_FormatString_Test TraceEvent_String_Test TestFlush TestWrite TestWriteAfterDisposeShouldNotThrow TestWriteLine TestWriterPropery +10785 area-System.Globalization Test failure: System.Globalization.Tests.CalendarHelpers/GetDaysInMonth_Invalid Opened on behalf of @jiangzeng The test `System.Globalization.Tests.CalendarHelpers/GetDaysInMonth_Invalid` has failed. ``` System.ArgumentOutOfRangeException : Non-negative number required.\r Parameter name: year ``` Stack Trace: ``` at System.Globalization.GregorianCalendarHelper.GetGregorianYear(Int32 year, Int32 era) at System.Globalization.EastAsianLunisolarCalendar.CheckYearRange(Int32 year, Int32 era) at System.Globalization.EastAsianLunisolarCalendar.GetMonthsInYear(Int32 year, Int32 era) at System.Globalization.Tests.CalendarHelpers.d__9.MoveNext() in D:\A\_work\1\s\src\System.Globalization.Calendars\tests\CalendarHelpers.cs:line 126 at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Test following also failed: GetDaysInMonth_Invalid IsLeapDay_Invalid IsLeapMonth_Invalid +10786 area-System.Globalization Test failure: System.Globalization.Tests.CalendarHelpers/GetEra_Invalid Opened on behalf of @jiangzeng The test `System.Globalization.Tests.CalendarHelpers/GetEra_Invalid` has failed. ``` System.TypeInitializationException : The type initializer for 'System.PlatformDetection' threw an exception.\r ---- System.ArgumentNullException : Value cannot be null.\r Parameter name: path1 ``` Stack Trace: ``` at System.Globalization.Tests.CalendarHelpers.GetEra_Invalid(Calendar calendar, DateTime dt) in D:\A\_work\1\s\src\System.Globalization.Calendars\tests\CalendarHelpers.cs:line 382 ----- Inner Stack Trace ----- at System.IO.Path.Combine(String path1, String path2) at System.PlatformDetection..cctor() in D:\A\_work\1\s\src\Common\tests\System\PlatformDetection.cs:line 19 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug +10787 area-System.IO "Test failure: System.IO.Compression.Tests.ZipFileTest_ConvenienceMethods with ""System.MissingMethodException""" Opened on behalf of @jiangzeng The test `System.IO.Compression.Tests.ZipFileTest_ConvenienceMethods/CreateEntryFromFileTest` has failed. ``` System.MissingMethodException : Method not found: 'System.IO.Compression.ZipArchive System.IO.Compression.ZipFile.Open(System.String, System.IO.Compression.ZipArchiveMode)'. ``` Stack Trace: ``` at System.IO.Compression.Tests.ZipFileTest_ConvenienceMethods.d__7.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at System.IO.Compression.Tests.ZipFileTest_ConvenienceMethods.CreateEntryFromFileTest(Boolean withCompressionLevel) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug The following tests also failed: CreateEntryFromFileTest CreateFromDirectoryNormal CreateFromDirectoryUnicodel CreatedEmptyDirectoriesRoundtrip CreatedEmptyRootDirectoryRoundtrips ExtractToDirectoryTest ExtractToDirectoryTest_Unicode ExtractToFileTest DirectoryEntryWithData FilesOutsideDirectory InvalidConstructors InvalidDates InvalidFiles InvalidInstanceMethods UnsupportedCompressionRoutine ReadStreamOps UpdateAddFile UpdateReadTwice +10796 area-System.Runtime [.NET 4.6.3] Return parameters not considered in Attribute.GetParentDefinition(ParameterInfo) Opening this to track integration into Netfx6.3 (the tags only work on corefx repo bugs.) Besides, I need a reminder to remove the ActiveIssue from the corefx regression test once the fix has wandered itself over into the packages. Original issue: https://github.com/dotnet/coreclr/issues/6600 The commit that fixed it: https://github.com/dotnet/coreclr/pull/6745 +10797 area-Serialization DCS_ArrayOfSimpleType_PreserveObjectReferences_True Failed The following two tests throw `System.NotImplementedException` when using `SerializationOption.ReflectionOnly`, DCS_ArrayOfSimpleType_PreserveObjectReferences_True DCS_CircularTypes_PreserveObjectReferences_True +10799 area-System.Diagnostics Difficult (not possible?) to redirect binary output between Linux processes A common pattern in Linux is to pipe output between commands. And such output is not always text (e.g., imagine a series of openssl commands). Unfortunately, the System.Diagnostic.Process class _assumes_ that output and input is textual. Such an assumption violates Linux conventions. +10800 area-System.Data Use ConditionalFact in Manual tests of SqlClient Based on the comment at https://github.com/dotnet/corefx/pull/10742#issuecomment-239888047 `ConditionalFact` can be used to conditionally execute the Xunit This issue is being opened to track the change. +10804 area-Infrastructure Enable full test runs for netcoreapp1.1 Enable full test runs for netcoreapp1.1 in master. Currently we can only run them locally. Then we can merge this into dev/api and enable for that branch also. assigning to @joperezr for now. +10813 area-Serialization Test failure: DataContractJsonSerializerTests/DCJS_ArrayOfDateTime "Opened on behalf of @jiangzeng The test `DataContractJsonSerializerTests/DCJS_ArrayOfDateTime` has failed. ``` strings differ at index 12 ? [expected]:\/Date(946811045000-0800)\/"","" [actual ]:\/Date(946782245000+0000)\/"","" ? [Expected (with length=62)]: [""\/Date(946811045000-0800)\/"",""\/Date(1296734706000-0800)\/""] [Actual (with length=62)]: [""\/Date(946782245000+0000)\/"",""\/Date(1296705906000+0000)\/""] Test failed for input: System.DateTime[] Expected: [""\/Date(946811045000-0800)\/"",""\/Date(1296734706000-0800)\/""] Actual: [""\/Date(946782245000+0000)\/"",""\/Date(1296705906000+0000)\/""] Expected: True Actual: False ``` Stack Trace: ``` at DataContractJsonSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractJsonSerializerSettings settings, Func`1 serializerFactory, Boolean skipStringCompare) at DataContractJsonSerializerTests.DCJS_ArrayOfDateTime() ``` Failing configurations: - Ubuntu.1604.Amd64 - AnyCPU-Release - AnyCPU-Debug - Windows.10.Core.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.7.Amd64 - AnyCPU-Debug - AnyCPU-Release - Centos.71.Amd64 - AnyCPU-Release - AnyCPU-Debug - Debian.82.Amd64 - AnyCPU-Debug - AnyCPU-Release - Suse.132.Amd64 - AnyCPU-Release - AnyCPU-Debug - Redhat.72.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.81.Amd64 - AnyCPU-Debug - AnyCPU-Release - Ubuntu.1404.Amd64 - AnyCPU-Release - AnyCPU-Debug - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug The following test also failed: DataContractJsonSerializerTests/DCJS_ArrayOfDateTime DataContractJsonSerializerTests/DCJS_TypeWithAllPrimitiveProperties link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fcli~2F/build/20160816.02/workItem/System.Runtime.Serialization.Json.Tests " +10814 area-System.Net Test failure: System.Net.Primitives.Functional.Tests.CookieCollectionTest/Enumerator_Version_Invalid Opened on behalf of @jiangzeng The test `System.Net.Primitives.Functional.Tests.CookieCollectionTest/Enumerator_Version_Invalid` has failed. ``` System.InvalidOperationException : Collection was modified after the enumerator was instantiated. ``` Stack Trace: ``` at System.Net.CookieCollection.CookieCollectionEnumerator.System.Collections.IEnumerator.get_Current() at System.Net.Primitives.Functional.Tests.CookieCollectionTest.Enumerator_Version_Invalid() in D:\A\_work\2\s\src\System.Net.Primitives\tests\FunctionalTests\CookieCollectionTest.cs:line 159 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Net.Primitives.Functional.Tests/analysis/xunit/System.Net.Primitives.Functional.Tests.CookieCollectionTest~2FEnumerator_Version_Invalid +10815 area-System.Net Test failure: System.Net.Primitives.Functional.Tests.CookieTest/Value_PassNullToCtor_GetReturnsEmptyString Opened on behalf of @jiangzeng The test `System.Net.Primitives.Functional.Tests.CookieTest/Value_PassNullToCtor_GetReturnsEmptyString` has failed. ``` Assert.Equal() Failure\r Expected: \r Actual: (null) ``` Stack Trace: ``` at System.Net.Primitives.Functional.Tests.CookieTest.Value_PassNullToCtor_GetReturnsEmptyString() in D:\A\_work\2\s\src\System.Net.Primitives\tests\FunctionalTests\CookieTest.cs:line 249 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Net.Primitives.Functional.Tests/analysis/xunit/System.Net.Primitives.Functional.Tests.CookieTest~2FValue_PassNullToCtor_GetReturnsEmptyString +10816 area-System.Net Test failure: System.Net.Primitives.Functional.Tests.CredentialCacheTest/AddRemove_HostPortAuthenticationTypeDefaultCredentials_Success Opened on behalf of @jiangzeng The test `System.Net.Primitives.Functional.Tests.CredentialCacheTest/AddRemove_HostPortAuthenticationTypeDefaultCredentials_Success` has failed. ``` System.ArgumentException : Default credentials cannot be supplied for the authenticationType1 authentication scheme.\r Parameter name: authenticationType ``` Stack Trace: ``` at System.Net.CredentialCache.Add(String host, Int32 port, String authenticationType, NetworkCredential credential) at System.Net.Primitives.Functional.Tests.CredentialCacheTest.AddRemove_HostPortAuthenticationTypeDefaultCredentials_Success() in D:\A\_work\2\s\src\System.Net.Primitives\tests\FunctionalTests\CredentialCacheTest.cs:line 405 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Net.Primitives.Functional.Tests/analysis/xunit/System.Net.Primitives.Functional.Tests.CredentialCacheTest~2FAddRemove_HostPortAuthenticationTypeDefaultCredentials_Success +10817 area-System.Net Test failure: System.Net.Primitives.Functional.Tests.CredentialCacheTest/Add_HostPortAuthenticationTypeCredential_Invalid Opened on behalf of @jiangzeng The test `System.Net.Primitives.Functional.Tests.CredentialCacheTest/Add_HostPortAuthenticationTypeCredential_Invalid` has failed. ``` Assert.Equal() Failure\r Expected: host\r Actual: (null) ``` Stack Trace: ``` at System.Net.Primitives.Functional.Tests.CredentialCacheTest.Add_HostPortAuthenticationTypeCredential_Invalid() in D:\A\_work\2\s\src\System.Net.Primitives\tests\FunctionalTests\CredentialCacheTest.cs:line 165 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Net.Primitives.Functional.Tests/analysis/xunit/System.Net.Primitives.Functional.Tests.CredentialCacheTest~2FAdd_HostPortAuthenticationTypeCredential_Invalid Same issue for test: System.Net.Primitives.Functional.Tests.CredentialCacheTest/GetCredential_HostPortAuthenticationType_Invalid +10818 area-System.Net Test failure: System.Net.Primitives.Functional.Tests.CredentialCacheTest/Add_UriAuthenticationTypeCredential_Invalid Opened on behalf of @jiangzeng The test `System.Net.Primitives.Functional.Tests.CredentialCacheTest/Add_UriAuthenticationTypeCredential_Invalid` has failed. ``` Assert.Equal() Failure\r ? (pos 4)\r Expected: authenticationType\r Actual: authType\r ? (pos 4) ``` Stack Trace: ``` at System.Net.Primitives.Functional.Tests.CredentialCacheTest.Add_UriAuthenticationTypeCredential_Invalid() in D:\A\_work\2\s\src\System.Net.Primitives\tests\FunctionalTests\CredentialCacheTest.cs:line 125 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Net.Primitives.Functional.Tests/analysis/xunit/System.Net.Primitives.Functional.Tests.CredentialCacheTest~2FAdd_UriAuthenticationTypeCredential_Invalid Same issue for test: System.Net.Primitives.Functional.Tests.CredentialCacheTest/GetCredential_UriAuthenticationType_Invalid +10819 area-System.Net Test failure: System.Net.WebSockets.Tests.WebSocketExceptionTests/ConstructorTests_WebSocketError_Exception_Success Opened on behalf of @jiangzeng The test `System.Net.WebSockets.Tests.WebSocketExceptionTests/ConstructorTests_WebSocketError_Exception_Success` has failed. ``` System.ArgumentNullException : Value cannot be null.\r Parameter name: format ``` Stack Trace: ``` at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0, Object arg1) at System.SR.Format(String resourceFormat, Object p1, Object p2) at System.Net.WebSockets.WebSocketException.GetErrorMessage(WebSocketError error) at System.Net.WebSockets.WebSocketException..ctor(WebSocketError error, Exception innerException) at System.Net.WebSockets.Tests.WebSocketExceptionTests.ConstructorTests_WebSocketError_Exception_Success(WebSocketError error) in D:\A\_work\2\s\src\System.Net.WebSockets\tests\WebSocketExceptionTests.cs:line 57 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Net.WebSockets.Tests/analysis/xunit/System.Net.WebSockets.Tests.WebSocketExceptionTests~2FConstructorTests_WebSocketError_Exception_Success Same issue for test: System.Net.WebSockets.Tests.WebSocketExceptionTests/ConstructorTests_WebSocketError_Success +10820 area-System.Collections Test failure: System.Collections.ObjectModel.Tests.KeyedCollectionTestsIntInt/Clear Opened on behalf of @jiangzeng The test `System.Collections.ObjectModel.Tests.KeyedCollectionTestsIntInt/Clear` has failed. ``` System.MethodAccessException : Attempt by method 'System.Collections.ObjectModel.Tests.Helper.GetDictionary(System.Collections.ObjectModel.KeyedCollection`2)' to access method 'System.Collections.ObjectModel.KeyedCollection`2.get_Dictionary()' failed. ``` Stack Trace: ``` at System.RuntimeMethodHandle.PerformSecurityCheck(Object obj, RuntimeMethodHandleInternal method, RuntimeType parent, UInt32 invocationFlags) at System.RuntimeMethodHandle.PerformSecurityCheck(Object obj, IRuntimeMethodInfo method, RuntimeType parent, UInt32 invocationFlags) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at System.Collections.ObjectModel.Tests.Helper.GetDictionary[TKey,TValue](KeyedCollection`2 collection) in D:\A\_work\2\s\src\System.ObjectModel\tests\KeyedCollection\Utils.cs:line 183 at System.Collections.ObjectModel.Tests.KeyedCollectionTests`2.Clear(Int32 collectionSize) in D:\A\_work\2\s\src\System.ObjectModel\tests\KeyedCollection\TestMethods.cs:line 1525 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.ObjectModel.Tests/analysis/xunit/System.Collections.ObjectModel.Tests.KeyedCollectionTestsIntInt~2FClear Same issue for the following tests: System.Collections.ObjectModel.Tests.KeyedCollectionTestsIntInt/Clear System.Collections.ObjectModel.Tests.KeyedCollectionTestsIntInt/Threshold System.Collections.ObjectModel.Tests.KeyedCollectionTestsIntString/Clear System.Collections.ObjectModel.Tests.KeyedCollectionTestsIntString/Threshold System.Collections.ObjectModel.Tests.KeyedCollectionTestsStringInt/Clear System.Collections.ObjectModel.Tests.KeyedCollectionTestsStringInt/Threshold System.Collections.ObjectModel.Tests.KeyedCollectionTestsStringString/Clear System.Collections.ObjectModel.Tests.KeyedCollectionTestsStringString/Threshold +10821 area-System.Net "Tests under ""System.Private.Uri.Functional.Tests"" fail with Assert Exception: ""Xunit.Sdk.EqualException"" & ""Xunit.Sdk.FalseException""" Opened on behalf of @jiangzeng The test `System.PrivateUri.Tests.IdnDnsSafeHostTest/IdnDnsSafeHost_IPv6Host_ScopeIdButNoBrackets` has failed. ``` Assert.Equal() Failure\r ? (pos 0)\r Expected: ::1%23\r Actual: 0000:0000:0000:0000:0000:0000:0000:0001%2···\r ? (pos 0) ``` Stack Trace: ``` at System.PrivateUri.Tests.IdnDnsSafeHostTest.IdnDnsSafeHost_IPv6Host_ScopeIdButNoBrackets() in D:\A\_work\2\s\src\System.Private.Uri\tests\FunctionalTests\IdnDnsSafeHostTest.cs:line 43 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Private.Uri.Functional.Tests Failed tests: System.PrivateUri.Tests.IdnDnsSafeHostTest/IdnDnsSafeHost_IPv6Host_ScopeIdButNoBrackets System.PrivateUri.Tests.IriTest/Iri_804110_TryCreateUri_ShouldNotThrowIndexOutOfRange System.PrivateUri.Tests.IriTest/Iri_IncorrectNormalization System.PrivateUri.Tests.IriTest/Iri_Uri_SchemaParsing_ShouldNotThrowArgumentOutOfRange System.PrivateUri.Tests.UriBuilderTests/TestQuery System.PrivateUri.Tests.UriEscapingTest/UriAbsoluteEscaping_FullIPv6Uri_NothingEscaped System.PrivateUri.Tests.UriEscapingTest/UriAbsoluteEscaping_RFC3986Reserved_NothingEscaped System.PrivateUri.Tests.UriEscapingTest/UriAbsoluteUnEscaping_AlphaNumericEscapedIriOn_UnEscaping System.PrivateUri.Tests.UriEscapingTest/UriAbsoluteUnEscaping_RFC2396ReservedEscaped_NoUnEscaping System.PrivateUri.Tests.UriEscapingTest/UriAbsoluteUnEscaping_RFC2396UnreservedEscaped_AllUnescaped System.PrivateUri.Tests.UriEscapingTest/UriAbsoluteUnEscaping_RFC3986ReservedEscaped_NothingUnescaped System.PrivateUri.Tests.UriEscapingTest/UriEscapingDataString_RFC3986ReservedWithIRI_Escaped System.PrivateUri.Tests.UriEscapingTest/UriEscapingDataString_RFC3986Reserved_Escaped System.PrivateUri.Tests.UriEscapingTest/UriEscapingDataString_Unicode_SurrogatePair System.PrivateUri.Tests.UriEscapingTest/UriEscapingUriString_FullIPv6Uri_NothingEscaped System.PrivateUri.Tests.UriEscapingTest/UriEscapingUriString_RFC3986ReservedWithIRI_NothingEscaped System.PrivateUri.Tests.UriEscapingTest/UriEscapingUriString_RFC3986Reserved_NothingEscaped System.PrivateUri.Tests.UriEscapingTest/UriFile_ExplicitDosFile_QueryAllowed System.PrivateUri.Tests.UriEscapingTest/UriFile_ExplicitFile_QueryAllowed System.PrivateUri.Tests.UriEscapingTest/UriUnescapeInvalid_AsciiIncompleteUtf8AsciiIriOn_InvalidUtf8LeftAlone System.PrivateUri.Tests.UriEscapingTest/UriUnescapeInvalid_IncompleteUtf8AfterValidUtf8IriOn_InvalidUtf8LeftAlone System.PrivateUri.Tests.UriEscapingTest/UriUnescapeInvalid_ValidUtf8IncompleteUtf8AsciiIriOn_InvalidUtf8LeftAlone System.PrivateUri.Tests.UriEscapingTest/UriUnescape_AsciiUtf8AsciiIriOn_ValidUnescaped System.PrivateUri.Tests.UriEscapingTest/UriUnescape_EscapedAsciiIriOn_Unescaped System.PrivateUri.Tests.UriGetComponentsTest/GetComponents_UnknownScheme_ComponentsUnaffected System.PrivateUri.Tests.UriIpHostTest/UriIPv6Host_Any_Success System.PrivateUri.Tests.UriIpHostTest/UriIPv6Host_CanonicalCollonHex_Success System.PrivateUri.Tests.UriIpHostTest/UriIPv6Host_CompressionRangeSelection_Success System.PrivateUri.Tests.UriIpHostTest/UriIPv6Host_EmbeddedIPv4_Success System.PrivateUri.Tests.UriIpHostTest/UriIPv6Host_LeadingValue_Success System.PrivateUri.Tests.UriIpHostTest/UriIPv6Host_MaxValue_Success System.PrivateUri.Tests.UriIpHostTest/UriIPv6Host_ScopeId_Success System.PrivateUri.Tests.UriIsWellFormedUriStringTest/UriIsWellFormed_NewRelativeWithKnownSchemeAndQuery_SuccessButNotWellFormed System.PrivateUri.Tests.UriIsWellFormedUriStringTest/UriIsWellFormed_RelativeWithPercentAndColon_Failure System.PrivateUri.Tests.UriIsWellFormedUriStringTest/UriIsWellFormed_TryCreateNewRelativeWithPercentAndColon_Success System.PrivateUri.Tests.UriMailToTest/UriMailTo_SchemeAndBackslash_Throws System.PrivateUri.Tests.UriMailToTest/UriMailTo_SchemeUserAtQuery_Throws System.PrivateUri.Tests.UriMailToTest/UriMailTo_SchemeUserAt_Throws System.PrivateUri.Tests.UriMailToTest/UriMailTo_TwoCommaSepratedAddresses_Success System.PrivateUri.Tests.UriMailToTest/UriMailTo_TwoSemiColonSepratedAddresses_Success System.PrivateUri.Tests.UriRelativeResolutionTest/Uri_Relative_BaseVsCharDotSlash_ReturnsCharDotSlash System.PrivateUri.Tests.UriRelativeResolutionTest/Uri_Relative_BaseVsCharDot_ReturnsBasePathPlusCharDot System.PrivateUri.Tests.UriRelativeResolutionTest/Uri_Relative_BaseVsCharDoubleDotSlash_ReturnsCharDoubleDotSlash System.PrivateUri.Tests.UriRelativeResolutionTest/Uri_Relative_BaseVsCharDoubleDot_ReturnsBasePathPlusCharDoubleDot System.PrivateUri.Tests.UriRelativeResolutionTest/Uri_Relative_BaseVsSlashTrippleDotSlash_ReturnsSlashTrippleDotSlash System.PrivateUri.Tests.UriRelativeResolutionTest/Uri_Relative_BaseVsTrippleDot_ReturnsBasePathPlusTrippleDot +10822 area-Serialization Serializable attribute exists in both System.Runtime.Serialization.Formatters and nunit.framework "Hi I have issue with Serializable attribute ``` The type 'SerializableAttribute' exists in both 'System.Runtime.Serialization.Formatters, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'nunit.framework, Version=3.4.1.0. ``` How can I specify the package to use? My project.json : ``` { ""version"": ""1.0.0-*"", ""testRunner"": ""nunit"", ""buildOptions"": { ""debugType"": ""portable"", ""allowUnsafe"": true, ""define"": [ ""WIN64"" ] }, ""frameworks"": { ""netcoreapp1.0"": { ""buildOptions"": { ""compile"": { ""exclude"": [ ""Tests/**/*.cs"", ""Examples/**/**/AssemblyInfo.cs"" ] }, ""define"": [ ""NETSTANDARD1_6"" ] }, ""dependencies"": { ""NETStandard.Library"": ""1.6.0"", ""System.Runtime"": ""4.1.0"", ""System.Runtime.Serialization.Formatters"": ""4.0.0-rc3-24212-01"", ""System.Dynamic.Runtime"": ""4.0.11"", ""System.Threading.ThreadPool"": ""4.0.10"", ""System.Reflection.TypeExtensions"": ""4.1.0"", ""System.Diagnostics.StackTrace"": ""4.0.1"", ""System.Diagnostics.Process"": ""4.1.0"", ""System.Threading.Thread"": ""4.0.0"", ""dotnet-test-nunit"": ""3.4.0-beta-1"", ""NUnit"": ""3.4.1"" }, ""imports"": ""dnxcore50"" }, ""net451"": { ""dependencies"": { ""NUnit"": ""3.4.1"", ""dotnet-test-nunit"": ""3.4.0-alpha-2"" }, ""buildOptions"": { ""compile"": { ""exclude"": [ ""Tests/**/*.cs"", ""Tests/service-bus-tests-net4/Properties/AssemblyInfo.cs"", ""Examples/service-example-csharp-dispatcher/Properties/AssemblyInfo.cs"", ""Examples/service-example-csharp/Properties/AssemblyInfo.cs"" ] } } } }, ""runtimes"": { ""ubuntu.14.04-x64"": {}, ""win10-x64"": {}, ""win7-x64"": {} } } ``` " +10823 area-System.Reflection Test failure: System.Reflection.Context.CustomReflectionContextTests/InstantiateContext_Throws Opened on behalf of @jiangzeng The test `System.Reflection.Context.CustomReflectionContextTests/InstantiateContext_Throws` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.PlatformNotSupportedException)\r Actual: (No exception was thrown) ``` Stack Trace: ``` at System.Reflection.Context.CustomReflectionContextTests.InstantiateContext_Throws() in D:\A\_work\2\s\src\System.Reflection.Context\tests\CustomReflectionContextTests.cs:line 14 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Reflection.Context.Tests/analysis/xunit/System.Reflection.Context.CustomReflectionContextTests~2FInstantiateContext_Throws +10825 area-System.Runtime Test failure: System.Runtime.InteropServices.HandleCollectorTests/CountOverflow Opened on behalf of @jiangzeng The test `System.Runtime.InteropServices.HandleCollectorTests/CountOverflow` has failed. ``` Assert.NotNull() Failure ``` Stack Trace: ``` at System.Runtime.InteropServices.HandleCollectorTests.CountOverflow() in D:\A\_work\2\s\src\System.Runtime.InteropServices\tests\System\Runtime\InteropServices\HandleCollectorTests.cs:line 79 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release +10826 area-System.Numerics Test failure: System.Numerics.Tests.multiplyTest/RunMultiply_TwoLargeBigIntegers_Threshold Opened on behalf of @jiangzeng The test `System.Numerics.Tests.multiplyTest/RunMultiply_TwoLargeBigIntegers_Threshold` has failed. ``` System.TypeInitializationException : The type initializer for 'BigIntTools.Utils' threw an exception.\r ---- System.ArgumentNullException : Value cannot be null.\r Parameter name: type ``` Stack Trace: ``` at BigIntTools.Utils.RunWithFakeThreshold(String name, Int32 value, Action action) in D:\A\_work\2\s\src\System.Runtime.Numerics\tests\BigInteger\BigIntTools.cs:line 46 at System.Numerics.Tests.multiplyTest.RunMultiply_TwoLargeBigIntegers_Threshold() in D:\A\_work\2\s\src\System.Runtime.Numerics\tests\BigInteger\multiply.cs:line 41 ----- Inner Stack Trace ----- at System.Reflection.IntrospectionExtensions.GetTypeInfo(Type type) at BigIntTools.Utils..cctor() in D:\A\_work\2\s\src\System.Runtime.Numerics\tests\BigInteger\BigIntTools.cs:line 38 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Runtime.Numerics.Tests/analysis/xunit/System.Numerics.Tests.multiplyTest~2FRunMultiply_TwoLargeBigIntegers_Threshold Same issue for the tests: System.Numerics.Tests.modpowTest/ModPow1Large2SmallInt_Threshold System.Numerics.Tests.modpowTest/ModPow2Large1SmallInt_Threshold System.Numerics.Tests.modpowTest/ModPow3LargeInt +10827 area-System.Numerics Test failure: System.Numerics.Tests.powTest/RunOverflow Opened on behalf of @jiangzeng The test `System.Numerics.Tests.powTest/RunOverflow` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.OverflowException)\r Actual: typeof(System.OutOfMemoryException): Array dimensions exceeded supported range. ``` Stack Trace: ``` at System.Numerics.BigIntegerBuilder.SetSizeClear(Int32 cu) at System.Numerics.BigIntegerBuilder.Mul(BigIntegerBuilder& reg1, BigIntegerBuilder& reg2) at System.Numerics.BigInteger.Pow(BigInteger value, Int32 exponent) at System.Numerics.Tests.powTest.<>c__DisplayClass9_0.b__0() in D:\A\_work\2\s\src\System.Runtime.Numerics\tests\BigInteger\pow.cs:line 178 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Runtime.Numerics.Tests/analysis/xunit/System.Numerics.Tests.powTest~2FRunOverflow +10828 area-System.Numerics Test failure: System.Numerics.Tests.ComparisonTest/IComparable_Invalid Opened on behalf of @jiangzeng The test `System.Numerics.Tests.ComparisonTest/IComparable_Invalid` has failed. ``` Assert.Equal() Failure\r Expected: obj\r Actual: (null) ``` Stack Trace: ``` at System.Numerics.Tests.ComparisonTest.IComparable_Invalid() in D:\A\_work\2\s\src\System.Runtime.Numerics\tests\BigInteger\Comparison.cs:line 367 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Runtime.Numerics.Tests/analysis/xunit/System.Numerics.Tests.ComparisonTest~2FIComparable_Invalid +10829 area-System.Numerics Test failure: System.Numerics.Tests.ComplexTests/ACos_Advanced Opened on behalf of @jiangzeng The test `System.Numerics.Tests.ComplexTests/ACos_Advanced` has failed. ``` Failure at line 298. Expected real: 0. Actual real: 1.5707963267949\r Expected: True\r Actual: False ``` Stack Trace: ``` at System.Numerics.Tests.ComplexTests.VerifyRealImaginaryProperties(Complex complex, Double real, Double imaginary, Int32 lineNumber) in D:\A\_work\2\s\src\System.Runtime.Numerics\tests\ComplexTests.cs:line 1583 at System.Numerics.Tests.ComplexTests.ACos_Advanced(Double real, Double imaginary, Double expectedReal, Double expectedImaginary) in D:\A\_work\2\s\src\System.Runtime.Numerics\tests\ComplexTests.cs:line 298 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Runtime.Numerics.Tests/analysis/xunit/System.Numerics.Tests.ComplexTests~2FACos_Advanced Same issue for the tests: System.Numerics.Tests.ComplexTests/ACos_Advanced System.Numerics.Tests.ComplexTests/ASin_Advanced System.Numerics.Tests.ComplexTests/Equals +10830 area-System.Numerics Test failure: System.Numerics.Tests.cast_fromTest/RunDoubleExplicitCastFromBigIntegerTests Opened on behalf of @jiangzeng The test `System.Numerics.Tests.cast_fromTest/RunDoubleExplicitCastFromBigIntegerTests` has failed. ``` Assert.Equal() Failure\r Expected: 8\r Actual: 0 ``` Stack Trace: ``` at System.Numerics.Tests.cast_fromTest.VerifyDoubleExplicitCastFromBigInteger(Double value, BigInteger bigInteger) in D:\A\_work\2\s\src\System.Runtime.Numerics\tests\BigInteger\cast_from.cs:line 896 at System.Numerics.Tests.cast_fromTest.DoubleExplicitCastFromLargeBigIntegerTests(Int32 startShift, Int32 bigShiftLoopLimit, Int32 smallShift, Int32 smallShiftLoopLimit) in D:\A\_work\2\s\src\System.Runtime.Numerics\tests\BigInteger\cast_from.cs:line 727 at System.Numerics.Tests.cast_fromTest.RunDoubleExplicitCastFromBigIntegerTests() in D:\A\_work\2\s\src\System.Runtime.Numerics\tests\BigInteger\cast_from.cs:line 567 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Runtime.Numerics.Tests/analysis/xunit/System.Numerics.Tests.cast_fromTest~2FRunDoubleExplicitCastFromBigIntegerTests Same issue for the tests: System.Numerics.Tests.cast_fromTest/RunDoubleExplicitCastFromBigIntegerTests System.Numerics.Tests.cast_fromTest/RunDoubleExplicitCastFromLargeBigIntegerTests +10832 area-System.Numerics Test failure: System.Numerics.Tests.logTest/RunLargeValueLogTests Opened on behalf of @jiangzeng The test `System.Numerics.Tests.logTest/RunLargeValueLogTests` has failed. ``` Assert.True() Failure\r Expected: True\r Actual: False ``` Stack Trace: ``` at System.Numerics.Tests.logTest.LargeValueLogTests(Int32 startShift, Int32 bigShiftLoopLimit, Int32 smallShift, Int32 smallShiftLoopLimit) in D:\A\_work\2\s\src\System.Runtime.Numerics\tests\BigInteger\log.cs:line 166 at System.Numerics.Tests.logTest.RunLargeValueLogTests() in D:\A\_work\2\s\src\System.Runtime.Numerics\tests\BigInteger\log.cs:line 139 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Runtime.Numerics.Tests/analysis/xunit/System.Numerics.Tests.logTest~2FRunLargeValueLogTests Same issue for the tests: System.Numerics.Tests.logTest/RunLargeValueLogTests System.Numerics.Tests.logTest/RunLogTests +10833 area-System.Collections "Desktop test failure: System.Collections.Concurrent.Tests.ConcurrentDictionaryTests/IDicionary_Remove_NullKeyInKeyValuePair_ThrowsArgumentNullException fail with ""Xunit.Sdk.EqualEqualException""" Opened on behalf of @Jiayili1 The test `System.Collections.Concurrent.Tests.ConcurrentDictionaryTests/IDicionary_Remove_NullKeyInKeyValuePair_ThrowsArgumentNullException` has failed. ``` Assert.Equal() Failure\r ? (pos 0)\r Expected: keyValuePair\r Actual: TKey is a reference type and item.Key is ···\r ? (pos 0) ``` Stack Trace: ``` at System.Collections.Concurrent.Tests.ConcurrentDictionaryTests.IDicionary_Remove_NullKeyInKeyValuePair_ThrowsArgumentNullException() in D:\A\_work\2\s\src\System.Collections.Concurrent\tests\ConcurrentDicionary\ConcurrentDictionaryTests.cs:line 742 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.02/workItem/System.Collections.Concurrent.Tests +10838 area-Meta UWP F5 tests use reflection block -- DataContractJsonSerializerTests fail with System.TypeInitializationException Opened on behalf of @jiangzeng The test `DataContractJsonSerializerTests/DCJS_ClassWithDatetimeOffsetTypeProperty` has failed. ``` System.TypeInitializationException : The type initializer for 'System.Runtime.Serialization.XmlFormatReaderGenerator' threw an exception.\r ---- System.InvalidOperationException : The API 'System.Runtime.Serialization.FormatterServices.GetUninitializedObject(System.Type)' cannot be used on the current platform. See http://go.microsoft.com/fwlink/?LinkId=248273 for more information. ``` Stack Trace: ``` at System.Runtime.Serialization.XmlFormatReaderGenerator.UnsafeGetUninitializedObject(Type type) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlFormatReaderGenerator.cs:line 929 at ReadTypeWithDateTimeOffsetTypePropertyFromJson(XmlReaderDelegator , XmlObjectSerializerReadContextComplexJson , XmlDictionaryString , XmlDictionaryString[] ) at System.Runtime.Serialization.Json.JsonClassDataContract.ReadJsonValueCore(XmlReaderDelegator jsonReader, XmlObjectSerializerReadContextComplexJson context) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\JsonClassDataContract.cs:line 138 at System.Runtime.Serialization.Json.JsonDataContract.ReadJsonValue(XmlReaderDelegator jsonReader, XmlObjectSerializerReadContextComplexJson context) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\JsonDataContract.cs:line 101 at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.ReadJsonValue(DataContract contract, XmlReaderDelegator reader, XmlObjectSerializerReadContextComplexJson context) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 718 at System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson.ReadDataContractValue(DataContract dataContract, XmlReaderDelegator reader) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\XmlObjectSerializerReadContextComplexJson.cs:line 54 at System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator reader, String name, String ns, DataContract& dataContract) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerReadContext.cs:line 189 at System.Runtime.Serialization.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator xmlReader, Type declaredType, DataContract dataContract, String name, String ns) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerReadContext.cs:line 126 at System.Runtime.Serialization.XmlObjectSerializerReadContextComplex.InternalDeserialize(XmlReaderDelegator xmlReader, Type declaredType, DataContract dataContract, String name, String ns) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerReadContextComplex.cs:line 72 at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.InternalReadObject(XmlReaderDelegator xmlReader, Boolean verifyObjectName) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 777 at System.Runtime.Serialization.XmlObjectSerializer.InternalReadObject(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 261 at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName, DataContractResolver dataContractResolver) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 280 at System.Runtime.Serialization.XmlObjectSerializer.ReadObjectHandleExceptions(XmlReaderDelegator reader, Boolean verifyObjectName) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 272 at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.ReadObject(XmlDictionaryReader reader) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 600 at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.ReadObject(Stream stream) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 585 at System.Runtime.Serialization.Json.DataContractJsonSerializer.ReadObject(Stream stream) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 161 at DataContractJsonSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractJsonSerializerSettings settings, Func`1 serializerFactory, Boolean skipStringCompare) in D:\A\_work\2\s\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs:line 2217 at DataContractJsonSerializerTests.DCJS_ClassWithDatetimeOffsetTypeProperty() in D:\A\_work\2\s\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs:line 1335 ----- Inner Stack Trace ----- at System.Delegate.CreateDelegateInternal(RuntimeType rtType, RuntimeMethodInfo rtMethod, Object firstArgument, DelegateBindingFlags flags, StackCrawlMark& stackMark) at System.Reflection.RuntimeMethodInfo.CreateDelegateInternal(Type delegateType, Object firstArgument, DelegateBindingFlags bindingFlags, StackCrawlMark& stackMark) at System.Reflection.RuntimeMethodInfo.CreateDelegate(Type delegateType) at System.Runtime.Serialization.XmlFormatReaderGenerator..cctor() in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlFormatReaderGenerator.cs:line 34 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Runtime.Serialization.Json.Tests/analysis/xunit/DataContractJsonSerializerTests~2FDCJS_ClassWithDatetimeOffsetTypeProperty Same issue for the following tests: DCJS_ClassWithDatetimeOffsetTypeProperty DCJS_CollectionInterfaceGetOnlyCollection DCJS_ContainsLinkedList DCJS_DCClassWithEnumAndStruct DCJS_DataContractAttribute DCJS_DataContractWithDotInName DCJS_DataContractWithMinusSignInName DCJS_DataContractWithOperatorsInName DCJS_DataContractWithOtherSymbolsInName DCJS_DataMemberAttribute DCJS_DataMemberNames DCJS_EnumerableInterfaceGetOnlyCollection DCJS_GenericTypeWithPrivateSetter DCJS_IgnoreDataMemberAttribute DCJS_InternalTypeSerialization DCJS_KeyValuePair DCJS_KeyValuePairOfStringObject DCJS_PrivateTypeSerialization DCJS_Queue DCJS_Stack DCJS_SuspensionManager DCJS_TypeWithEmitDefaultValueFalse DCJS_TypeWithInternalDefaultConstructor DCJS_TypeWithKnownTypeAttributeAndInterfaceMember DCJS_TypeWithKnownTypeAttributeAndListOfInterfaceMember +10840 area-Serialization Test failure: DataContractJsonSerializerTests/DCJS_RecursiveCollection Opened on behalf of @jiangzeng The test `DataContractJsonSerializerTests/DCJS_RecursiveCollection` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.Runtime.Serialization.InvalidDataContractException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format ``` Stack Trace: ``` at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) in D:\A\_work\2\s\src\Common\src\System\SR.cs:line 71 at System.Runtime.Serialization.DataContract.ValidatePreviousCollectionTypes(Type collectionType, Type itemType, HashSet`1 previousCollectionTypes) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContract.cs:line 1276 at System.Runtime.Serialization.DataContract.IsTypeSerializable(Type type, HashSet`1 previousCollectionTypes) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContract.cs:line 1257 at System.Runtime.Serialization.DataContract.IsTypeSerializable(Type type, HashSet`1 previousCollectionTypes) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContract.cs:line 1258 at System.Runtime.Serialization.DataContract.IsTypeSerializable(Type type, HashSet`1 previousCollectionTypes) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContract.cs:line 1258 at System.Runtime.Serialization.DataContract.IsTypeSerializable(Type type) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContract.cs:line 1237 at System.Runtime.Serialization.DataContract.ImportKnownTypeAttributes(Type type, Dictionary`2 typesChecked, Dictionary`2& knownDataContracts) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContract.cs:line 1967 at System.Runtime.Serialization.DataContract.ImportKnownTypeAttributes(Type type) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContract.cs:line 1961 at System.Runtime.Serialization.CollectionDataContract.CollectionDataContractCriticalHelper.get_KnownDataContracts() in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\CollectionDataContract.cs:line 898 at System.Runtime.Serialization.CollectionDataContract.get_KnownDataContracts() in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\CollectionDataContract.cs:line 462 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 146 at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 820 at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.InternalWriteObject(XmlWriterDelegator writer, Object graph) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 788 at System.Runtime.Serialization.XmlObjectSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 101 at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 71 at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 62 at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.WriteObject(XmlDictionaryWriter writer, Object graph) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 636 at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.WriteObject(Stream stream, Object graph) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 625 at System.Runtime.Serialization.Json.DataContractJsonSerializer.WriteObject(Stream stream, Object graph) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 156 at DataContractJsonSerializerTests.<>c.b__120_0() in D:\A\_work\2\s\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs:line 1851 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Runtime.Serialization.Json.Tests/analysis/xunit/DataContractJsonSerializerTests~2FDCJS_RecursiveCollection +10842 area-System.Console "Test failure: ReadAndWrite/OutputEncoding fail with ""Assert+WrapperXunitException""" Opened on behalf of @Jiayili1 The test `ReadAndWrite/OutputEncoding` has failed. ``` Assert+WrapperXunitException : File path: D:\A\_work\2\s\src\System.Console\tests\ReadAndWrite.cs. Line: 202\r ---- Assert.Equal() Failure\r Expected: Byte[] []\r Actual: Byte[] [239, 187, 191] ``` Stack Trace: ``` at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) in D:\A\_work\2\s\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs:line 583 at Assert.Equal[T](T expected, T actual, String path, Int32 line) in D:\A\_work\2\s\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs:line 172 at ReadAndWrite.ValidateConsoleEncoding(Encoding encoding) in D:\A\_work\2\s\src\System.Console\tests\ReadAndWrite.cs:line 202 at ReadAndWrite.OutputEncoding() in D:\A\_work\2\s\src\System.Console\tests\ReadAndWrite.cs:line 275 ----- Inner Stack Trace ----- at Assert.Equal[T](T expected, T actual, String path, Int32 line) in D:\A\_work\2\s\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs:line 171 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.02/workItem/System.Console.Tests/analysis/xunit/ReadAndWrite~2FOutputEncoding +10843 area-Serialization Test failure: DataContractSerializerTests/DCS_DeserializeEmptyString Opened on behalf of @jiangzeng The test `DataContractSerializerTests/DCS_DeserializeEmptyString` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.Xml.XmlException)\r Actual: typeof(System.Xml.XmlException): Unexpected end of file. ``` Stack Trace: ``` at System.Xml.EncodingStreamWrapper.ReadBOMEncoding(Boolean notOutOfBand) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Xml\EncodingStreamWrapper.cs:line 228 at System.Xml.EncodingStreamWrapper..ctor(Stream stream, Encoding encoding) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Xml\EncodingStreamWrapper.cs:line 66 at System.Xml.XmlUTF8TextReader.SetInput(Stream stream, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Xml\XmlUTF8TextReader.cs:line 580 at System.Xml.XmlDictionaryReader.CreateTextReader(Stream stream, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Xml\XmlDictionaryReader.cs:line 104 at System.Xml.XmlDictionaryReader.CreateTextReader(Stream stream, XmlDictionaryReaderQuotas quotas) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Xml\XmlDictionaryReader.cs:line 96 at System.Runtime.Serialization.XmlObjectSerializer.ReadObject(Stream stream) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 224 at DataContractSerializerTests.<>c__DisplayClass136_0.b__0() in D:\A\_work\2\s\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 1936 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160915.01/workItem/System.Runtime.Serialization.Xml.Tests/analysis/xunit/DataContractSerializerTests~2FDCS_DeserializeEmptyString +10844 area-System.Console "Test failure: WindowAndCursorProps/WindowWidth_WindowHeight_InvalidSize fail with ""Assert+WrapperXunitException""" Opened on behalf of @Jiayili1 The test `WindowAndCursorProps/WindowWidth_WindowHeight_InvalidSize` has failed. ``` Assert+WrapperXunitException : File path: D:\A\_work\2\s\src\System.Console\tests\WindowAndCursorProps.cs. Line: 36\r ---- Assert.Throws() Failure\r Expected: typeof(System.ArgumentOutOfRangeException)\r Actual: typeof(System.IO.IOException): The handle is invalid.\r ``` Stack Trace: ``` at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) in D:\A\_work\2\s\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs:line 583 at Assert.Throws[T](String paramName, Func`1 testCode, String path, Int32 line) in D:\A\_work\2\s\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs:line 512 at WindowAndCursorProps.WindowWidth_WindowHeight_InvalidSize() in D:\A\_work\2\s\src\System.Console\tests\WindowAndCursorProps.cs:line 36 ----- Inner Stack Trace ----- at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.Console.GetBufferInfo(Boolean throwOnNoConsole, Boolean& succeeded) at System.Console.get_WindowHeight() at System.Console.set_WindowWidth(Int32 value) at WindowAndCursorProps.<>c.b__2_0() in D:\A\_work\2\s\src\System.Console\tests\WindowAndCursorProps.cs:line 36 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.02/workItem/System.Console.Tests/analysis/xunit/WindowAndCursorProps~2FWindowWidth_WindowHeight_InvalidSize +10845 area-System.Console "Tests under ""System.Console.Tests"" fail with ""Assert+WrapperXunitException""" Opened on behalf of @Jiayili1 The test `CancelKeyPressTests/CanAddAndRemoveHandler_Remote` has failed. ``` Assert+WrapperXunitException : File path: D:\A\_work\2\s\src\Common\tests\System\Diagnostics\RemoteExecutorTestBase.cs. Line: 169\r ---- Assert.Equal() Failure\r Expected: 42\r Actual: -532462766 ``` Stack Trace: ``` at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) in D:\A\_work\2\s\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs:line 583 at Assert.Equal[T](T expected, T actual, String path, Int32 line) in D:\A\_work\2\s\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs:line 172 at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in D:\A\_work\2\s\src\Common\tests\System\Diagnostics\RemoteExecutorTestBase.cs:line 169 at CancelKeyPressTests.CanAddAndRemoveHandler_Remote() in D:\A\_work\2\s\src\System.Console\tests\CancelKeyPress.cs:line 33 ----- Inner Stack Trace ----- at Assert.Equal[T](T expected, T actual, String path, Int32 line) in D:\A\_work\2\s\src\Common\tests\System\Diagnostics\AssertWithCallerAttributes.cs:line 171 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.02/workItem/System.Console.Tests Failed tests: CancelKeyPressTests/CanAddAndRemoveHandler_Remote ReadKey/RedirectedConsole_ReadKey RedirectedStream/ErrorRedirect RedirectedStream/InputRedirect RedirectedStream/OutputRedirect WindowAndCursorProps/Title_Set_Windows WindowAndCursorProps/Title_Set_Windows_longlength +10846 area-Serialization Test failure: System.Runtime.Serialization.Xml.Tests.XmlDictionaryReaderTests/ReadElementContentAsStringDataExceedsMaxBytesPerReadQuota Opened on behalf of @jiangzeng The test `System.Runtime.Serialization.Xml.Tests.XmlDictionaryReaderTests/ReadElementContentAsStringDataExceedsMaxBytesPerReadQuota` has failed. ``` System.ArgumentOutOfRangeException : Only Element nodes have attributes.\r Parameter name: index ``` Stack Trace: ``` at System.Xml.XmlBaseReader.GetAttributeNode(Int32 index) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Xml\XmlBaseReader.cs:line 525 at System.Xml.XmlBaseReader.MoveToAttribute(Int32 index) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Xml\XmlBaseReader.cs:line 809 at System.Runtime.Serialization.Xml.Tests.XmlDictionaryReaderTests.ReadElementContentAsStringDataExceedsMaxBytesPerReadQuota() in D:\A\_work\2\s\src\System.Runtime.Serialization.Xml\tests\XmlDictionaryReaderTests.cs:line 86 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Runtime.Serialization.Xml.Tests/analysis/xunit/System.Runtime.Serialization.Xml.Tests.XmlDictionaryReaderTests~2FReadElementContentAsStringDataExceedsMaxBytesPerReadQuota Same issue for the following tests: System.Runtime.Serialization.Xml.Tests.XmlDictionaryReaderTests/ReadElementContentAsStringDataExceedsMaxBytesPerReadQuota System.Runtime.Serialization.Xml.Tests.XmlDictionaryReaderTests/ReadValueChunkReadEncodedDoubleWideChars +10847 area-Serialization Test failure: XmlDictionaryWriterTest/XmlBaseWriter_CheckAsync_ThrowInvalidOperationException Opened on behalf of @jiangzeng The test `XmlDictionaryWriterTest/XmlBaseWriter_CheckAsync_ThrowInvalidOperationException` has failed. ``` System.NotImplementedException : The method or operation is not implemented. ``` Stack Trace: ``` at System.Xml.XmlWriter.WriteRawAsync(Char[] buffer, Int32 index, Int32 count) at System.Xml.XmlDictionaryAsyncCheckWriter.WriteRawAsync(Char[] buffer, Int32 index, Int32 count) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Xml\XmlDictionaryAsyncCheckWriter.cs:line 333 at XmlDictionaryWriterTest.XmlBaseWriter_CheckAsync_ThrowInvalidOperationException() in D:\A\_work\2\s\src\System.Runtime.Serialization.Xml\tests\XmlDictionaryWriterTest.cs:line 106 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Runtime.Serialization.Xml.Tests/analysis/xunit/XmlDictionaryWriterTest~2FXmlBaseWriter_CheckAsync_ThrowInvalidOperationException Same issue for the tests: XmlDictionaryWriterTest/XmlBaseWriter_CheckAsync_ThrowInvalidOperationException XmlDictionaryWriterTest/XmlBaseWriter_WriteBase64Async XmlDictionaryWriterTest/XmlBaseWriter_WriteStartEndElementAsync +10848 area-Serialization Test failure: XmlDictionaryWriterTest/XmlBaseWriter_FlushAsync Opened on behalf of @jiangzeng The test `XmlDictionaryWriterTest/XmlBaseWriter_FlushAsync` has failed. ``` System.ArgumentNullException : Value cannot be null.\r Parameter name: buffer ``` Stack Trace: ``` at System.Xml.XmlBaseWriter.WriteBase64Async(Byte[] buffer, Int32 offset, Int32 count) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Xml\XmlBaseWriter.cs:line 1550 at System.Xml.XmlDictionaryAsyncCheckWriter.WriteBase64Async(Byte[] buffer, Int32 index, Int32 count) in D:\A\_work\2\s\src\System.Private.DataContractSerialization\src\System\Xml\XmlDictionaryAsyncCheckWriter.cs:line 123 at XmlDictionaryWriterTest.XmlBaseWriter_FlushAsync() in D:\A\_work\2\s\src\System.Runtime.Serialization.Xml\tests\XmlDictionaryWriterTest.cs:line 57 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.02/workItem/System.Runtime.Serialization.Xml.Tests/analysis/xunit/XmlDictionaryWriterTest~2FXmlBaseWriter_FlushAsync +10849 area-System.Data "Tests under ""System.Data.SqlClient.Tests"" fail with ""System.IO.FileLoadException""" Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.ExceptionTest/ExceptionTests` has failed. ``` System.IO.FileLoadException : Could not load file or assembly 'System.Data.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) ``` Stack Trace: ``` at System.Data.SqlClient.Tests.ExceptionTest.ExceptionTests() ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.02/workItem/System.Data.SqlClient.Tests Failed tests: System.Data.SqlClient.Tests.ExceptionTest/ExceptionTests System.Data.SqlClient.Tests.ExceptionTest/IndependentConnectionExceptionTestExecuteReader System.Data.SqlClient.Tests.ExceptionTest/IndependentConnectionExceptionTestOpenConnection System.Data.SqlClient.Tests.ExceptionTest/VariousExceptionTests System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/Add_AddItems_ItemsAddedAsEpected System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/Add_HelperOverloads_ItemsAddedAsExpected System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/Add_InvalidItems_ThrowsInvalidOperationException System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/Contains_ItemsAdded_MatchesExpectation System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/CopyTo_InvalidArrayType_Throws System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/CopyTo_ItemsAdded_ItemsCopiedToArray System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/GetEnumerator_ItemsAdded_AllItemsReturnedAndEnumeratorBehavesAsExpected System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/GetEnumerator_ItemsAdded_ItemsFromEnumeratorMatchesItemsFromIndexer System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/GetEnumerator_ModifiedCollectionDuringEnumeration_ThrowsInvalidOperationException System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/GetEnumerator_NoItems_EmptyEnumerator System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/IListAddInsert_InsertNonSqlBulkCopyColumnMappingItems_DoNotThrow System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/IndexOf_BehavesAsExpected System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/Indexer_BehavesAsExpected System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/InsertAndClear_BehavesAsExpected System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/Insert_BehavesAsExpected System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/Members_InvalidRange_ThrowsArgumentOutOfRangeException System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/Methods_NullParameterPassed_ThrowsArgumentNullException System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/Properties_ReturnFalse System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/RemoveAt_BehavesAsExpected System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/Remove_BehavesAsExpected System.Data.SqlClient.Tests.SqlBulkCopyColumnMappingCollectionTest/SyncRoot_NotNullAndSameObject System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Add_ExistingKey_Throws System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Add_NullKey_Throws System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Add_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Clear_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Contains_NullKey_Throws System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_CopyTo_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_CopyTo_Throws System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_ExpectedKeysInDictionary_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_GetEnumerator_ModifyCollection_Throws System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_GetEnumerator_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_IsFixedSize_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_IsReadOnly_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_IsSynchronized_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Keys_CopyTo_ObjectArray_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Keys_CopyTo_StringArray_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Keys_CopyTo_Throws System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Keys_GetEnumerator_ModifyCollection_Throws System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Keys_GetEnumerator_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Keys_IsSynchronized_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Keys_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Keys_SyncRoot_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Remove_ExistingKey_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Remove_NonExistentKey_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Remove_NullKey_Throws System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Setter_ExistingKey_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Setter_NullKey_Throws System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Setter_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_SyncRoot_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_UnexpectedKeysNotInDictionary_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Values_CopyTo_Int64Array_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Values_CopyTo_ObjectArray_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Values_CopyTo_Throws System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Values_GetEnumerator_ModifyCollection_Throws System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Values_GetEnumerator_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Values_IsSynchronized_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Values_Success System.Data.SqlClient.Tests.SqlConnectionTest/RetrieveStatistics_Values_SyncRoot_Success System.Data.SqlClient.Tests.SqlErrorCollectionTest/CopyTo_NonGeneric_Success System.Data.SqlClient.Tests.SqlErrorCollectionTest/CopyTo_NonGeneric_Throws System.Data.SqlClient.Tests.SqlErrorCollectionTest/CopyTo_Success System.Data.SqlClient.Tests.SqlErrorCollectionTest/CopyTo_Throws System.Data.SqlClient.Tests.SqlErrorCollectionTest/GetEnumerator_Success System.Data.SqlClient.Tests.SqlErrorCollectionTest/Indexer_Success System.Data.SqlClient.Tests.SqlErrorCollectionTest/Indexer_Throws System.Data.SqlClient.Tests.SqlErrorCollectionTest/IsSynchronized_Success System.Data.SqlClient.Tests.SqlErrorCollectionTest/SyncRoot_Success +10850 area-System.Data "Test failure: System.Data.SqlClient.Tests.SqlStringTest/CultureInfo_InvalidLcid_Throws fail with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.SqlStringTest/CultureInfo_InvalidLcid_Throws` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.ArgumentOutOfRangeException)\r Actual: typeof(System.TypeInitializationException): The type initializer for 'System.Data.Locale' threw an exception. ``` Stack Trace: ``` at System.Data.Locale.GetLocaleNameForLcid(Int32 lcid) at System.Data.SqlTypes.SqlString.get_CultureInfo() in D:\A\_work\2\s\src\System.Data.SqlClient\src\System\Data\SqlTypes\SQLString.cs:line 281 at System.Data.SqlClient.Tests.SqlStringTest.<>c.b__4_0() in D:\A\_work\2\s\src\System.Data.SqlClient\tests\FunctionalTests\SqlStringTest.cs:line 47 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.02/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.SqlStringTest~2FCultureInfo_InvalidLcid_Throws +10851 area-System.Data "Test failure: System.Data.SqlClient.Tests.SqlStringTest/Constructor_ValueLcid_Success fail with ""System.TypeInitializationException""" Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.SqlStringTest/Constructor_ValueLcid_Success` has failed. ``` System.TypeInitializationException : The type initializer for 'System.Data.Locale' threw an exception.\r ---- System.IO.FileLoadException : Could not load file or assembly 'System.Text.Encoding.CodePages, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) ``` Stack Trace: ``` at System.Data.Locale.GetLocaleNameForLcid(Int32 lcid) at System.Data.SqlTypes.SqlString.get_CultureInfo() in D:\A\_work\2\s\src\System.Data.SqlClient\src\System\Data\SqlTypes\SQLString.cs:line 281 at System.Data.SqlClient.Tests.SqlStringTest.ValidateProperties(String value, CultureInfo culture, SqlString sqlString) in D:\A\_work\2\s\src\System.Data.SqlClient\tests\FunctionalTests\SqlStringTest.cs:line 38 at System.Data.SqlClient.Tests.SqlStringTest.Constructor_ValueLcid_Success(Int32 lcid, String name) in D:\A\_work\2\s\src\System.Data.SqlClient\tests\FunctionalTests\SqlStringTest.cs:line 30 ----- Inner Stack Trace ----- at System.Data.Locale..cctor() ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: System.Data.SqlClient.Tests.SqlStringTest/Constructor_ValueLcid_Success System.Data.SqlClient.Tests.SqlStringTest/Constructor_Value_Success +10852 area-Serialization Three JSON serialization tests failing on Linux "``` DataContractJsonSerializerTests.DCJS_ArrayOfDateTime [FAIL] strings differ at index 12 ↓ [expected]:\/Date(946811045000-0800)\/"","" [actual ]:\/Date(946782245000+0000)\/"","" ↑ [Expected (with length=62)]: [""\/Date(946811045000-0800)\/"",""\/Date(1296734706000-0800)\/""] [Actual (with length=62)]: [""\/Date(946782245000+0000)\/"",""\/Date(1296705906000+0000)\/""] Test failed for input: System.DateTime[] Expected: [""\/Date(946811045000-0800)\/"",""\/Date(1296734706000-0800)\/""] Actual: [""\/Date(946782245000+0000)\/"",""\/Date(1296705906000+0000)\/""] Expected: True Actual: False Stack Trace: at DataContractJsonSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractJsonSerializerSettings settings, Func`1 serializerFactory, Boolean skipStringCompare) at DataContractJsonSerializerTests.DCJS_ArrayOfDateTime() DataContractJsonSerializerTests.DCJS_TypeWithAllPrimitiveProperties [FAIL] strings differ at index 69 ↓ [expected]:Date(1467994211000-0700)\/"",""D [actual ]:Date(1467969011000+0000)\/"",""D ↑ [Expected (with length=262)]: {""BooleanMember"":true,""CharMember"":""C"",""DateTimeMember"":""\/Date(1467994211000-0700)\/"",""DecimalMember"":-14554481076115341312123,""DoubleMember"":123.456,""FloatMember"":456.789,""GuidMember"":""2054fd3e-e118-476a-9962-1a882be51860"",""IntMember"":123,""StringMember"":""abc""} [Actual (with length=262)]: {""BooleanMember"":true,""CharMember"":""C"",""DateTimeMember"":""\/Date(1467969011000+0000)\/"",""DecimalMember"":-14554481076115341312123,""DoubleMember"":123.456,""FloatMember"":456.789,""GuidMember"":""2054fd3e-e118-476a-9962-1a882be51860"",""IntMember"":123,""StringMember"":""abc""} Test failed for input: SerializationTypes.TypeWithAllPrimitiveProperties Expected: {""BooleanMember"":true,""CharMember"":""C"",""DateTimeMember"":""\/Date(1467994211000-0700)\/"",""DecimalMember"":-14554481076115341312123,""DoubleMember"":123.456,""FloatMember"":456.789,""GuidMember"":""2054fd3e-e118-476a-9962-1a882be51860"",""IntMember"":123,""StringMember"":""abc""} Actual: {""BooleanMember"":true,""CharMember"":""C"",""DateTimeMember"":""\/Date(1467969011000+0000)\/"",""DecimalMember"":-14554481076115341312123,""DoubleMember"":123.456,""FloatMember"":456.789,""GuidMember"":""2054fd3e-e118-476a-9962-1a882be51860"",""IntMember"":123,""StringMember"":""abc""} Expected: True Actual: False Stack Trace: at DataContractJsonSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractJsonSerializerSettings settings, Func`1 serializerFactory, Boolean skipStringCompare) at DataContractJsonSerializerTests.DCJS_TypeWithAllPrimitiveProperties() DataContractSerializerTests.DCS_ArrayOfDateTime [FAIL] XML comparison is also failing Test failed for input: System.DateTime[] Expected: 2000-01-02T03:04:05-08:002011-02-03T04:05:06-08:00 Actual: 2000-01-02T03:04:05Z2011-02-03T04:05:06Z Expected: True Actual: False Stack Trace: at DataContractSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractSerializerSettings settings, Func`1 serializerFactory, Boolean skipStringCompare) at DataContractSerializerTests.DCS_ArrayOfDateTime() ``` " +10854 area-System.Collections Queue.Enumerator still uses the modulo operator during MoveNext Queue.Enqueue/Dequeue were changed a while ago not to use `div` since it's pretty slow (takes many cycles): #2515 We should do the same for [this method](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/Queue.cs#L290) which is currently still using modulo. +10856 area-Infrastructure Use same compiler in all corefx builds "In corefx, on windows, the default is still too use the shared compiler, you have to opt into using this Roslyn compiler via ""UseSharedCompilation=false"". On Linux, the default is to use this Rosslyn compiler. All corefx builds should be using the same compiler so that available features across builds are identical. https://github.com/dotnet/buildtools/pull/947 " +10858 area-System.Net Interop+OpenSsl+SslException: SSL Read BIO failed with OpenSSL error "I have an ASP.Net Core app running on OSX using Kestrel and HTTPS. ``` private void MyListener(CancellationToken token) { var certificate = new X509Certificate2(Path.Combine(Path.GetDirectoryName(typeof(MyClass).GetTypeInfo().Assembly.Location),""cert.pfx""),""""); var urlPrefix = ""https://*:""; var url = urlPrefix + this.ListenerPort + ""/""; var host = new WebHostBuilder() .UseKestrel(options => { options.UseHttps(certificate); options.NoDelay = true; options.UseConnectionLogging(); }) .UseUrls(url) .UseStartup() .Build(); host.Run(token); } ``` The server starts fine but when a request is processed I get an exception logged. ``` warn: Microsoft.AspNetCore.Server.Kestrel[0] Connection processing ended abnormally System.IO.IOException: The encryption operation failed, see inner exception. ---> Interop+OpenSsl+SslException: SSL Read BIO failed with OpenSSL error - . at Interop.OpenSsl.BioRead(SafeBioHandle bio, Byte[] buffer, Int32 count) at Interop.OpenSsl.Encrypt(SafeSslHandle context, Byte[] input, Int32 offset, Int32 count, Byte[]& output, SslErrorCode& errorCode) at System.Net.SslStreamPal.EncryptDecryptHelper(SafeDeleteContext securityContext, Byte[] input, Int32 offset, Int32 size, Boolean encrypt, Byte[]& output, Int32& resultSize) --- End of inner exception stack trace --- at System.Net.Security.SslStreamInternal.StartWriting(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStreamInternal.ProcessWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStreamInternal.BeginWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncCallback asyncCallback, Object asyncState) at System.Net.Security.SslStream.<>c.b__86_0(Byte[] bufferArg, Int32 offsetArg, Int32 sizeArg, AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2,TArg3](Func`6 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state, TaskCreationOptions creationOptions) at System.Net.Security.SslStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 size, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Filter.Internal.LoggingStream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Filter.Internal.StreamSocketOutput.WriteAsync(ArraySegment`1 buffer, Boolean chunk, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.d__153.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() ``` This is also an issue on Linux I believe after finding an issue on SO http://stackoverflow.com/questions/38960081/asp-net-core-linux-ssl-ssl-read-bio-failed-with-openssl-error " +10859 area-System.Data Implement DbProviderFactories DbProviderFactories is not currently implemented in the CoreFx but was in the full framework since version 2.0. Doc : https://msdn.microsoft.com/fr-fr/library/system.data.common.dbproviderfactories(v=vs.110).aspx Source code : http://referencesource.microsoft.com/#System.Data/System/Data/Common/DbProviderFactories.cs Any advise on porting the code? +10860 area-System.Reflection System.Reflection.Emit incorrectly lists NETCore50 as supported This problem has existed since the first release of the package. You could never actually use this package on netcore50 because it depended on System.Reflection.Emit.ILGeneration which correctly **did not** support netcore50. I need to add some additional knobs on package harvesting to clean this up. +10867 area-Infrastructure Enable per-commit arm64 build and test runs @gkhanna79 @Priya91 +10872 area-Infrastructure Wrong calculated values for FilterOSGroup with run.exe When calling `build-packages.cmd/sh` the values calculated for the property `FilterToOSGroup` are: - Windows: `FilterToOSGroup=win7` and it should be `FilterToOSGroup=Windows_NT` - Mac: `FilterToOSGroup=osx.10.10` and it should be `FilterToOSGroup=osx.10` +10873 area-System.IO Test failure: System.IO.Tests.File_Delete_Tests/FileSystemWatcher_File_Delete_DeepDirectoryStructure Opened on behalf of @jiangzeng The test `System.IO.Tests.File_Delete_Tests/FileSystemWatcher_File_Delete_DeepDirectoryStructure` has failed. ``` System.IO.DirectoryNotFoundException : Could not find a part of the path '/tmp/File_Delete_Tests_qzhewplr.ib5/FileSystemWatcher_File_Delete_DeepDirectoryStructure_78/dir/dir/dir1/dir2/dir3/dir4/dir5/dir6/dir7/dir8/dir9/dir10/dir11/dir12/dir13/dir14/dir15/dir16/dir17/dir18/dir19/file'. ``` Stack Trace: ``` at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at System.IO.UnixFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.UnixFileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.Tests.File_Delete_Tests.<>c__DisplayClass3_0.b__1() at System.IO.Tests.FileSystemWatcherTest.ExpectEvent(FileSystemWatcher watcher, WatcherChangeTypes expectedEvents, Action action, Action cleanup, String[] expectedPaths, Int32 attempts) at System.IO.Tests.File_Delete_Tests.FileSystemWatcher_File_Delete_DeepDirectoryStructure() ``` Failing configurations: - OSX.1011.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fcli~2F/build/20160816.08/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.File_Delete_Tests~2FFileSystemWatcher_File_Delete_DeepDirectoryStructure +10875 area-System.IO Test failure: System.IO.Packaging.Tests.Tests/T018_GetMainDocPartAndStyleDefPart Opened on behalf of @jiangzeng The test `System.IO.Packaging.Tests.Tests/T018_GetMainDocPartAndStyleDefPart` has failed. ``` System.MissingMethodException : Method not found: 'System.Xml.Linq.XDocument System.Xml.Linq.XDocument.Load(System.Xml.XmlReader)'. ``` Stack Trace: ``` at System.IO.Packaging.Tests.Tests.T018_GetMainDocPartAndStyleDefPart() ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.IO.Packaging.Tests/analysis/xunit/System.IO.Packaging.Tests.Tests~2FT018_GetMainDocPartAndStyleDefPart Same issue for the test: System.IO.Packaging.Tests.Tests/T019_GetPartFromRelativeUri +10877 area-System.Collections Test failure: System.Collections.Tests.SortedList_IDictionary_NonGeneric_Tests/IDictionary_NonGeneric_ItemSet_KeyOfWrongType Opened on behalf of @jiangzeng The test `System.Collections.Tests.SortedList_IDictionary_NonGeneric_Tests/IDictionary_NonGeneric_ItemSet_KeyOfWrongType` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: key ``` Stack Trace: ``` at System.Collections.Generic.SortedList`2.System.Collections.IDictionary.set_Item(Object key, Object value) at System.Collections.Tests.SortedList_IDictionary_NonGeneric_Tests.<>c__DisplayClass6_0.b__0() in D:\A\_work\2\s\src\System.Collections\tests\Generic\SortedList\SortedList.Tests.cs:line 51 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Collections.Tests/analysis/xunit/System.Collections.Tests.SortedList_IDictionary_NonGeneric_Tests~2FIDictionary_NonGeneric_ItemSet_KeyOfWrongType +10878 area-System.Security Test failure: System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/Rc4AndCngWrappersDontMixTest Opened on behalf of @jiangzeng The test `System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/Rc4AndCngWrappersDontMixTest` has failed. ``` Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The request is not supported ``` Stack Trace: ``` at System.Security.Cryptography.Pkcs.EnvelopedCms.DecryptContent(RecipientInfoCollection recipientInfos, X509Certificate2Collection extraStore) at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.Rc4AndCngWrappersDontMixTest() in D:\A\_work\2\s\src\System.Security.Cryptography.Pkcs\tests\EnvelopedCms\EdgeCasesTests.cs:line 158 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Security.Cryptography.Pkcs.Tests/analysis/xunit/System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests~2FRc4AndCngWrappersDontMixTest +10879 area-System.Security Test failure: System.Security.Cryptography.X509Certificates.Tests.PfxTests/ReadECDsaPrivateKey_BrainpoolP160r1_Pfx Opened on behalf of @jiangzeng The test `System.Security.Cryptography.X509Certificates.Tests.PfxTests/ReadECDsaPrivateKey_BrainpoolP160r1_Pfx` has failed. ``` System.NullReferenceException : Object reference not set to an instance of an object. ``` Stack Trace: ``` at System.Security.Cryptography.X509Certificates.Tests.PfxTests.AssertEccAlgorithm(ECDsa ecdsa, String algorithmId) in D:\A\_work\2\s\src\System.Security.Cryptography.X509Certificates\tests\PfxTests.cs:line 196 at System.Security.Cryptography.X509Certificates.Tests.PfxTests.ReadECDsaPrivateKey_BrainpoolP160r1_Pfx(Byte[] pfxData) in D:\A\_work\2\s\src\System.Security.Cryptography.X509Certificates\tests\PfxTests.cs:line 148 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Security.Cryptography.X509Certificates.Tests/analysis/xunit/System.Security.Cryptography.X509Certificates.Tests.PfxTests~2FReadECDsaPrivateKey_BrainpoolP160r1_Pfx +10880 area-System.Diagnostics "Tests under ""System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests"" fail with ""Xunit.Sdk.EqualException""" "Opened on behalf of @Jiayili1 The test `System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests/TraceData_ObjectArray_Test` has failed. ``` Assert.Equal() Failure\r ? (pos 32)\r Expected: ···;Verbose;12;;;73032;""9"";""2016-08-17T00:26:12.8975461Z"";264819···\r Actual: ···;Verbose;12;;;73032;;""9"";""2016-08-17T00:26:12.8975461Z"";26481···\r ? (pos 32) ``` Stack Trace: ``` at System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests.TraceData_ObjectArray_Test(String delimiter, TraceFilter filter, TraceEventCache eventCache, String source, TraceEventType eventType, Int32 id, Object[] data) in D:\A\_work\4\s\src\System.Diagnostics.TextWriterTraceListener\tests\DelimiterWriteMethodTests.cs:line 147 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.08/workItem/System.Diagnostics.TextWriterTraceListener.Tests Failed tests: System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests/TraceData_ObjectArray_Test System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests/TraceData_Object_Test System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests/TraceEvent_FormatString_Test System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests/TraceEvent_String_Test " +10881 area-System.Security "Tests fail with ""System.PlatformNotSupportedException : Operation is not supported on this platform""" Opened on behalf of @jiangzeng The test `System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests/TestECDsa224PublicKey` has failed. ``` System.PlatformNotSupportedException : Operation is not supported on this platform. ``` Stack Trace: ``` at Internal.Cryptography.Pal.X509Pal.ImportPublicKeyInfo(SafeCertContextHandle certContext) at Internal.Cryptography.Pal.X509Pal.DecodeECDsaPublicKey(CertificatePal certificatePal) at Internal.Cryptography.Pal.X509Pal.DecodePublicKey(Oid oid, Byte[] encodedKeyValue, Byte[] encodedParameters, ICertificatePal certificatePal) at Internal.Cryptography.Pal.CertificateExtensionsCommon.GetPublicKey[T](X509Certificate2 certificate, Predicate`1 matchesConstraints) at System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests.TestECDsa224PublicKey() in D:\A\_work\2\s\src\System.Security.Cryptography.X509Certificates\tests\PublicKeyTests.cs:line 315 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Security.Cryptography.X509Certificates.Tests/analysis/xunit/System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests~2FTestECDsa224PublicKey Same issue for the following tests: System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests/TestECDsa224PublicKey System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests/TestECDsaPublicKey System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests/TestECDsaPublicKey_BrainpoolP160r1_ValidatesSignature System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests/TestECDsaPublicKey_ValidatesSignature System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests/TestKey_ECDsaCng256 System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests/TestKey_ECDsaCng384 System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests/TestKey_ECDsaCng521 System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests/TestKey_ECDsabrainpool_PublicKey +10883 area-System.Security Test failure: WindowsIdentityTests/CloneAndProperties Opened on behalf of @jiangzeng The test `WindowsIdentityTests/CloneAndProperties` has failed. ``` System.UnauthorizedAccessException : Attempted to perform an unauthorized operation. ``` Stack Trace: ``` at System.Security.Principal.WindowsIdentity.get_AuthenticationType() at System.Security.Claims.ClaimsIdentity..ctor(IIdentity identity, IEnumerable`1 claims, String authenticationType, String nameType, String roleType) at System.Security.Principal.WindowsIdentity..ctor(WindowsIdentity identity) at System.Security.Principal.WindowsIdentity.Clone() at WindowsIdentityTests.CloneAndProperties() in D:\A\_work\2\s\src\System.Security.Principal.Windows\tests\WindowsIdentityTests.cs:line 45 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Security.Principal.Windows.Tests/analysis/xunit/WindowsIdentityTests~2FCloneAndProperties +10884 area-System.Security Test failure: WindowsIdentityTests/ConstructorsAndProperties Opened on behalf of @jiangzeng The test `WindowsIdentityTests/ConstructorsAndProperties` has failed. ``` Assert.True() Failure\r Expected: True\r Actual: False ``` Stack Trace: ``` at WindowsIdentityTests.ConstructorsAndProperties() in D:\A\_work\2\s\src\System.Security.Principal.Windows\tests\WindowsIdentityTests.cs:line 36 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Security.Principal.Windows.Tests/analysis/xunit/WindowsIdentityTests~2FConstructorsAndProperties +10885 area-System.Globalization "Tests under ""System.Globalization.Tests"" fail with ""System.AggregateException""" Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.CultureInfoAsync/TestCurrentCulturesAsync` has failed. ``` System.AggregateException : One or more errors occurred.\r ---- Assert.Equal() Failure\r Expected: en-US\r Actual: ja-JP ``` Stack Trace: ``` at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Globalization.Tests.CultureInfoAsync.TestCurrentCulturesAsync() in D:\A\_work\4\s\src\System.Globalization\tests\CultureInfo\CultureInfoAsync.cs:line 32 ----- Inner Stack Trace ----- at System.Globalization.Tests.CultureInfoAsync.<>c__DisplayClass0_0.b__0() in D:\A\_work\4\s\src\System.Globalization\tests\CultureInfo\CultureInfoAsync.cs:line 27 at System.Threading.Tasks.Task.Execute() ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.08/workItem/System.Globalization.Tests Failed Tests: System.Globalization.Tests.CultureInfoAsync/TestCurrentCulturesAsync System.Globalization.Tests.CultureInfoAsync/TestCurrentCulturesWithAwait +10886 area-System.Text Test failure: System.Text.Tests.EncodingTest/TestDefaultEncodings Opened on behalf of @jiangzeng The test `System.Text.Tests.EncodingTest/TestDefaultEncodings` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.NotSupportedException)\r Actual: (No exception was thrown) ``` Stack Trace: ``` at System.Text.Tests.EncodingTest.TestDefaultEncodings() in D:\A\_work\2\s\src\System.Text.Encoding.CodePages\tests\EncodingCodePages.cs:line 464 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Text.Encoding.CodePages.Tests/analysis/xunit/System.Text.Tests.EncodingTest~2FTestDefaultEncodings +10887 area-System.IO "Tests under ""System.IO.Compression.Tests"" fail with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.IO.Compression.Tests.DeflateStreamTests/FlushBeforeFirstWrites` has failed. ``` Assert.Equal() Failure\r Expected: Byte[] [62, 23, 186, 150, 174]\r Actual: Byte[] [] ``` Stack Trace: ``` at System.IO.Compression.Tests.DeflateStreamTests.d__48.MoveNext() in D:\A\_work\4\s\src\System.IO.Compression\tests\DeflateStreamTests.cs:line 822 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.IO.Compression.Tests.DeflateStreamTests.d__47.MoveNext() in D:\A\_work\4\s\src\System.IO.Compression\tests\DeflateStreamTests.cs:line 805 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.08/workItem/System.IO.Compression.Tests Failed Tests: System.IO.Compression.Tests.DeflateStreamTests/FlushBeforeFirstWrites System.IO.Compression.Tests.DeflateStreamTests/RoundTripWithFlush +10888 area-System.IO Test failure: System.IO.Compression.Tests.DeflateStreamTests/WrapNullReturningTasksStream Opened on behalf of @Jiayili1 The test `System.IO.Compression.Tests.DeflateStreamTests/WrapNullReturningTasksStream` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.InvalidOperationException)\r Actual: (No exception was thrown) ``` Stack Trace: ``` --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.IO.Compression.Tests.DeflateStreamTests.d__51.MoveNext() in D:\A\_work\4\s\src\System.IO.Compression\tests\DeflateStreamTests.cs:line 884 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.08/workItem/System.IO.Compression.Tests +10889 area-System.IO Test failure: System.IO.Compression.Tests.DeflateStreamTests/WrapStreamReturningBadReadValues Opened on behalf of @Jiayili1 The test `System.IO.Compression.Tests.DeflateStreamTests/WrapStreamReturningBadReadValues` has failed. ``` System.IO.InvalidDataException : Block length does not match with its complement. ``` Stack Trace: ``` at System.IO.Compression.Inflater.DecodeUncompressedBlock(Boolean& end_of_block) at System.IO.Compression.Inflater.Decode() at System.IO.Compression.Inflater.Inflate(Byte[] bytes, Int32 offset, Int32 length) at System.IO.Compression.DeflateStream.Read(Byte[] array, Int32 offset, Int32 count) at System.IO.Compression.Tests.DeflateStreamTests.d__52.MoveNext() in D:\A\_work\4\s\src\System.IO.Compression\tests\DeflateStreamTests.cs:line 896 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.08/workItem/System.IO.Compression.Tests/analysis/xunit/System.IO.Compression.Tests.DeflateStreamTests~2FWrapStreamReturningBadReadValues +10890 area-System.IO "Tests under ""System.IO.Compression.Tests.DeflateStreamTests"" fail with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.IO.Compression.Tests.DeflateStreamTests/OverlappingFlushAsync_DuringFlushAsync` has failed. ``` Assert.True() Failure\r Expected: True\r Actual: False ``` Stack Trace: ``` at System.IO.Compression.Tests.DeflateStreamTests.d__2.MoveNext() in D:\A\_work\4\s\src\System.IO.Compression\tests\DeflateStreamTests.cs:line 64 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.08/workItem/System.IO.Compression.Tests Failed tests: System.IO.Compression.Tests.DeflateStreamTests/OverlappingFlushAsync_DuringFlushAsync System.IO.Compression.Tests.DeflateStreamTests/OverlappingFlushAsync_DuringReadAsync System.IO.Compression.Tests.DeflateStreamTests/OverlappingFlushAsync_DuringWriteAsync System.IO.Compression.Tests.DeflateStreamTests/OverlappingReadAsync System.IO.Compression.Tests.DeflateStreamTests/OverlappingWriteAsync System.IO.Compression.Tests.DeflateStreamTests/Precancellation +10891 area-System.Threading "Tests under ""ThreadPoolBoundHandleTests"" fail with ""System.ArgumentException : 'handle' has been disposed or is an invalid handle""" Opened on behalf of @jiangzeng The test `ThreadPoolBoundHandleTests/AllocateNativeOverlapped_BlittableTypeAsPinData_DoesNotThrow` has failed. ``` System.ArgumentException : 'handle' has been disposed or is an invalid handle.\r Parameter name: handle ``` Stack Trace: ``` at System.Threading.ThreadPoolBoundHandle.BindHandle(SafeHandle handle) at ThreadPoolBoundHandleTests.AllocateNativeOverlapped_BlittableTypeAsPinData_DoesNotThrow() in D:\A\_work\2\s\src\System.Threading.Overlapped\tests\ThreadPoolBoundHandle_AllocateNativeOverlappedTests.cs:line 87 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Threading.Overlapped.Tests Same issue for the following tests: ThreadPoolBoundHandleTests/AllocateNativeOverlapped_BlittableTypeAsPinData_DoesNotThrow ThreadPoolBoundHandleTests/AllocateNativeOverlapped_EmptyArrayAsPinData_DoesNotThrow ThreadPoolBoundHandleTests/AllocateNativeOverlapped_NonBlittableTypeAsPinData_Throws ThreadPoolBoundHandleTests/AllocateNativeOverlapped_NullAsCallback_ThrowsArgumentNullException ThreadPoolBoundHandleTests/AllocateNativeOverlapped_NullAsContext_DoesNotThrow ThreadPoolBoundHandleTests/AllocateNativeOverlapped_NullAsPinData_DoesNotThrow ThreadPoolBoundHandleTests/AllocateNativeOverlapped_ObjectArrayAsPinData_DoesNotThrow ThreadPoolBoundHandleTests/AllocateNativeOverlapped_ObjectArrayWithNonBlittableTypeAsPinData_Throws ThreadPoolBoundHandleTests/AllocateNativeOverlapped_PossibleReusedReturnedNativeOverlapped_OffsetLowAndOffsetHighSetToZero ThreadPoolBoundHandleTests/AllocateNativeOverlapped_PreAllocated_ReturnedNativeOverlapped_AllFieldsZero ThreadPoolBoundHandleTests/AllocateNativeOverlapped_PreAllocated_ReusedReturnedNativeOverlapped_OffsetLowAndOffsetHighSetToZero ThreadPoolBoundHandleTests/AllocateNativeOverlapped_PreAllocated_ThrowsArgumentNullException ThreadPoolBoundHandleTests/AllocateNativeOverlapped_PreAllocated_WhenAlreadyAllocated_ThrowsArgumentException ThreadPoolBoundHandleTests/AllocateNativeOverlapped_PreAllocated_WhenDisposed_ThrowsObjectDisposedException ThreadPoolBoundHandleTests/AllocateNativeOverlapped_PreAllocated_WhenHandleDisposed_ThrowsObjectDisposedException ThreadPoolBoundHandleTests/AllocateNativeOverlapped_ReturnedNativeOverlapped_AllFieldsZero ThreadPoolBoundHandleTests/AllocateNativeOverlapped_WhenDisposed_ThrowsObjectDisposedException ThreadPoolBoundHandleTests/BindHandle_AlreadyBoundHandleAsHandle_ThrowsArgumentException ThreadPoolBoundHandleTests/Dispose_CalledMultipleTimes_DoesNotThrow ThreadPoolBoundHandleTests/Dispose_DoesNotDisposeHandle ThreadPoolBoundHandleTests/Dispose_WithoutFreeingNativeOverlapped_DoesNotThrow ThreadPoolBoundHandleTests/FlowsAsyncLocalsToCallback ThreadPoolBoundHandleTests/FreeNativeOverlapped_NullAsNativeOverlapped_ThrowsArgumentNullException ThreadPoolBoundHandleTests/FreeNativeOverlapped_WhenDisposed_DoesNotThrow ThreadPoolBoundHandleTests/FreeNativeOverlapped_WithWrongHandle_ThrowsArgumentException ThreadPoolBoundHandleTests/GetNativeOverlappedState_WhenUnderlyingStateIsIAsyncResult_ReturnsIAsyncResult ThreadPoolBoundHandleTests/GetNativeOverlappedState_WhenUnderlyingStateIsNull_ReturnsNull ThreadPoolBoundHandleTests/GetNativeOverlappedState_WhenUnderlyingStateIsObject_ReturnsObject ThreadPoolBoundHandleTests/Handle_AfterDisposed_DoesNotThrow Handle_ReturnsHandle ThreadPoolBoundHandleTests/MultipleOperationsOverMultipleHandles ThreadPoolBoundHandleTests/MultipleOperationsOverSingleHandle ThreadPoolBoundHandleTests/SingleOperationOverSingleHandle +10892 area-System.Xml Test failure: System.Xml.Linq.Tests.XAttributeAxesWithXName/InvalidXNameTest Opened on behalf of @jiangzeng The test `System.Xml.Linq.Tests.XAttributeAxesWithXName/InvalidXNameTest` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.Xml.XmlException)\r Actual: typeof(System.Xml.XmlException): Name cannot begin with the '*' character, hexadecimal value 0x2A. ``` Stack Trace: ``` at System.Xml.XmlConvert.VerifyNCName(String name, ExceptionType exceptionType) at System.Xml.Linq.XName..ctor(XNamespace ns, String localName) at System.Xml.Linq.XNamespace.GetName(String localName) at System.Xml.Linq.Tests.XAttributeAxesWithXName.<>c.b__2_0() in D:\A\_work\2\s\src\System.Xml.XDocument\tests\axes\InvalidParamValidation.cs:line 53 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Xml.XDocument.Axes.Tests/analysis/xunit/System.Xml.Linq.Tests.XAttributeAxesWithXName~2FInvalidXNameTest +10893 area-System.IO Test failure: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile/FileDoesNotExist Opened on behalf of @Jiayili1 The test `System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile/FileDoesNotExist` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.IO.FileNotFoundException)\r Actual: typeof(System.ArgumentException): Combining FileMode: Truncate with FileSystemRights: ReadData, CreateFiles is invalid. FileMode.Truncate is valid only when used with FileSystemRights.Write. ``` Stack Trace: ``` at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileSystemRights rights, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateFromFile(String path, FileMode mode, String mapName, Int64 capacity, MemoryMappedFileAccess access) at System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.<>c__DisplayClass18_0.b__1() in D:\A\_work\4\s\src\System.IO.MemoryMappedFiles\tests\MemoryMappedFile.CreateFromFile.Tests.cs:line 552 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug +10894 area-System.IO Test failure: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile/FileInUse_CreateFromFile_SucceedsWithReadOnly Opened on behalf of @Jiayili1 The test `System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile/FileInUse_CreateFromFile_SucceedsWithReadOnly` has failed. ``` System.IO.IOException : The process cannot access the file 'C:\Users\DotNetTestRunner\AppData\Local\Temp\MemoryMappedFileTests_CreateFromFile_sjo1vehh.5sv\FileInUse_CreateFromFile_SucceedsWithReadOnly_626' because it is being used by another process. ``` Stack Trace: ``` at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileSystemRights rights, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateFromFile(String path, FileMode mode, String mapName, Int64 capacity, MemoryMappedFileAccess access) at System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.FileInUse_CreateFromFile_SucceedsWithReadOnly() in D:\A\_work\4\s\src\System.IO.MemoryMappedFiles\tests\MemoryMappedFile.CreateFromFile.Tests.cs:line 626 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug +10895 area-System.IO Test failure: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile/FileNotOpenedForExecute Few dupes: - Test failure: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile/FileNotOpenedForExecute - Test failure: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile/FileInUse_CreateFromFile_SucceedsWithReadOnly - Test failure: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile/FileDoesNotExist Opened on behalf of @Jiayili1 The test `System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile/FileNotOpenedForExecute` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.UnauthorizedAccessException)\r Actual: (No exception was thrown) ``` Stack Trace: ``` at System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.FileNotOpenedForExecute(MemoryMappedFileAccess access) in D:\A\_work\4\s\src\System.IO.MemoryMappedFiles\tests\MemoryMappedFile.CreateFromFile.Tests.cs:line 648 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Failed tests: FileNotOpenedForExecute WriteToReadOnlyFile +10896 area-System.Xml "Tests fail with ""System.MissingMethodException : Method not found: 'System.Xml.XmlNodeType System.Xml.Linq.XObject.get_NodeType()'.""" Opened on behalf of @jiangzeng The test `CoreXml.Test.XLinq.FunctionalTests.EventsTests.EvensReplaceAttributes/ExecuteXAttributeVariation` has failed. ``` System.MissingMethodException : Method not found: 'System.Xml.XmlNodeType System.Xml.Linq.XObject.get_NodeType()'. ``` Stack Trace: ``` at CoreXml.Test.XLinq.UndoManager.Changing(Object sender, XObjectChangeEventArgs e) at System.EventHandler`1.Invoke(Object sender, TEventArgs e) at System.Xml.Linq.XObject.NotifyChanging(Object sender, XObjectChangeEventArgs e) at System.Xml.Linq.XElement.RemoveAttributes() at System.Xml.Linq.XElement.ReplaceAttributes(Object content) at CoreXml.Test.XLinq.FunctionalTests.EventsTests.EvensReplaceAttributes.ExecuteXAttributeVariation(XAttribute[] content) in D:\A\_work\2\s\src\System.Xml.XDocument\tests\events\EventsReplace.cs:line 201 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Xml.XDocument.Events.Tests +10897 area-System.IO "Test failure: System.IO.Packaging.Tests.Tests/T018_GetMainDocPartAndStyleDefPart with ""Xunit.Sdk.NotNullException""" Opened on behalf of @Jiayili1 The test `System.IO.Packaging.Tests.Tests/T018_GetMainDocPartAndStyleDefPart` has failed. ``` Assert.NotNull() Failure ``` Stack Trace: ``` at System.IO.Packaging.Tests.Tests.T018_GetMainDocPartAndStyleDefPart() in D:\A\_work\4\s\src\System.IO.Packaging\tests\Tests.cs:line 1787 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.08/workItem/System.IO.Packaging.Tests Failed tests: System.IO.Packaging.Tests.Tests/T018_GetMainDocPartAndStyleDefPart System.IO.Packaging.Tests.Tests/T019_GetPartFromRelativeUri System.IO.Packaging.Tests.Tests/T020_GetNonExistentPart +10898 area-System.IO Test failure: System.IO.Packaging.Tests.Tests/T151_InvalidDocProps Opened on behalf of @Jiayili1 The test `System.IO.Packaging.Tests.Tests/T151_InvalidDocProps` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.IO.FileFormatException)\r Actual: (No exception was thrown) ``` Stack Trace: ``` at System.IO.Packaging.Tests.Tests.T151_InvalidDocProps() in D:\A\_work\4\s\src\System.IO.Packaging\tests\Tests.cs:line 588 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.08/workItem/System.IO.Packaging.Tests Failed tests: System.IO.Packaging.Tests.Tests/T151_InvalidDocProps System.IO.Packaging.Tests.Tests/T152_InvalidDocProps System.IO.Packaging.Tests.Tests/T155_BadDateTimeDocProps +10899 area-System.IO "Test failure: System.IO.Pipes.Tests.NamedPipeTest_AclExtensions/GetAccessControl_NamedPipeClientStream_Broken with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `System.IO.Pipes.Tests.NamedPipeTest_AclExtensions/GetAccessControl_NamedPipeClientStream_Broken` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.InvalidOperationException)\r Actual: typeof(System.IO.IOException): Pipe is broken. ``` Stack Trace: ``` at System.IO.Pipes.NamedPipeClientStream.CheckPipePropertyOperations() at System.IO.Pipes.PipeStream.SetAccessControl(PipeSecurity pipeSecurity) at System.IO.Pipes.Tests.NamedPipeTest_AclExtensions.<>c__DisplayClass2_0.b__1() in D:\A\_work\4\s\src\System.IO.Pipes.AccessControl\tests\NamedPipeTests\NamedPipeTest.AclExtensions.cs:line 64 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug +10900 area-System.Xml Test failure: XDocumentTests.SDMSample.SDM_Element/ElementWithXmlnsAttribute Opened on behalf of @jiangzeng The test `XDocumentTests.SDMSample.SDM_Element/ElementWithXmlnsAttribute` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.Xml.XmlException)\r Actual: typeof(System.Xml.XmlException): The prefix '' cannot be redefined from '' to 'http://tempuri/test' within the same start element tag. ``` Stack Trace: ``` at System.Xml.XmlWellFormedWriter.PushNamespaceExplicit(String prefix, String ns) at System.Xml.XmlWellFormedWriter.WriteEndAttribute() at System.Xml.Linq.ElementWriter.WriteStartElement(XElement e) at System.Xml.Linq.ElementWriter.WriteElement(XElement e) at System.Xml.Linq.XElement.WriteTo(XmlWriter writer) at System.Xml.Linq.XNode.GetXmlString(SaveOptions o) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Xml.XDocument.SDMSample.Tests/analysis/xunit/XDocumentTests.SDMSample.SDM_Element~2FElementWithXmlnsAttribute +10901 area-System.Net Test failure: System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest/NoCallback_ValidCertificate_CallbackNotCalled with System.IO.FileLoadException : Could not load file or assembly 'System.Diagnostics.DiagnosticSource' Opened on behalf of @Jiayili1 The test `System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest/NoCallback_ValidCertificate_CallbackNotCalled` has failed. ``` System.IO.FileLoadException : Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) ``` Stack Trace: ``` at System.Net.Http.WinHttpHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken) at System.Net.Http.HttpClient.GetAsync(Uri requestUri, HttpCompletionOption completionOption, CancellationToken cancellationToken) at System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest.d__3.MoveNext() in D:\A\_work\4\s\src\System.Net.Http.WinHttpHandler\tests\FunctionalTests\ServerCertificateTest.cs:line 37 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug +10902 area-System.Net "Test failure: System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest/UseCallback_CallbackReturnsFailure_ThrowsInnerSecurityFailureException with ""System.MissingMethodException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest/UseCallback_CallbackReturnsFailure_ThrowsInnerSecurityFailureException` has failed. ``` System.MissingMethodException : Method not found: 'Void System.Net.Http.WinHttpHandler.set_ServerCertificateValidationCallback(System.Func`5)'. ``` Stack Trace: ``` at System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest.d__7.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest.UseCallback_CallbackReturnsFailure_ThrowsInnerSecurityFailureException() ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.08/workItem/System.Net.Http.WinHttpHandler.Functional.Tests Failed tests: System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest/UseCallback_CallbackReturnsFailure_ThrowsInnerSecurityFailureException System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest/UseCallback_CallbackThrowsSpecificException_ThrowsInnerSpecificException System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest/UseCallback_NotSecureConnection_CallbackNotCalled System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest/UseCallback_RedirectandValidCertificate_ExpectedValuesDuringCallback System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest/UseCallback_ValidCertificate_ExpectedValuesDuringCallback +10903 area-System.Xml "Tests under ""XLinqTests.TreeManipulationTests"" fail with Assert fail exception ""Xunit.Sdk.EqualException""" "Opened on behalf of @jiangzeng The test `XLinqTests.TreeManipulationTests/AddFirstAddFirstIntoDocument` has failed. ``` Assert.Equal() Failure\r Expected: 0\r Actual: 16 ``` Stack Trace: ``` at XLinqTests.TreeManipulationTests.RunTestCase(TestItem testCase) in D:\A\_work\2\s\src\System.Xml.XDocument\tests\TreeManipulation\TreeManipulationTests.cs:line 434 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Xml.XDocument.TreeManipulation.Tests Same issue for the following tests under ""XLinqTests.TreeManipulationTests"": AddFirstAddFirstIntoDocument AddFirstAddFirstIntoDocumentWithEvents ConstructorXDocument ConstructorXElementArray ConstructorXElementIEnumerable ConstructorXElementNodeArray IEnumerableOfXAttributeRemove IEnumerableOfXAttributeRemoveWithRemove IEnumerableOfXNodeRemove IEnumerableOfXNodeRemoveWithEvents LoadFromReader LoadFromStreamSanity SaveWithWriter SimpleConstructors XAttributeRemove XAttributeRemoveWithEvents XContainerAddIntoDocument XContainerAddIntoDocumentWithEvents XContainerNextPreviousNode XContainerReplaceNodesOnXElement XContainerReplaceNodesOnXElementWithEvents XElementSetAttributeValue XElementSetAttributeValueWithEvents XElementSetElementValue XElementSetElementValueWithEvents XNodeRemoveNodeMisc XNodeRemoveNodeMiscWithEvents XNodeRemoveOnDocument XNodeRemoveOnDocumentWithEvents XNodeRemoveOnElement XNodeRemoveOnElementWithEvents " +10904 area-System.Xml Test failure: XLinqTests.XObjectTests+SkipNotifyTests/NoXObjectChangeAnnotation Opened on behalf of @jiangzeng The test `XLinqTests.XObjectTests+SkipNotifyTests/NoXObjectChangeAnnotation` has failed. ``` System.TypeLoadException : Method 'get_NodeType' in type 'FakeXObject' from assembly 'System.Xml.XDocument.TreeManipulation.Tests, Version=999.999.999.999, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb' does not have an implementation. ``` Stack Trace: ``` at XLinqTests.XObjectTests.SkipNotifyTests.NoXObjectChangeAnnotation() ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Xml.XDocument.TreeManipulation.Tests/analysis/xunit/XLinqTests.XObjectTests+SkipNotifyTests~2FNoXObjectChangeAnnotation Same issue for the test: XLinqTests.XObjectTests+SkipNotifyTests/XObjectChangeAnnotation +10905 area-System.Net "Test failure: System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTest/SslProtocols_SetUsingSupported_Success with ""System.NotSupportedException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTest/SslProtocols_SetUsingSupported_Success` has failed. ``` System.NotSupportedException : The requested security protocol is not supported. ``` Stack Trace: ``` at System.Net.SecurityProtocol.ThrowOnNotAllowed(SslProtocols protocols, Boolean allowNone) in D:\A\_work\4\s\src\Common\src\System\Net\SecurityProtocol.cs:line 22 at System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTest.SslProtocols_SetUsingSupported_Success(SslProtocols protocol) in D:\A\_work\4\s\src\System.Net.Http.WinHttpHandler\tests\UnitTests\WinHttpHandlerTest.cs:line 449 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.08/workItem/System.Net.Http.WinHttpHandler.Unit.Tests/analysis/xunit/System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTest~2FSslProtocols_SetUsingSupported_Success +10906 area-System.Xml Test failure: CoreXml.Test.XLinq.FunctionalTests/RunTests Opened on behalf of @jiangzeng The test `CoreXml.Test.XLinq.FunctionalTests/RunTests` has failed. ``` Assert.Equal() Failure\r Expected: 0\r Actual: 633 ``` Stack Trace: ``` at CoreXml.Test.XLinq.FunctionalTests.RunTests() in D:\A\_work\2\s\src\System.Xml.XDocument\tests\xNodeBuilder\FunctionalTests.cs:line 34 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Xml.XDocument.xNodeBuilder.Tests/analysis/xunit/CoreXml.Test.XLinq.FunctionalTests~2FRunTests +10908 area-System.Runtime Add Enum method to remove not defined flags. Suppose I have an enum type defined by `FlagsAttribute`and has an enum value that is outside the limit of the enum type. I would then have a way to easily remove the flags that are not defined. This can be useful if I eg get an enum value from an external API, and all the flags are not defined in the internal enum type. I would then want clear the unsupported flags. Alternative solution proposals: **Alternative 1** ``` C# [ComVisibleAttribute(true)] public static object ToObject( Type, int, bool=false ) ``` If you set the the new boolena value to `true`, unknown flags is removed. This should only be valid for enum types that are defined with `FlagsAttribute`, or else the function throw a exception. (By the way, why are not `ToObject`generic to avoid having to cast like #692 ?) **Alternative 2** ``` C# public int BitMask { get; } ``` It returns a bit mask that can be used like this: `var cleanedEnumValue = myEnumValue & myEnumValue.BitMask;` **Alternative 3** ``` C# public object RemoveUndefinedFlags { get; } ``` It returns a enum where the undefined flags have been masked away. Or if the enum is not defined with `FlagsAttribute`, it throw a exception. +10909 area-System.Net "Test failure: System.Net.Security.Tests.ClientAsyncAuthenticateTest/ClientAsyncAuthenticate_EachClientUnsupportedProtocol_Fail with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.ClientAsyncAuthenticateTest/ClientAsyncAuthenticate_EachClientUnsupportedProtocol_Fail` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.NotSupportedException)\r Actual: typeof(System.IO.IOException): Authentication failed because the remote party has closed the transport stream. ``` Stack Trace: ``` at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() in D:\A\_work\4\s\src\Common\tests\System\Threading\Tasks\TaskTimeoutExtensions.cs:line 19 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.ClientAsyncAuthenticateTest.d__14.MoveNext() in D:\A\_work\4\s\src\System.Net.Security\tests\FunctionalTests\ClientAsyncAuthenticateTest.cs:line 142 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.08/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.ClientAsyncAuthenticateTest~2FClientAsyncAuthenticate_EachClientUnsupportedProtocol_Fail Failed tests: ClientAsyncAuthenticate_EachClientUnsupportedProtocol_Fail ClientAsyncAuthenticate_UnsuportedAllClient_Fail +10910 area-System.Net "Test failure: System.Net.Security.Tests.ServerAsyncAuthenticateTest/ServerAsyncAuthenticate_EachServerUnsupportedProtocol_Fail with ""System.Security.Authentication.AuthenticationException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.ServerAsyncAuthenticateTest/ServerAsyncAuthenticate_EachServerUnsupportedProtocol_Fail` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.NotSupportedException)\r Actual: typeof(System.Security.Authentication.AuthenticationException): A call to SSPI failed, see inner exception. ``` Stack Trace: ``` at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() in D:\A\_work\4\s\src\Common\tests\System\Threading\Tasks\TaskTimeoutExtensions.cs:line 19 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() in D:\A\_work\4\s\src\System.Net.Security\tests\FunctionalTests\ServerAsyncAuthenticateTest.cs:line 167 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug +10911 area-System.Net "Test failure: System.Net.Security.Tests.ServerAsyncAuthenticateTest/ServerAsyncAuthenticate_UnsuportedAllServer_Fail with ""System.TimeoutException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.ServerAsyncAuthenticateTest/ServerAsyncAuthenticate_UnsuportedAllServer_Fail` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.NotSupportedException)\r Actual: typeof(System.TimeoutException): The operation has timed out. ``` Stack Trace: ``` at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() in D:\A\_work\4\s\src\Common\tests\System\Threading\Tasks\TaskTimeoutExtensions.cs:line 23 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() in D:\A\_work\4\s\src\System.Net.Security\tests\FunctionalTests\ServerAsyncAuthenticateTest.cs:line 167 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.08/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.ServerAsyncAuthenticateTest~2FServerAsyncAuthenticate_UnsuportedAllServer_Fail +10912 area-System.Net Test failure: System.Net.Security.Tests.NegotiateStreamStreamToStreamTest/NegotiateStream_StreamToStream_Authentication_EmptyCredentials_Fails Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.NegotiateStreamStreamToStreamTest/NegotiateStream_StreamToStream_Authentication_EmptyCredentials_Fails` has failed. ``` Assert.Equal() Failure\r Expected: False\r Actual: True ``` Stack Trace: ``` at System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Authentication_EmptyCredentials_Fails() in D:\A\_work\4\s\src\System.Net.Security\tests\FunctionalTests\NegotiateStreamStreamToStreamTest.cs:line 184 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20160816.08/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.NegotiateStreamStreamToStreamTest~2FNegotiateStream_StreamToStream_Authentication_EmptyCredentials_Fails Failed tests: System.Net.Security.Tests.NegotiateStreamStreamToStreamTest/NegotiateStream_StreamToStream_Authentication_EmptyCredentials_Fails System.Net.Security.Tests.SslStreamStreamToStreamTest/SslStream_StreamToStream_Successive_ClientWrite_Async_Success System.Net.Security.Tests.SslStreamStreamToStreamTest/SslStream_StreamToStream_Successive_ClientWrite_Sync_Success +10914 area-Serialization Test failure: XmlSerializerTests/XML_TypeWithTypeNameInXmlTypeAttribute Opened on behalf of @jiangzeng The test `XmlSerializerTests/XML_TypeWithTypeNameInXmlTypeAttribute` has failed. ``` System.InvalidOperationException : There was an error reflecting type 'SerializationTypes.TypeWithTypeNameInXmlTypeAttribute'.\r ---- System.Reflection.CustomAttributeFormatException : 'Form' property specified was not found.\r -------- System.Reflection.CustomAttributeFormatException : 'Form' property specified was not found. ``` Stack Trace: ``` at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportElement(TypeModel model, XmlRootAttribute root, String defaultNamespace, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type, XmlRootAttribute root, String defaultNamespace) at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace) at XmlSerializerTests.SerializeAndDeserialize[T](T value, String baseline, Func`1 serializerFactory, Boolean skipStringCompare, XmlSerializerNamespaces xns) in D:\A\_work\2\s\src\System.Xml.XmlSerializer\tests\XmlSerializerTests.cs:line 1844 at XmlSerializerTests.XML_TypeWithTypeNameInXmlTypeAttribute() in D:\A\_work\2\s\src\System.Xml.XmlSerializer\tests\XmlSerializerTests.cs:line 1183 ----- Inner Stack Trace ----- at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent) at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeFieldInfo field, RuntimeType caType) at System.Xml.Serialization.XmlAttributes..ctor(ICustomAttributeProvider provider) at System.Xml.Serialization.XmlReflectionImporter.GetAttributes(MemberInfo memberInfo) at System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping mapping, StructModel model, Boolean openModel, String typeName, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(StructModel model, String ns, Boolean openModel, XmlAttributes a, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter) ----- Inner Stack Trace ----- at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Xml.XmlSerializer.Tests/analysis/xunit/XmlSerializerTests~2FXML_TypeWithTypeNameInXmlTypeAttribute Same issue for the following tests: XmlSerializerTests/XML_TypeWithTypeNameInXmlTypeAttribute XmlSerializerTests/XML_TypeWithXmlSchemaFormAttribute XmlSerializerTests/Xml_TypeWithSchemaFormInXmlAttribute +10915 area-Serialization Test failure: XmlSerializerTests/Xml_ClassImplementingIXmlSerialiable "Opened on behalf of @jiangzeng The test `XmlSerializerTests/Xml_ClassImplementingIXmlSerialiable` has failed. ``` XML comparison is also failing\r Test failed for input: SerializationTypes.ClassImplementingIXmlSerialiable\r Expected: \r \r Actual: \r \r Hello world\r \r Expected: True\r Actual: False ``` Stack Trace: ``` at XmlSerializerTests.SerializeAndDeserialize[T](T value, String baseline, Func`1 serializerFactory, Boolean skipStringCompare, XmlSerializerNamespaces xns) in D:\A\_work\2\s\src\System.Xml.XmlSerializer\tests\XmlSerializerTests.cs:line 1873 at XmlSerializerTests.Xml_ClassImplementingIXmlSerialiable() in D:\A\_work\2\s\src\System.Xml.XmlSerializer\tests\XmlSerializerTests.cs:line 1142 ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Xml.XmlSerializer.Tests/analysis/xunit/XmlSerializerTests~2FXml_ClassImplementingIXmlSerialiable Same issue for the following tests: XmlSerializerTests/Xml_TimeSpanAsRoot XmlSerializerTests/Xml_TypeWithDateTimePropertyAsXmlTime XmlSerializerTests/Xml_TypeWithTimeSpanProperty XmlSerializerTests/Xml_XmlQualifiedNameAsRoot " +10916 area-Serialization Test failure: XmlSerializerTests/Xml_ConstructorWithTypeMapping Opened on behalf of @jiangzeng The test `XmlSerializerTests/Xml_ConstructorWithTypeMapping` has failed. ``` System.TypeLoadException : Could not load type 'System.Xml.Serialization.XmlTypeMapping' from assembly 'System.Xml.XmlSerializer, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. ``` Stack Trace: ``` at XmlSerializerTests.Xml_ConstructorWithTypeMapping() ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Xml.XmlSerializer.Tests/analysis/xunit/XmlSerializerTests~2FXml_ConstructorWithTypeMapping Same issue for the test: XmlSerializerTests/Xml_FromMappings +10917 area-System.Xml Test failure: System.Xml.Tests.CreateElementTests/NameWithWhitespace Opened on behalf of @jiangzeng The test `System.Xml.Tests.CreateElementTests/NameWithWhitespace` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.Xml.XmlException)\r Actual: typeof(System.Xml.XmlException): The ' ' character, hexadecimal value 0x20, cannot be included in a name. ``` Stack Trace: ``` at System.Xml.XmlDocument.CheckName(String name) at System.Xml.XmlElement..ctor(XmlName name, Boolean empty, XmlDocument doc) at System.Xml.XmlDocument.CreateElement(String prefix, String localName, String namespaceURI) at System.Xml.XmlDocument.CreateElement(String name) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fuwp~2F/build/20160816.08/workItem/System.Xml.XmlDocument.Tests/analysis/xunit/System.Xml.Tests.CreateElementTests~2FNameWithWhitespace Same issue for the tests: System.Xml.Tests.CreateElementTests/NameWithWhitespace System.Xml.Tests.CreateElementTests/NamespaceAndLocalNameWithColon System.Xml.Tests.CreateElementTests/NamespaceWithNoLocalName +10918 area-System.Linq Increase coverage of BinaryExpression (Equals and NotEquals) Also cleans up Expression.Equal and Expression.NotEqual tests to make it easier to add new tests Contributes to #1198 /cc @stephentoub @VSadov +10919 area-System.Security Implement TripleDES 128 bit key size The current TripleDES implementation only has 192 bit valid key size. Use case : old crypting method uses a TripleDES of a MD5 of a string. The MD5 always returns a 16 byte value. +10920 area-System.Data Application running on Ubuntu fails to connect to remote MSSQL (instance name) "I am trying to run a .NET Core application that works well on Windows, and it seems like it cannot connect to remote MSSQL server when running on Linux machine. I ran the application using the `dotnet run` command The connection string is valid, and the MSSQL server accepts remote connections Stack trace: ``` Hosting environment: Development Content root path: /home/sysadmin/billing-app/src/WebApp Now listening on: http://localhost:5000 Application started. Press Ctrl+C to shut down. info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1] Request starting HTTP/1.1 GET http://localhost:5000/rest/v1/accounts info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[1] Executing action method WebApp.API.Controllers.AccountsController.Get (WebApp) with arguments () - ModelState is Valid info: WebApp.Filters.ContextActionFilter[0] Saving changes for unit of work info: Microsoft.AspNetCore.Mvc.Internal.ObjectResultExecutor[1] Executing ObjectResult, writing value Microsoft.AspNetCore.Mvc.ControllerContext. fail: Microsoft.EntityFrameworkCore.Query.Internal.SqlServerQueryCompilationContextFactory[1] An exception occurred in the database while iterating the results of a query. System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open() at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext() at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_ShapedQuery>d__3`1.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext() ClientConnectionId:00000000-0000-0000-0000-000000000000 System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open() at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext() at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_ShapedQuery>d__3`1.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext() ClientConnectionId:00000000-0000-0000-0000-000000000000 fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[0] An unhandled exception has occurred while executing the request System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open() at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext() at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_ShapedQuery>d__3`1.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext() at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType) at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.WriteObject(TextWriter writer, Object value) at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__32.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__31.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__29.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Builder.RouterMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.ApplicationInsights.AspNetCore.ExceptionTrackingMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.ApplicationInsights.AspNetCore.RequestTrackingMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.d__6.MoveNext() ClientConnectionId:00000000-0000-0000-0000-000000000000 warn: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[0] The response has already started, the error page middleware will not be executed. fail: Microsoft.AspNetCore.Server.Kestrel[13] Connection id ""0HKU6KJQ04DBP"": An unhandled exception was thrown by the application. System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open() at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext() at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_ShapedQuery>d__3`1.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext() at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType) at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.WriteObject(TextWriter writer, Object value) at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__32.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__31.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__29.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Builder.RouterMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.ApplicationInsights.AspNetCore.ExceptionTrackingMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.ApplicationInsights.AspNetCore.RequestTrackingMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() ClientConnectionId:00000000-0000-0000-0000-000000000000 info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2] Request finished in 16642.3424ms 200 application/json; charset=utf-8 ``` " +10923 area-System.IO ExtractToFile() max. extract size throws wrong error "Im trying to extract multiple .bak files in .zip archives. It all works fine If the files are under 2GB but when my .bak file is above 2GB it throws a > ""The archive entry was compressed using an unsupported compression method."" This is not right, I compressed them with the same methode of the 2GB< files " +10924 area-System.Net Fix WebSocketException.SetErrorCodeOnError to only set on error - Fix WebSocketException.SetErrorCodeOnError... it was setting it always rather than only on error, resulting in different behavior from desktop (http://referencesource.microsoft.com/#System/net/System/Net/WebSockets/WebSocketException.cs,197) - As long as I was fixing that, I fixed the order of the arguments to Assert.Equal in the tests, as well as changing a few Equal calls to Same calls, and marking a few tests as [Fact]s so that they actually ran. Fixes https://github.com/dotnet/corefx/issues/10913 cc: @cipop, @davidsh, @ericeil, @anurse +10925 area-Infrastructure Clean the scripts build-managed and build-native using run.exe Clean build-native.cmd/sh and build-managed.cmd/sh by adding properties to config.json file following the [dev workflow](https://github.com/dotnet/buildtools/blob/master/Documentation/Dev-workflow.md) guidelines. +10931 area-System.Numerics Matrix4x4 Changes - Remove/Move Matrix4x4.CreateWorld, CreateBillboard, etc. There are a few things that we would like to see changed in Matrix4x4 that might make us and others more likely to adopt them in the near future. There seem to be several methods inside System.Numerics.Vectors.Matrix4x4 that should be removed or placed in a utility library as extension methods. Many `Matrix4x4.Create*` methods impose conventions on the users that they may not be able to accept. For example, Matrix4x4.CreateWorld() seems to negate the passed in forward axis and store it that way. For those using a right-handed x-right, y-forward, z-up coordinate system, this is very annoying for debugging purposes (and incorrect). Similar issues apply to other Create functions and there are several that would never be used (CreateShadow, etc.). This API would be much easier for us to adopt if it was considerably trimmed down to a minimum (required) number of functions and then other methods added as extensions that can _not_ be included so that those that do things differently or don't need them can still get some SIMD benefits under C#. Also in regards to SIMD benefits, Matrix4x4 does not seem to have any. I'm not clear as to why this was not designed to contain 4 Vector4 values, but if it was, it is considerably more likely that _required_ operations such as Vector \* Matrix would see SIMD benefits without having to add more/unneeded intrinsics to the JIT compiler. +10932 area-System.IO Throw specific error messages for unsupported zip Appends the common unsupported compression type to the end of the exception message for an unsupported compression type. This should make it easier to diagnose the issues that arise from https://github.com/dotnet/corefx/issues/9925. resolves https://github.com/dotnet/corefx/issues/9924 +10933 area-System.Threading Port some missing threading types/members (Task, WaitHandle, etc.) ``` M:System.Threading.Tasks.Task.Dispose M:System.Threading.Tasks.Task.Dispose(System.Boolean) M:System.Threading.Tasks.TaskCanceledException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Threading.Tasks.TaskSchedulerException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Threading.WaitHandle.Close M:System.Threading.WaitHandle.get_Handle M:System.Threading.WaitHandle.get_SafeWaitHandle M:System.Threading.WaitHandle.set_Handle(System.IntPtr) M:System.Threading.WaitHandle.set_SafeWaitHandle(Microsoft.Win32.SafeHandles.SafeWaitHandle) M:System.Threading.WaitHandle.SignalAndWait(System.Threading.WaitHandle,System.Threading.WaitHandle) M:System.Threading.WaitHandle.SignalAndWait(System.Threading.WaitHandle,System.Threading.WaitHandle,System.Int32,System.Boolean) M:System.Threading.WaitHandle.SignalAndWait(System.Threading.WaitHandle,System.Threading.WaitHandle,System.TimeSpan,System.Boolean) M:System.Threading.WaitHandle.WaitAll(System.Threading.WaitHandle[],System.Int32,System.Boolean) M:System.Threading.WaitHandle.WaitAll(System.Threading.WaitHandle[],System.TimeSpan,System.Boolean) M:System.Threading.WaitHandle.WaitAny(System.Threading.WaitHandle[],System.Int32,System.Boolean) M:System.Threading.WaitHandle.WaitAny(System.Threading.WaitHandle[],System.TimeSpan,System.Boolean) M:System.Threading.WaitHandle.WaitOne(System.Int32,System.Boolean) M:System.Threading.WaitHandle.WaitOne(System.TimeSpan,System.Boolean) M:System.TimeoutException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) ``` +10934 area-System.IO Add zero argument IsolatedStorageFile static factory methods Need to add `IsolatedStorageFile` `Get*StoreFor*()` static factory methods. This includes: `GetUserStoreForDomain()` `GetUserStoreForAssembly()` `GetUserStoreForApplication()` <- Need to update implementation `GetUserStoreForSite()` `GetMachineStoreForDomain()` `GetMachineStoreForAssembly()` `GetMachineStoreForApplication()` Other factory methods will be broken out into separate work items as there are more direct dependencies on `System.Security.Policy.Evidence`. +10935 area-System.IO Add IsolatedStorageFile factory methods with Evidence dependencies Need to implement the various `GetStore()` methods have direct or indirect dependencies on `System.Security.Policy.Evidence`. This includes: `GetStore(IsolatedStorageScope, Type, Type)` `GetStore(IsolatedStorageScope, Object, Object)` `GetStore(IsolatedStorageScope, Evidence, Type, Evidence, Type)` `GetStore(IsolatedStorageScope, Type)` `GetStore(IsolatedStorageScope, Object)` These may not be possible without `System.Security.Policy.Evidence`. See #10934 for the other factory methods. +10936 area-System.IO Add IsolatedStorageFile.GetEnumerator() `IsolatedStorageFile.GetEnumerator()` allows you to enumerate all stores for the current user. [How to: Enumerate Stores for Isolated Storage](https://msdn.microsoft.com/en-us/library/c3dy613a%28v=vs.110%29.aspx) +10943 area-System.Reflection Access denied errors running PortableExecutable tests http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/3539/ ``` System.Reflection.PortableExecutable.Tests.DebugDirectoryTests.CodeView_Loaded [FAIL] System.UnauthorizedAccessException : Access to the path 'C:\Users\dotnet-bot\AppData\Local\Temp\tmp7490.tmp' is denied. Stack Trace: at System.IO.Win32FileSystem.DeleteFile(String fullPath) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Reflection.Metadata\tests\TestUtilities\LoaderUtilities.cs(36,0): at System.Reflection.Metadata.Tests.LoaderUtilities.LoadPEAndValidate(Byte[] peImage, Action`1 validator, Boolean useStream) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Reflection.Metadata\tests\PortableExecutable\DebugDirectoryTests.cs(39,0): at System.Reflection.PortableExecutable.Tests.DebugDirectoryTests.CodeView_Loaded() System.Reflection.PortableExecutable.Tests.PEReaderTests.GetSectionData_Loaded [FAIL] System.UnauthorizedAccessException : Access to the path 'C:\Users\dotnet-bot\AppData\Local\Temp\tmp7491.tmp' is denied. Stack Trace: at System.IO.Win32FileSystem.DeleteFile(String fullPath) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Reflection.Metadata\tests\TestUtilities\LoaderUtilities.cs(36,0): at System.Reflection.Metadata.Tests.LoaderUtilities.LoadPEAndValidate(Byte[] peImage, Action`1 validator, Boolean useStream) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Reflection.Metadata\tests\PortableExecutable\PEReaderTests.cs(239,0): at System.Reflection.PortableExecutable.Tests.PEReaderTests.GetSectionData_Loaded() ``` +10944 area-System.IO Stream.ReadAsync initializes Task with improper TaskCreationOptions "This is a regression introduced by https://github.com/dotnet/corefx/commit/71bb8fec20016b10d1b29615682fa7ced90b8996. What's happening is: on https://github.com/dotnet/corefx/blob/dev/api/src/System.IO/src/System/IO/Stream.cs#L252 the new Task is being created with TaskCreationOptions DenyChildAttach and HideScheduler. However it's eventually reach to https://github.com/dotnet/corert/blob/master/src/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs#L320 where it expects to see either AttachedToParent or RunContinuationsAsynchronously in the TaskCreationOptions. so it throws an ArgumentOutOfRangeException(""creationOptions"") I hit this issue when I tried to consume the new System.IO on .Net Native toolchain. One of the tests failed with the ArgumentOutOfRangeException on the following call stack: Running Test: StreamTests.ReadAndWriteAsync Caught Unexpected exception:System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: creationOptions at System.Threading.Tasks.Task..ctor(Object state, TaskCreationOptions creationOptions, Boolean promiseStyle) at System.Threading.Tasks.Task$1..ctor(Object state, TaskCreationOptions options) at System.Threading.Tasks.TaskFactory$1.FromAsyncImpl(Func$6<__Canon,Int32,Int32,__Canon,__Canon,__Canon> beginMethod, Func$2 endFunction, Action$1 endAction, __Canon arg1, Int32 arg2, Int32 arg3, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory.FromAsync(Func$6<__Canon,Int32,Int32,__Canon,__Canon,__Canon> beginMethod, Func$2 endMethod, __Canon arg1, Int32 arg2, Int32 arg3, Object state, TaskCreationOptions creationOptions) at System.IO.Stream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at System.IO.Stream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count) at UnitTests!+0x30f64c at UnitTests!+0x30f49d at System.Action.Invoke() at UnitTests!+0x30d6b1 at UnitTests!+0x30cca7 /cc @joperezr, this is related with his change " +10947 area-System.Net Supported versions of libcurl for HttpClient I’m doing some performance analysis for the AWS SDK for .NET which relies on the HttpClient. Performance and reliability seems to differ widely depending on the version of libcurl. My test consist of 10 tasks repeatedly making http calls using the same HttpClient. For Mac OSX using libcurl 7.43 and Ubuntu 16.04 using libcurl 7.47 performance seems fine. Ubuntu 14.04 using libcurl 7.35 request per second is in the ball park but I frequently get errors with the response stream being closed as I’m reading the response back. RHEL 7.2 using libcurl 7.29 I don’t get any errors but the performance is an order magnitude slower than the other platforms. Is there a minimum version of libcurl that you are recommending to have when using HttpClient on Linux? +10948 area-System.Net Add HTTP/2 support to WinHttpHandler Windows 10 Anniversary release a.k.a Windows 10 Version 1607 added support to native WinHTTP for HTTP/2 protocol support. Added code to use this when sending request messages with HTTP/2. This change affects both the System.Net.Http and System.Net.Http.WinHttpHandler library packages. Added new tests that validate the functionality and verify the test client is running on the proper version of Windows 10. Switched the HTTP/2 test server endpoint to www.microsoft.com since it supports HTTP/2. Fixes #4870 +10949 area-System.Reflection System.Collections.Immutable and System.Reflection.Metadata cause some dependency weirdness I have a library targeting `netstandard1.5` which brings in these two libraries as dependencies (directly or indirectly, doesn't seem to make a difference.) When I reference this library from another project targeting `net462`, I can see in the Visual Studio dependency tree that several references sort of 'drop out' of 'package dependency' mode and into 'framework assembly' mode: - System.Runtime (4.1.0, drops to 4.0.20) - System.Runtime.Extensions (4.1.0, drops to 4.0.10) - System.Reflection (4.1.0, drops to 4.0.10) Now, there is another somewhat similar issue with the current 4.1.0 package for System.Net.Http, where it drops to 4.0.0 and causes problems, but I have been able to work around that by locking the project.json file and deleting the portion that specifies it as a framework assembly. I see no such analog for these other libraries and I can't find anything of note in their .nuspec files. Changing the test library to target as low as `netstandard1.1` yields no desirable effect. Although I would prefer not to mention this sort of thing, a current project I am working on is blocked by this because at runtime it is causing a failure to load the System.Runtime library. I mention this because I want to be clear that it is not a nitpicking issue but rather an actual impediment. Please let me know what else I can do to help. +10950 area-System.Console Console.ReadKey does not wait "After verifying the .NET Framework documentation that the ReadKey method is supposed to wait, I observed .NET Core does not wait on Console.ReadKey but just run over it. https://msdn.microsoft.com/en-us/library/x3h8xffw(v=vs.110).aspx ""The ReadKey method waits, that is, blocks on the thread issuing the ReadKey method, until a character or function key is pressed. A character or function key can be pressed in combination with one or more Alt, Ctrl, or Shift modifier keys. However, pressing a modifier key by itself will not cause the ReadKey method to return."" " +10951 area-System.Runtime DEC64 Type (Decimal Floating Point) As proposed by Douglas Crockford https://github.com/douglascrockford/DEC64 Presentation on it: https://youtu.be/PSGEjv3Tqo0?t=27m5s +10954 area-System.Linq Expression.New has inconsistent argument checking for the declaring type of the ctor "There is an inconsistency between the checking of the `constructor` parameter in various `Expression.New()` overloads. This is when the constructor has a GenericTypeDefinition This was discovered in #10952, and this is demonstrated below. ## Problem ``` [Fact] public static void ConstructorDeclaringType_GenericTypeDefinition_ThrowsArgumentException() { ConstructorInfo constructor = typeof(GenericClass<>).GetConstructor(new Type[0]); Assert.Throws(""constructor"", () => Expression.New(constructor)); Assert.Throws(""constructor"", () => Expression.New(constructor, new Expression[0])); Assert.Throws(""constructor"", () => Expression.New(constructor, (IEnumerable)new Expression[0])); } [Fact] public static void ConstructorDeclaringType_GenericTypeDefintion_Works() { // Should probably throw an ArgumentException, similar to other overloads ConstructorInfo constructor = typeof(GenericClass<>).GetConstructor(new Type[0]); Expression.New(constructor, new Expression[0], new MemberInfo[0]); Expression.New(constructor, new Expression[0], new MemberInfo[0]); } ``` ## Solution The fix is to add the following code to `New(ConstructorInfo, IEnumerable, IEnumerable)` so that it is consistent with `New(ConstructorInfo)` and `New(ConstructorInfo, IEnumerable)` ``` ContractUtils.RequiresNotNull(constructor.DeclaringType, nameof(constructor) + ""."" + nameof(constructor.Decl TypeUtils.ValidateType(constructor.DeclaringType, nameof(constructor)); ``` This would be a breaking change, but is a bug, as an `InvalidOperationException` is thrown when compiling a lambda expression containing the New expression. /cc @stephentoub @JonHanna @VSadov " +10958 area-System.Net WinHttpHandler using HTTP/2 returns error with servers using push promise While implementing PR #10948, we discovered that Windows winHTTP has some issues with HTTP/2 servers that use server push functionality (push promise). Reference internal bug 8523801. +10961 area-System.Globalization Compat work to implement missing Globalization API for .NET Native and Unix Tarek, please split as needed +10967 area-Serialization Create Test Projects for Testing Reflection Based DCS/DCJS +10969 area-System.IO Add missing member on ZipArchiveEntry There is only one thing left missing in System.IO.Compression namespace. `M:System.IO.Compression.ZipArchiveEntry.set_Archive(System.IO.Compression.ZipArchive)` +10973 area-System.IO Potential optimizations for System.IO.Path - [`CheckInvalidPathChars`](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/IO/PathInternal.cs#L19) is called as much as 1-3 times in most Path chars, however due to all of the exception-throwing code it doesn't look as if it's going to be inlined. SInce dotnet/coreclr#6103 was merged, it may be beneficial to separate the throwing logic out to encourage inlining, for example: ``` cs internal static void CheckInvalidPathChars(string path) { if (path == null) ThrowArgumentNullPath(); if (PathInternal.HasIllegalCharacters(path)) ThrowArgumentInvalidPathChars(); } ``` - StringBuilder's indexer is not inlined, so [this](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/IO/PathInternal.cs#L40) is very slow, although it does avoid allocations. It may be worth seeing how all of the method calls stack up against using `ToString` and indexing into that instead. - [This](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/IO/PathInternal.Unix.cs#L78-L92) is definitely suboptimal; I don't think `StringBuilder.Append(char)` is inlined, and we could use a `char[]` instead since we know the max length of the buffer in advance. - [Same here](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/IO/PathInternal.Windows.cs#L409-L437) - [Same here](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/src/System/IO/Path.cs#L260-L285) - Maybe this could make use of `ArrayPool.Shared.Rent`, instead of using `StringBuilder`? - [Same here](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/src/System/IO/Path.Unix.cs#L110) cc @JeremyKuhne +10974 area-System.Net WinHTTP allocates HttpVersion20 for every http/2 request On 4.6.x `WinHttpResponseParser`.`CreateResponseMessage` allocates HttpVersion20 setting the version `WinHttpHandler`.`SetRequestHandleHttp2Options` allocates HttpVersion20 for every equality check This is caused by properties being .ctor get functions ``` csharp internal static Version HttpVersion20 => new Version(2,0); internal static Version HttpVersionUnknown => new Version(0,0); ``` Should probably be? ``` csharp internal readonly static Version HttpVersion20 = new Version(2,0); internal readonly static Version HttpVersionUnknown = new Version(0,0); ``` @davidsh @justinvp +10975 area-System.Data System.Data.Common and SqlClient: Async variants for remaining blocking APIs The following potentially blocking APIs currently don't have async variants: 1. `DbTransaction.Commit()` 2. `DbConnection.Close()` 3. `DbConnection.BeginTransaction()` 4. `DbTransaction.Rollback()` Ideally default implementations should be added to the base classes of the ADO.NET provider model which fallback to the sync implementations (following the same pattern we have for the other async methods) and proper async implementations should be added to SqlClient. Related to #8856. +10981 area-System.Net Expose UnixDomainSocket #6833 made the UnixDomainSocketEndPoint internal, which of course prevents clients from using it to have direct access to Unix sockets in their own code. Docker.DotNet had to introduce a copy of UnixDomainSocketEndPoint in order to access sockets when running on Ubuntu (see https://github.com/Microsoft/Docker.DotNet/pull/113). Ideally, the language would provide a way for this access to happen, without needing each client to make a copy of the class for their use. It's possible I missed a better way to do this, so advice would be appreciated... ## Proposal ```C# // in System.Net.Sockets assembly namespace System.Net.Sockets { public sealed class UnixDomainSocketEndPoint : EndPoint { public UnixDomainSocketEndPoint(string path); } } ``` It'll work on Unix and result in PlatformNotSupportedExceptions on Windows. Example usage: ```C# var socket = new Socket(AddressFamily.Unix, SocketType.Stream, ProtocolType.Unspecified); socket.Bind(new UnixDomainSocketEndPoint(path)); socket.Listen(5); ``` +10982 area-System.Net WinHttpHandler: Avoid repeated Version allocations For NET46, use static readonly fields that always return the same cached instances, instead of properties that always allocate and return new `Version` instances. Fixes #10974. cc: @davidsh @benaadams +10985 area-System.Console Console.Readline() doesn't respect disable console echo by 'stty -echo' on Ubuntu I want my Console.Readline() doesn't print out what been read. (I am reading password from user input.) On Windows, i can achieve by PInvoke SetConsoleMode() before calling Console.Readline() to disable console echo. I try to do same thing on Ubuntu PInvoke tcsetattr() before Console.Readline(), however it seems like Console.Readline() doesn't respect Ubuntu console echo disable at all. Here is what i verified On Ubuntu 16. 1. Dotnet new a helloworld console app, add `String read = Console.Readline();` after console.writeline(...) 2. In terminal type 'stty -echo' to disable console echo. 3. type 'Dotnet restore', 'dotnet run', as you can see, since we disable console echo, the dotnet restore and dotnet run you typed will not shows up. 4. When dotnet run start the helloworld app, it will print out HelloWorld! then wait for user input, however what you type now will shows on console. +10989 area-System.Reflection ModuleBuilder.GetType does not work with ignore case with certain unicode chars on Unix "The following test passes on Windows, but fails on non-Windows platforms, discovered in #10532 ```c# [Fact] public void Test() { AssemblyBuilder assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName(""AssemblyName""), AssemblyBuilderAccess.Run); ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule(""ModuleName""); TypeBuilder type = moduleBuilder.DefineType(""\uD800\uDC00""); TypeInfo createdType = type.CreateTypeInfo(); moduleBuilder.GetType(""\uD800\uDC00"", false, false); // Works on all platforms moduleBuilder.GetType(""\uD800\uDC00"", true, false); // Works on all platforms moduleBuilder.GetType(""\uD800\uDC00"", true, true); // Throws TypeLoadException on Unix moduleBuilder.GetType(""\uD800\uDC00"".ToLowerInvariant(), true, true); // Throws TypeLoadException on Unix moduleBuilder.GetType(""\uD800\uDC00"".ToUpperInvariant(), true, true); // Throws TypeLoadException on Unix} ``` /cc @stephentoub @AtsushiKan " +10990 area-Meta How to install corefx libraries/assemblies alongside the coreclr? I am trying to debug a simple hello world app using `lldb` on Ubuntu 15.10 (arm hf) target. I have successfully cross compiled coreclr/corefx/llvm+lldb and I am able to run `corerun` and `lldb` binaries. However, a can not find any useful information about how to properly install `corefx` build results alongside the `coreclr`. `<...>/corefx/bin` directory contains folders for different OSes/archs: ``` drwxrwxr-x 236 i.kulaychuk i.kulaychuk 20480 авг 17 21:39 AnyOS.AnyCPU.Release drwxrwxr-x 12 i.kulaychuk i.kulaychuk 4096 авг 17 21:33 Linux.AnyCPU.Release drwxrwxr-x 3 i.kulaychuk i.kulaychuk 4096 авг 18 13:35 Linux.arm.Release drwxrwxr-x 3 i.kulaychuk i.kulaychuk 4096 авг 17 20:57 Linux.x64.Release drwxrwxr-x 10 i.kulaychuk i.kulaychuk 4096 авг 18 13:35 obj drwxrwxr-x 6 i.kulaychuk i.kulaychuk 4096 авг 17 21:27 OSX.AnyCPU.Release drwxrwxr-x 3 i.kulaychuk i.kulaychuk 4096 авг 17 21:43 packages drwxrwxr-x 131 i.kulaychuk i.kulaychuk 12288 авг 17 21:30 ref drwxrwxr-x 2 i.kulaychuk i.kulaychuk 28672 авг 17 21:43 TestDependencies drwxrwxr-x 6 i.kulaychuk i.kulaychuk 4096 авг 17 21:33 tests drwxrwxr-x 83 i.kulaychuk i.kulaychuk 4096 авг 17 21:36 Unix.AnyCPU.Release drwxrwxr-x 63 i.kulaychuk i.kulaychuk 4096 авг 17 21:35 Windows_NT.AnyCPU.Release ``` What directories/dlls/so files should be copied to target `coreclr` folder in order for `lldb` (and `libsosplugin.so`) to work? There are dlls with the same name (`bin/Unix.AnyCPU.Release/System.IO.FileSystem/System.IO.FileSystem.dll` and `bin/AnyOS.AnyCPU.Release/System.IO.FileSystem/net46/System.IO.FileSystem.dll`) so I am a little confused. +10994 area-System.Runtime Add Quarters to DateTime formats "I suggest that you add support for quarters when formatting a `DateTime`. `q` would display the date quarter (1..4). Example: `new DateTime(2016, 8, 19).ToString(""Qq yyyy"") == ""Q3 2016""` This is quite common in financial applications and the lack of it can sometimes require convoluted workarounds. " +11002 area-System.Reflection FreeLibrary sometimes doesn't unlock the underlying file Consider the following test code: ``` C# string tempFile = Path.GetTempFileName(); File.WriteAllBytes(tempFile, peImage); using (SafeLibraryHandle libHandle = Interop.mincore.LoadLibraryExW(tempFile, IntPtr.Zero, 0)) { ... } File.Delete(tempFile); ``` Although `SafeLibraryHandle.Dispose` calls `FreeLibrary` the deletion of the file sometimes fails as the file is still locked. See https://github.com/dotnet/corefx/issues/10943. +11005 area-System.ComponentModel DataTypeAttribute.GetDataTypeName() throws IndexOutOfRangeException "The following test demonstrates the bug, found in #11004 ``` [Theory] [InlineData((DataType)(-1))] [InlineData(DataType.Upload + 1)] public static void GetDataTypeName_InvalidDataType_ThrowsIndexOutOfRangeException(DataType dataType) { DataTypeAttribute attribute = new DataTypeAttribute(dataType); Assert.Throws(() => attribute.GetDataTypeName()); } ``` This is because the method `EnsureValidDataType` should be changed to: ``` private void EnsureValidDataType() { if (DataType < DataType.Custom || DataType > DataType.Upload) { throw new InvalidOperationException(""DataType is Invalid""); } if (DataType == DataType.Custom && string.IsNullOrEmpty(CustomDataType)) { throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, SR.DataTypeAttribute_EmptyDataTypeString)); } } ``` /cc @stephentoub (not sure who the code owner for this class is, or whether this code is legacy and shouldn't be touched) " +11009 area-Meta Infer PackageTargetFramework from NuGetTargetMoniker "Remove specification of PackageTargetFramework, derive it from NuGetTargetMoniker. Make sure all of our library projects don't use imports, so that we can ""trust"" that NuGetTargetMoniker is correct and the dependencies are supported by that NuGetTargetMoniker. Eliminate generation validation in the libraries since it is no longer needed due to above. Also reduce boilerplate in projects by supporting a lightweight definition of a list of package destinations. " +11016 area-System.Security A duplicate X509 certificate can be added to the user certificates store when using the X509Store API This is an edge case race that happens when a certificate is stored using the X509Store.Add API When adding a previously-unknown certificate to a certificate store in *nix, it is possible that the same certificate can be added twice. The certificate filename will look something like C7979286A20741AE49436142E9D9CD72BA2F59F4.pfx, and C7979286A20741AE49436142E9D9CD72BA2F59F4.1.pfx in ~/.dotnet/corefx/cryptography/x509/_storeName_ This is not known to happen in .NET Core or .NET Desktop in Windows (probably since certs are not stored on the filesystem) Note that I think this will happen only in very rare cases where we're adding the same cert on multiple threads/processes simultaneously - hence it may be a uniqueness in the way we work with our tests. I will look separately into preventing this from happening in our test bed cc: @bartonjs +11021 area-System.Net Fix incorrect AssemblyName in System.Net.Primitives/PerformanceTests Fixes what was presumably a typo/accident, introduced by #10192 cc @dsgouda, @stephentoub +11023 area-System.Runtime System.Runtime.Loader should be netcoreapp1.0, not netstandard1.5 It's actually a coreclr-specific API and doesn't work on other .net standard 1.5 platforms like net462 and xamarin. +11025 area-System.ComponentModel CompareAttribute throws TargetParameterCountException and ArgumentException "The following tests demonstrate the bugs, discovered in #10992 ``` [Fact] public static void Property_HasIndexParameters_ThrowsParameterCountException() { ValidationContext context = new ValidationContext(new CompareObject(""a"")) { DisplayName = ""CurrentProperty"" }; CompareAttribute = new CompareAttribute(""Item""); Assert.Throws(() => attribute.Validate(""b"", context)); } [Fact] public static void Property_SetOnly_ThrowsArgumentException() { ValidationContext context = new ValidationContext(new CompareObject(""a"")) { DisplayName = ""CurrentProperty"" }; CompareAttribute = new CompareAttribute(""SetOnlyProperty""); Assert.Throws(() => attribute.Validate(""b"", context)); } private class CompareObject { public string this[int index] { get { return ""abc""; } set { } } public string SetOnlyProperty { set { } } } ``` This is because the check [here](https://github.com/dotnet/corefx/blob/master/src/System.ComponentModel.Annotations/src/System/ComponentModel/DataAnnotations/CompareAttribute.cs#L70) for index parameters occurs **after** we call `PropertyInfo.GetValue` [here](https://github.com/dotnet/corefx/blob/master/src/System.ComponentModel.Annotations/src/System/ComponentModel/DataAnnotations/CompareAttribute.cs#L51) We should also add a check to make sure we can read the property before calling `GetValue`. In both these cases, we should instead return `false` for `IsValid` /cc @stephentoub " +11029 area-System.Linq Improve SelectMany behavior when the selector returns null "[In the current version](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/SelectMany.cs#L62) `Enumerable.SelectMany` experiences a `NullReferenceException` when `selector` returns `null`. This is undesirable because it's a confusing crash with a ""forbidden"" exception type in BCL code. This should be changed. Example: `foreach(var item in new int[][] { new int[1], null }.SelectMany(x => x)) { }` The safest approach would be to throw an exception that explains that the user has provided an invalid `selector` that does not obey the contract. Additionally, the [documentation](https://msdn.microsoft.com/en-us/library/bb534336%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396) should state the requirement to not return `null`. An alternative approach would be to treat `null` as an empty sequence. I'm not sure which solution is better. Sometimes, an empty sequence would be very convenient. Sometimes this would hide a bug. Also it's unclear that this can be done due to compatibility concerns. I think throwing a different exception type would be safe enough to take the change. " +11030 area-System.Numerics Add generic Math methods for numeric types "## Overview With the addition of System.Numerics.Vector it suddenly became possible to write some generic algorithms that worked for most primitive numeric datatypes. However as soon as you need to work with single elements you are out of luck. I propose a new generic API for scalar datatypes based upon the ideas behind System.Numerics.Vector. Just as for vectors many of the genereic methods could be generated using .tt files such as in https://github.com/dotnet/corefx/blob/master/src/System.Numerics.Vectors/src/System/Numerics/Vector.tt ## API This is an example of how the API could look like. All methods below are taken from the Vector class (https://msdn.microsoft.com/en-us/library/system.numerics.vector(v=vs.111).aspx). **Additional methods** such as those found in System.Math (https://msdn.microsoft.com/en-us/library/system.math.aspx) would be interesting as well. It could also be interesting to add non-generic methods such as `float Round(float x, int digits);` as well All functionlity could be provided in a new nuget package in order to allow out of band releases without conflicts with the current Math type. ```c# public static class Scalar { public static T Abs(T left, T right) where T : struct public static T Add(T left, T right) where T : struct public static T AndNot(T left, T right) where T : struct public static T BitwiseAnd(T left, T right) where T : struct public static T BitwiseOr(T left, T right) where T : struct public static T Divide(T left, T right) where T : struct public static T Max(T left, T right) where T : struct public static T Min(T left, T right) where T : struct public static T Multiply(T left, T right) where T : struct public static T Negate(T left, T right) where T : struct public static T OnesComplement(T left, T right) where T : struct public static T SquareRoot(T left, T right) where T : struct public static T Subtract(T left, T right) where T : struct public static T Xor(T left, T right) where T : struct // Useful methods part of Vector public static T Zero() where T : struct public static T One() where T : struct } ``` The generic requirements for some methods might be changed a bit to allow additional types, such as using providing extra overload such as those suggested in https://github.com/dotnet/corefx/issues/1583. Comparison and equality checking was not included since IComparable<> and IEquatable<> are implemented for the types already, but if it is considered a good idea to be as similar as possible to Vector then the following methods should also be considered ```c# public static bool GreaterThan(T left, T right) where T : struct public static bool GreaterThanOrEqual(T left, T right) where T : struct public static bool LessThan(T left, T right) where T : struct public static bool LessThanOrEqual(T left, T right) where T : struct ``` ### Types to support I propose that all the primitive numeric types including decimal are supported (the same types as Vector<> support but with the addition of decimal). Invoking any method with any other type should result in an NotSupportedException() - Byte - SByte - UInt16 - Int16 - UInt32 - Int32 - UInt64 - Int64 - Single - Double - Decimal (The only difference from Vector) ### Related issues: I found a few issues regarding similar ideas - #1151 is about adding new Math functionality which could be added to the ""Scalar"" type - With corresponding PR in https://github.com/dotnet/coreclr/pull/5492 - #1583 - Add generic overloads to Math.Min and Math.Max - #467 - add Clamp method " +11033 area-System.IO Release these reserved names: COM1-COM9, LPT1-LPT9, CON, AUX, PRN, and NUL Use the `\\?\` prefix to access them internally. +11035 area-System.Runtime Expose serialization primitives on .NET Native Remove ApiCompatBaseline.netcore50aot.txt / ApiCompatBaseline.uap101aot.txt baselined errors once resolved, e.g. that CultureNotFoundException doesn't implement ISerializable in the implementation. - src\System.Globalization\src\ApiCompatBaseline.uap101aot.txt - src\System.Threading.Tasks\src\ApiCompatBaseline.uap101aot.txt - etc. +11036 area-System.Net .NET Core crashes when using HttpClient with HTTP/2 and Client Certificates "**Scenario** We have built an ASP.NET Core service which connects to Apple's HTTP/2-based APNS servers (in order to send push notifications from our ASP.NET Core-based platform to Apple devices). Unfortunately, .NET Core 1.0.0-rtm crashes hard in release mode when opening an HTTP/2 connection using a client certificate. In debug mode, it sometimes behaves better. **Result when running code in release mode (.NET Core 1.0.0-rtm, Ubuntu 16.04 Server)** Hard crash. After about 8 seconds of executing HttpClient.SendAsync(...), .NET Core 1.0.0-rtm crashes hard. Exception handlers do not execute. **Result when running code in debug mode (.NET Core 1.0.0-rtm, Ubuntu 16.04 Desktop, VSCode 1.4.0)** Inconsistent behavior, ranging from long delays to hard crashes. Sometimes .NET Core crashes, and sometimes the HttpClient.SendAsync(...) call times out and throws a catchable exception. And sometimes after a few debug cycles it mostly works, with a delay of around 8 seconds and then a successful response to the initial HTTP/2 request. In the last case, where the HttpClient request does succeed (in debug mode): once the HTTP/2 connection is open, sending additional messages in real-time to APNS servers (re-using the same HttpClient connection) works quickly and seemingly consistently. In our tests to date, the failure only occurs during the initial ""HTTP/2 client using client certificate"" connection attempt. As additional info: if we remove the client certificate from the request, the HTTP/2 secure connection goes through immediately (although APNS of course returns an ""unauthorized...missing certificate (sic)"" text reply). **Repro** 1. Install .NET Core 1.0 on Ubuntu 16.04 LTS 2. Compile libcurl from source to include HTTP/2 support (see next post in thread) 3. Save your APNS development certificate to disk, and fill in its path and password in the sample code. Also fill in your APNS bundle/deviceToken IDs in the sample code. 4. Drop the sample code inside Program.cs Main() and run the sample. 4a. In release mode, the HttpClient.SendAsync(...) line of code will run for about 8 seconds and then .NET Core will crash hard without raising an exception. 4b. In debug mode from VSCode, the HttpClient.SendAsync(...) line of code will exhibit intermittent hard crashes, intermittent exceptions, and/or ~8 second delays with successful connection. REPRO CODE FOLLOWS (sending a sample push notification through Apple's APNS servers) ``` // create our HTTP Client Handler (which will be reused across HTTP/2 requests) var clientHandler = new HttpClientHandler() { ClientCertificateOptions = ClientCertificateOption.Manual }; X509Certificate2 clientCertificate = new X509Certificate2(""/home/ubuntu/apns_devcert.pfx"", ""password""); // INFO: comment out the following line to see that HTTPS/2 is succeeding without a client certificate...APNS will simply return a ""please provide a client certificate"" message clientHandler.ClientCertificates.Add(clientCertificate); // var myClient = new System.Net.Http.HttpClient(clientHandler); // we will attempt to send five requests, 60 seconds apart, to ensure that HTTP/2 is working properly. for (int i = 1; i <= 5; i++) { Console.WriteLine(""Starting request #"" + i.ToString()); // create the push notification request string deviceToken = ""{device token from mac/ios device goes here}""; string appBundleId = ""{app bundle id goes here}""; string messageUuid = Guid.NewGuid().ToString(""D""); var myRequest = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Post, ""https://api.development.push.apple.com:443/3/device/"" + deviceToken); // upgrade the HTTP request to HTTP/2 (required for .NET Core on Linux) myRequest.Version = new System.Version(2, 0); myRequest.Headers.Add(""apns-id"", messageUuid); myRequest.Headers.Add(""apns-expiration"", ""0""); myRequest.Headers.Add(""apns-priority"", ""10""); myRequest.Headers.Add(""apns-topic"", appBundleId); StringContent content = new StringContent(""{ \""aps\"" : { \""alert\"" : \"".NET Core (request #"" + i.ToString() + "") -- test message -- \"" } }""); myRequest.Content = content; try { // INFO: .NET Core crashes on the following line var response = myClient.SendAsync(myRequest).GetAwaiter().GetResult(); // print out response to console var responseString = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); Console.WriteLine(""Response: "" + responseString); // optionally, verify that the response is using HTTP/2 //Console.WriteLine(""Response protocol: HTTP/"" + response.Version.ToString()); } catch (System.Net.Http.HttpRequestException ex) { Console.Write(""HttpRequestException: "" + ex.Message); } catch (Exception ex) { Console.Write(""Exception: "" + ex.Message); } // wait 60 seconds between test requests Task.Delay(60000).GetAwaiter().GetResult(); } Console.WriteLine(""Done""); ``` " +11037 area-System.Runtime Add SuppressIldasmAttribute Add this, it's used in a few apps. It has no implementation. ``` T:System.Runtime.CompilerServices.SuppressIldasmAttribute M:System.Runtime.CompilerServices.SuppressIldasmAttribute.#ctor ``` +11038 area-System.Net HttpClient Exception on GetAsync method "Hi all, since I updated from RC1 to 1.0 I'm getting an exception using HttpClient.GetAsync method. Here the exception: Exception type System.TypeLoadException Exception message: Could not load type 'System.Collections.Concurrent.ConcurrentDictionary`2' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'. Stack trace: at System.Net.Http.Formatting.JsonMediaTypeFormatter..ctor() at System.Net.Http.Formatting.MediaTypeFormatterCollection.CreateDefaultFormatters() at System.Net.Http.HttpContentExtensions.get_DefaultMediaTypeFormatterCollection() at WebApi.Controllers.MyController.Get(String word) in C:\MyController.cs:line 30 at lambda_method(Closure , Object , Object[] ) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__28.MoveNext() It seems a conflict between .Net4.0 and .Net4.5, my project reference ""net461"", IIS tries to get the method from mscorlib (net45) and it fails because it's getting actually mscorlib (net40). This method doesnt exists in mscorlib(net40) but in mscorlib(net45). See: http://stackoverflow.com/questions/38375857/system-typeloadexception-could-not-load-type-system-reflection-runtimereflecti Here my project.json: { ""dependencies"": { ""Microsoft.NETCore.App"": { ""version"": ""1.0.0"", ""type"": ""platform"" }, ""Microsoft.AspNetCore.Mvc"": ""1.0.0"", ""Microsoft.AspNetCore.Server.IISIntegration"": ""1.0.0"", ""Microsoft.AspNetCore.Server.Kestrel"": ""1.0.0"", ""Microsoft.Extensions.Configuration.EnvironmentVariables"": ""1.0.0"", ""Microsoft.Extensions.Configuration.FileExtensions"": ""1.0.0"", ""Microsoft.Extensions.Configuration.Json"": ""1.0.0"", ""Microsoft.Extensions.Logging"": ""1.0.0"", ""Microsoft.Extensions.Logging.Console"": ""1.0.0"", ""Microsoft.Extensions.Logging.Debug"": ""1.0.0"", ""Microsoft.Extensions.Options.ConfigurationExtensions"": ""1.0.0"", ""Microsoft.NETCore.Portable.Compatibility"": ""1.0.1"", ""Microsoft.EntityFrameworkCore"": ""1.0.0"", ""Microsoft.EntityFrameworkCore.Relational"": ""1.0.0"", ""Microsoft.EntityFrameworkCore.SqlServer"": ""1.0.0"", ""Microsoft.EntityFrameworkCore.Design"": ""1.0.0-preview2-final"", ""Microsoft.Extensions.WebEncoders.Core"": ""1.0.0-rc1-final"", ""SapientGuardian.MySql.Data"": ""6.9.812"", ""Microsoft.AspNetCore.Mvc.Formatters.Xml"": ""1.0.0"", ""Microsoft.AspNetCore.StaticFiles"": ""1.0.0"", ""MimeKit"": ""1.4.1"", ""MailKit"": ""1.4.1"", ""System.Xml.XmlDocument"": ""4.0.1"", ""AspNet.Security.OAuth.Validation"": ""1.0.0-alpha2-final"", ""OpenIddict"": ""1.0.0-*"", ""Microsoft.AspNetCore.Authentication.JwtBearer"": ""1.0.0"", ""Serilog"": ""2.1.0"", ""Serilog.Sinks.File"": ""2.1.0"", ""Microsoft.AspNet.WebApi.Client"": ""5.2.3"" }, ""tools"": { ""Microsoft.AspNetCore.Server.IISIntegration.Tools"": ""1.0.0-preview2-final"", ""Microsoft.EntityFrameworkCore.Tools"": ""1.0.0-preview2-final"" }, ""frameworks"": { ``` ""netcoreapp1.0"": { ""imports"": [ ""dotnet5.6"", ""net461"" ] } ``` }, ""buildOptions"": { ""emitEntryPoint"": true, ""preserveCompilationContext"": true }, ""runtimeOptions"": { ""configProperties"": { ""System.GC.Server"": true } }, ""publishOptions"": { ""include"": [ ""wwwroot"", ""Views"", ""Areas/**/Views"", ""appsettings.json"", ""web.config"" ] }, ""scripts"": { ""postpublish"": [ ""dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"" ] } } " +11042 area-System.Security X509Certificate2: Unclear error message when file does not exist "This issue is similar to #9402 An exception with an obscure error message is thrown when creating a `X509Certificate2` using a path to a file which does not exist. Consider the following code: ``` using System; using System.Security.Cryptography.X509Certificates; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { new X509Certificate2(fileName: ""invalid.cer""); } } } ``` on Windows, the following exception is thrown: ``` Unhandled Exception: Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: The system cannot find the file specified at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName) at ConsoleApplication.Program.Main(String[] args) ``` whereas the following exception is thrown on Linux and OS X: ``` nhandled Exception: Interop+Crypto+OpenSslCryptographicException: error:2006D080:BIO routines:BIO_new_file:no such file at Interop.Crypto.CheckValidOpenSslHandle(SafeHandle handle) at Internal.Cryptography.Pal.CertificatePal.FromFile(String fileName, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName) at ConsoleApplication.Program.Main(String[] args) ``` As such, this confirms to the MSDN specifications of the `X509Certificate2` constructor because all it says is that a `CryptographicException` should be thrown - which is the case. It seems that the error message contains too much information - I'd argue it should only read ""no such file"" or a user-friendly string, and the underlying OpenSSL error code (2006D080) could go on a different property of the OpenSslCryptographicException class. " +11044 area-System.ComponentModel Cannot reset DisplayName on ValidationContext "I do a lot of work with console applications and I like to use validation attributes and `IValidatableObject` to take advantage of framework-supplied validations rather than reinventing the wheel or using a third-party library. When looping through an object's properties to validate them, I can set the context's `MemberName` property appropriately each run through, but any non-successful validation results may return a nonsensical message since the validators use the `DisplayName` property to format the message, and the `DisplayName` property getter caches its return value the first time it is used. In addition to this, the `DisplayName` property cannot be reset as the setter will throw an `ArgumentNullException`. I could envision any of the following approaches to resolve this: - Allow setting `DisplayName` to `null` or `""""` - Set the `_displayName` field to `null` whenever `MemberName`/`_memberName` are changed - Offer a method like `Reset(bool clearItems = true)` to be a bit more explicit " +11045 area-System.Xml XML .Save() method missing option to use filename It seems that System.IO.Stream, System.IO.TextWriter, and System.Xml.XmlWriter are still options, but using string filename has been removed. +11046 area-System.Security X509Certificate2/OpenSSL: Unable to open PKCS#12 files with no password and no MAC "If you have a PKCS#12 file which is not protected with a password, and which does not have a MAC entry, opening the file will work on Windows but fails on Linux and Mac (which use OpenSSL). The following program reproduces the behavior: ``` using System; using System.IO; using System.Security.Cryptography.X509Certificates; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { byte[] rawData = Convert.FromBase64String( ""MIACAQMwgAYJKoZIhvcNAQcBoIAkgASCA+gwgDCABgkqhkiG9w0BBwGggCSABIID6DCCBRUwggURBgsqhkiG9w0BDAoBAaCCBMAwggS8AgEAMA0GCSqGSIb3DQEBAQUABIIEpjCCBKICAQACggEBAJ9Iw1KuIXuQBnQA3GvlPu2yvXZU8BbM6yBwuypsUdOk4isb8S2+CI/p3Ez8yWMb+HZLQ1QBXDvk2VzZUIJH+xY1oWqu7Hvo9iADkltKbfZ1yjfG5Dy7FatNnVHlGoq7HTK9WlxEVZutrHdpBKHNdHWoXr0xqxS4YtcXnnBZMLlDpVhxUJ6L/X0WRHY52QcLp6ZYfAObU1+l+Ihh7OVP1r8c0HmIH+qL3FaQplhrNjFr6qrCarA42DZjcgShuNOfuvhEJejmgOL7QS0j8h2sT/Fa5oDNwRNJV5vrni8GPbjd4Sbch+90+Oz39tyO8ecvIsKKak67oUbR80EyXNjb0eMCAwEAAQKCAQA8C/AmQSK6NAdav+BYhGl+rj0iWM7RqZqR9i14xrDqOmRQoA4Bknwj1KOKGlnJFQhLf//3sTOWGKWgjQP+uSf8rWcWkq7v31i5pN8NrzdZC/qZoE72XgjDNVUzRE0HM5bERAHGerRTJdu4gEyQuqVGnZxpcknuW7xXHb5K2DS4AiIDfkU9iqkUxa/hEG4HpueBgXv14oRa5z4hPzTbiIcej18f1n3IJA1SsATZ3RjU5B52ni/lYALufdnAJeBycLDU9m7UbqTfXSpb2uWM9yJKCOALHQZzE50/pW3DRQpdfbkoaMucoHqUSsLSbTLkYduHoxb9Bi7A6tgRTQFtOvfhAoGBANC639cEiE4xScrD3s9A/5/8pRoN8ojLEVDk44igGMHz+usHfxxp8YQvmYd5US1P6qPAX1scHKqHDbokd7aDh/5L7TKlwxo+iv7aOPQWJbpEmtsXASsMYfKneifUUxA47GtEYLHQ9Yy3kAratTaHH9K3a6x3wbsk815p77hlRygbAoGB"" + ""AMNbRSmmx/53b1YV6LxOuxzRSyCP5qYswlG2i7H6A+MLmUnxYurFvSptk+vEngmbOJW9rd49bHrK6PUtKBNYLxRWjRUtkgK2Z9PQguc8GD0W7SjHZafpFPETVdKxIVP6a18RB5jNvIuOPA8Z09/Kh80dw9dEPXs1EFQubxEFQ6nZAoGAOZsJgcb/c00JB4vNJzfSFK5eRnWI9RXOHpw864z7qDOUkV7NRuM6Q3f7kDb8H1xJ7o1+A6AbjTieojvESju8wYLk4LB8yvZt1+4T/9FI8kJS1ppfuSi+s4BjJzDjB7weC3CgmxKHYiGbAFPh5T2fm8EBV2Tps6N8AxeLkEFrBIID6ET3AoGAWmveYV7+5rtlXxUY+j/+v2HoBIIBMUIUGRAFW5PyyEoCjNYEQllFTyGXkO0YdwUDppqPq+szNkzNZW6YiKci1Y/Om0vwm7CXvSNgRkJ2GoDpAdcUy4S6dkT3z2eeKXUx41k5aYVBHqENaR23IfljXPwShDTeeA0lWseyUfKE44efRihRAoGAYn+PAVLDWmSKMm6rJDbJne12NYviqOa6n3ZJg0N9I8o0C/xFX1o/IzJF0EPdyVlCj/laIYoUX3O1P5I8YeubcR/JvY/LnCMutgsWlkdbz5c9gfbFVaEXXQPFyKuSaMea6pn+kv9EYtVfgiQ4rZ4aZwe0CWkzfDvIE6AGYgMICMIxPjAXBgkqhkiG9w0BCRQxCh4IAGMAZQByAHQwIwYJKoZIhvcNAQkVMRYEFO3z0SLPYjzwz8nNImJh6EFag+YwAAAAAAAAMIAGCSqGSIb3DQEHAaCAJIAEggPoMIIGETCCBg0GCyqGSIb3DQEMCgEDoIIFvDCCBbgGCiqGSIb3DQEJFgGgggWoBIIFpDCCBaAwggSIoAMCAQICCBulrjADvm1lMA0GCSqGSIb3DQEBBQUAMIGWMQswCQYDVQQGEwJVUzETMBEGA1UECgwKQXBwbGUgSW5jLjEsMCoGA1UECwwjQXBwbGUgV29ybGR3a"" + ""WRlIERldmVsb3BlciBSZWxhdGlvbnMxRDBCBgNVBAMMO0FwcGxlIFdvcmxkd2lkZSBEZXZlbG9wZXIgUmVsYXRpb25zIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE1MDExMjEyMTIxMFoXDTE2MDExMjEyMTIxMFowgZMxGjAYBgoJkiaJk/IsZAEBDApSSlhWVEU4NjUzMTgwNgYDVQQDDC9pUGhvbmUgRGV2ZWxvcGVyOiBGcmVkZXJpayBDYXJsaWVyICg4VDlVS1VCR1k5KTETMBEGA1UECwwKVENESzVFTEFINzEZMBcGA1UECgwQRnJlZGVyaWsgQ2FybGllcjELMAkGA1UEBhMCVVMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfSMNSriF7kAZ0ANxr5T7tsr12VPAWzOsgcLsqbFHTpOIrG/EtvgiP6dxM/MljG/h2S0NUAVw75Nlc2VCCR/sWNaFqrux76PYgA5JbSm32dco3xuQ8uxWrTZ1R5RqKux0yvVpcRFWbrax3aQShzXR1qF69MasUuGLXF55wWTC5Q6VYcVCei/19FkR2OdkHC6emWHwDm1NfpfiIYezlT9a/HNB5iB/qi9xWkKZYazYxa+qqwmqwONg2Y3IEggOgBKG405+6+EQl6OaA4vtBLSPyHaxP8VrmgM3BE0lXm+ueLwY9uN3hJtyH73T47Pf23I7x5y8iwopqTruhRtHzQTJc2NvR4wIDAQABo4IB8TCCAe0wHQYDVR0OBBYEFO3z0SLPYjzwz8nNImJh6EFag+YwMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUiCcXCam2GGCL7Ou69kdZxVJUo7cwggEPBgNVHSAEggEGMIIBAjCB/wYJKoZIhvdjZAUBMIHxMIHDBggrBgEFBQcCAjCBtgyBs1JlbGlhbmNlIG9uIHRoaXMgY2VydGlmaWNhdGUgYnkgYW55IHBhcnR5IGFzc3VtZXMgYWNjZXB0YW"" + ""5jZSBvZiB0aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwgY2VydGlmaWNhdGUgcG9saWN5IGFuZCAEggItY2VydGlmaWNhdGlvbiBwcmFjdGljZSBzdGF0ZW1lbnRzLjApBggrBgEFBQcCARYdaHR0cDovL3d3dy5hcHBsZS5jb20vYXBwbGVjYS8wTQYDVR0fBEYwRDBCoECgPoY8aHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20vY2VydGlmaWNhdGlvbmF1dGhvcml0eS93d2RyY2EuY3JsMA4GA1UdDwEB/wQEAwIHgDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDAzATBgoqhkiG92NkBgECAQH/BAIFADANBgkqhkiG9w0BAQUFAAOCAQEAaIuMydHST4l1fMsaXr51Ejqa00fB3PNY9Rw6oG1cWkSS6RgxAz7AJ7dJCO0tZdqPCX6VKnTHhgMlQrI8tIfU2WcG+sV3tvnAysqRtDPqhHWiR4judlp0ETzoLHJFDbbnEph3NpOYVfUwyCthYL/xv3cF9ohcHvfS02O4MsQl1QKhUzLXEOnjUGgPIb7xmGIP54+TNePhEdOi05ijKr1AO4BgCKjeu7tHYvIuyY9HGOfGyuXsoDrP6F+Jj3VRvYCCZuKIvDnocGHsi9AgaxuOSdp5GQOD6OQvXaOPeJNLf8+1Z1S4h/9lS6VubqH+tp9nvgUuq+zbmHv5iqRadMmz4TE+MBcGCSqGSIb3DQEJFDEKHggAYwBlAHIAdDAjBgkqhkiG9w0BCRUxFgQU7fPRIs9iPPDPyc0iYmHoQVqD5jAAAAAAAAAAAAAAAAAAAAAA""); File.WriteAllBytes(@""rawData.bin"", rawData); var certificate = new X509Certificate2( rawData: rawData, password: null, keyStorageFlags: X509KeyStorageFlags.Exportable); Console.WriteLine(certificate.SerialNumber); } } } ``` The output on Windows: ``` 1BA5AE3003BE6D65 ``` and on Linux: ``` Unhandled Exception: Interop+Crypto+OpenSslCryptographicException: error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure at Internal.Cryptography.Pal.OpenSslPkcs12Reader.Decrypt(String password) at Internal.Cryptography.Pal.PkcsFormatReader.TryReadPkcs12(OpenSslPkcs12Reader pfx, String password, Boolean single, ICertificatePal& readPal, List`1& readCerts) at Internal.Cryptography.Pal.PkcsFormatReader.TryReadPkcs12(Byte[] rawData, String password, Boolean single, ICertificatePal& readPal, List`1& readCerts) at Internal.Cryptography.Pal.CertificatePal.FromBlob(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags) at ConsoleApplication.Program.Main(String[] args) ``` You can get the same error message by running OpenSSL directly on the `rawData.bin` file (don't provide a password): ``` openssl.exe pkcs12 -info -in rawData.bin WARNING: can't open config file: /usr/local/ssl/openssl.cnf Enter Import Password: Mac verify error: invalid password? 20876:error:2307E06C:PKCS12 routines:PKCS12_verify_mac:mac absent:.\crypto\pkcs12\p12_mutl.c:119: 20876:error:2307E06C:PKCS12 routines:PKCS12_verify_mac:mac absent:.\crypto\pkcs12\p12_mutl.c:119: ``` However, OpenSSL will correctly inspect the file if you pass the `-nomacver` option: ``` openssl.exe pkcs12 -info -in rawData.bin -nomacver WARNING: can't open config file: /usr/local/ssl/openssl.cnf Enter Import Password: PKCS7 Data Key bag Bag Attributes friendlyName: cert localKeyID: ED F3 D1 22 CF 62 3C F0 CF C9 CD 22 62 61 E8 41 5A 83 E6 30 Key Attributes: Enter PEM pass phrase: PKCS7 Data Certificate bag Bag Attributes friendlyName: cert (...) -----END CERTIFICATE----- ``` The issue seems to be caused by the absence of a MAC entry in the file. Based on [RFC7292](https://tools.ietf.org/html/rfc7292#section-5.1), I believe that's valid, and BouncyCastle [creates PKCS#12 files without MAC entries if no password is provided](https://github.com/bcgit/bc-csharp/blob/master/crypto/src/pkcs/Pkcs12Store.cs#L959). So net, because - This file was created by Bouncy Castle, which emits the MAC entry if it is not password protected - That seems to be compliant with the RFC - The file loads correctly on Windows - The file loads correctly using OpenSSL if you specify the `-nomacver` flag I would expect .NET Core on Linux & Mac to also be able to read this file. " +11048 area-System.Reflection Exception message for AmbiguousMatchException should include the name Fundamentally, this is an indication of a bad argument, without telling you what the bad value is, which usually demands that you fire up the debugger to figure it out. It would be helpful to know what the ambiguous name actually was. ``` System.Reflection.AmbiguousMatchException : Ambiguous match found. Stack Trace: at System.RuntimeType.GetMethodImpl(String name, BindingFlags bindingAttr, Binder binder, CallingConventions callConv, Type[] types, ParameterModifier[] modifiers) at System.Type.GetMethod(String name) ``` +11050 area-System.Security X509Certificate2/OpenSSL: Subject includes incorrectly-encoded UID attribute "If the Subject of a certificate includes a UID (OID 0.9.2342.19200300.100.1.1) attribute, this attribute is encoded incorrectly in the string representation of the Subject DN as `userId` instead of `UID`. ``` dotnet run Project certificates (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation. C=US, O=Quamotion sprl, OU=PWWS5TKNBM, CN=iPhone Distribution: Quamotion sprl (PWWS5TKNBM), userId=PWWS5TKNBM ``` Valid representations are those returned by `X509Certificate2.Subject` on full .NET: ``` dotnet run Project certificates (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation. C=US, O=Quamotion sprl, OU=PWWS5TKNBM, CN=iPhone Distribution: Quamotion sprl (PWWS5TKNBM), OID.0.9.2342.19200300.100.1.1=PWWS5TKNBM ``` and by `openssl.exe`: ``` openssl x509 -inform der -in rawdata.bin -subject subject= /UID=PWWS5TKNBM/CN=iPhone Distribution: Quamotion sprl (PWWS5TKNBM)/OU=PWWS5TKNBM/O=Quamotion sprl/C=US ``` I believe that [RFC4514 String Representation of Distinguished Names](https://www.ietf.org/rfc/rfc4514.txt) describes how the subject of a certificate should be represented, and it states the following: > _2.3. Converting AttributeTypeAndValue_ > If the AttributeType is defined to have a short name (descriptor) > [RFC4512] and that short name is known to be registered [REGISTRY] > [RFC4520] as identifying the AttributeType, that short name, a > , is used. Otherwise the AttributeType is encoded as the > dotted-decimal encoding, a , of its OBJECT IDENTIFIER. > The and are defined in [RFC4512]. and section 3 contains the following: > Implementations MUST recognize AttributeType name strings > (descriptors) listed in the following table, but MAY recognize other > name strings. > > | String | X.500 AttributeType | > | --- | --- | > | UID | userId (0.9.2342.19200300.100.1.1) | and [RFC4519](https://www.ietf.org/rfc/rfc4519.txt) finally defines the `UID` attribute: > 0.9.2342.19200300.100.1.1 NAME 'uid' > EQUALITY caseIgnoreMatch > SUBSTR caseIgnoreSubstringsMatch > SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 ) (`userId` was used in RFC 1274 which RFC 4519 supersedes). This program can be used to reproduce the behavior: ``` using System; using System.IO; using System.Security.Cryptography.X509Certificates; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { byte[] rawData = Convert.FromBase64String(""MIIFnzCCBIegAwIBAgIIdo+s3oP49T8wDQYJKoZIhvcNAQEFBQAwgZYxCzAJBgNVBAYTAlVTMRMwEQYDVQQKDApBcHBsZSBJbmMuMSwwKgYDVQQLDCNBcHBsZSBXb3JsZHdpZGUgRGV2ZWxvcGVyIFJlbGF0aW9uczFEMEIGA1UEAww7QXBwbGUgV29ybGR3aWRlIERldmVsb3BlciBSZWxhdGlvbnMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTYwMjA4MTU0MzQwWhcNMTcwMjA3MTU0MzQwWjCBkjEaMBgGCgmSJomT8ixk"" + ""AQEMClBXV1M1VEtOQk0xOTA3BgNVBAMMMGlQaG9uZSBEaXN0cmlidXRpb246IFF1YW1vdGlvbiBzcHJsIChQV1dTNVRLTkJNKTETMBEGA1UECwwKUFdXUzVUS05CTTEXMBUGA1UECgwOUXVhbW90aW9uIHNwcmwxCzAJBgNVBAYTAlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsZRJE85+iTE/tODPi98Xn82C/oCtB97dTHToWoaQRA4kNCNmreedVnTFLGHa5JnKIBtMao+0qPkWxn/o76PuzlRa0r1oXcwwkgAYUE6S8Okzd9PmOGeXhunpuwPNRmyBJ0+oeo0UTg"" + ""UY97YUvypvrg6z8ZJpcXGICP6bCaHm8XjPaNPJRH8HCL56HPULtq+9Vt+xMCcCgt4joRFtvzEA8m3vItenUQvVrHI6kyjYcfQh/ANvSXWZyAkDQ1T1AqrljZ1SK/BTH4uIENWu32GglLFJj3UVed3FWO2uy6GYjarhcRkwmYbztJcMc5vLHyBesPPDqpWPmTjk5CvY8qYxTwIDAQABo4IB8TCCAe0wHQYDVR0OBBYEFMXm/a/Rf5kzjcap9LxSO7aYNzVdMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUiCcXCam2GGCL7Ou69kdZxVJUo7cwggEPBgNVHSAEggEGMIIBAjCB/wYJKoZI"" + ""hvdjZAUBMIHxMIHDBggrBgEFBQcCAjCBtgyBs1JlbGlhbmNlIG9uIHRoaXMgY2VydGlmaWNhdGUgYnkgYW55IHBhcnR5IGFzc3VtZXMgYWNjZXB0YW5jZSBvZiB0aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwgY2VydGlmaWNhdGUgcG9saWN5IGFuZCBjZXJ0aWZpY2F0aW9uIHByYWN0aWNlIHN0YXRlbWVudHMuMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3LmFwcGxlLmNvbS9hcHBsZWNhLzBNBgNVHR8ERjBEMEKgQKA+hj"" + ""xodHRwOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9jZXJ0aWZpY2F0aW9uYXV0aG9yaXR5L3d3ZHJjYS5jcmwwDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMDMBMGCiqGSIb3Y2QGAQQBAf8EAgUAMA0GCSqGSIb3DQEBBQUAA4IBAQCPqzl6lemCu/TUdag7qnCP81c++y6E29gFy+dWJ1sYx/heytn5TX+Byd3OdEz2/DoSkhbNswLwuZ1SLfjJs1L/1FC5y8D9W5oaMTnbToqIcYY6jLLIkV3ALvBf08ReKdh+875yvE9vsPC0Uzfljh/nrZ/1104POJiTYLHrbIAa"" + ""5sEOxrn/lGhH6hGPkmMKHRqMh7v++Z12tat63Ul0mZNCqrShBQi+mH7jV7nik/gZVZW+knxtfcGuDsSZZHLRSGpa6JUe7qCJQ8Y8r5QZqXJGdue11VFGq7/H+L/bQ4X0QxYq9IweD12DoTGWu/UXaL62w868wec808VNOKynDFBS""); File.WriteAllBytes(""rawdata.bin"", rawData); var certificate = new X509Certificate2( rawData: rawData, password: null, keyStorageFlags: X509KeyStorageFlags.Exportable); Console.WriteLine(certificate.Subject); } } } ``` " +11055 area-Serialization Investigate if type KeyValuePairAdapter need a different type. Refer #10598 and see if we need do the same thing for KeyValuePairAdapter. +11056 area-Serialization Add test coverage for issue#10598 Need add test coverage for #10598 +11057 area-Meta build/test issues on Ubuntu on Windows "Tracking current issues blocking CoreFx testing on Ubuntu on Windows: (Note that basically nothing works prior to rs_preview build 14905, which introduced ""restartable syscall"" support.) rs_preview build 14936 has a [known bug](https://msdn.microsoft.com/en-us/commandline/wsl/release_notes#build-14936) that causes a BSOD when running our networking tests. - [x] Need to update the dotnet cli to a more recent version with the ""execstack"" bit set correctly on native modules (https://github.com/dotnet/corefx/issues/11058). - [x] System.Diagnostics.Process: https://github.com/Microsoft/BashOnWindows/issues/967. - [x] System.Diagnostics.Process: https://github.com/Microsoft/BashOnWindows/issues/968. - [x] System.Diagnostics.Process: https://github.com/Microsoft/BashOnWindows/issues/974 - [x] System.Diagnostics.Process: https://github.com/dotnet/corefx/issues/11072. - [x] System.IO.Pipes: _hangs_ due to https://github.com/Microsoft/BashOnWindows/issues/975. - [x] System.IO.Pipes: https://github.com/Microsoft/BashOnWindows/issues/1011 - [ ] System.IO.Pipes: https://github.com/Microsoft/BashOnWindows/issues/1012 - [x] System.Net.Sockets: https://github.com/Microsoft/BashOnWindows/issues/982. - [x] System.Net.Sockets: https://github.com/Microsoft/BashOnWindows/issues/987 - [ ] System.Net.Sockets: https://github.com/Microsoft/BashOnWindows/issues/989 - [x] System.Net.Sockets: https://github.com/Microsoft/BashOnWindows/issues/990 - [ ] System.Linq.Tests crashes due to https://github.com/Microsoft/BashOnWindows/issues/513 - [ ] System.Linq.Expressions.Tests crashes due to https://github.com/Microsoft/BashOnWindows/issues/513 - [ ] System.Numerics.Vectors.Tests crashes due to https://github.com/Microsoft/BashOnWindows/issues/513 - [ ] System.Runtime.Numerics.Tests crashes due to https://github.com/Microsoft/BashOnWindows/issues/513 - [ ] System.Dynamic.Runtime.Tests crashes due to https://github.com/Microsoft/BashOnWindows/issues/513 - [x] System.IO.FileSystem.Tests: https://github.com/Microsoft/BashOnWindows/issues/1008 - [x] System.IO.FileSystem.Watcher.Tests: https://github.com/Microsoft/BashOnWindows/issues/216 (fixed in Windows build 14926) - [x] System.IO.FileSystem.DriveInfo.Tests: https://github.com/dotnet/corefx/issues/11570 - [x] System.Net.Ping.Functional.Tests: https://github.com/Microsoft/BashOnWindows/issues/561 (fixed in Windows build 14926) - [x] System.Net.NetworkInformation.Functional.Tests: https://github.com/Microsoft/BashOnWindows/issues/308 - [x] Intermittent failures in System.Net.Http tests: https://github.com/Microsoft/BashOnWindows/issues/1068. ## Still need investigation: - [ ] NuGet package restore occasionally hangs. Killing it and retrying usually gets past this. - [ ] Intermittent hangs in System.Net.Http tests. " +11063 area-System.Net HttpClient.SendAsync null exception "I am building an ASP.NET core web api which is using HttpClient from some custom middleware to call a service endpoint using SendAsync. If the endpoint is available it works perfectly. If the endpoint is unavailable for any reason (wrong url for example) then I get back a null exception within my catch, ``` try { var request = new HttpRequestMessage(HttpMethod.Get, ""http://someurl.com""); request.Headers.Authorization = new AuthenticationHeaderValue(""Bearer"", token); var response = await _httpClient.SendAsync(request).ConfigureAwait(false); if (response.IsSuccessStatusCode) { var payload = await response.Content.ReadAsStringAsync().ConfigureAwait(false); var responseModel = JsonConvert.DeserializeObject(payload); if (!string.IsNullOrEmpty(responseModel?.Result)) { // do stuff } } } catch (Exception ex) { // ex is null } ``` " +11067 area-System.Net System.Net.Security: add SslStream overloads without SslProtocols, new HashAlgorithmType enums Add the following new APIs that allow applications to rely on the underlying OS TLS protocol version defaults: - [ ] AuthenticateAsClientAsync(String, X509CertificateCollection, Boolean) - [ ] AuthenticateAsServerAsync(X509Certificate, Boolean, Boolean) Add HashAlgorithmType: - [ ] Sha256 - [ ] Sha384 - [ ] Sha512 +11071 area-Infrastructure Files in use warning Running in Posh-Git `.\build` I'm getting the following: ``` S:\c2\Tools\net45\roslyn\tools\Microsoft.CodeAnalysis.CSharp.dll - Access is denied. S:\c2\Tools\net45\roslyn\tools\Microsoft.CodeAnalysis.dll - Access is denied. S:\c2\Tools\net45\roslyn\tools\Microsoft.CodeAnalysis.VisualBasic.dll - Access is denied. S:\c2\Tools\net45\roslyn\tools\Microsoft.DiaSymReader.Native.amd64.dll - Access is denied. S:\c2\Tools\net45\roslyn\tools\System.Reflection.Metadata.dll - Access is denied. S:\c2\Tools\net45\roslyn\tools\VBCSCompiler.exe - Access is denied. S:\c2\Tools\net45\roslyn\tools - The process cannot access the file because it is being used by another process. ``` Did some investigation and found that the VBCSCompiler.exe is holding these: ``` S:\c2 [ssl ≡]> C:\sysint\handle.exe S:\c2\Tools\net45\roslyn\tools\Microsoft.CodeAnalysis.CSharp.dll Handle v4.0 Copyright (C) 1997-2014 Mark Russinovich Sysinternals - www.sysinternals.com VBCSCompiler.exe pid: 776 type: File 510: S:\c2\Tools\net45\roslyn\tools\Microsoft.CodeAnalysis.CSharp.dll ``` Killing the process makes everything work. I may have stopped a build using Ctrl+C at some time prior to getting this. @weshaggard @ellismg PTAL +11072 area-System.Diagnostics System.Diagnostics.ProcessThread.StartAddress reports incorrect address on Linux "We get the value of `ProcessThread.StartAddress` by looking at `/proc/[pid]/task/[tid]/stat`, parsing out the `startstack` field from that file. However, this gives the address of the _stack_, not the [""...address of the function that the operating system called that started this thread.""](https://msdn.microsoft.com/en-us/library/system.diagnostics.processthread.startaddress%28v=vs.110%29.aspx) It doesn't look to me like the value we need here is actually available on Linux or OSX. From the test code, it looks like we already expect `null` on OSX. Maybe we should change the Linux implementation to return `null` as well, or change both to throw `PlatformNotSupportedException`. " +11073 area-Serialization Optimize Code using Enum.Parse ReflectionXmlSerializationReader uses Enum.Parse when deserializing enum values. Enum.Parse is VERY VERY slow. We will need to replace this with something better in the long run. +11075 area-System.Globalization Port Remainder of TimeZoneInfo There are some members in TimeZoneInfo that still need to be implemented, for they require a Linux implementation: ``` M:System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId(System.DateTime,System.String) M:System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId(System.DateTime,System.String,System.String) M:System.TimeZoneInfo.ConvertTimeBySystemTimeZoneId(System.DateTimeOffset,System.String) ``` +11079 area-System.Diagnostics Fix ProcessThread.StartAddress on Linux "On Linux, we were reporting the starting _stack_ address for a thread via `ProcessThread.StartAddress`. This property is supposed to return the _code_ address of the start of the thread. We have no way of getting that info on Linux, so we'll just report it as `IntPtr.Zero`, as we already do on OSX (and apparently sometimes on Windows). This change also reworks the test for this property to be more permissive of address values. We already accepted `IntPtr.Zero` on Windows/OSX, and now on Linux. We previously failed on ""negative"" address values, but this doesn't make sense, as addresses are really unsigned. We really just need to allow any value here. Fixes #11072 @stephentoub " +11082 area-System.Security System.Security.Claims.Claim value type incorrect The type of [`System.Security.Claims.Claim.Value`](https://github.com/dotnet/corefx/blob/master/src/System.Security.Claims/src/System/Security/Claims/Claim.cs#L301) is to `string` which is contrary to the [spec](https://tools.ietf.org/html/rfc7519#section-2): > Claim Value > The value portion of a claim representation. A Claim Value can be > **any JSON value**. This is big problem for us while creating a .NET Core app for a large established ecosystem where JWTs have object claims. The problem is exacerbated by the fact that now System.IdentityModel.Tokens.Jwt library is dependent on this implementation in the way it deserialises JWTs into `ClaimsIdentity` and then into `ClaimsPrincipal`... (e.g. [here](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/master/src/System.IdentityModel.Tokens.Jwt/JwtSecurityTokenHandler.cs#L866) or [here](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/master/src/System.IdentityModel.Tokens.Jwt/JwtSecurityTokenHandler.cs#L893)) +11087 area-System.IO Cannot debug System.IO.Compression under Visual Studio I'm trying to pinpoint what appears to be a bug in .NET Core, where the `Stream` returned for a `ZipEntry` is truncted by a couple of bytes in a very rare scenario. The behavior is different from NetFX and the NetFX behavior seems to be the correct one. I've done the following - `git clone corefx` - `init-tools.cmd` - `build.cmd` That builds the repo & the tests pass, so I'm pretty sure the checkout I have is in a consistent state. Next, I - Open `src\System.IO.Compression\System.IO.Compression.sln` with Visual Studio 2015 Update 3 which also has the Windows 10 tools installed. - Set the configuration to `Debug_Windows` - Set `System.IO.Compression.Tests` as the Startup project - Hit F5 to start debugging At this point, the tests load correctly and I can set breakpoints and step through the test project. However, for the `System.IO.Compression.dll` assembly itself, it seems that the test project takes the assembly from a NuGet package rather than the version which was just built by Visual Studio: - In the Modules window, the timestamp for the `System.IO.Comrpession.dll` indicates it was built to days ago - The symobls are not loaded, and when trying to load the symbols, the original path is set to `D:\A\_work\4\s\bin\obj\Windows_NT.AnyCPU.Release\System.IO.Compression\System.IO.Compression.pdb`, which looks like a build server path So, I'm sure I've missed something that caused the test to run against a NuGet package instead of the `System.IO.Compression.dll` which I built locally, but I can't figure out what. Any guidance? I read through the Developer Guide but couldn't find much +11088 area-System.Net ReuseUnicastPort_CreateSocketSetOption_NoSocketsReuseUnicastPortSupport_Throws failing in CI Appears to be failing all Windows builds, e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug/1115/consoleText http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/3747/consoleText http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_release/1113/ ``` System.Net.Sockets.Tests.SocketOptionNameTest.ReuseUnicastPort_CreateSocketSetOption_NoSocketsReuseUnicastPortSupport_Throws [FAIL] Assert.Throws() Failure Expected: typeof(System.Net.Sockets.SocketException) Actual: (No exception was thrown) Stack Trace: D:\j\workspace\windows_nt_debug88592b53\src\System.Net.Sockets\tests\FunctionalTests\SocketOptionNameTest.cs(56,0): at System.Net.Sockets.Tests.SocketOptionNameTest.ReuseUnicastPort_CreateSocketSetOption_NoSocketsReuseUnicastPortSupport_Throws() ``` cc: @davidsh, @cipop, @ericeil +11090 area-System.Runtime Make RuntimeHelpers.TryEnsureSufficientExecutionStack public This method is very handy to detect upcoming stack overflows in recursive algorithms without the need for exception handling logic. Note that `TrySetFromTask` in https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/System.Threading.Tasks/src/System/Threading/Tasks/TaskExtensions.CoreCLR.cs has a remark on the possibility for this method to become public. Another place where this would have been useful is in the suggested fix for #7953 . +11091 area-System.Linq Probe for sufficient stack during expression tree compilation recursion When compiling deep expression trees, we run into `StackOverflowException` which terminates the process. There are four recursive algorithms used for compilation/interpretation: - Stack spilling, a custom visitor with recursive method `RewriteExpression` - Variable binding, a classic expression visitor with recursive method `Visit` - Lambda compiler, a custom tree traversal with recursive method `EmitExpression` - Light compiler, a custom tree traversal with recursive methods `CompileExpression[AsVoid]` A repro is compiling a deep expression tree, such as a binary expression: ``` csharp var e = (Expression)Expression.Constant(0); var n = 10000; for (var i = 0; i < n; i++) e = Expression.Add(e, Expression.Constant(1)); var f = Expression.Lambda>(e).Compile(useInterpreter); ``` This fails regardless of the `useInterpreter` flag. There are three possible approaches: - Don't do anything; these trees could be considered rare enough to warrant a change. However, it seems EF has run into this (see #7953 for more info) and the outcome is process termination triggered by a carefully crafted web request (DoS attack potential). It'd still be interesting to see whether the generated EF tree can be flattened. - Trade the `StackOverflowException` for another exception type that can be caught by users, so it doesn't terminate the process. This is similar to what WPF does in e.g. `Control.FindControl` by using `RuntimeHelpers.EnsureSufficientExecutionStack`, or what Roslyn does when it raises compilation error `ERR_InsufficientStack`. - Use the mechanism used to detect an upcoming stack overflow (e.g. by counting levels of recursion or by using `RuntimeHelpers.EnsureSufficientExecutionStack`) and mitigate the issue by borrowing the stack of another thread. This is similar to `TrySetFromResult` in https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/System.Threading.Tasks/src/System/Threading/Tasks/TaskExtensions.CoreCLR.cs This PR uses the latter approach and hardens the four places where unbounded recursion can lead to stack overflow conditions by using `RuntimeHelpers.EnsureSufficientExecutionStack` and jumping to another thread to continue the computation when this condition is met. Ideally, we'd see the `TryEnsureSufficientExecutionStack` method become public so we can do away with the exception handling logic (see #11090). +11093 area-Infrastructure Remove System.Runtime dependency in System.Runtime.Extensions Use the System.Runtime package once published instead. https://github.com/dotnet/corefx/blob/dev/api/src/System.Runtime.Extensions/ref/System.Runtime.Extensions.csproj#L17 +11094 area-Infrastructure Remove reference to live package of System.Runtime.Extensions in System.Runtime.Tests Remove once prerelease gets updated again https://github.com/dotnet/corefx/blob/dev/api/src/System.Runtime/tests/System.Runtime.Tests.csproj#L119 +11095 area-System.Net Disable NoSocketsReuseUnicastPortSupport tests Fixes #11088 +11096 area-System.Linq ConstantCheck.IsNull can check for DefaultExpression as well Noticed when analyzing some generated IL code for binary expressions performing comparisons against `Expression.Default(type)` where `type` is a reference type or a nullable value type. The `ConstantCheck.IsNull` method does only consider `ConstantExpression` to check for a `null` constant value, though `DefaultExpression` would be worth checking for as well. We have an `IsNullableOrReferenceType` helper method that can be used for this purpose. Note that `ConstantCheck` appears in both the compiler and the interpreter. For platforms that support both, we can reduce code size by moving these utilities into common files (see https://github.com/dotnet/corefx/issues/11097). +11097 area-System.Linq Reduce code duplication in expression compiler and interpreter A good example is the `ConstantCheck` class which seems to occur twice. For platforms that support both compilation and interpretation, we can reduce code size by sharing the code. +11098 area-Meta "Add ""CurrentBranch"" to dependency verification to make dev/api merge cleaner" This tracks picking up the feature merged into buildtools with https://github.com/dotnet/buildtools/pull/978 that adds an auto-updated `CurrentBranch` property for each build info. It would make a merge from dev/api back into master cleaner. The idea behind it is described here: https://github.com/dotnet/corefx/pull/10970#discussion_r75404356. I have to look into how this will practically affect the merge and how the change needs to flow in git for the best effect. It would be possible to do this as part of https://github.com/dotnet/corefx/pull/10970 but I'd rather not block on it. /cc @weshaggard +11100 area-System.Net Inheritance security rules violated by type: 'System.Net.Http.WebRequestHandler'. Derived types must either match the security accessibility of the base type or be less accessible. "Using the latest System.Net.Http 4.1.1 as per https://github.com/dotnet/corefx/issues/9846#issuecomment-242131706, results in an exception when starting a web app that's .NET 4.6.1: Inheritance security rules violated by type: 'System.Net.Http.WebRequestHandler'. Derived types must either match the security accessibility of the base type or be less accessible. I've emailed a repro to @davidsh ----------------------------------------------------------------------------- ## Execution plan & status [UPDATED by karelz] **High-level plan:** A. Revert HttpClientHandler implementation in net46 build of CoreFX back to using original .NET Framework HTTP stack instead of WinHTTP (WinHttpHandler) based stack. B. Revise implementation of the 8 new APIs on HttpClientHandler we introduced in 4.1.0.0 OOB package so that it works accordingly for the net46 build. **Execution plan:** 1. Validate feasibility of [A] - [x] a. Port HttpClientHandler from NetFX (remove WinHttpHandler build dependency for net46 build). - [x] b. Add APTCA (on assembly only, no security attributes should be necessary for types or methods - same as in Desktop source code). - [x] Run the SecAnnotate tool to verify the claim above - Result: Passed - [x] c. Manually test the 2 scenarios (simplified and @onovotny’s) - Result: Verified 2. Validate feasibility of [B] - [x] a. Investigate the 2 remaining APIs (DefaultProxyCredentials, MaxConnectionsPerServer) which we do not know if we can implement. - Result: They are in the bucket 4.a below. 3. Full testing of [A] implementation (cost: 1d) - [x] a. Make changes in master - [x] b. Test all ~7 end-to-end scenarios reported by community (ask for help from community, provide steps to consume master packages on myget) - [x] Self hosting ASP.NET Core from Windows Service - validated by @annemartijn0 ([here](https://github.com/dotnet/corefx/issues/11100#issuecomment-275090982)) - [x] Azure Storage API - validated by @karelkrivanek ([here](https://github.com/dotnet/corefx/issues/11100#issuecomment-275933182)) - [x] Raven.Database package + usage of new HttpClientHandler - validated by @jahmai ([here](https://github.com/dotnet/corefx/issues/11100#issuecomment-275960251)) - [x] Direct dependency on System.Net.Http - validated by @pollax ([here](https://github.com/dotnet/corefx/issues/11100#issuecomment-276047076)) - [x] 4.6 console app depending on System.Net.Http - validated by @MikeGoldsmith ([here](https://github.com/dotnet/corefx/issues/11100#issuecomment-276066197)) - [x] 4.6 Azure webjob (console app) with ServiceBus - validated by @chadwackerman ([here](https://github.com/dotnet/corefx/issues/11100#issuecomment-276247013)) - [x] 4.6 Azure Batch app - validated by @chadwackerman ([here](https://github.com/dotnet/corefx/issues/11100#issuecomment-276247013)) - [ ] Not-yet-described scenario by @dluxfordhpf 4. Full implementation and testing of [B] - [x] a. Decide on design of 4 APIs (CheckCertificateRevocationList, SslProtocols, DefaultProxyCredentials, MaxConnectionsPerServer) which we can’t implement “correctly” - we have 3 choices - either throw PlatformNotSupportedException, or do nothing, or set the properties domain-wide instead of per-HttpClient-instance - [x] i. Implement the decision (cost: 2d) - [x] ii. List all libraries on NuGet (e.g. WCF?) which use the APIs we will be technically breaking, contact them * 4 NuGet libraries potentially affected - owners contacted - see [details and tracking progress](https://github.com/dotnet/corefx/issues/11100#issuecomment-276293185) - [x] b. Implement 5 APIs which we know how to implement (cost: 3d) - [x] c. Final testing on master branch package - covered by [3.b] 5. Ship final packages - [x] a. Port changes into release/1.1.0 branch - [x] b. Produce new package - 4.3.1 - [ ] c. Test most of ~7 end-to-end scenarios reported by community (ask for help from community, provide steps to consume 4.3.1 stable package from myget feed - see [here](https://github.com/dotnet/corefx/issues/11100#issuecomment-279129949)) - [ ] Self hosting ASP.NET Core from Windows Service - @annemartijn0 - [x] Azure Storage API - @karelkrivanek - [ ] Raven.Database package + usage of new HttpClientHandler - @jahmai - [x] Direct dependency on System.Net.Http - @pollax ([here](https://github.com/dotnet/corefx/issues/11100#issuecomment-279242162)) - [ ] 4.6 console app depending on System.Net.Http - @MikeGoldsmith - [ ] 4.6 Azure webjob (console app) with ServiceBus - [ ] 4.6 Azure Batch app - [ ] Not-yet-described scenario by @dluxfordhpf - [x] KeyVault - @Vhab ([here](https://github.com/dotnet/corefx/issues/11100#issuecomment-280832439)) - [x] SignalR - @tofutim ([here](https://github.com/dotnet/corefx/issues/11100#issuecomment-280874924)) - [x] OwlMQ - @JoeGordonMVP ([here](https://github.com/dotnet/corefx/issues/11100#issuecomment-280973308)) - [x] d. Publish package on nuget.org - https://www.nuget.org/packages/System.Net.Http/4.3.1 ----------------------------------------------------------- ## Impact of the change - Breaking changes Here's list of technical breaking changes caused by the proposed solution. It includes workarounds for each. Note that these new behaviors are specific when running on net46 / Desktop. When you run on .NET Core, the behavior is intact. 1. `HttpClientHandler.CheckCertificateRevocationList` (introduced in System.Net.Http 4.1) * New behavior: Throws `PlatformNotSupportedException` * Workaround: Use `ServicePointManager.CheckCertificateRevocationList` instead (impacts the whole AppDomain, not just single `HttpClientHandler` as it did in System.Net.Http 4.1-4.3) 2. `HttpClientHandler.SslProtocols` (introduced in System.Net.Http 4.1) * New behavior: Throws `PlatformNotSupportedException` * Workaround: Use `ServicePointManager.SecurityProtocol` instead (impacts the whole AppDomain, not just single `HttpClientHandler` as it did in System.Net.Http 4.1-4.3) 3. `HttpClientHandler.ServerCertificateCustomValidationCallback` (introduced in System.Net.Http 4.1) * New behavior: Works fine, except that the first parameter of type `HttpRequestMessage` is always `null` * Workaround: Use `ServicePointManager.ServerCertificateValidationCallback` 4. HTTP/2.0 support (introduced in System.Net.Http 4.1) * New behavior: System.Net.Http (for net46 = Desktop) no longer supports HTTP/2.0 protocol on Windows 10. * Workaround: Target System.Net.Http.WinHttpHandler NuGet package instead. * Details: * HTTP/2.0 support is part of the new CoreFx HTTP stack which on Windows is based on WinHTTP. The original HTTP stack in .NET Framework 4.6 did not support HTTP/2.0 protocol. If HTTP/2.0 protocol is needed, there is a separate NuGet package, System.Net.Http.WinHttpHandler which provides a new HttpClient handler. This handler is similar in features to `HttpClientHandler` (the normal default handler for HttpClient) but will support HTTP/2.0 protocol. When using HttpClient on .NET Core runtime, the WinHttpHandler is actually built-in to HttpClientHandler. But on .NET Framework, you need to explicitly use WinHttpHandler. * Regardless of whether you are running using .NET Framework runtime (with WinHttpHandler) or .NET Core runtime using HttpClientHandler (or WinHttpHandler), there are additional requirements in order to get HTTP/2.0 protocol working on Windows: * The client must be running on Windows 10 Anniversary Build (build 14393 or later). * The `HttpRequestMessage.Version` must be explicitly set to 2.0 (the default is normally 1.1). Sample code: ```c# var handler = new WinHttpHandler(); var client = new HttpClient(handler); var request = new HttpRequestMessage(HttpMethod.Get, ""http://www.example.com""); request.Version = new Version(2, 0); HttpResponseMessage response = await client.SendAsync(request); ```" +11105 area-System.Linq Some locals in the expression compiler and interpreter could be avoided See https://github.com/dotnet/corefx/pull/11091 for the full discussion. We have a bunch of places where we have a pattern like: ``` csharp private void CompileBinaryExpression(Expression expr) { var node = (BinaryExpression)expr; ``` We could perform the cast higher up and save a local. +11107 area-System.Security Coreclr crash due to double freeing Openssl handles Coreclr crashes due to a double Dispose of an openssl handle if the openssl function PKCS12_parse (called by Corefx's CryptoNative_Pkcs12Parse) returns false. When Openssl's PKCS12_parse fails, it frees the handles that it allocated into *pkey and *cert. But those output parameters do not get nulled by either Openssl or the corefx PAL shim and so the freed handles become valid managed handles. When those managed handles get disposed it leads to a second call to free on them, crashing coreclr. Repro: In theory it should be possible to write a test that exercises this, but you would need to come up with binary data that passes the initial call to d2i_PKCS12 but then fails in PKCS12_parse. This is beyond my meager time, understanding, and abilities. I encountered this issue when accidentally using a (crippled) version of Openssl that had rc2 support removed (./Configure no-rc2); in that case, PKCS12_parse would fail for all inputs, exposing the issue. Proposed Solution: Add an else block to the success check in CryptoNative_Pkcs12Parse that pushes nullptr into both *pkey and *cert. +11112 area-System.Security Port IsolatedStorage CAS members ``` T:System.Security.Permissions.IsolatedStorageContainment F:System.Security.Permissions.IsolatedStorageContainment.AdministerIsolatedStorageByUser F:System.Security.Permissions.IsolatedStorageContainment.ApplicationIsolationByMachine F:System.Security.Permissions.IsolatedStorageContainment.ApplicationIsolationByRoamingUser F:System.Security.Permissions.IsolatedStorageContainment.ApplicationIsolationByUser F:System.Security.Permissions.IsolatedStorageContainment.AssemblyIsolationByMachine F:System.Security.Permissions.IsolatedStorageContainment.AssemblyIsolationByRoamingUser F:System.Security.Permissions.IsolatedStorageContainment.AssemblyIsolationByUser F:System.Security.Permissions.IsolatedStorageContainment.DomainIsolationByMachine F:System.Security.Permissions.IsolatedStorageContainment.DomainIsolationByRoamingUser F:System.Security.Permissions.IsolatedStorageContainment.DomainIsolationByUser F:System.Security.Permissions.IsolatedStorageContainment.None F:System.Security.Permissions.IsolatedStorageContainment.UnrestrictedIsolatedStorage F:System.Security.Permissions.IsolatedStorageContainment.value__ ``` ``` T:System.Security.Permissions.IsolatedStorageFilePermission M:System.Security.Permissions.IsolatedStorageFilePermission.#ctor(System.Security.Permissions.PermissionState) M:System.Security.Permissions.IsolatedStorageFilePermission.Copy M:System.Security.Permissions.IsolatedStorageFilePermission.Intersect(System.Security.IPermission) M:System.Security.Permissions.IsolatedStorageFilePermission.IsSubsetOf(System.Security.IPermission) M:System.Security.Permissions.IsolatedStorageFilePermission.ToXml M:System.Security.Permissions.IsolatedStorageFilePermission.Union(System.Security.IPermission) ``` ``` T:System.Security.Permissions.IsolatedStorageFilePermissionAttribute M:System.Security.Permissions.IsolatedStorageFilePermissionAttribute.#ctor(System.Security.Permissions.SecurityAction) M:System.Security.Permissions.IsolatedStorageFilePermissionAttribute.CreatePermission ``` ``` T:System.Security.Permissions.IsolatedStoragePermission M:System.Security.Permissions.IsolatedStoragePermission.#ctor(System.Security.Permissions.PermissionState) P:System.Security.Permissions.IsolatedStoragePermission.UsageAllowed M:System.Security.Permissions.IsolatedStoragePermission.get_UsageAllowed M:System.Security.Permissions.IsolatedStoragePermission.set_UsageAllowed(System.Security.Permissions.IsolatedStorageContainment) P:System.Security.Permissions.IsolatedStoragePermission.UserQuota M:System.Security.Permissions.IsolatedStoragePermission.get_UserQuota M:System.Security.Permissions.IsolatedStoragePermission.set_UserQuota(System.Int64) M:System.Security.Permissions.IsolatedStoragePermission.FromXml(System.Security.SecurityElement) M:System.Security.Permissions.IsolatedStoragePermission.IsUnrestricted M:System.Security.Permissions.IsolatedStoragePermission.ToXml ``` ``` T:System.Security.Permissions.IsolatedStoragePermissionAttribute M:System.Security.Permissions.IsolatedStoragePermissionAttribute.#ctor(System.Security.Permissions.SecurityAction) P:System.Security.Permissions.IsolatedStoragePermissionAttribute.UsageAllowed M:System.Security.Permissions.IsolatedStoragePermissionAttribute.get_UsageAllowed M:System.Security.Permissions.IsolatedStoragePermissionAttribute.set_UsageAllowed(System.Security.Permissions.IsolatedStorageContainment) P:System.Security.Permissions.IsolatedStoragePermissionAttribute.UserQuota M:System.Security.Permissions.IsolatedStoragePermissionAttribute.get_UserQuota M:System.Security.Permissions.IsolatedStoragePermissionAttribute.set_UserQuota(System.Int64) ``` +11115 area-System.Security Port various CAS types ``` T:System.Security.SuppressUnmanagedCodeSecurityAttribute M:System.Security.SuppressUnmanagedCodeSecurityAttribute.#ctor ``` ``` T:System.Security.SecurityTreatAsSafeAttribute M:System.Security.SecurityTreatAsSafeAttribute.#ctor ``` The above two have usage and should be ported. ``` P:System.Security.AllowPartiallyTrustedCallersAttribute.PartialTrustVisibilityLevel M:System.Security.AllowPartiallyTrustedCallersAttribute.get_PartialTrustVisibilityLevel M:System.Security.AllowPartiallyTrustedCallersAttribute.set_PartialTrustVisibilityLevel(System.Security.PartialTrustVisibilityLevel) ``` ``` T:System.Security.PartialTrustVisibilityLevel F:System.Security.PartialTrustVisibilityLevel.NotVisibleByDefault F:System.Security.PartialTrustVisibilityLevel.value__ F:System.Security.PartialTrustVisibilityLevel.VisibleToAllHosts ``` ``` T:System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicyTypeConverter M:System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicyTypeConverter.#ctor ``` ``` T:System.Security.SecurityRulesAttribute M:System.Security.SecurityRulesAttribute.#ctor(System.Security.SecurityRuleSet) P:System.Security.SecurityRulesAttribute.RuleSet M:System.Security.SecurityRulesAttribute.get_RuleSet P:System.Security.SecurityRulesAttribute.SkipVerificationInFullTrust M:System.Security.SecurityRulesAttribute.get_SkipVerificationInFullTrust M:System.Security.SecurityRulesAttribute.set_SkipVerificationInFullTrust(System.Boolean) ``` ``` T:System.Security.SecurityRuleSet F:System.Security.SecurityRuleSet.Level1 F:System.Security.SecurityRuleSet.Level2 F:System.Security.SecurityRuleSet.None F:System.Security.SecurityRuleSet.value__ ``` +11116 area-System.Security Port T:System.Security.Cryptography.DESxx Okayed by the crypto board as it's so heavily used but it must be [EditorBrowsable(Never)] to strongly discourage its use. ``` T:System.Security.Cryptography.DES T:System.Security.Cryptography.DESCryptoServiceProvider ``` Usage is up to 6% of the tier 1. +11117 area-System.Security Port T:System.Security.Cryptography.RC2xx Port these as they're significantly used but apply [EditorBrowsable(Never)] to discourage new use. ``` T:System.Security.Cryptography.RC2 T:System.Security.Cryptography.RC2CryptoServiceProvider ``` Usage is ~1% of tier 1. +11118 area-System.Security Port T:System.Security.Cryptography.PasswordDeriveBytes PasswordDeriveBytes should be brought back, but as [EditorBrowsable(Never)] `T:System.Security.Cryptography.PasswordDeriveBytes` Usage is up to 5% of the top tier. +11121 area-System.Security M:System.Security.Cryptography.HMACSHA1.#ctor(System.Byte[],System.Boolean) Ignore boolean. Instructs implementation to use SHA1Managed, but we use a native HMAC implementation. Mark browseable.never. ''' M:System.Security.Cryptography.HMACSHA1.#ctor(System.Byte[],System.Boolean) ''' @bartonjs This is in 4% of the tier 1. Okay with bringing it? +11122 area-System.Security Port remainder of SecurityException ``` M:System.Security.SecurityException.#ctor(System.String,System.Object,System.Object,System.Reflection.MethodInfo,System.Object,System.Security.IPermission) M:System.Security.SecurityException.#ctor(System.String,System.Type) M:System.Security.SecurityException.#ctor(System.String,System.Type,System.String) P:System.Security.SecurityException.Action M:System.Security.SecurityException.get_Action M:System.Security.SecurityException.set_Action(System.Security.Permissions.SecurityAction) P:System.Security.SecurityException.Demanded M:System.Security.SecurityException.get_Demanded M:System.Security.SecurityException.set_Demanded(System.Object) P:System.Security.SecurityException.DenySetInstance M:System.Security.SecurityException.get_DenySetInstance M:System.Security.SecurityException.set_DenySetInstance(System.Object) P:System.Security.SecurityException.FailedAssemblyInfo M:System.Security.SecurityException.get_FailedAssemblyInfo M:System.Security.SecurityException.set_FailedAssemblyInfo(System.Reflection.AssemblyName) P:System.Security.SecurityException.FirstPermissionThatFailed M:System.Security.SecurityException.get_FirstPermissionThatFailed M:System.Security.SecurityException.set_FirstPermissionThatFailed(System.Security.IPermission) P:System.Security.SecurityException.GrantedSet M:System.Security.SecurityException.get_GrantedSet M:System.Security.SecurityException.set_GrantedSet(System.String) P:System.Security.SecurityException.Method M:System.Security.SecurityException.get_Method M:System.Security.SecurityException.set_Method(System.Reflection.MethodInfo) P:System.Security.SecurityException.PermissionState M:System.Security.SecurityException.get_PermissionState M:System.Security.SecurityException.set_PermissionState(System.String) P:System.Security.SecurityException.PermissionType M:System.Security.SecurityException.get_PermissionType M:System.Security.SecurityException.set_PermissionType(System.Type) P:System.Security.SecurityException.PermitOnlySetInstance M:System.Security.SecurityException.get_PermitOnlySetInstance M:System.Security.SecurityException.set_PermitOnlySetInstance(System.Object) P:System.Security.SecurityException.RefusedSet M:System.Security.SecurityException.get_RefusedSet M:System.Security.SecurityException.set_RefusedSet(System.String) P:System.Security.SecurityException.Url M:System.Security.SecurityException.get_Url M:System.Security.SecurityException.set_Url(System.String) P:System.Security.SecurityException.Zone M:System.Security.SecurityException.get_Zone M:System.Security.SecurityException.set_Zone(System.Security.SecurityZone) ``` +11123 area-System.IO Update IsolatedStorage WinRT Identity when GetEntryAssembly is available +11124 area-System.IO Implement ACLing for IsolatedStorage machine scope +11125 area-System.IO Add IsolatedStorage Remove() methods +11126 area-System.IO Add Begin/End methods for IsolatedStorageFileStream Once the change goes through for FileStream need to expose in the ref assembly +11127 area-System.IO Add ObsoleteAttribute to Handle on FileStream and derived classes +11128 area-System.IO Add Lock/Unlock methods to IsolatedStorage/FileStream +11129 area-Serialization Add API: XmlReflectionImporter.IncludeTypes(System.Reflection.ICustomAttributeProvider) +11130 area-System.Linq Compacting switch tables in expression compiler This fixes #11105 by changing dispatch methods in `LambdaCompiler`, `LightCompiler`, and `StackSpiller` to perform the necessary cast prior to calling the specialized `Emit`, `Compile`, or `Rewrite` method. By doing so, we eliminate the need for these methods to have a weakly typed parameter and a strongly typed local, thus reducing the stack usage. A nice side-effect of this change is that the dispatch methods got a bit more compact because the different `ExpressionType` cases that correspond to a particular subtype of `Expression` have been put together. +11132 area-System.Security Replace Clear() on some crypto types These see usage in tier 1 and are just more instances where we removed a synonym for Dispose(). ``` M:System.Security.Cryptography.SymmetricAlgorithm.Clear M:System.Security.Cryptography.CryptoStream.Clear M:System.Security.Cryptography.HashAlgorithm.Clear ``` +11135 area-Serialization Fix System.Xml.XmlSerializer.Tests's ProjectReference System.Xml.XmlSerializer.Tests does not reference System.Xml.XmlSerializer as a project reference. This caused the test project not building against the latest contract assembly built by the repo. +11136 area-System.Linq Improving ConstantCheck with support for Default This addresses issue #11096 by adding a case for `ExpressionType.Default` to `ConstantCheck.IsNull`. Also adding some tests to cover these cases. Note that this branch builds on top of the PR for #11097; if we decide to take these changes, we could do that one first. +11142 area-System.ComponentModel DataAnnotations/EmailAddressAttribute should not fail on when string is empty [EmailAddress] fails when the string value is empty, which is annoying as [Required] should handle this case instead. [RegularExpression] does this correctly, see https://github.com/dotnet/corefx/blob/master/src/System.ComponentModel.Annotations/src/System/ComponentModel/DataAnnotations/RegularExpressionAttribute.cs/#L58 for an example of how to fix +11144 area-System.Runtime Marshal.GetHRForException() always returns 0 on non-Windows platforms "Take this example program: ``` using System; using System.IO; using System.Runtime.InteropServices; class Program { public static void Main(string[] args) { Console.WriteLine(""Value: "" + Marshal.GetHRForException(new IOException(""test message"", 123456))); } } ``` When run on Windows, it prints ""Value: 123456"". On OSX/Linux it prints ""Value: 0"". 0 seems like the wrong return value here since it'd indicate success. Mono currently returns -1 on platforms that don't support COM interop, but we're debating what to do on e.g. iOS since we need to add this method there for netstandard compliance: https://bugzilla.xamarin.com/show_bug.cgi?id=43646. The problem is that some code like serilog is using this method (see [Xamarin Forum post](https://forums.xamarin.com/discussion/73925/targeting-netstandard-1-6-on-xamarin-ios-no-marshal-gethrforexception) and [GitHub](https://github.com/search?q=org%3Aserilog+GetHRForException&type=Code)) so throwing PlatformNotSupportedException (which we added for all these Marshal APIs right now on iOS) won't make that code work either which is why I'm thinking about just changing it to -1 as well there. But ideally we'd be consistent with .NET Core :) Any reason why you're returning 0 instead of -1 or some other generic error code? /cc @stephentoub Version: ``` $ dotnet --info .NET Command Line Tools (1.0.0-preview2-003121) Product Information: Version: 1.0.0-preview2-003121 Commit SHA-1 hash: 1e9d529bc5 Runtime Environment: OS Name: Mac OS X OS Version: 10.11 OS Platform: Darwin RID: osx.10.11-x64 ``` " +11151 area-Meta Track implementation assemblies that should be merged At the lowest levels of CoreFx, our implementation assemblies are very fine-grained, making it difficult to do certain implementations. For example, Environment lives in System.Runtime.Extensions.dll, which is at a lower-level than System.IO and System.IO.FileSystem. That means on Unix when we need to read a configuration file in support of Environment.GetFolderPath, we have to do very strange contortions to make it work, e.g. including lots of duplicated code or writing custom I/O implementations, using reflection to find the relevant I/O types in another assembly, etc. This leads to bloat, is fragile, etc. We should look at recombining some of these implementation assemblies. This issue is to help track such dependencies. cc: @weshaggard, @danmosemsft, @ericstj, @KrzysztofCwalina - [ ] System.Runtime.Extensions needs access to file I/O to implement Environment.GetFolderPath on Unix (Directory.CreateDirectory and File.ReadAllLines are used) - [ ] System.Runtime.Extensions needs access to Process to implement Environment.WorkingSet (Process.GetCurrentProcess().WorkingSet64 is used) - [ ] ... +11154 area-System.Runtime Proposal: Support comparisons of IntPtr and UIntPtr ## Rationale Now that #8592 has been approved meaning both of `IntPtr` and `UIntPtr` will implement `IEquatable<>`, it would also make sense for them to implement `IComparable<>` and the comparison operators as well. This will amend this [rather unintuitive situation](http://tryroslyn.azurewebsites.net/#b:master/f:>il/K4Zwlgdg5gBAygTxAFwKYFsDcAoADsAIwBswBjGYCEAQwDNUZSjqQQYBhbAb2xj5nzEyMAG4B7MABMYAWQAUASl78e/NTACSEZAAVkAJxhFUtZDAC8m7Xv0A6AFqp9YnOv5bdBmPrBQAFmaWHjYOTi7KbhHqYLQwcsamMAA83r4BCjBcAL5ROWpRgiTk4lIwAHKKUapuMAQIaABURiaBMBDARESuNXWNqf6t7Z3dkTUwMXEJZik+AxnZudhZQA==), where it is possible to compare 2 raw pointers with `<`, but not 2 IntPtrs. It will also add better support for native math since it will allow two words to be compared without manually calling `ToPointer()` on each of them (and therefore resorting to unsafe code). Finally, implementing `IComparable` means `Array.Sort` on an array of IntPtrs will just work as expected, without having to write your own comparer. ## Proposed API ``` cs namespace System { public struct IntPtr : IEquatable, IComparable { public static bool operator <(IntPtr left, IntPtr right); public static bool operator <=(IntPtr left, IntPtr right); public static bool operator >(IntPtr left, IntPtr right); public static bool operator >=(IntPtr left, IntPtr right); public int CompareTo(IntPtr other); } public struct UIntPtr : IEquatable, IComparable { public static bool operator <(UIntPtr left, UIntPtr right); public static bool operator <=(UIntPtr left, UIntPtr right); public static bool operator >(UIntPtr left, UIntPtr right); public static bool operator >=(UIntPtr left, UIntPtr right); public int CompareTo(UIntPtr other); } } ``` ## Open Questions - Should `IntPtr` have the same semantics as int/long (signed) or `void*` (treated as unsigned?) for comparisons? For example: ``` cs var ptr = new IntPtr(-1); Console.WriteLine(ptr.ToInt64() < IntPtr.Zero.ToInt64()); // True Console.WriteLine(ptr.ToPointer() < IntPtr.Zero.ToPointer()); // False Console.WriteLine(ptr < IntPtr.Zero); // What should this be? ``` After dotnet/coreclr#6855 I'm guessing the better answer is the first one. ## Related issues - #10457 - dotnet/coreclr#963 +11155 area-Meta .NET Standard Library vs. .NET Platform Standard vs. NETStandard.Library "There are some [references ](https://docs.microsoft.com/en-us/dotnet/articles/standard/library) that the "".NET Standard Library"" is covered in the `NETStandard.Library` package. However, there are libraries (especially agnostic libraries) like `System.Xml.XPath` or `System.Collcetions.Immutable` which seem to be [part](https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md) of the "".NET Standard Library"" and/or "".NET Platform Standard"" but are not added as a dependency to `NETStandard.Library`. Do I misunderstand something here, or is the naming/documentation of the meta package `NETStandard.Library` just a bit odd? " +11156 area-System.Net Difference between Desktop and CoreFx with transmitted URIs containing reserved chars Create a URI with the following: > AbsoluteUri: “http://example.com/foo/abc[]123” Doing an HTTP request with .NET Framework sends the following on the wire to the server: > GET http://example.com/foo/abc[] HTTP/1.1 However, CoreFx (Windows) sends something different: > GET http://example.com/foo/abc%5B%5D123 HTTP/1.1 This causes app-compat problems especially for components such as Azure Storage that sign the URI being used and expect the formats to match. +11157 area-System.Runtime Loading assemblies Hi, I have tried in many ways to load an assembly at runtime from a console app, there are many responses to my problem : https://www.google.com.mx/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=dotnet%20core%20load%20assembly%20from%20file But none works for me, it seems like the responses use an old version of .Net Core, I am using version 1.0.1 build cee57bf6c981237d80aa1631cfe83cb9ba329f12, many suggested solutions throw a file not found exception, I even tried coping the dll in many locations, I am not sure how to properly load them, can you please point me in the right direction? I need to load a dll(a valid .net core dll) that is not part of my project at runtime, I need to do that so I am able to read the types defined in the assembly so I can generate some XML files based on the properties and attributes for that type, in .Net 4.x it's pretty straight forward. Thanks. +11159 area-System.Net Fix WinHttpHandler uri escaping for HTTP requests There is a behavior difference between .NET Framework (Desktop) and CoreFx. Desktop will send some reserved characters (such as square brackets) on the wire as-is without any percent-encoding. CoreFx using WinHttpHandler is doing additional percent-encoding on those characters. This fix changes WinHttpHandler behavior so that it won't do any additional percent-encoding. Whatever encoding System.Uri has done will be transmitted as-is. There is a separate problem where System.Uri itself doesn't percent-encode these characters during normalization. That is due to changes in the .NET Framework 4.5 timeframe (2012) where System.Uri was changed to follow more IRI (RFC 3987) rules. One could argue that was the real problem. But since this behavior is already baked into .NET Framework, the right fix for the below issue is to match Desktop behavior. We will be having a separate discussion/issue to analyze/debate whether System.Uri needs to be changed (or not) in the future. The various URI and HTTP RFCs have ambiguous language in these areas. Fixes #11156 +11160 area-System.Reflection No way to get the simple name parts of a TypeRef Namespace without many allocations. "Currently, if you are using MetadataReader and you have a handle to a TypeReference, then the only data exposed is: ``` c# public StringHandle Name { get; } public StringHandle Namespace { get; } public EntityHandle ResolutionScope { get; } ``` If the typeref is for a type in a namespace called ""A.B.C"" This means that if you want the constituent namespace parts (like ""A"", ""B"", ""C""), you first need to allocate the full string and then split it into smaller strings. Contrast this to the TypeDefinition where you can get handles to the NamespaceDefinition and can get just the Name off of it and it's parents. This is an issue in Roslyn because it causes allocations we don't want when we just want to get the namespace pieces (like we do for TypeDefs). A api to expose the individual pieces would be appreciated. " +11163 area-System.Diagnostics Non-Windows FileVersionInfo does not handle InformationalVersion -> Product Version "See https://github.com/dotnet/corefx/blob/4f4bb03474d93760bf312ddd1678cc1c9b04d422/src/System.Diagnostics.FileVersionInfo/src/System/Diagnostics/FileVersionInfo.Metadata.cs#L138 The comment and code there doesn't account for the fact that `AssemblyInformationalVersion` specifies the ""product version"" when present. ``` C# using System.Reflection; [assembly: AssemblyInformationalVersion(""1.2.3-beta"")] [assembly: AssemblyFileVersion(""1.2.3.0"")] ``` ![image](https://cloud.githubusercontent.com/assets/75470/17987753/a1003eb0-6ad6-11e6-877c-bfa1002820f4.png) The most robust fix would be to fix https://github.com/dotnet/corefx/issues/7875 by actually reading the win32 resource everywhere. However, if the approach of consuming managed attributes is kept, then `AssemblyInformationalVersion` needs to be taken into account as it is during compilation of the resource. @weshaggard @stephentoub " +11165 area-System.Net Multiple firewall prompts on Windows appear when running the build During the testing phase of the build, multiple firewall prompts pop up. This should not happen during the build. +11169 area-System.Globalization Port TimeZone TimeZone is already added into CoreCLR; however due to certain required Linux implementations and required dependencies (i.e. System.Globalization.DaylightTime), it was left out of CoreFx when completing #10074. ``` T:System.TimeZone M:System.TimeZone.#ctor P:System.TimeZone.CurrentTimeZone M:System.TimeZone.get_CurrentTimeZone P:System.TimeZone.DaylightName M:System.TimeZone.get_DaylightName P:System.TimeZone.StandardName M:System.TimeZone.get_StandardName M:System.TimeZone.GetDaylightChanges(System.Int32) M:System.TimeZone.GetUtcOffset(System.DateTime) M:System.TimeZone.IsDaylightSavingTime(System.DateTime) M:System.TimeZone.IsDaylightSavingTime(System.DateTime,System.Globalization.DaylightTime) M:System.TimeZone.ToLocalTime(System.DateTime) M:System.TimeZone.ToUniversalTime(System.DateTime) ``` +11170 area-System.Net ServerAsyncAuthenticate_MismatchProtocols_Fails failing in CI ``` System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_MismatchProtocols_Fails(serverProtocol: Tls, clientProtocol: Tls11, expectedException: typeof(System.Security.Authentication.AuthenticationException)) [FAIL] Assert.Throws() Failure Expected: typeof(System.Security.Authentication.AuthenticationException) Actual: typeof(System.TimeoutException): The operation has timed out. Stack Trace: at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +11174 area-System.Net Socket Poll during non-blocking connect broken on linux I am writing a library that requires a timeout on a socket connection from a client to a server. I tried implementing this using async methods, however this library needs to support net451 and netstandard, which both do not support the same async methods. In C previously, I've seen programs that do a non blocking connect() call, and the a poll() call to detect if the socket has finally connected, and timing out after enough poll failures have passed. The code below is a simplified version of what I have ported, and it works perfectly on windows, both with .net 4.5.1 and .net core RTM. The poll call returns false and loops until timeout. However, on linux and mac, the poll call always returns true, even when I can verify there is no socket listening on that port. If I try to call connect after the poll call returns true, I end up getting a ConnectionRefused error code. Is there a specific setting that would need to be called additionally on unix systems to make this work properly, or is this an internal library issue? ``` Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); socket.Blocking=false; try { socket.Connect(IPAddress.Loopback, 2222); } catch (SocketException ex) { if (ex.SocketErrorCode == SocketError.WouldBlock || ex.SocketErrorCode == SocketError.InProgress) { while (true) { if (socket.Poll(1000, SelectMode.SelectWrite) { // Socket connected (or should be anyway) return; } else { // Check if timed out here } } } } ``` +11177 area-System.Security Failed assert in pal_symmetric.cpp http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/3686/consoleText ``` Assertion failed: (algorithm == PAL_AlgorithmAES || operation == PAL_Algorithm3DES), function AppleCryptoNative_CryptorCreate, file /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/Native/Unix/System.Security.Cryptography.Native.Apple/pal_symmetric.cpp, line 54. ``` +11189 area-Infrastructure build.cmd -UpdateInvalidPackageVersions no longer working "Trying to run this command now produces the error: ``` error MSB4057: The target ""UpdateInvalidPackageVersions"" does not exist in the project ``` " +11192 area-System.Net Enhance LoopbackServer to return received data Modified the test LoopbackServer so that it can return the received data in the helper methods. This allows more use of the simple ReadRequestAndSendResponseAsync() method instead of having to use the more complex methods. Modified a few HttpClient tests to take advantage of this. More tests will be simplified in future PRs. +11195 area-System.IO File watcher doesn't trigger all the time on Win 2008 R2 Sorry for the very vague repro but I don't have a consistent one. We're seeing in some of our tests that rely on the file watcher that the watcher doesn't trigger all the times. It happens pretty rare but, especially on Win 2008 R2, it happens that the file change even doesn't trigger when we write to a file. Because of that the test fails from time to time and we have to retry the write. Is this a known issue? +11196 area-System.Xml XmlTextReader and XmlTextWriter not exposed I just had to do some work to port `Microsoft.Web.Xdt` to .NET Core, and one of the big pain points was that [XmlTextReader](https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/System.Xml.ReaderWriter/src/System/Xml/Core/XmlTextReaderImpl.cs#L24) and [XmlTextWriter](https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/Common/src/System/Xml/XmlTextWriter.cs#L31) are marked internal and not exposed. I ended up having to copy 40+ files from `corefx` into my [project](https://github.com/OctopusDeploy/Octopus.Web.Xdt) (awesome that that was possible though!). The second pain point was related to the CRLF/LF normalisation - the desktop version allows you to disable it, but the CoreCLR does not. However, the CoreCLR implementation is according to [spec](https://github.com/dotnet/corefx/pull/2154). I see that XmlTextReader is [considered legacy](https://github.com/dotnet/corefx/issues/1595), but it is odd that the class is in corefx but not exposed. Would you consider a PR to expose XmlTextReader and XmlTextWriter, and expose a new setting to enable or disable line ending normalisation? +11202 area-System.Net [WIP - do not merge] SSL Alerts This is a prototype, not fully tested for the implementation of TLS Alerts. The prototype requires that a new API is added to System.Net.Security (currently 4.0.0.0, netstandard1.3): ``` public virtual System.Threading.Tasks.Task ShutdownAsync(); ``` There are other APIs planned to be added to this contract. @ericstj @weshaggard is there documentation other contract examples in this situation? I believe that I need to switch the version to 4.1.0 first but I'm not entirely sure what changes are required for the builds and .pkgproj for this to build. /cc: @davidsh @stephentoub +11203 area-System.IO System.IO tests aborting in dev/api This is happening frequently, e.g. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/dev_api/job/ubuntu14.04_release_prtest/504/ http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/dev_api/job/ubuntu14.04_release_prtest/511/ ``` ./corerun xunit.console.netcore.exe System.IO.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'System.IO, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) /mnt/j/workspace/dotnet_corefx/dev_api/ubuntu14.04_release_prtest/bin/tests/AnyOS.AnyCPU.Release/System.IO.Tests/netcoreapp1.0/RunTests.sh: line 293: 45732 Aborted (core dumped) ./corerun xunit.console.netcore.exe System.IO.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests ``` +11205 area-System.Net Reduce compiled size of HttpKnownHeaderNames.TryGetHeaderName This reduces the compiled IL size of `TryGetHeaderName` from 916 lines to 515 lines, and the jitted x64 code from 7,520 bytes to 2,031 bytes. Minor speed improvement as a result (10,000,000 iteration microbenchmark on Windows 10 x64): ``` Looking for: Last-Modified Old: Time: 0.2407542 GC0: 0 Old: Time: 0.2318401 GC0: 0 Old: Time: 0.2312379 GC0: 0 Old: Time: 0.2317734 GC0: 0 Old: Time: 0.2326793 GC0: 0 New: Time: 0.2151386 GC0: 0 New: Time: 0.2152126 GC0: 0 New: Time: 0.2141634 GC0: 0 New: Time: 0.2165665 GC0: 0 New: Time: 0.2144604 GC0: 0 Looking for: Should-Not-Be-Found Old: Time: 0.1017941 GC0: 0 Old: Time: 0.0980346 GC0: 0 Old: Time: 0.0976804 GC0: 0 Old: Time: 0.0974459 GC0: 0 Old: Time: 0.0981378 GC0: 0 New: Time: 0.0785356 GC0: 0 New: Time: 0.0800044 GC0: 0 New: Time: 0.0804539 GC0: 0 New: Time: 0.0792069 GC0: 0 New: Time: 0.080225 GC0: 0 ``` Also updated/improved some comments while making changes here. cc: @stephentoub, @davidsh +11207 area-System.Net HttpClient on UWP does not parse all cookies **Code**: https://1drv.ms/u/s!AhFj09QCPE9Yhsohgs1Hn3_coKtb2g **Steps to run**: Run the project; breakpoints are already set. You'll need Fiddler to look at the HTTP request it's making. **Expected**: Both cookies the server sends should be in `HttpResponseMessage`'s `Set-Cookie` headers. **Actual**: Only one cookie is parsed, the other one is an empty value. This does _not_ appear to be #6737, I can't get it to repro. I've included its test case in the repro code just in case, there's one line to uncomment. +11208 area-System.Linq Improve Enumerable.ToArray to avoid excessive copying for lazy enumerables The idea that instead of resizing the array (aka throwing it out and allocating a new one) and re-copying the data every time the sequence doesn't fit, we can instead keep the old array around, allocate a new one of size \* 2, and just continue reading into the new array at index 0. This will require keeping around a list of arrays we've filled up so far, however the overhead of this list will be substantially less than the size of the data itself. A visualization of what I'm talking about for a 300-length enumerable: ``` First array: [items 0-31] List of arrays: [0]: [items 32-63] [1]: [items 64-127] [2]: [items 128-255] Current array: [items 256-299] ``` (I also put this in the comments to help future readers understand.) Then when we need the final array to return from the method, we just calculate `first.Length + list.Sum(a => a.Length) + indexWeFinishedReadingIntoInCurrentArray`, pre-allocate an array of that size, and then copy each of the arrays into that array. I opted to only use this algorithm for enumerables of > length 32, since for smaller sizes it will lead to increased fragmentation, and the overhead of the list allocation will probably be noticeable in comparison to, say, 20 elements. ~32 is also the threshold at around which `Array.Copy` starts getting faster than a for-loop. ## Benchmark results https://gist.github.com/jamesqo/399b72bf5de8e2cbd83d044836cbefa4 (includes results/source code) You can see that the new implementation consistently has about 2/3 the gen0 collections as the old one. The timings are somewhat inconsistent (disclaimer: I only did 100,000 iterations since the tests were taking way too long to run), but you can see that the new implementation is generally faster/the same speed as the old one. (I suspect it may be hard to measure the differences due to all of the interface invocations that are going on, in addition to the covariant array type checks if T is a reference type.) cc @stephentoub @VSadov @JonHanna +11211 area-System.Net HttpWebRequest.GetRequestStream not allowing payload on GET requests Issue initially reported on PowerShell/PowerShell#2054 Making a HTTP GET requests from PowerShell using either Invoke-WebRequest or Invoke-RestMethod with a content-body throws an exception. [HTTP RFC 7231](https://tools.ietf.org/html/rfc7231#section-4.3.1) describes that a content-body is allowed but some webservers might reject the request. > A payload within a GET request message has no defined semantics; > sending a payload body on a GET request might cause some existing > implementations to reject the request. This is making it difficult to interface with various RESTful API's like InfoBlox and ElasticSearch that rely on JSON payloads for retrieving data. The Invoke-WebMethod uses the .NET method [HttpWebRequest.GetRequestStream](https://msdn.microsoft.com/en-us/library/d4cek6cc%28v=vs.110%29.aspx) and raises a ProtocolViolationException. ## Steps to reproduce $uri = 'http://www.microsoft.com' $payload = @{Microsoft='loves linux'} $result = Invoke-WebRequest -Uri $uri -Body ($payload | ConvertTo-Json) -ContentType 'application/json' -Method Get ## Expected behavior HTTP OK ## Actual behavior Invoke-WebRequest : Cannot send a content-body with this verb-type. +11212 area-System.Reflection Is GetCallingAssembly not coming to .NET Core ever? This API was discussed and rejected last year in multiple issues. In the new compat work, is GetCallingAssembly coming back? It seems like there are some security concerns on Unix platform for this API, can they be worked out in a way to provide the consumer a limited and safe implementation? log4net (https://github.com/apache/log4net, used in abundance in Azure service projects for example) for one heavily rely on this API, using compiler's [Caller Information](https://msdn.microsoft.com/en-us/library/hh534540.aspx) suggested at https://github.com/dotnet/corefx/issues/1784#issuecomment-115805990, is not a very straight-forward alternative in practice and requires a significant change in consumer land. Please reconsider adding this API. Many thanks! :) +11213 area-System.Net Add HttpClient support for IDNA on systems where libcurl does not support IDNA itself "Im trying to fetch data from a norwegian idn-domain. It works fine on windows but failes on os x ``` using System.Net.Http; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { using(var c = new HttpClient()) { c.GetStringAsync(@""http://allehjørnet.no"").Wait(); } } } } ``` ``` dotnet --version 1.0.0-preview2-003121 ``` ``` uname -a Darwin Macarena.local 15.6.0 Darwin Kernel Version 15.6.0: Thu Jun 23 18:25:34 PDT 2016; root:xnu-3248.60.10~1/RELEASE_X86_64 x86_64 ``` Ive tried saving the document in UTF8/UTF16LE/Windows1252 with the same result Exception details output from `dotnet run` ``` Unhandled Exception: System.AggregateException: One or more errors occurred. (An error occurred while sending the request.) ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: Couldn't resolve host name at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) --- End of inner exception stack trace --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__32`1.MoveNext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait() at ConsoleApplication.Program.Main(String[] args) ``` " +11216 area-System.Collections ConcurrentBag.Steal ConcurrentBag.Steal [says](https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentBag.cs#L327) > It enumerate all other threads in two passes first pass acquire the lock with TryEnter if succeeded However, `TrySteal` doesn't use `TryEnter` but uses `lock` although `Steal` does make two passes. This would either suggest it was meant to be different or was changed. Any reason why? +11217 area-System.Net NetworkInterface.GetAllNetworkInterfaces() on Ubuntu 14.04 raises unhandled exception FileNotFoundException in the presence of network interface alias. "The following example raises an unhandled exception on ubuntu 14.04 if there is an alias on any network interface: ``` using System.Net.Sockets; namespace Sample { public class Runner { public static void Main() { try { System.Console.WriteLine(""Before""); System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces(); System.Console.WriteLine(""After""); } catch (System.Exception ex) { System.Console.WriteLine(""Caught""); System.Console.WriteLine(ex); } } } } ``` The crash can be reproduced via the following step: ``` $ sudo ifconfig lo:virtual 192.168.222.1 $ corerun workspace-host/Failing.System.Net.NetworkInformation.Functional.Tests.dll Before Unhandled Exception: System.IO.FileNotFoundException: Could not find file '/proc/sys/net/ipv4/conf/lo:virtual/forwarding'. at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at System.IO.UnixFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.UnixFileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync) at System.IO.FileStream.InternalOpen(String path, Int32 bufferSize, Boolean useAsync) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at System.IO.File.ReadAllText(String path) at System.Net.NetworkInformation.StringParsingHelpers.ParseRawIntFile(String filePath) at System.Net.NetworkInformation.LinuxIPv4InterfaceProperties.GetIsForwardingEnabled() at System.Net.NetworkInformation.LinuxIPv4InterfaceProperties..ctor(LinuxNetworkInterface linuxNetworkInterface) at System.Net.NetworkInformation.LinuxIPInterfaceProperties..ctor(LinuxNetworkInterface lni) at System.Net.NetworkInformation.LinuxNetworkInterface..ctor(String name) at System.Net.NetworkInformation.LinuxNetworkInterface.GetOrCreate(Dictionary`2 interfaces, String name) at System.Net.NetworkInformation.LinuxNetworkInterface.<>c__DisplayClass5_0.b__0(String name, IpAddressInfo* ipAddr, IpAddressInfo* maskAddr) at Interop.Sys.EnumerateInterfaceAddresses(IPv4AddressDiscoveredCallback ipv4Found, IPv6AddressDiscoveredCallback ipv6Found, LinkLayerAddressDiscoveredCallback linkLayerFound) at System.Net.NetworkInformation.LinuxNetworkInterface.GetLinuxNetworkInterfaces() at System.Net.NetworkInformation.NetworkInterfacePal.GetAllNetworkInterfaces() at System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces() at Sample.Runner.Main() Aborted (core dumped) ``` " +11218 area-System.Net System.Net.Http test failures "A few Http tests unrelated to the change failed on Windows: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/3850/ System.Net.Http.Functional.Tests.PostScenarioTest.PostUsingContentLengthSemantics_Success(serverUri: http://corefx-net.cloudapp.net/Echo.ashx) System.Net.Http.Functional.Tests.PostScenarioTest.PostUsingContentLengthSemantics_Success(serverUri: https://corefx-net.cloudapp.net/Echo.ashx) System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test.ProxyExplicitlyProvided_DefaultCredentials_Ignored System.Net.Http.Functional.Tests.HttpClientHandlerTest.PostAsync_CallMethod_StreamContent(remoteServer: https://corefx-net.cloudapp.net/VerifyUpload.ashx, content: [ByteArrayContent { Headers = [...] }], expectedData: [45, 45, 57, 56, 51, ...]) System.Net.Http.Functional.Tests.HttpClientHandlerTest.PostAsync_CallMethod_StreamContent(remoteServer: https://corefx-net.cloudapp.net/VerifyUpload.ashx, content: StreamContentWithSyncAsyncCopy { Headers = [] }, expectedData: [62, 23, 186, 150, 174, ...]) System.Net.Http.Functional.Tests.HttpClientHandlerTest.SendAsync_SendRequestUsingMethodToEchoServerWithContent_Success(method: ""PUT"", secureServer: False) System.Net.Http.Functional.Tests.DiagnosticsTest.SendAsync_HttpTracingEnabled_Succeeds System.Net.Tests.HttpWebRequestTest.GetResponseAsync_GetResponseStream_ExpectNotNull(remoteServer: https://corefx-net.cloudapp.net/Echo.ashx) " +11220 area-System.IO Add async alternatives to File.ReadAll*, File.AppendAll* and File.WriteAll* Is there a reason why there's no `ReadAll*Async`, `AppendAll*Async` and `WriteAll*Async` methods on `File`? The existing methods are very convenient and I think it makes sense to have async versions available. I propose the following additions: ``` diff public static partial class File { public static void AppendAllLines(string path, IEnumerable contents) { } public static void AppendAllLines(string path, IEnumerable contents, Encoding encoding) { } + public static Task AppendAllLinesAsync(string path, IEnumerable contents, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } + public static Task AppendAllLinesAsync(string path, IEnumerable contents, Encoding encoding, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } public static void AppendAllText(string path, string contents) { } public static void AppendAllText(string path, string contents, Encoding encoding) { } + public static Task AppendAllTextAsync(string path, string contents, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } + public static Task AppendAllTextAsync(string path, string contents, Encoding encoding, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } public static byte[] ReadAllBytes(string path) { return default(byte[]); } + public static Task ReadAllBytesAsync(string path, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } public static string[] ReadAllLines(string path) { return default(string[]); } public static string[] ReadAllLines(string path, System.Text.Encoding encoding) { return default(string[]); } + public static Task ReadAllLinesAsync(string path, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } + public static Task ReadAllLinesAsync(string path, Encoding encoding, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } public static string ReadAllText(string path) { return default(string); } public static string ReadAllText(string path, System.Text.Encoding encoding) { return default(string); } + public static Task ReadAllTextAsync(string path, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } + public static Task ReadAllTextAsync(string path, Encoding encoding, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } public static void WriteAllBytes(string path, byte[] bytes) { } + public static Task WriteAllBytesAsync(string path, byte[] bytes, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } public static void WriteAllLines(string path, IEnumerable contents) { } public static void WriteAllLines(string path, IEnumerable contents, Encoding encoding) { } + public static Task WriteAllLinesAsync(string path, IEnumerable contents, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } + public static Task WriteAllLinesAsync(string path, IEnumerable contents, Encoding encoding, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } public static void WriteAllText(string path, string contents) { } public static void WriteAllText(string path, string contents, Encoding encoding) { } + public static Task WriteAllTextAsync(string path, string contents, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } + public static Task WriteAllTextAsync(string path, string contents, Encoding encoding, CancellationToken cancellationToken = default(CancellationToken)) { return default(Task); } } ``` I guess the `ReadLines` methods are candidates for this as well, but I don't know how you'd handle the async enumeration part yet. +11221 area-System.Globalization Difference output between Linux and Windows platforms "Hello. This line ` string.Format(""{0:G}"", new DateTime(2015, 9, 14, 8, 30, 0)) ` On Linux return ` 9/14/15 8:30:00 AM ` On Windows ` 9/14/2015 8:30:00 AM ` I my case it is cause a problem because the tests are not passed between platform. " +11222 area-System.Reflection Unify the CoreClr and aot System.Reflection.Extensions.dll partial facade. "Steps: - In the CoreRt repo, rename CustomAttributeExtensionsSoonToBe to CustomAttributeExtensions. You'll also need to update references to it (here and here) Do not commit the rename itself at this step (tests will start failing with MissingMetadataExceptions because ILC doesn't expect to see two CustomAttributeExtension classes.) - Build a new version of the .Net Native targeting pack and publish to myget. - Wait for new targeting pack to appear on myget. - Change the aot version of System.Runtime.dll to - consume the new targeting pack. - TypeForward CustomAttributeExtensions to System.Private.Corelib - TypeForward BindingFlags to System.Private.Corelib. - TypeForward InterfaceMapping to System.Private.Corelib. - Implement the ReflectionRuntimeExtensions class at a thin layer (just copy over the CoreClr source code verbatim.) - Change the aot version of S.R.Extensions.dll to a pure facade that typeforwards everything (ReflectionRuntimeExtensions, CustomAttributeExtensions and InterfaceMapping) to System.Runtime. Note that this is the exact same construction we want for CoreClr so this should get rid of the distinction between ""aot"" and ""not-aot."" All the internal machinery (CustomAttributeSearcher, CustomAttributeInheritanceRules should be mothballed.) - Publish the new System.Runtime.dll and new S.Reflection.Extensions.dll to myget. - Back to corert - consume the new S.Reflection.Extensions.dll and the new System.Runtime.dll and commit this and the CustomAttributeExtensionsSoonToBe rename in one delta. " +11223 area-System.Reflection Unify the CoreClr and aot System.Reflection.TypeExtensions.dll partial facade. "Issue https://github.com/dotnet/corefx/issues/11222 must be done prior to or simultaneously with this. That's because the existing S.R.Reflection.Extensions.dll references a private class (MemberEnumerator) inside S.R.TypeExtensions.dll. Steps: - In the CoreFx repo: Get rid of the aot-specific S.R.TypeExtensions.dll. Both aot and not-aot should use the existing non-aot version, namely the one that: - Typeforwards BindingFlags to System.Runtime.dll. - Implements AssemblyExtensions EventInfoExtensions MemberInfoExtensions MethodInfoExtensions ModuleExtensions PropertyInfoExtensions TypeExtensions as thin wrappers over their namesake apis. No more MemberEnumerator and stuff. - In the CoreRt repro, make ILC consume the ""new"" (i.e. the existing non-aot version) of S.R.TypeExtensions.dll. " +11224 area-System.Net Singleton HttpClient doesn't respect DNS changes "As described in the following post: http://byterot.blogspot.co.uk/2016/07/singleton-httpclient-dns.html, once you start keeping a shared `HttpClient` instance to improve performance, you'll hit an issue where the client won't respect DNS record updates in case of failover scenarios. The underlying issue is that the default value of `ConnectionLeaseTimeout` is set to `-1`, infinite. It'll only close on dispose of the client, which is very inefficient. The fix is to update the value on the service point like this: ``` csharp var sp = ServicePointManager.FindServicePoint(new Uri(""http://foo.bar/baz/123?a=ab"")); sp.ConnectionLeaseTimeout = 60*1000; // 1 minute ``` Unfortunately, there's no way to do this with .NET Core today. Either ServicePointManager should be brought over to .NET Core or similar equivalent functionality should be enabled some other way. " +11225 area-System.Reflection Port S.Ref.StrongNameKeyPair This type is used by MSBuild and disabled for xplat. Now that Microsoft.Build.Framework is available as an official NuGet package, some libs depending on MSBuild are being ported to .NET Core; lack of this type is a show-stopper in some cases. :( cc @weshaggard, @AtsushiKan, https://github.com/dotnet/coreclr/pull/6614#issuecomment-243018075 +11227 area-Serialization Enable Reflection Based Serialization on Net Native. The changes are to enable XmlSerializer's reflection based serialization on Net Native. The changes would also fix #https://github.com/dotnet/corefx/issues/7991, some constructors of XmlSerializer's don't work on Net Native. @mconnew @roncain @huanwu @zhenlan can you please review the PR? Thanks. +11231 area-System.Threading Revert base class of some types to newly exposed types Now that SafeHandleZeroOrMinusOneIsInvalid is exposed, revert the base class for some public types deriving directly from SafeHandle, to match the original contract. - SafeFileHandle - SafeMemoryMappedFileHandle - SafeNCryptHandle - SafePipeHandle - SafeProcessHandle - SafeRegistryHandle - SafeX509ChainHandle - SafeBuffer - ChannelBinding These should all derive from SafeHandleZeroOrMinusOneIsInvalid instead of SafeHandle. Similarly, the following types should derive from CriticalFinalizerObject, now that is exposed: - CriticalHandle - Thread +11235 area-System.IO DeflateStream: Allow inflation without input Our implementation of DeflateStream only allows inflation when there is input to pass to the inflater. Because of how the stream was coded, this would raise the potential issue where we would be out of input but there could still be inflated bytes cached ready to read. This commit removes the checks for valid input and allows inflation regardless of input. - This does have the downside of reducing efficiency in the scenario where we are actually out of bytes to read. We were previously operating under the incorrect assumption that no input implies no output, but that isn't strictly true. resolves #11161 @stephentoub @qmfrederik +11241 area-System.Globalization Enable CompareInfo APIs in contracts which takes System.Reflection.Assembly in System.Runtime contract we are commenting 2 APIs in CompareInfo which takes System.Reflection.Assembly because System.Reflection.Assembly is not moved to System.Runtime contract yet. This issue to track enabling these APIs after System.Reflection.Assembly move to System.Runtime. +11244 area-Infrastructure Please publish new file naming convention for generic types Are backticks to be replaced with underscores now? https://github.com/dotnet/corefx/commit/eef844ecd30ff2aff2f82d4b73baee356e7b0d08 https://github.com/dotnet/corefx/tree/master/src/System.Collections.Immutable/src/System/Collections/Immutable The compiler and also Entity Framework still follow the current convention: https://github.com/aspnet/EntityFramework/blob/dev/src/Microsoft.EntityFrameworkCore/DbSet%60.cs https://github.com/dotnet/roslyn/blob/master/src/Compilers/Core/Portable/Syntax/SyntaxList%601.cs Thank you. +11254 area-Serialization Add API T:System.Runtime.Serialization.Json.JsonReaderWriterFactory ``` T:System.Runtime.Serialization.Json.JsonReaderWriterFactory M:System.Runtime.Serialization.Json.JsonReaderWriterFactory.CreateJsonReader(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas) M:System.Runtime.Serialization.Json.JsonReaderWriterFactory.CreateJsonWriter(System.IO.Stream,System.Text.Encoding) T:System.Runtime.Serialization.Json.IXmlJsonReaderInitializer T:System.Runtime.Serialization.Json.IXmlJsonWriterInitializer T:System.Runtime.Serialization.ExtensionDataObject T:System.Runtime.Serialization.IExtensibleDataObject T:System.Runtime.Serialization.XmlSerializableServices T:System.Runtime.Serialization.XPathQueryGenerator T:System.Runtime.Serialization.ExportOptions T:System.Runtime.Serialization.XsdDataContractExporter T:System.Runtime.Serialization.Json.DataContractJsonSerializer's missing Members. T:System.Xml.IFragmentCapableXmlDictionaryWriter P:System.Xml.IFragmentCapableXmlDictionaryWriter.CanFragment M:System.Xml.IFragmentCapableXmlDictionaryWriter.get_CanFragment M:System.Xml.IFragmentCapableXmlDictionaryWriter.EndFragment M:System.Xml.IFragmentCapableXmlDictionaryWriter.StartFragment(System.IO.Stream,System.Boolean) M:System.Xml.IFragmentCapableXmlDictionaryWriter.WriteFragment(System.Byte[],System.Int32,System.Int32) T:System.Xml.IStreamProvider M:System.Xml.IStreamProvider.GetStream M:System.Xml.IStreamProvider.ReleaseStream(System.IO.Stream) T:System.Xml.IXmlBinaryReaderInitializer M:System.Xml.IXmlBinaryReaderInitializer.SetInput(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.IXmlBinaryReaderInitializer.SetInput(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose) T:System.Xml.IXmlBinaryWriterInitializer M:System.Xml.IXmlBinaryWriterInitializer.SetOutput(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlBinaryWriterSession,System.Boolean) T:System.Xml.IXmlMtomReaderInitializer M:System.Xml.IXmlMtomReaderInitializer.SetInput(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.IXmlMtomReaderInitializer.SetInput(System.IO.Stream,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose) T:System.Xml.IXmlMtomWriterInitializer M:System.Xml.IXmlMtomWriterInitializer.SetOutput(System.IO.Stream,System.Text.Encoding,System.Int32,System.String,System.String,System.String,System.Boolean,System.Boolean) T:System.Xml.IXmlTextReaderInitializer M:System.Xml.IXmlTextReaderInitializer.SetInput(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.IXmlTextReaderInitializer.SetInput(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose) T:System.Xml.IXmlTextWriterInitializer M:System.Xml.IXmlTextWriterInitializer.SetOutput(System.IO.Stream,System.Text.Encoding,System.Boolean) M:System.Xml.XmlDictionaryReader.CreateBinaryReader(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.XmlDictionaryReader.CreateBinaryReader(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.Xml.XmlDictionaryReaderQuotas) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.IO.Stream,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.IO.Stream,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.IO.Stream,System.Text.Encoding[],System.Xml.XmlDictionaryReaderQuotas) M:System.Xml.XmlDictionaryReader.CreateTextReader(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.XmlDictionaryReader.GetNonAtomizedNames(System.String@,System.String@) M:System.Xml.XmlDictionaryReader.ReadElementContentAsDateTime M:System.Xml.XmlDictionaryReader.ReadString M:System.Xml.XmlDictionaryReader.ReadString(System.Int32) M:System.Xml.XmlDictionaryWriter.CreateMtomWriter(System.IO.Stream,System.Text.Encoding,System.Int32,System.String) M:System.Xml.XmlDictionaryWriter.CreateMtomWriter(System.IO.Stream,System.Text.Encoding,System.Int32,System.String,System.String,System.String,System.Boolean,System.Boolean) M:System.Xml.XmlDictionaryWriter.WriteBase64Async(System.Byte[],System.Int32,System.Int32) M:System.Xml.XmlDictionaryWriter.WriteValue(System.Xml.IStreamProvider) M:System.Xml.XmlDictionaryWriter.WriteValueAsync(System.Xml.IStreamProvider) ``` +11255 area-Serialization Add API T:System.Runtime.Serialization.IDataContractSurrogate ``` T:System.Runtime.Serialization.IDataContractSurrogate T:System.Runtime.Serialization.ExtensionDataObject T:System.Runtime.Serialization.IExtensibleDataObject M:System.Runtime.Serialization.DataContractSerializer.#ctor(System.Type,System.Collections.Generic.IEnumerable{System.Type},System.Int32,System.Boolean,System.Boolean,System.Runtime.Serialization.IDataContractSurrogate) M:System.Runtime.Serialization.Json.DataContractJsonSerializer.#ctor(System.Type,System.String,System.Collections.Generic.IEnumerable{System.Type},System.Int32,System.Boolean,System.Runtime.Serialization.IDataContractSurrogate,System.Boolean) ``` +11257 area-Infrastructure Use .pkgproj references when using TestWithLocalLibraries Today the `TestWithLocalLibraries` parameter has a faulty logic on how to pick the assets that are used to run tests on assemblies when the property is passed. Instead, we should use .pkgproj references to let nuget do the logic of selecting the right asset in every case. related comment: https://github.com/dotnet/buildtools/pull/995#issuecomment-243517434 +11262 area-System.Net Port S.Web.HttpUtility This is really separate to the rest of S.Web.dll, and it packaged into S.Web.Services.dll on Android. Here's the members: ``` T:System.Web.HttpUtility M:System.Web.HttpUtility.ParseQueryString(System.String) M:System.Web.HttpUtility.UrlEncode(System.String) M:System.Web.HttpUtility.HtmlDecode(System.String) M:System.Web.HttpUtility.UrlDecode(System.String) M:System.Web.HttpUtility.HtmlAttributeEncode(System.String) M:System.Web.HttpUtility.JavaScriptStringEncode(System.String) M:System.Web.HttpUtility.HtmlEncode(System.String) M:System.Web.HttpUtility.HtmlEncode(System.Object) M:System.Web.HttpUtility.UrlEncode(System.String,System.Text.Encoding) M:System.Web.HttpUtility.#ctor M:System.Web.HttpUtility.HtmlAttributeEncode(System.String,System.IO.TextWriter) M:System.Web.HttpUtility.HtmlDecode(System.String,System.IO.TextWriter) M:System.Web.HttpUtility.HtmlEncode(System.String,System.IO.TextWriter) M:System.Web.HttpUtility.JavaScriptStringEncode(System.String,System.Boolean) M:System.Web.HttpUtility.ParseQueryString(System.String,System.Text.Encoding) M:System.Web.HttpUtility.UrlDecode(System.Byte[],System.Int32,System.Int32,System.Text.Encoding) M:System.Web.HttpUtility.UrlDecode(System.Byte[],System.Text.Encoding) M:System.Web.HttpUtility.UrlDecode(System.String,System.Text.Encoding) M:System.Web.HttpUtility.UrlDecodeToBytes(System.Byte[]) M:System.Web.HttpUtility.UrlDecodeToBytes(System.Byte[],System.Int32,System.Int32) M:System.Web.HttpUtility.UrlDecodeToBytes(System.String) M:System.Web.HttpUtility.UrlDecodeToBytes(System.String,System.Text.Encoding) M:System.Web.HttpUtility.UrlEncode(System.Byte[]) M:System.Web.HttpUtility.UrlEncode(System.Byte[],System.Int32,System.Int32) M:System.Web.HttpUtility.UrlEncodeToBytes(System.Byte[]) M:System.Web.HttpUtility.UrlEncodeToBytes(System.Byte[],System.Int32,System.Int32) M:System.Web.HttpUtility.UrlEncodeToBytes(System.String) M:System.Web.HttpUtility.UrlEncodeToBytes(System.String,System.Text.Encoding) M:System.Web.HttpUtility.UrlEncodeUnicode(System.String) M:System.Web.HttpUtility.UrlEncodeUnicodeToBytes(System.String) M:System.Web.HttpUtility.UrlPathEncode(System.String) ``` Only the first 10 or so show up with usage in our corpus, but they get up to 20% usage in Xamarin apps. @weshaggard Which contract should we put these on? +11264 area-System.IO Add managed Deflate64 support to ZipArchive This PR adds back the old managed Deflate implementation and makes it compatible with the Deflate64 algorithm. ZipArchive is modified to use this managed Deflate64 stream whenever it detects an entry compressed using it. This doesn't add any compression support, only decompression, and an archive entry opened in Update mode will be written back using Deflate, not Deflate64. This resolves the errors we've been seeing lately around windows zips >2gb throwing exceptions. resolves https://github.com/dotnet/corefx/issues/9925. Progress towards https://github.com/dotnet/corefx/issues/6602. Tests coming in another PR where I'll also update the TestData version. I'll be waiting to merge this PR until that one is complete, but this one is big enough already. @stephentoub +11265 area-System.Net WIP: Adding new SslStream API "@ericstj @weshaggard @davidsh @bartonjs PTAL Creating a new, simplified PR only for the API addition based on master. The current error is: ``` ""S:\c1\src\System.Net.Security\ref\System.Net.Security.csproj"" (rebuild target) (1) -> (ValidatePackageTargetFramework target) -> S:\c1\Tools\PackageLibs.targets(213,5): error : Expected version 4.1.0.0 for referenced assembly S:\c1\packages\System.Security .Cryptography.Algorithms\4.2.0\ref\netstandard1.6\System.Security.Cryptography.Algorithms.dll but found 4.2.0.0 [S:\c1\src\System .Net.Security\ref\System.Net.Security.csproj] ``` The error is probably because of the switch to netstandard1.6 which includes UWP. What are the strings (I couldn't find documentation) to make System.Net.Security 4.1.0.0 a net463 contract _only_ (no netstandard) while keeping 4.0.0.0 part of netstandard1.3? " +11266 area-System.Net WinHttpException: The parameter is incorrect when server return 401 "I have a customized HttpMessageHandler that handle 401 from http response and throw a particular exception to provide better error message for end user. The code works fine with full desktop .net 4.5, however after ported to dotnet core i am getting the ""WinHttpException: The parameter is incorrect"" error when server return 401. Here is the full call stack when 401 happen for both dotnet core app and .net 4.5 app: ``` dotnet core: [2016-08-30 17:28:45Z ERR Terminal] System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: The parameter is incorrect at System.Net.Http.WinHttpAuthHelper.SetWinHttpCredential(SafeWinHttpHandle requestHandle, ICredentials credentials, Uri uri, UInt32 authScheme, UInt32 authTarget) at System.Net.Http.WinHttpAuthHelper.CheckResponseForAuthentication(WinHttpRequestState state, UInt32& proxyAuthScheme, UInt32& serverAuthScheme) at System.Net.Http.WinHttpHandler.d__101.MoveNext() --- End of inner exception stack trace --- at Microsoft.VisualStudio.Services.Common.VssHttpRetryMessageHandler.d__3.MoveNext() in C:\VSO\src\Vssf\Client\Common\VssHttpRetryMessageHandler.cs:line 150 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.d__45.MoveNext() in C:\VSO\src\Vssf\Client\WebApi\VssHttpClientBase.cs:line 762 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.d__42`1.MoveNext() in C:\VSO\src\Vssf\Client\WebApi\VssHttpClientBase.cs:line 663 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.d__27`1.MoveNext() in C:\VSO\src\Vssf\Client\WebApi\VssHttpClientBase.cs:line 383 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.d__26`1.MoveNext() in C:\VSO\src\Vssf\Client\WebApi\VssHttpClientBase.cs:line 366 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at Microsoft.VisualStudio.Services.Agent.Listener.Configuration.ConfigurationManager.d__11.MoveNext() in C:\vsts-agent\src\Agent.Listener\Configuration\ConfigurationManager.cs:line 461 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at Microsoft.VisualStudio.Services.Agent.Listener.Configuration.ConfigurationManager.d__7.MoveNext() in C:\vsts-agent\src\Agent.Listener\Configuration\ConfigurationManager.cs:line 152 .net 4.5: Microsoft.VisualStudio.Services.Common.VssUnauthorizedException: VS30063: You are not authorized to access https://ting.tfsbuildhost8.tfsallin.net. at Microsoft.VisualStudio.Services.Common.VssHttpMessageHandler.d__17.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.Services.Common.VssHttpRetryMessageHandler.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.d__45.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.d__42`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.d__27`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.Services.WebApi.VssHttpClientBase.d__26`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.VisualStudio.Services.WebApi.TaskExtensions.SyncResult[T](Task`1 task) at ConsoleApplication9.Program.Main(String[] args) in C:\Users\tihuang\Documents\Visual Studio 2015\Projects\ConsoleApplication9\ConsoleApplication9\Program.cs:line 105 ``` The Fiddler trace for both cases: ``` dotnet core: GET https://ting.tfsbuildhost8.tfsallin.net/_apis/distributedtask/pools?poolName=default HTTP/1.1 Connection: Keep-Alive Accept: application/json; api-version=3.0-preview.1 Accept-Encoding: gzip, peerdist Accept-Language: en-US Authorization: Basic VnN0c0FnZW50OmxscGQzb2djY2twdnJyNHh6NGtmeXpjeGdjN252cTNpYWVucHpqeXk0ZXk3emlqeXVmcmE= User-Agent: VSServices/15.255.65000.0 (NetStandard) VstsAgentCore-win7-x64/2.106.0 (Microsoft Windows 10.0.14393) X-TFS-FedAuthRedirect: Suppress X-TFS-Session: 43b8fed2-d9d7-4582-9c91-6538cdd26e79 X-P2P-PeerDist: Version=1.1 X-P2P-PeerDistEx: MinContentInformation=1.0, MaxContentInformation=2.0 Host: ting.tfsbuildhost8.tfsallin.net HTTP/1.1 401 Unauthorized Server: Microsoft-IIS/8.5 X-TFS-ProcessId: a3f879d3-c2d2-4c93-a872-671dd4b52407 Strict-Transport-Security: max-age=31536000; includeSubDomains Access-Control-Allow-Origin: * Access-Control-Max-Age: 3600 Access-Control-Allow-Methods: OPTIONS,GET,POST,PATCH,PUT,DELETE Access-Control-Expose-Headers: ActivityId,X-TFS-Session,X-MS-ContinuationToken Access-Control-Allow-Headers: authorization X-FRAME-OPTIONS: SAMEORIGIN WWW-Authenticate: Basic realm=""https://app.tfsbuildhost8.tfsallin.net/"" X-Powered-By: ASP.NET P3P: CP=""CAO DSP COR ADMa DEV CONo TELo CUR PSA PSD TAI IVDo OUR SAMi BUS DEM NAV STA UNI COM INT PHY ONL FIN PUR LOC CNT"" X-Content-Type-Options: nosniff Date: Tue, 30 Aug 2016 17:17:37 GMT Content-Length: 0 .net 4.5: GET https://ting.tfsbuildhost8.tfsallin.net/_apis/distributedtask/pools HTTP/1.1 Accept: application/json; api-version=3.0-preview.1 User-Agent: VSServices/15.104.25627.0 (ConsoleApplication9.exe) Accept-Language: en-US X-TFS-FedAuthRedirect: Suppress X-TFS-Session: 7b7a5d6a-e30f-4511-bf16-6396c91317b2 X-VSS-Agent: VSS: fe82a6ab-72ed-4ce2-8e28-d626d07f5d24 Authorization: Basic VnN0c0FnZW50OmxscGQzb2djY2twdnJyNHh6NGtmeXpjeGdjN252cTNpYWVucHpqeXk0ZXk3emlqeXVmcmE= Host: ting.tfsbuildhost8.tfsallin.net Accept-Encoding: gzip HTTP/1.1 401 Unauthorized Server: Microsoft-IIS/8.5 X-TFS-ProcessId: a3f879d3-c2d2-4c93-a872-671dd4b52407 Strict-Transport-Security: max-age=31536000; includeSubDomains Access-Control-Allow-Origin: * Access-Control-Max-Age: 3600 Access-Control-Allow-Methods: OPTIONS,GET,POST,PATCH,PUT,DELETE Access-Control-Expose-Headers: ActivityId,X-TFS-Session,X-MS-ContinuationToken Access-Control-Allow-Headers: authorization X-FRAME-OPTIONS: SAMEORIGIN WWW-Authenticate: Basic realm=""https://app.tfsbuildhost8.tfsallin.net/"" X-Powered-By: ASP.NET P3P: CP=""CAO DSP COR ADMa DEV CONo TELo CUR PSA PSD TAI IVDo OUR SAMi BUS DEM NAV STA UNI COM INT PHY ONL FIN PUR LOC CNT"" X-Content-Type-Options: nosniff Date: Tue, 30 Aug 2016 17:17:11 GMT Content-Length: 0 ``` Also, the ""WinHttpException: The parameter is incorrect"" doesn't tell me which parameter is incorrect which cause the exception message a little bit useless. I can provide repro environment if needed. " +11270 area-System.Text ArgumentOutOfRangeException when combining Enumeration Flags in RegexOptions "There seems to be a problem with combining RegexOptions in .NET Core. Run the following 2-line console program: ``` var wordRegex = new Regex(@""[\w\#@]+"", RegexOptions.Compiled | RegexOptions.ECMAScript); System.Console.WriteLine(wordRegex.IsMatch(""asdf"")); ``` Produces the following run-time error: ``` Unhandled Exception: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: options at System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions options, TimeSpan matchTimeout, Boolean useCache) at System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions options) at FlagsAttrBug.Program.Main(String[] args) ``` [Documentation](https://docs.microsoft.com/en-us/dotnet/core/api/system.text.regularexpressions.regexoptions#System_Text_RegularExpressions_RegexOptions_ECMAScript) explicitly states that these two flags can be used together: > Enables ECMAScript-compliant behavior for the expression. This value can be used only in conjunction with the IgnoreCase, Multiline, and Compiled values. The use of this value with any other values results in an exception. This works fine in other versions of .NET Framework, for example it works fine in .NET Framework 3.5. Version info: ``` .NET Command Line Tools (1.0.0-preview2-003121) Product Information: Version: 1.0.0-preview2-003121 Commit SHA-1 hash: 1e9d529bc5 Runtime Environment: OS Name: ubuntu OS Version: 16.04 OS Platform: Linux RID: ubuntu.16.04-x64 ``` " +11271 area-System.ComponentModel Port S.ComponentModel.* selectively The following members are missing and show up in the usage of the top 100 apps. ``` T:System.ComponentModel.Component M:System.ComponentModel.Component.Dispose M:System.ComponentModel.Win32Exception.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) T:System.ComponentModel.ReferenceConverter T:System.ComponentModel.ComponentConverter T:System.ComponentModel.InvalidEnumArgumentException T:System.ComponentModel.ISynchronizeInvoke M:System.ComponentModel.ISynchronizeInvoke.Invoke(System.Delegate,System.Object[]) T:System.ComponentModel.ListChangedEventArgs T:System.ComponentModel.ListChangedEventHandler M:System.ComponentModel.ListChangedEventArgs.#ctor(System.ComponentModel.ListChangedType,System.Int32) T:System.ComponentModel.IBindingList M:System.ComponentModel.ListChangedEventHandler.Invoke(System.Object,System.ComponentModel.ListChangedEventArgs) M:System.ComponentModel.ToolboxItemAttribute.#ctor(System.Boolean) T:System.ComponentModel.ToolboxItemAttribute M:System.ComponentModel.InvalidEnumArgumentException.#ctor(System.String) M:System.ComponentModel.InvalidEnumArgumentException.#ctor(System.String,System.Int32,System.Type) ``` Investigate and bring back as appropriate. Note that in general we only bring back types with all their members or not at all. The list seems like a grab-bag: may need to investigate what the apps are actually doing and perhaps just bring back the attributes and exceptions only. +11274 area-System.Xml Building System.Private.Xml with TargetGroup=netcore50aot Failed src\System.Private.Xml\src\System.Private.Xml.csproj does not build with /p:TargetGroup=netcore50aot. The following command fails, ``` D:\OSS\corefx-1\corefx\src\System.Private.Xml\src>msbuild System.Private.Xml.csproj /p:TargetGroup=netcore50aot ``` +11275 area-System.Runtime Add System.AppDomain apis currently build fails as System.Reflection.Assembly should be present in system.runtime.dll. So waiting for PR#11099 +11277 area-System.Reflection Add missing reflection apis M:System.Reflection.Assembly.LoadFrom(System.String) M:System.Reflection.Assembly.add_ModuleResolve(System.Reflection.ModuleResolveEventHandler) M:System.Reflection.Assembly.get_GlobalAssemblyCache M:System.Reflection.Assembly.get_HostContext M:System.Reflection.Assembly.get_IsFullyTrusted M:System.Reflection.Assembly.Load(System.Byte[]) M:System.Reflection.Assembly.Load(System.Byte[],System.Byte[]) M:System.Reflection.Assembly.LoadFile(System.String) M:System.Reflection.Assembly.LoadWithPartialName(System.String) M:System.Reflection.Assembly.remove_ModuleResolve(System.Reflection.ModuleResolveEventHandler) M:System.Reflection.ModuleResolveEventHandler.#ctor(System.Object,System.IntPtr) M:System.Reflection.ModuleResolveEventHandler.BeginInvoke(System.Object,System.ResolveEventArgs,System.AsyncCallback,System.Object) M:System.Reflection.ModuleResolveEventHandler.EndInvoke(System.IAsyncResult) M:System.Reflection.ModuleResolveEventHandler.Invoke(System.Object,System.ResolveEventArgs) M:System.ResolveEventArgs.#ctor(System.String) M:System.ResolveEventArgs.#ctor(System.String,System.Reflection.Assembly) M:System.ResolveEventArgs.get_Name M:System.ResolveEventArgs.get_RequestingAssembly M:System.ResolveEventHandler.#ctor(System.Object,System.IntPtr) M:System.ResolveEventHandler.BeginInvoke(System.Object,System.ResolveEventArgs,System.AsyncCallback,System.Object) M:System.ResolveEventHandler.EndInvoke(System.IAsyncResult) M:System.ResolveEventHandler.Invoke(System.Object,System.ResolveEventArgs) T:System.Reflection.ModuleResolveEventHandler T:System.ResolveEventArgs T:System.ResolveEventHandler +11278 area-Infrastructure Publish build-info to projectk-tfs/release/1.1.0 when building 1.1.0 on TFS Currently the versions repo structure is based on github branches, with [`projectk-tfs/master` and `projectk-tfs/release/1.0.0`](https://github.com/dotnet/versions/tree/master/build-info/dotnet/projectk-tfs). In reality these build-infos come from ProjectK and ProjectKRel. Assumption: we will build any remaining TFS-side part of 1.1.0 using ProjectKRel. If that's true, when it starts building 1.1.0 we should change where it posts its build info to `projectk-tfs/release/1.1.0`. We'll also need to change the CoreFX build-info dependency. This will also apply to ProjectNRel. (Producing the NETNative targeting pack.) Does this sound accurate to the branching plan, @weshaggard? /cc @SedarG +11279 area-System.IO Followup on BufferedStream.cs L439 per TODO on https://github.com/dotnet/corefx/blob/dev/api/src/System.IO/src/System/IO/BufferedStream.cs#L439 +11282 area-System.Runtime Proposal: Add support for 'precompiled' inputs to String.IndexOfAny/LastIndexOfAny "## Background `IndexOfAny` has to go through a string and see if any of the characters match one in a specified character array. Here is an example of how it could be implemented: ``` cs public static int IndexOfAny(this string s, char[] anyOf) { for (int i = 0; i < s.Length; i++) { for (int j = 0; j < anyOf.Length; j++) { if (s[i] == anyOf[j]) return i; } } return -1; // not found } ``` This implementation can be extremely inefficient for larger arrays, however, since it requires making a pass over the array for every char in the string. So, the [current implementation](https://github.com/dotnet/corert/blob/master/src/System.Private.CoreLib/src/System/String.Searching.cs#L98-L99) does a trick to speed this up. What it does is, before actually going through the string, it 'compiles' the char array down to a 256-bit long ""probabilistic map."" It takes each char and splits it into 2 bytes M and N, and sets the Mth and Nth bits of the map to indicate that those bytes are present in the array. When it wants to see if a char is in the array, it first checks if the 2 bytes corresponding to the char are set. Assuming there are no ""collisions,"" (one char that steals bytes from 2 different chars, which will not happen for ASCII data), checking if the array contains a char is now O(1). ## Problem This probabilistic map has to be re-compiled for every input array. Even if the exact same array is passed multiple times to `IndexOfAny`, which means the exact same bitmap will be generated, it will still have to re-initialize and fill out the same map every time. This can particularly hurt with large arrays; for example, I posted findings in [this issue](https://github.com/dotnet/corefx/issues/10973#issuecomment-243640020) that initializing this map was consuming **as much as 60% of CPU time** in `Path.Combine`, in spite of all of the other allocations going on in the method. ## Proposal: Pre-compiled Probabilistic Maps I propose adding an API that would allow end-users to ""precompile"" the map before passing it in to `IndexOfAny` / `LastIndexOfAny`. If this is a frequently used function in their code, then this will undoubtedly result in performance gains since there is no ""initialization"" work to be done prior to processing the string. (Of course, people will still be free to use the `char[]`-based overload.) Here is a prototype of what this API could look like: ``` cs namespace System { public class String { // Existing API public int IndexOfAny(char[] anyOf); public int IndexOfAny(char[] anyOf, int startIndex); public int IndexOfAny(char[] anyOf, int startIndex, int count); public int LastIndexOfAny(char[] anyOf); public int LastIndexOfAny(char[] anyOf, int startIndex); public int LastIndexOfAny(char[] anyOf, int startIndex, int count); // New API public int IndexOfAny(ProbabilisticMap anyOf); public int IndexOfAny(ProbabilisticMap anyOf, int startIndex); public int IndexOfAny(ProbabilisticMap anyOf, int startIndex, int count); public int LastIndexOfAny(ProbabilisticMap anyOf); public int LastIndexOfAny(ProbabilisticMap anyOf, int startIndex); public int LastIndexOfAny(ProbabilisticMap anyOf, int startIndex, int count); } } namespace System.Text { public class ProbabilisticMap { public ProbabilisticMap(char[] anyOf); // All of the ""compilation"" work is done here } } ``` `ProbabilisticMap` would internally hold references to the char array and the bitmap. These members would be accessible from the String functions, but not from end-user code. We would make a defensive copy of the `anyOf` array to prevent the map from changing if the user mutated the array after passing it to the constructor. ## Usage Typical usage would involve caching the `ProbabilisticMap` in a static field and then passing it to `IndexOfAny` from a function. For example, here is how [this snippet](https://github.com/jamesqo/corefx/blob/1962d3f68e4d547cd1904f435e939c63b137cf1d/src/System.Private.Uri/src/System/Uri.cs#L1710-L1717) from `Uri.CheckForColonInFirstPathSegment` could be rewritten: ``` cs private static readonly ProbabilisticMap s_pathDelimsMap = new ProbabilisticMap(new char[] { ':', '\\', '/', '?', '#' }); private static bool CheckForColonInFirstPathSegment(string uriString) { int index = uriString.IndexOfAny(s_pathDelimsMap); return (index >= 0 && uriString[index] == ':'); } ``` What are your thoughts on this? /cc @benaadams, @GSPP, @omariom " +11283 area-System.Linq Some small expression visitor optimizations Noticed a few places where `ExpressionVisitor` and derived types can save some memory allocations: - `VisitNew` reads `Arguments`, possibly causing allocation of a `ReadOnlyCollection`; it can use `IArgumentProvider` - `VisitBlock` - in `ExpressionVisitor` mimics `VisitArguments` but in a more convoluted way with no clear benefit; it can be simplified a bit - in `ExpressionQuoter` reads `Expressions`, possibly causing allocation of `ReadOnlyCollection`; it can use the same logic as the base class - the logic used in both of these can be centralized in `ExpressionVisitorUtils` to reduce code copies - `VisitLambda` in `ExpressionQuoter` can avoid a `Push` into the scope stack when `Parameters` is empty +11284 area-System.Runtime Move `List` and `EqualityComparer/Comparer` to CoreLib +11285 area-System.Linq Some memory optimizations in expression visitors This fixes issue #11283. CC @VSadov +11286 area-System.Linq Review nameof / string interpolation usages in expression tree library - Noticed an unconditional use of string interpolation causing allocations only relevant for error cases - Some places where string literals could be replaced by `nameof` +11287 area-System.Linq Adding some nameof uses and removing some string interpolation This addresses issue #11286. CC @VSadov +11288 area-System.Diagnostics Revisit System.Diagnostics.Tests.DebugTests to test Full framework implementation. The tests under System.Diagnostics.Tests.DebugTests in System.Diagnostics.Debug.Tests.dll are skipped for Net46 runs, as they use an internal field from System.Diagnostics.Debug implementation from .NET Core that's not available in Desktop implementation. Desktop implementation source code is [here](https://referencesource.microsoft.com/#System/compmod/system/diagnostics/Debug.cs,632c6da37ce825df). +11291 area-System.Collections Proposal: Dictionary with key and value in same object "Sometime when you create a Dictionary, the key is already in the value. It is redundant to specify the key twice, like this: ``` C# var dictionary = new Dictionary { {123, new Foo(123, ""hello"")}, {987, new Foo(987, ""world"")} }; ``` One solution is to use the abstract class [`KeyedCollection`](https://msdn.microsoft.com/en-us/library/ms132438%28v=vs.110%29.aspx) like this ``` C# class MyKeyedCollection : KeyedCollection { protected override int GetKeyForItem(Foo item) { return item.Id; } } var collection = new MyKeyedCollection { new Foo(123, ""hello""), new Foo(987, ""world"") }; ``` The problem with that is that you have to create a custom class each time you use it. My suggestion is to create a Dictionary that take a Func in the construction to be used to get the key from the value. ``` C# var directory = new KeyedDictionary(x => x.Id) { new Foo(123, ""hello""), new Foo(987, ""world"") }; Debug.WriteLine(directory[123]); Debug.WriteLine(directory[987]); public class KeyedDictionary : IDictionary { private readonly Func _keyGetter; private readonly IDictionary _dictionary = new Dictionary(); public KeyedDictionary(Func keyGetter) { _keyGetter = keyGetter; } public void Add(TValue value) { var key = _keyGetter(value); _dictionary.Add(key, value); } IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); public IEnumerator> GetEnumerator() => _dictionary.GetEnumerator(); public void Clear() => _dictionary.Clear(); public bool Contains(KeyValuePair item) => _dictionary.Contains(item); public void CopyTo(KeyValuePair[] array, int arrayIndex) => _dictionary.CopyTo(array, arrayIndex); public bool Remove(KeyValuePair item) => _dictionary.Remove(item); public int Count => _dictionary.Count; public bool IsReadOnly => _dictionary.IsReadOnly; public bool ContainsKey(TKey key) => _dictionary.ContainsKey(key); public bool Remove(TKey key) => _dictionary.Remove(key); public bool TryGetValue(TKey key, out TValue value) => _dictionary.TryGetValue(key, out value); public ICollection Keys => _dictionary.Keys; public ICollection Values => _dictionary.Values; public TValue this[TKey key] { get { return _dictionary[key]; } set { throw new NotSupportedException(); } } void ICollection>.Add(KeyValuePair item) { throw new NotSupportedException(); } void IDictionary.Add(TKey key, TValue value) { throw new NotSupportedException(); } } ``` " +11292 area-System.Net Cannot set udpClient.ExclusiveAddressUse = false in macOS and Linux "I originally posted this as a comment to this closed issue: https://github.com/dotnet/corefx/issues/8552#issuecomment-243579967 Since the issue is somewhat different, I decided to open a new one. I am implementing a Multicast application, which requires me to allow to bind multiple sockets to the same port on a machine. While working fine on windows 10 setting `udpClient.ExclusiveAddressUse = false` fails for me on Linux and macOS with a SocketErrorCode 45 (Operation Not Supported) and an HResult of 0x80004005, which translates to ""E_FAIL"" or ""Unspecified Error"" as per this listing: https://msdn.microsoft.com/en-us/library/cc704587.aspx I am testing on Windows 10 and macOS using the latest version of everything. On Windows 10 I have to use: `udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);` for it to work. Using only `udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ExclusiveAddressUse, false);` doesn't do a thing on windows and I receive an error. On macOS I receive an error as follows, when using: `udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ExclusiveAddressUse, false);` Error: > System.Net.Sockets.SocketException : Operation not supported > at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue, Boolean silent) > at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue) > at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Boolean optionValue) While using: `udpClient.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);` on macOS does not throw and exception, but does not work for me either. The property udpClient.ExclusiveAddressUse behaves accordingly, in that it is working on Windows 10 and fails on macOS. Is there anything I am missing or doing wrong here? " +11295 area-System.Net NetworkStream.Write does not send all bytes to the socket I'm not (yet :-) running .NET Core on my ARM platform, but I have been running into an issue with Mono in the NetworkStream class that's part of their implementation from the shared source. I have created https://bugzilla.xamarin.com/show_bug.cgi?id=43902 and try to create awareness of an assumption in a comment that's not true. For convenience, here is a copy of the issue: My setup is a program that saturates a network link by `Write`ing `byte[]` buffers of length 16384 until exactly 10 MiB are written. Those are transported via an IPv6 based `TcpClient` from a Linux kernel 3.14.58 USB RNDIS interface to a connected Windows machine. On the Windows machine, I use ncat to write the transported data to a file and verify that exactly 10485760 bytes have been received. The latter sometimes fails for Mono 4.4.1. I have changed the code around the [`chkStreamSocket.Send`](https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/NetworkStream.cs#L505) call in the `NetworkStream.Write` method to actually check the return value. I can see that the returned number of bytes written is not the length of the buffer (I've seen 4512 or 12736 instead of 16384). The comment above the Send call seems to assume that this doesn't happen for blocking sockets, however this isn't true for this `Blocking==true` socket. The amount of failures seems to be directly correlated to the speed of the network connection. On my main development machine, the USB network connection saturates above 100Mbit and the issues are very seldom. On another computer, the saturation is already at 35Mbit and there are multiple occurrences in each 10 MiB blob, so this looks like the socket's internal buffer might not have enough room for all data and only accepts less than the full buffer. +11296 area-System.Net NetworkStream.Write does not send all bytes to the socket I'm not (yet :-) running .NET Core on my embedded ARM platform, but I have been running into an issue with mono where a comment in the shared source isn't true. Since the same code is used here, I thought it might be a good idea to raise awareness early. The following is a copy of https://bugzilla.xamarin.com/show_bug.cgi?id=43902 for convenience. The `NetworkStream.Write()` function doesn't transmit the entire buffer since I updated from 4.0.4 to 4.4.1. My setup is a program that saturates a network link by `Write`ing `byte[]` buffers of length 16384 until exactly 10 MiB are written. Those are transported via an IPv6 based `TcpClient` from a Linux kernel 3.14.58 USB RNDIS interface to a connected Windows machine. On the Windows machine, I use ncat to write the transported data to a file and verify that exactly 10485760 bytes have been received. The latter sometimes fails for Mono 4.4.1. I have changed the code around the [`chkStreamSocket.Send`](https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/NetworkStream.cs#L505) call in the `NetworkStream.Write` method to actually check the return value. I can see that the returned number of bytes written is not the length of the buffer (I've seen 4512 or 12736 instead of 16384). The comment above the `Send` call seems to assume that this doesn't happen for blocking sockets, however this isn't true for this `Blocking==true` socket. The amount of failures seems to be directly correlated to the speed of the network connection. On my main development machine, the USB network connection saturates above 100Mbit and the issues are very seldom. On another computer, the saturation is already at 35Mbit and there are multiple occurrences in each 10 MiB blob, so this looks like the socket's internal buffer might not have enough room for all data and only accepts less than the full buffer. +11297 area-System.Security S.S.P missing Token property As per http://referencesource.microsoft.com/#mscorlib/system/security/principal/windowsidentity.cs,ec5619fe4ea57a04, `WindowsIdentity.Token` can be defined in CoreFX as: ``` c# public virtual IntPtr Token => m_safeTokenHandle.DangerousGetHandle(); ``` The current workaround for consumers is: `AccessToken.DangerousGetHandle()`. +11299 area-System.Runtime Remove redundant internal type definitions that are now publically exposed elsewhere There are some internal type definitions under the Common directory, which are included into multiple projects. Those types are now publically exposed from System.Runtime or elsewhere. Remove the internal type definitions in favor of the public types. This would involve retargeting any projects that were including the internal types to netstandard1.7, so that they can reference the public type. - SafeHandleMinusOneIsInvalid - SafeHandleZeroOrMinusOneIsInvalid - SafeFileHandle +11301 area-System.Linq Address some oddities in IndexExpression.FindProperty and MethodCallExpression.FindMethod - It uses the current culture for a string comparison - Use of some reflection APIs could be restored +11303 area-System.IO [dev/api] System.IO.Tests.FileStream_WriteAsync.ManyConcurrentWriteAsyncs failing in netcoreapp1.1 non-Windows runs "cc: @stephentoub Test run output: ``` ./corerun xunit.console.netcore.exe System.IO.FileSystem.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonosxtests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.IO.FileSystem.Tests Discovered: System.IO.FileSystem.Tests Starting: System.IO.FileSystem.Tests System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo.ValidFileOptions [SKIP] Condition(s) not met: ""IsNotWindowsNanoServer"" System.IO.Tests.FileStream_WriteAsync.ManyConcurrentWriteAsyncs [FAIL] Assert.Equal() Failure Expected: 10240 Actual: 8192 Stack Trace: at System.IO.Tests.FileStream_WriteAsync.d__14.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Finished: System.IO.FileSystem.Tests === TEST EXECUTION SUMMARY === System.IO.FileSystem.Tests Total: 2131, Errors: 0, Failed: 1, Skipped: 1, Time: 11.415s Finished running tests. End time=17:11:08. Return value was 1 ``` " +11305 area-System.IO Add new compression tests Adds tests to cover deflate64 zips and zips with sparse files that currently fail with some buffer sizes related to: #11264, #11235 requires: https://github.com/dotnet/corefx-testdata/pull/11 and a manual publish of the new testdata package to myget @stephentoub +11306 area-System.Runtime [dev/api] Some EnvironmentTests fail in non-Windows netcoreapp1.1 runs cc: @stephentoub ``` ./corerun xunit.console.netcore.exe System.Runtime.Extensions.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonosxtests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Runtime.Extensions.Tests Discovered: System.Runtime.Extensions.Tests Starting: System.Runtime.Extensions.Tests System.Tests.EnvironmentTests.GetFolderPath_Unix_NonEmptyFolderPaths(folder: CommonTemplates) [FAIL] Assert+WrapperXunitException : File path: /Users/joperezr/Desktop/git/corefx/src/System.Runtime.Extensions/tests/System/EnvironmentTests.cs. Line: 224 ---- Assert.NotEmpty() Failure Stack Trace: at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) at Assert.NotEmpty(IEnumerable collection, String path, Int32 line) at System.Tests.EnvironmentTests.GetFolderPath_Unix_NonEmptyFolderPaths(SpecialFolder folder) ----- Inner Stack Trace ----- at Assert.NotEmpty(IEnumerable collection, String path, Int32 line) System.Tests.EnvironmentTests.GetFolderPath_Unix_NonEmptyFolderPaths(folder: Templates) [FAIL] Assert+WrapperXunitException : File path: /Users/joperezr/Desktop/git/corefx/src/System.Runtime.Extensions/tests/System/EnvironmentTests.cs. Line: 224 ---- Assert.NotEmpty() Failure Stack Trace: at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) at Assert.NotEmpty(IEnumerable collection, String path, Int32 line) at System.Tests.EnvironmentTests.GetFolderPath_Unix_NonEmptyFolderPaths(SpecialFolder folder) ----- Inner Stack Trace ----- at Assert.NotEmpty(IEnumerable collection, String path, Int32 line) System.Tests.EnvironmentTests.GetFolderPath_Unix_NonEmptyFolderPaths(folder: MyVideos) [FAIL] Assert+WrapperXunitException : File path: /Users/joperezr/Desktop/git/corefx/src/System.Runtime.Extensions/tests/System/EnvironmentTests.cs. Line: 224 ---- Assert.NotEmpty() Failure Stack Trace: at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) at Assert.NotEmpty(IEnumerable collection, String path, Int32 line) at System.Tests.EnvironmentTests.GetFolderPath_Unix_NonEmptyFolderPaths(SpecialFolder folder) ----- Inner Stack Trace ----- at Assert.NotEmpty(IEnumerable collection, String path, Int32 line) Finished: System.Runtime.Extensions.Tests === TEST EXECUTION SUMMARY === System.Runtime.Extensions.Tests Total: 922, Errors: 0, Failed: 3, Skipped: 0, Time: 3.107s Finished running tests. End time=17:17:34. Return value was 3 ``` +11307 area-System.Runtime [dev/api] Some new TimeZoneInfo tests are failing in non-Windows netcoreapp1.1 runs cc: @hann013 @stephentoub @danmosemsft ``` ./corerun xunit.console.netcore.exe System.Runtime.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonosxtests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Runtime.Tests Discovered: System.Runtime.Tests Starting: System.Runtime.Tests System.Tests.TimeZoneInfoTests.ConvertTime_DateTimeOffset_Invalid_TimeZoneNotFoundException [FAIL] Assert.Throws() Failure Expected: typeof(System.TimeZoneNotFoundException) Actual: typeof(System.Security.SecurityException): The time zone ID 'Pacific' was found on the local computer, but the application does not have permission to read the file. Stack Trace: at System.TimeZoneInfo.FindSystemTimeZoneById(String id) at System.Tests.TimeZoneInfoTests.<>c__DisplayClass70_0`1.b__0() System.Tests.TimeZoneInfoTests.ClearCachedData [FAIL] System.TimeZoneNotFoundException : The time zone ID 'Central Standard Time' was not found on the local computer. ---- System.IO.FileNotFoundException : Could not find file '/usr/share/zoneinfo/Central Standard Time'. Stack Trace: at System.TimeZoneInfo.FindSystemTimeZoneById(String id) at System.Tests.TimeZoneInfoTests.ClearCachedData() ----- Inner Stack Trace ----- at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.File.InternalReadAllBytes(String path, Boolean checkHost) at System.TimeZoneInfo.TryGetTimeZoneByFile(String id, TimeZoneInfo& value, Exception& e) Finished: System.Runtime.Tests === TEST EXECUTION SUMMARY === System.Runtime.Tests Total: 6185, Errors: 0, Failed: 2, Skipped: 0, Time: 1.136s Finished running tests. End time=17:19:51. Return value was 2 ``` +11308 area-System.Linq Simplify IndexExpression.FindProperty and MethodCallExpression.FindMethod This addresses issue #11301. CC @VSadov, @stephentoub, @justinvp +11309 area-System.Net [WebSockets] If TCP connection closed without WebSocket close, ManagedWebSocket keeps returning 0-byte frames **Overview:** In some browsers and clients, it is possible to terminate the underlying TCP connection without a proper close handshake. In these cases, `ManagedWebSocket` begins interminably returning 0-byte frames from `ReceiveAsync`. This can be observed using a Safari browser, and running a SignalR sample as described here: https://github.com/aspnet/SignalR-Server/issues/202, but I've produced a candidate fix and a simpler repro (detailed below). **Repro steps** (sorry they are a bit rough, but I needed to use the Node WebSocket client to simulate the things I'm seeing). The repro requires VS+.NET Core tools and Node JS (again, it was the easiest client I could use to exhibit the behavior reliably) 1. Clone https://github.com/aspnet/WebSockets, check out `anurse/websocket-repro` and open the SLN up in VS 2. Run `dotnet restore` in the repo root 3. Run `dotnet run` from the `samples\EchoApp` directory in the repo. 4. Check the output to verify the port number (it should be `5000`, but if not, just adjust the final step as necessary) 5. In another console window, clone https://gist.github.com/anurse/fe87ecf8aa01832a99dd247c64cb4595 (clone URL: https://gist.github.com/fe87ecf8aa01832a99dd247c64cb4595.git) somewhere and `cd` to it 6. Run `node main.js ws://localhost:5000` **Expected results:** ``` ps1 # node main.js ws://localhost:5000 WebSocket Client Connected Received: 'Hello, World' echo-protocol Connection Closed ``` And the log output from the server shows an exception because the underlying stream was closed without a close handshake. This is OK, since the client intentionally terminates the connection abruptly. Though maybe an exception isn't the best way to communicate that, who knows :). **Actual results:** Non-stop output until Ctrl-C is pressed (a few times ;P): ``` Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' Received: '' ``` Same on the server log ``` dbug: Echo[0] Received Frame Text: Len=0, Fin=True: dbug: Echo[0] Sent Frame Text: Len=0, Fin=True: dbug: Echo[0] Received Frame Text: Len=0, Fin=True: dbug: Echo[0] Sent Frame Text: Len=0, Fin=True: dbug: Echo[0] Received Frame Text: Len=0, Fin=True: dbug: Echo[0] Sent Frame Text: Len=0, Fin=True: dbug: Echo[0] Received Frame Text: Len=0, Fin=True: dbug: Echo[0] Sent Frame Text: Len=0, Fin=True: dbug: Echo[0] Received Frame Text: Len=0, Fin=True: dbug: Echo[0] Sent Frame Text: Len=0, Fin=True: ``` What's happening is that the call to EnsureBufferContainsAsync at https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/ManagedWebSocket.cs#L618 is reading zero bytes from the underlying stream (because it has closed, and is thus reporting end-of-stream as per the Stream contract). However, `throwOnPrematureClosure` is `false`, which causes an empty frame to be returned. This repeats indefinitely as the caller keeps trying to read new frames. Changing `throwOnPrematureClosure` to `true` on this line **fixes the issue**, but I wasn't sure if this was safe to do since it seems intentional. I can send a PR to fix this if that sounds like the right fix. It doesn't seem too unsafe though, since if the stream closes, we should be returning some indication of that rather than an empty text frame. /cc @stephentoub @Tratcher @moozzyk +11310 area-System.Net Remove unnecessary null check in DomainNameHelper Found by a coverity scan cc: @cipop, @davidsh +11313 area-System.Collections [dev/api] Some Serialization tests are failing for System.Collections.Specialized netcoreapp1.1 runs cc: @stephentoub ``` call CoreRun.exe xunit.console.netcore.exe System.Collections.Specialized.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=OuterLoop -notrait category=failing -notrait category=nonwindowstests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Collections.Specialized.Tests Discovered: System.Collections.Specialized.Tests Starting: System.Collections.Specialized.Tests System.Collections.Specialized.Tests.ListDictionaryKeysTests.IGenericSharedAPI_SerializeDeserialize(count: 0) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Specialized.ListDictionary+NodeKeyValueCollection' in Assembly 'System.Collections.Specialized, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(19,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.ListDictionaryKeysTests.IGenericSharedAPI_SerializeDeserialize(count: 1) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Specialized.ListDictionary+NodeKeyValueCollection' in Assembly 'System.Collections.Specialized, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.HybridDictionary_CaseSensitive_Tests.IGenericSharedAPI_SerializeDeserialize(count: 0) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Hashtable' in Assembly 'System.Collections.NonGeneric, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.ListDictionaryKeysTests.IGenericSharedAPI_SerializeDeserialize(count: 75) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Specialized.ListDictionary+NodeKeyValueCollection' in Assembly 'System.Collections.Specialized, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.HybridDictionaryKeysTests.IGenericSharedAPI_SerializeDeserialize(count: 0) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Specialized.ListDictionary+NodeKeyValueCollection' in Assembly 'System.Collections.Specialized, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.HybridDictionaryKeysTests.IGenericSharedAPI_SerializeDeserialize(count: 1) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Specialized.ListDictionary+NodeKeyValueCollection' in Assembly 'System.Collections.Specialized, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.HybridDictionary_CaseSensitive_Tests.IGenericSharedAPI_SerializeDeserialize(count: 1) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Hashtable' in Assembly 'System.Collections.NonGeneric, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.HybridDictionaryKeysTests.IGenericSharedAPI_SerializeDeserialize(count: 75) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Hashtable+KeyCollection' in Assembly 'System.Collections.NonGeneric, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.HybridDictionary_CaseSensitive_Tests.IGenericSharedAPI_SerializeDeserialize(count: 75) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Hashtable' in Assembly 'System.Collections.NonGeneric, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.HybridDictionary_CaseInsensitive_Tests.IGenericSharedAPI_SerializeDeserialize(count: 0) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Hashtable' in Assembly 'System.Collections.NonGeneric, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.HybridDictionary_CaseInsensitive_Tests.IGenericSharedAPI_SerializeDeserialize(count: 1) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Hashtable' in Assembly 'System.Collections.NonGeneric, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Type objectType, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.HybridDictionary_CaseInsensitive_Tests.IGenericSharedAPI_SerializeDeserialize(count: 75) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Hashtable' in Assembly 'System.Collections.NonGeneric, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.HybridDictionaryValuesTests.IGenericSharedAPI_SerializeDeserialize(count: 0) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Specialized.ListDictionary+NodeKeyValueCollection' in Assembly 'System.Collections.Specialized, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.HybridDictionaryValuesTests.IGenericSharedAPI_SerializeDeserialize(count: 1) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Specialized.ListDictionary+NodeKeyValueCollection' in Assembly 'System.Collections.Specialized, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.HybridDictionaryValuesTests.IGenericSharedAPI_SerializeDeserialize(count: 75) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Hashtable+ValueCollection' in Assembly 'System.Collections.NonGeneric, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.ListDictionaryValuesTests.IGenericSharedAPI_SerializeDeserialize(count: 0) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Specialized.ListDictionary+NodeKeyValueCollection' in Assembly 'System.Collections.Specialized, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.ListDictionaryValuesTests.IGenericSharedAPI_SerializeDeserialize(count: 1) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Specialized.ListDictionary+NodeKeyValueCollection' in Assembly 'System.Collections.Specialized, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) System.Collections.Specialized.Tests.ListDictionaryValuesTests.IGenericSharedAPI_SerializeDeserialize(count: 75) [FAIL] System.Runtime.Serialization.SerializationException : Type 'System.Collections.Specialized.ListDictionary+NodeKeyValueCollection' in Assembly 'System.Collections.Specialized, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.GetSerializableFields(Type type) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) F:\git\corefx\src\Common\tests\System\Collections\IEnumerable.NonGeneric.Serialization.Tests.cs(25,0): at System.Collections.Tests.IEnumerable_NonGeneric_Tests.IGenericSharedAPI_SerializeDeserialize(Int32 count) Finished: System.Collections.Specialized.Tests === TEST EXECUTION SUMMARY === System.Collections.Specialized.Tests Total: 2106, Errors: 0, Failed: 18, Skipped: 0, Time: 0.453s Finished running tests. End time=15:57:56.05, Exit code = 18 ``` +11314 area-System.Linq Reducing code duplication in ExpressionQuoter and converging the copies. This contributes to #11097 by sharing `RuntimeVariables` and `MergedRuntimeVariables` types across interpreter and compiler. In addition, I'm simplifying some of the logic in the quoter used by the interpreter such that it converges with the one used by the compiler. In a separate step, I can work on sharing the common pieces through some base class (see comments in the PR). +11315 area-System.Security [dev/api] New System.Security.Cryptography.Algorithms tests are failing in netcoreapp1.1 runs cc: @steveharter Looks like some new tests that you added are broken in netcoreapp1.1. I'll comment them out for now, but this issue is to track the work of readding them back when fixed. This are the errors that I'm seeing: ``` ./corerun xunit.console.netcore.exe System.Security.Cryptography.Algorithms.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonosxtests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Security.Cryptography.Algorithms.Tests Discovered: System.Security.Cryptography.Algorithms.Tests Starting: System.Security.Cryptography.Algorithms.Tests System.Security.Cryptography.Dsa.Tests.DSAImportExport.MultiExport [FAIL] System.EntryPointNotFoundException : Unable to find an entry point named 'CryptoNative_DsaKeyCreateByExplicitParameters' in DLL 'System.Security.Cryptography.Native'. Stack Trace: at Interop.Crypto.DsaKeyCreateByExplicitParameters(SafeDsaHandle& dsa, Byte[] p, Int32 pLength, Byte[] q, Int32 qLength, Byte[] g, Int32 gLength, Byte[] y, Int32 yLength, Byte[] x, Int32 xLength) at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.ImportParameters(DSAParameters parameters) at System.Security.Cryptography.Dsa.Tests.DSAImportExport.MultiExport() System.Security.Cryptography.Dsa.Tests.DSAImportExport.ExportAutoKey [FAIL] System.EntryPointNotFoundException : Unable to find an entry point named 'CryptoNative_DsaGenerateKey' in DLL 'System.Security.Cryptography.Native'. Stack Trace: at Interop.Crypto.DsaGenerateKey(SafeDsaHandle& dsa, Int32 bits) at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.GenerateKey() at System.Lazy`1.CreateValue() at System.Lazy`1.LazyInitValue() at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.ExportParameters(Boolean includePrivateParameters) at System.Security.Cryptography.Dsa.Tests.DSAImportExport.ExportAutoKey() System.Security.Cryptography.Dsa.Tests.DSAKeyGeneration.GenerateKey_1024 [FAIL] System.EntryPointNotFoundException : Unable to find an entry point named 'CryptoNative_DsaGenerateKey' in DLL 'System.Security.Cryptography.Native'. Stack Trace: at Interop.Crypto.DsaGenerateKey(SafeDsaHandle& dsa, Int32 bits) at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.GenerateKey() at System.Lazy`1.CreateValue() at System.Lazy`1.LazyInitValue() at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.ExportParameters(Boolean includePrivateParameters) at System.Security.Cryptography.Dsa.Tests.DSAKeyGeneration.GenerateKey(Func`2 getSize) at System.Security.Cryptography.Dsa.Tests.DSAKeyGeneration.GenerateKey(Int32 size) at System.Security.Cryptography.Dsa.Tests.DSAKeyGeneration.GenerateKey_1024() System.Security.Cryptography.Dsa.Tests.DSAKeyGeneration.GenerateSecondMinKey [FAIL] System.EntryPointNotFoundException : Unable to find an entry point named 'CryptoNative_DsaGenerateKey' in DLL 'System.Security.Cryptography.Native'. Stack Trace: at Interop.Crypto.DsaGenerateKey(SafeDsaHandle& dsa, Int32 bits) at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.GenerateKey() at System.Lazy`1.CreateValue() at System.Lazy`1.LazyInitValue() at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.ExportParameters(Boolean includePrivateParameters) at System.Security.Cryptography.Dsa.Tests.DSAKeyGeneration.GenerateKey(Func`2 getSize) at System.Security.Cryptography.Dsa.Tests.DSAKeyGeneration.GenerateSecondMinKey() System.Security.Cryptography.Dsa.Tests.DSAKeyGeneration.GenerateMinKey [FAIL] System.EntryPointNotFoundException : Unable to find an entry point named 'CryptoNative_DsaGenerateKey' in DLL 'System.Security.Cryptography.Native'. Stack Trace: at Interop.Crypto.DsaGenerateKey(SafeDsaHandle& dsa, Int32 bits) at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.GenerateKey() at System.Lazy`1.CreateValue() at System.Lazy`1.LazyInitValue() at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.ExportParameters(Boolean includePrivateParameters) at System.Security.Cryptography.Dsa.Tests.DSAKeyGeneration.GenerateKey(Func`2 getSize) at System.Security.Cryptography.Dsa.Tests.DSAKeyGeneration.GenerateMinKey() System.Security.Cryptography.Dsa.Tests.DSASignVerify.SignAndVerifyDataNew1024 [FAIL] System.EntryPointNotFoundException : Unable to find an entry point named 'CryptoNative_DsaGenerateKey' in DLL 'System.Security.Cryptography.Native'. Stack Trace: at Interop.Crypto.DsaGenerateKey(SafeDsaHandle& dsa, Int32 bits) at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.GenerateKey() at System.Lazy`1.CreateValue() at System.Lazy`1.LazyInitValue() at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.CreateSignature(Byte[] hash) at System.Security.Cryptography.DSA.SignData(Byte[] data, Int32 offset, Int32 count, HashAlgorithmName hashAlgorithm) at System.Security.Cryptography.DSA.SignData(Byte[] data, HashAlgorithmName hashAlgorithm) at System.Security.Cryptography.Dsa.Tests.DSASignVerify.SignAndVerifyDataNew1024() System.Security.Cryptography.Dsa.Tests.DSASignVerify.InvalidKeySize_DoesNotInvalidateKey [FAIL] System.EntryPointNotFoundException : Unable to find an entry point named 'CryptoNative_DsaGenerateKey' in DLL 'System.Security.Cryptography.Native'. Stack Trace: at Interop.Crypto.DsaGenerateKey(SafeDsaHandle& dsa, Int32 bits) at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.GenerateKey() at System.Lazy`1.CreateValue() at System.Lazy`1.LazyInitValue() at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.CreateSignature(Byte[] hash) at System.Security.Cryptography.DSA.SignData(Byte[] data, Int32 offset, Int32 count, HashAlgorithmName hashAlgorithm) at System.Security.Cryptography.DSA.SignData(Byte[] data, HashAlgorithmName hashAlgorithm) at System.Security.Cryptography.Dsa.Tests.DSASignVerify.InvalidKeySize_DoesNotInvalidateKey() System.Security.Cryptography.Dsa.Tests.DSASignVerify.VerifyKnownSignature [FAIL] System.EntryPointNotFoundException : Unable to find an entry point named 'CryptoNative_DsaKeyCreateByExplicitParameters' in DLL 'System.Security.Cryptography.Native'. Stack Trace: at Interop.Crypto.DsaKeyCreateByExplicitParameters(SafeDsaHandle& dsa, Byte[] p, Int32 pLength, Byte[] q, Int32 qLength, Byte[] g, Int32 gLength, Byte[] y, Int32 yLength, Byte[] x, Int32 xLength) at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.ImportParameters(DSAParameters parameters) at System.Security.Cryptography.Dsa.Tests.DSASignVerify.VerifyKnownSignature() System.Security.Cryptography.Dsa.Tests.DSASignVerify.SignAndVerifyDataExplicit2048 [FAIL] System.EntryPointNotFoundException : Unable to find an entry point named 'CryptoNative_DsaKeyCreateByExplicitParameters' in DLL 'System.Security.Cryptography.Native'. Stack Trace: at Interop.Crypto.DsaKeyCreateByExplicitParameters(SafeDsaHandle& dsa, Byte[] p, Int32 pLength, Byte[] q, Int32 qLength, Byte[] g, Int32 gLength, Byte[] y, Int32 yLength, Byte[] x, Int32 xLength) at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.ImportParameters(DSAParameters parameters) at System.Security.Cryptography.Dsa.Tests.DSASignVerify.SignAndVerify(Byte[] data, String hashAlgorithmName, DSAParameters dsaParameters) at System.Security.Cryptography.Dsa.Tests.DSASignVerify.SignAndVerifyDataExplicit2048() System.Security.Cryptography.Dsa.Tests.DSASignVerify.SignAndVerifyDataExplicit1024 [FAIL] System.EntryPointNotFoundException : Unable to find an entry point named 'CryptoNative_DsaKeyCreateByExplicitParameters' in DLL 'System.Security.Cryptography.Native'. Stack Trace: at Interop.Crypto.DsaKeyCreateByExplicitParameters(SafeDsaHandle& dsa, Byte[] p, Int32 pLength, Byte[] q, Int32 qLength, Byte[] g, Int32 gLength, Byte[] y, Int32 yLength, Byte[] x, Int32 xLength) at System.Security.Cryptography.DSAImplementation.DSAOpenSsl.ImportParameters(DSAParameters parameters) at System.Security.Cryptography.Dsa.Tests.DSASignVerify.SignAndVerify(Byte[] data, String hashAlgorithmName, DSAParameters dsaParameters) at System.Security.Cryptography.Dsa.Tests.DSASignVerify.SignAndVerifyDataExplicit1024() Finished: System.Security.Cryptography.Algorithms.Tests === TEST EXECUTION SUMMARY === System.Security.Cryptography.Algorithms.Tests Total: 395, Errors: 0, Failed: 10, Skipped: 0, Time: 1.138s Finished running tests. End time=16:43:47. Return value was 10 ``` +11319 area-Serialization Bump System.Xml.XmlSerializer Version before 1.2.0 We need to bump System.Xml.XmlSerializer's version before 1.2.0 release if the version hasn't been bumped yet. +11320 area-System.Reflection Restore remaining Reflection APIs (.NET Core) Here's a list of APIs that are still not exposed, either due to depending on a missing runtime implementation or requiring to expose types from other namespaces: ``` M:System.Reflection.Assembly.get_EscapedCodeBase M:System.Reflection.Assembly.get_Evidence M:System.Reflection.Assembly.get_GlobalAssemblyCache M:System.Reflection.Assembly.get_HostContext M:System.Reflection.Assembly.get_IsFullyTrusted M:System.Reflection.Assembly.Load(byte[],byte[],System.Security.Policy.Evidence) M:System.Reflection.Assembly.Load(byte[],byte[],System.Security.SecurityContextSource) M:System.Reflection.Assembly.Load(System.Reflection.AssemblyName,System.Security.Policy.Evidence) M:System.Reflection.Assembly.Load(System.String,System.Security.Policy.Evidence) M:System.Reflection.Assembly.LoadFrom(System.String) M:System.Reflection.Assembly.LoadFrom(System.String,byte[],System.Configuration.Assemblies.AssemblyHashAlgorithm) M:System.Reflection.Assembly.LoadFrom(System.String,System.Security.Policy.Evidence) M:System.Reflection.Assembly.LoadFrom(System.String,System.Security.Policy.Evidence,byte[],System.Configuration.Assemblies.AssemblyHashAlgorithm) M:System.Reflection.Assembly.LoadFile(System.String) M:System.Reflection.Assembly.LoadFile(System.String,System.Security.Policy.Evidence) M:System.Reflection.Assembly.LoadModule(System.String,byte[]) M:System.Reflection.Assembly.LoadModule(System.String,byte[],byte[]) M:System.Reflection.Assembly.LoadWithPartialName(System.String) M:System.Reflection.Assembly.LoadWithPartialName(System.String,System.Security.Policy.Evidence) M:System.Reflection.Assembly.UnsafeLoadFrom(System.String) M:System.Reflection.AssemblyName.get_EscapedCodeBase M:System.Reflection.AssemblyName.get_KeyPair M:System.Reflection.AssemblyName.GetAssemblyName(System.String) M:System.Reflection.AssemblyName.ReferenceMatchesDefinition(System.Reflection.AssemblyName,System.Reflection.AssemblyName) M:System.Reflection.AssemblyName.set_KeyPair(System.Reflection.StrongNameKeyPair) M:System.Reflection.AssemblyNameProxy.GetAssemblyName(System.String) M:System.Reflection.FieldInfo.GetValueDirect(System.TypedReference) M:System.Reflection.FieldInfo.SetValueDirect(System.TypedReference,System.Object) M:System.Reflection.MemberInfo.System.Runtime.InteropServices._MemberInfo.GetIDsOfNames(System.GUID,System.IntPtr,System.UInt32,System.UInt32,System.IntPtr) M:System.Reflection.MemberInfo.System.Runtime.InteropServices._MemberInfo.GetType M:System.Reflection.MemberInfo.System.Runtime.InteropServices._MemberInfo.GetTypeInfo(System.UInt32,System.UInt32,System.IntPtr) M:System.Reflection.MemberInfo.System.Runtime.InteropServices._MemberInfo.GetTypeInfo(System.UInt32) M:System.Reflection.MemberInfo.System.Runtime.InteropServices._MemberInfo.Invoke(System.UInt32,System.GUID,System.UInt32,System.Int16,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) M:System.Reflection.MethodBase.get_IsSecurityCritical M:System.Reflection.MethodBase.get_IsSecuritySafeCritical M:System.Reflection.MethodBase.get_IsSecurityTransparent M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsAbstract M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsAssembly M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsConstructor M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsFamily M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsFamilyAndAssembly M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsFamilyOrAssembly M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsFinal M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsHideBySig M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsPrivate M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsPublic M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsSpecialName M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsStatic M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsVirtual M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.GetIDsOfNames(System.GUID,System.IntPtr,System.UInt32,System.UInt32,System.IntPtr) M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.GetType M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.GetTypeInfo(System.UInt32,System.UInt32,System.IntPtr) M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.GetTypeInfoCount(System.UInt32) M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.Invoke(System.UInt32,System.GUID,System.UInt32,System.UInt16,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) M:System.Reflection.Module.GetSignerCertificate M:System.Reflection.Pointer.ctor() M:System.Reflection.Emit.GenericTypeParameterBuilder.IsInstanceOfType(System.Object) ``` Plus `System.Reflection.StrongNameKeyPair` type and the following from `System.Type`: ``` M:System.Type.get_IsContextful M:System.Type.IsContextfulImpl M:System.Type.get_IsSecurityCritical M:System.Type.get_IsSecuritySafeCritical M:System.Type.get_IsSecurityTransparent M:System.Type.GetType(string,Func,Func) M:System.Type.GetType(string,Func,Func,bool) M:System.Type.GetType(string,Func,Func,bool,bool) ``` The following will also need to be restored: ``` M:System.Type.get_IsSecurityCritical M:System.Type.get_IsSecuritySafeCritical M:System.Type.get_IsSecurityTransparent ``` +11323 area-System.Linq Reduce some closures and allocations in LambdaCompiler Especially around the code dealing with `WriteBack` objects, we tend to allocate `List` objects when we may not need them. +11324 area-System.Collections SortedList indexer implementation of IDictionary throws ArgumentNullException in Desktop `SortedList`, `IDictionary.this[object key]` throws ArgumentException when the key is not compatible with `TKey` On Desktop ArgumentNullException is thrown. ArgumentNullException is incorrect, as key is not null, ArgumentException is more suited. This is a behavior change, filing issue to track on what we want to do with these differences. cc @terrajobst @weshaggard @stephentoub @danmosemsft +11325 area-System.Linq ILGen can use Debug.Assert in lieu of ContractUtils These methods are used internally; argument validation should be done much higher up. We don't need the redundant calls to `ContractUtils` methods in `Release` builds. +11326 area-System.Linq Reducing closure and list allocations in LambdaCompiler This addresses issue #11323 by: - Changing `WriteBack` delegate to take in `LambdaCompiler` so the closure doesn't have to include `this` - Splitting `AddressOfWriteBack` methods by adding a `Core` method to avoid closure allocation - Reducing closure size by reduce the number of locals needed in the write-back - Removing cleverness in `EmitArray` where a callback was used by inlining the logic in its single call site - Lazily allocating `List` at the point it's needed, using `null` to represent no write-backs - Using `List` instead of `IList` for `foreach` so it binds to struct-based `GetEnumerator` CC @VSadov +11327 area-System.Linq Consider caching some MemberInfo object that are frequently obtained "Most notably in `LambdaCompiler` and `ILGen`, we have a bunch of places where we call reflection repeatedly and allocate `Type[]` arrays to do so, e.g. ``` csharp _ilg.Emit(OpCodes.Callvirt, typeof(MethodInfo).GetMethod(""CreateDelegate"", new Type[] { typeof(Type), typeof(object) })); ``` We can use a lazy initialization pattern much like we do in the interpreter to cache instruction type instances upon first use: ``` csharp _ilg.Emit(OpCodes.Callvirt, s_createDelegate ?? (s_createDelegate = typeof(MethodInfo).GetMethod(""CreateDelegate"", new Type[] { typeof(Type), typeof(object) }))); ``` " +11328 area-System.Linq Reintroduce the use of Type.GetTypeCode in lieu of a custom implementation It seems this member was reintroduced in https://github.com/dotnet/corefx/pull/6815. Can we take a dependency on it again for e.g. `TypeCode System.Dynamic.Utils.TypeExtensions.GetTypeCode(this Type)` instead of using `if` checks? +11329 area-System.Linq Changing some runtime checks into asserts in ILGen These invariants are guaranteed higher up, all the way in expression factories or in the `LambdaCompiler`, so we can simply use asserts. CC @VSadov +11331 area-System.Net HttpClient Returns Successful Status Code for HEAD or GET Request When the Resource Does Not Exist "**Issue** When issuing a HEAD or GET request using HttpClient to a Request-URI (resource) which does not exist, the client returns an OK (200) response. This leads to edge cases where one may be trying to retrieve data from an external API and typed the resource incorrectly leading to an OK response, but no data. It also makes testing difficult due to unexpected behaviors. **Expected Behavior** HTTP Protocol specifies the following: > 9.3 GET > > **The GET method means retrieve whatever information (in the form of an entity) is identified by the Request-URI**. If the Request-URI refers to a data-producing process, it is the produced data which shall be returned as the entity in the response and not the source text of the process, unless that text happens to be the output of the process. > ... > > 9.4 HEAD > > **The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response**. > ... Thus, when running a HEAD or GET request to a non-existent resource, you should NOT receive an OK (200) response, but rather, a NotFound (404) as the resource does not exist (i.e. you cannot retrieve whatever information is available at a resource which does not exist). **How to Reproduce** Create a .NET Core Console App Run the following code in Program.cs and notice that success is true and the response's status code is OK (200). Repeat using GET instead of HEAD and notice the same result. ``` using System.Net.Http; namespace ApiTester { public class Program { public static void Main(string[] args) { using (var client = new HttpClient()) { using (var request = new HttpRequestMessage(new HttpMethod(""HEAD""), ""http://www.this.resource.does/not/exit"")) { using (var response = client.SendAsync(request).Result) { var success = response.IsSuccessStatusCode; } } } } } } ``` " +11333 area-System.Net HttpClient Throws An Exception for Requests When the Resource Does Not Exist "**Issue** When issuing a request using HttpClient to a Request-URI (resource) which does not exist, HttpClient throws an exception and does not handle gracefully. The exception is as follows: ``` {System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: The server returned an invalid or unrecognized response at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.WinHttpHandler.d__101.MoveNext() --- End of inner exception stack trace --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext()} ``` This leads to confusing behavior making it hard to test specific edge cases. _NOTE_: This does NOT affect GET or HEAD as GET/HEAD requests return an OK (200) response which is documented in [Issue #11331](https://github.com/dotnet/corefx/issues/11331). **Expected Behavior** When running a request to a non-existent resource, HttpClient should NOT throw an exception, but rather, return a NotFound (404) response as the resource is not found. **How to Reproduce** Create a .NET Core Console App Run the following code in Program.cs and notice that the above exception is thrown. Repeat using different request types other than HEAD or GET. ``` using System.Net.Http; namespace ApiTester { public class Program { public static void Main(string[] args) { using (var client = new HttpClient()) { using (var request = new HttpRequestMessage(new HttpMethod(""OPTIONS""), ""http://www.this.resource.does/not/exit"")) { using (var response = client.SendAsync(request).Result) { var success = response.IsSuccessStatusCode; } } } } } } ``` " +11334 area-System.Linq Caching some reflection calls "This addresses issue #11327 by introducing a centralized place where we perform reflection calls to obtain commonly used members referenced by compiled code emitted for expression trees. We get savings in terms of memory churn due to `Type[]` allocations and avoid calling into reflection each time. A micro-benchmark shows good results: ``` csharp Test( ""C decimal..ctor(int)"", () => typeof(Decimal).GetConstructor(new[] { typeof(int) }), () => CachedReflectionInfo.Decimal_Ctor_Int32 ); Test( ""F Closure.Constants"", () => typeof(Closure).GetField(nameof(Closure.Constants)), () => CachedReflectionInfo.Closure_Constants ); Test( ""M RuntimeOps.Quote()"", () => typeof(RuntimeOps).GetMethod(nameof(RuntimeOps.Quote)), () => CachedReflectionInfo.RuntimeOps_Quote ); Test( ""M MethodInfo.CreateDelegate(Type, object)"", () => typeof(MethodInfo).GetMethod(nameof(MethodInfo.CreateDelegate), new[] { typeof(Type), typeof(object) }), () => CachedReflectionInfo.MethodInfo_CreateDelegate_Type_Object ); ``` produces (`/o+` on Windows 10 with Release bits) ``` C decimal..ctor(int) 00.86479 00.00034 F Closure.Constants 00.04973 00.00033 M RuntimeOps.Quote() 00.06998 00.00038 M MethodInfo.CreateDelegate(Type, object) 00.32893 00.00032 ``` The number of members (lazily) cached is quite low and most of them are like to be looked up multiple times if they're used at least once (e.g. ""if you got one X, you likely have many"" where X could be a `Quote` node, a nested lambda, a `decimal` literal). CC @VSadov " +11335 area-System.Text Test failure in Microsoft.Framework.WebEncoders.TextEncoderSettingsTests.Clear PR https://github.com/dotnet/corefx/pull/11329 failed with the following stack trace: ``` 20:27:25 Microsoft.Framework.WebEncoders.TextEncoderSettingsTests.Clear [FAIL] 20:27:25 System.IndexOutOfRangeException : Index was outside the bounds of the array. 20:27:25 Stack Trace: 20:27:25 at System.Text.Internal.AllowedCharactersBitmap.IsCharacterAllowed(Char character) 20:27:25 at Microsoft.Framework.WebEncoders.TextEncoderSettingsExtensions.IsCharacterAllowed(TextEncoderSettings settings, Char character) 20:27:25 at Microsoft.Framework.WebEncoders.TextEncoderSettingsTests.Clear() ``` See http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/3793. +11339 area-System.Net SendReceiveTest.SendReceive_VaryingLengthBuffers_Success failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/dev_api/job/ubuntu14.04_debug_prtest/596/consoleText ``` System.Net.WebSockets.Client.Tests.SendReceiveTest.SendReceive_VaryingLengthBuffers_Success(server: ws://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx) [FAIL] System.Net.WebSockets.WebSocketException : The 'System.Net.WebSockets.InternalClientWebSocket' instance cannot be used for communication because it has been transitioned into the 'Aborted' state. ---- System.ObjectDisposedException : Cannot access a disposed object. Object name: 'ClientWebSocket'. Stack Trace: at System.Net.WebSockets.ManagedWebSocket.d__60.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.WebSockets.Client.Tests.SendReceiveTest.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.WebSockets.ManagedWebSocket.d__69.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.WebSockets.ManagedWebSocket.d__60.MoveNext() ``` +11341 area-System.Net Disable most networking tests for default CI runs "Lately, the CI system and test server infrastructure has been overloaded with many PRs. This is causing many networking tests to randomly fail due to resource exhaustion caused by so many simultaneous PR runs on the same CI machines. This occurrs not only when using an external test server endpoint (corefx-net.cloudapp.net) but also loopback servers. To improve engineering efficiency for the team, we are moving most of the tests in the networking libraries from the default CI runs (innerloop). For developers working on networking libraries, the networking tests can be run by invoking the ""outerloop"" tests. We will not be allowing any merges of PRs in the networking libraries unless the outerloop tests are also run by the developer. This affects tests in the following libraries right now: - System.Net.Http - System.Net.Http.WinHttpHandler - System.Net.Sockets - System.Net.Security - System.Net.WebSockets.Client I will be working on fine tuning these exclusions (issue #11345) to try to bring back tests into the innerloop runs when we have begun to address the infrastructure issues. " +11342 area-System.IO Make Stream.CopyTo virtual ## Background Currently for non-seekable streams, the overload of [`Stream.CopyTo`](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/IO/Stream.cs#L191) that does not accept a buffer size defaults to using a 81920-length byte buffer between reads/writes. Although this is under the LOH threshold which is ~85K, it still generates substantial garbage for the GC to clean up, especially for people who are using small streams and aren't expecting such a gigantic buffer to be used. ## Proposal We should make `Stream.CopyTo(Stream, int)` virtual. This would allow `byte[]`-based Streams, such as `MemoryStream`, to avoid using an intermediary buffer altogether, resulting in substantial memory savings. The corresponding async version, `CopyToAsync(Stream, int, CancellationToken)`, is already virtual, so IMO there's no reason it shouldn't be done for this overload as well. ## Proposed API ``` cs namespace System.IO { public abstract class Stream { public void CopyTo(Stream destination, int bufferSize); // existing public virtual void CopyTo(Stream destination, int bufferSize); // new } public class MemoryStream : Stream { public override void CopyTo(Stream destination, int bufferSize); } } ``` +11343 area-System.Linq A few System.Linq.Queryable.Tests issues on AOT Four test failures: ``` System.Linq.Tests.QueryFromExpressionTests.ConditionalNotNotEqualAddPlusConstantNegateConstant System.PlatformNotSupportedException : UnsupportedExpressionType, UnaryPlus System.Linq.Tests.QueryFromExpressionTests.ConditionalNotNotEqualAddCheckedPlusConstantNegateCheckedConstant System.PlatformNotSupportedException : UnsupportedExpressionType, UnaryPlus System.Linq.Tests.ElementAtTests.IndexEqualsCount Assert.Equal() Failure Expected: index Actual: ArgumentOutOfRange_Index System.Linq.Tests.ElementAtTests.EmptyIndexZero Assert.Equal() Failure Expected: index Actual: ArgumentOutOfRange_Index ``` +11345 area-System.Net Re-enable more networking tests for innerloop PR #11341 moved the majority of networking tests to outerloop due to infrastructure issues. This issue will track putting back tests as we strengthen the test infrastructure to allow more networking tests to run as innerloop. +11348 area-System.Net fix #11309 in WebSockets by throwing when the underlying connection is closed /cc @stephentoub @Tratcher @moozzyk Fixes #11309 The `if` clause is also no longer needed because the only way it could be triggered is if `EnsureBufferContainsAsync` completed successfully but hadn't read enough data (which only occurs when `throwOnPrematureClosure` is `true`). +11349 area-System.IO Use rooted path for symlink creation in IO tests calling `ln` was causing System.Diagnostics.Process to do some unnecessary work to determine the path to the function. Along the way, it was failing a proc_pidpath call on the current pid which has been causing intermittent failures in the FSW tests. We circumvent that failure by using the direct binpath to `ln`. related to: https://github.com/dotnet/corefx/pull/9555 Likely resolves https://github.com/dotnet/corefx/issues/9009, https://github.com/dotnet/corefx/issues/10398, though since I cannot repro the error and it is intermittent, we'll have to wait to see for sure. +11350 area-Infrastructure [Do not merge] Add RepoData.json and consumes api output I've generated RepoData.json for CoreFx. Below is the RepoData.json file I created, and the output in the form of a consumes.json file. Does any of this look unexpected? I don't intend to check this in until RepoUtil is available in CoreFx. /cc @weshaggard @dagood @jhendrixMSFT @markwilkie I have a simple (read 2-sentence) design doc [here](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/consumes-api.md) It seems that there is redundancy between the data I'm including in RepoData.json and that which @ericstj has catalogued in https://github.com/dotnet/corefx/blob/master/pkg/Microsoft.Private.PackageBaseline/packageIndex.json. We need to consider some way to consolidate this. +11357 area-System.IO Move some flaky FSW tests to Outerloop All of the FSW tests are potentially subject to intermittent failures because of the inherent flakiness of the underlying OS file system watching APIs. Although we do some manual stuff to get around that flakiness (e.g. retries, long timeouts), some scenarios aren't reliable enough to make it through. This commit moves those to Outerloop so they don't get in the way of our gated check in tests. resolves https://github.com/dotnet/corefx/issues/8916, https://github.com/dotnet/corefx/issues/10873 +11360 area-System.Linq Reintroduce the use of reflection methods in DynamicObject It's using `GetMember` with `OfType` to filter the members in `IsOverridden`. Also noticed that the `Bind*` methods create a closure that's only needed in a conditional branch that typically won't be taken, but that may not be a big deal because these should only be called once per dynamic call site. +11364 area-System.Collections [dev/api] After doing the merge from master to dev/api, 74 System.Collections.Specialized tests fail in netcoreapp1.0 cc: @stephentoub They all fail with the same message, so I'm thinking that fixing them _should_ be easy. I just commented out the run of these tests to unblock the merge from master. These are the errors that I see for netcoreapp1.0 (they run fine in netcoreapp1.1) ``` call CoreRun.exe xunit.console.netcore.exe System.Collections.Specialized.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.0tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonwindowstests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Collections.Specialized.Tests Discovered: System.Collections.Specialized.Tests Starting: System.Collections.Specialized.Tests System.Collections.Specialized.Tests.ListDictionary_CustomComparer_Tests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 0) [FAIL] System.ArgumentException : The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.IDictionary.Tests.cs(59,0): at System.Collections.Specialized.Tests.ListDictionaryTestBase.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(Int32 count) System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NotEnoughSpaceInOffsettedArray_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(68,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass21_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexEqualToArrayCount_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.KeysTests.cs(71,0): at System.Collections.Specialized.Tests.HybridDictionaryKeysTests.<>c__DisplayClass17_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NotEnoughSpaceInOffsettedArray_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(68,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass21_0.b__0() System.Collections.Specialized.Tests.ListDictionary_CustomComparer_Tests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.IDictionary.Tests.cs(64,0): at System.Collections.Specialized.Tests.ListDictionaryTestBase.<>c__DisplayClass11_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NotEnoughSpaceInOffsettedArray_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.ValuesTests.cs(84,0): at System.Collections.Specialized.Tests.HybridDictionaryValuesTests.<>c__DisplayClass18_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NotEnoughSpaceInOffsettedArray_ThrowsArgumentException(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(68,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass21_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NotEnoughSpaceInOffsettedArray_ThrowsArgumentException(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(68,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass21_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexEqualToArrayCount_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.KeysTests.cs(71,0): at System.Collections.Specialized.Tests.HybridDictionaryKeysTests.<>c__DisplayClass17_0.b__0() System.Collections.Specialized.Tests.ListDictionary_CustomComparer_Tests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.IDictionary.Tests.cs(64,0): at System.Collections.Specialized.Tests.ListDictionaryTestBase.<>c__DisplayClass11_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NotEnoughSpaceInOffsettedArray_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(68,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass21_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NotEnoughSpaceInOffsettedArray_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.ValuesTests.cs(84,0): at System.Collections.Specialized.Tests.HybridDictionaryValuesTests.<>c__DisplayClass18_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NotEnoughSpaceInOffsettedArray_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(68,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass21_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NotEnoughSpaceInOffsettedArray_ThrowsArgumentException(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(68,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass21_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NotEnoughSpaceInOffsettedArray_ThrowsArgumentException(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(68,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass21_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 0) [FAIL] System.ArgumentException : The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(99,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(Int32 count) System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NotEnoughSpaceInOffsettedArray_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.KeysTests.cs(84,0): at System.Collections.Specialized.Tests.HybridDictionaryKeysTests.<>c__DisplayClass18_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(104,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass23_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NotEnoughSpaceInOffsettedArray_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.KeysTests.cs(84,0): at System.Collections.Specialized.Tests.HybridDictionaryKeysTests.<>c__DisplayClass18_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(104,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass23_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 0) [FAIL] System.ArgumentException : The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(99,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(Int32 count) System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(104,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass23_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(104,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass23_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 0) [FAIL] System.ArgumentException : Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(80,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(Int32 count) System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 0) [FAIL] System.ArgumentException : The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(99,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(Int32 count) System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(85,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass22_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(104,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass23_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 0) [FAIL] System.ArgumentException : Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.KeysTests.cs(96,0): at System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(Int32 count) System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(85,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass22_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(104,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass23_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.KeysTests.cs(101,0): at System.Collections.Specialized.Tests.HybridDictionaryKeysTests.<>c__DisplayClass19_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 0) [FAIL] System.ArgumentException : The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(99,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(Int32 count) System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 0) [FAIL] System.ArgumentException : Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(80,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(Int32 count) System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(85,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass22_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(104,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass23_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 0) [FAIL] System.ArgumentException : Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.KeysTests.cs(96,0): at System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(Int32 count) System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 0) [FAIL] System.ArgumentException : The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.ValuesTests.cs(56,0): at System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(Int32 count) System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.KeysTests.cs(101,0): at System.Collections.Specialized.Tests.HybridDictionaryKeysTests.<>c__DisplayClass19_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.ValuesTests.cs(61,0): at System.Collections.Specialized.Tests.HybridDictionaryValuesTests.<>c__DisplayClass16_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(104,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass23_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(85,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass22_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 0) [FAIL] System.ArgumentException : The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.ValuesTests.cs(56,0): at System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(Int32 count) System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.ValuesTests.cs(61,0): at System.Collections.Specialized.Tests.HybridDictionaryValuesTests.<>c__DisplayClass16_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 0) [FAIL] System.ArgumentException : The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.KeysTests.cs(56,0): at System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(Int32 count) System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 0) [FAIL] System.ArgumentException : Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(80,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(Int32 count) System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.KeysTests.cs(61,0): at System.Collections.Specialized.Tests.HybridDictionaryKeysTests.<>c__DisplayClass16_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(85,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass22_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 0) [FAIL] System.ArgumentException : The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.KeysTests.cs(56,0): at System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(Int32 count) System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(85,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass22_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 0) [FAIL] System.ArgumentException : Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.ValuesTests.cs(96,0): at System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(Int32 count) System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 0) [FAIL] System.ArgumentException : Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(80,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(Int32 count) System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.ValuesTests.cs(101,0): at System.Collections.Specialized.Tests.HybridDictionaryValuesTests.<>c__DisplayClass19_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(85,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass22_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryKeysTests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.KeysTests.cs(61,0): at System.Collections.Specialized.Tests.HybridDictionaryKeysTests.<>c__DisplayClass16_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 0) [FAIL] System.ArgumentException : Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.ValuesTests.cs(96,0): at System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(Int32 count) System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(85,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass22_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexLargerThanArrayCount_ThrowsAnyArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.ValuesTests.cs(101,0): at System.Collections.Specialized.Tests.HybridDictionaryValuesTests.<>c__DisplayClass19_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexEqualToArrayCount_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(55,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass20_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexEqualToArrayCount_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(55,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass20_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexEqualToArrayCount_ThrowsArgumentException(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(55,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass20_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexEqualToArrayCount_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(55,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass20_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexEqualToArrayCount_ThrowsArgumentException(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(55,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass20_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexEqualToArrayCount_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(55,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass20_0.b__0() System.Collections.Specialized.Tests.ListDictionaryKeysTests.ICollection_NonGeneric_CopyTo_IndexEqualToArrayCount_ThrowsArgumentException(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Keys.Tests.cs(55,0): at System.Collections.Specialized.Tests.ListDictionaryKeysTests.<>c__DisplayClass20_0.b__0() System.Collections.Specialized.Tests.ListDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexEqualToArrayCount_ThrowsArgumentException(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.Values.Tests.cs(55,0): at System.Collections.Specialized.Tests.ListDictionaryValuesTests.<>c__DisplayClass20_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexEqualToArrayCount_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.ValuesTests.cs(71,0): at System.Collections.Specialized.Tests.HybridDictionaryValuesTests.<>c__DisplayClass17_0.b__0() System.Collections.Specialized.Tests.HybridDictionaryValuesTests.ICollection_NonGeneric_CopyTo_IndexEqualToArrayCount_ThrowsArgumentException(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): Insufficient space in the target location to copy the information. Stack Trace: at System.Collections.Specialized.ListDictionary.NodeKeyValueCollection.System.Collections.ICollection.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionary.ValuesTests.cs(71,0): at System.Collections.Specialized.Tests.HybridDictionaryValuesTests.<>c__DisplayClass17_0.b__0() System.Collections.Specialized.Tests.HybridDictionary_CaseSensitive_Tests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 0) [FAIL] System.ArgumentException : The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionaryTests.cs(49,0): at System.Collections.Specialized.Tests.HybridDictionaryTestBase.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(Int32 count) System.Collections.Specialized.Tests.HybridDictionary_CaseSensitive_Tests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionaryTests.cs(54,0): at System.Collections.Specialized.Tests.HybridDictionaryTestBase.<>c__DisplayClass10_0.b__0() System.Collections.Specialized.Tests.HybridDictionary_CaseInsensitive_Tests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 0) [FAIL] System.ArgumentException : The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionaryTests.cs(49,0): at System.Collections.Specialized.Tests.HybridDictionaryTestBase.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(Int32 count) System.Collections.Specialized.Tests.HybridDictionary_CaseInsensitive_Tests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\HybridDictionary\HybridDictionaryTests.cs(54,0): at System.Collections.Specialized.Tests.HybridDictionaryTestBase.<>c__DisplayClass10_0.b__0() System.Collections.Specialized.Tests.ListDictionary_NoComparer_Tests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 0) [FAIL] System.ArgumentException : The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.IDictionary.Tests.cs(59,0): at System.Collections.Specialized.Tests.ListDictionaryTestBase.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(Int32 count) System.Collections.Specialized.Tests.ListDictionary_NoComparer_Tests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 1) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.IDictionary.Tests.cs(64,0): at System.Collections.Specialized.Tests.ListDictionaryTestBase.<>c__DisplayClass11_0.b__0() System.Collections.Specialized.Tests.ListDictionary_NoComparer_Tests.ICollection_NonGeneric_CopyTo_NonZeroLowerBound(count: 75) [FAIL] Assert.Throws() Failure Expected: typeof(System.IndexOutOfRangeException) Actual: typeof(System.ArgumentException): The lower bound of target array must be zero. Parameter name: array Stack Trace: at System.Collections.Specialized.ListDictionary.CopyTo(Array array, Int32 index) F:\git\corefx\src\System.Collections.Specialized\tests\ListDictionary\ListDictionary.IDictionary.Tests.cs(64,0): at System.Collections.Specialized.Tests.ListDictionaryTestBase.<>c__DisplayClass11_0.b__0() Finished: System.Collections.Specialized.Tests === TEST EXECUTION SUMMARY === System.Collections.Specialized.Tests Total: 2124, Errors: 0, Failed: 74, Skipped: 0, Time: 0.445s Finished running tests. End time=16:41:10.16, Exit code = 74 ``` +11367 area-Serialization XmlSerializer to Support Xml_ArrayOfXmlNodeProperty in ReflectionOnly Mode ``` XmlSerializerTests.Xml_ArrayOfXmlNodeProperty [FAIL] System.InvalidOperationException : There is an error in XML document (2, 139). ---- System.NotImplementedException : text.Mapping is SpecialMapping ``` +11368 area-System.IO 'System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateNew.TooLargeCapacity_Unix' Test Failured in ARM/Linux I got the following test failure report while running unittests: ``` System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateNew.TooLargeCapacity_Unix [FAIL] Assert.Throws() Failure Expected: typeof(System.IO.IOException) Actual: typeof(System.ArgumentOutOfRangeException): The capacity cannot be greater than the size of the system's logical address space. Parameter name: capacity ``` It seems that the test is appropriate only for 64bit architecture: ``` Assert.Throws(() => { using (MemoryMappedFile mmf = MemoryMappedFile.CreateNew(null, long.MaxValue)) { mmf.CreateViewAccessor().Dispose(); } }); ``` +11371 area-System.Runtime Implement AssemblyLoadContext.GetAllAssemblies +11373 area-System.IO FileStream needs overrides of Begin/EndXx @JeremyKuhne, I just noticed that #10697 didn't actually add Begin/End overrides to FileStream... it added them to FileStreamBase. FileStreamBase isn't the base type of FileStream, but rather the base for the inner per-platform streams it wraps. That means that if someone calls FileStream.Begin/EndXx now, they're getting the base Stream's implementation, not FileStream's, and that's going to do the wrong thing in the case where the FileStream was constructed in async mode. +11374 area-Meta Update (delete?) rtm.md "The [rtm.md](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/rtm.md) document explains what is ""Road to RTM of .NET Core"". It has been last updated in January. .Net Core has been in RTM for some time now, but [some](http://stackoverflow.com/a/39283043/41071)\* are interpreting that documented to mean that it's not. I think the document should be either updated (with what?) or deleted altogether. cc: @terrajobst --- \* That question is now deleted. The first revision of the answer I linked to (from 2 September) said: > It's not yet ""stable"". Microsoft uses the term ""RTM"" to mean ""release quality"". RTM stands for ""release to manufacturing"". > > Here, as of this writing, they specify their roadmap to reach that status: > > https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/rtm.md " +11379 area-System.Net Fix CookieContainer dead code masquerading as a race condition A coverity scan suggested that _domainTable might be unsafe to be locked on, as it's replaced. But closer inspection shows that it's only re-assigned to in code that's actually dead, as the condition guarding the if block containing the assignment will never be true. This commit just replaces the dead code with some asserts and makes the lockable field readonly so as to highlight that it won't change. cc: @davidsh, @cipop, @ericeil +11381 area-System.Globalization Some Globalization Tests failing on Unix based platforms ``` ./corerun xunit.console.netcore.exe System.Globalization.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.0tests -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests 10:41:53 xUnit.net console test runner (64-bit .NET Core) 10:41:53 Copyright (C) 2014 Outercurve Foundation. 10:41:53 10:41:53 Discovering: System.Globalization.Tests 10:41:54 Discovered: System.Globalization.Tests 10:41:54 Starting: System.Globalization.Tests 10:41:55 RemoteExecutorConsoleApp -> /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/bin/Unix.AnyCPU.Debug/RemoteExecutorConsoleApp/RemoteExecutorConsoleApp.exe 10:41:56 System.Globalization.Performance.Tests -> /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/bin/AnyOS.AnyCPU.Debug/System.Globalization.Performance.Tests/System.Globalization.Performance.Tests.dll 10:41:56 Exception from RemoteExecutorConsoleApp(System.Globalization.Tests, Version=4.0.12.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb, System.Globalization.Tests.CurrentCultureTests+<>c, b__2_0): 10:41:56 Assembly: System.Globalization.Tests, Version=4.0.12.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb 10:41:56 Type: System.Globalization.Tests.CurrentCultureTests+<>c 10:41:56 Method: Int32 b__2_0() 10:41:56 Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Xunit.Sdk.EqualException: Assert.Equal() Failure 10:41:56 ↓ (pos 5) 10:41:56 Expected: de-DE_phoneb 10:41:56 Actual: de-DE@collation=phoneb 10:41:56 ↑ (pos 5) 10:41:56 at Xunit.Assert.Equal(String expected, String actual, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences) 10:41:56 at System.Globalization.Tests.CurrentCultureTests.<>c.b__2_0() 10:41:56 --- End of inner exception stack trace --- 10:41:56 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 10:41:56 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 10:41:56 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 10:41:56 at RemoteExecutorConsoleApp.Program.Main(String[] args) 10:41:56 System.Globalization.Tests.CurrentCultureTests.CurrentUICulture [FAIL] 10:41:56 Assert.Equal() Failure 10:41:56 Expected: 42 10:41:56 Actual: 254 10:41:56 Stack Trace: 10:41:57 Using /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/packages/ as folder for resolving package dependencies. 10:41:57 Executing in /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/bin/tests/AnyOS.AnyCPU.Debug/System.Globalization.Performance.Tests/netcoreapp1.0 10:41:57 Hard linking dependent files... 10:41:57 Exception from RemoteExecutorConsoleApp(System.Globalization.Tests, Version=4.0.12.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb, System.Globalization.Tests.CurrentCultureTests+<>c, b__0_0): 10:41:57 Assembly: System.Globalization.Tests, Version=4.0.12.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb 10:41:57 Type: System.Globalization.Tests.CurrentCultureTests+<>c 10:41:57 Method: Int32 b__0_0() 10:41:57 Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Xunit.Sdk.EqualException: Assert.Equal() Failure 10:41:57 ↓ (pos 5) 10:41:57 Expected: de-DE_phoneb 10:41:57 Actual: de-DE@collation=phoneb 10:41:57 ↑ (pos 5) 10:41:57 at Xunit.Assert.Equal(String expected, String actual, Boolean ignoreCase, Boolean ignoreLineEndingDifferences, Boolean ignoreWhiteSpaceDifferences) 10:41:57 at System.Globalization.Tests.CurrentCultureTests.<>c.b__0_0() 10:41:57 --- End of inner exception stack trace --- 10:41:57 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 10:41:57 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 10:41:57 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 10:41:57 at RemoteExecutorConsoleApp.Program.Main(String[] args) 10:41:57 at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() 10:41:57 at System.Globalization.Tests.CurrentCultureTests.CurrentUICulture() 10:41:57 System.Globalization.Tests.CurrentCultureTests.CurrentCulture [FAIL] 10:41:57 Assert.Equal() Failure 10:41:57 Expected: 42 10:41:57 Actual: 254 10:41:57 Stack Trace: 10:41:57 at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() 10:41:57 at System.Globalization.Tests.CurrentCultureTests.CurrentCulture() 10:41:57 Finished linking needed files, moving to running tests. 10:41:57 Running tests... Start time: 17:42:41 10:41:57 Commands: 10:41:57 ./corerun xunit.console.netcore.exe System.Globalization.Performance.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.0tests -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests 10:41:57 xUnit.net console test runner (64-bit .NET Core) 10:41:57 Copyright (C) 2014 Outercurve Foundation. 10:41:57 ``` http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_debug_prtest/1989/consoleFull#-43753631679fe3b83-f408-404c-b9e7-9207d232e5fc +11383 area-System.Net Fix WinHttpHandler for Basic auth with default credentials "We were getting an error ""The parameter is incorrect"" from WinHTTP when we tried to invoke default credential handling even for cases where the server doesn't use Negotiate or NTLM. Negotiate and NTLM are the only schemes that can use default credentials since they need to be transmitted via a challenge-response mechanism. The fix here is to only set WinHTTP default credentials handling for Negotiate or NTLM schemes. Otherwise, it should behave as-if there were no credentials set. Fixes #11266 " +11388 area-System.Threading System.Threading.Tasks.Dataflow more targets needed Currently the dataflow nuget package only targets netstandard1.1. This causes downstream challenges for those still targeting net46 for example because now the only option is to download the world which may or may not even succeed after doing so. It would be preferable if it was similar to several of the other projects and target net452, etc. and allow for typical framework references to be used when not running on the coreclr. +11390 area-System.Runtime StringBuilder should have all functionality of String `StringBuilder` is, essentially, just a mutable version of `String`. Consequently, it would make sense for it to have all the functionality that `String` has, with in-place mutating versions where appropriate. Right now it has a subset that doesn't seem particularly coherent - e.g. there's indexing, but no `Substring`. Some other missing members include `IndexOf`, `Contains`, `Find`, `Pad...`, `ToLower` and `ToUpper` etc. Basically, it should be possible to do anything you could do with a `String` without actually creating a string (to avoid unnecessary copies). There is also a matter of consistency - the same pattern with an immutable value class and a mutable builder version is also repeated with `Uri` and `UriBuilder`, but there the builder does actually reproduce the API surface of the immutable class much closer. +11391 area-System.Runtime A generic API for string-like objects ".NET is missing a convenient way to define a method that can take something ""string-like"" with minimal overhead. Most existing APIs just take `String`, meaning that callers need to call `ToString`, often creating full copies that are then used only to look at a few characters at the beginning. Some types that are commonly affected by this are `StringBuilder` and `Uri`. This could be solved by adopting a common interface like `IString` for all these types, which could offer the same operations that `String` does; and implementing that interface on all standard types that have string as a public representation of any valid value. The closest existing equivalent is Java `CharSequence`. " +11392 area-System.Net HttpClient performance issue compare to the full framework "I'm trying to wrapper a backend REST API to Frontend. The backend API RPS can archive about 50K (using AB), I use the HttpClient to invoke the API , get the result and return to then client. I can only get 1k RPS. (AB is on the same frontend machine ) Code is very simple ``` [Route(""api/[controller]"")] public class ValuesController : Controller { private static HttpClient client;// = new HttpClient(); static ValuesController() { client = new HttpClient(new HttpClientHandler { UseProxy = false, UseCookies= false, UseDefaultCredentials=false }); client.DefaultRequestHeaders.Add(""Connection"", ""Keep-Alive""); client.BaseAddress = new Uri(""http://backendserver/""); } [HttpGet] public async Task Wrapper() { var response = await client.GetAsync(""API""); var result = await response.Content.ReadAsStringAsync(); response.Dispose(); return result; } [HttpGet] public string Baseline() { return ""value""; } ``` | Test | RPS Result | | --- | --- | | Direct to Backend API | 50K | | Baseline (.net core) | 5K | | Baseline (.net full framework) | 5K | | Wrapper (.net core ) | 1K | | Wrapper (.net full framework) | 2.3K | " +11399 area-System.Linq Expression has a public constructor Unlike the .NET Framework, the constructor is public. I'm unclear why it was made public, and I can only find references from within the `System.Linq.Expressions` assembly. Should it be made `internal` again? Note that the constructor does not perform argument validation; this is assumed to be done by the factory that calls it. As such, if one would be able to call this constructor, one could construct an expression that does not type check or has `null` components. +11400 area-System.Linq Expression could have a compact subtype "In particular, when `TailCall` is set to `false` and `Name` is set to `null` (which are both common), we don't need the fields for them. Specialized subtypes are commonly used across the code base. AFAIK, the `Name` and `TailCall` options were added in the 4.0 wave, and the existing `LambdaExpression` type was maybe not considered for this type of specialization despite the addition being made to it. Some other cases could be considered but need to be weighed: - No custom `_delegateType` is set - Common, given the language binding to `Expression` - The `Type` property would have to perform `typeof(TDelegate)` upon each access - An empty `Parameters` collection - Sometimes used in `Expression.Lambda>(e).Compile()()` to eval an expression - We'd only save the reference; a singleton instance of `ReadOnlyCollection` is already used I did a quick analysis for a workload here in Bing, where we keep a ton of user-supplied lambda expressions alive (for a variety of reasons, we can't just compile them and throw away the expression as well; we need them around for persistence, runtime analysis, and more). These also have a bunch of inner lambdas (they're effectively Rx/LINQ queries), and none of them have a non-default `Name`, `TailCall`, and `Type`, so savings would pay off. In terms of frequency of parameter count: - 1 is the leader by far (due to the large number of LINQ-style methods a la `Where` and `Select`) - 2 comes next (mostly due to `SelectMany`'s `resultSelector` argument) - 0 comes next but these tend to be short-lived for us (due to use for expression eval) - 3 and above shows a long tail with blips here and there (due to us hoisting constants into parameters to reuse ""templates"") When used with LINQ, the first two cases are extremely common: ``` csharp var res = from m in typeof(Queryable).GetMethods() from p in m.GetParameters() let t = p.ParameterType where t.IsGenericType let d = t.GetGenericTypeDefinition() where d == typeof(Expression<>) let f = t.GetGenericArguments()[0] let i = f.GetMethod(""Invoke"") group p by i.GetParameters().Length into g orderby g.Count() descending select new { g.Key, Count = g.Count() }; ``` yields ``` { Key = 1, Count = 67 } { Key = 2, Count = 20 } ``` Across `mscorlib`, `System`, and `System.Core`, sorting occurrences of delegate-typed parameters in methods by parameter count yields: ``` { Key = 1, Count = 1184 } { Key = 2, Count = 807 } { Key = 0, Count = 62 } { Key = 3, Count = 26 } { Key = 4, Count = 14 } { Key = 5, Count = 6 } ``` If these methods are used within an expression tree using lambda arguments, this would directly lead to the allocation of these expression nodes. From this, it seems that specialized subtypes based on the number of parameters (likely not beyond a count of 2) are worth considering as well, much like `BlockExpression` has specializations based on the number of expressions, with a lazy allocation pattern for the `ReadOnlyCollection` when `Parameters` is accessed. However, it's rather common for expression visitors to step on this property e.g. for scope tracking purposes. Without a publicly exposed `IParameterProvider` analog to `IArgumentProvider`, it'd likely be of limited use though `LambdaCompiler`, `VariableBinder`, `StackSpiller`, `LightCompiler`, and `ExpressionQuoter` could avoid accessing the property directly, thus preventing growth of these nodes when fed into the compiler. Both the factories and the stack spiller call the constructor of `Expression` today, so these would have to use a `Make` and `Update`/`Rewrite` pattern to construct the specialized subtype. " +11401 area-System.Linq Avoid some allocations in LambdaCompiler Mostly minor things that caught my attention while working in this code, e.g. the use of `Map` and `AddFirst` helpers for allocating arrays and copying them when it can be avoided. +11402 area-System.Linq Removing some unncessary allocations in LambdaCompiler This addresses issue #11401. +11406 area-System.Diagnostics System.Diagnostics.StackTrace: Use loaded PE image in TryGetPEReader if possible "> During my recent SOS portable PDB work, I found that there are times when the ""loadedPeAddress"" actually points to a file based layout. This is when the PE is in-memory loaded from a stream (or byte[] but that isn't exposed in .NET Core anymore). Normally there is a in-memory PDB too, but there doesn't have to be. The loader is kind of a black box and the layout can depend on the platform (Windows may be different that Linux) and how the PE is loaded. So for the SOS PDB support I had to plumb through a isFileLayout flag with the loadedPeAddress (which is the opposite sense of isLoadedImage). > > There is some work that still needs to be done on the coreclr and mscorlib StackTraceHelper side to plumb this same flag though to this code. I just haven't had a chance to do this yet. " +11407 area-System.Linq Using TypeCode for ldind and stind emit This is part of issue #11328 on re-introducing `Type.GetTypeCode()`. However, it doesn't seem that member is already exposed for use on our side (need to confirm whether that's the plan). In the meantime, this PR simplified the code to emit `Ldind` and `Stind` instructions by using a `switch` over `TypeCode` values. It also adds a bunch of tests; only the `Int32` case was covered before. +11409 area-System.Linq Fill some code coverage gaps in LambdaCompiler There are some notable gaps for non-trivial pieces of code. A few are listed below: - `EmitMethodAndAlso` and `EmitMethodOrElse` - `EmitBranchNot`, `EmitBranchLogical`, `EmitBranchAnd`, `EmitBranchOr` - Some branching with statically determined `null` values - Emit for hashtable switches and other code paths around emit for `Switch` expressions - Constrained virtual calls - Emit for `Dynamic` expressions - Emit for `Goto` expressions - Emit for `Extension` expressions (doesn't seem like reachable code; `StackSpiller` will expand these) - Various cases with nullables and value types +11410 area-System.Linq Conditional compilation of MethodBuilder support in LambdaCompiler This addresses issue #11408 and conditionally compiles the code that supported `CompileToMethod` using an `#if`. All the types to support this method seem to be present, and most of the code is still there, so I decided to keep the code and include it conditionally. We can also remove it if we decide this functionality is deprecated altogether, though in my opinion and from my experience it has value in some service scenarios where computational expressions are constructed at runtime and need to be persisted in order to be reloaded at a later time (*). Also removing some other things that were found to be dead code, and reducing some `using` directives. (*) Some restrictions are bothersome though, in particular the restriction to emit to `static` methods and the lack of support for `Quote` nodes (though we worked around that by translating `Quote` nodes into a series of `Call` nodes to call the expression factory methods at runtime, effectively quoting the data as code). +11414 area-System.Linq ReadOnlyCollectionBuilder included in System.Linq.Expressions but not used "Shows up as dead code when analyzing code coverage as part of #11409. It's included from the `Common` folder and shared with `System.Dynamic.Runtime`. The only reference occurs in `ToReadOnly` in `CollectionExtensions` for a type check. If this type is not shared in / referenced from a single assembly and two copies exist, the type check will never pass if the object is passed across assembly boundaries, thus breaking the no-cloning optimization for the collection. This is done in e.g. `ReferenceArgAssign` in `System.Dynamic.Runtime`: ``` csharp private static Expression ReferenceArgAssign(Expression callArgs, Expression[] args) { ReadOnlyCollectionBuilder block = null; // omitted a bunch of code that will assign `block` if (block != null) return Expression.Block(block); else return Expression.Empty(); } ``` The `Block` factory method calls into `ToReadOnly` but the `as` check for `ReadOnlyCollectionBuilder` won't pass due to the copy of the type existing in the two assemblies. Passing the result of calling `ToReadOnly` to the factory method here won't help either, because the same cloning of code applies to `TrueReadOnlyCollection`, which is also checked for in `ToReadOnly` to avoid copying of the collection. It seems that the right thing to do here is to keep one copy of the code in one assembly. Given that `System.Dynamic.Runtime` has a strong (by design) dependency on `System.Linq.Expressions`, the latter would be the best place to store these types. We'd need to have access to these types across assembly boundaries and likely don't want to make them public (though they may provide value to others, *) so `InternalsVisibleTo` is lurking around the corner. There's very little precedent for this on the `corefx` repo though, with the exception of some stuff in `System.Reflection` assemblies (besides for testing purposes). If we decide that `InternalsVisibleTo` is appropriate here (@stephentoub, @VSadov), we can also de-duplicate the code for `ExpressionUtils` etc. (*) The types that need to be accessed across assembly boundaries are: - `System.Runtime.CompilerServices.ReadOnlyCollectionBuilder` which implements `IList` - `System.Dynamic.Utils.CollectionExtensions` for its `ToReadOnly` extension method Note that we _shouldn't_ expose `TrueReadOnlyCollection` publicly because only `ToReadOnly` should be able to instantiate it and type check for it (in order to guarantee the ""True"" part). Luckily, most occurrences of this type occur in`System.Linq.Expressions`, with the exception of a shared `ExpressionUtils.ValidateArgumentTypes` method which is used across boundaries (but the chance of hitting the code path that instantiates the collection here is extremely unlikely; it requires a delegate whose `Invoke` method has an `Expression<>` type that requires quoting, causing a rewrite of the argument expression to introduce a `Quote` around it). Still, it'd likely be better not to expose these types, and consider `InternalsVisibleTo` or keep the code duplication (and the adverse effects such as unnecessary cloning of collections). " +11417 area-System.Linq Make complex Expression.New overload behave the same as the simple overload Fixes #10954 /cc @bartdesmet @VSAdov @stephentoub +11418 area-System.Net Fix minor precedence error in SafeCloseSocket "The expression ``` C# ""somestring"" + obj == null ? ""null"" : Method(obj) ``` involves operator precedence that leads to: ``` C# (""somestring"" + obj) == null ? ""null"" : Method(obj) ``` rather than the intended: ``` C# ""somestring"" + (obj == null ? ""null"" : Method(obj)) ``` Found by a coverity scan cc: @davidsh, @cipop " +11422 area-System.Linq Fixing unbalanced parentheses in ToString for Post*Assign nodes This fixes issue #11421 which was found during code coverage improvement work. +11424 area-System.Linq Fixing compilation of Coalesce nodes with implicit numeric conversions "This fixes issues #11411 and #11412 for the compilation / interpretation of `Coalesce` nodes with implicit numeric conversions. There are a few issues in this area, as discussed below. First, handling of the `decimal` type was broken in both the compiler and the interpreter. All misery comes from the promise made by `TypeUtils.IsImplicitNumericConversion` that `decimal` is a valid target for an implicit numeric conversion (which is in agreement with C# specification section 6.1.2), while the back-ends of the expression compilers do not expect this type to come up. This holds true for the compiler's `ILGen.EmitNumericConversion` method (which expects only conversions involving built-in opcodes rather than a call to an `op_Implicit` method on `System.Decimal`) and for the interpreter's `NumericConvertInstruction` types that don't check for `TypeCode.Decimal` as a valid target type. Second, `TypeUtils.ImplicitNumericConversion` contains a quirk for conversion from `UInt32` to `Int64` (which is valid according to C# specification section 6.1.2). This entry is omitted and an entry for the (unreachable) identity conversion to `UInt32` is in its spot. This causes a `Coalesce` on a `uint?` with a right-hand side of type `long` to fail. Note that `TypeUtils.ImplicitNumericConversion` is only used for `Coalesce` expressions. For things like `Convert` expressions involving e.g. `decimal`, the implicit conversion method will be populated on the node. `Coalesce` doesn't automatically build a lambda expression for its `Conversion` property to represent such a conversion. It'd be a valid option to construct such a lambda during compilation (but no earlier - i.e. in factories or in a `Reduce` call - to avoid breaking changes), but code emitted for a `Coalesce` node with a conversion is suboptimal and involves calling the compiled lambda's delegate, so it makes more sense to fix the emitted IL and interpreter instructions instead. Third, the `LightCompiler.CompileCoalesceBinaryExpression` method omits logic for the implicit numeric conversion case altogether, so any `Coalesce` hitting this code path caused an `InvalidCastException` in the generated `Thunk` method. Note that the third case would correspond to a verification error in case IL instructions were emitted and compiled. We lack a verifier in the interpreter, so errors with invalid (box) types tend to come out as runtime exceptions. We could look separately into a debug-mode switch that adds a ""verification instruction"" after the instructions emitted for a non-void expression, effectively checking whether the object on top of the interpreted frame's evaluation stack has a type that's assignment compatible with the static type of the compiled expression node. This may catch some issues earlier. " +11427 area-System.Linq Fixing some oddities in ExpressionStringBuilder This addresses the oddities reported in #11426. A case could be made for not changing the typo or the spacing for `Goto` and `Label` due to backwards compatibility reasons. +11428 area-System.Linq Add Add tests for invalid inputs for Expression.AndAlso Contributes to #1198 /cc @stephentoub @VSadov @bartdesmet +11429 area-Infrastructure Migrate from Portable Class Libraries to .NetStandard "I am the author of the LightInject DI framework and I have a question regarding the .Net Platform Standard and how this is supposed to work with regards to different runtimes. LightInject is basically cross compiled into 4 different binaries. - Full Net 45 - Full Net 46 - .NetCore (.NetStandard1.3) - Portable Class Library, Profile 111 LightInject uses Reflection.Emit on all platforms except for in the PCL version where we use expression tree's to dynamically build code which works great. I am fully aware of the restrictions that applies to AOT (Ahead of time) platforms and that Reflection.Emit is a ""no-go"" on platforms such as iOS and so on. What I don't understand is how the .Net Platform Standard manages these platform/runtime specific restrictions. Taken from the Observations section ""If a library targets .NET Platform Standard version 1.3, it can only run on .NET Framework 4.6 or later, .NET Core, Universal Windows Platform 10 (UWP), and Mono/Xamarin platforms."" Okay, so as long as I compile for .NetStandard 1.3 it will be able to run on UWP? The thing is that you can't since there is no support for Reflection.Emit on UWP although having my assembly compiled for .NetStandard 1.3 suggests that it should work. What piece of the puzzle am I missing here? " +11437 area-System.Data SNIMarsHandle.HandleReceiveError passes null to ReadAsyncCallback as packet ReadAsyncCallback then dereferences that null value. Found by a coverity scan +11438 area-System.Data Fix several minor issues in SqlClient Found by a coverity scan cc: @saurabh500 @saurabh500, if you're interested in taking this PR, can you run your suite of tests when you get a chance? +11440 area-System.IO warnings in zlib I'm building on Windows with CL 19.00.24213.1 in branch dev/api (although surely the same in master) ``` c:\git\corefx.dan\src\native\windows\clrcompression\zlib-intel\match.c(48): warning C4018: '>=': signed/unsigned mismatch [C:\git\corefx.dan\bin\obj\Windows_NT.x64.Debug\Native\clrcompression\clrcompression.vcxproj] c:\git\corefx.dan\src\native\windows\clrcompression\zlib-intel\match.c(167): warning C4018: '>=': signed/unsigned mismatch [C:\git\corefx.dan\bin\obj\Windows_NT.x64.Debug\Native\clrcompression\clrcompression.vcxproj] c:\git\corefx.dan\src\native\windows\clrcompression\zlib-intel\match.c(312): warning C4018: '<=': signed/unsigned mismatch [C:\git\corefx.dan\bin\obj\Windows_NT.x64.Debug\Native\clrcompression\clrcompression.vcxproj] c:\git\corefx.dan\src\native\windows\clrcompression\zlib-intel\crc_folding.c(287): warning C4311: 'type cast': pointer truncation from 'unsigned char *' to 'unsigned long' [C:\git\corefx.dan\bin\obj\Windows_NT.x64.Debug\Native\clrcompression\clrcompression.vcxproj] c:\git\corefx.dan\src\native\windows\clrcompression\zlib-intel\crc_folding.c(420): warning C4101: 'x_tmp3': unreferenced local variable [C:\git\corefx.dan\bin\obj\Windows_NT.x64.Debug\Native\clrcompression\clrcompression.vcxproj] c:\git\corefx.dan\src\native\windows\clrcompression\zlib-intel\match.c(48): warning C4018: '>=': signed/unsigned mismatch (compiling source file C:\git\corefx.dan\src\Native\Windows\clrcompression\zlib-intel\deflate.c) [C:\git\corefx.dan\bin\obj\Windows_NT.x64.Debug\Native\clrcompression\clrcompression.vcxproj] c:\git\corefx.dan\src\native\windows\clrcompression\zlib-intel\match.c(167): warning C4018: '>=': signed/unsigned mismatch (compiling source file C:\git\corefx.dan\src\Native\Windows\clrcompression\zlib-intel\deflate.c) [C:\git\corefx.dan\bin\obj\Windows_NT.x64.Debug\Native\clrcompression\clrcompression.vcxproj] c:\git\corefx.dan\src\native\windows\clrcompression\zlib-intel\match.c(312): warning C4018: '<=': signed/unsigned mismatch (compiling source file C:\git\corefx.dan\src\Native\Windows\clrcompression\zlib-intel\deflate.c) [C:\git\corefx.dan\bin\obj\Windows_NT.x64.Debug\Native\clrcompression\clrcompression.vcxproj] ``` +11441 area-System.Collections ConcurrentQueue has Math.Min non-inlines `[FAILED: argument has side effect] Math:Min(int,int):int` Looks to be because one of the arguments is volatile (the other is a const). Could be solved by taking a local copy in `Segment:Low` and `Segment:High` before passing to `Math.Min`? ``` Inlines into 060000E7 ConcurrentQueue`1:get_IsEmpty():bool:this [1 IL=0010 TR=000007 06000151] [below ALWAYS_INLINE size] Segment:get_IsEmpty():bool:this [2 IL=0001 TR=000076 06000159] [below ALWAYS_INLINE size] Segment:get_Low():int:this [0 IL=0010 TR=000095 06003842] [FAILED: argument has side effect] Math:Min(int,int):int [3 IL=0007 TR=000080 0600015A] [below ALWAYS_INLINE size] Segment:get_High():int:this [0 IL=0010 TR=000105 06003842] [FAILED: argument has side effect] Math:Min(int,int):int [4 IL=0020 TR=000016 06000150] [below ALWAYS_INLINE size] Segment:get_Next():ref:this [5 IL=0040 TR=000042 06000150] [below ALWAYS_INLINE size] Segment:get_Next():ref:this [0 IL=0051 TR=000052 06002394] [FAILED: noinline per IL/cached result] SpinWait:SpinOnce():this [6 IL=0066 TR=000033 06000151] [below ALWAYS_INLINE size] Segment:get_IsEmpty():bool:this [7 IL=0001 TR=000119 06000159] [below ALWAYS_INLINE size] Segment:get_Low():int:this [0 IL=0010 TR=000138 06003842] [FAILED: argument has side effect] Math:Min(int,int):int [8 IL=0007 TR=000123 0600015A] [below ALWAYS_INLINE size] Segment:get_High():int:this [0 IL=0010 TR=000148 06003842] [FAILED: argument has side effect] Math:Min(int,int):int Budget: initialTime=285, finalTime=397, initialBudget=2850, currentBudget=2850 Budget: initialSize=1841, finalSize=1841 ``` ``` Inlines into 06000156 Segment:TryRemove(byref):bool:this [1 IL=0009 TR=000009 06000159] [below ALWAYS_INLINE size] Segment:get_Low():int:this [0 IL=0010 TR=000174 06003842] [FAILED: argument has side effect] Math:Min(int,int):int [2 IL=0016 TR=000016 0600015A] [below ALWAYS_INLINE size] Segment:get_High():int:this [0 IL=0010 TR=000184 06003842] [FAILED: argument has side effect] Math:Min(int,int):int [0 IL=0060 TR=000082 06002394] [FAILED: noinline per IL/cached result] SpinWait:SpinOnce():this [0 IL=0169 TR=000130 06002394] [FAILED: noinline per IL/cached result] SpinWait:SpinOnce():this [0 IL=0211 TR=000044 06002394] [FAILED: noinline per IL/cached result] SpinWait:SpinOnce():this [3 IL=0217 TR=000047 06000159] [below ALWAYS_INLINE size] Segment:get_Low():int:this [0 IL=0010 TR=000194 06003842] [FAILED: argument has side effect] Math:Min(int,int):int [4 IL=0224 TR=000054 0600015A] [below ALWAYS_INLINE size] Segment:get_High():int:this [0 IL=0010 TR=000204 06003842] [FAILED: argument has side effect] Math:Min(int,int):int Budget: initialTime=798, finalTime=870, initialBudget=7980, currentBudget=7980 Budget: initialSize=5740, finalSize=5740 ``` Related https://github.com/dotnet/coreclr/issues/7054 /cc @stephentoub +11446 area-System.Linq Adding tests for ExpressionStringBuilder This addresses issue #11444. It excludes tests for `Label`, `Goto`, and the unary assignment nodes, which were also subject to some code fixes in https://github.com/dotnet/corefx/issues/11426 and https://github.com/dotnet/corefx/issues/11421, so tests are included there. This PR doesn't make any changes to `ExpressionStringBuilder` and purely consists of tests. +11447 area-System.Linq Some perf improvements for ExpressionStringBuilder This addresses issue #11445. +11450 area-System.Memory Proposal: Adding a way to convert Span to ReadOnlySpan Pardon me if this is implemented and I simply overlooked it, but it appears to me there is no API yet to convert from a `Span` to a `ReadOnlySpan` in either coreclr/corefxlab, which means that people who have one of the former and want to pass it to a function accepting the latter will have to create a copy. We should add an API (either an instance method `AsReadOnly`, or an implicit operator) for converting a Span to a ReadOnlySpan so people don't have to copy any data. cc @jkotas, @KrzysztofCwalina +11451 area-System.Linq Select, Where, etc. should return a cached result if the input enumerable is empty We may want to consider returning a cached result, like `Array.Empty`, if the input enumerable is empty for certain LINQ methods. This would apply to any method that is guaranteed to have a 1:1 mapping with the input (like `Select`) or anything that needs to be smaller than the input (`Distinct`, `Where`). +11452 area-System.Net HttpClient throws WinHttpException if the WWW-Authenticate header contains an unknown scheme "If a webserver returns a `401` status code and a `WWW-Authenticate` header with an unknown scheme, an exception is thrown. For example this code: ``` csharp var handler = new HttpClientHandler() { Credentials = new NetworkCredential(""foo"",""bar"") }; using (var client = new HttpClient(handler)) client.GetAsync(""http://greenbytes.de/tech/tc/httpauth/unknown.asis"") .GetAwaiter().GetResult(); ``` returns a header `WWW-Authenticate: Newauth realm=""newauth""` which causes the following exception: ``` System.Net.Http.WinHttpException: The operation identifier is not valid at System.Net.Http.WinHttpException.ThrowExceptionUsingLastError() at System.Net.Http.WinHttpAuthHelper.CheckResponseForAuthentication(WinHttpRequestState state, UInt32& proxyAuthScheme, UInt32& serverAuthScheme) at System.Net.Http.WinHttpHandler.d__105.MoveNext() ``` This exception is thrown before the `ICredential.GetCredential(Uri, string)` method is called, so the end user cannot specify their own credentials for that scheme. " +11454 area-System.Linq Reduction of assignment expressions yields suboptimal code "Consider the following piece of code: ``` csharp var i = Expression.Parameter(typeof(int)); var e = Expression.Block(typeof(void), new[] { i }, Expression.PostIncrementAssign(i)); var f = Expression.Lambda(e).Compile(); ``` When compiled, the resulting IL looks like: ``` ldloc.0 stloc.1 ldloc.1 ldc.i4.1 add stloc.0 ret ``` The storing into and loading from a temporary is not needed here, because the expression's result is thrown away. Although `LambdaCompiler` has tracking of `void` types during expression compilation (cf. `EmitExpressionAsVoid`) its effectiveness is restricted to plain old `Assign` nodes because other forms of assignment don't reach this far. In fact, `StackSpiller` performs reduction of reducible nodes including the unary and binary (compound) assignment forms. For the case shown above, the `PostIncrementAssign` expression gets reduced to: ``` .Block(System.Int32 $var1) { $var1 = $var2; $var2 = .Increment($var1); $var1 } ``` Note that the load from the temporary in `$var1` does not show in the generated IL. This is because `EmitExpressionAsVoid` can do a bit of damage control when it emits the block's last expression as void and notices it's a side-effect free load from a `Parameter` node. If it wouldn't do that, we'd end up with the even more convoluted code of: ``` stloc.1 ldloc.1 ldc.i4.1 add stloc.0 ldloc.1 // damage has been controlled here pop // by EmitExpressionAsVoid ret ``` Compound assignments and unary prefix assignments don't suffer as much from this because they don't need to allocate a local to hold the initial value prior to executing the functional operation. However, the unary postfix assignments are often used in loop constructs (for better or worse), and we can't optimize that here as most ""offline"" compilers would do. It begs the question whether this is really a job for an expression rewriter that runs prior to compilation, the lambda compiler itself, or an optimizing backend (a la `/o+` in C#). With the first option, an optimizer would perform similar `void` site analysis and when it encounters a postfix unary assignment turn it into the equivalent prefix unary assignment. The second option involves keeping our compiler from emitting suboptimal code but it'd need to avoid eager reduction for this information to trickle down to the right place. For the last option of an optimizing backend (which could take away `stloc`, `ldloc` pairs to the same variable provided the `ldloc` instruction is not a branch target; the C# compiler does this as well) we don't have a spot in the compilation chain today. Note there are some other suboptimal patterns generated by the reduction of assignment operations. In particular, `ReduceIndex` methods store all indexing operands into temporaries, even if they're constants such as `Constant` or `Default`. The constant case is not unlikely to occur when dealing with collection elements. Unfortunately, the tree rewrite taking place here is publicly exposed through the `Reduce` method on these unary and binary nodes, so if we want to do something about this we'd end up with the `StackSpiller` having to call an internal reduction mechanism in order to avoid exposing a breaking change. Finally, #4984 should not be forgotten if we decide to do something here; we don't want to regress the behavior reported there. " +11455 area-System.Linq IIListProvider potential optimizations + refactoring "1. `IIListProvider` currently has a `GetCount(bool)` method, the bool parameter indicating whether we only want to get the count if it's ""cheap"" O(1). I just did a `grep -r 'GetCount(.*false) .` of System.Linq, and it looks like the only place it is ever called with false is [here](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Count.cs#L28). Since the additional bool parameter may hamper readability/performance and forces us to maintain additional logic for `!onlyIfCheap`, we may want to consider changing it to just `int Count { get; }`. The existing usage could become ``` cs if (listProv != null) { int count = listProv.Count; if (count != -1) return count; } ``` 2. `ICollection` has the method `CopyTo` which lets you trade off N interface calls (either the indexer if you are using `IList`, or MoveNext/Current on `IEnumerable`) for 1, the `CopyTo` method itself. This can result in quite substantial perf gains if the collection is large. We should consider adding another interface method to `IIListProvider`: ``` cs bool TryCopyTo(T[] array, int arrayIndex); ``` This can be used whenever the iterator wraps an `ICollection` and it needs to copy some items to an array. One concrete case where it might benefit: ``` cs return array // Take an ICollection .Select(i => i + 10) // Wrap it in an IIListProvider .Append(222) // Call something that uses CopyTo in ToArray .ToArray(); // Call ToArray ``` cc @JonHanna, @VSadov " +11456 area-System.Net HttpClient throws an exception if the WWW-Authenticate header is missing If the server returns a 401 response but does not supply a `WWW-Authenticate` header (in contravention to the RFC requirement), and exception is thrown just as in #11452, and this could be a special case of an unknown scheme. HttpClient on .NET Framework does handle this scenario but returning the 401 to the caller, so I suggest the .NET Core implementation also handles it despite the server doing the wrong thing. +11457 area-System.Linq Enumerable.Average should avoid divisions for length 1 collections Floating point divisions, which occur whenever the / or % operators are used, have a very high latency compared to other instructions. For example in the instruction tables [here](http://www.agner.org/optimize/instruction_tables.pdf) you can see `fdiv(r)(p)` consistently have above-average latencies, reaching as much as 71 cycles for Atom processors (though they're more toned down for newer Intel processors). In [`Enumerable.Average`](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Average.cs#L36) it's used even when the collection's length is 1; instead of doing that, we could just return the first item to avoid the expensive operation. +11458 area-System.Reflection Implements PE checksum calculation Work in progress: needs testing +11460 area-System.Linq Inspection / interception of IL generated by LambdaCompiler "IL generated by `LambdaCompiler` and `ILGen` turns out to be quite tricky to inspect. On desktop CLR, I used to emit IL to an assembly using `CompileToMethod` for offline inspection, or use SOS to `!dumpil`. While the latter still works, it's not an option at runtime, e.g. for testing purposes. In particular, when testing code emit optimizations, we don't have a good option to assert the output. One option is to perform private reflection on `DynamicMethod` to obtain the `byte[] m_iLStream` and use one of the decoders to print it as textual IL. Some code is around to do that on the MSDN blogs, so it's one option worth looking into. In fact, I've been using this over at https://github.com/bartdesmet/ExpressionFutures and it works ok-ish. There are some issues with visualizing some metadata tokens but it may be possible to work around that. It may suffice for testing purposes. An alternative which I've put in place in my https://github.com/bartdesmet/corefx/tree/CheaperClosures branch is an indirection of `ILGenerator` calls through an interface, currently only when a conditional compilation symbol is set. Unfortunately, one can't derive from `ILGenerator` because it only has `internal` constructors (and one of its `Emit` overloads is not `virtual` either), so an additional interface has to be put in place. My implementation logs all the calls made, so a `ToString` can be obtained. Note that the last option offers some benefits because one could implement e.g. an optimizing back-end by capturing the emitted instructions and run a post-process step on it (assuming we add one additional method call to ""bake"" the emitted IL, which could flush to the underlying emitter target after running post-process steps): ``` csharp interface IILGenerator { void Emit(OpCode opcode); // quite a lot more methods, see ILGenerator void Bake(); } ``` An interceptor for logging would implement `IILGenerator` and get passed an `IILGenerator` that's the target to emit to. Its `Bake` method can simply forward to the underlying generator; every other method forwards and logs to populate data structures that allow for pretty printing. An optimizer would implement `IILGenerator` but won't forward the `Emit` methods directly; it'd build up internal data structures that are used upon a call to `Bake` to run optimizations prior to making `Emit` calls to the underlying generator, followed by a `Bake` call. Of course, this would add a level of indirection with virtual calls, unless `ILGenerator` would implement such an interface (and make the `Emit(OpCode, sbyte)` overload `virtual`) so there's no additional cost if no wrapper is installed around the `ILGenerator` obtained from `DynamicMethod`. See https://github.com/dotnet/corefx/issues/11454 for a case where such a back-end could provide value. I got the last thing implemented (including an inspector and a basic optimizer) in an offline copy here in Bing, which is based on a fork of the expression API a few years back. I'll to port it to CoreFX as a proof of concept so the merits can be debated with some concrete piece of code to back it up. " +11462 area-System.Threading File version of DataFlow assembly changed from 4.6 to 1.0 in latest release on NuGet DataFlow 4.5.25 on NuGet has file version 4.6.23123.0 and DataFlow 4.6.0 has file version 1.0.24212.1. This breaks deployment using Windows Installer. Only files with a higher file version are replaced during upgrades. https://www.nuget.org/packages/System.Threading.Tasks.Dataflow/ +11463 area-System.Threading Blocking Task.Result design flaw leads to deadlock when called from ThreadPool thread "Run this application: https://gist.github.com/AqlaSolutions/f8c993bfad32dc9be11703fea4e01422 It simulates network engine receiving requests and calling synchronously `IConnection.OnRequestReceived`. This method calls async method and then synchronously processes the result retrieved with Task.Result. The async method may take up to 700 ms. Assume I can't use await, because external network engine provides synchronous interface and I need to check async call result before returning. During run the simulation will decrease time between requests until deadlock occurs - after that point currently awaiting requests will never be completed. I set TP to low threads number to show the problem. It will also happen on 200 and 1000 threads but it will just take more time and will require modifying the simulation code for more requests. In a real app you will never want to set max threads to big numbers because it will make your app very slow (context switching thing) and also each thread takes 1 MB RAM. This example proves that absolutely any blocking call to `Task.Result` or `Task.Wait` from `ThreadPool` thread will work for some time but will eventually deadlock your application in truly high load scenario. Using these methods from `ThreadPool` thread for waiting is always a mistake and should be disallowed (but I understand that it will not happen for compatibility reasons). Yes, we all know from docs that mixing async and blocking ""may cause deadlocks"" but previously I thought about this only in a way ""do not block with `.Result` thread which synchronization context may be required to complete the waited task itself"". TP deadlock is not obvious and many people will ""just use `.Result`"" without ever encountering it during testing. What do you think? May be some workarounds inside .NET TP? Prioritize continuations over new tasks? " +11464 area-System.Net CookieContainer.Add(Cookie cookie) CookieContainer.Add(Cookie cookie) method is no longer accessible because it's accessibility was downgraded which causes incompatibility between other .net versions. Is this intended or a mistake? Other definitions (net461): public void Add(Cookie cookie) Existing definition (netstandard1.6): internal void Add(Cookie cookie) +11465 area-System.Runtime DefaultValueAttribute missing unsigned int / unsigned long constructor ## Latest proposal ### Rationale and Usage As has already been explained, using `DefaultValueAttribute` with one of the problematic types (unsigned integer types and `sbyte`) in C# ends up using a widening conversion and so the boxed `Value` ends up with an unexpected type. The proposal is to add constructor overloads so that the conversions don't happen and `Value` gets the expected type. The usage stays the same as before, e.g. `[DefaultValue(UInt64.MaxValue)]`. Doing this would be technically a source breaking change, since recompiling existing code would end up with a different type for the boxed `Value`. (Arguably, it would be a better type, but that doesn't change the fact that someone could rely on the old behavior.) ### Proposed API ```c# public class DefaultValueAttribute : Attribute { // existing constructor overloads: public DefaultValueAttribute(Type type, string value); public DefaultValueAttribute(char value); public DefaultValueAttribute(byte value); public DefaultValueAttribute(short value); public DefaultValueAttribute(int value); public DefaultValueAttribute(long value); public DefaultValueAttribute(float value); public DefaultValueAttribute(double value); public DefaultValueAttribute(bool value); public DefaultValueAttribute(string value); public DefaultValueAttribute(object value); // added constructor overloads: public DefaultValueAttribute(sbyte value); public DefaultValueAttribute(ushort value); public DefaultValueAttribute(uint value); public DefaultValueAttribute(ulong value); } ``` ## Original proposal Most numeric types have their constructor but not the unsigned ones. As a result, if you write that code: `new DefaultValueAttribute(UInt64.MaxValue);` The float constructor will be called as the compiler seems to avoid the constructor that needs boxing. Removing all explicit constructor that takes numeric types solve the issue. They all points to the same code that will box the value anyway: ``` /// /// Initializes a new instance of the class using a Unicode /// character. /// public DefaultValueAttribute(char value) { this.value = value; } ``` +11467 area-System.Linq More optimizations for LINQ methods I've been raising a lot of issues about LINQ recently, so this is sort of an umbrella issue for all of the optimizations I think could be applied. - `Enumerable.Cast` is one of those functions that has a 1:1 mapping, so it should forego `yield` and instead implement a custom iterator class. Things like `x.Cast().ToArray()` are very common. - In `OfType`, if `TResult` is object or the source enumerable is of type `IEnumerable` *, we know that each is check will return true and therefore we will have a 1:1 mapping. We can forward to `CastIterator` for those cases and get special treatment for `ToArray`, `ToList`, etc. \* I don't know how often this optimization will happen. Though it will incur no runtime cost since `typeof(T) == typeof(U)` is jitted away, it's not very common for someone to call `OfType()` on something they _know_ is an `IEnumerable`. The only places where I think it can happen are if they accept an `IEnumerable` and use `OfType` to convert it to a generic one, or their method has multiple type parameters and they want to convert an `IEnumerable` to an `IEnumerable` and someone calls their method with `Method()`. # - `Enumerable.Concat(...).ToArray()` is wasteful since it does not attempt to specialize if the underlying enumerables are `ICollections`. It should instead call `GetEnumerable` on everything, and then specialize for `ICollection`. (potentially `IIListProvider` as well if #11455 is implemented) - It may be possible for the `Concat` iterators to implement certain `IPartition` methods as well. If the first/last collections are ILists/IPartitions, then `TryGetFirst` and `TryGetLast` could be implemented with relatively minimal overhead. (actually not in the case where you have a very long linked list of `Concat` iterators and you try to get the first item, but in that case calling `First()` would still be very slow anyway.) # - [`LongCount`](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Count.cs#L79) is not optimized for ICollection/IIListProvider? # - `DefaultIfEmpty` should just return a cached iterator if the enumerable is empty. We should also introduce something like a `WrapperIterator` class that just provides a view over an enumerable, and use that for the other case. I'm sure it could be useful in many other LINQ methods (for example, possibly `Skip(0)`). +11468 area-Meta Move master to netcoreapp1.2 move everything in master from netcoreapp1.1 to netcoreapp1.2, because netcoreap1.1 is shipping earlier +11469 area-Meta Merge dev/api into master Check this first - are there any tests disabled in dev/api that are not disabled in master. re-enable these or open an issue. - check packages don't have broken dependencies, - check packages where the contract exists but the implementation is not complete yet because we are either using stubs or even worse we just have a apicompat baseline but the members don’t even exist in the implementation. +11471 area-System.Net Uri.CreateUriInfo is locking on a string https://github.com/dotnet/corefx/blob/ca9e2b068e75898a3b35860632b1fec01cc5af93/src/System.Private.Uri/src/System/Uri.cs#L2199-L2206 ``` C# lock (_string) { if ((_flags & Flags.MinimalUriInfoSet) == 0) { _info = info; _flags = (_flags & ~Flags.IndexMask) | cF; } } ``` This is a scalability concern, e.g. this Uri could end up sharing the same lock as another that's locking on the same string instance, such as if the string is interned. Now, given the rarity of this, this might be the best option, as unless there's another object available on which to lock, this is likely the better option than allocating a new object per Uri just for the purposes of this lock. If there's another existing object that could be used that's not shared, that would be better. Even better would be getting rid of this lock entirely... since Uri to my knowledge is not deemed to be thread-safe, the purpose of this lock is unclear to me... maybe it could just be removed entirely? +11473 area-Meta Rewrite benchmarksgame samples to optimize performance I realize this not just .NET Core issue. Or perhaps not perceived as an issue at all. But since a lot of work is done to improve performance... The Java binary-trees program in the computer language benchmark game is almost 4 times faster than the C# .NET Core one. Even worst for the regex-dna test, though perhaps this is more of a regex library test. I'm not taking the benchmark game for something more than it is, but the difference gap is quite large here, perhaps something can be done... [http://benchmarksgame.alioth.debian.org/u64q/performance.php?test=binarytrees](http://benchmarksgame.alioth.debian.org/u64q/performance.php?test=binarytrees) [http://benchmarksgame.alioth.debian.org/u64q/performance.php?test=regexdna](http://benchmarksgame.alioth.debian.org/u64q/performance.php?test=regexdna) -- fixed bad links +11476 area-System.Net Remove unnecessarily Volatile.Reads in EnsureStoreOpened The fields being read are already volatile, so the relevant read operations already have fences. And these Volatile.Reads are on a local that's not shared with any other thread, making them unnecessary. Found by a coverity scan cc: @cipop, @davidsh, @bartonjs +11477 area-Serialization [Impl] DCS/DCJS to Support new Serialization APIs Added in System.Runtime (e.g. ISerializable) https://github.com/dotnet/corefx/commit/90be35920b48820536b8740f64d565ded55d811e added some serialization APIs in System.Runtime. DCS/DCJS should support these APIs. - [x] System.NonSerializedAttribute (tracked by https://github.com/dotnet/corefx/issues/13367) - [x] System.SerializableAttribute - [x] System.Runtime.Serialization.OptionalFieldAttribute (tracked by https://github.com/dotnet/corefx/issues/13367) - [x] System.Runtime.Serialization.IDeserializationCallback (tracked by https://github.com/dotnet/corefx/issues/13368) - [x] System.Runtime.Serialization.IFormatterConverter - [x] System.Runtime.Serialization.ISerializable - [x] System.Runtime.Serialization.SerializationEntry - [x] System.Runtime.Serialization.SerializationInfo - [x] System.Runtime.Serialization.SerializationInfoEnumerator +11481 area-System.Net Fix WinHttpHandler to deal with nonstandard HTTP auth responses WinHTTP returns an error from WinHttpQueryAuthSchemes if a server sends back a response with a scheme that isn't handled by WinHTTP. Many servers use custom auth schemes. A few don't even send a `WWW-Authenticate` header in the response at all (technically against RFC7235). To handle these cases and to match Desktop behavior, we ignore the error from WinHttpQueryAuthSchemes. Fixes #11452 and #11456. +11489 area-System.Net Adding TLS Alerts Adding TLS handshake and close_notify SslStream alert support. New API needs review and is pending the investigation in #11265. Fixes #8811 Addresses part of #3114. @davidsh @bartonjs @stephentoub PTAL /cc @weshaggard +11492 area-System.Linq Specialize Enumerable.Concat when all items are ICollections. If all of the inputs to `Enumerable.Concat` are ICollections, (which is common, at least in code I've written) then we can optimize much better if it is called `ToArray` or `Count` on. This change introduces 2 new iterators for Concat, `Concat2CollectionIterator` and `ConcatNCollectionIterator`, and renames the existing ones to `Concat{2,N}EnumerableIterator`. The main difference with these iterators is: - It has a better implementation for `ToArray`. Previously we just called `EnumerableHelpers.ToArray` if a `Concat` iterator was returned `ToArray` on. However, if we know that all of the enumerables are ICollections, we can sum their counts to allocate an array of exactly the right size, and then call `CopyTo` on each of them to fill the array. (This is a bit tricky in `ConcatNCollectionIterator` since we hold a reference to the most recently `Concat`'d collection, so we have to `CopyTo` the collections in reverse order.) - We no longer pessimize `GetCount(true)`, since we assuming that accessing the `Count` property of the collections will be cheap (at least, cheaper than manually enumerating them), and we just sum the count of all of them. Any input that implements `ICollection` will use these iterators. However, as soon as we see a non-ICollection, we fallback to using a regular `ConcatNIterator`. ## Benchmarks Results/test are [here](https://gist.github.com/jamesqo/0164d1d8229a010e07d225d2d4d8af34). Quite amazingly, there is a 5x reduction in gen0 collections and 40x speedup with the new implementation, at least for length 100 collections. Even for length 3 ones, it's still 4x faster and the # of collections go from 89 => 15 (presumably since we're no longer allocating enumerators). /cc: @JonHanna, @stephentoub, @VSadov +11494 area-System.Reflection Access is denied when use the System.Reflection.DispathProxy HI I used the System.Reflection.DispatchProxy to dynamic a Interface,when use the DispatchProxy.Create();get the Access is denied:'MyProxy',MyProxy is extend the DispatchProxy. +11495 area-System.Linq Add tests for DebugView on Expression This is the next biggest black spot for code coverage in `System.Linq.Expressions`. +11497 area-System.IO ZipArchive CreateMode tries to read Position on non-seekable Stream "Looking at https://msdn.microsoft.com/en-us/library/hh158263(v=vs.110).aspx i find this remark: > If the mode parameter is set to Read, the stream must support reading. If the mode parameter is set to Create, the stream must support writing. If the mode parameter is set to Update, the stream must support reading, writing, and seeking. Based on that i would conclude that using CreateMode, i should be able to write to a non-seekable stream. The [corefx tests](https://github.com/dotnet/corefx/blob/master/src/System.IO.Compression/tests/ZipArchive/zip_CreateTests.cs#L64) for Create also seems to indicate that this is the intention at first glance. However, even in CreateMode, the code attempts to read the Position from the stream it is writing to, unless i am mistaken that is typically not supported on a non-seekable stream? In the abovementioned test a test WrappedStream class is used that can be configured as non-seekable. However, it does support getting a Position which i find a bit strange. I can see that there is also a closed issue on Connect: https://connect.microsoft.com/VisualStudio/feedback/details/816411/ziparchive-shouldnt-read-the-position-of-non-seekable-streams Below is an example that will throw NotSupportedException: ``` using System; using System.IO; using System.IO.Compression; namespace SeekeableStreamBug { public class NonSeekableMemoryStream: MemoryStream { public override bool CanSeek => false; public override long Position { get { throw new NotSupportedException(); } set { throw new NotSupportedException(); } } } public class Program { public static void Main( string[] args ) { using ( ZipArchive archive = new ZipArchive( new NonSeekableMemoryStream(), ZipArchiveMode.Create, false ) ) { var entry = archive.CreateEntry( ""foo"" ); using ( var es = entry.Open() ) { es.Write( new byte[] { 4, 2 }, 0, 2 ); } } } } } ``` " +11499 area-Meta Could not load file or assembly using Microsoft.Extensions.Configuration.Json "Hi everybody, I'm working on a windows 10 IoT project where I want to use Microsoft.Extensions.Configuration.Json so I added it in my project.json in the dependencies: > ""dependencies"": { > ""Microsoft.NETCore.UniversalWindowsPlatform"": ""5.2.2"", > ""System.Xml.XmlDocument"": ""4.0.1"", > ""System.Xml.XPath.XDocument"": ""4.0.1"", > ""Serilog"": ""2.2.1"", > ""Serilog.Sinks.RollingFile"": ""2.2.0"", > ""Microsoft.Extensions.Configuration.Json"": ""1.0.0"" > }, I can deploy my solution but I have this exception: > {""Could not load file or assembly 'System.IO.FileSystem.Watcher, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its > dependencies. > The system cannot find the file specified."":""System.IO.FileSystem.Watcher, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a""} I tried adding System.IO.FileSystem.Watcher to my dependencies in project.json but it didn't solve the problem... It looks like this person has a similar problem: http://stackoverflow.com/questions/37365216/uwp-application-and-net-core-rc2-cannot-reference-netstandard1-4-packages Somebody has an idea? Thank you " +11503 area-System.Diagnostics OSX Process.Start failing on non-rooted file name I've been seeing this issue where executing a process with a non-rooted file name causes a `System.ComponentModel.Win32Exception : No such file or directory` failure. Trace: ``` at Interop.libproc.proc_pidpath(Int32 pid) at System.Diagnostics.Process.ResolvePath(String filename) at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) ``` The failures don't seem to have anything to do with what I'm trying to execute, since we never get further than calling proc_pidpath on the current process (`Interop.libproc.proc_pidpath(Interop.Sys.GetPid())`) in the `GetExePath` function called by `ResolvePath`. For context though, the error has been arising during [mc.dotnet](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fcli~2F/build/20160907.03/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.Directory_Changed_Tests~2FFileSystemWatcher_Directory_Changed_SymLink/log/0cdde726-02ae-403e-96ae-feb25609e83d) runs of symlink filesystemwatcher tests where `ln` is being called. The failures have been occurring intermittently, +11504 area-Meta Lots of unused resource strings across corefx This isn't exact (there are likely both false positives and false negatives here), but a quick search across corefx shows over a thousand resource strings that are unused and could be deleted: ``` corefx\src\Microsoft.Win32.Registry\src\Resources\Strings.resx : Argument_InvalidRegistryKeyPermissionCheck corefx\src\Microsoft.Win32.Registry.AccessControl\src\Resources\Strings.resx : UnauthorizedAccess_RegistryNoWrite corefx\src\System.Collections.Specialized\src\Resources\Strings.resx : Arg_NonZeroLowerBound corefx\src\System.ComponentModel.Annotations\src\Resources\Strings.resx : AssociatedMetadataTypeTypeDescriptor_MetadataTypeContainsUnknownProperties corefx\src\System.ComponentModel.Annotations\src\Resources\Strings.resx : AttributeStore_Type_Must_Be_Public corefx\src\System.ComponentModel.Annotations\src\Resources\Strings.resx : AttributeStore_Unknown_Method corefx\src\System.ComponentModel.Annotations\src\Resources\Strings.resx : Common_NullOrEmpty corefx\src\System.ComponentModel.Annotations\src\Resources\Strings.resx : MetadataTypeAttribute_TypeCannotBeNull corefx\src\System.ComponentModel.Annotations\src\Resources\Strings.resx : ValidationContext_Must_Be_Method corefx\src\System.ComponentModel.Annotations\src\Resources\Strings.resx : ValidationContextServiceContainer_ItemAlreadyExists corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryAction corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryAppearance corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryAsynchronous corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryBehavior corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryConfig corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryData corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryDDE corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryDefault corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryDesign corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryDragDrop corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryFocus corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryFont corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryFormat corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryKey corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryLayout corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryList corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryMouse corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryPosition corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryScale corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryText corefx\src\System.ComponentModel.Primitives\src\Resources\Strings.resx : PropertyCategoryWindowStyle corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_1 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_2 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_3 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_5 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_6 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_7 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_8 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_9 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_11 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_12 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_13 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_14 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_15 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_16 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_17 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_18 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_19 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_20 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_21 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_22 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_23 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_24 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_25 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_26 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_27 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_28 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_29 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_30 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_31 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_32 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_33 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_34 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_35 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_36 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_37 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_38 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_39 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_40 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_41 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_42 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_43 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_44 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_47 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_48 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_49 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_50 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_51 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_52 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_53 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_54 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_55 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_56 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_ERROR_57 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : Snix_AutoEnlist corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : LocalDB_FailedGetDLLHandle corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : LocalDB_MethodNotFound corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : LocalDB_UnobtainableMessage corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_PN0 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_PN1 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_PN2 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_PN3 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_PN4 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_PN5 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_PN6 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_PN7 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_PN8 corefx\src\System.Data.SqlClient\src\Resources\Strings.resx : SNI_PN9 corefx\src\System.Diagnostics.Debug\src\Resources\Strings.resx : DebugAssertTitle corefx\src\System.Diagnostics.Debug\src\Resources\Strings.resx : DebugAssertTitleShort corefx\src\System.Diagnostics.Debug\src\Resources\Strings.resx : RTL corefx\src\System.Diagnostics.Process\src\Resources\Strings.resx : PriorityClassNotSupported corefx\src\System.Diagnostics.Process\src\Resources\Strings.resx : ProcessNotFound corefx\src\System.Diagnostics.Process\src\Resources\Strings.resx : InputIdleUnkownError corefx\src\System.Diagnostics.Process\src\Resources\Strings.resx : CantUseEnvVars corefx\src\System.Diagnostics.Process\src\Resources\Strings.resx : EnvironmentBlockTooLong corefx\src\System.Diagnostics.Process\src\Resources\Strings.resx : CantFindProcessExecutablePath corefx\src\System.Diagnostics.Process\src\Resources\Strings.resx : ResourceLimitQueryFailure corefx\src\System.Diagnostics.TraceSource\src\Resources\Strings.resx : ExceptionOccurred corefx\src\System.Diagnostics.TraceSource\src\Resources\Strings.resx : DebugAssertTitle corefx\src\System.Diagnostics.TraceSource\src\Resources\Strings.resx : RTL corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : ArgumentOutOfRange_MaxArgExceeded corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : ArgumentOutOfRange_MaxStringsExceeded corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : ArgumentOutOfRange_NeedValidId corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : ArgumentOutOfRange_NeedPosNum corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : EventSource_ListenerNotFound corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : EventSource_ToString corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : EventSource_ImplementGetMetadata corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : EventSource_NeedGuid corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : EventSource_NeedName corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : EventSource_NeedDescriptors corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : EventSource_NeedManifest corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : EventSource_EventSourceGuidInUse corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : EventSource_ListenerWriteFailure corefx\src\System.Diagnostics.Tracing\src\Resources\Strings.resx : EventSource_NoManifest corefx\src\System.IO.Compression\src\Resources\Strings.resx : ArgumentOutOfRange_NeedPosNum corefx\src\System.IO.Compression\src\Resources\Strings.resx : CorruptedGZipHeader corefx\src\System.IO.Compression\src\Resources\Strings.resx : UnknownCompressionMode corefx\src\System.IO.Compression\src\Resources\Strings.resx : InvalidCRC corefx\src\System.IO.Compression\src\Resources\Strings.resx : InvalidStreamSize corefx\src\System.IO.Compression\src\Resources\Strings.resx : FileNameContainsInvalidCharacters corefx\src\System.IO.FileSystem\src\Resources\Strings.resx : ArgumentOutOfRange_NeedNonNegInt32Range corefx\src\System.IO.FileSystem\src\Resources\Strings.resx : Argument_PathFormatNotSupported corefx\src\System.IO.FileSystem.Watcher\src\Resources\Strings.resx : ObjectDisposed_FileClosed corefx\src\System.IO.IsolatedStorage\src\Resources\Strings.resx : IsolatedStorage_OldQuotaLarger corefx\src\System.IO.IsolatedStorage\src\Resources\Strings.resx : IsolatedStorage_Operation_ISFS corefx\src\System.IO.IsolatedStorage\src\Resources\Strings.resx : IsolatedStorage_SeekOrigin corefx\src\System.IO.IsolatedStorage\src\Resources\Strings.resx : IsolatedStorage_Init corefx\src\System.IO.IsolatedStorage\src\Resources\Strings.resx : ArgumentNull_Path corefx\src\System.IO.IsolatedStorage\src\Resources\Strings.resx : Argument_AbsolutePathRequired corefx\src\System.IO.IsolatedStorage\src\Resources\Strings.resx : Argument_PathFormatNotSupported corefx\src\System.IO.IsolatedStorage\src\Resources\Strings.resx : PathNotFound_NoPathName corefx\src\System.IO.IsolatedStorage\src\Resources\Strings.resx : PathTooLong corefx\src\System.IO.IsolatedStorage\src\Resources\Strings.resx : FileNotFound corefx\src\System.IO.IsolatedStorage\src\Resources\Strings.resx : FileNotFound_FileName corefx\src\System.IO.IsolatedStorage\src\Resources\Strings.resx : IO_NoPermissionToDirectoryName corefx\src\System.IO.IsolatedStorage\src\Resources\Strings.resx : DriveNotFound_Drive corefx\src\System.IO.Packaging\src\Resources\Strings.resx : FragmentMustStartWithHash corefx\src\System.IO.Packaging\src\Resources\Strings.resx : IncompatibleModeOrAccess corefx\src\System.IO.Packaging\src\Resources\Strings.resx : InnerPackageUriHasFragment corefx\src\System.IO.Packaging\src\Resources\Strings.resx : InvariantFailure corefx\src\System.IO.Packaging\src\Resources\Strings.resx : OffsetNegative corefx\src\System.IO.Packaging\src\Resources\Strings.resx : ReadBufferTooSmall corefx\src\System.IO.Packaging\src\Resources\Strings.resx : ReadCountNegative corefx\src\System.IO.Packaging\src\Resources\Strings.resx : ReadNotSupported corefx\src\System.IO.Packaging\src\Resources\Strings.resx : ReadOnlyStream corefx\src\System.IO.Packaging\src\Resources\Strings.resx : UriShouldBeAbsolute corefx\src\System.IO.Packaging\src\Resources\Strings.resx : UriShouldBePackScheme corefx\src\System.IO.Packaging\src\Resources\Strings.resx : WriteBufferTooSmall corefx\src\System.IO.Packaging\src\Resources\Strings.resx : WriteCountNegative corefx\src\System.IO.Packaging\src\Resources\Strings.resx : WriteNotSupported corefx\src\System.IO.Packaging\src\Resources\Strings.resx : WriteOnlyStream corefx\src\System.IO.Pipes\src\Resources\Strings.resx : ArgumentOutOfRange_AdditionalAccessLimited corefx\src\System.IO.Pipes\src\Resources\Strings.resx : ArgumentOutOfRange_InvalidPipeAccessRights corefx\src\System.IO.Pipes\src\Resources\Strings.resx : ArgumentOutOfRange_NeedPosNum corefx\src\System.IO.Pipes\src\Resources\Strings.resx : IO_BindHandleFailed corefx\src\System.IO.Pipes\src\Resources\Strings.resx : IO_NoPermissionToDirectoryName corefx\src\System.IO.UnmanagedMemoryStream\src\Resources\Strings.resx : ArgumentOutOfRange_NeedPosNum corefx\src\System.Linq.Parallel\src\Resources\Strings.resx : MoreThanOneElement corefx\src\System.Linq.Parallel\src\Resources\Strings.resx : NoMatch corefx\src\System.Linq.Parallel\src\Resources\Strings.resx : ParallelEnumerable_WithCancellation_TokenSourceDisposed corefx\src\System.Net.Http\src\Resources\Strings.resx : event_ClientSendCompleted corefx\src\System.Net.Http\src\Resources\Strings.resx : event_HeadersInvalidValue corefx\src\System.Net.Http\src\Resources\Strings.resx : event_ContentNull corefx\src\System.Net.Http\src\Resources\Strings.resx : net_http_io_read_incomplete corefx\src\System.Net.Http\src\Resources\Strings.resx : net_http_chunked_not_allowed_with_content_length corefx\src\System.Net.Http\src\Resources\Strings.resx : net_http_invalid_proxyusepolicy corefx\src\System.Net.Http\src\Resources\Strings.resx : net_http_invalid_proxy corefx\src\System.Net.Http\src\Resources\Strings.resx : MailHeaderFieldMalformedHeader corefx\src\System.Net.Http\src\Resources\Strings.resx : InvalidHeaderName corefx\src\System.Net.Http\src\Resources\Strings.resx : net_http_invalid_cookiecontainer_unix corefx\src\System.Net.Http\src\Resources\Strings.resx : net_http_username_empty_string corefx\src\System.Net.Http\src\Resources\Strings.resx : net_http_no_concurrent_io_allowed corefx\src\System.Net.Http.WinHttpHandler\src\Resources\Strings.resx : net_http_content_buffersize_limit corefx\src\System.Net.NameResolution\src\Resources\Strings.resx : net_log_exception corefx\src\System.Net.NetworkInformation\src\Resources\Strings.resx : net_log_exception corefx\src\System.Net.Ping\src\Resources\Strings.resx : net_log_exception corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_nonClsCompliantException corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_illegalConfigWith corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_illegalConfigWithout corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_baddate corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_writestarted corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_clsmall corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_reqsubmitted corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_rspsubmitted corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftp_no_http_cmd corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftp_invalid_method_name corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftp_invalid_renameto corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftp_no_defaultcreds corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpnoresponse corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftp_response_invalid_format corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftp_no_offsetforhttp corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftp_invalid_uri corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftp_invalid_status_response corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftp_server_failed_passive corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftp_active_address_different corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftp_proxy_does_not_support_ssl corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftp_invalid_response_filename corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftp_unsupported_method corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_resubmitcanceled corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_redirect_perm corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_resubmitprotofailed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_needchunked corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_nochunked corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_nochunkuploadonhttp10 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_connarg corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_no100 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_fromto corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_rangetoosmall corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_entitytoobig corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_invalidversion corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_invalidstatus corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_toolong corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_connclosed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_noseek corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_servererror corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_nouploadonget corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_mutualauthfailed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_invasync corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_inasync corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_mustbeuri corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_format_shexp corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cannot_load_proxy_helper corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_invalid_host corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_repcall corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_wrongversion corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_badmethod corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_notenoughbyteswritten corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_timeout_use_ge_zero corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_timeout_use_gt_zero corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_no_0timeouts corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_requestaborted corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_tooManyRedirections corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_authmodulenotregistered corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_authschemenotregistered corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_proxyschemenotsupported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_maxsrvpoints corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_unknown_prefix corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_notconnected corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_notstream corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_timeout corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_nocontentlengthonget corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_contentlengthmissing corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_nonhttpproxynotallowed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_nottoken corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_rangetype corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_need_writebuffering corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_nodefaultcreds corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_stopped corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_udpconnected corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_readonlystream corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_writeonlystream corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_no_concurrent_io_allowed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_needmorethreads corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_MethodNotSupportedException corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_PropertyNotSupportedException corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ProtocolNotSupportedException corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_SelectModeNotSupportedException corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_InvalidSocketHandle corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_InvalidEndPointAddressFamily corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_invalidAddressList corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_invalidPingBufferSize corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cant_perform_during_shutdown corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cant_create_environment corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_protocol_invalid_family corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_protocol_invalid_multicast_family corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_empty_osinstalltype corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_unknown_osinstalltype corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cant_determine_osinstalltype corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_osinstalltype corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_entire_body_not_written corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_must_provide_request_body corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ssp_dont_support_cbt corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_zerolist corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_blocking corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_useblocking corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_select corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_toolarge_select corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_empty_select corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_mustbind corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_mustlisten corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_mustnotlisten corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_mustnotbebound corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_namedmustnotbebound corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_invalid_socketinformation corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_invalid_ipaddress_length corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_invalid_dnsendpoint corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_disconnectedConnect corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_disconnectedAccept corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_tcplistener_mustbestopped corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_no_duplicate_async corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_socketopinprogress corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_buffercounttoosmall corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_multibuffernotsupported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ambiguousbuffers corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_sockets_ipv6only corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_perfcounter_initialized_success corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_perfcounter_initialized_error corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_perfcounter_nocategory corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_perfcounter_initialization_started corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_perfcounter_cant_queue_workitem corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_config_proxy corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_config_proxy_module_not_public corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_config_authenticationmodules corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_config_webrequestmodules corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_config_requestcaching corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_config_section_permission corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_config_element_permission corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_config_property_permission corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebResponseParseError_InvalidHeaderName corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebResponseParseError_InvalidContentLength corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebResponseParseError_IncompleteHeaderLine corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebResponseParseError_CrLfError corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebResponseParseError_InvalidChunkFormat corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebResponseParseError_UnexpectedServerResponse corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_Success corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_NameResolutionFailure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_ConnectFailure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_ReceiveFailure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_SendFailure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_PipelineFailure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_RequestCanceled corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_ConnectionClosed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_TrustFailure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_SecureChannelFailure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_ServerProtocolViolation corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_KeepAliveFailure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_ProxyNameResolutionFailure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_MessageLengthLimitExceeded corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_CacheEntryNotFound corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_RequestProhibitedByCachePolicy corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_Timeout corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webstatus_RequestProhibitedByProxy corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_InvalidStatusCode corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_ServiceNotAvailable corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_CantOpenData corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_ConnectionClosed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_ActionNotTakenFileUnavailableOrBusy corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_ActionAbortedLocalProcessingError corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_ActionNotTakenInsufficentSpace corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_CommandSyntaxError corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_ArgumentSyntaxError corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_CommandNotImplemented corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_BadCommandSequence corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_NotLoggedIn corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_AccountNeeded corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_ActionNotTakenFileUnavailable corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_ActionAbortedUnknownPageType corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_FileActionAborted corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ftpstatuscode_ActionNotTakenFilenameNotAllowed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_NoContent corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_NonAuthoritativeInformation corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_ResetContent corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_PartialContent corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_MultipleChoices corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_Ambiguous corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_MovedPermanently corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_Moved corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_Found corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_Redirect corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_SeeOther corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_RedirectMethod corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_NotModified corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_UseProxy corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_TemporaryRedirect corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_RedirectKeepVerb corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_BadRequest corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_Unauthorized corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_PaymentRequired corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_Forbidden corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_NotFound corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_MethodNotAllowed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_NotAcceptable corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_ProxyAuthenticationRequired corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_RequestTimeout corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_Conflict corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_Gone corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_LengthRequired corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_InternalServerError corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_NotImplemented corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_BadGateway corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_ServiceUnavailable corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_GatewayTimeout corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_httpstatuscode_HttpVersionNotSupported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_BadScheme corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_BadFormat corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_BadUserPassword corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_BadHostName corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_BadAuthority corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_BadAuthorityTerminator corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_EmptyUri corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_BadString corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_MustRootedPath corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_BadPort corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_SizeLimit corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_SchemeLimit corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_NotAbsolute corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_PortOutOfRange corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_UserDrivenParsing corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_AlreadyRegistered corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_NeedFreshParser corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_CannotCreateRelative corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_InvalidUriKind corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_BadUnicodeHostForIdn corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_GenericAuthorityNotDnsSafe corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_uri_NotJustSerialization corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_emptystringset corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_headers_req corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_headers_rsp corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_headers_toolong corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebHeaderInvalidControlChars corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebHeaderInvalidCRLFChars corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebHeaderInvalidHeaderChars corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebHeaderInvalidNonAsciiChars corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebHeaderMissingColon corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_headerrestrict corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_completionportwasbound corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_writefailure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_readfailure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_connectionclosed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_transportfailure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_internal_bind corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_invalidasyncresult corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_invalidnestedcall corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_invalidendcall corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_must_be_rw_stream corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_header_id corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_out_range corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_encrypt corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_decrypt corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_read corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_write corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_eof corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_io_async_result corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_mustcall corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_mustcompletecall corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_callinprogress corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_scheme corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_host corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_slash corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_repcall corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_invalid_cbt_type corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_no_spns corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_cannot_set_custom_cbt corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_cbt_not_supported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_detach_error corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_close_urlgroup_error corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_tls_version corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_perm_target corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_perm_both_regex corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_perm_none corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_perm_attrib_count corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_perm_invalid_val corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_perm_attrib_multi corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_perm_epname corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_perm_invalid_val_in_element corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_invalid_ip_addr corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_bad_mac_address corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ping corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_bad_ip_address_prefix corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_max_ip_address_list_length_exceeded corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ipv4_not_installed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ipv6_not_installed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webclient corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webclient_ContentType corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webclient_Multipart corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webclient_no_concurrent_io_allowed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_webclient_invalid_baseaddress corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cookie_invalid corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cookie_exists corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_set_token corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_revert_token corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ssl_io_async_context corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ssl_io_encrypt corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ssl_io_decrypt corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ssl_io_context_expired corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ssl_io_handshake_start corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ssl_io_handshake corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ssl_io_frame corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ssl_io_corrupted corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ssl_io_cert_validation corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ssl_io_invalid_end_call corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_ssl_io_invalid_begin_call corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_bad_client_creds corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_bad_client_creds_or_target_mismatch corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_context_expectation corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_context_expectation_remote corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_supported_impl_levels corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_no_anonymous_support corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_reauth corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_noauth corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_client_server corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_noencryption corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_SSPI corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_failure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_eof corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_alert corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_ignored_reauth corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_empty_read corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_auth_must_specify_extended_protection_scheme corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_frame_size corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_frame_read_io corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_frame_read_size corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_frame_max_size corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_jscript_load corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_proxy_not_gmt corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_proxy_invalid_dayofweek corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_proxy_invalid_url_format corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_param_not_string corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_value_cannot_be_negative corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_invalid_offset corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_offset_plus_count corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cannot_be_false corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_listener_already corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_shadowstream_not_writable corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_validator_fail corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_access_denied corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_validator_result corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_retrieve_failure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_not_supported_body corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_not_supported_command corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_not_accept_response corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_method_failed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_key_failed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_no_stream corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_unsupported_partial_stream corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_not_configured corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_cache_non_seekable_stream_not_supported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_invalid_cast corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_not_ipermission corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_no_classname corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_no_typename corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_array_too_small corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_servicePointAddressNotSupportedInHostMode corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_Websockets_AlreadyOneOutstandingOperation corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_Websockets_WebSocketBaseFaulted corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_NativeSendResponseHeaders corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_Generic corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_NotAWebSocket_Generic corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_UnsupportedWebSocketVersion_Generic corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_HeaderError_Generic corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_UnsupportedProtocol_Generic corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_AcceptNotAWebSocket corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_AcceptUnsupportedWebSocketVersion corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_AcceptHeaderNotFound corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_AcceptUnsupportedProtocol corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_ClientAcceptingNoProtocols corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_ClientSecWebSocketProtocolsBlank corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_ArgumentOutOfRange_TooSmall corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_ArgumentOutOfRange_InternalBuffer corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_ArgumentOutOfRange_TooBig corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_InvalidState_Generic corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_InvalidState_ClosedOrAborted corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_ReceiveAsyncDisallowedAfterCloseAsync corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_InvalidMessageType corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_InvalidBufferType corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_InvalidMessageType_Generic corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_Argument_InvalidMessageType corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_ConnectionClosedPrematurely_Generic corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_Scheme corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_AlreadyStarted corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_Connect101Expected corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_InvalidResponseHeader corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_NotConnected corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_InvalidRegistration corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_WebSockets_NoDuplicateProtocol corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_exception corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_delegate_exception corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_unsupported_authentication_scheme corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_unmatched_authentication_scheme corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_create_valid_identity_failed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_httpsys_registry_null corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_httpsys_registry_error corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_cant_convert_raw_path corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_cant_convert_percent_value corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_cant_convert_bytes corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_cant_convert_to_utf8 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_cant_create_uri corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_no_cbt_disabled corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_no_cbt_http corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_no_cbt_platform corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_no_cbt_trustedproxy corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_cbt corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_no_spn_kerberos corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_no_spn_disabled corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_no_spn_cbt corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_no_spn_platform corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_no_spn_whensupported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_no_spn_loopback corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_spn corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_spn_passed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_spn_failed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_spn_failed_always corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_spn_failed_empty corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_spn_failed_dump corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_spn_add corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_spn_not_add corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_spn_remove corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_listener_spn_not_remove corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_sspi_enumerating_security_packages corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_sspi_security_package_not_found corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_sspi_security_context_input_buffer corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_sspi_security_context_input_buffers corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_sspi_selected_cipher_suite corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_remote_certificate corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_locating_private_key_for_certificate corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cert_is_of_type_2 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_found_cert_in_store corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_did_not_find_cert_in_store corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_open_store_failed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_got_certificate_from_delegate corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_no_delegate_and_have_no_client_cert corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_no_delegate_but_have_client_cert corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_attempting_restart_using_cert corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_no_issuers_try_all_certs corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_server_issuers_look_for_matching_certs corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_selected_cert corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_n_certs_after_filtering corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_finding_matching_certs corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_using_cached_credential corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_remote_cert_user_declared_valid corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_remote_cert_user_declared_invalid corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_remote_cert_has_no_errors corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_remote_cert_has_errors corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_remote_cert_not_available corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_remote_cert_name_mismatch corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_proxy_autodetect_script_location_parse_error corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_proxy_autodetect_failed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_proxy_script_execution_error corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_proxy_script_download_compile_error corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_proxy_system_setting_update corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_proxy_update_due_to_ip_config_change corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_proxy_called_with_null_parameter corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_proxy_called_with_invalid_parameter corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_proxy_ras_supported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_proxy_ras_notsupported_exception corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_proxy_winhttp_cant_open_session corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_proxy_winhttp_getproxy_failed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_proxy_winhttp_timeout_error corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_validation_failed_resubmit corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_refused_server_response corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_ftp_proxy_doesnt_support_partial corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_ftp_method corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_ftp_supports_bin_only corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_replacing_entry_with_HTTP_200 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_now_time corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_max_age_absolute corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_age1 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_age1_date_header corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_age1_last_synchronized corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_age1_last_synchronized_age_header corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_age2 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_max_age_cache_s_max_age corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_max_age_expires_date corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_max_age_cache_max_age corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_no_max_age_use_10_percent corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_no_max_age_use_default corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_validator_invalid_for_policy corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_response_last_modified corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_cache_last_modified corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_partial_and_non_zero_content_offset corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_response_valid_based_on_policy corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_null_response_failure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_ftp_response_status corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_resp_valid_based_on_retry corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_no_update_based_on_method corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_removed_existing_invalid_entry corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_not_updated_based_on_policy corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_not_updated_because_no_response corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_removed_existing_based_on_method corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_existing_not_removed_because_unexpected_response_status corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_removed_existing_based_on_policy corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_not_updated_based_on_ftp_response_status corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_update_not_supported_for_ftp_restart corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_removed_entry_because_ftp_restart_response_changed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_last_synchronized corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_suppress_update_because_synched_last_minute corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_updating_last_synchronized corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_cannot_remove corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_key_status corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_key_remove_failed_status corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_usecount_file corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_stream corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_filename corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_lookup_failed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_exception corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_expected_length corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_last_modified corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_expires corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_max_stale corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_dumping_metadata corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_create_failed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_set_expires corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_set_last_modified corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_set_last_synchronized corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_enable_max_stale corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_disable_max_stale corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_set_new_metadata corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_dumping corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_key corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_no_commit corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_error_deleting_filename corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_update_failed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_delete_failed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_commit_failed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_committed_as_partial corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_max_stale_and_update_status corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_failing_request_with_exception corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_request_method corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_http_status_parse_failure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_http_status_line corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_cache_control corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_invalid_http_version corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_no_http_response_header corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_http_header_parse_error corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_metadata_name_value_parse_error corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_content_range_error corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_cache_control_error corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_unexpected_status corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_object_and_exception corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_revalidation_not_needed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_not_updated_based_on_cache_protocol_status corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_closing_cache_stream corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_exception_ignored corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_no_cache_entry corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_null_cached_stream corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_requested_combined_but_null_cached_stream corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_returned_range_cache corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_entry_not_found_freshness_undefined corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_dumping_cache_context corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_result corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_uri_with_query_has_no_expiration corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_uri_with_query_and_cached_resp_from_http_10 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_valid_as_fresh_or_because_policy corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_accept_based_on_retry_count corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_date_header_older_than_cache_entry corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_server_didnt_satisfy_range corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_304_received_on_unconditional_request corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_304_received_on_unconditional_request_expected_200_206 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_last_modified_header_older_than_cache_entry corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_freshness_outside_policy_limits corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_need_to_remove_invalid_cache_entry_304 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_resp_status corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_resp_304_or_request_head corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_dont_update_cached_headers corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_update_cached_headers corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_partial_resp_not_combined_with_existing_entry corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_request_contains_conditional_header corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_not_a_get_head_post corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_cannot_update_cache_if_304 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_cannot_update_cache_with_head_resp corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_http_resp_is_null corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_resp_cache_control_is_no_store corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_resp_cache_control_is_public corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_resp_cache_control_is_private corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_resp_cache_control_is_private_plus_headers corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_resp_older_than_cache corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_revalidation_required corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_needs_revalidation corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_resp_allows_caching corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_auth_header_and_no_s_max_age corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_post_resp_without_cache_control_or_expires corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_valid_based_on_status_code corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_resp_no_cache_control corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_age corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_policy_min_fresh corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_policy_max_age corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_policy_cache_sync_date corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_policy_max_stale corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_control_no_cache corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_control_no_cache_removing_some_headers corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_control_must_revalidate corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_cached_auth_header corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_cached_auth_header_no_control_directive corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_after_validation corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_resp_status_304 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_head_resp_has_different_content_length corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_head_resp_has_different_content_md5 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_head_resp_has_different_etag corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_304_head_resp_has_different_last_modified corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_existing_entry_has_to_be_discarded corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_existing_entry_should_be_discarded corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_206_resp_non_matching_entry corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_206_resp_starting_position_not_adjusted corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_combined_resp_requested corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_updating_headers_on_304 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_suppressing_headers_update_on_304 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_status_code_not_304_206 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_sxx_resp_cache_only corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_sxx_resp_can_be_replaced corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_vary_header_empty corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_vary_header_contains_asterisks corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_no_headers_in_metadata corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_vary_header_mismatched_count corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_vary_header_mismatched_field corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_vary_header_match corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_range corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_range_invalid_format corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_range_not_in_cache corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_range_in_cache corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_partial_resp corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_range_request_range corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_could_be_partial corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_condition_if_none_match corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_condition_if_modified_since corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_cannot_construct_conditional_request corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_cannot_construct_conditional_range_request corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_entry_size_too_big corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_condition_if_range corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_conditional_range_not_implemented_on_http_10 corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_saving_request_headers corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_only_byte_range_implemented corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_cache_multiple_complex_range_not_implemented corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_digest_hash_algorithm_not_supported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_digest_qop_not_supported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_digest_requires_nonce corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_auth_invalid_challenge corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_unknown corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_operation_returned_something corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_buffered_n_bytes corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_method_equal corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_releasing_connection corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_unexpected_exception corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_server_response_error_code corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_resubmitting_request corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_retrieving_localhost_exception corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_resolved_servicepoint_may_not_be_remote_server corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_closed_idle corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_received_status_line corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_sending_headers corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_received_headers corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_shell_expression_pattern_format_warning corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_exception_in_callback corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_sending_command corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_received_response corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_socket_connected corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_socket_accepted corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_socket_not_logged_file corefx\src\System.Net.Primitives\src\Resources\Strings.resx : net_log_socket_connect_dnsendpoint corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailAddressInvalidFormat corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailSubjectInvalidFormat corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailBase64InvalidCharacter corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailCollectionIsReadOnly corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailDateInvalidFormat corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailHeaderFieldAlreadyExists corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailHeaderFieldInvalidCharacter corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailHeaderFieldMalformedHeader corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailHeaderFieldMismatchedName corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailHeaderIndexOutOfBounds corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailHeaderItemAccessorOnlySingleton corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailHeaderListHasChanged corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailHeaderResetCalledBeforeEOF corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailHeaderTargetArrayTooSmall corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailHeaderInvalidCID corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailHostNotFound corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailReaderGetContentStreamAlreadyCalled corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailReaderTruncated corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailWriterIsInContent corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailServerDoesNotSupportStartTls corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MailServerResponse corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SSPIAuthenticationOrSPNNull corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SSPIPInvokeError corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpAlreadyConnected corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpAuthenticationFailed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpAuthenticationFailedNoCreds corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpDataStreamOpen corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpDefaultMimePreamble corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpDefaultSubject corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpInvalidResponse corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpNotConnected corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpSystemStatus corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpHelpMessage corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpServiceReady corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpServiceClosingTransmissionChannel corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpOK corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpUserNotLocalWillForward corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpStartMailInput corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpServiceNotAvailable corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpMailboxBusy corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpLocalErrorInProcessing corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpInsufficientStorage corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpPermissionDenied corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpCommandUnrecognized corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpSyntaxError corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpCommandNotImplemented corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpBadCommandSequence corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpCommandParameterNotImplemented corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpMailboxUnavailable corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpUserNotLocalTryAlternatePath corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpExceededStorageAllocation corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpMailboxNameNotAllowed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpTransactionFailed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpSendMailFailure corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpRecipientFailed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpRecipientRequired corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpFromRequired corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpAllRecipientsFailed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpClientNotPermitted corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpMustIssueStartTlsFirst corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpNeedAbsolutePickupDirectory corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpGetIisPickupDirectoryFailed corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpPickupDirectoryDoesnotSupportSsl corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpOperationInProgress corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpAuthResponseInvalid corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpEhloResponseInvalid corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpNonAsciiUserNotSupported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpInvalidHostName corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MimeTransferEncodingNotSupported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SeekNotSupported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : WriteNotSupported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : InvalidHexDigit corefx\src\System.Net.Primitives\src\Resources\Strings.resx : InvalidSSPIContext corefx\src\System.Net.Primitives\src\Resources\Strings.resx : InvalidSSPIContextKey corefx\src\System.Net.Primitives\src\Resources\Strings.resx : InvalidSSPINegotiationElement corefx\src\System.Net.Primitives\src\Resources\Strings.resx : InvalidHeaderName corefx\src\System.Net.Primitives\src\Resources\Strings.resx : InvalidHeaderValue corefx\src\System.Net.Primitives\src\Resources\Strings.resx : CannotGetEffectiveTimeOfSSPIContext corefx\src\System.Net.Primitives\src\Resources\Strings.resx : CannotGetExpiryTimeOfSSPIContext corefx\src\System.Net.Primitives\src\Resources\Strings.resx : ReadNotSupported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : InvalidAsyncResult corefx\src\System.Net.Primitives\src\Resources\Strings.resx : UnspecifiedHost corefx\src\System.Net.Primitives\src\Resources\Strings.resx : InvalidPort corefx\src\System.Net.Primitives\src\Resources\Strings.resx : SmtpInvalidOperationDuringSend corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MimePartCantResetStream corefx\src\System.Net.Primitives\src\Resources\Strings.resx : MediaTypeInvalid corefx\src\System.Net.Primitives\src\Resources\Strings.resx : ContentTypeInvalid corefx\src\System.Net.Primitives\src\Resources\Strings.resx : ContentDispositionInvalid corefx\src\System.Net.Primitives\src\Resources\Strings.resx : ArgumentOutOfRange_Bounds_Lower_Upper corefx\src\System.Net.Primitives\src\Resources\Strings.resx : security_ExtendedProtectionPolicy_UseDifferentConstructorForNever corefx\src\System.Net.Primitives\src\Resources\Strings.resx : security_ExtendedProtectionPolicy_NoEmptyServiceNameCollection corefx\src\System.Net.Primitives\src\Resources\Strings.resx : security_ServiceNameCollection_EmptyServiceName corefx\src\System.Net.Primitives\src\Resources\Strings.resx : security_X509Certificate_NotSupported corefx\src\System.Net.Primitives\src\Resources\Strings.resx : InvalidOperation_WrongAsyncResultOrEndReadCalledMultiple corefx\src\System.Net.Primitives\src\Resources\Strings.resx : InvalidOperation_WrongAsyncResultOrEndWriteCalledMultiple corefx\src\System.Net.Requests\src\Resources\Strings.resx : net_headers_toolong corefx\src\System.Net.Requests\src\Resources\Strings.resx : net_emptystringcall corefx\src\System.Net.Requests\src\Resources\Strings.resx : net_headers_req corefx\src\System.Net.Security\src\Resources\Strings.resx : Arg_RankMultiDimNotSupported corefx\src\System.Net.Security\src\Resources\Strings.resx : Arg_ArrayPlusOffTooSmall corefx\src\System.Net.Security\src\Resources\Strings.resx : net_mustbeuri corefx\src\System.Net.Security\src\Resources\Strings.resx : net_log_exception corefx\src\System.Net.Security\src\Resources\Strings.resx : event_EnumerateSecurityPackages corefx\src\System.Net.Security\src\Resources\Strings.resx : event_SspiPackageNotFound corefx\src\System.Net.Security\src\Resources\Strings.resx : event_SecurityContextInputBuffer corefx\src\System.Net.Security\src\Resources\Strings.resx : event_SecurityContextInputBuffers corefx\src\System.Net.Security\src\Resources\Strings.resx : event_SspiSelectedCipherSuite corefx\src\System.Net.Security\src\Resources\Strings.resx : event_RemoteCertificate corefx\src\System.Net.Security\src\Resources\Strings.resx : event_LocatingPrivateKey corefx\src\System.Net.Security\src\Resources\Strings.resx : event_CertIsType2 corefx\src\System.Net.Security\src\Resources\Strings.resx : event_FoundCertInStore corefx\src\System.Net.Security\src\Resources\Strings.resx : event_NotFoundCertInStore corefx\src\System.Net.Security\src\Resources\Strings.resx : event_CertificateFromDelegate corefx\src\System.Net.Security\src\Resources\Strings.resx : event_NoDelegateNoClientCert corefx\src\System.Net.Security\src\Resources\Strings.resx : event_NoDelegateButClientCert corefx\src\System.Net.Security\src\Resources\Strings.resx : event_AttemptingRestartUsingCert corefx\src\System.Net.Security\src\Resources\Strings.resx : event_NoIssuersTryAllCerts corefx\src\System.Net.Security\src\Resources\Strings.resx : event_LookForMatchingCerts corefx\src\System.Net.Security\src\Resources\Strings.resx : event_SelectedCert corefx\src\System.Net.Security\src\Resources\Strings.resx : event_CertsAfterFiltering corefx\src\System.Net.Security\src\Resources\Strings.resx : event_FindingMatchingCerts corefx\src\System.Net.Security\src\Resources\Strings.resx : event_UsingCachedCredential corefx\src\System.Net.Security\src\Resources\Strings.resx : event_RemoteCertDeclaredValid corefx\src\System.Net.Security\src\Resources\Strings.resx : event_RemoteCertUserDeclaredInvalid corefx\src\System.Net.Security\src\Resources\Strings.resx : event_RemoteCertHasNoErrors corefx\src\System.Net.Security\src\Resources\Strings.resx : net_context_establishment_failed corefx\src\System.Net.Security\src\Resources\Strings.resx : net_context_wrap_failed corefx\src\System.Net.Security\src\Resources\Strings.resx : net_context_unwrap_failed corefx\src\System.Net.Sockets\src\Resources\Strings.resx : net_log_exception corefx\src\System.Net.Sockets\src\Resources\Strings.resx : net_log_socket_connected corefx\src\System.Net.Sockets\src\Resources\Strings.resx : event_Accepted corefx\src\System.Net.Sockets\src\Resources\Strings.resx : event_NotLoggedFile corefx\src\System.Net.Sockets\src\Resources\Strings.resx : event_ConnectedAsyncDns corefx\src\System.Net.WebSockets.Client\src\Resources\Strings.resx : net_log_exception corefx\src\System.Net.WebSockets.Client\src\Resources\Strings.resx : net_WebSockets_InvalidMessageType corefx\src\System.Numerics.Vectors\src\Resources\Strings.resx : Arg_MultiDimArrayNotSupported corefx\src\System.Numerics.Vectors\src\Resources\Strings.resx : Arg_RegisterLengthOfRangeException corefx\src\System.Numerics.Vectors\src\Resources\Strings.resx : Reflection_MethodNotSupported corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : ObjectSerializer_DictionaryNotSupported corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : ObjectDeserializer_BadEscape corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : ObjectDeserializer_IllegalPrimitive corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : ObjectDeserializer_InvalidArrayExtraComma corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : ObjectDeserializer_InvalidMemberName corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : ObjectDeserializer_StringNotQuoted corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : ObjectDeserializer_UnexpectedToken corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : ObjectDeserializer_UnterminatedString corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : JsonCircularReferenceDetected corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : PartialTrustDataContractMemberGetNotPublic corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : PartialTrustDataContractMemberSetNotPublic corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : UnknownDataContract corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : InvalidDataNode corefx\src\System.Private.DataContractSerialization\src\Resources\Strings.resx : TypeNotSerializableViaReflection corefx\src\System.Private.Uri\src\Resources\Strings.resx : AssertionFailed corefx\src\System.Private.Uri\src\Resources\Strings.resx : Debug_Fail corefx\src\System.Reflection.Metadata\src\Resources\Strings.resx : AssemblyTableInvalidNumberOfRows corefx\src\System.Reflection.Metadata\src\Resources\Strings.resx : UnableToReadMetadataFile corefx\src\System.Reflection.Metadata\src\Resources\Strings.resx : InvalidSectionName corefx\src\System.Reflection.Metadata\src\Resources\Strings.resx : NegativeByteCountOrOffset corefx\src\System.Resources.Reader\src\Resources\Strings.resx : InvalidOperation_ResourceWriterSaved corefx\src\System.Resources.Reader\src\Resources\Strings.resx : NotSupported_WrongResourceReader_Type corefx\src\System.Resources.Writer\src\Resources\Strings.resx : Arg_ResourceFileUnsupportedVersion corefx\src\System.Resources.Writer\src\Resources\Strings.resx : Resources_StreamNotValid corefx\src\System.Resources.Writer\src\Resources\Strings.resx : BadImageFormat_ResourcesHeaderCorrupted corefx\src\System.Resources.Writer\src\Resources\Strings.resx : Argument_StreamNotReadable corefx\src\System.Resources.Writer\src\Resources\Strings.resx : BadImageFormat_NegativeStringLength corefx\src\System.Resources.Writer\src\Resources\Strings.resx : BadImageFormat_ResourcesNameInvalidOffset corefx\src\System.Resources.Writer\src\Resources\Strings.resx : NotSupported_WrongResourceReader_Type corefx\src\System.Resources.Writer\src\Resources\Strings.resx : BadImageFormat_TypeMismatch corefx\src\System.Resources.Writer\src\Resources\Strings.resx : BadImageFormat_ResourceNameCorrupted_NameIndex corefx\src\System.Resources.Writer\src\Resources\Strings.resx : BadImageFormat_ResourcesDataInvalidOffset corefx\src\System.Resources.Writer\src\Resources\Strings.resx : Format_Bad7BitInt32 corefx\src\System.Resources.Writer\src\Resources\Strings.resx : BadImageFormat_InvalidType corefx\src\System.Resources.Writer\src\Resources\Strings.resx : InvalidOperation_EnumNotStarted corefx\src\System.Resources.Writer\src\Resources\Strings.resx : InvalidOperation_EnumEnded corefx\src\System.Resources.Writer\src\Resources\Strings.resx : ResourceReaderIsClosed corefx\src\System.Runtime.Extensions\src\Resources\Strings.resx : ArgumentOutOfRange_StartIndex corefx\src\System.Runtime.Extensions\src\Resources\Strings.resx : Arg_InvalidSearchPattern corefx\src\System.Runtime.Extensions\src\Resources\Strings.resx : Arg_PathGlobalRoot corefx\src\System.Runtime.Extensions\src\Resources\Strings.resx : Arg_Path2IsRooted corefx\src\System.Runtime.Extensions\src\Resources\Strings.resx : Argument_PathEmpty corefx\src\System.Runtime.Extensions\src\Resources\Strings.resx : Argument_PathUriFormatNotSupported corefx\src\System.Runtime.InteropServices\src\Resources\Strings.resx : ArgumentOutOfRange_NeedNonNegNumRequired corefx\src\System.Runtime.InteropServices\src\Resources\Strings.resx : Argument_InvalidThreshold corefx\src\System.Runtime.Serialization.Formatters\src\Resources\Strings.resx : Serialization_OptionalFieldVersionValue corefx\src\System.Runtime.WindowsRuntime\src\Resources\Strings.resx : Argument_InvalidSafeBufferOffLen corefx\src\System.Runtime.WindowsRuntime\src\Resources\Strings.resx : NotSupported_UmsSafeBuffer corefx\src\System.Runtime.WindowsRuntime\src\Resources\Strings.resx : Arg_BufferTooSmall corefx\src\System.Security.Claims\src\Resources\Strings.resx : InvalidOperation_ClaimCannotBeRemoved corefx\src\System.Security.Claims\src\Resources\Strings.resx : InvalidOperationException_ActorGraphCircular corefx\src\System.Security.Cryptography.Algorithms\src\Resources\Strings.resx : Cryptography_InvalidKey_SemiWeak corefx\src\System.Security.Cryptography.Algorithms\src\Resources\Strings.resx : Cryptography_PasswordDerivedBytes_InvalidAlgorithm corefx\src\System.Security.Cryptography.Algorithms\src\Resources\Strings.resx : Cryptography_PasswordDerivedBytes_InvalidIV corefx\src\System.Security.Cryptography.Algorithms\src\Resources\Strings.resx : Cryptography_RC2_EKS40 corefx\src\System.Security.Cryptography.Algorithms\src\Resources\Strings.resx : Cryptography_RC2_EKSKS corefx\src\System.Security.Cryptography.Cng\src\Resources\Strings.resx : Cryptography_ArgECDHKeySizeMismatch corefx\src\System.Security.Cryptography.Cng\src\Resources\Strings.resx : Cryptography_ArgECDHRequiresECDHKey corefx\src\System.Security.Cryptography.Cng\src\Resources\Strings.resx : Cryptography_ArgExpectedECDiffieHellmanCngPublicKey corefx\src\System.Security.Cryptography.Cng\src\Resources\Strings.resx : Cryptography_ECXmlSerializationFormatRequired corefx\src\System.Security.Cryptography.Cng\src\Resources\Strings.resx : Cryptography_InvalidSignatureAlgorithm corefx\src\System.Security.Cryptography.Cng\src\Resources\Strings.resx : NotSupported_Method corefx\src\System.Security.Cryptography.Cng\src\Resources\Strings.resx : Cryptography_NonCompliantFIPSAlgorithm corefx\src\System.Security.Cryptography.Cng\src\Resources\Strings.resx : Cryptography_RC2_EKSKS2 corefx\src\System.Security.Cryptography.Cng\src\Resources\Strings.resx : Cryptography_TlsRequiresLabelAndSeed corefx\src\System.Security.Cryptography.Cng\src\Resources\Strings.resx : Cryptography_PlatformNotSupported corefx\src\System.Security.Cryptography.Cng\src\Resources\Strings.resx : WorkInProgress_UnsupportedHash corefx\src\System.Security.Cryptography.Csp\src\Resources\Strings.resx : Argument_StreamNotReadable corefx\src\System.Security.Cryptography.Csp\src\Resources\Strings.resx : Argument_StreamNotWritable corefx\src\System.Security.Cryptography.Csp\src\Resources\Strings.resx : Cryptography_CryptoStream_FlushFinalBlockTwice corefx\src\System.Security.Cryptography.Csp\src\Resources\Strings.resx : Cryptography_InvalidBlockSize corefx\src\System.Security.Cryptography.Csp\src\Resources\Strings.resx : Cryptography_InvalidCipherMode corefx\src\System.Security.Cryptography.Csp\src\Resources\Strings.resx : Cryptography_InvalidFeedbackSize corefx\src\System.Security.Cryptography.Csp\src\Resources\Strings.resx : Cryptography_InvalidIVSize corefx\src\System.Security.Cryptography.Csp\src\Resources\Strings.resx : NotSupported_UnseekableStream corefx\src\System.Security.Cryptography.OpenSsl\src\Resources\Strings.resx : Cryptography_UnsupportedEcKeyAlgorithm corefx\src\System.Security.Cryptography.Pkcs\src\Resources\Strings.resx : Cryptography_Cms_Envelope_Empty_Content corefx\src\System.Security.Cryptography.Pkcs\src\Resources\Strings.resx : WorkInProgress corefx\src\System.Security.Cryptography.X509Certificates\src\Resources\Strings.resx : Cryptography_InvalidOID corefx\src\System.Security.Cryptography.X509Certificates\src\Resources\Strings.resx : Cryptography_InvalidStoreHandle corefx\src\System.Security.Cryptography.X509Certificates\src\Resources\Strings.resx : Cryptography_X509_ExportFailed corefx\src\System.Security.Cryptography.X509Certificates\src\Resources\Strings.resx : Cryptography_X509_KeyMismatch corefx\src\System.Security.Cryptography.X509Certificates\src\Resources\Strings.resx : InvalidPublicKeyInX509 corefx\src\System.Security.Cryptography.X509Certificates\src\Resources\Strings.resx : NotSupported_InvalidKeyImpl corefx\src\System.Security.Principal.Windows\src\Resources\Strings.resx : ExecutionEngine_MissingSecurityDescriptor corefx\src\System.Security.Principal.Windows\src\Resources\Strings.resx : InvalidOperation_AnonymousCannotImpersonate corefx\src\System.Security.Principal.Windows\src\Resources\Strings.resx : PlatformNotSupported_RequiresW2kSP3 corefx\src\System.ServiceProcess.ServiceController\src\Resources\Strings.resx : DisplayName corefx\src\System.ServiceProcess.ServiceController\src\Resources\Strings.resx : NoDisplayName corefx\src\System.ServiceProcess.ServiceController\src\Resources\Strings.resx : ServiceName corefx\src\System.Text.Encodings.Web\src\Resources\Strings.resx : ArrayInitializedStateNotEqual corefx\src\System.Text.Encodings.Web\src\Resources\Strings.resx : ArrayLengthsNotEqual corefx\src\System.Text.Encodings.Web\src\Resources\Strings.resx : CannotFindOldValue corefx\src\System.Text.Encodings.Web\src\Resources\Strings.resx : CapacityMustBeGreaterThanOrEqualToCount corefx\src\System.Text.Encodings.Web\src\Resources\Strings.resx : CapacityMustEqualCountOnMove corefx\src\System.Text.Encodings.Web\src\Resources\Strings.resx : CollectionModifiedDuringEnumeration corefx\src\System.Text.Encodings.Web\src\Resources\Strings.resx : InvalidEmptyOperation corefx\src\System.Text.Encodings.Web\src\Resources\Strings.resx : InvalidOperationOnDefaultArray corefx\src\System.Threading.Tasks.Dataflow\src\Resources\Strings.resx : Argument_InvalidSourceForFilteredLink corefx\src\System.Threading.Tasks.Dataflow\src\Resources\Strings.resx : event_DataflowBlockCompleted corefx\src\System.Threading.Tasks.Dataflow\src\Resources\Strings.resx : event_DataflowBlockCreated corefx\src\System.Threading.Tasks.Dataflow\src\Resources\Strings.resx : event_DataflowBlockLinking corefx\src\System.Threading.Tasks.Dataflow\src\Resources\Strings.resx : event_DataflowBlockUnlinking corefx\src\System.Threading.Tasks.Dataflow\src\Resources\Strings.resx : event_TaskLaunchedForMessageHandling corefx\src\System.Xml.ReaderWriter\src\Resources\Strings.resx : Argument_InvalidCodePageConversionIndex corefx\src\System.Xml.ReaderWriter\src\Resources\Strings.resx : ArgumentOutOfRange_Range corefx\src\System.Xml.ReaderWriter\src\Resources\Strings.resx : ArgumentNull_Array corefx\src\System.Xml.ReaderWriter\src\Resources\Strings.resx : Argument_ConversionOverflow corefx\src\System.Xml.ReaderWriter\src\Resources\Strings.resx : Argument_EncodingConversionOverflowBytes corefx\src\System.Xml.XmlDocument\src\Resources\Strings.resx : Xdom_NoRootEle corefx\src\System.Xml.XmlDocument\src\Resources\Strings.resx : Xdom_Ele_Prefix corefx\src\System.Xml.XmlDocument\src\Resources\Strings.resx : Arg_ExpectingXmlTextReader corefx\src\System.Xml.XmlDocument\src\Resources\Strings.resx : Arg_IncompatibleParamType corefx\src\System.Xml.XmlDocument\src\Resources\Strings.resx : XmlNonCLSCompliantException corefx\src\System.Xml.XmlDocument\src\Resources\Strings.resx : Xml_UnsupportedClass corefx\src\System.Xml.XmlDocument\src\Resources\Strings.resx : Xml_NullResolver corefx\src\System.Xml.XmlDocument\src\Resources\Strings.resx : Xml_RelativeUriNotSupported corefx\src\System.Xml.XmlDocument\src\Resources\Strings.resx : Xml_UntrustedCodeSettingResolver corefx\src\System.Xml.XmlDocument\src\Resources\Strings.resx : Xml_InvalidNameCharsDetail corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : Xml_InvalidNmToken corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : SFxErrorDeserializingRequestBody corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : SFxErrorDeserializingReplyBody corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : SFxInvalidXmlAttributeInWrapped corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : SFxInvalidXmlAttributeInBare corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : SFxXmlArrayNotAllowedForMultiple corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : SFxErrorSerializingBody corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : SFxRpcMessageMustHaveASingleBody corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : SFxBodyObjectTypeCannotBeInherited corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : SFxBodyObjectTypeCannotBeInterface corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : SFxKnownTypeNull corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : SFxFaultTypeAnonymous corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlInvalidEncodingNotEncoded1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlInvalidEncoding3 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlUnexpectedType corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlMultipleAttributeOverrides corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlIllegalSoapAttribute corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlInvalidArrayLength corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlUnsupportedSoapTypeKind corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_UnknownID_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_IllegalAttrType_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_XmlInvalidCast_2 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_IllegalTextType_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_TwoXmlAny_2 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_MissingEnum_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_UnknownEnum_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_UnknownAccessor_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_TwoMappings_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_TwoDefaultXmlAny corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_IllegalChoiceDirection corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_ElementAsAttribute_2 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_AttributeAsElement_2 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_CircularRef_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_IllegalSequenceType_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_NoRepeatingAccessor_2 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_NoArrayEltAcc_2 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_WrongXAEAType_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_WrongXAAAType_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_XNDANotXSN_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_InvalidHref_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_IllegalDataType_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_DataTypeNotValid_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_UnknownPrefix_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_CollNoAdd_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_IEnumNoAdd_3 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_BadArrayType_1 corefx\src\System.Xml.XmlSerializer\src\Resources\Strings.resx : XmlS_RepeatedIdentifier_1 corefx\src\System.Xml.XPath\src\Resources\Strings.resx : Xdom_Empty_LocalName corefx\src\System.Xml.XPath\src\Resources\Strings.resx : XmlBadName corefx\src\System.Xml.XPath\src\Resources\Strings.resx : Xml_InvalidPIName corefx\src\System.Xml.XPath\src\Resources\Strings.resx : XmlNoNameAllowed corefx\src\System.Xml.XPath\src\Resources\Strings.resx : Xml_XmlPrefix corefx\src\System.Xml.XPath\src\Resources\Strings.resx : Xml_XmlnsPrefix corefx\src\System.Xml.XPath\src\Resources\Strings.resx : Xml_NamespaceDeclXmlXmlns corefx\src\System.Xml.XPath\src\Resources\Strings.resx : Xml_InvalidBinHexValueOddCount corefx\src\System.Xml.XPath\src\Resources\Strings.resx : Sch_XsdDateTimeCompare corefx\src\System.Xml.XPath\src\Resources\Strings.resx : XmlConvert_TypeListBadMapping corefx\src\System.Xml.XPath\src\Resources\Strings.resx : XmlConvert_TypeListBadMapping2 corefx\src\System.Xml.XPath.XmlDocument\src\Resources\Strings.resx : XmlConvert_BadUri corefx\src\System.Xml.XPath.XmlDocument\src\Resources\Strings.resx : XmlConvert_TypeBadMapping corefx\src\System.Xml.XPath.XmlDocument\src\Resources\Strings.resx : XmlConvert_TypeBadMapping2 corefx\src\System.Xml.XPath.XmlDocument\src\Resources\Strings.resx : XmlConvert_TypeListBadMapping corefx\src\System.Xml.XPath.XmlDocument\src\Resources\Strings.resx : XmlConvert_TypeListBadMapping2 corefx\src\System.Xml.XPath.XmlDocument\src\Resources\Strings.resx : XmlConvert_NotOneCharString ``` +11509 area-System.Net Rework ExclusiveAddressUse and ReuseAddress on non-Windows platforms "The ExclusiveAddressUse socket option is a Windows-specific option that, when set to ""true,"" tells Windows not to allow another socket to use the same local address as this socket. This is only needed on Windows because it otherwise (at least in some versions/configurations) allows any socket with the ReuseAddress option set to ""steal"" the address from a socket that did not have _any_ options set. On Unix, we previously treated this as an ""unsupported"" option. However, it is recommended to set this option to ""true"" on Windows, to avoid malicious theft of a service's address, so we need to support the option, in some fashion, on Unix, so that it's possible to write portable code that works reliably everywhere. Since the _only_ behavior on Linux/OSX is equivalent to ""ExclusiveAddressUse=true"" on Windows, we implement this option as a no-op if it's set to ""true,"" and as an unsupported option if set to ""false."" (It's possible that we could come up with a better failure for the ""false"" case, but I'm treating it as ""unsupported"" for compatiblity with the 1.0 release). Another related option is ReuseAddress. On Windows, this option allows a socket's address _and_ port to be reused. It's equivalent to _two_ native options on Unix: SO_REUSEADDR and SO_REUSEPORT. Again, for portability, we need an option that will work roughly the same way on all platforms. We could introduce a new option (ReuseAddressAndPort?) but existing code is already using the current ReuseAddress option. So this change makes ReuseAddress set both SO_REUSEADDR and SO_REUSEPORT on Unix. If we need to support these options individually, on Unix only, in the future, we'll need to introduce two new options (maybe ReuseAddressOnly and ReusePort) which will likely need to be treated as ""unsupported"" options on Windows. For now, no need for managed support for more fine-grained options has been demonstrated. For more information on the underlying native options on Windows, Linux, OSX, etc., see this great writeup [on stackoverflow](http://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t). Also, the Windows docs [discuss the SO_EXCLUSIVEADDR option](https://msdn.microsoft.com/en-us/library/windows/desktop/cc150667%28v=vs.85%29.aspx) in depth. Closes #11292. @stephentoub @CIPop " +11516 area-System.ComponentModel System.ComponentModel.TypeConverter package is resolving to wrong asset for netcore50aot and uap101aot) TargetFrameworks supported by https://dotnet.myget.org/feed/dotnet-core/package/nuget/System.ComponentModel.TypeConverter are: - .NETFramework 4.5 - .NETFramework 4.6.2 - .NETStandard 1.0 - .NETStandard 1.5 - MonoAndroid 1.0 - MonoTouch 1.0 - Xamarin.iOS 1.0 - Xamarin.Mac 2.0 - Xamarin.TVOS 1.0 - Xamarin.WatchOS 1.0 Restoring this package for netcore50aot or uap101aot will result in NetStandard1.0 to be picked up, which is the wrong asset (it's missing embedded RD.xml). We need to explicitly target netcore50aot with the correct binary asset. This issue exists on live package as well as 4.1.0 stable package which is being included in the closure of UWP MP 5.2.2 /cc @weshaggard +11518 area-System.IO Fix some broken ZipFile unicode tests These tests rely on the use of the FileData class to verify zips are created/extracted with the correct files. However, FileData and the accompanying helper methods do not take unicode normalization into account, so unicode zip tests are failing on OSX. I modified these tests to verify based on the actual files being zipped/unzipped instead of using the expectations set in the FileData class. resolves https://github.com/dotnet/corefx/issues/10397, https://github.com/dotnet/corefx/issues/9867 @stephentoub +11521 area-System.Reflection Update System.Runtime for uap10.1 to expose AssemblyNameProxy This issue depends on https://github.com/dotnet/corert/issues/1811. Once the CoreRT change is in, we can update https://github.com/dotnet/corefx/blob/dev/api/src/System.Runtime/src/System.Runtime.csproj#L37 and include AssemblyNameProxy.cs back in. +11531 area-Meta Can`t add reference to System.XML I`ve created new solution for .net core (asp.net + class library) i need to add reference to System.XML but it fails with error, same time references to other libraries works well (for example System.Xml.Linq). I checked it on 3 different computers and got this error. ![image](https://cloud.githubusercontent.com/assets/6726130/18344350/187d0fa8-75e1-11e6-8164-bb65c6c40ffc.png) +11537 area-System.Reflection Add tests for new System.Reflection APIs Look at https://github.com/dotnet/corefx/issues/10530 as reference for newly exposed APIs +11539 area-System.IO Add optimized override of FileStream.CopyToAsync Regardless of mode, we should be able to improve over the base implementation by: - Potentially reusing the FileStream's buffer (if it has one) rather than creating a separate buffer - Avoiding some per-Read argument validation checks When the FileStream is in sync mode, we should further be able to improve over the base implementation by: - Avoiding queueing a work item per Read When the FileStream is in async mode, we should be able to improve over the base implementation by: - Avoiding many of the per-read operation related costs, such as by registering once for cancellation rather than per operation, not creating a task per operation, etc. +11541 area-Meta Post request failing on deploy "I created a asp.net core application. When I run (`'dotnet run'`) it locally on my computer everything runs and returns fine. However, when I deployed it to my server i had to use `dotnet run --server.urls=http://0.0.0.0:5000` so it would bind. Now all my post/get request show that they are not they are not connection. The console shows this error ``` Object { _body: "" …"", status: 500, ok: false, statusText: ""Internal Server Error"", headers: Object, type: 2, url: ""http://ec2-52-92-174-9.us-west-2.co…"" } ``` Any idea how how to solve this issue. Huge reward for anyone that helps me fix this. my repo can be found [here](https://github.com/AndrewKralovec/Forecast-Report) Examples Client.ts ```ts // Find user in database, if exists, and log them in find(email:any, password:any){ //let body:User = {email:email, password:password}; let headers = new Headers({ 'Content-Type': 'application/json' }); this.http.post('/api/User/find', {email:email, password:password} ,{headers:headers}) .map(response => response.json()) .subscribe( data => this.login(data), error => this.userError(error) ); } ``` Controller.cs ```c# public IActionResult find([FromBody] User user){ User result = new User(); using(SqliteConnection con = new SqliteConnection(cs)){ con.Open(); string stm = $""SELECT * FROM USERS WHERE EMAIL='{user.email}' AND PASSWORD='{user.password}' LIMIT 1""; using (SqliteCommand cmd = new SqliteCommand(stm, con)){ using (SqliteDataReader rdr = cmd.ExecuteReader()){ while (rdr.Read()) { result = new User { id = rdr.GetInt32(0), email = rdr.GetString(1) }; } } } con.Close(); } if(result.Equals(user)) return Json(result); return BadRequest(""User not found""); // Not my current error, this is a different status 400 and message } ``` " +11542 area-System.Data System.Data.SqlClient.SqlCredential class missing from corefx I realize this was already raised earlier this year: https://github.com/dotnet/corefx/issues/6948 However, it appears that SecureString has been added to corefx since that issue was closed. Would it be possible to have SqlCredential implemented and the corresponding SqlConnection/SqlConnectionStringBuilder functionality that relies upon it? +11545 area-System.Drawing Compat work for System.Drawing Mono has a small subset of System.Drawing (albeit not in an assembly named System.Drawing.dll) as does .NET Core. The list below are those types that Mono has and Core does not. ``` T:System.Drawing.Color F:System.Drawing.Color.Empty M:System.Drawing.Color -- all the color members M:System.Drawing.Color.FromArgb(System.Int32) M:System.Drawing.Color.FromArgb(System.Int32,System.Drawing.Color) M:System.Drawing.Color.FromArgb(System.Int32,System.Int32,System.Int32) M:System.Drawing.Color.FromArgb(System.Int32,System.Int32,System.Int32,System.Int32) M:System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor) M:System.Drawing.Color.FromName(System.String) M:System.Drawing.Color.GetBrightness M:System.Drawing.Color.GetHue M:System.Drawing.Color.GetSaturation M:System.Drawing.Color.op_Equality(System.Drawing.Color,System.Drawing.Color) M:System.Drawing.Color.op_Inequality(System.Drawing.Color,System.Drawing.Color) M:System.Drawing.Color.ToArgb M:System.Drawing.Color.ToKnownColor T:System.Drawing.ColorConverter M:System.Drawing.ColorConverter.#ctor T:System.Drawing.KnownColor and all its members T:System.Drawing.PointConverter M:System.Drawing.PointConverter.#ctor T:System.Drawing.RectangleConverter M:System.Drawing.RectangleConverter.#ctor T:System.Drawing.SizeConverter M:System.Drawing.SizeConverter.#ctor T:System.Drawing.SizeFConverter M:System.Drawing.SizeFConverter.#ctor T:System.Drawing.SystemColors M:System.Drawing.SystemColors.get_ActiveBorder M:System.Drawing.SystemColors.get_ActiveCaption M:System.Drawing.SystemColors.get_ActiveCaptionText M:System.Drawing.SystemColors.get_AppWorkspace M:System.Drawing.SystemColors.get_ButtonFace M:System.Drawing.SystemColors.get_ButtonHighlight M:System.Drawing.SystemColors.get_ButtonShadow M:System.Drawing.SystemColors.get_Control M:System.Drawing.SystemColors.get_ControlDark M:System.Drawing.SystemColors.get_ControlDarkDark M:System.Drawing.SystemColors.get_ControlLight M:System.Drawing.SystemColors.get_ControlLightLight M:System.Drawing.SystemColors.get_ControlText M:System.Drawing.SystemColors.get_Desktop M:System.Drawing.SystemColors.get_GradientActiveCaption M:System.Drawing.SystemColors.get_GradientInactiveCaption M:System.Drawing.SystemColors.get_GrayText M:System.Drawing.SystemColors.get_Highlight M:System.Drawing.SystemColors.get_HighlightText M:System.Drawing.SystemColors.get_HotTrack M:System.Drawing.SystemColors.get_InactiveBorder M:System.Drawing.SystemColors.get_InactiveCaption M:System.Drawing.SystemColors.get_InactiveCaptionText M:System.Drawing.SystemColors.get_Info M:System.Drawing.SystemColors.get_InfoText M:System.Drawing.SystemColors.get_Menu M:System.Drawing.SystemColors.get_MenuBar M:System.Drawing.SystemColors.get_MenuHighlight M:System.Drawing.SystemColors.get_MenuText M:System.Drawing.SystemColors.get_ScrollBar M:System.Drawing.SystemColors.get_Window M:System.Drawing.SystemColors.get_WindowFrame M:System.Drawing.SystemColors.get_WindowText ``` +11547 area-System.Reflection Use constants instead of literal numbers A little bit of cleanup +11549 area-System.Security [dev/api] System.Security.Cryptography.Algorithms tests are failing due to a typeload exception on netcoreapp1.1. cc: @weshaggard After some initial investigation, looks like the issue is that System.Threading.Tasks is missing a type-forward to ConfiguredTaskAwaiter nested class. The assembly info now looks like: ``` .class extern forwarder System.Runtime.CompilerServices.ConfiguredTaskAwaitable { .assembly extern mscorlib } ``` and before, it used to look like this: ``` .class extern forwarder System.Runtime.CompilerServices.ConfiguredTaskAwaitable { .assembly extern mscorlib } .class extern ConfiguredTaskAwaiter { .class extern System.Runtime.CompilerServices.ConfiguredTaskAwaitable } ``` This is most likely an issue with GenFacades and will require a buildtools update, so I'm disabling the tests from netcoreapp1.1 runs for now. Tests output: ``` call CoreRun.exe xunit.console.netcore.exe System.Security.Cryptography.Algorithms.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonwindowstests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Security.Cryptography.Algorithms.Tests Discovered: System.Security.Cryptography.Algorithms.Tests Starting: System.Security.Cryptography.Algorithms.Tests System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDesTests.TripleDesCreate [FAIL] System.TypeLoadException : Could not load type 'ConfiguredTaskAwaiter' from assembly 'System.Threading.Tasks, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Stack Trace: at System.Security.Cryptography.CryptoStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize) F:\git\corefx\src\System.Security.Cryptography.Algorithms\tests\TripleDesTests.cs(63,0): at System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDesTests.TripleDesCreate() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_128 [FAIL] System.TypeLoadException : Could not load type 'ConfiguredTaskAwaiter' from assembly 'System.Threading.Tasks, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Stack Trace: at System.Security.Cryptography.CryptoStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(536,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip(Aes aes) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(32,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_128() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.WrongKeyFailDecrypt_2 [FAIL] Assert.Throws() Failure Expected: typeof(System.Security.Cryptography.CryptographicException) Actual: typeof(System.TypeLoadException): Could not load type 'ConfiguredTaskAwaiter' from assembly 'System.Threading.Tasks, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Stack Trace: at System.Security.Cryptography.CryptoStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(438,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.<>c__DisplayClass28_1.b__0() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_192 [FAIL] System.TypeLoadException : Could not load type 'ConfiguredTaskAwaiter' from assembly 'System.Threading.Tasks, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Stack Trace: at System.Security.Cryptography.CryptoStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(536,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip(Aes aes) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(43,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_192() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.DecryptKnownCBC256 [FAIL] System.TypeLoadException : Could not load type 'ConfiguredTaskAwaiter' from assembly 'System.Threading.Tasks, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Stack Trace: at System.Security.Cryptography.CryptoStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(576,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesDecrypt(CipherMode mode, Byte[] key, Byte[] iv, Byte[] encryptedBytes, Byte[] expectedAnswer) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(77,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.DecryptKnownCBC256() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.WrongKeyFailDecrypt [FAIL] Assert.Throws() Failure Expected: typeof(System.Security.Cryptography.CryptographicException) Actual: typeof(System.TypeLoadException): Could not load type 'ConfiguredTaskAwaiter' from assembly 'System.Threading.Tasks, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Stack Trace: at System.Security.Cryptography.CryptoStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(389,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.<>c__DisplayClass27_1.b__0() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_256 [FAIL] System.TypeLoadException : Could not load type 'ConfiguredTaskAwaiter' from assembly 'System.Threading.Tasks, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Stack Trace: at System.Security.Cryptography.CryptoStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(536,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip(Aes aes) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(54,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_256() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_Default [FAIL] System.TypeLoadException : Could not load type 'ConfiguredTaskAwaiter' from assembly 'System.Threading.Tasks, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Stack Trace: at System.Security.Cryptography.CryptoStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(536,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip(Aes aes) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(21,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.RandomKeyRoundtrip_Default() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesZeroPad [FAIL] System.TypeLoadException : Could not load type 'ConfiguredTaskAwaiter' from assembly 'System.Threading.Tasks, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Stack Trace: at System.Security.Cryptography.CryptoStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(470,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesZeroPad() System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.DecryptKnownECB192 [FAIL] System.TypeLoadException : Could not load type 'ConfiguredTaskAwaiter' from assembly 'System.Threading.Tasks, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Stack Trace: at System.Security.Cryptography.CryptoStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(576,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesDecrypt(CipherMode mode, Byte[] key, Byte[] iv, Byte[] encryptedBytes, Byte[] expectedAnswer) F:\git\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs(99,0): at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.DecryptKnownECB192() Finished: System.Security.Cryptography.Algorithms.Tests === TEST EXECUTION SUMMARY === System.Security.Cryptography.Algorithms.Tests Total: 450, Errors: 0, Failed: 10, Skipped: 0, Time: 4.564s Finished running tests. End time=15:25:48.31, Exit code = 10 ``` +11551 area-System.IO [dev/api] Re-add cross compilation for uap10.1 for System.IO.IsolatedStorage cc: @JeremyKuhne @ericstj IsolatedStorage was alredy being compiled for uap10.1, but that stopped working once we tried to update the package dependency versions. The reason is because not all of the dependencies of IsolatedStorage support uap10.1 yet, so for those the build was still using their netcore50 asset which is no longer compatible with some of the other dependencies that already support uap10.1. For this reason, we are temporarily removing the x-compiling of IsolatedStorage for uap10.1, and instead we are using the netstandard1.7 implementation for uap10.1. +11552 area-System.Reflection Blob reader improvements [Work in progress] +11554 area-Serialization Targeting System.Runtime.Serialization.Primitives to uap10.1 +11555 area-System.Runtime Proposal Max, Min for IComparable **Proposed Api** Net Standard 1.0 corefx package ``` csharp public static class Compare { public static T Min(T val1, T val2) where T : IComparable; public static T Min(T val1, T val2, IComparer comparer); public static T Max(T val1, T val2) where T : IComparable; public static T Max(T val1, T val2, IComparer comparer); // ref returning version? public static ref T Min(ref T val1, ref T val2) where T : IComparable; public static ref T Max(ref T val1, ref T val2) where T : IComparable; } ``` **Questions** - Ref return version? - Namespace? /cc @NickCraver @DamianEdwards @terrajobst +11556 area-System.Linq Use TryEnsureSufficientExecutionStack in lambda compiler We implemented stack probing for the expression compiler (see https://github.com/dotnet/corefx/pull/11091) using `EnsureSufficientExecutionStack` but the `Try` variant was made public as part of https://github.com/dotnet/coreclr/pull/7077. +11564 area-System.Net Consider adding static Socket.Connect methods to support DNS endpoints See #8768 for background. +11565 area-System.Security X509Chain.ChainContext property is not available in dotnetcore. X509Chain.ChainContext property is not available in dotnetcore. We have some PInvoke code to check if the last element of the first simple chain contains a Microsoft root public key (CERT_CHAIN_POLICY_MICROSOFT_ROOT) using CertVerifyCertificateChainPolicy() CAPI. How can we check whether a given X509Chain contains a Microsoft root public key in dotnetcore? cc: @bartonjs +11566 area-System.Collections Track System.Collections.Specialized tests update to latest netstandard1.3 implementation once 1.1 ships related to #11544 +11568 area-System.Runtime Cleanup/optimize Random, remove use of % operator Even formatted, the [source code for Random](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/src/System/Random.cs) is currently quite messy, and makes heavy use of the modulo operator by a non-power of 2 in the constructor. It looks like since what is being modulo'd is directly tied to a loop variable, we may be able to detect when it goes past 55, and if so just subtract 55. This will save us many expensive `idivs`. +11570 area-System.IO "DriveInfo.DriveType reports ""unknown"" in Windows Subsystem for Linux" "Running on Ubuntu in Windows Subsystem for Linux, on rs_prerelease build 14915, DriveInfo.DriveType reports ""Unknown"" for both the Linux file system (`/`, `/usr`, etc.) and mounted Windows drives (`/mnt/c`, etc). I would expect it to report ""fixed"" for at least the Linux file system, and preferably the mounted Windows drives as well. The `df -T` command reports file system names for these, so apparently there is some info available: ``` Filesystem Type 1K-blocks Used Available Use% Mounted on rootfs lxfs 498859004 167549372 331309632 34% / data lxfs 498859004 167549372 331309632 34% /data cache lxfs 498859004 167549372 331309632 34% /cache mnt lxfs 498859004 167549372 331309632 34% /mnt none tmpfs 498859004 167549372 331309632 34% /dev none tmpfs 498859004 167549372 331309632 34% /run none tmpfs 498859004 167549372 331309632 34% /run/lock none tmpfs 498859004 167549372 331309632 34% /run/shm none tmpfs 498859004 167549372 331309632 34% /run/user none drvfs 498859004 167549372 331309632 34% /mnt/c ``` (note that `/` is ""lxfs"" and `/mnt/c` is ""drvfs."" This causes a failure in the DriveInfo tests (in `DriveInfoUnixTests.PropertiesOfValidDrive`). I'll be conditionally disabling that test for now. " +11571 area-System.IO Investigate optimizing DeflateStream.CopyToAsync Currently it's not overridden and inherits the base implementation. We may be able to improve on that to the point where it would be worth overriding, such as by avoiding repeatedly pinning and unpinning. +11572 area-System.IO Investigate optimizing BufferedStream.CopyToAsync BufferedStream doesn't currently override CopyToAsync. We should investigate doing so, as there may be opportunities for optimization. For example, BufferedStream often contains a fairly large internal buffer, potentially larger than the one requested as an arg to CopyToAsync. In that case, BufferedStream's internal buffer could be used instead of allocating a new one. +11573 area-System.Net Investigate overriding NetworkStream.CopyToAsync NetworkStream doesn't override CopyToAsync, instead inheriting the base implementation that calls ReadAsync/WriteAsync in a loop. Each ReadAsync operation in turn creates a task that wraps the internal Socket APM implementation of Receive. Since a CopyToAsync will typically involve many receives, we should investigate overriding it to use SocketAsyncEventArgs, in order to avoid a bunch of the per iteration costs. +11575 area-System.Threading Remove some threading ApiCompat baselines for uap101aot once they are implemented See changes to src/System.Runtime/src/ApiCompatBaseline.uap101aot.txt +11578 area-Meta Consider adding something to the docs about /p:RestorePackages=false I just found out that you can pass in `/p:RestorePackages=false` to skip restoring packages while building a project. I don't know how I lived without this switch; previously I would wait on average about ~2m to re-build a project even for simple changes, like syntax errors. Now it takes about ~15s. We should really, really consider adding something about this to the markdown docs so less patient people don't get frustrated building. +11580 area-System.Runtime Expose MemberwiseClone on ValueType "`MemberwiseClone` is protected in `System.Object`, because it can easily break class invariants, and allowing it to be invoked from outside the class doesn't provide an avenue to enforce them. For value types, however, that is not the case, because they can always be copied - for any value type `T`, and for any value of that type, this is valid C# code: ``` T x, y; ... x = y; ``` However, if all you have is a `ValueType`, but you don't know the exact type of the value, there's no way to create an identical copy in a generic fashion. If `ValueType` simply made `MemberwiseClone` public, that would provide a way to do so. Since any actual instance of `ValueType` is always going to be some specific value type, allowing this does not result in any new issues that aren't already exposed by operator `=` on specific value types. Also, having it in the base class effectively makes ""this is value-copyable"" a part of the value type contract clearly and explicitly, unlike the current situation where that contract is implicit and not reified in the type system in any way. " +11583 area-System.Security TestKeyAgreeKeyEncryptionAlgorithm_RoundTrip failure in CI on Windows http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/26/ ``` System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.KeyAgreeRecipientInfoTests.TestKeyAgreeKeyEncryptionAlgorithm_RoundTrip [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : An internal error occurred Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Security.Cryptography.Pkcs\src\Internal\Cryptography\Pal\Windows\PkcsPalWindows.Encrypt.cs(78,0): at Internal.Cryptography.Pal.Windows.PkcsPalWindows.EncodeHelpers.CreateCryptMsgHandleToEncode(CmsRecipientCollection recipients, Oid innerContentType, AlgorithmIdentifier contentEncryptionAlgorithm, X509Certificate2Collection originatorCerts, CryptographicAttributeObjectCollection unprotectedAttributes) D:\j\workspace\windows_nt_re---37265eab\src\System.Security.Cryptography.Pkcs\src\Internal\Cryptography\Pal\Windows\PkcsPalWindows.Encrypt.cs(25,0): at Internal.Cryptography.Pal.Windows.PkcsPalWindows.Encrypt(CmsRecipientCollection recipients, ContentInfo contentInfo, AlgorithmIdentifier contentEncryptionAlgorithm, X509Certificate2Collection originatorCerts, CryptographicAttributeObjectCollection unprotectedAttributes) D:\j\workspace\windows_nt_re---37265eab\src\System.Security.Cryptography.Pkcs\src\System\Security\Cryptography\Pkcs\EnvelopedCms.cs(107,0): at System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(CmsRecipientCollection recipients) D:\j\workspace\windows_nt_re---37265eab\src\System.Security.Cryptography.Pkcs\tests\EnvelopedCms\KeyAgreeRecipientInfoTests.cs(290,0): at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.KeyAgreeRecipientInfoTests.EncodeKeyAgreel(SubjectIdentifierType type) D:\j\workspace\windows_nt_re---37265eab\src\System.Security.Cryptography.Pkcs\tests\EnvelopedCms\KeyAgreeRecipientInfoTests.cs(134,0): at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.KeyAgreeRecipientInfoTests.TestKeyAgreeKeyEncryptionAlgorithm_RoundTrip() ``` +11584 area-System.IO WindowsSearchPatternInvalid theory failing after Windows path changes ``` System.IO.Tests.DirectoryInfo_GetDirectories_str_so.WindowsSearchPatternInvalid System.IO.Tests.DirectoryInfo_EnumDir_str_str.WindowsSearchPatternInvalid System.IO.Tests.Directory_EnumDir_str_str.WindowsSearchPatternInvalid System.IO.Tests.Directory_GetFileSystemEntries_str_str.WindowsSearchPatternInvalid System.IO.Tests.Directory_EnumDir_str_str_so.WindowsSearchPatternInvalid System.IO.Tests.Directory_EnumFSE_str_str_so.WindowsSearchPatternInvalid System.IO.Tests.DirectoryInfo_GetFileSystemInfos_str_so.WindowsSearchPatternInvalid System.IO.Tests.Directory_GetFileSystemEntries_str_str_so_alldirs.WindowsSearchPatternInvalid System.IO.Tests.Directory_EnumFSE_str_str_so_alldirs.WindowsSearchPatternInvalid System.IO.Tests.Directory_GetDirectories_str_str.WindowsSearchPatternInvalid System.IO.Tests.DirectoryInfo_GetFileSystemInfos_str.WindowsSearchPatternInvalid System.IO.Tests.DirectoryInfo_GetFiles_str.WindowsSearchPatternInvalid System.IO.Tests.DirectoryInfo_GetDirectories_str.WindowsSearchPatternInvalid System.IO.Tests.Directory_EnumFiles_str_str_so.WindowsSearchPatternInvalid System.IO.Tests.DirectoryInfo_EnumFSI_str_str_so.WindowsSearchPatternInvalid System.IO.Tests.Directory_GetFileSystemEntries_str_str_so.WindowsSearchPatternInvalid System.IO.Tests.DirectoryInfo_EnumDir_str_str_so.WindowsSearchPatternInvalid System.IO.Tests.Directory_EnumFSE_str_str.WindowsSearchPatternInvalid System.IO.Tests.Directory_GetDirectories_str_str_so.WindowsSearchPatternInvalid System.IO.Tests.Directory_EnumFiles_str_str.WindowsSearchPatternInvalid System.IO.Tests.Directory_GetFiles_str_str.WindowsSearchPatternInvalid System.IO.Tests.DirectoryInfo_EnumerateFiles_str_str_so.WindowsSearchPatternInvalid System.IO.Tests.Directory_GetFiles_str_str_so.WindowsSearchPatternInvalid System.IO.Tests.DirectoryInfo_EnumFSI_str_str.WindowsSearchPatternInvalid System.IO.Tests.DirectoryInfo_GetFiles_str_so.WindowsSearchPatternInvalid System.IO.Tests.DirectoryInfo_EnumerateFiles_str_str.WindowsSearchPatternInvalid ``` +11587 area-System.Security LeaveOpen ctor for CryptoStream Resolves https://github.com/dotnet/corefx/issues/1079 cc @bartonjs +11588 area-System.Runtime Proposal: Generic overloads of Array.Copy ## Background There are a lot of static Array methods that have generic overloads. Take for example `Sort`, `BinarySearch`, etc. However, there are a couple of methods where a generic overload is missing, specifically `Clear`, `Copy`, and `Reverse`. This hinders optimizations, since we cannot directly access the elements in the array from C#-- we either have to call `GetValue` and box it, or call into the runtime to do so. So for example, if the array's length is under a certain threshold in `Copy` we would want to stick to a normal for-loop instead of calling into native code. However, since those methods are non-generic, that is currently impossible. The above problem is particularly bad with `Reverse`: if the elements in the array are non-primitive structs, then _every single element_ in the array will be boxed. [Link to source.](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Array.cs#L1602-L1610) In addition, the lack of type safety means that in `Copy`, which accepts 2 `Array` parameters, we have to perform extra type-checking to make sure the arrays match before the actual copy. ## Proposal We should add generic overloads of `Clear`, `Copy`, and `Reverse`. Any code that currently calls the non-generic overloads will automatically light-up to use these methods. (The parameters should have the same names as the non-generic overloads, so this will work with callers who use named parameters as well.) ``` cs namespace System { public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable { public static void Copy(T[] sourceArray, T[] destinationArray, int length); public static void Copy(T[] sourceArray, int sourceIndex, T[] destinationArray, int destinationIndex, int length); } } ``` **edit:** @justinvp has already submitted a proposal for a generic `Reverse` which was approved, so I removed that from the proposed API. **edit:** Removed generic `Clear` from this proposal after @terrajobst's comment. That's now being tracked in #11839. +11590 area-System.Linq Expression.Quote rewriting in RuntimeOps.Quote does not preserve type "Repro: ``` csharp using System; using System.Linq.Expressions; using static System.Linq.Expressions.Expression; class Program { public static void Main() { var x = Expression.Parameter(typeof(int)); var f1 = Lambda>( Call( typeof(Program).GetMethod(nameof(F)), Lambda( Block(typeof(void), x) ) ), x ); Console.WriteLine(f1.Compile()(42)); var f2 = Lambda>( Call( typeof(Program).GetMethod(nameof(G)), Lambda( Block(typeof(void), x), x ) ) ); Console.WriteLine(f2.Compile()()); } public static Type F(Expression e) => e.Body.Type; public static Type G(Expression> e) => e.Body.Type; } ``` Output: ``` System.Int32 System.Void ``` We'd expect the first case to print `System.Void` as well, but `RuntimeOps.Quote` rewrites the `Block` because it closes over a hoisted variable `x` and uses the `Block` factory overload that does not supply the original type of the block being quoted. Receivers of a quoted node would not expect it to have changed typing. Modulo any captured variables, one would expect the quote to behave as returning a constant of type `Expression` without any touch-ups to the tree. Note that this issue also manifests itself when a `Block` is using its `Type` to make it look less derived, but after quoting (provided it references a hoisted variable) it will look more derived: ``` csharp var s = Expression.Parameter(typeof(string)); var f3 = Lambda>( Call( typeof(Program).GetMethod(nameof(H)), Lambda( Block(typeof(object), s) ) ), s ); Console.WriteLine(f3.Compile()(""bar"")); ``` In here, the quote observed by method `Program.H` will be of type `String` even though the original `Block` was typed as `Object`. " +11598 area-System.Collections Intermittent: CaseInsensitiveHashCodeProviderTests.Default_GetHashCodeCompare failed in CI "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/dev_api/job/osx_debug_prtest/34/consoleText ``` System.Collections.Tests.CaseInsensitiveHashCodeProviderTests.Default_GetHashCodeCompare(a: ""hello"", b: ""HELLO"", expected: True) [FAIL] Assert.Equal() Failure Expected: True Actual: False Stack Trace: at System.Collections.Tests.CaseInsensitiveHashCodeProviderTests.Default_GetHashCodeCompare(Object a, Object b, Boolean expected) ``` " +11599 area-System.Linq Potential optimization: Using vectorization for Enumerable.Sum/Average Some thoughts: - If the input is an array, e.g. `int[]` in the case of `Sum(IEnumerable)`, we could use vectorization to compute the sum, and maybe avoid range checks. - If the input is an `ICollection` but not an array, we could rent an array from `ArrayPool.Shared` and then call `CopyTo` on this array, and then go ahead with using vectorization. This will undoubtedly be slower for small collections, and it adds making another pass over the array + renting. However, it will still be faster than the enumerable version which makes 2 virtual method calls per-iteration, since only one virtual call, `CopyTo`, is made for the entire collection. Unfortunately I don't know if the vectorization part is possible since `Sum` uses `checked` arithmetic. Checking if any of the numbers in the vector are negative from overflow, e.g. [here](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/String.Manipulation.cs#L151), will not work since it's possible that some of the ints in the array are negative. +11601 area-Meta Type forwarding makes compiling agains runtime assemblies harder "When compiling code using Roslyn as a library, it's fairly common to compile against framework runtime assemblies, since doing so is much easier than figuring out where reference assemblies are. For example: ``` c# var compilation = CSharpCompilation.Create(assemblyName) .AddReferences(MetadataReference.CreateFromFile(typeof(object).Assembly.Location)); ``` If you need additional assemblies, you find some type from each assembly and use that. Specifically, using `dynamic` requires `Microsoft.CSharp` and `System.Dynamic.Runtime`, so you would add: ``` c# .AddReferences(MetadataReference.CreateFromFile(typeof(Binder).Assembly.Location)) .AddReferences(MetadataReference.CreateFromFile(typeof(DynamicAttribute).Assembly.Location)) ``` This works fine on .Net Framework, but not on .Net Core. The first issue is that on .Net Core, some types are in separate assemblies. Specifically, using `dynamic` also requires `System.Linq.Expressions`: ``` c# .AddReferences(MetadataReference.CreateFromFile(typeof(Expression).GetTypeInfo().Assembly.Location)) ``` This is understandable. What is less understandable is that the assembly that contains `object` and other base types, `System.Private.CorLib` is not enough, you also need to explicitly reference two assemblies that mostly just forward types: `System.Runtime` and `mscorlib`: ``` c# .AddReferences(MetadataReference.CreateFromFile(Assembly.Load(new AssemblyName(""System.Runtime"")).Location)) .AddReferences(MetadataReference.CreateFromFile(Assembly.Load(new AssemblyName(""mscorlib"")).Location)) ``` This is necessary, because `Microsoft.CSharp` references `System.Runtime`, which forwards to `mscorlib`, which forwards to `System.Private.CorLib`. Would it be possible for the `Microsoft.CSharp` runtime assembly (and similar assemblies) to directly reference the assembly that actually contains the types it uses, without any forwarding? It would simplify this kind of code. --- For reference, [here is a complete project](https://gist.github.com/svick/70cb54470f0ea7c8474a03666300f091) showing what I'm talking about. See also https://github.com/dotnet/roslyn/issues/12045, which inspired this request. " +11604 area-Infrastructure System.Reflection.TypeExtensions.Tests has package restore errors on initial build ## Steps (on clean repo with newly initalized buildtools etc.): 1) Navigate to `src/Sytem.Reflection.TypeExtensions/tests` 2) Run `msbuild /T:BuildAndTest` ## Fix The errors seem to be as a result of System.Reflection.TypeExtensions.dll not being found (see log). The errors go away if I do the following before my steps to reproduce: 1) Navigate to `src/Sytem.Reflection.TypeExtensions/src/redist` 2) Run `msbuild` ## Notes The VS project for System.Reflection.TypeExtensions also seems to have hundreds of errors relating to non existent methods in the `src` folder that clearly exist. I also think this has something to do with the `src/redist` folder not present in most projects ## Log [msbuild.txt](https://github.com/dotnet/corefx/files/466171/msbuild.txt) +11605 area-System.Globalization Compat work for Calendars (for Linux) Add the implementation of the added .net standard 1.7 APIs to Linux +11606 area-System.Globalization Compat work for CharUnuicode (for Linux) add the implementation of new added APIs +11608 area-System.Globalization Compat work for collations/Sorting (for Linux) Add missing implementation for the newly added APIs in net standard 1.7 +11609 area-System.Globalization Compat work for Cultures (Globalization) (for Linux) Add missing implementation for the newly added APIs in net standard 1.7 +11611 area-System.Globalization Compat work for DateTimeFormatInfo (for Linux) Add missing implementation for the newly added APIs in net standard 1.7 +11612 area-System.Globalization Compat work for NumberFormatInfo (for Linux) Add missing implementation for the newly added APIs in net standard 1.7 +11613 area-System.Globalization Compat work for RegionInfo (for Linux) Add missing implementation for the newly added APIs in net standard 1.7 +11614 area-System.Globalization Compat work for Sortversion (for Linux) +11615 area-System.Globalization Compat work for StringInfo class globalization APIs (for Linux) Add missing implementation for the newly added APIs in net standard 1.7 +11616 area-System.Globalization Compat work for TextInfo class (for Linux) Add missing implementation for the newly added APIs in net standard 1.7 +11617 area-System.Globalization Compat work for String class globalization APIs (for Linux) Add missing implementation for the newly added APIs in net standard 1.7 +11619 area-Meta Add string reason to all OuterLoop usage in tests Now that OuterLoopAttribute has a ctor that takes a string reason, we should update all OuterLoopAttribute usage to specify the reason the test was demoted to outer loop, e.g. makes network requests, mutates shared state on the machine, takes a long time to run, etc. Some tests already have this in various forms, e.g. a comment next to the [OuterLoop] usage, but we should standardize on including it in the message. And a lot of the usage doesn't specify the reason, forcing a developer who comes along later to try to guess why. +11622 area-System.IO Test failure on Ubuntu: System.IO.Tests.FileSystemWatcherTests/FileSystemWatcher_CreateManyConcurrentInstances Opened on behalf of @jiangzeng The test `System.IO.Tests.FileSystemWatcherTests/FileSystemWatcher_CreateManyConcurrentInstances` has failed. ``` System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. ``` Stack Trace: ``` at ExceptionExtensions.Unwrap(Exception ex) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - Ubuntu.1604.Amd64 - AnyCPU-Release - AnyCPU-Debug - Ubuntu.1404.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fcli~2F/build/20160910.01/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.FileSystemWatcherTests~2FFileSystemWatcher_CreateManyConcurrentInstances +11623 area-System.Net Test failure: System.Net.Http.Functional.Tests.SchSendAuxRecordHttpTest/HttpClient_ClientUsesAuxRecord_Ok Opened on behalf of @jiangzeng The test `System.Net.Http.Functional.Tests.SchSendAuxRecordHttpTest/HttpClient_ClientUsesAuxRecord_Ok` has failed. ``` System.TimeoutException : The operation has timed out. ``` Stack Trace: ``` at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.SchSendAuxRecordHttpTest.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - Windows.7.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fcli~2F/build/20160910.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.SchSendAuxRecordHttpTest~2FHttpClient_ClientUsesAuxRecord_Ok +11624 area-System.Net Test failure: System.Net.Security.Tests.ServerNoEncryptionTest/ServerNoEncryption_ClientNoEncryption_ConnectWithNoEncryption Opened on behalf of @jiangzeng The test `System.Net.Security.Tests.ServerNoEncryptionTest/ServerNoEncryption_ClientNoEncryption_ConnectWithNoEncryption` has failed. ``` Assert.Throws() Failure Expected: typeof(System.Security.Authentication.AuthenticationException) Actual: (No exception was thrown) ``` Stack Trace: ``` --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.ServerNoEncryptionTest.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - OSX.1011.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fcli~2F/build/20160910.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.ServerNoEncryptionTest~2FServerNoEncryption_ClientNoEncryption_ConnectWithNoEncryption +11631 area-System.Threading Port some missing threading types/members (Timer, exceptions, sync objects, etc.) ``` M:System.Threading.Timer.#ctor(System.Threading.TimerCallback) M:System.Threading.Timer.#ctor(System.Threading.TimerCallback,System.Object,System.Int64,System.Int64) M:System.Threading.Timer.#ctor(System.Threading.TimerCallback,System.Object,System.UInt32,System.UInt32) M:System.Threading.Timer.Change(System.Int64,System.Int64) M:System.Threading.Timer.Change(System.UInt32,System.UInt32) M:System.Threading.Timer.Dispose(System.Threading.WaitHandle) M:System.Threading.AbandonedMutexException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Threading.BarrierPostPhaseException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Threading.LockRecursionException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Threading.SemaphoreFullException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Threading.SynchronizationLockException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) T:System.Threading.ThreadAbortException T:System.Threading.ThreadInterruptedException M:System.Threading.ThreadInterruptedException.#ctor M:System.Threading.ThreadInterruptedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Threading.ThreadInterruptedException.#ctor(System.String) M:System.Threading.ThreadInterruptedException.#ctor(System.String,System.Exception) M:System.Threading.ThreadStateException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Threading.WaitHandleCannotBeOpenedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) T:System.Threading.ThreadExceptionEventArgs M:System.Threading.ThreadExceptionEventArgs.#ctor(System.Exception) P:System.Threading.ThreadExceptionEventArgs.Exception M:System.Threading.ThreadExceptionEventArgs.get_Exception T:System.Threading.ThreadExceptionEventHandler M:System.Threading.ThreadExceptionEventHandler.#ctor(System.Object,System.IntPtr) M:System.Threading.ThreadExceptionEventHandler.BeginInvoke(System.Object,System.Threading.ThreadExceptionEventArgs,System.AsyncCallback,System.Object) M:System.Threading.ThreadExceptionEventHandler.EndInvoke(System.IAsyncResult) M:System.Threading.ThreadExceptionEventHandler.Invoke(System.Object,System.Threading.ThreadExceptionEventArgs) M:System.Threading.Monitor.Wait(System.Object,System.Int32,System.Boolean) M:System.Threading.Monitor.Wait(System.Object,System.TimeSpan,System.Boolean) ``` +11632 area-System.Threading Port some missing threading types/members (Thread, etc.) ``` M:System.Threading.Thread.#ctor(System.Threading.ParameterizedThreadStart,System.Int32) M:System.Threading.Thread.#ctor(System.Threading.ThreadStart,System.Int32) M:System.Threading.Thread.AllocateDataSlot M:System.Threading.Thread.AllocateNamedDataSlot(System.String) P:System.Threading.Thread.ApartmentState M:System.Threading.Thread.BeginCriticalRegion M:System.Threading.Thread.BeginThreadAffinity P:System.Threading.Thread.CurrentCulture P:System.Threading.Thread.CurrentPrincipal P:System.Threading.Thread.CurrentUICulture M:System.Threading.Thread.EndCriticalRegion M:System.Threading.Thread.EndThreadAffinity P:System.Threading.Thread.ExecutionContext M:System.Threading.Thread.FreeNamedDataSlot(System.String) M:System.Threading.Thread.get_ApartmentState M:System.Threading.Thread.get_CurrentCulture M:System.Threading.Thread.get_CurrentPrincipal M:System.Threading.Thread.get_CurrentUICulture M:System.Threading.Thread.get_ExecutionContext M:System.Threading.Thread.get_IsThreadPoolThread M:System.Threading.Thread.get_Priority M:System.Threading.Thread.GetApartmentState M:System.Threading.Thread.GetData(System.LocalDataStoreSlot) M:System.Threading.Thread.GetDomain M:System.Threading.Thread.GetDomainID M:System.Threading.Thread.GetHashCode M:System.Threading.Thread.GetNamedDataSlot(System.String) P:System.Threading.Thread.IsThreadPoolThread M:System.Threading.Thread.Join(System.TimeSpan) M:System.Threading.Thread.MemoryBarrier P:System.Threading.Thread.Priority M:System.Threading.Thread.set_ApartmentState(System.Threading.ApartmentState) M:System.Threading.Thread.set_CurrentCulture(System.Globalization.CultureInfo) M:System.Threading.Thread.set_CurrentPrincipal(System.Security.Principal.IPrincipal) M:System.Threading.Thread.set_CurrentUICulture(System.Globalization.CultureInfo) M:System.Threading.Thread.set_Priority(System.Threading.ThreadPriority) M:System.Threading.Thread.SetApartmentState(System.Threading.ApartmentState) M:System.Threading.Thread.SetData(System.LocalDataStoreSlot,System.Object) M:System.Threading.Thread.SpinWait(System.Int32) M:System.Threading.Thread.TrySetApartmentState(System.Threading.ApartmentState) M:System.Threading.Thread.VolatileRead(System.Byte@) M:System.Threading.Thread.VolatileRead(System.Double@) M:System.Threading.Thread.VolatileRead(System.Int16@) M:System.Threading.Thread.VolatileRead(System.Int32@) M:System.Threading.Thread.VolatileRead(System.Int64@) M:System.Threading.Thread.VolatileRead(System.IntPtr@) M:System.Threading.Thread.VolatileRead(System.Object@) M:System.Threading.Thread.VolatileRead(System.SByte@) M:System.Threading.Thread.VolatileRead(System.Single@) M:System.Threading.Thread.VolatileRead(System.UInt16@) M:System.Threading.Thread.VolatileRead(System.UInt32@) M:System.Threading.Thread.VolatileRead(System.UInt64@) M:System.Threading.Thread.VolatileRead(System.UIntPtr@) M:System.Threading.Thread.VolatileWrite(System.Byte@,System.Byte) M:System.Threading.Thread.VolatileWrite(System.Double@,System.Double) M:System.Threading.Thread.VolatileWrite(System.Int16@,System.Int16) M:System.Threading.Thread.VolatileWrite(System.Int32@,System.Int32) M:System.Threading.Thread.VolatileWrite(System.Int64@,System.Int64) M:System.Threading.Thread.VolatileWrite(System.IntPtr@,System.IntPtr) M:System.Threading.Thread.VolatileWrite(System.Object@,System.Object) M:System.Threading.Thread.VolatileWrite(System.SByte@,System.SByte) M:System.Threading.Thread.VolatileWrite(System.Single@,System.Single) M:System.Threading.Thread.VolatileWrite(System.UInt16@,System.UInt16) M:System.Threading.Thread.VolatileWrite(System.UInt32@,System.UInt32) M:System.Threading.Thread.VolatileWrite(System.UInt64@,System.UInt64) M:System.Threading.Thread.VolatileWrite(System.UIntPtr@,System.UIntPtr) M:System.Threading.Thread.Yield T:System.LocalDataStoreSlot T:System.Threading.ApartmentState F:System.Threading.ApartmentState.MTA F:System.Threading.ApartmentState.STA F:System.Threading.ApartmentState.Unknown F:System.Threading.ApartmentState.value__ T:System.Threading.ThreadPriority F:System.Threading.ThreadPriority.AboveNormal F:System.Threading.ThreadPriority.BelowNormal F:System.Threading.ThreadPriority.Highest F:System.Threading.ThreadPriority.Lowest F:System.Threading.ThreadPriority.Normal F:System.Threading.ThreadPriority.value__ ``` +11633 area-System.Threading Port some missing threading types/members (ThreadPool, etc.) ``` M:System.Threading.ThreadPool.GetAvailableThreads(System.Int32@,System.Int32@) M:System.Threading.ThreadPool.GetMaxThreads(System.Int32@,System.Int32@) M:System.Threading.ThreadPool.GetMinThreads(System.Int32@,System.Int32@) M:System.Threading.ThreadPool.SetMaxThreads(System.Int32,System.Int32) M:System.Threading.ThreadPool.SetMinThreads(System.Int32,System.Int32) M:System.Threading.ThreadPool.UnsafeQueueUserWorkItem(System.Threading.WaitCallback,System.Object) M:System.Threading.ThreadPool.UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int32,System.Boolean) M:System.Threading.ThreadPool.UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.Int64,System.Boolean) M:System.Threading.ThreadPool.UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.TimeSpan,System.Boolean) M:System.Threading.ThreadPool.UnsafeRegisterWaitForSingleObject(System.Threading.WaitHandle,System.Threading.WaitOrTimerCallback,System.Object,System.UInt32,System.Boolean) ``` +11634 area-System.Threading Port some missing threading types/members (ReaderWriterLock, etc.) ``` T:System.Threading.ReaderWriterLock M:System.Threading.ReaderWriterLock.#ctor M:System.Threading.ReaderWriterLock.AcquireReaderLock(System.Int32) M:System.Threading.ReaderWriterLock.AcquireReaderLock(System.TimeSpan) M:System.Threading.ReaderWriterLock.AcquireWriterLock(System.Int32) M:System.Threading.ReaderWriterLock.AcquireWriterLock(System.TimeSpan) M:System.Threading.ReaderWriterLock.AnyWritersSince(System.Int32) M:System.Threading.ReaderWriterLock.DowngradeFromWriterLock(System.Threading.LockCookie@) M:System.Threading.ReaderWriterLock.get_IsReaderLockHeld M:System.Threading.ReaderWriterLock.get_IsWriterLockHeld M:System.Threading.ReaderWriterLock.get_WriterSeqNum P:System.Threading.ReaderWriterLock.IsReaderLockHeld P:System.Threading.ReaderWriterLock.IsWriterLockHeld M:System.Threading.ReaderWriterLock.ReleaseLock M:System.Threading.ReaderWriterLock.ReleaseReaderLock M:System.Threading.ReaderWriterLock.ReleaseWriterLock M:System.Threading.ReaderWriterLock.RestoreLock(System.Threading.LockCookie@) M:System.Threading.ReaderWriterLock.UpgradeToWriterLock(System.Int32) M:System.Threading.ReaderWriterLock.UpgradeToWriterLock(System.TimeSpan) P:System.Threading.ReaderWriterLock.WriterSeqNum T:System.Threading.LockCookie M:System.Threading.LockCookie.Equals(System.Object) M:System.Threading.LockCookie.Equals(System.Threading.LockCookie) M:System.Threading.LockCookie.GetHashCode M:System.Threading.LockCookie.op_Equality(System.Threading.LockCookie,System.Threading.LockCookie) M:System.Threading.LockCookie.op_Inequality(System.Threading.LockCookie,System.Threading.LockCookie) ``` +11635 area-System.Threading Port some missing threading types/members (ExecutionContext, etc.) ``` M:System.Threading.ExecutionContext.CreateCopy M:System.Threading.ExecutionContext.Dispose M:System.Threading.ExecutionContext.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Threading.ExecutionContext.IsFlowSuppressed M:System.Threading.ExecutionContext.RestoreFlow M:System.Threading.ExecutionContext.SuppressFlow T:System.Threading.HostExecutionContext M:System.Threading.HostExecutionContext.#ctor M:System.Threading.HostExecutionContext.#ctor(System.Object) M:System.Threading.HostExecutionContext.CreateCopy M:System.Threading.HostExecutionContext.Dispose M:System.Threading.HostExecutionContext.Dispose(System.Boolean) M:System.Threading.HostExecutionContext.get_State M:System.Threading.HostExecutionContext.set_State(System.Object) P:System.Threading.HostExecutionContext.State T:System.Threading.HostExecutionContextManager M:System.Threading.HostExecutionContextManager.#ctor M:System.Threading.HostExecutionContextManager.Capture M:System.Threading.HostExecutionContextManager.Revert(System.Object) M:System.Threading.HostExecutionContextManager.SetHostExecutionContext(System.Threading.HostExecutionContext) M:System.Threading.Thread.GetCompressedStack M:System.Threading.Thread.SetCompressedStack(System.Threading.CompressedStack) T:System.Threading.AsyncFlowControl M:System.Threading.AsyncFlowControl.Dispose M:System.Threading.AsyncFlowControl.Equals(System.Object) M:System.Threading.AsyncFlowControl.Equals(System.Threading.AsyncFlowControl) M:System.Threading.AsyncFlowControl.GetHashCode M:System.Threading.AsyncFlowControl.op_Equality(System.Threading.AsyncFlowControl,System.Threading.AsyncFlowControl) M:System.Threading.AsyncFlowControl.op_Inequality(System.Threading.AsyncFlowControl,System.Threading.AsyncFlowControl) M:System.Threading.AsyncFlowControl.Undo T:System.Threading.CompressedStack M:System.Threading.CompressedStack.Capture M:System.Threading.CompressedStack.CreateCopy M:System.Threading.CompressedStack.GetCompressedStack M:System.Threading.CompressedStack.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Threading.CompressedStack.Run(System.Threading.CompressedStack,System.Threading.ContextCallback,System.Object) ``` +11636 area-System.Threading Port some missing threading types/members (SynchronizationContext wait, etc.) ``` M:System.Threading.SynchronizationContext.IsWaitNotificationRequired M:System.Threading.SynchronizationContext.SetThreadStaticContext(System.Threading.SynchronizationContext) M:System.Threading.SynchronizationContext.SetWaitNotificationRequired M:System.Threading.SynchronizationContext.Wait(System.IntPtr[],System.Boolean,System.Int32) M:System.Threading.SynchronizationContext.WaitHelper(System.IntPtr[],System.Boolean,System.Int32) ``` +11637 area-System.Threading Port some missing threading types/members (Overlapped, etc.) - [x] M:System.Threading.ThreadPool.BindHandle(System.IntPtr) - [ ] M:System.Threading.ThreadPool.UnsafeQueueNativeOverlapped(System.Threading.NativeOverlapped*) - [ ] T:System.Threading.Overlapped - [ ] M:System.Threading.Overlapped.#ctor - [ ] M:System.Threading.Overlapped.#ctor(System.Int32,System.Int32,System.Int32,System.IAsyncResult) - [ ] M:System.Threading.Overlapped.#ctor(System.Int32,System.Int32,System.IntPtr,System.IAsyncResult) - [ ] P:System.Threading.Overlapped.AsyncResult - [ ] P:System.Threading.Overlapped.EventHandle - [ ] P:System.Threading.Overlapped.EventHandleIntPtr - [ ] M:System.Threading.Overlapped.Free(System.Threading.NativeOverlapped*) - [ ] M:System.Threading.Overlapped.get_AsyncResult - [ ] M:System.Threading.Overlapped.get_EventHandle - [ ] M:System.Threading.Overlapped.get_EventHandleIntPtr - [ ] M:System.Threading.Overlapped.get_OffsetHigh - [ ] M:System.Threading.Overlapped.get_OffsetLow - [ ] P:System.Threading.Overlapped.OffsetHigh - [ ] P:System.Threading.Overlapped.OffsetLow - [ ] M:System.Threading.Overlapped.Pack(System.Threading.IOCompletionCallback) - [ ] M:System.Threading.Overlapped.Pack(System.Threading.IOCompletionCallback,System.Object) - [ ] M:System.Threading.Overlapped.set_AsyncResult(System.IAsyncResult) - [ ] M:System.Threading.Overlapped.set_EventHandle(System.Int32) - [ ] M:System.Threading.Overlapped.set_EventHandleIntPtr(System.IntPtr) - [ ] M:System.Threading.Overlapped.set_OffsetHigh(System.Int32) - [ ] M:System.Threading.Overlapped.set_OffsetLow(System.Int32) - [ ] M:System.Threading.Overlapped.Unpack(System.Threading.NativeOverlapped*) - [ ] M:System.Threading.Overlapped.UnsafePack(System.Threading.IOCompletionCallback) - [ ] M:System.Threading.Overlapped.UnsafePack(System.Threading.IOCompletionCallback,System.Object) +11638 area-System.Threading Port some missing threading types/members (Thread abort/interrupt/suspend, etc.) ``` M:System.Threading.Thread.Abort M:System.Threading.Thread.Abort(System.Object) M:System.Threading.Thread.DisableComObjectEagerCleanup M:System.Threading.Thread.Interrupt M:System.Threading.Thread.ResetAbort M:System.Threading.Thread.Suspend M:System.Threading.Thread.Resume ``` ``` namespace System.Runtime.InteropServices { public static class Marshal { public static void CleanupUnusedObjectsInCurrentContext(); } } ``` +11639 area-System.Reflection Load assemblies with nuget package dependencies "I have been trying to dynamically load assemblies that have dependencies on nuget packages, of course the nuget packages have been restored and the proper dlls are present in the output folder. I do this to load the assembly: `var aName = AssemblyLoadContext.GetAssemblyName(file.FullName);` `var library = Assembly.Load(aName);` And then I load the types like this: `types = library.GetTypes();` When the assembly does not uses any dependency, the types are loaded correctly, but when the assembly uses a nuget package I get an exception with a loader exception like this: `Message = ""Could not load file or assembly 'needletail_dotnet_core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.""` I can dynamically load the assemblies that are part of the nuget packages and get their types. So my question is how to load assemblies that have nuget packages(or any other) depenency on dotnet core? I am using dotnet version 1.0.1 Build cee57bf6c981237d80aa1631cfe83cb9ba329f12. Some suggested answers on the internet use beta versions of dotnet core. " +11646 area-System.Security Csp error strings missing error code parameter "The System.Security.Cryptography.Csp project has resource strings (in Strings.resx) that are called with an error code parameter, but the string literal doesn't include the parameters identifier {0} thus any such error string won't work. Verification against desktop clr strings should be performed, although at first look the error strings don't necessary align here. Sample case: DSACryptoServiceProvider csp = new DSACryptoServiceProvider(2048); The known list includes: CryptDecrypt_Failed,, @""CryptDecrypt failed with error code "" CryptEncrypt_Failed, @""CryptEncrypt failed with error code "" CryptExportKey_Failed, @""CryptExportKey failed with error code "") CryptGenKey_Failed"", @""CryptGenKey failed with error code "") CryptGetDefaultProvider_Fail, @""CryptGetDefaultProvider failed with Error code "" CryptGetKeyParam_Failed, @""CryptGetKeyParam failed with error code "" CryptGetProvParam_Failed, @""CryptGetProvParam failed with error code "" CryptGetUserKey_Failed, @""CryptGetUserKey failed with error code "" " +11647 area-System.Runtime Port Uri parsing related members These seem to go reasonably together ``` M:System.FileStyleUriParser.#ctor M:System.FtpStyleUriParser.#ctor M:System.GenericUriParser.#ctor(System.GenericUriParserOptions) F:System.GenericUriParserOptions.AllowEmptyAuthority F:System.GenericUriParserOptions.Default F:System.GenericUriParserOptions.DontCompressPath F:System.GenericUriParserOptions.DontConvertPathBackslashes F:System.GenericUriParserOptions.DontUnescapePathDotsAndSlashes F:System.GenericUriParserOptions.GenericAuthority F:System.GenericUriParserOptions.Idn F:System.GenericUriParserOptions.IriParsing F:System.GenericUriParserOptions.NoFragment F:System.GenericUriParserOptions.NoPort F:System.GenericUriParserOptions.NoQuery F:System.GenericUriParserOptions.NoUserInfo M:System.GopherStyleUriParser.#ctor M:System.HttpStyleUriParser.#ctor M:System.LdapStyleUriParser.#ctor M:System.NetPipeStyleUriParser.#ctor M:System.NetTcpStyleUriParser.#ctor M:System.NewsStyleUriParser.#ctor M:System.Uri.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Uri.Canonicalize M:System.Uri.CheckSecurity M:System.Uri.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.UriFormatException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.UriParser.#ctor M:System.UriParser.GetComponents(System.Uri,System.UriComponents,System.UriFormat) M:System.UriParser.InitializeAndValidate(System.Uri,System.UriFormatException@) M:System.UriParser.IsBaseOf(System.Uri,System.Uri) M:System.UriParser.IsKnownScheme(System.String) M:System.UriParser.IsWellFormedOriginalString(System.Uri) M:System.UriParser.OnNewUri M:System.UriParser.OnRegister(System.String,System.Int32) M:System.UriParser.Register(System.UriParser,System.String,System.Int32) M:System.UriParser.Resolve(System.Uri,System.Uri,System.UriFormatException@) ``` +11651 area-Serialization Support text.Mapping being SpecialMapping when using ReflectionBased … Support text.Mapping being SpecialMapping when using ReflectionBased Serializer. #10592 #11367 @shmao @zhenlan @mconnew +11654 area-System.Net Make async continuations run on different thread to avoid deadlock Fixes #4429 +11655 area-System.Reflection Restore System.Reflection.Assembly load APIs These APIs need to be exposed from System.Reflection: ``` M:System.Reflection.Assembly.Load(byte[],byte[],System.Security.Policy.Evidence) M:System.Reflection.Assembly.Load(byte[],byte[],System.Security.SecurityContextSource) M:System.Reflection.Assembly.Load(System.Reflection.AssemblyName,System.Security.Policy.Evidence) M:System.Reflection.Assembly.Load(System.String,System.Security.Policy.Evidence) M:System.Reflection.Assembly.LoadFrom(System.String) M:System.Reflection.Assembly.LoadFrom(System.String,byte[],System.Configuration.Assemblies.AssemblyHashAlgorithm) M:System.Reflection.Assembly.LoadFrom(System.String,System.Security.Policy.Evidence) M:System.Reflection.Assembly.LoadFrom(System.String,System.Security.Policy.Evidence,byte[],System.Configuration.Assemblies.AssemblyHashAlgorithm) M:System.Reflection.Assembly.LoadFile(System.String) M:System.Reflection.Assembly.LoadFile(System.String,System.Security.Policy.Evidence) M:System.Reflection.Assembly.LoadModule(System.String,byte[]) M:System.Reflection.Assembly.LoadModule(System.String,byte[],byte[]) M:System.Reflection.Assembly.LoadWithPartialName(System.String) M:System.Reflection.Assembly.LoadWithPartialName(System.String,System.Security.Policy.Evidence) M:System.Reflection.Assembly.UnsafeLoadFrom(System.String) ``` +11656 area-System.Reflection APIs not exposed from System.Reflection The following is a list of Reflection APIs that are not going to be included in netstandard2.0 [This is only to keep track in case we decide to expose these later.] ``` M:System.Reflection.FieldInfo.GetValueDirect(System.TypedReference) M:System.Reflection.FieldInfo.SetValueDirect(System.TypedReference,System.Object) M:System.Reflection.MemberInfo.System.Runtime.InteropServices._MemberInfo.GetIDsOfNames(System.GUID,System.IntPtr,System.UInt32,System.UInt32,System.IntPtr) M:System.Reflection.MemberInfo.System.Runtime.InteropServices._MemberInfo.GetType M:System.Reflection.MemberInfo.System.Runtime.InteropServices._MemberInfo.GetTypeInfo(System.UInt32,System.UInt32,System.IntPtr) M:System.Reflection.MemberInfo.System.Runtime.InteropServices._MemberInfo.GetTypeInfo(System.UInt32) M:System.Reflection.MemberInfo.System.Runtime.InteropServices._MemberInfo.Invoke(System.UInt32,System.GUID,System.UInt32,System.Int16,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsAbstract M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsAssembly M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsConstructor M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsFamily M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsFamilyAndAssembly M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsFamilyOrAssembly M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsFinal M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsHideBySig M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsPrivate M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsPublic M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsSpecialName M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsStatic M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.get_IsVirtual M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.GetIDsOfNames(System.GUID,System.IntPtr,System.UInt32,System.UInt32,System.IntPtr) M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.GetType M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.GetTypeInfo(System.UInt32,System.UInt32,System.IntPtr) M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.GetTypeInfoCount(System.UInt32) M:System.Reflection.MethodBase.System.Runtime.InteropServices._MethodBase.Invoke(System.UInt32,System.GUID,System.UInt32,System.UInt16,System.IntPtr,System.IntPtr,System.IntPtr,System.IntPtr) ``` The following list we prefer not to expose, as they are either CAS-related APIs or have dependencies on also-not-exposed types from other contracts: ``` M:System.Reflection.Assembly.get_Evidence M:System.Reflection.Assembly.get_IsFullyTrusted M:System.Reflection.Assembly.Load(byte[],byte[],System.Security.Policy.Evidence) M:System.Reflection.Assembly.Load(byte[],byte[],System.Security.SecurityContextSource) M:System.Reflection.Assembly.Load(System.Reflection.AssemblyName,System.Security.Policy.Evidence) M:System.Reflection.Assembly.Load(System.String,System.Security.Policy.Evidence) M:System.Reflection.Assembly.LoadFrom(System.String,System.Security.Policy.Evidence) M:System.Reflection.Assembly.LoadFrom(System.String,System.Security.Policy.Evidence,byte[],System.Configuration M:System.Reflection.Assembly.LoadFile(System.String,System.Security.Policy.Evidence) M:System.Reflection.Assembly.LoadWithPartialName(System.String,System.Security.Policy.Evidence) M:System.Reflection.AssemblyName.get_KeyPair M:System.Reflection.AssemblyName.set_KeyPair(System.Reflection.StrongNameKeyPair) C:System.Reflection.StrongNameKeyPair M:System.Reflection.Module.GetSignerCertificate ``` +11657 area-System.Net Test failure: System.Net.Tests.HttpWebRequestTest/GetResponseAsync_ResourceNotFound_ThrowsWebException Opened on behalf of @jiangzeng The test `System.Net.Tests.HttpWebRequestTest/GetResponseAsync_ResourceNotFound_ThrowsWebException` has failed. ``` Assert.Equal() Failure Expected: ProtocolError Actual: UnknownError ``` Stack Trace: ``` at System.Net.Tests.HttpWebRequestTest.d__46.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - Centos.71.Amd64 - AnyCPU-Debug - AnyCPU-Release - Redhat.72.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fcli~2F/build/20160912.01/workItem/System.Net.Requests.Tests/analysis/xunit/System.Net.Tests.HttpWebRequestTest~2FGetResponseAsync_ResourceNotFound_ThrowsWebException +11658 area-System.IO EncryptFile & DecryptFile not available on all Windows versions These APIs (exposed through File and FileInfo) are entries into EFS functionality. WinRT doesn't expose these particular APIs directly, but has a `FileProtectionManager` class that provides access to EFS (Encrypt is the only currently supported entrypoint). OneCore also does not expose EncryptFile\DecryptFile. Need to follow through on the plausibility of using FileProtectionManager and potentially other entry points into EFS to expose this API in CoreFx on Windows. +11660 area-System.Runtime Dispose of Iterators should be changed to use C# 6 null-conditionals [Currently](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Select.cs#L444-L448) there are many LINQ iterators have code of the form ``` cs public override void Dispose() { if (_enumerator != null) { _enumerator.Dispose(); _enumerator = null; } base.Dispose(); } ``` This has a few problems: - It can lead to a double-Dispose of the enumerator if 2 threads call the method. (probably unavoidable w/o Interlocked) - If `_enumerator.Dispose()` calls `Dispose()` on that iterator it can lead to a stack overflow - It can lead to a nullref if one thread sets it to null, and the other has just checked for null. We should change this to ``` cs // Fixes #3 _enumerator?.Dispose(); _enumerator = null; ``` or ``` cs // Fixes #2 and #3 var enumerator = _enumerator; _enumerator = null; enumerator?.Dispose(); ``` +11661 area-Meta Binding redirects aren't generated for desktop projects when referencing NETStandard-based libraries/installing corefx packages "Steps to repro: 1) Create a new desktop .NET 4.6+ project 2) Add project.json 3) Add a reference to any NETStandard-based library or just install corefx packages 4) Build it **Expected results**: a bunch of facade assemblies are placed in the output folder. The following binding redirects are generated: ``` ``` **Actual results**: only those 3 redirects are emitted: ``` ``` As a result, you're unable to use, say, System.IO.Compression.ZipFile, cause there's no binding redirect for the System.IO.Compression assembly (you'll get a MissingMethodException if you try). So, basically just adding a reference to a portable library may break a lot of things. Sounds like a poor user experience. " +11665 area-System.Runtime Delete Random from corefx System.Random is now exposed publicly from both coreclr and corert, and it's used by code in both repos. As such, we don't also need a copy of it in corefx. We should delete it. We can do so once the seed assemblies for GenFacade have been updated so that the corefx tooling knows Random is also available in corert. +11667 area-System.IO Use ArrayPool in corefx's CopyToAsync implementations FileStream's async mode is handled via #11666, but we can do the same for our other stream-derived types. +11668 area-System.IO System.IO.Compression: ZipArchive loads entire file in memory on .Dispose When you open a `ZipArchive` in Update mode, the entire zip file will be loaded in memory when the `.Dispose` method is invoked. This is because `.Dipose` calls `.WriteFile`, which: - Calls `LoadLocalHeaderExtraFieldAndCompressedBytesIfNeeded` for all entries, which loads the compressed data into memory for those entries - Sets the size of the .zip archive to 0, by calling `_archiveStream.SetLength(0);` - Writes out all entries one by one. As a result: - A lot of memory is used, the compressed data for each entry is loaded into memory - A lot of unnecessary disk I/O is performed, because all entries are written out again, even if they were not modified. An alternative may be to incrementally update the zip archive, and only update entries which changes. +11669 area-System.IO System.IO.Compression: ZipArchiveEntry always stores uncompressed data in memory If a `ZipArchive` is opened in Update mode, calling `ZipArchiveEntry.Open` will always result in the entry's data being decompressed and stored in memory. This is because `ZipArchiveEntry.Open` calls `ZipArchiveEntry.OpenInUpdateMode`, which in return gets the value of the `ZipArchiveEntry.UncompressedData` property, which will decompress the data and store it in a `MemoryStream`. This in its own is already fairly inconvenient - if I'm updating a large file (say 1GB) that's compressed in a zip archive, I would want to read it from the `ZipArchiveEntry` in smaller chunks, save it to a temporary file, and update the entry in the `ZipArchive` in a similar way (i.e. limiting the memory overhead and preferring temporary files instead). This also means that as soon as a `ZipArchive` is opened in Update mode, even reading an `ZipArchiveEntry` which you'll never update incurs the additional cost. A short-term fix may be to expose `ZipArchiveEntry.OpenInReadMode`, which will return a `DeflateStream` instead. If you're doing mixed reading/writing of entries in a single `ZipArchive`, this should already help you avoid some of the memory overhead. +11670 area-System.Diagnostics System.ComponentModel.Win32Exception when trying get Process.StartTime in the exited process on Linux Here example https://github.com/SerhiiS-in6k/Issue-net-core-process/blob/master/Program.cs The exception occurs only on Linux(Ubuntu14.04-x64) on Windows works fine. +11672 area-Meta ILMerge Hi, sorry if wrong repo. What would the best option be to create a dotnet core command line application and publish a single executable for Windows? Is ILMerge still the way to go? Has anyone tried this? +11674 area-System.Net Memory growth of WinHttpRequestState objects I have a web server that accepts an http request and then makes a post request to a bunch of other servers using `HttpClient`. To speed this up we make a `Task` for each request and call `HttpClient.PostAsync` inside each task. These tasks are synchronously waited on with `Task.WaitAny` in order to check the results as they come in. All the code inside the tasks uses async/await. Finally, each task get's a new `HttpClient` but they all use a shared static `HttpClientHandler` which is not disposed when the client is disposed. I have been having issues where out of the blue all of the memory on the server is used up and the number of handles goes through the roof. This happens suddenly over the course of a 10-15 min. Looking at the dumps I have been able to get I can see that most of the handles are rooted in `WinHttpRequestState`. While I am still unsure of the root cause I was looking at `WinHttpHandler` and `WinHttpRequestCallback` and noticed that `WinHttpRequestCallback.RequestCallback` is surrounded in a try/catch, however if any exception is thrown `WinHttpHandler` is not signaled by `WinHttpRequestCallback.RequestCallback` because none of it's `TaskCompletionSource`s are given the exception. Is this correct? If an exception does happen in `WinHttpRequestCallback.RequestCallback` will the task created by `WinHttpHandler.SendAsync` just sit forever? Please let me know if I have missed something. Thanks! +11678 area-System.IO Add Outerloop messages and cleanup FSW tests Test cleanup that got left out of https://github.com/dotnet/corefx/pull/11357 because Outerloop messages weren't available yet. @stephentoub +11680 area-System.Runtime Remove projectreferences from csproj introduced as part of PR #11275 +11683 area-System.Data SqlClient stress test TestSqlAsyncNonBlockingWrite Environment: Windows Server 2012 R2, OSX SqlClient: Managed SNI enabled. While executing the test `TestSqlAsyncNonBlockingWrite` the following unexpected exception is detected in SqlClient. ``` Test: TestSqlAsyncNonBlockingWrite System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Diagn ostics.Debug+DebugAssertException: _pendingCallbacks values is invalid after decrementing: -2 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Data.SqlClient.TdsParserStateObject.DecrementPendingCallbacks(Boolean release) in e:\work\gitclone\corefx\s rc\System.Data.SqlClient\src\System\Data\SqlClient\TdsParserStateObject.cs:line 910 at System.Data.SqlClient.TdsParserSessionPool.Dispose() in e:\work\gitclone\corefx\src\System.Data.SqlClient\src\Syst em\Data\SqlClient\TdsParserSessionPool.cs:line 128 at System.Data.SqlClient.TdsParser.Disconnect() in e:\work\gitclone\corefx\src\System.Data.SqlClient\src\System\Data\ SqlClient\TdsParser.cs:line 1012 at System.Data.SqlClient.SqlInternalConnectionTds.Dispose() in e:\work\gitclone\corefx\src\System.Data.SqlClient\src\ System\Data\SqlClient\SqlInternalConnectionTds.cs:line 544 at System.Data.ProviderBase.DbConnectionPool.DestroyObject(DbConnectionInternal obj) in e:\work\gitclone\corefx\src\S ystem.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs:line 574 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObject sTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& co nnection) in e:\work\gitclone\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs:line 831 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry , DbConnectionOptions userOptions, DbConnectionInternal& connection) in e:\work\gitclone\corefx\src\System.Data.SqlClien t\src\System\Data\ProviderBase\DbConnectionPool.cs:line 712 at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource` 1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) in e:\wo rk\gitclone\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionFactory.cs:line 281 at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnection Factory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) in e:\work\gitclone\corefx\src \System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionInternal.cs:line 443 at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory co nnectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) in e:\work\gitclone\corefx\src\System.Da ta.SqlClient\src\System\Data\ProviderBase\DbConnectionClosed.cs:line 64 at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) in e:\work\gitclone\corefx\src\System.Da ta.SqlClient\src\System\Data\SqlClient\SqlConnection.cs:line 992 at System.Data.SqlClient.SqlConnection.Open() in e:\work\gitclone\corefx\src\System.Data.SqlClient\src\System\Data\Sq lClient\SqlConnection.cs:line 577 at Stress.Data.DataStressConnection.OpenSync() in e:\work\gitclone\corefx\src\System.Data.SqlClient\tests\StressTests \System.Data.StressFramework\DataStressConnection.cs:line 87 at Stress.Data.DataStressConnection.Open() in e:\work\gitclone\corefx\src\System.Data.SqlClient\tests\StressTests\Sys tem.Data.StressFramework\DataStressConnection.cs:line 49 at Stress.Data.DataStressFactory.GetRandomPK(Random rnd, TableMetadata table) in e:\work\gitclone\corefx\src\System.D ata.SqlClient\tests\StressTests\System.Data.StressFramework\DataStressFactory.cs:line 333 at Stress.Data.DataStressFactory.GetUpdateCommand(Random rnd, TableMetadata table, DataStressConnection conn) in e:\w ork\gitclone\corefx\src\System.Data.SqlClient\tests\StressTests\System.Data.StressFramework\DataStressFactory.cs:line 41 6 at Stress.Data.DataStressFactory.GetCommand(Random rnd, TableMetadata table, DataStressConnection conn, Boolean query , Boolean isXml) in e:\work\gitclone\corefx\src\System.Data.SqlClient\tests\StressTests\System.Data.StressFramework\Data StressFactory.cs:line 204 at Stress.Data.SqlClient.SqlClientTestGroup.TestSqlAsync(Random rnd, Boolean read, Boolean poll, Boolean handle, Bool ean xml) in e:\work\gitclone\corefx\src\System.Data.SqlClient\tests\StressTests\System.Data.SqlClient.Stress.Tests\SqlCl ientTestGroup.cs:line 284 at Stress.Data.SqlClient.SqlClientTestGroup.TestSqlAsyncNonBlockingWrite() in e:\work\gitclone\corefx\src\System.Data .SqlClient\tests\StressTests\System.Data.SqlClient.Stress.Tests\SqlClientTestGroup.cs:line 347 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters , CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at DPStressHarness.TestBase.b__21_0(Object instance) in e:\work\gitclone\corefx\src\System. Data.SqlClient\tests\StressTests\System.Data.StressRunner\TestBase.cs:line 138 at DPStressHarness.StressTest.Run() in e:\work\gitclone\corefx\src\System.Data.SqlClient\tests\StressTests\System.Dat a.StressRunner\StressTest.cs:line 116 at DPStressHarness.StressEngine.RunStressThread() in e:\work\gitclone\corefx\src\System.Data.SqlClient\tests\StressTe sts\System.Data.StressRunner\StressEngine.cs:line 172 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Diagnostics.Debug.WindowsDebugLogger.ShowAssertDialog(String stackTrace, String message, String detailMessa ge) at System.Data.SqlClient.TdsParserStateObject.DecrementPendingCallbacks(Boolean release) in e:\work\gitclone\corefx\s rc\System.Data.SqlClient\src\System\Data\SqlClient\TdsParserStateObject.cs:line 910 at System.Data.SqlClient.TdsParserSessionPool.Dispose() in e:\work\gitclone\corefx\src\System.Data.SqlClient\src\Syst em\Data\SqlClient\TdsParserSessionPool.cs:line 128 at System.Data.SqlClient.TdsParser.Disconnect() in e:\work\gitclone\corefx\src\System.Data.SqlClient\src\System\Data\ SqlClient\TdsParser.cs:line 1012 at System.Data.SqlClient.SqlInternalConnectionTds.Dispose() in e:\work\gitclone\corefx\src\System.Data.SqlClient\src\ System\Data\SqlClient\SqlInternalConnectionTds.cs:line 544 at System.Data.ProviderBase.DbConnectionPool.DestroyObject(DbConnectionInternal obj) in e:\work\gitclone\corefx\src\S ystem.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs:line 574 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObject sTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& co nnection) in e:\work\gitclone\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs:line 831 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry , DbConnectionOptions userOptions, DbConnectionInternal& connection) in e:\work\gitclone\corefx\src\System.Data.SqlClien t\src\System\Data\ProviderBase\DbConnectionPool.cs:line 712 at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource` 1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) in e:\wo rk\gitclone\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionFactory.cs:line 281 at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnection Factory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) in e:\work\gitclone\corefx\src \System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionInternal.cs:line 452 at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory co nnectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) in e:\work\gitclone\corefx\src\System.Da ta.SqlClient\src\System\Data\ProviderBase\DbConnectionClosed.cs:line 64 at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) in e:\work\gitclone\corefx\src\System.Da ta.SqlClient\src\System\Data\SqlClient\SqlConnection.cs:line 992 at System.Data.SqlClient.SqlConnection.Open() in e:\work\gitclone\corefx\src\System.Data.SqlClient\src\System\Data\Sq lClient\SqlConnection.cs:line 585 at Stress.Data.DataStressConnection.OpenSync() in e:\work\gitclone\corefx\src\System.Data.SqlClient\tests\StressTests \System.Data.StressFramework\DataStressConnection.cs:line 87 at Stress.Data.DataStressConnection.Open() in e:\work\gitclone\corefx\src\System.Data.SqlClient\tests\StressTests\Sys tem.Data.StressFramework\DataStressConnection.cs:line 49 at Stress.Data.DataStressFactory.GetRandomPK(Random rnd, TableMetadata table) in e:\work\gitclone\corefx\src\System.D ata.SqlClient\tests\StressTests\System.Data.StressFramework\DataStressFactory.cs:line 333 at Stress.Data.DataStressFactory.GetUpdateCommand(Random rnd, TableMetadata table, DataStressConnection conn) in e:\w ork\gitclone\corefx\src\System.Data.SqlClient\tests\StressTests\System.Data.StressFramework\DataStressFactory.cs:line 41 6 at Stress.Data.DataStressFactory.GetCommand(Random rnd, TableMetadata table, DataStressConnection conn, Boolean query , Boolean isXml) in e:\work\gitclone\corefx\src\System.Data.SqlClient\tests\StressTests\System.Data.StressFramework\Data StressFactory.cs:line 204 at Stress.Data.SqlClient.SqlClientTestGroup.TestSqlAsync(Random rnd, Boolean read, Boolean poll, Boolean handle, Bool ean xml) in e:\work\gitclone\corefx\src\System.Data.SqlClient\tests\StressTests\System.Data.SqlClient.Stress.Tests\SqlCl ientTestGroup.cs:line 284 at Stress.Data.SqlClient.SqlClientTestGroup.TestSqlAsyncNonBlockingWrite() in e:\work\gitclone\corefx\src\System.Data .SqlClient\tests\StressTests\System.Data.SqlClient.Stress.Tests\SqlClientTestGroup.cs:line 347 ``` Execution command `CoreRun.exe System.Data.StressRunner.exe -a System.Data.SqlClient.Stress.Tests -duration 10 -test TestSqlAsyncNonBlockingWrite` +11685 area-System.IO After merge from dev/api, 2 System.IO.Compression tests started failing "cc: @ianhays after PR #11679 two System.IO.Compression tests started failing. Here is the test run output: ``` call CoreRun.exe xunit.console.netcore.exe System.IO.Compression.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.0tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonwindowstests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.IO.Compression.Tests Discovered: System.IO.Compression.Tests Starting: System.IO.Compression.Tests System.IO.Compression.Tests.zip_InvalidParametersAndStrangeFiles.ZipWithLargeSparseFile [FAIL] Assert.Equal() Failure Expected: 14917 Actual: 14779 Stack Trace: F:\git\corefx\src\System.IO.Compression\tests\ZipArchive\zip_InvalidParametersAndStrangeFiles.cs(239,0): at System.IO.Compression.Tests.zip_InvalidParametersAndStrangeFiles.ZipWithLargeSparseFile() System.IO.Compression.Tests.zip_ManualAndCompatabilityTests.CompatibilityTests(zipFile: ""deflate64.zip"", zipFolder: ""normal"", requireExplicit: True, checkTimes: True) [FAIL] Assert.All() Failure: 1 out of 6 items in the collection did not pass. [0]: System.IO.InvalidDataException: The archive entry was compressed using an unsupported compression method. at System.IO.Compression.ZipArchiveEntry.OpenInUpdateMode() at System.IO.Compression.Tests.ZipFileTestBase.<>c__DisplayClass15_2.b__0(FileData file) in F:\git\corefx\src\Common\tests\System\IO\Compression\ZipTestHelper.cs:line 170 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.assert\Asserts\CollectionAsserts.cs:line 31 Stack Trace: F:\git\corefx\src\Common\tests\System\IO\Compression\ZipTestHelper.cs(153,0): at System.IO.Compression.Tests.ZipFileTestBase.IsZipSameAsDir(Stream archiveFile, String directory, ZipArchiveMode mode, Boolean requireExplicit, Boolean checkTimes) F:\git\corefx\src\System.IO.Compression\tests\ZipArchive\zip_ManualAndCompatibilityTests.cs(21,0): at System.IO.Compression.Tests.zip_ManualAndCompatabilityTests.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Finished: System.IO.Compression.Tests === TEST EXECUTION SUMMARY === System.IO.Compression.Tests Total: 163, Errors: 0, Failed: 2, Skipped: 0, Time: 2.331s Finished running tests. End time=13:12:39.13, Exit code = 2 ``` " +11686 area-Serialization Readd ReflectionXmlSerializationReader and Writer back after dev/api merge When merging dev/api branch to master in PR #11679 we had to temporarily remove this two classes since they were added on the XmlSerializer contract which now contains no implementation. All implementation cor that contract has moved down to System.Private.Xml. I tried adding these two classes to the System.Private.Xml but it wasn't straight forward (at least from a quick stab at it) since a lot of dependencies have moved. This issue is to track the work to add those back to System.Private.Xml. cc: @shmao @stephentoub +11687 area-System.IO DirectoryLongerThanMaxLongPath_ThrowsPathTooLongException test is failing cc: @JeremyKuhne After merging from dev/api in PR #11679 this test started failing. Here is the test run output: ``` System.IO.Tests.DirectoryInfo_Create.DirectoryLongerThanMaxLongPath_ThrowsPathTooLongException [FAIL] Assert.All() Failure: 1 out of 2 items in the collection did not pass. [0]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure Expected: typeof(System.IO.PathTooLongException) Actual: typeof(System.IO.DirectoryNotFoundException): Could not find a part of the path 'C:\Users\joperezr\AppData\Local\Temp\DirectoryInfo_Create_1bkmtugy.zy3\DirectoryLongerThanMaxLongPath_ThrowsPathTooLongException_254\23099ea0-f7ac-4547-9eb5-c3f9d7cf6855\9087[...]444b-b3df-e06db775e9db'. at System.IO.Win32FileSystem.CreateDirectory(String fullPath) in F:\git\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 154 at System.IO.DirectoryInfo.Create() in F:\git\corefx\src\System.IO.FileSystem\src\System\IO\DirectoryInfo.cs:line 102 at System.IO.Tests.DirectoryInfo_Create.Create(String path) in F:\git\corefx\src\System.IO.FileSystem\tests\DirectoryInfo\Create.cs:line 17 at System.IO.Tests.Directory_CreateDirectory.<>c__DisplayClass20_0.b__1() in F:\git\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 257 at Xunit.Assert.RecordException(Func`1 testCode) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.assert\Asserts\Record.cs:line 45 Stack Trace: F:\git\corefx\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs(255,0): at System.IO.Tests.Directory_CreateDirectory.DirectoryLongerThanMaxLongPath_ThrowsPathTooLongException() Finished: System.IO.FileSystem.Tests === TEST EXECUTION SUMMARY === System.IO.FileSystem.Tests Total: 2262, Errors: 0, Failed: 1, Skipped: 26, Time: 56.245s Finished running tests. End time=13:49:46.47, Exit code = 1 ``` +11688 area-System.Net Port Socket.Close Porting Socket.Close. This makes more paths reachable in Socket.Dispose(bool), which exposed a couple of NullReferenceExceptions, which I've fixed. This change comes with only minimal testing; I will create an issue to cover adding more. +11692 area-System.Runtime Test failure: System.Tests.DateTimeOffsetTests/UtcNow Opened on behalf of @jiangzeng The test `System.Tests.DateTimeOffsetTests/UtcNow` has failed. ``` Expected UtcNow to changes\r Expected: True\r Actual: False ``` Stack Trace: ``` at System.Tests.DateTimeOffsetTests.UtcNow() in D:\A\_work\4\s\src\System.Runtime\tests\System\DateTimeOffsetTests.cs:line 539 ``` Failing configurations: - Windows.81.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fcli~2F/build/20160913.02/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.DateTimeOffsetTests~2FUtcNow +11693 area-System.Net WinHttpRequestState memory leak when sending WinHttp requests from WinHttpHandler. Noticed during code review that there is a potential memory leak in `GCHandle` and `WinHttpRequestState` instances when `WinHttpHandler.InternalSendRequestAsync()` executed repeatedly from asynchronous `do/while` loop in `WinHttpHandler.StartRequest`. **Cause:** `WinHttpRequestState` may pin `WinHttpRequestState` instances multiple times due to missing `_operationHandle.IsAllocated` check around `_operationHandle = GCHandle.Alloc(this)`: ``` public void Pin() { #if DEBUG Interlocked.Increment(ref s_dbg_pin); #endif _operationHandle = GCHandle.Alloc(this); } ``` Maybe related to issue [#11674](https://github.com/dotnet/corefx/issues/11674) +11694 area-System.Net Add back missing WebSockets APIs Adds back to System.Net.WebSockets: - WebSocketException deriving from Win32Exception - WebSocketException.ctor() - WebSocket.DefaultKeepAliveInterval - WebSocket.CreateClientBuffer - WebSocket.CreateClientWebSocket - WebSocket.CreateServerBuffer - WebSocket.IsApplicationTargeting45 - WebSocket.IsStateTerminal - WebSocket.ReisterPrefixes - WebSocket.ThrowOnInvalidState - WebSocketContext.RequestUri - WebSocketContext.Headers - WebSocketContext.Origin - WebSocketContext.SecWebSocketProtocols - WebSocketContext.SecWebSocketKey - WebSocketContext.CookieCollection - WebsocketContext.User - WebSocketContext.IsAuthenticated - WebSocketContext.IsLocal - WebSocketContext.IsSecureConnection - WebSocketContext.WebSocket (Several of these members just throw PlatformNotSupportedException. Others have a different implementation than on desktop but something that's reasonable for corefx given the rest of the implementation's differences, e.g. limits on buffer sizes). Adds back to System.Net.WebSockets.Client: - ClientWebSocketOptions.UseDefaultCredentials - ClientWebSocketOptions.SetBuffer(int, int) - ClientWebSocketOptions.SetBuffer(int, int, ArraySegment) As part of this, I also: - Updated ClientWebSocketOptions.KeepAliveInterval to default to 30 seconds, as it does on desktop, rather than defaulting to 0. - Updated the managed websockets implementation to take the ClientWebSocketOptions buffer information into account, in particular the receive buffer size and the buffer itself (as long as offset and count don't represent a subset, which would have been a more intrusive change to support). cc: @davidsh, @cipop, @ericeil, @danmosemsft, @anurse (@anurse, you'll notice I made some minor changes to the CreateFromConnectedStream method. Please let me know if you're ok with the changes there, as it'll obviously require a minor tweak to how you call it once you clone these changes over to the aspnet repo). @joperezr, I updated the dir.props for both assemblies. Is there something more I need to do at this point? +11697 area-System.Net Stream newStream = myRequest.GetRequestStream(); not working in ASP core Unable to solve myRequest.GetRequestStream() in ASp core and newStream.Write is also not available +11701 area-System.Linq Add Expression.Assign tests - Also increases CC by ~1%, contributing to #1918 - Also removes some dead code I've found a behaviour difference between the compiler and the interpreter (embedded try expressions in an index expression). I think this is by design, but let me know what you all thinl. /cc @bartdesmet @vsadov @stephentoub +11702 area-System.Reflection CustomAttributeBuilder throws NullReferenceException when passing null to a primitive [The following test](https://github.com/hughbe/corefx/blob/b39e754a7e845d7c1d6cebf5cc900b6639d3e913/src/System.Reflection.Emit.ILGeneration/tests/CustomAttributeBuilderTests.cs#L642) demonstrates the bug. ``` [Fact] public void NullValueForPrimitiveTypeInConstructorArgs_ThrowsNullReferenceException() { ConstructorInfo con = typeof(TestAttribute).GetConstructor(new Type[] { typeof(int) }); object[] constructorArgs = new object[] { null }; Assert.Throws(() => new CustomAttributeBuilder(con, constructorArgs)); Assert.Throws(() => new CustomAttributeBuilder(con, constructorArgs, new FieldInfo[0], new object[0])); Assert.Throws(() => new CustomAttributeBuilder(con, constructorArgs, new PropertyInfo[0], new object[0])); Assert.Throws(() => new CustomAttributeBuilder(con, constructorArgs, new PropertyInfo[0], new object[0], new FieldInfo[0], new object[0])); } ``` +11703 area-System.Reflection CustomAttributeBuilder doesn't behave well with IntPtr or UIntPtr args "## Description [The following test]() demonstrates this: ``` public static IEnumerable NotSupportedPrimitives_CustomAttributeFormatException_TestData() { yield return new object[] { (IntPtr)1 }; yield return new object[] { (UIntPtr)1 }; } [Theory] [MemberData(nameof(NotSupportedPrimitives_CustomAttributeFormatException_TestData))] public static void NotSupportedPrimitiveInConstructorArgs_ThrowsCustomAttributeFormatExceptionOnCreation(object value) { ConstructorInfo con = typeof(TestAttribute).GetConstructor(new Type[] { typeof(object) }); object[] constructorArgs = new object[] { value }; CustomAttributeBuilder attribute = new CustomAttributeBuilder(con, constructorArgs); AssemblyBuilder assembly = Helpers.DynamicAssembly(); assembly.SetCustomAttribute(attribute); // CustomAttributeFormatException is not exposed on .NET Core Exception ex = Assert.ThrowsAny(() => assembly.GetCustomAttributes()); Assert.Equal(""System.Reflection.CustomAttributeFormatException"", ex.GetType().ToString()); } ``` ## Solution Change the code [here](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Reflection/Emit/CustomAttributeBuilder.cs#L73) from ``` private bool ValidateType(Type t) { if (t.IsPrimitive || t == typeof(String) || t == typeof(Type)) return true; } ``` to ``` private bool ValidateType(Type t) { if (t.IsPrimitive || t == typeof(String) || t == typeof(Type)) return t != typeof(IntPtr) && t != typeof(UIntPtr); } ``` This way we fail gracefully, throwing an ArgumentException instead of an exception that isn't exposed in .NET Core! " +11704 area-System.Linq Arithmetic expressions don't work with enums properly See the following example for Add: ``` // Valid Int32Enum r1 = Int32Enum.a + (sbyte)1; Int32Enum r2 = Int32Enum.a + (byte)1; Int32Enum r3 = Int32Enum.a + (short)1; Int32Enum r4 = Int32Enum.a + (ushort)1; Int32Enum r5 = Int32Enum.a + 1; // Invalid: Int32Enum r6 = Int32Enum.a + (uint)1; Int32Enum r7 = Int32Enum.a + (long)1; Int32Enum r8 = Int32Enum.a + (ulong)1; // Throws ArgumentException, incorrectly Expression.Add(Expression.Constant(Int32Enum.a), Expression.Constant(1, typeof(sbyte))); Expression.Add(Expression.Constant(Int32Enum.a), Expression.Constant(1, typeof(byte))); Expression.Add(Expression.Constant(Int32Enum.a), Expression.Constant(1, typeof(short))); Expression.Add(Expression.Constant(Int32Enum.a), Expression.Constant(1, typeof(ushort))); Expression.Add(Expression.Constant(Int32Enum.a), Expression.Constant(1, typeof(int))); // Throws ArgumentException, correctly Expression.Add(Expression.Constant(Int32Enum.a), Expression.Constant(1, typeof(uint))); Expression.Add(Expression.Constant(Int32Enum.a), Expression.Constant(1, typeof(long))); Expression.Add(Expression.Constant(Int32Enum.a), Expression.Constant(1, typeof(ulong))); ``` My understanding is that Linq Expressions try to mimic C#'s behaviour as much as possible, so this could be an area to align with C#. /cc @bartdesmet @VSadov @JonHanna @stephentoub +11705 area-System.Linq Arithmetic expressions don't work with implicit numerical/primitive conversions See the following: ``` // C# int x = 1; short y = 2; int z = x + y; // System.Linq.Expressions Expression.Add(Expression.Constant(x), Expression.Constant(y)); ``` Not sure if this is intended behaviour /cc @bartdesmet @VSadov +11707 area-System.IO Recombine FileStream to simplify and avoid bugs FileStream in corefx is currently implemented as a wrapper around an inner stream that actually provides the logic for the current platform, e.g. it wraps a UnixFileStream on Unix, a Win32FileStream on Windows, etc. This has several issues: - Adds expense to create, as we're now creating two streams where we actually only need one - Adds expense on every operation, as each virtual call on the FileStream then turns around and calls a virtual method on the wrapped stream - Leads to bugs, e.g. it looks like we currently have a bug, where in sync mode, FileStream.ReadAsync calls Win32FileStream.ReadAsync which calls base.ReadAsync which in turns queues a work item to call Read... but it's calling Read on the inner stream, not on the outer stream, which means a FileStream-derived type that overrides Read won't have its override called. We can avoid all of these issues by recombining FileStream into a partial class like we use elsewhere in corefx. The primary trickiness comes with WinRT, where, depending on the path, we sometimes use Win32FileStream and sometimes use WinRTFileStream. cc: @ericstj, @justinvp, @JeremyKuhne, @ianhays +11708 area-System.Net Failed assert in NegotiateStream_StreamToStream_Authentication_TargetName_Success "I hit this assert when I try to run the System.Net.Security tests (outerloop) locally: ``` System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Authentication_TargetName_Success [FAIL] System.Diagnostics.Debug+DebugAssertException : Unknown Interop.SecurityStatus value: -2146892976 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Net.SecurityStatusAdapterPal.GetSecurityStatusPalFromInterop(SecurityStatus win32SecurityStatus) in c:\Users\stoub\Source\repos\corefx\src \System.Net.Security\src\System\Net\SecurityStatusAdapterPal.Windows.cs:line 74 at System.Net.Security.NegotiateStreamPal.InitializeSecurityContext(SafeFreeCredentials credentialsHandle, SafeDeleteContext& securityContext, Strin g spn, ContextFlagsPal requestedContextFlags, SecurityBuffer[] inSecurityBufferArray, SecurityBuffer outSecurityBuffer, ContextFlagsPal& contextFlags) in c:\ Users\stoub\Source\repos\corefx\src\System.Net.Security\src\System\Net\NegotiateStreamPal.Windows.cs:line 166 at System.Net.NTAuthentication.GetOutgoingBlob(Byte[] incomingBlob, Boolean throwOnError, SecurityStatusPal& statusCode) in c:\Users\stoub\Source\re pos\corefx\src\System.Net.Security\src\System\Net\NTAuthentication.cs:line 344 at System.Net.Security.NegoState.GetOutgoingBlob(Byte[] incomingBlob, Exception& e) in c:\Users\stoub\Source\repos\corefx\src\System.Net.Security\sr c\System\Net\SecureProtocols\NegoState.cs:line 787 at System.Net.Security.NegoState.StartSendBlob(Byte[] message, LazyAsyncResult lazyResult) in c:\Users\stoub\Source\repos\corefx\src\System.Net.Secu rity\src\System\Net\SecureProtocols\NegoState.cs:line 443 at System.Net.Security.NegoState.ProcessAuthentication(LazyAsyncResult lazyResult) in c:\Users\stoub\Source\repos\corefx\src\System.Net.Security\src \System\Net\SecureProtocols\NegoState.cs:line 356 at System.Net.Security.NegotiateStream.BeginAuthenticateAsClient(NetworkCredential credential, ChannelBinding binding, String targetName, Protection Level requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel, AsyncCallback asyncCallback, Object asyncState) in c:\Users\stoub\Source\re pos\corefx\src\System.Net.Security\src\System\Net\SecureProtocols\NegotiateStream.cs:line 101 at System.Net.Security.NegotiateStream.BeginAuthenticateAsClient(NetworkCredential credential, String targetName, AsyncCallback asyncCallback, Objec t asyncState) in c:\Users\stoub\Source\repos\corefx\src\System.Net.Security\src\System\Net\SecureProtocols\NegotiateStream.cs:line 60 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2](Func`5 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg 2, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory.FromAsync[TArg1,TArg2](Func`5 beginMethod, Action`1 endMethod, TArg1 arg1, TArg2 arg2, Object state) at System.Net.Security.NegotiateStream.AuthenticateAsClientAsync(NetworkCredential credential, String targetName) in c:\Users\stoub\Source\repos\cor efx\src\System.Net.Security\src\System\Net\SecureProtocols\NegotiateStream.cs:line 183 at System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Authentication_TargetName_Success() in c:\Users\stoub\ Source\repos\corefx\src\System.Net.Security\tests\FunctionalTests\NegotiateStreamStreamToStreamTest.cs:line 90 ``` According to https://msdn.microsoft.com/en-us/library/windows/desktop/dd542646(v=vs.85).aspx, that status code is SEC_E_DOWNGRADE_DETECTED (""The system cannot contact a domain controller to service the authentication request. Please try again later.""). Do we need to add this error and others to the table in https://github.com/dotnet/corefx/blob/2ff9b2a1e367a9694af6bdaf9856ea12f9ae13cd/src/System.Net.Security/src/System/Net/SecurityStatusAdapterPal.Windows.cs? " +11712 area-Meta Add documentation on steps needed to add new APIs and increment contract versions There are PRs that use undocumented techniques to add APIs from existing platforms as well as new APIs part of features. The process changes from day to day and was never documented. To remove any confusion, it would be best if we have a step-by-step process documentation. +11714 area-System.Net Add back missing System.Net.Security APIs Adds back the missing 30 methods on SslStream and NegotiateStream, all of which were the Begin/End and synchronous variants of the XxAsync methods. Approach: - Made the Begin/End methods public, and ensured they were doing the same validation as the XxAsync methods - Added back synchronous methods with (minimal) implementation from desktop - Extended a few of the existing test classes currently using XxAsync to run all of the tests with the Begin/End and synchronous variants as well cc: @davidsh, @cipop, @ericeil, @danmosemsft, @joperezr +11715 area-System.IO System.IO.Compression: ZipArchive does not respect CP437 encoding when reading files The `ZipArchive` class uses ASCII encoding instead of IBM 437 (CP 437) (since #9004) encoding when reading and processing file names of zip entries which do not have the language encoding flag (bit 11 in the general purpose bit flag) set. The [zip file specification](https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT) appendix D specifies how encoding should be handled: > The ZIP format has historically supported only the original IBM PC character > encoding set, commonly referred to as IBM Code Page 437. This limits storing > file name characters to only those within the original MS-DOS range of values > and does not properly support file names in other character encodings, or > languages. To address this limitation, this specification will support the > following change. > > If general purpose bit 11 is unset, the file name and comment should conform > to the original ZIP character encoding. If general purpose bit 11 is set, the > filename and comment must support The Unicode Standard, Version 4.1.0 or > greater using the character encoding form defined by the UTF-8 storage > specification. This creates a problem mainly for European languages: they tend to use a lot of the characters which are present in CP437 but not in ASCII, so you may get inconsistent behavior there. Windows 10 still defaults to CP437 where possible: you can try this by creating a file called Über.txt and zipping it using File Explorer. The filename will be encoded using CP437; but the ZipArchive class decodes it as �ber.txt. Because the zip archive re-creates the individual zip entries when the file is saved in Update mode, this results in data loss when opening & closing the archive, even if that entry is not modified. This appears to be a side-effect of removing CP437 support from .NET Core, although it is still available in the `System.Text.Encoding.Codepages` package (see #10054 for more information). A simple fix would be to have the `System.IO.Compression` package take a dependency on `System.Text.Encoding.Codepages`, but not sure if this is desirable. /cc @ianhays +11718 area-System.Drawing Seg fault in System.Drawing.Primitives.Tests on CentOS in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/dev_api/job/centos7.1_release_prtest/85/ Happened while testing #11688, but this is just adding a new Socket API, so it probably didn't cause this failure. +11719 area-System.Reflection Cleanup MethodInfo tests /cc @stephentoub +11721 area-System.IO Remove CreateManyConcurrent test Adds a conditionalFact to the CreateManyConcurrentInstances test so we don't run the test when max_user_instances is greater than 200. That's just too many instances to create and has the potential to cause OOM exceptions. I also cleaned up the project and solution files to play nicely with VS. The test is causing intermittent failures in other tests and is also intermittently failing itself. Without modifying system resources we can't make this test trustworthy, so it's better to remove it for the sake of stability. resolves https://github.com/dotnet/corefx/issues/11622 resolves https://github.com/dotnet/corefx/issues/5660 +11723 area-System.IO CopyTo should be overriden in MemoryStream I just made a change in CoreCLR (dotnet/coreclr#7131) that overrides `MemoryStream.CopyTo` since that method of Stream is now virtual. However it looks like since the copy of `MemoryStream` in here (which is used in corert) is separated from its parent which lives in [corert itself](https://github.com/dotnet/corert/blob/master/src/System.Private.CoreLib/src/System/IO/Stream.cs), the compiler will not be able to override the method here since it is not yet virtual in the contracts. When it is, the changes from that PR should be ported here. @stephentoub @jkotas +11724 area-System.Globalization Compat work for Char struct (for Linux) Add missing implementation for the newly added APIs in net standard 1.7 +11725 area-System.Net Add back missing System.Net.Ping APIs Adds back all of the missing Send and SendAsync overloads, plus the support for the SendAsync overloads like PingCompletedEventArgs and SendAsyncCancel. cc: @davidsh, @cipop, @ericeil, @mellino, @karelz +11726 area-System.Xml Re add netcore50 test runs for some System.Xml test projects once System.Private.Xml builds for netcore50 PR #11717 removed netcore50 test runs for a few projects in System.Private.Xml in order to unblock the PipeBuild given that those projects depended on System.Private.Xml which didn't run in all supported netcore50 platforms. Once it does, then we should add those configurations back. cc: @sepidehMS +11728 area-System.Collections Port remaining parts of System.Collections These are the remaining parts that we defined are in .NET Standard 2.0 and are not yet in Core ``` M:System.Collections.ObjectModel.ObservableCollection`1.#ctor(System.Collections.Generic.List{`0}) M:System.Collections.Specialized.NameObjectCollectionBase.#ctor(System.Collections.IHashCodeProvider,System.Collections.IComparer) M:System.Collections.Specialized.NameObjectCollectionBase.#ctor(System.Int32,System.Collections.IHashCodeProvider,System.Collections.IComparer) M:System.Collections.Specialized.NameValueCollection.#ctor(System.Collections.IHashCodeProvider,System.Collections.IComparer) M:System.Collections.Specialized.NameValueCollection.#ctor(System.Int32,System.Collections.IHashCodeProvider,System.Collections.IComparer) M:System.Collections.Specialized.NameValueCollection.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Collections.Specialized.OrderedDictionary.OnDeserialization(System.Object) ``` +11730 area-System.Globalization Missing a couple API from S.Globalization These are the only remaining pieces of System.Globalization that are missing from Core but are in .NET Standard 2.0 ``` P:System.Globalization.CompareInfo.Version P:System.Globalization.CultureInfo.CultureTypes P:System.Globalization.CultureInfo.IetfLanguageTag P:System.Globalization.CultureInfo.KeyboardLayoutId M:System.Globalization.CultureInfo.GetConsoleFallbackUICulture ``` +11733 area-System.Net Fix leak of WinHttpRequestState objects during HTTP resends `WinHttpRequestState` objects were being leaked when the HTTP request needed to be retried. The `InternalSendRequestAsync` method calls the `Pin` method. But since it is called in a loop, we need to check to see if the `GCHandle` has already been allocated. Fixes #11693 +11734 area-System.Runtime Expose System.Runtime.CompilerServices APis APis that need to be implemented System.Runtime.CompilerServices.IsPinned System.Runtime.CompilerServices.HasCopySemanticsAttribute System.Runtime.CompilerServices.ScopelessEnumAttribute +11735 area-System.Net Use added-back WebSockets APIs from ClientWebSocket e.g. ClientWebSocketOptions should use WebSocket.DefaultKeepAliveInterval +11736 area-System.Globalization Two globalization tests failed on Windows in CI "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/172/consoleText ``` System.Globalization.Tests.NumberFormatInfoGetInstance.GetInstance(formatProvider: InvalidFormatProvider { }, expected: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = ""."", CurrencyGroupSeparator = "","", CurrencyGroupSizes = [3], CurrencyNegativePattern = 0, ... }) [FAIL] Assert.Equal() Failure Expected: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = ""."", CurrencyGroupSeparator = "","", CurrencyGroupSizes = [3], CurrencyNegativePattern = 0, ... } Actual: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = ""."", CurrencyGroupSeparator = "","", CurrencyGroupSizes = [3], CurrencyNegativePattern = 0, ... } Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Globalization\tests\NumberFormatInfo\NumberFormatInfoGetInstance.cs(28,0): at System.Globalization.Tests.NumberFormatInfoGetInstance.GetInstance(IFormatProvider formatProvider, NumberFormatInfo expected) System.Globalization.Tests.NumberFormatInfoGetInstance.GetInstance(formatProvider: null, expected: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = ""."", CurrencyGroupSeparator = "","", CurrencyGroupSizes = [3], CurrencyNegativePattern = 0, ... }) [FAIL] Assert.Equal() Failure Expected: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = ""."", CurrencyGroupSeparator = "","", CurrencyGroupSizes = [3], CurrencyNegativePattern = 0, ... } Actual: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = ""."", CurrencyGroupSeparator = "","", CurrencyGroupSizes = [3], CurrencyNegativePattern = 0, ... } Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Globalization\tests\NumberFormatInfo\NumberFormatInfoGetInstance.cs(28,0): at System.Globalization.Tests.NumberFormatInfoGetInstance.GetInstance(IFormatProvider ``` " +11738 area-System.Net AllowAutoRedirect is missing on HttpWebRequest Please add the missing `AllowAutoRedirect` feature on [HttpWebRequest](https://github.com/dotnet/corefx/blob/master/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs) so we can support both existing .NET and new .NET Core code bases that uses this feature, thanks. +11739 area-System.Net Expose CancellationToken For StreamContent Looks like `StreamContent` doesn't publicly expose a constructor with `CancellationToken` support. https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/StreamContent.cs#L32 Is there any reason for not having that publicly exposed? +11740 area-System.Linq Address gaps in StackSpiller `System.Linq.Expressions.Compiler.StackSpiller` has known limitations when spilling requires `ref` locals which cannot be modeled by the expression tree API. We could try to lift these limitations in a few ways. I've personally run into this restriction once when building a deserialization framework where the emitted code contained `Try` expression nodes which caused stack spilling but subsequently hit `MemberInit` nodes higher up which were used to instantiate a value type, thus causing spilling to fail. +11742 area-System.Globalization Parse (and TryParse) method doesn't work with some locales. "Parse (and TryParse) method doesn't work with `prs` and `prs-AF` locale if 'NumberStyles.Any' passed to the method (and number must be 1000 or more). `var c = new CultureInfo(""prs"");` `var t = double.Parse((1000.55).ToString(""n2"", c), NumberStyles.Any, c);` It will throw `System.FormatException` (Input string was not in a correct format.) The same issue with full framework. Tested only on windows. I tried to use different number styles and it fails when I add `AllowCurrencySymbol` " +11743 area-System.Net HttpClientHandler.ClientCertificates..get should fail when ClientCertificateOption.Automatic is set "``` csharp HttpClientHandler handler = new HttpClientHandler() { ClientCertificateOptions = ClientCertificateOption.Automatic }; Console.WriteLine(""handler.ClientCertificates has {0} certs"", handler.ClientCertificates.Count); // Exception thrown here handler.ClientCertificates.Add(clientCert); Console.WriteLine(""handler.ClientCertificates has {0} certs"", handler.ClientCertificates.Count); ``` In .NET Desktop, accessing the WebRequestHandler.ClientCertificates collection will fail with an InvalidOperationException if `ClientCertificateOption.Automatic` is explicitly set. However, in .NET Core, the above will silently continue and ignore any certificates added to the ClientCertificates collection. Consider placing the exception back so that behaviour is consistent between WebRequestHandler and HttpClientHandler, and prevent silent failure in this case " +11746 area-System.Net Port to 1.1: Fix leak of WinHttpRequestState objects during HTTP resends Port PR #11733 WinHttpRequestState objects were being leaked when the HTTP request needed to be retried. The InternalSendRequestAsync method calls the Pin method. But since it is called in a loop, we need to check to see if the GCHandle has already been allocated. Fixes #11693 +11747 area-System.Globalization Both System.Runtime and System.Globalization.Extensions expose NormalizationForm This results in an error when trying to use NormalizationForm and including both libraries in the project.json. cc: @tarekgh, @joperezr +11748 area-System.Net Add already-implemented Socket APM methods back to the public surface. Added these to the reference assembly, and made them public in the implementation. We already had some tests for these, via shims; I've just removed the shims. @stephentoub @CIPop @danmosemsft +11749 area-System.Reflection Add tests for CustomAttributeBuilder bug fixes (dotnet/coreclr#7206) dotnet/coreclr#7206 +11757 area-System.Net httpclient default proxy Hello Guys, Is there a way for httpclient to pick up the default system proxy like http_proxy on linux ? For now we are providing a the proxy manually to the httpclient, using the HttpClientHandler class. Thank you ! +11762 area-System.ComponentModel Change S.ComponentModel.TypeConverter projects to use project.json references rather than ProjectReferences The System.ComponentModel.TypeConverter src and test projects have ProjectReferences to System.Drawing.Primitives. Change these to project.json references once the new System.Drawing.Primitives surface area is exposed in published packages. +11764 area-System.Reflection Source Breaking change in System.Runtime 4.1 with MemberInfo.GetCustomAttributes When upgrading package versions of System.Runtime from 4.0 to 4.1 the following code will have errors on both lines when it compiled successfully before. ``` C# Attribute[] attrs1 = typeof(int).GetCustomAttributes(true).ToArray(); Attribute[] attrs2 = typeof(int).GetCustomAttributes(typeof(SerializableAttribute), true).ToArray(); ``` This is caused by two new instance methods on MemberInfo that hide the extension methods in CustomAttributeExtensions. The new methods return `object[]` when the extension methods return `IEnumerable` To maintain compatibility with desktop we cannot change the return type of the new members to match. We need to document the breaking change. +11765 area-System.Net Add already-implemented Socket APM methods back to the public surface Same changes as #11748, but in master instead of dev/api. This also includes the commits from #11688, which was merged into dev/api, but not master. @stephentoub @CIPop @davidsh +11766 area-System.Reflection Add tests for several System.Reflection types - System.Reflection.Module - System.Reflection.Pointer - System.Reflection.RuntimeReflectionExtensions - System.Reflection.TypeDelegator - System.Reflection.TypeInfo +11767 area-System.Net Add System.Net.Mime assembly to corefx Ports the .NET Framework implementation to corefx, and adds some tests for ContentType and ContentDisposition. There is a large portion of the implementation that's internal and not actually reachable from the exposed surface area (and not tested), but exists to support SmtpClient. II was reachable from the graph starting from ContentType and ContentDisposition, so I've left that code in so as to enable subsequent porting of System.Net.Mail; at that point, we may want to combine all of this into a System.Net.Mail contract, but for now I've left it in a System.Net.Mime one. cc: @davidsh, @cipop, @Priya91, @ericeil, @karelz +11768 area-System.Xml Reapply changes made to Xml libraries since the move to System.Private.Xml since they got lost in merge from dev/api When we moved the implementation of Xml from the old contracts into System.Private.Xml, we lost the history since to git's point of view, they are two different files now. The problem is that this move happened in a different branch (dev/xml) so when we merged that back to dev/api and then to master, we lost all of the changes that were made in master after the move. This work item is to track the work that must be done to re-apply these changes back to the files now under System.Private.Xml. cc: @weshaggard @danmosemsft @krwq @shmao +11770 area-System.Linq BindingRewriter implementations of StackSpiller have incorrect check for value types Found while investigating #11740. The `BindingRewriter` implementations for `MemberBind` and `ListBind` bindings have an incorrect check for bindings targeting a value-typed property: - When no stack spilling takes places, the code below throws `CannotAutoInitializeValueTypeElementThroughProperty` from the `LambdaCompiler` for the _current_ node (`MemberBind` targeting `C.V`). - When stack spilling takes place, the code below throws `TryNotSupportedForValueTypeInstances` from the `StackSpiller` for a _child_ node (`Bind` targeting `V.X`). ``` csharp #define REPRO using System; using System.Linq.Expressions; using System.Reflection; using static System.Linq.Expressions.Expression; class MI { static void Main() { var i = (Expression)Constant(1); #if REPRO i = TryFinally(i, Empty()); #endif var e = Lambda>(MemberInit(New(typeof(C)), MemberBind(typeof(C).GetProperty(nameof(C.V)), Bind(typeof(V).GetField(nameof(V.X)), i)))); var c = e.Compile()(); Console.WriteLine(c.V.X); } class C { public V V { get; } } struct V { public int X; } } ``` While the behavior of throwing the other exception is fine here, there's explicit code to throw the same `CannotAutoInitializeValueTypeElementThroughProperty` exception under this circumstance, but it gets the check wrong. Rather than checking the _member_'s type, it checks the _target_'s type. Once we address #11740, a correct implementation of this check will be the only thing preventing emitting of semantically unsound stack spilling code because the `RequireNotRefInstance` check would go away. ``` csharp internal override Expression AsExpression(Expression target) { if (target.Type.GetTypeInfo().IsValueType && _binding.Member is PropertyInfo) { throw Error.CannotAutoInitializeValueTypeElementThroughProperty(_binding.Member); } ``` should not use `target.Type` but the `_binding.Member`'s type for the condition of the check. +11771 area-System.Numerics OutOfMemoryException in System.Numerics.Tests.logTest.RunLargeValueLogTests on Ubuntu Running OuterLoop Ubuntu14.04 Debug in CI for #11765: ``` 15:22:12 System.Numerics.Tests.logTest.RunLargeValueLogTests [FAIL] 15:22:12 System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. 15:22:12 Stack Trace: 15:22:12 at System.Numerics.BigInteger.op_LeftShift(BigInteger value, Int32 shift) 15:22:12 at System.Numerics.Tests.logTest.LargeValueLogTests(Int32 startShift, Int32 bigShiftLoopLimit, Int32 smallShift, Int32 smallShiftLoopLimit) 15:22:12 at System.Numerics.Tests.logTest.RunLargeValueLogTests() ``` +11772 area-Meta DotNetCore.1.0.1-SDK installation onto Windows 2008 "DotNetCore.1.0.1-SDK.1.0.0.Preview2-003131-x64 specifically Using Windows Server ""6.0.6002"". Struggled to get an install as it couldn't acquire/install vs_redist.x64.exe, so I manually pulled it down from http://go.microsoft.com/fwlink/?LinkID=615460&clcid=0x409 as per logs and the install the completed without complaint. However, when attempting to start `dotnet --version` from command line, I get a dialog box claiming ""The procedure entry point ResolveLocaleName could not be located in the dynamic link library KERNEL32.dll"" I was banking on running .NET Core on this specific server, now I am very worried I won't be able to. Can anyone help? " +11773 area-System.Linq Fixing value type property check in BindingRewriter This fixes issue #11770. More tests coming as part of code coverage for `StackSpiller` and a possible improvement for issue #11740. +11774 area-System.ComponentModel Remove Component stubs from System.Timers.Timer in System.ComponentModel.typeconverter contract. cc @AlexGhiondea +11777 area-System.Linq Simplifying EmitInstance call sites Noticed this odd pattern with a redundant null check in the callee and redundant member accesses in the caller of `EmitInstance` while investigating #11740 (where I'm looking into compiler-internal-only use of ref locals which need additional logic on determining the type of the instance based on whether it already is a `ref` or still needs a `ldloca`, `ldarga`, etc. family instruction to obtain the `ref`). +11780 area-System.Linq StackSpiller does not have to go through Expression factory methods Noticed inconsistencies while analyzing requirements to address #11740. In particular, various `Rewrite` methods simply instantiate expression nodes (e.g. `Unary`, `Loop`, `Switch`, `Try`, `Index`, `AssignBinary`) while others go through factories. We don't need the indirection through factories here because: - typing invariants are enforced at the level of the `Rewrite` methods; they never change types of nodes, so we don't need the factories to type check what we produce internally - compact variants of nodes are not needed; we already create `IList` instances in `ChildRewriter` and unpacking them into efficient layouts for a short-lived node instance is redundant work - nodes produced by the spiller only live until `LambdaCompiler` has processed them - nodes produced by the spiller never have an extended lifetime; e.g. `Quote` operands are not spilled - unpacking collections to create efficient layouts allocates _more_ memory than simply wrapping the list in the `XYZExpressionN` variant of a node +11781 area-System.Linq Reducing indirection through factories during stack spilling rewrites We were about 50/50 in terms of places where we directly call `Make` or use a constructor versus places where we use factory methods for no good reason. Rationale discussed in #11780 but in essence: - we don't need the type/member checks of the factory; at most we rewrite child nodes to variables but retain the original typing, so no need to re-check - we don't need the factory's behavior of creating compact short-lived nodes; we have an `IList` retrieved from `ChildRewriter` anyway - we don't need `ToReadOnly` copy behavior exhibited by a lot of factory methods Also adding some `readonly` modifiers, avoiding interface calls where a concrete type is available, and using `TrueReadOnlyCollection` to wrap arrays that aren't being mutated. +11782 area-System.Linq Adding ILReader for tests that assert emit behavior in LambdaCompiler We have a pretty big blind spot in testing behavior of `LambdaCompiler` especially when it comes to certain optimizations it emits. The `ILGenerator` for the `DynamicMethod` we emit into is pretty much a black box, making it hard to assert behavior. Some options are described in #11460. While I have an `IILGenerator` interface in another local branch, it either requires conditional compilation for tests (to go through the interface abstraction) or the interface indirection should always be enabled. The latter is likely still useful but we need to weigh pros and cons of abstracting the back-end. One place where it could shine is to perform IL-level optimization (a la `stloc`/`ldloc` pair elimination).. I'll push this as a WIP at a later point. In the short term though, as I'm noodling with: - stack spilling (see #11740) - closure creation improvements (see [CheaperClosures](https://github.com/bartdesmet/corefx/tree/CheaperClosures), more to follow) - test cases for `LambdaCompiler` and `ILGen` behavior (see #11409) there's an immediate need to be able to assert generated IL code. Luckily, there's a pretty good IL decompiler for `DynamicMethod` available [here](https://blogs.msdn.microsoft.com/haibo_luo/2010/04/19/ilvisualizer-2010-solution), so I decided to port this to .NET Core. Note I had to work around missing members on `Module` (see #5381), but other than that I've just made the code much more concise using C# 6.0 constructs and excluded some functionality we don't (yet) need. One use case is included to exercise the code and show how to perform IL asserts. +11785 area-System.IO Expose InternalBufferOverflowException in FSW Updates the default targetgroup of filesystemwatcher to netstandard1.7 and exposes InternalBufferOverflowException out of System.IO.FileSystemWatcher. @danmosemsft @joperezr @stephentoub +11787 area-System.Net Port System.Net.Security +11788 area-System.Net Port remaining types/members in System.Net.Sockets # Missing types - [x] System.Net.Sockets.ProtocolFamily - [x] System.Net.Sockets.SocketInformation - [x] System.Net.Sockets.SocketInformationOptions - [x] System.Net.Sockets.TransmitFileOptions # Missing members - [x] System.Net.Sockets.NetworkStream.#ctor - [x] System.Net.Sockets.NetworkStream.#ctor - [x] System.Net.Sockets.NetworkStream.BeginRead - [x] System.Net.Sockets.NetworkStream.BeginWrite - [x] System.Net.Sockets.NetworkStream.Close - [x] System.Net.Sockets.NetworkStream.EndRead - [x] System.Net.Sockets.NetworkStream.EndWrite - [x] System.Net.Sockets.NetworkStream.get_Readable - [x] System.Net.Sockets.NetworkStream.get_Socket - [x] System.Net.Sockets.NetworkStream.get_Writeable - [x] System.Net.Sockets.NetworkStream.set_Readable - [x] System.Net.Sockets.NetworkStream.set_Writeable - [x] System.Net.Sockets.Socket.#ctor - [x] System.Net.Sockets.Socket.BeginAccept - [x] System.Net.Sockets.Socket.BeginAccept - [x] System.Net.Sockets.Socket.BeginAccept - [x] System.Net.Sockets.Socket.BeginConnect - [x] System.Net.Sockets.Socket.BeginConnect - [x] System.Net.Sockets.Socket.BeginConnect - [x] System.Net.Sockets.Socket.BeginConnect - [x] System.Net.Sockets.Socket.BeginDisconnect - [x] System.Net.Sockets.Socket.BeginReceive - [x] System.Net.Sockets.Socket.BeginReceive - [x] System.Net.Sockets.Socket.BeginReceive - [x] System.Net.Sockets.Socket.BeginReceive - [x] System.Net.Sockets.Socket.BeginReceiveFrom - [x] System.Net.Sockets.Socket.BeginReceiveMessageFrom - [x] System.Net.Sockets.Socket.BeginSend - [x] System.Net.Sockets.Socket.BeginSend - [x] System.Net.Sockets.Socket.BeginSend - [x] System.Net.Sockets.Socket.BeginSend - [ ] System.Net.Sockets.Socket.BeginSendFile - [ ] System.Net.Sockets.Socket.BeginSendFile - [x] System.Net.Sockets.Socket.BeginSendTo - [x] System.Net.Sockets.Socket.Close - [x] System.Net.Sockets.Socket.Close - [x] System.Net.Sockets.Socket.Disconnect - [x] System.Net.Sockets.Socket.DisconnectAsync - [x] System.Net.Sockets.Socket.DuplicateAndClose - [x] System.Net.Sockets.Socket.EndAccept - [x] System.Net.Sockets.Socket.EndAccept - [x] System.Net.Sockets.Socket.EndAccept - [x] System.Net.Sockets.Socket.EndConnect - [x] System.Net.Sockets.Socket.EndDisconnect - [x] System.Net.Sockets.Socket.EndReceive - [x] System.Net.Sockets.Socket.EndReceive - [x] System.Net.Sockets.Socket.EndReceiveFrom - [x] System.Net.Sockets.Socket.EndReceiveMessageFrom - [x] System.Net.Sockets.Socket.EndSend - [x] System.Net.Sockets.Socket.EndSend - [x] System.Net.Sockets.Socket.EndSendFile - [x] System.Net.Sockets.Socket.EndSendTo - [x] System.Net.Sockets.Socket.get_Handle - [x] System.Net.Sockets.Socket.get_SupportsIPv4 - [x] System.Net.Sockets.Socket.get_SupportsIPv6 - [x] System.Net.Sockets.Socket.get_UseOnlyOverlappedIO - [ ] System.Net.Sockets.Socket.SendFile - [ ] System.Net.Sockets.Socket.SendFile - [x] System.Net.Sockets.Socket.set_UseOnlyOverlappedIO - [x] System.Net.Sockets.SocketAsyncEventArgs.get_DisconnectReuseSocket - [x] System.Net.Sockets.SocketAsyncEventArgs.set_DisconnectReuseSocket - [ ] System.Net.Sockets.SocketException.#ctor - [ ] System.Net.Sockets.SocketException.get_ErrorCode - [x] System.Net.Sockets.TcpClient.#ctor - [x] System.Net.Sockets.TcpClient.#ctor - [x] System.Net.Sockets.TcpClient.BeginConnect - [x] System.Net.Sockets.TcpClient.BeginConnect - [x] System.Net.Sockets.TcpClient.BeginConnect - [x] System.Net.Sockets.TcpClient.Close - [x] System.Net.Sockets.TcpClient.Connect - [x] System.Net.Sockets.TcpClient.Connect - [x] System.Net.Sockets.TcpClient.Connect - [x] System.Net.Sockets.TcpClient.Connect - [x] System.Net.Sockets.TcpClient.EndConnect - [x] System.Net.Sockets.TcpClient.get_Client - [x] System.Net.Sockets.TcpClient.set_Client - [x] System.Net.Sockets.TcpListener.#ctor - [x] System.Net.Sockets.TcpListener.AcceptSocket - [x] System.Net.Sockets.TcpListener.AcceptTcpClient - [x] System.Net.Sockets.TcpListener.BeginAcceptSocket - [x] System.Net.Sockets.TcpListener.BeginAcceptTcpClient - [ ] System.Net.Sockets.TcpListener.Create - [x] System.Net.Sockets.TcpListener.EndAcceptSocket - [x] System.Net.Sockets.TcpListener.EndAcceptTcpClient - [x] System.Net.Sockets.UdpClient.#ctor - [ ] System.Net.Sockets.UdpClient.AllowNatTraversal - [x] System.Net.Sockets.UdpClient.BeginReceive - [x] System.Net.Sockets.UdpClient.BeginSend - [x] System.Net.Sockets.UdpClient.BeginSend - [x] System.Net.Sockets.UdpClient.BeginSend - [x] System.Net.Sockets.UdpClient.Close - [x] System.Net.Sockets.UdpClient.Connect - [x] System.Net.Sockets.UdpClient.Connect - [x] System.Net.Sockets.UdpClient.Connect - [x] System.Net.Sockets.UdpClient.EndReceive - [x] System.Net.Sockets.UdpClient.EndSend - [x] System.Net.Sockets.UdpClient.get_Client - [x] System.Net.Sockets.UdpClient.Receive - [x] System.Net.Sockets.UdpClient.Send - [x] System.Net.Sockets.UdpClient.Send - [x] System.Net.Sockets.UdpClient.Send - [x] System.Net.Sockets.UdpClient.SendAsync - [x] System.Net.Sockets.UdpClient.set_Client +11789 area-System.Net Add Compatibility Surface Area to System.Net.NetworkingInformation "``` CSharp public abstract partial class IPGlobalProperties { public virtual System.IAsyncResult BeginGetUnicastAddresses(System.AsyncCallback callback, object state) { throw null; } public virtual System.Net.NetworkInformation.UnicastIPAddressInformationCollection EndGetUnicastAddresses(System.IAsyncResult asyncResult) { throw null; } public virtual System.Net.NetworkInformation.UnicastIPAddressInformationCollection GetUnicastAddresses() { throw null; } } public abstract partial class IPv4InterfaceStatistics { protected IPv4InterfaceStatistics() { } public abstract long BytesReceived { get; } public abstract long BytesSent { get; } public abstract long IncomingPacketsDiscarded { get; } public abstract long IncomingPacketsWithErrors { get; } public abstract long IncomingUnknownProtocolPackets { get; } public abstract long NonUnicastPacketsReceived { get; } public abstract long NonUnicastPacketsSent { get; } public abstract long OutgoingPacketsDiscarded { get; } public abstract long OutgoingPacketsWithErrors { get; } public abstract long OutputQueueLength { get; } public abstract long UnicastPacketsReceived { get; } public abstract long UnicastPacketsSent { get; } } public delegate void NetworkAvailabilityChangedEventHandler(object sender, System.Net.NetworkInformation.NetworkAvailabilityEventArgs e); public partial class NetworkAvailabilityEventArgs : System.EventArgs { internal NetworkAvailabilityEventArgs() { } public bool IsAvailable { get { throw null; } } } public partial class NetworkChange { [System.ComponentModel.EditorBrowsableAttribute((System.ComponentModel.EditorBrowsableState)(1))] [System.ObsoleteAttribute(""This API supports the .NET Framework infrastructure and is not intended to be used directly from your code."", true)] public NetworkChange() { } public static event System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler NetworkAvailabilityChanged { add { } remove { } } [System.ComponentModel.EditorBrowsableAttribute((System.ComponentModel.EditorBrowsableState)(1))] [System.ObsoleteAttribute(""This API supports the .NET Framework infrastructure and is not intended to be used directly from your code."", true)] public static void RegisterNetworkChange(System.Net.NetworkInformation.NetworkChange nc) { } } [System.Flags] public enum NetworkInformationAccess { None = 0, Ping = 4, Read = 1, } public partial class NetworkInformationException : System.ComponentModel.Win32Exception { protected NetworkInformationException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) { } public override int ErrorCode { get { throw null; } } } public abstract partial class NetworkInterface { public virtual System.Net.NetworkInformation.IPv4InterfaceStatistics GetIPv4Statistics() { throw null; } } ``` " +11790 area-System.Net Port System.Net.Mime +11791 area-System.Net Port System.Net.Cache +11792 area-System.Net Port System.Net.Mail +11793 area-System.Net Port System.Net.HttpListener Includes also `System.Net.WebSockets.HttpListnerWebSocketContext` +11794 area-System.Net Port System.Net.WebClient Suggestion from Networking team: build it on top of System.Net.Http (x-plat will be free then). +11795 area-System.Net "CookieCollection.GetCookies() does not retrieve cookies prefixed with a "".""" "## Scope Modernize the CookieContainer to fix a 7 year old bug concerning the ability to return ALL cookies for a given domain. ## Rationale A [well documented](http://stackoverflow.com/questions/1047669/cookiecontainer-bug/39536750#39536750) (and entirely too long-standing) bug in the CookieContainer is that `CookieContainer.GetCookies()` only accepts a Uri, not a string. This means you cannot properly retrieve cookies that are prefixed with a dot. This is because URIs prefixed with a dot are invalid. Previously-provided solutions involve using Reflection, but these are not ideal for various reasons... not to mention that the .NET Core version has slightly different internals, so the old solutions no longer apply. I've provided [a complete solution that functions on .NET Core here](http://stackoverflow.com/a/39536750/403765) as an extension method, but it again requires reflection, and has not been vetted for proper security. A proper solution would be to provide a version of `GetCookies()` that accepts a string domain, and is more intelligent about matching that domain, to return all of the Cookies that the user would expect in a given situation. ## Usage Here's a pseudocode example of how this would work. ``` cs public Class SomeClass { private static HttpClient HttpClient; private static CookieContainer Cookies; static SomeClass() { Cookies = new CookieContainer(); HttpClient = new HttpClient( new HttpClientHandler { CookieContainer = Cookies, AutomaticDecompression = DecompressionMethods.GZip, AllowAutoRedirect = false } ); } /// /// /// /// public async Task GetAccessToken() { AuthTicket authTicket; var cookies = Cookies.GetCookies(""sso.somewebsite.com""); // The ""CASTGC"" in this case is actually in the "".sso.somewebsite.com"" domain and would not // be returned in the current codebase. if (!cookies.Any(c => c.Name == ""CASTGC"") || cookies.Count == 0) { authTicket = await Login(); } accessToken = await HttpClient.GetStringAsync(""http://somewebsite.com""); return accessToken; } ``` ## Implementation Based on my Extension Method implementation previously mentioned, the implementation would likely look something like this: ``` cs /// /// Returns all of the Cookies where /// contains part of the specified string. Will return cookies for any subdomain, as well as dotted-prefix cookies. /// /// The string that contains part of the domain you want to extract cookies for. /// public static IEnumerable GetCookies(string domain) { foreach (var entry in _domainTable) { if (entry.Key.Contains(domain)) { foreach (var li in entry.Value._list) { foreach (Cookie cookie in li.Value) { yield return cookie; } } } } } ``` ## Obstacles There may be security implications with this design that I am not aware of, so the final implementation would likely need to pass a security review from @blowdart's team. Might also want to get @benaadams to review the entire CookieCollection code to make sure it is optimized for performance. " +11796 area-System.Net Port System.Net.WebSockets @stephentoub you said it's done, please link the PR for tracking purposes & close, thanks! +11797 area-System.Reflection DefaultValueAttribute return null value for Guid type. "I added the DefaultValueAttribute into the a Guid property and get the attribute in constructor of the object but the value in the attribute is null. I have also tried another type of attribute like ""int"", ""long"", ""flost"" or etc. It works great. Anyone have idea what's wrong of the Guid type? The following is the coding for reference. > ``` > [DefaultValue(typeof(Guid), ""8DAEDD83-289E-417C-AAAC-D48D77E0D84C"")] > public Guid DefaultGuidField { get; set; } > > [DefaultValue(typeof(int), ""9"")] > public int DefaultIntField { get; set; } > > [DefaultValue(typeof(long), ""4611686018427387903"")] > public long DefaultLongField { get; set; } > ``` The retrieve value in constructor like this > ``` > var defaultValue = propertyInfo.GetCustomAttribute(true); > > if (defaultValue != null) > { > Type defaultValueType = defaultValue.Value.GetType(); > ``` " +11799 area-System.Net Add stubs for Socket.DuplicateAndClose, Socket.UseOnlyOverlappedIO, and supporting types/constructor We can't provide functional implementations of these without re-implementing non-IOCP-based I/O, as in the desktop CLR. But we can stub these out for some measure of compatibility. These APIs apparently get [very low usage](https://apisof.net/catalog/System.Net.Sockets.Socket.DuplicateAndClose%28Int32%29), so it is hard to justify the work to get a functional implementation on Windows - and I don't think we can ever make this work on Unix. Part of #11788. @stephentoub @CIPop @davidsh +11800 area-System.Net Add back Socket.Handle Part of #11788. @stephentoub @CIPop @davidsh +11802 area-System.Security Add DSACertificateExtensions class Did not add as part of the DSA work #4813, so creating a new issue to track that +11803 area-System.Globalization System.Globalization.Tests failures on Unix in Innerloop CI. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/debian8.4_debug/lastCompletedBuild/testReport/ StringNormalizationTests are failing with System.NotImplementedException : The method or operation is not implemented. +11805 area-System.Data Remove fake win10-arm64 System.Data.SqlClient.sni support from release/1.1.0 https://github.com/dotnet/corefx/pull/11804 adds a runtime reference to `runtime.native.System.Data.SqlClient.sni` on `runtime.win10-arm64.runtime.native.System.Data.SqlClient.sni` `4.3.0-beta-24514-00`. Just before shipping 1.1.0 we should remove it. We want to keep testing it while release/1.1.0 gets changes, but don't want to partially ship win10-arm64 support. Specifically, the lines in [runtime.native.System.Data.SqlClient.sni.pkgproj](https://github.com/dotnet/corefx/blob/8779b2ac824c5e0b18b504e4b15111a98cc77940/src/Native/pkg/runtime.native.System.Data.SqlClient.sni/runtime.native.System.Data.SqlClient.sni.pkgproj#L15-L17) bringing in that package and [the then-unused dependencies.props entry](https://github.com/dotnet/corefx/blob/c35abaa4240fbfab3a6324d5340efcf8bf685d1b/dependencies.props#L19-L20) should be removed. /cc @ianhays @gkhanna79 @wtgodbe @weshaggard @ericstj +11806 area-System.Xml Fix dev/api>master merge of XML implementation, excl. XML serialization Broken out from https://github.com/dotnet/corefx/issues/11768 --- Libraries where we need to re-add changes: - [X] System.Xml.ReaderWriter -> PR #11911 - [X] System.Xml.XDocument -> I've verified that all of the changes for this assembly were not lost. - [X] System.Xml.XmlDocument -> No changes were made in master for this library. - [X] System.Xml.XmlSerializer (PR #11924 + PR #11944 ) - [X] System.Xml.XPath -> I've verified that all of the changes for this assembly were not lost. - [X] System.Xml.XPath.XDocument -> No changes were made in master for this library. - [X] System.Xml.XPath.XmlDocument -> No changes were made in master for this library. +11807 area-System.IO Use public Socket.Handle property from SafePipeHandle #11800 added Socket.Handle back to the public API surface. However, we currently have one place in the code where we'd like to use Handle and are getting it via reflection: https://github.com/dotnet/corefx/blob/d0dc5fc099946adc1035b34a8b1f6042eddb0c75/src/System.IO.Pipes/src/Microsoft/Win32/SafeHandles/SafePipeHandle.Unix.cs#L34 We should fix that as well. +11808 area-Meta Port some missing miscellaneous types/members ~~\- [ ] T:System.Configuration.Assemblies.AssemblyHash~~ edit: Removed AssemblyHash from netstandard. ~~T:System.Configuration.Assemblies.AssemblyHashAlgorithm~~ ~~F:System.Configuration.Assemblies.AssemblyHashAlgorithm.MD5 .~~ ~~F:System.Configuration.Assemblies.AssemblyHashAlgorithm.None~~ ~~F:System.Configuration.Assemblies.AssemblyHashAlgorithm.SHA1~~ ~~F:System.Configuration.Assemblies.AssemblyHashAlgorithm.SHA256~~ ~~F:System.Configuration.Assemblies.AssemblyHashAlgorithm.SHA384~~ ~~F:System.Configuration.Assemblies.AssemblyHashAlgorithm.SHA512~~ ~~F:System.Configuration.Assemblies.AssemblyHashAlgorithm.value__~~ ~~T:System.Configuration.Assemblies.AssemblyVersionCompatibility~~ ~~F:System.Configuration.Assemblies.AssemblyVersionCompatibility.SameDomain~~ ~~F:System.Configuration.Assemblies.AssemblyVersionCompatibility.SameMachine~~ ~~F:System.Configuration.Assemblies.AssemblyVersionCompatibility.SameProcess~~ ~~F:System.Configuration.Assemblies.AssemblyVersionCompatibility.value__~~ - [x] M:System.Diagnostics.DebuggableAttribute.#ctor(System.Boolean,System.Boolean) - [x] M:System.Diagnostics.DebuggableAttribute.get_DebuggingFlags - [x] M:System.Diagnostics.DebuggableAttribute.get_IsJITOptimizerDisabled - [x] M:System.Diagnostics.DebuggableAttribute.get_IsJITTrackingEnabled - [x] F:System.Runtime.InteropServices.CharSet.Auto - [x] F:System.Runtime.InteropServices.CharSet.None ~~T:System.Runtime.InteropServices.ExternalException~~ ~~M:System.Runtime.InteropServices.ExternalException.#ctor~~ ~~M:System.Runtime.InteropServices.ExternalException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)~~ ~~M:System.Runtime.InteropServices.ExternalException.#ctor(System.String)~~ ~~M:System.Runtime.InteropServices.ExternalException.#ctor(System.String,System.Exception)~~ ~~M:System.Runtime.InteropServices.ExternalException.#ctor(System.String,System.Int32)~~ ~~M:System.Runtime.InteropServices.ExternalException.get_ErrorCode~~ ~~M:System.Runtime.InteropServices.SafeHandle.Close~~ - [x] M:System.Runtime.InteropServices.StructLayoutAttribute.#ctor(System.Int16) ~~M:System.Reflection.AssemblyName.OnDeserialization(System.Object)~~ ~~M:System.Reflection.CustomAttributeFormatException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)~~ - [x] M:System.Reflection.StrongNameKeyPair.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) - [x] M:System.Reflection.StrongNameKeyPair.PublicKey ~~System.Runtime.Serialization.IDeserializationCallback.OnDeserialization(System.Object)~~ ~~M:System.Reflection.TargetException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)~~ ~~T:System.Runtime.Serialization.IObjectReference~~ - [ ] T:System.Runtime.Serialization.ISafeSerializationData ~~T:System.Runtime.Serialization.OptionalFieldAttribute~~ - [ ] T:System.Runtime.Serialization.SafeSerializationEventArgs ~~M:System.Security.VerificationException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)~~ ~~M:System.TypeAccessException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)~~ ~~M:System.TypeLoadException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)~~ ~~M:System.WeakReference.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)~~ - [x] T:System.Runtime.InteropServices.RuntimeEnvironment - [x] M:System.Runtime.InteropServices.RuntimeEnvironment.#ctor - [x] M:System.Runtime.InteropServices.RuntimeEnvironment.FromGlobalAccessCache(System.Reflection.Assembly) - [x] M:System.Runtime.InteropServices.RuntimeEnvironment.get_SystemConfigurationFile - [x] M:System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory - [x] M:System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion - [x] P:System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile Removed form netstandard2.0 : https://github.com/dotnet/standard/commit/455687a1c8f86a54fbd7da4f056333290411021c ~~\- [ ] T:System.RuntimeArgumentHandle~~ The following types were removed from netstandard2.0 https://github.com/dotnet/standard/commit/e3e48e4e1e396381807eb255cf1f2150e73ce430. ~~T:System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMetadata~~ ~~E:System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMetadata.DesignerNamespaceResolve~~ ~~E:System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMetadata.ReflectionOnlyNamespaceResolve~~ Add tests for - [ ] MemoryFailPoint +11809 area-System.Runtime Port some missing remoting types/members - [x] T:System.ContextBoundObject - [x] M:System.ContextBoundObject.#ctor - [ ] T:System.ContextMarshalException - [ ] M:System.ContextMarshalException.#ctor - [ ] M:System.ContextMarshalException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) - [ ] M:System.ContextMarshalException.#ctor(System.String) - [ ] M:System.ContextMarshalException.#ctor(System.String,System.Exception) - [ ] T:System.ContextStaticAttribute - [ ] M:System.ContextStaticAttribute.#ctor - [x] T:System.MarshalByRefObject - [x] M:System.MarshalByRefObject.#ctor ~~\- [x] M:System.MarshalByRefObject.CreateObjRef(System.Type)~~ - [x] M:System.MarshalByRefObject.GetLifetimeService - [x] M:System.MarshalByRefObject.InitializeLifetimeService - [x] M:System.MarshalByRefObject.MemberwiseClone(System.Boolean) - [ ] T:System.Reflection.AssemblyNameProxy - [ ] M:System.Reflection.AssemblyNameProxy.#ctor - [ ] M:System.Reflection.AssemblyNameProxy.GetAssemblyName(System.String) ~~\- [x] T:System.Runtime.Remoting.IChannelInfo~~ ~~\- [x] P:System.Runtime.Remoting.IChannelInfo.ChannelData~~ ~~\- [x] M:System.Runtime.Remoting.IChannelInfo.get_ChannelData~~ ~~\- [x] M:System.Runtime.Remoting.IChannelInfo.set_ChannelData(System.Object[])~~ ~~\- [x] T:System.Runtime.Remoting.IEnvoyInfo~~ ~~\- [x] P:System.Runtime.Remoting.IEnvoyInfo.EnvoySinks~~ ~~\- [x] M:System.Runtime.Remoting.IEnvoyInfo.get_EnvoySinks~~ ~~\- [x] M:System.Runtime.Remoting.IEnvoyInfo.set_EnvoySinks(System.Runtime.Remoting.Messaging.IMessageSink)~~ ~~\- [x] T:System.Runtime.Remoting.IRemotingTypeInfo~~ ~~\- [x] M:System.Runtime.Remoting.IRemotingTypeInfo.CanCastTo(System.Type,System.Object)~~ ~~\- [x] M:System.Runtime.Remoting.IRemotingTypeInfo.get_TypeName~~ ~~\- [x] M:System.Runtime.Remoting.IRemotingTypeInfo.set_TypeName(System.String)~~ ~~\- [x] P:System.Runtime.Remoting.IRemotingTypeInfo.TypeName~~ - [x] T:System.Runtime.Remoting.Messaging.Header - [x] M:System.Runtime.Remoting.Messaging.Header.#ctor(System.String,System.Object) - [x] M:System.Runtime.Remoting.Messaging.Header.#ctor(System.String,System.Object,System.Boolean) - [x] M:System.Runtime.Remoting.Messaging.Header.#ctor(System.String,System.Object,System.Boolean,System.String) - [x] F:System.Runtime.Remoting.Messaging.Header.HeaderNamespace - [x] F:System.Runtime.Remoting.Messaging.Header.MustUnderstand - [x] F:System.Runtime.Remoting.Messaging.Header.Name - [x] F:System.Runtime.Remoting.Messaging.Header.Value - [x] T:System.Runtime.Remoting.Messaging.HeaderHandler - [x] M:System.Runtime.Remoting.Messaging.HeaderHandler.#ctor(System.Object,System.IntPtr) - [x] M:System.Runtime.Remoting.Messaging.HeaderHandler.BeginInvoke(System.Runtime.Remoting.Messaging.Header[],System.AsyncCallback,System.Object) - [x] M:System.Runtime.Remoting.Messaging.HeaderHandler.EndInvoke(System.IAsyncResult) - [x] M:System.Runtime.Remoting.Messaging.HeaderHandler.Invoke(System.Runtime.Remoting.Messaging.Header[]) - [x] T:System.Runtime.Remoting.Messaging.IMessage - [x] M:System.Runtime.Remoting.Messaging.IMessage.get_Properties - [x] P:System.Runtime.Remoting.Messaging.IMessage.Properties ~~\- [x] T:System.Runtime.Remoting.Messaging.IMessageCtrl~~ ~~\- [x] M:System.Runtime.Remoting.Messaging.IMessageCtrl.Cancel(System.Int32)~~ ~~\- [x] T:System.Runtime.Remoting.Messaging.IMessageSink~~ ~~\- [x] M:System.Runtime.Remoting.Messaging.IMessageSink.AsyncProcessMessage(System.Runtime.Remotin- [ ]g.Messaging.IMessage,System.Runtime.Remoting.Messaging.IMessageSink)~~ ~~\- [x] M:System.Runtime.Remoting.Messaging.IMessageSink.get_NextSink~~ ~~\- [x] P:System.Runtime.Remoting.Messaging.IMessageSink.NextSink~~ ~~\- [x] M:System.Runtime.Remoting.Messaging.IMessageSink.SyncProcessMessage(System.Runtime.Remoting.Messaging.IMessage)~~ - [x] T:System.Runtime.Remoting.Messaging.IMethodCallMessage - [x] M:System.Runtime.Remoting.Messaging.IMethodCallMessage.get_InArgCount - [x] M:System.Runtime.Remoting.Messaging.IMethodCallMessage.get_InArgs - [x] M:System.Runtime.Remoting.Messaging.IMethodCallMessage.GetInArg(System.Int32) - [x] M:System.Runtime.Remoting.Messaging.IMethodCallMessage.GetInArgName(System.Int32) - [x] P:System.Runtime.Remoting.Messaging.IMethodCallMessage.InArgCount - [x] P:System.Runtime.Remoting.Messaging.IMethodCallMessage.InArgs - [x] T:System.Runtime.Remoting.Messaging.IMethodMessage - [x] P:System.Runtime.Remoting.Messaging.IMethodMessage.ArgCount - [x] P:System.Runtime.Remoting.Messaging.IMethodMessage.Args - [x] M:System.Runtime.Remoting.Messaging.IMethodMessage.get_ArgCount - [x] M:System.Runtime.Remoting.Messaging.IMethodMessage.get_Args - [x] M:System.Runtime.Remoting.Messaging.IMethodMessage.get_HasVarArgs - [x] M:System.Runtime.Remoting.Messaging.IMethodMessage.get_LogicalCallContext - [x] M:System.Runtime.Remoting.Messaging.IMethodMessage.get_MethodBase - [x] M:System.Runtime.Remoting.Messaging.IMethodMessage.get_MethodName - [x] M:System.Runtime.Remoting.Messaging.IMethodMessage.get_MethodSignature - [x] M:System.Runtime.Remoting.Messaging.IMethodMessage.get_TypeName - [x] M:System.Runtime.Remoting.Messaging.IMethodMessage.get_Uri - [x] M:System.Runtime.Remoting.Messaging.IMethodMessage.GetArg(System.Int32) - [x] M:System.Runtime.Remoting.Messaging.IMethodMessage.GetArgName(System.Int32) - [x] P:System.Runtime.Remoting.Messaging.IMethodMessage.HasVarArgs - [x] P:System.Runtime.Remoting.Messaging.IMethodMessage.LogicalCallContext - [x] P:System.Runtime.Remoting.Messaging.IMethodMessage.MethodBase - [x] P:System.Runtime.Remoting.Messaging.IMethodMessage.MethodName - [x] P:System.Runtime.Remoting.Messaging.IMethodMessage.MethodSignature - [x] P:System.Runtime.Remoting.Messaging.IMethodMessage.TypeName - [x] P:System.Runtime.Remoting.Messaging.IMethodMessage.Uri - [x] T:System.Runtime.Remoting.Messaging.IRemotingFormatter - [x] M:System.Runtime.Remoting.Messaging.IRemotingFormatter.Deserialize(System.IO.Stream,System.Runtime.Remoting.Messaging.HeaderHandler) - [x] M:System.Runtime.Remoting.Messaging.IRemotingFormatter.Serialize(System.IO.Stream,System.Object,System.Runtime.Remoting.Messaging.Header[]) - [ ] T:System.Runtime.Remoting.Messaging.LogicalCallContext - [ ] M:System.Runtime.Remoting.Messaging.LogicalCallContext.Clone - [ ] M:System.Runtime.Remoting.Messaging.LogicalCallContext.FreeNamedDataSlot(System.String) - [ ] M:System.Runtime.Remoting.Messaging.LogicalCallContext.get_HasInfo - [ ] M:System.Runtime.Remoting.Messaging.LogicalCallContext.GetData(System.String) - [ ] M:System.Runtime.Remoting.Messaging.LogicalCallContext.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) - [ ] P:System.Runtime.Remoting.Messaging.LogicalCallContext.HasInfo - [ ] M:System.Runtime.Remoting.Messaging.LogicalCallContext.SetData(System.String,System.Object) ~~\- [x] T:System.Runtime.Remoting.ObjRef~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.#ctor~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.#ctor(System.MarshalByRefObject,System.Type)~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)~~ ~~\- [x] P:System.Runtime.Remoting.ObjRef.ChannelInfo~~ ~~\- [x] P:System.Runtime.Remoting.ObjRef.EnvoyInfo~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.get_ChannelInfo~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.get_EnvoyInfo~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.get_TypeInfo~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.get_URI~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.GetRealObject(System.Runtime.Serialization.StreamingContext) ~~- [x] M:System.Runtime.Remoting.ObjRef.IsFromThisAppDomain~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.IsFromThisProcess~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.set_ChannelInfo(System.Runtime.Remoting.IChannelInfo)~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.set_EnvoyInfo(System.Runtime.Remoting.IEnvoyInfo)~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.set_TypeInfo(System.Runtime.Remoting.IRemotingTypeInfo)~~ ~~\- [x] M:System.Runtime.Remoting.ObjRef.set_URI(System.String)~~ ~~\- [x] P:System.Runtime.Remoting.ObjRef.TypeInfo ~~- [x] P:System.Runtime.Remoting.ObjRef.URI~~ +11810 area-System.Text Remove Regex Caps and CapNames properties Follow Up on #11779 Now that we have exposed the old caps, and capnames fields we should see if we can remove the Caps and CapNames properties. +11811 area-System.Net Unify implementation of WebUtility and HttpUtility System.Net.WebUtility and System.Web.HttpUtility have very similar functionality. We should either augment the code in WebUtility to accept Encoding and expose new members, or share the implementation code between the 2 libraries. +11812 area-System.Net Restore serialization attributes on System.Net.Sockets.SocketInformation #11799 reintroduced `System.Net.Sockets.SocketInformation`, but with the serialization attributes commented out. We should work out how to reference the newer System.Runtime reference assembly from System.Net.Sockets, so that we can use these attributes. +11815 area-System.Runtime Compat work for StringComparer (for Linux) Add missing implementation for the newly added APIs in net standard 1.7 +11816 area-System.Net Add back Socket.Disconnect, Socket.Begin/EndDisconnect, Socket.DisconnectAsync These can only be supported on Windows, as Unix has no equivalent concept. Ported the product code and tests from the CLR. Part of #11788. @stephentoub @CIPop @davidsh +11820 area-System.Runtime System.Timers.Tests.TimerTests.TestTimerStartAutoReset test failure in CI See http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/283/ +11824 area-System.Runtime Add Array.LastIndex of tests - Primitives - Non-zero lower bound - Multidimensional array - Enums - Classes, structs, interfaces - Object arrays - Null, non-matching And fix-up some misc nits and add workarounds for xunit/xunit#965 /cc @stephentoub +11826 area-System.Net SslStream disproportionately allocates Switching from http ![](https://aoa.blob.core.windows.net/aspnet/websocket-result-ssl-2.png) to https goes via SslStream and causes the allocations to increase dramatically (new in red below) ![](https://aoa.blob.core.windows.net/aspnet/sslstream-3.png) (The missing `int[]` allocation only happens at a higher load which I can't reach using Ssl) Comparison is to WebSocketReceiveResult which already has over allocations https://github.com/dotnet/corefx/issues/4530 /cc @davidfowl @stephentoub @blowdart +11830 area-System.Runtime Add tests for Enum ## Commit 1 - Cleanup test inputs to make adding new tests easier (and the diff easier) - No test additions or deletions ## Commit 2 - Move around test data for ToString_Format - No test additions or deletion ## Commit 3 - Move around and consolidate test data for ToObject - Only test deleted was `(sbyte)42` because we have coverage for `(sbyte)22` which tests the same thing - Only tests added were Char and Bool primitive tests ## Commit 4 - Adds tests for the following - Parse: all valid primtiives - Parse: unsupported parsing - GetName: unsupported enums - IsDefined: unsupported enums - Equals: single, double, IntPtr, UIntPtr - Equals: different types - ToObject: unsupported enums - CompareTo: single, double, IntPtr, UIntPtr - GetUnderlyingType: single, double, IntPtr, UIntPtr - GetNames: char, bool, single, double, IntPtr, UIntPtr - GetValues: char, bool, single, double, IntPtr, UIntPtr - ToString: all formats for all primitives - ToString: unsupported enums - Format: unsupported enums /cc @stephentoub +11831 area-System.Reflection Cleanup misc System.Reflection.TypeExtensions tests The final PR cleaning up the tests for TypeExtensions /cc @stephentoub +11832 area-System.Linq Improving code consistency in interpreter + using C# 6.0 A while back, some instructions for exception handling were added, using the much briefer C# 6.0 syntax for read-only properties and expression-bodied members. I did run one of my Roslyn code fixes on the Interpreter code to turn typical properties like `InstructionName`, `ConsumedStack`, `ProducedStack`, etc. into expression-bodied ones. After this pass, I cleaned up some redundant `using` directives and addressed some whitespace issues. Also added `var` in a few places where the type is obvious. +11834 area-System.Linq Removing adaptive compilation leftovers in LightDelegateCreator This was taken from the DLR and a bunch of code in support of adaptive compilation (interpretation changing to compilation) was deleted before. The remainder has redundant null checks, type checks, and misleading comments. +11836 area-System.Text Use a non-backtracking NFA/DFA regex engine where possible Stack Exchange [suffered an outage](http://stackstatus.net/post/147710624694/outage-postmortem-july-20-2016) due to a regular expression that used quadratic time. This is a feature request for using a DFA/NFA engine whenever possible – that is, on all regexps that don't have backreferences or any other non-regular features. Note that backreferences almost certainly cannot be handled by _any_ efficient algorithm in general – the matching problem for regular expressions plus backreferences is NP hard. +11837 area-System.Linq Remove unnessary list allocations and copies in System.Linq.Expressions We're generally pretty good about only allocating arrays of the size we need, if we know the size upfront. I just noticed a few places where we still use a `List` instead, and then pass it along as-is to expression factory methods which will create a copy as part of the call to `ToReadOnly`. It'd be better to just allocate the array and wrap it in a `TrueReadOnlyCollection` prior to passing it to these factories. +11838 area-System.Linq Reducing list allocations and copying This addresses issue #11837. In places where keeping track of the index of the next element to write into the array is rather clumsy, I'm using a small `ArrayBuilder` helper type which exposes an `Add` method, so the original `List`-like code keeps working and no index tracking is needed. This utility is also responsible to either return the array or return a `TrueReadOnlyCollection` wrapping it (ownership transfer semantics), so we can pass it along to e.g. an expression factory method without causing it to create an unnecessary copy. +11839 area-System.Runtime Proposal: Generic overload(s) of Array.Clear Separated from #11588 ## Background It may be beneficial to provide generic `Array.Clear` overloads that accept `T[]` rather than an `Array`. Since we know the type of these arrays at compile-time and that they're 0-based, we can write the clearing logic inline in C#. This may benefit smaller arrays since we don't suffer the overhead of calling into the runtime, and will eliminate the need for workarounds like [this](https://github.com/dotnet/corefx/blob/master/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.Builder.cs#L107-L109). (For large arrays, of course, we can just continue what we were doing before.) It may also be desirable to provide an overload that does not accept an index/length, e.g. `Clear(T[])`, which clears the entire array. Implementing this will be cheaper than had we done it with `Array`, since we can call `Clear(array, 0, array.Length)` instead of `Clear(array, array.GetLowerBound(0), array.GetLength(0))`. ## Proposed API ``` cs namespace System { public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable { public static void Clear(T[] array); public static void Clear(T[] array, int index, int length); } } ``` @terrajobst +11840 area-System.Linq Custom Select/Where implementations should be decoupled from Iterator [EmptyPartition](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Partition.cs#L51) should be override these methods to be nops, but can't since for one to customize these methods you have to [subclass Iterator](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Iterator.cs#L45). Maybe it would be good to have an `IIterator` interface which `Iterator` implements, and then change `IIListProvider` to inherit from `IIterator`. cc @JonHanna +11841 area-System.Linq Small perf tweaks for Select - If the input is an empty array, we know that it's size will never change (even if it is mutated after the `Select` call) so we can return a cached result. - This allows us to delete some code in `ToArray`, `TryGetFirst` and `TryGetLast` for specially handling empty arrays. - `_state - 1` can be used as the index into the array instead of a separate `_index` field. This leaves only 2 pointer-sized fields in `SelectArrayIterator`. - When getting the `Count()` a `SelectEnumerableIterator`, we don't have to run the selector on each element of the sequence. cc @stephentoub @JonHanna @VSadov +11842 area-System.Linq Stack spiller can avoid spilling constants "Stack spilling currently does not consider the node type when allocating temporaries and assignment expressions for child expressions in `ChildRewriter.EnsureDone` when the action is set to `SpillStack`. This leads to redundant temporaries, store, and load instructions in cases where the expression is ""pure"" and has no side-effects that shouldn't be reordered. For example: ``` csharp Lambda>( Add( Constant(1), TryFinally( x, Empty() ) ), x ) ``` produces the following IL: ``` .method int32 ::lambda_method(class [System.Core]System.Runtime.CompilerServices.Closure,int32) { .maxstack 3 .locals init ( [0] int32, [1] int32, [2] int32 ) IL_0000: ldc.i4.1 IL_0001: stloc.0 .try { IL_0002: ldarg.1 IL_0003: stloc.2 IL_0004: leave IL_000a } finally { IL_0009: endfinally } IL_000a: ldloc.2 IL_000b: stloc.1 IL_000c: ldloc.0 IL_000d: ldloc.1 IL_000e: add IL_000f: ret } ``` Spilling in `IL_0001` (and thus the allocation of local `0` and the load in `IL_000c`) is redundant; the load of the constant can safely be moved. Another example is `xs[0] = s` where `s` requires spilling. The constant does not have to be saved into a temporary. This type of optimization can be applied for nodes of kind `Constant` and `Default`. A case could be made for other nodes, such as read-only field accesses, `Quote` and `RuntimeVariables`, etc. " +11843 area-System.Net "IPAddress.Parse(""4294967296"") does not throw FormatException on OS X" "System.Net.IPAddress.Parse(""4294967296"") does not throw FormatException on OS X. ``` $ uname -a Darwin 15.6.0 Darwin Kernel Version 15.6.0: Mon Aug 29 20:21:34 PDT 2016; root:xnu-3248.60.11~1/RELEASE_X86_64 x86_64 i386 MacBookPro11,5 Darwin $ dotnet --version 1.0.0-preview2-003121 ``` Steps to reproduce ``` mkdir foo cd foo dotnet new dotnet restore sed -i '9i Console.WriteLine(System.Net.IPAddress.Parse(""4294967296""));' Program.cs dotnet run ``` The sed command writes `Console.WriteLine(System.Net.IPAddress.Parse(""4294967296""));` to line 9 in Program.cs IPAddress.Parse returns `0.0.0.0` on my Mac when using dotnet run. ``` $ dotnet run Project bug (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation. 0.0.0.0 Hello World! ``` On Windows, Ubuntu, Docker on Mac, and Mono on Mac I get the expected FormatException: ``` $ mono bin/Debug/netcoreapp1.0/bug.dll Unhandled Exception: System.FormatException: An invalid IP address was specified. ``` " +11844 area-System.Text HtmlEncoder don't support Chinese "Hi, When we develop a website using ASP.NET Core, we find a issue that ASP.NET Core always made the title of html page a error result in Chinese. For example: ``` @{ ViewBag.Title = ""代码改变世界""; } @ViewBag.Title ``` the result is ![image](https://cloud.githubusercontent.com/assets/4610610/18612401/64b09974-7d8b-11e6-96b0-7ecabfd244f4.png) , but it should be ""代码改变世界"". After we check your source code, we found that you used **UnicodeRanges.BasicLatin** init a singleton of **HtmlEncoder**, not **UnicodeRanges.All**. https://github.com/dotnet/corefx/blob/master/src/System.Text.Encodings.Web/src/System/Text/Encodings/Web/HtmlEncoder.cs " +11846 area-Meta DisplayNameAttribute Is Not Able to Localise or Override "I've been practicing on Asp.Net Core MVC recently. We were able to localize and globalise the ViewModel attributes before using below class and overriding. I've been looking for this solution over a week. ```c# public class LocalizedDisplayNameAttribute : DisplayNameAttribute { public LocalizedDisplayNameAttribute(string resourceId) : base(GetMessageFromResource(resourceId)) { } private static string GetMessageFromResource(string resourceId) { return LanguageManager.Read(resourceId); } } ``` My view model looks like ```c# public class LoginViewModel { [CustomRequiredAttribute(""Email"")] [LocalizedDisplayName(""Email"")] [EmailAddress] public string Email { get; set; } [LocalizedDisplayName(""Password"")] [CustomRequiredAttribute(""Password"")] [DataType(DataType.Password)] public string Password { get; set; } [Display(Name = ""Remember me?"")] public bool RememberMe { get; set; } } ``` I copied the same LocalizedDisplay class and tried it on Asp.Net core but didn't work. The problem is on view, **application prints field name** not the value from attribute." +11848 area-System.Linq Cheaper stack spilling This addresses issue #11842 by avoiding spilling for certain node types. It's very similar to the strategy taken in Roslyn when spilling the stack for `await` expressions. Note that this PR leverages the work done in https://github.com/dotnet/corefx/pull/11782 to assert the generated IL. These tests are currently `#ifdef`'d out until integration of that PR, but I've kept them in this review to aid in visualizing the effects of this optimization. Alas, we didn't have IL-level asserts before, so there's no diff between the original IL produced and the IL after the change. As a point of comparison though, have a look at the sample provided in the issue; its IL now looks like: ``` .method int32 ::lambda_method(class [System.Core]System.Runtime.CompilerServices.Closure,int32) { .maxstack 2 .locals init ( [0] int32, [1] int32 ) .try { IL_0000: ldarg.1 IL_0001: stloc.1 IL_0002: leave IL_000a } finally { IL_0007: endfinally } IL_0008: ldloc.1 IL_0009: stloc.0 IL_000a: ldc.i4.1 IL_000b: ldloc.0 IL_000c: add IL_000d: ret } ``` That's a reduction by two instructions, one local slot, and a drop of `.maxstack` by one. +11851 area-Infrastructure Lots of CI timeouts for Ubuntu14.04 Release Build and Test This has affected at least 4 PRs submitted this weekend. I'll refer to this issue from these occurrences. +11853 area-System.Linq Stack spiller is contagious beyond the spill site The current implementation of the stack spiller will save child nodes to temporaries, even if they occur _after_ the child node that requires an empty stack. This leads to redundant temporaries, store, and load instructions in an amount proportional to the complexity of the tree _beyond_ the spill site. For example: ``` csharp Lambda, int, int>>( Invoke( f, TryFinally( x, Empty() ), Constant(1), Constant(2) ), f, x ) ``` produces the following IL: ``` .method int32 ::lambda_method(class [System.Core]System.Runtime.CompilerServices.Closure,class [mscorlib]System.Func`4,int32) { .maxstack 5 .locals init ( [0] class [mscorlib]System.Func`4, [1] int32, [2] int32, [3] int32, [4] int32 ) IL_0000: ldarg.1 IL_0001: stloc.0 .try { IL_0002: ldarg.2 IL_0003: stloc.s V_4 IL_0005: leave IL_000b } finally { IL_000a: endfinally } IL_000b: ldloc.s V_4 IL_000d: stloc.1 IL_000e: ldc.i4.1 IL_000f: stloc.2 IL_0010: ldc.i4.2 IL_0011: stloc.3 IL_0012: ldloc.0 IL_0013: ldloc.1 IL_0014: ldloc.2 IL_0015: ldloc.3 IL_0016: callvirt instance int32 class [mscorlib]System.Func`4::Invoke(int32,int32,int32) IL_001b: ret } ``` The arguments of `Invoke` beyond the `Try` argument (which requires spilling) don't have to be stored in temporary locals. Yet in this example we see lines `IL_000e` through `IL_0011` perform stores to temporaries in slots `2` and `3` with corresponding loads in `IL_0014` through `IL_0015`. These are redundant stores and loads, thus we can save two locals in this case. Obviously, the situation gets worse when there are more child nodes beyond the spill site. Note that this contagious effect does not limit itself to the node having a child expression that requires spilling; it also travels up the tree affecting all evaluations _after_ the spill site. For example: ``` csharp Lambda>( Add( Add( Add( Constant(1), TryFinally( x, Empty() ) ), Constant(2) ), Constant(3) ), x ) ``` The emitted IL code has 7 locals introduced by spilling even though the minimum required local count is 2. It seems a possible improvement can be made to `ChildRewriter`: - `Add` can track the index of the _last_ child expression that requires a `SpillStack` rewrite action - `EnsureDone` can use the information recorded by `Add` to avoid allocating temporaries _beyond_ the last child expression requiring spilling Optimized spilling code could result produce this instead: ``` ldc.i4.1 stloc.0 .try { ldarg.1 // x stloc.1 leave X } finally { endfinally } X: ldloc.1 // unrelated case of unnecessary local due to our emit stloc.2 // strategy and the lack of a stack optimizer, but ... ldloc.0 ldloc.2 // ... this could be ldloc.1 without a need for loc.2 add ldc.i4.2 add ldc.i4.3 add ret ``` +11857 area-System.ComponentModel Port System.ComponentModel.Composition (MEF1) to .NET Core With the additional APIs that will be available in .NET Standard 2.0, it may be possible to make System.ComponetModel.Composition (MEF1) available for .NET Core and .NET Standard 2.0. System.Composition (MEF2) is already available, but has a different feature set which can sometimes be an obstacle to porting code to .NET Core. +11858 area-System.Text Compat work for Encoding (for Linux) Add missing implementation for the newly added APIs in net standard 1.7 #10961 +11861 area-System.Collections New Type: Immutable version of BitArray `BitArray` can be a useful class but being mutable means implementing operators on it does not make sense. I propose we add a new type that is immutable so it can have operators for easier usage. ### API Proposal Modelled based on `BitArray` [src](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/BitArray.cs#L13)/[apisof.net](https://apisof.net/catalog/System.Collections.BitArray) and `ImmutableList` [src](https://github.com/dotnet/corefx/blob/master/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableList_1.cs#L19)/[apisof.net](https://apisof.net/catalog/System.Collections.Immutable.IImmutableList%3CT%3E) **Open questions:** - Should we add `Set`, `SetAll`, `Get` methods as `BitArray` has? - Should we add `IEnumerable` to `BitArray`? **Resolved questions:** - Should we add `public struct Enumerator GetEnumerator()` on `BitArray`? - Answer: No, there already is `public IEnumerable GetEnumerator()`, so we are stuck with boxing there. - Add shift methods and operators. - Answer: Done. ### 1st Part ```c# namespace System.Collections.Immutable { // NEW: BitArray has only ICollection, IEnumerable, not IEnumerable public struct ImmutableBitArray : IEnumerable { public ImmutableBitArray(int length); public ImmutableBitArray(byte[] bytes); public bool this[int index] { get; } public int Count { get; } IEnumerator IEnumerable.GetEnumerator(); IEnumerator IEnumerable.GetEnumerator(); public ImmutableBitArray Not(); public ImmutableBitArray Or(ImmutableBitArray right); public ImmutableBitArray Xor(ImmutableBitArray right); public ImmutableBitArray And(ImmutableBitArray right); public ImmutableBitArray RightShift(int count); public ImmutableBitArray LeftShift(int count); } } ``` ### 2nd Part ```diff namespace System.Collections.Immutable { public struct ImmutableBitArray : IEnumerable { + public ImmutableBitArray(byte[] bytes, int length); + public ImmutableBitArray(bool[] values); + public ImmutableBitArray(int[] values); + public ImmutableBitArray(BitArray bits); + public ImmutableBitArray(int length, bool defaultValue); + public bool Any(bool value); // returns true if any bits have the specified value + public bool All(bool value); // returns true if all bits have the specified value + public int Count(bool value); // returns the count of bits having the specified value + public int Find(bool value); // returns the index of the first bit having the specified value + public int FindLast(bool value); // returns the index of the last bit having the specified value + public static ImmutableBitArray operator !(ImmutableBitArray iba); + public static ImmutableBitArray operator ~(ImmutableBitArray iba); + public static ImmutableBitArray operator |(ImmutableBitArray left, ImmutableBitArray right); + public static ImmutableBitArray operator ^(ImmutableBitArray left, ImmutableBitArray right); + public static ImmutableBitArray operator &(ImmutableBitArray left, ImmutableBitArray right); + public static ImmutableBitArray operator <<(ImmutableBitArray iba, int count); + public static ImmutableBitArray operator >>(ImmutableBitArray iba, int count); + public static ImmutableBitArray Not(ImmutableBitArray iba); + public static ImmutableBitArray Or(ImmutableBitArray left, ImmutableBitArray right); + public static ImmutableBitArray Xor(ImmutableBitArray left, ImmutableBitArray right); + public static ImmutableBitArray And(ImmutableBitArray left, ImmutableBitArray right); + public static ImmutableBitArray RightShift(ImmutableBitArray iba, int count); + public static ImmutableBitArray LeftShift(ImmutableBitArray iba, int count); + public Enumerator GetEnumerator(); + public struct Enumerator : IEnumerator; } } ``` +11862 area-System.Runtime Port some missing Attribute members ``` M:System.Attribute.get_TypeId M:System.Attribute.GetCustomAttribute(System.Reflection.Assembly,System.Type) M:System.Attribute.GetCustomAttribute(System.Reflection.Assembly,System.Type,System.Boolean) M:System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo,System.Type,System.Boolean) M:System.Attribute.GetCustomAttribute(System.Reflection.Module,System.Type) M:System.Attribute.GetCustomAttribute(System.Reflection.Module,System.Type,System.Boolean) M:System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo,System.Type) M:System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo,System.Type,System.Boolean) M:System.Attribute.GetCustomAttributes(System.Reflection.Assembly) M:System.Attribute.GetCustomAttributes(System.Reflection.Assembly,System.Boolean) M:System.Attribute.GetCustomAttributes(System.Reflection.Assembly,System.Type) M:System.Attribute.GetCustomAttributes(System.Reflection.Assembly,System.Type,System.Boolean) M:System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo) M:System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo,System.Boolean) M:System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo,System.Type) M:System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo,System.Type,System.Boolean) M:System.Attribute.GetCustomAttributes(System.Reflection.Module) M:System.Attribute.GetCustomAttributes(System.Reflection.Module,System.Boolean) M:System.Attribute.GetCustomAttributes(System.Reflection.Module,System.Type) M:System.Attribute.GetCustomAttributes(System.Reflection.Module,System.Type,System.Boolean) M:System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo) M:System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo,System.Boolean) M:System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo,System.Type) M:System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo,System.Type,System.Boolean) T:System.Runtime.MemoryFailPoint (and its members from netstandard) M:System.RuntimeFieldHandle.get_Value M:System.RuntimeMethodHandle.get_Value M:System.RuntimeMethodHandle.GetFunctionPointer M:System.RuntimeTypeHandle.get_Value M:System.RuntimeTypeHandle.GetModuleHandle ``` +11863 area-System.Net Handle Linux NetworkInterfaces which report their speed as '-1'. "Some network interfaces report their speed as ""-1"" in the /sys/class/net/name/speed file. The `Speed` property indicates the returned value is in ""bits per second"" and does not imply that a negative value is valid. If we encounter this, we just treat it like other situations where we cannot retrieve the necessary information: we throw a PlatformNotSupportedException (`""The information requested in unavailable on the current platform.""`). We have seen this very occasionally on our current platforms, but it seems to be happening every time on the new Ubuntu 16.10 VM's we are using. Fixes https://github.com/dotnet/corefx/issues/10769 @ericeil " +11866 area-System.Runtime Port some missing GC types/members - [ ] M:System.GC.CancelFullGCNotification - [x] M:System.GC.Collect(System.Int32,System.GCCollectionMode,System.Boolean,System.Boolean) - [x] M:System.GC.EndNoGCRegion - [x] M:System.GC.GetGeneration(System.WeakReference) - [ ] M:System.GC.RegisterForFullGCNotification(System.Int32,System.Int32) - [x] M:System.GC.TryStartNoGCRegion(System.Int64) - [x] M:System.GC.TryStartNoGCRegion(System.Int64,System.Boolean) - [x] M:System.GC.TryStartNoGCRegion(System.Int64,System.Int64) - [x] M:System.GC.TryStartNoGCRegion(System.Int64,System.Int64,System.Boolean) - [ ] M:System.GC.WaitForFullGCApproach - [ ] M:System.GC.WaitForFullGCApproach(System.Int32) - [ ] M:System.GC.WaitForFullGCComplete - [ ] M:System.GC.WaitForFullGCComplete(System.Int32) - [x] T:System.GCNotificationStatus - [x] F:System.GCNotificationStatus.Canceled - [x] F:System.GCNotificationStatus.Failed - [x] F:System.GCNotificationStatus.NotApplicable - [x] F:System.GCNotificationStatus.Succeeded - [x] F:System.GCNotificationStatus.Timeout - [x] F:System.GCNotificationStatus.value__ +11869 area-System.Runtime Implement System.Activator ``` public sealed partial class Activator { internal Activator() { } public static object CreateInstance(System.Type type) { throw null; } public static object CreateInstance(System.Type type, bool nonPublic) { throw null; } public static object CreateInstance(System.Type type, params object[] args) { throw null; } public static object CreateInstance(System.Type type, object[] args, object[] activationAttributes) { throw null; } public static object CreateInstance(System.Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture) { throw null; } public static object CreateInstance(System.Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) { throw null; } public static T CreateInstance() { throw null; } ``` } +11870 area-Meta "AV's and NullRef's in the openSUSE 42.1 runs during ""dotnet restore""" "There are some intermittent crashes in the new openSUSE 42.1 runs. `dotnet restore` seems to be hitting an `AccessViolationException` and/or a `NullReferenceException` during the initial restore process. I don't see any crashes past that. Note that we're currently still using a ""bootstrap"" CLI which I built myself with a manual process for these runs. This problem may go away if the bootstrap version is rebuilt with newer CoreCLR sources. " +11873 area-System.Net HttpWebRequest.GetRequestStreamAsync doesn't open the connection to the server - we always buffer the content The corefx implementation of HttpWebRequest.GetRequestStreamAsync effectively just returns an in-memory stream. The connection to the server isn't made and the data isn't uploaded until Stream.Dispose is called on the that Stream. This is problematic for several reasons, including that the actual asynchronous operation ends up happening in the synchronous Dispose call on the stream, and deadlocks can easily happen if code assumes that the server will respond once the supplied data has been written (but before Dispose is called). +11874 area-System.Net WebSocket does not have support for extensions `WebSocket` in System.Net.WebSockets does not have support for extensions. Which is part of the rfc6455 standard: https://tools.ietf.org/html/rfc6455#section-9 It should read the `Sec-WebSocket-Extensions` HTTP header from the client. The `WebSocket` class does not expose a `Extensions` property. +11875 area-System.Runtime Expose below misc types/apis ```T:System.AssemblyLoadEventArgs M:System.AssemblyLoadEventArgs.#ctor(System.Reflection.Assembly) P:System.AssemblyLoadEventArgs.LoadedAssembly M:System.AssemblyLoadEventArgs.get_LoadedAssembly T:System.AssemblyLoadEventHandler M:System.AssemblyLoadEventHandler.#ctor(System.Object,System.IntPtr) M:System.AssemblyLoadEventHandler.BeginInvoke(System.Object,System.AssemblyLoadEventArgs,System.AsyncCallback,System.Object) M:System.AssemblyLoadEventHandler.EndInvoke(System.IAsyncResult) M:System.AssemblyLoadEventHandler.Invoke(System.Object,System.AssemblyLoadEventArgs) T:System.LoaderOptimization F:System.LoaderOptimization.DisallowBindings F:System.LoaderOptimization.DomainMask F:System.LoaderOptimization.MultiDomain F:System.LoaderOptimization.MultiDomainHost F:System.LoaderOptimization.NotSpecified F:System.LoaderOptimization.SingleDomain F:System.LoaderOptimization.value__ T:System.LoaderOptimizationAttribute M:System.LoaderOptimizationAttribute.#ctor(System.Byte) M:System.LoaderOptimizationAttribute.#ctor(System.LoaderOptimization) P:System.LoaderOptimizationAttribute.Value M:System.LoaderOptimizationAttribute.get_Value T:System.LocalDataStoreSlot M:System.ResolveEventArgs.#ctor(System.String) M:System.ResolveEventArgs.#ctor(System.String,System.Reflection.Assembly) M:System.ResolveEventArgs.get_Name M:System.ResolveEventArgs.get_RequestingAssembly T:System.ResolveEventArgs P:System.ResolveEventArgs.Name P:System.ResolveEventArgs.RequestingAssembly M:System.ResolveEventHandler.#ctor(System.Object,System.IntPtr) M:System.ResolveEventHandler.BeginInvoke(System.Object,System.ResolveEventArgs,System.AsyncCallback,System.Object) M:System.ResolveEventHandler.EndInvoke(System.IAsyncResult) M:System.ResolveEventHandler.Invoke(System.Object,System.ResolveEventArgs) T:System.ResolveEventHandler ``` +11878 area-System.Runtime Mark PlatformID.MacOSX obsolete? `Environment.OSVersion.Platform` returns `PlatformID.Unix` on macOS instead of `PlatformID.MacOSX`, which is consistent with Mono's behavior. This is already confusing for Xamarin.Mac developers and I think it's going to be confusing for .NET Core developers as well. (I wish we hadn't added `PlatformID.MacOSX` for Silverlight, and just used `PlatformID.Unix` like Mono.) To help mitigate the confusion, should `PlatformID.MacOSX` be marked as obsolete, pointing developers to use `PlatformID.Unix` or `RuntimeInformation.IsOSPlatform(OSPlatform.OSX)` instead? And/or hidden from intellisense? cc: @terrajobst, @KrzysztofCwalina, @weshaggard, @stephentoub For reference: ``` c# public enum PlatformID { Win32S = 0, Win32Windows = 1, Win32NT = 2, WinCE = 3, Unix = 4, Xbox = 5, MacOSX = 6 } ``` +11881 area-System.Net Port the rest of HttpWebRequest/Response APIs Most of it should be simple. Some hard issues expected - seek NCL team advice on them. ``` M:System.Net.HttpWebRequest.#ctor M:System.Net.HttpWebRequest.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) P:System.Net.HttpWebRequest.Accept P:System.Net.HttpWebRequest.Address P:System.Net.HttpWebRequest.AllowAutoRedirect P:System.Net.HttpWebRequest.AllowReadStreamBuffering P:System.Net.HttpWebRequest.AllowWriteStreamBuffering P:System.Net.HttpWebRequest.AutomaticDecompression P:System.Net.HttpWebRequest.ClientCertificates P:System.Net.HttpWebRequest.Connection P:System.Net.HttpWebRequest.ContinueDelegate P:System.Net.HttpWebRequest.ContinueTimeout P:System.Net.HttpWebRequest.CookieContainer P:System.Net.HttpWebRequest.Date P:System.Net.HttpWebRequest.DefaultCachePolicy P:System.Net.HttpWebRequest.DefaultMaximumErrorResponseLength P:System.Net.HttpWebRequest.DefaultMaximumResponseHeadersLength P:System.Net.HttpWebRequest.Expect P:System.Net.HttpWebRequest.HaveResponse P:System.Net.HttpWebRequest.Host P:System.Net.HttpWebRequest.IfModifiedSince P:System.Net.HttpWebRequest.KeepAlive P:System.Net.HttpWebRequest.MaximumAutomaticRedirections P:System.Net.HttpWebRequest.MaximumResponseHeadersLength P:System.Net.HttpWebRequest.MediaType P:System.Net.HttpWebRequest.Pipelined P:System.Net.HttpWebRequest.ProtocolVersion P:System.Net.HttpWebRequest.ReadWriteTimeout P:System.Net.HttpWebRequest.Referer P:System.Net.HttpWebRequest.SendChunked P:System.Net.HttpWebRequest.ServerCertificateValidationCallback P:System.Net.HttpWebRequest.ServicePoint P:System.Net.HttpWebRequest.SupportsCookieContainer P:System.Net.HttpWebRequest.TransferEncoding P:System.Net.HttpWebRequest.UnsafeAuthenticatedConnectionSharing P:System.Net.HttpWebRequest.UserAgent M:System.Net.HttpWebRequest.AddRange(System.Int32) M:System.Net.HttpWebRequest.AddRange(System.Int32,System.Int32) M:System.Net.HttpWebRequest.AddRange(System.Int64) M:System.Net.HttpWebRequest.AddRange(System.Int64,System.Int64) M:System.Net.HttpWebRequest.AddRange(System.String,System.Int32) M:System.Net.HttpWebRequest.AddRange(System.String,System.Int32,System.Int32) M:System.Net.HttpWebRequest.AddRange(System.String,System.Int64) M:System.Net.HttpWebRequest.AddRange(System.String,System.Int64,System.Int64) M:System.Net.HttpWebRequest.EndGetRequestStream(System.IAsyncResult,System.Net.TransportContext@) M:System.Net.HttpWebRequest.GetRequestStream(System.Net.TransportContext@) M:System.Net.HttpWebResponse.#ctor M:System.Net.HttpWebResponse.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) P:System.Net.HttpWebResponse.CharacterSet P:System.Net.HttpWebResponse.ContentEncoding P:System.Net.HttpWebResponse.Cookies P:System.Net.HttpWebResponse.LastModified P:System.Net.HttpWebResponse.Method P:System.Net.HttpWebResponse.ProtocolVersion P:System.Net.HttpWebResponse.Server P:System.Net.HttpWebResponse.StatusCode P:System.Net.HttpWebResponse.StatusDescription M:System.Net.HttpWebResponse.GetResponseHeader(System.String) ``` +11882 area-System.Net Port FileWebRequest/Response Build it on top of System.IO.File APIs (it's also great solution for x-plat). +11883 area-System.Net Port FtpWebRequest/Response Should be implemented on top of TCP (start with Desktop .NET code which is on top of Sockets). Note: There are better OSS APIs, but with very different API surface. +11884 area-System.Net Port WebProxy Expect one hard API: URI->proxy mapping (calls into OS) -- likely not used widely, we shold just throw NotSupportedException. +11885 area-System.Net Add ServicePointManager / ServicePoint Add stubs for all these APIs. +11888 area-System.Xml Create System.Xml ref assembly All new System.Xml APIs should go in System.Xml.ReaderWriter ref assembly, all their dependencies in already existing Xml contracts would also need to move down to S.X.RW +11893 area-System.IO Re-enable clrcompression build with Zlib-Intel Due to a previous bug, CoreFX was changed to use the closed version of clrcompression instead of the optimized Zlib-Intel version. After a fix and more testing, I believe CoreFX should switch back to the Zlib-Intel build. I have done 24 hour looped deflate tests for the following: - Canterbury Corpus - Calgary Corpus - a set of 10 4k .jpeg images - The CLI preview3 binaries By succesfully completing this longer and more varied testing, we should consider re-enabling the optimized build of Zlib. https://github.com/dotnet/corefx/pull/9273 https://github.com/dotnet/corefx/issues/9290 Testing was completed after #11892 +11894 area-System.Net Add WebClient to new System.Net.WebClient contract This PR ports System.Net.WebClient to corefx. The code is mostly taken from desktop and then cleaned up a bit stylistically. The only major code rewrite was removing hundreds of lines of complicated APM callback-based code and replacing it with a few core async methods. There's still plenty of more cleanup that can be done, but functionally this is sufficient. I also wrote a bunch of tests for it (~85% coverage), and added a few members to {Http}WebRequest in support of the WebClient implementation. I did not expose those {Http}WebRequest members in the contract, though; that will be done when dedicated time is put into finishing off the WebRequest surface area. Note that a suggestion had been made to rewrite WebClient directly on top of HttpClient. I declined to do so for several reasons, including because as-is it'll work with the other *WebRequest/Response objects as they're added to the implementation, and including because WebClient exposes several members that assume a WebRequest/Response-based implementation (e.g. GetWebRequest). I've put WebClient into System.Net.Requests as it does tie in closely with these requests, analagous to TcpClient with Sockets. Fixes https://github.com/dotnet/corefx/issues/11794 cc: @davidsh, @cipop, @ericeil, @karelz +11895 area-System.Linq Cleanup ArrayBounds tests in Linq.Expressions /cc @VSadov @bartdesmet We can consolidate test data and test code (because of the following): Every single test uses the same following arrays (and their nullable versions): - byte - int - long - sbyte - short - uint - ulong - ushort It uses them as data for the following array types:
Click to reveal - bool - byte - char - decimal - double - float - int - long - S - sbyte - Sc - Scs - short - Sp - Ss - uint - ulong - ushort - C - D - Delegate - E - El - Func - I - IEquatable - IEquatable - object - string +11897 area-System.Globalization Map Unix TimeZoneId to Windows TimeZoneId If I execute `TimeZoneInfo.GetSystemTimeZones()` on Linux & Windows I get different lists, this is because each OS uses a different timezone db. However, is there a way in .netcore to get a consistent list no matter the OS and/or is there a way that `TimeZoneInfo.FindSystemTimeZoneById` on Windows will work with a Unix timezone id and vice versa a Windows id parsed on a Unix OS? +11898 area-System.Runtime "Provide built-in support for ""weak event"" pattern" Weak event pattern is a widely used pattern. But still, there is no out-of-the-box support for it in .NET +11902 area-System.Net Add .NET Standard 2.0 methods/properties to NetworkStream Part of #11788. @stephentoub @CIPop @davidsh +11903 area-System.Net Add Socket.SupportsIPv4/6. The CLR allows configuration of these properties, separately from whether the OS supports IPv4/6. We do not provide these config options, so SupportsIPvX === OSSupportsIPvX. @stephentoub @CIPop @davidsh +11904 area-System.Net Need more testing of System.Net.Sockets.NetworkStream We currently have very poor coverage of NetworkStream. We should consider adding more tests in this area. +11907 area-System.Linq The binary operator Subtract is not defined for the types 'System.DateTime' and 'System.DateTime'. "While converting my `.NET 4.5` library to `.NETStandard v1.6` I ran into a failing unit test which used to pass before. I pinpointed the problem to the following three lines of code: ``` ParameterExpression arg1 = Expression.Parameter( typeof( DateTime ), ""arg1"" ); ParameterExpression arg2 = Expression.Parameter( typeof( DateTime ), ""arg2"" ); var test = Expression.Subtract( arg1, arg2 ); ``` This expression tree compiles for `.NET 4.5`, but throws an `InvalidOperationException` in `.NETStandard v1.6`: > The binary operator Subtract is not defined for the types > 'System.DateTime' and 'System.DateTime'. However, for both targets the following code works: ``` DateTime one = new DateTime(); DateTime two = new DateTime(); TimeSpan difference = one - two; ``` I thus would expect the expression trees to compile for .NET Core as well. After cross-posting this on Stack Overflow, [Serge Semenov found the exact reason this fails](http://stackoverflow.com/a/39602271/590790), thereby confirming this is a bug in .NET Core. " +11908 area-System.Diagnostics System.Diagnostics.Process.Performance.Tests failed to start on CentOS in CI -- Linux kernel bug "From http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/centos7.1_release_prtest/397/ ``` /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release_prtest/Tools/Microsoft.CSharp.Core.targets(67,5): error MSB6006: ""/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release_prtest/Tools/dotnetcli/dotnet"" exited with code 139. [/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release_prtest/src/System.Diagnostics.Process/tests/Performance/System.Diagnostics.Process.Performance.Tests.csproj] ``` Oddly, there's nothing else in the log about this test. It doesn't seem to have even started. " +11909 area-System.Reflection Add some TypeBuilder tests And consolidate some others /cc @stephentoub +11910 area-System.Net [WinHttpHandler OOB] Override APM (Begin/End) Stream APIs for WinHttpResponseStream On .Net Desktop, `StreamContent.SerializeToStreamAsync` is calling into `StreamToStreamCopy` which relies on Begin/End Stream APIs. This is different from CoreFx where StreamToStreamCopy is using Tasks. Since on .Net Desktop the `System.IO.Stream` defaults are used, the code eventually calls synchronous Read/Write leading to very low performance when multiple HttpClients are used in parallel. This is not an issue when using the System.Net.Http contract from CoreFX (AFAIK not possible in a .Net Desktop application). (12 logical CPU box, using Parallel.For to schedule multiple HttpClients:) ![image](https://cloud.githubusercontent.com/assets/8635911/18686791/20bf7548-7f32-11e6-9e86-30b8d7ba4ac0.png) +11916 area-Meta Undo Linq.Expressions dependency on RegEx Undo https://github.com/dotnet/corefx/pull/11886/commits/4f192affbc07a77e6660e75caeae5fba07a9cddf in release/1.1.0 after updating packages. +11917 area-Serialization To Port PR #11752 from release/1.1.0 to master - Support text.Mapping being SpecialMapping when using ReflectionBased Serializer. +11918 area-Serialization XmlSerializer to Support XmlSchemaTest in ReflectionOnly Mode Steps to repro the issue: 1. Remove [ActiveIssue] on the test. 2. cd into `src\System.Private.Xml\tests\XmlSerializer\ReflectionOnly` 3. `msbuild System.Xml.XmlSerializer.ReflectionOnly.Tests.csproj /t:buildandtest` The test failed with the following error, ``` XmlSerializerTests.XmlSchemaTest [FAIL] System.InvalidOperationException : There was an error generating the XML document. ---- System.PlatformNotSupportedException : System.Xml.Schema.XmlSchemaObject Stack Trace: D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(504,0): at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSeri alizerNamespaces namespaces, String encodingStyle, String id) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(407,0): at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSeri alizerNamespaces namespaces, String encodingStyle) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(402,0): at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSeri alizerNamespaces namespaces) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Schema\XmlSchema.cs(235,0): at System.Xml.Schema.XmlSchema.Write(XmlWriter writer, XmlNamespaceManager namespaceManager) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Schema\XmlSchema.cs(155,0): at System.Xml.Schema.XmlSchema.Write(Stream stream, XmlNamespaceManager namespaceManager) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Schema\XmlSchema.cs(144,0): at System.Xml.Schema.XmlSchema.Write(Stream stream) D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs(2348,0): at XmlSerializerTests.XmlSchemaTest() ----- Inner Stack Trace ----- D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(483,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteStruc tMethod(StructMapping mapping, String n, String ns, Object o, Boolean isNullable, Boolean needType, XmlMapping parentMapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(390,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteEleme nt(Object o, ElementAccessor element, String arrayName, Boolean writeAccessor, XmlMapping parentMapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(163,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteEleme nts(Object o, Object enumSource, ElementAccessor[] elements, TextAccessor text, ChoiceIdentifierAccessor choice, String arrayName, Boolean writeAccessors, Boolean isNullable, XmlMapping parentMapping ) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(110,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteMembe r(Object o, Object choiceSource, ElementAccessor[] elements, TextAccessor text, ChoiceIdentifierAccessor choice, TypeDesc memberTypeDesc, Boolean writeAccessors, XmlMapping parentMapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(93,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.GenerateTyp eElement(Object o, XmlTypeMapping xmlMapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(58,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteObject OfTypeElement(Object o, XmlTypeMapping mapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(48,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteObject (Object o) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(438,0): at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSeri alizerNamespaces namespaces, String encodingStyle, String id) ``` +11919 area-Serialization XmlSerializer to Support XmlSerializerFactory in ReflectionOnly Mode Steps to repro the issue: 1. Remove [ActiveIssue] on the test. 2. cd into `src\System.Private.Xml\tests\XmlSerializer\ReflectionOnly` 3. `msbuild System.Xml.XmlSerializer.ReflectionOnly.Tests.csproj /t:buildandtest` The test failed with the following error, ``` XmlSerializerTests.XmlSerializerFactoryTest [FAIL] System.InvalidOperationException : There was an error generating the XML document. ---- System.ArgumentNullException : Value cannot be null. Parameter name: type Stack Trace: D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(511,0): at Syst em.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, Stri ng encodingStyle, String id) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(414,0): at Syst em.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, Stri ng encodingStyle) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(409,0): at Syst em.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(391,0): at Syst em.Xml.Serialization.XmlSerializer.Serialize(Stream stream, Object o, XmlSerializerNamespaces namespaces) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(379,0): at Syst em.Xml.Serialization.XmlSerializer.Serialize(Stream stream, Object o) D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs(2382,0): at XmlSeri alizerTests.SerializeAndDeserialize[T](T value, String baseline, Func`1 serializerFactory, Boolean skipStringCompare , XmlSerializerNamespaces xns) D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs(2363,0): at XmlSeri alizerTests.XmlSerializerFactoryTest() ----- Inner Stack Trace ----- D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlReflectionImporter.cs(174,0): at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type, XmlRootAttribute root, String defaul tNamespace) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(441,0): at Syst em.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, Stri ng encodingStyle, String id) ``` +11920 area-System.Linq Fix GetAnyStaticMethodValidated to check all overloads of operators Fixes #11907 This should probably be ported to 1.1.0, as we have already one documented report preventing porting-to-core /cc @Whathecode @VSadov @Bartdesmet @stephentoub @JonHanna +11921 area-System.Data Added SqlClient test for checking UnobservedTaskExceptions after async reads. @saurabh500 @geleems @YoungGah Noticed we didn't have a corresponding test for https://github.com/dotnet/corefx/commit/d44b53067db6584e07c4e5dade8dad7388111ee4 +11926 area-System.Runtime System.Array.LongLength and System.Array.GetLongLength are missing We need support for 64-bit arrays for scientific computing in .NET core. Are there any plans to reintroduce those APIs? +11929 area-System.Net Stub out System.Net.ServicePoint cc: @davidsh, @cipop, @ericeil, @karelz Adds a new contract System.Net.ServicePoint with stubbed out implementations of ServicePointManager, ServicePoint, AuthenticationManager, and friends. However, unless we plan to ship with such functionality stubbed out, I don't think we're going to want to keep this as a separate contract. The public surface area of ServicePointManager actually brings in / depends on WebRequest, which means that for WebRequest and friends to respect settings from ServicePointManager, ServicePointManager can't live in a contract above WebRequest. Instead, I think we should push all of these types down into System.Net.Requests, recognizing that these types are part of that compat model and used only with/for that model. We would be explicitly acknowledging that HttpClient would not respect any of the associated settings, as System.Net.Requests depends on System.Net.Http, not the other way around, and thus System.Net.Http wouldn't have access to ServicePointManager (other than through super hacky means like reflection). +11933 area-System.Net Add new test rids to System.Net.Mime projects Adds the two new test rids to the recently-added System.Net.Mime projects. +11935 area-Meta Where to find a complete list of NuGet packages for corporate NuGet server For corporations who block access to public feeds such as NuGet.org, they usually download packages and then host them on a private NuGet server. That approach works fine for a few years already. Now .NET Core development relies even more on NuGet.org, and it involves tons of packages (both managed and native), which makes it very difficult for any outsiders to generate a complete list of required packages from scratch. Thus, I'd like to ask if Microsoft can provide such a list (or at least show how such a list can be compiled from source code or any other public information). The necessary columns I can think of are below, File: netcore1.0.0.txt | Package name | version | | --- | --- | | System | 4.0.0 | ... File: netcore1.0.1.txt | Package name | version | | --- | --- | | System | 4.0.1 | ... Then we can write custom scripts to download the packages from NuGet.org and then deploy to private NuGet server. Of course, if Microsoft can provide such a script, it would be highly appreciated. +11940 area-System.Net Add new test rids to System.Net.WebClient project cc: @mellinoe +11943 area-System.IO "Directory.GetDirectories returns zero sub-directories with search pattern ""*."" on Unix" "On windows using search pattern ""*."" returns all the sub-directories but on Unix it returns zero sub-directories. Is there a reason why this difference exist? cc @stephentoub @ianhays ``` csharp using System; using System.IO; class Program { static void Main(string[] args) { string[] subDirs = Directory.GetDirectories( @""C:\Program Files"", // On Unix try ""/etc"" ""*.""); Console.WriteLine(subDirs.Length); foreach(var dir in subDirs) { Console.WriteLine(dir); } } } ``` " +11947 area-System.Net Port to 1.1: Fix WinHttpHandler to deal with custom HTTP auth responses Port PR #11481 WinHTTP returns an error from WinHttpQueryAuthSchemes if a server sends back a response with a scheme that isn't handled by WinHTTP. Many servers use custom auth schemes. A few don't even send a `WWW-Authenticate` header in the response at all (technically against RFC7235). To handle these cases and to match Desktop behavior, we ignore the error from WinHttpQueryAuthSchemes. Fixes #11452 and #11456. +11949 area-System.Data DbDataReader does not have Close method, even though it inherits from IDataReader I'm unable to compile code that calls or overrides `DbDataReader.Close()`. However `DbDataReader` inherits from `IDataReader`, which has a `.Close()`. method. What's even more baffling is that when I look at the source, [DbDataReader does indeed implement .Close()](https://github.com/dotnet/corefx/blob/master/src/System.Data.Common/src/System/Data/Common/DbDataReader.cs#L288). Repro: 1. In VS2015 create new .NET Core library 2. Add System.Data.Common v4.1.0 nuget reference 3. Add below code I've uploaded the repro as a gist at https://gist.github.com/jaredmoo/52f76f513ceff6a1240bac30aa0152e3 ``` using System; using System.Data; using System.Data.Common; namespace DbDataReaderTest { public class Class1 { public static void DoSomethingInterface(IDataReader reader) { reader.Close(); } public static void DoSomethingAbstractBase(DbDataReader reader) { reader.Close(); // error CS1061: 'DbDataReader' does not contain a definition for 'Close' and no extension method 'Close' accepting a first argument of type 'DbDataReader' could be found (are you missing a using directive or an assembly reference?) DoSomethingInterface(reader); // confirmed, DbDataReader inherits IDataReader } } public abstract class MyDbDataReader : DbDataReader { public override void Close() // error CS0115: 'MyDbDataReader.Close()': no suitable method found to override { } } } ``` +11950 area-System.Net Add System.Net.Dns APIs for netstandard 2.0 This adds the missing `System.Net.Dns` methods for .NET Standard 2.0, and ports some of the tests for these methods over from the CLR tests. +11952 area-Serialization Improve DCS/DCJS's Performance in ReflectionOnly Mode We did a few performance optimization for ReflectionOnly mode, see the following PRs, - https://github.com/dotnet/corefx/pull/9702 - https://github.com/dotnet/corefx/pull/9547 But the reflection based serialization is still much slower than serialization using IL generation. We'd like to further optimize it. +11953 area-Serialization Improve XmlSerializer's Performance in ReflectionOnly Mode We need to measure the performance of our perf tests running in ReflectionOnly mode and then make performance optimization. +11954 area-Serialization To Verify the Next Release of Meta-package in UWP with Serialization Tests +11957 area-System.Net Implement new functionality in System.Net.NetworkInformation "This adds and implements all of the new public surface area described in https://github.com/dotnet/corefx/issues/11789 on all supported platforms. - The frameworks targeted by the new surface area are identical to the ones targeted previously. There doesn't seem to be any need to limit this stuff further. @ericstj - IPv4InterfaceStatistics returns identical information to IPInterfaceStatistics. This behavior is inherited from Windows. This is the reason we originally removed the API. - The Begin/EndGetUnicastAddresses methods are thin wrappers over the Task-based async method on Unix. The Task-based version is a thin wrapper over the sync version. .NET Native does not implement this. - Some of the functionality was already implemented in the Windows version, which is why it doesn't appear in the diff. For things that were not implemented already, I took the implementation directly from the sources for System.dll (.NET Framework). - The Unix versions of NetworkAvailabilityChanged are much less robust and reliable than the Win32 version, due to platform differences. The implementations are modeled somewhat after what Mono does in these cases. - The Linux version listens to additional ""Route Changed"" notifications on the rtnetlink socket we are using. When ""Route Changed"" socket events are received, we propagate them out to NetworkAvailabilityChanged events. We attempt to coalesce such socket events which occur within 150 milliseconds of each other; this is because the OS sends many events in quick succession in response to a single network change. This approach is borrowed from the Mono version. It is not extremely robust, and can result in duplicate events if the OS happens to send them to us more than 150 milliseconds apart. - The OSX version conservatively fires off NetworkAvailabilityChanged events whenever a network address changes, even if the overall availability has not really changed. Mono has a different approach here, but it does not seem to work. I have run my test program on mono, and neither NetworkAddressChanged nor NetworkAvailabilityChanged events are ever fired, except when initially subscribed to. Even in theory, the approach used there still does not handle false positives, duplicate notifications, etc. - Both of the Unix versions result in false positives. They do not filter potential events based on past state. So you may receive numerous events in succession which all indicate the same connectivity status. This is different from Windows where each event will indicate that the availability has flipped. - The .NET Native version of this library is already very crippled. I have implemented NetworkAvailabilityChanged in a similar manner to the Unix versions. It fires the event whenever a network address change is detected, with true information about the current network availability. Most of the other new methods are not implemented (PlatformNotSupportedException). - During testing of the above features, I identified a problem in the implementation of NetworkInterface.GetIsNetworkAvailable() on Unix platforms. This method is not supposed to consider Loopback or Tunnel interfaces. This was not a big problem on Linux (where I did the most testing) because Loopback interfaces often report their status as ""Unknown"" on Linux. However, the OSX machine I tested has a Loopback device with status ""Up"". I've excluded Loopback/Tunnel types from consideration in this function. @stephentoub , @CIPop , @davidsh cc: @karelz " +11958 area-System.Data System.Data.SqlClient.SqlConnection.ChangePassword not implemented It appears that the SqlConnection class does not have ChangePassword() as an available method. Without this, client applications cannot allow the user to change their password when it is detected that it has expired or needs to be changed. They must log on as a different user, or use a program supporting password change (such as SQL Server Management Studio). +11959 area-System.Security Add crypto *Formatter classes and extend HashAlgorithm Three sets of changes: (primary) #9990 Port System.Security.Cryptography.*Formatter (dependency) #9983 Port System.Security.Cryptography.HashAlgorithm (trivial) #9991 Port KeyedHashAlgorithm.KeyValue The abstract formatter types mentioned in #9990 were placed into the Algorithms assembly instead of Primitives to make the code cleaner when converting from a HashAlgorithm type to the string-based algorithm version of that type (see HashAlgorithmNames.ToAlgorithmName()) The formatter types have some questionable semantics but kept it this way for desktop compat. This includes Parameters property, 'dead' code in DSA's SetHashAlgorithm, and some missed validation on null parameters. +11960 area-System.Runtime Test failure: System.Tests.EnvironmentTests/GetFolderPath_Unix_NonEmptyFolderPaths Opened on behalf of @jiangzeng The test `System.Tests.EnvironmentTests/GetFolderPath_Unix_NonEmptyFolderPaths` has failed. ``` Assert+WrapperXunitException : File path: D:\A\_work\20\s\corefx\src\System.Runtime.Extensions\tests\System\EnvironmentTests.cs. Line: 227 ---- Assert.NotEmpty() Failure ``` Stack Trace: ``` at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) at Assert.NotEmpty(IEnumerable collection, String path, Int32 line) at System.Tests.EnvironmentTests.GetFolderPath_Unix_NonEmptyFolderPaths(SpecialFolder folder, SpecialFolderOption option) ----- Inner Stack Trace ----- at Assert.NotEmpty(IEnumerable collection, String path, Int32 line) ``` Failing configurations: - Ubuntu.1604.Amd64 - AnyCPU-Debug - AnyCPU-Release - Fedora.23.Amd64 - AnyCPU-Debug - AnyCPU-Release - Debian.82.Amd64 - AnyCPU-Release - AnyCPU-Debug - Ubuntu.1404.Amd64 - AnyCPU-Release - AnyCPU-Debug - Centos.71.Amd64 - AnyCPU-Release - AnyCPU-Debug - Redhat.72.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster/type/test~2Ffunctional~2Fcli~2F/build/20160921.07/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.EnvironmentTests~2FGetFolderPath_Unix_NonEmptyFolderPaths +11961 area-System.Net Add System.Net.Cache types to corefx This adds the exposed types/members in System.Net.Cache to corefx. It does not actually provide the caching logic that would be used like a type like HttpWebRequest to do caching. cc: @davidsh, @cipop, @ericeil, @karelz Fixes #11791 +11963 area-System.Numerics Cleanup BigInteger.Add tests - Consolidate common test data - Remove random data (but add tests that cover the random data, of course) - Stop using this strange StackCalculator thingy that confuses things, and verify results properly /cc @mellinoe +11965 area-System.IO File.Open mangles path ending in ~.SS I have a file accessible through \\localhost\Test\test.txt.~SS. If I attempt to access that file using `File.Open`, I get an exception: ``` Unhandled Exception: System.IO.DirectoryNotFoundException: Could not find a part of the path 'o\t\Test\test.txt.~SS'. at System.IO.Win32FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.Win32FileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.File.Open(String path, FileMode mode) at ConsoleApplication.Program.Main(String[] args) ``` Notice that the path that it is complaining about is mangled from the requested path. I have a repro available [here](https://github.com/smbecker/filepath-repro). This works as expected using desktop framework but fails when targeting .NET CoreCLR. It also works as expected if I rename the file to test.txt.~sstmp. Thoughts? +11967 area-System.Net Consider adding synchronous path to Ping The Ping class' synchronous methods are currently implemented as a blocking wrapper over its asynchronous implementation. A synchronous path could be put in place to avoid that, e.g. ala the code at http://referencesource.microsoft.com/#System/net/System/Net/NetworkInformation/ping.cs,eb2dfd41e9774d4a when `async` is false. +11968 area-System.Collections Fixed performance of Min/Max in SortedSet. The existing implementation of Min/Max calls InOrderTreeWalk, which perform an allocation of a stack for traversing the tree. But when you are finding the smallest or largest element in a tree there is no need to perform this allocation. This is an optimised version that directly finds the smallest or largest element. This is an important use case for using a sorted set as a priority queue. In microbenchmarking, with the following code I found a 30-40% speed up: ``` csharp for(int j=0; j < 10; j++) { var s = new SortedSet(); for(int n = 0; n < 100000; n++) { s.Add(n); } int i = 0; while(s.Min != null) { var o = s.Min; s.Remove(o); i++; if(i%2 == 0) { s.Add((int)o * 2); } } } ``` +11971 area-System.IO Investigate if we can cleanup [In,Out] annotations This issue is for follow up to https://github.com/dotnet/corefx/pull/11962#issuecomment-248899785. Gist is; cleanup the [In,Out] annotations from various Stream classes if we don't need them. +11973 area-System.Net WinHttp exception thrown when POST'ing to secure server thru authenticating proxy This was discovered from a partner testing out Nano server using CoreFx components. The following repro ends up throwing ERROR_WINHTTP_INCORRECT_HANDLE_STATE from the `WinHttpRequestCallback.OnRequestSendingRequest` method when the following are true: - POST'ing a request body to a secure (TLS/SSL) server - Connecting thru an authenticating proxy - Using a callback specified in the `HttpClientHandler.ServerCertificateCustomValidationCallback` +11975 area-System.Net Fix WinHttpHandler when connecting thru authenticating proxy WinHttpRequestCallback.OnRequestSendingRequest was throwing ERROR_WINHTTP_INCORRECT_HANDLE_STATE when trying to retrieve the WINHTTP_OPTION_SERVER_CERT_CONTEXT during custom server certificate validation. This problem would repro when POST'ing a request body to a secure (TLS/SSL) server thru an authenticating proxy. The error was being returned because the request handle was not yet bound to a secure connection. This occurs while connecting thru a proxy where the CONNECT verb hasn't yet been processed due to the proxy requiring authentication. Discussions with the WinHTTP team confirmed this analysis and fix. The fix is to ignore this notification when getting this error. Another notification will be sent once the final secure connection thru the proxy is completed. Fixes #11973 +11976 area-System.Collections SortedDictionary.First performance Getting the `First` element of a `SortedDictionary` causes allocation of a stack that is log sized in the number of elements in the dictionary. This can be done without any allocation. Currently, `First` is only an extension method for `SortedDictionary`. This means it builds an `Enumerator`, and then uses that to get the first element. The enumerator creates a stack to aid its traversal of the underlying RedBlack tree. This seems the correct thing for the enumerator to do, but in the context of getting the single first element it is very costly. There does not seem to be a sensible way to alter the enumerator to special case this use, without introducing conditionals and hence costs elsewhere. Would it be possible to make `First` a method of `SortedDictionary`, rather than an extension method, then it would be able to call `SortedSet.Min` directly? I am not familiar with the repurcussions of making an extension method into an actual method. Is there a way for this to break existing code, or not? I can submit a Pull Request if that is the right way forward. +11978 area-System.Net WinHttpHandler is allocating twice the required buffer for headers GetResponseHeaderCharBufferLength is calling into WinHttpQueryHeaders which returns the buffer size in bytes not C# char which is 16bit wide. We should allocate byte[] instead and extract the UTF8 encoded characters from the byte array. +11979 area-System.Net WinHttpHandler could query individual headers instead of double buffering them in the managed address space Currently, WinHttpHandler is double buffering instead of lazily extracting headers as they are requested by the application. This is debatable and would need to be profiled. Lacking the necessary telemetry it's hard to understand if most apps really care about the headers or not. If not, this change should be made to avoid consuming both native-heap and managed-heap memory for the same information. +11980 area-System.Reflection The serialization constructor for System.Reflection.Pointer cannot be found. Attempting to deserialize an object of type `System.Reflection.Pointer` results in a `SerializationException` > System.Runtime.Serialization.SerializationException : The constructor to deserialize an object of type 'System.Reflection.Pointer' was not found. > Stack Trace: > at System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj, SerializationInfo info, StreamingContext context) > at System.Runtime.Serialization.ObjectManager.FixupSpecialObject(ObjectHolder holder) > at System.Runtime.Serialization.ObjectManager.DoFixups() > at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, BinaryParser serParser, Boolean fCheck) > at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean check) > at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream) > E:\corefx\src\Common\tests\System\Runtime\Serialization\Formatters\BinaryFormatterHelpers.cs(20,0): at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterHelpers.Clone[T](T obj) > E:\corefx\src\System.Runtime\tests\System\Reflection\PointerTests.cs(192,0): at System.Reflection.Tests.PointerTests.PointerSerializes(Int32 value) > ----- Inner Stack Trace ----- > at System.Runtime.Serialization.ObjectManager.GetDeserializationConstructor(Type t) A repro is in PR #11981 +11981 area-System.Reflection Add tests for S.Reflection types This change adds tests for the following System.Reflection types: - Module - Pointer - RuntimeReflectionExtensions - TypeDelegator - TypeInfo Fixes #11766 +11985 area-System.Net Port to 1.1: Fix WinHttpHandler when connecting thru authenticating proxy Port PR #11975 WinHttpRequestCallback.OnRequestSendingRequest was throwing ERROR_WINHTTP_INCORRECT_HANDLE_STATE when trying to retrieve the WINHTTP_OPTION_SERVER_CERT_CONTEXT during custom server certificate validation. This problem would repro when POST'ing a request body to a secure (TLS/SSL) server thru an authenticating proxy. The error was being returned because the request handle was not yet bound to a secure connection. This occurs while connecting thru a proxy where the CONNECT verb hasn't yet been processed due to the proxy requiring authentication. Discussions with the WinHTTP team confirmed this analysis and fix. The fix is to ignore this notification when getting this error. Another notification will be sent once the final secure connection thru the proxy is completed. Fixes #11973 +11986 area-System.Diagnostics Add ExcludeFromCodeCoverageAttribute Fixes #10685 @ericstj is there any meta file that I missed editing? +11987 area-System.Net DnsObsoleteGetHostByAddress_LoopbackString_ReturnsSameAsLoopbackIP test failed on Windows ``` System.Net.NameResolution.Tests.GetHostByAddressTest.DnsObsoleteGetHostByAddress_LoopbackString_ReturnsSameAsLoopbackIP [FAIL] System.Net.Sockets.SocketException : Either the application has not called WSAStartup, or WSAStartup failed Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Net.NameResolution\src\System\Net\DNS.cs(186,0): at System.Net.Dns.InternalGetHostByAddress(IPAddress address, Boolean includeIPv6) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.NameResolution\src\System\Net\DNS.cs(109,0): at System.Net.Dns.GetHostByAddress(String address) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.NameResolution\tests\FunctionalTests\GetHostByAddressTest.cs(24,0): at System.Net.NameResolution.Tests.GetHostByAddressTest.DnsObsoleteGetHostByAddress_LoopbackString_ReturnsSameAsLoopbackIP() ``` cc: @ericeil +11988 area-System.Net Adding missing members for System.Uri and friends fixes #11647 Adding back members from System.Uri, System.UriParser and friends. cc: @weshaggard @stephentoub @danmosemsft +11990 area-System.Collections Proposal: Stack and Queue should implement ICollection ## Background `Stack` and `Queue` currently implement `ICollection` and `IReadOnlyCollection`, but not the generic `ICollection` interface. This means that they miss out on many valuable LINQ optimizations for such collections; [here](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/SequenceEqual.cs#L37) [are](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/AppendPrepend.cs#L192) a couple of examples. In fact, these optimizations are not even limited to LINQ; for example, making a copy of a Queue via ``` cs var queue = GetQueueOf(); var copy = new Queue(queue); ``` will be artificially slow, since [Queue's constructor](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/Queue.cs#L56-L63) calls `EnumerableHelpers.ToArray`, which goes down a slow path if the input is not an ICollection. Similarly, [here](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Collections/Generic/List.cs#L705) is another such optimization in `List.InsertRange`. ## Proposal We should explicitly implement the `ICollection` interface on both of these classes. For any method that doesn't have very clear semantics, we can simply throw a `NotSupportedException` just like arrays do for certain `IList` methods. ``` cs namespace System.Collections.Generic { public class Stack : ICollection, IEnumerable, ICollection, IReadOnlyCollection { bool ICollection.IsReadOnly { get; } void ICollection.Add(T item); bool ICollection.Remove(T item); } public class Queue : ICollection, IEnumerable, ICollection, IReadOnlyCollection { bool ICollection.IsReadOnly { get; } void ICollection.Add(T item); bool ICollection.Remove(T item); } } ``` Some `ICollection` methods like `Count` and `CopyTo` are excluded since the collections already contain implementations of those methods. ### `Add` implementations `Add` should just call `Enqueue` for Queue, but it is somewhat vague for Stack (the caller is probably assuming that the item is being added to the _end_ of the collection). I suggest we throw a `NotSupportedException` rather than calling `Push`. @justinvp @terrajobst +11991 area-System.Net Expect: 100-Continue header auto-added on HttpClient request on Linux Hi, we have an issue whereby an 'Expect: 100-Continue' header is being automatically added to all HttpClient POST/PUT requests when our .NET Core web api service is deployed to a linux environment (specifically Ubuntu 14.04/16.04). The header is not added when the service is run in a windows environment, both from within Visual Studio and directly in the console using dotnet run. Logging of the headers of the HttpClient in the service prior to calling SendAsync shows that the Expect header is not set, however logging of the HTTP requests on the server using tcpdump show that it is being set. I have tried to remove the headers via, client.DefaultRequestHeaders.ExpectContinue = false; and client.DefaultRequestHeaders.Expect.Clear(); however they are still added. Our issue is that our service must pass through a squid proxy whose version does not support the Expect header. We do not have control over this proxy and it's unlikely we will be able to update the version in the near future. Cheers, Luke +11992 area-System.Linq Expression trees for half-lifted conversion operators do not work "There is a change in the way that Roslyn handles expression trees versus the native compiler. For the sample program below, the native compiler generates incorrect code for the initialization of ef2. The initialization executes without problems, building an incorrect expression tree. But compiling and running the resulting expression tree with a null argument fails (an exception is thrown at the line marked (2)). Roslyn attempts to produce the correct expression tree for ef2. However, a bug in the expression tree libraries (529431 in the previous tracking system) causes an exception to be thrown when initializing ef2. The program cannot even run as far as the code generated by the native compiler. Alex has marked the expression tree library bug as one that will not be fixed in the release for which the bug was filed, so I'm opening the issure here in hopes it will not get lost. ``` cs using System; using System.Linq.Expressions; struct Struct1 { } struct Struct2 { public static explicit operator Struct2?(Struct1 s2) { return new Struct2(); } } public class Test { static void Main() { Func f1 = (x) => (Struct2?)x; f1(null); Expression> ef2 = (x) => (Struct2?)x; // (1) Roslyn: fails at runtime Func f2 = ef2.Compile(); f2(null); // (2) Native: fails at runtime } } ``` --- Here is a take on this from another internal thread Consider a user-defined conversion from S1 to S2? The compiler considers this to give rise to a lifted conversion from S1? To S2? There are three bugs here 1. This rule is missing from the C# language specification 2. The native C# compiler generates different-behaving code for this lifted conversion directly compared to this conversion in a compiled expression tree 3. The expression tree API has no way to express this half-lifted conversion. ``` cs using System; using System.Linq; using System.Linq.Expressions; using System.Reflection; struct Struct1 { } struct Struct2 { public static implicit operator Struct2?(Struct1 s2) { return new Struct2(); } } static class NullableExtensions { public static string ToStringOrNull(this T? n) where T : struct { return n.HasValue ? n.Value.ToString() : ""null""; } } public class Test { static void Main() { // Bug related to Roslyn bug 12706 // The native compiler generates different-behaving code for a lambda // expression, and an expression tree for that lambda expression, compiled. Struct1? n = null; // the following prints ""null"" Func f1 = x => x; Console.WriteLine(""first test""); Console.WriteLine(f1(n).ToStringOrNull()); // the following throws System.InvalidOperationException: Nullable object must have a value. Expression> testExpr = x => x; Func f2 = testExpr.Compile(); Console.WriteLine(""second test""); Console.WriteLine(f2(n).ToStringOrNull()); } static void Test2() { // this is how one would like to generate code for the lambda expression, // but a bug in the expression tree library prevents this from working. var x = Expression.Parameter(typeof(Struct1?), ""x""); MethodInfo opImplicit = typeof(Struct2).GetMethod(""op_Implicit""); // the following throws System.InvalidOperationException: The operands for operator 'Convert' do not match the parameters of method 'op_Implicit'. var result = Expression.Convert(x, typeof(Struct2?), opImplicit); Expression> testExpr = Expression.Lambda>(result, x); } } ``` " +11994 area-System.Linq VariableBinder in lambda compiler does not analyze CatchBlock.Filter "Repro: ``` csharp var e = Expression.Lambda( Expression.TryCatch( Expression.Empty(), Expression.Catch( Expression.Parameter(typeof(Expression), ""ex""), Expression.Empty(), Expression.Parameter(typeof(bool), ""???"") ) ) ); e.Compile(); ``` This gets as far as `ILGen` (failing there for DynamicMethod emit due to a limitation in System.Reflection.Emit that's tracked to be lifted at some point, see https://github.com/dotnet/corefx/issues/3838). The culprit is the lack of recursion into the `Filter` child node of `CatchBlock` in `VariableBinder`. " +11996 area-System.Net Add System.Net.WebProxy to corefx Fixes https://github.com/dotnet/corefx/issues/11884 cc: @davidsh, @cipop, @ericeil, @karelz +11997 area-Infrastructure Update CoreClr, CoreFx, External, ProjectNTfs to beta-24529-03, beta-24530-01, beta-24523-00, beta-24530-00, respectively (master) /cc @dotnet/corefx-contrib +11998 area-System.Diagnostics Don't raise Exited events when Process.EnableRaisingEvents is false `Process.HasExited` raises Exited events even when `EnableRaisingEvents` is false. Added a `_watchForExit` check before raising the event, which is the same as in `WaitForExit`. Also added separate EnableRaisingEvents test for `HasExited` based on existing TestEnableRaiseEvents test. +12000 area-System.Xml Evaluate dependency on S.S.Permissions and S.CodeDOM from System.Private.Xml Not sure if there is already a tracking issue for this or not yet (if there is one please feel free to close). There is a ton of stubbed out APIs at https://github.com/dotnet/corefx/tree/master/src/System.Private.Xml/src/Workarounds which we need to eliminate and either remove by eliminating the dependencies or move to building against netstandard17 and using the new types we have exposed. cc @danmosemsft @krwq +12001 area-Meta VisualStudio takes too long at design time. Way, way, waaaayyyy too long. For some reason I don't understand, commit 5c2c440 is the latest point in history where I can open projects in VisualStudio in a reasonable time frame. And I don't mean 30s-1minute like I've seen some people muttering about; my times are well over 10 minutes, on at least two projects (System.Linq.Parallel and System.Net.Sockets). Strangely, I've never opened or built the project referenced in the subsequent commit (System.Net.Mime), and I'm on Windows, too (aa3bea0 just adds test rids for Linux derivatives). Can work around easily enough. +12002 area-System.Globalization DateTimeFormatInfoGetInstance test failing in CI "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/544/consoleText ``` System.Globalization.Tests.DateTimeFormatInfoGetInstance.GetInstance(provider: null, expected: DateTimeFormatInfo { AbbreviatedDayNames = [""Sun"", ""Mon"", ""Tue"", ""Wed"", ""Thu"", ...], AbbreviatedMonthGenitiveNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AbbreviatedMonthNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AMDesignator = ""AM"", Calendar = GregorianCalendar { AlgorithmType = SolarCalendar, CalendarType = Localized, Eras = [...], IsReadOnly = True, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, ... }, ... }) [FAIL] Assert.Equal() Failure Expected: DateTimeFormatInfo { AbbreviatedDayNames = [""Sun"", ""Mon"", ""Tue"", ""Wed"", ""Thu"", ...], AbbreviatedMonthGenitiveNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AbbreviatedMonthNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AMDesignator = ""AM"", Calendar = GregorianCalendar { AlgorithmType = SolarCalendar, CalendarType = Localized, Eras = [...], IsReadOnly = True, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, ... }, ... } Actual: DateTimeFormatInfo { AbbreviatedDayNames = [""Sun"", ""Mon"", ""Tue"", ""Wed"", ""Thu"", ...], AbbreviatedMonthGenitiveNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AbbreviatedMonthNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AMDesignator = ""AM"", Calendar = GregorianCalendar { AlgorithmType = SolarCalendar, CalendarType = Localized, Eras = [...], IsReadOnly = True, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, ... }, ... } Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Globalization\tests\DateTimeFormatInfo\DateTimeFormatInfoGetInstance.cs(52,0): at System.Globalization.Tests.DateTimeFormatInfoGetInstance.GetInstance(IFormatProvider provider, DateTimeFormatInfo expected) ``` " +12003 area-System.Net Upgrade System.Net.Requests to netstandard1.7 cc: @ericstj, @weshaggard +12005 area-System.Xml How can I validate the xml file against XSD . I am unable to find the required namespace which are available in ASP5 but not in core. Most of the elements are unavailable to the .net core. +12006 area-System.IO Add override CopyToAsync to BufferedStream fix #11572 add override CopyToAsync to BufferedStream and see if there are optimizations. +12007 area-System.Runtime "Introduce ""virtual reference"" concept" "There is `WeakReference` class. It is a special case of concept which could be called ""virtual reference"". Introduce `VirtualReference` abstract class (signature is exact of `WeakReference`) ``` C# public abstract class VirtualReference where T : class { public abstract bool TryGetTarget(out T target); } ``` and make WeakReference implementation of this abstract class. ``` C# public sealed class WeakReference : VirtualReference where T : class { public override bool TryGetTarget(out T target) { ... } } ``` This would generalize and provide common API for many kinds of object proxies, interop scenarios, reconstructable caches, lazy-allocated objects and so on. " +12009 area-Infrastructure Update BuildTools to 00822-03 /cc @weshaggard @hughbe +12013 area-Meta Tracking targeting uap101aot [See the discussion in #12004 for more context] Below is the list of libraries that explicitly target netcore50aot. It's a helpful list to look out as these libs are likely going to need to target uap101aot explicitly. Note, however, that it's not **the** list of libs that we need to work on and do the changes to explicitly target uap10.1. Some of the libs in this list will not have any change so it's OK to leave them as is. And there might be other libs that requires support from the CoreLib layer, which will be an addition to this list. Still, this is a list to start with - [x] System.Collections - [ ] System.Diagnostics.Tools - [ ] System.Diagnostics.Tracing - [x] ~~System.Globalization.Calendars~~ (This package is a pure façade. no need to update it for uap10.1) - [x] System.Globalization - [x] System.IO - [x] System.Reflection - [x] System.Reflection.Primitives - [x] System.Resources.ResourceManager - [x] System.Runtime.Handles - [ ] System.Runtime.InteropServices - [x] System.Runtime - [x] ~~System.Text.Encoding.Extensions~~ (This package is a pure façade. no need to update it for uap10.1) - [x] ~~System.Text.Encoding~~ (This package is a pure façade. no need to update it for uap10.1) - [x] System.Threading.Tasks - [x] System.Threading.Timer - [ ] System.Diagnostics.Debug - [ ] System.Runtime.Extensions - [x] System.Private.Uri - [x] ~~System.AppContext~~ (This library doesn't have anything new. no need to cross compile it for uap10.1) - [x] ~~System.Diagnostics.Contracts~~ (This package is a pure façade. no need to update it for uap10.1) - [x] System.Diagnostics.StackTrace - [ ] System.Dynamic.Runtime - [ ] System.Linq.Expressions - [x] ~~System.Private.DataContractSerialization~~ (This library doesn't have anything new. no need to cross compile it for uap10.1) - [x] ~~System.Reflection.DispatchProxy~~ (This package is a pure façade for netcore50aot. no need to update it for uap10.1) - [x] System.Reflection.Extensions - [x] System.Reflection.TypeExtensions - [x] ~~System.Runtime.InteropServices.RuntimeInformation~~ (This library doesn't have anything new. no need to cross compile it for uap10.1) - [x] System.Runtime.InteropServices.WindowsRuntime - [x] System.Runtime.Serialization.Primitives - [ ] System.Threading - [ ] System.Xml.XmlSerializer - [ ] System.IO.IsolatedStorage +12015 area-System.Net ProxyAuth test fails on *Nix outerloop runs PR #11985 added a new test which is failing on *Nix (part of OuterLoop): `System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.UseCallback_HaveNoCredsAndUseAuthenticatedCustomProxyAndPostToSecureServer_ProxyAuthenticationRequiredStatusCode` ``` System.Net.Http.CurlException : Failure when receiving data from the peer ``` +12016 area-System.Net Disable newly added proxyauth test on *Nix PR #11985 added a new test which is failing on *Nix (part of OuterLoop): System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.UseCallback_HaveNoCredsAndUseAuthenticatedCustomProxyAndPostToSecureServer_ProxyAuthenticationRequiredStatusCode System.Net.Http.CurlException : Failure when receiving data from the peer Disabling this outerloop test for *Nix in [master]. Tracking this as #12015 +12017 area-System.Xml Add System.Xml ref assembly Addresses issue https://github.com/dotnet/corefx/issues/11888 All new System.Xml and System.Xml.\* APIs are now added to System.Xml.ReaderWriter ref assembly. All other Xml contracts have also been updated. cc: @danmosemsft cc: @ericstj @weshaggard @karajas https://github.com/dotnet/corefx/commit/3a9782afdf90c457155c2513321831578a8d6443 contains changes to fix the default TestTFM conditions in `dir.props` +12019 area-System.Net System.Net.Sockets - Substitute appropriate exceptions for some asserts. Mock/test support objects, and not tests themselves. +12023 area-System.Net Port fix for test failure: System.Net.NetworkInformation.Tests.NetworkInterfaceBasicTest/BasicTest_AccessInstanceProperties_NoExceptions_Linux @mellinoe can you please port https://github.com/dotnet/corefx/pull/11863 to 1.1? We had 2 hits in 1.1 test run: https://mc.dot.net/#/product/netcore/release~2F1.1.0/source/official~2Fcorefx~2Frelease~2F1.1.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20160923.02/workItem/System.Net.NetworkInformation.Functional.Tests/analysis/xunit/System.Net.NetworkInformation.Tests.NetworkInterfaceBasicTest~2FBasicTest_AccessInstanceProperties_NoExceptions_Linux +12024 area-System.Xml SameInstanceXslTransformReader and TC_SchemaSet_AllowXmlAttributes tests failed in CI "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/573/consoleText ``` System.Xml.Tests.SameInstanceXslTransformReader.proc2 [SKIP] Resolving of External URIs is no longer allowed System.Xml.Tests.SameInstanceXslTransformWriter.proc2 [SKIP] Resolving of External URIs is no longer allowed System.Xml.XPath.Tests -> D:\j\workspace\windows_nt_de---4526f5ff\bin\Windows_NT.AnyCPU.Debug\System.Xml.XPath.Tests\System.Xml.XPath.Tests.dll System.Xml.Tests.TC_SchemaSet_AllowXmlAttributes.v1(xmlFile: ""v1-1.xml"", xsdFile: ""v1.xsd"", allowXmlAttributes: True, expectedWarningCount: 0, expectedErrorCount: 0, expectedSchemaSetCount: 2) [FAIL] Assert.Equal() Failure Expected: 2 Actual: 0 Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Private.Xml\tests\XmlSchema\XmlSchemaSet\TC_SchemaSet_AllowXmlAttributes.cs(282,0): at System.Xml.Tests.TC_SchemaSet_AllowXmlAttributes.v1(String xmlFile, String xsdFile, Boolean allowXmlAttributes, Int32 expectedWarningCount, Int32 expectedErrorCount, Int32 expectedSchemaSetCount) System.Xml.Tests.TC_SchemaSet_AllowXmlAttributes.v1(xmlFile: ""v1-1.xml"", xsdFile: ""v1.xsd"", allowXmlAttributes: False, expectedWarningCount: 0, expectedErrorCount: 1, expectedSchemaSetCount: 2) [FAIL] Assert.Equal() Failure Expected: 2 Actual: 1 Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Private.Xml\tests\XmlSchema\XmlSchemaSet\TC_SchemaSet_AllowXmlAttributes.cs(282,0): at System.Xml.Tests.TC_SchemaSet_AllowXmlAttributes.v1(String xmlFile, String xsdFile, Boolean allowXmlAttributes, Int32 expectedWarningCount, Int32 expectedErrorCount, Int32 expectedSchemaSetCount) ``` " +12025 area-System.Numerics Test failure: System.Numerics.Tests.cast_fromTest/RunDoubleExplicitCastFromLargeBigIntegerTests Opened on behalf of @karelz The test `System.Numerics.Tests.cast_fromTest/RunDoubleExplicitCastFromLargeBigIntegerTests` has failed. `System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown.` Stack Trace: ``` at System.Numerics.BigInteger..ctor(UInt32[] value, Boolean negative) at System.Numerics.BigInteger.op_LeftShift(BigInteger value, Int32 shift) at System.Numerics.Tests.cast_fromTest.DoubleExplicitCastFromLargeBigIntegerTests(Int32 startShift, Int32 bigShiftLoopLimit, Int32 smallShift, Int32 smallShiftLoopLimit) at System.Numerics.Tests.cast_fromTest.RunDoubleExplicitCastFromLargeBigIntegerTests() ``` Failing configurations: - Centos.71.Amd64 - AnyCPU-Debug - Ubuntu.1604.Amd64 - AnyCPU-Debug - Ubuntu.1404.Amd64 - AnyCPU-Debug https://mc.dot.net/#/product/netcore/release~2F1.1.0/source/official~2Fcorefx~2Frelease~2F1.1.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20160923.02/workItem/System.Runtime.Numerics.Tests/analysis/xunit/System.Numerics.Tests.cast_fromTest~2FRunDoubleExplicitCastFromLargeBigIntegerTests +12028 area-Meta Using latest packages with NETCoreApp1.0 We need to port some of the automatic harvesting infrastructure to 1.1, otherwise we'll ship refs with incremented assembly versions that aren't satisfied by the impls in shared framework 1.0. Specifically: https://github.com/dotnet/corefx/pull/11871 When doing this I need to do closure validation so that I don't cause the same ripple effect that we had in master where we put out one bad package build with refs in torn state (built against LKG with higher versioned refs). I don't expect this to be a problem in 1.1 since we haven't upgraded ref dependencies (happened in dev/api), but I want to make sure we do the validation up front to prevent any cascading issues. /cc @weshaggard +12029 area-System.Net Failing assert in SystemUnicastIPAddressInformation.PrefixLengthToSubnetMask "@geoffkizer is hitting the following assert in a bunch of tests when building/running corefx tests locally on Windows: ``` xml c__DisplayClass46_1.<b__1>d.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 224\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1()\r\n at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\ExecutionTimer.cs:line 48\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction)\r\n at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.core\Sdk\ExceptionAggregator.cs:line 90\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code)\r\n at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 208\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance)\r\n at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 173\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestInvoker`1.b__45_0()\r\n at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.core\Sdk\ExceptionAggregator.cs:line 107\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code)\r\n at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestRunner.cs:line 67\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator)\r\n at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.core\Sdk\ExceptionAggregator.cs:line 0\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code)\r\n at Xunit.Sdk.TestRunner`1.d__43.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestRunner.cs:line 0\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestRunner`1.RunAsync()\r\n at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestCaseRunner.cs:line 82\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestCaseRunner`1.RunAsync()\r\n at Xunit.Sdk.XunitTestMethodRunner.RunTestCaseAsync(IXunitTestCase testCase) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestMethodRunner.cs:line 45\r\n at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestMethodRunner.cs:line 136\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync()\r\n at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestMethodRunner.cs:line 106\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestMethodRunner`1.RunAsync()\r\n at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestClassRunner.cs:line 205\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync()\r\n at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestClassRunner.cs:line 163\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestClassRunner`1.RunAsync()\r\n at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestCollectionRunner.cs:line 130\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync()\r\n at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestCollectionRunner.cs:line 101\r\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\r\n at Xunit.Sdk.TestCollectionRunner`1.RunAsync()\r\n at Xunit.Sdk.XunitTestAssemblyRunner.<>c__DisplayClass14_2.b__3() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestAssemblyRunner.cs:line 179\r\n at System.Threading.Tasks.Task`1.InnerInvoke()\r\n at System.Threading.Tasks.Task.Execute()\r\n at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)\r\n at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)\r\n at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\MaxConcurrencySyncContext.cs:line 107\r\n at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\MaxConcurrencySyncContext.cs:line 89\r\n at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) in C:\BuildAgent\work\cb37e9acf085d108\src\common\XunitWorkerThread.cs:line 37\r\n at System.Threading.Tasks.Task.Execute()\r\n at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)\r\n at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)\r\n at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)]]> ``` cc: @cipop, @davidsh, @mellinoe " +12031 area-System.Net Move recently added WebClient tests to outerloop I saw these fail with connectivity issues today; moving to outer loop with other such networking tests. +12032 area-System.Collections Would it be possible to shrink the field size of LinkedList? Noticed that 0e62a60 added a new field to `LinkedList`, `_siInfo`, for serialization. Since that and SyncRoot are rarely used, perhaps they can be combined into a `StrongBox` to shrink the size of LinkedList. +12033 area-System.Collections Enumerable.Contains ICollection optimization should go in a different overload Here's the current source for `Enumerable.Contains`: ``` cs public static bool Contains(this IEnumerable source, TSource value) { ICollection collection = source as ICollection; if (collection != null) { return collection.Contains(value); } return Contains(source, value, null); } public static bool Contains(this IEnumerable source, TSource value, IEqualityComparer comparer) { if (comparer == null) { comparer = EqualityComparer.Default; } if (source == null) { throw Error.ArgumentNull(nameof(source)); } foreach (TSource element in source) { if (comparer.Equals(element, value)) { return true; } } return false; } ``` as you can see, in the comparer-less overload, it checks if the source implements ICollection first and then calls `Contains` on that collection if so. However, this is not done in the overload that doesn't accept a comparer. We may want to consider instead checking for ref equality to `EqualityComaprer.Default` in the other overload, and then applying the ICollection optimizaion. This will potentially make code that calls `Contains` with a comparer, i.e. a custom data structure that accepts a comparer in its constructor, faster. +12034 area-Meta Create System.Spatial types for SQL-Independent geography code It's been about 8 years since Spatial support was added to SQL Server. At the time, .NET was not as far along as it is today, and was not open source. The team created a SQL-dependent version of the Geography classes, which has created [situations this this at hundreds of companies](http://stackoverflow.com/questions/27343024/using-sql-server-geography-in-c-sharp-entities-without-referencing-entity-framew). Now that we have .NET Core, Roslyn, and a bunch of other new, amazing technologies in .NET... it might be time to give it another go and see if we can create a vanilla set of `System.Spatial` types that the Entity Framework, OData, and other spatial libraries can inherit from. Since DbGeography types [aren't even really on the EFCore schedule yet](https://github.com/aspnet/EntityFramework/wiki/Roadmap), this is the perfect time to get something spun up so that EFCore can leverage these types when the time comes. +12035 area-System.IO Add negative tests for FileStream Begin/End "Adds negative tests for Begin/End, removes unnecessary block for `\\.\` paths. (The block for `\\.\` paths fulfills a need that predates our supported Windows OSes. You cannot inadvertently mess up ""raw"" drives. In addition we currently allow `\\?\` which is another form of device path access.) " +12036 area-Meta Add documentation guidelines for adding new APIs @ericstj @stephentoub @joperezr can you guys please review to see if I got all the details? @danmosemsft @karelz could you guys please dogfood these instructions to see if they help enable you to accomplish the goal? +12037 area-System.Net Investigate overriding SslStream.CopyToAsync NetworkStream doesn't override CopyToAsync, instead inheriting the base implementation that calls ReadAsync/WriteAsync in a loop. There are likely some optimizations that could be done to improve efficiency, avoiding allocations, avoiding repeated pinning/unpinning, etc. +12038 area-System.Net Add support for RemoteCertificateValidationCallback with ClientWebSocket There is no way of overriding the validation of server certificates on an SslStream utilised by ClientWebSocket. Could this be exposed through ClientWebSocketOptions? _EDIT 3/5/2018 by @stephentoub. Added proposal:_ ```C# public sealed class ClientWebSocketOptions { public RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get; set; } ... } ``` +12039 area-System.Diagnostics Proposal: Add Task-based Run API for System.Diagnostics.Process The `Exited` event API is cumbersome for 99% of the way I use processes (run external command, get output when exited). I end up writing a Task-based wrapper every time. It would be great if we could just add an API for that. +12041 area-System.Net Fix NoSocketsReuseUnicastPortSupport tests The NoSocketsReuseUnicastPortSupport tests were failing on Windows Server 2012 R2 in the CI runs because we thought the feature was not present. It was only introduced in Windows 10. However, it was later backported as a serving fix to both Windows 8.1 (Windows Server 2012 R2) and Windows 8 (Windows Server 2012). It is not possible to detect in the CI tests if a servicing patch is installed. So, this PR adjusts the capability detection to return a null value (instead of true or false) to indicate this uncertainty and thus the tests are skipped in that case. Fixes #11088 +12042 area-System.Linq Optimize Enumerable.Cast calls followed by ToArray or ToList, refactor Count This PR contains 3 changes: - Segregate parts of `Enumerable.Count` so it is possible to call `Count` from an IIListProvider w/o going into an infinite loop. This is useful for iterators (like this one) where we can optimize `ToArray` or `ToList` but not `Count`. - Optimize the iterator returned by `Cast` for non-generic ICollections; in `ToArray` and `ToList` we can preallocate an array before enumerating the items. Common BCL containers such as List/Queue/Array/etc. implement the non-generic interface, so the optimizations should benefit a lot of code. - GetCount can't be optimized since just returning the `.Count` of the source collection wouldn't actually verify that all of the elements in it were of type TResult. This isn't a problem for `ToArray` / `ToList` however, since we have to go through the entire collection anyway. - Add extensive testing for the changes, including regression tests to make sure that `Skip`, `ElementAt`, `Last`, etc. aren't optimized. @stephentoub, @VSadov, @JonHanna +12046 area-System.Security Add remaining missing members of System.Security namespace (not child namespaces) Tests are not passing at all on my box yet due to unrelated errors which I will follow up with offline if they don't occur on CI. Also updated the baselines with /p:baselineallapicompaterror=true, which shows up as a large diff. Issues: #11122 and #11115 @weshaggard +12047 area-System.Collections Add new Queue and Stack APIs Fixes #4316 Also, adding APIs to .NET core was something of a soul destroying experience for me - very confusing as there are so many things to change and define and add. #11689 was helpful once I discovered it, but I ended up changing things without really understanding what the impact was. /cc @benadams @Page-Not-Found @weshaggard @stephentoub @ianhays +12048 area-System.Net ReceiveMessageFromV6BoundToAnyV4_NotReceived failed in CI on CentOS ``` System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFromV6BoundToAnyV4_NotReceived [FAIL] Assert.Throws() Failure Expected: typeof(System.Net.Sockets.SocketException) Actual: typeof(Xunit.Sdk.ThrowsException): Assert.Throws() Failure Expected: typeof(System.Exception) Actual: (No exception was thrown) Stack Trace: at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFrom_Helper(IPAddress listenOn, IPAddress connectTo, Boolean expectedToTimeout) ``` ``` +12049 area-System.Net Fix new ClientWebSocketOptions tests on Windows 7 cc: @davidsh +12050 area-System.Globalization StringMiscTests.CasingTest test failing on Windows 7 "``` System.Tests.StringMiscTests.CasingTest(lowerForm: ""??"", upperForm: ""??"", cultureName: ""en-US"") [FAIL] Assert.Equal() Failure  (pos 1) Expected: ?? Actual: ??  (pos 1) Stack Trace: at System.Tests.StringMiscTests.CasingTest(String lowerForm, String upperForm, String cultureName) ``` " +12051 area-System.Globalization CompareInfoMiscTests.SortKeyTest test failing on Windows 7 "``` System.Globalization.Tests.CompareInfoMiscTests.SortKeyTest(compareInfo: CompareInfo - , string1: ""'"", string2: ""'"", options: IgnoreCase, IgnoreKanaType, IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: at System.Globalization.Tests.CompareInfoMiscTests.SortKeyTest(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) ``` " +12052 area-System.Security Four DSA tests failing on Windows 7 ``` System.Security.Cryptography.Dsa.Tests.DSAImportExport.ExportAutoKey [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported VoidMainWithExitCodeApp -> d:\j\workspace\outerloop_win---b88c6526\bin\Windows_NT.AnyCPU.Debug\VoidMainWithExitCodeApp\netcoreapp1.1\VoidMainWithExitCodeApp.exe Stack Trace: at System.Security.Cryptography.CngKey.InitializeKeyProperties(SafeNCryptKeyHandle keyHandle, CngKeyCreationParameters creationParameters) at System.Security.Cryptography.CngKey.Create(CngAlgorithm algorithm, String keyName, CngKeyCreationParameters creationParameters) at Internal.Cryptography.CngAlgorithmCore.GetOrGenerateKey(Int32 keySize, CngAlgorithm algorithm) at System.Security.Cryptography.DSACng.get_Key() at System.Security.Cryptography.DSACng.ExportKeyBlob(Boolean includePrivateParameters) at System.Security.Cryptography.DSACng.ExportParameters(Boolean includePrivateParameters) at System.Security.Cryptography.Dsa.Tests.DSAImportExport.ExportAutoKey() System.Security.Cryptography.EcDsa.Tests.ECDsaImportExportTests.TestExplicitCurvesSignVerify [SKIP] System.Security.Cryptography.Dsa.Tests.DSAImportExport.ExportAutoKey [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKeyLite.SetKeyLength(SafeNCryptKeyHandle keyHandle, Int32 keySize) at System.Security.Cryptography.CngKeyLite.GenerateNewExportableKey(String algorithm, Int32 keySize) at System.Security.Cryptography.DSAImplementation.DSACng.GetDuplicatedKeyHandle() at System.Security.Cryptography.DSAImplementation.DSACng.ExportKeyBlob(Boolean includePrivateParameters) at System.Security.Cryptography.DSAImplementation.DSACng.ExportParameters(Boolean includePrivateParameters) at System.Security.Cryptography.Dsa.Tests.DSAImportExport.ExportAutoKey() System.Security.Cryptography.Dsa.Tests.DSASignVerify.SignAndVerifyDataExplicit2048 [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The parameter is incorrect Stack Trace: at System.Security.Cryptography.CngKeyLite.ImportKeyBlob(String blobType, Byte[] keyBlob) at System.Security.Cryptography.DSAImplementation.DSACng.ImportKeyBlob(Byte[] rsaBlob, Boolean includePrivate) at System.Security.Cryptography.DSAImplementation.DSACng.ImportParameters(DSAParameters parameters) at System.Security.Cryptography.Dsa.Tests.DSASignVerify.SignAndVerify(Byte[] data, String hashAlgorithmName, DSAParameters dsaParameters, Int32 expectedSignatureLength) at System.Security.Cryptography.Dsa.Tests.DSASignVerify.SignAndVerifyDataExplicit2048() System.Security.Cryptography.Dsa.Tests.DSASignVerify.InvalidKeySize_DoesNotInvalidateKey [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The requested operation is not supported Stack Trace: at System.Security.Cryptography.CngKeyLite.SetKeyLength(SafeNCryptKeyHandle keyHandle, Int32 keySize) at System.Security.Cryptography.CngKeyLite.GenerateNewExportableKey(String algorithm, Int32 keySize) at System.Security.Cryptography.DSAImplementation.DSACng.GetDuplicatedKeyHandle() at System.Security.Cryptography.DSAImplementation.DSACng.ComputeQLength() at System.Security.Cryptography.DSAImplementation.DSACng.AdjustHashSizeIfNecessary(Byte[] hash) at System.Security.Cryptography.DSAImplementation.DSACng.CreateSignature(Byte[] hash) at System.Security.Cryptography.DSA.SignData(Byte[] data, Int32 offset, Int32 count, HashAlgorithmName hashAlgorithm) at System.Security.Cryptography.DSA.SignData(Byte[] data, HashAlgorithmName hashAlgorithm) at System.Security.Cryptography.Dsa.Tests.DSASignVerify.InvalidKeySize_DoesNotInvalidateKey() ``` +12053 area-Meta Question: resolving NETStandard libraries to framework assemblies When installing the package `NETStandard.Library` into a .Net Framework project (for example net46) - Some packages install nothing. I saw `TypeForwardedToAttribute` for binary capability. - Some packages set a reference to assembly in GAC. This is by using `frameworkAssembly` element of nuget. - Some packages **do install an assembly**, but it already exists in the full Framework, such as `System.IO.Compression` and `System.Net.Http`. Why can't these be treated as well as the above-mentioned type? And another question for type resolving: IL records the definition assembly for every type. If a type is moved into another assembly, a `TypeForwardedToAttrubute` can be used for binary capability. But for some assemblies, for example `System.ObjectModel`, I haven't see it in GAC. How can `[System.ObjectModel]System.ComponentModel.INotifyPropertyChanged` be resolved to `[System]System.ComponentModel.INotifyPropertyChanged`? **Edited**: - For `System.IO.Compression`, I see a `runtime` folder in the package. It seems that assembly installed to `net46` is the win runtime. But why only install a GAC assembly in `net45`? - For `System.Console`, I see an assembly full of `TypeForwardedToAttrubute`. But as said above, what's are the differences between `System.ObjectModel`? +12055 area-System.Reflection System.Reflection.Emit.DynamicILInfo I rely in my code on this type. Is it planned to include it? Currently in [.NET API Catalog](https://apisof.net/) it's not seem to exist in .NET Standard or .NET Core App. Search for this in this repository does not give any hint. - (Same issue with System.Reflection.MethodBody and Resolve methods on Module type, but I see they are include in .NET Standard 2.0) +12058 area-Infrastructure "Running into ""Could not locate runtime assets for any of the frameworks ..."" frequently" Frequently when I try to build a test project with `/t:BuildAndTest`, I will run into an error message saying ``` Could not locate runtime assets for any of the frameworks .NETCoreApp,Version=1.0 ``` I have tried rebasing and running MSBuild with `/t:RebuildAndTest`, in addition to following the instructions [here](https://github.com/dotnet/corefx/issues/11204#issuecomment-243498131) and running MSBuild on the depproj file. However I still get the same error from MSBuild, and I end up having to run `sync` again (which, AFAIK, is the only thing that fixes this) which takes half an hour and downloads probably a few GB's worth of packages. What causes this error message? Is there a known workaround for it? Thanks. +12059 area-System.Collections Add test coverage for EqualityComparer This is a moderately large PR (750 lines), so it's best to review commit-by-commit. It contains several changes, including: - Add generic & type-specific tests for EqualityComparer - Covers all of the codepaths [here] and a few more, including - byte - IEquatable - Nullable {bytes,ints,enums} - short enums - sbyte enums - int enums - long enums - structs that don't override Equals/GetHashCode - regular, non-equatable objects - Ensure left-hand `Equals` is called first for 2 non-null iputs - Move some enum types from `EnumTests` to a test folder in Common, so other tests can use them - Remove `IntEnum`, `UIntEnum` types introduced in #11074 in favor of @hughbe's types - Rename some things accordingly, `Long` -> `Int64`, `Int` -> `Int32` - Add a few more interesting test cases to the generic specializations, incl. `IntPtr?`, `UIntPtr?`, equatable types - Renamed test classes from `...ComparerTests` to `...ComparersTests` - Prefix Comparer generic tests with `Comparer_` and EqualityComparer generic tests with `EqualityComparer_` to avoid name clashes and get better stack traces The bulk of the PR is in `EqualityComparer.Tests.cs` and `EqualityComparer.Generic.Tests.cs`. /cc @stephentoub, @hughbe +12060 area-System.Net where are 'Close()' and 'Handle' on System.Net.Sockets.Socket ? I'm porting my network class to .net core, but I can't find **Socket.Close() & Socket.Handle**. where are they? are they not necessary on .net core socket? +12061 area-System.Net Minor change to avoid an allocation in Uri We can avoid allocating a substring and just fix directly on `relativeStr`. @CIPop @davidsh +12062 area-System.Collections Make Queue.Peek inline We can trivially make Queue.Peek inline by moving the throw code into a new method. JIT will not inline this as per dotnet/coreclr#6103. [Test code, before/after asm](https://gist.github.com/jamesqo/6faf5c7c7a6237f74cbd97d485a3fcd1) @ianhays +12063 area-System.Net Enable System.Net.WebSockets.Client tests for UWP These changes allow the WebSockets.Client tests to run for netcore50 (UWP) target. I removed unneeded packages from project.json which prevented the tests from working on UWP. UWP doesn't have System.Net.Security, for example. But it doesn't need that package in the tests project anyways. There are failures in the tests (ClientWebSocketOptions) when they run but I will follow up separately with that. +12064 area-System.Security Support for Rijndael encryption I need to port some existing code that uses Rijndeal encryption to .net core. Unfortunately, Rijndeal encryption (RijndaelManaged class) with a blocksize key of 256 bit is not available for .net core. Any idea's when and if this will be made available? +12065 area-Serialization Add System.Json tests I know this is kinda a legacy library, but worth adding some tests Also fixes a bad param name, and removes some dead code (we already check for a null parameter before calling a method). Also increases CC to 99.1% and 92.3% (the rest I think is dead code, but I don't know whether more features are coming) +12066 area-System.IO Add password to ZipArchive can we make that happen? +12068 area-System.Data Cannot connect to SQL Server on OSX "Hi, I am trying to port a web api that acts as a front-end for an SQL Server database. The web api works fine under Windows and when deployed to IIS, but gives this error when ran from within OSX and Visual Studio Core. ``` Unhandled Exception: System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a conn ection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is co nfigured to allow remote connections. (provider: TCP Provider, error: 35 - An internal exception was caught) ---> System.AggregateExcept ion: One or more errors occurred. (Device not configured) ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException: Devi ce not configured at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.SqlClient.SNI.SNITCPHandle.d__22.MoveNext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait(TimeSpan timeout) at System.Data.SqlClient.SNI.SNITCPHandle..ctor(String serverName, Int32 port, Int64 timerExpire, Object callbackObject, Boolean para llel) --- End of inner exception stack trace --- at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Obj ect providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean a pplyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolG roupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnection Options options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInt ernal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnecti onInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolea n allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOp tions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConne ctionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connecti onFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open() at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext() at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_ShapedQuery>d__3`1.MoveNext() at System.Linq.Enumerable.First[TSource](IEnumerable`1 source) at lambda_method(Closure , QueryContext ) at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.<>c__DisplayClass19_1`1.b__1(QueryContext qc) at System.Linq.Queryable.First[TSource](IQueryable`1 source) at sql_server_ef_connector.Program.Main(String[] args) ``` The `web.config` connection string was ``` connectionString=""data source=A\B;initial catalog=C;persist security info=True;user id=X;password=Y;MultipleActiveResultSets=True;App=EntityFramework"" providerName=""System.Data.SqlClient"" ``` which is then given to method `UseSQLServer` in the form: ``` Server=A\B;Database=C;user id=X;password=Y; ``` The project compiles fine, but crashes at the first query. Have I done anything terribly wrong or did I run into something that is not working properly? " +12069 area-System.Net Add missing members to WebRequest/WebResponse Adds the missing members to WebRequest/WebResponse, and switches some that were abstract to instead be virtual, to match desktop. (I believe @tijoytom was adding some of these as part of his updates to HttpWebRequest/Response, but I'm adding them all now to unblock @geoffkizer's work on FtpWebRequest/Response and mine on FileWebRequest/Response.) cc: @davidsh, @cipop, @ericeil, @geoffkizer, @tijoytom, @karelz +12070 area-System.Runtime Sys.Runtime.Int.WindowsRuntime broken on Android We've been getting [reports](https://github.com/Reactive-Extensions/Rx.NET/issues/261) that the `System.Runtime.InteropServices.WindowsRuntime` package may be broken on Android. Looking at the package, it has a blank impl for `xamarinios1` but not for the other Xamarin types. As Xamarin supports NET Standard 1.6, it's pulling in the `netstandard1.3` impl. This seems to be causing an issue on build: ``` Error CS1703 Multiple assemblies with equivalent identity have been imported: 'C:\Projects\NS\Kanzi.Mobile\packages\System.Runtime.InteropServices.WindowsRuntime.4.0.1\lib\netstandard1.3\System.Runtime.InteropServices.WindowsRuntime.dll' and 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\Facades\System.Runtime.InteropServices.WindowsRuntime.dll'. Remove one of the duplicate references. Mobile.Core.Android C:\Projects\NS\Kanzi.Mobile\Mobile.Core.Android\CSC 1 Active ``` /cc @ericstj +12071 area-System.Security Port System.Security.Cryptography Base64 transform classes Per issue https://github.com/dotnet/corefx/issues/9992 There were not existing tests in desktop, so I added some basic tests from RFC 4648 and some whitespace tests. Also needed to convert S.S.C.Encoding project to netstandard1.7 +12072 area-System.Data System.Data.SqlClient.SqlConnection does not roll back open transaction on dispose "SQL Server version is 2014 if it matters. Trivial reproduction causes timeout unless ;pooling=false is appended to the connection string. ``` using System; using System.Data; using System.Data.SqlClient; /* CREATE TABLE Scratch (ID INTEGER NOT NULL); INSERT INTO Scratch VALUES (1); */ namespace ConsoleApplication { public class Program { public static void Main(string[] args) { if (args.Length == 0) { Console.WriteLine(""Usage: dotnet disposeconnection.dll connectionstring""); return ; } using (var c1 = new SqlConnection(args[0])) { c1.Open(); using (var c2 = new SqlConnection(args[0])) { c2.Open(); Exec(c2, ""BEGIN TRANSACTION;""); Exec(c2, ""UPDATE Scratch SET ID = 2;""); } Exec(c1, ""UPDATE Scratch SET ID=3;""); } } private static void Exec(SqlConnection c, string s) { using (var m = c.CreateCommand()) { m.CommandText = s; m.ExecuteNonQuery(); } } } } ``` We got here through a much larger chunk of code handling thrown exceptions. We have no idea what the connection state is and it might have an executing data reader on it so we have no good way of passing the rollback command ourselves. " +12073 area-Infrastructure Update CoreFx to preview1-24526-02 (release/1.1.0) /cc @dotnet/corefx-contrib +12074 area-Meta Remove all KeepAllProjectReferences Currently some projects are using KeepAllProjectReferences in their csproj. This needs to be cleaned out as it might hide some packaging issues in test passes. +12075 area-Infrastructure Error running `msbuild /T:BuildAndTest /P:Coverage=true` ``` cd src/System.Collections.NonGeneric/tests msbuild /T:BuildAndTest /P:Coverage=true ``` ![error](https://cloud.githubusercontent.com/assets/1275900/18844920/5023f3f6-8417-11e6-900a-8222d4db4614.png) Tools are already initialized, also happens with System.Collections.Specialized, and I haven't checked others +12076 area-Infrastructure Harvest reference assemblies from last shipped packages As in master we need to harvest assembly references from the previous shipped packages. This is essential for a few reasons: 1. Shared framework cannot update its impl versions so any changes to reference assembly version in split packages would result in ref-def mismatch. 2. Master has already moved down and we cannot have v.Next ship lower reference versions than 1.1. Fixes https://github.com/dotnet/corefx/issues/12028 I've also ported the buildtools update that fixes https://github.com/dotnet/buildtools/issues/1064 since it was one commit away and can piggyback on my testing. /cc @weshaggard @chcosta +12077 area-System.Net Ensure NameResolutionPal is initialized by every public entrypoint in System.Net.Dns Fixes #11987. @CIPop @stephentoub +12078 area-System.Data Orderby fails silently -- LINQ **Situation**: This LINQ query will run on a DB table. ``` var query = from x in db.User where x.Active == true select x; var resultList = query.OrderBy(x.SerialNumber, new SerialNumberComparer()) // SerialNumberComparer is IComparer .select(x => x) .ToList(); ``` The `resultList` will contain the data 'ordered by' the standard sort algorithm for that type -- which in this case is String. **Argument**: 1- I understand that the logic / code of `SerialNumberComparer` can not be transferred to the any SQL engine or at least it is not something that universal in all SQL engines. 2- This behavior may be by design in fact I think it is probably by design. 3- With 1 being said, I do not demand any magical thing here, but at least I see this the `OrderBy(...)` extension should through exception or something more appropriate because I think this is not a good idea to just ignore the `new SerialNumberComparer()` argument and continue. 4- Is this specific to the LINQ provider implementation that my ORM implements to expose my database tables to LINQ? Thanks. +12079 area-System.Security Don't invoke virtual property setters inside the base constructor. This is related to the following issue which does not appear to have been fully addressed: https://github.com/dotnet/corefx/pull/6829 We are still seeing the issue in the AuthenticatedAes class. Here is a partial call stack. Feel free to request additional information. 0000004b9864d960 00007ffce4a131e3 Security.Cryptography.AuthenticatedAesCng.set_Mode(System.Security.Cryptography.CipherMode) 0000004b9864d9a0 00007ffce4a1316a System.Security.Cryptography.SymmetricAlgorithm..ctor() [f:\dd\ndp\fxcore\Open\src\System.Security.Cryptography.Primitives\src\System\Security\Cryptography\SymmetricAlgorithm.cs @ 14] 0000004b9864d9d0 00007ffce4a1312b Security.Cryptography.AuthenticatedSymmetricAlgorithm..ctor() 0000004b9864da00 00007ffce4a130ab Security.Cryptography.AuthenticatedAes..ctor() 0000004b9864da30 00007ffce4a12eca Security.Cryptography.AuthenticatedAesCng..ctor(System.Security.Cryptography.CngProvider) 0000004b9864daf0 00007ffce4a12532 Microsoft.Windows.KpsCore.Crypto.Cng.AuthenticatedAes..ctor(Microsoft.Windows.KpsCore.Crypto.AuthenticatedAesMode, System.String) +12083 area-System.Linq Consider checking for IReadOnlyCollection in Enumerable.ToArray It may be useful to check for `IReadOnlyCollection` in `Enumerable.ToArray` so we can presize the array before copying over the elements. Additionally, if source implements `IReadOnlyList` we can avoid the enumerator allocation and make only 1 as opposed to 2 virtual calls per iteration. I do not think we should optimize for read-only collections in other parts of the LINQ codebase, since 1) it would add a lot more complexity and 2) casting to variant interfaces is slow (dotnet/coreclr#603), so enumerables that do not implement these interfaces will pay. However, this particular case may be worthwhile, since it is such a hot codepath and the 2x virtual method calls per iteration will make the tradeoff immeasurable for larger lazy enumerables. This should definitely be considered once the related CoreCLR issue is fixed. This will benefit collections like `Stack` and `Queue` which do not implement `ICollection`. (At least, not until #11990 is accepted/rejected.) +12084 area-System.Net System.Net.NameResolution.Tests occasionally fails in CI "http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/647/consoleFull#126993540579fe3b83-f408-404c-b9e7-9207d232e5fc 14:48:58 Discovering: System.Net.NameResolution.Pal.Tests 14:48:58 Discovered: System.Net.NameResolution.Functional.Tests 14:48:58 Starting: System.Net.NameResolution.Functional.Tests 14:48:58 Discovered: System.Net.NameResolution.Pal.Tests 14:48:58 Starting: System.Net.NameResolution.Pal.Tests 14:48:58 System.Net.NameResolution.Tests.GetHostByAddressTest.DnsObsoleteGetHostByAddress_LoopbackString_ReturnsSameAsLoopbackIP [FAIL] 14:48:58 System.Diagnostics.Debug+DebugAssertException : Failed to detect InterNetwork protocol: NotSocket 14:48:58 14:48:58 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 14:48:58 at System.Environment.get_StackTrace() 14:48:58 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 14:48:58 at System.Net.SocketProtocolSupportPal.IsProtocolSupported(AddressFamily af) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\Net\SocketProtocolSupportPal.Windows.cs:line 59 14:48:58 at System.Net.SocketProtocolSupportPal.EnsureInitialized() in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\Net\SocketProtocolSupportPal.Windows.cs:line 49 14:48:58 at System.Net.SocketProtocolSupportPal.get_OSSupportsIPv6() in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\Net\SocketProtocolSupportPal.Windows.cs:line 27 14:48:58 at System.Net.Dns.InternalGetHostByAddress(IPAddress address, Boolean includeIPv6) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.NameResolution\src\System\Net\DNS.cs:line 145 14:48:58 at System.Net.Dns.GetHostByAddress(String address) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.NameResolution\src\System\Net\DNS.cs:line 112 14:48:58 at System.Net.NameResolution.Tests.GetHostByAddressTest.DnsObsoleteGetHostByAddress_LoopbackString_ReturnsSameAsLoopbackIP() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.NameResolution\tests\FunctionalTests\GetHostByAddressTest.cs:line 24 14:48:58 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 14:48:58 at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 14:48:58 at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 14:48:58 at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 147 14:48:58 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 224 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 14:48:58 at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\ExecutionTimer.cs:line 48 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 14:48:58 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.core\Sdk\ExceptionAggregator.cs:line 90 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 14:48:58 at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 208 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 14:48:58 at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 173 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.TestInvoker`1.b__45_0() 14:48:58 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.core\Sdk\ExceptionAggregator.cs:line 107 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 14:48:58 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestRunner.cs:line 67 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 14:48:58 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.core\Sdk\ExceptionAggregator.cs:line 0 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 14:48:58 at Xunit.Sdk.TestRunner`1.d__43.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestRunner.cs:line 0 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.TestRunner`1.RunAsync() 14:48:58 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestCaseRunner.cs:line 82 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.TestCaseRunner`1.RunAsync() 14:48:58 at Xunit.Sdk.XunitTestMethodRunner.RunTestCaseAsync(IXunitTestCase testCase) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestMethodRunner.cs:line 45 14:48:58 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestMethodRunner.cs:line 136 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 14:48:58 at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestMethodRunner.cs:line 106 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.TestMethodRunner`1.RunAsync() 14:48:58 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestClassRunner.cs:line 205 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 14:48:58 at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestClassRunner.cs:line 163 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.TestClassRunner`1.RunAsync() 14:48:58 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestCollectionRunner.cs:line 130 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 14:48:58 at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestCollectionRunner.cs:line 101 14:48:58 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 14:48:58 at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 14:48:58 at Xunit.Sdk.XunitTestAssemblyRunner.<>c__DisplayClass14_2.b__3() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestAssemblyRunner.cs:line 179 14:48:58 at System.Threading.Tasks.Task`1.InnerInvoke() 14:48:58 at System.Threading.Tasks.Task.Execute() 14:48:58 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 14:48:58 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 14:48:58 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 14:48:58 at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\MaxConcurrencySyncContext.cs:line 107 14:48:58 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 14:48:58 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\MaxConcurrencySyncContext.cs:line 89 14:48:58 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) in C:\BuildAgent\work\cb37e9acf085d108\src\common\XunitWorkerThread.cs:line 37 14:48:58 at System.Threading.Tasks.Task.Execute() 14:48:58 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 14:48:58 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 14:48:58 at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 14:48:58 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 14:48:58 Stack Trace: 14:48:58 at System.Diagnostics.Debug.WindowsDebugLogger.ShowAssertDialog(String stackTrace, String message, String detailMessage) 14:48:58 D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\Net\SocketProtocolSupportPal.Windows.cs(86,0): at System.Net.SocketProtocolSupportPal.IsProtocolSupported(AddressFamily af) 14:48:58 D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\Net\SocketProtocolSupportPal.Windows.cs(49,0): at System.Net.SocketProtocolSupportPal.EnsureInitialized() 14:48:58 D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\Net\SocketProtocolSupportPal.Windows.cs(27,0): at System.Net.SocketProtocolSupportPal.get_OSSupportsIPv6() 14:48:58 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.NameResolution\src\System\Net\DNS.cs(145,0): at System.Net.Dns.InternalGetHostByAddress(IPAddress address, Boolean includeIPv6) 14:48:58 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.NameResolution\src\System\Net\DNS.cs(112,0): at System.Net.Dns.GetHostByAddress(String address) 14:48:58 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.NameResolution\tests\FunctionalTests\GetHostByAddressTest.cs(24,0): at System.Net.NameResolution.Tests.GetHostByAddressTest.DnsObsoleteGetHostByAddress_LoopbackString_ReturnsSameAsLoopbackIP() 14:48:58 Finished: System.Net.NameResolution.Pal.Tests 14:48:58 14:48:58 === TEST EXECUTION SUMMARY === 14:48:58 System.Net.NameResolution.Pal.Tests Total: 14, Errors: 0, Failed: 0, Skipped: 0, Time: 0.503s 14:48:58 Finished running tests. End time=14:50:49.31, Exit code = 0 14:48:59 System.Xml.RW.XmlReader.ReadContentAs.Tests -> D:\j\workspace\windows_nt_de---4526f5ff\bin\Windows_NT.AnyCPU.Debug\System.Xml.RW.XmlReader.ReadContentAs.Tests\System.Xml.RW.XmlReader.ReadContentAs.Tests.dll 14:49:00 System.Xml.RW.XmlSystemPathResolver.Tests -> D:\j\workspace\windows_nt_de---4526f5ff\bin\Windows_NT.AnyCPU.Debug\System.Xml.RW.XmlSystemPathResolver.Tests\System.Xml.RW.XmlSystemPathResolver.Tests.dll 14:49:00 System.Xml.RW.XmlReader.Tests -> D:\j\workspace\windows_nt_de---4526f5ff\bin\Windows_NT.AnyCPU.Debug\System.Xml.RW.XmlReader.Tests\System.Xml.RW.XmlReader.Tests.dll 14:49:01 System.Xml.RW.XmlWriter.Tests -> D:\j\workspace\windows_nt_de---4526f5ff\bin\Windows_NT.AnyCPU.Debug\System.Xml.RW.XmlWriter.Tests\System.Xml.RW.XmlWriter.Tests.dll 14:49:02 System.Net.Primitives.Functional.Tests -> D:\j\workspace\windows_nt_de---4526f5ff\bin\Windows_NT.AnyCPU.Debug\System.Net.Primitives.Functional.Tests\System.Net.Primitives.Functional.Tests.dll 14:49:02 Finished: System.Net.NameResolution.Functional.Tests 14:49:02 14:49:02 === TEST EXECUTION SUMMARY === 14:49:02 D:\j\workspace\windows_nt_de---4526f5ff\Tools\tests.targets(261,5): warning : System.Net.NameResolution.Functional.Tests Total: 52, Errors: 0, Failed: 1, Skipped: 0, Time: 4.636s [D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.NameResolution\tests\FunctionalTests\System.Net.NameResolution.Functional.Tests.csproj] 14:49:02 Finished running tests. End time=14:50:53.27, Exit code = 1 14:49:02 D:\j\workspace\windows_nt_de---4526f5ff\Tools\tests.targets(261,5): warning MSB3073: The command ""D:\j\workspace\windows_nt_de---4526f5ff\bin/tests/Windows_NT.AnyCPU.Debug/System.Net.NameResolution.Functional.Tests/netcoreapp1.0/RunTests.cmd D:\j\workspace\windows_nt_de---4526f5ff\packages/"" exited with code 1. [D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.NameResolution\tests\FunctionalTests\System.Net.NameResolution.Functional.Tests.csproj] 14:49:02 D:\j\workspace\windows_nt_de---4526f5ff\Tools\tests.targets(272,5): err 4526f5ff\src\System.Net.NameResolution\tests\FunctionalTests\GetHostByAddressTest.cs:line 24 " +12085 area-Meta Strange dependency behavior Hi all, I have a library build for netstandard1.4, which corresponds to .NET 461. Then I build a desktop console application with .NET 4.5 and added reference to named library. All worked fine. But, this should not work, because v4.5 should not be able to use netstandard1.4. Previously this was not the case. Is tat same new expected behavior? Thanks +12088 area-System.Net WebSockets.Client tests fail on UWP "Running the innerloop System.Net.WebSockets.Client.Tests fails on UWP (netcore50). 2 of the 3 innerloop tests fail: ``` c__DisplayClass3_0.b__0() in s:\GitHub\corefx\src\System.Net.WebSockets.Client\tests\ClientWebSocketOptionsTests.cs:line 59]]> c__DisplayClass2_0.b__0() in s:\GitHub\corefx\src\System.Net.WebSockets.Client\tests\ClientWebSocketOptionsTests.cs:line 34]]> ``` " +12091 area-System.Net Add FileWebRequest/Response to corefx The semantics of these types are a bit strange in places (e.g. allowing a request stream and a response stream for the same file, but using a null stream for the response in that case), but I didn't mess with them. cc: @davidsh, @cipop, @ericeil, @karelz, @geoffkizer +12093 area-Meta Create corefx.vssettings file for VS 2015 & VS 15 Can [this](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md) be updated for VS 2015 & VS 15? +12101 area-System.IO Expose path constructors for StreamReader/StreamWriter Exposes the members and adds new tests for them. System.IO is already updated to build for netstandard1.7 so no changes to be made there. These new constructors are not added for uap10.1 as that would require we merge the IO and IO.FileSystem assemblies to gain access to FileStream from the IO assembly. Progress towards https://github.com/dotnet/corefx/issues/9465 @danmosemsft @joperezr @weshaggard +12102 area-System.Runtime Port some missing types/members in S.R.InteropServices ``` T:System.Runtime.InteropServices.WindowsRuntime.DesignerNamespaceResolveEventArgs M:System.Runtime.InteropServices.WindowsRuntime.DesignerNamespaceResolveEventArgs.#ctor(System.String) P:System.Runtime.InteropServices.WindowsRuntime.DesignerNamespaceResolveEventArgs.NamespaceName M:System.Runtime.InteropServices.WindowsRuntime.DesignerNamespaceResolveEventArgs.get_NamespaceName P:System.Runtime.InteropServices.WindowsRuntime.DesignerNamespaceResolveEventArgs.ResolvedAssemblyFiles M:System.Runtime.InteropServices.WindowsRuntime.DesignerNamespaceResolveEventArgs.get_ResolvedAssemblyFiles T:System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs M:System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs.#ctor(System.String,System.Reflection.Assembly) P:System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs.NamespaceName M:System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs.get_NamespaceName P:System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs.RequestingAssembly M:System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs.get_RequestingAssembly P:System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs.ResolvedAssemblies M:System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs.get_ResolvedAssemblies T:System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMetadata E:System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMetadata.DesignerNamespaceResolve M:System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMetadata.add_DesignerNamespaceResolve(System.EventHandler{System.Runtime.InteropServices.WindowsRuntime.DesignerNamespaceResolveEventArgs}) M:System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMetadata.remove_DesignerNamespaceResolve(System.EventHandler{System.Runtime.InteropServices.WindowsRuntime.DesignerNamespaceResolveEventArgs}) E:System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMetadata.ReflectionOnlyNamespaceResolve M:System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMetadata.add_ReflectionOnlyNamespaceResolve(System.EventHandler{System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs}) M:System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMetadata.remove_ReflectionOnlyNamespaceResolve(System.EventHandler{System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs}) M:System.Runtime.InteropServices.WindowsRuntime.DefaultInterfaceAttribute.set_DefaultInterface(System.Type) M:System.Runtime.InteropServices.WindowsRuntime.DesignerNamespaceResolveEventArgs.set_NamespaceName(System.String) M:System.Runtime.InteropServices.WindowsRuntime.DesignerNamespaceResolveEventArgs.set_ResolvedAssemblyFiles(System.Collections.ObjectModel.Collection{System.String}) M:System.Runtime.InteropServices.WindowsRuntime.InterfaceImplementedInVersionAttribute.set_BuildVersion(System.Byte) M:System.Runtime.InteropServices.WindowsRuntime.InterfaceImplementedInVersionAttribute.set_InterfaceType(System.Type) M:System.Runtime.InteropServices.WindowsRuntime.InterfaceImplementedInVersionAttribute.set_MajorVersion(System.Byte) M:System.Runtime.InteropServices.WindowsRuntime.InterfaceImplementedInVersionAttribute.set_MinorVersion(System.Byte) M:System.Runtime.InteropServices.WindowsRuntime.InterfaceImplementedInVersionAttribute.set_RevisionVersion(System.Byte) M:System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs.set_NamespaceName(System.String) M:System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs.set_RequestingAssembly(System.Reflection.Assembly) M:System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs.set_ResolvedAssemblies(System.Collections.ObjectModel.Collection{System.Reflection.Assembly}) M:System.Runtime.InteropServices.WindowsRuntime.ReturnValueNameAttribute.set_Name(System.String) T:System.Runtime.InteropServices.RuntimeEnvironment M:System.Runtime.InteropServices.RuntimeEnvironment.#ctor M:System.Runtime.InteropServices.RuntimeEnvironment.FromGlobalAccessCache(System.Reflection.Assembly) M:System.Runtime.InteropServices.RuntimeEnvironment.get_SystemConfigurationFile M:System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory M:System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion P:System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile ``` +12103 area-System.Security Unable to find native library for OpenSSL "I had .NET Core working just fine on my Mac a few days ago. Today, it no longer works: > Unhandled Exception: System.TypeInitializationException: The type initializer for 'Crypto' threw an exception. ---> System.TypeInitializationException: The type initializer for 'CryptoInitializer' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'System.Security.Cryptography.Native': The specified module could not be found. > (Exception from HRESULT: 0x8007007E) > at Interop.CryptoInitializer.EnsureOpenSslInitialized() > at Interop.CryptoInitializer..cctor() A few things have changed since a few days ago and today. - I upgraded to OS X Sierra. - Homebrew, which is how I installed the latest OpenSSL, shuffled things around. I did a `brew update`, and was greeted with this: > ""Migrated HOMEBREW_REPOSITORY to /usr/local/Homebrew! > Homebrew no longer needs to have ownership of /usr/local."" 1. I don't think I did anything out of the ordinary. 2. How do I get back in to a working state? Brew says I am running OpenSSL, 1.0.2j. I followed the instructions of https://github.com/dotnet/core/blob/master/cli/known-issues.md, but this doesn't work. brew now refuses to do it: > brew link --force openssl > > Warning: Refusing to link: openssl > Linking keg-only openssl means you may end up linking against the insecure, > deprecated system OpenSSL while using the headers from Homebrew's openssl. > Instead, pass the full include/library paths to your compiler e.g.: > -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib Environment: .NET Command Line Tools (1.0.0-preview2-003121) Product Information: Version: 1.0.0-preview2-003121 Commit SHA-1 hash: 1e9d529bc5 Runtime Environment: OS Name: Mac OS X OS Version: 10.12 OS Platform: Darwin RID: osx.10.12-x64 " +12107 area-System.Net kdc-setup.sh failed on Ubuntu 16.10 In some of the outerloop runs of Ubuntu 16.10, the [setup-kdc.sh script](https://github.com/dotnet/corefx/blob/master/src/System.Net.Security/tests/Scripts/Unix/setup-kdc.sh) is failing during `apt-get` with a 404 error. This appears to be intermittent because some runs have succeeded or at least not failed on these particular tests. Here is an example failure log: http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_ubuntu16.10_debug/13/consoleText Search for `Installing krb5-kdc..` This whole process seems fragile to me, is there anything we could do to improve this? An option would be to require this package to be installed on a machine before the test is permitted to run, and just skip them if it is not. For our official outerloop runs, we could require that they run, and thus require that the package be pre-installed (like all our other dependencies). +12114 area-Meta Restoring Microsoft.NETCore.App 1.1.0--preview1-001069-00 produces downgrade warnings - Multiple versions of the same package? ``` warn : Detected package downgrade: runtime.native.System.Security.Cryptography.OpenSsl from 4.1.1-preview1-24527-03 to 4.0.1-preview1-24527-03 warn : restore-projects (>= 1.0.0) -> Microsoft.NETCore.App (>= 1.1.0-preview1-001069-00) -> System.Net.Security (>= 4.3.0-preview1-24527-03) -> System.Runtime.Extensions (>= 4.1.0) -> runtime.unix.System.Runtime.Extensions (>= 4.3.0-preview1-24527-03) -> runtime.native.System.Security.Cryptography.OpenSsl (>= 4.1.1-preview1-24527-03) warn : restore-projects (>= 1.0.0) -> Microsoft.NETCore.App (>= 1.1.0-preview1-001069-00) -> System.Net.Security (>= 4.3.0-preview1-24527-03) -> runtime.native.System.Security.Cryptography.OpenSsl (>= 4.0.1-preview1-24527-03) ``` - Incorrect version ``` warn : Detected package downgrade: Microsoft.NETCore.DotNetHostResolver from 1.2.0-beta-000984-00 to 1.1.0-preview1-001069-00 warn : restore-projects (>= 1.0.0) -> Microsoft.NETCore.App (>= 1.1.0-preview1-001069-00) -> Microsoft.NETCore.DotNetHostPolicy (>= 1.1.0-preview1-001069-00) -> runtime.win7-x64.Microsoft.NETCore.DotNetHostPolicy (>= 1.1.0-preview1-001069-00) -> Microsoft.NETCore.DotNetHostResolver (>= 1.2.0-beta-000984-00) warn : restore-projects (>= 1.0.0) -> Microsoft.NETCore.App (>= 1.1.0-preview1-001069-00) -> Microsoft.NETCore.DotNetHostPolicy (>= 1.1.0-preview1-001069-00) -> Microsoft.NETCore.DotNetHostResolver (>= 1.1.0-preview1-001069-00) warn : Detected package downgrade: Microsoft.NETCore.DotNetHost from 1.2.0-beta-000984-00 to 1.1.0-preview1-001069-00 warn : restore-projects (>= 1.0.0) -> Microsoft.NETCore.App (>= 1.1.0-preview1-001069-00) -> Microsoft.NETCore.DotNetHostPolicy (>= 1.1.0-preview1-001069-00) -> Microsoft.NETCore.DotNetHostResolver (>= 1.1.0-preview1-001069-00) -> runtime.win7-x64.Microsoft.NETCore.DotNetHostResolver (>= 1.1.0-preview1-001069-00) -> Microsoft.NETCore.DotNetHost (>= 1.2.0-beta-000984-00) warn : restore-projects (>= 1.0.0) -> Microsoft.NETCore.App (>= 1.1.0-preview1-001069-00) -> Microsoft.NETCore.DotNetHostPolicy (>= 1.1.0-preview1-001069-00) -> Microsoft.NETCore.DotNetHostResolver (>= 1.1.0-preview1-001069-00) -> Microsoft.NETCore.DotNetHost (>= 1.1.0-preview1-001069-00) ``` +12115 area-System.Runtime Helpers for structural equality and comparison "There are quite a few types that implement `IStructuralEquatable` and `IStructuralComparable` in the framework now - most notably, arrays and tuples, and hopefully more to come (collections?). Unfortunately, using them is unnecessarily verbose, because implementations of these are usually explicit (presumably to avoid overloading `Object.Equals`). So to compare two tuples or arrays `a` and `b`, you need to do something like this: ``` cs ((IStructuralEquatable)a).Equals((IStructuralEquatable)b, comparer); ``` Needless to say, this is also not particularly discoverable. Case in point: search for e.g. ""C# compare arrays"" on StackOverflow, and note how many duplicate questions there are, and how few of them have responses mentioning `IStructuralEquatable` at all. One particular answer [here](http://stackoverflow.com/a/3234749/111335) suggests adding a couple of helper methods: ``` cs static class StructuralExtensions { public static bool StructuralEquals(this T a, T b) where T : IStructuralEquatable { return a.Equals(b, StructuralComparisons.StructuralEqualityComparer); } public static int StructuralCompare(this T a, T b) where T : IStructuralComparable { return a.CompareTo(b, StructuralComparisons.StructuralComparer); } } ``` which then allows doing: ``` a.StructuralEquals(b); ``` where applicable. Should this, perhaps, just be a part of the standard library somewhere in `System`? For anyone using VS, or a similar IDE with code completion, this would make the methods appear as members on all types that support them, even when they implement the interfaces explicitly, and thus easy to discover. (Note that there's a separate question here on whether the default comparers are appropriate, or whether the API should always require an explicit comparer argument. But that is orthogonal to whether such helpers should be readily available out of the box.) " +12121 area-System.Net Fix Uri handling of unknown schemes Somehow this expression got transposed in corefx; it should be `end - startOtherHost` rather than `startOtherHost - end` (as can be seen in the previous section of code, end will always be >= startOtherHost). As it was, it was resulting in an ArgumentOutOfRangeException, which a test was then codifying, and that test was then failing on desktop which has the correct ordering. Contributes to https://github.com/dotnet/corefx/issues/8330 cc: @cipop, @davidsh +12122 area-System.Collections Does .Net Core have any replacement for SynchronizedCollection ? SynchronizedCollection cannot be found in .net core. Does netcore has replacement ? Thanks, Elaine +12123 area-System.Net Add tests for WebUtility - UrlDecodeToBytes (ranges) - UrlEncodeToBytes (ranges) - Invalid tests for ranges - Invalid percent encoding - Minor cleanup (no encoding/decoding needed) Also adds a Debug.Assert in `HtmlEncode` for consistency /cc @stephentoub +12124 area-System.IO Move StreamReader and StreamWriter to CoreFX StreamReader/Writer should be moved out of mscorlib and into corefx. By doing so, we'll be able to add back the string constructors that take a file path without relying on coreclr's version of FileStream. For now, those should be implemented using reflection to the assembly. Discussed in https://github.com/dotnet/corefx/pull/12101#discussion_r80815212. Required for / forked from: https://github.com/dotnet/corefx/issues/9465 +12125 area-System.Net Port remaining methods in System.Net.CookieCollection/CookieContainer/CookieException ``` csharp public class CookieCollection : ICollection, IEnumerable { public bool IsReadOnly { get; } public bool IsSynchronized { get; } public object SyncRoot { get; } public void CopyTo(Array array, int index); public void CopyTo(Cookie[] array, int index); } public class CookieContainer { public CookieContainer(int capacity); public CookieContainer(int capacity, int perDomainCapacity, int maxCookieSize); public void Add(Cookie cookie); public void Add(CookieCollection cookies); } public class CookieException : FormatException, ISerializable { protected CookieException(SerializationInfo serializationInfo, StreamingContext streamingContext); public override void GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext); void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext); } ``` +12126 area-System.Net Port remaining methods in System.Net.CredentialCache ``` csharp public class CredentialCache : ICredentials, ICredentialsByHost, IEnumerable { public void Add(Uri uriPrefix, string authTypeauthenticationType, NetworkCredential credcredential); public NetworkCredential GetCredential(Uri uriPrefix, string authTypeauthenticationType); public void Remove(Uri uriPrefix, string authTypeauthenticationType); } ``` +12127 area-System.Net Port System.Net.EndpointPermission ``` csharp public class EndpointPermission { public string Hostname { get; } public int Port { get; } public TransportType Transport { get; } public override bool Equals(object obj); public override int GetHashCode(); public override string ToString(); } ``` +12128 area-System.Net Port System.Net.GlobalProxySelection ``` csharp public class GlobalProxySelection { public GlobalProxySelection(); public static IWebProxy Select { get; set; } public static IWebProxy GetEmptyWebProxy(); } ``` +12129 area-Meta Switch the default TestTFM to be netcoreapp1.1 for all tests Currently the default TestTFM is still netcoreapp1.0, and when you are running tests without passing `FilterToTestTFM` we will run tests for netcoreapp1.0 and netcoreapp1.1. Given that netcoreapp1.0 tests are a subset of netcoreapp1.1, it should be ok to moving all of the defaults to netcoreapp1.1 and just running those. This will involve some work on changing project.jsons supports clauses, Test builds files and general properties. cc: @weshaggard @ericstj @karajas +12130 area-Meta Bump minor version for MS.NETCore.Platforms and Targets Allow for builds out of 1.0.0 branch with unique package versions. +12131 area-System.Net Port System.Net.IPAddress missing members ``` csharp public class IPAddress { public long Address { get; set; } } ``` +12132 area-System.Net Port System.Net.IWebProxyScript ``` csharp public interface IWebProxyScript { void Close(); bool Load(Uri scriptLocation, string script, Type helperType); string Run(string url, string host); } ``` +12133 area-System.Net Port System.Net.NetworkAccess ``` csharp public enum NetworkAccess { Accept = 128, Connect = 64, } ``` +12134 area-System.Net Port System.Net.NetworkCredential missing members ``` csharp public class NetworkCredential : ICredentials, ICredentialsByHost { public NetworkCredential(string userName, SecureString password); public NetworkCredential(string userName, SecureString password, string domain); public SecureString SecurePassword { get; set; } public NetworkCredential GetCredential(Uri uri, string authTypeauthenticationType); } ``` +12135 area-System.Net Port System.Net.ProtocolViolationException missing members ``` csharp public class ProtocolViolationException : InvalidOperationException, ISerializable { protected ProtocolViolationException(SerializationInfo serializationInfo, StreamingContext streamingContext); public override void GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext); void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext); } ``` +12136 area-System.Net Port System.Net.TransportContext missing members ``` csharp public abstract class TransportContext { public virtual IEnumerable GetTlsTokenBindings(); } ``` +12137 area-System.Net Port System.Net.WebClient missing members ``` csharp public class WebClient : Component { public RequestCachePolicy CachePolicy { get; set; } protected virtual void OnDownloadProgressChanged(DownloadProgressChangedEventArgs e); protected virtual void OnUploadProgressChanged(UploadProgressChangedEventArgs e); } ``` +12138 area-System.Net Port missing System.Net.WebException members ``` csharp public class WebException : InvalidOperationException, ISerializable { protected WebException(SerializationInfo serializationInfo, StreamingContext streamingContext); public override void GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext); void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext); } ``` +12139 area-System.Net Port missing System.Net.WebHeaderCollection members Missing members _and_ base class: ``` csharp public sealed class WebHeaderCollection : NameValueCollectionIEnumerable, ISerializable { protected WebHeaderCollection(SerializationInfo serializationInfo, StreamingContext streamingContext); public override string[] AllKeys { get; } public override int Count { get; } public override NameObjectCollectionBase.KeysCollection Keys { get; } public void Add(HttpRequestHeader header, string value); public void Add(HttpResponseHeader header, string value); public void Add(string header); public override void Add(string name, string value); protected void AddWithoutValidate(string headerName, string headerValue); public override void Clear(); public override string Get(int index); public override string Get(string name); public override IEnumerator GetEnumerator(); public override string GetKey(int index); public override void GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext); public override string[] GetValues(int index); public override string[] GetValues(string header); public static bool IsRestricted(string headerName); public static bool IsRestricted(string headerName, bool response); public override void OnDeserialization(object sender); public void Remove(HttpRequestHeader header); public void Remove(HttpResponseHeader header); public override void Remove(string name); public void Set(HttpRequestHeader header, string value); public void Set(HttpResponseHeader header, string value); public override void Set(string name, string value); void System.Runtime.Serialization.ISerializable.GetObjectData(SerializationInfo serializationInfo, StreamingContext streamingContext); public byte[] ToByteArray(); } ``` +12140 area-System.Net System.Net.WebProxy should implement IWebProxy ``` csharp public class WebProxy : ISerializable, IWebProxy { } ``` +12141 area-System.Net Implement System.Net.WebRequest/WebResponse missing members and base class Missing members and base class: ``` csharp public abstract class WebRequest : MarshalByRefObject, ISerializable { } public abstract class WebResponse : MarshalByRefObject, IDisposable, ISerializable { public virtual long ContentLength { get; set; } public virtual string ContentType { get; set; } } ``` +12142 area-System.Net Port System.Net.WebUtility missing members ``` csharp public static class WebUtility { public static void HtmlDecode(string value, TextWriter output); public static void HtmlEncode(string value, TextWriter output); } ``` +12143 area-System.Net Implement ICloneable on types in System.Net.Http.Headers ``` csharp namespace System.Net.Http.Headers { public class AuthenticationHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class CacheControlHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class ContentDispositionHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class ContentRangeHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class EntityTagHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class MediaTypeHeaderValue : ICloneable { object System.ICloneable.Clone(); } public sealed class MediaTypeWithQualityHeaderValue : MediaTypeHeaderValue, ICloneable { object System.ICloneable.Clone(); } public class NameValueHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class NameValueWithParametersHeaderValue : NameValueHeaderValue, ICloneable { object System.ICloneable.Clone(); } public class ProductHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class ProductInfoHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class RangeConditionHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class RangeHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class RangeItemHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class RetryConditionHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class StringWithQualityHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class TransferCodingHeaderValue : ICloneable { object System.ICloneable.Clone(); } public sealed class TransferCodingWithQualityHeaderValue : TransferCodingHeaderValue, ICloneable { object System.ICloneable.Clone(); } public class ViaHeaderValue : ICloneable { object System.ICloneable.Clone(); } public class WarningHeaderValue : ICloneable { object System.ICloneable.Clone(); } } ``` +12144 area-System.Xml Clean up P2P references in Xml contracts There are some P2P references marked as TODO in System.Private.Xml and other Xml contracts which should be removed when new packages are generated. +12145 area-System.Xml Rename System.Xml contract (currently System.Xml.ReaderWriter) A lot of Xml APIs are in System.Xml.ReaderWriter, is that the right place and name for them? +12146 area-System.Xml Add UAP101 support for Xml contracts uap101 and uap101aot build configurations should be added for System.Private.Xml and other Xml contracts. +12147 area-System.Net Port remaining methods in System.Net.NetworkInformation Missing type: ``` csharp public enum NetworkInformationAccess { None = 0, Ping = 4, Read = 1, } ``` Missing methods / base types: ``` csharp public class NetworkInformationException : Win32Exception { protected NetworkInformationException(SerializationInfo serializationInfo, StreamingContext streamingContext); public override int ErrorCode { get; } } public class Ping : ComponentIDisposable { protected overridevirtual void Dispose(bool disposing); } public class PingException : InvalidOperationException { protected PingException(SerializationInfo serializationInfo, StreamingContext streamingContext); } ``` Missing `static` class annotation: ``` csharp public static class NetworkChange { } ``` +12148 area-System.Net Port missing System.Net.Security methods ``` csharp namespace System.Net.Security { public class NegotiateStream : AuthenticatedStream { public virtual void AuthenticateAsServer(); public virtual void AuthenticateAsServer(NetworkCredential credential, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel requiredImpersonationLevel); public virtual void AuthenticateAsServer(NetworkCredential credential, ExtendedProtectionPolicy policy, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel requiredImpersonationLevel); public virtual void AuthenticateAsServer(ExtendedProtectionPolicy policy); public virtual IAsyncResult BeginAuthenticateAsClient(AsyncCallback asyncCallback, object asyncState); public virtual IAsyncResult BeginAuthenticateAsClient(NetworkCredential credential, ChannelBinding binding, string targetName, AsyncCallback asyncCallback, object asyncState); public virtual IAsyncResult BeginAuthenticateAsClient(NetworkCredential credential, ChannelBinding binding, string targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel, AsyncCallback asyncCallback, object asyncState); public virtual IAsyncResult BeginAuthenticateAsClient(NetworkCredential credential, string targetName, AsyncCallback asyncCallback, object asyncState); public virtual IAsyncResult BeginAuthenticateAsClient(NetworkCredential credential, string targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel, AsyncCallback asyncCallback, object asyncState); public virtual IAsyncResult BeginAuthenticateAsServer(AsyncCallback asyncCallback, object asyncState); public virtual IAsyncResult BeginAuthenticateAsServer(NetworkCredential credential, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel requiredImpersonationLevel, AsyncCallback asyncCallback, object asyncState); public virtual IAsyncResult BeginAuthenticateAsServer(NetworkCredential credential, ExtendedProtectionPolicy policy, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel requiredImpersonationLevel, AsyncCallback asyncCallback, object asyncState); public virtual IAsyncResult BeginAuthenticateAsServer(ExtendedProtectionPolicy policy, AsyncCallback asyncCallback, object asyncState); public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback asyncCallback, object asyncState); public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback asyncCallback, object asyncState); public virtual void EndAuthenticateAsClient(IAsyncResult asyncResult); public virtual void EndAuthenticateAsServer(IAsyncResult asyncResult); public override int EndRead(IAsyncResult asyncResult); public override void EndWrite(IAsyncResult asyncResult); } public class SslStream : AuthenticatedStream { public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback asyncCallback, object asyncState); public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback asyncCallback, object asyncState); public override int EndRead(IAsyncResult asyncResult); public override void EndWrite(IAsyncResult asyncResult); } } ``` +12150 area-System.Net Port System.Net.WebSockets.WebSocketException missing members ``` csharp public sealed class WebSocketException : Win32Exception { public override int ErrorCode { get; } public override void GetObjectData(SerializationInfo info, StreamingContext context); } ``` +12153 area-System.Net Add back missing WebRequest property setters Missed these when adding back the rest of the WebRequest/Response surface area. cc: @ericeil, @davidsh, @cipop Fixes https://github.com/dotnet/corefx/issues/12141 (The types still need to derive from MBRO, but that should be handled by a sweep across the whole repo.) +12154 area-System.ComponentModel Add ComponentModel base classes where missing. All these should derive from Component. - [x] System.Timers.Timer - [x] System.Net.WebClient - [x] System.Net.NetworkInformation.Ping - [x] System.ComponentModel.BackgroundWorker - [x] System.IO.FileSystemWatcher - [x] System.Diagnostics.Process - [x] System.Diagnostics.ProcessModule - [x] System.Diagnostics.ProcessThread +12156 area-System.Net Add tests for System.Uri and friends On PR #11988 we added the implementation of System.Uri and friends, but we didn't add tests. The reason for this is that we want to using Mono tests and it is still not sure on how they should be consumed. This issue is to track the work of adding them once we figure out the right process. +12159 area-System.Net Port several WinHTTP PRs to release/1.0.0 https://github.com/dotnet/corefx/pull/11159 https://github.com/dotnet/corefx/pull/11383 https://github.com/dotnet/corefx/pull/11481 https://github.com/dotnet/corefx/pull/11733 cc: @davidsh, @leecow, @gkhanna79, @Petermarcu +12160 area-System.ComponentModel Code cleanup for System.ComponentModel.TypeConverter "There are a couple of clean-up items for the newly ported code inside System.ComponentModel.TypeConverter. These are captured from PR #12081 - Remove explicit base() from constructor calls - Replace explicitly implemented properties with auto-implemented properties when possible - Simplify members and properties with 1 lines of code to expression bodied members: protected virtual bool CanRaiseEvents => true; *Switch over to the ?. operator in C# for null checking: ``` csharp //From EventHandler handler = (EventHandler)_events[s_eventDisposed]; if (handler != null) handler(this, EventArgs.Empty); //To ((EventHandler)_events[s_eventDisposed])?.Invoke(this, EventArgs.Empty); //From ISite s = _site; return s == null ? null : s.Container; //To public IContainer Container => _site?.Container; ``` - Switch to string interpolation instead of string concatenation - Remove unnecessary initialization (ie. Bool foo = false) - Replace empty arrays with Array.Empty() - Replace string literals with nameof wherever possible. - Simplify event handler declarations when no custom code is required - Introduce readonly modifier for sync objects. - Replace nongeneric collections with generic collections - Use foreach instead of manually writing the foreach logic. - Cache the char[] into a static readonly field (ie. new char[] { '\' }) - Simplify the CultureInfoMapper code: ``` csharp private static class CultureInfoMapper { // Dictionary of CultureInfo.DisplayName, CultureInfo.Name for cultures that have changed DisplayName over releases. // This is to workaround an issue with CultureInfoConverter that serializes DisplayName (fixing it would introduce breaking changes). private static readonly Dictionary s_cultureInfoNameMap = CreateMap(); private static Dictionary CreateMap() { const int Count = 274; var result = new Dictionary(Count) { { ""Afrikaans"", ""af"" }, ... }; Debug.Assert(result.Count == Count); return result; } public static string GetCultureInfoName(string cultureInfoDisplayName) { string name; return s_cultureInfoNameMap.TryGetValue(cultureInfoDisplayName, out name) ? name : cultureInfoDisplayName; } } ``` " +12162 area-System.Runtime Bring System.Runtime.InteropServices up to .NET Standard 2.0 Below are the list of types that are either missing, changed (eg changed derivation), or have missing members vs [.NET Standard 2.0](https://github.com/dotnet/standard/tree/master/netstandard/ref) ``` T:System.Runtime.InteropServices.AssemblyRegistrationFlags T:System.Runtime.InteropServices.AutomationProxyAttribute T:System.Runtime.InteropServices.ComAliasNameAttribute T:System.Runtime.InteropServices.ComCompatibleVersionAttribute T:System.Runtime.InteropServices.ComConversionLossAttribute T:System.Runtime.InteropServices.ComRegisterFunctionAttribute T:System.Runtime.InteropServices.ComUnregisterFunctionAttribute T:System.Runtime.InteropServices.ExporterEventKind T:System.Runtime.InteropServices.ExtensibleClassFactory T:System.Runtime.InteropServices.HandleRef T:System.Runtime.InteropServices.ICustomFactory T:System.Runtime.InteropServices.ICustomMarshaler T:System.Runtime.InteropServices.IDispatchImplAttribute T:System.Runtime.InteropServices.IDispatchImplType T:System.Runtime.InteropServices.LCIDConversionAttribute T:System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute T:System.Runtime.InteropServices.Marshal T:System.Runtime.InteropServices.ObjectCreationDelegate T:System.Runtime.InteropServices.PrimaryInteropAssemblyAttribute T:System.Runtime.InteropServices.ProgIdAttribute T:System.Runtime.InteropServices.RegistrationClassContext T:System.Runtime.InteropServices.RegistrationConnectionType T:System.Runtime.InteropServices.SafeHandle T:System.Runtime.InteropServices.SetWin32ContextInIDispatchAttribute T:System.Runtime.InteropServices.TYPEKIND T:System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute T:System.Runtime.InteropServices.UnmanagedType T:System.Runtime.InteropServices.Expando.IExpando T:System.Runtime.InteropServices.WindowsRuntime.DesignerNamespaceResolveEventArgs T:System.Runtime.InteropServices.WindowsRuntime.EventRegistrationToken T:System.Runtime.InteropServices.WindowsRuntime.NamespaceResolveEventArgs T:System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMetadata E:System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMetadata.DesignerNamespaceResolve E:System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeMetadata.ReflectionOnlyNamespaceResolve ``` a few members of this namespace (such as `T:System.Runtime.InteropServices.RuntimeEnvironment`) are already covered by https://github.com/dotnet/corefx/issues/11808. Check with @ramarag to make sure everything is covered between you +12165 area-System.Net Add IWebProxy to WebProxy Fixes https://github.com/dotnet/corefx/issues/12140 cc: @ericeil, @davidsh +12167 area-Infrastructure Version master We should bump master package versions and assembly versions post 1.1. While doing so we should also handle #12130. +12168 area-System.Globalization Remove Normalization implementation from corefx we have moved the implementation to System.Private.Corelib in coreclr repo so we can now remove the implementation from corefx +12171 area-System.Net HttpClient.GetAsync fails with 302 with https if URI redirects "The HttpClient.GetAsync fails the URI that is used is https and does a redirection. The status code returned is 302. **Repro:** HttpClient client = new HttpClient(); client.GetAsync(""https://go.microsoft.com/fwlink/?LinkID=623861&clcid=0x409"") **The response is:** Result : StatusCode: 302, ReasonPhrase: 'Moved Temporarily', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { Cache-Control: no-cache Connection: keep-alive Date: Thu, 29 Sep 2016 00:32:32 GMT Pragma: no-cache Location: http://dtlgalleryint.cloudapp.net/api/v2/ Server: Microsoft-IIS/8.5 X-AspNetMvc-Version: 5.2 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Content-Length: 0 Expires: -1 } **Note** This works fine with a http:// uri. " +12172 area-System.Xml Add actual switches for Xml Configuration properties Do we leave properties defined in [LocalAppContextSwitches](https://github.com/dotnet/corefx/blob/9348997920c1ba782b45adb5e8ee9754149ab1e2/src/System.Private.Xml/src/Workarounds/LocalAppContextSwitches.cs) with default values, or do we enable users to switch their values? +12173 area-System.Xml Re-enable usage of AppDomain.GetAssemblies in System.Private.Xml when it comes back Refer to TODO in [QilXmlReader](https://github.com/dotnet/corefx/blob/25152c3eb1333087daf06b33c8706e78c958c44e/src/System.Private.Xml/src/System/Xml/Xsl/QIL/QilXmlReader.cs) +12174 area-System.Xml Remove System.Security workarounds from System.Private.Xml Remove SecurityRuleSet and SecurityRulesAttribute from System.Private.Xml workarounds. https://github.com/dotnet/corefx/pull/12046 is bringing them back. +12175 area-System.Xml Understand and remove ThisAssembly workaround from System.Private.Xml The usage of ThisAssembly needs to be understood and corrected if needed. +12176 area-Serialization JsonDataContract.GetGeneratedReadWriteDelegates May Throw ArgumentNullException JsonDataContract.GetGeneratedReadWriteDelegates may throw ArgumentNullException in NetNative. ``` -------------------------------- Running Test: DataContractJsonSerializerTests.DCJS_ValidateExceptionOnUnspecifiedRootSerializationType Caught Unexpected exception:System.ArgumentNullException: ArgumentNull_Generic Arg_ParamName_Name at System.Collections.Generic.Dictionary$2.FindEntry(__Canon key) in f:\dd\ndp\fxcore\src\ System.Collections\System\Collections\Generic\Dictionary.cs:line 266 at System.Collections.Generic.Dictionary$2.TryGetValue(__Canon key, __Canon& value) in f:\ dd\ndp\fxcore\src\System.Collections\System\Collections\Generic\Dictionary.cs:line 434 at System.Runtime.Serialization.Json.JsonDataContract.GetGeneratedReadWriteDelegates($DataContract c) at System.Runtime.Serialization.Json.JsonDataContract.TryGetReadWriteDelegatesFromGeneratedAssembly($DataContract c) at System.Runtime.Serialization.Json.JsonClassDataContract.get_JsonFormatWriterDelegate() at System.Runtime.Serialization.Json.JsonClassDataContract.WriteJsonValueCore($XmlWriterDelegator jsonWriter, Object obj, $XmlObjectSerializerWriteContextComplexJson context, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.Json.JsonDataContract.WriteJsonValue($XmlWriterDelegator jsonWriter, Object obj, $XmlObje ctSerializerWriteContextComplexJson context, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.WriteJsonValue($JsonDataContract contract, $XmlWriter Delegator writer, Object graph, $XmlObjectSerializerWriteContextComplexJson context, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.WriteDataContractValue($DataContract data Contract, $XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType($DataContract dataContract, $XmlW riterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.InternalWriteObjectContent($XmlWriterDelegator writer , Object graph) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.InternalWriteObject($XmlWriterDelegator writer, Objec t graph) at System.Runtime.Serialization.XmlObjectSerializer.InternalWriteObject($XmlWriterDelegator writer, Object graph, $DataCo ntractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions($XmlWriterDelegator writer, Object graph, $DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions($XmlWriterDelegator writer, Object graph) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.WriteObject($XmlDictionaryWriter writer, Object graph ) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.WriteObject(Stream stream, Object graph) at System.Runtime.Serialization.Json.DataContractJsonSerializer.WriteObject(Stream stream, Object graph) at DataContractJsonSerializerTests.DCJS_ValidateExceptionOnUnspecifiedRootSerializationType() in d:\dd\ProjectN\src\QA\To F\tests\FX\Conformance\System.Runtime.Serialization.Json\4.0.0.0\DataContractJsonSerializer.NetNative.cs:line 36 at EntryPointMain.
b__69() in d:\dd\ProjectN\src\QA\ToF\PN\x86\dbg\IL\FX\Conformance\System.Runtime.Serialization.Js on\4.0.0.0\DataContractJsonSerializerTests.main.cs:line 118 at System.Action.InvokeOpenStaticThunk() at System.Action.Invoke() at CoreFXTestLibrary.Internal.Runner.RunTestMethod() in d:\dd\ProjectN\src\QA\ToF\tests\FX\Conformance\Common\Xunit\Inter nal\Runner.cs:line 170 at CoreFXTestLibrary.Internal.Runner.RunTest($TestInfo t) in d:\dd\ProjectN\src\QA\ToF\tests\FX\Conformance\Common\Xunit\ Internal\Runner.cs:line 95 ---- Test FAILED --------------- ``` +12177 area-System.Collections Add a ValueList type to Common to reduce allocations It may be desirable to add a `ValueList` type in Common to supplant usages of LowLevelList / List in hot paths. It would have exactly the same semantics as List, except it would be a mutable struct so no allocation for the list itself. Additionally, since this would be an internal type we could make other micro-optimizations e.g. `_syncRoot` field, `_version` only exists in debug (which also means `MoveNext` might be inlined), bounds checks in indexer are Debug.Asserts, etc. This would help in places such as [here](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Collections/Generic/EnumerableHelpers.cs#L135), where we want a dynamically-grown array and don't want to manually write the resizing logic, but really want to minimize allocations. +12182 area-System.Collections Could SortedSet.InOrderTreeWalk use recursion instead of allocating? `SortedSet.InOrderTreeWalk` currently uses a stack on which the nodes to walk are pushed/popped: https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/SortedSet.cs#L234 It looks like it would be possible to implement this recursively instead, i.e. `InOrderTreeWalk(left); action(current); InOrderTreeWalk(right)` and eliminate the Stack allocation. +12183 area-System.Numerics Updating the 'System.Runtime.Extensions' contracts to include the new single-precision Math APIs. This updates the `System.Runtime.Extensions` contracts to include the new single-precision Math APIs approved in #1151 and implemented in CoreCLR in dotnet/coreclr#5492. +12184 area-System.Net Xml has a dependency on System.Net.Requests System.Xml.ReaderWriter contract has a dependency on RequestCachePolicy (https://github.com/dotnet/corefx/blob/master/src/System.Xml.ReaderWriter/ref/System.Xml.ReaderWriter.cs#L1126) System.Private.Xml has a dependency on requests for ReuqestCachePolicy (https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/src/System.Private.Xml.csproj#L17). Xml also has an XmlDownloadManager which depends on HttpClient. Should we move RequestCachePolicy into System.Net.Primitives? Or perhaps break this dependency another way? @stephentoub @davidsh @CIPop +12186 area-Infrastructure Updating CoreClr dependencies to servicing-24529-02 /cc @dotnet/corefx-contrib +12190 area-Meta Please provide MIT-licensed NuGet packages for MIT-licensed source code. "There are a lot of useful MIT-licensed libraries in this repository. However, many of them are [published on NuGet](https://www.nuget.org/packages/System.Threading.Tasks.Dataflow) under a much more [restrictive license](https://www.microsoft.com/net/dotnet_library_license.htm), which forbids modifications, interferes with the GPL, and allows Microsoft to ""collect information about you and your use of the software"". These terms are toxic to both open-source and commercial use, and they will force us to package and maintain our own forks of these libraries for the benefit of the much more friendly MIT terms. Please consider relicensing the official NuGet packages to match the source code. " +12192 area-System.Net AuthenticationManager.*Authenticate() throw PNSE This and supporting types are currently stubbed out, with members throwing not supported exceptions. We need to investigate whether that's sufficient, whether a more robust form of stubbing is required (e.g. returning nop objects rather than throwing), or whether we need some minimally functional implementation for this legacy. +12195 area-Meta runtime.native.System.Data.SqlClient.sni in release/1.1.0 references RTM 1.0 packages "Currently the package depends on the following in 1.1: ``` xml ``` We need to understand if this is intentional or if folks were planning to build new versions of this component from the 1.1 codebase (presumably TFS?). /cc @ianhays @saurabh500 " +12196 area-Serialization Reflection on XmlConvert Not Working in Net Native XmlSerializer's reflection based serialization uses reflection to find XmlConvert's method and invoke it. This fails in Net Native due to the metadata info of XmlConvert is reduced away. +12197 area-System.IO Add missing System.IO.Pipes members These are present in [standard](https://github.com/dotnet/standard) but not in .NET Core. ``` M:System.IO.Pipes.NamedPipeClientStream.#ctor(System.String,System.String,System.IO.Pipes.PipeAccessRights,System.IO.Pipes.PipeOptions,System.Security.Principal.TokenImpersonationLevel,System.IO.HandleInheritability) M:System.IO.Pipes.NamedPipeClientStream.#ctor(System.String,System.String,System.IO.Pipes.PipeDirection,System.IO.Pipes.PipeOptions,System.Security.Principal.TokenImpersonationLevel,System.IO.HandleInheritability) F:System.IO.Pipes.NamedPipeServerStream.MaxAllowedServerInstances M:System.IO.Pipes.NamedPipeServerStream.BeginWaitForConnection(System.AsyncCallback,System.Object) M:System.IO.Pipes.NamedPipeServerStream.EndWaitForConnection(System.IAsyncResult) M:System.IO.Pipes.NamedPipeServerStream.RunAsClient(System.IO.Pipes.PipeStreamImpersonationWorker) P:System.IO.Pipes.PipeStream.IsHandleExposed M:System.IO.Pipes.PipeStream.get_IsHandleExposed M:System.IO.Pipes.PipeStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object) M:System.IO.Pipes.PipeStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object) M:System.IO.Pipes.PipeStream.CheckPipePropertyOperations M:System.IO.Pipes.PipeStream.CheckReadOperations M:System.IO.Pipes.PipeStream.CheckWriteOperations M:System.IO.Pipes.PipeStream.EndRead(System.IAsyncResult) M:System.IO.Pipes.PipeStream.EndWrite(System.IAsyncResult) M:System.IO.Pipes.PipeStream.InitializeHandle(Microsoft.Win32.SafeHandles.SafePipeHandle,System.Boolean,System.Boolean) T:System.IO.Pipes.PipeStreamImpersonationWorker M:System.IO.Pipes.PipeStreamImpersonationWorker.#ctor(System.Object,System.IntPtr) M:System.IO.Pipes.PipeStreamImpersonationWorker.BeginInvoke(System.AsyncCallback,System.Object) M:System.IO.Pipes.PipeStreamImpersonationWorker.EndInvoke(System.IAsyncResult) M:System.IO.Pipes.PipeStreamImpersonationWorker.Invoke ``` +12198 area-System.Runtime Add missing derivation from System.SystemException These guys should derive from SystemException but aren't. Now we have it, they should. Generally that means replacing the direct derivation from Exception. ``` System.AppDomainUnloadedException System.ArgumentException System.ArithmeticException System.ArrayTypeMismatchException System.BadImageFormatException System.CannotUnloadAppDomainException System.Collections.Generic.KeyNotFoundException System.ComponentModel.LicenseException System.ComponentModel.WarningException System.ContextMarshalException System.DataMisalignedException System.FormatException System.IO.IOException System.IO.InternalBufferOverflowException System.IO.InvalidDataException System.IndexOutOfRangeException System.InsufficientExecutionStackException System.InvalidCastException System.InvalidOperationException System.InvalidProgramException System.MemberAccessException System.MulticastNotSupportedException System.NotImplementedException System.NotSupportedException System.NullReferenceException System.OperationCanceledException System.OutOfMemoryException System.RankException System.Resources.MissingManifestResourceException System.Resources.MissingSatelliteAssemblyException System.Runtime.InteropServices.InvalidComObjectException System.Runtime.InteropServices.InvalidOleVariantTypeException System.Runtime.InteropServices.MarshalDirectiveException System.Runtime.InteropServices.SafeArrayRankMismatchException System.Runtime.InteropServices.SafeArrayTypeMismatchException System.Runtime.Remoting.RemotingException System.Runtime.Remoting.ServerException System.Runtime.Serialization.SerializationException System.Security.Authentication.AuthenticationException System.Security.Cryptography.CryptographicException System.Security.HostProtectionException System.Security.Policy.PolicyException System.Security.Principal.IdentityNotMappedException System.Security.XmlSyntaxException System.Threading.AbandonedMutexException System.Threading.SemaphoreFullException System.Threading.SynchronizationLockException System.Threading.ThreadAbortException System.Threading.ThreadInterruptedException System.Threading.ThreadStartException System.Threading.ThreadStateException System.TimeoutException System.TypeInitializationException System.TypeLoadException System.TypeUnloadedException System.UnauthorizedAccessException System.Xml.Schema.XmlSchemaException System.Xml.XPath.XPathException System.Xml.XmlException System.Xml.Xsl.XsltException ``` +12199 area-Meta Implement ICloneable where missing The following are not implementing ICloneable but according to Net Standard 2.0 they should: - [x] System.Array.ArrayEnumerator - [x] System.Array.SZArrayEnumerator - [x] System.Collections.ArrayList - [x] System.Collections.ArrayList.ArrayListEnumerator - [x] System.Collections.ArrayList.ArrayListEnumeratorSimple - [x] System.Collections.ArrayList.IListWrapper.IListWrapperEnumWrapper - [x] System.Collections.BitArray - [x] System.Collections.BitArray.BitArrayEnumeratorSimple - [x] System.Collections.Hashtable - [x] System.Collections.Hashtable.HashtableEnumerator - [x] System.Collections.Queue - [x] System.Collections.Queue.QueueEnumerator - [x] System.Collections.SortedList - [x] System.Collections.SortedList.SortedListEnumerator - [x] System.Collections.Stack - [x] System.Collections.Stack.StackEnumerator - [x] System.ComponentModel.MaskedTextProvider - [ ] System.Configuration.Assemblies.AssemblyHash - [x] System.Delegate - [x] System.Net.Http.Headers.AuthenticationHeaderValue - [x] System.Net.Http.Headers.CacheControlHeaderValue - [x] System.Net.Http.Headers.ContentDispositionHeaderValue - [x] System.Net.Http.Headers.ContentRangeHeaderValue - [x] System.Net.Http.Headers.EntityTagHeaderValue - [x] System.Net.Http.Headers.MediaTypeHeaderValue - [x] System.Net.Http.Headers.MediaTypeWithQualityHeaderValue - [x] System.Net.Http.Headers.NameValueHeaderValue - [x] System.Net.Http.Headers.NameValueWithParametersHeaderValue - [x] System.Net.Http.Headers.ProductHeaderValue - [x] System.Net.Http.Headers.ProductInfoHeaderValue - [x] System.Net.Http.Headers.RangeConditionHeaderValue - [x] System.Net.Http.Headers.RangeHeaderValue - [x] System.Net.Http.Headers.RangeItemHeaderValue - [x] System.Net.Http.Headers.RetryConditionHeaderValue - [x] System.Net.Http.Headers.StringWithQualityHeaderValue - [x] System.Net.Http.Headers.TransferCodingHeaderValue - [x] System.Net.Http.Headers.TransferCodingWithQualityHeaderValue - [x] System.Net.Http.Headers.ViaHeaderValue - [x] System.Net.Http.Headers.WarningHeaderValue - [x] System.OperatingSystem - [ ] System.Runtime.Remoting.Messaging.CallContextRemotingData - [ ] System.Runtime.Remoting.Messaging.CallContextSecurityData - [ ] System.Runtime.Remoting.Messaging.LogicalCallContext - [x] System.Runtime.Serialization.Formatters.Binary.IntSizedArray - [x] System.Runtime.Serialization.Formatters.Binary.SizedArray - [x] System.RuntimeType - [x] System.Version - [x] System.Xml.Schema.XmlAtomicValue - [x] System.Xml.XPath.XPathNavigator - [x] System.Xml.XPath.XPathNodeIterator - [x] System.Xml.XmlNode - [x] string +12200 area-System.Net Add back System.Net.Sockets.ProtocolFamily and TransmitFileOptions Part of #11788. @stephentoub @CIPop @davidsh +12203 area-System.Runtime PlatformApis.IsWindows is evaluating true on macOS 10.12/mono 4.6.1 ### Given Had a functioning Kestrel app. Upgraded to macOS 10.12 and mono 4.6.1. Executed `dotnet restore` and then executed `dotnet run` as usual. ### Expected Nominal app startup ### Observed Unhandled Exception: `System.DllNotFoundException: WS2_32.dll` (full stack trace below) ### Notes One doesn't expect `WS2_32.dll` to be present on non-Windows systems, and there is [a guard against attempting to P/Invoking into it on non-Windows platforms](https://github.com/aspnet/KestrelHttpServer/blob/1a273f5a34cae8ea39d99bd5e7ff64eb6057d142/src/Microsoft.AspNetCore.Server.Kestrel/Internal/Networking/Libuv.cs#L202-L205), but it appears that the guard now returns `true` after updating to 10.12. --- Full stack trace: ``` [ERROR] FATAL UNHANDLED EXCEPTION: System.AggregateException: One or more errors occurred. ---> System.DllNotFoundException: WS2_32.dll at (wrapper managed-to-native) Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv+NativeMethods:WSAIoctl (intptr,int,int*,uint,int*,int,uint&,intptr,intptr) at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.tcp_bind_windows_extras (Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvTcpHandle handle) [0x0001f] in <7fa2145c3191420fad86bd0c6af65de7>:0 at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.tcp_bind (Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvTcpHandle handle, Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.SockAddr& addr, System.Int32 flags) [0x00023] in <7fa2145c3191420fad86bd0c6af65de7>:0 at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvTcpHandle.Bind (Microsoft.AspNetCore.Server.Kestrel.ServerAddress address) [0x0004a] in <7fa2145c3191420fad86bd0c6af65de7>:0 at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.TcpListenerPrimary.CreateListenSocket () [0x00040] in <7fa2145c3191420fad86bd0c6af65de7>:0 at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Listener+<>c.b__6_0 (System.Object state) [0x00012] in <7fa2145c3191420fad86bd0c6af65de7>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00047] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:447 at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ListenerPrimary+d__11.MoveNext () [0x000f5] in <7fa2145c3191420fad86bd0c6af65de7>:0 --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00014] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:2157 at System.Threading.Tasks.Task.Wait (System.Int32 millisecondsTimeout, System.Threading.CancellationToken cancellationToken) [0x00052] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:3189 at System.Threading.Tasks.Task.Wait () [0x00000] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/threading/Tasks/Task.cs:3054 at Microsoft.AspNetCore.Server.Kestrel.Internal.KestrelEngine.CreateServer (Microsoft.AspNetCore.Server.Kestrel.ServerAddress address) [0x000e1] in <7fa2145c3191420fad86bd0c6af65de7>:0 ---> (Inner Exception #0) System.DllNotFoundException: WS2_32.dll at (wrapper managed-to-native) Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv+NativeMethods:WSAIoctl (intptr,int,int*,uint,int*,int,uint&,intptr,intptr) at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.tcp_bind_windows_extras (Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvTcpHandle handle) [0x0001f] in <7fa2145c3191420fad86bd0c6af65de7>:0 at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.tcp_bind (Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvTcpHandle handle, Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.SockAddr& addr, System.Int32 flags) [0x00023] in <7fa2145c3191420fad86bd0c6af65de7>:0 at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvTcpHandle.Bind (Microsoft.AspNetCore.Server.Kestrel.ServerAddress address) [0x0004a] in <7fa2145c3191420fad86bd0c6af65de7>:0 at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.TcpListenerPrimary.CreateListenSocket () [0x00040] in <7fa2145c3191420fad86bd0c6af65de7>:0 at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Listener+<>c.b__6_0 (System.Object state) [0x00012] in <7fa2145c3191420fad86bd0c6af65de7>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/runtime/exceptionservices/exceptionservicescommon.cs:143 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x00047] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:187 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x0002e] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:156 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x0000b] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:128 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable+ConfiguredTaskAwaiter.GetResult () [0x00000] in /private/tmp/source-mono-4.6.0-c8sr0/bockbuild-mono-4.6.0-branch-c8sr0/profiles/mono-mac-xamarin/build-root/mono-x86/mcs/class/referencesource/mscorlib/system/runtime/compilerservices/TaskAwaiter.cs:447 at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.ListenerPrimary+d__11.MoveNext () [0x000f5] in <7fa2145c3191420fad86bd0c6af65de7>:0 <--- ``` +12204 area-System.Globalization Unexpected string in NumberFormatInfo.NumberGroupSeparator "I am testing som basic number formatting with CultureInfo. Any culture I have tested except en-US yields weird results for NumberGroupSeparator. ``` public static void Main(string[] args) { var culture = new CultureInfo(""sv-SE""); Console.WriteLine($""'{culture.NumberFormat.NumberGroupSeparator}'""); Console.WriteLine(1000.ToString(""N"", culture)); } ``` Expected output : ' ' 1 000,00 Actual output: '┬á' 1┬á000,00 " +12205 area-System.IO FileSystemWatcher_StopCalledOnBackgroundThreadDoesNotDeadlock failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/802/consoleText ``` System.IO.Tests.FileSystemWatcherTests.FileSystemWatcher_StopCalledOnBackgroundThreadDoesNotDeadlock [FAIL] Didn't observe a deleted event within 3000ms Expected: True Actual: False Stack Trace: at System.IO.Tests.FileSystemWatcherTest.ExpectEvent(WaitHandle eventOccurred, String eventName_NoRetry) at System.IO.Tests.FileSystemWatcherTests.FileSystemWatcher_StopCalledOnBackgroundThreadDoesNotDeadlock() ``` +12207 area-Meta Make 1.1 only reference 1.1 packages Currently 1.1 builds all packages against their minimum dependencies. This was done to enable any individual package to be installed without having to install the entire set, but since we're shipping 1.1 as a full stack release this characteristic is undesired. +12209 area-System.Runtime Re-introduce members on Attribute The following members on Attribute need to be brought back: - [ ] IsDefaultAttribute - [ ] TypeId - [ ] Match +12211 area-System.Runtime Expose AppDomain.CurrentDomain.GetAssemblies The following are needed in System.ComponentModel.TypeConverter. AppDomain.CurrentDomain.GetAssemblies AppDomain.CurrentDomain.SetupInformation.LicenseFile +12212 area-System.ComponentModel Follow-up changes for System.ComponentModel - [x] Once #11809 is checked in - [x] Make Component derive from MarshalByRefObject - [x] Once #12209 is checked in - [x] Update the attributes in the ComponentModel namespace to implement those methods. As part of that change, we need to revert the change that introduced [this workaround](https://github.com/dotnet/corefx/blob/master/src/System.ComponentModel.TypeConverter/src/System/ComponentModel/ComponentModelExtensions.cs) - [x] Once #11769 is done: - [x] Re-introduce the parameter-less constructor on ComponentResourceManager - [x] Remove the implementation of ResourceSet from misc.cs - [x] Once #11769 is done, fixup the following stubs inside the misc.cs file. - [x] ResourceManager_MainAssembly - [x] ResourceManager_GetNeutralResourceLanguage - [x] ResourceManager_IgnoreCase - [x] ResourceManager_GetResourceSet - [x] Once #11655 is done, fixup the following stubs inside the misc.cs file: - [x] Assembly_EscapedCodeBase - [x] Once #12211 is done, fixup the following stubs inside the misc.cs file: - [x] AppDomain_CurrentDomain_SetupInformation_LicenseFile - [x] AppDomain_CurrentDomain_GetAssemblies - [x] Remove dependency to System.Net.WebClient from the DesigntimeLicenseContext type +12213 area-System.Net System.Net.SslStream new APIs for TLS Alert support System.Net.SslStream is not currently supporting TLS Alerts as specified by [RFC 2246](https://www.ietf.org/rfc/rfc2246.txt) sections 7.2.1: Closure alerts and 7.2.2: Error alerts. ## Proposed API In order to support closing the TLS channel gracefully the following async API is proposed: `public virtual System.Threading.Tasks.Task System.Net.SslStream.ShutdownAsync()` ## Details The ShutdownAsync semantics are similar to `Socket.Shutdown(SocketShutdown.Send)` or `WebSocket.CloseOutputAsync`. After ShutdownAsync has been called, the write portion of the full-duplex channel is closed and the channel becomes read-only. The handshake is completed when no more bytes can be read from the SslStream (Read APIs return 0.) ## New API Usage The following code shows usage of the new API as well as new server-side behavior. This as well as tests demonstrating the new behavior to support 7.2.2. during TLS Handshake is available in `SslStreamAlertsTest.cs`, #11489. ``` C# var handshake = new Task[2]; handshake[0] = server.AuthenticateAsServerAsync(certificate); handshake[1] = client.AuthenticateAsClientAsync(certificate.GetNameInfo(X509NameType.SimpleName, false)); await Task.WhenAll(handshake).TimeoutAfter(TestConfiguration.PassingTestTimeoutMilliseconds); var readBuffer = new byte[1024]; await server.ShutdownAsync(); int bytesRead = await client.ReadAsync(readBuffer, 0, readBuffer.Length); // close_notify received by the client. Assert.Equal(0, bytesRead); await client.ShutdownAsync(); bytesRead = await server.ReadAsync(readBuffer, 0, readBuffer.Length); // close_notify received by the server. Assert.Equal(0, bytesRead); ``` ## Pull Requests WIP (tooling/WIP) API change: #11265. Implementation and tests: #11489: +12214 area-System.Security HttpClient + certificate specified throws if certificate is cloned in Linux "Given the following setup: - Website (in this case, IIS hosted) requires client certificates to be specified for accessing an endpoint - .NET Core app specifies a client certificate and makes a request in the following manner ``` csharp // assume certColl is an X509CertificateCollection obtained by using X509Store.Find // Scenario 1: // var clientCert = certcoll[0]; // Scenario works in Linux and Windows // Scenario 2: // var clientCert = new X509Certificate2(certcoll[0].Handle); // Scenario works in Windows only; fails in Linux HttpClientHandler handler = new HttpClientHandler(); handler.ClientCertificates.Add(clientCert); var httpClient = new HttpClient(handler); response = httpClient.GetAsync(""https://some-server/ClientCertificateRequired/"").GetAwaiter().GetResult(); ``` For these scenarios: | | Find certificate from X509Store and use directly | Find certificate and clone | | --- | --- | --- | | Windows | ✔ Succeeds | ✔ Succeeds | | Ubuntu14.04 | ✔ Succeeds | ✖ Fails with CurlException | The failing stack in Linux is: ``` Unhandled Exception: System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: Failure when receiving data from the peer at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) --- End of inner exception stack trace --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at ConsoleApplication.Program.Main(String[] args) ``` Repro app is here: https://gist.github.com/iamjasonp/b05da61cb1a30d36b0892915600d36d3 " +12215 area-System.ComponentModel Consider renaming/splitting System.ComponentModel.TypeConverter The work to port the additional ComponentModel types put all of them in the System.ComponentModel.TypeConverter assembly/contract. Since there are more concepts in that assembly than TypeConverter we should consider either renaming this assembly/contract or split the contract into separate pieces. Here are some of the things inside the assembly: - TypeConverter types - Designer support types - Helper types/classes +12217 area-System.Threading Allocating parallel loop slower in core than desktop Certain CoreFX Task operations/scheduling appears to be slower compared to .Net Desktop for certain workloads and machine configurations. Repro: https://github.com/CIPop/perf/tree/master/ThreadPerf/src Instructions: https://github.com/CIPop/perf/blob/master/README.md Initial Perfmon hot-path analysis shows important timing differences on the `TaskReplicator`, `ThreadPoolWorkQueue.Dispatch()` and `intermediateThreadProc` code path. ### Results In summary, the differences are bigger when the number of CPUs increases and can reach up to ~70% decrease in performance for a 16 core box. For the A1 case, an up to 19% performance _increase_ was observed for CoreFX. ![image](https://cloud.githubusercontent.com/assets/8635911/18977396/ca04b512-866e-11e6-91e4-da7613683c50.png) **16Core Dev machine** ``` .Net Desktop 4.6.2: (0): 00:00:03.6069321 (1): 00:00:03.5532334 (2): 00:00:03.5792650 .Net Core: (0): 00:00:05.7018041 (1): 00:00:06.4660423 (2): 00:00:06.2088087 .Net Core is 71.0311631138344 % slower (incl. process creation overheads). ``` **Azure A4 machine** ``` .Net Desktop 4.6.2: (0): 00:00:10.3151684 (1): 00:00:10.6153461 (2): 00:00:10.8002867 .Net Core: (0): 00:00:12.7079665 (1): 00:00:13.2266033 (2): 00:00:13.1223560 .Net Core is 23.5348989000614 % slower (incl. process creation overheads). ``` **Azure DS2 machine** ``` .Net Desktop 4.6.2: (0): 00:00:06.8964238 (1): 00:00:07.0116513 (2): 00:00:06.7201754 .Net Core: (0): 00:00:07.0788306 (1): 00:00:06.6521635 (2): 00:00:06.9412770 .Net Core is 0.44823964489224 % slower (incl. process creation overheads). ``` **Azure A1 machine** ``` .Net Desktop 4.6.2: (0): 00:00:20.7025224 (1): 00:00:20.7083212 (2): 00:00:20.9549189 .Net Core: (0): 00:00:17.7732198 (1): 00:00:16.4779742 (2): 00:00:16.9521813 .Net Core is -17.2535449554775 % slower (incl. process creation overheads). ``` +12218 area-Infrastructure Updating CoreClr dependencies to servicing-24530-01 /cc @dotnet/corefx-contrib +12219 area-System.Diagnostics Using Process.BeginOutputReadLine can lead to lost stdout lines When writing code that creates child processes and needs to capture stdout, I have found that lines of output go missing the following condition: - lots of parallelism... - `ProcessStartInfo.RedirectStandardOutput = true` - `Process.OutputDataReceived += CollectLines` (that is, using the async flow) - `Process.BeginOutputReadLine()` - `Process.WaitForExit(int.MaxValue)` Note that passing `-1` (infinite timespan) to `WaitForExit` does not cause lines go missing (based on my own testing). I have created a little demo app to do this. It repro's on both `netcoreapp1.0` and `net45`: [processredirect.zip](https://github.com/dotnet/corefx/files/501954/processredirect.zip). Just use `dotnet run` to try it out. That being said, you can capture stdout by using `Process.StandardOutput` (which is a `StreamReader`). However to consume this asynchronously and safely you need to use background threads/tasks. In other words: | stdout capture method | using infinite timeout | is flaky | | --- | --- | --- | | `StandardOutput` `StreamReader` | yes | no | | `StandardOutput` `StreamReader` | no | no | | `OutputDataReceived` event | yes | no | | `OutputDataReceived` event | no | **yes** | I think this a problem because it's pretty easy to step into this pitfall. Using the events to capture output is very convenient since you don't have to worry about making background threads or tasks. Also, the internet recommends this method: - http://stackoverflow.com/questions/285760/how-to-spawn-a-process-and-capture-its-stdout-in-net - https://msdn.microsoft.com/en-us/library/system.diagnostics.process.beginoutputreadline(v=vs.110).aspx I have only tried this on Windows, .NET Framework 4.5 and .NET Core (`netcoreapp1.0`). Also, all of this information is related to stdout, but I imagine stderr has the same problem. My `dotnet` info is: ``` Microsoft .NET Core Shared Framework Host Version : 1.0.1 Build : cee57bf6c981237d80aa1631cfe83cb9ba329f12 > dotnet --version 1.0.0-preview2-003131 ``` +12221 area-System.Xml Test failure: System.Xml.Tests.XsltcTestBasicFunctionality/Var2 Opened on behalf of @jiangzeng The test `System.Xml.Tests.XsltcTestBasicFunctionality/Var2` has failed. ``` Assert.True() Failure\r Expected: True\r Actual: False ``` Stack Trace: ``` at System.Xml.Tests.XsltcTestBasicFunctionality.Var2(Object param0, Object param1) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug - Windows.7.Amd64 - AnyCPU-Release - AnyCPU-Debug - Windows.81.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.10.Core.Amd64 - AnyCPU-Release Link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20160929.04/workItem/XsltCompiler.Tests/analysis/xunit/System.Xml.Tests.XsltcTestBasicFunctionality~2FVar2 +12222 area-System.Xml Test failure: System.Xml.Tests.XsltcTestFile/Var1 Opened on behalf of @jiangzeng The test `System.Xml.Tests.XsltcTestFile/Var1` has failed. ``` System.IO.FileNotFoundException : xsltc.exe ``` Stack Trace: ``` at XmlCoreTest.Common.XsltVerificationLibrary.SearchPath(String fileName) at System.Xml.Tests.XsltcTestCaseBase.TryCreatePersistedTransformAssembly(String commandLine, Boolean createFromInputFile, Boolean expectedToSucceed, String targetDirectory) at System.Xml.Tests.XsltcTestCaseBase.VerifyTest(String cmdLine, String asmName, Boolean asmCreated, String typeName, String pdbName, Boolean pdbCreated, String baselineFile, Boolean runAssemblyVerification, Boolean loadFromFile) at System.Xml.Tests.XsltcTestFile.Var1(Object param0, Object param1, Object param2, Object param3, Object param4, Object param5, Object param6) ``` Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug - Windows.7.Amd64 - AnyCPU-Release - AnyCPU-Debug - Windows.81.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.10.Core.Amd64 - AnyCPU-Release Link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20160929.04/workItem/XsltCompiler.Tests/analysis/xunit/System.Xml.Tests.XsltcTestFile~2FVar1 +12223 area-System.Security Null Reference when trying to add a cert to a store after calling dispose on the cert See this test fix for more details: https://github.com/dotnet/corefx/pull/12220 As part of this fix we should also consider whether we need to add a test case to cover the scenario where a cert does not have a private key in our tests. +12224 area-Meta Add OSX 10.12 RID support to Microsoft.NETCore.Platforms for LTS branch +12225 area-Infrastructure Updating CoreClr dependencies to servicing-24530-02 /cc @dotnet/corefx-contrib +12233 area-Meta 48 warnings during clean build "All of them similar to: ``` D:\j\workspace\windows_nt_debug88592b53\Tools\packageresolve.targets(79,5): warning : Your project is not referencing the "".NETStandard,Version=v1.5"" framework. Add a reference to "".NETStandard,Version=v1.5"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [D:\j\workspace\windows_nt_debug88592b53\src\System.Runtime.Serialization.Json\tests\System.Runtime.Serialization.Json.Tests.csproj] ``` " +12234 area-System.IO Test failure: System.IO.Tests.Directory_Delete_Tests/FileSystemWatcher_Directory_Delete_SymLink & FileSystemWatcher_File_Create_SymLink & FileSystemWatcher_File_Delete_SymLink Opened on behalf of @karelz The test `System.IO.Tests.Directory_Delete_Tests/FileSystemWatcher_Directory_Delete_SymLink` has failed. ``` System.ComponentModel.Win32Exception : No such file or directory ``` Stack Trace: ``` at Interop.libproc.proc_pidpath(Int32 pid) at System.Diagnostics.Process.GetExePath() at System.Diagnostics.Process.ResolvePath(String filename) at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start() at System.IO.Tests.FileSystemWatcherTest.CreateSymLink(String targetPath, String linkPath, Boolean isDirectory) at System.IO.Tests.Directory_Delete_Tests.<>c__DisplayClass3_0.b__1() at System.IO.Tests.Directory_Delete_Tests.FileSystemWatcher_Directory_Delete_SymLink() ``` Failing tests & configurations: - FileSystemWatcher_Directory_Delete_SymLink - [1.1 - 20160930.01](https://mc.dot.net/#/product/netcore/release~2F1.1.0/source/official~2Fcorefx~2Frelease~2F1.1.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20160930.01/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.Directory_Delete_Tests~2FFileSystemWatcher_Directory_Delete_SymLink) (OSX.1011.amd64.Debug) - FileSystemWatcher_File_Create_SymLink - [1.1 - 20160930.01](https://mc.dot.net/#/product/netcore/release~2F1.1.0/source/official~2Fcorefx~2Frelease~2F1.1.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20160930.01/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.File_Create_Tests~2FFileSystemWatcher_File_Create_SymLink) (OSX.1011.amd64.Debug) - FileSystemWatcher_File_Delete_SymLink - [1.1 - 20160930.01](https://mc.dot.net/#/product/netcore/release~2F1.1.0/source/official~2Fcorefx~2Frelease~2F1.1.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20160930.01/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.File_Delete_Tests~2FFileSystemWatcher_File_Delete_SymLink) (OSX.1011.amd64 -- Debug & Release) +12235 area-System.Security Track System.Security.Cryptography.X509Certificates ns 1.6 update for 1.1.0 release Several tests in System.Security.Cryptography.X509Certificates.Tests require code added in 1.1.0 (to System.Security.Cryptography.X509Certificates) which has not yet pushed to ns1.6. They should be re-enabled once ns1.6 is updated with 1.1.0 bits +12236 area-System.Net Test failure: System.Net.Tests.HttpWebRequestTest/GetResponseAsync_ResourceNotFound_ThrowsWebException Opened on behalf of @karelz The test `System.Net.Tests.HttpWebRequestTest/GetResponseAsync_ResourceNotFound_ThrowsWebException` has failed. ``` Assert.Equal() Failure Expected: ProtocolError Actual: UnknownError ``` Stack Trace: ``` at System.Net.Tests.HttpWebRequestTest.d__46.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Failing configurations: - [1.1 - 20160930.01](https://mc.dot.net/#/product/netcore/release~2F1.1.0/source/official~2Fcorefx~2Frelease~2F1.1.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20160930.01/workItem/System.Net.Requests.Tests/analysis/xunit/System.Net.Tests.HttpWebRequestTest~2FGetResponseAsync_ResourceNotFound_ThrowsWebException) (Redhat.72.amd64.Release) - [1.1 - 20160930.02](https://mc.dot.net/#/product/netcore/release~2F1.1.0/source/official~2Fcorefx~2Frelease~2F1.1.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20160930.02/workItem/System.Net.Requests.Tests/analysis/xunit/System.Net.Tests.HttpWebRequestTest~2FGetResponseAsync_ResourceNotFound_ThrowsWebException) (Redhat.72.amd64.Release) +12239 area-System.Xml add missing members of System.Xml These still seem to be missing ``` T:System.Xml.IFragmentCapableXmlDictionaryWriter P:System.Xml.IFragmentCapableXmlDictionaryWriter.CanFragment M:System.Xml.IFragmentCapableXmlDictionaryWriter.get_CanFragment M:System.Xml.IFragmentCapableXmlDictionaryWriter.EndFragment M:System.Xml.IFragmentCapableXmlDictionaryWriter.StartFragment(System.IO.Stream,System.Boolean) M:System.Xml.IFragmentCapableXmlDictionaryWriter.WriteFragment(System.Byte[],System.Int32,System.Int32) T:System.Xml.IStreamProvider M:System.Xml.IStreamProvider.GetStream M:System.Xml.IStreamProvider.ReleaseStream(System.IO.Stream) T:System.Xml.IXmlBinaryReaderInitializer M:System.Xml.IXmlBinaryReaderInitializer.SetInput(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.IXmlBinaryReaderInitializer.SetInput(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose) T:System.Xml.IXmlBinaryWriterInitializer M:System.Xml.IXmlBinaryWriterInitializer.SetOutput(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlBinaryWriterSession,System.Boolean) T:System.Xml.IXmlMtomReaderInitializer M:System.Xml.IXmlMtomReaderInitializer.SetInput(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.IXmlMtomReaderInitializer.SetInput(System.IO.Stream,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose) T:System.Xml.IXmlMtomWriterInitializer M:System.Xml.IXmlMtomWriterInitializer.SetOutput(System.IO.Stream,System.Text.Encoding,System.Int32,System.String,System.String,System.String,System.Boolean,System.Boolean) T:System.Xml.IXmlTextReaderInitializer M:System.Xml.IXmlTextReaderInitializer.SetInput(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.IXmlTextReaderInitializer.SetInput(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose) T:System.Xml.IXmlTextWriterInitializer M:System.Xml.IXmlTextWriterInitializer.SetOutput(System.IO.Stream,System.Text.Encoding,System.Boolean) M:System.Xml.XmlDictionaryReader.CreateBinaryReader(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.XmlDictionaryReader.CreateBinaryReader(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.Xml.XmlDictionaryReaderQuotas) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.IO.Stream,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.IO.Stream,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.IO.Stream,System.Text.Encoding[],System.Xml.XmlDictionaryReaderQuotas) M:System.Xml.XmlDictionaryReader.CreateTextReader(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.XmlDictionaryReader.GetNonAtomizedNames(System.String@,System.String@) M:System.Xml.XmlDictionaryReader.ReadElementContentAsDateTime M:System.Xml.XmlDictionaryReader.ReadString M:System.Xml.XmlDictionaryReader.ReadString(System.Int32) M:System.Xml.XmlDictionaryWriter.CreateMtomWriter(System.IO.Stream,System.Text.Encoding,System.Int32,System.String) M:System.Xml.XmlDictionaryWriter.CreateMtomWriter(System.IO.Stream,System.Text.Encoding,System.Int32,System.String,System.String,System.String,System.Boolean,System.Boolean) M:System.Xml.XmlDictionaryWriter.WriteBase64Async(System.Byte[],System.Int32,System.Int32) M:System.Xml.XmlDictionaryWriter.WriteValue(System.Xml.IStreamProvider) M:System.Xml.XmlDictionaryWriter.WriteValueAsync(System.Xml.IStreamProvider) T:System.Xml.Schema.Extensions M:System.Xml.Schema.Extensions.GetSchemaInfo(System.Xml.Linq.XAttribute) M:System.Xml.Schema.Extensions.GetSchemaInfo(System.Xml.Linq.XElement) M:System.Xml.Schema.Extensions.Validate(System.Xml.Linq.XAttribute,System.Xml.Schema.XmlSchemaObject,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler) M:System.Xml.Schema.Extensions.Validate(System.Xml.Linq.XAttribute,System.Xml.Schema.XmlSchemaObject,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler,System.Boolean) M:System.Xml.Schema.Extensions.Validate(System.Xml.Linq.XDocument,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler) M:System.Xml.Schema.Extensions.Validate(System.Xml.Linq.XDocument,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler,System.Boolean) M:System.Xml.Schema.Extensions.Validate(System.Xml.Linq.XElement,System.Xml.Schema.XmlSchemaObject,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler) M:System.Xml.Schema.Extensions.Validate(System.Xml.Linq.XElement,System.Xml.Schema.XmlSchemaObject,System.Xml.Schema.XmlSchemaSet,System.Xml.Schema.ValidationEventHandler,System.Boolean) M:System.Xml.Schema.XmlSchemaObjectCollection.GetEnumerator ``` +12242 area-System.Collections Intermittent: CaseInsensitiveComparerTests.Default_Compare_TurkishI failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/865/consoleText ``` System.Collections.Tests.CaseInsensitiveComparerTests.Default_Compare_TurkishI [FAIL] Assert.Equal() Failure Expected: 0 Actual: 1 Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Collections.NonGeneric\tests\CaseInsentiveComparerTests.cs(203,0): at System.Collections.Tests.CaseInsensitiveComparerTests.Default_Compare_TurkishI() ``` +12243 area-System.Runtime Add Unsafe.CopyBlockUnaligned That uses the `.unaligned` prefix Has come up in https://github.com/dotnet/corefxlab/issues/848 and https://github.com/aspnet/HttpAbstractions/pull/717 /cc @jkotas +12244 area-Meta Net standard docs Update the NETStandard docs with API versions and TFMs mappings. Though we aren't specifically using ns1.7 to slot in any API (due to the 2.0 plans) we should update the docs to represent it. Fixes #10556 /cc @Petermarcu +12245 area-System.Linq Make Linq.Expression tests runnable with AOT and make sure they run regularly. We had some recent test changes that would not be runnable under AOT for sure and nothing was broken. That proves that we do not run Linq.Expressions with AOT. Also, attempts to run tests with AOT wee not very successful. We need to make sure the tests are runnable with AOT. That includes figuring out how to exclude scenarios that are known not AOT compatible - like usage of Reflection.Emit in tests. Most likely introduce some `#if` in the code and, parameterise the csproj file to not take dependencies on stuff like Ref.Emit when targeting AOT. +12246 area-Infrastructure Updating CoreClr dependencies to servicing-24530-03 /cc @dotnet/corefx-contrib +12247 area-System.Runtime Add missing members in System.Runtime.Versioning namespace Currently we only have FrameworkName and NonVersionableAttribute. We also need ``` T:System.Runtime.Versioning.ComponentGuaranteesAttribute M:System.Runtime.Versioning.ComponentGuaranteesAttribute.#ctor(System.Runtime.Versioning.ComponentGuaranteesOptions) P:System.Runtime.Versioning.ComponentGuaranteesAttribute.Guarantees M:System.Runtime.Versioning.ComponentGuaranteesAttribute.get_Guarantees T:System.Runtime.Versioning.ComponentGuaranteesOptions F:System.Runtime.Versioning.ComponentGuaranteesOptions.Exchange F:System.Runtime.Versioning.ComponentGuaranteesOptions.None F:System.Runtime.Versioning.ComponentGuaranteesOptions.SideBySide F:System.Runtime.Versioning.ComponentGuaranteesOptions.Stable F:System.Runtime.Versioning.ComponentGuaranteesOptions.value__ T:System.Runtime.Versioning.ResourceConsumptionAttribute M:System.Runtime.Versioning.ResourceConsumptionAttribute.#ctor(System.Runtime.Versioning.ResourceScope) M:System.Runtime.Versioning.ResourceConsumptionAttribute.#ctor(System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope) P:System.Runtime.Versioning.ResourceConsumptionAttribute.ConsumptionScope M:System.Runtime.Versioning.ResourceConsumptionAttribute.get_ConsumptionScope P:System.Runtime.Versioning.ResourceConsumptionAttribute.ResourceScope M:System.Runtime.Versioning.ResourceConsumptionAttribute.get_ResourceScope T:System.Runtime.Versioning.ResourceExposureAttribute M:System.Runtime.Versioning.ResourceExposureAttribute.#ctor(System.Runtime.Versioning.ResourceScope) P:System.Runtime.Versioning.ResourceExposureAttribute.ResourceExposureLevel M:System.Runtime.Versioning.ResourceExposureAttribute.get_ResourceExposureLevel T:System.Runtime.Versioning.ResourceScope F:System.Runtime.Versioning.ResourceScope.AppDomain F:System.Runtime.Versioning.ResourceScope.Assembly F:System.Runtime.Versioning.ResourceScope.Library F:System.Runtime.Versioning.ResourceScope.Machine F:System.Runtime.Versioning.ResourceScope.None F:System.Runtime.Versioning.ResourceScope.Private F:System.Runtime.Versioning.ResourceScope.Process F:System.Runtime.Versioning.ResourceScope.value__ T:System.Runtime.Versioning.VersioningHelper M:System.Runtime.Versioning.VersioningHelper.MakeVersionSafeName(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope) M:System.Runtime.Versioning.VersioningHelper.MakeVersionSafeName(System.String,System.Runtime.Versioning.ResourceScope,System.Runtime.Versioning.ResourceScope,System.Type) ``` +12249 area-System.Net Move System.Net.Sockets to netstandard 1.7 Moves System.Net.Sockets to netstandard 1.7. Thanks to @ericstj for the help with this! Fixes #11812. cc: @stephentoub, @CIPop, @davidsh, @karelz, @weshaggard +12251 area-System.Runtime Add missing members of Delegate ``` M:System.Delegate.#ctor(System.Object,System.String) M:System.Delegate.#ctor(System.Type,System.String) P:System.Delegate.Method M:System.Delegate.get_Method M:System.Delegate.Clone M:System.Delegate.CombineImpl(System.Delegate) M:System.Delegate.CreateDelegate(System.Type,System.Reflection.MethodInfo) M:System.Delegate.CreateDelegate(System.Type,System.Reflection.MethodInfo,System.Boolean) M:System.Delegate.CreateDelegate(System.Type,System.Object,System.Reflection.MethodInfo) M:System.Delegate.CreateDelegate(System.Type,System.Object,System.Reflection.MethodInfo,System.Boolean) M:System.Delegate.CreateDelegate(System.Type,System.Object,System.String) M:System.Delegate.CreateDelegate(System.Type,System.Object,System.String,System.Boolean) M:System.Delegate.CreateDelegate(System.Type,System.Object,System.String,System.Boolean,System.Boolean) M:System.Delegate.CreateDelegate(System.Type,System.Type,System.String) M:System.Delegate.CreateDelegate(System.Type,System.Type,System.String,System.Boolean) M:System.Delegate.CreateDelegate(System.Type,System.Type,System.String,System.Boolean,System.Boolean) M:System.Delegate.DynamicInvokeImpl(System.Object[]) M:System.Delegate.GetMethodImpl M:System.Delegate.RemoveImpl(System.Delegate) ``` and ``` M:System.MulticastDelegate.#ctor(System.Object,System.String) M:System.MulticastDelegate.#ctor(System.Type,System.String) M:System.MulticastDelegate.CombineImpl(System.Delegate) M:System.MulticastDelegate.GetMethodImpl M:System.MulticastDelegate.RemoveImpl(System.Delegate) ``` +12252 area-System.IO CI Timeout during FileSystemWatcher tests This built for ~35 mins then began running tests. Test logging stops after ~10 mins. Eventually the run times out, apparently during the FileSystemWatcher tests http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release_prtest/882/consoleFull#147575877179494335-f7bd-47d0-8771-8661e00c2db2 I'm not sure why it throws `System.DllNotFoundException: Unable to load DLL 'KERNEL32.DLL':` that may just be an artefact of how things are being torn down, but the logging seems to clearly be from `System.IO.FileSystem.Watcher.Tests.csproj`. +12254 area-Serialization Two members missing from BinaryFormatter ``` M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.DeserializeMethodResponse(System.IO.Stream,System.Runtime.Remoting.Messaging.HeaderHandler,System.Runtime.Remoting.Messaging.IMethodCallMessage) M:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.UnsafeDeserializeMethodResponse(System.IO.Stream,System.Runtime.Remoting.Messaging.HeaderHandler,System.Runtime.Remoting.Messaging.IMethodCallMessage) ``` @stephentoub did you intentionally omit these two? +12255 area-System.Runtime Complete S.R.ConstrainedExecution namespace Just two missing types, both attributes. ``` T:System.Runtime.ConstrainedExecution.PrePrepareMethodAttribute T:System.Runtime.ConstrainedExecution.ReliabilityContractAttribute ``` +12257 area-System.Runtime Complete System.Runtime.CompilerServices namespace Just a few missing attributes ``` T:System.Runtime.CompilerServices.CompilationRelaxations T:System.Runtime.CompilerServices.CompilerMarshalOverride T:System.Runtime.CompilerServices.DebugInfoGenerator T:System.Runtime.CompilerServices.FixedAddressValueTypeAttribute T:System.Runtime.CompilerServices.IRuntimeVariables T:System.Runtime.CompilerServices.MethodCodeType T:System.Runtime.CompilerServices.RuleCache`1 T:System.Runtime.CompilerServices.SpecialNameAttribute ``` +12258 area-System.Diagnostics Complete System.Diagnostics.SymbolStore namespace These types are missing. ``` T:System.Diagnostics.SymbolStore.ISymbolBinder T:System.Diagnostics.SymbolStore.ISymbolBinder1 T:System.Diagnostics.SymbolStore.ISymbolDocument T:System.Diagnostics.SymbolStore.ISymbolDocumentWriter T:System.Diagnostics.SymbolStore.ISymbolMethod T:System.Diagnostics.SymbolStore.ISymbolNamespace T:System.Diagnostics.SymbolStore.ISymbolReader T:System.Diagnostics.SymbolStore.ISymbolScope T:System.Diagnostics.SymbolStore.ISymbolVariable T:System.Diagnostics.SymbolStore.ISymbolWriter T:System.Diagnostics.SymbolStore.SymAddressKind T:System.Diagnostics.SymbolStore.SymbolToken T:System.Diagnostics.SymbolStore.SymDocumentType T:System.Diagnostics.SymbolStore.SymLanguageType T:System.Diagnostics.SymbolStore.SymLanguageVendor ``` +12259 area-System.Runtime Create new PreviewAttribute that generates compiler warning for using preview/beta functionality "We have ObsoleteAttribute to generated a compiler warning when users are using obsolete APIs. Similarly it would be amazing to have a PreviewAttribute for functionality that is still considered ""beta"" and not yet finalized. This notifies the user that this API might change or not be 100% functional. The alternative is to create special beta-namespaces or put beta in the member names, but that would most definitely create breaking changes once the new APIs are finalized. " +12260 area-System.Diagnostics Complete System.Diagnostics namespace These types are either missing or incomplete. - [x] T:System.Diagnostics.CorrelationManager - [x] T:System.Diagnostics.DebuggerStepperBoundaryAttribute - [x] T:System.Diagnostics.DebuggerVisualizerAttribute - [x] T:System.Diagnostics.MonitoringDescriptionAttribute - [x] T:System.Diagnostics.Process - [x] T:System.Diagnostics.ProcessModule - [x] T:System.Diagnostics.ProcessModuleCollection - [x] T:System.Diagnostics.ProcessThread - [x] T:System.Diagnostics.ProcessThreadCollection - [x] T:System.Diagnostics.ProcessWindowStyle - [x] T:System.Diagnostics.StackFrame - [x] T:System.Diagnostics.StackTrace - [x] T:System.Diagnostics.SwitchAttribute - [x] T:System.Diagnostics.SwitchLevelAttribute - [x] T:System.Diagnostics.TraceListener Some of these will need to throw PNSE, eg., many of the missing members of Process. +12266 area-System.Net Add WebClient.CachePolicy Uncomment it now that we've updated to newer corefx packages that have the required types. cc: @ericeil https://github.com/dotnet/corefx/issues/12137 +12272 area-System.Runtime Please add TryParse and ChangeType generic to System.Convert class "In addition to ToInt32() and all other parsing things. System.Convert should have generic parser ``` C# public static bool TryParse(string s,out T v) where T : struct,IConvertible,IFormattable,IComparable,IEquatable { return T.TryParse(s,out v); } public static T ChangeType(object obj) where T : IConvertible { T v; ChangeType(obj,out v); return v; } public static bool ChangeType(object obj,out T v) where T : IConvertible { try { /// Should be better algorithm instead of try/catch + unboxing v = (T)Convert.ChangeType(obj,typeof(T)); return true; } catch { v = default(T); return false; } } /// usage int i; if(Convert.TryParse(""123456"",out i)) DoSomething(i); double d; if(Convert.ChangeType(i,out d)) DoSomething(d); ``` " +12273 area-System.Xml System.Xml.Tests.CTransformStrStrTest.TransformStrStr9 test failed http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/925/consoleText ``` System.Xml.Tests.CTransformStrStrTest.TransformStrStr9() [FAIL] System.IO.IOException : The process cannot access the file 'D:\j\workspace\windows_nt_de---4526f5ff\bin\tests\Windows_NT.AnyCPU.Debug\System.Xml.Xsl.XslTransformApi.Tests\netstandard1.7\netcoreapp1.1\testfiles\testdata\xsltapi\fruits.xml' because it is being used by another process. Stack Trace: at System.IO.Win32FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.Win32FileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy) at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn) at System.Xml.XmlTextReaderImpl.OpenUrl() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.XPath.XPathDocument.LoadFromReader(XmlReader reader, XmlSpace space) at System.Xml.XPath.XPathDocument..ctor(String uri, XmlSpace space) at System.Xml.Xsl.XslTransform.Transform(String inputfile, String outputfile, XmlResolver resolver) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Private.Xml\tests\Xslt\XslTransformApi\CXslTransform.cs(2226,0): at System.Xml.Tests.CTransformStrStrTest.TransformStrStr9() ``` +12275 area-Meta Running tests from Visual Studio insists on copying old product binaries I'm not exactly sure on the steps to consistently repro this, but what I'm seeing is this, for the `System.Linq.Expressions` project: - Running `msbuild` from the command line drops the privately built product binary into `bin\tests\AnyOS.AnyCPU.Debug\System.Linq.Expressions.Tests\netcoreapp1.0` - Subsequently running the test project from Visual Studio, with the above location as the working directory, triggers a build and it copies an older file to the folder above - The test runner fails to load the binary I'll try to dig a little deeper to figure out where it copies the stale file from. There's no consistent workaround; I mostly try to manually copy files into the output folder while hoping that pressing F5 in Visual Studio doesn't cause it to get overwritten. +12276 area-System.IO System.IO.FileSystem.Watcher.Tests.dll segfault on OSX in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/934/console ``` OSX.AnyCPU.Debug/System.IO.FileSystem.Watcher.Tests/netcoreapp1.0/RunTests.sh: line 203: 33596 Segmentation fault: 11 ./corerun xunit.console.netcore.exe System.IO.FileSystem.Watcher.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.0tests -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonosxtests ``` +12277 area-System.Linq Adding instruction assertion mechanism for expression interpreter. Initial iteration on pretty printing of expression interpreter instruction stream in order to perform asserts in test code. The functionality leverages some of the existing `DebugView` printing for instructions that was already present in the library. It adds an internal `DebugView` to the `LightLambda` type, which can be used to retrieve the instructions in a pretty printed form. Note the approach differs a bit from the IL visualizer for the expression compiler, where we have to peek into implementation details of `DynamicMethod` etc. While we could also use private reflection here, it seems much more pragmatic to add the printing support in the runtime library (adding to already existing support for `DebugView`-like functionality) and limit the test/product boundary contract to retrieving just the one `DebugView` property. +12279 area-Infrastructure Updating CoreClr dependencies to servicing-24601-01 /cc @dotnet/corefx-contrib +12281 area-System.Collections HashSetEqualityComparer is not marked as Serializable On .NET 4.6 HashSetEqualityComparer is marked as Serializable. https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/HashSetEqualityComparer.cs compared to: http://referencesource.microsoft.com/#System.Core/System/Collections/Generic/HashSetEqualityComparer.cs,b81a34218101efe7,references Thank you. +12282 area-System.Net HttpWebRequest internally throws 2 exceptions "Create a .NET Core 1.0.1 console project with this line of code: **HttpWebRequest.CreateHttp(""https://www.google.ca/"").GetResponseAsync().Wait();** Execute it and examine the output window: Exception thrown: 'System.PlatformNotSupportedException' in System.Net.Requests.dll Exception thrown: 'System.ArgumentNullException' in System.Private.CoreLib.ni.dll **This occurs on every call, which cannot be good for performance.** The PlatformNotSupportedException can be avoided by setting the HttpWebRequest object .Proxy = null, or setting HttpWebRequest.DefaultWebProxy = null; I have not yet found a way to avoid the ArgumentNullException (some SafeHandle cannot be null) Stack trace top 2 items show: System.Private.CoreLib.ni.dll!System.StubHelpers.StubHelpers.SafeHandleAddRef(System.Runtime.InteropServices.SafeHandle pHandle, ref bool success) System.Net.Http.dll!System.Net.Http.WinHttpHandler.StartRequest(object obj) " +12283 area-System.Linq Should we check source.Count every time SelectListPartitionIterator.MoveNext is called? Currently, we check `source.Count` every time we iterate through a `SelectListPartitionIterator`: https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Select.cs#L713. Presumably, this is so that if we update the `IList` in question while we are iterating the sequence returned by Skip/Take, we will still run the selector on the elements added. For example: ``` cs List ids = GetCustomerIds(); foreach (var c in ids.Select(i => Customer.From(i)).Skip(5)) { if (c.HasChildren) { ids.AddRange(c.ChildrenIds); // we will pass over these in the foreach loop } } ``` However, this will do a dead stop the moment we modify the source list: ``` cs foreach (int id in ids.Select(i => Customer.From(i))) // no .Skip(5) { if (c.HasChildren) { // Instead of indexing into the list, we're getting it's enumerator here // AddRange mutates ids._version, which causes the enumerator's MoveNext to return false ids.AddRange(c.ChildrenIds); } } ``` My question is, should adding stuff to the list while enumerating from `Skip` be a supported scenario? It seems like [during RC1](https://github.com/dotnet/corefx/blob/release/1.0.0-rc1/src/System.Linq/src/System/Linq/Enumerable.cs#L832-L848) we would just stop during `Select(...).Take` if the source was modified during enumeration, so it's very unlikely people are going to depend on this change. Perhaps we should just cache the count when the first `MoveNext` is called, e.g. ``` cs private int _count; public override bool MoveNext() { switch (_state) { case 1: _count = _source.Count; _state = 2; goto case 2; case 2: if (_index <= _maxIndexInclusive && _index < _count) { ... } } } ``` This will still not match the original behavior of stopping once the source is modified. However, it will be faster than the current behavior, which enumerates the entire list taking into account any modifications that have occurred even after the first `MoveNext`, since we are now caching `_count`. (Additionally, it will still preserve behavior in cases where the list is mutated after `Skip` is called, but before it's actually iterated.) @stephentoub, @VSadov, @JonHanna +12287 area-System.Collections Add ArrayBuilder struct, delete LowLevelList This commit adds a new, lightweight `ValueList` type that has the same semantics as `List`, except it's a struct so there's no heap allocation for the list. I've used it in `Enumerable.ToArray` to avoid an allocation as well as `Uri.Segments`; I'm sure there are other places it can be used as well, so I added it in Common. All of the argument validation is done as Debug.Asserts so it's easier for the JIT to do inlining. Additionally, there is no `_version` field so `MoveNext` can be inlined. (Unfortunately there is not a way to check this even in debug, since `ValueList` is a struct so we can't pass a reference to it to the enumerator.) The type implements most of the commonly-used methods of `List` (Add, indexer, Count, etc). as well as a few other methods: - `AsArray()` - returns the underlying backing store for the list, which may have some trailing nulls at the end. - `AsArray(out int count)` - returns the underlying backing store for the list, and also writes to an out param indicating how many elements are represented by the array. - `AsOrToArray()` - returns the backing array if it can just hold all of the items in the list, or else copies the relevant elements to a new array. I'm temporarily marking no-merge, since there's still work do be done (adding Common tests, xml docs, etc.). cc @stephentoub, @justinvp; what do you think of adding this type? It's an extra hundred lines or so, but in exchange we get to delete LowLevelList which is ~600. Fixes #12177 +12290 area-Serialization XmlSerializerNamespaces.ToArray throws InvalidCastException XmlSerializerNamespaces wraps an ArrayList, whose parameterless ToArray() returns an object[]. XmlSerializerNamespaces.ToArray tries to cast the resulting object[] to an XmlQualifiedName[], and blows up: https://github.com/dotnet/corefx/blob/a8c3be08889f8b997b3129eb170b55ba211ab9a6/src/System.Private.Xml/src/System/Xml/Serialization/XmlSerializerNamespaces.cs#L77 +12292 area-System.Runtime Convert.DBNull != DBNull.Value System.Convert.DBNull needs to return DBNull.Value. DBNull needs to be type-forwarded down to and exposed from System.Runtime, otherwise the two different DBNull types don't have the same type identity. Convert.IsDBNull also fails to correctly identify DBNull.Value, and TypeCode.DBNull is missing. cc: @weshaggard, @danmosemsft +12294 area-Meta Packages on nuget.org are missing Git sha / TFS ID It seems this regressed, e.g. [System.Collections 4.0.11](https://www.nuget.org/packages/System.Collections/4.0.11) doesn't have the Git/TFS information embedded, while [System.Collections 4.0.11-rc2-24027](https://www.nuget.org/packages/System.Collections/4.0.11-rc2-24027) did: ![image](https://cloud.githubusercontent.com/assets/1376924/19022129/edf960bc-88d0-11e6-9b2c-f96e52f0d834.png) vs. ![image](https://cloud.githubusercontent.com/assets/1376924/19022133/f8ae6444-88d0-11e6-957c-e8666adbf867.png) +12295 area-System.Security Port additional System.Security.Cryptography.X509Certificates members Add additional members on top of issue #9986 ``` M:X509Certificate.#ctor(byte[],SecureString) +1 day for SecureString M:X509Certificate.#ctor(byte[],SecureString,X509KeyStorageFlags) M:X509Certificate.#ctor(SerializationInfo,StreamingContext) implies adding ISerializable and IDeserializationCallback M:X509Certificate.#ctor(string,SecureString) M:X509Certificate.#ctor(string,SecureString,.X509KeyStorageFlags) M:X509Certificate.CreateFromCertFile(string) assuming simple mapping to ctor(string fileName) M:X509Certificate.CreateFromSignedFile(string) assuming simple mapping to ctor(string fileName) M:X509Certificate.Export(X509ContentType,SecureString) M:X509Certificate.Import(byte[]) assuming simple mapping to ctor(byte[] rawData) M:X509Certificate.Import(byte[],SecureString,X509KeyStorageFlags) M:X509Certificate.Import(byte[],string,X509KeyStorageFlags) M:X509Certificate.Import(string) M:X509Certificate.Import(string,SecureString,X509KeyStorageFlags) M:X509Certificate.Import(string,string,X509KeyStorageFlags) M:X509Certificate.Reset M:X509Certificate2.#ctor(byte[],SecureString) M:X509Certificate2.#ctor(byte[],SecureString,X509KeyStorageFlags) M:X509Certificate2.#ctor(SerializationInfo,StreamingContext) M:X509Certificate2.#ctor(string,SecureString) M:X509Certificate2.#ctor(string,SecureString,X509KeyStorageFlags) M:X509Certificate2.Verify M:X509Chain.#ctor(System.Boolean useMachineContext) assuming simple field and use with chain M:X509Chain.#ctor(System.IntPtr chainContext) assuming windows only; maps to SafeHandle P:X509Chain.ChainContext assuming windows only (IntPtr) M:X509Chain.get_ChainContext M:X509Chain.Create depends on CryptoConfig M:X509Chain.Reset variable clear P:X509ChainElementCollection.IsSynchronized Already implemented explicitly on ICollection. Remove explicit M:X509ChainElementCollection.get_IsSynchronized P:X509ChainElementCollection.SyncRoot M:X509ChainElementCollection.get_SyncRoot P:X509ExtensionCollection.IsSynchronized Already implemented explicitly on ICollection. Remove explicit M:X509ExtensionCollection.get_IsSynchronized P:X509ExtensionCollection.SyncRoot M:X509ExtensionCollection.get_SyncRoot M:X509Store.#ctor(System.IntPtr storeHandle) assuming windows only (IntPtr) using StorePal(SafeCertStoreHandle certStore) M:X509Store.#ctor(StoreLocation) assuming simple mapping to PAL.FromSystemStore M:X509Store.#ctor(StoreName) assuming simple mapping to PAL.FromSystemStore M:X509Store.#ctor(string storeName) P:X509Store.StoreHandle assuming windows only (IntPtr) M:X509Store.get_StoreHandle M:X509Store.AddRange(X509Certificate2Collection) Delegates to Add and Remove M:X509Store.Close Same as Dispose M:X509Store.RemoveRange(X509Certificate2Collection) Delegates to Add and Remove ``` +12302 area-System.Security Port System.Security.Cryptography.SignatureDescription public class SignatureDescription Depends on CryptoConfig.CreateFromName(string) ``` M.SignatureDescription.#ctor M.SignatureDescription.#ctor(System.Security.SecurityElement) P.SignatureDescription.DeformatterAlgorithm P.SignatureDescription.DigestAlgorithm P.SignatureDescription.FormatterAlgorithm P.SignatureDescription.KeyAlgorithm M.SignatureDescription.CreateDeformatter(System.Security.Cryptography.AsymmetricAlgorithm) M.SignatureDescription.CreateDigest M.SignatureDescription.CreateFormatter(System.Security.Cryptography.AsymmetricAlgorithm) ``` +12304 area-System.Security Port System.Security.Cryptography.MaskGenerationMethod and PKCS1MaskGenerationMethod ``` public abstract class MaskGenerationMethod M:MaskGenerationMethod.#ctor M:MaskGenerationMethod.GenerateMask(System.Byte[],System.Int32) public class PKCS1MaskGenerationMethod : MaskGenerationMethod M:PKCS1MaskGenerationMethod.#ctor P:PKCS1MaskGenerationMethod.HashName ``` +12307 area-Meta Port NETCoreApp-specific API changes to master Need to port https://github.com/dotnet/corefx/commit/6b799df71ca7687286e96596d4124e43bd9d3fae to master +12309 area-System.Reflection Reflection APIs missing in the implemementation See https://github.com/dotnet/corefx/pull/12187. These missing APIs were not detected by the tooling before because of the inconsistencies in the mscorlib forwarder in the CoreCLR targeting pack. ``` MembersMustExist : Member 'System.Type.GetType(System.String, System.Func, System.Func)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Type.GetType(System.String, System.Func, System.Func, System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Type.GetType(System.String, System.Func, System.Func, System.Boolean, System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Type.IsContextful.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Type.IsContextfulImpl()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Assembly.add_ModuleResolve(System.Reflection.ModuleResolveEventHandler)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Assembly.remove_ModuleResolve(System.Reflection.ModuleResolveEventHandler)' does not exist in the implementation but it does exist in the contract. ``` +12313 area-System.Security Port System.Security.Cryptography.CipherMode.CFB and .OFB Add the CFB and OFB enum values to CipherMode enum. Add [BrowsableNever]. Throw NotSupportedException (or PNSE) ``` public enum CipherMode { CBC = 1, ECB = 2, OFB = 3, CFB = 4, CTS = 5 } ``` +12315 area-System.Security Port AsymmetricAlgorithm.FromXmlString, ToXmlString and other missing members ``` P:KeyExchangeAlgorithm P:SignatureAlgorithm M:Clear M:Create M:Create(System.String) M:FromXmlString(System.String) M:ToXmlString(System.Boolean) ``` Since the ToXmlString and FromXmlString are used frequently, they will be ported and leverage the System.Xml work that was also ported. +12316 area-System.Security Port System.Security.Cryptography.HMAC.BlockSizeValue Default value is 64. Must also ensure any other HMAC-derived classes including HMACSHA1 (64) HMACSHA256 (64) HMACSHA384 (128) HMACSHA512 (128) ``` protected int BlockSizeValue { get {} set {} } ``` Value should flow down to provider, and appropriate tests written for that. +12318 area-Infrastructure Updating CoreClr dependencies to servicing-24603-01 /cc @dotnet/corefx-contrib +12319 area-System.Net Supports TLS alerts for cert validation for non-Windows platforms Tracking TLS Alert TODO items for non-Windows platforms (#11489, 1. `close_notify` implementation 2. TLS handshake implementation: please note that in order to extract the exact error during handshake, `Win32Exception.NativeErrorCode` is used (e.g. `SEC_E_ILLEGAL_MESSAGE`) +12320 area-System.Security Port System.Security.Cryptography.PaddingMode.ANSIX923 and ISO10126 Add ANSIX923 and ISO10126 for PaddingMode enum Other classes that may need uptake: RijndaelManagedTransform (depending on timing of this new class) SymmetricAlgorithm UniversalCryptoDecryptor ``` public enum PaddingMode { None = 1, PKCS7 = 2, Zeros = 3, ANSIX923 = 4, ISO10126 = 5 } ``` +12322 area-System.IO Port #11349: Use rooted path for symlink creation in IO tests port to release/1.1.0: https://github.com/dotnet/corefx/pull/11349 resolves https://github.com/dotnet/corefx/issues/12234 +12323 area-System.Security Port additional System.Security.Cryptography.RandomNumberGenerator members Dependency: CryptoConfig Add the following members ``` M:RandomNumberGenerator.Create(System.String) Requires CryptoConfig M:RandomNumberGenerator.GetBytes(System.Byte[],System.Int32,System.Int32) M:RandomNumberGenerator.GetNonZeroBytes(System.Byte[]) Strips off zeros; does not require native call ``` +12325 area-System.Security Make ICollection members non-explicit on AsnEncodedDataCollection and OidCollection These ICollection members should not be implemented explicitly for ns2.0 ``` P:OidCollection.IsSynchronized P:OidCollection.SyncRoot P:AsnEncodedDataCollection.IsSynchronized P:AsnEncodedDataCollection.SyncRoot ``` +12327 area-System.Security Port System.Security.Cryptography.CryptoConfig - Hard-code various algorithm names, cross referencing Mono - Add Create(string) factory methods to various algorithm classes per netstandard2.0 ``` public class CryptoConfig M:CryptoConfig.#ctor P:CryptoConfig.AllowOnlyFipsAlgorithms M:CryptoConfig.CreateFromName(System.String) M:CryptoConfig.CreateFromName(System.String,System.Object[]) M:CryptoConfig.EncodeOID(System.String) M:CryptoConfig.MapNameToOID(System.String) ``` Also these (but throw PNSE) ``` public static void AddAlgorithm(System.Type algorithm, params string[] names) { } public static void AddOID(string oid, params string[] names) { } ``` +12328 area-System.Net Adding tests for Uri and UriParser Fixes #12156 Adding tests for the recent added classes System.Uri and UriParser cc: @AlexGhiondea for copyright headers since all UriParser tests are ported from mono. cc: @danmosemsft @CIPop +12329 area-Meta xUnit console runner should not use locally built assemblies while running If you change a piece of code to behave incorrectly that the xUnit console runner happens to use, then instead of reporting test failures the console runner might not work correctly. For example, I once messed up `Path.Combine` so that the runner had problems finding the test assembly, so I had to mentally go through the code and see what was wrong. Another time, I messed up `Buffer.MemoryCopy`, but _only_ for unaligned data, so I had no idea what was wrong when I pasted the code into a console application. I ended up having to put `Console.WriteLine` in the MemoryCopy code (which was complex because WriteLine uses that function) to see what was going on. It would be nice if the assemblies the test runner runs on are separated from the versions that are being tested, so it's easier to change commonly-used functions. cc @hughbe +12331 area-System.Net Consider removing netcore50 from the list of TFMs actively targeted by the System.Net.Sockets build "See discussion here: https://github.com/dotnet/corefx/pull/12249#pullrequestreview-2423298 Should we remove the netcore50 build of System.Net.Sockets? Should we wait until we're building for ""UAP10.1,"" whatever/whenever that is? " +12336 area-System.Console Console.ReadKey returns incomplete information for some key sequences on Linux Using PowerShell 6.0.0-alpha.10 on Ubuntu 14.04, I run ``` PS> [Console]::ReadKey() ``` and type Ctrl-@. I get back ``` KeyChar Key Modifiers ------- --- --------- 0 0 ``` I see somewhat similar results with other key presses like Ctrl-! or Ctrl-%. In some cases, `KeyChar` has the correct key, but `Modifiers` is still `0`, resulting in incorrectly assuming Ctrl was not down and e.g. inserting a `!` instead of doing whatever action `Ctrl+!` was bound to. This issue affects some of the key bindings in PSReadline. +12338 area-System.Reflection ParameterInfo.HasDefaultValue throws System.FormatException on optional DateTime parameter When accessing `ParameterInfo.HasDefaultValue` for a parameter of type `System.DateTime`, I get an unexpected `System.FormatException`. `ParameterInfo.Attributes` is correctly set to `Optional | HasDefault`. If the parameter is of any other value type (e.g. `decimal` or some custom _struct_) the property works as expected. There is something specific to `DateTime` in the implementation of `RuntimeParameterInfo.GetDefaultValueInternal()` which is broken. Code snippet to test: ``` c# public void Usage() { var type = typeof (Foo); var ctor = type.GetConstructors ()[0]; var para = ctor.GetParameters ()[0]; // This throws an exception... Assert.True (para.HasDefaultValue); } static class Foo { public Foo(System.DateTime value = default (System.DateTime)) { } } ``` Exception: ![default-value](https://cloud.githubusercontent.com/assets/3872435/19062968/c8793004-89fe-11e6-9db3-b203f4c900d3.png) +12341 area-System.Reflection Assembly.CreateInstance undocumented In .NET 4.5, `Assembly.CreateInstance` returned null if the the type could not be found. Is this still true or is an exception thrown instead? Given how many changes to reflection are part of .NET Core, there's no way to know other than trial or error or looking through the source code. Both of these options do poorly for productivity. The lack of such basic information in the XML comments that drive the IntelliSense and F12 metadata is a major omission. More concerning is the release process that allowed .NET Core to be labeled as version 1.0 fully stable, production ready, without essential documentation. A systematic review and backfilling of missing documentation would save a world of developers untold time and be well worth the effort. +12345 area-Infrastructure Improve sync time with a global test-runtime project.json restore upfront. This change is to improve the time taken by sync.cmd. It introduces the following changes. - Unifying all the test project.json's into a common project.json for the test build being consumed. - Removing test project.json's from the test dir and the test csproj, instead consuming the global one which is now in test-runtime. - Restoring this test-runtime project.json upfront as a part of both build and sync. There is only one test project.json now so as to avoid download contention withing the nuget restore processes while restoring multiple project.json's (which eats up double the raw download time of the packages). A singular project.json also removes all the I/O operations of generating multiple test lock files. (75% of the restore step is just in generating and walking through the lockfiles, IsRestoreRequired is a great way to avoid rerun cost for projects that still require their test project.json.) /cc @weshaggard @ericstj @markwilkie +12346 area-System.IO Bring StreamWriter/Reader to CoreFX, add path constructors - Exposes StreamWriter and StreamReader from CoreFX instead of mscorlib - Adds the string constructors that take a path to a file to read/write/append - Because of the FileStream dependency, Reflection is used in a separate internal helper class to attain access to File.Open. - Adds tests for the string constructors - Note: StreamReader.ReadAsyncInternal isn't overriding the TextReader parent when building for netstandard1.7 because TextReader is still contained within mscorlib and it is in an internal method. replaces https://github.com/dotnet/corefx/pull/12101 resolves https://github.com/dotnet/corefx/issues/12124 @stephentoub +12347 area-System.Net Port rest of HttpRequest and HttpWebResponse -Mostly easly ones which has direct equivalent in underlying HttpClientHandler -Major one which throw PNSE is ContinueDelegate , probably there's an easy way to do this. -Need to add more test , i haven't found any existing test for 509 certificates +12349 area-System.IO Add Begin/End async operations to System.IO.Pipes ``` - M:System.IO.Pipes.NamedPipeServerStream.BeginWaitForConnection(System.AsyncCallback,System.Object) - M:System.IO.Pipes.NamedPipeServerStream.EndWaitForConnection(System.IAsyncResult) - M:System.IO.Pipes.PipeStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object) - M:System.IO.Pipes.PipeStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object) - M:System.IO.Pipes.PipeStream.EndRead(System.IAsyncResult) - M:System.IO.Pipes.PipeStream.EndWrite(System.IAsyncResult) ``` split from https://github.com/dotnet/corefx/issues/12197 +12350 area-System.Reflection Add unit test for issue #7346 (custom attribute constructor crash on null array of enums) Just need to wait for the fix in coreclr to propagate over to corefx. https://github.com/dotnet/coreclr/issues/7346 +12351 area-System.Runtime Add System.SystemException derivations Addresses issue https://github.com/dotnet/corefx/issues/12198 Since SystemException is only supported in netstandard1.7, I upgraded those contracts being touched here to netstandard1.7 as well. cc: @danmosemsft @weshaggard @ericstj @joperezr +12352 area-System.Net HttpContentMultipartExtensions in .NET Core The [`HttpContentMultipartExtensions`](https://msdn.microsoft.com/en-us/library/hh835439%28v=vs.108%29.aspx) were available in .NET Framework to parse multipart http responses. Is there anything similar available in .NET Core or plans to bring them to .NET Standard? +12353 area-System.Net Servicing the Network libraries "Servicing change for the networking libraries. @ericstj @weshaggard @davidsh /cc @gkhanna79 @Chrisboh You'll notice that this also includes an update to publish.proj. That change is because our official builds expect each native platform build to be producing packages. If a native platform build doesn't produce any packages for publishing to Azure, then it gets reported as an error and fails the build. The change below skips the ""UploadToAzure"" step if the build didn't produce any packages. Two alternative solutions I considered: - Making the fix in BuildTools, but this requires a buildtools update and I didn't want to gate on that (i'm not certain that we have a good story for buildtools servicing changes for release/1.0.0). - Switch the official build step to non-blocking. An alternative would be to switch the ""publish-packages"" step of the build definition to non-blocking, but that has the potential to hide a real publishing error which we wouldn't catch until much later (or as another servicing fix). " +12356 area-System.IO Consider to add two new Public API in System.IO.BufferedStream public Stream UnderlyingStream { [Pure] get { return _stream; } } public Int32 BufferSize { [Pure] get { return _bufferSize; } } In System.Runtime.WindowsRuntime, it need to access these two properties/fields. For Desktop/CoreCLR, these two properties in BufferedStream are internal but they have FriendAccessAllowed Attribute. For CoreRT, the wrapper in System.Runtime.WindowsRuntime\src\System\IO\BufferedStreamWrapper.cs is to wrapper a BufferedStream and expose these two properties. If System.IO.BufferedStream can expose these two properties publically, it is easy for System.Runtime.WindowsRuntime to access these properties. +12358 area-Infrastructure Remove workaround for xunit crashing on invalid unicode chars (#7166) in tests One more crash remains however! (dotnet/buildtools#1091) /cc @jamesqo @ericstj @stephentoub +12362 area-System.Security Port System.Security.Cryptography.CspParameters.KeyPassword Based on SecureString; testing is non-trivial. Possibly throw PNSE in netstandard 2.0 timeframe +12363 area-System.Security Port System.Security.Cryptography.ECDiffieHellmanPublicKey Abstract class; would not be used in ns2.0 timeframe (would need class such as ECDiffieHellmanCngPublicKey to also be ported) public abstract class ECDiffieHellmanPublicKey : IDisposable ``` M:ECDiffieHellmanPublicKey.#ctor(System.Byte[]) M:ECDiffieHellmanPublicKey.Dispose M:ECDiffieHellmanPublicKey.Dispose(System.Boolean) M:ECDiffieHellmanPublicKey.ToByteArray M:ECDiffieHellmanPublicKey.ToXmlString ``` +12364 area-System.Security Port System.Security.Cryptography.HMACSHA384/512.ProduceLegacyHmacValues This enables a .NET 2.0 (pre-SP1) bug compatibility mode. Since we no longer have a managed implementation of HMAC we can't make this work in core so we will throw PNSE System.Security.Cryptography.HMACSHA384.ProduceLegacyHmacValues System.Security.Cryptography.HMACSHA512.ProduceLegacyHmacValues +12365 area-System.Security Port System.Security.Cryptography.Oid#ctor Add empty ctor for ns2.0 compat. (super easy) +12366 area-System.Security Port System.Security.Cryptography.RSA.DecryptValue/EncryptValue Not supported in netfx either; throw NotSupportedException ``` M:System.Security.Cryptography.RSA.DecryptValue(System.Byte[]) M:System.Security.Cryptography.RSA.EncryptValue(System.Byte[]) ``` +12367 area-System.Security Port P:System.Security.Cryptography.*KeyExchangeFormatter.Rng Semantics tbd; either Throw PNSE (on setter) or do nothing. ``` P:System.Security.Cryptography.RSAOAEPKeyExchangeFormatter.Rng P:System.Security.Cryptography.RSAPKCS1KeyExchangeDeformatter.RNG P:System.Security.Cryptography.RSAPKCS1KeyExchangeFormatter.Rng ``` +12368 area-System.Security Port SymmetricAlgorithm FeedbackSize, FeedbackSizeValue, ValidKeySize members ``` F:FeedbackSizeValue P:FeedbackSize M:ValidKeySize(System.Int32) ``` In addition ns2.0 related work on AesManaged (to wrap\proxy the method) ``` AesManaged.FeedbackSize ``` and non-ns2.0 work to wrap\proxy FeedbackSize on other types including: ``` RijndaelManaged RijndaelImplementation AesCryptoServiceProvider TripleDESCryptoServiceProvider ``` Unless we want to throw PNSE, FeedbackSize should flow all the way to the provider, and tests should be written for those providers that support something other than 8bytes\64bits. +12369 area-System.Security Port X509Certificates.PublicKey.Key and 509Certificate2.PrivateKey Grouping X509 key-related functionality. Also see issue #12295 ``` X509Certificates.PublicKey.Key P:X509Certificate2.PrivateKey assuming simple mapping to PAL.GetRSAPrivateKey() or PAL.GetECDsaPrivateKey(); M:X509Certificate2.get_PrivateKey M:X509Certificate2.set_PrivateKey(AsymmetricAlgorithm) throw PNSE ``` +12370 area-System.Data SqlClient CLR UDT binary support Adding SqlClient support to handle CLR UDTs as binary @saurabh500 @YoungGah Currently, SqlClient on .NET Core throws an exception when it encounters a CLR UDT in the result set. This change updates SqlClient to support working with CLR UDTs as binary data. The SqlClient API to work with UDTs as binary already exists in the full .NET Framework. This change just unblocks the API on .NET Core. The SqlClient surface area is not changed. The following SqlDataReader methods can be used to retrieve as UDT as binary: - SqlDataReader.GetSqlBytes() - SqlDataReader.GetStream() - SqlDataReader.GetBytes() With this change, retrieving a CLR UDT instance is still not supported by SqlClient. The following SqlClient APIs to retrieve a CLR UDT instance have been updated to throw a PlatformNotSupported exception: - SqlDataReader[] get property indexer - SqlDataReader.GetValue() - SqlDataReader.GetValues() - SqlDataReader.GetSqlValue() - SqlDataReader.GetSqlValues() - SqlDataReader.GetFieldValue() - SqlDataReader.GetFieldValueAsync() - SqlDataReader.GetProviderSpecificFieldType() - SqlDataReader.GetProviderSpecificValue() - SqlDataReader.GetProviderSpecificValues() - SqlCommand.ExecuteScalar() For result set metadata obtained by calling SqlDataReader.GetColumnSchema(), we now populate the following properties for CLR UDTs: - Populate the DbColumn.UdtAssemblyQualifiedName property - Populate the DbColumn.DataType property with a Byte[] type Using a Byte[] for DbColumn.DataType has interesting forward compat implications. Ideally, we'd return the Type for the underlying UDT. Since that's not possible, I feel returning a Byte[] is the best compromise as it describes how to work with the CLR UDT as binary data. If/when .NET Core ever supports CLR UDTs, we'd have to think about the impact of changing DbColumn.DataType to return the CLR UDT type. +12372 area-System.ComponentModel Two ComponentModel tests fail after updating dependencies http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/1099/ ``` System.ComponentModel.Tests.PropertyDescriptorTests.CopyConstructorAddsAttribute [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: Finished linking needed files, moving to running tests. Running tests... Start time: 20:07:00.76 Command(s): call CoreRun.exe xunit.console.netcore.exe System.ComponentModel.TypeConverter.Performance.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonwindowstests D:\j\workspace\windows_nt_de---4526f5ff\src\System.ComponentModel.TypeConverter\src\System\ComponentModel\TypeDescriptor.cs(544,0): at System.ComponentModel.TypeDescriptor.CreateProperty(Type componentType, PropertyDescriptor oldPropertyDescriptor, Attribute[] attributes) D:\j\workspace\windows_nt_de---4526f5ff\src\System.ComponentModel.TypeConverter\tests\PropertyDescriptorTests.cs(19,0): at System.ComponentModel.Tests.PropertyDescriptorTests.CopyConstructorAddsAttribute() System.ComponentModel.Tests.MemberDescriptorTests.MemberDescriptorFromNameAndAttributes [FAIL] Assert.Equal() Failure ↓ (pos 0) Expected: MemberDescriptorFromNameAndAttributes Actual: ↑ (pos 0) Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\System.ComponentModel.TypeConverter\tests\MemberDescriptorTests.cs(49,0): at System.ComponentModel.Tests.MemberDescriptorTests.MemberDescriptorFromNameAndAttributes() ``` +12373 area-System.Runtime Add uap10.1 target to System.Runtime.WindowsRuntime 1. use BufferStreamWrapper to expose two internal properties. 2. remove netcore50aot related TargetGroup 3. remove some place using #if netstandard due to netcore50aot API 4. add typeforward for Windows.Foundation.Size/Rect/point CC: @jkotas, @weshaggard , @yizhang82 , @tarekgh , @SedarG, @ianhays currently also update netstandard to use BufferStreamWrapper instead. if you guys has concern about this, please let me know-- I can add the following code instead. # if netstandard use BufferStream # else use BufferStreamWrapper # endif +12378 area-Serialization Add APIs in System.Runtime.Serialization*. This PR is to add System.Runtime.Serialization.\* APIs which exist in NetStandard2.0 but are missing from CoreFx. Fixes #11254. @zhenlan @mconnew @huanwu @weshaggard Can you please review the pull request? Thanks! +12380 area-System.Console ConsoleKeyInfo.GetHashCode generates identical hashes for common keys `ConsoleKeyInfo.GetHashCode` does not use the `_key` field when computing the hash. It is common for `_keyChar` to have identical values for different keys - some notable examples: `F1`-`F12` and many `Ctrl+` sequences all generate `0` for `KeyChar`. +12381 area-System.IO Move TextReader/TextWriter to CoreFX forked from https://github.com/dotnet/corefx/pull/12346 StreamReader overrides TextReader's ReadAsyncInternal method for the uap build and for the mscorlib build. It would be nice if we could do that in the netstandard build as well, but as it is an internal method we'll need to first bring TextReader to CoreFX for netstandard. +12384 area-System.Runtime The type name used in System.Runtime.WindowsRuntime.dll doesn't meet the corefx coding style The corefx coding style is to use language keywords instead of BCL types, so Int32 , Int64 , Byte , String , etc. should be int , long , byte , string , etc. see src\System.Runtime.WindowsRuntime\src\System\IO\NetFxToWinRtStreamAdapter.cs, src\System.Runtime.WindowsRuntime\src\System\IO\WindowsRuntimeStorageExtensions.cs, src\System.Runtime.WindowsRuntime\src\System\IO\WindowsRuntimeStreamExtensions.cs, src\System.Runtime.WindowsRuntime\src\System\IO\WinRtIOHelper.cs +12386 area-System.ComponentModel Remove if-defs from System.ComponentModel.TypeCoverter When originally porting the TC code a lot of it was if-def-ed out because not all of the types required were available. Since we have brought back more APIs, we can go ahead and bring back that code as well. Look for: - [x] FEATURE_INSTANCEDESCRIPTOR - [x] FEATURE_EDITORATTRIBUTE - [x] FEATURE_GETMETHOD_WITHTYPES - [x] FEATURE_ICOMPONENTCHANGESERVICE - [x] FEATURE_CHECKOUTEXCEPTION - [x] FEATURE_AMBIENTVALUE - [x] FEATURE_COMPONENT_CHANGE_SERVICE - [x] FEATURE_PROPERTY_CHANGED_EVENT_HANDLER - [x] FEATURE_EDITOR - [x] FEATURE_EDITORATTRIBUTE - [x] FEATURE_NESTED_SITE - [x] FEATURE_MEMBERINFO_REFLECTEDTYPE Note: not all of those can actually be brought back. +12388 area-System.Security RSACryptoServiceProvider.KeySize setter not respected The RSACryptoServiceProvider.KeySize setter doesn't get respected when generating keys, or even when getting the value back through the getter. This is true on both core and full framework. This is more problematic on full framework since RSACryptoServiceProvider is returned from RSA.Create. For example: ``` using (RSA rsa = new RSACryptoServiceProvider()) // Key size 1024 by default { rsa.KeySize = 2048; Console.WriteLine(rsa.KeySize); // outputs 1024 var parameters = rsa.ExportParameters(false); // returns a key with a 1024 bit modulus } ``` +12392 area-System.Runtime Expose some missing threading types/members (Timer, exceptions, etc.) - Expose: Timer members, some exception types and members, ThreadExceptionEventArgs/Handler, Monitor.Wait with exitContext parameter - Move CriticalHandle and remaining types from System.Runtime.Handles to System.Runtime, expose CriticalHandle[ZeroOr]MinusOneIsInvalid - Revert base class of safe handle types that used to derive from SafeHandle[ZeroOr]MinusOneIsInvalid, and upgrade those projects to ns1.7 +12394 area-System.Net Add back missing methods in TcpClient, UdpClient, and TcpListener Part of #11788 Adds back the remaining methods of TcpClient, UdpClient, and TcpListener. This PR does not include new tests for most of these. I've done basic testing of the new TcpClient.Connect methods, and would like to get this merged so that @Priya91 can make use of those methods. I'll file an issue to track adding tests for the rest of these. @CIPop @stephentoub @davidsh +12396 area-System.IO Directory.Move doesn't throw for existing on Unix Discovered while testing for IsolatedStorage. Move should throw an exception if there is a file/directory in the specified destination. +12397 area-System.IO Remove the CreateManyConcurrent test The test is causing intermittent failures in other tests and is also intermittently failing itself. Without modifying system resources we can't make this test trustworthy, so it's better to remove it for the sake of stability. ported https://github.com/dotnet/corefx/pull/11721/ resolves https://github.com/dotnet/corefx/issues/11622 for release/1.1.0 @stephentoub @karelz +12398 area-System.Runtime Port some missing exceptions and serialization constructors These guys are missing entirely ``` T:System.TypeUnloadedException M:System.TypeUnloadedException.#ctor M:System.TypeUnloadedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.TypeUnloadedException.#ctor(System.String) M:System.TypeUnloadedException.#ctor(System.String,System.Exception) T:System.DuplicateWaitObjectException M:System.DuplicateWaitObjectException.#ctor M:System.DuplicateWaitObjectException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.DuplicateWaitObjectException.#ctor(System.String) M:System.DuplicateWaitObjectException.#ctor(System.String,System.Exception) M:System.DuplicateWaitObjectException.#ctor(System.String,System.String) ``` also these exceptions exist but are not serializable. ``` M:System.DllNotFoundException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.OperationCanceledException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.OutOfMemoryException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.OverflowException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) ``` Note - for testing serialization, take a look at the mechanism in https://github.com/dotnet/corefx/commit/e66576aa8290714284848086259b6429d1ce9b54. You can probably just list the types there. +12399 area-System.Runtime Port ApplicationId ``` T:System.ApplicationId M:System.ApplicationId.#ctor(System.Byte[],System.String,System.Version,System.String,System.String) P:System.ApplicationId.Culture M:System.ApplicationId.get_Culture P:System.ApplicationId.Name M:System.ApplicationId.get_Name P:System.ApplicationId.ProcessorArchitecture M:System.ApplicationId.get_ProcessorArchitecture P:System.ApplicationId.PublicKeyToken M:System.ApplicationId.get_PublicKeyToken P:System.ApplicationId.Version M:System.ApplicationId.get_Version M:System.ApplicationId.Copy M:System.ApplicationId.Equals(System.Object) M:System.ApplicationId.GetHashCode M:System.ApplicationId.ToString ``` +12400 area-System.Reflection Port Attribute missing members These seem to be missing ``` M:System.Attribute.IsDefined(System.Reflection.Assembly,System.Type) M:System.Attribute.IsDefined(System.Reflection.Assembly,System.Type,System.Boolean) M:System.Attribute.IsDefined(System.Reflection.MemberInfo,System.Type) M:System.Attribute.IsDefined(System.Reflection.MemberInfo,System.Type,System.Boolean) M:System.Attribute.IsDefined(System.Reflection.Module,System.Type) M:System.Attribute.IsDefined(System.Reflection.Module,System.Type,System.Boolean) M:System.Attribute.IsDefined(System.Reflection.ParameterInfo,System.Type) M:System.Attribute.IsDefined(System.Reflection.ParameterInfo,System.Type,System.Boolean) ``` +12401 area-System.Runtime Straggler explicit implementations These exist but should all be implicit implementations to match standard. ``` M:System.String.CompareTo(System.Object) M:System.String.ToString(System.IFormatProvider) M:System.StringComparer.Compare(System.Object,System.Object) M:System.Boolean.ToString(System.IFormatProvider) M:System.Char.ToString(System.IFormatProvider) M:System.String.GetTypeCode ``` +12402 area-Meta Package Microsoft.AspNetCore.StaticFiles 1.0.0 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0) "I have VS 2015 Professional installed on my box. I have Core 1.0.1 SDK 1.0.0 Preview 2-003131 (x64) and the Core 1.0.1 - VS 2015 Tooling Preview 2 installed as well: ![image](https://cloud.githubusercontent.com/assets/20649904/19134205/739f1b48-8b11-11e6-9e22-7b975b4eedeb.png) Here is my project.json file: { ""dependencies"": { ""Microsoft.AspNetCore.Mvc"": ""1.0.1"", ""Microsoft.AspNetCore.Server.IISIntegration"": ""1.0.0"", ""Microsoft.AspNetCore.Server.Kestrel"": ""1.0.1"", ""Microsoft.EntityFrameworkCore.InMemory"": ""1.0.1"", ""Microsoft.Extensions.Configuration.EnvironmentVariables"": ""1.0.0"", ""Microsoft.Extensions.Configuration.FileExtensions"": ""1.0.0"", ""Microsoft.Extensions.Configuration.Json"": ""1.0.0"", ""Microsoft.Extensions.Logging"": ""1.0.0"", ""Microsoft.Extensions.Logging.Console"": ""1.0.0"", ""Microsoft.Extensions.Logging.Debug"": ""1.0.0"", ""Microsoft.AspNetCore.WebSockets.Server"": ""0.1.0"", ""Microsoft.AspNetCore.StaticFiles"": ""1.0.0"", ""Chutzpah"": ""4.2.4"", ""Microsoft.NETCore.App"": ""1.0.1"" }, ""tools"": { ""Microsoft.AspNetCore.Server.IISIntegration.Tools"": { ""version"": ""1.0.0-preview2-final"", ""imports"": ""portable-net45+win8+dnxcore50"" } }, ""frameworks"": { ""netcoreapp1.0"": { ""imports"": [ ""dotnet5.6"", ""portable-net45+win8"" ] } }, ""buildOptions"": { ""emitEntryPoint"": true, ""preserveCompilationContext"": true }, ""runtimeOptions"": { ""configProperties"": { ""System.GC.Server"": true } }, ""publishOptions"": { ""include"": [ ""wwwroot"", ""Views"", ""appsettings.json"", ""web.config"", ""project.json"" ], ""exclude"": [ ""wwwroot/app/*_/_.spec.*"", ""wwwroot/chutzpah.json"", ""wwwroot/testSetup.js"" ] }, ""scripts"": { ""prepublish"": ""npm install"", ""postpublish"": [ ""dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"" ] } } But, everytime I load the solution, or ""Restore Packages"" I always end up with this error: `Errors in D:\Angular 2\Ng2Demo\Ng2Demo.xproj Package Microsoft.AspNetCore.StaticFiles 1.0.0 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Microsoft.AspNetCore.StaticFiles 1.0.0 supports: - net451 (.NETFramework,Version=v4.5.1) - netstandard1.3 (.NETStandard,Version=v1.3) One or more packages are incompatible with .NETCoreApp,Version=v1.0.` " +12403 area-System.IO Unix file timestamps only have one-second granularity Currently, method such as `File.GetLastWriteTime` and `FileInfo.LastWriteTime` return timestamps which are only accurate to the nearest second on Unix. On OSX, this seems to be a system-level limitation in HFS+. On most Linux filesystems, however, millisecond-level information does seem to be available, at least via `stat`. @stephentoub recommended that we could use `utimes` rather than `utime` in the native shim in order to retrieve this information. This also seems to affect files copied by `File.Copy`, because we copy over some timestamp metadata from the source file (to match Windows). +12405 area-System.Runtime Exception missing SerializeObjectState Missing ``` E:System.Exception.SerializeObjectState M:System.Exception.add_SerializeObjectState(System.EventHandler{System.Runtime.Serialization.SafeSerializationEventArgs}) M:System.Exception.remove_SerializeObjectState(System.EventHandler{System.Runtime.Serialization.SafeSerializationEventArgs}) ``` +12408 area-Serialization [Expose] To Add ISafeSerializationData/SafeSerializationEventArgs The following APIs exist in NetStandard 2.0 but are missing from NetCore. We should put them in System.Runtime where Exception lives. T:System.Runtime.Serialization.ISafeSerializationData T:System.Runtime.Serialization.SafeSerializationEventArgs +12411 area-Infrastructure Updating CoreFx dependencies to servicing-24606-02 /cc @dotnet/corefx-contrib +12412 area-System.Security SslStream segfault when X509Certificate2 constructed "The following program segfaults (apparently in SslStream.AuthenticateAsClientAsync), but only if the first line `new X509Certificate2(""testCert.pfx"", ""testPassword"");` is present. Feel free to to copy testCert.pfx from https://github.com/aspnet/KestrelHttpServer/tree/dev/samples/SampleApp. This repros on windows with Microsoft.NETCore.App 1.1.0-preview1-001090-00, but not 1.0.1. ``` > dotnet run Project ConsoleApp2 (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation. HttpClient request succeeded! Starting AuthenticateAsClientAsync. > $lastexitcode -1073741819 ``` ![image](https://cloud.githubusercontent.com/assets/54385/19137402/5625a0e8-8b28-11e6-92f1-fa1d24b9cc42.png) ### NuGet.config ``` ``` ### project.json ``` { ""version"": ""1.0.0-*"", ""buildOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.1.0-preview1-001090-00"" } }, ""frameworks"": { ""netcoreapp1.0"": { ""imports"": ""dnxcore50"" } } } ``` ### Program.cs ``` c# using System; using System.IO; using System.Net; using System.Net.Http; using System.Net.Security; using System.Net.Sockets; using System.Security.Authentication; using System.Security.Cryptography.X509Certificates; using System.Threading.Tasks; namespace ConsoleApp2 { public class Program { public static void Main(string[] args) { new X509Certificate2(""testCert.pfx"", ""testPassword""); using (var client = new HttpClient()) { client.GetStringAsync(""https://github.com"").Wait(); Console.WriteLine(""HttpClient request succeeded!""); } GetStreamAsync(new Uri(""https://github.com""), validateCertificate: true).Wait(); Console.WriteLine(""Getting SslStream succeeded!""); } private static async Task GetStreamAsync(Uri requestUri, bool validateCertificate) { var socket = await GetSocketAsync(requestUri); Stream stream = new NetworkStream(socket, ownsSocket: true); if (requestUri.Scheme.Equals(""https"", StringComparison.OrdinalIgnoreCase)) { var sslStream = new SslStream(stream, leaveInnerStreamOpen: false, userCertificateValidationCallback: validateCertificate ? null : (RemoteCertificateValidationCallback)((a, b, c, d) => true)); Console.WriteLine(""Starting AuthenticateAsClientAsync.""); try { await sslStream.AuthenticateAsClientAsync(requestUri.Host, clientCertificates: null, enabledSslProtocols: SslProtocols.Tls11 | SslProtocols.Tls12, checkCertificateRevocation: validateCertificate); } finally { Console.WriteLine(""AuthenticateAsClientAsync Completed.""); } return sslStream; } else { return stream; } } private static async Task GetSocketAsync(Uri requestUri) { var tcs = new TaskCompletionSource(); var socketArgs = new SocketAsyncEventArgs(); socketArgs.RemoteEndPoint = new DnsEndPoint(requestUri.DnsSafeHost, requestUri.Port); socketArgs.Completed += (s, e) => tcs.TrySetResult(e.ConnectSocket); // Must use static ConnectAsync(), since instance Connect() does not support DNS names on OSX/Linux. if (Socket.ConnectAsync(SocketType.Stream, ProtocolType.Tcp, socketArgs)) { await tcs.Task; } var socket = socketArgs.ConnectSocket; if (socket == null) { throw new SocketException((int)socketArgs.SocketError); } else { return socket; } } } } ``` " +12416 area-System.Net Initial commit to System.Net.Mail. Changes from Desktop implementation: - SmtpConnection uses TcpClient instead of ServicePointManager. - SslStream instead of internal TlsStream. - Negotiate, NTLM, Digest authentication protocols not ported due to dependency on internal NTAuthentication type. Authentication currently happens uses plain text login, SSL connections need to be used. - TcpClient connections are not pooled. - Getting mail settings from `web.config` files is not supported, as netstandard2.0 doesn't expose the `System.Net.Configuration` apis. - Sending mail to IIS pickup directory currently throws `NotSupportedException`. Desktop uses COM types for this API, investigation on partially supporting this feature on Windows is pending. Notes: - Tests will be added separately. - Please review `SmtpConnection.cs` and `TlsStream.cs` files for correctness, they have changed functionally from Desktop code. - The TcpClient connect does not have `Connect()`, `BeginConnect()` and `EndConnect()` in .NET Core contract yet, once that's available, the SendAsync should use the async connect methods. - Update: Added now Did a test locally using the `SmtpClient.Send()` and `SmtpClient.SendAsync()` , was able to successfully send emails to google smpt server with tls authentication. cc @stephentoub @ericeil @CIPop @davidsh @geoffkizer @tijoytom @karelz +12419 area-Infrastructure Updating CoreFx dependencies to servicing-24606-05 /cc @dotnet/corefx-contrib +12421 area-System.Runtime Proposal: Support for building query string collection in UriBuilder "## Background Currently UriBuilder class does not have a constructor / method to build query string parameters values. Please note that I would like to implement this feature in the existing UriBuilder class. ## Proposed API **Open questions** - How often is this kind of functionality hand-written by apps? (ideally some links to popular GitHub projects, or links to StackOverflow / blog post samples = real-world examples) - In general it looks useful, but it is always good to collect more data. - What is difference between `IEnumerable>` and `IDictionary` overloads?Do they have different usage patterns? (real-world examples ideally) ```diff public class UriBuilder { public UriQueryStringBuilder(); public UriQueryStringBuilder(string schemeName, string hostName, string path); ... + public UriQueryStringBuilder(string schemeName, string hostName, string path, IEnumerable> queryParameters); + public UriQueryStringBuilder(string schemeName, string hostName, string path, IDictionary queryParameters); + public IDictionary QueryParameters {get;} + public void AddQueryParameter(string key, string value); } ``` ### Usage ```c# //1. Add query string var uri = new UriQueryStringBuilder(""https"", ""api.com"", ""v1/videos/somevideo""); uri.AddQueryParameter(""q"", ""keword""); uri.AddQueryParameter(""s"", null); var result = uri.ToString(); //https://api.com/v1/videos/somevideo?q=keyword&s= //2. Build query string collection and add query string var dict = new Dictionary(); dict[""somthing""] = ""value""; dict[""query""] = ""another value""; var uri1 = new UriQueryStringBuilder(""https"", ""api.com"", ""v1/videos/somevideo"", dict); uri1.AddQueryParameter(""q"", ""keword""); uri1.AddQueryParameter(""s"", null); var result1 = uri1.ToString(); //https://api.com/v1/videos/somevideo?something=value&query=another%20value&q=keyword&s= //3. Build query string collection only. var dict1 = new Dictionary(); dict1[""somthing""] = ""value""; dict1[""query""] = ""another value""; var uri2 = new UriQueryStringBuilder(""https"", ""api.com"", ""v1/videos/somevideo"", dict1); var result2 = uri2.ToString(); //https://api.com/v1/videos/somevideo?something=value&query=another%20value ``` -------------------------------------- ## Original proposal ```c# public class URIBuilder : System.UriBuilder { private readonly NameValueCollection _queryParameters; public URIBuilder(string schemeName, string hostName, string path) : this(schemeName, hostName, path, new NameValueCollection()) { } public URIBuilder(string schemeName, string hostName, string path, NameValueCollection queryParameters) : base(schemeName, hostName) { _queryParameters = queryParameters ?? new NameValueCollection(); Path = path; } public NameValueCollection QueryParameters => _queryParameters; public URIBuilder AddQueryParameter(string key, string value) { if (key == null) throw new ArgumentNullException(nameof(key)); if (value == null) value = string.Empty; //allow empty value otherwise throw null exception _queryParameters.Add(key, value); return this; } public override string ToString() { var query = new StringBuilder(); foreach (var item in _queryParameters.AllKeys) { query.Append($""{item}={Uri.EscapeUriString(_queryParameters[item])}&""); } if (query.Length > 0) { query.Length--; //Trim last character '&' Query = query.ToString(); } return base.ToString(); } } ``` ### Tests ```c# /* 1. Build query string values only.*/ var uri = new URIBuilder(""https"",""api.com"",""v1/videos/somevideo"") .AddQueryParameter(""q"",""keword"") .AddQueryParameter(""s"",null); var result = uri.ToString(); //https://api.com/v1/videos/somevideo?q=keyword&s= /* 2. Build query string collection and add parameter*/ var nvc = new NameValueCollection(); nvc[""somthing""] = ""value""; nvc[""query""] = ""another value""; var uri1 = new URIBuilder(""https"",""api.com"",""v1/videos/somevideo"",nvc) .AddQueryParameter(""q"",""keword"") .AddQueryParameter(""s"",null); var result1 = uri1.ToString(); //https://api.com/v1/videos/somevideo?something=value&query=another%20value&q=keyword&s= /* 3. Build query string collection only.*/ var nvc1 = new NameValueCollection(); nvc1[""somthing""] = ""value""; nvc1[""query""] = ""another value""; var uri2 = new URIBuilder(""https"",""api.com"",""v1/videos/somevideo"",nvc1); var result2 = uri2.ToString(); //https://api.com/v1/videos/somevideo?something=value&query=another%20value ``` " +12424 area-System.ComponentModel Update the code with the assumption that LicenseFile is always null. +12425 area-System.Numerics Proposal: Add a BitManipulation class "I propose adding a new class to CoreFx, which will contain many common bit manipulation techniques. Part of having a class like this is that the Jit can target these methods class for intrinsics, similar to what was done for `Vector`. There is still some open discussion as to what the shape of this API should be, and even the class name. #### Class Name There are several class names being thrown around and none are particularly winning everyone over. - Bits - BitOperations or BitOps - BitUtility - BitTwiddler - BitView (see the next section) #### Two Classes? @benaadams, correctly notes that there seems to be two different APIs here. A low level view allowing you to manipulate a numeric type to extract or inject a bit (like a bit vector), byte, short, or int value. These methods are the equivalent of the following but safer (and possibly faster) ```csharp public static unsafe int ExtractInt(ulong u,int pos)=>((int*)&u)[pos]; public static unsafe ulong InjectInt(ulong u, int pos, int toSet) { ((int*)&u)[pos] = toSet; return u; } ``` And another set of utility exposing methods for treating an integer register type like a unit of data allowing you to manipulate it or introspect it. Does it make sense to keep these APIs in one class? #### Method Names Another point of contention. What should we call these methods? For the ""view"" members, there is some dislike of the naming convention of `Get`/`Set` even though there is prior art like `BitVector32` & `SqlDataRecord`. Everyone seems to like `Read`/`Write` more, but while `Read` is fine. `Write` isn't neccessarily the operation being done. I'm still looking for some verbiage to note that this really takes a value, modifies it a bit (no pun intended), and spit out a new one. PopCount/HammingWeight/ CountSetBits - We can't decide on this name. I personally like `PopCount` as it is a well known name for the algorithm. However, for someone who does not CPU intrinsics or bit tricks this name might mean nothing to you. the .net api is split where common or well known algorithms are simply called that (e.g. `Rijndael`) and sometimes descriptive for new users. I think that this class in general is fairly low-level so even a novice should be expected to do a quick google search in the subject area. And even naming the methods as actions (e.g. `CountTrailingZeroes`) or properties (e.g. `TrailingZeroesCount`). #### Hardware Acceleration / Detection @benaadams, suggested adding a simple flag to determine if the class has hardware acceleration. I personally suggest going a step further and adding an `enum` to describe which methods are accelerated (not in the PoC). Unfortunately, the `enum` based approach does raise the question if the jit could do branch elimination on a comparison like the following if it could replace `AcceleratedOperations` as a runtime constant. (unknown) ```csharp // if (Bits.AcceleratedOperations == BitOps.PopCount){ // use popcount } else{ // work around it? } ``` I admittedly question what you would do differently if it isn't accelerated. This isn't like `Vector` where you might switch to a different approach and use `ulong` like smaller vectors. The methods should be pretty good solutions to these problems and outside of switching to some native code I don't see us doing better. Methods that could be accelerated (in AMD64 at least):: `PopCount` => `POPCNT` `RotateRight` => `ROR` (already accelerated!) `RotateLeft` => `ROL` (already accelerated!) `CountLeadingZeroes` => `LZCNT` (in ABM compliant hardware) or (`BSR` followed by xor 63) `CountTrailingZeroes` => `TZCNT` / `BSF` `ReadBit` => `BT` `WriteBit` => `BTS`/`BTC` (maybe?) `ReadByte`/`ReadInt16`/`ReadInt32` => `BEXTR` (possibly) Updated spec: ``` csharp public static class Bits{ public static int PopCount(ulong value); public static int PopCount(long value); public static int PopCount(uint value); public static int PopCount(int value); public static ulong RotateRight(ulong value, int offset); public static uint RotateRight(uint value, int offset); public static ulong RotateLeft(ulong value, int offset); public static uint RotateLeft(uint value, int offset); public static int CountLeadingZeros(ulong value); public static int CountLeadingZeros(long value); public static int CountLeadingZeros(uint value); public static int CountLeadingZeros(int value); public static int CountTrailingZeroes(ulong value); public static int CountTrailingZeroes(long value); public static int CountTrailingZeroes(uint value); public static int CountTrailingZeroes(int value); public static bool ReadBit(ulong value, int offset); public static bool ReadBit(long value, int offset); public static bool ReadBit(uint value, int offset); public static bool ReadBit(int value, int offset); public static ulong WriteBit(ulong value, int offset, bool toSet); public static long WriteBit(long value, int offset, bool toSet); public static uint WriteBit(uint value, int offset, bool toSet); public static int WriteBit(int value, int offset, bool toSet); public static byte ReadByte(ulong value, int offset); public static byte ReadByte(long value, int offset); public static byte ReadByte(uint value, int offset); public static byte ReadByte(int value, int offset); public static short ReadInt16(ulong value, int offset); public static short ReadInt16(long value, int offset); public static short ReadInt16(uint value, int offset); public static short ReadInt16(int value, int offset); public static int ReadInt32(ulong value, int offset); public static int ReadInt32(long value, int offset); public static ulong WriteByte(ulong value, int offset, byte toSet); public static long WriteByte(long value, int offset, byte toSet); public static uint WriteByte(uint value, int offset, byte toSet); public static int WriteByte(int value, int offset, byte toSet); public static ulong WriteInt16(ulong value, int offset, short toSet); public static long WriteInt16(long value, int offset, short toSet); public static uint WriteInt16(uint value, int offset, short toSet); public static int WriteInt16(int value, int offset, short toSet); public static ulong WriteInt32(ulong value, int position, int toSet); public static long WriteInt32(long value, int position, int toSet); } ``` Edit: POC class https://gist.github.com/mburbea/c9a71ac1b1a25762c38c9fee7de0ddc2 More updates! Removed signed rotate operators. " +12426 area-System.Data Add DataSet, DataTable, and much more to corefx - Ports src from desktop - Ports tests from Mono - Upgrades System.Data.SqlClient projects to netstandard 1.7 Some notes: - This adds ~120 public types and ~3800 public members to System.Data.Common. It includes all of the non-provider-specific types from System.Data.dll with the exception of permissions-related types (e.g. DbDataPermissionAttribute) and configuration-related types (e.g. DbProviderFactories). - I've done close to zero cleanup in the tests ported from Mono. There is a sizeable amount of work there to bring it into conformance with our normal usage of xunit, and I'll open an issue for that to be done subsequently. I did the minimal work necessary to bring the tests over, convert them to xunit, and get them passing. - I've done some cleanup/formatting/scrubbing/etc. in the product source, but there's still plenty more we could do if we want to, more application of C# features added since this code was written, etc. - I type-forwarded the SqlTypes down from System.Data.SqlClient into System.Data.Common, as they need to be known by DataSet and friends. SqlClient was accessing some internals of these types, so I put some workarounds in place to enable it to continue functioning without measurable performance loss and with the same behavior. They're slightly hacky, but they get the job done. cc: @weshaggard, @ericstj, @terrajobst, @saurabh500, @YoungGah, @FransBouma Fixes https://github.com/dotnet/corefx/issues/8622 Fixes https://github.com/dotnet/corefx/issues/2065 Related to https://github.com/dotnet/corefx/issues/4571 (DbProviderFactory is included, but DbProviderFactories is not) +12431 area-System.Threading Remove temporary project references after changes to the referenced project are published See changes to *.csproj by kouvel +12434 area-System.IO Add tests for UnmanagedMemoryAccessor struct methods Progress towards https://github.com/dotnet/corefx/issues/9465 exposure of the methods was completed by @alexperovich when he moved UnmanagedMemoryStream/Accessor to corelib in https://github.com/dotnet/corefx/pull/12391 & https://github.com/dotnet/coreclr/pull/7418 @stephentoub @joperezr @alexperovich +12436 area-System.Reflection Type name parser The dev/metadata branch was badly out of date and divergent from master. The only thing that was in there was Dave's type name parser. I squashed it in to 1 commit against master. Verifying that tests pass to ensure I've got everything. Then I'll close this PR and we can delete the dev/metadata branch. +12437 area-System.IO Enable machine stores for isolated storage Adds ACLing for machine store folders for Windows Adds solution file for System.IO.FIleSystem.AccessControl @ericstj, @weshaggard, @ianhays, @stephentoub +12438 area-System.Runtime Notify GC of allocated native memory +12440 area-Infrastructure Add '--testTFM' option and set default to netcoreapp1.1 in run-test.sh By #12241, netcoreapp1.1 become new default TestTFM for all project. We need to change default netcoreapp1.0 to 1.1, and add new option to set TestTFM +12441 area-System.Security [Linux/ARM32] System.Security.Cryptography.Algorithms.Tests fail "Environemnt: Linux / ARM32bit CoreCLR: Release build CoreFX: Release build, enable outerloop test ``` Starting: System.Security.Cryptography.Algorithms.Tests System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.InvalidIVSizes(invalidIvSize: 536870928) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.OutOfMemoryException): Exception of type 'System.OutOfMemoryException' was thrown. Stack Trace: at System.Object.MemberwiseClone() at Internal.Cryptography.Helpers.CloneByteArray(Byte[] src) at Internal.Cryptography.AesImplementation.CreateDecryptor(Byte[] rgbKey, Byte[] rgbIV) at System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.<>c__DisplayClass4_1.b__1() Finished: System.Security.Cryptography.Algorithms.Tests ``` Related code ``` [Theory] [InlineData(64)] // smaller than default BlockSize [InlineData(129)] // larger than default BlockSize [InlineData(536870928)] // number of bits overflows and wraps around to default BlockSize public static void InvalidIVSizes(int invalidIvSize) { using (Aes aes = AesFactory.Create()) { aes.GenerateKey(); byte[] key = aes.Key; byte[] iv; try { iv = new byte[invalidIvSize]; } catch (OutOfMemoryException) // in case there isn't enough memory at test-time to allocate the large array { return; } Assert.Throws(""rgbIV"", () => aes.CreateEncryptor(key, iv)); Assert.Throws(""rgbIV"", () => aes.CreateDecryptor(key, iv)); } } public sealed override ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[] rgbIV) { return CreateTransform(rgbKey, rgbIV.CloneByteArray(), encrypting: false); } public static byte[] CloneByteArray(this byte[] src) { if (src == null) { return null; } return (byte[])(src.Clone()); } ``` - It throws `argument exception` (not `out of memory exception`) when I modify test code to not use `Assert.Throws` for CreateDecryptor. - Test passed when I modify test code to not call `CreateEncryptor` and test `CreateDecryptor` only. " +12442 area-System.Threading Add QueueUserWorkItem for local threadpool queues `ThreadPool.QueueUserWorkItem` always queues to the global queue; however it would be good to have the option to be able to queue to the current threadpool thread's local queue when a threadpool thread queues extra work items. ## Rationale and Usage - Reduced contention on the global queue when many threads are queuing - Potentially hotter more local data when the queuing work item completes - Take advantage of threadpool's task stealing - (i.e. Similar to Task's rational for doing it for child Tasks) ## Proposed API ``` csharp public static class ThreadPool { // public static void QueueUserWorkItem(WaitCallback callBack, bool preferLocal); public static void QueueUserWorkItem(WaitCallback callBack, Object state, bool preferLocal); } ``` ## Details - Exposing a parameter that threadpool already accepts interally +12447 area-System.Runtime RuntimeHelpersTests.FixedAddressValueTypeTest test failed in CI http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/1248/consoleText ``` System.Runtime.CompilerServices.Tests.RuntimeHelpersTests.FixedAddressValueTypeTest [FAIL] Discovered: System.Net.Http.Functional.Tests Assert.True() Failure Expected: True Actual: False ``` +12449 area-System.Runtime System.Runtime.CompilerServices.IsConst is defined in both System.Runtime and S.P.CoreLib be96103263c9d57ce22295dd3906b96c2ae722be brings S.R.CompilerServices.IsConst to System.Runtime. However it already exists in S.P.CoreLib for AOT (see https://github.com/dotnet/corert/blob/master/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/IsConst.cs). It's indeed defined in CoreCLR too (see https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Runtime/CompilerServices/IsConst.cs). This type should have been forwarded to System.Private.CoreLib. +12450 area-Infrastructure Remove SNI workaround when we have a new TFS build https://github.com/dotnet/corefx/pull/12376/commits/c7ba063079560f0a6c1057a62da51a4ef53de629 We should remove this once we get a new TFS build. /cc @stephentoub +12451 area-System.Reflection Merge System.Reflection.Metadata changes from master to release/1.1.0 Finalizes System.Reflection.Metadata public API surface for 1.1.0 release (https://github.com/dotnet/corefx/issues/12891). No other SRM public API changes are planned for 1.1.0. +12452 area-System.Console Virtual Terminal Parsing Issues As we discussed over email, some parsing of virtual terminal sequences is done incorrectly. These are sequences that are generated on linux to represent certain keypresses, such as the arrow keys or the F1-F12 keys. They are also used for querying certain state about the terminal, such as the position of the cursor. In general, the parsing works well enough on Ubuntu, however, it is noticeably wrong on the Windows Subsystem for LInux. Try running powershell on WSL, and you'll see a number of graphical defects, primarily related to the retrieving of the cursor position (see [this code](https://github.com/dotnet/corefx/blob/master/src/System.Console/src/System/ConsolePal.Unix.cs#L360-L385)). Also attempting to use the arrow keys to scroll through the command history simply echos 'A', 'B', 'C', or 'D' to the input, depending on the arrow key. As we discussed, this is probably due to .NET Core missing certain characters while parsing the result, as opposed to blocking on the input and waiting, character by character, for the complete sequence to come in. +12455 area-Infrastructure Updating CoreFx dependencies to servicing-24607-01 /cc @dotnet/corefx-contrib +12457 area-System.Runtime Adding Delegate missing members Fixes #12251 Adding missing members for System.Delegate, System.MultiCastDelegate and MulticastNotSupportedException + tests. cc: @danmosemsft @stephentoub @AlexGhiondea @weshaggard +12458 area-System.IO Add missing IO members to System.Runtime - Adds ref entries for the 5 remaining IO members missing from System.Runtime - Adds tests for the FusionLog properties - Tests for the Stream functions are coming in a separate commit since those tests live in the System.IO assembly - Adds full test suite for FileNotfoundException since we apparently didn't have any progress towards https://github.com/dotnet/corefx/issues/9465 @joperezr @AlexGhiondea @stephentoub @JeremyKuhne +12459 area-System.Net Add missing members in System.Net.Sockets.SocketException ``` csharp public class SocketException : Win32Exception { protected SocketException(SerializationInfo serializationInfo, StreamingContext streamingContext); public override int ErrorCode { get; } } ``` (was tracked by #11788) +12460 area-System.Net Add back Socket.SendFile, Begin/EndSendFile ``` csharp public class Socket : IDisposable { public IAsyncResult BeginSendFile(string fileName, AsyncCallback callback, object state); public IAsyncResult BeginSendFile(string fileName, byte[] preBuffer, byte[] postBuffer, TransmitFileOptions flags, AsyncCallback callback, object state); public void EndSendFile(IAsyncResult asyncResult); public void SendFile(string fileName); public void SendFile(string fileName, byte[] preBuffer, byte[] postBuffer, TransmitFileOptions flags); } ``` (Was tracked by #11788) Additional missing APIs: ``` M:System.Net.Sockets.Socket.EndAccept(System.Byte[]@,System.IAsyncResult) M:System.Net.Sockets.Socket.EndAccept(System.Byte[]@,System.Int32@,System.IAsyncResult) P:System.Net.Sockets.SocketAsyncEventArgs.SendPacketsFlags M:System.Net.Sockets.SocketAsyncEventArgs.get_SendPacketsFlags M:System.Net.Sockets.SocketAsyncEventArgs.set_SendPacketsFlags(System.Net.Sockets.TransmitFileOptions) ``` +12461 area-Infrastructure Detect a better default for TestNugetRuntimeId when not set The logic [here](https://github.com/dotnet/corefx/blob/71de1aac5cf3e5dc87714ae0cc829e1fa98f7c5d/dir.props#L267) was reasonable when we only supported ubuntu.14.04-x64, but we support many more distros now. For folks that invoke MSBuild.exe directly, we should have a task in buildtools that provides a better default (e.g. reads /etc/os-release and computes a RID). +12462 area-System.Net Add back Socket.SetIPProtectionLevel and UdpClient.AllowNatTraversal ``` csharp public class Socket : IDisposable { public void SetIPProtectionLevel(IPProtectionLevel level); } public class UdpClient : IDisposable { public void AllowNatTraversal(bool allowed); } ``` (Was tracked by #11788) +12463 area-System.Net Add back TcpListener.Create ``` csharp public class TcpListener { public static TcpListener Create(int port); } ``` (was tracked by #11788) +12464 area-System.Net Add back SocketFlags.MaxIOVectorLength ``` csharp public enum SocketFlags { MaxIOVectorLength = 16, } ``` +12465 area-Meta TestNuGetRuntimeId should be derived from TestTFM & machine running on Currently it looks like we set the TestNuGetRuntimeId in a bunch of different places for different reasons, none of which really make sense. The purpose of a RuntimeID is to describe the platform that an application is running on. For many target frameworks they've only been designed to accept a finite set of RIDs. I think the right model for this would be, given a TestTFM, select from the available RIDs which one best matches the current machine. /cc @weshaggard @karajas @mellinoe +12466 area-System.Threading Add netstandard1.7 build to Threading.Timers This retargets the ref and src to netstandard1.7. It splits up the test to run against both netstandard1.3 and netstandard1.7. This is the last of the split packages (hard to port) that wasn't targeting ns1.7. /cc @danmosemsft @weshaggard @stephentoub +12467 area-Serialization Exceptions don't properly round trip StackTrace through binary formatter occasionally. When running tests the MissingSatelliteAssemblyException fails to round trip StackTrace. The original file line number and the round-tripped line number don't match. The System.Resources.ResourceManager tests project has the failing test. The exception properly round trips when the VS CoreClr debugger is attached. +12471 area-System.Net Port rest of System.NetCookie* methods -Mostly staight forward since the methods did exit but were internal -netcore50 complains about SafeHandle not derived from CriticalFinalizerObject , excluded in APICompat -public bool IsSynchronized { get; } and public object SyncRoot { get; } both exits today not sure why they are listed as not available. -I haven't added any new test since the existing test cover the code path. Ref: PR #12125 +12472 area-System.Data SqlConnection.Open() thrown SqlExceptions do not have an error number on OSX/Linux "If you call Open() on a SqlConnection that errors out (for example, because of a bad hostname), the thrown SqlException will not contain an error number on Mac OSX (i.e. SqlException.Number is always 0). I specifically noticed this with SqlException error code 53 ""A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections."" On Windows for the above scenario, the SqlException that I catch has a Number property value of 53. On OSX, it is 0. Edit: This also appears to be an issue on Linux " +12483 area-System.Xml Lots of XML tests are not being run in CI You can see in the log at http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug/30/consoleText , for example, that even though XML tests like System.Xml.RW.XmlSystemPathResolver.Tests get compiled, they never get executed. At least one bug I'm aware of is not getting flagged as a result. cc: @sepidehMS +12484 area-System.Reflection Remove hand-rolled equality tests - System.Reflection.Metadata Removes custom equality (and some exception) tests in favor of xunit Asserts. Also noticed data for a couple of tests could be extracted to Theories, so did that in passing. +12487 area-System.Net System.Net.WebSockets.Client - remove race condition from ReceiveAsync cancellation test. +12490 area-System.Runtime Workaround lack of Uri support for Unix paths in System.Private.Xml "`new Uri(filePath)` currently works on Windows and fails on Unix; there are special code paths that guess whether the specified url is a file path and automatically prepend a ""file://"" scheme if it is, but the logic is based on Windows paths. On Unix, it ends up throwing a UriFormatException. A bunch of the Xml types end up hitting this code path when provided with a string uri, e.g. XmlReader.Create(string), which causes failures when file paths are provided on Unix, and creating readers and such for file paths is very common. This commit works around the issue by adding an explicit file scheme rather than leaving it up to the Uri implementation to determine that it's a file path. Note that there are tests which would have caught this, but they're not getting run: https://github.com/dotnet/corefx/issues/12483 Issue for Uris on Unix: https://github.com/dotnet/corefx/issues/1745 cc: @sepidehMS, @krwq, @davidsh, @cipop " +12492 area-System.Runtime Improvements in the System.Random methods "When relying on the `System.Random` methods, I usually expect to get unique numbers; or might prefer to only account for specific values within the input range (e.g., all the numbers from 0 to 1000 except 5, 10 and 200). That's why I am used to complement my calls to these methods with a code like this one: ``` C# private static int GetRandom(int min, int max, int[] toIgnore) { Random rand = new Random(); int outVal = min; while (true) { int number = rand.Next(min, max); if (!toIgnore.Contains(number)) { outVal = number; break; } } return outVal; } ``` This code can become a bit more complex under certain conditions to avoid too-slow/infinite loops, but it is a quite simple implementation anyway. Can I write a code like the aforementioned one every time I need `System.Random` to ignore certain numbers? Sure. Is such an eventuality part of the most common requirements associated with using random numbers (and, consequently, should these methods account for it)? I think so. I am also proposing to add new overloads for other commonly-used numeric types (i.e., `long` and `decimal`). Below these lines, you can find all the API calls associated with my proposal together with the existing ones. ``` C# public class Random { //---- Existing public int Next() { } public int Next(int maxValue) { } public int Next(int minValue, int maxValue) { } public double NextDouble() { } public void NextBytes(byte[] buffer) { } //---- New public int Next(int[] ignoredValues) { } public int Next(int maxValue, int[] ignoredValues) { } public int Next(int minValue, int maxValue, int[] ignoredValues) { } public long NextInt64() { } public long NextInt64(long[] ignoredValues) { } public long NextInt64(long maxValue) { } public long NextInt64(long maxValue, long[] ignoredValues) { } public long NextInt64(long minValue, long maxValue) { } public long NextInt64(long minValue, long maxValue, long[] ignoredValues) { } public double NextDouble(double[] ignoredValues) { } public decimal NextDecimal() { } public decimal NextDecimal(decimal[] ignoredValues) { } public void NextBytes(byte[] buffer, byte[] ignoredValues) { } } ``` In case of going ahead with these suggestions, I would like to take care of the implementation myself. Additionally and as discussed in some of my previous issues, I want to highlight my interest in minimising everyone's unnecessary efforts; for example, I wouldn't find any problem with a relatively quick ""sorry, but we aren't interested in this implementation for the time being"". " +12495 area-System.Runtime Expose new String.Split overloads in netcoreapp1.1 Fixes #1513 Also added a test to ensure `Split(null)` calls `Split(char[])` without any compiler ambiguity and some minor test cleanup to reflect that actual overloads that we ended up with. +12496 area-System.Reflection GetCurrentMethod replacement in .NetCore "I’m having trouble converting the call to GetCurrentMethod below to .NET Core compatible syntax. Can someone help? This is a static method in a static class. internal static IQueryable AsSQL( this IOrderedQueryable source, SqlQuerySpec querySpec) { if (querySpec == null) { throw new ArgumentNullException(""querySpec""); } if (string.IsNullOrEmpty(querySpec.QueryText)) { throw new ArgumentException(""querySpec.QueryText""); } return source.Provider.CreateQuery(Expression.Call(null, ((MethodInfo)MethodBase.GetCurrentMethod()).MakeGenericMethod( new Type[] { typeof(TSource), typeof(TResult) }), new Expression[] { source.Expression, Expression.Constant(querySpec) })); } " +12500 area-System.Linq Use flags pattern to control typecasting of Count() `IIListProvider` is supposed to represent an iterator that has optimized `ToArray()` / `ToList()` / `Count()` paths. However, not all implementations of `IIListProvider` can optimize for all 3 of those methods. For example: - [ConcatNEnumerableIterator.ToArray](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Concat.cs#L443) cannot be optimized since we need to determine the right amount to allocate in advance, but `ToList` can. - In my recent PR #12042 `Count` cannot be optimized for `Cast` since we might miss throwing an exception for an invalid cast, but `ToArray` / `ToList` can. - Another example is [SelectEnumerableIterator](https://github.com/dotnet/corefx/pull/11841/files#diff-0e401ce4761b21f560293373a0a40781R150) where we can't optimize for `ToArray` or `ToList` but can for `Count`. For providers where we can't optimize for a particular method, we just want to return `this.ToArray()` or `this.Count()`, etc. However, this leads to a stack overflow because `Enumerable.ToArray()` checks for `IIListProvider` again and calls `IIListProvider.ToArray()`. Our solution for this thus far has been to introduce separate methods, one that checks for IIListProvider and one that doesn't. For example, places where `ToArray` can't be optimized call `EnumerableHelpers.ToArray(this)`, and places where `ToList` can't be call `new List(this)`. Same for [Buffer](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Buffer.cs#L16). ## What this PR is My idea was that instead of having 2 versions of the same thing, one that does/doesn't check for a particular type, we could simply pass in flags to the method to tell it which types to cast to. The publicly exposed method (in this case `Count(IEnumerable)`) is just a wrapper around this method, telling it to try casting to all of the types. `IIListProviders` that cannot optimize their `Count` simply call ``` cs this.Count(Check.All & ~Check.IIListProvider); ``` to make `Count` not check for IIListProviders. Another neat side-effect of using this pattern is that we can fine-tune perf in cases where we call `Count()` but we know the enumerable is not of a certain type (pass in `Check.All & ~Check.ThatType`) or is one of two types (`Check.Type1 | Check.Type2`). This PR does that in a couple of files. cc @stephentoub, @VSadov, do you think this is a good change? +12501 area-Infrastructure Build error in SUSE 11 SP3 "When i try to build in `Linux sles11-sp3 3.0.101-0.15-default #1 SMP Wed Jan 22 15:49:03 UTC 2014 (5c01f4e) x86_64 x86_64 x86_64 GNU/Linux` corefx gives below error `corefx/src/Native/Unix/System.Native/pal_io.cpp:135:37: error: use of undeclared identifier 'IN_EXCL_UNLINK'; did you mean 'PAL_IN_EXCL_UNLINK'? static_assert(PAL_IN_EXCL_UNLINK == IN_EXCL_UNLINK, """"); ^~~~~~ PAL_IN_EXCL_UNLINK corefx/src/Native/Unix/System.Native/pal_io.h:281:5: note: 'PAL_IN_EXCL_UNLINK' declared here PAL_IN_EXCL_UNLINK = 0x04000000,` " +12503 area-Infrastructure Unhandled Exception: System.IO.IOException: Too many open files Opening an issue here as requested from https://github.com/xunit/xunit/issues/874. Running `dotnet test` I got this error: ``` Unhandled Exception: System.IO.IOException: Too many open files at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(Func`1 fdFunc) at System.ConsolePal.OpenStandardOutput() at System.Console.<>c.b__25_0() at System.Console.EnsureInitialized[T](T& field, Func`1 initializer) at System.Console.get_Out() at System.Console.WriteLine(String value) at Xunit.Runner.DotNet.Program.Run(String[] args) at Xunit.Runner.DotNet.Program.Main(String[] args) ``` ``` Process: dotnet [7614] Path: /usr/local/share/dotnet/dotnet Identifier: dotnet Version: 0 Code Type: X86-64 (Native) Parent Process: dotnet [7612] Responsible: Terminal [676] User ID: 501 Date/Time: 2016-10-10 15:07:09.483 +0200 OS Version: Mac OS X 10.11.6 (15G31) Report Version: 11 Anonymous UUID: D7DB2A26-67A2-7857-FF60-65417931E264 Sleep/Wake UUID: 45CD2973-5BAF-411B-8D76-1D0EF8EC38E1 Time Awake Since Boot: 12000 seconds Time Since Wake: 6700 seconds System Integrity Protection: enabled Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Application Specific Information: abort() called Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libsystem_kernel.dylib 0x00007fff8f0cef06 __pthread_kill + 10 1 libsystem_pthread.dylib 0x00007fff92f744ec pthread_kill + 90 2 libsystem_c.dylib 0x00007fff8c65e6df abort + 129 3 libcoreclr.dylib 0x00000001085340a2 0x1084ec000 + 295074 4 libcoreclr.dylib 0x0000000108874831 0x1084ec000 + 3704881 5 libcoreclr.dylib 0x0000000108874962 0x1084ec000 + 3705186 6 libcoreclr.dylib 0x00000001087dfd1e 0x1084ec000 + 3095838 7 ??? 0x000000010f7c2577 0 + 4554761591 8 ??? 0x000000010f7c271e 0 + 4554762014 9 ??? 0x000000010f7c2e16 0 + 4554763798 10 ??? 0x000000010f7c51f9 0 + 4554772985 11 ??? 0x000000010f7cbd8b 0 + 4554800523 12 ??? 0x000000010f7c2f31 0 + 4554764081 13 ??? 0x000000010f7c354c 0 + 4554765644 14 ??? 0x000000010f7c47d1 0 + 4554770385 15 ??? 0x000000010f36bda0 0 + 4550213024 16 ??? 0x000000010f365ee3 0 + 4550188771 17 libcoreclr.dylib 0x00000001088816a1 0x1084ec000 + 3757729 18 libcoreclr.dylib 0x0000000108772f53 0x1084ec000 + 2649939 19 libcoreclr.dylib 0x00000001085ccbca 0x1084ec000 + 920522 20 libcoreclr.dylib 0x00000001085ccd8d 0x1084ec000 + 920973 21 libcoreclr.dylib 0x000000010860979a 0x1084ec000 + 1169306 22 libcoreclr.dylib 0x000000010853d103 0x1084ec000 + 332035 23 libhostpolicy.dylib 0x0000000108477228 coreclr::execute_assembly(void*, unsigned int, int, char const**, char const*, unsigned int*) + 152 24 libhostpolicy.dylib 0x0000000108465e15 run(arguments_t const&) + 18325 25 libhostpolicy.dylib 0x000000010846679d corehost_main + 1405 26 libhostfxr.dylib 0x00000001083b272e execute_app(std::__1::basic_string, std::__1::allocator > const&, corehost_init_t*, int, char const**) + 446 27 libhostfxr.dylib 0x00000001083c83b9 fx_muxer_t::read_config_and_execute(std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, std::__1::unordered_map, std::__1::allocator >, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > >, std::__1::hash, std::__1::allocator > >, std::__1::equal_to, std::__1::allocator > >, std::__1::allocator, std::__1::allocator > const, std::__1::vector, std::__1::allocator >, std::__1::allocator, std::__1::allocator > > > > > > const&, int, char const**, host_mode_t) + 8441 28 libhostfxr.dylib 0x00000001083c61f2 fx_muxer_t::parse_args_and_execute(std::__1::basic_string, std::__1::allocator > const&, std::__1::basic_string, std::__1::allocator > const&, int, int, char const**, bool, host_mode_t, bool*) + 8386 29 libhostfxr.dylib 0x00000001083c8eb1 fx_muxer_t::execute(int, char const**) + 2337 30 libhostfxr.dylib 0x00000001083b27a5 hostfxr_main + 53 31 dotnet 0x00000001080e97ac run(int, char const**) + 1420 32 dotnet 0x00000001080e98ee main + 158 33 libdyld.dylib 0x00007fff9b3e65ad start + 1 Thread 1: 0 libsystem_kernel.dylib 0x00007fff8f0c8f72 mach_msg_trap + 10 1 libsystem_kernel.dylib 0x00007fff8f0c83b3 mach_msg + 55 2 libcoreclr.dylib 0x000000010853a22a 0x1084ec000 + 320042 3 libcoreclr.dylib 0x0000000108539149 0x1084ec000 + 315721 4 libsystem_pthread.dylib 0x00007fff92f7199d _pthread_body + 131 5 libsystem_pthread.dylib 0x00007fff92f7191a _pthread_start + 168 6 libsystem_pthread.dylib 0x00007fff92f6f351 thread_start + 13 Thread 2: 0 libsystem_kernel.dylib 0x00007fff8f0d02a2 poll + 10 1 libcoreclr.dylib 0x000000010852c85e 0x1084ec000 + 264286 2 libcoreclr.dylib 0x000000010852e489 0x1084ec000 + 271497 3 libcoreclr.dylib 0x0000000108536c08 0x1084ec000 + 306184 4 libsystem_pthread.dylib 0x00007fff92f7199d _pthread_body + 131 5 libsystem_pthread.dylib 0x00007fff92f7191a _pthread_start + 168 6 libsystem_pthread.dylib 0x00007fff92f6f351 thread_start + 13 Thread 3: 0 libsystem_kernel.dylib 0x00007fff8f0cec02 __open + 10 1 libcoreclr.dylib 0x00000001085a982f 0x1084ec000 + 776239 2 libcoreclr.dylib 0x00000001085a15e1 0x1084ec000 + 742881 3 libcoreclr.dylib 0x00000001085a0219 0x1084ec000 + 737817 4 libcoreclr.dylib 0x0000000108536c08 0x1084ec000 + 306184 5 libsystem_pthread.dylib 0x00007fff92f7199d _pthread_body + 131 6 libsystem_pthread.dylib 0x00007fff92f7191a _pthread_start + 168 7 libsystem_pthread.dylib 0x00007fff92f6f351 thread_start + 13 Thread 4: 0 libsystem_kernel.dylib 0x00007fff8f0cedb6 __psynch_cvwait + 10 1 libsystem_pthread.dylib 0x00007fff92f72728 _pthread_cond_wait + 767 2 libcoreclr.dylib 0x000000010852c502 0x1084ec000 + 263426 3 libcoreclr.dylib 0x000000010852c156 0x1084ec000 + 262486 4 libcoreclr.dylib 0x0000000108531148 0x1084ec000 + 282952 5 libcoreclr.dylib 0x000000010859e9a3 0x1084ec000 + 731555 6 libcoreclr.dylib 0x000000010859e657 0x1084ec000 + 730711 7 libcoreclr.dylib 0x000000010859e304 0x1084ec000 + 729860 8 libcoreclr.dylib 0x0000000108536c08 0x1084ec000 + 306184 9 libsystem_pthread.dylib 0x00007fff92f7199d _pthread_body + 131 10 libsystem_pthread.dylib 0x00007fff92f7191a _pthread_start + 168 11 libsystem_pthread.dylib 0x00007fff92f6f351 thread_start + 13 Thread 5: 0 libsystem_kernel.dylib 0x00007fff8f0cedb6 __psynch_cvwait + 10 1 libsystem_pthread.dylib 0x00007fff92f72728 _pthread_cond_wait + 767 2 libcoreclr.dylib 0x000000010852c4e5 0x1084ec000 + 263397 3 libcoreclr.dylib 0x000000010852c156 0x1084ec000 + 262486 4 libcoreclr.dylib 0x0000000108531148 0x1084ec000 + 282952 5 libcoreclr.dylib 0x0000000108531396 0x1084ec000 + 283542 6 libcoreclr.dylib 0x000000010885d270 0x1084ec000 + 3609200 7 libcoreclr.dylib 0x00000001087b756f 0x1084ec000 + 2930031 8 libcoreclr.dylib 0x00000001087b76e3 0x1084ec000 + 2930403 9 libcoreclr.dylib 0x000000010873403a 0x1084ec000 + 2392122 10 libcoreclr.dylib 0x0000000108734739 0x1084ec000 + 2393913 11 libcoreclr.dylib 0x00000001087b7acc 0x1084ec000 + 2931404 12 libcoreclr.dylib 0x0000000108536c08 0x1084ec000 + 306184 13 libsystem_pthread.dylib 0x00007fff92f7199d _pthread_body + 131 14 libsystem_pthread.dylib 0x00007fff92f7191a _pthread_start + 168 15 libsystem_pthread.dylib 0x00007fff92f6f351 thread_start + 13 Thread 6: 0 libsystem_kernel.dylib 0x00007fff8f0c8f72 mach_msg_trap + 10 1 libsystem_kernel.dylib 0x00007fff8f0c83b3 mach_msg + 55 2 libclrjit.dylib 0x000000010913b03a 0x108f8b000 + 1769530 3 libclrjit.dylib 0x0000000109139f59 0x108f8b000 + 1765209 4 libsystem_pthread.dylib 0x00007fff92f7199d _pthread_body + 131 5 libsystem_pthread.dylib 0x00007fff92f7191a _pthread_start + 168 6 libsystem_pthread.dylib 0x00007fff92f6f351 thread_start + 13 Thread 0 crashed with X86 Thread State (64-bit): rax: 0x0000000000000000 rbx: 0x0000000000000006 rcx: 0x00007fff57b1a568 rdx: 0x0000000000000000 rdi: 0x000000000000050f rsi: 0x0000000000000006 rbp: 0x00007fff57b1a590 rsp: 0x00007fff57b1a568 r8: 0x00000000fffffffc r9: 0x00007fcd4482e4f8 r10: 0x0000000008000000 r11: 0x0000000000000206 r12: 0x00007fff57b1abe0 r13: 0x00007fff57b21490 r14: 0x00007fff79027000 r15: 0x0000000000000000 rip: 0x00007fff8f0cef06 rfl: 0x0000000000000206 cr2: 0x00007fff78140008 Logical CPU: 0 Error Code: 0x02000148 Trap Number: 133 Binary Images: 0x1080de000 - 0x1080faff3 +dotnet (0) <3D909F9D-70EC-3599-8378-D1E3D3F3C4C2> /usr/local/share/dotnet/dotnet 0x108337000 - 0x1083d8fff +libhostfxr.dylib (0) /usr/local/share/dotnet/host/fxr/1.0.1/libhostfxr.dylib 0x108402000 - 0x1084bbff3 +libhostpolicy.dylib (0) /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libhostpolicy.dylib 0x1084ec000 - 0x1089fbff7 +libcoreclr.dylib (0) /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.dylib 0x108f8b000 - 0x10917eff7 +libclrjit.dylib (0) <574A96F6-89DD-32B0-906D-0D5CBC7FFAFF> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libclrjit.dylib 0x1091eb000 - 0x1091f3fff +System.Globalization.Native.dylib (0) <1F64EDEA-0132-388F-83AE-4EFE18703D8C> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/System.Globalization.Native.dylib 0x10ac8e000 - 0x10ac96fff +System.Native.dylib (0) /usr/local/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/System.Native.dylib 0x7fff6a140000 - 0x7fff6a177a47 dyld (360.22) /usr/lib/dyld 0x7fff86c4b000 - 0x7fff86c65ff3 liblzma.5.dylib (10) /usr/lib/liblzma.5.dylib 0x7fff86c8f000 - 0x7fff86c92fff libsystem_sandbox.dylib (460.60.2) <2A68B39C-B786-3A05-87A2-56E688469FB8> /usr/lib/system/libsystem_sandbox.dylib 0x7fff86cfd000 - 0x7fff86d50ff7 libc++.1.dylib (120.1) <8FC3D139-8055-3498-9AC5-6467CB7F4D14> /usr/lib/libc++.1.dylib 0x7fff86d84000 - 0x7fff86d84fff com.apple.Accelerate.vecLib (3.10 - vecLib 3.10) <054DFE32-737D-3211-9A14-0FC5E1A880E3> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib 0x7fff86d85000 - 0x7fff86d94ffb com.apple.LangAnalysis (1.7.0 - 1.7.0) <18D21123-A3E7-3851-974A-08E5D4540475> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis 0x7fff86d95000 - 0x7fff86ddbff7 libauto.dylib (186) <999E610F-41FC-32A3-ADCA-5EC049B65DFB> /usr/lib/libauto.dylib 0x7fff86f8b000 - 0x7fff86fbcfff com.apple.GSS (4.0 - 2.0) /System/Library/Frameworks/GSS.framework/Versions/A/GSS 0x7fff86fd6000 - 0x7fff8719cff7 com.apple.ImageIO.framework (3.3.0 - 1459) <228306DC-0C7F-3D69-92FA-B2E46E47AA9F> /System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO 0x7fff8719d000 - 0x7fff8719efff liblangid.dylib (122) <9CC4F0D1-5C51-3B69-BC8F-EE3A51FD0822> /usr/lib/liblangid.dylib 0x7fff8719f000 - 0x7fff871aafff libkxld.dylib (3248.60.10) <991CDFE9-AB87-321B-A4B2-5EFE64DDCF74> /usr/lib/system/libkxld.dylib 0x7fff879ef000 - 0x7fff87adeff7 libxml2.2.dylib (29.10) /usr/lib/libxml2.2.dylib 0x7fff87b2e000 - 0x7fff87b3cff7 libbz2.1.0.dylib (38) <28E54258-C0FE-38D4-AB76-1734CACCB344> /usr/lib/libbz2.1.0.dylib 0x7fff87b3d000 - 0x7fff87e9ff3f libobjc.A.dylib (680) <7489D2D6-1EFD-3414-B18D-2AECCCC90286> /usr/lib/libobjc.A.dylib 0x7fff87ea0000 - 0x7fff87ea5ff7 libheimdal-asn1.dylib (453.40.10) <981DE40B-FA16-36F7-BE92-8C8A115D6CD9> /usr/lib/libheimdal-asn1.dylib 0x7fff88443000 - 0x7fff8848ffff com.apple.print.framework.PrintCore (11.2 - 472.2) <5AE8AA6B-CE09-397D-B0D4-0F9CCBF1F77D> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore 0x7fff88491000 - 0x7fff88491ff7 liblaunch.dylib (765.50.8) <834ED605-5114-3641-AA4D-ECF31B801C50> /usr/lib/system/liblaunch.dylib 0x7fff886df000 - 0x7fff886fbff7 libsystem_malloc.dylib (67.40.1) <5748E8B2-F81C-34C6-8B13-456213127678> /usr/lib/system/libsystem_malloc.dylib 0x7fff886fc000 - 0x7fff8875afff com.apple.SystemConfiguration (1.14 - 1.14) /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration 0x7fff88e52000 - 0x7fff88e52fff com.apple.Accelerate (1.10 - Accelerate 1.10) <185EC96A-5AF0-3620-A4ED-4D3654D25B39> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate 0x7fff88e53000 - 0x7fff88e95ff7 com.apple.Metal (56.6 - 56.6) <30518711-8D00-3759-AA19-800D3C88E693> /System/Library/Frameworks/Metal.framework/Versions/A/Metal 0x7fff89106000 - 0x7fff8916cff7 libsystem_network.dylib (583.50.1) /usr/lib/system/libsystem_network.dylib 0x7fff8916d000 - 0x7fff89175fff com.apple.CoreServices.FSEvents (1223.10.1 - 1223.10.1) <7F5B7A23-BC1D-3FA9-A9B8-D534F1E1979A> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents 0x7fff89236000 - 0x7fff8923efff libcopyfile.dylib (127) /usr/lib/system/libcopyfile.dylib 0x7fff8924b000 - 0x7fff89254ff3 libsystem_notify.dylib (150.40.1) /usr/lib/system/libsystem_notify.dylib 0x7fff8952a000 - 0x7fff89554ff7 libc++abi.dylib (307.2) <922EFB36-0E9E-315B-8270-E81AC43472C0> /usr/lib/libc++abi.dylib 0x7fff89582000 - 0x7fff89593fff libcmph.dylib (6) /usr/lib/libcmph.dylib 0x7fff8959d000 - 0x7fff8959effb libremovefile.dylib (41) <552EF39E-14D7-363E-9059-4565AC2F894E> /usr/lib/system/libremovefile.dylib 0x7fff8959f000 - 0x7fff895c8ff7 libxpc.dylib (765.50.8) <54D1328E-054E-3DAA-89E2-375722F9D18F> /usr/lib/system/libxpc.dylib 0x7fff895df000 - 0x7fff895dffff com.apple.ApplicationServices (48 - 48) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices 0x7fff895e2000 - 0x7fff89656ff7 com.apple.Heimdal (4.0 - 2.0) <5D365381-8B5E-3259-8867-FC4A7D307BDE> /System/Library/PrivateFrameworks/Heimdal.framework/Versions/A/Heimdal 0x7fff89657000 - 0x7fff89674ff7 com.apple.AppleVPAFramework (2.1.2 - 2.1.2) <41378C0B-B56A-3A73-9BD0-E06FA1F87B8C> /System/Library/PrivateFrameworks/AppleVPA.framework/Versions/A/AppleVPA 0x7fff8981d000 - 0x7fff89872fff com.apple.AE (701 - 701) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE 0x7fff8ab33000 - 0x7fff8acd9ff7 com.apple.audio.toolbox.AudioToolbox (1.13 - 1.13) <370E95BC-956C-3962-86CC-0A14CF6A0389> /System/Library/Frameworks/AudioToolbox.framework/Versions/A/AudioToolbox 0x7fff8ae1b000 - 0x7fff8ae1dff7 libRadiance.dylib (1459) <43B09AB2-B747-3EA0-A0AF-9A33B3A449D2> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libRadiance.dylib 0x7fff8af14000 - 0x7fff8af1afff com.apple.IOAccelerator (205.11 - 205.11) /System/Library/PrivateFrameworks/IOAccelerator.framework/Versions/A/IOAccelerator 0x7fff8b2ec000 - 0x7fff8b31bffb libsystem_m.dylib (3105) <08E1A4B2-6448-3DFE-A58C-ACC7335BE7E4> /usr/lib/system/libsystem_m.dylib 0x7fff8b4ce000 - 0x7fff8b4e9ff7 libCRFSuite.dylib (34) <078B4CD8-6A8C-3067-B2BA-0C2A0BAB8AC3> /usr/lib/libCRFSuite.dylib 0x7fff8b4ea000 - 0x7fff8b504fff com.apple.Kerberos (3.0 - 1) <1B4744BF-E5AE-38E2-AA56-E22D3270F2E8> /System/Library/Frameworks/Kerberos.framework/Versions/A/Kerberos 0x7fff8b505000 - 0x7fff8b508ff7 libCoreFSCache.dylib (119.5) <2389D7DA-B8EF-3EB4-AAAF-FBEDE01CDECA> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib 0x7fff8b5f7000 - 0x7fff8b655fff com.apple.CoreServices.OSServices (728.13 - 728.13) <27C12B92-7845-38DD-B82D-DC5B678352D6> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices 0x7fff8b656000 - 0x7fff8b863fff libicucore.A.dylib (551.51.4) <3899B146-3840-3D4A-8C4A-FE391D5D25C7> /usr/lib/libicucore.A.dylib 0x7fff8c5fe000 - 0x7fff8c5ffffb libSystem.B.dylib (1226.10.1) /usr/lib/libSystem.B.dylib 0x7fff8c600000 - 0x7fff8c68dfef libsystem_c.dylib (1082.60.1) <28733D22-553E-3CBC-8D2C-EDCEB46E46AF> /usr/lib/system/libsystem_c.dylib 0x7fff8ca08000 - 0x7fff8ca19ff7 libsystem_trace.dylib (201.10.3) <1DD0C1FD-74E2-3949-9C2C-B81D19C2CA5E> /usr/lib/system/libsystem_trace.dylib 0x7fff8cc7c000 - 0x7fff8d0f2fff com.apple.CoreFoundation (6.9 - 1258.1) <943A1383-DA6A-3DC0-ABCD-D9AEB3D0D34D> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 0x7fff8d106000 - 0x7fff8d11cff7 libLinearAlgebra.dylib (1162.2) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib 0x7fff8d21b000 - 0x7fff8d32afe7 libvDSP.dylib (563.5) <9AB6CA3C-4F0E-35E6-9184-9DF86E7C3DAD> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib 0x7fff8e196000 - 0x7fff8e2bafff libsqlite3.dylib (216.4) <280D67B8-F93D-3587-A146-19F36C817548> /usr/lib/libsqlite3.dylib 0x7fff8e7fd000 - 0x7fff8eb51fff com.apple.Foundation (6.9 - 1259) <71A9D3A0-0B1F-3E3A-86F3-1486365A6EF2> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation 0x7fff8eb5b000 - 0x7fff8eb88fff libdispatch.dylib (501.40.12) /usr/lib/system/libdispatch.dylib 0x7fff8ec3f000 - 0x7fff8ec41ff7 libsystem_configuration.dylib (802.40.13) <3DEB7DF9-6804-37E1-BC83-0166882FF0FF> /usr/lib/system/libsystem_configuration.dylib 0x7fff8f0b8000 - 0x7fff8f0d6ff7 libsystem_kernel.dylib (3248.60.10) /usr/lib/system/libsystem_kernel.dylib 0x7fff8f33c000 - 0x7fff90587feb com.apple.CoreGraphics (1.600.0 - 960.3) <407FA367-204F-389E-8E33-0435E3B56D40> /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics 0x7fff9058e000 - 0x7fff90834ff7 com.apple.CoreData (120 - 641.3) /System/Library/Frameworks/CoreData.framework/Versions/A/CoreData 0x7fff908a9000 - 0x7fff908b1fef libsystem_platform.dylib (74.40.2) <29A905EF-6777-3C33-82B0-6C3A88C4BA15> /usr/lib/system/libsystem_platform.dylib 0x7fff90a7a000 - 0x7fff90a91ff7 libsystem_asl.dylib (323.50.1) <41F8E11F-1BD0-3F1D-BA3A-AA1577ED98A9> /usr/lib/system/libsystem_asl.dylib 0x7fff90bcf000 - 0x7fff90c3dff7 com.apple.ApplicationServices.ATS (377 - 394.4) <9779E916-0788-3CAC-B1EC-F68BCB12A2B6> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS 0x7fff90c74000 - 0x7fff90c79fff com.apple.DiskArbitration (2.7 - 2.7) /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration 0x7fff90c7a000 - 0x7fff90cbfff3 libFontRegistry.dylib (155.2) /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontRegistry.dylib 0x7fff90e08000 - 0x7fff90e0cfff libpam.2.dylib (20) /usr/lib/libpam.2.dylib 0x7fff90e1e000 - 0x7fff90e21fff com.apple.IOSurface (108.2.3 - 108.2.3) <52E51D16-42E9-3DDB-A16C-48225EF262C4> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface 0x7fff90f89000 - 0x7fff91210fff com.apple.CFNetwork (760.6.3 - 760.6.3) <8CB9CB2E-D0FB-31D4-A1AE-2A5FE028AD6B> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork 0x7fff9128d000 - 0x7fff91572ffb com.apple.CoreServices.CarbonCore (1136.2 - 1136.2) <2DBAFC9A-6CD6-351D-B1F4-87D81AA6D640> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore 0x7fff915b1000 - 0x7fff915b6ff3 libunwind.dylib (35.3) /usr/lib/system/libunwind.dylib 0x7fff9186f000 - 0x7fff9189affb libarchive.2.dylib (33.20.2) <6C370A21-63FD-3A68-B4B3-5333F24B770B> /usr/lib/libarchive.2.dylib 0x7fff91a77000 - 0x7fff91aa0fff libsystem_info.dylib (477.50.4) /usr/lib/system/libsystem_info.dylib 0x7fff91aa1000 - 0x7fff91aa9fff libGFXShared.dylib (12.1) <5A0C2493-200C-30BE-97D5-8E8C0B8E604D> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib 0x7fff91f1e000 - 0x7fff91f1ffff libsystem_blocks.dylib (65) <1244D9D5-F6AA-35BB-B307-86851C24B8E5> /usr/lib/system/libsystem_blocks.dylib 0x7fff92039000 - 0x7fff92039fff libOpenScriptingUtil.dylib (169.1) /usr/lib/libOpenScriptingUtil.dylib 0x7fff92379000 - 0x7fff9237efff com.apple.TCC (1.0 - 1) /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC 0x7fff925af000 - 0x7fff925b7fff libsystem_networkextension.dylib (385.40.36) <66095DC7-6539-38F2-95EE-458F15F6D014> /usr/lib/system/libsystem_networkextension.dylib 0x7fff92722000 - 0x7fff9274bff7 libxslt.1.dylib (14.4) <72CD1CA4-1FBD-3672-ADCE-A89AB741689A> /usr/lib/libxslt.1.dylib 0x7fff92a1a000 - 0x7fff92a36ff3 libresolv.9.dylib (60) /usr/lib/libresolv.9.dylib 0x7fff92a37000 - 0x7fff92a37ff7 libunc.dylib (29) /usr/lib/system/libunc.dylib 0x7fff92a6c000 - 0x7fff92ae3feb libcorecrypto.dylib (335.50.1) /usr/lib/system/libcorecrypto.dylib 0x7fff92ae4000 - 0x7fff92af4fff libbsm.0.dylib (34) <7E14504C-A8B0-3574-B6EB-5D5FABC72926> /usr/lib/libbsm.0.dylib 0x7fff92b5d000 - 0x7fff92bb9fff libTIFF.dylib (1459) <1E1839C3-2C99-38B8-A729-788459576858> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libTIFF.dylib 0x7fff92bbb000 - 0x7fff92bc6ff7 libChineseTokenizer.dylib (16) <79B8C67A-3061-3C78-92CD-4650719E68D4> /usr/lib/libChineseTokenizer.dylib 0x7fff92bd5000 - 0x7fff92f6afdb com.apple.vImage (8.0 - 8.0) <4BAC9B6F-7482-3580-8787-AB0A5B4D331B> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage 0x7fff92f6e000 - 0x7fff92f77ff7 libsystem_pthread.dylib (138.10.4) <3DD1EF4C-1D1B-3ABF-8CC6-B3B1CEEE9559> /usr/lib/system/libsystem_pthread.dylib 0x7fff92f8d000 - 0x7fff93023fff com.apple.ColorSync (4.9.0 - 4.9.0) <8FC37E20-6579-3CB2-9D49-BC39FC38DF87> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework/Versions/A/ColorSync 0x7fff93243000 - 0x7fff9324bffb libsystem_dnssd.dylib (625.60.4) <80189998-32B0-316C-B5C5-53857486713D> /usr/lib/system/libsystem_dnssd.dylib 0x7fff9392f000 - 0x7fff93bc5fff libmecabra.dylib (696.5) /usr/lib/libmecabra.dylib 0x7fff93c56000 - 0x7fff93c57fff libsystem_secinit.dylib (20) <32B1A8C6-DC84-3F4F-B8CE-9A52B47C3E6B> /usr/lib/system/libsystem_secinit.dylib 0x7fff93d54000 - 0x7fff93d5cfff com.apple.NetFS (6.0 - 4.0) <842A5346-24C3-3F22-9ECF-E586A10EA1F2> /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS 0x7fff93d5d000 - 0x7fff93d67fff com.apple.NetAuth (6.0 - 6.0) /System/Library/PrivateFrameworks/NetAuth.framework/Versions/A/NetAuth 0x7fff93dcc000 - 0x7fff93de5fff com.apple.CFOpenDirectory (10.11 - 194) <11F95672-55E0-3F9D-9171-5E8C56AEE948> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory 0x7fff93e62000 - 0x7fff93f8fff3 com.apple.CoreText (352.0 - 494.12) /System/Library/Frameworks/CoreText.framework/Versions/A/CoreText 0x7fff93f90000 - 0x7fff94080ff7 libJP2.dylib (1459) <5212E346-B7FC-31F4-B4F7-CF1DD9BBAFBB> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJP2.dylib 0x7fff95266000 - 0x7fff952dbfff com.apple.framework.IOKit (2.0.2 - 1179.50.2) /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit 0x7fff953d1000 - 0x7fff953e2fff libSparseBLAS.dylib (1162.2) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib 0x7fff96436000 - 0x7fff964ddfff com.apple.LanguageModeling (1.0 - 1) <58C18A47-BDE7-3CBE-81C0-797029D170A1> /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling 0x7fff96db0000 - 0x7fff96db2fff com.apple.loginsupport (1.0 - 1) <9B2F5F9B-ED38-313F-B798-D2B667BCD6B5> /System/Library/PrivateFrameworks/login.framework/Versions/A/Frameworks/loginsupport.framework/Versions/A/loginsupport 0x7fff96e36000 - 0x7fff96e4dff7 libsystem_coretls.dylib (83.40.5) /usr/lib/system/libsystem_coretls.dylib 0x7fff96f9f000 - 0x7fff96fbbff7 libextension.dylib (78) /usr/lib/libextension.dylib 0x7fff97036000 - 0x7fff970aaff3 com.apple.securityfoundation (6.0 - 55126) /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation 0x7fff970bb000 - 0x7fff970c7fff com.apple.speech.synthesis.framework (5.4.12 - 5.4.12) <71DA00B8-5EA2-326B-8814-59DB25512F65> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis 0x7fff973f9000 - 0x7fff973f9fff libenergytrace.dylib (10.40.1) <0A491CA7-3451-3FD5-999A-58AB4362682B> /usr/lib/libenergytrace.dylib 0x7fff974d1000 - 0x7fff974d5fff libGIF.dylib (1459) <7C84B660-04BC-3D05-8C02-A7FBE51FD77B> /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libGIF.dylib 0x7fff974db000 - 0x7fff974e9fff com.apple.opengl (12.1.0 - 12.1.0) <0718DB60-BA4F-3CF7-A117-10A2515D931F> /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL 0x7fff97562000 - 0x7fff975efdd7 com.apple.AppleJPEG (1.0 - 1) /System/Library/PrivateFrameworks/AppleJPEG.framework/Versions/A/AppleJPEG 0x7fff9764c000 - 0x7fff9769dff7 libcups.2.dylib (435.2) <91584A40-214D-33E8-A613-CE22289037C8> /usr/lib/libcups.2.dylib 0x7fff9769e000 - 0x7fff9773efff com.apple.Metadata (10.7.0 - 972.34) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata 0x7fff9773f000 - 0x7fff97756fff libmarisa.dylib (4) /usr/lib/libmarisa.dylib 0x7fff97757000 - 0x7fff97757ff7 libkeymgr.dylib (28) <8371CE54-5FDD-3CE9-B3DF-E98C761B6FE0> /usr/lib/system/libkeymgr.dylib 0x7fff98065000 - 0x7fff98157ff7 libiconv.2.dylib (44) /usr/lib/libiconv.2.dylib 0x7fff9820a000 - 0x7fff9820bfff libDiagnosticMessagesClient.dylib (100) <4243B6B4-21E9-355B-9C5A-95A216233B96> /usr/lib/libDiagnosticMessagesClient.dylib 0x7fff98437000 - 0x7fff9847cff7 com.apple.coreservices.SharedFileList (24.4 - 24.5) <1D2AD77B-778F-3253-A295-3D0A32A8121C> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList 0x7fff997ed000 - 0x7fff997effff libCVMSPluginSupport.dylib (12.1) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib 0x7fff99ad4000 - 0x7fff99adbff7 libcompiler_rt.dylib (62) /usr/lib/system/libcompiler_rt.dylib 0x7fff99b08000 - 0x7fff99bb8fe7 libvMisc.dylib (563.5) <6D73C20D-D1C4-3BA5-809B-4B597C15AA86> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib 0x7fff99c21000 - 0x7fff99c5bfff com.apple.QD (3.12 - 302) <0FE53180-2895-3D14-A1E7-F82DE1D106E1> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD 0x7fff99f29000 - 0x7fff9a090fff libBLAS.dylib (1162.2) /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib 0x7fff9a1b4000 - 0x7fff9a1bdff7 com.apple.CommonAuth (4.0 - 2.0) <4B8673E1-3697-3FE2-8D30-AC7AC5D4F8BF> /System/Library/PrivateFrameworks/CommonAuth.framework/Versions/A/CommonAuth 0x7fff9a3a2000 - 0x7fff9a3e0ff7 libGLImage.dylib (12.1) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib 0x7fff9a789000 - 0x7fff9a7adfff libJPEG.dylib (1459) /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libJPEG.dylib 0x7fff9ab05000 - 0x7fff9ab13fff libxar.1.dylib (302) <03207F66-2C4A-3DBD-8D81-70F4C85903C4> /usr/lib/libxar.1.dylib 0x7fff9b373000 - 0x7fff9b3e2fff com.apple.SearchKit (1.4.0 - 1.4.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit 0x7fff9b3e3000 - 0x7fff9b3e6ffb libdyld.dylib (360.22) <1F9FCF2C-5E94-3F2D-B4A5-1238587AA5C6> /usr/lib/system/libdyld.dylib 0x7fff9b3e7000 - 0x7fff9b7e3fff libLAPACK.dylib (1162.2) <987E42B0-5108-3065-87F0-9DF7616A8A06> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib 0x7fff9b7e4000 - 0x7fff9b809ff7 libPng.dylib (1459) /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib 0x7fff9b80a000 - 0x7fff9b815fff libGL.dylib (12.1) <70D51643-04AC-3400-8F11-A6FC25985289> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib 0x7fff9ba35000 - 0x7fff9bccfff3 com.apple.security (7.0 - 57337.60.2) /System/Library/Frameworks/Security.framework/Versions/A/Security 0x7fff9c2b3000 - 0x7fff9c2b3fff libmetal_timestamp.dylib (600.0.44.2) /System/Library/PrivateFrameworks/GPUCompiler.framework/libmetal_timestamp.dylib 0x7fff9c2b4000 - 0x7fff9c305fff com.apple.audio.CoreAudio (4.3.0 - 4.3.0) /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio 0x7fff9c30a000 - 0x7fff9c30cff7 com.apple.xpc.ServiceManagement (1.0 - 1) /System/Library/Frameworks/ServiceManagement.framework/Versions/A/ServiceManagement 0x7fff9c330000 - 0x7fff9c42cff7 libFontParser.dylib (158.6) <267A9AE4-4138-3112-8D73-BDFDC96568FF> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/Resources/libFontParser.dylib 0x7fff9c433000 - 0x7fff9c436fff libCoreVMClient.dylib (119.5) <560D70FB-709F-3030-96C9-F249FCB7DA6D> /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib 0x7fff9c473000 - 0x7fff9c47fff7 com.apple.OpenDirectory (10.11 - 194) <31A67AD5-5CC2-350A-96D7-821DF4BC4196> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory 0x7fff9c530000 - 0x7fff9c532fff libsystem_coreservices.dylib (19.2) <1B3F5AFC-FFCD-3ECB-8B9A-5538366FB20D> /usr/lib/system/libsystem_coreservices.dylib 0x7fff9c6a0000 - 0x7fff9c6ecffb com.apple.HIServices (1.22 - 550) <6B76B41C-CF5A-34C4-89F4-EFD7CA3D1C9D> /System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices 0x7fff9c73a000 - 0x7fff9c74bff7 libz.1.dylib (61.20.1) /usr/lib/libz.1.dylib 0x7fff9c80f000 - 0x7fff9c81aff7 libcommonCrypto.dylib (60075.50.1) <93732261-34B4-3914-B7A2-90A81A182DBA> /usr/lib/system/libcommonCrypto.dylib 0x7fff9cfe5000 - 0x7fff9d009fff com.apple.MultitouchSupport.framework (304.12 - 304.12) <65CB7653-EACD-3ADB-ABB6-2E0671708301> /System/Library/PrivateFrameworks/MultitouchSupport.framework/Versions/A/MultitouchSupport 0x7fff9d00a000 - 0x7fff9d039ff7 com.apple.DictionaryServices (1.2 - 250.3) <30250542-CBAA-39C1-91AA-B57A5DE17594> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices 0x7fff9d03a000 - 0x7fff9d07bff7 libGLU.dylib (12.1) /System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib 0x7fff9d115000 - 0x7fff9d119fff libcache.dylib (75) <9548AAE9-2AB7-3525-9ECE-A2A7C4688447> /usr/lib/system/libcache.dylib 0x7fff9d124000 - 0x7fff9d158ff7 com.apple.CoreVideo (1.8 - 191.3) <1AA24A1B-CB84-3F6B-B6DE-11494542649C> /System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo 0x7fff9d1c5000 - 0x7fff9d1c7ff7 libquarantine.dylib (80) <0F4169F0-0C84-3A25-B3AE-E47B3586D908> /usr/lib/system/libquarantine.dylib 0x7fff9d1c8000 - 0x7fff9d1e0fef libcompression.dylib (28) /usr/lib/libcompression.dylib 0x7fff9d1f7000 - 0x7fff9d1f7fff com.apple.CoreServices (728.13 - 728.13) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices 0x7fff9d1f8000 - 0x7fff9d31ffff com.apple.LaunchServices (728.13 - 728.13) /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices 0x7fff9d398000 - 0x7fff9d39dff7 libmacho.dylib (875.1) <318264FA-58F1-39D8-8285-1F6254EE410E> /usr/lib/system/libmacho.dylib External Modification Summary: Calls made by other processes targeting this process: task_for_pid: 0 thread_create: 0 thread_set_state: 0 Calls made by this process: task_for_pid: 0 thread_create: 0 thread_set_state: 0 Calls made by all processes on this machine: task_for_pid: 5719 thread_create: 0 thread_set_state: 0 VM Region Summary: ReadOnly portion of Libraries: Total=183.4M resident=0K(0%) swapped_out_or_unallocated=183.4M(100%) Writable regions: Total=83.9M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=83.9M(100%) VIRTUAL REGION REGION TYPE SIZE COUNT (non-coalesced) =========== ======= ======= Activity Tracing 2048K 2 Kernel Alloc Once 4K 2 MALLOC 30.1M 16 MALLOC guard page 32K 7 MALLOC_LARGE (reserved) 1168K 3 reserved VM address space (unallocated) STACK GUARD 56.0M 8 Stack 11.0M 8 VM_ALLOCATE 2.2G 1270 VM_ALLOCATE (reserved) 144K 3 reserved VM address space (unallocated) __DATA 8676K 150 __LINKEDIT 91.9M 10 __TEXT 91.4M 156 __UNICODE 552K 2 mapped file 76.6M 295 shared memory 8K 3 =========== ======= ======= TOTAL 2.6G 1920 TOTAL, minus reserved VM space 2.6G 1920 Model: MacBookPro11,5, BootROM MBP114.0172.B09, 4 processors, Intel Core i7, 2,5 GHz, 16 GB, SMC 2.30f2 Graphics: AMD Radeon R9 M370X, AMD Radeon R9 M370X, PCIe, 2048 MB Graphics: Intel Iris Pro, Intel Iris Pro, Built-In Memory Module: BANK 0/DIMM0, 8 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54343147533642465238412D50422020 Memory Module: BANK 1/DIMM0, 8 GB, DDR3, 1600 MHz, 0x80AD, 0x484D54343147533642465238412D50422020 AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x152), Broadcom BCM43xx 1.0 (7.21.95.175.1a6) Bluetooth: Version 4.4.6f1 17910, 3 services, 27 devices, 1 incoming serial ports Network Service: Wi-Fi, AirPort, en0 Serial ATA Device: APPLE SSD SM0512G, 500,28 GB USB Device: USB 3.0 Bus USB Device: Apple Internal Keyboard / Trackpad USB Device: Bluetooth USB Host Controller Thunderbolt Bus: MacBook Pro, Apple Inc., 27.1 ``` +12504 area-Infrastructure Update CoreClr, CoreFx, ProjectNTfs to beta-24611-01, beta-24611-02, beta-24607-00, respectively (master) /cc @dotnet/corefx-contrib +12505 area-Meta Merge Future branch into Master New APIs were added in the Future branch a while ago. It'd be nice if the changes were merged into Master so we could make the new APIs available in netcoreapp1.1. https://github.com/dotnet/corefx/compare/future Some examples: - #1384 - Regex group should have a Name property - #1783 - Add ConcurrentDictionary GetOrAdd/AddOrUpdate overloads with generic arg - #1756 - Implement generic interfaces on Regex collections - #2436 - Add async XLinq document/element loading and saving - #2862 - Add HashSet ctors with capacity +12506 area-System.Linq Reduce generic exception code bloat in System.Linq Currently System.Linq uses this pattern to handle invalid arguments: ``` cs if (source == null) { throw Error.ArgumentNull(nameof(source)); } ``` Where `ArgumentNull` gets inlined. This introduces significant jitted code bloat since the Linq methods are generic, so this code (which very rarely gets hit) is generated over and over again for different value types. We should convert all of this to the form ``` cs if (source == null) { Error.ThrowSourceArgumentNull(); // or ThrowArgumentNullSource } ``` As of dotnet/coreclr#6103 methods that are known to throw are not inlined, so this should help decrease code size. cc @benaadams +12507 area-System.IO Override BufferedStream.CopyToAsync to delegate to source stream PR https://github.com/dotnet/corefx/pull/12006 added an override of BufferedStream.CopyToAsync, but it doesn't compile because it pulls in a helper file that references types from System.Buffers.dll, which System.IO.dll doesn't currently reference. While that may change in the future, this PR fixes that by cherry-picking the initial commit and then adding a commit that splits the helper file into two, one that does the argument validation needed by this change and one that uses ArrayPool. I've also added a commit with additional tests for the CopyToAsync override. cc: @ianhays, @maddin2016 Fixes https://github.com/dotnet/corefx/issues/11572 +12508 area-System.Net Add netstandard1.7 build to Net.Primitives Update System.Net.Primitives to netstandard1.7. Retarget the src and ref to netstandard1.7. Make the tests cross-compile for netstandard1.7/netstandard1.3. I preserved a UWP build of the library (now UAP10.1) because there was a significant amount of source here that we wouldn't want to get stale by not building it. /cc @stephentoub @weshaggard @danmosemsft @tijoytom @ericeil +12509 area-System.Runtime Proposal: Adding a concise API for throwing exceptions "## Background Argument validation is done a lot in .NET code. So much, in fact, that people almost always find that writing `throw new ArgumentNullException(...)` et al. each time is too verbose, and end up writing their own helper classes to throw exceptions. Some random examples I picked from GitHub: [Octokit.NET](https://github.com/octokit/octokit.net/blob/master/Octokit/Helpers/Ensure.cs#L16), [xUnit](https://github.com/xunit/xunit/blob/master/src/common/Guard.cs#L11), [System.Collections.Immutable](https://github.com/dotnet/corefx/blob/master/src/System.Collections.Immutable/src/Validation/Requires.cs#L25). ## Proposal We should have an API in the BCL for this so people don't have to keep writing their own helper classes. Here's what an initial prototype could look like (similar to the S.C.I class I linked to above): ``` cs public static class Requires { public static void NotNull(T value, string paramName); // no T : class constraint to allow nullables // parameter names are same as ArgumentNullException, to allow easy conversion // for people using named parameters public static void NotNull(T value, string paramName, string message); public static void Range(bool condition, string paramName); public static void Range(bool condition, string paramName, string message); public static void Argument(bool condition, string message); // message comes first for ArgumentException public static void Argument(bool condition, string message, string paramName); } ``` How it would be used: ``` cs T Single(this IList list) { Requires.NotNull(list, nameof(list)); Requires.Argument(list.Count == 1, ""The input list needs to have only 1 item.""); return list[0]; } ``` ### Additional Notes In addition to providing a nice unified API, this may also lead to better performance / decreased memory consumption for .NET apps. Typically when people write their own helper APIs for this, they write it so that the `throw` is in the same clause as the check for the condition, i.e. ``` cs void NotNull(T value, string name) { if (value == null) { throw new ArgumentNullException(name); } } ``` or, alternatively, they have a method that returns an exception and throw that from the caller: ``` cs ArgumentNullException ArgumentNull(string name) { return new ArgumentNullException(name); } if (value == null) throw Error.ArgumentNull(nameof(value)); ``` Code snippet 1 is not likely to be inlined because of the `throw new ...`, while `ArgumentNull` in code snippet 2 does get inlined, resulting in generated code bloat for a `throw` path that will very rarely get called. If we wrote our own API for throwing exceptions, we could structure it so that the check gets inlined, but the throwing code doesn't: ``` cs void NotNull(T value, string name) { if (value == null) { ThrowArgumentNullException(name); } } void ThrowArgumentNullException(string name) => throw new ArgumentNullException(name); ``` Thoughts? cc @svick @benaadams @jkotas @GSPP @mellinoe @KrzysztofCwalina " +12510 area-System.Net Move HttpVersion to System.Net.Primitives HttpVersion is privately copied in `System.Net.Http` and `System.Net.Http.WinHttpHandler`. Moving it to lower-level contract will unify all these private copies. Note: Private copy in `Common` has two additional values in it. They are not in .NET 4.6 and Xamarin, so we can't add them in public netstandard2.0 contract. More details in: https://github.com/dotnet/corefx/pull/12347#discussion_r81843383 +12511 area-Infrastructure Update buildtools version "Update build tools version to latest from buildtools release/1.0.0 branch. Only changes contained are cherry-picked to work with this version of CoreFX as well as provide new ""V2"" Helix telemetry when jobs are started. @chcosta @Chrisboh , @sokket " +12512 area-System.Net Implement ContinueDelegate for System.Net.HttpRequest +12513 area-System.Net Replace custom date-parsing (HttpDateParse.cs) with DateTime.Parse Need to make sure DateTime.Parse handle all the cases HttpDateParse deal with .. https://github.com/dotnet/corefx/pull/12347/files/7fe03ad63fbe79d791228319e16e0f1910f4d06d#diff-93d09013382d2a05606b12516b65ea11 +12514 area-System.Runtime Move System.DBNull down to System.Runtime Addresses issue https://github.com/dotnet/corefx/issues/12292 Moved System.DBNull down to System.Runtime (uses coreclr implementation) and System.Data.Common typeforwards to System.Runtime. cc: @stephentoub @danmosemsft @weshaggard @joperezr +12515 area-System.Console "Add some ""manual"" System.Console tests" Today our test suite for System.Console is significantly lacking, due to our current inability to handle reading, verification of output to the terminal, etc. Until we are better at such things, this PR adds a manual test suite, that instructs the user to do something and to then verify specific visual results and behaviors. I'm submitting this as its own PR, but added it as part of validating a bug fix I'm submitting separately. cc: @ianhays +12516 area-System.Console Fix Console.CursorLeft/Top handling in WSL Console.get_CursorLeft/Top work by issuing a request to the terminal by writing out a known sequence to stdout. The terminal then provides a response on stdin, again in a known format: \ESC[row;colR. Our current logic reads characters until it finds the escape, then reads until it finds the brace, and then reads until it gets a digit that starts the row. At that point, it parses whatever value it has in its input buffer and treats that as the row. Then it does the same for the column. This has worked fine on all of the systems we tested on, but it breaks in the Windows Subsystem for Linux. The reason is that the other systems all apparently write the response atomically, such that when we go to read the data, all of the digits for the row/column are available. But WSL writes each digit out individually, which means when we read the first digit, there's a good chance the remaining digits did not get read with it into our buffer, and we end up misinterpreting just that first digit as being the entire value. So for example, if WSL responds to a request with \ESC[12;34R, we're likely to interpret the current position as being 1,3 rather than 12,34. This commit fixes this by reading each character individually and not declaring that we're done parsing the row or column until we hit the known marker that comes after it, namely the ';' in the case of the row and the 'R' in the case of the col. (Note that I got rid of the extra buffering we were doing here, as it was flawed and would have added additional code to do it correctly with this new approach. If we determine that there's a noticeable performance impact to not having it, then we can add it in.) cc: @ianhays, @zadjii-msft, @lzybkr Contributes to https://github.com/dotnet/corefx/issues/12452 +12517 area-System.Security System.Security.Cryptography.Native.OpenSsl not found on Ubuntu 14.04 "A SignalR sample project fails on Linux because it cannot find System.Security.Cryptography.Native.OpenSsl. I turned on LD_DEBUG and can see that it is probing in different location but is not able to find it. SignalR uses ""System.Security.Cryptography.Algorithms"": ""4.2.0-*"" to [get a random number](https://github.com/aspnet/SignalR-Server/blob/9680e9c2c185a19604390003a6f10489d0538a56/src/Microsoft.AspNetCore.SignalR.Sources/SipHashBasedStringEqualityComparer.cs#L46) ``` 27185: file=/usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/System.Security.Cryptography.Native.OpenSsl [0]; dynamically loaded by /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.so [0] 27185: 27185: file=/home/xxxxxx/.nuget/packages/System.Security.Cryptography.Algorithms/4.3.0-preview1-24530-03/runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Native.OpenSsl [0]; dynamically loaded by /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.so [0] 27185: 27185: file=System.Security.Cryptography.Native.OpenSsl [0]; dynamically loaded by /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.so [0] 27185: find library=System.Security.Cryptography.Native.OpenSsl [0]; searching 27185: search cache=/etc/ld.so.cache 27185: search path=/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/lib:/usr/lib (system search path) 27185: trying file=/lib/x86_64-linux-gnu/System.Security.Cryptography.Native.OpenSsl 27185: trying file=/usr/lib/x86_64-linux-gnu/System.Security.Cryptography.Native.OpenSsl 27185: trying file=/lib/System.Security.Cryptography.Native.OpenSsl 27185: trying file=/usr/lib/System.Security.Cryptography.Native.OpenSsl 27185: 27185: 27185: file=/home/xxxxxx/.nuget/packages/System.Security.Cryptography.Algorithms/4.3.0-preview1-24530-03/runtimes/unix/lib/netstandard1.6/libSystem.Security.Cryptography.Native.OpenSsl.so [0]; dynamically loaded by /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.so [0] 27185: 27185: file=/usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libSystem.Security.Cryptography.Native.OpenSsl.so [0]; dynamically loaded by /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.so [0] 27185: 27185: file=libSystem.Security.Cryptography.Native.OpenSsl.so [0]; dynamically loaded by /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.so [0] 27185: find library=libSystem.Security.Cryptography.Native.OpenSsl.so [0]; searching 27185: search cache=/etc/ld.so.cache 27185: search path=/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/lib:/usr/lib (system search path) 27185: trying file=/lib/x86_64-linux-gnu/libSystem.Security.Cryptography.Native.OpenSsl.so 27185: trying file=/usr/lib/x86_64-linux-gnu/libSystem.Security.Cryptography.Native.OpenSsl.so 27185: trying file=/lib/libSystem.Security.Cryptography.Native.OpenSsl.so 27185: trying file=/usr/lib/libSystem.Security.Cryptography.Native.OpenSsl.so 27185: 27185: 27185: file=/home/xxxxxx/.nuget/packages/System.Security.Cryptography.Algorithms/4.3.0-preview1-24530-03/runtimes/unix/lib/netstandard1.6/System.Security.Cryptography.Native.OpenSsl.so [0]; dynamically loaded by /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.so [0] 27185: 27185: file=/usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/System.Security.Cryptography.Native.OpenSsl.so [0]; dynamically loaded by /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.so [0] 27185: 27185: file=System.Security.Cryptography.Native.OpenSsl.so [0]; dynamically loaded by /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.so [0] 27185: find library=System.Security.Cryptography.Native.OpenSsl.so [0]; searching 27185: search cache=/etc/ld.so.cache 27185: search path=/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/lib:/usr/lib (system search path) 27185: trying file=/lib/x86_64-linux-gnu/System.Security.Cryptography.Native.OpenSsl.so 27185: trying file=/usr/lib/x86_64-linux-gnu/System.Security.Cryptography.Native.OpenSsl.so 27185: trying file=/lib/System.Security.Cryptography.Native.OpenSsl.so 27185: trying file=/usr/lib/System.Security.Cryptography.Native.OpenSsl.so 27185: 27185: 27185: file=/home/xxxxxx/.nuget/packages/System.Security.Cryptography.Algorithms/4.3.0-preview1-24530-03/runtimes/unix/lib/netstandard1.6/libSystem.Security.Cryptography.Native.OpenSsl [0]; dynamically loaded by /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.so [0] 27185: 27185: file=/usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libSystem.Security.Cryptography.Native.OpenSsl [0]; dynamically loaded by /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.so [0] 27185: 27185: file=libSystem.Security.Cryptography.Native.OpenSsl [0]; dynamically loaded by /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.so [0] 27185: find library=libSystem.Security.Cryptography.Native.OpenSsl [0]; searching 27185: search cache=/etc/ld.so.cache 27185: search path=/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/lib:/usr/lib (system search path) 27185: trying file=/lib/x86_64-linux-gnu/libSystem.Security.Cryptography.Native.OpenSsl 27185: trying file=/usr/lib/x86_64-linux-gnu/libSystem.Security.Cryptography.Native.OpenSsl 27185: trying file=/lib/libSystem.Security.Cryptography.Native.OpenSsl 27185: trying file=/usr/lib/libSystem.Security.Cryptography.Native.OpenSsl ``` ``` System.TypeInitializationException: The type initializer for 'Crypto' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'System.Security.Cryptography.Native.OpenSsl': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Interop.Crypto.GetMaxMdSize() at Interop.Crypto..cctor() --- End of inner exception stack trace --- at Interop.Crypto.GetRandomBytes(Byte[] buf, Int32 num) at System.Security.Cryptography.RNGCryptoServiceProvider.GetBytes(Byte[] data) at Microsoft.AspNetCore.SignalR.Infrastructure.SipHashBasedStringEqualityComparer.GenerateRandomKeySegment() at Microsoft.AspNetCore.SignalR.Infrastructure.SipHashBasedStringEqualityComparer..ctor() at Microsoft.AspNetCore.SignalR.Messaging.TopicLookup..ctor() at Microsoft.AspNetCore.SignalR.Messaging.MessageBus..ctor(IStringMinifier stringMinifier, ILoggerFactory loggerFactory, IPerformanceCounterManager performanceCounterManager, IOptions`1 optionsAccessor) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceProvider.<>c__DisplayClass16_0.b__0(ServiceProvider provider) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider) at Microsoft.AspNetCore.SignalR.PersistentConnection.Initialize(IServiceProvider serviceProvider) at Microsoft.AspNetCore.SignalR.Hubs.HubDispatcher.Initialize(IServiceProvider serviceProvider) at Microsoft.AspNetCore.SignalR.Hosting.PersistentConnectionMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2] ``` " +12518 area-System.Globalization Different handling of comparison options between Windows and Linux "Repro: ``` C# using System; using System.Globalization; public class Program { public static void Main() { Console.WriteLine(new CultureInfo(""ja-JP"").CompareInfo.Compare( ""\uFF8C\uFF67\uFF7D\uFF9E\uFF65\uFF77\uFF9E\uFF80\uFF70"", ""\u30D5\u30A1\u30BA\u30FB\u30AE\u30BF\u30FC"", CompareOptions.IgnoreWidth)); } } ``` On Windows this prints out 0. On Linux it prints out -1. Is that expected? This difference is causing a failure in one of the SqlClient tests on Unix. cc: @tarekgh, @ellismg, @eerhardt " +12519 area-Infrastructure Cannot build System.Native.so on Alpine Linux (MUSL) The native System.Native.so build fails on Alpine Linux with a signed to unsigned comparison warning: ``` /root/corefx/src/Native/Unix/System.Native/pal_networking.cpp:1292:12: error: comparison of integers of different signs: 'unsigned long' and 'long' [-Werror,-Wsign-compare] return CMSG_NXTHDR(mhdr, cmsg); ^~~~~~~~~~~~~~~~~~~~~~~ /usr/include/sys/socket.h:269:44: note: expanded from macro 'CMSG_NXTHDR' __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ``` +12520 area-Infrastructure Fix Alpine Linux System.Native.so build The native System.Native.so build fails on Alpine Linux with a signed to unsigned comparison warning in the expansion of the CMSG_NXTHDR macro. The issue is in the macro definition in the platform headers, so I am adding suppression of that warning for the macro expansion. +12523 area-System.Linq Fix SelectArrayIterator.MoveNext after Dispose Just realized that there was a small issue with my changes in #11841: if someone tries to `MoveNext` on a `SelectArrayIterator` after it's Disposed, then an IOOR exception will be generated because we try to access index -2. This is the fix. Repro: ``` cs var s = new int[1].Select(a => a); using (var e = s.GetEnumerator()) { e.MoveNext(); e.MoveNext(); // Disposes e.MoveNext(); // before called SelectArrayIterator.Dispose again, now throws } ``` cc @stephentoub, @VSadov +12524 area-System.Console Add a few more manual console tests cc: @ianhays Fixes https://github.com/dotnet/corefx/issues/9777 In response to https://github.com/dotnet/corefx/pull/12515#issuecomment-252730275 +12525 area-System.Xml Port xsd.exe to .NET Core Currently, xsd.exe is a command line tool that runs against .NET Framework. We don't have a .NET Core and thus no cross-platform version of this tool. +12526 area-System.Net Capturing Identity context in async smtp call doesn't check if the credential is in cache. This check depends on a call to an internal member in `CredentialCache` called `CredentialCache.IsDefaultInCache`, which is not available in .NETCore. Need a way to simulate this behavior. Desktop reference [here](https://referencesource.microsoft.com/#System/net/System/Net/mail/SmtpClient.cs,627) +12527 area-System.Diagnostics Diagnostics name space Fixes #12260 +12529 area-System.Net Authentication for System.Net.Mail does not impersonate for SystemNetworkCredential WindowsIdentity.Impersonate is not available in .NET Core, this is a deviation from Desktop. Refer to desktop code [here](https://referencesource.microsoft.com/#System/net/System/Net/mail/smtpconnection.cs,481) +12530 area-Infrastructure Updating CoreFx dependencies to servicing-24610-01 /cc @dotnet/corefx-contrib +12531 area-System.Runtime Remove P2P reference from System.Runtime.Serialization.Formatters As part of changing MulticastDelegate's interfaces, we needed to add a temporary P2P reference from System.Runtime.Serialization.Formatters to System.Runtime, so this should be removed once the package versions are updated. line: https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Serialization.Formatters/src/System.Runtime.Serialization.Formatters.csproj#L67-L68 +12534 area-System.Data Support System.Transactions in SqlClient for .NET Core Given `System.Transactions` is going to be included in 1.2 (see https://github.com/dotnet/corefx/issues/2949) the next step seems to be to bring auto-enlistment of ambient transactions and related behaviors into the .NET Core version of SqlClient. Note that the corresponding EF Core feature (tracked at https://github.com/aspnet/EntityFramework/issues/5595) will depend on this to work with SQL Server. +12535 area-System.Net Bring Ntlm, Negotiate and Digest authentication modules to .NET Core System.Net.Mail. `System.Net.Mail` uses the Negotiate, Ntlm and Digest authentication protocols to try validate the credentials if the server supports it. These authentication modules depend on `NTAuthentication` internal type in `System.Net.Security`. This issue is to figure out a way to port these to .NET Core, to have newer implementation not depending on Security internal types or expose necessary new APIs on Security to consume in other assemblies. +12536 area-System.Net Enhance performance of System.Net.Mail by pooling open TcpClient connections. Desktop code used `ServicePointManager` to provide this, since system.net.mail doesn't support `ServicePointManager`, we need a way to keep `TcpClient` connections open and use existing ones for same connections. +12537 area-System.Net .NET Core doesn't support getting mail settings from web.config files. Desktop Full Framework supports parsing the `` element from web.config files which provides smtp settings by using `System.Net.Configuration.` This contract is not available in netstandard2.0. This issue tracks this feature difference and requires proposals. +12538 area-System.Net Add support to drop mails to IIS pickup directory if IIS is running on Windows Currently .NET Core throws `NotSupportedException` for this, since the Desktop implementation depends on COM Interop. Needs investigation whether this feature is worth having in .NET Core and if so how to implement on Windows. +12539 area-System.IO Test failure: System.IO.IsolatedStorage.GetCreationTimeTests/GetCreationTime_GetsTime_Unix Opened on behalf of @jiangzeng The test `System.IO.IsolatedStorage.GetCreationTimeTests/GetCreationTime_GetsTime_Unix` has failed. ``` Assert.Equal() Failure Expected: 0001-01-01T00:00:00.0000000+00:00 Actual: 0001-01-01T00:00:00.0000000-07:53 ``` Stack Trace: ``` at System.IO.IsolatedStorage.GetCreationTimeTests.GetCreationTime_GetsTime_Unix() ``` Build : Master - 20161010.02 (Core Tests) Failing configurations: - Fedora.23.Amd64 - AnyCPU-Debug - AnyCPU-Release link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161010.02/workItem/System.IO.IsolatedStorage.Tests/analysis/xunit/System.IO.IsolatedStorage.GetCreationTimeTests~2FGetCreationTime_GetsTime_Unix +12542 area-System.Net FtpWebRequest can throw an exception if FtpWebResponse.Close is called without draining the response stream "This issue exists in the desktop framework as well. Run the following code: ```c# string resource = absoluteUri + ""LargeFile""; FtpWebRequest r1 = (FtpWebRequest)WebRequest.Create(resource); r1.Method = WebRequestMethods.Ftp.DownloadFile; FtpWebResponse resp1 = (FtpWebResponse)r1.GetResponse(); resp1.Close(); ``` On occasion, depending on the file size and other factors, you'll hit an exception in Close: _An unhandled exception of type 'System.Net.WebException' occurred in System.dll Additional information: The remote server returned an error: (550) File unavailable (e.g., file not found, no access)._ The referenced ""LargeFile"" needs to be large enough to hit the timing issue here. I hit it consistently with a 12MB file. I was using IIS as the server, running on localhost. The problem here is that when you call Close before you’ve fully downloaded the response, we reset the data connection. This can make the server unhappy if it hasn't finished writing the requested file to the data connection (at least, it makes IIS unhappy, and it seems likely it would make other servers unhappy too). IIS sends us a 550, and we then translate this into a WebException in Close. Assuming that we care about this scenario, then we either need to ignore the 550 in the scenario, or change the logic to not cause the server to generate one. " +12545 area-Infrastructure [ARM/CI] Add arm-hardfp checks to CI `Linux ARM Emulator Cross` is actually arm-softfp. I think we also need one for arm-hardfp. There is a work for this in CoreCLR too. https://github.com/dotnet/coreclr/issues/7412 /cc @sjsinju +12547 area-System.Security [Feature request] Low-level API for HashAlgorithm Here are all public API for HashAlgorithm class in .Net core: ``` cs public byte[] ComputeHash(byte[] buffer) public byte[] ComputeHash(byte[] buffer, int offset, int count) public byte[] ComputeHash(Stream inputStream) ``` For some reason, I cannot provide a whole input stream (only multi buffer). +12548 area-Infrastructure Add version file to packages Adds a version.txt file with the build commit hash to CoreFx packages. @weshaggard @joperezr +12549 area-System.IO DeflateStream buffer reuse The `DeflateStream(Stream stream, CompressionLevel compressionLevel, bool leaveOpen)` constructor allocates an 8KB `byte[]` buffer for each instance. ASP.NET Core has response compression middleware that needs a new stream per response, so this memory allocation adds up very quickly. Possible improvements: A) Internally pooling the buffers B) Allowing the buffer to be provided in the constructor so the caller can pool. Note any API changes would need to be exposed on the GZipStream wrapper as well. +12550 area-System.Xml Remove SystemException from Common when it's supported in UWP Refers to System.SystemException under src\Common\src\System +12551 area-Infrastructure Updating CoreFx dependencies to servicing-24611-05 /cc @dotnet/corefx-contrib +12552 area-System.Collections Add missing members on System.Collections namespace Fixes #11728 Adding missing members for System.Collections cc: @danmosemsft @weshaggard @AlexGhiondea +12553 area-System.ComponentModel EmailAddressAttribute validation returns true on empty string System.ComponentModel.Annotations.EmailAddressAttribute IsValid returns true on empty string, so that it is aligned with other validators. And Required attribute validates non-empty string. Fixing issue #11142 +12556 area-System.Threading ThreadLocalTests.RunThreadLocalTest5_Dispose test failed https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_release_prtest/1451/consoleText ``` System.Threading.Tests.ThreadLocalTests.RunThreadLocalTest5_Dispose [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: at System.Threading.Tests.ThreadLocalTests.RunThreadLocalTest5_Dispose() ``` +12558 area-System.IO Add&Expose TextReader/TextWriter.Synchronize - Add Synchronize to the TextReader/TextWriter for netstandard1.7 excluding uap10.1 (due to an error that MethodImplOptions.Synchronized is not available for uap10.1) - Adds some very basic unit tests for the new functions to ensure read/write works as expected. Neither TFS nor mono have any more expansive tests on Synchronize behavior. This PR will fail build until updated to consume the most recent System.Runtime package. This is because these changes include tests for the new IO methods added to System.Runtime in https://github.com/dotnet/corefx/pull/12458 @joperezr @AlexGhiondea @JeremyKuhne resolves https://github.com/dotnet/corefx/issues/9465 +12559 area-System.IO Re-Enable some ActiveIssue'd Compression tests I was unable to repro these failures on the latest master. resolves https://github.com/dotnet/corefx/issues/11685 +12560 area-System.Collections Contract between GetHashCode and Equals methods broken in HashSetEqualityComparer "In https://msdn.microsoft.com/en-us/library/system.collections.iequalitycomparer.gethashcode%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396 Under Notes to Implementers: - Implementations are required to ensure that if the Equals method returns true for two objects x and y, - then the value returned by the GetHashCode method for x must equal the value returned for y. ``` var comp1 = HashSet>.CreateSetComparer(); var comp2 = HashSet.CreateSetComparer(); var l1 = new HashSet>(comp2); var l2 = new HashSet>(comp2); var set1 = new HashSet() {""a""}; var set2 = new HashSet() {""a""}; l1.Add(set1); l2.Add(set2); Console.WriteLine(comp1.Equals(l1,l2)); Console.WriteLine(comp1.GetHashCode(l1) == comp1.GetHashCode(l2)); ``` " +12561 area-Infrastructure Updating CoreFx dependencies to servicing-24611-06 /cc @dotnet/corefx-contrib +12567 area-System.Diagnostics Add System.Diagnostics.StackTrace to test runtime dependencies The library was missing from test output directory, which prevented xunit to display stack traces with source locations. +12568 area-System.Diagnostics Add S.Diagnostics.SymbolStore types Fixes #12258 +12572 area-Infrastructure Remove redundant Packaging.props import from src/publish.proj It is already unconditionally imported in `dir.props`, and this causes a warning during publish-packages. As far as I can tell looking at git history, this double-import has always been there since publish.proj was originally created (as publish.builds). @chcosta +12574 area-Meta Misc types +12575 area-System.IO Fix SpecialFolder.MyDocuments to map to XDG properly in Unix "In Windows SpecialFolder.MyDocuments maps to ""C:\Users\foo\My Documents"". The equivalent to this in Linux should be ""/home/foo/Documents"", not ""/home/foo"". (There's already another SpecialFolder enum member that already maps to ""/home/foo"" and ""C:\Users\foo"", it is the SpecialFolder.UserProfile.) " +12577 area-Infrastructure [Arm/CI] Add hardfp build to arm32_ci_script.sh Now hardfp is default. For softfp, `--softfp` must be given as an argument. Related Issue : #12545 +12580 area-System.Net High frequencey Ping trough Unix RawSockets gives false positives Due to the way the echor-request/echo-reposne matching is implemented using thread id in \System.Net.Ping\src\System\Net\NetworkInformation\Ping.Unix.cs - SendIcmpEchoRequestOverRawSocket , when a program sends high number of Ping requests to the same host or group of hosts, late ICMP responses and/or responses from other pings sent from the same thread id is generating false positives. To avoid this, the source IP on echo-response packets should be verified against the echo-request address. Additionally the generation of identity values should be changed or sequence field should be used in addition (as in windows implementation) to generate truly random identification information. +12581 area-Meta Executing console application with a file share as working directory fails with ConfigurationErrorsException As reported in https://github.com/dotnet/roslyn-project-system/issues/206#issuecomment-252869071, I've encountered a problem related to working with file shares and .NET: When running a console application in an unelevated `cmd.exe` with a file share (mapped drive) as its working directory, the application blows up with the following exception: ``` c# System.Configuration.ConfigurationErrorsException: Error creating the Web Proxy specified in the 'system.net/defaultProxy' configuration section. ---> System.Net.Sockets.SocketException: An invalid argument was supplied at System.Net.SafeCloseSocketAndEvent.CreateWSASocketWithEvent(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType, Boolean autoReset, Boolean signaled) at System.Net.NetworkAddressChangePolled..ctor() at System.Net.AutoWebProxyScriptEngine.AutoDetector.Initialize() at System.Net.AutoWebProxyScriptEngine.AutoDetector.get_CurrentAutoDetector() at System.Net.AutoWebProxyScriptEngine..ctor(WebProxy proxy, Boolean useRegistry) at System.Net.WebProxy.UnsafeUpdateFromRegistry() at System.Net.WebProxy..ctor(Boolean enableAutoproxy) at System.Net.Configuration.DefaultProxySectionInternal..ctor(DefaultProxySection section) at System.Net.Configuration.DefaultProxySectionInternal.GetSection() --- End of inner exception stack trace --- at System.Net.Configuration.DefaultProxySectionInternal.GetSection() at System.Net.WebRequest.get_InternalDefaultWebProxy() at System.Net.HttpWebRequest..ctor(Uri uri, ServicePoint servicePoint) at System.Net.HttpWebRequest..ctor(Uri uri, Boolean returnResponseOnFailureStatusCode, String connectionGroupName, Action`1 resendRequestContent) at System.Net.Http.HttpClientHandler.CreateAndPrepareWebRequest(HttpRequestMessage request) at System.Net.Http.HttpClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Pomona.Common.RequestDispatcher.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Pomona.Common.RequestDispatcher.d__7.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Pomona.Common.RequestDispatcher.d__12.MoveNext() ``` An HTTP request is being made by the console application, which seemingly requires loading of proxy settings, which for some reason are out of reach from an application run with unelevated privileges **with a file share as the working directory**. If I change the working directory with `cd /d C:\Windows` before exeucting the console application, it works. It also works if I open up a `cmd.exe` with administrative privileges. It also works if I run the console application directly from an elevated Visual Studio instance. But the combination of unelevated `cmd.exe` and a file share as a working directory, makes the application fail with the above exception. As I write in dotnet/roslyn-project-system#206, I've run `caspol` to grant full permissions to both `Y:\*` and `file://Mac/*`, but it still fails. +12584 area-System.IO NullReferenceException instead of Argument[Null]Exception in FileIOPermission constructor in 4.6.2 Compare the [FileIOPermission in 4.6.2](https://github.com/Microsoft/referencesource/blob/1acafe20a789a55daa17aac6bb47d1b0ec04519f/mscorlib/system/security/permissions/fileiopermission.cs#L550) and [FileIOPermission in 4.6.1](https://github.com/Microsoft/referencesource/blob/e458f8df6ded689323d4bd1a2a725ad32668aaec/mscorlib/system/security/permissions/fileiopermission.cs#L543) -- they obviously changed the illegal path checks, so the [contract](https://msdn.microsoft.com/en-US/library/h05w5es7%28v=vs.110%29.aspx) of the FileIOPermission constructor throwing ArgumentException on invalid path is broken. This leads to some [nasty stuff](http://stackoverflow.com/a/40000774/2917948). The simple repro would be this: ``` using System; using System.Security.Permissions; class Program { static void Main(string[] args) { try { new FileIOPermission(FileIOPermissionAccess.PathDiscovery, (string)null); } catch (ArgumentException) { } } } ``` +12589 area-System.Collections RemoteInvoke Collections tests using DefaultThreadCurrentCulture Modify these tests to use RemoteInvoke and modify the CurrentCulture/CurrentUICulture so they won't fail intermittently when running in parallel. resolves https://github.com/dotnet/corefx/issues/12242 +12590 area-Meta Use ArrayBuilder in more places I just rebased to latest master and ran grep to see some of the places we're using `List` as a local variable. Here are the results I got: https://gist.github.com/jamesqo/467f10b7523380b9fca7b9e66c020e3f It would seem lots of these places, i.e. [System.Diagnostics.Process](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Linux.cs#L30), could easily use `ArrayBuilder` instead if the List isn't passed in/out of the function. +12591 area-System.Console LowLevelStack should not be necessary in TermInfo.cs I noticed that there is a `LowLevelStack` class present in TermInfo.cs because, according to a comment, System.Console does not reference System.Collections: https://github.com/dotnet/corefx/blob/master/src/System.Console/src/System/TermInfo.cs#L948 Seeing that `List` is being used in the same file, maybe this is no longer true and the class can be removed. +12592 area-Meta Remove [SecurityCritical] and [SecuritySafeCritical] attributes Security transparency will not be implemented in CoreFX, and use of these attributes can be removed throughout. +12593 area-System.Runtime S.R.CS.Unsafe: Add `IntPtr ByteOffset(ref L left, ref R right)` As discussed in https://github.com/dotnet/corefxlab/pull/796#issuecomment-253138362 add: ``` csharp IntPtr ByteOffset(ref T left, ref T right); ``` to the `Unsafe` class. Things to discuss for this addition: - Naming - Generic parameters, one or two? One, as this will only allow users to compute the offset between same types and, thus, limits the possibility of finding offsets that could cause alignment issues, see https://github.com/dotnet/corefx/issues/12593#issuecomment-253305078, e.g. for offset between `ref byte` and `ref double`. If an offset between two different types are needed this can be done by explicitly converting one of the `ref`s to the same type as the other e.g. ``` csharp ref byte b1 = ...; ref double d1 = ...; IntPtr byteOffset = ref Unsafe.ByteOffset(ref Unsafe.As(ref d1), ref b1); ``` - Return type, do we imagine we need several versions with different return types, that could influence naming? - Parameter naming and order? @jkotas @mellinoe @jamesqo @benaadams @omariom @davidfowl When we decide I could give a shot at adding this too to `Unsafe`. **Update 1**: Changed proposal to have only one generic argument. +12594 area-System.Net Port FtpWebRequest to core +12595 area-System.Net Add System.Net.IPAddress missing members Add back Address property Fixes #12131 +12596 area-System.Text Implement generic interfaces on Regex collections for netcoreapp1.1 Port #1756 from Future to Master and expose the new APIs for netcoreapp1.1. Part of #2869 +12597 area-System.Collections Introduce trimming of unused bits into BitArray.CopyTo The change causes the `BitArray.CopyTo` method to discard (zero out) unused bits in the underlying data structure. The code responsible for trimming was refactored from `set_Length` method. Trim is being done just before the actual copy is performed. Tests for the new feature were adapted from [Clockwork-Muse](https://github.com/Clockwork-Muse/corefx/commit/19a67977e876aaa80eb42f7e04feae1fed1a815c)'s fork. Fixes #9838 +12598 area-System.IO Override MemoryStream.CopyTo and expose the override for netcoreapp1.1 This change overrides `MemoryStream.CopyTo`, porting the changes from dotnet/coreclr#7131 and dotnet/coreclr#7579, exposes the override for netcoreapp1.1, and adds tests for the change. Note that the build will fail until, as @jkotas said in #11723 the version of corert System.Private.CoreLib built against is updated. So please don't merge this yet. Fixes #11723 @jkotas, @stephentoub, @weshaggard, @hughbe, @justinvp **edit:** Aha, I just realized that the `Stream` ref class was actually hiding in [System.Runtime.cs](https://github.com/dotnet/corefx/blob/master/src/System.Runtime/ref/System.Runtime.cs) which is why I couldn't find it in System.IO.cs. Going to update shortly. +12600 area-System.Collections Expose HashSet ctors with capacity in netcoreapp1.1 Port #2862 from Future to Master. I cherry-picked the two relevant commits from the future branch: - https://github.com/dotnet/corefx/commit/38899ee55e5b8a558ee91349ab2042d26ff7a961 - https://github.com/dotnet/corefx/commit/c92d9d4f93e089e6782c3c8a35883952d4daa63a I then added a third commit that cleaned some things up, exposed the APIs in netcoreapp1.1, and added tests. cc: @stephentoub, @MarkusSintonen +12601 area-Infrastructure Restoring packages takes ~1hr The `dotnet` process is using a lot of CPU and makes build take >1hr. There isn't a lot of network activity. ``` [13:44:10.53] Restoring all packages... [14:43:30.73] Restoring all packages...Done. ``` ![image](https://cloud.githubusercontent.com/assets/8635911/19329781/6e030ba8-908f-11e6-9c0d-3e9253f54b99.png) +12602 area-System.Reflection Cleanup System.Reflection.GetType tests Pretty small cleanup here /cc @stephentoub +12603 area-Meta Update CoreClr, CoreFx, External to beta-24613-02, beta-24613-01, beta-24613-00, respectively (master) /cc @dotnet/corefx-contrib +12604 area-Meta Add source index link to README /cc: @stephentoub @weshaggard @terrajobst +12605 area-System.IO Adding APMTests to System.IO and System.IO.Compression Fixes #10334 cc: @stephentoub @danmosemsft Adding basic tests for Stream, BufferedStream and DeflateStream. +12606 area-System.Linq Complete System.Linq namespace ``` M:System.Linq.Expressions.Expression.#ctor(System.Linq.Expressions.ExpressionType,System.Type) M:System.Linq.Expressions.Expression.Dynamic(System.Runtime.CompilerServices.CallSiteBinder,System.Type,System.Linq.Expressions.Expression) M:System.Linq.Expressions.Expression.Dynamic(System.Runtime.CompilerServices.CallSiteBinder,System.Type,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression) M:System.Linq.Expressions.Expression.Dynamic(System.Runtime.CompilerServices.CallSiteBinder,System.Type,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression) M:System.Linq.Expressions.Expression.Dynamic(System.Runtime.CompilerServices.CallSiteBinder,System.Type,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression) M:System.Linq.Expressions.Expression.Dynamic(System.Runtime.CompilerServices.CallSiteBinder,System.Type,System.Linq.Expressions.Expression[]) M:System.Linq.Expressions.Expression.Dynamic(System.Runtime.CompilerServices.CallSiteBinder,System.Type,System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression}) M:System.Linq.Expressions.Expression.MakeDynamic(System.Type,System.Runtime.CompilerServices.CallSiteBinder,System.Linq.Expressions.Expression) M:System.Linq.Expressions.Expression.MakeDynamic(System.Type,System.Runtime.CompilerServices.CallSiteBinder,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression) M:System.Linq.Expressions.Expression.MakeDynamic(System.Type,System.Runtime.CompilerServices.CallSiteBinder,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression) M:System.Linq.Expressions.Expression.MakeDynamic(System.Type,System.Runtime.CompilerServices.CallSiteBinder,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression) M:System.Linq.Expressions.Expression.MakeDynamic(System.Type,System.Runtime.CompilerServices.CallSiteBinder,System.Linq.Expressions.Expression[]) M:System.Linq.Expressions.Expression.MakeDynamic(System.Type,System.Runtime.CompilerServices.CallSiteBinder,System.Collections.Generic.IEnumerable{System.Linq.Expressions.Expression}) M:System.Linq.Expressions.Expression`1.Compile(System.Runtime.CompilerServices.DebugInfoGenerator) M:System.Linq.Expressions.ExpressionVisitor.VisitDynamic(System.Linq.Expressions.DynamicExpression) M:System.Linq.Expressions.LambdaExpression.Compile(System.Runtime.CompilerServices.DebugInfoGenerator) M:System.Linq.Expressions.MemberBinding.#ctor(System.Linq.Expressions.MemberBindingType,System.Reflection.MemberInfo) ``` The following are also tightly coupled to this work so moving them to this issue: ``` T:System.Runtime.CompilerServices.DebugInfoGenerator M:System.Runtime.CompilerServices.DebugInfoGenerator.#ctor M:System.Runtime.CompilerServices.DebugInfoGenerator.CreatePdbGenerator M:System.Runtime.CompilerServices.DebugInfoGenerator.MarkSequencePoint(System.Linq.Expressions.LambdaExpression,System.Int32,System.Linq.Expressions.DebugInfoExpression) T:System.Runtime.CompilerServices.IRuntimeVariables P:System.Runtime.CompilerServices.IRuntimeVariables.Count M:System.Runtime.CompilerServices.IRuntimeVariables.get_Count P:System.Runtime.CompilerServices.IRuntimeVariables.Item(System.Int32) M:System.Runtime.CompilerServices.IRuntimeVariables.get_Item(System.Int32) M:System.Runtime.CompilerServices.IRuntimeVariables.set_Item(System.Int32,System.Object) T:System.Runtime.CompilerServices.RuleCache`1 T:System.Runtime.CompilerServices.CompilerMarshalOverride LambdaExpression,System.Int32,System.Linq.Expressions.DebugInfoExpression) ``` +12607 area-Meta Remove P2P reference Fixes #12531 Removing P2P reference that is not needed anymore cc: @danmosemsft +12608 area-System.Security Developer instructions for OSX are out of date with respect to OpenSSL When following the developer instructions for OS X, I get to this step but get an error: brew link --force openssl Warning: Refusing to link: openssl Linking keg-only openssl means you may end up linking against the insecure, deprecated system OpenSSL while using the headers from Homebrew's openssl. Instead, pass the full include/library paths to your compiler e.g.: -I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib Leading eventually to: Unhandled Exception: System.TypeInitializationException: The type initializer for 'Crypto' threw an exception. ---> System.TypeInitializationException: The type initializer for 'CryptoInitializer' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'System.Security.Cryptography.Native': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Interop.CryptoInitializer.EnsureOpen This is my first modern mac ever in my office that I'm trying to actually use so some help would be appreciated! +12609 area-System.Xml Add missing class to System.Xml.XDocument and cleanup System.Private.Xml Addresses issues https://github.com/dotnet/corefx/issues/12144 https://github.com/dotnet/corefx/issues/12239 https://github.com/dotnet/corefx/issues/12173 https://github.com/dotnet/corefx/issues/12172 Exposes missing type System.Xml.Schema.Extensions in System.Xml.XDocument contract + various cleanups on System.Private.Xml (Note: the System.CodeDom dependencies going to be done in a separate PR) cc: @danmosemsft @weshaggard @AlexGhiondea @stephentoub +12610 area-System.Security Enable ephemeral import of private keys from a PFX on Windows The classic behavior on Windows is when importing a PFX the private key material gets written to a file on disk (as an implementation detail of the software key provider), and the .NET behavior is to delete that private key when it is detected as no longer being needed (unless the import was performed with a request to persist the key material, such as when loading the certificate into a persisted store). This change enables callers to request an import with the new EphemeralKeySet flag, which uses the PKCS12_NO_PERSIST_KEY flag to PFXImportCertStore. For callers who do not do any interop with Win32 directly everything should be invisible and work. Libraries which pass PCERT_CONTEXT values to Win32, or replicate the work of GetRSAPrivateKey, may not function as expected when passed an X509Certificate(2) object with an ephemeral key. This situation is already possible if someone were to have done a P/Invoke into PFXImportCertStore manually and constructed an X509Certificate(2) object over the pointer, the addition of this functionality just makes it easier to get into that state. Since ephemeral is not the default behavior the onus of compatibility rests with the code which specified the flag on the call to load the PFX. At this point the Windows implementation of EnvelopedCms is known to not work with ephemeral private keys, and that will be addressed in a later change. This feature has no impact on Linux builds, since the private keys there are always ephemeral. Before this change callers to X509Certificate2Collection.Import could specify unknown flags without an error, but due to Ephemeral and Persisted being incompatible flags the Import method has been aligned with the X509Certificate(2) constructors in terms of keyStorageFlag validation. Change 2/3 for #8186. cc: @stephentoub @steveharter @AtsushiKan cc for packaging/contracts: @ericstj +12613 area-Meta "Change all refs to use ""throw null;"" as member bodies" "Following our new guidelines for ref assembly implementations and what GenApi now creates, this updates all of our ref .cs files to use ""throw null;"" for member bodies that can't just be empty (i.e. members that need to return a value either via the return type or via an out parameter). I made the change programatically using a simple Roslyn-based tool. cc: @weshaggard, @ericstj " +12614 area-System.Console Remove LowLevelStack from System.Console This is a hold-over from when we couldn't reference System.Collections from System.Console in the early days of getting it working on Unix. Now that we can (and already are), we can switch to using the real `Stack`. Fixes https://github.com/dotnet/corefx/issues/12591 cc: @ianhays, @jamesqo +12615 area-System.Data Adding an unique identifier for DbConnection I purpose to add an unique identifier for DbConnection which will help support for tooling around the DbConnection, as the EntityFrameworkProfiler. As of now, there is no way to associate a unique id with the connection. The `ClientConnectionId` of [SqlConnection](https://referencesource.microsoft.com/#System.Data/System/Data/SqlClient/SqlConnection.cs,667) is not what we ask as this is not unique for the connection itself. So the purposing is simple, adding this to DbConnection: private Guid identifier = Guid.NewGuid(); It can be private and we can access it with reflection, if making it public is problematic. +12616 area-System.Net Make Ping's identifier random on Unix It's currently using the current managed thread ID. This can lead to lots of requests/replies having the same identifier, resulting in false positives. cc: @mellinoe, @ttzankov https://github.com/dotnet/corefx/issues/12580 +12618 area-System.Net HttpClientHandler should support UseDefaultCredentials instead of No-op on *nix On *nix, kinit is used to obtain and cache Kerberos ticket-granting tickets. I have verified that users can use kinit to obtain a kerberos ticket and CredentialCache.DefaultNetworkCredentials will use the credential. The below code works after using kinit on the shell: ```c# handler = new HttpClientHandler() { }; handler.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; ``` @mconnew @zhenlan +12619 area-System.Net Add IWebProxyScript to System.Net.WebProxy It's just an interface. Nothing in netstandard implements it. Fixes https://github.com/dotnet/corefx/issues/12132 cc: @ericeil +12623 area-Meta System.IdentityModel: status, governance and API convergence _Disclaimer:_ I'm well aware that the IdentityModel stack is managed by the Azure AD team and not by the FX team and [that related tickets should be opened elsewhere](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet). Unfortunately, it seems to be in a pretty bad state these days: the activity is terribly low for such an important stack, critical bugs are not fixed and [there's literally no plan for API convergence](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/476). By opening a ticket here, I hope this ticket will draw more attention from MSFT. So here are my questions: - Is there any plan to realign IdentityModel for .NET Core with its .NET Desktop counterpart as part of API convergence/.NET Standard 2.0? The .NET Core version lacks many important APIs compared to the .NET Desktop bits (it's basically a simple port of the JWT handler plus a bunch of other types that were needed for things like the OpenID Connect middleware for ASP.NET Core to work correctly). - Can you share an approximative timeline for fixing the critical bugs? A few annoying bugs were reported in July/August and are still in need of an urgent fix (e.g [this bug](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/477)). - Will IdentityModel for .NET Desktop get updates in the future? I'm mainly interested in knowing if it will ever support [`RSACng`](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/480#issue-169228203) and ECDSA. It's quite obvious that the Azure AD team doesn't currently have the human resources needed to manage such an important stack. Maybe it would be worth considering assigning new developers to IdentityModel or transferring its ownership to another team? It seems that the WCF team is currently relying on private IdentityModel bits to make WCF work, maybe they would be interested in collaborating to IM? /cc @vibronet @polita @brentschmaltz +12626 area-Infrastructure System.Collections references non-shipping targetGroup for System.Runtime "I noticed today that System.Collections references a ""netstandard1.7"" targetgroup config of System.Runtime. https://github.com/dotnet/corefx/blob/9eaf364b8ca8180bace20aab188b1efe6a55835f/src/System.Collections/src/System.Collections.csproj#L23 That's actually the default, and since S.R.builds doesn't contain a netstandard1.7 config we don't actually ship this dll. We should remove targetgroup from the reference in System.Collections. The TargetGroup/OSGroup settings on project references are really a huge pitfall. We should try to clean these up. /cc @weshaggard " +12627 area-System.Data Client hostname not provided when connecting with SqlClient Connecting to a SQL Server instance with SSMS or with the full .NET framework SqlClient library will generally include the hostname of the client. This is visible on the database when running `EXEC sp_who2`. However, in the current stable build of dotnet, the SqlClient does not provide a hostname for the client when connecting. **Scenario:** Connecting to a SQL Server instance using SqlClient library in System.Data.SqlClient and observing the connected instance on the SQL Server instance via the sp_who2 stored proc. ``` SqlConnection sql = new SqlConnection(connectionString); sql.Open(); ``` **Expected Behavior:** When using `EXEC sp_who2`, the connection opened in the scenario above would have the hostname of the client populated in the Hostname column. **Actual Behavior:** The connection created in the scenario is shown, and will have an application name present if provided, but the hostname field will be blank. This feature makes it much easier to determine who/where connections are for a given sql server instance. +12628 area-System.IO Common application data isn't writable by users on Unix `Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)` currently returns `/usr/share` on non-Windows platforms, which apparently isn't generally accessible without sudo access. This is breaking for apps as on Windows the folder returned has rights for creating folders and modifying rights for non-Admin users. `/usr/local/share` seems to have the same problem. This came up with trying to implement machine stores for IsolatedStorage (see PR #12437). Question is there any location we could choose that would give a rough equivalent to existing NetFX behavior or is there anything we can do in the current location (chosen to match Mono's current implementation). @stephentoub, @ianhays, @migueldeicaza +12629 area-System.Linq Investigate benefits of optimizing Enumerable.Cast for non-generic ICollections Although `Enumerable.Cast` accepts a non-generic enumerable which are rare nowadays, it's used fairly often with generic enumerables in which the user knows that all of the objects are of a derived type. We should investigate to see if it is worthwhile optimizing the function for ICollections, e.g. the size of the array/list in `ToArray` / `ToList` can be predetermined. Discussion moved from #12042 +12633 area-System.IO Move FileStream into System.Runtime Due to various dependencies we need to move FileStream into System.Runtime as well as the implementation into System.Private.CoreLib. See discussion at https://github.com/dotnet/standard/issues/52 I've started created a proof-of-concept branch that moves just the APIs in the contracts here https://github.com/weshaggard/corefx/commit/e77e2b39371e5e3f202e4f8222bf3f73c9a70455, but the primary work is in the implementation. cc @ianhays @ericstj @jkotas @stephentoub +12635 area-Infrastructure TestTFM get's unset for execution when passed in Some recent change broke the scenario where you run: ``` msbuild .Tests.builds /p:FilterToTestTFM=netcoreapp1.0 ``` What the above is supposed to do, is to trigger a build of `.Tests.csproj` after the filtering is done, and pass in TestTFM=netcoreapp1.0. This is true, except that now somewhere during the build of `.Tests.csproj` we are unsetting the property of TestTFM, which is causing the actual execution of the tests to run as netcoreapp1.1. This issue is for tracking the investigation of that problem and the resolution. cc: @weshaggard +12636 area-System.Runtime Exposing additional method on Activator Fixes https://github.com/dotnet/corefx/issues/11869 @jkotas @weshaggard @stephentoub PTAL note The follwing 2 methods are largely useless unless we were atleast exposing a stubbed out implementation of System.Runtime.Remoting.Activation.UrlAttribute, as currently on core we can only pass null to activationAttributes which defaults to the overload without it : public static object CreateInstance(System.Type type, object[] args, object[] activationAttributes) public static object CreateInstance(System.Type type, System.Reflection.BindingFlags bindingAttr, System.Reflection.Binder binder, object[] args, System.Globalization.CultureInfo culture, object[] activationAttributes) +12637 area-System.Net Test failure: System.Net.Tests.HttpWebRequestTest/ContentLength_Get_ExpectSameAsGetResponseStream Opened on behalf of @jiangzeng The test `System.Net.Tests.HttpWebRequestTest/ContentLength_Get_ExpectSameAsGetResponseStream` has failed. ``` System.Net.WebException : An error occurred while sending the request. SSL connect error ---- System.Net.Http.HttpRequestException : An error occurred while sending the request. -------- System.Net.Http.CurlException : SSL connect error ``` Stack Trace: ``` at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.WebRequest.<>c.b__68_2(IAsyncResult iar) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.HttpWebRequestTest.d__20.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.HttpWebRequest.d__172.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) ``` Build : Master - 20161013.03 (Core Tests) Failing configurations: - Fedora.23.Amd64 - AnyCPU-Debug Link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161013.03/workItem/System.Net.Requests.Tests/analysis/xunit/System.Net.Tests.HttpWebRequestTest~2FContentLength_Get_ExpectSameAsGetResponseStream +12638 area-Serialization [Impl] Port Implementation of System.Xml.XmlMtomReader/XmlMtomWriter +12639 area-Serialization [Impl] DataContractJsonSerializer.ctor(Type, string, IEnumerable) Throws PNSE +12641 area-System.IO Make IsolatedStorage enumerator return an empty set +12646 area-System.Threading Possibility of hang in ReaderWriterLockSlim in case of ThreadAbortExceptions I just finished investigating an issue that I am pretty sure boils down to ReaderWriterLockSlim not being resistant to ThreadAbortExceptions. If an asynchronous exception (eg. a ThreadAbortException) is thrown eg. on https://github.com/dotnet/corefx/blob/master/src/System.Threading/src/System/Threading/ReaderWriterLockSlim.cs#L300, the ExitMyLock() method will never be called and the next attempt to spin for the `_myLock` field (eg. if trying to exit the lock as part of a finally clause, or the next attempt to acquire the lock) will hang indefinitely. Perhaps it could also be meaningful to store the managed thread id instead of just 1 in the `_myLock` field while the lock is being held because it would have made this issue much easier to find. +12647 area-Serialization Remove dead code from System.Json And increase CC by hitting non C# (IL) branches /cc @stephentoub +12649 area-System.Reflection Cleanup misc System.Reflection tests Small stuff but another in my System.Reflection backlog /cc @stephentoub +12652 area-System.Diagnostics Add uap10.1 configuration to System.Diagnostics.Tracing Related with #12013 +12655 area-System.Runtime Add tests for new String.Join overloads Once dotnet/coreclr/pull/7621 makes its way over to CoreFx, we need to add tests for the new APIs. +12657 area-System.Runtime Add more methods on System.Attribute. Fixes #12400 +12658 area-System.Net Add System.Net.IPAddress missing members Add back Address property , this's basically resurrecting https://github.com/dotnet/corefx/pull/12595 since even after rebasing there's lot of merging to do. It's easier to create a new PR then merging each file. Fixes #12131 +12659 area-System.Net SocketAsyncEventArgs allocates unnecessary SafeHandles Every operation on a SocketAsyncEventArgs ends up allocating a SafeNativeOverlapped SafeHandle: https://github.com/dotnet/corefx/blob/2117bae3a6c9736033e6d1659821ff3a1069920b/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.Windows.cs#L160 This is adding a significant amount of overhead to networking operations that are trying to be optimized via SocketAsyncEventArgs, e.g. in a benchmark that downloads from a localhost server 100MB via ReceiveAsync calls on a SocketAsyncEventArgs instance, we end up allocating almost 20K SafeNativeOverlapped instances for over 800KB of memory! These SafeHandles are just being stored into a field on the SocketAsyncEventArgs. Rather than allocating a SafeHandle for each, there are a variety of options, such as making the SocketAsyncEventArgs itself finalizable, or reusing the same SafeHandle and just replacing the pointer it guards. cc: @davidsh, @cipop, @ericeil +12660 area-System.IO Machine wide IsolatedStorage stores don't have same access rights on Unix Common app data has an underlying issue #12628. If we're able to come up with a workable solution we should look at getting rights set up for [Unix](https://github.com/dotnet/corefx/blob/master/src/System.IO.IsolatedStorage/src/System/IO/IsolatedStorage/Helper.Win32.Unix.cs#L52). Note that the current implementation is up to the bar of the current Mono implementation for machine stores. Additionally note that we don't have a public way to set rights yet on Unix. Some tracking issues: #3186, #9225 +12661 area-System.Security Will there be X509Certificate2.Verify method? Referring to https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Certificate2.cs#L12 Compared to .NET 4, this method is missing; see: https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509certificate2.verify(v=vs.110).aspx Thanks. +12662 area-System.Net Avoid byte[] allocations once IPAddress.Address is back #12658 is adding back IPAddress.Address. Various parts of the code end up allocating a byte[] to work around the lack of IPAddress.Address in the public surface area, e.g. https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/Common/src/System/Net/SocketAddress.cs#L110-L116 Once the packages have been updated with this property, we should fix those locations appropriately to avoid the unnecessary allocations. +12664 area-System.Net Two Socket/NetworkStream-related optimizations This PR provides two independent but related optimizations, one for NetworkStream and one for Socket. The latter was done as it showed up as a significant source of allocations once the former was done. 1. Add NetworkStream.CopyToAsync override. This does several custom things. First, it uses ArrayPool for the buffer used in the copy operation. Second, it uses a SocketAsyncEventArgs to avoid per-operation costs related to the socket. And third, it then uses a custom awaitable to avoid async/Task-related overheads that would otherwise occur per-ReadAsync. 2. Removes a per-operation SafeHandle allocation from any operation on a SocketAsyncEventArgs. I wrote a little benchmark that connects a socket to a localhost server which serves up 10MB of data. It then creates a NetworkStream and does a CopyToAsync on it to copy all of the data to Stream.Null. And it does all of this 10 times. Prior to the changes, there are lots of allocations (I'm only showing line items with > 10K of impact): ![image](https://cloud.githubusercontent.com/assets/2642209/19401974/4f2f50e4-922c-11e6-87a8-443ce672736f.png) After adding CopyToAsync, most of the allocations go away, but we end up with a significant number of SafeNativeOverlapped SafeHandles: ![image](https://cloud.githubusercontent.com/assets/2642209/19401991/6bd3d68e-922c-11e6-90c8-2be3bc82844f.png) After the second fix to address the SafeHandles, our memory usage is much more reasonable: ![image](https://cloud.githubusercontent.com/assets/2642209/19402007/8f10b5cc-922c-11e6-89c3-56f951f835c6.png) (Most of what remains is unrelated to the actual operation being tested, and is coming from things elsewhere in the test app, e.g. strings created at startup.) cc: @ericeil, @davidsh, @cipop, @davidfowl, @benaadams Fixes #11573 Fixes #12659 +12665 area-System.IO Make GetEnumerator a no-op Makes GetEnumerator() return an empty enumerator. Tweak configs so types resolve in test project. Fix some nits. @weshaggard, @ianhays +12666 area-Infrastructure Updating CoreFx dependencies to servicing-24614-02 /cc @dotnet/corefx-contrib +12667 area-System.Security Add remaining members of S.Security namespace I had initially put implementations of the attributes into S.R, so that they could be shared in future with CoreRT. However this caused duplicate type definitions in contracts like S.Collections which reference both S.R and S.P.CL so I took them out. @weshaggard @AlexGhiondea +12669 area-Serialization Add missing ISerializable The following should implement ISerializable per NS2.0, but in .NET Core they do not: - [ ] System.ApplicationIdentity - [x] System.ComponentModel.Win32Exception - [x] System.Exception - [x] System.IO.DriveInfo - [x] System.IO.FileSystemInfo - [x] System.IntPtr - [x] System.Net.CookieException - [x] System.Net.HttpWebRequest - [x] System.Net.HttpWebResponse - [x] System.Net.ProtocolViolationException - [x] System.Net.WebException - [ ] System.Net.WebHeaderCollection - [x] System.OperatingSystem - [ ] System.Runtime.Remoting.Messaging.LogicalCallContext - [ ] System.Runtime.Remoting.Messaging.MethodCall - [ ] System.Runtime.Remoting.Messaging.MethodResponse - [x] System.Security.Cryptography.X509Certificates.X509Certificate - [x] System.Text.StringBuilder - [ ] System.Threading.ExecutionContext - [x] System.UIntPtr +12670 area-Meta Add missing ApplicationException derivations These should be deriving from ApplicationException per NS2.0 but in Core FX they aren't: ``` System.Reflection.InvalidFilterCriteriaException System.Reflection.TargetException System.Reflection.TargetInvocationException System.Reflection.TargetParameterCountException System.Threading.WaitHandleCannotBeOpenedException ``` @AlexGhiondea FYI. +12672 area-System.Runtime Add Guid.GetBytes(byte[]) and Decimal.GetBits(decimal d, byte[]) @davidfowl commented on [Sun Sep 18 2016](https://github.com/dotnet/coreclr/issues/7251) Today the supported way to get the `byte[]` representation of a guid is to use ToByteArray() https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Guid.cs#L893, which allocates a byte[]. Instead it would be great if there was an overload that could write into an existing `byte[]` --- @mikedn commented on [Mon Sep 19 2016](https://github.com/dotnet/coreclr/issues/7251#issuecomment-247975178) `Guid.GetBytes(Span)`? --- @davidfowl commented on [Sun Sep 25 2016](https://github.com/dotnet/coreclr/issues/7251#issuecomment-249451591) Would be even better. When `Span` exists +12673 area-System.Runtime Make Decimal.GetBits(decimal d, byte[]) @davidfowl commented on [Sat Sep 17 2016](https://github.com/dotnet/coreclr/issues/7247) Would make it easier to write data to an existing buffer that way. +12674 area-System.Net SmtpClient ported code is missing DEBUG assert statements In #12416: All `GlobalLog.Assert*` statements must be followed by `Debug.Fail`. See the pattern at https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/Common/src/System/Net/InternalException.cs#L18 +12678 area-Meta Cleanup 0436 from all .csproj files This warning suppression is needed because of duplicated implementations between coreclr and corefx. We should clean them up - remove (or hide via model.xml) the conflicting implementation in System.Private.CoreLib. +12681 area-Infrastructure System.Linq Test Run fail on Mac OS X 10.11.5 "Using `../../../Tools/msbuild.sh /t:BuildAndTest` Command to Run System.Linq specific Tests Only, But getting Following error ``` Executing in /Users/vikas/Projects/corefx/corefx/bin/tests/AnyOS.AnyCPU.Debug/System.Linq.Tests/default.netcoreapp1.1/netcoreapp1.1 Hard linking dependent files... Finished linking needed files, moving to running tests. Running tests... Start time: 20:06:59 Commands: ./corerun xunit.console.netcore.exe System.Linq.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonosxtests /Users/vikas/Projects/corefx/corefx/bin/tests/AnyOS.AnyCPU.Debug/System.Linq.Tests/default.netcoreapp1.1/netcoreapp1.1/RunTests.sh: line 346: ./corerun: No such file or directory Finished running tests. End time=20:06:59. Return value was 127 /Users/vikas/Projects/corefx/corefx/Tools/tests.targets(260,5): warning MSB3073: The command ""/Users/vikas/Projects/corefx/corefx/bin/tests/AnyOS.AnyCPU.Debug/System.Linq.Tests/default.netcoreapp1.1/netcoreapp1.1/RunTests.sh /Users/vikas/Projects/corefx/corefx/packages/"" exited with code 127. [/Users/vikas/Projects/corefx/corefx/src/System.Linq/tests/System.Linq.Tests.csproj] The previous error was converted to a warning because the task was called with ContinueOnError=true. Build continuing because ""ContinueOnError"" on the task ""Exec"" is set to ""true"". /Users/vikas/Projects/corefx/corefx/Tools/tests.targets(271,5): error : One or more tests failed while running tests from 'System.Linq.Tests' please check log for details! [/Users/vikas/Projects/corefx/corefx/src/System.Linq/tests/System.Linq.Tests.csproj] Done Building Project ""/Users/vikas/Projects/corefx/corefx/src/System.Linq/tests/System.Linq.Tests.csproj"" (BuildAndTest target(s)) -- FAILED. Build FAILED. ""/Users/vikas/Projects/corefx/corefx/src/System.Linq/tests/System.Linq.Tests.csproj"" (BuildAndTest target) (1) -> (RunTestsForProject target) -> /Users/vikas/Projects/corefx/corefx/Tools/tests.targets(260,5): warning MSB3073: The command ""/Users/vikas/Projects/corefx/corefx/bin/tests/AnyOS.AnyCPU.Debug/System.Linq.Tests/default.netcoreapp1.1/netcoreapp1.1/RunTests.sh /Users/vikas/Projects/corefx/corefx/packages/"" exited with code 127. [/Users/vikas/Projects/corefx/corefx/src/System.Linq/tests/System.Linq.Tests.csproj] ""/Users/vikas/Projects/corefx/corefx/src/System.Linq/tests/System.Linq.Tests.csproj"" (BuildAndTest target) (1) -> (RunTestsForProject target) -> /Users/vikas/Projects/corefx/corefx/Tools/tests.targets(271,5): error : One or more tests failed while running tests from 'System.Linq.Tests' please check log for details! [/Users/vikas/Projects/corefx/corefx/src/System.Linq/tests/System.Linq.Tests.csproj] 1 Warning(s) 1 Error(s) Time Elapsed 00:00:20.35 ``` " +12682 area-System.IO Fix for ZipArchive depending on Position for Create streams This is a fix for #11497, using the stream wrapper technique suggested by @svick. The stream wrapper is only applied when necessary (if the `ZipArchive` is opened in `Create` mode and the underlying stream does not support seeking). The wrapper forwards all (non-reading) methods to its base stream, _including asynchronous methods_. This is important to prevent the wrapper from forcing synchrony. The existing unit tests (once fixed) were sufficient to detect this bug. +12683 area-System.Net SslStreamAlertsTest failure in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/1647/consoleText ``` System.Net.Security.Tests.SslStreamAlertsTest.SslStream_StreamToStream_ServerInitiatedCloseNotify_Ok [FAIL] System.ComponentModel.Win32Exception : The credentials supplied to the package were not recognized Stack Trace: at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) Finished running tests. End time= 1:45:19.12, Exit code = 0 Finished: System.Reflection.TypeExtensions.Tests at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint) at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) D:\j\workspace\windows_nt_re---37265eab\src\Common\tests\System\Threading\Tasks\TaskTimeoutExtensions.cs(19,0): at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\SslStreamAlertsTest.cs(76,0): at System.Net.Security.Tests.SslStreamAlertsTest.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +12684 area-System.Reflection Cleanup PropertyInfo tests Tests remain in order they were before Tests were consolidated into one file as they share common data /cc @stephentoub :) +12685 area-System.Net Determine how to handle some System.Net logging methods We are missing implementations for several methods on NetEventSource: PrintInfo, PrintWarning, etc. We need to figure out how we plan to handle this. Either implement the methods, or change the calling code to do something else. +12686 area-System.Linq Investigate using List.ConvertAll for SelectListIterator.ToList This code: https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Select.cs#L330 Could probably use the little-known [`List.ConvertAll`](https://msdn.microsoft.com/en-us/library/73fe8cwf%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396) api instead, which basically does the exact same thing as `list.Select(...).ToList()` except it [indexes directly into the backing array](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Collections/Generic/List.cs#L345) instead of using `Add` and sets _size at the end, which is likely faster since `Add` currently isn't inlined. A drawback, however, is that the method accepts a `Converter` instead of a Func, so unless there's a way from one delegate type to another which I'm not aware of we may have to pay for an additional allocation. +12691 area-System.Net Add ISerializable to WebException Fixes https://github.com/dotnet/corefx/issues/12138 +12694 area-System.Net Disable randomly failing SslStreamAlertsTest test https://github.com/dotnet/corefx/issues/12683 cc: @cipop +12696 area-System.Diagnostics [1.0.0] TestUserCredentialsPropertiesOnWindows failing on Windows (v1.0 only) ``` System.Diagnostics.Tests.ProcessStartInfoTests.TestUserCredentialsPropertiesOnWindows [FAIL] System.InvalidOperationException : No process is associated with this object. Stack Trace: D:\j\workspace\outerloop_win---2155886e\src\System.Diagnostics.Process\src\System\Diagnostics\Process.cs(779,0): at System.Diagnostics.Process.EnsureState(State state) D:\j\workspace\outerloop_win---2155886e\src\System.Diagnostics.Process\src\System\Diagnostics\Process.cs(189,0): at System.Diagnostics.Process.get_HasExited() D:\j\workspace\outerloop_win---2155886e\src\System.Diagnostics.Process\tests\ProcessStartInfoTests.cs(393,0): at System.Diagnostics.Tests.ProcessStartInfoTests.TestUserCredentialsPropertiesOnWindows() ``` Examples: https://ci.dot.net/job/dotnet_corefx/job/release_1.0.0/job/outerloop_windows_nt_release/13/ https://ci.dot.net/job/dotnet_corefx/job/release_1.0.0/job/outerloop_windows_nt_debug/12/ https://ci.dot.net/job/dotnet_corefx/job/release_1.0.0/job/outerloop_win10_release/12/ https://ci.dot.net/job/dotnet_corefx/job/release_1.0.0/job/outerloop_win10_debug/12/ https://ci.dot.net/job/dotnet_corefx/job/release_1.0.0/job/outerloop_windows_nt_release/12/ https://ci.dot.net/job/dotnet_corefx/job/release_1.0.0/job/outerloop_windows_nt_debug/11/ https://ci.dot.net/job/dotnet_corefx/job/release_1.0.0/job/outerloop_win10_release/11/ https://ci.dot.net/job/dotnet_corefx/job/release_1.0.0/job/outerloop_win10_debug/11/ http://ci.dot.net/job/dotnet_corefx/job/release_1.0.0/job/outerloop_windows_nt_release/11/ ... +12698 area-System.Net "Revert ""Prefer exception, not assert, during helper setup - System.Net.Security """ Reverts dotnet/corefx#12488 We started to see these NegotiateStream tests fail consistently on certain OSes a few days ago. I don't know why this change would have caused it, but I'm testing reverting it to see if it's related. +12702 area-System.Linq Investigate preallocating space for ICollections/IIListProvider in SelectEnumerableIterator methods SelectEnumerableIterator's `IIListProvider` implementation, e.g. `ToArray`, `ToList`, etc. should attempt to preallocate space if the source is an ICollection or IIListProvider. We check before falling back to that iterator if the input is an IList or IPartition, but not if it's one of the parent interfaces. **edit:** Adding 'investigate' b/c I'm not sure how common a non-IList ICollection is, or a non-IPartition IIListProvider is. In addition, this may penalize (even if slightly) if the source is neither of those. +12703 area-System.Linq Optimize Where{.Select}.To{Array,List} & Count. Changes: - Refactor `Count` such that the part that checks for internal Linq interfaces is segregated from the part that checks for the rest of the interfaces. - The internal `Count` method is probably only going to be used by Linq, so I put this in a new file & made `EnumerableHelpers` partial, so other assemblies using that class don't have to drag in extra IL. - Put a chunk of `Count` in a non-generic method, so we save generating a substantial chunk of code for every different generic instantation of the method. - Implement `IIListProvider` on all of the `Where` / `Where.Select` iterators, substantially speeding up all `ToArray` / `ToList` operations by avoiding virtual calls / field stores. - Remove an `int` field from some `Where` iterators by reusing `_state - 1` as the index. @stephentoub, @VSadov +12704 area-System.Security Creating new X509Certificate2 instance crashes CLR in Azure AppServices environment "**Issue:** Creating instance of X509Certificate2 using ctor(sting, string) overload causes CLR to crash without exception being printed and exit code `-1073740940`. Reproduces only in Azure AppServices environment. **Repro steps:** Publish or `dotnet run` project from https://github.com/pakrym/cert-crash-repro in Azure AppServices environment. **Expected:** Prints ""Hello world!"" **Actual:** Application crashes without exception or any other output. `$LastExitCode == -1073740940` " +12705 area-System.Collections ObservableCollection: Avoid SimpleMonitor allocation Instead of always allocating an instance of the private `SimpleMonitor` class for every instance of `ObservableCollection`, lazily allocate it only if/when a subclass calls `BlockReentrancy`. Add tests that pass on the full framework and before/after these changes. Made some other minor improvements while making changes here, e.g. removed the unnecessary base ctor call, raise events in the standard thread-safe way, and remove/sort namespace imports. +12706 area-System.Net Flaky test : SslStream_StreamToStream_DataAfterShutdown_Fail `https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/1676/testReport/junit/System.Net.Security.Tests/SslStreamAlertsTest/SslStream_StreamToStream_DataAfterShutdown_Fail/` ``` MESSAGE: System.ComponentModel.Win32Exception : The credentials supplied to the package were not recognized +++++++++++++++++++ STACK TRACE: at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint) at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() in D:\j\workspace\windows_nt_re---37265eab\src\Common\tests\System\Threading\Tasks\TaskTimeoutExtensions.cs:line 19 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.SslStreamAlertsTest.d__5.MoveNext() in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\SslStreamAlertsTest.cs:line 143 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +12710 area-System.Runtime Add ApplicationException derivation where missing https://github.com/dotnet/corefx/issues/12670 Waiting on https://github.com/dotnet/coreclr/pull/7647 so I'll rebase when that appears. @stephentoub +12712 area-System.Net Port tests for System.Net.Mail cc @davidsh @CIPop @ericeil @karelz FYI @geoffkizer +12715 area-System.Net KDCSetup failing on multiple Unix OSes in CI "``` --> Running transaction check ---> Package krb5-libs.x86_64 0:1.12.2-14.el7 will be updated --> Processing Dependency: krb5-libs(x86-64) = 1.12.2-14.el7 for package: krb5-devel-1.12.2-14.el7.x86_64 --> Processing Dependency: libkdb5.so.7()(64bit) for package: krb5-devel-1.12.2-14.el7.x86_64 ---> Package krb5-libs.x86_64 0:1.13.2-12.el7_2 will be an update ---> Package krb5-server.x86_64 0:1.13.2-12.el7_2 will be installed System.Runtime.Serialization.Xml.Performance.Tests -> /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_release/bin/AnyOS.AnyCPU.Release/System.Runtime.Serialization.Xml.Performance.Tests/System.Runtime.Serialization.Xml.Performance.Tests.dll http://olcentgbl.trafficmanager.net/centos/7/extras/x86_64/repodata/a7c44548f84080446edd33e17e9c37274a1f195f797088cb4153254478d9881a-filelists.sqlite.bz2: [Errno 14] HTTP Error 404 - Not Found Trying other mirror. One of the configured repositories failed (CentOS-7 - Extras), and yum doesn't have enough cached data to continue. At this point the only safe thing yum can do is fail. There are a few ways to work ""fix"" this: 1. Contact the upstream for the repository and get them to fix the problem. 2. Reconfigure the baseurl/etc. for the repository, to point to a working upstream. This is most often useful if you are using a newer distribution release than is supported by the repository (and the packages for the previous distribution release still work). 3. Disable the repository, so yum won't use it by default. Yum will then just ignore the repository until you permanently enable it again or use --enablerepo for temporary usage: yum-config-manager --disable extras 4. Configure the failing repository to be skipped, if it is unavailable. Note that yum will try to contact the repo. when it runs most commands, so will have to try and fail each time (and thus. yum will be be much slower). If it is a very temporary problem though, this is often a nice compromise: yum-config-manager --save --setopt=extras.skip_if_unavailable=true failure: repodata/a7c44548f84080446edd33e17e9c37274a1f195f797088cb4153254478d9881a-filelists.sqlite.bz2 from extras: [Errno 256] No more mirrors to try. http://olcentgbl.trafficmanager.net/centos/7/extras/x86_64/repodata/a7c44548f84080446edd33e17e9c37274a1f195f797088cb4153254478d9881a-filelists.sqlite.bz2: [Errno 14] HTTP Error 404 - Not Found Error occurred during installation, aborting Operating System: centos Stopping KDC.. Removing config files Removing KDC database Removing NTLM credentials file Cleanup completed ``` " +12716 area-System.Runtime Intermittent: AppDomainTests.UnhandledException_Called failing in CI This has been failing frequently but intermittently. The problem appears to be that the test waits for the process to exit, and it doesn't exit within 30 seconds: https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/tests/System/AppDomainTests.cs#L69 https://github.com/dotnet/corefx/blob/master/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs#L170 ``` System.Tests.AppDomainTests.UnhandledException_Called [FAIL] Assert+WrapperXunitException : File path: /mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs. Line: 170 ---- Assert.True() Failure Expected: True Actual: False Stack Trace: /mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/src/Common/tests/System/Diagnostics/AssertWithCallerAttributes.cs(583,0): at Assert.WrapException(Exception e, String callerFilePath, Int32 callerLineNumber) /mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/src/Common/tests/System/Diagnostics/AssertWithCallerAttributes.cs(578,0): at Assert.True(Boolean condition, String userMessage, String path, Int32 line) /mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs(170,0): at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() /mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/src/System.Runtime.Extensions/tests/System/AppDomainTests.cs(69,0): at System.Tests.AppDomainTests.UnhandledException_Called() ----- Inner Stack Trace ----- /mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/src/Common/tests/System/Diagnostics/AssertWithCallerAttributes.cs(571,0): at Assert.True(Boolean condition, String userMessage, String path, Int32 line) ``` Examples: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win7_release/38/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win7_debug/38/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/rhel7.2_debug/334/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_ubuntu16.10_release/27/consoleText cc: @ramarag, @jkotas +12717 area-System.Diagnostics Remove defunct AssertWithCallerAttributes from tests When we didn't have file name / line number information in exception stack traces, we added this AssertWithCallerAttributes.cs file, which could be included in a test project to force asserts to bind to it instead of to those from xunit, and it uses caller attributes to include such information in the exceptions. Now that we have appropriate information provided by the runtime, we no longer need this workaround. cc: @Priya91, @ianhays +12718 area-System.Security Add leaveOpen ctor to CryptoStream This adds `public CryptoStream(Stream, ICryptoTransform, CryptoStreamMode, bool leaveOpen)` to the netcoreapp1.1 contract (which will be bumped to 1.2 once support for that version exists). Fixes #1079. Replaces PR #11587 (thanks, @bbowyersmyth). cc: @stephentoub @steveharter +12720 area-System.Globalization Enable RegionInfo netstandard 1.7 tests +12722 area-Meta Add missing derivations from MarshalByRefObject ``` public abstract class FileSystemInfo : MarshalByRefObject, ISerializable { public abstract class IsolatedStorage : MarshalByRefObject { public abstract class Stream : MarshalByRefObject, IDisposable { public abstract class TextReader : MarshalByRefObject, IDisposable { public abstract class TextWriter : MarshalByRefObject, IDisposable { public abstract class TraceListener : MarshalByRefObject, IDisposable { public abstract class WaitHandle : MarshalByRefObject, IDisposable { public abstract class WebRequest : MarshalByRefObject, ISerializable { public abstract class WebResponse : MarshalByRefObject, IDisposable, ISerializable { public sealed class AppDomain : MarshalByRefObject { public sealed class RegisteredWaitHandle : MarshalByRefObject { public sealed class Timer : MarshalByRefObject, IDisposable { ``` +12723 area-Serialization Decimal and X509Certificate are missing IDeserializationCallback It's in the implementation, just missing from the ref. +12724 area-Infrastructure [Infrastructure] Test X and merge I've lost track of the number of times I've had a PR that passes the test suite, but fails on an unrelated test on one or a couple test runs. In these occasions, if I don't spot the test failure, the PR reviewer has to trigger the test run themselves, e.g. `Test Innerloop OSX Release Build and Test` This means that the reviewer then has to wait about an hour for the test run to finish, when they come back to the PR and then can merge. The apple/swift project has the `Test and merge` functionality built into their CI, which I propose adding to dotnetbot I.e. we add support for the following: ``` @dotnetbot Test and merge Innerloop OSX Release Build and Test ``` which does the following: - Runs the tests specified - If the test run passed, merge the PR - If the test run failed, don't merge the PR (optionally post an error message) This would reduce the churn of devs having to remember to trigger tests and then go back and merge once the tests have all passed! +12725 area-Meta Enhance APICompat to discover [Serializable] Presumably some of these are missing, since BinarySerialization had been removed. It's hard to say how many because it's not represented in the ref assemblies. This may not be much (or even any) since there are still 149 instances of it in the CoreCLR implementations and we inherit most of those implementations. We do need it back since it likely changes serialization behavior. To find them if any, we need to update the apicompat tool then run it against desktop impl on the LHS and CoreFX impl on the RHS. Any types that are present in CoreFX, but are missing the attribute, should have it added. @weshaggard sound about right? perhaps there's no much to do here, since it's all over CoreCLR. +12726 area-System.Security Move netstandard security attributes into System.Runtime. See https://github.com/dotnet/standard/pull/16 which contains the CAS attributes which are in netstandard because they have usage. They should be moved from System.Security.Permissions into System.Runtime. cc @danmosemsft +12728 area-System.Net Disable SslStream_StreamToStream_DataAfterShutdown_Fail test failing in CI https://github.com/dotnet/corefx/issues/12706 cc: @CIPop +12730 area-System.Security [P2P reference cleanups] Remove reference from System.Security.Permissions to System.Runtime once packages are updated Remove reference from System.Security.Permissions to System.Runtime once packages are updated. Reference was added by PR: #12729 +12731 area-Serialization [Add Test] For New Added System.Runtime.Serialization.* APIs Here's the list of APIs. ``` T:System.Runtime.Serialization.Json.JsonReaderWriterFactory M:System.Runtime.Serialization.Json.JsonReaderWriterFactory.CreateJsonReader(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas) M:System.Runtime.Serialization.Json.JsonReaderWriterFactory.CreateJsonWriter(System.IO.Stream,System.Text.Encoding) T:System.Runtime.Serialization.Json.IXmlJsonReaderInitializer T:System.Runtime.Serialization.Json.IXmlJsonWriterInitializer T:System.Runtime.Serialization.ExtensionDataObject T:System.Runtime.Serialization.IExtensibleDataObject T:System.Runtime.Serialization.XmlSerializableServices T:System.Runtime.Serialization.XPathQueryGenerator T:System.Runtime.Serialization.ExportOptions T:System.Runtime.Serialization.XsdDataContractExporter T:System.Runtime.Serialization.Json.DataContractJsonSerializer's missing Members. T:System.Xml.IFragmentCapableXmlDictionaryWriter P:System.Xml.IFragmentCapableXmlDictionaryWriter.CanFragment M:System.Xml.IFragmentCapableXmlDictionaryWriter.get_CanFragment M:System.Xml.IFragmentCapableXmlDictionaryWriter.EndFragment M:System.Xml.IFragmentCapableXmlDictionaryWriter.StartFragment(System.IO.Stream,System.Boolean) M:System.Xml.IFragmentCapableXmlDictionaryWriter.WriteFragment(System.Byte[],System.Int32,System.Int32) T:System.Xml.IStreamProvider M:System.Xml.IStreamProvider.GetStream M:System.Xml.IStreamProvider.ReleaseStream(System.IO.Stream) T:System.Xml.IXmlBinaryReaderInitializer M:System.Xml.IXmlBinaryReaderInitializer.SetInput(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.IXmlBinaryReaderInitializer.SetInput(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose) T:System.Xml.IXmlBinaryWriterInitializer M:System.Xml.IXmlBinaryWriterInitializer.SetOutput(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlBinaryWriterSession,System.Boolean) T:System.Xml.IXmlMtomReaderInitializer M:System.Xml.IXmlMtomReaderInitializer.SetInput(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.IXmlMtomReaderInitializer.SetInput(System.IO.Stream,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose) T:System.Xml.IXmlMtomWriterInitializer M:System.Xml.IXmlMtomWriterInitializer.SetOutput(System.IO.Stream,System.Text.Encoding,System.Int32,System.String,System.String,System.String,System.Boolean,System.Boolean) T:System.Xml.IXmlTextReaderInitializer M:System.Xml.IXmlTextReaderInitializer.SetInput(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.IXmlTextReaderInitializer.SetInput(System.IO.Stream,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose) T:System.Xml.IXmlTextWriterInitializer M:System.Xml.IXmlTextWriterInitializer.SetOutput(System.IO.Stream,System.Text.Encoding,System.Boolean) M:System.Xml.XmlDictionaryReader.CreateBinaryReader(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.XmlDictionaryReader.CreateBinaryReader(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.XmlDictionaryReader.CreateTextReader(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose) M:System.Xml.XmlDictionaryReader.GetNonAtomizedNames(System.String@,System.String@) M:System.Xml.XmlDictionaryReader.ReadElementContentAsDateTime M:System.Xml.XmlDictionaryReader.ReadString M:System.Xml.XmlDictionaryReader.ReadString(System.Int32) M:System.Xml.XmlDictionaryWriter.CreateMtomWriter(System.IO.Stream,System.Text.Encoding,System.Int32,System.String) M:System.Xml.XmlDictionaryWriter.CreateMtomWriter(System.IO.Stream,System.Text.Encoding,System.Int32,System.String,System.String,System.String,System.Boolean,System.Boolean) M:System.Xml.XmlDictionaryWriter.WriteBase64Async(System.Byte[],System.Int32,System.Int32) M:System.Xml.XmlDictionaryWriter.WriteValue(System.Xml.IStreamProvider) M:System.Xml.XmlDictionaryWriter.WriteValueAsync(System.Xml.IStreamProvider) ``` +12733 area-System.Net Disable SslStreamAlertTests by making them netcoreapp1.1 specific After https://github.com/dotnet/corefx/pull/11489 This error shows up after trying to consume the new packages. SslStreamAlertsTest.cs(81,30): error CS1061: 'SslStream' does not contain a definition for 'ShutdownAsync' and no extension method 'ShutdownAsync' accepting a first argument of type 'SslStream' could be found (are you missing a using directive or an assembly reference?) [D:\A_work\55\s\corefx\src\System.Net.Security\tests\FunctionalTests\System.Net.Security.Tests.csproj] For now disabling these tests by conditioning them on netcoreapp1.1. @CIPop you will need to fix the issue with your PR to create a netcoreapp1.1 build configuration for the ref and these tests in order to re-enable them. FYI @sepidehMS @joperezr +12735 area-System.Net System.Net.* test configurations need updating Right now the System.Net.Security (and I'm assuming other System.Net.\* tests have the same issue) tests configurations only support netstandard1.7 which will block them from running tests in other configurations. We should probably keep the netstandard1.3 configurations so we can still run these tests for uap. We also need to add a netcoreapp1.1 build configuration to get the new sslstreamalert tests running (see https://github.com/dotnet/corefx/pull/12733). While taking a quick look at why these tests didn't fail in CI, it is because the take a dependency on the csproj (https://github.com/dotnet/corefx/blob/master/src/System.Net.Security/tests/FunctionalTests/System.Net.Security.Tests.csproj#L145) instead of the pkgproj like they should. cc @CIPop @davidsh +12736 area-Meta Add a bunch of serialization implementations Most of these are just adding [Serializable]. Some also involve implementing ISerializable. Covers the serializable types from: - Microsoft.Win32.Registry - System.Data.SqlClient - System.Diagnostics.Process - System.Diagnostics.TraceSource - System.Diagnostics.Tracing - System.Drawing.Primitives - System.Globalization.Extensions - System.IO.FileSystem.Primitives - System.IO.FileSystem - System.IO.MemoryMappedfiles - System.IO.Pipes - System.Net.Ping - System.Net.Primitives (except for SocketException, which I'll do separately once packages are updated) cc: @danmosemsft Contributes to https://github.com/dotnet/corefx/issues/12725 Contributes to https://github.com/dotnet/corefx/issues/12669 Contributes to https://github.com/dotnet/corefx/issues/12669 +12737 area-System.Runtime Provide APIs to determine OS, Distribution, Version, Bitness and other useful Info I would like to be able to get this information from System.Environment. I've been recently playing with the lsb_release command. I should be able to get most of this same information from System.Environment. I saw some earlier discussions on some APIs leading to bad practices (for example, checking feature availability based on versions). All true, but I don't think we should use those bad practices as a reason not to make APIs available. That's the role of documentation and samples, IMO. Related: https://github.com/dotnet/corefx/issues/1017 +12738 area-System.Net Duplicate resource strings in System.Net.Mail "``` xml Mailbox unavailable. Mailbox unavailable. ``` This bug exists on Full Framework as well. " +12740 area-System.Net TcpClient.BeginConnect doesn't handle socket exception for host name with multiple ip addresses. ``` ---- System.PlatformNotSupportedException : This platform does not support connecting sockets to DNS endpoints via the instance Connect and ConnectAsync methods, due to the potential for a host name to map to multiple IP addresses and sockets becoming invalid for use after a failed connect attempt. Use the static ConnectAsync method, or provide to the instance methods the specific IPAddress desired. Stack Trace: /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Net.Mail/src/System/Net/Mail/SmtpTransport.cs(166,0): at System.Net.Mail.SmtpTransport.BeginGetConnection(ContextAwareResult outerResult, AsyncCallback callback, Object state, String host, Int32 port) /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Net.Mail/src/System/Net/Mail/SmtpClient.cs(753,0): at System.Net.Mail.SmtpClient.SendAsync(MailMessage message, Object userToken) /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Net.Mail/src/System/Net/Mail/SmtpClient.cs(837,0): at System.Net.Mail.SmtpClient.SendMailAsync(MailMessage message) /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Net.Mail/tests/Functional/SmtpClientTest.cs(228,0): at System.Net.Mail.Tests.SmtpClientTest.TestMailDeliveryAsync() ----- Inner Stack Trace ----- at System.Net.Sockets.Socket.ThrowIfNotSupportsMultipleConnectAttempts() at System.Net.Sockets.Socket.BeginConnect(String host, Int32 port, AsyncCallback requestCallback, Object state) at System.Net.Sockets.TcpClient.BeginConnect(String host, Int32 port, AsyncCallback requestCallback, Object state) /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Net.Mail/src/System/Net/Mail/SmtpConnection.cs(108,0): at System.Net.Mail.SmtpConnection.BeginInitializeConnection(String host, Int32 port, AsyncCallback callback, Object state) /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Net.Mail/src/System/Net/Mail/SmtpConnection.cs(488,0): at System.Net.Mail.SmtpConnection.ConnectAndHandshakeAsyncResult.InitializeConnection() /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Net.Mail/src/System/Net/Mail/SmtpConnection.cs(483,0): at System.Net.Mail.SmtpConnection.ConnectAndHandshakeAsyncResult.GetConnection() /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Net.Mail/src/System/Net/Mail/SmtpConnection.cs(120,0): at System.Net.Mail.SmtpConnection.BeginGetConnection(ContextAwareResult outerResult, AsyncCallback callback, Object state, String host, Int32 port) /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Net.Mail/src/System/Net/Mail/SmtpTransport.cs(162,0): at System.Net.Mail.SmtpTransport.BeginGetConnection(ContextAwareResult outerResult, AsyncCallback callback, Object state, String host, Int32 port) ``` +12742 area-System.Xml Add missing default System.Private.Xml test runs Some of the Xml tests did not run in the default CI builds as they passed in non-`netcoreapp1.1` TestTFMs, so I added new runs in System.Private.Xml.Tests.builds for them. Addresses: https://github.com/dotnet/corefx/issues/12483 cc: @stephentoub @danmosemsft @weshaggard @joperezr +12744 area-System.Security Port DES and RC2 in System.Security.Cryptography.Algorithms and .Csp Add support for RC2 and DES Issues addressed: #11117 Port T:System.Security.Cryptography.RC2xx #11116 Port T:System.Security.Cryptography.DESxx #12313 Port System.Security.Cryptography.CipherMode.CFB and .OFB RC2\DES support is enabled for S.S.C.Csp via CAPI, and S.S.C.Algorithms for Windows (via Cng), Linux (via OpenSsl) and Apple. In .Csp, support for ICryptoTransform was achieved by extending the UniversalCryptoTransform pattern which is much cleaner than porting the netfx CryptoAPITransform. Note that there is no RC2\DES support in S.S.C.Cng as there is no netfx support for Cng RC2\DES. For RC2, there was a lot of code that needed to be touched to set the effective key length property. @bartonjs please review +12746 area-System.Runtime Proposal to replace the algorithm used in Random Class. @teo-tsirpanis commented on [Sat Oct 15 2016](https://github.com/dotnet/coreclr/issues/7635) According to [MSDN documentation](https://msdn.microsoft.com/en-us/library/system.random%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang=vb#Remarks), the `Random` class is using > a modified version of Donald E. Knuth's subtractive random number generator algorithm. This algorithm is somewhat obscure. I have found only [this paper](http://www.colostate.edu/~pburns/monte/rngreport.pdf) that can be said that refers to this algorithm. Therefore, I propose a change of the default RNG in `Random` class to the [Permuted Cogruential Generator(PCG)](http://www.pcg-random.org/). According to its site, PCG is: - [More difficult to predict](http://www.pcg-random.org/predictability.html#predictability-of-the-pcg-family) - Smaller both in code size (`InternalSample` will be only five lines of code and `Random`'s constructor will be another five lines) and in memory usage (just 16 bytes in comparison with the 232 bytes the existing RNG uses) - [More statistically random](http://www.pcg-random.org/statistical-tests.html#statistical-performance-of-the-pcg-family) It can also provide some [other useful features](http://www.pcg-random.org/useful-features.html). There is a more detailed comparison of PCG and other RNGs [here](http://www.pcg-random.org/other-rngs.html). I submitted https://github.com/dotnet/coreclr/pull/7477 to apply these changes, but I was told to temporarily close it and to open an issue instead for further discussion. The implementation is based on [this one](https://github.com/imneme/pcg-c-basic/blob/master/pcg_basic.c). It has also added some constructors to `Random` class that allow it to be seeded with the longer `ulong` seeds PCG allows. It also implements multiple codebooks. The original constructors are retained, so I guess this isn't a breaking API change. +12747 area-Microsoft.CSharp "Improve ""dynamic"" performance" @Opiumtm commented on [Fri Oct 14 2016](https://github.com/dotnet/coreclr/issues/7618) `dynamic` feature today have extremely awful performance. Dynamic typing in .NET languages (C#, VB) isn't used much, mostly because of intolerable slow performance and some bugs in implementation (there are memory leaks in dynamics, for example). Some third-party libraries provide fast reflection based on IL emit at runtime to have fast access to object members. Even standard reflection API provide means to create fast delegates to invoke at runtime: [MethodInfo.CreateDelegate](https://msdn.microsoft.com/en-us/library/hh194376%28v=vs.110%29.aspx) Performance measurement of `dynamic` reveal that it doesn't cache delegates and indeed is very unoptimized. [MethodInfo.CreateDelegate](https://msdn.microsoft.com/en-us/library/hh194376%28v=vs.110%29.aspx) provide performance almost as fast as direct call to a method (there is some performance penalty on delegate creation, but invocation of created delegate is almost free - so it can created on first invoke and then can be cached). `dynamic` is very much slower on subsequent method calls, although it can cache method invokes using `CreateDelegate`. Same performance improvements should be applied on other `dynamic` features. Dynamic method invocation is just an example of how it should be improved. --- @mikedn commented on [Fri Oct 14 2016](https://github.com/dotnet/coreclr/issues/7618#issuecomment-253782788) How exactly is this related to coreclr? The entire dynamic implementation is in Microsoft.CSharp, a corefx project. --- @danmosemsft commented on [Mon Oct 17 2016](https://github.com/dotnet/coreclr/issues/7618#issuecomment-254402736) Moving to corefx. +12748 area-System.Globalization Incoherent CultureInfo in different machines "@IlBaffo commented on [Thu Sep 29 2016](https://github.com/dotnet/coreclr/issues/7415) Hi, I have noticed that, creating a specific CultureInfo with ""zh-Hant-*"", will be returned a culture with parent ""CHS"" (should be CHT) and creating a CultureInfo with ""zh-Hans-*"" returns a culture with the DateTimeFormats in Traditional Chinese instead of Simplified. Steps to reproduce: - Create a console app (target any framework > 4.5.0, I don't know if lower versions have the problem) - Paste this code: ``` class Program { static void Main(string[] args) { System.Console.WriteLine(System.Environment.Version.ToString()); System.Console.WriteLine(""zh-Hant-CN""); System.Console.WriteLine(""Parent Name is: "" + System.Globalization.CultureInfo.CreateSpecificCulture(""zh-Hant-CN"").Parent.Name); System.Console.WriteLine(""Parent LCID is: "" + System.Globalization.CultureInfo.CreateSpecificCulture(""zh-Hant-CN"").Parent.EnglishName); System.Console.WriteLine(""Parent LCID is: "" + System.Globalization.CultureInfo.CreateSpecificCulture(""zh-Hant-CN"").Parent.LCID); System.Console.WriteLine(""zh-Hans-CN""); System.Console.WriteLine(""Parent Name is: "" + System.Globalization.CultureInfo.CreateSpecificCulture(""zh-Hans-CN"").Parent.Name); System.Console.WriteLine(""Parent Name is: "" + System.Globalization.CultureInfo.CreateSpecificCulture(""zh-Hans-CN"").Parent.EnglishName); System.Console.WriteLine(""Parent LCID is: "" + System.Globalization.CultureInfo.CreateSpecificCulture(""zh-Hans-CN"").Parent.LCID); System.Console.WriteLine(""Same culture: "" + System.Globalization.CultureInfo.CreateSpecificCulture(""zh-Hant-CN"") .Equals(System.Globalization.CultureInfo.CreateSpecificCulture(""zh-Hans-CN"")).ToString() ); System.Console.ReadKey(); } } ``` - Run the compiled EXE (Any Cpu, Debug) on a Windows machine except Windows 10 (Windows Server 20012 R2 in my case) with the latest framework (4.6.2) and the latest updates installed. The output of the program will be (wrong?): ``` 4.0.30319.42000 zh-Hant-CN Parent Name is: zh-CHS Parent LCID is: Chinese (Simplified) Legacy Parent LCID is: 4 zh-Hans-CN Parent Name is: zh-CHS Parent Name is: Chinese (Simplified) Legacy Parent LCID is: 4 Same culture: True ``` On Windows 10 though the output is as expected: ``` 4.0.30319.42000 zh-Hant-CN Parent Name is: zh-CHT Parent LCID is: Chinese (Traditional) Legacy Parent LCID is: 31748 zh-Hans-CN Parent Name is: zh-CHS Parent Name is: Chinese (Simplified) Legacy Parent LCID is: 4 Same culture: False ``` Additionally, when creating the language ""zh-Hans-CN"" (Simplified) the Traditional Month Names (and other names) are used, so if you run this code you will get 'Same culture: true' in Windows < 10: ``` System.Console.WriteLine(""Same culture: "" + System.Globalization.CultureInfo.CreateSpecificCulture(""zh-Hant-CN"").Equals(System.Globalization.CultureInfo.CreateSpecificCulture(""zh-Hans-CN"")).ToString()); ``` I hope this is not the wrong repository because I have found here the source code of the class: https://github.com/dotnet/coreclr/blob/74967f89e0f43e156cf23cd88840e1f0fc94f997/src/mscorlib/src/System/Globalization/CultureInfo.cs#L584 Thank you. " +12749 area-System.Net Include Debug.Fail with GlobalLog.Assert in Net Mail. fixes #12674 cc @CIPop +12750 area-System.Net Resolve unblocked TODOs and formatting changes to System.Net.Mail. Address PR comments left by @CIPop Also addresses TODO with issue #11747 cc @CIPop @stephentoub +12753 area-System.Data DataTableReadWriteXmlTest.TestReadXml failed in CI "https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/1754/consoleText ``` System.Data.Tests.DataTableReadWriteXmlTest.TestReadXml [FAIL] Assert.Equal() Failure ↓ (pos 375) Expected: ···:element name=""Main"" msdata:Prefix="""">\n \n \n ··· ↑ (pos 375) Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Data.Common/tests/System/Data/DataTableReadWriteXmlTest.cs(364,0): at System.Data.Tests.DataTableReadWriteXmlTest.TestReadXml() ``` I've only seen this fail once, on OSX. It looks like we expected a node to contain an empty prefix attribute, and instead it wasn't there at all. This is one of the ported Mono DataSet tests. " +12755 area-System.Diagnostics InvalidDataException in Process.GetProcesses on Linux Consider the following program: ``` cs public static void Main(string[] args) { try { Process.GetProcesses(); } catch (Exception e) { Console.WriteLine(e); } } ``` Sometimes on Linux (Ubuntu 16.04), I have the following exception: ``` $ dotnet run ystem.IO.InvalidDataException: Found invalid data while decoding. at System.IO.StringParser.ParseNextChar() at Interop.procfs.TryParseStatFile(String statFilePath, ParsedStat& result, ReusableTextReader reusableReader) at System.Diagnostics.ProcessManager.CreateProcessInfo(ParsedStat procFsStat, ReusableTextReader reusableReader) at System.Diagnostics.ProcessManager.CreateProcessInfo(Int32 pid, ReusableTextReader reusableReader) at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName) at System.Diagnostics.Process.GetProcesses(String machineName) at System.Diagnostics.Process.GetProcesses() at DotNetCoreConsoleApplication.Program.Main(String[] args) in /home/akinshin/RiderProjects/DotNetCoreConsoleApplication/DotNetCoreConsoleApplication/Program.cs:line 12 ``` Repro: the bug can be easily reproduced, if you run [Rider](https://www.jetbrains.com/rider/) before this Program. The origin of the troubles: I'm working on .NET Core tests support in Rider on Linux. When I try to execute ``` /usr/bin/dotnet test --port 36513 --parentProcessId 3624 --no-build --framework net451 ``` I have the following exception: ``` dotnet-test Error: 0 : System.IO.InvalidDataException: Found invalid data while decoding. at System.IO.StringParser.ParseNextChar() at Interop.procfs.TryParseStatFile(String statFilePath, ParsedStat& result, ReusableTextReader reusableReader) at System.Diagnostics.ProcessManager.CreateProcessInfo(ParsedStat procFsStat, ReusableTextReader reusableReader) at System.Diagnostics.ProcessManager.CreateProcessInfo(Int32 pid, ReusableTextReader reusableReader) at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName) at System.Diagnostics.Process.GetProcesses(String machineName) at System.Diagnostics.Process.GetProcesses() at Microsoft.DotNet.Tools.Test.TestCommand.RegisterForParentProcessExit(Int32 id) at Microsoft.DotNet.Tools.Test.TestCommand.DoRun(String[] args) ``` Thus, tests could not be started because `RegisterForParentProcessExit` uses `System.Diagnostics.Process.GetProcesses()`. +12758 area-Infrastructure Building corefx on Linux adds src\src dir to nupkgs If I build corefx (commit 9688ddbb62c04189cac4c4a) on RHEL, some of the nupkgs produced include unexpected `src\src` directories in their root. For example: ``` $ unzip -l System.Runtime.Loader.4.0.0.nupkg Archive: System.Runtime.Loader.4.0.0.nupkg Length Date Time Name --------- ---------- ----- ---- 511 10-17-2016 12:20 _rels/.rels 1705 10-17-2016 12:20 System.Runtime.Loader.nuspec 9323 10-17-2016 12:20 dotnet_library_license.txt 1587 10-17-2016 12:20 ThirdPartyNotices.txt 0 10-17-2016 12:20 lib/net462/_._ 5632 10-17-2016 12:20 lib/netstandard1.5/System.Runtime.Loader.dll 6656 10-17-2016 12:20 ref/netstandard1.5/System.Runtime.Loader.dll 1794 10-17-2016 12:20 ref/netstandard1.5/System.Runtime.Loader.xml 1794 10-17-2016 12:20 ref/netstandard1.5/de/System.Runtime.Loader.xml 1794 10-17-2016 12:20 ref/netstandard1.5/es/System.Runtime.Loader.xml 1794 10-17-2016 12:20 ref/netstandard1.5/fr/System.Runtime.Loader.xml 1794 10-17-2016 12:20 ref/netstandard1.5/it/System.Runtime.Loader.xml 1794 10-17-2016 12:20 ref/netstandard1.5/ja/System.Runtime.Loader.xml 1794 10-17-2016 12:20 ref/netstandard1.5/ko/System.Runtime.Loader.xml 1794 10-17-2016 12:20 ref/netstandard1.5/ru/System.Runtime.Loader.xml 1794 10-17-2016 12:20 ref/netstandard1.5/zh-hans/System.Runtime.Loader.xml 1794 10-17-2016 12:20 ref/netstandard1.5/zh-hant/System.Runtime.Loader.xml 2803 10-17-2016 12:20 src%5Csrc/System.Runtime.Loader/ref/System.Runtime.Loader.cs 704 10-17-2016 12:20 [Content_Types].xml 830 10-17-2016 12:20 package/services/metadata/core-properties/d53d159faf2a41ba8918c8a2c680a616.psmdcp --------- ------- 47691 20 files ``` That `src%5Csrc` file is unexpected. If this nupkg gets included into a cli build, `dotnet` will cache various `.cs` files into `~/.nuget`. If someone does a `cd ~ && dotnet new && dotnet restore && dotnet build` they get thousands of unexpected warnings and errors. As a workaround, changing the `\` to `/` at https://github.com/dotnet/buildtools/blob/29b79c7a72ff03e8ab526f5663b99ce6fb2d58fe/src/Microsoft.DotNet.Build.Tasks.Packaging/src/PackageFiles/PackageLibs.targets#L182 fixes this issue (at least on RHEL). +12759 area-System.Runtime "Regression: System.Runtime.Tests fail with ""Missing a required constructor"" on System.Reflection.PseudoCustomAttribute._GetSecurityAttributes " "call CoreRun.exe xunit.console.netcore.exe System.Runtime.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonwind owstests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Runtime.Tests Discovered: System.Runtime.Tests Starting: System.Runtime.Tests System.Tests.GetCustomAttribute.NegTest1 [FAIL] Assert.Throws() Failure Expected: typeof(System.Reflection.AmbiguousMatchException) Actual: typeof(System.Runtime.InteropServices.COMException): Missing a required constructor. (Exception from HRESULT: 0x8013143B) Stack Trace: at System.Reflection.PseudoCustomAttribute._GetSecurityAttributes(RuntimeModule module, Int32 token, Boolean assembly, Object[]& securityAttributes) at System.Reflection.PseudoCustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType, Boolean includeSecCa, Int32& count) at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType) at System.Attribute.GetCustomAttributes(Assembly element, Type attributeType, Boolean inherit) at System.Attribute.GetCustomAttribute(Assembly element, Type attributeType, Boolean inherit) D:\git\corefx\src\System.Runtime\tests\System\Attributes.netstandard1.7.cs(256,0): at System.Tests.GetCustomAttribute.<>c__DisplayClass2_0.b__3() System.Tests.GetCustomAttribute.NegTest2 [FAIL] Assert.Throws() Failure Expected: typeof(System.Reflection.AmbiguousMatchException) Actual: typeof(System.Runtime.InteropServices.COMException): Missing a required constructor. (Exception from HRESULT: 0x8013143B) Stack Trace: at System.Reflection.PseudoCustomAttribute._GetSecurityAttributes(RuntimeModule module, Int32 token, Boolean assembly, Object[]& securityAttributes) at System.Reflection.PseudoCustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType, Boolean includeSecCa, Int32& count) at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType) at System.Attribute.GetCustomAttributes(Assembly element, Type attributeType, Boolean inherit) at System.Attribute.GetCustomAttribute(Assembly element, Type attributeType, Boolean inherit) D:\git\corefx\src\System.Runtime\tests\System\Attributes.netstandard1.7.cs(298,0): at System.Tests.GetCustomAttribute.<>c__DisplayClass4_0.b__3() System.IO.Tests.FileLoadExceptionInteropTests.Fom_HR(hr: -2146232799) [FAIL] Assert.Equal() Failure Expected: (null) Actual: complib.hlp#5179 Stack Trace: D:\git\corefx\src\System.Runtime\tests\System\IO\Exceptions.Utility.cs(23,0): at System.IO.Tests.ExceptionUtility.ValidateExceptionProperties(Exception e, Int32 dataCount, String helpLink, Int32 hResult, Exception innerExcept ion, String message, String source, String stackTrace, Boolean validateMessage) D:\git\corefx\src\System.Runtime\tests\System\IO\FileLoadException.InteropTests.cs(46,0): at System.IO.Tests.FileLoadExceptionInteropTests.Fom_HR(Int32 hr) System.Tests.AttributeGetCustomAttributes.RunPosTests [FAIL] System.Runtime.InteropServices.COMException : Missing a required constructor. (Exception from HRESULT: 0x8013143B) Stack Trace: at System.Reflection.PseudoCustomAttribute._GetSecurityAttributes(RuntimeModule module, Int32 token, Boolean assembly, Object[]& securityAttributes) at System.Reflection.PseudoCustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType, Boolean includeSecCa, Int32& count) at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType) at System.Attribute.GetCustomAttributes(Assembly element, Boolean inherit) D:\git\corefx\src\System.Runtime\tests\System\Attributes.netstandard1.7.cs(122,0): at System.Tests.AttributeGetCustomAttributes.RunPosTests() Finished: System.Runtime.Tests === TEST EXECUTION SUMMARY === D:\git\corefx\Tools\tests.targets(260,5): warning : System.Runtime.Tests Total: 10501, Errors: 0, Failed: 4, Skipped: 0, Time: 1.910s [D:\git\corefx\src\System.Runtime\tests\System.Runtime.Tests.csproj] The previous error was converted to a warning because the task was called with ContinueOnError=true. Finished running tests. End time= 9:36:42.45, Exit code = 4 D:\git\corefx\Tools\tests.targets(260,5): warning MSB3073: The command ""D:\git\corefx\bin/tests/AnyOS.AnyCPU.Debug/System.Runtime.Tests/default.netcoreapp1.1/netcoreapp1.1/RunTests.cmd D:\git\corefx\packages/"" exited with code 4. [D:\gi t\corefx\src\System.Runtime\tests\System.Runtime.Tests.csproj] " +12761 area-System.IO Merge IO.Pipes and IO.Pipes.AccessControl assemblies In https://github.com/dotnet/corefx/pull/8930 I brought Pipes AccessControl to CoreFX as its own separate assembly. This was fine with one exception (from the PR comments): > Behavior is the same as the .NET 4.6 version of PipeSecurity/PipeAuditRule/etc. with the exception that the SetAccessControl extension method does not retain the same exception throwing behavior for NamedPipeClientStream. Since it's an extension method, we don't have access to the internal PipeStream State that is used in the full version to decide which error to throw. The original will throw an InvalidOperation for a WaitingToConnect stream or a IOException for a Broken stream. We just throw an InvalidOperation for either. Now that back-compat is a higher priority, we should resolve this issue. One way to do that would be to merge the assemblies. Another way would be to make `PipeStream.CheckPipePropertyOperations` public. caused the ToF test failure https://github.com/dotnet/corefx/issues/10899 +12764 area-System.Data DataViewTest.ColumnChangeName failing intermittently in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_release/471/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_release/455/consoleText ``` System.Data.Tests.DataViewTest.ColumnChangeName [FAIL] Assert.Equal() Failure ↓ (pos 112) Expected: ···1,-1\ntable was set.\n---- OnListChanged PropertyDescriptorChan··· Actual: ···1,-1\ntable was set.\n ↑ (pos 112) Stack Trace: /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release/src/System.Data.Common/tests/System/Data/DataViewTest.cs(765,0): at System.Data.Tests.DataViewTest.ColumnChangeName() ``` +12765 area-System.Diagnostics Expose new members on System.Diagnostics.Process. This brings Process almost entirely to netstandard2.0. +12767 area-Serialization ExtensionDataObject test fail T:System.Runtime.Serialization.ExtensionDataObject not work as expected. +12769 area-System.IO Add missing System.IO.Pipes API members - Adds/Exposes: - NamedPipeServerStream.MaxAllowedServerInstances - NamedPipeServerStream.RunAsClient(System.IO.Pipes.PipeStreamImpersonationWorker) - PipeStream.IsHandleExposed - PipeStream.CheckPipePropertyOperations - PipeStream.CheckReadOperations - PipeStream.CheckWriteOperations - PipeStream.InitializeHandle(Microsoft.Win32.SafeHandles.SafePipeHandle,System.Boolean,System.Boolean) - PipeStreamImpersonationWorker - Of the above, only RunAsClient required a new implementation (for Unix) - Adds basic tests for all of the above. - Some changes to the interop code were required for both Windows and Unix. Those will likely need to be merged in a different PR before this one to enable testing. - Required updating the default version of the project to netstandard17 from netstandard13. resolves https://github.com/dotnet/corefx/issues/12197 @stephentoub @JeremyKuhne @AlexGhiondea @joperezr +12771 area-Meta Adding more documentation on how to run individual library tests from the command line Adding documentation on how to run tests for one library from the command line. Feedback is more than welcome, specially from folks that don't really know how to do this yet, so that they might be able to tell me if this is confusing or not. cc: @weshaggard @danmosemsft @tarekgh @karelz +12772 area-Serialization XsdDataContractExporterTest Fail Throw null reference exception when call the following code XsdDataContractExporter exporter = new XsdDataContractExporter(); exporter.CanExport(typeof(Employee)); This is because DataContractSet returns null (XsdDataContractExporter.cs). The code was commented. DataContractSet DataContractSet { get { //if (dataContractSet == null) //{ // dataContractSet = new DataContractSet((Options == null) ? null : Options.GetSurrogate()); //} return _dataContractSet; } } +12774 area-System.Net Split ServicePointManager into a separate contract Related: https://github.com/dotnet/standard/issues/72 - [x] Create new System.Net.ServicePoint contract and move sources - [x] Remove the `CertificatePolicy` and `ICertificatePolicy` Obsoleted API s - [x] Add back `SmtpClient.ServicePoint` - [x] Change System.Net.Requests contract to depend on System.Net.ServicePoint contract - [x] Change System.Net.Mail contract to depend on System.Net.ServicePoint contract +12776 area-System.Runtime Exposing more GC Apis @jkotas @Maoni0 @swgillespie @weshaggard @stephentoub PTAL +12778 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientTest/Timeout_SetTo60AndGetResponseFromServerWhichTakes40_Success Opened on behalf of @jiangzeng The test `System.Net.Http.Functional.Tests.HttpClientTest/Timeout_SetTo60AndGetResponseFromServerWhichTakes40_Success` has failed. System.Threading.Tasks.TaskCanceledException : A task was canceled. ``` Stack Trace: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientTest.Timeout_SetTo60AndGetResponseFromServerWhichTakes40_Success() ``` Build : Master - 20161019.01 (Core Tests) Failing configurations: - Ubuntu.1404.Amd64 - AnyCPU-Debug - Ubuntu.1604.Amd64 - AnyCPU-Debug - AnyCPU-Release - OSX.1011.Amd64 - AnyCPU-Debug - Suse.132.Amd64 - AnyCPU-Debug - Fedora.23.Amd64 - AnyCPU-Debug Details; https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161019.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientTest~2FTimeout_SetTo60AndGetResponseFromServerWhichTakes40_Success +12779 area-Infrastructure [ARM/CI] Add arm-hardfp build to CI Now we have both hardfp and softfp build for ARM. Related Issue : #12545 +12780 area-System.IO Test failure: System.IO.IsolatedStorage.ContainsUnknownFilesTests/ContainsUnknownFiles_CleanStore Opened on behalf of @jiangzeng The test `System.IO.IsolatedStorage.ContainsUnknownFilesTests/ContainsUnknownFiles_CleanStore` has failed. ``` System.IO.FileNotFoundException : Could not load file or assembly 'System.IO.IsolatedStorage, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. ``` Stack Trace: ``` at System.IO.IsolatedStorage.ContainsUnknownFilesTests.ContainsUnknownFiles_CleanStore(PresetScopes scope) ``` Build : Master - 20161019.01 (Core Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.7.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161019.01/workItem/System.IO.IsolatedStorage.Tests/analysis/xunit/System.IO.IsolatedStorage.ContainsUnknownFilesTests~2FContainsUnknownFiles_CleanStore +12782 area-System.Net implement TcpListener.Create This fixes issue #12463. +12783 area-System.Globalization System.Globalization.Extensions cleanup Clean up some tests for System.Globalization.Extensions Some tests were tightened to better reflect current behavior. +12786 area-System.Linq Making stack spilling less invasive beyond spill sites This addresses issue #11853 by limiting the child expressions of a node spilled by `ChildRewriter` to those that occur before the spill site, rather than spilling all child expressions. Some examples are shown in the issue. The change records the index of the last child expression of a node that requires to be spilled into a temporary. Upon emitting the spilled block, only the expressions up to and including the last recorded spill index are stored into temporaries. CC @VSadov +12787 area-System.Net Fix TcpClient.Begin/EndConnect on Unix with Socket workaround TcpClient.Connect{Async} have a workaround on Unix for Socket's lack of ability to target DNS endpoints. When TcpClient.Begin/EndConnect were recently added back, they were added without that workaround. This commit fixes those members such that, on Unix, they're implemented in terms of ConnectAsync, getting the workaround implicitly. Fixes https://github.com/dotnet/corefx/issues/12740 cc: @priya91, @ericeil, @davidsh, @cipop +12789 area-System.Xml Add XmlSchema and Xslt test coverage for Non-Windows platforms Right now we do not have any XmlSchema and Xslt test coverage on non-Windows platforms. These tests are using file paths and need to change so that they can run on all other platforms successfully as well. +12793 area-System.Diagnostics Create implementation of HandleCount on Unix Once https://github.com/dotnet/corefx/pull/12765 is checked in, create the Unix implementation for HandleCount. +12794 area-System.Diagnostics Bring remaining System.Diagnostics.Debug members to netstandard2.0 ``` P:System.Diagnostics.Debug.AutoFlush P:System.Diagnostics.Debug.IndentLevel P:System.Diagnostics.Debug.IndentSize P:System.Diagnostics.Debug.Listeners M:System.Diagnostics.Debug.Close M:System.Diagnostics.Debug.Flush M:System.Diagnostics.Debug.Indent M:System.Diagnostics.Debug.Print(System.String) M:System.Diagnostics.Debug.Print(System.String,System.Object[]) M:System.Diagnostics.Debug.Unindent ``` +12795 area-System.Diagnostics Bring remaining System.Diagnostics.Debugger members to netstandard2.0 ``` F:System.Diagnostics.Debugger.DefaultCategory M:System.Diagnostics.Debugger.IsLogging M:System.Diagnostics.Debugger.Log(System.Int32,System.String,System.String) M:System.Diagnostics.Debugger.NotifyOfCrossThreadDependency ``` +12796 area-System.Diagnostics Bring remaining System.Diagnostics.*Trace members to netstandard2.0 ``` P:System.Diagnostics.DefaultTraceListener.AssertUiEnabled P:System.Diagnostics.DefaultTraceListener.LogFileName M:System.Diagnostics.DelimitedListTraceListener.#ctor(System.String) M:System.Diagnostics.DelimitedListTraceListener.#ctor(System.String,System.String) M:System.Diagnostics.DelimitedListTraceListener.GetSupportedAttributes M:System.Diagnostics.TextWriterTraceListener.#ctor(System.String) M:System.Diagnostics.TextWriterTraceListener.#ctor(System.String,System.String) M:System.Diagnostics.TextWriterTraceListener.Close P:System.Diagnostics.TraceEventCache.Callstack P:System.Diagnostics.TraceEventCache.LogicalOperationStack F:System.Diagnostics.TraceEventType.Resume F:System.Diagnostics.TraceEventType.Start F:System.Diagnostics.TraceEventType.Stop F:System.Diagnostics.TraceEventType.Suspend F:System.Diagnostics.TraceEventType.Transfer F:System.Diagnostics.TraceOptions.Callstack F:System.Diagnostics.TraceOptions.LogicalOperationStack P:System.Diagnostics.TraceSource.Attributes M:System.Diagnostics.TraceSource.GetSupportedAttributes M:System.Diagnostics.TraceSource.TraceTransfer(System.Int32,System.String,System.Guid) F:System.Diagnostics.Tracing.EventKeywords.MicrosoftTelemetry ``` +12797 area-System.Diagnostics Bring remaining System.Diagnostics.* members to netstandard2.0 This is a grab bag of a couple of APIs that don't fit well in other issues: ``` P:System.Diagnostics.ProcessStartInfo.EnvironmentVariables P:System.Diagnostics.ProcessStartInfo.ErrorDialog P:System.Diagnostics.ProcessStartInfo.ErrorDialogParentHandle P:System.Diagnostics.ProcessStartInfo.Password P:System.Diagnostics.ProcessStartInfo.Verb P:System.Diagnostics.ProcessStartInfo.Verbs P:System.Diagnostics.ProcessStartInfo.WindowStyle F:System.Diagnostics.SourceLevels.ActivityTracing M:System.Diagnostics.StackTrace.GetFrame(System.Int32) P:System.Diagnostics.Switch.Attributes M:System.Diagnostics.Switch.GetSupportedAttributes ``` +12798 area-System.ComponentModel Bring remaining System.ComponentModel.* members to netstandard2.0 There are just 2 members missing from that namespace: ``` M:System.ComponentModel.DefaultValueAttribute.SetValue(System.Object) M:System.ComponentModel.EditorBrowsableAttribute.#ctor ``` +12799 area-Serialization [XmlTypeMappingTest] Fail to Serialize Types with Soap Attributes. This scenario doesn't work since soap not supported.. +12800 area-System.Security Make derived types of SymmetricAlgorithm use field assignment in ctors. Aes and TripleDES both did assignments via virtual property setters in their ctor, which were field assignments in .NET Framework. 3rd party implementations may have written properties which assumed that the ctor had run to completion, and they are broken by that behavioral change. This change makes the ctors look like they do in net462, aside from when net462 sets fields which don't exist. It also makes the tests fail if virtual setter dispatch was utilized (for any currently defined property, at least). This addresses #12079 in master, a porting change may follow for release/1.1.0. cc: @steveharter +12803 area-System.Collections SortedList indexer implementation of IDictionary throws ArgumentNullException in Desktop Issue: #11324 +12808 area-System.Net SmtpClient: EvenSources should either have a GUID attribute or have the GUID documented - [ ] Add/Document the GUID within the source-file that defines it (EmailEventSource). - [ ] Document the GUID at https://github.com/dotnet/corefx/blob/master/Documentation/debugging/windows-instructions.md#traces +12809 area-System.IO Break out nested FileStream This breaks out the nested FileStream in preparation for moving the code down to corlib. Will follow up with: 1. Rename of files (from Unix/Win32FS to FS.os.cs) 2. Moving of common code to FileStream.cs 3. Copy to corlib 4. Move ref to System.Runtime and type forward to corlib 5. Further prep work for bringing up UAP 10.1 @ianhays, @ericstj, @stephentoub, @jkotas #12633 +12811 area-System.Numerics Bring remaining System.Numerics members to netstandard2.0 There is a single member missing, but System.Runtime.Numerics needs to be updated to netstandard1.7. ``` M:System.Numerics.BigInteger.CompareTo(System.Object) ``` +12812 area-System.Runtime Bring remaining System.Runtime members to netstandard2.0 ``` T:System.Runtime.AssemblyTargetedPatchBandAttribute M:System.Runtime.AssemblyTargetedPatchBandAttribute.#ctor(System.String) P:System.Runtime.AssemblyTargetedPatchBandAttribute.TargetedPatchBand F:System.Runtime.GCLatencyMode.NoGCRegion T:System.Runtime.TargetedPatchingOptOutAttribute M:System.Runtime.TargetedPatchingOptOutAttribute.#ctor(System.String) P:System.Runtime.TargetedPatchingOptOutAttribute.Reason ``` +12813 area-System.Net add SocketFlags.MaxIOVectorLength Fixes issue #12464. +12814 area-System.ComponentModel Bring remaining System.ComponentModel.* members to netstandard2.0 Fixes #12798 cc @AlexGhiondea @danmosemsft @joperezr +12815 area-System.Runtime Bring remaining System.Runtime.InteropServices.ComTypes to netstandard 2.0 ``` T:System.Runtime.InteropServices.ComTypes.IDataObject M:System.Runtime.InteropServices.ComTypes.IDataObject.DAdvise(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.ADVF,System.Runtime.InteropServices.ComTypes.IAdviseSink,System.Int32@) M:System.Runtime.InteropServices.ComTypes.IDataObject.DUnadvise(System.Int32) M:System.Runtime.InteropServices.ComTypes.IDataObject.EnumDAdvise(System.Runtime.InteropServices.ComTypes.IEnumSTATDATA@) M:System.Runtime.InteropServices.ComTypes.IDataObject.EnumFormatEtc(System.Runtime.InteropServices.ComTypes.DATADIR) M:System.Runtime.InteropServices.ComTypes.IDataObject.GetCanonicalFormatEtc(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.FORMATETC@) M:System.Runtime.InteropServices.ComTypes.IDataObject.GetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@) M:System.Runtime.InteropServices.ComTypes.IDataObject.GetDataHere(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@) M:System.Runtime.InteropServices.ComTypes.IDataObject.QueryGetData(System.Runtime.InteropServices.ComTypes.FORMATETC@) M:System.Runtime.InteropServices.ComTypes.IDataObject.SetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@,System.Boolean) T:System.Runtime.InteropServices.ComTypes.IEnumSTATDATA M:System.Runtime.InteropServices.ComTypes.IEnumSTATDATA.Clone(System.Runtime.InteropServices.ComTypes.IEnumSTATDATA@) M:System.Runtime.InteropServices.ComTypes.IEnumSTATDATA.Next(System.Int32,System.Runtime.InteropServices.ComTypes.STATDATA[],System.Int32[]) M:System.Runtime.InteropServices.ComTypes.IEnumSTATDATA.Reset M:System.Runtime.InteropServices.ComTypes.IEnumSTATDATA.Skip(System.Int32) ``` +12816 area-System.Text Bring remaining System.Text members to netstandard2.0 ``` M:System.Text.UnicodeEncoding.GetByteCount(System.Char*,System.Int32) M:System.Text.UnicodeEncoding.GetBytes(System.Char*,System.Int32,System.Byte*,System.Int32) M:System.Text.UnicodeEncoding.GetCharCount(System.Byte*,System.Int32) M:System.Text.UnicodeEncoding.GetChars(System.Byte*,System.Int32,System.Char*,System.Int32) ``` +12817 area-System.Xml Port remaining System.Xml.Linq members to netstandard2.0 ``` M:System.Xml.Linq.XDocument.Save(System.String) M:System.Xml.Linq.XDocument.Save(System.String,System.Xml.Linq.SaveOptions) M:System.Xml.Linq.XElement.Save(System.String) M:System.Xml.Linq.XElement.Save(System.String,System.Xml.Linq.SaveOptions) M:System.Xml.Linq.XStreamingElement.Save(System.String) M:System.Xml.Linq.XStreamingElement.Save(System.String,System.Xml.Linq.SaveOptions) ``` +12818 area-System.Runtime Recent changes in coreclr broke System.Runtime tests since Assembly.Load implementation changed Console output is: ``` cmd Command(s): call CoreRun.exe xunit.console.netcore.exe System.Runtime.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonwindowstests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Runtime.Tests Discovered: System.Runtime.Tests Starting: System.Runtime.Tests System.Reflection.Tests.AssemblyTests.AssemblyLoadFromBytesNeg [FAIL] Assert.Throws() Failure Expected: typeof(System.BadImageFormatException) Actual: typeof(System.ArgumentNullException): Buffer cannot be null. Parameter name: buffer Stack Trace: at System.IO.MemoryStream..ctor(Byte[] buffer, Boolean writable) at System.Reflection.Assembly.Load(Byte[] rawAssembly, Byte[] rawSymbolStore) at System.Reflection.Assembly.Load(Byte[] rawAssembly) F:\git\corefxCopy\corefx\src\System.Runtime\tests\System\Reflection\AssemblyTests.cs(128,0): at System.Reflection.Tests.AssemblyTests.<>c.b__12_1() System.Reflection.Tests.AssemblyTests.AssemblyLoadFromBytes [FAIL] System.ArgumentNullException : Buffer cannot be null. Parameter name: buffer Stack Trace: at System.IO.MemoryStream..ctor(Byte[] buffer, Boolean writable) at System.Reflection.Assembly.Load(Byte[] rawAssembly, Byte[] rawSymbolStore) at System.Reflection.Assembly.Load(Byte[] rawAssembly) F:\git\corefxCopy\corefx\src\System.Runtime\tests\System\Reflection\AssemblyTests.cs(119,0): at System.Reflection.Tests.AssemblyTests.AssemblyLoadFromBytes() Finished: System.Runtime.Tests === TEST EXECUTION SUMMARY === System.Runtime.Tests Total: 10522, Errors: 0, Failed: 2, Skipped: 0, Time: 1.480s Finished running tests. End time=14:51:37.88, Exit code = 2 ``` +12820 area-System.Net Cleanup System.Net.Mail tests and source. cc @CIPop +12822 area-Infrastructure Putting back net46 specific dependencies (for Desktop Runs) By updating to fixed TestSuite and updating BuildToolsVersion (For publishtest.targets) @karajas @ericstj +12823 area-System.Runtime Add downlevel ValueTuple configuration Straight-up cherry-pick of https://github.com/dotnet/corefx/commit/f90b6a54113c45f55cfff1c0a754c458f6324ab2 /cc @jcouv @KevinRansom +12827 area-System.Threading Expose some Thread members - Implemented Thread type in CoreFX, so with this, Thread will no longer be type-forwarded to the runtime. It instead forwards selectively to the runtime through a RuntimeThread instance for functionality is currently strongly tied with the runtime. Some of this functionality may further be moved to CoreFX later. - S.Threading.Thread compiles against S.Private.CoreLib of the runtime for access to RuntimeThread, and due to type conflicts between CoreLib and CoreFX assemblies, uses project references to the CoreFX implementation projects and aliases where necessary to reference the intended public type Related to #11632, #11638 +12828 area-Serialization DataContractResolver ignored Hello, I'm developing a WCF service that is called from a WPF app and from an UWP app The service is full duplex (with netTcp binding) and it uses a custom DataContractResolver for dynamic types resolution All is ok when I call the service from the WPF app When I try to call the same service from a UWP app I get a SerializationException. It seems that the DataContractSerializer is ignored (no breakpoint is hit) The version of Microsoft.NETcore.UniversalWindowsPlatform is 5.2.2 I tried to use the beta version but the problem is stiil the same. The resolver is not called At the moment the only workaround for me is a custom DataContractSerializerOperationBehavior where I override the CreateSerializer method and I pass to it my Known types Thank you Ivan +12829 area-System.Security Modify OOM exeception check in 'System.System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests' Related issue: #12441 Additional out-of-memory exception in `System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.InvalidKeySizes` and `System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.InvalidIVSizes`. Because CreateEncryptor(key, iv) and CreateDecryptor(key, iv) uses Array.Clone() to array argument `iv`, we need to check OOM exception for cloned object. +12833 area-System.Security VerifyCrlCache failing intermittently in CI e.g. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_osx_debug/40/ https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_ubuntu14.04_release/39/ https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora23_debug/37/ https://ci.dot.net/job/dotnet_corefx/job/release_1.0.0/job/outerloop_debian8.4_debug/12/ ``` System.Security.Cryptography.X509Certificates.Tests.X509FilesystemTests.VerifyCrlCache [FAIL] Chain should not build validly Expected: False Actual: True Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_osx_debug/src/System.Security.Cryptography.X509Certificates/tests/X509FilesystemTests.Unix.cs(63,0): at System.Security.Cryptography.X509Certificates.Tests.X509FilesystemTests.VerifyCrlCache() ``` cc: @bartonjs, @steveharter +12835 area-System.Net Make System.Net.WebHeaderCollection target ns1.7 /cc @stephentoub @danmosemsft @weshaggard +12836 area-Infrastructure Updating Coreclr Versions to beta-24620-03 cc: @tarekgh @stephentoub Manually updating coreclr version to unblock some folks. @dagood looks like the automatic PR's that update versions haven't been working since yesterday. Do you know what is going on? +12837 area-System.IO Improve error handling in BinaryReader/BinaryWriter +12838 area-System.Net Remove project refs from NetworkInformation after package update. "Remove the following two project references from src\System.Net.NetworkInformation.csproj once packages are produced: ``` `` ``` " +12839 area-System.Net Make NetworkInformation target ns1.7 While doing so I preserved the UWP build since it was significant. To do that I needed to make both Win32.Primitives and InteropServices expose their ns1.7 surface area to UAP10.1 via copying the impl. /cc @stephentoub @danmosemsft @weshaggard +12840 area-Serialization CreateMtomReaderWriterTest fail Test fail because all member in XmlMtomReader and XmlMtomWriter class are not implemented. +12843 area-System.Security Port System.Security.Cryptography.Algorithms.Rijndael and RijndaelMan… Address issue #9984 Port System.Security.Cryptography.RijndaelManaged, limited to AES Per the requirements, the two new types wrap\shim Aes and limit BlockSize to 128, unlike the Rijndael desktop types which also allow 192 and 256. @bartonjs please review +12845 area-Infrastructure Add UWP clrcompression build "The AOT netcore50 clrcompression (formerly represented by win10) is the only one that still needs to be built in TFS. This commit adds AppContainer support to the Windows native build and also ports some custom CRT code to circumvent undefined API errors and make it WACK-friendly. - The result of this is that a clrcompression built with /p:TargetGroup=netcore50 will have the APPCONTAINER bit set. - When also building in Release, the imports of the clrcompression will be a limited set of the usual imports that allows use of the dll to pass the WACK supported API check. - The import methods of the Release netcore50 clrcompression are identical to the corresponding clrcompression shipped out of TFS, though the latter imports ""api-ms-win-core*"" whereas the former imports ""kernel32"" and ""ole32"". - This commit will need to be merged alongside a TFS commit to remove clrcompression entirely from the ""PackagesToPublish"" group. - Also modifies the external package imports of the AOT packages to use the last stable version which is how we do it for the release branch. In the future we'll want to instead add it as a regular part of the build which will require adding it to the pipebuild on VSTS. replaces https://github.com/dotnet/corefx/pull/9448 resolves https://github.com/dotnet/corefx/issues/9710 @gkhanna79 @weshaggard @ericstj " +12846 area-System.Net Make System.Net.WebSockets target ns1.7 /cc @stephentoub @danmosemsft @weshaggard +12849 area-System.Net add missing System.Net.Security methods This fixes issue #12148. Most of these changes are minor -- exposing methods in the contract and/or making methods virtual. The exception is NegotiateStream.AuthenticateAsServer, which looks like it got missed in the initial port. I added this and fixed tests to use it properly. +12850 area-System.Threading Clean up 436 and aliases In System.Threading, System.Threading.Thread, and System.Runtime.Extensions. Remove types from CoreCLR where there are implementations in CoreFX, and clean up the aliases as far as possible. +12853 area-System.Net Move System.Net.RequestCachePolicy/Level down to System.Net.Primitives This allows us to remove the System.Xml dependency on System.Net.Requests. https://github.com/dotnet/corefx/issues/12184 cc: @weshaggard, @davidsh, @cipop +12854 area-Infrastructure Add checked in build definitions and pipeline.json "This change adds our VSTS build definitions to the corefx repo. Open to suggestions for a better folder name than ""infra"". @dagood @weshaggard @AlfredoMS " +12855 area-System.Runtime Test coverage for `System.Math` and `System.MathF` should be expanded. Currently the test coverage for `System.Math` and `System.MathF` is fairly sparse, to say the least. It should be expanded, at the very least, with the same set of tests that cover the native implementations in the CoreCLR PAL layer (which has a minimum of 20 tests per API and ensures that the interesting inputs are covered). As part of this work, the tests should also be converted to use the `[Theory]` attribute. +12857 area-System.IO Fix for Build 20161020-31 [My recent changes](https://github.com/dotnet/corefx/pull/12773) of adding MarshalByRef base class broke the official build with error: ``` error CS1690: Accessing a member on 'FileStream_Flush.StoreFlushArgFileStream.LastFlushArg' may cause a runtime exception because it is a field of a marshal-by-reference class. ``` cc: @weshaggard @joperezr +12858 area-Meta We should dynamicaly link into uCRT And only statically link the CRT startup code. +12859 area-System.Net Make System.Net.Http target ns1.7 /cc @stephentoub @danmosemsft @weshaggard Similar to NetworkInformation I preserved the UWP build as uap10.1. To do this I had to fix a number of libraries downstack due to type/version conflicts where folks updated libraries without cross-compiling/copying for uap10.1. I also had to fix up the test source because it was hitting a namespace conflict between System.Configuration and System.Net.Test.Common.Configuration. +12860 area-System.IO Override the synchronous Stream.CopyTo for other Streams Since `Stream.CopyTo` is now virtual, we should investigate overriding it for other Streams under `netcoreapp1.1`. For example, the ones in which @stephentoub suggested overriding the async version, like #12037 and #11573, could be candidates, although I'm not familiar with their implementation details. `FileStream` seems it could certainly benefit from overriding, since you can [see a `Buffer.BlockCopy` call](https://github.com/dotnet/corefx/blob/master/src/System.IO.FileSystem/src/System/IO/FileStream.Win32.cs#L633) to the user-provided array. Same for `BufferedStream`. Dependent upon #12598 +12861 area-Meta Consider the AOT case for APIs that not supported on all platforms. https://github.com/dotnet/corefx/pull/12765 +12862 area-System.IO Align field names This aligns the names of the private fields to faciltate sharing common code. Moved CanRead/Write to common in this change- other than that is just renaming the fields. @ianhays +12863 area-System.Runtime Port Misc InteropServices APIs Port the following miscellenous InteropServices API Changes: M:System.Runtime.InteropServices.COMException.ToString M:System.Runtime.InteropServices.CriticalHandle.Close M:System.Runtime.InteropServices.HandleRef.op_Explicit(System.Runtime.InteropServices.HandleRef)~System.IntPtr M:System.Runtime.InteropServices.HandleRef.ToIntPtr(System.Runtime.InteropServices.HandleRef) +12864 area-Infrastructure Start running CoreFX tests against Mono Currently we run these tests against Desktop, Core, UWP on Windows, Unix, OSX where applicable. Now we have an increased focus on compatibility with Xamarin/Unity, we should consider having these tests run against Mono as well. +12866 area-System.Globalization "Revert ""Revert ""System.Globalization.Extensions cleanup""""" Reverts dotnet/corefx#12865 +12869 area-System.Security [release/1.1.0] Make derived types of SymmetricAlgorithm use field assignment in ctors. Aes and TripleDES both did assignments via virtual property setters in their ctor, which were field assignments in .NET Framework. 3rd party implementations may have written properties which assumed that the ctor had run to completion, and they are broken by that behavioral change. This change makes the ctors look like they do in net462, aside from when net462 sets fields which don't exist. It also makes the tests fail if virtual setter dispatch was utilized (for any currently defined property, at least). cherry-pick of 53455257f1dd9a55623798f00b8dbeafbf5b7118 and 207e52e8b851c621e1a8f2cea5002f42192ea1b4 to the release/1.1.0 branch, with master-only TODO comments removed. Port of #12800. Fixes #12079. cc: @steveharter @stephentoub +12870 area-System.Reflection Expose some System.Reflection.Assembly apis +12871 area-System.Net HttpClient: SSL connect error with client certificate "Hi I'm trying to do an https request using `HttpClient` ``` var clientHandler = new HttpClientHandler { ServerCertificateCustomValidationCallback = ServerCertificateCustomValidationCallback() }; if (caData != null) { var clientCertificate = new X509Certificate2(Encoding.ASCII.GetBytes(caData.CertPem)); clientHandler.ClientCertificates.Add(clientCertificate); } using (var c = new HttpClient(clientHandler)) { string requestUri = $""https://XXXXX""; HttpResponseMessage response = await c.GetAsync(requestUri); } ``` My nginx is configuring to accept client certificate if given, but it doesn't do the verification `ssl_verify_client optional_no_ca` (it's done somewhere else) nginx config: ``` server { listen 444; server_name localhost 127.0.0.1; root /var/www/htdocs; error_log /var/log/nginx/cws.error.log; ssl on; ssl_certificate /etc/ssl/XXXXX.crt; ssl_certificate_key /etc/ssl/private/XXXXXX.key; ssl_session_timeout 5m; ssl_session_cache shared:SSL:1m; ssl_protocols TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5:!RC4; ssl_prefer_server_ciphers on; ssl_verify_client optional_no_ca; } ``` When I use `HttpClient` with no client certificate: It works When I use `HttpClient` with a client certificate, it failed with the following error When I use `curl` (command line) both case works ``` Error while executing request ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: SSL connect error at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) ``` After looking into the code of corefx I finaly found more log with `perfcollect` ``` {\""workerId\"":0, \""requestId\"":0, \""memberName\"":\"".cctor\"", \""message\"":\""libcurl: 7.35.0 OpenSSL/1.0.1f CURL_VERSION_IPV6, CURL_VERSION_SSL, CURL_VERSION_LIBZ, CURL_VERSION_NTLM, CURL_VERSION_GSSNEGOTIATE, CURL_VERSION_ASYNCHDNS, CURL_VERSION_LARGEFILE, CURL_VERSION_IDN, CURL_VERSION_TLSAUTH_SRP, CURL_VERSION_NTLM_WB\""} strings sampleTrace2.trace/lttngTrace/auto-20161020-194235/ust/uid/1001/64-bit/channel0_* | grep Curl System.Collections.Generic.Dictionary`2[System.IntPtr,System.Net.Http.CurlHandler+MultiAgent+ActiveRequest] System.Collections.Generic.Queue`1[System.Net.Http.CurlHandler+MultiAgent+IncomingRequest] System.Collections.Generic.Queue`1[System.Net.Http.CurlHandler+MultiAgent+IncomingRequest] System.Collections.Generic.Dictionary`2[System.IntPtr,System.Net.Http.CurlHandler+MultiAgent+ActiveRequest] System.Collections.Generic.Dictionary`2[System.IntPtr,System.Net.Http.CurlHandler+MultiAgent+ActiveRequest] System.Collections.Generic.Dictionary`2[System.IntPtr,System.Net.Http.CurlHandler+MultiAgent+ActiveRequest] System.Collections.Generic.Dictionary`2[System.IntPtr,System.Net.Http.CurlHandler+MultiAgent+ActiveRequest] {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""FailRequest\"", \""message\"":\""Failing request: System.Net.Http.CurlException: SSL connect error\\n at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error)\\n at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult)\""} System.Collections.Generic.Queue`1[System.Net.Http.CurlHandler+MultiAgent+IncomingRequest] EmptyArray`1[System.Net.Http.CurlHandler+MultiAgent+IncomingRequest] System.Collections.Generic.Dictionary`2[System.IntPtr,System.Net.Http.CurlHandler+MultiAgent+ActiveRequest] System.Collections.Generic.Queue`1[System.Net.Http.CurlHandler+MultiAgent+IncomingRequest] {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: SSLv3, TLS handshake, Server key exchange (12):\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_SSL_DATA_IN: 333 bytes\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: SSLv3, TLS handshake, Request CERT (13):\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_SSL_DATA_IN: 42 bytes\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: SSLv3, TLS handshake, Server finished (14):\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_SSL_DATA_IN: 4 bytes\""} System.Collections.Generic.Dictionary`2[System.IntPtr,System.Net.Http.CurlHandler+MultiAgent+ActiveRequest] {\""objectA\"":\""System.Net.Http.CurlHandler+CurlResponseMessage\"", \""objectAHash\"":40889321, \""objectB\"":\""System.Net.Http.HttpRequestMessage\"", \""objectBHash\"":19650377} {\""objectA\"":\""System.Net.Http.StreamContent\"", \""objectAHash\"":34837044, \""objectB\"":\""System.Net.Http.CurlHandler+CurlResponseStream\"", \""objectBHash\"":34424014} {\""objectA\"":\""System.Net.Http.CurlHandler+CurlResponseMessage\"", \""objectAHash\"":40889321, \""objectB\"":\""System.Net.Http.StreamContent\"", \""objectBHash\"":34837044} System.Collections.Generic.Queue`1[System.Net.Http.CurlHandler+MultiAgent+IncomingRequest] System.Collections.Generic.Dictionary`2[System.IntPtr,System.Net.Http.CurlHandler+MultiAgent+ActiveRequest] System.Collections.Generic.Dictionary`2[System.IntPtr,System.Net.Http.CurlHandler+MultiAgent+ActiveRequest] {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: Hostname was NOT found in DNS cache\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: Trying 127.0.0.1...\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: Connected to 127.0.0.1 (127.0.0.1) port 444 (#0)\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: successfully set certificate verify locations:\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: CAfile: none\\n CApath: /etc/ssl/certs\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: SSLv3, TLS handshake, Client hello (1):\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_SSL_DATA_OUT: 268 bytes\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: SSLv3, TLS handshake, Server hello (2):\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_SSL_DATA_IN: 94 bytes\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: SSLv3, TLS handshake, CERT (11):\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_SSL_DATA_IN: 850 bytes\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: SSLv3, TLS handshake, CERT (11):\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_SSL_DATA_OUT: 7 bytes\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: SSLv3, TLS handshake, Client key exchange (16):\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_SSL_DATA_OUT: 70 bytes\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: SSLv3, TLS change cipher, Client hello (1):\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_SSL_DATA_OUT: 1 bytes\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: SSLv3, TLS handshake, Finished (20):\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_SSL_DATA_OUT: 16 bytes\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: error:02001002:system library:fopen:No such file or directory\""} {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: Closing connection 0\""} System.Collections.Generic.Dictionary`2[System.IntPtr,System.Net.Http.CurlHandler+MultiAgent+ActiveRequest] System.Collections.Generic.Dictionary`2[System.IntPtr,System.Net.Http.CurlHandler+MultiAgent+ActiveRequest] System.Collections.Generic.Dictionary`2[System.IntPtr,System.Net.Http.CurlHandler+MultiAgent+ActiveRequest] {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""FinishRequest\"", \""message\"":\""Curl result: 35\""} System.Net.Http.CurlException instance void [System.Net.Http] System.Net.Http.CurlHandler+MultiAgent::FinishRequest(class System.StrongToWeakReference`1,valuetype Interop/Http/CURLcode) ``` So ``` {\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""FinishRequest\"", \""message\"":\""Curl result: 35\""} ``` confirm that the ""problem is in curl"" due to curl result ``` 35 SSL connect error. The SSL handshaking failed. ``` So I read other logs from curl lib, and I found an error: `No such file or directory` `{\""workerId\"":379, \""requestId\"":378, \""memberName\"":\""CurlDebugFunction\"", \""message\"":\""CURLINFO_TEXT: error:02001002:system library:fopen:No such file or directory\""}` Then with `strace` I found which file was ""not found"" ``` [pid 32581] open(""XXXXX/.dotnet/corefx/cryptography/crls/bd2b1cbf.crl"", O_RDONLY) = -1 ENOENT (No such file or directory) ``` I tried to create it to see if it was really the ""missing file"" and then I got this error `error:0906D06C:PEM routines:PEM_read_bio:no start line` Now I don't know how to fix this error and make it work. I don't know why curl is trying to load crl, and from where come the filename `bd2b1cbf` " +12872 area-Meta Reduce packages This moves every project to latest stable packages if it wasn't already referencing something newer. This allows us to remove all imports. It will also speed up download time for those folks not in Redmond. This PR will get stale fast, (in fact a couple of my PRs will conflict), so let's hold off merging any version update PRs until its in. /cc @stephentoub @weshaggard @karajas +12873 area-System.Runtime Update S.R.InteropServices to ns2.0 ref #12162 This change updates S.R.InteropServices with all netstandard2.0 types that didn't require code changes in coreclr. +12874 area-Infrastructure Remove KeepAllProjectReferences=true from test projects Addresses https://github.com/dotnet/corefx/issues/7913 Building some of the test projects with `/p:BuildTestsAgainstPackages=true` threw errors and that's why `KeepAllProjectReferences=true` was added to keep the project references. This PR removes this property to make sure we can successfully build and run those tests with only referencing nupkg. **Note:** I wasn't able to remove that from the following as these were testing Internal classes. Any ideas on what should be done about these? ``` System.Diagnostics.Debug.Tests System.Linq.Expressions.Tests ``` cc: @weshaggard @danmosemsft @stephentoub @joperezr @chcosta +12877 area-System.IO Move FileStream field init into constructors Makes invariant fields readonly as they were in Unix impl. Folds some more common validation / member logic. @ericstj, @ianhays I'm going to make at least another pass, don't want to make the PRs too hard to follow. +12878 area-System.IO FileStream needs re-implemented for UAP10.1 `FileStream` is moving down to `System.Private.CoreLib`. The nested, multiplexing WinRT implementation we shipped with netcore5.0 needs re-implemented. It isn't straightforward as we don't cross-compile CoreLib and the WinRT PAL lives in CoreFX. Some discussion around this has already taken place in PR #12809. @jkotas, @ericstj, @ianhays +12881 area-System.Linq Separating NotInstruction and NullCheckInstruction to separate files Moving a few instructions to separate files for easy of discovery and for consistency. +12886 area-System.Net CI failure in NetworkAvailabilityChangedTests.NetworkAvailabilityChanged_JustRemove_Success See https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_debug_prtest/2043/ for more details. +12887 area-System.Data Bring remaining System.Data.SqlClient.SqlBulkCopy members There are missing APIs from `System.Data.SqlClient.SqlBulkCopy` as seen in https://github.com/dotnet/standard/blob/bcf714ee4d6086d898fb7357972ae2827120ae7d/platforms/xamarin.ios/System.Data.cs#L2752, such as: ``` csharp public void WriteToServer(System.Data.DataRow[] rows) { } public void WriteToServer(System.Data.DataTable table) { } public void WriteToServer(System.Data.DataTable table, System.Data.DataRowState rowState) { } ``` It would be great if these could become available. +12888 area-System.Net Expose ICloneable in System.Net.Http Also took the opportunity to mark one of the exceptions as serializable. Fixes https://github.com/dotnet/corefx/issues/12199 Contributes to https://github.com/dotnet/corefx/issues/12725 cc: @danmosemsft, @davidsh, @cipop +12889 area-System.Net Fix TFS build of System.Net.WebClient.Tests Internal builds are failing with: ``` 2016-10-21T13:55:07.0700647Z WebClientTest.cs(25,28): error CS7069: Reference to type 'RequestCachePolicy' claims it is defined in 'System.Net.Requests', but it could not be found [D:\A\_work\55\s\corefx\src\System.Net.WebClient\tests\System.Net.WebClient.Tests.csproj] 2016-10-21T13:55:07.0700647Z WebClientTest.cs(269,16): error CS7069: Reference to type 'RequestCachePolicy' claims it is defined in 'System.Net.Requests', but it could not be found [D:\A\_work\55\s\corefx\src\System.Net.WebClient\tests\System.Net.WebClient.Tests.csproj] 2016-10-21T13:55:07.0700647Z WebClientTest.cs(270,31): error CS7069: Reference to type 'RequestCachePolicy' claims it is defined in 'System.Net.Requests', but it could not be found [D:\A\_work\55\s\corefx\src\System.Net.WebClient\tests\System.Net.WebClient.Tests.csproj] 2016-10-21T13:55:08.3669554Z WebClientTest.cs(25,28): error CS7069: Reference to type 'RequestCachePolicy' claims it is defined in 'System.Net.Requests', but it could not be found [D:\A\_work\55\s\corefx\src\System.Net.WebClient\tests\System.Net.WebClient.Tests.csproj] 2016-10-21T13:55:08.3669554Z WebClientTest.cs(269,16): error CS7069: Reference to type 'RequestCachePolicy' claims it is defined in 'System.Net.Requests', but it could not be found [D:\A\_work\55\s\corefx\src\System.Net.WebClient\tests\System.Net.WebClient.Tests.csproj] 2016-10-21T13:55:08.3669554Z WebClientTest.cs(270,31): error CS7069: Reference to type 'RequestCachePolicy' claims it is defined in 'System.Net.Requests', but it could not be found [D:\A\_work\55\s\corefx\src\System.Net.WebClient\tests\System.Net.WebClient.Tests.csproj] ``` Trying to fix it with temporary P2P references. cc: @weshaggard +12890 area-System.Security Change the cryptography shims to use direct package dependencies The use of runtime dependencies for the platform-specific native shims causes some upgrade complications. The design of the shared framework results in the dependency being considered to be satisfied even when a higher version was needed. So if someone has .NET Core 1.0 installed and pulls in a daily build of a cryptography library they might be missing native code changes that were assumed to be present as dependencies of the managed code. By changing to direct dependencies (changing the platform-specific package files to use IdPrefix instead of PackageTargetRuntime) the new .so files will be downloaded and deployed with the app (if they're a higher version that what is present in the shared framework). This is the master version for issue #12517. cc: @ericstj +12891 area-System.Reflection Finalize System.Reflection.Metadata public API surface for 1.1.0 release Since CoreFX 1.0.0 release we have added many new APIs to SRM to support Roslyn and other customers. We need to finalize these APIs for 1.1.0 as follows: - [x] Finish signature decoder - add generic context parameter and rationalize type provider interfaces - [x] Finish signing support in PEBuilder including PE checksum - [x] Finish new BlobReader public surface (IndexOf, Offset, SkipBytes, SeekOffset APIs) +12892 area-System.IO Add a more flexible special folder API The current `Environment.GetFolderPath()` is based on the pre Windows Vista `CSIDL` based `SHGetFolderPath`. This API was depreciated and doesn't have any of the special folders introduced in Vista and beyond. We've updated the internal implementation in CoreFX to use the new `SHGetKnownFolderPath`, which takes a Guid. If we exposed a Guid based API we would allow: 1. Accessing newer or user registered special folders in Windows without code updates 2. Creating entries that we map to some more abstract cross-plat concept 3. Allow adding mappings on different runtimes/platforms that don't require updating all of the others Something like the following: ``` C# public static class Environment { public static string GetFolderPath(Guid folderIdentifier) { } } public static class FolderGuids { // commonly used folder ids / concepts // potentially even have Windows/Unix specific class/subclass } ``` Adding values to the `SpecialFolder` enum can be complicated as there are assumptions baked into existing code that the values map directly to `CSIDL`'s. As such, the recommendation would be that the existing API be depreciated and the `Guid` API would be the primary. Behavior of asking for an unknown `Guid` would be the same as the existing API- we return `String.Empty`. I'll follow up shortly with a suggested set of predefined `Guid`s. +12893 area-System.Net System.Net.Security tests are broken when updating to the new coreclr When trying to update to the newest coreclr with PR #12836 some System.Net.Security tests started hanging. They all call the same API which launches a task that is awaited and apparently it never resolves. Tests that are in this state are: ``` SslStream_AuthenticateAsClientAsync_Supported_Success SslStream_AuthenticateAsClient_Supported_Success SslStream_AuthenticateAsClientAsync_AllSupported_Success SslStream_AuthenticateAsClientAsync_None_Success SslStream_AuthenticateAsClientAsync_Default_Success ``` I will disable those tests for now to unblock the coreclr update which some folks depend on, but this issue is to track why did those started failing. cc: @stephentoub @CIPop (people who have edited those tests) +12894 area-Meta Duplicate resource name warnings building on Unix "It looks like the Resgen/GenerateResource task on Unix flags these, but the one we get building on Windows does not (which would be nice to understand). Many of these are genuine duplicates that just need removing, but the componentmodel ones aren't - I haven't figured out why they're appearing as they don't seem to be dupes in the resx. ``` /home/dan/git/corefx/src/System.CodeDom/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""CodeDomProvider_NotDefined"" is not allowed, ignored. [/home/dan/git/corefx/src/System.CodeDom/src/System.CodeDom.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""BackgroundWorker_Desc"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""BackgroundWorker_WorkerDoesntReportProgress"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""ErrorBadExtenderType"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""ErrorInvalidEventHandler"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""ErrorInvalidEventType"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""ErrorInvalidPropertyType"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""ErrorInvalidServiceInstance"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""ErrorMissingEventAccessors"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""ErrorMissingPropertyAccessors"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""ErrorPropertyAccessorException"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""ErrorServiceExists"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""InvalidMemberName"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""InvalidNullArgument"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""MetaExtenderName"" is not allowed, ignored. [/home/dan/git/corefx/src/System.ComponentModel.TypeConverter/src/System.ComponentModel.TypeConverter.csproj] /home/dan/git/corefx/src/System.Private.Xml/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""Xml_ErrorFilePosition"" is not allowed, ignored. [/home/dan/git/corefx/src/System.Private.Xml/src/System.Private.Xml.csproj] /home/dan/git/corefx/src/System.Private.Xml/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""Xml_InvalidOperation"" is not allowed, ignored. [/home/dan/git/corefx/src/System.Private.Xml/src/System.Private.Xml.csproj] /home/dan/git/corefx/src/System.Private.Xml/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""Xml_UserException"" is not allowed, ignored. [/home/dan/git/corefx/src/System.Private.Xml/src/System.Private.Xml.csproj] /home/dan/git/corefx/src/System.Private.Xml/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""Xslt_NoStylesheetLoaded"" is not allowed, ignored. [/home/dan/git/corefx/src/System.Private.Xml/src/System.Private.Xml.csproj] /home/dan/git/corefx/src/System.Runtime.Extensions/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""Arg_EnumIllegalVal"" is not allowed, ignored. [/home/dan/git/corefx/src/System.Runtime.Extensions/src/System.Runtime.Extensions.csproj] /home/dan/git/corefx/src/System.Runtime.Extensions/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""UnknownError_Num"" is not allowed, ignored. [/home/dan/git/corefx/src/System.Runtime.Extensions/src/System.Runtime.Extensions.csproj] /home/dan/git/corefx/src/System.Runtime.Serialization.Formatters/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""Serialization_ObjectNotSupplied"" is not allowed, ignored. [/home/dan/git/corefx/src/System.Runtime.Serialization.Formatters/src/System.Runtime.Serialization.Formatters.csproj] /home/dan/git/corefx/src/System.Runtime.Serialization.Formatters/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""Serialization_ObjectTypeEnum"" is not allowed, ignored. [/home/dan/git/corefx/src/System.Runtime.Serialization.Formatters/src/System.Runtime.Serialization.Formatters.csproj] /home/dan/git/corefx/src/System.Runtime.Serialization.Formatters/src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""Serialization_TypeLoadFailure"" is not allowed, ignored. [/home/dan/git/corefx/src/System.Runtime.Serialization.Formatters/src/System.Runtime.Serialization.Formatters.csproj] ``` " +12897 area-System.Net Fix incorrect assert in SystemUnicastIPAddressInformation As highlighted by @cipop here: https://github.com/dotnet/corefx/issues/12029#issuecomment-255460200 Fixes https://github.com/dotnet/corefx/issues/12029 +12901 area-Serialization IXmlMtomReaderWriterInitializerTest fail because of NotImplementedException All methods in XmlMtomWriter are not implemented. +12902 area-Serialization IXmlTextReaderInitializerTest fail Throw InvaidCastException when call the following code, which works on desktop version. XmlDictionaryWriter textWriter = XmlDictionaryWriter.CreateTextWriter(stream, Encoding.UTF8, false); IXmlTextWriterInitializer writerInitializer = (IXmlTextWriterInitializer)textWriter; +12903 area-Serialization Port #12407 to 1.1.0 - Reflection on XmlConvert Not Working in Net Native This issue is for tracking porting #12407 to release/1.1.0 branch. Issue: XmlSerializer's reflection based serialization uses reflection to find XmlConvert's method and invoke it. This fails in Net Native due to the metadata info of XmlConvert is reduced away. +12904 area-Serialization Port #12389 to 1.1.0 - JsonDataContract.GetGeneratedReadWriteDelegates May Throw ArgumentNullException This issue is for tracking porting #12389 to release/1.1.0 branch. Issue: JsonDataContract.GetGeneratedReadWriteDelegates may throw ArgumentNullException in NetNative. ``` -------------------------------- Running Test: DataContractJsonSerializerTests.DCJS_ValidateExceptionOnUnspecifiedRootSerializationType Caught Unexpected exception:System.ArgumentNullException: ArgumentNull_Generic Arg_ParamName_Name at System.Collections.Generic.Dictionary$2.FindEntry(__Canon key) in f:\dd\ndp\fxcore\src\ System.Collections\System\Collections\Generic\Dictionary.cs:line 266 at System.Collections.Generic.Dictionary$2.TryGetValue(__Canon key, __Canon& value) in f:\ dd\ndp\fxcore\src\System.Collections\System\Collections\Generic\Dictionary.cs:line 434 at System.Runtime.Serialization.Json.JsonDataContract.GetGeneratedReadWriteDelegates($DataContract c) at System.Runtime.Serialization.Json.JsonDataContract.TryGetReadWriteDelegatesFromGeneratedAssembly($DataContract c) at System.Runtime.Serialization.Json.JsonClassDataContract.get_JsonFormatWriterDelegate() at System.Runtime.Serialization.Json.JsonClassDataContract.WriteJsonValueCore($XmlWriterDelegator jsonWriter, Object obj, $XmlObjectSerializerWriteContextComplexJson context, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.Json.JsonDataContract.WriteJsonValue($XmlWriterDelegator jsonWriter, Object obj, $XmlObje ctSerializerWriteContextComplexJson context, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.WriteJsonValue($JsonDataContract contract, $XmlWriter Delegator writer, Object graph, $XmlObjectSerializerWriteContextComplexJson context, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.WriteDataContractValue($DataContract data Contract, $XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType($DataContract dataContract, $XmlW riterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.InternalWriteObjectContent($XmlWriterDelegator writer , Object graph) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.InternalWriteObject($XmlWriterDelegator writer, Objec t graph) at System.Runtime.Serialization.XmlObjectSerializer.InternalWriteObject($XmlWriterDelegator writer, Object graph, $DataCo ntractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions($XmlWriterDelegator writer, Object graph, $DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions($XmlWriterDelegator writer, Object graph) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.WriteObject($XmlDictionaryWriter writer, Object graph ) at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.WriteObject(Stream stream, Object graph) at System.Runtime.Serialization.Json.DataContractJsonSerializer.WriteObject(Stream stream, Object graph) at DataContractJsonSerializerTests.DCJS_ValidateExceptionOnUnspecifiedRootSerializationType() in d:\dd\ProjectN\src\QA\To F\tests\FX\Conformance\System.Runtime.Serialization.Json\4.0.0.0\DataContractJsonSerializer.NetNative.cs:line 36 at EntryPointMain.
b__69() in d:\dd\ProjectN\src\QA\ToF\PN\x86\dbg\IL\FX\Conformance\System.Runtime.Serialization.Js on\4.0.0.0\DataContractJsonSerializerTests.main.cs:line 118 at System.Action.InvokeOpenStaticThunk() at System.Action.Invoke() at CoreFXTestLibrary.Internal.Runner.RunTestMethod() in d:\dd\ProjectN\src\QA\ToF\tests\FX\Conformance\Common\Xunit\Inter nal\Runner.cs:line 170 at CoreFXTestLibrary.Internal.Runner.RunTest($TestInfo t) in d:\dd\ProjectN\src\QA\ToF\tests\FX\Conformance\Common\Xunit\ Internal\Runner.cs:line 95 ---- Test FAILED --------------- ``` +12905 area-System.Net Add Microsoft.Win32.Primitives package dependency for S.Net.Requests @geoffkizer looks like your PR https://github.com/dotnet/corefx/pull/12594 was missing this dependency. I'm not sure how CI ever passed without it. Perhaps there it was coming in transitively and isn't now at any rate the direct dependency should be included so here it is. +12906 area-Serialization Port #12389 to 1.1.0 - Fixed JsonDataContract.GetGeneratedReadWriteDelegates. Fixed the issue that JsonDataContract.GetGeneratedReadWriteDelegates may throw ArgumentNullException in NetNative. Fix #12904 cc: @zhenlan @mconnew @huanwu +12907 area-Serialization Porting #12407 to 1.1.0 - Fixed Reflection on XmlConvert Not Working in Net Native. The issue happens in Net Native only. The issue is that XmlConvert's metadata info by default is not kept by Net Native toolchain. This caused reflection on XmlConvert's methods not working. The fix is to call XmlConvert's methods directly instead of using reflection. Fix #12903 /cc: @mconnew @zhenlan @huanwu +12908 area-System.Net Failure in System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFromV6BoundToSpecificV6_Success https://ci.dot.net/job/dotnet_corefx/job/release_1.1.0/job/centos7.1_debug_prtest/114/console ``` 14:43:58 System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFromV6BoundToSpecificV6_Success [FAIL] 14:43:58 Assert.Throws() Failure 14:43:58 Expected: typeof(System.Exception) 14:43:58 Actual: (No exception was thrown) 14:43:58 Stack Trace: 14:43:58 at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFrom_Helper(IPAddress listenOn, IPAddress connectTo, Boolean expectedToTimeout) 14:43:58 at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFromV6BoundToSpecificV6_Success() 14:44:00 Finished: System.Net.Sockets.Tests 14:44:00 14:44:00 === TEST EXECUTION SUMMARY === 14:44:00 /mnt/resource/j/workspace/dotnet_corefx/release_1.1.0/centos7.1_debug_prtest/Tools/tests.targets(261,5): warning : System.Net.Sockets.Tests Total: 471, Errors: 0, Failed: 1, Skipped: 0, Time: 3.677s ``` +12909 area-Serialization Add multiple tests. Add tests for the following API. Lots of tests fail due to incomplete implementation. First version of tests and need more improvement and verification. T:System.Xml.Serialization.XmlTypeMapping T:System.Xml.Serialization.XmlSerializationReader T:System.Xml.Serialization.XmlSerializationWriter T:System.Runtime.Serialization.Json.JsonReaderWriterFactory M:System.Runtime.Serialization.Json.JsonReaderWriterFactory.CreateJsonReader(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas) M:System.Runtime.Serialization.Json.JsonReaderWriterFactory.CreateJsonWriter(System.IO.Stream,System.Text.Encoding) T:System.Runtime.Serialization.XsdDataContractExporter T:System.Runtime.Serialization.XPathQueryGenerator T:System.Runtime.Serialization.ExtensionDataObject T:System.Runtime.Serialization.IExtensibleDataObject M:System.Xml.XmlDictionaryReader.ReadElementContentAsDateTime M:System.Xml.XmlDictionaryReader.CreateMtomReader(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas) M:System.Xml.XmlDictionaryWriter.CreateMtomWriter(System.IO.Stream,System.Text.Encoding,System.Int32,System.String) M:System.Xml.XmlDictionaryReader.CreateTextReader(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose) T:System.Xml.IStreamProvider M:System.Xml.IStreamProvider.GetStream M:System.Xml.IStreamProvider.ReleaseStream(System.IO.Stream) M:System.Xml.XmlDictionaryWriter.WriteBase64Async(System.Byte[],System.Int32,System.Int32) M:System.Xml.XmlDictionaryWriter.WriteValueAsync(System.Xml.IStreamProvider) M:System.Xml.XmlDictionaryWriter.WriteValue(System.Xml.IStreamProvider) M:System.Xml.XmlDictionaryWriter.WriteBase64Async(System.Byte[],System.Int32,System.Int32) T:System.Xml.IXmlBinaryReaderInitializer M:System.Xml.IXmlBinaryReaderInitializer.SetInput(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose) T:System.Xml.IXmlBinaryWriterInitializer M:System.Xml.IXmlBinaryWriterInitializer.SetOutput(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlBinaryWriterSession,System.Boolean) T:System.Xml.IXmlMtomWriterInitializer M:System.Xml.IXmlMtomWriterInitializer.SetOutput(System.IO.Stream,System.Text.Encoding,System.Int32,System.String,System.String,System.String,System.Boolean,System.Boolean) T:System.Xml.IXmlMtomReaderInitializer M:System.Xml.IXmlMtomReaderInitializer.SetInput(System.Byte[],System.Int32,System.Int32,System.Text.Encoding[],System.String,System.Xml.XmlDictionaryReaderQuotas,System.Int32,System.Xml.OnXmlDictionaryReaderClose) T:System.Xml.IXmlMtomWriterInitializer M:System.Xml.IXmlMtomWriterInitializer.SetOutput(System.IO.Stream,System.Text.Encoding,System.Int32,System.String,System.String,System.String,System.Boolean,System.Boolean) T:System.Xml.IXmlTextReaderInitializer M:System.Xml.IXmlTextReaderInitializer.SetInput(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose) T:System.Xml.IXmlTextWriterInitializer M:System.Xml.IXmlTextWriterInitializer.SetOutput(System.IO.Stream,System.Text.Encoding,System.Boolean) T:System.Xml.IXmlTextReaderInitializer M:System.Xml.IXmlTextReaderInitializer.SetInput(System.Byte[],System.Int32,System.Int32,System.Text.Encoding,System.Xml.XmlDictionaryReaderQuotas,System.Xml.OnXmlDictionaryReaderClose) @shmao @zhenlan @mconnew +12910 area-System.Runtime Implement the missing members in the System.Runtime.CompilerServices … …namespace for netstandard2.0 Fixes #12257 +12912 area-System.Collections Test failure: System.Collections.Concurrent.Tests.BlockingCollectionTests/TestDebuggerAttributes Opened on behalf of @venkat-raman251 The test `System.Collections.Concurrent.Tests.BlockingCollectionTests/TestDebuggerAttributes` has failed. System.InvalidOperationException : The API 'System.Collections.Concurrent.BlockingCollection`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].m_collection' cannot be used on the current platform. See http://go.microsoft.com/fwlink/?LinkId=248273 for more information. ``` Stack Trace: at System.Reflection.RtFieldInfo.InternalGetValue(Object obj, StackCrawlMark& stackMark) at System.Reflection.RtFieldInfo.GetValue(Object obj) at System.Diagnostics.DebuggerAttributes.ValidateDebuggerDisplayReferences(Object obj) in D:\A\_work\22\s\corefx\src\Common\tests\System\Diagnostics\DebuggerAttributes.cs:line 122 at System.Collections.Concurrent.Tests.BlockingCollectionTests.TestDebuggerAttributes() in D:\A\_work\22\s\corefx\src\System.Collections.Concurrent\tests\BlockingCollectionTests.cs:line 176 ``` Build : Master - 20161014.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug +12913 area-System.Diagnostics Microsoft.DiaSymReader.Native.x86.dll ends up in nuget package "Microsoft.DiaSymReader.Native 1.4.0 includes a .props file as included below. This includes a condition `!Exists('project.json') AND !Exists('$(MSBuildProjectName).project.json')`. The deprecation of project.json means that when users upgrade from a project.json build system to a MSBuild system (and thus deletes project.json), this .props file will include Microsoft.DiaSymReader.Native.{arch}.dll as 'content' in all projects using the .NET Core SDK. Example: dotnet build3 on a netcoreapp will copy the file to the output directory ``` _CopyOutOfDateSourceItemsToOutputDirectory: Copying file from ""C:\Users\namc\.nuget\packages\microsoft.diasymreader.native\1.4.0\runtimes\win\native\Microsoft.DiaSymReader.Native.x86.dll"" to ""bin\Debug\netcoreapp1.0\Microsoft.DiaSymReader.Native.x86.dll"". Copying file from ""C:\Users\namc\.nuget\packages\microsoft.diasymreader.native\1.4.0\runtimes\win\native\Microsoft.DiaSymReader.Native.amd64.dll"" to ""bin\Debug\netcoreapp1.0\Microsoft.DiaSymReader.Native.amd64.dll"". ``` The extra file in the output directory may be harmless for ""dotnet run"", but it's still wrong for .NET Core projects which resolve native assets from the nuget cache. **The worse problem is ""dotnet pack3""**, which includes all 'content' items. This means Microsoft.DiaSymReader.Native.x86.dll and Microsoft.DiaSymReader.Native.amd64.dll will end up in the nuget package of anyone performing ""dotnet pack3"" on a csproj that uses Microsoft.NETCore.App. The offending props file, from .nuget\packages\microsoft.diasymreader.native\1.4.0\build\microsoft.diasymreader.native.props ``` xml PreserveNewest false PreserveNewest false ``` cc @emgarten @piotrpMSFT " +12914 area-System.Net Implement missing methods from WebHeaderCollection Fixes https://github.com/dotnet/corefx/issues/12139 Make WebHeaderCollection derive from NameValueCollection and implement ISerializable interface.Instead of copying the whole file from FX , this change adapt the current implementation to add the required methods. +12915 area-System.Collections API Proposal: Adding Array.IndexOf and LastIndexOf overloads that accept a comparer. ## Background Currently, `Array.IndexOf` does not accept a comparer parameter and uses the default equality comparer. This means that people who want to find a value in an array with a custom comparer (e.g. a collection type that accepts an `IEqualityComparer`) typically resort to using for-loops or LINQ to find the value. These solutions are - slower than calling `Array.IndexOf` directly since it is specialized in such a way to avoid virtual method calls, so optimal implementations have to do something like [`ImmutableArray`](https://github.com/dotnet/corefx/blob/master/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.cs#L360) where they check if the comparer is the default comparer and use `IndexOf` if that's the case, and otherwise fall back to a for-loop. - not as readable as just using `IndexOf`, but currently necessary since it doesn't accept a comparer. ## Proposal We should simply add overloads to `IndexOf` and `LastIndexOf` that accept comparers. ``` cs namespace System { public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable { public static int IndexOf(T[] array, T value, IEqualityComparer comparer); public static int IndexOf(T[] array, T value, int startIndex, IEqualityComparer comparer); public static int IndexOf(T[] array, T value, int startIndex, int count, IEqualityComparer comparer); public static int LastIndexOf(T[] array, T value, IEqualityComparer comparer); public static int LastIndexOf(T[] array, T value, int startIndex, IEqualityComparer comparer); public static int LastIndexOf(T[] array, T value, int startIndex, int count, IEqualityComparer comparer); } } ``` +12916 area-System.Net Port remaining methods in CookieCollection and CookieContainer Fixes https://github.com/dotnet/corefx/issues/12125 The required methods already exists , but were internal. This change just expose them from the public contracts. +12917 area-System.Net Port System.Net.WebSockets.WebSocketException missing members Fixes #12150 Adding Overridden GetObjectData(..) +12919 area-System.Reflection Consolidate TypeBuilder.Define* tests Makes it easier to add new tests without duplicating test data everywhere /cc @AtsushiKan @stephentoub +12921 area-System.Runtime Type.GetRuntimeMethod returns wrong method "``` cs [Test] public void GetRuntimeMethodTest() { var type = typeof(Int64?); var paremeterType = typeof(int); var method = type.GetRuntimeMethod(""op_Implicit"", new[] {paremeterType}); Assert.AreEqual(paremeterType, method.GetParameters()[0].ParameterType); } ``` in this case `GetRuntimeMethod` returns method with `Int64` parameter, while I'm looking for `Int32` " +12922 area-System.Linq Don't allow Expression.Parameter and Expression.Variable to have open generic types Fixes #8081 /cc @stephentoub @bartdesmet @svick @vsadov +12923 area-System.Net Fix null reference exception in NetworkAvailabilityChanged on Linux If NetworkAddressChanged has a subscriber and NetworkAvailabilityChanged doesn't, attempting to remove a delegate from NetworkAvailabilityChanged results in a NullReferenceException as a null timer static field is dereferenced. This was failing intermittently in tests because the NetworkAddressChanged and NetworkAvailabilityChanged tests were in different classes and thus could potentially run in parallel. If the NetworkAvailabilityChanged_JustRemove_Success test ran while one of the NetworkAddressChanged tests was in flight, it would fail with a null ref. I've fixed the product bug by adding a null check. I've also updated the tests so that all of these event handler tests are in the same class, and added explicit tests for this case that will deterministically fail if the product regresses. Fixes https://github.com/dotnet/corefx/issues/12886 cc: @mellinoe, @davidsh, @cipop +12924 area-System.Net Workaround compiler warning in test UnixGssFakeNegotiateStream class Simple change to avoid passing this _context field by ref to suppress the warning: ``` 2016-10-22T01:52:17.1092891Z UnixGssFakeNegotiateStream.cs(57,66): error CS0197: Using 'UnixGssFakeNegotiateStream._context' as a ref or out value or taking its address may cause a runtime exception because it is a field of a marshal-by-reference class [D:\A\_work\32\s\corefx\src\System.Net.Security\tests\FunctionalTests\System.Net.Security.Tests.csproj] ``` cc: @weshaggard, @safern +12925 area-System.Net Create and use System.Net.ServicePoint assembly - Creates a new System.Net.ServicePoint contract - Changes System.Net.Requests and System.Net.Mail to depend on it - Moves ServicePoint, ServicePointManager, BindIPEndPoint, and SecurityProtocolType down into it from System.Net.Requests - Deletes the obsolete ICertificatePolicy and associated ServicePointManager.CertificatePolicy member that were preventing this separation - Adds ServicePoint property back to SmtpClient, now that the type is available to System.Net.Mail, and provides a basic implementation - Changes the internal TlsStream (used by SmtpClient and FtpWebRequest) to respect ServicePointManager.ServerCertificateValidationCallback, ServicePointManager.CheckCertificateRevocationList, and ServicePointManager.SecurityProtocol - Fixes HttpWebRequest to respect ServicePointManager.SecurityProtocol - Fixes FtpWebRequest to cache its ServicePoint instance Fixes https://github.com/dotnet/corefx/issues/12774 cc: @davidsh, @cipop, @weshaggard, @geoffkizer, @Priya91, @ericeil, @tijoytom +12926 area-System.Security "RC2CipherTests failing on Win7 with ""unknown error""" "e.g. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win7_debug/42/consoleText ``` System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2ReuseEncryptorDecryptor [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Unknown error (0xc10000bb) Stack Trace: at Internal.NativeCrypto.Cng.SetEffectiveKeyLength(SafeKeyHandle hAlg, Int32 effectiveKeyLength) at Internal.Cryptography.BasicSymmetricCipherBCrypt..ctor(SafeAlgorithmHandle algorithm, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransformCore(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Int32 blockSize, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransform(Byte[] rgbKey, Byte[] rgbIV, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateEncryptor() d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RC2\RC2CipherTests.cs(176,0): at System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2ReuseEncryptorDecryptor() System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2ExplicitEncryptorDecryptor_WithIV [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Unknown error (0xc10000bb) Stack Trace: at Internal.NativeCrypto.Cng.SetEffectiveKeyLength(SafeKeyHandle hAlg, Int32 effectiveKeyLength) at Internal.Cryptography.BasicSymmetricCipherBCrypt..ctor(SafeAlgorithmHandle algorithm, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransformCore(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Int32 blockSize, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransform(Byte[] rgbKey, Byte[] rgbIV, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RC2\RC2CipherTests.cs(214,0): at System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2ExplicitEncryptorDecryptor_WithIV() System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(cipherMode: ECB, paddingMode: None, key: \""3000000000000000\"", iv: null, textHex: \""1000000000000001\"", expectedDecrypted: null, expectedEncrypted: \""30649EDF9BE7D2C2\"") [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Unknown error (0xc10000bb) Stack Trace: at Internal.NativeCrypto.Cng.SetEffectiveKeyLength(SafeKeyHandle hAlg, Int32 effectiveKeyLength) at Internal.Cryptography.BasicSymmetricCipherBCrypt..ctor(SafeAlgorithmHandle algorithm, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransformCore(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Int32 blockSize, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransform(Byte[] rgbKey, Byte[] rgbIV, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateEncryptor() d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\CryptoUtils.cs(16,0): at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RC2\RC2CipherTests.cs(158,0): at System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(CipherMode cipherMode, PaddingMode paddingMode, String key, String iv, String textHex, String expectedDecrypted, String expectedEncrypted) System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(cipherMode: ECB, paddingMode: None, key: \""FFFFFFFFFFFFFFFF\"", iv: null, textHex: \""FFFFFFFFFFFFFFFF\"", expectedDecrypted: null, expectedEncrypted: \""278B27E42E2F0D49\"") [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Unknown error (0xc10000bb) Stack Trace: at Internal.NativeCrypto.Cng.SetEffectiveKeyLength(SafeKeyHandle hAlg, Int32 effectiveKeyLength) at Internal.Cryptography.BasicSymmetricCipherBCrypt..ctor(SafeAlgorithmHandle algorithm, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransformCore(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Int32 blockSize, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransform(Byte[] rgbKey, Byte[] rgbIV, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateEncryptor() d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\CryptoUtils.cs(16,0): at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RC2\RC2CipherTests.cs(158,0): at System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(CipherMode cipherMode, PaddingMode paddingMode, String key, String iv, String textHex, String expectedDecrypted, String expectedEncrypted) System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(cipherMode: ECB, paddingMode: None, key: \""88bca90e90875a7f0f79c384627bafb2\"", iv: null, textHex: \""0000000000000000\"", expectedDecrypted: null, expectedEncrypted: \""2269552ab0f85ca6\"") [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Unknown error (0xc10000bb) Stack Trace: at Internal.NativeCrypto.Cng.SetEffectiveKeyLength(SafeKeyHandle hAlg, Int32 effectiveKeyLength) at Internal.Cryptography.BasicSymmetricCipherBCrypt..ctor(SafeAlgorithmHandle algorithm, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransformCore(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Int32 blockSize, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransform(Byte[] rgbKey, Byte[] rgbIV, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateEncryptor() d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\CryptoUtils.cs(16,0): at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RC2\RC2CipherTests.cs(158,0): at System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(CipherMode cipherMode, PaddingMode paddingMode, String key, String iv, String textHex, String expectedDecrypted, String expectedEncrypted) System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(cipherMode: ECB, paddingMode: None, key: \""87FF0737F868378F\"", iv: null, textHex: \""5468697320697320612073656E74656E636520746861742069\""..., expectedDecrypted: null, expectedEncrypted: \""F6DF2E83811D6CB0C8A5830069D16F6A51C985D70038525390\""...) [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Unknown error (0xc10000bb) Stack Trace: at Internal.NativeCrypto.Cng.SetEffectiveKeyLength(SafeKeyHandle hAlg, Int32 effectiveKeyLength) at Internal.Cryptography.BasicSymmetricCipherBCrypt..ctor(SafeAlgorithmHandle algorithm, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransformCore(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Int32 blockSize, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransform(Byte[] rgbKey, Byte[] rgbIV, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateEncryptor() d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\CryptoUtils.cs(16,0): at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RC2\RC2CipherTests.cs(158,0): at System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(CipherMode cipherMode, PaddingMode paddingMode, String key, String iv, String textHex, String expectedDecrypted, String expectedEncrypted) System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(cipherMode: ECB, paddingMode: PKCS7, key: \""87FF0737F868378F\"", iv: null, textHex: \""5468697320697320612073656E74656E636520746861742069\""..., expectedDecrypted: null, expectedEncrypted: \""F6DF2E83811D6CB0C8A5830069D16F6A51C985D70038525390\""...) [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Unknown error (0xc10000bb) Stack Trace: at Internal.NativeCrypto.Cng.SetEffectiveKeyLength(SafeKeyHandle hAlg, Int32 effectiveKeyLength) at Internal.Cryptography.BasicSymmetricCipherBCrypt..ctor(SafeAlgorithmHandle algorithm, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransformCore(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Int32 blockSize, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransform(Byte[] rgbKey, Byte[] rgbIV, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateEncryptor() d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\CryptoUtils.cs(16,0): at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RC2\RC2CipherTests.cs(158,0): at System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(CipherMode cipherMode, PaddingMode paddingMode, String key, String iv, String textHex, String expectedDecrypted, String expectedEncrypted) System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(cipherMode: ECB, paddingMode: Zeros, key: \""87FF0737F868378F\"", iv: null, textHex: \""5468697320697320612073656E74656E636520746861742069\""..., expectedDecrypted: \""5468697320697320612073656E74656E636520746861742069\""..., expectedEncrypted: \""F6DF2E83811D6CB0C8A5830069D16F6A51C985D70038525390\""...) [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Unknown error (0xc10000bb) Stack Trace: at Internal.NativeCrypto.Cng.SetEffectiveKeyLength(SafeKeyHandle hAlg, Int32 effectiveKeyLength) at Internal.Cryptography.BasicSymmetricCipherBCrypt..ctor(SafeAlgorithmHandle algorithm, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransformCore(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Int32 blockSize, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransform(Byte[] rgbKey, Byte[] rgbIV, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateEncryptor() d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\CryptoUtils.cs(16,0): at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RC2\RC2CipherTests.cs(158,0): at System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(CipherMode cipherMode, PaddingMode paddingMode, String key, String iv, String textHex, String expectedDecrypted, String expectedEncrypted) System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(cipherMode: CBC, paddingMode: None, key: \""87FF0737F868378F\"", iv: \""E531E789E3E1BB6F\"", textHex: \""5468697320697320612073656E74656E636520746861742069\""..., expectedDecrypted: null, expectedEncrypted: \""85B5D998F35ECD98DB886798170F64BA2DBA4FE902791CDE90\""...) [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Unknown error (0xc10000bb) Stack Trace: at Internal.NativeCrypto.Cng.SetEffectiveKeyLength(SafeKeyHandle hAlg, Int32 effectiveKeyLength) at Internal.Cryptography.BasicSymmetricCipherBCrypt..ctor(SafeAlgorithmHandle algorithm, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransformCore(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Int32 blockSize, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransform(Byte[] rgbKey, Byte[] rgbIV, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateEncryptor() d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\CryptoUtils.cs(16,0): at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RC2\RC2CipherTests.cs(158,0): at System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(CipherMode cipherMode, PaddingMode paddingMode, String key, String iv, String textHex, String expectedDecrypted, String expectedEncrypted) System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(cipherMode: CBC, paddingMode: PKCS7, key: \""87FF0737F868378F\"", iv: \""E531E789E3E1BB6F\"", textHex: \""5468697320697320612073656E74656E636520746861742069\""..., expectedDecrypted: null, expectedEncrypted: \""85B5D998F35ECD98DB886798170F64BA2DBA4FE902791CDE90\""...) [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Unknown error (0xc10000bb) Stack Trace: at Internal.NativeCrypto.Cng.SetEffectiveKeyLength(SafeKeyHandle hAlg, Int32 effectiveKeyLength) at Internal.Cryptography.BasicSymmetricCipherBCrypt..ctor(SafeAlgorithmHandle algorithm, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransformCore(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Int32 blockSize, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransform(Byte[] rgbKey, Byte[] rgbIV, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateEncryptor() d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\CryptoUtils.cs(16,0): at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RC2\RC2CipherTests.cs(158,0): at System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(CipherMode cipherMode, PaddingMode paddingMode, String key, String iv, String textHex, String expectedDecrypted, String expectedEncrypted) System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(cipherMode: CBC, paddingMode: Zeros, key: \""87FF0737F868378F\"", iv: \""E531E789E3E1BB6F\"", textHex: \""5468697320697320612073656E74656E636520746861742069\""..., expectedDecrypted: \""5468697320697320612073656E74656E636520746861742069\""..., expectedEncrypted: \""85B5D998F35ECD98DB886798170F64BA2DBA4FE902791CDE90\""...) [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Unknown error (0xc10000bb) Stack Trace: at Internal.NativeCrypto.Cng.SetEffectiveKeyLength(SafeKeyHandle hAlg, Int32 effectiveKeyLength) at Internal.Cryptography.BasicSymmetricCipherBCrypt..ctor(SafeAlgorithmHandle algorithm, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransformCore(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Int32 blockSize, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransform(Byte[] rgbKey, Byte[] rgbIV, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateEncryptor() d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\CryptoUtils.cs(16,0): at Test.Cryptography.CryptoUtils.Encrypt(SymmetricAlgorithm alg, Byte[] plainText, Int32 blockSizeMultipler) d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RC2\RC2CipherTests.cs(158,0): at System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2RoundTrip(CipherMode cipherMode, PaddingMode paddingMode, String key, String iv, String textHex, String expectedDecrypted, String expectedEncrypted) System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2ExplicitEncryptorDecryptor_NoIV [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Unknown error (0xc10000bb) Stack Trace: at Internal.NativeCrypto.Cng.SetEffectiveKeyLength(SafeKeyHandle hAlg, Int32 effectiveKeyLength) at Internal.Cryptography.BasicSymmetricCipherBCrypt..ctor(SafeAlgorithmHandle algorithm, CipherMode cipherMode, Int32 blockSizeInBytes, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransformCore(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Int32 effectiveKeyLength, Byte[] iv, Int32 blockSize, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateTransform(Byte[] rgbKey, Byte[] rgbIV, Boolean encrypting) at Internal.Cryptography.RC2Implementation.CreateEncryptor(Byte[] rgbKey, Byte[] rgbIV) d:\j\workspace\outerloop_win---b280fd23\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RC2\RC2CipherTests.cs(233,0): at System.Security.Cryptography.Encryption.RC2.Tests.RC2CipherTests.RC2ExplicitEncryptorDecryptor_NoIV() ``` cc: @steveharter, @bartonjs " +12927 area-Infrastructure Code coverage is broken As can be seen in the latest report, it's only providing coverage for a single assembly out of 143 built. http://dotnet-ci.cloudapp.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/ It's at least partially related to https://github.com/dotnet/buildtools/issues/1144, but I expect there are issues beyond that, as when that issue was opened, the code coverage report was showing coverage for more than just one assembly. cc: @karelz, @weshaggard, @MattGal, @mmitche +12928 area-System.Net Fix CredentialCache arg names in implementation "The names of arguments to several CredentialCache members are different between the CredentialCache implementation and the CredentialCache in the ref contract (the one in the ref contract is ""correct"" in that it matches both what's in desktop and what's in netstandard). Since the contract is correct, this isn't actually visible for a dev using the contract, but it is for a few exception types that end up including the name of the argument. To match desktop (and to make sense to the dev), the exceptions should contain the name used in the ref contract. Fixes https://github.com/dotnet/corefx/issues/12126 cc: @weshaggard, @davidsh, @cipop " +12929 area-System.Reflection Add EnumBuilder tests Continuing my break-all-the-things foray into the coreclr runtime, I present some more EnumBuilder tests! /cc @stephentoub @AtsushiKan +12930 area-System.Net Add missing NetworkInformation members - Fixed NetworkInformationException to derive from Win32Exception and override ErrorCode in contract - Fixed Ping to override Dispose in contract - Added NetworkInformationAccess, NetworkInformationPermission, and NetworkInformationPermissionAttribute to CAS compat lib Fixes https://github.com/dotnet/corefx/issues/12147 cc: @davidsh, @cipop, @ericeil, @weshaggard @weshaggard, the only thing I didn't do from the linked issue was make NetworkChange static, as although it could be and is listed as such in netstandard, it's not in desktop. Please let me know if it should be marked as static in the ref/src here. +12932 area-System.Net Consider making the echo test servers able to not pickup websocket data. "I've been trying to tighten a couple of WebSocket tests (specifically that [multiple outstanding `SendAsync` calls throws an exception](https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/tests/SendReceiveTest.cs#L85)), but ended up running into a problem: The internal, lower-level buffering means the data gets picked up, regardless of the delay in the server `Receive`ing the data. That is, in this: ```c# await cws.SendAsync( WebSocketData.GetBufferFromText("".delay5sec""), WebSocketMessageType.Text, true, CancellationToken.None); DateTime snd = DateTime.UtcNow; await cws.SendAsync( // second send WebSocketData.GetBufferFromText(""send buffer""), WebSocketMessageType.Text, true, CancellationToken.None); TimeSpan sndTime = DateTime.UtcNow - snd; DateTime rcv = DateTime.UtcNow; await cws.ReceiveAsync(WebSocketData.GetBufferFromText(""receive buffer""), CancellationToken.None); TimeSpan rcvTime = DateTime.UtcNow - rcv; ``` ... the second send completes almost instantaneously, while the receive delays 5 seconds. I need the opposite - that the _send_ delays 5 seconds, then the subsequent receive completes instantly. Note that my current assumption is that there's an underlying task on the server accepting reads even if the actual process is delayed for the 5 seconds, and thus I'm assuming we need a way to delay at a lower/outer level. If I'm wrong (like, if the data may also be buffered on the sender side, and thus not something the test may be able to handle), please educate me. " +12934 area-System.Globalization TestGetAsciiWithDot failing on several OSes @Clockwork-Muse, @tarekgh https://ci.dot.net/job/dotnet_corefx/job/master/job/opensuse42.1_release/384/ https://ci.dot.net/job/dotnet_corefx/job/master/job/opensuse42.1_debug/388/ ``` System.Globalization.Tests.IdnMappingGetAsciiTests.TestGetAsciiWithDot [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: (No exception was thrown) ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/fedora23_debug/449/ https://ci.dot.net/job/dotnet_corefx/job/master/job/fedora23_release/450/ ``` System.ArgumentException : Decoded string is not a valid IDN name. Parameter name: unicode Stack Trace: at System.Globalization.IdnMapping.GetAsciiCore(Char* unicode, Int32 count) at System.Globalization.IdnMapping.GetAscii(String unicode, Int32 index, Int32 count) at System.Globalization.IdnMapping.GetAscii(String unicode, Int32 index) at System.Globalization.IdnMapping.GetAscii(String unicode) /mnt/resource/j/workspace/dotnet_corefx/master/fedora23_debug/src/System.Globalization.Extensions/tests/IdnMapping/IdnMappingGetAsciiTests.cs(101,0): at System.Globalization.Tests.IdnMappingGetAsciiTests.TestGetAsciiWithDot() ``` I'll refer to my comment on the original PR: https://github.com/dotnet/corefx/pull/12783#discussion_r84326703 This is exactly the kind of wheel-spinning I wanted to avoid. I would have preferred if the test remained as it was. +12935 area-System.Net Improve performance of SslStream reading and writing This PR makes a significant dent in the allocations incurred while reading/writing an SslStream (though there is still more that can and should be done). I wrote a simple benchmark that creates a producer and a consumer, where the producer WriteAsyncs 10K 1024 byte buffers to an SslStream, and a consumer reads with 1024 byte buffers until all data is consumed. To try to keep things isolated from the rest of the networking stack (as some common types are shared, making analysis more difficult), the SslStreams wrap NamedPipeServer/ClientStreams. Prior to this change, the allocations end up looking like this: ![image](https://cloud.githubusercontent.com/assets/2642209/19627173/0e937eb8-990f-11e6-8ee4-72fcc3988fed.png) This PR does two things: 1. It removes some of the Task-related costs by switching away from using Task.Factory.FromAsync in SslStream.WriteAsync/ReadAsync. When Stream didn't provide the Begin/EndRead/Write methods in the contract, SslStream's Begin/End methods were internal, and the implementation of Read/WriteAsync used FromAsync to delegate to them. But the base Stream's Read/WriteAsync overloads have an optimized implementation for delegating to the Begin/End methods, taking advantage of some Task internals. Now that Stream does expose Begin/EndRead/Write and SslStream overrides those, we can remove the FromAsync calls and just let the base stream do its thing. (In the future, we can improve on this further by avoiding going through Begin/End at all, but for now this simple change improves the allocation profile.) 2. On Windows, every call to EncryptMessage and DecryptMessage ends up going through a generic helper for dealing with SSPI. The interface to these methods uses only safe code, so arrays of classes end up getting passed, and ends up having to do lots of expensive things in order to deal with arbitrary inputs. But the encrypt/decrypt operations are relatively simple, and we can avoid all of those costs by just going to the SSPI calls directly. Previously, every encrypt/decrypt call would allocate 4 SecurityBuffer instances, a SecurityBuffer[4] array, a SecBuffer[4] array, a GCHandle[4] array, a byte[4][] array, and a SecBufferDesc... after this change, all of those except for the SecBufferDesc are gone. With these changes, a new profile of the same scenario looks like: ![image](https://cloud.githubusercontent.com/assets/2642209/19627225/0d05f6e2-9910-11e6-90e9-4e40a901f795.png) reducing allocation numbers/size by ~70%. Throughput also increased by ~15%. The remaining allocations after this change are: - The SecBufferDesc allocated in EncryptMessage/DecryptMessage. (We can get rid of that by changing the type to a struct and changing the interface to take a `SecBufferDesc*` (it can't be a `ref SecBufferDesc` as we need to be able to pass in `null`). That impacts a lot of code paths, though, so I haven't done it in this change.) - The Task returned from ReadAsync/WriteAsync. (The one from ReadAsync is mostly unavoidable, but if we rewrite the implementation with async/await, if the underlying write operation completes synchronously, we should be able to avoid the task returned from WriteAsync.) - A BufferAsyncResult, AsyncProtocolRequest, and boxed Int32 for each read operation. (By rewriting these methods with async/await, we should be able to eliminate the boxed Int32 entirely, and replace the other two with smaller allocations associated with the async state machine, removing them altogether if the operation completes synchronously.) - A LazyAsyncResult and an AsyncProtocol Request for each write operation. (Same possibilities as above.) We can then further reduce these for the CopyToAsync scenario by ammortizing most of the read-related costs. (The ReadWriteTask allocations showing up in all of the traces are from the named pipe streams and can be ignored for the purposes of this PR.) Contributes to https://github.com/dotnet/corefx/issues/11826 cc: @davidsh, @cipop, @ericeil, @bartonjs, @davidfowl, @benaadams +12937 area-System.Net CurlHttpHandler throws exception when http status >= 600 "When parsing response headers CurlHttpHandler throws HttpRequestException when http status >= 600. Specifically relevant line is [here](https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.Net.Http/src/System/Net/Http/Unix/CurlResponseHeaderReader.cs#L46) . This produces different behavior when running on windows platform (when WinHttpHandler is used, which doesn't implements such explicit validation) and on linux platform (when CurlHttpHandler is used). Expected behavior: should be identical on both platforms. Leave to client an option to call response.EnsureSuccessStatusCode() to validate the status code. Example code: ``` cs public static void Main(string[] args) { var tasks = new[] { 90, 99, 200, 300, 400, 500, 600, 700, 800, 900, 999, 1000, 1100 } .Select(r => new { Status = r, Task = Task.Run(async () => { try { using (var client = new HttpClient()) { var response = await client.GetAsync($""https://httpbin.org/status/{r}""); return $""response status: {response.StatusCode}""; } } catch (HttpRequestException e) { return $""exception: {e.Message}""; } })}) .ToArray(); foreach (var t in tasks) { t.Task.Wait(5000); Console.WriteLine($""For status {t.Status} got {t.Task.Result}""); } Console.ReadKey(); } ``` Output on Windows: ``` For status 90 got exception: An error occurred while sending the request. For status 99 got exception: An error occurred while sending the request. For status 200 got response status: OK For status 300 got response status: MultipleChoices For status 400 got response status: BadRequest For status 500 got response status: InternalServerError For status 600 got response status: 600 For status 700 got response status: 700 For status 800 got response status: 800 For status 900 got response status: 900 For status 999 got response status: 999 For status 1000 got exception: An error occurred while sending the request. For status 1100 got exception: An error occurred while sending the request. ``` Output on Linux: ``` For status 90 got exception: The server returned an invalid or unrecognized response. For status 99 got exception: The server returned an invalid or unrecognized response. For status 200 got response status: OK For status 300 got response status: MultipleChoices For status 400 got response status: BadRequest For status 500 got response status: InternalServerError For status 600 got exception: The server returned an invalid or unrecognized response. For status 700 got exception: The server returned an invalid or unrecognized response. For status 800 got exception: The server returned an invalid or unrecognized response. For status 900 got exception: The server returned an invalid or unrecognized response. For status 999 got exception: The server returned an invalid or unrecognized response. For status 1000 got exception: The server returned an invalid or unrecognized response. For status 1100 got exception: The server returned an invalid or unrecognized response. ``` " +12938 area-System.Net Mandatory http response status should be 100..1000 To have same behavior as WinHttpHandler. Related issue: https://github.com/dotnet/corefx/issues/12937 +12939 area-System.Net Unhandled exception in System.Net.Security tests on Windows https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug_prtest/64/consoleText ``` Unhandled Exception: System.InvalidOperationException: This operation is only allowed using a successfully authenticated context. at System.Net.Security.SslState.CheckThrow(Boolean authSuccessCheck, Boolean shutdownCheck) at System.Net.Security.SslState.get_SecureStream() at System.Net.Security.SslStream.EndRead(IAsyncResult asyncResult) at System.Net.Security.Tests.DummyTcpServer.OnReceive(IAsyncResult result) in D:\j\workspace\outerloop_win---7ad0ce03\src\System.Net.Security\tests\FunctionalTests\DummyTcpServer.cs:line 202 at System.Net.LazyAsyncResult.Complete(IntPtr userToken) at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) at System.Net.LazyAsyncResult.InvokeCallback(Object result) at System.Net.AsyncProtocolRequest.CompleteUser(Object userResult) at System.Net.Security.SslStreamInternal.StartFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStreamInternal.ReadHeaderCallback(AsyncProtocolRequest asyncRequest) at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) at System.Net.FixedSizeReader.CheckCompletionBeforeNextRead(Int32 bytes) at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) at System.Net.LazyAsyncResult.Complete(IntPtr userToken) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Net.ContextAwareResult.Complete(IntPtr userToken) at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) ``` cc: @davidsh, @cipop +12940 area-System.Net Test failure: System.Net.Tests.FtpWebRequestTest/GetResponse_ServerNameNotInDns_ThrowsWebException Opened on behalf of @jiangzeng The test `System.Net.Tests.FtpWebRequestTest/GetResponse_ServerNameNotInDns_ThrowsWebException` has failed. Assert.Equal() Failure\r Expected: NameResolutionFailure\r Actual: ConnectFailure ``` Stack Trace: at System.Net.Tests.FtpWebRequestTest.GetResponse_ServerNameNotInDns_ThrowsWebException() ``` Build : Master - 20161023.01 (Core Tests) Failing configurations: - Windows.7.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161023.01/workItem/System.Net.Requests.Tests/analysis/xunit/System.Net.Tests.FtpWebRequestTest~2FGetResponse_ServerNameNotInDns_ThrowsWebException +12941 area-System.Runtime Deserialization callback order in System.Runtime.Serialization.ObjectManager "The object listed here throws a Null reference exception on deserialization because the deserialization callbacks are raised from the outer object and then works its way in (causing an outer object to access an inner object that's not initialized yet.) Is this by design or a bug? ` var d = new Dictionary,string>(HashSet.CreateSetComparer()); d.Add(new HashSet() {""a""}, ""a"" ); d.Add(new HashSet() {""b""}, ""b""); ` See possible change to fix this in ObjectManager below: ``` internal virtual void AddOnDeserialization(DeserializationEventHandler handler) { // delete m_onDeserializationHandler = (DeserializationEventHandler)Delegate.Combine(m_onDeserializationHandler, handler); // add m_onDeserializationHandler = (DeserializationEventHandler)Delegate.Combine(handler, m_onDeserializationHandler); } ``` " +12943 area-System.Linq System.Linq.Expressions factories throw NullReferenceException with global fields and global methods "Consider the following test class I put together of all instances. I will submit a PR fixing these bugs if it you guys approve, so please let me know. Here I've used RefEmit to produce the global fields/methods, as C# doesn't support them ``` public class GlobalMethodGlobalField { [Fact] public void AndAlso_GlobalMethod_ThrowsNullReferenceException() { MethodInfo method = GlobalMethod(typeof(int), new Type[] { typeof(int), typeof(int) }); Assert.Throws(() => Expression.AndAlso(Expression.Constant(1), Expression.Constant(2), method)); } [Fact] public void Bind_GlobalMethod_ThrowsNullReferenceException() { Assert.Throws(() => Expression.Bind(GlobalMethod(typeof(int), new Type[0]), Expression.Constant(""abc""))); } [Fact] public void Default_TypeBuilder_CreateLambda_ThrowsNotSupportedException() { AssemblyBuilder assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName(""Assembly""), AssemblyBuilderAccess.Run); ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule(""Module""); TypeBuilder typeBuilder = moduleBuilder.DefineType(""Type""); DefaultExpression defaultExpression = Expression.Default(typeBuilder.AsType()); Assert.Throws(() => Expression.Lambda(defaultExpression)); LambdaExpression genericLambda = Expression.Lambda>(defaultExpression); Assert.Null(genericLambda.Compile()); } [Fact] public void ListBind_GlobalMethod_ThrowsNullReferenceException() { Assert.Throws(() => Expression.ListBind(GlobalMethod(typeof(int), new Type[0]), new ElementInit[0])); Assert.Throws(() => Expression.ListBind(GlobalMethod(typeof(int), new Type[0]), (IEnumerable)new ElementInit[0])); } [Fact] public void MemberBind_GlobalMethod_ThrowsNullReferenceException() { Assert.Throws(() => Expression.MemberBind(GlobalMethod(typeof(int), new Type[0]), new MemberBinding[0])); Assert.Throws(() => Expression.MemberBind(GlobalMethod(typeof(int), new Type[0]), (IEnumerable)new MemberBinding[0])); } [Fact] public void MemberBind_GlobalFieldInBindings_ThrowsNullReferenceException() { MemberBinding[] bindings = new MemberBinding[] { Expression.MemberBind(GlobalField()) }; Assert.Throws(() => Expression.MemberBind(GlobalField(), bindings)); Assert.Throws(() => Expression.MemberBind(GlobalField(), (IEnumerable)bindings)); } [Fact] public void New_GlobalMethodInMembers_ThrowsNullReferenceException() { ConstructorInfo constructor = typeof(ClassWithConstructor).GetConstructor(new Type[] { typeof(int) }); Expression[] arguments = new Expression[] { Expression.Constant(5) }; MemberInfo[] members = new MemberInfo[] { GlobalMethod(typeof(int), new Type[0]) }; Assert.Throws(() => Expression.New(constructor, arguments, members)); } [Fact] public void New_GlobalFieldInMembers_ThrowsNullReferenceException() { ConstructorInfo constructor = typeof(ClassWithConstructor).GetConstructor(new Type[] { typeof(int) }); Expression[] arguments = new Expression[] { Expression.Constant(5) }; MemberInfo[] members = new MemberInfo[] { GlobalField() }; Assert.Throws(() => Expression.New(constructor, arguments, members)); } [Fact] public void OrElse_GlobalMethod_ThrowsNullReferenceException() { MethodInfo method = GlobalMethod(typeof(int), new Type[] { typeof(int), typeof(int) }); Assert.Throws(() => Expression.OrElse(Expression.Constant(1), Expression.Constant(2), method)); } private class ClassWithConstructor { public ClassWithConstructor(int i) { } } private static MethodInfo GlobalMethod(Type returnType, Type[] parameterTypes) { AssemblyBuilder assembly = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName(""ABC""), AssemblyBuilderAccess.Run); ModuleBuilder module = assembly.DefineDynamicModule(""Module""); MethodBuilder globalMethod = module.DefineGlobalMethod(""GlobalMethod"", MethodAttributes.Public | MethodAttributes.Static, returnType, parameterTypes); globalMethod.GetILGenerator().Emit(OpCodes.Ret); module.CreateGlobalFunctions(); return module.GetMethod(globalMethod.Name); } private static FieldInfo GlobalField() { AssemblyBuilder assembly = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName(""ABC""), AssemblyBuilderAccess.Run); ModuleBuilder module = assembly.DefineDynamicModule(""Module""); FieldBuilder fieldBuilder = module.DefineInitializedData(""Name"", new byte[1], FieldAttributes.Public); module.CreateGlobalFunctions(); return module.GetField(fieldBuilder.Name); } } ``` @bartdesmet @VSadov @JonHanna " +12944 area-System.Net TestFailure: System.Net.Mail.Functional.Tests I encountered the following test failure while running `System.Net.Mail.Functional.Tests` unittest: ``` xUnit.net console test runner (32-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Net.Mail.Functional.Tests Discovered: System.Net.Mail.Functional.Tests Starting: System.Net.Mail.Functional.Tests System.Net.Mime.Tests.ContentDispositionTest.GetViaDateTimeProperty_WithUniversalTime_ShouldSetDateTimeKindAppropriately [FAIL] System.ArgumentOutOfRangeException : Hour, Minute, and Second parameters describe an un-representable DateTime. Stack Trace: at System.DateTime.TimeToTicks(Int32 hour, Int32 minute, Int32 second) /home/parjong/projects/dotnet/corefx/src/System.Net.Mail/tests/Functional/ContentDispositionTest.cs(255,0): at System.Net.Mime.Tests.ContentDispositionTest.GetViaDateTimeProperty_WithUniversalTime_ShouldSetDateTimeKindAppropriately() System.Net.Mime.Tests.ContentDispositionTest.SetDispositionViaConstructor_ShouldSetCorrectly_AndRespectCustomValues [FAIL] System.ArgumentOutOfRangeException : Hour, Minute, and Second parameters describe an un-representable DateTime. Stack Trace: at System.DateTime.TimeToTicks(Int32 hour, Int32 minute, Int32 second) /home/parjong/projects/dotnet/corefx/src/System.Net.Mail/tests/Functional/ContentDispositionTest.cs(323,0): at System.Net.Mime.Tests.ContentDispositionTest.SetDispositionViaConstructor_ShouldSetCorrectly_AndRespectCustomValues() System.Net.Mime.Tests.ContentDispositionTest.SetDateViaConstructor_ShouldPersistToPropertyAndPersistToParametersCollection [FAIL] System.ArgumentOutOfRangeException : Hour, Minute, and Second parameters describe an un-representable DateTime. Stack Trace: at System.DateTime.TimeToTicks(Int32 hour, Int32 minute, Int32 second) /home/parjong/projects/dotnet/corefx/src/System.Net.Mail/tests/Functional/ContentDispositionTest.cs(230,0): at System.Net.Mime.Tests.ContentDispositionTest.SetDateViaConstructor_ShouldPersistToPropertyAndPersistToParametersCollection() Finished: System.Net.Mail.Functional.Tests === TEST EXECUTION SUMMARY === System.Net.Mail.Functional.Tests Total: 158, Errors: 0, Failed: 3, Skipped: 0, Time: 6.288s ``` +12946 area-Infrastructure Change '--testTFM' option to '--testRelPath' and default value in run-test.sh Similar issue with #12440 Test path changed by #12634 (dotnet/buildtools#1121) - Change option name of `--testTFM` to `--testRelPath` to set relative path from project directory to test script. - Set default value to `default.netcoreapp1.1/netcoreapp1.1` cc/ @weshaggard @stephentoub +12947 area-System.IO System.IO.Compression: Add support for password protected files +12948 area-Meta Xamarin form using OPC UA Client SDK fails to Session Connect Working on creating a Xamarin.form Android App using Xamarin.form fails to Session.Connect. throws an error connection refused. Is the SDK supports Xamarin.forms? Is there samples on how to use the .net core sdk in xamarin forms? +12949 area-Infrastructure Lots of restore failures on Unix "A bunch of our Unix CI legs have begun to fail with errors like: ``` [10:44:16.36] Verifying all auto-upgradeable dependencies... [10:44:17.16] Verifying all auto-upgradeable dependencies... Done. [10:44:17.17] Restoring all packages... EXEC : error : The given key was not present in the dictionary. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/build.proj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/build.proj(106,5): error MSB3073: The command """"/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/Tools/dotnetcli/dotnet"" restore --no-cache --packages ""/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/packages"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://www.nuget.org/api/v2/ ""/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/src"" ""/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/pkg"""" exited with code 1. EXEC : error : The given key was not present in the dictionary. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/build.proj] /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/build.proj(106,5): error MSB3073: The command """"/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/Tools/dotnetcli/dotnet"" restore --no-cache --packages ""/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/packages"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://www.nuget.org/api/v2/ ""/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/src"" ""/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/pkg"""" exited with code 1. ``` or ``` [10:42:38.94] Verifying all auto-upgradeable dependencies... [10:42:39.90] Verifying all auto-upgradeable dependencies... Done. [10:42:39.90] Restoring all packages... [10:46:15.21] Restoring all packages...Done. /mnt/j/workspace/dotnet_corefx/master/linuxarmemulator_cross_release_prtest/build.proj(163,5): error : Exact package 'System.Security.Cryptography.OpenSSL 4.4.0-beta-24619-02' was not restored: found '' /mnt/j/workspace/dotnet_corefx/master/linuxarmemulator_cross_release_prtest/build.proj(163,5): error : Exact package 'System.Security.Cryptography.OpenSSL 4.4.0-beta-24619-02' was not restored: found '' ``` cc: @weshaggard, @joperezr, @bartonjs, @ericstj, @karelz " +12950 area-System.Linq Expression.Convet System.InvalidOperationException "This test sample ``` cs [Test] public void ConvertTest() { var from = typeof(Int64?); var to = typeof(int); var p = Expression.Constant((Int64?)101); var method = from.GetRuntimeMethod(""op_Implicit"", new[] {to}); var expression = Expression.Convert(p, to, method); } ``` falls with exception ``` System.InvalidOperationException : The operands for operator 'Convert' do not match the parameters of method 'op_Implicit'. at System.Linq.Expressions.Expression.GetMethodBasedCoercionOperator(ExpressionType unaryType, Expression operand, Type convertToType, MethodInfo method) at System.Linq.Expressions.Expression.Convert(Expression expression, Type type, MethodInfo method) at Tests.NetCore.ReflectionTests.ConvertTest() in F:\job\linq2db\Tests\Tests.NetCore\ReflectionTests.cs:line 51 ``` " +12952 area-System.IO Add CFG flag to arm64 clrcompression @gkhanna79 @morganbr +12953 area-System.Net New System.Net.Requests tests are in a mis-matching namespace @geoffkizer I noticed with the new FTP tests that their namespace is System.Net.Tests: https://github.com/dotnet/corefx/blob/d324c82ec8ada48d690eb65381606c93989e9654/src/System.Net.Requests/tests/FtpWebRequestTest.cs#L13 Ideally this should be System.Net.Requests.Tests as later on it makes it much easier to follow test results back to their test assembly. +12954 area-System.Diagnostics Missing some members of System.Diagnostics.Tracing.EventListener These were added between 4.6.1 and 4.6.3 and we're going to add them to NS2.0 so they need to be added to Core. ``` E:System.Diagnostics.Tracing.EventListener.EventSourceCreated M:System.Diagnostics.Tracing.EventListener.add_EventSourceCreated(System.EventHandler{System.Diagnostics.Tracing.EventSourceCreatedEventArgs}) M:System.Diagnostics.Tracing.EventListener.remove_EventSourceCreated(System.EventHandler{System.Diagnostics.Tracing.EventSourceCreatedEventArgs}) E:System.Diagnostics.Tracing.EventListener.EventWritten M:System.Diagnostics.Tracing.EventListener.add_EventWritten(System.EventHandler{System.Diagnostics.Tracing.EventWrittenEventArgs}) M:System.Diagnostics.Tracing.EventListener.remove_EventWritten(System.EventHandler{System.Diagnostics.Tracing.EventWrittenEventArgs}) T:System.Diagnostics.Tracing.EventSourceCreatedEventArgs M:System.Diagnostics.Tracing.EventSourceCreatedEventArgs.#ctor P:System.Diagnostics.Tracing.EventSourceCreatedEventArgs.EventSource M:System.Diagnostics.Tracing.EventSourceCreatedEventArgs.get_EventSource ``` +12955 area-System.Net Add some missing System.Net.Security These were added between 4.6.1 and 4.6.3 and we've decided to add such API to NS2.0 so we need them in Core. ``` F:System.Net.SecurityProtocolType.SystemDefault M:System.Net.Security.SslStream.AuthenticateAsClient(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Boolean) M:System.Net.Security.SslStream.AuthenticateAsClientAsync(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Boolean) M:System.Net.Security.SslStream.AuthenticateAsServer(System.Security.Cryptography.X509Certificates.X509Certificate,System.Boolean,System.Boolean) M:System.Net.Security.SslStream.AuthenticateAsServerAsync(System.Security.Cryptography.X509Certificates.X509Certificate,System.Boolean,System.Boolean) M:System.Net.Security.SslStream.BeginAuthenticateAsClient(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Boolean,System.AsyncCallback,System.Object) M:System.Net.Security.SslStream.BeginAuthenticateAsServer(System.Security.Cryptography.X509Certificates.X509Certificate,System.Boolean,System.Boolean,System.AsyncCallback,System.Object) M:System.Net.Security.SslStream.ShutdownAsync ``` +12956 area-System.Security Add missing members of DSACng and RSACng We want to bring NS2.0 up to match 4.6.3 so we are missing these members ``` P:System.Security.Cryptography.DSACng.KeyExchangeAlgorithm M:System.Security.Cryptography.DSACng.get_KeyExchangeAlgorithm P:System.Security.Cryptography.DSACng.SignatureAlgorithm M:System.Security.Cryptography.DSACng.get_SignatureAlgorithm P:System.Security.Cryptography.RSACng.KeyExchangeAlgorithm M:System.Security.Cryptography.RSACng.get_KeyExchangeAlgorithm P:System.Security.Cryptography.RSACng.SignatureAlgorithm M:System.Security.Cryptography.RSACng.get_SignatureAlgorithm M:System.Security.Cryptography.RSACng.DecryptValue(System.Byte[]) M:System.Security.Cryptography.RSACng.EncryptValue(System.Byte[]) ``` /cc @bartonjs @steveharter +12959 area-System.Net CookieCollection IsReadOnly do not match desktop CookieCollection IsReadlyOnly is hardcoded to return false , but desktop return true which is not correct. The desktop implementation returns true from this for collections created with the default ctor which is not correct. See comment for further details : https://github.com/dotnet/corefx/pull/12916/files#r84574719 +12962 area-System.Net Add HttpClient tests for doing client authentication with a certificate with no private key Providing a client auth cert which has no private key is a failure path that doesn't appear to be tested currently. With the addition of the test(s) we should look at what kinds of exceptions are being raised, and whether or not they have useful (or at least roughly consistent) information across Windows and Linux. (If they're both terrible messages maybe we should try to detect the situation right before failure and give a more informative message) SslStream could probably also use some love here. +12963 area-System.Diagnostics Reduce Process.Modules allocations "The implementation of `Process.Modules` builds up an array of intermediate `ModuleInfo` objects, which are then wrapped as `ProcessModule` objects and copied to a new `ProcessModuleCollection` (which involves an extra defensive `object[]` allocation/copy due to the way `ArrayList.AddRange` is implemented). These intermediate allocations/copying can be avoided by deleting the `ModuleInfo` concept and just using `ProcessModuleCollection` to build up the collection of `ProcessModule` objects directly. The implementation on Windows can be further improved by avoiding some more unnecessary allocations, such as using a single `char[]` instead of duplicate `StringBuilder` instances to retrieve each module's `ModuleName` and `FileName`, and changing `NtModuleInfo` to be a struct instead of a class. Profiling a simple app that just does `Process.GetCurrentProces().Modules` on Windows, yields the following results: Before: After: Further improvements could be made, such as potentially stackallocating some of the arrays on Windows, but this looked good enough for now. Also, a similar change could be made for `ThreadInfo`/`ProcessThread`, but I'll leave that to a subsequent PR. cc: @stephentoub " +12964 area-System.Security Add crypto provider wrappers "Port additional provider wrappers to System.Security.Cryptography.Algorithms and System.Security.Cryptography.Csp Address issues: https://github.com/dotnet/corefx/issues/9981 Add Crypto provider wrappers https://github.com/dotnet/corefx/issues/12323 Port additional System.Security.Cryptography.RandomNumberGenerator members Includes misc refactoring to RandomNumberGenerator files (to split into ""Implementation"" classes under the Interop folder). Did not add 'sealed' modifier to any classes that did not have them in desktop; at one point this was discussed as an option to help with wrapping (it wasn't necessary). @bartonjs please review. " +12965 area-System.Net port SetIPProtectionLevel and AllowNatTraversal Fixes #12462 Add Socket.SetIPProtectionLevel. Not supported on Unix (throws PlatformNotSupportedException) Add UdpClient.AllowNatTraversal and TcpListener.AllowNatTraversal which use this. +12966 area-System.Security Port Rfc2898DeriveBytes.CryptDeriveKey Likely need to call a BCrypt API not yet called (BCryptDeriveKey), and find equivalent on OpenSsl Update: BCrypt is not compatible with current desktop which uses CAPI, so this will throw PNSE. In addition, since this is exposing a thin layer on top of a native API, no attempt will be used to emulate this on OpenSsl so that will also throw PNSE. ``` public byte[] CryptDeriveKey(string algname, string alghashname, int keySize, byte[] rgbIV) ``` +12969 area-System.Net NetworkInterface.GetAllNetworkInterfaces() throws exception in cloud9 docker container. "`NetworkInterface.GetAllNetworkInterfaces()` always throws exception if try to run it in cloud9 docker container. Steps to reproduce: create new workspace at www.c9.io, then install .net core v1.0.1 and type `dotnet new`. Then add following line in the `Main` method ``` NetworkInterface.GetAllNetworkInterfaces(); ``` and type `dotnet run` (you're possible need to add necessary references to `project.json`). It throws exception: `````` Unhandled Exception: System.UnauthorizedAccessException: Access to the path '/sys/class/net/lo/operstate' is denied. ---> System.IO.IOException: Permission denied --- End of inner exception stack trace --- at System.IO.UnixFileStream.CheckFileCall(Int64 result, Boolean ignoreNotSupported) at System.IO.UnixFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.UnixFileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at System.IO.File.ReadAllText(String path) at System.Net.NetworkInformation.LinuxNetworkInterface.GetOperationalStatus(String name) at System.Net.NetworkInformation.LinuxNetworkInterface..ctor(String name) at System.Net.NetworkInformation.LinuxNetworkInterface.GetOrCreate(Dictionary`2 interfaces, String name) at System.Net.NetworkInformation.LinuxNetworkInterface.<>c__DisplayClass5_0.b__2(String name, LinkLayerAddressInfo* llAddr) at Interop.Sys.EnumerateInterfaceAddresses(IPv4AddressDiscoveredCallback ipv4Found, IPv6AddressDiscoveredCallback ipv6Found, LinkLayerAddressDiscoveredCallback linkLayerFound) at System.Net.NetworkInformation.LinuxNetworkInterface.GetLinuxNetworkInterfaces() at System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces() at ConsoleApplication.Program.Main(String[] args)``` `````` The bad thing that this exception cannot be catched by `catch (UnauthorizedAccessException)` nor `catch` block without type. What is weird, if try replace ``` NetworkInterface.GetAllNetworkInterfaces(); ``` with ``` File.ReadAllText(""/sys/class/net/lo/operstate"").Trim(); ``` Which is the cause of exception, then the exception can be handled by `catch (UnauthorizedAccessException)` block. So here is two issues: one of about access permissions to `/sys/class/net/lo/operstate` and second that the same exception sometimes can be handled sometimes can not. " +12970 area-System.IO Port arm64 cfg flag fix to release/1.1.0 ports https://github.com/dotnet/corefx/pull/12952 to release/1.1.0 @gkhanna79 +12972 area-System.Net Change System.Net.Mail ServicePoint to use mailto scheme Based on feedback from https://github.com/dotnet/corefx/pull/12925#discussion_r84731990 cc: @cipop, @Priya91 +12973 area-System.Net [release/1.1.0] Mandatory http response status should be 100..1000 Port https://github.com/dotnet/corefx/pull/12938 to release/1.1.0 +12974 area-System.Runtime Drop windows netstandard1.1 implementation to lib/netstandard1.1 In reference to issue #10445 cc @ericstj @weshaggard @karelz +12975 area-System.Linq XML doc comments for System.Linq.Expressions These were in a bit of an intermediate state, with typos here and there, some missing ones, and inconsistencies in the way `cref` attributes were specified. I did a bunch of search-and-replace operations to fix them up and filled in the gaps by taking documentation from MSDN. Also changing the `cref` style to omit `T:`, `P:`, `M:`, `F:` prefixes, which enables the C# compiler to check the references properly; this uncovered a bunch of incorrect references to non-existing types or members. I'm not sure what the plan is with regards to XML documentation and building it to produce .NET Core documentation online. For this assembly, with these changes, we can almost enable the XML doc generation in the `.csproj` file. There are a few more errors on ambiguous references in `cref` attributes and missing XML docs on some public members that should not be public (I'll submit a separate PR for that). CC @stephentoub +12976 area-System.Linq Some methods on Expression should not be public Noticed these are public for no obvious reason: - `ValidateArgumentTypes` - `ValidateArgumentCount` - `ValidateOneArgument` +12977 area-System.ComponentModel Remove if-defs from System.ComponentModel.TypeCoverter Fixes #12386 cc @danmosemsft @AlexGhiondea @joperezr +12979 area-Serialization Failure in InvalidComObjectExceptionTests.SerializationRoundTrip See [here](https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/2098/testReport/junit/System.Runtime.InteropServices.Tests/InvalidComObjectExceptionTests/SerializationRoundTrip): ``` MESSAGE: Assert.Equal() Failure\r\n ↓ (pos 266)\r\nExpected: ···tterHelpers.cs:line 31\r\nActual: ···tterHelpers.cs:line 26\r\n ↑ (pos 266) +++++++++++++++++++ STACK TRACE: at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterHelpers.AssertRoundtrips[T](T expected, Func`2[] additionalGetters) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Runtime\Serialization\Formatters\BinaryFormatterHelpers.cs:line 39 at System.Runtime.InteropServices.Tests.InvalidComObjectExceptionTests.SerializationRoundTrip() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.InteropServices\tests\System\Runtime\InteropServices\InvalidComObjectExceptionTests.cs:line 18 ``` +12983 area-System.Security Cannot instantiate System.Net.Http.HttpClientHandler on OS X with new package "## Repro Create a simple project on OS X with System.Net.Http.HttpClientHandler project.json ``` json { ""name"": ""test"", ""version"": ""1.0.0-*"", ""buildOptions"": { ""emitEntryPoint"": true }, ""frameworks"": { ""netcoreapp1.0"": { ""dependencies"": { ""System.Net.Http"": ""4.3.0-preview1-24530-04"", ""Microsoft.NETCore.App"": ""1.1.0-preview1-001100-00"" } } }, ""runtimes"": { ""osx.10.11-x64"": { } } } ``` Program.cs ``` csharp using System; class Program { static void Main(string[] args) { Console.WriteLine(""Hello World! "" + new System.Net.Http.HttpClientHandler()); } } ``` Use `dotnet run` to run the program. ## Expected `Hello World!System.Net.Http.HttpClientHandler` ## Actual Ctor exception ``` Unhandled Exception: System.TypeInitializationException: The type initializer for 'System.Net.Http.CurlHandler' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Http' threw an exception. ---> System.TypeInitializationException: The type initializer for 'HttpInitializer' threw an exception. ---> System.TypeInitializationException: The type initializer for 'CryptoInitializer' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'System.Security.Cryptography.Native.OpenSsl': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Interop.CryptoInitializer.EnsureOpenSslInitialized() at Interop.CryptoInitializer..cctor() --- End of inner exception stack trace --- at Interop.CryptoInitializer.Initialize() at Interop.HttpInitializer..cctor() --- End of inner exception stack trace --- at Interop.HttpInitializer.Initialize() at Interop.Http..cctor() --- End of inner exception stack trace --- at Interop.Http.GetSupportedFeatures() at System.Net.Http.CurlHandler..cctor() --- End of inner exception stack trace --- at System.Net.Http.CurlHandler..ctor() at System.Net.Http.HttpClientHandler..ctor() at Program.Main(String[] args) in /Users/vors/dev/dotnet-http-bug-test/Program.cs:line 7 ``` ## Environment OS X 10.11.6 x64 dotnet cli tool ``` PS /Users/vors/dev/dotnet-http-bug-test> dotnet --info .NET Command Line Tools (1.0.0-preview3-003857) Product Information: Version: 1.0.0-preview3-003857 Commit SHA-1 hash: 060762090d Runtime Environment: OS Name: Mac OS X OS Version: 10.11 OS Platform: Darwin RID: osx.10.11-x64 ``` " +12987 area-System.Data No Database connection from Ubuntu 14.04 LTS to SQL Server 2008 R2 I am facing problems connecting from an ASP.NET Core Web API using Entity Framework Core running on Ubuntu 14.04 LTS to a Windows Server 2008 R2 running a SQL Server 2008 R2. the Window Server 2008 R2 is unpatched. I installed SQL Server Service Pack 3, have TCP/IP enabled, have named pipes enabled. The app gets running and everything seems fine (swagger ui shows up shows the rest api) when I try to make an request from swagger it throws an System.Data.SqlClient exception in the background. I was adviced to this board [from here](https://github.com/aspnet/EntityFramework/issues/6830) Here I also show that I already used different versions of the connection string (WITHOUT named instances) all without success. I also seeked help on [Stackoverflow](http://stackoverflow.com/questions/40150357/asp-net-core-web-api-on-ubuntu-14-04-lts-doesnt-get-sql-connection-to-mssql-200?noredirect=1#comment67578524_40150357) Hopefully, someone here can point me to the error or can confirm that this is an issue. .... System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 35 - An internal exception was caught) ---> System.AggregateException: One or more errors occurred. (No such device or address) ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException: No such device or address at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.SqlClient.SNI.SNITCPHandle.d__22.MoveNext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait(TimeSpan timeout) at System.Data.SqlClient.SNI.SNITCPHandle..ctor(String serverName, Int32 port, Int64 timerExpire, Object callbackObject, Boolean parallel) --- End of inner exception stack trace --- at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open() at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext() at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.d__3`1.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.d__15`2.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext() at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeList(JsonWriter writer, IEnumerable values, JsonArrayContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType) at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.WriteObject(TextWriter writer, Object value) at Microsoft.AspNetCore.Mvc.Formatters.JsonOutputFormatter.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__32.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__31.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__29.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Builder.RouterMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.ApplicationInsights.AspNetCore.ExceptionTrackingMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.ApplicationInsights.AspNetCore.RequestTrackingMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() ..... +12991 area-System.Runtime GCNotifiicationTests failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug_prtest/73/consoleText ``` Error - WaitForFullGCApproach result not Cancelled Exception from RemoteExecutorConsoleApp(System.Runtime.Tests, Version=4.2.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb, System.Tests.GCExtendedTests+<>c, b__3_0): Assembly: System.Runtime.Tests, Version=4.2.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb Type: System.Tests.GCExtendedTests+<>c Method: Int32 b__3_0() Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Xunit.Sdk.TrueException: Assert.True() Failure Expected: True Actual: False at Xunit.Assert.True(Nullable`1 condition, String userMessage) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.assert\Asserts\BooleanAsserts.cs:line 90 at System.Tests.GCExtendedTests.<>c.b__3_0() in D:\j\workspace\outerloop_win---7ad0ce03\src\System.Runtime\tests\System\GCTests.netstandard1.7.cs:line 78 --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at RemoteExecutorConsoleApp.Program.Main(String[] args) Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Xunit.Sdk.TrueException: Assert.True() Failure Expected: True Actual: False at Xunit.Assert.True(Nullable`1 condition, String userMessage) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.assert\Asserts\BooleanAsserts.cs:line 90 at System.Tests.GCExtendedTests.<>c.b__3_0() in D:\j\workspace\outerloop_win---7ad0ce03\src\System.Runtime\tests\System\GCTests.netstandard1.7.cs:line 78 --- End of inner exception stack trace --- at RemoteExecutorConsoleApp.Program.Main(String[] args) System.Tests.GCExtendedTests.GCNotifiicationTests [FAIL] Assert.Equal() Failure Expected: 42 Actual: -532462766 Stack Trace: D:\j\workspace\outerloop_win---7ad0ce03\src\Common\tests\System\Diagnostics\RemoteExecutorTestBase.cs(172,0): at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() D:\j\workspace\outerloop_win---7ad0ce03\src\System.Runtime\tests\System\GCTests.netstandard1.7.cs(76,0): at System.Tests.GCExtendedTests.GCNotifiicationTests() ``` +12993 area-System.IO FileInfo_OpenSpecial.FileShareOpen failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug_prtest/73/consoleText ``` System.IO.Tests.FileInfo_OpenSpecial.FileShareOpen [FAIL] System.IO.IOException : The process cannot access the file 'C:\Users\dotnet-bot\AppData\Local\Temp\FileInfo_OpenSpecial_jdg4yjdx.tso\FileShareOpen_43' because it is being used by another process. Stack Trace: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.IO.FileInfo.Open(FileMode mode, FileAccess access, FileShare share) D:\j\workspace\outerloop_win---7ad0ce03\src\System.IO.FileSystem\tests\FileInfo\Open.cs(67,0): at System.IO.Tests.FileInfo_OpenSpecial.CreateFileStream(String path, FileMode mode, FileAccess access, FileShare share) D:\j\workspace\outerloop_win---7ad0ce03\src\System.IO.FileSystem\tests\FileStream\ctor_str_fm_fa_fs.cs(56,0): at System.IO.Tests.FileStream_ctor_str_fm_fa_fs.FileShareOpen() ``` +12994 area-System.Net Socket tests are not running in CI As evidenced by this PR, which added a failing innerloop and outerloop test, yet all legs passed. https://github.com/dotnet/corefx/pull/12988 You can see in the log, for example this one on Windows at https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/2117/consoleText, that System.Net.Sockets.Tests gets built: ``` System.Net.Sockets.Tests -> D:\j\workspace\windows_nt_de---4526f5ff\bin\Windows_NT.AnyCPU.Debug\System.Net.Sockets.Tests\System.Net.Sockets.Tests.dll ``` but that's the only reference to the suite in the whole log... it's never executed. I don't know if there are other suites like this, nor do I know how long it's been this way, but it's concerning. cc: @davidsh, @cipop, @ericeil, @geoffkizer, @weshaggard +12995 area-System.Net Make System.Net.Sockets.Tests run in build Fixes https://github.com/dotnet/corefx/issues/12994 @weshaggard, is this the right fix? +12998 area-System.Collections Add IReadOnlyList constructor to ReadOnlyCollection In some places in `System.Linq.Expressions` we implement `IList` with all mutating methods throwing exceptions, just to be able to pass it to the constructor of `ReadOnlyCollection`. An additional constructor overload with `IReadOnlyList` would be useful to reduce code bloat. +13001 area-System.Runtime ValueTuple should support mscorlib-based PCL in 1.1 release We made a fix to add a build of ValueTuple that works on mscorlib-based frameworks (net 4.0 and silverlight) as requested by ML / F#. We need to port this to the 1.1 branch so that it releases with the first stable release of the ValueTuple package. /cc @jcouv @KevinRansom +13003 area-System.Globalization CI failure in DateTimeFormatInfoGetInstance.GetInstance_ExpectedCurrent "See https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/2074 ``` MESSAGE: Assert.Same() Failure\r\nExpected: DateTimeFormatInfo { AbbreviatedDayNames = [\""Sun\"", \""Mon\"", \""Tue\"", \""Wed\"", \""Thu\"", ...], AbbreviatedMonthGenitiveNames = [\""Jan\"", \""Feb\"", \""Mar\"", \""Apr\"", \""May\"", ...], AbbreviatedMonthNames = [\""Jan\"", \""Feb\"", \""Mar\"", \""Apr\"", \""May\"", ...], AMDesignator = \""AM\"", Calendar = GregorianCalendar { AlgorithmType = SolarCalendar, CalendarType = Localized, Eras = [...], IsReadOnly = True, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, ... }, ... }\r\nActual: DateTimeFormatInfo { AbbreviatedDayNames = [\""Sun\"", \""Mon\"", \""Tue\"", \""Wed\"", \""Thu\"", ...], AbbreviatedMonthGenitiveNames = [\""Jan\"", \""Feb\"", \""Mar\"", \""Apr\"", \""May\"", ...], AbbreviatedMonthNames = [\""Jan\"", \""Feb\"", \""Mar\"", \""Apr\"", \""May\"", ...], AMDesignator = \""AM\"", Calendar = GregorianCalendar { AlgorithmType = SolarCalendar, CalendarType = Localized, Eras = [...], IsReadOnly = True, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, ... }, ... } +++++++++++++++++++ STACK TRACE: at System.Globalization.Tests.DateTimeFormatInfoGetInstance.GetInstance_ExpectedCurrent() in D:\j\workspace\windows_nt_re---37265eab\src\System.Globalization\tests\DateTimeFormatInfo\DateTimeFormatInfoGetInstance.cs:line 46 ``` " +13005 area-System.IO Move FileStream from CoreFX to CoreCLR Need to move CoreFX FileStream down to System.Private.CoreLib once #11707 is complete. +13006 area-System.Net Add ActiveIssue attribute to GetResponseAsync_ResourceNotFound_ThrowsWebException This test has been failing on CentOS and RedHat for some time now. See #12236. @davidsh @stephentoub +13007 area-System.Linq No write-back of mutable struct instances to live constant boxes "Consider the following test: ``` csharp [Theory] [ClassData(typeof(CompilationTypes))] public static void ValueTypeIndexAssign(bool useInterpreter) { Expression index = Expression.Property(Expression.Constant(new StructWithPropertiesAndFields()), typeof(StructWithPropertiesAndFields).GetProperty(""Item""), new Expression[] { Expression.Constant(1) }); Expression> func = Expression.Lambda>( Expression.Block( Expression.Assign(index, Expression.Constant(123)), Expression.Equal(index, Expression.Constant(123)) ) ); Assert.True(func.Compile(useInterpreter)()); } ``` which uses a lambda equivalent to: ``` csharp () => { o[1] = 123; return o[1] == 123; }; ``` where `o` is a mutable struct. With the expression interpreter, the assert succeeds, but with the expression compiler, the assert fails. The issue with the compiler is in the use of `unbox.any` upon accessing the `Closure.Constants` array slot containing the live constant containing the boxed instance of `new StructWithPropertiesAndFields()`. No write-back is ever attempted. Contrast this to: ``` csharp var o = new StructWithPropertiesAndFields(); Func f = () => { o[1] = 123; return o[1] == 123; }; Console.WriteLine(f()); ``` This will print true as well. The use of an `object[]` combined with `unbox.any` instructions for accessing live constants prevents the ability to perform a mutation on the original storage location. In fact, the emitted code is: ``` ldarg.0 ldfld class [System.Linq.Expressions]System.Runtime.CompilerServices.Closure::Constants ldc.i4.0 ldelem.ref unbox.any valuetype [Foo]StructWithPropertiesAndFields stloc.s V_4 ldloca.s V_4 ldloc.0 ldc.i4.s 123 call instance void valuetype [Foo]StructWithPropertiesAndFields::set_Item(int32,int32) ``` The use of `stloc` and `ldloca` originates from the `EmitAddress` case for the `Constant` node, so we create yet another copy prior to taking the address. With my pending changes on statically typed closures, this behavior will be corrected because the constants will be stored in a statically typed field in a closure class. Obtaining the address of the instance for use by the indexer assignment will emit `ldflda`. If we were to fix this in the current code, we'd have to check for (mutable non-primitive) structs and store them in a `StrongBox` in the `Constants` array slot instead, so we can avoid the use of `unbox.any` on the struct value (and the copying of the value to a temporary to obtain the address). Instead, we'd ""unbox"" the strong box from the `Constants` storage slot and `EmitAddress` for the `Value` field in the strong box. " +13008 area-System.IO Consume FileStream from CoreLib After #13005 we need to consume FileStream from CoreLib. +13010 area-System.Net fix inconsistent FtpWebRequest DNS test Fixes #12940 Remove the WebException.Status check, since it is not consistent and some network setups generate ConnectFailure instead of NameResolutionFailure. Also, mark tests that could depend on the network environment as OuterLoop. +13013 area-System.Net Cherry-pick commit 09a2d0022b46e7a5137002b88bb7334bfc43604a from Master Adds ActiveIssue attribute to GetResponseAsync_ResourceNotFound_ThrowsWebException. This test has been failing on CentOS and RedHat for some time now. See #12236 +13016 area-System.Net Expose HttpContinueDelegate from HttpWebRequest. Fixes https://github.com/dotnet/corefx/issues/12512 The underlying winhttp API do not expose http 100 continue , so implementing ContinueDelegate is not possible now.Making it a NOP in netcore for compat. +13018 area-System.Linq Misc. minor changes to interpreter in System.Linq.Expressions Various minor changes to interpreter code: - Marking instruction types as `sealed` when possible. - Marking inner classes in instructions as `private` rather than `internal`. - Making ordering of fields, constructor, properties consistent for all instructions. - Some whitespace. - Fixing an `#if`. CC @stephentoub +13019 area-System.IO Add missing APM methods to Pipes assembly - Adds the last missing Pipes members to ref/src/tests - I also outerlooped some tests that were accounting for the majority of the Pipes execution time. Total run time with these tests Outerlooped is 1.6s (down from 10s). - I looked into having the APM methods share tests with the non-APM async methods (like [here](https://github.com/dotnet/corefx/blob/master/src/System.Net.Requests/tests/FileWebRequestTest.cs#L273-L287)) but determined it to not blend well with the structure of the current Pipes test as they already heavily use inheritance. I instead copied and modified some of the tests to run on the APM methods. - resolves https://github.com/dotnet/corefx/issues/12349 cc: @joperezr @stephentoub @AlexGhiondea +13020 area-Meta Move Microsoft.NetCore.Portable.Compatibility package to assets to CoreFX This package gets invalidated as we move types around. One example is, System.Runtime.CompilerServices.IsConst, which moved out of System.Private.Corelib into System.Runtime. mscorlib in the Compatibility package still has a typeforward to System.Private.CoreLib, which is causing issues on .Net Native scenarios. +13021 area-System.Net add TransportContext.GetTlsTokenBindings and TokenBinding class Fixes #12136 +13025 area-System.IO System.IO.Tests.PathTooLongExceptionInteropTests.From_HR failed in Windows PR CI ``` MESSAGE: Assert.NotNull() Failure +++++++++++++++++++ STACK TRACE: at System.IO.Tests.PathTooLongExceptionInteropTests.From_HR() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime\tests\System\IO\PathTooLongException.InteropTests.cs:line 18 ``` Refer job [here](https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/2164/), [here](https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/2160/) +13026 area-Meta Adding new build/packaging documentation - Adding examples for framework-specific packaging. - Documenting my technique of debugging packaging issues. @weshaggard @ericstj @karelz PTAL /cc: @davidsh @ericeil +13027 area-System.Data Update to SNI packaging Updated the SNI packaging to reference the stable build so that 1.1 ships with latest SNI binaries Fixes #12195 +13028 area-System.Diagnostics Test failure: System.Diagnostics.Tests.ProcessWaitingTests/MultipleProcesses_StartAllKillAllWaitAll Opened on behalf of @jiangzeng The test `System.Diagnostics.Tests.ProcessWaitingTests/MultipleProcesses_StartAllKillAllWaitAll` has failed. System.ComponentModel.Win32Exception : Cannot allocate memory ``` Stack Trace: at Interop.Sys.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Int32& lpChildPid, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd) at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start() at System.Diagnostics.Tests.ProcessWaitingTests.MultipleProcesses_StartAllKillAllWaitAll() ``` Build : Master - 20161025.02 (Core Tests) Failing configurations: - Ubuntu.1604.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161025.02/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessWaitingTests~2FMultipleProcesses_StartAllKillAllWaitAll +13032 area-System.Data Exception when return type contains SqlConnection If a method or property that return type contains SqlConnection like **SqlConnection**, **Task<SqlConnection>** or **List<SqlConnection>**, there is an exception when we are trying to list this object in **Watch Window**. ```c# public class A { public A() { //breakpoint in the class codes, type 'this' in the Watch window //throw exception 'Internal error in the expression evaluator' } public SqlConnection Test() { return null; } } ``` +13033 area-Infrastructure [ARM/CI] CI cannot find arm-hardfp rootfs image The CI job linuxarmemulator_hardfp_cross_debug fails. The error message is: ``` 22:33:07 + ./scripts/arm32_ci_script.sh --emulatorPath=/opt/linux-arm-emulator --mountPath=/opt/linux-arm-emulator-root --buildConfig=debug --verbose 22:33:08 ERROR: Path specified in --emulatorPath does not have the rootfs 22:33:08 The script is exited. Cleaning environment.. ``` Which means that CI does not have `/opt/linux-arm-emulator/platform/rootfs-u1404.ext4` but I already sent this file to CI. @jashook Could you please check? +13034 area-System.Data Enhance SqlClientDiagnosticListener to support SqlTransaction It will be great if SqlTransaction will output tracing info about Commit, Rollback and Dispose as SqlConnection and SqlCommand have tracing info about connection open/close and command executing/executed. +13035 area-System.Data System.Data.Odbc Namespace Are there any plans to provide this API? My project is still rightfully so. Not everything can to use with ADO.NET like Excel ODBC You see that even the Mono has support for it. Att. +13036 area-System.Net WebUtility.HtmlDecode does not decode all HTML5 character entities The current character entity replace dictionary used inside WebUtility uses the entity set as defined in HTML4, see https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/src/System/Net/WebUtility.cs#L757. However, the HTML5 spec defines additional entities, see https://www.w3.org/TR/html5/syntax.html#named-character-references. I'm willing to send a PR to include the new named character references, if this that would be an acceptable change to the behavior of WebUtility.HtmlDecode. Any specific guidance with respect to making this change? Are there specific areas that need to be addressed? +13041 area-System.Globalization Add more Globalization APIs to netstandard 2.0 It is decided to add more globalization APIs to netstandard 2.0. The PR show what is added https://github.com/dotnet/standard/pull/51 here is the globalization APIs list we need to add: ``` CompareInfo: public System.Globalization.SortVersion Version { get { throw null; } } CultureInfo: public System.Globalization.CultureTypes CultureTypes { get { throw null; } } CultureInfo: public string IetfLanguageTag { get { throw null; } } CultureInfo: public virtual int KeyboardLayoutId { get { throw null; } } CultureInfo: public System.Globalization.CultureInfo GetConsoleFallbackUICulture() { throw null; } ``` +13042 area-System.Net add GlobalProxySelection Fixes #12128 +13047 area-System.Runtime Re-enable tests for StringBuilder after updating CoreCLR The tests need to be updated after https://github.com/dotnet/coreclr/pull/7803 is done. +13048 area-System.Linq AddChecked factory method passes false for liftToNull Noticed in PR https://github.com/dotnet/corefx/pull/13046. Unlike any other factory methods for binary expressions, `AddChecked` passes `false` for the `liftToNull` parameter. That seems like a bug. +13050 area-System.Linq Review disabled features in expression interpreter code We have the following `#if` symbols sprinkled across the code but never enabled: - FEATURE_COMPILE_TO_METHODBUILDER - FEATURE_PDB_GENERATOR - FEATURE_DLG_INVOKE - FEATURE_FAST_CREATE - FEATURE_THREAD_ABORT - FEATURE_MAKE_RUN_METHODS - FEATURE_STACK_TRACES - NO_FEATURE_STATIC_DELEGATE Some may be worth enabling again given the addition of some APIs in the latest .NET Standard build flavors; others may be remnants of early DLR work and could be deemed dead code that can be removed. CC @VSadov +13052 area-System.Linq Use netstandard1.7 for System.Linq.Expressions Which will bring back `Type.GetTypeCode` etc. enabling progress on https://github.com/dotnet/corefx/issues/11328 etc. +13053 area-Meta Update docs - issues guide with new rules Update docs - issues guide with new rules (labels, area labels, assignments, area owners). cc: @danmosemsft @weshaggard +13054 area-System.Runtime Add Serializable attribute on ApplicationId +13055 area-System.Runtime Attribute default Equality/HashCode tests See: https://github.com/dotnet/coreclr/issues/6232 https://github.com/dotnet/coreclr/pull/6240 /cc @jkotas edit: Needs more tests, WIP edit: Hashing is failing for some derived types. (probably a bug with the fix, see commented cases) edit: Nope, as intended, just unfortunate side effect +13056 area-System.Diagnostics Add missing members of Debugger class - Exposes the remaining missing members of the Debugger class in System.Diagnostics.Debug. - Adds VERY basic tests for the Debugger functions that for the most part just call the functions without any assertion of expected behavior. resolves https://github.com/dotnet/corefx/issues/12795 @alexperovich @joperezr @AlexGhiondea +13057 area-System.Reflection Loading assemblies with dependencies at runtime Trying to implement loose coupling approach in my new application i've run into problem. I have a main application, an assembly with abstractions and an assembly which i want to load dynamically. The actual loading code is: `foreach (var path in paths) { var fullPath = Path.Combine(System.AppContext.BaseDirectory, path); if (!File.Exists(fullPath)) continue; var asm = AssemblyLoadContext.Default.LoadFromAssemblyPath(fullPath); moduleTypes.AddRange( asm.GetTypes().Where(mytype => mytype.GetInterfaces().Contains(typeof(IDynamicModule)))); }` After that i instatiate IDynamicModule classes and make them do some work. On the `GetTypes()` operation i'm getting an exception: `{System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.EntityFrameworkCore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. Не удается найти указанный файл. File name: 'Microsoft.EntityFrameworkCore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'}` (Entity Framework is referenced by dynamic assembly). Playing with framework and assembly versions i've somehow managed to load the assembly and run some code in it, but when it comes to actually working with `DbContext` i'm also getting the same exception but for `Npgsql.EntityFrameworkCore.PostgreSQL`. Looks like there are some problems with loading assemblies that have their own references on external modules. I've implemented sample project illustrating this problem. https://github.com/pushist1y/ErrorReproductions/tree/master/DotNetCoreAssemblyLoading +13060 area-System.Security [release/1.1.0] Change the cryptography shims to use direct package dependencies The use of runtime dependencies for the platform-specific native shims causes some upgrade complications. The design of the shared framework results in the dependency being considered to be satisfied even when a higher version was needed. So if someone has .NET Core 1.0 installed and pulls in a daily build of a cryptography library they might be missing native code changes that were assumed to be present as dependencies of the managed code. By changing to direct dependencies (changing the platform-specific package files to use IdPrefix instead of PackageTargetRuntime) the new .so files will be downloaded and deployed with the app (if they're a higher version that what is present in the shared framework). Fixes #12517. cc: @ericstj +13062 area-System.Security Port x-plat SecureString implementation from CoreFX to mscorlib @shrah commented on [Wed Oct 26 2016](https://github.com/dotnet/coreclr/issues/7834) The x-plat SecureString implementation need to be ported from corefx/src/System.Security.SecureString/src/System/Security/SecureString.cs to mscorlib. This is required in order to port the Marshal.SecureStringTo\* APIs as they take SecureString as parameter. +13063 area-System.Numerics AccessViolationException in BigInteger tests Possibly related to https://github.com/dotnet/corefx/issues/11771, but an AccessViolationException. Even when running out of memory, we shouldn't do that. Seems it needs a fix of its own. @mellinoe ``` 2016-10-26 14:02:46,792: INFO: proc(55): run_and_log_output: Output: Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. 2016-10-26 14:02:46,792: INFO: proc(55): run_and_log_output: Output: at System.Numerics.BigInteger.op_LeftShift(BigInteger value, Int32 shift) 2016-10-26 14:02:46,792: INFO: proc(55): run_and_log_output: Output: at System.Numerics.Tests.logTest.LargeValueLogTests(Int32 startShift, Int32 bigShiftLoopLimit, Int32 smallShift, Int32 smallShiftLoopLimit) ``` https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161026.02/workItem/System.Runtime.Numerics.Tests/details/736c97ed-fa83-4822-b30f-9350e3876764 +13067 area-System.Net Fix exception handling in reverse PInvokes in GetAllNetworkInterfaces Related to #12969 CoreCLR cannot propagate exceptions across native-managed boundaries. In `GetAllNetworkInterfaces`, we use reverse PInvokes, which under rare cases can throw exceptions. If the managed callbacks do not handle those exceptions, the process will crash, because application code cannot catch the exception. To fix this, I've aggregated all exceptions encountered during all callbacks, and thrown them after the completion of the shim call. I've also changed the `LinuxNetworkInterface` constructor code to ignore all exceptions encountered while reading and parsing network files. Any exception encountered in those blocks indicates that the data is either inaccessible or invalid. @stephentoub I'm still trying to run some manual tests against this code. +13068 area-Serialization Enable DCS/DCJS to Serialize ISerializable Types. The fix is to enable DCS/DCJS to serialize/deserialize types inheriting ISerializable interface. Ref #11477. /cc: @zhenlan @mconnew @huanwu +13070 area-Infrastructure Add actual net463 Target Framework Moniker Since it's not released yet, we're mapping `net463` to `.Net 4.6.2`. We need to add a .Net 4.7 TFM to enable certain tests that require APIs available only in the new version. +13071 area-Serialization ReflectionOnly Mode not Supporting ISerializable PR https://github.com/dotnet/corefx/pull/13068 enabled DCS/DCJS to serialize ISerializable types. We still need to make changes to enable reflection based serialization to support ISerializable. The following test in System.Runtime.Serialization.Xml.ReflectionOnly.Tests are failing, ``` DataContractJsonSerializerTests.DCJS_MyISerializableType DataContractSerializerTests.DCS_ExceptionObject DataContractSerializerTests.DCS_InnerExceptionMesageWithSpecialChars DataContractSerializerTests.DCS_ExceptionMesageWithSpecialChars DataContractSerializerTests.DCS_ArgumentExceptionObject DataContractSerializerTests.DCS_MyISerializableType ``` To fix this, take a look at PR https://github.com/dotnet/corefx/pull/13068 first, and changes probably need to be made in the following files, ``` ReflectionXmlFormatReader.cs ReflectionXmlFormatWriter.cs ReflectionJsonFormatReader.cs ReflectionJsonFormatWriter.cs ``` +13073 area-System.Net Remove P2P package references After the packages have been published to myget, remove the P2P references required by projects using newly added APIs. +13075 area-System.Net TLS SystemDefault support. Adding new APIs for TLS SystemDefaults and >256 SHA versions. Creating new S.N.Primitives, ServicePoint and Security for `netcoreapp11` and adding platform specific tests. Removing temporary package references now that we have them on myget. Fixes #11067, #12735 @davidsh @weshaggard @ericstj @stephentoub PTAL /cc @karelz +13076 area-System.Collections Add LargeArrayBuilder type to enscapulate ToArray logic The `EnumerableHelpers.ToArray` logic I introduced in #11208, while better in terms of memory consumption, employs a very imperative code style. I refactored the core logic into a new struct called `LargeArrayBuilder` so now the method looks like ``` cs // Check for ICollection var builder = new LargeArrayBuilder(initialize: true); builder.AddRange(source); return builder.ToArray(); ``` As a result of this refactoring, we can use the buffering strategy employed by `ToArray` in other places where we were previously using `EnumerableHelpers.ToArray(this)` (such as `Select.ToArray` or `Concat.ToArray`) and simultaneously avoid some unnecessary indirection/field stores. This results in substantial speedup. Perf testing and analysis: [test code](https://github.com/jamesqo/Dotnet/blob/4f08d2a4ce3c2aedf9bafec1516ffe3d86c22e81/Program.cs), [data](https://gist.github.com/jamesqo/2c7c07ccf64a52f0d52c1bd8902e407d). The following patterns all see substantial speedups (where `e` is a lazy enumerable): - `e.Concat.ToArray` - `e.Append.ToArray` - `e.Append.Append.ToArray` - `e.Select.ToArray` - `e.OrderBy.Select.ToArray` (OrderBy returns an IPartition that sometimes can't get its count cheaply) Once this is merged I will change #12703 to make `Where` use it too, so all `Where.ToArray` calls should be substantially faster. cc @stephentoub @jkotas @VSadov @JonHanna +13077 area-System.Numerics CI failure in Matrix4x4Tests.Matrix4x4CreateFromYawPitchRollTest2 See https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_release_prtest/2207. ``` 14:05:54 System.Numerics.Tests.Matrix4x4Tests.Matrix4x4CreateFromYawPitchRollTest2 [FAIL] 14:05:54 Yaw:575 Pitch:-125 Roll:-230 14:05:54 Expected: True 14:05:54 Actual: False 14:05:54 Stack Trace: 14:05:54 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest/src/System.Numerics.Vectors/tests/Matrix4x4Tests.cs(553,0): at System.Numerics.Tests.Matrix4x4Tests.Matrix4x4CreateFromYawPitchRollTest2() ``` +13078 area-System.Linq Fixing liftToNull behavior in AddChecked and adding tests This fixes issue #13048 where `AddChecked` was the only node type that didn't pass `liftToNull: true` to the `GetUserDefinedAssignOperatorOrThrow` method used to find a user-defined addition operator. A regression test for this particular case is added in the PR, as well as additional tests for lifting behavior. CC @VSadov, @stephentoub +13079 area-System.Runtime Test failure: System.Runtime.InteropServices.RuntimeInformationTests.DescriptionNameTests/VerifyRuntimeDebugNameOnNetCoreUwp Opened on behalf of @jiangzeng The test `System.Runtime.InteropServices.RuntimeInformationTests.DescriptionNameTests/VerifyRuntimeDebugNameOnNetCoreUwp` has failed. Assert.Equal() Failure\r ? (pos 5)\r Expected: .NET Native 4.6.1586.0\r Actual: .NET Core 4.6.1586.0\r ? (pos 5) ``` Stack Trace: at System.Runtime.InteropServices.RuntimeInformationTests.DescriptionNameTests.VerifyRuntimeDebugNameOnNetCoreUwp() in D:\A\_work\43\s\corefx\src\System.Runtime.InteropServices.RuntimeInformation\tests\DescriptionNameTests.cs:line 36 ``` Build : Master - 20161026.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20161026.02/workItem/System.Runtime.InteropServices.RuntimeInformation.Tests/analysis/xunit/System.Runtime.InteropServices.RuntimeInformationTests.DescriptionNameTests~2FVerifyRuntimeDebugNameOnNetCoreUwp +13083 area-System.Net Block zero-byte calls to encrypt for Unix SslStream "SSL_write is described as having an undefined behavior. The observed behavior is that it returns 0 (which is ambiguous for ""wrote 0/0 bytes"" or ""writing failed""), and that we then try to read the framed message and the message buffer is empty. Trying to detect this case once inside the PAL seemed to violate assumptions of the common code, so instead a PAL-capability check is done in SslStreamInternal.StartWriting. Windows will continue to write the framed empty message, non-Windows will do nothing. Fixes #10858. cc: @stephentoub @ericeil @CIPop @davidsh " +13085 area-System.Xml Add netcoreapp1.1 test configurations for System.Private.Xml.Linq projects The following projects don't currently have a netcoreapp1.1 configuration which means that they are not being tested as part of CI. I tried adding it but a bunch of tests failed, so I left them as is for now, but this issue is to track the fixing of those tests and the addition of the netcoreapp1.1 configurations. ``` XsltScenarios.Tests.csproj System.Xml.Linq.Events.Tests.csproj System.Xml.Linq.Properties.Tests.csproj System.Xml.Linq.Streaming.Tests.csproj System.Xml.Linq.xNodeBuilder.Tests.csproj System.Xml.Linq.xNodeReader.Tests.csproj ``` cc: @krwq @sepidehMS @danmosemsft +13089 area-System.Linq Misc. cleanup of stack spiller code in System.Linq.Expressions When working on https://github.com/dotnet/corefx/issues/11740, I bunch of things in `StackSpiller` caught my eye, so I decided to do some cleanup: - Move classes into separate files, e.g. `ChildRewriter`. - Add XML doc comments to non-trivial components. - Mark inner classes as `sealed`. - Mark some fields as `readonly`. - Fix some comments. - Use some C# 6.0 features in places. - Ensure `var` usage consistency. - Remove unused parameters and code analysis suppressions. No semantic changes were made; this is mostly moving code around into separate files, addressing stylistic oddities, and adding documentation. ~~Once this is merged, the move of `ChildRewriter` to a separate file will cause a merge conflict / rebase requirement for https://github.com/dotnet/corefx/pull/12786. I'll deal with that.~~ +13090 area-System.Security Add X509Certificate PublicKey.Key and X509Certificate2.PrivateKey properties Address issue https://github.com/dotnet/corefx/issues/12369 - Port X509Certificates.PublicKey.Key and 509Certificate2.PrivateKey PublicKey.Key only works for RSA, throws PNSE for others. PrivateKey: setter throws PNSE; getter hooked up to RSA, DSA, ECC but no tests yet for DSA. DSA support for PublicKey.Key and DSA PrivateKey tests will be added with: https://github.com/dotnet/corefx/issues/11802 @bartonjs please review +13093 area-System.IO Add BinaryReader test with invaild Encoding "Test fails when running on `""Microsoft.NETCore.Runtime.CoreCLR"": ""1.2.0-beta-24601-02""` Passes on latest. @stephentoub, @ellismg " +13094 area-Infrastructure Code coverage does not work for types implemented in corlib Unfortunately many libraries in CoreFX are facades over implementations in mscorlib/System.Private.Corelib so this means right now we cannot get automatic code coverage for much of the types exposed by CoreFX. mscorlib is consumed via a nuget package from the CoreCLR repo. For code coverage to work mscorlib.pdb and System.Private.Corelib.pdb need to be placed next to their implementations (in the directory of the test assembly). These symbols are not in the main nuget package. Possibilities - get the symbols package manually (eg https://dotnet.myget.org/F/dotnet-core/symbols/runtime.win7-x64.Microsoft.NETCore.Runtime.CoreCLR/1.2.0-beta-24619-02 ) and then crack it open - get from the symbol servers by using [symchk](https://msdn.microsoft.com/en-us/library/windows/hardware/ff560157%28v=vs.85%29.aspx) .. example, `symchk.exe /s https://dotnet.myget.org/F/dotnet-core/symbols \System.Private.CoreLib.ni.dll`. Potential issues: symchk is presumably Windows only and also will need to be gotten itself. As an aside there currently seems to be an issue with some of these symbols not being correctly propped to the symbol server right now. @dagood what do you suggest? /cc @stephentoub +13095 area-System.Net [release/1.1.0] Block zero-byte calls to encrypt for Unix SslStream "SSL_write is described as having an undefined behavior for this input. The observed behavior is that it returns 0 (which is ambiguous for ""wrote 0/0 bytes"" or ""writing failed""), and that we then try to read the framed message and the message buffer is empty. Trying to detect this case once inside the PAL seemed to violate assumptions of the common code, so instead a PAL-capability check is done in SslStreamInternal.StartWriting. Windows will continue to write the framed empty message, non-Windows will do nothing. Fixes #10858 (for release/1.1.0). Port of #13083. cc: @stephentoub @ericeil @CIPop @davidsh Note to reviewers: cherry-pick didn't work automatically due to a file move, so this was re-written. " +13096 area-System.IO Enable Pipes RunAsClient test dependent on package update +13099 area-Serialization Compatiblity Issue of Serializing Custom Exceptions Opened the issue per @mconnew 's comments in PR #13068 on removing `ExceptionDataContract`, > I presume this was removed because exceptions are now ISerializable? If that's the case, then this might be a breaking change. Someone targeting an earlier version of .Net Standard won't have ISerializable available so won't have a serialization constructor. What will happen if they now try to deserialize a previously serialized derived exception while running on the newer version? Will they have different behavior? +13100 area-System.Text FxCop: System.Text.Encodings.Web.TextEncoderSettings calls virtual methods in constructors "This came from running FxCop analyzers on corefx. Reproduce steps found [here](https://gist.github.com/alexperovich/eabc4e9053ee8aca5bcda8caa379ea87). The TextEncoderSettings type calls virtual methods in several of its constructors. This will not work if the class is overridden. ""E:\corefx\src\src.builds"" (default target) (1) -> ""E:\corefx\src\System.Text.Encodings.Web\src\System.Text.Encodings.Web.builds"" (Build target) (439) -> ""E:\corefx\src\System.Text.Encodings.Web\src\System.Text.Encodings.Web.csproj"" (Build target) (440) -> System\Text\Encodings\Web\TextEncoderSettings.cs(32,13): error CA2214: Do not call overridable methods in constructors [E:\corefx\src\System.Text.Encodings.Web\src\System.Text.Encodings.Web.csproj] System\Text\Encodings\Web\TextEncoderSettings.cs(32,29): error CA2214: Do not call overridable methods in constructors [E:\corefx\src\System.Text.Encodings.Web\src\System.Text.Encodings.Web.csproj] System\Text\Encodings\Web\TextEncoderSettings.cs(46,13): error CA2214: Do not call overridable methods in constructors [E:\corefx\src\System.Text.Encodings.Web\src\System.Text.Encodings.Web.csproj] " +13101 area-Serialization To Support Serializing System.Reflection.Pointer +13102 area-System.Security FxCop: 2 System.Security.Principal types have serialization constructors with incorrect accessibility "This came from running FxCop analyzers on corefx. Reproduce steps found [here](https://gist.github.com/alexperovich/eabc4e9053ee8aca5bcda8caa379ea87). ""E:\corefx\src\src.builds"" (default target) (1) -> ""E:\corefx\src\System.Security.Principal.Windows\src\System.Security.Principal.Windows.builds"" (Build target) (418) -> ""E:\corefx\src\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj"" (Build target) (419) -> System\Security\Principal\IdentityNotMappedException.cs(35,18): error CA2229: Declare serialization constructor for sealed type IdentityNotMappedException as private [E:\corefx\src\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj] System\Security\Principal\WindowsIdentity.cs(239,16): error CA2229: Declare serialization constructor for unsealed type WindowsIdentity as protected [E:\corefx\src\System.Security.Principal.Windows\src\System.Security.Principal.Windows.csproj] " +13103 area-System.Security FxCop: 3 types in System.Security.Permissions have incorrect or missing serialization constructors "This came from running FxCop analyzers on corefx. Reproduce steps found [here](https://gist.github.com/alexperovich/eabc4e9053ee8aca5bcda8caa379ea87). ""E:\corefx\src\src.builds"" (default target) (1) -> ""E:\corefx\src\System.Security.Permissions\src\System.Security.Permissions.builds"" (Build target) (415) -> ""E:\corefx\src\System.Security.Permissions\src\System.Security.Permissions.csproj"" (Build target) (416) -> System\Security\XmlSyntaxException.cs(17,18): error CA2229: Declare serialization constructor for sealed type XmlSyntaxException as private [E:\corefx\src\System.Security.Permissions\src\System.Security.Permissions.csproj] System\Security\Policy\Hash.cs(11,33): error CA2229: Serializable type Hash doesn't have a serialization constructor [E:\corefx\src\System.Security.Permissions\src\System.Security.Permissions.csproj] System\Security\Policy\HashMembershipCondition.cs(11,33): error CA2229: Serializable type HashMembershipCondition doesn't have a serialization constructor [E:\corefx\src\System.Security.Permissions\src\System.Security.Permissions.csproj] " +13104 area-System.Security FxCop: X509Certificate needs to either be sealed or declare its serialization constructor as protected "This came from running FxCop analyzers on corefx. Reproduce steps found [here](https://gist.github.com/alexperovich/eabc4e9053ee8aca5bcda8caa379ea87). ""E:\corefx\src\src.builds"" (default target) (1) -> ""E:\corefx\src\System.Security.Cryptography.X509Certificates\src\System.Security.Cryptography.X509Certificates.builds"" (Build target) (412) -> ""E:\corefx\src\System.Security.Cryptography.X509Certificates\src\System.Security.Cryptography.X509Certificates.csproj"" (Build target) (413) -> System\Security\Cryptography\X509Certificates\X509Certificate.cs(84,16): error CA2229: Declare serialization constructor for unsealed type X509Certificate as protected [E:\corefx\src\System.Security.Cryptography.X509Certificates\src\System.Security.Cryptography.X509Certificates.csproj] " +13105 area-System.IO [uap101aot] FxCop: 2 System.IO types have incorrect serialization constructors "This came from running FxCop analyzers on corefx. Reproduce steps found [here](https://gist.github.com/alexperovich/eabc4e9053ee8aca5bcda8caa379ea87). ""E:\corefx\src\src.builds"" (default target) (1) -> ""E:\corefx\src\System.Runtime.WindowsRuntime\src\System.Runtime.WindowsRuntime.builds"" (Build target) (377) -> ""E:\corefx\src\System.Runtime.WindowsRuntime\src\System.Runtime.WindowsRuntime.csproj"" (Build target) (378:2) -> ""E:\corefx\src\System.IO\src\System.IO.csproj"" (default target) (116:7) -> System\IO\InvalidDataException.cs(27,18): error CA2229: Declare serialization constructor for sealed type InvalidDataException as private [E:\corefx\src\System.IO\src\System.IO.csproj] System\IO\EndOfStreamException.cs(10,18): error CA2229: Serializable type EndOfStreamException doesn't have a serialization constructor [E:\corefx\src\System.IO\src\System.IO.csproj] " +13106 area-System.Xml FxCop: 4 System.Xml types rethrow caught exceptions without using the rethrow statement. "This came from running FxCop analyzers on corefx. Reproduce steps found [here](https://gist.github.com/alexperovich/eabc4e9053ee8aca5bcda8caa379ea87). ""E:\corefx\src\src.builds"" (default target) (1) -> ""E:\corefx\src\System.Private.Xml.Linq\src\System.Private.Xml.Linq.builds"" (Build target) (294) -> ""E:\corefx\src\System.Private.Xml.Linq\src\System.Private.Xml.Linq.csproj"" (Build target) (295) -> ""E:\corefx\src\System.Private.Xml\src\System.Private.Xml.csproj"" (default target) (296) -> System\Xml\Xsl\Xslt\Scripts.cs(347,21): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Private.Xml\src\System.Private.Xml.csproj] System\Xml\Schema\CompiledidEntityConstraint.cs(59,17): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Private.Xml\src\System.Private.Xml.csproj] System\Xml\Schema\CompiledidEntityConstraint.cs(73,21): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Private.Xml\src\System.Private.Xml.csproj] System\Xml\Schema\DataTypeImplementation.cs(3915,17): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Private.Xml\src\System.Private.Xml.csproj] System\Xml\Schema\DataTypeImplementation.cs(3828,17): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Private.Xml\src\System.Private.Xml.csproj] System\Xml\Schema\DataTypeImplementation.cs(3871,17): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Private.Xml\src\System.Private.Xml.csproj] System\Xml\Schema\DataTypeImplementation.cs(3972,17): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Private.Xml\src\System.Private.Xml.csproj] System\Xml\Schema\XmlSchema.cs(131,21): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Private.Xml\src\System.Private.Xml.csproj] " +13107 area-System.Net FxCop: System.Uri locks on a string. "This came from running FxCop analyzers on corefx. Reproduce steps found [here](https://gist.github.com/alexperovich/eabc4e9053ee8aca5bcda8caa379ea87). ""E:\corefx\src\src.builds"" (default target) (1) -> ""E:\corefx\src\System.Private.Uri\src\System.Private.Uri.builds"" (Build target) (293) -> ""E:\corefx\src\System.Private.Uri\src\System.Private.Uri.csproj"" (Build target) (44:7) -> System\Uri.cs(2427,19): error CA2002: Do not lock on a reference of type 'string' as it has weak identity. Replace that with a lock against an object with strong identity. [E:\corefx\src\System.Private.Uri\src\System.Private.Uri.csproj] " +13108 area-System.Net FxCop: System.Net.Sockets.Socket rethrows caught exceptions without using the rethrow statement "This came from running FxCop analyzers on corefx. Reproduce steps found [here](https://gist.github.com/alexperovich/eabc4e9053ee8aca5bcda8caa379ea87). ""E:\corefx\src\src.builds"" (default target) (1) -> ""E:\corefx\src\System.Net.Sockets\src\System.Net.Sockets.builds"" (Build target) (258) -> ""E:\corefx\src\System.Net.Sockets\src\System.Net.Sockets.csproj"" (Build target) (259) -> System\Net\Sockets\Socket.cs(4632,17): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Net.Sockets\src\System.Net.Sockets.csproj] System\Net\Sockets\Socket.cs(4756,21): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Net.Sockets\src\System.Net.Sockets.csproj] System\Net\Sockets\Socket.cs(4884,17): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Net.Sockets\src\System.Net.Sockets.csproj] System\Net\Sockets\Socket.cs(4943,17): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Net.Sockets\src\System.Net.Sockets.csproj] System\Net\Sockets\Socket.cs(5020,17): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Net.Sockets\src\System.Net.Sockets.csproj] System\Net\Sockets\Socket.cs(5098,17): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Net.Sockets\src\System.Net.Sockets.csproj] System\Net\Sockets\Socket.cs(5156,17): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Net.Sockets\src\System.Net.Sockets.csproj] System\Net\Sockets\Socket.cs(5298,17): error CA2200: Re-throwing caught exception changes stack information. [E:\corefx\src\System.Net.Sockets\src\System.Net.Sockets.csproj] " +13110 area-System.Net Test failure: System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests/SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync -- On *nix Opened on behalf of @jiangzeng The test `System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests/SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync` has failed. System.AggregateException : One or more errors occurred. (This platform does not support connecting sockets to DNS endpoints via the instance Connect and ConnectAsync methods, due to the potential for a host name to map to multiple IP addresses and sockets becoming invalid for use after a failed connect attempt. Use the static ConnectAsync method, or provide to the instance methods the specific IPAddress desired.) (This platform does not support connecting sockets to DNS endpoints via the instance Connect and ConnectAsync methods, due to the potential for a host name to map to multiple IP addresses and sockets becoming invalid for use after a failed connect attempt. Use the static ConnectAsync method, or provide to the instance methods the specific IPAddress desired.) (This platform does not support connecting sockets to DNS endpoints via the instance Connect and ConnectAsync methods, due to the potential for a host name to map to multiple IP addresses and sockets becoming invalid for use after a failed connect attempt. Use the static ConnectAsync method, or provide to the instance methods the specific IPAddress desired.) ---- System.PlatformNotSupportedException : This platform does not support connecting sockets to DNS endpoints via the instance Connect and ConnectAsync methods, due to the potential for a host name to map to multiple IP addresses and sockets becoming invalid for use after a failed connect attempt. Use the static ConnectAsync method, or provide to the instance methods the specific IPAddress desired. ---- System.PlatformNotSupportedException : This platform does not support connecting sockets to DNS endpoints via the instance Connect and ConnectAsync methods, due to the potential for a host name to map to multiple IP addresses and sockets becoming invalid for use after a failed connect attempt. Use the static ConnectAsync method, or provide to the instance methods the specific IPAddress desired. ---- System.PlatformNotSupportedException : This platform does not support connecting sockets to DNS endpoints via the instance Connect and ConnectAsync methods, due to the potential for a host name to map to multiple IP addresses and sockets becoming invalid for use after a failed connect attempt. Use the static ConnectAsync method, or provide to the instance methods the specific IPAddress desired. ``` Stack Trace: at System.Threading.Tasks.TaskReplicator.Run[TState](ReplicatableUserAction`1 action, ParallelOptions options, Boolean stopOnFirstFailure) at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.Parallel.ThrowSingleCancellationExceptionOrOtherException(ICollection exceptions, CancellationToken cancelToken, Exception otherException) at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action`1 body, Action`2 bodyWithState, Func`4 bodyWithLocal, Func`1 localInit, Action`1 localFinally) at System.Threading.Tasks.Parallel.For(Int32 fromInclusive, Int32 toExclusive, Action`1 body) at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.RunClient(SocketImplementationType testType, String server, Int32 port, Int32 iterations, Int32 bufferSize, Int32 socketInstances) at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.ClientServerTest(Int32 port, SocketImplementationType serverType, SocketImplementationType clientType, Int32 iterations, Int32 bufferSize, Int32 socketInstances, Int64 expectedMilliseconds) at System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests.SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync() ----- Inner Stack Trace #1 (System.PlatformNotSupportedException) ----- at System.Net.Sockets.Socket.ThrowIfNotSupportsMultipleConnectAttempts() at System.Net.Sockets.Socket.ConnectAsync(SocketAsyncEventArgs e) at System.Net.Sockets.Performance.Tests.SocketTestClientAsync.Connect(Action`1 onConnectCallback) at System.Net.Sockets.Performance.Tests.SocketTestClient.RunTest() at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.<>c__DisplayClass5_0.b__0(Int32 i) at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) at System.Threading.Tasks.TaskReplicator.Replica.Execute() ----- Inner Stack Trace #2 (System.PlatformNotSupportedException) ----- at System.Net.Sockets.Socket.ThrowIfNotSupportsMultipleConnectAttempts() at System.Net.Sockets.Socket.ConnectAsync(SocketAsyncEventArgs e) at System.Net.Sockets.Performance.Tests.SocketTestClientAsync.Connect(Action`1 onConnectCallback) at System.Net.Sockets.Performance.Tests.SocketTestClient.RunTest() at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.<>c__DisplayClass5_0.b__0(Int32 i) at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) at System.Threading.Tasks.TaskReplicator.Replica.Execute() ----- Inner Stack Trace #3 (System.PlatformNotSupportedException) ----- at System.Net.Sockets.Socket.ThrowIfNotSupportsMultipleConnectAttempts() at System.Net.Sockets.Socket.ConnectAsync(SocketAsyncEventArgs e) at System.Net.Sockets.Performance.Tests.SocketTestClientAsync.Connect(Action`1 onConnectCallback) at System.Net.Sockets.Performance.Tests.SocketTestClient.RunTest() at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.<>c__DisplayClass5_0.b__0(Int32 i) at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.Parallel.<>c__DisplayClass19_0`1.b__1(RangeWorker& currentWorker, Int32 timeout, Boolean& replicationDelegateYieldedBeforeCompletion) at System.Threading.Tasks.TaskReplicator.Replica.Execute() ``` Build : Master - 20161027.05 (Core Tests) Failing configurations: - Ubuntu.1404.Amd64 - AnyCPU-Release - AnyCPU-Debug - Fedora.23.Amd64 - AnyCPU-Release - AnyCPU-Debug - Redhat.72.Amd64 - AnyCPU-Release - AnyCPU-Debug - Centos.71.Amd64 - AnyCPU-Release - AnyCPU-Debug - Debian.82.Amd64 - AnyCPU-Debug - AnyCPU-Release - OSX.1011.Amd64 - AnyCPU-Debug - AnyCPU-Release - Suse.132.Amd64 - AnyCPU-Release - AnyCPU-Debug - Ubuntu.1604.Amd64 - AnyCPU-Debug - AnyCPU-Release Also fail: SocketPerformance_SingleSocketClientAsync_LocalHostServerAsync Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161027.05/workItem/System.Net.Sockets.Async.Performance.Tests/analysis/xunit/System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests~2FSocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync +13114 area-System.Net Weird behavior of C# TcpClient/TcpListener - not read full input prevents sending before connection is closed I have described the issue I'm having here: [http://stackoverflow.com/questions/40258230/explain-weird-behavior-of-c-sharp-tcpclient-tcplistener-on-netcore](http://stackoverflow.com/questions/40258230/explain-weird-behavior-of-c-sharp-tcpclient-tcplistener-on-netcore) I am not sure if this is actually a bug or if it is meant to behave like this, but it is highly unexpected behavior and probably worth looking for someone with greater insight. +13115 area-System.Security Test failure: System.Security.Cryptography.EcDsa.Tests.ECDsaImportExportTests/TestExplicitCurves Opened on behalf of @jiangzeng The test `System.Security.Cryptography.EcDsa.Tests.ECDsaImportExportTests/TestExplicitCurves` has failed. System.DllNotFoundException : Unable to load DLL 'System.Security.Cryptography.Native': The specified module could not be found. (Exception from HRESULT: 0x8007007E) ``` Stack Trace: at System.Security.Cryptography.EcDsa.Tests.Interop.Crypto.EcKeyCreateByOid(String oid) at System.Security.Cryptography.EcDsa.Tests.ECDsaProvider.IsValueOrFriendlyNameValid(String friendlyNameOrValue) at System.Security.Cryptography.EcDsa.Tests.CurveDef.get_IsCurveValidOnPlatform() at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() at System.Security.Cryptography.EcDsa.Tests.ECDsaTestsBase.d__6.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() ``` Build : Master - 20161027.05 (Core Tests) Failing configurations: - Ubuntu.1404.Amd64 - AnyCPU-Release - AnyCPU-Debug - Fedora.23.Amd64 - AnyCPU-Release - AnyCPU-Debug - Redhat.72.Amd64 - AnyCPU-Release - AnyCPU-Debug - Centos.71.Amd64 - AnyCPU-Release - AnyCPU-Debug - Debian.82.Amd64 - AnyCPU-Debug - AnyCPU-Release - OSX.1011.Amd64 - AnyCPU-Debug - AnyCPU-Release - Suse.132.Amd64 - AnyCPU-Release - AnyCPU-Debug - Ubuntu.1604.Amd64 - AnyCPU-Debug - AnyCPU-Release Also fail: TestExplicitCurves TestExplicitCurvesSignVerify TestNamedCurves TestNamedCurvesNegative TestChangeFromNamedCurveToKeySize TestRegenKeyExplicit TestRegenKeyNamed Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161027.05/workItem/System.Security.Cryptography.Algorithms.Tests/analysis/xunit/System.Security.Cryptography.EcDsa.Tests.ECDsaImportExportTests~2FTestExplicitCurves +13116 area-System.Security Can't get System.Security.Cryptography.OpenSsl by nuget Install I can't get System.Security.Cryptography.OpenSsl by 'nuget.exe Install' since a few days. ``` yons.kim@s017:~/data/corefx$ mono nuget.exe Install -Pre -ExcludeVersion -Source `pwd`/bin/packages/Release/ -OutputDirectory interim/coreapp/ System.Security.Cryptography.OpenSsl Feeds used: /home/yons.kim/data/corefx/bin/packages/Release/ Attempting to gather dependency information for package 'System.Security.Cryptography.OpenSsl.4.4.0-beta-24726-0' with respect to project 'interim/coreapp/', targeting 'Any,Version=v0.0' Attempting to resolve dependencies for package 'System.Security.Cryptography.OpenSsl.4.4.0-beta-24726-0' with DependencyBehavior 'Lowest' Unable to resolve dependency 'runtime.alpine.3.4.3-x64.runtime.native.System.Security.Cryptography'. Source(s) used: 'nuget.org'. Unable to resolve dependency 'runtime.alpine.3.4.3-x64.runtime.native.System.Security.Cryptography'. Source(s) used: 'nuget.org'. ``` Anybody knows how to solve this problem? +13121 area-Infrastructure UWP test runner does not allow resolving external paths There are UWP test failures on Helix which are failing due to not being able to resolve external paths. (Please re-enable tests labelled with ActiveIssue when this is fixed) +13124 area-System.Security Stop producing old S.S.C.Native shim and package "Let's give things a couple weeks to bleed off the recent packaging changes, but everything should firmly be on System.Security.Cryptography.Native.OpenSsl or System.Security.Cryptography.Native.Apple now; so the ""leaving the old name around just in case"" shouldn't be needed anymore. Time to stop producing the old binary, and the old package. " +13126 area-System.Linq Adding by-ref support in stack spilling in System.Linq.Expressions "This addresses issue #11740 on stack spilling limitations when dealing with `ref` parameters and value type instances. Dealing with this restriction manually can be quite bothersome; I've run into this personally when building a (de)serialization framework that emits expression trees for efficiency. However, when value types are involved and the generated expression uses `Try` nodes, it's easy to fall victim to this restriction. A trivial example of this limitation is shown below: ``` csharp var dt = Parameter(typeof(DateTimeOffset)); var e = Lambda>( Call( // a value type instance dt, typeof(DateTimeOffset).GetMethod(nameof(DateTimeOffset.AddYears)), // causes stack spilling TryFinally( Constant(1), Empty() ) ), dt ); // throws NotSupportedException var f = e.Compile(); ``` The code throws the following exception: ``` Unhandled Exception: System.NotSupportedException: TryExpression is not supported as a child expression when accessing a member on type 'System.DateTimeOffset' because it is a value type. Construct the tree so the TryExpression is not nested inside of this expression. at System.Linq.Expressions.Compiler.StackSpiller.RequireNotRefInstance(Expression instance) at System.Linq.Expressions.Compiler.StackSpiller.RewriteMethodCallExpression(Expression expr, Stack stack) at System.Linq.Expressions.Compiler.StackSpiller.RewriteExpression(Expression node, Stack stack) at System.Linq.Expressions.Compiler.StackSpiller.RewriteExpressionFreeTemps(Expression expression, Stack stack) at System.Linq.Expressions.Compiler.StackSpiller.Rewrite[T](Expression`1 lambda) at System.Linq.Expressions.Compiler.LambdaCompiler.Compile(LambdaExpression lambda, DebugInfoGenerator debugInfoGenerator) at System.Linq.Expressions.Expression`1.Compile() ``` Dealing with this in the suggested way requires an overhaul of the generated expression tree. Lifting this restriction seems worth the effort. The approach used in this PR is as follows: - Rather than throwing an exception from `RequireNotRefInstance` or `RequireNoRefArgs`, we use all these places to record the child expression's index of the value type instance or `ref` argument in the `ChildRewriter` instance. - When analysis of child expressions is done and the rewrite action is `SpillStack`, temporary variables for the spilled child expressions are created. The recorded `ref` information (by child expression index) is consulted to decide on whether to use a `ByRef` type instead. - In order to store a reference to a value to a `ByRef` temporary variable, a new internal-only `RefExpression` is used as the right-hand side of the assignment. This node behaves much like `ref` locals in C# 7.0. - The `LambdaCompiler` knows about the occurrence of `ref` locals and emits valid IL when encountering these. For example, rather than emitting `ldloca` to obtain a reference to a value-typed local, it can emit `ldloc` in case the local is a `ref` local introduced by spilling. Note that the use of an internal-only extension node is similar to the already existing internal-only `SpilledExpressionBlock` introduced by the stack spiller as well. These node types are only introduced during stack spilling and never leak to the user. For the example shown above, the rewritten expression tree after stack spilling looks like: ``` csharp var dt = Parameter(typeof(DateTimeOffset)); var t1 = Parameter(typeof(DateTimeOffset).MakeByRefType(), ""$temp$0""); var t2 = Parameter(typeof(int), ""$temp$1""); var e = Lambda>( Block( new[] { t1, t2 }, // save `ref dt` to a temporary variable Assign( t1, new RefExpression(dt) ), Assign( t2, TryFinally( Constant(1), Empty() ) ), Call( // emit for Call supports ref locals t1, typeof(DateTimeOffset).GetMethod(nameof(DateTimeOffset.AddYears)), t2 ) ), dt ) ) ``` Note that the construction of the rewritten expression tree during stack spilling does not use the `Expression` factory methods; instead, it uses `Make` methods and constructors on the node types. This enables nodes such as `Call`, `Member`, etc. to be constructed where the target instance or any arguments are `ByRef` types. The factory methods don't support these (and we don't want to change that now), but the changes to the `LambdaCompiler` emit functionality support the use of `ByRef` types in these positions (see `EmitInstance` and `AddressOf` changes). For the running example, the emitted IL code looks more or less like this: ``` .method valuetype System.DateTimeOffset lambda_method(valuetype System.DateTimeOffset) { .locals init ( [0] valuetype System.DateTimeOffset&, [1] int32, [2] int32 ) // spilling of instance (cf. EmitAddress) ldarga.0 stloc.0 // $temp$0 // evaluation stack empty, as required .try { ldc.i4.1 stloc.2 leave E } finally { endfinally } E: ldloc.2 stloc.1 // $temp$1 // perform the call in spilled operands ldloc.0 ldloc.1 call valuetype System.DateTimeOffset System.DateTimeOffset::AddYears(int32) ret } ``` This PR lifts the ""no ref"" restriction in pretty much all places, except for: - Arguments passed to `Method` of `BinaryExpression` and `UnaryExpression` (when can `ByRef` occur here?) - Arguments passed to the `Invoke` method of a dynamic call site (to be reviewed) - Instance of `MemberExpression` where `Member` is a property (what's there to spill in this case?) Many IL-level tests are included. Issue #13007 was uncovered by doing this work. CC @VSadov " +13127 area-System.IO System.IO.Tests.FileLoadExceptionInteropTests.Fom_HR https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/2317/testReport/System.IO.Tests/FileLoadExceptionInteropTests/Fom_HR_hr___2146232799_/ Stacktrace MESSAGE: Assert.NotNull() Failure +++++++++++++++++++ STACK TRACE: at System.IO.Tests.FileLoadExceptionInteropTests.Fom_HR(Int32 hr) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime\tests\System\IO\FileLoadException.InteropTests.cs:line 43 +13128 area-Infrastructure Enable build tests against packages as the default scenario Currently we build and test in CI differently from the official pipeline. This change will help reduce inconsistencies in the way in which we build to expose issues sooner. The build will now build the product as packages, install them locally, restore the test-runtime deps for the locally built versions and then test them. The locally built packages are installed to the localpackages folder and the LKG set restored goes into the packages folder. Tests will only restore against locally built packages as a source and then copy the required LKG dependencies like specific runtime dependencies that aren't built locally. The localpackages are overwritten each time a build occurs so that only one version remains in the folder. Other changes required to make this work: - Add missing runtimes in the supports clause - Add LKG runtime packages not produced by the build /cc @weshaggard @chcosta @ericstj +13130 area-System.Globalization Port: DateTime.ToString(“o”) allocates 32 objects This is a tracking issue to consider porting this PR to .NET Framework. https://github.com/dotnet/coreclr/pull/7836 +13133 area-System.Linq Specializing layouts of LambdaExpression nodes This addresses issue #11400 by introducing specialized subtypes for `Expression` to reduce object size. As discussed in this issue, lambda expressions with 0, 1, 2, or 3 parameters are very common. In addition, the properties `Name` and `TailCall` are having default values most of the time (for one, the factory calls emitted by the conversion of lambdas to expression trees omit these). Therefore there's quite some room to save on object sizes. For services like the one I'm working on in Bing, these size reductions add up quickly. The design is similar to `IArgumentProvider` used for expressions like `MethodCallExpression` etc. We introduce an `IParameterProvider` to represent a lambda expression's parameters. Unlike `IArgumentProvider`, this interface is internal-only for the time being; we can decide whether it'd make sense to expose it and implement it on `CatchBlock` and `BlockExpression` as well. All tricks played to avoid allocating a `ReadOnlyCollection` until the `Parameters` property is accessed is similar to what we do for `Arguments` on other nodes (e.g. `ReturnReadOnly` etc.). Access to `Parameters` is avoided in all relevant places, e.g. in visitors, the lambda compiler, etc. The only exceptions are the debug-view writer, debugger proxy types, and the `Update` method on `LambdaExpression` (analogous to nodes that have an `Arguments` property). The class hierarchy starts with a base type that only holds on to the `Body` expression. Subclasses for 0 through 3 parameters are provided next, using an `object` typed field to hold either the first parameter or the `ReadOnlyCollection`. This should all look familiar. Beyond three parameters, we use `ExpressionN` which holds on to the collection directly. For the cases where a non-null `Name` is present or a `true` value for `TailCall` is specified, a `FullExpression` is used. This has the same cost as the current `Expression`. In order to avoid changing `sealed override` properties to `abstract` or non-virtual properties to `virtual` on the existing types, I'm using `Core` properties marked as `abstract` which are used by the original (unchanged) properties. These include `Type`, `Name`, and `TailCall`. We can simplify this if changes to these modifiers are deemed non-breaking (note that `LambdaExpression` is `abstract` but has an `internal` constructor, so external users wouldn't be able to derive from this class anyway). CC @VSadov +13134 area-System.Net Overhaul System.Net library logging "There are a few problems with the existing solution: 1. In the original sources, logging was split across a GlobalLog class and a Logging class. Global-related tracing went to GlobalLog, and library-specific tracing went to Logging. When the sources were moved to corefx, this evolved into multiple EventSource-based types, most of which were in Common and were then src-included into each System.Net assembly. This has a significant problem, though, which is that the name/Guid identity of an EventSource can only exist once in a process, and subsequent EventSource instances with the same identity fail. This means that whichever assembly ends up logging something first wins, and all other tracing from other System.Net assemblies ends up being lost. 2. The split also may have made sense when all components shared the same GlobalLog, but now that GlobalLog is included as a unique EventSource instance in each assembly, it’s no longer global. This means that we’re not only loading multiple EventSources unnecessarily (each has its own costs), but we’re also duplicating logging, as some logging is done to one or the other, but some logging is done to both. 3. Due to sharing the Logging class, which evolved into an EventSource-based type, many logging calls had to include which component they came from as an enum value, leading to bloating at the call sites. 4. Additionally, many logging operations included the name of the method in which the calling was being done, which meant both longer call sites as well as stale values as members got renamed over time. 5. Call sites ended up getting fairly long due to lots of string concatenation operations and other manipulations in the logging call. This also then led to most call sites needing to be guarded behind checks for IsEnabled, leading to lots of code at every call site and obscuring the actual information being traced. 6. An additional requirement that got added with the move to corefx was that certain failure conditions should both Debug.Fail and do tracing, leading to some tracing operations taking upwards of 10 lines of code. All of these issues are addressed by this PR. - Each System.Net assembly that needs to log now loads a single NetEventSource type for doing logging, each with its own identity. - That implementation is split across a common, partial NetEventSource.Common.cs file used by all such assemblies, and then a per-assembly partial NetEventSource.AssemblyName.cs file used by the individual assembly. The former file contains most of the logging implementation. The latter files typically contain just the partial class declaration along with the [EventSource] attribute that gives that assembly’s NetEventSource its unique identity / name. - The logging operations in NetEventSource.Common.cs use a variety of relatively-recent language enhancements to improve the logging. Each operation uses a [CallerMemberName] so that the call sites don’t need to specify the caller. FormattableString is used so that call sites can use string interpolation while still providing the logging implementation the flexibility to format the individual components in a desired fashion (e.g. IntPtrs are formatted as hex, SafeHandles are rendered in a way that includes their name+hashcode+handle, etc.), along with a mechanism that allows individual libraries to add additional formatting rules. Each operation allows the this reference (or another this-like context object) to be passed in, to simply identify the source of the call (in concert with the caller member name). A debug-only mechanism is included in the tracing to help find potential perf issues due to misuse of the logger. Etc. - A Fail logging operation is included that both traces and does a Debug.Fail. With these changes, most call sites are greatly simplified. Some examples: Before: ``` C# if (GlobalLog.IsEnabled) { GlobalLog.AssertFormat(""ContextAwareResult#{0}::ContextCopy|Called on completed result."", LoggingHash.HashString(this)); } Debug.Fail(""ContextAwareResult#"" + LoggingHash.HashString(this) + ""::ContextCopy |Called on completed result.""); ``` After: ``` C# NetEventSource.Fail(this, ""Called on completed result.""); ``` Before: ``` C# if (NetEventSource.Log.IsEnabled()) NetEventSource.Enter(NetEventSource.ComponentType.Http, this, "".ctor"", handler); ``` After: ``` C# NetEventSource.Enter(this, handler); ``` Etc. In addition to fixing up all of the event sources, I of course also fixed up all usage in order to clean up the call sites. However, this was a rather mechanical change: I did not remove existing logging (other than duplication) nor did I add new logging. At some point, we should review the actual logging being done to determine what’s missing and what’s not needed. I also did not revise the additional existing events on the sockets and security event sources, but we may want to remove those (or some of those) in favor of just using the shared events. Fixes https://github.com/dotnet/corefx/issues/5265 Fixes https://github.com/dotnet/corefx/issues/5755 Fixes https://github.com/dotnet/corefx/issues/12685 Fixes https://github.com/dotnet/corefx/issues/12808 cc: @cipop, @davidsh, @ericeil, @geoffkizer, @Priya91, @Petermarcu " +13135 area-System.Diagnostics System.Diagnostics.Process.GetProcessById fails to retrieve process on Linux "This was originally raised an issue on PowerShell repo under PowerShell/PowerShell#1851. When not running under sudo, `Get-Process -Id ` fails to get the process. This only happens if the target process is not owned by the current user. After some digging, it seems like it's related to how `ProcessManager.Unix.cs` tries to figure out if the given process is running or not. It does so by trying to issue a `Kill` command against the process: [System/Diagnostics/ProcessManager.Unix.cs](https://github.com/dotnet/corefx/blob/421407e7831356f7f28f48b35da9e58b43e0d6f2/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Unix.cs#L26-L31) ``` public static bool IsProcessRunning(int processId) { // kill with signal==0 means to not actually send a signal. // If we get back 0, the process is still alive. return 0 == Interop.Sys.Kill(processId, Interop.Sys.Signals.None); } ``` As opposed to `ProcessManager.Windows.cs`, which looks up the given processId in an array of processIds for currently running processes. I think it's running into permission issues because non-privileged users cannot signal processes not owned by themselves. `man 2 kill` actually describes the required permissions [kill(2)](https://linux.die.net/man/2/kill) / [Kill Permissions](https://www.gnu.org/software/libc/manual/html_node/Permission-for-kill.html#Permission-for-kill) ``` If sig is 0, then no signal is sent, but error checking is still performed; this can be used to check for the existence of a process ID or process group ID. For a process to have permission to send a signal it must either be privileged (under Linux: have the CAP_KILL capability), or the real or effective user ID of the sending process must equal the real or saved set-user-ID of the target process. In the case of SIGCONT it suffices when the sending and receiving processes belong to the same session. (Historically, the rules were different; see NOTES.) .... Linux notes Across different kernel versions, Linux has enforced different rules for the permissions required for an unprivileged process to send a signal to another process. In kernels 1.0 to 1.2.2, a signal could be sent if the effective user ID of the sender matched effective user ID of the target, or the real user ID of the sender matched the real user ID of the target. From kernel 1.2.3 until 1.3.77, a signal could be sent if the effec‐ tive user ID of the sender matched either the real or effective user ID of the target. The current rules, which conform to POSIX.1-2001, were adopted in kernel 1.3.78. ``` ## Repro ### Environment ``` nasir:~/proctest$ ~/.dotnet/dotnet --info .NET Command Line Tools (1.0.0-preview3-003842) Product Information: Version: 1.0.0-preview3-003842 Commit SHA-1 hash: 3ae14ab618 Runtime Environment: OS Name: ubuntu OS Version: 14.04 OS Platform: Linux RID: ubuntu.14.04-x64 ``` Also tested on Ubuntu 16.04, with `dotnet-dev-1.0.0-preview2-003131` ### Current Process list ``` nasir:~/proctest$ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 2432 ? 00:00:00 /init nasir 2 1 0 2432 ? 00:00:02 /bin/bash root 2209 2 0 2432 ? 00:00:00 sudo bash root 2210 2209 0 2432 ? 00:00:00 bash nasir 2480 2 0 2432 ? 00:00:00 ps -ef ``` ### Testcode ``` using System; using System.Diagnostics; class Program { static void Main(string[] args) { if(args.Length != 1) { Console.WriteLine(""no input""); return; } try { int pid = Int32.Parse(args[0]); Process p = Process.GetProcessById(pid); Console.WriteLine(""PID: {0} Name: {1}"", p.Id, p.ProcessName); } catch(Exception ex) { Console.WriteLine(ex); } } } ``` ### Results Running against own process, expected results. ``` nasir:~/proctest$ ~/.dotnet/dotnet run 2 Project proctest (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation. PID: 2 Name: bash ``` Running against one of root's processes, exception. ``` nasir:~/proctest$ ~/.dotnet/dotnet run 2210 Project proctest (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation. System.ArgumentException: Process with an Id of 2210 is not running. at System.Diagnostics.Process.GetProcessById(Int32 processId, String machineName) at System.Diagnostics.Process.GetProcessById(Int32 processId) at Program.Main(String[] args) in /home/nasir/proctest/Program.cs:line 13 ``` Running against the same root's process, now with sudo. ``` nasir:~/proctest$ sudo !! sudo ~/.dotnet/dotnet run 2210 [sudo] password for nasir: Project proctest (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation. PID: 2210 Name: bash ``` ### Expected Results Process.GetProcessById() should return the process information even for process running for other users. This is the expected behavior of utilities such as `ps` ``` nasir:~/proctest$ ps -f 1 UID PID PPID C STIME TTY STAT TIME CMD root 1 0 0 2432 ? Ss 0:00 /init ``` Furthermore, `Process.GetProcesses()` has no problem pulling up information on all processes currently running on the system. " +13138 area-Infrastructure Update buildtools and add suppressions This change updates buildtools and adds fxcop suppressions to our implementations of the DES, TripleDES, and RC2 CryptoServiceProviders. +13139 area-System.Security Add X509Certificate SecureString members Adds constructors to X509Certificate and X509Certificate2 that use SecureStrings. Partial implementation of issue https://github.com/dotnet/corefx/issues/12295 Implementation is same as netfx where `object` password is passed which can either be a `string` or `SecureString` and is converted to an `IntPtr` (that points to a temporary clear text password) in order to pass to the native method. @bartonjs please review +13140 area-System.Net Moving HttpVersion to System.Net.Primitives. Contributes to https://github.com/dotnet/corefx/issues/12510 All private copies of HttpVersion from other projects need to be removed.I am not sure how to use an unpublished API , the doc talks about adding direct csproj reference , but not clear if i can check-in that way. +13142 area-System.Threading Adding Overlapped Class to Threading @kouvel @jkotas @stephentoub @joperezr PTAL +13143 area-System.Xml Add remaining System.Xml.Linq members Addresses https://github.com/dotnet/corefx/issues/12817 Adds missing System.Xml.Linq members to netstandard2.0 @danmosemsft @AlexGhiondea @joperezr +13146 area-System.Diagnostics System.Environment.GetEnvironmentVariables() case sensitive but ProcessStartInfo.Environment/EnvironmentVariables insensitive "So I'm one of the maintainers of the [Cake build system](http://cakebuild.net), a couple of days ago we got reports on the gitters that we had an issue (cake-build/cake#1319) on Windows where cake wouldn't start on a specific machine. I tracked down to user getting duplicate ""home"" environment variables just the casing was different from `System.Environment.GetEnvironmentVariables()`. I just did quickfix to ignore if duplicates had same value and warn if value differed, now Cake started fine. Today when the original issuer tested the fix Cake indeed started fine but no tools would start. We set a couple of Cake specific environment variables and in that process we got this error: ``` Error: System.ArgumentException: Item has already been added. Key in dictionary: 'home' Key being added: 'HOME' at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add) at System.Diagnostics.ProcessStartInfo.get_EnvironmentVariables() at Cake.Core.Polyfill.ProcessHelper.SetEnvironmentVariable(ProcessStartInfo info, String key, String value) at Cake.Core.IO.ProcessRunner.Start(FilePath filePath, ProcessSettings settings) at Cake.Core.Tooling.Tool1.RunProcess(TSettings settings, ProcessArgumentBuilder arguments, ProcessSettings processSettings) at Cake.Core.Tooling.Tool1.Run(TSettings settings, ProcessArgumentBuilder arguments, ProcessSettings processSettings, Action1 postAction) at Cake.Core.Tooling.Tool1.Run(TSettings settings, ProcessArgumentBuilder arguments) at Cake.Common.Tools.NuGet.Restore.NuGetRestorer.Restore(FilePath targetFilePath, NuGetRestoreSettings settings) at Cake.Common.Tools.NuGet.NuGetAliases.NuGetRestore(ICakeContext context, FilePath targetFilePath, NuGetRestoreSettings settings) at Cake.Common.Tools.NuGet.NuGetAliases.NuGetRestore(ICakeContext context, FilePath targetFilePath) ``` With help of strack trace I tracked down the issue to [ProcessStartInfo.EnvironmentVariables](https://referencesource.microsoft.com/#System/services/monitoring/system/diagnosticts/ProcessStartInfo.cs,5611ad13d0b7376e,references) and [ProcessStartInfo.Environment](https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessStartInfo.cs#L82) Our code to set the Cake specific variables basically looked like below ``` csharp #if NETCORE info.Environment[key] = value; #else info.EnvironmentVariables[key] = value; #endif ``` So in a naive initial attempt to work around I tried to lookup key and set it with that key so it was the same casing, that worked fine on posix, but not on Windows. Strangely `ProcessStartInfo` didn't blow up if I didn't set any envvars, so I started thru reference source and corefx and found similar code we had in Cake before I added value comparison and warnings. [Reference source](https://referencesource.microsoft.com/#System/services/monitoring/system/diagnosticts/ProcessStartInfo.cs,193) looked like this: ``` csharp #if PLATFORM_UNIX environmentVariables = new CaseSensitiveStringDictionary(); #else environmentVariables = new StringDictionaryWithComparer (); #endif // PLATFORM_UNIX foreach (DictionaryEntry entry in System.Environment.GetEnvironmentVariables()) environmentVariables.Add((string)entry.Key, (string)entry.Value); ``` And [corefx](https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessStartInfo.cs#L103) looked like this: ``` csharp if (_environmentVariables == null) { IDictionary envVars = System.Environment.GetEnvironmentVariables(); _environmentVariables = new Dictionary(envVars.Count, CaseSensitiveEnvironmentVariables ? StringComparer.Ordinal : StringComparer.OrdinalIgnoreCase); IDictionaryEnumerator e = envVars.GetEnumerator(); try { while (e.MoveNext()) { DictionaryEntry entry = e.Entry; _environmentVariables.Add((string)entry.Key, (string)entry.Value); } } finally { (e as IDisposable)?.Dispose(); } } ``` That explained why I only encountered the error when using the property as it was lazy loaded. The original issue it was a GIT commit hook the resulted in the ""double"" home/HOME variables, but when digging deeper I found some non .NET based build agents happily all possible variants of ""home"". So I dug deeper to see if I could repro in .NET and initial answer was no (due too StringDictionary lower casing and OrdinalIgnoreCase comparer on the dictionary). Thru reflection though I was able to initialize the `ProcessStartInfo` `environmentVariables` field before property was used with a case sensitive implementation similar to the posix one. Then I could add variables like this ``` csharp startInfo.EnvironmentVariables[""a""] = ""B""; startInfo.EnvironmentVariables[""A""] = ""b""; ``` The child process could easily iterate environment variables like this ``` csharp foreach (DictionaryEntry entry in Environment.GetEnvironmentVariables()) { Console.WriteLine(""Key: {0}, Value: {1}"", entry.Key, entry.Value); } ``` and it outputted: ``` Key: A, Value: b Key: a, Value: B ``` but if I tried to start a child process with specified custom envars like this ``` csharp var startInfo = new ProcessStartInfo(assemblyLocation, ""3"") {UseShellExecute = false}; startInfo.EnvironmentVariables[""C""] = ""d""; new Process { StartInfo = startInfo }.Start(); } ``` it would blow up (obviously because duplicate key) ``` System.ArgumentException: Item has already been added. Key in dictionary: 'A' Key being added: 'a'... ``` Not setting custom environment variable worked fine though: ``` csharp new Process { StartInfo = new ProcessStartInfo(assemblyLocation, ""4"") {UseShellExecute = false} }.Start(); ``` So what am I missing? Is there some reason behind this behavior? It feels a bit fragile that adding one envvar to parent process can mess up the runtime for all child processes, not good at all. I've made avail the quick n dirty repro here: https://github.com/devlead/EnvironmentProcessStartRepro/tree/master/EnvironmentProcessStartRepro " +13148 area-System.Net "Use ""throw;"" instead of ""throw e;"" in Socket" Fixes https://github.com/dotnet/corefx/issues/13108 cc: @davidsh, @cipop, @ericeil, @geoffkizer, @alexperovich +13149 area-System.Security Add deserialization ctors to several permissions types - Adds deserialization ctors to several permissions types that were missing them. - Added a test to ensure that every [Serializable] permissions object can be serialized/deserialized. - In doing so hit an issue where xunit failed due to trying to enumerate the collection objects being provided but where those collections returned null from GetEnumerator methods, so I changed such methods to return empty enumerators rather than returning null. - And fixed a bit of formatting in the tests while I was there. Fixes https://github.com/dotnet/corefx/issues/13103 cc: @danmosemsft, @alexperovich +13150 area-System.Xml "Use ""throw;"" instead of ""throw e;"" in System.Private.Xml" Fixes https://github.com/dotnet/corefx/issues/13106 cc: @alexperovich, @sepidehMS +13152 area-System.Net Update HtmlEntities to decode HTML5 entities Note: I had to change the lookup from a Dictionary<string,char> to a Dictionary<string,string> in order to account for HTML entities that represent multiple Unicode characters, like &acE; for example. Closes #13036 @karelz +13154 area-Meta How to use locally compiled corefx? Apologies if this is something very basic and I've missed some obvious documentation. I have cloned and successfully built the corefx repo locally on a Ubuntu machine, following the directions from [Developer Guide](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/developer-guide.md). At this point, I'm at a loss on how actually I can build an app using the framework I just compiled? I've tried using `dotnet restore` with `--source` option but that didn't seem to work. +13156 area-System.Globalization ConvertTimeFromToUtc_UnixOnly test failing in CI Examples: https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.10_debug_prtest/6/consoleText ``` System.Tests.TimeZoneInfoTests.ConvertTimeFromToUtc_UnixOnly [FAIL] Assert.Equal() Failure Expected: 2016-10-30T00:14:49.6054190Z Actual: 2016-10-30T01:14:49.6054190Z Stack Trace: /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug_prtest/src/System.Runtime/tests/TimeZoneInfoTests.netstandard1.7.cs(150,0): at System.Tests.TimeZoneInfoTests.ConvertTimeFromToUtc_UnixOnly() ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release_prtest/2394/ ``` System.Tests.TimeZoneInfoTests.ConvertTimeFromToUtc_UnixOnly [FAIL] Assert.Equal() Failure Expected: 2016-10-30T00:32:13.3583810Z Actual: 2016-10-30T01:32:13.3583810Z Stack Trace: /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_release_prtest/src/System.Runtime/tests/TimeZoneInfoTests.netstandard1.7.cs(151,0): at System.Tests.TimeZoneInfoTests.ConvertTimeFromToUtc_UnixOnly() ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_release_prtest/2363/consoleText ``` System.Tests.TimeZoneInfoTests.ConvertTimeFromToUtc_UnixOnly [FAIL] Assert.Equal() Failure Expected: 2016-10-30T00:31:21.5156990Z Actual: 2016-10-30T01:31:21.5156990Z Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest/src/System.Runtime/tests/TimeZoneInfoTests.netstandard1.7.cs(151,0): at System.Tests.TimeZoneInfoTests.ConvertTimeFromToUtc_UnixOnly() ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_debug_prtest/2430/ ``` System.Tests.TimeZoneInfoTests.ConvertTimeFromToUtc_UnixOnly [FAIL] Assert.Equal() Failure Expected: 2016-10-30T00:31:07.3478170Z Actual: 2016-10-30T01:31:07.3478170Z Stack Trace: /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Runtime/tests/TimeZoneInfoTests.netstandard1.7.cs(150,0): at System.Tests.TimeZoneInfoTests.ConvertTimeFromToUtc_UnixOnly() ``` +13158 area-System.Collections Faster ImmutableArray.InsertRange for well-known ICollections and lazy enumerables **edit:** The optimization for inserting arrays has been removed temporarily. See comment at https://github.com/dotnet/corefx/pull/13158#discussion_r87054718 A couple of changes: - The `InsertRange` overload accepting an `ImmutableArray` is specialized to just use `Array.Copy` instead of deferring to the `IEnumerable` overload. - The `AddRange` that accepts an `ImmutableArray` now defers to this instead of the `AddRange` that takes an enumerable. - `ImmutableArray.CreateRange` optimization where we return an empty array for 0-length sequences has been moved downstream to `ImmutableExtensions.ToArray`. - For use by `AddRange`, introduce an `ImmutableExtensions.CopyTo` method which copies directly to the underlying array if possible. - We only do this for well-known types since a bad ICollection implementation might hold on to the array; if the addend is not an array, List, or ImmutableArray, then we fallback to using foreach. - This optimization also benefits lazy enumerables since they are captured into a list during `ImmutableExtensions.GetCount`. - It penalizes slightly types that implement ICollection/IReadOnlyCollection but not IList, like Queue (1 extra typecast), and significantly for types that implement IList but aren't well known, like LinkedList (4 extra typecasts). - Add testing and convert related tests to use `Theory` for brevity cc @stephentoub, @AArnott +13159 area-Infrastructure How to locally compile corefx on Windows? "When running the `build-managed.cmd` I'm getting the following error: ``` c:\work\corefx>build-managed.cmd Tools are already initialized. Running: c:\work\corefx\Tools\msbuild.cmd /nologo /verbosity:minimal /clp:Summary /maxcpucount /nodeReuse:false /l:BinClashLogger,Tools\net45\Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log /p:OSGroup=Windows_NT /p:TargetOS=Windows_NT /p:ConfigurationGroup=Debug /flp:v=normal /flp2:warningsonly;logfile=msbuild.wrn /flp3:errorsonly;logfile=msbuild.err [13:47:51.44] Verifying all auto-upgradeable dependencies... [13:47:52.28] Verifying all auto-upgradeable dependencies... Done. [13:47:52.28] Restoring all packages... EXEC : error : Failed to retrieve information from remote source 'https://dotne tmyget.blob.core.windows.net/artifacts/dotnet-core/nuget/v3/flatcontainer/syste m.security.securestring/index.json'. [c:\work\corefx\build.proj] EXEC : error : An error occurred while sending the request. [c:\work\corefx\bui ld.proj] EXEC : error : The connection with the server was terminated abnormally [c:\wor k\corefx\build.proj] EXEC : error : Failed to retrieve information from remote source 'https://dotne tmyget.blob.core.windows.net/artifacts/dotnet-core/nuget/v3/flatcontainer/syste m.security.securestring/index.json'. [c:\work\corefx\build.proj] EXEC : error : An error occurred while sending the request. [c:\work\corefx\bui ld.proj] EXEC : error : The connection with the server was terminated abnormally [c:\wor k\corefx\build.proj] EXEC : error : Failed to retrieve information from remote source 'https://dotne tmyget.blob.core.windows.net/artifacts/dotnet-core/nuget/v3/flatcontainer/syste m.security.cryptography.protecteddata/index.json'. [c:\work\corefx\build.proj] EXEC : error : An error occurred while sending the request. [c:\work\corefx\bui ld.proj] EXEC : error : The connection with the server was terminated abnormally [c:\wor k\corefx\build.proj] c:\work\corefx\build.proj(100,5): error MSB3073: The command """"c:\work\corefx\T ools/dotnetcli/dotnet.exe"" restore --no-cache --packages ""c:\work\corefx\packag es"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --s ource https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https:/ /www.nuget.org/api/v2/ ""c:\work\corefx\src/Common/test-runtime/project.json"""" e xited with code 1. ``` " +13160 area-System.Net Fix mocked LazyAsyncResult in System.Net.Security unit tests The APM pattern requires that the AsyncCallback always be invoked, even for synchronously completed IAsyncResult instance. Fixes https://github.com/dotnet/corefx/issues/12893 cc: @davidsh, @cipop, @ericeil, @joperezr +13162 area-System.Net Enable sockets perf tests to run on Unix The tests fail on Unix due to the instance Socket.Connect{Async} methods not being supported with DNS endpoints. This fix addresses that by changing the code on Unix to use the static ConnectAsync method. Fixes https://github.com/dotnet/corefx/issues/13110 cc: @cipop, @davidsh, @geoffkizer, @ericeil +13167 area-Infrastructure Unblock failing Windows Nano runs. +13168 area-System.Net Add additional diagnostics to DummyTcpServer To help track down an unhandled exception that's occurred sporadically in System.Net.Security tests. Contributes to https://github.com/dotnet/corefx/issues/12939 cc: @davidsh +13169 area-System.Net System.Net.WebSockets.Client - ReceiveAsync multiple-call failure behavior platform dependent. "As I chronicle at one point in #12487 , `ReceiveAsync` has very different failure behaviors between Windows and all other platforms (potentially to other Windows platforms, too). Note this behavior is **not** the result of a race condition. I expect that `SendAsync` is also affected by this, but haven't investigated fully. The critical part for Windows is in [WinHttpWebSocket](https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WinHttpWebSocket.cs#L395-L446), but what ends up happening is that when the second call to `ReceiveAsync` happens, the second call sets up the exception on the TCS returned by the _first_ call, then also returns that **same** task: ```c# if (receiveOperationAlreadyPending) { var exception = new InvalidOperationException( SR.Format(SR.net_Websockets_AlreadyOneOutstandingOperation, ""ReceiveAsync"")); _operation.TcsReceive.TrySetException(exception); Abort(); } return _operation.TcsReceive.Task; ``` (Given the locking that occurs, this is guaranteed to happen even if submitted on two concurrently running threads, although which one gets it would be up in the air) This is clearly different from the behavior on Linux/elsewhere, when going through [ManagedWebSocket](https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/ManagedWebSocket.cs#L288-L309) it returns a separate task containing an `InvalidOperationException`, leaving the first task to complete ""on it's own"" - it dies as `Abort`ed, I believe throwing a `WebSocketException`: ```c# try { WebSocketValidate.ThrowIfInvalidState(_state, _disposed, s_validReceiveStates); Debug.Assert(!Monitor.IsEntered(StateUpdateLock), $""{nameof(StateUpdateLock)} must never be held when acquiring {nameof(ReceiveAsyncLock)}""); lock (ReceiveAsyncLock) // synchronize with receives in CloseAsync { ThrowIfOperationInProgress(_lastReceiveAsync); Task t = ReceiveAsyncPrivate(buffer, cancellationToken); _lastReceiveAsync = t; return t; } } catch (Exception exc) { return Task.FromException(exc); } ``` .... sooooo, what's the expected behavior here? What should the tests anticipate?" +13170 area-System.Globalization Globalization Formatting Tests need to cover more input scenarios Noticed this when working on the DateTime and DateTimeOffset code. Most test just test max value and not important other cases. It may be a good idea to have a theory with a variety of inputs would be best. It should be evaluated for all these tests, not just this format. Min value, Max value, combined with 0, min and max offsets. Now, and some interesting hard coded dates that exercise things in the middle. That should be the data set we feed into all the parsing code. See https://github.com/dotnet/corefx/pull/13165 for an example where a test is being added but its still only barely exercising the code. +13171 area-System.Globalization Consider porting perf fix for Formatting RFC 1123 https://github.com/dotnet/coreclr/issues/7881 +13172 area-System.Net Send failed HTTP requests to DiagnosticSource "HttpHandlers [currently send](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/netcore50/System/Net/HttpHandlerToFilter.cs#L52) the events `System.Net.Http.Request` and `System.Net.Http.Response` to DiagnosticSource. However, `System.Net.Http.Response` is only sent for successful requests - nothing is sent if sending fails with an exception. Would it be possible to do this similar to [SqlCommand](https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs#L768), where there are events for successful and failed completion? My scenario: I'm creating an integration for [opentracing.io](https://opentracing.io) - a *distributed tracing standard*. I'm creating ""spans"" (objects with tracing information) for several interesting components (HTTP calls, SQL calls, etc.). Spans are created in a hierarchy: e.g. ASP.NET Core request starts root span, outgoing HTTP call creates child span, ... I'm storing spans in a stack in AsyncLocal storage - So as long as there is a parent component that started a root span and can catch exceptions (e.g. ASP.NET Core request), I'm able to finish all open spans. However, an outgoing HTTP call could also be a root span if there is no parent component - e.g. in a background call, etc. If there's an exception in that case, I'm ""out of scope"" and haven't found a way to access my object. /alphabetical cc for participants from #5881: @avanderhoorn @davidsh @delmyers @nbilling @stephentoub @vancem" +13173 area-System.Net "Dns.GetHostAddressesAsync() Error: ""Device Not Configured""" Hii, I'm currently developing an ASP .NET Core Application on my mac using VS Code. I'm trying to send an email using the MailKit and MimeKit packages but i keep receiving an error on GetHostAddressesAsync(), error message: Device not configured. I was told that this might be a bug on Stack Exchange or that i could get guidance here on the configuration steps i might have missed or need to take. +13175 area-System.Diagnostics Bring Process APIs requiring SecureString to netstandard2.0 The following APIs need to be brought back once SecureString is available: ```csharp public class Process : Component { public static Process Start(string fileName, string userName, SecureString password, string domain); public static Process Start(string fileName, string arguments, string userName, SecureString password, string domain); } public sealed class ProcessStartInfo { public SecureString Password { get; set; } } ``` +13176 area-System.Runtime Bring remaining *Exceptions types and members to netstandard2.0 There are a few remaining exceptions (either entirely or to complete existing ones) that we need to bring over to netstandard2.0: ```csharp public class BadImageFormatException : SystemException { public string FusionLog { get; } public override void GetObjectData(SerializationInfo info, StreamingContext context); } public class DuplicateWaitObjectException : ArgumentException { public DuplicateWaitObjectException(); protected DuplicateWaitObjectException(SerializationInfo info, StreamingContext context); public DuplicateWaitObjectException(string parameterName); public DuplicateWaitObjectException(string message, Exception innerException); public DuplicateWaitObjectException(string parameterName, string message); } public class MissingFieldException : MissingMemberException, ISerializable { public MissingFieldException(string className, string fieldName); } public class MissingMemberException : MemberAccessException, ISerializable { protected byte[] Signature; protected string ClassName; protected string MemberName; public MissingMemberException(string className, string memberName); } public class MissingMethodException : MissingMemberException, ISerializable { public MissingMethodException(string className, string methodName); } public class TypeUnloadedException : SystemException { public TypeUnloadedException(); protected TypeUnloadedException(SerializationInfo info, StreamingContext context); public TypeUnloadedException(string message); public TypeUnloadedException(string message, Exception innerException); } ``` We should also rename the parameter from innerException to inner here: ```csharp public class EntryPointNotFoundException : TypeLoadException { public EntryPointNotFoundException(string message, Exception inner); } ``` +13177 area-System.ComponentModel Make DoWorkEventArgs derive from CancelEventArgs This will require the move of CancelEventArgs from System.ComponentModel to System.ComponentModel.Primitives. +13178 area-Infrastructure Updating CoreFx dependencies to servicing-24631-03 +13179 area-System.Runtime Port remaining attributes to netstandard2.0 ```csharp namespace System.Runtime { public sealed class AssemblyTargetedPatchBandAttribute : Attribute { public AssemblyTargetedPatchBandAttribute(string targetedPatchBand); public string TargetedPatchBand { get; } } public sealed class TargetedPatchingOptOutAttribute : Attribute { public TargetedPatchingOptOutAttribute(string reason); public string Reason { get; } } } ``` +13180 area-System.Runtime Adding concrete data to validate R and O Formats @tarekgh @stephentoub , can you take a look? +13181 area-System.Net Disable tests to unblock CI Disabling tests for #12637, #12778, #10504, and #13188 +13182 area-System.Runtime Add more appdomain apis +13183 area-Meta Cleanup include: compile usage in test-runtime "This was being used for packages that were platform-specific. Instead of using this hack don't include those in the netstandard dependency sections. Make sure we do include them (without using the `""include"": ""compile""` constraint) in the frameworks that do support them. Make a netcoreapp1.0 specific section that includes Loader, otherwise this is just a copy of netstandard1.6 section which was previously being used. Fixes #12780 /cc @karajas" +13184 area-System.IO Optimize DeflateStream.CopyToAsync "Today, CopyToAsync on DeflateStream is the basic read/write loop. However, all CopyToAsync really needs to do on DeflateStream is transform the source data (via a synchronous operation) and pass it along to the destination. This means that we can improve its implementation by effectively having the source stream CopyToAsync to the destination stream, albeit with that transformation added in the middle. Doing this has a three key benefits: - It eliminates the read operations and the associated copy, allowing the source to effectively push directly to the inflater inside DeflateStream. - It takes advantage of any optimizations the source stream has in its CopyToAsync implementation, e.g. MemoryStream simply passing its whole internal buffer, NetworkStream using a SocketAsyncEventArgs (https://github.com/dotnet/corefx/pull/12664), FileStream reusing its async state (https://github.com/dotnet/corefx/pull/11569), etc. - CopyToAsync is typically used when no other reading has been done from the stream. Since this change causes CopyToAsync to bypass the internal buffer used by DeflateStream before the inflater itself, we can avoid allocating that buffer at all if CopyToAsync is used by itself. This avoids an 8K allocation per DeflateStream instance, and even if we switch to pulling this buffer from ArrayPool, it still avoids needing to rent/return with the ArrayPool in these cases. (I also noticed an unnecessary allocation in Inflater, which I removed.) The net effect of this change is a sizeable boost on throughput for many scenarios (I didn't find any scenarios where it regressed). Here are a few examples. In this table, ""MS"" is a memory stream, so ""MS to MS"" is using DeflateStream created around a compressed MemoryStream and using CopyToAsync on the DeflateStream to decompress it to another MemoryStream. ""CMS"" is a ""CustomMemoryStream"", which is simply a type that derives from MemoryStream and doesn't add or override any logic; this derivation defeats some the CopyToAsync optimization in MemoryStream, so this is essentially the worst case for this DeflateStream optimization. And ""FS"" is FileStream, where a ""(true)"" suffix means useAsync==true (in which case FileStream has its own CopyToAsync implementation) and a ""(false)"" suffix means useAsync==false (in which case it essentially delegates back to the base Stream's CopyToAsync). ""Len"" is the length of the original random input in bytes, and ""Iters"" is the number of iterations (the number of times positions were reset and CopyToAsync was called). | Test | Before (s) | After (s)| |---------------------------------------------------|-----------|-----------| | MS to MS (Len=1024 Iters=1024000) | 2.767149 | 1.601566 | | MS to MS (Len=1048576 Iters=1000) | 0.419615 | 0.139993 | | MS to MS (Len=10485760 Iters=100) | 0.358287 | 0.223764 | | CMS to CMS (Len=1024 Iters=1024000) | 2.832110 | 1.963891 | | CMS to CMS (Len=1048576 Iters=1000) | 0.271432 | 0.202536 | | CMS to CMS (Len=10485760 Iters=100) | 0.347356 | 0.316338 | | FS(True) to FS(True) (Len=1024 Iters=102400) | 10.315941 | 6.909713 | | FS(True) to FS(True) (Len=1048576 Iters=100) | 0.940410 | 0.124353 | | FS(True) to FS(True) (Len=10485760 Iters=10) | 1.000786 | 0.152991 | | FS(True) to FS(False) (Len=1024 Iters=102400) | 9.936322 | 6.967522 | | FS(True) to FS(False) (Len=1048576 Iters=100) | 0.705946 | 0.085895 | | FS(True) to FS(False) (Len=10485760 Iters=10) | 0.925196 | 0.159865 | | FS(False) toFS (True) (Len=1024 Iters=102400) | 8.630263 | 6.699364 | | FS(False) toFS (True) (Len=1048576 Iters=100) | 0.880577 | 0.116051 | | FS(False) toFS (True) (Len=10485760 Iters=10) | 0.862978 | 0.142838 | | FS(False) toFS (False) (Len=1024 Iters=102400)| 5.260478 | 4.388572 | | FS(False) toFS (False) (Len=1048576 Iters=100) | 0.346608 | 0.078440 | | FS(False) toFS (False) (Len=10485760 Iters=10) | 0.432393 | 0.157312 | Fixes https://github.com/dotnet/corefx/issues/11571 Contributes to https://github.com/dotnet/corefx/issues/12549 cc: @ianhays, @JeremyKuhne, @geoffkizer, @benaadams, @davidfowl (@ianhays, please pay careful attention to my use of the inflater. I essentially copied what was in ReadAsync and refactored it, and I want to make sure I'm using it correctly / didn't misunderstand anything about its behavior.)" +13186 area-Meta Add minimum RAM requirements to Unix instructions My VM only had 1GB RAM (since that's the minimum req'd for CoreCLR) and the CoreFX build kept crashing. I eventually saw via monitoring that it was running out of memory, and increasing RAM to 2GB solved this for me, so I figured it should be documented to save others the same trouble(shooting). +13187 area-System.Net Implement HttpListener for non-Windows platforms #11793 covers the general task of porting HttpListener; however, we will actually need *two* implementations: a Windows-specific implementation that takes advantage of http.sys, and a x-plat implementation. Since this is more work than is implied by a single issue, I'm filing this new issue to cover the x-plat work. +13188 area-System.Net HttpClientHandlerTest.Proxy_BypassFalse_GetRequestGoesThroughCustomProxy failed in CI Failed in PR #13181 System.Net.Http.Functional.Tests.HttpClientHandlerTest.Proxy_BypassFalse_GetRequestGoesThroughCustomProxy(creds: null, wrapCredsInCache: False) https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug_prtest/89/ System.AggregateException : One or more errors occurred. (Object reference not set to an instance of an object.) (An error occurred while sending the request.) (One or more errors occurred. (An error occurred while sending the request.))\r\n---- System.NullReferenceException : Object reference not set to an instance of an object.\r\n---- System.Net.Http.HttpRequestException : An error occurred while sending the request.\r\n-------- System.Net.Http.WinHttpException : The operation has been canceled\r\n---- System.AggregateException : One or more errors occurred. (An error occurred while sending the request.)\r\n-------- System.Net.Http.HttpRequestException : An error occurred while sending the request.\r\n------------ System.Net.Http.WinHttpException : The operation has been canceled +13189 area-Serialization Implement two ctors of DataContractJsonSerializer's. The fix enables DataContractJsonSerializer's constructors that take root name as parameter. Fix #12639 +13190 area-Serialization Remove [SecuritySafeCritical] and [SecurityCritical] in System.Private.DataContractSerialization SecuritySafeCritical or SecurityCritical is a no-op on NetCore as there's no partial trust. The task is to remove all of these attributes from methods. +13191 area-Serialization Add S.R.Serialization.DictionaryGlobals's missing Entires Back We should consider to add those missing entries that used for xml schema validation back as `System.Xml.XmlShema` is available now. +13193 area-Meta Fix FxCop errors I was trying to pick up the latest buildtools and ran into fxcop errors. https://github.com/dotnet/corefx/pull/13192 fixes some of them, this fixes the rest. /cc @alexperovich @karajas @danmosemsft +13194 area-System.Linq Adding missing members to Expression class Fixes #12606 1. Moving most of System.Dynamic.Runtime down to System.Linq.Expressions since the missing members depended on most of it. 2. Adding missing members to the Expression class. I'm currently working on adding a few tests for the new API, but wanted to get initial feedback since I'm moving some stuff around. cc: @danmosemsft @weshaggard @stephentoub @AlexGhiondea +13195 area-Infrastructure Updating CoreClr dependencies to servicing-24631-04 +13196 area-System.Security Security suppressions +13197 area-System.Xml Add netcoreapp1.1 configurations for System.Xml.Linq tests Addresses https://github.com/dotnet/corefx/issues/13085 The three XNodeBuilder tests used to have ActiveIssues which we are not going to fix as the behaviour is compatible with Desktop: https://github.com/dotnet/corefx/issues/4054 https://github.com/dotnet/corefx/issues/4057 https://github.com/dotnet/corefx/issues/4063 [These issues were initially created because the behaviour does not match the specification and is by design] cc: @danmosemsft @joperezr @weshaggard +13198 area-System.Runtime "Remove ""missing types"" workaround" GenFacades has a switch that works better. /cc @weshaggard +13199 area-Meta Default empty target group NETCoreApp This refactors all builds to make the netcoreapp-latest to be the default build. To do this I needed to be specific about the contract project in a few cases so I made a fix to build tools to permit that and brought over that fix as part of this commit. In the future (once we stop building netstandard refs in corefx) we can make this directly enforced with the targets. /cc @weshaggard @ellismg @chcosta +13201 area-System.Xml Add System.Private.Xml.Linq test coverage for Non-Windows platforms All of the tests under System.Private.Xml.Linq are windows-specific, which shouldn't be necessary. Remove the OSGroup from the builds file and fix any failing tests. +13202 area-Serialization Enable S.R.Serialization.Xml and S.R.Serialization.Json Tests on Uap 10.1 We need to properly condition the test code and/or projects as well to make sure they still build and work on older versions. We currently are not able to run these tests against uwp because it doesn't support netstandard1.7 yet. +13203 area-System.Diagnostics Bring remaining System.Diagnostics.* members to netstandard2.0 Fixes #12797 cc @AlexGhiondea @joperezr @stephentoub @danmosemsft +13207 area-System.IO System.IO.Compression.ZipFile: CreateEntriesFromDirectory # Problem When creating or updating zip archives there is no option to add a directory with its content. The content of a directory can only be added with custom code by hand. `ZipFile.CreateFromDirectory` is not an option when building complex zip archives. # Proposed API ```diff namespace System.IO.Compression { public static partial class ZipFile { public static void CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName) { } public static void CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory) { } public static void CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding entryNameEncoding) { } public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName) { } public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding) { } public static System.IO.Compression.ZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode) { throw null; } public static System.IO.Compression.ZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding entryNameEncoding) { throw null; } public static System.IO.Compression.ZipArchive OpenRead(string archiveFileName) { throw null; } } [System.ComponentModel.EditorBrowsableAttribute((System.ComponentModel.EditorBrowsableState)(1))] public static partial class ZipFileExtensions { public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile(this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName) { throw null; } public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile(this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName, System.IO.Compression.CompressionLevel compressionLevel) { throw null; } + public static System.Collections.Generic.IEnumerable CreateEntriesFromDirectory(this System.IO.Compression.ZipArchive destination, string sourceDirectoryName, string baseEntryName) { throw null; } + public static System.Collections.Generic.IEnumerable CreateEntriesFromDirectory(this System.IO.Compression.ZipArchive destination, string sourceDirectoryName, string baseEntryName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory) { throw null; } public static void ExtractToDirectory(this System.IO.Compression.ZipArchive source, string destinationDirectoryName) { } public static void ExtractToFile(this System.IO.Compression.ZipArchiveEntry source, string destinationFileName) { } public static void ExtractToFile(this System.IO.Compression.ZipArchiveEntry source, string destinationFileName, bool overwrite) { } } } ``` +13208 area-Meta Use nameof in more places We previously made a pass through corefx to use nameof with argument exceptions. Since then, a lot more code has come into the repo, and not all argument exceptions were converted at the time. We also previously missed a bunch of places where helpers were used to throw the exceptions. This does another pass through corefx to catch most of the remaining occurrences. +13209 area-System.Net Fix incorrect assert with kevent I fixed a similar assert in https://github.com/dotnet/corefx/pull/13162/commits/9a44a22fac49bf00d21ba42a7f64e849edcc5590, and didn't realize the same (incorrect) assert existed for the kevent version of the code. This is causing outerloop failures in the sockets perf tests running on macOS. cc: @ericeil, @geoffkizer +13210 area-System.Diagnostics ProcessThreadTests.TestStartTimeProperty test failure in CI on Ubuntu https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug/654/consoleText ``` System.Diagnostics.Tests.ProcessThreadTests.TestStartTimeProperty [FAIL] System.ComponentModel.Win32Exception : Unable to retrieve the specified information about the process or thread. It may have exited or may be privileged. Stack Trace: at System.Diagnostics.ProcessThread.GetStat() at System.Diagnostics.ProcessThread.get_StartTime() /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Diagnostics.Process/tests/ProcessThreadTests.cs(106,0): at System.Diagnostics.Tests.ProcessThreadTests.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +13211 area-System.Diagnostics Fix ProcessThread exception thrown on Unix When a thread goes away and then code tries to access its information, an InvalidOperationException is thrown on Windows. This fixes the Unix implementations to match. Fixes https://github.com/dotnet/corefx/issues/13210 cc: @Priya91 +13212 area-System.Data Enhance SqlClientDiagnosticListener to support SqlTransaction This fixes https://github.com/dotnet/corefx/issues/13034. cc @karelz @saurabh500 +13213 area-System.Net DualModeAcceptAsync.AcceptAsyncV6BoundToAnyV4_CantConnect failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release_prtest/2476/consoleText ``` System.Net.Sockets.Tests.DualModeAcceptAsync.AcceptAsyncV6BoundToAnyV4_CantConnect [FAIL] Assert.Throws() Failure Expected: typeof(System.Net.Sockets.SocketException) Actual: typeof(System.TimeoutException): Timed out while waiting for the server accept... Stack Trace: /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_release_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(976,0): at System.Net.Sockets.Tests.DualModeAcceptAsync.DualModeConnect_AcceptAsync_Helper(IPAddress listenOn, IPAddress connectTo) ``` +13214 area-System.IO UWP app consuming 1.1 packages fails WACK for CLRCompression on x64 Copied from https://github.com/aspnet/EntityFramework/issues/6905 The aot clrcompression build is supposed to be redistributed from 1.0 while the non-aot build is being built live. When this change was made, the incorrect RID was used for x64-aot, causing the non-aot build to be picked up, which fails the WACK. The fix here is to correctly list the RID as win10-**x64**-aot. +13215 area-System.ComponentModel TypeDescriptor.GetProperties full of race conditions There are a bunch of race conditions in the implementation that have a visible effect on consuming code, due to lazy initialization and lack of proper thread-safety around check-and-update operations. For example, when TypeDescriptor.GetProperties is called, it ends up returning a weakly cached PropertyDescriptorCollection, so multiple threads accessing this could get the same collection. Then when using the reflection-based provider, the ReflectPropertyDescriptor instances this contains may be accessed concurrently by multiple threads. That then means that a pattern like this: https://source.dot.net/#System.ComponentModel.TypeConverter/System/ComponentModel/ReflectPropertyDescriptor.cs,289 is not safe: ```C# private object DefaultValue { get { if (!_state[s_bitDefaultValueQueried]) { _state[s_bitDefaultValueQueried] = true; Attribute a = Attributes[typeof(DefaultValueAttribute)]; if (a != null) { _defaultValue = ((DefaultValueAttribute)a).Value; // Default values for enums are often stored as their underlying integer type: if (_defaultValue != null && PropertyType.GetTypeInfo().IsEnum && PropertyType.GetTypeInfo().GetEnumUnderlyingType() == _defaultValue.GetType()) { _defaultValue = Enum.ToObject(PropertyType, _defaultValue); } } else { _defaultValue = s_noValue; } } return _defaultValue; } } ``` This would be fine if it were accessed serially, but if it's accessed concurrently, a thread could check ```_state[s_bitDefaultValueQueried]``` find that it hasn't been set yet, and then proceed to set it before actually setting ```_defaultValue```. Another thread could come along between the setting of ```_state[s_bitDefaultValueQueried]``` and the setting of ```defaultValue``` (which can actually be a relatively wide window, given the use of reflection in between), see that ```_state[s_bitDefaultValueQueried]``` has been set, and proceed to use the value of ```_defaultValue``` This is the cause of https://github.com/dotnet/corefx/issues/12753. +13216 area-System.Runtime Add Copy from ref T1 to ref T2 on System.Runtime.CompilerServices.Unsafe (Api) Hi, I would like to introduce a new public method for `System.Runtime.CompilerServices.Unsafe` Basically a method that allows to do something like: ```csharp public static void Write(ref TDest dest, ref TSrc src) { dest = src; } ``` that would translate to: ```csharp .method public hidebysig static void Write (!!TDest& dest, !!TSrc& src) cil managed { .maxstack 2 IL_0000: ldarg.0 IL_0001: ldarg.1 IL_0002: cpobj !!TSrc IL_0007: ret } ``` The usage scenario is to be able to efficiently copy a blittable data of type `TSrc` to a destination of type `TDest`, where we know that `TDest` has enough space to store `TSrc`. This method generates optimal code for such a case and is particularly useful for writing efficient value copy/writer. If this is ok, I can make a PR. Thanks! +13217 area-System.Net Disable socket tests for clean CI Disable AcceptAsyncV6BoundToAnyV4_CantConnect test, ref: #13213. +13218 area-System.Runtime Implement System.Runtime.InteropServices on UAP10.1 - NETNative Baselines have been created to suppress API compat warnings for InteropServices on UAP10.1. Those need to be removed (include `-ignoreMissingTypes` setting) once implementing the missing API in NETNative. +13220 area-System.Xml Have all Xml/Xml.Linq tests reference System.Private.Xml.pkgproj/System.Private.Xml.Linq.pkgproj Right now none of the `Xml/Xml.linq` tests are testing the live changes in `System.Private.Xml/System.Private.Xml.Linq` and any possible failures caused by the most recent changes won't show in CI builds. To fix this, those tests need to reference the private pkgprojs instead. cc: @danmosemsft +13221 area-System.Security [Debian Stretch][unsupported] libcrypto.so segfault on Debian Testing "Moved from https://github.com/PowerShell/PowerShell/issues/2564 I'm using the Ubuntu 16.04 package, I suspect that some of the dependencies are incompatible and the version ranges on the .deb are too broad so it's not marking it as an incompatibility. Ubuntu has OpenSSL 1.0.2g while Debian has 1.0.2j. Maybe that's what's causing the issue? However, The dotnet package does not specify any particular OpenSSL version though, it just specifies a dependency on `libssl1.0.0` Repro: ```csharp using System; using System.IO; using System.Net; using System.Text; using System.Threading.Tasks; namespace ConsoleApp4 { public class Program { public static void Main(string[] args) { Console.WriteLine(TestStuff().Result); } public static async Task TestStuff() { var client = WebRequest.Create(""https://registry.npmjs.org/babel-standalone""); var result = await client.GetResponseAsync(); using (var reader = new StreamReader(result.GetResponseStream(), Encoding.UTF8)) { return await reader.ReadToEndAsync(); } } } } ``` Backtrace (sorry about the lack of debug symbols): ``` #0 0x00007fffe2288d5d in ?? () from /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 #1 0x00007fffe2283c7b in X509_verify_cert () from /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 #2 0x00007fff7db7fce5 in ?? () #3 0x00007fff4dd65c00 in ?? () #4 0xbafbcb4b7ab40f52 in ?? () #5 0x000000000563f9b1 in ?? () #6 0x00007ffff67dbf90 in ?? () from /usr/share/dotnet/shared/Microsoft.NETCore.App/1.0.1/libcoreclr.so #7 0x00007fff4dd665e8 in ?? () #8 0x00007fff7dbd6d58 in ?? () #9 0x00007fff7dbd6d58 in ?? () #10 0x00007fff4dd65c00 in ?? () #11 0x00007fff7db7fce5 in ?? () #12 0x00007fff4dd65ca0 in ?? () #13 0x00007fff7dbd6d58 in ?? () #14 0x00007fff645cf108 in ?? () #15 0x00007fff5c0a9950 in ?? () #16 0x0000000000000000 in ?? () ```" +13222 area-System.Xml Add XmlSortKey implementation in System.Private.Xml Related issue: https://github.com/dotnet/corefx/issues/9997 Adds `XmlSortKey` to System.Private.Xml and re-enables a related test on Windows (as SortKey is not available in other platforms yet) cc: @danmosemsft @tarekgh @weshaggard +13224 area-System.ComponentModel Fix some race conditions in TypeConverter lib There are a whole bunch of potential race conditions in the TypeConverter library. This does not attempt to fix all of them, just address the symptoms of the ones that have been causing some failed tests. In particular, the static TypeDescriptor.GetProperties will return a cached collection of instances, which means that instances end up being shared between threads. Each ReflectPropertyDescriptor instance has properties that check whether a bit flag contains a bit indicating that the value has been lazily created, and if it doesn't, sets the bit, then creates and stores the value. This leads to a variety of race conditions, including two threads racing to access the same value and one of them getting back the uninitialized value (this can also happen if an exception occurs in one thread before updating the value, leaving the flag set but the value uninitialized), and including two threads racing to access different fields but cloberring each other's updates to the state flags. This PR addresses those two issues specifically (there are very likely others), by a) setting the bit only after the fields have been set, and b) using compare/exchange operations to update the set bits. The desktop code has the same issues, and I'm just making enough changes to avoid the test failures we've been seeing that arise due to this. cc: @AlexGhiondea, @chlowell, @twsouthwick, @safern Fixes https://github.com/dotnet/corefx/issues/12753 Fixes https://github.com/dotnet/corefx/issues/13215 +13225 area-System.Net Disable tests for clean CI ServerAsyncAuthenticate_AllClientVsIndividualServerSupportedProtocols_Success HttpClient_ClientUsesAuxRecord_Ok Ref: #8744, #11623 +13229 area-System.IO Update to CoreCLR FileStream Take the latest CoreCLR and use its copy of FileStream. @ianhays @stephentoub @weshaggard @alexghi +13231 area-System.Diagnostics Update S.Diagnostics.Debug to ns2.0 Fixes #12794 /cc: @AlexGhiondea @joperezr +13233 area-Infrastructure Add full support build for test runs on Fedora 24 Now that we've updated buildtools, we can enable full test runs on Fedora 24. This change updates a few test projects in order to support Fedora 24, and also adds CI runs for them. +13234 area-Meta Remove duplicate string resources in 5 projects These string resources are duplicates and produce build warnings. +13235 area-System.Runtime Bring remaining System.Runtime members to netstandard2.0 Adds src, ref, and tests for the remaining members of System.Runtime. resolves https://github.com/dotnet/corefx/issues/12812, resolves https://github.com/dotnet/corefx/issues/12398 @joperezr @AlexGhiondea @alexperovich @stephentoub +13236 area-System.Xml Add Linux implementation for modifying SortKey in System.Xml.Xsl.Runtime.XmlCollation As SortKey is different on Linux and Windows, System.Xml.Xsl.Runtime.XmlCollation.CreateSortKey needs to be implemented differently for Linux. +13238 area-System.Reflection "Assertion failure: System.Reflection.Emit.Tests.ModuleBuilderDefineEnum.DefineEnum_ValueType(name: ""a\0b\0c"", visibility: NotPublic, underlyingType: typeof(byte))" See dotnet/coreclr#7669 Corelib is asserting. The proper fix is probably in there, but until that is resolved, we should disable this test. +13241 area-System.Collections "Test failure: System.Collections.Tests.BitArray_GetSetTests/CopyTo_Byte_Hidden(label: \""Constructor\"", bits: [True, True, True, True, True, ...])" "Opened on behalf of @jiangzeng The test `System.Collections.Tests.BitArray_GetSetTests/CopyTo_Byte_Hidden(label: \""Constructor\"", bits: [True, True, True, True, True, ...])` has failed. Assert.Equal() Failure\r Expected: 31\r Actual: 255 Stack Trace: at System.Collections.Tests.BitArray_GetSetTests.CopyTo_Byte_Hidden(String label, BitArray bits) in D:\A\_work\32\s\corefx\src\System.Collections\tests\BitArray\BitArray_GetSetTests.cs:line 375 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Fail for tests: CopyTo_Byte_Hidden CopyTo_Int_Hidden Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Collections.Tests/analysis/xunit/System.Collections.Tests.BitArray_GetSetTests~2FCopyTo_Byte_Hidden(label:%20%5C%22Constructor%5C%22,%20bits:%20%5BTrue,%20True,%20True,%20True,%20True,%20...%5D) https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Collections.Tests/analysis/xunit/System.Collections.Tests.BitArray_GetSetTests~2FCopyTo_Int_Hidden(label:%20%5C%22Constructor%5C%22,%20bits:%20%5BTrue,%20True,%20True,%20True,%20True,%20...%5D)" +13242 area-System.Data Test failure: System.Data.SqlClient.Tests.TcpDefaultForAzureTest/AzureNoProtocolConnectionTest Opened on behalf of @jiangzeng The test `System.Data.SqlClient.Tests.TcpDefaultForAzureTest/AzureNoProtocolConnectionTest` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.Data.SqlClient.Tests.TcpDefaultForAzureTest.AzureNoProtocolConnectionTest() in D:\A\_work\32\s\corefx\src\System.Data.SqlClient\tests\FunctionalTests\TcpDefaultForAzureTest.cs:line 73 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.TcpDefaultForAzureTest~2FAzureNoProtocolConnectionTest +13243 area-System.IO "Test failure: System.IO.Compression.Tests.zip_CreateTests/CreateNormal(folder: \""empty\"", seekable: False)" "Opened on behalf of @jiangzeng The test `System.IO.Compression.Tests.zip_CreateTests/CreateNormal(folder: \""empty\"", seekable: False)` has failed. System.NotSupportedException : This stream does not support seeking Stack Trace: at WrappedStream.get_Position() in D:\A\_work\32\s\corefx\src\System.IO.Compression\tests\Utilities\WrappedStream.cs:line 91 at System.IO.Compression.ZipArchive.WriteFile() at System.IO.Compression.ZipArchive.Dispose(Boolean disposing) at System.IO.Compression.ZipArchive.Dispose() at System.IO.Compression.Tests.ZipFileTestBase.d__20.MoveNext() in D:\A\_work\32\s\corefx\src\Common\tests\System\IO\Compression\ZipTestHelper.cs:line 327 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.IO.Compression.Tests.zip_CreateTests.d__1.MoveNext() in D:\A\_work\32\s\corefx\src\System.IO.Compression\tests\ZipArchive\zip_CreateTests.cs:line 69 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Fail for tests: CreateNormal CreateNormal_Unicode Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.IO.Compression.Tests/analysis/xunit/System.IO.Compression.Tests.zip_CreateTests~2FCreateNormal(folder:%20%5C%22empty%5C%22,%20seekable:%20False) https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.IO.Compression.Tests/analysis/xunit/System.IO.Compression.Tests.zip_CreateTests~2FCreateNormal_Unicode(folder:%20%5C%22unicode%5C%22,%20seekable:%20False)" +13244 area-System.IO "Test failure: System.IO.Compression.Tests.zip_ManualAndCompatabilityTests/CompatibilityTests(zipFile: \""deflate64.zip\"", zipFolder: \""normal\"", requireExplicit: True, checkTimes: True)" "Opened on behalf of @jiangzeng The test `System.IO.Compression.Tests.zip_ManualAndCompatabilityTests/CompatibilityTests(zipFile: \""deflate64.zip\"", zipFolder: \""normal\"", requireExplicit: True, checkTimes: True)` has failed. Assert.All() Failure: 1 out of 6 items in the collection did not pass.\r [0]: System.IO.InvalidDataException: The archive entry was compressed using an unsupported compression method.\r at System.IO.Compression.ZipArchiveEntry.ThrowIfNotOpenable(Boolean needToUncompress, Boolean needToLoadIntoMemory)\r at System.IO.Compression.ZipArchiveEntry.OpenInUpdateMode()\r at System.IO.Compression.Tests.ZipFileTestBase.<>c__DisplayClass15_2.b__0(FileData file) in D:\\A\\_work\\32\\s\\corefx\\src\\Common\\tests\\System\\IO\\Compression\\ZipTestHelper.cs:line 170\r at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\CollectionAsserts.cs:line 31 Stack Trace: at System.IO.Compression.Tests.ZipFileTestBase.IsZipSameAsDir(Stream archiveFile, String directory, ZipArchiveMode mode, Boolean requireExplicit, Boolean checkTimes) in D:\A\_work\32\s\corefx\src\Common\tests\System\IO\Compression\ZipTestHelper.cs:line 153 at System.IO.Compression.Tests.zip_ManualAndCompatabilityTests.d__0.MoveNext() in D:\A\_work\32\s\corefx\src\System.IO.Compression\tests\ZipArchive\zip_ManualAndCompatibilityTests.cs:line 21 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.IO.Compression.Tests/analysis/xunit/System.IO.Compression.Tests.zip_ManualAndCompatabilityTests~2FCompatibilityTests(zipFile:%20%5C%22deflate64.zip%5C%22,%20zipFolder:%20%5C%22normal%5C%22,%20requireExplicit:%20True,%20checkTimes:%20True)" +13245 area-System.IO Test failure: System.IO.Tests.Directory_Changed_Tests/FileSystemWatcher_Directory_Changed_WatchedFolder Opened on behalf of @jiangzeng The test `System.IO.Tests.Directory_Changed_Tests/FileSystemWatcher_Directory_Changed_WatchedFolder` has failed. System.IO.IOException : The process cannot access the file 'C:\\Users\\DotNetTestRunner\\AppData\\Local\\Temp\\Directory_Changed_Tests_uqrrm30o.aaf\\FileSystemWatcher_Directory_Changed_WatchedFolder_29\\dir' because it is being used by another process. Stack Trace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.Directory.OpenHandle(String path) at System.IO.Directory.SetLastWriteTimeUtc(String path, DateTime lastWriteTimeUtc) at System.IO.Directory.SetLastWriteTime(String path, DateTime lastWriteTime) at System.IO.Tests.Directory_Changed_Tests.<>c__DisplayClass1_0.b__0() in D:\A\_work\32\s\corefx\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.Directory.Changed.cs:line 33 at System.IO.Tests.FileSystemWatcherTest.ExecuteAndVerifyEvents(FileSystemWatcher watcher, WatcherChangeTypes expectedEvents, Action action, Boolean assertExpected, String[] expectedPaths, Int32 timeout) in D:\A\_work\32\s\corefx\src\System.IO.FileSystem.Watcher\tests\Utility\FileSystemWatcherTest.cs:line 227 at System.IO.Tests.FileSystemWatcherTest.ExpectEvent(FileSystemWatcher watcher, WatcherChangeTypes expectedEvents, Action action, Action cleanup, String[] expectedPaths, Int32 attempts, Int32 timeout) in D:\A\_work\32\s\corefx\src\System.IO.FileSystem.Watcher\tests\Utility\FileSystemWatcherTest.cs:line 183 at System.IO.Tests.FileSystemWatcherTest.ExpectEvent(FileSystemWatcher watcher, WatcherChangeTypes expectedEvents, Action action, Action cleanup, String expectedPath, Int32 attempts, Int32 timeout) in D:\A\_work\32\s\corefx\src\System.IO.FileSystem.Watcher\tests\Utility\FileSystemWatcherTest.cs:line 147 at System.IO.Tests.Directory_Changed_Tests.FileSystemWatcher_Directory_Changed_WatchedFolder() in D:\A\_work\32\s\corefx\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.Directory.Changed.cs:line 35 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.Directory_Changed_Tests~2FFileSystemWatcher_Directory_Changed_WatchedFolder +13246 area-System.IO Test failure: System.IO.Tests.FileSystemWatcherTests/FileSystemWatcher_NotifyFilter Opened on behalf of @jiangzeng The test `System.IO.Tests.FileSystemWatcherTests/FileSystemWatcher_NotifyFilter` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: typeof(System.ComponentModel.InvalidEnumArgumentException): The value of argument 'value' (-1) is invalid for Enum type 'NotifyFilters'.\r Parameter name: value Stack Trace: at System.IO.FileSystemWatcher.set_NotifyFilter(NotifyFilters value) at System.IO.Tests.FileSystemWatcherTests.<>c__DisplayClass17_0.b__1() in D:\A\_work\32\s\corefx\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.unit.cs:line 308 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.FileSystemWatcherTests~2FFileSystemWatcher_NotifyFilter +13247 area-System.Globalization DateTimeFormatInfo tests need argument validation updated AbbreviatedDayNames_Set_Invalid() and the like check exception argument strings which have changed. (System.Globalization) +13248 area-System.IO Test failure: System.IO.Tests.FileSystemWatcherTests/FileSystemWatcher_ctor_InvalidStrings Opened on behalf of @jiangzeng The test `System.IO.Tests.FileSystemWatcherTests/FileSystemWatcher_ctor_InvalidStrings` has failed. Assert.Equal() Failure\r Expected: path\r Actual: (null) Stack Trace: at System.IO.Tests.FileSystemWatcherTests.FileSystemWatcher_ctor_InvalidStrings() in D:\A\_work\32\s\corefx\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.unit.cs:line 107 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.FileSystemWatcherTests~2FFileSystemWatcher_ctor_InvalidStrings +13249 area-System.IO "Test failure: System.IO.Tests.RenamedEventArgsTests/RenamedEventArgs_ctor(changeType: 0, directory: \""\"", name: \""\"", oldName: \""\"")" "Opened on behalf of @jiangzeng The test `System.IO.Tests.RenamedEventArgsTests/RenamedEventArgs_ctor(changeType: 0, directory: \""\"", name: \""\"", oldName: \""\"")` has failed. System.ArgumentException : Absolute path information is required. Stack Trace: at System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath) at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String path) at System.IO.RenamedEventArgs.get_OldFullPath() at System.IO.Tests.RenamedEventArgsTests.RenamedEventArgs_ctor(WatcherChangeTypes changeType, String directory, String name, String oldName) in D:\A\_work\32\s\corefx\src\System.IO.FileSystem.Watcher\tests\Args.RenamedEventArgs.cs:line 29 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.RenamedEventArgsTests~2FRenamedEventArgs_ctor(changeType:%200,%20directory:%20%5C%22%5C%22,%20name:%20%5C%22%5C%22,%20oldName:%20%5C%22%5C%22)" +13250 area-System.Net Test failure: System.PrivateUri.Tests.UriRelativeResolutionTest/Uri_Relative_SimplePartialPathWithScheme_Unicode_ReturnsPartialPathWithScheme Opened on behalf of @jiangzeng The test `System.PrivateUri.Tests.UriRelativeResolutionTest/Uri_Relative_SimplePartialPathWithScheme_Unicode_ReturnsPartialPathWithScheme` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Uri.CreateUriInfo(Flags cF) at System.Uri.EnsureUriInfo() at System.Uri.ParseRemaining() at System.Uri.InitializeUri(ParsingError err, UriKind uriKind, UriFormatException& e) at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind) at System.PrivateUri.Tests.UriRelativeResolutionTest.Uri_Relative_SimplePartialPathWithScheme_Unicode_ReturnsPartialPathWithScheme() in D:\A\_work\32\s\corefx\src\System.Private.Uri\tests\FunctionalTests\UriRelativeResolutionTest.cs:line 152 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Private.Uri.Functional.Tests/analysis/xunit/System.PrivateUri.Tests.UriRelativeResolutionTest~2FUri_Relative_SimplePartialPathWithScheme_Unicode_ReturnsPartialPathWithScheme +13251 area-System.Reflection Test failure: Several tests unders System.Reflection.Emit.Tests.CustomAttributeBuilderTests failed Opened on behalf of @jiangzeng The test `System.Reflection.Emit.Tests.CustomAttributeBuilderTests/ConstructorParametersNotSupportedInAttributes_ThrowsArgumentException(type: typeof(System.IntPtr), value: 1)` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: (No exception was thrown) Stack Trace: at System.Reflection.Emit.Tests.CustomAttributeBuilderTests.ConstructorParametersNotSupportedInAttributes_ThrowsArgumentException(Type type, Object value) in D:\A\_work\32\s\corefx\src\System.Reflection.Emit.ILGeneration\tests\CustomAttributeBuilderTests.cs:line 638 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: ConstructorParametersNotSupportedInAttributes_ThrowsArgumentException NamedFields_FieldTypeNotSupportedInAttributes_ThrowsArgumentException NotSupportedObjectInConstructorArgs_ThrowsArgumentException NotSupportedPrimitiveInConstructorArgs_ThrowsArgumentException NotSupportedPrimitiveInFieldValues_ThrowsArgumentException NotSupportedPrimitiveInPropertyValues_ThrowsArgumentException NullValueForPrimitiveTypeInConstructorArgs_ThrowsArgumentNullException Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Reflection.Emit.ILGeneration.Tests +13252 area-System.Reflection Test failure: System.Reflection.Emit.Tests.DynamicMethodGetILGenerator1/GetILGenerator_Module(skipVisibility: False) Opened on behalf of @jiangzeng The test `System.Reflection.Emit.Tests.DynamicMethodGetILGenerator1/GetILGenerator_Module(skipVisibility: False)` has failed. System.FieldAccessException : Attempt by method 'DynamicClass.Method(System.Reflection.Emit.Tests.IDClass, Int32)' to access field 'System.Reflection.Emit.Tests.IDClass._id' failed. Stack Trace: at Method(IDClass , Int32 ) at System.Reflection.Emit.Tests.DynamicMethodGetILGenerator1.VerifyILGenerator(IntDelegate instanceCallBack, IDClass target, Int32 newId) in D:\A\_work\32\s\corefx\src\System.Reflection.Emit.Lightweight\tests\DynamicMethodGetILGenerator.cs:line 90 at System.Reflection.Emit.Tests.DynamicMethodGetILGenerator1.GetILGenerator_Module(Boolean skipVisibility) in D:\A\_work\32\s\corefx\src\System.Reflection.Emit.Lightweight\tests\DynamicMethodGetILGenerator.cs:line 85 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: GetILGenerator_Module ILGenerator_Int_Module Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Reflection.Emit.Lightweight.Tests/analysis/xunit/System.Reflection.Emit.Tests.DynamicMethodGetILGenerator1~2FGetILGenerator_Module(skipVisibility:%20False) https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Reflection.Emit.Lightweight.Tests/analysis/xunit/System.Reflection.Emit.Tests.DynamicMethodGetILGenerator1~2FILGenerator_Int_Module(skipVisibility:%20False) +13253 area-System.Reflection Test failure: Assert failing for several tests under System.Reflection.Emit.Tests.AssemblyTests Opened on behalf of @jiangzeng The test `System.Reflection.Emit.Tests.AssemblyTests/DefineDyamicModule_ModuleAlreadyDefined_ThrowsInvalidOperationException` has failed. Assert.Throws() Failure\r Expected: typeof(System.InvalidOperationException)\r Actual: (No exception was thrown) Stack Trace: at System.Reflection.Emit.Tests.AssemblyTests.DefineDyamicModule_ModuleAlreadyDefined_ThrowsInvalidOperationException() in D:\A\_work\32\s\corefx\src\System.Reflection.Emit\tests\AssemblyBuilderTests.cs:line 136 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: DefineDyamicModule_ModuleAlreadyDefined_ThrowsInvalidOperationException DefineDynamicAssembly_AssemblyName_AssemblyBuilderAccess DefineDynamicAssembly_AssemblyName_AssemblyBuilderAccess_CustomAttributeBuilder DefineDynamicAssembly_InvalidAccess_ThrowsArgumentException DefineDynamicAssembly_NameIsCopy DefineDynamicModule Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Reflection.Emit.Tests +13254 area-System.Net "Test failure: System.Collections.Specialized.Tests.HttpUtilityTest/UrlDecodeToBytes(decoded: \""http://127.0.0.1:8080/appDir/page.aspx?foo=b%ar\"", encoded: \""http://127.0.0.1:8080/appDir/page.aspx?foo=b%%u00..." "Opened on behalf of @jiangzeng The test `System.Collections.Specialized.Tests.HttpUtilityTest/UrlDecodeToBytes(decoded: \""http://127.0.0.1:8080/appDir/page.aspx?foo=b%ar\"", encoded: \""http://127.0.0.1:8080/appDir/page.aspx?foo=b%%u00...` has failed. Assert.Equal() Failure\r ? (pos 45)\r Expected: ···Dir/page.aspx?foo=b%ar\r Actual: ···Dir/page.aspx?foo=b%%u0061r\r ? (pos 45) Stack Trace: at System.Collections.Specialized.Tests.HttpUtilityTest.UrlDecodeToBytes(String decoded, String encoded) in D:\A\_work\32\s\corefx\src\System.Web.HttpUtility\tests\HttpUtility\HttpUtilityTest.cs:line 413 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Web.HttpUtility.Tests/analysis/xunit/System.Collections.Specialized.Tests.HttpUtilityTest~2FUrlDecodeToBytes(decoded:%20%5C%22http:~2F~2F127.0.0.1:8080~2FappDir~2Fpage.aspx%3Ffoo=b%25ar%5C%22,%20encoded:%20%5C%22http:~2F~2F127.0.0.1:8080~2FappDir~2Fpage.aspx%3Ffoo=b%25%25u00..." +13255 area-System.Xml Test failure: CoreXml.Test.XLinq.FunctionalTests+XNodeBuilderTests+TCCData/WriteCDataWithTwoClosingBrackets_5 Opened on behalf of @jiangzeng The test `CoreXml.Test.XLinq.FunctionalTests+XNodeBuilderTests+TCCData/WriteCDataWithTwoClosingBrackets_5` has failed. System.ArgumentException : Cannot have ']]>' inside an XML CDATA block. Stack Trace: at System.Xml.XmlTextWriter.WriteCData(String text) at System.Xml.XmlWriter.WriteNode(XmlReader reader, Boolean defattr) at System.Xml.XmlReader.ReadOuterXml() at CoreXml.Test.XLinq.FunctionalTests.XNodeBuilderTests.TCCData.WriteCDataWithTwoClosingBrackets_5() in D:\A\_work\32\s\corefx\src\System.Private.Xml.Linq\tests\xNodeBuilder\CommonTests.cs:line 3421 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: WriteCDataWithTwoClosingBrackets_5 WriteCommentWithDoubleHyphensInValue IncludePIEndTagAsPartOfTextValue Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Xml.Linq.xNodeBuilder.Tests +13256 area-System.Xml Test failure: System.Xml.Tests.AsyncReaderLateInitTests/ReadAfterInitializationWithUriOnAsyncReaderTrows Opened on behalf of @jiangzeng The test `System.Xml.Tests.AsyncReaderLateInitTests/ReadAfterInitializationWithUriOnAsyncReaderTrows` has failed. Assert.Throws() Failure\r Expected: typeof(System.Xml.XmlException)\r Actual: typeof(System.AggregateException): One or more errors occurred. Stack Trace: at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Xml.XmlTextReaderImpl.FinishInitUriString() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.Tests.AsyncReaderLateInitTests.<>c__DisplayClass8_0.b__0() in D:\A\_work\32\s\corefx\src\System.Private.Xml\tests\XmlReader\Tests\AsyncReaderLateInitTests.cs:line 86 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Xml.RW.XmlReader.Tests/analysis/xunit/System.Xml.Tests.AsyncReaderLateInitTests~2FReadAfterInitializationWithUriOnAsyncReaderTrows +13257 area-System.Xml Test failure: System.Xml.Tests.AsyncReaderLateInitTests/ReadAsyncAfterInitializationWithUriThrows Opened on behalf of @jiangzeng The test `System.Xml.Tests.AsyncReaderLateInitTests/ReadAsyncAfterInitializationWithUriThrows` has failed. Assert.Throws() Failure\r Expected: typeof(System.Xml.XmlException)\r Actual: typeof(System.Net.WebException): The remote name could not be resolved: 'test.test' Stack Trace: at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Xml.XmlDownloadManager.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Xml.XmlUrlResolver.d__15.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Xml.XmlTextReaderImpl.d__476.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Xml.AsyncHelper.<_CallBoolTaskFuncWhenFinish>d__12.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Xml.Tests.AsyncReaderLateInitTests.<>c__DisplayClass7_0.b__0() in D:\A\_work\32\s\corefx\src\System.Private.Xml\tests\XmlReader\Tests\AsyncReaderLateInitTests.cs:line 76 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Xml.RW.XmlReader.Tests/analysis/xunit/System.Xml.Tests.AsyncReaderLateInitTests~2FReadAsyncAfterInitializationWithUriThrows +13258 area-System.Xml Test failure: System.Xml.Tests.InsertAfterTests/InsertAfterRemovesDupRefAttrAtTheEnd Opened on behalf of @jiangzeng The test `System.Xml.Tests.InsertAfterTests/InsertAfterRemovesDupRefAttrAtTheEnd` has failed. System.ArgumentOutOfRangeException : Insertion index was out of range. Must be non-negative and less than or equal to size.\r Parameter name: index Stack Trace: at System.Collections.ArrayList.Insert(Int32 index, Object value) at System.Xml.XmlNamedNodeMap.InsertNodeAt(Int32 i, XmlNode node) at System.Xml.XmlAttributeCollection.InsertNodeAt(Int32 i, XmlNode node) at System.Xml.XmlAttributeCollection.InsertAfter(XmlAttribute newNode, XmlAttribute refNode) at System.Xml.Tests.InsertAfterTests.InsertAfterRemovesDupRefAttrAtTheEnd() in D:\A\_work\32\s\corefx\src\System.Private.Xml\tests\XmlDocument\XmlAttributeCollectionTests\InsertAfterTests.cs:line 224 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Xml.XmlDocument.Tests/analysis/xunit/System.Xml.Tests.InsertAfterTests~2FInsertAfterRemovesDupRefAttrAtTheEnd +13259 area-System.Xml Test failure: System.Xml.Tests.InsertAfterTests/InsertAfterReplacesDupRefAttr Opened on behalf of @jiangzeng The test `System.Xml.Tests.InsertAfterTests/InsertAfterReplacesDupRefAttr` has failed. Assert.Same() Failure\r Expected: XmlAttribute []\r Actual: XmlAttribute [] Stack Trace: at System.Xml.Tests.InsertAfterTests.InsertAfterReplacesDupRefAttr() in D:\A\_work\32\s\corefx\src\System.Private.Xml\tests\XmlDocument\XmlAttributeCollectionTests\InsertAfterTests.cs:line 251 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Xml.XmlDocument.Tests/analysis/xunit/System.Xml.Tests.InsertAfterTests~2FInsertAfterReplacesDupRefAttr +13260 area-System.Xml Test failure: System.Xml.Tests.NodeMap_SetNamedItemTests/NamedItemIsNull Opened on behalf of @jiangzeng The test `System.Xml.Tests.NodeMap_SetNamedItemTests/NamedItemIsNull` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Xml.XmlAttributeCollection.SetNamedItem(XmlNode node) at System.Xml.Tests.NodeMap_SetNamedItemTests.NamedItemIsNull() in D:\A\_work\32\s\corefx\src\System.Private.Xml\tests\XmlDocument\XmlNamedNodeMapTests\SetNamedItemTests.cs:line 37 Build : Master - 20161031.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: System.Xml.Tests.NodeMap_SetNamedItemTests/NamedItemIsNull System.Xml.Tests.SetNamedItemTests/SetNamedItemWithNullReturnsNull Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Xml.XmlDocument.Tests/analysis/xunit/System.Xml.Tests.NodeMap_SetNamedItemTests~2FNamedItemIsNull https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161031.01/workItem/System.Xml.XmlDocument.Tests/analysis/xunit/System.Xml.Tests.SetNamedItemTests~2FSetNamedItemWithNullReturnsNull +13261 area-Meta BufferManager (from System.ServiceModel.Channels) not available? I'm trying to use that class, but it doesn't appear to be available for use. I can see it in the API: https://docs.microsoft.com/en-us/dotnet/core/api/system.servicemodel.channels.buffermanager#System_ServiceModel_Channels_BufferManager How and what do I do in order to make use of this feature? Thank you. +13264 area-System.Threading Expose ReaderWriterLock - Rewrote ReaderWriterLock in C# from the original code, exposed it, and added tests - Original code: - https://github.com/dotnet/coreclr/blob/master/src/vm/rwlock.h - https://github.com/dotnet/coreclr/blob/master/src/vm/rwlock.cpp Fixes #11634 +13265 area-System.Reflection ParameterInfo objects are not guaranteed to be unique. After spending many hours tracking down [this bug](https://github.com/simpleinjector/SimpleInjector/issues/323) in Simple Injector, I came to the conclusion that: - `System.Type` instances are guaranteed to be unique within a single AppDomain. - `System.MemberBase` instances are guaranteed to be unique within a single AppDomain. - `System.ParameterInfo` instances are ***not*** guaranteed to be unique. When looking at the source code for `System.Type`, `System.Type.GetMembers()` and related methods it becomes clear that for each type there will be at most one `System.Type` instance and for each type member, there will be at most one `MemberBase` instance. For some weird reason however, this doesn't hold for `ParameterInfo` instances. When looking at `ConstructorInfo.GetParameters()` we can see that the creation of `ParameterInfo` objects is not protected by a lock and multiple concurrent threads can cause multiple `ParameterInfo` instances to be published for the same 'physical' parameter. I think this is a bug, or at least this is a design quirk, because developers will typically assume all reflection types to be unique within a single app domain. +13266 area-System.Runtime Break S.Security.Permissions dependency in S.R.Extension library S.Runtime.Extensions cannot depend on System.Security.Permissions so this change breaks that dependency. cc @rahku @kouvel @stephentoub +13267 area-System.Data ON AZURE: System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.SNILoadHandle' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'sni.dll': "After publishing my .net core mvc app to AZURE I get the following exception whenever an attempt is made to create an instance (doesn't matter if direct or via DI) of my data context: ``` Application startup exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.SNILoadHandle' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'sni.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at System.Data.SqlClient.SNINativeMethodWrapper.SNIInitialize(IntPtr pmo) at System.Data.SqlClient.SNILoadHandle..ctor() at System.Data.SqlClient.SNILoadHandle..cctor() --- End of inner exception stack trace --- at System.Data.SqlClient.TdsParser..cctor() --- End of inner exception stack trace --- at System.Data.SqlClient.TdsParser..ctor(Boolean MARS, Boolean fAsynchronous) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource 1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open() at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext() at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_ShapedQuery>d__3 1.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator 2.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor 1.EnumeratorExceptionInterceptor.MoveNext() at System.Collections.Generic.List 1..ctor(IEnumerable 1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable 1 source) at TriCon360.NetCore.Core.Extentions.DbContextExtentions.GetRequestLocalizationOptions(ApplicationDbContext context, String defaultCulture) in D:\Becom360 Applications\TriCon360.NetCore.Core\Extentions\DbContextExtentions.cs:line 44 at Becom360.NetCore.Web.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) in D:\Becom360 Applications\Becom360.NetCore.Web\Startup.cs:line 129 --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.AspNetCore.Hosting.Internal.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication() crit: Microsoft.AspNetCore.Hosting.Internal.WebHost[6] Application startup exception System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.SNILoadHandle' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'sni.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at System.Data.SqlClient.SNINativeMethodWrapper.SNIInitialize(IntPtr pmo) at System.Data.SqlClient.SNILoadHandle..ctor() at System.Data.SqlClient.SNILoadHandle..cctor() --- End of inner exception stack trace --- at System.Data.SqlClient.TdsParser..cctor() --- End of inner exception stack trace --- at System.Data.SqlClient.TdsParser..ctor(Boolean MARS, Boolean fAsynchronous) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource 1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open() at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable.Enumerator.MoveNext() at Microsoft.EntityFrameworkCore.Query.QueryMethodProvider.<_ShapedQuery>d__3 1.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator 2.MoveNext() at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor 1.EnumeratorExceptionInterceptor.MoveNext() at System.Collections.Generic.List 1..ctor(IEnumerable 1 collection) at System.Linq.Enumerable.ToList[TSource](IEnumerable 1 source) at TriCon360.NetCore.Core.Extentions.DbContextExtentions.GetRequestLocalizationOptions(ApplicationDbContext context, String defaultCulture) in D:\Becom360 Applications\TriCon360.NetCore.Core\Extentions\DbContextExtentions.cs:line 44 at Becom360.NetCore.Web.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) in D:\Becom360 Applications\Becom360.NetCore.Web\Startup.cs:line 129 --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.AspNetCore.Hosting.Internal.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder) at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication() warn: Microsoft.AspNetCore.Server.Kestrel[0] Unable to bind to http://localhost:33020 on the IPv6 loopback interface. System.AggregateException: One or more errors occurred. (Error -4089 EAFNOSUPPORT address family not supported) ---> Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvException: Error -4089 EAFNOSUPPORT address family not supported at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.Check(Int32 statusCode) at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.tcp_bind(UvTcpHandle handle, SockAddr& addr, Int32 flags) at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvTcpHandle.Bind(ServerAddress address) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.TcpListener.CreateListenSocket() at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Listener.<>c.b__6_0(Object state) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at Microsoft.AspNetCore.Server.Kestrel.Internal.KestrelEngine.CreateServer(ServerAddress address) at Microsoft.AspNetCore.Server.Kestrel.KestrelServer.StartTContext ---> (Inner Exception #0) Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvException: Error -4089 EAFNOSUPPORT address family not supported at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.Check(Int32 statusCode) at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.Libuv.tcp_bind(UvTcpHandle handle, SockAddr& addr, Int32 flags) at Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvTcpHandle.Bind(ServerAddress address) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.TcpListener.CreateListenSocket() at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Listener.<>c.b__6_0(Object state)<--- Hosting environment: Production Content root path: D:\home\site\wwwroot Now listening on: http://localhost:33020 Application started. Press Ctrl+C to shut down. info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1] Request starting HTTP/1.1 GET http://tricon360.azurewebsites.net/ info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2] Request finished in 213.8363ms 500 text/html; charset=utf-8 ``` My project.json of the web application looks like this: ``` ""buildOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.1"" }, ""Microsoft.AspNetCore.Hosting"": ""1.0.0"", ""Microsoft.EntityFrameworkCore.Tools"": { ""version"": ""1.0.0-preview2-final"", ""type"": ""build"" }, ""Microsoft.Extensions.Configuration.EnvironmentVariables"": ""1.0.0"", ""Microsoft.Extensions.Configuration.Json"": ""1.0.0"", ""Microsoft.Extensions.Configuration.UserSecrets"": ""1.0.0"", ""Microsoft.Extensions.Logging"": ""1.0.0"", ""Microsoft.Extensions.Logging.Console"": ""1.0.0"", ""Microsoft.Extensions.Logging.Debug"": ""1.0.0"", ""AutoMapper"": ""5.1.1"", ""Microsoft.Extensions.DependencyInjection"": ""1.0.0"", ""Microsoft.Extensions.DependencyInjection.Abstractions"": ""1.0.0"", ""Microsoft.AspNetCore.Razor.Tools"": { ""version"": ""1.0.0-preview2-final"", ""type"": ""build"" }, ""Microsoft.AspNetCore.Server.IISIntegration.Tools"": { ""version"": ""1.0.0-preview2-final"", ""type"": ""build"" }, ""NLog"": ""4.4.0-betaV15"", ""System.Linq"": ""4.1.0"", ""System.Linq.Queryable"": ""4.0.1"", ""System.Linq.Parallel"": ""4.0.1"", ""System.Interactive.Async"": ""3.0.0"", ""TriCon360.NetCore.Core"": ""1.0.0-*"", ""dotnet-test-nunit"": ""3.4.0-beta-2"", ""Newtonsoft.Json"": ""9.0.1"", ""Microsoft.Extensions.Options.ConfigurationExtensions"": ""1.0.0"", ""Moq"": ""4.6.38-alpha"", ""Microsoft.AspNetCore.Server.Kestrel"": ""1.0.1"", ""Microsoft.EntityFrameworkCore"": ""1.0.1"", ""Microsoft.EntityFrameworkCore.InMemory"": ""1.0.1"", ""Microsoft.EntityFrameworkCore.SqlServer"": ""1.0.1"", ""NUnit"": ""3.5.0"", ""HtmlAgilityPack"": ""1.4.9.5"" }, ""tools"": { ""Microsoft.EntityFrameworkCore.Tools"": { ""version"": ""1.0.0-preview2-final"", ""imports"": [ ""dnxcore50"", ""dotnet5.6"", ""portable-net45+win8"" ] } }, ""testRunner"": ""nunit"", ""frameworks"": { ""netcoreapp1.0"": { ""dependencies"": { }, ""imports"": [ ""dotnet5.6"", ""dnxcore50"", ""portable-net45+win8"" ] } }, ""runtimes"": { ""win10-x86"": {}, ""win10-x64"": {} } ``` I would like to stress that it works perfectly fine on my development environment. Even when I connect from my local machine to the Azure DB." +13268 area-Serialization Members of DataContractSerializer that are in NS2.0 are missing ``` namespace System.Runtime.Serialization { public sealed class DataContractSerializer : XmlObjectSerializer { public DataContractResolver DataContractResolver { get; } public object ReadObject(XmlDictionaryReader reader, bool verifyObjectName, DataContractResolver dataContractResolver); public void WriteObject(XmlDictionaryWriter writer, object graph, DataContractResolver dataContractResolver); ``` @zhenlan @shmao +13269 area-Serialization One constructor on SerializationInfo class needs exposing Needs adding to model.xml and possibly a test adding. ``` public sealed class SerializationInfo { public SerializationInfo(Type type, IFormatterConverter converter, bool requireSameTokenInPartialTrust); } ``` +13270 area-System.IO FileStream.ReadAsync with FILE_FLAG_NO_BUFFERING at end of non-sector-aligned file causes ERROR_INVALID_PARAMETER "I was doing some perf testing with `FILE_FLAG_NO_BUFFERING` and found that it doesn't seem to work with async whole-`FileStream` reads. I think the bug is FileStream.cs around [here](https://github.com/dotnet/corefx/blob/master/src/System.IO.FileSystem/src/System/IO/FileStream.Win32.cs#L919). `numBytes` gets set to a non-sector-aligned value and reused for the `ReadFileNative` which [is illegal with FILE_FLAG_NO_BUFFERING](https://msdn.microsoft.com/en-us/library/windows/desktop/cc644950(v=vs.85).aspx). I'm testing with .NET 4.6.2, so the source looks a bit different, but the same bug appears to be there. If I set `numBytes = 512` in the debugger (original read size), everything works as expected for the 2nd-to-last-read. On the last `ReadAsync` (the one that should return 0 because EOF has been reached), `numBytes` is `0` so we do a seemingly-needless `SeekCore(0, SeekOrigin.Current);` then a `ReadFileNative(_handle, bytes, offset, numBytes, intOverlapped, out hr);`, which causes a `hr = 87` (`ERROR_INVALID_PARAMETER`) - apparently 0 byte reads are also illegal :) I wasn't quite sure where the fix should go, but it seems like using a separate variable to determine how much to `SeekCore` and returning early when `numBytes = 0` would fix the problem. Note that using the synchronous `Read` without `FileOptions.Asynchronous` also works around this problem. Here's a minimal repro: ``` static void Main(string[] args) { Run().GetAwaiter().GetResult(); } static async Task Run() { var fs = GetStream(@""C:\Users\kedavid\Desktop\third_order.PNG""); using (var ms = new MemoryStream()) { var buf = new byte[512]; int read = 0; while ((read = await fs.ReadAsync(buf, 0, buf.Length)) != 0) { ms.Write(buf, 0, read); } } } static FileStream GetStream(string fullPath) { FileOptions FILE_FLAG_NO_BUFFERING = (FileOptions)0x20000000; return new FileStream( fullPath, FileMode.Open, FileAccess.Read, FileShare.None, 8, FileOptions.Asynchronous | FILE_FLAG_NO_BUFFERING); } ```" +13272 area-System.Security Port missing System.Security.Cryptography.X509Certificates members Address issue https://github.com/dotnet/corefx/issues/12295 Note that tests need to be added for X509Store.AddRange and .RemoveRange but if implemented like the rest of the tests they would run unreliably as they create physical artifacts on the machine. There are comments in the tests for this, and I will create a new issue to address this in addition to addressing related testing issues with the pre-existing Add and Remove methods (see https://github.com/dotnet/corefx/issues/12833) The X509Certificate.Import methods throw PNSE as the implementation is flaky in netfx. This has been previously discussed as acceptable for ns2.0. @bartonjs please review. There are some review notes embedded. +13274 area-System.Net Reduce allocations in SslStream reading/writing by ~30% https://github.com/dotnet/corefx/pull/12935 reduced allocations in SslStream reading/writing by ~70%. This PR reduces it further by another ~30% from where it was after that PR. Before (10K reads / 10K writes): ![image](https://cloud.githubusercontent.com/assets/2642209/19942733/1ecfce22-a10b-11e6-890e-8038c20a8aaa.png) After (10K reads / 10K writes): ![image](https://cloud.githubusercontent.com/assets/2642209/19942743/2ddb8640-a10b-11e6-9e16-5ab07e747b54.png) Main changes: - Every read/write operation was allocating a new AsyncProtocolRequest. Without changing any of the plumbing through SslStream, we can take advantage of the fact that SslStream allows only a single read and a single write operation at a time, which means we can store and reuse an AsyncProtocolRequest instance for reading and one for writing, reusing the instances for all read/write operations on the stream. - Every read operation was boxing an Int32 result. This changes the BufferAsyncResult instance used for reads to reuse one of its existing fields to store that result, rather than storing it in the base LazyAsyncResult's object field. - Also took the opportunity to remove an unused field from BufferAsyncResult, though it doesn't change the size on 64-bit given the other fields on the base class. cc: @geoffkizer, @ericeil, @davidsh, @cipop, @benaadams, @davidfowl Contributes to https://github.com/dotnet/corefx/issues/11826 +13275 area-System.Security Implement System.Security.PrincipalPermission and SecurityElement - Ports desktop code for SecurityELement and PrincipalPermission - To be used in Security.Permissions, some of the members in System.Sec.Principal.Windows need to be moved into common. - Fixes the old desktop implementation of the two functions to work in .net core. Originally the plan was to only implement PrincipalPermission, but it relied heavily on SecurityElement functionality so I opted to implement that as well. The only remaining item not fully implemented is SecurityElement.FromString. - Required splitting PrincipalPermission (and the assembly) based on Unix/Windows. - Adds tests for SecurityElement and PrincipalPermission resolves https://github.com/dotnet/corefx/issues/9641 @AlexGhiondea @joperezr @stephentoub +13277 area-Infrastructure Update BuildTools to version that is signed Builds from the past few days were unsigned due to a breaking change in microbuild. We've worked-around that. Replaces https://github.com/dotnet/corefx/pull/13271 /cc @safern @weshaggard +13279 area-System.Net Delete defunct StreamApmExtensions from System.Net.Security This code was added as a workaround when Stream didn't provide Begin/End methods. Now that it does, the code is no longer used. cc: @geoffkizer, @ericeil, @davidsh, @cipop +13280 area-System.ComponentModel Either ErrorMessageString or ErrorMessageResourceName must be set, but not both - provide hint which property _From @stefanhendriks on November 1, 2016 9:28_ This is happening on an API call (JSON serialization). From my perspective this problem 'suddendly' appears and I have no way of backtracking which property is causing this error message. Some background info: - we have a filter that validates models before they enter the controller action - when a validation error is found, we throw an exception and send a nice generic error response with per-field a validation message. The stack trace is also not helpful: ``` System.InvalidOperationException: Either ErrorMessageString or ErrorMessageResourceName must be set, but not both. at System.ComponentModel.DataAnnotations.ValidationAttribute.SetupResourceAccessor() at System.ComponentModel.DataAnnotations.ValidationAttribute.get_ErrorMessageString() at System.ComponentModel.DataAnnotations.RegularExpressionAttribute.FormatErrorMessage(String name) at System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(Object value, ValidationContext validationContext) at System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext) at Microsoft.AspNetCore.Mvc.DataAnnotations.Internal.DataAnnotationsModelValidator.Validate(ModelValidationContext validationContext) at Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.ValidateNode() at Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Visit(ModelMetadata metadata, String key, Object model) at Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.VisitChildren(IValidationStrategy strategy) at Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.VisitComplexType() at Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Visit(ModelMetadata metadata, String key, Object model) at Microsoft.AspNetCore.Mvc.Internal.DefaultControllerArgumentBinder.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.DefaultControllerArgumentBinder.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__26.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__25.MoveNext() ``` The only 'clue' we can derive is that ```Either ErrorMessageString or ErrorMessageResourceName must be set, but not both.``` Perhaps the exception / message can be expanded with the property name (and validator)? _Copied from original issue: aspnet/Mvc#5478_ +13281 area-System.Net HttpClientHandler_SslProtocols_Test.GetAsync_AllowedSSLVersion_Succeeds test failed HttpClientHandler_SslProtocols_Test.GetAsync_AllowedSSLVersion_Succeeds test failed https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug_prtest/93/consoleText ``` System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol: Tls11, requestOnlyThisProtocol: False) [FAIL] System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The operation has been canceled Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\outerloop_win---7ad0ce03\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.SslProtocols.cs(102,0): at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.<>c__DisplayClass4_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\outerloop_win---7ad0ce03\src\Common\tests\System\Net\Http\LoopbackServer.cs(57,0): at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\outerloop_win---7ad0ce03\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.SslProtocols.cs(100,0): at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() ``` +13283 area-System.Collections Add [Serializable] on System.Collections.ObjectModel.ReadOnlyDictionary `System.Collections.ObjectModel.ReadOnlyDictionary` is marked with SerializableAttribute on full framework. It should be marked with the attribute now as the attribute is available in CoreFx. +13284 area-System.Xml System.Xml.Linq tests failing in outer loop e.g. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug_prtest/94/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug/54/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release/53/consoleText Lots of errors in each like: ``` FAILED Call WriteNode with reader on element with 100 attributes System.IO.FileNotFoundException: Could not load file or assembly 'ModuleCore, Version=999.999.999.999, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. File name: 'ModuleCore, Version=999.999.999.999, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' at XmlCoreTest.Common.FilePathUtil.GetVariableValue(String name) at XmlCoreTest.Common.FilePathUtil.GetTestDataPath() at CoreXml.Test.XLinq.FunctionalTests.XNodeBuilderTests.TCWriteNode_XmlReader.writeNode_XmlReader22() in D:\j\workspace\outerloop_win---65ef7d78\src\System.Private.Xml.Linq\tests\xNodeBuilder\CommonTests.cs:line 1772 at Microsoft.Test.ModuleCore.TestVariation.Execute() at Microsoft.Test.ModuleCore.TestCase.Execute() ``` +13285 area-System.Xml Fix System.Xml.Linq.XNodeBuilder outerloop test failures Resolves https://github.com/dotnet/corefx/issues/13284 This P2P reference was missing in outerloop test runs. (caused by recent changes in Xml.Linq tests) cc: @stephentoub +13287 area-System.Net WIP - DO NOT MERGE: Add System.Net.Http.Listener "Note: this is a work in progress. **Do not merge.** I'm submitting this PR early so I can get some feedback before handing this over to @Priya91. Adds `HttpListener` as a new contract: System.Net.Http.Listener. This PR contains only the Windows implementation, which is based on the Win32 ""http.sys"" API. Remaining work: - Implement authentication. This will either involve sharing a fair amount of source code with System.Net.Security, or re-implementing the auth support on existing public surface from System.Net.Security. I didn't have time to explore these options enough to say which is best. For now, I've cut off auth support by throwing `NotImplementedException` in a few places. - Another couple of `NotImplementedException`s where we are trying to convert raw binary socket addresses into `SocketAddress` instances. May need new public surface in System.Net.Sockets, or just more thought than I was able to put into it. - More testing. I've only done a single ""real"" test. - Implement for Unix. Mono's implementation may provide a good starting point. @Priya91 @stephentoub @davidsh @CIPop @geoffkizer @karelz " +13288 area-Serialization Made DCS/DCJS support NonSerializedAttribute and OptionalFieldAttribute. The PR is to make DCS/DCJS to respect NonSerializedAttribute and OptionalFieldAttribute. Fix https://github.com/dotnet/corefx/issues/13367 cc: @zhenlan @mconnew @huanwu +13289 area-System.Security Move types from S.Security.Permissions that are part of netstandard 2.0 System.Security.Permissions is a supposed to be a compat library that is on top of netstandard 2.0 so it cannot contain any types that are part of netstandard 2.0 so we need to move those to other contracts. The following types need to be moved: ``` System.Security.IPermission System.Security.ISecurityEncodeable System.Security.SecurityElement System.Security.Permissions.CodeAccessSecurityAttribute System.Security.Permissions.SecurityAction System.Security.Permissions.SecurityAttribute System.Security.Permissions.SecurityPermissionAttribute System.Security.Permissions.SecurityPermissionFlag ``` We need to have a look at the best place to put them. I would put them in System.Runtime or System.Runtime.Extensions but that would require that we pull down Hashtable and ArrayList as well because they are in the closure of SecurityElement. Whoever picks up this work item should take a look and recommend a home for them. cc @danmosemsft @AlexGhiondea @ianhays +13290 area-Infrastructure Add parameter to allow custom override Nuget store @joperezr +13291 area-System.Security SafeAccessTokenHandle needs to move to System.Runtime SafeAccessTokenHandle which is included in netstandard2.0 is currently defined in System.Security.Principal.Windows which isn't part of netstandard2.0. We need to move it down into an assembly that is part of netstandard. Majority of the other handle types are in System.Runtime so I suggest we just include this one there as well. +13292 area-System.Net Add GSSAPI and NTLM authentication support for smtp. cc @davidsh @CIPop @ericeil @stephentoub @karelz fixes #12535 - Tested the NTLM part - [WIP] Testing GSSAPI. Put up the PR for review, and but will merge once the the GSSAPI testing is done, especially the Linux codepaths of VerifySignature and MakeSignature on Client side needs to be tested. Please comment of any smtp servers with GSSAPI available, currently trying to configure Windows Server 2008 SMTP Server feature. +13293 area-System.Runtime Optimize int parsing Int64.Parse was too slow for Kestrel. They wrote their own: https://github.com/aspnet/KestrelHttpServer/commit/fff0adeaaf55b23f2173be25c59202a322f8eda6 Their code only handles the simple case nevertheless we should examine whether we can optimize the general case, or consider a new API like Int64.ParseFast that they can call instead. https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Number.cs#L709 /cc @davidfowl +13294 area-System.IO Support for Long File Paths (260+ characters) with System.IO APIs This is also a bug with the current (non-core) version of the .NET Framework -- and it would be nice if it could be passed on to both teams, but it affects everything that uses System.IO (and it has some really gnarly consequences with tools like the Azure emulator, Xamarin, etc.) Right now anything done with the System.IO file system APIs on a Windows machine will fail if the path to the files accessed is longer than 260 characters. -- It will throw a `System.IO.PathTooLongException`. Since `System.String` in .NET is not subject to buffer overruns, etc., those APIs should be updated to call the newer system APIs which support longer file names. (No reason for new methods, or signatures, etc. -- this is a bug in the current framework; these methods should just be fixed to work and not throw that exception.) If this bug is fixed (in the main version of .NET as well), so many headaches will go away for me that it's not even funny. +13295 area-System.Reflection Consider adding GetAssemblyName() : AssemblyName to AssemblyDefinition and AssemblyReference Constructing System.Reflection.AssemblyName from metadata is a bit tricky. Providing an easy to use helper would avoid common pitfalls and reduce code duplication. See e.g. http://source.roslyn.io/#Microsoft.CodeAnalysis/InternalUtilities/AssemblyIdentityUtils.cs +13297 area-System.IO Possible bug in BufferedStream.FlushAsync for read-only Streams There is [this code](https://github.com/dotnet/corefx/blob/master/src/System.IO/src/System/IO/BufferedStream.cs#L272-L290) in the synchronous `BufferedStream.Flush`: ```cs if (_readPos < _readLen) { // If the underlying stream is not seekable AND we have something in the read buffer, then FlushRead would throw. // We can either throw away the buffer resulting in data loss (!) or ignore the Flush. // (We cannot throw because it would be a breaking change.) We opt into ignoring the Flush in that situation. if (!_stream.CanSeek) return; FlushRead(); // User streams may have opted to throw from Flush if CanWrite is false (although the abstract Stream does not do so). // However, if we do not forward the Flush to the underlying stream, we may have problems when chaining several streams. // Let us make a best effort attempt: if (_stream.CanWrite) _stream.Flush(); Debug.Assert(_writePos == 0 && _readPos == 0 && _readLen == 0); return; } ``` Here is the [corresponding code](https://github.com/dotnet/corefx/blob/master/src/System.IO/src/System/IO/BufferedStream.cs#L324-L342) in the async version: ```cs if (_readPos < _readLen) { // If the underlying stream is not seekable AND we have something in the read buffer, then FlushRead would throw. // We can either throw away the buffer resulting in date loss (!) or ignore the Flush. (We cannot throw because it // would be a breaking change.) We opt into ignoring the Flush in that situation. if (!_stream.CanSeek) return; FlushRead(); // not async; it uses Seek, but there's no SeekAsync // User streams may have opted to throw from Flush if CanWrite is false (although the abstract Stream does not do so). // However, if we do not forward the Flush to the underlying stream, we may have problems when chaining several streams. // Let us make a best effort attempt: if (_stream.CanRead) await _stream.FlushAsync(cancellationToken).ConfigureAwait(false); Debug.Assert(_writePos == 0 && _readPos == 0 && _readLen == 0); return; } ``` Note how in the first version, we check if the stream is writable before calling `Flush` while in the second `FlushAsync` is called if the stream is readable. It looks like this is a typo, and the second version should have checked `_stream.CanWrite`. +13298 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test/NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds Opened on behalf of @jiangzeng The test `System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test/NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Net.Http.WinHttpException : The handle is in the wrong state for the requested operation Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : Master - 20161102.03 (Core Tests) Failing configurations: - Windows.7.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161102.03/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test~2FNoCallback_RevokedCertificate_NoRevocationChecking_Succeeds +13299 area-System.Net Test failure: System.Net.Sockets.Tests.DualModeBeginConnectToIPAddress/BeginConnectV4IPAddressToV6Host_Fails Opened on behalf of @jiangzeng The test `System.Net.Sockets.Tests.DualModeBeginConnectToIPAddress/BeginConnectV4IPAddressToV6Host_Fails` has failed. Assert.Throws() Failure Expected: typeof(System.Net.Sockets.SocketException) Actual: (No exception was thrown) Stack Trace: at System.Net.Sockets.Tests.DualModeBeginConnectToIPAddress.BeginConnectV4IPAddressToV6Host_Fails() Build : Master - 20161102.03 (Core Tests) Failing configurations: - Centos.71.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161102.03/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DualModeBeginConnectToIPAddress~2FBeginConnectV4IPAddressToV6Host_Fails +13300 area-System.Net Test failure: System.Net.Tests.TaskWebClientTest/OpenWrite_Success(echoServer: https://corefx-net.cloudapp.net/Echo.ashx) Opened on behalf of @jiangzeng The test `System.Net.Tests.TaskWebClientTest/OpenWrite_Success(echoServer: https://corefx-net.cloudapp.net/Echo.ashx)` has failed. System.Net.WebException : An error occurred while sending the request. SSL connect error ---- System.Net.Http.HttpRequestException : An error occurred while sending the request. -------- System.Net.Http.CurlException : SSL connect error Stack Trace: at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.WebClient.GetWebResponse(WebRequest request) at System.Net.WebClient.WebClientWriteStream.Dispose(Boolean disposing) at System.IO.Stream.Close() at System.Net.Tests.WebClientTestBase.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.HttpWebRequest.d__176.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) Build : Master - 20161102.03 (Core Tests) Failing configurations: - Redhat.72.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161102.03/workItem/System.Net.WebClient.Tests/analysis/xunit/System.Net.Tests.TaskWebClientTest~2FOpenWrite_Success(echoServer:%20https:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx) +13301 area-System.Net Test failure: System.Net.Tests.WebProxyTest/BypassOnLocal_MatchesExpected Opened on behalf of @jiangzeng The test `System.Net.Tests.WebProxyTest/BypassOnLocal_MatchesExpected` has failed. System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : No such device or address Stack Trace: at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) at System.Net.Dns.EndGetHostEntry(IAsyncResult asyncResult) at System.Net.Dns.<>c.b__27_1(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.WebProxyTest.d__10.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() Build : Master - 20161102.03 (Core Tests) Failing configurations: - Ubuntu.1610.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161102.03/workItem/System.Net.WebProxy.Tests/analysis/xunit/System.Net.Tests.WebProxyTest~2FBypassOnLocal_MatchesExpected +13302 area-System.Net Test failure: System.Net.WebSockets.Client.Tests.CancelTest / ReceiveAsync_Cancel_Success (server: ws://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx) Opened on behalf of @jiangzeng The test `System.Net.WebSockets.Client.Tests.CancelTest/ReceiveAsync_Cancel_Success(server: ws://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx)` has failed. Assert.Equal() Failure ? (pos 4) Expected: The 'System.Net.WebSockets.InternalClientWebS··· Actual: The remote party closed the WebSocket connect··· ? (pos 4) Stack Trace: at System.Net.WebSockets.Client.Tests.ClientWebSocketTestBase.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.WebSockets.Client.Tests.CancelTest.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20161102.03 (Core Tests) Failing configurations: - Suse.132.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161102.03/workItem/System.Net.WebSockets.Client.Tests/analysis/xunit/System.Net.WebSockets.Client.Tests.CancelTest~2FReceiveAsync_Cancel_Success(server:%20ws:~2F~2Fcorefx-net.cloudapp.net~2FWebSocket~2FEchoWebSocket.ashx) +13303 area-System.Net Test failure: CoreXml.Test.XLinq.FunctionalTests/RunTests Opened on behalf of @jiangzeng The test `CoreXml.Test.XLinq.FunctionalTests/RunTests` has failed. Assert.Equal() Failure\r Expected: 0\r Actual: 49 Stack Trace: at CoreXml.Test.XLinq.FunctionalTests.RunTests() Build : Master - 20161102.03 (Core Tests) Failing configurations: - Windows.7.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.81.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.10.Core.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161102.03/workItem/System.Xml.Linq.xNodeBuilder.Tests/analysis/xunit/CoreXml.Test.XLinq.FunctionalTests~2FRunTests +13304 area-System.IO Test failure: System.IO.Tests.WaitForChangedTests/CreatedDeleted_Success(changeType: Created) Opened on behalf of @jiangzeng The test `System.IO.Tests.WaitForChangedTests/CreatedDeleted_Success(changeType: Created)` has failed. Assert.Equal() Failure\r Expected: Created\r Actual: 0 Stack Trace: at System.IO.Tests.WaitForChangedTests.CreatedDeleted_Success(WatcherChangeTypes changeType) in D:\A\_work\26\s\corefx\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.WaitForChanged.cs:line 149 Build : Master - 20161102.03 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161102.03/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.WaitForChangedTests~2FCreatedDeleted_Success(changeType:%20Created) +13305 area-System.Xml Test failure: System.Xml.Tests.XmlWriterTests_InvalidSurrogate/XmlWriterChecksUpperBoundOfLowerSurrogate_newBehavior Opened on behalf of @jiangzeng The test `System.Xml.Tests.XmlWriterTests_InvalidSurrogate/XmlWriterChecksUpperBoundOfLowerSurrogate_newBehavior` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: (No exception was thrown) Stack Trace: at System.Xml.Tests.XmlWriterTests_InvalidSurrogate.XmlWriterChecksUpperBoundOfLowerSurrogate_newBehavior() in D:\A\_work\32\s\corefx\src\System.Private.Xml\tests\XmlWriter\WriteWithInvalidSurrogate.cs:line 52 Build : Master - 20161102.03 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161102.03/workItem/System.Xml.RW.XmlWriter.Tests/analysis/xunit/System.Xml.Tests.XmlWriterTests_InvalidSurrogate~2FXmlWriterChecksUpperBoundOfLowerSurrogate_newBehavior +13306 area-Meta Add more serialization attribution My tool was incorrectly handling generic names and their default representation via reflection and Roslyn (it uses the former to determine what's serializable in desktop and the latter to determine what's serializable in corefx). Fixing that revealed a few more types to be made serializable. The tool also highlighted a few more types that were recently added to corefx that lacked proper attribution. Fixes https://github.com/dotnet/corefx/issues/13283 cc: @danmosemsft, @shmao, @AlexGhiondea +13308 area-System.Collections ConcurrentDictionary.GetOrAdd documentation not quite correct In `ConcurrentDictionary`, the overload of `GetOrAdd` taking a function as argument says that it returns 'either the existing value for the key if the key is already in the dictionary, or the new value for the key'. But this is not the whole story. There are in fact three cases: 1. The key is already in the dictionary. Then the existing value is returned. 2. The key is not in the dictionary; the function `valueFactory` is called and generates a value. But then on rechecking, some other thread has inserted a value for that key in the meantime. In this case, the other thread's value is the one returned. The value returned by `valueFactory` is discarded. 3. The key is not in the dictionary; `valueFactory` is called; it's still not there, so the new value is inserted and returned. It needs to be a bit clearer that `valueFactory` can end up being called but its return value is not the final one returned. +13309 area-System.Net Device not configured from Dns.GetHostEntryAsync on macOS https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/2571/consoleText ``` System.Net.Tests.WebProxyTest.BypassOnLocal_MatchesExpected [FAIL] System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : Device not configured Stack Trace: at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) at System.Net.Dns.EndGetHostEntry(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Net.WebProxy/tests/WebProxyTest.cs(146,0): at System.Net.Tests.WebProxyTest.d__10.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() ``` +13310 area-System.Security Parts of the System.Security.Cryptography.* namespace missing in package: dotnet-dev-1.0.0-preview2.1-003155 I installed the dotnet-dev-1.0.0-preview2.1-003155 package on ubuntu:16.04 but it seems that parts of the System.Security.Cryptography.* namespace are missing. Thus i get a `System.DllNotFoundException: Unable to load DLL 'System.Security.Cryptography.Native': The specified module could not be found.` exception. The docker container microsoft/dotnet:1.0.0-preview2.1-sdk however contains the missing parts of the namespace. Is this an issue or am i doing something wrong? +13311 area-Meta LibUV should use win8-arm as the RID It currently places WinArm32 assets under win7-arm that is not a valid RID/platform configuration. @davidfowl Please reroute as appropriate. +13312 area-System.Net More aggressively clean up disposable resources in Http tests Most of these likely don't matter, but some of these can be keeping alive the underlying connections associated with the HttpClient instance, and it's possible that can lead to more resource contention / exhaustion. (This will be most easily reviewed with the ignore-whitespace view: https://github.com/dotnet/corefx/pull/13312/files?w=1) cc: @davidsh, @ericeil +13314 area-Meta Ensure native package reports have correct paths The native package reports had incorrect paths due to the way the paths were calculated based on OSGroup. OSGroup is not always passed when building these. We didn't actually need to use OSGroup when calculating the paths, it created a bunch of extra useless properties in the targets. We were also deriving some other things from this which didn't need to be platform specific. I've done a diff of nuspecs before and after this change with X-plat native build output copied local (to ensure I'm testing the excludes). I've also inspected the resulting binary and symbol packages to ensure content is the same. /cc @dagood @weshaggard +13315 area-System.Net Eliminate SecBufferDesc allocations in System.Net.Security Each SSPI operation in System.Net.Security allocates a SecBufferDesc to pass down to native code. This PR changes it from a class to a struct to avoid the heap allocation on each operation. As the data is passed around, it's now passed by ref, except for the few code paths where we need to be able to pass null to the native code, in which case a ```SecBufferDesc*``` is used instead of a ```ref SecBufferDesc```. Before (10K reads / 10K writes): ![image](https://cloud.githubusercontent.com/assets/2642209/19976678/2c3b53b2-a1c7-11e6-9a5b-232bfb5f4c54.png) After (10K reads / 10K writes): ![image](https://cloud.githubusercontent.com/assets/2642209/19976664/1afff814-a1c7-11e6-871c-1a802669d2e3.png) After this, the only remaining allocations per operations are the IAsyncResult and Task objects. Fixes https://github.com/dotnet/corefx/issues/11826 cc: @davidsh, @ericeil, @geoffkizer, @benaadams, @davidfowl +13318 area-System.Xml Reference S.P.Xml.pkgproj or S.P.Xml.Linq.pkgproj directly in all Xml… Fixes https://github.com/dotnet/corefx/issues/13220 To be able to test live changes made in `System.Private.Xml` and `System.Private.Xml.Linq`, all Xml tests need to directly reference `System.Private.Xml.pkgproj` and `System.Private.Xml.Linq.pkgproj`. Without that, we are testing `System.Xml.*` packages which use the last private packages produced and those won't contain current changes. cc: @danmosemsft @joperezr @weshaggard +13320 area-System.Diagnostics Bring remaining System.Diagnostics.*Trace members to netstandard 2.0 Fixes #12796 cc @joperezr @AlexGhiondea @danmosemsft +13322 area-System.IO Double buffers to overlap reads and writes on CopyToAsync Considering the current implementation of `CopyToAsync`: ```C# byte[] buffer = new byte[bufferSize]; // or from ArrayPool but eliding for sake of discussion. while (true) { int bytesRead = await ReadAsync(buffer, 0, buffer.Length, cancellationToken).ConfigureAwait(false); if (bytesRead == 0) break; await destination.WriteAsync(buffer, 0, bytesRead, cancellationToken).ConfigureAwait(false); } ``` The approach is obvious enough, read some octets, then write them, then repeat. Potentially though the source stream could be read from while the destination stream was written to: ```C# byte[] buffer0 = new byte[bufferSize]; byte[] buffer1 = new byte[bufferSize]; Task writeTask0; Task writeTask1 = null; int read0 = await ReadAsync(buffer0, 0, buffer0.Length, cancellationToken).ConfigureAwait(false); if (read0 != 0) { while (true) { writeTask0 = destination.WriteAsync(buffer0, 0, read0, cancellationToken).ConfigureAwait(false); int read1 = await ReadAsync(buffer1, 0, buffer1.Length, cancellationToken).ConfigureAwait(false); if (read1 == 0) { break; } await writeTask0; writeTask1 = destination.WriteAsync(buffer1, 0, read1, cancellationToken).ConfigureAwait(false); read0 = await ReadAsync(buffer0, 0, buffer0.Length, cancellationToken).ConfigureAwait(false); if (read0 == 0) { break; } await writeTask1; } if (!writeTask0.IsCompleted) { await writeTask0; } else if (writeTask1 != null) { await writeTask1; } } ``` Maybe I'm missing something, or maybe the extra heap space isn't worth it, but would this be a viable improvement? +13323 area-Infrastructure Update firewall settings on Fedora and Redhat images to allow network testing. Since October 25th, the outerloop runs for Fedora 23 have been timing out. The same is occurring in Fedora 24, although those have just been enabled. In both cases, the inner loop runs are completing successfully. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora23_debug/ https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora24_debug/ Nothing is jumping out at me other than the fact that there is a large gap in timestamps before the build times out. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora23_debug/47/console ``` 20:25:56 Finished running tests. End time=20:26:09. Return value was 0 21:35:10 Build timed out (after 120 minutes). Marking the build as aborted. ``` +13327 area-Infrastructure Updating CoreClr dependencies to servicing-24703-01 +13329 area-Meta Single exe self contained console app "Publishing a self-contained console application in .net core, [as described here](https://docs.microsoft.com/en-us/dotnet/articles/core/deploying/) results in a directory with a lot of files, even one with ""smaller footprint"". Is it possible to bundle all the dependencies so we get a single executable? One large-ish `myapp.exe` when targeting Windows, for example. I suppose I'm looking for something similar to ILMerge, but for .net core. Is it possible by some option flag on `dotnet publish` or some other command? If not, please consider as a feature request. Thanks." +13330 area-System.Net Fix DummyTcpServer used in System.Net.Security tests "We've been seeing recurring failures in some of the System.Net.Security tests, with errors citing ""This operation is only allowed using a successfully authenticated context."" It looks like this is a test bug, with the DummyTcpServer being used in the System.Net.Security tests disposing of the state for an operation before the test is actually done with it. cc: @davidsh, @ericeil Fixes https://github.com/dotnet/corefx/issues/12939 (I hope)" +13331 area-System.Runtime Once the Marshal class exposes SecureString overrloads implement the SecureStringMarsal class and re-enable tests. +13332 area-System.Runtime Complete the System.Runtime.CompilerServices namespace There are a few more types we need: ``` T:System.Runtime.CompilerServices.DebugInfoGenerator M:System.Runtime.CompilerServices.DebugInfoGenerator.#ctor M:System.Runtime.CompilerServices.DebugInfoGenerator.CreatePdbGenerator M:System.Runtime.CompilerServices.DebugInfoGenerator.MarkSequencePoint(System.Linq.Expressions.LambdaExpression,System.Int32,System.Linq.Expressions.DebugInfoExpression) T:System.Runtime.CompilerServices.IRuntimeVariables P:System.Runtime.CompilerServices.IRuntimeVariables.Count M:System.Runtime.CompilerServices.IRuntimeVariables.get_Count P:System.Runtime.CompilerServices.IRuntimeVariables.Item(System.Int32) M:System.Runtime.CompilerServices.IRuntimeVariables.get_Item(System.Int32) M:System.Runtime.CompilerServices.IRuntimeVariables.set_Item(System.Int32,System.Object) T:System.Runtime.CompilerServices.RuleCache`1 T:System.Runtime.CompilerServices.CompilerMarshalOverride LambdaExpression,System.Int32,System.Linq.Expressions.DebugInfoExpression) ``` +13333 area-Serialization Added Members of DataContractSerializer that are Missing. Some members of DataContractSerializer are in NetStandard2.0, but they are missing from NetCore. The PR added these members and added tests for them. Fix #13268. cc: @zhenlan @mconnew @huanwu +13335 area-System.Net Add missing WebHeaderCollection Keys property +13337 area-System.IO Complete the NamedPipeClientStream type for netstandard2.0 ```csharp namespace System.IO.Pipes { public sealed class NamedPipeClientStream : PipeStream { public NamedPipeClientStream(string serverName, string pipeName, PipeDirection direction, PipeOptions options, TokenImpersonationLevel impersonationLevel, HandleInheritability inheritability); protected internal override void CheckPipePropertyOperations(); } } ``` +13338 area-System.Runtime Remove IRemotingFormatter from System.Runtime.Serialization.Formatters Follow up on https://github.com/dotnet/standard/issues/88 +13339 area-System.Runtime Bring the Marshal APIs that use SecureString to netstandard2.0 Once https://github.com/dotnet/coreclr/pull/7985 is merged and a new CoreCLR package available, expose these APIs in the reference assembly for System.Runtime.InteropServices. ```csharp public static class Marshal { public static IntPtr SecureStringToBSTR(SecureString s); public static IntPtr SecureStringToCoTaskMemAnsi(SecureString s); public static IntPtr SecureStringToCoTaskMemUnicode(SecureString s); public static IntPtr SecureStringToGlobalAllocAnsi(SecureString s); public static IntPtr SecureStringToGlobalAllocUnicode(SecureString s); } ``` +13340 area-System.IO Move types for System.IO into System.Runtime.Extensions There are only a handful of types left in the System.IO contract one of which is TextWriter which is used for various things including APIs on WebUtility (see https://github.com/dotnet/corefx/issues/12142). In order to enable those we should move it and the other types in System.IO down into System.Runtime.Extensions. +13342 area-System.IO Excessive Executable Flags on macOS (I originally asked about this at dotnet/cli#4260 some two months ago, but never received a response until today. However, since it is not .NET CLI-specific, I figured asking here would be a better idea.) One of the things that has been driving me crazy about .NET Core is that on my Mac (running macOS Sierra, version 10.12.1), any and every file created by a .NET Core program is marked as executable (specifically, they all have the mode 711). Note that this only affects files created by a Core program; already existing files that are opened or modified remain at their existing mode. This is totally unnecessary, and furthermore complicates interoperability with programs that don’t expect every file to be executable (such as the Mac’s GUI file-management subsystem). Could this possibly be changed? Thanks! +13343 area-System.Threading Test failure: ThreadPoolBoundHandleTests/FlowsAsyncLocalsToCallback Opened on behalf of @jiangzeng The test `ThreadPoolBoundHandleTests/FlowsAsyncLocalsToCallback` has failed. Assert.Equal() Failure\r Expected: 10\r Actual: 0 Stack Trace: at ThreadPoolBoundHandleTests.FlowsAsyncLocalsToCallback() in D:\A\_work\31\s\corefx\src\System.Threading.Overlapped\tests\ThreadPoolBoundHandle_IntegrationTests.cs:line 219 Build : Master - 20161103.04 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161103.04/workItem/System.Threading.Overlapped.Tests/analysis/xunit/ThreadPoolBoundHandleTests~2FFlowsAsyncLocalsToCallback +13344 area-System.Reflection Cleanup some System.Reflection tests Use more idiomatic assertions where possible. +13345 area-System.Threading ReaderWriterLockSlim contention perf "When ReaderWriterLockSlim contends with itself, the perf seems to be really bad. ```c# public static void Main(string[] args) { Action threadWork = null; var threadWorkComplete = new AutoResetEvent(false); var threadWorkAvailable = new AutoResetEvent(false); var t = new Thread(() => { while (true) { threadWorkComplete.Set(); threadWorkAvailable.WaitOne(); if (threadWork == null) break; threadWork(); } }); t.IsBackground = true; t.Start(); threadWorkComplete.WaitOne(); Action BeginDoThreadWork = work => { threadWork = work; threadWorkAvailable.Set(); }; Action EndDoThreadWork = () => threadWorkComplete.WaitOne(); Action DoThreadWork = work => { BeginDoThreadWork(work); EndDoThreadWork(); }; var rw = new ReaderWriterLockSlim(); Action Test = () => { for (int i = 0; i < 10; ++i) { DoThreadWork(() => rw.EnterReadLock()); BeginDoThreadWork(() => rw.ExitReadLock()); rw.EnterWriteLock(); rw.ExitWriteLock(); EndDoThreadWork(); } }; //var rw = new ReaderWriterLock(); //Action Test = // () => // { // for (int i = 0; i < 10; ++i) // { // DoThreadWork(() => rw.AcquireReaderLock(-1)); // BeginDoThreadWork(() => rw.ReleaseReaderLock()); // rw.AcquireWriterLock(-1); // rw.ReleaseWriterLock(); // EndDoThreadWork(); // } // }; TimeSpan testDuration = TimeSpan.FromMilliseconds(200); while (true) { uint iterations = 0; var elapsed = TimeSpan.Zero; var start = DateTime.Now; while (true) { Test(); ++iterations; if ((iterations & 0xf) != 0) continue; Console.Write('.'); elapsed = DateTime.Now - start; if (elapsed >= testDuration) break; } var iterationsPerSecond = iterations / elapsed.TotalSeconds; Console.WriteLine(); Console.WriteLine(""iterationsPerSecond: {0:0.00}"", iterationsPerSecond); } } ``` ReaderWriterLockSlim: ``` . iterationsPerSecond: 7.26 . iterationsPerSecond: 6.83 . iterationsPerSecond: 7.47 . iterationsPerSecond: 15.28 . iterationsPerSecond: 6.92 . iterationsPerSecond: 7.59 . iterationsPerSecond: 8.06 . iterationsPerSecond: 6.78 ``` The numbers usually vary a lot, the ones above are on the lower end and are not infrequent. By comparison, ReaderWriterLock is about 100-1000 times as fast for the same test: ``` ............................................................. iterationsPerSecond: 4804.77 .......................................................... iterationsPerSecond: 4568.59 ................................................................ iterationsPerSecond: 5041.21 ....................................................... iterationsPerSecond: 4332.31 ........................................................... iterationsPerSecond: 4647.33 ....................................................... iterationsPerSecond: 4332.27 ..................................................... iterationsPerSecond: 4174.75 ``` I believe the issue is caused by deterministic unfairness in the spin lock. Usually, the main thread will enter its spin loop trying to acquire the write lock, before the background thread enters its spin loop trying to release the read lock. Both threads fight for the spin lock, but the main thread acquires it first. When the main thread relinquishes the spin lock to yield in the spin loop, most of the time the background thread is already in the process of yielding in-between spinning for the spin lock. So the main thread acquires the spin lock again, and so on until the spin count is maxed out. Finally, the main thread enters a wait state and releases the spin lock for long enough for the background thread to acquire the spin lock, release the read lock, and release the now-waiting main thread. One way to fix this could be to have the spin lock spin for a very short duration and fall back to a real lock." +13346 area-System.Net Dns.GetHostAddressesAsync(Dns.GetHostName()) not working on centos7 using Dns.GetHostAddressesAsync(Dns.GetHostName()) can't load local ip address on centos 7 system +13347 area-Meta Output Path not working correctly "Hey, I'm using Visual Studio 14 (VS 2015) Update 3 and I want to build a REST API based .Net Core 1, using Kestrel as the server. I want to be able to use a **.csproj** instead of the old **.xproj** in order to use MSBuild as I do in other projects. The problem is that when I define ""OutputPath"" as ""bin\Debug"" (for Debug mode, for instance), Visual Studio builds the project and sets build's results to ""bin\Debug\\bin\Debug\netcoreapp1.0\win7-x64"". If I use the *.xproj* and build, the results are stored at ""bin\Debug\netcoreapp1.0"", which is the expected behaviour. What is happening? .csproj: ``` $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) win7 .NETCoreApp v1.0 true $(NoWarn);1701 {D21ABA46-65F9-4B47-882C-F9C0765052DD} Exe Properties MyAPP MyAPP 512 true x64 true full false .\obj\Debug .\bin\Debug\ DEBUG;TRACE prompt 4 x64 pdbonly true .\bin\Release TRACE prompt 4 <_TargetFrameworkDirectories>$(MSBuildThisFileDirectory) <_FullFrameworkReferenceAssemblyPaths>$(MSBuildThisFileDirectory) true false Program $(TargetDir) {2E36F1D4-B23C-435D-AB41-18E608940038} ``` project.json: ``` { ""version"": ""1.0.0"", ""buildOptions"": { ""emitEntryPoint"": true, ""preserveCompilationContext"": true }, ""dependencies"": { ""Microsoft.NETCore.App"": { ""version"": ""1.0.0"", ""type"": ""build"" }, ""Microsoft.ApplicationInsights.AspNetCore"": ""1.0.0"", ""Microsoft.AspNetCore.Mvc"": ""1.0.0"", ""Microsoft.AspNetCore.Server.Kestrel"": ""1.0.0"", ""Microsoft.Extensions.Configuration.EnvironmentVariables"": ""1.0.0"", ""Microsoft.Extensions.Configuration.FileExtensions"": ""1.0.0"", ""Microsoft.Extensions.Configuration.Json"": ""1.0.0"", ""Microsoft.Extensions.Logging"": ""1.0.0"", ""Microsoft.Extensions.Logging.Console"": ""1.0.0"", ""Microsoft.Extensions.Logging.Debug"": ""1.0.0"", ""Microsoft.Extensions.Options.ConfigurationExtensions"": ""1.0.0"" }, ""runtimes"": { ""win7-x64"": {}, ""ubuntu.14.04-x64"": {}, ""osx.10.10-x64"": {} }, ""frameworks"": { ""netcoreapp1.0"": { ""imports"": [ ""dnxcore50"", ""portable-net452"" ] } }, ""runtimeOptions"": { ""configProperties"": { ""System.GC.Server"": true } }, ""publishOptions"": { ""include"": [ ""appsettings.json"", ""web.config"" ] }, ""scripts"": { ""postpublish"": [ ""dotnet publish --publish-folder ./bin"" ] } } ```" +13348 area-System.Numerics NullReferenceException when calling Vector.CopyTo in Release mode "I'm not sure if this is the right place to report this. I have this program: ```csharp using System; using System.Numerics; namespace ConsoleApp1 { public class Program { public static Vector ConvertToInt32(Vector input) { var count = Vector.Count; var inputs = new float[count]; var outputs = new int[count]; // swap input.CopyTo(inputs); // these for (int i = 0; i < count; i++) { outputs[i] = (int)inputs[i]; } return new Vector(outputs); } public static void Main(string[] args) { var v = new Vector(123.123f); var values = ConvertToInt32(v); Console.WriteLine(v); Console.WriteLine(values); } } } ``` project.json: ```javascript { ""version"": ""1.0.0-*"", ""buildOptions"": { ""emitEntryPoint"": true, ""optimize"": true }, ""runtimes"": { ""win7-x64"": {} }, ""dependencies"": { ""System.Numerics.Vectors"": ""4.1.1"" }, ""frameworks"": { ""net461"": {} } /* ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.0"" }, ""System.Numerics.Vectors"": ""4.1.1"" }, ""frameworks"": { ""netcoreapp1.0"": {} } */ } ``` test cases: 1. targeting net461, compiling as shown, Release mode: null ref on `input.CopyTo(inputs);` 2. targeting net461, swapping indicated lines, Release mode: incorrect console output 3. targeting net461, as shown or swapped, Debug mode: no error, correct output 4. targeting netcoreapp1.0, either as shown or swapped, Debug or Release: no error, correct output version info: Microsoft Visual Studio Professional 2015 Version 14.0.25431.01 Update 3 " +13349 area-System.Net System.Net.Sockets.Async.Performance.Tests threw ObjectDisposedException (Windows, Linux and Mac) No results generated. https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161103.04/workItem/System.Net.Sockets.Async.Performance.Tests/details/ef1c1a72-3184-4848-9894-303a848b3635 ```2016-11-03 15:14:31,896: INFO: proc(65): run_and_log_output: Output: Starting: System.Net.Sockets.Async.Performance.Tests 2016-11-03 15:14:32,255: INFO: proc(65): run_and_log_output: Output: 2016-11-03 15:14:32,255: INFO: proc(65): run_and_log_output: Output: Unhandled Exception: System.ObjectDisposedException: Cannot access a disposed object. 2016-11-03 15:14:32,256: INFO: proc(65): run_and_log_output: Output: Object name: 'System.Net.Sockets.Socket'. 2016-11-03 15:14:32,256: INFO: proc(65): run_and_log_output: Output: at System.Net.Sockets.Socket.ReceiveAsync(SocketAsyncEventArgs e) 2016-11-03 15:14:32,256: INFO: proc(65): run_and_log_output: Output: at System.Net.Sockets.Performance.Tests.SocketTestClientAsync.Receive(Action`2 onReceiveCallback) 2016-11-03 15:14:32,256: INFO: proc(65): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2016-11-03 15:14:32,256: INFO: proc(65): run_and_log_output: Output: at System.Net.Sockets.MultipleConnectAsync.Succeed() 2016-11-03 15:14:32,256: INFO: proc(65): run_and_log_output: Output: at System.Net.Sockets.MultipleConnectAsync.InternalConnectCallback(Object sender, SocketAsyncEventArgs args) 2016-11-03 15:14:32,257: INFO: proc(65): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2016-11-03 15:14:32,257: INFO: proc(65): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2016-11-03 15:14:32,257: INFO: proc(65): run_and_log_output: Output: at System.Threading.QueueUserWorkItemCallbackDefaultContext.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 2016-11-03 15:14:32,257: INFO: proc(65): run_and_log_output: Output: at System.Threading.ThreadPoolWorkQueue.Dispatch() 2016-11-03 15:14:32,259: INFO: proc(65): run_and_log_output: Output: /Users/dotnet-bot/dotnetbuild/work/ef1c1a72-3184-4848-9894-303a848b3635/Work/4effeedc-b714-487c-9ce0-32e9cb61ae1b/Unzip/RunTests.sh: line 284: 29083 Abort trap: 6 ./corerun xunit.console.netcore.exe System.Net.Sockets.Async.Performance.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=requireselevation -notrait category=failing -notrait category=nonosxtests ``` I'm guessing this will need a local repro. +13351 area-System.Runtime Seg fault during Serialization unit tests on Ubuntu https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161104.53/workItem/System.Runtime.Serialization.Formatters.Tests/details/987bb27a-8616-44cd-99e2-5e12840da2f8 ``` 2016-11-04 01:36:01,603: INFO: proc(55): run_and_log_output: Output: /home/helixbot/dotnetbuild/work/987bb27a-8616-44cd-99e2-5e12840da2f8/Work/64d343ba-b793-4450-b356-79cdfeb514e3/Unzip/RunTests.sh: line 285: 2770 Segmentation fault (core dumped) ./corerun xunit.console.netcore.exe System.Runtime.Serialization.Formatters.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=requireselevation -notrait category=failing -notrait category=nonlinuxtests 2016-11-04 01:36:01,604: INFO: proc(55): run_and_log_output: Output: Finished running tests. End time=01:36:01. Return value was 139 2016-11-04 01:36:01,606: INFO: proc(55): run_and_log_output: Output: GDB was not found. Unable to print core file. 2016-11-04 01:36:01,608: INFO: proc(55): run_and_log_output: Output: Copying core file core to /tmp/coredumps ``` Finding out whether there's a way to get dumps from these machines. +13352 area-System.Data Adding Client hostname to Sql server connection While connecting to the Sql Server, the SqlClient was sending an empty hostname to the server. In this pull request we use using the Environment.MachineName to populate the hostname while connecting to SqlServer. Fixes #12627 cc @stephentoub @corivera +13354 area-System.Net Adding missing Close method for HttpWebResponse @stephentoub @davidsh +13355 area-Serialization XsdDataContractExporter.DataContractSet always returns null The following code in DataContractSet is commented. So XsdDataContractExporter.Export will always fail because of NullReferenceException DataContractSet DataContractSet { get { //if (dataContractSet == null) //{ // dataContractSet = new DataContractSet((Options == null) ? null : Options.GetSurrogate()); //} return _dataContractSet; } } +13356 area-System.Collections Queue_SynchronizedTests.SynchronizedEnqueue test failed https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_opensuse13.2_release/55/consoleText ``` System.Collections.Tests.Queue_SynchronizedTests.SynchronizedEnqueue [FAIL] System.AggregateException : One or more errors occurred. (Queue empty.) ---- System.InvalidOperationException : Queue empty. Stack Trace: at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) Discovered: System.Data.Common.Tests /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_opensuse13.2_release/src/System.Collections.NonGeneric/tests/QueueTests.cs(879,0): at System.Collections.Tests.Queue_SynchronizedTests.PerformTest(Action action, Int32 expected) ----- Inner Stack Trace ----- at System.Collections.Queue.Dequeue() at System.Collections.Queue.SynchronizedQueue.Dequeue() /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_opensuse13.2_release/src/System.Collections.NonGeneric/tests/QueueTests.cs(932,0): at System.Collections.Tests.Queue_SynchronizedTests.StartDequeueEnqueueThread() at System.Threading.Tasks.Task.Execute() ``` +13357 area-System.Net Add missing EndGetRequestStream(IAsynResult,TransportContext) overload to HttpWebRequest +13358 area-System.Globalization Synchronising ParseNumber & MathChars with the new CoreCLR versions Updating the `ParseNumber`/`MatchChars` contents with the new optimised versions [already merged to CoreCLR](https://github.com/dotnet/coreclr/pull/3163/). +13359 area-Infrastructure Updating CoreClr dependencies to servicing-24704-01 +13360 area-Serialization Area-Serialization Sprint 109 The issue is for tracking issues to be done in sprint 109 (due by 11/18/2016). +13361 area-System.Runtime Expose the serialization ctor on CryptographicException Once the new CoreCLR is ingested in CoreFX, you need to remove this from the baseline for System.Runtime. MembersMustExist : Member 'System.Security.Cryptography.CryptographicException..ctor(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)' does not exist in the implementation but it does exist in the contract. +13362 area-System.Security Expose secure string +13364 area-System.Net Add a new public Slim NTAuthentication type to support various authentication protocols. System.Net.Mail is using an internal type NTAuthentication from System.Net.Security to implement NTLM, GSSAPI and Digest protocols for credential authentication. Currently I’m using reflection to get to these types, but this is not a reliable permanent solution. We have similar issues around authentication in HttpListener as well. In both cases, we need to send a response string back to the server, which is obtained by sending the challenge from server through the protocol. Currently there are 2 obstacles 1. NTAuthentication.GetOutgoingBlob/GetContextToken/GetOutoingDigestBlob API is internal 2. NTAuthentication type does not have API to choose from available protocols it supports I can see 2 options: Option 1: Make NTAuthentication type public and add to it new APIs for choosing authentication protocol. Cons: NTAuthentication is large beast and it has lots of dependencies. It hasn’t been designed to be public API. Option 2: Create new ‘SlimAuthentication’ type which is independent of server protocols (has no context whether smtp, ftp, web, etc) and implements various authentication protocols like NTLM, GSSAPI, Digest, Login (these currently exist in NTAuthentication). One thing to keep in mind, we might want to add support for newer protocols like XOAUTH2, OAUTH2 which seems to be a popular choice in many smtp servers like google, Comcast, yahoo, outlook.live, office365, etc, to this new type, hence the design should be extensible. cc @davidsh @CIPop @weshaggard @ericeil @geoffkizer @karelz +13365 area-Serialization Add Basic Tests for Serialization APIs New Added in NetStandard2.0 We want to add basic test coverage for new APIs added in NS2.0 +13366 area-System.Net Add more unit tests for authentication in SmtpClient. cc @karelz @tijoytom @ericeil @davidsh +13367 area-Serialization [Impl] DCS/DCJS to Support NonSerializedAttribute and OptionalFieldAttribute +13368 area-Serialization [Impl] DCS/DCJS to Support System.Runtime.Serialization.IDeserializationCallback +13369 area-System.Security SslStream.WriteAsync() hangs on 0-byte WriteAsync on Linux and macOS "To repro, connect to any SSL endpoint (127.0.0.1:5001 in the example below) and attempt a 0-byte write: ```csharp using System; using System.IO; using System.Net.Security; using System.Net.Sockets; using System.Security.Authentication; using System.Security.Cryptography.X509Certificates; using System.Threading; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { var x509certificate = new X509Certificate2(@""testCert.pfx"", ""testPassword""); using (var client = new TcpClient()) { client.ConnectAsync(""127.0.0.1"", 5001).Wait(); using (var sslStream = new SslStream(client.GetStream(), false, (sender, certificate, chain, errors) => true, (sender, host, certificates, certificate, issuers) => x509certificate)) { sslStream.AuthenticateAsClientAsync(""localhost"", new X509CertificateCollection(), SslProtocols.Tls12 | SslProtocols.Tls11, false).Wait(); sslStream.WriteAsync(new byte[0], 0, 0, CancellationToken.None).Wait(); } } } } } ``` It just hangs there. We found this issue in Kestrel, which is experiencing test failures because of this (https://github.com/aspnet/KestrelHttpServer/pull/1193#issuecomment-258501823). Kestrel is hanging in https://github.com/aspnet/KestrelHttpServer/blob/4337d2a4a751ee7ccb0e0c460670c0abd044d040/src/Microsoft.AspNetCore.Server.Kestrel/Filter/Internal/StreamSocketOutput.cs#L63 when we do a 0-byte write to flush." +13370 area-System.Xml Cleanup System.Private.Xml and remove CodeDom and CAS references from it Resolves https://github.com/dotnet/corefx/issues/12000 Includes small cleanup on `System.Private.Xml`. Removes: - Dead code, unused classes/members - `System.Security.Permissions` dependency - `System.CodeDom` dependency (the package reference was removed, few types Xml still needed from CodeDom were added as internal classes under System/CodeDom instead, as removing those few would make some Xml functionalities broken and unavailable.) XSLT was basically using CodeDom for generating code from scripts (C#, JScript, etc.) inside a XSL and then compiling it into an assembly. Although the code generation part is currently available on CoreFX (still not part of netstandard), the assembly generation part is missing. This would make the XSLT functionality unavailable anyway. So, in this PR we throw `PlatformNotSupportedException` in those cases on XSLT side. cc: @danmosemsft @weshaggard @stephentoub +13371 area-System.Net Fix SslStream.WriteAsync with 0-byte write A previous fix (https://github.com/dotnet/corefx/pull/13083) added an early exit when 0-byte writes aren't supported by the underlying SSL implementation. But in doing so, WriteAsync(..., 0) ends up returning a Task that never completes (due to the IAsyncResult never completing). cc: @bartonjs, @davidsh, @cipop Fixes https://github.com/dotnet/corefx/issues/13369 +13372 area-System.Net Expose types/members in contract assemblies Most implementations exist, but they are not present in contract/reference + testing ### Remaining APIs - TODO: T:System.Net.TransportType -- https://github.com/dotnet/corefx/issues/14106 M:System.Net.Security.NegotiateStream.Dispose(System.Boolean) https://github.com/dotnet/corefx/issues/14107 M:System.Net.Security.SslStream.Dispose(System.Boolean) https://github.com/dotnet/corefx/issues/14107 F:System.Net.Sockets.AddressFamily.Max --https://github.com/dotnet/corefx/issues/14106 ```c# public class WebHeaderCollection : NameValueCollection, IEnumerable, ISerializable { public void Set(HttpRequestHeader header, string value); public void Set(HttpResponseHeader header, string value); public override void Set(string name, string value); } ``` above is https://github.com/dotnet/corefx/issues/14108 - `IDisposable` on `public class FtpWebResponse : WebResponse, IDisposable` https://github.com/dotnet/corefx/issues/14107 ### Tracked externally - #13900 - HttpWebRequest and HttpWebResonse - #13901 - HttpListener* - #12460 - Socket - #12134 - NetworkCredential ### Finished APIs #13357 * `M:System.Net.HttpWebRequest.EndGetRequestStream(System.IAsyncResult,System.Net.TransportContext@)` #13354 * `M:System.Net.HttpWebResponse.Close` * `M:System.Net.HttpWebResponse.set_Cookies(System.Net.CookieCollection)` #13377 * `T:System.Net.FtpStatusCode` * `M:System.Net.FtpWebRequest.set_Headers(System.Net.WebHeaderCollection)` * `P:System.Net.FtpWebResponse.BannerMessage` * `P:System.Net.FtpWebResponse.ExitMessage` * `P:System.Net.FtpWebResponse.LastModified` * `P:System.Net.FtpWebResponse.StatusCode` * `P:System.Net.FtpWebResponse.StatusDescription` * `P:System.Net.FtpWebResponse.WelcomeMessage` +13373 area-System.Xml Add OSGroup property to all P2P references to System.Private.Xml Explicitly adds `OSGroup` property to all System.Private.Xml.csproj references. @danmosemsft @weshaggard @joperezr +13374 area-System.Runtime Proposal: Array.Clone for creating a copy of an array. Sometimes you need to create a copy of an array. For example, one reason is arrays are mutable and sometimes you need to create a defensive copy, or you may want to modify some of the indices in it but keep the original array intact. There are a couple of ways of doing this right now: ### Approach 1 ```cs var array = new T[original.Length]; Array.Copy(original, 0, array, 0, original.Length); return array; ``` The downside of this approach is that it's verbose (compared to the second approach below), and can't be used in things like expression-bodied methods where you want a one-liner to clone an array. It is, however, fast since we go straight to allocating an array and calling Copy. ### Approach 2 ```cs return (T[])original.Clone(); ``` While this can be used in expression-bodied methods, the programmer has to specify `T[]` again to cast, which is prone to error since `Clone` returns an object. In addition, `Clone` is slightly slower than `Copy` and we have to make that extra typecast. ### Approach 3 (Linq) ```cs return original.ToArray(); ``` This can also be used in expression-bodied methods and is type-safe, however it is slow. Several casts are made by ToArray, then it makes virtual method calls to Count/CopyTo which do the same thing as approach 1 under the hood. ## Proposal Add a static `Array.Clone` method: ```cs namespace System { public abstract class Array : ... { public static T[] Clone(T[] array); } } ``` Usage: ```cs class Customer { Order[] _orders; public Order[] GetOrders() => Array.Clone(_orders); } ``` The implementation would be trivial and do the same thing as example 1: ```cs public static T[] Clone(T[] array) { var array = new T[original.Length]; Array.Copy(original, 0, array, 0, original.Length); return array; } ``` +13375 area-Serialization IFragmentCapableXmlDictionaryWriter not implemented by XmlBaseWriter IFragmentCapableXmlDictionaryWriter is not implemented by any class. In desktop, it is implemented by XmlBaseWriter. Our code: internal abstract class XmlBaseWriter : XmlDictionaryWriter {...} Code in desktop. abstract class XmlBaseWriter : XmlDictionaryWriter, IFragmentCapableXmlDictionaryWriter {...} +13376 area-System.Globalization Enable new globalization1.7 tests +13377 area-System.Net add missing FTP stuff to contract See #13372 +13379 area-System.IO Fix BufferedStream.FlushAsync bug where the incorrect property was checked See #13297 for more details. Fixes #13297 @ianhays, @JeremyKuhne, @stephentoub +13383 area-System.Net Fix uses of C++ `new` operator under src\Native The native shims use C++ `new` operator in number of places, for example: https://github.com/dotnet/corefx/blob/master/src/Native/Unix/System.Native/pal_networkstatistics.cpp#L251 C++ new throws C++ exception on OOM. When such C++ exception hits interop boundary, it will lead to bad crash. `malloc` or `new (nothrow)` with explicit null check should be used instead. +13385 area-Meta [Security] Use safe integer arithmetic for memory allocation Native shims have potential integer overflows around memory allocations, for example: https://github.com/dotnet/corefx/blob/edd3b840988c9ed8d572bf115926d798c8e3fc52/src/Native/Unix/System.Native/pal_networking.cpp#L2622 There should be manual checks for potential integer overflow; or strongly typed `new (nothrow)` that checks for multiplication overflows underneath should be used instead. +13388 area-System.Linq [System.Linq] Small optimization for RepeatIterator<>::ToArray Hello! Now RepeatIterator<>::ToArray implemented as (https://github.com/dotnet/corefx/blob/8a99c59d8599179694497a00fc636e37c6da72dd/src/System.Linq/src/System/Linq/Repeat.cs#L67): ```cs public TResult[] ToArray() { TResult[] array = new TResult[_count]; if (_current != null) { for (int i = 0; i != array.Length; ++i) { array[i] = _current; } } return array; } ``` `_current` is field from base type Iterator<> and has a type TResult. Looks like we can compare it with `default(TResult)` instead of `null` here: ```cs TResult[] array = new TResult[_count]; if (_current != null) {… ``` because we do not need fill an array with default values. +13389 area-System.Net Disable sockets perf tests on OSX We're getting unhandled ObjectDisposedExceptions on most runs. https://github.com/dotnet/corefx/issues/13349 +13393 area-System.IO Fix BufferedStream.CopyToAsync flushing "We recently added an override of CopyToAsync to BufferedStream; it flushes data from the buffer and then hands off to the source stream to copy directly to the destination. But the flushing support was flawed: a) we don't actually want to flush read data back to the source stream, instead wanting to instead write any read data to the destination stream, and b) even if we did, that fails for non-seekable source stream. The fix is to handle the ""flushing"" directly. If there's any read data in the buffer, we need to write that data to the destination. If there's any write data in the buffer, we need to flush that to the source. And then we can do the copy. We also need to follow the same locking scheme used elsewhere, and protect the whole operation with the stream's semaphore. cc: @ianhays, @jamesqo" +13394 area-Infrastructure Linux ARM Emulator SoftFP builds are failing frequently This is causing lots of PRs to have failed legs. ``` ./scripts/arm32_ci_script.sh: line 170: /opt/linux-arm-emulator-root/dotnet/setenv/setenv_incpath.sh: No such file or directory ``` +13395 area-Infrastructure CentOS PR legs failing with buildtools restore error ``` Restoring BuildTools version 1.0.27-prerelease-01002-04... Failed to create prime the NuGet cache. restore failed with: 1 ERROR: Could not restore build tools correctly. See '/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/init-tools.log' for more details.1 Initializing BuildTools... /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/init-tools.sh: line 148: /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/packages/Microsoft.DotNet.BuildTools/1.0.27-prerelease-01002-04/lib/init-tools.sh: No such file or directory ``` cc: @mmitche, @weshaggard, any ideas what's going on? These same to be failing consistently across all PRs in corefx for the last few hours. +13399 area-System.Runtime tests for Type.GetType with overloads for assebly and type loader and memoryfailpoint This change adds the tests for https://github.com/dotnet/corefx/issues/12309 +13400 area-System.Linq Use or remove unused parameters in System.Linq.Expressions Remove one unused parameter in a validation check (It would always have the same value, so changing to use it has no value). Make use of one currently unused parameter in an exception. Change parameter name in validator method to match that of calling methods so that throws will make use of parameter names matching the public interface. Reformat to make lack of coverage of error cases more obvious. CC @hughbe @bartdesmet @VSadov +13402 area-System.Globalization TimeZoneInfoTests.ConvertTime_DateTime_MiscUtc failed in CI Looks like a DST problem. https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/2686/consoleText ``` System.Tests.TimeZoneInfoTests.ConvertTime_DateTime_MiscUtc [FAIL] 11/6/2016 8:01:17 AM failed to round trip using source 'UTC' and 'Pacific Standard Time' zones. wrong result 11/6/2016 9:01:17 AM Expected: True Actual: False Stack Trace: Discovered: System.Runtime.Performance.Tests Info: System.Runtime.Performance.Tests has no tests to run Finished running tests. End time= 1:01:17.51, Exit code = 0 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime\tests\System\TimeZoneInfoTests.cs(1930,0): at System.Tests.TimeZoneInfoTests.VerifyRoundTrip(DateTime dt1, String sourceTimeZoneId, String destinationTimeZoneId) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime\tests\System\TimeZoneInfoTests.cs(799,0): at System.Tests.TimeZoneInfoTests.ConvertTime_DateTime_MiscUtc() System.Tests.TimeZoneInfoTests.ConvertTime_DateTime_MiscUtc [FAIL] 11/6/2016 8:01:19 AM failed to round trip using source 'UTC' and 'Pacific Standard Time' zones. wrong result 11/6/2016 9:01:19 AM Expected: True Actual: False Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime\tests\System\TimeZoneInfoTests.cs(1930,0): at System.Tests.TimeZoneInfoTests.VerifyRoundTrip(DateTime dt1, String sourceTimeZoneId, String destinationTimeZoneId) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime\tests\System\TimeZoneInfoTests.cs(799,0): at System.Tests.TimeZoneInfoTests.ConvertTime_DateTime_MiscUtc() ``` +13405 area-System.Linq Remove some minor redundancies and nits in Linq.Expressions. Remove unused local and `string.Format` feeding to `sb.AppendFormat`. Replace fields with local when only used immediately after assignment. Remove unused assignments. Join declaration with first real assignment when possible. Make init-only fields `readonly`. Replace assign-and-check with ?? Use null-propagation where applicable and reduces assign-and-check. +13407 area-System.Runtime Error CS0246 referencing System.StackOverflowException and dotnet.exe crashes without an exception being caught "What should I do to reference `System.StackOverFlowException`? I have use to catch `StackOverflowException`, since I am writing code that would rely on the compiler doing tail call optimization. However, trying to catch `System.StackOverFlowException`, I am presented with `CS0246`. I tried to explicitly include some packages, but that was probably futile in concept, since the class should be part of the `Microsoft.NETCore.App` dependency I am using (v1.0.1). I'm sure it's possible as I'm seeing it being referenced in [corefx/src/System.Runtime/tests/System/StackOverflowExceptionTests.cs](https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.Runtime/tests/System/StackOverflowExceptionTests.cs). However, that repo is notoriously difficult to dissect - the test project for example doesn't have a project.json... Yet, there is another issue, being that even if I write a simple test using Xunit and use this line: ```csharp Assert.ThrowsAny(() => TailCall()); ``` Whatson will kick in reporting that > dotnet has stopped working and obviously, that is very unfortunate and useless. Reproduce by running: ```bat mkdir dotnetnew code dotnetnew ``` Paste ```csharp using System; namespace ConsoleApplication { public class Program { public static int TailCall(int i) { if (i == int.MaxValue) return i; i++; return TailCall(i); } public static void Main(string[] args) { try { Console.WriteLine(TailCall(0)); } catch (Exception ex) { Console.WriteLine($""{ex.GetType().Name}""); } } } } ``` This code works: ``` PS C:\dotnetnew> dotnet run -c Release Project dotnetnew (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing Compiling dotnetnew for .NETCoreApp,Version=v1.0 Compilation succeeded. 0 Warning(s) 0 Error(s) Time elapsed 00:00:01.1238355 2147483647 ``` But not always: ``` dotnet run ``` > dotnet has stopped working Replace `Exception` with `StackOverflowException`. ``` dotnet build ``` **\dotnetnew\Program.cs(11,27): error CS0246: The type or namespace name 'StackOverFlowException' could not be found (are you missing a using directive or an assembly reference?)** " +13408 area-System.Linq Throw InvalidOperationException on attempting to throw an object not derived from Exception in the interpreter. Fixes #5898 As suggested by @bartdesmet at https://github.com/dotnet/corefx/issues/5898#issuecomment-180063270 (CC @svick and @VSadov who also commented in that thread) this accepts the failure of the interpreter to throw non-Exception types, but throws a more explanatory exception than the mysterious `InvalidCastException` thrown. Rather than the `NotSupportedException` suggested, I went for `InvalidOperationException` that seems more apt. (There's no failure to support a method, but an inability act with the provided state). This throws on execution. Throwing on compilation would be preferable, but there would still be cases where an expression typed as `object` was thrown (allowed as long as the actual value is an exception) failed at run-time, so this is more consistent. It would certainly be possible to also throw on compilation if the type thrown is neither `Exception`-derived nor `object` if people thought that was desirable. +13409 area-Infrastructure [Question] Trying out the new corefx "Hi I'm running to an error trying out the new corefx in my project. I am especially interested in the FirstChanceException under System.AppDomain class I first followed instruction for building the new CoreCLR: https://github.com/dotnet/coreclr/blob/master/Documentation/workflow/UsingYourBuild.md I then downloaded and compile CoreFX. I then set my .nugget config to add the following two keys: Now I have the following short project.json ``` { ""version"": ""1.0.0-*"", ""buildOptions"": { ""debugType"": ""portable"", ""emitEntryPoint"": true }, ""frameworks"": { ""netcoreapp1.1"": { ""dependencies"": { ""Microsoft.NETCore.Runtime.CoreCLR"": ""1.2.0-beta-24702-0"" } } }, ""runtimes"": { ""win10-x64"": {} }, ""dependencies"": { ""System.Runtime.Extensions"": ""4.4.0-beta-24702-01"" } } ``` Now when I restore the package and run the program it says: Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040 (FUSION_E_REF_DEF_MISMATCH)) I do not know why it's searching for the 4.2.0.0 version of assembly. I felt like I'm making obvious mistakes, but I cannot find any tutorial that tells me how to. Please kindly correct me or point me to how to fix it, or let me know if there is an easier way for me to use the FirstChanceException handler in System.AppDomain. Thanks a lot!" +13410 area-System.Runtime Tuple.IStructuralComparable/Equatable throws NRE The following tests demonstrates this. ``` [Fact] public void IStructuralEquatable_Equals_NullEqualityComparer_ThrowsNullReferenceException() { IStructuralEquatable structuralEquatable = Tuple.Create(1); Assert.Throws(() => structuralEquatable.Equals(Tuple.Create(1), null)); } [Fact] public void IStructuralEquatable_GetHashCode_NullEqualityComparer_ThrowsNullReferenceException() { IStructuralEquatable structuralEquatable = Tuple.Create(1); Assert.Throws(() => structuralEquatable.GetHashCode(null)); } [Fact] public void IStructuralComparable_CompareTo_NullEqualityComparer_ThrowsNullReferenceException() { IStructuralComparable structuralComparable = Tuple.Create(1); Assert.Throws(() => structuralComparable.CompareTo(Tuple.Create(1), null)); } ``` I can send in a PR fixing this to throw ArgumentNullException, but there might be breaking change so I'll let you guys approve it before I go wasting my time ;) +13411 area-System.IO FileStreamHelpers: Avoid lazily initializing the FileOpenDelegate Just initialize the static field directly. cc: @ianhays, @stephentoub +13413 area-System.IO StreamReader: Use cached instance for UTF32BE Instead of always allocating a new instance of `UTF32Encoding` for Big Endian UTF32, use `Encoding.GetEncoding(12001)`, which will return a cached instance. Follow up from https://github.com/dotnet/corefx/pull/12346#discussion_r82081246 cc: @ianhays, @stephentoub +13416 area-Infrastructure System.Net.Primitives.Performance.Tests threw System.MissingMethodException No results generated. Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161104.503/workItem/System.Net.Primitives.Performance.Test ``` 2016-11-04 23:52:42,651: INFO: proc(55): run_and_log_output: Output: Unhandled Exception: System.MissingMethodException: Method not found: 'Void System.IO.FileStream..ctor(System.String, System.IO.FileMode)'. 2016-11-04 23:52:42,651: INFO: proc(55): run_and_log_output: Output: at Xunit.ConsoleClient.Program.Main(String[] args) 2016-11-04 23:52:43,838: INFO: proc(55): run_and_log_output: Output: Finished running tests. End time=23:52:43.83, Exit code = -532462766 2016-11-04 23:52:43,841: INFO: proc(58): run_and_log_output: Exit Code: -532462766 2016-11-04 23:52:43,842: ERROR: scriptrunner(82): _main: Error: No exception thrown, but XUnit results not created 2016-11-04 23:52:43,842: ERROR: helix_test_execution(125): report_error: Error running xunit None ``` Build : Master - 20161104.503 (Core Tests) Failing configurations: Failing on all platforms. +13417 area-System.Net System.Net.Sockets.Tests threw Xunit.Sdk.EqualException No results generated. Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161104.503/workItem/System.Net.Sockets.Tests/details/c55351a7-8db1-4f95-9aba-4ccce51d4f64 ``` 2016-11-05 00:00:21,092: INFO: proc(55): run_and_log_output: Output: Unhandled Exception: Xunit.Sdk.EqualException: Assert.Equal() Failure 2016-11-05 00:00:21,092: INFO: proc(55): run_and_log_output: Output: Expected: Success 2016-11-05 00:00:21,092: INFO: proc(55): run_and_log_output: Output: Actual: ConnectionReset 2016-11-05 00:00:21,092: INFO: proc(55): run_and_log_output: Output: at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer) 2016-11-05 00:00:21,092: INFO: proc(55): run_and_log_output: Output: at System.Net.Sockets.Tests.SocketAsyncExtensions.<>c__DisplayClass11_0.b__0(Object _, SocketAsyncEventArgs args) 2016-11-05 00:00:21,092: INFO: proc(55): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e) 2016-11-05 00:00:21,092: INFO: proc(55): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs.ExecutionCallback(Object state) 2016-11-05 00:00:21,092: INFO: proc(55): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2016-11-05 00:00:21,092: INFO: proc(55): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationAsyncFailure(SocketError socketError, Int32 bytesTransferred, SocketFlags flags) 2016-11-05 00:00:21,092: INFO: proc(55): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 2016-11-05 00:00:21,092: INFO: proc(55): run_and_log_output: Output: at System.Threading.ThreadPoolBoundHandleOverlapped.CompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 2016-11-05 00:00:21,092: INFO: proc(55): run_and_log_output: Output: at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 2016-11-05 00:00:22,607: INFO: proc(55): run_and_log_output: Output: Finished running tests. End time= 0:00:22.60, Exit code = -532462766 2016-11-05 00:00:22,607: INFO: proc(58): run_and_log_output: Exit Code: -532462766 2016-11-05 00:00:22,607: ERROR: scriptrunner(82): _main: Error: No exception thrown, but XUnit results not created 2016-11-05 00:00:22,607: ERROR: helix_test_execution(125): report_error: Error running xunit None ``` Build : Master - 20161104.503 (Core Tests) Failing configurations: Windows.7.Amd64:AnyCPU-Debug +13418 area-System.ComponentModel System.ComponentModel.EventBasedAsync.Tests threw System.Runtime.Serialization.SerializationException No results generated. Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161104.503/workItem/System.ComponentModel.EventBasedAsync.Tests ``` 2016-11-05 00:05:11,038: INFO: proc(55): run_and_log_output: Output: System.Runtime.Serialization.SerializationException: Type 'Xunit.Sdk.ThrowsException' in Assembly 'xunit.assert, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c' is not marked as serializable. 2016-11-05 00:05:11,038: INFO: proc(55): run_and_log_output: Output: at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) 2016-11-05 00:05:11,038: INFO: proc(55): run_and_log_output: Output: at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) 2016-11-05 00:05:11,038: INFO: proc(55): run_and_log_output: Output: at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, Header[] inHeaders, __BinaryWriter serWriter, Boolean fCheck) 2016-11-05 00:05:11,038: INFO: proc(55): run_and_log_output: Output: at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Header[] headers, Boolean fCheck) 2016-11-05 00:05:11,038: INFO: proc(55): run_and_log_output: Output: at System.Runtime.Remoting.Channels.CrossAppDomainSerializer.SerializeObject(Object obj, MemoryStream stm) 2016-11-05 00:05:11,038: INFO: proc(55): run_and_log_output: Output: at System.AppDomain.Serialize(Object o) 2016-11-05 00:05:11,038: INFO: proc(55): run_and_log_output: Output: at System.AppDomain.MarshalObject(Object o) ``` Build : Master - 20161104.503 (Full Framework Tests) Failing configurations: Windows.10.Amd64:AnyCPU-Debug Windows.10.Amd64:AnyCPU-Release +13419 area-System.Numerics Test failure: System.Numerics.Tests.cast_fromTest/RunDoubleExplicitCastFromLargeBigIntegerTests Opened on behalf of @jiangzeng The test `System.Numerics.Tests.cast_fromTest/RunDoubleExplicitCastFromLargeBigIntegerTests` has failed. System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. Stack Trace: at System.Numerics.BigInteger..ctor(UInt32[] value, Boolean negative) at System.Numerics.BigInteger.op_LeftShift(BigInteger value, Int32 shift) at System.Numerics.Tests.cast_fromTest.DoubleExplicitCastFromLargeBigIntegerTests(Int32 startShift, Int32 bigShiftLoopLimit, Int32 smallShift, Int32 smallShiftLoopLimit) at System.Numerics.Tests.cast_fromTest.RunDoubleExplicitCastFromLargeBigIntegerTests() Build : Master - 20161104.503 (Core Tests) Failing configurations: - Centos.71.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161104.503/workItem/System.Runtime.Numerics.Tests/analysis/xunit/System.Numerics.Tests.cast_fromTest~2FRunDoubleExplicitCastFromLargeBigIntegerTests +13422 area-System.Data SqlConnection has a connection leak? "When using SqlConnection in a docker linux environment it seems to leak connections but this does not happen when I run on windows. I have created a test project that will reproduce this: https://github.com/davidein/SqlConnectionIssue 1. Update appsettings.json with a valid connection string. 2. Run dotnet restore 3. Run the web-test.sh to start the container. 4. Open http://localhost:5000/api/values 5. Check the database connections. 5. Wait for 10 minutes. 6. Check the database connections, you should see that no connections have been closed. 7. If you refresh http://localhost:5000/api/values it will create a new connection This seems to always create a new connection after 8-10 minutes and the old connection will just hang there unused until the container is killed. I have a web service that has accumulated 490 connections over 3 days and only one in use. If I run @@VERSION it returns ""Microsoft SQL Server 2016 (RTM-CU2) (KB3182270) - 13.0.2164.0 (X64) Sep 9 2016 20:13:26 Copyright (c) Microsoft Corporation Express Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 (Build 9600: ) (Hypervisor)"" Sql scripts: SELECT DB_NAME(dbid) as DBName, COUNT(dbid) as NumberOfConnections, loginame as LoginName, program_name FROM sys.sysprocesses WHERE dbid > 0 and DB_NAME(dbid) = 'somedb' GROUP BY dbid, loginame, program_name SELECT * FROM sys.sysprocesses WHERE dbid > 0 and DB_NAME(dbid) = 'somedb' " +13423 area-System.Diagnostics WorkingSet size in Linux Unless I miss something significant, this is a bug: https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Linux.cs#L120 rss is the number of _pages_, but WorkingSet is the number of _bytes_. +13424 area-System.Diagnostics Fix WorkingSet{64} on Linux to be bytes, not pages Fixes https://github.com/dotnet/corefx/issues/13423 cc: @priya91, @ayende +13426 area-System.Runtime Add Unsafe.ByteOffset(object obj, ref T target) "In order to support Span.DangerousCreate(object obj, ref T rawPointer, int length); for general objects (not just arrays), we'll need a pair of Unsafe api to compute that offset and derefence it. I expect they would look like this: // Returns the byte offset of ""target"" (presumably a field or array element within ""origin"" // wrt to the actual start of the object including the runtime-dependent object header // (i.e. we start counting from the address of the vtable pointer, not the ""first field."") IntPtr ByteOffset(object origin, ref T target) { ldarg.1 ldarg.0 sub ret } ref T AddByteOffset(object source, IntPtr byteOffset) { ldarg.0 ldarg.1 add ret } In addition to supporting DangerousCreate(), this would be needed to support non-unified empty spans since 1. I can't use the expression ""ref a[a.length]"". The ECMA standard says its legal to talk about such a reference but ldelema still throws an IndexOutOfRangeException. 2. I can't use my existing workaround of setting the base to null since we decided we want the base to reflect the actual and distinct location even in the case of empty spans." +13427 area-System.Runtime Add CopyBlock/InitBlock overloads for ref byte "```c# class Unsafe { void CopyBlock(ref byte destination, ref byte source, uint byteCount); void CopyBlock(ref byte destination, ref byte source, UIntPtr byteCount); void CopyBlockUnaligned(ref byte destination, ref byte source, uint byteCount); void CopyBlockUnaligned(ref byte destination, ref byte source, UIntPtr byteCount); void InitBlock(ref byte destination, uint byteCount); void InitBlock(ref byte destination, UIntPtr byteCount); void InitBlockUnaligned(ref byte destination, uint byteCount); void InitBlockUnaligned(ref byte destination, UIntPtr byteCount); } ``` Thin wrappers over the cpblk and initblk IL instructions to make them accessible from C#. Needed to implement Span.CopyTo() efficiently. Since this is intended to be a wrapper around the ""cpblk"" IL instruction, the behavior is undefined if the ranges overlap. (This suggests Span.CopyTo() needs to handle three cases: - No overlap - Use Unsafe.CopyTo() - enjoy the perf. - Overlap one way - Use forward for loop. - Overlap the other way - Use backward for loop." +13428 area-System.Net Change NetworkStream to use base.ReadAsync/WriteAsync The base Stream has an optimized implementation for delegating to Begin/EndRead/Write. Now that NetworkStream overrides those Begin/End members, we should use the base stream's implementation rather than using FromAsync (we can put back a custom implementation if/when we can do better than the base). As the overrides exist in the contract, I've left the overrides in the implementation and just delegate directly to the base. cc: @geoffkizer, @davidsh, @cipop +13429 area-System.Runtime ValueTuple.IStructuralComparable/Equatable throws NRE instead of ArgumentNullException The following tests demonstrates this. ``` [Fact] public void IStructuralEquatable_Equals_NullEqualityComparer_ThrowsNullReferenceException() { IStructuralEquatable structuralEquatable = ValueTuple.Create(1); Assert.Throws(() => structuralEquatable.Equals(Tuple.Create(1), null)); } [Fact] public void IStructuralEquatable_GetHashCode_NullEqualityComparer_ThrowsNullReferenceException() { IStructuralEquatable structuralEquatable = ValueTuple.Create(1); Assert.Throws(() => structuralEquatable.GetHashCode(null)); } [Fact] public void IStructuralComparable_CompareTo_NullEqualityComparer_ThrowsNullReferenceException() { IStructuralComparable structuralComparable = ValueTuple.Create(1); Assert.Throws(() => structuralComparable.CompareTo(Tuple.Create(1), null)); } ``` Spun off from #13410 /cc @karelz (who can help triage this :) ) +13430 area-System.Security Correctly encode the 0-subidentifier in DerEncoder During the ECDSA-on-AppleCrypto work it was observed that two of the three supported curves didn't import successfully due to the curve OIDs being incorrect. These curves both had a sub-identifier with value 0, which was not correctly handled by the DerEncoder class. By changing while (!=0) to do..while(!=0) the 0-subidentifier gets a zero byte pushed onto the data stack, making it encode as { 0x00 } instead of { }. Added tests for both reading and writing. cc: @stephentoub @steveharter +13431 area-System.Security Add a static test for RSA OAEP-SHA384 decryption None of the RSA tests did OAEP-SHA384 (or any SHA-2 OAEP), this rectifies that. cc: @stephentoub @steveharter +13432 area-System.Globalization Fix the TZ test when using ambiguous time +13433 area-Infrastructure Update BuildToolsVersion to 01007-01 Update buildtools to pick up fix for MicroBuild /cc @markwilkie @chcosta @dagood @weshaggard +13436 area-System.Runtime Add tests for IStructuralEquatable/Comparable throwing NullReferenceException Closes #13410 Closes #13429 /cc @stephentoub @jcouv +13439 area-System.Data Committing certain data results in infinite loop inside System.Data.SqlClient.TdsParserStateObject.cs I am running a service that is migrating terabytes of data (rows consist of a few uniqueidentifier columns and a varbinary column), I have run into a situation where System.Data.SqlClient will enter into an infinite loop on certain datasets (cpu spinning, making no progress, always at the same point in dataset, reproducible on multiple machines) After stepping through the .net source I believe the cause of the infinite loop is TdsParserStateObject.WritePacket returning null because the first bytes that are in the byte[] _outBuff happen to exactly equal 7,992 when BitConverter.ToInt32(_outBuff, _outputHeaderLen) is called. https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObject.cs#L3248 ![writepacket_randomdatamatchingconditional](https://cloud.githubusercontent.com/assets/338022/20076695/0d20a4c4-a4ff-11e6-8807-a977f9915f8b.png) WritePacket returning null and doing nothing causes the do while loop in TdsParserStateObject.WriteByteArray to spin forever, as it will get into state of _outBuff.Length == _outBytesUsed, so remainder is 0, since len -= remainder; is the update to the loop condition variable, it will spin forever in this loop. +13440 area-Meta Replace APISet imports with Win32 imports on Windows To build single set of binaries that enable us to run on all supported editions of Windows without requiring dependencies like APISet forwarders that are unsupported by the OS, we are modifying CoreFX to rely on imports from standard binaries (e.g. kernel32), instead of APISet imports. After this commit, CoreFX still imports several functions through APISet (GetRestrictedErrorInfo from api-ms-win-core-winrt-error-l1-1-0.dll; OpenFileMappingFromApp and VirtualAllocFromApp from api-ms-win-core-memory-l1-1-3.dll; RoGetBufferMarshaler from api-ms-win-core-winrt-robuffer-l1-1-0.dll). These are functions that target functionalities that exist only on newer versions of Windows, and have no consistent exports from stadnard binaries. +13441 area-System.Net Expose additional methods from HttpWebRequest and Response Contributes to https://github.com/dotnet/corefx/issues/13372 +13442 area-Infrastructure Add layout based NETCoreApp packages This adds a package Microsoft.Private.CoreFx.NETCoreApp This package contains all the reference assemblies for NETCoreApp and a runtime.json for runtime-specific packages which each contain the entire implementation. This is waiting on https://github.com/dotnet/buildtools/pull/1136 which will produce the layout folders during the build. /cc @weshaggard +13445 area-Serialization Add multiple tests to cover the following APIs. Add multiple tests to cover the following APIs. System.Runtime.Serialization.ExportOptions System.Xml.IFragmentCapableXmlDictionaryWriter System.Xml.Serialization.CodeIdentifier System.Xml.Serialization.IxmlTextParser System.Xml.Serialization.XmlSerializerImplementation System.Xml.Serialization.XmlSerializerVersionAttribute System.Xml.Serialization.XmlSerializerAssemblyAttribute System.Xml.Serialization.XmlMemberMapping System.Xml.Serialization.XmlMembersMapping System.Xml.Serialization.XmlReflectionImporter System.Xml.Serialization.XmlReflectionMember System.Xml.XmlDictionaryReader.GetNonAtomizedNames(System.String@,System.String@) Fix #13365 @shmao @zhenlan @mconnew +13446 area-System.Runtime Removing Remoting.Messaging from Serialization Formatters This fixes https://github.com/dotnet/corefx/issues/13338 @jkotas @weshaggard @stephentoub @joperezr PTAL +13447 area-System.Console Console.ReadLine() is blocked in Linux even though the StandardInput of the process has been disposed "I'm working on a program that chains the standard output and standard input of a collection of processes, similar to the piping functionality in a shell. I use a worker thread to relay bytes between the output of upstream process and the input of the downstream process. When `_upstream.StandardOutput.BaseStream.Read` return `0`, the worker thread dispose the `StandardInput` of the downstream process, and in that case, `Console.ReadLine()` in the downstream process is supposed to return `null`, so that the downstream process knows there is no more input and starts to wrap up and exit. This works fine in Linux when 2 processes are chained, **however, when more than 2 processes are chained, `Console.ReadLine()` in the downstream process continues to block even though the `StandardInput` of the process has been disposed.** **However, the same code works fine on windows when chaining any numbers of processes.** Repro Code ------------------------ **worker-thread-pipe: work-thread.exe** ```CSharp using System; using System.Collections.Generic; using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading; namespace ConsoleApplication { public class Program { /// /// Number of child processes /// private static int childCount = 0; /// /// Wait for all processes to finish /// private static ManualResetEventSlim eventSlim = new ManualResetEventSlim(); /// /// Chain native commands. /// e.g. copy-async ""C:\WINDOWS\system32\ipconfig.exe"" ""C:\Program Files (x86)\Microsoft VS Code\bin\cat.exe"" /// /// /// Expect executables and their arguments to be represented in this way: /// [executable]|[arguments] /// public static void Main(string[] args) { if (args.Length == 0) { // Use default command chain if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { Console.WriteLine(""Demo piping behavior: 'ipconfig.exe | cat.exe'""); args = new string[] { @""C:\WINDOWS\system32\ipconfig.exe"", @""C:\Program Files (x86)\Microsoft VS Code\bin\cat.exe"" }; } else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { Console.WriteLine(""Demo pipeing behavior: 'ifconfig | cat'""); args = new string[] { ""/sbin/ifconfig"", ""/bin/cat"" }; } } List processes = new List(); for (int i = 0; i < args.Length; i++) { ProcessStartInfo startInfo = null; // Expect executables and their arguments to be represented in this way: [executable]|[arguments] int colonIndex = args[i].IndexOf('|'); if (colonIndex == -1 && !string.IsNullOrWhiteSpace(args[i])) { startInfo = new ProcessStartInfo(args[i]); } else if (colonIndex > 0) { startInfo = new ProcessStartInfo( args[i].Substring(0, colonIndex), args[i].Substring(colonIndex + 1)); } else { throw new ArgumentException(""args are incorrect.""); } if (i > 0) { startInfo.RedirectStandardInput = true; } if (i < args.Length - 1) { startInfo.RedirectStandardOutput = true; } Process proc = new Process() { StartInfo = startInfo, EnableRaisingEvents = true }; proc.Exited += new EventHandler(ProcessExitHandler); processes.Add(proc); } childCount = processes.Count; List pipes = new List(); Process upstream = null; for (int i = 0; i < processes.Count; i++) { Process proc = processes[i]; proc.Start(); if (upstream != null) { var pipe = new ProcessPipe(upstream, proc); pipe.Start(); pipes.Add(pipe); } upstream = proc; } foreach (var pipe in pipes) { pipe.Wait(); } // Wait for all child process to finish eventSlim.Wait(); } internal static void ProcessExitHandler(object sender, System.EventArgs e) { // Set the event if it's the last child process if (Interlocked.Decrement(ref childCount) == 0) eventSlim.Set(); } } internal class ProcessPipe { private byte[] _buffer; private Process _upstream, _downstream; private Thread _thread; internal ProcessPipe(Process upstream, Process downstream) { _buffer = new byte[1024]; _upstream = upstream; _downstream = downstream; } private void StartPiping() { int count = 0; try { while ((count = _upstream.StandardOutput.BaseStream.Read(_buffer, 0, 1024)) > 0) { _downstream.StandardInput.BaseStream.Write(_buffer, 0, count); _downstream.StandardInput.BaseStream.Flush(); } } catch (Exception ex) { Console.WriteLine(""Exception when reading/writing from worker-thread: {0}"", ex.Message); } finally { Console.WriteLine(""{0} exiting, disposing StandardInput of process '{1} {2}'"", _thread.Name, _downstream.StartInfo.FileName, _downstream.StartInfo.Arguments); try { _downstream.StandardInput.Dispose(); } catch (Exception ex) { Console.WriteLine(""Disposeing StandardInput failed: {0}"", ex.Message); } } } internal void Start() { _thread = new Thread(new ThreadStart(StartPiping)); _thread.Name = string.Format(""{0} -> {1} :Piping Thread"", _upstream.StartInfo.FileName, _downstream.StartInfo.FileName); _thread.Start(); } internal void Wait() { _thread.Join(); } } } ``` **slow-outputer: slow.exe** ```CSharp using System; using System.Threading; namespace NativePipe { public class Slow { private static string[] outputs = new string[] { ""This is a console app to write output in slow manner"", ""Hello world"", ""C# across platforms is awesome!"", ""We cannot go back time"", ""Unless we have a time machine~"", ""One last output :)"" }; public static void Main(string[] args) { foreach (string str in outputs) { Console.WriteLine(str); Console.Out.Flush(); Thread.Sleep(2000); } } } } ``` **mimic cat.exe with logging: mycat.exe** ```CSharp using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { if (args.Length != 1) { Console.Error.WriteLine(""Wrong Usage!""); return; } bool first = true; string fileName = args[0]; string envVarName = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? ""USERPROFILE"" : ""HOME""; string homeDir = Environment.GetEnvironmentVariable(envVarName); string tempDir = Path.Combine(homeDir, ""temp""); if (!Directory.Exists(tempDir)) { Directory.CreateDirectory(tempDir); } using (FileStream fs = new FileStream(Path.Combine(tempDir, fileName), FileMode.Create)) using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8){AutoFlush = true}) { sw.WriteLine(""IsInputRedirected? {0}"", Console.IsInputRedirected); sw.WriteLine(""IsOutputRedirected? {0}"", Console.IsOutputRedirected); sw.WriteLine(""IsErrorRedirected? {0}"", Console.IsErrorRedirected); while (true) { if (first) { first = false; sw.WriteLine(""-- About to read from stdin --""); } string line = Console.ReadLine(); // <== Block here in Linux even though StandardInput of the process has been disposed if (line == null) { sw.WriteLine(""Console.In closed.""); break; } else { sw.WriteLine(line); Console.WriteLine(line); Console.Out.Flush(); Thread.Sleep(1000); } } } } } } ``` **project.json** ``` { ""name"": , ""version"": ""1.0.0-*"", ""buildOptions"": { ""debugType"": ""portable"", ""emitEntryPoint"": true }, ""frameworks"": { ""netcoreapp1.1"": { ""imports"": [ ""dnxcore50"" ], ""dependencies"": { ""Microsoft.NETCore.App"": ""1.1.0-preview1-001100-00"" } } }, ""runtimes"": { ""win10-x64"": { }, ""ubuntu.14.04-x64"": { } } } ``` Behavior on Windows ----------------------------- Chaining 3 processes runs successfully: ``` ## First add path to slow.exe and mycat.exe to environment variable PATH E:\arena\dotnetApp\pipe-threading\bin\Debug\netcoreapp1.1\win10-x64>work-thread.exe slow ""mycat|cat1"" ""mycat|cat2"" This is a console app to write output in slow manner Hello world C# across platforms is awesome! We cannot go back time Unless we have a time machine~ One last output :) slow -> mycat :Piping Thread exiting, disposing StandardInput of process 'mycat cat1' mycat -> mycat :Piping Thread exiting, disposing StandardInput of process 'mycat cat2' ``` Logging from `mycat.exe` shows that `Console.ReadLine() == null` was hit in both `mycat.exe` processes (note the line **`Console.In closed.`** in the logs): **cat1** ``` IsInputRedirected? True IsOutputRedirected? True IsErrorRedirected? False -- About to read from stdin -- This is a console app to write output in slow manner Hello world C# across platforms is awesome! We cannot go back time Unless we have a time machine~ One last output :) Console.In closed. ``` **cat2** ``` IsInputRedirected? True IsOutputRedirected? False IsErrorRedirected? False -- About to read from stdin -- This is a console app to write output in slow manner Hello world C# across platforms is awesome! We cannot go back time Unless we have a time machine~ One last output :) Console.In closed. ``` Behavior on Linux ---------------------- **Chaining the same 3 processes hangs:** ``` ## First add path to slow and mycat to environment variable PATH user@machine:~/arena/pipe-threading/bin/Debug/netcoreapp1.1/ubuntu.14.04-x64$ ./work-thread slow ""mycat|cat1"" ""mycat|cat2"" This is a console app to write output in slow manner Hello world C# across platforms is awesome! We cannot go back time Unless we have a time machine~ One last output :) slow -> mycat :Piping Thread exiting, disposing StandardInput of process 'mycat cat1' ``` Logging from `mycat` shows that `Console.ReadLine() == null` was NOT hit in both `mycat` processes (note the line **`Console.In closed.`** is missing in the logs): **cat1** ``` user@machine:~/temp$ cat cat1 IsInputRedirected? True IsOutputRedirected? True IsErrorRedirected? False -- About to read from stdin -- This is a console app to write output in slow manner Hello world C# across platforms is awesome! We cannot go back time Unless we have a time machine~ One last output :) ``` **cat2** ``` user@machine:~/temp$ cat cat2 IsInputRedirected? True IsOutputRedirected? False IsErrorRedirected? False -- About to read from stdin -- This is a console app to write output in slow manner Hello world C# across platforms is awesome! We cannot go back time Unless we have a time machine~ One last output :) ```" +13448 area-Infrastructure Add Windows 32 bit to test build We are currently not testing 32 bit. (Which we support on Windows) We need to enable this for the test build. Separately we should enable it for CI -- @mmitche what is involved to do that, once the test build is going? /cc @karelz @weshaggard +13449 area-System.Collections [WIP] Fix Inconsistencies in HashSetEqualityComparer Fixes #12560 by fixing the logic for selecting the fast-path. Unlike what was suggested in the thread for that issue, **this could be a breaking change**, that should be considered before accepting. It also makes some further changes so this is little commits now to aid examining each. They should be rebased into a single commit first if this is accepted. 427b429bb49f1f98ed621ca08b1243ef63f599b3 is the actual fix, changing a comparison of the two sets' comparers with a comparison between that of the first set and the comparer that is meant to be used by the method. Hence it's fast-path now works. ff7ef41f5ecb1485372dbf35724849fa712cdf9c improves the short-circuiting at the beginning. As well as being an improvement in itself, it moves the `Count` check out of the fast-path aiding the next step… adcf7717c0d8d119e581381cee6ff8aaa84ffaa5 uses `ContainsAllElements` instead of the loop, since that's what the loop is doing. It also covers the case were the same fast path can be used in the other direction because the second set has the appropriate comparer though the first did not. 6ec726e5c93ea613dbb59b0e83355565a0b90206 improves the non-fast-path approach for most cases (there are times when the previous code would return false sooner, but this O(n) approach should beat its O(n2) approach most of the time. 1de6790a8fde0361ba171ff5580a69b74538586e is a minor improvement to `HashSetEqualityComparer.GetHashCode()` because improving it was the original suggestion in #12560 though this minor improvement was all I could see to do there. It means empty sets don't has the same as null, and removes an operation per item that doesn't add anything to the hash quality. This also needs some test coverage. +13450 area-System.Reflection System.Reflection.TypeExtensions does not work on .NET Native I'm trying to use the `System.Runtime.TypeExtensions` package in a UWP project, and I experienced a curious behavior. My call to `Type.GetField()`. worked just fine in Debug mode, but would not work in Release Mode. Specifically, `Type.GetField()` returns null every time. Based on my research, I believe it is because `System.Reflections.TypeExtensions.dll` does not have a Default.rd.xml file containing the reflection policy for the assembly. I'm not sure if that is on purpose, or an oversight. Also not sure if that will actually solve my problem. If there is another reason this code will not work in UWP apps in release mode, there needs to be a way to ensure the package is not used in UWP apps, because developers won't know it doesn't work until they put their app in the Store. Thanks! +13451 area-System.IO Move IO types into System.Runtime Move all of System.IO and System.IO.Primitives into System.Runtime. @weshaggard, @ianhays +13452 area-System.Diagnostics Process.GetCurrentProcess().MainModule.FileName returns incorrect path in linux ### Steps to reproduce 1. Use dotnet executable from a path with space. E.g. `/tmp/dotnet 2/dotnet-cli` 2. Use following code: ``` using System; using System.Diagnostics; class Program { static void Main(string[] args) { Console.WriteLine(GetCurrentProcessFileName()); } public static string GetCurrentProcessFileName() { return Process.GetCurrentProcess().MainModule.FileName; } } ``` 3. Compile and run the app `/tmp/dotnet\ 2/dotnet-cli/dotnet /tmp/app.dll` ### Expected App should print `/tmp/dotnet 2/dotnet-cli/dotnet` ### Actual App prints `/tmp/dotnet` +13453 area-System.Net Test failure: System.Net.NetworkInformation.Tests.IPInterfacePropertiesTest_Linux/IPInfoTest_AccessAllProperties_NoErrors Opened on behalf of @jiangzeng The test `System.Net.NetworkInformation.Tests.IPInterfacePropertiesTest_Linux/IPInfoTest_AccessAllProperties_NoErrors` has failed. System.Net.NetworkInformation.NetworkInformationException : An error was encountered while querying information from the operating system. ---- System.AggregateException : One or more errors occurred. (The process cannot access the file '/etc/resolv.conf' because it is being used by another process.) (The process cannot access the file '/proc/net/route' because it is being used by another process.) -------- System.IO.IOException : The process cannot access the file '/etc/resolv.conf' because it is being used by another process. -------- System.IO.IOException : The process cannot access the file '/proc/net/route' because it is being used by another process. Stack Trace: at System.Net.NetworkInformation.LinuxNetworkInterface.GetLinuxNetworkInterfaces() at System.Net.NetworkInformation.Tests.IPInterfacePropertiesTest_Linux.IPInfoTest_AccessAllProperties_NoErrors() ----- Inner Stack Trace ----- ----- Inner Stack Trace #1 (System.IO.IOException) ----- at System.IO.FileStream.Init(FileMode mode, FileShare share) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.File.Open(String path, FileMode mode, FileAccess access) at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at System.Net.NetworkInformation.StringParsingHelpers.ParseDnsAddressesFromResolvConfFile(String filePath) at System.Net.NetworkInformation.UnixIPInterfaceProperties.GetDnsAddresses() at System.Net.NetworkInformation.UnixIPInterfaceProperties..ctor(UnixNetworkInterface uni) at System.Net.NetworkInformation.LinuxIPInterfaceProperties..ctor(LinuxNetworkInterface lni) at System.Net.NetworkInformation.LinuxNetworkInterface..ctor(String name) at System.Net.NetworkInformation.LinuxNetworkInterface.GetOrCreate(Dictionary`2 interfaces, String name) at System.Net.NetworkInformation.LinuxNetworkInterface.<>c__DisplayClass5_0.b__2(String name, LinkLayerAddressInfo* llAddr) ----- Inner Stack Trace #2 (System.IO.IOException) ----- at System.IO.FileStream.Init(FileMode mode, FileShare share) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.File.Open(String path, FileMode mode, FileAccess access) at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize) at System.IO.File.InternalReadAllLines(String path, Encoding encoding) at System.Net.NetworkInformation.StringParsingHelpers.ParseGatewayAddressesFromRouteFile(String filePath, String interfaceName) at System.Net.NetworkInformation.LinuxIPInterfaceProperties.GetGatewayAddresses() at System.Net.NetworkInformation.LinuxIPInterfaceProperties..ctor(LinuxNetworkInterface lni) at System.Net.NetworkInformation.LinuxNetworkInterface..ctor(String name) at System.Net.NetworkInformation.LinuxNetworkInterface.GetOrCreate(Dictionary`2 interfaces, String name) at System.Net.NetworkInformation.LinuxNetworkInterface.<>c__DisplayClass5_0.b__2(String name, LinkLayerAddressInfo* llAddr) Build : Master - 20161107.502 (Core Tests) Failing configurations: - Ubuntu.1404.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161107.502/workItem/System.Net.NetworkInformation.Functional.Tests/analysis/xunit/System.Net.NetworkInformation.Tests.IPInterfacePropertiesTest_Linux~2FIPInfoTest_AccessAllProperties_NoErrors +13454 area-System.Net Test failure: System.Net.NetworkInformation.Tests.NetworkInterfaceIPv4Statistics/BasicTest_GetIPv4InterfaceStatistics_Success_Linux Opened on behalf of @jiangzeng The test `System.Net.NetworkInformation.Tests.NetworkInterfaceIPv4Statistics/BasicTest_GetIPv4InterfaceStatistics_Success_Linux` has failed. System.IO.IOException : The process cannot access the file '/sys/class/net/lo/tx_queue_len' because it is being used by another process. Stack Trace: at System.IO.FileStream.Init(FileMode mode, FileShare share) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.IO.File.Open(String path, FileMode mode, FileAccess access, FileShare share) at System.IO.File.Open(String path, FileMode mode, FileAccess access) at System.IO.FileStreamHelpers.CreateFileStream(String path, Boolean write, Boolean append) at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize) at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at System.IO.File.ReadAllText(String path) at System.Net.NetworkInformation.StringParsingHelpers.ParseRawIntFile(String filePath) at System.Net.NetworkInformation.LinuxIPInterfaceStatistics..ctor(String name) at System.Net.NetworkInformation.LinuxIPv4InterfaceStatistics..ctor(String name) at System.Net.NetworkInformation.LinuxNetworkInterface.GetIPv4Statistics() at System.Net.NetworkInformation.Tests.NetworkInterfaceIPv4Statistics.BasicTest_GetIPv4InterfaceStatistics_Success_Linux() Build : Master - 20161107.502 (Core Tests) Failing configurations: - Suse.132.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161107.502/workItem/System.Net.NetworkInformation.Functional.Tests/analysis/xunit/System.Net.NetworkInformation.Tests.NetworkInterfaceIPv4Statistics~2FBasicTest_GetIPv4InterfaceStatistics_Success_Linux +13455 area-System.Runtime System.Runtime.Numerics.Tests threw OutOfMemoryException No test results generated. Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161107.502/workItem/System.Runtime.Numerics.Tests/details/21670e64-2ea5-45bb-ab05-6865c589e68b ``` 2016-11-08 01:16:59,881: INFO: proc(55): run_and_log_output: Output: Unhandled Exception: OutOfMemoryException. 2016-11-08 01:17:47,127: INFO: proc(55): run_and_log_output: Output: /home/helixbot/dotnetbuild/work/21670e64-2ea5-45bb-ab05-6865c589e68b/Work/613149c7-69a9-42ca-9740-de748dc06a08/Unzip/RunTests.sh: line 285: 7148 Aborted (core dumped) ./corerun xunit.console.netcore.exe System.Runtime.Numerics.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=requireselevation -notrait category=failing -notrait category=nonlinuxtests 2016-11-08 01:17:47,128: INFO: proc(55): run_and_log_output: Output: Finished running tests. End time=01:17:47. Return value was 134 ``` Build : Master - 20161107.502 (Core Tests) Failing configurations: Centos.71.Amd64:AnyCPU-Release +13456 area-System.Security Test failure: Some tests of 'System.Security.Cryptography.X509Certificates.Tests' failed with 'Interop+Crypto+OpenSslCryptographicException' Opened on behalf of @jiangzeng The test `System.Security.Cryptography.X509Certificates.Tests.CollectionTests/ExportCert_SecureString` has failed. Interop+Crypto+OpenSslCryptographicException : error:23076071:PKCS12 routines:PKCS12_parse:mac verify failure Stack Trace: at Internal.Cryptography.Pal.OpenSslPkcs12Reader.Decrypt(SafePasswordHandle password) at Internal.Cryptography.Pal.PkcsFormatReader.TryReadPkcs12(OpenSslPkcs12Reader pfx, SafePasswordHandle password, Boolean single, ICertificatePal& readPal, List`1& readCerts) at Internal.Cryptography.Pal.PkcsFormatReader.TryReadPkcs12(Byte[] rawData, SafePasswordHandle password, Boolean single, ICertificatePal& readPal, List`1& readCerts) at Internal.Cryptography.Pal.PkcsFormatReader.TryReadPkcs12(Byte[] rawData, SafePasswordHandle password, ICertificatePal& certPal) at Internal.Cryptography.Pal.CertificatePal.FromBlob(Byte[] rawData, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] rawData, SecureString password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData, SecureString password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.Tests.CollectionTests.TestExportSingleCert_SecureStringPassword(X509ContentType ct) at System.Security.Cryptography.X509Certificates.Tests.CollectionTests.ExportCert_SecureString() Build : Master - 20161107.502 (Core Tests) Failing configurations: - Debian.82.Amd64 - AnyCPU-Debug - AnyCPU-Release - Ubuntu.1404.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.7.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.10.Core.Amd64 - AnyCPU-Debug - AnyCPU-Release - Redhat.72.Amd64 - AnyCPU-Debug - AnyCPU-Release - Centos.71.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release - Windows.81.Amd64 - AnyCPU-Debug - AnyCPU-Release - Suse.132.Amd64 - AnyCPU-Debug - AnyCPU-Release - Ubuntu.1604.Amd64 - AnyCPU-Debug - AnyCPU-Release - Fedora.23.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: System.Security.Cryptography.X509Certificates.Tests.CollectionTests\ExportCert_SecureString System.Security.Cryptography.X509Certificates.Tests.PfxTests\TestConstructor_SecureString Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161107.502/workItem/System.Security.Cryptography.X509Certificates.Tests +13457 area-System.Console Remove PlatformNotSupportedException from NetCore50 System.Console Color properties This pull request: https://github.com/dotnet/corefx/pull/12984 regressed behavior for setting console color on netcore50 versions of System.Console. These properties now throw a System.PlatformNotSupportedException. There is no desire to work around this in Xunit.Console.NetCore so netcore50 tests are broken for this reason until this is fixed. It's quite possible for code one is indirectly calling (and may not have control over) to call these APIs, and without being allowed to call these without crashing some code may be unusable. @weshaggard @SedarG +13458 area-System.Linq Expression Interpreter Writeback can be incorrect in the face of aliasing. Consider a byref method such as this constructor: ```C# private class ByRefNewType { public ByRefNewType(ref int a, ref int b) { ++a; b *= a; } } ``` And a variable `int x = 3` Calling `new ByRefNewType(ref x, ref x)` is equivalent to running `++x; x*=x` and hence `x` is 16. With an expression-created delegate: ```C# var del = Expression.Lambda( Expression.New( typeof(ByRefNewType).GetConstructors()[0], pX, pY), pX, pY).Compile(); int x = 3; del(byref x, byref x); ``` Then with the compiler `x` will be 16 as expected, by with the interpreter `y` will be 12 (it could conceivably end up being 4). The cause is that the interpreter doesn't have true reference types and so the aliasing is broken. I'm not sure this is feasibly fixable. It may have to be merely noted as a limitation. +13459 area-System.IO Fix StreamReader/Writer to use FileShare.Read In all of the refactorings around FileStream / StreamReader / StreamWriter, we've started accidentally passing FileShare.None instead of FileShare.Read when creating the stream used by StreamReader/StreamWriter, resulting in a bunch of test failures. Fixes https://github.com/dotnet/coreclr/issues/8030 Fixes https://github.com/dotnet/corefx/issues/13454 Fixes https://github.com/dotnet/corefx/issues/13453 cc: @ianhays, @adityamandaleeka +13460 area-System.Linq Tests for New Expressions with byref parameters. Inlcludes ActiveIssue test for #13458 +13464 area-System.Net Modify webproxy tests to handle platform specific difference. In Ubuntu 14.04 (x86_64), ``System.Net.WebProxy.Tests`` inner test failed as follows: ``` xUnit.net console test runner (32-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Net.WebProxy.Tests Discovered: System.Net.WebProxy.Tests Starting: System.Net.WebProxy.Tests System.Net.Tests.WebProxyTest.BypassOnLocal_MatchesExpected(destination: http://127.0.0.1/, isLocal: True) [FAIL] Assert.False() Failure Expected: False Actual: True Stack Trace: /home/parjong/projects/dotnet/corefx/src/System.Net.WebProxy/tests/WebProxyTest.cs(184,0): at System.Net.Tests.WebProxyTest.BypassOnLocal_MatchesExpected(Uri destination, Boolean isLocal) Finished: System.Net.WebProxy.Tests === TEST EXECUTION SUMMARY === System.Net.WebProxy.Tests Total: 25, Errors: 0, Failed: 1, Skipped: 0, Time: 4.050s ``` +13466 area-System.Linq Remove some dead code from Interpreter and LightCompiler. Also make some members private when only accessed by their own type. Contributes to #3836 +13467 area-System.Linq Shift Expressions Tests and Refactoring Add tests for nullable operands to shift expressions. Add tests for invalid types on shift expression creation. Remove interpreter support for methodless shifts on enums. These aren't valid expressions, so this code is dead. Remove. Interpreter throws runtime exception on invalid LHS to shift instruction, but this is already checked in earlier validation. Replace runtime exception with assertion. Refactor commonality in LeftShiftInstruction and RightShiftInstruction The related classes have a lot of code duplication, so refactor to remove that. Contributes to #3836 and #1198 +13468 area-System.IO Remove reflection from FileStreamHelpers on coreclr cc: @ianhays, @JeremyKuhne, @justinvp +13469 area-System.Data "System.Data.SqlClient.SqlBuffer.get_Int32() cannot read from ""tinyint"" column" "Because of boxing here's what happens when you have a `tinyint` column and attempt to map it to `Int32` member: 1. `SqlBuffer.get_Int32()` is called 2. `SqlBuffer.get_Int32()` sees that ""storage type"" is not `StorageType.Int32`, so it calls `get_Value()` 3. `get_Value()` checks ""storage type"" again and calls `get_Byte()` 4. `get_Byte()` returns a value of type `Byte` 5. control gets back to `get_Value()` and it returns `Byte` boxed as `Object` 6. control gets back to `get_Int32()` and it casts `Object` which contains a boxed `Byte` into `Int32` and the cast fails with `InvalidCastException`. Which basically means that you cannot read a narrow range int type column into a wider range type datatype. It makes no sense. I guess I can fix this - just enum all ""smaller"" types in each `get_SomeIntegerType()` and retrieve proper data. Would such fix be desired?" +13470 area-System.Net Proposal: Add Socket.SafeHandle property Socket currently exposes: ```C# public IntPtr Handle => _handle.DangerousGetHandle(); ``` We should add: ```C# public SafeHandle SafeHandle => _handle; ``` This will let code consuming the socket interact with its handle directly in a safe manner; today if code relies on the Handle, the Socket could be closed out from under it, closing that handle, and leading to dangerous race conditions. With the SafeHandle exposed, consuming code can handle this correctly. For example, this will make it feasible to correctly fix https://github.com/dotnet/corefx/issues/11807, whereas today reflection is used: https://github.com/dotnet/corefx/blob/master/src/System.IO.Pipes/src/Microsoft/Win32/SafeHandles/SafePipeHandle.Unix.cs#L36 +13471 area-System.Security Three X509Certificates / SecureString tests failing ``` System.Security.Cryptography.X509Certificates.Tests.PfxTests.TestConstructor_SecureString(keyStorageFlags: DefaultKeySet) [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The specified network password is not correct Stack Trace: at Internal.Cryptography.Pal.CertificatePal.FilterPFXStore(Byte[] rawData, SafePasswordHandle password, PfxCertStoreFlags pfxCertStoreFlags) at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags) at Internal.Cryptography.Pal.CertificatePal.FromBlob(Byte[] rawData, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] rawData, SecureString password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData, SecureString password, X509KeyStorageFlags keyStorageFlags) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Security.Cryptography.X509Certificates\tests\PfxTests.cs(48,0): at System.Security.Cryptography.X509Certificates.Tests.PfxTests.TestConstructor_SecureString(X509KeyStorageFlags keyStorageFlags) System.Security.Cryptography.X509Certificates.Tests.PfxTests.TestConstructor_SecureString(keyStorageFlags: EphemeralKeySet) [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The specified network password is not correct Stack Trace: at Internal.Cryptography.Pal.CertificatePal.FilterPFXStore(Byte[] rawData, SafePasswordHandle password, PfxCertStoreFlags pfxCertStoreFlags) at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags) at Internal.Cryptography.Pal.CertificatePal.FromBlob(Byte[] rawData, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] rawData, SecureString password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData, SecureString password, X509KeyStorageFlags keyStorageFlags) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Security.Cryptography.X509Certificates\tests\PfxTests.cs(48,0): at System.Security.Cryptography.X509Certificates.Tests.PfxTests.TestConstructor_SecureString(X509KeyStorageFlags keyStorageFlags) System.Security.Cryptography.X509Certificates.Tests.CollectionTests.ExportCert_SecureString [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The specified network password is not correct Stack Trace: at Internal.Cryptography.Pal.CertificatePal.FilterPFXStore(Byte[] rawData, SafePasswordHandle password, PfxCertStoreFlags pfxCertStoreFlags) at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags) at Internal.Cryptography.Pal.CertificatePal.FromBlob(Byte[] rawData, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] rawData, SecureString password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(Byte[] rawData, SecureString password, X509KeyStorageFlags keyStorageFlags) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Security.Cryptography.X509Certificates\tests\CollectionTests.cs(1393,0): at System.Security.Cryptography.X509Certificates.Tests.CollectionTests.TestExportSingleCert_SecureStringPassword(X509ContentType ct) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Security.Cryptography.X509Certificates\tests\CollectionTests.cs(647,0): at System.Security.Cryptography.X509Certificates.Tests.CollectionTests.ExportCert_SecureString() ``` +13472 area-System.Security Add more static DSA tests, including NIST CAVP test vectors. The portion of the tests in the existing file were signatures generated by .NET Framework's DSACng, which were added first during this exercise. The NIST cases came as a followup. The general flow for NIST cases was: * Take one representative sample from legacy DSA (FIPS 186-2). * For each (L,N,H) tuple for FIPS 186-4 take the first test case. * If any of the further test cases looked interesting (such as having a leading 0x00), include such test case. N=224 is not supported by Windows, and Windows CNG is the only current DSA implementation that supports FIPS 186-3, so they were omitted as not worth the hassle yet of making a new test capability that was never met. H=SHA224 is not supported by .NET, so none of those cases were included. cc: @steveharter +13474 area-System.IO Some isolated storage tests failed with UnauthorizedAccessException 20 of the isolated storage tests failed when running with a clean repo, build from root. All are failing because they can't access the path below. The path doesn't exist after the tests are done but if I try to create it myself with CreateDirectory, there is no problem. After cleaning the isolated storage folder the tests pass. ``` System.IO.IsolatedStorage.MoveFileTests.MoveFile_MoveOver(scope: UserStoreForAssembly) [FAIL] System.UnauthorizedAccessException : Access to the path 'C:\Users\danmose\AppData\Local\IsolatedStorage\onb3nvpa.ama\a3ve4vgl.zmh\StrongName.523eyfdtenor3l0btjpf240vsoo5jc3i\AssemFiles\' is denied. Stack Trace: at System.IO.Win32FileSystem.CreateDirectory(String fullPath) at System.IO.Directory.CreateDirectory(String path) at System.IO.IsolatedStorage.Helper.CreateDirectory(String path, IsolatedStorageScope scope) at System.IO.IsolatedStorage.IsolatedStorageFile.Initialize(IsolatedStorageScope scope) at System.IO.IsolatedStorage.IsolatedStorageFile.GetStore(IsolatedStorageScope scope) at System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForAssembly() C:\git\corefx.dan\src\System.IO.IsolatedStorage\tests\System\IO\IsolatedStorage\IsoStorageTest.cs(52,0): at System.IO.IsolatedStorage.IsoStorageTest.GetPresetScope(PresetScopes scope) C:\git\corefx.dan\src\System.IO.IsolatedStorage\tests\System\IO\IsolatedStorage\MoveFileTests.cs(86,0): at System.IO.IsolatedStorage.MoveFileTests.MoveFile_MoveOver(PresetScopes scope) ``` @JeremyKuhne +13475 area-System.Security Add AsymmetricAlgorthm.ToXmlString, FromXmlString, and other missing members Addresses issue https://github.com/dotnet/corefx/issues/12315 ```` On AsymmetricAlgorithm: P:KeyExchangeAlgorithm P:SignatureAlgorithm M:Clear M:FromXmlString(string) M:ToXmlString(bool) + ECDsa changes per ns1.7 and .net 4.6.3 M:FromXmlString(string, ECKeyXmlFormat) M:ToXmlString(ECKeyXmlFormat) T:ECKeyXmlFormat ```` Tests are new (not ported). For RSA and DSA, netfx used a different (lower-level) Xml parser; corefx uses XmlReader and XmlWriter. For EcDsa, code was ported directly from netfx including the file Rfc4050KeyFormatter and new enum ECKeyXmlFormat. @bartonjs please review +13476 area-System.Security Moving part of System.Security.Permissions down to System.Runtime.Extensions Fixes #13289 cc: @ianhays @weshaggard @danmosemsft Moving netstandard 2.0 members of System.Security.Permissions down to System.Runtime.Extensions so that they are part of NETStandard.Library +13478 area-System.Runtime Misc NS2.0 in System namespace This is missing ISerializable. ``` public class TypeUnloadedException : SystemException, ISerializable { public TypeUnloadedException(string message, Exception innerExceptioninner); } ``` This is missing the IEquatable implementation ``` public struct UIntPtr : IEquatable, ISerializable { } ``` +13479 area-System.Runtime Update Sytem.Runtime.InteropServices to ns2.0 Updated the apis and added test cases for the Marshal functions. @yizhang82 @jkotas @weshaggard @stephentoub +13480 area-Infrastructure Passing /p:testnugetruntimeid=win10-x86 fails Right now, if you pass `/p:testnugetruntimeid=win10-x86` to a test project, it fails for a couple of reasons (at least that I've identified). * The rid is not listed in our [test-runtime project.json](https://github.com/dotnet/corefx/blob/master/src/Common/test-runtime/project.json#L391). * ~~(after fixing the above) There is a runtime error when running the tests:~~ ``` Discovering: System.Runtime.Numerics.Tests Discovered: System.Runtime.Numerics.Tests System.PlatformNotSupportedException: Operation is not supported on this platform. ``` ~~A `PlatformNotSupportedException` seems to be thrown if any `-notrait ___` parameter is passed. It works if I manually modify the arguments and remove all of the `-notrait` parameters.~~ EDIT: The second problem went away when I cleaned my packages directory. Furthermore, some of the tests don't even seem to work on x86 at all, for reasons unrelated to the above. The System.Runtime.Numerics tests try to allocate too much memory for a 32-bit process, for example. @karajas +13482 area-System.ComponentModel System.ComponentModel.AsyncCompletedEventArgs has a different behavior in Desktop and .NET Core `System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary` have different behaviors in Desktop and .NET Core. In Desktop if _error (expected exception to be thrown when an AsyncWork is completed and the result is an exception) is not null we would throw a `TargetInvocationException` with the _error as an `InnerException`. In .NET Core we are throwing the _error Exception. They should both throw `TargetInvocationException`. +13483 area-System.Linq Stragglers in S.Linq.Expressions These are in NS2.0 but not exposed ``` public sealed class Expression : LambdaExpression { public new TDelegate Compile(DebugInfoGenerator debugInfoGenerator); } public abstract class ExpressionVisitor { protected internal virtual Expression VisitDynamic(DynamicExpression node); } public abstract class LambdaExpression : Expression { public Delegate Compile(DebugInfoGenerator debugInfoGenerator); } public abstract class MemberBinding { protected MemberBinding(MemberBindingType type, MemberInfo member); } ``` +13484 area-System.Runtime Missing CriticalHandle.Close() Missed in https://github.com/dotnet/corefx/issues/11729 +13485 area-System.Runtime Add Marshal SecureString apis Fixes #13339 +13486 area-System.Reflection 3 enums missing entries in Ref.Emit These are in NS2.0 but missing from our copies of the enums: ``` namespace System.Reflection.Emit { public enum FlowControl { Phi = 6, } public enum OpCodeType { Annotation = 0, } public enum OperandType { InlinePhi = 6, } ``` If they don't have meaning in Core, they should be present but using them can throw PNSE. +13487 area-System.IO Move Path class down to CoreLib For 2 main reasons: perf and stability We already have a copy of a significant chunk of code that went in with long path support. The code in CoreLib isn't as up-to-date or complete as what we currently have in CoreFX (partially because we were trying to maintain source compatibility with desktop and partially we were only enable AppDomain bring up). This wasn't a big deal when all we had was AppDomain in play, but now that we're moving additional IO classes down we're exposing ourselves to breaks. (Either by missing fixes or missing differing behavior as the code in CoreLib uses the PAL.) While we could just share the code a little more completely there are additional issues around caching. Normalizing paths on Windows would benefit from having a single instance of the code- particularly as the same paths tend to get normalized repeatedly in succession. Having a single buffer cache will avoid some (potentially a lot of) buffer resizing. @ianhays, @stephentoub, @weshaggard, @jkotas +13488 area-System.IO FileStream missing IntPtr constructors These are missing ``` public FileStream(IntPtr handle, FileAccess access); public FileStream(IntPtr handle, FileAccess access, bool ownsHandle); public FileStream(IntPtr handle, FileAccess access, bool ownsHandle, int bufferSize); public FileStream(IntPtr handle, FileAccess access, bool ownsHandle, int bufferSize, bool isAsync); ``` +13489 area-System.IO FilexxException missing GetObjectData These are missing ``` public class FileLoadException : IOException { public override void GetObjectData(SerializationInfo info, StreamingContext context); } public class FileNotFoundException : IOException { public override void GetObjectData(SerializationInfo info, StreamingContext context); } ``` +13490 area-System.IO FileInfo missing Replace These NS2.0 methods are missing ``` public sealed class FileInfo : FileSystemInfo { public FileInfo Replace(string destinationFileName, string destinationBackupFileName); public FileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors); } ``` I notice they're not in the mscorlib facade for some reason which may be why they were missed. +13491 area-System.IO FileSystemWatcher missing some NS2.0 methods Missing: ``` public class FileSystemWatcher : Component, ISupportInitialize { public override ISite Site { get; set; } public ISynchronizeInvoke SynchronizingObject { get; set; } public void BeginInit(); protected override void Dispose(bool disposing); public void EndInit(); } ``` +13492 area-System.Diagnostics Fix procfs parsing for modules with a space. When parsing a proc maps file, the path would be improperly read if the path contained a space. This changes the behavior to read to the end of the line since the module path is the last component in the maps file. Fixes #13452 +13493 area-Meta ReleaseNotes link results in 404 The 1.1 release notes link points to https://go.microsoft.com/fwlink/?LinkID=799421 per https://github.com/dotnet/corefx/issues/8758#issuecomment-221048601, but that link is currently broken. @leecow owns this link, can you please update as appropriate. /cc @gkhanna79 +13496 area-System.Net Remove boxed Int32 from every Socket async send/receive Every async send/receive operation was boxing its Int32 result. cc: @davidsh, @cipop, @geoffkizer +13497 area-System.Xml Ensure randomized hashing is enabled and right implementation is being used in Xml this PR: - removes not used and unsafe implementation of SecureStringHasher - removes few TODOs - adds tests ensuring that implementation of GetHashCode in XmlQualifiedName and SecureStringHasher are secure This is a follow up of an internal issue: Current implementations of XmlQualifiedName and SecureStringHasher are unsafe if randomized hashing is disabled. The only reliable way to check if randomized hashing is enabled is to make sure that hashes generated for the same string are different for different instances of the same executable. This approach was not taken as it would cause flakiness. Current approach is testing if we are not using any of the known unsafe (non randomized) implementations of GetHashCode. +13498 area-System.Net Shrink ContextAwareResult.StateFlags from Int32 to Byte It's a flags enum with fewer than 8 bits used; we can make its underlying type Byte rather than Int32. This shrinks the size of the ContextAwareResult._flags field accordingly. cc: @davidsh, @cipop, @geoffkizer +13500 area-System.Net Implement HttpWebRequest Timeout property Granular WinHttpHandler timeout properties are not exposed via the HttpClientHandler API , need timeout from HttpClientHandler to implement this. +13501 area-System.Security TestCopyConstructor_Lifetime_Cloned failed in ci - OpenCSP failed with error code 2148073494. this code seems to be [keyset does not exist](http://index/?query=0x80090016&rightProject=mscorlib&file=system%5Csecurity%5Ccryptography%5Cutils.cs&line=54) ``` 14:49:38 System.Security.Cryptography.X509Certificates.Tests.CtorTests.TestCopyConstructor_Lifetime_Cloned [FAIL] 14:49:38 System.Security.Cryptography.CryptographicException : OpenCSP failed with error code 2148073494. 14:49:38 Stack Trace: 14:49:38 at Internal.NativeCrypto.CapiHelper.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer) 14:49:38 at System.Security.Cryptography.RSACryptoServiceProvider.get_SafeProvHandle() 14:49:38 at System.Security.Cryptography.RSACryptoServiceProvider.get_SafeKeyHandle() 14:49:38 at System.Security.Cryptography.RSACryptoServiceProvider..ctor(Int32 keySize, CspParameters parameters, Boolean useDefaultKeySize) 14:49:38 D:\j\workspace\windows_nt_re---37265eab\src\System.Security.Cryptography.X509Certificates\src\Internal\Cryptography\Pal.Windows\CertificatePal.PrivateKey.cs(52,0): at Internal.Cryptography.Pal.CertificatePal.<>c.b__62_0(CspParameters csp) 14:49:38 D:\j\workspace\windows_nt_re---37265eab\src\System.Security.Cryptography.X509Certificates\src\Internal\Cryptography\Pal.Windows\CertificatePal.PrivateKey.cs(134,0): at Internal.Cryptography.Pal.CertificatePal.GetPrivateKey[T](Func`2 createCsp, Func`2 createCng) 14:49:38 D:\j\workspace\windows_nt_re---37265eab\src\System.Security.Cryptography.X509Certificates\src\Internal\Cryptography\CertificateExtensionsCommon.cs(52,0): at Internal.Cryptography.Pal.CertificateExtensionsCommon.GetPrivateKey[T](X509Certificate2 certificate, Predicate`1 matchesConstraints) 14:49:38 D:\j\workspace\windows_nt_re---37265eab\src\System.Security.Cryptography.X509Certificates\tests\CtorTests.cs(266,0): at System.Security.Cryptography.X509Certificates.Tests.CtorTests.TestPrivateKey(X509Certificate2 c, Boolean expectSuccess) 14:49:38 D:\j\workspace\windows_nt_re---37265eab\src\System.Security.Cryptography.X509Certificates\tests\CtorTests.cs(242,0): at System.Security.Cryptography.X509Certificates.Tests.CtorTests.TestCopyConstructor_Lifetime_Cloned() ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/2797/consoleFull#184376521779fe3b83-f408-404c-b9e7-9207d232e5fc @steveharter +13502 area-System.Net Initial commit to System.Net.HttpListener This gets @ericeil PR #13287 in. Fixed merged conflicts. cc @stephentoub @davidsh @CIPop @geoffkizer @karelz +13504 area-Meta Publishing Core application targeting net461 "In order to use Oracle I'm targeting net461 in my Core application. After publishing IIS on win server 2012. I get this error: ![image](https://cloud.githubusercontent.com/assets/9387260/20122641/2cc1cd10-a5e7-11e6-8fed-c819c6e104d0.png) ``` Unhandled Exception: System.TypeInitializationException: The type initializer for 'Microsoft.Extensions.PlatformAbstractions.PlatformServices' threw an exception. ---> System.TypeLoadException: Could not load type 'System.AppContext' from assembly 'System.AppContext, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. at Microsoft.Extensions.PlatformAbstractions.ApplicationEnvironment.GetApplicationBasePath() at Microsoft.Extensions.PlatformAbstractions.ApplicationEnvironment..ctor() at Microsoft.Extensions.PlatformAbstractions.PlatformServices..ctor() at Microsoft.Extensions.PlatformAbstractions.PlatformServices..cctor() --- End of inner exception stack trace --- at Microsoft.AspNetCore.Hosting.WebHostBuilder.BuildHostingServices() at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build() ``` my config file: `` after publishing looks like this: `` [project.json.txt](https://github.com/dotnet/corefx/files/579673/project.json.txt) However, if I target: ``` ""frameworks"": { ""netcoreapp1.0"": { ""imports"": [ ""dotnet5.6"", ""portable-net45+win8"" ] } }, ``` It works fine. How do I make it work with net461?" +13505 area-System.Runtime Support for 64 bits array Is there a reason to limit arrays to 32 bit only addressable ones? Working around it might severely impact some HPC apps that manipulate large sets of data. I understand that .NetCore might run on some platforms that are not 64 bits and not many applications need such large arrays. But this seems a very limiting decision as we see more and more platforms going 64 bits and we are coming into the age of massive data. +13508 area-Infrastructure [ARM/CI] Change rootfs directories rootfs directory `/opt/linux-arm-emulator-root/` is still in use from coreclr ARM-CI so changing it to `/opt/linux-arm-emulator-root_{arm|arm-softfp}/`. +13509 area-System.Security Re-enable SecureString tests cc: @AlexGhiondea Fixes #13331 Fixes #13471 One thing to note: it looks like there was a discrepancy between SecureStringMarshal and Marshal in their handling of null SecureString inputs. SecureStringMarshal was returning IntPtr.Zero for a null input, whereas Marshal is throwing an ArgumentNullException. I've changed the tests to match the Marshal behavior, which is the same behavior that exists on desktop. We should confirm we're ok with this change from .NET Core 1.1, though, and address it subsequently in both the implementation and tests if we're not. +13510 area-Infrastructure Several assemblies still missing code coverage Several corefx assemblies are still missing code coverage data (due to missing PDBs?) The ones I noticed: - System.IO.MemoryMappedFiles - System.Net.Security - System.Net.WebSockets.Client - System.Runtime.InteropServices.RuntimeInformation - System.Security.AccessControl - System.Security.Principal.Windows cc: @crummel, @danmosemsft +13511 area-System.Data Enhance SqlClientDiagnosticListener to support SqlTransaction - Write… … tests Writing tests for https://github.com/dotnet/corefx/pull/13212#issuecomment-259215456 cc @saurabh500 +13512 area-Infrastructure Mark 1.0.3 release packages stable /cc @gkhanna79 @weshaggard @chcosta +13515 area-Infrastructure Updating CoreClr dependencies to stable +13516 area-System.Linq Cannot cast bool to bool-based enum in Convert Expression. "If one has a `Type`, `boolEnumType`, which is of an `Enum` type with `bool` as its underlying type (from somewhere outside of C# since C# can't create those) then one should be able to cast a boolean value to it with Expressions.Convert: ```C# var exp = Expression.Lambda>( Expression.Equal( Expression.Default(boolEnumType), Expression.Convert(Expression.Constant(false), boolEnumType))); var func = exp.Compile(); Assert.True(func()); ``` However, the compiler throws an `ArgumentException(""Unhandled convert: bool"")` on compilation, and the interpreter compiles but on execution throws `InvalidOperationException(""Code supposed to be unreachable"") or an assertion failure." +13518 area-System.Linq Expression casts tests and fix boolean-enum casts Fix bug in cast test where result wasn't correctly verified. Tests for casting reference type to enum for all underlying types. Remove always-true branching on .GetTypeInfo().IsEnum (Already asserted in constructor). Replace if (from == null) case with assertion. Add assertion in instruction emit backing this up. Remove unreachable case for enum base. Add tests for casting to enum types from underlying types. Fix compiler and interpreter for bool → bool-backed-enum. Fixes #13516 Remove unreachable case in CastToEnumInstruction.Run() and simplify test from method call and multiple-branched switch to null-check. Test cast tests on DateTime as they are specialised (should they be?) +13519 area-Meta ReliableSession in WCF missing (dotNetCore / UWP) I try to establish a reliable duplex connection via WCF (netTcpBinding) in UWP. NetTcpBinding/NetHttpBinding does not offer the possibility to configure a reliable session (option missing in ctor). +13520 area-Meta Revert renamed parameters Renaming a parameter is a disallowed [breaking change](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/breaking-change-rules.md) public class DuplicateWaitObjectException : ArgumentException, ISerializable { public DuplicateWaitObjectException(string message, Exception **innerException**inner); public class TypeUnloadedException : SystemException, ISerializable { public TypeUnloadedException(string message, Exception **innerException**inner); public class StackTrace { public StackTrace(Exception **e**exception); public StackTrace(Exception **e**exception, bool **fNeedFileInfo**needFileInfo); public StackTrace(Exception **e**exception, int skipFrames); public StackTrace(Exception **e**exception, int skipFrames, bool fNeedFileInfo); public class TcpListener { public void AllowNatTraversal(bool **allowed**allow); } public class UdpClient : IDisposable { public void AllowNatTraversal(bool **allowed**allow); namespace System.Reflection { public abstract class Assembly : ICustomAttributeProvider, ISerializable { public static Assembly LoadFrom(string **assemblyFile**path); public abstract class DSA : AsymmetricAlgorithm { public abstract byte[] CreateSignature(byte[] **rgbHash**hash); public abstract bool VerifySignature(byte[] **rgbHash**hash, byte[] **rgbSignature**signature); namespace System.Security.Cryptography.X509Certificates { public class X509Certificate2 : X509Certificate { public X509Certificate2(X509Certificate **certificate**cert); public class ThreadExceptionEventArgs : EventArgs { public ThreadExceptionEventArgs(Exception **t**exception); +13521 area-Meta Revert param names Renaming a parameter is a disallowed breaking change. Fixes #13520 @joperezr +13522 area-System.Runtime Add tests for marshal secure string apis +13523 area-System.Linq System.Linq.Expressions code coverage partial report It currently shows as 27%, while we expect a much higher number (it was 80% or more IIRC before code coverage stopped working in CI). This may be related to https://github.com/dotnet/corefx/issues/13510. One observation is that all interpreter code isn't covered, so there may be a compilation symbol missing for the test assembly build. Another contributing factor may be the merge of `System.Dynamic.Runtime` functionality. But even then, it seems many tests are not run, e.g. for the `Expression` class we expect a lot more coverage of various code paths (such as argument checking logic in the factories). +13524 area-System.Collections Remove space from filename - ImmutableArray.NonGeneric.Tests.cs I randomly noticed a space between the filename and extension of https://github.com/dotnet/corefx/blob/master/src/System.Collections.Immutable/tests/ImmutableArray/ImmutableArray.NonGeneric.Tests%20.cs I assume this isn't intentional. @hughbe @stephentoub @weshaggard +13525 area-Infrastructure Upgrade buildtools to get updated ReportGenerator To pick up some nice improvements in the latest version of ReportGenerator (the tool used to generate code coverage reports from OpenCover's output). +13526 area-System.Runtime Proposal: Adding System.SemanticVersion "One of the issues I keep running into with the ""default open"" world: prereleases. As more and more projects move to semantic versioning, it'd be nice to have a built-in type to handle these. Today, this fails: ```C# Version.Parse(""1.0.0-beta1""); ``` Because [`System.Version`](https://msdn.microsoft.com/en-us/library/system.version_properties.aspx) has no concept of pre-release suffixes. I'm not arguing it should be added (that's maybe a little to breaking). Instead how about a new type? `System.SemanticVersion` The *main* property most people would be interested in is the prerelease label, but other tenants of semantic versioning should be included. Comparisons being a big one. A lot of devs get this wrong on corner cases. I was looking for how to do best structure this and noticed: NuGet is already doing it. Here's their `SemanticVersion` class: ([part 1](https://github.com/NuGet/NuGet.Client/blob/4cccb13833ad29d6a0bcff055460d964f1b49cfe/src/NuGet.Core/NuGet.Versioning/SemanticVersion.cs), [part2](https://github.com/NuGet/NuGet.Client/blob/4cccb13833ad29d6a0bcff055460d964f1b49cfe/src/NuGet.Core/NuGet.Versioning/SemanticVersionBase.cs)). The API likely needs a little refinement for general use in the BCL, but is there a desire for this from others? I have use cases from parsing package versions to determining which version of Elasticsearch a client is connected to. There's a broad spectrum of semantic versioning use cases now. Suggestions from others (collating here): - It should be comparable to `Version` (additional operator overloads) ## API ```c# namespace System { public class SemanticVersion : IFormattable, IComparable, IComparable, IEquatable, ICloneable { public SemanticVersion(int major, int minor, int patch); public SemanticVersion(int major, int minor, int patch, string prereleaseLabel); public SemanticVersion(int major, int minor, int patch, string prereleaseLabel, string metadata); public SemanticVersion(int major, int minor, int patch, IEnumerable prereleaseLabel, IEnumerable metadata); public SemanticVersion(string version); protected SemanticVersion(Version version, string prereleaseLabel = null, string metadata = null); protected SemanticVersion(Version version, IEnumerable prereleaseLabels, IEnumerable metadata); public int Major { get; } public int Minor { get; } public int Patch { get; } public virtual IEnumerable PrereleaseLabels { get; } public virtual bool IsPrerelease { get; } public virtual IEnumerable Metadata { get; } public virtual bool HasMetadata { get; } public virtual string ToString(string format, IFormatProvider formatProvider); public override string ToString(); public override int GetHashCode(); public virtual SemanticVersion Clone(); object ICloneable.Clone() => Clone(); public virtual bool Equals(SemanticVersion other); public virtual bool Equals(Version other); public virtual int CompareTo(object obj); public virtual int CompareTo(SemanticVersion other); public virtual int CompareTo(Version other); public static SemanticVersion Parse(string versionString); public static bool TryParse(string versionString, out SemanticVersion version); public static bool operator ==(SemanticVersion left, SemanticVersion right); public static bool operator !=(SemanticVersion left, SemanticVersion right); public static bool operator <(SemanticVersion left, SemanticVersion right); public static bool operator <=(SemanticVersion left, SemanticVersion right); public static bool operator >(SemanticVersion left, SemanticVersion right); public static bool operator >=(SemanticVersion left, SemanticVersion right); public static bool operator ==(Version left, SemanticVersion right); public static bool operator !=(Version left, SemanticVersion right); public static bool operator <(Version left, SemanticVersion right); public static bool operator <=(Version left, SemanticVersion right); public static bool operator >(Version left, SemanticVersion right); public static bool operator >=(Version left, SemanticVersion right); public static explicit operator SemanticVersion(Version version); public static bool operator ==(SemanticVersion left, Version right); public static bool operator !=(SemanticVersion left, Version right); public static bool operator <(SemanticVersion left, Version right); public static bool operator <=(SemanticVersion left, Version right); public static bool operator >(SemanticVersion left, Version right); public static bool operator >=(SemanticVersion left, Version right); } } ```" +13527 area-System.Net Make HttpClient on Unix treat SslProtocols.None as meaning system defaults Per discussion at https://github.com/dotnet/corefx/pull/13075#discussion_r85246226. Prior to this change, specifying SslProtocols.None for HttpClientHandler.SslProtocols meant that the default hardcoded into System.Net.Http should be used. This changes it to mean the underlying system's default, i.e. that of libcurl and OpenSSL on Unix. cc: @bartonjs, @cipop, @davidsh +13529 area-System.IO Improve File.Replace implementation on Unix Bring the behavior closer to the Windows implementation. cc: @ianhays, @JeremyKuhne, @binki Fixes https://github.com/dotnet/corefx/issues/10583 +13530 area-System.Linq Filling out missing members of System.Linq.Expressions namespace Fixes #13483 #13332 Filling out missing members of System.Linq.Expressions namespace. +13531 area-Infrastructure Updating CoreFx dependencies to stable +13533 area-Infrastructure Update buildtools to 1.0.27-prerelease-01010-02 "This includes a change that lets us auto-detect a default test runtime. This means that when you build on platforms outside of windows, you no longer need to pass `/p:testnugetruntimeid=`. The value will be automatically detected based on the runtime of your build tools. * Removed the default values for `TestNugetRuntimeId` from dir.props * Use ""System.Net.Mail"" in the test-runtime project, rather than the old name ""System.Net.Mime"". * Remove the explicit project.json from the System.Net.Mail functional tests. The latter two changes were needed to avoid a break in the System.Net.Mail test project." +13534 area-System.ComponentModel Matching AsyncCompletedEvent.RaiseExceptionIfNecessary with Full Framework Fixes #13482 Fixes #13418 cc @danmosemsft @joperezr @weshaggard @stephentoub +13535 area-Meta Add an API to determine whether the current environment supports JIT vs is native There is no way to determine whether the current environment is a JIT one or a .NET Native one. Please add a way to discover this information at runtime so libraries and applications can enable or disable using features like IL emit which required a JIT environment. // cc @terrajobst +13536 area-Serialization Made test verify CreateMtomReaderWriter throw PNSE. Fix #12840. /cc: @huanwu @zhenlan +13538 area-System.Runtime Memory statistics and portable interop. Is there a way to get free memory statistics? I am interested in getting for example free pages available to know if my app should cache more things in memory or not. Up until now, with mono I did detect the OS info and based on that I did custom inter op for each supported system. This had the nice property that I need to release only one binary and only one tool chain to maintain. For not the only solution I see in .NetCore's current state, is to write a custom library in C with a version for each type of supported OS and than make a custom build for each OS. I feel this is a common problem that will be duplicated many times. And having the option to have a c# library that adapts to the os is a nice solution for simple problems as it does not require to set up a compile chain for each supported OS. So incorporating that mechanism in the CLR would be nice. +13539 area-System.Net Test failure: System.Net.Sockets.Tests.Shutdown/Shutdown_TCP_CLOSED_Success Opened on behalf of @jiangzeng The test `System.Net.Sockets.Tests.Shutdown/Shutdown_TCP_CLOSED_Success` has failed. System.Net.Sockets.SocketException : An existing connection was forcibly closed by the remote host Stack Trace: at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.Socket.Receive(Byte[] buffer) at System.Net.Sockets.Tests.Shutdown.Shutdown_TCP_CLOSED_Success() Build : Master - 20161109.02 (Core Tests) Failing configurations: - Windows.81.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161109.02/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.Shutdown~2FShutdown_TCP_CLOSED_Success +13540 area-System.Linq Code improvements in System.Linq.Queryable Some cutting out paths or otherwise giving a practical improvement, some just style. **Improvements first**: Remove method calls where value is unused. Remove explicit array on params calls. In most cases this results in picking a lighter overload. Remove unnecessary volatility. If racing threads compete on reading or writing s_seqMethods the result either way is they use a valid lookup correctly. Avoid the cost of volatile reads subsequently. Make init-only fields readonly and static-only class static. Null-propagate. Cache enumerable likely to be enumerated twice in a list. **More stylistic than impacting**: Remove redundant this. Remove redundant class name on static. Name type parameter according to convention (and interface implemented) Remove redundant cast. Simple properties to expression bodies. Remove redundant interface supertypes Remove redundant name in anonymous. +13541 area-System.Linq RuntimeOps.Expando* methods missing? "We have code like this: ```csharp typeof(RuntimeOps).GetMethod(""ExpandoTryDeleteValue"") ``` in `ExpandoObject.cs` in `System.Linq.Expressions`, but these methods do not exist." +13543 area-Infrastructure [ARM/CI] Fix arm32_ci_script.sh for hardfp Related Issue: #12545 +13544 area-System.Data Strongly-typed database schema API that doesn't rely on DataTable The current API to expose database schema is `DbConnection.GetSchema()`. This has some disadvantages: * Reliance on DataTable * A weakly-typed API. Aside from being less usable, this promotes less uniformity across providers as different weakly-typed properties can be populated. A modern, strongly-typed *resultset* schema API has already been added - `DbDataReader.GetColumnSchema()` effectively replaces `DbDataReader.GetSchema()` which suffers from the same shortcomings as `DbConnection.GetSchema()`. See #5024 for previous discussion. +13549 area-System.Security Add more DSA tests * Adds static verify tests for the two smallest FIPS 186-2 keysizes (512, 576). * Adds KeySize verification tests for 512, 576, 1024, and 2048-bit keys. cc: @steveharter +13550 area-Meta Failed to cross build for ARM32 Problem updated to https://github.com/dotnet/corefx/issues/13550#issuecomment-261781800 ## OLD problem (solved) Successfully built coreclr. Failed with corefx. Specific problem with : info : OK https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-core/nuget/v3/flatcontainer/system.threading.tasks.parallel/index.json 393ms info : GET https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-core/nuget/v3/flatcontainer/system.threading.tasks.parallel/4.0.1-rc3-24128-00/system.threading.tasks.parallel.4.0.1-rc3-24128-00.nup kg info : An error was encountered when fetching 'GET https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-buildtools/nuget/v3/flatcontainer/system.runtime/index.json'. The request will now be retried. info : An error occurred while sending the request. info : SSL connect error log : Retrying 'FindPackagesByIdAsync' for source 'https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-buildtools/nuget/v3/flatcontainer/system.threading.threadpool/index.json'. log : An error occurred while sending the request. log : SSL connect error info : GET https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-buildtools/nuget/v3/flatcontainer/system.threading.threadpool/index.json error: Failed to retrieve information from remote source 'https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-core/nuget/v3/flatcontainer/system.threading/index.json'. error: An error occurred while sending the request. error: SSL connect error error: Failed to retrieve information from remote source 'https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-core/nuget/v3/flatcontainer/system.threading/index.json'. error: An error occurred while sending the request. error: SSL connect error log : Retrying 'FindPackagesByIdAsync' for source 'https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-buildtools/nuget/v3/flatcontainer/system.reflection.extensions/index.json'. log : An error occurred while sending the request. log : SSL connect error info : GET https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-buildtools/nuget/v3/flatcontainer/system.reflection.extensions/index.json On ubuntu 16.04 x64. cross build for arm32. +13551 area-System.Net HttpClient slow performance on windows and linux "Hi guys, I've noticed that httpclient is performing very slow in dotnet core comparing to golang for example. For tests I've used VM with 16 virtual cores, and 24Gb of ram based on Intel Xeon E312 2.6Mgz Tried windows server 2012 and centos 7.2 Code is super simple (you may find it in attached file). And my test was made via ""wrk -c 256 -t 32 http://:5000/ --latency"" Results are very upset. On this powerful VM dotnet core httpclient performance was about 16 000 reqs/sec on windows and 12 000 reqs/sec on linux. At the same time solution based on ""golang"" (check attacked file) shows results like 44 000 reqs/sec Could you please advice what could be wrong with donet core based solution ? Thank you [goproxy.zip](https://github.com/dotnet/corefx/files/583402/goproxy.zip) [Program.zip](https://github.com/dotnet/corefx/files/583403/Program.zip) " +13552 area-System.Linq Misc. minor code improvements to System.Linq.Expressions * Removing unwarranted uses of `var` * Removing unnecessary namespace qualifications in type names * Removing some more unused usings * Fixing some comments CC @stephentoub +13553 area-Meta Use safe arithmetic for memory allocation in Unix shims There are a handful of places in the corefx shims where we use malloc with the result of some arithmetic operation. This PR fixes those to ensure we're not overflowing. Where I could, I simply switched to using new to allocate an array, letting the compiler handle any overflows. For the rest of the cases, I added two helpers, multiply_s and add_s, that are used to do the operations safely. Where possible, these are implemented using __builtin_mul_overflow and __builtin_add_overflow. For when we're using too old a version of clang/gcc to have those, I've copied over coreclr's ClrSafeInt (with minimal changes to get it to compile, e.g. using static_cast instead of C-style casts) and use that... I kept the original copy and the changes to the copy in separate commits to make it easy to see the diff from coreclr. cc: @jkotas, @bartonjs Fixes https://github.com/dotnet/corefx/issues/13385 +13554 area-System.Linq System dynamic tests Starting the ball rolling on this section of the code. Tests for the default behavior of DynamicObject before overridden. Tests for BindingRestrictions. +13555 area-System.Reflection Missing stragglers from System.Reflection These are still missing from System.Reflection ``` public sealed class AssemblyName : ICloneable, IDeserializationCallback, ISerializable { public string EscapedCodeBase { get; } } public abstract class MethodBase : MemberInfo { public virtual bool IsSecuritySafeCritical { get; } } public abstract class Module : ICustomAttributeProvider, ISerializable { public virtual X509Certificate GetSignerCertificate(); } public class StrongNameKeyPair : IDeserializationCallback, ISerializable { public StrongNameKeyPair(FileStream keyPairFile); } ``` +13556 area-System.Runtime Environment is missing SystemDirectory It seems to be in the implementation so it just needs exposing ``` public static class Environment { public static string SystemDirectory { get; } } ``` +13558 area-System.Security ServiceNameCollection does not impl ReadOnlyCollectionBase ``` public class ServiceNameCollection : ReadOnlyCollectionBaseICollection, IEnumerable { } ``` +13559 area-System.Security Missing ExtendedProtectionPolicyTypeConverter ExtendedProtectionPolicyTypeConverter is missing. ``` public class ExtendedProtectionPolicyTypeConverter : TypeConverter { public ExtendedProtectionPolicyTypeConverter(); public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType); public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType); } ``` +13560 area-System.Diagnostics Implement HandleCount on Unix systems HandleCount is implemented on Linux by doing an on-demand enumeration of /proc/pid/fd. On OSX it is done by enumerating /dev/fd which is equivalent to /proc/self/fd. The HandleCount test is also enabled for all platforms. I went back and forth on whether to add caching to the directory enumeration. Adding it would more closely mirror the Windows behavior, but since we're getting the HandleCount on-demand anyways I'm not certain it's worthwhile. resolves https://github.com/dotnet/corefx/issues/12793 @stephentoub +13561 area-System.Linq Use cached reflection for Queryable methods Generated `CachedReflectionInfo` to cache `MethodInfo` objects representing `Queryable` methods for use by these methods to construct expression trees. Prior to .NET Core, the construction of expression trees was using `MethodBase.GetCurrentMethod` to obtain the open generic method representing the containing method whose call's expression representation was being built. At some point, `GetCurrentMethod` was substituted for an `infoof` based approach using an expression tree to obtain the `MethodInfo` (see removed code in this PR). This causes allocation of an expression tree (with a ton of runtime checks) for every call to a `Queryable` method only to get the `MethodInfo` instance to use in the resulting expression tree. All we really need is a `ldftn` instruction. This PR replaces this approach by introducing a `CachedReflectionInfo` class containing static properties and methods to obtain (closed generic) `MethodInfo` instances for the `Queryable` methods. The (open generic) `MethodInfo` instances are cached in static fields. This is very similar to the technique we use in `System.Linq.Expressions` to cache reflection objects. The means to obtain the `MethodInfo` is using a method group conversion to a `Delegate` and a call to `GetMethodInfo` (instead of being expression based). The `CachedReflectionInfo` type was generated using a T4 template. We could check that in if we want, but we don't have an precedent for doing that AFAIK. CC @JonHanna, @stephentoub +13562 area-System.Memory Portable (and thus slower) version of Span<> - Holding off on ReadOnlySpan<> until we're happy with Span so I don't have keep making fixes in two places. - Not too happy with the hoops DangerousGetPinnedReference has to go through: we are looking at an alternative that involves adding two new Unsafe apis: https://github.com/dotnet/corefx/issues/13426 I'll have to do some benchmarking to see which one's faster, though. In the meantime, there's plenty to review that won't be affected by that. +13563 area-System.IO Add Replace methods to System.IO.FileInfo Fixes #13490 cc @danmosemsft @joperezr @stephentoub +13564 area-Meta Fix warnings Fixes warnings and removes a few ToDos. @stephentoub @JeremyKuhne @weshaggard +13565 area-Infrastructure Add facades This adds the building of netstandard.dll facade as well as the net461 set of shim facades along with some APICompat checks. To accomplish this we are dependent on a flat layout that we can use for seeds so we are going to use the layout that we currently produce for indexing. The APICompat check is split between net461 and netstandard20 which will allow us to more easily track the remaining work for netstandard20. This PR also cleans up the older compat refs and src projects that we aren't going to use any longer. cc @ericstj @joperezr +13566 area-System.Runtime System.Runtime.InteropServices.RuntimeInformation fails when running on full .NET on Win7 The library PInvokes into an api-set which isn't present on Win7 and so when running on .NET Framework there it throws the following exception. ``` Unhandled Exception: System.TypeInitializationException: The type initializer fo r 'Microsoft.VisualStudio.TestPlatform.ObjectModel.Constants' threw an exception . ---> System.DllNotFoundException: Unable to load DLL 'api-ms-win-core-sysinfo- l1-2-0.dll': The specified module could not be found. (Exception from HRESULT: 0 x8007007E) at Interop.mincore.GetNativeSystemInfo(SYSTEM_INFO& lpSystemInfo) at System.Runtime.InteropServices.RuntimeInformation.get_OSArchitecture() at Microsoft.VisualStudio.TestPlatform.ObjectModel.Utilities.XmlRunSettingsUt ilities.get_OSArchitecture() at Microsoft.VisualStudio.TestPlatform.ObjectModel.Constants..cctor() --- End of inner exception stack trace --- at Microsoft.VisualStudio.TestPlatform.CommandLine.Processors.Utilities.RunSe ttingsUtilities.GetEffectiveRunSettings(String runSettings, CommandLineOptions c ommandLineOptions) at Microsoft.VisualStudio.TestPlatform.CommandLine.Processors.Utilities.RunSe ttingsUtilities.GetRunSettings(IRunSettingsProvider runSettingsProvider, Command LineOptions commandlineOptions) at Microsoft.VisualStudio.TestPlatform.CommandLine.Processors.RunTestsArgumen tExecutor.RunTests(IEnumerable`1 sources) at Microsoft.VisualStudio.TestPlatform.CommandLine.Processors.RunTestsArgumen tExecutor.Execute() at Microsoft.VisualStudio.TestPlatform.CommandLine.Executor.ExecuteArgumentPr ocessor(IArgumentProcessor processor, Int32& exitCode) at Microsoft.VisualStudio.TestPlatform.CommandLine.Executor.Execute(String[] args) at Microsoft.VisualStudio.TestPlatform.CommandLine.Program.Main(String[] args ) ``` To workaround people can deploy api-ms-win-core-sysinfo- l1-2-0.dll with their application similar to https://github.com/dotnet/corefx/issues/8091#issuecomment-225641743. My expectation is that this should no longer be an issue once @JohnChen0 finishes his work to move us off api-sets. +13567 area-System.Net Add baseclass to ServiceNameCollection Fixes https://github.com/dotnet/corefx/issues/13558 @stephentoub @joperezr +13568 area-System.Numerics System.Numerics.BigInteger causes StackOverflowException ![Screenshot](http://archive.org/download/Fsharp-StackOverflowException/fsi.png) The F# code first defines a custom power function, then tetration function based on it and then two operators so I don't have to type 'I' next to every number I want to work with and hide the superfluous BigInteger members from the console. It worked fine for 3rd tetration of 4 [4 ^ (4 ^ 4) = 4 ^ 256] and returned over 150 digits, but something went wrong on calculating the **5th tetration of 2**, which **is supposed to be almost 20,000 digits**, btw; the program crashes before bigint value gets close to what float can handle (~310 digits), let alone 20,000 digits. What am I missing? ``` let rec exponentiation (x:bigint) (y:bigint) : bigint = match y with | y when y.IsZero -> 1I | y when y.IsOne -> x | y -> x * exponentiation x (y-1I) let rec tetration (x:bigint) (y:bigint) : bigint = match y with | y when y.IsZero -> 1I | y when y.IsOne -> x | y -> exponentiation x (tetration x (y-1I)) let (^) (x:int) (y:int) = System.Console.WriteLine (exponentiation (bigint x) (bigint y)) let (^^) (x:int) (y:int) = System.Console.WriteLine (tetration (bigint x) (bigint y)) ``` I've been dabbling with F# lately, it's the only programming language I am familiar with. I know an unhelpful smattering of JavaScript, and remember a couple of keywords from C# that I tried years ago for a few days on Unity (yeah, absolutely no .NET knowledge) * Windows 10 for Education x64 * .NET Framework 4.5.1 * Visual F# 4.0 * Visual Studio Code 1.7 with Ionide suite of extensions +13569 area-System.Threading Build System.Threading.Thread package for uap101aot target. "@kouvel @SedarG Enable building the System.Threading.Thread package for uap101aot target. Put APIs currently missing in ProjectN under ""#if !NETNATIVE"". This change needs to pick up a new System.Private.Corelib build tomorrow. " +13570 area-System.Net Move the WebSockets implementation from HttpListener to System.Net.WebSockets To allow usage of the implementation in other contracts we would also need to expose a public API similar to: https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/ManagedWebSocket.cs#L37-L41 +13571 area-System.Linq Reintroduce the use of MethodBase.GetCurrentMethod in Queryable For constructing expression trees. +13572 area-Meta Disabling some Numerics and Math tests when running in x86 cc: @stephentoub @danmosemsft @weshaggard Progress towards #13448 I ran a local test run using x86 as the build architecture and some Numerics and Math tests fail(which is expected). With this PR I'm disabling them for x86 runs so that we can have a green x86 run which I'll soon add to the pipebuilds and probably a CI as well. +13573 area-System.Security Use Apple SecurityTransforms for RSA, DSA, and ECDSA on macOS. With this change the System.Security.Cryptography.Algorithms library has no direct dependency on OpenSSL (it has an indirect one from OID lookup via the S.S.C.Encoding library). Observable changes: * The test library runs in ~1.7 seconds before this change, ~30 seconds (up to 48) after. * The tests complete in ~1.2 seconds when all key generation is disabled. * ~21 seconds with ECDSA enabled (26 tests), RSA disabled * ~10 seconds with RSA enabled (13 tests), ECDSA disabled * Ephemeral key generation populates the keychain, this is not desired, so has been disabled pending a workaround. * DSA key generation is not possible via Apple's libraries. * DSA is limited to FIPS 186-2 behaviors, a loss of functionality. * ECDSA only supports the 3 main NIST curves (256, 384, 521). * ECDSA explicit import/export is no longer possible. cc: @steveharter @stephentoub +13574 area-System.Net Skip Loopback while enumerating Host Entry Ubunut-like system may have loopback ip in /etc/hosts, which leads to test failure discussed at #13464. This commit exclude loopback entry for ``System.Net.Tests.WebProxyTest.BypassOnLocal_MatchesExpected`` in order to fix #13464. +13575 area-System.Linq Consistently using extension method syntax for Type extensions in System.Linq.Expressions We've been rather inconsistent in the use of static method versus extension method invocation syntax when using methods on `TypeUtils` (unlike those on `TypeExtensions` which we always call as extension methods). Especially after the merge with the `System.Dynamic.Runtime` code it seems we can reconcile some of these extension methods and do away with this artificial split across files. As a first step, I'm removing a lot of `TypeUtils.*` static method invocation syntax in favor of extension method invocation syntax. Besides improving readability of the code in various places, it also allows us to move these extension methods to more appropriate places down the line. Note: Besides a few cosmetic changes that caught my eye, most of these changes were done using a Roslyn code fix provider. CC @stephentoub +13576 area-System.Runtime Add Environment.SystemDirectory Fixes #13556 +13578 area-System.Linq Reducing copying of variables collection passed to Block factories We're calling the `Block` factory method taking an `IEnumerable` in various places with an array whose ownership can be transferred. The `Block` factory uses `ToReadOnly` though, causing a copy of the array to be made. This PR allocates `TrueReadOnlyCollection` to pass the variables collections and thus avoid a copy being made by `ToReadOnly`. CC @stephentoub +13580 area-System.Linq Remove unused resource strings from PLINQ The strings are unlikely to be used at all. There's a couple more strings out there (see #11504 ), but their status is unclear. +13581 area-Infrastructure [WIP] [ARM/CI] Test This PR is only for ARM-CI test, I'll close this when the test is done. +13582 area-Infrastructure [ARM/CI] Enable arm prtests which can be run manually. These PRtests would not run automatically. +13583 area-System.Drawing Please add System.Drawing.StringAlignment to System.Drawing.Primitives Using this for alignment of objects inside a rectangle. -Thomas +13586 area-System.Threading Single Worker thread, single I/O thread Hey guys, I have been working on a project that involves async/await a lot. And with the multiple worker threads and I/O thread, the order at which operations happen are pretty much mangled together, and things just go wrong all the time. Because of this too, it's really hard to debug what's happening. I'm looking for a way to **limit both the Worker and I/O threads** to both be just 1. I need this, because it's easier this way to maintain the application, easier to reason about and debug, and save a number of threads along the way. Admittedly, I reasoned wrong with the .Net Core's async/await, which is mostly always single-threaded in other languages; so, I assumed it would also be single-threaded on .Net, but I guess I assumed completely wrong, my bad. But it's been a bad surprise for me to realize that worker threads are used by C# to make async/await happen. Now, unless things are not causing races, the project is useless now. Please suggest what do I do to make it single-threaded. Thanks +13589 area-System.Net HttpClient allocates a lot of objects "This simple console app makes 1000 calls to GetStringAsync to download the page at http://httpbin.org: ```C# using System; using System.Linq; using System.Net.Http; using System.Threading.Tasks; class Program { static void Main(string[] args) { var httpClient = new HttpClient(); Task.WaitAll(Enumerable.Range(0, 1000).Select(_ => httpClient.GetStringAsync(""http://httpbin.org"")).ToArray()); } } ``` This chart shows the allocations for those 1000 iterations (so divide each number by 1000 to see the appx allocations per iteration): |Type|Allocations|Bytes| |---|---|---| |System.String|18690|25369814| |System.Threading.Tasks.Task`1|15455|1112760| |System.Threading.Tasks.TaskCompletionSource`1|11452|274848| |System.Net.Http.Headers.HttpHeaders.HeaderStoreItemInfo|7000|336000| |System.Threading.CancellationCallbackInfo|6226|298848| |System.Threading.Tasks.AwaitTaskContinuation|5222|208880| |System.Char[]|5012|1060510| |System.Action|5001|320064| |System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner|5001|120024| |System.Action`1|4236|271104| |System.Threading.Tasks.ContinuationTaskFromResultTask`1|4226|304272| |System.Net.Http.WinHttpResponseStream.<>c__DisplayClass17_0|4226|202848| |System.Threading.Tasks.StandardTaskContinuation|4226|169040| |System.Int32[]|3045|129036| |System.Collections.Generic.Dictionary`2.Entry[]|3014|388320| |System.Threading.CancellationCallbackInfo[]|2595|153224| |System.Threading.SparselyPopulatedArrayFragment`1|2595|124560| |System.Threading.SparselyPopulatedArray`1|2588|82816| |System.Collections.Generic.Dictionary`2|2010|160800| |System.Collections.Generic.List`1|2004|80160| |System.Text.StringBuilder|2003|96144| |Interop.WinHttp.SafeWinHttpHandle|2001|80040| |System.Net.Http.Headers.HttpGeneralHeaders|2000|176000| |System.Byte[]|1250|12180575| |System.String[]|1023|57880| |System.Object|1016|24384| |System.Func`1|1008|64512| |System.Threading.SparselyPopulatedArray`1[]|1001|56056| |System.Net.Http.Headers.NameValueHeaderValue[]|1001|56024| |System.Net.Http.WinHttpRequestState|1000|240000| |System.Net.Http.WinHttpHandler.d__105|1000|168000| |System.Net.Http.StreamToStreamCopy.d__2|1000|152000| |System.Net.Http.Headers.HttpRequestHeaders|1000|128000| |System.Net.Http.HttpClient.d__58|1000|120000| |System.Net.Http.Headers.HttpHeaders.d__20|1000|96000| |System.Threading.TimerQueueTimer|1000|88000| |System.Net.Http.Headers.HttpResponseHeaders|1000|88000| |System.Net.Http.HttpContent.d__48|1000|88000| |System.Net.Http.HttpClient.d__32`1|1000|80000| |System.Net.Http.StreamContent|1000|80000| |System.Net.Http.Headers.HttpContentHeaders|1000|80000| |System.Net.Http.HttpContent.LimitMemoryStream|1000|72000| |System.Uri.UriInfo|1000|72000| |System.Uri|1000|72000| |System.Threading.CancellationTokenSource.LinkedCancellationTokenSource|1000|72000| |System.Net.Http.HttpRequestMessage|1000|72000| |System.Net.Http.HttpResponseMessage|1000|64000| |System.Threading.Tasks.Task|1000|64000| |System.Net.Http.WinHttpResponseStream|1000|56000| |System.Net.Http.Headers.HttpHeaderValueCollection`1|1000|48000| |System.Threading.CancellationTokenRegistration[]|1000|48000| |System.Net.Http.Headers.ObjectCollection`1|1000|40000| |System.Net.Http.Headers.MediaTypeHeaderValue|1000|32000| |System.Net.Http.Headers.NameValueHeaderValue|1000|32000| |System.Net.Http.WinHttpTransportContext|1000|24000| |System.Threading.Timer|1000|24000| |System.Threading.TimerHolder|1000|24000| |System.Int64|1000|24000| This is on Windows. Some of these allocations are the same across platforms, others are Windows-specific. Per iteration, that's ~155 allocations for ~46K of memory. The actual downloaded data is ~12K." +13592 area-Meta Add 32-bit version of tests that were disabled PR #13572 marked a few tests to be 64-bit only, given that the assumptions they make were only meant for 64-bit runs. This workitem is to track the addition of 32-bit version of those tests. +13594 area-System.IO Expose missing NamedPipeClientStream methods Exposes the protected override of CheckPipePropertyOperations as well as the HandleInheritability constructor. Adds a basic argument test for the latter. resolves https://github.com/dotnet/corefx/issues/13337 @joperezr @AlexGhiondea @alexperovich FYI @JeremyKuhne I am removing the p2p references you added in Pipes when you moved IO down to Runtime. +13595 area-System.Linq Adding back RuntimeOps for ExpandoObject This addresses issue #13541. Missing methods were detected during `nameof` conversion of strings passed to `GetMethod`. My guess is the code was dropped because it was in a `partial` class in a different assembly. However, it left a bunch of `GetMethod` calls returning `null`. There's definitely a test gap in `ExpandoObject` because we didn't catch this. I'll open a separate issue for that. Note that these methods were already in `ref` files under `src/System.Core/ref/Compat/System.Core.cs`. Also note that the method is marked as `Obsolete` with `error` set to `true`. This is the same for all runtime helper methods to avoid users from calling them directly (so their apparent obsolete status shouldn't have been a reason to drop them). CC @stephentoub, @joperezr +13597 area-System.Linq Use GetCurrentMethod in Queryable "Building on the move to `netstandard1.7` in https://github.com/dotnet/corefx/pull/13591, superseding the ""infoof"" approach in https://github.com/dotnet/corefx/pull/13561. CC @stephentoub, @JonHanna" +13598 area-Infrastructure Running `sync -p` on a clean machine installs DNVM & adds it to PATH? I accidentally corrupted my laptop two days ago, and was forced to do a clean install of Windows and re-clone corefx. When I ran `sync -p` for the first time on a fresh clone of the repo, here is the output I got: ```cmd C:\Users\james\Code\git\corefx>sync -p Installing .NET Version Manager to C:\Users\james\.dnx\bin Creating destination folder 'C:\Users\james\.dnx\bin' ... Installing 'dnvm.ps1' to 'C:\Users\james\.dnx\bin' ... Installing 'dnvm.cmd' to 'C:\Users\james\.dnx\bin' ... Adding C:\Users\james\.dnx\bin to Process PATH Adding C:\Users\james\.dnx\bin to User PATH Adding C:\Users\james\.dnx to Process DNX_HOME Adding C:\Users\james\.dnx to User DNX_HOME Installing dotnet cli... Restoring BuildTools version 1.0.27-prerelease-01002-02... Initializing BuildTools... ``` And indeed, when I check my home directory there appears to be a newly created `.dnx` directory, which contains dnvm under a subfolder: http://imgur.com/a/LrmZt Since dnx was ditched after RC1, it looks like this should no longer be done? Why don't we skip straight to installing the dotnet cli? +13599 area-Infrastructure windows.winmd is lower-case in our Microsoft.TargetingPack.Private.WinRT package "Related: #8899 ApiCompat is unable to resolve references to the ""Windows"" assembly, because the binary in our targeting pack is lower-case. Since we created this targeting pack, we could just rename the file in it and publish a new version. In the meantime, I'm going to disable ApiCompat on the projects affected." +13601 area-Infrastructure Strong name validation is failing for certain analyzer assemblies with a fresh build. I re-cloned corefx on a clean install of Windows, ran `sync -p`, and then ran `msbuild /t:RebuildAndTest` for the System.Linq tests. That resulted in an error message from MSBuild saying that csc couldn't verify certain analyzer assemblies: [here](https://gist.github.com/jamesqo/f07b669ee436367c46baa594760a0c67) is the log. The output when I also pass in `/v:detailed` can be found [here](https://gist.github.com/jamesqo/cc6dc7bbe105818ffafb95aaa025fa96). +13604 area-System.ComponentModel Validate_ConversionOverflows_ThrowsOverflowException fails on cs-CZ culture "When running the tests for `System.ComponentModel.Annotations` on a machine with the cs-CZ culture (which uses `,` as the decimal separator), the `Validate_ConversionOverflows_ThrowsOverflowException` test fails: ``` System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests.Validate_ConversionOverflows_ThrowsOverflowExcepti on(type: typeof(double), minimum: \""1.0\"", maximum: \""2.0\"", value: \""2E+308\"") [FAIL] Assert.Throws() Failure Expected: typeof(System.OverflowException) Actual: typeof(System.FormatException): Input string was not in a correct format. Stack Trace: at System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt) at System.String.System.IConvertible.ToDouble(IFormatProvider provider) at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) Finished: System.ComponentModel.Annotations.Tests E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\Ra ngeAttribute.cs(202,0): at System.ComponentModel.DataAnnotations.RangeAttribute.<>c__DisplayClass22_0.b__2(Object value) E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\Ra ngeAttribute.cs(205,0): at System.ComponentModel.DataAnnotations.RangeAttribute.SetupConversion() E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\Ra ngeAttribute.cs(99,0): at System.ComponentModel.DataAnnotations.RangeAttribute.IsValid(Object value) E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\Va lidationAttribute.cs(389,0): at System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(Object value, Valid ationContext validationContext) E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\Va lidationAttribute.cs(433,0): at System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext) E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\Va lidationAttribute.cs(503,0): at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, Vali dationContext validationContext) E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\tests\RangeAttributeTests.cs(177,0): at Syst em.ComponentModel.DataAnnotations.Tests.RangeAttributeTests.<>c__DisplayClass9_0.b__0() System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests.Validate_ConversionOverflows_ThrowsOverflowExcepti on(type: typeof(double), minimum: \""1.0\"", maximum: \""2.0\"", value: \""-2E+308\"") [FAIL] Assert.Throws() Failure Expected: typeof(System.OverflowException) Actual: typeof(System.FormatException): Input string was not in a correct format. Stack Trace: at System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt) at System.String.System.IConvertible.ToDouble(IFormatProvider provider) at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\Ra ngeAttribute.cs(202,0): at System.ComponentModel.DataAnnotations.RangeAttribute.<>c__DisplayClass22_0.b__2(Object value) E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\Ra ngeAttribute.cs(205,0): at System.ComponentModel.DataAnnotations.RangeAttribute.SetupConversion() E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\Ra ngeAttribute.cs(99,0): at System.ComponentModel.DataAnnotations.RangeAttribute.IsValid(Object value) E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\Va lidationAttribute.cs(389,0): at System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(Object value, Valid ationContext validationContext) E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\Va lidationAttribute.cs(433,0): at System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext) E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\Va lidationAttribute.cs(503,0): at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, Vali dationContext validationContext) E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\tests\RangeAttributeTests.cs(177,0): at Syst em.ComponentModel.DataAnnotations.Tests.RangeAttributeTests.<>c__DisplayClass9_0.b__0() === TEST EXECUTION SUMMARY === E:\Users\Svick\git\corefx\Tools\tests.targets(243,5): warning : System.ComponentModel.Annotations.Tests Total: 455, Errors: 0, Failed: 2, Skipped: 0, Time: 1,357s [E:\Users\Svick\git\corefx\src\System.ComponentModel.Annotations\tests\ System.ComponentModel.Annotations.Tests.csproj] Finished running tests. End time=23:26:52,61, Exit code = 1 ```" +13606 area-Serialization "Support ""duration"" in XmlSerializer" Updated by @karelz (info from @shmao): The change needs to be ported from full .NET Framework (the bug fix there is in progress now). .NET Core change needs to address compat between Timespan and duration (might be tricky). +13607 area-System.Net HttpListener contract requires access to internal APIs from Cookie. ```c# public sealed class Cookie { internal string ToServerString() { } internal CookieVariant Variant { get; } } ``` The code is using reflection to get to these values short time, we need alternate solution. +13608 area-System.Security Add missing Clear() to some Crypto primitives Fixes https://github.com/dotnet/corefx/issues/11132 @steveharter +13610 area-System.Net Reconsider port to core approach for System.Net.HttpListener See discussion below at: System.Net.HttpListener #13502 +13612 area-System.Security Add ProduceLegacyHmacValues Fix https://github.com/dotnet/corefx/issues/12364 @steveharter @bartonjs +13613 area-System.Net DNS client and custom DNS queries Hi, I was looking for this for some time now and it seems either the feature is hiding pretty well or is missing. System.Net has basic name resolution and network information now. But what about a DNS client which can query any kind of DNS server? I'm currently trying to implement services with the new aspnet core stack. One common scenario with Microservices is service discovery. And one common solution for this is to use DNS. An example would be to query the consul DNS endpoint for service discovery. And this is not really easily doable today. There are certain implementations available for the .NET world, but those are pretty basic and mostly not maintained repositories and/or they are not supporting netstandart. Are there any plans to add something like that? Or, if I'm just missing something, any hint? Thanks a lot! +13614 area-System.Security Add missing RSA members Fixes https://github.com/dotnet/corefx/issues/12366 @bartonjs @steveharter +13618 area-System.Net Add more test coverage for System.Net.HttpListener. +13619 area-Infrastructure Full framework test csproj referencing netstandard csproj using HttpClient fails at runtime I have a net461 test project that uses a netstandard 1.3 csproj. The netstandard project uses HttpClient. When I run the tests, some with HTTP gets and some with HTTPS, they fail with this: ``` System.IO.FileLoadException : Could not load file or assembly 'System.Security.Cryptography.X509Certificates, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) at System.Net.Http.WinHttpHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpClientHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken) at System.Net.Http.HttpClient.GetAsync(Uri requestUri, HttpCompletionOption completionOption, CancellationToken cancellationToken) ``` What can I do about this? There are no warnings or other hints to point me in any direction, and Google searches have left me more confused than ever. Windows 10 x64 AU Microsoft Visual Studio Professional 2015 Version 14.0.25431.01 Update 3 Microsoft .NET Framework Version 4.6.01586 Microsoft .NET Core Tools (Preview 2) 14.1.20907.0 Don't know if this matters, dotnet: Version : 1.0.1 Build : cee57bf6c981237d80aa1631cfe83cb9ba329f12 +13622 area-System.Net Creating a Uri also allocates a string and a char[] "Constructing a Uri has a couple of allocations should that should be easily avoidable, at least in common cases. Here's a profile of an app that just does this a thousand times: ```new Uri(""http://test.com"")```: ![image](https://cloud.githubusercontent.com/assets/2642209/20239952/96b6b7bc-a8da-11e6-8b98-45fed7685072.png) As can be seen, in addition to the 1000 Uri allocations, there are also 1000 string allocations and 1000 char[] allocations. The string allocations are coming from https://github.com/dotnet/corefx/blob/9eaf364b8ca8180bace20aab188b1efe6a55835f/src/System.Private.Uri/src/System/Uri.cs#L3933 , where a string is being allocated purely to look up the value in a dictionary. We should be able to avoid that for common schemes by just comparing the data for common schemes (e.g. http, https, ws, wss, etc.) and getting the syntax object directly. In fact, it looks like this may already be done on 32-bit, just not on 64-bit: https://github.com/dotnet/corefx/blob/9eaf364b8ca8180bace20aab188b1efe6a55835f/src/System.Private.Uri/src/System/Uri.cs#L3639 . The char allocations are coming from https://github.com/dotnet/corefx/blob/2117bae3a6c9736033e6d1659821ff3a1069920b/src/System.Private.Uri/src/System/UriExt.cs#L195 , where the CheckForUnicode function is allocating a char array (at least one) in which to unescape the string data, then check to see if any of the characters are out of ASCII range. There are various ways this allocation could be avoided, e.g. at the expense of a pass through the string, checking to see whether anything needs unescaping, and only falling through to the allocation and the rest of the method if it does." +13624 area-System.Reflection HandleCollections should have an indexer I have a use case where I need to index into methods and fields on a `TypeDefinition`. `FieldDefinitionHandleCollection` and `MethodDefinitionHandleCollection` don't have an indexer, so the only option seems to be to get an enumerator and call `GetNext()` method *N* times to get *N*th member. `GenericParameterHandleCollection` or `GenericParameterConstraintHandleCollection` already have an indexer. This seems like an API inconsistency. Unless there's a particular reason why the other `HandleCollections` can't have it, the indexer should be added to all of them. We can make them implement `IReadOnlyList` while we're at it too. +13625 area-System.Collections Performance improvements in System.Collections.Generic.Dictionary Use local variable with size/length of buckets array in cleaning. I wrote simple test for for when i use local variable vs length with BenchmarkDotNet. Local variable is about 30-50% faster. This optimization is applying in Initialize and Resize. In this method is size already in local variable. It should be applying in Clear but here it must first assign to local variable and it's add one extra variable on stack. Second optimization is applying in Insert method where i reduce one local variable via reusing. +13628 area-System.Linq Recognize Skip/Take chains on lazy sequences. I added a new `EnumerablePartition` class that lets us now recognize patterns like `Take.Skip`, or vice versa, for lazy sequences. We also remove a layer of indirection from some common operations following these methods, e.g. `Take.ToArray`, `Skip.ToArray`, etc. Perf results can be found [here](https://gist.github.com/jamesqo/07eb6b38d69431d7270900e3a7519c32); test code [here](https://github.com/jamesqo/Dotnet/blob/502e3c302575d04824e7337bec4d635abc8dc548/Program.cs). There is a ~20% speedup that results from removing an indirection layer from the chain. cc @JonHanna, @VSadov, @stephentoub +13629 area-System.Linq BindingRestrictions Performance Improvements Replace set contains-and-add with add-and-check-result. Get already-contained expression instead of creating another. Null-propagate. Hash starting points that will affect more bits. Calculated restriction merging only when starting with merged restriction, allow others to pass expression immediately. In merging restrictions, don't push into stack only to immediately pop again. The code affected by this is covered in the tests in #13554 so will be safer to include after those. cc @stephentoub @bartdesmet +13630 area-System.Linq ExpandoObject key and value collections are too agressive with version checking. "Consider: ```C# IDictionary dict = new Dictionary(); var keys = dict.Keys; dict[""x""] = 1; Console.WriteLine(keys.Contains(""x"")); // True string[] array = new string[1]; keys.CopyTo(array, 0); // array now {""x""} Console.WriteLine(keys.Count); // 1 ``` However if `dict` is set to `= new ExpandoObject();` then the three commented lines error. The collection versioning used to throw on continuing an enumeration after modification is blocking these calls too. The same is also true of the `Values` collection." +13631 area-System.Net Reduce allocations in HttpClient "Weekend project... This PR significantly reduces the number and size of allocations in HttpClient. Some of the changes are in HttpClient itself, and thus apply to any handler/platform, while some are specific to the Windows implementation. Analysis of the following program was used to drive the changes. It simply downloads the contents of httpbin.org, dumping it to a null stream, 1000 times: ```C# using System; using System.IO; using System.Linq; using System.Net.Http; using System.Threading; using System.Threading.Tasks; class Program { static void Main() { var client = new HttpClient() { Timeout = Timeout.InfiniteTimeSpan }; var uri = new Uri(""http://httpbin.org""); Task.WaitAll(Enumerable.Range(0, 1000).Select(async _ => { using (Stream responseStream = await client.GetStreamAsync(uri)) { await responseStream.CopyToAsync(Stream.Null); } }).ToArray()); } } ``` Before these changes, these allocations show up (divide each line by 1000 to get the appx per iteration count): ![image](https://cloud.githubusercontent.com/assets/2642209/20248813/c3e13a5c-a9b9-11e6-987d-7ce6759811a5.png) That's ~127 allocations and ~8518 bytes per iteration. After these changes, these allocations show up: ![image](https://cloud.githubusercontent.com/assets/2642209/20248823/db254532-a9b9-11e6-9fc6-ad150bfb4cd0.png) That's ~60 allocations and ~4449 bytes per iteration. For this particular scenario then, this represents an ~50% reduction in both number and size of allocations. Other scenarios will benefit from many of these changes, but will also have their own additional allocations that can likely be reduced. I've kept the changes isolated in their own commits. The commit descriptions provide more details, but the main changes: - Added more headers to the HttpKnownHeaderNames table. Even for a basic site like httpbin.org, there were headers coming back that are commonly used but weren't in our table. The table now contains all of the response entries that kestrel has in its similar optimization as well as some additional headers listed as common response headers on wikipedia. - Significantly reduce the number of tasks and task completion sources used in WinHttpHandler. Every stage of its lifecycle was represented with its own TCS/Task. Instead, I added a common ""RendezvousAwaitable"", a reusable awaitable object that can be produced to via SetResult/SetException/SetCanceled just like TaskCompletionSource and can be awaited to consume the results, but which can be allocated once and reused any number of times (this is something I we may want to consider exposing publicly from the BCL at some point; it's quite handy and helpful). I then use that throughout WinHttpHandler, cutting back on the number of tasks used and on the size of the state object used to hold them. As part of this, I added a CopyToAsync implementation to WinHttpResponseStream; we can subsequently do something similar for the CurlResponseStream (that one should be easier, too, as libcurl is already a push-based model, which maps nicely to CopyToAsync). - Optimized common cases (often via lazy-initialization) where allocations were being done for empty cases, e.g. allocating an enumerator when there weren't any headers to enumerate, allocating cookie-related state when there weren't any cookies, allocating a TransportContext object even when it wouldn't be needed, etc. - Avoiding allocating a CancellationTokenSource per request when the user didn't provide a CancellationToken and when no timeout is set. This helps avoid not only the CTS allocation itself, but also the state within the CTS that's allocated on first use. - Removing unnecessary allocations, like a lock object used per state object, when the state object itself can be used for locking. - Using a buffer from ArrayPool to avoid allocating a new char[] to store all of the response headers - Avoiding the need for allocating a ReadOnlyStream to wrap the WinHttpResponseStream, which is already read-only. - Reducing the sizes of async state machines by being a bit more thoughtful about what locals will end up getting promoted to fields in the state machine. - Avoiding async state machine objects altogether for simple cases where a ContinueWith is sufficient and less expensive. Etc. Contributes to #13589 cc: @davidsh, @cipop, @geoffkizer, @benaadams" +13633 area-System.Linq Range check incorrectly located in ExpandoObject The sequence: ```C# ContractUtils.RequiresArrayRange(array, arrayIndex, _count, nameof(arrayIndex), nameof(ICollection>.Count)); // We want this to be atomic and not throw lock (LockObject) { ``` Means that potentially the range-check could pass, then a change which invalidates it take place before the lock is obtained. +13636 area-System.Net "Test failure: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/GetAsync_UnsupportedSSLVersion_Throws(name: \""SSLv3\"", url: \""https://www.ssllabs.com:10300/\"")" "Opened on behalf of @jiangzeng The test `System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/GetAsync_UnsupportedSSLVersion_Throws(name: \""SSLv3\"", url: \""https://www.ssllabs.com:10300/\"")` has failed. Assert.Throws() Failure Expected: typeof(System.Net.Http.HttpRequestException) Actual: (No exception was thrown) Stack Trace: --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20161112.02 (Core Tests) Failing configurations: - Redhat.72.Amd64 - AnyCPU-Debug - AnyCPU-Release - Centos.71.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161112.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test~2FGetAsync_UnsupportedSSLVersion_Throws(name:%20%5C%22SSLv3%5C%22,%20url:%20%5C%22https:~2F~2Fwww.ssllabs.com:10300~2F%5C%22)" +13637 area-System.Net Test failure: System.Net.Security.Tests.SslStreamSystemDefaultTest/SslStream_DefaultTlsConfigurationApm_Ok Opened on behalf of @jiangzeng The test `System.Net.Security.Tests.SslStreamSystemDefaultTest/SslStream_DefaultTlsConfigurationApm_Ok` has failed. System.Security.Authentication.AuthenticationException : The remote certificate is invalid according to the validation procedure. Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.WriteCallback(IAsyncResult transportResult) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Security.Tests.SslStreamSystemDefaultTest.TestBase.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Security.Tests.SslStreamSystemDefaultTest.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20161112.02 (Core Tests) Failing configurations: - Windows.7.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: SslStream_DefaultTlsConfigurationApm_Ok SslStream_DefaultTlsConfigurationAsync_Ok SslStream_DefaultTlsConfigurationSync_Ok Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161112.02/workItem/System.Net.Security.Tests +13639 area-System.Runtime Fast append or insert StringBuilder into other StringBuilder Hello, I think for fast strings processing, StringBuilder should have fast methods to append and insert other StringBuilder. Now when I gather string from many parts, I gather each part into separated StrindBuilder (for example in different threads for speed) and then when I gather all parts to one StringBuilder, the standard library made many copy operations to convert each StringBuilder to string and then to copy each string to StringBuilder chunks. It is bad because after each part is appended to final StringBuilder, it is no longer used or changed, it is just collected by garbage. So it would be great just append chunks from one StringBulder to other without copy them two times. So to fast append second StringBuilder to first StringBuilder, it can just append chunks from second to first. After that it can set CopyOnChange flag in common chunks of first and second StringBuilders. Later if CopyOnChange chunk should be changed (very rare unusual case) it should be duplicated before changing. +13640 area-Infrastructure [ARM/Linux] Error during cross building for arm32 "Build environment: x64 Ubuntu 14.04 Build target: arm32 commit: ece35f9 Build option: release, skiptests, enable outloop error log in msbuild.log ``` 1266>/nfs/rbp3/corefx/layout/layout.proj(74,5): error MSB3030: Could not copy the file ""/nfs/rbp3/corefx/bin/Windows_NT.x64.Release/Native_aot/clrcompression.dll"" because it was not found. ..... ""/nfs/rbp3/corefx/build.proj"" (default target) (1) -> ""/nfs/rbp3/corefx/layout/dir.proj"" (Build target) (1263) -> ""/nfs/rbp3/corefx/layout/layout.proj"" (Build target) (1266) -> (GetAssetsFromReports target) -> /nfs/rbp3/corefx/layout/layout.proj(74,5): error MSB3030: Could not copy the file ""/nfs/rbp3/corefx/bin/Windows_NT.x64.Release/Native_aot/clrcompression.dll"" because it was not found. 10 Warning(s) 1 Error(s) ``` I've get error, but can use build results in corefx/bin directory. " +13643 area-System.Net Special-case known schemes in Uri.CheckSchemeSyntax The 32-bit special-casing is already handled by CheckKnownSchemes. On 64-bit, without this we end up allocating a string for the scheme and doing a dictionary lookup; instead, we can special-case the common schemes to avoid that allocation and lookup. (With a small tweak to the existing tests, this new code has 100% line and branch coverage.) Contributes to https://github.com/dotnet/corefx/issues/13622 cc: @cipop, @davidsh, @geoffkizer +13644 area-System.Net Rewrite Uri.CheckForUnicode to improve throughput and reduce allocations "Constructing Uri from a string calls CheckForUnicode, and every call to this is allocating a new char[], unencoding the string into that array, and then iterating through the array looking for non-ASCII chars. We can simplify all of that to avoid needing to store the results into the destination. This avoids the allocation, the copy, and a second iteration through the results. It also lets us bail early if we do fine unicode characters. All tested scenarios get measurably faster, some significantly, with fewer allocations. Here's a little repro app that uses a variety of Uris: ```C# using System; using System.Diagnostics; class Program { static void Main() { string[] urls = new[] { // short ASCII uri ""http://bing.com"", // short ASCII uri with escaped char at end ""http://bing.com/%20"", // short uri with unescaped unicode ""http://bing.com/\u0395"", // short uri with escaped unicode ""http://bing.com/%CE%95"", // long uri with escaped char at end ""http://www.bing.com/images/search?q=dotnet-bot&view=detailv2&&id=32C6FE9F03213C3FC9C05C605AA02ED5DC14796D&selectedIndex=0&ccid=tsBIuVWG&simid=608052183613704343&thid=OIP.Mb6c048b9558657301210048fd4949b6bo0&ajaxhist=0%2b"", // long uri with escaped unicode at end ""http://www.bing.com/images/search?q=dotnet-bot&view=detailv2&&id=32C6FE9F03213C3FC9C05C605AA02ED5DC14796D&selectedIndex=0&ccid=tsBIuVWG&simid=608052183613704343&thid=OIP.Mb6c048b9558657301210048fd4949b6bo0&ajaxhist=0%CE%95"", // long uri with escaped unicode early ""http://www.bing.com/images/search?q=%CE%95dotnet-bot&view=detailv2&&id=32C6FE9F03213C3FC9C05C605AA02ED5DC14796D&selectedIndex=0&ccid=tsBIuVWG&simid=608052183613704343&thid=OIP.Mb6c048b9558657301210048fd4949b6bo0&ajaxhist=0"", // long ASCII uri ""http://www.bing.com/images/search?q=dotnet-bot&view=detailv2&&id=32C6FE9F03213C3FC9C05C605AA02ED5DC14796D&selectedIndex=0&ccid=tsBIuVWG&simid=608052183613704343&thid=OIP.Mb6c048b9558657301210048fd4949b6bo0&ajaxhist=0"", }; var sw = new Stopwatch(); foreach (string url in urls) { int gen0 = GC.CollectionCount(0); sw.Restart(); for (int i = 0; i < 5000000; i++) new Uri(url); sw.Stop(); gen0 = GC.CollectionCount(0) - gen0; Console.WriteLine(sw.Elapsed.TotalSeconds + "", "" + gen0); } } } ``` Results (lower is better, and these tests were run including the commit from #13643): |Before (time, GCs)|After (time, GCs)| |---|---| |2.3879161, 305|1.9582606, 171| |2.5444187, 324|2.2631903, 172| |6.0763754, 1526|5.7146562, 1373| |9.8780414, 2594|7.1667422, 1907| |10.3655053, 1278|4.3081596, 172| |32.5682384, 6884|23.7972498, 5245| |29.4111472, 9479|22.1958248, 6542| |9.9326049, 1259|4.4754632, 171| With https://github.com/dotnet/corefx/pull/13643, fixes #13622. cc: @davidsh, @cipop, @geoffkizer, @justinvp " +13645 area-System.Xml Fix XmlSchema and XSLT failing tests on Unix Resolves https://github.com/dotnet/corefx/issues/12789 Xslt and Schema tests were using file paths and wrong capitalization of file names which would work on Windows, but not on Unix-based platforms. This is fixed in this PR. Some tests are also made windows-specific as they test cases specific to windows. @danmosemsft @weshaggard @stephentoub +13647 area-System.Xml Cleanup Assert.True(false) in Xml tests In case of failure, Xml tests are doing Assert.True(false), which doesn't help in seeing what the problem and expected behaviour was. Use Assert.Throws instead wherever applies. +13648 area-System.Xml Cleanup BinCompat TODO in System.Private.Xml Resolves https://github.com/dotnet/corefx/issues/9913 (cleaning up leftover TODOs from initial port of Schema and XSLT) @danmosemsft @weshaggard @stephentoub @krwq +13649 area-System.Net System.Net.Ping.Functional.Tests hangs on a 1 Core Ubuntu 16.04 VM This issue was originally reported by the WSL team. I'm able to repro if I switch my Ubuntu VM to 1 core. I don't have more info available (my host machine has perf issues and is now unusable). /cc @stephentoub @mellinoe +13651 area-Infrastructure Adding x86 CI build and test run. cc: @weshaggard @danmosemsft @mmitche Changing WIndows Debug build to run x86 build and test instead. Fixes #13448 +13656 area-System.IO Add missing FileSystemWatcher methods Adds source and tests for the remaining missing members in FileSystemWatcher. This required that FileSystemWatcher take a dependency on System.ComponentModel.TypeConverter. resolves https://github.com/dotnet/corefx/issues/13491 @AlexGhiondea @danmosemsft @joperezr @alexperovich @JeremyKuhne +13658 area-System.Net Fix ping test hang on single-core machine The test blocks with a ManualResetEventSlim.Wait() call. On a single-core machine, xunit will use a SynchronizationContext that allows only one operation at a time, and Ping's callback posts back to the SynchronizationContext. So if that one logical thread is blocked waiting for the callback, deadlock. Fixes https://github.com/dotnet/corefx/issues/13649 cc: @cipop, @mellinoe +13659 area-System.IO Cleanup after System.IO move Undo the temporary workarounds to System.Runtime.WindowsRuntime @joperezr, @ericstj, @weshaggard +13660 area-System.Data SqlConnection should support Azure AD token-based authentication The desktop .NET Framework 4.6 and newer has an `AccessToken` property on the `SqlConnection` class ([MSDN](https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.accesstoken(v=vs.110).aspx)) which can be used to authenticate to a SQL Azure database using an access token issued by Azure AD ([examples here](https://azure.microsoft.com/en-us/documentation/articles/sql-database-aad-authentication/#7-connect-by-using-azure-ad-identities)). However, this property is not present on the version of `SqlConnection` provided in the System.Data.SqlClient NuGet package, including the latest preview v4.3.0-preview1-24530-04. In case it's an important detail, the project in question is a library project targeting 'netstandard1.6'. The lack of the `AccessToken` property makes it difficult, if not impossible, to support modern directory-based auth scenarios for Azure SQL DB while also targeting .NET Standard (I have not attempted to use the connection string-based AAD options, but for various reasons those would not be applicable for my project). I have yet to find a workaround other than setting the target framework to 'net46', which I would like to avoid except as a last resort. +13662 area-System.Net Add SocketAsyncEventArgs test for 0-byte receive I got a report that 0-byte receives weren't working correctly, which led me to find that we don't have any tests for it. Adding one (though it appears they're working ok, at least on the platforms on which I've tried it). cc: @cipop, @davidsh +13663 area-System.Net Reuse ManagedWebSocket for websocket connections on Windows HttpListener. Refer comment [here](https://github.com/dotnet/corefx/pull/13502#issuecomment-259461282) cc @stephentoub +13664 area-System.Security Port System.Security.Cryptography.*KeyExchangeFormatter.Rng Resolves https://github.com/dotnet/corefx/issues/12367 @steveharter @danmosemsft +13665 area-System.Data TdsServer for testing SqlClient connectivity The PR includes a Tds server from the SqlClient internal tests which can be used to start a server to test basic Sql Connectivity. There are a few tests for which even a basic connection open can be useful and can allow for writing more extensive tests. This TDS server will allow for such use cases. If any changes are made to the SqlClient to send data to the server using the TDS protocol, the changes can be validated by customizing the server and checking for data being received on the server side. After this PR I will migrate a few tests to the TDS server. I have added one tests which shows a connection being successfully opened to the TDS server using the `SqlConnection` @corivera @stephentoub +13668 area-System.Diagnostics Missing Process APIs requiring SecureString Fixes #13175 cc @danmosemsft @stephentoub @joperezr +13670 area-System.Linq Interpreter does not handle equality on operatorless nullables correctly `Expression.Equal()` and `Expression.NotEqual()` have a special case treatment for a nullable type where the element type does not have `==` and `!=` overloads (generally ruling out `Expression.Equal()` without an explicitly passed method) where it can be compared to a `ConstantExpression` with a null value. (This is a rather strange allowance, but it allows a parallel to comparison with null literal in C#). In the interpreter such an Expression triggers a debug assertion in debug and throws a `PlatformNotSupportedException` in release. There is a comment `// TODO: Nullable` which presumably relates to precisely this case. +13671 area-System.Linq Handle equality on operatorless nullables correctly in interpreter Correctly handle comparisons between nullable types (which don't have relevant operators) and null constants in the interpreter. Fixes #13670 Also more binary expression tests, going beyond just those for this fix. mostly focusing on op-assigns with conversions and equality expressions. Contributes to #1198 Remove `EqualReferenceLiftedToNull` and `NotEqualReferenceLiftedToNull` An operator with reference type operands can never be lifted to null, so these types can never be used. Also exception conditions tested for are impossible to reach. Remove related exception. Also move code repeated for both branches of an if-else above the branch. Contributes to #3836 +13672 area-Meta Will there be a .NET framework 5? Apologies if this is the wrong repository to ask this question, but I'm seeking some clarity on where the _existing_ .NET Framework is headed. - Will we see a .NET framework 5? - Will there be improvements to just the CLR, or will we eventually get a single unified CoreCLR? I can see some Windows-based parts of the existing .NET Framework never being in the .net-core (AD and interop for example), and also the existing CLR. Will the existing .NET Framework slowly be slimmed down to just a Windows one, and then it being used a separate import? Could someone point me in the right direction? Thanks +13674 area-System.Diagnostics Minor clean up of Process test #13560 added a test that doesn't delete a temp file after it's done with it. +13675 area-System.Linq Dynamic-, MethodCall- and InvocationExpressions Inconsistent in exceptions on out of range If one calls `GetExpression()` on instances of `DynamicExpression`, `MethodCallExpression` or `InvocationExpression` then depending on which derived type they are of they might throw `InvalidOperationException` or `ArgumentOutOfRangeException`. This is another variant of issue #3881 +13676 area-System.Linq Consistently throw ArgumentOutOfRange on IArgumentProvider.GetArgument Fixes #13675 (C.f. #3901). CC. @bartdesmet @stephentoub @VSadov +13677 area-Serialization Use RuntimeHelpers.GetUninitializedObject in Serialization Currently we are calling RuntimeHelpers.GetUninitializedObject via reflection. PR #13652 made it available on NetCore. We now can call the API directly. +13679 area-System.Runtime Adding missing members of FileLoadException and FileNotFoundException cc: @danmosemsft @stephentoub Adding Serialization missing members for both exceptions Fixes #13489 +13680 area-System.Globalization Move IdnMapping from System.Globalization.Extensions to System.Runtime https://github.com/dotnet/coreclr/pull/8129 +13681 area-System.Memory "Span: Restore Span[index] return type to ""ref T"" and remove Span.GetItem()" +13684 area-System.Net Reduce allocations in SocketTaskExtensions The various Task-returning extension methods in SocketTaskExtensions are using Task.Factory.FromAsync. This is a quick helper, but we can do better performance-wise. First, FromAsync needs to take the object state provided by the user and pass that through to the begin method as its object state. That means that FromAsync has no way to get additional state into the body of the end method, which means it ends up allocating a delegate and a closure. FromAsync does benefit from being able to avoid creating a TaskCompletionSource, but the cost of a TCS is much less than the cost of a delegate and a closure. Second, the per-call AsyncCallback allocation ends up defeating a cache inside of Socket, which means every call ends up needing to allocate an internal CallbackClosure object. Third, several of these methods need to pass additional state through in order to handle refs on the begin method and getting that data into the out (there's also a race conditoin bug in the current handling of this). That meant allocating an additional object[] and in some cases boxing value types. We can improve this by just writing the code out manually using TaskCompletionSource directly. We do have to allocate the TCS, but we save on the delegate and closure allocations, we avoid extra delegate invocations, we avoid extra allocations to handle those ref cases, etc. In a test that repeatedly asynchronously writes to one socket with SendAsync and reads from another with ReceiveAsync, this changes reduces number of allocations by ~20% and allocated bytes by ~25%. cc: @davidsh, @cipop, @geoffkizer +13685 area-System.Net Remove a reference field from OverlappedAsyncResult It's only relevant to async ReceiveFrom, so put it on a derived class used there. cc: @davidsh, @cipop, @geoffkizer +13687 area-System.Security Oversights in X509Certificates namespace Small omissions from X509Certificates ns. `X509CertificateCollection` needs to derive from `CollectionBase` `X509CertificateCollection.X509CertificateEnumerator` needs to be `new` ie ``` public new X509CertificateCollection.X509CertificateEnumerator GetEnumerator(); ``` Also this method is missing. ``` public class X509Chain : IDisposable { public static X509Chain Create(); } ``` /cc @steveharter +13688 area-System.Security Default is missing from SslProtocols ``` namespace System.Security.Authentication { public enum SslProtocols { Default = 240, } } ``` +13689 area-Serialization readonly on two Formatter fields does not match NS2.0 These two fields were marked `readonly` in Core, but were not `readonly` in the full Framework, and thus not in Standard. Adding readonly to a protected/public field is a breaking change so we should probably revert this. ``` namespace System.Runtime.Serialization { public abstract class Formatter : IFormatter { protected readonly Queue m_objectQueue; protected readonly ObjectIDGenerator m_idGenerator; } ``` @shmao @zhenlan +13691 area-Serialization DataContractJsonSerializer implementation overrides fewer methods from base class "The presence or absence of an override is not a breaking change. It is really a matter for the implementation. However the API diff tool does flag them and I noticed that these are not present in Core but were in Desktop Could you please take a look and confirm that that is intentional? ``` namespace System.Runtime.Serialization.Json { public sealed class DataContractJsonSerializer : XmlObjectSerializer { public override bool IsStartObject(XmlReader reader); public override object ReadObject(XmlDictionaryReader reader); public override object ReadObject(XmlReader reader); public override object ReadObject(XmlReader reader, bool verifyObjectName); public override void WriteEndObject(XmlWriter writer); public override void WriteObject(XmlDictionaryWriter writer, object graph); public override void WriteObject(XmlWriter writer, object graph); public override void WriteObjectContent(XmlWriter writer, object graph); public override void WriteStartObject(XmlWriter writer, object graph); } } ``` In Desktop for example, we have ``` public override bool IsStartObject(XmlReader reader) { return base.IsStartObjectHandleExceptions(new JsonReaderDelegator(reader)); } ``` whereas in Core the base class will be called which has ``` public virtual bool IsStartObject(XmlReader reader) { XmlObjectSerializer.CheckNull(reader, ""reader""); return this.IsStartObject(XmlDictionaryReader.CreateDictionaryReader(reader)); } ``` @shmao can you please confirm these are omitted by design and if so close this issue." +13692 area-System.Runtime Missing RuntimeHelpers.Equals This guy got overlooked ``` namespace System.Runtime.CompilerServices { public static class RuntimeHelpers { public static new bool Equals(object o1, object o2); } } ``` +13693 area-System.Runtime Add System.LoaderOptimizationAttribute +13694 area-System.Diagnostics Two more parameter renames to reverse ``` public static class Console { public static void Write(string value); // currently s public static void WriteLine(string value); // currently s } namespace System.Diagnostics { public static class Debug { public static void WriteLineIf(bool condition, object message); // should be value public static void WriteLineIf(bool condition, object message, string category); // should be value public static void WriteLineIf(bool condition, string value); // should be message public static void WriteLineIf(bool condition, string value, string category); // should be message } ``` The latter unfortunately I messed up in 2c32fb1 - I renamed the impl, which was already correct, instead of the ref. +13695 area-System.Collections Specialize ImmutableArray.InsertRange for arrays. I made an optimization in #13158 to make `ImmutableArray.InsertRange` for well-known collections, including arrays, lists, and `ImmutableArrays`. Unfortunately, the optimization for arrays had to be reverted. For context, see https://github.com/dotnet/corefx/pull/13158#discussion_r86702932 There are a few possible workarounds for this: 1) Use a for-loop, which will be less efficient than `Array.Copy`. 2) Check that the `T[]` is really of type `T[]` by testing `array.GetType() == typeof(T[])` beforehand, and use `Array.Copy` if so, or else fall back to a for-loop. 3) Just use `Array.Copy`, and break the existing scenario. I personally think option 3 is reasonable. It's technically a breaking change, e.g. the test app I posted in my comment would no longer work: ```cs class Program { static void Main(string[] args) { int[] ints = new[] { 1, 2, 3 }; uint[] uints = (uint[])(object)ints; var immutableUints = ImmutableArray.Create(new[] { 1u, 2u, 3u }); immutableUints.AddRange(uints); // Works now; with changes, will throw ArrayTypeMismatchException } } ``` But considering that today `ImmutableArray.Create((uint[])(object)new[] { 1, 2, 3 })` also throws an exception, indicating these types of arrays are not really supported, it seems reasonable to make this change. cc @AArnott +13696 area-System.Linq Linq: Where(pred).First should not be faster than First(pred) Related StackOverflow question: http://stackoverflow.com/q/8663897/4077294 Because `Where` is specialized internally for different types, e.g. arrays and lists, we can iterate through them directly in `MoveNext` and avoid some virtual dispatch. `First(pred)`, on the other hand, does not do any such specialization. This means that `array.Where.First` will be faster than `array.First` if the first element that matches the predicate is far up in the sequence. We may want to share code between `Where.First` & `First`, i.e. by doing a bunch of typecasts in `First` and calling some function that statically receives the source as an array/list, & then also have the specialized iterators call through to those functions. Same applies for certain other functions that accept predicates, such as `Count`. +13699 area-Serialization DCS/DCJS does not Support ExtensionDataObject in ReflectionOnly mode Fix for #12767 made DataContractSerializer and DataContractJsonSerializer support ExtensionDataObject. But ExtensionDataObject tests failed in ReflectionOnly mode. To fix this, have a look at PR #13701 and made changes in the following files, ``` ReflectionXmlFormatReader.cs ReflectionXmlFormatWriter.cs ReflectionJsonFormatReader.cs ReflectionJsonFormatWriter.cs ``` +13700 area-System.Runtime Remove sealed from FirstChanceExceptionEventArgs This was changed to sealed, which is a breaking change (albeit in this case perhaps unlikely to affect anyone) ``` namespace System.Runtime.ExceptionServices { public sealed class FirstChanceExceptionEventArgs : EventArgs { } } ``` The impl is not sealed however the ref in both coreclr and corefx need to be fixed. +13701 area-Serialization Made DCS/DCJS Support IExtensibleDataObject Made DataContractSerializer and DataContractJsonSerializer support IExtensibleDataObject and ExtensionDataObject. Fix #12767. +13703 area-System.Security AES missing member `Create()` should be `new` and we are missing `Create(string algorithmName)`. ``` public abstract class Aes : SymmetricAlgorithm { public static new Aes Create(); public static new Aes Create(string algorithmName); } ``` +13704 area-System.Xml Make System.Private.Xml.Linq tests run on all platforms Fixes https://github.com/dotnet/corefx/issues/13201 Fixed few tests that were failing with whitespace differences on Assert.Equal. cc: @danmosemsft @stephentoub +13705 area-System.Xml "System.Xml.Xsl.XslCompiledTransformApi.Tests threw ""System.NullReferenceException""" No results generated. Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161115.01/workItem/System.Xml.Xsl.XslCompiledTransformApi.Tests/details/4944a05a-b748-44ab-b117-f6714bb60568 ``` 2016-11-14 19:23:48,940: INFO: proc(65): run_and_log_output: Output: System.Xml.Tests.CLoadTest.LoadGeneric2() [FAIL] 2016-11-14 19:23:48,941: INFO: proc(65): run_and_log_output: Output: System.NullReferenceException : Object reference not set to an instance of an object. 2016-11-14 19:23:48,945: INFO: proc(65): run_and_log_output: Output: Stack Trace: 2016-11-14 19:23:49,054: INFO: proc(65): run_and_log_output: Output: at System.Xml.Tests.ExceptionVerifier..ctor(String assemblyName, ExceptionVerificationFlags flags, ITestOutputHelper output) 2016-11-14 19:23:49,054: INFO: proc(65): run_and_log_output: Output: at System.Xml.Tests.CExceptionHandler..ctor(String strXmlFile, String ns, ITestOutputHelper output) 2016-11-14 19:23:49,054: INFO: proc(65): run_and_log_output: Output: at System.Xml.Tests.XsltApiTestCaseBase2.CheckExpectedError(Exception ex, String assembly, String res, String[] strParams) 2016-11-14 19:23:49,054: INFO: proc(65): run_and_log_output: Output: at System.Xml.Tests.CLoadTest.LoadGeneric2() ``` Build : Master - 20161115.01 (Core Tests) Failing configurations: OSX.1011.Amd64:AnyCPU-Debug +13706 area-System.Xml "System.Xml.Xsl.XslTransformApi.Tests threw ""System.Xml.Tests.VerifyException""" No results generated. Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161115.01/workItem/System.Xml.Xsl.XslTransformApi.Tests/details/4944a05a-b748-44ab-b117-f6714bb60568 ``` 2016-11-14 19:23:44,771: INFO: proc(65): run_and_log_output: Output: System.Xml.Tests.CTransformStrStrTest.TransformStrStr9() [FAIL] 2016-11-14 19:23:44,772: INFO: proc(65): run_and_log_output: Output: System.Xml.Tests.VerifyException : Error while loading assembly 2016-11-14 19:23:44,772: INFO: proc(65): run_and_log_output: Output: Stack Trace: 2016-11-14 19:23:44,772: INFO: proc(65): run_and_log_output: Output: at System.Xml.Tests.ExceptionVerifier..ctor(String assemblyName, ExceptionVerificationFlags flags, ITestOutputHelper output) 2016-11-14 19:23:44,772: INFO: proc(65): run_and_log_output: Output: at System.Xml.Tests.CExceptionHandler..ctor(String strXmlFile, String ns, ITestOutputHelper output) 2016-11-14 19:23:44,772: INFO: proc(65): run_and_log_output: Output: at System.Xml.Tests.XsltApiTestCaseBase.CheckExpectedError(Exception ex, String assembly, String res, String[] strParams) 2016-11-14 19:23:44,772: INFO: proc(65): run_and_log_output: Output: at System.Xml.Tests.CTransformStrStrTest.TransformStrStr9() 2016-11-14 19:23:44,773: INFO: proc(65): run_and_log_output: Output: System.Xml.Tests.CTransformStrStrResolverTest.TransformStrStrResolver3 [SKIP] 2016-11-14 19:23:44,773: INFO: proc(65): run_and_log_output: Output: SQLBU Defect Tracking Bug 430834: Skipping when input type is URI, see bug for more details. 2016-11-14 19:23:44,773: INFO: proc(65): run_and_log_output: Output: System.Xml.Tests.CTransformStrStrResolverTest.TransformStrStrResolver1 [SKIP] 2016-11-14 19:23:44,773: INFO: proc(65): run_and_log_output: Output: Resolving of External URIs is no longer allowed 2016-11-14 19:23:44,773: INFO: proc(65): run_and_log_output: Output: System.Xml.Tests.CNDP1_1SP1Test.var3 [SKIP] 2016-11-14 19:23:44,773: INFO: proc(65): run_and_log_output: Output: SQLBU Defect Tracking Bug 430834: Skipping when input type is URI, see bug for more details. ``` Build : Master - 20161115.01 (Core Tests) Failing configurations: OSX.1011.Amd64:AnyCPU-Debug +13707 area-System.Drawing Improve hash codes in Drawing Primitives Closes #5256 There's no perfect balance of hash quality and speed but this takes a moderate mult-and-add with 31 as the multiplier. Better bit-mixing could certainly be done, but taking more time. `Rectangle` was left alone, but `RectangleF` changed to take the hash of each single-precision float rather than casting to `uint` and losing bits. Also changed some `&&` to `&` in tests where avoiding the branch is likely cheaper than avoiding the rhs field access. +13708 area-System.Console Console.ReadLine(); cause process hung when execute dotnet core console app from PowerShell ISE "```C# using System; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { Console.WriteLine(""Hello World!""); Console.Write(""Enter>""); var read = Console.ReadLine(); } } } ``` ```JSON { ""version"": ""1.0.0-*"", ""buildOptions"": { ""debugType"": ""portable"", ""emitEntryPoint"": true }, ""dependencies"": { ""Microsoft.NETCore.App"": ""1.0.0"" }, ""frameworks"": { ""netcoreapp1.0"": { ""imports"": [ ""dnxcore50"", ""portable-net451+win8"" ] } }, ""runtimes"": { ""win7-x64"": {} } } ``` When execute the console app published by `dotnet publish` from PowerShell ISE, the process will hung and not able to finish readline, also privouse `Console.Write()` will not be print out. ![image](https://cloud.githubusercontent.com/assets/1750815/20335994/eb9edd74-ab94-11e6-8204-c11279e4c0a3.png) " +13710 area-System.IO Path.GetTempPath does not return a user specific folder on Unix systems "On Unix systems Path.GetTempPath returns ""/tmp"" unless the TMPDIR envvar is set. According to the documentation, this method returns the path of the current user's temporary folder. On Windows it returns: ""%USERPROFILE%\AppData\Local\Temp"". This is causing an issue for the NuGet.Client because the program assumes it is the owner of the temp directory, see https://github.com/NuGet/Home/issues/2793." +13711 area-System.Memory Add ReadOnlySpan<> to System.Memory cc @KrzysztofCwalina +13713 area-Infrastructure [Release1.0] Use setMachineAffinity instead of legacy labels +13714 area-Infrastructure [dev/apple_crypto] Use setMachineAffinity instead of legacy labels +13715 area-System.Globalization Enable the TimeZone/TimeZoneInfo APIs and tests for netstandard 1.7 +13717 area-Infrastructure netcoreapp11 methods did not get exposed in System.Runtime package "Today when .NET Core 1.1 got released I wanted to make use of the new `GC.GetAllocatedBytesForCurrentThread ` method which got exposed [here](https://github.com/dotnet/corefx/pull/12489) by @jkotas . However I can't do so, I get `error CS0117: 'GC' does not contain a definition for 'GetAllocatedBytesForCurrentThread'` error when trying to use it. `dotnet --version: 1.0.0-preview2-1-003155` My project.json file: ```json { ""version"": ""1.0.0-*"", ""buildOptions"": { ""debugType"": ""portable"", ""emitEntryPoint"": true }, ""dependencies"": {}, ""frameworks"": { ""netcoreapp1.1"": { ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.1.0"" } }, ""imports"": ""dnxcore50"" } } } ``` The code: ```cs using System; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { Console.WriteLine(GC.GetAllocatedBytesForCurrentThread()); } } } ``` I took a look at the System.Runtime.cs file and it's [using](https://github.com/dotnet/corefx/blob/master/src/System.Runtime/ref/System.Runtime.cs#L1252) the new moniker netcoreapp11 in few #ifdefs but none of these methods are exposed in System.Runtime. Moreover when I go to `.nuget\packages\System.Runtime\4.3.0\lib` I can see that there is no separate version for netcoreapp1.1. Anyway when I run the program an use `typeof(GC).GetTypeInfo().Assembly.Location` I get `C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Private.CoreLib.ni.dll` which has the method exposed. My question is: how can I use this method without reflection? Am I doing something wrong?" +13718 area-Meta Update breaking change docs @danmosemsft @weshaggard @stephentoub @jkotas skip ci please +13719 area-Serialization Add Missing Method Overrides of DataContractJsonSerializer. Some method overrides of DataContractJsonSerializer exist on Desktop but are missing in Core. The PR is adding them in Core. Fix #13691. +13720 area-System.Net Reduce allocations in HttpClient.GetString/ByteArrayAsync "Today, HttpClient.GetStringAsync and GetByteArrayAsync copy all of the response data to a MemoryStream. For strings, that buffer is never exposed, so it ends up being temporary garbage. For byte arrays, the data is extracted from the MemoryStream with ToArray, which means double the allocations. This commit does three things: - It introduces a helper Stream based on ArrayPool, where all buffers come from the shared pool. - GetStringAsync uses that stream as the target, such that the byte[]s used are recycled with the pool, avoiding per-request allocations. - GetByteArrayAsync uses that stream as the target if a content length couldn't be determined, so that the byte[]s incurred as the stream grows are recycled. And if a content length can be determined, it uses a MemoryStream and then returns that MemoryStream's buffer directly to the caller, avoiding the extra buffer allocation and copy. As an example, this program is concurrently downloading a 12K web page a thousand times: ```C# using System; using System.IO; using System.Linq; using System.Net.Http; using System.Threading; using System.Threading.Tasks; class Program { static void Main() { var client = new HttpClient() { Timeout = Timeout.InfiniteTimeSpan }; var uri = new Uri(""http://localhost:8080/""); Task.WaitAll(Enumerable.Range(0, 1000).Select(_ => client.GetByteArrayAsync(uri)).ToArray()); } } ``` Before the change the program allocates ~27.5MB, and after the change it allocates ~16.2MB (~40% reduction). Similarly, if the GetByteArrayAsync above is changed to GetStringAsync, before the change the program allocates ~39.5MB, and after the change the program allocates ~28.8MB (~30% reduction). Contributes to #13589 cc: @davidsh, @cipop, @geoffkizer " +13721 area-System.Diagnostics Remove System.Security.Permissions dependency on System.Diagnostics.*Trace With PR #13320 System.Security.Permissions dependency was added because some members had CAS Attributes, but then we deleted those attributes and forgot to break the dependency. +13722 area-System.Threading Expose some threading-related things for ns2.0 Fixes dotnet/corefx#11638 Fixes dotnet/corefx#11633 Fixes dotnet/corefx#11635 Fixes dotnet/corefx#11636 Fixes dotnet/corefx#13484 +13723 area-System.Linq Test Debug Proxies of Expression and Dynamic objects For various types of expression, obtain the `DebuggerTypeProxy` through similar means as that used by a debugger (examine the `DebuggerTypeProxyAttribute` and instantiate the type), then compare the properties obtainable through the proxy with the properties of the expression object itself. Failure to find a debug property for any public property is considered a failure, with the explicit exceptions of `ArgumentCount` and `ExpressionCount`. Similar tests for `BindingRestrictions`' proxy, though with differences as it doesn't have the same one-to-one mapping. Debugger proxies not included: 1. `ExpandoObject`'s keys and values collections. Will do this after #13595 fixes `ExpandoObject`'s dynamic behaviour, #13634 tests it directly, and probably some more tests on `ExpandoObject` itself (maybe at the same time. 2. `InstructionArray` and `InstructionList`. As there's no way to peek through the delegate to the instructions (is there?) testing this would require some particularly artificial use of reflection to create the llists, as well as their proxies. Maybe it'd be better just to exclude these types from coverage. +13724 area-System.Runtime Converting FirstChanceExceptionEventArgs to not be sealed cc: @danmosemsft Marking FirstChanceExceptionEventArgs as not sealed to match netstandard. Fixes #13700 +13726 area-System.Linq Implement Enumerable.ToHashSet() Closes #2323 A straight-forward implementation, forgoing any optimisations. `HashSet`'s constructor already has some for some cases, and others could be wasteful unless not just the number of elements, but the number of elements that are distinct in terms of the equality comparer can be predicted. +13728 area-System.Runtime Add remaining AppDomain apis Add implementation for 1. ReflectionOnlyAssemblyResolve 2. SetDynamicBase 3. AssemblyResolve Also fixes bug in ExecuteAssembly. ExecuteAssembly should load assembly using LoadFile and not LoadFrom. +13729 area-System.Collections Increase count of queue items to thread count before dequeue. cc @ianhays @stephentoub fixes #13356 +13730 area-System.Diagnostics Deleted System.Security.Permissions dependency from Diagnostics.TraceSource Fixes #13721 cc @danmosemsft @weshaggard @joperezr +13732 area-System.Diagnostics [release/1.0.0] Check if process has started, before checking for exit. fixes #12696 porting the test fix from master to release/1.0.0 cc @karelz @danmosemsft @leecow +13734 area-System.Security Add CryptoConfig support Address issue https://github.com/dotnet/corefx/issues/12327 (Port System.Security.Cryptography.CryptoConfig) Per offline discussion, CryptoConfig class was placed in S.S.C.Algorithms as it needs access to the Oid class in S.S.C.Encoding. This means the static Create methods added to S.S.C.Primitives throw PNSE. CryptoConfig could not be placed in S.S.C.Primitives as it wouldn't be able to reference Oid\S.S.C.Encoding without an cyclic assembly reference. There are alternatives to remove these PNSE including x-compile Oid and\or CryptoConfig, combining assemblies, moving types, etc but considered not worth the cost at this time. The workaround is to have consumers call CryptoConfig.CreateFromName directly. @bartonjs please review. +13735 area-System.Linq Investigate benefits of separating out parts of Count into a non-generic method. Separated out from #12703. Relevant discussion: https://github.com/dotnet/corefx/pull/12703#discussion_r87884894 tl;dr We may want to put a part of `Enumerable.Count` in a non-generic method so that the JIT has less code to generate during the following 2 scenarios: - For a particular value type T, the source enumerable always implements `ICollection`, `IIListProvider`, etc. and we can determine the count without actually enumerating - We fall back to iterating manually over the enumerable for at least 2 different value types More details can be found in the comment linked to. Opening this as a tracking issue. +13737 area-System.Reflection Add missing enum values in S.Reflection.Emit Fixes #13486 +13738 area-Meta Move API lists to buildtools repo PR #13440 added two new API list files in the top-level directory of this repo. These two files should be moved to the buildtools repo eventually. +13739 area-Infrastructure Build for x86 on Windows runs tests using 64-bit runtime After running `build -buildArch=x86` on Windows, the build script created `bin\tests\AnyOS.x86.Debug` and `bin\tests\Windows_NT.x86.Debug` directories. However, 64-bit `coreclr.dll` and `corerun.exe` were copied into these directories, so the tests were actually run with 64-bit runtime. +13740 area-System.Security AsymmetricAlgorthm.ToXmlString, FromXmlString, and other missing members Replaces the previous PR from last week which got corrupted due to git issues. Kept original commit; second commit removes the Xml support due to cyclic dependencies with System.Private.Xml. A new issue will be created to bring that back in some form. Issue https://github.com/dotnet/corefx/issues/12315 @bartonjs +13741 area-Meta Add missing [Obsolete] attributes on NS2.0 ports "We should have any [Obsolete] attributes that are present in Standard. Some are missing. Copy them from the Standard repo. These are missing: * various on AppDomain * various on Process * various on Thread * these two ``` public class HttpWebResponse : WebResponse, ISerializable { [ObsoleteAttribute(""Serialization is obsoleted for this type. http://go.microsoft.com/fwlink/?linkid=14202"")] protected HttpWebResponse(SerializationInfo serializationInfo, StreamingContext streamingContext); } public class IPAddress { [ObsoleteAttribute(""This property has been deprecated. It is address family dependent. Please use IPAddress.Equals method to perform comparisons. http://go.microsoft.com/fwlink/?linkid=14202""""This property has been deprecated. It is address family dependent. Please use IPAddress.Equals method to perform comparisons.http://go.microsoft.com/fwlink/?linkid=14202"")] public long Address { get; set; } } ```" +13744 area-Serialization Fix XmlSerializer Test Project's ProjectReference. All serialization test projects did not reference contract assembly's pkgproj. This caused the test projects not building against the latest contract assemblies built by the repo. The other issue is that DCS and DCJS's test projects referenced the implementation assembly's csproj directly, which caused the test projects being able to use types defined in implementation assembly while the types are not in the contracts. The fix is to make test projects reference both contract assembly and implementation assembly's pkgproj. Fix #11135. /cc: @StephenBonikowsky @mconnew @zhenlan can you please review the change? Thanks! +13745 area-System.Net Add SslProtocols.Default Tweak to fix #13688 @davidsh @CIPop +13746 area-System.Collections Proposal: Supporting C# 7 deconstruction of certain types. "## Background C# 7 added support for deconstruction of user-defined types via a `Deconstruct(out ...)` method. ([see it in action](http://tryroslyn.azurewebsites.net/#b:master/K4Zwlgdg5gBAygTxAFwKYFsDcAoADsAIwBswBjGUogQxBBgGEYBvbGNmfYsmANwHswAExgARVKT4QUAJ2ClkACj7BkMSMgDaAXRhUANDGWr1MAgaNqIq0gEpW7Fuye6YAXhgRgRIjmfsCbjAADL5+FIEh9mwAvtixeIQk5JQ0dCLYjuycSbwCwgCyCnZOmX48VNLh7hCoAO4MRaFlFTAK+jCoBoI2gaRNMLHRQA=)) It would make sense to be able to use this feature with tuple-like types such as `KeyValuePair` and `DictionaryEntry`. ## Proposal ```cs public struct KeyValuePair { // BLOCKED (do not add now): [EditorBrowsable(EditorBrowsableState.Never)] public void Deconstruct(out TKey key, out TValue value); } public struct DictionaryEntry { // BLOCKED (do not add now): [EditorBrowsable(EditorBrowsableState.Never)] public void Deconstruct(out object key, out object value); } ``` ## Usage ```cs public void MyDictionaryMethod() { var dict = new Dictionary(); dict.Add(1, ""2""); var (one, two) = dict.First(); } ```" +13747 area-System.Runtime Join(string separator, params object[] values) is fixed for first null in object array "Join issue for first null in object array is fixed. So calling string.Join("","", null, 1, 2, 3) now return "",1,2,3"", but not empty string as before. See https://github.com/dotnet/coreclr/pull/8114" +13748 area-System.Runtime Failure in AppDomainTests.GetAssemblies due to FileNotFoundException This failed in CI, on CentOS https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_debug_prtest/280/consoleText ``` System.Tests.AppDomainTests.GetAssemblies [FAIL] System.IO.FileNotFoundException : Could not load file or assembly 'TestAppOutsideOfTPA, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. Stack Trace: at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks, IntPtr ptrLoadContextBinder) at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks, IntPtr ptrLoadContextBinder) at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) at System.Reflection.Assembly.Load(String assemblyString) at System.AppDomain.Load(String assemblyString) /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Runtime.Extensions/tests/System/AppDomainTests.cs(405,0): at System.Tests.AppDomainTests.GetAssemblies() ``` +13749 area-Infrastructure [ARM/CI] Need to install some packages for arm-hardfp cross build The HardFP build fails with: ``` 02:56:56 /usr/bin/ld: unrecognised emulation mode: armelf_linux_eabi 02:56:56 02:56:56 Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 i386linux elf_l1om 02:56:56 elf_k1om i386pep i386pe 02:56:56 02:56:56 clang: error: linker command failed with exit code 1 (use -v to see 02:56:56 invocation) 02:56:56 ``` Probably the package `binutils-arm-linux-gnueabihf` is missing. To work for it, I may need a remote access to cloned CI machine. +13750 area-Meta Add information about /publicsign compiler flag Add some information about reading and setting the public-sign flag on binaries using corflags and FakeSign.exe tools. Additionally mention the /publicsign compiler option and MSBuild property. +13751 area-System.Collections Updated ConcurrentDictionary.GetValues to preallocate values list. +13752 area-System.Net Socket.ReceiveAsync and other methods don't support sync completion "On Windows, it is possible to use the following WIN API function to enable WSARecv and other calls on the socket to complete synchronously when possible and avoid triggering IOCP completion: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365538(v=vs.85).aspx It is possible to do even now, e.g.: ``` C# public static bool SetFileCompletionNotificationModes(this Socket socket, FileCompletionNotificationModes flags) { SetFileCompletionNotificationModes(socket.Handle, flags); } [DllImport(""kernel32.dll"")] internal static extern bool SetFileCompletionNotificationModes([In] IntPtr fileHandle, [In] FileCompletionNotificationModes flags); [Flags] public enum FileCompletionNotificationModes { SkipCompletionPortOnSuccess = 1, SkipSetEventOnHandle = 2 } ``` The problem is in ReceiveAsync implementation on this line: https://github.com/dotnet/corefx/blob/5e89fcf41481481e7b673b10ea7644ce56776bd9/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs#L4356: ``` C# if (socketError != SocketError.Success && socketError != SocketError.IOPending) { e.FinishOperationSyncFailure(socketError, bytesTransferred, flags); retval = false; } else { retval = true; } ``` Basically, if returned result is not Success or IOPending then it is a sync completion with error. If it is Success or IOPending - it will return true. `WSARecv` will not return SUCCESS for IOCP-based call unless `SetFileCompletionNotificationModes` was called for the socket setting the flags above. So in default operation mode check for inequality to `SocketError.Success` is harmless (but redundant) and is always true. Once you set notification modes though, `WSARecv` may return SUCCESS in case of sync completion and then it won't invoke callback on SAEA and per code above will return true. Proposal is to change behavior of `ReceiveAsync` and other IOCP-based methods to support synchronous completion. The code above would change as follows: ``` C# if (socketError == SocketError.Success) { e.FinishOperationSuccess(SocketError.Success, bytesTransferred, flags, completedSynchronously: true); retval = false; } else { socketError = (SocketError)Marshal.GetLastWin32Error(); if (socketError == SocketError.IOPending) { retval = true; } else { e.FinishOperationSyncFailure(socketError, bytesTransferred, SocketFlags.None); retval = false; } } ``` Another change not shown here is to `SocketAsyncEventArgs.FinishOperationSuccess`, adding parameter `bool completedSynchronously` that if true would skip raising SAEA.Completed event. This change and support for SetFileCompletionNotificationModes yield significant performance improvement for scenarios with high throughput over a small number of sockets. Let me know if the change is something you can consider to take and I'd post a PR." +13753 area-Infrastructure Upgarding nuget package of .NETCoreApp breaks debugging "Creating a new console .NET core application: After upgrading the .NET Core App package. Getting this errors when building: tNet.Common.Targets(262,5): error : Can not find runtime target for framework ' 1>.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x6 1>4, win81-x64, win8-x64, win7-x64'. Possible causes: 1>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.Do 1>tNet.Common.Targets(262,5): error : 1. The project has not been restored or res 1>tore failed - run `dotnet restore` 1>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.Do 1>tNet.Common.Targets(262,5): error : 2. The project does not list one of 'win10- 1>x64, win81-x64, win8-x64, win7-x64' in the 'runtimes' section. 1>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.Do 1>tNet.Common.Targets(262,5): error : 3. You may be trying to publish a library, 1>which is not supported. Use `dotnet pack` to distribute libraries. Workaround: Altering the project.json to include type=""platform"" fixed the issue. ""dependencies"": { ""Microsoft.NETCore.App"": { ""version"": ""1.1.0"", ""type"": ""platform"" }," +13754 area-Meta Build System.Runtime.Extensions and System.Security.Principal packages for uap101aot target. @jkotas, please review. Temporarily skip AppDomain.cs—there are several issues with it. +13755 area-Infrastructure [release/1.1.0] Disable package build for packages not shipping Disable full package build for 1.1.0. In servicing we only build packages we intend to ship. Add 1.0.0 serviced packages to 1.1.0 index. We'll harvest from these as necessary. /cc @weshaggard @gkhanna79 @chcosta +13756 area-Infrastructure [release/1.0.0] Disable package build for packages not shipping We've shipped 1.0.3 change the build back to producing no packages. /cc @weshaggard @chcosta @gkhanna79 +13757 area-Meta Provide support for general non-cryptographic hashing. System.Hashing? A spin-of of the design discussion to tackle the general problem. References: https://github.com/dotnet/corefx/issues/8034 +13758 area-Infrastructure Update packageIndex w/ stable release versions. This ensures any harvested assets will come from our latest release. /cc @weshaggard @chcosta +13759 area-System.ComponentModel Fix System.ComponentModel.TypeConverter.Tests ConvertTo_NullCulture ListSeparator When Current Culture have List Separator other then coma (,) some tests failed. +13760 area-Serialization Made DCS/DCJS Support IDeserializationCallback. Made DataContractSerializer and DataContractJsonSerializer to support IDeserializationCallback. Fix #13368. +13761 area-System.Xml Fix ExceptionVerifier bug in XSLT tests Fixes https://github.com/dotnet/corefx/issues/13706. In cultures other than en_US locale the `ExceptionVerifer` class needs to load satellite assembly, which was removed at the time of porting tests due to the API not being available. cc: @danmosemsft @stephentoub +13762 area-System.IO Expose FileStream IntPtr ctors from CoreLib @ianhays +13763 area-System.Reflection Reflection: Mark obsolete enum values obsolete in source Follow up on #13737 based on discussion at https://github.com/dotnet/corefx/pull/13745#discussion_r88450430 cc: @danmosemsft, @alexperovich +13766 area-Serialization Need some improvement for TimeSpan There're two main areas. Support the DefaultValue attribute. Follow the similar pattern as the DateTime. +13767 area-System.Runtime Missed adding new files to csproj +13768 area-System.Net HttpWebRequest POST operation doesn't work with 5.2.2 UWP "Hi I notice something between the v5.2 and 5.1 of the .netCore.UWP nugets version in Visual Studio I have an APP in v5.1 and a do a ""POST"" opperation whith a HttpWebRequest , with parameter in the body encode in UTF8. (to simulate a login on a webSite) If a upgrade to v5.2, my POST stop working ! I restore to v5.1 and it work again ! Have you got an idea ? i've make a small VS project . In 5.1 , we have an OK, in 5.2.2 : a KO pop up :) " +13769 area-System.Security Expose HMAC.BlockSizeValue This is a protected property which can reflect only on the extended classes. +13770 area-System.Runtime Fix test for AppDomain.GetAssemblies AppDomain.Load() only looks for assemblies in coreroot. If an assembly happened to be loaded via Assembly.LoadFile() then it might not be located in coreroot. And if that assembly is returned as first element of assemblies array returned by GetAssemblies then below test will fail as AppDomain.Load will not find that assembly in coreroot. +13771 area-Meta Adding Obsolete Attributes to missing type/members Fixes #13741 cc: @weshaggard @danmosemsft Adding obsolete members in order to match netstandard2.0 +13772 area-System.Security Fix omissions in X509* "Fixes #13687 1) X509.Chain was missing. Nothing to do with (2) except it has X509 in the name. Desktop does `return (X509Chain) CryptoConfig.CreateFromName(""X509Chain"");` per @steveharter I'm just using `new X509Chain()`. Steve are you fixing this when you complete CryptoConfig? 2) X509CertificateCollection needs to derive from CollectionBase and X509CertificateCollection.X509CertificateEnumerator needs to be new I looked at @justinvp's change https://github.com/dotnet/corefx/pull/2824 and unfortunately moving to ArrayList meant most of it had to go. I did keep checks for null in the enumerator constructors and a type check when adding certificates to the collection. @stephentoub @justinvp " +13773 area-System.Net HttpClient and WebSockets don't provide HTTP error details "I have a WebSocket service which can return error details in the HTTP response to a WebSocket upgrade request such as: HTTP/1.1 404 Endpoint does not exist. TrackingId:71d07da7-8ace-4463-b764-1f76559aebd0_G2 When I use ClientWebSocket.ConnectAsync and it fails (expected) there's no way to get the HTTP StatusCode (e.g. 404) or the HTTP StatusDescription (e.g. ""Endpoint does not exist. TrackingId:71d07da7-8ace-4463-b764-1f76559aebd0_G2"")." +13774 area-System.Runtime ValueTuple should no longer use EqualityComparer.Default for hashing. As of dotnet/coreclr#7895, `GetHashCode()` on an enum no longer boxes the enum. So, there are no advantages of using `EqualityComparer.Default.GetHashCode(obj)` over `obj?.GetHashCode() ?? 0`. So all of the [code in `ValueTuple`](https://github.com/dotnet/corefx/blob/master/src/System.ValueTuple/src/System/ValueTuple/ValueTuple.cs#L1919) which calls `EqualityComparer.Default` should just use the latter version instead. @karelz, can you please mark this as 'grabbed by community'? Also, there's no need to cc anyone as I'll submit a PR for this within a day or two and tag the relevant people. Thanks. +13775 area-System.Runtime Expose StrongNameKeyPair's FileStream constructor Fixes #11808 +13776 area-System.IO Use ArrayPool buffer in DeflateStream Every DeflateStream allocates an 8K buffer. This PR changes that to use a buffer from the shared ArrayPool. To mitigate concerns around returning a buffer to the pool that's still in use, it tracks active async operations and only returns the buffer when disposing the stream if there aren't any active async operations. That tracking was already in place, I just tweaked it slightly. (@ianhays, there is now some duplication in this checking; previously it was checking the active operation flag separately from using an interlocked to increment it, and I changed that latter portion to throw if the interlocked shows the usage to be invalid, but I left the former in place in case we're really concerned about the order that exceptions get thrown in... if we're not, we should clean that up.) While doing this, I also noticed that we were allocating an unnecessary lock object, so I removed it. We previously removed a similar allocation from the Inflater, but neglected to do so from the Deflater. Fixes https://github.com/dotnet/corefx/issues/12549 Contributes to #5598 cc: @ianhays, @jkotas +13778 area-System.Net kevent signals data available on a socket but ioctl(...,FIONREAD,...) returns 0 There appears to be a race condition in the implementation of kqueues on macOS, such that kevent can wake up for a read on a socket (meaning at least 1 byte of data is available) but an ioctl(..., FIONREAD, ...) call immediately after that completion can still return 0. This can manifest as code like: ```C# await socket.ReceiveAsync(Array.Empty(), 0, 0, SocketFlags.None); int count = socket.Available; ``` getting a count of 0 instead of something larger. +13779 area-System.Runtime Add IdnMapping to System.Runtime contract This change also contains some cleanups after have exposed IdnMapping from corelib +13780 area-System.Reflection Expose remaining reflection apis +13781 area-System.IO Add Lock/Unlock to Unix PAL Implemented both using fcntl and F_SETLK. progress towards https://github.com/dotnet/corefx/issues/5964 @JeremyKuhne +13782 area-System.Runtime Remove projectref to system.runtime Fixes #11680 +13783 area-System.Security Some RSA members not virtual These should all be virtual not abstract. ``` public abstract class RSA : AsymmetricAlgorithm { public abstract byte[] Decrypt(byte[] data, RSAEncryptionPadding padding); public abstract byte[] Encrypt(byte[] data, RSAEncryptionPadding padding); protected abstract byte[] HashData(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm); protected abstract byte[] HashData(Stream data, HashAlgorithmName hashAlgorithm); public abstract byte[] SignHash(byte[] hash, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding); public abstract bool VerifyHash(byte[] hash, byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding); ``` also ``` public abstract class ECDsa : AsymmetricAlgorithm { protected abstract byte[] HashData(byte[] data, int offset, int count, HashAlgorithmName hashAlgorithm); protected abstract byte[] HashData(Stream data, HashAlgorithmName hashAlgorithm); ``` +13784 area-System.Reflection Two members missing virtual @danmosemsft commented on [Thu Nov 17 2016](https://github.com/dotnet/coreclr/issues/8190) These should be virtual like Desktop ``` public abstract class Type : MemberInfo, IReflect { public virtual bool IsEnum { get; } public virtual bool Equals(Type o); } ``` --- @danmosemsft commented on [Thu Nov 17 2016](https://github.com/dotnet/coreclr/issues/8190#issuecomment-261409151) Uh, this should be in CoreFX .. +13785 area-System.Runtime Add VB 15 to System.ValueTuple description. +13786 area-System.Security Add FeedbackSize to SymmetricAlgorithm Fixes #12368 +13787 area-System.Security Make abstract methods virtual per ns20 Fixes #13783 +13788 area-Serialization Port PR #11752 from release/1.1.0 to master. Port PR #11752 from release/1.1.0 to master. Support text.Mapping being SpecialMapping when using ReflectionBased Serializer。 Fix #11917 @shmao @zhenlan @mconnew +13793 area-System.Security Adding ExtendedProtectionPolicyTypeConverter to netstandard2.0 Fixes #13559 cc @danmosemsft @joperezr @stephentoub @AlexGhiondea +13794 area-System.Security CGI error in azure when using HttpClient with ServerCertificateCustomValidationCallback in Azure Can't post to an API using client certificate with custom certificate validation from my backend when upgradring to netcore 1.1. This works absolutely fine locally and it works when posting to an https endpoint that has a cert signed by a trusted CA. Worth mentioning is that this worked with the 1.1 preview. Now I get this once deployed to azure: The specified CGI application encountered an error and the server terminated the process. The code: X509Certificate2 cert = ... read from store var handler = new HttpClientHandler(); handler.ClientCertificates.Add(cert); handler.ServerCertificateCustomValidationCallback += (message, certificate2, arg3, arg4) => true; var httpClient = new HttpClient(handler); await httpClient.PostAsync(theUrl, theContent); Then it just dies, nothing in the logs. Any ideas? +13795 area-System.Runtime Objects deep clone support "There is very common problem - ""deep clone"" of objects (create exact copy of object with different instances of cloned objects including any nested references). There is no support for this common task in standard libraries. One widely used workaround is the serialization and deserialization of object using built-in serialization classes. But this workaround is suffering from poor performance and is example of wrong using of tool when right tool is absent." +13798 area-System.Net Disable SSLv3 default test on older libcurls libcurl prior to v7.39 allows SSLv3 by default. Since we've switched our defaults to accepting whatever the platform defaults are, this commit disables our SSLv3-disabled-by-default test on libcurl versions earlier than 7.39. +13799 area-Meta ByteStreamMessageEncoder? What is the plan for System.ServiceModel.Channels.ByteStreamMessageEncoder to get to .NET Core? +13800 area-System.Runtime Proposal: Make it easier to use StringComparison & StringComparer with GetHashCode. ## Proposed API 1. Add API to convert a `StringComparison` to a `StringComparer`, to avoid bunch of switch-statements in user code (see 'Motivation' section below). 2. Add `string.GetHashCode(StringComparison)` API, to make it easier/more discoverable to get the culture-dependent, case-insensitive, etc. hash of a string. Currently, you have to do `StringComparer.XXX.GetHashCode(str)`, which is verbose & hard to find. ```c# public class StringComparer { public static StringComparer FromComparison(StringComparison comparisonType); } public sealed class String { public int GetHashCode(StringComparison comparisonType); } ``` ### Motivation If someone has a variable comparison they don't have to do a bunch of switch-cases (we'll do them instead): ```c# public static StringComparer FromComparison(StringComparison comparisonType) { switch (comparisonType) { case StringComparison.Ordinal: return StringComparer.Ordinal; case StringComparison.OrdinalIgnoreCase: return StringComparer.OrdinalIgnoreCase; ... } } ``` For more background: See @stephentoub's suggestion in https://github.com/dotnet/corefx/issues/8034#issuecomment-261519913 cc @justinvp @Elion +13801 area-System.Drawing Drawing primitives cleanup These are tiny commits to make it easier to just undo one during review. They should definitely be squashed into one. Remove unused using directives. Remove unused constants Assert on impossible value on first obtaining, rather than after it should have been used. Remove `unchecked` context when can't overflow. (Left some that match with neighbouring lines). Make init-only fields `readonly`. Consistently use expression bodies on single-expression members. Use string interpolation in `ToString()` methods. Remove some redundant casts where the result is clear. Remove unnecessary qualifiers and make internal fields `private` when only accessed privately. Move declaration of variables to where they are initialised. +13803 area-Serialization Remove [SecureSafeCritical] and [SecurityCritical] in System.Private.DataContractSerialization Removed usage of both [SecureSafeCritical] and [SecurityCritical] as well as removing unused references where it seemed appropriate. @shmao Fix #13190 +13804 area-System.Globalization Fold the System.Globalization.Extensions contract to System.Runtime.Extensions System.Globalization.Extensions became very tiny contract and it make sense to fold it to System.Runtime.Extensions with the rest of the related types moved there. this was Wes and jkotas ask +13805 area-System.Reflection Fix some System.Reflection.Tests failing Fix some System.Reflection.Tests failing when float separator of Current Culture is not point char (.) +13806 area-System.IO System.IO.File.Copy() provides an incorrect error message when destination directory does not exist "**Problem:** System.IO.File.Copy() provides an incorrect error message when destination directory does not exist **Proposed solution:** Edit https://github.com/dotnet/corefx/blob/c55435befeb372707558a5c441b3c64bf243948f/src/Common/src/System/IO/Win32Marshal.cs#L61 to check whether it's the source or dest path that doesn't exist when creating an error message. **Problem description from colleague's email** My debugging moment of the day today was brought to me by a bad .NET exception message. Running the following code which copies an existing file into a dir that doesn’t exist: var src = @""c:\Exists\train.log""; var dest = @""c:\DoesntExist\train.log""; File.Copy(src, dest, true); And you get a nice error message out: DirectoryNotFoundException: Could not find a part of the path 'c:\Exists\train.log'. Hey, what the who? Changing dest to an actual path works like a champ. (Note that if you hit an access denied on the dest, the exception text is correct.) ***Investigation into source code*** I believe the exception was thrown from here: https://github.com/dotnet/corefx/blob/c55435befeb372707558a5c441b3c64bf243948f/src/System.IO.FileSystem/src/System/IO/Win32FileSystem.cs#L19 And generated by this win32 to exception converter: https://github.com/dotnet/corefx/blob/c55435befeb372707558a5c441b3c64bf243948f/src/Common/src/System/IO/Win32Marshal.cs#L61 The problem appears to be that the win32 error code doesn’t distinguish between src and tgt paths not existing, and the exception generator assumes it’s the source. Oops. " +13807 area-System.IO revert TextWriter virtual This was changed from virtual, which is a breaking change. ``` public abstract class TextWriter : MarshalByRefObject, IDisposable { public abstract void Write(char value); } ``` +13808 area-System.Runtime Two interop methods missed These are in standard but didn't make it into https://github.com/dotnet/corefx/pull/13479. ``` namespace System.Runtime.InteropServices { public static class Marshal { public static string PtrToStringAuto(IntPtr ptr, int len); } ``` +13809 area-Serialization Area-Serialization Sprint 110 The issue is for tracking issues to be done in sprint 110 (due by 12/09/2016). +13811 area-System.Runtime Port Marshal.PtrToStingAuto PtrToStringAuo(System.IntPtr, System.Int32) was missing. This change ports that API and add a test case for it. @danmosemsft @stephentoub @yizhang82 @jkotas +13812 area-Infrastructure Dev/eng merge from master This updates dev/eng with the latest from master. Also using it to test dev/eng CI. @ericstj @mellinoe @ellismg +13813 area-System.Net HttpClient - Create synchronous versions of HTTP calls "Currently the HttpClient only offers async HTTP calls GetAsync, PostAsync, PutAsync etc... When calling from synchronous code it becomes necessary to break to mix async and synchronous code which breaks with best practice and leaves the developer unsure if a "".Result"" may result in deadlock. I suggest we create synchronous versions for all HTTP calls on the client. " +13814 area-System.Security System.Net.Security.SslStream error on AuthenticateAsClientAsync Since the upgrade from ASP.NET Core 1.0.1 to 1.1.0, my application breaks on AuthenticateAsClientAsync, which is used in MailKit.SmtpClient.Connect by @jstedfast The only feedback the appication gives is An unhandled exception of type 'System.Reflection.TargetInvocationException' occurred in System.Windows.ni.dll I'm connecting to smtp.sendgrid.net +13816 area-System.Runtime Relax Array.Copy to only require that source is assignment-compatible with destination "Note that this only affects the case where the destination element type is a valuetype. Since arrays of enums of the same underlying types are assignment compatible (from CLR point of view), it is easy to fall into a trap where one array would be assignable to another, but not ""copyable"" form the CopyTo prospective. That results in issues as in https://github.com/dotnet/corefx/issues/2241 It seems reasonable for the CopyTo to allow assignment-compatibile copying for enums and underlying types. Please reactivate https://github.com/dotnet/corefx/issues/2241, when this is fixed (or rejected)" +13817 area-System.Runtime Add tests for Marshal.SecureStringTo* functions Fixes #13522 +13821 area-System.Net Move NTAuthentication to Common location for re-use in Mail. This solution seems to be the best option to solve the issue #13364 for release before netstandard2.0. Designing a new public surface area for authentication protocols can be an independent project now, without being time sensitive for netstandard2.0 release. cc @karelz @CIPop @davidsh @stephentoub @weshaggard +13822 area-System.Runtime String iterator over code points (and a corresponded codepoint struct) "```C# foreach (codepoint c in ""😀🙃💩"".Codepoints){ // c becomes '😀', '🙃', '💩', respectively } ```" +13824 area-System.Globalization Proposal: Better API for StringInfo.GetTextElementEnumerator To get text elements from a `string`, you can currently use `System.Globalization.StringInfo.GetTextElementEnumerator`: ```c# public class StringInfo { public static TextElementEnumerator GetTextElementEnumerator(string str); public static TextElementEnumerator GetTextElementEnumerator(string str, int index); } public class TextElementEnumerator : IEnumerator { public bool MoveNext(); public object Current { get; } public string GetTextElement(); public int ElementIndex { get; } public void Reset(); } ``` Notice that `TextElementEnumerator` is a (non-generic) enumerator, not enumerable, so it can't be used in a `foreach` or in LINQ or pretty much any other collection-related operation. To use it, you write code like: ```c# var textElementEnumerator = StringInfo.GetTextElementEnumerator(s); while (textElementEnumerator.MoveNext()) { string textElement = textElementEnumerator.GetTextElement(); // process textElement here } ``` This makes the API unfamiliar and inconvenient to use. I propose that a new API based on `IEnumerable` should be added. ## Proposed API ```c# class StringInfo { public static IEnumerable GetTextElements(string str); public static IEnumerable GetTextElements(string str, int index); } ``` The new methods work like the old methods, except that they return generic enumerable instead of enumerator. ## Usage The new API could be used just like any other `IEnumerable`, e.g.: ```c# foreach (var textElement in StringInfo.GetTextElementEnumerator(s)) { // process textElement here } ``` ## Open questions * Returning `IEnumerable` means information about `ElementIndex` is lost. Is that information useful enough to use something like `IEnumerable<(string textElement, int index)>` instead? (Possibly using a custom `struct` instead of a tuple.) * Each text element `string` is a substring of the input `string`. Would it be worth waiting for spans and use `IEnumerable>` instead? * Returning `IEnumerable` requires allocating that `IEnumerable`. Would it be worth to return struct enumerable with struct enumerator instead, which would avoid the allocation when used in `foreach`? +13827 area-System.Xml XsltCompiler.Tests project fails many tests when UI language is not ENU I have many failed tests in next projects. msbuild.err ``` 541:5>C:\Users\Alex\Documents\Home\corefx\Tools\tests.targets(254,5): error : One or more tests failed while running tests from 'System.Collections.Tests' please check log for details! [C:\Users\Alex\Documents\Home\corefx\src\System.Collections\tests\System.Collections.Tests.csproj] 541:6>C:\Users\Alex\Documents\Home\corefx\Tools\tests.targets(254,5): error : One or more tests failed while running tests from 'System.Collections.Tests' please check log for details! [C:\Users\Alex\Documents\Home\corefx\src\System.Collections\tests\System.Collections.Tests.csproj] 629:4>C:\Users\Alex\Documents\Home\corefx\Tools\tests.targets(254,5): error : One or more tests failed while running tests from 'System.Globalization.Extensions.Tests' please check log for details! [C:\Users\Alex\Documents\Home\corefx\src\System.Globalization.Extensions\tests\System.Globalization.Extensions.Tests.csproj] 780:3>C:\Users\Alex\Documents\Home\corefx\Tools\tests.targets(254,5): error : One or more tests failed while running tests from 'System.Private.Uri.Functional.Tests' please check log for details! [C:\Users\Alex\Documents\Home\corefx\src\System.Private.Uri\tests\FunctionalTests\System.Private.Uri.Functional.Tests.csproj] 822:2>C:\Users\Alex\Documents\Home\corefx\Tools\tests.targets(254,5): error : One or more tests failed while running tests from 'XsltCompiler.Tests' please check log for details! [C:\Users\Alex\Documents\Home\corefx\src\System.Private.Xml\tests\Xslt\XsltCompiler\XsltCompiler.Tests.csproj] 923:5>C:\Users\Alex\Documents\Home\corefx\Tools\tests.targets(254,5): error : One or more tests failed while running tests from 'System.Runtime.Tests' please check log for details! [C:\Users\Alex\Documents\Home\corefx\src\System.Runtime\tests\System.Runtime.Tests.csproj] 1017:5>C:\Users\Alex\Documents\Home\corefx\Tools\tests.targets(254,5): error : One or more tests failed while running tests from 'System.Threading.Tests' please check log for details! [C:\Users\Alex\Documents\Home\corefx\src\System.Threading\tests\System.Threading.Tests.csproj] 923:6>C:\Users\Alex\Documents\Home\corefx\Tools\tests.targets(254,5): error : One or more tests failed while running tests from 'System.Runtime.Tests' please check log for details! [C:\Users\Alex\Documents\Home\corefx\src\System.Runtime\tests\System.Runtime.Tests.csproj] ``` Is it normal? +13828 area-System.Collections Expose ConcurrentDictionary GetOrAdd/AddOrUpdate overloads in netcoreapp1.1 Port #1783 from future to master. Contributes to #2869. I cherry-picked (and slightly tweaked) the two relevant commits from the future branch: - fffd49fe1c35544b388322608d1e16374f3832e6 (fixed the conflict due to moved test file) - ee5906f35222b80a729541683f76f43fe2c49204 (updated to use current `throw null;` style) I then added a third commit that cleaned some things up, extracted tests, and exposed the APIs in netcoreapp1.1. cc: @stephentoub +13832 area-System.Globalization InstalledUICultureTest fail if Windows language is changed I have Windows 10 (non english) after I changed it language to English (USA) and restart it, my Windows UI interface changed to english. After that `System.Globalization.Tests.CultureInfoMiscTests.InstalledUICultureTest` in `corefx\src\System.Private.Xml\tests\Xslt\XsltCompiler\XsltCompiler.Tests.csproj` project failed. I think this test is wrong because it will fail if window language is changed after installation. ```cs Assert.Equal(CultureInfo.CurrentUICulture, CultureInfo.InstalledUICulture); ``` +13833 area-System.Net Outerloop test failures due to SslProtocols.Default addition @danmosemsft, @cipop, we're seeing a bunch of outerloop test failures, I believe as a result of this change: https://github.com/dotnet/corefx/pull/13745 e.g. ``` System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_EachSupportedProtocol_Success(protocol: Default) [FAIL] System.NotSupportedException : The requested security protocol is not supported. Stack Trace: D:\j\workspace\outerloop_win---097a300f\src\Common\src\System\Net\SecurityProtocol.cs(26,0): at System.Net.SecurityProtocol.ThrowOnNotAllowed(SslProtocols protocols, Boolean allowNone) D:\j\workspace\outerloop_win---097a300f\src\System.Net.Security\src\System\Net\Security\SslStream.cs(122,0): at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) D:\j\workspace\outerloop_win---097a300f\src\System.Net.Security\src\System\Net\Security\SslStream.cs(241,0): at System.Net.Security.SslStream.<>c__DisplayClass32_0.b__0(AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) D:\j\workspace\outerloop_win---097a300f\src\System.Net.Security\src\System\Net\Security\SslStream.cs(241,0): at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) D:\j\workspace\outerloop_win---097a300f\src\System.Net.Security\tests\FunctionalTests\ClientAsyncAuthenticateTest.cs(150,0): at System.Net.Security.Tests.ClientAsyncAuthenticateTest.d__14.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\outerloop_win---097a300f\src\System.Net.Security\tests\FunctionalTests\ClientAsyncAuthenticateTest.cs(46,0): at System.Net.Security.Tests.ClientAsyncAuthenticateTest.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` I think the problem stems from this line: https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/Common/tests/System/Net/SslProtocolSupport.cs#L32 ```C# if ((protocol & SupportedSslProtocols) != 0) ``` and that it should be changed to something like: ```C# if ((protocol & UnsupportedSslProtocols) == 0) ``` Otherwise, the new Default that was added (which is Ssl3 | Tls) ends up getting returned as part of the SupportedSslProtocolsTestData iterator, and then the tests fail because Ssl3 is explicitly disallowed. +13834 area-System.Numerics New System.Math decimal versions First thing to note is that I already submitted [another issue](https://github.com/dotnet/corefx/issues/6308) on similar lines, which was reviewed and (not completely) rejected. I have taken all that feedback into account to make this new proposal, which only consists in the following inclusions: ```C# public const decimal PI_dec = 3.1415926535897932384626433832m; public const decimal E_dec = 2.7182818284590452353602874713m; public decimal Pow(decimal x, decimal y); public decimal Sqrt(decimal d); ``` The algorithms of the new `Pow`/`Sqrt` overloads are expected to exclusively rely on the `decimal` type (i.e., no conversion to/from `double`/`float` at any point). In fact, I have recently finished the first version of an open source library (NumberParser) precisely including two methods fulfilling that requirement. Note that, additionally to [its properly-commented C# source code](https://github.com/varocarbas/FlexibleParser/tree/master/all_code/NumberParser/Source), I also wrote [detailed explanations about the implementation of those two methods](https://varocarbas.com/fractional_exponentiation). I am even planning to write much more explanations about this whole code within the short term. Anyone can use this library and test the aforementioned methods (```Math2.PowDecimal```/```Math2.SqrtDecimal```) to get a feeling of what the proposed new overloads might deliver. In any case, the following ideas should be clear: - These methods rely on a custom class (```Number```), whose main goal is allowing to deal with very big ranges of values. It is certainly much less efficient than the native ```decimal```/```double``` types. - In case of deciding to go ahead with this proposal and additionally to perform the aforementioned adaptation, I am also planning to further optimise these algorithms. Nevertheless and even in the best scenario, the new ```decimal``` version is likely to be slower than the ```double``` one (perhaps also in case that it would also include the corresponding conversions from/to ```decimal```, although I am still not sure about this). Its strongest point will be accuracy, rather than speed. - The current version of this approach accounts only for the first 25 decimal digits of the exponent (note that the `decimal` type can deal with up to 28). In principle, I don’t see this as a problem, although I look forward to your opinions on this front. In summary, the new overloads are expected to avoid the floating-point/limited-precision problems associated with converting from/to ```double```; to deliver accurate results (up to `5e-28m`) not constrained by simplifications/floating-point restrictions. As highlighted in the review of my previous proposal, there is a backwards-compatibility problem associated with adding these new overloads without any further modification: calls relying on implicitly convertible types will stop working. For example: ```System.Math.Pow(1, 10) ``` (i.e., two ```int``` variables implicitly converted to ```double```) works fine now, but will not work after just adding the proposed ```decimal``` overload. There are two ways to address this problem: - Including additional overloads with all the implicitly convertible types, consisting in simple calls to the `double` ones. For example: ```C# public static double Pow(int x, int y) { return Pow((double)x, (double)y); } ``` - Adding two new methods rather than overloads to existing ones (e.g., ```PowExact```/```SqrtExact```). In principle, the first alternative seems better, although it would imply accounting for a quite relevant number of scenarios (e.g., `Pow(int x, int y)`, `Pow(int x, long y)`, `Pow(int x, ulong y)`, etc.). +13836 area-System.Net Fix Supported/UnsupportedSslProtocols tests with SslProtocols.Default Fixes https://github.com/dotnet/corefx/issues/13833 cc: @danmosemsft, @cipop +13837 area-Meta 100% CPU load After upgrade to 1.1.0 I have an issue then dotnet process start to load CPU on 100%. I have a pretty standard several application where and had no problem but not from time to time it goes in 100% and hangs whole server. After killing dot net it starts again and works pretty normal. Also this issue is happened when I (nobody) do not web apps. When I work with this webapps all pretty normal but then I do not touch them for several hours it starts loading CPU +13839 area-System.Linq Test DebuggerTypeProxy for ExpandoObject's keys and values and throw on null Throw if null is passed to the constructor of either of these types. Contributes to #13840 Also test these types thoroughly, beyond that necessary to confirm this fix. +13840 area-System.Linq DebuggerTypeProxies within S.L.Expressions and S.Dynamic should throw on null. Most such types just trust the debugger to pass in a valid instance, while `ExpandoObject.KeyCollectionDebugView` and `ExpandoObject.ValueCollectionDebugView` assert that it isn't null. Since these are supplied from outside the library they should not trust the debugger to do the right thing quite that much. (Compare with the S.Collections.Generic debugger view types, which throw on null). +13841 area-System.Linq Throw null when null is passed to debug proxies. Fixes #13840 with the exception of two types covered in #13839 so the fix can live with appropriate tests. +13842 area-System.Linq Add Enumerable.SkipLast, TakeLast to get the last N elements of a sequence. "## Background Currently, Linq does not offer an API for getting the last N elements of a sequence. This has resulted in no less than [5 StackOverflow questions](https://www.google.com/search?q=skip+last+n+elements+of+enumerable&rlz=1CAACAH_enUS678US678&oq=skip+last+n+elements+of+enumerable&aqs=chrome..69i57.4760j0j7&sourceid=chrome&ie=UTF-8) (with ~300 votes) popping up as the first result when you Google ""skip last n elements of enumerable."" ## Proposal We should add `SkipLast` and `TakeLast` to Enumerable, which will skip/take the last N elements of the sequence, respectively. If there are less than N elements, `SkipLast` will return an empty sequence, and `TakeLast` will return a sequence with contents equivalent to the original enumerable. ```cs namespace System.Linq { public static class Enumerable { public static IEnumerable SkipLast(this IEnumerable source, int count); public static IEnumerable TakeLast(this IEnumerable source, int count); } public static class Queryable { // Lots of existing methods for parity with Enumerable public static IQueryable SkipLast(this IQueryable source, int count); public static IQueryable TakeLast(this IQueryable source, int count); } } ``` ### Remarks - In `SkipLast` instead of evaluating the whole thing at once, we will read in the first `count` items into a circular buffer. Then we will interleave between yield returning the oldest element & overwriting that with a new one. - In `TakeLast` we will still evaluate the whole sequence during the first iteration, but again maintain a circular buffer of length `count` and overwrite the oldest elements with newer ones. ### Original (incorrect) - Implementation remarks These overloads will have subtly different semantics from `Skip` and `Take`. Since for lazy enumerables we can't determine the count of the sequence in advance, we will have to capture it into an array during our first iteration (like `Reverse` does today), then skip/take the last N items from that array between yields. ```cs public static IEnumerable SkipLast(this IEnumerable source, int count) { var array = source.ToArray(); for (int i = count; i < array.Length; i++) { yield return array[i]; } } ``` As a result, these will have different outputs: ```cs int[] a = { 1, 2, 3, 4, 5 }; foreach (var item in a.Skip(3)) { a[4] = 10; Console.WriteLine(item); // 4 10 } a[4] = 5; foreach (var item in a.TakeLast(2)) { a[4] = 10; Console.WriteLine(item); // 4 5 } ``` Another consequence is that this will lead to more allocations for lists/arrays. Perhaps this is worth it for added convenience, though." +13843 area-System.Linq System.Dynamic.BinaryOperationBinder Tests Add tests exercising the `BinaryOperationBinder` class. Covers the operations that can be covered directly with the C# binder (not power or extensions) along with forcing through some invalid operations to test the exception. +13844 area-System.Linq System.Dynamic.CallInfo tests Tests on operating directly on `CallInfo` objects. Mainly concentrating on validation. +13846 area-System.Globalization "Two System.Globalization.Tests fails for ""ur-IN"" culture on Windows Server 2012" "Two System.Globalization.Tests fails for ""ur-IN"" culture on Windows Server 2012." +13847 area-System.IO System.IO.FileSystem.Tests project fail ValidFileOptions test if FileOptions contains Encrypted flag I think on my Windows Server 2012 creating encrypted files or folder is disabled by group politic or other rights restriction. So `System.IO.FileSystem.Tests` project fail `ValidFileOptions` test if `FileOptions` contains `Encrypted` flag. +13848 area-System.Runtime S.R.CS.Unsafe: Add CopyBlock/CopyBlockUnaligned and InitBlock/InitBlockUnaligned for ref byte Adds `CopyBlock`/`CopyBlockUnaligned` to `Unsafe` for `ref` parameters as discussed in https://github.com/dotnet/corefx/issues/13427 Implements the generic versions of this, if this is not wanted, it can be changed to e.g. `ref byte`. Caller must know NOT to call this with a `T` containing references. @jkotas @AtsushiKan @benaadams @jamesqo @omariom **UPDATE**: For API review, basically the choice is whether to add any of the below or perhaps both. Or in any shape that FXDC finds suitable. The below has been chosen to fit existing API definitions. The functionality is needed for `Span` and other `ref` based scenarios for e.g. optimal performance. ```csharp void CopyBlock(ref T destination, ref T source, int elementCount); void CopyBlockUnaligned(ref T destination, ref T source, int elementCount); ``` OR ```csharp void CopyBlock(ref byte destination, ref byte source, uint byteCount); void CopyBlock(ref byte destination, ref byte source, UIntPtr byteCount); void CopyBlockUnaligned(ref byte destination, ref byte source, uint byteCount); void CopyBlockUnaligned(ref byte destination, ref byte source, UIntPtr byteCount); ``` I will change the implementation once I get word of the result of the API review. If needed I can create a separate issue for API review, but since this change is rather small I am hoping to keep it here. Personally, I think adding both would be great. Not the least since the generic version covers the most common use case for the work I do, and because it fits `Span`. +13849 area-System.Security System.Security.Cryptography.Algorithms.Tests fail ExpectedSignature_SHA1_384 test On my Windows 2012 server `System.Security.Cryptography.Algorithms.Tests` project fail `ExpectedSignature_SHA1_384` test with exception `Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: Requested operation is not supported`. +13850 area-System.Security System.Security.Cryptography.Cng.Tests fails two tests On my Windows 2012 server `System.Security.Cryptography.Cng.Tests` project fails two tests: `ExpectedSignature_SHA1_384` and `RSACng_Ctor_UnusualKeysize_384` with the same exception `Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: Requested operation is not supported`. +13851 area-System.Linq System.Dynamic.UnaryOperationBinder Tests Add tests exercising the `UnaryOperationBinder` class. Covers the operations that can be covered directly with the C# binder (not extensions) along with forcing through some invalid operations to test the exception. +13853 area-System.Threading Add additional AsyncLocal test coverage Adds coverage for optimizations in https://github.com/dotnet/coreclr/pull/8216 cc: @kouvel +13854 area-System.Memory Bring SpanExtensions/ReadOnlySpanExtensions up to CoreClr parity. This is a necessary step to removing Span from corefxlab. corefxlab cannot implement these from outside the surface area. +13855 area-System.Security Adding missing member of CspParameters Fixes #12362 cc: @bartonjs @steveharter @danmosemsft @weshaggard KeyPassword can't be tested by unit tests, and it seems like it can't be easily tested in Desktop either, which means implementation might not work for .NET Core, so throwing PNSE when called. +13856 area-System.Threading Improve AsyncLocal throughput and memory usage (port to Desktop) Consider porting https://github.com/dotnet/coreclr/pull/8216 and https://github.com/dotnet/coreclr/commit/9bc06f7e534a1989911d795528737d767c2b408d to Desktop +13857 area-System.Collections "Consider adding a ""slim"" dictionary type" Inspired by seeing: https://github.com/dotnet/coreclr/pull/8216 We've come across many cases in ASP.NET where we want to expose something like the `IDictionary<,>` contract, but we know that the number of items used with it will always be a small number (N < 10). In some cases, potentially hundreds of these may be created for a single request, and so we want them to be pretty slim. We've created a few specialized types of our own to meet this need, but the canonical case is something like [AttributeDictionary](https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNetCore.Mvc.ViewFeatures/ViewFeatures/AttributeDictionary.cs). There's a ton of boilerplate associated with implementing `IDictionary<,>` and so we're not thrilled with implementing one of these each time we want to optimize something. We're also not necessarily married to `IDictionary<,>` as the primary contract. That's what there is, so that's what we're using to avoid reinventing the wheel (while reimplementing the wheel). In general we care about get/set values and enumeration in particular being fast for a small number of items. +13858 area-System.Runtime fix param name Parameter name changes are breaking. It should be `len`, not `length`, to match desktop. @shrah +13859 area-System.Security Implement the 2 new enum modes on PaddingMode This is the code port **only**, I am working on tests next, +13860 area-System.Runtime Fix virtual on Type Fix #13784 @joperezr +13862 area-System.Security Add SignatureDescription source and tests. Modifies ported tests from Mono and ported source from Desktop to work in Core and follow our style. resolves https://github.com/dotnet/corefx/issues/12302 @steveharter @AlexGhiondea @joperezr +13863 area-System.Collections Add method KeyedCollection<,>::TryGetValue(TKey, out TItem) "Fixes #4690 ""Add bool TryGetValue(TKey, out TItem) method to a KeyedCollection<,> class""" +13864 area-System.Linq Possible LINQ expression compiler bug? "Consider the following repro code distilled from a customer-affecting EF issue: ```c# using System; using System.Linq; using System.Linq.Expressions; using System.Reflection; namespace StackSpiller { internal class Program { public static void Main(string[] args) { var guidToStringMethodInfo = typeof(Guid) .GetTypeInfo().GetDeclaredMethods(""ToString"") .Single(m => !m.GetParameters().Any()); var customerCtorInfo = typeof(Baz) .GetTypeInfo().DeclaredConstructors.Single(); var guidConstant = Expression.Constant(Guid.NewGuid()); var goodExpressionTree = Expression.Lambda>( Expression.New( customerCtorInfo, Expression.Call( Expression.TryCatch( guidConstant, Expression.Catch(typeof(Exception), guidConstant)), guidToStringMethodInfo), Expression.Constant(""Foo""))); var goodLambda = goodExpressionTree.Compile(); Console.WriteLine(goodLambda()); var badExpressionTree = Expression.Lambda>( Expression.New( customerCtorInfo, // ctor arguments are re-ordered Expression.Constant(""Foo""), Expression.Call( Expression.TryCatch( guidConstant, Expression.Catch(typeof(Exception), guidConstant)), guidToStringMethodInfo))); var badLambda = badExpressionTree.Compile(); Console.WriteLine(badLambda()); } private class Baz { public Baz(string a, string b) { } } } } ``` which produces: ``` StackSpiller.Program+Baz Unhandled Exception: System.NotSupportedException: TryExpression is not supported as a child expression when accessing a m ember on type 'System.Guid' because it is a value type. Construct the tree so the TryExpression is not nested inside of th is expression. at System.Linq.Expressions.Compiler.StackSpiller.RequireNotRefInstance(Expression instance) at System.Linq.Expressions.Compiler.StackSpiller.RewriteMethodCallExpression(Expression expr, Stack stack) at System.Linq.Expressions.Compiler.StackSpiller.RewriteExpression(Expression node, Stack stack) at System.Linq.Expressions.Compiler.StackSpiller.ChildRewriter.Add(Expression node) at System.Linq.Expressions.Compiler.StackSpiller.ChildRewriter.AddArguments(IArgumentProvider expressions) at System.Linq.Expressions.Compiler.StackSpiller.RewriteNewExpression(Expression expr, Stack stack) at System.Linq.Expressions.Compiler.StackSpiller.RewriteExpression(Expression node, Stack stack) at System.Linq.Expressions.Compiler.StackSpiller.RewriteExpressionFreeTemps(Expression expression, Stack stack) at System.Linq.Expressions.Compiler.StackSpiller.Rewrite[T](Expression`1 lambda) at System.Linq.Expressions.Expression`1.Accept(StackSpiller spiller) at System.Linq.Expressions.Compiler.LambdaCompiler.Compile(LambdaExpression lambda) at System.Linq.Expressions.Expression`1.Compile(Boolean preferInterpretation) at System.Linq.Expressions.Expression`1.Compile() at StackSpiller.Program.Main(String[] args) in C:\Dev\github\StackSpiller\Program.cs:line 52 ``` The only difference in the two expressions is the order in which the constructor args are passed when creating the NewExpression. Is this a bug?" +13865 area-Infrastructure Only publish if packages exist Port https://github.com/dotnet/corefx/commit/8c2b67e16855f4c29f1ff880cd0c09388b9c38b4 to release/1.1.0 /cc @gkhanna79 @chcosta @weshaggard +13866 area-System.Security Port PKCS1MaskGenerationMethod type to netstandard2.0 Fixes #12304 cc @danmosemsft @bartonjs @steveharter +13868 area-System.Net SmtpClient NTLM and Kerberos testing Per offline SCRUM discussion: add e2e NTLM/Kerberos testing for SmtpClient authentication. Example: https://github.com/dotnet/corefx/blob/master/src/System.Net.Security/tests/FunctionalTests/NegotiateStreamKerberosTest.cs /cc: @karelz @Priya91 +13869 area-System.Runtime Add methods to StringBuilder to append ReadOnlySpan ## Background It seems logical that we should support appending `Span` and `ReadOnlySpan` to a StringBuilder, since the point of both data types is to reduce allocations. The only way to do this with the current APIs is to loop through the span one char at a time and call Append on each of them, which is pretty slow. ## Proposed API ```cs namespace System.Text { public sealed class StringBuilder { // Span is implicitly convertible to ReadOnlySpan public StringBuilder Append(ReadOnlySpan value); } } ``` cc @jkotas, @KrzysztofCwalina, @justinvp +13871 area-Infrastructure System.Threading.Tests AV (System.ExecutionEngineException) Contact me internally for the output of `.dump /mA ...` and `.dumpcab /a c:\threadAV.cab`. ``` 0:012> !pe Exception object: 0000025ae42011e0 Exception type: System.ExecutionEngineException Message: InnerException: StackTrace (generated): StackTraceString: HResult: 80131506 0:012> | . 0 id: 4eb0 attach name: S:\c1\bin\tests\AnyOS.AnyCPU.Debug\System.Threading.Tests\default.netcoreapp1.1\CoreRun.exe ``` +13872 area-System.Security Add missing CryptoStream::FlushAsync The overrides below are missing from Core implemementations. This is not an API breaking change. is it intentional? ``` public abstract class RSA : AsymmetricAlgorithm { public override string KeyExchangeAlgorithm { get; } public override string SignatureAlgorithm { get; } public override void FromXmlString(string xmlString); public override string ToXmlString(bool includePrivateParameters); } public sealed class RSACryptoServiceProvider : RSA, ICspAsymmetricAlgorithm { public override string KeyExchangeAlgorithm { get; } public override string SignatureAlgorithm { get; } public override byte[] DecryptValue(byte[] rgb); public override byte[] EncryptValue(byte[] rgb); } public abstract class ECDsa : AsymmetricAlgorithm { public override string KeyExchangeAlgorithm { get; } public override string SignatureAlgorithm { get; } } public abstract class DSA : AsymmetricAlgorithm { public override void FromXmlString(string xmlString); public override string ToXmlString(bool includePrivateParameters); } public sealed class DSACryptoServiceProvider : DSA, ICspAsymmetricAlgorithm { public override string KeyExchangeAlgorithm { get; } public override string SignatureAlgorithm { get; } } public class CryptoStream : Stream, IDisposable { public override Task FlushAsync(CancellationToken cancellationToken); } public sealed class AesManaged : Aes { public override int FeedbackSize { get; set; } ``` @steveharter @bartonjs +13874 area-System.Net Updating System.Net.* refs based on netstandard. Fixes #13372. Diffing all System.Net.* contracts with standard/ref and making corresponding changes, including ordering which simplifies future comparisons. Remaining API implementations are tracked by: #12134 #12460 @davidsh, @karelz, @danmosemsft PTAL. /cc: @safern @geoffkizer +13875 area-System.Net Port System.Net.WebUtility missing members Fixes #12142 cc @danmosemsft @AlexGhiondea @stephentoub @geoffkizer +13876 area-Infrastructure Dev/eng tools Spiking out a project to build tasks from CoreFx. I need to plug this into the build/targets yet. This will let us do fast iteration on corefx without waiting for buildtools. I started by bringing over @chcosta's change from https://github.com/chcosta/buildtools/blob/18c1a1dab1bc568d33fb1ab9c0b8d209822267ce/src/Microsoft.DotNet.Build.Tasks/FindBestConfiguration.cs /cc @weshaggard @chcosta @mellinoe +13878 area-System.Linq Have interpreter completely match compiler for thrown non-exceptions. "Interpreter can throw and catch reference types not derived from Exception. If the exception escapes the expression it will be a `RuntimeWrappedException`. Provides a better fix to #5898 than #13408. At the beginning of the discussion of #5898 the idea that ""Possibly something could be done by manipulating `RuntimeWrappedException`"" was suggested, but not much came from that idea as that type wasn't available within corefx. Having the interpreter throw `InvalidOperationException` for non-exceptions and just accepting its inability to catch them was the best that could be done, so #13408 did that. However, in the meantime #11930 had made `RuntimeWrapperException` available to use. And with it the interpreter can be made to match the compiler entirely. The compiler also seems to unwrap any RWE so there isn't a need to track whether an RWE had been created internally or not (someone would have to be very foolish to only realise that after writing code to do such tracking and then having to delete it again…). So, with this PR both interpreter and compiler are akin in: 1. Being able to throw any reference type. 2. Being able to catch any reference type. 3. Being able to catch a non-exception reference type from a call into another assembly, whatever that assembly's `RuntimeCompatibilityAttribute` settings. 4. If a `RuntimeWrapperException` originating from outside the expression is thrown within it, they can catch the wrapped object. 5. If a non-exception is thrown by the expression, it can be caught in the invoking code as a `RuntimeWrapperException`. cc @VSadov @bartdesmet @svick (The only remaining difference in exception handling between the two is now that the compiler can't do fault and filter blocks)." +13881 area-System.Numerics Unable to cast object of type 'System.Numerics.BigInteger' to type 'System.Decimal'. "While unit test my project, I got a weird exception. Referenced source ```cs BigInteger bi = new BigInteger(123); decimal d = (decimal)bi; // boooo ``` But in according to [MSDN](https://msdn.microsoft.com/en-us/library/dd268232(v=vs.110).aspx), `System.Numerics.BigInteger` have a explicit cast to `System.Decimal`. but I got `TypeCastException`. why? `project.json` - .NET Standard 1.1 ```json { ""supports"": {}, ""dependencies"": { ""Microsoft.NETCore.Portable.Compatibility"": ""1.0.1"", ""NETStandard.Library"": ""1.6.1"", ""Newtonsoft.Json"": ""9.0.1"", ""System.Reflection.Emit"": ""4.3.0-preview1-24530-04"", ""System.Reflection.Emit.ILGeneration"": ""4.3.0-preview1-24530-04"", ""System.Reflection.Emit.Lightweight"": ""4.3.0-preview1-24530-04"" }, ""frameworks"": { ""netstandard1.1"": {} } } ``` Reference project is a unit test in [here](https://github.com/composite/ArangoDB.Net). ``` Test name: ArangoDB.Net.Tests.VelocityPack.VPackBuilderTest.AddBigIntegerAsInt Full test name: ArangoDB.Net.Tests.VelocityPack.VPackBuilderTest.AddBigIntegerAsInt Test source: D:\Projects\Github\ArangoDB.Net\Tests\VelocityPack\VPackBuilderTest.cs : 줄 184 Test result: 실패 Test eleapsed time: 0:00:00.098 Result StackTrace: at VelocyPack.Internal.Value.GetNumber() in D:\Projects\Github\ArangoDB.Net\VelocyPack\Internal\Value.cs:line 101 at VelocyPack.VPackBuilder.Set(Value item) in D:\Projects\Github\ArangoDB.Net\VelocyPack\VPackBuilder.cs:line 733 at VelocyPack.VPackBuilder._Appender_74.Append(VPackBuilder builder, Value value) in D:\Projects\Github\ArangoDB.Net\VelocyPack\VPackBuilder.cs:line 63 at VelocyPack.VPackBuilder.AddInternal[T](IAppender`1 appender, T value) in D:\Projects\Github\ArangoDB.Net\VelocyPack\VPackBuilder.cs:line 576 at VelocyPack.VPackBuilder.Add(BigInteger value, ValueType type) in D:\Projects\Github\ArangoDB.Net\VelocyPack\VPackBuilder.cs:line 483 at ArangoDB.Net.Tests.VelocityPack.VPackBuilderTest.AddBigIntegerAsInt() in D:\Projects\Github\ArangoDB.Net\Tests\VelocityPack\VPackBuilderTest.cs:line 187 Result message: Unable to cast object of type 'System.Numerics.BigInteger' to type 'System.Decimal'. ``` **Additional note: `System.Int32` and `System.Int64` too.**" +13882 area-Infrastructure Where is dotnet-bot commands documentation? I want rerun tests for PR but can not find dotnet-bot command for this. Where is dotnet-bot commands description? +13884 area-System.IO Add Transactional support file sytem. Add transactional support for files and directories; +13885 area-System.Security Enable distro agnostic build of System.Security.Cryptography.Native If the FEATURE_DISTRO_AGNOSTIC_SSL is enabled, the System.Security.Cryptography.Native doesn't link to libssl / libcrypto at build time. It uses a shim that opens the libssl shared library with versioned so name specific for the platform and gets all needed API function pointers using dlsym and stores them in global variables. The calls to those APIs are then redirected through these pointers. I have verified that our code doesn't access any data members in structures with layout that can vary based on compilation options of the OpenSSL and that can have variable offset. The only direct access of this kind that we were using, the X509::sha1_hash, was replaced by call to recompute the hash, based on @bartonjs suggestion. There are couple of functions that we use and that don't have to exist in the libssl when it is compiled with particular options. These were handled at the build time before, now I have also added runtime handling of this case. Finally, I have added verification of the System.Security.Cryptography.Native.OpenSsl.so to make sure it doesn't have any undefined symbols. This could happen if someone adds usage of a new OpenSSL API and doesn't add its name to the opensslshim.h. The build fails in this case and lists all the undefined symbols. +13889 area-Infrastructure Update stable dependencies to latest stable This reduces total download of packages. /cc @stephentoub @karajas @weshaggard +13890 area-System.Net Proposal for DNS client and custom DNS queries "In `System.Net.NameResolution` the `DNS` class gives us a simple API to get the host name and addresses by using the internals of Windows or Linux. What is missing is an interface to query actual DNS servers (custom endpoints/ports) and get more information then just the IP or local host name. # Use Case One use case could be accessing service discovery (e.g. Consul) to ask for available services by name via DNS: A local Consul DNS endpoint runs on port 8600 and you'd either query with qtype `SRV` or `A`. To query for a service by name in consul, you use `.service.consul`. Example query and answers with dig asking for the consul service itself: ``` $ dig @127.0.0.1 -p 8600 consul.service.consul SRV ;; QUESTION SECTION: ;consul.service.consul. IN SRV ;; ANSWER SECTION: consul.service.consul. 0 IN SRV 1 1 8300 hostname.node.dc1.consul. ;; ADDITIONAL SECTION: hostname.node.dc1.consul. 0 IN A 127.0.0.1 ``` The SRV answer gives me the port the service instance is running on, the additional answer gives me the IP address. The result can contain multiple instances. # Why another API? There are a few other implementations for .NET today, but none of which are really maintained as far as I know nor do they have support for netstandard1.x. # Proposed API ## Usage Creating a lookup client with different overloads: ``` CSharp // create a client using the dns server configured by your network interfaces var lookup = new LookupClient(); // create a client using a DNS server by IP on default port 53 var lookup = new LookupClient(IPAddress.Parse(""127.0.0.1"")); // create a client using a DNS server on port 8600 var endpoint = new IPEndPoint(IPAddress.Parse(""127.0.0.1""), 8600); var lookup = new LookupClient(endpoint); ``` Using the client to query for standard qtypes: ``` CSharp // query for google.com with qtype ANY DnsQueryResponse result = await lookup.QueryAsync(""google.com"", QueryType.ANY); // qtype A and explicitly setting the qclass of the query DnsQueryResponse result = await lookup.QueryAsync(""google.com"", QueryType.A, QueryClass.IN); // reverse query the host name of an IP Address using arpa DnsQueryResponse result = await lookup.QueryReverseAsync(IPAddress.Parse(""192.168.1.1"")); ``` The result in all cases would contain the response header information, the list of resource records and the question. ## API LookupClient: ``` CSharp public class LookupClient { // dis/enables caching of responses (TTL would be driven by the server's response) bool UseCache { get; set; } public LookupClient(); public LookupClient(params IPEndPoint[] nameServers); public LookupClient(params IPAddress[] nameServers); public LookupClient(DnsMessageHandler messageHandler, ICollection nameServers) public Task QueryAsync(string query, QueryType queryType); public Task QueryAsync(string query, QueryType queryType, QueryClass queryClass); public Task QueryAsync(string query, QueryType queryType, CancellationToken cancellationToken); public Task QueryAsync(string query, QueryType queryType, QueryClass queryClass, CancellationToken cancellationToken); public Task QueryReverseAsync(IPAddress ipAddress); public Task QueryReverseAsync(IPAddress ipAddress, CancellationToken cancellationToken); } // message handler could be implemented with UDP or TCP, or cool channels or what ever ;) public class DnsMessageHandler { public Task QueryAsync(IPEndPoint server, DnsRequestMessage request, CancellationToken cancellationToken); // processes the query and generates the actual data to send to the server public virtual byte[] GetRequestData(DnsRequestMessage request) // processes the raw response data public virtual DnsResponseMessage GetResponseMessage(byte[] responseData) } // the request message public class DnsRequestMessage { public DnsRequestHeader Header { get; } public DnsQuestion[] Questions { get; } } // the request header public class DnsRequestHeader { public DnsHeaderFlag HeaderFlags {get;} public int Id { get; } public DnsOpCode OpCode {get;} public int QuestionCount { get; } public bool UseRecursion {get;} } // Question contains the actual query, used by response and request public class DnsQuestion { public DnsName QueryName { get; } public QueryClass QuestionClass { get; } public QueryType QuestionType { get; } // the response object returned by the lookup client public class DnsQueryResponse { public IReadOnlyCollection Additionals { get; } public IReadOnlyCollection AllRecords public IReadOnlyCollection Answers { get; } public IReadOnlyCollection Authorities { get; } public string ErrorMessage { get; } public bool HasError { get; } public DnsResponseHeader Header { get; } public IReadOnlyCollection Questions { get; } } // see https://tools.ietf.org/html/rfc1035#section-3.2.2 and 3.2.3 public enum QueryType : short { A = 1, NS = 2, ... } // see https://tools.ietf.org/html/rfc1035#section-3.2.4 public enum QueryClass : short { IN = 1, CS = 2, CH = 3, HS = 4 } ``` There are some more types like return codes / errors etc. ### RFC References Base RFC https://tools.ietf.org/html/rfc1035 Request and response header share the same RFC https://tools.ietf.org/html/rfc6895#section-2. But only some fields / flags are used in the request, others in the response. The length is always 12 bytes. ``` 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ |QR| OpCode |AA|TC|RD|RA| Z|AD|CD| RCODE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | QDCOUNT/ZOCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ANCOUNT/PRCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | NSCOUNT/UPCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ARCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ ``` The request or response data follows the header data... I will not list all the details, only the in my opinion most important qtypes/RRs A: https://tools.ietf.org/html/rfc1035#section-3.4.1 NS: https://tools.ietf.org/html/rfc1035 AAAA: https://tools.ietf.org/html/rfc3596#section-2.2 PTR (for reverse queries): https://tools.ietf.org/html/rfc1035#section-3.3.12 SRV: https://tools.ietf.org/html/rfc2782 MX: https://tools.ietf.org/html/rfc1035#section-3.3.9 TXT: https://tools.ietf.org/html/rfc1035#section-3.3.14 SOA: https://tools.ietf.org/html/rfc1035#section-3.3.13 # Implementation I couldn't help and did a reference/example implementation of the whole thing here: https://github.com/MichaCo/DnsClient.NET. If we come up with a better API which goes into corefx I'm happy to discontinue that project. But I needed the functionality now ;) @CIPop I'm creating this proposal as mentioned in #13613 Thanks, M" +13891 area-Serialization Fix IXmlTextReaderInitializerTest The test failed because in the core, when call XmlDictionaryWriter.CreateTextWriter, it will return an object of XmlDictionaryAsyncCheckWriter, which not implment the IXmlTextWriterInitializer. Update the test code as a simple basic one. The code in the core: ``` public static XmlDictionaryWriter CreateTextWriter(Stream stream, Encoding encoding, bool ownsStream) { XmlUTF8TextWriter writer = new XmlUTF8TextWriter(); writer.SetOutput(stream, encoding, ownsStream); var asyncWriter = new XmlDictionaryAsyncCheckWriter(writer); return asyncWriter; } ``` The code in desktop: ``` static public XmlDictionaryWriter CreateTextWriter(Stream stream, Encoding encoding, bool ownsStream) { XmlUTF8TextWriter writer = new XmlUTF8TextWriter(); writer.SetOutput(stream, encoding, ownsStream); return writer; } ``` Fix #12902 @shmao @zhenlan @mconnew +13892 area-Meta Tracking: Revisit APIs to use Span We just need to wait for `Span` to mature a bit. - #7593 - `Int32.Parse`, `Int32.TryParse` - https://github.com/dotnet/corefx/issues/13892#issuecomment-262382196 - `Parse` on all primitive types (`sbyte.Parse` `byte.Parse` `short.Parse` ... `ulong.Parse`, `DateTime.Parse`, `Guid.Parse`, etc) - #13869 - `StringBuilder.Append` - https://github.com/dotnet/corefx/issues/13892#issuecomment-262576835 - `ImmutableArray.implicit operator ReadOnlySpan()` - https://github.com/dotnet/corefx/issues/7656#issuecomment-231217120 - `string.Split` - https://github.com/dotnet/corefx/issues/12672#issue-183177295 - `Guid.GetBytes(out byte[])`, `Decimal.GetBits(decimal, out byte[])` - https://github.com/dotnet/corefx/issues/12672#issuecomment-253959625 - Look at all methods which take new array (e.g. `out byte[]`) - #14255 - `Encoding.GetBytes` - https://github.com/dotnet/corefx/issues/17281 - `SocketAsyncEventArgs.SetBuffer(Memory)` - https://github.com/dotnet/corefx/issues/13892#issuecomment-287667969 - `Stream.Read/Write[Async]` and `Socket.Send/Receive[Async]` - https://github.com/dotnet/corefx/issues/6740#issuecomment-287684217 - IO APIs - #17378 - `IPAddress` - #18693 - Crypto - #18847 - `ImmutableArray.AsReadOnlySpan()` +13893 area-System.Net Optimize WebUtility.HtmlEncode and WebUtility.HtmlDecode When porting `WebUtility` missing members: ``` csharp public static class WebUtility { public static void HtmlDecode(string value, TextWriter output); public static void HtmlEncode(string value, TextWriter output); } ``` We found that we already had a private method on .NET Core that would do exactly the same as this two members but instead of having a `TextWriter` as the output they have a `StringBuilder`. This members where ported on PR #13875 with a simple solution of just calling the existing private member and writing the result to the `TextWriter output` [Here is the source code](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/src/System/Net/WebUtility.cs#L55). On PR #13875 we had a large discussion with different solutions. With a conclusion that the best one is @jkotas's solution. cc @danmosemsft @AlexGhiondea +13894 area-System.Security Remove P2P references from S.S.Crypto.* projects +13895 area-System.Threading Fix/disable ThreadPool.SetMaxThreads test in preparation for fix Related to dotnet/coreclr#8236 +13897 area-System.Runtime Reflection breaking change in Microsoft.NETCore.App 1.1.0 "One of the packages that `Microsoft.NETCore.App` brings in has a breaking change in 1.1.0 compared to 1.0.1 that causes an exception when using `Microsoft.CodeAnalysis.CSharp.Scripting.CSharpScript`: >{System.ArgumentException: Cannot bind to the target method because its signature or security transparency is not compatible with that of the delegate type. at System.Reflection.RuntimeMethodInfo.CreateDelegateInternal(Type delegateType, Object firstArgument, DelegateBindingFlags bindingFlags, StackCrawlMark& stackMark) at System.Reflection.RuntimeMethodInfo.CreateDelegate(Type delegateType) at Roslyn.Utilities.ReflectionUtilities.CreateDelegate[T](MethodInfo methodInfo) at Microsoft.CodeAnalysis.Scripting.ScriptBuilder.Build[T](Compilation compilation, DiagnosticBag diagnostics, CancellationToken cancellationToken) at Microsoft.CodeAnalysis.Scripting.ScriptBuilder.CreateExecutor[T](ScriptCompiler compiler, Compilation compilation, CancellationToken cancellationToken) at Microsoft.CodeAnalysis.Scripting.Script`1.GetExecutor(CancellationToken cancellationToken) at Microsoft.CodeAnalysis.Scripting.Script`1.RunAsync(Object globals, Func`2 catchException, CancellationToken cancellationToken) at Microsoft.CodeAnalysis.CSharp.Scripting.CSharpScript.RunAsync[T](String code, ScriptOptions options, Object globals, Type globalsType, CancellationToken cancellationToken) at Microsoft.CodeAnalysis.CSharp.Scripting.CSharpScript.EvaluateAsync[T](String code, ScriptOptions options, Object globals, Type globalsType, CancellationToken cancellationToken) at Repro.Program.Main(String[] args) in C:\Users\ansvyryd\Documents\Visual Studio 2015\Projects\Repro\src\Repro\Program.cs:line 16} [Repro13897.zip](https://github.com/dotnet/corefx/files/607804/Repro13897.zip) ```c# public class Program { public static void Main(string[] args) { var script = ""new Point {X = 1, Y = -2}""; var result = CSharpScript.EvaluateAsync( script, ScriptOptions.Default .WithReferences(typeof(Point).GetTypeInfo().Assembly) .AddImports(typeof(Point).GetTypeInfo().Namespace)) .GetAwaiter().GetResult(); Console.WriteLine($""{result.X} {result.Y}""); } } public class Point { public int X { get; set; } public int Y { get; set; } } ```" +13899 area-System.Security Cleanup the tests around PaddingMode See comments from: https://github.com/dotnet/corefx/pull/13859#pullrequestreview-9779198 +13900 area-System.Net HttpWebRequest and HttpWebResonse - expose missing members Implement + expose + test these methods: ``` P:System.Net.HttpWebRequest.Connection P:System.Net.HttpWebRequest.ContentLength P:System.Net.HttpWebRequest.DefaultCachePolicy P:System.Net.HttpWebRequest.PreAuthenticate P:System.Net.HttpWebRequest.Proxy P:System.Net.HttpWebRequest.Timeout M:System.Net.HttpWebRequest.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Net.HttpWebRequest.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Net.HttpWebRequest.System#Runtime#Serialization#ISerializable#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) P:System.Net.HttpWebResponse.IsMutuallyAuthenticated M:System.Net.HttpWebResponse.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Net.HttpWebResponse.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) M:System.Net.HttpWebResponse.System#Runtime#Serialization#ISerializable#GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) ``` +13901 area-System.Net HttpListener - expose missing APIs Implement + expose + test these APIs: ```c# public class HttpListenerTimeoutManager { public TimeSpan DrainEntityBody { get; set; } public TimeSpan EntityBody { get; set; } public TimeSpan HeaderWait { get; set; } public TimeSpan IdleConnection { get; set; } public long MinSendBytesPerSecond { get; set; } public TimeSpan RequestQueue { get; set; } } public class HttpListenerException : Win32Exception { protected HttpListenerException(SerializationInfo serializationInfo, StreamingContext streamingContext); public override int ErrorCode { get; } } public sealed class HttpListener : IDisposable { public ServiceNameCollection DefaultServiceNames { get; } public ExtendedProtectionPolicy ExtendedProtectionPolicy { get; set; } public HttpListener.ExtendedProtectionSelector ExtendedProtectionSelectorDelegate { get; set; } public HttpListenerTimeoutManager TimeoutManager { get; } public delegate ExtendedProtectionPolicy ExtendedProtectionSelector(HttpListenerRequest request); } public sealed class HttpListenerContext { public Task AcceptWebSocketAsync(string subProtocol, TimeSpan keepAliveInterval); } ``` +13902 area-System.Security Refactor Padding tests /cc @bartonjs @steveharter +13903 area-System.Net Implement authentication for HttpListener using NTAuthentication from Common location. cc @karelz +13905 area-System.Net Port System.Net.NetworkCredential missing members Fixes #12134 cc @danmosemsft @AlexGhiondea @alecont +13906 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test/ProxyExplicitlyProvided_DefaultCredentials_Ignored Opened on behalf of @jiangzeng The test `System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test/ProxyExplicitlyProvided_DefaultCredentials_Ignored` has failed. System.AggregateException : One or more errors occurred. (Error while copying content to a stream.) (One or more errors occurred. (Error while copying content to a stream.))\r ---- System.Net.Http.HttpRequestException : Error while copying content to a stream.\r -------- System.IO.IOException : The read operation failed, see inner exception.\r ------------ System.Net.Http.WinHttpException : The connection with the server was terminated abnormally\r ---- System.AggregateException : One or more errors occurred. (Error while copying content to a stream.)\r -------- System.Net.Http.HttpRequestException : Error while copying content to a stream.\r ------------ System.IO.IOException : The read operation failed, see inner exception.\r ---------------- System.Net.Http.WinHttpException : The connection with the server was terminated abnormally Stack Trace: at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) at System.Threading.Tasks.Task.WaitAll(Task[] tasks) at System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test.ProxyExplicitlyProvided_DefaultCredentials_Ignored() ----- Inner Stack Trace #1 (System.Net.Http.HttpRequestException) ----- at System.Net.Http.HttpContent.d__50.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpResponseStream.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpContent.d__50.MoveNext() ----- Inner Stack Trace ----- ----- Inner Stack Trace #2 (System.AggregateException) ----- at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test.<>c.b__2_0(Task`1 t) at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke() at System.Threading.Tasks.Task.Execute() ----- Inner Stack Trace ----- at System.Net.Http.HttpContent.d__50.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpResponseStream.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpContent.d__50.MoveNext() ----- Inner Stack Trace ----- Build : Master - 20161122.03 (Core Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161122.03/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test~2FProxyExplicitlyProvided_DefaultCredentials_Ignored +13907 area-System.Net Test failure: System.Net.Sockets.Tests.DualModeConnectToIPAddress/ConnectV4IPAddressToV6Host_Fails Opened on behalf of @jiangzeng The test `System.Net.Sockets.Tests.DualModeConnectToIPAddress/ConnectV4IPAddressToV6Host_Fails` has failed. Assert.Throws() Failure Expected: typeof(System.Net.Sockets.SocketException) Actual: (No exception was thrown) Stack Trace: at System.Net.Sockets.Tests.DualModeConnectToIPAddress.ConnectV4IPAddressToV6Host_Fails() Build : Master - 20161122.03 (Core Tests) Failing configurations: - Ubuntu.1604.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161122.03/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DualModeConnectToIPAddress~2FConnectV4IPAddressToV6Host_Fails +13909 area-System.Linq Add Enumerable.Repeat overload accepting a Func. ## Background The current `Enumerable.Repeat` function, accepting a `T`, returns an enumerable with the same value repeated N times. Sometimes, however, you don't want the same value repeated N times but the same function called N times. For example: ```cs var r = new Random(); var randomNumbers = Enumerable.Repeat(r.Next(), 100); // Newbie: Why isn't this working? var reallyRandomThisTime = Enumerable.Repeat(_ => r.Next(), 100); // That does the trick! ``` The current workaround for this is to do something like `Enumerable.Range(0, size).Select(_ => r.Next())`, which is not really as readable. I [do it myself](https://gist.github.com/jamesqo/25e02482e5a9257b52ee3b6c91bfc556#file-skipregression-cs-L17) all the time in my benchmarks for example, & you can see such examples on [StackOverflow](http://stackoverflow.com/a/4903861/4077294). ## Proposal We should add an overload of `Repeat` accepting a `Func`. This function will be evaluated N times as the enumerable is iterated. The input to each invocation of the function will be the result of the last invocation; the input to the first invocation will either be a user-specified seed, or `default(T)` if no seed was specified. ```cs namespace System.Linq { public static class Enumerable { public static IEnumerable Repeat(Func selector, int count); public static IEnumerable Repeat(T seed, Func selector, int count); } } ``` ## Usage ```cs // Numbers from 100 to 1 Enumerable.Repeat(100, n => n - 1, 100); // Collect 100 nodes of a linked list (slowly) Enumerable.Repeat(head, n => n.Next, 100); // Record the results of a benchmark 10 times Enumerable.Repeat(_ => RunBenchmark(), 10); ``` +13910 area-System.Linq Run the selector on items during Select.Count chains. Per @VSadov's comment at https://github.com/dotnet/corefx/pull/12703#issuecomment-262051319: > Re: can we skip selectors/predicates in this optimization > > It is a tough one. > > Generally, assuming that anything can have sideeffects is indeed very > constraining to what kind of optimizations we can do. In some cases it > is hard to specify how much of the user code runs and in what order. > We definitely reserve the rights to substitute iteration for indexing > when we find that possible. > > After thinking about this for quite a while, I think Count is a kind > of aggregating operator. Even though the actual results are not > collected, it seems reasonable for the user to expect that they would > be computed, and as such he may expect to observe the sideeffects from > selectors/predicates etc. > > I.E. – I could see someone using a selector that writes to the > console, and use Count as a way to run the query for sideeffects only. > > I think we should not take the change and check for other changes like > this, that we might have accepted in the past. (like: #11841 ) > > Here is what I think is the root cause - We do have a method for > obtaining counts internally - > > GetCount(bool onlyIfCheap) > > I think the method should not be used to bypass selectors when > actually running the query. It is ok to use it to preallocate internal > buffers. That still have an assumption that the “cheap” way of > obtaining the underlying “.Count” is idempotent, but it is a kind of > assumption that we agreed in the past to be acceptable. > > It does not seem to be acceptable to assume that user-supplied > selectors/predicates are sideeffects-free in a context of aggregating > query. > > I.E. – > > it would be ok to preallocate a buffer based on GetCount(bool > onlyIfCheap) it would be ok to compute actual Count via , but only as > long as there are no funcs to run if we have selectors/predicates or > other funcs, they must run in aggregating queries. So in other words, we should undo all the `GetCount` optimizations that skip running the selector if `onlyIfCheap` if false. But if it's true, we're probably using it to preallocate a buffer of some sort, & are probably going to use it anyways. So in those scenarios it should be ok to not run the selector. cc @JonHanna +13911 area-Infrastructure FileLoadException when trying to run tests for a different TestTFM "I followed the directions [here](https://github.com/dotnet/corefx/blob/0300e2c42e3ce96240e05daff6f6c5a5e03081a6/Documentation/project-docs/developer-guide.md#running-tests-in-a-different-tfm) and tried running the tests for System.IO on desktop by executing `msbuild /p:TestTFM=net46 /t:RebuildAndTest` in System.IO\tests. Unfortunately, I get the following output when I try to do so: ``` Executing in C:\Users\james\Code\git\corefx\bin\tests\AnyOS.AnyCPU.Debug\System.IO.Tests\default.net46\ Hard linking dependent files... Finished linking needed files, moving to running tests. Running tests... Start time: 23:21:56.24 Command(s): call xunit.console.exe System.IO.Tests.dll -noshadow -xml testResults.xml -notrait Benchmark=true -notrait category=nonnet46tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonwindowstests xUnit.net Console Runner (64-bit .NET 4.0.30319.42000) System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Finished running tests. End time=23:22:19.28, Exit code = 1 ``` The same error occurs when the TestTFM is net462. Interestingly, however, I get different errors when running for net463: https://gist.github.com/jamesqo/0b2093b4841a4897e997d9bcf1be8dd9 (Ctrl + F and type ""[FAIL]"" to see them). It looks like System.Runtime is loading ok in that case, but some other assemblies such as System.Linq are not." +13912 area-System.Runtime Re-enable tests for StringBuilder Fixes #13047 cc @danmosemsft @AlexGhiondea +13913 area-System.Net Check for SystemNetworkCredential in CredentialCache in Mail cc @CIPop @karelz Fix issue #12526 +13914 area-System.IO ARM: ZLibException when working with GZipStream (System.IO.Compression.ZipFile 4.3.0) "In my UWP app, I am using the NuGet packages `Microsoft.Data.Sqlite 1.1.0` and `Microsoft.EntityFrameworkCore.Sqlite 1.1.0`, both requiring the package `System.IO.Compression.ZipFile 4.3.0` . When using a GZipStream in my app, I get a `System.IO.Compression.ZLibException (""The underlying compression routine could not be loaded correctly."")`. InnerException: `Unable to load DLL 'clrcompression.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)`. Happens on mobile (ARM) only! This is how I am using the stream: ``` using (GZipStream stream = new GZipStream(compressedStream, CompressionMode.Compress, true)) { await fileStream.CopyToAsync(stream); } ``` Problem can be reproduced by installing the `System.IO.Compression.ZipFile 4.3.0` package only." +13915 area-System.Memory Span: Add Span.Clear() As discussed in https://github.com/dotnet/corefx/issues/13427 we would like to add a `Clear()` method to `Span` to make span the goto place for safe and fast memory operations. ### Rationale and Usage Provide a safe yet fast way of clearing (settings memory to zero) for any type of contiguous memory; managed or unmanaged. ```csharp var span = new Span(array, 3, 10); span.Clear(); ``` ### Proposed API Add a single method `Clear()` to the existing `Span` API e.g.: ```csharp public class Span { public void Clear(); } ``` ### Details For reference free value types this can forward directly to `Unsafe.InitBlock`, see https://github.com/dotnet/corefx/issues/13427, but should otherwise try to be optimal, so this function can be used as the reference implementation for all such usages in .NET. That's the vision at least, in my mind. ### Open Questions Open question is whether the `InitBlock` should be generic to match Span usage, or `Span` should handle forwarding to a `ref byte` version of this. @jkotas @omariom @benaadams @karelz @jamesqo @davidfowl +13917 area-System.Linq Allow for half-lifted conversions in expressions. If a conversion existed from a value type to a nullable type then conversions would not be lifted for the nullable form of the source type. Fix this. Fixes #11992. Also select such lifted operations if the methodless form of the `Convert` factory is used to request automatic selection of convert methods. As well as tests covering this case, include a test ensuring the lifted form is not picked by this change should a direct nullable-to-nullable conversion be available. +13919 area-System.Runtime New Type `System.Runtime.CompilerServices.DependentHandle` There is an internal strut `System.Runtime.CompilerServices.DependentHandle` that is currently only used by `System.Runtime.CompilerServices.ConditionalWeakTable`. The struct allows for a dependency between two objects to be created by a third type without modifying the first two classes, and only using up a pointer's worth of memory in the third type. I have personally find use for such a class, [in my Weak Delegates system for example](https://github.com/SamuelEnglard/weakdelegates/blob/master/WeakDelegates/DependentHandle%602.cs). While in there I had to use slightly convoluted tricks to make it work I believe a more proper implementation included in the BCL would be useful. # API ```csharp namespace System.Runtime.CompilerServices { [ComVisible(false)] public struct DependentHandle : IDisposable where TPrimary : class where TSecondary : class { public bool IsAllocated { get; } [SecurityCritical] public DependentHandle(TPrimary primary, TSecondary secondary); [SecurityCritical] public bool TryGetPrimary(out TPrimary primary); [SecurityCritical] public bool TryGetPrimaryAndSecondary(out TPrimary primary, out TSecondary secondary); [SecurityCritical] public void Dispose(); public override string ToString(); } } ``` It should be noted that my struct is type safe, unlike the internal one. +13920 area-System.Runtime Switch to use CoreLib Path class. Leaving the code for UAP for now- we may end up needing to keep it. (Notably for the Crypto) @ianhays +13922 area-System.Net SecurityProtocolType Ssl3 should be marked as obsolete Similar to obsolete members in `SslProtcols`. @davidsh @karelz @blowdart PTAL +13923 area-System.IO Enable tests for Unix FileStream Lock/Unlock resolves the final part of https://github.com/dotnet/corefx/issues/5964 @stephentoub @JeremyKuhne +13924 area-System.Runtime Expose a cached StringBuilder We use `StringBuilderCache` to improve performance for short-lived usages of `StringBuilder`. Numerous other codebases have copied this. I want to suggest that we: (1) expose `StringBuilderCache` and/or (2) expose a cached `StringBuilder` on `StringBuilder`. ### New Member Option A Aligns with `StringBuilderCache`, although I prefer to flip the ordering of the words for `GetStringAndRelease`- it makes more sense from a discovery perspective. ``` diff namespace System.Text { public sealed class StringBuilder { + public static StringBuilder Acquire(int capacity); + public static void Release(StringBuilder sb); + public static string ReleaseAndGetString(StringBuilder sb); } } ``` ### New Member Option B Aligns with `ArrayPool` terminology. ``` diff namespace System.Text { public sealed class StringBuilder { + public static StringBuilder Rent(int capacity); + public static void Return(StringBuilder sb); + public static string ReturnAndGetString(StringBuilder sb); } } ``` ### Expose StringBuilderCache Option ``` diff namespace System.Text { + public static class StringBuilderCache + { + public static StringBuilder Acquire(int capacity); + public static void Release(StringBuilder sb); + public static string ReleaseAndGetString(StringBuilder sb); + } } ``` +13925 area-System.Security Add PasswordDeriveBytes and CryptDeriveKey methods Addresses issues: https://github.com/dotnet/corefx/issues/12966 Port Rfc2898DeriveBytes.CryptDeriveKey https://github.com/dotnet/corefx/issues/11118 Port T:System.Security.Cryptography.PasswordDeriveBytes For Rfc2898DeriveBytes.CryptDeriveKey, PNSE exception is raised due to that type being in Algorithms and requirement that it calls CAPI (not CNG). The comment on that method explains it in more detail. For PasswordDeriveBytes, two native methods needed to be ported (CapiHelper.DeriveKey and UnloadKey) from desktop. @bartonjs please review. +13926 area-System.Globalization Support UpperCaseFirst enum value in CompareOptions "Currently System.Xml.Xsl support the sort option ""uppercase-first"" option. we have supported this on Linux by using unexposed enum value UpperCaseFirst = 0x01000000 https://github.com/dotnet/coreclr/pull/8283 https://github.com/dotnet/corefx/issues/13236 we need to publicly expose this option after figuring out what is the best way to support it on Windows as the OS doesn't support this option." +13927 area-System.Data SqlConnection.CreateCommand() - Auto-Enlist in Pending Local Transaction "When CreateCommand() is called on a SqlConnection that is in a transaction, the SqlCommand returned by that method is **not** associated with the connection's transaction. Instead, the command must be explicitly informed of the transaction or an exception similar to the following will be thrown when the command is executed: > MethodInvocationException: Exception calling ""ExecuteReader"" with ""0"" argument(s): ""ExecuteReader requires the command to have a transaction when the connection assigned to the command is in a pending local transaction. The Transaction property of the command has not been initialized."" ## Cost of the Manual Wire-Up * The need to manually associate the command with the connection's transaction adds a small amount of code clutter. using (var connection = new SqlConnection(connectionString)) { connection.Open(); var transaction = connection.BeginTransaction(); using (var command = connection.CreateCommand()) { command.Transaction = transaction; // code clutter } * More significantly, the need to explicitly set up this association when a transaction is used means that modifying a high-level component to use transactions requires code changes to lower-level components sharing the same SqlConnection, even when these lower-level components are transaction-agnostic. class Service { public void Process() { /* Modifying Process() to use transactions isn't as simple as uncommenting the below because component also needs to be modified to wire up its SqlCommand to use the transaction even though component may not care whether it is in a transaction. */ // using (var transaction = connection.BeginTransaction()) // { component.Process(connection); // transaction.Commit(); // } } } * All methods executing SqlCommands on the connection when the transaction is in use must have access to the transaction object. SqlConnection does not provide a public property exposing its transaction, so the object either must be passed around or accessed [via reflection](http://stackoverflow.com/questions/417024/can-i-get-a-reference-to-a-pending-transaction-from-a-sqlconnection-object). using (var command = connection.CreateCommand()) { command.Transaction = connection.Transaction; // not possible because connection does not publically expose the transaction } ## Proposal When CreateCommand() is called on a SqlConnection in a transaction, the SqlCommand it returns should be associated with the connection's transaction, eliminating the need for the explicit wire-up." +13930 area-System.Security Port CryptoConfig.EncodeOID Add missing EncodeOID() method to CryptoConfig https://github.com/dotnet/corefx/issues/12327 Port System.Security.Cryptography.CryptoConfig @bartonjs please review. +13931 area-System.Runtime Move Get/SetEnvironmentVariable to CoreLib Due to the lack of thread safety with environment variables on Unix the values are cached in the CoreFX [implementation]( https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/src/System/Environment.Unix.cs#L19). This causes `Path.GetTempPath()` and anything else that tries to get an environment variable in CoreLib to not have the up-to-date values. See the failing tests in https://github.com/dotnet/corefx/pull/13920. We should move the implementation to Internal.Runtime.Augments so we have one source of truth. +13933 area-System.ComponentModel Remove the workaround for EscapedCodeBase +13934 area-Infrastructure Global DTAR does not return reliable closure of NuGet packages containing .NET Core assemblies Need to properly communicate that .NET Core packages shipped post RTM will include a marker .nuget\packages\System.Foo\x.x.x\useSharedDesignerContext.txt. +13935 area-System.Security Port CryptoStream.FlushAsync Port the FlushAsync method from netfx; several other classes have the same logic and comments. https://github.com/dotnet/corefx/issues/13872 Add missing CryptoStream::FlushAsync +13936 area-System.Runtime Expose & add tests for Array.Fill implementation Now that the `Array.Fill` api has been added to coreclr & corert, the api needs to be exposed & tests added. I'll do this later when I have time, possibly when I finish the HashCode PR. +13937 area-Infrastructure Add Fedora 25 to CI / RID Graph / Packages https://fedoraproject.org/wiki/Releases https://hub.docker.com/_/fedora/ +13938 area-System.Net Test failure: System.Net.Http.Functional.Tests.ResponseStreamTest/ReadAsStreamAsync_Cancel_TaskIsCanceled Opened on behalf of @jiangzeng The test `System.Net.Http.Functional.Tests.ResponseStreamTest/ReadAsStreamAsync_Cancel_TaskIsCanceled` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.Net.Http.Functional.Tests.ResponseStreamTest.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20161123.03 (Core Tests) Failing configurations: - Windows.7.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161123.03/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_Cancel_TaskIsCanceled +13940 area-System.Globalization Make CultureInfo properties UserDefaultCulture and UserDefaultUICulture public `CultureInfo` currently implement `InstalledUICulture`, `UserDefaultCulture` and `UserDefaultUICulture` properties. `InstalledUICulture` property is public, but `UserDefaultCulture` and `UserDefaultUICulture` properties are internal. `UserDefaultCulture` and `UserDefaultUICulture` properties **will be very helpful to get current user cultures**. So I suggest make UserDefaultCulture and UserDefaultUICulture properties public. # Rationale and Usage Get current user cultures. Using system culture instead of current user culture is bad because each user on Windows can have different culture settings. Now if thread culture was changed, we can not get culture for current user. Also if `DefaultThreadCurrentCulture` is changed we can not set it back to current user culture. # Proposed API ```cs public class CultureInfo { public static CultureInfo UserDefaultCulture; public static CultureInfo UserDefaultUICulture; } ``` +13942 area-System.Linq Specialize the single-selector overload of SelectMany. `e.SelectMany(i => i)` is a very popular option for flattening a list of enumerables: http://stackoverflow.com/questions/1590723/flatten-list-in-linq This PR optimizes `SelectMany` calls followed by `ToArray` or `ToList`, leading to a substantial (~40%) speedup. Instead of looping through each item of the projected sequence, yield returning it from the iterator, and adding it to the list/`LargeArrayBuilder`, we simply call `AddRange`. Performance test: https://github.com/jamesqo/Dotnet/blob/05daf42403b615942706a7e9be32c8b22db80e67/Program.cs Results: https://gist.github.com/jamesqo/635e6e49b3ceb6e9527161f3472188f7 You may notice that there are a lot of regressions (substantially more allocations happening) for `ToList`. That puzzled me too, until I found out the version of S.P.CoreLib I was using did not include [this change](https://github.com/dotnet/coreclr/pull/6892); in my tests, a buffer was being allocated every time `List.AddRange` was called. Still, however, the new implementation was faster. I've also added more testing for these changes in the PR. cc @JonHanna @VSadov @stephentoub +13945 area-System.Linq Expressions simplifiy type methods Remove `GetStaticMethods` helper, replacing with call to `GetMethods`, now that the form with `BindingFlag` overloads is available to use. Contributes to #8576. Remove conditional call to ToList as this makes it no longer useful. Update signature called into to allow array iteration in the `foreach`. Remove `implicitOnly` parameter to `GetUserDefinedCoercion`: It's only ever false. Remove the check for it, and remove it being called up the stack. Replace filtered call to `DeclaredMethods` with `GetMethods` with appropriate flags. Also contributes to #8576. Move retryForLifted test down to the branch that depends on it, now that it no longer needs to cache a collection +13946 area-System.Net Android: In UnixIPInterfaceProperties.cs, GetDnsAddresses does not work "Instead on android you should get the linux properties net.dns1, net.dns2, ... Shell: `getprop net.dns1 ` Code: ``` for (i = 1; i <= MAX_DNS_PROPERTIES; i++) { char prop_name[PROP_NAME_MAX]; snprintf(prop_name, sizeof(prop_name), ""net.dns%d"", i); __system_property_get(prop_name, dns); } ``` " +13950 area-System.Numerics [WIP] Implement and add tests for System.HashCode. This PR implements `System.HashCode` as proposed in #8034. Please note that this is still WIP since I can't get the tests to build; [here](https://gist.github.com/jamesqo/fc427bbc29154bda060732d61502fcb1) is the output when I attempt to run `msbuild /t:Rebuild` on the tests. Once that is resolved, I will be able to move forward with this PR. Note: I chose to include both `Empty` and `Create` static methods, and I also overrode `ToString`. Fixes #8034 +13951 area-System.Net CI failures in WinHttpHandlerUnitTests See https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/733/ ``` System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDisposeDispose_HandleIsNotClosed System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDispose_HandleIsNotClosed System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.SetParentHandle_CreateParentCreateChildDisposeParent_ParentNotClosed System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefReleaseDispose_HandleIsClosed System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefRelease_HandleIsNotClosed System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDisposeRelease_HandleIsClosed ``` with errors like: ``` 21:28:12 System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDisposeDispose_HandleIsNotClosed [FAIL] 21:28:12 Assert.Equal() Failure 21:28:12 Expected: 1 21:28:12 Actual: 3 21:28:12 Stack Trace: 21:28:12 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http.WinHttpHandler\tests\UnitTests\SafeWinHttpHandleTest.cs(41,0): at System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDisposeDispose_HandleIsNotClosed() 21:28:12 System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDispose_HandleIsNotClosed [FAIL] 21:28:12 Assert.Equal() Failure 21:28:12 Expected: 1 21:28:12 Actual: 2 21:28:12 Stack Trace: 21:28:12 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http.WinHttpHandler\tests\UnitTests\SafeWinHttpHandleTest.cs(24,0): at System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDispose_HandleIsNotClosed() 21:28:12 System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.SetParentHandle_CreateParentCreateChildDisposeParent_ParentNotClosed [FAIL] 21:28:12 Assert.Equal() Failure 21:28:12 Expected: 2 21:28:12 Actual: 4 21:28:12 Stack Trace: 21:28:12 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http.WinHttpHandler\tests\UnitTests\SafeWinHttpHandleTest.cs(135,0): at System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.SetParentHandle_CreateParentCreateChildDisposeParent_ParentNotClosed() 21:28:12 System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefReleaseDispose_HandleIsClosed [FAIL] 21:28:12 Assert.Equal() Failure 21:28:12 Expected: 0 21:28:12 Actual: 4 21:28:12 Stack Trace: 21:28:12 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http.WinHttpHandler\tests\UnitTests\SafeWinHttpHandleTest.cs(88,0): at System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefReleaseDispose_HandleIsClosed() 21:28:12 System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefRelease_HandleIsNotClosed [FAIL] 21:28:12 Assert.Equal() Failure 21:28:12 Expected: 1 21:28:12 Actual: 5 21:28:12 Stack Trace: 21:28:12 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http.WinHttpHandler\tests\UnitTests\SafeWinHttpHandleTest.cs(71,0): at System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefRelease_HandleIsNotClosed() 21:28:12 System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDisposeRelease_HandleIsClosed [FAIL] 21:28:12 Assert.Equal() Failure 21:28:12 Expected: 0 21:28:12 Actual: 5 21:28:12 Stack Trace: 21:28:12 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http.WinHttpHandler\tests\UnitTests\SafeWinHttpHandleTest.cs(58,0): at System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDisposeRelease_HandleIsClosed() ``` Seems different from other WinHttpHandler test failures reported earlier. +13953 area-System.Linq Restore the use of GetRawConstantValue Yet another method that came back; reverting to the original code in .NET Framework rather than having a `TryGetRawConstantValue` helper. +13954 area-System.Linq Remove unnecessary First helper in System.Dynamic.Utils This helper is pretty much the same as `Enumerable.First` and its two uses either already know the first element or can simply index into a collection to get it. It seems we can do away with it. +13956 area-System.Linq Using more cached reflection in CallSite `CallSite` uses a bunch of `CallSiteOps` methods and uses the `Call(Type, string, Type[], Expression[])` factory method overload to find these methods on `typeof(CallSiteOps)`. This results in two inefficiencies: * Repeated lookup of the same methods through reflection * Allocation of a `params` array By using cached reflection, we can hit the `Call` factory overloads with a `MethodInfo` and a fixed number of `Expression` arguments, thus avoiding both costs. +13958 area-System.Linq "Introduce a string constant to replace copies of ""CallSite.Target"" in System.Linq.Expressions" This string is used by `IsInternalFrame` and should not be changed. This PR eliminates copies of the string literal in various places by introducing a `const`. +13959 area-System.Linq Using expression-bodied members consistently in Strings files in System.Linq.Expressions These files were very inconsistent in terms of style. Using a Roslyn code fix to make it consistent. +13960 area-System.Net Substring allocations in WebUtility.HtmlDecode() Currently `WebUtility.HtmlDecode()` allocates a substring every time it allocates an HTML entity: https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/src/System/Net/WebUtility.cs#L234. For example, running the code on something like `"Hello's world"` will result in substring allocations for `quot`, `apos`, and `quot`. Ideally, we would just modify `HtmlEntities.s_lookupTable` to have a key type of a struct `StringSpan`, which would be like `ArraySegment` except for strings. But if we do that, we are also adding 8 bytes to each entry in the hashtable, which is not good considering there are 253 entries (although it is only one-time). +13962 area-Meta Fix typos suport → support Mostly comments, private members and test names where they have no effect, but one is in an exception message. +13963 area-System.Linq Using a TrueReadOnlyCollection in DynamicObject We were building a read-only collection but butchered it to an array prior to passing it to `Expression` factory methods, thus undoing the optimization potential. +13964 area-System.Net Test failure: System.Net.Sockets.Tests.SendReceive/SendRecvPollSync_TcpListener_Socket(listenAt: ::1, pollBeforeOperation: True) Opened on behalf of @jiangzeng The test `System.Net.Sockets.Tests.SendReceive/SendRecvPollSync_TcpListener_Socket(listenAt: ::1, pollBeforeOperation: True)` has failed. System.AggregateException : One or more errors occurred. (An existing connection was forcibly closed by the remote host)\r ---- System.Net.Sockets.SocketException : An existing connection was forcibly closed by the remote host Stack Trace: at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) at System.Net.Sockets.Tests.SendReceive.SendRecvPollSync_TcpListener_Socket(IPAddress listenAt, Boolean pollBeforeOperation) ----- Inner Stack Trace ----- at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.Tests.SendReceive.<>c__DisplayClass27_1.<b__0>d.MoveNext() Build : Master - 20161124.03 (Core Tests) Failing configurations: - Windows.10.Core.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161124.03/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SendReceive~2FSendRecvPollSync_TcpListener_Socket(listenAt:%20::1,%20pollBeforeOperation:%20True) +13966 area-System.Security CI failure in System.Security.Cryptography.Encryption.Tests.Asymmetric.CryptoStreamTests.FlushAsync See https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/731/. ``` MESSAGE: System.OverflowException : Arithmetic operation resulted in an overflow. +++++++++++++++++++ STACK TRACE: at System.Security.Cryptography.Encryption.Tests.Asymmetric.CryptoStreamTests.IdentityTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Security.Cryptography.Primitives/tests/CryptoStream.cs:line 302 at System.Security.Cryptography.CryptoStream.FlushFinalBlock() at System.Security.Cryptography.CryptoStream.Dispose(Boolean disposing) at System.IO.Stream.Close() at System.Security.Cryptography.Encryption.Tests.Asymmetric.CryptoStreamTests.FlushAsync() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Security.Cryptography.Primitives/tests/CryptoStream.cs:line 189 ``` +13967 area-System.Net CI failure in System.Net.Sockets.Tests.DualModeConnectionlessReceiveFrom.ReceiveFromV6BoundToAnyV4_NotReceived See https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_debug_prtest/739/ ``` MESSAGE: Assert.Throws() Failure\nExpected: typeof(System.Net.Sockets.SocketException)\nActual: typeof(Xunit.Sdk.EqualException): Assert.Equal() Failure\nExpected: ::1\nActual: ::ffff:127.0.0.1 +++++++++++++++++++ STACK TRACE: at System.Net.Sockets.Tests.DualModeBase.ReceiveFrom_Helper(IPAddress listenOn, IPAddress connectTo) in /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 2709 at System.Net.Sockets.Tests.DualModeConnectionlessReceiveFrom.b__9_0() in /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 1438 ``` +13969 area-System.Linq Optimize IsOverridden logic in DynamicObject The `IsOverridden` method in `DynamicObject` looks quite baroque and uses a method name to re-retrieve `MethodInfo` objects for the `Try*` methods defined on `DynamicObject`. It seems we can do a much better job by passing the `MethodInfo` object to the method. I'm marking this as WIP because we don't have good test coverage in this area. @JonHanna, are you currently working on tests in this area? If not, I can help out to cover the gaps related to `DynamicObject`. I've also left a `TODO` with some observation on the logic of the code. It seems to allow binding to methods in the subclass that have the same name but a different return type. I'd have expected it to check for a proper virtual override of the base definition. We can write tests to assert all the current behaviors and then evaluate what to do here (if anything). +13970 area-System.Collections Improve test coverage for List..ctor(IEnumerable) and AddRange In conjunction with the changes at: dotnet/coreclr#8306. In particular, it doesn't look like there are tests exercising the path where `this == c` (where `c` is the collection to be added) in https://github.com/dotnet/corefx/blob/master/src/System.Collections/tests/Generic/List/List.Generic.Tests.AddRange.cs. So code coverage can probably be improved. +13971 area-System.Linq Remove overload of S.Dynamic.Utils.Requires w/o argument name. Use the argument-name taking form where it had been used. +13972 area-System.Diagnostics CI Failure in System.Diagnostics.Tests.ProcessTests.TestMinWorkingSet https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/733/ ``` MESSAGE: Assert.True() Failure\nExpected: True\nActual: False +++++++++++++++++++ STACK TRACE: at System.Diagnostics.Tests.ProcessTestBase.Dispose(Boolean disposing) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest@2/src/System.Diagnostics.Process/tests/ProcessTestBase.cs:line 33 at System.IO.FileCleanupTestBase.Dispose() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest@2/src/Common/tests/System/IO/FileCleanupTestBase.cs:line 41 at ReflectionAbstractionExtensions.DisposeTestClass(ITest test, Object testClass, IMessageBus messageBus, ExecutionTimer timer, CancellationTokenSource cancellationTokenSource) +13974 area-Meta Add missing license headers +13975 area-System.Collections Add ConcurrentBag Clear method Implement ConcurrentBag.Clear API. See https://github.com/dotnet/corefx/issues/2338 +13976 area-System.Collections Add ConcurrentQueue Clear method Implement ConcurrentQueue.Clear API. See https://github.com/dotnet/corefx/issues/2338 +13977 area-System.Reflection TypeBuilder.SetParent() loops forever when setting the parent to itself ```c# [Fact] public void SetParent_This_LoopsForever() { TypeBuilder type = Helpers.DynamicType(TypeAttributes.NotPublic); type.SetParent(type.AsType()); type.CreateTypeInfo(); // We never get here throw new DivideByZeroException(); } ``` +13978 area-System.Reflection Add TypeBuilder.SetParent tests And improve existing tests by verifying you can create the type after setting a parent +13979 area-System.Security CertTests.TestVerify test failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_debug_prtest/760/consoleText ``` System.Security.Cryptography.X509Certificates.Tests.CertTests.TestVerify [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Security.Cryptography.X509Certificates/tests/CertTests.cs(99,0): at System.Security.Cryptography.X509Certificates.Tests.CertTests.TestVerify() ``` +13980 area-System.Reflection Add some TypeBuilder.Size tests +13981 area-System.Linq Implement IntPtr/UIntPtr enum casts in Linq expressions @JonHanna @stephentoub @bartdesmet @vsadov The strange creatures that are IntPtr and UIntPtr enums are explicitly supported in the CLI specification. Whether anyone has ever used one and if supporting them was accidental is a different story. The previous behaviour was debug assertions in both compiler and interpreter on compilation and occasionally on creation of the trees +13983 area-System.Linq More System.Dynamic Tests Starting testing on `CallSite` and `CallSiteBinder`. Pretty thorough tests for `InvokeMemberBinding`. +13984 area-System.Linq Improving ToString for field instructions Discovered this during the work on stack spilling. Refactoring the field instructions using a common `FieldInstruction` base class and providing a custom `ToString` override to include the field information in the string representation. We should likely do a separate pass to improve all reflection printing to include more information such as the declaring type. +13985 area-Microsoft.CSharp Microsoft.CSharp.RuntimeBinder.Tests A lot of the tests for System.Dynamic exercise parts of M.CS.RuntimeBinder so they can be adapted for use there too. +13986 area-System.Linq Addressing some test gaps for MethodCallExpression Some cases dealing with instance/static method calls with 0 arguments, and with N arguments where N is larger than the maximum argument count for which we provide optimized layouts. +13987 area-System.Linq Removing unused ctor on HybridReferenceDictionary in interpreter code The constructor overload with a `initialCapicity` (misspelled too) is not used, nor do have the current uses of the type a good value to specify for this, so only keeping the default constructor makes sense. +13988 area-Microsoft.CSharp Extend CSharpArgumentInfoTests There isn't much that can be direct tested on this, but cover a range of possible inputs. +13989 area-System.Linq Adding more tests for RuntimeOps.Quote behavior Quote some test coverage gaps in `RuntimeOps` methods, so addressing them one by one. This focuses on the runtime expression quoter. +13990 area-System.Linq Don't try to test both compiler and interpreter if only one available. Unless both `FEATURE_COMPILE` and `FEATURE_INTERPRET` are defined, then the boolean argument to `Compile()` has no real effect, except to nearly double wall time the tests take to run. Therefore only pass one such value in other cases. +13991 area-System.Linq Remove unused usings in System.Linq.Expressions tests Some bulk removal of unused usings in test code as part of clean-up work. Also making one file consistent wrt C# 6.0 feature usage. +13993 area-System.Linq Removing some dead code in System.Linq.Expressions Two extension methods that were introduced to work around reduced API surface prior to the upgrade of the target framework we build against. +13994 area-Infrastructure Failing to run AOT tests Following the instructions in the documentation to run ``` msbuild /t:BuildAndTest /p:TestTFM=netcore50aot /p:TestNugetRuntimeId=win10-x64-aot /p:UseDotNetNativeToolchain=true ``` results in ``` ILC error ILC1104: Could not find file 'corefx\bin\tests\AnyOS.AnyCPU.Debug\System.Linq.Tests\default.netcore50aot\AppxManifest.xml'. ``` +13997 area-Microsoft.CSharp MSFT.CSharp Remove redundant directives, this, type qualifiers and params array +13998 area-Microsoft.CSharp MSFT.CSharp: Remove fields that are serving as locals. +13999 area-Microsoft.CSharp MSFT.CSharp Turn field-property pairs into auto-properties. +14000 area-Microsoft.CSharp MSFT.CSharp. Remove redundant ctors, base ctor calls +14001 area-Microsoft.CSharp MSFT.CSharp: Make init-only private-set properties get-only. +14002 area-Microsoft.CSharp MSFT.CSharp: Replace if-branch with expression. +14003 area-Microsoft.CSharp MSFT.CSharp: Replace empty ; with more blatant {} Also Remove excessive semicolons +14004 area-Microsoft.CSharp MSFT.CSharp. Make fields readonly when possible +14005 area-Microsoft.CSharp MSFT.CSharp Move declarations closer to, or joined with, intialisation. +14006 area-System.Collections [WIP] [no merge] Support limiting the buffer size in LargeArrayBuilder. There are certain Linq methods, such as `Where` and `Take`, where we cannot pinpoint the exact number of elements the iterator will contain, but we can establish an upper bound on how many elements there are. For example, `list.Where(p)` can have at most `list.Count` elements, and `e.Take(5)` can have at most 5 elements. Currently, when we call `ToArray` on any of these iterators, the resizing pattern will be to allocate 4, then 8, then 16, etc. size buffers. This can be wasteful because e.g. if the source enumerable in `Where` contains 100 elements, we allocate space for 128 elements even though those last 28 slots will never be used. This PR adds support to `LargeArrayBuilder` to limit how many elements we allocate, so there is no extra space wasted. It should help drive down allocations in `Where`, `Where.Select`, & `Take` when the maximum count is far from the next power of 2. Waiting on: #12703, #13628 +14007 area-System.Linq Fix typo in namespace. "Should have been ""Tests""." +14008 area-Meta UDP Socket using SocketAsyncEventArgs garbage collects nearly every second "I've written a small UDP server with the .Net Core `SocketAsyncEventArgs` implementation, of Sockets. When the server runs, I can see the garbage collection run in the Visual Studio Diagnostics tooling. It runs almost non-stop. Yet when I take Heap snapshots, I don't see hardly any allocations. I fetch my `byte[]` buffers from an `ArrayPool` and I fetch my `SocketAsyncEventArgs` instances from a custom object pool. I have however seen this same behavior when fetching them from another `ArrayPool` instead. In theory, when looking at my code, there should be virtually zero allocations happening, except for what ever the Socket instance is doing. This is a screenshot of the Diagnostics tooling in Visual Studio showing the garbage collections happening. You can see I'm not allocating anything new in the Heap that would warrent that kind of activity. [![enter image description here][1]][1] [1]: https://i.stack.imgur.com/5FwLr.png I pulled the server and object pooling code out and into a reproducible example project. ## ObjectPool Calling `ObjectPool.Rent()` will give you back an instance from the pool. If no instance exists, it will create one using either `System.Reflection.Activator` or a custom `Func` delegate provided, and give it back to you. When you are done, you call `ObjectPool.Return(T);` to place the instance back into the pool for recycling. ```c# public class ObjectPool { private int maxPoolSize; private SpinLock poolLock; private Dictionary> poolCache; private Func factory; public ObjectPool(int poolSize) { this.maxPoolSize = poolSize; this.poolLock = new SpinLock(false); this.poolCache = new Dictionary>(); } public ObjectPool(int poolSize, Func factory) : this(poolSize) { this.factory = factory; } public T Rent() where T : TObject => (T)this.Rent(typeof(T)); public TObject Rent(Type type) { bool lockTaken = false; Stack cachedCollection; this.poolLock.Enter(ref lockTaken); try { if (!this.poolCache.TryGetValue(type, out cachedCollection)) { cachedCollection = new Stack(); this.poolCache.Add(type, cachedCollection); } } finally { if (lockTaken) { this.poolLock.Exit(false); } } if (cachedCollection.Count > 0) { TObject instance = cachedCollection.Pop(); if (instance != null) return instance; } // New instances don't need to be prepared for re-use, so we just return it. if (this.factory == null) { return (TObject)Activator.CreateInstance(type); } else { return this.factory(); } } public void Return(TObject instanceObject) { Stack cachedCollection = null; Type type = typeof(TObject); bool lockTaken = false; this.poolLock.Enter(ref lockTaken); try { if (!this.poolCache.TryGetValue(type, out cachedCollection)) { cachedCollection = new Stack(); this.poolCache.Add(type, cachedCollection); } if (cachedCollection.Count >= this.maxPoolSize) { return; } cachedCollection.Push(instanceObject); } finally { if (lockTaken) { this.poolLock.Exit(false); } } } } ``` ## Server The server can be started by invoking `Server.Start()`. The server uses the new, in Core, `ArrayPool` Type to fetch `byte[]` buffer arrays. It also uses my `ObjectPool` Type to fetch `SocketAsyncEventArgs` instances so it can avoid allocating. Note that in the example I'm not overwriting (cleaning up) the buffer contents as they come and go from the pool, mostly because that code wasn't needed to demonstrate my issue. ```c# public class Server { private ArrayPool socketBufferPool; private ObjectPool socketEventArgsPool; private Socket listeningSocket; private IPEndPoint readEndPoint; private IPEndPoint writeEndPoint; public Server(IPAddress serverIPAddress, int serverPort, int clientPort) { this.readEndPoint = new IPEndPoint(IPAddress.Any, clientPort); this.writeEndPoint = new IPEndPoint(serverIPAddress, serverPort); // Create our object pool, letting it use us as the Factory for creating and setting up new SocketAsyncEventArgs. this.socketEventArgsPool = new ObjectPool(10, this.ConfigureSocketEventArgs); this.socketBufferPool = ArrayPool.Create(256, 100); } public void Start() { this.listeningSocket = new Socket(this.writeEndPoint.AddressFamily, SocketType.Dgram, ProtocolType.Udp); this.listeningSocket.Bind(this.writeEndPoint); SocketAsyncEventArgs readArgs = this.socketEventArgsPool.Rent(); this.listeningSocket.ReceiveFromAsync(readArgs); while (true) { } } private void ReceivedSocketEvent(object sender, SocketAsyncEventArgs e) { // Rent a new Socket event arg right away and start listening for more packets. SocketAsyncEventArgs eventArgs = this.socketEventArgsPool.Rent(); this.listeningSocket.ReceiveFromAsync(eventArgs); this.socketEventArgsPool.Return(e); } private SocketAsyncEventArgs ConfigureSocketEventArgs() { byte[] buffer = this.socketBufferPool.Rent(256); var eventArg = new SocketAsyncEventArgs(); eventArg = new SocketAsyncEventArgs(); eventArg.Completed += new EventHandler(this.ReceivedSocketEvent); eventArg.SetBuffer(buffer, 0, 256); eventArg.RemoteEndPoint = this.readEndPoint; return eventArg; } } ``` ## Program: Server-side This just creates an instance of the Server, provides it with the IP address and ports needed to run, and then starts it. ```c# class Program { static void Main(string[] args) { Console.WriteLine(""Starting server""); var ip = new IPAddress(new byte[] { 10, 0, 1, 6 }); var server = new Server(ip, 11000, 11100); server.Start(); } } ``` ## Program: Client-side This app just opens a Socket on a different port and sends a bunch of datagrams to the server. If I just use a straight `while(true)` I see a massive amount of GC purges on the server side. If I place a `Task.Delay(1).Wait();` within the while loop, I didn't see any during a 3 minute run. Whereas without the `Task.Delay(1).Wait()` I see a GC almost every second. I understand that adding that delay slows down the number of messages sent to the server significantly, but I wanted to share in the event that it helps. ```c# class Program { static byte[] serverAddress = new byte[] { 10, 0, 1, 6 }; static void Main(string[] args) { var clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); // Start listening/sending EndPoint remoteEndPoint = new IPEndPoint(new IPAddress(serverAddress), 11000); while (true) { SendDatagram(clientSocket, remoteEndPoint, ""Hello World!""); //Task.Delay(1).Wait(); } } static void SendDatagram(Socket clientSocket, EndPoint remoteEndPoint, string message) { byte[] msg = Encoding.ASCII.GetBytes(""This is a test""); clientSocket.BeginSendTo( msg, 0, msg.Length, SocketFlags.None, remoteEndPoint, new AsyncCallback(SendCompleted), clientSocket); } private static void SendCompleted(IAsyncResult result) { Socket socket = (Socket)result.AsyncState; socket.EndSendTo(result); } } ``` So the challenge I'm having is figuring out what is causing the GC calls. I see that the Diagnostic tooling says I'm using 17mb of ram, but when I run it outside of the IDE (debug build) it consumes about 3mb. I assume the bulk of the ram consumption is debugger related in the Diagnostic tooling. Could the debugger be causing the GC collections? Is there a means for me to track that outside of the debugger, or determine what objects are being collected? When I take the heap snapshots, the object count never changes, so there's no real way for me to tell from them what is happening. I ran this for 5 minutes, sending 14 million datagrams to the server. The ram usage and the heap size hardly budged. The GC collections continued though. This is reproducible on a File->New->NetStandard Console Project in Visual Studio 2017. ## dotnet --info ``` .NET Command Line Tools (1.0.0-preview3-004056) Product Information: Version: 1.0.0-preview3-004056 Commit SHA-1 hash: ccc4968bc3 Runtime Environment: OS Name: Windows OS Version: 10.0.14393 OS Platform: Windows RID: win10-x64 ``` ## dotnet --version 1.0.0-preview3-004056" +14009 area-System.Linq Revisiting use of var in System.Linq.Expressions test code Using explicit types where the type is not immediately obvious. Automated code rewrite using a Roslyn code fix provider. +14010 area-System.Linq Cleaning up Error class in System.Linq.Expressions Removing some `Error` and `String` members that are no longer used. +14016 area-Microsoft.CSharp "Revert ""Microsoft.CSharp.RuntimeBinder.Tests""" Reverts dotnet/corefx#13985 +14017 area-System.Data CI Failure System.Data.SqlClient.Tests.SqlConnectionBasicTests.ConnectionTest ``` MESSAGE: System.Net.Sockets.SocketException : Address already in use +++++++++++++++++++ STACK TRACE: at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Bind(EndPoint localEP) at System.Net.Sockets.TcpListener.Start(Int32 backlog) at Microsoft.SqlServer.TDS.EndPoint.ServerEndPointHandler`1.Start() at System.Data.SqlClient.Tests.TestTdsServer.StartTestServer(Boolean enableFedAuth) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Data.SqlClient/tests/FunctionalTests/SqlConnectionTest.cs:line 61 at System.Data.SqlClient.Tests.SqlConnectionBasicTests.ConnectionTest() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Data.SqlClient/tests/FunctionalTests/SqlConnectionTest.cs:line 22 +14018 area-System.Linq Test System.Dynamic.InvokeBinder. +14019 area-System.Linq [WIP] Add P2P reference to Microsoft.CSharp to System.Linq.Expressions.Tests Include the tests in the code coverage analysis of CSharp. As discussed at https://github.com/dotnet/corefx/pull/14014#discussion_r89675755 Before merge a coverage test should be done after #14016 has removed the duplication of tests. +14020 area-System.Collections Support limiting the buffer size in LargeArrayBuilder. Continuation of: #14006. Unfortunately, I have a habit of force pushing my commits, so I wasn't able to reopen the old PR. Anyway #12703 was merged this morning so this is no longer blocked; this needs #13628 to apply some optimizations to `Take`, but if this is merged beforehand, I can just update that PR with those changes instead (and vice versa). --- ### Description from original PR There are certain Linq methods, such as `Where` and `Take`, where we cannot pinpoint the exact number of elements the iterator will contain, but we can establish an upper bound on how many elements there are. For example, `list.Where(p)` can have at most `list.Count` elements, and `e.Take(5)` can have at most 5 elements. Currently, when we call `ToArray` on any of these iterators, the resizing pattern will be to allocate 4, then 8, then 16, etc. size buffers. This can be wasteful because e.g. if the source enumerable in `Where` contains 100 elements, we allocate space for 128 elements even though those last 28 slots will never be used. This PR adds support to `LargeArrayBuilder` to limit how many elements we allocate, so there is no extra space wasted. It should help drive down allocations in `Where`, `Where.Select`, & `Take` when the maximum count is far from the next power of 2. --- [Performance test][1] / [analysis](https://gist.github.com/jamesqo/0ca128f95f59cd434f7ec544ce09377e) There are major reductions in GCs (about 25%) when the length of `_source` is just above a power of 2, and the predicate returns true for every item. cc @JonHanna @VSadov @stephentoub [1]: https://github.com/jamesqo/Dotnet/blob/fd26359a7b7d53b0598887ab58f54d591f3b7b40/Program.cs +14021 area-System.Reflection Proposal: Add new GetValue method to System.Reflection "This new method would accept an ""object"" to which a Value could be copied instead of being unnecessarily boxed. Example of use would look like this: ``` static object boxedFloat = null; .... boxedFloat = fieldInfo.GetValue( myObject, boxedFloat ); ``` Boxing of the value would occur only once. This would eliminate unnecessarily memory allocations in situations when GetValue is called many times. When method is used on a class types, copying would not occur and stored object would be returned instead. One of the uses of GetValue method is User Interface based on MVVM (Model View Viewmodel) where values used to control an UI are pulled directly from the data. In realtime applications (like games) this boxing makes hundreds if not thousands of unnecessary memory allocations every second. Another use of GetValue is serialization, and having ability to serialize hundreds of values without the need of boxing/unboxing, would greatly improve memory usage and performace. There was also an idea https://github.com/dotnet/coreclr/issues/8277 that this new GetValue method would take a form of generic method, but I think this would limit the use as one of the advantages of working with System.Object is this abstraction that makes some parts of the code simpler. So, ideally this new method should remove the unnecessary boxing while keeping convenience of System.Object. Additionally please bear in mind this should work with both FieldInfo and PropertyInfo, as well as give option to get values from nested Value as in following example: ``` struct Vector3 { float x,y,z; } struct Transform { Vector3 position { get; set } } transform = positionProperty.GetValue( transformObject, transform ); boxedX = xField.GetValue( transform, boxedX ); DisplayValue( boxedX ); ``` (note intermixing fields with property)" +14022 area-System.Linq Wrong parameter name if passing generic type to Expression.New "`Expression.New(typeof(List<>))` throws an `ArgumentException` reporting the parameter name as ""constructor"" though the name of the parameter in question is ""type""." +14023 area-System.Linq Reuse _state in some iterators. There are some iterators where we can simply reuse `_state`, instead of defining another mutable int field. This PR removes all such fields & refactors their call sites to use `_state` instead, decreasing the number of fields in the object layout. cc @stephentoub @JonHanna @VSadov +14024 area-System.Linq Correct parameter name if passing generic type to Expression.New Fixes #14022 +14025 area-System.Linq Remove dead branch from Linq.Expressions.Compiler.ILGen.EmitNew The only way of hitting this method is either from some internal uses with cached ctors, or compiling a `NewExpression`. The tests included in #14024 demonstrate that these can never contain a ctor that contains generic parameters, so the check that they don't can never fail. Remove it. +14026 area-System.Linq [WIP] Use RuntimeHelpers.Equals to avoid spurious events in ExpandoObject As well as not raising the event when set with the same instance as the current value, will also not raise it when set to an identical valuetype value. Fixes #13831 +14028 area-Infrastructure Upgrade C# compiler to C# 7 I found out from https://github.com/dotnet/corefx/issues/13427#issuecomment-258941132 that C# 7 can now be used in corefx. However, trying to use C# 7 features does not appear to work locally; for example, this code snippet I inserted ```cs if (TryMove(out T[] array)) { return array; } ``` appears to result in a syntax error from the compiler: ``` C:\Users\james\Code\git\corefx\src\Common\src\System\Collections\Generic\LargeArrayBuilder.cs(146,31): error CS0443: Syntax error; value expected [C:\Users\james\Code\git\corefx\src\System.Linq\src\System.Linq.csproj] C:\Users\james\Code\git\corefx\src\Common\src\System\Collections\Generic\LargeArrayBuilder.cs(146,33): error CS1003: Syntax error, ',' expected [C:\Users\james\Code\git\corefx\src\System.Linq\src\System.Linq.csproj] ``` This was after doing a `git clean -xdf` and then `sync -p` to restore everything again. Is this expected to happen? If so, is there a way to build corefx with C# 7? (I thought the new compiler from the `Tools\` directory would be used, not the one installed on the machine.) If it's relevant: I installed VS 2017 RC the other day and can use new language features from the IDE. However, the `csc` in my PATH (from `%PROGRAMFILES(x86)%\MSBuild\14.0\Bin`) says it's version 1.3.1 and can only handle up to C# 6. +14029 area-System.Diagnostics Fixing a typo This change fixed a simple typo. +14031 area-Meta Add link to Adding APIs Guidelines [Adding APIs Guidelines](Documentation/coding-guidelines/adding-api-guidelines.md) +14032 area-System.Linq Interpreter doesn't correctly validate jumps to undefined labels An attempt to jump to a label that does not exist within an expression does not raise an `InvalidOperationException`, but instead throws an assertion error. In release I imagine it would hit an index-out-of-range when executed but I haven't confirmed (certainly it would do something not good). Previously building an interpreted lambda had included building a mapping of targets and branches which was then stored and never used, so this code was removed. Unfortunately since building this mapping had involved looking at ever label the opportunity to validate them was taken at that point, and that validation was also removed. +14033 area-System.Linq Interpreter doesn't validate against jumping into an inner block with a value Such an expression is accepted, though elsewhere code in the compiler expressly forbids it. The relevant validation in `Compiler.LabelInfo.ValidateJump` has never been present in `Interpreter.LabelInfo.ValidateJump`. Perhaps it could be made to be allowed in both, but it should certainly be consistent. +14034 area-System.Linq Fix two bugs with goto expressions in interpreter. Correctly validate jumps to undefined labels in interpreter Fixes #14032 Validate against jumping into an inner block with a value. Fixes #14033 (The idea of allowing such jumps if they would be well-defined could be investigated, but this brings the interpreter behaviour into line with the compiler behaviour). Tests included cover some other previously untested uses of branching expressions. +14035 area-System.Net SslStream override FlushAsync SslStream should override FlushAsync over its internal stream; otherwise the default Stream implementation is used; which creates a new task which runs the sync/blocking flush and queues it to the threadpool. Default Stream implementation: ```csharp public virtual Task FlushAsync(CancellationToken cancellationToken) { return Task.Factory.StartNew(state => ((Stream)state).Flush(), this, cancellationToken, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); } ``` Resolves https://github.com/dotnet/corefx/issues/14038 /cc @stephentoub +14036 area-System.Runtime ArgumentNullException produces different messages when run on Windows or Docker "ArgumentNullException produces different messages when running on Windows or Docker. Running a unit test for a method where sanity checks exist (for null values), produces the following output: - Windows: ""Value cannot be null.\r\nParameter name: foo"" - Docker (from microsoft/dotnet:latest): ""Value cannot be null.\nParameter name: foo"" Code snippet for the sanity check: `if (null == foo) { throw new ArgumentNullException(nameof(foo)); }` Tested with the latest version of .NETCore 1.1" +14037 area-System.Net System.Net.Sockets.Socket Accept() method throws System.ArgumentException on Linux instead of SocketException when no connection to accept "On Windows, when using System.Net.Sockets.Socket accepting connections with Accept() method and no more connections are in queue a SocketException is thrown. However, when same code is run on Linux, a System.ArgumentException is thrown instead. Net Core documentation does not list ArgumentException as possible Exception. Net Core documentation does not specify what Accept throws when no requests are queued. However, .Net framework documentation states: ""If you call this method using a non-blocking Socket, and no connection requests are queued, Accept throws a SocketException.""" +14038 area-System.Net SslStream should override FlushAsync SslStream should override FlushAsync over its internal stream; otherwise the default Stream implementation is used; which creates a new task which runs the sync/blocking flush and queues it to the threadpool. Default Stream implementation: ```csharp public virtual Task FlushAsync(CancellationToken cancellationToken) { return Task.Factory.StartNew(state => ((Stream)state).Flush(), this, cancellationToken, TaskCreationOptions.DenyChildAttach, TaskScheduler.Default); } ``` +14041 area-System.Net Consider exposing Socket(SafeCloseSocket fd) constructor `System.Net.Sockets.Socket` currently does not expose any mechanism to instantiate a socket from an existing file descriptor/handle. This proposal aims to expose this functionality to improve interop with external applications that manage socket connections. # Rationale and Usage Currently, a socket must be both created and managed by the user application. While this is desired behaviour in most cases, there is no mechanism to take an existing socket handle/file descriptor and make use of it within the user application. If one wanted to use a socket that was created by an external application, the only option (outside of reflection hacks) is to reimplement the calls to the underlying platform sockets with P/Invoke - largely removing the benefits that the managed socket classes provide. More specifically, this improves interop with existing applications that manage socket connections, such as systemd and the socket activation feature. In this scenario, systemd creates an unmanaged socket to listen for connections. Once a connection is established, a .NET application is launched and a file descriptor that references the unmanaged socked is passed to it through environment variables. Without the ability to create a managed socket from a file descriptor, the connection will need to be reset and then reestablished using the managed APIs - rather than cleanly being passed through and maintained. # Proposed API ```c# namespace System.Net.Sockets { // Previously implemented socket class public partial class Socket : System.IDisposable { // Existing constructors public Socket(System.Net.Sockets.AddressFamily addressFamily, System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType) { } public Socket(System.Net.Sockets.SocketInformation socketInformation) { } public Socket(System.Net.Sockets.SocketType socketType, System.Net.Sockets.ProtocolType protocolType) { } private Socket(SafeCloseSocket fd) { } // Additional existing members omitted // Proposed member public Socket(IntPtr fileDescriptor, AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType) { } } } ``` # Details * Adding this rather than exposing the existing Socket(SafeCloseSocket fd) constructor will keep the rest of the socket PAL internal, as there's currently public no way (as far as I can tell) to create an instance of SafeCloseSocket from a IntPtr. * This will align with user expectations coming from other languages, such as Python, which has a similar method to create a socket from a file descriptor (see [socket.fromfd(fd, family, type[, proto])](https://docs.python.org/2/library/socket.html#socket.fromfd)). * Platforms that don't support wrapping unmanaged sockets (or that don't expose them, such as UWP?) will throw PlatformNotSupportedException. +14044 area-System.Linq Fixing regression in CallFactoryTests Merging https://github.com/dotnet/corefx/commit/c3938a0589f3a8d51b6d8391f73ec42bf8cf4d61 caused a regression because other `MethodCallExpression` tests were added in the meantime. CC @karelz, @JonHanna +14046 area-System.Runtime Use more robust hash code combiner in ValueTuple - Use random seed to randomize the hashcodes - Use 64-bit state to combine the hashcodes (e.g. use the marvin32 hashcode combiner that is used for string hashing in coreclr) Note: `string.GetHashCode` has the right implementation. +14047 area-System.Runtime Add RuntimeHelpers.IsReferenceOrContainsReferences() ```c# namespace System.Runtime.CompilerServices { public static class RuntimeHelpers { public static bool IsReferenceOrContainsReferences(); } } ``` This method will return true if T is reference type; or if T is value type that contains reference type fields. false otherwise. This API is intended to be used primarily for optimizations: - Generic List calls Array.Clear on its underlying array in the implementation of Clear, RemoveAll, RemoveRange methods today. It has to do so because the generic argument can contain references which must be freed for GC. It can be skipped using this method when not required. - Algorithms for memory manipulations can have optimized paths for memory blocks without GC references. This method can be used to determine whether the optimized path is safe to use. `Span` is example of such memory manipulation algorithms. It going to use this API internally in its implementation. This API addition was tracked by CoreCLR issue. https://github.com/dotnet/coreclr/issues/1135 has a lot of discussion about the right name for this API. The alternative names considered include `ContainsReferences`, `IsGCPointerOrContainsGCPointers`. +14048 area-Meta WinRT API DateModified not copied and can't create folders inside some folders "Hi I'm not sure if this is the correct repository to be raising this issue. Please let me know where I should raise it if it isn't. I'm using the Windows.Devices, Windows.Foundation and Windows.Storage libraries to write a WinRT application that will sync some files from a PC to a Windows Phone. See here (https://github.com/massimocode/windows-phone-music-sync). However, I've noticed some annoying behaviour, as follows: 1) If I drag and drop a file onto my phone using Windows Explorer, the original file's DateModified is written to the phone. If I copy the same file using WinRT's StorageFile.CopyAsync method, the DateModified is not copied over and it seems to use the current time as the DateModified. I've tried updating the ""System.DateModified"" property manually after the file is copied and I get an error saying the property is read only. 2) Using Windows Explorer, I can create folders inside the phone's Music folder (which is marked as Read Only). However, using StorageFolder.CreateFolderAsync I get an error saying: ``` System.Runtime.InteropServices.COMException: Unspecified error Cannot create items within this StorageFolder. This could be encountered if the folder was obtained by creating a query using grouping options. ``` Interestingly, I can copy files to the Music folder using the API (using the StorageFile.CopyAsync method), I just can't create folders. Thanks guys" +14049 area-System.Threading Dataflow needs performance tests > corefx\src\System.Threading.Tasks.Dataflow\tests>msbuild /t:BuildAndTest /p:Performance=true /p:ConfigurationGroup=Release /p:OSGroup=Windows_NT > ... > Discovering: System.Threading.Tasks.Dataflow.Tests > Discovered: System.Threading.Tasks.Dataflow.Tests > Info: System.Threading.Tasks.Dataflow.Tests has no tests to run > > Given that Dataflow is often used in code that is performance critical, I think it should have at least a few perf tests. This is motivated by a change I'm considering that may, or may not, significantly improve the performance of the scheduler and found no tests available to tell one way or the other. +14050 area-System.Xml System.Xml.ReaderWriter 4.3.0 not compatible with .NET Framework 4.6? When updating our .NET Framework 4.6 projects to NuGet package System.Xml.ReaderWriter 4.3.0 it works on some machines, but fails to build on others with an error: CS1703: Multiple assemblies with equivalent identity have been imported: '...MySolution\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll' and 'C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\Facades\System.Xml.ReaderWriter.dll'. Remove one of the duplicate references. Downgrading System.Xml.ReaderWriter to 4.0.11 everything works fine on all machines. Working machines are running VS2015, the other machine has got a .NET Framework 4.6.2 SDK installed. +14051 area-System.Linq Bugs with argument validation to Expression.Property with indices "1. The argument name to use in exceptions is assumed to always be ""indexer"" but there is a path to it where the relevant argument is called ""propertyName"". 2. If a property has a setter with no parameters then before the validation check designed to catch that takes place the property-name taking overload will throw an `OverflowException`. This can happen even if another overload is correctly specified, so can throw on code that should not throw at all. 3. While the last argument type to the setter is checked for matching the type of the parameter, this is not done for the getter. 4. When an instance is given for a static property, or none for an instance property, the error message complains about methods, not properties. 5. Error message for finding a property by name with a null indexer expression throws `NullReferenceException` trying to build error message. 6. Check for property found by name has at least a getter or a setter happens after attempt to validate the (non-existent) getter, throwing a `NullReferenceException`. This could block an attempt to use an overload that should be successful. 7. If there is an ambiguous match on an overloaded index property, `InvalidOperationException` is thrown, though `ArgumentException` seems more appropriate. Of these number 7 seems perhaps risky to fix (a breaking change that could quite plausibly break real code) and is debatable anyway. The rest should be fixed. " +14052 area-System.Linq Fix issues in validation of indexed property expressions. "Use ""propertyName"" as parameter to `ArgumentException` when appropriate. Throw correct error on setter with no parameters. Check getter type matches property. Mention ""property"" in attempt to use static method for instance or vice versa, not ""method"". Do not throw trying to build error message for null indexer expression. Do not throw in by-name search for property if one with no getter or setter is found (throw later if it was the only overload). Fixes #14051" +14053 area-System.Threading New generic TaskFactory.StartNew API Hi, I would like to suggest to add an additional overload to [TaskFactory](https://msdn.microsoft.com/library/system.threading.tasks.taskfactory_methods(v=vs.110).aspx) To the existing StartNew(Action, Object, CancellationToken, TaskCreationOptions, TaskScheduler) I would add StartNew(Action, T, CancellationToken, TaskCreationOptions, TaskScheduler) The reason is not to force the developer to do runtime checks and casts when the invoked method accepts an object (or a collection) of type T which is well-known at compile time Current code: ```c# private void Insert(Object state) { var entities = state as IEnumerable; using (var context = GetDataContext()) { context.entities.AddRange(entities); context.SaveChanges(); } } Task.Factory.StartNew(Insert, entityList); //invoked with ``` Desiderata: ```c# private void Insert(IEnumerable entities) { using (var context = GetDataContext()) { context.entities.AddRange(entities); context.SaveChanges(); } } Task.Factory.StartNew(Insert, entityList); //invoked with ``` +14055 area-Infrastructure Add useSharedDesignerContext.txt marker Fixes #13934 The XAML designer needs to classify packages as safe to share and avoid reload. This is required to have reasonable performance in the designer, because reloading the entire framework is currently quite expensive due to the architecture of the designer and the fact that its running on Desktop. The designer cannot reuse all NuGet assemblies since some may register things in their static constructors (EG: dependency properties) that need to be re-registered as the designer context is refreshed. None of our assemblies do this so we're an easy target for optimization. For now we'll add a marker that helps the designer identify our packages for this optimization. In the future the plan is to remove this once the designer can be refactored to have a NETCore component that loads the user code and is fast to restart/reload. /cc @lutzroeder @chabiss +14056 area-System.Linq Some cleanup for ReadOnlyCollectionBuilder This type is a big dark spot for unit testing and seems to have several issues with regards to exception behavior etc. Prior to proposing some semantic changes, I'm getting all of the stylistic aspects out of the way in this PR. +14057 area-System.Linq Making ReadOnlyCollectionBuilder a bit more friendly for code coverage The body of the `InvalidCastException` handlers can never reach the end because we call a method that throws unconditionally. Changing it to a typical `Error` pattern where the method returns the exception to throw and putting a `throw` statement on the caller side. +14058 area-System.Linq Removing unnecessary SuppressFinalize call in ReadOnlyCollectionBuilder The enumerator is not finalizable not do subclasses exist (in fact, we should likely mark it `sealed` too), so it seems the call to `GC.SuppressFinalize` is redundant. +14059 area-System.Linq Quirks with exception behavior of ReadOnlyCollectionBuilder There are several issues with `ReadOnlyCollectionBuilder`'s exception behavior: - [x] Use of `ContractUtils.Requires` results in `ArgumentException` being thrown, when a more derived type would be more appropriate (e.g. for range checks or null checks). - [ ] `Insert` lacks a check for `index` being larger than or equal to 0, resulting in an exception from the underlying `Array.Copy`. Note that `List` does a cast to `uint` as part of the bounds check to cover this case. - [ ] The indexer doesn't check for `index` being larger than or equal to 0, resulting in accessing the underlying array with a negative index, causing `IndexOutOfRangeException`. Note that `List` does a cast to `uint` as part of the bounds check to cover this case. - [ ] `Reverse` lacks good bounds checks which can result in reversing a range of elements in the underlying array including the trailing empty slots, which then become visible. - [ ] Exception behavior is not documented. +14060 area-Meta Enable CS2229 and CA2237 This change enables FxCop serialization rules requiring serialization constructors on ISerializable types and [Serializable] on ISerializable types. +14061 area-System.Linq Throwing more derived exception types in ReadOnlyCollectionBuilder Eliminating the use of `ContractUtils.Requires` which results in throwing `ArgumentException` where more derived types are more applicable. Throwing a more derived exception type should not be a breaking change. This also makes the behavior more consistent with `List`. Contributes to https://github.com/dotnet/corefx/issues/14059 with more changes to follow. We're missing various cases, but adding these would be breaking changes because the exception type may change (for the better though). I'll submit these in a separate PR where we can discuss. A test suite for `ReadOnlyCollectionBuilder` is coming up as well. +14062 area-Infrastructure [dev/eng] Overhaul ref and src project references, and start binplacing things "This has a few components to it, and much of it is still very rough. There are also still a few hacky things in here which will need cleaning up later on. This branch picks up after @weshaggard 's branch from a couple weeks back. It changes the way dependencies are specified in all of the reference and runtime assembly projects in the repo. * All project.json's have been removed and have been converted to the following: * ref projects: `` to other live-build reference assemblies * src projects `` to generic assembly names. These references are now resolved through a ""TargetingPack"" folder which contains all of the relevant reference assemblies for the framework being targeted. * Ref and src projects now ""binplace"" their outputs to a ""TargetingPack"" or ""Runtime"" directory for their framework. *Still hacky* * Tests have not been updated to understand this new paradigm, so they have been disabled. * Only `netcoreapp` configurations have been made to work. The other configurations no longer build successfully, and will need similar work as above, depending on what we decide to do about them. @weshaggard @ericstj , @chcosta " +14065 area-System.Xml Add switch for resolving External URI in XslTransform and XslCompiledTransform Resolves https://github.com/dotnet/corefx/issues/9876. In CoreFX by default XSL Transform does not allow external URIs to be resolved in a XSL. This PR adds an `AppContext `switch to have the option to allow that. Also, some tests examining this functionality have been re-enabled here. cc: @danmosemsft @AlexGhiondea @stephentoub +14066 area-System.Linq Improving some XML documentation in System.Linq.Expressions Improving the docs for `Dynamic` functionality. We did an earlier pass over `System.Linq.Expressions` prior to moving this stuff in, so getting it on par now. +14067 area-Infrastructure Merge master to dev/eng No conflicts just trying to keep us updated. @ericstj @mellinoe @chcosta +14068 area-System.Net HttpWebRequest and HttpWebResponse serialization Both of these types have serialization documented as being obsoleted in NetFX. The current behavior in NetFX: `HttpWebRequest` will fail deserialization (internal property not serializable): `System.Runtime.Serialization.SerializationException : Type 'System.Net.WebRequest+WebProxyWrapper' in Assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable.` `HttpWebResponse` will pass a simple round-trip test that is currently failing in Core. @weshaggard @danmosemsft @karelz PTAL /cc @stephentoub @davidsh +14069 area-System.Net Expose additional methods from HttpWebRequest and Response Fixes #13900 This PR contains both contributions made by @tijoytom in #13441 (already reviewed in that PR). I'm addressing the PR comments and creating a new one while he's OOF. @stephentoub @davidsh @karelz PTAL +14070 area-Infrastructure Remove hack of copying NuGet dlls to get latest mappings In order to get the latest nuget mappings, we decided to substitute the version of NuGet that comes inside of the CLI which today we do with [these lines](https://github.com/dotnet/corefx/blob/master/init-tools.cmd#L72-L78). We should remove that hack and figure out a way of getting latest mappings differently. +14071 area-System.Xml Cleanup System.Private.Xml tests Remove commented-out tests, remove or fix skipped tests, etc. +14073 area-System.Linq Removing Map helper method in favor of Array.ConvertAll As suggested by @stephentoub in a previous PR, we can do away with our `Map` extension method (which slowly moved from `IList` to `T[]` for the input) and now offers the same functionality as `Array.ConvertAll`. +14074 area-System.Linq Removing PureAttribute annotation Removing two `[Pure]` annotations that are of no use. +14075 area-System.Linq Improving static typing on CollectionExtensions helpers `AddLast` never needed an `IList` as the input, so we can tighten it to `T[]`. `AddFirst` is used in two different contexts, one where a want to operate on `T[]` and one where we operate on `ReadOnlyCollection` and always wrap the result in a `TrueReadOnlyCollection`. Adding a helper for both cases, removing code elsewhere and also making a call to `Expression.Invoke` cheaper because it now receives a `TrueReadOnlyCollection` rather than a `T[]` in its `IEnumerable` argument. +14076 area-System.Linq Make IOrderedEnumerable Covariant Fixes #2317 Not changing version as per https://github.com/dotnet/corefx/issues/2317#issuecomment-263419405 +14077 area-System.Linq Restore Dynamic APIs on Expression Now that `System.Dynamic.Runtime` has been removed, should the `Dynamic` factory methods on `Expression` come back? They are currently hiding under the `ExpressionExtension` internal class. Also, what's the plan for the visitors? Right now, we have `DynamicExpressionVisitor` with `VisitDynamic` but we lack the method on the `ExpressionVisitor` base type. Should this be restored as well? +14078 area-System.Linq Add HasAtLeast(this IEnumerable, int) "## Motivation When working with sequences of just `IEnumerable` calling `Count()` can be very expensive if `Count()` is forced to enumerate through the whole sequence. When checking if a sequence has X elements or more calling `Count()` is not just expensive but wasteful. ## Proposal ```diff namespace System.Linq { public static class Enumerable { + /// + /// Returns if a sequence has at least a certain amount of elements. + /// + /// The type of elements of . + /// An to check the length of. + /// The minimum amount of items that should have. + /// if has at least elements. otherwise. + /// is . + /// must be zero or greater. + public static bool HasAtLeast(this IEnumerable source, int atLeast); } } ```" +14079 area-System.Linq Cleanup of code in DynamicExpression Some trivial cleanup to make the code more concise using C# 6.0 features, just like we did for other types prior to the merge of `System.Dynamic.Runtime`. Also opened https://github.com/dotnet/corefx/issues/14077 with a few observations on divergence of the API compared to the .NET Framework due to the original refactoring into `System.Dynamic.Runtime`. +14080 area-System.Linq Adding tests for ReadOnlyCollectionBuilder Adding tests to cover all functionality, also documenting issues/quirks described in https://github.com/dotnet/corefx/issues/14059. We can fix these issues separately and review them one-by-one for breaking change potential. +14081 area-System.Linq Expressions: Remove two cases of creating a readonly list twice from the same source +14082 area-System.Numerics Add logging for divrem tests In the case of a failure in divrem, log the random parameters being operated on. This should make the next hit on https://github.com/dotnet/corefx/issues/7806 reproducible. @mellinoe +14083 area-System.Runtime Fixed Join_ObjectArray test in StringTests "Join issue for first null in object array is fixed. So calling string.Join("","", null, 1, 2, 3) now return "",1,2,3"", but not empty string as before. See dotnet/coreclr#8114" +14084 area-System.Collections Add ConcurrentBag Clear APIs Implement ConcurrentBag.Clear API. See https://github.com/dotnet/corefx/issues/2338 issue. +14086 area-System.Linq Short-circuit within nullable arithmetic instructions. The Add, Div, Mul and Sub instructions are already using an optimised by-pass of Pop()/Push(). In the case of the LHS value being null though, they still read the RHS and then set the position on the stack occupied by the (null) LHS to null. Skip this. +14087 area-Infrastructure Upgrade buildtools from 01010-02 to 01029-01 To pick up updated compiler cc: @jkotas, @weshaggard +14088 area-System.Runtime Bring back TypedReference TypedReference has not been very useful type so far, with non-trivial implementation cost, and that is why we have decided to not include it in .NET Standard. However, the recent discussion #14021 revealed that it is a good building block for new high-performance reflection APIs that avoid boxing and address other reflection limitations. We should consider bringing it back. The steps are: 1. Bring TypedReference back (to .NET Standard 2.0?) 2. Add methods to TypedReference that make it useful (e.g. use generic methods as a first class replacement for the undocumented C# `__refvalue` and similar keywords) 3. Add high-performance reflection APIs that avoid boxing (see #14021 for discussion) This issue is tracking the first step. +14089 area-Infrastructure rhel rid should not include a minor. rhel-7.2-x64 should be rhel-7-x64 Just like Debian (https://github.com/dotnet/corefx/issues/6170), minor releases are point releases. The minor should not be part of the rid. +14090 area-System.Collections Port thread pool's work stealing implementation to ConcurrentBag Every Add to a ConcurrentBag allocates a new Node to store into the thread local list, which is a linked list. In contrast, ThreadPool also uses a work-stealing queue, but one that's array-based, avoiding needing an extra allocation per item. We should investigate using thread pool's work-stealing implementation in ConcurrentBag, to avoid that allocation. And if for some reason it's not possible exactly as is (e.g. the thread pool implementation assumes that the stored items are references and thus can be read/written atomically), there are potentially adaptations that would allow it to work (e.g. ConcurrentBag could wrap value types in pooled objects). +14091 area-System.Linq Using InterpretedFrame.Dup helper For some reason, we never used the `Dup` method here. +14092 area-System.Linq Removing unnecessary code analysis suppressions Some remnants that are no longer relevant. +14093 area-Infrastructure Enable Dumpling service to collect dumps from hangs/crashes in CI/full builds +14095 area-Meta Enable and fix/baseline worthwhile FXCop rules on CoreFX codebase dotnet/coreclr#7880 covers this for mscorlib. @alexperovich will drive this. Suggested workflow * Put checkboxes in this issue for all valuable rules (not any that are too noisy/not valuable) * In one commit, enable a rule, fix any easy violations and baseline the rest. This prevents us going backwards. * Open separate issue for someone to clear out the baseline for the rule/s. Compiler Warning: - [x] CS0162: Unreachable code detected - [x] CS0429: Unreachable expression code detected - [x] CS????: Remove unused locals Assembly: System.Runtime.Analyzers - [x] CA2002: Do not lock on objects with weak identity Assembly: Microsoft.Maintainability.Analyzers - [ ] CA1801: Review unused parameters - [ ] CA1806: Do not ignore method results - [ ] CA1812: Avoid uninstantiated internal classes - [ ] CA1823: Avoid unused private fields Assembly: Microsoft.QualityGuidelines.Analyzers - [ ] CA1821: Remove empty finalizers Not yet implemented analyzers: - [ ] CA1811: Avoid uncalled private code dotnet/roslyn-analyzers#464 +14096 area-System.Linq Removing partial modifier on CollectionExtensions No longer needs `partial` after all functionality from `Common` has been merged into `System.Linq.Expressions`. +14097 area-System.Linq Move ExpressionVisitorUtils and related types to System.Linq.Expressions Moving more stuff out of `Common` into `System.Linq.Expressions` after the removal of `System.Dynamic.Runtime` as a separate assembly. +14098 area-Infrastructure [WIP] Engineering docs updated This is an update to our documentations about our engineering plans. It is definitely a work in progress but sharing so folks have the context and can provide some feedback. @ericstj @mellinoe @joperezr @chcosta cc @danmosemsft @karelz as you guys expressed some interest in this. skip ci please +14099 area-System.Linq Removing SyncRoot field from ReadOnlyCollectionBuilder As discussed in https://github.com/dotnet/corefx/pull/14056, removing the `_syncRoot` field and simply returning `this`. @VSadov, @stephentoub +14100 area-System.Linq Avoiding some allocations in CallSite.CreateCustomUpdateDelegate This method creates two dynamically growing `List` instances even though the number of elements is known upfront, so we can use the new `ArrayBuilder`, which also has an optimized `ToReadOnly` that wraps the underlying array in a `TrueReadOnlyCollection` rather than making a copy. While looking at this, I noticed a few more things: * `ArrayAccess` is called with the `params Expression[]` overload, causing a copy to be created. Now calling the `IEnumerable` overload, passing it a `TrueReadOnlyCollection`. * The `Invoke(rule, ...)` expression is used multiple times, leading to multiple allocations of the node and its children collection. Reuse this part of the tree. * The `Assign(rule, ArrayAccess(...))` expression is used multiple times, with the same effects as described above. Reuse this part of the tree. Note that this method always calls `Compile` on the resulting expression, so there are no worries about reference equal subexpressions; the user can never observe the tree that was created. +14101 area-System.Net Ensure that all System.Net tests are running against NetFX Ensure that all System.Net Functional tests run against both Core and NetFX. /cc @karelz @davidsh +14103 area-System.Net [WinHttp] WebSocket.ReceiveAsync throws internal exception type WinHttpException "When the remote side of the conversation closes the connection abruptly while a WinHttpWebSocket is receiving the Exception thrown is a WinHttpException. That type is internal and therefore users cannot ""catch"" that specific type. Also, it's likely a different exception type would occur on non-windows platforms and it should be consistent in order to allow writing code that works similarly across all platforms. ``` System.Net.Http.WinHttpException: The connection with the server was terminated abnormally at System.Net.WebSockets.WinHttpWebSocket.InternalReceiveAsync(ArraySegment`1 buffer) at System.Net.WebSockets.WinHttpWebSocket.d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at Microsoft.Azure.Relay.WebSocketStream.d__33.MoveNext() ``` Build used: %USERPROFILE%\.nuget\packages\System.Net.WebSockets.Client\4.3.0\runtimes\win\lib\netstandard1.3\System.Net.WebSockets.Client.dll AssemblyVersion: 4.0.1.0 AssemblyFileVersion: 4.6.24705.01 AssemblyInformationalVersion: 4.6.24705.01. Commit Hash: 4d1af962ca0fede10beb01d197367c2f90e92c97 Timestamp: 11/4/2016 8:38 PM" +14104 area-System.Net Add missing attrib to SocketInformation This attrib is in standard but was overlooked in the port. Contributes to https://github.com/dotnet/corefx/issues/13900 @CIPop +14105 area-System.Xml "XmlWriter stable build missing ""Path"" parameter in ""Create"" method" Not sure exactly what's going on here, but in my current .NET Core project, I can't seem to use the following: `XmlWriter.Create(filepath, xmlwritersettings);` The create method with that signature doesn't exist in my assembly version (4.3.0 stable). However, the method shows up in the reference code - what am I missing? +14106 area-System.Net Missing System.Net enums These are missing ``` T:System.Net.TransportType F:System.Net.Sockets.AddressFamily.Max ``` +14107 area-System.Net Add missing System.Net Disposables These NS2.0 are missing ``` M:System.Net.Security.NegotiateStream.Dispose(System.Boolean) M:System.Net.Security.SslStream.Dispose(System.Boolean) IDisposable on public class FtpWebResponse : WebResponse, IDisposable ``` +14108 area-System.Net Add missing WebHeaderCollection members These are NS2.0 but missing ``` public class WebHeaderCollection : NameValueCollection, IEnumerable, ISerializable { public void Set(HttpRequestHeader header, string value); public void Set(HttpResponseHeader header, string value); public override void Set(string name, string value); } ``` +14110 area-Infrastructure Restoring Microsoft.NETCore.App 1.0.0-preview2-1-003177 produces downgrade warnings "I downloaded the latest .NET Core 1.1 SDK from https://go.microsoft.com/fwlink/?LinkID=835014. Strangely enough it downloads _dotnet-dev-win-x64.1.0.0-preview2-1-003177.exe_. * tweaked the global.json to point to this version, * tweaked project.json to point to Microsoft.NETCore.App 1.1.0 and netcoreapp1.1: ``` ""dependencies"": { ""Microsoft.NETCore.App"": { ""version"": ""1.1.0"", ""type"": ""platform"" }, ""frameworks"": { ""netcoreapp1.1"": { ""imports"": [ ""dotnet5.6"", ""portable-net45+win8"" ] } }, ``` While attempting to restore the packages I get the following warnings: ``` C:\Program Files\dotnet\dotnet.exe restore ""D:\Amber\WebApplication1\.vs\restore.dg"" log : Restoring packages for D:\Amber\WebApplication1\src\WebApplication1\project.json... log : Installing Microsoft.IdentityModel.Logging 1.1.0. log : Restoring packages for tool 'Microsoft.AspNetCore.Razor.Tools' in D:\Amber\WebApplication1\src\WebApplication1\project.json... log : Restoring packages for tool 'Microsoft.AspNetCore.Server.IISIntegration.Tools' in D:\Amber\WebApplication1\src\WebApplication1\project.json... log : Restoring packages for tool 'Microsoft.DotNet.Watcher.Tools' in D:\Amber\WebApplication1\src\WebApplication1\project.json... warn : Detected package downgrade: System.Security.Cryptography.Algorithms from 4.3.0 to 4.2.0 warn : WebApplication1 (>= 1.0.0) -> Microsoft.NETCore.App (>= 1.1.0) -> System.Security.Cryptography.Algorithms (>= 4.3.0) warn : WebApplication1 (>= 1.0.0) -> System.Security.Cryptography.Algorithms (>= 4.2.0) warn : Detected package downgrade: System.Security.Cryptography.Algorithms from 4.3.0 to 4.2.0 warn : WebApplication1 (>= 1.0.0) -> Microsoft.IdentityModel.Tokens (>= 5.1.0) -> System.Security.Cryptography.Algorithms (>= 4.3.0) warn : WebApplication1 (>= 1.0.0) -> System.Security.Cryptography.Algorithms (>= 4.2.0) warn : Detected package downgrade: System.Security.Cryptography.Algorithms from 4.3.0 to 4.2.0 warn : WebApplication1 (>= 1.0.0) -> Microsoft.AspNetCore.Diagnostics (>= 1.1.0) -> NETStandard.Library (>= 1.6.1) -> System.Security.Cryptography.Algorithms (>= 4.3.0) warn : WebApplication1 (>= 1.0.0) -> System.Security.Cryptography.Algorithms (>= 4.2.0) warn : Detected package downgrade: System.Security.Cryptography.Algorithms from 4.3.0 to 4.2.0 warn : WebApplication1 (>= 1.0.0) -> Microsoft.AspNetCore.Mvc (>= 1.1.0) -> NETStandard.Library (>= 1.6.1) -> System.Security.Cryptography.Algorithms (>= 4.3.0) warn : WebApplication1 (>= 1.0.0) -> System.Security.Cryptography.Algorithms (>= 4.2.0) warn : Detected package downgrade: System.Security.Cryptography.Algorithms from 4.3.0 to 4.2.0 warn : WebApplication1 (>= 1.0.0) -> Microsoft.AspNetCore.Server.IISIntegration (>= 1.1.0) -> NETStandard.Library (>= 1.6.1) -> System.Security.Cryptography.Algorithms (>= 4.3.0) warn : WebApplication1 (>= 1.0.0) -> System.Security.Cryptography.Algorithms (>= 4.2.0) warn : Detected package downgrade: System.Security.Cryptography.Algorithms from 4.3.0 to 4.2.0 warn : WebApplication1 (>= 1.0.0) -> Microsoft.AspNetCore.Server.Kestrel (>= 1.1.0) -> NETStandard.Library (>= 1.6.1) -> System.Security.Cryptography.Algorithms (>= 4.3.0) warn : WebApplication1 (>= 1.0.0) -> System.Security.Cryptography.Algorithms (>= 4.2.0) warn : Detected package downgrade: System.Security.Cryptography.Algorithms from 4.3.0 to 4.2.0 warn : WebApplication1 (>= 1.0.0) -> Microsoft.AspNetCore.StaticFiles (>= 1.1.0) -> NETStandard.Library (>= 1.6.1) -> System.Security.Cryptography.Algorithms (>= 4.3.0) warn : WebApplication1 (>= 1.0.0) -> System.Security.Cryptography.Algorithms (>= 4.2.0) warn : Detected package downgrade: System.Security.Cryptography.Algorithms from 4.3.0 to 4.2.0 warn : WebApplication1 (>= 1.0.0) -> Microsoft.Extensions.Configuration.EnvironmentVariables (>= 1.1.0) -> NETStandard.Library (>= 1.6.1) -> System.Security.Cryptography.Algorithms (>= 4.3.0) warn : WebApplication1 (>= 1.0.0) -> System.Security.Cryptography.Algorithms (>= 4.2.0) warn : Detected package downgrade: System.Security.Cryptography.Algorithms from 4.3.0 to 4.2.0 warn : WebApplication1 (>= 1.0.0) -> Microsoft.Extensions.Configuration.Json (>= 1.1.0) -> NETStandard.Library (>= 1.6.1) -> System.Security.Cryptography.Algorithms (>= 4.3.0) warn : WebApplication1 (>= 1.0.0) -> System.Security.Cryptography.Algorithms (>= 4.2.0) warn : Detected package downgrade: System.Security.Cryptography.Algorithms from 4.3.0 to 4.2.0 warn : WebApplication1 (>= 1.0.0) -> Microsoft.Extensions.Logging (>= 1.1.0) -> NETStandard.Library (>= 1.6.1) -> System.Security.Cryptography.Algorithms (>= 4.3.0) warn : WebApplication1 (>= 1.0.0) -> System.Security.Cryptography.Algorithms (>= 4.2.0) warn : Detected package downgrade: System.Security.Cryptography.Algorithms from 4.3.0 to 4.2.0 warn : WebApplication1 (>= 1.0.0) -> Microsoft.Extensions.Logging.Console (>= 1.1.0) -> NETStandard.Library (>= 1.6.1) -> System.Security.Cryptography.Algorithms (>= 4.3.0) warn : WebApplication1 (>= 1.0.0) -> System.Security.Cryptography.Algorithms (>= 4.2.0) warn : Detected package downgrade: System.Security.Cryptography.Algorithms from 4.3.0 to 4.2.0 warn : WebApplication1 (>= 1.0.0) -> Microsoft.Extensions.Logging.Debug (>= 1.1.0) -> NETStandard.Library (>= 1.6.1) -> System.Security.Cryptography.Algorithms (>= 4.3.0) warn : WebApplication1 (>= 1.0.0) -> System.Security.Cryptography.Algorithms (>= 4.2.0) warn : Detected package downgrade: System.Security.Cryptography.Algorithms from 4.3.0 to 4.2.0 warn : WebApplication1 (>= 1.0.0) -> Microsoft.Extensions.Options.ConfigurationExtensions (>= 1.1.0) -> NETStandard.Library (>= 1.6.1) -> System.Security.Cryptography.Algorithms (>= 4.3.0) warn : WebApplication1 (>= 1.0.0) -> System.Security.Cryptography.Algorithms (>= 4.2.0) log : Writing lock file to disk. Path: D:\Amber\WebApplication1\src\WebApplication1\project.lock.json log : D:\Amber\WebApplication1\src\WebApplication1\WebApplication1.xproj log : Restore completed in 17127ms. ``` Whenever I try building it I get the following: ``` 1>------ Build started: Project: WebApplication1, Configuration: Debug Any CPU ------ 1> C:\Program Files\dotnet\dotnet.exe build ""D:\Amber\WebApplication1\src\WebApplication1"" --configuration Debug --no-dependencies 1> Project WebApplication1 (.NETCoreApp,Version=v1.1) will be compiled because inputs were modified 1> Compiling WebApplication1 for .NETCoreApp,Version=v1.1 1>D:\Amber\WebApplication1\src\WebApplication1\project.json(22,54): warning NU1012: Dependency conflict. Microsoft.IdentityModel.Tokens 5.1.0 expected System.Security.Cryptography.Algorithms >= 4.3.0 but received 4.2.0 1>D:\Amber\WebApplication1\src\WebApplication1\project.json(22,54): warning NU1012: Dependency conflict. Microsoft.NETCore.App 1.1.0 expected System.Security.Cryptography.Algorithms >= 4.3.0 but received 4.2.0 1>D:\Amber\WebApplication1\src\WebApplication1\project.json(22,54): warning NU1012: Dependency conflict. NETStandard.Library 1.6.1 expected System.Security.Cryptography.Algorithms >= 4.3.0 but received 4.2.0 1>D:\Amber\WebApplication1\src\WebApplication1\project.json(22,54): warning NU1012: Dependency conflict. System.Net.Http 4.3.0 expected System.Security.Cryptography.Algorithms >= 4.3.0 but received 4.2.0 1>D:\Amber\WebApplication1\src\WebApplication1\project.json(22,54): warning NU1012: Dependency conflict. System.Net.Security 4.3.0 expected System.Security.Cryptography.Algorithms >= 4.3.0 but received 4.2.0 1>D:\Amber\WebApplication1\src\WebApplication1\project.json(22,54): warning NU1012: Dependency conflict. System.Security.Cryptography.Cng 4.3.0 expected System.Security.Cryptography.Algorithms >= 4.3.0 but received 4.2.0 1>D:\Amber\WebApplication1\src\WebApplication1\project.json(22,54): warning NU1012: Dependency conflict. System.Security.Cryptography.Csp 4.3.0 expected System.Security.Cryptography.Algorithms >= 4.3.0 but received 4.2.0 1>D:\Amber\WebApplication1\src\WebApplication1\project.json(22,54): warning NU1012: Dependency conflict. System.Security.Cryptography.OpenSsl 4.3.0 expected System.Security.Cryptography.Algorithms >= 4.3.0 but received 4.2.0 1>D:\Amber\WebApplication1\src\WebApplication1\project.json(22,54): warning NU1012: Dependency conflict. System.Security.Cryptography.X509Certificates 4.3.0 expected System.Security.Cryptography.Algorithms >= 4.3.0 but received 4.2.0 1> Compilation succeeded. 1> 9 Warning(s) 1> 0 Error(s) 1> Time elapsed 00:00:02.2908942 1> ``` Microsoft Visual Studio Enterprise 2015 Version 14.0.25425.01 Update 3 Microsoft .NET Framework Version 4.6.01055 Microsoft .NET Core Tools (Preview 2) 14.1.21111.0 NuGet Package Manager 3.5.0 " +14112 area-System.Security Add PasswordDeriveBytes and CryptDeriveKey methods Replacement for PR https://github.com/dotnet/corefx/pull/13925/commits/d14d0b8920297a04b1da0b09f3c53247f71eea80 which became corrupt; it has already been approved +14113 area-System.Xml Fix and re-enable XSLT checksum tests Fixes https://github.com/dotnet/corefx/issues/9877 Many XSLT tests used to calculate checksums to verify the result of a transformation. This type of verification caused flakiness in these tests. In this PR, we replace that verification (comparison with an expected checksum value) by comparing the transformed xml with the expected xml using `XmlDiff`. cc: @danmosemsft @stephentoub @AlexGhiondea @joperezr +14114 area-System.Net Expose AddressFamily.Max and some Disposes Fixes https://github.com/dotnet/corefx/issues/14106 Fixes https://github.com/dotnet/corefx/issues/14107 The adding of IDisposable to FtpWebResponse isn't really necessary, as it's on the base class. It just removes the diff. The other two classes modified don't have it. @CIPop +14115 area-System.Linq Using GetParametersCached in more places in System.Linq.Expressions Found a few places where we called `GetParameters` rather than `GetParametersCached` which we use pretty much everywhere. It seems a lot of code in the interpreter didn't use it and some code in the DLR didn't either, so introducing it in these places. +14116 area-System.Linq Restoring the use of GetBaseDefinition in IsOverridden in DynamicObject Looking at the original code in https://referencesource.microsoft.com/#System.Core/Microsoft/Scripting/Actions/DynamicObject.cs,42ff7d1d8461d3f2 it seems that this method was changed to a suboptimal algorithm to compensate for the removal of `GetBaseDefinition` a while back. Now that this method is back, it seems we can revert back to the original. Note that the (now reverted) replacement would also pick up shadowing methods (using `new`) if their name and parameter types match. It didn't bother to check for the return type, so some weirdness would have occurred when it picked up such an unexpected method. +14117 area-System.Diagnostics Test failure: System.Diagnostics.Tests.ProcessTests/TestWorkingSet64 Opened on behalf of @jiangzeng The test `System.Diagnostics.Tests.ProcessTests/TestWorkingSet64` has failed. Assert.True() Failure Expected: True Actual: False Stack Trace: at System.Diagnostics.Tests.ProcessTestBase.Dispose(Boolean disposing) at System.IO.FileCleanupTestBase.Dispose() at ReflectionAbstractionExtensions.DisposeTestClass(ITest test, Object testClass, IMessageBus messageBus, ExecutionTimer timer, CancellationTokenSource cancellationTokenSource) Build : Master - 20161129.02 (Core Tests) Failing configurations: - OSX.1011.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161129.02/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessTests~2FTestWorkingSet64 +14118 area-System.Data Missing SQL error code 40020, 40143, 40166, and 40540 for retry. About SQL Database transient error code. Reference source and corefx are are different. Reference source https://referencesource.microsoft.com/#System.Data/System/Data/SqlClient/SqlInternalConnectionTds.cs,457 corefx https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInternalConnectionTds.cs#L115 The cause is the following commit. https://github.com/dotnet/corefx/commit/e48f6bda60018b5c3fdeefd446a67e8488b295d0 I can't found any discussion about this commit. Is it correct change ? +14119 area-System.Linq Consider adding more LINQ operators from Ix.NET https://github.com/dotnet/corefx/issues/13842 introduces `TakeLast` and `SkipLast` which existed in [Ix.NET](https://github.com/Reactive-Extensions/Rx.NET/tree/master/Ix.NET/Source/System.Interactive) (`System.Interactive`, which is part of the Reactive Extensions project) for a long time. This may be a good time to review other operators we got in Ix.NET and see whether they're worth adding to .NET proper. I'm pasting a short selection (using the Ix names) below: ### Min and Max with IComparer No overloads of these operators exist with an `IComparer`. The existing overload uses `Comparer.Default` to get the comparer. It seems an omission that we don't provide an option to pass in a custom comparer. ```csharp public static TSource Min(this IEnumerable source, IComparer comparer); public static TSource Max(this IEnumerable source, IComparer comparer); ``` ### MinBy and MaxBy to select element(s) with lowest/highest key value Similar to `MinimalBy` and `MaximalBy` in Mathematica. The current overloads with a `Func` are merely shortcuts for `xs.Select(f).Max()` rather than providing a means to get the list of values that have the lowest projected value (e.g. the list of people with the lowest value for `Age`). ```csharp public static IList MinBy(this IEnumerable source, Func keySelector); public static IList MinBy(this IEnumerable source, Func keySelector, IComparer comparer); public static IList MaxBy(this IEnumerable source, Func keySelector); public static IList MaxBy(this IEnumerable source, Func keySelector, IComparer comparer); ``` ### Concat (or Flatten or Unwrap) Just like `Task>` can be unwrapped into `Task` or `AggregateException` can be flattened. Obviously, this is just a macro for `xss.SelectMany(xs => xs)`, but possibly more descriptive and having better performance. ```csharp public static IEnumerable Concat(this IEnumerable> sources); public static IEnumerable Concat(params IEnumerable[] sources); ``` ### StartWith (Prepend with multiple values) I noticed we've added `Prepend`. Ix provides `StartWith` which is basically the same but takes a `params` array with elements to prepend. (Note it comes from the dual of `StartWith` on `IObservable` where we can start an event sequence with one or more initial values provided from an array.) It could be done quite easily today using `new[] { ... }.Concat(xs)` but may be deemed a natural extension to `Prepend`. ```csharp public static IEnumerable StartWith(this IEnumerable source, params TSource[] values); ``` ### Scan (aggregate yielding intermediate results) Totally analogous signatures to `Aggregate` but yields every intermediate computed result. As usual, it comes from the duality with Rx where we deal with streams of events (that may never terminate). This said, it has value on a lazy enumerable sequence, e.g. when processing large logs and providing all intermediate aggregation values as the analysis is going on. `Aggregate` is pretty much `Scan` followed by `Last`, only optimized. ```csharp public static IEnumerable Scan(this IEnumerable source, TAccumulate seed, Func accumulator); public static IEnumerable Scan(this IEnumerable source, Func accumulator); ``` There are a bunch more that are likely a bit more esoteric and of lesser value, but nonetheless worth having a look at. One family of them deals with sharing side-effects of enumeration in a less aggressive way than the traditional `ToArray` to `ToList` approach; see things like `Share`, `Memoize`, and `Publish`. It's been a while since I've worked on / looked at this code, so some design decisions may have eroded from my memory, but I'll do my best recollecting these if questions come up. +14122 area-System.Linq Eliminating unnecessary closures in DynamicObject In cases a `Try*` method is not overridden, there's no need to allocate a closure that's only required in case there's an override. Separating logic in method pairs as to avoid the allocation of such closures. +14123 area-System.Linq Fix issues with ReadOnlyCollectionBuilder Fix issues with ReadOnlyCollectionBuilder see https://github.com/dotnet/corefx/issues/14059 +14124 area-System.IO Remove PathTooLongException and associated tests. Remove preemptive check for path too long. Refer to #8655 . @JeremyKuhne @karelz +14125 area-Infrastructure Upgrade buildtools from 01029-01 to 01030-01 "Picks up https://github.com/dotnet/buildtools/pull/1206 (and the fix to it, https://github.com/dotnet/buildtools/pull/1239). This makes the BuildTools package's `init-tools.sh` ""strict"" so errors initializing tools will fail fast. This is an incremental improvement that I want to make sure works on all platforms." +14126 area-System.Collections Improve ConcurrentBag performance The primary purpose of this change is to remove allocations prevalent in the use of ConcurrentBag: - Every Add allocates a Node object to be stored in a linked list. - Every Take that needs to steal allocates a List (and the associated underlying array) to store version information for all peer lists examined. This PR removes all of those allocations: - The first allocation (per-Add Node) is addressed by changing from a linked-list-based scheme to an array-based scheme; the logic for the latter is taken from ThreadPool (https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Threading/ThreadPool.cs#L133), which uses an array-based work-stealing implementation for the thread-local queues in the pool. - The second allocation is avoided by caching a per-thread list in TLS, so that any steal operation can just use that list from TLS. These changes effectively eliminate all per-operation allocations in ConcurrentBag. In addition to the GC impact, these changes have a beneficial impact on throughput, due to better memory locality with the array vs with a linked list, less code needed for pushes/pops, etc. In a test that adds 10M items from a single thread: Before (elapsed time and gen0 GCs): ``` 00:00:02.2688554 67 00:00:02.6047316 66 00:00:02.1908836 65 00:00:02.7931760 68 ``` After: ``` 00:00:00.8325350 0 00:00:00.8284697 0 00:00:00.8600504 0 00:00:00.8094874 0 ``` In a test that has 4 threads each adding 2 items then taking 2 items (no steals), repeatedly, 5M times: Before: ``` 00:00:02.9780786 767 00:00:02.7218693 767 00:00:02.7535170 767 00:00:02.7547491 767 ``` After: ``` 00:00:01.5986701 0 00:00:01.3661083 0 00:00:01.4061545 0 00:00:01.3687102 0 ``` In a test that has one thread adding 10M items and another thread taking until all 10M are stolen (effectively the worst case for ConcurrentBag): Before: ``` 00:00:03.1549239 332 00:00:03.2892691 340 00:00:03.1984057 349 00:00:03.3697942 346 ``` After: ``` 00:00:02.5558069 0 00:00:01.8004534 0 00:00:02.5968542 0 00:00:02.1146025 0 ``` Prior to this change, devs were often hesitant to use ConcurrentBag as an object pool for small objects, as each added object involved its own small Node allocation. After this change, there shouldn't be any such objections. cc: @kouvel, @alexperovich, @benaadams Fixes #14090 Fixes https://github.com/dotnet/corefx/issues/7917 +14127 area-System.Reflection Assembly.EscapedCodeBase doesn't exist in the implementation MembersMustExist : Member 'System.Reflection.Assembly.EscapedCodeBase.get()' does not exist in the implementation but it does exist in the contract. We have exposed it in the reference assembly at https://github.com/dotnet/corefx/blob/master/src/System.Runtime/ref/System.Runtime.cs#L4714 but it doesn't exist in the implementation. This also points out that we don't have test coverage for this property. +14129 area-System.Threading Add test using ValueTask as async return type Now that we're using a C# 7 compiler in the repo that supports this, we can add tests using the language syntax in addition to just testing the type directly. cc: @mellinoe +14131 area-System.Security Add HashAlgorithm.HashSizeValue protected field Port this protected field (apparently missed with other HashAlgorithm work): ```` public abstract class HashAlgorithm : ICryptoTransform, IDisposable { protected int HashSizeValue; } ```` Affects derived classes since they must now set this field instead of overriding HashSize property. +14132 area-System.IO Remove a test line that got left in Was experimenting with different root paths on Unix and inadvertently left in a line of code. #13474 @danmosemsft, @ianhays +14133 area-System.Security Add HashAlgorithm.HashSizeValue protected field Addresses issue https://github.com/dotnet/corefx/issues/14131 Note that overrides on HashSize were removed as they are now not necessary. These overrides do not exist in netfx or netstandard2.0 so are OK to remove. @bartonjs please review +14134 area-Meta Remove TODOs from .csprojs Lots of stale TODO P2P references that need to be cleaned up. cc: @joperezr, @AlexGhiondea Fixes https://github.com/dotnet/corefx/issues/12431 Fixes https://github.com/dotnet/corefx/issues/13073 Fixes https://github.com/dotnet/corefx/issues/13894 +14135 area-System.Net SafeWinHttpHandleTest failed in CI ``` System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDisposeDispose_HandleIsNotClosed [FAIL] Assert.Equal() Failure Expected: 1 Actual: 3 Stack Trace: Starting: System.ComponentModel.EventBasedAsync.Tests D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http.WinHttpHandler\tests\UnitTests\SafeWinHttpHandleTest.cs(44,0): at System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDisposeDispose_HandleIsNotClosed() System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDispose_HandleIsNotClosed [FAIL] Assert.Equal() Failure Expected: 1 Actual: 4 Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http.WinHttpHandler\tests\UnitTests\SafeWinHttpHandleTest.cs(27,0): at System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDispose_HandleIsNotClosed() System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.SetParentHandle_CreateParentCreateChildDisposeParent_ParentNotClosed [FAIL] Assert.Equal() Failure Expected: 2 Actual: 6 Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http.WinHttpHandler\tests\UnitTests\SafeWinHttpHandleTest.cs(138,0): at System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.SetParentHandle_CreateParentCreateChildDisposeParent_ParentNotClosed() System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefReleaseDispose_HandleIsClosed [FAIL] Assert.Equal() Failure Expected: 0 Actual: 6 Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http.WinHttpHandler\tests\UnitTests\SafeWinHttpHandleTest.cs(89,0): at System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefReleaseDispose_HandleIsClosed() System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefRelease_HandleIsNotClosed [FAIL] Assert.Equal() Failure Expected: 1 Actual: 7 Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http.WinHttpHandler\tests\UnitTests\SafeWinHttpHandleTest.cs(74,0): at System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefRelease_HandleIsNotClosed() System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDisposeRelease_HandleIsClosed [FAIL] Assert.Equal() Failure Expected: 0 Actual: 5 Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Http.WinHttpHandler\tests\UnitTests\SafeWinHttpHandleTest.cs(59,0): at System.Net.Http.WinHttpHandlerUnitTests.SafeWinHttpHandleTest.CreateAddRefDisposeRelease_HandleIsClosed() ``` +14136 area-Meta Update apicompat baselines compared to NS2.0 @karelz @danmosemsft does the netstandard20 baseline file align with your expectations of what is left? +14137 area-Infrastructure Changing Visual Studio debug settings takes a long time "This has been ongoing for a while now, so it may be a duplicate. However, the problem seems to be getting worse so I created this issue. Changing Debug properties on a project takes 2.5 minutes on my machine. During this time I see that dotnet.exe is launched dozens of times calling apicompat.exe, genfacades.exe or vbcscompiler.exe. Repro (on Visual Studio 15 Update 3): 1) Open src\System.Security.Cryptography.Algorithms\System.Security.Cryptography.Algorithms.sln 2) Right-click on the Test project and select Properties 3) Click the Debug tab 4) Change ""Start external program"" to a different value 5) Press tab or lose focus Result: Visual Studio appears to freeze for 2.5 minutes and using Process Explorer I can tell that it is launching apicompat, genfacades and vbcscompiler many times. Changing other options including the ""Command line arguments"" text box or even clicking one of the checkboxes also does the same thing. This is frustrating as normal debugging scenarios often require changing ""Start external program"" in addition to ""Command line arguments"", meaning 5 minutes of down time. Note changing the top-level build type (in the main menu, not the build configuration Debug properties) also takes a long time, but not quite as long - around 1 minute (for example changing from Unix_debug to Windows_debug)." +14138 area-System.Net Disable SafeHandle tests in WinHttpHandler #13951 +14139 area-System.Xml Set DEBUG in System.Private.Xml System.Private.Xml is not setting DEBUG in debug builds, which means Debug.Asserts aren't enabled, #if DEBUG code isn't compiled in, etc. This fixes that. After fixing the compilation issues, one of the newly enabled asserts highlighted missing code, which I ported from reference source. cc: @danmosemsft, @sepidehMS +14140 area-System.Numerics MSDN BigInteger.Equals(object) documentation is confusing. "The documentation for `BigInteger.Equals(object)` [claims that](https://msdn.microsoft.com/en-us/library/dd268233(v=vs.110).aspx#Syntax): >If the obj parameter is not a BigInteger value, but it is a data type for which an implicit conversion is defined, the Equals(Object) method converts obj to a BigInteger value before it performs the comparison. ... however, this doesn't initially appear to be what happens, given this test passes: ``` [Fact] public static void NotEqualTests() { Assert.False(BigInteger.Zero.Equals((object)0)); } ``` The documentation then goes on to use this example code: ``` const long LIGHT_YEAR = 5878625373183; BigInteger altairDistance = 17 * LIGHT_YEAR; BigInteger epsilonIndiDistance = 12 * LIGHT_YEAR; BigInteger ursaeMajoris47Distance = 46 * LIGHT_YEAR; long tauCetiDistance = 12 * LIGHT_YEAR; ulong procyon2Distance = 12 * LIGHT_YEAR; object wolf424ABDistance = 14 * LIGHT_YEAR; Console.WriteLine(""Approx. equal distances from Epsilon Indi to:""); Console.WriteLine("" Altair: {0}"", epsilonIndiDistance.Equals(altairDistance)); Console.WriteLine("" Ursae Majoris 47: {0}"", epsilonIndiDistance.Equals(ursaeMajoris47Distance)); Console.WriteLine("" TauCeti: {0}"", epsilonIndiDistance.Equals(tauCetiDistance)); Console.WriteLine("" Procyon 2: {0}"", epsilonIndiDistance.Equals(procyon2Distance)); Console.WriteLine("" Wolf 424 AB: {0}"", epsilonIndiDistance.Equals(wolf424ABDistance)); ``` ... wherein `Equals(object)` isn't used at all, but only the relevant overloads. They call out that's what they're doing, but of course it doesn't answer the apparent question of ""yes, but what about _this_ method?"". I see where they were going with this, but I'm not sure it reads correctly." +14141 area-System.Runtime Randomize ValueTuple hash codes Per the comments in #14046, it was decided that the `ValueTuple` hash code should be randomized. This will allow for more flexibility if it needs to be changed again in the future. cc @jkotas, @VSadov, @jcouv, @JonHanna +14142 area-Infrastructure Updating Microsoft.NETCore.Platforms/runtime.json with corert RIDs Adding CoreRT RIDs @jkotas , @joshfree @weshaggard @ericstj , PTAL. /cc @dotnet/corert-contrib +14143 area-Infrastructure Name Drop using both BuildNumber and OfficialBuildId This makes it easier to associate a build with the VSTS Drop that contains the packages for that build. I plan to use that simpler mapping in other infra that needs access to symbol package drops. ~~I also cleaned up other publish tasks: calculating the BuildNumber is not needed after the change, and the StartRelease steps are obsolete because Release-starting functionality will be added to PipeBuild itself.~~ @chcosta PTAL /cc @weshaggard +14144 area-System.Linq LINQ: Consider adding overloads that capture variables for operators that currently don't "Many LINQ operators on `Enumerable` and `Queryable` take arguments of some `Func<>` type (or `Expression>` in the case of `Queryable`) which allow them to capture variables. This results in the following behavior: ``` C# var letter = """"; var q = from db.Beattles.Where(p => p.Name.StartsWith(letter)); // variable letter gets captured letter = ""P""; var beattle1 = q.First(); // Returns Paul letter = ""J""; var beattle2 = q.First(); // Returns John ``` A few operators like `Skip`, `Take`, `ElementAt`, `DefaultIfEmpty`, `Aggregate` and `Contains` (#13842 proposes a couple of additions) however accept arguments of simple types. Unless these operators appear nested inside other expressions, variables won't be captured but values. This pattern results in the following behavior: ``` C# var position = 1; var q = from db.Orders.Skip(position - 1); // a value of 0 gets captured position = 10; var tenth = q.First(); // returns the first Order position = 20; var twentieth = q.First(); // still returns the first Order ``` Each of these behaviors can be seen as correct, but IMO the fact that they are different can be subtle and confusing unless you know about the closures. A possible way to address this is to add overloads that capture, e.g. for `Enumerable.Skip(int)` the signature of the new overload would be: ``` C# public static IEnumerable Skip( this IEnumerable source, Func countAccessor) ``` Usage would be as follows: ``` C# var position = 1; var q = from db.Orders.Skip(() => position - 1); position = 10; var tenth = q.First(); position = 20; var twentieth = q.First(); ``` Another side effect manifests in specific translating LINQ providers such as the one contained in EF6 in which whether a value or a variable is captured influences whether a literal or a parameter is generated in the resulting SQL query. This simple rule enables some control over the SQL that gests generated but in the past it was the reason that repeated execution of queries that contained paging (i.e. `Skip` and `Take`) operations would pollute the database query cache (see http://stackoverflow.com/questions/9201403/force-entity-framework-to-use-sql-parameterization-for-better-sql-proc-cache-reu for more details). For this reason EF6 already defines overloads of `Skip()` and `Take()` that accept `Expression>` arguments. " +14145 area-Infrastructure Refactor configuration model This refactors the configuration model I created with the previous task so that it can be shared with FindBestConfiguration. /cc @chcosta @weshaggard +14146 area-System.Xml Test failure: System.Xml.Tests.CArgAddExtObj/AddExtObject10() Opened on behalf of @jiangzeng The test `System.Xml.Tests.CArgAddExtObj/AddExtObject10()` has failed. Assert.True() Failure Expected: True Actual: False Stack Trace: at System.Xml.Tests.XsltApiTestCaseBase2.VerifyResult(String expectedValue) at System.Xml.Tests.CArgAddExtObj.AddExtObject10() Build : Master - 20161130.05 (Core Tests) Failing configurations: - Ubuntu.1610.Amd64 - AnyCPU-Debug - AnyCPU-Release - Centos.71.Amd64 - AnyCPU-Release - AnyCPU-Debug - Ubuntu.1404.Amd64 - AnyCPU-Release - AnyCPU-Debug - Redhat.72.Amd64 - AnyCPU-Release - AnyCPU-Debug - Ubuntu.1604.Amd64 - AnyCPU-Release - AnyCPU-Debug - Debian.82.Amd64 - AnyCPU-Release - AnyCPU-Debug - Suse.132.Amd64 - AnyCPU-Debug - AnyCPU-Release - Fedora.23.Amd64 - AnyCPU-Release - AnyCPU-Debug - OSX.1011.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161130.05/workItem/System.Xml.Xsl.XslCompiledTransformApi.Tests/analysis/xunit/System.Xml.Tests.CArgAddExtObj~2FAddExtObject10() +14147 area-System.Xml "Test failure: System.Xml.Tests.CArgAddExtObj/AddExtObject28(param: \""MyObject_KillerStrings.txt\"")" "Opened on behalf of @jiangzeng The test `System.Xml.Tests.CArgAddExtObj/AddExtObject28(param: \""MyObject_KillerStrings.txt\"")` has failed. System.IO.FileNotFoundException : Could not find file '/home/helixbot/dotnetbuild/work/f737d3a2-7ea8-461b-994b-6ba69c06d41b/Work/39b267ac-8265-40f6-9670-34e8a3e16986/Unzip/diff.xml'. Stack Trace: at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access) at System.Xml.Tests.XsltApiTestCaseBase2.VerifyResult(String baseline, String outputFile) at System.Xml.Tests.CArgAddExtObj.AddExtObject28(Object param) Build : Master - 20161130.05 (Core Tests) Failing configurations: - Ubuntu.1610.Amd64 - AnyCPU-Debug - AnyCPU-Release - Centos.71.Amd64 - AnyCPU-Release - AnyCPU-Debug - Ubuntu.1404.Amd64 - AnyCPU-Release - AnyCPU-Debug - Redhat.72.Amd64 - AnyCPU-Release - AnyCPU-Debug - Ubuntu.1604.Amd64 - AnyCPU-Release - AnyCPU-Debug - Debian.82.Amd64 - AnyCPU-Release - AnyCPU-Debug - Suse.132.Amd64 - AnyCPU-Debug - AnyCPU-Release - Fedora.23.Amd64 - AnyCPU-Release - AnyCPU-Debug - OSX.1011.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161130.05/workItem/System.Xml.Xsl.XslCompiledTransformApi.Tests/analysis/xunit/System.Xml.Tests.CArgAddExtObj~2FAddExtObject28(param:%20%5C%22MyObject_KillerStrings.txt%5C%22)" +14148 area-System.Xml Test failure: Assert failure of System.Xml.Tests.CNDP1_1SP1Test Opened on behalf of @jiangzeng The test `System.Xml.Tests.CNDP1_1SP1Test/var1()` has failed. Assert.True() Failure Expected: True Actual: False Stack Trace: at System.Xml.Tests.XsltApiTestCaseBase2.VerifyResult(String expectedValue) at System.Xml.Tests.CNDP1_1SP1Test.var1() Build : Master - 20161130.05 (Core Tests) Failing configurations: - Ubuntu.1610.Amd64 - AnyCPU-Debug - AnyCPU-Release - Centos.71.Amd64 - AnyCPU-Release - AnyCPU-Debug - Ubuntu.1404.Amd64 - AnyCPU-Release - AnyCPU-Debug - Redhat.72.Amd64 - AnyCPU-Release - AnyCPU-Debug - Ubuntu.1604.Amd64 - AnyCPU-Release - AnyCPU-Debug - Debian.82.Amd64 - AnyCPU-Release - AnyCPU-Debug - Suse.132.Amd64 - AnyCPU-Debug - AnyCPU-Release - Fedora.23.Amd64 - AnyCPU-Release - AnyCPU-Debug - OSX.1011.Amd64 - AnyCPU-Release - AnyCPU-Debug Tests: System.Xml.Tests.CNDP1_1SP1Test/var1 System.Xml.Tests.CNDP1_1SP1Test/var2 System.Xml.Tests.CNDP1_1SP1Test/var4 Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161130.05/workItem/System.Xml.Xsl.XslCompiledTransformApi.Tests +14150 area-System.Collections Protect (List.Enumerator as IEnumerable).Current from breaking changes I added test to protect (List.Enumerator as IEnumerable).Current from breaking changes. See https://github.com/dotnet/coreclr/pull/8415 Also it test other `IEnumerator` that they haven't such issue. +14151 area-System.Net Improve Unable to find Curl exception I'm running CoreCLR on Raspberry PI and we are running into an issue with HttpClient: ``` System.TypeInitializationException: The type initializer for 'System.Net.Http.CurlHandler' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Http' threw an exception. ---> System.TypeInitializationException: The type initializer for 'HttpInitializer' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'System.Net.Http.Native': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Interop.HttpInitializer.EnsureCurlIsInitialized() at Interop.HttpInitializer..cctor() --- End of inner exception stack trace --- at Interop.HttpInitializer.Initialize() at Interop.Http..cctor() --- End of inner exception stack trace --- at Interop.Http.GetSupportedFeatures() at System.Net.Http.CurlHandler..cctor() --- End of inner exception stack trace --- at System.Net.Http.CurlHandler..ctor() ``` Here are the details on the native module: ``` dotnet/System.Net.Http.Native.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=4f81af5b4f6ce4731ebd55ea7d5427a58271a6b3, stripped ``` The problem was that it doesn't give a good error message. I fixed that by installing libcurl3, and I think that it should give a suggestion on why this is missing +14152 area-System.Console Provide API for Console window size changed event API: Could be an event like CancelKeyPress or a value returned by ReadKey. Threading: Run as part of call to Read Implementation: Unix: SIGWINCH Windows: SetConsoleMode ENABLE_WINDOW_INPUT +14154 area-System.ComponentModel Code cleanup in System.ComponentModel.TypeConverter Resolves #12160 to clean up code in System.ComponentModel.TypeConverter cc @AlexGhiondea - [x] Remove explicit base() from constructor calls - [x] Replace explicitly implemented properties with auto-implemented properties when possible - [x] Simplify members and properties with 1 lines of code to expression bodied members - [x] Switch over to the ?. operator in C# for null checking - [x] Switch to string interpolation instead of string concatenation - [x] Remove unnecessary initialization (ie. Bool foo = false) - [x] Replace empty arrays with Array.Empty() - [x] Replace string literals with nameof wherever possible. - [x] Simplify event handler declarations when no custom code is required - [x] Introduce readonly modifier for sync objects. - [x] Replace nongeneric collections with generic collections - [x] Use foreach instead of manually writing the foreach logic. - [x] Cache the char[] into a static readonly field (ie. new char[] { '' }) - [x] Simplify the CultureInfoMapper code I created an individual commit for each improvement, didn't know if that would make review any easier. I tried to search the project and make sure everything was accounted for. This is a decent size project so something may have been missed. Feel free to comment and I'll be glad to fix it. +14155 area-System.Linq "Adding ""state"" arguments to LINQ." "## Motivation Very often when using LINQ the compiler has to capture variables for us, with all the crazy compiler magic that comes with that (Generated classes, memory allocations, extended life, etc). Most of the time it's only one variable that needs to be captured so the cost of the magic isn't worth it. ## Proposal Adding LINQ methods that take a ""state"" argument to pass into the operating functions. I'll only give one example here instead of listing EVERY API that would need to be added. If the idea is green lighted I'll create such a list. ```diff namespace System.Linq { public static class Enumerable { + public static bool Any(this IEnumerable source, TState state, Func predicate); } } ``` ## Issues Admittedly it is a large change for a limited amount of gain. " +14157 area-System.Diagnostics Process raises Exited events even when EnableRaisingEvents = false (as discussed in in PR #11998) The documentation should be updated to reflect that EnableRaisingEvents=false offers no guarantee that Exited events will not be raised. [context: depends on the state of a private flag (_exited) and properties you query might still trigger events] Some interesting passages to update: **Process.EnableRaisingEvents Property** > Gets or sets whether the Exited event should be raised when the process terminates. > true if the Exited event should be raised when the associated process is terminated (through either an exit or a call to Kill); otherwise, false. The default is false. > The EnableRaisingEvents property indicates whether the component should be notified when the operating system has shut down a process. > When an associated process exits after being shut down by the operating system either through a normal or abnormal termination, the operating system notifies each process component to which the process was associated, as long as the component's EnableRaisingEvents value is **true**. > Setting EnableRaisingEvents to false saves system resources. +14158 area-System.Net implement Socket.SendFile +14160 area-System.Runtime Proposal: Add overload DateTime formatting APIs which takes TimeZoneInfo "Here is the summary of the proposal: ## API Proposal ```C# namespace System { public sealed class DateTime : ValueType, IComparable, IComparable, IConvertible, IEquatable, IFormattable { public String ToLongDateString(TimeZoneInfo tzi) public String ToLongTimeString(TimeZoneInfo tzi) public String ToShortDateString(TimeZoneInfo tzi) public String ToShortTimeString(TimeZoneInfo tzi) public String ToString(TimeZoneInfo tzi) public String ToString(String format, TimeZoneInfo tzi) public String ToString(TimeZoneInfo tzi, IFormatProvider provider) public String ToString(String format, IFormatProvider provider) } } ``` ## Details Need a way to be able to format the dates using non-default/Local time zone. currently to do that will need manually convert the date to the target time zone and then format it. Today if someone want to achieve the same result as the proposed APIs will write a code like ```C# var now = DateTime.Now; var zone = TimeZoneInfo.FindSystemTimeZoneById(""Turkey Standard Time""); var localTime = TimeZoneInfo.ConvertTime(now, zone); Console.WriteLine($""{localTime.ToLongDateString()}""); ``` and will need to call the time zone conversion API TimeZoneInfo.ConvertTime every time before formatting the date/time. Also today there is no easy way to format the DateTime with a target time zone using a formatting pattern like ""o"" which include the time zone information. for example doing: ```C# var now = DateTime.Now; var zone = TimeZoneInfo.FindSystemTimeZoneById(""Turkey Standard Time""); var localTime = TimeZoneInfo.ConvertTime(now, zone); Console.WriteLine($""{localTime.ToString(""o"")}""); ``` will produce something like ``` 2017-01-17T23:37:21.1371643 ``` which either will show the formatted string without the time zone info or if the time zone info is there will be matching the local time zone or UTC time zone but cannot have the target time zone information. The desired formatted string from the example should be something like ``` 2017-01-17T23:37:21.1371643+03:00 ``` where +03:00 reflect Turkey time zone offset from UTC. the way the proposed APIs work will manually check the Kind of the DateTime, if it is Local/Unspecified then it will convert the DateTime from local time zone to target time zone. if the Kind is UTC, will convert it from UTC to target time zone. If the output format is the one which include the time zone info (e.g. 'o' pattern), the resulted formatted string should reflect the target time zone. ## Sample Code ```C# var now = DateTime.Now; var zone = TimeZoneInfo.FindSystemTimeZoneById(""Turkey Standard Time""); Console.WriteLine($""{now.ToLongDateString(zone)}""); ``` " +14161 area-Infrastructure Add RID for Linux/ARM32 (ubuntu) Add RID for Linux/ARM32 - ubuntu*-arm related PR: https://github.com/dotnet/coreclr/pull/8421 +14162 area-Meta Profiling tools on linux Is there any tools to take memory dump and see objects of running .NET Core app on linux? I have memory leak problem on linux, but on windows everything is ok, so I can't use dotMemory. Which tools do corefx/coreclr teams use to profile apps on linux? +14163 area-System.IO System.IO.FileSystem.Tests project fail ValidFileOptions test if FileOptions contains Encrypted flag Creating encrypted files or folder can be disabled for some users. I split ValidFileOptions test on two. +14165 area-Infrastructure All Win7 runs failing "Lots of errors like: ``` error MSB4018: The ""GetTargetMachineInfo"" task failed unexpectedly. [D:\j\workspace\outerloop_win---b280fd23\src\System.Net.Requests\src\System.Net.Requests.csproj] error MSB4018: System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) [D:\j\workspace\outerloop_win---b280fd23\src\System.Net.Requests\src\System.Net.Requests.csproj] error MSB4018: at Interop.mincore.GetNativeSystemInfo(SYSTEM_INFO& lpSystemInfo) [D:\j\workspace\outerloop_win---b280fd23\src\System.Net.Requests\src\System.Net.Requests.csproj] error MSB4018: at System.Runtime.InteropServices.RuntimeInformation.get_OSArchitecture() [D:\j\workspace\outerloop_win---b280fd23\src\System.Net.Requests\src\System.Net.Requests.csproj] error MSB4018: at Microsoft.DotNet.Build.Tasks.GetTargetMachineInfo.Execute() [D:\j\workspace\outerloop_win---b280fd23\src\System.Net.Requests\src\System.Net.Requests.csproj] error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [D:\j\workspace\outerloop_win---b280fd23\src\System.Net.Requests\src\System.Net.Requests.csproj] error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() [D:\j\workspace\outerloop_win---b280fd23\src\System.Net.Requests\src\System.Net.Requests.csproj] ```" +14166 area-System.Security Lots of failing asserts in X509Certificate tests on Ubuntu 16.04 e.g. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_ubuntu16.04_debug/30/consoleText ``` at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at Internal.Cryptography.Pal.DirectoryBasedStoreProvider.EnsureFilePermissions(FileStream stream, UInt32 userId) in /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.04_debug/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/DirectoryBasedStoreProvider.cs:line 384 at Internal.Cryptography.Pal.DirectoryBasedStoreProvider.Add(ICertificatePal certPal) in /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.04_debug/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/DirectoryBasedStoreProvider.cs:line 189 at System.Security.Cryptography.X509Certificates.X509Store.Add(X509Certificate2 certificate) in /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.04_debug/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Store.cs:line 135 at Internal.Cryptography.Pal.ChainPal.SaveIntermediateCertificates(X509ChainElement[] chainElements, HashSet`1 downloaded) in /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.04_debug/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/ChainPal.cs:line 158 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) in /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.04_debug/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/ChainPal.cs:line 90 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) in /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.04_debug/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs:line 118 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) in /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.04_debug/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs:line 105 at System.Security.Cryptography.X509Certificates.Tests.ChainTests.get_TrustsMicrosoftDotComRoot() in /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.04_debug/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs:line 27 ``` +14167 area-System.Collections Remove FEATURE_TRACING from System.Collections.Concurrent This compilation constant is always set. We can just delete it. cc: @kouvel, @alexperovich +14169 area-Meta Most of the markdown documentation could use improvement. I use the vs-code editor a lot these days and I would suggest that if you are writing markdown documents a lot that you take a look at the linters for markdown then we could all enjoy less green squiggly underlines. Also you don't need to let the text roll on in one line. Markdown will wrap it as needed. There is help here on github for this markdown linter. see: https://github.com/DavidAnson/markdownlint/blob/v0.3.1/doc/Rules.md +14170 area-System.Runtime Proposal: Make it easier to iterate through an ArraySegment ## Approved API shape ```c# public struct ArraySegment { public Enumerator GetEnumerator(); // Change existing internal class ArraySegmentEnumerator to: public struct Enumerator : IEnumerator { public bool MoveNext(); public T Current { get; } public void Dispose(); // NOT public: //void IEnumerator.Reset(); } } ```` * Change existing internal class [`ArraySegment.ArraySegmentEnumerator`](https://github.com/dotnet/coreclr/blob/15ea0086a7e6f87e8237923684e100e3e1f44698/src/mscorlib/src/System/ArraySegment.cs#L294-L350) to struct (see above). Value: Saves 1 boxing per enumerator: ``` C# foreach (T item in ArraySegmentReturningMethod()) { } ``` **Note:** I know that `Span` is supposed to supplant `ArraySegment`, this was added way back in 2.0, etc. However, the indexer seems so trivial to add and could help increase readability of existing code. +14171 area-Infrastructure vertical build port to Dev/eng Now that Eric has checked in, I'm able to move my work into the dev/eng branch. This change brings in code to build only those libraries contributing to a specific vertical. The code was originally written as a proof-of-concept against corefx/master. Not being able to play in dev/eng means that the code base quickly diverged and now there is quite a bit of cleanup work to bring these changes back in line with the direction of dev/eng. Work to be done (I'll capture all of this in a separate issue): - Refactor to consume Eric's configurations props file - Make the vertical build a first-class citizen, in its current implementation, you only perform a vertical build if you include `/p:VerticalGroup=Windows_NT-netcoreapp1.1-Debug`. Making it a first class build means we can get rid of quite a bit of code from buildvertical.targets and eliminate buildvertical.traversal.targets - Default target group is no longer a concept, update Configurations to reflect that and remove default target group code. - Some libraries which were previously building, are not building cleanly in dev/eng, I've omitted these from the build by adding an 'omit.txt' file in the library folder. - Names of properties / targets / etc will probably need to change because concepts have changed - Binary output needs to be updated to conform with Wes' documented spec - https://github.com/dotnet/corefx/blob/63205dc4918e0520c3c512f322d00c3206c5a9ff/Documentation/coding-guidelines/project-guidelines.md I don't want to slow down anyone's work which requires this build output, so I'm ok with submitting this code as-is if it is needed and cleaning it up with additional checkins as we evolve the code, i'm also ok with holding off on checking this in. I'd prefer not to check-in as-is if nobody is clamoring for the work. Now that I am working in dev/eng, I am feeling far less angst about being removed from the rest of the vertical build changes. /cc @ellismg @weshaggard @ericstj @mellinoe @markwilkie +14173 area-System.Linq Optimize new ToHashSet api. #13726 added `Enumerable.ToHashSet`, which is currently equivalent to writing `new HashSet(items)`. We may want to look into optimizing it by adding it as another method on `IIListProvider`, and reducing some virtual method calls. Opening this as a tracking issue for that. cc @JonHanna +14174 area-System.Linq Cleanup Reverse tests, and refactor First/Last. Refactor `First` and `FirstOrDefault` and `Last` and `LastOrDefault` to share some code. Also, cleanup the tests for `Reverse` (previously, this PR contained changes related to that method). cc @stephentoub @VSadov @JonHanna +14175 area-System.Net Obsolete serialization of 2 types Fix https://github.com/dotnet/corefx/issues/14068 I made some attempt to fix serialization for each of these types, but they have been sufficiently rewritten that it would need some design work (eg., some of the state was moved to nested or nested-nested types). Given the serializers were marked obsolete in Full framework, I chose to abandon that effort and made them throw rather than be broken. @stephentoub @davidsh @CIPop +14176 area-System.Net Expose setters on WebHeaderCollection Fix https://github.com/dotnet/corefx/issues/14108 @stephentoub @CIPop @davidsh +14177 area-System.Net Failure in ClientAsyncAuthenticate_AllServerAllClient_Success in CI ``` System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_AllServerAllClient_Success [FAIL] System.IO.IOException : Authentication failed because the remote party has closed the transport stream. Stack Trace: D:\j\workspace\outerloop_win---7ad0ce03\src\System.Net.Security\src\System\Net\Security\SslState.cs(884,0): at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) D:\j\workspace\outerloop_win---7ad0ce03\src\System.Net.Security\src\System\Net\Security\SslState.cs(1094,0): at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() D:\j\workspace\outerloop_win---7ad0ce03\src\System.Net.Security\src\System\Net\Security\SslState.cs(752,0): at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) D:\j\workspace\outerloop_win---7ad0ce03\src\System.Net.Security\src\System\Net\Security\SslState.cs(722,0): at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) D:\j\workspace\outerloop_win---7ad0ce03\src\System.Net.Security\src\System\Net\Security\SslStream.cs(132,0): at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\outerloop_win---7ad0ce03\src\Common\tests\System\Threading\Tasks\TaskTimeoutExtensions.cs(19,0): at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\outerloop_win---7ad0ce03\src\System.Net.Security\tests\FunctionalTests\ClientAsyncAuthenticateTest.cs(151,0): at System.Net.Security.Tests.ClientAsyncAuthenticateTest.d__14.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\outerloop_win---7ad0ce03\src\System.Net.Security\tests\FunctionalTests\ClientAsyncAuthenticateTest.cs(75,0): at System.Net.Security.Tests.ClientAsyncAuthenticateTest.d__7.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Using D:\j\workspace\outerloop_win---7ad0ce03\packages\ as folder for resolving package dependencies. Executing in D:\j\workspace\outerloop_win---7ad0ce03\bin\tests\AnyOS.AnyCPU.Debug\System.Threading.Performance.Tests\default.netcoreapp1.1\ Hard linking dependent files... Finished: System.Net.Security.Tests ``` Does not seem related to the PR https://github.com/dotnet/corefx/pull/14158 Similar to https://github.com/dotnet/corefx/issues/10909 @davidsh @CIPop +14178 area-System.Numerics Get a rough idea of the size of a BigInteger It would be terrific if there were a fast API for getting a rough idea of the absolute value of a BigInteger, say to within a factor of a billion or so. Something like the size of the private _bits array would be fine. This is useful for calculator apps and the like, as you want to be able to tell if an operation will definitely overflow before attempting it. +14180 area-System.Linq Misc. cleanup of instructions In preparation of generating many of the instructions using a T4 file, I'm addressing some stylistic oddities and inconsistencies in the existing code. The use of T4 text templates will make it easier to maintain these instructions (typically N operations against M primitive types, e.g. arithmetic instructions) and change them in bulk for performance optimizations and whatnot. Related to https://github.com/dotnet/corefx/pull/14086. +14182 area-System.Net Missing some Socket API These are missing ``` M:System.Net.Sockets.Socket.EndAccept(System.Byte[]@,System.IAsyncResult) M:System.Net.Sockets.Socket.EndAccept(System.Byte[]@,System.Int32@,System.IAsyncResult) P:System.Net.Sockets.SocketAsyncEventArgs.SendPacketsFlags M:System.Net.Sockets.SocketAsyncEventArgs.get_SendPacketsFlags M:System.Net.Sockets.SocketAsyncEventArgs.set_SendPacketsFlags(System.Net.Sockets.TransmitFileOptions) ``` Broken out of https://github.com/dotnet/corefx/issues/12460 @karelz This needs an owner. +14185 area-System.Linq Maintain stable sort behaviour in OrderBy().LastOrDefault(predicate) Fixes #14183 +14186 area-System.Linq Implement & expose SkipLast & TakeLast for Enumerable & Queryable Fixes https://github.com/dotnet/corefx/issues/13842. `Queryable` implementation is courtesy of @JonHanna. The initial implementation forgoes optimizations and uses `Queue` as the circular buffer. I am not quite sure what I'm doing, but I followed @JonHanna's example for https://github.com/dotnet/corefx/pull/13726. cc @stephentoub, @VSadov, @bartdesmet, @svick +14187 area-System.Runtime Remove usage of EqualityComparer from ValueTuple's GetHashCode `EqualityComparer.Default.GetHashCode(item)` has exactly the same behavior as `item?.GetHashCode ?? 0`. The only difference is that the latter version is faster because it is not an extra call. Previously, the only compelling reason to use the former was that if `item` was an enum, then calling `GetHashCode` directly would box while `EqualityComparer` wouldn't (see [here](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Collections/Generic/EqualityComparer.cs#L63)). However, [this change](https://github.com/dotnet/coreclr/pull/7895) in coreclr and [this one](https://github.com/dotnet/corert/pull/2117) in corert eliminate boxing for enums, so there is no longer a reason to use `EqualityComparer` in ValueTuple. This PR replaces all usage of it with `item?.GetHashCode() ?? 0`. (I used a regex find-and-replace.) cc @VSadov @jcouv @stephentoub @omariom Fixes https://github.com/dotnet/corefx/issues/13774 +14189 area-System.Memory Span: Add Span.Fill(T value) As discussed briefly in https://github.com/dotnet/corefx/issues/13427 I propose to add a `Fill(T value)` method to `Span` to make span the goto place for safe and fast memory operations. This is analoguous to the same method approved for arrays in https://github.com/dotnet/corefx/issues/6695 and added in https://github.com/dotnet/coreclr/pull/8137, https://github.com/dotnet/corert/pull/2259 but still lacking optimization https://github.com/dotnet/coreclr/issues/8290, perhaps `Array.Fill` could forward to `Span.Fill` in the future... ### Rationale and Usage Provide a safe yet fast way of filling of any type of contiguous memory; managed or unmanaged. ```csharp var span = new Span(array, 3, 10); span.Fill(42); ``` The argumentation for adding this is similar to `Array.Fill`, but here with a wider use case, since this can be used with both managed and unmanaged memory: * To increase the efficiency of code doing this and prevent people from reinventing the wheel. * Allow performance optimizations depending on memory type and contents. ### Proposed API Add a single method `Fill(T value)` to the existing `Span` API: ```csharp public class Span { public void Fill(T value); } ``` ### Open Questions Open question is whether this should be added as a member method or an extension method. I would argue for a member method, since this will depend on internal representation, and would perhaps allow for the JIT intrinsic version to do optimizations that a generic extension method can't. If that is a valid argument? @karelz @jkotas @omariom @benaadams @jamesqo +14190 area-System.Collections Improve ConcurrentBag.ToArray/GetEnumerator/CopyTo/IsEmpty performance "ToArray and CopyTo take a moment-in-time snapshot of the bag by freezing it, copying the contents to an array, and unfreezing. However, that copy is done via an intermediate List, which results in potentially many unnecessary allocations and copies. Changes: - This commit fixes that by first counting how many items there are in the bag and either presizing the array (in the case of ToArray) or comparing the length (in the case of CopyTo) and then copying directly into the target, eliminating the extra allocations. - There is still an intermediate allocation for the non-generic ICollection.CopyTo(Array, int) method, but to avoid that in common cases, it now special-cases T[] and uses the more efficient CopyTo(T[], int) implementation for that common case. - GetEnumerator was similarly implemented to first copy to a list and then get its enumerator. It now uses the ToArray implementation instead. This also means that for empty bags, we end up returning Array.Empty, which means the returned enumerator from it is also a singleton. - Additional fast paths were added to IsEmpty. It also had a fast path to check to see if the bag was void of any queues, in which case we know the bag is empty. I've also added checks for the local queue. If the local queue isn't empty, then we know the bag isn't empty and we can avoid freezing/unfreezing. If the local queue is empty and it's the only one in the bag, then we can similarly avoid freezing/unfreezing, as we know the whole bag is empty. - Added some additional tests. Note: There are two small technically breaking changes here: - ((ICollection)bag).CopyTo when passed a T[] with a bad index would previously throw an ArgumentOutOfRangeException with the name ""dstIndex"". That's because that's what Array's CopyTo implementation uses as the parameter name, even though this makes very little sense: the name of that property in both ICollection.CopyTo and in ConcurrentBag.CopyTo is ""index"". As a side-effect of the CopyTo(Array, int) optimization that checks for T[] and forwards it to CopyTo(T[], int), we end up using ""index"" instead of ""dstIndex"" for the argument name in the exception. - GetEnumerator used to return the result of calling GetEnumerator on the generated ```List```; now it calls GetEnumerator on the generated ```T[]```. ```List``` and ```T[]``` have different implemented behaviors for the undefined situation of calling Current on an enumerator after MoveNext has returned false: for ```List``` it returns default(T) and for array it throws an exception. By switching from using a ```List``` to a ```T[]```, this behavior has also switched. If we wanted to deal with this, we could by writing a custom enumerator implementation, but it seemed unnecessary. For this perf test that fills a bag with N queues and M items per queue and then calls ToArray on it 10M times: ```C# using System; using System.Diagnostics; using System.Threading; using System.Threading.Tasks; using System.Collections.Concurrent; using System.Linq; class Test { public static void Main() { var sw = new Stopwatch(); var counts = new[] { 1, 4, 16, 64 }; foreach (int threads in counts) { foreach (int itemsPerQueue in counts) { var bag = new ConcurrentBag(); var b = new Barrier(threads); Task.WaitAll(Enumerable.Range(0, threads).Select(_ => Task.Factory.StartNew(() => { b.SignalAndWait(); for (int perQueue = 0; perQueue < itemsPerQueue; perQueue++) bag.Add(perQueue); }, CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default)).ToArray()); int gen0 = GC.CollectionCount(0); sw.Restart(); for (int i = 0; i < 10000000; i++) bag.ToArray(); sw.Stop(); gen0 = GC.CollectionCount(0) - gen0; Console.WriteLine($""Threads: {threads,3} PerThread: {itemsPerQueue,3}. Time: {sw.Elapsed} Gen0: {gen0}""); } } } } ``` I get the following results: Before: ``` Threads: 1 PerThread: 1. Time: 00:00:01.1500330 Gen0: 534 Threads: 1 PerThread: 4. Time: 00:00:01.3972260 Gen0: 572 Threads: 1 PerThread: 16. Time: 00:00:02.8350332 Gen0: 1488 Threads: 1 PerThread: 64. Time: 00:00:06.9316286 Gen0: 4463 Threads: 4 PerThread: 1. Time: 00:00:02.1913958 Gen0: 572 Threads: 4 PerThread: 4. Time: 00:00:03.6266836 Gen0: 1487 Threads: 4 PerThread: 16. Time: 00:00:07.0374684 Gen0: 4462 Threads: 4 PerThread: 64. Time: 00:00:20.0522162 Gen0: 15674 Threads: 16 PerThread: 1. Time: 00:00:05.9808988 Gen0: 1487 Threads: 16 PerThread: 4. Time: 00:00:10.7812079 Gen0: 4463 Threads: 16 PerThread: 16. Time: 00:00:22.5223754 Gen0: 15674 Threads: 16 PerThread: 64. Time: 00:01:09.4600190 Gen0: 59791 Threads: 64 PerThread: 1. Time: 00:00:21.1134136 Gen0: 4463 Threads: 64 PerThread: 4. Time: 00:00:33.4638482 Gen0: 15674 Threads: 64 PerThread: 16. Time: 00:01:30.1069096 Gen0: 59791 Threads: 64 PerThread: 64. Time: 00:04:55.3938445 Gen0: 235294 ``` After: ``` Threads: 1 PerThread: 1. Time: 00:00:00.7471809 Gen0: 152 Threads: 1 PerThread: 4. Time: 00:00:00.9599024 Gen0: 191 Threads: 1 PerThread: 16. Time: 00:00:01.0244813 Gen0: 420 Threads: 1 PerThread: 64. Time: 00:00:01.2910293 Gen0: 1335 Threads: 4 PerThread: 1. Time: 00:00:01.5348352 Gen0: 190 Threads: 4 PerThread: 4. Time: 00:00:02.6237707 Gen0: 420 Threads: 4 PerThread: 16. Time: 00:00:02.7698953 Gen0: 1335 Threads: 4 PerThread: 64. Time: 00:00:04.0346238 Gen0: 4995 Threads: 16 PerThread: 1. Time: 00:00:04.8559514 Gen0: 420 Threads: 16 PerThread: 4. Time: 00:00:08.8832032 Gen0: 1335 Threads: 16 PerThread: 16. Time: 00:00:10.0114349 Gen0: 4995 Threads: 16 PerThread: 64. Time: 00:00:15.1769433 Gen0: 19608 Threads: 64 PerThread: 1. Time: 00:00:19.3902392 Gen0: 1335 Threads: 64 PerThread: 4. Time: 00:00:35.8097217 Gen0: 4995 Threads: 64 PerThread: 16. Time: 00:00:40.8270685 Gen0: 19608 Threads: 64 PerThread: 64. Time: 00:01:01.7713918 Gen0: 78125 ``` cc: @kouvel, @alexperovich, @weshaggard " +14193 area-System.Runtime Proposal: string.Join with a default separator "## Background When you want to dump the contents of multiple collections to the console, it can be very cumbersome to have to repeatedly write `Console.WriteLine(string.Join("", "", collection))` and type `"", "", ` each time. ## Proposal We should consider adding an overload of `string.Join` that accepts no separator and joins with `' '`. It would be analagous to how, today, `str.Trim()` is equivalent to calling `str.Trim(s_allWhiteSpaceChars)`. ```cs namespace System { public sealed class String { public static string Join(params string[] value); public static string Join(params object[] values); public static string Join(IEnumerable values); } } // Usage: Console.WriteLine(string.Join(col)); // Quickly dump `col` ``` ## Implementation ```cs public static string Join(params string[] value) => Join(' ', value); public static string Join(params object[] values) => Join(' ', values); public static string Join(IEnumerable values) => Join(' ', values); ``` ## Notes This was originally a proposal for adding instance join overloads to `String`, but seeing as we already have 12 overloads I figured that wasn't such a great idea. cc @justinvp @AlexGhiondea @svick" +14195 area-System.Linq [WIP] Using T4 to generate instruction files Many instructions in the expression interpreter are repetitive because they deal with various expression types across various primitive types. This makes changing their implementation quite cumbersome and error-prone. In this PR, I'm adding .t4 and .tt files to generate these instructions, thus making it easier to change the generated code both for consistency and performance tuning purposes. Submitting this PR as a WIP. I'll add some comments inline to point out oddities and inconsistencies in the original code across the various instruction types. I have some other PRs pending that will reduce the number of diffs in these files by applying stylistic changes first, followed by consistent sorting of the inner types for various instructions by the primitive type they cover. Covered instructions are *binary* expressions: * Add[Checked] * Subtract[Checked] * Multiply[Checked] * Divide * Modulo * LeftShift * RightShift * GreaterThan[OrEqual] * LessThan[OrEqual] * Equal * NotEqual * And * Or * ExclusiveOr and *unary* expressions: * Increment * Decrement * Not * Negate[Checked] * OnesComplement +14197 area-System.Security Add SignedCms support .NET Core currently lacks SignedCms support which is available in standard .NET Framework. http://stackoverflow.com/questions/40918396/signedcms-alternative-in-net-core/40954173#40954173 +14198 area-System.Collections Consider pooling buffer within StringBuilder Some issues request string builders with less memory allocations. See https://github.com/dotnet/corefx/pull/13875#issuecomment-262293493 and https://github.com/dotnet/corefx/issues/13893 I suggest rewrite `StringBuilder` to use ArrayPool internal and also add next API to StringBuilder ```cs public class StringBuilder { public string ToStringAndRelease(); // return result String and release buffers to ArrayPool public string ToStringAndRelease(int index, int count); // return result String and release buffers to ArrayPool } ``` +14200 area-System.Security SslStream fails at CRL caching when invoked as non-privileged user with no home I am using the `MailKit` NuGet package to send emails on .NET Core 1.0 via smtp.gmail.com. I get the error below when my app is running on Debian 8 as a non-privileged user created by `adduser --system --no-create-home`. Apparently in order to verify the SMTP server's certificate, FX code attempts to create a directory under `/root/`, which is where $HOME points to in my scenario. While this formally makes sense, it seems counter-intuitive that code run as a non-privileged user without a home as above would a) end up accessing `/root/` in this scenario, and b) that it would not fall back to just not caching the cert if it hits UnauthorizedAccessException (or any IO exception?). ``` System.UnauthorizedAccessException: Access to the path '/root/.dotnet/corefx/cryptography/crls' is denied. ---> System.IO.IOException: Permission denied --- End of inner exception stack trace --- at System.IO.UnixFileSystem.CreateDirectory(String fullPath) at System.IO.Directory.CreateDirectory(String path) at Internal.Cryptography.Pal.CrlCache.GetCachedCrlPath(X509Certificate2 cert, Boolean mkDir) at Internal.Cryptography.Pal.CrlCache.DownloadAndAddCrl(X509Certificate2 cert, SafeX509StoreHandle store, TimeSpan& remainingDownloadTime) at Internal.Cryptography.Pal.CrlCache.AddCrlForCertificate(X509Certificate2 cert, SafeX509StoreHandle store, X509RevocationMode revocationMode, DateTime verificationTime, TimeSpan& remainingDownloadTime) at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.BuildChain(X509Certificate2 leaf, HashSet`1 candidates, HashSet`1 downloaded, HashSet`1 systemTrusted, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan& remainingDownloadTime) at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) at System.Net.Security.CertificateValidation.BuildChainAndVerifyProperties(X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, String hostName) at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) at System.Net.Security.SslState.CompleteHandshake() at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at MailKit.Net.Smtp.SmtpClient.Connect(String host, Int32 port, SecureSocketOptions options, CancellationToken cancellationToken) at MailKit.MailService.Connect(String host, Int32 port, Boolean useSsl, CancellationToken cancellationToken) ``` +14201 area-Infrastructure Report agent disk usage +14202 area-Infrastructure Auto-generate Microsoft.NETCore.Platforms\runtime.json Ref: https://github.com/dotnet/corefx/pull/14142#discussion_r90922312 /cc @ericstj +14203 area-Infrastructure Referencing Microsoft.NETCore.App 1.2.0-* results in type ambiguity "I was attempting to upgrade AspNetCore packages to 1.2.0-* M.NETCore.App \ 4.4.0-* CoreFx packages. However it looks like the Task type is brought in separately by both System.Runtime and System.Threading.Tasks package. Consequently an app that references `Task` fails: ```js { ""frameworks"": { ""netcoreapp1.1"": { ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.2.0-*"" } } } } } ``` ```C# using System; using System.Threading.Tasks; namespace ConsoleApplication { public class Program { public static Task Test() => Task.FromResult(0); } } ``` error CS0433: The type 'Task' exists in both 'System.Threading.Tasks, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a " +14204 area-Infrastructure Update report clean agent task for non-Windows Cannot use the VSTS MSBuild task on non-Windows platforms +14205 area-Infrastructure Fix tools build This started failing after a9f6d7d749f9946cc6b10c50b54bcae0e43e859e was merged. Make sure to opt out of binplacing. /cc @joperezr @mellinoe +14206 area-Infrastructure Update paths used in defs to Tools +14207 area-System.Collections ConcurrentQueue doesn't reuse segments ConcurrentQueue allocates a new Segment for every 32 elements, which means that every T added has space allocated for it, just in chunks. +14208 area-Infrastructure Rename to reflect latest configuration spec ProjectConfigurations -> BuildConfigurations ProjectConfiguration -> Configuration /cc @weshaggard @chcosta You can see the resultant props here: https://gist.github.com/ericstj/cb427010dbcb416fda82a8884143c32f @weshaggard we might need to think about what other things to put in the Configuration property when it gets defaulted. +14209 area-Meta publishing self contained apps hang indefinitly on web api projects "This is a consistent problem for me. Happens when trying to publish from VS or cli. Only one framework in use ( ""win10-x64"" ) . Have not tried yet with other framework monikers " +14211 area-Infrastructure System.Collections.sln fails to build in VS unless built from the command-line first "## Steps to reproduce the issue 1. Delete the ""bin"" directory from your local repo. 2. Open src\System.Collections\System.Collections.sln in Visual Studio 2015. 3. Build the solution in VS. ## Expected behavior The build succeeds. ## Actual behavior The build fails with several errors like `error CS0006: Metadata file 'C:\Repos\corefx\bin\Windows_NT.AnyCPU.Debug\System.Diagnostics.Debug\System.Diagnostics.Debug.dll' could not be found` Here's the complete output: > 1>------ Build started: Project: System.Collections (src\System.Collections), Configuration: Debug Any CPU ------ > 2>------ Build started: Project: System.Collections (ref\System.Collections), Configuration: Debug Any CPU ------ > 3>------ Build started: Project: System.Collections.Tests, Configuration: Debug Any CPU ------ > 4>------ Build started: Project: System.Collections.Performance.Tests, Configuration: Debug Any CPU ------ > 1>CSC : error CS0006: Metadata file 'C:\Repos\corefx\bin\Windows_NT.AnyCPU.Debug\System.Diagnostics.Debug\System.Diagnostics.Debug.dll' could not be found > 1>CSC : error CS0006: Metadata file 'C:\Repos\corefx\bin\AnyOS.AnyCPU.Debug\System.Runtime\netstandard1.7\System.Runtime.dll' could not be found > 2> System.Collections -> C:\Repos\corefx\bin\ref\System.Collections\4.1.0.0\System.Collections.dll > 4>C:\Repos\corefx\Tools\sign.targets(70,5): error : C:\Repos\corefx\bin/obj/ref/System.Collections/4.1.0.0/System.Collections.dll: I/O error reading or writing PE file: The process cannot access the file 'C:\Repos\corefx\bin\obj\ref\System.Collections\4.1.0.0\System.Collections.dll' because it is being used by another process. > 4> System.Collections -> C:\Repos\corefx\bin\ref\System.Collections\4.1.0.0\netstandard1.7\System.Collections.dll > 4> System.Collections -> C:\Repos\corefx\bin\AnyOS.AnyCPU.Debug\System.Collections\net463\System.Collections.dll > 4>CSC : error CS0006: Metadata file 'C:\Repos\corefx\bin\Windows_NT.AnyCPU.Debug\System.Diagnostics.Debug\System.Diagnostics.Debug.dll' could not be found > 4>CSC : error CS0006: Metadata file 'C:\Repos\corefx\bin\AnyOS.AnyCPU.Debug\System.Runtime\netstandard1.7\System.Runtime.dll' could not be found > 4>CSC : error CS0006: Metadata file 'C:\Repos\corefx\bin\AnyOS.AnyCPU.Debug\System.Resources.ResourceManager\uap101aot\System.Resources.ResourceManager.dll' could not be found > 4>CSC : error CS0006: Metadata file 'C:\Repos\corefx\bin\AnyOS.AnyCPU.Debug\System.Runtime\uap101aot\System.Runtime.dll' could not be found > 4>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(3962,5): error MSB3030: Could not copy the file ""C:\Repos\corefx\bin\AnyOS.AnyCPU.Debug\System.Collections\System.Collections.dll"" because it was not found. > 3> System.Diagnostics.Debug -> C:\Repos\corefx\bin\ref\System.Diagnostics.Debug\4.1.0.0\System.Diagnostics.Debug.dll > 3> System.Diagnostics.Debug -> C:\Repos\corefx\bin\Windows_NT.AnyCPU.Debug\System.Diagnostics.Debug\net463\System.Diagnostics.Debug.dll > 3> System.Diagnostics.Debug -> C:\Repos\corefx\bin\Windows_NT.AnyCPU.Debug\System.Diagnostics.Debug\System.Diagnostics.Debug.dll > 3> System.Diagnostics.Debug -> C:\Repos\corefx\bin\Unix.AnyCPU.Debug\System.Diagnostics.Debug\System.Diagnostics.Debug.dll > 3>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(3962,5): error MSB3030: Could not copy the file ""C:\Repos\corefx\bin\AnyOS.AnyCPU.Debug\System.Collections\System.Collections.dll"" because it was not found. > ========== Build: 1 succeeded, 3 failed, 0 up-to-date, 0 skipped ========== ## Workaround Build the test project from the command-line: `msbuild src\System.Collections\tests\System.Collections.Tests.csproj`. Then building from VS works." +14212 area-System.IO microsoft.netcore.targets has incorrect RID for clrcompression AOT "In runtime.json for the latest microsoft.netcore.targets, we have: ``` ""win10-amd64-aot"": { ""runtime.native.System.IO.Compression"": { ""runtime.win10-x64-aot.runtime.native.System.IO.Compression"": ""4.1.1-beta-24418-00"" } }, ``` when we should have: ``` ""win10-x64-aot"": { ""runtime.native.System.IO.Compression"": { ""runtime.win10-x64-aot.runtime.native.System.IO.Compression"": ""4.1.1-beta-24418-00"" } }, ``` @ericstj @shrah " +14213 area-Infrastructure Change dotnet exe name for Unix plats +14214 area-Infrastructure Change msbuild exe name on Unix +14215 area-Infrastructure Running build.sh fails on Linux kernel 4.6.x "Due to https://github.com/dotnet/coreclr/issues/6016, running build.sh fails on Linux kernel 4.6.x. (See also https://github.com/dotnet/cli/issues/3681). > Installing dotnet cli... > Restoring BuildTools version 1.0.27-prerelease-01029-01... > ./init-tools.sh: line 169: 31125 Segmentation fault (core dumped) I was able to work around this locally by back-leveling the version in DotnetCLIVersion.txt from the current `1.0.0-preview3-003223` to `1.0.0-preview2-003131` and accordingly updating the __DOTNET_LOCATION variable in init-tools.sh: `__DOTNET_LOCATION=""https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/${__DOTNET_TOOLS_VERSION}/${__DOTNET_PKG}.${__DOTNET_TOOLS_VERSION}.tar.gz""` @dagood Was the primary reason for updating to 1.0.0-preview3-003223 in #11387 to add support for Ubuntu on Windows? Would 1.0.0-preview2-003131 include that support? Alternatively, the CoreCLR issue is also fixed in the latest preview3 and preview2.1, but it is not trivial to uptake either of those. Preview3 now uses MSBuild instead of project.json, but the buildtools project that init-tools restores is specified as a project.json. Preview2.1 uses the 1.1 shared framework, but buildtools currently depends on the 1.0 shared framework. /cc @dleeapho @ellismg " +14216 area-Infrastructure change msbuild exe name to msbuild.sh +14217 area-Serialization FixXsdDataContractExporterTestAndFragmentTests 1.Throw PlatformNotSupportedException when to call DataContractSet since it always returns null. 2. Fix #12772. 3. Fix #13375 @shmao @mconnew @zhenlan +14218 area-Infrastructure Fix path to msbuild +14219 area-System.Reflection Question regarding System.Reflection.Metadata In the past, if I needed reflection data for an assembly but did not want it in the main AppDomain, I would load it into a temporary AppDomain which would only exist until I extracted the desired reflection information. With no AppDomains in .NET Core, my understanding is that System.Reflection.Metadata is recommended for this type of scenario. I imagine that System.Reflection.Metadata was implemented with structs and handles to improve performance for low level operations. While that decision makes sense, it means the API is a lot more difficult to use compared to normal reflection. Is there a reason an easier to use API wasn't implemented as a wrapper around the structs? I implemented one myself after looking all over for an alternative and I'm hoping I didn't spend the last two days reinventing the wheel. https://github.com/Byrne-Labs/Metadata-DOM https://nuget.org/packages/ByrneLabs.Commons.MetadataDom +14220 area-System.Linq Proposal: Queryable.Append, Queryable.Prepend **Important note:** There is a chance this API could be breaking. People who are already calling `Append` on some Queryable will be calling into the Enumerable version, which returns an `IEnumerable`. Meanwhile, the proposed overloads return an `IQueryable`. However, these APIs have been out for [less than a year](https://github.com/dotnet/corefx/pull/5947) and people seem to agree that keeping symmetry with Enumerable is more valuable. --- Per discussion at https://github.com/dotnet/corefx/pull/14186#discussion_r90985817 We should add `Queryable.Append` and `Prepend` extension methods since they already exist on `Enumerable`. ## Proposal ```c# namespace System.Linq { public static class Queryable { public static IQueryable Append(this IQueryable source, TSource element); public static IQueryable Prepend(this IQueryable source, TSource element); } } ``` cc @JonHanna @bartdesmet +14221 area-System.Collections Refactor ConcurrentBag/Queue/Stack tests - Added a base IProducerConsumerCollectionTests tests class. - Moved common tests from ConcurrentBag/Queue/StackTests down to IProducerConsumerCollectionTests, with each class' test class deriving from the shared class, such that all of these tests now operate against each of ConcurrentBag/Queue/Stack. - Added a few additional tests. cc: @ianhays, @alexperovich +14222 area-Infrastructure Remove build.clean=All from build pipeline settings @chcosta @weshaggard @karajas Work around this crash from VSO Build Agents: 2016-12-06T00:46:19.0959402Z 'build.clean=All' 2016-12-06T00:46:19.0959402Z Checking if build directory exists: D:\A\_work\36 2016-12-06T00:46:19.0959402Z Deleting build directory. 2016-12-06T00:46:31.2505525Z ##[error]System.ComponentModel.Win32Exception (0x80004005): The directory is not empty 2016-12-06T00:46:31.2505525Z ##[error] at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(String path, Boolean recursive, Boolean followJunctionPoints) 2016-12-06T00:46:31.2661693Z ##[error] at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(String path, Boolean recursive, Boolean followJunctionPoints) 2016-12-06T00:46:31.2661693Z ##[error] at Microsoft.TeamFoundation.Common.FileSpec.DeleteDirectoryLongPath(String path, Boolean recursive, Boolean followJunctionPoints) +14224 area-Serialization Call FormatterServices.GetUninitializedObject Directly. Previously we called RuntimeHelpers.GetUninitializedObject via reflection. PR #13652 made it available on NetCore, so we now can call the API directly. Fix #13677 +14228 area-System.Globalization Failure in DateTimeFormatInfoGetInstance.GetInstance_ExpectedCurrent on OSX "https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/1090/consoleText Unfortunately the snippet of Expected and Actual below are identical so perhaps some more logging is necessary. ``` System.Globalization.Tests.DateTimeFormatInfoGetInstance.GetInstance_ExpectedCurrent [FAIL] Assert.Same() Failure Expected: DateTimeFormatInfo { AbbreviatedDayNames = [""Sun"", ""Mon"", ""Tue"", ""Wed"", ""Thu"", ...], AbbreviatedMonthGenitiveNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AbbreviatedMonthNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AMDesignator = ""AM"", Calendar = GregorianCalendar { AlgorithmType = SolarCalendar, CalendarType = Localized, Eras = [...], IsReadOnly = True, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, ... }, ... } Actual: DateTimeFormatInfo { AbbreviatedDayNames = [""Sun"", ""Mon"", ""Tue"", ""Wed"", ""Thu"", ...], AbbreviatedMonthGenitiveNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AbbreviatedMonthNames = [""Jan"", ""Feb"", ""Mar"", ""Apr"", ""May"", ...], AMDesignator = ""AM"", Calendar = GregorianCalendar { AlgorithmType = SolarCalendar, CalendarType = Localized, Eras = [...], IsReadOnly = True, MaxSupportedDateTime = 9999-12-31T23:59:59.9999999, ... }, ... } Stack Trace: VoidMainWithExitCodeApp -> /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/bin/AnyOS.AnyCPU.Debug/VoidMainWithExitCodeApp/VoidMainWithExitCodeApp.exe /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Globalization/tests/DateTimeFormatInfo/DateTimeFormatInfoGetInstance.cs(46,0): at System.Globalization.Tests.DateTimeFormatInfoGetInstance.GetInstance_ExpectedCurrent() ```" +14230 area-System.Collections API proposal: Array and List in place Sort and BinarySearch for keySelector function Now we can sort `Array` and `List` by keySelector `Func` by using Enumerable extension methods, but this will create in memory copy of array or list. I suggest to add API for in place Sort and BinarySearch with keySelector function `Func`. ## API proposal ```cs public class List { public void Sort(Func keySelector, IComparer comparer = null); public void Sort(int index, int count, Func keySelector, IComparer comparer = null); public int BinarySearch(TKey key, Func keySelector, IComparer comparer = null); public int BinarySearch(int index, int count, TKey key, Func keySelector, IComparer comparer = null); } ``` The same API for Array class. +14231 area-System.Linq Use TypeCode for CastReferenceToEnumInstruction Now that `GetTypeCode` is back, this code can use a `switch` over `TypeCode` rather than a series of `if` checks. +14234 area-Meta API Proposal: ByteSize Struct Like TimeSpan to remove ambiguity in sizes e.g. https://github.com/aspnet/KestrelHttpServer/issues/1247 ## Suggested API ```csharp namespace System { public struct ByteSize : IComparable , IComparable, IEquatable, IFormattable { public ByteSize(long sizeInBytes) public static readonly ByteSize Zero = new ByteSize(0L); public static readonly ByteSize MinValue = new ByteSize(long.MinValue); public static readonly ByteSize MaxValue = new ByteSize(long.MaxValue); public static readonly ByteSize MinBitValue = new ByteSize(long.MinValue / 8); public static readonly ByteSize MaxBitValue = new ByteSize(long.MaxValue / 8); /* // Modulus sizes - useful or confusing? public int Bytes { get; } public int KiloBytes { get; } public int MegaBytes { get; } public int GigaBytes { get; } public int TeraBytes { get; } public int PetaBytes { get; } public int ExaBytes { get; } public int BiBytes { get; } public int KiBiBytes { get; } public int MeBiBytes { get; } public int GiBiBytes { get; } public int TeBiBytes { get; } public int PeBiBytes { get; } public int ExBiBytes { get; } public int Bits { get; } public int KiloBits { get; } public int MegaBits { get; } public int GigaBits { get; } public int TeraBits { get; } public int PetaBits { get; } public int ExaBits { get; } public int BiBits { get; } public int KiBiBits { get; } public int MeBiBits { get; } public int GiBiBits { get; } public int TeBiBits { get; } public int PeBiBits { get; } public int ExBiBits { get; } */ public long TotalBytes { get; } public double TotalKiloBytes { get; } public double TotalMegaBytes { get; } public double TotalGigaBytes { get; } public double TotalTeraBytes { get; } public double TotalPetaBytes { get; } public double TotalExaBytes { get; } public double TotalKiBiBytes { get; } public double TotalMeBiBytes { get; } public double TotalGiBiBytes { get; } public double TotalTeBiBytes { get; } public double TotalPeBiBytes { get; } public double TotalExBiBytes { get; } public long TotalBits { get; } public double TotalKiloBits { get; } public double TotalMegaBits { get; } public double TotalGigaBits { get; } public double TotalTeraBits { get; } public double TotalPetaBits { get; } public double TotalExaBits { get; } public double TotalKiBiBits { get; } public double TotalMeBiBits { get; } public double TotalGiBiBits { get; } public double TotalTeBiBits { get; } public double TotalPeBiBits { get; } public double TotalExBiBits { get; } public static ByteSize FromKiloBytes(double value); public static ByteSize FromMegaBytes(double value); public static ByteSize FromGigaBytes(double value); public static ByteSize FromTeraBytes(double value); public static ByteSize FromPetaBytes(double value); public static ByteSize FromExaBytes(double value); public static ByteSize FromKiBiBytes(double value); public static ByteSize FromMeBiBytes(double value); public static ByteSize FromGiBiBytes(double value); public static ByteSize FromTeBiBytes(double value); public static ByteSize FromPeBiBytes(double value); public static ByteSize FromExBiBytes(double value); public static ByteSize FromKiloBits(double value); public static ByteSize FromMegaBits(double value); public static ByteSize FromGigaBits(double value); public static ByteSize FromTeraBits(double value); public static ByteSize FromPetaBits(double value); public static ByteSize FromExaBits(double value); public static ByteSize FromKiBiBits(double value); public static ByteSize FromMeBiBits(double value); public static ByteSize FromGiBiBits(double value); public static ByteSize FromTeBiBits(double value); public static ByteSize FromPeBiBits(double value); public static ByteSize FromExBiBits(double value); public ByteSize Negate(); public static ByteSize operator -(ByteSize b); public static ByteSize operator +(ByteSize b); public ByteSize Add(ByteSize bs); public static ByteSize operator +(ByteSize b1, ByteSize b2); public ByteSize Subtract(ByteSize bs); public static ByteSize operator -(ByteSize b1, ByteSize b2); public static implicit operator long(ByteSize sizeInBytes) => size.TotalBytes; public static implicit operator ByteSize(long sizeInBytes) => new ByteSize(sizeInBytes); public override int GetHashCode(); public override bool Equals(Object value); public bool Equals(ByteSize other); public static bool Equals(ByteSize b1, ByteSize b2); public static bool operator ==(ByteSize b1, ByteSize b2); public static bool operator !=(ByteSize b1, ByteSize b2); public static bool operator <(ByteSize b1, ByteSize b2); public static bool operator <=(ByteSize b1, ByteSize b2); public static bool operator >(ByteSize b1, ByteSize b2); public static bool operator >=(ByteSize b1, ByteSize b2); public static int Compare(ByteSize b1, ByteSize b2); int IComparable.CompareTo(object obj); public int CompareTo(ByteSize other); public string ToString(); public string ToString(string format); public string ToString(string format, IFormatProvider formatProvider); public static TimeSpan Parse(string s); public static ByteSize Parse(string input, IFormatProvider formatProvider); public static ByteSize ParseExact(string input, string format, IFormatProvider formatProvider); public static ByteSize ParseExact(string input, string[] formats, IFormatProvider formatProvider); public static ByteSize ParseExact(string input, string format, IFormatProvider formatProvider, ByteSizeStyles styles); public static ByteSize ParseExact(string input, string[] formats, IFormatProvider formatProvider, ByteSizeStyles styles); public static bool TryParse(string s, out ByteSize result); public static bool TryParse(string input, IFormatProvider formatProvider, out ByteSize result); public static bool TryParseExact(string input, string format, IFormatProvider formatProvider, out ByteSize result); public static bool TryParseExact(string input, string[] formats, IFormatProvider formatProvider, out ByteSize result); public static bool TryParseExact(string input, string format, IFormatProvider formatProvider, ByteSizeStyles styles, out ByteSize result); public static bool TryParseExact(string input, string[] formats, IFormatProvider formatProvider, ByteSizeStyles styles, out ByteSize result); } } namespace System.Globalization { [Flags] public enum ByteSizeStyles { None = 0x00000000, AssumeNegative = 0x00000001, AssumeBinary = 0x00000020, AssumeDecimal = 0x00000040 } public sealed class ByteSizeFormatInfo : IFormatProvider { enum ByteSizeFormatFlags { None = 0x00000000, UseDecimal = 0x00000001, // Default binary e.g. 10 KiB UseBits = 0x00000002 // Default bytes } public object GetFormat(Type formatType) { throw new NotImplementedException(); } } } ``` +14235 area-System.Runtime Add Xamarin support to System.ValueTuple package It does not support Xamarin as of version 4.3.0. We'd like to provide platform specific assemblies which forward types to existing types Xamarin products have in mscorlib (same scenario as in .NET vNext) cc @weshaggard @akoeplinger +14236 area-System.Security Fix X509Certificiate copy ctor finalization issue Addresses https://github.com/dotnet/corefx/issues/13501 The test TestCopyConstructor_Lifetime_Cloned was able to fail consistently with added GC.Collect() and .WaitForPendingFinalizers. The issue was premature finalization of the original context which was copied for the failing test. The documentation on CertDuplicateCertificateContext states it just increments the ref count and expects a call later to CertFreeCertificateContext to decrement the ref count. However, it appears from testing that if the original context handle has CertFreeCertificateContext called on it then the other (copied) contexts are affected which causes the issue. Thus for the copy of the cert, avoid calling CertDuplicateCertificateContext as the original cert can then be collected\finalized causing the context to become invalidated (or at least prevents a private key from being extracted). cc @bartonjs +14237 area-System.Net TCP_KEEPALIVE, TCP_KEEPINTVL, and TCP_KEEPCNT Socket Options I am trying to set per-socket keepalive TCP timeouts on Linux and MacOS. The following named socket options are not exposed, however: - SocketOptionName.TCP_KEEPALIVE - SocketOptionName.TCP_KEEPINTVL - SocketOptionName.TCP_KEEPCNT When I try to add them using their POSIX codes, I get an exception: -------- System.Net.Sockets.SocketException : Operation not supported at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue, Boolean silent) at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue) Here is the code I'm using to try to add them with POSIX codes: if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux) || RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { // Found these Socket Option Values at https://github.com/golang/go/search?utf8=%E2%9C%93&q=TCP_KEEPCNT // Linux/OSX takes time in seconds SocketOptionName tcpKeepIdle; SocketOptionName tcpKeepIntvl; SocketOptionName tcpKeepCnt; if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { tcpKeepIdle = (SocketOptionName)0x4; // TCP_KEEPIDLE tcpKeepIntvl = (SocketOptionName)0x5; // TCP_KEEPINTVL tcpKeepCnt = (SocketOptionName)0x6; // TCP_KEEPCNT } else { // TCP_KEEPALIVE option on OSX == TCP_KEEPIDLE on Linux // see https://www.winehq.org/pipermail/wine-devel/2015-July/108583.html tcpKeepIdle = (SocketOptionName)0x10; // TCP_KEEPALIVE tcpKeepIntvl = (SocketOptionName)0x101; // TCP_KEEPINTVL tcpKeepCnt = (SocketOptionName)0x102; // TCP_KEEPCNT } socket.SetSocketOption(SocketOptionLevel.Tcp, tcpKeepIdle, keepAliveTimeSeconds); socket.SetSocketOption(SocketOptionLevel.Tcp, tcpKeepIntvl, keepAliveIntervalSeconds); socket.SetSocketOption(SocketOptionLevel.Tcp, tcpKeepCnt, keepAliveCount); } +14238 area-System.Diagnostics System.Diagnostics.Process should not inherit handles by default "When a Windows process starts another process, the parent gets the option of having the child process inherit all of the parent's inheritable handles. Additionally, every handle has a flag on it specifying if it is inheritable or not. CoreFx has the `bInheritHandles` argument hard coded to `true`. While this feature can be useful, it can cause untold number of problems. This of the situation where you have a file handle, and you've acquired that file handle with `FileShare.None` set. While the handle is opened, you start a child process. That child gets a copy of that handle, now they cannot use it because you've selected no sharing, but they have a copy of it. Since closing of file handles is a reference counting game, you're now unable to close the file. Sure, you can close your local handle, but you'll be unable to re-open it until the child process' handle is closed as well. If the child spawns a child, the grand-child process will also keep a copy of the handle and could never get your file back. This becomes worse in the case of redirected pipes. Imagine this setup: 1. Thread A starts creating a new process with redirected output 2. Thread B starts creating a new process designed as a long running service (think redis or something) 3. Thread A creates the necessary handles to redirect output. 4. Thread B calls Kernel32.dll!CreateProcess to create the process, the new process inherits the handles Thread A created for its child (but it doesn't know that and it cannot use them). 5. Thread A calls Kernel32dll!CreateProcess. 6. Thread A attempts to read standard output until it closes. 7. Thread A child process exits, and closes the handles it was given __BUT__ the pipes do not close because Thread B child process has a handle on them (and closing is a reference counting game). Effectively, Thread A is deadlocked attempting to read from the stand output pipe of its child process (even though said process has exit already) until Thread B child process exits (and closes its handles). This is a disaster. Handle inheritance should be take seriously, and it appears the CoreFx library isn't doing so. Ideally, the `bInheritHandles` parameter would be null unless `STARTF_USESTDHANDLES` is specified. When `STARTF_USESTDHANDLES`, then the advice of Raymon Chen should be followed: ""[The case of the redirected standard handles that won’t close even though the child process has exited](https://blogs.msdn.microsoft.com/oldnewthing/20131018-00/?p=2893)"". There is an attempt to correct this bad behavior via a `Monitor` lock placed around the calls to `CreateProcess` calls. This is fine so long as all code in a process is running though CoreFx, but in any reasonable sized project that cannot be assumed. " +14239 area-System.Linq Separating some instructions into separate files Some improved organization of instructions in separate files. Also helps with code generation of one instruction per file. +14240 area-System.Collections BitArray shift operators The BitArray class in System.Collections should include BitWise right and left shift operations. BitArray is used to represent a collection of on\off values and currently contains And, Or, Xor, and Not operations. Adding RightShift and LeftShift would increase the usefulness of the class and provide a canonical, fast solution to save developers the hassle of coming up with their own. See https://github.com/dotnet/corefx/issues/8719 Unit tests for the above API get from https://github.com/Clockwork-Muse/corefx/commit/4fc128660ad8c61310bbd10d9d767afda8b22910 +14241 area-System.Linq Generating UpdateDelegates in System.Dynamic using T4. Simplifies making changes to this repetitive piece of code. +14242 area-Infrastructure [dev/eng] Configure test projects to build against targeting pack references * Remove all project.json files from the test folders. * Add a target to targetingpack.props that emits references to all of the assemblies in the targeting pack for the current vertical TargetGroup. * Hook the target into test project builds. * Clean the test targets: * Delete much of the logic in tests.targets and publishtests.targets. * Stop copying tons of files into the tests output directory. * Reconcile changes with helix runs. Afterwards: * Hook the new test output into the new logic for running test projects. +14244 area-System.Collections IComparer and IComparer documentation should note ordering properties required The documentation for `IComparer` ([@docs.microsoft.com](https://docs.microsoft.com/en-us/dotnet/core/api/system.collections.icomparer), [@msdn](https://msdn.microsoft.com/en-us/library/system.collections.icomparer(v=vs.110).aspx)) and `IComparer` ([@docs.microsoft.com](https://docs.microsoft.com/en-us/dotnet/core/api/system.collections.generic.icomparer-1), [@msdn](https://msdn.microsoft.com/en-us/library/8ehhxeaf(v=vs.110).aspx)) do not note whether any particular ordering properties are expected of a valid implementation, but at least `List.Sort` assumes some (antisymmetry, per [this Connect feedback circa .NET 4.5](https://connect.microsoft.com/VisualStudio/feedback/details/751822/list-sort-incompatibility-with-net-4-5-release)). The interface documentation should note what sort of ordering properties the rest of the standard library will be assuming/demanding of a `Compare` implementation. I'd expect this to be the usual properties of a [total order](https://en.wikipedia.org/wiki/Total_order). +14247 area-System.Net Exposing missing APIs in System.Net.HttpListener contract to sync wit… fixes #13901 cc @karelz @danmosemsft @CIPop Adding tests are tracked in issue #13618 +14253 area-Serialization Add Test Project for Running XmlSerializer Tests in ReflectionOnly Mode We added test project running DataContractSerializer tests in ReflectionOnly mode, see https://github.com/dotnet/corefx/issues/10967. We should make the same change for XmlSerializer. +14254 area-System.Collections Rewrite ConcurrentQueue for better performance This commit rewrites ConcurrentQueue to provide better throughput and a much better allocation profile. As with the previous implementation, it's structured as a linked list of segments. Unlike the previous implementation, these segments are now ring buffers, allowing them to be reused as long as they're not full; if an enqueue does make a segment full, then a new segment is created for subsequent enqueues. Also unlike the previous implementation, segments are dynamic in size, so newly allocated segments follow a doubling scheme similar to that employed by other generic collections. The synchronization mechanism used is also lower-overhead than before, with a typical operation incurring just one CAS operation to either enqueue or dequeue. In a test that just enqueues 20M items serially: ``` Old - Time: 0.461s GC: 27 New - Time: 0.237s GC: 0 ``` In a test that enqueues and dequeues 20M items serially (adding 1, taking 1, adding 1, taking 1, etc.): ``` Old - Time: 0.631s GC: 32 New - Time: 0.374s GC: 0 ``` In a test that has 4 threads (quad core) each enqueueing 5M items in parallel: ``` Old - Time: 0.997s GC: 27 New - Time: 0.244s GC: 0 ``` In a test that has 2 threads each enqueueing 5M items in parallel with 2 threads each dequeueing 5M items: ``` Old - Time: 0.621s GC: 17 New - Time: 0.121s GC: 0 ``` Note that while most things get faster, there are a few operations that have a small downside. Any operation that needs to preserve items for observation (e.g. GetEnumerator, ToArray, TryPeek, etc.) essentially makes all current segments non-reusable. That's mostly no worse than before, where no segments were reusable, but since these segments get bigger, if you have strange usage pattern, such as enqueueing one item and then enumerating the queue, enqueueing another and then enumerating the queue, repeatedly, this implementation will end up allocating more memory than before. For example, in a test that enqueues10,000 items, but between adding each item it enumerates the whole queue, I get these results: ``` Old - Time: 0.404s GC: 0 New - Time: 1.091s GC: 1 ``` I'm hopeful this is not a common pattern. If it is, we may be able to find some ways to mitigate the concern. Fixes #14207 cc: @kouvel, @alexperovich, @ianhays, @benaadams +14255 area-System.Text Add Encoding.GetBytes(string, offset, count) "The Encoding class has methods for encoding the middle of a `char[]`, but not for the middle of a `string`. A caller is forced to switch to unsafe (char*) or to re-allocate as `char[]`. ```diff public abstract partial class Encoding : System.ICloneable { ... public unsafe virtual int GetByteCount(char* chars, int count) { throw null; } public virtual int GetByteCount(char[] chars) { throw null; } public abstract int GetByteCount(char[] chars, int index, int count); public virtual int GetByteCount(string s) { throw null; } + public int GetByteCount(string s, int index, int count) { throw null; } ... public unsafe virtual int GetBytes(char* chars, int charCount, byte* bytes, int byteCount) { throw null; } public virtual byte[] GetBytes(char[] chars) { throw null; } public virtual byte[] GetBytes(char[] chars, int index, int count) { throw null; } public abstract int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex); public virtual byte[] GetBytes(string s) { throw null; } + public byte[] GetBytes(string s, int index, int count) { throw null; } public virtual int GetBytes(string s, int charIndex, int charCount, byte[] bytes, int byteIndex) { throw null; } ... } ``` The `GetBytes(string, int, int)` method would allow for the typical ""just give me a big enough array"" while the `GetByteCount(string, int, int)` method would allow for ensuring that an existing buffer is sufficiently big to call the existing `GetBytes(string, int, int, byte[], int)` method." +14257 area-Infrastructure Update reporting parameters for package publish steps Usage of TargetQueue and ConfigurationGroup seems a bit hacky but I checked with @maririos and this should produce the right telemetry; at a minimum the path is right. @chcosta +14258 area-System.Net Expose additional netstandard APIs in Sockets. cc @karelz @danmosemsft @CIPop @stephentoub Added tests for SendPacketsFlags. EndAccept methods are already tested through previously exposed EndAccept. fixes #14182 +14259 area-Serialization To Support XmlUnknownElementAndEventHandlerTest in RelfectionOnly Mode The following tow tests failed in ReflectionOnly mode, - XmlSerializerTests.XmlUnknownElementAndEventHandlerTest [FAIL] - XmlSerializerTests.XmlUnknownNodeAndEventHandlerTest [FAIL] To fix the issue, we need to have a look at the fix we made for the above two tests and make changes on reflection only code path accordingly. Steps to repro the issue: 1. Remove [ActiveIssue] on the test. 2. cd into `src\System.Private.Xml\tests\XmlSerializer\ReflectionOnly` 3. `msbuild System.Xml.XmlSerializer.ReflectionOnly.Tests.csproj /t:buildandtest` XmlSerializerTests.XmlUnknownElementAndEventHandlerTest failed with the following error, ``` XmlSerializerTests.XmlUnknownElementAndEventHandlerTest [FAIL] System.InvalidOperationException : There is an error in XML document (5, 11). ---- Assert.NotNull() Failure Stack Trace: D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(660,0): at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encoding Style, XmlDeserializationEvents events) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(553,0): at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encoding Style) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(519,0): at System.Xml.Serialization.XmlSerializer.Deserialize(Stream stream) D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs(2401,0): at XmlSerializerTests.XmlUnknownElementAndEventHandlerTest() ----- Inner Stack Trace ----- D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs(2390,0): at XmlSerializerTests.<>c__DisplayClass130_0.b__0(Objec t o, XmlElementEventArgs args) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(1246,0): at System.Xml.Serialization.XmlSerializationReader.UnknownElement(Object o, XmlE lement elem, String qnames) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(1300,0): at System.Xml.Serialization.XmlSerializationReader.UnknownNode(XmlNode unknownNo de, Object o, String qnames) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(1279,0): at System.Xml.Serialization.XmlSerializationReader.UnknownNode(Object o, String qnames) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(1252,0): at System.Xml.Serialization.XmlSerializationReader.UnknownNode(Object o) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(108,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.ProcessUnk nownNode(UnknownNodeAction action) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(403,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.WriteMembe rElementsIf(Object& o, CollectionMember collectionMember, Member& member, Member[] expectedMembers, Member anyElementMember, UnknownNodeAction elementElseAction, Object masterObject) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(91,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.WriteMember Elements(Object& o, CollectionMember collectionMember, Member& member, Member[] expectedMembers, UnknownNodeAction elementElseAction, UnknownNodeAction elseAction, Member anyElement, Member anyText, Object masterObject) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(125,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.WriteMembe rs(Object& o, Member[] members, UnknownNodeAction elementElseAction, UnknownNodeAction elseAction, Member anyElement, Member anyText) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(1018,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.WriteLite ralStructMethod(StructMapping structMapping, Boolean isNullable, Boolean checkType, String defaultNamespace) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(752,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.WriteStruc tMethod(StructMapping mapping, Boolean isNullable, Boolean checkType, String defaultNamespace) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(476,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.WriteEleme nt(Object& o, CollectionMember collectionMember, ElementAccessor element, ChoiceIdentifierAccessor choice, Boolean checkSpecified, Boolean checkForNull, Boolean readOnly, String defaultNamespace, Obj ect masterObject) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(378,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.WriteMembe rElementsIf(Object& o, CollectionMember collectionMember, Member& member, Member[] expectedMembers, Member anyElementMember, UnknownNodeAction elementElseAction, Object masterObject) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(91,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.WriteMember Elements(Object& o, CollectionMember collectionMember, Member& member, Member[] expectedMembers, UnknownNodeAction elementElseAction, UnknownNodeAction elseAction, Member anyElement, Member anyText, Object masterObject) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(82,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.GenerateTyp eElement(XmlTypeMapping xmlTypeMapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(50,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.ReadObject( ) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(585,0): at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encoding Style, XmlDeserializationEvents events) ``` And `XmlSerializerTests.XmlUnknownNodeAndEventHandlerTest` failed with, ``` XmlSerializerTests.XmlUnknownNodeAndEventHandlerTest [FAIL] System.InvalidOperationException : There is an error in XML document (4, 16). ---- Assert.NotNull() Failure Stack Trace: D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(660,0): at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encoding Style, XmlDeserializationEvents events) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(553,0): at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encoding Style) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(519,0): at System.Xml.Serialization.XmlSerializer.Deserialize(Stream stream) D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs(2438,0): at XmlSerializerTests.XmlUnknownNodeAndEventHandlerTest() ----- Inner Stack Trace ----- D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs(2420,0): at XmlSerializerTests.<>c__DisplayClass131_0.b__0(Object o , XmlNodeEventArgs args) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(1292,0): at System.Xml.Serialization.XmlSerializationReader.UnknownNode(XmlNode unknownNo de, Object o, String qnames) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(1266,0): at System.Xml.Serialization.XmlSerializationReader.UnknownNode(Object o, String qnames) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(1252,0): at System.Xml.Serialization.XmlSerializationReader.UnknownNode(Object o) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(108,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.ProcessUnk nownNode(UnknownNodeAction action) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(403,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.WriteMembe rElementsIf(Object& o, CollectionMember collectionMember, Member& member, Member[] expectedMembers, Member anyElementMember, UnknownNodeAction elementElseAction, Object masterObject) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationReader.cs(91,0): at System.Xml.Serialization.ReflectionXmlSerializationReader.WriteMember Elements(Object& o, CollectionMember collectionMember, Member& member, Member[] expectedMembers, UnknownNodeAction elementElseAction, UnknownNodeAction elseAction, Member anyElement, Member anyText, Object masterObject) ``` +14260 area-Serialization To Support XmlSerializerTests.XmlSchemaTest in RelfectionOnly Mode Steps to repro the issue: 1. Remove [ActiveIssue] on the test. 2. cd into `src\System.Private.Xml\tests\XmlSerializer\ReflectionOnly` 3. `msbuild System.Xml.XmlSerializer.ReflectionOnly.Tests.csproj /t:buildandtest` The test failed with the following error, ``` XmlSerializerTests.XmlSchemaTest [FAIL] System.InvalidOperationException : There was an error generating the XML document. ---- System.PlatformNotSupportedException : System.Xml.Schema.XmlSchemaObject Stack Trace: D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(504,0): at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSeri alizerNamespaces namespaces, String encodingStyle, String id) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(407,0): at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSeri alizerNamespaces namespaces, String encodingStyle) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(402,0): at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSeri alizerNamespaces namespaces) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Schema\XmlSchema.cs(235,0): at System.Xml.Schema.XmlSchema.Write(XmlWriter writer, XmlNamespaceManager namespaceManager) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Schema\XmlSchema.cs(155,0): at System.Xml.Schema.XmlSchema.Write(Stream stream, XmlNamespaceManager namespaceManager) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Schema\XmlSchema.cs(144,0): at System.Xml.Schema.XmlSchema.Write(Stream stream) D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs(2348,0): at XmlSerializerTests.XmlSchemaTest() ----- Inner Stack Trace ----- D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(483,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteStruc tMethod(StructMapping mapping, String n, String ns, Object o, Boolean isNullable, Boolean needType, XmlMapping parentMapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(390,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteEleme nt(Object o, ElementAccessor element, String arrayName, Boolean writeAccessor, XmlMapping parentMapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(163,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteEleme nts(Object o, Object enumSource, ElementAccessor[] elements, TextAccessor text, ChoiceIdentifierAccessor choice, String arrayName, Boolean writeAccessors, Boolean isNullable, XmlMapping parentMapping ) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(110,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteMembe r(Object o, Object choiceSource, ElementAccessor[] elements, TextAccessor text, ChoiceIdentifierAccessor choice, TypeDesc memberTypeDesc, Boolean writeAccessors, XmlMapping parentMapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(93,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.GenerateTyp eElement(Object o, XmlTypeMapping xmlMapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(58,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteObject OfTypeElement(Object o, XmlTypeMapping mapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(48,0): at System.Xml.Serialization.ReflectionXmlSerializationWriter.WriteObject (Object o) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(438,0): at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSeri alizerNamespaces namespaces, String encodingStyle, String id) ``` +14261 area-Serialization Add Test Project for XmlSerializer ReflectionOnly Add Test Project for Running XmlSerializer Tests in ReflectionOnly Mode. Fix #14253 +14262 area-System.Memory nuget package to work with fast and slow span Changing system.memory builds and pkgproj so that .netcoreapp gets fast span from coreclr while net45 gets slow span from corefx Note: There are some discrepancies between the ref assembly for Span and the two implementations which will be resolved in future PRs. For now, the workaround is the ApiCompatBaseline so that the API verification passes. The missing implementations in Fast Span will throw runtime error if called. +14263 area-System.Collections Test failure: Tests of 'System.Collections.Concurrent.Tests.ConcurrentBagTests' failed with 'Xunit.Sdk.EqualException' Opened on behalf of @jiangzeng The test `System.Collections.Concurrent.Tests.ConcurrentBagTests/AddSome_ThenInterleaveAddsAndTakes_MatchesOracle` has failed. Assert.Equal() Failure\r Expected: BagOracle [0, 1]\r Actual: ConcurrentBag [1, 0] Stack Trace: at System.Collections.Concurrent.Tests.ProducerConsumerCollectionTests.AddSome_ThenInterleaveAddsAndTakes_MatchesOracle() in D:\A\_work\22\s\corefx\src\System.Collections.Concurrent\tests\ProducerConsumerCollectionTests.cs:line 136 Build : Master - 20161206.04 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: AddSome_ThenInterleaveAddsAndTakes_MatchesOracle CopyTo_ArrayZeroLowerBound_ZeroIndex_ExpectedElementsCopied CopyTo_SzArray_NonZeroIndex_ExpectedElementsCopied CopyTo_SzArray_ZeroIndex_ExpectedElementsCopied Ctor_Collection_ItemsAndCountMatch ToArray_AddAllItemsThenEnumerate_ItemsAndCountMatch ToArray_AddAndTakeItemsIntermixedWithEnumeration_ItemsAndCountMatch Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161206.04/workItem/System.Collections.Concurrent.Tests +14264 area-System.Collections Fix ConcurrentBag.ToArray ordering Technically ConcurrentBag is unordered and thus the order of elements from its ToArray/GetEnumerator/CopyTo/etc. shouldn't matter. But regardless I inadvertently changed the order as part of some recent reimplementation (https://github.com/dotnet/corefx/pull/14190), and then added some tests which relied on the new ordering (https://github.com/dotnet/corefx/pull/14221), which then break when run on desktop. It's simple enough to use the same ordering and fix the tests accordingly. Fixes https://github.com/dotnet/corefx/issues/14263 cc: @ianhays +14266 area-System.Linq Reduces branching in VisitAndConvert and similar. Each of these methods continuously tests for the existence of an array to see whether it should add to it. Failing that it tests to see whether it should create it. Instead just test as to whether it should create it, and then finish the loop expecting it to exist. +14267 area-Infrastructure [x86/Linux] Initial support of x86 cross build This PR adds initial support of cross building native parts of CoreFX for Linux x86 platform. Related issue: https://github.com/dotnet/coreclr/issues/8188 +14268 area-System.Security Make X509Certificate.Verify test OuterLoop and add diagnostics Addresses https://github.com/dotnet/corefx/issues/13979 CertTests.TestVerify test failed in CI Perhaps internet\network was down, time was wrong on local machine, or some other issue so moving test to outerloop to minimize issues with (rare) random failures. Uses ITestOutputHelper to capture information in .xml output (is there a better\different prescriptive way, like standard debug messages?) cc @bartonjs +14271 area-Infrastructure Make System.Memory and Unsafe target 1.1 packages This lets folks use System.Memory and Unsafe without upgrading all of their packages to latest pre-release. /cc @davidfowl @weshaggard +14273 area-System.Security Feedback on ClaimsPrincipal handling of arrays and complex types As originally reported by @nathan-alden in https://github.com/aspnet/mvc/issues/5532 Were I to use ClaimsPrincipal, I'd be forced to rely on the broken Claim class implementation that doesn't handle arrays properly and can't handle more complex types of claim values like JSON objects. +14274 area-System.Linq Removing some unnecessary parentheses in instructions Found some more redundant parentheses in this code when inspecting the diff between generated code and the original. +14275 area-System.ComponentModel ISupportInitialize and IDesignerHost should be in System.ComponentModel.Primitives /cc @ianhays @weshaggard @safern This is causing FileSystem.Watcher to bring in TypeConverter which is not a dependency we want to have. +14276 area-System.Linq Add TrySingle(IEnumerable, out TSource) In LINQ we have the Single and SingleOrDefault methods, but they don't tell you if it succeeded or not. See https://github.com/dotnet/corefx/issues/6073 +14277 area-Infrastructure [dev/eng] Start overhauling test build process. * Make System.Console.Tests build against the targeting pack. * Make System.Runtime.Numerics.Tests build against the targeting pack. This is just a small start but lays the groundwork for more projects. @joperezr @karajas @weshaggard +14279 area-System.Runtime Add more ConditionalWeakTable tests In preparation for porting some of the corert implementation back to coreclr. Boosts line coverage from ~50% to ~75%; the rest of the code is in internal functions only used by other parts of coreclr, in particular WindowsRuntimeMarshal. cc: @kouvel, @jkotas +14280 area-System.Linq Avoiding repeated array indexing in DynamicObject Also avoiding duplicate casts / type checks. +14281 area-System.Linq Avoid an array allocation in BindBinaryOperation for DynamicObject Also simplifying method calls for `GetExpressions` on the base class to omit the type name. +14282 area-System.Linq Remove unnecessary use of collection interface type in ExpressionStringBuilder No need to use `IReadOnlyList` for expression printing of child nodes. +14283 area-System.Security X509Certificate2.PrivateKey should not return ECDsa "In https://github.com/dotnet/corefx/issues/8491#issuecomment-261338229 I observed that our current (unreleased) plan to do RSA ?? DSA ?? ECDSA only works because we don't support other ECC algorithms. An ECC cert is ambiguous for use, it can be any of (currently) * ECDSA * ECDH * ECMQV And probably (but not explicitly) * ECIES * EdDSA * ECQV If a user requests ECDSA we can give it to them (provided the algorithm and KU agree), but we can't know that ECDSA is ""more right"" than ECDH (which is not yet supported in corefx, but is in netfx (though not via a certificate)) for a certificate with no KeyUsage extension. Or that ECDSA is ""more right"" than EdDSA (not currently supported at all). Allowing ECDSA now creates a potential compat problem for the future, so we should be restricted to RSA and DSA for now (which is all netfx supports) and we can revisit this later with more thoughtfulness. (Also applies to PublicKey.Key)" +14284 area-System.Security Create a X509Certificate2 from raw PEM files with Certificate and RSA Private Key the example is described in http://www.codeproject.com/Articles/162194/Certificates-to-DB-and-Back byte[] certBuffer = Helpers.GetBytesFromPEM(publicCert, PemStringType.Certificate); byte[] keyBuffer = Helpers.GetBytesFromPEM(privateKey, PemStringType.RsaPrivateKey); X509Certificate2 certificate = new X509Certificate2(certBuffer, password); RSACryptoServiceProvider prov = Crypto.DecodeRsaPrivateKey(keyBuffer); certificate.PrivateKey = prov; [certs.zip](https://github.com/dotnet/corefx/files/637770/certs.zip) +14285 area-Infrastructure Adding Netcoreapp1.2corert configuration to System.Private.Uri and System.Runtime This is the first change to add NetcoreApp1.2-CoreRT target to libraries. It's done similar to UAP and NetCore targets; the targeting pack contains System.Private.CoreLib and friends that System.Runtime is forwarding many types to. I've introduced ApiCompat baseline for the new target due to missing NS2.0 work on CoreRT, again similar to UAP. Note, I've added only win-corert configuration to both libraries. More work needs to be done to be able to add unix-corert configurations. @jkotas, @joshfree, @weshaggard,. @ericstj, PTAL /cc @dotnet/corert-contrib +14286 area-System.Numerics Vector2, Vector3 and Vector4 divide accuracy The divide implementation for the fixed-size vectors uses multiplication by inverse, which doesn't yield the same result as divide. This affects the result in the test https://github.com/dotnet/coreclr/blob/master/tests/src/JIT/Regression/JitBlue/GitHub_8220/GitHub_8220.cs, which was modified to allow a variance of ~1 ULP, but which should in theory yield the same result for the two cases. +14288 area-System.Data OverflowException on SqlConnection.Open() Originally reported in the EF project by @Thaoden - https://github.com/aspnet/EntityFramework/issues/7145. ### Steps to reproduce Create a new DbContext and ensure the database is created var dbOptionsBuilder = new DbContextOptionsBuilder().UseSqlServer(connectionString); var dbContext = new MyDbContext(dbOptionsBuilder.Options); dbContext.Database.EnsureCreated(); ### The issue On `EnsureCreated()`, an exception is thrown: > Unhandled Exception: System.OverflowException: Arithmetic operation resulted in an overflow. at SNIOpenSyncExWrapper(SNI_CLIENT_CONSUMER_INFO* , SNI_ConnWrapper** ) at SNINativeMethodWrapper.SNIOpenSyncEx(ConsumerInfo consumerInfo, String constring, IntPtr& pConn, Byte[] spnBuffer, Byte[] instanceName, Boolean fOverrideCache, Boolean fSync, Int32 timeout, Boolean fParallel, Int32 transparentNetworkResolutionStateNo, Int32 totalTimeout) at System.Data.SqlClient.SNIHandle..ctor(ConsumerInfo myInfo, String serverName, Byte[] spnBuffer, Boolean ignoreSniOpenTimeout, Int32 timeout, Byte[]& instanceName, Boolean flushCache, Boolean fSync, Boolean fParallel, TransparentNetworkResolutionState transparentNetworkResolutionState, Int32 totalTimeout) at System.Data.SqlClient.TdsParserStateObject.CreatePhysicalSNIHandle(String serverName, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Byte[]& instanceName, Byte[] spnBuffer, Boolean flushCache, Boolean async, Boolean fParallel, TransparentNetworkResolutionState transparentNetworkResolutionState, Int32 totalTimeout) at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover, Boolean isFirstTransparentAttempt, SqlAuthenticationMethod authType) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover, Boolean isFirstTransparentAttempt) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open() at Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerDatabaseCreator.<>c__DisplayClass11_0.b__0(DateTime giveUp) at Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](Func`2 operation, Func`2 verifySucceeded, TState state) at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, Func`2 operation, TState state) at Microsoft.EntityFrameworkCore.Storage.RelationalDatabaseCreator.EnsureCreated() at MyProject.Startup.createSqlContext() in E:\VSProjects\MyProject\Startup.cs:line 204 at MyProject.Startup.ConfigureServices(IServiceCollection services) in E:\VSProjects\MyProject\Startup.cs:line 86 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection services) at Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices() at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication() at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build() at MyProject.Program.Main(String[] args) in E:\VSProjects\MyProject\Program.cs:line 19 Attempting to call `Migrate()`, `GetPendingMigrations()` or `GetAppliedMigrations()` all result in the same error. The same error is also thrown when trying to drop or update the database via EF tools: > dotnet ef database drop Finding DbContext classes... Using context 'MyDbContext'. This command will permanently drop the database: Database name : MyDb Data source : localhost\sqlexpress Are you sure you want to proceed? (y/N) y Finding DbContext classes... Using context 'MyDbContext'. Dropping database 'MyDb'. Opening connection to database 'MyDb' on server 'localhost\sqlexpress'. Opening connection to database 'MyDb' on server 'localhost\sqlexpress'. System.OverflowException: Arithmetic operation resulted in an overflow. at SNIOpenSyncExWrapper(SNI_CLIENT_CONSUMER_INFO* , SNI_ConnWrapper** ) at SNINativeMethodWrapper.SNIOpenSyncEx(ConsumerInfo consumerInfo, String constring, IntPtr& pConn, Byte[] spnBuffer, Byte[] instanceName, Boolean fOverrideCache, Boolean fSync, Int32 timeout, Boolean fParallel, Int32 transparentNetworkResolutionStateNo, Int32 totalTimeout) at System.Data.SqlClient.SNIHandle..ctor(ConsumerInfo myInfo, String serverName, Byte[] spnBuffer, Boolean ignoreSniOpenTimeout, Int32 timeout, Byte[]& instanceName, Boolean flushCache, Boolean fSync, Boolean fParallel, TransparentNetworkResolutionState transparentNetworkResolutionState, Int32 totalTimeout) at System.Data.SqlClient.TdsParserStateObject.CreatePhysicalSNIHandle(String serverName, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Byte[]& instanceName, Byte[] spnBuffer, Boolean flushCache, Boolean async, Boolean fParallel, TransparentNetworkResolutionState transparentNetworkResolutionState, Int32 totalTimeout) at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover, Boolean isFirstTransparentAttempt, SqlAuthenticationMethod authType) at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover, Boolean isFirstTransparentAttempt) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open() at Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerDatabaseCreator.<>c__DisplayClass11_0.b__0(DateTime giveUp) at Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](Func`2 operation, Func`2 verifySucceeded, TState state) at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, Func`2 operation, TState state) at Microsoft.EntityFrameworkCore.Storage.RelationalDatabaseCreator.EnsureDeleted() at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.DropDatabase(String contextType) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action) Arithmetic operation resulted in an overflow. ### Further technical details EF Core version: 1.1.0 Operating system: Win10 Enterprise 1607 Visual Studio version: VS2015 Update 3 Other details about my project setup: I have created a minimal throwing example at https://github.com/Thaoden/StackOverflowExceptionOnMigrate. It is run with `dotnet run` on the command line. +14289 area-Meta Enable CA2002:DoNotLockOnObjectsWithWeakIdentity This change enables CA2002 and adds baseline files for current failures. +14290 area-Infrastructure Update API baselines "Update the baselines for core vs. standard and desktop. Standard one is now empty and may it stay that way. Remove ""internal"" for reasons outlined here https://github.com/dotnet/standard/commit/de6d8024b0203709f98bcfd1bee580b2328ebf27 @weshaggard " +14291 area-Infrastructure Figure out build process for libraries with no reference assembly For now I binplace to the TargetingPack directory during source build, but that's not a good long term solution since it will lead folks to add simple name references rather than projectreferences that become race conditions. Ideas proposed so far: 1. Add refs for these that we only use for NETCoreApp. 2. Build them in a separate phase between ref and src builds. 3. Make them use project references to ref projects and build them during the ref phase. /cc @mellinoe @weshaggard +14292 area-Infrastructure Net core app.package This updates binplacing to for packaging and updates the NETCoreApp packages to use the results. We still need to figure out the filtering of the package build here, but this should have everything building. /cc @weshaggard @mellinoe @chcosta +14295 area-System.Memory Changing Span Empty from a field to a property. For both Span and ReadOnlySpan +14296 area-System.Collections Test failure: System.Collections.Concurrent.Tests.ConcurrentBagTests/IEnumerable_Generic_Enumerator_Current_AfterEndOfEnumerable_UndefinedBehavior(count: 0) Opened on behalf of @jiangzeng The test `System.Collections.Concurrent.Tests.ConcurrentBagTests/IEnumerable_Generic_Enumerator_Current_AfterEndOfEnumerable_UndefinedBehavior(count: 0)` has failed. Assert.Throws() Failure\r Expected: typeof(System.InvalidOperationException)\r Actual: (No exception was thrown) Stack Trace: at System.Collections.Tests.IEnumerable_Generic_Tests`1.IEnumerable_Generic_Enumerator_Current_AfterEndOfEnumerable_UndefinedBehavior(Int32 count) in D:\A\_work\64\s\corefx\src\Common\tests\System\Collections\IEnumerable.Generic.Tests.cs:line 552 Build : Master - 20161207.04 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: IEnumerable_Generic_Enumerator_Current_AfterEndOfEnumerable_UndefinedBehavior IEnumerable_Generic_Enumerator_Current_BeforeFirstMoveNext_UndefinedBehavior Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161207.04/workItem/System.Collections.Concurrent.Tests/analysis/xunit/System.Collections.Concurrent.Tests.ConcurrentBagTests~2FIEnumerable_Generic_Enumerator_Current_AfterEndOfEnumerable_UndefinedBehavior(count:%200) +14298 area-Infrastructure create nupkg of ubuntu.16.04-xxx rid on ubuntu 14.04/x64 "I am working on ""Update CoreFX to generate nuget packages of CoreFX"" on https://github.com/dotnet/core-setup/issues/725 With https://github.com/chunseoklee/corefx/commit/320ca7d42839a33350807ea0f18a401edcf794dc, `$ ./build-managed.sh -package` seems to produce proper nupkg of ubuntu.14.04-arm rid. However, I cannot figure out how to produce ubuntu.16.04-arm nupkg. Is there any way to create ubuntu.16.04-arm on ubuntu14.04/x64 host ? p.s. during packaging(`$ ./build-managed.sh -package`) the following error occurs. In this case, ubuntu14.04-arm nupkg is missing something ? 52>/home/twoflower/dev/corefx/Tools/Packaging.targets(1096,5): error : PackageIndex from /home/twoflower/dev/corefx/pkg/Microsoft.Private.PackageBaseline/packageIndex.json is missing an entry for package runtime.ubuntu.14.04-arm.runtime.native.System.Security.Cryptography. Please run /t:UpdatePackageIndex on this project to commit an update. [/home/twoflower/dev/corefx/src/Native/pkg/runtime.native.System.Security.Cryptography/ubuntu/14.04/runtime.native.System.Security.Cryptography.pkgproj] 52>Done Building Project ""/home/twoflower/dev/corefx/src/Native/pkg/runtime.native.System.Security.Cryptography/ubuntu/14.04/runtime.native.System.Security.Cryptography.pkgproj"" (BuildAndTest target(s)) -- FAILED. " +14299 area-Infrastructure Microsoft.VisualBasic resource inclusion Just doing a `msbuild /t:clean;build` from the src\Microsoft.VisualBasic folder and the compile constant DEBUGRESOURCES doesn't get written to the bin\obj\AnyOS.AnyCPU.Debug\Microsoft.VisualBasic\defines.rsp file. This shows as the bin\obj\AnyOS.AnyCPU.Debug\Microsoft.VisualBasic\SR.vb file being compiled without fallbacks in debug mode. +14302 area-System.Runtime DefaultValueAttribute missing unsigned int / unsigned long constructor The proposal is to add constructor overloads so that the conversions don't happen and Value gets the expected type. See https://github.com/dotnet/corefx/issues/11465 +14303 area-System.Runtime "where is ""System.Runtime.Remoting.Messaging.CallContext"" in dotnetcore" +14304 area-Infrastructure [x86/Linux] Add RID definitions (Debian/Ubuntu) This PR adds RID defintions for x86 Linux Debian/Ubuntu. Related issue: https://github.com/dotnet/coreclr/issues/8188 Related PR: https://github.com/dotnet/corefx/pull/14267 +14305 area-System.Runtime error CS1061: 'Type' does not contain a definition for 'Assembly' and no extension method 'Assembly' accepting a first argument of type 'Type' could be found (are you missing a using directive or an assembly reference?) When adding a 'Resource' to an .NET Standard 1.6 Assembly in Visual Studio 2017 RC, the compiler throws an error message per the subject line. The issue is within the C# code behind generated automatically after adding the resource file. +14306 area-System.Linq Return self on XxxExpression.Update when children are the same Closes #3958 Takes pains to avoid calls to `GetOrMakeExpressions()` and similar on the expressions with arity-specialised types. Short-circuits on the case of identical collections being used on the update, as well as being a common case and hence worth as an optimisation, this reduces the possible penalty to those cases that already return the expression updated. +14307 area-System.Data Is OpenAsync really synchronous in DbConnection? I was looking at the [DbConnection OpenAsync](https://github.com/dotnet/corefx/blob/master/src/System.Data.Common/src/System/Data/Common/DbConnection.cs#L122) code and realized that it is just wrapper around a blocking call which returns a finished task and is therefor not really useful in async code, because calling the task alone without awaiting already blocks it. Is there a reason why this it is not a Task.Run(() => Open()), which would make it a bit more useful? +14308 area-System.Net Add CancellationToken overloads to async methods in System.Net.Sockets "Good day. I work with `UdpClient` and have wrapper upon it. For reading I have asynchronous method: ```c# private async Task Receive(UdpClient client, CancellationToken breakToken) { // Выход из async, если произошёл CancellationRequest breakToken.ThrowIfCancellationRequested(); UdpReceiveResult result; try { result = await client.ReceiveAsync().WithCancellation(breakToken); } catch(OperationCanceledException) { // Штатная ситуация ручной остановки Task-а } return result.Buffer; } ``` Where `WithCancellation` is my extension-method for early termination: ```c# public static async Task WithCancellation( this Task task, CancellationToken cancellationToken) { var tcs = new TaskCompletionSource(); using (cancellationToken.Register( s => ((TaskCompletionSource)s).TrySetResult(true), tcs)) if (task != await Task.WhenAny(task, tcs.Task)) throw new OperationCanceledException(cancellationToken); return await task; } ``` And after manual reading stop, when I call `Dispose`, `System.ObjectDisposedException` occurs. `CallStack`: ``` > System.dll!System.Net.Sockets.UdpClient.EndReceive(System.IAsyncResult asyncResult, ref System.Net.IPEndPoint remoteEP) Unknown System.dll!System.Net.Sockets.UdpClient.ReceiveAsync.AnonymousMethod__64_1(System.IAsyncResult ar) Unknown mscorlib.dll!System.Threading.Tasks.TaskFactory.FromAsyncCoreLogic(System.IAsyncResult iar, System.Func endFunction, System.Action endAction, System.Threading.Tasks.Task promise, bool requiresSynchronization) Unknown mscorlib.dll!System.Threading.Tasks.TaskFactory.FromAsyncImpl.AnonymousMethod__0(System.IAsyncResult iar) Unknown System.dll!System.Net.LazyAsyncResult.Complete(System.IntPtr userToken) Unknown System.dll!System.Net.ContextAwareResult.CompleteCallback(object state) Unknown mscorlib.dll!System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool preserveSyncCtx) Unknown mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown System.dll!System.Net.ContextAwareResult.Complete(System.IntPtr userToken) Unknown System.dll!System.Net.LazyAsyncResult.ProtectedInvokeCallback(object result, System.IntPtr userToken) Unknown System.dll!System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(uint errorCode, uint numBytes, System.Threading.NativeOverlapped* nativeOverlapped) Unknown mscorlib.dll!System.Threading._IOCompletionCallback.PerformIOCompletionCallback(uint errorCode, uint numBytes, System.Threading.NativeOverlapped* pOVERLAP) Unknown ``` If I understood correctly, root of error in `ReceiveAsync`, in my method of stop it to be exact. After nearly a week of suffering, I have found the reason and solution. **At first**, I looked at the `UdpClient` source code. The `ReceiveAsync` method: ```c# [HostProtection(ExternalThreading = true)] public Task ReceiveAsync() { return Task.Factory.FromAsync((callback, state) => BeginReceive(callback, state), (ar)=> { IPEndPoint remoteEP = null; Byte[] buffer = EndReceive(ar, ref remoteEP); return new UdpReceiveResult(buffer, remoteEP); }, null); } ``` **At second**, I found this post with perfect answer:http://stackoverflow.com/questions/4662553/how-to-abort-sockets-beginreceive, in which said: > To cancel a pending call to the BeginConnect() method, close the Socket. When the Close() method is called while an asynchronous operation is in progress, the callback provided to the BeginConnect() method is called. A subsequent call to the EndConnect(IAsyncResult) method will throw an ObjectDisposedException to indicate that the operation has been cancelled. And, as we can see, the original `ReceiveAsync` method return us the `ObjectDisposedException`, because `IOOperation` has not been completed after `Close` invoking. **To overcome this problem I have done like this:** New `ReceiveAsync` realization: ```c# /// /// Асинхронный запрос на ожидание приёма данных с возможностью досрочного выхода /// (для выхода из ожидания вызовите метод Disconnect()) /// /// Рабочий экземпляр класса UdpClient /// Признак досрочного завершения /// Если breakToken произошёл до вызова данного метода или в режиме ожидания /// ответа, вернёт пустой UdpReceiveResult; при удачном получении ответа-результат /// асинхронной операции чтения public Task ReceiveAsync(UdpClient client, CancellationToken breakToken) => breakToken.IsCancellationRequested ? Task.Run(() => new UdpReceiveResult()) : Task.Factory.FromAsync( (callback, state) => client.BeginReceive(callback, state), (ar) => { /// Предотвращение if (breakToken.IsCancellationRequested) return new UdpReceiveResult(); IPEndPoint remoteEP = null; var buffer = client.EndReceive(ar, ref remoteEP); return new UdpReceiveResult(buffer, remoteEP); }, null); ``` New `Dispose` realization: ```c# protected virtual void Dispose(bool disposing) { if (disposing) { this.cancelReceive?.Cancel(); this.client?.Close(); this.cancelReceive?.Dispose(); } } ``` Is my solution OK(will be cool if you add it to framework in next version) and if not can you say me how to fix it differently?" +14309 area-System.Linq Use optimized N-ary MethodCallExpression nodes for more calls. Building on #3288 from @bartdesmet this causes the arity-specialised forms of `MethodCallExpression` to be used in more cases: 1. When the arguments collection is null. 2. When the arguments collection doesn't implement `IReadOnlyList<>` It does this by pre-emptively calling `ToReadOnly` in these cases. That it's spending time building this isn't an issue, as that would have happened anyway. It does mean the call after the switch on argument count is a duplicate much of the time, but `ToReadOnly` returns quickly in such cases. c.f. #6004 which did much the same for `InvocationExpression` +14310 area-System.Collections LowLevelConcurrentQueue not used? The internal LowLevelConcurrentQueue in [corefx/src/System.Threading/src/System/Collections/Concurrent/LowLevelConcurrentQueue.cs](https://github.com/dotnet/corefx/blob/master/src/System.Threading/src/System/Collections/Concurrent/LowLevelConcurrentQueue.cs) Doesn't appear to be used anywhere; should it be removed? /cc @stephentoub +14313 area-System.Runtime TimeZoneInfo.AdjustmentRule should override Equals `TimeZoneInfo.AdjustmentRule` [implements `IEquatable`](https://github.com/dotnet/coreclr/blob/c28e5e8ff02744dc1e1cc1fa9b2563d24e643f9b/src/mscorlib/src/System/TimeZoneInfo.cs#L4573) and [overrides `GetHashCode`](https://github.com/dotnet/coreclr/blob/c28e5e8ff02744dc1e1cc1fa9b2563d24e643f9b/src/mscorlib/src/System/TimeZoneInfo.cs#L4587) but doesn't override `Equals(object)`. +14319 area-System.Net HttpClient/CurlHandler CPU goes up after exception and does not come back @rvfernandes commented on [Tue Dec 06 2016](https://github.com/dotnet/coreclr/issues/8478) I made a small router in .Net Core and noticed that some machines from one hour to the other had a cpu jump. When this happens the CPU stays high, although the application responds without problems. I have noticed that this happens when I have a large number of exceptions of type (System.Net.Http.HttpRequestException: Error while copying content to a stream. ---> System.IO.IOException: The read operation failed, see inner exception. ---> System.Net.Http.CurlException: Transferred a partial file). My system runs on .Net Core with docker. +14320 area-System.Threading SemaphoreSlim can throw an ArgumentNullException during a cancel "@rchiodo commented on [Thu Nov 17 2016](https://github.com/dotnet/coreclr/issues/8177) I'm using a BlockingCollection and a call to TryTake(out value, timeout, cancelToken) will crash with an ArgumentNullException during a cancel. It looks to me like SemaphoreSlim is not handling cancel after it's been disposed. The callstack of the crash is like so: at System.Threading.Monitor.ReliableEnter(Object obj, Boolean& lockTaken) at System.Threading.SemaphoreSlim.CancellationTokenCanceledEventHandler(Object obj) --- @rchiodo commented on [Thu Nov 17 2016](https://github.com/dotnet/coreclr/issues/8177#issuecomment-261329150) In the debugger, the m_lockObj is null: private static void CancellationTokenCanceledEventHandler(object obj) { SemaphoreSlim semaphore = obj as SemaphoreSlim; Contract.Assert(semaphore != null, ""Expected a SemaphoreSlim""); lock (semaphore.m_lockObj) { Monitor.PulseAll(semaphore.m_lockObj); //wake up all waiters. } } --- @stephentoub commented on [Thu Nov 17 2016](https://github.com/dotnet/coreclr/issues/8177#issuecomment-261330272) @rchiodo, it sounds like something in your code disposed the BlockingCollection while it was still being used? --- @rchiodo commented on [Thu Nov 17 2016](https://github.com/dotnet/coreclr/issues/8177#issuecomment-261331678) Yes. It looks like the canceltoken has a registered callback that disposes the BlockingCollection. Shouldn't the semaphoreslim be throwing an ObjectDisposedException in this case? --- @danmosemsft commented on [Thu Dec 08 2016](https://github.com/dotnet/coreclr/issues/8177#issuecomment-265812623) Per [issues guidance](https://github.com/dotnet/coreclr/blob/master/Documentation/workflow/IssuesFeedbackEngagement.md) > If in the managed code log it in the CoreFX repo even if the code is in this CoreCLR repo (ie., in mscorlib/System.Private.Corelib). The reason for this is we sometimes move managed types between the two and it makes sense to keep all the issues together. " +14321 area-Infrastructure [dev/eng] Native shims need to be binplaced into the runtime directory Since these binaries are produced outside of the MSBuild system, we need to have more logic to handle them. We need to make sure the binary paths are consistent between MSBuild and CMake, and remain so. +14322 area-Infrastructure Centralize RID calcuation for build We have a few scenarios that need a RID during the build. 1. Test execution 2. External package resolution: what RID to use for building out runtime directory? 3. Package building: what RID to use when packaging the binaries that were built? Currently this logic is all duplicated and each place is a little different. We should try to unify it and make it simple to override/specify. /cc @weshaggard @ellismg @mellinoe +14323 area-System.Runtime Reduce allocations in String.Split @jamesqo commented on [Mon Nov 07 2016](https://github.com/dotnet/coreclr/issues/8034) Now that `ArrayPool` is in the coreclr repo, it may be worth trying to use `stackalloc` for the int table required by `Split` if the length of the string is small enough, otherwise using `ArrayPool` to rent the tables. I have been building [a prototype](https://github.com/dotnet/coreclr/compare/master...jamesqo:better-split?expand=1) to implement this over the last day or so; however, it's turning out much more complex than I expected. I can't even run the corefx tests since the xUnit runner chokes before it gets to them (probably due to something wrong in my changes) ☹️ Once I finish, however, I'll open a PR for this. In the meantime, I'm opening this issue to track this in case I can't finish. --- @Maoni0 commented on [Tue Nov 08 2016](https://github.com/dotnet/coreclr/issues/8034#issuecomment-259256797) @swgillespie could you please take a look at the prototype @jamesqo did? --- @swgillespie commented on [Wed Nov 16 2016](https://github.com/dotnet/coreclr/issues/8034#issuecomment-261109666) From an allocation perspective this all looks reasonable and good to me. I'm wondering if we can use a Span instead of char\* and length pair for the separator array, though? I see that it's used in MakeSeparatorList but I don't think I see any uses in there that prevent a Span from being used in its place, which would prevent a pin. --- @jamesqo commented on [Wed Nov 16 2016](https://github.com/dotnet/coreclr/issues/8034#issuecomment-261130838) @swgillespie Good point, I didn't think of using `Span` for this. I'll update the code to use it before submitting a PR. Thanks! --- +14324 area-System.Runtime Array.IsReadOnly should return true for empty arrays "@DerpMcDerp commented on [Wed Aug 10 2016](https://github.com/dotnet/coreclr/issues/6692) i.e. Array.cs should have this: ``` C# // Is this Array read-only? public bool IsReadOnly { get { return this.Length == 0; } } ``` instead of this: ``` C# // Is this Array read-only? public bool IsReadOnly { get { return false; } } ``` Note: the above change breaks code which does something like: ``` C# Contract.Requires(!list.IsReadOnly, ""list should be writable"") for (int i = 0; i < list.Count; ++i) { list[i] = whatever; } ``` Which was an incorrectly specified invariant anyway. --- @hughbe commented on [Thu Aug 11 2016](https://github.com/dotnet/coreclr/issues/6692#issuecomment-239111140) I hate to be a killjoy @DerpMcDerp, but this probably has too many breaking change implications. I assume that a new implementation would consider this, but the baggage of the past has to be taken into account --- @denis-dbm commented on [Thu Aug 11 2016](https://github.com/dotnet/coreclr/issues/6692#issuecomment-239152465) IsReadOnly is just inherited from IList interface, isn't? There is real use of this property for array type? I think the property should return false always. --- @ghost commented on [Thu Aug 11 2016](https://github.com/dotnet/coreclr/issues/6692#issuecomment-239187291) BTW, how does `this.Length == 0;` convey the message that collection is read-only? It should explicitly be either true (for `ReadOnlyCollection` types) or false (for non-`ReadOnlyCollection` types) because that would assert an artificial limitation on Add/Remove/Indexer methods. Or am I missing something? Probably having `IsFixedSize` in addition to `IsReadOnly` would somehow mitigate the confusions around the area as @jskeet pointed out: http://stackoverflow.com/a/26475514 --- @danmosemsft commented on [Thu Dec 08 2016](https://github.com/dotnet/coreclr/issues/6692#issuecomment-265819168) Per [issues guidance](https://github.com/dotnet/coreclr/blob/master/Documentation/workflow/IssuesFeedbackEngagement.md) > If in the managed code log it in the CoreFX repo even if the code is in this CoreCLR repo (ie., in mscorlib/System.Private.Corelib). The reason for this is we sometimes move managed types between the two and it makes sense to keep all the issues together. " +14325 area-System.Text Optimization: UTF8Encoding methods can probably be made faster/refactored @jamesqo commented on [Tue Aug 16 2016](https://github.com/dotnet/coreclr/issues/6759) Currently the UTF8Encoding methods are kind of a mess, and they read [ints at a time](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Text/UTF8Encoding.cs#L457-L458) rather than longs, so they're not taking full advantage of 64-bit platforms. Additionally strings have an `IsAscii()` flag [cached in the syncblk](https://github.com/dotnet/coreclr/blob/master/src/classlibnative/bcltype/stringnative.cpp#L234) that we may be able to make use of, since that will essentially let us skip any checks for non-ASCII data during the loop and make `GetByteCount` O(1). Other ideas for optimization: - Haven't proven it but I'm 99% sure that [Encoding.UTF8](https://github.com/dotnet/coreclr/blob/57b3450f4d232cd53d3b9a0f6566806d73fa4156/src/mscorlib/src/System/Text/Encoding.cs#L1519-L1524) will not be inlined, it does 3 volatile accesses and initialization? (the constructor is more likely to be inlined) This is going to harm the typical use case for people who don't cache the result, like this: ``` cs var bytes = Encoding.UTF8.GetBytes(str); bytes[0] = 0xff; str = Encoding.UTF8.GetString(bytes); // second method call to get_UTF8 ``` We should attempt to instead do something similar to [ArrayPool.Shared](https://github.com/dotnet/corefx/blob/master/src/System.Buffers/src/System/Buffers/ArrayPool.cs#L39-L43) where the one-time init logic is separated out into a new method. - Right now the virtual methods exposed in the API call another virtual method to do the heavy lifting. Maybe it would be worth duplicating some of the logic to avoid double virtual dispatch? - [Loop code size](https://github.com/dotnet/coreclr/blob/57b3450f4d232cd53d3b9a0f6566806d73fa4156/src/mscorlib/src/System/Text/UTF8Encoding.cs#L456-L497) is kinda big, which can be bad for the loop buffer. The logic to handle non-ASCII chars should be moved to outside the loop. --- @jkotas commented on [Tue Aug 16 2016](https://github.com/dotnet/coreclr/issues/6759#issuecomment-240155067) > that Encoding.UTF8 will not be inlined Agree. It would be nice to move the encoding singletons to the encoding classes where they belong, and initialize them in the static constructor of their respective class. This way the lazy initialization can be done using the more efficient static constructor trigger. > Right now the virtual methods exposed The options on what you can do about this are limited because of the encoding methods are not sealed. > logic to handle non-ASCII chars should be moved to outside the loop These kind of basic block movements are best left to profile guided optimizations - we do not have them hooked up to .NET Core yet, They are hooked up to full framework. You can read more about them here: https://msdn.microsoft.com/en-us/library/hh873180(v=vs.110).aspx --- @jkotas commented on [Tue Aug 16 2016](https://github.com/dotnet/coreclr/issues/6759#issuecomment-240155533) cc @KrzysztofCwalina Krzysztof has been looking into the performance issues around encoding as well. --- @redknightlois commented on [Thu Aug 18 2016](https://github.com/dotnet/coreclr/issues/6759#issuecomment-240736472) @jkotas A bit off-topic. Is the profile guided optimization going to be supported at the JIT level (without having to generate a native file)? --- @jkotas commented on [Thu Aug 18 2016](https://github.com/dotnet/coreclr/issues/6759#issuecomment-240809700) @redknightlois It may be worth an up-for-grabs issue. I do not think anybody is looking into it right now, but it should not be too hard for somebody to make it happen - all crucial parts are there today. --- @danmosemsft commented on [Thu Dec 08 2016](https://github.com/dotnet/coreclr/issues/6759#issuecomment-265819239) Per [issues guidance](https://github.com/dotnet/coreclr/blob/master/Documentation/workflow/IssuesFeedbackEngagement.md) > If in the managed code log it in the CoreFX repo even if the code is in this CoreCLR repo (ie., in mscorlib/System.Private.Corelib). The reason for this is we sometimes move managed types between the two and it makes sense to keep all the issues together. +14329 area-System.Security netTcp WCF clients fail with update to 1.1 I have an asp.net core controller that has a repo that uses a netTcp WCF client to call in to a WCF service. I used SecurityMode.Transport and TcpClientCredentialType.Certificate. For the client (that is hosted by the asp.net core controller), I read the certificate thumbprint out of my appsettings.json. This setup worked fine when my Microsoft.NETCore.App version was 1.0.1, but as soon as I change my dependency in project.json to 1.1 all my WCF calls fail with: > An unhandled exception of type 'System.ExecutionEngineException' occurred in System.Private.CoreLib.ni.dll this only happens when the credential type is set to Certificate. Windows and None security modes work without issue. +14331 area-System.Net HttpClient DiagnosticSource reporting does not notify about exceptions See `[System.Net.Http.HttpHandlerToFilter](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/netcore50/System/Net/HttpHandlerToFilter.cs)` ``` protected internal override async Task SendAsync(HttpRequestMessage request, CancellationToken cancel) { .... Guid loggingRequestId = s_diagnosticListener.LogHttpRequest(request); RTHttpRequestMessage rtRequest = await ConvertRequestAsync(request).ConfigureAwait(false); RTHttpResponseMessage rtResponse = await _next.SendRequestAsync(rtRequest).AsTask(cancel).ConfigureAwait(false); ... s_diagnosticListener.LogHttpResponse(response, loggingRequestId); return response; } ``` If exception is thrown while sending the request (DNS issues, timeout), nothing will be sent to diagnostic source. +14332 area-System.Linq Arity-specialised DynamicExpression impls should be used from all factories. As per #3266 in regards to `Expression.Call()`, the overloads of `Expression.Dynamic()` and `DynamicExpression.Dynamic()` that take an `Expression[]` or `IEnumerable` should use the derived classes specialised for particular arity when possible. +14333 area-System.Linq Duplication between Expression.MakeDynamic and DynamicExpression.MakeDynamic Different implementations since .NET 4.0 have had one or the other of these methods, but we now have Expression.MakeDynamic for netstandard1.7 and DynamicExpression.MakeDynamic for all versions. The code in these are essentially identical. The former should call into the latter. +14334 area-System.Runtime TypeInfo doesn't expose a parameterless constructor `TypeInfo` currently doesn't expose a parameterless constructor. We have several types in our reference assemblies which should be inheriting from `TypeInfo` but are unable to do so because there is no accessible constructor. @weshaggard +14335 area-Infrastructure Start running netcoreapp tests against the built runtime folder This puts a tests.targets override into Tools-Override which has basic steps for running tests out of the live-built runtime folder for netcoreapp. Currently this is using corerun, and sets the `CORE_LIBRARIES` environment variable in order to load test assemblies from another folder. We may end up overhauling that part of the process. Additionally, I've fixed up a few more projects and verified that they all build and run successfully. NOTE: tests are still disabled in the CI runs. @joperezr +14336 area-System.Runtime String should implement IReadOnlyList "```c# public sealed partial class String : System.Collections.Generic.IEnumerable, System.Collections.IEnumerable, System.IComparable, System.IComparable, System.IConvertible, System.IEquatable, System.ICloneable, System.Collections.Generic.IReadOnlyList { //... //IReadOnlyList members: int Count { get; } char this[int index] { get; } public IEnumerator GetEnumerator() { } // ... } ``` --- --- The original proposal was to use IReadOnlyList instead of IEnumerable, but that is not possible since it would break compatibility, so the proposal is instead to just add the new interface implementation. @stas-sultanov commented on [Mon Mar 23 2015](https://github.com/dotnet/coreclr/issues/542) I would like to suggest to make class String to implement IReadOnlyList{char} instead of IEnumerable{char}. Possibly interface should be implemented explicitly because of the Length property, which is extern and hardcoded in JIT. On the other hand Length could be deprecated and Count should be used instead. --- @pharring commented on [Thu Mar 26 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-86749090) @stas-sultanov Thanks for the suggestion. Can you give an example of where this would be useful? --- @stas-sultanov commented on [Fri Mar 27 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-86966435) Sure. Here is an example from one of my projects: A ConvertEx class which provides a set of methods to convert data from base-n string to byte array and vice-versa. This class has a lot of methods like: ``` C# public static TryResult TryToBase16String(byte[] data, int offset, int length) public static TryResult TryFromBase16String(string data, int offset, int length) ``` for this methods i'd like to use single method that checks arguments ``` C# private static void CheckArguments(IReadOnlyCollection data, int offset, int length) { if (data == null) throw new ArgumentNullException(@""data""); if (length < 0) throw new ArgumentOutOfRangeException(@""length"", length, @""Is less than 0.""); if (offset < 0) throw new ArgumentOutOfRangeException(@""offset"", offset, @""Is less than 0.""); if (offset > (data.Count - length)) throw new ArgumentOutOfRangeException(@""data"", data.Count, @""Offset plus length is greater than the length of data.""); } ``` But unfortunately it is not possible because byte[] and string has only one common interface `IEnumerable`. Use `IEnumerable` and get length via `Count()` method is not an option due to performance consideration. --- @pharring commented on [Fri Mar 27 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-86985851) A non-generic overload of CheckArguments would solve this, of course. --- @stas-sultanov commented on [Fri Mar 27 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-87003680) of course it would, and that it is the way it is made now. :) but it dose not looks like a good design. maybe example is not good enough, however i strongly believe that this small change would made coreclr more versatile. --- @SamuelEnglard commented on [Sun Mar 29 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-87472249) Just a quick point but unless I'm wrong array's don't implement `IReadOnlyList` so you'd still have to use the `Enumerable.Count()`. Do access the length/count of both an array and string in an efficient manner we'd have to `Enumerable.Count()` smarter. It already looks for types that implement `ICollection` or `ICollection` and uses the `Count` property instead of looping. If we add a shortcut for `IReadOnlyList` to that too then you could do what you want. --- @stas-sultanov commented on [Mon Mar 30 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-87485509) Arrays do implement `IReadOnlyList`, please take a look at comments of [Array](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Array.cs) class. Or try to compile followin code: ``` C# IReadOnlyList test = new [] {1, 2, 3}; ``` the Enumerable class that implements Count method is not part of the coreclr. --- @JohanLarsson commented on [Sun Mar 29 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-87487163) [Not much perf diff between .Count() and .Length for an array](http://referencesource.microsoft.com/#System.Core/System/Linq/Enumerable.cs,1191) IReadOnlyList is a nice interface though. --- @SamuelEnglard commented on [Sun Mar 29 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-87487299) Ah yes, I had looked before posting but missed that comment. My bad. So then yes I'm all for making string implement `IReadOnlyList`. Sorry about that --- @stas-sultanov commented on [Mon Mar 30 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-87648799) > Not much perf diff between .Count() and .Length for an array indeed, but once again: > the Enumerable class that implements Count method is not part of the coreclr. --- @VladimirGnenniy commented on [Mon Mar 30 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-87668687) I believe that this would be nice improvement of the architecture of the .net classes. --- @terrajobst commented on [Tue Apr 07 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-90750642) @KrzysztofCwalina How do you think about this? It seems that `String` would eventually support `Span`, would this additional interface make sense in general? --- @Lukazoid commented on [Fri Jun 19 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-113505393) +1 for this, would be really useful to be able to pass strings directly as IReadOnlyList/IReadOnlyCollection parameters instead of going via .ToCharArray() or using a wrapper class. --- @KrzysztofCwalina commented on [Fri Jun 19 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-113542312) To me string is a primitive type. I think it's already a mistake that it implements IEnumerable. --- @sharwell commented on [Fri Jun 19 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-113547344) @KrzysztofCwalina I totally get that view. It leads to [special cases](https://github.com/antlr/antlrcs/blob/bff09d7d1f25c64b680268d218e8461d4666501a/Antlr4.StringTemplate/Interpreter.cs#L1280-L1282) in certain code that isn't required in, [say, Java](https://github.com/antlr/stringtemplate4/blob/master/src/org/stringtemplate/v4/Interpreter.java#L1111-L1127). But for better or worse, that ship has sailed. Given that string already implements `IEnumerable` (and that isn't going to change), the question is whether or not it should also implement `IReadOnlyList`. :thought_balloon: I think it makes sense specifically for some cases where code currently needs to call `ToCharArray()`. I couldn't find any clear-cut cases where the new implementation would simplify my own existing code, but especially given it already implements `IEnumerable` I think it makes sense to implement `IReadOnlyList` as well. --- @KrzysztofCwalina commented on [Fri Jun 19 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-113549499) If we implemented it explicitly and made sure the Linq extensions don't show on String, then I guess it would be fine. --- @sharwell commented on [Fri Jun 19 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-113570244) @KrzysztofCwalina It already implements `IEnumerable`, so the LINQ extensions already appear. --- @KrzysztofCwalina commented on [Fri Jun 19 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-113573465) Hmmm, I was under the impression that we special cased it in C#. --- @KrzysztofCwalina commented on [Fri Jun 19 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-113578131) @jaredpar, @MadsTorgersen, I thought C# was special cased to not show Linq methods on String? --- @sharwell commented on [Fri Jun 19 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-113578491) In the PCL, `string` only implements `IEnumerable` (not `IEnumerable`), so only `OfType` and `Cast` appear. When I target .NET 4.5+ desktop, I see the LINQ methods appearing in VS 2015 RC. --- @MadsTorgersen commented on [Fri Jun 19 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-113582793) @KrzysztofCwalina I think you just spent too much time with PCL. :-) In the full framework, LINQ always worked over string - for better or worse. --- @KrzysztofCwalina commented on [Fri Jun 19 2015](https://github.com/dotnet/coreclr/issues/542#issuecomment-113583825) Yeah, it's all slowly coming to me. I think we initially wanted to special case it, but then we just decided to implement IEnumerable. Then in 8.1 we added IEnumerable (why?), and we are back to the original problem that string intellisense shows all these linq methods that probably should not be used on strings. --- @danmosemsft commented on [Thu Dec 08 2016](https://github.com/dotnet/coreclr/issues/542#issuecomment-265878943) API request -- moving to CoreFX " +14337 area-System.Runtime Add String.Trim overloads that take a single char and string separator ## Proposed API ```c# public sealed class String { // Proposed public string Trim(char trimChar); public string TrimStart(char trimChar); public string TrimEnd(char trimChar); // Existing public string Trim(); public string Trim(params char[] trimChars); public string TrimStart(params char[] trimChars); public string TrimEnd(params char[] trimChars); } ``` ## Motivation Avoid unnecessary array allocations when you want to trim based on a single char. - Similar to / consistent with recently approved #1513 `String.Split(char, ...)` and #5552 `String.Join(char, ...)`. ------------------------------------------------- ## Original discussion in CoreCLR repo @Snesha commented on [Wed Oct 21 2015](https://github.com/dotnet/coreclr/issues/1826) Complement String.Split additions for single char and string separator (https://github.com/dotnet/corefx/issues/1513). Proposed new APIs public string[] Trim(char); public string[] Trim(string); CC @ellismg - any others? Or will these cover the complement? --- @ellismg commented on [Thu Oct 22 2015](https://github.com/dotnet/coreclr/issues/1826#issuecomment-150398557) I would not do Trim(string) (it's not clear to me what the semantics are) and do TrimEnd(char) and TrimStart(char) instead. It feels like all three methods could use a common core. --- @Snesha commented on [Tue Oct 27 2015](https://github.com/dotnet/coreclr/issues/1826#issuecomment-151571232) TrimEnd(char) and TrimStart(char) are the new assignments. --- @ellismg commented on [Thu Oct 29 2015](https://github.com/dotnet/coreclr/issues/1826#issuecomment-152101611) We have some internal folks looking into this. Thanks everyone! --- @danmosemsft commented on [Thu Dec 08 2016](https://github.com/dotnet/coreclr/issues/1826#issuecomment-265879193) API request - moving to CoreFX . +14338 area-System.Collections Add Move method to List "@omariom commented on [Sun Jun 21 2015](https://github.com/dotnet/coreclr/issues/1165) There are plenty of convenience methods in generic List. But no Move method that can efficiently move an item from one position to another. What we have to do is [RemoveAt and Insert](https://github.com/dotnet/corefx/blob/master/src/System.ObjectModel/src/System/Collections/ObjectModel/ObservableCollection.cs#L200). It means two copies of big chunks of memory instead of one. The worst case is when both **from** and **to** are close to each other and to the beginning of a large list. What could be done with one copy of a few items becomes two copies of almost the whole list. In my implementation of ObservableCollection.MoveItem I had to get the underlying `List`, retrieve via reflection :see_no_evil: its array and do the work myself. So.. **I propose adding new Move method to generic List with the following signature:** ``` C# public void Move(int oldIndex, int newIndex); ``` --- @omariom commented on [Sun Jun 21 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-113963719) cc: @KrzysztofCwalina --- @OtherCrashOverride commented on [Sun Jun 21 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-113967256) Isn't this what LinkedList is for? --- @omariom commented on [Mon Jun 22 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-114040328) LinkedList is quite different in its capabilities. Its elements can't be accessed by position, its layout is not cache friendly etc. --- @hadibrais commented on [Mon Jun 22 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-114066363) While such method can be added to the generic list and is really useful, it cannot be utilized from the existing **ObservableCollection.Move** method you referenced. That's because three state changes have to be reported: **NotifyCollectionChangedAction.Remove**, **NotifyCollectionChangedAction.Add** and **NotifyCollectionChangedAction.Move**. Also the intermediate states have to be captured and made available to any listeners. Regardless, such efficient method is really useful and should be offered by the generic List. It's also easy to implement. --- @omariom commented on [Mon Jun 22 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-114071250) I mentioned ObservableCollection.MoveItem just as an example where such method could be used. Actually there are other cases where Move could be beneficial. > That's because three state changes have to be reported: NotifyCollectionChangedAction.Remove, NotifyCollectionChangedAction.Add and NotifyCollectionChangedAction.Move. Collection (which is the base class) doesn't report any actions. So nothing changes in terms of reporting. --- @OtherCrashOverride commented on [Mon Jun 22 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-114083702) List is not intended for performance with random inserts and deletes. Adding 'move' would just encourage improper use of the class. Move is a heavy weight function when type of List is a struct/valuetype. If there is a language where there is a precedence of having Move on a List it would be worth examining. Neither C++ std::vector nor Java 8 have any such notion. > In my implementation of ObservableCollection.MoveItem I had to get the underlying List, retrieve via reflection its array and do the work myself. It would also be helpful to post the code somewhere as an example of what is wanted. --- @omariom commented on [Mon Jun 22 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-114095876) @OtherCrashOverride Something like this: ``` C# public void Move(int oldIndex, int newIndex) { if ((uint)oldIndex >= (uint)_size) { ThrowArgumentOutOfRange(""oldIndex""); } if ((uint)newIndex >= (uint)_size) { ThrowArgumentOutOfRange(""newIndex""); } if (newIndex == oldIndex) return; T item = _items[oldIndex]; if (newIndex < oldIndex) { Array.Copy(_items, newIndex, _items, newIndex + 1, oldIndex - newIndex); } else { Array.Copy(_items, oldIndex + 1, _items, oldIndex, newIndex - oldIndex); } _items[newIndex] = item ; _version++; } ``` --- @omariom commented on [Sat Jul 02 2016](https://github.com/dotnet/coreclr/issues/1165#issuecomment-114097129) > List is not intended for performance with random inserts and deletes. Yes, but we already have **RemoveAt** and **Insert** methods which allow random inserts and deletes. And they are actually used to implement move semantics. --- @OtherCrashOverride commented on [Mon Jun 22 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-114101837) I would suggesting creating a pull request with the code and some tests. You should also include code to benchmark performance with Move versus RemoveAt / Insert. --- @masonwheeler commented on [Fri Jun 26 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-115775692) @OtherCrashOverride The performance benefits are obvious when you think about worst cases. For example, imagine a list with a few thousand items in it, and the operation you want to perform is `Move(10, 20);` With `RemoveAt` and `Insert`, you end up having to shift (essentially) all items in the list... twice. With the proposed `Move` method, you would have to shift 9 items once. --- @OtherCrashOverride commented on [Fri Jun 26 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-115823035) > The performance benefits are obvious when you think about worst cases. We really need to see benchmarks before we start speculating. In theory, it should be faster. The reality will come down to what the runtime does behind the scenes. For most cases LinkedList is probably a better choice. The use case for this is where you require the data to be sequential in memory. A specific example is when dealing with a GPU. Vertex data is typically very large structs packed into an array. It is also not uncommon to manipulate the data elements in real time. This proposal may benefit that specific scenario. We still require a benchmark to validate the claim. --- @KrzysztofCwalina commented on [Fri Jun 26 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-115827288) I think some kind of ""move"" API is worth exploring. But I think it would be great if somebody thought about a more general API than simple ""move one items from here to there"". For example, what if I want to move a slice/range? what if I want to swap two ranges? What if I want to round robin move three items? BTW, I am not proposing that we actually implement all these, often corner case, scenarios, but it would be good to have a good overview of the ""move"" scenarios and chose to implement the ones that are common and where we can get good performance improvement while preserving simplicity. --- @OtherCrashOverride commented on [Fri Jun 26 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-115850684) Upon further reflection, there is an issue here in that you can not actually get at the sequential data (for p/invoke) without exposing the internal array. With that in mind, maybe 'Move' should be proposed for 'Array'. List could then make use of that functionality without breaking encapsulation as exposing the internal array storage would do. Alternatively, a new ArrayList (or some other name) class could be introduced that guarantees array storage and exposes the internals. This, however, seems less than ideal. https://msdn.microsoft.com/en-us/library/system.collections.arraylist%28v=vs.110%29.aspx --- @AdamSpeight2008 commented on [Sat Jun 27 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-116131277) Why not just swap the contents? ``` c# public void Swap( this T a, T ) { T tmp = a; a = b; b = a; } ``` --- @masonwheeler commented on [Sat Jun 27 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-116132546) @AdamSpeight2008 Because that would only be a valid equivalent if the new index was adjacent to the old index. Let's say we have a lit of ints, like so: `0, 1, 2, 3, 4, 5, 6, 7, 8, 9` Swapping 1 and 5 would result in `0, 5, 2, 3, 4, 1, 6, 7, 8, 9` whereas executing the hypothetical `Move(1, 5)` would result in: `0, 2, 3, 4, 1, 5, 6, 7, 8, 9` As you can see, they're completely different operations. --- @AdamSpeight2008 commented on [Sat Jun 27 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-116137212) @masonwheeler Should the result of `Move( 1, 5)` be `0, 2, 3, 4, 5, 1, 6, 7, 8, 9` What should the resulf of `Move( 5, 1)` ? then same? Or `Move( 1, 1 )` --- @AdamSpeight2008 commented on [Sat Jun 27 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-116149465) The following extension methods implement the `Move`functionality. ``` vb Public Module Exts Public Function Move(Of T)(xs As IEnumerable(Of T), ox As Integer, nx As Integer) As IEnumerable(Of T) Return _Move(xs, ox, nx) End Function Private Iterator Function _Move(Of T)(xs As IEnumerable(Of T), ox As Integer, nx As Integer) As IEnumerable(Of T) Dim oxd = xs.ElementAt(ox) Dim ix = 0 Dim en = xs.GetEnumerator While en.MoveNext If ix = ox Then ElseIf ix = nx Then If ox < nx Then Yield en.Current Yield oxd Else Yield oxd Yield en.Current End If Else Yield en.Current End If ix += 1 End While End Function End Module ``` --- @AdamSpeight2008 commented on [Sat Jun 27 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-116163215) `Move( 1, 5). Move( 5, 1)` should really result in the original list. --- @omariom commented on [Mon Jun 29 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-116780193) @KrzysztofCwalina, I think two the most practical overloads at the moment are these: ``` C# public void Move(oldIndex, newIndex); public void Move(sourceIndex, length, destinationIndex); ``` Or, as an alternative, List could have Copy method with the same semantics as [Array.Copy](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Array.cs#L288) method. Then everyone could implement whatever he needs: moves, shifts, etc. --- @omariom commented on [Fri Sep 25 2015](https://github.com/dotnet/coreclr/issues/1165#issuecomment-143189689) This is what I have to do.. :scream_cat: ![](https://cloud.githubusercontent.com/assets/1781701/10099125/65e83124-638f-11e5-8241-4a4de138fc9c.png) --- @omariom commented on [Sat Jul 02 2016](https://github.com/dotnet/coreclr/issues/1165#issuecomment-230125569) @KrzysztofCwalina Now that .NET Core 1.0 is out can we change the milestone of the issue from Future to Present? ) --- @KrzysztofCwalina commented on [Tue Jul 05 2016](https://github.com/dotnet/coreclr/issues/1165#issuecomment-230528937) @terrajobst, @weshaggard, are you guys going to triage ""future"" issues? --- @danmosemsft commented on [Thu Dec 08 2016](https://github.com/dotnet/coreclr/issues/1165#issuecomment-265879332) API request - moving to CoreFX. " +14339 area-System.Net Use ArrayPool in ManagedWebSocket This switches from allocating byte arrays to getting them from ArrayPool. There are two primary buffers, and then a few smaller ones. The receive buffer is rented for the lifetime of the websocket, whereas the send buffer is rented only for the duration of a send. By switching to using ArrayPool, memory consumption when many websockets are being used should be less, as they will only take up the space for the send buffer while it's in use. cc: @benaadams, @CIPop, @davidsh, @anurse +14341 area-System.Collections Concurrent_Enqueue_TryPeek_TryDequeue_AllItemsSeen failing sporadically Since #14254 was merged, the Concurrent_Enqueue_TryPeek_TryDequeue_AllItemsSeen test has failed a few times, but only on Unix. The test is simple and has been very stable, so there's likely a product issue. It looks like something is amiss with the fences, as we appear to be overwriting a value that shouldn't be. https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_release/330/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_ubuntu14.04_debug/40/consoleText ``` System.Collections.Concurrent.Tests.ConcurrentQueueTests.Concurrent_Enqueue_TryPeek_TryDequeue_AllItemsSeen [FAIL] System.AggregateException : One or more errors occurred. (Assert.Equal() Failure Expected: 1 Actual: 33) ---- Assert.Equal() Failure Expected: 1 Actual: 33 Stack Trace: at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release/src/System.Collections.Concurrent/tests/ConcurrentQueueTests.cs(91,0): at System.Collections.Concurrent.Tests.ConcurrentQueueTests.Concurrent_Enqueue_TryPeek_TryDequeue_AllItemsSeen() ----- Inner Stack Trace ----- /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release/src/System.Collections.Concurrent/tests/ConcurrentQueueTests.cs(76,0): at System.Collections.Concurrent.Tests.ConcurrentQueueTests.<>c__DisplayClass10_0.b__0() at System.Threading.Tasks.Task.Execute() ``` +14345 area-Microsoft.CSharp Improve code coverage for Microsoft.CSharp.dll (72%) There are almost [no tests](https://github.com/dotnet/corefx/blob/master/src/Microsoft.CSharp/tests/CSharpArgumentInfoTests.cs) so there is [essentially zero coverage](https://dotnetcoverage.blob.core.windows.net/cov1/report/index.htm) +14346 area-System.Data Improve code coverage for System.Data.SqlClient (12%) [Report here](https://dotnetcoverage.blob.core.windows.net/cov1/report/index.htm) +14347 area-System.Linq Use arity-based DynamicExpressions more and remove duplication. Make heavier use of the arity-based derived `DynamicExpression` types. Fixes #14332 Have `Expression.Dynamic` call to `DynamicExpression.Dynamic` and `Expression.MakeDynamic` call to `DynamicExpression.MakeDynamic` when they are duplicate in functionality. Fixes #14333 Some more tests for `DynamicExpression`. +14348 area-System.Collections Fix race condition in ConcurrentQueue.TryPeek We incorrectly loop through the segments looking for the first that's not empty, under the idea that if there's more than one segment, all segments before the last are frozen, thus if we go through each segment in turn we can return from the first that's not empty. The problem is that we could check segment s, see that it's empty, but before we're able to check its next segment, so many enqueues could come in that they not only fill this segment, they spill into the next, causing the s._nextSegment to be non-null, at which point our loop will continue and we'll peek from s._nextSegment instead of from s. Fixes https://github.com/dotnet/corefx/issues/14341 cc: @kouvel, @benaadams, @janvorli +14349 area-Infrastructure [dev/eng] Make test projects compile against the TargetingPack + Xunit (1/3) Tests projects tracked by this issue are: ``` \src\Common\tests\Common.Tests.csproj \src\Microsoft.CSharp\tests\Microsoft.CSharp.Tests.csproj \src\Microsoft.VisualBasic\tests\Microsoft.VisualBasic.Tests.csproj \src\Microsoft.Win32.Primitives\tests\Microsoft.Win32.Primitives.Tests.csproj \src\Microsoft.Win32.Registry.AccessControl\tests\Microsoft.Win32.Registry.AccessControl.Tests.csproj \src\Microsoft.Win32.Registry\tests\Microsoft.Win32.Registry.Tests.csproj \src\System.AppContext\tests\System.AppContext.Tests.csproj \src\System.Buffers\tests\System.Buffers.Tests.csproj \src\System.CodeDom\tests\System.CodeDom.Tests.csproj \src\System.Collections.Concurrent\tests\System.Collections.Concurrent.Tests.csproj \src\System.Collections.Immutable\tests\System.Collections.Immutable.Tests.csproj \src\System.Collections.NonGeneric\tests\Performance\System.Collections.NonGeneric.Performance.Tests.csproj \src\System.Collections.NonGeneric\tests\System.Collections.NonGeneric.Tests.csproj \src\System.Collections.Specialized\tests\System.Collections.Specialized.Tests.csproj \src\System.Collections\tests\Performance\System.Collections.Performance.Tests.csproj \src\System.Collections\tests\System.Collections.Tests.csproj \src\System.ComponentModel.Annotations\tests\System.ComponentModel.Annotations.Tests.csproj \src\System.ComponentModel.EventBasedAsync\tests\System.ComponentModel.EventBasedAsync.Tests.csproj \src\System.ComponentModel.Primitives\tests\System.ComponentModel.Primitives.Tests.csproj \src\System.ComponentModel.TypeConverter\tests\Performance\System.ComponentModel.TypeConverter.Performance.Tests.csproj \src\System.ComponentModel.TypeConverter\tests\System.ComponentModel.TypeConverter.Tests.csproj \src\System.ComponentModel\tests\System.ComponentModel.Tests.csproj \src\System.Composition.Convention\tests\System.Composition.Convention.Tests.csproj \src\System.Composition\tests\System.Composition.Tests.csproj \src\System.Console\tests\ManualTests\System.Console.Manual.Tests.csproj \src\System.Console\tests\Performance\System.Console.Performance.Tests.csproj \src\System.Console\tests\System.Console.Tests.csproj \src\System.Data.Common\tests\System.Data.Common.Tests.csproj \src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj \src\System.Data.SqlClient\tests\ManualTests\System.Data.SqlClient.ManualTesting.Tests.csproj \src\System.Data.SqlClient\tests\StressTests\System.Data.SqlClient.Stress.Tests\System.Data.SqlClient.Stress.Tests.csproj \src\System.Diagnostics.Contracts\tests\System.Diagnostics.Contracts.Tests.csproj \src\System.Diagnostics.Debug\tests\System.Diagnostics.Debug.Tests.csproj \src\System.Diagnostics.DiagnosticSource\tests\System.Diagnostics.DiagnosticSource.Tests.csproj \src\System.Diagnostics.FileVersionInfo\tests\System.Diagnostics.FileVersionInfo.Tests\System.Diagnostics.FileVersionInfo.Tests.csproj \src\System.Diagnostics.Process\tests\Performance\System.Diagnostics.Process.Performance.Tests.csproj \src\System.Diagnostics.Process\tests\System.Diagnostics.Process.Tests.csproj \src\System.Diagnostics.TextWriterTraceListener\tests\System.Diagnostics.TextWriterTraceListener.Tests.csproj \src\System.Diagnostics.Tools\tests\System.Diagnostics.Tools.Tests.csproj \src\System.Diagnostics.TraceSource\tests\System.Diagnostics.TraceSource.Tests.csproj \src\System.Diagnostics.Tracing\tests\System.Diagnostics.Tracing.Tests.csproj \src\System.Drawing.Primitives\tests\System.Drawing.Primitives.Tests.csproj \src\System.Dynamic.Runtime\tests\System.Dynamic.Runtime.Tests.csproj \src\System.Globalization.Calendars\tests\System.Globalization.Calendars.Tests.csproj \src\System.Globalization.Extensions\tests\System.Globalization.Extensions.Tests.csproj \src\System.Globalization\tests\Performance\System.Globalization.Performance.Tests.csproj \src\System.Globalization\tests\System.Globalization.Tests.csproj \src\System.IO.Compression.ZipFile\tests\System.IO.Compression.ZipFile.Tests.csproj \src\System.IO.Compression\tests\Performance\System.IO.Compression.Performance.Tests.csproj \src\System.IO.Compression\tests\System.IO.Compression.Tests.csproj \src\System.IO.FileSystem.AccessControl\tests\System.IO.FileSystem.AccessControl.Tests.csproj \src\System.IO.FileSystem.DriveInfo\tests\System.IO.FileSystem.DriveInfo.Tests.csproj \src\System.IO.FileSystem.Primitives\tests\System.IO.FileSystem.Primitives.Tests.csproj \src\System.IO.FileSystem.Watcher\tests\System.IO.FileSystem.Watcher.Tests.csproj \src\System.IO.FileSystem\tests\Performance\System.IO.FileSystem.Performance.Tests.csproj \src\System.IO.FileSystem\tests\System.IO.FileSystem.Tests.csproj \src\System.IO.IsolatedStorage\tests\System.IO.IsolatedStorage.Tests.csproj \src\System.IO.MemoryMappedFiles\tests\Performance\System.IO.MemoryMappedFiles.Performance.Tests.csproj \src\System.IO.MemoryMappedFiles\tests\System.IO.MemoryMappedFiles.Tests.csproj \src\System.IO.Packaging\tests\System.IO.Packaging.Tests.csproj \src\System.IO.Pipes.AccessControl\tests\System.IO.Pipes.AccessControl.Tests.csproj \src\System.IO.Pipes\tests\Performance\System.IO.Pipes.Performance.Tests.csproj \src\System.IO.Pipes\tests\System.IO.Pipes.Tests.csproj \src\System.IO.UnmanagedMemoryStream\tests\System.IO.UnmanagedMemoryStream.Tests.csproj \src\System.IO\tests\System.IO.Tests.csproj \src\System.Json\tests\System.Json.Tests.csproj \src\System.Linq.Expressions\tests\System.Linq.Expressions.Tests.csproj \src\System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj \src\System.Linq.Queryable\tests\System.Linq.Queryable.Tests.csproj \src\System.Linq\tests\Performance\System.Linq.Performance.Tests.csproj ``` +14350 area-Infrastructure [dev/eng] Make test projects compile against the TargetingPack + Xunit (2/3) Tests projects tracked by this issue are: ``` \src\System.Linq\tests\System.Linq.Tests.csproj \src\System.Memory\tests\System.Memory.Tests.csproj \src\System.Net.Http.WinHttpHandler\tests\FunctionalTests\System.Net.Http.WinHttpHandler.Functional.Tests.csproj \src\System.Net.Http.WinHttpHandler\tests\UnitTests\System.Net.Http.WinHttpHandler.Unit.Tests.csproj \src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj \src\System.Net.Http\tests\UnitTests\System.Net.Http.Unit.Tests.csproj \src\System.Net.HttpListener\tests\System.Net.HttpListener.Tests.csproj \src\System.Net.Mail\tests\Functional\System.Net.Mail.Functional.Tests.csproj \src\System.Net.Mail\tests\Unit\System.Net.Mail.Unit.Tests.csproj \src\System.Net.NameResolution\tests\FunctionalTests\System.Net.NameResolution.Functional.Tests.csproj \src\System.Net.NameResolution\tests\PalTests\System.Net.NameResolution.Pal.Tests.csproj \src\System.Net.NameResolution\tests\UnitTests\System.Net.NameResolution.Unit.Tests.csproj \src\System.Net.NetworkInformation\tests\FunctionalTests\System.Net.NetworkInformation.Functional.Tests.csproj \src\System.Net.NetworkInformation\tests\UnitTests\System.Net.NetworkInformation.WinRT.Unit.Tests.csproj \src\System.Net.Ping\tests\FunctionalTests\System.Net.Ping.Functional.Tests.csproj \src\System.Net.Primitives\tests\FunctionalTests\System.Net.Primitives.Functional.Tests.csproj \src\System.Net.Primitives\tests\PalTests\System.Net.Primitives.Pal.Tests.csproj \src\System.Net.Primitives\tests\PerformanceTests\System.Net.Primitives.Performance.Tests.csproj \src\System.Net.Primitives\tests\UnitTests\System.Net.Primitives.UnitTests.Tests.csproj \src\System.Net.Requests\tests\System.Net.Requests.Tests.csproj \src\System.Net.Security\tests\FunctionalTests\System.Net.Security.Tests.csproj \src\System.Net.Security\tests\UnitTests\System.Net.Security.Unit.Tests.csproj \src\System.Net.ServicePoint\tests\System.Net.ServicePoint.Tests.csproj \src\System.Net.Sockets\tests\FunctionalTests\System.Net.Sockets.Tests.csproj \src\System.Net.Sockets\tests\PerformanceTests\System.Net.Sockets.Async.Performance.Tests.csproj \src\System.Net.WebClient\tests\System.Net.WebClient.Tests.csproj \src\System.Net.WebHeaderCollection\tests\System.Net.WebHeaderCollection.Tests.csproj \src\System.Net.WebProxy\tests\System.Net.WebProxy.Tests.csproj \src\System.Net.WebSockets.Client\tests\System.Net.WebSockets.Client.Tests.csproj \src\System.Net.WebSockets\tests\System.Net.WebSockets.Tests.csproj \src\System.Numerics.Vectors\tests\Performance\System.Numerics.Vectors.Performance.Tests.csproj \src\System.Numerics.Vectors\tests\System.Numerics.Vectors.Tests.csproj \src\System.ObjectModel\tests\System.ObjectModel.Tests.csproj \src\System.Private.Uri\tests\ExtendedFunctionalTests\System.Private.Uri.ExtendedFunctional.Tests.csproj \src\System.Private.Uri\tests\FunctionalTests\System.Private.Uri.Functional.Tests.csproj \src\System.Private.Uri\tests\UnitTests\System.Private.Uri.Unit.Tests.csproj \src\System.Private.Xml.Linq\tests\axes\System.Xml.Linq.Axes.Tests.csproj \src\System.Private.Xml.Linq\tests\events\System.Xml.Linq.Events.Tests.csproj \src\System.Private.Xml.Linq\tests\misc\System.Xml.Linq.Misc.Tests.csproj \src\System.Private.Xml.Linq\tests\Properties\System.Xml.Linq.Properties.Tests.csproj \src\System.Private.Xml.Linq\tests\Schema\System.Xml.Schema.Extensions.Tests.csproj \src\System.Private.Xml.Linq\tests\SDMSample\System.Xml.Linq.SDMSample.Tests.csproj \src\System.Private.Xml.Linq\tests\Streaming\System.Xml.Linq.Streaming.Tests.csproj \src\System.Private.Xml.Linq\tests\TreeManipulation\System.Xml.Linq.TreeManipulation.Tests.csproj \src\System.Private.Xml.Linq\tests\xNodeBuilder\System.Xml.Linq.xNodeBuilder.Tests.csproj \src\System.Private.Xml.Linq\tests\xNodeReader\System.Xml.Linq.xNodeReader.Tests.csproj \src\System.Private.Xml.Linq\tests\XPath\XDocument\System.Xml.XPath.XDocument.Tests.csproj \src\System.Private.Xml\tests\Misc\System.Xml.Misc.Tests.csproj \src\System.Private.Xml\tests\Readers\CharCheckingReader\System.Xml.RW.CharCheckingReader.Tests.csproj \src\System.Private.Xml\tests\Readers\CustomReader\System.Xml.RW.CustomReader.Tests.csproj \src\System.Private.Xml\tests\Readers\FactoryReader\System.Xml.RW.FactoryReader.Tests.csproj \src\System.Private.Xml\tests\Readers\NameTable\System.Xml.RW.NameTable.Tests.csproj \src\System.Private.Xml\tests\Readers\ReaderSettings\System.Xml.RW.ReaderSettings.Tests.csproj \src\System.Private.Xml\tests\Readers\SubtreeReader\System.Xml.RW.SubtreeReader.Tests.csproj \src\System.Private.Xml\tests\Readers\WrappedReader\System.Xml.RW.WrappedReader.Tests.csproj \src\System.Private.Xml\tests\Writers\RwFactory\System.Xml.RW.RwFactory.Tests.csproj \src\System.Private.Xml\tests\Writers\XmlWriterApi\System.Xml.RW.XmlWriterApi.Tests.csproj \src\System.Private.Xml\tests\XmlConvert\System.Xml.RW.XmlConvert.Tests.csproj \src\System.Private.Xml\tests\XmlDocument\Performance\System.Xml.XmlDocument.Performance.Tests.csproj \src\System.Private.Xml\tests\XmlDocument\System.Xml.XmlDocument.Tests.csproj \src\System.Private.Xml\tests\XmlReader\ReadContentAs\System.Xml.RW.XmlReader.ReadContentAs.Tests.csproj \src\System.Private.Xml\tests\XmlReader\Tests\System.Xml.RW.XmlReader.Tests.csproj \src\System.Private.Xml\tests\XmlReader\XmlResolver\System.Xml.RW.XmlSystemPathResolver.Tests.csproj \src\System.Private.Xml\tests\XmlSchema\XmlSchemaSet\System.Xml.XmlSchemaSet.Tests.csproj \src\System.Private.Xml\tests\XmlSchema\XmlSchemaValidatorApi\System.Xml.XmlSchema.XmlSchemaValidatorApi.Tests.csproj \src\System.Private.Xml\tests\XmlSerializer\System.Xml.XmlSerializer.Tests.csproj \src\System.Private.Xml\tests\XmlWriter\System.Xml.RW.XmlWriter.Tests.csproj \src\System.Private.Xml\tests\XPath\XmlDocument\System.Xml.XPath.XmlDocument.Tests.csproj \src\System.Private.Xml\tests\XPath\XPathDocument\System.Xml.XPath.Tests.csproj \src\System.Private.Xml\tests\Xslt\XslCompiledTransformApi\System.Xml.Xsl.XslCompiledTransformApi.Tests.csproj ``` +14351 area-Infrastructure [dev/eng] Make test projects compile against the TargetingPack + Xunit (3/3) Tests projects tracked by this issue are: ``` \src\System.Private.Xml\tests\Xslt\XsltCompiler\XsltCompiler.Tests.csproj \src\System.Private.Xml\tests\Xslt\XslTransformApi\System.Xml.Xsl.XslTransformApi.Tests.csproj \src\System.Private.Xml\tests\Xslt\XsltScenarios\XsltScenarios.Tests.csproj \src\System.Reflection.Context\tests\System.Reflection.Context.Tests.csproj \src\System.Reflection.DispatchProxy\tests\System.Reflection.DispatchProxy.Tests.csproj \src\System.Reflection.Emit.ILGeneration\tests\System.Reflection.Emit.ILGeneration.Tests.csproj \src\System.Reflection.Emit.Lightweight\tests\System.Reflection.Emit.Lightweight.Tests.csproj \src\System.Reflection.Emit\tests\System.Reflection.Emit.Tests.csproj \src\System.Reflection.Extensions\tests\System.Reflection.Extensions.Tests.csproj \src\System.Reflection.Metadata\tests\System.Reflection.Metadata.Tests.csproj \src\System.Reflection.TypeExtensions\tests\CoreCLR\System.Reflection.TypeExtensions.CoreCLR.Tests.csproj \src\System.Reflection.TypeExtensions\tests\System.Reflection.TypeExtensions.Tests.csproj \src\System.Reflection\tests\CoreCLR\System.Reflection.CoreCLR.Tests.csproj \src\System.Reflection\tests\System.Reflection.Tests.csproj \src\System.Resources.Reader\tests\System.Resources.Reader.Tests.csproj \src\System.Resources.ResourceManager\tests\System.Resources.ResourceManager.Tests.csproj \src\System.Resources.Writer\tests\System.Resources.Writer.Tests.csproj \src\System.Runtime.CompilerServices.Unsafe\tests\System.Runtime.CompilerServices.Unsafe.Tests.csproj \src\System.Runtime.Extensions\tests\Performance\System.Runtime.Extensions.Performance.Tests.csproj \src\System.Runtime.Extensions\tests\System.Runtime.Extensions.Tests.csproj \src\System.Runtime.Handles\tests\System.Runtime.Handles.Tests.csproj \src\System.Runtime.InteropServices.RuntimeInformation\tests\System.Runtime.InteropServices.RuntimeInformation.Tests.csproj \src\System.Runtime.InteropServices\tests\System.Runtime.InteropServices.Tests.csproj \src\System.Runtime.Loader\tests\DefaultContext\System.Runtime.Loader.DefaultContext.Tests.csproj \src\System.Runtime.Loader\tests\RefEmitLoadContext\System.Runtime.Loader.RefEmitLoadContext.Tests.csproj \src\System.Runtime.Loader\tests\System.Runtime.Loader.Tests.csproj \src\System.Runtime.Numerics\tests\System.Runtime.Numerics.Tests.csproj \src\System.Runtime.Serialization.Formatters\tests\System.Runtime.Serialization.Formatters.Tests.csproj \src\System.Runtime.Serialization.Json\tests\Performance\System.Runtime.Serialization.Json.Performance.Tests.csproj \src\System.Runtime.Serialization.Json\tests\ReflectionOnly\System.Runtime.Serialization.Json.ReflectionOnly.Tests.csproj \src\System.Runtime.Serialization.Json\tests\System.Runtime.Serialization.Json.Tests.csproj \src\System.Runtime.Serialization.Xml\tests\Performance\System.Runtime.Serialization.Xml.Performance.Tests.csproj \src\System.Runtime.Serialization.Xml\tests\ReflectionOnly\System.Runtime.Serialization.Xml.ReflectionOnly.Tests.csproj \src\System.Runtime.Serialization.Xml\tests\System.Runtime.Serialization.Xml.Tests.csproj \src\System.Runtime\tests\Performance\System.Runtime.Performance.Tests.csproj \src\System.Runtime\tests\System.Runtime.Tests.csproj \src\System.Security.AccessControl\tests\System.Security.AccessControl.Tests.csproj \src\System.Security.Claims\tests\System.Security.Claims.Tests.csproj \src\System.Security.Cryptography.Algorithms\tests\System.Security.Cryptography.Algorithms.Tests.csproj \src\System.Security.Cryptography.Cng\tests\System.Security.Cryptography.Cng.Tests.csproj \src\System.Security.Cryptography.Csp\tests\System.Security.Cryptography.Csp.Tests.csproj \src\System.Security.Cryptography.Encoding\tests\System.Security.Cryptography.Encoding.Tests.csproj \src\System.Security.Cryptography.OpenSsl\tests\System.Security.Cryptography.OpenSsl.Tests.csproj \src\System.Security.Cryptography.Pkcs\tests\System.Security.Cryptography.Pkcs.Tests.csproj \src\System.Security.Cryptography.Primitives\tests\System.Security.Cryptography.Primitives.Tests.csproj \src\System.Security.Cryptography.ProtectedData\tests\System.Security.Cryptography.ProtectedData.Tests.csproj \src\System.Security.Cryptography.X509Certificates\tests\System.Security.Cryptography.X509Certificates.Tests.csproj \src\System.Security.Permissions\tests\System.Security.Permissions.Tests.csproj \src\System.Security.Principal.Windows\tests\System.Security.Principal.Windows.Tests.csproj \src\System.Security.SecureString\tests\System.Security.SecureString.Tests.csproj \src\System.ServiceProcess.ServiceController\tests\System.ServiceProcess.ServiceController.Tests\System.ServiceProcess.ServiceController.Tests.csproj \src\System.Text.Encoding.CodePages\tests\System.Text.Encoding.CodePages.Tests.csproj \src\System.Text.Encoding.Extensions\tests\System.Text.Encoding.Extensions.Tests.csproj \src\System.Text.Encoding\tests\Performance\System.Text.Encoding.Performance.Tests.csproj \src\System.Text.Encoding\tests\System.Text.Encoding.Tests.csproj \src\System.Text.Encodings.Web\tests\System.Text.Encodings.Web.Tests.csproj \src\System.Text.RegularExpressions\tests\System.Text.RegularExpressions.Tests.csproj \src\System.Threading.AccessControl\tests\System.Threading.AccessControl.Tests.csproj \src\System.Threading.Overlapped\tests\System.Threading.Overlapped.Tests.csproj \src\System.Threading.Tasks.Dataflow\tests\System.Threading.Tasks.Dataflow.Tests.csproj \src\System.Threading.Tasks.Extensions\tests\System.Threading.Tasks.Extensions.Tests.csproj \src\System.Threading.Tasks.Parallel\tests\System.Threading.Tasks.Parallel.Tests.csproj \src\System.Threading.Tasks\tests\System.Threading.Tasks.Tests.csproj \src\System.Threading.Thread\tests\System.Threading.Thread.Tests.csproj \src\System.Threading.ThreadPool\tests\System.Threading.ThreadPool.Tests.csproj \src\System.Threading.Timer\tests\System.Threading.Timer.Tests.csproj \src\System.Threading\tests\Performance\System.Threading.Performance.Tests.csproj \src\System.Threading\tests\System.Threading.Tests.csproj \src\System.Transactions\tests\System.Transactions.Tests.csproj \src\System.ValueTuple\tests\System.ValueTuple.Tests.csproj \src\System.Web.HttpUtility\tests\System.Web.HttpUtility.Tests.csproj ``` +14352 area-System.IO Improve code coverage for System.IO.FileSystem.AccessControl (0%) We have almost [zero test coverage](https://github.com/dotnet/corefx/blob/master/src/System.IO.FileSystem.AccessControl/tests/FileSystemAclExtensionsTests.cs) so our [code coverage is essentially zero](https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/) +14354 area-System.Numerics Proposal: Add System.HashCode to make it easier to generate good hash codes. "# Update 6/16/17: Looking for volunteers The API shape has been finalized. However, we're still deciding on the best hash algorithm out of [a list of candidates](https://github.com/dotnet/corefx/issues/14354#issuecomment-305028686) to use for the implementation, and we need someone to help us measure the throughput/distribution of each algorithm. If you'd like to take that role up, please leave a comment below and @karelz will assign this issue to you. # Update 6/13/17: Proposal accepted! Here's the API that was approved by @terrajobst at https://github.com/dotnet/corefx/issues/14354#issuecomment-308190321: ```cs // Will live in the core assembly // .NET Framework : mscorlib // .NET Core : System.Runtime / System.Private.CoreLib namespace System { public struct HashCode { public static int Combine(T1 value1); public static int Combine(T1 value1, T2 value2); public static int Combine(T1 value1, T2 value2, T3 value3); public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4); public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5); public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6); public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7); public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8); public void Add(T value); public void Add(T value, IEqualityComparer comparer); [Obsolete(""Use ToHashCode to retrieve the computed hash code."", error: true)] [EditorBrowsable(Never)] public override int GetHashCode(); public int ToHashCode(); } } ``` The original text of this proposal follows. # Rationale Generating a good hash code should not require use of ugly magic constants and bit twiddling on our code. It should be less tempting to write a bad-but-concise `GetHashCode` implementation such as ```cs class Person { public override int GetHashCode() => FirstName.GetHashCode() + LastName.GetHashCode(); } ``` # Proposal We should add a `HashCode` type to enscapulate hash code creation and avoid forcing devs to get mixed up in the messy details. Here is my proposal, which is based off of https://github.com/dotnet/corefx/issues/14354#issuecomment-305019329, with a few minor revisions. ```cs // Will live in the core assembly // .NET Framework : mscorlib // .NET Core : System.Runtime / System.Private.CoreLib namespace System { public struct HashCode { public static int Combine(T1 value1); public static int Combine(T1 value1, T2 value2); public static int Combine(T1 value1, T2 value2, T3 value3); public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4); public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5); public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6); public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7); public static int Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8); public void Add(T value); public void Add(T value, IEqualityComparer comparer); public void AddRange(T[] values); public void AddRange(T[] values, int index, int count); public void AddRange(T[] values, int index, int count, IEqualityComparer comparer); [Obsolete(""Use ToHashCode to retrieve the computed hash code."", error: true)] public override int GetHashCode(); public int ToHashCode(); } } ``` ## Remarks See @terrajobst's comment at https://github.com/dotnet/corefx/issues/14354#issuecomment-305019329 for the goals of this API; all of his remarks are valid. I would like to point out these ones in particular, however: - The API **does not need** to produce a strong cryptographic hash - The API will provide ""a"" hash code, but not guarantee a particular hash code algorithm. This allows us to use a different algorithm later or use different algorithms on different architectures. - The API will guarantee that within a given process the same values will yield the same hash code. Different instances of the same app will likely produce different hash codes due to randomization. This allows us to ensure that consumers cannot persist hash values and accidentally rely on them being stable across runs (or worse, versions of the platform)." +14355 area-System.Net Port windows authentication for HttpListener fixes #13903 Classification of changes - Ported authentication from full framework to core - WDigest protocol is not ported, as it's disabled from Windows 8.1. - Added tests for basic authentication, other protocols require infrastructure from CI. cc @CIPop @davidsh @stephentoub @karelz +14356 area-System.Security [AWS Linux][unsupported] X509Certificate2 fails on AWS Linux "How do I load a X509certificate on netcore? The code: `var x509Certificate2 = new X509Certificate2(""certificatePair.pfx"");` Fails with the following exception when run on AWS Linux: > { > ""errorType"": ""LambdaException"", > ""errorMessage"": ""An exception was thrown when the constructor for type 'Lambda.Handlers.WebApiHandler' was invoked. Check inner exception for more details."", > ""cause"": { > ""errorType"": ""TargetInvocationException"", > ""errorMessage"": ""Exception has been thrown by the target of an invocation."", > ""stackTrace"": [ > ""at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)"", > ""at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)"", > ""at System.Activator.CreateInstance(Type type, Boolean nonPublic)"", > ""at System.Activator.CreateInstance(Type type)"" > ], > ""cause"": { > ""errorType"": ""MissingMethodException"", > ""errorMessage"": "".ctor"", > ""stackTrace"": [ > ""at Interop.Crypto.Pkcs12Parse(SafePkcs12Handle p12, String pass, SafeEvpPKeyHandle& pkey, SafeX509Handle& cert, SafeX509StackHandle& ca)"", > ""at Internal.Cryptography.Pal.OpenSslPkcs12Reader.Decrypt(String password)"", > ""at Internal.Cryptography.Pal.PkcsFormatReader.TryReadPkcs12(OpenSslPkcs12Reader pfx, String password, Boolean single, ICertificatePal& readPal, List`1& readCerts)"", > ""at Internal.Cryptography.Pal.PkcsFormatReader.TryReadPkcs12(SafeBioHandle bio, String password, Boolean single, ICertificatePal& readPal, List`1& readCerts)"", > ""at Internal.Cryptography.Pal.CertificatePal.FromBio(SafeBioHandle bio, String password)"", > ""at Internal.Cryptography.Pal.CertificatePal.FromFile(String fileName, String password, X509KeyStorageFlags keyStorageFlags)"", > ""at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags)"", > ""at Bunkr.RestApi.Startup.ConfigureServices(IServiceCollection services)"", > ""--- End of stack trace from previous location where exception was thrown ---"", > ""at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()"", > ""at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection services)"", > ""at Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices()"", > ""at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()"", > ""at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()"", > ""at Microsoft.AspNetCore.TestHost.TestServer..ctor(IWebHostBuilder builder)"", > ""at Lambda.Handlers.WebApiHandler..ctor()"" > ] > } > } > } The code calling this: https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/OpenSslPkcs12Reader.cs" +14358 area-Infrastructure Remove stale P2P references Replaces https://github.com/dotnet/corefx/pull/14134. It was failing due to still needing some of these; now that our corefx dependencies have been updated, we can get rid of 'em. cc: @joperezr, @danmosemsft Fixes #12431 Fixes #13073 Fixes #13894 +14359 area-System.Runtime CurrentDomain.GetAssemblies() functionality. Hi! I know that this question was already discussed (https://github.com/dotnet/corefx/issues/1784#issuecomment-184409082) but unfortunally there was no direct answer how to do it or some workaround. This is very needed functionality. +14360 area-Infrastructure Add nuget pkg to publish ubuntu*-arm First step to create nuget packages for ubuntu-arm Signed-off-by: chunseok lee +14362 area-Infrastructure Add portableLinux option for build-native.sh This change adds portableLinux option to the src/Native/build-native.sh and also enables its passing through from the root build-native.sh and build.sh. This option enables or disables build of native binaries portable over Linux distros based on glibc. I have also modified the build-native.sh behavior for the staticLibLink option. Before, if you ran build with this option and then later on ran the build without this option, it was still considered as being set since the previous value was cached. With my change, it rebuilds the binaries any time you change the option. +14363 area-System.Net Use ArrayPool for multiple buffers in CurlHandler CurlHandler currently has two potentially large byte[] buffers: - When sending request data, it allocates a buffer to transfer data from the request to libcurl, typically 16K (unless the request content is known to be smaller than that). - When transferring response data, libcurl offers up data in large chunks, and we need to take all or none of it at a time. If a response read on the response stream asks for less than what libcurl proferred, we need to buffer the remainder, typically up to 16K in size. Currently these buffers are allocated per request. This commit changes them to come from ArrayPool. cc: @geoffkizer, @davidsh, @cipop +14364 area-System.Collections Fix ConcurrentBag enumeration undefined behavior ConcurrentBag.GetEnumerator used to copy all of the contents into a List and then return that List's enumerator. As part of some recent optimizations, I changed that to use an array instead of a list. But array's enumerator has different semantics for the undefined case of accessing Current after MoveNext returns false. Initially I thought we'd just accept the breaking change, but as it's simple to address and as the change does introduce an exception where there wasn't previously one, I've changed my mind and am just adding a simple enumerator to address the discrepancy. Fixes https://github.com/dotnet/corefx/issues/14296 cc: @ianhays +14368 area-System.Security could not run unit test if dependency library reference System.Security.Cryptography.Algorithms "I have a class library which target .net standard 1.3. And I use the MD5 class to hash the string. ```C# public static class HashHelper { public static string GetStringMD5(string str) { using (var md5 = MD5.Create()) { var bytes = md5.ComputeHash(Encoding.UTF8.GetBytes(str)); return BitConverter.ToString(bytes).Replace(""-"", """"); } } } ``` But when I run the unit test, it throw System.IO.FileLoadException to me. ![qq 20161209233211](https://cloud.githubusercontent.com/assets/5144550/21054665/82396f92-be69-11e6-9610-5148462aa7a5.png) even my unit test project install System.Security.Cryptography.Algorithms package. I upload the demo here: https://github.com/h82258652/NetCoreSystemSecurityCryptographyAlgorithmsCanNotUnitTest Environment: **OS:** Win10 14393 x64 **Unit Test Project:** .net framework 4.6.2 **Library:** .net standard 1.3 **Visual Studio:** 2015 Enterprise update 3" +14369 area-System.Collections Move ImmutableArray and interfaces it implements to System.Runtime These are all exchange types and should be useable anywhere on the stack. +14371 area-Infrastructure Remove non-functional arm64 testing +14372 area-System.Linq DynamicObject Tests +14373 area-System.Linq Test System.Dynamic.SetIndexBinder and S.D.SetMemberBinder +14374 area-System.Net Why is the class HttpStatusDescription internal ? I was wondering why this class is made **internal** ? Because I want to use this class to get a description from an HttpStatusCode ? **Update + Reminder to myself** I need this for this project : https://github.com/vtortola/WebSocketListener/blob/master/vtortola.WebSockets/Http/HttpStatusDescription.cs +14375 area-Infrastructure [dev/eng] RemoteExecutorConsoleApp needs to be modified to handle new test structure Many of our tests use the `RemoteExecutorConsoleApp`. Currently, it only works if the whole runtime is next to the test assembly, next to the runtime, next to the host, etc. We need to reconfigure how this thing works so that it works with the new directory structure that we've proposed. +14376 area-System.Memory Span: Add debugger viewers to Span and ReadOnlySpan It's difficult to debug programs that use spans because the span items cannot be easily inspected in the debugger. +14378 area-Serialization Area-Serialization Sprint 111 The issue is for tracking issues to be done in sprint 111 (due by 12/30/2016). +14381 area-System.Linq Prohibit pointer and byref types in TypeAs expressions. Contributes to #8081 Further test `TypeAs` validation. +14382 area-System.Console Review CA2002:DoNotLockOnObjectsWithWeakIdentity errors in System.Console The System.Console project has many cases of locking on bad objects. Review the usages and suppress in source with justifications if the risk of deadlocks is okay. https://github.com/dotnet/corefx/blob/master/src/System.Console/src/FxCopBaseline.cs +14387 area-System.Runtime Add additional methods to ConditionalWeakTable ```ConditionalWeakTable``` is a specialized dictionary but it lacks several useful public members. We just added AddOrUpdate in https://github.com/dotnet/corefx/issues/8429. We should also add: ```C# public sealed class ConditionalWeakTable : IEnumerable> { public void Clear(); // already exists as internal, just needs to be made public IEnumerator> IEnumerable>.GetEnumerator(); // non-snapshot semantics, similar to ConcurrentDictionary IEnumerator IEnumerable.GetEnumerator(); } ``` +14389 area-System.ComponentModel Moving ISupportInitialize down to System.ComponentModel.Primitives Fixes #14275 cc @weshaggard @ericstj @danmosemsft +14390 area-System.ComponentModel IDesignerHost should be in System.ComponentModel.Primitives /cc @weshaggard @ericstj This is causing FileSystem.Watcher to bring in TypeConverter. +14391 area-System.ComponentModel Remove P2P references from System.ComponentModel.TypeConverter Once #14389 goes in the P2P references should be removed. +14392 area-System.Xml Fix Newline bug in Xsl tests Fixes https://github.com/dotnet/corefx/issues/14146, https://github.com/dotnet/corefx/issues/14148, and https://github.com/dotnet/corefx/issues/14147 I was not able to repro the failures locally even after building against local packages (as instructed [here](https://github.com/dotnet/corefx/blob/master/Documentation/building/build-tests-against-packages.md)). But after looking at the helix test result xml output I'm pretty sure these are caused by new line differences on unix and windows (`\r\n` vs. `\n`) cc: @danmosemsft @stephentoub @joperezr +14394 area-System.Reflection Remove S.Linq dependency from S.R.Metadata @tmat @davidwrighton +14396 area-System.Memory S.M.Span: Add Clear()/Fill(T value) Just to get the ball rolling, here is naive Clear/Fill implementations for `Span` as per approved API proposals https://github.com/dotnet/corefx/issues/13915 and https://github.com/dotnet/corefx/issues/14189 i.e.: ```csharp public class Span { public void Clear(); public void Fill(T value); } ``` @jkotas I will try to update this PR over time and hope you can give some feedback until we reach a point where more people can be added for review. If that is ok with you? I would like to start minimally with implementation, and instead focus on ensuring complete tests are in place and ideally perf tests so we can establish a baseline. From that we can move on with optimizations. So first question, is what tests should be added? As I see we need at least three different scenarios: * Value type without references i.e. `int` (already there) * Reference type i.e. `string` * Value type with references i.e. custom `struct` Additionally, there needs to be tests that cover alignment issues etc. I assume. cc: @karelz Closes https://github.com/dotnet/corefx/issues/13915 https://github.com/dotnet/corefx/issues/14189 +14398 area-System.Runtime Investigate queueing string references for StringBuilder "Currently, in `StringBuilder.Append(string)` we copy all of the characters of the input string to our internal buffers. Then, we copy all of these characters again to the output string if `ToString` is called. So basically, we're copying each input string twice. We can reduce this to 1 copy. Instead of eagerly copying the string when `Append` is called, we can queue it up into a list of string references we have. Then, during `ToString`, we will copy the part from our char buffers before that string, copy the string, then copy the part from our buffers before the next string, etc. Here is a visualization: ```cs new StringBuilder() .Append('a') .Append(""reallylongstring"" + new string(Enumerable.Repeat('g', 100).ToArray())) .Append(','); // Before InternalBuffers: ['a', 'r', 'e', 'a', ... 'g', 'g', '.'] // After InternalBuffers: ['a', '.'] StringQueue: [""reallylongstringggggg...gg""] // Only 8 bytes to store! ``` It is a little overly simplistic because StringBuilder actually uses a linked list of char buffers for internal storage, but I hope the point still gets across. ## Downsides - It will complicate the indexer logic more - We will have to add an extra field or 2 to `StringBuilder` - The string reference itself may be more expensive to store than the string's characters - However, we can easily work around this by checking the length of the string, and calculating whether that takes up 8 bytes (the size of a 64-bit reference) or more. If yes, then we queue it; if no, then we copy its individual characters. ## Other Notes I made a proof-of-concept PR last month to corefxlab, so you can see more how this is implemented if you're interested: https://github.com/dotnet/corefxlab/pull/976" +14403 area-System.IO CreateText always creates a new file while documentation says it creates OR opens "At https://docs.microsoft.com/en-us/dotnet/core/api/system.io.file#System_IO_File_CreateText_System_String_ documentation says, that: CreateText(String) Creates or opens a file for writing UTF-8 encoded text. However on my tests a file is always created (overwritten). I don't know whether the documentation should be updated to match practice or vice versa. Repro code ``` using (var t = System.IO.File.CreateText(""test.txt"")) { t.WriteLine(""Test1""); } using (var t = System.IO.File.CreateText(""test.txt"")) { t.BaseStream.Seek(0, System.IO.SeekOrigin.End); t.WriteLine(""Test2""); } ``` Expected result in test.txt according to doumentation: is ``` Test1 Test2 ``` However actual result (tested on Windows) is: ``` Test2 ``` " +14409 area-System.Net System.Net.Http.Tests.HttpRequestHeadersTest.IfNoneMatch_UseAddMethod_AddedValueCanBeRetrievedUsingProperty test failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/1302/consoleText ``` System.Net.Http.Tests.HttpRequestHeadersTest.IfNoneMatch_UseAddMethod_AddedValueCanBeRetrievedUsingProperty [FAIL] Assert.Same() Failure Expected: * Actual: * Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\tests\UnitTests\Headers\HttpRequestHeadersTest.cs(455,0): at System.Net.Http.Tests.HttpRequestHeadersTest.IfNoneMatch_UseAddMethod_AddedValueCanBeRetrievedUsingProperty() ``` +14410 area-System.Runtime Support plan for Digit separators in corefx Related to the roslyn issue https://github.com/dotnet/roslyn/issues/216, do you have any plan to support Digit separators in int.Parse, Conver.ToInt32, and other methods? +14412 area-System.Runtime Support plan for Binary literals "Related to the roslyn issue https://github.com/dotnet/roslyn/issues/215, do you have a plan to support Binary literals in `Convert.ToInt32(""0b1011"", 2)`? As for the current corefx specification, `Convert.ToInt32` (and other similar methods) method can convert Hexadecimal string, which starts from `0x`, to integer (or other Numeric types) if `fromBase` is 16. `int.Parse` and `int.TryParse` method can't parse Hexadecimal string. So do you have a plan to support converting Binary literals in `Convert.ToInt32` if `fromBase` is 2?" +14416 area-System.Collections Add HashSet.CreateSetComparer(comparer) "# 2nd API review iteration [TODO] TODO - Fill the new API proposal here please, with summary of the troubles we have found during code review of the 1st API review iteration. # 1st API review iteration [approved] - for context Originally approved in https://github.com/dotnet/corefx/issues/14416#issuecomment-279797190 ## 1. Addition of new Method ```C# namespace System.Collections.Generic { public class HashSet { public static IEqualityComparer> CreateSetComparer( IEqualityComparer comparer); } } ``` This method will return an `IEqualityComparer>` that uses the `IEqualityComparer` passed to it in comparing elements to determine equality of hash-sets. The comparer returned will consider two sets equal iff for each element in either there is an element in the other that `comparer` considers equal to it. Optimised paths may only be taken if they give the same result as this. If `comparer` is null, the method will treat this as if `EqualityComparer.Default` had been passed to it. The comparer will produce a hash code for sets as follows: 1. If the set is `null` the hash code is `0`. 2. Otherwise start with a seed value. For each value that `comparer` considers distinct, exclusive-or `comparer.GetHashCode(element)` with it. (The use of exclusive-or allows this algorithm to be agnostic to element order). ## 2. Obsolescence of Current `CreateSetComparer` Method ```C# namespace System.Collections.Generic { public class HashSet { [System.Obsolete(""This method can produce inconsistent results. Use CreatSetComparer(IEqualityComparer"")] public static IEqualityComparer> CreateSetComparer(); } } ``` The existing `CreateSetComparer` method has a minor design and major implementation issue. The design issue is that it lacks the ability to select the `IEqualityComparer` to use. If this was the only problem it could work as an overload equivalent to `CreateSetComparer(null)` but it also has implementation flaws resulting in a non-commutative `Equals()` and disagreement between `Equals()` and `GetHashCode()`. However fixing it would break some cases that it can (in disagreement with how it is specified) serve to usefully determine set-equality of two sets in respect of their own comparers, if those comparers are the same. See #12560 Since it can't be fixed without considerable breaks, and both the specified behaviour and the other type of comparison it sometimes makes are offered by the new method (with a clear way of indicating which is wanted), this method should be obsoleted. (Fixing it to behave as specified could be considered after it has been obsolete for some time, as an alternative to deleting it)." +14417 area-System.Runtime Environment.GetEnvironmentVariables() should give back DictionaryEntry, not KeyValuePair A recent change regressed Environment.GetEnvironmentVariables(). Its IEnumerable enumerator is supposed to yield ```DictionaryEntry``` items, but it's now yielding ```KeyValuePair```. cc: @JeremyKuhne +14419 area-System.Linq Missing LINQ tests that validate correct number of iterations, delegate invocations, etc. We're missing LINQ tests that validate that the input source enumerables are iterated no more than once, that delegates are invoked the correct number of times, etc. +14423 area-Infrastructure "[infrastructure] ""GetTargetFrameworkProperties"" does not exist in the project." "I have been running into the following issue very frequently over the past week or so: ``` Build FAILED. ""C:\Users\james\Code\git\corefx\src\System.Runtime\tests\System.Runtime.Tests.csproj"" (RebuildAndTest target) (1) -> ""C:\Users\james\Code\git\corefx\src\System.Runtime\pkg\System.Runtime.pkgproj"" (GetTargetFrameworkProperties target) (5) -> C:\Users\james\Code\git\corefx\src\System.Runtime\pkg\System.Runtime.pkgproj : error MSB4057: The target ""GetTargetFrameworkProperties"" does not exist in the project. ""C:\Users\james\Code\git\corefx\src\System.Runtime\tests\System.Runtime.Tests.csproj"" (RebuildAndTest target) (1) -> ""C:\Users\james\Code\git\corefx\src\System.Private.Uri\pkg\System.Private.Uri.pkgproj"" (GetTargetFrameworkProperties target) (6) -> C:\Users\james\Code\git\corefx\src\System.Private.Uri\pkg\System.Private.Uri.pkgproj : error MSB4057: The target ""GetTargetFrameworkProperties"" does not exist in the project. ... ``` Typically, I'll have no trouble running `msbuild /t:RebuildAndTest` on a project, but I will get one of these messages after the console runner finishes. ([example][1]) However, sometimes the build will simply fail (the tests won't even run) and 5 or more of these messages will pop up. The example above was what happened after I tried it under `src\System.Runtime\tests`. I have made a gist that includes both the normal and `/v:detailed` output for the last-mentioned scenario: https://gist.github.com/jamesqo/55beb150ace9a290dde7b18c9f204f91#file-systemruntime-detailedlog (You can find `SystemRuntime-Log`, the normal-verbosity log, at the bottom.) [1]: https://gist.github.com/jamesqo/55beb150ace9a290dde7b18c9f204f91#file-systemlinq-log" +14424 area-System.Runtime Expose Array.Fill and add tests This PR exposes the new `Array.Fill` API and adds tests. Fixes https://github.com/dotnet/corefx/issues/6695 cc: @hughbe, @justinvp (edit: Sorry for all of the CI failures. I have trouble building this locally because of https://github.com/dotnet/corefx/issues/14423, but I'll try to fix these ASAP.) +14425 area-System.IO Make GetEnvironmentVariables more compatible The legacy APIs returned Hashtable and could only iterate as DictionaryEntry. Fixes #14417 As we're going for compatible it seemed more appropriate to return Hashtable than low-level dictionary. +14431 area-System.Runtime Add ArraySegment Enumerator Tests Add tests for ArraySegment Enumerator. See https://github.com/dotnet/corefx/issues/14170 +14432 area-System.Security Seg fault in X509Certificates tests We've been seeing a seg fault happen in the X509Certificates tests with some regular frequency of late, e.g. https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_release_prtest/1220/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release_prtest/1313/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release_prtest/1311/consoleText I realize it's hard to diagnose without a dump, but we need to track it, regardless. +14435 area-System.Linq Ensure the selector gets run during Count. `Select` does not change the count of an enumerable, so previously we made an optimization where if `Count()` was called we would bypass running the selector altogether and iterate directly through the source. This commit undoes that and makes sure we always run the selector if `onlyIfCheap` is false. Fixes #13910 cc @JonHanna, @stephentoub, @VSadov +14436 area-System.Data SqlConnection.RetrieveStatistics should always return DictionaryEntry ### Summary If the `IDictionary` returned from `SqlConnection.RetrieveStatistics()` is cast to `IEnumerable`, its enumerator will yield `KeyValuePair` items instead of `DictionaryEntry` items, which is a behavior difference from the full framework. This PR addresses the behavior difference by changing `IEnumerable.GetEnumerator` to return a `DictionaryEntry` enumerator to match the behavior of the full framework. ### Details To break the dependency on the non-generic collections, `SqlConnection.RetrieveStatistics()` was changed to return an instance of a `Hashtable`-compatible subclass of `Dictionary` instead of returning a `Hashtable` instance (#7691). However, a subtle behavior difference was missed (see #14417 for a similar issue). - `Dictionary`'s implementation of [`IDictionary.GetEnumerator`](https://github.com/dotnet/coreclr/blob/04d6bd105ade5f6189a15a6dbb59b082613429a1/src/mscorlib/src/System/Collections/Generic/Dictionary.cs#L703-L705) returns a `DictionaryEntry` enumerator, which matches `Hashtable`. Since the return type of `RetrieveStatistics` is `IDictionary`, the default behavior of enumerating the result as-is (without casting away from `IDictionary`) is the same as `Hashtable`. - However, if the result is cast from `IDictionary` to `IEnumerable`, `Dictionary`'s [`IEnumerable.GetEnumerator`](https://github.com/dotnet/coreclr/blob/04d6bd105ade5f6189a15a6dbb59b082613429a1/src/mscorlib/src/System/Collections/Generic/Dictionary.cs#L601-L603) implementation will return a `KeyValuePair` enumerator, which does not match `Hashtable`'s behavior of returning a `DictionaryEntry` enumerator. This PR changes the `Hashtable`-compatible subclass's `IEnumerable.GetEnumerator` implementation to return a `DictionaryEntry` enumerator to match `Hashtable`. Updated tests pass on the full framework, fail before the src changes, and pass after the src changes. Note that this is technically a breaking change from .NET Core 1.0/1.1. However, publicly available [telemetry](https://apisof.net/catalog/System.Data.SqlClient.SqlConnection.RetrieveStatistics()) shows 0% usage of this API, and the default behavior of enumerating the resulting `IDictionary` as-is without casting to `IEnumerable` isn't changing, which makes me think this is a fairly low-risk change that's worth making to be more compatible with the full framework. An alternative fix would be to just re-establish the direct dependency on `System.Collections.NonGeneric` and change this back to returning `Hashtable` for the next version of .NET Core since some of `System.Data.SqlClient`'s dependencies now depend on `System.Collections.NonGeneric` (due to the .NET Standard 2.0 effort), which would allow deleting the private `StatisticsDictionary` subclass. If this is preferred, I can update the PR. cc: @saurabh500, @stephentoub +14437 area-System.Net Test failure: System.Net.Http.Functional.Tests.PostScenarioTest/PostLongerContentLengths_UsesChunkedSemantics(contentLength: 64512) Opened on behalf of @jiangzeng The test `System.Net.Http.Functional.Tests.PostScenarioTest/PostLongerContentLengths_UsesChunkedSemantics(contentLength: 64512)` has failed. Assert.Equal() Failure Expected: Byte[] [233, 69, 26, 4, 195, ...] Actual: Byte[] [35, 127, 1, 68, 167, ...] Stack Trace: at System.Net.Http.Functional.Tests.TestHelper.VerifyResponseBody(String responseContent, Byte[] expectedMD5Hash, Boolean chunkedUpload, String requestBody) at System.Net.Http.Functional.Tests.PostScenarioTest.d__22.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.PostScenarioTest.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20161211.02 (Core Tests) Failing configurations: - Centos.71.Amd64 - AnyCPU-Debug - AnyCPU-Release - Debian.82.Amd64 - AnyCPU-Debug - AnyCPU-Release - Fedora.23.Amd64 - AnyCPU-Debug - Ubuntu.1404.Amd64 - AnyCPU-Debug - Ubuntu.1604.Amd64 - AnyCPU-Debug - AnyCPU-Release - Redhat.72.Amd64 - AnyCPU-Release - Suse.132.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161211.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.PostScenarioTest~2FPostLongerContentLengths_UsesChunkedSemantics(contentLength:%2064512) +14439 area-System.Linq Lack of validation in CopyTo impls in Expressions The collections returned by several methods within Linq.Expressions (`Expressions` property on blocks, `Parameters` property on lambdas, `Argument` properties of invocations. method calls and dynamic expressions) fail to correctly validate `CopyTo` arguments. At best this leads to the wrong exception being thrown. At worse if the destination array is too large for the copy the copy will be partially done, rather than an atomic succeed-or-fail. +14440 area-System.Linq Validate CopyTo calls on collections with S.L.Expressions. Fixes #14439 +14441 area-Infrastructure Update CoreClr, CoreFx, ProjectNTfs to beta-24813-01, beta-24813-02, beta-24813-01, respectively (master) +14442 area-System.IO Resolve ~ in non-windows systems in Path.GetFullPath() "Essentially, this is the problem I'm facing Path.GetFullPath(""~/Documents/Temp""); It searches for the the path ""~/Documents/Temp"" relative to my project folder; but I actually need is the ~/Documents/Temp from the root not from the project path. This is because I don't want to store all uploaded files in a folder underneath my project folder but in another folder (""possible in another drive or a Network Path""). How is it possible to do this because I'm not getting the actual path no matter what I tried. Thanks!" +14443 area-System.Linq Faster iterator-unfriendly System.Linq methods Thanks to [a recent PR](https://github.com/dotnet/corefx/pull/14418), I knew about a curious bipartition in the performance of the iterator-optimised (i.e., relying on `yield` or `Yield`) methods: what performs well in an iterating scenario (e.g., `foreach(var item in YieldMethod()){ }`) might perform bad in a returning one (e.g., `var outputCollection = YieldMethod();`) and vice versa. In that PR, I suggested an improved version of `System.Linq.Intersect`. The new version delivers notably better (around 40% faster under a wide variety of conditions on a not-too-powerful computer) and worse performances for returning (e.g., `var output = collection1.Intersect(collection2);`) and iterating (e.g., `foreach(var item in collection1.Intersect(collection2)){}`) scenarios, respectively. My proposal couldn't go through because of not representing a real improvement (even if all the performance gains would be bigger than the losses, a relevant number of scenarios performing notably worse wouldn't be acceptable). Although modifying the existing `System.Linq.Intersect` isn't reasonable, creating an alternative method performing notably faster when getting the collection (rather than right away iterating through it) sounds fine to me. Do you want to rely on an alternative which performs reasonably well in any case? Use `System.Linq.Intersect`. Are you sure that you want to get the collection (and iterate through it right afterwards or at a later point or even don't iterate through it at all)? Use the notably faster new alternative. Before going ahead with my proposal, I want to highlight the tremendous importance of the `System.Linq` methods, which are being systematically used on virtually any situation. Note that I am not the kind of programmer liking very small code and always relying on this kind of approaches; I don't care about writing much bigger codes if they perform better or are clearer or easily modifiable. But I do use `System.Linq` methods on a regular basis; at least, some of them. Getting notably-better-performing versions of these methods would have a notable impact on my coding approach. Actually, I wasn't using `Intersect` too much lately precisely because of having confirmed its not-that-good-performance under many different conditions. What I am proposing is a new `class` (e.g., `System.LinqFast`) including returning-scenario-optimised versions for all the `System.Linq` methods. Although I have only analysed the `Intersect` and `Except` (virtually identical to `Intersect`) codes, can safely assume that equivalent ideas are applicable to the other methods because of the observed noticeable performance differences between the iterating/returning scenarios. That is, either the current methods are adequately optimised for iteration purposes (+ likeliness of a different version performing notably better for the returning-scenario) or they might be further optimised on this front (also a positive output for this proposal). As an example of the kind of modifications which are likely to define each of the aforementioned scenarios, take a look at the `Intersect` codes in my aforementioned PR: Original code (by bearing in mind that `comparer` is always `null` and [the definition of the Set internal class](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Set.cs)): ```C# private static IEnumerable IntersectIterator(IEnumerable first, IEnumerable second, IEqualityComparer comparer) { Set set = new Set(comparer); foreach (TSource element in second) { set.Add(element); } foreach (TSource element in first) { if (set.Remove(element)) { yield return element; } } } ``` Notably-faster-for-returning-scenarios alternative: ```C# private static IEnumerable IntersectIteratorNew(IEnumerable first, IEnumerable second) { IEnumerable first2 = first.Distinct(); IEnumerable second2 = second.Distinct(); foreach (TSource element in first2) { if (second2.Contains(element)) { yield return element; } } } ``` There are also other approaches which are appreciably faster than the current code for returning scenarios. For example: ```C# private static IEnumerable IntersectIteratorNew2(IEnumerable first, IEnumerable second) { List done = new List(); foreach (TSource element in first) { if (done.Contains(element)) continue; foreach (TSource element2 in second) { if (done.Contains(element2)) continue; if ((element == null && element2 == null) || element2.Equals(element)) { done.Add(element); yield return element; } } } } ``` The underlying idea to these codes is that the `yield` statement (when being called inside an iterator) penalises the reliance on external (iterating) methods (e.g., `Contains`). This fact makes a-priori-worse-performing alternatives (e.g., adding/removing items to/from a third collection, rather than loops + calling the efficient `Contains` method) ideal under iterating conditions, but certainly improvable for other scenarios. As far as this proposal implies quite relevant modifications and I don't know what are the .NET team/community positions on this front, I will better not analyse other methods for the time being. In case of seeing some positive feedback (and certainly before writing the definitive proposal), I wouldn't mind to analyse other `System.Linq` methods (by bearing in mind that `Except` is very similar to `Intersect` and, consequently, all the aforementioned ideas apply to it too). In case of deciding to go ahead, I would like to take care of the implementation myself. +14444 area-System.Linq Reduce time taken to test StackGuard and move to innerloop. We have a test that verifies that `Expression` compilation is protected against stack overflow in the case of compiling deep expression trees, but forcing a case that would cause such a problem by necessity requires a large tree that takes a long time to compile, so the test is outerloop only. Forcing the compilation to happen on the smallest possible stack reduces the size of tree that would risk a stack overflow, and so can test the same functionality in less than a second. Do this, and move the test to innerloop. +14445 area-System.Net System.Net.Http 4.3.0 oob conflicts with framework assembly with target net462 "Hi, These are the steps to reproduce the issue : - Create a classic desktop library project in 462 - Add a nuget package ""Microsoft.AspNetCore.Authentication"" version ""1.1.0"" => This package targets both .NETFramework4.5.1 and .NETStandard1.3 with a dependency on NETStandard.Library 1.6.1 and has a framework assembly dependency on System.Net.Http for 4.5.1 ``` ``` => NETStandard.Library 1.6.1 has a dependency on System.Net.Http 4.3.0 for target NETStandard1.3 - In Class1.cs, add public static HttpClient client = new HttpClient(); // should bind to version 4.1.1.0 - nuget pack the csproj (using nuget latest version 3.5.0 rtm or 3.6.0) - Create a core console app project targerting net462 - Reference the newly created package - In Program.cs, add Console.WriteLine(ClassLibrary2.Class1.client.GetType().FullName); - Run - An exception FileNotFoundException is thrown about ""System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" From what I understand, all binaries should be using System.Net.Http 4.3.0 with a binding redirect from framework version. project.lock.json shows that System.Net.Http is resolved from frameworkAssemblies ``` "".NETFramework,Version=v4.6.2"": { ""ClassLibrary2/1.0.0"": { ""type"": ""package"", ""dependencies"": { ""Microsoft.AspNetCore.Authentication"": ""1.1.0"" }, ""compile"": { ""lib/net462/ClassLibrary2.dll"": {} }, ""runtime"": { ""lib/net462/ClassLibrary2.dll"": {} } }, ""Microsoft.AspNetCore.Authentication/1.1.0"": { ""type"": ""package"", ""dependencies"": { ""Microsoft.AspNetCore.DataProtection"": ""1.1.0"", ""Microsoft.AspNetCore.Http"": ""1.1.0"", ""Microsoft.AspNetCore.Http.Extensions"": ""1.1.0"", ""Microsoft.Extensions.Logging.Abstractions"": ""1.1.0"", ""Microsoft.Extensions.Options"": ""1.1.0"", ""Microsoft.Extensions.WebEncoders"": ""1.1.0"", ""NETStandard.Library"": ""1.6.1"" }, ""frameworkAssemblies"": [ ""System.Net.Http"" ], ``` If I create another classic desktop 462 project, add System.Net.Http 4.3.0 and reference this project from the core console app. Then, project.lock.json is the same, but System.Net.Http 4.1.1.0 is copied to bin directory and a binding redirect is correctly generated as expected. ``` ``` If you remove this last reference from project.json, rebuilding the project leave the binding redirect and assembly. Clean do not empty the bin directory and you must empty it manually to have the issue again. This leds to situation where you think it works while it will not when built from scratch. ``` Microsoft .NET Core Shared Framework Host Version : 1.1.0 Build : 928f77c4bc3f49d892459992fb6e1d5542cb5e86 ``` and ``` ""sdk"": { ""version"": ""1.0.0-preview2-1-003177"" } ``` I don't understand why the framework assembly is chosen over the oob version. Sample repo : https://github.com/cortex93/TestNetHttpRef " +14447 area-System.Runtime Move EditorBrowsableAttribute to Private.CorLib We have multiple cases where we need to hide methods in Private.CorLib from IntelliSense: - `Deconstruct` method on `KeyValuePair` and `DictionaryEntry` - #13746 - We can work around by shipping the method as Extension method - `Span` methods `Equals` and `GetHashCode` - https://github.com/dotnet/coreclr/pull/8583#issuecomment-266245506 - No workaround There is a risk that we won't be able to move the Attribute to mscorlib on Desktop (similar to fallout from moving `ExtensionAttribute` down - see https://github.com/dotnet/corefx/issues/13746#issuecomment-265829858) Desktop options: 1. Deal with the impact of the type being moved in Desktop (compat fallout). 2. Don't attribute the methods on Desktop p i.e. they will be visible to IntelliSense on Desktop. - Question for @weshaggard: The attribute matters only for ref. What if the attribute is there in .NET Standard and in Desktop ref, but left out in Desktop implementation? Is that an option? 3. Don't port these methods to Desktop - i.e. they can't be part of .NET Standard. 4. Provide the methods as extension methods on Desktop - i.e. they can't be part of .NET Standard. +14448 area-System.Xml Fix line ending bug in XSLT test Fixes https://github.com/dotnet/corefx/issues/14148. The test failed because of whitespace differences between two strings on some platforms. cc: @danmosemsft @stephentoub +14451 area-System.Net The SslStream implementation will not match f*.com and foo.com. This decision was taken together with the Windows Crypto team and should match the CAPI behavior. Fixes #3444 +14452 area-Infrastructure Build each configuration of corefx tools "Vertical build breaks "".builds"" file traversal. Explicitly build CoreFx tools projects. This will resume building the configurations which can be used statically during the build to determine configuration groups rather than using the dynamic groups. The work to actually transition to using the static configurations is up next.." +14453 area-Serialization Add tests for XmlSerializationGeneratedCode and CodeIdentifier. Add test coverage for CodeIdentifier methods in existing test. Add basic API test coverage for XmlSerializationGeneratedCode , which is for internal usage only. #10581 #10577 @shmao @zhenlan @mconnew +14454 area-Serialization System.Xml.EncodingStreamWrapper calls Flush on a read stream when being disposed EncodingStreamWrapper has two constructors, one for wrapping a stream for reading, and one for wrapping a stream for writing. When constructor a wrapper using the read constructor, the field _isReading is set to true (it's set to false when writing). In the Dispose(bool disposing) method, Flush is called on the wrapped stream regardless of whether the stream is only used for reading or not. If the wrapped stream doesn't implement Flush (and throws) because it's a read-only stream, this causes the Dispose() call to also throw. EncodingStreamWrapper should only call Flush if used to wrap a stream for writing. +14455 area-Infrastructure Local packages are installed in bin.localpkg The locally built packages are still installed in bin.localpkg, this is due to compression size issues in CI. +14456 area-Infrastructure build.sh requires logic to determine platform to filter on FilterToOSGroup build.sh requires FilterToOSGroup to be passed in for CI legs. `if [ $__IsCentos -eq 1 ] ; then ... elif [ $__IsOSX -eq 1 ] ; then ` +14457 area-Infrastructure build.sh requires ServerGC flag to be turned on in CI for Release builds "The following is stilll required for release builds. `export CORECLR_SERVER_GC=""$__ServerGC""`" +14458 area-Infrastructure Update Buildtools to 1.0.27-prerelease-01112-02 Fixes https://github.com/dotnet/buildtools/issues/1092 and https://github.com/dotnet/core-eng/issues/236 +14460 area-Infrastructure Start running tests against the built runtime folder. @joperezr @karajas This is an initial version of tests.targets that runs tests using corerun.exe and the live-built runtime. I also converted a handful of tests around the repo to make sure things were working with a few different random projects. +14462 area-System.Xml Fix XmlWriter Outerloop test failures Fixes https://github.com/dotnet/corefx/issues/6331 and https://github.com/dotnet/corefx/issues/1491 These tests were failing due to: **1)** Newline differences on Unix and Windows, **2)** Decimal point differences in some cultures cc: @danmosemsft @stephentoub @AlexGhiondea +14464 area-System.Linq Fill some gaps in S.L.Expression testing A few small bits that won't fall under a focus on any other section. Some array-expressions tests, mostly on aspects of non-szarrays. Test `TypeAs` expressions between nullables. Test fault and finally after many such blocks (catch regressions in a non-optimised path hit in this case). +14466 area-System.Collections Test failure: System.Collections.Generic.Tests.BadlyBehavingComparableComparersTests/Comparer_EqualsShouldBeOverriddenAndWorkForDifferentInstances Opened on behalf of @Jiayili1 The test `System.Collections.Generic.Tests.BadlyBehavingComparableComparersTests/Comparer_EqualsShouldBeOverriddenAndWorkForDifferentInstances` has failed. System.TypeInitializationException : The type initializer for 'System.RuntimeDetection' threw an exception.\r ---- System.PlatformNotSupportedException : Operation is not supported on this platform. Stack Trace: at System.Collections.Generic.Tests.ComparersGenericTests`1.Comparer_EqualsShouldBeOverriddenAndWorkForDifferentInstances() in D:\A\_work\38\s\corefx\src\System.Collections\tests\Generic\Comparers\Comparer.Generic.Tests.cs:line 34 ----- Inner Stack Trace ----- at System.Runtime.InteropServices.RuntimeInformation.get_FrameworkDescription() at System.RuntimeDetection..cctor() in D:\A\_work\38\s\corefx\src\Common\tests\System\RuntimeDetection.cs:line 12 Build : Master - 20161213.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161213.02/workItem/System.Collections.Tests/analysis/xunit/System.Collections.Generic.Tests.BadlyBehavingComparableComparersTests~2FComparer_EqualsShouldBeOverriddenAndWorkForDifferentInstances +14467 area-Infrastructure System.Runtime.InteropServices.RuntimeInformationTests.CheckArchitectureTests/VerifyArchitecture missing Binding redirect Opened on behalf of @Jiayili1 The test `System.Runtime.InteropServices.RuntimeInformationTests.CheckArchitectureTests/VerifyArchitecture` has failed. System.PlatformNotSupportedException : Operation is not supported on this platform. Stack Trace: at System.Runtime.InteropServices.RuntimeInformation.get_OSArchitecture() at System.Runtime.InteropServices.RuntimeInformationTests.CheckArchitectureTests.VerifyArchitecture() in D:\A\_work\38\s\corefx\src\System.Runtime.InteropServices.RuntimeInformation\tests\CheckArchitectureTests.cs:line 15 Build : Master - 20161213.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161213.02/workItem/System.Runtime.InteropServices.RuntimeInformation.Tests/analysis/xunit/System.Runtime.InteropServices.RuntimeInformationTests.CheckArchitectureTests~2FVerifyArchitecture +14468 area-System.Xml Test failure: System.Xml.Linq.Tests.RegressionTests/CreatingNewXElementsPassingNullReaderAndOrNullXNameShouldThrow failed with 'System.MissingMethodException' Opened on behalf of @Jiayili1 The test `System.Xml.Linq.Tests.RegressionTests/CreatingNewXElementsPassingNullReaderAndOrNullXNameShouldThrow` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentNullException)\r Actual: typeof(System.MissingMethodException): Method not found: 'System.Xml.Linq.XNode System.Xml.Linq.XNode.ReadFrom(System.Xml.XmlReader)'. Stack Trace: at System.Xml.Linq.Tests.RegressionTests.<>c.b__9_1() Build : Master - 20161213.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161213.02/workItem/System.Xml.Linq.Misc.Tests/analysis/xunit/System.Xml.Linq.Tests.RegressionTests~2FCreatingNewXElementsPassingNullReaderAndOrNullXNameShouldThrow +14469 area-Infrastructure Update corefx build configurations for Fedora 24 and 25 With Fedora 23 EOL on Dec 20, 2016 the corefx build configurations should be updated to support source builds on Fedora 24 and 25. release/1.1.0: - seems to have build configuration for Fedora 24 but it is not mentioned in README.md - needs a build configuration for Fedora 25 - build & test status in README.md should include Fedora 24 and 25 instead of 23. release/1.0.0: - needs build configurations for Fedora 24 and 25 - build & test status in README.md should include Fedora 24 and 25 instead of 23. +14471 area-Infrastructure Update CoreClr to servicing-24813-02 (release/1.1.0) +14472 area-Infrastructure Update CoreClr, CoreFx, ProjectNTfs to beta-24814-02, beta-24814-01, beta-24814-00, respectively (master) +14473 area-System.Linq Revert System.Linq assembly version bump? #13726 added a new System.Linq API so the minor assembly version was incremented, but it sounds like the version change needs to be reverted according to @joperezr's comment: https://github.com/dotnet/corefx/pull/13828#discussion_r90931863 cc: @ericstj, @JonHanna, @stephentoub +14474 area-Infrastructure Use Win32 API lists from buildtools Remove the local copies of Win32 API lists, and use the lists from buildtools instead. Fixes issue #13738. +14475 area-Infrastructure Update targetgroup configurations Add version-less target groups for netstandard, netcoreapp, and netfx. This will imply the map to the latest versions. Also cleaned out a couple targets which aren't needed. cc @ericstj +14476 area-Infrastructure Clean-up batch restoring of packages. This cleans out a lot of the project.json batch restoring, validation, and generation from the build.proj. Also enables restoring of packages for individual projects again. We well eventually move all projects that need restoring under external so we can keep them isolated from the rest of the build. cc @ericstj @mellinoe @joperezr @chcosta @karajas This gets build.cmd call down to only a couple minutes now on my machine. +14478 area-System.Security Fix CryptoStream multithreading test issue Fixes test threading issue https://github.com/dotnet/corefx/issues/13966 The underlying problem is a race condition with the call to WriteAsync and the call to Dispose on the same instance (and same time) of CryptoStream. I can repro the issue with a single call to WriteAsync in the test. The fix is to add lock() statements to the two areas that are in the race condition so they both don't modify the same state. The Dispose calls IdentityTransform.TransformFinalBlock class (which is a test class) and can cause `len` to be -5 in the error case: ```c# private sealed class IdentityTransform : ICryptoTransform { ... private readonly bool _canTransformMultipleBlocks; private long _writePos, _readPos; private MemoryStream _stream; public byte[] TransformFinalBlock(byte[] inputBuffer, int inputOffset, int inputCount) { _stream.Position = _writePos; _stream.Write(inputBuffer, inputOffset, inputCount); _stream.Position = _readPos; >>-5 long len = _stream.Length - _stream.Position; byte[] outputBuffer = new byte[len]; _stream.Read(outputBuffer, 0, outputBuffer.Length); _stream = new MemoryStream(); _writePos = 0; _readPos = 0; return outputBuffer; } ```` +14480 area-System.Net ManagedWebSocket HTTP scenarios implementation Tracking the implementation of the following items: - [ ] ClientWebSocketOptions.UseDefaultCredentials - [ ] ClientWebSocketOptions.Credentials - [ ] ClientWebSocketOptions.Proxy - [ ] ClientWebSocketOptions._sendBufferSize +14481 area-System.Net Adding tracking issue for ManagedWebSocket missing features. Regarding #14480 +14482 area-Infrastructure Make Test projects compile against the Targeting pack. (1/3 of the work) Fixes #14351 cc: @mellinoe @weshaggard @ericstj +14483 area-Infrastructure Remove test feed override of ToolPackageSource in checked-in build definitions Removing this environment variable allows the build to use the default feed defined in the Fetch-Tools.ps1 official build script, `https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json`, rather than overriding that to point at my test feed. (The package it's looking for is [EmbedIndex](https://dotnet.myget.org/feed/dotnet-buildtools/package/nuget/EmbedIndex).) I made this change manually to the old shared publish def and the corefx 1.1.0 def. @chcosta Does this look ok? /cc @ericstj +14484 area-System.Memory Span: Enable IndexOverflow test when FastSpan.GetItem is implemented Related: issue #13681 There is no public ref T GetItem(int index) method implementation in Fast Span. It is unclear if we want this method at all or if the indexer is sufficient. Therefore, the overflow test has been disabled until the above issue has been resolved and we either get the missing implementation or adjust the test. +14485 area-System.IO Question: How to use ZipArchive in aspnet core I try to generate zip file on the fly though ZipArchive in an aspnet core program. In various places, ZipArchive access the base stream's Position property, which throw NotImplementedException in the aspnet core's FrameResponseStream. For now, I have to wrap the FrameResponseStream in yet another wrap and implement the Position property. Is there a better way to handle that? Thank you. I think it is easy to trace these position inside the ZipArchive instead of depend on external base stream's Position property +14486 area-System.Memory Span: DangerousCreate should avoid argument validation For Span/ReadOnlySpan DangerousCreate method, should we remove the following test cases to increase performance: * SpanTests - DangerousCreateNullObject * SpanTests - DangerousCreateBadLength * ReadOnlySpanTests - DangerousCreateNullObject * ReadOnlySpanTests - DangerousCreateBadLength It was suggested that the Fast and Slow Span implementations should not do the check/throw on null object or negative lengths to speed up creation of the instance of Span/ReadOnlySpan. That is, these checks should be removed: ```C# public static ReadOnlySpan DangerousCreate(object obj, ref T objectData, int length) { if (obj == null) ThrowHelper.ThrowArgumentNullException(ExceptionArgument.obj); if (length < 0) ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument.length); ``` Should they be removed? +14487 area-System.Linq Tests maintaining compat in when Linq Contains uses ICollection.Contains cc @stephentoub +14488 area-System.Diagnostics ExcludeFromCodeCoverageAttribute cannot be applied to assemblies We have added `ExcludeFromCodeCoverageAttribute` back into our public API's as part of the .NET Standard 2.0 work. We've been using a local version of this attribute in many of our test assemblies in order to control what shows up in our code coverage reports. The public version we are now exposing does not allow the attribute to be applied to assemblies, so our test assemblies cannot use the public version of the attribute. Test assemblies can continue using the internal version of the attribute, but then we get ambiguity warnings from the compiler, which we need to suppress. We could potentially just allow the .NET Core version of the attribute to be applied to assemblies, even though the .NET Framework version doesn't allow it. @weshaggard +14489 area-Infrastructure Use static configurations for building a vertical Disables the dynamic determination of groups and uses the static configuration files produced by src\Tools. /cc @weshaggard @ericstj +14491 area-Infrastructure Temporarily disable package publishing This is currently breaking official builds in the branch because we don't produce the correct set of packages from the build right now. This will (hopefully) get the official build clean and we can rever this once we have packages being built again. +14492 area-Infrastructure Vertical build from source cleanup tasks Post PR (https://github.com/dotnet/corefx/pull/14171) cleanup tasks - [x] Enable building System.Private.Xml.Linq - [x] Enable building System.Runtime.Serialization.Formatters - [x] Enable building System.Threading.Overlapped - [x] Eliminate duplication between src\ref.builds, src\src.builds and GatherProjectsForVerticalBuild in buildvertical.targets - [x] eliminate duplication in buildvertical.props - [x] Fix Property / Item names and general code cleanup in buildvertical.targets - [x] Output binaries to spec location - [x] Properly derive BuildConfiguration (currently hard-coded to `netcoreapp1.1-$(OS)` - [ ] System.runtime.InteropServices.RuntimeInformation, investigate the GeneratePlatformNotSupportedAssembly Condition which I've temporarily disabled - [x] Enable building System.Runtime.CompilerServices.Unsafe.ilproj - [x] Move TargetsOS properties into Configurations.props? - [x] Cleanup all the duplicated definitions for AnnotateProjectsWithConfiguration (currently in buildvertical.targets, dir.targets, dir.traversal.targets) - [ ] Programmatically determine References for Unix - [x] Ignored references to System.Threading.Overlapped and System.Runtime.Serialization.Formatters in Microsoft.Private.CoreFx.NetCoreApp package, re-enable after building those references again. - [x] ref\System.Runtime.Extensions configurations are currently set to netstandard1.7 because netcoreapp1.1 was failing to build, fix the build and add netcoreapp1.1 to the configurations. +14494 area-Infrastructure Updating CoreClr dependencies to servicing-24814-01 +14495 area-Meta After upgrading NetStandard.Library from 1.6.0 to 1.6.1, getting FileLoadException. "After upgrading my library's dependency on NetStandard.Library from 1.6.0 to 1.61, my unit tests fail: System.IO.FileLoadException: Could not load file or assembly 'System.Net.Sockets, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. My library's json: { ""supports"": {}, ""dependencies"": { ""Microsoft.Extensions.Logging"": ""1.1.0"", ""Microsoft.NETCore.Portable.Compatibility"": ""1.0.1"", ""NETStandard.Library"": ""1.6.1"", ""Portable.BouncyCastle"": ""1.8.1.2"", ""StyleCop.Analyzers"": ""1.0.0"", ""System.Threading.Tasks.Dataflow"": ""4.7.0"" }, ""frameworks"": { ""netstandard1.3"": {} } } My unit test's json: { ""dependencies"": {}, ""frameworks"": { "".NETFramework,Version=v4.6.1"": {} }, ""runtimes"": { ""win"": {}, ""win-x86"": {}, ""win-x64"": {}, ""win-arm"": {} } } The full project is at https://github.com/convertersystems/opc-ua-client. thanks, Andrew ps: Projects that use this library from a package work just fine. It's just the solution's unit tests with a problem. " +14496 area-System.Text Time to revisit need to register code pages provider? "I'm working on localization of dotnet/cli itself and I hit an issue where csc on .NET Core on Windows can give me garbled text if I'm on a non English machine with corresponding satellite assemblies present. The root cause is https://github.com/dotnet/corefx/issues/10054. I'm going to have to ensure that msbuild, cli, and roslyn all call Encoding.RegisterProvider(CodePagesEncodingProvider.Instance) before outputting anything to the console in non-English locales. I'm concerned that this pain point for .NET Core on Windows is not worth the benefit of making the code page data ""optional"". I say optional in quotes because the shared framework carries System.Text.Encoding.CodePages.dll and if I publish a standalone .NET Core app with our tools and the usual steps, System.Text.Encoding.CodePages is copied in to my app folder. Is anyone actually getting the benefit of not having System.Text.Encoding.CodePages? Given the high likelihood of System.Text.Encoding.CodePages.dll being present in practice, could System.Console light-up on it somehow? i.e. If it's there next to System.Console.dll, then use it regardless of whether register has been called whenever the console code page is not UTF8 and text outside ASCII range is written? @terrajobst @tarekgh @karelz FYI @piotrpMSFT @cdmihai @jaredpar " +14501 area-Infrastructure Update projects to netcoreapp2.0 / netstandard2.0 / net461 We need to update our projects to build against these new monikers and package as the same. Since netstandard2.0 is supported by net461 most desktop builds should be targeting this version rather than net463. +14502 area-System.Collections Add IsEmpty property to ArraySegment ArraySegment can be created as empty by using `default(ArraySegment)` or using `ArraySegment.Empty` property. If we try execute any operation on such segment then it will throw invalid operation exception. To protect from calling such operations I suggest to add `IsEmpty` property to `ArraySegment`. Also most operation do nothing if segment has zero length. And user code can use `IsEmpty` property to improve performance for empty segment. As additional, structures `Span` and `ReadOnlySpan` have `IsEmpty` properties already. ```cs namespace System { public struct ArraySegment { public bool IsEmpty => Count == 0; } } ``` +14503 area-Infrastructure Packages threw exception '[Error 267] The directory name is invalid' & '[Error 2] The system cannot find the file specified' "No results generated. For win8 & win7: [Error 267] The directory name is invalid' ``` 2016-12-14 03:11:58,546: WARNING: proc(37): run_and_log_output: Could not find C:\dotnetbuild\work\6e004e14-ed1e-4b54-97ec-08d5c930039a\Work\7beb0736-c746-4508-9354-7277b7be03a8\Unzip\RunTests.cmd on disk. Execution may fail. 2016-12-14 03:11:58,551: ERROR: logs(86): _log_uncaught_exception: Unhandled error: [Error 2] The system cannot find the file specified [' File ""C:\\dotnetbuild\\work\\6e004e14-ed1e-4b54-97ec-08d5c930039a\\Payload\\RunnerScripts\\scriptrunner\\scriptrunner.py"", line 91, in \n sys.exit(main())\n', ' File ""C:\\dotnetbuild\\work\\6e004e14-ed1e-4b54-97ec-08d5c930039a\\Payload\\RunnerScripts\\scriptrunner\\scriptrunner.py"", line 87, in main\n return command_main(_main, [\'script=\'], args)\n', ' File ""C:\\dotnetbuild\\scripts\\helix\\cmdline.py"", line 47, in command_main\n return main_method(settings, optlist, args)\n', ' File ""C:\\dotnetbuild\\work\\6e004e14-ed1e-4b54-97ec-08d5c930039a\\Payload\\RunnerScripts\\scriptrunner\\scriptrunner.py"", line 44, in _main\n env=None\n', ' File ""C:\\dotnetbuild\\scripts\\helix\\proc.py"", line 46, in run_and_log_output\n shell=False)\n', ' File ""C:\\Python\\lib\\subprocess.py"", line 710, in __init__\n errread, errwrite)\n', ' File ""C:\\Python\\lib\\subprocess.py"", line 958, in _execute_child\n startupinfo)\n'] 2016-12-14 03:11:58,555: INFO: azure_storage(199): _upload: Uploading single blob: '4e0759f44fa245fc84ec7861ab2fe091.log' 2016-12-14 03:11:59,009: INFO: saferequests(90): request_with_retry: Response complete with status code '201' ``` For win10: [Error 2] The system cannot find the file specified ``` 2016-12-14 03:18:59,398: WARNING: proc(37): run_and_log_output: Could not find C:\dotnetbuild\work\d15e87c1-82b1-40b9-a105-2832e5527c53\Work\53280074-1a02-42e9-896a-59d31484f86e\Unzip\RunTests.cmd on disk. Execution may fail. 2016-12-14 03:18:59,398: ERROR: logs(86): _log_uncaught_exception: Unhandled error: [Error 2] The system cannot find the file specified [' File ""C:\\dotnetbuild\\work\\d15e87c1-82b1-40b9-a105-2832e5527c53\\Payload\\RunnerScripts\\scriptrunner\\scriptrunner.py"", line 91, in \n sys.exit(main())\n', ' File ""C:\\dotnetbuild\\work\\d15e87c1-82b1-40b9-a105-2832e5527c53\\Payload\\RunnerScripts\\scriptrunner\\scriptrunner.py"", line 87, in main\n return command_main(_main, [\'script=\'], args)\n', ' File ""C:\\dotnetbuild\\scripts\\helix\\cmdline.py"", line 47, in command_main\n return main_method(settings, optlist, args)\n', ' File ""C:\\dotnetbuild\\work\\d15e87c1-82b1-40b9-a105-2832e5527c53\\Payload\\RunnerScripts\\scriptrunner\\scriptrunner.py"", line 44, in _main\n env=None\n', ' File ""C:\\dotnetbuild\\scripts\\helix\\proc.py"", line 46, in run_and_log_output\n shell=False)\n', ' File ""C:\\Python\\lib\\subprocess.py"", line 710, in __init__\n errread, errwrite)\n', ' File ""C:\\Python\\lib\\subprocess.py"", line 958, in _execute_child\n startupinfo)\n'] 2016-12-14 03:18:59,398: INFO: azure_storage(199): _upload: Uploading single blob: 'f7e71ee5ee4f4089bfeffc987e84636d.log' ``` Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161214.01/workItem/Packages Build : Master - 20161214.01 (Core Tests) Failing configurations: Win81, Win7 & Win10" +14504 area-System.Net Test failure: System.Net.Security.Tests.ServerAllowNoEncryptionTest/ServerAllowNoEncryption_ClientRequireEncryption_ConnectWithEncryption Opened on behalf of @jiangzeng The test `System.Net.Security.Tests.ServerAllowNoEncryptionTest/ServerAllowNoEncryption_ClientRequireEncryption_ConnectWithEncryption` has failed. System.IO.IOException : Authentication failed because the remote party has closed the transport stream. Stack Trace: at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.ServerAllowNoEncryptionTest.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20161214.01 (Core Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161214.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.ServerAllowNoEncryptionTest~2FServerAllowNoEncryption_ClientRequireEncryption_ConnectWithEncryption +14505 area-System.Threading Test failure: System.Threading.Tasks.Dataflow.Tests.ActionBlockTests/TestFaulting Opened on behalf of @jiangzeng The test `System.Threading.Tasks.Dataflow.Tests.ActionBlockTests/TestFaulting` has failed. Assert.Equal() Failure Expected: 0 Actual: 1 Stack Trace: at System.Threading.Tasks.Dataflow.Tests.ActionBlockTests.d__14.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20161214.01 (Core Tests) Failing configurations: - Suse.132.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161214.01/workItem/System.Threading.Tasks.Dataflow.Tests/analysis/xunit/System.Threading.Tasks.Dataflow.Tests.ActionBlockTests~2FTestFaulting +14506 area-System.Diagnostics Fixed error in example code +14507 area-System.Memory Span: Create Span from IntPtr (ReadOnly)Span\ is designed so that it can point to native memory. So far, native memory is typically represented by a SafeHandle (e.g., SafeMemoryMappedViewHandle) or an IntPtr (e.g., as returned by Marshal.AllocHGlobal). It will probably a common use case to create a (ReadOnly)Span\ from these. *Proposal:* Add a constructor overload that accepts an IntPtr and a length: ```diff public struct Span { + public Span(IntPtr pointer, int length) { ... } public struct ReadOnlySpan { + public ReadOnlySpan(IntPtr pointer, int length) { ... } ``` *Example Usage 1:* ```csharp int length = 4096; SafeHandle handle = VirtualAlloc(IntPtr.Zero, new IntPtr(length), 0x3000, 0x04); bool addedRef = false; try { handle.DangerousAddRef(ref addedRef); MyMethod(new Span(handle.DangerousGetHandle(), length)); } finally { if (addedRef) { handle.DangerousRelease(); } } ``` *Example Usage 2:* ```csharp int length = 512; IntPtr hglobal = Marshal.AllocHGlobal(length); try { MyMethod(new Span(hglobal, length)); } finally { Marshal.FreeHGlobal(hglobal); } ``` There is currently a constructor overload that accepts a void* and a length, and an IntPtr can of course easily be converted to a void* using the IntPtr.ToPointer method. However, this requires `true` and is the only instance in the API surface where an `unsafe` code block is required. It would be nice if spans could be used without `unsafe` code blocks. IMHO requiring `unsafe` when working with native memory doesn't really make things safer since there are already methods like Marshal.ReadInt32 that can be used to read or write arbitrary native memory through an IntPtr. +14508 area-System.Linq Update S.L.E to compile when NO_FEATURE_STATIC_DELEGATE and FEATURE_MAKE_RUN_METHODS are defined +14509 area-System.Linq Remove enum → underlying unwrapping in expression instruction ctors Incorrect (should be `type.GetNonNullableType().GetTypeInfo().IsEnum ? Enum.GetUnderlyingType(type.GetNonNullableType()) …` to work consistently), unreachable in most cases, and has no effect on the subsequent calls `GetTypeCode()` anyway (as shown by it not being an error when it hits that incorrect point). @bartdesmet I'm generally keeping away from the `Instruction` classes while you do your templating, but I think this case might help, as there's a bit less difference between different instruction types after it, but if it's conflicting with you I can hold back on it. +14510 area-System.Runtime EntryPointNotFoundException on .NET Core on Linux "I want to prepare a wrapper library for a 3rd party library on linux I've created 2 simple functions, and from another C++ program they execute without a problem also .. I've tried to use system library (libc) and it works without issues: [System.Runtime.InteropServices.DllImport(""libc"")] public static extern int puts(string str); puts(""some test string""); // <- this works however, when I try to use my 2 simple function from my wrapper library, I'm getting EntryPointNotFoundException exception here is the code: [System.Runtime.InteropServices.DllImport(""mywrapper"")] public static extern void TestFunc1(); [System.Runtime.InteropServices.DllImport(""mywrapper"")] public static extern string TestFunc2(); Unhandled Exception: System.EntryPointNotFoundException: Unable to find an entry point named 'TestFunc1' in DLL 'mywrapper'. the library is found, and from C++ these two functions just work also ... a DLLImport puts(const char *) works in .NET Core only my library has this problem any ideas ? " +14511 area-System.Linq Linq Cast does not call cast overloads Consider the following classes: ```cs public class A { public int Va { get; set; } public static implicit operator B(A a) { return new B { Vb = (long)a.Va }; } } public class B { public long Vb { get; set; } } ``` Class `A` has an overload to convert `A` into `B`. Now imagine we have a collection of `A`: ```cs var list = new List() { new A { Va = 1 }, new A { Va = 2 } }; ``` If we wanted to cast this list to `B`, one would assume to use `list.Cast().ToList()`. However, we are met with `InvalidCastException: Unable to cast object of type 'A' to type 'B'.` It seems that the source of this error is [from here](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Cast.cs#L51) where `CastIterator` iterates over each item as `object`. By changing this to `dynamic`, `.Cast()` works as expected with overloaded operators. Is this an acceptable PR to make, or is there a reason behind using `object` where `dynamic` would appear to provide more functionality? +14512 area-Infrastructure [dev/eng] Update build-test.cmd/sh so that it starts building and executing tests As part of this work, we should also update `netci.groovy` script so that we add a step of running build-tests.cmd/sh after running build.cmd +14513 area-Infrastructure Clean-up the batch restore and project.json generation stuff We removed the batch restore and project.json generation targets from build.proj (https://github.com/dotnet/corefx/pull/14476) but we have some more clean-up to do. In particular we need to clean-up config.json. We also have a bunch of stuff in BuildTools in this area that we should go in and clean out. cc @chchosta @karajas +14514 area-Infrastructure Updating CoreClr dependencies to servicing-24814-02 +14517 area-Infrastructure Updating CoreClr dependencies to servicing-24814-03 +14519 area-System.Net Make System.Net tests reliable We have lots of test failures. It is not efficient to track them in individual issues. This one tracks them all, until we are near-clean. +14520 area-Infrastructure Enable OOB / netstandard-based packages in dev/eng We've disabled all the package builds. We need to re-enable them once we decide on the workflow for building their contents. +14521 area-System.Collections Dictionary.GetValueOrDefault With dictionaries of class-types it is often desirable and expected to return null for a non-existent key. Close https://github.com/dotnet/corefx/issues/3482 +14523 area-Infrastructure Updating CoreClr dependencies to servicing-24814-03 Fixes #14517's merge conflict. +14524 area-Infrastructure Clean up tests.targets, bring it more in line with old tests.targets This fixes a couple of issues with tests.targets. I had initially cut some stuff out of the old version, and brought some of it back here. Namely, this stuff wasn't working but now is: * Test semaphore file * testresults.xml in the right folder * Supplemental test data being copied properly Stuff that still needs to be hooked up: * Code Coverage * Performance Tests @joperezr +14525 area-Infrastructure Update resolve contract cc @chcosta @ericstj This removes the contract project references and instead resolves from the targeting pack. You can look at the individual commits to see the exact changes. +14526 area-Serialization [1.0.x] Porting serialization fix to release branch and configuring it to build the two libs that we need to service for UWP @gkhanna79, @ericstj @yizhang82 , PTAL +14527 area-System.Reflection Reflection should check mscorlib for types In NetFX `Type.GetType()` would find types that weren't fully qualified in mscorlib. Now that we're going to ship the mscorlib facade we should probably mimic that behavior. See the following discussion: https://github.com/dotnet/corefx/pull/14498#discussion_r92474847 @weshaggard, @ericstj +14528 area-Infrastructure Facades need packaged. `System.dll` and others aren't currently part of the packages. @weshaggard, @ericstj +14529 area-System.Runtime Port System.Runtime.Caching to .NET Core In attempting to convert some libs to .NET Core for use in where .NET Core is growing (e.g., AWS Lambdas), I'm blocked on System.Runtime.Caching components or an equivalent. +14530 area-System.Threading System.Threading.Overlapped OverlappedTests.PropertyTest1 failed in CI Example failure log: https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/1435/consoleFull#-162473832179fe3b83-f408-404c-b9e7-9207d232e5fc ``` 15:39:37 OverlappedTests.PropertyTest1 [FAIL] 15:39:37 Assert.Equal() Failure 15:39:37 Finished: System.Threading.AccessControl.Tests 15:39:37 15:39:37 Expected: 2 15:39:37 Actual: 0 15:39:37 Stack Trace: 15:39:37 === TEST EXECUTION SUMMARY === 15:39:37 D:\j\workspace\windows_nt_re---37265eab\src\System.Threading.Overlapped\tests\OverlappedTests.cs(40,0): at OverlappedTests.PropertyTest1() ``` +14531 area-System.IO Move IdentityHelper & tests to common Had originally created this code for IsolatedStorage, needed to use it in Configuration as well. Just factoring it into common. +14532 area-Infrastructure Avoid unintended test runs and errors * Skip test runs where doesn`t have test cases for certain target, and generate errors with exit code 127. +14533 area-System.Memory Span: Fix array variance checks in slow Span Related to PR #14262 where the test got removed. - The test should be renamed to something like CtorVariantArrayType since the type is not wrong. - The test should confirm that the operation is succeeding, i.e. a ReadOnlySpan instance gets created successfully rather than checking that the method fails and throws. https://github.com/dotnet/corefx/pull/14262#discussion_r92521521 +14534 area-Infrastructure Make Test projects compile against the Targeting pack. (3/3 of the work) Fixes #14350 cc: @weshaggard @ericstj @mellinoe @karajas +14535 area-Infrastructure Update Buildtools to 1.0.27-prerelease-01115-01 /cc @MattGal +14536 area-System.Security Test failure: System.Security.Cryptography.X509Certificates.Tests.ChainTests/VerifyWithRevocation Opened on behalf of @jiangzeng The test `System.Security.Cryptography.X509Certificates.Tests.ChainTests/VerifyWithRevocation` has failed. Offline Chain Built Validly Expected: True Actual: False Stack Trace: at System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyWithRevocation() Build : Master - 20161214.02 (Core Tests) Failing configurations: - Fedora.23.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161214.02/workItem/System.Security.Cryptography.X509Certificates.Tests/analysis/xunit/System.Security.Cryptography.X509Certificates.Tests.ChainTests~2FVerifyWithRevocation +14537 area-System.Linq Add XML docs to some Linq iterators This PR adds XML comment documentation to many of the manual (class-based) iterators we have in Linq. I have not touched the `IGrouping` / `IOrderedEnumerable` related stuff because I haven't used that API too much yet. @JonHanna @stephentoub PTAL +14538 area-Infrastructure [linux/arm32] Add Xenial (Ubuntu 16.04) rootfs support for cross build We need to keep supported ROOTFS in sync across CoreCLR, CoreFX and Core-Setup. CoreCLR supports Ubuntu 16.04 (https://github.com/dotnet/coreclr/blob/master/cross/build-rootfs.sh#L7) and so does Core-Setup (https://github.com/dotnet/core-setup/blob/master/cross/build-rootfs.sh#L7). However, coreFX does not (https://github.com/dotnet/corefx/blob/master/cross/build-rootfs.sh#L7). CC @janvorli @kouvel +14540 area-Meta callback from native linux library (.so) of .NET core managed function - problem "I want to callback a method in C# code (.NET Core) from C++ code in my .so library on Linux when I execute a callback from this function, all works fine: ``` extern ""C"" void TestCallback() { fnSimpleCallback(); // fnSimpleCallback is saved callback function pointer } ``` however, when I try to execute a callback from a thread (std::thread), it either crashes or does nothing here is the code: ``` extern ""C"" void StartTestThread() { std::thread thread(call_from_thread); thread.detach(); } ``` ``` void call_from_thread() { std::cout << ""sleeping for 5 sec ... "" << std::flush ; usleep(5000000); std::cout << "" ... after sleep trying to callback from new thread .. "" << (void *)fnCallback << std::endl; if (nullptr != fnSimpleCallback) fnSimpleCallback(); // does nothing } ``` ====================== here is the C# code: ``` static IntPtr p_fnSimpleCallback; static System.Runtime.InteropServices.GCHandle gchSimpleCallback; public static void Main(string[] args) { p_fnSimpleCallback = Marshal.GetFunctionPointerForDelegate(fnSimpleCallback); gchSimpleCallback = GCHandle.Alloc(p_fnSimpleCallback, GCHandleType.Pinned); WrapperAPILib.SetSimpleCallback( p_fnSimpleCallback ); WrapperAPILib.StartTestThread(); //Console.WriteLine(""Sleeping in Main ...""); //System.Threading.Thread.Sleep( 6000); //WrapperAPILib.StartTestThread(); Console.ReadKey(); } ``` as you can notice, I've already tried using GCHandle to keep reference to my delegate alive when I uncomment subsequent Sleep(6000). the first StartTestThread() correctly executes my callback, but after the Sleep(6000) passes, the second StartTestThread() does nothing " +14541 area-System.Linq The documentation for Enumerable.Intersect is incorrect about the order of iteration "[The MSDN documentation for `Enumerable.Intersect`](https://msdn.microsoft.com/en-us/library/bb460136(v=vs.110).aspx) says: > When the object returned by this method is enumerated, Intersect\ enumerates *first*, collecting all distinct elements of that sequence. It then enumerates *second*, marking those elements that occur in both sequences. Finally, the marked elements are yielded in the order in which they were collected. Consider this program: ```c# using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { foreach (int i in First().Intersect(Second())) { Console.WriteLine($""Got {i}.""); } } static IEnumerable First() { for (int i = 1; i <= 2; i++) { Console.WriteLine($""Yielding {i} from First.""); yield return i; } } static IEnumerable Second() { for (int i = 1; i <= 2; i++) { Console.WriteLine($""Yielding {i} from Second.""); yield return i; } } } ``` Given the above description, I would expect the output to be: ``` Yielding 1 from First. Yielding 2 from First. Yielding 1 from Second. Yielding 2 from Second. Got 1. Got 2. ``` But the actual output (on both .Net Framework and .Net Core) is: ``` Yielding 1 from Second. Yielding 2 from Second. Yielding 1 from First. Got 1. Yielding 2 from First. Got 2. ``` I believe this is an error in documentation: it should not promise in what order are `first` and `second` enumerated, only in what order are the items yielded from the resulting sequence. For example: > When the object returned by this method is enumerated, Intersect\ yields distinct elements occurring in both sequences in the order in which they appear in *first*." +14542 area-System.Net Merge duplicate code in WinHttpCertificateHelper.cs with code used in System.Net.Security Merge duplicate code that builds/validates the trusted chain and verifies DNS name matches certificate name: ```c# // TODO: Issue #2165. Merge with similar code used in System.Net.Security move to Common/src//System/Net. public static void BuildChain( X509Certificate2 certificate, string hostName, bool checkCertificateRevocationList, out X509Chain chain, out SslPolicyErrors sslPolicyErrors) { chain = null; sslPolicyErrors = SslPolicyErrors.None; // Build the chain. chain = new X509Chain(); chain.ChainPolicy.RevocationMode = checkCertificateRevocationList ? X509RevocationMode.Online : X509RevocationMode.NoCheck; chain.ChainPolicy.RevocationFlag = X509RevocationFlag.ExcludeRoot; if (!chain.Build(certificate)) { sslPolicyErrors |= SslPolicyErrors.RemoteCertificateChainErrors; } // Verify the hostName matches the certificate. unsafe { var cppStruct = new Interop.Crypt32.CERT_CHAIN_POLICY_PARA(); cppStruct.cbSize = (uint)Marshal.SizeOf(); cppStruct.dwFlags = 0; var eppStruct = new Interop.Crypt32.SSL_EXTRA_CERT_CHAIN_POLICY_PARA(); eppStruct.cbSize = (uint)Marshal.SizeOf(); eppStruct.dwAuthType = Interop.Crypt32.AuthType.AUTHTYPE_CLIENT; cppStruct.pvExtraPolicyPara = &eppStruct; fixed (char* namePtr = hostName) { eppStruct.pwszServerName = namePtr; cppStruct.dwFlags = Interop.Crypt32.CertChainPolicyIgnoreFlags.CERT_CHAIN_POLICY_IGNORE_ALL & ~Interop.Crypt32.CertChainPolicyIgnoreFlags.CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG; var status = new Interop.Crypt32.CERT_CHAIN_POLICY_STATUS(); status.cbSize = (uint)Marshal.SizeOf(); if (Interop.Crypt32.CertVerifyCertificateChainPolicy( (IntPtr)Interop.Crypt32.CertChainPolicy.CERT_CHAIN_POLICY_SSL, chain.SafeHandle, ref cppStruct, ref status)) { if (status.dwError == Interop.Crypt32.CertChainPolicyErrors.CERT_E_CN_NO_MATCH) { sslPolicyErrors |= SslPolicyErrors.RemoteCertificateNameMismatch; } } else { // Failure checking the policy. This is a rare error. We will assume the name check failed. // TODO: Issue #2165. Log this error or perhaps throw an exception instead. sslPolicyErrors |= SslPolicyErrors.RemoteCertificateNameMismatch; } } } } ``` +14543 area-Infrastructure [dev/eng] Change the way we calculate `IsTestProject` Currently, the way we set the value of `IsTestProject` is by checking if the FileName ends with `Tests.csproj`. This doesn't really apply to all of our test projects, which has forced us to manually set it in all of the test projects where this condition isn't true. We should instead change that logic so that it is set if `/tests/` is part of the path to the project, and this way be consistent with ref and src projects. +14545 area-Infrastructure Add TestNugetRuntimeId to OuterLoop OSX runs "The most recent OuterLoop OSX runs have been failing on CI: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_osx_debug/. Looks like the issue is ""Outerloop OSX is using ` [23:21:21.05] Using RuntimeIdentifier = 'osx.10.11-x64' ` which tries to restore for the wrong rid."" Relevant thread: https://github.com/dotnet/corefx/pull/14462 cc: @karajas @weshaggard @joperezr @danmosemsft " +14546 area-Infrastructure Update binplacing paths and default BuildConfiguration. "* These now match the spec, at least for Windows. * Native shims are now binplaced to a location that corresponds to the spec'd location. We will need to make sure this location stays consistent between the two build systems. * We are still using ""netcoreapp1.1"" as the default TargetGroup. Eventually this should just be ""netcoreapp"", but we need to modify all of the projct files to make that change. @weshaggard @joperezr @ericstj " +14550 area-Infrastructure Initial set of work for building external dependencies This adds an external folder with some basic infrastructure to template project.json files by TFM and RID so that we can only restore the set that we actually need. Updates our configuration generation to add RuntimeOS and ArchGroup so we can use those to build up a NugetRuntimeIdentifier for using to restore the builds. cc @ericstj @mellinoe @joperezr @chcosta +14551 area-Serialization Support ISerializable in ReflectionOnly mode. Enable DataContractSerializer and DataContractJsonSerializer to support ISerializable types in ReflectionOnly mode. Fix #13071 +14552 area-Infrastructure Updating CoreClr dependencies to servicing-24816-01 +14553 area-System.Net Test failure: System.Net.Security.Tests failed with 'Xunit.Sdk.TrueException' Opened on behalf of @jiangzeng The test `System.Net.Security.Tests.SslStreamStreamToStreamTest_Async/SslStream_StreamToStream_Write_ReadByte_Success` has failed. Handshake completed. Expected: True Actual: False Stack Trace: at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Write_ReadByte_Success() Build : Master - 20161215.04 (Core Tests) Failing configurations: - OSX.1011.Amd64 - AnyCPU-Release Failed tests; System.Net.Security.Tests.SslStreamStreamToStreamTest_Async\SslStream_StreamToStream_Write_ReadByte_Success System.Net.Security.Tests.SslStreamStreamToStreamTest_BeginEnd\SslStream_StreamToStream_LargeWrites_Sync_Success System.Net.Security.Tests.SslStreamStreamToStreamTest_Sync\SslStream_StreamToStream_Successive_ClientWrite_WithZeroBytes_Success Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161215.04/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.SslStreamStreamToStreamTest_Async~2FSslStream_StreamToStream_Write_ReadByte_Success +14557 area-System.IO [WIP] Add async File.ReadAll*, File.AppendAll* and File.WriteAll Fixes #11220 Not currently done: Versioning of new API. Should this be `#netstardard1.7`? +14558 area-Infrastructure packageIndex update for ubuntu-16.04-arm packageIndex update for ubuntu-16.04-arm This patch relate to https://github.com/dotnet/core-setup/issues/725 Signed-off-by: chunseok lee +14559 area-Meta [Release/1.1.0] Bump the version of the packages +14560 area-System.Net NegotiateStream on UWP (WCF Windows authentication over NetTcp) "Trying to communicate with a WCF service from a UWP app using `NetTcpBinding` and Windows authentication will throw a `System.PlatformNotSupportedException`. The binding is defined like this: ```c# NetTcpBinding binding = new NetTcpBinding(); binding.Security.Mode = SecurityMode.Transport; binding.Security.Transport.ClientCredentialType = TcpClientCredentialType.Windows; ``` The exception will be thrown when trying to invoke any method on the endpoint's interface: ```c# var ep = new EndpointAddress(""net.tcp://myhost:8733/aaa/MyService""); var factory = new ChannelFactory(binding, ep); var service = factory.CreateChannel(); var result = service.AnyMethod(); // <-- this will throw ``` Thanks /Thomas" +14561 area-System.Linq Faster first element of LINQ methods I have deleted these contents (and some of my initial comments) because of being partially faulty and misleading regarding the performance improvements which might be achieved by relying on the proposed methodology. In any case, you can find below two comments including a descriptive enough summary and code (+ conclusions), respectively. +14562 area-Infrastructure Updating CoreClr dependencies to servicing-24816-02 +14563 area-System.IO Failures in TextWriter and StreamWriter to handle null inputs to WriteLineAsync If null is passed to `TextWriter.WriteLineAsync(char[])` it will produce no effect. By analogy to the non-async method it should write a newline as if `TextWriter.WriteLineAsync()` had been called. If null is passed to `StreamWriter.WriteLineAsync(string)` it will throw a `NullReferenceException` or fail an assertion in Debug. Likewise it should behave as if `StreamWriter.WriteLine()` had been called. +14564 area-System.IO Handle null inputs to WriteLineAsync correctly. Fixes #14563 +14565 area-Infrastructure Using Win32Exception with out of box netstandard1.3 project causes FileNotFoundException Am I doing something incorrect? I was not sure if this is the same problem as the other problems I've had with netstandard. Just by luck, every single one of my forays into netstandard have failed with this same type of issue. I have great confidence that it's just me and these will all be fixed by VS2017's RTM. * Create a new .NET Standard library targeting `netstandard1.3`. * Create a static method `Class1.DoWork()` that throws `new Win32Exception()`. * Add a .NET Framework console app targeting `net462` * In Program.cs, call `Class1.DoWork()` and add a reference to the library project. * Run the console app and get: > System.IO.FileNotFoundException occurred HResult=0x80070002 Message=Could not load file or assembly 'Microsoft.Win32.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Source=NetstandardLibrary StackTrace: at NetstandardLibrary.Class1.Works() in C:\Users\Joseph\documents\visual studio 2017\Projects\NetstandardOnDesktop\NetstandardLibrary\Class1.cs:line 10 at DesktopConsoleApp.Program.Main(String[] args) in C:\Users\Joseph\documents\visual studio 2017\Projects\NetstandardOnDesktop\DesktopConsoleApp\Program.cs:line 9 Is this a binding redirect issue or something? I hope this isn't the way things are intended to be? As long as this type of error exists, can you please maintain a netstandard troubleshooting document with step-by-step guidance for the workaround? I would hope that scenarios like this would be covered by integration tests. [Sample solution.](https://github.com/jnm2/misc-codesamples/raw/master/Bug%20reports/.NET/NetStandard%20Win32Exception%20causes%20file%20not%20found.zip) +14566 area-System.Runtime Raise AssemblyLoadContext.Unloading before AppDomain.ProcessExit "Currently, the Unloading event just subscribes to the ProcessExit event, so callbacks would be raised in subscription order. Instead, all callbacks for the Unloading event should be invoked before callbacks for the ProcessExit event. The Unloading event on a non-default assembly load context could in the future be raised earlier when the assembly load context is unloaded, so it would make sense to expect all of these events to occur before ProcessExit. ```c# Action OnUnloading = i => Console.WriteLine(""Unloading: {0}"", i); Action OnProcessExit = i => Console.WriteLine(""ProcessExit: {0}"", i); AppDomain.CurrentDomain.ProcessExit += (sender, e) => OnProcessExit(0); System.Runtime.Loader.AssemblyLoadContext.Default.Unloading += acl => OnUnloading(0); AppDomain.CurrentDomain.ProcessExit += (sender, e) => OnProcessExit(1); System.Runtime.Loader.AssemblyLoadContext.Default.Unloading += acl => OnUnloading(1); ``` Current output: ``` ProcessExit: 0 Unloading: 0 Unloading: 1 ProcessExit: 1 ``` Expected output: ``` Unloading: 0 Unloading: 1 ProcessExit: 0 ProcessExit: 1 ```" +14567 area-System.Runtime PInvoke for empty function takes over 300 usec - is it normal ? "extern ""C"" void TestEmptyFunc() { } [DllImport(""wrapperlib.so"", EntryPoint = ""TestEmptyFunc"", ExactSpelling = true)] public static extern void TestEmptyFunc(); I've measured the time it takes to execute this empty function from .NET Core, and it turns out it takes some considerable time - over 300 usec Before Empty func 18:23:22.320623 After Empty func 18:23:22.320944 is it normal ? " +14570 area-System.Security Consider integration with third party incremental hash algorithms Incremental/stateful hashing was refactored into its own class called [IncrementalHash](https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/IncrementalHash.cs) according to @bartonjs in issue #9442 I think this is a good change, however, the refactoring left out the possibility of integration with third-party stateful (incremental) hash algorithms. The IncrementalHash class is a simple wrapper for the real implementation [HashProvider](https://github.com/dotnet/corefx/blob/master/src/Common/src/Internal/Cryptography/HashProvider.cs), but users can't implement HashProvider as it is internal, and the IncrementalHash wrapper is not extensible as well. In good design, I'd want hash algorithms to be exchangeable in an API, which is possible with HashAlgorithm, but not with IncrementalHash or HashProvider. Arguably, most people could take in [HashAlgorithmName](https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.Primitives/src/System/Security/Cryptography/HashAlgorithmName.cs) and give it to IncrementalHash.Create(), but that does not support third party hash algorithm implementations. I'd propose the API is refactored once more (while IncrementalHash is not widely used), to support integration of third party stateful/incremental hash algorithms. +14571 area-System.Reflection SignatureTypeEncoder missing API for encoding custom modifiers on void* +14572 area-System.Runtime Introduce System.IString interface and implement it on System.String "### Proposal Introduce an interface called ```IString``` in the System namespace. The purpose of the interface is to identify string-like objects and provide a minimal set of methods over them. The native ```System.String``` type should implement this new interface. ### Motivation The motivation for this proposal is to allow library authors to implement efficient alternative representations of 'string-like' objects. An ```IString```, therefore, represents the essence of a string: An *immutable*, *finite* sequence of Unicode characters that supports enumeration and random access. ### Rationale In code which does heavy text processing, strings are invariably the most frequently allocated type. Many strings are short-lived, but few are ""novel"". By ""novel"", I mean that most strings are realized by transforming existing data - they don't spring into existence out of thin air. Some common examples: 1. A substring of an existing string. 2. A concatenation of two or more existing strings or characters. 3. The result of de-serializing a stream via an encoding. In each of these cases (and many others), since public APIs tend to be built around the ```System.String``` primitive, early realization of the transformations is unavoidable. Both callers and implementors are forced to use the primitive representation, even when it would be inefficient. e.g. Trimming off the last character of a string by creating a substring with length = Length - 1. By using ```IString``` instead of ```string``` in both the public APIs and internal implementations, library authors have an opportunity to reduce these hard-to-avoid allocations. Indeed, if we had something like this from the beginning in Roslyn, I feel we would have used it extensively. ### Details The proposed definition of IString is: ```C# namespace System { using System.Collections.Generic; interface IString : IEnumerable { char this[int index] { get; } int Length { get; } } } ``` Note that this definition is very similar to ```System.Collections.Generic.IReadOnlyList``` except: 1. The length property is named ```Length``` instead of ```Count```, and 2. It's easier to type (fewer chars) and discover (lives in the System namespace) ### Examples By way of an example for an alternative representation of a string-like thing using ```System.IString```, here is a canonical ""SubString"" implementation: ```C# using System; using System.Collections; using System.Collections.Generic; sealed class SubString : IString { private readonly IString _original; private readonly int _start; private readonly int _length; public SubString(IString original, int start, int length) { // TODO: Decide whether to throw on invalid start/length or just clamp the values. _original = original; _start = start; _length = length; } public char this[int index] { get { if (index < 0 || index >= _length) { throw new IndexOutOfRangeException(nameof(index)); } return _original[_start + index]; } } public int Length => _length; public IEnumerator GetEnumerator() { // TODO: If _start is zero, then use the underlying enumerator. for (int i = 0; i < _length; i++) { yield return _original[i + _start]; } } IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); } ``` Here is a simpler example of an ```IString``` representing a single ```char```: ```C# using System; using System.Collections; using System.Collections.Generic; sealed class CharString : IString { private readonly char _ch; public CharString(char ch) { _ch = ch; } public char this[int index] { get { if (index != 0) throw new IndexOutOfRangeException(); return _ch; } } public int Length => 1; public IEnumerator GetEnumerator() { yield return _ch; } IEnumerator IEnumerable.GetEnumerator() => GetEnumerator(); } ``` And, finally, here's a wrapper over a char array: ```C# using System; using System.Collections; using System.Collections.Generic; sealed class CharArrayWrapper : IString { private readonly char[] _array; public CharArrayWrapper(char[] array) { _array = array; } public char this[int index] => _array[index]; public int Length => _array.Length; public IEnumerator GetEnumerator() => (IEnumerator)_array.GetEnumerator(); IEnumerator IEnumerable.GetEnumerator() => _array.GetEnumerator(); } ``` ### Comparison with ```IReadOnlyList``` There is an existing proposal, #14336, to add ```IReadOnlyList``` to the set of interfaces implemented by ```System.String```. While that would be a sufficient alternative, the big downside is that it's harder to type ```System.Collections.Generic.IReadOnlyList```. For code that consumes such strings, one could mitigate that with a using alias, but it doesn't help the public API surface area. Consumers probably already have a using statement for the System.Collections.Generic namespace, but it's still hard to discover, and not immediately obvious to the uninitiated, that ```IReadOnlyList``` is the _'I behave like a string'_ marker. I believe it's only a coincidence that ```IReadOnlyList``` has the exact shape required to be that marker. We'll Ignore, for now, the different ways of spelling 'Length'. ```IReadOnlyList``` has an advantage, though, because ```char[]``` already implements it. i.e. a ```char[]``` would also be a valid 'string-like' implementation without modification. That would _not_ be the case with ```System.IString```, hence the need for the CharArrayWrapper shown above. If we're willing to entertain _both_ proposals, then we could redefine ```System.IString``` as: ```C# namespace System { using System.Collections.Generic; interface IString : IReadOnlyList { } } ``` and accept the (mis-)spelling of 'Length' ;-) ### Limitations It's hard to come up with a concatenation implementation that performs well in all cases: Do you chain to the left, to the right, or try to keep the 'tree' balanced? However, for specific cases where you're building ""compound"" strings by concatenation, sometimes a special-purpose object will do. e.g. It's possible to create a custom ```IString``` implementation to represent a fully-qualified type name from its parts while avoiding allocating the final string. In some cases, it _is_ better to do eager string realization. For example, if you're going to do a lot of random access operations on an ```IString``` that is actually a complex, compound implementation (e.g. a concatenation of a bunch of substrings of a UTF8-encoded text buffer). Advanced library implementations would detect when to switch to a more efficient implementation (e.g. rebalance a tree, or decode the entire UTF8 buffer). For other cases, clients can always use the ```.ToString()``` escape hatch. Certainly, we assume that library authors will strive to make most situations no worse than using ```System.String``` directly. ### Future If ```System.IString``` is adopted, there are plenty of places in the Framework where we could/should provide new overloads for methods that currently take ```System.String```. e.g. Serialization, formatting, encoding, path building/parsing). Of course, none of the performance benefits will be realized if a consumer of an ```IString```-returning API immediately turns around and calls ```.ToString()``` on the result (perhaps in order to call another API which accepts only ```System.String```). Without broad library support, this proposal is likely to falter. We have to start somewhere, though, and, if we're willing to entertain a new interface on ```string```, then I humbly suggest that it has a name that is easy to discover and type." +14573 area-Infrastructure Enable building System.Threading.Overlapped and System.Runtime.Serialization.Formatters Disabled with https://github.com/dotnet/corefx/pull/14489/files because they aren't building with configurations changes. Need to re-enable these and make sure they are part of building Microsoft.Private.CoreFx.NETCoreApp.pkgproj +14574 area-System.Memory Span: Enable back the fast span tests after GC correctness work is complete Related to PR #14262 where the tests for fast span were disabled because the GC correctness work has not been done for fast span yet. https://github.com/dotnet/corefx/pull/14262#issuecomment-267164311 Waiting for issue [#5851](https://github.com/dotnet/coreclr/issues/5851) to be resolved, specifically, JIT - Correctness – proper GC reporting of the special byref field, to re-enable the tests for fast span. +14575 area-Infrastructure Configurations code cleanup Some minor code cleanup. Not moving any files, just cleaning up some of the code. /cc @weshaggard @ericstj +14576 area-System.IO System.IO.FileSystem.Tests fails on my Dev box "```XML ``` After the test ran (and failed): ``` C:\WINDOWS\system32>\sysint\handle.exe C:\\Users\\crispop\\AppData\\Local\\Temp\\FileInfo_Open_fm_fa_fs_af1cc3bz.wbf\\FileShareOpen_43 Nthandle v4.1 - Handle viewer Copyright (C) 1997-2016 Mark Russinovich Sysinternals - www.sysinternals.com No matching handles found. ``` Flighted Windows Build: 14994" +14577 area-System.Security System.Security.Cryptography.Cng.Tests and System.Security.Cryptography.X509Certificates failing on my Dev box "Common theme: The buffer supplied to a function was too small ```xml ``` @bartonjs, @steveharter PTAL Flighted Windows build: 14994" +14579 area-System.Linq [RFC] [No merge] Remove a field from most Select iterators **Description:** Instead of running the selector and storing the result in a field during `MoveNext`, we can just run the selector during `Current` and remove that field. **Breaking changes:** `MoveNext` by itself will no longer run the selector. If someone calls `Current` twice, the selector will be evaluated twice. Repro: ```cs int selectorRuns = 0; var it = new[] { 0xff }.Select(i => selectorRuns++); using (var en = it.GetEnumerator()) { en.MoveNext(); // Before ran the selector, now doesn't int unused = en.Current; // Before didn't run the selector, now does unused = en.Current; // Now runs the selector again // Before, `selectorRuns` would be 1. Now, it's 2. } ``` **Why they're acceptable:** Enumerables are used mainly in two contexts: `foreach` and Linq. `foreach` handles this correctly by caching `Current` into a local at the beginning of the loop, so it can only be evaluated once. Linq handles things correctly and does not run `Current` more than once. Therefore, this change should break only fringe cases where 1) someone manually calls `GetEnumerator` on an enumerable and invokes `Current` more than once per `MoveNext` (a bug in their code) and 2) `e.Select` with an impure selector is passed to that function. **Performance results:** Not posted yet. I am wondering if maintainers think this is an acceptable change. I have marked this [No merge] temporarily because this is going to degrade perf in a few places where we check for `Iterator` for optimizations; [here](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Select.cs#L25) is one of them. This can be easily worked around by using interfaces. Also, I need to add more comprehensive tests for these changes. @JonHanna @VSadov @stephentoub PTAL +14580 area-Infrastructure Add Configurations for reference libraries Some of the reference libraries require configurations (System.Runtime and System.Runtime.Extensions, for example). Add configurations for those libraries and remove builds files from ref library projects. +14581 area-Infrastructure [dev/eng] CI is not catching all compilation failures There's two projects that are failing to build on Ubuntu (at least, probably all Linux's although I didn't check), but they aren't getting caught by CI for some reason. https://ci.dot.net/job/dotnet_corefx/job/dev_eng/job/ubuntu14.04_debug_prtest/144/consoleText > System/Net/NetworkInformation/UnixIPInterfaceProperties.cs(7,14): error CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?) [/mnt/j/workspace/dotnet_corefx/dev_eng/ubuntu14.04_debug_prtest/src/System.Net.NetworkInformation/src/System.Net.NetworkInformation.csproj] > System/IO/FileSystemWatcher.Linux.cs(860,26): error CS0246: The type or namespace name 'List<>' could not be found (are you missing a using directive or an assembly reference?) [/mnt/j/workspace/dotnet_corefx/dev_eng/ubuntu14.04_debug_prtest/src/System.IO.FileSystem.Watcher/src/System.IO.FileSystem.Watcher.csproj] I can fix the compilation errors, but I'm not sure why CI isn't catching this in general. @weshaggard @chcosta @joperezr +14582 area-Infrastructure Add BuildConfigurations for test projects We need to convert all the test builds files to BuildConfigurations. @joperezr please share what you have for @mellinoe +14583 area-Infrastructure Fix BuildConfigurations in all projects For any source projects that were targeting netstandard1.7 and are part of netstandard their build configuration should be turned into netcoreapp. We should change all the build configurations to be version-less so netcoreapp or netstandard instead of netcoreapp1.1 or netstandard2.0. We should clean-up the conditions in the projects that are no longer applicable and make them match the current configurations. +14584 area-Infrastructure Clean-up all projects of dead properties Similar to what we did for the test projects we cleaned up a bunch of dead properties (i.e. Configuration, NugetTargetFramework, etc) we should clean-up the rest of the projects under ref and src similarly. We should also clean-up things like TargetingPackReference now which aren't used. +14587 area-Infrastructure netstandard.dll facade needs to be build and added to the flat Corefx.NETCoreApp package We are currently building it as part under layout\shims.proj but we should move it under the source tree and build it and get it bin-placed for the packaging. +14588 area-Infrastructure Clean-up binplacing targets We need to remove binplacing.targets and merge a more complete bin-placing logic somewhere into the build tools targets (perhaps FrameworkTargeting.targets). We will likely need to have a build task to produce the set of directories to binplace to. I've got a start of some of that work at https://github.com/weshaggard/corefx/tree/BinPlacingTask. +14589 area-Infrastructure Update CI and Official build definitions to handle new build configurations "We need to update our CI and official builds to use the new ""BuildConfiguration"" and ""RuntimeOS"" properties instead of the existing properties they currently use. " +14590 area-Infrastructure Update CI and official builds to understand new testing infrastructure Today our official builds build and run tests on separate machines and use nuget packages to exchange between the machines. We need to change or update the exchange currency for our new setup. Likely need to start sharing the targeting pack and runtime output directories with our test builds. +14591 area-Infrastructure Merge dev-eng branch to master Once all our dev-eng tasks are done we need to merge the changes back to master. +14592 area-Infrastructure Add support of UAP build configuration We need to add support for UAP with our new engineering system. This includes: - [x] Enable the vertical build - [x] Create the UAP flat package - [x] Enable UAP testing (In progress) +14593 area-Infrastructure Add intellisense files into NETCoreApp package When we collapse the packages into a flat one we need to include the intellisense files. +14594 area-Infrastructure Enable symbol packages for the CoreFx.NetCoreApp.Private package +14595 area-Infrastructure Crossgen binaries in the flat NETCoreApp package +14596 area-Serialization Fix XmlSchemaTest in ReflectionOnly mode. Enable serializing objects of XmlSchemaObject type in ReflectionOnly mode. Fix #11918 +14597 area-Meta Fix test failures on Windows OneCoreUAP This PR fixes all test failures that I encountered while running the inner-loop tests on Windows OneCoreUAP SKU. +14598 area-Infrastructure Update build tools Since I merged the previous PR to get the test build fix, I created this one for @dagood , to pick up the fix for corefx auto-update PRs: dotnet/buildtools#1265 +14600 area-Infrastructure The type 'Assembly' exists in both 'System.Reflection' and 'System.Runtime' "I try to use System.Json in .net core and it cause that error This is my project.json ```JSON { ""name"":""TTTT"", ""version"": ""1.0.0-*"", ""dependencies"": {}, ""resource"": [ ""*.json"" ], ""resourceExclude"": [ ""project.json"", ""project.lock.json"" ], ""frameworks"": { ""netcoreapp1.1"": { ""imports"": ""dnxcore50"", ""dependencies"": { ""System.Json"":""4.4.0-beta-24721-02"", ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.1.0"" }, ""Newtonsoft.Json"": ""9.0.1"", ""AWSSDK.Lambda"":""3.3.*"", ""Amazon.Lambda.Core"": ""1.0.0*"", ""Amazon.Lambda.Serialization.Json"": ""1.0.0"", ""Amazon.Lambda.Tools"": { ""type"": ""build"", ""version"": ""1.0.0-preview1"" } }, ""tools"": { ""Amazon.Lambda.Tools"": ""1.0.0-preview1"" } } } } ```" +14601 area-System.Runtime UnauthorizedAccessException type incompatible between netstandard1.4 and netcore50 "I created a **netstandard1.4** project which generates a nuget package. There is a piece of code in this project: ```cs string baseDir = """"; try { // this will throw an UnauthorizedAccessException on the pi baseDir = AppContext.BaseDirectory; } catch (UnauthorizedAccessException) { baseDir = Directory.GetCurrentDirectory(); } ``` When I install this package in a UWP (**netcore50**) project and (in my case) debug it on a Raspberry Pi, the catch statement is never called. When I put a `try...catch...` in the UWP project itself, it does catch the error. The only explanation I can think of is that the `UnauthorizedAccessException` during compile time in a netstandard project is not compatible with the runtime one used for UWP. Relevant packages used: - System.Runtime 4.3.0 Am I correct, or am I doing something totally wrong?" +14602 area-System.Reflection Support System.Reflection.Emit tests on the full .NET Framework "- Netfx supports `AssemblyBuilderAccess.RunAndSave` and `AssemblyBuilderAccess.Run` and `AssemblyBuilderAccess.ReflectionOnly` - Netfx supports multiple modules - Netfx sets the name of a module - Netfx assemblies end with "", culture=neutral, version=0.0.0.0"" Tests pass running `msbuild /T:BuildAndTest /P:TestTFM=net46` Fixes #13253" +14603 area-System.Reflection Support System.Reflection.Emit.ILGeneration tests on the full .NET Framework - Coreclr fixed some bugs around IntPtr/UIntPtr values causing corrupt binary blobs - Coreclr fixed Enum.GetEnumName to work with float and double enums. This is not related to RefEmit, though Tests pass with `msbuild /T:BuildAndTest /P:TestTFM=net46` Fixes #13251 +14604 area-System.Reflection Support System.Reflection.Emit.ILGeneration tests on the full .NET Framework - Coreclr doesn't do security checks when emitting the body of a dynamic method. This menas it doesn't throw a `FieldAccessException`, as the full .NET framework does Fixes #13252 +14606 area-System.Reflection GetFields in declaration order If you search the internet how to do this, you will find the advice to sort by MetadataToken (e.g.: http://stackoverflow.com/questions/8067493/if-getfields-doesnt-guarantee-order-how-does-layoutkind-sequential-work) Is this the proper way to do this? If so, perhaps it can be included in the documentation. Does this need LayoutKind.Sequential to work? +14608 area-Infrastructure Run a detached docker container which receives exec commands Docker now supports `docker exec` which will run a new command inside a running container. This means that we can do this... ``` docker run -d [image name] [container name] sleep infinity docker exec [container name] command 1 docker exec [container name] command 2 docker stop [container name] ``` This is much preferable over the current method which has us creating images to save container state and then running those images as a new container with a new command; rinse, wash, repeat. I'll play around with this while setting up official builds in the dev/eng branch and if there are no issues (it's possible some variants of Linux don't support 'sleep' and will require some other infinitely running command), then we'll merge it back into master when we converge the rest of the dev/eng work. /cc @weshaggard @ericstj @MattGal @markwilkie @ellismg as an FYI, but I'm planning to merge this without review so that I can continue to bring up official build support for dev/eng next week. +14609 area-Infrastructure Updating CoreClr dependencies to servicing-24818-01 +14611 area-System.Security Added additional WellKnownSidType enumeration members. Documentation copied and adapted from https://msdn.microsoft.com/en-us/library/aa379650(v=vs.140).aspx +14612 area-System.Net Http pipelining I am trying to use HTTP pipeline (like this: [https://en.wikipedia.org/wiki/HTTP_pipelining ](https://en.wikipedia.org/wiki/HTTP_pipelining) ) in my .NET Core app. Could you tell me how to do it or if it is even possible ? +14613 area-Infrastructure Updating CoreClr dependencies to servicing-24818-02 +14614 area-System.Net CurlHandler.MaxConnectionsPerServer unsupported on Centos 7 ### Steps to reproduce run the following statements: ``` var client = new System.Net.Http.HttpClientHandler(); client.MaxConnectionsPerServer = 8; // any value >= 1 ``` ### Expected behavior no exceptions. ### Actual behavior ``` Unhandled Exception: System.PlatformNotSupportedException: Unknown option at System.Net.Http.CurlHandler.set_MaxConnectionsPerServer(Int32 value) at System.Net.Http.HttpClientHandler.set_MaxConnectionsPerServer(Int32 value) at ConsoleApplication.Program.Main(String[] args) ``` ### Environment data `dotnet --info` output: ``` .NET Command Line Tools (1.0.0-preview2-1-003177) Product Information: Version: 1.0.0-preview2-1-003177 Commit SHA-1 hash: a2df9c2576 Runtime Environment: OS Name: centos OS Version: 7 OS Platform: Linux RID: centos.7-x64 ``` ### Comments it appears to only affect Centos. it works fine on Ubuntu. +14615 area-System.Data Failed SqlConnection with Pooling drags down entire .NET Core MVC App When Pooling is enabled on a SqlConnection, and the connection fails (bad password, bad username, database doesn't exist) it will crash the entire .NET Core MVC app running. For instance, the connection string: `Password=mybadpassword;User Id=api_web_admn;Data Source=127.0.0.1,1433;Initial Catalog=MyDatabase;Integrated Security=False;Min Pool Size=1;Max Pool Size=200;Pooling=true;` produces: ``` Unhandled Exception: System.Data.SqlClient.SqlException: Login failed for user 'api_web_admn'. at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.PoolCreateRequest(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() ``` and causes the .NET Core runtime to exit the thread. Removing Pooling, or Pooling=false, it simply throws an exception and you can handle it. As it stands now, you can't mitigate and handle a failed connection in .NET Core MVC. +14616 area-Infrastructure Use netcoreapp and netstandard for targetgroups Use netcoreapp and netstandard in place of netcoreapp1.1 and netstandard1.7 for src / ref projects. /cc @weshaggard @ericstj @mellinoe +14617 area-Infrastructure Updating CoreClr dependencies to servicing-24819-01 +14618 area-Infrastructure Fix rootfs script: attempt to correct broken dependencies Try to correct a system with broken dependencies when building root file system: `apt-get -f` Script in CoreCLR already has a same instruction. +14619 area-System.Runtime removed duplicate test case +14621 area-System.Collections Supporting C# 7 deconstruction of certain types C# 7 added support for deconstruction of user-defined types via a Deconstruct(out ...) method. It would make sense to be able to use this feature with tuple-like types such as KeyValuePair and DictionaryEntry. Close https://github.com/dotnet/corefx/issues/13746 +14622 area-Infrastructure Updating CoreClr dependencies to servicing-24819-02 +14623 area-System.Runtime Test StringComparer.FromComparison Add API to convert a StringComparison to a StringComparer, to avoid bunch of switch-statements in user code (see 'Motivation' section below). See https://github.com/dotnet/corefx/issues/13800 and https://github.com/dotnet/coreclr/pull/8633 +14624 area-System.Security Port System.Security.Cryptography.Xml from netfx Staging port for community; compile errors exist. Contributes to #4278 (SignedXml) and #1132 (EncryptedXml). +14625 area-System.Reflection Ensure that the Reflection tests don't rely on magic numbers to get bad token ids. In our tests we are relying on the fact that a given token number, when 1000 is added to it, it becomes an invalid token https://github.com/dotnet/corefx/blob/master/src/System.Runtime/tests/System/Reflection/ModuleTests.cs#L186 That is a fragile logic as we can see in https://github.com/dotnet/corefx/pull/14431. +14626 area-Infrastructure Use win10-arm64 for NETCore.App package win-arm64 was a typo. /cc @weshaggard @mellinoe @chcosta +14627 area-Infrastructure Microsoft.DiaSymReader.Native folder ends up in project using new CSPROJ after upgrading to Microsoft.NETCore.App/1.1.0 See dotnet/roslyn#15859 This will need to be included in 1.1.1 such that Microsoft.NETCore.App brings in the updated Microsoft.DiaSymReader.Native once it's fixed. +14628 area-System.Security Port System.Security.Cryptography.Xml from netfx Staging port for community; compile errors exist. Contributes to #4278 (SignedXml) and #1132 (EncryptedXml). +14629 area-System.Globalization Cleanup string normalization implementation +14631 area-System.Runtime [WIP] Expose string.Join APIs in System.Runtime **Description:** This PR exposes and adds tests for `string.Join` overloads accepting a char in System.Runtime. **Notes:** I'm very hopeful that this will build, but unable to test or even compile this locally because I'm consistently running into an issue: https://github.com/dotnet/corefx/issues/14423. So I will try to inspect any errors raised by CI and hopefully fix them, and then un-WIP this. **Fixes:** #12655, #5552 +14632 area-Infrastructure Generate packages for portable native build "This enables generating ""Linux-{arch}"" packages for Portable Native build of CoreFX. @weshaggard @ellismg @janvorli PTAL." +14633 area-Infrastructure Re-enable building System.Runtime.Serialization.Formatters Also removes entry for System.Runtime.CompilerServices.Unsafe. This project was already building via System.Memory but there was an additional entry for csproj (the project is an ilproj). System.Runtime.Serialization.Formatters now builds because its references are all present or built properly. This does not re-enable System.Threading.Overlapped, that one is a bit trickier.. /cc @weshaggard @ericstj +14635 area-System.Net remove ContextAwareResult in System.Net.Sockets The ContextAwareResult class existed to optimize ExecutionContext flow for async operations. Now, we go through Overlapped.Pack (instead of UnsafePack) and just rely on Overlapped to flow the EC for us. This is cheap on .NET Core because EC is immutable. +14636 area-System.Security Added additional WellKnownSidType enumeration members We need to decide on https://github.com/dotnet/corefx/pull/14611#discussion_r93085854 Looks like the thing which uses [`MaxDefined`](https://github.com/dotnet/corefx/blob/master/src/System.Security.Principal.Windows/src/System/Security/Principal/SID.cs#L114) in a validator is the product code. https://referencesource.microsoft.com/#mscorlib/system/security/principal/sid.cs,491, and without updating it (in the impl) it'll make the new values unusable. Options: 1. Take the breaking change of updating it 2. Take the breaking change of undefining it 3. Update it in the impl, but not the ref 4. Say we're never allowed to update this enumeration 5. Leave this value as-is, but change the product code to do something smarter. 6. Some other proposal. cc @couven92 @bartonjs @terrajobst @weshaggard, @ericstj +14637 area-Infrastructure Updating CoreClr dependencies to servicing-24820-02 +14638 area-System.Data ObjectDisposedException in SqlClient SNIProxy "The following is the exception / stacktrace I get in my application: ` { ""ExceptionType"": ""ObjectDisposedException"", ""Message"": ""Cannot access a disposed object.\nObject name: 'System.Net.Sockets.UdpClient'."", ""ObjectName"": ""System.Net.Sockets.UdpClient"", ""Data"": null, ""StackTrace"": "" at System.Net.Sockets.UdpClient.EndReceive(IAsyncResult asyncResult, IPEndPoint& remoteEP)\n at System.Net.Sockets.UdpClient.<>c.b__55_1(IAsyncResult asyncResult)\n at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization)"", ""Source"": ""System.Net.Sockets"", ""HResult"": -2146232798 } ` Environment setup: - Application running on netcoreapp1.0 - SQL server 2012, with SQL Server Browser Service (intentionally) disabled. I've pinpointed it to that if I pass a ConnectionString to the SqlClient that doesn't include an explicit port (i.e. simply on the form ""Data Source: ""), then the exception occurs and ends up in my TaskScheduler.UnobservedTaskException. If I do specify an explicit port in the ConnectionString, e.g. ""Data Source: ,1433"", then no exception is thrown. I assume that is simply because the code paths for doing SNI port lookup is not executed at all. One relevant code path is https://github.com/dotnet/corefx/blob/6b5ef121ebea45b14f489a177e2e3f27fce86781/src/System.Net.Sockets/src/System/Net/Sockets/UDPClient.cs#L651 It seems like EndReceive is invoked unconditionally in the AsyncCallback, thus also possibly after the UdpClient goes out of scope (the using scope). I'm thinking that UdpClient.ReceiveAsync() must check whether the UdpClient has actually gone out of scope before invoking the EndReceive. And if it has gone out of scope, it should be considered cancelled / timed out, and throw such an exception (instead of now resulting in an ObjectDisposedException " +14640 area-System.Collections Version 1.3 on nuget contains DLL wih 1.2.1 version The issue is detailed on a stackoverflow post but the key issue is that if you download 1.3.0 from the nuget gallery and then check the dll you see that it is really 1.2.1 http://stackoverflow.com/questions/41244162/nuget-seems-to-install-the-wrong-version-of-system-collections-immutable https://www.nuget.org/packages/System.Collections.Immutable/1.3.0 ![image](https://cloud.githubusercontent.com/assets/17650/21355786/a1618b3e-c6cf-11e6-8cba-b566078d8b36.png) +14641 area-System.Runtime Add tests for new String.Join overloads Close #5552 +14643 area-Infrastructure Restore original shim output paths, copy to vertical runtime folder as a post-step @ericstj This changes the CMake output path back to the paths we were originally using, and then adds another step that copies that folder to the vertical group's runtime folder. +14644 area-System.Data SqlClient's connection resiliency causes performance issues to EF customers. Consider exposing a way to override it at runtime This is to follow up on a specific issue a customer created today on EF Core at https://github.com/aspnet/EntityFramework/issues/7283, but the problem has been brought to our attention before. Both EF6 and EF Core provide APIs that allow applications to create and initialize databases, check for their existence and modify their schemas. These operations can happen at design time (e.g. when using the migrations feature) or at runtime. **Attempting to connect to a database that doesn't exist is part of the normal flow of these operations.** In .NET Framework 4.5.1 SqlClient introduced a connection resiliency feature that performs automatic retries if failures occur during `SqlConnection.Open()`. Two new settings `ConnectRetryCount` and `ConnectRetryInterval` were added to the list of settings recognized in connection strings and a default behavior was adopted so if the first attempt to connect to a database fails a retry will occur after 10 seconds if these settings are not specified. The same feature is now included in the .NET Core version of SqlClient. With only the default behavior **this feature introduces a lag of 10 second for any calling code that attempts to connect to a database that doesn't exist.** It also prevents any calling code from implementing its own (potentially more efficient) retry logic correctly. This severely affects customer experience and can potentially affect runtime performance. Two main approaches have been proposed to mitigate this issue on EF code, but they have severe disadvantages: 1. Recommend customers to disable SqlClient's connection resiliency altogether by setting `ConnectRetryCount=0` when working EF and make sure the feature is disabled any time EF runtime or tooling creates a connection string, or even throw if an attempt is made to use a connection that has the feature enabled. The main disadvantages of this approach are: * It is not discoverable for customers and so users will still experience the 10 second lags (or exceptions if we decide to throw) for the default case. * It prevents the connection resiliency feature in SqlClient from being available in scenarios in which it could actually have been helpful. * EF6 supports older versions of .NET Framework than 4.5.1 and for those versions these settings are not valid. The logic would need to take the executing version of .NET Framework into account. 2. Store aside a copy of the original connection string so that we can modify it with `ConnectRetryCount = 0` and create a separate `SqlConnection` object to perform existence checks. * The main problem with this approach is that both EF Core and EF6 support passing a `SqlConnection` object to be used in the EF context. It is possible that the password would have already been removed from the `ConnectionString` in that connection object if it was open before, so in that case the connection string would not contain enough credentials to be able to create a separate functional connection object. At this point we believe that if `SqlConnection` exposed a way to programmatically disable connection retries **without requiring the modification of the connection string** we could modify EF6 and EF Core code to restore the correct behavior and eliminate 10 second lags. We are happy to discuss other options with the SqlClient team. Also note that this issue applies to both .NET Core and .NET Framework. cc @ajcvickers Note on how EF Core implements its own retry logic to check for database existence: In general, any code that is calling `SqlConnection.Open()` can leverage contextual knowledge to make connection retries more efficient. E.g.: - When EF Core performs existence checks, it will only retry on certain errors if they occur immediately after a database has been created. - For a regular existence checks (i.e. those that don't happen immediately after the database has been created) EF Core assumes that immediate failures coming from a database server mean that the database effectively doesn't exist and can avoid any retry logic. +14645 area-Infrastructure Release/1.1.0 versions fix Enable building with a uri version file so that we can pull versions from dotnet/versions for building tests against packages. +14646 area-Infrastructure Deprecate sync.cmd This is follow-up for https://github.com/dotnet/corefx/commit/2d3e555196bfa5c9d2156a9adcabf9ef902b1ba0. It may make sense to bring back some form of sync.cmd, but right now that needs to do a bit more than just restore. /cc @weshaggard @mellinoe @chcosta This is needed to get the official builds working. +14647 area-Infrastructure update buildtools to version 1.0.25-prerelease-01121-01 +14648 area-Infrastructure Updating CoreClr dependencies to servicing-24821-01 +14649 area-System.Console Enable full Encodings on Windows Console by Default by default .NetCore doesn't enable the codepage encoding and the app has to opt-in to the full encoding through the call Encoding.RegisterProvider(CodePagesEncodingProvider.Instance) This was not a good stand for the Console specially on Windows as the Console always using encoding which is not supported by default and we had to fallback using UTF8. In this change we are supporting the full OS encoding on Console and System.Diagnostics.Process without bringing the big encoding size cost (which is 600+ KB). The way we support it is we create an OSEncoding class wrapper which will call the OS instead of using our own encoding data. The only restriction we’ll have is cannot use encoding fallback with OSEncoding as this will be very slow and not intuitive. But this is acceptable as usually apps don’t use the console encodings for such fallback operation. But if anyone want to do that can still register the encoding provider and get full support. +14651 area-Serialization Potential Issues with Deserializing ISerializable Types "There's a couple of potential issues with deserializing ISerializable types, 1. An ISerializable type's OnDeserializing callback is not called on the actual deserialized object. 2. The object added to XmlObjectSerializerReadContext is not the actual deserialized, which may cause wrong behavior in ""IsReference=true"" scenarios. The issues occur with both ILGen based and reflection only based serialization. To investigate the issue, we need to look into the following methods, `ReflectionReader.ReflectionReadClass` `XmlFormatReaderGeneratorCriticalHelper.GenerateClassReader` `JsonFormatReaderGenerator.CriticalHelper.GenerateClassReader`" +14654 area-System.ComponentModel EnsureValidDataType reject whitespaces EnsureValidDataType should reject whitespaces in DataTypeAttribute.CustomDataType property because it is mandatory and it does not make sense that the property is whitespaces. Fix #4465 +14655 area-Infrastructure Add ubuntu.XX-arm to runtime.native.XX.pkgproj This patch adds ubuntu.14.04-arm and ubuntu.16.04-arm into runtime.native.XX.pkgproj Signed-off-by: chunseoklee +14656 area-System.Collections Dictionary constructor that accepts IEnumerable (ref #1378) Add a generic Dictionary construction that accepts IEnumerable +14657 area-Infrastructure Updating CoreClr dependencies to servicing-24821-02 +14660 area-System.Security Make the Crypto.Encoding library work on macOS without OpenSSL "Apple's Security framework doesn't seem to expose any OID resolution or ASN.1/DER pretty-printing, so the ""make a native call here"" functions just always report that they have failed. The pretty-printing of SubjectAlternativeName was manually written into this library to retain support for libraries which are parsing the ToString output. Part of #9394." +14661 area-System.Runtime Add ConditionalWeakTable.AddOrUpdate to contract and add tests Fixes #8429 Add test and update contract for pull https://github.com/dotnet/coreclr/pull/8490 /cc @jkotas @stephentoub +14662 area-System.Security System.Security.Cryptography.Xml - phase 2 (make it compile) This is the initial work for phase 2 of dotnet/corefx#4278 (port System.Security.Cryptography.Xml from netfx to corefx). There are a couple of areas that need review: - [x] `SR` - [x] Added an overload to `GetResourceString` that doesn't require a default value (uses resource key as the default value). Not sure if this is the correct behaviour but the existing code does not use the second parameter. - [x] [Imported](https://github.com/tintoy/corefx/issues/1#issuecomment-268436631) messages from `System.Security.txt` into `Strings.resx`. There seem to be a lot of unused strings in here, not sure if you want them trimmed. - [x] `EncryptedXml` - [x] Merged the 2 non-default constructors (removing the overload that takes `Evidence` because as far as I can tell, there is no CAS in corefx). - [x] `SignedXml` - [x] Currently using a hard-coded constant for `szOID_KEY_USAGE` (`2.5.29.15`) because I can't find an existing constant to represent it. Let me know where you'd like this to live. - [x] Changed `X509Certificate2.GetAnyPublicKey` to `X509Certificate2.PublicKey.Key` because I can't find an equivalent method in corefx. - [x] Stubbed out `ReadAdditionalXXX` methods because there's no Registry to read from. - [x] `SymmetricKeyWrap` - [x] Suppressed code-analysis rule `CA5350` because the directive was to port the code as-is. - [x] `Utils` - [x] Removed references to `Registry`, substituting default values where they were previously read from the registry. - [x] Removed references to `[RegistryPermission]` because, as far as I can tell, CAS does not exist in corefx. - [x] Copied `HexEncode` / `HexDecode` methods from [X509Utils](https://referencesource.microsoft.com/#System.Security/system/security/cryptography/x509/x509utils.cs,6ef26ece8e08c36b,references) in netfx since there appear to be no public equivalents in corefx. - [x] `KeyInfoX509Data` - [x] Previously, `CryptographicException` was constructed with `CAPI.CERT_E_CHAINING` HRESULT constant. Linked `src/Interop/Common/src/Windows/Crypt32/Interop.certificates_types.cs` and used `Interop.Crypt32.CertChainPolicyErrors.CERT_E_CHAINING` since the associated message does not appear in the string resources. `System.Security.Cryptography.Xml.csproj` now builds correctly, but `System.Security.Cryptography.Xml.Tests.csproj` does not. This appears to be due to the steps taken to exclude it from the build. +14663 area-Infrastructure Add Configurations.props files for test projects, include tests in build.proj There were a large number of changes that needed to be made to the test projects and test code in order to get everything working in dev/eng. This gets all of the tests building and running against netcoreapp (minus one project). There is still no support for different targeting packs (`netstandard1.3`, etc.), so everything is still compiling against the netcoreapp targeting pack (built live). Issues remaining: * There are some workarounds necessary because of the `TypeInfo` inheritance issue ( #14334 ). These are present in the tests for System.Runtime, System.Linq.Expressions, and System.Reflection.Emit. * System.IO.IsolatedStorage is failing sometimes on my machine; no idea why. It usually succeeds when re-tried. I get `UnauthorizedAccessException`s when it fails. * System.Security.AccessControl.Tests always fails for me because of a debug assertion in the product code. No idea why yet, so I disabled the test project. * System.Linq.Expressions references the source project because it uses types not exposed in the contract. This is happening in master, too, so it's not a change from before. @joperezr @weshaggard @ericstj @karajas +14665 area-Infrastructure Clean up build-native.cmd/sh A couple of improvements suggested by @weshaggard and @ericstj . +14666 area-Infrastructure Update BuildTools Version Pick up revved build tools version using UtcNow instead of regular Now for build version. @chcosta @joperezr @markwilkie +14667 area-Infrastructure Update to buildtools version 1.0.25-prerelease-01121-03 +14669 area-Infrastructure Cleanup TargetingPackReferences from dev/eng "It looks like we're still using ""TargetingPackReference"" even though reference seems to be all that's needed. If I remove them I trigger the error that this was working around: https://github.com/dotnet/buildtools/blob/7b3991e4bba0b86945a06470b313f9183e744e25/src/Microsoft.DotNet.Build.Tasks/PackageFiles/packageresolve.targets#L154 Let's use this issue to track cleaning everything up. /cc @mellinoe @chcosta " +14671 area-Infrastructure [dev/eng] ref projects are not really building in parallel on Unix I'm not sure what's causing this, but it looks like the ref projects are effectively being built sequentially outside of Windows. This is causing the build to take a very long time compared to Windows. My 8-core Ubuntu machine has only one core being utilized during the ref build, even though there are tons of MSBuild processes active. It looks like the src build is handling this a bit better (faster and more CPU utilization), but I'm not sure it's as good as Windows there either. It still seems slower to me. Is this a problem with MSBuild? @weshaggard @ericstj @chcosta @joperezr @karajas +14672 area-Infrastructure Update buildtools to version 1.0.26-prerelease-01121-01 +14673 area-System.Net SendRecvPollSync_TcpListener_Socket outerloop test is flaky When running this test in System.Net.Socket.Test.dll, I occasionally get the following exception: ``` System.Net.Sockets.Tests.SendReceive.SendRecvPollSync_TcpListener_Socket(listenAt: 127.0.0.1, pollBefore Operation: False) [FAIL] System.AggregateException : One or more errors occurred. (An existing connection was forcibly closed by the remote host) ---- System.Net.Sockets.SocketException : An existing connection was forcibly closed by the remote ho st Stack Trace: at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationTok en cancellationToken) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) C:\github\geoffkizer\corefx\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs(1184,0): a t System.Net.Sockets.Tests.SendReceive.SendRecvPollSync_TcpListener_Socket(IPAddress listenAt, Boolean poll BeforeOperation) ----- Inner Stack Trace ----- C:\github\geoffkizer\corefx\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(1436,0): at Sy stem.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) C:\github\geoffkizer\corefx\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs(1138,0): a t System.Net.Sockets.Tests.SendReceive.<>c__DisplayClass27_1.<b__0>d.M oveNext() Looks like a timing issue somewhere. ``` +14674 area-System.Net System.Net.Cookie doesn't conform to RFC 2965 "In RFC 2965, section 3.2.2 it states > Version=value REQUIRED. The value of the Version attribute, a decimal integer, identifies the version of the state management specification to which the cookie conforms. For this specification, Version=1 applies. In the msdn documentation for [Cookie.Version](https://msdn.microsoft.com/en-us/library/system.net.cookie.version(v=vs.110).aspx), it states > The default value for the Version property is 0, complying with the original Netscape specification. If the value is explicitly set to 1, then this Cookie must conform to RFC 2109. RFC 2109 was obsoleted by RFC 2965 so as per the newer spec, specifying Version=1 means RFC 2965 applies. RFC 2109 requires a specified domain to be have a leading dot whereas RFC 2965 does not require this. When making a request using HttpClient to an HTTP server which returns a cookie with an explicit domain without a leading dot and specifying version=1, the cookie is dropped. Here is some simple code reproducing the issue. ```csharp var mycookie = ""lang=en-US; Domain=example.com;Path=/;version=1""; var uri = new Uri(""http://example.com""); CookieContainer container = new CookieContainer(); container.SetCookies(uri, mycookie); ``` This throws a CookieException when the cookie is valid. The cookie parsing code in HttpClient swallows this exception. RFC 2965 is further obsoleted by RFC 6265 which makes no mention of the Version attribute but does say that there is no need for a leading dot, and if it is there, to strip it out and ignore it. So either the latest RFC should apply in which case the example cookie I provided should parse, or the latest RFC which claims it should apply which mentions the Version attribute should apply." +14675 area-System.Linq Reduce allocations in {Concat,SelectMany,Append,Prepend}.ToArray by close to 50% **Background:** Some `ToArray` implementations employ a double-buffering strategy if we don't know the exact length of the output array. First the items are copied into some sort of buffer, then they are transferred into an array. For example, in the following snippet ```c# var array = new[] { -1, -2, -3 }; Enumerable.Range(1, 100).Concat(array.Where(i => true)).ToArray(); ``` In `ToArray`, we know the size of the lhs enumerable but not how many elements are in the rhs one. So we allocate a buffer with 100+ elements to hold everything, calculate the final size of the array, and re-copy those elements. ```c# Buffer: [1 2 3 .. 100 -1 -2 -3 0 0 .. 0] Array: [1 2 3 .. 100 -1 -2 -3] ``` **Description:** Instead of copying everything twice, we can buffer only the enumerables we can't get the count of. If we reach an `ICollection` or an `IIListProvider` and it has N items, we queue it to be copied later, and tell the builder to leave a gap of N items in the output array. Finally, when `ToArray` is called, we revisit all of those queued collections and copy them directly to the output. Here is how the above example works now: ```c# // Stage 1: First pass Buffer: [-1 -2 -3 0 .. 0] Markers: [(Index: 0, Count: 100)] // During ToArray(), leave a gap of 100 items at index 0 QueuedCollections: [Enumerable.Range(1, 100)] // Stage 2: Call ToArray() Array: [0 0 0 .. 0 -1 -2 -3] // The first 100 slots are empty. // Stage 3: Loop thru each of the indices in Markers and copy the corresponding // queued collection to that index. Array: [1 2 3 ... 100 -1 -2 -3] ``` **Performance results:** An initial test is showing almost 50% decrease in GCs in `SelectMany(e => e).ToArray()`, assuming `e` is always an `ICollection`. [results](https://gist.github.com/jamesqo/9b1fc0a5d59fe41fd34974ad249693a9) / [test](https://github.com/jamesqo/Dotnet/blob/d64997ccef2ceec8b2903cf94ddba01e349e780b/Program.cs) **Methods this affects:** `Concat().ToArray()`, `SelectMany().ToArray()`, `Append/Prepend().ToArray()` I had to pull in the changes from https://github.com/dotnet/corefx/pull/13942 because this affects `SelectMany`, so the LOC in the diffs is exaggerated. Once/if that's merged, I'll rebase. cc @stephentoub @VSadov @JonHanna +14676 area-Infrastructure Updating CoreClr dependencies to servicing-24822-01 +14677 area-Infrastructure Add ubuntu.XX-arm to runtime.native.XX.pkgproj This patch adds ubuntu.14.04-arm and ubuntu.16.04-arm into runtime.native.XX.pkgproj Signed-off-by: chunseoklee chunseok.lee@samsung.com Related PR : #14655 (@chunseoklee is on vacation, so I revised it and made another PR.) +14680 area-System.Data SqlException: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 35 - An internal exception was caught) "Platform : Linux Centos Runtime : docker from microsoft/aspnetcore:1.1.0 System.Data.SqlClient, Version=4.1.0.0 DefaultConnection: ""Data Source=xxx;Initial Catalog=Account;Persist Security Info=True;User ID=sa;Password=xxx"" __But not appear on Windows__ TestSql1 is ok. ```c# public async Task TestSql1([FromServices]DbContextOptions options) { using (var con = new SqlConnection(options.FindExtension().ConnectionString)) { await con.OpenAsync(); using (var cmd = new SqlCommand()) { cmd.CommandText = ""select * from PhoneCodes;""; cmd.Connection = con; using (var reader = await cmd.ExecuteReaderAsync()) { while (await reader.ReadAsync()) { _logger.LogInformation(reader[0].ToString() + ""\t""); } } } } return Content(""ok""); } ``` TestSql2 is failed ```c# public async Task TestSql2([FromServices]DbContextOptions options) { using (var con = new SqlConnection(options.FindExtension().ConnectionString)) { await con.OpenAsync(); using (var cmd = new SqlCommand()) { var userNameOrEmailOrPhoneNumber = ""deviceone""; cmd.CommandText = ""SELECT TOP(1) [u].[Id], [u].[AccessFailedCount], [u].[ConcurrencyStamp], [u].[Email], [u].[EmailConfirmed], [u].[HeadUrl], [u].[LastActiveIP], [u].[LockoutEnabled], [u].[LockoutEnd], [u].[NormalizedEmail], [u].[NormalizedUserName], [u].[PasswordHash], [u].[PerfectedAccountInfo], [u].[PhoneNumber], [u].[PhoneNumberConfirmed], [u].[Prefix], [u].[PromoteCode], [u].[RegisterIP], [u].[SecurityStamp], [u].[TwoFactorEnabled], [u].[Type], [u].[TypeAuthenticated], [u].[UserName] FROM [AspNetUsers] AS [u] WHERE (([u].[UserName] = '"" + userNameOrEmailOrPhoneNumber + ""') OR ([u].[Email] = '"" + userNameOrEmailOrPhoneNumber + ""')) OR ([u].[PhoneNumber] = '"" + userNameOrEmailOrPhoneNumber + ""')""; cmd.Connection = con; using (var reader = await cmd.ExecuteReaderAsync()) { while (await reader.ReadAsync()) { _logger.LogInformation(reader[0].ToString() + ""\t""); } } } } return Content(""ok""); } ``` deviceone.account.web_1 | Executing action method DeviceOne.Account.Web.Controllers.HomeController.TestSql2 (DeviceOne.Account.Web) with arguments (Microsoft.EntityFrameworkCore.DbContextOptions`1[DeviceOne.Account.Web.Data.ApplicationDbContext]) - ModelState is Valid deviceone.account.web_1 | info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2] deviceone.account.web_1 | Request finished in 20151.2156ms 500 text/html; charset=utf-8 deviceone.account.web_1 | info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[2] deviceone.account.web_1 | Executed action DeviceOne.Account.Web.Controllers.HomeController.TestSql2 (DeviceOne.Account.Web) in 18978.5508ms deviceone.account.web_1 | fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[0] deviceone.account.web_1 | An unhandled exception has occurred while executing the request deviceone.account.web_1 | System.Data.SqlClient.SqlException: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 35 - An internal exception was caught) ---> System.IO.IOException: Unable to read data from the transport connection: Connection reset by peer. ---> System.Net.Sockets.SocketException: Connection reset by peer deviceone.account.web_1 | at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) deviceone.account.web_1 | at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult) deviceone.account.web_1 | --- End of inner exception stack trace --- deviceone.account.web_1 | at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult) deviceone.account.web_1 | at System.Net.Sockets.NetworkStream.<>c.b__58_1(IAsyncResult iar) deviceone.account.web_1 | at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) deviceone.account.web_1 | --- End of inner exception stack trace --- deviceone.account.web_1 | at System.Data.SqlClient.SqlCommand.EndExecuteReader(IAsyncResult asyncResult) deviceone.account.web_1 | at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at DeviceOne.Account.Web.Controllers.HomeController.d__8.MoveNext() in /root/Account/src/DeviceOne.Account.Web/Controllers/HomeController.cs:line 84 deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() deviceone.account.web_1 | at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__27.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.GetResult() deviceone.account.web_1 | at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__25.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context) deviceone.account.web_1 | at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) deviceone.account.web_1 | at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__22.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ResourceExecutedContext context) deviceone.account.web_1 | at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) deviceone.account.web_1 | at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__20.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.GetResult() deviceone.account.web_1 | at Microsoft.AspNetCore.Builder.RouterMiddleware.d__4.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.GetResult() deviceone.account.web_1 | at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at IdentityServer4.AccessTokenValidation.IdentityServerAuthenticationMiddleware.d__6.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at IdentityServer4.Hosting.IdentityServerMiddleware.d__3.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at IdentityServer4.Hosting.FederatedSignOutMiddleware.d__6.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at IdentityServer4.Hosting.AuthenticationMiddleware.d__2.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.GetResult() deviceone.account.web_1 | at Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.d__7.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at IdentityServer4.Hosting.BaseUrlMiddleware.d__2.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.GetResult() deviceone.account.web_1 | at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.GetResult() deviceone.account.web_1 | at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.GetResult() deviceone.account.web_1 | at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.GetResult() deviceone.account.web_1 | at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware`1.d__18.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.GetResult() deviceone.account.web_1 | at Microsoft.AspNetCore.Cors.Infrastructure.CorsMiddleware.d__7.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.GetResult() deviceone.account.web_1 | at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware.d__5.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.GetResult() deviceone.account.web_1 | at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.d__6.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.d__6.MoveNext() deviceone.account.web_1 | --- End of stack trace from previous location where exception was thrown --- deviceone.account.web_1 | at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) deviceone.account.web_1 | at System.Runtime.CompilerServices.TaskAwaiter.GetResult() deviceone.account.web_1 | at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.d__7.MoveNext() deviceone.account.web_1 | ClientConnectionId:72c97f70-9df8-4533-8d2b-9987a0e53675" +14681 area-System.Xml Test failure: System.Xml.Tests.CreateElementTests/NameWithWhitespace Opened on behalf of @Jiayili1 The test `System.Xml.Tests.CreateElementTests/NameWithWhitespace` has failed. Assert.Throws() Failure\r Expected: typeof(System.Xml.XmlException)\r Actual: typeof(System.Xml.XmlException): The ' ' character, hexadecimal value 0x20, cannot be included in a name. Stack Trace: at System.Xml.XmlDocument.CheckName(String name) at System.Xml.XmlElement..ctor(XmlName name, Boolean empty, XmlDocument doc) at System.Xml.XmlDocument.CreateElement(String prefix, String localName, String namespaceURI) at System.Xml.XmlDocument.CreateElement(String name) Build : Master - 20161221.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161221.02/workItem/System.Xml.XmlDocument.Tests/analysis/xunit/System.Xml.Tests.CreateElementTests~2FNameWithWhitespace Same issue for the tests: System.Xml.Tests.CreateElementTests/NameWithWhitespace System.Xml.Tests.CreateElementTests/NamespaceAndLocalNameWithColon System.Xml.Tests.CreateElementTests/NamespaceWithNoLocalName +14682 area-System.Memory Span: Fix fast Span TFM in System.Memory Right now fast span has a netcoreapp1.1 but the fast span doesn't actually exist in there. It should be whatever the next version of netcoreapp is going to be called. /cc @ahsonkhan @ericstj @weshaggard @KrzysztofCwalina +14683 area-Infrastructure Updating CoreClr dependencies to servicing-24822-02 +14684 area-System.Net can't join Multicast group on Linux - no IGMP ADD_MEMBERSHIP report visible in Wireshark "I'm having trouble joining mcast group on Linux I'm using the following code: ``` Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); sock.Bind(new IPEndPoint("""", MulticastGroupPort)); sock.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse(""""))); ``` but I can't see any ADD_MEMBERSHIP report in WireShark and of course I'm not receiving any data I've tried various combinations of above, but with no success is it possible to receive data from multicast group without using UdpClient ? " +14685 area-System.Linq Add regression test for DynamicExpression in BinaryOperationBinder #3556 recommended adding a regression test. This was never done +14686 area-Infrastructure ExcludeFromCodeCoverageAssemblyAttribute for excluding assemblies Treated like ExcludeFromCodeCoverageAttribute by OpenCover but doesn't clash with the public form of that attribute in being allowed on assemblies. Fixes #14488 CC @mellinoe @dotnet-bot test code coverage +14687 area-System.Collections Add tests for BitArray.Clone with large lengths Fixes dotnet/coreclr#2366 Implementation has been fixed, tests never added +14688 area-Infrastructure Remove VSTS Symbol publish step from checked in definitions Removes an unnecessary step from the build, decoupling a dependency that has caused build failures. When we add this back in, I think we should try to run it in the publish build to isolate it better. @chcosta +14690 area-System.Net Implement Websockets connections with HttpListener on Unix. +14691 area-System.Net Implement https connection support for the managed HttpListener This requires a mechanism to get the ssl certificate info to use on the port of httplistener connection. Possible solutions: - Expose an API that gets the cert filename on Unix and throws PNSE on Windows. - Create a tool to maintain/create/delete httplistener certs, mimicking windows httpcfg. Current behavior: - Connections drop on https. +14692 area-System.Net Port Unix implementation of System.Net.HttpListener pending issues #14690 #14691 fixes #13187 cc @stephentoub @geoffkizer @CIPop @davidsh @karelz +14693 area-Serialization Improve ReflectionReader.ReadISerializable's Performance `ReflectionReader.ReadISerializable` currently uses Constructor.Invoke to create ISerializable objects, which is very slow. We need to investigate if there's any better way to create the objects. +14695 area-System.ComponentModel Remove dependency to System.Net.WebClient from the DesigntimeLicenseContext type +14696 area-Infrastructure Manifest mismatch exception when referencing Microsoft.NETCore.App 1.2.0 for an application targeting netcoreapp1.0 "`dotnet --version: 1.0.0-preview2-1-003180` (This CLI which supports netcoreapp1.1 > netstandard1.7 ### project.json: ``` { ""buildOptions"": { ""emitEntryPoint"": true }, ""frameworks"": { ""netcoreapp1.0"": { ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.2.0-*"" }, ""System.ComponentModel.TypeConverter"": ""4.4.0-*"" } } } } ``` ### Program.cs ``` public class Program { public static void Main() => System.Console.WriteLine(""Hello World!""); } ``` Running dotnet run on the project fails with ``` Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'System.Threading, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) at System.Console.EnsureInitialized[T](T& field, Func`1 initializer) at System.Console.get_Out() at System.Console.WriteLine(String value) at Program.Main() in \mna-2\Program.cs:line 3 ```" +14697 area-Infrastructure Updating CoreClr dependencies to servicing-24823-01 +14698 area-System.Net SslStream.WriteAsync hangs after updating to CoreFx 4.4 We've recently updated package references in Kestrel to CoreFx 4.4 https://github.com/aspnet/KestrelHttpServer/commit/5b8f7c2b2be5744edac8ce3c5a2dea86ed65b8ee. After this update, Kestrel can't serve HTTPS anymore. We have a stream that wraps an `SslStream`, and it's hanging when writing here: https://github.com/aspnet/KestrelHttpServer/blob/5b8f7c2b2be5744edac8ce3c5a2dea86ed65b8ee/src/Microsoft.AspNetCore.Server.Kestrel/Filter/Internal/StreamSocketOutput.cs#L59 Reproing is straightforward: just run the Kestrel sample app (under `samples/SampleApp` in the repo) and hit it with any client, and you will see the hang. This only happens on .NET Core. Desktop .NET works fine. +14701 area-System.IO The System.IO.FileSystem.Watcher.Tests assemble threw 'System.Diagnostics.Debug+DebugAssertException' when building No results generated. 2016-12-22 15:30:03,398: INFO: proc(55): run_and_log_output: Output: Unhandled Exception: System.Diagnostics.Debug+DebugAssertException: FILE_ACTION_RENAMED_NEW_NAME with no old name! [ 3jmpqvmh.m5t] 2016-12-22 15:30:03,398: INFO: proc(55): run_and_log_output: Output: 2016-12-22 15:30:03,398: INFO: proc(55): run_and_log_output: Output: at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 2016-12-22 15:30:03,398: INFO: proc(55): run_and_log_output: Output: at System.Environment.get_StackTrace() 2016-12-22 15:30:03,398: INFO: proc(55): run_and_log_output: Output: at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 2016-12-22 15:30:03,398: INFO: proc(55): run_and_log_output: Output: at System.Diagnostics.Debug.Fail(String message) 2016-12-22 15:30:03,398: INFO: proc(55): run_and_log_output: Output: at System.IO.FileSystemWatcher.ParseEventBufferAndNotifyForEach(Byte[] buffer) 2016-12-22 15:30:03,400: INFO: proc(55): run_and_log_output: Output: at System.IO.FileSystemWatcher.ReadDirectoryChangesCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* overlappedPointer) 2016-12-22 15:30:03,400: INFO: proc(55): run_and_log_output: Output: at System.Threading.ThreadPoolBoundHandleOverlapped.CompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 2016-12-22 15:30:03,400: INFO: proc(55): run_and_log_output: Output: at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 2016-12-22 15:30:03,400: INFO: proc(55): run_and_log_output: Output: at System.Diagnostics.Debug.WindowsDebugLogger.ShowAssertDialog(String stackTrace, String message, String detailMessage) 2016-12-22 15:30:03,400: INFO: proc(55): run_and_log_output: Output: at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 2016-12-22 15:30:03,400: INFO: proc(55): run_and_log_output: Output: at System.Diagnostics.Debug.Fail(String message) 2016-12-22 15:30:03,400: INFO: proc(55): run_and_log_output: Output: at System.IO.FileSystemWatcher.ParseEventBufferAndNotifyForEach(Byte[] buffer) 2016-12-22 15:30:03,400: INFO: proc(55): run_and_log_output: Output: at System.IO.FileSystemWatcher.ReadDirectoryChangesCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* overlappedPointer) 2016-12-22 15:30:03,400: INFO: proc(55): run_and_log_output: Output: at System.Threading.ThreadPoolBoundHandleOverlapped.CompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 2016-12-22 15:30:03,400: INFO: proc(55): run_and_log_output: Output: at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161222.03/workItem/System.IO.FileSystem.Watcher.Tests/details/859862c0-e711-46dd-9d09-30d6df458644 Build: 20161222.03 - Core Tests Failing configurations: Windows.10.Core.AMD64 +14703 area-Infrastructure Code coverage CI runs are failing "Code coverage runs are failing with commands along the lines of: ``` D:\j\workspace\code_coverage---fc4f7f0d\Tools\CodeCoverage.targets(82,5): error MSB3073: The command ""D:\j\workspace\code_coverage---fc4f7f0d\packages/ReportGenerator\2.5.0\tools\ReportGenerator.exe -targetdir:D:\j\workspace\code_coverage---fc4f7f0d\bin/tests/coverage\ -reporttypes:Html;Badges -reports:D:\j\workspace\code_coverage---fc4f7f0d\bin/tests/coverage\\*.coverage.xml"" exited with code 1. [D:\j\workspace\code_coverage---fc4f7f0d\build.proj ``` The last successful run was on the 12th." +14704 area-Infrastructure Updating CoreClr dependencies to servicing-24823-02 +14705 area-Infrastructure System.IO.Compression.ZipFile assembly empty for net46 The `System.IO.Compression.ZipFile` assembly does not contain any public classes for net46. I expected the package to at least, well, contain the `ZipFile` class. Background: Because of issues like dotnet/sdk#514, I've enabled `DisableImplicitFrameworkReferences` in my project when building for `net46` and I'm not referencing the NetFX versions of `System.IO.Compression` and friends. But it appears that in this configuration the `ZipFile` class is not available. Verified on both the public 4.3.0 NuGet package as well as the 4.4.0-beta-24823-02 package from MyGet +14706 area-Infrastructure Don't errorandcontinue for serialized projects Failures are getting ignored in CI. Turning off ErrorAndContinue for serialized projects. I don't think that for serialized builds (ref.builds, src.builds, packages.builds) we want to error and continue because a ref build failure will always cause a src build failure which will always cause a packages build failure. Regardless, I think this may only be part of the problem, I also think that the target ordering changes I've done may be causing MSBuildLastTaskResult to not be properly set which is hiding failures). I'm using this PR to test the CI and see if it catches anything with serialized builds. +14707 area-Infrastructure Updating CoreClr dependencies to servicing-24823-03 +14708 area-System.Collections Allow KeyedCollection Derived Class to Provide Different Implementation of IDictionary Title says it all. Since [Dictionary](https://msdn.microsoft.com/en-us/library/ms132468.aspx) property only specifies the interface [IDictionary(TKey, TValue)](https://msdn.microsoft.com/en-us/library/s4ys34ea.aspx) instead of actual class, it could be good if derived class is allowed to provide its own dictionary implementation by overriding a method. +14709 area-Infrastructure Updating CoreClr dependencies to servicing-24824-01 +14711 area-Infrastructure Updating CoreClr dependencies to servicing-24824-02 +14712 area-Infrastructure Updating CoreClr dependencies to servicing-24825-01 +14714 area-Infrastructure Updating CoreClr dependencies to servicing-24825-02 +14715 area-System.Net Unknown cURL error when using HTTP/2 to connect to api.push.apple.com "Using .NET Core 1.1 on macOS ""Sierra"" 10.12.2 (build 16C67). When using `System.Net.Http.HttpClient` to try connect via HTTP/2 to api.push.apple.com, there's some unexplained cURL error - see below. The exception is not descriptive enough to attempt to troubleshoot, and as the connection is encrypted, I cannot examine it and compare the transmissions to a working reference implementation. **Repro code:**
```c# using System; using System.Net.Http; using System.Threading.Tasks; namespace ConsoleApplication { public class Program { public static int Main(string[] args) => MainAsync(args).GetAwaiter().GetResult(); static async Task MainAsync(string[] args) { try { using (var client = new HttpClient()) { var request = new HttpRequestMessage(HttpMethod.Post, ""https://api.push.apple.com/3/device/AAA""); request.Version = new Version(2, 0); var response = await client.SendAsync(request); Console.WriteLine($""HTTP Status Code: {response.StatusCode}""); Console.WriteLine(await response.Content.ReadAsStringAsync()); } return 0; } catch (Exception ex) { WriteExceptionRecursive(ex); return -1; } } static void WriteExceptionRecursive(Exception ex) { if (ex.InnerException != null) { WriteExceptionRecursive(ex.InnerException); } Console.WriteLine($""{ex.GetType().Name}: {ex.Message}""); Console.WriteLine(ex.StackTrace); Console.WriteLine(); } } } ```

**Output:** ``` [04:13pm yaakov@Expression:/tmp/netcore_apple] dotnet run Project netcore_apple (.NETCoreApp,Version=v1.1) will be compiled because inputs were modified Compiling netcore_apple for .NETCoreApp,Version=v1.1 Compilation succeeded. 0 Warning(s) 0 Error(s) Time elapsed 00:00:01.4441779 CurlException: Failure when receiving data from the peer at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) IOException: The read operation failed, see inner exception. at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.StreamToStreamCopy.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpContent.d__48.MoveNext() HttpRequestException: Error while copying content to a stream. at System.Net.Http.HttpContent.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at ConsoleApplication.Program.d__1.MoveNext() in /private/tmp/netcore_apple/Program.cs:line 21 ``` For reference, a build of the cURL command-line client that supports HTTP/2 provides the following output:
``` [04:21pm yaakov@Expression:/tmp/netcore_apple] /usr/local/Cellar/curl/7.52.1/bin/curl -v --http2 -X POST https://api.push.apple.com/3/device/AAA * Trying 17.188.160.207... * TCP_NODELAY set * Connected to api.push.apple.com (17.188.160.207) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * successfully set certificate verify locations: * CAfile: /usr/local/etc/openssl/cert.pem CApath: /usr/local/etc/openssl/certs * TLSv1.2 (OUT), TLS header, Certificate Status (22): * TLSv1.2 (OUT), TLS handshake, Client hello (1): * TLSv1.2 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Request CERT (13): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Certificate (11): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Client hello (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS change cipher, Client hello (1): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 * ALPN, server accepted to use h2 * Server certificate: * subject: CN=api.push.apple.com; OU=management:idms.group.533599; O=Apple Inc.; ST=California; C=US * start date: Aug 28 19:03:46 2015 GMT * expire date: Sep 26 19:03:46 2017 GMT * subjectAltName: host ""api.push.apple.com"" matched cert's ""api.push.apple.com"" * issuer: CN=Apple IST CA 2 - G1; OU=Certification Authority; O=Apple Inc.; C=US * SSL certificate verify ok. * Using HTTP2, server supports multi-use * Connection state changed (HTTP/2 confirmed) * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 * Using Stream ID: 1 (easy handle 0x7fd42980b000) > POST /3/device/AAA HTTP/1.1 > Host: api.push.apple.com > User-Agent: curl/7.52.1 > Accept: */* > * Connection state changed (MAX_CONCURRENT_STREAMS updated)! < HTTP/2 403 < apns-id: 1AD32888-F1A3-3494-BCBD-2783E02F7AD3 < * Curl_http_done: called premature == 0 * Connection #0 to host api.push.apple.com left intact {""reason"":""MissingProviderToken""} ```
" +14716 area-Infrastructure Updating CoreClr dependencies to servicing-24826-01 +14717 area-System.IO .NET Core web app fails to run from a path containing a question mark "_From @yaakov-h on December 26, 2016 0:15_ **Operating System:** macOS ""Sierra"" 12.12.2 **.NET Core SDK:** [.NET Core 1.1 x64 SDK 1.0.0](https://download.microsoft.com/download/1/4/1/141760B3-805B-4583-B17C-8C5BC5A876AB/Installers/dotnet-dev-osx-x64.1.0.0-preview2-1-003177.pkg) I created a new folder at `/Users/yaakov/Development/Projects/Who knows?/BuzzerServer`. I then created a new web project with `dotnet new -t Web`, ran `dotnet restore` and `dotnet run`. This resulted in the following exception: ``` Project BuzzerServer (.NETCoreApp,Version=v1.1) will be compiled because inputs were modified Compiling BuzzerServer for .NETCoreApp,Version=v1.1 /Users/yaakov/Development/Projects/Who knows?/BuzzerServer/project.lock.json(1,0): warning NU1006: Dependencies in project.json were modified. Please run ""dotnet restore"" to generate a new lock file. Compilation succeeded. 1 Warning(s) 0 Error(s) Time elapsed 00:00:02.0939920 Unhandled Exception: System.ArgumentException: Invalid directory on URL. at System.Security.Util.DirectoryString.CreateSeparatedString(String directory) at System.Security.Util.URLString.ParseString(String url, Boolean parsed) at System.Security.Util.URLString.GetFileName() at System.Reflection.RuntimeAssembly.VerifyCodeBaseDiscovery(String codeBase) at System.Reflection.RuntimeAssembly.GetName(Boolean copiedName) at Microsoft.AspNetCore.Hosting.WebHostBuilderExtensions.UseStartup(IWebHostBuilder hostBuilder, Type startupType) at WebApplication.Program.Main(String[] args) in /Users/yaakov/Development/Projects/Who knows?/BuzzerServer/Program.cs:line 14 ``` If I move the folder to a path that does not contain a question mark, the project runs successfully. ``` Compiling BuzzerServer for .NETCoreApp,Version=v1.1 Compilation succeeded. 0 Warning(s) 0 Error(s) Time elapsed 00:00:02.1489371 info: Microsoft.Extensions.DependencyInjection.DataProtectionServices[0] User profile is available. Using '/Users/yaakov/.aspnet/DataProtection-Keys' as key repository; keys will not be encrypted at rest. Hosting environment: Production Content root path: /Users/yaakov/Development/Projects/Active/BuzzerServer Now listening on: http://localhost:5000 Application started. Press Ctrl+C to shut down. ``` _Copied from original issue: aspnet/Home#1890_" +14718 area-Infrastructure Updating CoreClr dependencies to servicing-24826-02 +14721 area-Meta ServiceDescriptor can through attributes registration? such as ` [ServiceDescriptor(typeof(IUser),ServiceLifetime.Transient)]` +14722 area-System.Security [WIP] Add DSACertificateExtension extension methods Add DSACertificateExtension extension methods with DSACertificateExtension ::GetPublicKey and DSACertificateExtensions::GetPrivateKey methods to retrieve DSA public and private keys. Fixes #11802 +14723 area-Infrastructure Updating CoreClr dependencies to servicing-24827-01 +14724 area-System.Runtime Add new API for collectible AssemblyLoadContext This is related to the undergoing work on coreclr: [Collectible assemblies and AssemblyLoadContext](https://github.com/dotnet/coreclr/pull/8677) I would like to add the following API to the `System.Runtime.Loader.AssemblyLoadContext`: ```csharp // Allow to create a Collectible ALC. The default constructor will call this method with false protected AssemblyLoadContext(bool isCollectible); // Returns true if this ALC is collectible public bool IsCollectible {get; } // Allows to explicitly unload an ALC. Once this method is called, // any call to LoadFromXXX method will throw an exception public void Unload(); ``` +14725 area-System.ComponentModel Delete EditorBrowsableAttribute and EditorBrowsableState from CoreFX (was moved to CoreCLR) dotnet/coreclr#8703 moved EditorBrowsableAttribute and EditorBrowsableState into System.Private.CoreLib.dll. We need to delete it from CoreFX repo ([file](https://github.com/dotnet/corefx/blob/9d0736e2abcfe7c82309cf33a57267a5e33fc8c9/src/System.Runtime/src/System/ComponentModel/EditorBrowsableAttribute.cs)) to avoid duplicate definition (see issue in https://github.com/dotnet/corefx/pull/14719#issuecomment-269377688). cc: @jkotas +14726 area-System.Runtime Update CoreClr, CoreFx, ProjectNTfs to beta-24827-03, beta-24827-01, beta-24827-00, respectively (master) +14728 area-Meta Replace all apiset references with classic dll references [2 failures](https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/1688/) in PR https://github.com/dotnet/corefx/pull/14726#issuecomment-269396959: **[System.IO.Pipes.Tests.NamedPipeTest_Specific.Windows_Get_NumberOfServerInstances_Succeed](https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/1688/testReport/junit/System.IO.Pipes.Tests/NamedPipeTest_Specific/Windows_Get_NumberOfServerInstances_Succeed/):**
MESSAGE: System.BadImageFormatException : An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) +++++++++++++++++++ STACK TRACE: at System.IO.Pipes.Tests.Interop.GetNamedPipeHandleState(SafePipeHandle hNamedPipe, IntPtr lpState, Int32& lpCurInstances, IntPtr lpMaxCollectionCount, IntPtr lpCollectDataTimeout, StringBuilder lpUserName, Int32 nMaxUserNameSize) at System.IO.Pipes.Tests.Interop.TryGetNumberOfServerInstances(SafePipeHandle handle, Int32& numberOfServerInstances) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.Pipes\tests\Interop.cs:line 58 at System.IO.Pipes.Tests.NamedPipeTest_Specific.d__5.MoveNext() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.Pipes\tests\NamedPipeTests\NamedPipeTest.Specific.cs:line 185 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

**[System.IO.Pipes.Tests.NamedPipeTest_Specific.Windows_GetImpersonationUserName_Succeed](https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/1688/testReport/junit/System.IO.Pipes.Tests/NamedPipeTest_Specific/Windows_GetImpersonationUserName_Succeed/):**
``` MESSAGE: System.BadImageFormatException : An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) +++++++++++++++++++ STACK TRACE: at System.IO.Pipes.Tests.Interop.GetNamedPipeHandleState(SafePipeHandle hNamedPipe, IntPtr lpState, Int32& lpCurInstances, IntPtr lpMaxCollectionCount, IntPtr lpCollectDataTimeout, StringBuilder lpUserName, Int32 nMaxUserNameSize) at System.IO.Pipes.Tests.Interop.TryGetImpersonationUserName(SafePipeHandle handle, String& userName) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.Pipes\tests\Interop.cs:line 44 at System.IO.Pipes.Tests.NamedPipeTest_Specific.d__6.MoveNext() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.Pipes\tests\NamedPipeTests\NamedPipeTest.Specific.cs:line 207 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ```
+14729 area-System.Linq Run the selector on Skipped items. It seems that while we can do certain optimization based on the known size of the resulting sequence after `Skip` is applied, but not running selectors on skipped items during enumeration is observable and could be unexpected. The following queries seem to have subtly different meaning - `list.Select(s).Skip(10)` `list.Skip(10).Select(s)` +14730 area-Infrastructure Instructions to work with local coreclr build and API changes on corefx This is related to the work on [collectible AssemblyLoadContext](https://github.com/dotnet/coreclr/pull/8677#issuecomment-269397257) on coreclr and the issue #14724 I have made changes to `System.Private.CoreLib` and I would like to add the relevant API changes to `AssemblyLoadContext.cs` in corefx and add tests against this API, using my local build of coreclr. So on my branch on corefx, I have started to update `AssemblyLoadContext.cs` with this new API. But it seems that `BUILDTOOLS_OVERRIDE_RUNTIME` is not taken when performing an APICompat with the API. We should be able to easily build corefx with a local coreclr and make changes to the ref API to use the new API introduced by the local coreclr. +14733 area-System.Runtime Add test for order of raising AssemblyLoadContext.Unloading and AppDo… …main.ProcessExit coreclr PR: https://github.com/dotnet/coreclr/pull/8737 +14735 area-Infrastructure Need the instruction about how to integrate corefx changes with my application. I have made some changes in corefx and build it. Now I have another .Net Core application which wants to use the changes I made in corefx. How to achieve that? Need some instructions. Thanks a lot! +14736 area-System.Diagnostics Test failure: System.Diagnostics.Tests.ProcessStartInfoTests/TestArgumentsProperty Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessStartInfoTests/TestArgumentsProperty` has failed. Assert.True() Failure Expected: True Actual: False Stack Trace: at System.Diagnostics.Tests.ProcessTestBase.Dispose(Boolean disposing) at System.IO.FileCleanupTestBase.Dispose() at ReflectionAbstractionExtensions.DisposeTestClass(ITest test, Object testClass, IMessageBus messageBus, ExecutionTimer timer, CancellationTokenSource cancellationTokenSource) Build : Master - 20161227.01 (Core Tests) Failing configurations: - OSX.1011.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161227.01/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessStartInfoTests~2FTestArgumentsProperty +14738 area-System.Linq [Linq] Lower LargeArrayBuilder's ResizeLimit "**Background:** `LargeArrayBuilder` has a ""resize limit"" after which it stops resizing its buffer and switches to using chunked arrays. I initially chose this limit to be 32 elements, because I didn't want it to be too small in case `sizeof(T)` was small, but also didn't want it to be too large in case `sizeof(T)` was large. **Description:** Since writing https://github.com/dotnet/corefx/pull/14020, I've come to realize that the 90% use case for Linq is with business objects / classes, and not with low-level stuff like bytes. Since reference types are 4/8 bytes wide, it makes sense to optimize for `T` being wider. This PR lowers the resize limit of `LargeArrayBuilder` from 32 -> 8 elements. **Performance improvements:** [gist](https://gist.github.com/jamesqo/641ab9dc63f5abcade39cd7453106afa) For reference types, there is a decrease of ~5 GCs for sizes 9-15, and ~10 GCs from 17-31 and 33+. Sizes 16 and 32 regress, which is expected since the array is now chunked at those sizes and the builder can't directly return it. cc @stephentoub, @JonHanna, @VSadov " +14739 area-System.Text Change expected behavior for reported parameter names. Companion to dotnet/coreclr#8727 Fixes those tests that were failing due to changes in coreclr argument names. Desktop skips added. Will fail until the clr used for testing changes, which would cause _other_ PRs to fail. (I dunno, should we make this sort of thing a two-step process in the future? Disable the tests in one, update the clr used, _then_ correct the tests? Or would a more elegant solution be to add a line in the comments for the bot to parse and pass to the build system...?) cc @jkotas , @AlexGhiondea +14740 area-System.Globalization Test failure: System.Globalization.Tests.GregorianCalendarGetDaysInMonth/GetDaysInMonth Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.GregorianCalendarGetDaysInMonth/GetDaysInMonth` has failed. System.TypeInitializationException : The type initializer for 'System.Globalization.Tests.GregorianCalendarTestUtilities' threw an exception.\r ---- System.IO.FileNotFoundException : Could not load file or assembly 'System.Globalization.Calendars, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Stack Trace: at System.Globalization.Tests.GregorianCalendarTestUtilities.RandomLeapYear() at System.Globalization.Tests.GregorianCalendarGetDaysInMonth.d__2.MoveNext() in D:\A\_work\37\s\corefx\src\System.Globalization.Calendars\tests\GregorianCalendar\GregorianCalendarGetDaysInMonth.cs:line 20 at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() ----- Inner Stack Trace ----- at System.Globalization.Tests.GregorianCalendarTestUtilities..cctor() Build : Master - 20161227.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20161227.01/workItem/System.Globalization.Calendars.Tests/analysis/xunit/System.Globalization.Tests.GregorianCalendarGetDaysInMonth~2FGetDaysInMonth Failed Tests: System.Globalization.Tests.GregorianCalendarGetDaysInMonth/GetDaysInMonth System.Globalization.Tests.GregorianCalendarGetEra/GetEra System.Globalization.Tests.GregorianCalendarGetMonthsInYear/GetMonthsInYear System.Globalization.Tests.GregorianCalendarGetYear/GetYear +14742 area-System.Security TestPublicKey_Key_RSA failed in CI https://github.com/dotnet/corefx/pull/14732 ``` System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests.TestPublicKey_Key_RSA [FAIL] Assert.Equal() Failure Expected: Byte[] [232, 175, 92, 162, 32, ...] Actual: Byte[] [0, 0, 0, 0, 0, ...] Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest/src/System.Security.Cryptography.X509Certificates/tests/PublicKeyTests.cs(212,0): at System.Security.Cryptography.X509Certificates.Tests.PublicKeyTests.VerifyKey_RSA(RSA rsa) Finished: System.Security.Cryptography.X509Certificates.Tests === TEST EXECUTION SUMMARY === /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest/Tools/tests.targets(271,5): warning : System.Security.Cryptography.X509Certificates.Tests Total: 572, Errors: 0, Failed: 1, Skipped: 0, Time: 2.028s [/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest/src/System.Security.Cryptography.X509Certificates/tests/System.Security.Cryptography.X509Certificates.Tests.csproj] ``` @bartonjs @steveharter theories? +14745 area-System.Security X509Certificate2: Access Denied opening pfx store, if logged on using PowerShell remoting "Scenario: You're running a .NET Core program on a remote server. You are connected to that server using PowerShell remoting (i.e. via `Enter-PSSession (...)`). The remote server is not joined to a domain. In this scenario, the `X505Certificate2(string, string)` constructor fails to open a `.pfx` file with an Access Denied error message. I ended up in this scenario because I'm running a Jenkins agent on a Windows Nano Server installation, and I've launched the Jenkins agent via remoting. The following program (given you have a valid `. pfx` file and update the password): ```c# using System; using System.Security.Cryptography.X509Certificates; class Program { static void Main(string[] args) { var cert = new X509Certificate2(""certificate.pfx"", ""password"" ); } } ``` results in the following output: ``` [localhost]: PS C:\Users\jenkins\test2> ..\dotnet\dotnet.exe run ..\dotnet\dotnet.exe : + CategoryInfo : NotSpecified: (:String) [], RemoteException + FullyQualifiedErrorId : NativeCommandError Unhandled Exception: Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException: Access denied at Internal.Cryptography.Pal.CertificatePal.FilterPFXStore(Byte[] rawData, String password, PfxCertStoreFlags pfxCertStoreFlags) at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags) at Program.Main(String[] args) ``` This looks similar to #6629 which was closed because it could not be reproduced. /cc @bartonjs " +14747 area-System.Runtime Don't handle exceptions when raising Unloading and ProcessExit events The desktop behavior is to catch exceptions from each callback invocation and have the `UnhandledException` event be raised for each exception. Regardless of exceptions, all callbacks are still invoked. The desired behavior is that exceptions are not caught. `AppDomain.ProcessExit` and `AssemblyLoadContext.Unloading` are typically raised from the finalizer thread, so an unhandled exception from any handler is expected to crash the process. +14748 area-System.ComponentModel RequiredAttribute ErrorMessage and DefaultErrorMessage null by default The `ErrorMessage` and `DefaultErrorMessage` properties are used by `ValidationAttributeAdapter.GetErrorMessage` to obtain the localized error message. As the properties are null by default, another mechanism is used and the localization works inconsistently. `EmailAddressAttribute`, on the other hand, has the `DefaultErrorMessage` property set by default. Please make `RequiredAttribute` have the `DefaultErrorMessage` set as well. +14750 area-System.Runtime System.Uri(string uriBase, string uriRelative) does not work properly if uriRelative contains special characters "[This test](https://github.com/dotnet/corefx/blob/a7d6c2c5fbf870092535b6e70e25c97c2187f959/src/System.Private.Xml/tests/Xslt/XslCompiledTransformApi/XslCompiledTransform.cs#L3877) fails on Linux with error: `""System.ArgumentOutOfRangeException : Length cannot be less than zero""` Here's a smaller repro of the issue on Linux (defining `XmlNullResolver` locally): ``` string uriRelative = ""Stra%C3%9Fe.xml""; Uri uriResolved = XmlNullResolver.Singleton.ResolveUri(null, uriRelative); Console.WriteLine(""uriResolved = "" + uriResolved); ``` which results in the following failure: ``` System.ArgumentOutOfRangeException: Length cannot be less than zero. Parameter name: length Stack trace: at System.String.Substring(Int32 startIndex, Int32 length) at System.Uri.CreateHostStringHelper(String str, UInt16 idx, UInt16 end, Flags& flags, String& scopeId) at System.Uri.CreateHostString() at System.Uri.GetComponentHelper(UriComponents uriComponents, UriFormat uriFormat) at System.Uri.ToString() at System.String.Concat(Object arg0, Object arg1) .../corefx/src/System.Private.Xml/tests/Xslt/XslCompiledTransform.cs(3394,0): at System.Xml.Tests.CTransformRegressionTest.RegressionTest1(XslInputType xslInputType, ReaderType readerType, OutputType outputType, NavType navType) ``` Please note that the presence of special character in `uriRelative` is causing this failure. " +14752 area-Microsoft.CSharp Passing dynamic arg to indexer property of a generic type implementing a derived interface throws "Yes, that's a mouthful, but it's the simplest way I've been able to reproduce this! There seems to be a limitation (bug?) in RuntimeBinder when it tries to call an indexed property on an interface through a ""derived"" interface. It appears that the RuntimeBinder doesn't see the indexed property of the ""base"" interface and throws an exception: ``` Unhandled Exception: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot apply indexing with [] to an expression of type 'ConsoleApplication1.IFakeStringLocalizer2' at CallSite.Target(Closure, CallSite, IFakeStringLocalizer2, Object) at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0, T1, TRet](CallSite site, T0 arg0, T1 arg1) at ConsoleApplication1.Program.Main(String[] args) in Program.cs:line 17 ``` Long story short, here's the simplest code I've been able to make that reproduces the problem. It's very subtle and I've made a note wherever there are critical parts of the code. ```c# namespace ConsoleApplication1 { class Program { static void Main(string[] args) { // The *declared* type of this variable is IMPORTANT. Change it to the concrete type and it works IFakeStringLocalizer2 s = new FakeStringLocalizer(); dynamic d = new object(); // This next line of code throws at runtime: //Unhandled Exception: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot apply indexing with [] to an expression of type 'ConsoleApplication1.IFakeStringLocalizer2' // at CallSite.Target(Closure, CallSite, IFakeStringLocalizer2, Object) // at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0, T1, TRet](CallSite site, T0 arg0, T1 arg1) // at ConsoleApplication1.Program.Main(String[] args) in Program.cs:line 17 var x = s[d]; } } // The generic type here DOES seem to matter. public class FakeStringLocalizer : IFakeStringLocalizer2 { public int this[int b] { get { return -1; } } } // This extra interface DOES seem to matter. public interface IFakeStringLocalizer2 : IFakeStringLocalizer { } public interface IFakeStringLocalizer { // Return type and indexer arg type don't matter here int this[int b] { get; } } } ``` Originally filed here: https://github.com/aspnet/Localization/issues/308 " +14754 area-System.Console "Test failure: ConsoleEncoding/TestEncoding(inputString: \""This is Ascii string\"")" "Opened on behalf of @Jiayili1 The test `ConsoleEncoding/TestEncoding(inputString: \""This is Ascii string\"")` has failed. System.NotSupportedException : Memory stream is not expandable. Stack Trace: at System.IO.__Error.MemoryStreamNotExpandable() at System.IO.MemoryStream.set_Capacity(Int32 value) at System.IO.MemoryStream.EnsureCapacity(Int32 value) at System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count) at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder) at System.IO.StreamWriter.Dispose(Boolean disposing) at System.IO.TextWriter.Dispose() at ConsoleEncoding.TestEncoding(String inputString) Build : Master - 20161228.03 (Core Tests) Failing configurations: - Windows.81.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161228.03/workItem/System.Console.Tests/analysis/xunit/ConsoleEncoding~2FTestEncoding(inputString:%20%5C%22This%20is%20Ascii%20string%5C%22)" +14756 area-System.Data Tests under 'System.Data.SqlClient.Tests' failed with System.TypeInitializationException Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.ExceptionTest/ExceptionTests` has failed. Assert.Throws() Failure\r Expected: typeof(System.Data.SqlClient.SqlException)\r Actual: typeof(System.TypeInitializationException): The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception. Stack Trace: at System.Data.SqlClient.TdsParser..ctor(Boolean MARS, Boolean fAsynchronous) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at System.Data.SqlClient.Tests.ExceptionTest.GenerateConnectionException(String connectionString) at System.Data.SqlClient.Tests.ExceptionTest.<>c__DisplayClass5_0.b__0() Build : Master - 20161228.03 (Core Tests) Failing configurations: - Windows.7.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161228.03/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.ExceptionTest~2FExceptionTests Failed tests: System.Data.SqlClient.Tests.ExceptionTest/ExceptionTests System.Data.SqlClient.Tests.ExceptionTest/IndependentConnectionExceptionTestOpenConnection System.Data.SqlClient.Tests.SqlConnectionBasicTests/ConnectionTest System.Data.SqlClient.Tests.SqlErrorCollectionTest/CopyTo_NonGeneric_Success System.Data.SqlClient.Tests.SqlErrorCollectionTest/CopyTo_NonGeneric_Throws System.Data.SqlClient.Tests.SqlErrorCollectionTest/CopyTo_Success System.Data.SqlClient.Tests.SqlErrorCollectionTest/CopyTo_Throws System.Data.SqlClient.Tests.SqlErrorCollectionTest/GetEnumerator_Success System.Data.SqlClient.Tests.SqlErrorCollectionTest/Indexer_Success System.Data.SqlClient.Tests.SqlErrorCollectionTest/Indexer_Throws System.Data.SqlClient.Tests.SqlErrorCollectionTest/IsSynchronized_Success System.Data.SqlClient.Tests.SqlErrorCollectionTest/SyncRoot_Success +14757 area-System.Data Tests under System.Data.SqlClient.Tests.TcpDefaultForAzureTest failed with Xunit.Sdk.TrueException Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.TcpDefaultForAzureTest/AzureNoProtocolConnectionTest` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.Data.SqlClient.Tests.TcpDefaultForAzureTest.AzureNoProtocolConnectionTest() Build : Master - 20161228.03 (Core Tests) Failing configurations: - Windows.7.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161228.03/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.TcpDefaultForAzureTest~2FAzureNoProtocolConnectionTest Failed tests: System.Data.SqlClient.Tests.TcpDefaultForAzureTest/AzureNoProtocolConnectionTest System.Data.SqlClient.Tests.TcpDefaultForAzureTest/AzureNpConnectionTest System.Data.SqlClient.Tests.TcpDefaultForAzureTest/AzureTcpConnectionTest System.Data.SqlClient.Tests.TcpDefaultForAzureTest/NonAzureNoProtocolConnectionTestOnWindows System.Data.SqlClient.Tests.TcpDefaultForAzureTest/NonAzureNpConnectionTest System.Data.SqlClient.Tests.TcpDefaultForAzureTest/NonAzureTcpConnectionTest +14758 area-System.Diagnostics Test System.Diagnostics.Tests.ProcessTests/TestMaxWorkingSet failed with System.DllNotFoundException Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessTests/TestMaxWorkingSet` has failed. System.DllNotFoundException : Unable to load DLL 'api-ms-win-core-memory-l1-1-1.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) Stack Trace: at System.Diagnostics.Tests.Interop.GetProcessWorkingSetSizeEx(SafeProcessHandle hProcess, IntPtr& lpMinimumWorkingSetSize, IntPtr& lpMaximumWorkingSetSize, UInt32& flags) at System.Diagnostics.Tests.ProcessTests.TestMaxWorkingSet() Build : Master - 20161228.03 (Core Tests) Failing configurations: - Windows.7.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161228.03/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessTests~2FTestMaxWorkingSet Failed tests: System.Diagnostics.Tests.ProcessTests/TestMinWorkingSet +14760 area-System.Data DbConnection.Dispose() stopped calling DbConnection.Close() in DataSet commit The behavior changed in https://github.com/dotnet/corefx/commit/7888677b3c53596085c2fa53860d9a0519eeecfd#diff-d7bff8835e6985ab9107a59a282e1a60L153 which made `DbConnection` inherit the `Dispose()` implementation from `Component`. It triggered a failure in an EF Core test (see https://github.com/aspnet/EntityFramework/pull/7323). I am creating this issue so that the SqlClient team has a chance to figure out if this change is intentional. +14763 area-System.Runtime [Wip] Add API and Tests for Collectible Assemblies and AssemblyLoadContext This is a first set of tests for collectible assemblies. This is related to adding new API for corefx #14724 and the undergoing work on the coreclr PR [Collectible Assemblies and AssemblyLoadContext](https://github.com/dotnet/coreclr/pull/8677) This is still a WIP. I'm adding these tests for a followup with the PR on coreclr. cc: @jkotas @gkhanna79 @kouvel @rahku +14764 area-Infrastructure Catch failures in dev/eng branch Traversal has changed. ErrorAndContinue was hiding build failures. - https://github.com/dotnet/corefx/issues/14581 Move project annotation into buildvertical.targets, should be easier to move this code around with parts of it not in build.proj. Update system.memory configuration /cc @ericstj @weshaggard @mellinoe +14765 area-Infrastructure Change pb_officialbuildid to officialbuildid +14766 area-Infrastructure Change pb_sourceversion variable to sourceversion +14767 area-System.Net Harden System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_SupportedSSLVersion_Succeeds and GetAsync_UnsupportedSSLVersion_Throws "These two tests account for 78 CI failures from Dec 1 - 28 which is 10% of System.Net* failures. Assuming the tests fail because they access www.ssllabs.com which (apparently) is not reliable. However, since the failures are coming mostly from centos that needs to be taken into consideration as a cause as well. If the failures are due to www.ssllabs.com being unreliable, we should add a check to ensure the web site is available before invoking it for the test. Or come up with some other similar mechanism to reduce CI failures. ```` Test Case: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_SupportedSSLVersion_Succeeds(name: \""TLSv1.2\"", url: \""https://www.ssllabs.com:10303/\"") Failed Jenkins Jobs Build Number Machine Name Date dotnet_corefx/master/outerloop_centos7.1_release 28 centos71-20160609-1-outer39e350 12/01 04:32 PM dotnet_corefx/master/outerloop_centos7.1_debug 29 centos71-20160609-1-outer5140a0 12/01 07:53 AM dotnet_corefx/master/outerloop_centos7.1_release 29 centos71-20160609-1-outerf7e7a0 12/02 04:33 PM dotnet_corefx/master/outerloop_centos7.1_debug 30 centos71-20160609-1-outer8e8da0 12/02 07:53 AM dotnet_corefx/master/outerloop_centos7.1_release 30 centos71-20160609-1-outerec3110 12/03 04:32 PM dotnet_corefx/master/outerloop_centos7.1_release 31 centos71-20160609-1-outere07ae0 12/04 04:33 PM dotnet_corefx/master/outerloop_centos7.1_debug 32 centos71-20160609-1-outer772080 12/04 07:52 AM dotnet_corefx/master/outerloop_centos7.1_debug 33 centos71-20160609-1-outer6b69f0 12/05 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 32 centos71-20160609-1-outerc90b80 12/06 04:32 PM dotnet_corefx/master/outerloop_centos7.1_release 33 centos71-20160609-1-outerbd57a0 12/07 04:32 PM dotnet_corefx/master/outerloop_centos7.1_debug 34 centos71-20160609-1-outer53fda0 12/07 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 34 centos71-20160609-1-outerb19300 12/08 04:32 PM dotnet_corefx/master/outerloop_centos7.1_debug 35 centos71-20160609-1-outer484710 12/08 07:52 AM dotnet_corefx/master/outerloop_opensuse13.2_debug 35 suse132-20160315-outer6a28c0 12/08 05:14 PM dotnet_corefx/dev_apple_crypto/outerloop_centos7.1_debug 4 centos71-20160609-1-outer43c870 12/08 09:35 PM dotnet_corefx/master/outerloop_centos7.1_release 35 centos71-20160609-1-outera5ea80 12/09 04:32 PM dotnet_corefx/master/outerloop_centos7.1_release 36 centos71-20160609-1-outera7cb80 12/10 04:35 PM dotnet_corefx/master/outerloop_centos7.1_debug 37 centos71-20160609-1-outer30d750 12/10 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 37 centos71-20160609-1-outer9c2310 12/11 04:34 PM dotnet_corefx/master/outerloop_centos7.1_debug 38 centos71-20160609-1-outer2f2700 12/11 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 38 centos71-20160609-1-outer8deec0 12/12 12:19 PM dotnet_corefx/master/outerloop_centos7.1_debug 39 centos71-20160609-1-outer237070 12/12 07:52 AM dotnet_corefx/master/outerloop_centos7.1_debug 40 centos71-20160609-1-outer86f110 12/12 12:14 PM dotnet_corefx/master/outerloop_centos7.1_release 39 centos71-20160609-1-outer84a7e0 12/13 04:35 PM dotnet_corefx/master/outerloop_centos7.1_debug 41 centos71-20160609-1-outer5df8f0 12/13 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 41 centos71-20160609-1-outer3162b0 12/15 04:30 PM dotnet_corefx/master/outerloop_centos7.1_debug 43 centos71-20160609-1-outer4ccf70 12/15 07:52 AM dotnet_corefx/master/outerloop_opensuse42.1_release 42 suse421-20160920-outer71c900 12/16 12:46 PM dotnet_corefx/master/outerloop_centos7.1_debug 44 centos71-20160609-1-outerf495c0 12/16 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 43 centos71-20160609-1-outer578200 12/17 04:35 PM dotnet_corefx/master/outerloop_centos7.1_debug 45 centos71-20160609-1-outere8df40 12/17 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 44 centos71-20160609-1-outer4a24b0 12/18 04:34 PM dotnet_corefx/master/outerloop_centos7.1_debug 46 centos71-20160609-1-outere26360 12/18 07:56 AM dotnet_corefx/master/outerloop_centos7.1_release 45 centos71-20160609-1-outer7e37d0 12/20 04:30 PM dotnet_corefx/master/outerloop_centos7.1_debug 47 centos71-20160609-1-outercaf640 12/20 07:56 AM dotnet_corefx/master/outerloop_centos7.1_release 46 centos71-20160609-1-outer2d8f90 12/21 04:32 PM dotnet_corefx/master/outerloop_centos7.1_debug 49 centos71-20160609-1-outerb854b0 12/22 07:52 AM dotnet_corefx/dev_apple_crypto/outerloop_centos7.1_debug 5 centos71-20160609-1-outerb04220 12/22 09:33 PM dotnet_corefx/dev_apple_crypto/outerloop_centos7.1_release 5 centos71-20160609-1-outere5a090 12/22 05:19 AM dotnet_corefx/master/outerloop_centos7.1_release 48 centos71-20160609-1-outer199a30 12/23 04:35 PM dotnet_corefx/master/outerloop_centos7.1_debug 50 centos71-20160609-1-outerb75f40 12/23 07:53 AM dotnet_corefx/master/outerloop_centos7.1_debug 51 centos71-20160609-1-outer897c50 12/26 07:52 AM dotnet_corefx/master/outerloop_centos7.1_debug 52 centos71-20160609-1-outer720f40 12/28 07:53 AM ```` ```` Test Case: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_SupportedSSLVersion_Succeeds(name: \""TLSv1.1\"", url: \""https://www.ssllabs.com:10302/\"") Failed Jenkins Jobs Build Number Machine Name Date dotnet_corefx/master/outerloop_centos7.1_release 28 centos71-20160609-1-outer39e350 12/01 04:32 PM dotnet_corefx/master/outerloop_centos7.1_debug 29 centos71-20160609-1-outer5140a0 12/01 07:53 AM dotnet_corefx/master/outerloop_centos7.1_release 29 centos71-20160609-1-outerf7e7a0 12/02 04:33 PM dotnet_corefx/master/outerloop_centos7.1_debug 30 centos71-20160609-1-outer8e8da0 12/02 07:53 AM dotnet_corefx/master/outerloop_centos7.1_release 30 centos71-20160609-1-outerec3110 12/03 04:32 PM dotnet_corefx/master/outerloop_centos7.1_release 31 centos71-20160609-1-outere07ae0 12/04 04:33 PM dotnet_corefx/master/outerloop_centos7.1_debug 32 centos71-20160609-1-outer772080 12/04 07:52 AM dotnet_corefx/master/outerloop_centos7.1_debug 33 centos71-20160609-1-outer6b69f0 12/05 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 32 centos71-20160609-1-outerc90b80 12/06 04:32 PM dotnet_corefx/master/outerloop_centos7.1_release 33 centos71-20160609-1-outerbd57a0 12/07 04:32 PM dotnet_corefx/master/outerloop_centos7.1_debug 34 centos71-20160609-1-outer53fda0 12/07 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 34 centos71-20160609-1-outerb19300 12/08 04:32 PM dotnet_corefx/master/outerloop_centos7.1_debug 35 centos71-20160609-1-outer484710 12/08 07:52 AM dotnet_corefx/master/outerloop_opensuse13.2_debug 35 suse132-20160315-outer6a28c0 12/08 05:14 PM dotnet_corefx/dev_apple_crypto/outerloop_centos7.1_debug 4 centos71-20160609-1-outer43c870 12/08 09:35 PM dotnet_corefx/master/outerloop_centos7.1_release 35 centos71-20160609-1-outera5ea80 12/09 04:32 PM dotnet_corefx/master/outerloop_centos7.1_release 36 centos71-20160609-1-outera7cb80 12/10 04:35 PM dotnet_corefx/master/outerloop_centos7.1_debug 37 centos71-20160609-1-outer30d750 12/10 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 37 centos71-20160609-1-outer9c2310 12/11 04:34 PM dotnet_corefx/master/outerloop_centos7.1_debug 38 centos71-20160609-1-outer2f2700 12/11 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 38 centos71-20160609-1-outer8deec0 12/12 12:19 PM dotnet_corefx/master/outerloop_centos7.1_debug 39 centos71-20160609-1-outer237070 12/12 07:52 AM dotnet_corefx/master/outerloop_centos7.1_debug 40 centos71-20160609-1-outer86f110 12/12 12:14 PM dotnet_corefx/master/outerloop_centos7.1_release 39 centos71-20160609-1-outer84a7e0 12/13 04:35 PM dotnet_corefx/master/outerloop_centos7.1_debug 41 centos71-20160609-1-outer5df8f0 12/13 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 41 centos71-20160609-1-outer3162b0 12/15 04:30 PM dotnet_corefx/master/outerloop_centos7.1_debug 43 centos71-20160609-1-outer4ccf70 12/15 07:52 AM dotnet_corefx/master/outerloop_centos7.1_debug 44 centos71-20160609-1-outerf495c0 12/16 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 43 centos71-20160609-1-outer578200 12/17 04:35 PM dotnet_corefx/master/outerloop_centos7.1_debug 45 centos71-20160609-1-outere8df40 12/17 07:52 AM dotnet_corefx/master/outerloop_centos7.1_release 44 centos71-20160609-1-outer4a24b0 12/18 04:34 PM dotnet_corefx/master/outerloop_centos7.1_debug 46 centos71-20160609-1-outere26360 12/18 07:56 AM dotnet_corefx/master/outerloop_centos7.1_release 45 centos71-20160609-1-outer7e37d0 12/20 04:30 PM dotnet_corefx/master/outerloop_centos7.1_debug 47 centos71-20160609-1-outercaf640 12/20 07:56 AM dotnet_corefx/master/outerloop_centos7.1_release 46 centos71-20160609-1-outer2d8f90 12/21 04:32 PM dotnet_corefx/master/outerloop_centos7.1_debug 49 centos71-20160609-1-outerb854b0 12/22 07:52 AM dotnet_corefx/dev_apple_crypto/outerloop_centos7.1_debug 5 centos71-20160609-1-outerb04220 12/22 09:33 PM dotnet_corefx/dev_apple_crypto/outerloop_centos7.1_release 5 centos71-20160609-1-outere5a090 12/22 05:19 AM dotnet_corefx/master/outerloop_centos7.1_release 48 centos71-20160609-1-outer199a30 12/23 04:35 PM dotnet_corefx/master/outerloop_centos7.1_debug 50 centos71-20160609-1-outerb75f40 12/23 07:53 AM dotnet_corefx/master/outerloop_centos7.1_debug 51 centos71-20160609-1-outer897c50 12/26 07:52 AM dotnet_corefx/master/outerloop_centos7.1_debug 52 centos71-20160609-1-outer720f40 12/28 07:53 AM ```` ```` Test Case: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_SupportedSSLVersion_Succeeds(name: \""TLSv1.0\"", url: \""https://www.ssllabs.com:10301/\"") Failed Jenkins Jobs Build Number Machine Name Date dotnet_corefx/master/outerloop_opensuse13.2_debug 35 suse132-20160315-outer6a28c0 12/08 05:14 PM dotnet_corefx/master/outerloop_opensuse42.1_release 42 suse421-20160920-outer71c900 12/16 12:46 PM dotnet_corefx/master/outerloop_rhel7.2_debug 47 rhel72-20160412-1-outer980a50 12/17 06:56 PM ```` ```` Test Case: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_SupportedSSLVersion_Succeeds(name: ""TLSv1.0"", url: ""https://www.ssllabs.com:10301/"") Failed Jenkins Jobs Build Number Machine Name Date dotnet_corefx/release_1.1.0/outerloop_rhel7.2_release 10 rhel72-20160412-1-outer8e7030 12/10 02:45 PM ```` ```` est Case: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_UnsupportedSSLVersion_Throws(name: \""SSLv3\"", url: \""https://www.ssllabs.com:10300/\"") Failed Jenkins Jobs Build Number Machine Name Date dotnet_corefx/dev_apple_crypto/outerloop_centos7.1_debug 4 centos71-20160609-1-outer43c870 12/08 09:35 PM dotnet_corefx/dev_apple_crypto/outerloop_rhel7.2_debug 4 rhel72-20160412-1-outer967bf0 12/09 12:18 AM dotnet_corefx/dev_apple_crypto/outerloop_rhel7.2_release 4 rhel72-20160412-1-outerf86c30 12/09 02:00 PM dotnet_corefx/dev_apple_crypto/outerloop_centos7.1_debug 5 centos71-20160609-1-outerb04220 12/22 09:33 PM dotnet_corefx/dev_apple_crypto/outerloop_centos7.1_release 5 centos71-20160609-1-outere5a090 12/22 05:19 AM dotnet_corefx/dev_apple_crypto/outerloop_rhel7.2_debug 5 rhel72-20160412-1-outer124e30 12/22 12:19 AM dotnet_corefx/dev_apple_crypto/outerloop_rhel7.2_release 5 rhel72-20160412-1-outer743060 12/22 02:00 PM ```` Typical errors: ```` System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_SupportedSSLVersion_Succeeds(name: \""TLSv1.0\"", url: \""https://www.ssllabs.com:10301/\"") (from (empty)) Failing for the past 1 build (Since Failed#47 ) Took 1.4 sec. Stacktrace MESSAGE: System.Net.Http.HttpRequestException : An error occurred while sending the request.\n---- System.Net.Http.CurlException : Problem with the SSL CA cert (path? access rights?) +++++++++++++++++++ STACK TRACE: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__6.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_rhel7.2_debug/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.SslProtocols.cs:line 127 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) ```` ```` System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_SupportedSSLVersion_Succeeds(name: \""TLSv1.2\"", url: \""https://www.ssllabs.com:10303/\"") (from (empty)) Failing for the past 5 builds (Since #1 ) Took 1 sec. Stacktrace MESSAGE: System.Net.Http.HttpRequestException : An error occurred while sending the request.\n---- System.Net.Http.CurlException : SSL connect error +++++++++++++++++++ STACK TRACE: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/dev_apple_crypto/outerloop_centos7.1_release/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 380 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__6.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/dev_apple_crypto/outerloop_centos7.1_release/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.SslProtocols.cs:line 127 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) in /mnt/resource/j/workspace/dotnet_corefx/dev_apple_crypto/outerloop_centos7.1_release/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 643 at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) in /mnt/resource/j/workspace/dotnet_corefx/dev_apple_crypto/outerloop_centos7.1_release/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs:line 857 ````" +14771 area-System.Net SslStream WriteAsync Implement WriteAsync for SslStream Resolves https://github.com/dotnet/corefx/issues/14698 +14772 area-System.Xml Test failure: System.Xml.Tests.Errata4/CreateElementsAndAttributesUsingXsltInline(param0: True, param1: NameStartChar) Opened on behalf of @Jiayili1 The test `System.Xml.Tests.Errata4/CreateElementsAndAttributesUsingXsltInline(param0: True, param1: NameStartChar)` has failed. Assert.True() Failure Expected: True Actual: False Stack Trace: at System.Xml.Tests.Errata4.CreateElementsAndAttributesUsingXsltInline(Object param0, Object param1) Build : Master - 20161230.01 (Core Tests) Failing configurations: - Centos.71.Amd64 - AnyCPU-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20161230.01/workItem/System.Xml.Xsl.XslCompiledTransformApi.Tests/analysis/xunit/System.Xml.Tests.Errata4~2FCreateElementsAndAttributesUsingXsltInline(param0:%20True,%20param1:%20NameStartChar) +14774 area-System.Xml Add async XLinq document/element loading and saving This PR resolves https://github.com/dotnet/corefx/issues/2869. Merges https://github.com/dotnet/corefx/pull/2436 from future branch into master and exposes the new APIs for netcoreapp1.1. @danmosemsft @stephentoub @weshaggard +14775 area-System.Xml CI test failure: System.Xml.Tests.Errata4.TestXslTransform(param0: True, param1: NameChar) (from (empty)) ``` System.Xml.Tests.Errata4.TestXslTransform(param0: True, param1: NameChar) (from (empty)) Failing for the past 1 build (Since Failed#1633 ) Took 0.68 sec. Stacktrace MESSAGE: Assert.True() Failure\nExpected: True\nActual: False +++++++++++++++++++ STACK TRACE: at System.Xml.Tests.Errata4.TestXslTransform(Object param0, Object param1) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest@2/src/System.Private.Xml/tests/Xslt/XslCompiledTransformApi/Errata4.cs:line 314 ``` Detected in #14692 by CI: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_release_prtest/1633/ +14776 area-Infrastructure Always use x64 for non-Windows CI runs We can't use x86 for non-Windows runs. These should always be x64. @chcosta +14777 area-Infrastructure "Use ""OSGroup"", not OS Name, to construct BuildConfiguration in netci.groovy" "`BuildConfiguration` should include an `OSGroup`, not the name of a particular OS. On Windows, these happened to be the same (""`Windows_NT`""), but it was broken for everything else. @chcosta " +14780 area-Infrastructure CleanAllProjects broken in dev/eng CleanAllProjects previously made use of FilterProjects, which is no longer present in dev/eng. This also means that rebuild is broken because it will call cleanall. +14781 area-System.Net Add SslStream test to verify WriteAsync is not blocked by an awaiting ReadAsync See https://github.com/dotnet/corefx/pull/14771/files#r94264181 +14782 area-System.Security System.Security.Claims cleanup for #4935 Claims clean up for https://github.com/dotnet/corefx/issues/4935 - Added solution file - Corrected resx strings. - Added readonly where appropriate. (Needed to move some Initialize() bodies into the ctor for this) - Fixed XML comments. - Removed unused RoleClaimProvider class. - Ported mono tests. They mostly test constructors but it is a start. ~~Probably still need an issue item open to improve them.~~ (https://github.com/dotnet/corefx/issues/6448) - Improved dictionary iteration. - Lazy create Claims.Properties and ClaimsIdentity.ExternalClaims. - Improved ClaimsIdentity.Claims when there are no external claims (common). - TODO comments removed. Some where about alternate design decisions. Most about limiting counts which would be a breaking change now. - General cleanup. In adding the tests I found that GenericIdentity can not be used with BinarySerializer. Any ClaimsIdentity with a Claim will throw and GenericIdentity always adds 1 claim. Not sure what the action item there is (cc @stephentoub) or if these classes just have the attributes and interfaces to match desktop? @brentschmaltz @venkat-raman251 @justinvp +14786 area-System.Runtime Type forwarding for ValueTuple to CoreCLR This is not ready for review yet. I mean to use this thread to ask some questions/clarifications. +14788 area-Infrastructure Fix arm builds Arm builds are failing in official builds because I didn't propagate the toolsetdir property when creating the new definitions +14790 area-System.Linq Request: Adding DebuggerDisplay/DebuggerTypeProxy to Grouping and Lookup "The current experience when seeing an `IGrouping` returned from Linq in debug view is not the best: ![groupingdebug](https://cloud.githubusercontent.com/assets/9159214/21580324/1b843c60-cfbb-11e6-879f-b3ade4f1c384.PNG) Maybe we should add `DebuggerTypeProxy` / `DebuggerDisplay` attributes to `Grouping` so that it's easier to navigate in debug? This is a semi-API proposal since it'll be seen by end-users, so I'll spell out the display format/property names I'm thinking of: ```cs [DebuggerDisplay(""Key = {Key}"")] [DebuggerTypeProxy(typeof(GroupingDebuggerProxy<,>))] public class Grouping : IGrouping, IList { ... } internal sealed class GroupingDebuggerProxy { public TKey Key { get; } // The name of this property needs to alphabetically follow ""Key"" so it // shows up last when the Grouping is expanded. // It also doesn't matter because users will never see it, as it's RootHidden. [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)] public TElement[] Z { get; } } ``` cc @JonHanna @VSadov " +14791 area-Infrastructure Build errer without clean in linux When I build managed code in Ubuntu14.04 without clean, I get build fail with error messages ``` /nfs/rbp3/corefx/build.proj(203,5): error : Exact package 'NETStandard.Library2 2.0.0-beta-24801-0' was not restored: found '' /nfs/rbp3/corefx/build.proj(203,5): error : Exact package 'NETStandard.Library2 2.0.0-beta-24801-0' was not restored: found '' Command execution failed with exit code 1. ``` This error comes from `project.lock.json` generated in `System.Security.Cryptography.Xml`. To avoid this error, we need to build after clean, or option with /p:RestoreDuringBuild=false. +14792 area-Infrastructure Add debian.8-armel and tizen.4.0.0-armel into nupkg Signed-off-by: chunseoklee +14797 area-System.Runtime TimeZoneInfo.ToSerializedString/FromSerializedString do not round trip on Unix The following test passes on Windows but fails on Unix: ```c# public static IEnumerable SystemTimeZonesTestData() { foreach (TimeZoneInfo tz in TimeZoneInfo.GetSystemTimeZones()) { yield return new object[] { tz }; } } [Theory] [MemberData(nameof(SystemTimeZonesTestData))] public static void ToSerializedString_FromSerializedString_RoundTrips(TimeZoneInfo timeZone) { string serialized = timeZone.ToSerializedString(); TimeZoneInfo deserializedTimeZone = TimeZoneInfo.FromSerializedString(serialized); Assert.Equal(timeZone, deserializedTimeZone); Assert.Equal(serialized, deserializedTimeZone.ToSerializedString()); } ``` I believe it's due to how `GetAdjustmentRules` is implemented on Unix: https://github.com/dotnet/coreclr/blob/0a11492d52faa85c551761f8390be5de9d74e5ec/src/mscorlib/src/System/TimeZoneInfo.Unix.cs#L131-L153 vs. on Windows: https://github.com/dotnet/coreclr/blob/0a11492d52faa85c551761f8390be5de9d74e5ec/src/mscorlib/src/System/TimeZoneInfo.Win32.cs#L87 See #14795 Also, when you pass an `AdjustmentRule[]` array to `TimeZoneInfo.CreateCustomTimeZone` to create a custom instance of `TimeZoneInfo`, calling `GetAdjustmentRules` on Windows will always give you a cloned copy of the same adjustment rules, whereas on Unix it looks like it will modify the adjustment rules that are returned. +14798 area-System.Collections Cleanup ImmutableArray tests This is still WIP, but since it's a rather large PR and almost finished I thought I'd submit it. There are still a few TODOs floating around, but feel free to review. **Changes:** - Theorize most of the tests to make it easier to add new test cases - Segregate tests that assert equality from tests that check exceptions - Standardize method/variable naming to make tests easier to read - Fill in some gaps in the tests - Test more explicit interface implementations - Run methods that accept comparers over a variety of comparers - Run methods that accept collections over a variety of collections (arrays, lists, `IList`, lazy enumerables, etc.) - General cleanup - Replace `Assert.Equal(immutableArray1, immutableArray2)` with `Assert.True(immutableArray1 == immutableArray2)` - This has a poorer stack trace, but it makes it more explicit that we're testing reference equality **Note:** I tried to keep many of the existing test cases we have, so that's why you'll see a lot of (sometimes redundant) cases in the MemberData. /cc @AArnott @ianhays @stephentoub +14803 area-Infrastructure Use armel instead of arm-softfp Signed-off-by: chunseoklee +14804 area-Infrastructure Test failure: CancelKeyPressTests/CanAddAndRemoveHandler_Remote Opened on behalf of @jiangzeng The test `CancelKeyPressTests/CanAddAndRemoveHandler_Remote` has failed. System.TypeInitializationException : The type initializer for 'System.Diagnostics.RemoteExecutorTestBase' threw an exception.\r ---- System.PlatformNotSupportedException : Operation is not supported on this platform. Stack Trace: at System.Diagnostics.RemoteExecutorTestBase..ctor() at CancelKeyPressTests..ctor() ----- Inner Stack Trace ----- at System.Runtime.InteropServices.OSPlatform.get_Windows() at System.Diagnostics.RemoteExecutorTestBase..cctor() in D:\A\_work\55\s\corefx\src\Common\tests\System\Diagnostics\RemoteExecutorTestBase.cs:line 19 Build : Master - 20170102.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170102.02/workItem/System.Console.Tests/analysis/xunit/CancelKeyPressTests~2FCanAddAndRemoveHandler_Remote +14806 area-System.IO Add signature to allow user to specify overwrite on decompress Fix https://github.com/dotnet/corefx/issues/8146 I grabbed @OperatorOverload's commit (since it had been a while) and finished it. Except, I can't figure out the magic combination of project.json, csproj, etc that will allow the tests to build. Can someone help? @OperatorOverload +14809 area-System.Numerics Fix XMLdoc for Vector Inequality. "The != operator claims that it ""Returns a value that indicates whether any single pair of elements in the specified vectors is equal."" which is a copy-paste error from Vector.EqualsAny()." +14810 area-System.Collections Performance improvement: Make ConcurrentDictionary with Enum values also profit from atomic writes. Small change to extend the recently introduced performance improvements to the generic ConcurrentDictionary to Enum-value dictionaries, too. +14811 area-System.Net reenable APM based perf/stress tests @stephentoub @CIPop +14812 area-System.Net use SocketPal.GetLastSocketError instead of calling Marshal.GetLastWin32Error directly Add logic to SocketPal.GetLastSocketError to detect and fail if Marshal.GetLastWin32Error returns 0. Make sure the rest of the code uses GetLastSocketError instead of GetLastWin32Error directly. Addresses #5426. +14813 area-System.Net add SimpleContextAwareResult and use it instead of ContextAwareResult The existing ContextAwareResult is doing a bunch of things we don't need for System.Net.Sockets. In particular: (1) Trying to optimize ExecutionContext flow with closure caches. This is unnecessary now because EC flow is cheap. (2) Providing some locking and identity capture functionality, none of which is used in System.Net.Sockets. Replace this with SimpleContextAwareResult, simplifying the code and saving a few cycles/bytes here and there. Also add some tests for EC flow. @stephentoub @CIPop +14814 area-Meta Unable to read appsettings.jason data from Class Library "I am creating Class Library and in this I have to read configuration settings from Appsessting.Jason file but I am unable to read the data ,Please provide solution I have tried with adding reference to ""Microsoft.Extensions.Options.ConfigurationExtensions"": ""1.1.0"" but it is throwing error." +14815 area-System.Collections ConcurrentDictionary: add ContainsValue() System.Collections.Generic.Dictionary features [`ContainsValue()`](https://github.com/dotnet/corefx/blob/v1.1.0/src/System.Collections/src/System/Collections/Generic/Dictionary.cs#L218). Would be nice to have the same method for [ConcurrentDictionary](https://github.com/dotnet/corefx/blob/v1.1.0/src/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentDictionary.cs). +14818 area-System.Net Holding X509Certificate2 reference prior to HttpClientHandler causes access violation in ServerCertificateCustomValidationCallback "## Symptoms I would like to implement cert pinning in my own project. When a `System.Security.Cryptography.X509Certificates.X509Certificate2` was held, and a `ServerCertificateCustomValidationCallback` callback from a `System.Net.Http.HttpClientHandler` (or `WinHttpHandler` on Windows) was triggered from a request sent by `System.Net.Http.HttpClient`, `System.ExecutionEngineException` will be thrown. In native debug mode, an access violation was caught. **Update: This bug doesn't affect Linux platform.** Creating `System.Security.Cryptography.X509Certificates.X509Certificate2` object inside the callback will be a good workaround for this. ![Access violation](https://imbushuos3.azureedge.net/Snippets/Repro/AccessViolation.jpg) ![Callstack](https://imbushuos3.azureedge.net/Snippets/Repro/Callstack.jpg) ## Reproduce A 100% reproducible code repository is here: https://github.com/imbushuo/CertCheckAccessViolationRepro ```c# using System; using System.Net.Http; using System.Security.Cryptography.X509Certificates; public class ReproProgram { private static X509Certificate2 _cert; public static void Main(string[] args) { // Hold a reference of X509Certificate2 _cert = new X509Certificate2(""test.cer""); // Create a HTTP handler and repro the bug using (var clientHandler = new HttpClientHandler()) { clientHandler.ServerCertificateCustomValidationCallback = (msg, cert, chain, errors) => { return _cert.Thumbprint == cert.Thumbprint; }; using (var httpClient = new HttpClient(clientHandler)) { // Boom var req = httpClient.GetAsync(""https://imbushuo.net""); req.Wait(); } } Console.WriteLine(""Hello World!""); } } ```" +14820 area-Serialization Area-Serialization Sprint 112 The issue is for tracking issues to be done in sprint 112 (due by 1/20/2017). +14822 area-Infrastructure Fix casing for native binaries Native binary path is in 'Native'. https://github.com/dotnet/corefx/blob/dev/eng/src/Native/build-native.sh#L260 This is causing package builds to fail on Unix +14823 area-Infrastructure Execute tests with dotnet cli @weshaggard @ericstj @joperezr This works with @mellinoe changes to enable test builds, here is the branch I test with https://github.com/karajas/corefx/tree/adddotnetcli. I had to test with those changes since they introduce test folders in the bin dir. +14824 area-System.Net Issues in SslStream.WriteAsync Tracks addressing feedback in https://github.com/dotnet/corefx/pull/14771 added after the PR was already merged. Some of the issues noted look like they could be potentially significant. cc: @benaadams, @cipop +14825 area-Infrastructure Add ARM64 Build&Test to Jenkins This commit re-adds arm64 test builds to Jenkins using the same infrastructure that is being used in CoreCLR to submit runs to lab machines for execution. Most of the arm64_post_build.py logic is copied from the CoreCLR equivalent. This commit also fixes a bug with the Packages.zip generation (#14503) by making it ARM64 specific as the code is exclusively used for this build. resolves https://github.com/dotnet/corefx/issues/14503 cc: @jashook @gkhanna79 +14831 area-System.Net remove unnecessary use of AsyncResult in sync path for ReceiveMessageFrom Also, add some relevant tests @stephentoub @cipop @Priya91 +14833 area-System.Memory Span gets corrupted when accessing `Environment.StackTrace` multiple times in xunit test ### Repro: 1. Checkout https://github.com/pakrym/r/tree/span-corrupt 2. `dotnet restore `&& `dotnet test` in `src/SpanCorrupt` ### Expected: Calling Environment.StackTrace does not modify span: ``` BEFORE LOOP 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 1 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 2 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 3 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 4 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 5 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 6 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 7 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 8 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 9 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 10 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 11 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 12 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 13 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 14 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 15 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 16 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 17 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 18 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 19 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 20 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 21 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 22 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 23 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 24 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 25 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 26 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 27 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 28 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 29 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 30 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 31 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 ``` ### Actual Calling Environment.StackTrace modifies span: ``` 1 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 2 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 3 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 4 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 5 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 6 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 7 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 8 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 9 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 10 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 11 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 12 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 13 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 14 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 15 -- 72 101 97 100 101 114 58 118 97 108 117 101 13 10 13 10 16 -- 186 68 239 255 255 255 255 255 88 252 200 2 13 10 13 10 17 -- 186 68 239 255 255 255 255 255 88 252 200 2 13 10 13 10 18 -- 186 68 239 255 255 255 255 255 88 252 200 2 13 10 13 10 19 -- 121 0 115 0 116 0 101 0 109 0 46 0 80 0 114 0 20 -- 121 0 115 0 116 0 101 0 109 0 46 0 80 0 114 0 21 -- 121 0 115 0 116 0 101 0 109 0 46 0 80 0 114 0 22 -- 121 0 115 0 116 0 101 0 109 0 46 0 80 0 114 0 23 -- 121 0 115 0 116 0 101 0 109 0 46 0 80 0 114 0 24 -- 121 0 115 0 116 0 101 0 109 0 46 0 80 0 114 0 25 -- 121 0 115 0 116 0 101 0 109 0 46 0 80 0 114 0 26 -- 121 0 115 0 116 0 101 0 109 0 46 0 80 0 114 0 27 -- 121 0 115 0 116 0 101 0 109 0 46 0 80 0 114 0 28 -- 121 0 115 0 116 0 101 0 109 0 46 0 80 0 114 0 29 -- 121 0 115 0 116 0 101 0 109 0 46 0 80 0 114 0 30 -- 121 0 115 0 116 0 101 0 109 0 46 0 80 0 114 0 31 -- 121 0 115 0 116 0 101 0 109 0 46 0 80 0 114 0 ``` @davidfowl @KrzysztofCwalina +14834 area-Infrastructure Change how test references are resolved. "* When `NoTargetingPackReferences` is set to ""true"", no references are added to any assemblies in the targeting pack. * Names in the `RuntimeReferencedAssemblyNames` item group are now used to add items into the `ReferencePath` group. Absolute paths of runtime assemblies are added directly to the list, and `AssemblySearchPaths` is no longer modified at all when runtime assemblies are referenced. * Fix up System.Diagnostics.Debug.Tests and System.Linq.Expressions.Tests based on the above changes. Linq.Expressions.Tests no longer references its own src project, which should fix some race conditions in the build. * Unrelated cleanup in the System.Diagnostics.Debug test project. @joperezr @chcosta @weshaggard " +14836 area-Infrastructure Pass architecturegroup to build-managed Remove 'TestArchitecture' (I don't see it being used anywhere), and pass architecturegroup to build-managed. We have to pass the arch to both build-native and build-managed to ensure that we build and package the correct bits. /cc @weshaggard @ericstj +14837 area-System.Net Add test to ensure SslStream.ReadAsync() does not enqueue work before call to wrapped stream's BeginRead @stephentoub as discussed. Not sure if the title is good, feel free to change. +14838 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test/Manual_CertificateSentMatchesCertificateReceived_Success(numberOfRequests: 3, reuseClient: True) Opened on behalf of @jiangzeng The test `System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test/Manual_CertificateSentMatchesCertificateReceived_Success(numberOfRequests: 3, reuseClient: True)` has failed. System.Threading.Tasks.TaskCanceledException : A task was canceled. Stack Trace: at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.<>c__DisplayClass5_0.<b__2>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.<>c__DisplayClass5_2.<b__4>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170103.02 (Core Tests) Failing configurations: - Ubuntu.1404.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170103.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test~2FManual_CertificateSentMatchesCertificateReceived_Success(numberOfRequests:%203,%20reuseClient:%20True) +14839 area-System.Threading Test failure: System.Threading.Tasks.Tests.Status.TaskStatusTests/TaskStatus3 Opened on behalf of @jiangzeng The test `System.Threading.Tasks.Tests.Status.TaskStatusTests/TaskStatus3` has failed. Expecting currrent Task status to be WaitingForChildren but getting RanToCompletion Expected: True Actual: False Stack Trace: at System.Threading.Tasks.Tests.Status.TaskStatusTest.RealRun() at System.Threading.Tasks.Tests.Status.TaskStatusTests.TaskStatus3() Build : Master - 20170103.02 (Core Tests) Failing configurations: - Suse.132.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170103.02/workItem/System.Threading.Tasks.Tests/analysis/xunit/System.Threading.Tasks.Tests.Status.TaskStatusTests~2FTaskStatus3 +14842 area-System.IO EnumerateWithSymLinkToDirectory test failed in CI https://ci.dot.net/job/dotnet_corefx/job/release_1.0.0/job/ubuntu14.04_release_prtest/50/consoleText ``` ln: failed to create symbolic link ‘/tmp/Directory_SetCurrentDirectory_SymLink_aqwlk5gn.co5/SetToPathContainingSymLink_53/2axwsu1e.4gg/qpehdv1o.3pd’: No such file or directory System.IO.Tests.DirectoryInfo_EnumDir_Str.EnumerateWithSymLinkToDirectory [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: at System.IO.Tests.Directory_GetDirectories_str.EnumerateWithSymLinkToDirectory() ``` +14843 area-Infrastructure Enable armel for CI script Signed-off-by: chunseoklee +14844 area-Infrastructure Add Tizen rootfs for armel Add a Tizen rootfs for armel and most of this commit is copied from CoreCLR. Signed-off-by: Hyung-Kyu Choi +14845 area-System.ComponentModel EnsureValidDataType should reject whitespaces in DataTypeAttribute.Cu… EnsureValidDataType should reject whitespaces in DataTypeAttribute.CustomDataType property because it is mandatory and it does not make sense that the property is whitespaces. Modify Ctor_String(string customDataType) test to validate whitespaces adding new InlineData. Fix #4465 +14846 area-Meta ApiSet dlls still used from native code According to the PR #13440, it was supposed to remove usage of apiset DLL but checking on a recent local build, `clrcompression.dll` typically imports `api-ms-win-crt-runtime-l1-1-0.dll` and `api-ms-win-crt-heap-l1-1-0.dll` We should probably remove using these DLLs there too. +14849 area-Infrastructure Setting exact assembly version when compiling I am using the following command to build the sources: `build.cmd -ConfigurationGroup=Release` However, I would like to set the exact version of the newly compiled libraries. By default, the compiler sets the version of the assemblies to 4.1.0.0, and I would like to set it to 4.0.0.0. How can I achieve that the **easiest** way? +14850 area-System.Runtime StreamOperationAsyncResult throws System.NullReferenceException when being finalized by the GC We have an issue where something after disposing a stream, we are getting an exception that is raised from the Finalizer thread, where the only method in the call stack is: `System.Runtime.WindowsRuntime.dll!System.IO.StreamOperationAsyncResult.CancelStreamOperation ` Inside this method, there is a check if the callback was invoked, and if not it's calling `_asyncStreamOperation.Close();` The code of the finalizer is the following: ` ~StreamOperationAsyncResult() { // This finalisation is not critical, but we can still make an effort to notify the underlying WinRT stream // that we are not any longer interested in the results: CancelStreamOperation(); } ` And the CancelStreamOperation method: ` internal bool CancelStreamOperation() { if (_callbackInvoked) return false; _asyncStreamOperation.Cancel(); return true; }` The only line that could cause the this method to throw NullReferenceException is the call to the Cancel method of _asyncStreamOperation, so the only fix that should be done is checking if _asyncStreamOperation null beforehand. ` _asyncStreamOperation?.Cancel();` Exception: System.NullReferenceException was unhandled Message: An unhandled exception of type 'System.NullReferenceException' occurred in System.Runtime.WindowsRuntime.dll Additional information: Object reference not set to an instance of an object. Current thread that throws the exception: Not Flagged > 5980 2 Worker Thread **GC Finalizer** Thread System.Runtime.WindowsRuntime.dll!System.IO.**StreamOperationAsyncResult.CancelStreamOperation** Highest [External Code] +14851 area-System.Runtime Fixing issue #14850 - Adding null check before calling _asyncStreamOp… Fixes issue: https://github.com/dotnet/corefx/issues/14850 +14852 area-System.Net Revert SslStream.WriteAsync, change SslStream to use innerStream.Read/WriteAsync First commit reverts the addition of SslStream.WriteAsync from #14771. We still want to override it, but the implementation needs more thought. Second commit fixes #14698. In .NET Core 1.x, SslStream's usage of Begin/EndRead/Write was actually using extension methods that just used TaskToApm.Begin/End with Read/WriteAsync. When the base Stream's Begin/EndRead/Write methods were added back, SslStream's usage of these methods started binding to the base methods, such that it was no longer using the inner stream's Read/WriteAsync. This change explicitly switches all of those calls (for both SslStream and NegotiateStream) to use Read/WriteAsync. A better solution is to actually add SslStream.Read/WriteAsync overrides that use async/await and tasks all the way down, rather than going back and forth between Tasks and APM, but that is a more complicated work item. This addressesses the immediate need (problems related to deadlocks on SslStream when read and writes are issued to run concurrently on the same stream) and can be undone or augmented subsequently when a better solution is available. This is at least as good performance-wise as what we had in .NET Core 1.x, and in some cases is a bit better, as we can avoid creating the IAsyncResult wrapper in some cases if the returned task is already completed. cc: @cipop, @benaadams, @cesarbs +14853 area-System.IO Idea: switch to libzip for ZIP archive implementation By way of introduction, I work on the Xamarin/Mono team at Microsoft (Xamarin.Android and, from time to time, a foray to the Mono BCL/runtime land) and we've been struggling with various issues related to ZIP archive support over the past few years. The main problem with all (as far as we can tell) managed implementations is that they implement only a subset of what's supported by the ZIP format and ignore parts that are important on non-Windows systems (especially all flavors of Unix). The biggest issue is lack of support for the extended Unix fields (described in the [PKWARE appnote](https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.3.3.TXT) as well as in [this document](https://github.com/grendello/LibZipSharp/blob/master/docs/extrafld.txt). Support for those fields is important because they make difference between special files and regular files as stored in the archive (that includes file permission bits on Unix). Another issue (less common but still occasionally relevant) is lack of support for symbolic links in managed libraries. Yet another problem is an occasional issue with even opening some ZIP archives (especially created with older versions of ZIP and friends) to the point that we had to resort to using the external `unzip` program to open some archives. For the record, the minimum set of extended fields that would need to be implemented is: `0x000d`, `0x5855`, `0x6375`, `0x7855`, `0x7875`, `0x5455` and symbolic links (which are stored as special files in the ZIP archive) To address those problems we decided to implement our own support for the ZIP archive and after looking around we chose [libzip](http://hg.nih.at/libzip/) as the base for our code. The library implements support for ZIP archive **format** while deferring (de)compression to the venerable zlib library (the same one corefx uses). libzip is cross-platform, works very well on both Unix and Windows systems, is (IMO) very well written and maintained, and uses a [permissive license](https://nih.at/libzip/LICENSE.html). It does **not** implement support for interpreting of the extended fields, merely supports writing/reading them as blobs of binary data. For that reason we created a [managed wrapper](https://github.com/grendello/LibZipSharp) around libzip which not only provides and object-oriented implementation of the libzip APIs but also implements support for the most important extended fields, as listed above. We've been using both libzip and libzipsharp in Xamarin.Android for a while now and found them to work without any issues. I think it would be great if corefx implemented full, cross-platform, support for ZIP archives and while it could be done in-house I think supporting (by using and contributing to) libzip is would be the best way to go, since many projects would benefit from a single, solid implementation of the ZIP archive format. +14855 area-System.Xml Many XML tests are outerloop... why? Lots of the XML test projects are outerloop. Why? It'd be great to a) consolidate them into fewer test projects, and b) make most or all of them innerloop, unless there's a really good reason to keep them outer. +14856 area-System.Xml XLinqTests.TreeManipulationTests.LoadFromStreamSanity failing all outerloop runs "The LoadOptionsLI and XE_LoadOptionsLI ""variations"" are now failing." +14857 area-System.Xml Disable several XLinq tests failing all outerloop runs https://github.com/dotnet/corefx/issues/14856 cc: @sepidehMS +14859 area-System.Numerics Remove an unused using from Vector.tt/cs This was removed in a previous PR (https://github.com/dotnet/corefx/pull/11600), but only from the .cs file. We need to remove it from the template source (Vector.tt) as well. +14860 area-Infrastructure Make buildproj package generation ARM64 specific The packages.zip generation in build.proj is only used in the ARM64 CI, but it isn't Platform specific. This is causing failures elsewhere. resolves https://github.com/dotnet/corefx/issues/14503 FYI: @MattGal +14861 area-System.IO Remove Debug Failures from FSW Win32 There are some Debug.Fail calls in the win32 FileSystemWatcher that can be hit in normal operation sometimes. We've already established a behavior for these scenarios (use null as the old/new names when they're not available), so we shouldn't be debug asserting that they're not possible. resolves https://github.com/dotnet/corefx/issues/14701 +14862 area-System.Console Fix Console Encoding test The test needed to handle the case when having encoding enabled to produce preamble bytes BOM (e.g. UTF8) calling Encoding.GetBytes doesn’t include the BOM while the console stream will include it. The fix is just handling the BOM when we'll have it. +14863 area-System.Xml Fix XLinqTests.TreeManipulation outerloop failures Fixes https://github.com/dotnet/corefx/issues/14856. The bug was introduced after https://github.com/dotnet/corefx/commit/b119ec518b1ccc13e420862ff68dfbbd3bfee28e. The problem was in case of `loadOption != LoadOptions.None`, wrong constructor of `ContentReader` was called, which did not set LineInfo as expected. cc: @stephentoub @danmosemsft +14864 area-System.Memory Issue #14833 - Disable build for fast span Temporarily disable fast span within the package until JIT work is done. The package should contain only slow span for now. Related to issue #14833 +14865 area-Infrastructure corefx should not depend on CRT dlls (on Windows desktop) "Followup of #14846 and the undergoing work with #14728, most of the runtime is going to use plain legacy OS functions which will make a self contained app quite portable. But there is still native components like `clrcompression.dll` that imports `api-ms-win-crt-runtime-l1-1-0.dll` and `api-ms-win-crt-heap-l1-1-0.dll`, making corefx dependent on an installed C runtime just for a few functions imported... This lead to problems like [""dll missing from your computer""](https://github.com/dotnet/cli/issues/5201) which is also [infamously popular for many other applications](https://www.google.com/search?q=missing+api-ms-win-crt-runtime-l1-1-0.dll) These native dlls are probably the last dlls in a repo that have a dependency to the CRT... removing these dependencies would make a self contained dotnetcore app runnable almost on any Windows OS. I can make a PR about this if you agree with the changes." +14866 area-Infrastructure Update CoreCLR dependencies in dev/eng I've also cherry-picked a commit to fix the test failures, see https://github.com/dotnet/corefx/pull/14840. @weshaggard @joperezr @chcosta +14867 area-Infrastructure [dev/eng] Better OSEnvironment detection "Right now, `$(OSEnvironment)` always defaults to ""Unix"" outside of Windows. Before this change, it essentially always has the exact same value as `$(OS)`. We have some logic in dir.props that is supposed to normalize the values to Windows/Unix, but .NET Core MSBuild already does that by default, so we aren't actually doing anything useful there anymore. This change makes dir.props default `$(OSEnvironment)` to a value representing one of our actual OSGroups: Windows_NT, Linux, or OSX. Places expecting ""Unix"" have been changed to just use `$(OS)`. We differentiate between Linux and OSX by checking for the existence of an OSX-specific folder. This allows you to simply run `msbuild /t:rebuildandtest ` and have it work, without needing to pass `/p:OSGroup=Linux/OSX` manually. @joperezr @weshaggard Roslyn.Common.props is unchanged except `$(OSEnvironment)` has been changed to `$(OS)`." +14868 area-Infrastructure AssemblyInfo for ref assemblies should not use AllowPartiallyTrustedCallersAttribute "While working on adding ref assemblies for `System.ValueTuple` (PR https://github.com/dotnet/corefx/pull/14786) I ran into this problem with the `portable-net40+sl4+win8+wp8` TargetGroup (which uses a PCL profile). From discussion with @ericstj and @weshaggard, it sounds like the `_AssemblyInfo.cs` file should not use `AllowPartiallyTrustedCallersAttribute` in the first place. I'm using a workaround to unblock my PR. This issue is meant to track the follow-up. ```C# using System; using System.Reflection; [assembly:System.Security.AllowPartiallyTrustedCallers] [assembly:System.Runtime.CompilerServices.ReferenceAssembly] [assembly:System.Reflection.AssemblyFlags((System.Reflection.AssemblyNameFlags)0x70)] [assembly:AssemblyTitle(""System.ValueTuple"")] [assembly:AssemblyDescription(""System.ValueTuple"")] [assembly:AssemblyDefaultAlias(""System.ValueTuple"")] [assembly:AssemblyCompany(""Microsoft Corporation"")] [assembly:AssemblyProduct(""Microsoft\x00ae .NET Framework"")] [assembly:AssemblyCopyright(""\x00a9 Microsoft Corporation. All rights reserved."")] [assembly:AssemblyVersion(""4.0.2.0"")] [assembly:AssemblyFileVersion(""4.6.24902.0"")] [assembly:AssemblyInformationalVersion(@""4.6.24902.0 built by: jcouv-JCOUVDEV. Commit Hash: 0f771c8a9a11b54e1f3feed43772a9fc7f6da983"")] [assembly:CLSCompliant(true)] [assembly:System.Reflection.AssemblyMetadata("".NETFrameworkAssembly"", """")] [assembly:System.Reflection.AssemblyMetadata(""Serviceable"", ""True"")] ``` from `C:\repos\corefx\bin\obj\ref\System.ValueTuple\4.0.2.0\portable-net40+sl4+win8+wp8\_AssemblyInfo.cs`" +14869 area-System.Threading System.Threading.Tasks.Dataflow needs version 4.5.24.0 on NuGet.org The lowest available release version of System.Threading.Tasks.Dataflow on NuGet.org is 4.5.25.0. This creates a problem when building / testing Visual Studio components as it ships with version 4.5.24.0. Can we get an official package for 4.5.24.0 uploaded to NuGet.org? This would simplify and give us greater confidence in our testing. +14870 area-System.Collections Replace Collections tests IsNetNative with SkipOn IsNetNative checks fail on full framework, so I just split the tests that use them into two tests and use the SkipOnTargetFramework Attribute instead. resolves https://github.com/dotnet/corefx/issues/14466 +14871 area-Infrastructure Allow to force static linking on Windows in Release This is related to the issue described on #14865 This PR allows to build a release binaries on Windows without linking to the uCRT by setting the env variable `CLR_CMAKE_WIN32_FORCE_STATIC_LINK` to `true` It is using the same variable as in the equivalent coreclr [PR#8807](https://github.com/dotnet/coreclr/pull/8807) +14872 area-Infrastructure Build a single library targeting a specific supported configuration Resolves https://github.com/dotnet/core-eng/issues/41 1. msbuild /p:BuildConfiguration=netstandard 2. Select netstandard-Windows_NT in configuration dropdown from VS and build. @weshaggard @chcosta @ericstj +14873 area-System.IO System.IO.Compression Cleanup Minor cleanup throughout. +14874 area-Infrastructure Can't build corefx on Linux Mint 18.1 "Hi, I tried to build corefx on Linux Mint 18.1 and got following error: > Installing dotnet cli... > Restoring BuildTools version 1.0.27-prerelease-01121-01... > Initializing BuildTools... > Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'linuxmint.18.1-x64'. Possible causes: > 1. The project has not been restored or restore failed - run `dotnet restore` > 2. The project does not list one of 'linuxmint.18.1-x64' in the 'runtimes' section. > 3. You may be trying to publish a library, which is not supported. Use `dotnet pack` to distribute libraries. > ERROR: An error occured when trying to initialize the tools. Please check '/home/matekm/corefx/init-tools.log' for more details.1 Last command seen in init-tools.log is: ` Running: /home/matekm/corefx/Tools/dotnetcli/dotnet publish ""/home/matekm/corefx/packages/Microsoft.DotNet.BuildTools/1.0.27-prerelease-01121-01/lib/tool-runtime/project.json"" -f netcoreapp1.0 -r linuxmint.18.1-x64 -o /home/matekm/corefx/Tools ` In pkg/Microsoft.NETCore.Platforms/runtime.json I see some entries for linuxmint18, so I would assume corefx is supported for Mint. What am I doing wrong? " +14876 area-Infrastructure Replace API Set with Win32 DLL in tests API Sets are not available on Windows 7, thus tests need to import from Win32 DLL to run successfully on Windows 7. Resolves issue #14728. +14877 area-System.Xml Fix Xml and Xml.Linq Desktop test failures Fixes several Xml and Xml.Linq test failures on Desktop: https://github.com/dotnet/corefx/issues/13256 https://github.com/dotnet/corefx/issues/13257 https://github.com/dotnet/corefx/issues/13258 https://github.com/dotnet/corefx/issues/13259 https://github.com/dotnet/corefx/issues/13260 https://github.com/dotnet/corefx/issues/13305 Almost all of these were caused by behavioral changes only made on Core, so the tests are not supposed to run against Desktop. Other failures were problems in configuration of test `csproj`. cc: @danmosemsft @stephentoub @joperezr @ericstj +14879 area-Serialization DataContractResolver doesn't work on UWP The UWP App crashes in release mode when using the DataContractResolver in DataContractSerializer. +14885 area-Infrastructure Consider supporting OSX 10.10 (Yosemite) "Per [7731](https://github.com/dotnet/corefx/issues/7731) is was stated that: > 10.11 is our current minimum supported version of OS X. Older releases 10.9.x and 10.10.x are in limited ""Security updates and printer drivers only"" support from Apple. I can vouch that 10.10 does regularly receive security and application updates. The official NET Core install package even allows installation on 10.10. I'm not sure why 10.10 isn't supported unless it is build system issue. ``` OneDrive: Version: 17.3.6720 Source: 3rd Party Install Date: 12/16/16, 8:59 PM LastPass: Version: 3.18.0 Source: 3rd Party Install Date: 12/16/16, 8:59 PM Gatekeeper Configuration Data: Version: 107 Source: Apple Install Date: 12/17/16, 8:53 AM Security Update 2016-007: Version: 10.10.5 Source: Apple Install Date: 12/21/16, 4:01 AM OneDrive: Version: 17.3.6724 Source: 3rd Party Install Date: 12/25/16, 4:45 PM ```" +14887 area-System.Security Fix managed rebuild error without clean related issue: #14791 +14891 area-Meta Proposal: Disposables in CoreFx: SerialDisposable, CompositeDisposable, etc Moving here from https://github.com/Reactive-Extensions/Rx.NET/issues/309 Disposbles have a lot of uses in many libraries. Many libraries have created their own management and disposable aggregates to combine multiple disposable's. There might be an opportunity to move some of this logic in to CoreFX as a common library. A few questions: 1. Does this belong in CoreFX at all? 2. Should it be in a new library, `System.Disposables` or does it fit into an existing library? /cc @ghuntley @mattpodwysocki @rxdave +14894 area-System.IO timeout in FileSystemWatcher_StopCalledOnBackgroundThreadDoesNotDeadlock test On OSX, a one off CI failure https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_release_prtest/1799/testReport/junit/System.IO.Tests/FileSystemWatcherTests/FileSystemWatcher_StopCalledOnBackgroundThreadDoesNotDeadlock/ ``` System.IO.Tests.FileSystemWatcherTests.FileSystemWatcher_StopCalledOnBackgroundThreadDoesNotDeadlock (from (empty)) Failing for the past 1 build (Since Failed#1799 ) Took 3.5 sec. Stacktrace MESSAGE: Didn't observe a deleted event within 3000ms\nExpected: True\nActual: False +++++++++++++++++++ STACK TRACE: at System.IO.Tests.FileSystemWatcherTest.ExpectEvent(WaitHandle eventOccurred, String eventName_NoRetry) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest/src/System.IO.FileSystem.Watcher/tests/Utility/FileSystemWatcherTest.cs:line 120 at System.IO.Tests.FileSystemWatcherTests.FileSystemWatcher_StopCalledOnBackgroundThreadDoesNotDeadlock() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest/src/System.IO.FileSystem.Watcher/tests/FileSystemWatcher.unit.cs:line 612 ``` +14897 area-System.Net "The server returned an invalid or unrecognized response"" error when using System.Net.Http.HttpClient" "Getting this bug into the right place: https://github.com/dotnet/core/issues/321 @corinas Hello, I am facing a problem when making concurrent requests to a web api when using dotnet core. Sometimes i'm getting the below error; the error is not happening all the time (usually it happens once or twice in 600 concurrent calls). ``` System.Net.Http.WinHttpException: The server returned an invalid or unrecognized response at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() ``` Here's the test method I use for testing: ```c# [Fact] public void PostToStardogParallelTaskWithSendAsync() { int x = 600; Task[] allTasks = new Task[x]; using (var httpClient = new HttpClient()) { var byteArray = Encoding.ASCII.GetBytes($""user:password""); for (int k = 0; k < 1; k++) { for (int i = 0; i < x; i++) { System.Diagnostics.Debug.WriteLine($""Starting tsk {i}...""); allTasks[i] = Task.Factory.StartNew(async (ii) => { var d = DateTime.Now; var query = $""INSERT DATA {{ . }}""; var content = new StringContent(query, Encoding.UTF8, ""application/sparql-update""); HttpRequestMessage rm = new HttpRequestMessage(HttpMethod.Post, ""MyStardogWebApiUrl""); rm.Headers.TryAddWithoutValidation(""accept"", ""text/boolean""); rm.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(""Basic"", Convert.ToBase64String(byteArray)); rm.Content = content; try { var response = await httpClient.SendAsync(rm); } catch (Exception e) { System.Diagnostics.Debug.WriteLine($""\nThe following exception have been thrown: {e}""); } System.Diagnostics.Debug.WriteLine($""Task {ii} ended in: {(DateTime.Now - d).TotalMilliseconds}.""); }, i).Unwrap(); } try { Task.WaitAll(allTasks); } catch (Exception e) { Console.WriteLine($""nThe following exception have been thrown: {e}""); } } } } ``` When this error occurs, the response looks like this: {StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: , Headers:{}} Calling the same method from a testing project that uses dotnet framework 4.5 does not cause any issue. Could you please advise? Thanks! Corina" +14903 area-System.Threading Allow fire and forget CancellationTokenRegisteration.Dispose Right now disposing a `CancellationTokenRegistration` will wait for pending callbacks to run if it's disposed on a separate thread from the callback itself. This can cause deadlocks for e.g.: https://github.com/aspnet/KestrelHttpServer/issues/1278 It would be nice to have a way to disable the blocking on dispose. It might require an API change. /cc @stephentoub --- EDIT 7/20/2017 from stephentoub: This is the proposed method to be added to CancellationTokenRegistration: ```C# public struct CancellationTokenRegistration { public void DisposeWithoutWaiting(); ... } ``` +14907 area-Infrastructure For full framework test build, pass in win-x64 as testnugetruntimeid This is because of the simple exact string match required by the FilterRuntimeForSupports. +14908 area-Serialization System.Xml.XmlSerializer 4.3.0 does not longer work with IEnumerable, prior versions did "I am working with @ellismg that has pushed my code into ""bleeding"" edge. At present, I'm building against NETStandard.Library 1.6.0, Microsoft.Net.Sdk 1.0.0-alpha-20161104-2, and, among other dependencies, System.Xml.XmlSerializer 4.3.0. My code now gets the following error deserializing that did not occur with System.Xml.XmlSerializer 4.0.11-* (note the __bold__): Exception occurred during start: HttpException: Uri(http://168.63.129.16/machine/1fb6fde7-d516-4ccf-b134-929f12f4d7e7/357c0978-2bd4-4547-9e8c-4557e73ed12c._u1404?comp=config&type=hostingEnvironmentConfig&incarnation=3) Method(GET) StatusCode(OK) Message(HttpRequest#FromXml failed) InnerExceptions(There was an error reflecting type 'Microsoft.Azure.Agent.Protocol.HostingEnvironmentConfig'.; There was an error reflecting property 'HostingEnvironmentSettings'.; There was an error reflecting type 'Microsoft.Azure.Agent.Protocol.HostingEnvironmentConfigHostingEnvironmentSettings'.; __To be XML serializable, types which inherit from IEnumerable must have an implementation of Add(System.Object) at all levels of their inheritance hierarchy. System.Xml.XmlElement does not implement Add(System.Object).__) " +14911 area-Infrastructure In dev/eng, we need to be able to run desktop tests. Not a priority for merge. +14916 area-Infrastructure Update documentation to include how to configure builds Updates the documentation as well as config.json file with information on RuntimeOS and the different ways to configure BuildConfiguration. Cleans up InputOSGroup as it is no longer needed. @ericstj @chcosta @joperezr @mellinoe @karajas +14917 area-System.Console Test failure: ConsoleEncoding/TestEncoding "Opened on behalf of @jiangzeng The test `ConsoleEncoding/TestEncoding(inputString: \""This is string have surrogates 𐀀\"")` has failed. Assert.Equal() Failure\r ? (pos 31)\r Expected: ···ing have surrogates =ÉÇÇ\r Actual: ···ing have surrogates ??\r ? (pos 31) Stack Trace: at ConsoleEncoding.TestEncoding(String inputString) Build : Master - 20170105.02 (Core Tests) Failing configurations: - Windows.7.Amd64 - AnyCPU-Release - Windows.81.Amd64 - AnyCPU-Release - AnyCPU-Debug - Windows.10.Core.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170105.02/workItem/System.Console.Tests/analysis/xunit/ConsoleEncoding~2FTestEncoding(inputString:%20%5C%22This%20is%20string%20have%20surrogates%20%F0%90%80%80%5C%22)" +14918 area-System.Xml Test failure: System.Xml.Tests.TC_SchemaSet_XmlResolver/v4 & System.Xml.Tests.TC_SchemaSet_XmlResolver/v5 Opened on behalf of @jiangzeng The test `System.Xml.Tests.TC_SchemaSet_XmlResolver/v4` has failed. Assert.Equal() Failure Expected: 2 Actual: 1 Stack Trace: at System.Xml.Tests.TC_SchemaSet_XmlResolver.v4() Build : Master - 20170105.02 (Core Tests) Failing configurations: - Redhat.72.Amd64 - AnyCPU-Release - Centos.71.Amd64 - AnyCPU-Debug Tests failed: System.Xml.Tests.TC_SchemaSet_XmlResolver/v4 System.Xml.Tests.TC_SchemaSet_XmlResolver/v5 Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170105.02/workItem/System.Xml.XmlSchemaSet.Tests +14924 area-Meta Is it possible to read System.Type from an appsettings.json file in a .net core application "In my project i need to read the System.Type setting from appsettings.jason..but not able to read please look in to this . Here is my code: appsettings.jason: ""LogKafkaFactoryConfiguration"": { ""type"": ""SPGMI.Logging.NetCore.Kafka.Configuration.LogRdKafkaClientFactory, SPGMI.Logging.NetCore"" }, I want to read type and pass to below method..below code in .Net 452 _clientfactory = System.Activator.CreateInstance(LogConfiguration.GetInstance().Client.type) as IFactory; Samething needs to be odne .net core.." +14927 area-System.Xml [System.Xml.Private] Fixes compilation with NET_NATIVE +14929 area-System.Xml [System.Xml.Private] Extracts XmlSchemaConstants - Moved to new file - Removed unused constant - Moved to assembly namespace +14930 area-System.Data Add StateChangeHasSubscribers to DbConnection ADO.NET providers are supposed to call DbConnection.OnStateChange on connection state changes. The problem is that this design forces the allocation of the StateChangeEventArgs parameter regardless of whether there are subscribers to StateChange or not. Added a simple getter to check whether subscribers exist or not. If not calling OnStateChange can be skipped altogether. +14933 area-Infrastructure Update CLI to 1.0.0-preview2-1-003182, BuildTools to 1.0.27-prerelease-01205-03 This version of CLI has the fix for https://github.com/dotnet/corefx/issues/14215 (Running build.sh fails on Linux kernel 4.6.x). Because the new CLI uses shared framework 1.1.0 rather than 1.0.0, we need to use a new matching BuildTools version (https://github.com/dotnet/buildtools/pull/1286). I uploaded a fake bootstrap Alpine package to CLI blob storage with this version so it can still build. Tested in a docker container. +14934 area-System.Data API Proposal: Add check for StateChange event subscribers to DbConnection # The problem ADO.NET providers are supposed to call `DbConnection.OnStateChange` on connection state changes. The problem is that this design forces the allocation of the StateChangeEventArgs parameter regardless of whether there are subscribers to StateChange or not. In an effort to reduce heap allocations, it would be good if implementing providers could have a way of checking whether there are subscribers or not before allocating and calling `DbConnection.OnStateChange`. # Proposal Add a protected, non-virtual method called `StateChangeHasSubscribers` to `DbConnection`, returning a bool. Implementing providers would have the option of calling it, and skipping `OnStateChange` if false is returned. +14935 area-System.Xml System.Private.Xml not Building Assembly for UWP System.Private.Xml.dll is not supporting uap101aot. +14937 area-System.Xml Disable two XmlSchemaSet tests Disabling these two tests for now as they have been failing randomly on CentOS and RedHat in latest builds. (Seems like a problem with AppContext caching again) Tracking issue: https://github.com/dotnet/corefx/issues/14918#event-914392725 cc: @danmosemsft @AlexGhiondea +14939 area-Infrastructure Update projects to netcoreapp2.0 and netstandard2.0 Fixes #14501 +14940 area-Infrastructure Build-managed from a clean enlistment fails You cannot run build-managed.cmd from a clean enlistment without your build failing. build-managed.cmd now includes the build packages step which requires native binaries. This may be a point of consternation for devs. +14943 area-Infrastructure Correctly process useServerGC in build-tests.sh This moves the processing logic for `useServerGC` into build-tests.sh. ~~This is part of why the CI is broken, but not everything. The main problem is still that `-notrait category=nontests` is not being used for some reason.~~ Never mind, that stopped happening. This should fix everything. @weshaggard @alexperovich +14946 area-Infrastructure build-managed.cmd -packages doesn't work in release/1.1.0 I download both tags: v1.1.0 and branch: release/1.1.0 But in release/1.1.0 build-managed.cmd -packages doesn't work. Is tag v1.1.0 the correct tag for correct release 1.1.0? +14947 area-System.Net WinHttpWebSocket: Append directly to the request headers StringBuilder Avoid intermediate allocations associated with `string.Format` and `string.Join` when building up the request headers buffer by appending directly to the `StringBuilder` in `WinHttpWebSocket`. +14949 area-Infrastructure [dev/eng] Merging branch master into dev/eng Master integration into dev/eng cc: @weshaggard @mellinoe @ericstj @chcosta @karajas Interesting changes worth taking a look at: - Original merge conflicts: 44b68e694948065c1b61457cec125d3d64c1fa22 - Once conflicts were resolved, changes required to succesfully build the repo on Windows: 4ef4fa55c950367fdaed2749ea124ead6f8296db - One more integration with latest changes on dev/eng: e3cbfcc79e4dc2c4c272fb9fe23a69170e466640 - Removing build-tests.cmd execution from build.cmd which we got from master: 9b021ac018ddd78799e28ea0273c7c03fa3c72e7 +14951 area-Infrastructure [dev/eng] Revert secrets and tokens in checked-in definitions to be VSTS secrets Reverts some of https://github.com/dotnet/corefx/pull/14694 to turn leg build secrets back into secrets. This slightly improves security. +14952 area-Serialization Add S.R.Serialization.DictionaryGlobals's missing Entires. #13191 @shmao @mconnew @zhenlan +14954 area-System.Net SslStream.AuthenticateAsServerAsync is significantly slower in CoreFX 4.4 Kestrel perf tests recently started yielding 0 RPS on HTTPS. This happens when we open a large number of simultaneous connections to Kestrel. What I've discovered so far is that `SslStream.AuthenticateAsServerAsync` is taking significantly longer to run. Opening 256 connections and measuring the time that takes to run in Kestrel 1.1.0 (which referenced CoreFX 4.3) I get an average of 339 ms per call. Running against our dev branch (referencing CoreFX 4.4 packages), I'm seeing an average of 10 **seconds** per call, and some of the tasks never appear to complete in a reasonable time. The delay appears to be proportional to the number of simultaneous calls we're making. Here are some rough measurements of the average time to authenticate depending on the number of simultaneous connections we open against Kestrel: Connections | Time -------------- | ------ 1 | 56 ms 2 | 65 ms 4 | 66 ms 8 | 76 ms 10 | 132 ms 12 | ~1 **s** 16 | ~4.5 **s** 32 | ~10 **s** _not all tasks complete_ 64 | ~10 **s** _not all tasks complete_ 128 | ~10 **s** _not all tasks complete_ 256 | ~10 **s** _not all tasks complete_ I wrote a small program to measure this more isolatedly: https://gist.github.com/cesarbs/4409b712351adf621aae8420e1ea33de On CoreFX 4.3 the call to `AuthenticateAsServerAsync` takes about 38 ms on average. On 4.4 that average is 99 ms (a discrepancy with Kestrel that I can't explain). Another interesting thing about this is that I only see those figures in the first request to the program - subsequent requests take around 3 ms to authenticate on both CoreFX versions. cc @mikeharder +14960 area-System.Data SQL Tests: Refactoring tests and adding auto execution for Diagnostics test The Diagnostics tests in System.Data.SqlClient were meant for manual execution. With the TDS server, its possible to automate many of the diagnostics tests run. The change includes: 1. Refactoring of the test server 2. Refactor Query engine to allow plugging in custom queries. 3. Moving some of the Diagnostics tests queries to existing queries in the QueryEngine. 4. Adding support for error queries in the custom query engine. 5. Added the TDS project to SqlClient solution. This change can be used to drive #13511 to completion. Improves test line coverage to 21.7% for #14346 +14961 area-System.Collections Remove silent boxing/make exceptions consistent in ImmutableArray Tracking issue for changes to the source of `ImmutableArray` to be made after the test changes in #14798. All of these will be fixed in a subsequent PR. - [ ] Remove silent boxing in `Remove` / `Replace` - Relevant lines: [`Replace`](https://github.com/jamesqo/corefx/blob/38b28ed31c9a6620fbbfd6c3822bc1a2ea6c3c9f/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.cs#L731-L734), [`Remove`](https://github.com/jamesqo/corefx/blob/38b28ed31c9a6620fbbfd6c3822bc1a2ea6c3c9f/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableArray_1.cs#L771) - There exists no `IndexOf(T, IEqualityComparer)` method on ImmutableArray, so it is boxed to an IImmutableList and the ImmutableList extension method is called - These should be trivial to fix (just pass in `0` and `self.Length`) - [ ] Make exceptions thrown by `RemoveRange` / `Remove` consistent - Relevant diffs: https://github.com/dotnet/corefx/pull/14798/files#diff-5c35677b4c2163f273b62555ee2cc97bR731, https://github.com/dotnet/corefx/pull/14798/files#diff-5c35677b4c2163f273b62555ee2cc97bR797 +14966 area-System.Console Enhanced styling for System.Console It would be cool if System.Console were to support writing to the console using any RGB color and in predefined styles. For examples of usage, see [Colorful.Console](https://github.com/tomakita/Colorful.Console/blob/master/README.md). The idea is to keep current System.Console behavior invariant while adding extra functions to its interface that enable enhanced styling. I have no idea if this is the kind of contribution you're interested in, but I figured I'd ask! +14967 area-System.Security System.Security.Claims compatible with .NET 4.5.1? Is it possible to make the System.Security.Claims package compatible with .NET 4.5.1? Is it different from the implementation of .NET 4.5.1 or was there another reason why its nuget package only supports netstandard1.3 and net46? +14972 area-System.Collections Cleanup & tweak perf for ImmutableList.Node **Description:** Without sacrificing too much readability/brevity, this PR makes several tweaks to `ImmutableList.Node` that result in up to a 35% speedup for common operations such as `Add` and `Insert`. **Overview:** - Convert each of the tree-balancing methods (such as `RotateLeft`) to instance members - This makes it easier for the JIT to inline because we can remove the null checks at the beginning of each method (I've measured, this makes `Add` / `Insert` ~10% faster) - Rewrite `DoubleLeft` / `DoubleRight` so that the mutation is done in one swoop - Remove the optional parameter scheme from `Mutate`, introduce `MutateLeft` and `MutateRight` - These methods are called each time a node is mutated, so we want to minimize branching - Avoid forwarding to `Insert` from `Add` - In the case of `Add` we always want to insert towards the right, so we can avoid one branch per recursion - Fix inconsistencies in some XML documentation - Refactor some code into new methods - Use expression-bodied syntax for properties - Add some extra Debug.Asserts to some methods - Remove some dead code around `RotateLeft` / `RotateRight` - Rename `Balance` -> `BalanceFactor` to avoid confusion that the method balances the node **Performance results:** https://gist.github.com/jamesqo/b6e5f54b01facf03b64000a13d52206c `Insert` and `Add` show significant improvements. The results for `InsertRange` and `AddRange` are less dramatic, but still consistently positive. There are no use cases (that I am aware of) where perf is negatively impacted by this PR. cc @AArnott @ianhays @stephentoub +14976 area-System.Diagnostics How obtain Process.GetCurrentProcess().Handle? "Hi folks! I'm building a netstandar1.5 lib and I have downloaded System.Diagnostics.Process v4.3.0 from Nuget, but method .Handle is missing. I try to call this code which works fine in Framework 3.5: ```c# [DllImport(""kernel32.dll"")] [return: MarshalAs(UnmanagedType.Bool)] static extern bool IsWow64Process([In] IntPtr hProcess, [Out] out bool lpSystemInfo); internal static bool IsWowProcess() { var retVal = false; IsWow64Process(Process.GetCurrentProcess().Handle, out retVal); //missing Handle! return retVal; } ``` Thanks a lot !" +14978 area-System.Data SqlClient / MultiSubnetFailover / Linux / 1.1.0 "I would really appreciate some advice if possible. I'm running a .NET Core App 1.1.0 in a container against a SqlServer 12 database with MultiSubnetFailover. My connection string looks like this... Data Source=***.***.***.com;Initial Catalog=DATABASENAME;User ID=USER_ID;Password=""USER_PASSWORD"";Connect Timeout=60;TrustServerCertificate=True;Application Name="".NET Core"";MultiSubnetFailover=True There are just two subnets, so when I resolved the dns name I get 2 ip addresses back. As long as the primary is listed first, I can connect. If the secondary is listed first it will timeout and fail Does this mean that MSF is not available in Linux ?? Have I got an incorrect ConnectionString ? Is the IP resolution running in serial and not parallel ? I've tried all manner of things - for example - setting the connection time out to 200 (based on some similar queries). I've also read that I should not specify the Initial Catalog (on linux) when using MSF but this is an onerous solution to me. Would appreciate some advice on this one as I'm running out of options and want to go into production.... Thanks in advance James " +14979 area-System.Linq Fix disposal of enumerators in EnumerablePartition **Description:** I found out while adding a new API in https://github.com/dotnet/corefx/pull/14186 that I had forgotten to override `Dispose` in `EnumerablePartition`, which is returned by `Skip` / `Take`. This fixes that and adds corresponding tests to make sure the source enumerator is disposed properly. I also made some of the test code I had written in an earlier PR a bit cleaner. **Related:** https://github.com/dotnet/corefx/pull/13628 /cc @JonHanna @stephentoub @VSadov +14983 area-System.IO Test failure: System.IO.Tests.WaitForChangedTests/Renamed_Success Opened on behalf of @jiangzeng The test `System.IO.Tests.WaitForChangedTests/Renamed_Success` has failed. Assert.True() Failure Expected: True Actual: False Stack Trace: at System.IO.Tests.WaitForChangedTests.Renamed_Success() Build : Master - 20170108.02 (Core Tests) Failing configurations: - Fedora.23.Amd64 - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170108.02/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.WaitForChangedTests~2FRenamed_Success +14984 area-System.Globalization "System.Globalization.Calendars.Tests threw ""System.ArgumentOutOfRangeException""" No results generated. Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170108.02/workItem/System.Globalization.Calendars.Tests/details/c9ef7300-4763-45b3-8e8a-886180e6bb61 Log: ``` 2017-01-08 15:21:42,927: INFO: proc(55): run_and_log_output: Output: Discovering: System.Globalization.Calendars.Tests 2017-01-08 15:21:43,270: INFO: proc(55): run_and_log_output: Output: Discovered: System.Globalization.Calendars.Tests 2017-01-08 15:21:43,270: INFO: proc(55): run_and_log_output: Output: Starting: System.Globalization.Calendars.Tests 2017-01-08 15:22:03,395: INFO: proc(55): run_and_log_output: Output: System.Globalization.Tests.CalendarHelpers.GetDaysInMonth_Invalid [FAIL] 2017-01-08 15:22:03,395: INFO: proc(55): run_and_log_output: Output: System.ArgumentOutOfRangeException : Non-negative number required. 2017-01-08 15:22:03,395: INFO: proc(55): run_and_log_output: Output: Parameter name: year 2017-01-08 15:22:03,395: INFO: proc(55): run_and_log_output: Output: Stack Trace: 2017-01-08 15:22:03,395: INFO: proc(55): run_and_log_output: Output: at System.Globalization.GregorianCalendarHelper.GetGregorianYear(Int32 year, Int32 era) 2017-01-08 15:22:03,395: INFO: proc(55): run_and_log_output: Output: at System.Globalization.EastAsianLunisolarCalendar.CheckYearRange(Int32 year, Int32 era) 2017-01-08 15:22:03,395: INFO: proc(55): run_and_log_output: Output: at System.Globalization.EastAsianLunisolarCalendar.GetMonthsInYear(Int32 year, Int32 era) 2017-01-08 15:22:03,395: INFO: proc(55): run_and_log_output: Output: D:\A\_work\64\s\corefx\src\System.Globalization.Calendars\tests\CalendarHelpers.cs(126,0): at System.Globalization.Tests.CalendarHelpers.d__9.MoveNext() 2017-01-08 15:22:03,395: INFO: proc(55): run_and_log_output: Output: at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() 2017-01-08 15:22:03,411: INFO: proc(55): run_and_log_output: Output: System.Globalization.Tests.CalendarHelpers.IsLeapDay_Invalid [FAIL] 2017-01-08 15:22:03,411: INFO: proc(55): run_and_log_output: Output: System.ArgumentOutOfRangeException : Non-negative number required. 2017-01-08 15:22:03,411: INFO: proc(55): run_and_log_output: Output: Parameter name: year 2017-01-08 15:22:03,411: INFO: proc(55): run_and_log_output: Output: Stack Trace: 2017-01-08 15:22:03,411: INFO: proc(55): run_and_log_output: Output: at System.Globalization.GregorianCalendarHelper.GetGregorianYear(Int32 year, Int32 era) 2017-01-08 15:22:03,411: INFO: proc(55): run_and_log_output: Output: at System.Globalization.EastAsianLunisolarCalendar.CheckYearRange(Int32 year, Int32 era) 2017-01-08 15:22:03,411: INFO: proc(55): run_and_log_output: Output: at System.Globalization.EastAsianLunisolarCalendar.GetMonthsInYear(Int32 year, Int32 era) 2017-01-08 15:22:03,411: INFO: proc(55): run_and_log_output: Output: D:\A\_work\64\s\corefx\src\System.Globalization.Calendars\tests\CalendarHelpers.cs(126,0): at System.Globalization.Tests.CalendarHelpers.d__9.MoveNext() 2017-01-08 15:22:03,411: INFO: proc(55): run_and_log_output: Output: at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() 2017-01-08 15:22:04,006: INFO: proc(55): run_and_log_output: Output: System.Globalization.Tests.CalendarHelpers.IsLeapMonth_Invalid [FAIL] 2017-01-08 15:22:04,006: INFO: proc(55): run_and_log_output: Output: System.ArgumentOutOfRangeException : Non-negative number required. 2017-01-08 15:22:04,006: INFO: proc(55): run_and_log_output: Output: Parameter name: year 2017-01-08 15:22:04,006: INFO: proc(55): run_and_log_output: Output: Stack Trace: 2017-01-08 15:22:04,006: INFO: proc(55): run_and_log_output: Output: at System.Globalization.GregorianCalendarHelper.GetGregorianYear(Int32 year, Int32 era) 2017-01-08 15:22:04,006: INFO: proc(55): run_and_log_output: Output: at System.Globalization.EastAsianLunisolarCalendar.CheckYearRange(Int32 year, Int32 era) 2017-01-08 15:22:04,006: INFO: proc(55): run_and_log_output: Output: at System.Globalization.EastAsianLunisolarCalendar.GetMonthsInYear(Int32 year, Int32 era) 2017-01-08 15:22:04,006: INFO: proc(55): run_and_log_output: Output: D:\A\_work\64\s\corefx\src\System.Globalization.Calendars\tests\CalendarHelpers.cs(126,0): at System.Globalization.Tests.CalendarHelpers.d__9.MoveNext() 2017-01-08 15:22:04,006: INFO: proc(55): run_and_log_output: Output: at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() 2017-01-08 15:22:04,022: INFO: proc(55): run_and_log_output: Output: Finished: System.Globalization.Calendars.Tests 2017-01-08 15:22:04,036: INFO: proc(55): run_and_log_output: Output: === TEST EXECUTION SUMMARY === 2017-01-08 15:22:04,036: INFO: proc(55): run_and_log_output: Output: System.Globalization.Calendars.Tests Total: 1435, Errors: 0, Failed: 3, Skipped: 0, Time: 0.849s ``` Build: 20170108.02 Configuration: Windows.10.Amd64 +14986 area-System.IO Test failure: Hundreds of tests under 'System.IO.FileSystem.Tests' failed Opened on behalf of @jiangzeng Lots of tests of 'System.IO.FileSystem.Tests' failed. Failing with: System.ArgumentException: Illegal characters in path Or: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters Build : Master - 20170108.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170108.02/workItem/System.IO.FileSystem.Tests +14987 area-System.IO Test failure: System.IO.Tests.DerivedFileStream_ctor_sfh_fa/VirtualCanReadWrite_ShouldNotBeCalledDuringCtor Opened on behalf of @jiangzeng The test `System.IO.Tests.DerivedFileStream_ctor_sfh_fa/VirtualCanReadWrite_ShouldNotBeCalledDuringCtor` has failed. Assert.False() Failure\r Expected: False\r Actual: True Stack Trace: at System.IO.Tests.DerivedFileStream_ctor_sfh_fa.VirtualCanReadWrite_ShouldNotBeCalledDuringCtor() in D:\A\_work\64\s\corefx\src\System.IO.FileSystem\tests\FileStream\ctor_sfh_fa.cs:line 142 Build : Master - 20170108.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170108.02/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.DerivedFileStream_ctor_sfh_fa~2FVirtualCanReadWrite_ShouldNotBeCalledDuringCtor +14988 area-Infrastructure [x86/Linux] Change processor name from x86 to i686 in cmake "As CMAKE_SYSTEM_PROCESSOR is eq to ""uname -p"" need to change to i686 To match with CoreCLR which uses i686" +14989 area-System.Net Test failure: System.Net.NameResolution.Tests.LoggingTest/EventSource_ExistsWithCorrectId Opened on behalf of @jiangzeng The test `System.Net.NameResolution.Tests.LoggingTest/EventSource_ExistsWithCorrectId` has failed. System.TypeLoadException : Could not load type 'System.Net.NetEventSource' from assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Stack Trace: at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type) at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase) at System.Net.NameResolution.Tests.LoggingTest.EventSource_ExistsWithCorrectId() in D:\A\_work\64\s\corefx\src\System.Net.NameResolution\tests\FunctionalTests\LoggingTest.cs:line 16 Build : Master - 20170108.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: System.Net.WebSockets.Tests.LoggingTest/EventSource_ExistsWithCorrectId System.Net.NameResolution.Tests.LoggingTest/EventSource_ExistsWithCorrectId Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170108.02/workItem/System.Net.NameResolution.Functional.Tests/analysis/xunit/System.Net.NameResolution.Tests.LoggingTest~2FEventSource_ExistsWithCorrectId https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170108.02/workItem/System.Net.WebSockets.Client.Tests/analysis/xunit/System.Net.WebSockets.Tests.LoggingTest~2FEventSource_ExistsWithCorrectId +14990 area-System.Collections Test failure: System.Collections.ObjectModel.Tests.ConstructorAndPropertyTests/DebuggerAttributeTests Opened on behalf of @jiangzeng The test `System.Collections.ObjectModel.Tests.ConstructorAndPropertyTests/DebuggerAttributeTests` has failed. System.InvalidOperationException : Expected one DebuggerDisplayAttribute on System.Collections.ObjectModel.ObservableCollection`1[System.Int32]. Stack Trace: at System.Diagnostics.DebuggerAttributes.ValidateDebuggerDisplayReferences(Object obj) in D:\A\_work\64\s\corefx\src\Common\tests\System\Diagnostics\DebuggerAttributes.cs:line 82 at System.Collections.ObjectModel.Tests.ConstructorAndPropertyTests.DebuggerAttributeTests() in D:\A\_work\64\s\corefx\src\System.ObjectModel\tests\ObservableCollection\ObservableCollection_ConstructorAndPropertyTests.cs:line 123 Build : Master - 20170108.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: System.Collections.ObjectModel.Tests.ConstructorAndPropertyTests/DebuggerAttributeTests System.Collections.ObjectModel.Tests.ReadOnlyObservableCollectionTests/DebuggerAttribute_Tests Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170108.02/workItem/System.ObjectModel.Tests +14991 area-System.Runtime Test failure: System.Runtime.Numerics.Tests failed with Xunit.Sdk.EqualException & Xunit.Sdk.TrueException Opened on behalf of @jiangzeng The test `System.Numerics.Tests.ComparisonTest/IComparable_Invalid` has failed. Assert.Equal() Failure\r Expected: obj\r Actual: (null) Stack Trace: at System.Numerics.Tests.ComparisonTest.IComparable_Invalid() in D:\A\_work\64\s\corefx\src\System.Runtime.Numerics\tests\BigInteger\Comparison.cs:line 367 System.Numerics.Tests.ComparisonTest/IComparable_Invalid: ``` Unhandled Exception of Type Xunit.Sdk.TrueException Message : Failure at line 299. Expected real: 1.5707963267949. Actual real: NaN\r\nExpected: True\r\nActual: False Stack Trace : at System.Numerics.Tests.ComplexTests.VerifyRealImaginaryProperties(Complex complex, Double real, Double imaginary, Int32 lineNumber) in D:\A\_work\64\s\corefx\src\System.Runtime.Numerics\tests\ComplexTests.cs:line 1583 at System.Numerics.Tests.ComplexTests.ACos_Advanced(Double real, Double imaginary, Double expectedReal, Double expectedImaginary) in D:\A\_work\64\s\corefx\src\System.Runtime.Numerics\tests\ComplexTests.cs:line 299 ``` Build : Master - 20170108.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: System.Numerics.Tests.ComparisonTest/IComparable_Invalid System.Numerics.Tests.ComplexTests/ACos_Advanced System.Numerics.Tests.ComplexTests/Equals System.Numerics.Tests.cast_fromTest/RunDoubleExplicitCastFromLargeBigIntegerTests System.Numerics.Tests.logTest/RunLargeValueLogTests Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170108.02/workItem/System.Runtime.Numerics.Tests +14992 area-System.Numerics Test failure: System.Numerics.Tests.modpowTest/ModPow1Large2SmallInt_Threshold Opened on behalf of @jiangzeng The test `System.Numerics.Tests.modpowTest/ModPow1Large2SmallInt_Threshold` has failed. System.TypeInitializationException : The type initializer for 'BigIntTools.Utils' threw an exception.\r ---- System.ArgumentNullException : Value cannot be null.\r Parameter name: type Stack Trace: at BigIntTools.Utils.RunWithFakeThreshold(String name, Int32 value, Action action) at System.Numerics.Tests.modpowTest.ModPow1Large2SmallInt_Threshold() in D:\A\_work\64\s\corefx\src\System.Runtime.Numerics\tests\BigInteger\modpow.cs:line 146 ----- Inner Stack Trace ----- at System.Reflection.IntrospectionExtensions.GetTypeInfo(Type type) at BigIntTools.Utils..cctor() in D:\A\_work\64\s\corefx\src\System.Runtime.Numerics\tests\BigInteger\BigIntTools.cs:line 38 Build : Master - 20170108.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: System.Numerics.Tests.IsEvenTest/RunIsEvenTests System.Numerics.Tests.modpowTest/ModPow1Large2SmallInt_Threshold System.Numerics.Tests.modpowTest/ModPow2Large1SmallInt_Threshold System.Numerics.Tests.modpowTest/ModPow3LargeInt System.Numerics.Tests.multiplyTest/RunMultiply_TwoLargeBigIntegers_Threshold Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170108.02/workItem/System.Runtime.Numerics.Tests +14993 area-System.Numerics Test failure: System.Numerics.Tests.powTest/RunOverflow Opened on behalf of @jiangzeng The test `System.Numerics.Tests.powTest/RunOverflow` has failed. Assert.Throws() Failure\r Expected: typeof(System.OverflowException)\r Actual: typeof(System.OutOfMemoryException): Array dimensions exceeded supported range. Stack Trace: at System.Numerics.BigIntegerBuilder.SetSizeClear(Int32 cu) at System.Numerics.BigIntegerBuilder.Mul(BigIntegerBuilder& reg1, BigIntegerBuilder& reg2) at System.Numerics.BigInteger.Pow(BigInteger value, Int32 exponent) at System.Numerics.Tests.powTest.<>c__DisplayClass9_0.b__0() in D:\A\_work\64\s\corefx\src\System.Runtime.Numerics\tests\BigInteger\pow.cs:line 178 Build : Master - 20170108.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170108.02/workItem/System.Runtime.Numerics.Tests/analysis/xunit/System.Numerics.Tests.powTest~2FRunOverflow +14994 area-System.Security Test failure: System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/EnvelopedCmsEncryptWithZeroRecipients Opened on behalf of @jiangzeng The test `System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/EnvelopedCmsEncryptWithZeroRecipients` has failed. Assert.Throws() Failure\r Expected: typeof(System.PlatformNotSupportedException)\r Actual: typeof(System.Security.Cryptography.CryptographicException): The system cannot find the file specified.\r Stack Trace: at System.Security.Cryptography.X509Certificates.X509Store.Open(OpenFlags flags) at System.Security.Cryptography.Pkcs.PkcsUtils.SelectRecipients(SubjectIdentifierType recipientIdentifierType) at System.Security.Cryptography.Pkcs.EnvelopedCms.Encrypt(CmsRecipientCollection recipients) at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.<>c__DisplayClass13_0.b__0() in D:\A\_work\64\s\corefx\src\System.Security.Cryptography.Pkcs\tests\EnvelopedCms\EdgeCasesTests.cs:line 286 Build : Master - 20170108.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170108.02/workItem/System.Security.Cryptography.Pkcs.Tests/analysis/xunit/System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests~2FEnvelopedCmsEncryptWithZeroRecipients +14995 area-System.Security Test failure: System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/ZeroLengthContent_FixedValue Opened on behalf of @jiangzeng The test `System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/ZeroLengthContent_FixedValue` has failed. System.Exception : ContentInfo expected to be 0 but was actually 6. If you're running on the desktop CLR, this is actually a known bug. Stack Trace: at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.ValidateZeroLengthContent(Byte[] encodedMessage) in D:\A\_work\64\s\corefx\src\System.Security.Cryptography.Pkcs\tests\EnvelopedCms\EdgeCasesTests.cs:line 181 at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.ZeroLengthContent_FixedValue() in D:\A\_work\64\s\corefx\src\System.Security.Cryptography.Pkcs\tests\EnvelopedCms\EdgeCasesTests.cs:line 126 Build : Master - 20170108.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Release Failed tests: System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/ZeroLengthContent_FixedValue System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/ZeroLengthContent_RoundTrip System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.StateTests/PostDecode_ContentInfo System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.StateTests/PostDecode_Encode Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170108.02/workItem/System.Security.Cryptography.Pkcs.Tests +15002 area-System.Net ServerCertificateCustomValidationCallback unexpectedly exit with 0 code on Window10 "Hello I am trying to use custom certificate validation with dotnetcore 1.1.0 (also tested with v=1.0.1) The program exited unexpectedly in GetAsync method without raising exception. I have the following minimal code & ouput: Code ```c# using System; using System.Net.Http; namespace Callback { public class Program { const string requestUri = ""https://google.fr""; public static void Main(string[] args) { _main(args); } public static async void _main(string[] args) { HttpResponseMessage response = null; var clientHandler = new HttpClientHandler(); clientHandler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return true; }; ; Console.WriteLine(""Before request; Press any key to execute""); Console.ReadKey(); Console.WriteLine(""REQUESTING !""); using (var c = new HttpClient(clientHandler)) { try { response = await c.GetAsync(requestUri); } catch (Exception e) { Console.WriteLine(""ERROR: "" + e); throw e; } } Console.WriteLine(""After request""); Console.WriteLine(response.StatusCode.ToString()); Console.ReadKey(); } } } ``` Output ``` 'dotnet.exe' (CoreCLR: DefaultDomain): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Private.CoreLib.ni.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Users\mte\work\sslTest\Callback\src\Callback\bin\Debug\netcoreapp1.0\Callback.dll'. Symbols loaded. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Runtime.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\mscorlib.dll'. Symbols loaded. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Threading.Tasks.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Net.Http.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Net.Primitives.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Console.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Security.Cryptography.X509Certificates.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Diagnostics.Tracing.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Collections.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Threading.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Runtime.InteropServices.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Runtime.Handles.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.IO.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.IO.FileSystem.Primitives.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Text.Encoding.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Text.Encoding.Extensions.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Private.Uri.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Diagnostics.DiagnosticSource.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. 'dotnet.exe' (CoreCLR: clrhost): Loaded 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0\System.Runtime.Extensions.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. The program '[9268] dotnet.exe' has exited with code 0 (0x0). ``` Thanks for your help" +15004 area-Infrastructure Enable Dumpling for all Helix test runs This is a follow-up change for https://github.com/dotnet/buildtools/pull/1254 since `/p:EnableCloudTest=true` is not being passed to Helix runs anymore and so Dumpling.targets was not being imported as expected. cc: @danmosemsft @MattGal @weshaggard +15005 area-System.Data Remove the SqlConnection Test This is to fix the failures in CI from SqlConnection Test. I will continue to investigate the failure. I dont see any coverage impact with this test being removed because this usecase is taken care of, in Diagnostics test. cc @stephentoub @danmosemsft +15006 area-Infrastructure Add RIDs for RHEL 7.3 and 7.4 Teach .NET Core that RHEL 7.3 (released) and 7.4 (currently in development) are just newer versions of RHEL 7.2 and are compatible with RHEL 7.2. This (along with some other fixes) allows us to build various .NET Core projects on RHEL 7.3. cc @ellismg +15007 area-System.IO Fix some intermittently failing Desktop FSW tests They're failing for misc reasons but mostly are plagued by timeouts. I excluded some actual failures and increased timeouts for the other ones so desktop FSW runs should be clean going forward. resolves https://github.com/dotnet/corefx/issues/14894 resolves https://github.com/dotnet/corefx/issues/14983 resolves https://github.com/dotnet/corefx/issues/13304 resolves https://github.com/dotnet/corefx/issues/13248 resolves https://github.com/dotnet/corefx/issues/13245 resolves https://github.com/dotnet/corefx/issues/13246 +15009 area-Serialization Fix XmlSerializerFactoryTest in ReflectionOnly Mode. The test failed in ReflectionOnly mode because XmlSerializerFactory does not know how to deal with ReflectionOnly mode. The fix is to make XmlSerializerFactory use XmlSerializer consturctor who knows how to handle logic for ReflectinOnly/non-ReflectionOnly scenarios. Fix #11919 /cc: @zhenlan @mconnew @huanwu +15010 area-Infrastructure [dev/eng]Cleaning up src.builds and tests.builds and build System.Configurations Changes includded: - Convert System.Configurations library and test projects to the dev/eng reference style and re-added them to the build - For libraries that were added in master and don't yet compile (System.DirectoryServices.* and System.Security.Cryptography.Xml) added an emtpy `Configurations.props` file so that they get filtered out for now until the required changes are made so that they build for Core. - Cleanup the exclusions on `src/src.builds` and `src/tests.builds` files cc: @weshaggard @mellinoe @chcosta +15011 area-System.Data Data.Common and SqlClient: considering adding an alternate version of GetFieldValueAsync() that returns a ValueTask "Based on the [the description of `ValueTask`](https://github.com/dotnet/corefx/blob/master/src/System.Threading.Tasks.Extensions/src/System/Threading/Tasks/ValueTask.cs#L12-L50) and the discussion at https://github.com/dotnet/corefx/issues/4708 it seems that `GetFieldValueAsync()` (on `DbDataReader` and derived types) could use it to enable more efficient fine-grained async code. Note that we haven't performed any measurements to try to understand the impact of this change and that the higher level components we work on such as EF6 and EF Core currently would not take advantage of it, but we are creating this issue mainly to give the SqlClient team a chance to evaluate this improvement for other code that uses this ADO.NET API directly. Also note that fine-grained async APIs that return `Task` (such as `ReadAsync()` and `IsDBNullAsync()`) are better off returning cached `Task` instances to gain efficiency instead of adopting `ValueTask`. From my perspective, there are a couple of open issues if we decided to do this: 1. Naming of the new method: since there can't be yet another overload that only differs on the return type, and the ""standard"" name with just the `Async` suffix is taken. 2. Compatibility for providers: It seems desirable to offer a default implementation of the Task-based method that calls `AsTask()` on the `ValueTask` instance returned by the new API, so that new providers don't need to implement the old `Task` version of the API but instead only implement the more efficient `ValueTask` version. It also seems good not to force existing providers to switch. I am currently thinking that adding an optional interface with the new API could be a solution, but there are other disadvantages in that approach. cc @stephentoub @YoungGah @saurabh500 " +15012 area-System.Net Consider making NegotiateStreamPal and related APIs in Common a reusable component System.Data.SqlClient needs to use the GSSAPIs to interact with the Kerberos tokens to authenticate Sql Server users on .Net Core on Linux and macOS System.Net.Mail has a dependency on the Interop Classes in Common folder, e.g. https://github.com/dotnet/corefx/blob/fd15ab1de03a4431e0ead9ff10e1bf53e2ae4bb7/src/System.Net.Mail/src/System.Net.Mail.csproj#L148 Can the Common\System\Net\Security\* and related files be made a component (a Nuget package) which can be reused by SqlClient, System.Net.Security and System.Net.Mail? This will allow the consumers to consume a single package instead of including the platform specific files for compilation in the project files. Alternatively, can APIs be added to interact with GSS-APIs using .Net Core so that the managed version of System.Data.SqlClient be truly portable without taking platform specific dependencies? SqlClient mainly needs to use AcquireCredentialHandle and InitializeSecurityContext APIs to make the feature work for Managed SNI. cc @stephentoub @YoungGah +15013 area-System.Globalization Fix System.Globalization test to run against net46 Currently we build the tests as netstandard library so we never build with TargetGroup=net46 System.Globalization test was written depending on TargetGroup=net46. The change here is to fix this issue and also fix Unicode Category test to run fine with old Unicode category data +15015 area-Infrastructure Modify Helix-related targets scripts to handle new conventions "There's a few parts to this, and the rest of it is still a WIP. Putting this out to get some feedback from @karajas and @MattGal on the best way to move forward. * I've added back a trimmed-down version of the Runner.* scripts and templates. We no longer need to copy and files from the package cache, but we do need to pass in a ""Runtime Path"" instead. This is essentially the `bin/runtime/netcoreapp-xyz` directory. This will be zipped up and delivered much in the same way that the packages directory is nowadays. * Local test execution now uses those runner scripts like they did before * This is still using CoreRun, but using dotnet shouldn't be much work on top of this, just changing which folders get zipped up and some paths changed. * I haven't validated the zip files and made any changes to Helix yet." +15016 area-Infrastructure Opt package builds out of configurations imports Also, changing variable names in the publish step for build pipeline. /cc @ericstj +15017 area-System.Net Expose interface to support SASL compliant authentication protocols In .NET the authentication protocols implementation is available as an internal type [NTAuthentication](https://github.com/dotnet/corefx/blob/e61cda509c29326cdfb044d3e08c5b0ad388644d/src/System.Net.Security/src/System/Net/NTAuthentication.cs) but the API surface area is designed for Windows compatible NTLM, Kerberos and WDigest auth. We need an API like [IAuthenticationModule](https://github.com/dotnet/corefx/blob/2117bae3a6c9736033e6d1659821ff3a1069920b/src/System.Net.Requests/src/System/Net/IAuthenticationModule.cs), that is more generic, and not tied to ```WebRequest```. +15018 area-System.Net Test failure: System.Net.NetworkInformation.Tests.PingTest/SendPingAsyncWithHostAndTimeout Opened on behalf of @jiangzeng The test `System.Net.NetworkInformation.Tests.PingTest/SendPingAsyncWithHostAndTimeout` has failed. Assert.Equal() Failure Expected: Success Actual: TimedOut Stack Trace: at System.Net.NetworkInformation.Tests.PingTest.<>c__DisplayClass10_0.b__1(PingReply pingReply) at System.Net.NetworkInformation.Tests.PingTest.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.NetworkInformation.Tests.PingTest.d__10.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170109.02 (Core Tests) Failing configurations: - Ubuntu.1604.Amd64 - AnyCPU-Debug Details: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170109.02/workItem/System.Net.Ping.Functional.Tests/analysis/xunit/System.Net.NetworkInformation.Tests.PingTest~2FSendPingAsyncWithHostAndTimeout +15022 area-Infrastructure System.Runtime.CompilerServices.Unsafe doesn't handle configurations This is an ilproj, and it doesn't have a configurations file, so when it builds, it just defaults to debug, it doesn't produce a release binary. In general, any library which doesn't have buildconfigurations specified, will get defaulted to debug (even if configurationgroup=release is specified on the command-line). We should handle this better and still respect propreties. For this project, you could probably just set ```netcoreapp;``` but it may take a small amount of time to validate. +15023 area-System.Diagnostics Add context to DiagnosticSource "# Motivation Our goal is to enable telemetry event correlation. To do this we need incoming requests to be tagged with an ID (and potentially other information), and have this information 'flow' through (be available) to all code run in response to that request and in particular allow this information to be propagated to any outgoing requests. This class is meant to effectively augment existing DiagnosticSource telemetry, and be compatible/leveragable from using the existing ILogger and EventSource based logging as well. The result is that all these logging mechanisms will now have 'end-to-end' event correlation (every event has an activity, and for any event you can find the chain of activities that 'caused' it). # Concepts The main new code is the Activity class. Conceptually an Activity is something that starts and stops (thus it has a start time and duration), and potentially has a 'Parent' that 'caused' it. In addition it has two sets of arbitrary key-value pairs. The first is called 'Tags', which are intended to be logged with the activity but do NOT propagate to children. The second is 'Baggage' that DOES propagate to children. Tags are intended to augment telemetry, baggage is intended to control telemetry. # Usage scenario: Modify existing Incoming HTTP Request telemetry code (e.g. in ASPNet.Hosting) to - Extract data (e.g. an ID) from the HTTP header - Create a new a new Activity which has this ID as a parent and stores any other telemetry data values from HTTP header. - Make the activity current with the Activity.Current and log the telemetry with the DiagnosticSource.Start() API. - Now at any point, the telemetry context is available in Activity.Current. Modify the existing Outgoing HTTP request telemetry (e.g. in System.Net.Http) to - Looks at Activity.Current and injects the current ActivityID and Baggage into the outgoing HTTP header. This feature is focused on context itself and does not cover incoming/outgoing operations handling (they are in different DLLs and will be covered in subsequent pull requests). The API is inspired by [opentracing.io](http://opentracing.io/) standard ([API specification](https://github.com/opentracing/specification/blob/master/specification.md)) and implements following concepts: # Proposed API ```c# namespace System.Diagnostics { public class Activity { //name of operation public string OperationName { get; } //id of the activity. Propagated to dependencies, so parent-child relationship of activities could be logged public string Id { get; private set; } // activity start timestamp public DateTime StartTimeUtc { get; private set; } //duration for stopped activity public TimeSpan Duration { get; private set; } //reference to parent activity if any; public Activity Parent { get; private set; } //represents Id of parent activity, may be passed from external service public string ParentId { get; private set; } // list of key-value pairs which may be used for logging. E.g. HTTP Method and Path. Users can enumerate tags and add new tags public IEnumerable> Tags {get;} //list of key value pairs to be propagated to downstream services. E.g. correlation-id. Users can enumerate baggage, request baggage by name and add new items public IEnumerable> Baggage {get;} //Current Activity for the current thread. This flows across async calls. public static Activity Current; public Activity(string operationName); public Activity AddTag(string key, object value); public Activity AddBaggage(string key, string value); public Activity SetParentId(string parentId); public Activity SetStartTime(DateTime startTimeUtc); public Activity SetEndTime(DateTime endTimeUtc); public string GetBaggageItem(string key); //Sets activity parent and Activity.Current public Activity Start(); //Restores Activity.Current to parent activity public void Stop(); } // wrapper methods in DiagnosticSource for activity Start and Stop which writes corresponding events to DiagnosticSource public abstract partial class DiagnosticSource // in addition to existing methods { public Activity StartActivity(Activity activity, object args); public void StopActivity(Activity activity, object args); } } ``` # Usage Sample ```c# namespace App { public void OnIncomingRequest(DiagnosticListener httpListener, HttpRequest request) { // This code represents code in say web service's hosting layer that receives an // Incoming HTTP from outside the process. We expect to instrument this code // to accomplish the following three things // 1) Create a new activity that will track through the system as the request is processed // 2) Look for items in the HTTP request that can be used to correlate this incoming // request with other processing on other machines. These should be put into // the newly created Activity so it is available for all subsequent logging. // 3) Log the start and stop of this activity that was created. // // In this example we look for the 'x-ms-request-id' as a HTTP header that identifies // a ID unique ID and passes along any values with the 'x-ms-baggage' prefix. // if (httpListener.IsEnabled(""Http_In"")) { var activity = new Activity(""Http_In""); //parse request headers and add tags and baggage activity.SetParentId(request.headers[""x-ms-request-id""]) foreach (var header in context.Request.Headers) if (header.Key.StartsWith(""x-ms-baggage-"") activity.AddBaggage(header.Key, header.Value); //start activity httpListener.StartActivity(activity, context); try { //process request ... } finally { //stop activity httpListener.StopActivity(activity, context); } } } public void OnOutgoingRequest(DiagnosticListener httpListener, HttpRequestMessage request) { // This code represents code in the framework where an outgoing HttpRequest is being // sent to another machine. The goal of this code is to create and log an activity associated // with doing this as well as to add the ID and any Activity Baggage to the outgoing HTTP // header. if (listener.IsEnabled(""Http_Out"")) { var activity = new Activity(""Http_Out""); //start new activity, Parent for this activity is assigned to Activity.Current listener.StartActivity(activity, new { Request=request) }); try { // Attach our ID and Baggage to the outgoing Http Request request.Headers.Add(""x-ms-request-id"", activity.Id); foreach (var baggage in activity.Baggage) request.Headers.Add(baggage.Key, baggage.Value); // Actually perform the Http Write Request, get the response } finally { listener.StopActivity(activity, {new { Response=reponse }); } } } public void Startup() { // This is code that shows usage to get at the logging (and activity) information // logged by the code above. This follows normal DiagnosticListener conventions. // In which you subscribe to and new DiagnosticListener. // (We assume the DiagnosticListener we used above is called 'System.Net.Http') // From there we can subscribe to its events. // Events will be fired on every Start() and Stop() call above, and the Activity.Current // will be accurate during those callbacks. Thus you have all the information passed int // the Start() or Stop() call as well as all information from Activity.Current available // in the callback. DiagnosticListener.AllListeners.Subscribe(delegate (DiagnosticListener listener) { if (listener.Name == ""System.Net.Http"") { listener.Subscribe(delegate (KeyValuePair value) { // In this demo we simply log to the console what things are happening. Console.WriteLine(""Event: {0} Current Operation: {1} Current ID {2}"", value.Key, {Activity.Current.OperationName}, {Activity.Current.Id}); }); } } } } ``` # Notes We want to bring Activity to ASP.NET 4.5 and ASP.NET Core users which require DiagnosticSource for NET 4.5. Netstandard1.1 is not good enough because it does not implement nethier AsyncLocal nor CallContext," +15026 area-Meta Add guide for dogfooding CoreFX Skip CI Please I took @danmosemsft and updated it slightly. @weshaggard, @ericstj: please give it a read as well. +15027 area-System.IO FileSystemInfo.LastWriteTimeUtc throws on Linux if folder doesn't exist FileSystemInfo.LastWriteTimeUtc behaves different on Windows and Ubuntu 16.04: see: https://github.com/OPCFoundation/UA-.NETStandardLibrary/issues/112 Set FileSystemInfo to a path that doesn't exist, then call LastWriteTimeUtc. On Windows it returns something like 1.1.1600, On Linux it throws exception expected: windows behaviour or at least similar behaviour on both OS. +15031 area-System.Net System.IO.FileLoadException in System.Net.Http 4.1.1 (NuGet package 4.3.0) on System.Diagnostics.DiagnosticSource 4.0.1 (NuGet package 4.3.0) System.IO.FileLoadException at System.Net.Http.WinHttpHandler.SendAsync(): Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) Our research has shown that: * System.Net.Http v 4.3.0 package depends on System.Diagnostics.DiagnosticSource v 4.3.0. * NuGet package of System.Net.Http v 4.3.0 in fact contains System.Net.Http.dll v 4.1.1 (as of Jan 8 2017). Why? There is NuGet package System.Net.Http v 4.1.1 for that * System.Net.Http ver 4.1.1.0 references System.Diagnostics.DiagnosticSource v. 4.0.0 * NuGet package of System.Diagnostics.DiagnosticSource v 4.3.0 in fact contains System.Diagnostics.DiagnosticSource v 4.0.1 (as of Jan 8 2017). * Strongly named assembly System.Diagnostics.DiagnosticSource version mismatch ( v 4.0.1 v.s. v 4.0.0) causes System.IO.FileLoadException in System.Net.Http 4.1.1. * The binding redirect to System.Diagnostics.DiagnosticSource v 4.0.0 to v 4.0.1 is not automatically generated under our scenario. Even if it was, would that address every build scenario, for example a shared library project later referenced from a 3-rd party project? This ticket can also be answered at http://stackoverflow.com/questions/41550563 Thanks! +15035 area-Infrastructure [dev/eng] Sorting and trimming Reference items in csprojs Sorting and trimming Reference items on our csprojs to make them more readable cc: @weshaggard @mellinoe +15036 area-System.Net Fix System.Net.Http.HttpClientHandler for net46 build "This PR addresses the problem seen in #11100. Here is a summary: 1) The original .NET Framework (Desktop) code for the HttpClientHandler implementation has been ported for this net46 build. It replaces the WinHttpHandler based code that is used for the other builds of .NET Core (Windows). This means that it uses the original HttpWebRequest (HWR) code in .NET Framework System.dll which is based on managed sockets. This ensures we go back to 100% app-compat behavior against .NET Framework. This also means that existing code that uses ServicePointManager to control behavior will also work 100% app-compat. One downside of this PR is that HTTP/2 protocol support is no longer available since we are reverting back to original .NET HTTP stack for the net46 build. If HTTP/2 protocol support is required on .NET Framework (Desktop), then a developer can use the separate WinHttpHandler package to get that. 2) The System.Net.Http.dll assembly is now marked as APTCA (Allow Partially Trusted Callers) similar to the original annotation of the .NET Framework version of the assembly. As part of this, a few security annotations were added to source code that is being compiled from the CoreFx repo. The SecAnnotate tool was used to verify the annotations and the tool now runs clean against this assembly. 3) This PR also addresses the problem introduced where .NET Framework WebRequestHandler wasn't compatible with the OOB System.Net.Http.dll on Desktop. I manually tested packages with this change and verified sending an HTTP request. There is no longer any ""Derived types must either match the security accessibility of the base type or be less accessible"" exceptions. 4) The tracing mechanism of this implementation implicitly re-activates the System.Net tracing (TraceListener based) since we are now going back to the original .NET Framework HTTP stack. However, part of the source code for the rest of the assembly compiled in from .NET Core repo also includes the new DiagnosticSource tracing as well. There didn't appear to be any negative consequences of leaving this in as it simply adds extra tracing on top of the original System.Net tracing. 5) There are 8 new properties that were added to the HttpClientHandler class compared to the original HttpClientHandler defined in .NET Framework. These new properties are part of the NETStandardard2.0 definitions. Due to switching back to the original HTTP stack implementation in Desktop, some of these new properties can not be implemented fully since there are incompatibilities between defining them as per handler instance compared to the actual underlying ServicePointManager implementation. So, some of these properties will throw PlatformNotSupportedException for now. Since these were newly added properties, the expectation is that there will be minimal app-compat affect. 6) Even with this PR, any project using an OOB (Out of Band) assembly such as System.Net.Http.dll might be REQUIRED to have binding redirects in their app.config/web.config. This is because there needs to be a way to reconcile onto ONE assembly version of the same name. In particular implicit and explicit references to something like the .NET Framework System.Net.Http.WebRequest.dll (which contains WebRequestHandler) is bound to the System.Net.Http.dll version 4.0.0.0 of the .NET Framework. Once an OOB System.Net.Http.dll is introduced, there is now another version of System.Net.Http.dll with a different version number. For the current master branch, the System.Net.Http.dll assembly version is 4.2.0.0. Note that the assembly version is disjoint from the NuGet package version (currently at 4.4* in the master branch). So, this requires a binding redirect in the app.config/web.config similar to: ```c# ``` Tooling such as Visual Studio will normally create this binding for you. But we have seen cases where it doesn't do it automatically. Please keep this in mind. If you don't have any binding redirects for System.Net.Http.dll, you will potentially get errors when sending an HTTP request such as this: >System.InvalidCastException: [A]System.Net.Http.Headers.MediaTypeHeaderValue cannot be cast to [B]System.Net.Http.Headers.MediaTypeHeaderValue. Type A originates from 'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' in the context 'Default' at location 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Net.Http\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll'. Type B originates from 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' " +15039 area-System.Security Fix System.Security.Cryptography.Pkcs to run against net46 fixes #14995 fixes #14994 +15041 area-System.Security Looks like we have never run the System.Security.AccessControl tests While investigating why these tests were failing on dev/eng branch, I found out that they are also failing in master just that we haven't been running them. The reason why is because the target that selects which projects to run the tests from (`FilterProjectsToTest`) has a condition into making sure that the test .builds file ends with a `.Tests.builds` and it looks like for System.Security.AccessControl, we have always had it like: `System.Security.AccessControl.builds` making it never to run tests. cc: @ianhays (who added the .builds file in the first place) +15042 area-Infrastructure Remove PackageTargetFramework This property is not longer needed. In all cases we derive it from NuGetTargetMoniker. This was being set for pkgprojs and causing runtime packages to also contain the TFM in the id. /cc @chcosta @weshaggard +15044 area-Infrastructure Ensure we set Configuration on P2P and traversal Similar to https://github.com/dotnet/corefx/pull/15037/commits/c572ae1d2169eccdd1827b9bdcab991a3f916d50 which solved this problem for static evaulation, do the same on traversal builds and P2P references. Submitting for CI coverage. @alexperovich will pick this up in his change. /cc @weshaggard @chcosta +15045 area-System.ComponentModel Remove TypeConverter dependency from System.Data.Common Currently System.Data.Common depends on System.ComponentModel.TypeConverter which we should break. TypeConverter is a higher level assembly with lots of dependencies which we don't want to pull in with System.Data.Common. If we need type converters for System.Data.Common we can move implement them or add the mappings for them in S.CM.TypeConverter directly. +15046 area-System.Data Consider removing Transactions dependency from System.Data.Common Currently System.Data.Common depends on System.Transactions because of DbConnection.EnlistTransaction. That API is currently not part of .NET Standard 2.0 so we should either include it along with Transactions to .NET Standard 2.0 or we should consider removing it from .NET Core and breaking this dependency on Transactions. @terrajobst @stephentoub what are you guys thoughts? +15047 area-Serialization Remove CodeDom dependency from S.P.DataContractSerialization System.CodeDom is a higher level OOB component that we should avoid having a dependency on from a lower level component like DataContractSerialization. We should remove this dependency. Looks like it was added with https://github.com/dotnet/corefx/commit/e5df9bee7f15b78e51883ceda56cd081113dc0e2 @shmao @zhenlan +15049 area-System.Security Remove S.Security.Permissions dependency from CodeDom and TypeConverter Currently System.CodeDom and System.ComponentModel.TypeConverter depend on System.Security.Permissions. We should break that dependency as they shouldn't need anything from that the Permissions library. cc @safern +15050 area-System.Numerics Fix System.Runtime.Numerics Tests to run against desktop Fixes #14993 Fixes #14992 Fixes #14991 +15051 area-System.Numerics Investigate the behavior difference in System.Runtime.Numeric when running on desktop System.Runtime.Numeric has some different behaviors when running on desktop than when running on netcore. the PR #15050 has the places needed to be investigated which are marked with [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)] +15054 area-Serialization Remove CodeDom dependency from S.P.DataContractSerialization. Removing CodeDom dependency from S.P.DataContractSerialization. as System.CodeDom is a higher level OOB component. Fix #15047 /cc: @zhenlan @weshaggard +15056 area-System.Globalization Fix Calendar tests to make it run against desktop Fixes #14984 +15068 area-System.Runtime Augment BinaryFormatter tests - Uncomment tests that had previously been commented out while waiting for more types to be properly serializable - Add tests for various equality comparers, some of which are particularly interesting because they deserialize as a different object type - Decrease the running time of the fuzzing tests - Deleted dead code from a previous change that removed a test / remoting members (This will fail CI until https://github.com/dotnet/coreclr/pull/8892 is brought into corefx.) cc: @danmosemsft +15069 area-System.Security Proposal: API additions for determining curve support Right now in netstandard1.6 we have `ECCurve` for using named or arbitrary ECC curves. This is very useful for certain type of applications where the curve is a configurable option (for example, a German company that insists on using brainpool curves for certain operations). What we don't have right now is an easy way to list all of the supported named curves for a particular platform. Keeping with the brainpool example, Windows 10 supports most (if not all) of the named brainpool curves, however Windows 8.1 and below do not in CNG. Also, depending on how far #9394 goes, macOS CommonCrypto / Security Transforms do not support curves other than the standard NIST prime curves and some of djb's curves. I'm not entirely sure all platforms support arbitrary curves, either (for example, Twisted Edwards curves). I would then propose an API that lets us determine the capabilities of the current platform. +15072 area-System.Security Fix Windows 7 issue with RC2 EffectiveKeyLength "The SymmetricAlgorithm RC2 is broken with Windows 7; this fixes that by setting EffectiveKeyLength on the algorithm handle instead of the key handle. Addresses https://github.com/dotnet/corefx/issues/12926 : RC2CipherTests failing on Win7 with ""unknown error""" +15073 area-System.Threading Fix ActionBlockTests.TestFaulting test Fixes https://github.com/dotnet/corefx/issues/14505 cc: @kouvel +15074 area-Infrastructure Update 1.2.0 nupkgs to 2.0.0 This is consistent with the branding of the release. /cc @weshaggard @chcosta +15076 area-Serialization Add More Tests Covering XmlSerializer Supporting SoapEncoded Message +15077 area-System.Collections Fix System.ObjectModel test to run on desktop fixes #14990 +15078 area-Serialization Add More Tests Covering XmlSerializer Supporting SoapEncoded Message Fix #15076 +15080 area-System.Memory IndexOf/SequenceEqual methods for Span. "These are requested for the parsing libraries. There will also be ReadOnlySpan<> versions as well as char/byte-specific overloads (that bypass IEquatable.Equals() in favor of ""=="") but most or all of that will be copy-paste of these once we're happy with the generic versions." +15081 area-Infrastructure Update CoreClr, CoreFx, ProjectNTfs to beta-24913-01, beta-24914-07, beta-24913-00, respectively (master) +15083 area-Infrastructure System.Runtime.Serialization.Primitives is missing from NETCore.App ref It looks like netstandard.dll has a bunch of dangling refs. @weshaggard when you added the netstandard.dll to the package you disabled the closure validation on it which introduced this issue. +15084 area-System.Net Fix System.Net.Primitives.Functional.Tests to run on net46 Fixes #10817 Fixes #10816 Fixes #10815 Fixes #10814 +15089 area-System.Data SqlClient Managed SNI tries to establish a UDP connection for Sql Server connections SqlClient Managed SNI profiling shows that there is a significant amount of time being spent to open a connection while resolving the default instance port `SNIProxy.TryTOGetDefaultInstancePort(...)` https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIProxy.cs#L267 This may be unnecessary for most use cases. I am opening this issue to find a way to optimize this. ![image](https://cloud.githubusercontent.com/assets/1623701/21869018/676231b2-d80a-11e6-9d2d-ce586653c95d.png) cc @corivera @geleems +15091 area-System.Net Port NegotiateStream test fix to release/1.1.0 Not having this commit is causing consistent failures in the Ubuntu Outerloop runs for rel/1.1.0 @karelz Original PR: https://github.com/dotnet/corefx/pull/12831 Stop crashing in NegotiateStream tests on Unix when KDCSetup fails The NegotiateStream tests on Unix try to set up kerberos infrastructure. The tests then check whether infrastructure is available, and gracefully don't run if it's not. But the KDCSetup fixture is throwing an exception if the infrastructure can't be configured, which is causing a fair number of our outerloop CI runs to fail on various OSes. Until we have a better solution in place, I'm making the failure graceful rather than crashing. +15092 area-Infrastructure Move stuff from Tools-Override into BuildTools As part of the dev/eng work we changed a lot of targets in BuildTools and put them under Tools-Override as well as created a custom CoreFxTools task. All of these need to be moved to BuildTools. +15093 area-Infrastructure Refactor build traversal Change contract of cross-project target to return configuration rather than trying to construct a project item. This preserves the metadata of the original Project/ProjectReference. When the MSBuild task creates the TargetOutputs it will copy all the original metadata from the Project items and create the OriginalItemSpec metadata. From this we can simply transform back to a Project/ProjectReference and prepend Configuration to the AdditionalProperties. This fixes a case where projects were setting AdditionalProperties and we were squashing it. To make it clearer how this worked I made the targets only return a property so that we don't accidentally squash any metadata set on the project. I found that we were never using the DetermineProjectsConfiguration target so I deleted it. I've also cleaned up the targets to make things a bit more consistent and added comments. +15094 area-Infrastructure Update development docs to reflect new engineering changes skip ci please @ericstj @mellinoe @joperezr @chcosta @danmosemsft @karelz I'd appreciate you guys having a look as well. +15095 area-System.Console Fix System.Console test to run on net46 Fixes #10844 +15096 area-System.Net CurlHandler calls HttpContent.ReadAsStreamAsync - doesn't this mean request bodies are always buffered? While tracking down some odd behaviour with HttpClient on OSX (request body always seems to be buffered, unlike response body) I noticed that `CurlHandler` calls `HttpContent.ReadAsStreamAsync` rather than `CopyToAsync`: https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs#L1167 Am I correct in my assumption that this means the request body will always be buffered before sending? From what I understand, `CopyToAsync` will copy the stream without buffering if possible, but `ReadAsStreamAsync` will load the stream into a buffer first and return a stream over that buffer. Looking at the code I can see why it's been done that way but it means that, unlike the Windows implementation, uploads of really large files may cause problems. +15098 area-System.IO Paths with bad colons don't throw ArgumentException On desktop paths like `C::` would throw `ArgumentException`. In CoreFX we're currently throwing `NotSupportedException`. (See tests in System.IO.FileSystem.) The Path class in CoreCLR needs updated. +15099 area-Meta Add baseline file for uap10.1 vs. NS2.0 We already have these baselines comparing to netcoreapp2.0: ``` layout\ApiCompatBaseline.netfx461.txt layout\ApiCompatBaseline.netstandard20.txt ``` We could use another one in there, that compares uap10.1 to netstandard2.0. We can then burn this file down to zero as we did before with ApiCompatBaseline.netstandard20.txt Joe maybe you can do this with your work to enable the uap build configurations. +15100 area-System.IO Fix tests run on desktop Conditionalize tests appropriately so long path and new syntax support are taken into account. Move some test data into Theories for easier debugging. Fix and add issue to colon check tests until we fix CoreCLR. Note that there are still some failing tests, but this addresses all of the long path & invalid syntax issues (the majority). #14986 @tarekgh @ianhays @danmosemsft +15101 area-System.Runtime System.Runtime.Loader tests don't work when running with shared framework. As a part of https://github.com/dotnet/corefx/pull/14823, the following two tests fail. System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadFromAssemblyName_ValidTrustedPlatformAssembly ``` System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadFromAssemblyName_ValidTrustedPlatformAssembly [FAIL] System.IO.FileNotFoundException : Could not load file or assembly 'System.Runtime.dll'. The system cannot find the file specified. ---- System.IO.FileNotFoundException : The system cannot find the file specified. (Exception from HRESULT: 0x80070002) Stack Trace: at System.Runtime.Loader.AssemblyLoadContext.nGetFileInformation(String s) at System.Runtime.Loader.AssemblyLoadContext.GetAssemblyName(String assemblyPath) D:\git\corefx\src\System.Runtime.Loader\tests\AssemblyLoadContextTest.cs(99,0): at System.Runtime.Loader.Tests.AssemblyLoadContextTest.LoadFromAssemblyName_ValidTrustedPlatformAssembly() ----- Inner Stack Trace ----- System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetAssemblyNameTest_ValidAssembly [FAIL] System.IO.FileNotFoundException : Could not load file or assembly 'System.Runtime.dll'. The system cannot find the file specified. ---- System.IO.FileNotFoundException : The system cannot find the file specified. (Exception from HRESULT: 0x80070002) Stack Trace: at System.Runtime.Loader.AssemblyLoadContext.nGetFileInformation(String s) at System.Runtime.Loader.AssemblyLoadContext.GetAssemblyName(String assemblyPath) D:\git\corefx\src\System.Runtime.Loader\tests\AssemblyLoadContextTest.cs(27,0): at System.Runtime.Loader.Tests.AssemblyLoadContextTest.GetAssemblyNameTest_ValidAssembly() ----- Inner Stack Trace -----` ``` and System.Runtime.Loader.Tests.DefaultLoadContextTests.LoadInDefaultContext ``` System.Runtime.Loader.Tests.DefaultLoadContextTests.LoadInDefaultContext [FAIL] System.IO.FileNotFoundException : Could not load file or assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. ---- System.IO.FileNotFoundException : The system cannot find the file specified. (Exception from HRESULT: 0x80070002) Stack Trace: at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type, ObjectHandleOnStack keepAlive) at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase) at System.Reflection.Assembly.GetType(String name, Boolean throwOnError) D:\git\corefx\src\System.Runtime.Loader\tests\DefaultContext\DefaultLoadContextTest.cs(290,0): at System.Runtime.Loader.Tests.DefaultLoadContextTests.DefaultContextOverrideTPA() D:\git\corefx\src\System.Runtime.Loader\tests\DefaultContext\DefaultLoadContextTest.cs(207,0): at System.Runtime.Loader.Tests.DefaultLoadContextTests.LoadInDefaultContext() ----- Inner Stack Trace ----- at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, String ilPath, String niPath, ObjectHandleOnStack retAssembly) at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath) D:\git\corefx\src\System.Runtime.Loader\tests\DefaultContext\DefaultLoadContextTest.cs(41,0): at System.Runtime.Loader.Tests.OverrideDefaultLoadContext.Load(AssemblyName assemblyName) at System.Runtime.Loader.AssemblyLoadContext.ResolveUsingLoad(AssemblyName assemblyName) at System.Runtime.Loader.AssemblyLoadContext.Resolve(IntPtr gchManagedAssemblyLoadContext, AssemblyName assemblyName) ``` +15102 area-System.Net Provide websocket implementation for Managed httplistener. cc @karelz @stephentoub @CIPop @davidsh fixes #14690 +15103 area-System.Diagnostics Add Activity to DiagnosticSource This change introduces Activity class which provides operation context for DiagnosticSource, see #15023 and [User Guide](https://github.com/lmolkova/corefx/blob/dev/diagnosticsource_activity/src/System.Diagnostics.DiagnosticSource/src/ActivityUserGuide.md) for more details. +15106 area-System.Threading No waiting on SemaphoreSlim For `SemaphoreSlim`, there are `semaphore.Wait()`, `semaphore.Wait(int)`, `semaphore.WaitAsync()`, etc. methods. Sometimes it is necessary *to try* obtain the semaphore, *but if it is unavailable then not to wait*. This is a real use case, as evident by the number of StackOverflow posts related to it. So: `semaphore.Wait(0)` or `semaphore.WaitAsync(0)` or `semaphore.Wait(TimeSpan.Zero)`, etc. But that is undocumented. If this behavior is allowed, as I assume it is, please document it in the method notes. Until such time we cannot rely on this behavior. +15109 area-Infrastructure Conflict-resolution: NETCore.App needs to declare itself a preferred package Add a props to declare this. +15110 area-Infrastructure Conflict-Resolution: NETCore.App is not winning over fat packages for copy-local "In 1.0/1.1 NETCore.App was composed of a mix of fat packages and split packages. In 2.0 NETCore.App is one big split package. This means that for a portable app using the shared framework it may see copy-local assets from 1.0/1.1 without seeing any of the newer 2.0 SharedFramework assets to cancel them out. 1. One solution is to make NETCore.App carry metadata (via a generated props file) that lists all the runtime files it represents. These can be fed into conflict resolution as an independent item. 2. Another solution would be to make MSBuild aware of the contents of the shared framework directly and use these for conflict resolution. I'm thinking to do 1 since it doesn't involve ""searching"" for the shared framework. @eerhardt did you do something similar in publish? How are you handling filtering now that type/platform doesn't exist. Seems like a similar problem. /cc @weshaggard @terrajobst " +15111 area-System.Linq Cloning dictionnary<,> by reflection and expression tree "### Hello everyone, I'm coming to share with you a strange I have with my code at the moment. I'm exporting an XNA game to Monogame for the Universal Windows application (wup). But in the game code we make deep and brute cloning of some class (public and private propriety) We created a code module for the cloning a bit like Deepcloner, using ""expression tree"" to generate the cloner fonctions by different type. The code is working well on .Net4.5 but on .NetCore once the export problem solved it have some trouble during the ""Dictionary"" cloning , the cloner element has the same size than the original but not the same KEY values or the same Value. Yet the cloning code executes well without showing an error. ### Expression tree generate (new System.Linq.Expressions.Expression.BlockExpressionProxy(resultExpression as System.Linq.Expressions.ScopeN)).DebugView : ``` .Block( System.Collections.Generic.Dictionary`2[System.String,System.String] $var1, System.Collections.Generic.Dictionary`2[System.String,System.String] $var2) { .Try { .Block() { .If (.Call $visited.ContainsKey($original) == True) { .Block() { $var1 = (System.Collections.Generic.Dictionary`2[System.String,System.String])$visited.Item[$original]; .Goto #Label1 { } } } .Else { .Default(System.Void) }; $var1 = (System.Collections.Generic.Dictionary`2[System.String,System.String]).Call System.Activator.CreateInstance(.Constant(System.Collections.Generic.Dictionary`2[System.String,System.String])) ; .Call $visited.Add( (System.Object)$original, (System.Object)$var1); $var2 = (System.Collections.Generic.Dictionary`2[System.String,System.String])$original; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : 0 field name : count""); $var1.count = $var2.count; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : 1 field name : version""); $var1.version = $var2.version; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : 2 field name : freeList""); $var1.freeList = $var2.freeList; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : 3 field name : freeCount""); $var1.freeCount = $var2.freeCount; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : --> field name : buckets""); .If ($var2.buckets != null) { .Block() { $var1.buckets = (System.Int32[]).Call ((System.Array)$var2.buckets).Clone() } } .Else { .Default(System.Void) }; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : --> field name : entries""); .If ($var2.entries != null) { .Block( System.Collections.Generic.Dictionary`2+Entry[System.String,System.String][] $var3, System.Int32 $var4, System.Int32 $var5) { $var4 = .Call ($var2.entries).GetLength(0); $var3 = .NewArray System.Collections.Generic.Dictionary`2+Entry[System.String,System.String][$var4]; $var5 = 0; .Loop { .Block() { .If ($var5 >= $var4) { .Break #Label2 { } } .Else { .Default(System.Void) }; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : 0 field name : hashCode""); ($var3[$var5]).hashCode = (($var2.entries)[$var5]).hashCode; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : 1 field name : next""); ($var3[$var5]).next = (($var2.entries)[$var5]).next; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : 2 field name : key""); ($var3[$var5]).key = (($var2.entries)[$var5]).key; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : 3 field name : value""); ($var3[$var5]).value = (($var2.entries)[$var5]).value; ++$var5 } } .LabelTarget #Label2:; $var1.entries = $var3 } } .Else { .Default(System.Void) }; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : --> field name : comparer""); .If ($var2.comparer != null) { .Block() { $var1.comparer = (System.Collections.Generic.IEqualityComparer`1[System.String]).Call (.Call Storages.Cloning.ExpressionTreeCloner.getOrCreateDeepFieldBasedCloner(.Call ($var2.comparer).GetType() )).Invoke( $var2.comparer, $visited) } } .Else { .Default(System.Void) }; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : --> field name : keys""); .If ($var2.keys != null) { .Block() { $var1.keys = (System.Collections.Generic.Dictionary`2+KeyCollection[System.String,System.String]).Call (.Call Storages.Cloning.ExpressionTreeCloner.getOrCreateDeepFieldBasedCloner(.Call ($var2.keys).GetType() )).Invoke( $var2.keys, $visited) } } .Else { .Default(System.Void) }; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : --> field name : values""); .If ($var2.values != null) { .Block() { $var1.values = (System.Collections.Generic.Dictionary`2+ValueCollection[System.String,System.String]).Call (.Call Storages.Cloning.ExpressionTreeCloner.getOrCreateDeepFieldBasedCloner(.Call ($var2.values).GetType() )).Invoke( $var2.values, $visited) } } .Else { .Default(System.Void) }; .Call System.Diagnostics.Debug.WriteLine(""debug expression eval : --> field name : _syncRoot""); .If ($var2._syncRoot != null) { .Block() { $var1._syncRoot = (System.Object).Call (.Call Storages.Cloning.ExpressionTreeCloner.getOrCreateDeepFieldBasedCloner(.Call ($var2._syncRoot).GetType() )).Invoke( $var2._syncRoot, $visited) } } .Else { .Default(System.Void) } } } .Catch (System.Exception $ex) { .Block() { .Call System.Diagnostics.Debug.WriteLine($ex); .Throw $ex } }; .Label .LabelTarget #Label1:; (System.Object)$var1 } ``` ### debug output : ![screen shot 01-12-17 at 04 07 pm](https://cloud.githubusercontent.com/assets/4943931/21895590/9432ea72-d8e3-11e6-94b5-fb4d3822972a.PNG) somebody can tell what wrong please. thank." +15112 area-Meta Packages with platform specific implementation in net4* TFM We've identified following netstandard/corefx nuget packages as breaking when used with VS for Mac and targeting .NET Framework. - System.Runtime.InteropServices.RuntimeInformation - System.Globalization.Extensions - System.Net.Http - System.Text.Encoding.CodePages - System.IO.Compression The underlying issue is when running on non-Windows platform using .NET TFM e.g. `net462` the nuget `lib` implementation is used and assembly copied to application folder for execution but that will fail because for packages above the implementation has hard Windows dependencies. This is becoming serious issue as more developers adopt netstandard packages and even if Mono provides platform independent implementation the assembly from local folder is preferred over Mono implementation in GAC. +15114 area-System.Console Make System.Console throw the same Exception on netcore as the full framework "The desktop throw IOException on the follwoing calls: ```C# Assert.Throws(() => Console.WindowWidth = 0); Assert.Throws(() => Console.WindowHeight = 0); ``` while netcore throw ArgumentOutOfRangeException ```C# Assert.Throws(""value"", () => Console.WindowWidth = 0); Assert.Throws(""value"", () => Console.WindowHeight = 0); ``` please have a look at the PR #15095 for more info " +15115 area-System.Memory Specialized char/byte overloads for Span.IndexOf/Span.SequenceEquals() "This is a pretty mechanical copy-paste. Main difference is that ""=="" rather than IEqualityComparer<>.Equals is used for the compare. Still to do: - ReadOnly analogues of all this. That's another copy-paste op. - More performant implementation for the byte/char overloads (comparing a dword at a time.) Not sure if we have the needed pinning support at this time but in any case, I want that in its own PR and I want to get this big copy-paste thing in before the merge ban. " +15116 area-Infrastructure Add option to build script to have it also build and run tests. Perhaps `build.cmd -all` which would include the test project builds. +15117 area-Infrastructure Need to add build and test support for corert As part of the new engineering changes we need to add build and test configuration support for corert builds of the libraries. In other words we need to make the following commands work and build the correct stuff: ``` build -framework corert build-tests -framework corert ``` cc @jkotas @SedarG +15118 area-System.Security SSLv3_method not defined in file libssl.so.1.0.0 Hi! I'm trying to access an SQL Server via EF on Arch Linux and the following error occurs. ``` Exception message: /opt/dotnet/dotnet: relocation error: /opt/dotnet/shared/Microsoft.NETCore.App/1.1.0/System.Security.Cryptography.Native.OpenSsl.so: symbol SSLv3_method, version OPENSSL_1.0.0 not defined in file libssl.so.1.0.0 with link time reference ``` I know Arch Linux is not supported but maybe you guys have a hint so I may be able to fix this. ### Steps to reproduce Execute an arbitrary EF statement ### Further technical details EF Core version: 1.1.0 Database Provider: Microsoft.EntityFrameworkCore.SqlServer Operating system: Arch Linux IDE: (e.g. Visual Studio Code) +15120 area-System.IO dotnet build on NFS: Access to the path '.SDKVersion' is denied. Re-issue of https://github.com/dotnet/cli/issues/4227 # Problem The following problem occurs when attempting to build a dotnet project in Ubuntu when the project to build is located on a network file system. When I run `dotnet build -f netstandard1.6` on any project, `dotnet build` returns the following output: ``` Project projectname (.NETStandard,Version=v1.6) will be compiled because expected outputs are missing Compiling projectname for .NETStandard,Version=v1.6 Access to the path '/mnt/users/username/Documents/Source/projectsolution/src/projectname/obj/Debug/netstandard1.6/.SDKVersion' is denied. ``` However, when I run `ls -lah` with the path shown above, it shows me that the file is accessible (at least for me): ``` -rwxr--r-- 1 username usergroup 0 sep. 22 11:31 /mnt/users/username/Documents/Source/projectsolution/src/projectname/obj/Debug/netstandard1.6/.SDKVersion* ``` I am also able to open, edit and delete the file in the file explorer, with `gedit`, with `vim` or other usual tools. Running `chmod a+rwx` on the file, so that all access right are granted does also not solve the problem. In this case the project files are located on a NFS file system that is mounted in ubuntu. Any other program like `vim` or `git` that create dotfiles (files that start with `.`) work fine. # Workaround If I supply a path in `/tmp` with the `-b` option, the build runs successfully. # Environment data `dotnet --info` output: ``` .NET Command Line Tools (1.0.0-preview3-003555) Product Information: Version: 1.0.0-preview3-003555 Commit SHA-1 hash: a2b861e4c8 Runtime Environment: OS Name: ubuntu OS Version: 16.04 OS Platform: Linux RID: ubuntu.16.04-x64 ``` @kosak gives a good debug startin point in https://github.com/dotnet/cli/issues/4227#issuecomment-253938255 +15121 area-Infrastructure Provide a nice error message when building an individual project without the configuration initalized After the engineering work if you try to build an individual project for a build configuration that hasn't been setup by calling build.cmd once for it will cause all kinds of random looking errors. We should detect this case and give a good error with a clear message of what needs to be done to fix it. +15122 area-Infrastructure Provide a way to build all configurations With the new engineering workflow we no longer have a simple way to build all configurations of a library or test project. We should add support for a build-all supported configurations for a given machine. We should do that from the root level as well as from an individual test project level. +15123 area-System.Memory Create the ReadOnlySpan<> equivalents for IndexOf/SequentialEqual Another copy-paste job. +15126 area-Infrastructure Code coverage in dev/eng Enable code coverage in dev/eng +15127 area-System.IO Test Failure: System.IO.Tests.Directory_SetCurrentDirectory.SetToValidOtherDirectory Encountered this random failure in an unrelated PR under Centos dotnet_corefx/master/centos7.1_release_prtest 2060 centos71-20160929-f983f0 01/11 04:35 PM steveharter 15072 MESSAGE: Assert.Equal() Failure Expected: 42 Actual: 255 STACK TRACE: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_release_prtest/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs:line 164 +15128 area-System.Numerics Fix the outerloop test cases on System.Numeric to run on desktop fixes #14992 fixes #14991 +15129 area-System.Reflection Fix System.Reflection.Context and System.Console test to run on Desktop fixes #10823 fixes #10842 +15131 area-Meta Audit behavioral differences between CoreFX and Desktop Eg by looking through all tests that are desktop specific by grepping for `SkipOnTargetFramework.*TargetFrameworkMonikers.Netcoreapp` We are concerned about cases where we broke compat with Desktop exception behavior, and now with the new focus on NS2.0 we want to be more closely compatible. See https://github.com/dotnet/corefx/pull/15095/files/51dfc8f3bb7a08f87ba519ed39ec70a443b35507#diff-e33ac35956193577452d988d644a7866 +15132 area-System.Reflection Adding netcoreapp1.2corert configuration to System.Reflection.Primitives @jkotas, PTAL /cc @dotnet/corert-contrib +15135 area-Meta Announcement: Engineering changes for corefx Over the last couple months, we have been doing some overhauling of our corefx engineering system in the dev/eng branch. The time has finally come to get these changes into master so we are going to use this issue to give a heads up on the details. ## Primary reasons for the changes * **Build from source** * Value: Simplify on-boarding of new Linux distros * As we have worked more in the open source space we finally made the realization that the source itself is also a product and we need to enable others to easily consume and build our full product from the source code itself. Our engineering system had numerous problems that made it difficult to bootstrap and build a full product from source with minimal external dependencies. * **Package reduction** * Value: .NET Core is now 1 package instead of 100's of tiny packages * We realized that we went overboard with the number of individual library packages we have. While it enables a very flexible system it also greatly increases the complexity of composing a fully functional framework. * **Other changes** * Build produces flat product layout which is ready for execution * Better build defaults (use your environment) ## When are we merging We are planning to begin merging changes on Friday 1/13 and to help with the merge conflicts we plan to **disable commits/merges** to corefx master branch on **Friday 1/13, Sat, Sun, and Mon 1/16**. We will open up the master branch again as soon as we have the merge in and the master branch functional. After the merge any active PRs will need to be rebased on top of master. Fri 1/13 **merge** is in https://github.com/dotnet/corefx/pull/15165. The branch is unlocked now. ## What does it mean to folks working in corefx After pulling the merged changes you should do a full clean and build. ``` clean --all build build-tests ``` As part of this work we have split the build and build-tests into separate steps, and build will only build the product and build-tests will build and run the tests. We highly recommend reading over our developer guide to better understand the developer workflow https://github.com/dotnet/corefx/blob/dev/eng/Documentation/project-docs/developer-guide.md. Given with the way we are building now you need to build from the root at least once before you can work on an individual project, from the command line or in VS. ## What changed Before we would multiplex our build configurations at every individual library level (i.e. .builds files) and in order to do that it required that we had a previous version of lots of the CoreFx libraries which we retrieved by restoring nuget packages of a previous corefx official build. That caused a lot of extra complexity in numerous ways such as restoring tons of nuget packages on every build as well as building for all configurations all the time. With our engineering work we have eliminated a lot of those complexities. Now the only nuget packages are for things that don't build in corefx itself and the package restoring will be scoped to tool initialization and under the external directory. All dependencies that are part of corefx will be **built live** in corefx instead of being restored from older packages. Now when you build from the root we will build all the reference assemblies and create a targeting pack in a flat directory and then build all the libraries referencing things from the targeting pack. By default this will produce a .NET Core build for the OS you are running on and it will create a flat runtime directory `bin\runtime\netcoreapp--Debug-x64` which will contain a fully runnable framework. That runtime directory can be used to run a .NET Core application via corerun or dotnet hosts. So no more groveling through the bin directory to try and cobble together a functional framework. The tests will also build against this targeting pack and then run on the flat runtime directory that was produced. This also means no more copying or hard-linking the entire framework into every test output directory. We believe these changes will make working in corefx a ton easier. However, it does add a little more work – you need to do root level build to setup the targeting pack and runtime before you can work on libraries. Moreover, if you want to work on more than one framework/configuration (.NET Core, desktop/netfx, and uap), you will need to do a root level build for each of the frameworks/configurations. Root level builds will only build the configuration that is specified so it will skip libraries that aren't applicable to that configuration. We have replaced the .builds files at the library level with a configuration.props file. The configuration.props file will list out the set of supported configurations and when building we will pick and build the best configuration and skip it if there isn't a valid configuration for what you are building. For more details on the configurations see https://github.com/dotnet/corefx/blob/dev/eng/Documentation/coding-guidelines/project-guidelines.md. Another part of the changes is in support of the package reduction goal. We now build a single package that contains all corefx libraries that are part of .NET Standard 2.0. This means that we will be deleting a lot of low level individual library packages and instead our root .NET Core package will contain all those libraries in the one package. This will greatly reduce the number of packages we produce and reduce the package graph depth and complexity for .NET Core applications. We hope this will remove the need for a degree in combinatorics and graph theory to be a .NET Core developer :). ## Things left to be done While we believe we got the basic .NET Core stack functional there are still a number issues that need to be addressed. We have tagged related issues with dev-eng and you can see the current backlog at https://github.com/dotnet/corefx/issues?q=is%3Aissue+is%3Aopen+label%3Adev-eng. A few of the more notable ones are: 1. Desktop/Netfx build configuration and tests aren't functional https://github.com/dotnet/corefx/issues/14911 (ETA: 1-2 weeks) 2. UWP build configuration and tests aren't functional https://github.com/dotnet/corefx/issues/14592 (ETA: 2-3 weeks) We hope that these changes will make working in corefx a lot better but please don't hesitate to let us know any issues you run into and we will do our best to address them. +15136 area-Infrastructure Cannot run tests against specific desktop TFMs You can specify a [particular config file](https://github.com/xunit/xunit/blob/master/src/xunit.console/CommandLine.cs#L116) with the xunit console runner. When we run against a particular TFM we should be generating the right config so the appropriate compat switches (quirks) are set. +15137 area-System.Threading Adding netcoreapp1.2corert configuration to System.Threading.Tasks @jkotas, PTAL /cc @dotnet/corert-contrib +15138 area-System.Collections Adding netcoreapp1.2corert configuration to System.Collections @jkotas, PTAL /cc @dotnet/corert-contrib +15140 area-Infrastructure Fix auto-updates to pass along project.json.template files @dagood tells me it should be as simple as passing those files to the update target so it should be easy to get this working. +15141 area-System.Net implement synchronous completion support in Sockets We complete all I/O asynchronously, even when the underlying OS operation actually completed synchronously. Fix this so that both Windows and Unix can do synchronous socket completions. @stephentoub @CIPop @davidsh @Priya91 +15143 area-System.Data System.Data.OperationAbortedException not present in System.Data.SqlClient contract CC @saurabh500 +15145 area-System.Net Fix System.Private.Uri tests for desktop Looks the behavior of netcore is very different than the desktop so the current existing tests are dramatically failing on the desktop and need to be re-written for the desktoop. #10821 is an example of failures +15146 area-System.Data Remove SSRP for TCP connections without port and Instance name Fixes #15089 The fix is to bring the behavior in sync with Windows Version of SqlClient. Comment https://github.com/dotnet/corefx/issues/15089#issuecomment-272268114 describes the behavior. I ran a test to connect to Azure using Managed version of SNI on Windows. With this change, 30 connnections to Azure SQL take about 13500 ms vs ~24000 ms before the change. cc @corivera @geleems +15147 area-System.Net Disable System.Private.Uri from running on desktop Looks the behavior of netcore is very different than the desktop so the current existing tests are dramatically failing on the desktop and need to be re-written for the desktoop. I have created the issue #15145 to track fix that but for now we disable the test on desktop fixes #10821 +15148 area-Infrastructure Fix projects that have be renamed to .disabled "@mellinoe @joperezr as part of the bring-up it looks like you guys renamed some projects to "".disabled"" We need to work on re-enabling those. I found the following from a quick search: ``` mscorlib.WinRT-Facade.csproj.disabled System.Net.Http.Rtc.csproj.disabled System.Numerics.Vectors.WindowsRuntime.csproj.disabled XsltScenarios.Tests.csproj.disabled System.Runtime.WindowsRuntime.csproj.disabled System.Runtime.WindowsRuntime.UI.Xaml.csproj.disabled ```" +15150 area-System.Security Create x-plat System.Security.Principal.Identity `WindowsIdentity` is tied to Windows concept of 1 identity per user. Linux can have multiple identities (in various locations on different distros) per user. Create common `Identity` which would abstract both approaches and provide Identity API which can be used on any OS. Details here https://github.com/dotnet/corefx/issues/7325#issuecomment-270967064 +15151 area-Infrastructure openSUSE 13.2 builds time out frequently. While I was looking at some other stuff, I noticed that it looks like the runs of openSUSE 13.2 hang from time to time when running tests. See https://ci.dot.net/job/dotnet_corefx/job/master/job/opensuse13.2_release/. Some jobs complete but others timeout (and then the logic to kill everything makes it look like MSBuild is failing). It isn't 100% reproducible, as some builds do complete without issue. I can't see when this started (the history doesn't go back far enough to see when this started). +15152 area-System.Threading Move System.Threading.Tasks implementation down to CoreLib see https://github.com/dotnet/corefx/pull/15137#discussion_r95915839 +15154 area-Serialization Refactor Files under Common/src/System/CodeDom Refactor the files under src/Common/src/System/CodeDom and remove the ifdefs in the files. See the following comments copied from https://github.com/dotnet/corefx/pull/15054 for more details: >I took a quick look. It looks like the serialization lib is using this CodeDom support for parsing the type arguments out of a type name string? Could we just factor out that parsing into its own helper that's then used by both CodeDom and the serialization lib, rather than sharing these whole files and using these ifdefs to control namespace and visibility? +15156 area-System.Threading Purpose of net46 AclExtensions What's the purpose net46 AclExtension files in CoreFX repo ? They expose different API then their CoreFX/netstandard counterparts and missing quite few checks. One example is https://github.com/dotnet/corefx/blob/296dc18f32e718280794becd8eccc67aab50251b/src/System.Threading.AccessControl/src/System/Threading/ThreadingAclExtensions.net46.cs +15157 area-System.Net Allow changing cipher suites offered in SSL/TLS handshake Some servers require clients to use specific suite of ciphers, that is different from the one netcore offers by default. This is the list that netcore on Windows 10 defaults to (on my PC) ```text Handshake Protocol: Client Hello Handshake Type: Client Hello (1) Length: 165 Version: TLS 1.2 (0x0303) Random Session ID Length: 0 Cipher Suites Length: 46 Cipher Suites (23 suites) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) Cipher Suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x009f) Cipher Suite: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x009e) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039) Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033) Cipher Suite: TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d) Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c) Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA256 (0x003d) Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA256 (0x003c) Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035) Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f) Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a) ``` For comparison, here's the list netcore offers on OS X Sierra ```text Cipher Suites Length: 202 Cipher Suites (101 suites) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (0xc030) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a) Cipher Suite: TLS_DH_DSS_WITH_AES_256_GCM_SHA384 (0x00a5) Cipher Suite: TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 (0x00a3) Cipher Suite: TLS_DH_RSA_WITH_AES_256_GCM_SHA384 (0x00a1) Cipher Suite: TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 (0x009f) Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 (0x006b) Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 (0x006a) Cipher Suite: TLS_DH_RSA_WITH_AES_256_CBC_SHA256 (0x0069) Cipher Suite: TLS_DH_DSS_WITH_AES_256_CBC_SHA256 (0x0068) Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039) Cipher Suite: TLS_DHE_DSS_WITH_AES_256_CBC_SHA (0x0038) Cipher Suite: TLS_DH_RSA_WITH_AES_256_CBC_SHA (0x0037) Cipher Suite: TLS_DH_DSS_WITH_AES_256_CBC_SHA (0x0036) Cipher Suite: TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA (0x0088) Cipher Suite: TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA (0x0087) Cipher Suite: TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA (0x0086) Cipher Suite: TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA (0x0085) Cipher Suite: TLS_ECDH_anon_WITH_AES_256_CBC_SHA (0xc019) Cipher Suite: TLS_DH_anon_WITH_AES_256_GCM_SHA384 (0x00a7) Cipher Suite: TLS_DH_anon_WITH_AES_256_CBC_SHA256 (0x006d) Cipher Suite: TLS_DH_anon_WITH_AES_256_CBC_SHA (0x003a) Cipher Suite: TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA (0x0089) Cipher Suite: TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 (0xc032) Cipher Suite: TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02e) Cipher Suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 (0xc02a) Cipher Suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 (0xc026) Cipher Suite: TLS_ECDH_RSA_WITH_AES_256_CBC_SHA (0xc00f) Cipher Suite: TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA (0xc005) Cipher Suite: TLS_RSA_WITH_AES_256_GCM_SHA384 (0x009d) Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA256 (0x003d) Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035) Cipher Suite: TLS_RSA_WITH_CAMELLIA_256_CBC_SHA (0x0084) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009) Cipher Suite: TLS_DH_DSS_WITH_AES_128_GCM_SHA256 (0x00a4) Cipher Suite: TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 (0x00a2) Cipher Suite: TLS_DH_RSA_WITH_AES_128_GCM_SHA256 (0x00a0) Cipher Suite: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x009e) Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 (0x0067) Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 (0x0040) Cipher Suite: TLS_DH_RSA_WITH_AES_128_CBC_SHA256 (0x003f) Cipher Suite: TLS_DH_DSS_WITH_AES_128_CBC_SHA256 (0x003e) Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033) Cipher Suite: TLS_DHE_DSS_WITH_AES_128_CBC_SHA (0x0032) Cipher Suite: TLS_DH_RSA_WITH_AES_128_CBC_SHA (0x0031) Cipher Suite: TLS_DH_DSS_WITH_AES_128_CBC_SHA (0x0030) Cipher Suite: TLS_DHE_RSA_WITH_SEED_CBC_SHA (0x009a) Cipher Suite: TLS_DHE_DSS_WITH_SEED_CBC_SHA (0x0099) Cipher Suite: TLS_DH_RSA_WITH_SEED_CBC_SHA (0x0098) Cipher Suite: TLS_DH_DSS_WITH_SEED_CBC_SHA (0x0097) Cipher Suite: TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA (0x0045) Cipher Suite: TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA (0x0044) Cipher Suite: TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA (0x0043) Cipher Suite: TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA (0x0042) Cipher Suite: TLS_ECDH_anon_WITH_AES_128_CBC_SHA (0xc018) Cipher Suite: TLS_DH_anon_WITH_AES_128_GCM_SHA256 (0x00a6) Cipher Suite: TLS_DH_anon_WITH_AES_128_CBC_SHA256 (0x006c) Cipher Suite: TLS_DH_anon_WITH_AES_128_CBC_SHA (0x0034) Cipher Suite: TLS_DH_anon_WITH_SEED_CBC_SHA (0x009b) Cipher Suite: TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA (0x0046) Cipher Suite: TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 (0xc031) Cipher Suite: TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02d) Cipher Suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 (0xc029) Cipher Suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 (0xc025) Cipher Suite: TLS_ECDH_RSA_WITH_AES_128_CBC_SHA (0xc00e) Cipher Suite: TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA (0xc004) Cipher Suite: TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c) Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA256 (0x003c) Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f) Cipher Suite: TLS_RSA_WITH_SEED_CBC_SHA (0x0096) Cipher Suite: TLS_RSA_WITH_CAMELLIA_128_CBC_SHA (0x0041) Cipher Suite: TLS_RSA_WITH_IDEA_CBC_SHA (0x0007) Cipher Suite: TLS_ECDHE_RSA_WITH_RC4_128_SHA (0xc011) Cipher Suite: TLS_ECDHE_ECDSA_WITH_RC4_128_SHA (0xc007) Cipher Suite: TLS_ECDH_anon_WITH_RC4_128_SHA (0xc016) Cipher Suite: TLS_DH_anon_WITH_RC4_128_MD5 (0x0018) Cipher Suite: TLS_ECDH_RSA_WITH_RC4_128_SHA (0xc00c) Cipher Suite: TLS_ECDH_ECDSA_WITH_RC4_128_SHA (0xc002) Cipher Suite: TLS_RSA_WITH_RC4_128_SHA (0x0005) Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004) Cipher Suite: TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (0xc012) Cipher Suite: TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA (0xc008) Cipher Suite: TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA (0x0016) Cipher Suite: TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (0x0013) Cipher Suite: TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA (0x0010) Cipher Suite: TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA (0x000d) Cipher Suite: TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA (0xc017) Cipher Suite: TLS_DH_anon_WITH_3DES_EDE_CBC_SHA (0x001b) Cipher Suite: TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA (0xc00d) Cipher Suite: TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA (0xc003) Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a) Cipher Suite: TLS_EMPTY_RENEGOTIATION_INFO_SCSV (0x00ff) ``` Here's the cipher suites offered by .NET for Windows (TLS 1.0 is default unless different SslProtocol specified in call to AuthenticateAsClient) ```text Handshake Protocol: Client Hello Handshake Type: Client Hello (1) Length: 107 Version: TLS 1.0 (0x0301) Random Session ID Length: 0 Cipher Suites Length: 22 Cipher Suites (11 suites) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a) Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014) Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013) Cipher Suite: TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039) Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033) Cipher Suite: TLS_RSA_WITH_AES_256_CBC_SHA (0x0035) Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA (0x002f) Cipher Suite: TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a) Cipher Suite: TLS_RSA_WITH_RC4_128_SHA (0x0005) Cipher Suite: TLS_RSA_WITH_RC4_128_MD5 (0x0004) ``` One way to solve this in corefx would be to add something akin to Xamarin's [ClientCipherSuitesCallback](https://developer.xamarin.com/api/property/System.Net.ServicePointManager.ClientCipherSuitesCallback/) to the [ServicePointManager](https://github.com/dotnet/corefx/blob/master/src/System.Net.ServicePoint/src/System/Net/ServicePointManager.cs). Possible workarounds: 1. See [workaround](https://github.com/dotnet/corefx/issues/1006#issuecomment-183773163) posted in #1006. 1. See Microsoft knowledge base article on how to [restrict the use of certain cryptographic algorithms and protocols in Schannel.dll](https://support.microsoft.com/en-us/kb/245030) (applicable to Windows only). +15158 area-System.Runtime TryStartNoGCRegionNegTest test failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release_prtest/23/consoleText ``` Expected: typeof(System.InvalidOperationException) Actual: (No exception was thrown) at Xunit.Assert.Throws(Type exceptionType, Exception exception) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.assert\Asserts\ExceptionAsserts.cs:line 143 at Xunit.Assert.Throws[T](Func`1 testCode) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.assert\Asserts\ExceptionAsserts.cs:line 36 at System.Tests.GCExtendedTests.<>c.b__4_0() in D:\j\workspace\outerloop_win---da4c0a7a\src\System.Runtime\tests\System\GCTests.netstandard1.7.cs:line 114 --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at RemoteExecutorConsoleApp.Program.Main(String[] args) ``` +15160 area-Infrastructure Running into proxy issues with init-tools & build-managed "Hi! The precondition is, that I'm sitting in a cooperate network with some kind of proxy/firewall - combination dropping all traffic not routed through it. Authentication method is Windows/NTLM (i guess..?). I cloned the repository yesterday and tried to build it but did not get far with that. In my opinion there are (as far as I can tell) two sources leading to a similar problem: 1) While executing `init-tools` for the first time i ran into proxy issues while downloading the .zip-file containing the current CLI/dotnet.exe. I could work around this by enriching the download-call in the `init-tools.cmd `- file with some proxy-parameter-love. 2) Later in the build process when calling `build-managed`, the target ""VerifyDependencies"" from Tools/Microsoft.DotNet.Build.Tasks.dll (called from VersionTools.targets) uses a WebClient without any proxy parameters. Result is a System.Net.WebException ""(407) Proxy authentication required"". `build-native `worked fine btw! (Or at least did not show up with some fancy red errors ^^) Is working behind a Proxy not supported at all or did I do something wrong/missed a point? Thanks! Peter" +15165 area-Infrastructure Merging branch dev/eng to master related issue: https://github.com/dotnet/corefx/issues/15135 Merging branch dev/eng into master cc: @weshaggard @chcosta @ericstj @mellinoe @karajas +15166 area-Infrastructure Building and running tests not working in VS @karajas it would appear after our changes building and running tests in VS isn't working. At least not for System.Threading.Tasks.Extensions.Tests. +15167 area-Infrastructure Unable to rebuildandtest a test project after build.cmd From the root of my repo, I do: ``` git clean -xdf git fetch --all git checkout upstream/dev/eng build.cmd cd src\System.Linq\tests msbuild /t:rebuildandtest ``` Everything works fine until that last step. When I try to do the msbuild /t:rebuildandtest, it fails while trying to start running the tests. I'm forced to do a build-tests.cmd first and then this works. cc: @weshaggard, @karajas +15168 area-Infrastructure Need easier way to find out where dotnet host is Today I very frequently cd into the test execution directory and use corerun from that directory to run xunit.console.netcore.exe and the tests library. With the changes in dev/eng, the test folder no longer contains corerun or any other host, which means I need to know where the host is I should use to achieve the same thing. How do I do this? cc: @weshaggard, @karajas +15169 area-System.Xml System.Xml.XmlSchemaSet.Tests fix Fixes #14918 Didn't get a repro even with a 100 times run with Helix repro tool. My guess of the failure was a timing thing because I was setting `DisableCaching` to `true` on `TestData`, so probably a test that didn't referenced `TestData` but did needed a switch value got it before caching was disable and that caused the failure. So I changed the approach to have a base class where all the tests in `System.Xml.XmlSchemaSet.Tests` inherit and on a static constructor disable caching so that we ensure that no matter what is the tests' timing or execution order `DisableCaching` is set to true from the beginning. Will run CI tests multiple times before merging to make sure it passes multiple times and we should leave this tests enabled at least one day if they fail again to see if the failure is consistent. /cc @sepidehMS @AlexGhiondea @danmosemsft +15170 area-Infrastructure Symbol indexing has some minor dependency on ConfigurationGroup env variable "If you got to the artifacts tab or a recent dev/eng build, you'll see that the Symbols folder is named `Symbols_$(ConfigurationGroup)`. I *think* that this is the only dependency, and things still appear to work even without setting the ConfigurationGroup property. But, it's possible that there is some other dependency in the task on the variable... https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_build?_a=summary&buildId=519500&tab=artifacts It's possible that VSTS won't properly resolve ConfigurationGroup=$(PB_ConfigurationGroup), I won't know until we have a job run with this change. It is unlikely that, even if that is the case, it would cause any behavior other than what is currently happening. I'm not certain why ""defaultBranch"" was removed when saving the updated build definition, presumably some change on the VSTS side specifying that it's not required if it's master. /cc @weshaggard " +15173 area-System.Text Add a static property Regex.DefaultRegexMatchTimeout to configure default timeouts globally "`System.Text.RegularExpressions.Regex` has [a `.MatchTimeout` property](https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.matchtimeout(v=vs.110).aspx), but there has never been a good way to configure this **globally**. It's always been a very roundabout way (which AFAIK has been removed in .NET Core). Previously, you'd do this: ```c# AppDomain.CurrentDomain.SetData(""REGEX_DEFAULT_MATCH_TIMEOUT"", TimeSpan.FromSeconds(20)); ``` Or in ASP.NET: ```xml ``` Otherwise, we're depending on every developer to set their match timeouts inline, for each regex. The problems with that are: - It's either a maintenance burden, or we create *our own* global config anyway to use everywhere. - It defaults to failure if the developer forgets (creating a security and stability issue, since regexes can be a CPU-killing attack vector) If we had a static property, like this: ```c# namespace System.Text.RegularExpressions { public partial class Regex { // Set a default value, to be used if not overridden. public static TimeSpan DefaultMatchTimeout = Timeout.InfiniteTimeSpan; } } ``` ...we could do this gracefully in code. Thoughts? cc @terrajobst @blowdart @davidfowl [edited by @Priya91 for syntax]" +15174 area-Infrastructure Fixing documentation for code coverage Fixing docs for code coverage runs Note: I'm not skipping CI since I'll use this PR to validate outerloop and coverage runs. cc: @weshaggard +15175 area-System.Runtime Desktop targeting pack: Add ValueTuple type forward to mscorlib for Desktop From discussion with Wes, once the first version of desktop with ValueTuple ships, the targeting pack for that framework needs to be updated with those bits and a typeforward can be added for that target group (I'm not sure the exact string/moniker that will be). +15176 area-System.Runtime Add ValueTuple type forward to CoreRT ValueTuple was implemented in CoreRT. ~~Once it ships (I'm not sure which release or timeframe that will be),~~ The corefx package will need to type forward to CoreRT. FYI @jkotas +15177 area-Infrastructure "Add a ""Helix Test"" step to the official build definitions" "@karajas @chcosta After this, the official definition needs to be updated to pass through the following variables: `$(PB_CloudDropAccountName)` `$(PB_CloudResultsAccountName)` `$(PB_CloudResultsAccessToken)` `$(PB_HelixApiAccessKey)` `$(PB_HelixApiEndPoint)` Once we get a clean official build, I'll try to modify it to include the above variables and then use it to test my local branch. NOTE: You will see that some definitions are passing ""EnableCloudTest=false"". These are distros that we haven't previously done Helix testing on." +15179 area-System.Diagnostics Update AspNetCoreHosting keyword Add httpContext.TraceIdentifier and httpContext.Response.StatusCode keywords which provide useful information for correlation. @vancem @1w2w3y +15181 area-Infrastructure Fix projects for VS cc @karajas This should fix F5 debugging in VS for test projects. We still need to convert all the projects and sln files but this fixes System.Threading.Tasks.Extensions as an example to work by. +15182 area-Infrastructure Update project configuration and sln files /cc @weshaggard Reimplementation of https://github.com/dotnet/corefx/pull/14872 +15184 area-Infrastructure "build-native.[cmd|sh] should not depend on the ""run"" tool" We should remove build-native's dependency on `run.exe`. The rationale is that run requires managed code but there are lot of scinerios where we need to build the native components without being able to run managed code (platform bring-up is one case). In general, we need to be able to build native code without invoking managed code and the use of the run tool in build-native is an impediment to that. This does imply a bit more cost in maintenance as we have to ensure that options to build-native remain somewhat consistent across platforms (and we need to do a better job of documenting them) but I think this cost is worth the flexibility. +15185 area-System.IO File.SetLastWriteTime does not seem to work when called repeatedly "```c# using System; using System.IO; using System.Threading; class Program { static void Main(string[] args) { var path = Path.GetTempFileName(); File.WriteAllText(path, ""foo""); for(var i = 0; i < 10; i++){ Console.WriteLine($""\n--> {new FileInfo(path).LastWriteTimeUtc}""); File.SetLastWriteTime(path, DateTime.Now + new TimeSpan(1, 0, 0)); Thread.Sleep(1000); Console.WriteLine($""--> {new FileInfo(path).LastWriteTimeUtc}""); } } } ``` Produces output: ``` --> 1/14/2017 12:51:52 AM --> 1/14/2017 1:51:52 AM --> 1/14/2017 1:51:52 AM --> 1/14/2017 1:51:53 AM --> 1/14/2017 1:51:53 AM --> 1/14/2017 1:51:54 AM --> 1/14/2017 1:51:54 AM --> 1/14/2017 1:51:55 AM --> 1/14/2017 1:51:55 AM --> 1/14/2017 1:51:56 AM --> 1/14/2017 1:51:56 AM --> 1/14/2017 1:51:57 AM --> 1/14/2017 1:51:57 AM --> 1/14/2017 1:51:58 AM --> 1/14/2017 1:51:58 AM --> 1/14/2017 1:51:59 AM --> 1/14/2017 1:51:59 AM --> 1/14/2017 1:52:00 AM --> 1/14/2017 1:52:00 AM --> 1/14/2017 1:52:01 AM ``` I'd expect all iterations to increment the time by one hour, but only the first one seems to do so. This is happening for both Windows and OSX on `""System.IO"": ""4.3.0-preview1-24530-04""` Is there some caching / throttling going on that I'm not aware of? How can I get this working in a loop?" +15187 area-System.Threading Add tests for thread interrupt in finally blocks Related to dotnet/coreclr#8953 +15191 area-System.Net Allow null HttpResponseMessage in HttpClient.SendAsync? I understand that making this change could quite possibly have far-reaching implications, so I guess at the very least I'd like to start a discussion and understand why it is the way it is. Currently [`HttpClient.SendAsync`](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpClient.cs#L392) checks that the returned `HttpResponseMessage` is not null and throws an `InvalidOperationException` if it is. (Specifically [here](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpClient.cs#L444-L447) and [here](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpClient.cs#L476-L479).) I question why that check is necessary. It seems valid to want to implement a custom `HttpMessageHandler` that returns a null response in specific scenarios and not consider it an error condition. But with this behavior in `HttpClient`, you're basically forced to implement that flow through exception handling upstream. I'm curious to get the team's thoughts on this. Thanks! +15192 area-Meta Prefer using Array.Length as upper for loop limit "The JIT can't eliminate range checks if it can't ""see"" `Length` and uses loop cloning which generates a lot of code. Even in cases where not all range checks can be eliminated and loop cloning is used anyway it's still preferable to have fewer range checks. For example, a loop like the one from `CookieContainer.IsLocalDomain` is ~1.8x smaller (421 bytes vs. 230 bytes) despite the fact that loop cloning is still being used." +15194 area-System.Data SqlClient / MultiSubnetFailover / Linux / 1.1.0 (Part II - Not Working) @corivera @saurabh500 @karelz Gents : I am opening another issue as I cannot reopen the original : #14978 Largely, I think I spoke to soon as deploying with the port number fix into our UAT environment FAILED. In order to help understand what was going on I captured two TCPDUMP traces as I performed a simple Open on the SqlConnection object. One container running on HOST01 fails, whilst another running on HOST02 succeeds. The only difference i can see is the order in which DNS returns the primary and secondary - as discussed in #14978 where HOST01 returns the secondary first (this is the failing one) and HOST02 returns the primary. Of course the order shouldn't matter with MSN enabled which it is. From looking at the traces - it doesn't appear that MSN is working at all on Linux - I do not see a parallel invocation of the open socket that I was expecting. Rather it appears to just take the first IP address and try to connect to that. I'm happy to share the traces - only perhaps over something less public ?) I'm also happy to perform any other kind of testing that would help us get to a resolution. The setup is the same as before, only now with port specified (1433). Framework : .NET App 1.1.0 Library : System.Data.SqlClient - 4.3.0 Container Base : Linux Ubuntu 14.04.5 Thanks in advance James +15195 area-Infrastructure Remove step which is not producing any value and is causing a warning +15197 area-Infrastructure Add portable linux flavor for NETCoreApp package Add linux-x64 to the lineup for NETCoreApp. We need a build definition for this @chcosta. I would imagine that the build definition does something to tell the native build to produce portable binaries and passes in /p:PackageRID=linux-x64 to tell packaging to produce a package with a different RID than the native system (alternatively pass in RuntimeOS=linux-x64, if that'd work). +15201 area-System.IO System.IO.FileAttributes are Windows specific There is no way to retrieve POSIX file attributes on Linux via anything in System.IO. System.IO.FileAttributes only has enumerations for Windows specific file attributes. +15202 area-System.Net Failing unit tests in clean macOS development environment "I've followed the instructions outlined [here](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/developer-guide.md), and after running `./build-tests.sh`, two unit tests failed: ``` ``` ``` ``` This occurred on macOS 10.12.2 (16C67)." +15203 area-System.Net Fix exception when parsing HTTP/2 status line Related issue: #14715 It appears that `CurlResponseHeaderReader` and it's tests always assume that the HTTP status line starts with a string `HTTP/x.y` where `x` and `y` are the HTTP major and minor version numbers, respectively. For HTTP 2, the status line is `HTTP/2` followed by a space and then the rest of the line. There is no `.` character to delimit between major and minor versions. I believe this PR should be OK to merge unless you strictly require a unit test. In this area, I'm unsure as to how to modify `CurlResponseParseUtilsTest` and the `MemberData` provided to the test in order to create new test cases for `HTTP/2` for all tests. Can I get a hand with including HTTP/2 unit tests? Thanks. +15206 area-System.Net System.Net.Http.HttpRequestException: Error while copying content to a stream. "The application is a ClickOnce application. When I run it from it's ClickOnce installer the one which checks for updates first and then starts the application I receive ""Error while copying content to a stream."" error. But, when I run the application manually from it's installed folder it runs without any error. Referenced DLL: System.Net.Http\4.3.0\lib\net46\System.Net.Http.dll ``` System.Net.Http.HttpRequestException: Error while copying content to a stream. ---> System.ObjectDisposedException: The CancellationTokenSource has been disposed. at System.Threading.CancellationTokenSource.ThrowObjectDisposedException() at System.Threading.CancellationTokenSource.InternalRegister(Action`1 callback, Object stateForCallback, SynchronizationContext targetSyncContext, ExecutionContext executionContext) at System.Threading.CancellationToken.Register(Action`1 callback, Object state, Boolean useSynchronizationContext, Boolean useExecutionContext) at System.Threading.CancellationToken.Register(Action`1 callback, Object state) at System.Net.Http.WinHttpResponseStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken token) at System.Net.Http.StreamToStreamCopy.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpContent.d__48.MoveNext() --- End of inner exception stack trace --- at System.Net.Http.HttpContent.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpContent.d__62`2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.HttpResponseMessageExtensions.d__1`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Reactive.PlatformServices.ExceptionServicesImpl.Rethrow(Exception exception) at System.Reactive.Stubs.<>c.<.cctor>b__2_1(Exception ex) at System.Reactive.AnonymousSafeObserver`1.OnError(Exception error) at System.Reactive.Linq.ObservableImpl.Finally`1._.OnError(Exception error) at System.Reactive.Linq.ObservableImpl.Do`1._.OnError(Exception error) at System.Reactive.Linq.ObservableImpl.SelectMany`2._.Iter.OnError(Exception error) at System.Reactive.Linq.ObservableImpl.Throw`1._.Invoke() at System.Reactive.Concurrency.Scheduler.Invoke(IScheduler scheduler, Action action) at System.Reactive.Concurrency.ScheduledItem`2.InvokeCore() at System.Reactive.Concurrency.CurrentThreadScheduler.Trampoline.Run(SchedulerQueue`1 queue) at System.Reactive.Concurrency.CurrentThreadScheduler.Schedule[TState](TState state, TimeSpan dueTime, Func`3 action) at System.Reactive.Concurrency.LocalScheduler.Schedule[TState](TState state, Func`3 action) at System.Reactive.Producer`1.SubscribeRaw(IObserver`1 observer, Boolean enableSafeguard) at System.ObservableExtensions.SubscribeSafe[T](IObservable`1 source, IObserver`1 observer) at System.Reactive.Linq.ObservableImpl.SelectMany`2._.SubscribeInner(IObservable`1 inner) at System.Reactive.Linq.ObservableImpl.SelectMany`2._.OnNext(TSource value) at System.Reactive.Linq.ObservableImpl.Defer`1._.OnNext(TValue value) at System.Reactive.Linq.ObservableImpl.Using`2._.OnNext(TSource value) at System.Reactive.Linq.ObservableImpl.Select`2._.OnNext(TSource value) at System.Reactive.Linq.ObservableImpl.TimeInterval`1._.OnNext(TSource value) at System.Reactive.SafeObserver`1.OnNext(TSource value) at System.Reactive.Linq.ObservableImpl.Catch`2._.OnNext(TSource value) at System.Reactive.Linq.ObservableImpl.Select`2._.OnNext(TSource value) at System.Reactive.AutoDetachObserver`1.OnNextCore(T value) at System.Reactive.ObserverBase`1.OnNext(T value) at System.Reactive.SafeObserver`1.OnNext(TSource value) at System.Reactive.Linq.ObservableImpl.AsObservable`1._.OnNext(TSource value) at System.Reactive.Subjects.AsyncSubject`1.OnCompleted() at System.Reactive.Threading.Tasks.TaskObservableExtensions.ToObservableDone[TResult](Task`1 task, IObserver`1 subject) at System.Reactive.Threading.Tasks.TaskObservableExtensions.<>c__DisplayClass8_0`1.b__0(Task`1 t) at System.Threading.Tasks.ContinuationTaskFromResultTask`1.InnerInvoke() at System.Threading.Tasks.Task.Execute() ``` " +15208 area-System.Net How to specify network adapter which HttpClient must use? At .NET Framework it can be done by HttpWebRequest.ServicePoint.BindIPEndPointDelegate. Can't find anything about that. It's currently impossible? +15209 area-System.Net Add Cookie Property to System.Net.Http.Headers "Add a Cookie property at System.Net.Http.Headers.HttpRequestHeaders Add a Set-Cookie property at System.Net.Http.Headers.HttpResponseHeaders This will help the access of the Cookies and its manipulation. For example `responseHeader.Set-Cookie.Add(new Cookie(""nameCookie"",""valueCookie""))` " +15210 area-Infrastructure Add portable linux build to official build +15215 area-Infrastructure [ARM32/Linux] Cross build failure - managed build "After merging engineering changes (#15135), cross build fails in managed code build for ARM (targetting for nuget packaging) 1. follow guideline for arm crossbuild (https://github.com/dotnet/corefx/blob/master/Documentation/building/cross-building.md) ``` sudo ./cross/build-rootfs.sh arm ./build-native.sh -release -buildArch=arm -- cross ./build-managed.sh -release ``` error in managed build ``` /nfs/rbp3/corefx/src/Tools/GenerateProps/GenerateProps.proj(15,5): error MSB4062: The ""GenerateConfigurationProps"" task could not be loaded from the assembly /nfs/rbp3/corefx/Tools/CoreFx.Tools.dll. Could not load file or assembly 'CoreFx.Tools, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified. /nfs/rbp3/corefx/src/Tools/GenerateProps/GenerateProps.proj(15,5): error MSB4062: Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. /nfs/rbp3/corefx/Tools/depProj.targets(79,5): error : Error no assets were resolved from NuGet packages. [/nfs/rbp3/corefx/external/coreclr/coreclr.depproj] ``` Need to build CoreFX.Tools (like `build.sh`) 2. try x64 build, and follow guideline for arm crossbuild cannot get nuget package for ubuntu ARM32 3. try x64 build, and arm native build ``` ./clean -all ./build.sh -release ./build-native.sh -release -buildArch=arm -- cross ./build-managed.sh -release -buildArch=arm ``` error in managed build ``` EXEC : error : Unable to resolve 'runtime.ubuntu.14.04-arm.Microsoft.NETCore.TestHost (>= 1.2.0-beta-24904-03)' for '.NETCoreApp,Version=v2.0 (ubuntu.14.04-arm)'. [/nfs/rbp3/corefx/external/coreclr/coreclr.depproj] EXEC : error : Unable to resolve 'runtime.ubuntu.14.04-arm.Microsoft.NETCore.Runtime.CoreCLR (>= 1.2.0-beta-24904-03)' for '.NETCoreApp,Version=v2.0 (ubuntu.14.04-arm)'. [/nfs/rbp3/corefx/external/coreclr/coreclr.depproj] EXEC : error : Unable to resolve 'runtime.ubuntu.14.04-arm.Microsoft.NETCore.DotNetHost (>= 1.2.0-beta-001259-00)' for '.NETCoreApp,Version=v2.0 (ubuntu.14.04-arm)'. [/nfs/rbp3/corefx/external/coreclr/coreclr.depproj] EXEC : error : Unable to resolve 'runtime.ubuntu.14.04-arm.Microsoft.NETCore.DotNetHostPolicy (>= 1.2.0-beta-001259-00)' for '.NETCoreApp,Version=v2.0 (ubuntu.14.04-arm)'. [/nfs/rbp3/corefx/external/coreclr/coreclr.depproj] EXEC : error : Unable to resolve 'runtime.ubuntu.14.04-arm.Microsoft.NETCore.Jit (>= 1.2.0-beta-24904-03)' for '.NETCoreApp,Version=v2.0 (ubuntu.14.04-arm)'. [/nfs/rbp3/corefx/external/coreclr/coreclr.depproj] EXEC : error : Unable to resolve 'runtime.ubuntu.14.04-arm.Microsoft.NETCore.DotNetHostResolver (>= 1.2.0-beta-001259-00)' for '.NETCoreApp,Version=v2.0 (ubuntu.14.04-arm)'. [/nfs/rbp3/corefx/external/coreclr/coreclr.depproj] EXEC : error : Unable to resolve 'runtime.ubuntu.14.04-arm.Microsoft.NETCore.DotNetAppHost (>= 1.2.0-beta-001259-00)' for '.NETCoreApp,Version=v2.0 (ubuntu.14.04-arm)'. [/nfs/rbp3/corefx/external/coreclr/coreclr.depproj] /nfs/rbp3/corefx/Tools/packageresolve.targets(35,5): error MSB3073: The command """"/nfs/rbp3/corefx/Tools/dotnetcli/dotnet"" restore --no-cache --packages ""/nfs/rbp3/corefx/packages"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://www.nuget.org/api/v2/ ""/nfs/rbp3/corefx/bin/obj/AnyOS.AnyCPU.Release/coreclr/netcoreapp/arm/project.json"""" exited with code 1. [/nfs/rbp3/corefx/external/coreclr/coreclr.depproj] Command execution failed with exit code 1. ``` 4. build with arm target ``` ./clean.sh -all ./build.sh -release -buildArch=arm ``` Same as 3. It seems to try to resolve CoreCLR nuget packages and core-setup nuget packages for target architecture. But we cannot resolve these nuget pacakges for arm cannot yet. Core-setup need CoreFX's nuget package, and CoreFX need core-setup nuget packages. And IMHO, If we try to add new target architecture (or OS), we may face similar problem. @jyoungyun @chunseoklee @hqueue @mellinoe @weshaggard @gkhanna79 " +15217 area-System.Security Add Argon2 support to System.Security.Cryptography Are there any plans to support the PHC-winner Argon2? (https://github.com/p-h-c/phc-winner-argon2) Also mentioned in #7127 +15219 area-Infrastructure corefx not using coreclr version defined in dependencies.props As of my opening this issue, the dependencies.props file specifies: ``` beta-24916-02 ``` but tests are being run using an older CoreCLR, version beta-24904-03. This means we're not picking up changes from coreclr, and the auto-updates being generated aren't having the desired effect. cc: @weshaggard +15220 area-Infrastructure Don't copy files just for packaging I suspect this is due to the binplacing behavior. /cc @weshaggard @chcosta @mellinoe +15224 area-System.Net "WinHttpHandler throws ""Could not load file or assembly 'System.IO.Compression'""" "WinHttpHandler throws an error when using it in xproj targeting net46. Other constellations like targetting netcoreapp or having a csproj work fine. ## Error ``` System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.IO.Compression, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified. at System.Net.Http.WinHttpResponseParser.CreateResponseMessage(WinHttpRequestState state, Boolean doManualDecompressionCheck) at System.Net.Http.WinHttpHandler.d__105.MoveNext() --- End of inner exception stack trace --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at CompressionTest.Program.d__1.MoveNext() in C:\Sources\CompressionTest\Program.cs:line 21 ``` ## Repro ### project.json ``` { ""version"": ""1.0.0-*"", ""buildOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""System.Net.Http"": ""4.3.0"", ""System.Net.Http.WinHttpHandler"": ""4.3.0"" }, ""frameworks"": { ""net46"": { ""frameworkAssemblies"": { ""System.Runtime"": """", ""System.Threading.Tasks"": """" } } }, ""runtimes"": { ""win10-x64"": {} } } ``` ### Program.cs ```c# public class Program { public static void Main(string[] args) { using(var client = new HttpClient(new WinHttpHandler())) using(var response = client.GetAsync(""http://www.google.de"").Result) { } } } ```" +15226 area-System.Security System.Security.Principal.Windows.Tests failing "Result from my dev machine: ```xml b__45_0() at System.Security.Principal.WindowsIdentity.<>c__DisplayClass61_0.b__0(Object ) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Security.Principal.WindowsIdentity.RunImpersonatedInternal(SafeAccessTokenHandle token, Action action) at System.Security.Principal.WindowsIdentity.RunImpersonated(SafeAccessTokenHandle safeAccessTokenHandle, Action action) at System.Security.Principal.WindowsIdentity.GetName() at System.Security.Principal.WindowsIdentity.get_Name() at WindowsIdentityTests.CloneAndProperties(Boolean cloneViaSerialization) in C:\github\geoffkizer\corefx\src\System.Security.Principal.Windows\tests\WindowsIdentityTests.cs:line 57]]> b__45_0() at System.Security.Principal.WindowsIdentity.<>c__DisplayClass61_0.b__0(Object ) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Security.Principal.WindowsIdentity.RunImpersonatedInternal(SafeAccessTokenHandle token, Action action) at System.Security.Principal.WindowsIdentity.RunImpersonated(SafeAccessTokenHandle safeAccessTokenHandle, Action action) at System.Security.Principal.WindowsIdentity.GetName() at System.Security.Principal.WindowsIdentity.get_Name() at WindowsIdentityTests.CloneAndProperties(Boolean cloneViaSerialization) in C:\github\geoffkizer\corefx\src\System.Security.Principal.Windows\tests\WindowsIdentityTests.cs:line 57]]> ```" +15227 area-Infrastructure can't build System.Net.Sockets.Tests locally "(1) Go to src\System.Net.Sockets\tests\FunctionalTests (2) msbuild Result: ``` ""C:\github\geoffkizer\corefx\src\System.Net.Sockets\tests\FunctionalTests\System.Net.Sockets.Tests.csproj"" (d efault target) (1) -> ""C:\github\geoffkizer\corefx\src\Common\tests\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConso leApp.csproj"" (default target) (2:2) -> (CoreCompile target) -> CSC : error CS0006: Metadata file 'C:\github\geoffkizer\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64- x64/xunit.core.dll' could not be found [C:\github\geoffkizer\corefx\src\Common\tests\System\Diagnostics\Remot eExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] CSC : error CS0006: Metadata file 'C:\github\geoffkizer\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64- x64/Xunit.NetCore.Extensions.dll' could not be found [C:\github\geoffkizer\corefx\src\Common\tests\System\Dia gnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] CSC : error CS0006: Metadata file 'C:\github\geoffkizer\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64- x64/xunit.assert.dll' could not be found [C:\github\geoffkizer\corefx\src\Common\tests\System\Diagnostics\Rem oteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] CSC : error CS0006: Metadata file 'C:\github\geoffkizer\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64- x64/xunit.abstractions.dll' could not be found [C:\github\geoffkizer\corefx\src\Common\tests\System\Diagnosti cs\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] CSC : error CS0006: Metadata file 'C:\github\geoffkizer\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64- x64/xunit.performance.core.dll' could not be found [C:\github\geoffkizer\corefx\src\Common\tests\System\Diagn ostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] CSC : error CS0006: Metadata file 'C:\github\geoffkizer\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64- x64/xunit.execution.dotnet.dll' could not be found [C:\github\geoffkizer\corefx\src\Common\tests\System\Diagn ostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] CSC : error CS0006: Metadata file 'C:\github\geoffkizer\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64- x64/Newtonsoft.Json.dll' could not be found [C:\github\geoffkizer\corefx\src\Common\tests\System\Diagnostics\ RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.csproj] ```" +15228 area-Infrastructure Adds project.json/project.json.template files under external to auto-update list Fixes https://github.com/dotnet/corefx/issues/15219 cc @stephentoub @dagood +15229 area-System.Runtime Make ValueTuple* binary serializable We generally don’t want to add more types to be binary serializable in the framework, due to complexities and the fragility that it causes across version boundaries (remember that binary serialization has to be backward- and forward compatible). That being said, for `ValueTuple` we can likely convince ourselves that the serialization behavior is fixed and mostly a function of the types you instantiate the tuple with. It seems a resonable assumption to say that `ValueTuple` to be serializable if `T1`-`TN` are serializable. Not being binary serializable also makes it harder (and more fragile) for existing code to switch from `Tuple` to `ValueTuple`. +15231 area-Infrastructure Add build option for armel This PR fixes cross build fail on ubuntu-16.04 Signed-off-by: chunseoklee +15234 area-System.Diagnostics On Linux Win32Exception thrown by Process have incorrect error number `Process.Unix.cs` calls: ``` int errno = Interop.Sys.Kill(_processId, Interop.Sys.Signals.SIGKILL); int errno = Interop.Sys.GetPriority(Interop.Sys.PriorityWhich.PRIO_PROCESS, _processId, out pri); ``` which are implemented as ``` return kill(pid, signal); return getpriority(which, who); ``` These functions return -1 on error. They should return errno: ``` return SystemNative_ConvertErrorPlatformToPal(errno); ``` +15243 area-System.IO Missing this in FileSystemAclExtensions method extensions only `GetAccessControl` has it https://github.com/dotnet/corefx/blob/fdc332530a2ec9aca582a6d88f95aaba9660070b/src/System.IO.FileSystem.AccessControl/src/System/IO/FileSystemAclExtensions.net46.cs +15245 area-System.Linq FEATURE_COMPILE_TO_METHODBUILDER compiler constant clarification I'm porting some library from full .Net to .Net Standard and faced an issue that `LambdaExpression` is missing subject method. [See](http://stackoverflow.com/questions/41520319/alternatives-of-compiletomethod-in-net-standard) question on SO. After some research I found that problem is that `LambdaCompiler` is missing one overload ([see referencesource](https://referencesource.microsoft.com/#System.Core/Microsoft/Scripting/Compiler/LambdaCompiler.cs,122)) My question is if it's done intentionally (so API changed relative to full .Net) or it's just a mistake? If the latter I can create a pull request, because I don't see anything can break things down: the only difference with other overloads is that `MethodBuilder` is passing as parameter instead of creating it as local variable. Thus, there is no problem with implementation, then question is if we want to have following API? We had it for several years and I don't see why it should be removed. +15247 area-Infrastructure "Add Debug portableLinux build, and add ""SubType"" ReportingParameter f…" …or MC differentiation +15249 area-System.Xml Fix flaky test in XslCompiledTransform Fixes https://github.com/dotnet/corefx/issues/14775 and https://github.com/dotnet/corefx/issues/14772. These tests used to throw the following exception occasionally: `System.Xml.XmlException: The ':' character, hexadecimal value 0x3A, cannot be included in a name.` Which happens because in the random selection of valid characters to be included in the name of an element, the character `':'` was sometimes present, which is not allowed. This behavior is also the expected behavior in Full Framework. As a fix, `CharType.NameStartChar` and `CharType.NameChar` have been replaced with `CharType.NCNameStartChar` and `CharType.NCNameChar` which are exactly the same collection with only leaving `':'` out. Some more logging has also been added to these tests. cc: @danmosemsft @stephentoub @AlexGhiondea +15251 area-System.Runtime Add tests for enumerating ConditionalWeakTable Tests for the enumerable implementation in https://github.com/dotnet/coreclr/pull/8970 (updates to the refs and Clear tests will come separately). Will not pass CI until those changes to coreclr are available to corefx. cc: @jkotas, @weshaggard +15252 area-System.Security Problem porting RSAPKCS1SignatureFormatter implementation to RSA.Create() "Hi I am trying to port an oauth1.0 implementation using RSAPKCS1SignatureFormatter to dotnet core. This is what I have so far original **net40** ``` private byte[] SignByte(SHA1CryptoServiceProvider hash) { var formatter = new RSAPKCS1SignatureFormatter(myX509Certificate2.PrivateKey); formatter.SetHashAlgorithm(""MD5""); return formatter.CreateSignature(hash); } ``` port **netcoreapp1.0** ``` private byte[] SignByte(byte[] hash) { byte[] signature = RSA.Create().SignHash(hash, HashAlgorithmName.MD5, RSASignaturePadding.Pkcs1); return signature; } ``` However I keep getting this exception when trying to use MD5 with RSASignaturePadding.Pkcs1 ``` An unhandled exception of type 'Internal.Cryptography.CryptoThrowHelper.WindowsCryptographicException' occurred in System.Security.Cryptography.Algorithms.dll Additional information: The parameter is incorrect ``` Any ideas? Also how would I import the key when using RSA.Create()? Thanks" +15253 area-Infrastructure Fix syntax highlighting issue due to dev/eng /cc @weshaggard +15254 area-Infrastructure Building clean shows modified src\shims\ApiCompatBaseline.netfx461.txt file When I build clean, I now get a modified file: ![image](https://cloud.githubusercontent.com/assets/7684835/22039086/ad95e17c-dcb2-11e6-89ff-04db8d4ce82f.png) perhaps the .gitignore needs to be updated now? +15255 area-Meta Check for omissions in types supported by both Desktop and Core We have defined a common subset named .NET Standard 2.0 and analyzed (and fixed or baselined) any discrepancies between the Desktop and Core implementations of types in that subset. We also care about any types that Desktop and Core both have that aren't in .NET Standard 2.0. If Core is missing some members that Desktop does have, this should be a conscious decision. Example of where it wasn't: https://github.com/dotnet/corefx/pull/15238 One way to do this scan is go through https://raw.githubusercontent.com/dotnet/corefx/master/src/shims/ApiCompatBaseline.netfx461.txt, remove all the TypeMustExist lines (as these are types that Core doesn't have at all) and then manually remove all the lines relating to member exclusions we already decided to make as part of the Standard effort, as documented here https://github.com/dotnet/standard/tree/master/netstandard/ref Anything we find we need to either add the API back or consciously decide to not do it. ### **Current status see below** +15258 area-Infrastructure Fix Intellisense in VS /cc @weshaggard Resolves https://github.com/dotnet/corefx/issues/15253 +15261 area-System.Net fix problem with Accept on non-blocking sockets on Unix We weren't handling the WouldBlock case correctly in Accept for non-blocking sockets. Also add a test for this. Fixes #14037 @stephentoub @davidsh @CIPop @Priya91 +15265 area-System.Security Merge dotnet/master to dotnet/dev/apple_crypto Merge master into the dev/apple_crypto feature branch to get the new engineering changes. +15269 area-System.Threading Port TplEventSource fix to desktop https://github.com/dotnet/coreclr/pull/8942 cc: @AlexGhiondea +15271 area-System.Diagnostics Fix error handling in Process.Kill on Unix Process.Kill is mishandling error values. set_PriorityClass also had some dead code due to arguments having been validated earlier in the call chain. Fixes https://github.com/dotnet/corefx/issues/15234 cc: @Priya91, @tmds +15274 area-Infrastructure build-native.sh followed by build-managed.sh doesn't work "I am hitting errors building corefx on RHEL: $ cat /etc/os-release NAME=""Red Hat Enterprise Linux Workstation"" VERSION=""7.3 (Maipo)"" ID=""rhel"" ID_LIKE=""fedora"" VERSION_ID=""7.3"" PRETTY_NAME=""Employee SKU"" ANSI_COLOR=""0;31"" CPE_NAME=""cpe:/o:redhat:enterprise_linux:7.3:GA:workstation"" HOME_URL=""https://www.redhat.com/"" BUG_REPORT_URL=""https://bugzilla.redhat.com/"" REDHAT_BUGZILLA_PRODUCT=""Red Hat Enterprise Linux 7"" REDHAT_BUGZILLA_PRODUCT_VERSION=7.3 REDHAT_SUPPORT_PRODUCT=""Red Hat Enterprise Linux"" REDHAT_SUPPORT_PRODUCT_VERSION=""7.3"" $ git branch -v * master 8ddccab Fix exception when parsing HTTP/2 status line (#15203) $ ./buid-managed.sh /home/omajid/corefx/packages/xunit.runner.utility/2.2.0-beta2-build3300/lib/netstandard1.1/xunit.runner.utility.dotnet.dll (xunit.runner.utility.2.2.0-beta2-build3300) -> xunit.runner.utility.dotnet.dll /home/omajid/corefx/packages/xunit.runner.utility/2.2.0-beta2-build3300/lib/netstandard1.1/xunit.runner.utility.dotnet.pdb (xunit.runner.utility.2.2.0-beta2-build3300) -> xunit.runner.utility.dotnet.pdb /home/omajid/corefx/Tools/Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [/home/omajid/corefx/src/Tools/CoreFx.Tools/CoreFx.Tools.csproj] /home/omajid/corefx/src/Tools/GenerateProps/GenerateProps.proj(15,5): error MSB4062: The ""GenerateConfigurationProps"" task could not be loaded from the assembly /home/omajid/corefx/Tools/CoreFx.Tools.dll. Could not load file or assembly 'CoreFx.Tools, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified. /home/omajid/corefx/src/Tools/GenerateProps/GenerateProps.proj(15,5): error MSB4062: Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. /home/omajid/corefx/Tools/depProj.targets(79,5): error : Error no assets were resolved from NuGet packages. [/home/omajid/corefx/external/coreclr/coreclr.depproj] Anyone have any ideas about this? Any pointers to what the issue may be?" +15275 area-Infrastructure When to add support for running dotnet core on raspberrypi's os raspbian? http://www.raspbian.org/ +15277 area-System.Net add variations of SocketTestServer to increase test coverage in System.Net.Sockets.Tests "Currently, we have this ""SocketTestServer"" abstract class that allows us to run the same tests in two variations: (1) APM-style (IAsyncResult) and (2) SocketAsyncEventArgs. We should add new implementations of this class that cover: (1) Synchronous APIs (2) Non-blocking operations (i.e. socket.Blocking = false) (3) Task-based APIs " +15278 area-System.Net System.Net.Sockets.Async.Performance tests crashing @geoffkizer, it looks like this test library has very recently started crashing... I suspect it's related to your recent synchronous completion changes. e.g. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug/71/ https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug/70/ https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_rhel7.2_debug/73/ Can you take a look? +15279 area-System.Memory SpanTests.ClearLongerThanUintMaxValueBytes failing in CI e.g. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug/69/ https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release/69/ https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release/70/ https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release/71/ ``` System.SpanTests.SpanTests.ClearLongerThanUintMaxValueBytes [FAIL] System.OutOfMemoryException : Array dimensions exceeded supported range. Stack Trace: D:\j\workspace\outerloop_win---bf7c4efa\src\System.Memory\tests\Span\Clear.cs(205,0): at System.SpanTests.SpanTests.ClearLongerThanUintMaxValueBytes() ``` +15280 area-Infrastructure Nano CI builds completely broken cc: @Priya91, @karelz, @mmitche Our Windows Server Nano 2016 builds have been red for as long as we have history. Looking at the error message, it looks like the Jenkins configuration is broken: ``` 08:56:50 Schedule job dotnet_corefx » master » outerloop_winnano16_debug_tst 08:56:50 ERROR: Failed to run DSL Script 08:56:50 com.cloudbees.plugins.flow.CouldNotScheduleJobException: Could not schedule job outerloop_winnano16_debug_tst, ensure it is not already queued with the same parameters or is not disabled 08:56:50 at sun.reflect.GeneratedConstructorAccessor1731.newInstance(Unknown Source) 08:56:50 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 08:56:50 at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 08:56:50 at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83) ... ``` If we care about Nano (I assume we do!), we should fix this immediately. If we don't, we should delete the jobs and remove the badges from the home page. +15284 area-System.IO Assembly in CoreRT has APIs that depend on FileStream Just a note so we get a heads up when we can bring over those APIs +15287 area-System.Data sqlclient does not close connections in Docker(debian) We are seeing behaviour form the System.Data.Sqlclient is not closing the connections when its running on the official mircosoft/dotnet docker image for linux. The connections are accumulating to over 400 connections in a couple of days on a service with little traffic. We have the same code running on a windows platform and there we do not see this behaviour. We are running dotnet 1.1.0. +15288 area-Infrastructure Bring back netstandard1.1 config for RuntimeInformation We had a RID-less config for RuntimeInformation but that was removed with vertical build work. Bring it back if we bring back a package for this library. https://github.com/dotnet/corefx/blob/a07f6aac5309b30154d0fe00debe7f9979600ea1/src/System.Runtime.InteropServices.RuntimeInformation/src/System.Runtime.InteropServices.RuntimeInformation.csproj#L19 /cc @chcosta +15289 area-Meta Proposal: Expose POSIX functions "To allow developers to develop applications on Unix operating systems, .NET Core should contain a library exposing a set of common Unix and Linux APIs. ## Rationale Today, .NET Core programs running on Unix do not have the ability to make calls into operating system functions in a portable manor, without writing native code. There are Unix-specific functions/capabilities that are not exposed in our current set of APIs. For example, `chmod` and `chown` are commonly used functions on Unix to set file permissions, but we have no `System.IO` APIs that expose this functionality. It is hard to P/Invoke directly into “libc” from managed code because of type-size differences across platforms, and constants/error codes being different across platforms. ## Design tenets A guiding tenet is to keep any additional functionality and policy out of these exposed APIs. Instead, we will simply be exposing the OS function as raw as possible. - If deemed necessary, we can create ""helper"" methods in the future to make the APIs easier to invoke. One place where we will be adding functionality is to make the .NET APIs work across our supported platforms as seamless as possible. - An example here is error numbers may map to different values on different platforms. We will have a facility that will allow mapping raw platform error numbers to platform-independent error names like “EACCES”, “EPERM”, etc. A naming tenet will be to use the same name and casing as the C API, this includes method, parameter, enum value, and field names. This allows people to consult the appropriate man page if necessary. - One exception is type names will still be PascalCased, to make consuming code read like standard managed code. Having a class named “group” would look confusing to most .NET developers. ## Example Usages ```C# using System.Unix.Native; static void Main() { // chmod int result = UnixFunctions.chmod( ""/home/user/hello.txt"", FileModes.S_IRWXU | FileModes.S_IRGRP | FileModes.S_IROTH); if (result < 0) { UnixErrorInfo errorInfo = UnixErrorInfo.GetLastErrorInfo(); if (errorInfo.Error == UnixError.EPERM) // handle permission issue ... } // getgrnam_r unsafe { Group group = new Group(); Group* groupPointer; int bufferSize = 1024; byte* stackBuffer = stackalloc byte[bufferSize]; result = UnixFunctions.getgrnam_r(""somegroup"", ref group, stackBuffer, bufferSize, out groupPointer); if (result != 0) { UnixErrorInfo errorInfo = new UnixErrorInfo(result); while (errorInfo.Error == UnixError.ERANGE) { bufferSize *= 2; byte[] heapBuf = new byte[bufferSize]; fixed (byte* heapBuffer = heapBuf) { result = UnixFunctions.getgrnam_r(""somegroup"", ref group, heapBuffer, bufferSize, out groupPointer); if (result == 0) { break; } errorInfo = new UnixErrorInfo(result); } } } if (result != 0) // handle permission issue if (groupPointer == null) { // group wasn't found } else { string groupName = Marshal.PtrToStringAnsi(group.gr_name); string groupPassword = Marshal.PtrToStringAnsi(group.gr_passwd); uint groupId = group.gr_gid; List groupMembers = new List(); IntPtr* memberPointer = group.gr_mem; IntPtr currentMember = *memberPointer; while (currentMember != IntPtr.Zero) { groupMembers.Add(Marshal.PtrToStringAnsi(currentMember)); memberPointer++; currentMember = *memberPointer; } } } } ``` ## APIs to Expose The exposed functions will be implemented in phases. To determine the first phase of functions, I have analyzed [Mono](https://github.com/mono/mono/blob/master/mcs/class/Mono.Posix/Mono.Unix.Native/Syscall.cs), [Go](https://godoc.org/golang.org/x/sys/unix), and [Phython](https://docs.python.org/3/library/os.html) system functions. Phase 1 of this work will include functions that are: - Exposed by at least 2 out of the 3 platforms - POSIX compliant - Not Socket related (since there are already Socket APIs in .NET, these are lower priority) - Not Exec related (since there are already Process APIs in .NET) - Not Memory Map related (since there are already MemoryMappedFile APIs in .NET) - If there is an equivalent “_r” function, don’t expose the corresponding function that returns values that may point to a static area. This way our users don’t try executing non-thread safe functions. Ex. Expose “getgrnam_r()”, but don’t expose “getgrnam()”. That results in the following list of functions for Phase 1: 1. access 1. chdir 1. chmod 1. chown 1. close 1. closelog 1. confstr 1. creat 1. dup 1. dup2 1. faccessat 1. fchdir 1. fchmod 1. fchmodat 1. fchown 1. fchownat 1. fcntl 1. fdatasync 1. fpathconf 1. fstat 1. fstatvfs 1. fsync 1. ftruncate 1. getcwd 1. getegid 1. geteuid 1. getgid 1. getgrgid_r 1. getgrnam_r 1. getgroups 1. getlogin_r 1. getpgid 1. getpgrp 1. getpid 1. getppid 1. getpriority 1. getpwnam_r 1. getpwuid_r 1. getsid 1. gettimeofday 1. getuid 1. isatty 1. kill 1. lchown 1. link 1. linkat 1. lockf 1. lseek 1. lstat 1. mkdir 1. mkdirat 1. mkfifo 1. mknod 1. mknodat 1. mlock 1. mlockall 1. mprotect 1. munlock 1. munlockall 1. nanosleep 1. nice 1. open 1. openat 1. openlog 1. pathconf 1. pause 1. pipe 1. poll 1. posix_fadvise 1. posix_fallocate 1. posix_madvise 1. pread 1. pwrite 1. read 1. readlink 1. readv 1. rename 1. renameat 1. rmdir 1. setegid 1. seteuid 1. setgid 1. setlogmask 1. setpgid 1. setpgrp 1. setpriority 1. setregid 1. setreuid 1. setsid 1. setuid 1. stat 1. statvfs 1. strerror_r 1. symlink 1. symlinkat 1. sync 1. sysconf 1. syslog 1. tcgetpgrp 1. tcsetpgrp 1. time 1. times 1. truncate 1. ttyname_r 1. umask 1. uname 1. unlink 1. unlinkat 1. utime 1. utimes 1. wait 1. waitpid 1. write 1. writev " +15290 area-Serialization SoapEncodedSerializationTest_Enum Failed with PNSE The test is failing with PlatformNotSupportedException. ``` XmlSerializerTests.SoapEncodedSerializationTest_Enum [FAIL] System.InvalidOperationException : There was an error generating the XML document. ---- System.PlatformNotSupportedException : Operation is not supported on this platform. Stack Trace: D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(513,0): at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWrite r, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(416,0): at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWrite r, Object o, XmlSerializerNamespaces namespaces, String encodingStyle) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(411,0): at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWrite r, Object o, XmlSerializerNamespaces namespaces) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(393,0): at System.Xml.Serialization.XmlSerializer.Serialize(Stream stream, Obj ect o, XmlSerializerNamespaces namespaces) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(381,0): at System.Xml.Serialization.XmlSerializer.Serialize(Stream stream, Obj ect o) D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs(2834,0): at XmlSerializerTests.SerializeAndDeserialize[T](T value, String baseline , Func`1 serializerFactory, Boolean skipStringCompare, XmlSerializerNamespaces xns) D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs(2681,0): at XmlSerializerTests.SoapEncodedSerializationTest_Enum() ----- Inner Stack Trace ----- D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(357,0): at System.Xml.Serialization.ReflectionXmlSerializat ionWriter.WriteElement(Object o, ElementAccessor element, String arrayName, Boolean writeAccessor, XmlMapping parentMapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(163,0): at System.Xml.Serialization.ReflectionXmlSerializat ionWriter.WriteElements(Object o, Object enumSource, ElementAccessor[] elements, TextAccessor text, ChoiceIdentifierAccessor choice, String arrayName, Boolean writeAccessors, Bool ean isNullable, XmlMapping parentMapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(110,0): at System.Xml.Serialization.ReflectionXmlSerializat ionWriter.WriteMember(Object o, Object choiceSource, ElementAccessor[] elements, TextAccessor text, ChoiceIdentifierAccessor choice, TypeDesc memberTypeDesc, Boolean writeAccessor s, XmlMapping parentMapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(93,0): at System.Xml.Serialization.ReflectionXmlSerializati onWriter.GenerateTypeElement(Object o, XmlTypeMapping xmlMapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(58,0): at System.Xml.Serialization.ReflectionXmlSerializati onWriter.WriteObjectOfTypeElement(Object o, XmlTypeMapping mapping) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\ReflectionXmlSerializationWriter.cs(48,0): at System.Xml.Serialization.ReflectionXmlSerializati onWriter.WriteObject(Object o) D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(447,0): at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWrite r, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) ``` +15291 area-Infrastructure Adding missing Configurations.props for refs and fixing the existing ones cc: @ericstj @tarekgh @weshaggard FYI: @chcosta - Fixing the few Configurations.props we have for refs to remove their claimed `netstandard` config. - Adding uap configuration to all refs. - Adding configuration file to refs that didn't have one already. - Fixed uap logic on targetGroups in order to select the right imports. +15292 area-System.Collections Add ConcurrentBag/Queue.Clear Replaces https://github.com/dotnet/corefx/pull/13976 and https://github.com/dotnet/corefx/pull/14084. I initially cherry-picked the commits from those PRs, but I essentially had to rewrite the implementations due to the significant implementation changes that came in to ConcurrentBag and ConcurrentQueue in https://github.com/dotnet/corefx/pull/14126 and https://github.com/dotnet/corefx/pull/14254. Also cleaned up the tests @AlexRadch had added and added more. Fixes https://github.com/dotnet/corefx/issues/2338 cc: @ianhays, @kouvel +15293 area-Infrastructure Remove packages from NETStandard.Library 1.6 With one exception: System.Runtime.InteropServices.RuntimeInformation. For the rest we will no longer ship packages. Instead the types will be supported as follows: 1. In a netstandard2.0+ project via NETStandard.Library package's netstandard.dll 2. In a netstandard1.x project via NETStandard.Library package and closure which ship from servicing branches. 3. In a framework specific project via the framework's targeting pack or framework package. /cc @weshaggard @chcosta This does not yet include removal of packages that are being absorbed into netstandard2.0. +15294 area-Infrastructure Remove pkgprojs for shims in shared framework These shims no longer ship independently, but instead are bundled in the Microsoft.Private.CoreFx.NETCoreApp package, which is consumed in core-setup to bundle (redist) its content inside Microsoft.NETCore.App and the shared framework. Note that the SNI package remains for use by SQLClient since that is not in the shared framework. /cc @weshaggard @bartonjs @stephentoub +15295 area-Infrastructure Restore from v3 NuGet.org feed I noticed that this feed was still v2 when looking at a timeout issue. I don't know if v3 will make timeouts more rare, but it's a common recommendation to improve NuGet behavior in general. (The timeout issue I was looking at is in https://devdiv.visualstudio.com/DevDiv/_build?buildId=526691, specifically https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_build?buildId=526699.) @MattGal @ericstj +15296 area-System.Collections Fix #14961 and tweak perf in ImmutableArray Follow-up for https://github.com/dotnet/corefx/pull/14798 and https://github.com/dotnet/corefx/pull/13158. Specializes `InsertRange` for arrays, uses `TryCopyTo` in `ImmutableArray.Builder`, removes some unnecessary boxing in `Remove` / `Replace`, makes exceptions consistent in `SetItem` / `Replace` / `Remove`, and reenables corresponding tests. Fixes #14961, https://github.com/dotnet/corefx/issues/13695 +15297 area-Infrastructure Fix F5 to run tests in VS Fall back to old values if env vars aren't set #15166 @weshaggard @mellinoe +15298 area-Infrastructure test projects configured as netstandard should compile against netstandard targeting pack Tests are always compiling against the build configuration ref and never netstandard. See https://github.com/dotnet/corefx/blob/5bd6dea77374feccbc859d4a771f9fff7e973d86/targetingpacks.props#L20 and https://github.com/dotnet/corefx/blob/5bd6dea77374feccbc859d4a771f9fff7e973d86/Tools-Override/FrameworkTargeting.targets#L5 +15300 area-System.Net Fix some failing win7 net.security tests These tests are consistently failing all win7 runs. This is because of a behavioral difference between win7 and win8+ with regard to how the trusted issuers list is exchanged between the server and the client. The test was not written expecting the old behavior like other System.Net.Security tests are, so it was failing from unexpected RemoteCertificateNotAvailable PolicyErrors. This can be resolved either by manually installing the NDX Test Root CA cert to the test machine or by modding the code to handle the PolicyError when the cert is unavailable and the platform is win7 (which is what this code does). resolves https://github.com/dotnet/corefx/issues/13637 PTAL: @steveharter @Priya91 FYI: @CIPop @davidsh @karelz +15301 area-Infrastructure MSBuild says dlls are being used by another process when invoking build-tests "I have just rebased after the announcement in https://github.com/dotnet/corefx/issues/15135 and run `clean --all`, `build`, and `build-tests`. During `build-tests` this error pops up when MSBuild tries to copy files from `bin\runtime` to `Tools\testdotnetcli\shared\Microsoft.NETCore.App\9.9.9`: ``` C:\Users\james\Code\git\corefx\Tools\ConstructSharedFx.targets(41,5): warning MSB3026: Could not copy ""C:\Users\james\C ode\git\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64/\apphost.exe"" to ""C:\Users\james\Code\git\corefx\Tools/testd otnetcli\shared\Microsoft.NETCore.App\9.9.9\apphost.exe"". Beginning retry 1 in 1000ms. The process cannot access the fi le 'C:\Users\james\Code\git\corefx\Tools/testdotnetcli\shared\Microsoft.NETCore.App\9.9.9\apphost.exe' because it is be ing used by another process. [C:\Users\james\Code\git\corefx\src\tests.builds] ``` This happens for every file in `bin\runtime`; the full log is [here](https://gist.github.com/jamesqo/d63af78cfd2363f5a9d90dd714a782a2). (I had to quit the process because it was taking too long, so the log does not include every file in the directory.) I've tried killing VBCSCompiler.exe and restarting my desktop, but it still happens." +15303 area-Meta Update allow-list for UWP build validation 1) Bring these up to date with the latest Windows allow-list: https://github.com/dotnet/buildtools/blob/master/src/Microsoft.DotNet.CodeAnalysis/PackageFiles/PinvokeAnalyzer_UWPApis.txt https://github.com/dotnet/buildtools/blob/master/src/Microsoft.DotNet.CodeAnalysis/PackageFiles/PinvokeAnalyzer_Win32UWPApis.txt and incidentally https://github.com/dotnet/buildtools/blob/master/src/Microsoft.DotNet.CodeAnalysis/PackageFiles/PinvokeAnalyzer_OneCoreApis.txt 2) By trying out an invalid API, verify these analyzers are running. +15305 area-Infrastructure Clean-up usage of $(OS) property in targets We should try and limit the usage of $(OS) property in all the targets files. In places we need it we should use it in a limited fashion to setup other properties like RunningOnUnix/Windows and we should use that as the conditions in all our targets. Examples we should clean-up. test.targets (https://github.com/dotnet/corefx/pull/15177/files#diff-b8c5f6b5d9e571e8187355199b2a1680R33), in this case we should use TargetOS. https://github.com/dotnet/corefx/blob/master/Tools-Override/ConstructSharedFx.targets#L25 We should grep through all our targets files and update them in a consistent manner. +15306 area-Infrastructure Fix code coverage build "A few things were needed in order to fix this. * Copy the PDB's alongside the runtime DLL's during binplacing * @ericstj Could you confirm that we DO want these PDB's placed in bin/netcoreapp/pkg? I can modify the logic to avoid that, but right now I am just copying the PDB's into all of the `RuntimeDir` locations (same as the DLL's). * Add a filter parameter to OpenCover.exe so that it only collects data relevant to the assembly being tested (see **NOTE** below). * The way I am computing the name of the ""assembly being tested"" is quite hacky. I'd love a better way to get that information. * Add a filter parameter to the report generator so that we only report code coverage for the assembly being tested * Run tests serially when doing coverage runs. There was some logic in the targets for this before, but I think it stopped working during our refactoring. I added a check in dir.traversal.targets to force a serialized build if `Coverage == true`. **NOTE**: If you want to collect coverage data on an assembly that is not directly being tested (e.g. System.Private.CoreLib), you now need to pass in an extra property: `CodeCoverageAssemblies`. This is because everything is filtered out by-default (except for the ""assembly being tested""). This is necessary because, with the new test structure, every runtime assembly's PDB is available, which would result in an insane amount of data being collected without any filtering. @weshaggard @karajas @joperezr cc: @stephentoub (The NOTE above will affect you if you're getting code coverage for System.Private.CoreLib)." +15309 area-System.Numerics Seg fault in System.Numerics.Vectors.Tests on Unix https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_release_prtest/2194/consoleText ``` Discovering: System.Numerics.Vectors.Tests Discovered: System.Numerics.Vectors.Tests Starting: System.Numerics.Vectors.Tests /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest/bin/AnyOS.AnyCPU.Release/System.Numerics.Vectors.Tests/netstandard1.3/RunTests.sh: line 80: 45186 Segmentation fault: 11 $RUNTIME_PATH/dotnet $EXECUTION_DIR/xunit.console.netcore.exe System.Numerics.Vectors.Tests.dll -noshadow -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonosxtests /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_release_prtest/src/System.Numerics.Vectors/tests Finished running tests. End time=18:17:50. Return value was 139 ``` cc: @mellinoe +15310 area-Infrastructure Add Dumpling to targets in Tools-Override Merges https://github.com/dotnet/buildtools/pull/1254/ into Tools-Override directory as currently we are overriding `tests.targets` in Tools grabbed from buildtools. (This change was left behind from `tests.targets` when Tools-Override was added) @danmosemsft @joperezr @weshaggard @MattGal @karajas +15311 area-Infrastructure [ARM/Linux/CI] Fix arm32 build break Related Issue: #15215 +15312 area-Infrastructure Remove packages from NETStandard2.0 Related to Commit https://github.com/dotnet/corefx/commit/0797813bfe3a9e6d04d4bfaa865b477bb26f8ce2 / PR https://github.com/dotnet/corefx/pull/15293 This removes packages where the types have been moved into netstandard.dll in netstandard2.0. These types are supported as follows: 1. In a netstandard2.0+ project via NETStandard.Library package's netstandard.dll 2. In a netstandard1.x project via contract assembly packages which ship from servicing branches. 3. In a framework specific project via the framework's targeting pack or framework package. /cc @weshaggard +15313 area-Infrastructure Netstandard closure in NETCoreApp Fixes #15083. This adds a number of assemblies to netcoreapp. The process I used to do this was look at our current NETCoreApp netstandard.dll ref and add all of its dependencies as both ref & lib, since we must support neststandard.dll. I then re-enabled closure validation for netstandard, then I added all other libs needed to make it closure complete. @weshaggard please review. If you see anything here that shouldn't be it probably means we need to push types down. +15318 area-System.Linq Throw ArgumentException for invalid uses of global members in Expressions. Several methods of `Expression` will throw `NullReferenceException` if called with a `MethodInfo` or `FieldInfo` for a global method or field. These exceptions are all thrown from validation of the (null) `DeclaringType`, so fix these validation methods to throw the same exception they would throw for a non-null but inappropriate `DeclaringType`. Using a global field with a `MemberBinding` does not throw, but any attempt to use that binding will similarly throw `NullReferenceException`. Change to throw an `ArgumentException` immediately. Fixes #12943 +15320 area-System.Runtime Tuple in List Creates Extra Values "### Issue When I create a list of tuples it is adding additional items to the list. These aren't showing in the list, only the debugger. ### Example ``` public List<(string label, ProjectStrategy.Services route, Type message)> Services { get; set; } = new List<(string label, ProjectStrategy.Services route, Type message)> { (label: ""Edit"", route: ProjectStrategy.Services.EditStrategy, message: typeof(ProjectEditViewModel)), (label: ""Find"", route: ProjectStrategy.Services.FindProject, message: typeof(ProjectIdentityViewData)), (label: ""List"", route: ProjectStrategy.Services.ListProjects, message: typeof(void)), (label: ""New"", route: ProjectStrategy.Services.NewStrategy, message: typeof(void)), (label: ""View"", route: ProjectStrategy.Services.ViewStrategy, message: typeof(ProjectIdentityViewData)) }; ``` In the debugger, it shows a list containing eight values, though the count says five. ![image](https://cloud.githubusercontent.com/assets/13967891/22112489/b7ef3692-de28-11e6-86e7-39b47d41c4f0.png) " +15321 area-Infrastructure Add missing RID packages - Private.CoreFx.NETCoreApp These RIDs were added to the native shims between when we branched dev/eng and merged back to master. We don't have an official build leg building these, but I'm adding them to the identity package so that our officially built identity package will have entries for them in its runtime.json. Note that this is not a requirement if all you are doing is building the stack yourself without publishing the output of your builds to a common feed. In that case your build for ubuntu.14.04-arm would have an entry for that in the MS.Private.CoreFx.NETCoreApp package. I've also added `armel` to our property data model as @hseok-oh pointed out this is missing. /cc @chunseoklee @hseok-oh @weshaggard @ellismg +15322 area-System.Collections Feature: Stack.TryPeek and TryPop The `Stack` class should add methods `bool TryPeek(out T value)` and `bool TryPop(out T value)`. In ordinary usage, these would only be a small improvement in clarity (and perhaps, marginally, in performance) compared to manually checking `Count()` and then calling `Peek()` or `Pop()`. But they would be very useful to have to make the interface closer to that of `ConcurrentStack`. Then if you write code with `ConcurrentStack` but later realize that the extra synchronization provided by that class isn't needed, you will be able to change the code to plain `Stack` without rewriting. +15323 area-Infrastructure Update the adding APIs guide We need to update https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/adding-api-guidelines.md based on the new engineering changes. +15328 area-System.Numerics Out of date comments in System.Numerics.Vectors "There is a comment at the beginning of Vectors.cs [https://github.com/dotnet/corefx/blob/master/src/System.Numerics.Vectors/src/System/Numerics/Vector.cs#L22-L32](url) > PATTERN: * if (Vector.IsHardwareAccelerated) { ... } * else { ... } * EXPLANATION * This pattern solves two problems: * 1. Allows us to unroll loops when we know the size (when no hardware acceleration is present) * 2. Allows reflection to work: * - If a method is called via reflection, it will not be ""intrinsified"", which would cause issues if we did * not provide an implementation for that case (i.e. if it only included a case which assumed 16-byte registers) * (NOTE: It is assumed that Vector.IsHardwareAccelerated will be a compile-time constant, eliminating these checks * from the JIT'd code.) This means that the Vector.IsHardwareAccelerated true path of each SIMD intrinsic fallback would execute in reflection calls. However, according to my experiment, CoreCLR’s behavior is different from the comment. The Vector.IsHardwareAccelerated true path cannot execute, even though it called by reflection. Usually, reflection calls of SIMD intrinsics also go to jited intrinsic. I detected that the true path only executes when the current base type is not supported by current SIMD intrinsic (in CoreCLR). For example, there is a SIMD intrinsic “DotProduct” in CoreCLR, which just supports Int, Long, Float, and Double. If we pass two vectors of Byte or Short, DotProduct would go to the C# fallback (the Vector.IsHardwareAccelerated true path). Consequently, here are two issues: 1. The comment is different from code's behavior (out of date comments?). 2. For most of the SIMD intrinsics, the code pattern ""if (Vector.IsHardwareAccelerated) { ... }"" looks useless. " +15329 area-System.Memory Proposal: Add Sort(...) extension methods for Span Currently, there is no way to sort native or fixed memory (e.g. coming from a pointer) in .NET, this proposal intends to fix that by adding sorting extension methods to `Span`, but also proposes some different overloads than seen on `Array` to allow for inlined comparisons via the possibility to use value type comparers. ### Proposed API Add a set of `Sort` extension methods to `Span` in `SpanExtensions`: ```csharp public static class SpanExtensions { public static void Sort(this Span span); public static void Sort(this Span span, TComparer comparer) where TComparer : IComparer; public static void Sort(this Span span, System.Comparison comparison); public static void Sort(this Span keys, Span items); public static void Sort(this Span keys, Span items, TComparer comparer) where TComparer : IComparer; public static void Sort(this Span keys, Span items, System.Comparison comparison); } ``` ### Rationale and Usage Provide a safe yet fast way of sorting of any type of contiguous memory; managed or unmanaged. #### Sorting Native Memory ```csharp var span = new Span(ptr, length); span.Sort(); // Sort elements in native memory ``` #### Sorting with Inlineable Comparer ```csharp struct ReverseComparer : IComparer { [MethodImpl(MethodImplOptions.AggressiveInlining)] public int Compare(int a, int b) { if (a == b) { return 0; } if (a > b) { return -1; } return 1; } } Span span = GetSomeSpan(); // Sort elements, in reverse order with inlined Compare, // without heap allocation for comparer span.Sort(new ReverseComparer()); ``` #### Sorting based on Lambda ```csharp Span span = GetSomeSpan(); // Sort elements, in reverse order with lambda/delegate span.Sort((a, b) => a == b ? 0 : (a > b ? -1 : 1)); ``` #### Sorting Compound Type ```csharp struct Compound { public float FeatureValue; public int FeatureIndex; public object Payload; } struct InlineableFeatureValueComparer : IComparer { [MethodImpl(MethodImplOptions.AggressiveInlining)] public int Compare(Compound a, Compound b) { if (a.FeatureValue == b.FeatureValue) { return 0; } if (a.FeatureValue < b.FeatureValue) { return -1; } return 1; } } var span = new Span(); span.Sort(); // Inlineable struct comparer var comparer = new InlineableFeatureValueComparer(); span.Sort(comparer); // Lambda comparer span.Sort((a, b) => a.FeatureValue == b.FeatureValue ? 0 : (a.FeatureValue < b.FeatureValue ? -1 : 1)); ``` The argumentation for adding this is: * To increase the efficiency of code doing sorting and prevent people from reinventing the wheel. * Allow performance optimizations depending on memory type and contents. * Allow sorting on contiguous memory of any kind. #### Use Cases In almost any domain where a high volume of data is processed with sorting being one operation and memory management (e.g. memory recycling, buffer pooling, native memory) is a must to achieve high performance with minimal latency, these sorts would be useful. Example domains are database engines (think indexing), computer vision, artificial intelligence etc. A concrete example could be in the training of Random Forests some methods employ feature sorting (with indeces) to find decision boundaries on. This involves a lot of data and data that can originate from unmanaged memory. ### Open Questions An important question regarding this proposal is whether the pattern with generic parameter `TComparer` (e.g. constrained to `where TComparer : IComparer`) is a pattern that can be approved. This pattern allows for inlineable comparers at the cost of increased code size, if no value type comparers are used, there should be no difference. This pattern is also used in the proposal for `BinarySearch` in https://github.com/dotnet/corefx/issues/15818 The API relies on being able to depend upon `System.Collections.Generic`, could this be an issue? @karelz @jkotas @jamesqo ### Updates UPDATE 1: Change API to be defined as extension methods. UPDATE 2: Add compounded type usage. UPDATE 3: Add link to BinarySearch and point on the pattern used. ### Existing Sort APIs A non-exhaustive list of existing sorting APIs is given below for comparison. #### `Array.Sort` Static Methods Found in [ref/System.Runtime.cs](https://github.com/dotnet/corefx/blob/master/src/System.Runtime/ref/System.Runtime.cs) ```csharp public static void Sort(System.Array array) { } public static void Sort(System.Array keys, System.Array items) { } public static void Sort(System.Array keys, System.Array items, System.Collections.IComparer comparer) { } public static void Sort(System.Array keys, System.Array items, int index, int length) { } public static void Sort(System.Array keys, System.Array items, int index, int length, System.Collections.IComparer comparer) { } public static void Sort(System.Array array, System.Collections.IComparer comparer) { } public static void Sort(System.Array array, int index, int length) { } public static void Sort(System.Array array, int index, int length, System.Collections.IComparer comparer) { } public static void Sort(T[] array) { } public static void Sort(T[] array, System.Collections.Generic.IComparer comparer) { } public static void Sort(T[] array, System.Comparison comparison) { } public static void Sort(T[] array, int index, int length) { } public static void Sort(T[] array, int index, int length, System.Collections.Generic.IComparer comparer) { } public static void Sort(TKey[] keys, TValue[] items) { } public static void Sort(TKey[] keys, TValue[] items, System.Collections.Generic.IComparer comparer) { } public static void Sort(TKey[] keys, TValue[] items, int index, int length) { } public static void Sort(TKey[] keys, TValue[] items, int index, int length, System.Collections.Generic.IComparer comparer) { } ``` #### `List.Sort` Member Methods Found in [ref/System.Collections.cs](https://github.com/dotnet/corefx/blob/master/src/System.Collections/ref/System.Collections.cs) ```csharp public partial class List : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { public void Sort() { } public void Sort(System.Collections.Generic.IComparer comparer) { } public void Sort(System.Comparison comparison) { } public void Sort(int index, int count, System.Collections.Generic.IComparer comparer) { } } ``` #### LINQ `OrderBy` Extension Methods Found in [ref/System.Linq.cs](https://github.com/dotnet/corefx/blob/master/src/System.Linq/ref/System.Linq.cs) ```csharp public static System.Linq.IOrderedEnumerable OrderBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector) { throw null; } public static System.Linq.IOrderedEnumerable OrderBy(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Collections.Generic.IComparer comparer) { throw null; } public static System.Linq.IOrderedEnumerable OrderByDescending(this System.Collections.Generic.IEnumerable source, System.Func keySelector) { throw null; } public static System.Linq.IOrderedEnumerable OrderByDescending(this System.Collections.Generic.IEnumerable source, System.Func keySelector, System.Collections.Generic.IComparer comparer) { throw null; } ``` +15330 area-System.IO Fast creating and removing files and directories causes UnauthorizedAccessException or DirectoryNotFoundException "When quickly creating and removing files exceptions are being thrown Repro: ```csharp using System; using System.IO; namespace ConsoleApplication { class Program { static void Main(string[] args) { for (int i = 0; i < 5000; i++) { string dirName = ""dfoo""; string fileName = ""foo.txt""; DirectoryInfo di = new DirectoryInfo(dirName); FileInfo fi = new FileInfo(Path.Combine(di.FullName, fileName)); di.Create(); File.WriteAllText(fi.FullName, ""foo""); File.Delete(Path.Combine(di.FullName, fileName)); Directory.Delete(di.FullName); Console.WriteLine(i); } } } } ``` This has reproed both on coreclr and Desktop - usually between 100-500 iterations (Ocassionally couple thousand) OS: Windows 10" +15331 area-System.Data SqlClient: Enable parallel connection opens for MultiSubnetFailover on Unix Looks like Unix networking APIs for connecting to multiple IP addresses simultaneously were not available when MultiSubnetFailover was implemented in CoreFx SqlClient. https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.cs#L191 +15333 area-Infrastructure Update libcurl package on Centos outerloop image to latest version libcurl version on centos image in Jenkins is 7.29.0, and the other Unix Oses use 7.35.0. There are some sslprotocol tests failing consistently with SSL connect error due to this. Verified locally that updating the curl version doesn't cause the test failure. This is currently causing Centos Outerloop runs to be red. So marking with blocking-ci tag. cc @karelz @steveharter +15334 area-System.Runtime Expose String.Trim overloads that take a single char Expose and add tests for https://github.com/dotnet/coreclr/pull/9009. The new tests should compile/run on older platforms that don't have the new overloads yet since the existing overloads are `params`. Though, I assume it won't pass CI until the changes to coreclr are available to corefx due to the ref update. Fixes #14337 +15337 area-System.IO System.IO.IsolatedStroage brings System.IO.FileSystem.AccessControl into NETCore.App See https://github.com/dotnet/corefx/pull/15313#pullrequestreview-17504675 It's undesireable to have this in NETCore.App. Consider copying the code used System.IO.FileSystem.AccessControl instead. /cc @weshaggard +15338 area-System.Numerics Optimized complex sqrt, added strict test for sqrt(-1)=i The current implementation of Complex.Sqrt(z) is just Complex.Pow(z, 0.5). This results in several problems, most glaringly Complex.Sqrt(-1)!=Complex.ImaginaryOne. It is also not optimized. I have changed the implementation to be the standard optimized complex square root algorithm well known in the numerical computing community. I also added a test for Complex.Sqrt(-1)==Complex.ImaginaryOne, which the current implementation fails and the new implementation passes. In the course of making this modification, I noticed several tests which demand NaNs be returned for extreme inputs to Complex.Asin, and for which NaNs are no longer returned after my changes to Complex.Sqrt. Actually, asin is perfectly well-defined and re-presentable for these inputs, and the tests were presumably added simply to reflect the current behavior of Complex.Asin. For the moment, I have simply deleted the erroneous tests. In future, Complex.Asin and Complex.Acos can be updated to use an optimized algorithm which will give correct results for all re-presentable inputs. +15339 area-Infrastructure Ensure we run UAP pinvoke checks regardless of TargetGroup Previously we'd only check pinvokes if a library specifically targeted UAP. That would miss the case where a netstandard build would be applicable. We should change this to run whenever the buildvertical is UAP. EG: _bc_TargetGroup == uap || _bc_TargetGroup == uapaot. +15344 area-Infrastructure Enable NetFX tests (Step 1) This is the initial changes to enable NetFx test runner. there is more changes will be done but this change is getting the xunit runner to work when targeting NetFX +15347 area-Infrastructure Include expected ns1.6 shims in netcoreapp I looked at all the refs that existed in netcoreapp1.6 and for any with types in netstandard.dll I've added them to NETCoreApp and deleted the packages. I expect these all to eventually be included in NS2.0 as compat shims. 3 exceptions to this: System.Net.Http & System.IO.Compression: I expect these packages will still ship to deliver out-of-band fixes for desktop. System.Data.SqlClient: This package may still ship out of band (TBD) /cc @weshaggard +15348 area-System.Memory Span: Win7 Outer Loop test failures in System.SpanTests.SpanTests.ClearNativeLongerThanUintMaxValueBytes Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win7_release/lastFailedBuild/consoleText Message: ~~~ System.OutOfMemoryException : Insufficient memory to continue the execution of the program. ~~~ Stack Trace: ~~~ at System.Runtime.InteropServices.Marshal.AllocHGlobal(IntPtr cb) D:\j\workspace\outerloop_win---75d58f69\src\System.Memory\tests\Span\Clear.cs(240,0): at System.SpanTests.SpanTests.ClearNativeLongerThanUintMaxValueBytes() ~~~ Configuration: OuterLoop_Windows7_release (build#72) +15351 area-Infrastructure Remove additional packages NETStandard.Library : now builds from the standard repo System.Private.DataContractSerialization : private package and all upstack packages have been deleted. System.Private.Xml : private package and all upstack packages have been deleted. System.Xml.XPath.XDocument : contains only extension methods for members that have been added back in netstandard. System.Private.Xml.Linq: private package and all upstack packages have been deleted, after deleting System.Xml.XPath.XDocument. /cc @weshaggard +15352 area-Serialization Enable XmlSerializer to Support SoapEncoded Message. Soap-encoded serialization was not supported on NetCore. The fix was to enable XmlSerializer to read/write soap-encoded messages of simple types. Fix #12799. Fix #15290. +15354 area-System.Net Ensure CURLOPT_TCP_NODELAY is set by CurlHandler CURLOPT_TCP_NODELAY defaults to 0 in versions of libcurl prior to 7.50.2. As of 7.50.2, the default is changed to 1, as it was observed to cause non-trivial latency in some common scenarios. We've observed similar latency problems as well, e.g. small POSTs. To address this, this commit simply sets CURLOPT_TCP_NODELAY to 1, which is a nop on recent libcurl versions and will cause older versions to behave similarly. cc: @cesarbs, @mikeharder, @geoffkizer, @davidsh +15355 area-Serialization Area-Serialization Sprint 113 The issue is for tracking issues to be done in sprint 113 (due by 2/10/2017). +15356 area-Serialization Add More Tests for XmlSerializer Supporting Varied Types in SOAP Now we are using reflection based serialization to read/write types into/from Soap-encoded messages. We need to add more tests covering more kinds of types. +15357 area-Infrastructure Removing System.Private.CoreLib from TargetingPack cc: @weshaggard @ericstj @mellinoe Removing System.Private.CoreLib from the Targeting pack and changing the projects so that they depend to the one in the runtime directory. +15358 area-Infrastructure Chnage tar path for Ubuntu Runs In the recent dev/eng work we changed around the layout of the binaries that we dropped. But we also produce the new runtime folder which as all of the dependencies in one place. For Ubuntu performance runs on coreclr we have used the uploaded zip file as our CoreFX. This change simply removes all of the folders that were previously packaged and now just includes the content of the runtime folder. +15359 area-Infrastructure Update BuildTools to 1.0.27-prerelease-01219-01, add EnableDumpling to pipeline Updates BuildTools from `1.0.27-prerelease-01211-03` to `1.0.27-prerelease-01219-01` (To get https://github.com/dotnet/buildtools/pull/1306) Also, adding `/p:EnableDumpling=true` to pipeline.json for all Linux runs, as I need Dumpling.Targets to be imported in tests.targets and add commands to `RunTests.sh` on Helix tests. cc: @chcosta @danmosemsft @karajas +15361 area-Infrastructure Add a crossgen.sh script, which can be used to run crossgen on Tools assemblies "`crossgen.sh` does the following: * Restores crossgen for the current RID (as determined via ""dotnet --info"") * Copies crossgen into the shared framework folder * Runs crossgen on all of the assemblies in the folder passed as the first parameter to the script. This is done in parallel. This speeds up build time considerably. My build completes in about half the time, and the entire crossgen script only takes about 10 seconds to run. I am interested in seeing times in CI. Feedback wanted on how the crossgen package is located and restored. It's the ugliest part here. @ellismg @weshaggard @ericstj " +15362 area-Meta Include some new APIs we added to .NET Standard 2.0 See update in https://github.com/dotnet/corefx/pull/15340. https://github.com/ericstj/corefx/blob/31e2e12e275778b953b4ee6f92d49eabde093d8b/src/shims/ApiCompatBaseline.netstandard20.txt Missing APIs. ``` TypesMustExist : Type 'System.ArgIterator' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Console.Write(System.String, System.Object, System.Object, System.Object, System.Object, __arglist)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Console.WriteLine(System.String, System.Object, System.Object, System.Object, System.Object, __arglist)' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.RuntimeArgumentHandle' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.String.Concat(System.Object, System.Object, System.Object, System.Object, __arglist)' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.TypedReference' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.FieldInfo.GetValueDirect(System.TypedReference)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.FieldInfo.SetValueDirect(System.TypedReference, System.Object)' does not exist in the implementation but it does exist in the contract. Compat issues with assembly netstandard: TypesMustExist : Type 'System.ArgIterator' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Console.Write(System.String, System.Object, System.Object, System.Object, System.Object, __arglist)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Console.WriteLine(System.String, System.Object, System.Object, System.Object, System.Object, __arglist)' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.RuntimeArgumentHandle' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.String.Concat(System.Object, System.Object, System.Object, System.Object, __arglist)' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.TypedReference' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.FieldInfo.GetValueDirect(System.TypedReference)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.FieldInfo.SetValueDirect(System.TypedReference, System.Object)' does not exist in the implementation but it does exist in the contract. Compat issues with assembly System.Console: MembersMustExist : Member 'System.Console.Write(System.String, System.Object, System.Object, System.Object, System.Object, __arglist)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Console.WriteLine(System.String, System.Object, System.Object, System.Object, System.Object, __arglist)' does not exist in the implementation but it does exist in the contract. Compat issues with assembly System.Reflection: MembersMustExist : Member 'System.Reflection.FieldInfo.GetValueDirect(System.TypedReference)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.FieldInfo.SetValueDirect(System.TypedReference, System.Object)' does not exist in the implementation but it does exist in the contract. Compat issues with assembly System.Runtime: MembersMustExist : Member 'System.String.Concat(System.Object, System.Object, System.Object, System.Object, __arglist)' does not exist in the implementation but it does exist in the contract. ``` +15365 area-System.Linq Optimized new ToHashSet api through IListProvider #14173 - Added ToHashSet method to IIListProvider - Implementation based on ToList method - Added some tests Fixes #14173 +15366 area-System.Reflection System.Private.Reflection.Metadata.Ecma335 These changes are what I've put together for building a System.Reflection.Metadata that can run at the lower level of the runtime (with a minimal dependency set, just System.Private.CoreLib and System.Private.InteropServices) 1. Could I get an opinion on the factoring that I've done and my model for the various shims I need? 2. For changes that aren't unique to System.Private.Reflection.Metadata.Ecma335 (such as changes to the ImmutableCollections code, and for the changes to the code shared with System.Reflection.Metadata, what is the best way to get these changes into the tree? I'm assuming that I'd like to get those changes in with a separate PR that isn't this pretty big one.) @nguerrera @tmat +15367 area-System.Linq Avoid trimming groupings in GroupBy with result selectors AFAICS we can pass the grouping as the enumerable rather than the array, which eliminates the need for an expensive resize. It also prevents users from getting at the underlying array of the grouping by casting the enumerable to a `TElement[]`. **Related:** https://github.com/dotnet/corefx/issues/8848 +15368 area-System.Net Fix centos test failures in outerloop. fixes #15333 cc @karelz @steveharter @ianhays @stephentoub +15372 area-System.IO Add async File.ReadAll*, File.AppendAll* and File.WriteAll Fixes #11220 +15373 area-Infrastructure Removing netstandard configurations for things that are bellow netstandard cc: @weshaggard @ericstj FYI: @mellinoe @tarekgh Removing netstandard configurations to the assemblies that are part of netstandard.dll. The full list I used to base myself is https://github.com/dotnet/standard/blob/master/netstandard/pkg/shims/netstandard.shimlist.txt I will be adding uap configurations to these same projects on a separate PR +15374 area-Meta [Question] Comments with in corefx There are a bunch of XML doc-like comments with `` throughout the repo. See here: https://github.com/dotnet/corefx/search?utf8=%E2%9C%93&q=SecurityKernel&type=Code I stumbled across an unsafe method in `SortedSet` that was marked with it over [here](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/SortedSet.cs#L1745). Would it be OK to delete these? +15375 area-System.IO Improve code coverage for System.IO.FileSystem.AccessControl Issue #14352 +15376 area-System.Collections Prune code in SortedSet The code in `SortedSet` is pretty messy and currently is all put in one big file with 2700 LOC. I separated `TreeSubSet` and `SortedSetEqualityComparer` into new files and made a couple of changes: - Use expression-bodied members for trivial methods - Remove non-helpful `Debug.Assert` messages - Capitalize some methods, use named parameters with `true` / `false` / `null` args - `//comment` -> `// comment` - Comments are no longer on the same line as the brace - Trim trailing whitespace - Remove (poor) XML documentation for members that are interface implementations (e.g. `Add`, `IsProperSubsetOf`) - Other general readability improvements It's easier to review the first commit by itself then the rest of the commits, because I didn't move anything into a new file during the first commit. /cc @ianhays @Priya91 +15378 area-Infrastructure Solution generator tool emits bad sln, causes building System.Collections.Immutable.sln to MSBuild with StackOverflow Try msbuild src\System.Collections.Immutable\System.Collections.Immutable.sln. MSBuild will crash with stack overflow. This is because in this commit https://github.com/dotnet/corefx/commit/f6ab339f446e37505f93ef9f430801fa1dcc05b8#diff-d840dd78d66ae7f5f8889a4974e96228L55 the NestedProjects section of the .sln file is being written out incorrectly. Fixing this longer term should ideally also modify the CI system to build the .sln file and at least verify that it builds successfully. Shorter term, of course, just fix the tool that writes the .sln files and rerun it to unblock us. +15380 area-System.Net Win7 outer loop test 'System.Net.Tests.WebSocketTests.AcceptWebSocketAsync_NullSubProtocol_Succeeds' failed with 'System.PlatformNotSupportedException' Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win7_debug/lastFailedBuild/consoleText Message: ~~~ System.Net.Tests.WebSocketTests.AcceptWebSocketAsync_NullSubProtocol_Succeeds [FAIL] System.PlatformNotSupportedException : The WebSocket protocol is not supported on this platform. ~~~ Stack Trace: ~~~ D:\j\workspace\outerloop_win---b280fd23\src\Common\src\System\Net\WebSockets\WebSocketValidate.cs(121,0): at System.Net.WebSockets.WebSocketValidate.ThrowPlatformNotSupportedException() D:\j\workspace\outerloop_win---b280fd23\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Win32.cs(41,0): at System.Net.WebSockets.WebSocketHandle.CheckPlatformSupport() D:\j\workspace\outerloop_win---b280fd23\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\ClientWebSocket.cs(31,0): at System.Net.WebSockets.ClientWebSocket..ctor() D:\j\workspace\outerloop_win---b280fd23\src\System.Net.HttpListener\tests\WebSocketTests.cs(35,0): at System.Net.Tests.WebSocketTests.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ Configuration: OuterLoop_Windows7_debug (build#73) +15382 area-System.Collections More cleanup/perf tweaks for ImmutableList Changes: - `ImmutableList.Create(T)` and `ImmutableList.CreateRange(IEnumerable)` no longer go through the indirection of calling `AddRange` on the empty list-- they call directly into functions that create the list. - `ImmutableList.Create(T[])` avoids a couple of typecasts - Used expression-bodied members in a lot of places, deleting more than 300 lines of code - Move DebuggerProxy, Enumerator, and Node into their own files, as currently the file is 3000+ LOC - Avoid a couple of checks in places where it is known that a new root node will be returned - e.g. For `Add` or `Insert` the returned node we have to wrap will always be non-empty/inequal to the source node, so we can't avoid allocating another ImmutableList. - This should eliminate 1 call to `this.Wrap` per operation, but I haven't checked whether the JIT was inlining it before - Rename `WrapNode` to `WrapNewOrEmpty` - Move all argument validation from `ImmutableList` to `ImmutableList.Node` methods - Optimize/simplify `Node.RemoveAt` and delete `Balance()`, which is no longer used afterwards - Add asserts in `BalanceLeft` / `BalanceRight` to make sure the tree is really balanced **Note:** The diff is really large mostly because of the file separations. If you look at just the first two commits you'll see that the meat of the changes is only a couple hundred lines of code. /cc @AArnott @ianhays @Priya91 +15383 area-System.Data "Outer Loop OpenSUSE 42.1 Debug: Test ""System.Data.SqlClient.Tests.DiagnosticTest.ExecuteReaderTest"" failed with ""Xunit.Sdk.EqualException""" Failed Test: System.Data.SqlClient.Tests.DiagnosticTest.ExecuteReaderTest Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_opensuse42.1_debug/lastFailedBuild/consoleText Message: ~~~ System.Data.SqlClient.Tests.DiagnosticTest.ExecuteReaderTest [FAIL] Assert.Equal() Failure Expected: b6bade04-7eda-4678-a918-24502a6d7149 Actual: 0893cbea-49ac-4282-9385-0a5060b6ee79 ~~~ Stack Trace: ~~~ /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_opensuse42.1_debug/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs(458,0): at System.Data.SqlClient.Tests.DiagnosticTest.<>c__DisplayClass27_0.b__0(KeyValuePair`2 kvp) /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_opensuse42.1_debug/src/System.Data.SqlClient/tests/FunctionalTests/FakeDiagnosticListenerObserver.cs(35,0): at System.Data.SqlClient.Tests.FakeDiagnosticListenerObserver.FakeDiagnosticSourceWriteObserver.OnNext(KeyValuePair`2 value) /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_opensuse42.1_debug/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/DiagnosticListener.cs(192,0): at System.Diagnostics.DiagnosticListener.Write(String name, Object value) /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_opensuse42.1_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlClientDiagnosticListenerExtensions.cs(66,0): at System.Data.SqlClient.SqlClientDiagnosticListenerExtensions.WriteCommandAfter(DiagnosticListener this, Guid operationId, SqlCommand sqlCommand, String operation) /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_opensuse42.1_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs(1370,0): at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_opensuse42.1_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs(1331,0): at System.Data.SqlClient.SqlCommand.ExecuteReader() /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_opensuse42.1_debug/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs(119,0): at System.Data.SqlClient.Tests.DiagnosticTest.b__10_0() /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_opensuse42.1_debug/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs(585,0): at System.Data.SqlClient.Tests.DiagnosticTest.CollectStatisticsDiagnostics(Action sqlOperation) /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_opensuse42.1_debug/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs(110,0): at System.Data.SqlClient.Tests.DiagnosticTest.ExecuteReaderTest() ~~~ +15387 area-System.Diagnostics Replace or Remove Internal ExcludeFromCodeCoverageAttribute? "We now have two versions of `System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute`, the [publicly exposed version available to client code](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Tools/src/System/Diagnostics/CodeAnalysis/ExcludeFromCodeCoverageAttribute.cs) and the [internal version used through directly including the file](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Diagnostics/CodeAnalysis/ExcludeFromCodeCoverageAttribute.cs). Potentially the two could cause ambiguity. They also differ in two ways. 1. The internal version can be applied to assemblies. `ExcludeFromCodeCoverageAssemblyAttribute` was introduced to explicitly fit this purpose and reduce incompatibility of use. 2. The internal version is marked as `[Conditional(""DEBUG"")]`, reducing bloat in release assemblies. There are four things that can be done with this: 1. Leave things as they are. Pro: Don't fix what ain't broke. Con: Potential for ambiguity. 2. Remove the internal version, update to use the public version. Pro: Simple. Dogfooding. Con: Will bloat the release assemblies with attributes that aren't useful in release. 3. As above, but also change the public version to be `[Conditional(""DEBUG"")]`. Pro: As above and also reduce size of client release assemblies. Con: API change. While coverage of release builds is always likely to be strange, it may be still be used by someone and the effect undesirable. 4. Merge the internal version with `ExcludeFromCodeCoverageAssemblyAttribute` into a single `ExcludeFromCodeCoverageInternalAttribute` and use it consistently throughout. Pro: No bloat. No conflict with public API. Con: Not dogfooding. Introduces a difference in how we code corefx and how other projects are coded. Likely to be missed by new contributors, (or just anyone who didn't see this issue) who would expect to use `ExcludeFromCodeCoverageAttribute` as usual." +15388 area-Infrastructure EPPlus.Core incompatible with .NETFramework,Version=v4.5.2. "i want to user EPPlus.Core put when i install it i receive error One or more packages are incompatible with .NETFramework,Version=v4.5.2. my project.json: ""dependencies"": { ""BundlerMinifier.Core"": ""2.2.306"", ""Microsoft.AspNetCore.Authentication.Cookies"": ""1.1.0"", ""Microsoft.AspNetCore.Diagnostics"": ""1.1.0"", ""Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore"": ""1.1.0"", ""Microsoft.AspNetCore.Identity.EntityFrameworkCore"": ""1.1.0"", ""Microsoft.AspNetCore.Mvc"": ""1.1.0"", ""Microsoft.Extensions.CommandLineUtils"": ""1.0.0"", ""Microsoft.AspNetCore.Mvc.ViewFeatures"": ""1.1.0"", ""Microsoft.AspNetCore.Razor.Tools"": { ""version"": ""1.0.0-preview2-final"", ""type"": ""build"" }, ""Microsoft.AspNetCore.Routing"": ""1.1.0"", ""Microsoft.AspNetCore.Server.IISIntegration"": ""1.1.0"", ""Microsoft.AspNetCore.Server.Kestrel"": ""1.1.0"", ""Microsoft.AspNetCore.StaticFiles"": ""1.1.0"", ""Microsoft.EntityFrameworkCore"": ""1.1.0"", ""Microsoft.EntityFrameworkCore.Design"": ""1.1.0"", ""Microsoft.EntityFrameworkCore.SqlServer.Design"": ""1.1.0"", ""Microsoft.EntityFrameworkCore.SqlServer"": ""1.1.0"", ""Microsoft.EntityFrameworkCore.Relational"": ""1.1.0"", ""Microsoft.EntityFrameworkCore.Tools"": ""1.1.0-preview4-final"", ""Microsoft.Extensions.Configuration.EnvironmentVariables"": ""1.1.0"", ""Microsoft.Extensions.Configuration.Json"": ""1.1.0"", ""Microsoft.Extensions.Configuration.UserSecrets"": ""1.1.0"", ""Microsoft.Extensions.Logging"": ""1.1.0"", ""Microsoft.Extensions.Logging.Console"": ""1.1.0"", ""Microsoft.Extensions.Logging.Debug"": ""1.1.0"", ""Microsoft.Extensions.Options.ConfigurationExtensions"": ""1.1.0"", ""Microsoft.VisualStudio.Web.BrowserLink.Loader"": ""14.1.0"", ""Microsoft.VisualStudio.Web.CodeGeneration"": { ""version"": ""1.0.0-preview2-final"", ""type"": ""build"" }, ""Microsoft.VisualStudio.Web.CodeGenerators.Mvc"": ""1.0.0-preview2-final"", ""Microsoft.jQuery.Unobtrusive.Ajax"": ""3.2.3"", ""Microsoft.AspNetCore.Mvc.Core"": ""1.1.0"", ""Sakura.AspNetCore.Mvc.PagedList"": ""2.0.11"", ""Sakura.AspNetCore.PagedList"": ""2.0.1"", ""Sakura.AspNetCore.Mvc.TagHelpers"": ""1.2.1"", ""SendGrid.NetCore"": ""1.0.0-rtm-00002"", ""EPPlus.Core"": ""1.2.0"" }, ""frameworks"": { ""net452"": {} }, ""netcoreapp1.0"": { ""imports"": [ ""portable-net451+win8"" ], ""buildOptions"": { ""emitEntryPoint"": true }, ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.0.0-*"" } } }, ""publishOptions"": { ""include"": [ ""wwwroot"", ""**/*.cshtml"", ""appsettings.json"", ""web.config"" ] }, ""scripts"": { ""prepublish"": [ ""bower install"", ""dotnet bundle"" ], ""postpublish"": [ ""dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"" ] }, ""tools"": { ""Microsoft.AspNetCore.Razor.Tools"": ""1.0.0-preview2-final"", ""Microsoft.AspNetCore.Server.IISIntegration.Tools"": ""1.0.0-preview2-final"", ""Microsoft.EntityFrameworkCore.Tools"": ""1.0.0-preview2-final"", ""Microsoft.Extensions.SecretManager.Tools"": { ""version"": ""1.0.0-preview2-final"", ""imports"": ""portable-net45+win8+dnxcore50"" }, ""Microsoft.VisualStudio.Web.CodeGeneration.Tools"": { ""version"": ""1.0.0-preview2-final"", ""imports"": [ ""portable-net45+win8"" ] }, ""BundlerMinifier.Core"": { ""version"": ""2.1.258"", ""imports"": [ ""portable-net45+win8+wp8+wpa81"" ] } }" +15389 area-System.Linq Reduce linked node size in Enumerable.Append/Prepend/Union - For `Append` / `Prepend` the count of previous iterators isn't needed by this iterator, so we can move that stuff from the nodes to the iterators which can be GC'd on successive linked Appends/Prepends. - Similarly, all of the non-readonly state for `Union` of previous iterators isn't relevant for this iterator, so use `SingleLinkedNode` to only keep alive what we need (the sources). Additionally, all of the iterators have the same comparer so we only need to store the comparer in the latest node. - Introduce `Set.UnionWith` for brevity and move `SingleLinkedNode` into its own file. **edit:** Was finally able to run [perf tests](https://gist.github.com/jamesqo/2039702fe841a5264dd73b47c6e9efd5) for this. GCs have increased, as expected, because there is a substantial reduction in leaked memory. `Concat` and `Union` see 50-60% reductions in leaked memory, `Append` and `Prepend` about 20%. **edit 2:** Ignore the results for `Concat`, I hit a few complications there and the changes became pretty big. I'm going to save them for another PR. /cc @JonHanna @VSadov +15390 area-System.Reflection Add Sybsystem.WindowsBootApplication enum value The value is being emitted in current Windows EFI binaries. We should add to SRM Subsytem enum. ### Proposal ```C# enum Subsystem { ... WindowsBootApplication = 16 } ``` ### Details The value is documented in Windows docs: IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION 16 Boot application. https://msdn.microsoft.com/en-us/library/windows/desktop/ms680339(v=vs.85).aspx +15393 area-System.IO Add async versions of System.IO.IsolatedStorage methods Why are none of the methods in IsolatedStorageFile async. Eg, GetDirectoryNames or CreateDirectory are surely candidates for async methods (among OTHERS). +15395 area-System.Numerics "OuterLoop_Windows10_release: Test ""System.Numerics.Tests.divremTest.RunDivRemTests"" failed with ""System.Exception""" Failed test: System.Numerics.Tests.divremTest.RunDivRemTests Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win10_release/77/ Message: ~~~ System.Exception : VerifyDivRemString failed: make 92 125 192 198 117 183 180 87 56 15 18 178 228 7 181 238 94 7 185 165 233 141 178 201 200 177 252 196 42 81 206 148 34 113 177 endmake make 102 173 213 220 61 239 134 134 176 47 135 119 32 155 128 132 229 113 135 207 203 246 253 195 187 239 44 230 64 125 144 endmake bDivRem Xunit.Sdk.EqualException: Assert.Equal() Failure Expected: 0 Actual: 31122745322556859589923417330907291586 ~~~ Stack Trace: ~~~ at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.assert\Asserts\EqualityAsserts.cs:line 35 at System.Numerics.Tests.StackCalc.VerifyOutParameter() in D:\j\workspace\outerloop_win---6835b088\src\System.Runtime.Numerics\tests\BigInteger\stackcalculator.cs:line 252 at System.Numerics.Tests.divremTest.VerifyDivRemString(String opstring) in D:\j\workspace\outerloop_win---6835b088\src\System.Runtime.Numerics\tests\BigInteger\divrem.cs:line 187 ---- Assert.Equal() Failure Expected: 0 Actual: 31122745322556859589923417330907291586 ~~~ Configuration: OuterLoop_Windows10_release (build#77) +15399 area-Microsoft.CSharp Implement IEquatable on internal types used as keys. Allows for quicker equality call by default equality comparer +15401 area-Infrastructure Lots of failures while open .sln files in VS I tried to open the System.Net.Primitives.sln file in VS. I get ~40 errors about projects failing to load, the actual src .csproj ends up not loading so the source isn't editable, and the solution explorer is messed up with regards to what folders contains what projects. cc: @weshaggard +15403 area-System.Collections Immutable hash-based collections do not accept `null` values "I have spent two days chasing down an evil bug. I narrowed down the problem with this test case demonstrating different behavior for different collection classes that implement the same interface. Specifically ``Contains(null)`` throws a ``ArgumentNullException`` for ``ImmutableSortedSet`` but not for ``Array`` or the mutable ``SortedSet``. ```c# using System.Collections.Generic; using System.Collections.Immutable; using Xunit; public class SortedSetSpec { [Fact] public void WTFNullCheck() { var data = new[] {""a"", ""b"", ""c"", ""d""}; SortedSet ss = new SortedSet(data); ImmutableSortedSet iss = ss.ToImmutableSortedSet(); // This passes data.Contains(null).Should().BeFalse(); // This passes ss.Contains(null).Should().BeFalse(); // This throws an exception iss.Contains(null).Should().BeFalse(); } } ``` Given that all classes Array / SortedSet and ImmutableSortedSet implement ``ICollection`` shouldn't they have the same behavior on the ``Contains(null)`` call? The bug manifested itself when I data bound an ``ImmutableSortedSet`` to the ``ItemsSource`` property of a listbox. ```xml ``` The problem is that at some point deep in the databinding code ListBox (aka Selector ) asks the collection ``Contains(null)``?? and then it crashes if I've databound an ``ImmutableSortedSet``. So is this a bug with ``ImmutableCollections`` or with ``WPF`` or is it expected behavior and I should know better than to use ``ImmutableSortedSet``? [EDIT] Add syntax highlighting by @karelz" +15404 area-System.Threading Task.Delay and optional parameter issue Hey everybody, I don´t know exactly where to post this issue. I have the following code. ```cs public class Constants { public const int constantDefault = 100; } public async Task GetOneImage(..., int millisecondsDelay = Constants.constantDefault ) { await Task.Delay(millisecondsDelay); return await GetOneImage(...); } // Called without touching the optional parameter await GetOneImage(); ``` Starting with the last Visual Studio 2015 Update, the Code never reaches the internal GetOneImage(...). It only works if called like ```cs await Task.Delay(Constants.constantDefault); // or await Task.Delay(100); // or calling the GetOneImage like await GetOneImage(Constants.constantDefault); ``` Also not working ```cs public async Task GetOneImage(..., int millisecondsDelay = 100) { await Task.Delay(millisecondsDelay ); .... } ``` The project is a WPF application targeting .NET 4.5. Developement platform is Win 10 and Visual Studio 2015 14.0.25431.01 Update 3. The config is *Debug* and *Any CPU* Greetings! +15406 area-System.Net Remove byte[] allocation from IPAddress.{Try}Parse IPAddress.Parse and TryParse both allocate a byte[] to store the parsed address bytes, only to then have those bytes turned into either a uint or an array of ushorts. This commit eliminates the allocation, for both IPv4 and IPv6. This is relevant to TryParse even when the string isn't an address, as the array is allocated regardless. cc: @davidsh, @cipop, @geoffkizer @Priya91 +15407 area-Infrastructure Clean-up build.proj As part of https://github.com/dotnet/corefx/pull/15306 we moved the testing targets and properties into tests.builds we need to clean them out of build.proj. Things like https://github.com/dotnet/corefx/blob/master/build.proj#L74 +15408 area-Infrastructure Can't build CoreFx on Ubuntu 16.04.1 LTS - error during package restore "Hi, I tried to build CoreFx on Ubuntu 16.04.1 LTS (followed https://github.com/dotnet/corefx/blob/master/Documentation/building/unix-instructions.md) and got following errors: > Tools are already initialized > Running: /home/matekm/corefx/src/Native/build-native.sh x64 Debug Linux --numproc 1 toolSetDir=c:\tools\clr > Setting up directories for build > Checking pre-requisites... > Commencing build of corefx native components for Linux.x64.Debug > Invoking cmake with arguments: ""/home/matekm/corefx/src/Native/Unix"" DEBUG -DFEATURE_DISTRO_AGNOSTIC_SSL=0 -DCMAKE_STATIC_LIB_LINK=0 > -- Configuring done > -- Generating done > -- Build files have been written to: /home/matekm/corefx/bin/obj/Linux.x64.Debug/native > Executing make install -j 1 > [ 3%] Built target System.IO.Compression.Native > [ 27%] Built target System.Native > [ 51%] Built target System.Native-Static > [ 60%] Built target System.Net.Http.Native > [ 64%] Built target System.Net.Security.Native > [ 97%] Built target objlib > [ 98%] Built target System.Security.Cryptography.Native > [100%] Built target System.Security.Cryptography.Native.OpenSsl > Install the project... > -- Install configuration: ""DEBUG"" > -- Up-to-date: /home/matekm/corefx/src/Native/../../bin/Linux.x64.Debug/native/./System.IO.Compression.Native.so > -- Up-to-date: /home/matekm/corefx/src/Native/../../bin/Linux.x64.Debug/native/./System.Native.so > -- Up-to-date: /home/matekm/corefx/src/Native/../../bin/Linux.x64.Debug/native/./System.Native.a > -- Up-to-date: /home/matekm/corefx/src/Native/../../bin/Linux.x64.Debug/native/./System.Net.Http.Native.so > -- Up-to-date: /home/matekm/corefx/src/Native/../../bin/Linux.x64.Debug/native/./System.Net.Security.Native.so > -- Up-to-date: /home/matekm/corefx/src/Native/../../bin/Linux.x64.Debug/native/./System.Security.Cryptography.Native.so > -- Up-to-date: /home/matekm/corefx/src/Native/../../bin/Linux.x64.Debug/native/./System.Security.Cryptography.Native.OpenSsl.so > Copying native shims to vertical runtime folder. > Command execution succeeded. > Tools are already initialized > Running: /home/matekm/corefx/Tools/msbuild.sh /nologo /verbosity:minimal /clp:Summary /maxcpucount /l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log /p:ConfigurationGroup=Debug /flp:v=normal /flp2:warningsonly;logfile=msbuild.wrn /flp3:errorsonly;logfile=msbuild.err > EXEC : error : Root element is missing. [/home/matekm/corefx/src/Tools/CoreFx.Tools/CoreFx.Tools.csproj] > /home/matekm/corefx/Tools/packageresolve.targets(35,5): error MSB3073: The command """"/home/matekm/corefx/Tools/dotnetcli/dotnet"" restore --no-cache --packages ""/home/matekm/corefx/packages"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://api.nuget.org/v3/index.json ""/home/matekm/corefx/src/Tools/CoreFx.Tools/project.json"""" exited with code 1. [/home/matekm/corefx/src/Tools/CoreFx.Tools/CoreFx.Tools.csproj] > EXEC : error : Root element is missing. [/home/matekm/corefx/src/Tools/CoreFx.Tools/CoreFx.Tools.csproj] > /home/matekm/corefx/Tools/packageresolve.targets(35,5): error MSB3073: The command """"/home/matekm/corefx/Tools/dotnetcli/dotnet"" restore --no-cache --packages ""/home/matekm/corefx/packages"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://api.nuget.org/v3/index.json ""/home/matekm/corefx/src/Tools/CoreFx.Tools/project.json"""" exited with code 1. [/home/matekm/corefx/src/Tools/CoreFx.Tools/CoreFx.Tools.csproj] > /home/matekm/corefx/src/Tools/GenerateProps/GenerateProps.proj(15,5): error MSB4062: The ""GenerateConfigurationProps"" task could not be loaded from the assembly /home/matekm/corefx/Tools/CoreFx.Tools.dll. The system cannot find the file specified. > /home/matekm/corefx/src/Tools/GenerateProps/GenerateProps.proj(15,5): error MSB4062: (Exception from HRESULT: 0x80070002) Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. > /home/matekm/corefx/Tools/depProj.targets(79,5): error : Error no assets were resolved from NuGet packages. [/home/matekm/corefx/external/coreclr/coreclr.depproj] > /home/matekm/corefx/Tools/packageresolve.targets(79,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/home/matekm/corefx/external/netstandard/netstandard.depproj] > /home/matekm/corefx/Tools/packageresolve.targets(79,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/home/matekm/corefx/external/netstandard/netstandard.depproj] > /home/matekm/corefx/Tools/packageresolve.targets(79,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/home/matekm/corefx/external/netstandard/netstandard.depproj] > /home/matekm/corefx/Tools/packageresolve.targets(79,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/home/matekm/corefx/external/netstandard/netstandard.depproj] > /home/matekm/corefx/Tools/depProj.targets(79,5): error : Error no assets were resolved from NuGet packages. [/home/matekm/corefx/external/netstandard/netstandard.depproj] > /home/matekm/corefx/packages/Microsoft.TargetingPack.NETFramework.v4.6.1/1.0.1/lib/net461/System.Core.dll (Microsoft.TargetingPack.NETFramework.v4.6.1.1.0.1) -> System.Core.dll > /home/matekm/corefx/packages/Microsoft.TargetingPack.NETFramework.v4.6.1/1.0.1/lib/net461/System.Drawing.dll (Microsoft.TargetingPack.NETFramework.v4.6.1.1.0.1) -> System.Drawing.dll > /home/matekm/corefx/packages/Microsoft.TargetingPack.NETFramework.v4.6.1/1.0.1/lib/net461/System.Numerics.dll (Microsoft.TargetingPack.NETFramework.v4.6.1.1.0.1) -> System.Numerics.dll > /home/matekm/corefx/packages/Microsoft.TargetingPack.NETFramework.v4.6.1/1.0.1/lib/net461/System.Runtime.Serialization.dll (Microsoft.TargetingPack.NETFramework.v4.6.1.1.0.1) -> System.Runtime.Serialization.dll > /home/matekm/corefx/packages/Microsoft.TargetingPack.NETFramework.v4.6.1/1.0.1/lib/net461/System.Web.dll (Microsoft.TargetingPack.NETFramework.v4.6.1.1.0.1) -> System.Web.dll > /home/matekm/corefx/packages/Microsoft.TargetingPack.NETFramework.v4.6.1/1.0.1/lib/net461/System.Xml.Linq.dll (Microsoft.TargetingPack.NETFramework.v4.6.1.1.0.1) -> System.Xml.Linq.dll > /home/matekm/corefx/packages/Microsoft.TargetingPack.NETFramework.v4.6.1/1.0.1/lib/net461/System.Xml.dll (Microsoft.TargetingPack.NETFramework.v4.6.1.1.0.1) -> System.Xml.dll > /home/matekm/corefx/packages/Microsoft.TargetingPack.NETFramework.v4.6.1/1.0.1/lib/net461/System.dll (Microsoft.TargetingPack.NETFramework.v4.6.1.1.0.1) -> System.dll > /home/matekm/corefx/packages/Microsoft.TargetingPack.NETFramework.v4.6.1/1.0.1/lib/net461/mscorlib.dll (Microsoft.TargetingPack.NETFramework.v4.6.1.1.0.1) -> mscorlib.dll > EXEC : error : Package Microsoft.TargetingPack.Private.NETNative 1.1.0-beta-24911-00 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Microsoft.TargetingPack.Private.NETNative 1.1.0-beta-24911-00 supports: [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : - netcore50 (.NETCore,Version=v5.0) [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : - uap10.1 (UAP,Version=v10.1) [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : One or more packages are incompatible with .NETCoreApp,Version=v1.0. [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : Package Microsoft.TargetingPack.Private.NETNative 1.1.0-beta-24911-00 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0) / -x64. Package Microsoft.TargetingPack.Private.NETNative 1.1.0-beta-24911-00 supports: [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : - netcore50 (.NETCore,Version=v5.0) [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : - uap10.1 (UAP,Version=v10.1) [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : One or more packages are incompatible with .NETCoreApp,Version=v1.0 (-x64). [/home/matekm/corefx/external/NETNative/NETNative.depproj] > > Errors in /home/matekm/corefx/bin/obj/Linux.AnyCPU.Debug/NETNative/netcoreapp/x64/project.json > Package Microsoft.TargetingPack.Private.NETNative 1.1.0-beta-24911-00 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Microsoft.TargetingPack.Private.NETNative 1.1.0-beta-24911-00 supports: > - netcore50 (.NETCore,Version=v5.0) > - uap10.1 (UAP,Version=v10.1) > One or more packages are incompatible with .NETCoreApp,Version=v1.0. > Package Microsoft.TargetingPack.Private.NETNative 1.1.0-beta-24911-00 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0) / -x64. Package Microsoft.TargetingPack.Private.NETNative 1.1.0-beta-24911-00 supports: > - netcore50 (.NETCore,Version=v5.0) > - uap10.1 (UAP,Version=v10.1) > One or more packages are incompatible with .NETCoreApp,Version=v1.0 (-x64). > /home/matekm/corefx/Tools/packageresolve.targets(35,5): error MSB3073: The command """"/home/matekm/corefx/Tools/dotnetcli/dotnet"" restore --no-cache --packages ""/home/matekm/corefx/packages"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://api.nuget.org/v3/index.json ""/home/matekm/corefx/bin/obj/Linux.AnyCPU.Debug/NETNative/netcoreapp/x64/project.json"""" exited with code 1. [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : Root element is missing. [/home/matekm/corefx/external/test-runtime/XUnit.Runtime.depproj] > /home/matekm/corefx/Tools/packageresolve.targets(35,5): error MSB3073: The command """"/home/matekm/corefx/Tools/dotnetcli/dotnet"" restore --no-cache --packages ""/home/matekm/corefx/packages"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://api.nuget.org/v3/index.json ""/home/matekm/corefx/external/test-runtime/project.json"""" exited with code 1. [/home/matekm/corefx/external/test-runtime/XUnit.Runtime.depproj] > > /home/matekm/corefx/Tools/packageresolve.targets(79,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/home/matekm/corefx/external/netstandard/netstandard.depproj] > /home/matekm/corefx/Tools/packageresolve.targets(79,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/home/matekm/corefx/external/netstandard/netstandard.depproj] > /home/matekm/corefx/Tools/packageresolve.targets(79,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/home/matekm/corefx/external/netstandard/netstandard.depproj] > /home/matekm/corefx/Tools/packageresolve.targets(79,5): warning : Your project is not referencing the "".NETCoreApp,Version=v1.0"" framework. Add a reference to "".NETCoreApp,Version=v1.0"" in the ""frameworks"" section of your project.json, and then re-run NuGet restore. [/home/matekm/corefx/external/netstandard/netstandard.depproj] > EXEC : error : Root element is missing. [/home/matekm/corefx/src/Tools/CoreFx.Tools/CoreFx.Tools.csproj] > /home/matekm/corefx/Tools/packageresolve.targets(35,5): error MSB3073: The command """"/home/matekm/corefx/Tools/dotnetcli/dotnet"" restore --no-cache --packages ""/home/matekm/corefx/packages"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://api.nuget.org/v3/index.json ""/home/matekm/corefx/src/Tools/CoreFx.Tools/project.json"""" exited with code 1. [/home/matekm/corefx/src/Tools/CoreFx.Tools/CoreFx.Tools.csproj] > EXEC : error : Root element is missing. [/home/matekm/corefx/src/Tools/CoreFx.Tools/CoreFx.Tools.csproj] > /home/matekm/corefx/Tools/packageresolve.targets(35,5): error MSB3073: The command """"/home/matekm/corefx/Tools/dotnetcli/dotnet"" restore --no-cache --packages ""/home/matekm/corefx/packages"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://api.nuget.org/v3/index.json ""/home/matekm/corefx/src/Tools/CoreFx.Tools/project.json"""" exited with code 1. [/home/matekm/corefx/src/Tools/CoreFx.Tools/CoreFx.Tools.csproj] > /home/matekm/corefx/src/Tools/GenerateProps/GenerateProps.proj(15,5): error MSB4062: The ""GenerateConfigurationProps"" task could not be loaded from the assembly /home/matekm/corefx/Tools/CoreFx.Tools.dll. The system cannot find the file specified. > /home/matekm/corefx/src/Tools/GenerateProps/GenerateProps.proj(15,5): error MSB4062: (Exception from HRESULT: 0x80070002) Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. > /home/matekm/corefx/Tools/depProj.targets(79,5): error : Error no assets were resolved from NuGet packages. [/home/matekm/corefx/external/coreclr/coreclr.depproj] > /home/matekm/corefx/Tools/depProj.targets(79,5): error : Error no assets were resolved from NuGet packages. [/home/matekm/corefx/external/netstandard/netstandard.depproj] > EXEC : error : Package Microsoft.TargetingPack.Private.NETNative 1.1.0-beta-24911-00 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Microsoft.TargetingPack.Private.NETNative 1.1.0-beta-24911-00 supports: [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : - netcore50 (.NETCore,Version=v5.0) [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : - uap10.1 (UAP,Version=v10.1) [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : One or more packages are incompatible with .NETCoreApp,Version=v1.0. [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : Package Microsoft.TargetingPack.Private.NETNative 1.1.0-beta-24911-00 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0) / -x64. Package Microsoft.TargetingPack.Private.NETNative 1.1.0-beta-24911-00 supports: [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : - netcore50 (.NETCore,Version=v5.0) [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : - uap10.1 (UAP,Version=v10.1) [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : One or more packages are incompatible with .NETCoreApp,Version=v1.0 (-x64). [/home/matekm/corefx/external/NETNative/NETNative.depproj] > /home/matekm/corefx/Tools/packageresolve.targets(35,5): error MSB3073: The command """"/home/matekm/corefx/Tools/dotnetcli/dotnet"" restore --no-cache --packages ""/home/matekm/corefx/packages"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://api.nuget.org/v3/index.json ""/home/matekm/corefx/bin/obj/Linux.AnyCPU.Debug/NETNative/netcoreapp/x64/project.json"""" exited with code 1. [/home/matekm/corefx/external/NETNative/NETNative.depproj] > EXEC : error : Root element is missing. [/home/matekm/corefx/external/test-runtime/XUnit.Runtime.depproj] > /home/matekm/corefx/Tools/packageresolve.targets(35,5): error MSB3073: The command """"/home/matekm/corefx/Tools/dotnetcli/dotnet"" restore --no-cache --packages ""/home/matekm/corefx/packages"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://api.nuget.org/v3/index.json ""/home/matekm/corefx/external/test-runtime/project.json"""" exited with code 1. [/home/matekm/corefx/external/test-runtime/XUnit.Runtime.depproj] > Command execution failed with exit code 1. Ubuntu details: > Distributor ID: Ubuntu > Description: Ubuntu 16.04.1 LTS > Release: 16.04 > Codename: xenial > I know it's probably problem with me, not the corefx but I would appreciate some help;)" +15409 area-System.Net Skip websocket testing on Windows 7. fixes #15380 cc @CIPop +15410 area-System.Collections SortedSetEqualityComparer seems to ignore the comparer from CreateSetComparer Discovered during #15376 [`SortedSetEqualityComparer`](https://github.com/dotnet/corefx/blob/adb0f13d7aafdbee95ae13f970c8ad25f77558c5/src/System.Collections/src/System/Collections/Generic/SortedSet.cs#L2631) has a `_comparer` field that is always set to the `Comparer.Default`. This is because although it has a constructor that allows a different comparer to be passed in, that constructor is never actually called. And during `Equals`, it uses that default comparer for comparing two sorted sets and leaves the equality comparer which was handed to it from `CreateSetComparer` completely out of the equation. The fix would be to remove the `_comparer` field and use the equality comparer for everything. +15411 area-Meta Cleanup: remove empty try's We have about 20 instances of `try { }` See https://github.com/dotnet/coreclr/issues/8924. The PR https://github.com/dotnet/coreclr/pull/8949 makes sure they are not represented in generated code so this is just minor code cleanup. +15412 area-System.Memory Add GC reporting test for `Span` +15413 area-System.Collections Deduplicate lots of AVL tree implementations in System.Collections.Immutable I am in the process of separating out some immutable collection types into new files, and I counted 4 different AVL tree implementations in the assembly-- one in `ImmutableList`, one in `ImmutableSortedDictionary`, one in `ImmutableSortedSet`, and one in `SortedInt32KeyNode`. Many of the methods in one file look like they're copied and pasted from another, which is definitely not ideal. (e.g. Remove operations: [ISS](https://github.com/dotnet/corefx/blob/51c048850ab38fe9618592b04a29e52a44534039/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableSortedSet_1.cs#L1801), [ISD](https://github.com/dotnet/corefx/blob/51c048850ab38fe9618592b04a29e52a44534039/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableSortedDictionary_2.cs#L1884), [IL](https://github.com/dotnet/corefx/blob/51c048850ab38fe9618592b04a29e52a44534039/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableList_1.cs#L2141), [SI32KN](https://github.com/dotnet/corefx/blob/51c048850ab38fe9618592b04a29e52a44534039/src/System.Collections.Immutable/src/System/Collections/Immutable/SortedInt32KeyNode.cs#L463)) ## Possible solutions - One way I can think of to work around this is to have one `AvlNode` class that contains all of the central logic. All of the other node types can be converted to one-field struct wrappers around this type that implement their custom logic, e.g. ```c# public sealed class AvlNode { // Tree balancing operations, MutateRight/Left, field declarations for _height/_left/_right, etc. } public class ImmutableList { public struct Node : IBinaryTree, IEnumerable { private readonly AvlNode _underlying; // Methods that make sense for ImmutableList's Node } } ``` As long as we keep the struct one field long, we should not suffer from a perf hit because the JIT generates really good code for tiny struct wrappers. Additionally, we get to keep the underlying node type sealed. **Complications:** One caveat that this approach would have is that a nil (an actual nil, not an empty) node would now be represented as a default struct instead of null. So we'd likely have to introduce `IsDefault`, `IsEmpty`, and `IsDefaultOrEmpty` properties for each struct node type and change all of the call sites/asserts to use those. Another is that since the types are now structs they will be boxed at any call sites they are being used as an interface, for example `IBinaryTree` / `IEnumerable` in the above example. I don't expect there are many of those call sites though (if I understood the code correctly, `IBinaryTree` is for testing purposes?) so maybe that won't be an issue. /cc @ianhays @AArnott, please let me know what you think of this solution. +15414 area-System.Reflection Bring back System.Reflection.Emit.TypeBuilder.CreateType API +15416 area-System.Collections Split up some immutable collection types into new files I found it unwieldy to scroll through some immutable collection files like `ImmutableSortedDictionary_2.cs`, which currently contains over 2000 lines of code. So I decided to split out a bunch of nested types into new files for that and some other types. You can view the full list of files in the `.csproj` diff; each debugger proxy/enumerator/AVL tree implementation gets its own file. /cc @AArnott @ianhays +15419 area-System.Data "[CI Failure] System.Data.SqlClient.TdsParser.TryProcessError: ""class and token don't match!""" An assert seems to be getting hit here: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/2356/consoleFull ``` 17:57:15 Discovering: System.Runtime.Loader.DefaultContext.Tests 17:57:16 class and token don't match! 17:57:16 17:57:16 at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 17:57:16 at System.Environment.get_StackTrace() 17:57:16 at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 17:57:16 at System.Diagnostics.Debug.Assert(Boolean condition, String message) 17:57:16 at System.Data.SqlClient.TdsParser.TryProcessError(Byte token, TdsParserStateObject stateObj, SqlError& error) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs:line 3035 17:57:16 at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs:line 1716 17:57:16 at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs:line 1913 17:57:16 at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite, String methodName) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs:line 1104 17:57:16 at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs:line 821 17:57:16 at System.Data.SqlClient.Tests.DiagnosticTest.b__9_0() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs:line 101 17:57:16 at System.Data.SqlClient.Tests.DiagnosticTest.CollectStatisticsDiagnostics(Action sqlOperation) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs:line 585 17:57:16 at System.Data.SqlClient.Tests.DiagnosticTest.ExecuteNonQueryErrorTest() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs:line 92 ``` +15421 area-System.Security "OuterLoop_Win7_Debug: ""WellKnownSidTypeTests"" failed: need to disable tests when not a domain user" Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win7_debug/lastFailedBuild/consoleText Failed test: WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType Message: ~~~ System.ArgumentNullException : The domainSid parameter must be specified for creating well-known SID of type AccountPolicyAdminsSid. Parameter name: domainSid ~~~ Stack Trace: ~~~ D:\j\workspace\outerloop_win---b280fd23\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(628,0): at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) D:\j\workspace\outerloop_win---b280fd23\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(114,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) ~~~ Message: ~~~ System.ArgumentException : The parameter is incorrect Parameter name: sidType/domainSid ~~~ Stack Trace: ~~~ D:\j\workspace\outerloop_win---b280fd23\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(662,0): at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) D:\j\workspace\outerloop_win---b280fd23\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(114,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) ~~~ Configuration: OuterLoop_Windows7_debug (build#75) +15424 area-System.Data System.Data.SqlClient hangs on Linux (Docker) with SQL Server 2005 "We are observing a wierd behaviour with System.Data.SqlClient and Linux (Debian Jessie / Docker with microsoft/aspnetcore:1.1.0). When connecting to an SQL Server 2016 instance everything works fine. When connecting to SQL Server 2005, our application hangs indefinitely. Sometimes, an InvalidOperationException occurs stating: ""The timeout period elapsed prior to obtaining a connection from the pool."". Everything works as expected on Windows. Maybe a similar issue to #15287?" +15427 area-Infrastructure Use bootstrap.ps1/sh instead of init-tools.cmd/sh Right now, CoreFX uses `init-tools.cmd` and `init-tools.sh` to restore and set up BuildTools. There is a new BuildTools setup flow that CLI and BuildTools use called bootstrap that allows significantly more code sharing by directly downloading a BuildTools script which handles further steps. This reduces the complexity in CoreFX itself and reduces the chance the BuildTools init flow diverges from other repositories' (like CoreCLR's). The bootstrap flow is also easier to improve, because the improvements only need to be done in one place rather than being ported across many repos. See https://github.com/dotnet/buildtools/issues/558. Living list of things that should be fixed before CoreFX adoption (feel free to edit): * Make script download repeatable. Currently it downloads the latest in a branch, but a commit hash should be used. This is the case for the bootstrap.ps1/sh download and the dotnet-install.ps1/sh download inside the bootstrap script. https://github.com/dotnet/buildtools/issues/1225 * A change in CLI version but not BuildTools doesn't re-init the `Tools` directory. https://github.com/dotnet/buildtools/issues/1192 Any other known issues pre-CoreFX adoption, @weshaggard @crummel ? /cc @ellismg @dleeapho @markwilkie +15429 area-Infrastructure CodeCoverage target clean-up See https://github.com/dotnet/corefx/pull/15397#discussion_r97456921. We should not have people referencing properties/items that begin with an underscore in projects those are intended to be private properties in targets. https://github.com/dotnet/corefx/blob/7642f1f980fb0e8fa45f67769e0755a97df7b4d5/Tools-Override/CodeCoverage.targets#L44 We should provide a non-private property or item group that folks can use to configure their project. +15430 area-System.Net Implement WebSocket Compression https://tools.ietf.org/html/rfc7692 https://github.com/aspnet/WebSockets/issues/19 Implementation notes: The System.Net.WebSockets.WebSocket.SendAsync API is poorly suited to compression/extension. Compression is a per-message flag set on the first frame using the RSV1 bit. SendAsync sends frames and only takes the buffer, message type, an EndOfMessage bool, and a cancellationToken. There's no simple way to indicate if the data is or should be compressed / transformed. Possible solutions: - Enable compression for all messages, don't provide a per message option - Add a new overload of SendAsync with a compression / RSV1 flag. (Requires changing the core WebSocket abstraction) - Add a property to WebSocket bool CompressOutput that can be toggled between messages (Requires changing the core WebSocket abstraction) - Overload WebSocketMessageType with CompressedBinary and CompressedText. As an enum we may be able to temporarily pass data through here by casting non-standard values. The enum values already do not map directly to the WebSocket frame type values. ReceiveAsync is easier, it could: - Decompress the content internally - Add a flag to WebSocketReceiveResult indicating if the content was compressed. - Use the same WebSocketMessageType overloads from above indicating if the content is compressed (but only if it does not decompress it internally, don't want to confuse consumers). The compression extension could not be correctly implemented as wrapper over the current WebSocket API due to the framing requirement. Compression either needs to be built in or the API needs to expose additional frame fields (e.g. RSV1). +15431 area-System.Data Resolved connection leak in SNI by adding dispose for underlying TCPstream in SNITcpHandle.Dispose() Fix for SqlConnection TCP connection leak. Copied from master branch PR https://github.com/dotnet/corefx/pull/13653 Originally caused by https://github.com/dotnet/corefx/commit/30abd30421289509cd3bd18a9114501afdc0fb7c which removed a TcpClient.Dispose() in SNITcpHandle This is a fix for https://github.com/dotnet/corefx/issues/13422 +15432 area-System.Net Reduce HttpClient overheads on Unix This PR provides several commits for improving HttpClient performance on Unix (some apply to Windows as well): - When POST'ing data via HttpClient, even if only a small amount of content, libcurl ends up sending out two packets for the request. A commit adds an optimization whereby if a ByteArrayContent (or derived content type) is used such that we have all of the content in-memory and don't need to read from the content stream, we can instead provide the data to libcurl in advance. This both lets it optimize the size of its writes (and thus the number of packets) and lets us avoid the overhead of the machinery involved in having libcurl pull from the request content stream. - Both CurlHandler and WinHttpHandler know about a set of headers for which we have constant strings available, and they avoid allocating strings for such headers. But CurlHandler has a bug where it passes in the wrong span, which means it always fails to match, and ends up allocating the string anyway. - When CurlResponseStream is used from a consumer that uses Begin/EndRead, these calls end up going to the base implementation, which queues a work item that calls Read, which in turn calls ReadAsync and blocks waiting for it to complete. The fix is to just override Begin/EndRead and wrap ReadAsync directly. - Getting the request content stream is resulting in a fair number of unnecessary allocations and delegate invocations for a common case where the stream is returned synchronously. - Lots of intermediate string values are getting allocated when rendering headers to strings. This change uses StringBuffer and StringBufferCache to avoid most of them. - When rendering headers, we're often making multiple calls to GetValuesAsStrings indirectly when we can get away with just one call (and resulting string[] allocation). - Every request is allocating a Uri based on the actual url libcurl reports, but we only need to do that if it's actually changed. - There's no need to do certificate revocation checking when the client is building a chain for its own certs. But it's taking a significant chunk of time... one of our outerloop tests is frequently timing out even as a result. cc: @mikeharder, @cesarbs, @davidsh, @cipop, @geoffkizer, @bartonjs @Priya91 +15434 area-System.Memory S.M.Span: Handle OutOfMemoryException in longer-than-uint-MaxValue Clear tests Handle OutOfMemoryException in longer-than-uint-MaxValue Clear test by catching the exception and skipping. Close #15348 cc @AtsushiKan @jkotas @danmosemsft +15435 area-System.Drawing Implement IEquatable interface on System.Drawing structs. Fixes #5255 +15436 area-System.Security System.Security.Principal.Windows tests fail when running as admin While running the System.Security.Principal.Windows tests fail when running as admin. ``` D:\git\corefx\bin/Windows_NT.AnyCPU.Debug/System.Security.Principal.Windows.Tests/netstandard//RunTests.cmd D:\git\corefx\Tools/testdotnetcli (TaskId:89) Using D:\git\corefx\Tools\testdotnetcli as the test runtime folder. (TaskId:89) Executing in D:\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Security.Principal.Windows.Tests\netstandard\ (TaskId:89) Running tests... Start time: 11:30:23.61 (TaskId:89) Command(s): (TaskId:89) call D:\git\corefx\Tools\testdotnetcli\dotnet.exe xunit.console.netcore.exe System.Security.Principal.Windows.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonwindowstests (TaskId:89) xUnit.net console test runner (64-bit .NET Core) (TaskId:89) Copyright (C) 2014 Outercurve Foundation. (TaskId:89) (TaskId:89) Discovering: System.Security.Principal.Windows.Tests (TaskId:89) Discovered: System.Security.Principal.Windows.Tests (TaskId:89) Starting: System.Security.Principal.Windows.Tests (TaskId:89) WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(sidType: AccountRasAndIasServersSid) [FAIL] (TaskId:89) System.ArgumentNullException : The domainSid parameter must be specified for creating well-known SID of type AccountRasAndIasServersSid. (TaskId:89) Parameter name: domainSid (TaskId:89) Stack Trace: (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(628,0): at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(114,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) (TaskId:89) WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(sidType: AccountPolicyAdminsSid) [FAIL] (TaskId:89) System.ArgumentNullException : The domainSid parameter must be specified for creating well-known SID of type AccountPolicyAdminsSid. (TaskId:89) Parameter name: domainSid (TaskId:89) Stack Trace: (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(628,0): at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(114,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) (TaskId:89) WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(sidType: AccountEnterpriseAdminsSid) [FAIL] (TaskId:89) System.ArgumentNullException : The domainSid parameter must be specified for creating well-known SID of type AccountEnterpriseAdminsSid. (TaskId:89) Parameter name: domainSid (TaskId:89) Stack Trace: (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(628,0): at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(114,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) (TaskId:89) WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(sidType: WinNewEnterpriseReadonlyControllersSid) [FAIL] (TaskId:89) System.ArgumentException : The parameter is incorrect (TaskId:89) Parameter name: sidType/domainSid (TaskId:89) Stack Trace: (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(662,0): at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(114,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) (TaskId:89) WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(sidType: WinAccountReadonlyControllersSid) [FAIL] (TaskId:89) System.ArgumentException : The parameter is incorrect (TaskId:89) Parameter name: sidType/domainSid (TaskId:89) Stack Trace: (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(662,0): at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(114,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) (TaskId:89) WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(sidType: WinNonCacheablePrincipalsGroupSid) [FAIL] (TaskId:89) System.ArgumentException : The parameter is incorrect (TaskId:89) Parameter name: sidType/domainSid (TaskId:89) Stack Trace: (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(662,0): at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(114,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) (TaskId:89) WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(sidType: WinCacheablePrincipalsGroupSid) [FAIL] (TaskId:89) System.ArgumentException : The parameter is incorrect (TaskId:89) Parameter name: sidType/domainSid (TaskId:89) Stack Trace: (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(662,0): at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(114,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) (TaskId:89) WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(sidType: AccountSchemaAdminsSid) [FAIL] (TaskId:89) System.ArgumentNullException : The domainSid parameter must be specified for creating well-known SID of type AccountSchemaAdminsSid. (TaskId:89) Parameter name: domainSid (TaskId:89) Stack Trace: (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(628,0): at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(114,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) (TaskId:89) WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(sidType: AccountControllersSid) [FAIL] (TaskId:89) System.ArgumentNullException : The domainSid parameter must be specified for creating well-known SID of type AccountControllersSid. (TaskId:89) Parameter name: domainSid (TaskId:89) Stack Trace: (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(628,0): at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(114,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) (TaskId:89) WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(sidType: AccountComputersSid) [FAIL] (TaskId:89) System.ArgumentNullException : The domainSid parameter must be specified for creating well-known SID of type AccountComputersSid. (TaskId:89) Parameter name: domainSid (TaskId:89) Stack Trace: (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(628,0): at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(114,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) (TaskId:89) WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(sidType: AccountDomainGuestsSid) [FAIL] (TaskId:89) System.ArgumentNullException : The domainSid parameter must be specified for creating well-known SID of type AccountDomainGuestsSid. (TaskId:89) Parameter name: domainSid (TaskId:89) Stack Trace: (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(628,0): at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) (TaskId:89) D:\git\corefx\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(114,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) (TaskId:89) WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(sidType: AccountDomainUsersSid) [FAIL] (TaskId:89) Finished: System.Security.Principal.Windows.Tests (TaskId:89) ``` On my local machine some of the tests are still failing for me because currentDomainSid (https://github.com/dotnet/corefx/blob/master/src/System.Security.Principal.Windows/tests/WellKnownSidTypeTests.cs#L113) is null, which causes some of the SID checks to fail. I believe for some reason that is null on my local runs because I'm running them as admin. If I run them as non-admin they pass. I don't know enough about the identity space to understand why that is the case but we should try and make sure all our tests pass correctly in both admin and non-admin mode, even if they are partitioned in some way between the two. cc @karelz @couven92 +15437 area-Infrastructure Update BuildTools version to 1.0.27-prerelease-01224-01 cc: @MattGal +15440 area-Infrastructure Add argument that disables symbol stripping (Edit, note: this PR changed directions to add an argument that enables symbol stripping, and disable it otherwise.) Adds a flag that can be passed to the build to disable symbol stripping. Pass `noStripSymbols` to `src/Native/build-native.sh`, or pass `-noStripSymbols` to `build.sh` or `build-native.sh`. `build.sh` will try to pass it to `build-managed.sh`, so I have it no-op in the managed build. If native symbols aren't stripped, no symbol package is created and the build exits normally. This is the same behavior as a Debug build, which never strips symbols due to the RELEASE check in the CMake file. The flag is negative to preserve official build behavior. To clean that up, I could change it to `stripSymbols` and make the official builds pass it in. We could remove the RELEASE flag check, then. @ellismg @chcosta Think that's a good way to go? One thing I noticed about this is that CMake doesn't rebuild when I change whether or not I pass `noStripSymbols`. I don't know if this is a big issue. I think the cause is conditionally doing `add_custom_command`, because we aren't giving CMake a way to tell if the command's been done given the input arguments. I can look at fixing that before merging this PR if it's important. +15441 area-Infrastructure Allow AdditionalCodeCoverageAssemblies to be specified in project files Fixes #15429 @weshaggard @JonHanna +15443 area-Meta Remove calls to Contract methods/or change to Debug.Assert as appropriate There are a bunch of calls to `Contract` methods in corefx: see [gist][1]. Since CONTRACTS_FULL is not defined and the contract rewriter is not used, it's dead code. All methods that assert something (such as `Ensures`) should be replaced with asserts where practical, and all calls to `EndContractBlock` can be deleted. Context for this issue: https://github.com/dotnet/corefx/issues/11596#issuecomment-274986502 +15445 area-Infrastructure ApiCompatBaseline files are being regenerated differently outside Windows When I build on Ubuntu 16.04, two ApiCompatBaseline.txt files are being regenerated, but they aren't when I build on Windows (or presumably when anyone builds on Windows). Here is the diff that gets created: https://github.com/mellinoe/corefx/commit/d874d888467bc6eaf0389cc9d6b6957227ce0d80 It looks like the elements are being written in a different order. On top of that, there does seem to be some inconsistency [related to the signing key](https://github.com/mellinoe/corefx/commit/d874d888467bc6eaf0389cc9d6b6957227ce0d80#diff-0caf4b2ecb4243f5ded14afbef2d9754R1) used for System.IO.Compression.ZipFile? @weshaggard +15446 area-System.Linq Use TryEnsureSufficientExecutionStack in Expressions. Instead of catching exception from TryEnsureSufficientExecutionStack. Fixes #11556 If `MaxExecutionStackCount` is hit this just lets the caller try to use the current stack. This changes the behaviour with code that pushes past the limit of the stack guard from throwing `InsufficientExecutionStackException` to throwing `StackOverflowException` (unless the caller was *really* lucky!). This seems reasonable in that it should be rare, is what more developers would expect from the sort of deeply recursive code that could do that, and is what would have happened prior to #11091, except it'll have gone through 1024 stacks' worth of calls before it does so. The exception could be easily changed to ``InsufficientExecutionStackException` if preferred. +15448 area-Infrastructure Update CoreClr, CoreFx, ProjectNTfs to beta-24925-05, beta-24925-02, beta-24925-00, respectively (master) +15451 area-System.IO Add drvfs and lxfs to GetDriveType Fixes https://github.com/dotnet/corefx/issues/11570 cc: @karelz, @weshaggard +15453 area-System.Runtime Enum Improvements "Enums are essential commonly used types but have several areas in need of improvement. For each non-generic `Enum` method there should be an equivalent generic version. There should be better support for flag enums, bit-masked enums with the `FlagsAttribute` applied. The performance of `Enum`'s methods that utilize reflection should be improved. Support for enum validation should be improved to support flag enums. Additionally, there should be added direct support for the retrieval of `Attribute`s applied to enum members. ## Rationale and Usage 1. Nearly all of `Enum`'s static methods are non-generic leading to the following issues. * Requires boxing for methods with enum input parameters losing type-safety, eg. `IsDefined` and `GetName`. * Requires casting/unboxing for methods with an enum return value, eg. `ToObject`, `Parse`, and `GetValues`. * Requires the enum type to be explicitly specified as an argument. * Requires invocation using static method syntax. 2. Support for flag enums is limited to just the `HasFlag` method which isn't type-safe, is inefficient, and is ambiguous as to whether it indicates if the value has all or any of the specified flags. It's also visible to all enum values whether it's a flag enum or not. 3. Many of `Enum`'s methods use reflection on each invocation instead of caching the reflection results leading to poor performance. 4. Built-in support for enum validation is currently limited to the `IsDefined` method which doesn't support flag enum combinations and is inefficient due to a lack of caching of reflection results. 5. The pattern to associate extra data with an enum member using `Attribute`s is not directly supported and instead requires users to manually retrieve the `Attribute`s via reflection. This pattern is commonly used on enums using the `DescriptionAttribute`, `EnumMemberAttribute`, and `DisplayAttribute`. With this proposal implemented what used to be this to validate a standard enum value ```c# MyEnum value = ???; bool isValid = Enum.IsDefined(typeof(MyEnum), value); ``` now becomes this ```c# MyEnum value = ???; bool isValid = value.IsDefined(); ``` And what used to be this to validate a flag enum value ```c# MyFlagEnum value = ???; bool isValid = (value & Enum.GetValues(typeof(MyFlagEnum)) .Cast() .Aggregate((working, next) => working | next)) == value; ``` now becomes just this ```c# MyFlagEnum value = ???; bool isValid = value.IsValidFlagCombination(); ``` And what used to be this to retrieve both the names and values of an enum's members ```c# var values = (MyEnum[])Enum.GetValues(typeof(MyEnum)); var names = Enum.GetNames(typeof(MyEnum)); for (int i = 0; i < values.Length; ++i) { MyEnum value = values[i]; string name = names[i]; } ``` now becomes this ```c# foreach (var member in Enum.GetMembers()) { MyEnum value = member.Value; string name = member.Name; } ``` And what used to be this to retrieve the `DescriptionAttribute.Description` of an enum member ```c# MyEnum value = ???; string description = ((DescriptionAttribute)Attribute.GetCustomAttribute( typeof(MyEnum).GetField(value.ToString()), typeof(DescriptionAttribute), false))?.Description; ``` now becomes this ```c# MyEnum value = ???; string description = value.GetAttributes()?.Get()?.Description; ``` With this implemented it will address #594, #693, #10692, #10908, and #11073. ## Proposed API I've split this proposal up into a base API addition as well as an `EnumMember` support addition in case `EnumMember` support is decided not to be desired for `corefx`. ### Base ```diff namespace System { public abstract class Enum : ValueType, IComparable, IConvertible, IFormattable { - public bool HasFlag(Enum flag); + [Obsolete(""Use FlagEnum.HasAllFlags or FlagEnum.HasAnyFlags instead""), EditorBrowsable(EditorBrowsableState.Never)] public bool HasFlag(Enum flag); - public static TEnum Parse(string value) where TEnum : struct; + public static TEnum Parse(string value) where TEnum : struct, Enum; - public static TEnum Parse(string value, bool ignoreCase) where TEnum : struct; + public static TEnum Parse(string value, bool ignoreCase) where TEnum : struct, Enum; - public static bool TryParse(string value, out TEnum result) where TEnum : struct; + public static bool TryParse(string value, out TEnum result) where TEnum : struct, Enum; - public static bool TryParse(string value, bool ignoreCase, out TEnum result) where TEnum : struct; + public static bool TryParse(string value, bool ignoreCase, out TEnum result) where TEnum : struct, Enum; // Generic versions of existing methods + public static int CompareTo(this TEnum value, TEnum other) where TEnum : struct, Enum; + public static bool Equals(this TEnum value, TEnum other) where TEnum : struct, Enum; + public static string Format(TEnum value, string format) where TEnum : struct, Enum; + public static string GetName(this TEnum value) where TEnum : struct, Enum; + public static IEnumerable GetNames() where TEnum : struct, Enum; + public static Type GetUnderlyingType() where TEnum : struct, Enum; + public static IEnumerable GetValues() where TEnum : struct, Enum; + public static bool IsDefined(this TEnum value) where TEnum : struct, Enum; + public static byte ToByte(TEnum value) where TEnum : struct, Enum; + public static short ToInt16(TEnum value) where TEnum : struct, Enum; + public static int ToInt32(TEnum value) where TEnum : struct, Enum; + public static long ToInt64(TEnum value) where TEnum : struct, Enum; + public static TEnum ToObject(object value) where TEnum : struct, Enum; + public static TEnum ToObject(sbyte value) where TEnum : struct, Enum; + public static TEnum ToObject(byte value) where TEnum : struct, Enum; + public static TEnum ToObject(short value) where TEnum : struct, Enum; + public static TEnum ToObject(ushort value) where TEnum : struct, Enum; + public static TEnum ToObject(int value) where TEnum : struct, Enum; + public static TEnum ToObject(uint value) where TEnum : struct, Enum; + public static TEnum ToObject(long value) where TEnum : struct, Enum; + public static TEnum ToObject(ulong value) where TEnum : struct, Enum; + public static sbyte ToSByte(TEnum value) where TEnum : struct, Enum; + public static string ToString(TEnum value) where TEnum : struct, Enum; + public static string ToString(TEnum value, string format) where TEnum : struct, Enum; + public static ushort ToUInt16(TEnum value) where TEnum : struct, Enum; + public static uint ToUInt32(TEnum value) where TEnum : struct, Enum; + public static ulong ToUInt64(TEnum value) where TEnum : struct, Enum; } } // Separate namespace and class to make flag enum extension methods' visibility optional +namespace System.Flags { + public static class FlagEnum { // Generic API + public static TEnum AllFlags() where TEnum : struct, Enum; + public static TEnum CombineFlags(this TEnum value, TEnum flags) where TEnum : struct, Enum; + public static TEnum CombineFlags(TEnum flag0, TEnum flag1, TEnum flag2) where TEnum : struct, Enum; + public static TEnum CombineFlags(TEnum flag0, TEnum flag1, TEnum flag2, TEnum flag3) where TEnum : struct, Enum; + public static TEnum CombineFlags(TEnum flag0, TEnum flag1, TEnum flag2, TEnum flag3, TEnum flag4) where TEnum : struct, Enum; + public static TEnum CombineFlags(params TEnum[] flags) where TEnum : struct, Enum; + public static TEnum CombineFlags(IEnumerable flags) where TEnum : struct, Enum; + public static TEnum CommonFlags(this TEnum value, TEnum flags) where TEnum : struct, Enum; + public static IEnumerable GetFlags(this TEnum value) where TEnum : struct, Enum; + public static bool HasAllFlags(this TEnum value) where TEnum : struct, Enum; + public static bool HasAllFlags(this TEnum value, TEnum flags) where TEnum : struct, Enum; + public static bool HasAnyFlags(this TEnum value) where TEnum : struct, Enum; + public static bool HasAnyFlags(this TEnum value, TEnum flags) where TEnum : struct, Enum; + public static bool IsFlagEnum() where TEnum : struct, Enum; + public static bool IsValidFlagCombination(this TEnum value) where TEnum : struct, Enum; + public static TEnum RemoveFlags(this TEnum value, TEnum flags) where TEnum : struct, Enum; // Non-Generic API + public static object AllFlags(Type enumType); + public static object CombineFlags(Type enumType, object value, object flags); + public static object CombineFlags(Type enumType, params object[] flags); + public static object CombineFlags(Type enumType, IEnumerable flags); + public static object CommonFlags(Type enumType, object value, object flags); + public static IEnumerable GetFlags(Type enumType, object value); + public static bool HasAllFlags(Type enumType, object value); + public static bool HasAllFlags(Type enumType, object value, object flags); + public static bool HasAnyFlags(Type enumType, object value); + public static bool HasAnyFlags(Type enumType, object value, object flags); + public static bool IsFlagEnum(Type enumType); + public static bool IsValidFlagCombination(Type enumType, object value); + public static object RemoveFlags(Type enumType, object value, object flags); + } +} namespace System.ComponentModel { + public sealed class PrimaryAttribute : Attribute { + public PrimaryAttribute(); + } } ``` ### `EnumMember` Support ```diff namespace System { public abstract class Enum : ValueType, IComparable, IConvertible, IFormattable { // New Generic API + public static ComponentModel.AttributeCollection GetAttributes(this TEnum value) where TEnum : struct, Enum; + public static EnumMember GetMember(this TEnum value) where TEnum : struct, Enum; + public static EnumMember GetMember(string name) where TEnum : struct, Enum; + public static EnumMember GetMember(string name, bool ignoreCase) where TEnum : struct, Enum; + public static IEnumerable> GetMembers() where TEnum : struct, Enum; // New Non-Generic API + public static ComponentModel.AttributeCollection GetAttributes(Type enumType, object value); + public static EnumMember GetMember(Type enumType, object value) + public static EnumMember GetMember(Type enumType, string name); + public static EnumMember GetMember(Type enumType, string name, bool ignoreCase); + public static IEnumerable GetMembers(Type enumType); } + public abstract class EnumMember : IEquatable, IComparable, IComparable, IConvertible, IFormattable { + public ComponentModel.AttributeCollection Attributes { get; } + public string Name { get; } + public object Value { get; } + public bool Equals(EnumMember other); + public sealed override bool Equals(object other); + public sealed override int GetHashCode(); + public sealed override string ToString(); + public string ToString(string format); + } + public abstract class EnumMember : EnumMember, IEquatable>, IComparable> { + public new TEnum Value { get; } + public bool Equals(EnumMember other); + } } namespace System.ComponentModel { - public class AttributeCollection : ICollection, IEnumerable + public class AttributeCollection : ICollection, IEnumerable, IList, IReadOnlyList { + public TAttribute Get() where TAttribute : Attribute; + public Attribute Get(Type attributeType); + public IEnumerable GetAll() where TAttribute : Attribute; + public IEnumerable GetAll(Type attributeType); + public bool Has() where TAttribute : Attribute; + public bool Has(Type attributeType); } } ``` ## API Details This proposal makes use of two `C#` language features that need to be added in order for this proposal to make the most impact. The first one is that `Enum` needs to be added as a valid type argument constraint in `C#` as is proposed in [csharplang#104](https://github.com/dotnet/csharplang/issues/104). `C#`, `VB`, and `F#` are currently able to consume generic methods with an `Enum` type argument constraint but just can't express them. This API cannot be implemented reasonably without this being added as that would mean no extension methods due to promotion of static method to an extension method later being a breaking change due to [csharplang#665](https://github.com/dotnet/csharplang/issues/665). Additionally, adding the `Enum` constraint later would be a breaking change and may not be acceptable. The second one is that this proposal specifies extension methods within `System.Enum` and as such requires `C#` to allow extension methods within non-static classes as is proposed in [csharplang#301](https://github.com/dotnet/csharplang/issues/301). This would not have to be implemented before the API ships as it wouldn't be a breaking change to promote a static method to be an extension method in a non-static class because that's not currently possible. The extension method promotion would just need to be done at the same time as the language release that allows extension methods in non-static classes. ### Base API Details #### `Enum` API Details * `HasFlag` is being deprecated as it's ambiguous and clutters up the intellisense as it's always accessible to all enum values. Using `System.Flags.FlagEnum.HasAllFlags` removes the naming ambiguity and since it's in a separate namespace it'll only be visible within a source file when the file explicitly includes `System.Flags`. * `Enum` has been added to the type constraints of the generic versions of `Parse` and `TryParse`. This would be a breaking change if another generic method that is constrained to `struct` currently calls these methods. #### `FlagEnum` API Details The flag enum operations are defined in the separate class `FlagEnum` in the namespace `System.Flags` to make flag enum extension methods' visibility optional. * `CombineFlags` returns the bitwise OR of the values. The name was chosen as it mirrors the naming of `Delegate.Combine`. * `CommonFlags` returns the bitwise AND of the values. * `AllFlags` returns all enum members' values that are powers of two bitwise ORed together. * `GetFlags` retrieves each valid flag included in the value in increasing significance bit order. * `HasAllFlags` indicates if the value contains all of the specified flags, equivalent to the current `HasFlag`. * `HasAnyFlags` indicates if the value contains any of the specified flags. * `IsFlagEnum` indicates if the enum has the `FlagsAttribute` applied. * `IsValidFlagCombination` is defined as `(value & AllFlags) == value`. * `RemoveFlags` returns value with all of the specified flags removed and is defined as `(value & (~flags))`. The name was chosen as it mirrors the naming of `Delegate.Remove`. #### `PrimaryAttribute` API Details * The `PrimaryAttribute` is used to specify what enum member to retrieve when there are multiple enum members with the same value. It could be used for more than just enum members for cases in code where there is ambiguity. ### `EnumMember` Support API Details #### `Enum` API Details * `GetAttributes` retrieves the `AttributeCollection` of an enum member with the specified value. If there are multiple enum members with the specified value the enum member marked with the `PrimaryAttribute` will be used. If there are no enum members with the specified value `null` is returned. * `GetMember` retrieves the `EnumMember` with the specified value or name. If there are multiple enum members with the specified value the enum member marked with the `PrimaryAttribute` will be retrieved. If there are no enum members with the specified value or name `null` is returned. * `GetMembers` retrieves all of the `EnumMember`s of the specified enum in increasing significance bit order by their respective values. #### `EnumMember` API Details * `EnumMember` and `EnumMember` are a new object model formed over an enum member which include its name, value, and attributes. They only have internal constructors and there is only one instance of `EnumMember` created for each enum member thus one can use `ReferenceEquals` for determining equality. This also prevents allocations after the first retrieval. * It seems there's no reason to constrain `TEnum` in `EnumMember` to an `Enum` as it's not publicly constructible and being unconstrained would be beneficial in generic programming. #### `AttributeCollection` API Details * `Get` returns the first `Attribute` in the collection that is assignable to the specified attribute type if available otherwise `null`. * `GetAll` returns all `Attribute`s in the collection that are assignable to the specified attribute type. * `Has` indicates if any `Attribute`s in the collection are assignable to the specified attribute type. * Type needs to be moved from the `System.ComponentModel.TypeConverter` assembly into `mscorlib` while adding an automatic binding redirect. ## Implementation Details This proposal stems from my work on the open source library [Enums.NET](https://github.com/TylerBrinkley/Enums.NET) which addresses each of these issues and will be the basis for an implementation. For efficiency this is how `Enums.NET` is implemented. First, using `Enum` as a generic type argument causes generic code-explosion in today's runtimes so it's essential that it's included sparingly. For this reason most logic is contained in an [`EnumCache`](https://github.com/TylerBrinkley/Enums.NET/blob/ca49e29a8effe0460135eeb10eed6cc1ec907188/Src/Enums.NET/EnumCache.cs#L42) object where `TInt` is the underlying type and `TIntProvider` is the underlying type's operations provider which implements the interface [`INumericProvider`](https://github.com/TylerBrinkley/Enums.NET/blob/ca49e29a8effe0460135eeb10eed6cc1ec907188/Src/Enums.NET/Numerics/INumericProvider.cs#L31) which provides the bitwise operations and other needed operations. Including the `TIntProvider` as a type parameter allows the runtime to inline calls to its methods so there's no interface method dispatch, a technique described in this [generic calculations article](https://www.codeproject.com/articles/8531/using-generics-for-calculations). Now how can one access this `EnumCache` object when the caller only has the enum type as a generic type argument? This is solved by the bridge-like object [`EnumInfo`](https://github.com/TylerBrinkley/Enums.NET/blob/ca49e29a8effe0460135eeb10eed6cc1ec907188/Src/Enums.NET/EnumInfo.cs#L45) which implements the interfaces [`IEnumInfo`](https://github.com/TylerBrinkley/Enums.NET/blob/ca49e29a8effe0460135eeb10eed6cc1ec907188/Src/Enums.NET/IEnumInfo.cs#L101) for generic methods and [`IEnumInfo`](https://github.com/TylerBrinkley/Enums.NET/blob/ca49e29a8effe0460135eeb10eed6cc1ec907188/Src/Enums.NET/IEnumInfo.cs#L44) for non-generic methods. It simply acts as a bridge to delegate calls from the interfaces to `EnumCache`. In order to do that it needs to be able to efficiently convert values between `TEnum` and `TInt`. This is performed by the conversion methods [`ToInt`](https://github.com/TylerBrinkley/Enums.NET/blob/ca49e29a8effe0460135eeb10eed6cc1ec907188/Src/Enums.NET/EnumInfo.cs#L61) and [`ToEnum`](https://github.com/TylerBrinkley/Enums.NET/blob/ca49e29a8effe0460135eeb10eed6cc1ec907188/Src/Enums.NET/EnumInfo.cs#L71) which are declared as `extern` methods for efficiency so that they're simply defined as casts from one type to the other. This `EnumInfo` is created via reflection upon it's first call and is stored in the static property [`Enums.Info`](https://github.com/TylerBrinkley/Enums.NET/blob/ca49e29a8effe0460135eeb10eed6cc1ec907188/Src/Enums.NET/Enums.cs#L1592) as an `IEnumInfo` which is then called by [`Enums`](https://github.com/TylerBrinkley/Enums.NET/blob/ca49e29a8effe0460135eeb10eed6cc1ec907188/Src/Enums.NET/Enums.cs#L38)'s generic methods. For non-generic methods a `Dictionary` is used to retrieve the `IEnumInfo` to use. ## Open Questions * Can and should `Enum` implement `IComparable` and `IEquatable` as proposed in #8973? * Is adding the `Enum` constraint to the generic versions of `Enum.Parse` and `Enum.TryParse` an acceptable breaking change? ## Updates * Added more implementation details. * Added more API details. * Added enumerating members usage example. * Added generic versions of instance methods for performance reasons. * Removed the `System.Enums` namespace and moved its members into the `System` namespace. * Moved `PrimaryAttribute` into the `System.ComponentModel` namespace and switched to using the existing `System.ComponentModel.AttributeCollection`. * Removed `IsValid` method as it's meaning is rather subjective and promoted `IsValidFlagCombination` as an extension method. * Renamed `GetAllFlags` to `AllFlags` as it more closely resembles a property but can't be because it is generic. Similar naming to `Array.Empty`. * Removed `EnumComparer` as one can just use `Comparer.Default` and `EqualityComparer.Default` instead. * Split the proposed API to a base API addition and an `EnumMember` support API addition." +15454 area-Infrastructure [NO-MERGE] Changes to make projects build against the TargetingPack based on Configuration instead of BuildConfiguration @dotnet-bot skip ci please Sharing the work I have so far for an initial review. cc: @weshaggard @ericstj With these changes I have the refs, shims and src projects building succesfully. I am however hitting two issues when running build.cmd: - Bin clash logger is detecting issues that I haven't checked yet - Package validation is detecting some cycles in our runtime dir like for example: `netstandard > System.Data.Common > System.Xml.ReaderWriter > S ystem.Private.Xml > Microsoft.Win32.Registry > netstandard` which might be difficult to fix. @ericstj I'll check with you tomorrow how to address them. FYI: @tarekgh @mellinoe +15455 area-System.Numerics Complex.Asin gives bad values for extreme arguments For all Complex values z in the representable range, the value of asin(z) lies in the representable range. For example for large real m ~ Double.MaxValue, asin(m) ~ \pi / 2 + \ln (2 m) i ~ 1.5708 + 710.476 i. (The sign of the imaginary part may change depending on the phase convention, but the magnitude shouldn't.) But the Complex.Asin method returns NaNs for these arguments, and indeed for more arguments with |z| > Sqrt(Math.Double), presumably because of internal overflow when calculating z * z. Complex.Acos similiarly gives unnecessary NaNs for large arguments. These methods should be fixed so as to give accurate results over the entire representable range. +15456 area-Infrastructure Fix P2P reference Configuration selection Previously we'd always choose Configuration for P2Ps based on BuildConfiguration. This was incorrect and could result in netstandard configurations building against netcoreapp references. Fix this by doing configuration selection in the referencing project. I had to fix a number of projects after making this change. These were all cases where we were building a OS-agnostic configuration and referencing an OS-specific library. Or building netstandard libraries referencing netcoreapp libraries. I've also added hooks to build all configurations. To do this from a traversal set /p:BuildAllConfigurations=true. To do this from a project build with /t:BuildAll. /cc @weshaggard @joperezr @chcosta +15460 area-System.Net Avoid creating a new HttpClient per HttpWebRequest in some cases In .NET Core, HttpWebRequest is layered on top of HttpClient and HttpClientHandler. Due to the mismatch in APIs, the implementation creates a new HttpClient per HttpWebRequest, which is very inefficient. But those costs can be avoided in some circumstances. In particular, we can have a shared HttpClient configured with the same defaults that HttpWebRequest has; then as long as none of the settings on the HttpWebRequest have been changed to veer from the defaults, the shared HttpClient instance can be used rather than creating a new one. +15461 area-System.Net Fix typo in HttpClient private method name +15462 area-System.Net Avoid InternalGetCookies costs when there are no cookies Calling CookieContainer.GetCookieHeader results in a bunch of work and allocations, including a list, an array, several strings, etc., but none of that is necessary if there aren't any cookies in the container anyway. This commit just special cases an empty container to avoid those. This is showing up in traces of HttpClient. cc: @davidsh, @cipop, @geoffkizer, @mikeharder, @cesarbs +15464 area-Microsoft.CSharp Microsoft.CSharp.RuntimeBinder constant folding incorrect in several ways Given: ```C# var x = CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.Constant, null); var y = CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.Constant, null); var binder = Microsoft.CSharp.RuntimeBinder.Binder.BinaryOperation(CSharpBinderFlags.None, ExpressionType.Divide, GetType(), new[] {x, y}); var callsite = CallSite>.Create(binder); callsite.Target(callsite, 8, 0); ``` We would expect the last line to throw a `RuntimeBinderException` due to the divide by constant zero. Instead it throws `OverflowException` (in debug it throws an assertion failure). Of the other integer types, `uint`, `long` and `ulong` will all throw a `DivideByZeroException` while all the others throw `OverflowException`. +15466 area-Microsoft.CSharp Catch divide-by-constant-zero in Microsoft.CSharp.RuntimeBinder Fixes #15464 +15467 area-Microsoft.CSharp Are constant-folding and checks in Microsoft.CSharp.RuntimeBinder useful. #15464 notes a bug in the constant-folding RuntimeBinder does, but considering that with the code emitted by the C# compiler when used with `dynamic` such checks and folding would already be done prior to the dynamic binding, is this constant-folding useful? Is the cost of checking if they can be applied when binding worth the benefit gained when running? Would it be better to just always evaluate at runtime? One downside I can definitely see to removing them is the difference in exceptions thrown, but if that currently isn't correct anyway, it's not that big a loss. +15469 area-System.Threading Need for a generic IAwaitable and library of combinators Today custom awaiters fall short for several reasons: - Inability to declare an async methods as anything but Task (better with C# 7 and task likes) - Methods that work on any task like (Awaitable.WhenAll, Awaitable.WhenAny etc). - A first class interface for awaiting (IAwaiter) can be implemented things like cancellation tokens and other awaitable things (events?) I haven't thought through an API proposal as yet, just throwing this out there for now. Another alternative would be to expose Task from all APIs (like Cancellation token) but that doesn't seem like a very efficient solution. /cc @stephentoub +15470 area-System.Runtime Use `throw null` in System.Runtime ref Some of the APIs that were previously `#if netcoreapp11` were using the old `return default(T)` pattern. Changed them to `throw null`. +15471 area-Meta EPPlus Exoprt to excel Issue! #I user EPPlus for export data to excel and i got this when run the project > TypeLoadException: Could not load type 'System.StringExtensions' from assembly 'CoreCompat.System.Drawing, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c0a7ed9c2333b592'. OfficeOpenXml.Packaging.ZipPackage.PartExists(Uri partUri) OfficeOpenXml.ExcelWorkbook.CreateWorkbookXml(XmlNamespaceManager namespaceManager) OfficeOpenXml.ExcelWorkbook..ctor(ExcelPackage package, XmlNamespaceManager namespaceManager) OfficeOpenXml.ExcelPackage.get_Workbook() OfficeOpenXml.ExcelPackage.CreateBlankWb() OfficeOpenXml.ExcelPackage.ConstructNewFile(string password) HelpSearch.Controllers.AdminController.Reports(string DepName) in AdminController.cs + using (ExcelPackage package = new ExcelPackage(file)) +15472 area-Infrastructure "dumpling error ""dumpling.py upload: error: argument --dumppath: expected one argument"" on Fedora" https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170125.02/workItem/Common.Tests/details/38037e24-2d39-4dae-a997-6c99c5bcba9d ``` 2017-01-25 06:23:16,119: INFO: proc(55): run_and_log_output: Output: echo uploading core to dumpling service 2017-01-25 06:23:16,119: INFO: proc(55): run_and_log_output: Output: python /home/helixbot/.dumpling/dumpling.py upload --dumppath --noprompt --triage full --displayname --properties STRESS_TESTID= --verbose 2017-01-25 06:23:16,119: INFO: proc(55): run_and_log_output: Output: else 2017-01-25 06:23:16,119: INFO: proc(55): run_and_log_output: Output: echo no coredump file was found 2017-01-25 06:23:16,120: INFO: proc(55): run_and_log_output: Output: fi 2017-01-25 06:23:16,120: INFO: proc(55): run_and_log_output: Output: fi 2017-01-25 06:23:16,120: INFO: proc(55): run_and_log_output: Output: return 2017-01-25 06:23:16,120: INFO: proc(55): run_and_log_output: Output: } 2017-01-25 06:23:16,120: INFO: proc(55): run_and_log_output: Output: /home/helixbot/dotnetbuild/work/38037e24-2d39-4dae-a997-6c99c5bcba9d/Payload/dotnet xunit.console.netcore.exe Common.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests 2017-01-25 06:23:16,120: INFO: proc(55): run_and_log_output: Output: CollectDumps 0 Common.Tests 2017-01-25 06:23:16,120: INFO: proc(55): run_and_log_output: Output: ~/dotnetbuild/work/38037e24-2d39-4dae-a997-6c99c5bcba9d/Work/6d1e3fd1-e72c-4c13-bd58-a884f70b9349/Unzip ~/dotnetbuild/work/38037e24-2d39-4dae-a997-6c99c5bcba9d/Work/6d1e3fd1-e72c-4c13-bd58-a884f70b9349/Unzip 2017-01-25 06:23:16,120: INFO: proc(55): run_and_log_output: Output: executing ulimit -c unlimited 2017-01-25 06:23:16,125: INFO: proc(55): run_and_log_output: Output: Failed to load /home/helixbot/dotnetbuild/work/38037e24-2d39-4dae-a997-6c99c5bcba9d/Payload/shared/Microsoft.NETCore.App/9.9.9/libhostpolicy.so, error: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by /home/helixbot/dotnetbuild/work/38037e24-2d39-4dae-a997-6c99c5bcba9d/Payload/shared/Microsoft.NETCore.App/9.9.9/libhostpolicy.so) 2017-01-25 06:23:16,125: INFO: proc(55): run_and_log_output: Output: An error occurred while loading required library libhostpolicy.so from [/home/helixbot/dotnetbuild/work/38037e24-2d39-4dae-a997-6c99c5bcba9d/Payload/shared/Microsoft.NETCore.App/9.9.9] 2017-01-25 06:23:16,125: INFO: proc(55): run_and_log_output: Output: command exited with ExitCode: 130 2017-01-25 06:23:16,125: INFO: proc(55): run_and_log_output: Output: command failed, trying to collect dumps 2017-01-25 06:23:16,126: INFO: proc(55): run_and_log_output: Output: corefile: 2017-01-25 06:23:16,126: INFO: proc(55): run_and_log_output: Output: uploading core to dumpling service 2017-01-25 06:23:16,214: INFO: proc(55): run_and_log_output: Output: usage: dumpling.py upload [-h] [--verbose] [--squelch] [--noprompt] 2017-01-25 06:23:16,215: INFO: proc(55): run_and_log_output: Output: [--logpath LOGPATH] [--url URL] 2017-01-25 06:23:16,215: INFO: proc(55): run_and_log_output: Output: [--configpath CONFIGPATH] [--dumppath DUMPPATH] 2017-01-25 06:23:16,215: INFO: proc(55): run_and_log_output: Output: [--displayname DISPLAYNAME] [--user USER] 2017-01-25 06:23:16,215: INFO: proc(55): run_and_log_output: Output: [--triage {none,client,full}] 2017-01-25 06:23:16,215: INFO: proc(55): run_and_log_output: Output: [--incpaths [INCPATHS [INCPATHS ...]]] 2017-01-25 06:23:16,215: INFO: proc(55): run_and_log_output: Output: [--properties [key=value [key=value ...]]] 2017-01-25 06:23:16,215: INFO: proc(55): run_and_log_output: Output: [--propfile PROPFILE] 2017-01-25 06:23:16,215: INFO: proc(55): run_and_log_output: Output: dumpling.py upload: error: argument --dumppath: expected one argument 2017-01-25 06:23:16,222: INFO: proc(55): run_and_log_output: Output: ~/dotnetbuild/work/38037e24-2d39-4dae-a997-6c99c5bcba9d/Work/6d1e3fd1-e72c-4c13-bd58-a884f70b9349/Unzip 2017-01-25 06:23:16,223: INFO: proc(55): run_and_log_output: Output: Finished running tests. End time=06:23:16. Return value was 130 ``` @sepidehMS +15473 area-Meta Change Contract.Assert to Debug.Assert and make sure tests still pass Per https://github.com/dotnet/corefx/issues/15443#issuecomment-275188560 There are about 70, mostly in Tracing. Since they've been not functioning, this may introduce test failures. Either fix thep roduct, test, or remove the assert if it's bogus. We will be separately removing the dependency so new ones can't go in. +15474 area-Infrastructure CoreFx build process is copying test files into the original folder The System.Data.SqlClient.ManualTests rely on the two files, data.xml and MultipleResultsTest.bsl being available in the binary folder. https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj#L68 https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/tests/ManualTests/System.Data.SqlClient.ManualTesting.Tests.csproj#L71 The two files used to get copied into the same folder as the Test DLL. Lately the files are being copied to a path which is the same as the original location of the files in the test source, i.e. netcoreapp\DDBasics\DDDataTypesTest\data.xml and netcoreapp\ProviderAgnostic\MultipleResultsTest\MultipleResultsTest.bsl This is causing the SqlClient tests, which run with the SqlServer, to break when run on dev machines. How do we get the files to copy to the same output location as before, without changing the test code? +15476 area-System.Runtime Expose parameterless string.TrimEnd/TrimStart in ref Expose the new parameterless TrimEnd/TrimStart APIs added in https://github.com/dotnet/coreclr/pull/8834. The existing tests already cover these new APIs: - https://github.com/dotnet/corefx/blob/9f00738f44164150f9b31cff5c72c19ebb68bb88/src/System.Runtime/tests/System/StringTests.cs#L2338 - https://github.com/dotnet/corefx/blob/9f00738f44164150f9b31cff5c72c19ebb68bb88/src/System.Runtime/tests/System/StringTests.cs#L2362 Fixes #6485 +15477 area-System.Data Adding System.Data.Odbc reference source files This PR adds the reference source for System.Data.Odbc in preparation for adding the new System.Data.Odbc library. I don't know if this is how you usually approach creating a new library, so let me know. Checking this PR is a no-op, since the files were just copied from https://github.com/Microsoft/referencesource and pasted where they will live in the new library folder. Also, having these in place should really help for diffing my changes in upcoming PRs. @divega @anpete @eerhardt @saurabh500 you might be interested. +15479 area-Infrastructure Remove some workarounds from Roslyn.Common.props that aren't needed https://github.com/dotnet/roslyn/issues/2444 has already been fixed. `IncludeVbProjects` is not referenced anywhere, and we don't use Mono for anything, anyways. @weshaggard This is why the ECMA key was not being used. +15480 area-System.Net ClientWebSocket(Managed): Allow user code to control the HTTP Host header "Allow user code to control the HTTP Host header by calling ClientWebSocketOptions.SetRequestHeader: ``` C# clientWebSocket.Options.SetRequestHeader(""Host"", ""contoso.servicebus.windows.net""); await clientWebSocket.ConnectAsync(""wss://gateway63.servicebus.windows.net/someresource"", ...); ```" +15481 area-System.Net Increase timeouts for some failing Net tests These two tests are/were failing intermittently from hitting their timeouts. We can increase those timeouts to a significantly higher value without taking away from the test's value. @steveharter @Priya91 resolves https://github.com/dotnet/corefx/issues/13938 resolves https://github.com/dotnet/corefx/issues/12778 +15484 area-System.Linq Show a more helpful description in the debugger for Grouping/Lookup Fixes https://github.com/dotnet/corefx/issues/14790. Another thing: I changed a test function that before was just making sure the display string could be parsed correctly, to actually handing back the display string so we can assert it's equal to some format. [All of the other references to that function](https://github.com/dotnet/corefx/search?utf8=%E2%9C%93&q=ValidateDebuggerDisplayReferences) would probably be better off if they actually used its return value now instead of just calling it, so I'll open up a tracking issue for that. /cc @JonHanna @VSadov @stephentoub +15485 area-Infrastructure Copy SqlClient test files to root of output Fixes https://github.com/dotnet/corefx/issues/15474 `None` vs. `Content` is immaterial, but I changed it for consistency with other test projects. @saurabh500 +15486 area-System.Diagnostics Validate the format of the display strings at ValidateDebuggerDisplayReferences call sites `ValidateDebuggerDisplayStrings`, a method that currently returns void, is used to ensure that the display string can be parsed correctly. PR https://github.com/dotnet/corefx/pull/15484 makes that function more useful by actually evaluating and returning the display string, so now it can be Assert.Equal'd on. All of the current call sites in https://github.com/dotnet/corefx/search?utf8=%E2%9C%93&q=ValidateDebuggerDisplayReferences can test the display string more rigorously by asserting it's equal to something. Also, a better name for the method would now be `EvaluateDebuggerDisplayString`. +15487 area-Infrastructure VS .sln files do not use the solution folders any longer. Opening .sln files in VS now have all the projects in a flat list at the root of the solution, not in the solution folders: ![image](https://cloud.githubusercontent.com/assets/4523120/22311892/64a1dec2-e30a-11e6-8980-cf114056e9fb.png) Rolling back to before [f6ab339 ](https://github.com/dotnet/corefx/commit/f6ab339) puts things to back as I expect them. cc: @karajas +15489 area-System.Collections [No merge] Modify expected param names for Array.Copy invalid args **edit:** This can be cherry-picked whenever the version of coreclr that corefx builds against is updated. I've run tests against my change in coreclr locally and can confirm that all of these tests pass on .NET Core against the new build. Corresponding PR for https://github.com/dotnet/coreclr/pull/9117. Do not merge this yet, it will fail until the version of coreclr with the fix is taken in. Also I might have to amend my coreclr PR to fix the names in more throw-sites, and I may not have covered all of the affected tests in my initial commit here. +15490 area-System.Threading Add awaitable ThreadPool.SwitchTo() `Task.Run` breaks the execution flow by forcing the code into a delegate, it's basically callback hell (since it's the first callback in the chain). Instead, for the situations where we want to stay in the await pattern, `ThreadPool.Yield()` would be a nice to have API. It would turn code that looks like this: ```C# await Task.Run(() => DoSomething()); ``` ```C# await ThreadPool.Yield(); // Now on a thread pool thread so we can call some user code DoSomething(); ``` /cc @stephentoub +15494 area-System.Data Implement truly parallel MultiSubnetFailover connections in managed SNI CC @saurabh500 @stephentoub Fixes issue: https://github.com/dotnet/corefx/issues/15331 +15495 area-Infrastructure Fix uap Configurations for a few libraries With this few changes the TargetingPack that we produce for uap (and uapaot) will match the set of reference assemblies we had supported on uap10.1 before the dev/eng merge cc: @weshaggard @ericstj Next, I'll do the src configs. +15499 area-Meta Use `throw null` in refs Follow-up of #15470, this time grepping the entire source: Use `throw null` in refs instead of `return default(T)` or `return 0`. +15502 area-System.Security Test failure: System.Security.AccessControl.Tests.DiscretionaryAcl_Constructor1/Constructor1_AdditionalTestCases Opened on behalf of @Jiayili1 The test `System.Security.AccessControl.Tests.DiscretionaryAcl_Constructor1/Constructor1_AdditionalTestCases` has failed. Assert.Throws() Failure\r Expected: typeof(System.OutOfMemoryException)\r Actual: (No exception was thrown) Stack Trace: at System.Security.AccessControl.Tests.DiscretionaryAcl_Constructor1.Constructor1_AdditionalTestCases() Build : Master - 20170125.02 (Core Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170125.02/workItem/System.Security.AccessControl.Tests/analysis/xunit/System.Security.AccessControl.Tests.DiscretionaryAcl_Constructor1~2FConstructor1_AdditionalTestCases +15503 area-Infrastructure Bootstrapping for new platform As commented at https://github.com/dotnet/corefx/issues/15215#issuecomment-275299116, CoreFX build needs CoreCLR & core-setup nuget packages. And core-setup build needs CoreCLR & CoreFX nuget packages. We can build CoreCLR without target platform nuget packages dependency. But CoreFX and core-setup have target platform nuget package dependency for each other. This circular nuget package reference makes confusion and difficulty on implementation & building for new platform (ex. arm32/linux). @jyoungyun @chunseoklee @hqueue @ericstj @weshaggard @gkhanna79 +15505 area-Infrastructure Add generate sln tool This will generate a sln file for every library that sticks to the corefx folder structure with a src and test folder. ``` msbuild Tools\utilities.targets /t:GenerateSlnFiles /p:PathToGenerateSlnFiles=D:\git\corefx\src ``` The first commit has the tool. /cc @weshaggard +15508 area-Infrastructure Clean up dir.traversal.targets Remove some unused targets in dir.traversal.targets and fix Clean. Update the name of BuildAll to BuildAllConfigurations and make it work with traversal projects too. Fix clean for depproj's. /cc @weshaggard @chcosta +15511 area-Infrastructure [arm32/Linux] Make clang 3.6 the default toolset for cross arm32 build CoreCLR repo specifies clang 3.6 for cross builds (https://github.com/dotnet/coreclr/blob/master/build.sh#L747) but CoreFX does not (see https://github.com/dotnet/corefx/blob/master/src/Native/build-native.sh). CC @hqueue @hseok-oh @jyoungyun +15512 area-System.Globalization Fix Globalization test on Sierra Sierra Mac OS has some changes in the globalization data. actually they have fixed some data. this fix break the test as the test was checking the old values. +15513 area-Infrastructure Test failures from running Ubuntu in Docker for windows "I've been testing out using Docker for windows and loaded up our unbuntu1604 docker image and I'm currently hitting the following issues. - Init tools fails because of file casing issue https://github.com/dotnet/buildtools/issues/1308. This only happens when you map a windows volume into the docker container. I worked around it locally by commenting out the one mv command in init-tools script https://github.com/dotnet/buildtools/blob/master/src/Microsoft.DotNet.Build.Tasks/PackageFiles/init-tools.sh#L105. Once I'm past that the build fully succeeds but I hit the following test failures. System.IO.FileSystem.DriveInfo.Tests ``` /d/git/corefx/bin/AnyOS.AnyCPU.Debug/System.IO.FileSystem.DriveInfo.Tests/netstandard/RunTests.sh /d/git/corefx/Tools/testdotnetcli Using as the test runtime folder. Running tests... Start time: 21:10:08 Commands: /d/git/corefx/Tools/testdotnetcli/dotnet xunit.console.netcore.exe System.IO.FileSystem.DriveInfo.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests /d/git/corefx/bin/AnyOS.AnyCPU.Debug/System.IO.FileSystem.DriveInfo.Tests/netstandard /d/git/corefx/src/System.IO.FileSystem.DriveInfo/tests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.IO.FileSystem.DriveInfo.Tests Discovered: System.IO.FileSystem.DriveInfo.Tests Starting: System.IO.FileSystem.DriveInfo.Tests System.IO.FileSystem.DriveInfoTests.DriveInfoUnixTests.PropertiesOfValidDrive [FAIL] Assert.Equal() Failure Expected: Fixed Actual: Unknown Stack Trace: /d/git/corefx/src/System.IO.FileSystem.DriveInfo/tests/DriveInfo.Unix.Tests.cs(69,0): at System.IO.FileSystem.DriveInfoTests.DriveInfoUnixTests.PropertiesOfValidDrive() Finished: System.IO.FileSystem.DriveInfo.Tests ``` System.Net.NetworkInformation.Functional.Tests ``` /d/git/corefx/bin/AnyOS.AnyCPU.Debug/System.Net.NetworkInformation.Functional.Tests/netstandard/RunTests.sh /d/git/corefx/Tools/testdotnetcli Using as the test runtime folder. Running tests... Start time: 21:10:19 Commands: /d/git/corefx/Tools/testdotnetcli/dotnet xunit.console.netcore.exe System.Net.NetworkInformation.Functional.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests /d/git/corefx/bin/AnyOS.AnyCPU.Debug/System.Net.NetworkInformation.Functional.Tests/netstandard /d/git/corefx/src/System.Net.NetworkInformation/tests/FunctionalTests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Net.NetworkInformation.Functional.Tests Discovered: System.Net.NetworkInformation.Functional.Tests Starting: System.Net.NetworkInformation.Functional.Tests dotnet: /d/git/corefx/src/Native/Unix/Common/pal_safecrt.h:47: errno_t memcpy_s(void *, size_t, const void *, size_t): Assertion `sizeInBytes >= count' failed. /d/git/corefx/bin/AnyOS.AnyCPU.Debug/System.Net.NetworkInformation.Functional.Tests/netstandard/RunTests.sh: line 80: 13807 Aborted $RUNTIME_PATH/dotnet xunit.console.netcore.exe System.Net.NetworkInformation.Functional.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests /d/git/corefx/src/System.Net.NetworkInformation/tests/FunctionalTests Finished running tests. End time=21:10:20. Return value was 134 ``` System.Net.Ping.Functional.Tests ``` /d/git/corefx/bin/Unix.AnyCPU.Debug/System.Net.Ping.Functional.Tests/netstandard/RunTests.sh /d/git/corefx/Tools/testdotnetcli Using as the test runtime folder. Running tests... Start time: 21:14:42 Commands: /d/git/corefx/Tools/testdotnetcli/dotnet xunit.console.netcore.exe System.Net.Ping.Functional.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests /d/git/corefx/bin/Unix.AnyCPU.Debug/System.Net.Ping.Functional.Tests/netstandard /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Net.Ping.Functional.Tests Discovered: System.Net.Ping.Functional.Tests Starting: System.Net.Ping.Functional.Tests System.Net.NetworkInformation.Tests.UnixPingUtilityTests.PacketSizeIsRespected(payloadSize: 0) [FAIL] System.InvalidOperationException : Cannot start process because a file name has not been provided. Stack Trace: /d/git/corefx/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs(1247,0): at System.Diagnostics.Process.Start() /d/git/corefx/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs(1305,0): at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/UnixPingUtilityTests.cs(38,0): at System.Net.NetworkInformation.Tests.UnixPingUtilityTests.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.UnixPingUtilityTests.PacketSizeIsRespected(payloadSize: 1) [FAIL] System.InvalidOperationException : Cannot start process because a file name has not been provided. Stack Trace: /d/git/corefx/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs(1247,0): at System.Diagnostics.Process.Start() /d/git/corefx/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs(1305,0): at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/UnixPingUtilityTests.cs(38,0): at System.Net.NetworkInformation.Tests.UnixPingUtilityTests.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.Sends_ReuseInstance_Hostname [FAIL] System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(361,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(156,0): at System.Net.NetworkInformation.Ping.Send(String hostNameOrAddress, Int32 timeout, Byte[] buffer, PingOptions options) /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(146,0): at System.Net.NetworkInformation.Ping.Send(String hostNameOrAddress, Int32 timeout, Byte[] buffer) /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(126,0): at System.Net.NetworkInformation.Ping.Send(String hostNameOrAddress) /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(355,0): at System.Net.NetworkInformation.Tests.PingTest.d__16.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(151,0): at System.Net.NetworkInformation.Ping.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(30,0): at System.Net.NetworkInformation.Ping.d__57.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(350,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() System.Net.NetworkInformation.Tests.UnixPingUtilityTests.PacketSizeIsRespected(payloadSize: 50) [FAIL] System.InvalidOperationException : Cannot start process because a file name has not been provided. Stack Trace: /d/git/corefx/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs(1247,0): at System.Diagnostics.Process.Start() /d/git/corefx/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs(1305,0): at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/UnixPingUtilityTests.cs(38,0): at System.Net.NetworkInformation.Tests.UnixPingUtilityTests.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.UnixPingUtilityTests.PacketSizeIsRespected(payloadSize: 1000) [FAIL] System.InvalidOperationException : Cannot start process because a file name has not been provided. Stack Trace: /d/git/corefx/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs(1247,0): at System.Diagnostics.Process.Start() /d/git/corefx/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs(1305,0): at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/UnixPingUtilityTests.cs(38,0): at System.Net.NetworkInformation.Tests.UnixPingUtilityTests.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithHostAndTimeoutAndBuffer_Unix [FAIL] System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(361,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(445,0): at System.Net.NetworkInformation.Tests.PingTest.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(267,0): at System.Net.NetworkInformation.Tests.PingTest.d__12.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(151,0): at System.Net.NetworkInformation.Ping.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(30,0): at System.Net.NetworkInformation.Ping.d__57.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(350,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() System.Net.NetworkInformation.Tests.PingTest.SendPings_ReuseInstance_Hostname [FAIL] System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(361,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(339,0): at System.Net.NetworkInformation.Tests.PingTest.d__15.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(151,0): at System.Net.NetworkInformation.Ping.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(30,0): at System.Net.NetworkInformation.Ping.d__57.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(350,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithHostAndTimeout [FAIL] System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(361,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(445,0): at System.Net.NetworkInformation.Tests.PingTest.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(233,0): at System.Net.NetworkInformation.Tests.PingTest.d__10.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(151,0): at System.Net.NetworkInformation.Ping.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(30,0): at System.Net.NetworkInformation.Ping.d__57.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(350,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() System.Net.NetworkInformation.Tests.PingTest.SendAsyncs_ReuseInstance_Hostname [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(390,0): at System.Net.NetworkInformation.Tests.PingTest.d__17.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithHost [FAIL] System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(361,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(445,0): at System.Net.NetworkInformation.Tests.PingTest.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(219,0): at System.Net.NetworkInformation.Tests.PingTest.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(151,0): at System.Net.NetworkInformation.Ping.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(30,0): at System.Net.NetworkInformation.Ping.d__57.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(350,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithIPAddressAndTimeoutAndBuffer_Unix [FAIL] System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(151,0): at System.Net.NetworkInformation.Ping.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(30,0): at System.Net.NetworkInformation.Ping.d__57.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(445,0): at System.Net.NetworkInformation.Tests.PingTest.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(150,0): at System.Net.NetworkInformation.Tests.PingTest.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithIPAddress [FAIL] System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(151,0): at System.Net.NetworkInformation.Ping.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(30,0): at System.Net.NetworkInformation.Ping.d__57.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(445,0): at System.Net.NetworkInformation.Tests.PingTest.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(88,0): at System.Net.NetworkInformation.Tests.PingTest.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithIPAddressAndTimeout [FAIL] System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(151,0): at System.Net.NetworkInformation.Ping.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(30,0): at System.Net.NetworkInformation.Ping.d__57.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(445,0): at System.Net.NetworkInformation.Tests.PingTest.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(116,0): at System.Net.NetworkInformation.Tests.PingTest.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.Ping_DisposeAfterSend_Success [FAIL] System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(361,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(410,0): at System.Net.NetworkInformation.Tests.PingTest.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(151,0): at System.Net.NetworkInformation.Ping.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(30,0): at System.Net.NetworkInformation.Ping.d__57.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(350,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithIPAddressAndTimeoutAndBufferAndPingOptions_Unix [FAIL] System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(151,0): at System.Net.NetworkInformation.Ping.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(30,0): at System.Net.NetworkInformation.Ping.d__57.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(445,0): at System.Net.NetworkInformation.Tests.PingTest.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(195,0): at System.Net.NetworkInformation.Tests.PingTest.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithIPAddress_AddressAsString [FAIL] System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(151,0): at System.Net.NetworkInformation.Ping.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(30,0): at System.Net.NetworkInformation.Ping.d__57.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(445,0): at System.Net.NetworkInformation.Tests.PingTest.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(102,0): at System.Net.NetworkInformation.Tests.PingTest.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.NetworkInformation.Tests.PingTest.SendPingAsyncWithHostAndTimeoutAndBufferAndPingOptions_Unix [FAIL] System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.PlatformNotSupportedException : The system's ping utility could not be found. Stack Trace: /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(361,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(445,0): at System.Net.NetworkInformation.Tests.PingTest.d__23.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs(311,0): at System.Net.NetworkInformation.Tests.PingTest.d__14.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(151,0): at System.Net.NetworkInformation.Ping.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs(30,0): at System.Net.NetworkInformation.Ping.d__57.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /d/git/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs(350,0): at System.Net.NetworkInformation.Ping.d__48.MoveNext() Finished: System.Net.Ping.Functional.Tests ``` System.IO.FileSystem.Tests ``` /d/git/corefx/bin/Unix.AnyCPU.Debug/System.IO.FileSystem.Tests/netstandard/RunTests.sh /d/git/corefx/Tools/testdotnetcli Using as the test runtime folder. Running tests... Start time: 21:17:20 Commands: /d/git/corefx/Tools/testdotnetcli/dotnet xunit.console.netcore.exe System.IO.FileSystem.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests /d/git/corefx/bin/Unix.AnyCPU.Debug/System.IO.FileSystem.Tests/netstandard /d/git/corefx/src/System.IO.FileSystem/tests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.IO.FileSystem.Tests Discovered: System.IO.FileSystem.Tests Starting: System.IO.FileSystem.Tests System.IO.Tests.Directory_GetDirectories_str.EnumerateWithSymLinkToDirectory [FAIL] Assert.Equal() Failure Expected: 1 Actual: 0 Stack Trace: /d/git/corefx/src/System.IO.FileSystem/tests/Directory/GetDirectories.cs(34,0): at System.IO.Tests.Directory_GetDirectories_str.EnumerateWithSymLinkToDirectory() System.IO.Tests.Directory_EnumDir_str.EnumerateWithSymLinkToDirectory [FAIL] Assert.Equal() Failure Expected: 1 Actual: 0 Stack Trace: /d/git/corefx/src/System.IO.FileSystem/tests/Directory/GetDirectories.cs(34,0): at System.IO.Tests.Directory_GetDirectories_str.EnumerateWithSymLinkToDirectory() System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo.ValidFileOptions [SKIP] Condition(s) not met: \""IsNotWindowsNanoServer\"" System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo.ValidFileOptions_Encrypted [SKIP] Condition(s) not met: \""IsNotWindowsNanoServer\"" System.IO.Tests.DirectoryInfo_GetDirectories.EnumerateWithSymLinkToDirectory [FAIL] Assert.Equal() Failure Expected: 1 Actual: 0 Stack Trace: /d/git/corefx/src/System.IO.FileSystem/tests/Directory/GetDirectories.cs(34,0): at System.IO.Tests.Directory_GetDirectories_str.EnumerateWithSymLinkToDirectory() System.IO.Tests.DirectoryInfo_EnumDir_Str.EnumerateWithSymLinkToDirectory [FAIL] Assert.Equal() Failure Expected: 1 Actual: 0 Stack Trace: /d/git/corefx/src/System.IO.FileSystem/tests/Directory/GetDirectories.cs(34,0): at System.IO.Tests.Directory_GetDirectories_str.EnumerateWithSymLinkToDirectory() Finished: System.IO.FileSystem.Tests ``` I'm primarily adding this information to track the work we need to enable this scenario it doesn't have any particular priority to fix at this point. " +15514 area-System.Text Extra Encoding tests Add extra ASCII encoding tests (were using UTF8 by commented as ASCII) Add Unicode start tests for ASCII and UTF8 Add ASCII start followed by Unicode for ASCII and UTF8 to cover ASCII fast-path with Unicode fallback Added extra length verification exception tests when split (ascii followed by unicode) for UTF8 /cc @tarekgh @stephentoub +15516 area-System.IO "ZipFile no longer sets the ""x"" permission when extracting an archive" "When running 'dotnet restore' using a CLI that runs on .NET Core 2.0, the execute permission is no longer getting set on the host executable. This is a blocking issue because it means anyone trying to run a self-contained app using the 2.0 CLI will not be able to execute their apps without chmod'ing the published executable. This is a regression from 1.0. Steps to repro: 1. Download the following into your project directory and rename it back to "".nupkg"". [runtime.ubuntu.14.04-x64.microsoft.netcore.dotnethost.1.0.1.nupkg.zip](https://github.com/dotnet/corefx/files/733074/runtime.ubuntu.14.04-x64.microsoft.netcore.dotnethost.1.0.1.nupkg.zip) 2. Run the following against netcoreapp1.0 and against netcoreapp2.0 ```c# using System; using System.IO.Compression; class Program { static void Main(string[] args) { ZipFile.ExtractToDirectory( ""./runtime.ubuntu.14.04-x64.microsoft.netcore.dotnethost.1.0.1.nupkg"", #if NETCOREAPP2_0 ""./NETCOREAPP2_0"" #else ""./NETCOREAPP1_0"" #endif ); } } ``` 3. Diff the permissions of the extracted `runtimes/ubuntu.14.04-x64/native/dotnet` executable. Expected result: The permissions should be identical. Actual result: ``` Erics-MBP:sandbox eerhardt$ ls -al NETCOREAPP1_0/runtimes/ubuntu.14.04-x64/native/dotnet -rwxr--r-- 1 eerhardt staff 128926 Jun 16 2016 NETCOREAPP1_0/runtimes/ubuntu.14.04-x64/native/dotnet Erics-MBP:sandbox eerhardt$ ls -al NETCOREAPP2_0/runtimes/ubuntu.14.04-x64/native/dotnet -rw-r--r-- 1 eerhardt staff 128926 Jun 16 2016 NETCOREAPP2_0/runtimes/ubuntu.14.04-x64/native/dotnet ```" +15519 area-Infrastructure [arm32/Linux] Remove workaround to prevent arm package restore In https://github.com/dotnet/corefx/pull/15518, we restore packages for x64 (instead of arm) since Arm host packages are not yet available (CoreFX has a cyclic dependency on upstack repo for this). Once Core-Setup publishes packages for Host for Linux Arm32, https://github.com/dotnet/corefx/pull/15518 should be reverted. CC @weshaggard @ericstj @hqueue @jyoungyun @hseok-oh +15521 area-System.Data "System.Data.SqlClient: ""Function not supported"" error thrown when using encrypted async connections over Named Pipes or Shared Memory" Only affects Windows. Issue created for 1.1.0 servicing. +15522 area-System.IO Add overlayfs to GetDriveInfo cc: @weshaggard, when you get a chance, can you verify this addresses your issue? +15523 area-Serialization SoapEncodedSerialization doesn't work for the included type "Refer the sample code below, which doesn't work. It failed in WriteReferencedElement method because the returned entry is null for type MySpecialOrder. The _typeEntries only contains the entry for the type of MyOrder. The entry was added in the list in the method EnsureXmlSerializationWriteCallbackForMapping, which just call AddWriteCallback for the type MyOrder. It need call this callback method for all the types in the scope including MySpecialOrder. ``` var soap = new SoapReflectionImporter(); soap.IncludeType(typeof(MySpecialOrder)); XmlTypeMapping map = soap.ImportTypeMapping(typeof(MyOrder)); XmlSerializer serializer = new XmlSerializer(map); MySpecialOrder so = new MySpecialOrder() { ID = 10, Name = ""MyName"", SecondaryID = 1000 }; MemoryStream ms = new MemoryStream(); serializer.Serialize(ms, so); public class MyOrder { public int ID; public string Name; } public class MySpecialOrder : MyOrder { public int SecondaryID; } ```" +15524 area-System.Net Change HttpClient timeout test to use loopback server Shorten test duration from 40 seconds to .5 seconds, as discussed at https://github.com/dotnet/corefx/pull/15481/files#r97910075 cc: @ianhays, @davidsh +15525 area-Serialization Need implement ArrayMapping in SoapEncodedSerialization Currently, it will throw PlatformNotSupportedException if it is ArrayMapping in SoapEncodedSerialization. +15526 area-System.Collections Factor ImmutableArray into many files - Break immutable array (an enumerable, immutable, array) into a core component - And a bunch of algorithm components which represents algorithms on the array - And a bunch of components which represent creation of new related immutable arrays - The purpose of this work is to make it possible to source include the core of immutable array into a component which cannot depend on high level apis such as LINQ, SortedDictionary, etc. (All api use must be satisfied by System.Private.CoreLib). The work to add this other component (System.Private.Reflection.Metadata.Ecma335 will be delivered via a separate PR) +15528 area-Infrastructure SkipUnmount support and set default clang for cross build Similar to CoreCLR repo, add support to skip unmounting when using build-rootfs.sh in Docker image. Also, define the default clang toolset to use for cross and regular builds (similar to how it is done in CoreCLR at https://github.com/dotnet/coreclr/blob/master/build.sh#L747). @janvorli @wtgodbe PTAL +15529 area-Infrastructure Binplace configurations Previously we hardcoded some binplace mappings. This removes that hardcoding and makes binplacing data-driven off of configuration strings. We'll binplace to paths based on assigning configurations to those paths and finding out if the configuration we're building is the best configuration in the project for that binplace path. /cc @weshaggard @joperezr @tarekgh @mellinoe I split up the commits so that you can see the diffs to FindBestConfiguration. The second commit is the interesting one. +15533 area-System.Linq System.Linq.Expressions.Tests.CompilerTests.CompileDeepTree_NoStackOverflowFast causing BCL assert in System.Threading.Thread Specifically, corelib is unhappy with [this](https://github.com/dotnet/corefx/blob/88d8bbf7dbf5869b7f239737779e75295e43ef95/src/System.Linq.Expressions/tests/CompilerTests.cs#L45) line. Per [this](https://github.com/dotnet/coreclr/blob/a928a37a1503871b5da5c80f74fe54b9f937ddc3/src/mscorlib/src/System/Threading/Thread.cs#L431) line, CoreCLR only supports the default stack size. Whether this should be asserted or handled via exception is a dotnet/coreclr#9158. +15536 area-System.Runtime Removing System.Memory ApiCompatBaseline file as it is no longer needed. +15537 area-Microsoft.CSharp Fix constant folding of integers in RuntimeBinder. Rewrite the constant folding done in RuntimeBinder to fix several bugs. Fixes #15464 +15539 area-System.Text Encoding tests cleanup Follow up to #15514 +15542 area-System.Diagnostics System.Diagnostics.DebuggerStepThroughAttribute should be available on properties During my debugging sessions I don't want to accidentally step into some casting-only properties I have created. This is particularly true for getter-only properties which simply encapsulate some object mapper's GetService() calls. Can we have the `System.Diagnostics.DebuggerStepThroughAttribute` (and similar attributes in vicinity) work on properties, please? +15546 area-Meta Fix signature of CFArrayCreate. CFIndex is a C long, therefore UIntPtr should be used This should fix the binding for 32bit OS X. There are no API changes. +15549 area-System.Net How to make httpclient call from the client to the server using .net core Hello Everyone, I want to make some httpclient calls to the server using .net core. I would really appreciate if anyone can provide me any reference or an idea how to do it it will be really helpful. Using .net framework it's not a problem, but using .net core I don't understand what will be the best way to go. To be more specific about my question, I would generalize it: That is, I want to make HttpClient calls to the server, to request for the api to the server and get the response back from the server in the form of http requests and response. Thank You! I look forward for your response. Best regards, Sandeep +15550 area-Meta HostingEnvironment.MapPath Behaves differently in VS 2017 (different MSBuild) than in VS 2015 "Both sessions in DEBUG of a ASP.NET API Project running .NET Framework 4.6.1. Method in Question: HostingEnvironment.MapPath(""~""); We were running the method inside the WebApiConfig.cs class (Class name is the same without the .cs) under the method ""Public static void Register(HttpConfiguration config)"" Method. Expected Output (as in VS 2015): ""Root:\path\to\folder\"" (without quotes) Result in VS 2017: ""Root:\Path\To\Folder"" (without Quotes) Build is treating this differently for some reason. and by upgrading to the RC, this breaks our code. " +15552 area-Microsoft.CSharp Remove meaningless pragma directives C++-style pragma for C++ error code won't have any effect. +15553 area-Microsoft.CSharp Seal virtual methods of uninherited classes in Microsoft.CSharp. May allow `call` rather than `callvirt` in some cases for a slight boost, but main benefit is simplifies understanding to know a method isn't overridden. +15555 area-Meta Remove test attributes only necessary for running on older CoreFX versions Remove these `[SkipOnTargetFramework(TargetFrameworkMonikers.Netcoreapp1_0]` `[SkipOnTargetFramework(TargetFrameworkMonikers.Netcoreapp1_1]` We do not have plans to run the CoreFX tests against older versions of .NET Core so these are unnecessary and we should remove them all. We still need the versionless one `[SkipOnTargetFramework(TargetFrameworkMonikers.Netcoreapp)]` where a test only passes on Desktop +15556 area-System.Reflection Add System.Reflection.Emit.TypeBuilder.CreateType() Resolves https://github.com/dotnet/corefx/issues/15414 cc: @danmosemsft @joperezr @AlexGhiondea +15557 area-System.Security Remove AccessControl OOM tests An OOM from the constructor isn't something we should even be testing in this case, especially not in an innerloop test. Better just to remove it. resolves https://github.com/dotnet/corefx/issues/15502 +15558 area-Infrastructure Clean up duplicated ProjectReferences in ref projects There's a few ref projects which have duplicated P2P references. This removes the duplicates. +15559 area-Meta Remove test attributes only necessary for running on older CoreFX versions Remove all instances of: ```C# [SkipOnTargetFramework(TargetFrameworkMonikers.Netcoreapp1_0] ``` Contributes to #15555 cc @danmosemsft +15560 area-System.IO DeflateStream fails to return final byte of decompressed data When decompressing certain data, reading from a DeflateStream byte-by-byte fails to return the final byte, whereas reading two or more bytes at once succeeds. Here is a repro: https://github.com/ddrinka/DeflateStreamBug ``` xUnit.net .NET CLI test runner (64-bit .NET Core win10-x64) Discovering: DeflateStreamBug.Test Discovered: DeflateStreamBug.Test Starting: DeflateStreamBug.Test DeflateStreamBug.Test.DeflateStream_Test.Read_CompressedData_Last1 [FAIL] Assert.Equal() Failure Expected: 1 Actual: 0 Stack Trace: C:\src\DeflateStreamBug\test\DeflateStreamBug.Test\DeflateStream_Test.cs(36,0): at DeflateStreamBug.Test.DeflateStream_Test.Read_CompressedData_Last1() Finished: DeflateStreamBug.Test ``` This issue appears resolved in netcoreapp1.1, but I have verified it exists in 1.0.0-1.0.3. Net452 does not exhibit the issue. +15561 area-Infrastructure Add uap vertical cc: @ericstj @weshaggard @danmosemsft FYI: @MattGal @Chrisboh @tarekgh This PR adds the UAP vertical configurations for source. With these changes you should now be able to call `build.cmd -framework:uap` and get the TargetingPack and the runtime assets for uap. There are still some things needed to be done for UWP which are: - Add the required configurations for tests so that `build-tests.cmd -framework:uap` work as well. - Enable the PInvoke Analyzer to make sure we aren't making any invalid calls. - We did end up removing a lot of netcore50 configurations before the build from source effort, so there might be a lot of libraries that used to build against the WinRT facade but they don't any longer. - We still need to do the work for creating the flat package for uap. +15562 area-System.Diagnostics Fix Process start time calculation We had some wrong assumptions in our calculation like assuming the absolute time is start at boot time which is not true on Mac OS 10.12 The changes are fixing the calculation of the absolute time. +15565 area-Microsoft.CSharp Replace GetTypeCode extension with call to Type.GetTypeCode() Wasn't available once. Now it is, and it caches, too. +15566 area-System.Data GenerateThisAssemblyCS.targets file should be removed cc @saurabh500 We should either completely remove the GenerateThisAssemblyCS.targets (https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/GenerateThisAssemblyCs.targets) file or if we really need the functionality it should be merged into our Assembly information generation (https://github.com/dotnet/buildtools/blob/master/src/Microsoft.DotNet.Build.Tasks/PackageFiles/versioning.targets). +15569 area-System.Memory Refactoring Span/ReadOnlySpan Extensions into partial classes - Separating shared and platform specific implementations The CI should pass after the following CoreCLR change is merged: https://github.com/dotnet/coreclr/pull/9182 +15570 area-System.Security Could not load file or assembly 'System.Security.Cryptography.Algorithms/Primitives When calling encryption functions (such as Aes) from a .NET 4.6 test library, there are no problems. However, if the encryption calls happen inside of a netstandard13 which is then referenced by .NET 4.6 test library or .NET 4.6 console, I get: #### Net 4.6 library calling netstandard13 function calling Aes (NUnit 3.6 in NCrunch) > System.BadImageFormatException : Could not load file or assembly 'System.Security.Cryptography.Algorithms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058) > ----> System.BadImageFormatException : Could not load file or assembly 'file:///C:\Users\tim\AppData\Local\NCrunch\6380\36\_ncrunchreferences\System.Security.Cryptography.Algorithms.dll' or one of its dependencies. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058) > ----> System.BadImageFormatException : Cannot load a reference assembly for execution. > at cryptPcl.fromPcl.Test() > #### Net 4.6 library calling netstandard13 function calling Aes (nunit3-console) ![image](https://cloud.githubusercontent.com/assets/157766/22393014/aacbd492-e4b4-11e6-960f-992093d91caa.png) > Errors, Failures and Warnings > > 1) Error : cryptTest.Class1.anotherTest > System.IO.FileNotFoundException : Could not load file or assembly 'System.Security.Cryptography.Algorithms, Version=4.0. > 0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file speci > fied. > at cryptPcl.fromPcl.Test() > at cryptTest.Class1.anotherTest() in C:\Users\tim\Documents\Visual Studio 2015\Projects\cryptTest\cryptTest\Class1.cs > :line 56 #### Net 4.6 Console app calling netstandard13 function calling Aes ![image](https://cloud.githubusercontent.com/assets/157766/22392994/5e30e974-e4b4-11e6-8b21-7d0438142a2f.png) > An unhandled exception of type 'System.IO.FileNotFoundException' occurred in ConsoleApplication1.exe > > Additional information: Could not load file or assembly 'System.Security.Cryptography.Algorithms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Interesting, direct calls to Aes from the same test project work just fine. Somehow the call from the netstandard13 doesn't know that the real non reference System.Security.Cryptography.Algorithms is already available. --- Test project here: https://github.com/tofutim/cryptTest --- **Update.** If I add the System.Security.Cryptography.Algorithms (which also brings in .Primitives), NCrunch successfully runs the test. However, both the nunit3-console and the Console app give a new but similar error: > An unhandled exception of type 'System.IO.FileLoadException' occurred in ConsoleApplication1.exe > > Additional information: Could not load file or assembly 'System.Security.Cryptography.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) When I try to add the System.Security.Cryptography.Primitives nuget (4.3), I cannot, as it is already installed. Help! I'm out of things to try. :( --- Egads! I was able to get my .NET 4.6 console and .NET 4.6 test library to work by downgrading to 4.2.0 for System.Security.Cryptography.Algorithms and 4.0.0 for System.Security.Cryptography.Primitives. But it still does require the nuget packages even though the compiler seems to think otherwise. (I tried adding 4.3.0 .Algorithms nuget to the netstandard13 lib, and updating the console to app to 4.3.0 but it still complained about not finding the 4.0.0 .Primitives lib) +15573 area-System.Collections API Proposal: Adding public ArrayBuilder ## Background It's very common to use a `List` as a local variable, `Add` to it a couple of times, and throw away the list after the method is finished. Doing so incurs heap allocations, not only for the backing vector for the list, but also for the `List` itself since it is a class. It would be great to have a struct alternative to `List` to reduce unnecessary allocations. ## Proposal We should add the `ArrayBuilder` struct: ```c# public struct ArrayBuilder : IList, IReadOnlyList { public ArrayBuilder(); public ArrayBuilder(IEnumerable items); public int Capacity { get; } public int Count { get; } public ref T this[int index] { get; } public void Add(T item); public void AddRange(IEnumerable items); public void Clear(); public void Contains(T item); public void CopyTo(T[] array); public void CopyTo(T[] array, int arrayIndex); public void CopyTo(int index, T[] array, int arrayIndex, int count); public Enumerator GetEnumerator(); public int IndexOf(T item); public void Insert(int index, T item); public bool Remove(T item); public void RemoveAt(int index); public T[] ToArray(); // Resets the ArrayBuilder after it's called. public ArraySegment ToArraySegment(); // Does not copy, resets the ArrayBuilder after it's called. public void UncheckedAdd(T item); // Assumes there is enough room in the backing array. bool ICollection.IsReadOnly { get; } IEnumerator IEnumerable.GetEnumerator(); IEnumerator IEnumerable.GetEnumerator(); public struct Enumerator : IEnumerator { public T Current { get; } public void Dispose(); public bool MoveNext(); void IEnumerator.Reset(); } } ``` ## Notes - Because C# does not support parameterless struct constructors, we won't be able to set the underlying array to an empty one when the `ArrayBuilder` is first created, so we'll have to incur [an extra null check](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Collections/Generic/ArrayBuilder.cs#L38) on every `Add` where List does not. - The alternatives would be to have a factory method `ArrayBuilder.Create()`, or forcing the user to pass in a dummy parameter to the constructor, so we could do initialization work. However, it seems better to incur the check than to sacrifice the user experience. And if parameterless struct constructors are enabled in the future then we can remove it without breaking anything. - The builder will use the exact same buffer sizes as `List` (0, 4, 8, ...) to make it a no-brainer to switch from List to ArrayBuilder in local variables. - `UncheckedAdd` will be similar to `Add`, but won't check if there's more room in the array. If there isn't, it will generate an `IndexOutOfRangeException`. See [implementation](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Collections/Generic/ArrayBuilder.cs#L118) - `ToArray` will reset the ArrayBuilder after it's called. The reason is we can employ an optimization where if the count of the builder is equal to its' capacity, we just hand back the underlying array and don't do any copying. However, this could cause issues if the same array is handed back twice, and modified by both callers. To prevent these errors we will reset the ArrayBuilder back to its initial state after one call. - In the [current implementation](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Collections/Generic/ArrayBuilder.cs#L102) we take a different approach and invalidate the builder instead of resetting it after `ToArray` is called. However, I'm deciding not to go with that approach because then we will have another state we have to account for in every method. - This is primarily meant to be used for scenarios when the size of the array is small. Sometime later (after some discussion has ensued here but before the API is approved), I will publish a separate proposal on [`LargeArrayBuilder`](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Collections/Generic/LargeArrayBuilder.cs) which uses a separate buffering strategy that reduces allocations by 1/3. +15574 area-System.Net use SOCKETSTRESS_ITERATIONS env var to allow longer stress runs Base stress test takes about 3.5 seconds to run on my machine, which isn't very long. This enables you to set SOCKETSTRESS_ITERATIONS to do longer stress runs. @stephentoub @CIPop @davidsh @Priya91 +15576 area-System.Threading Add tests for Thread constructor with stack size argument Fixes dotnet/coreclr#9158 Fixes dotnet/coreclr#9167 Part of dotnet/coreclr#9186 +15577 area-System.Runtime System.Lazy regression tests This is a prelude to an alternative Lazy implementation in a PR at https://github.com/dotnet/coreclr/pull/8963 +15579 area-Infrastructure MSB3277 on clean build of corefx, macOS ``` /path/to/corefx/Tools/Microsoft.Common.CurrentVersion.targets(1819,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [/path/to/corefx/src/Tools/CoreFx.Tools/CoreFx.Tools.csproj] ``` macOS 10.12.3 (16D32), corefx commit 5a361ea9. +15581 area-System.Globalization GetLeapMonthTest failing in master on Unix The test is currently failing every Unix run with these errors: ``` System.Globalization.Tests.CalendarsMoreTests.GetLeapMonthTest(calendar: ChineseLunisolarCalendar { AlgorithmType = LunisolarCalendar, Eras = [1], IsReadOnly = False, MaxSupportedDateTime = 2101-01-28T23:59:59.9999999, MinSupportedDateTime = 1901-02-19T00:00:00.0000000, ... }, yearHasLeapMonth: 0, algorithmType: LunisolarCalendar) [FAIL] calendar.GetLeapMonth returned wrong value Expected: True Actual: False Stack Trace: /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Globalization.Calendars/tests/Misc/Calendars.netstandard.cs(51,0): at System.Globalization.Tests.CalendarsMoreTests.GetLeapMonthTest(Calendar calendar, Int32 yearHasLeapMonth, CalendarAlgorithmType algorithmType) System.Globalization.Tests.CalendarsMoreTests.GetLeapMonthTest(calendar: JapaneseLunisolarCalendar { AlgorithmType = LunisolarCalendar, Eras = [4, 3], IsReadOnly = False, MaxSupportedDateTime = 2050-01-22T23:59:59.9999999, MinSupportedDateTime = 1960-01-28T00:00:00.0000000, ... }, yearHasLeapMonth: 0, algorithmType: LunisolarCalendar) [FAIL] calendar.GetLeapMonth returned wrong value Expected: True Actual: False Stack Trace: /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Globalization.Calendars/tests/Misc/Calendars.netstandard.cs(51,0): at System.Globalization.Tests.CalendarsMoreTests.GetLeapMonthTest(Calendar calendar, Int32 yearHasLeapMonth, CalendarAlgorithmType algorithmType) Finished: System.Diagnostics.Tools.Tests System.Globalization.Tests.CalendarsMoreTests.GetLeapMonthTest(calendar: KoreanLunisolarCalendar { AlgorithmType = LunisolarCalendar, Eras = [1], IsReadOnly = False, MaxSupportedDateTime = 2051-02-10T23:59:59.9999999, MinSupportedDateTime = 0918-02-14T00:00:00.0000000, ... }, yearHasLeapMonth: 0, algorithmType: LunisolarCalendar) [FAIL] calendar.GetLeapMonth returned wrong value Expected: True Actual: False Stack Trace: /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Globalization.Calendars/tests/Misc/Calendars.netstandard.cs(51,0): at System.Globalization.Tests.CalendarsMoreTests.GetLeapMonthTest(Calendar calendar, Int32 yearHasLeapMonth, CalendarAlgorithmType algorithmType) System.Globalization.Tests.CalendarsMoreTests.GetLeapMonthTest(calendar: TaiwanLunisolarCalendar { AlgorithmType = LunisolarCalendar, Eras = [1], IsReadOnly = False, MaxSupportedDateTime = 2051-02-10T23:59:59.9999999, MinSupportedDateTime = 1912-02-18T00:00:00.0000000, ... }, yearHasLeapMonth: 0, algorithmType: LunisolarCalendar) [FAIL] calendar.GetLeapMonth returned wrong value Expected: True Actual: False Stack Trace: ests/Misc/Calendars.netstandard.cs(51,0): at System.Globalization.Tests.CalendarsMoreTests.GetLeapMonthTest(Calendar calendar, Int32 yearHasLeapMonth, CalendarAlgorithmType algorithmType) ``` +15585 area-Microsoft.CSharp Improve BinderHelper.Bind `args` will be turned into an array and its sources all have determinable sizes, so create an array to pass in immediately, avoiding repeated enumerator allocation and allowing array access. An index is incremented with each pass through `args`, so now it's an array just use `for(;;)` access with it as the index. `parameters` will always end up as the same size as `args`, so preallocate an array rather than growing a `List`. Use direct indexing rather than Linq's `First` and `FirstOrDefault`. Allow for binding restrictions with literal `NaN` (we can't use `==` as the previous comment said, but we can call `IsNaN`). Create block for increment/decrement writeback directly, rather than growing a `List`. Inline the expressions (IMO clearer resulting expression for those who are often reading code with explicit expression creation). +15587 area-System.Numerics Fixed BigInteger test failure for uk-UA BigInteger string parsing test was faulty for cultures that use 0xA0 as the group separator. The fixed test does not expect an exception anymore if: - The trailing whitespace is 0x20 characters only AND - Grouping is allowed (NumberStyles.AllowThousands) AND - Currency symbol is allowed and currency group separator is 0xA0 OR Currency symbol is not allowed and number group separator is 0xA0 Fix #1642 +15588 area-Infrastructure Add PortableLinux build to CI @weshaggard @ellismg @mmitche PTAL This adds the PortableLinux build support to CoreFX CI. FYI @janvorli +15589 area-System.IO System.IO.FileSystem.AccessControl/tests/FileSystemAclExtensions.cs Set methods throw different exception In issue #15375, @JonHanna recommended submitting an issue to make the exceptions being thrown be consistent. I would like to do this work if this can be assigned to me. Thanks, Michael +15590 area-Microsoft.CSharp Null propagation and merging of null-checks in Microsoft.CSharp Some avoid repeated field access or method calls. Some just make it easier to grep for the cases that avoid repeated field access or method calls. +15591 area-System.Net Proposal: Cookie and SetCookie Properties in HttpHeaders # Proposal: Add Cookie and SetCookie as Properties in HttpRequestHeaders and HttpResponseHeaders. ```c# namespace System.Net.Http.Headers { public sealed class HttpRequestHeaders : HttpHeaders { public CookieCollection Cookie { get; set; } } public sealed class HttpResponseHeaders : HttpHeaders { public CookieCollection SetCookie { get; set; } } } ``` # Reason: Recover Cookies and setting Cookies from Headers is a common action. +15592 area-System.Numerics Avoid allocations for BigInteger.&,|,^ for small operands We can skip the ~6 array allocations or so and just use an actual bitwise operation if both bigints have their values stored in `_sign`. +15597 area-Meta Avoid unnecessary branches when fixing non-null/empty arrays When we know an array is not null or empty at the point where `fixed` is used, we can reduce the number of branches (and IL size of the method body) by using the address of the first element. Based on the discussion here: https://github.com/dotnet/corefx/pull/15432#discussion_r97684916 Related: - https://github.com/dotnet/coreclr/pull/9115 - https://github.com/dotnet/coreclr/pull/9188 +15598 area-System.Threading "Revert ""Add tests for Thread constructor with stack size argument""" Reverts dotnet/corefx#15576 +15599 area-System.IO Add the ArchiveComment property for ZipArchive class When we make a zip package, the comment is very important function that we use it very often. The corefx has already implemented it, see the definition `_archiveComment` field at [ZipArchive.cs#L32](https://github.com/dotnet/corefx/blob/a9d5ce3234a890f1f4e64318b23e4bbaf6da1a0f/src/System.IO.Compression/src/System/IO/Compression/ZipArchive.cs#L32), the reader at [ZipArchive.cs#L561](https://github.com/dotnet/corefx/blob/a9d5ce3234a890f1f4e64318b23e4bbaf6da1a0f/src/System.IO.Compression/src/System/IO/Compression/ZipArchive.cs#L561) and the writter at [ZipArchive.cs#L693](https://github.com/dotnet/corefx/blob/a9d5ce3234a890f1f4e64318b23e4bbaf6da1a0f/src/System.IO.Compression/src/System/IO/Compression/ZipArchive.cs#L693). We can inbreak the `ZipArchive` instance by reflect and modify the `_archiveComment` field, then saved zip file is fine. #### Proposed API Just make private field `_archiveComment` as public property `ArchiveComment`, or other advises. +15600 area-System.Threading Add tests for Thread constructor with stack size argument Fixes dotnet/coreclr#9158 Fixes dotnet/coreclr#9167 Part of https://github.com/dotnet/coreclr/pull/9186 Forked from https://github.com/dotnet/corefx/pull/15576 +15609 area-Infrastructure build.cmd throws null ref exception trying to get help with -? "Trying to get help: ``` C:\Users\stoub\Source\Repos\corefx>build.cmd -? There are new changes on how we build. Use this script only for generic build instructions that apply for both build native and build managed. Otherwise: Before Now build.cmd native build-native.cmd build.cmd managed build-managed.cmd For more information: ""https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/developer-guide.md"" ---------------------------------------------------------------------------- Tools are already initialized. Error: Object reference not set to an instance of an object. at Microsoft.DotNet.Execute.Setup.FormatSetting(String option, String value, String type, String toolName) at Microsoft.DotNet.Execute.Setup.BuildParametersForCommand(Dictionary`2 commandParameters, String toolName) at Microsoft.DotNet.Execute.Setup.BuildCommand(String commandSelectedByUser, List`1 parametersSelectedByUser, Dictionary`2 parameters) at Microsoft.DotNet.Execute.Setup.GetHelpCommand(String commandName, String alias) at Microsoft.Fx.CommandLine.CommandLineParser.GetHelp(Int32 maxLineWidth, String parameterSetName, Boolean displayGlobalQualifiers) at Microsoft.Fx.CommandLine.CommandLineParser.<>c.b__0_0(CommandLineParser parser) at Microsoft.Fx.CommandLine.CommandLineParser.Parse(Action`1 parseBody, Action`1 helpHandler, Action`2 errorHandler, Setup setupContent, String[] args) at Microsoft.Fx.CommandLine.CommandLineParser.ParseForConsoleApplication(Action`1 parseBody, String[] args, Setup setupContent) at Microsoft.DotNet.Execute.Executor.DefineParameters(String[] args, Setup setupInformation) ```" +15611 area-Microsoft.CSharp Validation of argumentInfo argument to RuntimeBinder.Binder methods "In debug mode an assertion fails if the `argumentInfo` argument to `Binder.UnaryOperation` or `Binder.BinaryOperation` is null or doesn't have 1 or 2 arguments respectively. This is not however enforced, so the assertion isn't valid. With either of them, excessive `argumentInfo` members have no effect on the outcome, while too few or if one of them is null causes AooRE or NRE when the callsite's target is invoked. Other operation factories will throw NRE if an `argumentInfo` element is null. Excessive infos here are likewise harmless, and potentially even useful, in that a binder like: ```C# var x = CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null); var y = CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null); var binder = Microsoft.CSharp.RuntimeBinder.Binder.InvokeMember(CSharpBinderFlags.None, ""ToString"", new Type[0], GetType(), new[] {x}); ``` Can be used to create delegates representing both the likes of `3.ToString()` and of `3.ToString(""n"")`. (Probably not a good idea, but it works). `UnaryOperation` and `BinaryOperation` could have the validation they assume added. The compat risk is negliable in banning too few arguments as the resulting binder can't be used for anything useful. In banning too many there's a slight risk as that currently works, but it seems unlikely anything hits that path. The other cases can have the NRE on a null info turned into an ANE, but validation of the number of infos would have to wait until at least when the callsite is created, perhaps even until the target is created (not sure yet). Since there's a practical (if questionable) reason why one might deliberately have too many infos, perhaps that should still be allowed." +15612 area-Infrastructure build-managed -release fails when trying to nuget pack Microsoft.Private.CoreFx.NETCoreApp The full log can be found here: https://gist.github.com/jamesqo/2151360517bd4e16981a8d90153bbc48 I've never run into this issue with a debug build yet. +15613 area-System.Linq Calling CallSite.Create() with a null binder is accepted. The result will always throw on use, and the base class's `Create()` throws ANE in such cases. This should probably throw an ANE to catch erroneous calls. +15614 area-System.Linq Throw ArgumentNullException on CallSite.Create() with null binder Fixes #15613 +15615 area-Infrastructure build failures when building Linux dlls on Windows I cleaned my repo and then tried doing: ``` build.cmd -os=Linux -release ``` and I got a bunch of errors like this: ``` C:\Users\stoub\Source\Repos\corefx\bin\obj\AnyOS.AnyCPU.Release\System.Runtime.InteropServices.WindowsRuntime\netstandard1.3\System.Runtime.InteropServices.WindowsRuntime.notsupported.cs(14,86): error CS0436: The type 'EventRegistrationToken' in 'C:\Users\stoub\Source\Repos\corefx\bin/obj/AnyOS.AnyCPU.Release/System.Runtime.InteropServices.WindowsRuntime/netstandard1.3/System.Runtime.InteropServices.WindowsRuntime.notsupported.cs' conflicts with the imported type 'EventRegistrationToken' in 'System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'. Using the type defined in 'C:\Users\stoub\Source\Repos\corefx\bin/obj/AnyOS.AnyCPU.Release/System.Runtime.InteropServices.WindowsRuntime/netstandard1.3/System.Runtime.InteropServices.WindowsRuntime.notsupported.cs'. [C:\Users\stoub\Source\Repos\corefx\src\System.Runtime.InteropServices.WindowsRuntime\src\System.Runtime.InteropServices.WindowsRuntime.csproj] ``` cc: @weshaggard +15616 area-Infrastructure Build multiple configurations Replacement for https://github.com/dotnet/corefx/pull/15541 Still need to clean up commits. /cc @weshaggard @joperezr +15622 area-System.Collections Proposal: Dictionary.Remove(TKey, out TValue) ### API Proposal ```c# public bool Remove(TKey key, out TValue value); ``` ### Motivation The following is a common way to pull an item out of a Dictionary: ```c# Dictionary data = ...; ... if(data.TryGetValue(key, out value)) { data.Remove(key); // do something with value } ``` This requires the dictionary to calculate the hash code twice when the key is in the dictionary. ### Details Functionality-wise it would do the same thing as the following method, but will be more efficient by having to generate the hash code only once: ```c# public bool Remove(TKey key, out TValue value) { if(!TryGetValue(key, out value)) return false; Remove(key); return true; } ``` ## Original Proposal Like `Stack.Pop` or `Queue.Dequeue`, I think ability to get and remove at the same time is common So I think we should have `T TakeAt(int index)`,`T[] TakeRange(int index,int count)` for `List` and `T TakeValue(K key)`,`bool Remove(K key,out V value)` for `Dictionary` in addition to `Remove` For performance wise it should implement on base class directly +15623 area-System.Net bypass SSL validation on Unbuntu Our client has an on premise hosting of Cloud foundry that runs using a self signed certificate. We are developing MicroServices for him in ASP.NET Core. During this we need to make HTTP calls for which we are using HttpClient. •Is there way I can bypass the SSL validation check in SSL client for Ubuntu( I know it can be done for windows)? +15628 area-System.Net Remove ReadOnlyStream allocation from CurlHandler When calling ReadAsStreamAsync on the response content, StreamContent ends up allocating a ReadOnlyStream to wrap the CurlResponseStream. But CurlResponseStream is already read-only, and throws appropriately from all of its writing/seeking methods, so the wrapper is pure overhead. This was already fixed in WinHttpHandler, and I'm just applying the same fix to CurlHandler. +15631 area-System.Net Use ArrayPool for CurlHandler's send transfer state When sending request data from something other than a byte[], CurlHandler allocates a buffer to transfer data from the request to libcurl, typically 16K (unless the request content is known to be smaller than that). We can use a buffer from ArrayPool for that. cc: @davidsh, @geoffkizer +15633 area-System.IO File.GetLastWriteTime inconsistencies. On Windows, File.GetLastWriteTime does not throw an error if the file does not exist. On Linux, however, this function throws an error. +15635 area-Infrastructure Figure out the set of CI legs we should run by default on each PR Today we run various OS's, Architectures, and flavors (Debug/Release) on every PR. I think we should figure out the best set of combinations to get the most bang-for-the-buck in our PR CI system. For example I would not suggest we do Debug/Release for all OS's we should mix and match. To see the discussion here is what I would suggest: Windows - Debug - x64 Windows - Release - x86 OSX - Debug - x64 Ubuntu - Release - x64 CentOS - Debug - x64 PortableLinux - Release - x64 That should give us a decent combination without trying to test the full matrix of configurations. +15636 area-System.Globalization Fix Lunisolar calendar leap month tests Lunisolar calendars tests assumed these calendars doesn't have leap months which is wrong. the change is just fixng the tests Fixes #15581 +15637 area-System.Linq [WIP] Specialize Where.First, Where.Last and the First and Last overloads accepting predicates Changes: - `source.Where(predicate).First()` should have the same result as `source.First(predicate)` (barring exceptions), so if we optimize for one we can optimize for the other. This PR speeds things up in both cases if `source` is an array/List/IList, avoiding double interface dispatch and an enumerator allocation. - `source.Where(predicate).Last()` is now recognized in addition to `source.Last(predicate)`, so we don't run the predicate on every item if `source` supports random access. - I also added code to specialize `ilist.Where(predicate)`. It makes sense because we can check for IList at little cost to existing codepaths, and there is already logic in place for `ilist.First(predicate)` and `ilist.Last(predicate)`, so we can implement `ilist.Where(predicate).First()` and `ilist.Where(predicate).Last()` for free. Marking WIP temporarily because I need to finish adding XML docs and make sure all branches are being covered. Comments are welcome in the meantime though. /cc @JonHanna @VSadov **edit:** Forgot the most important thing-- performance results. [Here they are.](https://gist.github.com/jamesqo/a9f0f37fca46481fe6d94a9dbd5c896f) There seems to be an improvement across the board for basically every pattern. The leaked memory stats can be ignored, I added that as part of https://github.com/dotnet/corefx/pull/15389. +15639 area-Infrastructure Add a task&target to update project configurations Previously there was just a target to flag errors for projects. This wasn't all that useful so I added a target to fix them. /cc @weshaggard @joperezr +15640 area-System.Net "Dns.GetHostEntry(""IPv4_string"") does not work in Linux environment." "I am working on developing integrated authentication feature in Linux. The feature utilizes API **System.Net.Dns.GetHostEntry**(string hostNameOrAddress) for domain name reverse look up while generating server SPN. This method works great in Windows, but does not work in Linux when I feed IPv4 address for parameter. IPv6 parameter works though in Linux. Here is a sample code and its stack trace: IPHostEntry hostEntry = Dns.GetHostEntry(""xxx.xxx.xxx.xxx""); System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : No such device or address Stack Trace: at System.Net.Dns.InternalGetHostByAddress(IPAddress address, Boolean includeIPv6) at System.Net.Dns.GetHostEntry(String hostNameOrAddress) CC: @saurabh500 @corivera @YoungGah" +15643 area-Meta Adding missing apis to .NET Core that where added to netstandard 2.0 Fixes #15362 This needs to wait for [dotnet/coreclr #9203](https://github.com/dotnet/coreclr/pull/9203) PR to go in and that corefx ingests the new coreclr with this changes. /cc @weshaggard @danmosemsft +15646 area-System.Data Port System.Data.Odbc Implements `System.Data.Odbc` (#13035). **Current status**: * Integration tests don't run in our test infrastructure because we're missing a dep. It's being tracked on an internal ticket. ping @divega @anpete @eerhardt @saurabh500 @weshaggard. +15648 area-Infrastructure Fix configurations for UAP These changes enable TargetGroup=UAP to build completely. @joperezr you should be able to work from here and just add configurations to projects that aren't building. /cc @weshaggard +15651 area-System.Threading string.Format call fixed Format string missed argument +15652 area-System.Data SqlFileStream roadmap Hello I'd like to ask are there any plans to implement SqlFileStream. At this moment this is the only part that makes me to stop migrate to core base. +15656 area-Infrastructure ./build.sh -? is not helpful ./build.sh -? ``` There are new changes on how we build. Use this script only for generic build instructions that apply for both build native and build managed. Otherwise: Before Now build.sh native build-native.sh build.sh managed build-managed.sh For more information: https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/developer-guide.md ---------------------------------------------------------------------------- Tools are already initialized Error: Object reference not set to an instance of an object. at Microsoft.DotNet.Execute.Setup.FormatSetting(String option, String value, String type, String toolName) at Microsoft.DotNet.Execute.Setup.BuildParametersForCommand(Dictionary`2 commandParameters, String toolName) at Microsoft.DotNet.Execute.Setup.BuildCommand(String commandSelectedByUser, List`1 parametersSelectedByUser, Dictionary`2 parameters) at Microsoft.DotNet.Execute.Setup.GetHelpCommand(String commandName, String alias) at Microsoft.Fx.CommandLine.CommandLineParser.GetHelp(Int32 maxLineWidth, String parameterSetName, Boolean displayGlobalQualifiers) at Microsoft.Fx.CommandLine.CommandLineParser.<>c.b__0_0(CommandLineParser parser) at Microsoft.Fx.CommandLine.CommandLineParser.Parse(Action`1 parseBody, Action`1 helpHandler, Action`2 errorHandler, Setup setupContent, String[] args) at Microsoft.Fx.CommandLine.CommandLineParser.ParseForConsoleApplication(Action`1 parseBody, String[] args, Setup setupContent) at Microsoft.DotNet.Execute.Executor.DefineParameters(String[] args, Setup setupInformation) ``` +15659 area-System.Net [Port 1.1] Fix System.Net.Http.HttpClientHandler for net46 build Porting fix from: #15036. +15660 area-System.Xml Adding a newline to an XML document using XDocument "I was wondering if someone can add the functionality to add an empty line to an XML file (or if the functionality already exists and I couldn't find it on the internet...). I tried doing `xelement.element(""elementname"").Add(Environment.newline)` but it just screws up the formatting of the document. If I do that, this is what the XML file looks like (truncated for clarity): ``` ```" +15661 area-System.Net Reconsider allowing unsecure connections in .NET Core I'm writing a C# wrapper around a very-much legacy SOAP/XML webservice. The service uses a self-signed certificate that is expired. It also uses SSLv3, which, from what I can learn here and on the WCF teams github, is not allowed in corefx. I fully understand the implications and reasoning behind this, but is there no way around this limitation? The company that made the device running the webservice stopped maintaining it years ago. Will .NET Core not allow us to interact with such legacy devices? As I see it, being able to trust a self-signed certificate is no better than allowing SSL. On a side note: My app works on Windows, but not on Ubuntu or Docker. Is that intentional? +15663 area-System.Linq Allow for specify return value on System.Linq.Enumerable.*OrDefault methods I would like to propose adding overloads to the System.Linq.Enumerable.*OrDefault and System.Linq.Queryable.*OrDefault methods for specifying the value to be returned in the default case. This is the value that would be returned instead of `default(TSource)` when there are no items in the enumeration There are times when the default value of a given type may be a valid value from the enumeration. If the default value for the enumeration type is valid value, there is not a nice way to determine if the returned values was because the enumeration was empty or if that value was in the enumeration. ## Proposed API change ```C# namespace System.Linq { public static class Enumerable { public static TSource SingleOrDefault(this IEnumerable source, TSource defaultValue); public static TSource SingleOrDefault(this IEnumerable source, Func predicate, TSource defaultValue); public static TSource FirstOrDefault(this IEnumerable source, TSource defaultValue); public static TSource FirstOrDefault(this IEnumerable source, Func predicate, TSource defaultValue); public static TSource LastOrDefault(this IEnumerable source, TSource defaultValue); public static TSource LastOrDefault(this IEnumerable source, Func predicate, TSource defaultValue); } public static class Queryable { public static TSource SingleOrDefault(this IQueryable source, TSource defaultValue); public static TSource SingleOrDefault(this IQueryable source, Func predicate, TSource defaultValue); public static TSource FirstOrDefault(this IQueryable source, TSource defaultValue); public static TSource FirstOrDefault(this IQueryable source, Func predicate, TSource defaultValue); public static TSource LastOrDefault(this IQueryable source, TSource defaultValue); public static TSource LastOrDefault(this IQueryable source, Func predicate, TSource defaultValue); } } ``` ## Updates - Switch from using default parameters to method overloads - Added IQueryable methods as well +15666 area-Infrastructure Mark System.Memory and Unsafe as .NET Core App assemblies. This should include both System.Memory and System.Runtime.CompilerServices.Unsafe in the .NET Core package. @ericstj +15667 area-Infrastructure netstandard tests aren't currently running Any test projects that have both a netcoreapp and netstandard build configuration is only ever running the tests for netcoreapp. So any tests that are conditioned for netstandard only are not currently being ran. System.Runtime (https://github.com/dotnet/corefx/blob/master/src/System.Runtime/tests/System.Runtime.Tests.csproj) is an example of such a project. We need to decide whether or not we should run all compatible configurations for a given vertical or only run the most specific configuration for the vertical and make sure it correctly aggregates all the tests. One drawback to doing only the one configuration is we want have any tests built against netstandard and running in the context of that vertical. cc @ericstj @joperezr @tarekgh @mellinoe +15668 area-System.Linq Implementation and tests for Queryable.Append, Queryable.Prepend Fixes https://github.com/dotnet/corefx/issues/14220 /cc @JonHanna @VSadov @OmarTawfik +15669 area-System.Data Investigate if lock statements are necessary in SqlClient.SNITcpHandle's EnableSsl & DisableSsl methods Whenever reads and writes are called on the _stream variable in SNITcpHandle, a lock(this) statement is used. EnableSsl & DisableSsl set the value of _stream without using any lock statements. CC @saurabh500 +15671 area-System.IO Port System.IO.Ports - Ports SerialPort code - Stubs out test project and adds smoke test The NativeMethods class (which only contains defines) should be broken out into Common/src/Interop files. Tests need added. I'll try and round up what we currently have. Contributes to #984. @ianhays, @joperezr, @weshaggard, @ericstj, @danmosemsft, @SWY1985, @willdean, @karelz +15673 area-System.Reflection Re-enable reflection only tests +15674 area-System.Reflection Modify reflection only tests modify reflectiononly tests as their implementation is being changed to NotSupported in coreclr repo. Disable the tests for now till new changes are pulled in. +15678 area-Infrastructure Get path to contract from config system This is needed for cases where we have refs that don't binplace. /cc @weshaggard +15679 area-System.Net Several changes to improve Socket stress "Existing Socket stress test ignores most failures, such as connection failure, send failure, receive failure, etc. I am adding checks for these failures. When adding these checks, I noticed several other problems: (1) On Linux, all connections were silently failing due to the way we were trying to connect. The server was listening on IPv6Loopback, but the client was trying to connect via DNS resolution to ""localhost"". On Windows, ""localhost"" resolves to both IPv6Loopback and IPv4Loopback, so this works. On Linux, it only resolves to IPv4Loopback, thus all client connections fail. Fix is to make the client explicitly connect to IPv6Loopback instead of using the ""localhost"" name. (2) On Windows, the host OS would start rejecting connections at around the 150th connection or so. This seemed to be due to the way the test works; it was connecting and immediately performing lots and lots of sends to the server. The fix is to rework the test to do sends and receives in a slightly less aggressive way, and make sure that the client is processing receives at the same time as sends by spawning separate tasks for them. Also, a couple related changes: (1) Randomly vary the size of the amount of data sent before the client stops sending and waits for all data to be received from the server. (2) Add the SOCKETSTRESS_ITERATIONS env variable to enable longer stress runs. (3) Rework some code to use Tasks, to make the code easier to implement (4) Have just one stress test instead of multiple. (The second variation wasn't really providing any additional coverage anyway.) This stress test should take around 30s to run, compared to 3s previously. " +15680 area-System.Runtime unsigned-correctness in interop structures I have been looking at the recent port #984 of the SerialPort code , and it raises for me a question about the use of unsigned types in interop signatures. For example, the native `COMMTIMEOUTS` structure contains 5 `DWORDS` (https://msdn.microsoft.com/en-us/library/windows/desktop/aa363190.aspx). However, in interop/windows/kernel32/interop.COMMTIMEOUTS.cs, it has 5 ints (this is how it came from the original netfx source). A corollary of this is that we end up with `MAXDWORD` being an defined as `const int = -1`, where it was originally `0xffffffff`. Clearly the p/invoke marshalling doesn't care whether a 32-bit number is signed or unsigned, but it seems to me that one should, in general, try to make p/invoke signatures, etc. match window.h as closely as possible. I don't see anything in the interop guidelines or previous issues about this - is there some policy against unsigned types in interop signatures? Or is this some kind of historical 'don't upset VB with unsigned types' sort of thing? Tagging @JeremyKuhne because he ported the stuff across +15682 area-System.Data Missing DataSetSchemaImporterExtension implementation CoreFX is missing implementation of [DataSetSchemaImporterExtension](https://msdn.microsoft.com/en-us/library/system.data.datasetschemaimporterextension(v=vs.110).aspx) which is available since .net 2.0 and not obsolete but missing in CoreFX. cc: @karelz @egorbo +15685 area-Infrastructure Update build table for PortableLinux Skip ci please +15686 area-Meta Question: style guide for abbreviations "I noticed that EntityFramework does not follow the Microsoft guideline: [Capitalization Conventions](https://msdn.microsoft.com/en-us/library/ms229043(v=vs.110).aspx) > A special case is made for two-letter acronyms in which both letters are capitalized, as shown in the following identifier: > IOStream DbSet, DbContext should be written as DBSet, DBContext. Examples: [IDataRecord.IsDBNull](https://msdn.microsoft.com/en-us/library/system.data.idatarecord.isdbnull(v=vs.110).aspx), [System.DBNull](https://msdn.microsoft.com/en-us/library/system.dbnull(v=vs.110).aspx). Another example: ```c# public static partial class EF ``` It should be written as Ef, if another guidelines are used. However, I did not find any info that Microsoft team has changed the capitalization rules. The document has no any description about it: https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md Can you clarify ASP.NET team position about 2-letter acronyms? [StyleCop](https://github.com/StyleCop/StyleCop) and [CodeFormatter](https://github.com/dotnet/codeformatter) have no special rules for this case. SonarQube has a wrong rule [S101](https://sonarqube.com/coding_rules#rule_key=csharpsquid%3AS101): > warning S101: Rename class ""RabbitMQTest"" to match camel case naming rules, consider using ""RabbitMqTest""." +15687 area-System.Threading Add exchange type for a scheduler "For pipelines, I'd like to be able to pass a `Scheduler` that determines where the continuation should run (could also be useful for other things). The closet thing we have today is a `SynchronizationContext` but it's really not appropriate for this. There's also a TaskScheduler but that's about scheduling tasks not arbitrary callbacks. ```C# public interface IScheduler { void Run(Action action); } ``` Not sure what other options we'd need here. this is similar to Java's executor https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executor.html. /cc @stephentoub **EDIT: Current proposal** ```C# public interface IScheduler { void Schedule(Action action, object state); } ``` ## Proposed API implemenations **Scheduler** ```C# public abstract class Scheduler : IScheduler { public static IScheduler Default => ThreadPool.Global; public static IScheduler Inline { get; } public abstract void Schedule(Action action, object state); } ``` The scheduler base class just has the default inline scheduler which runs actions inline. There are concerns about stack diving here but it's required for cases where the consumer wants to stay on the caller's thread. **ThreadPool** ```C# public class ThreadPool { public static IScheduler Local { get; } // QueueUserWorkItem (preferLocal:true) public static IScheduler Global { get; } // QueueUserWorkItem (preferLocal:false) } ``` Here we're exposing 2 schedulers from the ThreadPool type. These map to QueueUserWorkItem with various arguments. **SynchronizationContext** ```C# public class SynchronizationContext : IScheduler { public void Schedule(Action action, object state) { Post(new SendOrPostCallback(action), state); } } ``` Exposing the SynchronizationContext as an IScheduler would call Post on the sync context. Since most of the ""dispatchers"" in .NET already implement a sync context (WPF, System.Web, WinForms, UWP, Xamarin etc) this would be the way to bridge the existing tech with this new interface. **TaskScheduler** It should be possible to run Task continuations on any arbitrary IScheduler. We should be able to convert use any IScheduler as a TaskScheduler. This means any thing that uses an TaskScheduler today would just work with the IScheduler via a simple factory. ```C# public class TaskScheduler { public static TaskScheduler CreateFromScheduler(IScheduler scheduler); } ``` ## Potential APIs Consumers Once we have the above types exposed we can start looking at places where using a scheduler might be beneficial. Generally, we can look at places that call directly into QueueUserWorkItem and determine if it makes sense to allow callers to specify which IScheduler should be used instead. More specifically, here are some places it might be useful (we'd of course need to dig into the details more). **SocketAsyncEventArgs** SocketAsyncEventArgs has a callback that executes whenever any IO operation completes (read/write/connect/accept). Currently the thread that callback runs on is either a thread pool thread (in the linux case) or the IOCP completion thread on windows. There are some cases where the calling code wants fine grain control over where continuations run to avoid unnecessary context switches. In these cases it would be ideal if the SocketAsyncEventArgs exposed an IScheduler property that determined where completions ran. ```C# public class SocketAsyncEventArgs { public IScheduler Scheduler { get; set; } } ``` This would allow callers to specify where continuations should run (it could even be OS specific). **Timer** Timer callbacks are always scheduled on threadpool threads. Adding a scheduler would allow using the timer API but would also allow callers to control where callbacks execute. ```C# public Timer(TimerCallback callback, object state, int dueTime, int period, IScheduler scheduler); public Timer(TimerCallback callback, object state, long dueTime, long period, IScheduler scheduler); public Timer(TimerCallback callback, object state, TimeSpan dueTime, TimeSpan period, IScheduler scheduler); public Timer(TimerCallback callback, object state, uint dueTime, uint period, IScheduler scheduler); ``` **Task continuations** Running task continuations on specific threads when using async/await syntax today isn't possible without changing the current task scheduler (AFAIK). Ideally you would be able to do something like: ```C# await task.ContinueOn(scheduler); ``` Today Task has very specific knowledge about the SynchronizationContext capturing because it's the most common scenario. There are scenarios where the caller whats to continue on another scheduler or TaskScheduler and wants to specify that at the point of the await. ```C# public class Task { public TaskAwaiter ContinueOn(TaskScheduler scheduler); } ``` **CancellationToken** CancellationTokens allow for the registration of callbacks that execute of callbacks upon cancellation. A scheduler can be specified to determine where these callbacks should run. This would be more efficient than scheduling the call to Cancel to run on another thread since doing if efficiently requires knowledge that callbacks are registered (see https://github.com/dotnet/corefx/issues/23716 for a related issue). There could be an overload of cancel that takes an IScheduler. ```C# public class CancellationTokenSource { public void Cancel(IScheduler scheduler); } ```" +15688 area-System.Security Access violation using X509Chain in netcoreapp1.1 "When upgrading a project from `netcoreapp1.0` to `netcoreapp1.1` we found that we were hard crashing the CLR. The code below ""works"" in `netcoreapp1.0` on win10-x64, but will crash without warning when upgraded to `netcoreapp1.1`. The `catch` block doesn't run, it causes a watson error. The watson info is after the code. There is nothing particular about `1.crt`, this happens for any X509 certificate that I load. ```csharp static void Main(string[] args) { try { bool result; var cert2 = new X509Certificate2(""1.crt""); var coreChain = new X509Chain(); result = coreChain.Build(cert2); System.Console.WriteLine(result); } catch { System.Console.WriteLine(""BAD!""); } } ``` Watson: ``` Sig[0].Name=Application Name Sig[0].Value=dotnet.exe Sig[1].Name=Application Version Sig[1].Value=1.1.0.1179 Sig[2].Name=Application Timestamp Sig[2].Value=5820b092 Sig[3].Name=Fault Module Name Sig[3].Value=coreclr.dll Sig[4].Name=Fault Module Version Sig[4].Value=4.6.24628.1 Sig[5].Name=Fault Module Timestamp Sig[5].Value=581390f9 Sig[6].Name=Exception Code Sig[6].Value=c0000005 Sig[7].Name=Exception Offset Sig[7].Value=000000000004de20 ``` This is for RC3: Product Information: Version: 1.0.0-rc3-004530 Commit SHA-1 hash: 0de3338607 Runtime Environment: OS Name: Windows OS Version: 10.0.14393 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\1.0.0-rc3-004530" +15689 area-System.Diagnostics Failed assert in ProcFsStateToThreadState on Linux and PortableLinux https://ci.dot.net/job/dotnet_corefx/job/master/job/portablelinux_debug_prtest/6/ ``` Unexpected status character at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Fail(String message) at System.Diagnostics.ProcessManager.ProcFsStateToThreadState(Char c) in /mnt/resource/j/workspace/dotnet_corefx/master/portablelinux_debug_prtest/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Linux.cs:line 207 at System.Diagnostics.ProcessManager.CreateProcessInfo(ParsedStat procFsStat, ReusableTextReader reusableReader) in /mnt/resource/j/workspace/dotnet_corefx/master/portablelinux_debug_prtest/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Linux.cs:line 144 at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName) in /mnt/resource/j/workspace/dotnet_corefx/master/portablelinux_debug_prtest/src/System.Diagnostics.Process/src/System/Diagnostics/Process.Linux.cs:line 34 at System.Diagnostics.Tests.ProcessTests.TestGetProcessesByName() in /mnt/resource/j/workspace/dotnet_corefx/master/portablelinux_debug_prtest/src/System.Diagnostics.Process/tests/ProcessTests.cs:line 584 ``` cc: @gkhanna79, @mellinoe, @Priya91 +15690 area-Meta Enabled overflow checks in Debug (pt 1) Enabled overlfow/underflow checks for Debug builds only for the following projects (issue #3140) - System.AppContext - System.Buffers - System.CodeDom - System.Collections - System.Collections.Concurrent - System.Collections.Immutable - System.Collections.NonGeneric - System.Collections.Specialized - System.ComponentModel - System.ComponentModel.Annotations +15691 area-System.Collections Add HashSet TryGetValue "Sometimes I find myself needing to retrieve a value from a `HashSet`. You may wonder why that's needed when you already have the value when you might want to retrieve it. Well, that's not always true depending on the `Comparer` you're using as a value may evaluate to being contained within the set but is not strictly equal to the value stored in the set. ## Proposed API ```diff namespace System.Collections.Generic { public partial class HashSet { + public bool TryGetValue(T equalValue, out T actualValue); } public partial class SortedSet { + public bool TryGetValue(T equalValue, out T actualValue); } } ``` ## Rationale and Usage My use case is sometimes I want to create a case-insensitive `string` mapping to the actual `string` value. So for example instead of having to use a `Dictionary` for the mapping as below ```c# var dictionary = new Dictionary(StringComparer.OrdinalIgnoreCase); dictionary[""A""] = ""A""; string value = ""a""; string actualValue; if (dictionary.TryGetValue(value, out actualValue)) { Assert.AreEqual(""A"", actualValue); } ``` I could use a `HashSet` like this ```c# var hashSet = new HashSet(StringComparer.OrdinalIgnoreCase) { ""A"" }; string value = ""a""; string actualValue; if (hashSet.TryGetValue(value, out actualValue)) { Assert.AreEqual(""A"", actualValue); } ``` With this implemented users would save on memory usage, would be able to use set operations, and be able to populate the collection more easily. Other possible use cases (from discussion below) - object pool, such as simple string interning - save overhead of the key in a dictionary, when the value knows its own key ## API Details * `TryGetValue` returns an indication if the `HashSet` contains the `equalValue` and the output parameter `actualValue` contains the `HashSet`'s value that equals `equalValue` with the set `Comparer` if contained in the `HashSet` otherwise the default value of `T`. ## Updates * Formalized request * Removed getter indexer" +15692 area-Meta Add P/Invoke notes Adds detailed notes and guidelines for defining P/Invokes. @willdean, @tijoytom, @mellinoe, @stephentoub, @jkotas +15693 area-System.IO Get rid of System.IO.Compression OOB - .NET Standard 2.0 should forward to Desktop Framework The cost of shipping OOB for Desktop is very high and we have burned ourselves (System.Net.Http). Let's make sure we do not accidentally run into the same problems here as well. cc: @ianhays @weshaggard +15694 area-System.Data In SNITcpHandle.Dispose(), null _stream so that it releases any object references. Porting change in https://github.com/dotnet/corefx/pull/15431/commits/4893f2f89032b5d2c39d619ae0961fa491aaf8d9 to current release branch. +15696 area-Infrastructure Typo in build variable name Should be PB_VsoRepositoryName, matching with other repos. No effective different in execution since VsoRepoName was unused. /cc @chcosta +15697 area-System.Net Attempt to make UDP socket tests more reliable on Linux Currently some of the UDP tests are sending to a given server multiple times due to potential 'packet loss' problems, which apparently is causing side effects with other tests running in parallel. This PR changes the tests to only send once; I will measure the test impact over several days and determine whether to keep it like this, or if new failures start occurring due to packet loss we'll need to refactor the tests in some manner to accommodate multiple sends without side effecting other tests running in parallel. Also I'm not sure if packet loss should ever occur on loopback \ localhost, assuming that various send\receive buffers do not get overloaded when our tests run, and in that case sending multiple times may make the problem worse. I believe the problem is the extra sends that would normally just get lost actually go to the wrong server if another test running in parallel happens to create a server with the same port number. UDP is connectionless so the client doesn't know if the original server has been closed. This causes things like expected timeouts not occurring because a receive succeeds when there shouldn't be a client sending (https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs#L557) or other failures because received messages are coming from the wrong client(https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs#L2347) Here's some examples of recent test failures affected by this issue (roughly 1 per day on CI runs): ```` Assert.Throws() Failure\nExpected: typeof(System.Net.Sockets.SocketException)\nActual: (No exception was thrown) at System.Net.Sockets.Tests.DualModeConnectAsync.ConnectAsyncV4IPEndPointToV6Host_Fails() in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 516 Assert.Throws() Failure\nExpected: typeof(System.TimeoutException)\nActual: typeof(Xunit.Sdk.EqualException): Assert.Equal() Failure\nExpected: ::1\nActual: ::ffff:127.0.0.1 at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFromAsync_Helper(IPAddress listenOn, IPAddress connectTo, Boolean expectedToTimeout) in /mnt/resource/j/workspace/dotnet_corefx/master/opensuse42.1_release/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 2347 Assert.Throws() Failure\nExpected: typeof(System.Net.Sockets.SocketException)\nActual: typeof(Xunit.Sdk.ThrowsException): Assert.Throws() Failure\nExpected: typeof(System.Exception)\nActual: (No exception was thrown) at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFrom_Helper(IPAddress listenOn, IPAddress connectTo, Boolean expectedToTimeout) in /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 1988 at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.b__13_0() in /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 1946 Assert.Throws() Failure\nExpected: typeof(System.Net.Sockets.SocketException)\nActual: typeof(Xunit.Sdk.EqualException): Assert.Equal() Failure\nExpected: ::1\nActual: ::ffff:127.0.0.1 at System.Net.Sockets.Tests.DualModeBase.ReceiveFrom_Helper(IPAddress listenOn, IPAddress connectTo) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 2709 at System.Net.Sockets.Tests.DualModeConnectionlessReceiveFrom.b__6_0() in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 1401 ```` cc @ianhays cc @Priya91 cc @davidsh cc @ericeil In reference to issue #14519 +15699 area-System.Data Porting PR #15146: Fix for slow down in Sql Client Connection Open Copied from original PR. Fixes #15089 The fix is to bring the behavior in sync with Windows Version of SqlClient. https://github.com/dotnet/corefx/issues/15089#issuecomment-272268114 describes the behavior. I ran a test to connect to Azure using Managed version of SNI . With this change, 30 connnections to Azure SQL take about 13500 ms vs ~24000 ms before the change. +15702 area-Infrastructure System.Net.Sockets solution file is broken If I try to open it in VS, I don't see the System.Net.Sockets.csproj in src -- just the ref and test projects. If I try to build it from the command line, it doesn't actually build System.Net.Sockets.csproj. +15703 area-Infrastructure Remove restriction in System.Memory configuration.props that builds for Windows only "From PR #15569 https://github.com/dotnet/corefx/pull/15569#discussion_r98976731 From **kouvel**: > Since it looks like you're also enabling CoreCLR's span with this change, could you please also remove the restriction in Configuration.props that builds for Windows only? This would work fine I think: ```xml netcoreapp; ``` > And can remove any windows-specific stuff in the csproj. From **mellinoe**: > This is an ""artificial"" restriction that needs to be kept for now. This library relies on System.Runtime.CompilerServices.Unsafe, which cannot be built outside of Windows right now. From **kouvel**: > Is it possible to use CoreLib's Unsafe implementation instead? Maybe it would require making it public in CoreLib (but without a contract in CoreFX), which seems reasonable, as that's what we did for RuntimeThread as well. From **jkotas**: > Having the exact same public type it multiple different assemblies tends to cause problems. If we wanted to use the CoreLib Unsafe here, it should be fine but we need to: > - Give CoreLib Unsafe different name or namespace, e.g. Internal.Runtime.CompilerServices (I think this option is better) or > - Fill CoreLib Unsafe to have all methods that S.R.CS.Unsafe has, and turn S.R.CS.Unsafe into façade for netcoreapp20" +15704 area-System.Net Add some more HttpListener tests. cc @CIPop @stephentoub @davidsh @karelz +15705 area-Infrastructure Overhaul external / binplacing / reference from runtime Best to review commit-by-commit. First change I made was to switch external to use binplacing logic. Let let us have better control over when to copy and where and allowed copying to multiple locations easily. As part of this I binplace both the primary output (if it exist) as well as all copy-local items. Second change was to combine coreclr and NETNative into a common runtime project (thanks @joperezr). This was to enable the following change. Third I fixed ReferenceFromRuntime to use a project reference to the runtime project for src projects, and block its use from tests. This enables us to build multiple configurations at a time that may need different runtime libs without stomping on each other in the runtime path. It also fixes cases where folks might accidentally use ReferenceFromRuntime instead of a project reference. Finally I noticed that the first change caused a bunch of clashing copies to occur. To fix this (which should be general goodness) I disabled copy local for project references for anything that isn't a test project. /cc @weshaggard @tarekgh +15707 area-Infrastructure Linux Crossbuild VSO job should use Docker Exec pattern https://github.com/dotnet/corefx/pull/15695 added a Linux Crossbuild job to the pipebuild - defined here (https://github.com/dotnet/corefx/blob/master/buildpipeline/DotNet-CoreFx-Trusted-Linux-Crossbuild.json). This job uses the old Docker pattern still used in CoreCLR, instead of the Docker exec pattern used by our other Linux job (https://github.com/dotnet/corefx/blob/master/buildpipeline/DotNet-CoreFx-Trusted-Linux.json). The new job should use Docker exec. +15708 area-System.IO Is there a function to copy directories? "Currently, the `Directory` class contains a `Move()` method. However, the class does not possess a way to copy directories from one location to another. If a user wants to copy directories, he/she would have to write their own method to create a directory in the new location and call `File.Copy()` for each file in the source directory. ## Rationale and Usage The `File` class has both `Copy()` and `Move()` methods; however, the `Directory` class only has a `Move()`. Conceptually, a file and a directory are very similar: you can move or copy either of them across your file system. There are many users who [desire](https://stackoverflow.com/questions/627504/what-is-the-best-way-to-recursively-copy-contents-in-c) this feature and there is also an instructive [MSDN article](https://msdn.microsoft.com/en-us/library/bb762914(v=vs.110).aspx) outlining how to copy directories. It will be very convenient for users to simply call a `Copy()` method such as, ```csharp string SourceDirectory = @""C:\sourcefolder""; string DestinationDirectory = @""C:\destinationfolder""; Directory.Copy(SourceDirectory, DestinationDirectory); ``` Further, users will only need to pass in a string without needing to create `DirectoryInfo` so that the parameters are easy to use. ## Proposed API ```csharp public void Copy(string sourceDirName, string destDirName) { DirectoryInfo sourceDirectory = new DirectoryInfo(sourceDirName); DirectoryInfo destinationDirectory = new DirectoryInfo(destDirName); if (!Directory.Exists(target.FullName)) { Directory.CreateDirectory(target.FullName); } //copy all the files into the new directory foreach (FileInfo file in sourceDirectory.GetFiles()) { file.CopyTo(Path.Combine(target.ToString(), file.Name), true); } //copy all the sub directories using recursion foreach (DirectoryInfo subDirectory in sourceDirectory.GetDirectories()) { DirectoryInfo nextTargetDir = destinationDirectory.CreateSubdirectory(subDirectory.Name); Directory.Copy(subDirectory.FullName, nextTargetDir.FullName); } } ```" +15709 area-System.Diagnostics Console app uses 100% cpu when is ran by Process.Start with redirecting input/output dotnet core version: 1.0.2 OS: Windows 10 or Ubuntu 16.04 x64 How to replicate the issue: 1. Create a Console app A, which will accept any input and print the length of the input. 2. Publish app A to a folder. 3. Create a Console app B, which uses Process.Start to start app A with RedirectStandardInput and RedirectStandardOutput set to true, In startinfo, filename is dotnet, argument is the main dll name in the app A publish folder. Do not use WaitForExit in app B. 4. App B will exit after starting the app A, app A will still be running in the background and uses 100% of cpu. 5. With RedirectStandardInput and RedirectStandardOutput set to false, it will be all good. any ideas? +15713 area-System.Numerics Vector3GetHashCodeTest AV'ing on Windows release With the latest CoreCLR update, this test is consistently AV'ing on Windows. ``` Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at System.Numerics.Tests.Vector3Tests.Vector3GetHashCodeTest() in D:\j\workspace\windows_nt_re---37265eab\src\System.Numerics.Vectors\tests\Vector3Tests.cs:line 51 ``` cc: @mellinoe, @CarolEidt +15714 area-System.Threading Delete Win32ThreadBoolBoundHandle - moved to CoreLib +15715 area-System.Threading Delete ClrThreadBoolBoundHandle - moved to CoreLib Counter part of https://github.com/dotnet/coreclr/pull/9268. This change will need to be cherry picked to fix build break once this change arrives to CoreFX. +15717 area-System.Linq IEnumerator.Current being more restictive than IEnumerator.Current is unuseful. `IEnumerator.Current` and `IEnumerator.Current` are both undefined prior to the first call to `MoveNext()` (or the first after a successful `Reset()`). In the case following a `MoveNext()` that has returned `false` or an action has made the source collection consider itself to have been mutated, then `IEnumerator.Current` is undefined while `IEnumerator.Current` is documented as always throwing `InvalidOperationException`. This puts a greater implementation burden on the base interface than the derived one. It's also not what happens in practice, for while some implementations follow the more restrictive practice (and at least one actually treats them differently in this way) a great many follow the documentation for `IEnumerator.Current` when it comes to `IEnumerator.Current`, including the iterators produced by `yield`: ```C# private IEnumerable TestEn() { yield break; } public static Main() { IEnumerator en = TestEn().GetEnumerator(); en.MoveNext(); Console.WriteLine(en.Current); // 0 } ``` Such cases have existed since .NET 2.0 (indeed a great many in 1.1 were breaking the tighter rule anyway) so the requirement for throwing IOE clearly isn't necessary. I think the documentation for `IEnumerator.Current` should be updated to match the reality, which is that it should be the same as that for `IEnumerator.Current` in this regard. +15719 area-System.Linq Allow TryExpression inside a filter? Compiling a `TryExpression` that is inside the `Filter` expression of a `CatchBlock` of another `TryExpression` throws with the IL compiler (the interpreter has no problem with it). This is reasonable since if it produced such IL it would be unverifiable. It is however a limit on composability; a method producing `bool`-typed expressions may in good faith use a `TryExpression` within it while a method producing `CatchBlock`s may in good faith use such an expression in a filter. The failure comes from the combination of two reasonable operations. Branching to outside of the filter won't work, as that is also unverifiable. Emitting a method for the closure of the filter expression and locals it uses, and calling that method as a new filter expression **would** work. +15724 area-Meta Remove Comments with (#15374) Hi, Submitting the comment clean up for #15374. Kindly review and let me know. Essentially all the SecurityKernel tags which were commented out have been removed as per the ask in the issue #15374. Thanks, Mandar +15725 area-Infrastructure Adding UAPAOT vertical and configurations Adding uapaot vertical build. To try it, run `build.cmd -framework:uapaot` cc: @weshaggard @ericstj FYI: @joshfree @DnlHarvey @AntonLapounov @danmosemsft @Chrisboh @MattGal +15729 area-Infrastructure Update dogfooding instructions for nightly builds of Microsoft.NETCore.App. @terrajobst @ericstj @danmosemsft @Petermarcu skip ci please +15730 area-System.IO Fix some misc failing desktop IO tests These tests are failing on the full framework test runs for misc reasons explained in the comment section of the attributes. Most of them are because of lack of DeflateStream Flush support. resolves https://github.com/dotnet/corefx/issues/13249 +15731 area-Meta Review types for Serialization test coverage The binary rewriter that currently strips S.P.CoreLib.dll turns out to have been removing _some_ instances of serialization infrastructure on types it retained. That implies that we don't have test coverage for binary serializing these. Investigate, and add coverage if necessary. If the type is internal to S.P.CoreLib.dll and is not serialized indirectly then possibly it isn't necessary. If the type is missing [Serializable] on it, it's also not necessary. What I grepped for ``` [OnDeserialized] [OnSerializing] [OnSerialized] serialization constructor or other function passed SerializationInfo ``` Types affected were in - [ ] mscorlib/src/System/Globalization/SortKey.cs - [ ] mscorlib/src/System/Security/Util/TokenBasedSet.cs - [ ] mscorlib/src/System/Security/Util/URLString.cs - [ ] mscorlib/src/System/Security/PermissionSet.cs (PermissionSet) - [ ] mscorlib/src/System/Text/*Encoding.cs - [ ] mscorlib/src/System/AppDomainUnloadedException.cs - [ ] mscorlib/src/System/Collections/Comparer.cs - [ ] mscorlib/src/System/Collections/Generic/Comparer.cs (several classes) - [ ] mscorlib/src/System/Collections/Hashtable.cs (the internal hashtable) - [ ] mscorlib/src/System/IO/DriveNotFoundException.cs - [ ] mscorlib/src/System/InsufficientMemoryException.cs - [ ] mscorlib/src/System/OperatingSystem.cs - [ ] mscorlib/src/System/Reflection/ConstructorInfo.cs - [ ] mscorlib/src/System/Runtime/CompilerServices/RuntimeWrappedException.cs - [ ] mscorlib/src/System/Runtime/Serialization/FormatterServices.cs - SurrogateForCyclicalReference - [ ] mscorlib/src/System/Runtime/Serialization/ISurrogateSelector.cs - [ ] mscorlib/src/System/Text/DecoderNLS.cs @stephentoub fyi. +15732 area-Infrastructure Adding TargetGroup to shim baseline files cc: @weshaggard @ericstj Adding TargetGroup to basline files for shims. +15735 area-System.Runtime Library author wants to target netstandard and work with packages.config with LTS This bug needs to be back ported to NETStandard.Library -- 1.6.0.1 -- and remain in the LTS that works everywhere. The issue was fixed here https://github.com/dotnet/corefx/issues/10445, but only is available in FTS. This means that 1.6.0 is broken here. @ericstj +15736 area-Infrastructure Xplat native build with existing artifacts doesn't rebuild if only symbol stripping configuration has changed "CMake (or Make) doesn't rebuild the xplat binaries when `-stripSymbols` is set differently than the command that built what's in `bin`. Symbol stripping happens on build, so this means someone might run a ""successful"" build command that ends up with unexpected outputs in this *very* specific case. Repro: 1. Perform the native CoreFX build without stripping symbols (default). 2. Perform a native CoreFX build again with stripping enabled. 3. The native build doesn't detect any changes, and doesn't rebuild, leaving you with unstripped binaries. Workaround: clean the native artifacts to force a new build. This was a known issue introduced with https://github.com/dotnet/corefx/pull/15440. /cc @ellismg " +15739 area-System.Diagnostics Provide Precise UtcNow using Stopwatch. As part general logging infrastructure, it is useful to have timestamps. DateTime (using UTC) is a fine way of doing this, (it has 100nsec resolution) however DateTime.UtcNow has poor resolution (16msec). We need a way of getting DateTimes that is more precise. It is very straightforward to implement this using System.Diagnostics.Stopwatch. Thus we recommend adding the following API to it ```c# class System.Diagnostics.Stopwatch { // Computes a more precise UtcNow time. static DateTime UtcNow { get; } } ``` The implementation simply fetches 'DateTIme.UtcNow' and the current stopwatch tick count and uses that to compute the DateTIme when stopwatch ticks started. You can then use a call to Stopwatch.GetTimeStamp() and this start time to compute UtcNow (the current time). I considered putting this API in DateTIme, but decided against it because 1. The implementation naturally depends on Stopwatch. 2. Users of Stopwatch are the natural clients of this API. 3. We would end up with UtcNow and UtcNowPrecise, which feels a bit ugly. 4. DateTime lives in CoreCLR which complicates the implementation if we put it there. The dependencies don't work out. @terrajobst @lmolkova +15740 area-System.Data Building FunctionalTests of System.Data.SqlClient (dotnet/corefx/master) failed in Unix Building FunctionalTests of System.Data.SqlClient (dotnet/corefx/master) failed in Unix (Ubunbtu 14.04.5LTS x64) with following error messages: ``` CSC : error CS0006: Metadata file '/home/REDMOND/gelee/Projects/DotNetCoreFx/bin/runtime/netcoreapp-Unix-Debug-x64/xunit.core.dll' could not be found [/home/REDMOND/gelee/Projects/DotNetCoreFx/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj] CSC : error CS0006: Metadata file '/home/REDMOND/gelee/Projects/DotNetCoreFx/bin/runtime/netcoreapp-Unix-Debug-x64/Xunit.NetCore.Extensions.dll' could not be found [/home/REDMOND/gelee/Projects/DotNetCoreFx/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj] CSC : error CS0006: Metadata file '/home/REDMOND/gelee/Projects/DotNetCoreFx/bin/runtime/netcoreapp-Unix-Debug-x64/xunit.assert.dll' could not be found [/home/REDMOND/gelee/Projects/DotNetCoreFx/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj] CSC : error CS0006: Metadata file '/home/REDMOND/gelee/Projects/DotNetCoreFx/bin/runtime/netcoreapp-Unix-Debug-x64/xunit.abstractions.dll' could not be found [/home/REDMOND/gelee/Projects/DotNetCoreFx/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj] CSC : error CS0006: Metadata file '/home/REDMOND/gelee/Projects/DotNetCoreFx/bin/runtime/netcoreapp-Unix-Debug-x64/xunit.performance.core.dll' could not be found [/home/REDMOND/gelee/Projects/DotNetCoreFx/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj] CSC : error CS0006: Metadata file '/home/REDMOND/gelee/Projects/DotNetCoreFx/bin/runtime/netcoreapp-Unix-Debug-x64/xunit.execution.dotnet.dll' could not be found [/home/REDMOND/gelee/Projects/DotNetCoreFx/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj] CSC : error CS0006: Metadata file '/home/REDMOND/gelee/Projects/DotNetCoreFx/bin/runtime/netcoreapp-Unix-Debug-x64/Newtonsoft.Json.dll' could not be found [/home/REDMOND/gelee/Projects/DotNetCoreFx/src/System.Data.SqlClient/tests/Tools/TDS/TDS/TDS.csproj] ``` Here is what I did before reaching this error messages. * I cloned dotnet/corefx repository to Ubunbtu 14.04.5LTS x64 - $ git clone https://github.com/dotnet/corefx.git DotNetCoreFx * I ran build.sh script - DotNetCoreFx $ ./build.sh * I ran build-tests.sh script - DotNetCoreFx $ ./build-tests.sh * I ran build command to build FunctionalTests of System.Data.SqlClient - FunctionalTests $ /DotNetCoreFx/Tools/msbuild.sh /t:BuildAndTest /p:OSGroup=Unix +15741 area-Infrastructure Remove __BlockReflectionAttribute from pure facades For libraries that are pure facades we should avoid injecting the __BlockReflectionAttribute (https://github.com/dotnet/corefx/blob/ddadb906e40ed97cba9f9c58ad2f5642e0d91b50/dir.props#L78). The reason we should block it for pure facades is because we have detection logic that breaks when there are any type defs including the internal one we inject for __BlockReflectionAttribute so we should disable it for those facades. +15742 area-System.Data Enable Integrated Auth for Unix SqlClient This is for the new feature -- Integrated Authentication. @saurabh500 @corivera @tvrprasad @YoungGah +15744 area-Infrastructure Clean up sequencing of targets that change ProjectReferences We have a few places where we change ProjectReferences. AnnotateProjectReference in buildvertical.targets ResolveMatchingContract in resolvecontract.targets AddRuntimeProjectReference in referenceFromRuntime.targets MarkReferencePrivateFalse in FrameworkTargeting.targets I think the squence should be ResolveMatchingContract | AddRuntimeProjectReference > MarkReferencePrivateFalse | AnnotateProjectReference > AssignProjectConfiguration The `|` indicates they can happen in any order. The `>` indicates they must happen before the following targets. We should determine a way to do that with minimal coupling between the targets. +15747 area-Infrastructure Set configuration for WinRT depproj to netcoreapp/uap instead of netstandard when it was set to netstandard it would binplace to the netstandad ref folder which caused errors in our apicompat checks. Windows.winmd is not support in a netstandard way so having specific targets is better anyway. cc @joperezr @ericstj +15751 area-Infrastructure Misc cleanup of uapaot config - Delete files moved to CoreLib - Simplify conditions +15752 area-System.IO SerialPort Test migration tracking @SWY1985 @msalsbery @daflame76 I've opened this issue for the four of us to keep track of what's being done on migrating the SerialPort tests over to CoreFX style. @SWY1985 It sounds like you're going to go first on this (today?) - perhaps you could let us know in here what bits you're doing/done so that we don't trip over each other. +15754 area-Infrastructure Fix BuildAllConfigurations "This set of commits enables ""BuildAllConfigurations"" mode. Best reviewed commit-by-commit. /cc @weshaggard @mellinoe @tarekgh @joperezr " +15755 area-Infrastructure Use same logic to prepare rootfs across dotnet if possible 1. Update logic more safely for unmount and cleaning directory as in dotnet/coreclr 2. Refactor logic to achieve consistency across dotnet 3. Remove unused variable and fix typo After this I'm going to update dotnet/coreclr and dotnet/core-setup too. Main issue for this: https://github.com/dotnet/core-setup/issues/1432 +15758 area-Infrastructure Improve performance of ResolveMatchingContract I recently switched this to use p2p. This was needed to handle 2 cases: desktop where we don't binplace contract at all (we binplace impl to ref), and down level config a where we aren't binplacing. I noticed during the build all work that this can get somewhat expensive. To bring that in check I propose the following. 1. If not targeting desktop. 2. And $(refpath)/assembly.dll exists 3. Set this to resolvedmatchingco breach as we did before. 4. Otherwise add the projectreference as we do today. /cc @mellinoe @weshaggard +15759 area-Infrastructure Update CoreFx to beta-25003-02 (master) +15761 area-System.Net Remove PinnableBufferCache from corefx The only remaining use of PinnableBufferCache in corefx is in SslStream, which uses two different instantiations of it to get read and write buffers. I suggest we replace this usage with ArrayPool, so as to consolidate pools, and if doing so results in any regression, incorporate whatever we need from PinnableBufferCache into ArrayPool to address it (e.g. right now ArrayPool doesn't explicitly pay attention to generations, though it's not clear whether that negatively impacts it for these scenarios). Then we can delete the internal PinnableBufferCache copy from corefx. cc: @geoffkizer, @jkotas, @brianrob +15762 area-Infrastructure Fixing uapaot vertical cc: @weshaggard Looks like the latest update of buildtools broke uapaot vertical. With these changes build is green again. I'll setup a couple of CI runs to ensure that uap and uapaot verticals are not broken unintentionally +15763 area-Infrastructure Any new libraries not shipped should use Open key Any new libraries like System.Transactions, System.Configuration.ConfigurationManager, System.CodeDom, etc that have not yet shipped yet should have their public keys set to the Open Key (i.e. UseOpenKey=true). We should do an audit before we ship .NET Core 2.0 and make sure we update all these. +15764 area-Infrastructure Adding uap and uapaot vertical builds Adding uap and uapaot vertical CI runs to ensure that they don't get broken unintentionally. cc: @weshaggard @mmitche FYI: @stephentoub if you see any of these two runs failing on PRs feel free to tag me so that I can take a look. +15765 area-Infrastructure Update NS2.0 Apicompat baseline Update the NS2.0 package to fix a couple issues in the shims. Added more shims to the list we need for .NET Core compat with NS2.0 The remaining System.Transactions issues will be fixed once we rename that assembly as part of https://github.com/dotnet/corefx/issues/15259 cc @ericstj @joperezr +15766 area-Infrastructure Address feedback from #15754 Address feedback from PR #15754 I needed to merge that PR in order to avoid conflict-hell, this is a mop-up addressing feedback. Please review commit-by-commit. /cc @weshaggard @jkotas +15767 area-Infrastructure Move perf runner to dotnet core This check-in along with the updates to PerfTesting.targets in the build tools repo gives us the ability to run performance tests, aggreagate the data and submit it to Benchview. This commit also adds the source and project.json of the performance runner that works on dotnet core instead of running against the Desktop framework. +15771 area-System.Diagnostics Running bash shell programmatically on Mac OS X "I am trying to figure out how to run a bash shell using .NET Core. Specifically, I want to run a bash shell, run a dotnet [path to dll] command and pass commands to the dll. I tried looking through the test classes in `System.Diagnostics.Process` but I couldn't wrap my head around it. :( What I hope to achieve is something like on the .NET Framework: `Process.Start(""bash dotnet a.dll start"")` Please let me know if I'm asking the question in the appropriate area. :) I am running Mac OSX El Capitan 10.11.6 Thank you!" +15774 area-Infrastructure Move Linux Crossbuild definition to Docker-exec model This changes the Dotnet-CoreFx-Trusted-Linux-Crossbuild job so that it uses the Docker exec model - I've tested this in VSO & it should work. Don't merge until Monday. +15776 area-System.Data Add Odbc and SQLite OS deps to CI I'm working on [porting System.Data.Odbc](https://github.com/dotnet/corefx/pull/15646). I talked to a couple of people and we decided on writing some integration tests that would hit a SQLite database. Main reasons: easy to set up and cross-platform. For things to work, I need two pieces: * An Odbc library * A SQLite Odbc Driver On Windows: * We use `odbc32.dll`, which is probably already installed in our CI * I tested this using http://www.ch-werner.de/sqliteodbc/ driver On Linux (Ubuntu 16.04): * I tested this using `unixodbc` from the official repositories * I tested this using `libsqliteodbc` from the official repositories On OSX: haven't tested yet. Tests are skipped at the moment so my PR passes the CI check, but it would be nice to enable them after we get this in. Otherwise, I'll leave a note for devs on how to run this manually, but we'd have this library untested. ping @divega @anpete @saurabh500 @eerhardt @weshaggard @danmosemsft +15777 area-System.Net Fix networking test activeissues in System.Net.Http addresses #9543 #8945 #10958 #10702 #13188 cc @steveharter @ianhays @karelz #9543 Ensure the certificate is not disposed before next client reuses it. #8945 #10958 Make the test run only on windows version greater than insider preview. #10702 #13188 Not able to repro these locally, and the stack trace is from very old CI or different branch. Re-enabling the test for latest CI. +15781 area-Infrastructure Update CoreClr, CoreFx to servicing-25005-01, servicing-25004-02, respectively (release/1.1.0) +15782 area-Infrastructure Update xunit dependencies to beta4 I don't think this relies on https://github.com/dotnet/buildtools/pull/1300 However, both this and that PR have to be merged in any order to get the workaround fixed (which will be done in another PR) @jamesqo FYI +15783 area-System.Linq Add ExcludeFromCodeCoverage attributes to System.Linq.Parallel unreachables Each method has a message like > This method should never be called as ... +15784 area-System.Linq Cleanup CallInfo tests and increase coverage of ListEquals - Rename test methods to follow guidelines - misc cleanup of equals and getrhashcode tests that share common test data - add coverage for branch of ListEquals where an item in a array doesnt equal another - remove unecessary helper ListEquals that does the same as SequenceEqual +15785 area-System.Net SslStream_StreamToStream_ClientInitiatedCloseNotify_Ok failed failed in #15782 System.Net.Security.Tests.SslStreamAlertsTest.SslStream_StreamToStream_ClientInitiatedCloseNotify_Ok [FAIL] System.ComponentModel.Win32Exception : The credentials supplied to the package were not recognized Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\Common\src\Interop\Windows\sspicli\SSPIWrapper.cs(167,0): at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslStreamPal.Windows.cs(407,0): at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslStreamPal.Windows.cs(131,0): at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs(676,0): at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs(783,0): at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs(706,0): at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs(767,0): at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs(983,0): at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs(1145,0): at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs(731,0): at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) D:\j\workspace\windows_nt_re---37265eab\src\Common\tests\System\Threading\Tasks\TaskTimeoutExtensions.cs(19,0): at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\SslStreamAlertsTest.cs(111,0): at System.Net.Security.Tests.SslStreamAlertsTest.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +15788 area-System.Runtime Use corefx implementation of interop types for uapaot +15789 area-System.Runtime Fix System.Environment implementation for uapaot The env variable implementation for uapaot was wrong - it returned empty string instead of null. Fixed it by forwarding to corelib implementation that does the right thing already. +15790 area-System.Linq S.L.Expressions Expression.Default fails with DBNull "When compiling `Expression.Default(typeof(DBNull)` the interpreter is fine, but the compiler throws an `InvalidOperationException` with a message of ""Code supposed to be unreachable""." +15791 area-System.Linq Correctly compile Expression.Default(typeof(DBNull)) Fixes #15790 While at it, reduce IL produced for default of `decimal` and `DateTime`. Load `decimal.Zero` for decimal; lighter IL without a method call, and closer to current C# compiler behaviour. Load `DateTime.MinValue` for `DateTime`; lighter IL, and skips `IsValueType` check. +15797 area-System.Linq Optimise S.L.Expressions compilation of primitive constants. Most types use `conv` instructions but when the value is known to be in the types range (as these are ipso facto being typed as such) this has no effect. Just use `EmitInt` for all values < 32bit size. Since `EmitInt` is now a bit of a misnomer, rename all such methods to `EmitPrimitive`. Use shorter `ldc*` instructions for 64-bit constants when the value will fit within 32 bits, as either a signed or unsigned value. +15798 area-System.Data Enabling diagnostics in the middle of a connection causes NullReferenceException There were test failures due in SqlConnection.Open due to a NullReferenceException. This happens in the following case, 1. Do not enable statistics on SqlConnection and do not enable any Diagnostic listeners listening to the Command Diagnostics, and open a connection. 2. The diagnostics are enabled just during the `TryOpen` call in SqlConnection. (This is a matter of timing, but is easily reproducible in many CI runs. ) While trying to add statistics, the SqlConnection throws a NullReferenceException while de-referencing `_statistics` which was never initialized. The fix is to check for `Statistics` property before adding statistics data. This is a pattern I found the SqlConnection code and used it to fix this regression. There are two test changes 1. Enable the SqlConnectionBasicTests by removing the [ActiveIssue] tag. 2. I had to move the Diagnostic test to the ManualTest project. This is because the Diagnostic Tests should not be executed in parallel with other SqlConnection Open and manual tests are executed serially. The diagnostics tests will still be executed automatically in the CI. The diagnostics test can get a null diagnostic if another SqlConnection test is running in parallel and its intended to check the diagnostics coming out of the behavior of the tests that its executing and not other tests. cc @corivera @stephentoub Fixes #14017 +15805 area-Meta Marking code as unchecked (pt 1) Marking code that may intentionally lead to over or underflows with unchecked in preparation of turning on CheckForOverflowUnderflow for all projects (issue #3140) +15806 area-System.Linq S.L.Expressions ignores scale compiling small constant decimals `decimal` scaling means that there are sometimes when `0m` is treated differently to `0.00m`, e.g. when `ToString()` is called. It can also consider `0.00m` different to `-0.00m` though not in the `ToString()` case. When a `ConstantExpression` has a small integral decimal value (within the range of `long`) an optimisation loses this information if the compilation is done to IL. The interpreter is correct in this regard. +15807 area-System.Linq Retain Scale Information in decimal ConstantExpression compilation Don't optimise IL generated when the scale of a decimal constant is other than zero, so that scale information isn't lost. Fixes #15806 Improve the optimisations for those cases they can cover: **Lighter IL for known decimal values** Use `ldsfld` instead of `newobj` for decimals in decimal's static fields. Lighter IL and no constructor cost. **Lighter IL integral decimal constants (`int.MaxValue`, `uint.MaxValue`]** Load 32-bit value instead of 64. **Lighter IL integral decimal constants (`long.MaxValue`, `ulong.MaxValue`]** Use constructor that takes `ulong` instead of components. +15808 area-System.IO Improve code coverage of System.IO.FileSystem.AccessControl (8.9%) @danmosemsft created #14352 to increase unit tests. I added some tests with issue #15375 and a pull request. I have added some more tests that increase coverage to 8.7% Please assign me to this issue so that I can create another pull request. Thanks, Michael +15809 area-System.Xml Delete desktop BinaryCompatibility settings from System.Private.Xml https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/src/System/Xml/Core/BinaryCompatibility.cs This code does private reflection against desktop mscorlib and read full framework registry keys; none of which works well for .NET Core. We should either delete it (preferred); or replace it with .NET Core compatible quirk if it is important to keep it. As side-effect, this will also get rid of dependency on System.Private.Xml on Microsoft.Win32.Registry. +15814 area-Infrastructure Issues with build -tests and build-tests I don't have a unix box handy right now, but it looks like it needs updates eg it looks for folders named 'netcoreapp1.1' I did the .cmd -- https://github.com/dotnet/corefx/pull/15811 +15815 area-System.IO Improve code coverage for System.IO.FileSystem.AccessControl from 2.3% to 8.7% Pull request for issue #15808 added tests for gets and sets that do not throw exceptions +15817 area-Meta Code coverage report does not match tests "I'm working on System.Configuration code coverage #15554 and a little bit stuck with coverage report. **Problem description** There is a test, that covers exception catch and throw in method, but both local and CI code coverage reports show, that the lines of method code are not covered. **Details** [Test for System.Configuration.TypeUtil](https://github.com/dotnet/corefx/blob/a8dce7c1c905e994c9519e0f26b0497832942a10/src/System.Configuration.ConfigurationManager/tests/System/Configuration/TypeUtilTests.cs#L48) [TypeUtil line, that works for test](https://github.com/dotnet/corefx/blob/a8dce7c1c905e994c9519e0f26b0497832942a10/src/System.Configuration.ConfigurationManager/src/System/Configuration/TypeUtil.cs#L115) [Code Coverage Report](https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/), navigate to `System.Configuration.TypeUtil`, click `GetType(System.String,System.Boolean)` method to see code coverage. I've checked that this line is reached by changing exception to `ArgumentException(""hahaha"")` in method and test, but the report still shows no coverage. Test works fine. ![image](https://cloud.githubusercontent.com/assets/936356/22625428/a0ee9eb0-eba7-11e6-8f72-9edf02419b4a.png) ![image](https://cloud.githubusercontent.com/assets/936356/22625516/3cbbbdd0-ebaa-11e6-9f0b-7ce20768ef18.png) cc @karelz @JeremyKuhne @danmosemsft @dhoehna " +15818 area-System.Memory Span: Add BinarySearch(...) extension methods for ReadOnlySpan (and Span) Currently, there is no way to binary search in sorted native or fixed memory (e.g. coming from a pointer) in .NET, this proposal intends to fix that by adding binary search extension methods to `ReadOnlySpan` (and currently also `Span` due to type inference issues), but also proposes some different overloads than seen on `Array` to allow for inlined comparisons via the possibility to use value type comparables and comparers. ### Proposed API Add a set of `BinarySearch` extension methods for `ReadOnlySpan` and `Span` in `SpanExtensions`: ```csharp public static class SpanExtensions { // Convenience overload public static int BinarySearch( this ReadOnlySpan span, IComparable comparable) { return BinarySearch>(span, comparable); } public static int BinarySearch( this ReadOnlySpan span, TComparable comparable) where TComparable : IComparable { throw null; } public static int BinarySearch( this ReadOnlySpan span, T value, TComparer comparer) where TComparer : IComparer { throw null; } // NOTE: Due to the less-than-ideal generic type inference // in the face of implicit conversions, // we need the overloads taking Span. // These simply forward to ReadOnlySpanExtensions. // Convenience overload public static int BinarySearch( this Span span, IComparable comparable) { return BinarySearch>(span, comparable); } public static int BinarySearch( this Span span, TComparable comparable) where TComparable : IComparable { return BinarySearch((ReadOnlySpan)span, comparable); } public static int BinarySearch( this Span span, T value, TComparer comparer) where TComparer : IComparer { return BinarySearch((ReadOnlySpan)span, value, comparer); } } ``` ### Rationale and Usage Provide a safe yet fast way of binary searching of any type of contiguous memory; managed or unmanaged. ```csharp public static class UsageForInt { struct InlineableComparer : IComparer { [MethodImpl(MethodImplOptions.AggressiveInlining)] public int Compare(int a, int b) { if (a == b) { return 0; } if (a < b) { return -1; } return 1; } } struct InlineableComparable : IComparable { int m_value; public InlineableComparable(int value) { m_value = value; } [MethodImpl(MethodImplOptions.AggressiveInlining)] public int CompareTo(int other) { if (m_value == other) { return 0; } if (m_value < other) { return -1; } return 1; } } public static void SpanBinarySearch() { var span = new Span(); //span.Sort(); int valueToFind = 42; // Direct value var index = span.BinarySearch(valueToFind); // Inlineable struct comparer var comparer = new InlineableComparer(); index = span.BinarySearch(valueToFind, comparer); // Inlineable struct comparable var comparable = new InlineableComparable(valueToFind); index = span.BinarySearch(comparable); } public static void ReadOnlySpanBinarySearch() { ReadOnlySpan span = new Span(); //span.Sort(); int valueToFind = 42; // Direct value var index = span.BinarySearch(valueToFind); // Inlineable struct comparer var comparer = new InlineableComparer(); index = span.BinarySearch(valueToFind, comparer); // Inlineable struct comparable var comparable = new InlineableComparable(valueToFind); index = span.BinarySearch(comparable); } } public static class UsageForCompound { struct Compound { public float FeatureValue; public int FeatureIndex; public object Payload; } struct InlineableFeatureValueComparer : IComparer { [MethodImpl(MethodImplOptions.AggressiveInlining)] public int Compare(Compound a, Compound b) { if (a.FeatureValue == b.FeatureValue) { return 0; } if (a.FeatureValue < b.FeatureValue) { return -1; } return 1; } } struct InlineableFeatureComparable : IComparable { readonly float m_featureValue; public InlineableFeatureComparable(float featureValue) { m_featureValue = featureValue; } [MethodImpl(MethodImplOptions.AggressiveInlining)] public int CompareTo(Compound other) { if (m_featureValue == other.FeatureIndex) { return 0; } if (m_featureValue < other.FeatureIndex) { return -1; } return 1; } } public static void SpanBinarySearch() { var span = new Span(); //span.Sort(new InlineableFeatureValueComparer()); float featureValueToFind = 1.234f; // Inlineable struct comparer var comparer = new InlineableFeatureValueComparer(); // Less than ideal for compound, which is reason for comparable overload var compound = new Compound(){ FeatureValue = featureValueToFind }; var index = span.BinarySearch(compound, comparer); // Inlineable struct comparable (easier to use for compounded type) var comparable = new InlineableFeatureComparable(featureValueToFind); index = span.BinarySearch(comparable); } public static void ReadOnlySpanBinarySearch() { ReadOnlySpan span = new Span(); //span.Sort(new InlineableFeatureValueComparer()); float featureValueToFind = 1.234f; // Inlineable struct comparer var comparer = new InlineableFeatureValueComparer(); // Less than ideal for compound, which is reason for comparable overload var compound = new Compound(){ FeatureValue = featureValueToFind }; var index = span.BinarySearch(compound, comparer); // Inlineable struct comparable (easier to use for compounded type) var comparable = new InlineableFeatureComparable(featureValueToFind); index = span.BinarySearch(comparable); } } ``` The argumentation for adding this is: * To increase the efficiency of code doing binary searching and prevent people from reinventing the wheel. * Allow binary searching on contiguous memory of any kind. ### Open Questions An important question regarding this proposal is whether the pattern with generic parameter `TComparer` (e.g. constrained to `where TComparer : IComparer`) or `TComparable` (constrained to `where TComparable : IComparable`) is a pattern that can be approved. This pattern allows for inlineable comparables/comparers at the cost of increased code size, if no value type comparables/comparers are used, there should be no difference. This pattern is also used in the proposal for `Sort` in https://github.com/dotnet/corefx/issues/15329, that has been approved. Another open question is whether the overload taking `IComparable` is necessary. The API relies on being able to depend upon `System.Collections.Generic`, could this be an issue? @karelz @jkotas @KrzysztofCwalina @jamesqo ### Updates UPDATE 1: Add link to Sort and point on the pattern used. UPDATE 2: Add IComparable overloads for convenience as suggested by @jkotas UPDATE 3: Combine all extensions into `SpanExtensions`. ### Existing Sort APIs A non-exhaustive list of existing binary search APIs is given below for comparison. #### `Array.BinarySearch` Static Methods Found in [ref/System.Runtime.cs](https://github.com/dotnet/corefx/blob/master/src/System.Runtime/ref/System.Runtime.cs) ```csharp public static int BinarySearch(System.Array array, int index, int length, object value) { throw null; } public static int BinarySearch(System.Array array, int index, int length, object value, System.Collections.IComparer comparer) { throw null; } public static int BinarySearch(System.Array array, object value) { throw null; } public static int BinarySearch(System.Array array, object value, System.Collections.IComparer comparer) { throw null; } public static int BinarySearch(T[] array, T value) { throw null; } public static int BinarySearch(T[] array, T value, System.Collections.Generic.IComparer comparer) { throw null; } public static int BinarySearch(T[] array, int index, int length, T value) { throw null; } public static int BinarySearch(T[] array, int index, int length, T value, System.Collections.Generic.IComparer comparer) { throw null; } ``` #### `List.BinarySearch` Member Methods Found in [ref/System.Collections.cs](https://github.com/dotnet/corefx/blob/master/src/System.Collections/ref/System.Collections.cs) ```csharp public partial class List : System.Collections.Generic.ICollection, System.Collections.Generic.IEnumerable, System.Collections.Generic.IList, System.Collections.Generic.IReadOnlyCollection, System.Collections.Generic.IReadOnlyList, System.Collections.ICollection, System.Collections.IEnumerable, System.Collections.IList { public int BinarySearch(T item) { throw null; } public int BinarySearch(T item, System.Collections.Generic.IComparer comparer) { throw null; } public int BinarySearch(int index, int count, T item, System.Collections.Generic.IComparer comparer) { throw null; } } ``` +15821 area-System.Linq Cleanup unecessary forwarding helpers in Expression +15823 area-System.Runtime XML API documentation not available for System.ValueTuple - Reference System.ValueTuple NuGet package (version 4.3.0) - Use APIs **EXPECTED**: API documentation shows up in intellisense **ACTUAL**: No API documentation shown It looks like this is an issue with the package authoring, next to `System.ValueTuple.dll`, it has a file named `.xml` instead of `System.ValueTuple.xml`. @weshaggard @ericstj @stephentoub +15825 area-System.Globalization Comparer.Default sort order different on Linux/OSX than Windows or Mono "Found this while investigating #15445 (**edit:** see https://github.com/dotnet/corefx/issues/15825#issuecomment-277564885 where it looks like `Comparer.Default` is the underlying culprit): ```csharp using System; using System.Linq; namespace ConsoleApp { class Program { static void Main(string[] args) { var keys = new string[] { ""M:System.UriBuilder.#ctor"", ""M:System.UriBuilder.#ctor(System.String)"", ""M:System.UriBuilder.#ctor(System.Uri)"", ""M:System.UriBuilder.#ctor(System.String,System.String)"", ""M:System.UriBuilder.#ctor(System.String,System.String,System.Int32)"", ""M:System.UriBuilder.#ctor(System.String,System.String,System.Int32,System.String)"", ""M:System.UriBuilder.#ctor(System.String,System.String,System.Int32,System.String,System.String)"" }; var items = new int[7] { 0, 1, 2, 3, 4, 5, 6 }; var ordered = items.OrderBy(s => keys[s]).ToList(); Console.WriteLine(String.Join(Environment.NewLine, ordered)); } } } ``` This prints the following on OSX/Linux: ``` 0 6 5 4 3 1 2 ``` However, on Windows .NET Core or .NET Framework, as well as Mono on OSX/Linux it prints: ``` 0 1 3 4 5 6 2 ``` I suspected a difference due to culture/language, but forcing CurrentCulture to ""en-US"" didn't change the output. Maybe I'm not setting it correctly? --- ``` $ dotnet --info .NET Command Line Tools (2.0.0-alpha-004775) Product Information: Version: 2.0.0-alpha-004775 Commit SHA-1 hash: 796ebe1f1e Runtime Environment: OS Name: Mac OS X OS Version: 10.11 OS Platform: Darwin RID: osx.10.11-x64 Base Path: /usr/local/share/dotnet/sdk/2.0.0-alpha-004775/ ``` " +15826 area-System.Runtime Package downgrades occur when referencing System.ValueTuple from a .NET Core 1.0 project with a RuntimeIdentifier specified "- Create a new Console App (.NET Core) project (targeting .NET Core 1.0) - Add the following property to the .csproj file: `win7-x86` - Reference System.ValueTuple (version 4.3.0) ```xml Exe netcoreapp1.0 win7-x86 ``` - Run NuGet restore (e.g. `dotnet restore` from command line) **EXPECTED:** No warnings on restore **ACTUAL:** Lots of package downgrade warnings (57 of them to be specific), such as the following > 11:29:11.493 1>C:\Program Files (x86)\dotnet\sdk\1.0.0-rc4-004616\NuGet.targets(97,5): warning : Detected package downgrade: System.IO.FileSystem.Primitives from 4.3.0 to 4.0.1 \r [C:\Users\daplaist\Documents\Visual Studio 2017\Projects\ValueTupleTest\ValueTupleTest\ValueTupleTest.csproj] C:\Program Files (x86)\dotnet\sdk\1.0.0-rc4-004616\NuGet.targets(97,5): warning : ValueTupleTest (>= 1.0.0) -> Microsoft.NETCore.App (>= 1.1.0) -> NETStandard.Library (>= 1.6.0) -> System.Console (>= 4.0.0) -> runtime.win.System.Console (>= 4.3.0) -> System.IO.FileSystem.Primitives (>= 4.3.0) \r [C:\Users\daplaist\Documents\Visual Studio 2017\Projects\ValueTupleTest\ValueTupleTest\ValueTupleTest.csproj] C:\Program Files (x86)\dotnet\sdk\1.0.0-rc4-004616\NuGet.targets(97,5): warning : ValueTupleTest (>= 1.0.0) -> Microsoft.NETCore.App (>= 1.1.0) -> NETStandard.Library (>= 1.6.0) -> System.IO.FileSystem.Primitives (>= 4.0.1) [C:\Users\daplaist\Documents\Visual Studio 2017\Projects\ValueTupleTest\ValueTupleTest\ValueTupleTest.csproj] 11:29:11.493 1>C:\Program Files (x86)\dotnet\sdk\1.0.0-rc4-004616\NuGet.targets(97,5): warning : Detected package downgrade: System.Threading from 4.3.0 to 4.0.11 \r [C:\Users\daplaist\Documents\Visual Studio 2017\Projects\ValueTupleTest\ValueTupleTest\ValueTupleTest.csproj] C:\Program Files (x86)\dotnet\sdk\1.0.0-rc4-004616\NuGet.targets(97,5): warning : ValueTupleTest (>= 1.0.0) -> Microsoft.NETCore.App (>= 1.1.0) -> NETStandard.Library (>= 1.6.0) -> System.Console (>= 4.0.0) -> runtime.win.System.Console (>= 4.3.0) -> System.Threading (>= 4.3.0) \r [C:\Users\daplaist\Documents\Visual Studio 2017\Projects\ValueTupleTest\ValueTupleTest\ValueTupleTest.csproj] C:\Program Files (x86)\dotnet\sdk\1.0.0-rc4-004616\NuGet.targets(97,5): warning : ValueTupleTest (>= 1.0.0) -> Microsoft.NETCore.App (>= 1.1.0) -> NETStandard.Library (>= 1.6.0) -> System.Threading (>= 4.0.11) [C:\Users\daplaist\Documents\Visual Studio 2017\Projects\ValueTupleTest\ValueTupleTest\ValueTupleTest.csproj] Note that due to https://github.com/dotnet/roslyn-project-system/issues/1474, if you don't specify the `RuntimeIdentifier` for the project, you will see the warnings in Visual Studio but not when you do a command-line restore. It seems like this may be happening due to the combination of NuGet's ""nearest wins"" version selection logic and the way the rid-specific implementation packages (such as `runtime.win.System.Console`) are brought in. Possible solutions might include: - Changing NuGet's version resolution (probably not feasible at this point) - Updating the System.ValueTuple packages dependencies @ericstj @weshaggard @rrelyea @emgarten" +15829 area-Infrastructure Code Coverage docs are outdated I'm trying to extract the coverage report for List class, but I couldn't follow the steps in https://github.com/dotnet/corefx/blob/master/Documentation/building/code-coverage.md#user-content-code-coverage-with-mscorlib-code Some paths doesn't exist anymore and I'm not sure if the steps are still the same after https://github.com/dotnet/corefx/issues/15135 (Announcement: Engineering changes for corefx) Thanks +15830 area-System.Numerics The new System.MathF APIs should have wrappers created so they are available on .NETStandard The new System.MathF APIs (#1151) where implemented in dotnet/coreclr#5492. However, they are currently only available in `netcoreapp1.1` base applications. Until they make their way back into the Desktop framework, I propose that simple wrapper implementations be provided so the APIs are accessible in .NETStandard based libraries. The wrapper function should just call the corresponding `System.Math` API and cast the result back to `System.Single`. For example, `System.Acos(float)` would be implemented as: ```C# namespace System { public static class MathF { public static float Acos(float value) { return (float)Math.Acos(value); } } } ``` +15833 area-System.Security "There is no test result generated under ""System.Security.AccessControl.Tests.CommonSecurityDescriptor_CreateFromRawSecurityDescriptorTestC.../TestCreateFromRawSecurityDescriptor""" On build 20170204.01, under test: System.Security.AccessControl.Tests.CommonSecurityDescriptor_CreateFromRawSecurityDescriptorTestC.../TestCreateFromRawSecurityDescriptor There isn't the test result generated. Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170204.01/workItem/System.Security.AccessControl.Tests/analysis/xunit/System.Security.AccessControl.Tests.CommonSecurityDescriptor_CreateFromRawSecurityDescriptorTestC...~2FTestCreateFromRawSecurityDescriptor +15835 area-System.Numerics Improvements to Complex trig and hyperbolic trig functions This is a series of relatively minor improvements to the complex trig functions and complex hyperbolic trig functions. Sin and Cos perf is improved by only making one call to Math.Exp to compute the required real hyperbolic trig functions. (Hopefully the JIT compiler is smart enough to make a single FPU call for the required real sin and cos, but that's not something I can force. It would be nice if there were a Math.SinAndCos method that explicitly forced this.) Tan perf is similiarly improved, and, more importantly, modified to correctly handle the large region (all |z.Im| larger than about 710) for which Sin and Cos overflow but Tan doesn't. Sinh, Cosh, and Tanh are modified to call Sin, Cos, and Tan, so that all current and future improvements to the complex trig functions automatically feed into the complex hyperbolic trig functions. Several test cases for Tan and Tanh involving large arguments needed to be changed. Some of the previous test assertions were simply assertions of the previous bad behavior, e.g. demanding NaN for Tanh(big real) instead of 1. These have been changed to assert the new, mathematically correct behavior. Some of the previous test assertions are inappropriate given the bad behavior of the .NET real trig functions, e.g. demanding Tan(x + 0.0 i) = Math.Sin(x) / Math.Cos(x) for big x, even though Math.Sin(x) and Math.Cos(x) return incorrect values for big x. I have simply removed these tests. I have added attributes to skip all the changed tests for NetFx; there are still many shared test assertions for not-big arguments that are satisfied by both new and old code. (The fix for Asin and Acos come next. I wanted to get these simple fixes for the basic trig functions in before submitting a complicated one for the inverse trig functions.) +15837 area-System.Collections "Test: System.Collections.Concurrent.Tests.ConcurrentQueueTests/ManyConcurrentAddsTakes_CollectionRemainsConsistent(seconds: 1) failed with ""System.OutOfMemoryException""" Opened on behalf of @Jiayili1 The test `System.Collections.Concurrent.Tests.ConcurrentQueueTests/ManyConcurrentAddsTakes_CollectionRemainsConsistent(seconds: 1)` has failed. System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. Stack Trace: at System.Object.MemberwiseClone() at System.Collections.Generic.HashSet`1.CopyFrom(HashSet`1 source) at System.Collections.Generic.HashSet`1..ctor(IEnumerable`1 collection, IEqualityComparer`1 comparer) at System.Collections.Concurrent.Tests.ProducerConsumerCollectionTests.ManyConcurrentAddsTakes_CollectionRemainsConsistent(Double seconds) Build : Master - 20170204.01 (Core Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170204.01/workItem/System.Collections.Concurrent.Tests/analysis/xunit/System.Collections.Concurrent.Tests.ConcurrentQueueTests~2FManyConcurrentAddsTakes_CollectionRemainsConsistent(seconds:%201) +15839 area-System.Security AV running System.Net.Http.Functional.Tests https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows_prtest/17/consoleText ``` Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at Internal.Cryptography.Pal.ChainPal.MapRevocationFlags(X509RevocationMode revocationMode, X509RevocationFlag revocationFlag) at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) in D:\j\workspace\code_coverage---d5838fef\src\System.Security.Cryptography.X509Certificates\src\Internal\Cryptography\Pal.Windows\ChainPal.BuildChain.cs:line 71 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) in D:\j\workspace\code_coverage---d5838fef\src\System.Security.Cryptography.X509Certificates\src\System\Security\Cryptography\X509Certificates\X509Chain.cs:line 118 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) in D:\j\workspace\code_coverage---d5838fef\src\System.Security.Cryptography.X509Certificates\src\System\Security\Cryptography\X509Certificates\X509Chain.cs:line 105 at System.Net.Http.WinHttpCertificateHelper.BuildChain(X509Certificate2 certificate, String hostName, Boolean checkCertificateRevocationList, X509Chain& chain, SslPolicyErrors& sslPolicyErrors) in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpCertificateHelper.cs:line 31 at System.Net.Http.WinHttpRequestCallback.OnRequestSendingRequest(WinHttpRequestState state) in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs:line 272 at System.Net.Http.WinHttpRequestCallback.RequestCallback(IntPtr handle, WinHttpRequestState state, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs:line 94 at System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs:line 47 ``` +15842 area-System.Security 'dotnet new' command throws error on OS X 10.9.5 Moved from https://github.com/dotnet/cli/issues/5588 on behalf of @ebetron ----- ## Steps to reproduce Follow the install instructions for .NET Core for Mac OS X on https://www.microsoft.com/net/core#macos ## Expected behavior A new .NET project created ## Actual behavior $ mkdir -p /usr/local/lib $ ln -s /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib /usr/local/lib/ ln: /usr/local/lib//libcrypto.1.0.0.dylib: File exists $ ln -s /usr/local/opt/openssl/lib/libssl.1.0.0.dylib /usr/local/lib/ ln: /usr/local/lib//libssl.1.0.0.dylib: File exists $ dotnet new Unhandled Exception: System.EntryPointNotFoundException: Unable to find an entry point named 'CCRandomGenerateBytes' in DLL '/usr/lib/system/libcommonCrypto'. at Interop.CommonCrypto.CCRandomGenerateBytes(Byte* bytes, Int32 byteCount) at System.IO.Path.GetCryptoRandomBytesApple(Byte* bytes, Int32 byteCount) at System.IO.Path.GetCryptoRandomBytes(Byte* bytes, Int32 byteCount) at System.IO.Path.GetRandomFileName() at Microsoft.DotNet.InternalAbstractions.TemporaryDirectory..ctor() at Microsoft.Extensions.EnvironmentAbstractions.DirectoryWrapper.CreateTemporaryDirectory() at Microsoft.DotNet.Configurer.NuGetPackagesArchiver..ctor() at Microsoft.DotNet.Cli.Program.ConfigureDotNetForFirstTimeUse(INuGetCacheSentinel nugetCacheSentinel) at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient) at Microsoft.DotNet.Cli.Program.Main(String[] args) Abort trap: 6 ## Environment data .NET Command Line Tools (1.0.0-preview2-1-003177) Product Information: Version: 1.0.0-preview2-1-003177 Commit SHA-1 hash: a2df9c2576 Runtime Environment: OS Name: Mac OS X OS Version: 10.9 OS Platform: Darwin RID: osx.10.11-x64 +15844 area-System.Diagnostics "Ubuntu 16.04 outerloop debug - System.Diagnostics.Tests.ProcessWaitingTests.WaitChain failed with ""Xunit.Sdk.EqualException""" Failed test: System.Diagnostics.Tests.ProcessWaitingTests.WaitChain Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_ubuntu16.04_debug/92/consoleText Message: ~~~ System.Diagnostics.Tests.ProcessWaitingTests.WaitChain [FAIL] Assert.Equal() Failure Expected: 42 Actual: 145 ~~~ Stack Trace: ~~~ /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.04_debug/src/System.Diagnostics.Process/tests/ProcessWaitingTests.cs(190,0): at System.Diagnostics.Tests.ProcessWaitingTests.WaitChain() ~~~ Configuration: OuterLoop_Ubuntu16.04_debug (build#92) +15845 area-Infrastructure At what point is tools/testdotnetcli supposed to be populated "As a newcomer to the project, I am failing to get tests to build or run, because of failures to find dotnet.exe in tools/testdotnetcli. (The directory doesn't exist at all) `build.cmd` seems to run fine, but there is no ""testdotnetcli"" directory created in tools. I am unclear what by process this directory is supposed to be built - `build-tests.cmd` seems to get off to a good start and does a load of compiling, but after a minute or so starts to fail with errors about tools/testdotnetcli missing. To give me a clue about where to start to dig into this, could anyone point me to where testdotnetcli should be created (is it in build or in build-test, for example)? There are umpteen references to ""testdotnetcli"" in issues here, but it mostly seems to in log outputs, and I can't find anything describing my problem. At the point that build-tests starts to fail, its output looks like: ``` System.Xml.RW.NameTable.Tests -> N:\will\corefx\bin\Windows_NT.AnyCPU.Debug\System.Xml.RW.NameTable.Tests\netcoreapp\ System.Xml.RW.NameTable.Tests.dll System.Xml.RW.SubtreeReader.Tests -> N:\will\corefx\bin\Windows_NT.AnyCPU.Debug\System.Xml.RW.SubtreeReader.Tests\net coreapp\System.Xml.RW.SubtreeReader.Tests.dll System.Xml.RW.WrappedReader.Tests -> N:\will\corefx\bin\Windows_NT.AnyCPU.Debug\System.Xml.RW.WrappedReader.Tests\net coreapp\System.Xml.RW.WrappedReader.Tests.dll Using N:\will\corefx\Tools\testdotnetcli as the test runtime folder. Using N:\will\corefx\Tools\testdotnetcli as the test runtime folder. Using N:\will\corefx\Tools\testdotnetcli as the test runtime folder. Executing in N:\will\corefx\bin\AnyOS.AnyCPU.Debug\Microsoft.VisualBasic.Tests\netstandard\ Running tests... Start time: 8:40:29.07 Command(s): call N:\will\corefx\Tools\testdotnetcli\dotnet.exe xunit.console.netcore.exe Microsoft.VisualBasic.Tests.dll -xml te stResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait c ategory=failing -notrait category=nonwindowstests The system cannot find the path specified. Using N:\will\corefx\Tools\testdotnetcli as the test runtime folder. Finished running tests. End time= 8:40:29.08, Exit code = 1 Executing in N:\will\corefx\bin\AnyOS.AnyCPU.Debug\Microsoft.CSharp.Tests\netstandard\ Executing in N:\will\corefx\bin\AnyOS.AnyCPU.Debug\System.AppContext.Tests\netstandard\ Running tests... Start time: 8:40:29.07 Command(s): Executing in N:\will\corefx\bin\AnyOS.AnyCPU.Debug\Microsoft.Win32.Primitives.Tests\netstandard\ Using N:\will\corefx\Tools\testdotnetcli as the test runtime folder. Running tests... Start time: 8:40:29.09 Executing in N:\will\corefx\bin\Windows_NT.AnyCPU.Debug\Common.Tests\netstandard\ call N:\will\corefx\Tools\testdotnetcli\dotnet.exe xunit.console.netcore.exe System.AppContext.Tests.dll -xml testRe sults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait categ ory=failing -notrait category=nonwindowstests Running tests... Start time: 8:40:29.09 Command(s): The system cannot find the path specified. call N:\will\corefx\Tools\testdotnetcli\dotnet.exe xunit.console.netcore.exe Common.Tests.dll -xml testResults.xml - notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonwindowstests Finished running tests. End time= 8:40:29.08, Exit code = 1 Command(s): The system cannot find the path specified. Using N:\will\corefx\Tools\testdotnetcli as the test runtime folder. Finished running tests. End time= 8:40:29.09, Exit code = 1 call N:\will\corefx\Tools\testdotnetcli\dotnet.exe xunit.console.netcore.exe Microsoft.CSharp.Tests.dll -xml testRes ults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait catego ry=failing -notrait category=nonwindowstests Running tests... Start time: 8:40:29.08 Using N:\will\corefx\Tools\testdotnetcli as the test runtime folder. The system cannot find the path specified. Executing in N:\will\corefx\bin\AnyOS.AnyCPU.Debug\System.Buffers.Tests\netstandard\ Running tests... Start time: 8:40:29.10 Command(s): N:\will\corefx\Tools\tests.targets(210,5): warning MSB3073: The command ""N:\will\corefx\bin/AnyOS.AnyCPU.Debug/System.A ppContext.Tests/netstandard//RunTests.cmd N:\will\corefx\Tools/testdotnetcli"" exited with code 1. [N:\will\corefx\src\S ystem.AppContext\tests\System.AppContext.Tests.csproj] Using N:\will\corefx\Tools\testdotnetcli as the test runtime folder. Finished running tests. End time= 8:40:29.10, Exit code = 1 call N:\will\corefx\Tools\testdotnetcli\dotnet.exe xunit.console.netcore.exe System.Buffers.Tests.dll -xml testResul ts.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category ``` " +15847 area-Infrastructure Workflow on an individual library broken "If I make a change to src (e.g. src\System.Collections.Concurrent\src) and do ""msbuild /t:rebuild"", then switch to the tests and try to re-compile/run them with ""msbuild /t:rebuildandtest"", I get an error like: ``` Unhandled Exception: System.BadImageFormatException: Could not load file or assembly 'System.Console, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Ref erence assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058) ---> System.BadIma geFormatException: Cannot load a reference assembly for execution. ``` The only way I've found to recover is to do a full build.cmd/build-tests.cmd from the root. cc: @weshaggard" +15849 area-Infrastructure #if netstandard17 check in System.Collection.Tests are not being run Steps to reproduce: - `build.cmd` - `build-tests.cmd` - `cd src/System.Collections/tests` - `msbuild /T:BuildAndTest` E.g. change a test here (https://github.com/dotnet/corefx/blob/1d4d1d8b00f09a8198a4e402ad91b48a85a59036/src/System.Collections/tests/BitArray/BitArray_CtorTests.cs#L227) to: ```c# [Fact] public static void Clone_LongLength_Works() { BitArray bitArray = new BitArray(int.MaxValue - 30); BitArray clone = (BitArray)bitArray.Clone(); Assert.Equal(bitArray.Length, clone.Length); throw new InvalidOperationException(); } ``` I'd expect an IOE to be thrown, menaing the test ran, but it didn't. Also, in CI coverage, branches aren't getting hit that these tests do. Might be related to recent dev/eng changes +15850 area-Infrastructure Code coverage not updating after modifying source files Steps to reproduce: - `build.cmd` / `build-tests.cmd` - Open a source project and modify a source file - `build.cmd` - Navigate to the corresponding test project and run `msbuild /T:BuildAndTest /P:Coverage=true` Observe that the underlying source file has changed, but the coverage hasn't. See this screenshot ![repro](https://cloud.githubusercontent.com/assets/1275900/22647655/5e3251bc-eca5-11e6-9f86-c31e99107847.png) This makes it pretty hard to add coverage targeted tests +15852 area-System.Linq S.L.Expressions fails to compile constants of type TypeBuilder "The compiler incorrectly assumes that such objects can always be used with `ldtoken` (`t is TypeBuilder` is part of the test for this), resulting in an `ArgumentException` with a message of ""Type must be a runtime Type object."" on `Compile(false)`." +15854 area-System.Linq Don't assume TypeBuilder types can be emitted as tokens. Fixes #15852 +15855 area-System.Linq Remove castclass when emitting some S.L.Expressions expressions. Cases where the `O` value on stack is guaranteed to be derived from or implement the required type. `castclass` therefore doesn't serve as a check, throwing `InvalidCastException` when needed, as it never is, and might still be jitted. +15857 area-System.Collections Add some SortedSet tests - ISet template for the heavily customized TreeSubSet. - Min/Max for an empty set - `RemoveWhere(null)` I'm going to add some specific tests for TreeSubSet when I get the time, and this PR is probably big enough as it is +15865 area-System.Net HttpClient decodes encoded Url? "I'm trying to figure out some inconsistencies in how `HttpClient` handles URLs. I have the following test code: ```C# public async Task TestHttpClient() { var baseUrl = ""https://api.twitter.com/1.1/search/tweets.json""; //var query = ""(cafe OR boulangerie)""; var query = ""(café OR boulangerie)""; var url = baseUrl + $""?q={Uri.EscapeDataString(query)}""; var httpClient = new HttpClient(); var response = await httpClient.GetAsync(url); await response.Content.ReadAsStringAsync(); } ``` The code won't actually work, since we need authentication and other stuff for Twitter searches. But it demonstrates my problem. The variable `url` will have the following value: `https://api.twitter.com/1.1/search/tweets.json?q=%28caf%C3%A9%20OR%20boulangerie%29` However, looking at the request in Fiddler, I can see that what is actually sent is: `https://api.twitter.com/1.1/search/tweets.json?q=(caf%C3%A9%20OR%20boulangerie)` So all of a sudden, the parentheses are no longer encoded. This matters in my case, because I use the encoded query string to calculate a signature that I use to authenticate against twitter. So my signature will have percent encoded parentheses and the request won't, so Twitter throws an error and tells me the authentication fails. What is interesting is that if I send the query with a regular e instead of é then the parentheses are encoded in the request! Like this: `https://api.twitter.com/1.1/search/tweets.json?q=%28cafe%20OR%20boulangerie%29` I suppose this is some kind of bug with `HttpClient`? Can I work around this somehow?" +15866 area-Infrastructure Prepare uap package cc: @weshaggard @ericstj These changes will move packaging assets to `bin\$(TargetGroup)\pkg` into `bin\pkg\$(TargetGroup)`. It will also mark all of the applicable libraries as UAP and will deploy them to be ready for packaging. Both folders have closure complete except for `System.IO.IsolatedStorage` +15867 area-System.IO Migration of some additional legacy port tests This is not so much a real request for a pull as it is a request for a very basic review of my first PR to this project. I'd be grateful if, in particular, @JeremyKuhne and @karelz could have a look and let me know if I'm completely on the wrong track here before I do dozens more files like this. There are some clear issues emerging already: * There are subtle differences about the way USB serial port adaptors buffer data and handle handshaking which will probably require some test modification to pass - I've got one 'skip' in there at the moment because of this. * The legacy tests were all run in a `return bool` style, which allowed the test function a chance to robustly close ports before returning, which is vital if one test failure isn't going to bleed all over all the other tests. Obviously XUnit throws itself out of the middle of a test, which means that I have had to add a lot of `try / finally` blocks to contain that throw while maintaining a similar code layout to the existing code. In fact, almost every test is going to require the same sort of boilerplate which is rather unattractive. Another approach would be to hoist the ownership of the various `SerialPort` objects out of the test methods into the test class, and then do some defensive clean-up in the `[Teardown]` methods (or whatever the XUnit equivalent is). Or there's probably some `IDisposable` wrapper pattern which would be cleaner - I'm not 100% clear why the disposability of SerialPort isn't exploited here - maybe we should just have all `SerialPort` objects in `using` blocks? Any preferences here? Tagging #15752 +15868 area-Infrastructure Remove SUSE 13.2 build Change PB_ arguments so helix build will turn on for 42.1. In making the change I realized that the approach being removed for SUSE 42.1 here could be used to leave on the build sans tests for 13.2 if desired; I can update the PR if that's useful. @chcosta @weshaggard +15870 area-System.Security System.Security.Cryptography.Native not linking against correct OpenSSL As per the directions for building CoreFX from source, I have installed OpenSSL (version 1.0.2k) through Homebrew, and manually symlinked `libcrypto.1.0.0.dylib`, `libssl.1.0.0.dylib`, and the pkgconfig files for those two libraries into `/usr/local`. However, when I go to build corefx, I get a linker error. Investigation reveals that the compiler is trying to link against _the outdated 0.9.8 versions in `/usr/lib`_, despite the more up-to-date copies being present in `/usr/local/lib`, and my manually specifying `-DOPENSSL_ROOT_DIR` when I call `build-native.sh`. Can anyone point me to what might be going wrong? Thanks! +15871 area-System.Net HttpClient with Client Certificate on CentOS 7 "HttpClient does not seem to work with a client certificate on linux (CentOS 7). Using dotnet 1.1 with System.Net.Http 4.3.0 in a console app and asp.net site. ```c# var handler = new HttpClientHandler() { ClientCertificateOptions = ClientCertificateOption.Manual }; handler.ClientCertificates.Add(settings.ClientCertificate); var httpClient = new HttpClient(handler); var responseMsg = await httpClient.SendAsync(requestMsg); ``` It works fine on Windows 8.1/10 but fails on CentOS 7 with the following error... ` Exception: System.PlatformNotSupportedException: The libcurl library in use (7.29.0) and its SSL backend (""NSS/3.19.1 Basic ECC"") do not support custom handling of certificates. A libcurl built with OpenSSL is required. ` I tried using libcurl-openssl, http://linuxsoft.cern.ch/cern/centos/7/cern/x86_64/repoview/libcurl-openssl.html, and exporting LD_LIBRARY_PATH as well and get the following error ` Exception: System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: SSL peer certificate or SSH remote key was not OK `" +15873 area-Serialization Build System.Private.DataContractSerialization on uapaot The fix is to get System.Private.DataContractSerialization to have a uapaot build. +15875 area-Meta Android - Fall back to mkstemp if mkstemps is not available `mkstemps` is not available on Android, but `mkstemp` is as an alternative. This PR updates the build files to check for the existence of both `mkstemps` and `mkstemp`, and falls back to `mkstemp` if it is not available. +15877 area-Meta Android: Fall back to futimens if futimes is not available On Android, `futimes`, which is not a Posix function, is not available but `futimens` is. This PR updates the `System.Native` build process to fall back to `futimens` if `futimes` is not available. +15878 area-Meta Android - Fall back to uname if getdomainname is not available On Android, `getdomainname` is not available, but `uname` can be used to get the domain name of the current device. This PR updates the build system so that it polls for the existence of both functions and and falls back to `uname` if `getdomainname` is not available. +15879 area-Meta Remove versioned configuration from test projects The changes onclude some other minor clean up in the test project files +15881 area-Meta Android - Support unsigned ipv6mr_interface, bind() arguments On Android, `ipv6mr_interface` is a signed int, as well as the `address_len` argument to `bind`. That causes the compilation of `System.Native` to fail because implicit conversions from unsigned int to signed int are not allowed. This PR updates the configure scripts so that they detect whether these values should be signed or unsigned, and chooses the right values at compile time. +15882 area-Infrastructure Add cmake files which support cross-compiling for Android arm64 This PR adds CMake files in cross/android/arm64 which allow you to cross-compile for arm64 Android from Linux, given that you have an Android RootFS installed (a separate PR is coming for that). +15883 area-Meta Android - Add script to create an Android RootFS This PR adds a script which generates a RootFS from which CoreFX can be cross-compiled for Android. It: - Downloads the Android NDK (Native Development Kit) - Generates an Android toolchain and sysroot folder which can be used for cross-compiling - Downloads the required dependencies (openssl, curl, krb5) from Termux, a kind of package manager for Android. ([A PR is open for krb5](https://github.com/termux/termux-packages/pull/588), so I've compiled it myself at the moment) From this, you can cross-compile CoreFX for Android. +15884 area-Infrastructure Resurrect CoreFX Validation on Nano Needs to be enabled, at minimum, in CI. For completeness (as we do for supported platforms), it needs to be enabled in Helix as well. +15885 area-Meta Marking code as unchecked (pt 2) Marking code that may intentionally lead to over or underflows with unchecked in preparation of turning on CheckForOverflowUnderflow for all projects (issue #3140) +15886 area-System.Runtime Add Interop Attributes removed from CoreCLR @jkotas @tijoytom +15887 area-System.Net Make socket tests more reliable under Unix There are several Sockets tests that regularly fail in Unix because the test listens to a specific socket:port that is expected to not have a server, however due to other tests that are running, there is a small chance another test created a server with that specific port, causing the test to fail. In Unix, ports are random while in Windows ports are incremental, thus the issues don't occur in Windows because by the time the ports roll around, the tests will be done. The odds of a port collision causing a Unix failure in a test run is small: say ~1:1,000 test runs fail due to this, but spread across all versions of Unix that are running tests it becomes more common. The proposed fix is to retry once when running under Unix; other options considered were to remove the tests or loop perhaps 3 times (instead of retrying once). This will change the odds to ~1:1,000,000 or so. A recent test failure: ```` System.Net.Sockets.Tests.DualModeConnectAsync.ConnectAsyncV4IPEndPointToV6Host_Fails MESSAGE: Assert.Throws() Failure\nExpected: typeof(System.Net.Sockets.SocketException)\nActual: (No exception was thrown) http://jdash.azurewebsites.net/builds/test?name=System.Net.Sockets.Tests.DualModeConnectAsync.ConnectAsyncV4IPEndPointToV6Host_Fails&viewName=dotnet_corefx&pr=False&limit=1000&startDate=2017-02-04 ```` cc @ianhays cc @Priya91 cc @davidsh cc @ericeil In reference to issue #14519 +15891 area-System.IO Test issue: System.IO.MemoryMappedFiles.Tests.CrossProcessTests.DataShared crashes The cross-process memory-mapped file test below consistently crashes on my machine on Windows 10 Pro even on first build of a freshly cloned repo. Command line: ``` R:\corefx_ref\Tools\testdotnetcli\dotnet.exe xunit.console.netcore.exe System.IO.MemoryMappedFiles.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonwindowstests ``` Test output: ``` Exception from RemoteExecutorConsoleApp(System.IO.MemoryMappedFiles.Tests, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb, System.IO.MemoryMappedFiles.Tests.CrossProcessTests, DataShared_OtherProcess, C:\Users\Dennis, Dietrich\AppData\Local\Temp\CrossProcessTests_xbfm5c1q.o5d\DataShared_16): Assembly: System.IO.MemoryMappedFiles.Tests, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb Type: System.IO.MemoryMappedFiles.Tests.CrossProcessTests Method: Int32 DataShared_OtherProcess(System.String) Exception: System.Reflection.TargetParameterCountException: Parameter count mismatch. at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at RemoteExecutorConsoleApp.Program.Main(String[] args) in R:\corefx_ref\src\Common\tests\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.cs:line 48 Unhandled Exception: System.Reflection.TargetParameterCountException: Parameter count mismatch. at RemoteExecutorConsoleApp.Program.Main(String[] args) in R:\corefx_ref\src\Common\tests\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.cs:line 60 System.IO.MemoryMappedFiles.Tests.CrossProcessTests.DataShared [FAIL] Assert.Equal() Failure Expected: 42 Actual: -532462766 Stack Trace: R:\corefx_ref\src\Common\tests\System\Diagnostics\RemoteExecutorTestBase.cs(167,0): at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() R:\corefx_ref\src\System.IO.MemoryMappedFiles\tests\MemoryMappedFile.CrossProcess.cs(30,0): at System.IO.MemoryMappedFiles.Tests.CrossProcessTests.DataShared() ``` +15892 area-Serialization "Change ""#if NET_NATIVE"" to ""#if uapaot"" in S.P.DataContractSerialization " We need make changes to the following compilation directives, 1. Remove USE_REFEMIT as we do not use it. 2. Change NET_NATIVE to uapaot +15897 area-Meta Couple of tests should be [Theory] not [Fact] "Run tests by whatever means, then look in the log xml: ``` ```" +15900 area-Infrastructure [ARM/CI] ARM CI script for arm and armel ARM CI for arm and armel. This CI script tests followings for ubuntu.14.04-arm, ubuntu.16.04-arm and tizen.4.0.0-armel. 1. Construct RootFS for ubuntu.14.04-arm, ubuntu.16.04-arm and tizen.4.0.0-armel. 2. Cross build corefx using RootFS for ubuntu.14.04-arm, ubuntu.16.04-arm and tizen.4.0.0-armel. Release and Debug build are available. 3. Above tasks are performed inside Docker image. Related issues: https://github.com/dotnet/coreclr/issues/9273 https://github.com/dotnet/core-setup/issues/790 +15903 area-System.Linq Lighter compilation of <= and >= in S.L.Expressions Currently `<=` is compiled as the equivalent of `x <= y ? true : false` with a branch. Compile as `!(x > y)`, avoiding the branch. +15904 area-System.Linq Don't cast S.L.Expression arithmetic results to type they already fit For types smaller than 32 bit the 32-bit results of arithmetic operations are converted to ensure they fit that smaller size, with checks if appropriate. Several operations cannot produce a result that does not already fit (most obviously `x & y` can never overflow the size of `x` and `y`). `EmitUnaryOperator` already skips the conversion in some cases. Skip more there and skip some in `EmitBinaryOperator`. +15907 area-System.Linq Don't short-circuit null-checks in lifted binary ops S.L.Expressions compiles a lifted operator where both operands are nullable as `x.HasValue && y.HasValue ? x op y : null` Roslyn compiles the same operator without the short-circuiting, avoiding a branch: `x.HasValue & y.HasValue ? x op y : null` Make Expressions follow the same non-short-circuiting approach. +15913 area-System.Numerics [x86 Release] AccessViolationException in System.Numerics.Tests.Matrix4x4Tests.Matrix4x4CreateScaleCenterTest1 **Commit** b9e51257e5409f77af2cb3d2566593e97eefba7a **Repro** build -Release -os:Windows_NT -buildArch:x86 build-tests -Release -os:Windows_NT -buildArch:x86 **Output**
xUnit.net console test runner (32-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Numerics.Vectors.Tests Discovered: System.Numerics.Vectors.Tests Starting: System.Numerics.Vectors.Tests System.Numerics.Tests.Matrix4x4Tests.Matrix4x4CreateScaleCenterTest1 [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__0() at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.b__45_0() at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) at Xunit.Sdk.TestInvoker`1.RunAsync() at Xunit.Sdk.XunitTestRunner.InvokeTestMethodAsync(ExceptionAggregator aggregator) at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) at Xunit.Sdk.TestRunner`1.<>c__DisplayClass43_0.b__0() at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) at Xunit.Sdk.TestRunner`1.d__43.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestRunner`1.RunAsync() at Xunit.Sdk.XunitTestCaseRunner.RunTestAsync() at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCaseRunner`1.RunAsync() at Xunit.Sdk.XunitTestCase.RunAsync(IMessageSink diagnosticMessageSink, IMessageBus messageBus, Object[] constructorArguments, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource) at Xunit.Sdk.XunitTestMethodRunner.RunTestCaseAsync(IXunitTestCase testCase) at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestMethodRunner`1.RunAsync() at Xunit.Sdk.XunitTestClassRunner.RunTestMethodAsync(ITestMethod testMethod, IReflectionMethodInfo method, IEnumerable`1 testCases, Object[] constructorArguments) at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestClassRunner`1.RunAsync() at Xunit.Sdk.XunitTestCollectionRunner.RunTestClassAsync(ITestClass testClass, IReflectionTypeInfo class, IEnumerable`1 testCases) at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCollectionRunner`1.RunAsync() at Xunit.Sdk.XunitTestAssemblyRunner.RunTestCollectionAsync(IMessageBus messageBus, ITestCollection testCollection, IEnumerable`1 testCases, CancellationTokenSource cancellationTokenSource) at Xunit.Sdk.XunitTestAssemblyRunner.<>c__DisplayClass14_2.b__3() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.Execute() at System.Threading.Tasks.Task.<>c.<.cctor>b__271_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) at System.Threading.Tasks.SynchronizationContextTaskScheduler.PostCallback(Object obj) at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) at Xunit.Sdk.MaxConcurrencySyncContext.<>c__DisplayClass11_0.b__0(Object _) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at lambda_method(Closure , Object , Object ) at Xunit.Sdk.ExecutionContextHelper.Run(Object context, Action`1 action) at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.Execute() at System.Threading.Tasks.Task.<>c.<.cctor>b__271_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) at System.Threading.Tasks.ThreadPoolTaskScheduler.LongRunningThreadWork(Object obj) at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart(Object obj) Finished running tests. End time=10:23:43.99, Exit code = 255
**Note** Details above say `System.Numerics.Tests.Matrix4x4Tests.Matrix4x4CreateScaleCenterTest1` is failing, but in the full log `System.Numerics.Tests.Matrix4x4Tests.Matrix4x4CreateScaleCenterTest3` is failing as well. I'm guessing that's because in the full run something allows the test to continue past the first assertion. +15914 area-System.Memory Span extension methods vs instance methods This was brought up in the review of #15329. > We should discuss the extension method pattern for span holistically -- I don't think that this a good idea for our customers. It introduces a somewhat weird type (SpanHelpers) we no additional benefit. What is the reason these should be extension methods? +15916 area-Infrastructure Update code coverage docs Fixes https://github.com/dotnet/corefx/issues/15829 cc: @danmosemsft +15917 area-Infrastructure Update Reference and ProjectReference ordering in our targets. Switch the to using a common DefaultReference notion between targets and eliminated targetingpack.props. Moved the default references for tests into tests.targets. Fixed where we added Private to References because in some cases it wasn't happing because the target that set Private=true was run before all the references were added. This is why we are now setting Reference Private=false in a different target from ProjectReference Private=false because they sometimes need to happen at different times in the target execution. Set _FindDependencies=false to block RAR from trying to automatically add the closure of the primary references as it added automatic references that folks could accidently start depending on and we want to be explicit about our dependencies. This was really noticable once we started auto referencing the netstandard facade which caused everything to get pulled into the reference set. To fix the various build scenarios where we add ProjectReferences automatically we needed a common target to hook on which we now have AddProjectReferencesDynamically target that correctly hooks into the various dependency chains. See comment in targets file for more details. cc @ericstj @mellinoe @joperezr Fixes https://github.com/dotnet/corefx/issues/15847, https://github.com/dotnet/corefx/issues/15744 +15919 area-Infrastructure Add standard repo to auto-update scripts for corefx cc @dagood @eerhardt Adding support for https://github.com/dotnet/versions/pull/124#event-950852931 in corefx dependencies. +15921 area-System.Numerics Add hypot, expm1, log1p These are very standard methods used in numerical computing. ``` public static class Math { // Returns sqrt(x^2 + y^2) without overflow/underflow for large/small x, y double Hypot (double x, double y) // Returns e^x -1 without loss of accuracy for small x double Expm1 (double x) // Returns log(1+x) without loss of accuracy for small x double Log1p (double x) } ``` They appear, with exactly these names, in the Java Math class and Boost and GSL libraries, in many other mathematical libraries, and in many articles in the numerical computing literature. Naming: The names are somewhat cryptic. .NET coding guidelines would probably favor ExpMinusOne over Expm1, etc. On the other hand, the names are quite standardized. We would need to decide whether conforming to the expectations of advanced users or giving a better hint at meaning to less advanced users is more important. Location: The obvious place is System.Math, but: (i) this class is already quite a jumble, (ii) it mostly follows math.h of the C standard library, which does not contain these functions, and (iii) the presence of these functions might baffle naive users. One possibility would be to add a MoreMath or AdvancedMath static class in the System.Numerics namespace, which would also be a natural place for future advanced functions such as erf, Gamma, etc. Domain and Range: The only slightly non-trivial issue here is that Log1p is not defined for x < -1. We would need to decide whether to retutrn NaN or throw ArgumentOutOfRangeException. Implementation and Performance: Implementations are straightforward and well-established. Each can be executed over the entire range with a handfull of flops, making them about as fast as most other standard math functions. +15925 area-System.Net Detect Unix paths on Unix and Dos&Unc paths on Windows Fixes https://github.com/dotnet/corefx/issues/1745 \CC @stephentoub TODO: - [x] Equals test HashCode check https://github.com/dotnet/corefx/pull/15925/commits/4a7ce12fb744f324b8b6ebcf7e2eb6590f3c7b05 +15926 area-System.Net "Dns.GetHostEntry(""IPv6_string"") does not work anymore in Linux environment." "Now `IPHostEntry hostEntry = Dns.GetHostEntry(""IPv6_address"");` failed, and does not work anymore in Linux, while the same code works perfectly in Windows. ``` System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : No such device or address Stack Trace: /home/REDMOND/gelee/Projects/CoreFx/src/System.Net.NameResolution/src/System/Net/DNS.cs(178,0): at System.Net.Dns.InternalGetHostByAddress(IPAddress address, Boolean includeIPv6) /home/REDMOND/gelee/Projects/CoreFx/src/System.Net.NameResolution/src/System/Net/DNS.cs(470,0): at System.Net.Dns.GetHostEntry(String hostNameOrAddress) ``` @saurabh500 @corivera" +15927 area-System.Numerics Add mixed Complex/double arithmetic operators to Complex There are implicit casts from double -> Complex, so it's currently possible to write e.g. 2.5 * z for Complex z, but in addition to the cast, this costs 6 flops for a Complex * Complex multiply, while it's possible to implement a double * Complex multiply directly in 2 flops. For a single multiplication, a 4 flop additional cost is trivial. But in large operations on Complex matrices, where Complex arithmetic operations occur in rapid succession within tight O(N^3) loops, this can cut the overall time for a Complex matrix operation from 3 hours to 1 hour. The operations to implement are as follows: ```C# public struct Complex { // Mixed double/Complex multiplication 6 flops -> 2 flops public static Complex operator* (double a, Complex b) public static Complex operator* (Complex a, double b) // Complex / double division 9 flops -> 2 flops // This is the largest efficiency gain. public static Complex operator/ (Complex a, double b) // double / Complex division 9 flops -> 6 flops // This is the least worthwhile and could be skipped. public static Complex operator/ (double a, Complex b) // Mixed double/Complex addition 2 flops -> 1 flop public static Complex operator+ (double a, Complex b) public static Complex operator+ (Complex a, double b) // Mixed double/Complex subtraction 2 flops -> 1 flop public static Complex operator- (double a, Complex b) public static Complex operator- (Complex a, double b) // Also 7- 8 static helper methods Multiply, Divide, Add, Subtract public static Complex Add (double left, Complex right) public static Complex Add(Complex left, double right) public static Complex Subtract(double left, Complex right) public static Complex Subtract(Complex left, double right) public static Complex Multiply(double left, Complex right) public static Complex Multiply(Complex left, double right) public static Complex Divide(Complex left, double right) } ``` The implementations are straightforward, with the the exception of double / Complex, which faces the same cancellation and overflow issues as Complex / Complex. +15930 area-System.Net Test failure in System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_NoneIPAddress_Fail and The test is currently disabled with label [ActiveIssue(10345)](https://github.com/dotnet/corefx/issues/10345), although the issue has been closed. If you enable the test, it would still fail on Linux. ``` System.Net.NameResolution.Tests.GetHostEntryTest.Dns_GetHostEntryAsync_NoneIPAddress_Fail(address: 255.255.255.255) [FAIL] Assert.Throws() Failure Expected: typeof(System.Net.Sockets.SocketException) Actual: typeof(System.Net.Internals.SocketExceptionFactory+ExtendedSocketException): No such device or address Stack Trace: /home/sekho/Desktop/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs(422,0): at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) /home/sekho/Desktop/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs(561,0): at System.Net.Dns.EndGetHostEntry(IAsyncResult asyncResult) /home/sekho/Desktop/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs(641,0): at System.Net.Dns.<>c.b__26_1(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +15931 area-System.ComponentModel Test failures in System.ComponentModel.Tests.CultureInfoConverterTest.ConvertFrom_String and System.ComponentModel.Tests.CultureInfoConverterTest.ConvertFrom_String_InvalidCulture These tests are currently disabled with label [ActiveIssue(11611)](https://github.com/dotnet/corefx/issues/11611), although the issue has been closed. If you enable the tests, they would still fail on Linux. ``` System.ComponentModel.Tests.CultureInfoConverterTest.ConvertFrom_String [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: (No exception was thrown) Stack Trace: /home/sekho/Desktop/corefx/src/System.ComponentModel.TypeConverter/tests/CultureInfoConverterTests.cs(61,0): at System.ComponentModel.Tests.CultureInfoConverterTest.ConvertFrom_String() System.ComponentModel.Tests.CultureInfoConverterTest.ConvertFrom_String_InvalidCulture [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: (No exception was thrown) Stack Trace: /home/sekho/Desktop/corefx/src/System.ComponentModel.TypeConverter/tests/CultureInfoConverterTests.cs(81,0): at System.ComponentModel.Tests.CultureInfoConverterTest.ConvertFrom_String_InvalidCulture() Finished: System.ComponentModel.TypeConverter.Tests ``` +15932 area-Meta Review all PlatformSpecific tests to ensure test coverage In this PR, all PlatformSpecific tests have been reviewed to see if there are any irrelevant labels or if any OS-Specific bugs were overlooked. In cases where the test made sense only to specific platform(s), comments have been added. In cases where the test shouldn't have been OS-specific, they were re-enabled for that OS. Also, new issues have been filed for tests that are supposed to be fixed for a platform but are still disabled and failing on it: https://github.com/dotnet/corefx/issues/15930 https://github.com/dotnet/corefx/issues/15931 The goal for this was so we could easily find OS-specific bugs/failures in the future. @danmosemsft @AlexGhiondea +15933 area-Infrastructure Prevent compiling against runtime implementation libraries When building a project with a package reference to Microsoft.Private.CoreFx.NetCoreApp, the project was trying to compile against runtime implementation libraries. this is related to https://github.com/NuGet/Home/issues/4207. Prevent this behavior by placing a placeholder under ref. Also see https://github.com/dotnet/core-setup/pull/1029/files /cc @weshaggard @eerhardt @ericstj @ellismg +15935 area-Infrastructure Change test boot strapping Fixes https://github.com/dotnet/corefx/issues/15167 cc @karajas @mellinoe After this change all that should be needed is a call to build.cmd for your configuration and then you can go into any individual projects, including test projects, and successfully build and run them. +15936 area-Infrastructure Figure out how to use the runtime output directly as the test shared framework "Today we have a runtime output ""bin\runtime\netcoreapp-Windows_NT-Debug-x64"" and we have a runtime folder ""testhost\netcoreapp-Windows_NT-Debug-x64\shared\Microsoft.NETCore.App\9.9.9"" output so that we can run our tests as a shared application. The contents of those 2 directories are currently duplicated. We should figure out a way to hard-line the entire directory (not just the individual files) or a way to configure dotnet.exe such that we can tell it to use our runtime output path as the shared framework. cc @karajas @gkhanna79 do you know if there is any way to configure dotnet.exe to use a particular folder as the shared framework? If not do you think that is a feature request that might be doable? " +15937 area-Infrastructure Figure out a strategy for generating test shared framework deps file https://github.com/weshaggard/corefx/blob/c67cb8a80fe2449e59e023ed481e977ffe8ced8b/src/src.builds#L20 Today we build the deps json file as a post step to building all the src projects and we rely on having a previous deps.json file to generate the new one. Maintaining the deps.json is likely going to be error prone so ideally we would eliminate it completely but if we cannot we should at least look into generating it from scratch and having it be updated whenever we binplace something to the shared framework directory. cc @karajas @gkhanna79 Do we have any plans to enable a scenario where we can use a shared framework without requiring a deps.json file? +15938 area-Meta Marking code as unchecked (pt 3) Marking code that may intentionally lead to over or underflows with unchecked in preparation of turning on CheckForOverflowUnderflow for all projects (issue #3140) NOTE: Commit contains only tests for System.Linq.Expressions +15941 area-System.Linq Simpler lifted comparison operation compilation in S.L.Expressions Split into separate methods for lifted and lifted-to-null comparisons, and simplify each. Lifted now does no branching, and with shorter IL. Lifted-to-null also shorter and also creates a null response through `initobj` instead of pushing a null and unboxing. These are close to what how the equivalent C# and VB respectively are compiled. +15942 area-System.Linq [Bug] Double-evaluation of selector in SelectMany I found out my changes from https://github.com/dotnet/corefx/pull/14675 introduced a double-evaluation of a selector in `SelectMany.ToArray`: https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/SelectMany.cs#L245 This will be fixed shortly in an upcoming PR, but I am opening a tracking issue just in case I forget or that PR gets closed. +15943 area-System.Linq Remove two iterators from Concat Was part of https://github.com/dotnet/corefx/pull/15389 but moved to another PR. Fixes https://github.com/dotnet/corefx/issues/15942 Changes: - Remove 2 iterators from `Concat` that specialize for ICollections. Instead of having different iterators, set a flag on the iterator if all inputs so far have been ICollections. This allows us to determine in constant time whether we can get the count cheaply and preallocate for ToArray/ToList. - This allows us to move the source enumerables into linked list nodes that are of uniform type, `ConcatNIterator`. Previously, we had to typecast every time we crossed a node. - Implement `GetCount` and `ToArray` in the derived classes rather than the base to avoid virtual calls and improve time complexity. - Avoid walking the linked list quadratically for `GetCount`, since we don't need to sum the counts in order. - Remove unnecessary virtual calls to `GetEnumerable` for 1 Concat followed by `ToArray`. - Make 1 Concat followed by `Count` cheap if the both of the concatees' counts can be gotten cheaply. - Add a `ReserveOrAdd` method to `SparseArrayBuilder` which either reserves space for the enumerable if its count can be predetermined, or eagerly adds it otherwise. This saves quite a few lines of code. **Performance tests:** [memory leak reduction](https://gist.github.com/jamesqo/c8ccc43c2e9a7b8bb35c6cc6bebeb9ec) / [regressions from this change](https://gist.github.com/jamesqo/bde594c796e2c07117f77e88239a2c40) Need to be updated. /cc @JonHanna @stephentoub @VSadov +15944 area-Infrastructure Android: Removed unused WITH_LLDB_* defines Synchronous toolchain.cmake for armel with CoreCLR and removed unused WITH_LLDB_* defines Related issue: https://github.com/dotnet/corefx/pull/15882, https://github.com/dotnet/coreclr/pull/9409 +15946 area-System.Linq Reuse more IL locals in S.L.Expressions Cache more `LocalBuilder`s after use, reducing the number of locals emitted in produced methods, and reducing allocations in creating them. Cache the `LocalBuilder`s in a `Stack` rather than a `Queue`, increasing chance of same local being used in quick succession, in turn increasing chance of same real storage location being used in quick succession. +15949 area-System.IO SerialPort in core doesn't support certain char encodings Posting this to allow us to ActiveIssue some encoding tests - we're failing on: * Custom encoding 1047 * System.Text.Encoding.GetEncoding(50220) (Japanese JIS) * System.Text.Encoding.GetEncoding(57006) (ISCIIAssemese) I'm not clear if this is a Core or a SerialPort limitation. +15952 area-System.Net Test cleanup for System.Net.Security Enabling and moving a bunch of disabled/outerlooped System.Net.Security tests to innerloop. I did extensive testing on Windows, RHEL, and Ubuntu machines and ensured the tests are stable (at least locally) and hit no errors. The next step is to re-enable them and watch to see if any of the failures resurface and disable them as needed. resolves #3144 - Removed TODO because Begin/End were added back in #8358 and the issue is closed resolves #7825 - Original issue from April 2016. Cannot repro today. Re-enabling to watch for future failures. resolves #11170 - Can't repro failures on multiple OSs. Re-enabling to watch for future failures. resolves #11345 - Outerloop tests are passing and stable for thousands of iterations. Tentatively moving to innerloop to watch for potential future failures. resolves #12107 - removed TODO because issue is closed resolves #9130 - duplicate issues failing because of an intermittent error (remote party closed transport stream) not exclusive to the test which occurs in Outerloop runs for other NetSecurity tests. Re-enabling them and leaving them in innerloop to get more data. resolves #10909 - duplicate issues failing because of an intermittent error (remote party closed transport stream) not exclusive to the test which occurs in Outerloop runs for other NetSecurity tests. Re-enabling them and leaving them in innerloop to get more data. resolves #11624 - duplicate issues failing because of an intermittent error (remote party closed transport stream) not exclusive to the test which occurs in Outerloop runs for other NetSecurity tests. Re-enabling them and leaving them in innerloop to get more data. resolves #14177 - duplicate issues failing because of an intermittent error (remote party closed transport stream) not exclusive to the test which occurs in Outerloop runs for other NetSecurity tests. Re-enabling them and leaving them in innerloop to get more data. resolves #14505 - duplicate issues failing because of an intermittent error (remote party closed transport stream) not exclusive to the test which occurs in Outerloop runs for other NetSecurity tests. Re-enabling them and leaving them in innerloop to get more data. resolves #8744 - duplicate issues failing because of an intermittent error (credentials package not recognized) not exclusive to the test which occurs in Outerloop runs for other NetSecurity tests. Re-enabling them and leaving them in innerloop to get more data. resolves #12683 - duplicate issues failing because of an intermittent error (credentials package not recognized) not exclusive to the test which occurs in Outerloop runs for other NetSecurity tests. Re-enabling them and leaving them in innerloop to get more data. resolves #12706 - duplicate issues failing because of an intermittent error (credentials package not recognized) not exclusive to the test which occurs in Outerloop runs for other NetSecurity tests. Re-enabling them and leaving them in innerloop to get more data. resolves #12728 - duplicate issues failing because of an intermittent error (credentials package not recognized) not exclusive to the test which occurs in Outerloop runs for other NetSecurity tests. Re-enabling them and leaving them in innerloop to get more data. @steveharter @Priya91 @davidsh +15954 area-Meta Create targeting pack for upcoming release of Full .NET +15955 area-Infrastructure Build system requirements are incorrectly documented I'm trying to build corefx on a non-developer machine (i.e. no VS, etc). I installed msbuild manually from a stand-alone package (nobody told me to, but it seemed sensible).anThen I copied the entire corefx tree to the machine and run build.cmd, and it says this: ``` Error: Visual Studio 2015 required. Please see https://github.com/dotnet/corefx/blob/master/Documentation/pro ject-docs/developer-guide.md for build instructions. ``` I'm sceptical that VS2015 is actually required (that's not the issue however), but I'm 100% sure that the document that which is referred to doesn't answer the question - it doesn't mention VS2015 at all, and only mentions VS in passing about debugging something. Personally I think these kind of newbie-only paper cuts are worth fixing. +15956 area-Meta Enable tests to compile with netstandard Most of the tests have netstandard configurations and it doesn't compile. the changes here is to fix the configurations and the tests to compile. This is important step to get netfx tests compile too as we are in most of the time netfx fallback to netstandard configuration The changes include some fixes to compile teh sources too. +15957 area-System.Numerics API Proposal: Widen, Narrow, and Convert for Vector "This is a concrete proposal of the ideas discussed in issue #1605. Converting data from one form to another is a necessary part of vector algorithms in many areas such as image processing, signal processing, text manipulation, and more. Current SIMD instruction sets expose a lot of functionality for quickly and efficiently converting large chunks of data, but the current interface of `Vector` does not have any support for it. Allowing access to these intrinsics could greatly speed up common algorithms involving data conversion. # Proposed additions All of the additions are on the static `Vector` class, and operate on parameters of type `Vector`. The additions are systematic and straightforward. `Widen` and `Narrow` are provided for type pairs that are half- or double-sized, and `Convert` is provided for same-sized integral-floating point type pairs. ```C# public static partial class Vector { public static void Widen(Vector source, out Vector dest1, out Vector dest2); public static void Widen(Vector source, out Vector dest1, out Vector dest2); public static void Widen(Vector source, out Vector dest1, out Vector dest2); public static void Widen(Vector source, out Vector dest1, out Vector dest2); public static void Widen(Vector source, out Vector dest1, out Vector dest2); public static void Widen(Vector source, out Vector dest1, out Vector dest2); public static void Widen(Vector source, out Vector dest1, out Vector dest2); public static Vector Narrow(Vector source1, Vector source2); public static Vector Narrow(Vector source1, Vector source2); public static Vector Narrow(Vector source1, Vector source2); public static Vector Narrow(Vector source1, Vector source2); public static Vector Narrow(Vector source1, Vector source2); public static Vector Narrow(Vector source1, Vector source2); public static Vector Narrow(Vector source1, Vector source2); public static Vector ConvertToSingle(Vector value); public static Vector ConvertToSingle(Vector value); public static Vector ConvertToDouble(Vector value); public static Vector ConvertToDouble(Vector value); public static Vector ConvertToInt32(Vector value); public static Vector ConvertToUInt32(Vector value); public static Vector ConvertToInt64(Vector value); public static Vector ConvertToUInt64(Vector value); } ``` # Semantics The semantics are simple and uniform. I will use a representative set of methods to explain. ```C# Widen(Vector source, out Vector dest1, out Vector dest2) ``` An input `Vector` called `source` is given. When the method completes, `dest1` contains the lower half of elements in `source`, and `dest2` contains the upper half of elements in `source`. The elements are converted as if they were individually cast from `byte` to `ushort`. ```C# Vector Narrow(Vector source1, Vector source2) ``` Two input `Vector`'s are given. The method returns a single `Vector`. The return value's lower elements are the elements from `source1`, and the upper elements are from `source2`. The elements are converted as if they were individually cast from `ushort` to `byte`. ```C# Vector ConvertToSingle(Vector value) ``` A single `Vector` is given. The method returns a single `Vector` containing the input's elements. The elements are converted as if they were individually cast from `int` to `float`. # Rationale Currently, there is no way to efficiently convert elements residing in `Vector` to a different data type. Directly converting the vector's source data (in a serial manner) is the most efficient way, but that requires your algorithm to break out of ""vector mode"" just to do simple conversion operations. It is also many times slower than we could achieve with proper vector conversion support. Many common algorithms require conversions from one data type to another, so this is currently a large hole in the API. @sivarv @CarolEidt " +15959 area-Serialization Add several tests for XmlSerializer Supporting varied types in SOAP. #15356 @shmao @zhenlan @mconnew +15960 area-System.Reflection Existing reflection APIs should be able to invoke ref-returning methods and return a value "Related to: https://github.com/dotnet/roslyn/issues/8489 The scenario seems to be explicitly forbidden. Possibly due to ref returning methods not being common in the past. Note that this issue does not ask for a new API that would allow returning a `ref`. This is just about the existing APIs that returns the result as an object. It seems that they should work with ref returning methods by evaluating the target, reading the value indirectly and returning the value as object. ```C# object result1 = inst.RefReturningMethod(); // should be the same as object result2 = inst.GetType().InvokeMember(inst, . . ., ""RefReturningMethod"",. . .); ``` " +15961 area-System.IO SerialPort timeout tests are slow and flaky They don't play well with CI builds and take some time. We need to: 1. Pick some more generous thresholds for validation 2. Try to make tests faster where possible 3. Move the slowest tests to the outer loop #15752 +15962 area-System.IO Add signing to windows native build The clrcompression.dll built in the open isn't getting correctly signed because it is missing a requires_signing file adjacent to the dll. This commit adds a special-case to build that file when building sign.builds for the managed build since the native build never touches that code. +15964 area-Infrastructure Adding Microsoft.Private.CoreFx.UAP package build Build UAP flat package called `Microsoft.Private.CoreFx.UAP` cc: @weshaggard @danmosemsft @ericstj @jkotas +15965 area-System.IO Register code page provider to fix encoding tests Also remove custom Encoding test which is no longer applicable on Core Fixes #15949 +15966 area-System.Diagnostics Microsoft.Win32.Registry shouldn't be supported on uap Today we have Microsoft.Win32.Registry in the closure of uap because the implementation of System.Private.Xml and System.Diagnostics.Process depend on it. We should break those dependencies at least for UAP so that we can safely remove the uap Configuration for registry. To do: - [X] Remove Registry dependency from System.Private.XML (PR #15973) - [x] Remove Registry dependency from System.Diagnostics.Process cc: @Priya91 (for System.Diagnostics.Process) and @sepidehMS (for System.Private.Xml and Microsoft.Win32) +15967 area-System.Net Propagate exception for failing net.http test for better diagnosis. related to https://github.com/dotnet/corefx/issues/13938 thanks @stephentoub for the idea +15968 area-System.IO System.IO.IsolatedStorage shouldn't depend on AccessControl for UAP Today IsolatedStorage depends on two AccessControl libraries for netcoreapp and uap. While this is ok in netcoreapp, AccessControl isn't available on UAP so we should break that dependency and create a new uap specific configuration of IsolatedStorage that doesn't depend on them. cc: @JeremyKuhne +15970 area-System.Security Initial implementation of X509Certificates, HttpClient, and SslStream for macOS Broken by this change: * X509Store has no implementation yet on macOS. * Exporting as a PFX is not yet implemented on macOS. * A lot of TLS CipherSuites have no metadata defined. * macOS does not support version skipping in TLS. So `Tls | Tls12` is an invalid choice. In this change: General: * All OSStatus related exceptions now look up the error message. X509Certificates: * X509Certificate moves to using SecCertificateRef from OpenSSL's X509. * X509 metadata comes from a managed reader after being loaded by Security.framework, due to the significant amount of data that has no public export in Apple's libraries. * Significant code was factored out to be shared by OpenSSL and Apple implementations for X500DistinguishedName and X509Certficate2Collection.Find. * Loading a PFX (or, rather, the private keys from a PFX) via Apple's platform requires importing into a Keychain, and a Keychain requires a file on disk. A temporary keychain is created during cert loading and erased when safe. Like the perphemeral key load on Windows this can leak files due to abnormal program termination. HttpClient: * Initialization no longer wakes up OpenSSL SslStream: * New implementation based on Apple SecureTransport. * Currently has support for SNI (for AuthenticateAsClient) +15971 area-System.Net Refactor DiagnosticSource logging (correlation part1) **This change moves DiagnosticSource logging to DiagnosticsHandler and fixes #13172.** It **prepares** HttpClient for correlation feature support, which will allow to store global context for the current operation and propagate it in HTTP Requests. Correlation-feature background: * [DiagnosticSource.Activity User Guide](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/ActivityUserGuide.md) * [Http Protocol standard draft](https://github.com/lmolkova/correlation/blob/master/http_protocol_proposal_v1.md) /cc @vancem @avanderhoorn @nbilling @cwe1ss @karolz-ms @SergeyKanzhelev @brahmnes @davidfowl +15972 area-System.Data DbDataReader.GetFieldValue fails in SQLite I'm writing `System.Data.Odbc` library for corefx and testing it with a SQLite provider. When you call `reader.GetInt64(i)` to get a big number it'll work great, but if you try to do `reader.GetValue(i)` then it'll fail with and `Unknown SQL type` exception. Given the inner working of SQLite, I'd say this is expected. The real issue here is that `reader.GetInt64(i)` works fine but `reader.GetFieldValue(i)` throws the same exception as `GetValue` (since it's just a cast as seen [here](https://github.com/dotnet/corefx/blob/c5c75db7c00047d603522fd6e21f350099e09bbb/src/System.Data.Common/src/System/Data/Common/DbDataReader.cs#L156)). This behavior is really unexpected from APIs with (presumably) the same purpose. Since this is a newer API added in .NET 4.5, it's a shame that it works worse than the old one. Maybe we can add special cases for the types we already support (e.g. `GetInt64`)? See https://github.com/aspnet/Microsoft.Data.Sqlite/blob/dev/src/Microsoft.Data.Sqlite/SqliteDataReader.cs#L537 for a possible improvement. cc @divega. +15973 area-System.Xml Remove Microsoft.Win32 dependency from System.Private.Xml Fixes https://github.com/dotnet/corefx/issues/15809 cc: @danmosemsft @jkotas @weshaggard FYI: @joperezr (https://github.com/dotnet/corefx/issues/15966) +15974 area-Serialization Area-Serialization Sprint 114 The issue is for tracking issues to be done in sprint 114 (due by 3/3/2017). +15976 area-Meta Marking code as unchecked (pt 4) Marking code that may intentionally lead to over or underflows with unchecked in preparation of turning on CheckForOverflowUnderflow for all projects (issue #3140) +15979 area-Serialization Pick up new S.P.DataContractSerialization 4.1.2 This adds a necessary change on top of [PR 14526](https://github.com/dotnet/corefx/pull/14526) to have the updated System.Runtime.Serialization.Json and System.Runtime.Serialization.Xml packages reference the new 4.1.2 version of the System.Private.DataContractSerialization package. Update the version of System.Private.DataContractSerialization listed as a BaseLinePackage from 4.1.1 to 4.1.2. ~~Mark all of the affected packages as stable.~~ This change was reverted and removed from the PR. +15980 area-System.Runtime Split some composite GC tests into separate tests When these tests fail (https://github.com/dotnet/corefx/issues/15158), it's difficult to tell which part of the test failed. This PR splits some of the more composite GC tests into individual facts so that it's clear what exactly went wrong when a test fails. +15981 area-System.IO "Tests under: System.IO.Compression.Tests failed with ""System.IO.Compression.ZLibException & System.DllNotFoundException""" Opened on behalf of @Jiayili1 The test `System.IO.Compression.Tests.BeginEndDeflateStreamTests/DecompressWorks` has failed. System.IO.Compression.ZLibException : The underlying compression routine could not be loaded correctly.\r ---- System.DllNotFoundException : Unable to load DLL 'clrcompression.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) Stack Trace: at System.IO.Compression.Inflater.InflateInit(Int32 windowBits) at System.IO.Compression.DeflateStream.InitializeInflater(Stream stream, Boolean leaveOpen, Int32 windowBits) at System.IO.Compression.DeflateStream..ctor(Stream stream, CompressionMode mode, Boolean leaveOpen, Int32 windowBits) at System.IO.Compression.Tests.DeflateStreamAsyncTestsBase.d__10.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.IO.Compression.Tests.DeflateStreamAsyncTestsBase.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at Interop.zlib.inflateInit2_(Byte* stream, Int32 windowBits, Byte* version, Int32 stream_size) at Interop.zlib.InflateInit2_(ZStream& stream, Int32 windowBits) at System.IO.Compression.ZLibNative.ZLibStreamHandle.InflateInit2_(Int32 windowBits) at System.IO.Compression.Inflater.InflateInit(Int32 windowBits) Build : Master - 20170209.01 (Core Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Release - AnyCPU-Release - AnyCPU-Debug - AnyCPU-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170209.01/workItem/System.IO.Compression.Tests/analysis/xunit/System.IO.Compression.Tests.BeginEndDeflateStreamTests~2FDecompressWorks +15984 area-System.Diagnostics Implement DiagnosticSource.IsEnabled with extended context "# Motivation Our goal is to enable telemetry event correlation. To do this we need incoming requests to be tagged with an ID (and potentially other information), and have this information 'flow' through (be available) to all code run in response to that request and in particular allow this information to be propagated to any outgoing requests. #15023 Implements this approach and involves additional costs such as maintaining Activity.Current and context propagation. To reduce such costs, we want to enable advanced sampling and outgoing requests filtering. DiagnosticSource declares IsEnabled method and allows to filter events based on their names. * For sampling scenario, IsEnabled(string) allows to implement fixed rate or threshold sampling, however sampling may be done based on other properties: request initiator, particular feature, path, specific Id in the Activity.Baggage * For outgoing request filtering, users may need to prevent instrumentation of certain requests based on their URI or other properties. IsEnabled(string) does not allow to efficiently implement such scenarios and we propose to add IsEnabled with additional context. # Proposed API ```C# public abstract partial class DiagnosticSource { public virtual bool IsEnabled(string name, object arg1, object arg2 = null) { return IsEnabled(name); } } public partial class DiagnosticListener { public override bool IsEnabled(string name, object arg1, object arg2 = null); public virtual IDisposable Subscribe(IObserver> observer, Func isEnabled) } ``` # Usage ```C# //This code represents web service hosting layer that receives incoming http request //See more details about this samples and Activity in #15023 //For the filtering, we want to // 1) Make sure someone listens to the http incoming request events and only if it's true, // create Activity and fill it's baggage and parent id // 2) Let user enable instrumentation based on request and Activity properties. // 3) If user decides to instrument this particular request, we can start Activity and send event public void OnIncomingRequest(DiagnosticListener httpListener, HttpRequest request) { //check if user is interested in such events at all if (httpListener.IsEnabled(""Http_In"")) { var activity = new Activity(""Http_In""); //parse request headers and add baggage to Activity activity.SetParentId(request.headers[""x-ms-request-id""]) foreach (var header in context.Request.Headers) if (header.Key.StartsWith(""x-ms-baggage-"") activity.AddBaggage(header.Key, header.Value); //let user decide if he wants this request and activity to be sampled if (httpListener.IsEnabled(""Http_In"", request, activity)) httpListener.StartActivity(activity); //... process request and stop activity } } //This code demonstrates how user can subscribe to events with advanced filtering based on request and activity properties public void Startup() { DiagnosticListener.AllListeners.Subscribe(delegate (DiagnosticListener listener) { var predicate = (string name, object requestObj, object activityObj) => { //check for event name if (name == ""Http_In"") { var request = (HttpRequest)requestObj; //filter out some unintersting events if (request != null && request.Method == ""OPTIONS"") return false; //sample requests based on CorrelationId in the baggage var activity = (Activity)activityObj; if (activity != null) return IsSampledId(activity.GetBaggage(""CorrelationId"")); //note that if no context (request and activity) provided, we return true, //so the first httpListener.IsEnabled(""Http_In"") check will pass return true; } return false; } if (listener.Name == ""System.Net.Http"") { listener.Subscribe(delegate (KeyValuePair value, predicate) { Console.WriteLine(""Event: {0} Current Operation: {1} Current ID {2}"", value.Key, {Activity.Current.OperationName}, {Activity.Current.Id}); }); } } } // This code demonstrates that it's still possible to filter events based on their names only public void Startup() { DiagnosticListener.AllListeners.Subscribe(delegate (DiagnosticListener listener) { if (listener.Name == ""System.Net.Http"") { listener.Subscribe(delegate (KeyValuePair value, (name) => name == ""Http_In"") { Console.WriteLine(""Event: {0} Current Operation: {1} Current ID {2}"", value.Key, {Activity.Current.OperationName}, {Activity.Current.Id}); }); } } } ``` @vancem @terrajobst " +15985 area-System.Diagnostics [WIP] Support IsEnabled with addtional arguments #15984 This change introduces IsEnabled(string, object, object) obverload in DiagnosticSource for advanced events filtering based on additional event context. It also adds DiagnosticListener.Subscribe overload capable of filtering events based on such context. See #15984 for more details +15986 area-System.Console Wrong .NET Core console output encoding on Windows "Command prompt on my computer have a 866 (OEM - Russian) encoding, but .NET Core app says it is Unicode (UTF-8). Source code: ```csharp using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { string helloWorld = ""Здравствуй, Мир!""; Console.WriteLine(Console.OutputEncoding.EncodingName); Console.WriteLine(helloWorld); Console.OutputEncoding = Console.OutputEncoding; Console.WriteLine(Console.OutputEncoding.EncodingName); Console.WriteLine(helloWorld); } } } ``` Console output: ``` D:\ConsoleApp1>dotnet run Unicode (UTF-8) ╨Ч╨┤╤А╨░╨▓╤Б╤В╨▓╤Г╨╣, ╨Ь╨╕╤А! Unicode (UTF-8) Здравствуй, Мир! D:\ConsoleApp1>dotnet --info .NET Command Line Tools (1.0.0-rc4-004771) Product Information: Version: 1.0.0-rc4-004771 Commit SHA-1 hash: 4228198f0e Runtime Environment: OS Name: Windows OS Version: 10.0.14393 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\1.0.0-rc4-004771 ```" +15987 area-Meta Remove most CAS and Security transparency related attributes Fixes https://github.com/dotnet/corefx/issues/12592 Remove CAS and Security Transparency attributes, and related message suppressions and pragma disable 618's with the exception of (1) no changes to Compression and Immutable and (2) no changes to SecurityCritical in refs (only removed some SecurityPermission's) Are there any other OOBs that I should exclude? System.Net.Http was mentioned in https://github.com/dotnet/corefx/pull/14383, should I reverse the couple changes there? @jkotas @stephentoub @JeremyKuhne @davidsh +15989 area-System.Net Issue with system.net.networkinformation.ping.send() with a low timeout It appears as when I use .NET [system.net.networkinformation.ping.send()](https://github.com/dotnet/corefx/blob/master/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Windows.cs) function with a low timeout, like less than 100ms, it will return an answer even if the time is higher than the timeout I have set: ``` [System.Net.NetworkInformation.Ping]::new().Send('www.google.co.uk',1) Status : Success Address : 2a00:1450:400b:c00::5e RoundtripTime : 58 Options : Buffer : {97, 98, 99, 100...} ``` Is the iphelper API able to handle low ping thresholds correctly when called from IcmpSendEcho2? +15990 area-System.Threading Threadpool Min/Max ThreadCount Configuration I am porting a .net 4.5 windows application to a .net core application targeting docker. Since i have a massive usage of the System.Threading.Tasks namespace, which is obvious based on the System.Threading.ThreadPool's min/max thread configuration, I was looking for an replacement for the following APIs - System.Threading.ThreadPool.SetMinThreads(int, int) and - System.Threading.ThreadPool.SetMaxThreads(int, int) since they no longer exists. Well, it seems to be no managed-code configuration for these values in netcore. I found out that there should be some hard configuration values in the enviroment (See: https://github.com/dotnet/cli/issues/889 and https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/clr-configuration-knobs.md), but I was not able to find an example how or where I can configure them. [Edit]At least I can go without the SetMinThreads-API, but not without the SetMaxThreads[/Edit] Thanks in advance! :) +15991 area-System.Linq S.L.Expression Casts of Boolean Enums Incomplete #13516 raised and #13518 closed the issue of casting from bool to bool-based enums using `Convert`. It did not though cover the inverse cast or the use of `ConvertChecked`. The inverse cast isn't accepted, and `ConvertChecked` fails on both interpreter and compiler. +15992 area-System.Linq Allow casts between bool-based enums and bool, checked and unchecked Fixes #15991 Remove prohibition on creating bool-enum -> bool conversions. Implement in compiler: Since this is the only acceptable conversion to or from boolean types, catch casts between same underlying types and do nothing, as the values on the stack is unchanged anyway. As well as fixing this case it slightly optimises other enum casts with the same underlying type and is closer to what the C# compiler does. Remove the case introduced in #13518 as it should no longer be hit, and anything doing so is a bug. Implement in interpreter: Duplicate the conversion for `Convert` to that for `ConvertChecked`. Also introduce a check on conversions between same underlying type to optimise such paths similarly to what is done in the compiler, though not applicable when underlying type is the final result. +15996 area-System.Linq S.L.Expressions use short ldind/stind for more types. #11407 changed `EmitLoadValueIndirect` and `EmitStoreValueIndirect` from if-else ladders on type == to a switch on TypeCode. The original if-else ladder skipped many types, presumably trading off the larger IL stream caused by using `ldobj` and `stobj` for a quicker walk through the ladder. Since that advantage doesn't hold for a `switch`, add in the omitted types, and re-order by size to make the completeness clearer. +15997 area-System.Collections Optimize ImmutableQueue.CreateRange If the enumerable supports random access then we can push the items on to the forwards stack in reverse order. This avoids having to make an expensive allocation where (previously) when two items were dequeued, we would have to reverse the entire backwards stack. If the enumerable does not support random access, we can still do better than the current implementation because we can deal with ImmutableStacks directly and not allocate an ImmutableQueue wrapper over them for every item. /cc @ianhays, @AArnott, @safern +15998 area-System.IO Various fixes / cleanup to SerialPort test suite This contains a number fairly minor changes, which are probably in three categories - cosmetic cleanup, fixes for problems introduced by me in the migration and fixes for problems in the original test suite which have only worked by luck in the past (changes like ReadLine.cs are in this last category) If the project would prefer me to supply more, smaller, PRs I can do that - I am trying to strike some reasonable balance. It's not worth calling-out comment typos on review at this stage, there are thousands. +16000 area-Infrastructure Mark 1.0.4 release packages stable cc @gkhanna79 @leecow @karelz +16001 area-Infrastructure Mark packages stable for 1.1.1 servicing release cc @gkhanna79 @leecow @karelz +16002 area-Infrastructure Fix build to work for VS2017 "It ought to be possible to build with VS2017 at least with the V15 tools if not potentially with the V14 tools if VS installs those. Someone needs to remove the checks below and make any other necessary fixes. Probably won't take long. ``` C:\git\corefx\run.cmd: 2 setlocal 3 4: if not defined VisualStudioVersion ( 5 if defined VS140COMNTOOLS ( 6 call ""%VS140COMNTOOLS%\VsDevCmd.bat"" C:\git\corefx\src\Native\build-native.cmd: 40 :ToolsVersion 41 :: Determine the tools version to pass to cmake/msbuild 42: if not defined VisualStudioVersion ( 43 if defined VS140COMNTOOLS ( 44 goto :VS2015 .. 46 goto :MissingVersion 47 ) 48: if ""%VisualStudioVersion%""==""14.0"" ( 49 goto :VS2015 50 ) ``` and probably a few other places. " +16003 area-System.IO Move slow SerialPort tests to outerloop The tests in this PR all take several seconds to run on a machine with just a serial port (like the CI machines). This PR takes the inner-loop run-time here for this set of tests down from about 120s to about 10s. #15961 +16004 area-Serialization Prototype XmlSerializer pregeneration Investigate the feasibility of the implementation XmlSerializer Generator in core. +16005 area-Serialization Investigate the usage svcutil tool in serialization Investigate the usage of svcutil tool in Desktop so as to well understand the feasibility of its implementation in the core. +16006 area-Serialization Test more scenarios in the XmlSerializer pregeneration Based on the #16004, try more scenarios including soap. +16007 area-System.Collections ImmutableSortedSet.Builder.DebuggerProxy incorrectly caches contents https://github.com/dotnet/corefx/blob/master/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableSortedSet_1.Builder.DebuggerProxy.cs#L42-L45 `ImmutableSortedSet.Builder` is probably a mutable type, so it's incorrect to cache the contents for display to the debugger. The code was probably copied-and-pasted from the proxy for a collection that actually is immutable, where it would be legal to cache the contents. +16008 area-System.Collections Consolidate DebuggerProxies for immutable collections All of them have the same logic, which is taking an immutable collection and then caching its contents into an array when requested by the debugger. We can remove all of the duplicate code and have a single proxy for immutable collections. /cc @ianhays, @AArnott, @safern +16010 area-System.Threading Proposal: GetAwaiter for tuple of tasks @jnm2 has [implemented `GetAwaiter` extension methods](https://gist.github.com/jnm2/3660db29457d391a34151f764bfe6ef7) which enable convenient awaiting on tuples of tasks (up to some arity). For instance, `var (x, y) = await (thingX.OperationAsync(), thingY.OperationAsync());` @terrajobst @weshaggard @jkotas How do you recommend proceeding with such API proposals? Do you need an API review before going into implementation? If a PR is ok, I'm assuming that the Task-related extensions would go into https://github.com/dotnet/corefx/tree/master/src/Common/src/System/Threading/Tasks Is that appropriate? Also, more generally, do you prefer to review such proposal piecemeal (one at a time) or all together (to get a well-thought API surface?). I remember some proposals for `Zip` and `Join` in LINQ APIs. Relates to https://github.com/dotnet/roslyn/issues/16159 +16011 area-System.Linq Proposal: New Zip LINQ Tuple Overload API (By @agocke) Rewriting this issue to focus on exactly one API: ```C# class System.Linq.Enumerable { public static IEnumerable<(T1, T2)> Zip(this IEnumerable first, IEnumerable second) { return first.Zip(second, (x, y) => (x, y)); } // Already EXISTS: public static IEnumerable Zip(this IEnumerable first, IEnumerable second, Func resultSelector); } ``` There will also be a matching IQueryable API: ```C# class System.Linq.Queryable { public static IQueryable<(T1, T2)> Zip(this IQueryable second); // Already EXISTS: public static IQueryable Zip(this IQueryable source1, IEnumerable source2, Expression> resultSelector); } ``` [EDIT] Add class names and existing `Zip` method for context by @karelz +16013 area-System.IO SerialPort Tests EventGeneric.EventHandlers_CalledSerially always hangs EventGeneric.EventHandlers_CalledSerially always hangs waiting for events. @karelz This is a placeholder to allow ActiveIssue - it can be assigned to me. +16017 area-System.IO Fix hang in SerialPort tests EventHandlers_CalledSerially This PR fixes a hang that was caused by the introduction of the `using()` blocks on the SerialPort objects rather than the explicit `Close` calls which were made in legacy. I've also done a considerable tidy-up and refactored three near-identical test helper classes into a generic base with three derivations. EventHandler_ThrowsException has been removed - this was not called by the netfx code - it relies on the very old framework behaviour of swallowing unhandled interrupts on background threads, so clearly hasn't worked since that changed (4.0? 2.0? can't remember). It's dead and gone, anyway. Fixes #16013 +16018 area-Infrastructure Adding new definition for UAP and UAPAOT builds and adding it to pipebuild cc: @chcosta @weshaggard FYI: @joshfree This PR: - Sets up a new build definition called DotNet-CoreFx-Trusted-Windows-UWP that is very similar to the one we currently have for Windows except that it doesn't run build-tests nor it triggers jobs for Helix. - Change pipebuild.json in order to add these additional configurations to our official build. It adds 16 builds in total (4 build architectures * 2 verticals * 2 flavors) +16020 area-Meta Marking code as unchecked (pt 5) Marking code that may intentionally lead to over or underflows with unchecked in preparation of turning on CheckForOverflowUnderflow for all projects (issue #3140) +16021 area-Infrastructure Add new perf job to Jenkins I have added a new perf.groovy file to deal with the perf runs for CoreFX. Currently we are only adding Windows, but will add Linux support after this is running. +16022 area-Microsoft.CSharp BlockReflection attribute inclusion for assemblies that are used on uap Framework assemblies that are used on netcore50 should include `BlockReflectionAttribute=true` in their project file unless there's a good reason not to. It seems like something happened to framework reflection blocking with e.g. Microsoft.CSharp.dll in the 5.2.2 framework metapackage for UWP apps. I was helping out troubleshooting a UWP failure where the `dynamic` keyword support goo was trying to reflect on the CSharpGetMemberBinder type (a private type in the assembly), and the customer was getting a MissingMetadataException on 5.2.2 metapackage, while things worked fine with the previous metapackage. The key difference seems to be the absence of the attribute. Removing reflection blocking is a breaking change. +16024 area-System.Xml OuterLoop_CentOS7.1_release: Test 'System.Xml.Tests.CReaderTestModule.RunTestCase' failed with 'Xunit.Sdk.EqualException' Failed Test: System.Xml.Tests.CReaderTestModule.TCMaxSettings Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_centos7.1_release/89/consoleText Message: ~~~ System.Xml.Tests.CReaderTestModule.TCMaxSettings [FAIL] Assert.Equal() Failure Expected: 0 Actual: 38 ~~~ Stack Trace: ~~~ /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_release/src/System.Private.Xml/tests/Readers/ReaderSettings/CReaderTestModule.cs(21,0): at System.Xml.Tests.CReaderTestModule.RunTestCase(Func`1 testCaseGenerator) /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_release/src/System.Private.Xml/tests/Readers/ReaderSettings/CReaderTestModule.cs(27,0): at System.Xml.Tests.CReaderTestModule.RunTest(Func`1 testCaseGenerator) ~~~ Configuration: OuterLoop_Centos7.1_release (build#89) +16025 area-System.Data SqlConnection.ClearAllPools not working when running on Linux "You can repeat this issue by steps: create new Asp.Net Core WebApi Project in VS2015 add Nuget package `""System.Data.SqlClient"": ""4.3.0""` write codes in ValuesController ``` // GET api/values [HttpGet] public IEnumerable Get() { using (var connection = new SqlConnection(""Server=ip;Database=db;User Id=user;Password=pass;"")) { connection.Open(); var cmd = new SqlCommand(""..."", connection); cmd.ExecuteNonQuery(); } return new string[] { ""value1"", ""value2"" }; } // GET api/values/5 [HttpGet(""{id}"")] public string Get(int id) { SqlConnection.ClearAllPools(); return ""value""; } ``` run ""dotnet publish"" and upload files to ubuntu 16.04 server build docker image use this Dockerfile, and run this image ``` FROM microsoft/dotnet:1.0.3-runtime COPY . /app WORKDIR /app EXPOSE 5000 ENV ASPNETCORE_URLS=""http://*:5000"" ENTRYPOINT [""dotnet"", ""WebApplication1.dll""] ``` call this webapi by muilti threads ``` public static void Main(string[] args) { var tasks = new Task[10]; for (var i = 0; i < tasks.Length; i++) { tasks[i] = new Task(()=> { //call http://ip:5000/api/values }); tasks[i].Start(); } Task.WaitAll(tasks); Console.WriteLine(""OK""); Console.ReadLine(); } ``` after test many times, then run “sp_who2” in Sql server, you can see many sleeping connections for db **then you call ""http://ip:5000/api/values/1"", webapi will execute _SqlConnection.ClearAllPools()_ method, but run “sp_who2” in Sql server, you can see those sleeping connections not close** SqlConnection.ClearAllPools() works when webapi running on windows, I have tested dotnet runtime 1.0.3 and 1.1.0. " +16026 area-System.IO Allow long SerialPort tests to be shortened globally The SerialPort tests include some very long (3 minutes, 20 minutes) 'stress' tests, which make working on the test suite miserable. This PR adds a global setting which allows us to shorten them to a few seconds. These tests don't run as part of CI at present because they require hardware support, so this isn't a CI issue. Ultimately we will need to have a mechanism for doing 'manual' tests which could control this global setting, for now it's just a cleaner alternative to having local adjustments to timings all over the place. All part of issue #15752 +16028 area-Microsoft.CSharp The binary operator Add is not defined for the types 'System.Nullable`1[System.Byte]' and 'System.Nullable`1[System.Byte]'. ```csharp enum MyEnum : byte { Value_1 = 1, Value_2 = 2 } class Program { static void Main(string[] args) { dynamic d = MyEnum.Value_1; var x = d + null; } } ``` fails with following error (works as expected without dynamic) ``` Unhandled Exception: System.InvalidOperationException: The binary operator Add is not defined for the types 'System.Nullable`1[System.Byte]' and 'System.Nullable`1[System.Byte]'. at System.Linq.Expressions.Expression.GetUserDefinedBinaryOperatorOrThrow(ExpressionType binaryType, String name, Expression left, Expression right, Boolean liftToNull) at System.Linq.Expressions.Expression.Add(Expression left, Expression right, MethodInfo method) at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.GenerateBinaryOperator(EXPRCALL pExpr) at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.GetExpression(EXPR pExpr) at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.GenerateConvert(EXPRCALL pExpr) at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.VisitCALL(EXPRCALL pExpr) at Microsoft.CSharp.RuntimeBinder.Semantics.ExprVisitorBase.Dispatch(EXPR pExpr) at Microsoft.CSharp.RuntimeBinder.Semantics.ExprVisitorBase.Visit(EXPR pExpr) at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.GenerateLambda(EXPRCALL pExpr) at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.VisitCALL(EXPRCALL pExpr) at Microsoft.CSharp.RuntimeBinder.Semantics.ExprVisitorBase.Dispatch(EXPR pExpr) at Microsoft.CSharp.RuntimeBinder.Semantics.ExprVisitorBase.Visit(EXPR pExpr) at Microsoft.CSharp.RuntimeBinder.ExpressionTreeCallRewriter.Rewrite(TypeManager typeManager, EXPR pExpr, IEnumerable`1 listOfParameters) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.CreateExpressionTreeFromResult(IEnumerable`1 parameters, ArgumentObject[] arguments, Scope pScope, EXPR pResult) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.BindCore(DynamicMetaObjectBinder payload, IEnumerable`1 parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.Bind(DynamicMetaObjectBinder payload, IEnumerable`1 parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.BinderHelper.Bind(DynamicMetaObjectBinder action, RuntimeBinder binder, IEnumerable`1 args, IEnumerable`1 arginfos, DynamicMetaObject onBindingError) at Microsoft.CSharp.RuntimeBinder.CSharpBinaryOperationBinder.FallbackBinaryOperation(DynamicMetaObject target, DynamicMetaObject arg, DynamicMetaObject errorSuggestion) at System.Dynamic.DynamicMetaObject.BindBinaryOperation(BinaryOperationBinder binder, DynamicMetaObject arg) at System.Dynamic.BinaryOperationBinder.Bind(DynamicMetaObject target, DynamicMetaObject[] args) at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[] args, ReadOnlyCollection`1 parameters, LabelTarget returnLabel) at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args) at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) ``` +16029 area-System.Security OpenSslCryptographicException initialising an X509Certificate2 on Ubuntu 14.04 or official docker image microsoft/aspnetcore:1.1.0 I have a Web API running in a docker container. The container is built from the provided 1.1.0 package: FROM microsoft/aspnetcore:1.1.0 and the Web API binaries are copied in. The API runs fine and returns data as expected until I turn on authentication, at which point it needs an X509SecurityKey to set the *TokenValidationParameters.IssuerSigningKey* value. It throws an exception when it attempts to initialise an X509Certificate2 from a string value: string certValue = certificate.Value; byte[] byteCert = Encoding.ASCII.GetBytes(certValue); return new X509Certificate2(byteCert); throws an OpenSslCryptographicException: Unhandled Exception: System.Exception: Failed to extract the Token Signing certificate from the Federation metadata. ---> Interop+Crypto+OpenSslCryptographicException: error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error at Internal.Cryptography.Pal.CertificatePal.FromBlob(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] data) at Mercury.Shared.Rest.Authentication.AdfsFederationMetadata.GetSigningCertificate() The string value from which the X509Certificate2 is being initialised is: MIIC4jCCAcqgAwIBAgIQHWt3kGySgJxPtsalC0EoKzANBgkqhkiG9w0BAQsFADAtMSswKQYDVQQDEyJBREZTIFNpZ25pbmcgLSBzdHMuYWxsYW5ncmF5LmNvLnphMB4XDTE2MDkwNzA5MDQyM1oXDTE3MDkwNzA5MDQyM1owLTErMCkGA1UEAxMiQURGUyBTaWduaW5nIC0gc3RzLmFsbGFuZ3JheS5jby56YTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANdq9BEuBRPsTdpngeFyXbfH5lBg5WyENQW0qz2FtDw3AvZhiPdFyvTPZIeZDc4vhg+gPuG8pCxhFa6hPqNIwnLSVuyhUi4/CtZrLghF2wVVcyriijvirzdVp2m56nO31NB5HXbSerTmey1gJsgumr+MiaM2CEI9z5ctwAp66jqM9jVv7kzqIwB33irSck+X97jUa9XVa0/0QPBdrSVUR0i4rmfZ9orRdTKC3IA13bD9duk2Kc9V7t8t/woo80Kbbb3ZseYk5N8AI+7RRw9+oSAm8zZQzBYkNkAMeI1mto1faXsm9Aea4HXbyCbvVOx/JGj5Ki7YK/BtzWAyCgRu0TkCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAd9rdJ1V9te8njMHiEuvr1DLVUBt2YdpZ8qGFC2rWDKeEW8iARrMfbtrlQovvE1radxoZ2gWR1AaaoEqzmLvF9fEAZ7xjR2P2UlT+ZgntfMn/c+3j7gWnfGNHIjosaYiyF72q4k6bgOx1TV8X08kD2AMBH27utXeeUQTZTd0bUWaWpr76NrDB95k4P6d0t5bkYsguiQjV+2t5/dSvrbTPVbXQmWGyC53IS2OI37AI2bIaeCCDkRHDoxu+L/DtgH8N60k2CLfa+pf0/cxQCR39p4Z+tquVKfYgJIsdZLD6bbrqK9VdpSR2vyUcDLMTGnO0tuDuzBd/xdhJ0GKbnBv3+g== The same code runs with no problem on Windows, building a certificate from the same string. **Edit:** *Note that while I initially encountered this problem running a docker image, subsequesnt testing has show that it also occurs using Ubuntu 14.04 + .NET Core 1.1* +16030 area-System.IO First pass through SerialStream test migration Currently all passing with single real serial port and data-loopback. Not ready for merging - I just need to see what the CI makes of them. +16033 area-System.IO Some SerialPort tests very sensitive to flow control details This is so that I can ActiveIssue a bunch of failing tests as precisely as possible, and also so that I can get my thoughts straight on this. **tl;dr** A significant number of the legacy SerialPort tests rely on specific traditional hardware behaviour which is not available on the CI or in the future. We need to work around this. **Full Details** A lot of the serial port tests, including some of the ones which run with a single, open, serial port (e.g. on the CI) rely on a particular behaviour of the serial.sys driver / 16550 UART. These tests arrange that hardware flow control is enabled on the port and set to block transmission, and they then write data to the port. Because the flow control is adverse, (and because serial.sys does not rebuffer tx data within itself, nor offer it to the UART when the flow-control prohibits), this causes the data to queue-up on the user-mode side of the serial.sys (i.e. in SerialPort). This allows asynchronous and queue-reporting SerialPort behaviour to be tested - there is a pending write which will not complete as long as the flow control conditions remain the same. In tests where a null modem connection is available, the test can adjust the flow control state using the other port - so it can, for example, delay the start of a transmission but then allow it to complete normally. My feeling is that these tests are, in principle, useful - the conditions that they test are always possible in real life, it's just that they're often fleeting and occur in the middle of large data transfers - being able to create them in 'slow motion' is valuable. **The problem** The difficulty in 2017 is that that genuine serial.sys/16550 setups are dwindling in number - we mostly have several other things: *USB Serial Ports* - These tend to have buffering in the driver, in the USB stack and in the silicon at the far end of the USB cable. Hardware flow control *has* to be carried-out within the silicon, and somehow reflected back up to the user-mode level after everything's backed-up, or by using some hybrid of both blocking up the data *and* sending out of band flow-control status back to the driver to tell it to put the brakes on. My tests with FTDI USB-Serial adaptors didn't give me terribly clear results, but it is clear that they don't instantly block writes when the flow control is adverse. USB-Serial solutions don't have the best reputation for reliability either, although 100% fidelity emulation is impossible anyway. *Virtual Machines* - I'm not clear what the CI hardware/software is, but it appears that we have some kind of virtualised serial port, which probably has some buffering within it. Either way, tests that rely on this blocking behaviour tend to fail on the CI. *Serial cards with fancier UARTS*- If you go out and buy a PCI serial port card in 2017, there's a good chance that it will have some kind of enhanced UART on it, which may well have hardware assistance for flow control - this means that the driver will transfer a certain amount of data to the UART hardware even when the flow control is adverse. **Possible solutions** 1. Probe for this behaviour and then use additional ```ConditionalFact``` qualifiers to disable tests which rely on it. 2. Bigger writes, more relaxed queue detection. A device which is working properly should *eventually* back-up writes if the flow control is adverse. The test will no longer be able to verify that *all* the written data is queued-up (some of it will have gone out to the hardware), but other aspects of the test could complete. It's possible that we might be able to probe at startup for the kind of behaviour we could expect. All thoughts and comments welcome. #15752, @JeremyKuhne (sorry if you've read this far) +16034 area-System.Collections Added a TryGetValue method to HashSet and SortedSet Closes #15691 Added a `TryGetValue` method to `HashSet` and `SortedSet`. Also fixed a bug in a `SortedSet` test as subsequent calls to `CreateT` with the same `seed` should return an equivalent value. The current implementation completely ignored the `seed`. +16035 area-System.Linq Have S.L.Expressions compiler test and add constants in a single pass. Currently this is a two-step operation of `CanEmitConstant` followed by `EmitConstant`. Instead have a `TryEmitConstant` that reports on success, so the same checks aren't repeated. +16036 area-System.Net Do we need #if BIGENDIAN? "These came over from desktop and we apparently never define it. ``` Searching 11694 files for ""#if.*BIGENDIAN"" (regex) C:\git\corefx\src\Common\src\System\Net\ByteOrder.cs: 11 public static ushort HostToNetwork(this ushort host) 12 { 13: #if BIGENDIAN 14 return host; 15 #else .. 20 public static uint HostToNetwork(this uint host) 21 { 22: #if BIGENDIAN 23 return host; 24 #else .. 50 public static uint NetworkBytesToNetworkUInt32(this byte[] bytes, int index) 51 { 52: #if BIGENDIAN 53 return unchecked((uint)(bytes[index + 3] | (bytes[index + 2] << 8) | (bytes[index + 1] << 16) | (bytes[index] << 24))); 54 #else .. 59 public static void NetworkToNetworkBytes(this uint host, byte[] bytes, int index) 60 { 61: #if BIGENDIAN 62 bytes[index] = (byte)(host >> 24); 63 bytes[index + 1] = (byte)(host >> 16); C:\git\corefx\src\Common\src\System\Net\SocketAddressPal.Windows.cs: 23 public static unsafe void SetAddressFamily(byte[] buffer, AddressFamily family) 24 { 25: #if BIGENDIAN 26 buffer[0] = unchecked((byte)((int)family >> 8)); 27 buffer[1] = unchecked((byte)((int)family)); C:\git\corefx\src\System.Net.NameResolution\src\System\Net\NameResolutionPal.Windows.cs: 80 // 81 IPAddressToAdd = Marshal.ReadInt32(nativePointer); 82: #if BIGENDIAN 83 // IP addresses from native code are always a byte array 84 // converted to int. We need to convert the address into .. 175 int addressAsInt = unchecked((int)address.GetAddress()); 176 177: #if BIGENDIAN 178 // TODO #2891: above code needs testing for BIGENDIAN. 179 C:\git\corefx\src\System.Net.Primitives\src\System\Net\IPAddress.cs: 357 public static long HostToNetworkOrder(long host) 358 { 359: #if BIGENDIAN 360 return host; 361 #else ... 367 public static int HostToNetworkOrder(int host) 368 { 369: #if BIGENDIAN 370 return host; 371 #else ... 377 public static short HostToNetworkOrder(short host) 378 { 379: #if BIGENDIAN 380 return host; 381 #else C:\git\corefx\src\System.Net.Sockets\src\System\Net\Sockets\SocketPal.Windows.cs: 520 } 521 522: #if BIGENDIAN 523 ipmr.MulticastAddress = (int) (((uint) ipmr.MulticastAddress << 24) | 524 (((uint) ipmr.MulticastAddress & 0x0000FF00) << 8) | ... 625 } 626 627: #if BIGENDIAN 628 ipmr.MulticastAddress = (int) (((uint) ipmr.MulticastAddress << 24) | 629 (((uint) ipmr.MulticastAddress & 0x0000FF00) << 8) | 12 matches across 5 files ```" +16038 area-Infrastructure Alpine has no CI builds We don't have any Alpine images or CI jobs being run right now, so things are prone to breaking without extra care. We do have official builds using docker. +16040 area-System.Net Improve Uri.UnescapeDataString codepath -> UriHelper.UnescapeString After doing an investigation on some performance traces collected from some mvc aspnet applications scenarios we found that a considerable amount of `char[]` objects were allocated on the GC Heap which are coming from `Uri.UnescapeDataString` codepath that is calling `UriHelper.UnescapeString` ([source code](https://github.com/dotnet/corefx/blob/master/src/System.Private.Uri/src/System/UriExt.cs#L521)) which receives a `char[]` as the destination of the unescaped string and then creating a string from that `char[]`. I know it would be a big change but we could probably consider using the sourceString that is already allocated or using a `PooledStringBuilder` which uses an `ArrayPool` for the buffer cache as explained here: * https://github.com/dotnet/corefx/pull/13875#issuecomment-262293493 /cc @danmosemsft @jkotas @stephentoub +16041 area-Microsoft.CSharp Review UNSUPPORTEDAPI usage in Microsoft.CSharp Most likely now it can all be removed. cc: @danmosemsft +16042 area-Meta Remove versioned defines We should migrate to versionless platform defines. @joperezr @weshaggard can we do this now if not what has to come first? I see you already renamed all the C# file suffixes to be versionless. - [x] #if netcoreapp11 --> #if netcoreapp - [ ] #if netstandard17, #if netstandard10 --> #if netstandard - [x] #if netcore50 --> #if uap - [x] #if netcore50aot --> #if uapaot incidentally #if NET46 -> don't change - [x] # if NET_4_5 -> dead Perhaps you already have something tracking this kind of thing. +16043 area-Infrastructure "Android cross-build fails if ""rt"" library is not removed from CMake configuration" @qmfrederik This might be an issue with the way I've run the cross-build commands, but I figured I'd file this issue anyways. When I run the Android cross build after creating the Android rootfs, I get an error related to the `HAVE_MKSTEMP` check failing, when it should be passing (according to the PR's I followed, at least). It fails because the linker is trying to pass `-lrt`, which doesn't seem to be working on Android. If I remove this line then everything works, and the build succeeds: https://github.com/dotnet/corefx/blob/master/src/Native/Unix/configure.cmake#L295. This seems to line up with what I am reading about online regarding Android builds. +16044 area-Infrastructure Single project build failing for platform-specific projects Running an msbuild on a single source csproj for a project that does not have a platform-agnostic implementation is currently failing. Example: ``` PS D:\git\corefx [Master]> msbuild src/System.Console/src/System.Console.csproj ... System\Console.cs(26,24): error CS0246: The type or namespace name 'ConsolePal' could not be found (are you missing a using directive or an assembly reference?) [D:\git\corefx\src\system.console \src\System.Console.csproj] ``` Also fails for: System.IO.Compression, System.IO.FileSystem. Does not fail for: System.Runtime, System.Collections It looks like this is because the msbuild is trying to build the project for netstandard AnyOS even though it isn't supported or listed in the Configurations.props file. These are all projects that have platform-specific configs listed e.g. ``` netcoreapp-Unix; netcoreapp-Windows_NT; uap-Windows_NT; ``` cc: @mellinoe @weshaggard +16045 area-System.IO Remove NetFX Compression build The cost of shipping OOB for Desktop is very high and we have burned ourselves (System.Net.Http). Let's make sure we do not accidentally run into the same problems here as well. resolves https://github.com/dotnet/corefx/issues/15693 +16046 area-System.Net Test failure System.Net.Tests.HttpWebRequestTest/GetResponseAsync_GetResponseStream_ContainsHost(remoteServer: https://corefx-net.cloudapp.net/Echo.ashx) release/1.1.0 branch: Same 2 test failures in 2 runs, each time on different platform * [20170208.02 - Redhat.72.amd64-Release](https://mc.dot.net/#/product/netcore/110/source/official~2Fcorefx~2Frelease~2F1.1.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170208.02/workItem/System.Net.Requests.Tests/analysis/xunit/System.Net.Tests.HttpWebRequestTest~2FGetResponseAsync_GetResponseStream_ContainsHost(remoteServer:%20https:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx)) * [20170209.02 - Centos.71.amd64.Debug](https://mc.dot.net/#/product/netcore/110/source/official~2Fcorefx~2Frelease~2F1.1.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170209.02/workItem/System.Net.Requests.Tests/analysis/xunit/System.Net.Tests.HttpWebRequestTest~2FGetResponseAsync_GetResponseStream_ContainsHost(remoteServer:%20https:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx)) ### Message: System.Net.WebException : An error occurred while sending the request. Problem with the SSL CA cert (path? access rights?)\n ---- System.Net.Http.HttpRequestException : An error occurred while sending the request.\n -------- System.Net.Http.CurlException : Problem with the SSL CA cert (path? access rights?) ### Stack trace: ``` at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.HttpWebRequestTest.d__41.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.HttpWebRequest.d__63.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) ``` +16047 area-System.Security Security test failures - Unable to load DLL 'System.Security.Cryptography.Native' 5 tests failed on all Linux & Mac OSX platforms (release & debug) in two 1.1 servicing builds: * [20170208.02](https://mc.dot.net/#/product/netcore/110/source/official~2Fcorefx~2Frelease~2F1.1.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170208.02/workItem/System.Security.Cryptography.Algorithms.Tests) * [20170209.02](https://mc.dot.net/#/product/netcore/110/source/official~2Fcorefx~2Frelease~2F1.1.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170209.02/workItem/System.Security.Cryptography.Algorithms.Tests) Failed tests: * System.Security.Cryptography.EcDsa.Tests.ECDsaImportExportTests * TestExplicitCurves * TestExplicitCurvesSignVerify * TestNamedCurves * TestNamedCurvesNegative * System.Security.Cryptography.EcDsa.Tests.ECDsaTests * TestChangeFromNamedCurveToKeySize ### Message: System.DllNotFoundException : Unable to load DLL 'System.Security.Cryptography.Native': The specified module could not be found.\n (Exception from HRESULT: 0x8007007E) ### Stack trace (example): ``` at System.Security.Cryptography.EcDsa.Tests.Interop.Crypto.EcKeyCreateByOid(String oid) at System.Security.Cryptography.EcDsa.Tests.ECDsaProvider.IsValueOrFriendlyNameValid(String friendlyNameOrValue) at System.Security.Cryptography.EcDsa.Tests.ECDsaProvider.IsCurveValid(Oid oid) at System.Security.Cryptography.EcDsa.Tests.ECDsaFactory.IsCurveValid(Oid oid) at System.Security.Cryptography.EcDsa.Tests.CurveDef.get_IsCurveValidOnPlatform() at System.Security.Cryptography.EcDsa.Tests.ECDsaTestsBase.<>c.b__6_0(CurveDef curveDef) at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() at System.Security.Cryptography.EcDsa.Tests.ECDsaTestsBase.d__6.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() ``` +16048 area-Meta Marking code as unchecked (pt 6) Marking code that may intentionally lead to over or underflows with unchecked in preparation of turning on CheckForOverflowUnderflow for all projects (issue #3140) +16050 area-System.IO SerialPort test unicode source did not come in cleanly from netfx One for @JeremyKuhne again I'm afraid. There is a big unicode string in `SerialPortRegressions.VerifyReadExisting` which has come in from legacy as a load of question marks. If you wouldn't mind attaching the orginal utf-8 or however it was originally, then I'll sort out making it all into \u's or a char array or something. This is the final failing test in the loopback config :-) +16051 area-Infrastructure Update CoreClr, ProjectNTfs, Standard to beta-25010-03, beta-25010-00, beta-25010-01, respectively +16053 area-Infrastructure [DO NOT MERGE][TEST-ONLY] Enable dumpling and cause some tests to fail on purpose I'm submitting this again to see how it works with the buildtools changes I have made. From the last attempt, I think that a couple of runs will still fail because the machine images are missing one of the python libraries we use. +16054 area-System.IO Fix GZipStream.BeginRead to call ReadAsync It was calling WriteAsync. cc: @ianhays (we probably need some tests here ;) +16055 area-System.IO Tests failing in new SerialStream tests Placeholder for ActiveIssue - there's an intermittent CI test failure caused by something in the new SerialStream tests +16056 area-System.IO Suppress tests in 'Close' module Possible suppression for recent test failures #16055, #16051 +16057 area-System.Security Merge corefx:master to corefx:dev/apple_crypto This merges as-of commit 5091856f5ec900505026f8296e8b2fd5f958796b +16058 area-System.Xml Fix OuterLoop test System.Xml.Tests.CReaderTestModule.TCMaxSettings Fixes https://github.com/dotnet/corefx/issues/16024 This outerloop test needs to be updated as a result of the change made in https://github.com/dotnet/corefx/pull/15973 Prior to that change, `XmlReaderSettings` used to read full framework registry keys to decide the default value of entity resolving limit. Default used to be 0 (=unlimited), but is 10 million characters now. [The user can still override it with any value.] cc: @jkotas @danmosemsft +16060 area-System.Net 'Fireball' failure in Helix for 2 Socket tests on Redhat.72 2x 'fireball' failure for RedHat 7.2 for these two tests: System.Net.Sockets.Tests.SocketOptionNameTest: * ReuseUnicastPort_CreateSocketGetOption_SocketsReuseUnicastPortSupport_OptionIsZero * ReuseUnicastPort_CreateSocketSetOptionToZeroAndGetOption_SocketsReuseUnicastPortSupport_OptionIsZero Logs: * [20170209.02](https://mc.dot.net/#/product/netcore/110/source/official~2Fcorefx~2Frelease~2F1.1.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170209.02/workItem/System.Net.Sockets.Tests/wilogs) * [20170208.02](https://mc.dot.net/#/product/netcore/110/source/official~2Fcorefx~2Frelease~2F1.1.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170208.02/workItem/System.Net.Sockets.Tests/wilogs) cc: @MattGal +16061 area-System.Collections Cleanup some code in SortedSet - Rename and make `AreComparersEqual` an instance method - Check for reference equality before calling into `Equals()` - Refactor large constructor body into smaller methods - Add XML docs - Add braces - Remove `SortedSet.` name qualification when it isn't necessary /cc @ianhays @safern +16066 area-System.IO Add post-close delay to async SerialPort tests Possible fix for #16055 - it's really a work around for long-established problems in SerialPort rather than a test fix, but it should do for now. +16068 area-System.Linq Need fuller testing of IL/Intructions generated by S.L.Expressions Something @VSadov mentioned in a few PRs is that changes to IL generation are rather opaque and not reflected in tests. The same thing would be true of the instruction list produced by the interpreter. @bartdesmet has already done some work in this regard, but there's a lot more that could be covered, so this issue is to track that. One problem with the few tests of IL generation that already exist is that the expected output includes offset numbers (`IL_0000`,… `IL_001a`,… etc.) which means changes to output requires more manual changing than ideal. E.g. if we had great coverage of constant compilation then #15797 would have needed to not just have the redundant instructions it removed removed from the expected output, but every subsequent instruction to be renumbered. If we'd a lot of tests this would be a lot of manual fixing-up and a lot of irrelevant churn in commits, and potentially a lot of unnecessary conflicts between PRs. A starting point therefore would be to have the IL disassembly in the existing tests closer to hand-written IL where labels are only given when used as targets, so that changes can be more localised. +16070 area-System.Linq Remove offset labels from S.L.Expression test IL dumps Instead of labelling every IL instruction with a label based on its offset, label only those that are targets of breaks, leaves, etc. so that changes to expected IL to match changes in implementation can be more localised only to those directly affected. Clean up some unused code, etc. in the IL printer. Similarly don't include numbers when dumping instruction lists from the interpreter. Contributes to #16068 @VSadov this is a first step toward adding more testing of the produced IL. +16074 area-System.Threading Unexpected exception thrown by WaitHandle.SignalAndWait ``` Expected: typeof(System.Exception) Actual: typeof(System.ApplicationException): Object synchronization method was called from an unsynchronized block of code. ``` +16076 area-System.Console On Mac, Console.ReadLine result includes arrow key presses as '\0's "I found this while porting a toy REPL to .NET Core on Mac. On the Windows console, I can use the arrow keys to edit input on its way to Console.ReadLine() or to pull up previous input from my history. When my muscle memory tried the same thing on Mac, the arrow keys appeared to do nothing, but then parsing would mysteriously fail. I went to the debugger and found '\0's in the parser input! ## Repro steps * Run this on .NET Core 1.1 on Mac OS X in standard Terminal app: ``` C# using System; class Program { static void Main() { string s = Console.ReadLine(); Console.WriteLine(s); Console.WriteLine(s.Contains(""\0"")); } } ``` * Type in `HelloWorld`. ## Expected result ``` Hello World False ``` ## Actual result ``` Hello World True ``` ## Environment details ``` .NET Command Line Tools (1.0.0-rc4-004771) Product Information: Version: 1.0.0-rc4-004771 Commit SHA-1 hash: 4228198f0e Runtime Environment: OS Name: Mac OS X OS Version: 10.12 OS Platform: Darwin RID: osx.10.12-x64 Base Path: /usr/local/share/dotnet/sdk/1.0.0-rc4-004771 ``` @stephentoub " +16079 area-Meta Marking code as unchecked (pt 7) Marking code that may intentionally lead to over or underflows with unchecked in preparation of turning on CheckForOverflowUnderflow for all projects (issue #3140) +16081 area-Meta *.builds files for tests The tests still have both Configurations.props files and *.builds files. @weshaggard Do we need both? Should we delete the *.builds files? +16082 area-Meta Fold or rename *.netstandard.cs files They do not need to be separate files and the .netstandard suffix on them is just confusing because of they do not have anything netstandard-specific in them. They contain tests for APIs added on top of netstandard1.6 in the early days of netstandard2.0 project. See https://github.com/dotnet/corefx/pull/16072 +16084 area-System.Runtime Please expose all Array static method as extension method There are a bunch of static function in `Array` class that should just be extension method Like `Find` and `IndexOf` Using extension method is more natural and also familiar with js +16085 area-System.Linq Correctly handle dynamic lifted enum arithmetic Microsoft.CSharp special-cases enum binary operations, but not when lifted. In most cases the nett result is an expression that will have the same outcome as if the expression had been special-cased to similarly match the C# rules exactly. E.g. the C# rules for adding an `short`-backed `enum` `x` and a `short` `y` would convert both to `int`, add them and then cast the result to the `short`-backed enum. The expression produced casts both to `short`, adds them and casts to the `short`-backed enum. Since in S.L.Expressions the result of `short` addition is a `short` (unlike in C# where they are first promoted to `int`) the final cast means the result is the same either way. Likewise bitwise and comparison operations all have the correct nett result. In the case of addition and subtraction with `byte`- or `sbyte`-based enums however this means the expression produced tries to add `byte` or `sbyte` values, which is not valid in S.L.Expressions, and an `InvalidOperationException` results. Catch the case of lifted enum arithmetic, producing an expression with the correct intermediary casts. Fixes #16028. +16086 area-System.Linq MemberInitExpression.Reduce returns block with undeclared variable Calling `Reduce` method on `MemberInitExpression` result in invalid expression tree (at least can't be compiled), because it uses a temporary variable without declaring it: Calling `Reduce` on tree ``` .New DotVVM.Framework.Tests.Binding.TestViewModel(){ EnumProperty = .Constant(B) } ``` results in: ``` .Block() { $var1 = .New DotVVM.Framework.Tests.Binding.TestViewModel(); $var1.EnumProperty = .Constant(B); $var1 } ``` which can't be compiled, because `$var1` is not declared. Or do I miss something? IMHO it can be fixed by adding a `, new [] { objVar }` to https://github.com/dotnet/corefx/blob/master/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberInitExpression.cs#L82 and https://github.com/dotnet/corefx/blob/master/src/System.Linq.Expressions/src/System/Linq/Expressions/MemberInitExpression.cs#L97 +16091 area-System.Linq Fix MemberInitExpression.Reduce and ListInitExpression.Reduce Include the temporary variable used in the `BlockExpression` produced. Fixes #16086 Also remove created `TrueReadOnlyCollection` as optimisation in #3686 may bypass it being useful, and otherwise one will be created in the factory called. +16093 area-System.Memory Span: Rename IsReferenceFree to IsReferenceOrContainsReferences - Rename IsReferenceFree to IsReferenceOrContainsReferences for consistency with #14047 - Remove IsReferenceFreeCore micro-optimization that is actually hurting. This code runs just once and it is cheaper to do a check via reflection than to spend time in the JIT to optimize the extra code. - Re-enabled disables test +16094 area-System.IO System.IO.Directory.GetFiles() API usage with recursive symlinks on Unix "When the recursive symlink is encountered by `GetFiles(path, pattern, SearchOption.AllDirectories)` methos, .NET Core throws `PathTooLongException` (whereas Mono, in this case, throws `IndexOutOfRangeException`). * Is it recommended for the consumers to handle the recursion cases in our code by keeping track of the directory graph node visits? * To achieve this, would it be possible to provide an overload which accepts a predicate to determine when to skip / bail out of entering certain directories or symlinks during the traversal? Something like: ```diff public static string[] GetFiles(string path, string searchPattern, SearchOption searchOption); + public static string[] GetFiles(string path, string searchPattern, SearchOption searchOption, + Func predicate); ``` I was looking for the best approach to handle the exceptions during the FS scan and found a similar issue with `GetDirectories` API in CLI repo: dotnet/cli#5578 which pointed me to the man page about `/proc/[pid]/root` symlink being recursive by design (added that info in code comment below). ### Code: ```c# public class Program { public static void Main(string[] args) { var files = System.IO.Directory.GetFiles(args[0], ""*.*"", System.IO.SearchOption.AllDirectories); System.Console.WriteLine($""Files count: {files.Length}""); } } ``` ### Steps to repro: ```sh # Setup and invocation: # Platform: # Ubuntu Trusty 14.04 (Bash on Unbuntu on Windows 10; tested dist info with `cat /etc/*release`) sudo sh -c 'echo ""deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main"" > /etc/apt/sources.list.d/dotnetdev.list' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893 sudo apt-get update sudo apt-get install dotnet-dev-1.0.0-rc4-004771 mkdir ~/test && cd $_ dotnet new console cat < Program.cs public class Program { public static void Main(string[] args) { var files = System.IO.Directory.GetFiles(args[0], ""*.*"", System.IO.SearchOption.AllDirectories); System.Console.WriteLine($""Files count: {files.Length}""); } } EOT sudo dotnet restore && sudo dotnet run -- /proc/self # Note that /proc/self encounters a symlink at /proc/self/root and proc # man page (https://linux.die.net/man/5/proc) says: # # /proc/[pid]/root # UNIX and Linux support the idea of a per-process root of the file system, set by the chroot(2) # system call. This file is a symbolic link that points to the process's root directory, and behaves # as exe, fd/*, etc. do. # In a multithreaded process, the contents of this symbolic link are not available if the main # thread has already terminated (typically by calling pthread_exit(3)). ``` ##### Exception: ```sh Unhandled Exception: System.IO.PathTooLongException: The specified file name or path is too long, or a component of the specified path is too long. at System.IO.UnixFileSystem.FileSystemEnumerable`1.OpenDirectory(String fullPath) at System.IO.UnixFileSystem.FileSystemEnumerable`1.d__11.MoveNext() at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source, Int32& length) at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption) at System.IO.Directory.GetFiles(String path, String searchPattern, SearchOption searchOption) at Program.Main(String[] args) ``` " +16097 area-Infrastructure Unable to build.cmd while offline "I did a full build.cmd successfully and then disconnected. When I tried to build.cmd again, even with using -RestoreDuringBuild=false, I got errors that prevented the build from succeeding: ``` EXEC : error : Unable to load the service index for source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json. [C:\Users\stoub\Source\repos\corefx\external\runtime\runtime.depproj] EXEC : error : An error occurred while sending the request. [C:\Users\stoub\Source\repos\corefx\external\runtime\runtime.depproj] EXEC : error : The server name or address could not be resolved [C:\Users\stoub\Source\repos\corefx\external\runtime\runtime.depproj] C:\Users\stoub\Source\repos\corefx\Tools\packageresolve.targets(35,5): error MSB3073: The command """"C:\Users\stoub\Source\repos\corefx\Tools/dotnetcli/dotnet.exe"" restore --no-cache --packages ""C:\Users\stoub\Source\repos\corefx\packages"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://api.nuget.org/v3/index.json ""C:\Users\stoub\Source\repos\corefx\bin/obj/Windows_NT .AnyCPU.Debug/runtime/netcoreapp/Windows_NT-x64/project.json"""" exited with code 1. [C:\Users\stoub\Source\repos\corefx\external\runtime\runtime.depproj] ``` " +16098 area-System.Net "Test ""System.Net.Http.Functional.Tests.DiagnosticsTest.SendAsync_ExpectedDiagnosticCancelledLogging"" failed with ""Xunit.Sdk.EqualException""" Failed test: System.Net.Http.Functional.Tests.DiagnosticsTest.SendAsync_ExpectedDiagnosticCancelledLogging Configuration: OuterLoop_Centos7.1_debug (build#94) Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_centos7.1_debug/94/consoleText Message: ~~~ System.Net.Http.Functional.Tests.DiagnosticsTest.SendAsync_ExpectedDiagnosticCancelledLogging [FAIL] Assert.Equal() Failure Expected: 42 Actual: 134 ~~~ Stack Trace: ~~~ /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_debug/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs(167,0): at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_debug/src/System.Net.Http/tests/FunctionalTests/DiagnosticsTests.cs(219,0): at System.Net.Http.Functional.Tests.DiagnosticsTest.SendAsync_ExpectedDiagnosticCancelledLogging() ~~~ +16099 area-System.IO "OuterLoop_Win7_debug: Test under ""Legacy.SerialStream"" failed with ""Xunit.Sdk.EqualException""" Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win7_debug/95/consoleText Configuration: OuterLoop_Windows7_debug (build#95) Message: ~~~ Legacy.SerialStream.WriteByte_Generic.SuccessiveReadTimeout [FAIL] ERROR!!!: The write method timedout in 0 expected 1054 percentage difference: 1 Expected: True Actual: False ~~~ Stack Trace: ~~~ D:\j\workspace\outerloop_win---b280fd23\src\System.IO.Ports\tests\Legacy\Support\PortsTest.cs(24,0): at System.IO.PortsTests.PortsTest.Fail(String format, Object[] args) D:\j\workspace\outerloop_win---b280fd23\src\System.IO.Ports\tests\Legacy\SerialStream\WriteByte_Generic.cs(452,0): at Legacy.SerialStream.WriteByte_Generic.VerifyTimeout(SerialPort com) D:\j\workspace\outerloop_win---b280fd23\src\System.IO.Ports\tests\Legacy\SerialStream\WriteByte_Generic.cs(117,0): at Legacy.SerialStream.WriteByte_Generic.SuccessiveReadTimeout() ~~~ Failed tests: WriteByte_Generic/SuccessiveReadTimeout WriteByte_Generic/BytesToWriteSuccessive WriteTimeout_Property/WriteTimeout_750_WriteByte WriteTimeout_Property/WriteTimeout_750_Write_byte_int_int Write_byte_int_int_Generic/BytesToWriteSuccessive Write_byte_int_int_Generic/SuccessiveWriteTimeout +16100 area-System.IO "OuterLoop_Win7_debug: tests under ""Legacy.SerialStream.WriteTimeout_Property"" failed with ""Xunit.Sdk.ThrowsException""" Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win7_debug/95/consoleText Configuration: OuterLoop_Windows7_debug (build#95) Message: ~~~ Assert.Throws() Failure Expected: typeof(System.TimeoutException) Actual: (No exception was thrown) ~~~ Stack Trace: ~~~ D:\j\workspace\outerloop_win---b280fd23\src\System.IO.Ports\tests\Legacy\SerialStream\WriteTimeout.cs(265,0): at Legacy.SerialStream.WriteTimeout_Property.SuccessiveWriteTimeoutNoData_WriteByte() ~~~ Failed tests: WriteTimeout_Property/SuccessiveWriteTimeoutNoData_WriteByte WriteTimeout_Property/SuccessiveWriteTimeoutNoData_Write_byte_int_int +16101 area-System.ComponentModel Port more of System.ComponentModel.DataAnnotations types in System.ComponentModel.Annotations https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.associatedmetadatatypetypedescriptionprovider(v=vs.110).aspx +16102 area-System.IO SerialPort: Disable hardware use where no loopback/nullmodem available This PR stops the SerialPort tests using hardware if there isn't either a loop-back plug or a null-modem cable fitted. This will reduce the number of tests that run on the CI until we can work out if it's going to be feasible to stabilise them properly. Addresses new issues #16100, #16099 and the long-running #15961 @JeremyKuhne, @Jiayili1 +16103 area-System.Linq Remove double negatives from S.L.Expressions produced IL. Replace negation followed by `brfalse` or `brtrue` with `brtrue` or `brfalse` respectively. +16104 area-System.IO SerialPort test improvements This is a substantial set of changes which need to bake against the CI a bit before we consider merging. * More misc cleanup of migrated tests * Fixes for test bugs introduced by me during the migration * Addition of hardware buffer probing and associated buffer size selection (addresses #16033) * Experimental removal of some suppression which should be fixed by the buffer probing * Removal of tests which solely test hardware capabilities and don't enhance coverage of SerialPort The tests I have removed have the following characteristics: 1. They test for the presence of archaic serial port features (5/6 bit data, 1.5 stop bits) which are no longer in general use and are not supported by some of the popular modern USB-Serial devices - so we get test failures there even though there is no fault in SerialPort. 2. They don't improve coverage of SerialPort at all - they merely represent different numbers for it to pass down through to the underlying stack. 3. We have other tests which verify the correct behaviour of SerialPort when the underlying stack rejects values for these parameters that it doesn't like. 4. One of them assumed that a baud rate of 12345 can't be selected, just it doesn't work on the original 16550 hardware (which is a clone of the 8250 in a PC/XT) - there is nothing fundamental which says that a port can't offer that rate, and indeed the USB-Serial solutions often can. I don't consider these tests to have any value, given that we'll have to be able to skip them for people to be able to run the tests against modern hardware anyway *and they offer no additional coverage*. Particularly as we move to a more cross-platform approach, SerialPort's test suite is going to have to be more broadminded about what specific features of serial ports might be available - as it stands, the test suite is second-guessing what features the stack offers, based on a very narrow set of assumptions. With this PR, we now have a complete null-modem test pass using conventional hardware (16550 clone on motherboard as first port, 16c950 on PCI card as second port) - this is a major milestone. We also have much better pass rate on USB-Serial hardware than we did, though it's not 100% yet. **System.IO.Ports.Tests Total: 995, Errors: 0, Failed: 0, Skipped: 0, Time: 1145.502s** +16107 area-Meta Microsoft.NETCore.UniversalWindowsPlatform 5.3.0 makes my appx crashes when deploy from .ps1 "Hi, I have an UWP application which crashes when I deploy it manually from PowerShell **Add-AppDevPackage.ps1** 's script but the same app works fine when I deploy from my **VS2017 latest RC.** I can't attach WinDbg because the app is crashing about 4-6 seconds after the launch. After long hours to restart from earlier working branch, I upgrated each stable Nuget separatly to finally found the one causing the issue : ""**Microsoft.NETCore.UniversalWindowsPlatform**"": a downgrade from ""**5.3.0**"", to ""**5.2.2**"", everything is working fine again. The event viewer is giving this error when it crashes: > Activation of app xxxxxxxxxxxxxxxxx!App failed with error: The remote procedure call failed. See the Microsoft-Windows-TWinUI/Operational log for additional information. then in the Microsoft-Windows-TWinUI%4Operational's log: > Activation of the app xxxxx!App for the Windows.Launch contract failed with error: The remote procedure call failed.. Hope it's helping Txs -Vince " +16108 area-Infrastructure "Clean build produces several MSB3245 ""netstandard"" warnings" "When I do a clean build, I get several warnings like the following: ``` C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3245: Could not resolve this reference. Could not locate the assembly ""netstandard"". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors. [C:\Users\stoub\Source\repos\corefx\src\Tools\CoreFx.Tools\CoreFx.Tools.csproj] ``` cc: @weshaggard " +16109 area-System.Net DiagnosticsTest.SendAsync_ExpectedDiagnosticCancelledLogging Assert failing area-System.Net.Http.Functional.Tests Test appears to be added with https://github.com/dotnet/corefx/pull/15971 and is affecting Linux tests cc@lmolkova cc@stephentoub Assert.Equal() Failure 18:57:42 Expected: 42 18:57:42 Actual: 134 18:57:42 Stack Trace: 18:57:42 /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_opensuse42.1_debug/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs(167,0): at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() 18:57:42 /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_opensuse42.1_debug/src/System.Net.Http/tests/FunctionalTests/DiagnosticsTests.cs(219,0): at System.Net.Http.Functional.Tests.DiagnosticsTest.SendAsync_ExpectedDiagnosticCancelledLogging() 18:57:42 Finished: System.Net.Http.Functional.Tests +16110 area-Infrastructure Modified Linux build definitions to make use of init-docker.sh The use of init-docker will hopefully address some of the flaky builds caused by failing to pull Docker images intermittently. init-docker will retry pulling docker images upon failure. +16111 area-System.Security Add support for Certificate Signing Requests I've had a few discussions with customers who are either spawning out to OpenSSL, or looking at bouncy castle. Having support for creating an CSR (and better yet, also signing it, enabling self signed certs, like Powershell has) would go a long way to helping them. +16112 area-Infrastructure Remove arm64 support for UAP package cc: @ericstj @weshaggard Removing arm64 from the runtimes.json since UAP doesn't support it. +16114 area-System.Net Skip failing test to unblock builds. Skips test in issue #16098 +16115 area-Infrastructure Build all fixes Various fixes to get the BuildAllConfigurations mode working. Please review commit-by-commit. /cc @joperezr @weshaggard +16116 area-System.Linq ExpandoClass summary worded incorrectly/ambiguously? There seems to be some room for interpretation in this summary: ```cs /// /// Represents a dynamically assigned class. Expando objects which share the same /// members will share the same class. Classes are dynamically assigned as the /// expando object gains members. /// ``` https://github.com/dotnet/corefx/blob/ec2a6190efa743ab600317f44d757433e44e859b/src/System.Linq.Expressions/src/System/Dynamic/ExpandoClass.cs#L9 Specifically: > Expando objects which share the same members will share the same class How does this work? I don't see any static caching of ExpandoClass going on in either _transitions or ExpandoObject's internal structures like ExpandoData. Or is what is meant something more like, they (should) result in the same type of instance e.g. the same sort of data/hashcode/etc is contained for an ExpandoObject that shares the same members. +16117 area-Meta Marking code as unchecked (pt 8) Marking code that may intentionally lead to over or underflows with unchecked in preparation of turning on CheckForOverflowUnderflow for all projects (issue #3140) +16118 area-System.Diagnostics Add Activity.RootId property This change adds `string RootId {get; private set}` property to Activity. It allows to get root part of Activity.Id that is common for all Activities involved in operation processing and may be used by logging systems to optimize queries. /cc @vancem @glennc @SergeyKanzhelev @brahmnes See #16155 for more details +16119 area-Infrastructure [On hold til 3/7] [release/1.1.0] Baseline 1.0.0 value tuple This checks in the package baseline info from the 1.0.0 release and configures ValueTuple to use that. /cc @jcouv +16120 area-System.Console Fix reading of null chars in Console.ReadLine on Unix Fixes #16076 @nguerrera, can you help verify this fixes the issue you were seeing? cc: @ianhays +16121 area-Infrastructure "Remove ""'$(TargetGroup)'=='netstandard' in configurations in test projects." "We should remove these because in the case where a project has a non-netstandard configuration in the configurations.props, that configuration will be picked and this condition will be false causing the tests to not run in the normal case. When doing this, make sure tests that are NOT conditioned to be netstandard are instead conditioned to only be non-netstandard, eg ,. `` or ` ` This will means that when we do build the netstandard configuration explicitly, we only pick up tests running against netstandard API. @joperezr to make sure I stated this correctly." +16123 area-System.Runtime DllImport with specific version Hey guys, I'm trying to run native code by using `DllImport`. You can take a look here if you want: https://github.com/tinchou/corefx/blob/master/src/System.Data.Odbc/src/Common/System/Data/Common/UnsafeNativeMethods.cs [I was specifying `odbc` as my dll name](https://github.com/tinchou/corefx/blob/master/src/System.Data.Odbc/src/Common/System/Data/Common/ExternDll.Unix.cs), which seemed to work for OSX and also for most Linux distros, but then I found it wasn't working for some that didn't symlink `libodbc.so` to `libodbc.so.2`. I thought I could change it to `odbc.2` but it didn't work, so I ended up using `odbc.so.2`. Then: 1. Do we have any document with `DllImport`'s look up conventions? I think it's important to have this if we want anyone to use this feature. 2. Is there any way I can add the version number but also remove the file extension (`.so`) so I can reuse this name on OSX? Over there we have to bind to `libodbc.2.dylib`. Thanks! +16125 area-System.Data Parsing logic for data source in connection string is to be refactored Parsing logic for data source in connection string is to be refactored for cleaner code and easier maintenance. Current parsing logic is scattered over several methods, and it is better to get them all together in one place. +16126 area-Infrastructure Package publishing is dodgy "During official builds it looks like all legs overwrite files when copying to azure storage. This creates some unreliable ""last in wins"" behavior where the last build to succeed will be the one that gets published. In 1.0 and 1.1 folks tried to workaround this by turning off some of the overlapping package builds on non-windows, but this is contrary to the vertical build goals. Those goals drive us to have a reference package produced by all verticals, but we'd really only want to ship the one from Windows since it will be signed. I think we need to look at a way to make this work without adding extra complexity to developer builds, or making the official build different from developer builds. Here's my crack at a suggestion for how this should work. 1. Builds should copy to a leg-specific path in azure. This eliminates the potential for overwriting. 2. During publishing have a precedence for package sources, as follows. a. first prefer windows vertical build legs. b. then prefer windows all non vertical build legs. c. then consider other OS legs. 3. If there is ever an ambiguous choice that should be an error: two legs produce the same package without a clear precedence based winner. Fail the build. /cc @chcosta @dagood @weshaggard " +16127 area-System.Linq Lighten some numeric conversions in S.L.Expression interpreter When casting enum → underlying type we can do a single direct unchecked cast to the type, so do so. Remove code that uses reflection to construct a nullable type when the target is nullable, as the boxing makes this irrelevant. +16128 area-System.Diagnostics DiagnosticListener performance optimization ### Motivation It is motivated as a performance optimization. The IsEnabled() with no arguments allow a inlinable quick check for performance reasons. ### Details Add DiagnoticListener.IsEnabled() without arguments as an initial loose check that returns true if there is a subscriber to DiagnosticListener (suggested in #15971). ### API proposal ```C# public bool IsEnabled() {return _subscriptions != null;}; ``` /cc @vancem @stephentoub +16129 area-System.Data Make Managed SNI the default implementation on Windows SqlClient uses different implementations of SNI for Windows and non-Windows platform. The plan is to use a unified implementation of SNI, the managed version for Windows and non-Windows platform. This issue tracks the unification of the two SNI implementations. The switch on windows will come with a AppContext switch, which will allow users to use Native SNI. +16130 area-Infrastructure Build all configurations - official build This adds two legs that build all configurations (with no testing) to the official build. This will be used for producing packages. +16131 area-System.Diagnostics DiagnosticListener performance improvements #16128 This change adds `DiagnosticListener.IsEnabled()` method as a quick check that somebody listens to this DiagnosticListener See #16128 for more details. +16132 area-Infrastructure Changing uap and uapaot apiCompat baselines to run against implementation instead of reference assemblies "cc: @weshaggard @ericstj @danmosemsft For uap and uapaot, the baselines ""lie"" sometimes about their surface area as we won't neseceraly have the implementation for some APIs, which is why with this PR we are changing to use the implementation assemblies instead when building the uap and uapaot baselines." +16133 area-System.Net Failures in .HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate "Turning our Win7 badge read. @Priya91 could you please fix or disable today to get back to green. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win7_release/lastCompletedBuild/testReport/ ``` System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""#origFragment\"", redirFragment: \""\"", expectedFragment: \""#origFragment\"", useRelativeRedirect: False) System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""\"", redirFragment: \""#redirFragment\"", expectedFragment: \""#redirFragment\"", useRelativeRedirect: False) System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""\"", redirFragment: \""#redirFragment\"", expectedFragment: \""#redirFragment\"", useRelativeRedirect: True) System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""#origFragment\"", redirFragment: \""#redirFragment\"", expectedFragment: \""#redirFragment\"", useRelativeRedirect: False) System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""#origFragment\"", redirFragment: \""#redirFragment\"", expectedFragment: \""#redirFragment\"", useRelativeRedirect: True) ``` " +16134 area-System.IO Audit all corefx Streams with Read/WriteAsync overrides Any that have overrides of these that do something real (e.g. not just throw) also need overrides of Begin/EndRead/Write. cc: @davidsh, @saurabh500, @ianhays +16137 area-System.Collections Use generic Array.Reverse in ReverseIterator Now that there's a generic overload available the API can be used without fear of boxing for user-defined structs. /cc @JonHanna, @stephentoub, @justinvp +16138 area-System.Linq Investigate using Unsafe to circumvent covariant array typechecks in ToArray During a recent PR I tried changing [this](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Concat.cs#L467) to hold references to the collections directly instead of holding the index of each collection, which I had originally done to keep the size of the builder to a minimum. It seems like the benefits extended past just memory usage, though-- changing the builder to an `ArrayBuilder>` incurs 3x more time just to store each collection in the array than all of the interface typecasts. ![arraystorecheck](https://cloud.githubusercontent.com/assets/9159214/22914846/05413522-f241-11e6-82b0-255de16ded62.PNG) For that reason maybe we should consider using `Unsafe` in [LargeArrayBuilder](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Collections/Generic/LargeArrayBuilder.cs#L154), which is used by `Enumerable.ToArray`, to circumvent the typechecking if this turns out to have a significant enough impact. With so many other virtual method calls/typecasts going on around that method, I was really surprised to see that array stores were taking up more than 18% of the time. /cc @benaadams +16140 area-System.Linq Throw on byref or pointer types in LabelTarget Contributes to #8081. +16141 area-System.Linq Throw on byref or pointer types in linq Throw expressions. Contributes to #8081. +16144 area-System.Net Update System.Net.Http exception message not to refer to unknown property +16146 area-System.Net ExecutionEngineException when using SslStream "``` Unhandled exception at 0x00007FF8901CDE20 (coreclr.dll) in dotnet.exe: 0xC0000005: Access violation reading location 0x0000000000000000. If there is a handler for this exception, the program may be safely continued. ``` See the reproduction here: https://gist.github.com/ayende/ba61b7d21065c0db8df6a905902ed1b3 Get the files, then run: * dotnet restore * dotnet run The program will crash immediately on trying to do SSL authentication. Note that if I change this line: https://gist.github.com/ayende/ba61b7d21065c0db8df6a905902ed1b3#file-project-json-L10 To ` ""version"": ""1.0.1""` it works as expected. If running this inside the debugger, I get: ``` An unhandled exception of type 'System.ExecutionEngineException' occurred in System.Private.CoreLib.ni.dll ``` And the error seems to be from here: ![image](https://cloud.githubusercontent.com/assets/116915/22938180/a728c8da-f2e3-11e6-948f-bd93403acb39.png) " +16147 area-System.Net Failure of System.Net.Tests.HttpWebRequestTest.GetResponseAsync_UseDefaultCredentials_ExpectSuccess This is causing a red badge today. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_rhel7.2_release/lastCompletedBuild/testReport/ Please fix or disable immediately to get us a green badge, thanks. ``` MESSAGE: System.Net.WebException : An error occurred while sending the request. Problem with the SSL CA cert (path? access rights?)\n---- System.Net.Http.HttpRequestException : An error occurred while sending the request.\n-------- System.Net.Http.CurlException : Problem with the SSL CA cert (path? access rights?) +++++++++++++++++++ STACK TRACE: at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_rhel7.2_release/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs:line 1246 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.HttpWebRequestTest.d__43.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_rhel7.2_release/src/System.Net.Requests/tests/HttpWebRequestTest.cs:line 365 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__59.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_rhel7.2_release/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 487 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.HttpWebRequest.d__188.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_rhel7.2_release/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs:line 1192 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_rhel7.2_release/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs:line 1227 ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_rhel7.2_release/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 637 at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_rhel7.2_release/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs:line 857 ``` @Priya91 @steveharter +16150 area-System.Linq Test and optimise TypeEqual and TypeIs behaviour for pointer types. Contributes to #8081, but since the current behaviour is to safely always return false, continue to allow pointer type operands. There is already code that examines these expressions for always-false or always-true behaviour, so have pointer types also result in the always-false path being taken. +16151 area-Infrastructure Remove Fedora 24 test execution We don't have Fedora 24 VMs currently and the mismatch makes un-runnable tests. Checked with @joperezr , TargetOS and FilterToOSGroup are likely still necessary (due to other properties deriving from them) so I've chosen to leave things alone for now. With 24 EOL'ing soon, we'll probably want to move all 2.0 stuff to Fedora 25 in the near future. @chulhul is working on an updated image. @weshaggard @chcosta +16152 area-Infrastructure Things with the open key have different identities on unix builds Because of https://github.com/dotnet/corefx/blob/master/Tools-Override/Roslyn.Common.props#L29 we are getting different keys when building on core (i.e. non-windows). We need to make the assembly identity the same on all builds so we should instead work around https://github.com/dotnet/roslyn/issues/8210 by turning on DelaySign instead. Due to issue https://github.com/dotnet/corefx/issues/16126 which ends up picking the identity package from a unix leg we end up with errors like https://github.com/dotnet/standard/issues/201 which has refs with incorrect keys. +16153 area-System.Linq Simplify and optimise S.L.Expressions type-test instructions. `NullableTypeEqualsInstruction` exactly duplicates `TypeEqualsInstruction`. Remove it, and use `GetNonNullableType()` on type argument so result is the same for nullables and non-nullables. Path using type-equal test for type-is on nullables will work with any value type, so test for being a value type rather than being a nullable. `ConstantCheck.AnalyzeTypeIs` call in `CompileTypeIsExpression()` may have found only a nullity test is necessary, in which case emit it instead of full type test. +16154 area-System.Data Move SspiClientContextStatus to SNI The following changes were added 1. Remove SspiClientContextStatus from TdsParserStateObject to its own class. 2. Remove references to TdsParserStateObject from SNIProxy. I am making this change so that the files in System.Data.SqlClient.SNI can be built independently of the upper TDS layers. This is also related to #16129 +16155 area-System.Diagnostics Add System.Diagnostics.Activity.RootId property "# Motivation System.Diagnostics.Activity.Id is unique identifier which may be used to filter logs related to particular activity. Id has hierarchical structure: /root-id.id1.id2.id2 and generated when activity starts internally. Root node of id (root-id) is common for all activities involved in operation processing, so logging systems may filter logs with Id prefix. However some logging systems may not support prefix-based queries or it may be quite expensive to run them. The standard approach to correlate logs is to write some correlation-id with every record. We expect many customers may want to add such correlation-Id to the Activity.Baggage; which would be redundant since root-id serves the same purpose. We want to provide property to expose root-id and avoid unnecessary baggage usage. # API proposal ```C# public partial class Activity { public string RootId {get; private set} } ``` # Usage ```C# void OnIncomingRequest(DiagnoticListener httpListener, HttpRequest request) { if (httpListener.IsEnabled(""Http_In"") ) { Activity activity = new Activity(""Http_In""); activity.SetParentId(request.Headers[""Request-Id""]); if (httpListener.IsEnabled(""Http_In"", request, activity) ) { httpListener.StartActivity(activity); } } } ... //client code DiagnosticListener.AllListeners.Subscribe(delegate (DiagnosticListener listener) { if (listener.Name == ""Microsoft.AspNetCore"") { listener.Subscribe(delegate (KeyValuePair value) { // In this demo we simply log to the console what things are happening. Console.WriteLine(""Event: {0} Current ID {1} RootID {2}"", value.Key, {Activity.Current.Id} {Activity.Current.RootId}); }); } } ``` //cc @vancem " +16156 area-System.Runtime EnumerateEnvironmentVariables(target: Machine) test failing with SecurityException https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/96/ https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/95/ ``` System.Tests.GetEnvironmentVariable.EnumerateEnvironmentVariables(target: Machine) [FAIL] System.Security.SecurityException : Requested registry access is not allowed. Stack Trace: at System.ThrowHelper.ThrowSecurityException(ExceptionResource resource) at Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable) at System.Environment.SetEnvironmentVariableCore(String variable, String value, EnvironmentVariableTarget target) at System.Environment.SetEnvironmentVariable(String variable, String value, EnvironmentVariableTarget target) at Internal.Runtime.Augments.EnvironmentAugments.SetEnvironmentVariable(String variable, String value, EnvironmentVariableTarget target) D:\j\workspace\code_coverage---b14a30e5\src\System.Runtime.Extensions\src\System\Environment.cs(49,0): at System.Environment.SetEnvironmentVariable(String variable, String value, EnvironmentVariableTarget target) D:\j\workspace\code_coverage---b14a30e5\src\System.Runtime.Extensions\tests\System\Environment.GetEnvironmentVariable.cs(209,0): at System.Tests.GetEnvironmentVariable.EnumerateEnvironmentVariables(EnvironmentVariableTarget target) ``` cc: @JeremyKuhne +16157 area-Infrastructure Update signing targets Need to run the signing updates through CI to make sure the correct keys are used on all the different platforms. Once I get that validated I will update the commit to remove the debugging messages and merge. +16158 area-System.Runtime Trivial Fix to avoid an allocation in TextWriter We allocate an char[] for the newline characters every time we create a TextWriter. A trivial change to avoid this (store the char[] in a static). This actually shows up in ASP.NET TechEmpower benchmarks. +16160 area-System.Text Fix hidden overflow issue in encoding code When enabling overflow/underflow compilation flag globally we found one of the System.Text.Encoding.CodePages tests is failing. The reason is we have some method that can adjust a byte pointer by some int value, when passing -1 to this method the calculation of adjusted pointer value becomes wrong when the overflow/underflow flag is wrong. the operation is carried with 8 bytes registers so the overflow and underflow is not detected and no exception is thrown. here is some example of the generated code with and without the overflow check: with overflow/underflow check is on _bytes += count; 00007FFF46E67D76 mov rax,qword ptr [rbp+50h] 00007FFF46E67D7A mov edx,dword ptr [rbp+58h] <<< edx = -1 00007FFF46E67D7D mov edx,edx 00007FFF46E67D7F add rdx,qword ptr [rax+48h] <<< wrong unexpected value 00007FFF46E67D83 jae 00007FFF46E67D8A 00007FFF46E67D85 call 00007FFFA65AFBD0 00007FFF46E67D8A mov rax,qword ptr [rbp+50h] 00007FFF46E67D8E mov qword ptr [rax+48h],rdx with overflow/underflow check is off 00007FFF46E877D6 mov eax,dword ptr [rbp+58h] <<< eax = -1 00007FFF46E877D9 movsxd rax,eax 00007FFF46E877DC mov rdx,qword ptr [rbp+50h] <<< right expected value 00007FFF46E877E0 add qword ptr [rdx+48h],rax +16161 area-Infrastructure Clean-up our build definition files We have a number of things that should be cleaned up in our official and CI builds. 1. We should delete a lot of unnecessary properties. example FilterToOSGroup, TargetOS, etc. We should also look at cleaning out the amount of paramters we are passing to things like CreateHelixArguments, especially when we are only disabling that step. 2. We have a lot of duplication things like our PB_*Arguments parameters which are copied multiple places in our pipeline file. We should set the parameters up in the definition and just pass the appropriate parameters. Otherwise we end up duplicating things like ArchGroup, ConfigurationGroup, etc on each set of parameter lines in a pipebuild step. 3. We should finish the work ensure that all the parameters we are passing are prefixed with PB_ to avoid any more trouble from environment variables changing the official builds. cc @chcosta @MattGal +16163 area-System.Runtime Remove unnecessary environment set in Enumerate We can't and aren't validating that we can set every existing variable and even attempting to isn't possible in some contexts. (WinRT and Machine notably) #16156 @stephentoub, @ianhays +16165 area-System.Data Move DataSet & DataAdapter out of System.Data.Common It feels like in .NET Standard 1.7/2.0 that `System.Data.Common` is growing beyond just what's required to implement a basic ADO.NET provider. Talking with @divega, it seems that features like `DataSet` and `DataAdapter` could be split out into a separate contract like `System.Data.DataSet`. APIs like `DbConnection.GetSchema()` and `DbDataReader.GetSchemaTable()` are a little tricky because they return `DataTable`, but they could be handled with extension methods like the existing `DbDataReaderExtensions` and marker interface `IDbColumnSchemaGenerator`. cc @roji +16166 area-System.IO Add async tests for GZipStream Thanks to @stephentoub in https://github.com/dotnet/corefx/pull/16054 it was revealed that we weren't testing GZipStream's async methods. This PR modifies the existing DeflateStream async methods to be used for GZipStream as well. +16167 area-System.Net Disable network test that is failing regularly Manual_CertificateSentMatchesCertificateReceived_Success is causing windows_nt to fail, so add back the [ActiveIssue] that was removed a few days ago. See https://github.com/dotnet/corefx/issues/16148 +16169 area-System.Net Disable networking test failing only on fedora and redhat. This is to unblock builds from fireball till #13323 investigation is complete. cc @mattgal @steveharter @tmds @omajid +16170 area-Infrastructure Fix run-test.sh This makes run-test.sh work in x64/linux. Remove useless argument and add --runtime argument to pass runtime directory Not works for cross compile yet (ex. build in x64 & run in arm) +16171 area-System.Net Disable networking test on Windows7 pending investigation. This is to unblock CI in the time the issue #16133 is under investigation. cc @danmosemsft +16172 area-Infrastructure ci.dot.net not responding Eg the badges on the homepage are dead, etc. @mmitche +16174 area-Infrastructure [arm32/Linux] Remove workaround to prevent armel package restore In PR #16139, we restore packages for x64 (instead of armel), since armel host packages are not yet available (CoreFX has a cyclic dependency on upstack repo for this). Once Core-Setup publishes packages for Host for Linux Armel (arm32), #16139 should be reverted. There is a same issue for arm (#15519) which can be closed by now. Related issue for arm32 CI (Issue #16175): We have to update ARM CI script in #15900 to use standard options for armel to specify architecture when building CoreFX for armel. CC @gkhanna79 @weshaggard @ericstj @hqueue @jyoungyun @hseok-oh +16175 area-Infrastructure [arm32/CI] host packages are not yet available for armel We can not use `-buildArch` and `-RuntimeOS` for armel when building managed code, because armel host packages are not yet available. For example, we can build managed code for ubuntu.16.04-arm with following options. `./build-managed.sh -Release -buildArch=arm -RuntimeOS=ubuntu.16.04` But we can't build for tizen.4.0.0-armel yet, so we build managed code with following workaround command witch restore x64 host packages instead of armel host packages. `./build-managed.sh -Release` We use the workaround command for arm32 CI for armel too. (in PR #15900) Therefore when armel host packages are published, we have to update arm32 CI script for armel to use standard options. Related issue is tracked at #16174. @gkhanna79 @jyoungyun +16176 area-System.Data EF Core SqlClient and App Insights What can be the reason for not seeing raw SQL in EF app insights in net core project? Not locally nor in Azure. I remember at some point with one of the RCs I saw SQL logged but not anymore. Originally, I posted the question here https://github.com/aspnet/EntityFramework/issues/5510 but was referred to this repo. +16177 area-Infrastructure Standalone packages built from CoreFX should depend on NetStandard.Library and Microsoft.NetCore.App Seems like CoreFX is still using granular package references for dependencies in both netstandard1.1 and netcoreapp2.0. Why is that? Here's an example of System.Memory: ![image](https://cloud.githubusercontent.com/assets/95136/22962800/1a6e908e-f304-11e6-8d14-d02e49988d22.png) /cc @weshaggard @ericstj @Petermarcu +16178 area-System.Data "There is no test result generated under ""System.Data.SqlClient.Stress.Tests""" "Failed on OSX.1011.Amd64:AnyCPU-Debug in build 20170215.01, under ""System.Data.SqlClient.Stress.Tests"". But there is no test result generated. detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170215.01/workItem/System.Data.SqlClient.Stress.Tests/wilogs" +16179 area-System.Net Socket Close sets socket to non-blocking instead of blocking Socket.cs has a comment at: https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs#L4847 ``` // Go to blocking mode. ``` and the implementation is ``` errorCode = SocketPal.SetBlocking(_handle, false, out willBlock); ``` I don't think Linux supports a non-blocking close, so it won't affect the behavior there. Perhaps it will cause bugs on other platforms, Windows in particular. +16180 area-System.Net create sockets and open files with CLOEXEC by default Sockets should not be shared with child processes. So probably it makes sense to add SOCK_CLOEXEC when creating a socket. https://github.com/dotnet/corefx/blob/7a230270559cfbef056aaafc022cdfd8fd3d829e/src/Native/Unix/System.Native/pal_networking.cpp#L2363 +16181 area-System.Net ServicePointManager in dotnet 1.0.0-preview2-1-003177 In which assembly can I find `ServicePointManager`? +16183 area-System.Collections Add a HashSet.CreateSetComparer overload taking an IEqualityComparer `null` is treated as shorthand for `EqualityComparer.Default`. Consider two sets equal iff for each element in either there is an element in the other that the passed comparer considers equal. Take some short-cuts where available, but only if it results in the precise behaviour described above. Keep old behaviour in current overload. Closes #14416 Offers a workaround to #12560 +16184 area-System.Data Missing DbProviderFactory::CreatePermission public method DbProviderFactory used to have `public virtual CodeAccessPermission CreatePermission(PermissionState state)` now it doesn't: https://github.com/dotnet/corefx/blob/master/src/System.Data.Common/src/System/Data/Common/DbProviderFactory.cs However, OdbcFactory still have it: https://github.com/dotnet/corefx/blob/master/src/System.Data.Odbc/src/System/Data/Odbc/OdbcFactory.cs#L51 /cc @marek-safar +16185 area-Meta Events not fired on inkcanvas after changing InputDeviceTypes I'm using an inkCanvas in a UWP application, when I change the property InputDeviceTypes events like PointerExited or PointerMoved are not fired anymore, it's a bug or shall I subscribe to different events? Thanks in advance. +16187 area-System.IO SetCreationTime, SetLastAccessTime, SetLastWriteTime Should not open a new stream to obtain a SafeFileHandle I know that in many cases it is ok to do so, but we found ourself in the case where we need to set file times without closing the actual `FileStream`, and this is possible via Windows API. To do so we had to write **unsafe** code which mimic the functionality of the [existing functions](https://referencesource.microsoft.com/#mscorlib/system/io/file.cs,63bd669b43be5f17,references). (which include rewriting [`System.IO.__Error.WinIOError()`](https://referencesource.microsoft.com/#mscorlib/system/io/file.cs,63bd669b43be5f17), this is obviusly a bad thing, because we have to maintain code wich already exist) This could be extremely more usable and **maintainable** if the framework exposed those methods as `SafeFileHandle` Method/ExtensionMethod. My proposal is to leave those functions unaltered but move the actual implementation in an ipotetic function: `SafeFileHandle.SetFileTimesUtc(DateTime? creationTimeUtc, DateTime? lastAccessTimeUtc, DateTime? lastWriteTimeUtc)` which should be public. +16195 area-System.Runtime ValueTuple in desktop 4.6 app clashes with that of mscorlib 4.7 Repro: 1. Make a trivial app targeting 4.6 involving tuples (you must add a reference to ValueTuple package) 2. On a machine with 4.7 installed, try to debug that program 3. The program runs fine, with modules listed below (ValueTuple.dll from the corefx package included in the app, mscorlib.dll from desktop 4.7) 4. In the EE (Immediate Window, Watch, QuickWatch) type something that involves tuple syntax This will give an error CS8179, because the compiler found two instances of the well-known type (that is ambiguity). ![image](https://cloud.githubusercontent.com/assets/12466233/22987819/f5db50b6-f364-11e6-9bc2-051b4781a2e4.png) ``` (1, 2) error CS8179: Predefined type 'System.ValueTuple`2' is not defined or imported t = (1, 2) error CS8179: Predefined type 'System.ValueTuple`2' is not defined or imported ``` ```C# static void Main(string[] args) { (int first, int second) t = (1, 1); while(true) { Thread.Sleep(1000); Console.WriteLine(t.first); t.first++; } } ``` FYI @tmat @VSadov @cston @AlekseyTs +16196 area-Serialization Enable XmlSerializer to Soap Encode Array The fix is to enable XmlSerializer to serialize/deserialize array into/from soap-encoded message. Fix #15525 +16197 area-Infrastructure Disable official test runs for Fedora 23 (EOL'ed). Previously I mistakenly thought only Fedora 24 was included in the post-dev/eng updates. This completes yesterday's PR ( https://github.com/dotnet/corefx/pull/16151 ). We'll eventually want to bring Fedora 25 online, which will need additions to pipeline.json and a new VM set. @danmosemsft @chcosta +16198 area-System.Runtime Expose String.EndsWith(char) and String.StartsWith(char) Expose String.EndsWith(char) and String.StartsWith(char). Depends on https://github.com/dotnet/coreclr/pull/9228 +16199 area-System.Diagnostics Update AspNetCoreHosting keyword Add httpContext.TraceIdentifier and httpContext.Response.StatusCode keywords which provide useful information for correlation. Note: It's backporting #15179 to 1.1.0 release branch. +16200 area-System.Net Failure in System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.Manual_CertificateSentMatchesCertificateReceived_Success(numberOfRequests: 6, reuseClient: False) https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release/lastCompletedBuild/testReport/ System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.Manual_CertificateSentMatchesCertificateReceived_Success(numberOfRequests: 6, reuseClient: False) (from (empty)) ``` Failing for the past 2 builds (Since Failed#97 ) Took 0.97 sec. Stacktrace MESSAGE: System.Net.Http.HttpRequestException : An error occurred while sending the request.\r\n---- System.Net.Http.WinHttpException : The client certificate credentials were not recognized +++++++++++++++++++ STACK TRACE: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__59.MoveNext() in D:\j\workspace\outerloop_win---65ef7d78\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 487 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__27.MoveNext() in D:\j\workspace\outerloop_win---65ef7d78\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 139 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.<>c__DisplayClass5_1.<b__2>d.MoveNext() in D:\j\workspace\outerloop_win---65ef7d78\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.ClientCertificates.cs:line 92 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.<>c__DisplayClass5_1.<b__4>d.MoveNext() in D:\j\workspace\outerloop_win---65ef7d78\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.ClientCertificates.cs:line 129 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in D:\j\workspace\outerloop_win---65ef7d78\src\Common\tests\System\Net\Http\LoopbackServer.cs:line 58 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.d__5.MoveNext() in D:\j\workspace\outerloop_win---65ef7d78\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.ClientCertificates.cs:line 103 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() in D:\j\workspace\outerloop_win---65ef7d78\src\Common\src\System\Threading\Tasks\RendezvousAwaitable.cs:line 62 at System.Net.Http.WinHttpHandler.d__105.MoveNext() in D:\j\workspace\outerloop_win---65ef7d78\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 851 ``` @steveharter @Priya91 could you please fix or disable this today to get our badge green? +16201 area-System.Net Curl exception: Problem with the SSL CA cert (path? access rights?) on centos, fedora, redhat. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_portablelinux_debug/lastCompletedBuild/testReport/System.Net.Tests/HttpWebRequestHeaderTest/GetResponse_UseDefaultCredentials_ExpectSuccess_remoteServer__https___corefx_net_cloudapp_net_Echo_ashx_/ ``` MESSAGE: System.Net.WebException : An error occurred while sending the request. Problem with the SSL CA cert (path? access rights?)\n---- System.Net.Http.HttpRequestException : An error occurred while sending the request.\n-------- System.Net.Http.CurlException : Problem with the SSL CA cert (path? access rights?) +++++++++++++++++++ STACK TRACE: at System.Net.HttpWebRequest.GetResponse() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_portablelinux_debug/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs:line 989 at System.Net.Tests.HttpWebRequestHeaderTest.GetResponse_UseDefaultCredentials_ExpectSuccess(Uri remoteServer) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_portablelinux_debug/src/System.Net.Requests/tests/HttpWebRequestHeaderTest.cs:line 46 ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__59.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_portablelinux_debug/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 487 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.HttpWebRequest.d__188.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_portablelinux_debug/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs:line 1192 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.HttpWebRequest.GetResponse() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_portablelinux_debug/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs:line 985 ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_portablelinux_debug/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 640 at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_portablelinux_debug/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs:line 852 ``` @steveharter @Priya91 please either fix or (presumably) disable today, so we can get a green badge. +16202 area-System.Net System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate is failing "These are failing Logs at https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win7_release/lastCompletedBuild/testReport/ `System.Net.Http.HttpRequestException : An error occurred while sending the request.\r\n---- System.Net.Http.WinHttpException : The data is invalid` ``` System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""#origFragment\"", redirFragment: \""\"", expectedFragment: \""#origFragment\"", useRelativeRedirect: False) 14 ms 6 System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""\"", redirFragment: \""#redirFragment\"", expectedFragment: \""#redirFragment\"", useRelativeRedirect: False) 4 ms 6 System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""\"", redirFragment: \""#redirFragment\"", expectedFragment: \""#redirFragment\"", useRelativeRedirect: True) 5 ms 6 System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""#origFragment\"", redirFragment: \""#redirFragment\"", expectedFragment: \""#redirFragment\"", useRelativeRedirect: False) 6 ms 6 System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""#origFragment\"", redirFragment: \""#redirFragment\"", expectedFragment: \""#redirFragment\"", useRelativeRedirect: True) 5 ms 6 All Tests ``` @Priya91 @steveharter please fix or (presumably) disable today so we can get a green badge. Click in to see the logs. " +16209 area-System.Runtime Need an efficient helper to check if an instance of T is a default(T) The need arises once in a while to check if a value at hand is not initialized. See for example comments on https://github.com/dotnet/corefx/pull/16122#discussion_r100925338 Also, If/when parameterless constructors for structs are introduced, the need for `IsDefault` check could become more apparent. +16213 area-System.Net Timing issue with Socket.ReceiveAsync causes occasional corrupted data "Code below. Short version of this problem: We have a timing issue in the p/invoke logic for WSARecv that can cause received data to be corrupted when you use SocketAsyncEventArgs and ReceiveAsync in a particular way. You need to: (a) Use multiple buffers via SocketAsyncEventArgs.BufferList (not SetBuffer) (b) In the completion callback for the ReceiveAsync, you need to change the BufferList and then call ReceiveAsync. Fix is forthcoming. I want to investigate if we have any other similar p/invoke issues. ```c# using System; using System.Net; using System.Net.Sockets; using System.Threading; using System.Threading.Tasks; namespace ConsoleApplication8 { class Program { private const byte sendByte = 0xAB; private const byte fillByte = 0xDD; private const byte previousFillByte = 0xEE; static void RunServer(TcpListener listener) { var server = listener.AcceptTcpClient(); byte[] buffer = new byte[8192]; while (true) { int bytes = server.Client.Receive(buffer); if (bytes == 0) return; server.Client.Send(buffer, 0, bytes, SocketFlags.None); } } static void DoSend(TcpClient client) { // Allocate and init buffer byte[] buffer = new byte[24]; for (int i = 0; i < buffer.Length; i++) buffer[i] = sendByte; // Send forever while (true) client.Client.Send(buffer); } static void Main(string[] args) { // Run server TcpListener listener = new TcpListener(IPAddress.Any, 5678); listener.Start(); Task.Run(() => RunServer(listener)); // Connect client = new TcpClient(""localhost"", 5678); // Spawn task to send repeatedly Task.Run(() => DoSend(client)); asyncEventArgs = new SocketAsyncEventArgs(); asyncEventArgs.Completed += (s, e) => { AsyncEventArgsOnCompleted(false, e); }; buffer = new byte[bigBufferLength]; currentSegment = new ArraySegment(buffer, 0, length); BeginReceive(); while (true) { Console.ReadKey(); } } private const int length = 8192; // Receive length private const int bigBufferLength = 1024 * 1024; private const int increment = 10; private static SocketAsyncEventArgs asyncEventArgs; private static byte[] buffer; private static int lastWriteIndex = 0; private static TcpClient client; private static ManualResetEventSlim callerExited = new ManualResetEventSlim(false); private static ArraySegment currentSegment; private static ArraySegment previousSegment; private static void BeginReceive() { // Overwrite previous read previousSegment = currentSegment; Fill(new ArraySegment(buffer, currentSegment.Offset, increment), previousFillByte); // Fails if true, succeeds if false #if true lastWriteIndex = lastWriteIndex + increment; if (lastWriteIndex + length > buffer.Length) lastWriteIndex = 0; #else lastWriteIndex = 0; #endif currentSegment = new ArraySegment(buffer, lastWriteIndex, length); // Fails if true, succeeds if false #if true asyncEventArgs.BufferList = new ArraySegment[] { currentSegment }; #else asyncEventArgs.SetBuffer(currentSegment.Array, currentSegment.Offset, currentSegment.Count); #endif Fill(currentSegment, fillByte); callerExited.Reset(); if (!client.Client.ReceiveAsync(asyncEventArgs)) { callerExited.Set(); AsyncEventArgsOnCompleted(true, asyncEventArgs); } else { callerExited.Set(); } } private static void AsyncEventArgsOnCompleted(bool sync, SocketAsyncEventArgs socketAsyncEventArgs) { if (socketAsyncEventArgs.SocketError != SocketError.Success) throw new Exception(""Socket error on receive""); if (socketAsyncEventArgs.BytesTransferred == 0) throw new Exception(""Unexpected closed socket on receive""); if (GetItemAt(currentSegment, socketAsyncEventArgs.BytesTransferred - 1) != sendByte) { Console.WriteLine($""Received unexpected data. BytesTransferred: {socketAsyncEventArgs.BytesTransferred}, sync: {sync}, lastWriteIndex: {lastWriteIndex}, length: {length}""); ArraySegment foundSegment = socketAsyncEventArgs.BufferList[0]; if (foundSegment != currentSegment) { Console.WriteLine($""BufferList is incorrect. BufferList: ({foundSegment.Offset}, {foundSegment.Count}) Expected: ({currentSegment.Offset}, {currentSegment.Count})""); } else { Console.WriteLine($""BufferList is correct: ({foundSegment.Offset}, {foundSegment.Count})""); } for (int i = 0; i < socketAsyncEventArgs.BytesTransferred; i++) { byte item = GetItemAt(currentSegment, i); if (item != sendByte) { Console.WriteLine($""Check failed at byte {i}, value = {item}""); } } for (int i = 0; i < increment; i++) { byte item = GetItemAt(previousSegment, i); if (item != previousFillByte) { Console.WriteLine($""Previous segment was overwritten at byte {i}, value = {item}""); } } } // Uncomment this and it works //callerExited.Wait(); BeginReceive(); } private static void Clear(ArraySegment segment) { Array.Clear(segment.Array, segment.Offset, segment.Count); } private static void Fill(ArraySegment segment, T value) { for (int i = segment.Offset; i < segment.Offset + segment.Count; i++) segment.Array[i] = value; } private static T GetItemAt(ArraySegment segment, int index) { return segment.Array[segment.Offset + index]; } } } ```" +16216 area-Meta Fix #3862 - Double-Check locked patterns and consider static or Lazy for Singletons This is first of the few PRs for the changes to replace double-check locked patterns with static or Lazy constructs. +16217 area-System.Runtime Make typeof(T).IsValueType more efficient It would be nice to have a cost-free API to check whether a generic type is a class. You can check `default(T) != null` and be 100% confident something is a struct if that condition is true, but if `default(T) == null` then it could be a class or a nullable. The only way to tell right now is via reflection, using something like `typeof(T).IsGenericType && typeof(T).GetGenericTypeDefinition() == typeof(Nullable<>)`. I did want to use such an API several times in the past, although I can't recall where. One scenario I can think of though is if you want to treat `T` as an object if `T` is a class, but avoid boxing for structs. Does this sound like a good idea? Moved from https://github.com/dotnet/corefx/issues/16209 /cc @benaadams @jkotas +16221 area-System.Threading "Add primitive/exchange type for a ""single fire"" event" We have several places where we need to represent an event that fires once and classic .NET events are a poor way to represent it because of the following reasons: - Events don't describe if they fire once or multiple times, you have to trust the API (like a connection closed event handler should only fire once) - There's no way to poll events. In some cases it my be reasonable to check if the event has fired without subscribing. This is clunky with events. - There's no way to pass it around to others that may want to subscribe. If you want to do this with events, you need to pass around the object that the event hangs off of so that new handlers can be added. That might be a problem if you just want to scope things to the event itself. For these reasons ASP.NET tends to use CancellationTokens to represent such events e.g. https://github.com/aspnet/Hosting/blob/c4ea355ddfbe37234393af798b69943ee0ba649a/src/Microsoft.AspNetCore.Hosting.Abstractions/IApplicationLifetime.cs#L17-L30. Cancellation tokens aren't great in general because they aren't an abstraction. As an event implementor, you might want to bind directly to an underlying system without going through the cancellation token API. As as example of this, our caching API has an abstraction called an `IChangeToken` which is basically something with all of the above characteristics https://github.com/aspnet/Common/blob/8688579b29eb37f5b3a5b5dfdb83f0fad1063af5/src/Microsoft.Extensions.Primitives/IChangeToken.cs. Here's an example of a change token implementation that triggers based on polling the disk (you could imagine a more efficient API). https://github.com/aspnet/FileSystem/blob/c2d31b2df95aab3c758fa82b22f1ba9782b4bfd8/src/Microsoft.Extensions.FileProviders.Physical/PollingFileChangeToken.cs /cc @stephentoub +16222 area-System.Memory Faster Span Slim the span hot methods `.ctor`+`Slice` as they are very hot and always inlined Vectorized `IndexOf` for byte and `SequenceEqual` for byte and char /cc @jkotas +16223 area-Infrastructure All Tests failing > Failure to restore a package: Unable to resolve 'coveralls.io (>= 1.4.0)' for '.NETStandard,Version=v2.0'. [/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/external/test-runtime/XUnit.Runtime.depproj] Example: https://github.com/dotnet/corefx/pull/16222 +16225 area-System.Security System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyChainFromHandle_Unix failed @steveharter could you please fix or disable today? Red badge. /cc @bartonjs https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora23_debug/lastCompletedBuild/testReport/System.Security.Cryptography.X509Certificates.Tests/ChainTests/VerifyChainFromHandle_Unix/ ``` MESSAGE: System.Diagnostics.Debug+DebugAssertException : \n\n at System.Environment.get_StackTrace()\n at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage)\n at System.Diagnostics.Debug.Assert(Boolean condition)\n at Internal.Cryptography.Pal.DirectoryBasedStoreProvider.EnsureFilePermissions(FileStream stream, UInt32 userId) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/DirectoryBasedStoreProvider.cs:line 384\n at Internal.Cryptography.Pal.DirectoryBasedStoreProvider.Add(ICertificatePal certPal) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/DirectoryBasedStoreProvider.cs:line 189\n at System.Security.Cryptography.X509Certificates.X509Store.Add(X509Certificate2 certificate) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Store.cs:line 135\n at Internal.Cryptography.Pal.ChainPal.SaveIntermediateCertificates(X509ChainElement[] chainElements, HashSet`1 downloaded) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/ChainPal.cs:line 158\n at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/ChainPal.cs:line 90\n at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs:line 118\n at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs:line 105\n at System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyChainFromHandle_Unix() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs:line 134\n at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)\n at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)\n at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1()\n at Xunit.Sdk.ExecutionTimer.d__4.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction)\n at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code)\n at Xunit.Sdk.TestInvoker`1.d__46.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance)\n at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.TestInvoker`1.b__45_0()\n at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code)\n at Xunit.Sdk.XunitTestRunner.d__4.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator)\n at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code)\n at Xunit.Sdk.TestRunner`1.d__43.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.TestRunner`1.RunAsync()\n at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.TestCaseRunner`1.RunAsync()\n at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync()\n at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.TestMethodRunner`1.RunAsync()\n at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync()\n at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.TestClassRunner`1.RunAsync()\n at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync()\n at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext()\n at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine)\n at Xunit.Sdk.TestCollectionRunner`1.RunAsync()\n at System.Threading.Tasks.Task`1.InnerInvoke()\n at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\n at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)\n at System.Threading.Tasks.Task.ExecuteEntry()\n at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state)\n at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\n at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc()\n at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _)\n at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\n at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)\n at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) +++++++++++++++++++ STACK TRACE: at System.Diagnostics.Debug.UnixDebugLogger.ShowAssertDialog(String stackTrace, String message, String detailMessage) at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Assert(Boolean condition) at Internal.Cryptography.Pal.DirectoryBasedStoreProvider.EnsureFilePermissions(FileStream stream, UInt32 userId) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/DirectoryBasedStoreProvider.cs:line 384 at Internal.Cryptography.Pal.DirectoryBasedStoreProvider.Add(ICertificatePal certPal) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/DirectoryBasedStoreProvider.cs:line 189 at System.Security.Cryptography.X509Certificates.X509Store.Add(X509Certificate2 certificate) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Store.cs:line 135 at Internal.Cryptography.Pal.ChainPal.SaveIntermediateCertificates(X509ChainElement[] chainElements, HashSet`1 downloaded) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/ChainPal.cs:line 158 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/ChainPal.cs:line 90 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs:line 118 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs:line 105 at System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyChainFromHandle_Unix() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs:line 134 ``` +16227 area-System.Security JwtBearerAuthentication fails on AWS Lambda JTW authentication works on local windows development but fails on Linux Getting following error [Information] Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerMiddleware: Bearer was not authenticated. Failure message: IDX10503: Signature validation failed. Keys tried: 'Microsoft.IdentityModel.Tokens.X509SecurityKey , KeyId: **************************** '. Exceptions caught: 'System.PlatformNotSupportedException: Operation is not supported on this platform. at Internal.Cryptography.Pal.OpenSslX509Encoder.BuildRsaPublicKey(Byte[] encodedData) at Internal.Cryptography.Pal.CertificateExtensionsCommon.GetPublicKey[T](X509Certificate2 certificate, Predicate`1 matchesConstraints) at Microsoft.IdentityModel.Tokens.X509SecurityKey.get_PublicKey() at Microsoft.IdentityModel.Tokens.CryptoProviderFactory.IsSupportedAlgorithm(String algorithm, SecurityKey key) at System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.ValidateSignature(Byte[] encodedBytes, Byte[] signature, SecurityKey key, String algorithm, TokenValidationParameters validationParameters) at System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler.ValidateSignature(String token, TokenValidationParameters validationParameters) +16228 area-System.IO SerialPort: Move test file locations and set namespaces Multiple commits to avoid confusing Git move-tracking. It's is difficult to avoid class-with-same-name-as-namespace problems here, but hopefully what I've ended-up with is acceptable. Multi-directory tests within corefx seem to be arranged with a variety of layouts/naming conventions, so I tried to pick something which was reasonably consistent with that. There are no changes beyond the moves and the namespace changes, and the deletion of the example 'smoke test' which seems to be redundant now. +16229 area-Meta Cleanup types duplicated between CoreCLR and CoreFX The following types are implemented in BOTH CoreFX and CoreCLR (corelib). Generally a type doesn't need to be duplicated. If it has to be in corelib (because other types in corelib need it) it can be removed from CoreFX. (Exception, where only a small piece of the type is actually needed in corelib, it can be convenient to leave the full implemention in Corefx - it shares for free and easier to work on there. However the corelib copy should be renamed to avoid confusion (eg Internal prefix)) Need to go through these and de-dupe/rename as appropriate. Note implementations will have diverged so the copies need to be reconciled first. Eg., BitConverter implementations are quite similar, but reformatted and not quite identical implementation. ``` public static class BitConverter public static class Environment public interface IServiceProvider public abstract class CollectionBase : ICollection, IEnumerable, IList public static class StructuralComparisons public abstract class KeyedCollection : Collection public class ReadOnlyDictionary : ICollection, ICollection>, IDictionary, IDictionary, IEnumerable, IEnumerable>, IReadOnlyCollection>, IReadOnlyDictionary public enum SearchOption public static class RuntimeReflectionExtensions public static class CompilerMarshalOverride public sealed class SpecialNameAttribute : Attribute public static class FormatterServices public abstract class SecurityState public class CountdownEvent : IDisposable public sealed class ThreadAbortException : SystemException ``` +16231 area-System.Linq Prohibit open generics in Expression.Property and Expression.Field Contributes to #8081. Also fill other testing gaps in MemberExpression. +16233 area-System.Linq Prohibit open generic delegate types for LambdaExpression Contributes to #8081 +16235 area-System.Diagnostics System.Diagnostics.Tests.ProcessTests.Process_StartTest fail in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/3528/ ``` System.Diagnostics.Tests.ProcessTests.Process_StartTest [FAIL] 13:55:16 System.ComponentModel.Win32Exception : Access is denied 13:55:16 Stack Trace: 13:55:16 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Diagnostics.Process\src\System\Diagnostics\Process.Windows.cs(96,0): at System.Diagnostics.Process.Kill() 13:55:16 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Diagnostics.Process\tests\ProcessTests.netstandard.cs(197,0): at ``` +16236 area-Meta Look at the gaps in the netfx test running @ericstj mention we have a test gap in the way we are running the NetFX tests. Eric want to to run the tests same way the customers runs their app on the desktop. currently we create the NetFX runtime folder and we use a config file for the tests to make it point at the assemblies in the Runtime folder which is different than what customers do in the real scenarios https://github.com/dotnet/corefx/pull/16215 +16237 area-System.Net Disable Crypto tests for Fedora\Ubuntu Per issue #16225 and #9293 disable some Fedora and Ubuntu tests that are failing in CI due to hardware using NTFS partitions instead of Unix. +16238 area-Infrastructure Nothing is consuming signed binaries. Somewhat related to https://github.com/dotnet/corefx/issues/16126. I looked into some of the recent packages and they are unsigned. I believe this is because the signing is happening on the TargetPath but we're packaging the binplaced output of the project. It seems that when the signing task copies the signed file back from the signing server it breaks the hardlink. This will be coicidentally fixed when I do the work described here: https://github.com/dotnet/corefx/issues/14594, but that's only a fix for packaging. The tests also run on a binplaced copy of the project output, so that means that the tests are also getting unsigned binaries. /cc @weshaggard @mellinoe +16240 area-System.IO CI Failure in System.IO.Tests.FileStream_LockUnlock.OverlappingRegionsFromOtherProcess_ThrowsException https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release_prtest/3515/testReport/junit/System.IO.Tests/FileStream_LockUnlock/OverlappingRegionsFromOtherProcess_ThrowsException_fileLength__10__firstPosition__3__firstLength__5__secondPosition__2__secondLength__4_/ ``` Stacktrace MESSAGE: Assert.Equal() Failure\nExpected: 42\nActual: 145 +++++++++++++++++++ STACK TRACE: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_release_prtest/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs:line 159 at System.IO.Tests.FileStream_LockUnlock.OverlappingRegionsFromOtherProcess_ThrowsException(Int64 fileLength, Int64 firstPosition, Int64 firstLength, Int64 secondPosition, Int64 secondLength) in /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_release_prtest/src/System.IO.FileSystem/tests/FileStream/LockUnlock.cs:line 169 ``` +16241 area-System.Net Fix Http test that randomly fails under Windows Addresses #13938 where the test is failing randomly under Windows due to random exception when an http request is being canceled. The fix is to allow the exception (or faulted task) in Windows because in Windows, when the task is canceled, the request handle is destroyed, which may cause an ObjectDisposedException (or other http exception) in other tasks. Also applies to #14519 (make system.net tests reliable) +16242 area-System.Data Connection terminated during SQL test This broke our test run. @saurabh500 is this related to test or implementation (some loopback connection?), or is it infrastructure? https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.10_debug/lastCompletedBuild/testReport/System.Data.SqlClient.Tests/DiagnosticTest/ExecuteScalarTest/ ``` MESSAGE: System.Data.SqlClient.SqlException : A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 2 - Connection was terminated) +++++++++++++++++++ STACK TRACE: at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnection.cs:line 1153 at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInternalConnection.cs:line 242 at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs:line 1206 at System.Data.SqlClient.TdsParserStateObject.ThrowExceptionAndWarning(Boolean callerHasConnectionLock, Boolean asyncClose) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObject.cs:line 1041 at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObject.cs:line 2779 at System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync() in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObject.cs:line 2235 at System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket() in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObject.cs:line 2141 at System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer() in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObject.cs:line 1186 at System.Data.SqlClient.TdsParserStateObject.TryReadByte(Byte& value) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObject.cs:line 1420 at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParser.cs:line 1685 at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData() in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataReader.cs:line 792 at System.Data.SqlClient.SqlDataReader.get_MetaData() in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataReader.cs:line 252 at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs:line 2307 at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs:line 2182 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite, String method) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs:line 1976 at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs:line 1937 at System.Data.SqlClient.SqlCommand.ExecuteScalar() in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs:line 760 at System.Data.SqlClient.Tests.DiagnosticTest.b__6_0() in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs:line 48 at System.Data.SqlClient.Tests.DiagnosticTest.CollectStatisticsDiagnostics(Action sqlOperation) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs:line 585 at System.Data.SqlClient.Tests.DiagnosticTest.ExecuteScalarTest() in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs:line 39 ``` +16244 area-System.Memory Make sure Memory and Unsafe are packaged w/o RID The workaround being used by our build system to only build these packages on Windows was leaking into the packaging. To fix that I overrode the packaging RID for Unsafe, since it was the only thing that actually needed the filtering. Then to fix Memory I added a reference assembly for unsafe and built against that instead. Eventually we'll be able to remove the filtering from unsafe but having a reference assembly for this is general goodness. I also tried to tackle cross-compiling Unsafe for netstandard.dll and hit what appears to be a bug in `ilasm`. It didn't like me claiming that System.Object was in netstandard, and instead tried to insist it was in mscorlib and added a reference to that to the output assembly. I could change System.Object to some other type (eg: System.Attribute) and it was fine. @jkotas I think this is one of those hard-coding-the core assembly bugs. We should see if it's fixed by using a newer ilasm (@mellinoe is working on that), if not we should hunt it down and fix it in coreclr. /cc @mellinoe @ahsonkhan @weshaggard +16246 area-Infrastructure Enable Dumpling for all Unix CI tests "* Pass a simple flag ""IsCIBuild"" in netci.groovy into each invocation of `build-tests.cmd/sh` * In dir.props, define a common set of properties that are contingent on ""IsCIBuild"", so that those properties don't need to be duplicated everywhere in netci.groovy. * Set EnableDumpling=true for Unix builds (Windows support forthcoming). I'm happy to undo the refactoring of netci.groovy and just add an extra parameter to all the calls, but this way felt a bit cleaner and will help us if we need to add additional properties in the future. @danmosemsft @sepidehMS @karelz " +16248 area-System.Net Canceling Http task may result in faulted task instead of canceled\completed See related issue https://github.com/dotnet/corefx/issues/13938 In Windows, when a response task is canceled, the request handle is destroyed, which may cause an ObjectDisposedException (or other http exception) in other tasks. The expectation should be the same as in Linux - a task status of Canceled, or perhaps RanToCompletion if the task already completed For example, the last Assert below may fail randomly (especially consistent in Windows 2008r2) because task.Status will be Faulted. ```` var cts = new CancellationTokenSource(); using (var client = new HttpClient()) using (HttpResponseMessage response = await client.GetAsync(Configuration.Http.RemoteEchoServer, HttpCompletionOption.ResponseHeadersRead)) using (Stream stream = await response.Content.ReadAsStreamAsync()) { var buffer = new byte[2048]; Task task = stream.ReadAsync(buffer, 0, buffer.Length, cts.Token); cts.Cancel(); Assert.True(((IAsyncResult)task).AsyncWaitHandle.WaitOne(new TimeSpan(0, 5, 0))); Assert.True(task.Status == TaskStatus.RanToCompletion || task.Status == TaskStatus.Canceled); } ```` We need to decide if we should harden the code to check the cancellationtoken and\or invalid handle in the various windows-only Http code such as in WinHttpResonseStream and avoid a random ObjectDisposedException, task canceled exception or other http exception depending on timing. Avoiding a race condition in this check may or may not be feasible (as handle or cancellationtoken may change to invalid\cancel in other thread) so consider try\catch of certain exceptions instead and then verify handle and\or cancellationtoken. cc @stephentoub @CIPop @davidsh +16251 area-Infrastructure Crossbuild was reporting incorrectly to the infrastructure. - Add arm as a Platform param for reporting for crossbuild skip ci please +16253 area-System.Net Change host to idnhost on curlhandler. cc @stephentoub @davidsh @CIPop @geoffkizer @karelz Verified with the URL provided in the issue, and the request is successfully parsed by curl. May require setting up a unicode Url on azure for automated testing similar to the echo servers. The other unicode chars in the IRI are percent-encoded while constructing the Uri in the Uri class, hence only handling the host part here. fixes #11213 +16254 area-System.Collections Please add extension method Dictionary.TryGetValue return nullable I think this extension method would be useful ```C# public static V? TryGetValue(this IDictionary dict,K key) where V : struct { V v; return dict != null && dict.TryGetValue(key,out v) ? v : (V?)null; } public static V Get(this IDictionary dict,K key,V defaultValue) where V : struct { return dict?.TryGetValue(key) ?? defaultValue; } public static V Get(this IDictionary dict,K key) where V : class { V v; return dict != null && dict.TryGetValue(key,out v) ? v : null; } ``` +16255 area-Infrastructure All tests on build 20170217.01 failed to generate the test results Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170216.03 Most of the tests failed on Debian.82, Fedora.23, OSX.1011, Redhat.72, Ubuntu.1404, Ubuntu.1610, Win10 & SUSE.428. +16256 area-System.IO "[backport request] IOException during ""File.WriteAllText"" to the file under NFS on Linux with corefx 1.0.3" "At first, I'd like to confirm can I request backport here? If not, I'll turn down my PR. I'm facing below IOException with this simple code when ``/mnt/volume`` is a NFS shared directory even if the user of process has a valid access to ``/mnt/volume`` and it exists. ```cs File.WriteAllText(@""/mnt/volume/test.txt"", ""TextToWrite""); ``` ``` System.UnauthorizedAccessException: Access to the path '/mnt/volume/output.txt' is denied. ---> System.IO.IOException: Bad file descriptor --- End of inner exception stack trace --- at System.IO.UnixFileStream.CheckFileCall(Int64 result, Boolean ignoreNotSupported) at System.IO.UnixFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.UnixFileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.File.InternalWriteAllText(String path, String contents, Encoding encoding) at System.IO.File.WriteAllText(String path, String contents) at ConsoleApplication.Startup.<>c.<b__1_0>d.MoveNext() ``` This error only occurs on .NET Core 1.0. If I updated .NET Core to 1.1 (update project.json and use the .NET Core 1.1 runtime), this doesn't occur. From the stacktrace, I suspect this commit fixed the problem. https://github.com/dotnet/corefx/commit/60d1b3d22eca28ca3dfe375d0cefd2bd16059261 I think .NET Core 1.0 is still LTS phase, so is there any possibility to backport this commit to 1.0.x to fix the issue? Here is the dotnet info where I reproduce this issue. ``` # dotnet --info .NET Command Line Tools (1.0.0-preview2-003156) Product Information: Version: 1.0.0-preview2-003156 Commit SHA-1 hash: 33dabee5d8 Runtime Environment: OS Name: rhel OS Version: 7.3 OS Platform: Linux RID: rhel.7.2-x64 ``` The dotnet info I confirmed .NET Core 1.1 fixes the isseu (on the same machine). ``` # dotnet --info .NET Command Line Tools (1.0.0-preview2-1-003175) Product Information: Version: 1.0.0-preview2-1-003175 Commit SHA-1 hash: bb053ed000 Runtime Environment: OS Name: rhel OS Version: 7.3 OS Platform: Linux RID: rhel.7.2-x64 ``` " +16257 area-Meta Feature request: integrate PluralizationService in .NET Hi, The [.NET reference source](https://github.com/Microsoft/referencesource) repo, contains the [PluralizationService](https://github.com/Microsoft/referencesource/tree/master/System.Data.Entity.Design/System/Data/Entity/Design/PluralizationService) used by the EF to pluralize class names etc. Could we see the pluralization service as part of the .NET? Is there a NuGet package for the .NET reference source? +16258 area-Infrastructure Performance tests erroring out "...or perhaps the instructions are out of date, or I'm missing something (again...). Attempting to run performance tests is failing with the following error: ``` G:\corefx\src\System.Collections\tests>msbuild /t:build,test /p:configurationgroup=Release /p:osgroup=Windows_NT /p:performance=true Build FAILED. ""G:\corefx\src\System.Collections\tests\System.Collections.Tests.csproj"" (build;test target) (1) -> (GenerateTestExecutionScripts target) -> G:\corefx\Tools\tests.targets(213,5): error MSB4018: The ""GenerateTestExecutionScripts"" task failed unexpe ctedly.\r [G:\corefx\src\System.Collections\tests\System.Collections.Tests.csproj] G:\corefx\Tools\tests.targets(213,5): error MSB4018: System.InvalidOperationException: Please provide at lea st one test command To execute via the TestCommands property.\r [G:\corefx\src\System.Collections\tests\Syst em.Collections.Tests.csproj] G:\corefx\Tools\tests.targets(213,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.GenerateTestExecutio nScripts.Execute()\r [G:\corefx\src\System.Collections\tests\System.Collections.Tests.csproj] G:\corefx\Tools\tests.targets(213,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microso ft.Build.BackEnd.ITaskExecutionHost.Execute()\r [G:\corefx\src\System.Collections\tests\System.Collections.T ests.csproj] G:\corefx\Tools\tests.targets(213,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() [G:\corefx\src\System.Collections\tests\System.Collections.Tests.csproj] ``` (this is occurring on at least this and `System.Threading.Tasks` performance tests, so I'm assuming it's a symptom of a larger problem). Note that I've built both libraries and tests, in both debug and release (and I feel like the fact I have to do so initially from the project root is a slight infrastructure wart, but hopefully it'll get better...)." +16259 area-System.Net Linux, exception in EasyRequest.Cleanup() when HttpCompletionOption.ResponseHeadersRead used "Hi, When i run on Ubuntu 14.04.5 LTS ```c# using (var hc = new HttpClient()) { var req = new HttpRequestMessage(HttpMethod.Post, ""http://cti.crypttech.com/home/test""); var content = new MultipartFormDataContent(); content.Add(new StringContent(""dummyKey1""), $""\""dummyValue1\""""); content.Add(new StringContent(""dummyKey2""), $""\""dummyValue2\""""); req.Content = content; var res = hc.SendAsync(req, HttpCompletionOption.ResponseHeadersRead).Result; var resultStream = res.Content.ReadAsStreamAsync().Result; using (var fs = File.OpenWrite(@""result.dat"")) { resultStream.CopyTo(fs); } } ``` I have error ```c# Source: System.Private.CoreLib Type: System.IO.IOException Message: The read operation failed, see inner exception. Stack trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.CurlHandler.CurlResponseStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.Net.Http.DelegatingStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize) at TestClient.Program.Main(String[] args) in C:\TestClient\Program.cs:line 68 Source: System.Private.CoreLib Type: System.ObjectDisposedException Message: Cannot access a closed Stream. Stack trace: at System.IO.__Error.StreamIsClosed() at System.IO.MemoryStream.get_Length() at System.Net.Http.MultipartContent.ContentReadStream.set_Position(Int64 value) at System.Net.Http.CurlHandler.EasyRequest.Cleanup() at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) ``` Some times i have other error ```c# Source: System.Private.CoreLib Type: System.IO.IOException Message: The read operation failed, see inner exception. Stack trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.CurlHandler.CurlResponseStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.Net.Http.DelegatingStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize) at TestClient.Program.Main(String[] args) in C:\Users\khamzatsalikhov\Source\Workspaces\MicroCollection\SmartRest\TestClient\Program.cs:line 68 Source: System.Private.CoreLib Type: System.ObjectDisposedException Message: Cannot access a closed Stream. Stack trace: at System.IO.__Error.StreamIsClosed() at System.IO.MemoryStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.MemoryStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.MultipartContent.ContentReadStream.d__15.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.CurlHandler.MultiAgent.TransferDataFromRequestStream(IntPtr buffer, Int32 length, EasyRequest easy) at System.Net.Http.CurlHandler.MultiAgent.CurlSendCallback(IntPtr buffer, UInt64 size, UInt64 nitems, IntPtr context) ``` No problem occurs if i do not use ""MultipartFormDataContent"" or put ""HttpCompletionOption.ResponseContentRead"". But for me it's not possible because I download very large files by post with ""MultipartFormDataContent"". Best regards" +16260 area-System.Security RSA.SignData() does not work on Linux "I try to sign and verify binary data with RSA CryptoProvider. When I do this on Windows all works as expected, if I do this on Linux signature verification fails. If I sign data on Windows and then verify it on linux then verification works too, so the issue belongs to `SignData()` on Linux Here is the sample. Is there a workaround to avoid this verification fail? Linux OS: Ubuntu 16.04 dotnet --version 1.0.0-preview2-1-003177 Program.cs ```cs using System; using System.IO; using System.Security.Cryptography; using System.Xml; namespace ConsoleApplication { public class Program { static readonly RSASignaturePadding padding = RSASignaturePadding.Pkcs1; public static void Main(string[] args) { string pubKey = ""wKQuLluF0Lvl5YadBO5DZZXb/IaFVnROgstq1jcOTwbX+xHfmsEf6mr914EHCUvy2qDMJP4YDvxOaGlRBCcxLdRQ34eyqfFLyHu6kvFIngTqkHB8ZyqY4VBme7LRltI6447eqlMGaT6qYevmusVUI57/YBOZ72EObTW6fc285cdainCL54Kv/4C6AjTvgWgX/cv3Nov0nrjbWxFpTiqvBH4uFj6BVpK9n1gD+p/+HaL5LyQY5cgsvCw0s6othnXpw7hpFBlkGWlWudZswRs6+X6aZiBYiNi8jey+SmKq9AjSZO++gGdHbjuRfACt8BcHZx1/8P3YC93NWopXI4V8QQ==AQAB""; string privateKey = ""wKQuLluF0Lvl5YadBO5DZZXb/IaFVnROgstq1jcOTwbX+xHfmsEf6mr914EHCUvy2qDMJP4YDvxOaGlRBCcxLdRQ34eyqfFLyHu6kvFIngTqkHB8ZyqY4VBme7LRltI6447eqlMGaT6qYevmusVUI57/YBOZ72EObTW6fc285cdainCL54Kv/4C6AjTvgWgX/cv3Nov0nrjbWxFpTiqvBH4uFj6BVpK9n1gD+p/+HaL5LyQY5cgsvCw0s6othnXpw7hpFBlkGWlWudZswRs6+X6aZiBYiNi8jey+SmKq9AjSZO++gGdHbjuRfACt8BcHZx1/8P3YC93NWopXI4V8QQ==AQAB

7hztVniqA8ef8fQkB0a1Nwd9FnMhdKskamRAk3sDISqWa4HSXx3thxXHGx/DWAgWUWB+nxunsG+rcEkTttT64KLcF39dCzQ2Nk8ObBc6B0rBcRHTQKWaFJRy/mleQ28gzp+FBvVGLXE9UZu26Ksh6no8NCTJJgHGt0XvtaJUDZ8=

zxzNdpnbjewotKK2VXXPKlv2N/E7K1ijSTs0Lavm0aw2ccEbec0iTLIJBzyTt6QbM5GT8k9BROytpo0WxF99KRiX9zoezb6D2Wsf0a1tvOsy9ZsFa4HCgzsmNICu9dxEMpsppEr7bnw1NUfCBoJtxyNmA9zL33xItja+Mk3Mah8=Tgckr0VzUTHFdCAw/kFpeNL3ZrfrqrO6hzK7Bpk0+VVfXXN5YLoJ8E5upLDP7rUXuysH01PYq7SsVWtdDnjUjXBQ91JBRz6g1UMq0rj5xxH0Of1BYNnjmALdfAlDXo24Dn2vtgwCJzoIggmo8q3Bu3i66ct0LwQ9/ijo2HiNWrk=xzpLoqTKADGFzo0enAKhb3va02Fnq4CuQcmDndNYS6U/EhnSFk5vihtQd/ebmPFxgR+uk04N2QFa4XWiyu+X9CpGNHliHEQBjOlxSD9t6mbNNFkU05+UvqvtSl/m7XYe3BdJ7VJ7noI4pLIMQDrC4uZ4QYrpSmfBghYSy0zvL70=wKQuLluF0Lvl5YadBO5DZZXb/IaFVnROgstq1jcOTwbX+xHfmsEf6mr914EHCUvy2qDMJP4YDvxOaGlRBCcxLdRQ34eyqfFLyHu6kvFIngTqkHB8ZyqY4VBme7LRltI6447eqlMGaT6qYevmusVUI57/YBOZ72EObTW6fc285cdainCL54Kv/4C6AjTvgWgX/cv3Nov0nrjbWxFpTiqvBH4uFj6BVpK9n1gD+p/+HaL5LyQY5cgsvCw0s6othnXpw7hpFBlkGWlWudZswRs6+X6aZiBYiNi8jey+SmKq9AjSZO++gGdHbjuRfACt8BcHZx1/8P3YC93NWopXI4V8QQ==wKQuLluF0Lvl5YadBO5DZZXb/IaFVnROgstq1jcOTwbX+xHfmsEf6mr914EHCUvy2qDMJP4YDvxOaGlRBCcxLdRQ34eyqfFLyHu6kvFIngTqkHB8ZyqY4VBme7LRltI6447eqlMGaT6qYevmusVUI57/YBOZ72EObTW6fc285cdainCL54Kv/4C6AjTvgWgX/cv3Nov0nrjbWxFpTiqvBH4uFj6BVpK9n1gD+p/+HaL5LyQY5cgsvCw0s6othnXpw7hpFBlkGWlWudZswRs6+X6aZiBYiNi8jey+SmKq9AjSZO++gGdHbjuRfACt8BcHZx1/8P3YC93NWopXI4V8QQ==
""; var pub = ExtractFromXml(pubKey); var priv = ExtractFromXml(privateKey); //byte[] signature = File.ReadAllBytes(""signature.bin""); //byte[] content = File.ReadAllBytes(""content.bin""); var content = new byte[3] {1,2,3}; var signature = Authenticate(content, priv); bool result = Verify(content, signature, pub); Console.WriteLine(""verify={0}"", result); } public static bool Verify(byte[] dataToVerify, byte[] signature, RSAParameters publicKey) { using (var rsa = RSA.Create()) { rsa.KeySize = 2048; rsa.ImportParameters(publicKey); var verified = rsa.VerifyData(dataToVerify, signature, HashAlgorithmName.SHA256, padding); return verified; } } public static byte[] Authenticate(byte[] dataToSign, RSAParameters privateKey) { using (var rsa = RSA.Create()) { rsa.KeySize = 2048; rsa.ImportParameters(privateKey); var signature = rsa.SignData(dataToSign, HashAlgorithmName.SHA256, padding); return signature; } } public static RSAParameters ExtractFromXml(string xml) { var csp = new RSAParameters(); using (var reader = XmlReader.Create(new StringReader(xml))) { while (reader.Read()) { if (reader.NodeType != XmlNodeType.Element) continue; var elName = reader.Name; if (elName == ""RSAKeyValue"") continue; do { reader.Read(); } while (reader.NodeType != XmlNodeType.Text && reader.NodeType != XmlNodeType.EndElement); if (reader.NodeType == XmlNodeType.EndElement) continue; var value = reader.Value; switch (elName) { case ""Modulus"": csp.Modulus = Convert.FromBase64String(value); break; case ""Exponent"": csp.Exponent = Convert.FromBase64String(value); break; case ""P"": csp.P = Convert.FromBase64String(value); break; case ""Q"": csp.Q = Convert.FromBase64String(value); break; case ""DP"": csp.DP = Convert.FromBase64String(value); break; case ""DQ"": csp.DQ = Convert.FromBase64String(value); break; case ""InverseQ"": csp.InverseQ = Convert.FromBase64String(value); break; case ""D"": csp.D = Convert.FromBase64String(value); break; } } return csp; } } } } ``` project.json ```json { ""version"": ""1.0.0-*"", ""buildOptions"": { ""debugType"": ""portable"", ""emitEntryPoint"": true }, ""dependencies"": { }, ""frameworks"": { ""netcoreapp1.1"": { ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.1.0"" } }, ""imports"": ""dnxcore50"" } } } ``` " +16261 area-System.IO SerialPort: Incomplete BeginX operations prevent timely close/reopen There is a long-standing problem in the `SerialPort` interface which has survived the migration to Core. This delays the closing/disposing of a `SerialPort` which has incomplete `BeginRead/BeginWrite` operations on it. This often manifests itself as an inability to open a port immediately after closing it. Within Core this has given rise to issue #16055 - that issue contains some content from an MS-internal bug database which is useful reference. Ideally we would fix this at some point, as time-related close-then-reopen failures cause pain in real-life and don't do much good to the reputation of `SerialPort`. Can be left as up-for-grabs for the moment as I don't really know what's involved in a fix. +16265 area-System.Net ClientWebSocket bypass/accept invalid/expired ssl certificates Is there a way to bypass/accept invalid/expired ssl certificates when using ClientWebSocket? yes many will say it's not good for security etc... however it is very useful for testing. +16272 area-System.Net WIn7 Test failure: System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate "Test is currently disabled for Win7. Please fix or verify if the test is not supposed to run on Win7. ``` System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""#origFragment\"", redirFragment: \""\"", expectedFragment: \""#origFragment\"", useRelativeRedirect: False) System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""\"", redirFragment: \""#redirFragment\"", expectedFragment: \""#redirFragment\"", useRelativeRedirect: False) System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""\"", redirFragment: \""#redirFragment\"", expectedFragment: \""#redirFragment\"", useRelativeRedirect: True) System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""#origFragment\"", redirFragment: \""#redirFragment\"", expectedFragment: \""#redirFragment\"", useRelativeRedirect: False) System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_AllowAutoRedirectTrue_RetainsOriginalFragmentIfAppropriate(origFragment: \""#origFragment\"", redirFragment: \""#redirFragment\"", expectedFragment: \""#redirFragment\"", useRelativeRedirect: True) ``` Stack trace: ``` MESSAGE: System.Net.Http.HttpRequestException : An error occurred while sending the request.\r\n---- System.Net.Http.WinHttpException : The data is invalid +++++++++++++++++++ STACK TRACE: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() in D:\j\workspace\outerloop_win---75d58f69\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 462 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.<>c__DisplayClass45_1.<b__0>d.MoveNext() in D:\j\workspace\outerloop_win---75d58f69\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.cs:line 622 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in D:\j\workspace\outerloop_win---75d58f69\src\Common\tests\System\Net\Http\LoopbackServer.cs:line 58 at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__45.MoveNext() in D:\j\workspace\outerloop_win---75d58f69\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.cs:line 602 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() in D:\j\workspace\outerloop_win---75d58f69\src\Common\src\System\Threading\Tasks\RendezvousAwaitable.cs:line 62 at System.Net.Http.WinHttpHandler.d__105.MoveNext() in D:\j\workspace\outerloop_win---75d58f69\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 858 ```" +16274 area-System.Threading Proposal: LazyInitializer.EnsureInitialized(ref T target, ref object syncLock, Func valueFactory) ### Background System.Threading.LazyInitializer has several EnsureInitialized overloads that make it safe and easy to lazily initialize a field, e.g. ```C# private static SomethingExpensive s_expensive; public static SomethingExpensive Expensive => LazyInitializer.EnsureInitialized(ref s_expensive, () => SomethingExpensive()); ``` It has several overloads, that can be split into two groups: - Optimistic concurrency - Pessimistic concurrency ```C# public static class LazyInitializer { // Optimistic public static T EnsureInitialized(ref T target) where T : class; public static T EnsureInitialized(ref T target, System.Func valueFactory) where T : class; // Pessimistic public static T EnsureInitialized(ref T target, ref bool initialized, ref object syncLock); public static T EnsureInitialized(ref T target, ref bool initialized, ref object syncLock, System.Func valueFactory); } ``` The optimistic concurrency overloads don't use locks, only interlockeds. This means you don't need a separate lock object and the first access can be faster, but in a contended initialization situation, you may end up with multiple objects getting created (only one of them will be published/used). The pessimistic concurrency overloads do use locks, with a double-checked locking pattern. This means you can be guaranteed to only have one object instantiated in the case of contention, but you also need a separate lock object. For the pessimistic overloads, all of them work with any T, regardless of whether it's a value type or a reference type, and thus in addition to accepting an object, they also require passing a reference to a bool, which indicates whether the field has been initialized or not. That's great for value types, but often for reference types that additional Boolean field is unnecessary, as whether it's been initialized is covered by whether the field is null or not. ### Proposal: We should add the following overload: ```C# public static T EnsureInitialized(ref T target, ref object syncLock, System.Func valueFactory) where T : class; ``` (the same as one of the existing pessimistic overloads, but without the ref bool, and with a class constraint on T) This will allow EnsureInitialized to be used in situations where you're using a ref type, want double-checked locking, and don't want/need to have an extra bool field to track initialization, since that can be done via null/non-null of the target field itself. +16275 area-Meta [Feedback] Can not update to .NETCore 1.1.0 after upgrading to Microsoft.NETCore.UniversalWindowsPlatform v5.3.0 Internal bug 385268 & vsfeedback issue 806440 Create UWP project with VS2015 and upgrade UWP package to v5.2.2 Open project in VS2017 RC3 - RC4. Open Manage NuGet packages for solution and check available updates. Microsoft.NETCore.Runtime.CoreCLR v1.1.0 is listed as package available for update. Trying to update fails with error message: GET https://api.nuget.org/v3/registration1-gz/microsoft.netcore.jit/index.json OK https://api.nuget.org/v3/registration1-gz/microsoft.netcore.jit/index.json 661ms Restoring packages for E:\src\tools{Project path and Name}\project.json... GET https://api.nuget.org/v3-flatcontainer/runtime.win8-arm.microsoft.netcore.jit/index.json NotFound https://api.nuget.org/v3-flatcontainer/runtime.win8-arm.microsoft.netcore.jit/index.json 533ms Unable to resolve 'runtime.win8-arm.Microsoft.NETCore.Jit (>= 1.1.0)' for 'UAP,Version=v10.0 (win10-arm)'. Unable to resolve 'runtime.win8-arm.Microsoft.NETCore.Jit (>= 1.1.0)' for 'UAP,Version=v10.0 (win10-arm-aot)'. it seems that win7-x86 and win7-x64 versions are available on nuget while arm version of assembly is available only as a preview package Copied from: https://github.com/NuGet/Home/issues/4643 +16276 area-System.Numerics Add Narrow, Widen, and Conversion methods to System.Numerics.Vectors. This exposes the new functions approved in #15957 . @sivarv , @CarolEidt , @benaadams +16277 area-System.Net Re-enable Http test with fix for race condition "Fix for https://github.com/dotnet/corefx/issues/9543 The test was failing with ""a task has been canceled"" or ""The server returned an invalid or unrecognized response"". It appears there is a race condition where the server writes to the stream and then immediately disposes (when AcceptSocketAsync ends) but the client is still pending the read. The fix is to add 'socket.NoDelay = true' before the call to ReadWriteAcceptedAsync and then an 'await Task.Delay(100) afterwards. With some slight modifications to the original test to encourage the exceptions, I could repro an exception every 5-10 runs. When applying the NoDelay=true and Task.Delay(100) I have 750+ runs without exception so far (still running). cc @CIPop @davidsh " +16278 area-Infrastructure Remove unused VSTS Feed URL parameter /cc @chcosta @ChadNedzlek PTAL This appears to be unreferenced. +16281 area-System.Net Ignore curl error on failed proxy authentication. fixes #12015 Curl behaves differently when the proxy server returns 407 Authentication failure for the cases of connecting to a https server vs http server. Curl throws error 56 in case of https server and 0 in case of http server. Hence parsing for this difference and making .NET not throw CURL exception in case of https to match the http case and the Windows behavior. cc @stephentoub @davidsh @CIPop @geoffkizer @karelz @steveharter +16282 area-Meta Make RemoteExecutorConsoleApp runs against the full framework All tests using RemoteExecutorConsoleApp having it run under the dotnet host which is not correct for the netfx runs. The fix here is to allow running RemoteExecutorConsoleApp directly against the full framework and uses the same Netfx runtime bits. We have to copy the config file too to prevent assembly binding issues +16285 area-System.Linq Lighter numeric conversion compiling S.L.Expressions Switch on `TypeCode` instead of if-else ladder on type. Skip conversions where it will be a nop. Generate shorter IL when compiling `1L` for increment and decrement. (Comparison with Roslyn shows it to be taking the same approaches across these changes). +16286 area-System.Linq Use TryEmitConstant when FEATURE_COMPILE_TO_METHODBUILDER is set Includes the change from #15854 when this feature is turned on. Doesn't affect produced binaries and not currently testable within CI. This is to unblock @marek-safar who is using this feature. +16287 area-System.Linq API Change: Restore CompileToMethod in S.L.Expressions At https://github.com/dotnet/corefx/issues/11408#issue-174928345 @bartdesmet notes: > I'm not clear why this method was removed. In fact, we tend to use it quite often (despite its limitations to emit only to static methods) in Bing, so I'd be interested in getting it back in .NET Core. All the code still seems to be there; just the entry-point was removed rather than conditionally excluded. The entry-point came back conditionally excluded when that issue was closed. I also agree it can be useful, while I've only used it a handful of times myself, it was really useful those few times. That Xamarin is now using this feature adds another advantage, in that we can't test it, and hence catch regressions that could break Xamarin, without it. Mostly though I just think it can be useful, and is worth having. `CompileToMethod()` has dependencies on most of what is covered by `FEATURE_COMPILE` so replacing `FEATURE_COMPILE_TO_METHODBUILDER` with `FEATURE_COMPILE` would bring it back in those builds that can feasibly use it (i.e. have support for Emit). The mechanism for testing across both interpreter and compiler could be extended to test across all three possibities of interpreter, compiler and `CompileToMethod()` with dynamic methods, but other cases should probably be separate choices. `CompileToMethod()` would require a separate set of tests. - [ ] Approve change. - [ ] Replace `FEATURE_COMPILE_TO_METHODBUILDER` with `FEATURE_COMPILE` - [ ] Update `TryEmitConstants` to handle `TypeBuilder` constants when not emitting to `DynamicMethod` (may do this separately anyway if @marek-safar needs it). - [ ] Update tests to include `CompileToMethod()` with `DynamicMethod`s - [ ] Add tests for compiling to static methods. +16288 area-System.Linq Test SwitchExpression in S.L.Expressions that switch to gotos Special-cased by compiler and not yet covered in testing. Contributes to #11460 +16290 area-System.Net CheckMediaTypeFormat throws exception for valid Content Types "`MediaTypeHeaderValue.CheckMediaTypeFormat(String mediaType, String parameterName)` (https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/Headers/MediaTypeHeaderValue.cs#L254-L266) throws exception for value ""text/html; charset=ISO-8859-4"" which is used as an example in the [w3 RFC 2616](https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html). But, moreover why is this checked anyways? For example, what if I'd like to include invalid header values in my acceptance tests to ensure the server is responding appropriately? How should I set this up in my tests if I can't do this? This creates a limitation around which scenarios can be reproduced in code. ``` request.Content.Headers.ContentType = new MediaTypeHeaderValue(""text/html; charset=ISO-8859-4""); ``` From what I can tell this method disallows ANY [media type parameters](https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7) which doesn't make much sense to me." +16292 area-System.Net fix(MediaTypeHeaderValue): should allow media type parameters Closes #16290 +16293 area-System.Data SqlClient Exception tests should be moved to inner loop SqlClient exceptions test should be moved to Inner Loop, at least the ones that can fail fast and provide results quickly. +16295 area-System.Collections Delay Random allocation in ConcurrentStack ConcurrentStack currently uses a randomized-backoff scheme, where under contention it spins for increasingly longer periods of time, with a duration influenced by some randomness. If the initial attempt at popping an item fails due to contention, it allocates a Random, then tries again one or more times, and then uses the randomness to influence backoff for subsequent attempts. While it's not clear to me that this scheme is optimal, we can at least delay the allocation of the Random (and the underlying cost it entails, like an int[] in its ctor) until it's actually used. Since it's typically not used for a few attempts, this significantly decreases the number of instances that get created under heavy contention. cc: @kouvel, @alexperovich +16296 area-System.Security Support OpenSSL 1.1 [OpenSSL 1.1.0 was released](https://www.openssl.org/news/openssl-1.1.0-notes.html) in August 2016. Various distributions are starting to switch to it now: - [Arch](https://lists.archlinux.org/pipermail/arch-dev-public/2017-January/028673.html) - [Debian](https://wiki.debian.org/OpenSSL-1.1) - [Fedora](https://fedoraproject.org/wiki/Changes/OpenSSL110) OpenSSL 1.1.0 breaks both API and ABI. There's a large list of APIs that were removed. Most structs were made opaque. As a result .NET Core in general and CoreFx in particular fails to build or run there. There's an incomplete list of API changes and porting tips available at [the OpenSSL Wiki](https://wiki.openssl.org/index.php/1.1_API_Changes). +16297 area-System.Data Enable exception tests in inner loop I have removed the [OuterLoop] attribute from exception tests. I found from Jenkins runs that ExceptionTests don't take too long to execute. E.g. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_rhel7.2_debug/lastCompletedBuild/testReport/System.Data.SqlClient.Tests/ExceptionTest/ Also local execution result ``` Discovering: System.Data.SqlClient.Tests Discovered: System.Data.SqlClient.Tests Starting: System.Data.SqlClient.Tests System.Data.SqlClient.Tests.ExceptionTest.ExceptionTests [STARTING] System.Data.SqlClient.Tests.ExceptionTest.ExceptionTests [FINISHED] Time: 5.3308509s System.Data.SqlClient.Tests.ExceptionTest.VariousExceptionTests [STARTING] System.Data.SqlClient.Tests.ExceptionTest.VariousExceptionTests [FINISHED] Time: 0.0242559s System.Data.SqlClient.Tests.ExceptionTest.IndependentConnectionExceptionTestExecuteReader [STARTING] System.Data.SqlClient.Tests.ExceptionTest.IndependentConnectionExceptionTestExecuteReader [FINISHED] Time: 0.0038109s System.Data.SqlClient.Tests.ExceptionTest.IndependentConnectionExceptionTestOpenConnection [STARTING] System.Data.SqlClient.Tests.ExceptionTest.IndependentConnectionExceptionTestOpenConnection [FINISHED] Time: 0.0061324s Finished: System.Data.SqlClient.Tests === TEST EXECUTION SUMMARY === System.Data.SqlClient.Tests Total: 4, Errors: 0, Failed: 0, Skipped: 0, Time: 6.016s ``` At the same time https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_rhel7.2_debug/105/testReport/System.Data.SqlClient.Tests/DiagnosticTest/ shows that a couple of tests in DiagnosticTest which were taking 30 seconds to complete. This was because the test server was not sending a TDS done token in the response. I also changed the error class to what the Sql Server sends for 1 / 0 errors. Fixes #16293 +16298 area-System.Memory Span: System.Memory is missing `unchecked` annotations It is causing different behaviors between debug and release builds. Repro: Run this against netfx debug build of System.Memory: ```c# static void Main() { var span = new Span(new int[1]); Console.WriteLine(span[-5]); } ``` Actual result: System.OverflowException Expected result: System.IndexOutOfRangeException +16300 area-Infrastructure Fix line lost from test targets https://github.com/dotnet/buildtools/pull/1232 got lost when Tools-Override was created. It's useful. +16305 area-Meta Remove unnecessary use of `GetTypeInfo()` in Linq/Expressions/Dynamic, etc.. Possibly a dupe. `GetTypeInfo` patterns like `someType.GetTypeInfo().IsValueType` were added to workaround initially reduced API surface of `System.Type`. I think we have most of those APIs back on `System.Type` and it is likely more efficient to call them directly. (need to confirm, but it is unlikely that calling via `Sysyem.Type` cost more since as last resort it could just use GetTypeInfo internally, although it is doubtful). +16306 area-System.Net pinning bug in Socket.SendTo on Windows From looking at the code, it appears we are not properly locking the socketAddress buffer to Socket.SendToAsync. https://github.com/dotnet/corefx/blob/bfac45af5dddcbd70b6935fcf92b4b8755f3cd1c/src/System.Net.Sockets/src/System/Net/Sockets/SocketPal.Windows.cs#L947 The linked code does the following: (1) Call SetUnmanagedStructures with pinSocketAddress == false; so socketAddress won’t be pinned (2) Retrieve unmanaged pointer to the socketAddress buffer via asyncResult.GetSocketAddressPtr: (3) Pass this pointer to WSASendTo We need to either lock this buffer, or copy it locally to the stack before we use it. +16308 area-System.Net Unix SocketAsyncEventArgs implementation should clone user-provided buffer list When the user sets the BufferList property, we store it and then directly use this whenever we perform a socket operation, e.g.: https://github.com/dotnet/corefx/blob/684af05e70b345eecd503e23d0d6d4efd67f9130/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.Unix.cs#L251 This means that the user can mutate the list after setting it (or even concurrently), and we will see a different buffer list than they originally set. This is not the intended behavior. On Windows, we avoid this by preconstructing the WSABuffer structures when the BufferList is set, so we don't have this issue. We should clone the list when it's set to avoid this problem. +16310 area-System.Net GetResponse_UseDefaultCredentials_ExpectSuccess test failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_centos7.1_release/102/ System.Net.Tests.HttpWebRequestHeaderTest.GetResponse_UseDefaultCredentials_ExpectSuccess(remoteServer: https://corefx-net.cloudapp.net/Echo.ashx) [FAIL] System.Net.WebException : An error occurred while sending the request. Problem with the SSL CA cert (path? access rights?) ---- System.Net.Http.HttpRequestException : An error occurred while sending the request. -------- System.Net.Http.CurlException : Problem with the SSL CA cert (path? access rights?) Stack Trace: /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_release/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs(989,0): at System.Net.HttpWebRequest.GetResponse() /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_release/src/System.Net.Requests/tests/HttpWebRequestHeaderTest.cs(47,0): at System.Net.Tests.HttpWebRequestHeaderTest.GetResponse_UseDefaultCredentials_ExpectSuccess(Uri remoteServer) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_release/src/System.Net.Http/src/System/Net/Http/HttpClient.cs(487,0): at System.Net.Http.HttpClient.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_release/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs(1192,0): at System.Net.HttpWebRequest.d__188.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_release/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs(984,0): at System.Net.HttpWebRequest.GetResponse() ----- Inner Stack Trace ----- /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_release/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs(637,0): at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_release/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs(864,0): at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) +16315 area-System.Security "Test: System.Security.AccessControl.Tests.CommonSecurityDescriptor_CreateFromSddlForm/TestCreateFromSddlForm failed with ""System.OverflowException & System.InvalidOperationException""" "Opened on behalf of @Jiayili1 The test `System.Security.AccessControl.Tests.CommonSecurityDescriptor_CreateFromSddlForm/TestCreateFromSddlForm(isContainer: False, isDS: False, sddl: \""O:LAG:SYD:AI(A;ID;FA;;;BA)(A;ID;FA;;;BO)(A;ID;FA...` has failed. System.OverflowException : Arithmetic operation resulted in an overflow. Stack Trace: at System.Security.AccessControl.GenericSecurityDescriptor.GetBinaryForm(Byte[] binaryForm, Int32 offset) at System.Security.AccessControl.GenericSecurityDescriptor.GetSddlForm(AccessControlSections includeSections) at System.Security.AccessControl.Tests.CommonSecurityDescriptor_CreateFromSddlForm.TestCreateFromSddlForm(Boolean isContainer, Boolean isDS, String sddl, String verifierSddl) Build : Master - 20170218.01 (Core Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug - AnyCPU-Debug - AnyCPU-Release - AnyCPU-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170218.01/workItem/System.Security.AccessControl.Tests/analysis/xunit/System.Security.AccessControl.Tests.CommonSecurityDescriptor_CreateFromSddlForm~2FTestCreateFromSddlForm(isContainer:%20False,%20isDS:%20False,%20sddl:%20%5C%22O:LAG:SYD:AI(A;ID;FA;;;BA)(A;ID;FA;;;BO)(A;ID;FA..." +16316 area-System.IO ShouldThrowIOExceptionDeletingCurrentDirectory failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_release_prtest/3539/consoleText System.IO.Tests.DirectoryInfo_Delete_bool.ShouldThrowIOExceptionDeletingCurrentDirectory [FAIL] Assert.Throws() Failure Expected: typeof(System.IO.IOException) Actual: (No exception was thrown) +16320 area-System.Diagnostics Add Attribute ActiveIssue(15844) to WaitChain() Method in class ProcessWaitingTests under System.Diagnostics.Process Add attribute [ActiveIssue(15844)] to disable test method: System.Diagnostics.Tests.ProcessWaitingTests.WaitChain(). +16322 area-System.IO (Packaging issue in System.IO.FileSystem) System.IO.File in .NET Standard library fails when run in unit test _From @davkean on January 20, 2017 3:49_ _From @gulbanana on December 16, 2016 11:28_ Possibly this issue should be in a vstest repository but I can't find one. Repro: https://github.com/gulbanana/repro-netstandard-systemio When using System.IO in a .NET Standard 1.4 class library, unit tests referencing the library fail. The error is `Message: System.IO.FileLoadException : Could not load file or assembly 'System.IO.FileSystem, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)` _Copied from original issue: dotnet/roslyn-project-system#975_ _Copied from original issue: Microsoft/vstest#363_ +16323 area-System.IO SerialPort: Refactor buffer waits There is a widely used pattern within the tests where the test blocks waiting for an expected number of bytes to be held in either the write or read buffers. There are various implementations of this in the legacy code - some have no timeout (and hence hang the test completely if there's a problem), some have a timeout but don't care if the timeout exceeded or not (which in some cases conceals defects in the test code), and some have a timeout followed by a separate check on buffer content. This PR refactors a large number of these tests to use simple helper methods which are more consistent in approach. We still have 100% run & pass where appropriate hardware is available: System.IO.Ports.Tests Total: 994, Errors: 0, Failed: 0, Skipped: 0, Time: 1112.919s +16325 area-System.IO Cleanup SerialPort.GetPortNames Instead of allocating a new `string[]` array to return, reuse the array returned from `RegistryKey.GetValueNames`. cc: @JeremyKuhne, @willdean +16328 area-Microsoft.CSharp Remove constant folding from RuntimeBinder. Fixes #15467 Fixes #15464 by rendering it obsolete. CC: @VSadov (Arguably `someDynamicContaininAnInt / 0` should be caught at the stage this removes and throw a `RuntimeBinderException` but fixing that would be more of an unusual case now, and as it currently throws `DivideByZeroException` the breaking change may not be worth it). +16330 area-System.Net rework some Windows p/invoke logic and related code Rework the p/invoke definitions and related logic, to try to ensure correctness, improve performance, and reduce memory usage. Several related changes: - Use explicit native types generally, to avoid unexpected p/invoke marshalling behavior. Avoid IntPtr. SafeHandle is fine. - Most native socket routines return a simple int, not a SocketError; fix this - Build struct parameters (e.g. WSABuffer, WSAMsg) on the stack where possible - Use explicit GCHandles in SocketAsyncEventArgs rather than Overlapped to do pinning. - Avoid reallocating Overlapped structures in SocketAsyncEventArgs - Try to enforce pinning semantics in SocketAsyncEventArgs using asserts and GCHandles Fixes #16213, #16306 @stephentoub @davidsh @cipop @Priya91 +16331 area-System.Collections Cut GetTypeInfo from ConcurrentDictionary and use switch over if-else `GetTypeInfo` is no longer a necessary step to get `IsValueType` so remove the call to it (contributes to #16305). Replace if-else ladder on `== typeof(…)` with switch on `GetTypeCode` so up to a dozen tests becomes at most 3. This makes it no longer necessary to test for enum types and get underlying type, so don't. Add a 64-bit type to the types covered in testing. +16334 area-System.Text Improve Encoding Fallback Tests (34.9%, 6.2%) Tracking issue Encoding Fallback issue was detected via CI failure in XML tests rather than via Encoding tests see: https://github.com/dotnet/corefx/pull/16252#issuecomment-280894383 /cc @danmosemsft +16336 area-System.Xml Improve code coverage for System.Private.Xml (53%) There are ~950 types in here, mostly in the System.Xml namespace. Some have good coverage, many not. We should reach 80-90% coverage on this. This is a great opportunity for an external contribution. https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/ +16337 area-System.Data Improve code coverage for System.Data.Common (51%) https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/ +16338 area-System.Net "Test: System.Net.Security.Tests.SslStreamStreamToStreamTest_Async/SslStream_StreamToStream_Write_ReadByte_Success failed with ""System.AggregateException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.SslStreamStreamToStreamTest_Async/SslStream_StreamToStream_Write_ReadByte_Success` has failed. System.AggregateException : One or more errors occurred. (VirtualNetwork: Timeout reading the next frame.) (The credentials supplied to the package were not recognized)\r ---- System.TimeoutException : VirtualNetwork: Timeout reading the next frame.\r ---- System.ComponentModel.Win32Exception : The credentials supplied to the package were not recognized Stack Trace: at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) at System.Net.Security.Tests.SslStreamStreamToStreamTest_Async.DoHandshake(SslStream clientSslStream, SslStream serverSslStream) at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Write_ReadByte_Success() ----- Inner Stack Trace #1 (System.TimeoutException) ----- at System.Net.Test.Common.VirtualNetwork.ReadFrame(Boolean server, Byte[]& buffer) at System.Net.Test.Common.VirtualNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.Net.Test.Common.VirtualNetworkStream.<>c__DisplayClass27_0.b__0() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Threading.Tasks.TaskToApm.End[TResult](IAsyncResult asyncResult) at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) ----- Inner Stack Trace #2 (System.ComponentModel.Win32Exception) ----- at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint) at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) Build : Master - 20170221.01 (Core Tests) Failing configurations: - Windows.10.Amd64 - AnyCPU-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170221.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.SslStreamStreamToStreamTest_Async~2FSslStream_StreamToStream_Write_ReadByte_Success +16340 area-System.Net test failures in System.Net.NetworkInformation on a clean Windows build "I just synced up and I'm seeing the following test errors: ```xml ```" +16341 area-System.Security OverflowException in System.Security.AccessControl Fixed several overflow exceptions in both product and test code of System.Security.AccessControl. Note that there could be more overflows masked by issue #15041. Fix #16315 +16344 area-System.Linq Prohibit open generic comparison methods in SwitchExpression Contributes to #8081 Block a case of a method from an open generic type. +16346 area-System.Net Failure in ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_AllClientVsIndividualServerSupportedProtocols_Success https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/3698/consoleFull#-12002141512d31e50d-1517-49fc-92b3-2ca637122019 ``` System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_AllClientVsIndividualServerSupportedProtocols_Success(serverProtocol: Tls11) [FAIL] 06:59:06 System.ComponentModel.Win32Exception : The credentials supplied to the package were not recognized 06:59:06 Stack Trace: 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\Common\src\Interop\Windows\sspicli\SSPIWrapper.cs(167,0): at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslStreamPal.Windows.cs(407,0): at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslStreamPal.Windows.cs(131,0): at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs(676,0): at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs(783,0): at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs(706,0): at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs(767,0): at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs(983,0): at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs(886,0): at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs(697,0): at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs(614,0): at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslStream.cs(161,0): at System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslStream.cs(257,0): at System.Net.Security.SslStream.<>c__DisplayClass35_0.b__0(AsyncCallback callback, Object state) 06:59:06 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\ServerAsyncAuthenticateTest.cs(152,0): at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() 06:59:06 --- End of stack trace from previous location where exception was thrown --- 06:59:06 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 06:59:06 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 06:59:06 D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\ServerAsyncAuthenticateTest.cs(93,0): at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__9.MoveNext() 06:59:06 --- End of stack trace from previous location where exception was thrown --- 06:59:06 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 06:59:06 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 06:59:06 --- End of stack trace from previous location where exception was thrown --- 06:59:06 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 06:59:06 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 06:59:06 --- End of stack trace from previous location where exception was thrown --- 06:59:06 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 06:59:06 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +16347 area-System.Runtime Proposal: GCHandle.IsPinned(object) When writing code that uses unsafe code, APIs like Marshal.UnsafeAddrOfPinnedArrayElement, etc., it's often desirable to be able to assert that the object in question is in fact pinned. I'd like to see an API that would allow that to be done: ```C# public struct GCHandle { public static bool IsPinned(object value); ... } ``` Similar to how Monitor.IsEntered is mainly intended to be used in Debug.Asserts, this could then be used in Debug.Asserts as well, e.g. ```C# Debug.Assert(GCHandle.IsPinned(arr)); IntPtr arrPtr = Marshal.UnsafeAddrOfPinnedArrayElement(arr, 0); ... // pass arrPtr to P/Invoke ``` My understanding is the runtime doesn't currently track enough information to make such a look-up fast, but that's ok for the debug-only purposes for which it is intended. The runtime could do whatever parts of a GC scan are necessary to determine whether the object is pinned, worst case doing a full GC. +16348 area-System.Xml AV in System.Xml.XmlDocument.Tests in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/107/consoleText ``` Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at System.Xml.XmlTextReaderImpl.ElementNamespaceLookup() in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Core\XmlTextReaderImpl.cs:line 5051 at System.Xml.XmlTextReaderImpl.ParseElement() in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Core\XmlTextReaderImpl.cs:line 4500 at System.Xml.XmlTextReaderImpl.ParseDocumentContent() in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Core\XmlTextReaderImpl.cs:line 4036 at System.Xml.XmlTextReaderImpl.Read() in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Core\XmlTextReaderImpl.cs:line 1202 at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Dom\XmlLoader.cs:line 50 at System.Xml.XmlDocument.Load(XmlReader reader) in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Dom\XmlDocument.cs:line 1261 at System.Xml.XmlDocument.LoadXml(String xml) in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Dom\XmlDocument.cs:line 1279 at System.Xml.Tests.NamespaceURITests.AllNodesForEmptyString() in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\tests\XmlDocument\XmlNodeTests\NamespaceURITests.cs:line 19 --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 147 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 224 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\ExecutionTimer.cs:line 48 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__0() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 209 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.core\Sdk\ExceptionAggregator.cs:line 90 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 208 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 173 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.b__45_0() at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.core\Sdk\ExceptionAggregator.cs:line 107 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) at Xunit.Sdk.TestInvoker`1.RunAsync() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 156 at Xunit.Sdk.XunitTestRunner.InvokeTestMethodAsync(ExceptionAggregator aggregator) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestRunner.cs:line 84 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestRunner.cs:line 67 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) at Xunit.Sdk.TestRunner`1.<>c__DisplayClass43_0.b__0() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestRunner.cs:line 149 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.core\Sdk\ExceptionAggregator.cs:line 107 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) at Xunit.Sdk.TestRunner`1.d__43.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestRunner.cs:line 149 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestRunner`1.RunAsync() at Xunit.Sdk.XunitTestCaseRunner.RunTestAsync() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestCaseRunner.cs:line 106 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestCaseRunner.cs:line 82 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCaseRunner`1.RunAsync() at Xunit.Sdk.XunitTestCase.RunAsync(IMessageSink diagnosticMessageSink, IMessageBus messageBus, Object[] constructorArguments, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\XunitTestCase.cs:line 106 at Xunit.Sdk.XunitTestMethodRunner.RunTestCaseAsync(IXunitTestCase testCase) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestMethodRunner.cs:line 45 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestMethodRunner.cs:line 136 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestMethodRunner.cs:line 106 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestMethodRunner`1.RunAsync() at Xunit.Sdk.XunitTestClassRunner.RunTestMethodAsync(ITestMethod testMethod, IReflectionMethodInfo method, IEnumerable`1 testCases, Object[] constructorArguments) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestClassRunner.cs:line 152 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestClassRunner.cs:line 205 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestClassRunner.cs:line 163 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestClassRunner`1.RunAsync() at Xunit.Sdk.XunitTestCollectionRunner.RunTestClassAsync(ITestClass testClass, IReflectionTypeInfo class, IEnumerable`1 testCases) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestCollectionRunner.cs:line 124 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestCollectionRunner.cs:line 130 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestCollectionRunner.cs:line 101 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCollectionRunner`1.RunAsync() at Xunit.Sdk.XunitTestAssemblyRunner.RunTestCollectionAsync(IMessageBus messageBus, ITestCollection testCollection, IEnumerable`1 testCases, CancellationTokenSource cancellationTokenSource) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestAssemblyRunner.cs:line 203 at Xunit.Sdk.XunitTestAssemblyRunner.<>c__DisplayClass14_2.b__3() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestAssemblyRunner.cs:line 179 at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntry() at System.Threading.Tasks.SynchronizationContextTaskScheduler.<>c.<.cctor>b__8_0(Object s) at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\MaxConcurrencySyncContext.cs:line 107 at Xunit.Sdk.MaxConcurrencySyncContext.<>c__DisplayClass11_0.b__0(Object _) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\MaxConcurrencySyncContext.cs:line 96 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at lambda_method(Closure , Object , Object ) at Xunit.Sdk.ExecutionContextHelper.Run(Object context, Action`1 action) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Utility\ExecutionContextHelper.cs:line 111 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\MaxConcurrencySyncContext.cs:line 89 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) in C:\BuildAgent\work\cb37e9acf085d108\src\common\XunitWorkerThread.cs:line 38 at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntryUnsafe() at System.Threading.Tasks.ThreadPoolTaskScheduler.<>c.<.cctor>b__10_0(Object s) at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart(Object obj) ``` +16352 area-System.Console Console.KeyAvailable echoes typed key on Linux and macOS I've been using `Console.KeyAvailable` to implement an async `ReadKey` method that waits until a key is available before calling `Console.ReadKey(true)`. This has been working well on Windows but it breaks down on *NIX because the `Console.KeyAvailable` property causes the typed key to be echoed. This happens before I have a chance to call `ReadKey` specifying that I don't want it to echo the typed key. Is this a bug? If not, is there some way I can tell the console implementation to not echo keys when `KeyAvailable` is used? /cc @stephentoub +16353 area-Infrastructure Solutions missing cross-platform configurations We used to have the option in VS of selecting which configuration of the project you want to work with, e.g. a pull down to select Windows vs Linux vs macOS for Debug vs Release. Now in a solution like System.Net.Sockets, there's only Debug vs Release, which means when working on the Unix side of a project, we don't get IntelliSense in the Unix-specific code. What's the recommended approach now? cc: @weshaggard +16354 area-System.Reflection System.Reflection.Metadata throws on big-endian archs There is an explicit check in System.Reflection.Metadata which blocks Roslyn from working on big endian architectures. Can this be removed/fixed? https://github.com/dotnet/corefx/blob/c97b6dfa7fa8cb29b12121bc5532597ab1409bb6/src/System.Reflection.Metadata/src/System/Reflection/Metadata/MetadataReader.cs#L91 +16357 area-Infrastructure Pass -stripSymbols to Linux Crossbuild Passes `-stripSymbols` from https://github.com/dotnet/corefx/pull/15440 to the Linux Crossbuild. This should make it start producing symbol packages. (And not include symbol info in the main package.) @wtgodbe Is there a reason not to strip symbols in this build leg? @chcosta @gkhanna79 +16358 area-System.Memory System.Memory tests target wrong assembly "System.Memory tests target System.Private.CoreLib instead of System.Memory when a type is defined in both assemblies which produces incorrect test results and blocks the creation of new unit tests (e.g. for #16298). Adding ```csharp var type = typeof(SpanExtensions); Console.WriteLine($""Type {type} defined in {type.Assembly.FullName} loaded from {type.Assembly.Location}""); type = typeof(Span<>); Console.WriteLine($""Type {type} defined in {type.Assembly.FullName} loaded from {type.Assembly.Location}""); ``` to a test produces the following output: ``` Type System.SpanExtensions defined in System.Memory, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a loaded from R:\corefx\bin\testhost\netcoreapp-Windows_NT-Debug-x64\shared\Microsoft.NETCore.App\9.9.9\System.Memory.dll Type System.Span`1[T] defined in System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e loaded from R:\corefx\bin\testhost\netcoreapp-Windows_NT-Debug-x64\shared\Microsoft.NETCore.App\9.9.9\System.Private.CoreLib.ni.dll ```" +16359 area-System.IO System.IO.Ports.Tests hang Windows, debug build. Just synced up. The hang appears to happen at this line: https://github.com/dotnet/corefx/blob/a5473390a7da48fbc01ced6985da38679983faca/src/System.IO.Ports/src/System/IO/Ports/SerialStream.cs#L1011 Full stack: ``` System.Private.CoreLib.ni.dll!System.Threading.WaitHandle.InternalWaitOne(System.Runtime.InteropServices.SafeHandle waitableSafeHandle, long millisecondsTimeout, bool hasThreadAffinity, bool exitContext) Unknown > System.IO.Ports.dll!System.IO.Ports.SerialStream.EndWrite(System.IAsyncResult asyncResult) Line 1011 C# System.IO.Ports.dll!System.IO.Ports.SerialStream.Write(byte[] array, int offset, int count, int timeout) Line 1165 C# System.IO.Ports.dll!System.IO.Ports.SerialPort.Write(string text) Line 1130 C# System.IO.Ports.dll!System.IO.Ports.SerialPort.WriteLine(string text) Line 1174 C# System.IO.Ports.Tests.dll!Legacy.Support.SerialPortConnection.VerifyReadWrite(System.IO.Ports.SerialPort com1, System.IO.Ports.SerialPort com2) Line 75 C# System.IO.Ports.Tests.dll!Legacy.Support.SerialPortConnection.VerifyLoopback(string portName) Line 56 C# System.IO.Ports.Tests.dll!Legacy.Support.TCSupport.GenerateSerialInfo() Line 85 C# System.IO.Ports.Tests.dll!Legacy.Support.TCSupport.InitializeSerialInfo() Line 32 C# System.IO.Ports.Tests.dll!Legacy.Support.TCSupport.TCSupport() Line 27 C# [Native to Managed Transition] [Managed to Native Transition] System.IO.Ports.Tests.dll!Legacy.Support.TCSupport.SufficientHardwareRequirements(Legacy.Support.TCSupport.SerialPortRequirements serialPortRequirements) Line 166 C# System.IO.Ports.Tests.dll!System.IO.PortsTests.PortsTest.HasOneSerialPort.get() Line 12 C# [Native to Managed Transition] [Managed to Native Transition] Xunit.NetCore.Extensions.dll!Xunit.NetCore.Extensions.ConditionalTestDiscoverer.Discover(Xunit.Abstractions.ITestFrameworkDiscoveryOptions discoveryOptions, Xunit.Abstractions.IMessageSink diagnosticMessageSink, Xunit.Abstractions.ITestMethod testMethod, System.Collections.Generic.IEnumerable testCases, System.Collections.Generic.IEnumerable conditionMemberNames) Unknown Xunit.NetCore.Extensions.dll!Xunit.NetCore.Extensions.ConditionalFactDiscoverer.Discover(Xunit.Abstractions.ITestFrameworkDiscoveryOptions discoveryOptions, Xunit.Abstractions.ITestMethod testMethod, Xunit.Abstractions.IAttributeInfo factAttribute) Unknown xunit.execution.dotnet.dll!Xunit.Sdk.XunitTestFrameworkDiscoverer.FindTestsForMethod(Xunit.Abstractions.ITestMethod testMethod, bool includeSourceInformation, Xunit.Sdk.IMessageBus messageBus, Xunit.Abstractions.ITestFrameworkDiscoveryOptions discoveryOptions) Line 95 C# xunit.execution.dotnet.dll!Xunit.Sdk.XunitTestFrameworkDiscoverer.FindTestsForType(Xunit.Abstractions.ITestClass testClass, bool includeSourceInformation, Xunit.Sdk.IMessageBus messageBus, Xunit.Abstractions.ITestFrameworkDiscoveryOptions discoveryOptions) Line 108 C# xunit.execution.dotnet.dll!Xunit.Sdk.TestFrameworkDiscoverer.FindTestsForTypeAndWrapExceptions(Xunit.Abstractions.ITestClass testClass, bool includeSourceInformation, Xunit.Sdk.IMessageBus messageBus, Xunit.Abstractions.ITestFrameworkDiscoveryOptions discoveryOptions) Line 156 C# xunit.execution.dotnet.dll!Xunit.Sdk.TestFrameworkDiscoverer.Find.AnonymousMethod__0() Line 101 C# xunit.execution.dotnet.dll!Xunit.Sdk.XunitWorkerThread.QueueUserWorkItem.AnonymousMethod__5_0(object _) Line 37 C# System.Private.CoreLib.ni.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown System.Private.CoreLib.ni.dll!System.Threading.Tasks.Task.ExecuteWithThreadLocal(ref System.Threading.Tasks.Task currentTaskSlot) Unknown System.Private.CoreLib.ni.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown ``` +16362 area-Infrastructure Non-lowercase TargetGroup values lead to late, indirect build errors "I started trying to fix this: https://github.com/dotnet/corefx/pull/16360 ... but it's clear from building with my changes that others are needed. For instance, the bin\runtime\ path that gets generated has the upper-cased letters if specified. Some guidance here... like ""just fail if a TargetGroup is not equal to the ToLower() of itself, with an obvious error message"" would make sense, since the property is almost always passed as a command-line property to MSBuild, thus cannot be easily nerfed by setting it to the ToLower() of itself. @joperezr , FYI" +16363 area-Infrastructure Update repo packageIndexes when we ship releases We need a process for committing updates to the packageIndexes in various repros when we ship new releases. corefx/master and standard/master need updates from corefx/release/1.0.0 and corefx/release/1.1.0. corefx/release/1.1.0 needs updates from corefx/release/1.0.0. Perhaps this is something maestro can do? /cc @dagood @chcosta +16364 area-System.Security Allow X509Chain to replace the root trust list for a single call "We should add members on the ChainPolicy to allow a single call to X509Chain.Build to consider an X509Certificate2Collection of certs as a replacement of the system/user default certificate trust. Win32: CERT_CHAIN_ENGINE_CONFIG looks like it has hExclusiveRoot for ""replace"". Unix/OpenSSL: We just need to replace the root trust list when deciding whether or not to set the UnknownRoot flag. Apple/Security.framework: The SecTrust APIs have options to replace the anchors list for a single request. API requirements: * A way of providing the replacement root certificate trust collection, with a clear mode of if the request is using system trust or custom trust. (edited to remove the option of ""in addition to"" the system trust due to increased complexity and less OS support)" +16368 area-System.Net Improve CI: change Http test ActiveIssue(Windows) to (Any) Per https://github.com/dotnet/corefx/issues/16200, also disable this test for all platforms (instead of just Windows) +16371 area-System.Net [CI Failure] AccessViolationException in System.Net.Mail.Functional.Tests Found here during a code coverage run: https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows_prtest/31/consoleFull#-61246470379fe3b83-f408-404c-b9e7-9207d232e5fc ``` 08:26:44 Unhandled Exception: 08:26:44 Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. 08:26:44 at System.Net.DebugThreadTracking.SetThreadKind(ThreadKinds kind) 08:26:44 at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Sockets\src\System\Net\Sockets\BaseOverlappedAsyncResult.Windows.cs:line 69 08:26:44 at System.Threading.ThreadPoolBoundHandleOverlapped.CompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 08:26:44 at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 08:26:44 System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. 08:26:44 at System.Net.Sockets.NetworkStream..ctor(Socket socket, FileAccess access, Boolean ownsSocket) 08:26:44 at System.Net.Sockets.NetworkStream..ctor(Socket socket, Boolean ownsSocket) in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Sockets\src\System\Net\Sockets\NetworkStream.cs:line 42 08:26:44 at System.Net.Sockets.TcpClient.GetStream() in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Sockets\src\System\Net\Sockets\TCPClient.cs:line 149 08:26:44 at System.Net.Mail.Tests.SmtpServer.Run() in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Mail\tests\Functional\SmtpServer.cs:line 60 08:26:44 at System.Threading.Thread.ThreadMain_ThreadStart() in D:\j\workspace\code_coverage---d5838fef\src\System.Threading.Thread\src\System\Threading\Thread.cs:line 103 08:26:44 at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 08:26:44 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 08:26:44 at System.Threading.ThreadHelper.ThreadStart() ``` +16373 area-System.Net Enable instance Socket.{Begin}Connect{Async} methods on Unix "BSD Sockets don't allow using a socket for a connection that has already failed in a previous connect. This has caused us to significantly hamper the Socket.{Begin}Connect{Async} instance methods on Socket, in two ways: 1) If you call any instance connect overload and it fails, whereas on Windows you can try to connect again, on Unix we throw a PlatformNotSupportedException. 2) If you call any instance connect method that could potentially try to connect to multiple addresses (e.g. a string host, an IPAddress[], or a DnsEndPoint), whereas on Windows that allowed, on Unix we throw a PlatformNotSupportedException (because after trying the first address we will then be trying to connect again on a socket that failed to connect). There are multiple options for dealing with this, all with their own pros and cons: A) Use a ""shadow"" socket to first try to make the connection, and if it succeeds, assume that another connection will succeed and try to make it on the ""real"" socket. We actually originally went down this path prior to .NET Core 1.0 and it had significant problems, both with performance (multiple connections any time a single one was needed) and with server expectations (getting two connections when only one was expected). B) Prohibit usage of any {Begin}Connect{Async} APIs that could potentially deal with multiple addresses. This is what we've shipped in .NET Core 1.x. C) In such APIs, check whether the number of addresses is exactly 1, allowing it if there is, throwing otherwise. This has several issues, including problems with dual mode (e.g. localhost will often resolve to both ::1 and 127.0.0.1), non-determinism based on how many addresses a server resolves to, etc. D) Regardless of the number of addresses, pretend there was only one. This has similar issues to (C). E) Use a ""shadow"" socket to make each connection, and then on successful connection substitute it in for the original underneath the Socket. This enables trying to connect to multiple addresses, but it means that any configuration performed on the initial socket won't be applied to the subsequent sockets. F) Same as (E), but keeping track of some dialable set of options that can be propagated from socket to socket. This commit implements (F). (F) still isn't perfect, but it allows the common path (minimal configuration) to work while still supporting multiple endpoints and being deterministic: - SafeCloseSocket on Unix now tracks whether the Socket.Handle property was accessed and whether any non-tracked configuration was set. If any of that is done, then as with today. We were already tracking (in order to provide an error message) whether a connect attempt failed; that was previously tracked on the SocketAsyncContext, now it's tracked on the SafeCloseSocket handle. - Whenever an attempt is made to {Begin}Connect{Async} with multiple possible endpoints, we check whether the handle was exposed or untracked configuration was used. If it was, we fail as we do today. If it wasn't, we allow it. - When making a connection (either via a user's call, or as part of a multi-endpoint connect operation), if there was a previously failed connection attempt, we replace the handle with a new one, transferring over the tracked state from the old handle to the new one. - Removed a bunch of stale code leftover from when approach (A) above was implemented; apparently when we switched to (B) this code was never removed - Removed now defunct [PlatformSpecific] attribution, and added some more tests With (F), we also no longer need the workaround we had in TcpClient, so I recombined it back down to a single implementation built on top of Socket. This means, for example, that whereas previously on Unix you couldn't use TcpClient's instance Connect methods with a DNS endpoint after accessing its Client Socket, now you can. And we don't have to do any of the shadow value tracking we were previously doing. In addition, I took care of some other minor cleanup I spotted along the way: - One or two cases where API usage was ifdef'd out; now that these APIs are back for 2.0, we can use them again, e.g. IPAddress.Address - Fixed a few places where exception stacks were being lost due to exceptions getting rethrown; changed these to use ExceptionDispatchInfo to maintain the stacks (this helped me to debug a few things better, which is how I noticed in the first place) - Removed unnecessary pragma usage that was a holdover from older versions of the code - Adding code to a bunch of tests to Dispose of sockets - Adding a few more tests (there's still a lot of uncovered code in Sockets unfortunately; we really need to address that, separately) Fixes https://github.com/dotnet/corefx/issues/8768 cc: @NickCraver, @tmds, @glennc, @geoffkizer, @danroth27, @richlander, @pgavlin, @halter73" +16374 area-System.Collections [Proposal] Adding a version of List with smaller memory footprint and no random access **Related:** https://github.com/dotnet/corefx/issues/15573 **Background:** When `Add` is called on List and it cannot fit any more items in its internal buffer, it allocates a new array twice the size and copies over each of the existing items. This is an inefficient use of memory; instead, it could keep the old array around, allocate a new one the same size as the number of existing items, and continue reading items into that array with no copying. This is what [`LargeArrayBuilder`](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Collections/Generic/LargeArrayBuilder.cs) does, which is used by Linq's `ToArray` method today, and the number of allocations [has been shown to decrease by 33%](https://github.com/dotnet/corefx/pull/11208) as a result. Here is a visualization of how 200 items will be stored: ```cs Buffers = new T[][] { [0] = new T[8], // Stores items 0-7 [1] = new T[8], // Stores items 9-16 [2] = new T[16], // Stores items 17-32 [3] = new T[32], // Stores items 33-64 [4] = new T[64], // Stores items 65-128 [5] = new T[128] // Stores items 129-199, slots 200-255 are zero-inited } ``` When one buffer runs out of space we can simply add it to `Buffers` and continue reading in items to a new buffer, without copying anything or wasting memory. **Proposal:** The public version will be a class and implement `ICollection`. It will be named `ArrayBuilder`, since in the related issue we decided we're not going to expose the internal `ArrayBuilder`. It will expose a minimal API and explicitly implement a few `ICollection` members. ```cs namespace System.Collections.Extended { public class ArrayBuilder : ICollection, IReadOnlyCollection { public ArrayBuilder(); public ArrayBuilder(int capacity); public ArrayBuilder(IEnumerable items); public ArrayBuilder(int capacity, IEnumerable items); // ICollection members public int Count { get; } public void Add(T item); public void Clear(); public bool Contains(T item); public void CopyTo(T[] array, int arrayIndex); public Enumerator GetEnumerator(); public T[] ToArray(); // Explicitly implemented ICollection members bool ICollection.IsReadOnly { get; } bool ICollection.Remove(T item); IEnumerator IEnumerable.GetEnumerator(); IEnumerator IEnumerable.GetEnumerator(); public struct Enumerator : IEnumerator, IEnumerator { public T Current { get; } public void Dispose(); public bool MoveNext(); void IEnumerator.Reset(); } } } ``` The type will not implement `IList`. Random access will be O(log n) because we'd have to walk over each of the buffers and subtract its size from the index, and each buffer will be double the size as the previous. **Addtional notes:** - Roslyn already has an `ArrayBuilder` type used in a lot of places, so I'm open to changing the name if the name clashes with that project will be a concern. - The namespace will be `System.Collections.Extended` so `System.Collections.Generic` stays lean. See https://github.com/dotnet/corefx/issues/16374#issuecomment-281856288 /cc @benaadams @omariom @jkotas @KrzysztofCwalina +16375 area-System.Net TCP Fast Open implementation? "## Proposal: TCP Fast Open TCP Fast Open is an extension for TCP to speed up the handshaking process in successive TCP connections. This feature has been available for OSX and Linux for years and was implemented on Windows by Anniversary Update. Users could check by `netsh` ``` >netsh int tcp show global Querying active state... TCP Global Parameters ---------------------------------------------- ... TCP Fast Open : enabled ``` but dotnet has not implemented this for System.Net yet. ### Rational and Usage This new API is important and powerful because when it is used with TLS False Start, we are down to 1-RTT from original 3-RTT for a successive TCP+TLS (HTTPS) connection, and furthermore, 0-RTT could be achieved by combining TFO and TLS 1.3. And it's easy to use: programmers only need to add a few lines to set an socket option and provide a buffer filled with data to send. Here's the usage: ``` C# var s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var e = new SocketAsyncEventArgs(); s.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.FastOpen, true); e.SetBuffer(buffer, offset, length); s.ConnectAsync(e); ``` Note that `buffer[offset]` ~ `buffer[offset+length-1]` might be (partially) sent together with SYN. It's up to the OS how to send. A typical usage is the TLS handshake. In successive connections, the client could send a SYN with TLS Client Hello. Please check the ""Original Proposal"" for details. ### Proposed API ``` C# namespace System.Net.Sockets { // Defines socket option names for the class. public enum SocketOptionName { // ... #region SocketOptionLevel.Tcp // ... FastOpen = 15 #endregion } } ``` This enum value is 15 for Windows according to `ws2ipdef.h`. ### Problems & Extra works - Implementation In fact, adding just one line like the code above in [SocketOptionName.cs](https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.Net.Sockets/src/System/Net/Sockets/SocketOptionName.cs) would work for Windows. However, it might not work for Unix. Since dotnet simply pass the socket option to native API on Windows while the Unix Pal would check the value. For more information about the difference please check the relevant issue #14237 . To make this work for Unix we may need to modify [this part](https://github.com/dotnet/corefx/blob/master/src/Native/Unix/System.Native/pal_networking.cpp#L2103-L2113) - Compatibility According to [MSDN](https://msdn.microsoft.com/en-us/library/windows/desktop/ms738596(v=vs.85).aspx), this option is available since Windows 10, 1607. Maybe we should generate a warning if this option is set on the older Windows platform - Other System.Net API For API using sockets in its code such as WebClient or HttpClient, it could take advantage of this feature, especially for ""https://"" scheme. ### Original Proposal #### TCP Fast Open on Windows Windows has introduced TCP Fast Open in the Anniversary Update serveral months ago. ([Announcing: New Transport Advancements in the Anniversary Update for Windows 10 and Windows Server 2016](https://blogs.technet.microsoft.com/networking/2016/07/18/announcing-new-transport-advancements-in-the-anniversary-update-for-windows-10-and-windows-server-2016/)) > TFO is one full Round Trip Time (RTT) faster than the standard TCP setup which requires a three way-handshake. This leads to latency savings and is very relevant to short web transfers over the Internet where the average latency is on the order of 40 msec. #### Native API for TCP Fast Open This feature could be turned on using native Windows Socket 2 API: [IPPROTO_TCP Socket Options](https://msdn.microsoft.com/en-us/library/windows/desktop/ms738596(v=vs.85).aspx). But it has not been implemented in dotnet ([SocketOptionName.cs](https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.Net.Sockets/src/System/Net/Sockets/SocketOptionName.cs)). #### dotnet API relating to TCP Fast Open According to the Native API Documentation, in addition to passing a new enum value to the method `setSocketOption` which then calls the native `setsockopt`, we need to set up the buffer including the data to send during the initial connection: >Note that to make use of fast opens, you should use ConnectEx to make the initial connection, and specify data in that function's lpSendBuffer parameter to be transferred during the handshake process. Some of the data in lpSendBuffer will be transferred under the Fast Open protocol. The native method `ConnectEx` is called by [`DoOperationConnect`](https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.Windows.cs#L235) which is called by [`socket.ConnectAsync`](https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/SocketAsyncEventArgs.Windows.cs#L235) on Windows. And the buffer could be set as a property of SocketAsyncEventArgs. ```C# //TFO is defined as 15 in ws2ipdef.h socket.SetSocketOption(SocketOptionLevel.Tcp, (SocketOptionName)15, true); e.SetBuffer(buffer, start, length); //e is a SocketAsyncEventArgs socket.ConnectAsync(e); ``` #### dotnet implementation The most straightforward way to implement this feature is to add a new value to the SocketOptionName enum. But it enables this feature only on Windows. In this issue https://github.com/dotnet/corefx/issues/14237, it seems that members are interested in introducing a new cross-platform API for TCP options. >It would be nice if the Public API contained all of the possible socket options across Windows, Linux, and Darwin. PS. TCP Fast Open is natively supported on Linux and OSX. Here's how to use it on Linux: [TCP Fast Open: expediting web services](https://lwn.net/Articles/508865/) More about TCP Fast Open: - [RFC7413](https://tools.ietf.org/html/rfc7413) - [Windows blog: Building a faster and more secure web with TCP Fast Open, TLS False Start, and TLS 1.3](https://blogs.windows.com/msedgedev/2016/06/15/building-a-faster-and-more-secure-web-with-tcp-fast-open-tls-false-start-and-tls-1-3/#0ODjLsVbVq2W3FyD.97)" +16378 area-Infrastructure [ARM/CI] Enable manual CI triggering for arm and armel 1. Enable following manual CI triggering for `arm` and `armel`. innerloop Ubuntu arm Release Cross Build innerloop Ubuntu arm Debug Cross Build innerloop Ubuntu16.04 arm Release Cross Build innerloop Ubuntu16.04 arm Debug Cross Build innerloop Tizen armel Release Cross Build innerloop Tizen armel Debug Cross Build Which replaces following old style commands. innerloop linuxarmemulator HardFP Release innerloop linuxarmemulator HardFP Debug innerloop linuxarmemulator SoftFP Release innerloop linuxarmemulator SoftFP Debug 2. Prepare `bin/build.tar.gz` correctly to run unit tests in coreclr CI for `arm` and `armel`. Before netci.groovy made old-fashioned `build.tar.gz`. 3. Add some options to arm32 CI script. 4. Rename scripts/arm32_ci_script.sh to cross/arm32_ci_script.sh Related issues: https://github.com/dotnet/core-setup/issues/790 +16379 area-System.Net The HttpClient send request via HTTP/2 throw a exception "On Ubuntu 14.04 my curl version is: ``` c# curl 7.53.0 (x86_64-pc-linux-gnu) libcurl/7.53.0 OpenSSL/1.0.1f zlib/1.2.8 nghttp2/1.20.0-DEV librtmp/2.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy ``` And I send a request to HTTP/2 web, I receive this: ``` c# ubuntu@ip-172-168-10-232:~$ curl --http2 -I https://http2.akamai.com/ HTTP/2 200 server: Apache etag: ""5e9139516a4f3d7a27577441623ca90d:1465962509"" last-modified: Wed, 15 Jun 2016 03:48:29 GMT accept-ranges: bytes content-length: 11384 push: true rtt: 159 ghost_ip: 23.201.177.105 ghost_service_ip: 2.18.214.61 client_real_ip: 52.80.17.185 client_ip: 52.80.17.185 myproto: h2 protocol_negotiation: h2 cache-control: max-age=43200 expires: Wed, 22 Feb 2017 23:45:37 GMT date: Wed, 22 Feb 2017 11:45:37 GMT content-type: textml;charset=UTF-8 accept-ch: DPR, Width, Viewport-Width, Downlink, Save-Data access-control-max-age: 86400 access-control-allow-credentials: false access-control-allow-headers: * access-control-allow-methods: GET,HEAD,POST access-control-allow-origin: * strict-transport-security: max-age=31536000 ; includeSubDomains ``` But when I use HttpClient send this request, the program throw a exception: ```c# Unhandled Exception: System.Net.Http.HttpRequestException: The server returned an invalid or unrecognized response. at System.Net.Http.CurlResponseHeaderReader.ReadStatusLine(HttpResponseMessage response) at System.Net.Http.CurlHandler.MultiAgent.CurlReceiveHeadersCallback(IntPtr buffer, UInt64 size, UInt64 nitems, IntPtr context) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at ConsoleApp2.Program.Main(String[] args) ``` My `Microsoft.NETCore.App` version is `1.1.0` And my code like this: ```c# using System; using System.Net.Http; namespace ConsoleApp2 { public class Program { public static void Main(string[] args) { var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, ""https://http2.akamai.com/""); request.Version = Version.Parse(""2.0""); var response = client.SendAsync(request).ConfigureAwait(false).GetAwaiter().GetResult(); Console.WriteLine(response.Version.ToString()); Console.ReadLine(); } } } ``` What's the problem?" +16383 area-System.Reflection Make System.Reflection.Metadata writer's table sorting stable again Adding tracking issue for https://github.com/dotnet/corefx/pull/15366#discussion_r101688962 Indeed, there should be tests added because this is easy to miss (as I did in the WIP commit that became part of @davidwrighton's PR). @tmat Will this break Roslyn's determinism as-is? +16384 area-Infrastructure Add documentation steps for building corefx for a new architecture Also removes workaround added for in https://github.com/dotnet/corefx/pull/16139. Fixes https://github.com/dotnet/corefx/issues/15503 cc @gkhanna79 @hseok-oh @jyoungyun @hqueue +16385 area-System.Net Refactor HTTP DiagnosticSource logging (part1 continued) This change addresses post-review comments for PR #15971: 1. new `DiagnosticListener.IsEnabled()` API is used to very efficiently determine if there is a subscriber to HttpDiagnoticListener and enable diagnostics. 2. Exceptions are sent in a separate event `System.Net.Http.Exception`, and `System.Net.Http.Response` is still fired for all requests (successful, faulted and cancelled) 3. Events documentation concerns will be addressed in next part (with Activity implementation) /cc @stephentoub @vancem @avanderhoorn @nbilling @cwe1ss @karolz-ms @SergeyKanzhelev @brahmnes +16386 area-System.Reflection Stabilize custom OrderBy implementation - Changes for System.Private.Reflection.Metadata.Ecma335 broke stability of the OrderBy helper method - Replace with a stable sort based on Array.Sort - Also, minor tweak to the Environment.ProcessorCount property to be more concise +16388 area-Infrastructure Move Microsoft Symbol Server publish to DotNet-Trusted-Publish build leg "Uses a BuildTools target (https://github.com/dotnet/buildtools/pull/1333) to submit Windows symbols to the Microsoft Symbol Server using the symbol packages produced in the build legs. Currently configured to archive if the built branch starts with `release/`. The diffs are messy because of the moves and changes. This is what I changed in the Windows builds: * ""Publish symbols path"" renamed ""Index symbol file sources"". I cleared out the path, so instead of publishing the symbols during the Windows builds, they're just source-indexed. Unfortunately this happens after the binaries have already been packaged--we should fix this, probably by making the package build an independent step so source indexing can run in between. * I removed ""Index symbols on http:\/\/symweb"": this is what's replaced by the new targets. @gkhanna79 @wtgodbe I'll need to make these changes manually to the CoreCLR live master build definitions. FYI @MichaelSimons " +16389 area-System.Reflection Add System.Private.Reflection.Metadata.Ecma335 to uapaot package +16393 area-System.Net Http request instrumentation with Activity (correlation part2) This change implements instrumentation for http requests with new [System.Diagnostics.Activity](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/ActivityUserGuide.md) API. Activity provides diagnostics context for current operation. - It introduces new events: `System.Net.Http.Activity.Start` and `System.Net.Http.Activity.Stop`. - It implements header propagation for operation context. [Http Protocol proposal](https://github.com/lmolkova/correlation/blob/master/http_protocol_proposal_v1.md) Instrumentation is documented in the [guide](https://github.com/lmolkova/corefx/blob/dev/http_client_activity_part2/src/System.Net.Http/src/HttpDiagnosticsGuide.md) included into this PR. +16394 area-Infrastructure Setting up ILCInputFolder that will be passed in to the ilc.exe that gets restored in order to run tests on uapaot cc: @weshaggard @ericstj @MattGal This PR produces a folder in `bin/testhost/$(Configuration)/ILCInputFolder` that will contain all of the assets required to call the ilc.exe command from the RunTests.cmd script and that will later on be used to run the tests. Once this is merged, I'll work on the piece of actually modifying that RunTests.cmd to actually call the ilc.exe command and to execute the tests. FYI: @morganbr @joshfree @danmosemsft +16396 area-System.Data Support Dedicated Administrator Connection in SqlClient Repro: 1. install SQL Server. I installed SQL Server vNext CTP 1.3 on Ubuntu 16.10 for this repro. 2. enable remote admin connections for your SQL Server per [MSDN documentation](https://msdn.microsoft.com/en-us/library/ms190468.aspx) 3. unzip [dactest.zip](https://github.com/dotnet/corefx/files/795340/dactest.zip) on a computer with .NET Core installed. Again, I used Ubuntu 16.10 for this repro. 4. update username & password in Program.cs as appropriate 5. run: dotnet restore 6. run: dotnet run Result: receive the exception below: System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 8 - Protocol not supported) +16397 area-System.Runtime Enable BinaryFormatter on uapaot Enable building BinaryFormatter for uapaot. Since this assembly builds against contracts, no other CoreFX changes are required at this point (but there will be some CoreRT changes to make it functional). +16399 area-System.Numerics Improve System.Numerics.Matrix* hash codes Currently, the fields' hash codes are simply added: https://github.com/dotnet/corefx/blob/master/src/System.Numerics.Vectors/src/System/Numerics/Matrix4x4.cs#L2209-L2212, https://github.com/dotnet/corefx/blob/master/src/System.Numerics.Vectors/src/System/Numerics/Matrix3x2.cs#L805-L807. It seems like it would be better to change this to use [`HashHelpers.Combine()`](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Numerics/Hashing/HashHelpers.cs#L11). +16400 area-System.Diagnostics "Test System.Diagnostics.Tests.ProcessTests.TestProcessStartTime failed with ""Xunit.Sdk.EqualException"" in 1. OuterLoop_Fedora23_release" Configuration: OuterLoop_Fedora23_release ([Build#112](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora23_release/112/testReport/)), Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora23_release/112/testReport/System.Diagnostics.Tests/ProcessTests/TestProcessStartTime/ Message: ~~~ Assert.Equal() Failure\nExpected: 42\nActual: 145 ~~~ Stack Trace: ~~~ /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_release/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs(170,0): at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_release/src/System.Diagnostics.Process/tests/ProcessTests.cs(417,0): at System.Diagnostics.Tests.ProcessTests.TestProcessStartTime() ~~~ +16401 area-System.Net "Test ""System.Net.NetworkInformation.Tests.PingTest.SendAsyncs_ReuseInstance_Hostname"" failed with ""Xunit.Sdk.EqualException"" in OuterLoop_Ubuntu16.04_debug" Configuration: OuterLoop_Ubuntu16.04_debug ([build#109](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_ubuntu16.04_debug/109/testReport/)). Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_ubuntu16.04_debug/109/testReport/ Message: ~~~ Assert.True() Failure\nExpected: True\nActual: False ~~~ Stack trace: ~~~ at System.Net.NetworkInformation.Tests.PingTest.d__17.MoveNext() in /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.04_debug/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs:line 402 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +16402 area-System.ComponentModel Please add portable apps in System.ComponentModel.Annotations package "Hi, I'm working on a portable app (Droid, iOS and UWP), and I'm trying to add the package [System.ComponentModel.Annotations](https://www.nuget.org/packages/System.ComponentModel.Annotations). Apparently, .NET Portable is not supported by that package. Please add .NET Portable as a target in the System.ComponentModel.Annotations package. " +16403 area-System.Memory System.Memory tests don't run on Linux "Repo: Run ```../../../Tools/msbuild.sh System.Memory.Tests.csproj /t:RebuildAndTest``` on Linux (e.g. Ubuntu 16.04 LTS) Expected: System.Memory tests to run Actual: ``` CheckTestPlatforms: Skipping tests in System.Memory.Tests because there is no configuration compatible with the current BuildConfiguration. GenerateTestExecutionScripts: Generating /home/dennisdietrich/Repos/corefx/bin/TestDependencies/System.Memory.Tests-.dependencylist.txt Test Command lines = $RUNTIME_PATH/dotnet xunit.console.netcore.exe System.Memory.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapp1.1tests -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests Wrote .sh test execution script to /home/dennisdietrich/Repos/corefx/bin/AnyOS.AnyCPU.Debug/System.Memory.Tests/netcoreapp/RunTests.sh Done Building Project ""/home/dennisdietrich/Repos/corefx/src/System.Memory/tests/System.Memory.Tests.csproj"" (RebuildAndTest target(s)). ```" +16404 area-System.Net Cannot find SslStream in System.Net.Security 4.3.0 "I've added the following to my project.json: > ""System.Net.Security"": ""4.3.0.0"" And yet I get this error on compile. > SslStream does not exist in the namespace System.Net.Security What am I doing wrong? To reproduce this please download the [FluentFTP repo ](https://github.com/hgupta9/FluentFTP/)and open this xproj to build for .NET core. The error occurs on [this line](https://github.com/hgupta9/FluentFTP/blob/master/FluentFTP/FtpSocketStream.cs#L200)." +16405 area-System.Runtime DateTime.UtcNow is not good enough for high precision durations in DiagnosticSource.Activity /cc @lmolkova @vancem The new Activity class uses `DateTime.UtcNow` to [calculate the duration of an activity](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/Activity.cs#L293). However depending on the system, [the precision of DateTime might be at ~ 15ms](https://blogs.msdn.microsoft.com/ericlippert/2010/04/08/precision-and-accuracy-of-datetime/). I don't think this is precise enough for server scenarios. In my OpenTracing instrumentation, I'm currently using a [combination of DateTime + Stopwatch](https://github.com/cwe1ss/opentracing-contrib-dotnet/blob/master/src/OpenTracing.Tracer.Abstractions/HighResClock.cs) to overcome this issue. My code isn't in production yet though, so I'm not sure if this has any drawbacks. +16409 area-System.IO DirectoryInfo doesn't refresh state after Create (Unix) "Example: ```csharp var di = new DirectoryInfo($""/tmp/test-{Guid.NewGuid()}""); if (!di.Exists) di.Create(); Console.WriteLine(di.CreationTimeUtc); Console.WriteLine(di.LastWriteTimeUtc); ``` The code above fails, because it complains that the file doesn't exist. EDIT: This works in .NET Framework" +16410 area-Infrastructure Reenable MyGet package publishing In https://github.com/dotnet/corefx/pull/16388, I accidentally disabled package publishing to MyGet. It was hard to spot because adding the `Submit symbol server request` step made the diff unclear. This hasn't affected a build yet, because none has made it to this point in the build since I merged that PR. +16414 area-System.Runtime Expose IsReferenceOrContainsReferences in System.Runtime contract Fixes #14047 +16416 area-System.Memory Fixed overflows in System.Span Several overflows in System.Span that were missed when turning on overflow checks for Debug. Fix #16298 +16417 area-System.Runtime Proposal: Add Named Arguments String.Format Overloads "String interpolation has proven to be an extremely useful feature in `C#6` but sometimes I find myself needing the string format to be configurable and as such am not able to use string interpolation as it requires the format to be evaluated at compile time. I propose the addition of `String.Format` overloads that will allow users to use named arguments instead of argument indexes similar in appearance to string interpolation. ## Rationale and Usage With this implemented what used to be this ```cs string logFormat = ConfigurationManager.AppSettings[""logFormat""]; // ""{0:yyyy/MM/dd HH:mm:ss} - {1} ({2}): {3}"" DateTime time = DateTime.Now; LogLevel logLevel = LogLevel.Error; string userId = ""admin""; string message = ""Poor error message""; string logLine = string.Format(logFormat, time, logLevel, userId, message); ``` can now become this ```cs string logFormat = ConfigurationManager.AppSettings[""logFormat""]; // ""{time:yyyy/MM/dd HH:mm:ss} - {logLevel} ({userId}): {message}"" var dictionary = new Dictionary { { ""time"", DateTime.Now }, { ""logLevel"", LogLevel.Error }, { ""userId"", ""admin"" }, { ""message"", ""Poor error message"" } }; string logLine = string.Format(logFormat, dictionary); ``` which will be much easier to understand and maintain in configuration. An additional use case for this is as the basis for a basic text templating system where the values can be dynamically retrieved using the `Func` overload. ## Proposed API ```diff namespace System { public class String { + public static string Format(string format, Func valueProvider); + public static string Format(string format, IDictionary valueProvider); } } ``` ## Details * The implementation would simply be a wrapper around the original `string.Format` but replace named arguments with indices. * An `Ordinal` string comparison will be used to determine reuse of named arguments. * The `IDictionary` overload will use its `TryGetValue` method for retrieving the value. * A `FormatException` is thrown when a value for a named argument cannot be found. ## Updates * Changed `valueProvider` from a `Func` to a `Func` to support specifying if the named argument was found. * Changed example to explicitly show retrieving the `logFormat` value from configuration. * Added the templating system use case." +16418 area-System.Runtime Add RIDless build configuration for S.R.IS.RuntimeInformation This AnyOS netstandard1.1 configuration is for PCL support so we ensure we have an asset that isn't in a runtime folder in the package which PCL's and packages.config don't support. Fixes https://github.com/dotnet/corefx/issues/15288. cc @ericstj +16419 area-System.Net Null ref exception in Abort_CloseAndAbort_Success test on Windows in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/112/consoleText ``` System.Net.WebSockets.Client.Tests.AbortTest.Abort_CloseAndAbort_Success(server: wss://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx) [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: D:\j\workspace\code_coverage---b14a30e5\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WinHttpWebSocketState.cs(275,0): at System.Net.WebSockets.WinHttpWebSocketState.Dispose(Boolean disposing) D:\j\workspace\code_coverage---b14a30e5\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WinHttpWebSocketState.cs(288,0): at System.Net.WebSockets.WinHttpWebSocketState.Dispose() D:\j\workspace\code_coverage---b14a30e5\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WinHttpWebSocket.cs(740,0): at System.Net.WebSockets.WinHttpWebSocket.Dispose() D:\j\workspace\code_coverage---b14a30e5\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WinHttpWebSocket.cs(764,0): at System.Net.WebSockets.WinHttpWebSocket.Abort() D:\j\workspace\code_coverage---b14a30e5\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Windows.cs(116,0): at System.Net.WebSockets.WebSocketHandle.Abort() D:\j\workspace\code_coverage---b14a30e5\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\ClientWebSocket.cs(197,0): at System.Net.WebSockets.ClientWebSocket.Abort() D:\j\workspace\code_coverage---b14a30e5\src\System.Net.WebSockets.Client\tests\AbortTest.cs(103,0): at System.Net.WebSockets.Client.Tests.AbortTest.<>c.<b__4_0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\code_coverage---b14a30e5\src\System.Net.WebSockets.Client\tests\ClientWebSocketTestBase.cs(60,0): at System.Net.WebSockets.Client.Tests.ClientWebSocketTestBase.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() D:\j\workspace\code_coverage---b14a30e5\src\System.Net.WebSockets.Client\tests\AbortTest.cs(89,0): at System.Net.WebSockets.Client.Tests.AbortTest.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() ``` +16421 area-System.Data System.Data.SqlClient.Tests.DiagnosticTest.ConnectionOpenTest fails on some CI runs example: https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/3795/ ``` System.Data.SqlClient.Tests.DiagnosticTest.ConnectionOpenTest [FAIL] Timed out after 60000ms waiting for remote process 4644 Expected: True Actual: False Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\Common\tests\System\Diagnostics\RemoteExecutorTestBase.cs(170,0): at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() ``` +16422 area-System.IO System.IO.FileSystem isn't building correctly for uap The uap configuration is using the Win32 code paths because EnsureWinRT isn't set to true. We either need to make the WinRT code path build again or remove it if we are going to move it to Win32. cc @JeremyKuhne @joperezr +16426 area-System.Runtime Fix FormatterServices.GetUninitializedObject allows allocating byref-like objects Add regression test for https://github.com/dotnet/coreclr/issues/9739 +16427 area-Infrastructure Deployment Projects don't take architecture into account This isn't causing trouble right now, but was something I noticed in the course of other investigations. On a machine building multiple different verticals without cleaning, this could cause clashes / mismatches. If you review a build log where this happens, you see stuff like: ` E:\A\_work\89\s\corefx\packages\runtime.win7-x86.Microsoft.NETCore.Runtime.CoreCLR\2.0.0-beta-25021-03\runtimes\win7-x86\native\sos.dll (runtime.win7-x86.Microsoft.NETCore.Runtime.CoreCLR.2.0.0-beta-25021-03) -> E:\A\_work\89\s\corefx\bin\Windows_NT.AnyCPU.Debug\runtime\netcoreapp\sos.dll` but, we use the same output path for x64 as well. It would be useful for this to take into consideration the Arch of what's being copied when generating layouts like this. +16428 area-System.Numerics Add support for Acosh, Asin, Atanh, and Cbrt to System.Math and System.MathF ### Rationale The .NET framework does not currently provide support for several of the mathematical functions that are available to the C/C++ Standard Library. Support should be provided for these mathematical functions in order to better interop with high-performance, scientific, and multimedia-based applications where these functions may be in demand. Several of these functions, such as `ExpM1`, may be more accurate or may return values for inputs outside the range of the corresponding code written manually (`EXP(x) - 1`). ### Approved API ```C# public static partial class Math { // Hyperbolic Functions public static double Acosh(double); // Compute area hyperbolic cosine public static double Asinh(double); // Compute area hyperbolic sine public static double Atanh(double); // Compute area hyperbolic tangent // Power Functions public static double Cbrt(double); // Compute cubic root } public static partial class MathF { // Hyperbolic Functions public static float Acosh(float); // Compute area hyperbolic cosine public static float Asinh(float); // Compute area hyperbolic sine public static float Atanh(float); // Compute area hyperbolic tangent // Power Functions public static float Cbrt(float); // Compute cubic root } ``` ### Unapproved APIs The following APIs were also reviewed but rejected at this time. The discussion ended up that these would likely be better suited in a `MathExtensions` or similar class provided through a separate library (and likely implemented using the hardware intrinsics functionality rather than as FCALLs in the runtime). ``` C# public static partial class Math { // Exponential Functions public static double Exp2(double); // Compute binary exponential public static double ExpM1(double); // Compute exponential minus one // Logarithmic Functions public static double Log1P(double); // Compute logarithm plus one public static double Log2(double); // Compute binary logarithm // Power Functions public static double Hypot(double, double); // Compute hypotenuse } public static partial class MathF { // Exponential Functions public static float Exp2(float); // Compute binary exponential public static float ExpM1(float); // Compute exponential minus one // Logarithmic Functions public static float Log1P(float); // Compute logarithm plus one public static float Log2(float); // Compute binary logarithm // Power Functions public static float Hypot(float, float); // Compute hypotenuse } ``` ### Additional Details This will require several changes in the CoreCLR as well to support the new APIs via FCALLs and Intrinsics. +16430 area-System.Data Failure in System.Data.SqlClient.Tests.DiagnosticTest.ExecuteNonQueryErrorTest ``` Stacktrace MESSAGE: Timed out after 60000ms waiting for remote process 7172\r\nExpected: True\r\nActual: False +++++++++++++++++++ STACK TRACE: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in D:\j\workspace\outerloop_win---097a300f\src\Common\tests\System\Diagnostics\RemoteExecutorTestBase.cs:line 176 at System.Data.SqlClient.Tests.DiagnosticTest.ExecuteNonQueryErrorTest() in D:\j\workspace\outerloop_win---097a300f\src\System.Data.SqlClient\tests\FunctionalTests\DiagnosticTest.cs:line 95 ``` +16431 area-Infrastructure Binplace package file list /cc @weshaggard @chcosta @joperezr This switches binplacing for packaging to use file lists rather than copies. +16432 area-System.Net Cannot find System.Net.Dns in System.Net.NameResolution "I've added the following to my project.json: > ""System.Net.NameResolution"": ""4.3.0.0"", And yet I get this error on compile. > The name 'Dns' does not exist in the current context What am I doing wrong? To reproduce this please download the [FluentFTP repo ](https://github.com/hgupta9/FluentFTP/)and open the [FluentFTP_Core.sln ](https://github.com/hgupta9/FluentFTP/blob/master/FluentFTP/FluentFTP_Core.sln) to build for .NET core. The error occurs on [this line](https://github.com/hgupta9/FluentFTP/blob/master/FluentFTP/FtpSocketStream.cs#L587)." +16433 area-Microsoft.CSharp Test failure: ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.lambda017.lambda017.Test/DynamicCSharpRunTest Opened on behalf of @Jiayili1 The test `ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.lambda017.lambda017.Test/DynamicCSharpRunTest` has failed. System.Diagnostics.Debug+DebugAssertException : at System.Environment.get_StackTrace() at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Assert(Boolean condition) at Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager.GetAggregate(AggregateSymbol agg, AggregateType atsOuter, TypeArray typeArgs) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Types/TypeManager.cs:line 289 at Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager.GetAggregate(AggregateSymbol agg, TypeArray typeArgsAll) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Types/TypeManager.cs:line 304 at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetConstructedType(Type type, AggregateSymbol agg) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/SymbolTable.cs:line 812 at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/SymbolTable.cs:line 751 at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetCTypeFromType(Type t) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/SymbolTable.cs:line 995 at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.PopulateLocalScope(DynamicMetaObjectBinder payload, Scope pScope, ArgumentObject[] arguments, IEnumerable`1 parameterExpressions, Dictionary`2 dictionary) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/RuntimeBinder.cs:line 735 at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.BindCore(DynamicMetaObjectBinder payload, IEnumerable`1 parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/RuntimeBinder.cs:line 233 at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.Bind(DynamicMetaObjectBinder payload, IEnumerable`1 parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/RuntimeBinder.cs:line 170 at Microsoft.CSharp.RuntimeBinder.BinderHelper.Bind(DynamicMetaObjectBinder action, RuntimeBinder binder, DynamicMetaObject[] args, IEnumerable`1 arginfos, DynamicMetaObject onBindingError) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/BinderHelper.cs:line 97 at Microsoft.CSharp.RuntimeBinder.CSharpInvokeBinder.FallbackInvoke(DynamicMetaObject target, DynamicMetaObject[] args, DynamicMetaObject errorSuggestion) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/CSharpInvokeBinder.cs:line 69 at System.Dynamic.InvokeBinder.FallbackInvoke(DynamicMetaObject target, DynamicMetaObject[] args) in /root/corefx/src/System.Linq.Expressions/src/System/Dynamic/InvokeBinder.cs:line 42 at System.Dynamic.DynamicMetaObject.BindInvoke(InvokeBinder binder, DynamicMetaObject[] args) in /root/corefx/src/System.Linq.Expressions/src/System/Dynamic/DynamicMetaObject.cs:line 205 at System.Dynamic.InvokeBinder.Bind(DynamicMetaObject target, DynamicMetaObject[] args) in /root/corefx/src/System.Linq.Expressions/src/System/Dynamic/InvokeBinder.cs:line 65 at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[] args, ReadOnlyCollection`1 parameters, LabelTarget returnLabel) in /root/corefx/src/System.Linq.Expressions/src/System/Dynamic/DynamicMetaObjectBinder.cs:line 90 at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args) in /root/corefx/src/System.Linq.Expressions/src/System/Runtime/CompilerServices/CallSiteBinder.cs:line 129 at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) in /root/corefx/src/System.Linq.Expressions/src/System/Dynamic/UpdateDelegates.Generated.cs:line 401 at ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.lambda017.lambda017.Test.MainMethod(String[] args) in /root/corefx/src/System.Dynamic.Runtime/tests/Dynamic.DynamicType/Conformance.dynamic.dynamicType.basic.cs:line 4631 at ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.lambda017.lambda017.Test.DynamicCSharpRunTest() in /root/corefx/src/System.Dynamic.Runtime/tests/Dynamic.DynamicType/Conformance.dynamic.dynamicType.basic.cs:line 4619 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.b__45_0() at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) at Xunit.Sdk.TestRunner`1.d__43.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestRunner`1.RunAsync() at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCaseRunner`1.RunAsync() at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestMethodRunner`1.RunAsync() at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestClassRunner`1.RunAsync() at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCollectionRunner`1.RunAsync() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntry() at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) Stack Trace: at System.Diagnostics.Debug.UnixDebugLogger.ShowAssertDialog(String stackTrace, String message, String detailMessage) at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Assert(Boolean condition) at Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager.GetAggregate(AggregateSymbol agg, AggregateType atsOuter, TypeArray typeArgs) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Types/TypeManager.cs:line 289 at Microsoft.CSharp.RuntimeBinder.Semantics.TypeManager.GetAggregate(AggregateSymbol agg, TypeArray typeArgsAll) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/Semantics/Types/TypeManager.cs:line 304 at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetConstructedType(Type type, AggregateSymbol agg) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/SymbolTable.cs:line 812 at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/SymbolTable.cs:line 751 at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetCTypeFromType(Type t) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/SymbolTable.cs:line 995 at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.PopulateLocalScope(DynamicMetaObjectBinder payload, Scope pScope, ArgumentObject[] arguments, IEnumerable`1 parameterExpressions, Dictionary`2 dictionary) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/RuntimeBinder.cs:line 735 at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.BindCore(DynamicMetaObjectBinder payload, IEnumerable`1 parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/RuntimeBinder.cs:line 233 at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.Bind(DynamicMetaObjectBinder payload, IEnumerable`1 parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/RuntimeBinder.cs:line 170 at Microsoft.CSharp.RuntimeBinder.BinderHelper.Bind(DynamicMetaObjectBinder action, RuntimeBinder binder, DynamicMetaObject[] args, IEnumerable`1 arginfos, DynamicMetaObject onBindingError) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/BinderHelper.cs:line 97 at Microsoft.CSharp.RuntimeBinder.CSharpInvokeBinder.FallbackInvoke(DynamicMetaObject target, DynamicMetaObject[] args, DynamicMetaObject errorSuggestion) in /root/corefx/src/Microsoft.CSharp/src/Microsoft/CSharp/RuntimeBinder/CSharpInvokeBinder.cs:line 69 at System.Dynamic.InvokeBinder.FallbackInvoke(DynamicMetaObject target, DynamicMetaObject[] args) in /root/corefx/src/System.Linq.Expressions/src/System/Dynamic/InvokeBinder.cs:line 42 at System.Dynamic.DynamicMetaObject.BindInvoke(InvokeBinder binder, DynamicMetaObject[] args) in /root/corefx/src/System.Linq.Expressions/src/System/Dynamic/DynamicMetaObject.cs:line 205 at System.Dynamic.InvokeBinder.Bind(DynamicMetaObject target, DynamicMetaObject[] args) in /root/corefx/src/System.Linq.Expressions/src/System/Dynamic/InvokeBinder.cs:line 65 at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[] args, ReadOnlyCollection`1 parameters, LabelTarget returnLabel) in /root/corefx/src/System.Linq.Expressions/src/System/Dynamic/DynamicMetaObjectBinder.cs:line 90 at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args) in /root/corefx/src/System.Linq.Expressions/src/System/Runtime/CompilerServices/CallSiteBinder.cs:line 129 at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) in /root/corefx/src/System.Linq.Expressions/src/System/Dynamic/UpdateDelegates.Generated.cs:line 401 at ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.lambda017.lambda017.Test.MainMethod(String[] args) in /root/corefx/src/System.Dynamic.Runtime/tests/Dynamic.DynamicType/Conformance.dynamic.dynamicType.basic.cs:line 4631 at ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.lambda017.lambda017.Test.DynamicCSharpRunTest() in /root/corefx/src/System.Dynamic.Runtime/tests/Dynamic.DynamicType/Conformance.dynamic.dynamicType.basic.cs:line 4619 Build : Master - 20170224.01 (Core Tests) Failing configurations: - Redhat.72.Amd64 - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170224.01/workItem/System.Dynamic.Runtime.Tests/analysis/xunit/ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.basic.lambda017.lambda017.Test~2FDynamicCSharpRunTest +16435 area-Microsoft.CSharp Bring back paths blocked by UNSUPPORTEDAPI in Microsoft.CSharp The methods these paths use are all available again, and all have coverage from tests between the three test projects that hit MS.CSharp Fixes #16041 Bring them back except… Since this makes `HasSameMetadataDefinitionAs` calls now equivalent to the `UNSUPPORTEDAPI` code it is a substitute for, just keep it and remove the `UNSUPPORTEDAPI` code at those locations. `s_MemberEquivalence` delegate is now dead code. Remove it. +16439 area-System.Data Memory leak in System.Data.Common.DbCommand "DbCommand has memory leaks in ExecuteNonQueryAsync and ExecuteDbDataReaderAsync methods. They dispose CancellationTokenRegistration in ""catch"" instead of ""finally"" block: ```c# public virtual Task ExecuteNonQueryAsync(CancellationToken cancellationToken) { if (cancellationToken.IsCancellationRequested) return ADP.CreatedTaskWithCancellation(); CancellationTokenRegistration tokenRegistration = new CancellationTokenRegistration(); if (cancellationToken.CanBeCanceled) tokenRegistration = cancellationToken.Register(new Action(this.CancelIgnoreFailure)); try { return Task.FromResult(this.ExecuteNonQuery()); } catch (Exception ex) { tokenRegistration.Dispose(); return ADP.CreatedTaskWithException(ex); } } ``` but must be: ```c# public virtual Task ExecuteNonQueryAsync(CancellationToken cancellationToken) { if (cancellationToken.IsCancellationRequested) return ADP.CreatedTaskWithCancellation(); CancellationTokenRegistration tokenRegistration = new CancellationTokenRegistration(); if (cancellationToken.CanBeCanceled) tokenRegistration = cancellationToken.Register(new Action(this.CancelIgnoreFailure)); try { return Task.FromResult(this.ExecuteNonQuery()); } catch (Exception ex) { return ADP.CreatedTaskWithException(ex); } finally { tokenRegistration.Dispose(); } } ```" +16440 area-Infrastructure Use run.cmd in publish build leg "Remove old ""shared"" sync implementation and use sync.cmd (using init-tools and msbuild directly skipped the Tools-Override copy and used the wrong task DLLs), and remove UpdatePublishedVersions.ps1." +16441 area-Meta Publish missing source code to ReferenceSource ReferenceSource: https://github.com/Microsoft/referencesource/tree/master/ has missing source code (mostly internal types). We should publish them. * #14529 - [System.Runtime.Caching](https://github.com/Microsoft/referencesource/tree/master/System.Runtime.Caching/System/Caching) (UsageEntryRef, CacheUsage, ExpiresEntryRef, CacheExpires) +16443 area-System.Security Fix a 512 vs 521 typo in ECDSA keysize assert. Once Keychain enumeration was working locally it was observed that a NIST-P521 certificate calling GetECDsaPublicKey() was asserting. This should already have been caught by the tests, but key generation was disabled due to perf and keychain contamination. +16445 area-System.Security Initial implementation of X509Certificates, HttpClient, and SslStream for macOS Broken by this change: * A lot of TLS CipherSuites have no metadata defined. * macOS does not support version skipping in TLS. So `Tls | Tls12` is an invalid choice. In this change: General: * All OSStatus related exceptions now look up the error message. X509Certificates: * X509Certificate moves to using SecCertificateRef from OpenSSL's X509. * X509 metadata comes from a managed reader after being loaded by Security.framework, due to the significant amount of data that has no public export in Apple's libraries. * Significant code was factored out to be shared by OpenSSL and Apple implementations for X500DistinguishedName and X509Certficate2Collection.Find. * Loading a PFX (or, rather, the private keys from a PFX) via Apple's platform requires importing into a Keychain, and a Keychain requires a file on disk. A temporary keychain is created during cert loading and erased when safe. Like the perphemeral key load on Windows this can leak files due to abnormal program termination. * The X.509 My store for CurrentUser and LocalMachine are the default (user) and System keychains. * The X.509 Root store is an interpretation of the Apple SecTrustSettings data. * The X.509 Disallowed store hasn't been implemented yet, but should be a very small change. * Other X.509 stores cannot be created due to keychain complexity. HttpClient: * Initialization no longer wakes up OpenSSL SslStream: * New implementation based on Apple SecureTransport. * Currently has support for SNI (for AuthenticateAsClient) +16447 area-Infrastructure [release/1.1.0] Inbox value tuple Require buildtools update to build w/o validation errors. https://github.com/dotnet/buildtools/pull/1348 Fixes: #14235 /cc @jcouv @marek-safar @weshaggard +16448 area-System.Diagnostics [API Proposal] Debug.Assert overloads taking bool? "## Motivation For me, it's very frequent to assert something is non-null in a `Debug.Assert`. It is also frequent for me to verify some properties about that thing after asserting it is non-null. For example, if one wants to do a typical validation of array/index/count parameters, you would do ```cs Foo(T[] array, int index, int count) { Debug.Assert(array != null); Debug.Assert(index >= 0 && count >= 0); Debug.Assert(array.Length - index >= count); } ``` Here, we are first asserting the array is non-null and then asserting that there's enough room for `count` using the array's `Length` property. Usually, I like to take advantage of null-conditionals to condense these kinds of asserts: ```cs Foo(T[] array, int index, int count) { Debug.Assert(index >= 0 && count >= 0); Debug.Assert(array?.Length - index >= count); } ``` This works because `>=` in the second assert does a lifted comparison and returns false if the left side is `null`. Its result is a `bool`, which can be passed to `Debug.Assert` with no problems. In the following example, however, the assert fails to compile: ```cs void ReadingOperation(Stream stream) { Debug.Assert(stream?.CanRead); } ``` `stream?.CanRead` returns a `bool?`, which `Debug.Assert` does not know how to handle. This means the user has to have two asserts, one for asserting the stream is non-null and another for asserting it `CanRead`. ## Proposal Add overloads of `Debug.Assert` accepting a `bool?`. `null` values will be treated as `false`. ```cs namespace System.Diagnostics { public static class Debug { [Conditional(""DEBUG"")] public static void Assert(bool? condition); [Conditional(""DEBUG"")] public static void Assert(bool? condition, string message); [Conditional(""DEBUG"")] public static void Assert(bool? condition, string message, string detailMessage); [Conditional(""DEBUG"")] public static void Assert(bool? condition, string message, string detailMessageFormat, params object[] args); } } ``` I don't know what the last two overloads do since I've never used them before, but I added them for the sake of completion. If they have to be removed from the proposal that's fine with me. ## Implementation ```cs [Conditional(""DEBUG"")] public static void Assert(bool? condition) => Assert(condition.GetValueOrDefault()); ``` ## Additional notes xUnit already has `Assert.True` and `Assert.False` overloads that take nullable booleans. See here: https://github.com/xunit/assert.xunit/blob/master/BooleanAsserts.cs#L70" +16449 area-System.IO Cleanup File Lock/Unlock OSX tests. Adds/modifies tests for FileStream lock/unlock after https://github.com/dotnet/coreclr/pull/9769. +16450 area-System.Net Activate/Deactivate tests according to issue status. cc @steveharter @danmosemsft @karelz fixes #13323 #12535 #12637 +16451 area-Microsoft.CSharp Remove Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder.EnsureChecked() All uses were removed in #16328 but its deletion was missed. +16452 area-System.Data Failure in System.Data.Tests.SqlTypes.SqlXmlTest.Constructor2_Stream_Null - SEHException Not much to go on here. The function at the top of the stack just sets some fields. https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/114/consoleText ``` Starting: System.Data.Common.Tests System.Data.Tests.SqlTypes.SqlXmlTest.Constructor2_Stream_Null [FAIL] System.Runtime.InteropServices.SEHException : External component has thrown an exception. Stack Trace: D:\j\workspace\code_coverage---b14a30e5\src\System.Data.Common\src\System\Data\SQLTypes\SqlXml.cs(56,0): at System.Data.SqlTypes.SqlXml..ctor(Stream value) D:\j\workspace\code_coverage---b14a30e5\src\System.Data.Common\tests\System\Data\SqlTypes\SqlXmlTest.cs(73,0): at System.Data.Tests.SqlTypes.SqlXmlTest.Constructor2_Stream_Null() Finished: System.Data.Common.Tests ``` +16453 area-System.Numerics Updating System.Numerics.Vectors to use System.MathF This should provide a decent perf gain on `netcoreapp` and `uap` where `System.MathF` is available. +16456 area-System.Net Improve Uri.UnescapeDataString codepath Work for #16040 This improvement is an initial proposal to avoid char[] allocations done in Uri.UnescapeDataString codepath specifically under UriHelper.UnescapeString. This as well reflects to be faster in a local mini-test I wrote [source code here](https://github.com/safern/mini-test/) -- and also saw some improvements in inclusive and exclusive time in an asp.net test scenario which you can find [here](https://github.com/aspnet/Performance/tree/dev/testapp/BigModelBinding). The main improvements is that now I'm not seeing any char[] allocations in the GC Heap in any of the scenarios coming from the Uri.UnescapeDataString codepath and a little improvement in execution time. ## Here is the mini-test I wrote PerfView traces result: ### CPU Stacks > Before My Changes ![image](https://cloud.githubusercontent.com/assets/22899328/23326754/5de2b656-fab6-11e6-9552-fc0118bacc84.png) > After My Changes ![image](https://cloud.githubusercontent.com/assets/22899328/23326750/46e19846-fab6-11e6-966b-c30743aa4688.png) In this test scenario we can see that there is a bigger difference inclusive and exclusive time spent in `Uri.UnescapeDataString` ### GC Heap > Before My Changes ![image](https://cloud.githubusercontent.com/assets/22899328/23326793/00b5f7bc-fab7-11e6-8584-b7294d7b393c.png) * Callers to `Char[]` ![image](https://cloud.githubusercontent.com/assets/22899328/23326797/214fbb0c-fab7-11e6-954e-b60ad2d2d7e4.png) > After My Changes ![image](https://cloud.githubusercontent.com/assets/22899328/23326780/cfbfad1a-fab6-11e6-9387-0c757d18c381.png) * Callers to `Char[]` ![image](https://cloud.githubusercontent.com/assets/22899328/23326805/3b30d240-fab7-11e6-8c66-a0dc08247d77.png) As we can see in this scenarios `Uri.UnescapeDataString` is allocating 0 `Char[]` and it reduced the allocations by 50% from 34,000 to 17,000. ## Here are the results for the asp.net test scenario: ### CPU Stacks > Before My Changes ![image](https://cloud.githubusercontent.com/assets/22899328/23326631/6e1c4fb6-fab4-11e6-817e-ae2ee1e57d87.png) > After My Changes ![image](https://cloud.githubusercontent.com/assets/22899328/23326605/29e8b1b8-fab4-11e6-8ac6-84e84d67d2d8.png) As we can see after the changes `Uri.UnescapeDataString` went down on both exclusive (0.4%) and inclusive (0.1%) time. ### GC Heap > Before My Changes ![image](https://cloud.githubusercontent.com/assets/22899328/23326694/527cbe52-fab5-11e6-985e-281f3b6db36d.png) * Callers to `Char[]` ![image](https://cloud.githubusercontent.com/assets/22899328/23326703/664af5fc-fab5-11e6-90f5-d8ceb188c5fb.png) > After My Changes ![image](https://cloud.githubusercontent.com/assets/22899328/23326654/c925cd9c-fab4-11e6-9d1b-c5a779ae208c.png) * Callers to `Char[]` ![image](https://cloud.githubusercontent.com/assets/22899328/23326673/0c223f7c-fab5-11e6-90da-b27b29db8de2.png) As we can see `Char[]` allocations went down 0.4% and in this particular scenario is around 7,500 less allocations when using `ArrayPool`. Also we can see on the callers that are creating this objects that if we use `ArrayPool` there is 0 `Char[]` allocations in `Uri.UnescapeDataString` Now I'm keeping the old `UriHelper.UnescapeString` code and its dependencies around because in order to delete it there is a lot of work required because it is used a lot from internal APIs. /cc @stephentoub @jkotas @danmosemsft +16458 area-System.Linq Add Enumerable.AggregateRight # Background LINQ offers a [Aggregate](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Aggregate.cs) (`foldl`) method, but it does not provide its rigth-associative version (`foldr`). ![foldr](https://cloud.githubusercontent.com/assets/11452028/23327019/ed4cefbe-fae3-11e6-92ea-63efb9ac0f75.png) # Proposal I would like to submit a PR for this, but i dont know exactly which files I must change. There is something beyond to create AggregateRight and tests? +16460 area-System.Memory Removing ref T Span.GetItem and updating Indexer to return ref Fixing issue #13681 +16463 area-System.Drawing "[Bug Suspected] ImageFormat's ""ToString"" comparation error" "Let's get started with a very simple demo: 1) Create a demo console application and referring net 4.6 framework, with the ""System.Drawing"" namespace added in. 2) Download or create a file of jpg. 3) Now let's import the file directly into the Image and do this following by: `Image img = Image.FromFile(""c:\\test.jpg""); Console.WriteLine(img.RawFormat.Equals(ImageFormat.Jpeg));` Now the answer is ""True"", and the ImageFormat's Guid for ""JPEG"" is ""{b96b3cae-0728-11d3-9d7b-0000f81ef32e}"". The same answer is also for ""Equals"". HOWEVER in ""ToString"" method, **the expected result should be ""Jpeg"" as the output. But I didn't see that, and instead the result is:** `[ImageFormat: b96b3cae-0728-11d3-9d7b-0000f81ef32e]` Now let's deeply go into the code (to here), the original source code is from: https://referencesource.microsoft.com/#System.Drawing/commonui/System/Drawing/Advanced/ImageFormat.cs,b96b3cae-0728-11d3-9d7b-0000f81ef32e,references > public override string ToString() > { > if (this == memoryBMP) return ""MemoryBMP""; > if (this == bmp) return ""Bmp""; > if (this == emf) return ""Emf""; > if (this == wmf) return ""Wmf""; > if (this == gif) return ""Gif""; > if (this == jpeg) return ""Jpeg""; > if (this == png) return ""Png""; > if (this == tiff) return ""Tiff""; > if (this == exif) return ""Exif""; > if (this == icon) return ""Icon""; > return ""[ImageFormat: "" + guid + ""]""; > } > Why do we say ""this == another type of ImageFormat"" without overridding the operator ""==""? And from this demo can we make sure that this is a bug and should be fixed? And what's more——Why not use ""if……else if……else……"" instead of multiple ""if"" here? PS:I didn't find the ImageFormat.cs yet, though I did a full research." +16464 area-System.Net Regression: Cookies are not sent in System.Net.Http 4.3.1 if set through headers "In 4.3.0 everything worked as expected. Repro: Run following code in .NET Framework 4.6 ```c# using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using System.Net.Http; using System.Threading.Tasks; namespace BrokenHttpClient { class Program { static void Main(string[] args) { var host = new WebHostBuilder().UseWebListener().Configure(app => app.Run(ctx => { if (ctx.Request.Headers[""Cookie""].Count == 0) ctx.Response.StatusCode = 400; return Task.FromResult(0); })).UseUrls(""http://localhost:3002"").Build(); using (var client = new HttpClient()) { host.Start(); var req = new HttpRequestMessage(HttpMethod.Post, ""http://localhost:3002""); req.Headers.TryAddWithoutValidation(""Cookie"", ""mykey=myvalue""); var res = client.SendAsync(req).Result; res.EnsureSuccessStatusCode(); } } } } ``` Nuget packages: - Microsoft.AspNetCore.Hosting 1.1.0 - Microsoft.AspNetCore.Server.WebListener 1.1.0 - System.Net.Http 4.3.0 and 4.3.1 On 4.3.0 works as expected, on 4.3.1 cookie is not sent (400 is returned)." +16467 area-Infrastructure testdotnetcli referenced by scripts and instructions does not exist anymore https://github.com/dotnet/corefx/blob/295ed7b94eb78c0bfad29141ae1a0859c7232f77/run-test.cmd#L11 https://github.com/dotnet/corefx/blob/dcfcc7a4a67aeddc34c03302de7cef68770b9f29/Documentation/project-docs/developer-guide.md#L317 +16468 area-System.Net Error in StreamSocketListener The StreamSocketListener isn't running in background. When that will be solved? +16469 area-Meta Possible .NET Core bug? The dependencies referencing scope in .NET Core is behaving different than .NET 4.5. For instance, the following projects: http://i.imgur.com/eEVq3dx.jpg They are referenced as such: ClassLibrary1 -> ClassLibrary2 -> ClassLibrary3 So, prior to .NET Core any `public` class within `ClassLibrary2` should be accessible from `ClassLibrary1` but any class within `ClassLibrary3` should not be accessible from `ClassLibrary1`. Since it doesn't directly reference `ClassLibrary3`. But with .NET Core I can compile this: ```c# using ClassLibrary2; using ClassLibrary3; namespace ClassLibrary1 { public class Class1 { public Class1() { var a = new Class2();//as expected var b = new Class3();//what? } } } ``` Is this a bug? +16475 area-System.Runtime TimeSpan Multiplication and Division Update refs and add tests. Closes #7175 Won't pass CI until dotnet/coreclr#9804 is in. +16476 area-System.Runtime API Proposal: Named Multiply and Divide on type TimeSpan #7175 proposes, and dotnet/coreclr#9804 and #16475 provide `/` and `*` operators for `TimeSpan`. For all previous operators on `TimeSpan` the policy of [CA2225](https://msdn.microsoft.com/en-us/library/ms182355.aspx) was followed by having named alternative methods for the operation, allowing languages which did not honour operator overloading to use the same functionality. This should be done for the new operators as well. ```C# namespace System { public struct TimeSpan { public TimeSpan Multiply(double factor); public TimeSpan Divide(double divisor); public double Divide(TimeSpan ts); } } ``` Functionally these methods should behave identically to the operators dotnet/coreclr#9804 adds. +16477 area-System.Diagnostics [1.1] Update AspNetCoreHosting keyword The change is to unblock using Application Insights Profiler on .NET Core scenarios. The change adds httpContext.TraceIdentifier and httpContext.Response.StatusCode keywords which allow Application Insights Profiler to correlate the profiling trace with the corresponding AI request telemetry event. @vancem Note: It's redoing the reverted pr #16199. +16479 area-System.Runtime S.R.CS.Unsafe: Add ReadUnaligned and WriteUnaligned It is fairly common to read and write unaligned pointers in low-level code. There is no good way to do it today. The options are: - Slow code that reads one byte at a time - Non-portable code. Example: https://github.com/dotnet/corefxlab/pull/1251#discussion_r103063503 - Ugly ifdefs or conditional execution. Example: https://github.com/dotnet/coreclr/blob/68f72dd2587c3365a9fe74d1991f93612c3bc62a/src/mscorlib/src/System/IO/UnmanagedMemoryAccessor.cs#L195 This proposal is to add APIs that make it easy to write low-level code that reads and writes from unaligned pointers. ```c# public static class Unsafe { public static T ReadUnaligned(void* source); public static T ReadUnaligned(ref byte source); public static void WriteUnaligned(void* destination, T value); public static void WriteUnaligned(ref byte destination, T value); } ``` It is fairly natural extension of `Unsafe` class. There are existing `Read` and `Write` methods, as well as methods with `Unaligned` suffix. +16481 area-System.Runtime EnumerateEnvironmentVariables test failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/3862/consoleText ``` System.Tests.GetEnvironmentVariable.EnumerateEnvironmentVariables(target: Process) [FAIL] Assert.Equal() Failure Expected: false Actual: (null) Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\Environment.GetEnvironmentVariable.cs(199,0): at System.Tests.GetEnvironmentVariable.EnumerateEnvironmentVariables(EnvironmentVariableTarget target) ``` cc: @JeremyKuhne +16482 area-Infrastructure Add new documentation for new users that has step-by-step instructions "# problem I had problems on knowing what tools i needed to get corefx to run, test, and get code coverage because I did not know where to look. # explanation I had a hard time getting corefx to run because I was expecting to find step-by-step documentation on how to get corefx running on my computer. Because I was looking for a step-by-step guide, I ignored the page about [building CoreFX on windows](https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md) because I thought ""I'm on windows. I never have to build anything on windows."" # solution Add additional documentation with the step-by-step instructions for installing tools, building, and testing corefx. This way, new users can follow the step-by-step guide, but also read the ""why"" that is in the already existing documentation. " +16483 area-Infrastructure Add expected behavior about user-unhandled errors when running the tests projects in visual studio # problem If you run the System.Configuration.ConfigurationManager tests project in visual studio, you will get an error that an error happened in the System.Configuration.ConfigurationManager dll and was not handled by the user. After two weeks of working with the coreex staff, I found out that this was expected behavior # solution There are two solutions 1. Include that a user needs to either continue when these errors happen, or to disable breaking when an error happens that is user-unhandled. 2. Add documentation stating that this is expected behavior. +16484 area-System.Numerics Improved Asin and ACos Previous implementations of Asin and Acos were based on log(i z + sqrt(1 - z^2)), which is subject to overflow and cancellation in large fractions of the space of representable z. The new implementation is based on an article by Hull and Tang that correctly handles essentially the entire representable space. This solves bug #15455, which can be closed after this pull. Fixes #15455 +16485 area-System.Security Add support for SHA3 (Keccak) "Since SHA1 has been known as an ""unsafe"" algorithm, but now a safer algorithm called ""SHA3"" is created. So this algorithm should also be included here. Any plans or options for Microsoft now? As far as we see, SHA3 is a little faster than SHA2 and what's more——It's SAFER." +16486 area-System.Numerics Sin and Cos Bad Behavior for Large Arguments "For |x| > ~1.0E19, Math.Sin(x) and Math.Cos(x) return x rather than an approximation to Sin(x) or Cos(x). This is documented, but is nonetheless a very bad behavior and should be changed to throw an ArgumentOutOfRangeException or return a NaN. Calculating trig functions of large arguments is hard for reasons well-known to numerical computing experts and much less well-known to most other programmers. The issue has a long history of sowing confusion. (See https://randomascii.wordpress.com/2014/10/09/intel-underestimates-error-bounds-by-1-3-quintillion/ and some references there.) One way of viewing the problem is that FP doubles have ~16 digits of accuracy, so once you get to values above ~6.0E16, there is a full 2\pi of ""uncertainty"" in the value, so we don't really know where we are within the period of the sine curve. The real solution to this problem would be to implement range reduction with a high-precision value of \pi, which would enable us to give 1-ulp accurate values of trig functions for all representable doubles. I will request that solution in another bug. This bug is about what we should do if we are not willing to implement the real solution. Page 3 of the paper https://www.csee.umbc.edu/~phatak/645/supl/Ng-ArgReduction.pdf has a table that compares the behavior of trig functions for large argument for ~30 different platforms. Some of them implement the real solution and so are able to give the correct answer. Others return what is essentially a random value between -1 and 1, or return 0 for sin and 1 for cos. Almost all of these platforms satisfy sin^2 + cos^2 = 1. Finally, some platforms return an error or a NaN to signal their inability to do the requested calculation. What none of them do is what .NET does: return the argument. Besides being unique, what .NET does is bad for a number of additional reasons: (i) One thing we know for certain about sin and cos values is that they must lie between -1 and 1; our behavior violates this rule. (ii) Another thing we know for certain about sin and cos values is that sin^2 + cos^2 = 1; our behavior violates this rule. (iii) Typically people don't call Math.Sin and Math.Cos as part of a program that just computes sines and cosines. Instead, the input argument is the result of a complex calculation and the output value feeds into other complex expressions that are supposed to produce the desired numerical result. It is very easy for a program to produce an input in the bad range in a way that is hard for the programmer to foresee. Without any clear error signal, it's also very easy for the program to go on to produce an ultimate numerical result that is not obviously the total bull**** that it in fact is. (iv) Of course, since we document this, we could argue that the programmer should check input validity before calling Math.Sin or Math.Cos. But if the programmer should always do this, why don't we do it for him? A single floating point comparison is not a high overhead. There are some applications where speed is of the utmost importance, more important even than validity. Gaming comes to mind. (Actually, pretty much only gaming comes to mind.) But we don't allow such considerations to outweigh the requirement for validity for other functions. No one would suggest that we replace Math.Sqrt with Carmack's famous fast inverse square root trick (https://en.wikipedia.org/wiki/Fast_inverse_square_root); we expect people who prefer a fast-and-usually-approximately-right answer to a slower-but-actually-correct answer to call a dedicated fast-but-approximate method. " +16488 area-System.Diagnostics "InnerLoop_Fedora24_Debug: Test ""System.Diagnostics.Tests.ProcessStreamReadTests.TestSyncErrorStream"" failed with ""Xunit.Sdk.EqualException""" Failed test: System.Diagnostics.Tests.ProcessStreamReadTests.TestSyncErrorStream Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/fedora24_debug/1140/consoleText Configuration: InnerLoop_Fedora24_Debug ([build#1140](https://ci.dot.net/job/dotnet_corefx/job/master/job/fedora24_debug/1140/testReport/)) Message: ~~~ System.Diagnostics.Tests.ProcessStreamReadTests.TestSyncErrorStream [FAIL] Assert.Equal() Failure ↓ (pos 0) Expected: RemoteExecutorConsoleApp.exe started erro··· Actual: Did you mean to run dotnet SDK commands? ··· ↑ (pos 0) ~~~ Stack Trace: ~~~ /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Diagnostics.Process/tests/ProcessStreamReadTests.cs(23,0): at System.Diagnostics.Tests.ProcessStreamReadTests.TestSyncErrorStream() ~~~ +16489 area-System.Diagnostics "System.Diagnostics.Tests.ProcessTests.TestExitTime failed with ""TestExitTime is incorrect"" on Windows 8.1" Failed test: System.Diagnostics.Tests.ProcessTests.TestExitTime Configuration: OuterLoop_Windows8.1_debug ([build#115](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug/115/testReport/)). Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug/115/testReport/System.Diagnostics.Tests/ProcessTests/TestExitTime/ Message: ~~~ TestExitTime is incorrect.\r\nExpected: True\r\nActual: False ~~~ Stack Trace: ~~~ at System.Diagnostics.Tests.ProcessTests.TestExitTime() in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Diagnostics.Process\tests\ProcessTests.cs:line 172 ~~~ +16490 area-System.Runtime ValueTuple AsEnumerable extension method For ValueTuple which have the same object it would be similar to collection so I think we should have some way to iterate its values. And so it could work with linq ```C# public static class TupleExt { // sample for Tuple 3 public static IEnumerable AsEnumerable(this ValueTuple tuple) { yield return tuple.t0; yield return tuple.t1; yield return tuple.t2; } } ValueTuple vector; var countPositive = vector.AsEnumerable().Count((p) => p > 0); ``` +16491 area-System.Diagnostics Validating a DiagnosticSource/Activity based 3rd party tracer and an OpenTracing bridge "I'm trying to figure out how the new `Activity` API should be used in a tracer (e.g. Application Insights) or in an OpenTracing bridge. @lmolkova @vancem It would be great if you could provide your feedback here. Maybe it results in some insights for the current API. I will start with some basic questions and I will add further questions once I have a better understanding, if that's ok for you. ### Executing code on Start and Stop for *all* activities I think a tracer should be unaware of actual operation names like ""Http_In"" etc. Instead, the tracer should have a mode where it automatically picks up *all* activities. Of course, it will be useful to also allow users to filter these events (white-list or black-list). IIUC, the current hooks for this are the `[OperationName].Start` and `[OperationName].Stop` DiagnosticSource events as described in [Subscribe to DiagnosticSource](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/ActivityUserGuide.md#subscribe-to-diagnosticsource). Since `OperationName` is dynamic, I don't see an easy way to get *all* activities. Would I have to do something like the following to e.g. send all finished activities to a different system? ```csharp DiagnosticListener.AllListeners.Subscribe(delegate (DiagnosticListener listener) { listener.Subscribe(delegate (KeyValuePair value) { if ( // StopActivity writes an event with the suffix ""Stop"" value.Key.EndsWith(""Stop"", StringComparison.Ordinal) // However, there could also be other events that use this suffix // so we have to check if there's an activity && Activity.Current != null // There could also be ""*.Stop"" events while the activity is running && Activity.Current.Duration != TimeSpan.Zero) { // send stopped activity to external system } }); } ``` However, since there's no longer a filter outside of `Subscribe`, this would enable *all* diagnostic listener categories, wouldn't it? Also, the string comparison for the ""Stop""-suffix etc seems a bit odd. If the intend is to always have the category white-list, where/how should this be implemented in your opinion to keep the tracer (e.g. Application Insights) unaware of actual instrumentations? ### Using globally unique activity IDs Tracing systems need unique IDs to distinguish traces/activities. The Activity API defines a way to [set a custom root ID](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/ActivityUserGuide.md#root-id) through `SetParentId(string)`. If this API is not used, a simple int counter is used - which obviously isn't guaranteed to be unique across machines. IIUC, tracers are supposed to call `SetParentId` in `[OperationName].Start` events, right? Child activities however will then get add local increment IDs as suffixes to this parent ID without any way to change it. IIUC, this has several problems: * To call `SetParentId` on all activities, the tracer again has to listen to *all* `*.Start` events which might not be possible right now without enabling *all* diagnostic listener categories (see previous point) * Tracers might not be able to handle the format of child activities. They might e.g. always require random `long` values. * Child activities on different servers might get the same ID. Example: A server request generated a root ID of `123`. It then executes 2 child requests which are handled by different servers in a farm. If the local counter happens to be the same (e.g. on application startup), both would get the same child ID of ""123.1""." +16492 area-System.Memory System.Memory.Tests crashing on Windows outer loop runs "https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug/115/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release/111/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win10_debug/106/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win10_release/112/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/117/consoleText ``` Discovering: System.Memory.Tests Discovered: System.Memory.Tests Starting: System.Memory.Tests Finished running tests. End time= 3:21:30.59, Exit code = -1073741819 D:\j\workspace\outerloop_win---65ef7d78\Tools\tests.targets(249,5): warning MSB3073: The command ""D:\j\workspace\outerloop_win---65ef7d78\bin/Windows_NT.AnyCPU.Release/System.Memory.Tests/netcoreapp//RunTests.cmd D:\j\workspace\outerloop_win---65ef7d78\bin/testhost/netcoreapp-Windows_NT-Release-x64/"" exited with code -1073741819. [D:\j\workspace\outerloop_win---65ef7d78\src\System.Memory\tests\System.Memory.Tests.csproj] D:\j\workspace\outerloop_win---65ef7d78\Tools\tests.targets(257,5): error : One or more tests failed while running tests from 'System.Memory.Tests' please check D:\j\workspace\outerloop_win---65ef7d78\bin/Windows_NT.AnyCPU.Release/System.Memory.Tests/netcoreapp/testResults.xml for details! [D:\j\workspace\outerloop_win---65ef7d78\src\System.Memory\tests\System.Memory.Tests.csproj] Using D:\j\workspace\outerloop_win---65ef7d78\bin\testhost\netcoreapp-Windows_NT-Release-x64\ as the test runtime folder. ``` cc: @jkotas " +16493 area-System.Security X509Certificate GetCertHash and GetCertHashString with SHA256 "As the current implementation uses SHA1 for calculating X509 hashes and SHA1 can't be considered safe anymore the hash calculation should be updated to SHA256. E.G.: ```csharp X509Certificate cert = new X509Certificate(""mycert.pxf""); byte[] b = cert. GetCertHash256() string s = cert. GetCertHashString256() ``` Alternatively, a variable hashing algorithm as function parameter would be desirable for future hashing methods. A use case is the ssl certificate validation on IoT devices to prevent man-in-the-middle attacks. Many IoTs connect to a web api via ssl and thus, should validate the server’s certificate. With limited compute power on the device the certificate’s thumbprint can be verified much cheaper than the whole chain of certificates. For example, the validation of a server certificate can be done with python on a Raspberry: ```python import ssl from cryptography import x509 from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives import hashes thumbprint = 'e959fd5c80f76df7a593aae09686e604f74be8b0' pem = ssl.get_server_certificate( (host, port) ) certx509 = x509.load_pem_x509_certificate(str.encode(pem), default_backend()) tp = certx509.fingerprint(hashes.SHA256()) tpHex = ''.join('{:02x}'.format(x) for x in tp) if tpHex != thumbprint: print(‘Validation failed’) ```" +16498 area-System.Net IPAddressExtensions.Snapshot should not be public Looks like this became public at some point during porting. It's not public in desktop. +16500 area-System.Diagnostics Review the uniqueness of Activity ID in System.Diagnostics.Activity Currently we generate an ID by creating a 'unique ID for a process' (see s_uniqPrefix in the code) and then appending a process wide number (that increments) each time a number is used. There is a wrap around problem (if you allocate more than 4 billion IDs) The s_uniqPrefix is also not perfect as it uses the us granularity tick count to create a 'random' number. There certainly COULD be collisions if there were multiple processes on the same machine using activities and they both fetched their very first ID at the same time. There is also an issue when you create a ID from a ParentID coming from another system. Currently we simply append a process-wide sequence number to the ParentID, but if this happens on two different machines there can be a collision. Adding a machine-random number would avoid this. These are all very rare events, but if we can find cheap ways of making this better we should do so. +16502 area-System.Net Rewrite Socket Task-based send/receive async operations on SocketAsyncEventArgs They're currently on top of the APM methods. This commit changes the ReceiveAsync/Send{To}Async operations to instead sit on top of a cached set of SocketAsyncEventArgs instances. On a microbenchmark that connects two sockets and then does a million 1byte sends/receives from one to the other, top allocations before: ![image](https://cloud.githubusercontent.com/assets/2642209/23368963/b34f3226-fcdd-11e6-8c5d-05374dba4b3d.png) And top allocations after: ![image](https://cloud.githubusercontent.com/assets/2642209/23369063/1738fefc-fcde-11e6-97b4-7ac9c82c282d.png) In a small change that forces all receives to be asynchronous by doing them before the send, top allocations before: ![image](https://cloud.githubusercontent.com/assets/2642209/23370305/3fb64a02-fce2-11e6-8efe-514ee5687068.png) And top allocations after: ![image](https://cloud.githubusercontent.com/assets/2642209/23370313/47110472-fce2-11e6-88aa-d43259e8f83d.png) Throughput on the send/receive case also improved ~60%. Throughput on the receive/send case improved ~10%. The worst case for this change is when only one send/receive is done per socket, since then it doesn't benefit from the SocketAsyncEventArgs caching. It takes two send/receives per socket to break even on allocation, and after that it's a definitive win. With the task-based versions now generally much more efficient than the APM-based ones, I've switched NetworkStream.Read/WriteAsync to use them. cc: @geoffkizer, @cipop, @davidsh, @vancem +16503 area-System.Net Fix visibility of internal extensions type Fixes https://github.com/dotnet/corefx/issues/16498 cc: @geoffkizer, @cipop +16504 area-System.Memory Disable crashing System.Memory tests https://github.com/dotnet/corefx/issues/16492 cc: @jkotas, @ahsonkhan +16505 area-System.Diagnostics Add logging for System.Diagnostics.Tests.ProcessTests.TestExitTime For https://github.com/dotnet/corefx/issues/16489 cc: @danmosemsft +16506 area-Infrastructure Update buildtools and re-enable projects disabled due to Unix ilasm This re-enables the build for System.Runtime.CompilerServices.Unsafe on all platforms, and turns on the tests for System.Memory (they were disabled because Unsafe was disabled). @weshaggard @joperezr +16507 area-System.Threading Fix #16274 - LazyInitializer.EnsureInitialized overload for reference types. This PR is for the implementation of new overloads of LazyInitializer.EnsureInitialized for reference types. @stephentoub @terrajobst @karelz Kindly review. Depends on PR [#9831](https://github.com/dotnet/coreclr/pull/9831) in CoreClr for compilation to succeed. Thanks, Mandar +16508 area-Infrastructure Add support for consuming local build coreclr in corefx builds A number of folks want to be able to build a local coreclr and consume it in corefx for testing purposes. There are a number of potential ways to do that today but we haven't documented them. This issue is tracking at least documenting them and potentially making improvements to make that scenario easier. +16509 area-System.Reflection Add WindowsBootApplication to Subsystem enum This addresses #15390 +16510 area-System.Diagnostics System.Diagnostics.Tests.ProcessTests.TestProcessOnRemoteMachineWindows failure System.Diagnostics.Tests.ProcessTests.TestProcessOnRemoteMachineWindows will fail if the machine that it is running on has inaccessible performance counter. We should move this test to outer loop, or make it robust against dirty environment. ``` System.Diagnostics.Tests.ProcessTests.TestProcessOnRemoteMachineWindows [FAIL] System.InvalidOperationException : Couldn't connect to remote machine. ---- System.InvalidOperationException : Couldn't get process information from performance counter. -------- System.InvalidOperationException : Cannot load Counter Name data because an invalid index 'RemoteFX Synth3D VSC VM Transport Channel' was read from the registry. Stack Trace: X:\dev\coreclr\corefx\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(521,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) X:\dev\coreclr\corefx\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(521,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) X:\dev\coreclr\corefx\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(266,0): at System.Diagnostics.NtProcessManager.GetProcessIds(String machineName, Boolean isRemoteMachine) X:\dev\coreclr\corefx\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(69,0): at System.Diagnostics.ProcessManager.GetProcessIds(String machineName) X:\dev\coreclr\corefx\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(30,0): at System.Diagnostics.ProcessManager.IsProcessRunning(Int32 processId, String machineName) ``` +16511 area-System.Security WindowsPrincipalTests fail if the machine is not properly domain joined WindowsPrincipalTests fail if the machine is not properly domain joined. We should move this test to outer loop, or make it robust against dirty environment. ``` WindowsPrincipalTests.WindowsPrincipalIsInRoleNeg [FAIL] System.ComponentModel.Win32Exception : The trust relationship between this workstation and the primary domain failed Stack Trace: X:\dev\coreclr\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\NTAccount.cs(333,0): at System.Security.Principal.NTAccount.TranslateToSids(IdentityReferenceCollection sourceAccounts, Boolean& someFailed) X:\dev\coreclr\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\NTAccount.cs(194,0): at System.Security.Principal.NTAccount.Translate(IdentityReferenceCollection sourceAccounts, Type targetType, Boolean& someFailed) WindowsIdentityTests.CloneAndProperties(cloneViaSerialization: False) [FAIL] System.ObjectDisposedException : Safe handle has been closed Stack Trace: at System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean& success) at System.StubHelpers.StubHelpers.SafeHandleAddRef(SafeHandle pHandle, Boolean& success) at Interop.Advapi32.LsaLookupSids(SafeLsaPolicyHandle handle, Int32 count, IntPtr[] sids, SafeLsaMemoryHandle& referencedDomains, SafeLsaMemoryHandle& names) X:\dev\coreclr\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(1084,0): at System.Security.Principal.SecurityIdentifier.TranslateToNTAccounts(IdentityReferenceCollection sourceSids, Boolean& someFailed) WindowsIdentityTests.CloneAndProperties(cloneViaSerialization: True) [FAIL] System.ObjectDisposedException : Safe handle has been closed Stack Trace: at System.Runtime.InteropServices.SafeHandle.DangerousAddRef(Boolean& success) at System.StubHelpers.StubHelpers.SafeHandleAddRef(SafeHandle pHandle, Boolean& success) at Interop.Advapi32.LsaLookupSids(SafeLsaPolicyHandle handle, Int32 count, IntPtr[] sids, SafeLsaMemoryHandle& referencedDomains, SafeLsaMemoryHandle& names) X:\dev\coreclr\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(1084,0): at System.Security.Principal.SecurityIdentifier.TranslateToNTAccounts(IdentityReferenceCollection sourceSids, Boolean& someFailed) X:\dev\coreclr\corefx\src\System.Security.Principal.Windows\src\System\Security\Principal\SID.cs(1228,0): at System.Security.Principal.SecurityIdentifier.Translate(IdentityReferenceCollection sourceSids, Type targetType, Boolean& someFailed) ``` +16512 area-System.Net small changes to unix SocketAsyncContext This is a bit of cleanup/reorganization in preparation for upcoming perf enhancements. - When we retry an async operation and it then succeeds, complete it synchronously rather than queuing a completion to the thread pool. - Align operations and queues with OS readiness notifications (i.e. read/write) - Move the queue locks to the queue structure, and partially encapsulate access to the lock (in anticipation of fully encapsulating this in subsequent changes) +16513 area-System.Net Test hole in System.Private.Uri -> UriHelper.EscapeString There is a test hole where we are not testing the case of when we find an unescaped reserved character and we need to grow the destination `char[]` and copy its current values. Pointer to this case in the source code: https://github.com/dotnet/corefx/blob/master/src/System.Private.Uri/src/System/UriHelper.cs#L407-L432 Pointer to a comment on a PR where we found this hole: https://github.com/dotnet/corefx/pull/16456#discussion_r103077889 /cc: @stephentoub +16514 area-Serialization Fixed a Bug with Serializing Types Having Known Types. This fix enable XmlSerializer to serialize types having known types into soap encoded message. Fix #15523. +16515 area-System.Net remove some unused Winsock interop stuff Remove unused Winsock APIs/structs. Also clean up usage of WSAEventSelect and comments regarding this. +16516 area-System.Net "System.Net.Security tests failing with: ""The credentials supplied to the package were not recognized""" There is a group of tests that are failing intermittently with the error ```System.ComponentModel.Win32Exception : The credentials supplied to the package were not recognized```. I'm tracking their failures in this issue as they are likely due to the same underlying issue. The following tests have failed at some point with this error: - [SslStream_StreamToStream_Authentication_Success](https://github.com/dotnet/corefx/issues/17103) - [SslStream_StreamToStream_HandshakeAlert_Ok](https://github.com/dotnet/corefx/issues/12706) - [SslStream_StreamToStream_DataAfterShutdown_Fail](https://github.com/dotnet/corefx/issues/12706) - [SslStream_StreamToStream_ServerInitiatedCloseNotify_Ok](https://github.com/dotnet/corefx/issues/12683) - [SslStream_StreamToStream_ClientInitiatedCloseNotify_Ok](https://github.com/dotnet/corefx/issues/15785) - [SslStream_StreamToStream_Write_ReadByte_Success](https://github.com/dotnet/corefx/issues/16338) - [ServerAsyncAuthenticate_AllClientVsIndividualServerSupportedProtocols_Success(serverProtocol: Tls11)](https://github.com/dotnet/corefx/issues/8744) - [ServerAsyncAuthenticate_AllClientVsIndividualServerSupportedProtocols_Success](https://github.com/dotnet/corefx/issues/16346) - [ServerAsyncAuthenticate_EachSupportedProtocol_Success(protocol: Tls11)](https://github.com/dotnet/corefx/issues/8744) - [ServerAsyncAuthenticate_MismatchProtocols_Fails(serverProtocol: Tls, clientProtocol: Tls11, expectedException: typeof(System.Security.Authentication.AuthenticationException))](https://github.com/dotnet/corefx/issues/16651) None of these test failures are reproducible on local machines regardless of the number of runs executed, which suggests the issue lies in either the infrastructure or interference from other tests run alongside these. They only fail on Windows. It might be helpful to get another pair of eyes on this to see if anything stands out. As it is, I've been unable to narrow the symptoms down to any definitive problem and @steveharter and my's attempts to reproduce failures have been fruitless. I'll be disabling this entire group of tests to regain stability until we can get more information on their source. +16518 area-System.Runtime Failure in EnumerateEnvironmentVariables This is the test fixed in #16156, now it's failing in a new way. @JeremyKuhne https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/3892/consoleText ``` System.Tests.GetEnvironmentVariable.EnumerateEnvironmentVariables(target: Process) [FAIL] Assert.Equal() Failure Expected: true Actual: (null) Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime.Extensions\tests\System\Environment.GetEnvironmentVariable.cs(199,0): at System.Tests.GetEnvironmentVariable.EnumerateEnvironmentVariables(EnvironmentVariableTarget target) Finished: System.Runtime.Extensions.Tests ``` +16520 area-System.Net HttpClient doesn't detect IE setting for ignoring proxies "@davidsh mentioned halfway through #7037 that > HttpClientHandler/WinHttpHandler can use the 'Internet Explorer/Wininet-style"" registry settings for proxy detection. You don't need to have the WebProxy class for that. The default behavior for HttpClientHandler just simply uses these settings to find the proxy. It has the proxy detection logic built-in. How is that behaviour impacted when hosting on IIS through the reverse proxy? ### First: The Error Here is the exception that pops up when I try to do a `HttpClient` `GetAsync()`, which Wireshark reveals is caused by the proxy cutting the request off (error 407). > System.Net.Http.HttpRequestException: Error while copying content to a stream. ---> System.IO.IOException: Unable to read data from the transport connection. The connection was closed before all data could be read. Expected 2245 bytes, read 0 bytes. at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.StreamToStreamCopy.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpContent.d__48.MoveNext() --- End of inner exception stack trace --- at System.Net.Http.HttpContent.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() ### Second: The Behaviours I'm experiencing different behaviours when launching the exact same ASP.Net web API on Kestrel command-line versus IIS. The web API is fairly simple, with some calls that GET another external resource. - Internet Explorer LAN Settings 'Automatically detect settings' ticked - Kestrel: Exception - IIS: Exception - 'Automatically detect settings' **un-ticked** - Kestrel: **No exception - it works** - IIS: Exception So it appears, at first glance, that `HttpClientHandler` is ignoring the Automatically detect settings bit, when run under IIS. What I'm also suspecting is that IIS AppPool account might affect what proxy setting the HttpClient sees, in some way. But I probably need someone from the dotnet team to actually comment. Thank you." +16522 area-Infrastructure Fix run-test.sh to pass test-dir list - can test selected directory using list file or argument - can set root test binary location +16523 area-Infrastructure [ARM/CI] Use embedded rootfs for arm cross build Make use of the latest docker image for arm cross build The latest docker image contains rootfs for arm. For armel, we still have to generate rootfs on demand. This PR addresses a request from https://github.com/dotnet/core-setup/issues/725#issuecomment-282796328. +16529 area-System.IO SerialPort: Close blocked while write blocked in NETFX "See this comment: https://github.com/dotnet/corefx/issues/984#issuecomment-283058494 The SerialPort will block forever on Close(), while write blocked. Write blocked usually occurs during hardware flow control on the serial port where the remote side is causing the flow control. That is, while the remote side has indicated that sending is not possible so that Write() is blocked, Close() will block forever. A test case that shows this behaviour is: ```c# // NOTE: This test is expected to fail or block forever on Windows. [Test] [Timeout(4000)] public void SerialPortDisposedWhenBlocked() { byte[] buffer = new byte[1024]; using (SerialPort serialSource = new SerialPort(c_SourcePort, 115200, Parity.None, 8, StopBits.One)) using (SerialPort serialDest = new SerialPort(c_DestPort, 115200, Parity.None, 8, StopBits.One)) { serialSource.Open(); serialDest.Open(); serialDest.RtsEnable = false; new Thread( () => { Thread.Sleep(2000); Console.WriteLine(""Disposing serialSource""); // It appears that the MSDN .NET implementation blocks here, never // to return as we're blocked on another thread. serialSource.Dispose(); Console.WriteLine(""Disposed serialSource""); } ).Start(); int bufferCount = 1024 * 1024; while (bufferCount > 0) { serialSource.Write(buffer, 0, buffer.Length); bufferCount -= buffer.Length; Console.WriteLine(""{0}"", bufferCount); } } } ``` To test you will need real hardware that supports hardware flow control (e.g. a cable that also has RTS/CTS correctly wired), not just a simple three-wire cable. For example, this is reproducible on 2 USB FTDI chipsets with a NULL-Modem cable between that connects the RTS/CTS from each port to the other port. It works by telling the source port to send data, usually it will block within the first 2 seconds due to internal OS buffers. Then it becomes write blocked. The thread running in the background simulates another thread that might be trying to close or dispose the program and calls Close/Dispose on a different thread. Unfortunately, that thread will also block forever." +16530 area-Meta Ubuntu 16.10 CI runs failing These appear to be the first failing builds: https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.10_debug/1095/ https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.10_release/1098/ which suggests one of these changes is the culprit: ``` Changes Add Narrow, Widen, and Conversion methods to System.Numerics.Vectors. (commit: 2f69e67) (detail / githubweb) Add ConditionalFacts to GenericVectorTests.tt so that they are not (commit: 95f40b2) (detail / githubweb) Fix issues related to the debug overflow checking we added. (commit: 79766d2) (detail / githubweb) Update buildtools and re-enable projects disabled due to Unix ilasm (commit: 29029cf) (detail / githubweb) ``` +16531 area-Infrastructure Using `include_directories(SYSTEM...` for openssl and curl breaks cross compilation for Yocto Linux While taming the build process to run in a Yocto Linux cross compile environment, one road block was the explicit inclusion of the curl and openssl include directories [here](https://github.com/dotnet/corefx/blob/master/src/Native/Unix/System.Net.Http.Native/CMakeLists.txt#L26) and [here](https://github.com/dotnet/corefx/blob/master/src/Native/Unix/System.Security.Cryptography.Native/CMakeLists.txt#L16). The effect of these statements is (with clang 3.9.1) that the `${SYSROOT}/usr/include` folder (where curl and openssl headers reside in a Yocto build environment) becomes an `-isystem` parameter to clang and this reorders that folder above the C++ include folders. When clang now tries to resolve C++ header files, it fails on an `#include_next `, because that file isn't found in a folder that comes after the C++ header folders. Blaming the two CMakeLists points to build issues for OSX and BSD, but I cannot build for those targets. Otherwise I would check if the entire `include_directories` statement is actually necessary, or if removing the `SYSTEM` argument still makes the build succeed (it should). See also dotnet/core-setup#1598 +16532 area-Infrastructure build -allConfigurations fails on mac See https://github.com/dotnet/corefx/issues/16354#issuecomment-282995749 ``` orefx/Tools/partialfacades.task.targets(70,5): error : Errors were encountered when generating facade(s). [corefx/src/System.Runtime.InteropServices.WindowsRuntime/src/System.Runtime.InteropServices.WindowsRuntime.csproj] ``` I suspect that this is using the wrong System.Private.CoreLib to generate the facade. The unix one is missing the types that satisfy this contract. I'll let this issue track making this work and dealing with any other issues with build -allConfigurations on mac. +16533 area-Infrastructure Consider setting COMPlus_ FailFastOnCorruptedStateException=1 on test runs This will trigger a FailFast if a CorruptedStateException (which a real AV is) reached Reflection subsystem. May help us generate more actual dumps out of XUnit runs. To avoid the risk of hiding real issues maybe we should do this every other day or something. +16534 area-System.Net "Test failure: System.Net.Security tests failing with ""Authentication failed because the remote party has closed the transport stream""" There is a group of tests that are failing intermittently with the error ```System.IO.IOException : Authentication failed because the remote party has closed the transport stream.```. I'm tracking their failures in this issue as they are likely due to the same underlying issue. The following tests have failed at some point with this error: - [ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(serverProtocol: Tls12, clientProtocol: Tls11](https://github.com/dotnet/corefx/issues/16968) - [ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_EachClientUnsupportedProtocol_Fail](https://github.com/dotnet/corefx/issues/10909) - [ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_AllServerAllClient_Success](https://github.com/dotnet/corefx/issues/14177) - ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_IndividualServerVsAllClientSupportedProtocols_Success(serverProtocol: Tls11) - ClientDefaultEncryptionTest.ClientDefaultEncryption_ServerAllowNoEncryption_ConnectWithEncryption - [ServerNoEncryptionTest.ServerNoEncryption_ClientAllowNoEncryption_ConnectWithNoEncryption failed.](https://github.com/dotnet/corefx/issues/9130) - [ServerNoEncryptionTest.ServerNoEncryption_ClientNoEncryption_ConnectWithNoEncryption](https://github.com/dotnet/corefx/issues/11624) - ServerAllowNoEncryptionTest.ServerAllowNoEncryption_ClientNoEncryption_ConnectWithNoEncryption - [ServerAllowNoEncryptionTest.ServerAllowNoEncryption_ClientRequireEncryption_ConnectWithEncryption](https://github.com/dotnet/corefx/issues/14504) None of these test failures are reproducible on local machines regardless of the number of runs executed, which suggests the issue lies in either the infrastructure or interference from other tests run alongside these. They only fail on Windows. It might be helpful to get another pair of eyes on this to see if anything stands out. As it is, I've been unable to narrow the symptoms down to any definitive problem and @steveharter and my's attempts to reproduce failures have been fruitless. I'll be disabling this entire group of tests to regain stability until we can get more information on their source. They are possibly related to https://github.com/dotnet/corefx/issues/16516. +16536 area-System.Net Disable some failing System.Net.Security tests These seven tests are failing from the same problem #16516 @steveharter @Priya91 +16539 area-System.Linq S.L.Expressions interpreted filters fail if InstructionIndex changed directly. Found this experimenting wrt #15719 Some interpreter instructions read and/or update `frame.InstructionIndex` directly. Filters are an example because they outside of the normal flow, but they assume that they never call into any other instructions that do so. They also assume that the exception is on the top of the stack at the end of the filter execution (likely in most cases, hence it not being apparent before, but not if continuations are pushed and popped and perhaps not in other case). The result is almost certainly an exception that is then eaten with the filter not matching due to the rule for unhandled exceptions within filters requiring that. +16541 area-System.Linq Handle explicit InstructionIndex changes within filters Fixes #16539 Also remove unused `ExceptionHandler.Parent` field and make `ExceptionHandler.ExceptionType` field private. +16542 area-System.IO SerialPort: TimeoutException not always thrown for write timeouts With a 'real' (serial.sys / 16550) serial port, if you set up a `WriteTimeout` and then write to a port which is blocked by flow control, the write will eventually fail and throw a `TimeoutException`. This is the expected behaviour. This exception is thrown by a code in `SerialStream.Write`, which looks like this: ``` if (numBytes == 0) throw new TimeoutException(SR.Write_timed_out); ``` Where `numBytes` is passed back from the OS in the `lpNumberOfBytesWritten` argument of `WriteFile`. With some usb serial devices (tested with FTDI) `lpNumberOfBytesWritten` is not zero in this situation - it's some non-zero number less than the size of the buffer which was written. It's probably related to the difference in size between the buffer written and the amount of internal buffering within the driver/hardware stack.. This might be characterised as a bug within the FTDI product, but it's probably very difficult to fix - they have committed a certain amount of data to the USB stack and their hardware device, and once that's gone from their serial driver it is hard to know that it never made it out of the pins of the IC at the end of the USB cable. It could be possibly made to work via reporting back from the hardware to the driver, but if that isn't in place in their existing protocol then it's probably not going to be. This gives a situation where a `Write` has failed with a timeout but this fact is not visible to the application. Instead of the `numBytes == 0` test, we might consider having some other way of determining that a timeout occurred - perhaps something like `numBytes < (bytesThatCouldbeWritten)`. I'm not currently sure what `(bytesThatCouldbeWritten)` would be, and how this would interact with overlapped writes, etc, but it's worth thinking about. This can be left up-for-grabs for now. +16543 area-System.IO Fix testsharedframeworkpath for windows build-native. resolves https://github.com/dotnet/corefx/issues/15981 @mellinoe +16544 area-System.Net Increase Ping test timeout. These tests intermittently fail when they hit the timeout limit of 1s. I'm increasing it to 10s to get some more stability. @steveharter this should handle the two failures you sent me in `System.Net.NetworkInformation.Tests.UnixPingUtilityTests.*` +16545 area-System.Security Enable signing XML with RSA/SHA1 I've left bunch of NotImplementedExceptions - they have previously not worked too, right now the error message will be easier to figure out cc: @bartonjs - could you take a look? especially at RSAPKCS1SHA1SignatureDescription.cs ref: https://github.com/dotnet/corefx/issues/4278 @tintoy @anthonylangsworth @peterwurzinger +16546 area-System.Runtime Robustify enumerate environment test Make the environment variable enumeration test more stable by not over validating transient state. @ianhays #16481 +16547 area-System.Linq Remove OnesComplementInstruction Functionality for all supported types is identical to `NotInstruction`, so just use it. As well as reducing code, this makes the instruction set more directly comparable to CIL. +16548 area-System.Net Improve CI: disable socket tests on Unix which may fail due to port being in-use Several Socket tests bind to an open port (returned from the OS), and then connect to that same port but on a different IPV4 or IPV6 loopback address. On Windows that seems to work fine (that other loopback port is never in use), but on Unix (and OSX) port #'s are random (not incremental as in Windows) and it treats IPV4 and IPV6 as separate addresses thus the expected unused port will occasionally be in use causing that test, or related test to fail. Most likely it is the 'mirror' test that is using the other protocol+port, meaning the test just before or after the current test that for example tests (IPV6, IPV4) while the original tests (IPV4, IPV6). I have repro'd the failures fairly consistently on Ubuntu by adding a 'for' loop to both tests so they execute 1,000 times or so. I have also written a small POSIX example that shows given a bound IPV6 loopback port, the OS can return an IPV4 address with the same port. This PR just disables these tests for non-Windows cases. Note that these are also the 'failure' tests, meaning the happy path tests (IPV6, IPV6) or (IPV4, IPV4) are not changed here. Addresses https://github.com/dotnet/corefx/issues/9017, https://github.com/dotnet/corefx/issues/13213 Also https://github.com/dotnet/corefx/issues/14519 cc @stephentoub , @CIPop, @davidsh +16549 area-System.Net Update test issues to match current issue database. cc @karelz @steveharter @ianhays Re-enabling tests based on issue status. +16551 area-Infrastructure Restore ilasm from external directory, Update buildtools This also re-enables all of the projects that were disabled because of a lack of ilasm outside Windows. @weshaggard +16552 area-Infrastructure Add CoreCLROverridePath option to consume private coreclr in corefx Fixes https://github.com/dotnet/corefx/issues/16508. PTAL @stephentoub @jkotas @danmosemsft @RussKeldorph +16553 area-Meta Fix tests that assumed GC refs could become collectable in the middle of a method. Some tests have been assuming that when a local reference (e.g. a local variable) is last used in a method, it is immediately available to be collected by the GC, but this was never guaranteed (it just happened to work that way most of the time) and with upcoming CoreCLR changes this assumption will break tests. This change moves such references into their own method bodies - this is still not 100% guaranteed to work but it's very hard to see it ever breaking in the real world. +16555 area-System.Numerics "Test ""System.Numerics.Vectors.Tests "" failed with System.Reflection.TargetInvocationException & System.AccessViolationException" Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170228.02/workItem/System.Numerics.Vectors.Tests/wilogs Failed test: System.Numerics.Vectors.Tests Failed to generate the test result. Message: ~~~ Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. ~~~ Stack Trace: ~~~ 2017-02-28 14:31:52,440: INFO: proc(54): run_and_log_output: Output: Discovering: System.Numerics.Vectors.Tests 2017-02-28 14:31:52,878: INFO: proc(54): run_and_log_output: Output: Discovered: System.Numerics.Vectors.Tests 2017-02-28 14:31:53,221: INFO: proc(54): run_and_log_output: Output: Starting: System.Numerics.Vectors.Tests 2017-02-28 14:31:55,035: INFO: proc(54): run_and_log_output: Output: 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Numerics.Vector.Narrow(Vector`1 low, Vector`1 high) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Numerics.Tests.GenericVectorTests.NarrowDouble() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: --- End of inner exception stack trace --- 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__0() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.b__45_0() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.RunAsync() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestRunner.InvokeTestMethodAsync(ExceptionAggregator aggregator) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestRunner`1.<>c__DisplayClass43_0.b__0() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestRunner`1.RunAsync() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestCaseRunner.RunTestAsync() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCaseRunner`1.RunAsync() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestCase.RunAsync(IMessageSink diagnosticMessageSink, IMessageBus messageBus, Object[] constructorArguments, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestMethodRunner.RunTestCaseAsync(IXunitTestCase testCase) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestMethodRunner`1.RunAsync() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestClassRunner.RunTestMethodAsync(ITestMethod testMethod, IReflectionMethodInfo method, IEnumerable`1 testCases, Object[] constructorArguments) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestClassRunner`1.RunAsync() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestCollectionRunner.RunTestClassAsync(ITestClass testClass, IReflectionTypeInfo class, IEnumerable`1 testCases) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestAssemblyRunner.RunTestCollectionAsync(IMessageBus messageBus, ITestCollection testCollection, IEnumerable`1 testCases, CancellationTokenSource cancellationTokenSource) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestAssemblyRunner.<>c__DisplayClass14_2.b__3() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task`1.InnerInvoke() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteEntry() 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.SynchronizationContextTaskScheduler.<>c.<.cctor>b__8_0(Object s) 2017-02-28 14:31:55,112: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.MaxConcurrencySyncContext.<>c__DisplayClass11_0.b__0(Object _) 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at lambda_method(Closure , Object , Object ) 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExecutionContextHelper.Run(Object context, Action`1 action) 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.InnerInvoke() 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteEntryUnsafe() 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.ThreadPoolTaskScheduler.<>c.<.cctor>b__10_0(Object s) 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-02-28 14:31:55,128: INFO: proc(54): run_and_log_output: Output: at System.Threading.ThreadHelper.ThreadStart(Object obj) 2017-02-28 14:31:57,816: INFO: proc(54): run_and_log_output: Output: Finished running tests. End time=14:31:57.81, Exit code = -532462766 2017-02-28 14:31:57,816: INFO: proc(58): run_and_log_output: Exit Code: -532462766 2017-02-28 14:31:57,832: ERROR: scriptrunner(82): _main: Error: No exception thrown, but XUnit results not created 2017-02-28 14:31:57,832: ERROR: helix_test_execution(125): report_error: Error running xunit None ~~~ +16556 area-Meta Convert some uses of Marshal.SizeOf to sizeof sizeof has many times better performance characteristics +16558 area-System.Security Include System.Security.Cryptography.Xml in corefx-packaging In advance, this is less an issue than more a question/request for help. We are currently [working](https://github.com/dotnet/corefx/issues/4278) on porting the S.S.C.Xml-Lib to .NET-Core. For my bachelor thesis project I already need this library very soon - a nightly/experimental/pre-alpha/whatever - build is perfectly fine though. My question now is, what are the steps to include the project in the corefx packaging process? I did some hands-on and research but did not get far with it. Is there some kind of checklist for this? If not, could someone explain it to me so that I can include it by myself? I'm asking because I don't expect the package to be available on myget in time. Best wishes Peter +16560 area-System.Net FileLoadException - Microsoft.Win32.Primitives when using WinHttpHandler "On .NET 4.6: WinHttpHandler 4.4.0-24913-01 (4.0.2.0) depends on Microsoft.Win32.Primitives (4.0.1.0) whilie Microsoft.Win32.Primitives 4.4.0-24913-01 contains Microsoft.Win32.Primitives (4.0.2.0) This causes issues when binding redirects are not specified. Is this by design? Consider following code running on Kestrel with IIS Express in VS2017 RC ```c# app.Run(async ctx => { await new HttpClient(new WinHttpHandler()).GetAsync(""https://example.com""); }); ``` It throws FileLoadException." +16561 area-System.Collections Expose and test KeyValuePair.Create And add some unit tests for KVP construction and ToString Fixes #2127 +16563 area-System.Security Test runs on Ubuntu are showing useless stack on failure Running test is performed with: Tools\msbuild.sh /t:BuildAndTest project.csproj example stack trace on Ubuntu 16.04 (obviously big chunk of stack is missing) ``` xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Security.Cryptography.Xml.Tests Discovered: System.Security.Cryptography.Xml.Tests Starting: System.Security.Cryptography.Xml.Tests System.Security.Cryptography.Xml.Tests.EndToEnd.SignedXmlHasVerifiableSignature [FAIL] System.PlatformNotSupportedException : Operation is not supported on this platform. Stack Trace: .../corefx/bin/obj/Unix.AnyCPU.Debug/System.Security.Cryptography.Csp/netcoreapp/System.Security.Cryptography.Csp.notsupported.cs(208,0): at System.Security.Cryptography.SHA1CryptoServiceProvider..ctor() Finished: System.Security.Cryptography.Xml.Tests === TEST EXECUTION SUMMARY === ``` on the first look it looks like somewhere in the code there is something like: ```c# try { runtest(); } catch (Exception e) { throw e; } ``` replacing `throw e;` with simply `throw;` should fix it. I did not investigate where that code is or if that is the problem. +16564 area-System.Net Add several new sockets tests Separated out of https://github.com/dotnet/corefx/pull/16502, and added a Unix domain sockets test to try to approximate a test that's hanging in System,IO.Pipes with the new sockets changes. +16565 area-Infrastructure Warnings should not be errors when building single test project "When doing development it is normal to temporarily place exception in the middle of the code to investigate issue. Treating warnings as errors causes really annoying workflow that you also need to comment out stuff below it (because of ""Unreachable code detected""). This is completely valid to do as part of the full build but super annoying when building single project" +16566 area-System.Reflection Type: Needs api to distinguish SzArrays from Multidim arrays of rank 1. "The SZ array type (""T[]"") and rank 1 multidim arrays (""T[*]"") are distinct and non-interchangable types in .NET. However, the Reflection surface area contains no api to distinguish. (The most ""obvious"" approach (""t is Array && t.GetArrayRank() == 1"") captures both.) Proposal: Add a new property to System.Type: ```c# public virtual bool IsSZArray { get { throw NotImplemented.ByDesign; }} // Subclass needs to implement ``` Alternate names that have been proposed: IsSZArray IsVector The name ""IsSzArray"" has the small advantage that it already exists in both CoreClr and CoreRt - it's just not public. " +16567 area-System.Reflection Proposal: Update Type.GetMethod() overloads to simplify finding generic methods via reflection "# Problem Currently it is quite burdensome to resolve a specific `MethodInfo` for a generic method. That requires looping through all of the methods of the type and manually determining candidates based on name, parameter arity, type compatibility, etc. Such home-grown solutions are generally fragile, making assumptions regarding the specific overloads available for a given generic method at that point in time. # The problem with Type.GetMethod() `System.Type` exposes various apis for retrieving methods by signature. In the end, all of them are wrappers around this single method: ` public MethodInfo GetMethod(string name, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers) ` This api was adequate in a pre-generics world. Once generics appeared however, the api has two serious defects: ### 1. You cannot specify the generic arity. According to ECMA 335, the method signature includes the method's generic arity (generic parameters introduced by the method itself - not to be confused with generic parameters on the type declaring the method.) It is fully possible to have two methods on a type that differ only by generic arity. Despite this, there is no way to constrain the search to a specific generic arity. ### 2. No easy way to specify a generic parameter reference in a signature. To disambiguate between overloads, the api takes an expected signature in the form of a `Type[] `array. The problem is that Type objects in Reflection represent ""resolved types"" rather than ""signature types."" Nevertheless, in a pre-generics world, this was a reasonably adequate way to represent a signature type. However, generics added a new signature type known as the generic parameter reference (ET_VAR/ET_MVAR) which throws a wrench into this scheme. Information-wise, an ET_MVAR is a mere integer (the position index of the generic parameter being referenced.) Unfortunately, the `Type` model in Reflection has no direct analog to this simple construct. Instead, the only option available today to pass in a fully resolved generic parameter _definition_ `Type`, which includes back references to `MethodInfo` that introduced it, a name, the constraints, a metadata token -- the works. For generic method parameters, this creates a chicken and egg problem for the `Type.GetMethod()` api. To unambiguously retrieve a generic method such as this: ` void Foo(T t) {} ` you to have pass in the fully resolved `Type` object for ""T"". But the only way to obtain that is by calling `GetGenericArguments()` on the `MethodInfo` for `Foo`. In other words, **you must already have the method you're looking for in hand before you can call the `Type.GetMethod()` to find it.** # Proposal Part A: Introduce a `genericParameterCount` parameter. On `Type`, introduce the following public overloads: ``` public MethodInfo GetMethod(string name, int genericParameterCount, Type[] types) public MethodInfo GetMethod(string name, int genericParameterCount, Type[] types, ParameterModifier[] modifiers) public MethodInfo GetMethod(string name, int genericParameterCount, BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers); public MethodInfo GetMethod(string name, int genericParameterCount, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers); ``` and the protected overload (which all of the above funnel to): ``` protected virtual MethodInfo GetMethodImpl(string name, int genericParameterCount, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers) => throw new NotSupported; ``` `genericParameterCount` can be any non-negative integer and constrains the search to methods with that generic arity. (In particular, if `genericParameterCount` is 0, the search is constrained to non-generic methods.) The candidates are filtered for generic arity before the binder (if supplied) is invoked. # Proposal Part B: Provide a way to create a `Type` that represents a bare generic parameter reference and constructed types involving them. On `System.Type`, introduce a new static method: ``` public static Type MakeGenericMethodParameter(int position); ``` This method returns a special ""Signature Type"" object that can be passed into `Type.GetMethod()`'s `Type[]` array to represent an ET_MVAR. ## Sample Usage Take this horror show of a type: ``` class Horror { public void Moo(int x, int[] y) {} public void Moo(T x, T[] y) {} public void Moo(int x, int[] y) {} public void Moo(T x, U[] y) {} // <-- We want this one instantiated to ""Moo()"" public void Moo(int x, int[] y) {} } ``` Here's how to pluck this out safely and unambiguously using the new api: ``` Type horror = typeof(Horror); Type theT = Type.MakeGenericMethodParameter(0); Type theU = Type.MakeGenericMethodParameter(1); MethodInfo moo = horror.GetMethod(""Moo"", genericParameterCount: 2, new Type[] { theT, theU.MakeArrayType() }); MethodInfo mooOfIntInt = moo.MakeGenericMethod(typeof(int), typeof(int)); ``` ## `Type` members implemented by Signature Types. Signature Type objects will be very restricted in functionality with most of its members throwing NotSupportedExceptions. It's only purpose is to be used as a search pattern to discriminate between overloaded methods. The following are the apis that actually do something on Signature Types: **Type Compositors:** ``` public Type MakeArrayType(); public Type MakeArrayType(int rank); public Type MakeByRefType(); public Type MakePointerType(); ``` These create the appropriate constructed `Type` around the generic parameter reference. Types created this way have the same restrictions and also belong in the ""signature type"" universe. In addition, `MakeGenericType()` on regular types will be enhanced to accept Signature Types. If one or more argument to `MakeGenericType()` is a Signature Type, the returned type will also be a Signature Type. For performance (and code simplicity reasons), no constraint checking will be done on any of the generic type arguments. The Signature Type will never be used to construct an actual Type, after all, it is simply a pattern used to disambiguate overloads. **Type Flavor Identifiers** ``` public bool IsTypeDefinition; protected bool HasElementTypeImpl(); protected bool IsArrayImpl(); public bool IsSZArray; public bool IsVariableBoundArray; protected bool IsByRefImpl(); public bool IsByRefLike; protected bool IsPointerImpl(); public bool IsGenericType; public bool IsGenericTypeDefinition; public bool IsConstructedGenericType; public bool ContainsGenericParameters; public bool IsSignatureType; public MemberTypes MemberType; ``` (while we don't need all of these, they are all trivial to implement so we might as well keep this set ""safe to call."") **Type Dissectors:** ``` public Type GetElementType(); public int GetArrayRank(); public Type GetGenericTypeDefinition(); public Type[] GenericTypeArguments { get; } public Type[] GetGenericArguments(); public int GenericParameterPosition { get; } ``` This is the minimal set needed to do comparisons between signature types and the actual method parameter type. **Identity:** ``` public bool Equals(object o); public bool Equals(Type o); public int GetHashCode(); public Type UnderlyingSystemType => this; // Only because Equals(Type) has a dependency on this ``` We won't override `System.Object`'s implementations. In other words, these methods will work but have no particular utility value. At the moment, signature types are simply short-lived argument objects to `Type.GetMethod()`. If they never play a bigger role than that, we'll have saved ourselves from writing unnecessary memoization code and detailed equality routines. If they do become something more persistent in the future, we reserve the right to override and implement these to compute actual semantic equality. **Diagnostics:** ``` public string Name { get; } public string Namespace { get; } public string FullName { get; } public string AssemblyQualifiedName => null; public string ToString(); ``` For simple debugging/logging purposes, the `Name` property will emit strings like ""!!0"" and ""!!1"" (the long established ILASM syntax for ET_MVARS.) `Namespace` will return `null`. `FullName` and `AssemblyQualifiedName` will both return `null` (as all open types do.) Anything not mentioned above will throw a `NotSupportedException(""This operation is not supported on signature types."")`. If we find it useful to support additional apis later, this will leave that door open. ## Signature Types passed to other apis that take Types Signature Types are not recognized as ""runtime-implemented Types"" by apis that test for this (""if (type is RuntimeType)). Thus most apis will either throw at that point or hit a NotSupportedException eventually when it calls a non-supported member on type. There are several reasons for this separation: - The Types normally created by the runtime represent fully resolved types with assembly and container member info, not to mention executable IL, loader contexts and runtime application state (static fields.) Signature Types are simply search patterns that include none of those things, and potentially things that resolved types don't (for example, custom modifiers.) From a purist perspective, having the same object represent both is an overlap of concerns. From a pragmantic perspective, creating an entire new parallel Type class for Signature Types is probably going too far, given where .NET is at this point. However, we can at least minimize the issue by keeping the subset that doesn't fit into the ""resolved type"" model separate and restricted to the very limited purpose of passing them into `Type.GetMethod()` routines. - Implementing these as ""third party"" types means we can have a simple non-invasive implementation of them that's sharable between CoreCLR and CoreRT. In particular, we don't have to figure out how to represent them in the unmanaged area of CoreCLR (the latter would drastically reduce the chances of finding anyone to step up and implement this...) # Items not in scope but possible future extensions To keep the proposal to a reasonable size, these items are not in scope - however, we want to keep them in mind while designing this so as not to lock them out in the future. ## A SignatureType for generic parameters on types (ET_VAR) This is an obvious completeness addition. The usability difficulties that motivated this proposal don't apply to generic parameters on types so we don't need this right away. If this usage catches on, though, it would be good to have a consistent language for both types and method generics. This would imply adding the ability to pass Signature Types to the `Type.GetConstructor` and `Type.GetProperty` family of apis and the DefaultBinder methods that support them. For now, this is being left out of scope to keep the api proposal down to size. ## Third party binder/reimplementation support If we want third party binders to be able to recognize and act on these signature types, we'll need to add more surface area to enable that. For now, I'm keeping this out of the scope of the proposal until we've had some experience with this. ## Custom Modifiers Another obvious use of the Signature Type concept would to be a `MakeModifiedType(Type modifier, bool required)` method on `Type`. This would make it possible to disambiguate methods overloaded on custom modifiers. Since this is a completely different usage scenario, it is not in scope here. # Summary of Additions ## Two new api on `System.Type`: ``` public static Type MakeGenericMethodParameter(int position); public virtual bool IsSignatureType => false; ``` Returns a Signature Type representing a reference to a generic parameter on the method. `ArgumentException` if `position < 0`. ## New api overloads on `System.Type`: ``` public MethodInfo GetMethod(string name, int genericParameterCount, Type[] types) public MethodInfo GetMethod(string name, int genericParameterCount, Type[] types, ParameterModifier[] modifiers) public MethodInfo GetMethod(string name, int genericParameterCount, BindingFlags bindingAttr, Binder binder, Type[] types, ParameterModifier[] modifiers); public MethodInfo GetMethod(string name, int genericParameterCount, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers); protected virtual MethodInfo GetMethodImpl(string name, int genericParameterCount, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers) => throw new NotSupported; ``` **New Parameter:** `int genericParameterCount` **Behavior:** Causes `GetMethod()` to disregard methods whose generic arity does not match the specified value. If `genericParameterCount` is 0, disregard all generic methods. This filtering is done before the binder, if supplied, is called. **Exceptions:** `ArgumentException` if `genericParameterCount < 0` ## New behavior for `System.Type.MakeGenericType()` on regular `Type` objects: If one or more arguments to `MakeGenericType()` is a Signature Type, the method switches to the new behavior and constructs a Signature Type. No constraint checking is done (even on the types that aren't signature types.) **Exceptions:** `ArgumentNullException` if any of the parameters are `null`. `ArgumentException` if the number of supplied arguments does not match the number of generic parameters on the ""this"" Type. `InvalidOperationException` if `this.IsGenericTypeDefinition != true` ## New behavior for `System.Type.GetMethod(...)` and `System.Type.DefaultBinder`: The `Type[]` passed to indicate the target method signature can now include Signature Types. Overload discrimination will proceed _as if_ each generic parameter reference embedded within the Signature Type were replaced by the corresponding generic parameter definition introduced by the method being considered. # Reponses to previously asked questions **1. Can we change our implementation of GetMethod(...) to make it easier for instantiating generic methods?** Doing this now by adding a `genericParameterCount` argument that completes the ""missing piece"" of the signature specification. **2. Do we need new APIs?** Yes, when the generic method references its own generic type variables (ET_MVAR) in the signature. It is not practical to expect the caller to pass in a fully resolved generic parameter type since that requires him to have the very MethodInfo that he's looking for. Adding one new api to `System.Type` to create a lightweight Type object that wraps an index and nothing more. **3. Do we want to expose this policy at all or should the selection process be controlled by the consumer?** While I think the current GetMethod() apis have too much policy and complexity in them (binders), this proposal recognizes that these apis are well known and the proposed changes are straightforward extensions. More importantly, the changes introduce no new policy or fuzziness. ""Disregards all methods that don't match the specified generic arity and does so before calling the binder"" is crisp and objective. Similarly, the handing of signature types is ""binding and overloading resolutions occurs _as if_ you'd passed in the actual generic parameter from the method being considered."" So we're not introducing new semantics there - only a saner way of invoking the existing semantics. **4. How do you conceive this proposal working for the overloads that takes the binder?** For part A, binders will receive only those candidates that match the supplied `genericParameterCount.` For part B, binders (other than the DefaultBinder) will receive a Type array with signature types in them that they won't know what to do with. Applications calling these methods with custom binders will have to stick to passing in regular old Types. I think the non-custom binder case is common and useful enough not to block them on this. If we think the custom binder case that that important, the proposal can be extended if necessary to expose the necessary surface area for custom binders to recognize and act on signature types. (It'll be the internal surface area we implement for the DefaultBinder's use.) " +16569 area-System.Xml Remove Xml test binaries These binaries were initially checked in with other test files at time of porting Xml tests. cc: @weshaggard +16571 area-Infrastructure System.Data facade has a lot of bogus global stuff that should be removed GenFacades isn't clearing out the global module references from the assembly when it rewrites it. We should remove those to eliminate bogus type and member references. +16572 area-System.IO Suggestion. Add bluetooth support It would be great to have support for pairing and IO with bluetooth devices for .net core. It is perhaps a bit of a niche, but since self hosting is so easy in asp.net core I think more people than myself would be interested in communicating with BT devices from our self hosted web api's. There is the 32feet bluetooth library, but it does not seem to be very active nowadays. +16577 area-System.Linq Don't use DefaultValueInstruction for nullable types. As the result of the call to `Activator.CreateInstance` will be null for nullable types, just load null directly with the singleton `LoadObjectInstruction` for null values. Since the only test coverage of this instruction was with such a nullable type, add tests for `DefaultExpression` with non-nullable struct types. `DefaultValueInstruction` takes a different path for reference types, but is only used with value types (and now only non-nullable value types) making one of those paths unreachable, so replace the test for `IsValueType` with an assertion. +16580 area-Infrastructure Adding the required support for running uapaot tests locally. cc: @weshaggard @MattGal With these changes now you will be able to run uapaot ilc tests locally, provided that you have restored an ilc toolchain that matches the ProjectN Targeting pack that was used to build. The way to do it, is to first do a full vertical build of uapaot by running: ```cmd build.cmd -framework:uapaot ``` And after doing that, you can run any individual uapaot tests by running: ```cmd msbuild src\Microsoft.CSharp\tests\Microsoft.CSharp.Tests.csproj /t:rebuildandtest /p:TargetGroup=uapaot /p:TestILCFolder= ``` Alternatively, you could also run ```cmd build-tests.cmd -framework:uapaot -- /p:TestILCFolder= ``` but it is not recommended as it will try to ilc.exe every test assembly that we have in the repo, so that will take a long time and a lot of resources from the machine. +16581 area-Infrastructure Restore with correct RIDs for UAP runtime Fixes #16532 With this I was able to successfully build -allConfigurations on mac. /cc @joperezr @weshaggard +16582 area-System.Reflection More bigendian dev changes It also makes it work with NS1.1 cc @jkotas +16583 area-System.Reflection Merge of bigendian branch Don't review/merge I am using this for testing only but have no rights to set labels +16584 area-System.Net [CI Failure] System.Net.Sockets.Performance.Tests failure on code coverage run https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows_prtest/34/consoleFull#-141271452579fe3b83-f408-404c-b9e7-9207d232e5fc ``` System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests.SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync [FAIL] 13:53:36 System.AggregateException : One or more errors occurred. (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) 13:53:36 ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 13:53:36 ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 13:53:36 ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 13:53:36 ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it 13:53:36 Stack Trace: 13:53:36 at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) 13:53:36 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) 13:53:36 at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) 13:53:36 at System.Threading.Tasks.Task.WaitAll(Task[] tasks) 13:53:36 D:\j\workspace\code_coverage---d5838fef\src\Common\tests\System\Net\Sockets\Performance\SocketPerformanceTests.cs(131,0): at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.RunClient(SocketImplementationType testType, EndPoint endpoint, Int32 iterations, Int32 bufferSize, Int32 socketInstances) 13:53:36 D:\j\workspace\code_coverage---d5838fef\src\Common\tests\System\Net\Sockets\Performance\SocketPerformanceTests.cs(51,0): at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.ClientServerTest(Int32 port, SocketImplementationType serverType, SocketImplementationType clientType, Int32 iterations, Int32 bufferSize, Int32 socketInstances, Int64 expectedMilliseconds) 13:53:36 D:\j\workspace\code_coverage---d5838fef\src\Common\tests\System\Net\Sockets\Performance\SocketPerformanceTests.cs(76,0): at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.ClientServerTest(SocketImplementationType serverType, SocketImplementationType clientType, Int32 iterations, Int32 bufferSize, Int32 socketInstances, Int64 expectedMilliseconds) 13:53:36 D:\j\workspace\code_coverage---d5838fef\src\System.Net.Sockets\tests\PerformanceTests\SocketPerformanceAsyncTests.cs(45,0): at System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests.SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync() 13:53:36 ----- Inner Stack Trace #1 (System.Net.Sockets.SocketException) ----- 13:53:36 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 13:53:36 D:\j\workspace\code_coverage---d5838fef\src\Common\tests\System\Net\Sockets\Performance\SocketTestClient.cs(138,0): at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() 13:53:36 ----- Inner Stack Trace #2 (System.Net.Sockets.SocketException) ----- 13:53:36 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 13:53:36 D:\j\workspace\code_coverage---d5838fef\src\Common\tests\System\Net\Sockets\Performance\SocketTestClient.cs(138,0): at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() 13:53:36 ----- Inner Stack Trace #3 (System.Net.Sockets.SocketException) ----- 13:53:36 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 13:53:36 D:\j\workspace\code_coverage---d5838fef\src\Common\tests\System\Net\Sockets\Performance\SocketTestClient.cs(138,0): at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() 13:53:36 ----- Inner Stack Trace #4 (System.Net.Sockets.SocketException) ----- 13:53:36 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) 13:53:36 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 13:53:36 D:\j\workspace\code_coverage---d5838fef\src\Common\tests\System\Net\Sockets\Performance\SocketTestClient.cs(138,0): at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ``` +16585 area-System.Security Port System.Security.Cryptography.Csp to Unix/OSX (scoped to just Security) As part of figuring out issue https://github.com/dotnet/corefx/issues/16563 we found out that there are more PlatformNotSupportedException-s than expected CryptoConfig.CreateFromName for some strings may produce PlatformNotSupported exceptions (because System.Security.Cryptography.Csp is missing) cc: @steveharter @danmosemsft +16586 area-System.Security Remove local resolving in System.Security.Cryptography.Xml Local resolving is defined in CryptoHelpers class see more info about this issue in: https://github.com/dotnet/corefx/pull/16545 This is currently blocked on https://github.com/dotnet/corefx/issues/16585 +16587 area-Infrastructure Update buildtools, enable dumpling on Windows CI jobs This turns on Dumpling for all CI runs (not just Unix), and passes `%TMP%\CoreRunCrashDumps` as the folder to be searched for crash dumps. Our CI machines are set up to put crash dumps in that folder. I needed to reset the startup scripts for the images to actually capture `dotnet.exe`, though, as they were only capturing `corerun.exe` before. So it may take some time for that change to propagate to the active agents. Buildtools is updated along with this. @karelz @danmosemsft +16588 area-System.Security Re-enable asymmetric key generation on macOS. Generate RSA and ECDSA keys via a temporary keychain. When no keychain is given, SecKeyGeneratePair will generate the keys into the default/login keychain. Since the keys were not expected to have been in the keychain, they permanently leak out and the keychain grows over time. Instead, have the managed code provide a temporary keychain into which the keys will be created. Then, export them and re-import them to the NULL keychain. The temporary keychain can then be deleted, and the hard problem of delayed cleanup is avoided. Files on disk will still leak if the process terminates during the key generation phase, but that is a much smaller window than other 'temporary file on disk' solutions. +16589 area-System.Data Managed SNI for Windows The changes include refactoring in SqlClient to build Managed SNI on Windows along with Native SNI. This is the first step towards addressing #16129 The changes involve refactoring TdsParserStateObject into sub classes which contain the SNI specific logic and encapsulate the usage of SNIPacket and SNIHandle There were changes done to extract parts of TdsParser into platform specific files so that the right behavior can be invoked. The current behavior on Windows is under the flag TdsParserNativeObjectFactory.useManagedSni. I will be adding changes to incorporate an AppContext flag to control the SNI behavior. I ran the Functional and Manual tests to validate these changes. cc @corivera @YoungGah @geleems +16590 area-System.Numerics Itermittent failure in System.Numerics.Tests.GenericVectorTests.DivisionSByte Please see: https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/4001/ ``` Discovering: System.Numerics.Vectors.Tests Discovered: System.Numerics.Vectors.Tests Starting: System.Numerics.Vectors.Tests System.Numerics.Tests.GenericVectorTests.DivisionSByte [FAIL] System.OverflowException : Arithmetic operation resulted in an overflow. Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Numerics.Vectors\src\System\Numerics\Vector.cs(4794,0): at System.Numerics.Vector`1.ScalarDivide(T left, T right) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Numerics.Vectors\src\System\Numerics\Vector.cs(2439,0): at System.Numerics.Vector`1.op_Division(Vector`1 left, Vector`1 right) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Numerics.Vectors\tests\GenericVectorTests.cs(802,0): at System.Numerics.Tests.GenericVectorTests.TestDivision[T]() D:\j\workspace\windows_nt_de---4526f5ff\src\System.Numerics.Vectors\tests\GenericVectorTests.cs(775,0): at System.Numerics.Tests.GenericVectorTests.DivisionSByte() Finished: System.Numerics.Vectors.Tests ``` +16593 area-System.Memory "Test: System.SpanTests.ReadOnlySpanTests/IndexOverflow failed with ""System.OutOfMemoryException""" Opened on behalf of @Jiayili1 The test `System.SpanTests.ReadOnlySpanTests/IndexOverflow` has failed. System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. Stack Trace: at System.ReadOnlySpan`1..ctor(Void* pointer, Int32 length) at System.SpanTests.ReadOnlySpanTests.IndexOverflow() in /root/corefx/src/System.Memory/tests/ReadOnlySpan/Overflow.cs:line 36 Build : Master - 20170301.02 (Core Tests) Failing configurations: - suse.421.amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170301.02/workItem/System.Memory.Tests/analysis/xunit/System.SpanTests.ReadOnlySpanTests~2FIndexOverflow +16594 area-System.Security Investigate if we can build System.Security.Cryptography.Xml against netstandard "ref: https://github.com/tintoy/corefx/commit/eaa78efb30d3581ae871015cf9be637e6deb36c3 ```diff - netstandard; + netcoreapp; + uap; - + ``` Check if uap is appropriate and if it is not missing anything cc: @danmosemsft @joperezr" +16596 area-System.Diagnostics Debug.WriteLine does not write to Trace.Listeners "In net45, calling Debug.WriteLine would pass the message to the `Trace.Listeners` collection. But in corefx, that doesn't happen. The following program can be compiled for net45 or netcoreapp1.0 (with the `System.Diagnostics.TraceSource` package installed): ```csharp using System; using System.Diagnostics; namespace ConsoleApp41 { class Program { static void Main(string[] args) { Trace.Listeners.Add(new MyListener()); Trace.WriteLine(""Traced message""); Debug.WriteLine(""Debug message""); } private class MyListener : TraceListener { public MyListener() { } public override void Write(string message) { Console.WriteLine(""Our listener got: "" + message); } public override void WriteLine(string message) { Console.WriteLine(""Our listener got: "" + message); } } } } ``` When run on .NET Framework, the output is: ``` Our listener got: Traced message Our listener got: Debug message ``` For `dotnet run` the output is merely: ``` Our listener got: Traced message ```" +16597 area-System.Data SQL Server connection fails on centos,but succeeds on windows and in all other tools "I'm running a webapi project by dotnetcore on centos.but it is failed to connect to MSSQL. In order to find the problem, I try to use the telnet to determine whether the server port, try to find the next is normal, and the project in the Windows environment are successful, the database can be connected, but deployed to centos is not connected to the database. Error like this: Microsoft.AspNetCore.Server.Kestrel[13] Connection id ""0HL30IKDGRVD6"": An unhandled exception was thrown by the application. System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 35 - An internal exception was caught) ---> System.AggregateException: One or more errors occurred. (No such device or address) ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException: No such device or address Connection string example: Data Source=192.168.1.5\\SQLSERVER2008;Initial Catalog=AwardSysDB;User ID=xx;Password=xx;min pool size=100;max pool size=250; Data Source=192.168.1.5,1435;Initial Catalog=AwardSysDB;User ID=xx;Password=xx;min pool size=100;max pool size=250; " +16598 area-System.Net Unable to use System.Net.NetworkCredential inside docker I am trying to authenticate my call to a SSRS report server hosted outside the docker application. And to accress the report I do the following: ```c# HttpWebRequest webRequest = WebRequest.Create(sTargetURL) as HttpWebRequest; webRequest.Credentials = new NetworkCredential(strReportUser, strReportUserPW); WebResponse HttpWResp = await webRequest.GetResponseAsync(); ``` But I continuesly get 401 unauthorized. The approach of NetworkCredentials works fine when I am doing the same inside my Azure Hosted App service and also my local. The credentials that I set on the header inside the docker environment, simply do not carry forward upto the report server and I get the error. +16599 area-System.Threading "System.Threading.Tasks.Dataflow.Tests.DataflowBlockExtensionsTests.TestNullTarget_CompletionNoCaching failed with ""Xunit.Sdk.EqualException"" in CI" Configuration: OuterLoop_Fedora23_debug ([build#117](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora23_debug/117/testReport/)). Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora23_debug/117/consoleText Message: ~~~ System.Threading.Tasks.Dataflow.Tests.DataflowBlockExtensionsTests.TestNullTarget_CompletionNoCaching [FAIL] Assert.False() Failure Expected: False Actual: True ~~~ Stack Trace: ~~~ /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Threading.Tasks.Dataflow/tests/Dataflow/DataflowBlockExtensionTests.cs(134,0): at System.Threading.Tasks.Dataflow.Tests.DataflowBlockExtensionsTests.TestNullTarget_CompletionNoCaching() ~~~ +16601 area-Infrastructure BuildConfiguration is ignored in src subfolders When building using `C:\temp\corefx-dev\src\System.Reflection.Metadata>msbuild /p:BuildConfiguration=netstandard1.1` BuildConfiguration is ignored and netcoreapp version is built instead. +16602 area-System.Net System.Net.NetworkInformation.Functional.Tests test suite hung in CI on Unix https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_ubuntu14.04_debug_prtest/91/consoleText I unfortunately don't have more info than that they hung, and the build was aborted after waiting for 2 hours. cc: @mellinoe +16603 area-System.Reflection One more unchecked scope cc @jkotas +16605 area-System.Collections Expose and test (I)Dictionary.GetValueOrDefault Running `msbuild src\System.Collections\src\System.Collections.csproj /p:TargetGroup=uapaot /p:BaselineAllApiCompatError=true` doesn't seem to change anything but I hope this passes CI Fixes #3482 +16606 area-System.Runtime System.Tests.GCTests.GetAllocatedBytesForCurrentThread failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/4033/testReport/junit/System.Tests/GCTests/GetAllocatedBytesForCurrentThread_size__100000_/ ``` Allocated too little: start: 71693312 end: 71693312 size: 100000\r\nExpected: True\r\nActual: False +++++++++++++++++++ STACK TRACE: at System.Tests.GCTests.GetAllocatedBytesForCurrentThread(Int32 size) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Runtime\tests\System\GCTests.netcoreapp.cs:line 23 ``` +16607 area-System.Net Improve NetworkStream test coverage and remove dead code Removes dead code from NetworkStream and adds tests, boosting code coverage from 38.4% line and 30.2% branch before to 98.9% line and 90% branch after. Fixes #11904 cc: @geoffkizer, @CIPop +16609 area-System.Text Fix parsing of regex alternation construct with named options Fixes #1476 I've tried to add a bunch of targetted tests as well as a bunch of fuzzer-style tests. Let me know if you have any suggestions for others. +16610 area-System.Net Failure in System.Net.Http.Functional.Tests/DiagnosticsTest/SendAsync_ExpectedDiagnosticCancelledLogging/ Broken out of https://github.com/dotnet/corefx/issues/16430 https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win10_debug/109/testReport/System.Net.Http.Functional.Tests/DiagnosticsTest/SendAsync_ExpectedDiagnosticCancelledLogging/ +16611 area-System.Net NetworkStream.CopyToAsync/ReadAsync completing successfully on Unix when disposed during call On Windows this passes. On Unix sometimes the operation completes successfully without an exception being thrown. ```c# Task copyTask = stream.CopyToAsync(new MemoryStream()); stream.Dispose(); await Assert.ThrowsAsync(() => copyTask); ``` +16613 area-System.Diagnostics Port source for FileVersionInfo test binaries We don't have source for ```NativeLibrary.dll``` or ```SecondNativeLibrary.dll``` available anywhere. I wasn't able to find it in the TFS maze, but it wouldn’t be difficult to rewrite them if we can’t find the source and decide we need the ability to rebuild them. They don't need to be included in the build, but they need some sort of instructions to build or a batch script alongside the sources so we can rebuild them easily in the future when needed. They should probably go to https://github.com/dotnet/corefx-testdata +16615 area-System.Diagnostics Account for resolution in Process ExitTime test resolves https://github.com/dotnet/corefx/issues/16489 @stephentoub +16616 area-System.Numerics DivisionReflectionSByte test overflow exception https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/4015/consoleText ``` System.Numerics.Tests.GenericVectorTests.DivisionReflectionSByte [FAIL] System.OverflowException : Arithmetic operation resulted in an overflow. Stack Trace: /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/src/System.Numerics.Vectors/src/System/Numerics/Vector.cs(4794,0): at System.Numerics.Vector`1.ScalarDivide(T left, T right) /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/src/System.Numerics.Vectors/src/System/Numerics/Vector.cs(2439,0): at System.Numerics.Vector`1.op_Division(Vector`1 left, Vector`1 right) ``` +16618 area-System.Security Replace 'int' with 'int32_t' and reformat source. There weren't very many that weren't part of method signatures, so all of the usages of int were replaced with int32_t. `char` (the other common not-always-right type) was checked and all instances are for strings, none were being used when uint8_t was meant instead. +16619 area-System.Runtime Add FormattableString.CurrentCulture "We've told developers for a long time that they should be explicit about which cultures they use for formatting. In fact, we have FXCop rules like [CA1305](https://msdn.microsoft.com/en-us/library/ms182190.aspx) that flag non-explicit use. String interpolation in C# follows what virtually all our formatting APIs do unless instructed otherwise: it will format the string using the current culture. While we have `FormattableString.Invariant`, which allows customers to use the invariant culture, like so: ```C# string text = FomattableString.Invariant($""This will be formatted using invariant {i}""); ``` We don't have a way in string interpolation to explicitly indicate that we intend to use the current culture. This proposes an API to allow that. It would be a way to suppress FXCop rule CA1305. ### Proposal ```C# namespace System { public partial class FormattableString { // Existing API: // public static string Invariant(FormattableString formattable); public static string CurrentCulture(FormattableString formattable); } } ``` ### Usage ```C# // These are now equivalent string text1 = $""This will be formatted using current culture {i}""; string text2 = FomattableString.CurrentCulture($""This will be formatted using current culture {i}""); ``` /cc @gafter " +16622 area-System.Security using pool for buffer in HashAlgorithm this creates new 4K buffer every time computing hash https://github.com/dotnet/corefx/blob/e9ecf74d845476540f40fa8fdc62c53ebf048519/src/System.Security.Cryptography.Primitives/src/System/Security/Cryptography/HashAlgorithm.cs#L78 which is probably fine when creating hash for 1 or 2 values. but when creating large numbers of hashes that adds up quite quickly. one of examples of those cases will be C# compiler compiling that need to create SHA1 hashes for all source files and many more for pdb and other identifies. pooling that buffer seems easy allocation win. +16625 area-System.Net Improve CI: disable WebSocket test ReceiveAsync_Cancel_Success "Disable test that has been failing every few days: https://github.com/dotnet/corefx/issues/13302 It is failing because the test verifies the exact WebSocketException exception string which does not always match. Recent error messages not accounted for: - ""The WebSocket is in an invalid state ('Aborte···"" - ""The remote party closed the WebSocket connect···"" @ianhays Pertains to #14519" +16626 area-System.Collections Do something with IReadOnlyCollection and ICollection. We needs good abstractions hierarchy. Just drop IReadOnly****, mark them obsolete. We can't do anything with backward compatibility here. If we inherit ICollection from IReadOnlyCollection we will broke existing code. See: http://stackoverflow.com/questions/12622539/why-doesnt-generic-icollection-implement-ireadonlycollection-in-net-4-5 But may be sometime will be good point do do this breaking change, provide tools for migration automation. And also IReadOnly*** is not clear solution, we needs IReadable*** and IImmutable**** This is not-null reference types like problem. But it's second after nullability. Let's start/continue to solve this problem. +16627 area-System.Xml Remove ThisAssembly.cs from System.Private.Xml Resolves https://github.com/dotnet/corefx/issues/12175. Replaces the const assembly version with the assembly version in runtime. cc: @danmosemsft @weshaggard +16628 area-System.Net fix p/invoke marshalling of WSABuffers Our p/invoke definitions of WSARecv etc were defined to take a WSABuffer[]. This caused copy-in/copy-out marshalling, which caused timing issues because the WSABuffers should not be touched after the WSARecv call returns IOPending. Fix this by changing the p/invoke definitions to take WSABuffer*. Fixes #16213 +16629 area-System.Runtime Proposed additions to RuntimeInformation "https://github.com/dotnet/corefx/issues/12737 # RuntimeInformation ## Rational and Usage It is often desirable and necessary for applications to determine execution environment and runtime information. Existing information provided by `System.Runtime.InteropServices.RuntimeInformation` could be enhanced and expanded with additional API to provide robust information. [System.Runtime.InteropServices.RuntimeInformation](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.InteropServices.RuntimeInformation/ref/System.Runtime.InteropServices.RuntimeInformation.cs) currently provides surface for some of information though modification to current behavior or addition API may be needed. ### Existing API * OSPlatform * ProcessAchitecture * OSArchitecture * OSDescription * FrameworkDescription * IsOSPlatform ### Proposed additions * OSName - Windows, Mac, Ubuntu, Red Hat Enterprise Linux Server * OSVersion - following the previous examples - 10.0.15027, 10.12.3, 16.10, 7.2 * RuntimeVersions - Runtime version currently used by the application, eg NETCore.App 1.0.4 * InstalledRuntimeVersions - List of targetable runtime on system ## Open Questions ## Updates ## Appendix `/etc/os-release` will have the pertinent information on all systemd-based distros. All distros in our current support set use systemd. Alpine Linux includes `/etc/os-release`. Variables can be accessed directly with `( source /etc/os-release && echo ""$PRETTY_NAME"" )` ``` Fedora: NAME=Fedora VERSION=""24 (Workstation Edition)"" ID=fedora VERSION_ID=24 PRETTY_NAME=""Fedora 24 (Workstation Edition)"" ANSI_COLOR=""0;34"" CPE_NAME=""cpe:/o:fedoraproject:fedora:24"" HOME_URL=""https://fedoraproject.org/"" BUG_REPORT_URL=""https://bugzilla.redhat.com/"" REDHAT_BUGZILLA_PRODUCT=""Fedora"" REDHAT_BUGZILLA_PRODUCT_VERSION=24 REDHAT_SUPPORT_PRODUCT=""Fedora"" REDHAT_SUPPORT_PRODUCT_VERSION=24 PRIVACY_POLICY_URL=https://fedoraproject.org/wiki/Legal:PrivacyPolicy VARIANT=""Workstation Edition"" VARIANT_ID=workstation Alpine: NAME=""Alpine Linux"" ID=alpine VERSION_ID=3.5.0 PRETTY_NAME=""Alpine Linux v3.5"" HOME_URL=""http://alpinelinux.org"" BUG_REPORT_URL=""http://bugs.alpinelinux.org"" ``` /cc @richlander , @mellinoe , @Petermarcu , @AlexGhiondea , @weshaggard , @danmosemsft " +16631 area-System.Net Remove check for safewinhttphandles to depend on finalization. Checking for handle count depends on when ReleaseHandle on the safehandle is called. The invocation of ReleaseHandle is dependent on when the finalizer thread executes this object from ReadyToFinalize queue. Since this is not testing the SafeWinHttpHandle, removing this check from the networking test library. fixes #13951 cc @jkotas @karelz @steveharter @ianhays +16632 area-System.Data Disable manual test in Helix Fixes https://github.com/dotnet/corefx/issues/16178 @saurabh500 @MattGal +16633 area-System.Net Remove HttpRequest serialization test Fixes https://github.com/dotnet/corefx/issues/14068 I suspect https://github.com/dotnet/corefx/pull/14175 fixed this and I forgot to enable it. It passes now. @Priya91 +16634 area-System.Security Add symmetric and asymmetric XML encryption samples Add significantly simplified MSDN samples. This was building and passing correctly on Windows but it is possible it will fail on Linux cc: @bartonjs @morganbr on MSDN they were using `try .. finally { key.Clear(); }` pattern - I have changed that to `using (var key = ...) { }` - is that correct or was Clear doing something more? FYI @tintoy @anthonylangsworth @peterwurzinger +16635 area-Meta OverflowException when casting int to short "The following code succeeds when running a test app created via ""dotnet new"", but fails when running in our System.Data tests on the latest version of CoreFx. Similar code was succeeding in SqlClient at least 2 weeks ago, but has been causing test failures recently. ```c# int value = 0xff << 8; short shortValue = (short)value; ``` This gets thrown on the line for the cast to a short: System.OverflowException : Arithmetic operation resulted in an overflow. @saurabh500 @stephentoub" +16636 area-Serialization XmlSerializer.Serialize performance issues on linux I recently profiled some asp.net core code that uses XmlSerializer and noticed some differing performance results when comparing Windows and Linux execution. I have a test program https://github.com/deppe/XmlSerializerPerf that runs XmlSerializer.Deserialize 1000 times, then runs XmlSerialize.Serialize 1000 times and prints the total time for each. On windows, Serialize and Deserialize take a similar amount of time. For example: ``` Deserialize time 1351 ms Serialize time 1210 ms Serialize took 47.25% of total time ``` On linux, Serialize is much slower relative to Deserialize: ``` Deserialize time 1239 ms Serialize time 4432 ms Serialize took 78.15% of total time ``` I tried both dotnet version 1.0.0-preview2-1-003177 and 1.0.0-preview2-003131 and got similar results. Is this expected? Are there any plans to improve the performance of XmlSerializer.Serialize on linux? +16637 area-Infrastructure dir.props cleanup "There is some dead stuff there since the core eng work eg TargetGroup=uap101 is not set when building a vertical. @joperezr ``` true true ```" +16638 area-Infrastructure Running tests against an non-platform configuration doesn't work Today if you have multiple build configurations like https://github.com/dotnet/corefx/blob/master/src/System.Reflection.Metadata/src/Configurations.props. You can build an individual build configuration locally for that test project but there isn't a good way to run the tests on that older configuration. In other words how do you run the System.Reflection.Metadata.Tests against .NET Core but using the netstandard1.1 build configuration as opposed to the netcoreapp build configuration of System.Reflection.Metadata.dll? At this point we don't have a great way to handle this case but this issue should track the missing scenario and decide whether or not we provide a way to hack it or provide first class support. +16640 area-System.Security HMACSHA256/HMAC.Create() throw PNSE cc: @bartonjs @danmosemsft HMAC.Create throws PNSE where it could potentially work by simply using a constructor Is this something we should possibly support? +16641 area-System.Net Re-enable Socket perf test on OSX With changes from https://github.com/dotnet/corefx/pull/15679/files and comments from @geoffkizer, re-enabling this per issue https://github.com/dotnet/corefx/issues/13349. Test will be monitored over next few days to see if it fails. +16642 area-System.Collections TryAdd exposure/implementation This is the matching PR for https://github.com/dotnet/coreclr/pull/9923. Fixes #1942 /cc @stephentoub, @ianhays, @safern, @danmosemsft +16643 area-Serialization Area-Serialization Sprint 115 The issue is for tracking issues to be done in sprint 115 (due by 3/24/2017). +16644 area-Serialization Run DCS/DCJS Tests in CoreFx against uapaot. Running tests against uapaot is not supported. The task is to make our DCS/DCJS test projects build and run against uapaot. +16645 area-Serialization Investigate Issues with DCS/DCJS Reflection-based Serialization on Uapaot Upon the completion of #16644, we'd like to investigate if Reflection-based Serialization for DCS/DCJS work on Uapaot. +16646 area-System.Xml Improve code coverage for System.Xml.XPath These are some of the bigger types with low coverage in `System.Xml.XPath`. It would be great if we could add more tests to reach 80-90% coverage on these: - [ ] System.Xml.XPath.Extensions 20% - [ ] System.Xml.XPath.XPathNavigator 21% - [ ] System.Xml.XPath.XPathNodeIterator 42.6% Detailed coverage report: https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/ +16647 area-Serialization Investigate Issues with DCS/DCJS Serializing ISerializable on Uapaot Upon the completion of #16644, we'd like to investigate if DCS/DCJS can serialize ISerializable types on Uapaot. +16649 area-System.Xml Improve code coverage for System.Xml.Schema These are some of the bigger types with low coverage in `System.Xml.Schema`. It would be great if we could add more tests to reach 80-90% coverage on these (data updated on 2017/12/11): - [ ] System.Xml.Schema.XmlAtomicValue 36.7% (was 33.7% originally) - [ ] System.Xml.Schema.XmlSchemaAny 36.5% - [ ] System.Xml.Schema.XmlSchemaAnyAttribute 74.5% (was 36.3% originally, see #22020) - [ ] System.Xml.Schema.XmlSchemaCollection 42.6% - [ ] System.Xml.Schema.XmlSchemaInference 17.8% Detailed coverage report: https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/ +16650 area-System.Xml Improve code coverage for System.Xml.Xsl.Runtime These are some of the bigger types with low coverage in `System.Xml.Xsl.Runtime`. It would be great if we could add more tests to reach 80-90% coverage on these: - [ ] System.Xml.Xsl.Runtime.XmlCollation 45.6% - [ ] System.Xml.Xsl.Runtime.XmlQueryOutput 53.1% - [ ] System.Xml.Xsl.Runtime.XmlQueryRuntime 46.3% - [ ] System.Xml.Xsl.Runtime.XsltFunctions 10.3% - [ ] System.Xml.Xsl.Runtime.XsltLibrary 34.2% Detailed coverage report: https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/ +16651 area-System.Net "[CI Failure] ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_MismatchProtocols_Fails: ""The credentials supplied to the package were not recognized""" https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/4083/consoleFull#-126103689779fe3b83-f408-404c-b9e7-9207d232e5fc ``` System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_MismatchProtocols_Fails(serverProtocol: Tls, clientProtocol: Tls11, expectedException: typeof(System.Security.Authentication.AuthenticationException)) [FAIL] 15:48:14 Assert.Throws() Failure 15:48:14 Expected: typeof(System.Security.Authentication.AuthenticationException) 15:48:14 Actual: typeof(System.ComponentModel.Win32Exception): The credentials supplied to the package were not recognized 15:48:14 Stack Trace: 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\Interop\Windows\sspicli\SSPIWrapper.cs(167,0): at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStreamPal.Windows.cs(407,0): at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStreamPal.Windows.cs(131,0): at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs(680,0): at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs(783,0): at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs(704,0): at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs(767,0): at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs(982,0): at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs(937,0): at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs(885,0): at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs(693,0): at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs(614,0): at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStream.cs(160,0): at System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStream.cs(257,0): at System.Net.Security.SslStream.<>c__DisplayClass35_0.b__0(AsyncCallback callback, Object state) 15:48:14 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) 15:48:14 at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStream.cs(257,0): at System.Net.Security.SslStream.AuthenticateAsServerAsync(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) 15:48:14 D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\tests\FunctionalTests\ServerAsyncAuthenticateTest.cs(154,0): at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() 15:48:14 --- End of stack trace from previous location where exception was thrown --- 15:48:14 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 15:48:14 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 15:48:14 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +16652 area-Meta Move pal_random to System.Native from CoreRT Move https://github.com/dotnet/corert/blob/master/src/Native/System.Private.CoreLib.Native/pal_random.cpp to System.Native so that it can be shared between CoreCLR and CoreRT CoreLibs +16653 area-System.Diagnostics Disable Process perf tests With the new performance harness tooling that we are adding we generate too many events during the Process performance tests. This causes to drop events and fail to upload results. We should fix these tests, but I would like to go ahead and start getting results for the rest of the tests so I am going to disable these until we do the work to fix them. +16654 area-System.Security XmlDsigC14NTransformTest failure due to concurrent file access "@krwq @tintoy @anthonylangsworth there are several tests potentially creating a file named `doc.dtd` in the same folder concurrently. They should use a pattern like ``` c# using (var directory = new TempDirectory()) using (var file = new TempFile(Path.Combine(directory.Path, ""doc.dtd""))) {.. } ``` ``` MESSAGE: System.IO.IOException : The process cannot access the file 'D:\\j\\workspace\\outerloop_win---bf7c4efa\\bin\\AnyOS.AnyCPU.Debug\\System.Security.Cryptography.Xml.Tests\\netcoreapp\\doc.dtd' because it is being used by another process. +++++++++++++++++++ STACK TRACE: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStreamHelpers.CreateFileStream(String path, Boolean write, Boolean append) in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Runtime.Extensions\src\System\IO\FileStreamHelpers.CoreClr.cs:line 10 at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Runtime.Extensions\src\System\IO\StreamWriter.cs:line 140 at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding) in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Runtime.Extensions\src\System\IO\StreamWriter.cs:line 125 at System.Security.Cryptography.Xml.Tests.XmlDsigC14NTransformTest.C14NSpecExample1() in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Security.Cryptography.Xml\tests\XmlDsigC14NTransformTest.cs:line 217 ```" +16655 area-System.Threading Failure in System.Threading.OverlappedTests https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_release/lastCompletedBuild/testReport/(root)/OverlappedTests/PropertyTest1/ Note that the Assert.Equal's in this test file are backwards -- the expected value is supposed to go first. So it's actually expecting 0 and getting 2. Please fix... https://github.com/dotnet/corefx/blob/ec2a6190efa743ab600317f44d757433e44e859b/src/System.Threading.Overlapped/tests/OverlappedTests.cs#L39 ``` MESSAGE: Assert.Equal() Failure\r\nExpected: 2\r\nActual: 0 +++++++++++++++++++ STACK TRACE: at OverlappedTests.PropertyTest1() in D:\j\workspace\outerloop_win---65ef7d78\src\System.Threading.Overlapped\tests\OverlappedTests.cs:line 40 ``` @kouvel @alexperovich +16656 area-System.Reflection Add attribution and other information for tests /cc @Petermarcu @weshaggard +16657 area-System.Security Temporary fix for dotnet/corefx#16654 As noted in dotnet/corefx#16654, some of the tests ported from mono were not designed to be run concurrently. I've modified them so they use the test name as a prefix for the `.dtd` / `.txt` files used in the tests. cc: @danmosemsft @krwq +16658 area-System.Security "Test ""System.Security.Cryptography.Xml.Tests.XmlDsigC14NWithCommentsTransformTest.C14NSpecExample1_WithoutResolver"" failed in CI" Configuration: OuterLoop_Windows10_release ([build#116](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win10_release/116/testReport/)) Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win10_release/116/consoleText Message: ~~~ System.Security.Cryptography.Xml.Tests.XmlDsigC14NWithCommentsTransformTest.C14NSpecExample1_WithoutResolver [FAIL] System.AggregateException : One or more errors occurred. (The process cannot access the file 'D:\j\workspace\outerloop_win---6835b088\bin\AnyOS.AnyCPU.Release\System.Security.Cryptography.Xml.Tests\netcoreapp\doc.dtd' because it is being used by another process.) (File.Delete() is not working.) ---- System.IO.IOException : The process cannot access the file 'D:\j\workspace\outerloop_win---6835b088\bin\AnyOS.AnyCPU.Release\System.Security.Cryptography.Xml.Tests\netcoreapp\doc.dtd' because it is being used by another process. ---- System.Exception : File.Delete() is not working. ~~~ Stack Trace: ~~~ ----- Inner Stack Trace #1 (System.IO.IOException) ----- at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) D:\j\workspace\outerloop_win---6835b088\src\System.Runtime.Extensions\src\System\IO\FileStreamHelpers.CoreClr.cs(10,0): at System.IO.FileStreamHelpers.CreateFileStream(String path, Boolean write, Boolean append) D:\j\workspace\outerloop_win---6835b088\src\System.Runtime.Extensions\src\System\IO\StreamWriter.cs(137,0): at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) D:\j\workspace\outerloop_win---6835b088\src\System.Security.Cryptography.Xml\tests\XmlDsigC14NWithCommentsTransformTest.cs(133,0): at System.Security.Cryptography.Xml.Tests.XmlDsigC14NWithCommentsTransformTest.C14NSpecExample1_WithoutResolver() ----- Inner Stack Trace #2 (System.Exception) ----- D:\j\workspace\outerloop_win---6835b088\src\System.Security.Cryptography.Xml\tests\XmlDsigC14NWithCommentsTransformTest.cs(56,0): at System.Security.Cryptography.Xml.Tests.XmlDsigC14NWithCommentsTransformTest.Dispose() C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Extensions\ReflectionAbstractionExtensions.cs(76,0): at ReflectionAbstractionExtensions.DisposeTestClass(ITest test, Object testClass, IMessageBus messageBus, ExecutionTimer timer, CancellationTokenSource cancellationTokenSource) ~~~ +16660 area-System.Collections Proposal: Add IsImmutable property to IReadOnlyCollection and IReadOnlyDictionary "When https://github.com/dotnet/csharplang/issues/52 feature will be added to C#/CLR (at least in restricted form), we will have ability to extend base BCL contracts. This proposal rely on this suggestion and tries to solve ambiguous semantic of `ICollection.IsReadOnly` property. We needs a new property. ```CSharp public interface IReadOnlyCollection { bool IsImmutable { get;} } public interface ICollection { bool IsImmutable { get;} } public interface IReadOnlyDictionary { bool IsImmutable { get;} } public interface IDictionary { bool IsImmutable { get;} } ``` Let suppose we have two different collections both inherited from ICollection<T> First example is when library allows to access some internal collection by the interface. ```CSharp internal class PrivateCollection: ICollection { // Read methods allowed for library and for external usage. bool Contains(T item) { // Some valid implementation. } // This method is only allowed for some library internal classes. internal void Add(T item) { // Some valid imiplementation. } // Modification is closed for external users, but not for internal. void ICollection.Add(T item) { throw new NotSupportedException(); } public bool IsReadOnly { get { // In this case true mean - this collection allowed to only read from ICollection // interface. // But does not guaranties that collection will not be changed by some internal method. return true; } } } ``` this is ReadOnly meaning of IsReadOnly property. --- Second collection can be well known ImmutableList ```CSharp public class ImmutableList: ICollection { bool ICollection.IsReadOnly { get { // Here it tells that collection is not only ""ReadOnly"" but also will never be changed by nobody. return true; } } } ``` Probably ""it's too late"" and we have tons of code one collections uses ReadOnly semantic another Collections uses ReadOnly+Immutable semantic. But now we can do the next improvement in the documentation: IsReadOnly says that only: all mutation method will return NotSupportedException or InvalidOperationException. And no any more guaranties. " +16661 area-System.Collections Proposal: Add full family of Immutable collection contracts. "```C# public interface IImmutableEnumerable: IEnumerable {} public interface IImmutableCollection: IReadOnlyCollection, IImmutableEnumerable() public interface IImmutableListSlim: IReadOnlyList, IImmutableCollection{} public interface IImmutableSetSlim: IReadOnlySet, IImmutableCollection() public interface IImmutableDictionarySlim: IReadOnlyDictionary, IImmutableCollection>{} // also improve public interface IImmutableList: IImmutableListSlim{} public interface IImmutableArray: IImmutableListSlim{} public interface IImmutableSet: IImmutableSetSlim{} public interface IImmutableDictionary: IImmutableDictionarySlim{} ``` Motivation: ```CSharp public class MyClass { public MyClass(IReadOnlyList someIds) { // Currently I cannot rely that someIds will never change. // I every time think: should I copy this collection or I can use it as-is. // Ok, it's not a trouble I can copy, but stop, what if this place will be performance critical ??? // no I don't want to copy. // Let assume nobody will never change this collection. <== TOTALLY WRONG! SomIds = someIds; // also I performed some loading based on this ids. // and store result in the instance. // ids list will be hardly used by this component and consumers of this components. } public IReadOnlyList SomeIds {get;} } // Some other place, some newbie developer... public void SomeCreationPlace() { // ... // Some algorithm with bugs. var ids = new List(); while (someCondition) { for(int i = 0; i++; i { public IEnumerator GetEnumerator() { throw new NotImplementedException(); } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } public int Count { get { throw new NotImplementedException(); } } public int this[int index] { get { throw new NotImplementedException(); } } public IImmutableList Clear() { throw new NotImplementedException(); } public IImmutableList Add(int value) { throw new NotImplementedException(); } public IImmutableList Replace(int oldValue, int newValue, IEqualityComparer equalityComparer) { throw new NotImplementedException(); } public IImmutableList SetItem(int index, int value) { throw new NotImplementedException(); } public IImmutableList RemoveAt(int index) { throw new NotImplementedException(); } public IImmutableList RemoveRange(int index, int count) { throw new NotImplementedException(); } public IImmutableList RemoveRange(IEnumerable items, IEqualityComparer equalityComparer) { throw new NotImplementedException(); } public IImmutableList RemoveAll(Predicate match) { throw new NotImplementedException(); } public IImmutableList Remove(int value, IEqualityComparer equalityComparer) { throw new NotImplementedException(); } public IImmutableList InsertRange(int index, IEnumerable items) { throw new NotImplementedException(); } public IImmutableList Insert(int index, int element) { throw new NotImplementedException(); } public IImmutableList AddRange(IEnumerable items) { throw new NotImplementedException(); } public int LastIndexOf(int item, int index, int count, IEqualityComparer equalityComparer) { throw new NotImplementedException(); } public int IndexOf(int item, int index, int count, IEqualityComparer equalityComparer) { throw new NotImplementedException(); } } } ``` Really too heavy. I do not want Add(), Remove(). I just what IReadOnlyList + Immutability guaranty. CURRENTLY WE HAVE NOTHING. We can introduce slim immutable contracts (with usual hierarchy): ```CSharp public class MyClass { // No comments all clear. public MyClass(IImmutableListSlim someIds) { SomIds = someIds; } // This collection instance can travel across components, threads, call chains safely. public IImmutableListSlim SomeIds {get;} } ``` " +16662 area-Microsoft.CSharp CSharpCodeGenerator outputs sealed override methods as virtual "CSharpCodeGenerator will output a method with Attributes of `Public`, `Final` and `Override` as a virtual method. I guess it should be output as a sealed override method ```c# [Test] public void SealedOverride() { using (CSharpCodeProvider provider = new CSharpCodeProvider()) { CodeMemberMethod method = new CodeMemberMethod { Name = ""TestMethod"", Attributes = MemberAttributes.Public | MemberAttributes.Final | MemberAttributes.Override, ReturnType = new CodeTypeReference(typeof(string)) }; using (var writer = new StringWriter()) { provider.GenerateCodeFromMember(method, writer, new CodeGeneratorOptions()); string output = writer.ToString().Replace(""\r\n"", string.Empty); Assert.AreEqual(output, ""public sealed override string TestMethod() {}""); //Actually outputs ""public virtual string TestMethod() {}"" } } } ```" +16663 area-Microsoft.CSharp Clean-up and optimise Microsoft.CSharp.RuntimeBinder.Semantics.TypeArray Clean-up: Has `Size`, `size` and `Count` properties all doing the same thing. Consolidate into a single property. While `size` is the most heavily used and `Count` the least, `Count` is the most .NET idiomatic, so leave it as the sole property. Has both `Item()` method and indexer. Replace use of `Item()` with use of indexer, and remove `Item()` method. Debug-only `AssertValid()` method can be made conditional rather than wrapped in `#if`/`#endif` for cleaner use. While this means it will be compiled to the release build rewriting the assertion within it to be a single linq operation means it will be compiled as an empty method for those so the cost in IL size is much less than the savings made above. Optimise: `HasErrors` property is hard-coded to return false and therefore of not really checking anything. Remove. All uses of `ToArray()` do not mutate the resultant array so exposing the `_items` field as a public `Items` property is safe, and avoids many allocations and copies. Constructor is never called with null, so remove null path, but assert that null isn't passed. +16664 area-Microsoft.CSharp Make Microsoft.CSharp use the coding style more like the rest of corefx I've already done some changes along these lines, though mostly when there was another benefit (if often a pretty tiny optimisation if considered solely as such). Having been ported from C++ code has left its mark in some strange constructs, unconventional names, Get/Set method pairs instead of (or as well as) properties, etc. I don't know about anyone else, but I think I would have found the fixes at #15397 and #16085 a lot quicker than I did if the code more closely followed common C# conventions. This issue is to track changes to make the coding style more usual, which I intend to do in earnest once I've finished #8081 as my current long-burner issue. I intend to do so incrementally as one massive PR would be a nightmare to review. This also gives anyone who can think of a good reason for leaving alone somewhere to say so. In particular, I'm assuming that dead code (there are some entirely dead types in there) originates from the static compiler it was ported from having cases that don't arise with dynamic code. Can someone confirm this, rather than there being another reason — e.g. some code wasn't ported from the desktop version — and hence a reason to leave that dead code in there? +16665 area-System.Security System.Security.Cryptography.Xml failing tests These two tests are failing outerloop (apparently multi-use problems with dtd file) System.Security.Cryptography.Xml.Tests.XmlDsigC14NWithCommentsTransformTest.C14NSpecExample1_WithoutResolver (from (empty)) ``` Failing for the past 1 build (Since Failed#116 ) Took 4 ms. Stacktrace MESSAGE: System.AggregateException : One or more errors occurred. (The process cannot access the file 'D:\\j\\workspace\\outerloop_win---6835b088\\bin\\AnyOS.AnyCPU.Release\\System.Security.Cryptography.Xml.Tests\\netcoreapp\\doc.dtd' because it is being used by another process.) (File.Delete() is not working.)\r\n---- System.IO.IOException : The process cannot access the file 'D:\\j\\workspace\\outerloop_win---6835b088\\bin\\AnyOS.AnyCPU.Release\\System.Security.Cryptography.Xml.Tests\\netcoreapp\\doc.dtd' because it is being used by another process.\r\n---- System.Exception : File.Delete() is not working. +++++++++++++++++++ STACK TRACE: ----- Inner Stack Trace #1 (System.IO.IOException) ----- at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStreamHelpers.CreateFileStream(String path, Boolean write, Boolean append) in D:\j\workspace\outerloop_win---6835b088\src\System.Runtime.Extensions\src\System\IO\FileStreamHelpers.CoreClr.cs:line 10 at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) in D:\j\workspace\outerloop_win---6835b088\src\System.Runtime.Extensions\src\System\IO\StreamWriter.cs:line 137 at System.Security.Cryptography.Xml.Tests.XmlDsigC14NWithCommentsTransformTest.C14NSpecExample1_WithoutResolver() in D:\j\workspace\outerloop_win---6835b088\src\System.Security.Cryptography.Xml\tests\XmlDsigC14NWithCommentsTransformTest.cs:line 133 ----- Inner Stack Trace #2 (System.Exception) ----- at System.Security.Cryptography.Xml.Tests.XmlDsigC14NWithCommentsTransformTest.Dispose() in D:\j\workspace\outerloop_win---6835b088\src\System.Security.Cryptography.Xml\tests\XmlDsigC14NWithCommentsTransformTest.cs:line 56 at ReflectionAbstractionExtensions.DisposeTestClass(ITest test, Object testClass, IMessageBus messageBus, ExecutionTimer timer, CancellationTokenSource cancellationTokenSource) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Extensions\ReflectionAbstractionExtensions.cs:line 76 ``` System.Security.Cryptography.Xml.Tests.XmlDsigC14NTransformTest.C14NSpecExample1 (from (empty)) ``` Failing for the past 1 build (Since Failed#119 ) Took 5 ms. Stacktrace MESSAGE: System.IO.IOException : The process cannot access the file 'D:\\j\\workspace\\outerloop_win---bf7c4efa\\bin\\AnyOS.AnyCPU.Debug\\System.Security.Cryptography.Xml.Tests\\netcoreapp\\doc.dtd' because it is being used by another process. +++++++++++++++++++ STACK TRACE: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStreamHelpers.CreateFileStream(String path, Boolean write, Boolean append) in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Runtime.Extensions\src\System\IO\FileStreamHelpers.CoreClr.cs:line 10 at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Runtime.Extensions\src\System\IO\StreamWriter.cs:line 140 at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding) in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Runtime.Extensions\src\System\IO\StreamWriter.cs:line 125 at System.Security.Cryptography.Xml.Tests.XmlDsigC14NTransformTest.C14NSpecExample1() in D:\j\workspace\outerloop_win---bf7c4efa\src\System.Security.Cryptography.Xml\tests\XmlDsigC14NTransformTest.cs:line 217 ``` +16666 area-Infrastructure Setup helix ilc runs cc: @MattGal @weshaggard This changes will setup the payloads required to execute tests on Helix. I am also commenting out the actual test execution for now, in order to reduce noise and only get results of ilc compilation. +16667 area-Infrastructure Update CoreClr, CoreFx, Microsoft.DotNet.BuildTools.TestSuite, Standard to beta-25106-02, beta-25106-01, , beta-25106-01, respectively (master) +16669 area-System.Security Finish filling in System.Security.Permissions.dll I hit RevertAssert but we should fill the rest in the best we can for compat. Based on a quick diff with .NET Framework, this is what I see missing: ```c# namespace System.Security { public abstract class CodeAccessPermission : IPermission, ISecurityEncodable, IStackWalk { public static void RevertAll(); public static void RevertAssert(); public static void RevertDeny(); public static void RevertPermitOnly(); } public class HostProtectionException : SystemException { public override void GetObjectData(SerializationInfo info, StreamingContext context); } public class HostSecurityManager { public virtual EvidenceBase GenerateAppDomainEvidence(Type evidenceType); public virtual EvidenceBase GenerateAssemblyEvidence(Type evidenceType, Assembly assembly); public virtual Type[] GetHostSuppliedAppDomainEvidenceTypes(); public virtual Type[] GetHostSuppliedAssemblyEvidenceTypes(Assembly assembly); } public sealed class NamedPermissionSet : PermissionSet { public override bool Equals(object oobj); } public class PermissionSet : ICollection, IDeserializationCallback, IEnumerable, ISecurityEncodable, IStackWalk { protected virtual IPermission AddPermissionImpl(IPermission perm); public override bool Equals(object oobj); protected virtual IEnumerator GetEnumeratorImpl(); protected virtual IPermission GetPermissionImpl(Type permClass); protected virtual IPermission RemovePermissionImpl(Type permClass); protected virtual IPermission SetPermissionImpl(IPermission perm); } public sealed class SecurityContext : IDisposable { public static AsyncFlowControl SuppressFlow(); public static AsyncFlowControl SuppressFlowWindowsIdentity(); } public static class SecurityManager { public static bool CurrentThreadRequiresSecurityContextCapture(); public static PermissionSet GetStandardSandbox(Evidence evidence); } } namespace System.Security.Permissions { public sealed class FileIOPermission : CodeAccessPermission, IUnrestrictedPermission { public FileIOPermission(FileIOPermissionAccess access, AccessControlActions control, string path); public FileIOPermission(FileIOPermissionAccess access, AccessControlActions control, string[] pathList); public override bool Equals(object oobj); } public sealed class RegistryPermission : CodeAccessPermission, IUnrestrictedPermission { public void AddPathList(RegistryPermissionAccess access, AccessControlActions control, string pathList); public override void FromXml(SecurityElement elemesd); } public sealed class StrongNamePublicKeyBlob { public override bool Equals(object oobj); } } namespace System.Security.Policy { public sealed class ApplicationDirectory : EvidenceBase { public override EvidenceBase Clone(); } public sealed class ApplicationTrust : EvidenceBase, ISecurityEncodable { public ApplicationTrust(ApplicationIdentity applicationIdentity); public ApplicationIdentity ApplicationIdentity { get; set; } public override EvidenceBase Clone(); } public sealed class ApplicationTrustCollection : ICollection, IEnumerable { public ApplicationTrustCollection Find(ApplicationIdentity applicationIdentity, ApplicationVersionMatch versionMatch); public void Remove(ApplicationIdentity applicationIdentity, ApplicationVersionMatch versionMatch); } public sealed class Evidence : ICollection, IEnumerable { public Evidence(EvidenceBase[] hostEvidence, EvidenceBase[] assemblyEvidence); public void AddAssemblyEvidence(T evidence) where T : EvidenceBase; public void AddHostEvidence(T evidence) where T : EvidenceBase; public T GetAssemblyEvidence() where T : EvidenceBase; public T GetHostEvidence() where T : EvidenceBase; } public sealed class GacInstalled : EvidenceBase, IIdentityPermissionFactory { public override EvidenceBase Clone(); } public sealed class Hash : EvidenceBase, ISerializable { public byte[] SHA256 { get; } public override EvidenceBase Clone(); public static Hash CreateSHA256(byte[] sha256); } public sealed class PermissionRequestEvidence : EvidenceBase { public override EvidenceBase Clone(); } public sealed class PolicyStatement : ISecurityEncodable, ISecurityPolicyEncodable { public override bool Equals(object oobj); } public sealed class Publisher : EvidenceBase, IIdentityPermissionFactory { public override EvidenceBase Clone(); } public sealed class Site : EvidenceBase, IIdentityPermissionFactory { public override EvidenceBase Clone(); } public sealed class StrongName : EvidenceBase, IIdentityPermissionFactory { public override EvidenceBase Clone(); } public class TrustManagerContext { public virtual ApplicationIdentity PreviousApplicationIdentity { get; set; } } public sealed class Url : EvidenceBase, IIdentityPermissionFactory { public override EvidenceBase Clone(); } public sealed class UrlMembershipCondition : IMembershipCondition, ISecurityEncodable, ISecurityPolicyEncodable { public override bool Equals(object objo); } public sealed class Zone : EvidenceBase, IIdentityPermissionFactory { public override EvidenceBase Clone(); } } ``` +16670 area-System.Data Failure in System.Data.SqlClient.Tests.DiagnosticTest.ExecuteNonQueryAsyncTest ``` MESSAGE: Assert.Equal() Failure\nExpected: 42\nActual: 134 +++++++++++++++++++ STACK TRACE: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /mnt/resource/j/workspace/dotnet_corefx/master/opensuse42.1_release/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs:line 170 ``` @saurabh500 not sure whether this is a dupe. https://ci.dot.net/job/dotnet_corefx/job/master/job/opensuse42.1_release/lastCompletedBuild/testReport/System.Data.SqlClient.Tests/DiagnosticTest/ExecuteNonQueryAsyncTest/ +16672 area-Infrastructure Fix property name used to update versions repository Needed to pass the pkg-matching glob as a powershell param to golf it: there aren't many characters remaining for this inline script. When I submitted https://github.com/dotnet/corefx/pull/16440 in response to https://github.com/dotnet/corefx/commit/8633af6015cde1371b099541b9bcad121563caeb#diff-a725594f4362d34ae867f205e97f94c7L26, I didn't consider that the ps1 parameter had a different name than the msbuild property. /cc @eerhardt @jkotas @gkhanna79 +16673 area-System.Net ServerAsyncAuthenticate_MismatchProtocols_Fails test fails in some builds Sample of build where it failed: https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/4121 ``` System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_MismatchProtocols_Fails(serverProtocol: Tls, clientProtocol: Tls11, expectedException: typeof(System.Security.Authentication.AuthenticationException)) [FAIL] Assert.Throws() Failure Expected: typeof(System.Security.Authentication.AuthenticationException) Actual: typeof(System.ComponentModel.Win32Exception): The credentials supplied to the package were not recognized Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\Interop\Windows\sspicli\SSPIWrapper.cs(167,0): at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStreamPal.Windows.cs(407,0): at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStreamPal.Windows.cs(131,0): at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs(680,0): at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs(783,0): at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs(704,0): at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs(767,0): at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs(982,0): at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs(937,0): at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs(885,0): at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs(693,0): at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs(614,0): at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStream.cs(160,0): at System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStream.cs(257,0): at System.Net.Security.SslStream.<>c__DisplayClass35_0.b__0(AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStream.cs(257,0): at System.Net.Security.SslStream.AuthenticateAsServerAsync(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\tests\FunctionalTests\ServerAsyncAuthenticateTest.cs(154,0): at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` cc: @davidsh, @CIPop, @Priya91 +16674 area-System.Numerics Add 32-bit version of some MathF tests broken down from #13592 PR #13572 marked a few tests to be 64-bit only, given that the assumptions they make were only meant for 64-bit runs. Tests: MathF.Atan2 and MathF.Pow +16675 area-System.Numerics Add 32-bit version of ComplexTests Broken down from #13592 PR #13572 marked a few tests to be 64-bit only, given that the assumptions they make were only meant for 64-bit runs. Tests: https://github.com/dotnet/corefx/pull/13572/files#diff-19973eb77d5f57cf6c8661e7fe588dc9 +16676 area-System.Numerics Re-enabling the MathF.Atan2 and MathF.Pow tests for all platforms. Resolves https://github.com/dotnet/corefx/issues/16674 +16678 area-Infrastructure [** No Merge**] Turn on Windows dumpling and fail some tests on purpose @dotnet-bot Skip CI Please Testing this out before merging for real to make sure that we can collect dumps. +16680 area-System.Xml Improve code coverage for System.Xml namespace types These are some of the bigger types with low coverage in `System.Xml`. It would be great if we could add more tests to reach 80-90% coverage on these: - [ ] System.Xml.XmlConvert 66.3% - [ ] System.Xml.XmlDocument 53.8% - [ ] System.Xml.XmlNode 65.1% - [ ] System.Xml.XmlNodeReader 29.5% - [ ] System.Xml.XmlReader 62.9% - [ ] System.Xml.XmlTextReader 55.1% - [ ] System.Xml.XmlTextWriter 60.1% - [ ] System.Xml.XmlValidatingReader 23.8% - [ ] System.Xml.XmlWriter 32.2% - [ ] System.Xml.Resolvers.XmlPreloadedResolver 0% Detailed coverage report: https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/ +16681 area-System.Security Fixing S.S.Cryptography.Xml tests cc @anthonylangsworth @tintoy @peterwurzinger +16682 area-System.Net Disable some failing System.Net.Security tests These test are intermittently failing because of #16516 and #16534. Disabling them to prevent more random CI failures from occurring. @Priya91 @steveharter +16683 area-Serialization Improve code coverage for System.Xml.Serialization These are some of the bigger types with low coverage in `System.Xml.Serialization`. It would be great if we could add more tests to reach 80-90% coverage on these: - [ ] System.Xml.Serialization.SoapReflectionImporter 52.4% - [ ] System.Xml.Serialization.XmlReflectionImporter 67.2% - [ ] System.Xml.Serialization.XmlSchemaExporter 27.5% - [ ] System.Xml.Serialization.XmlSchemaImporter 31.6% - [ ] System.Xml.Serialization.XmlSchemas 29.4% - [ ] System.Xml.Serialization.XmlSerializationReader 49% - [ ] System.Xml.Serialization.XmlSerializationWriter 54.1% Detailed coverage report: https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/ +16685 area-System.Security System.Security.Cryptography.Xml feature requests "This is an issue to collect all the feature requests after we finish stabilizing. Some of them might be already implemented on Mono and might need a port. cc: @anthonylangsworth @tintoy @peterwurzinger Feature requests: - [ ] Add support for adding algorithms Features resulting from failing tests: (there is no compat break between Desktop so marking as future) - they can be possibly Mono bugs - [ ] SignedXmlTest.DataReferenceToNonDataObject (There is an existing test with this - currently this is also not working on Desktop but likely is on Mono) - [ ] SignedXmlTest.GetIdElement_Null (throws ArgumentNullException on Desktop, seems to be valid on Mono) - [ ] SignedXmlTest.HmacMustBeMultipleOfEightBits (Desktop does not throw, Mono throws CryptographicException) - [ ] SignedXmlTest.VerifyHMAC_ZeroLength (Desktop does not throw, Mono throws CryptographicException) - [ ] SignedXmlTest.VerifyHMAC_SmallerThanMinimumLength (Mono has it with category ""NotWorking"") - verify if should be fixed - [ ] SignedXmlTest.VerifyHMAC_MinimumLength (Failing also on Desktop - seems to be passing on Mono) - [ ] SignedXmlTest.VerifyHMAC_SmallerHalfLength (Failing also on Desktop - seems to be passing on Mono) - [ ] SignedXmlTest.VerifyHMAC_HalfLength (Failing also on Desktop - seems to be passing on Mono) - [ ] SignedXmlTest.VerifyHMAC_HMACOutputLength_Signature_Mismatch (Failing also on Desktop - seems to be passing on Mono) - [ ] SignedXmlTest.VerifyHMAC_HMACOutputLength_Invalid (Failing also on Desktop - seems to be passing on Mono) - [ ] XmlDsigExcC14NWithCommentsTransformTest.LoadInputAsXmlNodeList, LoadInputAsXmlNodeList2 (Failing also on Desktop - seems to be working on Mono) - [x] EncryptedXmlTest.GetDecryptionIV_StringNull (Failing also on Desktop - seems to be working on Mono) - https://github.com/dotnet/corefx/pull/17221 - [ ] SignedInfoTest.GetXmlWithSetProperty (Failing also on Desktop - seems to be working on Mono)" +16686 area-Infrastructure VS is running tests marked with [ActiveIssue] Not sure if this is intentional but it seems like a bug to me Works correctly from the command line VS 2017 RC4 2130.1 +16688 area-System.Diagnostics RemoteExecutorConsoleApp not restoring on some Fedora test runs The `RemoteExecutorConsoleApp.exe` that is used in the `System.Diagnostics.Process` tests is either missing or can't be accessed on some Fedora test runs. It happens infrequently, but enough to cause these failures: - https://github.com/dotnet/corefx/issues/16488 - https://github.com/dotnet/corefx/issues/16400 - https://github.com/dotnet/corefx/issues/15844 FYI @stephentoub @Priya91 +16689 area-Infrastructure Add Jenkins CI verb to do some combined extra testing Right now if you want to test more (eg Win7 or outerloop) you have to pick and choose manually from the verbs. Nobody really does this. We could easily define a new verb in `netci.groovy` that grabbed a selected set for you. Looking through all the stuff that's not run by default, here's a potential subset that covers Win 7 and outerloop on several OS's. We could invoke it with something like `@dotnet-bot test extra` ``` @dotnet-bot test innerloop Debian8.4 Debug @dotnet-bot test innerloop Fedora24 Release @dotnet-bot test innerloop OpenSUSE42.1 Release @dotnet-bot test innerloop RHEL7.2 Debug @dotnet-bot test innerloop Ubuntu16.10 Release @dotnet-bot test outerloop CentOS7.1 Debug @dotnet-bot test outerloop OSX Debug @dotnet-bot test outerloop PortableLinux Release @dotnet-bot test outerloop Ubuntu14.04 Release @dotnet-bot test outerloop Windows 7 Release @dotnet-bot test outerloop Windows_NT Release ``` I only eyeballed that -- we could swap in/out according to where bugs are typically found. +16690 area-System.Security API to get DSA signature length DSA signature length seems to be 40 + value depending on ASN1 encoding. Is there some consistent API where we could check that? On Desktop it seems to always be 40 bytes but on .NET Core we seem to be creating 64 byte length signatures (could be a bug on .NET Core too). Related test: System.Security.Cryptography.Xml: SignedXmlTest.AsymmetricDSASignature +16691 area-System.Security Fix System.Xml.Cryptography.Xml : SignedXmlTest.AsymmetricDSASignature Test is failing because SignatureValue.Length is not 40. This behavior can be correct. When starting to accept values `>= 40` it fails for different reasons. Further investigate why is this happening. cc: @tintoy @anthonylangsworth @peterwurzinger - could you help investigating this one if you got more context? +16692 area-System.Runtime Serialization Tests Failed on UAPAOT due to RuntimeHelpers.GetUninitializedObject Missing Many of serialization tests are failing on uapaot due to the following exception, > System.MissingMethodException : Method '**RuntimeHelpers.GetUninitializedObject(Type)**' was not included in compilation, but was referenced in FormatterServices.GetUninitializedObject(Type). There may have been a missing assembly. According to [ApiCompatBaseline.uapaot.txt](https://github.com/dotnet/corefx/blob/45ecf2a1ef245433d544aa88b8b69ba26b368288/src/System.Runtime/src/ApiCompatBaseline.uapaot.txt#L195), the method seems not implemented by corelib. We need to implement the method to unblock the serialization tests on uapaot. +16693 area-System.Runtime Microsoft.Win32.SafeHandles.CriticalHandleMinusOneIsInvalid Missing on UWP Building System.Runtime.Serialization.Xml test project failed on the following error, > MSBUILD : error : Error generating serialization code for the root type SerializationTypes.TypeWithTypeProperty: Could not resolve type 'Microsoft.Win32.SafeHandles.CriticalHandleMinusOneIsInvalid' in assembly 'System.Runtime, Version =4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. It seems that NetNative’s corelib (the one used in uapaot) doesn’t have this type yet. +16694 area-Infrastructure build -? should explain potential parameter values @danmosemsft commented on [Fri Mar 03 2017](https://github.com/dotnet/buildtools/issues/1366) `build -?` lists what the parameters do but not the values for them. EG., ``` [-framework] Sets target framework for native build configuration which is used for copying to the common shared runtime folder. ``` This doesn't tell me what I want to know which is, how to build for UAP (for example). What I need to know is `build.cmd -framework:uap` or `-framework:uapaot` This is in https://github.com/dotnet/corefx/blob/8b7f07d22575aad4b90afbe65df05bd23e5d60be/Documentation/coding-guidelines/project-guidelines.md but it's referred to as `TargetGroup` in that documentation. EXternal contributors won't be able to figure this out. --- @danmosemsft commented on [Fri Mar 03 2017](https://github.com/dotnet/buildtools/issues/1366#issuecomment-284054932) @joperezr --- @joperezr commented on [Fri Mar 03 2017](https://github.com/dotnet/buildtools/issues/1366#issuecomment-284073327) This issue should be moved to corefx instead, since the right place to fix it is [here](https://github.com/dotnet/corefx/blob/master/config.json#L284-L288) --- @weshaggard commented on [Fri Mar 03 2017](https://github.com/dotnet/buildtools/issues/1366#issuecomment-284093718) Ideally this information would be pulled from https://github.com/dotnet/corefx/blob/master/config.json#L6. +16695 area-System.Net Issue with System.Net.WebClient.Proxy.GetProxy "I noticed this bug while working with a Proxy Auto-Config PAC file. Basically, when using GetProxy, if I pass a relative URI (which generates an exception, which can be caught) and then continue on to pass an absolute URI, it stops processing the PAC file. More details can be found [HERE](https://github.com/PowerShell/PowerShell/issues/3040) which is where I filed the original bug with the PowerShell team, and also [HERE](https://github.com/dotnet/coreclr/issues/9854) as the PowerShell team directed me to CoreCRL, who have since directed me here to CoreFX... I'm hoping this is the right place... This is assuming the use of a system PAC file such as: ```c# function FindProxyForURL(url, host) { if ( host == ""www.msn.com"" ) { return ""PROXY 10.10.10.10""; } else { return ""DIRECT""; } } ``` Problem code: ```c# void Main() { System.Net.WebClient client = new System.Net.WebClient(); Uri uri_absolute = new Uri(""http://www.msn.com"", System.UriKind.RelativeOrAbsolute); Uri uri_relative = new Uri(""www.msn.com"", System.UriKind.RelativeOrAbsolute); Console.WriteLine(client.Proxy.GetProxy(uri_absolute).Host); try { client.Proxy.GetProxy(uri_relative); } catch { Console.WriteLine(""Exception""); } Console.WriteLine(client.Proxy.GetProxy(uri_absolute).Host); } ``` And the output is: ``` 10.10.10.10 Exception www.msn.com ``` It should be: ``` 10.10.10.10 Exception 10.10.10.10 ```" +16696 area-Meta Some libraries are building implementations for platforms they don't run on eg System.DirectoryServices.Protocols has a single configuration in Configurations.props ``` xml netstandard-Windows_NT; ``` This is a Windows specific implementation but as authored it is building that as a generic IL implementation (despite the Windows_NT prefix ) For platforms it doens't currently support (UAP, Unix) it should be building and packaging a PNSE assembly presumably with an appropriately conditioned property in the project. As it is right now for example, this fails the UAP PInvoke checks. We need to check for others in this condition. @weshaggard @joperezr +16697 area-Serialization Do more sgen tests Use the existing XmlSerializer tests to verify the generated c# code. +16698 area-Serialization Do more svcutil tests Use the existing WCF tests to verify the svcutil scenario +16699 area-Serialization Create a prototype for a sgen tool that contain the c# codegen Currently all the c# codegen code is in the System.Xml, need investigate if to pull them out into a separate tool. +16700 area-Serialization Prototype svcutil pregeneration +16701 area-Serialization The generated c# code for XElement type cannot compile The generated code is different from desktop version and cannot compile. +16702 area-Serialization The generated code for enum type is wrong and cannot compile "Cannot compile because the error ""The CultureInfo exists in both System.Globalization and System.Runtime""" +16703 area-System.Globalization DateTime? proprety value cannot be set correctly i have a class contains a property whose type is DateTime? ```cs public class SubItem { public string StringValue { get; set; } public int? IntegerValue { get; set; } public DateTime? DateValue { get; set; } public bool? BooleanValue { get; set; } } ``` i set value to property 'DateValue' like this: ```cs var subItem = new SubItem(); subItem.DateValue = DateTime.Now; ``` the problem is that subItem.DateValue is always {01/01/0001 00:07:28}. why? please help me... +16704 area-Infrastructure Enable Pinvoke checker and baseline violations 1. Enable appropriate PInvoke checker - OneCore or stricter UWP one. 2. Enable NETNATIVE define if it's uapaot. At some point we stopped defining it generally. 3. Baseline all existing violations. @joperezr @weshaggard is this the correct condition in dirs.props? +16705 area-System.Security [dev/apple_crypto] Cannot export as PFX when collection (or cert) has no private keys `SecItemExport` returns an error when the collection it is given has no private keys and it is exporting as a PKCS12/PFX. At least, this behavior is true on macOS Sierra 10.12.3. +16706 area-Meta Desktop tests run progress This is some changes in the Desktop tests run effort. Updated `TargetFrameworkMonikers` usage in attributes to all be `Netframework` and deleted unnecessary of those and made a change in System.Collections.Tests to make tests pass in desktop because the behavior is different (there is a bug in desktop which is explained in both tests). Also moved some tests for an API that was added to netcoreapp to its netcoreapp file as it was causing `build-tests.cmd -framework:netfx` to fail. cc: @danmosemsft @weshaggard @tarekgh +16707 area-System.Security Finish off the X509Certificates implementation on macOS. "* Enable add/remove from a keychain-backed store. * Improve X509KeyStorageFlags usage * PersistKeySet will save a PFX key (and certificate) into the default keychain * EphemeralKeySet will throw PNSE * Exportable is respected for PFX * Add support for reading the Disallowed trust. * This will only read ""full deny"" behaviors * Enable or permanent-assign all remaining ActiveIssue(-1) tests. * Add DSA support to cert.PrivateKey from the Apple PAL * And add a test for it" +16709 area-System.Data Cleanup System.Data's LocaleMapper `System.Data` has an internal `LocaleMapper` helper class that maps LCIDs to locale names, locale names to LCIDs, and locale names to ANSI code pages, which was necessary to workaround missing `CultureInfo` APIs in .NET Core 1.0/1.1: - [LocaleMapper.Unix.cs](https://github.com/dotnet/corefx/blob/b70e5d1d7485b26dfc305597148bb2b4e11f3741/src/Common/src/System/Data/Locale/LocaleMapper.Unix.cs) - [LocaleMapper.Windows.cs](https://github.com/dotnet/corefx/blob/b70e5d1d7485b26dfc305597148bb2b4e11f3741/src/Common/src/System/Data/Locale/LocaleMapper.Windows.cs) However, the missing `CultureInfo` APIs were added back last summer/fall as part of the .NET Standard 2.0 effort (including [Unix support](https://github.com/dotnet/coreclr/blob/a2c684d4094d00c715d67238cf4f4650248d4ded/src/mscorlib/src/System/Globalization/LocaleData.Unix.cs)), which should allow `System.Data`'s `LocaleMapper` to be deleted or significantly pared-down. cc: @saurabh500, @tarekgh +16711 area-System.Diagnostics Native projects for FileVersionInfo tests. Native projects for ```FileVersionInfo``` tests instead of checking in in binaries. Fixes #16613. +16712 area-System.Collections Add tests for GetEnumerator returning a cloneable enumerator in System.Collections.NonGeneric Increases code coverage for these types, these are new .NET standard 2.0 additions that were never tested +16713 area-System.Runtime EnvVars Dictionary as IDictionary passed to Linq morphs Enumerator Dictionary Enumerator is a bit weird as it can be two types; depending on what interface it is accessed on Environment variables can also return a `HashSet` which is why it needs `DictionaryEntry` rather than `KeyValuePair` Previously this code would work fine [aspnet/Configuration](https://github.com/aspnet/Configuration/blob/dev/src/Microsoft.Extensions.Configuration.EnvironmentVariables/EnvironmentVariablesConfigurationProvider.cs#L49-L63) ```csharp internal void Load(IDictionary envVariables) { Data = new Dictionary(StringComparer.OrdinalIgnoreCase); var filteredEnvVariables = envVariables .Cast() // Errors .SelectMany(AzureEnvToAppEnv) .Where(entry => ((string)entry.Key).StartsWith(_prefix, StringComparison.OrdinalIgnoreCase)); foreach (var envVariable in filteredEnvVariables) { var key = ((string)envVariable.Key).Substring(_prefix.Length); Data[key] = (string)envVariable.Value; } } ``` However trying to use it with latest netcoreapp errors as follows ``` Unable to cast object of type 'System.Collections.Generic.KeyValuePair`2[System.String,System.String]' to type 'System.Collections.DictionaryEntry'. ``` ``` Unhandled Exception: System.InvalidCastException: Unable to cast object of type 'System.Collections.Generic.KeyValuePair`2[System.String,System.String]' to type 'System.Collections.DictionaryEntry'. at System.Linq.Enumerable.d__35`1.MoveNext() at System.Linq.Enumerable.d__159`2.MoveNext() at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() at Microsoft.Extensions.Configuration.EnvironmentVariables.EnvironmentVariablesConfigurationProvider.Load(IDictionary envVariables) at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers) at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build() at Microsoft.AspNetCore.Hosting.WebHostBuilder..ctor() at LargeResponseApp.Startup.Main(String[] args) ``` Not sure if is typeforwarding issue (e.g. don't have everything in sync); 2.0 api changes, jit change, Linq optimization, eviorment vars change etc /cc @JonHanna @stephentoub @muratg @divega +16715 area-System.Net Invalid ArraySegments in buffer lists not properly validated on Unix On Windows, the array segments in buffer lists when passed to send/receive/etc. are validated to ensure that the arrays in those segments are not null, that the bounds are valid, etc. This validation is not being done on Unix. +16716 area-System.Net SendBufferSize set to 0 results in an exception on macOS I'm not sure if this should be considered by design or worked around, but setting Socket.SendBufferSize to 0 on macOS is resulting in an exception: ``` System.Net.Sockets.SocketException : Invalid argument Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(5332,0): at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(4835,0): at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue, Boolean silent) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(1827,0): at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Int32 optionValue) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs(455,0): at System.Net.Sockets.Socket.set_SendBufferSize(Int32 value) ``` +16717 area-System.Data Increase code coverage from 61.2% to 64.4% on System.Data.Common.DataColumnMappingCollection Contributes to #16337 +16718 area-System.Net Increase code coverage of System.Net.Sockets Removes dead/useless code from the implementation and adds a bunch more tests. Code coverage of the System.Net.Sockets library increases from ~71% line and ~61% branch to ~82% line and ~73% branch. cc: @geoffkizer, @cipop +16721 area-System.Runtime Test failures running System.Runtime.Extensions tests locally ``` Discovering: System.Runtime.Extensions.Tests Discovered: System.Runtime.Extensions.Tests Starting: System.Runtime.Extensions.Tests System.Tests.EnvironmentTests.GetFolderPath_Windows(folder: NetworkShortcuts) [FAIL] Assert.NotEmpty() Failure Stack Trace: C:\Users\hughb\Documents\GitHub\corefx\src\System.Runtime.Extensions\tests\System\EnvironmentTests.cs(309,0): at System.Tests.EnvironmentT ests.GetFolderPath_Windows(SpecialFolder folder) System.Tests.EnvironmentTests.GetFolderPath_Windows(folder: SendTo) [FAIL] Assert.NotEmpty() Failure Stack Trace: C:\Users\hughb\Documents\GitHub\corefx\src\System.Runtime.Extensions\tests\System\EnvironmentTests.cs(309,0): at System.Tests.EnvironmentT ests.GetFolderPath_Windows(SpecialFolder folder) System.Tests.EnvironmentTests.GetFolderPath_Windows(folder: Templates) [FAIL] Assert.NotEmpty() Failure Stack Trace: C:\Users\hughb\Documents\GitHub\corefx\src\System.Runtime.Extensions\tests\System\EnvironmentTests.cs(309,0): at System.Tests.EnvironmentT ests.GetFolderPath_Windows(SpecialFolder folder) Finished: System.Runtime.Extensions.Tests === TEST EXECUTION SUMMARY === C:\Users\hughb\Documents\GitHub\corefx\Tools\tests.targets(247,5): warning : System.Runtime.Extensions.Tests Total: 1450, Errors: 0, Failed: 3, S kipped: 0, Time: 5.453s [C:\Users\hughb\Documents\GitHub\corefx\src\System.Runtime.Extensions\tests\System.Runtime.Extensions.Tests.csproj] ``` +16724 area-System.Text System.Text.Encoding folder has two solution files Let me know if I can remove the System.Text.Encoding.Tests.sln file and I can submit a PR https://github.com/dotnet/corefx/tree/master/src/System.Text.Encoding +16725 area-System.Diagnostics Fix test for child process inheriting environment variables The test was initially disabled for one issue that was fixed. But it was then suffering from an issue related to encodings rather than to environment variables, not the purpose of the test. Fixes https://github.com/dotnet/corefx/issues/14417 cc: @JeremyKuhne, @Priya91 +16726 area-System.Runtime Add test for using LINQ to enumerate Environment.GetEnvironmentVariables cc: @JeremyKuhne, @benaadams +16727 area-System.Net ReceiveMessageFromAsync with buffer list broken on Unix Socket.ReceiveMessageFromAsync(SocketAsyncEventArgs) is completely broken on Unix when using a BufferList instead of a single buffer: the implementation only handles the single-buffer case and ignores any BufferList set. +16728 area-Infrastructure Add RIDs for arm64 Ubuntu, Alpine Linux A lot of patches have landed in CoreCLR which make CoreCLR run on arm64 Linux. This adds RIDs for arm64 versions of Alpine Linux and Ubuntu Linux. +16729 area-Infrastructure Add RIDs for Android This PR introduces new RIDs for Android in preparation for bringing up cross-compilation setup in core-setup. It covers next steps mentioned [here](https://github.com/dotnet/coreclr/issues/9946#issue-211806593), and used references from the [.NET Core Guide](https://docs.microsoft.com/en-us/dotnet/articles/core/rid-catalog) Tagging @qmfrederik for feedback on appropriate RID naming. +16730 area-System.Memory Span == null throws ArgumentNullException I know it doesn't make sense to compare it to null since it is a struct. But it is allowed since we have a implicit cast operator that get called, op_Implicit(T[] array). And that operator throws the exceptions when calling the constructor: ```c# public static implicit operator Span(T[] array) { return new Span(array); } public Span(T[] array) { if (array == null) { ThrowHelper.ThrowArgumentNullException(ExceptionArgument.array); } ``` Repro: ```c# int[] src = { 1, 2, 3 }; Span srcSpan = new Span(src); var t = srcSpan == null; ``` at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument) at System.Span`1.op_Implicit(T[] array) at ConsoleApp1.Program.Main(String[] args) +16731 area-Infrastructure Add RIDs for Android "With the work done in CoreCLR and CoreFX, we now have a ""Hello World"" up and running on Android. This PR introduces RIDs for Android. Some remarks: - Because Android uses the Linux kernel, I've chosen to make Android import Linux. Just like Alpine Linux, Android uses a different C runtime (bionic), so chances this will always work are slim. - At the moment, CoreCLR and CoreFX support arm and arm64 Android, so I've left out x86 and x64 Android (although they make make great candidates for testing as they can be virtualized on x64 hardware) - Android versions by ""API levels"", so you have API level 1, 2, 3,... . I've chosen to make API level 21 explicit, because it is the first API level that also support arm64. At the same time, the CoreCLR and CoreFX builds use packages borrowed from Termux (I like to think of Termux as a package management system for Android, similar to brew on macOS). They also target API level 21, so there's some consistency there." +16733 area-System.Net Fix TODO in ClientWebSocketOptions https://github.com/dotnet/corefx/issues/11735 cc: @geoffkizer, @davidsh +16735 area-Meta Use lazy initializers in place of double check locks Next set of changes for Issue 3862 to use lazy initialization constructs in place of double check locks. @stephentoub @karelz kindly review. +16738 area-System.Data Add link to GitHub source +16739 area-System.Net Socket.DontFragment throws not supported exception on Unix Presumably due to https://github.com/dotnet/corefx/blob/7a230270559cfbef056aaafc022cdfd8fd3d829e/src/Native/Unix/System.Native/pal_networking.cpp#L2043 (i.e. lack of a translation for the option). It's not clear to me whether/why this is by design, but it should be investigated. +16740 area-System.Data System.Data.SqlClient: Use Task.CompletedTask +16741 area-System.Net "Test: System.Net.Security.Tests.ClientAsyncAuthenticateTest/ClientAsyncAuthenticate_AllServerVsIndividualClientSupportedProtocols_Success(clientProtocol: Tls11) failed with ""System.TimeoutException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.ClientAsyncAuthenticateTest/ClientAsyncAuthenticate_AllServerVsIndividualClientSupportedProtocols_Success(clientProtocol: Tls11)` has failed. System.TimeoutException : The operation has timed out. Stack Trace: at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() in /root/corefx/src/Common/tests/System/Threading/Tasks/TaskTimeoutExtensions.cs:line 23 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.ClientAsyncAuthenticateTest.d__14.MoveNext() in /root/corefx/src/System.Net.Security/tests/FunctionalTests/ClientAsyncAuthenticateTest.cs:line 146 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.ClientAsyncAuthenticateTest.d__9.MoveNext() in /root/corefx/src/System.Net.Security/tests/FunctionalTests/ClientAsyncAuthenticateTest.cs:line 93 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170304.02 (Core Tests) Failing configurations: - Ubuntu.1610.Amd64 - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170304.02/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.ClientAsyncAuthenticateTest~2FClientAsyncAuthenticate_AllServerVsIndividualClientSupportedProtocols_Success(clientProtocol:%20Tls11) +16742 area-System.Linq IEnumerable.Concat with params I think it would be useful if we could just concat collection with just variable directly without the need to make array for it. It would make code cleaner because sometimes we just want to append some variable into collection Just add this to Enumerable extension method ```C# public static IEnumerable Concat(this IEnumerable first,params TSource[] second) { return first.Concat(second as IEnumerable); } var zeroToHundred = Enumerable.Range(0,100); var zeroToHundredPlusOne = zeroToHundred.Concat(101); ``` Also, would it be better if we have `Append` and `Prepend` instead? ```C# public static IEnumerable Append(this IEnumerable items,params TSource[] after) { return items.Concat(after); } public static IEnumerable Prepend(this IEnumerable items,params TSource[] before) { return before.Concat(items); } var oneToHundred = Enumerable.Range(1,99); var zeroToHundredPlusOne = oneToHundred.Prepend(0).Append(101); ``` +16743 area-System.Numerics Extension method to number I think it would be useful if number have some extension method as helper in many trivial function instead of static class First I would like to suggest `To` and `Range` ```C# namespace System.Linq; public static IEnumerable To(this int start,int end) { var sign = Math.Sign(end - start); end += sign; while(start != end) { yield return start; start += sign; } } public static IEnumerable Range(this int start,int count) { return Enumerable.Range(start,end); } ``` The usage will make code more compact and easier to write ```C# foreach(var i in 1.To(100)) Console.WriteLine(i); foreach(var i in 1.Range(99)) Console.WriteLine(i); ``` Second. I would like to suggest that, most of `Math` and `DateTime` should move into `System.Numerics` as an extension method to number itself for example ```C# namespace System.Numerics; public static double Pow(this double value,double power) { return Math.Pow(value,power); } public static float Pow(this float value,float pow) { return (float)Math.Pow(value,power); } public static TimeSpan AsMilliseconds(this long millisec) { return DateTime.FromMilliseconds(millisec); } public static TimeSpan AsMilliseconds(this double millisec) { return DateTime.FromMilliseconds(millisec); } ``` Same as above ```C# var sqrt2 = 2f.Pow(0.5f); var timeSpan = 1000L.AsMilliseconds(); ``` Both of these proposal should be contained in namespace. So it would be hidden unless explicit using, would not hamper in normal life +16744 area-System.Net Socket.Select / Read and Socket.Handle @samirparekh commented on [Thu Sep 29 2016](https://github.com/dotnet/coreclr/issues/7413) Hi, we have an application which we intend to port to .NETCore. This application is a latency sensitive application and it requires to monitor >100 sockets for incoming (high frequency) financial market data. I have gone throught the implementation of Socket.Select for windows and Linux (from the available source code). It seems like for Linux the framework allocates a stack based pointer list (in case when the provided socket list length is < 80) else on the heap. Surprising enough the same approach could have benefited wider group of windows users. Moreover in my case where i can not go for allocating an array of >100 sockets , in my previous implementation I had a pre-allocated array/list of socket pointers/handles and reused it through the process lifecycle(thus eleminating the performance penalty imposed by GC in case of constantly re-allocating IntPtr arrays). It seems like in the current code base it is no longer possible to get an IntPtr / handle to a socket which makes the above code optimization impossible. May I request you (in the interest of broader community) to rethink the various scenarios and advice the possible cource of action. Thanks --- @gkhanna79 commented on [Sat Mar 04 2017](https://github.com/dotnet/coreclr/issues/7413#issuecomment-284203728) CC @brianrob --- @stephentoub commented on [Sun Mar 05 2017](https://github.com/dotnet/coreclr/issues/7413#issuecomment-284225067) This issue should really be in CoreFx. > It seems like for Linux the framework allocates a stack based pointer list (in case when the provided socket list length is < 80) else on the heap. Surprising enough the same approach could have benefited wider group of windows users. Yes, that should be doable for Windows as well (cc: @geoffkizer). You're welcome to submit a PR to CoreFx to address that. > It seems like in the current code base it is no longer possible to get an IntPtr / handle to a socket which makes the above code optimization impossible. Socket.Handle has been exposed. It's not available in .NET Core 1.x, but is in .NET Core 2.0. +16745 area-System.Threading Add Task.IsCompletedSuccessfully @GSPP commented on [Sat Aug 13 2016](https://github.com/dotnet/coreclr/issues/6732) `Task` already has a few shortcut properties: `IsFaulted`, `IsCancelled`, `IsCompleted`. These are useful because they provide a way to write certain conditions very succinctly. The only such property missing is `IsCompletedSuccessfully`. It should be added. The workarounds are a little awkward: `t.Status == TaskStatus.RanToCompletion` and `!t.IsFaulted && !t.IsCanceled`. They are longer, don't express meaning well and sometimes are written incorrectly (e.g. forgetting about cancellation). Is there a reason `IsCompletedSuccessfully` can/should not exist? --- @omariom commented on [Sat Aug 13 2016](https://github.com/dotnet/coreclr/issues/6732#issuecomment-239626805) `IsSucceeded`? --- @benaadams commented on [Sat Aug 13 2016](https://github.com/dotnet/coreclr/issues/6732#issuecomment-239629098) `IsCompletedSuccessfully` would match `ValueTask` which has it https://github.com/dotnet/corefx/blob/master/src/System.Threading.Tasks.Extensions/src/System/Threading/Tasks/ValueTask.cs#L135-L136 --- @GSPP commented on [Sat Aug 13 2016](https://github.com/dotnet/coreclr/issues/6732#issuecomment-239629282) Yes, I think Task and ValueTask should have as much common surface area as possible to make it easy to switch between the two. It might even make sense to add a `Status` property to `ValueTask` and synthesize a suitable status in case the object is not based on a task. --- @jamesqo commented on [Sun Aug 14 2016](https://github.com/dotnet/coreclr/issues/6732#issuecomment-239733437) Since `ValueTask` has it, 👍 from me. Also I thought API requests go in corefx? (at least that's what I got told [here](https://github.com/dotnet/coreclr/issues/1206#issuecomment-120179702)) --- @GSPP commented on [Mon Aug 15 2016](https://github.com/dotnet/coreclr/issues/6732#issuecomment-239771861) I believe mscorlib types are supposed to be discussed here. I always check the file system on Github first to see where a given type lives. @jamesqo --- @omariom commented on [Mon Aug 15 2016](https://github.com/dotnet/coreclr/issues/6732#issuecomment-239773579) > `IsCompletedSuccessfully` would match `ValueTask` which has it Is it late to change ValueTask? ) --- @ghost commented on [Mon Aug 15 2016](https://github.com/dotnet/coreclr/issues/6732#issuecomment-239903832) > `IsSucceeded`? `HasSucceeded`? _just bikesheding .._ :) +16746 area-Infrastructure Fix rootfs to sync with coreclr Fix rootfs script to build libcoreclrtraceptprovider.so in coreclr related issue: dotnet/coreclr#9897, dotnet/core-setup#1617 cc/ @gkhanna79 +16749 area-System.Xml System.Xml.XPath.XDocument: XPathEvaluate method for XNode returns incorrect result "I am porting .NET code to .NET Core, and noticed this difference. System.Xml.XPath.Extensions class defines XPathEvaluate extension method for XNode. This method returns incorrect result for XPath query of text nodes. Environment: - .NET Core 1.1 - System.Xml.XPath.XDocument 4.3.0 Example 1: /text() ```c# XElement element = XElement.Parse(""Text.""); var result = element.XPathEvaluate(""/text()""); // .NET Framework: result is a collection of a single XText item (""Text.""). // .NET Core: result is a collection of 2 XText items, and they are the same reference (""Text.""). ``` Example 2: /text()[1] ```c# XElement element = XElement.Parse(""12""); var result = element.XPathEvaluate(""/text()[1]""); // .NET Framework: result is a collection of a single XText item (""1""). // .NET Core: result is a collection of 2 XText items, and they are the same reference (""1""). ``` Example 3: /text()[2] ```c# XElement element = XElement.Parse(""12""); var result = element.XPathEvaluate(""/text()[2]""); // .NET Framework: result is a collection of a single XText item (""2""). // .NET Core: result is a collection of 2 XText item, (""2"") and (""1""). ``` Is this a bug?" +16750 area-System.Linq "Test under: System.Linq.Tests with ActiveIssue(""Valid test but too intensive to enable even in OuterLoop"")" "[ActiveIssue(""Valid test but too intensive to enable even in OuterLoop"")] Details: https://github.com/dotnet/corefx/blob/master/src/System.Linq/tests/SelectManyTests.cs#L216 https://github.com/dotnet/corefx/blob/master/src/System.Linq/tests/SelectTests.cs#L143 https://github.com/dotnet/corefx/blob/master/src/System.Linq/tests/SkipWhileTests.cs#L146 https://github.com/dotnet/corefx/blob/master/src/System.Linq/tests/TakeWhileTests.cs#L121 https://github.com/dotnet/corefx/blob/master/src/System.Linq/tests/ToArrayTests.cs#L131 https://github.com/dotnet/corefx/blob/master/src/System.Linq/tests/WhereTests.cs#L1001" +16751 area-System.Linq "Tests under System.Linq.Parallel.tests with ActiveIssue(""Cancellation token not shared"")" "[ActiveIssue(""Cancellation token not shared"")] Details: https://github.com/dotnet/corefx/blob/master/src/System.Linq.Parallel/tests/QueryOperators/SequenceEqualTests.cs#L172 https://github.com/dotnet/corefx/blob/master/src/System.Linq.Parallel/tests/QueryOperators/SequenceEqualTests.cs#L186" +16752 area-Serialization "Test: System.Private.Xml.Tests.XmlSerializerTests.SequenceEqual_SharedLeft_Cancellation with [ActiveIssue(""fails when using CodeGen as well"")]" "Change [ActiveIssue(""fails when using CodeGen as well"")] to a new issue: Detail: https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.cs#L1883" +16753 area-System.Runtime "Test disabled with ""Fails on desktop and core: 'Unable to cast object of type 'System.UInt32[][*]' to type 'System.Object[]'""" "Test: Roundtrip_ArrayContainingArrayAtNonZeroLowerBound() under corefx\src\System.Runtime.Serialization.Formatters\tests\BinaryFormatterTests.cs [ActiveIssue(""Fails on desktop and core: 'Unable to cast object of type 'System.UInt32[][*]' to type 'System.Object[]'"")] Detail: https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTests.cs#L750" +16754 area-System.Runtime "Change [ActiveIssue(""PerformanceTest"")] to a new github issue" "[ActiveIssue(""PerformanceTest"")] Tests under: corefx\src\System.Runtime.Numerics\tests\BigInteger\PerformanceTests.cs Details: https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Numerics/tests/BigInteger/PerformanceTests.cs#L24 https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Numerics/tests/BigInteger/PerformanceTests.cs#L38 https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Numerics/tests/BigInteger/PerformanceTests.cs#52 https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Numerics/tests/BigInteger/PerformanceTests.cs#66 https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Numerics/tests/BigInteger/PerformanceTests.cs#80 https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Numerics/tests/BigInteger/PerformanceTests.cs#94 https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Numerics/tests/BigInteger/PerformanceTests.cs#108 https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Numerics/tests/BigInteger/PerformanceTests.cs#122" +16756 area-Meta Cleanup disabled tests missing correct issue numbers "1. [Fact(Skip = ""870811"")] Create a new issue: https://github.com/dotnet/corefx/issues/16747 2. [Fact(Skip = ""906219"")] Create a new issue: https://github.com/dotnet/corefx/issues/16748 Change to [ActiveIssue(issue number)] 3. [Fact(Skip = ""https://github.com/dotnet/corefx/issues/15101"")] Add Attribute: [ActiveIssue(15101)] 4. [ActiveIssue(""PerformanceTest"")] Create a new issue: https://github.com/dotnet/corefx/issues/16754 5. [ActiveIssue(""Valid test but too intensive to enable even in OuterLoop"")] Create a new issue: https://github.com/dotnet/corefx/issues/16750 6. [ActiveIssue(""Cancellation token not shared"")] Create a new issue: https://github.com/dotnet/corefx/issues/16751 7. [ActiveIssue(""Fails on desktop and core: 'Unable to cast object of type 'System.UInt32[][*]' to type 'System.Object[]'"")] Create a new issue: https://github.com/dotnet/corefx/issues/16753 8. [ActiveIssue(""fails when using CodeGen as well"")] Create a new issue: https://github.com/dotnet/corefx/issues/16752 9. [ActiveIssue(""Distributed transactions are not supported."")] Create a new issue: https://github.com/dotnet/corefx/issues/16755 10. [ActiveIssue(""dotnet/coreclr#2051"", TestPlatforms.AnyUnix)] Change to [ActiveIssue(""https://github.com/dotnet/coreclr/issues/2051”, TestPlatforms.AnyUnix)]. " +16757 area-System.Net Failure in System.Net.Http.Functional.Tests.HttpClientHandlerTest.PostAsync_Redirect_LargePayload(statusCode: 307, expectRedirectToPost: True) (from (empty)) Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_centos7.1_release/116/testReport/System.Net.Http.Functional.Tests/HttpClientHandlerTest/PostAsync_Redirect_LargePayload_statusCode__307__expectRedirectToPost__True_/ Message: ~~~ System.Threading.Tasks.TaskCanceledException : A task was canceled. ~~~ Stack Trace: ~~~ at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_release/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 462 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__72.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_release/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs:line 1304 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +16758 area-System.Collections [System.Collections] Fixes regression in IntersectWith The regression was introduced as part of https://github.com/dotnet/corefx/commit/bef119221d98912cda3076ca67a96f0a8177c97d probably because SortedSet API is mostly not covered by any test. +16759 area-System.Net Factor out helper in Send/ReceiveAsync Task methods Addressing feedback from #16737. Extracts helpers for ConfigureBuffer, ConfigureBufferList, and GetTaskForSendReceive, to reduce duplicated code. Also factors out the APM fall backs into their own methods to streamline the calling methods. cc: @geoffkizer +16760 area-System.Collections Regression in SortedSet::Max introduced in https://github.com/dotnet/corefx/pull/11968 ```c# using System; using System.Collections.Generic; class X { public static void Main () { var set = new SortedSet { 1, 3, 5, 7, 9 }; var view = set.GetViewBetween (4, 8); Console.WriteLine (view.Max); // Prints 9 instead of 7 } } ``` +16761 area-System.Net HttpClient/HttpContent application deadlock Platform: Ubuntu 16.04 and Windows Core CLR: 1.1.0 In my application (An MVC based micro-service) I make repeating, large POST requests to a local service. The response of each request is several megabytes of JSON. I am using tasks to execute these request in parallel, my control flow is completly async. After a variable number (usually not the same number) of requests the application will deadlock becoming completely unresponsive to outside requests. The number of requests can be variable, but the time before deadlock changes when the size of the requested parameters is changed. The larger the requests, the the quicker the deadlock. The HttpClient object is shared among the requests. I have isolated the failure to: await hrm.Content.CopyToAsync(ms).ConfigureAwait(false); Where Hrm is the HttpResponse message allocated by: HttpResponseMessage hrm = await hc.SendAsync(hqm, HttpCompletionOption.ResponseHeadersRead).ConfigureAwait(false) After spending quite a bit of time, I have reverted the projects' CLR version to 1.0.3 from 1.1.0 and it appears that the deadlock is no longer present - or at least takes much more time to manifest itself. Since I am developing on Linux I have been unable to do any useful debugging of this issue after the deadlock - I am not able to connect to the process after it deadlocks. I cannot share my source directly but I could privately. +16762 area-System.Net Repeated new FormUrlEncodedContent(list) when parameters are large causes application failure "Platform: Ubuntu 16.04 Core CLR: 1.1.0 ```c# List points, List observationTimes Dictionary fields = new Dictionary(); fields.Add(""model"", model); fields.Add(""field"", field); fields.Add(""pts"", JsonConvert.SerializeObject(points)); fields.Add(""dts"", JsonConvert.SerializeObject(observationTimes)); using (HttpContent furlc = new FormUrlEncodedContent(fields)) { try ... ``` Repeated calls to ""new FormUrlEncodedContent(fields)"" when pts and dts are very large causes an application crash." +16763 area-System.Collections Add regression test for SortedSet.GetViewBetween.Max #16760 cc: @marek-safar, @mjp41, @ianhays +16764 area-Infrastructure Fix test projects that are failing ILC step when trying to run uapaot tests. We were able to succesfully send the right payloads to Helix which helped us trying to ilc all of the tests projects, in order to be able to tell which ones are failing that step. The full list of the test projects that are failing are: - [ ] System.Collections.Tests - [x] System.Data.SqlClient.Tests - [x] System.IO.FileSystem.Tests - [x] System.IO.MemoryMappedFiles.Tests - [x] System.Net.Http.Functional.Tests - [x] System.Net.Mail.Functional.Tests - [x] System.Net.Requests.Tests - [x] System.Net.Security.Tests - [x] System.Net.WebClient.Tests - [x] System.Private.Uri.Unit.Tests - [x] System.Runtime.Extensions.Tests - [x] System.Runtime.Serialization.Formatters.Tests - [x] System.Runtime.Serialization.Json.Performance.Tests - [x] System.Runtime.Serialization.Json.ReflectionOnly.Tests - [x] System.Runtime.Serialization.Json.Tests - [x] System.Runtime.Serialization.Xml.Performance.Tests - [x] System.Runtime.Serialization.Xml.ReflectionOnly.Tests - [x] System.Runtime.Serialization.Xml.Tests - [x] System.Runtime.Tests - [x] System.Security.AccessControl.Tests - [x] System.Threading.ThreadPool.Tests - [x] System.Xml.Linq.Properties.Tests - [ ] System.Xml.XmlSerializer.ReflectionOnly.Tests - [ ] System.Xml.XmlSerializer.Tests cc: @weshaggard @MattGal +16765 area-System.Net Failing test: System.Net.Sockets.Tests.SocketAsyncEventArgsTest.CancelConnectAsync_StaticConnect_CancelsInProgressConnect New test added on 3\4. https://github.com/dotnet/corefx/commit/3805927a19b961850c1c6429d6f8a8b6f1fbd4fa#diff-e1fb5b4a4127d23e848c28f23edf72a2 Appears to be random, as it passes on other runs. @stephentoub it is failing here. The async connection request may complete by this line: >> Assert.True(Socket.ConnectAsync(SocketType.Stream, ProtocolType.Tcp, connectSaea)); Failures: Test Case: dotnet_corefx/master/debian8.4_release 1208 deb84-20170214-f64b50 03/06 02:44 AM dotnet_corefx/master/debian8.4_debug 1210 deb84-20170214-56eea0 03/06 01:37 PM dotnet_corefx/master/ubuntu14.04_release 1349 ubuntu1404-20160211-1-4b2f60 03/06 02:44 AM Detail: ``` debian8.4_debug System.Net.Sockets.Tests.SocketAsyncEventArgsTest.CancelConnectAsync_StaticConnect_CancelsInProgressConnect (from (empty)) Failing for the past 1 build (Since #1210 ) Took 22 ms. Stacktrace MESSAGE: Assert.False() Failure\nExpected: False\nActual: True +++++++++++++++++++ STACK TRACE: at System.Net.Sockets.Tests.SocketAsyncEventArgsTest.CancelConnectAsync_StaticConnect_CancelsInProgressConnect() in /mnt/resource/j/workspace/dotnet_corefx/master/debian8.4_debug/src/System.Net.Sockets/tests/FunctionalTests/SocketAsyncEventArgsTest.cs:line 315 ``` +16766 area-System.Runtime System.Environment rejects env variable values acceptable to the OS In https://github.com/dotnet/coreclr/issues/9793 an environment variable already set in the OS caused an ArgumentException when MSBuild tried to set it because the length of the value was over 32KB. (CI apparently passes the change description in an environment variable) We should accept any environment variable that's acceptable to the OS. Apparently on Windows Server 2012 (this run) over 32KB is acceptable. Rather than check the length we should perhaps let Windows return an error. https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Environment.cs#L45 https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Environment.cs#L843 +16767 area-System.Runtime Expose Environment.GetCurrentProcessorNumber() as a public API @VSadov commented on [Thu Feb 16 2017](https://github.com/dotnet/coreclr/issues/9638) Environment.CurrentExecutionId seems to be a generally useful API, that can be used to correlate accesses to striped data in order to minimize unwanted cross core sharing. Currently the best correlation option is the `CurrentManagedThreadId` which helps with continuity of accesses to the same stripe within a thread, but does not help much with preventing unwanted stripe sharing from threads running on separate cores. --- @VSadov commented on [Thu Feb 16 2017](https://github.com/dotnet/coreclr/issues/9638#issuecomment-280512273) Re: https://github.com/dotnet/coreclr/blob/e5f2df239b546ac9ed2417506c90af222eaf1013/src/mscorlib/src/System/Environment.cs#L709 --- @jkotas commented on [Fri Feb 17 2017](https://github.com/dotnet/coreclr/issues/9638#issuecomment-280626576) Agree that it looks useful. @VSadov Process for adding new public APIs https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/api-review-process.md Close the issue here, and open a new one in corefx with the API proposal. --- @gkhanna79 commented on [Sat Mar 04 2017](https://github.com/dotnet/coreclr/issues/9638#issuecomment-284175601) @danmosemsft Can you please move this to CoreFX? +16768 area-Serialization Test DCS_TypeWithTypeProperty Failed on Uapaot Test DCS_TypeWithTypeProperty failed on Uapaot due to https://github.com/dotnet/corefx/issues/16693. We need to activate the issue on Uapaot when #16693 get fixed. +16769 area-System.Runtime S.R.InteropServices.RuntimeInformation.FrameworkDescription throws in UWP release Exception message: RFLCT_Ambiguous. I think cause is here: https://github.com/dotnet/corefx/blob/9e693eed46efd17f39090de336ee82d318edbbec/src/System.Runtime.InteropServices.RuntimeInformation/src/System/Runtime/InteropServices/RuntimeInformation/RuntimeInformation.cs#L28 ```GetCustomAttribute(typeof(AssemblyFileVersionAttribute))``` could return several attributes. Workaround: If I use following or similar code, exception not occurs: ``` typeof(object).GetTypeInfo().Assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute)).OfType().FirstOrDefault(); ``` +16770 area-System.Globalization ToTitleCase does not correctly titlecase Dutch words starting with IJ "@warrantyvoids commented on [Mon Mar 06 2017](https://github.com/dotnet/coreclr/issues/9981) The current TextInfo.ToTitleCase() Locale specific function does not correctly titlecase Dutch words starting with IJ as specified by the Unicode Standard, introductory text of paragraph 3.13. • Titlecasing of IJ at the start of words in Dutch An example of this would be ToTitleCase(""ijzeren eigenschappen"") -> ""IJzeren Eigenschappen"", although it currently leads to ""Ijzeren Eigenschappen"". " +16771 area-System.Collections Fix behaviour of TreeSubSet Min and Max Fixes #16760. Provide correct override in TreeSubSet for Min and Max, they now take account of the range of the subset. As the root is guaranteed to be in the range, then the code does not need to check something is in the range, if _root is not null. This makes Min and Max virtual. Is that an acceptable change? Previously, they hid the virtual behaviour inside the implementation. cc @stephentoub @marek-safar @ianhays +16772 area-Serialization Disable Test DCS_TypeWithTypeProperty on Uapaot Test DCS_TypeWithDatetimeOffsetTypeProperty failed on Uapaot due to #16768. We wanted to disable the test on uapaot for now so that it won't block other tests. +16773 area-System.Security Clean up unused SupportsKeyGeneration properties The platform-specific interop type providers for RSA and ECDSA still had the SupportsKeyGeneration properties defined. Nothing calls them anymore, so delete them before they make it to master. +16775 area-Infrastructure Revert indexing build in the publish leg This reverts commits involved with changing to index symbols during the publish leg: 47c664ceb2dbeed3ac3750e2ad2b0349448633e7 547e9ca4e6a37e24134aabfd521956c4e9d0d36d 3bf11e1693c668e3088ab06b2a8a74204a35c227 04a9a414baa37db15e9f6cfeccda44da8bb03820 abc12ae0c82f08b187155c65a5762e9cad1f34e9. Instead of disabling, revert: this will let me see what the builds were actually indexing before my changes to see how quantity might have affected things. Indexing all packages using the new targets takes ~30 minutes, which is a major impact on the official build time. Before re-enabling this, I need to find a way to improve perf. /cc @markwilkie @Petermarcu +16777 area-System.Memory Fix in src\System.Memory\ref\System.Memory.csproj Use `` instead of `` for `System.Runtime` in src\System.Memory\ref\System.Memory.csproj, else the build fails unless System.Runtime.dll already exists. +16778 area-System.Memory Missing Method Exceptions from Kestrel when trying to run Web API on Raspberry Pi "@challe commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632) ## Steps to reproduce `dotnet new webapi` Change the `csproj`-file so that it looks like this: ```xml netcoreapp2.0 2.0.0-beta-001663-00 ``` Followed by ``` dotnet restore dotnet publish ``` Now take all of the files that were created in the `bin/Debug/netcoreapp2.0/publish` and copy these files to the Raspberry Pi. Try to run the application by doing: `usr/bin/dotnet /home/challe/dev/test/test.dll`. It says that the application has started and that it is listening on port 5000! Visit http://localhost:5000/api/values in the browser, locally on your Raspberry Pi. ## Expected behavior I expected to see the JSON values in the browser. ## Actual behavior In the terminal, I see: ``` warn: Microsoft.AspNetCore.Server.Kestrel[0] Connection processing ended abnormally System.MissingMethodException: Method not found: '!0 System.Span`1.get_Item(Int32)'. at Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIteratorExtensions.GetKnownVersion(Span`1 span, String& knownVersion) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.TakeStartLine(ReadableBuffer buffer, ReadCursor& consumed, ReadCursor& examined) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() warn: Microsoft.AspNetCore.Server.Kestrel[0] Connection processing ended abnormally System.MissingMethodException: Method not found: '!0 System.Span`1.get_Item(Int32)'. at Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIteratorExtensions.GetKnownVersion(Span`1 span, String& knownVersion) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.TakeStartLine(ReadableBuffer buffer, ReadCursor& consumed, ReadCursor& examined) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() warn: Microsoft.AspNetCore.Server.Kestrel[0] Connection processing ended abnormally System.MissingMethodException: Method not found: '!0 System.Span`1.get_Item(Int32)'. at Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIteratorExtensions.GetKnownVersion(Span`1 span, String& knownVersion) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.TakeStartLine(ReadableBuffer buffer, ReadCursor& consumed, ReadCursor& examined) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() warn: Microsoft.AspNetCore.Server.Kestrel[0] Connection processing ended abnormally System.MissingMethodException: Method not found: '!0 System.Span`1.get_Item(Int32)'. at Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIteratorExtensions.GetKnownVersion(Span`1 span, String& knownVersion) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.TakeStartLine(ReadableBuffer buffer, ReadCursor& consumed, ReadCursor& examined) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() warn: Microsoft.AspNetCore.Server.Kestrel[0] Connection processing ended abnormally System.MissingMethodException: Method not found: '!0 System.Span`1.get_Item(Int32)'. at Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIteratorExtensions.GetKnownVersion(Span`1 span, String& knownVersion) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.TakeStartLine(ReadableBuffer buffer, ReadCursor& consumed, ReadCursor& examined) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() warn: Microsoft.AspNetCore.Server.Kestrel[0] Connection processing ended abnormally System.MissingMethodException: Method not found: '!0 System.Span`1.get_Item(Int32)'. at Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIteratorExtensions.GetKnownVersion(Span`1 span, String& knownVersion) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.TakeStartLine(ReadableBuffer buffer, ReadCursor& consumed, ReadCursor& examined) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() warn: Microsoft.AspNetCore.Server.Kestrel[0] Connection processing ended abnormally System.MissingMethodException: Method not found: '!0 System.Span`1.get_Item(Int32)'. at Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIteratorExtensions.GetKnownVersion(Span`1 span, String& knownVersion) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.TakeStartLine(ReadableBuffer buffer, ReadCursor& consumed, ReadCursor& examined) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() warn: Microsoft.AspNetCore.Server.Kestrel[0] Connection processing ended abnormally System.MissingMethodException: Method not found: '!0 System.Span`1.get_Item(Int32)'. at Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIteratorExtensions.GetKnownVersion(Span`1 span, String& knownVersion) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.TakeStartLine(ReadableBuffer buffer, ReadCursor& consumed, ReadCursor& examined) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() warn: Microsoft.AspNetCore.Server.Kestrel[0] Connection processing ended abnormally System.MissingMethodException: Method not found: '!0 System.Span`1.get_Item(Int32)'. at Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIteratorExtensions.GetKnownVersion(Span`1 span, String& knownVersion) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.TakeStartLine(ReadableBuffer buffer, ReadCursor& consumed, ReadCursor& examined) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() warn: Microsoft.AspNetCore.Server.Kestrel[0] Connection processing ended abnormally System.MissingMethodException: Method not found: '!0 System.Span`1.get_Item(Int32)'. at Microsoft.AspNetCore.Server.Kestrel.Internal.Infrastructure.MemoryPoolIteratorExtensions.GetKnownVersion(Span`1 span, String& knownVersion) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.TakeStartLine(ReadableBuffer buffer, ReadCursor& consumed, ReadCursor& examined) at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.d__2.MoveNext() ``` ## Environment data I am currently using the `2.0.0-beta-001663-00` runtime on my Raspberry Pi. `dotnet --info` output: .NET Command Line Tools (2.0.0-alpha-004853) Product Information: Version: 2.0.0-alpha-004853 Commit SHA-1 hash: e7689a3116 Runtime Environment: OS Name: Windows OS Version: 10.0.14393 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\2.0.0-alpha-004853\ --- @Petermarcu commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284159339) Interesting, there is an effort going on right now to move ASP.NET on top of Span. @KrzysztofCwalina , does there need to be an explicit reference to the Span package at this point? I think its in this package: https://dotnet.myget.org/feed/dotnet-core/package/nuget/System.Memory ASP.NET versions that use that type should be referencing that package. --- @Petermarcu commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284159409) I'm guessing this happens everywhere. Not just on your Pi. --- @gkhanna79 commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284178854) CC @jkotas --- @jkotas commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284179698) This is caused by breaking change in System.Memory public surface that @ahsonkhan made to fix https://github.com/dotnet/corefx/issues/13681. ASP.NET needs to pick up latest version of System.Memory packages to be compatible with latest Microsoft.NETCore.App. --- @jkotas commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284181133) @davidfowl What does need to happen for ASP.NET to pick up latest System.Memory? --- @davidfowl commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284191517) I'm surprised we're even binding to that method. We need to wait until the corefxlab packages get mirrored into asp.net's feed. That's being worked on...No eta yet /cc @pranavkm --- @Petermarcu commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284191648) In the meantime, can @challe reference the package directly or will that break other things? --- @davidfowl commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284192891) Referencing the package won't help. You'd need to downgrade your runtime back to netcoreapp1.1 or use an earlier version of 2.0 that doesn't have this change. --- @Petermarcu commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284200233) Can't, this is an architecture we don't have in 1.X. we need to get 2.0 working. --- @Petermarcu commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284200264) Should we undo the breaking change until this is properly coordinated? --- @davidfowl commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284202802) > Should we undo the breaking change until this is properly coordinated? We *could* but I like using it as a forcing function to get our mirror fixed. /cc @Eilon --- @Petermarcu commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284203975) It would be great to understand how long this will be broken and back out the change if its going to be more than a day or so. We have a lot of people using 2.0 pre-release builds that will quickly discover this break. --- @jkotas commented on [Sat Mar 04 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284205909) https://github.com/aspnet/kestrelHttpServer is the last part that requires updating to get the change absorbed. Revering it would need to propagate through coreclr, corefx and corefxlab - definitely longer path. --- @Petermarcu commented on [Sun Mar 05 2017](https://github.com/dotnet/core-setup/issues/1632#issuecomment-284269486) Looks like ASP.NET was able to get a build out with all the updated references. If you get the latest from the MyGet feed this should be fixed. Here is the feed to add to your NuGet.config (I assume you already had it). https://dotnet.myget.org/F/aspnetcore-ci-dev/api/v3/index.json Make sure you have at least : Microsoft.AspNetCore.Server.Kestrel 1.2.0-preview1-23736 " +16779 area-System.Security System.Security.Cryptography.Xml KeyInfoTest.ImportKeyNode is failing This test is passing on full .NET but is failing on CoreFX - we need to verify what has happened. Also verify that test was properly ported from Mono as it could be some simple typo ```csharp System.Security.Cryptography.Xml.Tests.KeyInfoTest.ImportKeyNode [FAIL] System.Security.Cryptography.CryptographicException : An error occurred parsing the key components ---- Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The parameter is incorrect Stack Trace: at System.Security.Cryptography.Xml.DSAKeyValue.LoadXml(XmlElement value) at System.Security.Cryptography.Xml.KeyInfo.LoadXml(XmlElement value) at System.Security.Cryptography.Xml.Tests.KeyInfoTest.ImportKeyNode() ----- Inner Stack Trace ----- at System.Security.Cryptography.CngKeyLite.ImportKeyBlob(String blobType, Byte[] keyBlob) at System.Security.Cryptography.DSAImplementation.DSACng.ImportKeyBlob(Byte[] rsaBlob, Boolean includePrivate) at System.Security.Cryptography.DSAImplementation.DSACng.ImportParameters(DSAParameters parameters) at System.Security.Cryptography.Xml.DSAKeyValue.LoadXml(XmlElement value) ``` likely also related failure: ```csharp System.Security.Cryptography.Xml.Tests.DSAKeyValueTest.LoadXml [FAIL] Assert.NotNull() Failure Stack Trace: /home/krwq/work/corefx/src/System.Security.Cryptography.Xml/tests/DSAKeyValueTest.cs(113,0): at System.Security.Cryptography.Xml.Tests.DSAKeyValueTest.LoadXml() ``` cc: @tintoy @anthonylangsworth @peterwurzinger +16780 area-System.Security System.Security.Cryptography.Xml XmlDsigC14NTransformTest.PrefixlessNamespaceOutput failing "This test is also failing on Desktop but the failure is different. Actual failure: ``` System.Security.Cryptography.Xml.Tests.XmlDsigC14NTransformTest.PrefixlessNamespaceOutput [FAIL] Assert.Equal() Failure  (pos 0) Expected: urn:foo Actual:  (pos 0) Stack Trace: at System.Security.Cryptography.Xml.Tests.XmlDsigC14NTransformTest.PrefixlessNamespaceOutput() ``` Acceptable failure (Desktop): ``` Strings not equal: ""urn:foo"" and """" ``` cc: @tintoy @anthonylangsworth " +16781 area-System.Security Remove/fix NotImplementedExceptions in S.S.Cryptography.Xml "CryptoHelpers.cs contains few NotImplementedExceptions. For each one of them we should add a test which will trigger that NIE or remove a case. Each removed case should be understood (i.e. algorithm is not longer secure and we do not want to support verification) As part of this issue we should also identify if there are any ""TODO"" ""fix me"" etc in the code. cc: @anthonylangsworth @tintoy List of remaining items which either throw NotImplementedException or are not implemented and should be: - [x] Signing/verifying HMACMD5 needs tests - [x] All symmetric encryption algorithms need tests - [x] RSA with OAEP padding needs tests - [x] Decryption transform needs tests (there could be some but there is no explicit usage of algorithm in the test – there could be an implied usage though) - [x] License transform needs tests " +16782 area-System.IO FileInfo.CreationTime should throw PlatformNotSupported on platforms where it isn't supported On most non-Windows platforms, the stat family of functions returns a struct that is missing st_birthtime. We observe this at [build time](https://github.com/dotnet/corefx/blob/d736f7688b0ce09eca208c85eec3a84c556337d2/src/Native/Unix/configure.cmake#L120), and only try to get the value in our [PAL if we know it is supported](https://github.com/dotnet/corefx/blob/0e3fe2d4e207067d427f301b4533acb3e1c8c9f5/src/Native/Unix/System.Native/pal_io.cpp#L152). If we know we don't have st_birthtime, we return [default(DateTimeOffset)](https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.IO.FileSystem/src/System/IO/FileSystemInfo.Unix.cs#L166). Here's some output from Ubuntu 16.04: ```console CreationTime: Monday, January 1, 0001 12:00:00 AM CreationTimeUtc: Monday, January 1, 0001 12:00:00 AM LastAccessTime: Saturday, March 4, 2017 3:27:29 PM LastAccessTimeUtc: Saturday, March 4, 2017 11:27:29 PM LastWriteTime: Sunday, February 19, 2017 12:21:30 AM LastWriteTimeUtc: Sunday, February 19, 2017 8:21:30 AM ``` This should throw PlatformNotSupportedException, as the platform does not support the concept being expressed. It is in fact dangerous behavior the way it is. Imagine a disk cleanup program designed to delete everything older than a week after it backs up everything created this week. cc: @ianhays @JeremyKuhne +16783 area-System.Net HttpClient on Linux improvements and enhancements "@lgreenlee commented on [Mon Mar 06 2017](https://github.com/dotnet/coreclr/issues/9984) After utilizing the HttpClient for several micro-services I believe some improvements can be made to the HttpClient under Linux. ### Improvement 1 - Remove the CURL dependency/Or HttpClientSlim? I believe there is a thread discussing this already but the the dependency on CURL is problematic. It causes and will continue to cause a few basic issues such as this one. https://github.com/dotnet/coreclr/issues/9953 Over time the Curl dependency will become more pronounced as interfaces change. Eventually, there will be some sort of breaking change that will cause your users (like me) subtle and/or obvious problems such as software ceasing to work, or unwanted (but needed) system updates to non .NET software. The ""fix"" for this particular issue may be a static dependency. There are other reasons though... A byproduct of the CURL dependency is that the behavior of the HttpClient is handicapped. We cannot retrieve an underlying network stream from the HttpClient and do with it as we wish. Access to the stream is hidden within curl. Rich signaling of error conditions and network state are not possible as a result. Finally, there is also some overhead associated with pinvoke and the interop. We cannot say the current implementation is the most efficient way to make these requests. I would propose a higher performance, ""lighter weight"" client with better underlying network access and memory usage our current implementation. ### Improvement 2 - Synchronous methods In some scenarios I would like to be sure that I know what my code is doing. There are times, such as trying to design a process that is well understood and verifiable, where placing that code in a thread and running it to completion (or forever) is a desirable attribute. Fundamentally, the use of the await keyword introduces code that the developer does not write. After having spent the last 8 months developing on Linux with just the VS Code debugger - debugging complex threading issues is very difficult and time consuming. Finally the inclusion of the HttpClient forces me to change the overall structure of my service if it is primarily Synchronous in nature. ### Improvement 3 - Better indication of proper usage Creation of the HttpClient through ""new"" to make an individual requests is not recommended, but it is easy to do and seemingly correct since there are no API features to prevent us from making the mistake. TIME_WAIT socket growth is also not an expected behavior if I call ""Dispose"" on the HttpClient. Perhaps implementing a HttpClientPool with the ability to retrieve named instances of an http client and hiding the constructor for the HttpClient? The importance of the HttpClient to the .NET Core framework cannot be understated. It one of a handful of mechanisms to communicate outside the CLR, is the only Http based mechanism we have to complete REST operations. It must work well now and into the future for developers and organizations to continue to adopt .NET Core as a development and deployment platform. --- @stephentoub commented on [Mon Mar 06 2017](https://github.com/dotnet/coreclr/issues/9984#issuecomment-284501248) Thanks, but as a meta-point with regards to the title of this issue, I'm not sure how this is Linux-specific. (2) and (3) are about the shape of HttpClient, and (1) is simply about having a managed implementation rather than relying on a native implementation, e.g. libcurl on Linux or WinHttp on Windows. --- @stephentoub commented on [Mon Mar 06 2017](https://github.com/dotnet/coreclr/issues/9984#issuecomment-284503019) (1) We are considering a managed HttpClientHandler implementation. The core of that isn't challenging. The challenging part is feature parity, e.g. support for Negotiate/Kerberos/NTLM, support for HTTP/2, etc. Nothing insurmountable, just a lot of work before it could be substituted in silently. In the meantime, we are considering putting out a prototype of a managed implementation on corefxlab, that folks could play with, contribute to, and even use if they desired. (2) If this is about ease of us, you can't just block on the resulting Tasks, e.g. .Wait(), .Result, or .GetAwaiter().GetResult()? That would impact scalability, but you wouldn't want to use synchronous methods if scalability were an issue anyway. There was also already an issue about this: https://github.com/dotnet/corefx/issues/13813 If you want to continue this discussion, probably best to do it there. (3) Feel free to propose an API. I suggest splitting this issue up, though, as it's difficult to have a reasonable discussion about multiple, largely-unrelated issues in the same thread. I suggest closing this issue, using existing issues or opening new issues in the corefx repo for each constituent piece. " +16784 area-System.Net System.Net.Sockets.Tests.SocketAsyncEventArgsTest.CancelConnectAsync_InstanceConnect_CancelsInProgressConnect failure ```csharp System.Net.Sockets.Tests.SocketAsyncEventArgsTest.CancelConnectAsync_InstanceConnect_CancelsInProgressConnect [FAIL] Assert.False() Failure Expected: False Actual: True Stack Trace: /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_release_prtest/src/System.Net.Sockets/tests/FunctionalTests/SocketAsyncEventArgsTest.cs(296,0): at System.Net.Sockets.Tests.SocketAsyncEventArgsTest.CancelConnectAsync_InstanceConnect_CancelsInProgressConnect() ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release_prtest/4197/consoleText +16785 area-System.Diagnostics Microsoft.Extensions.Logging.EventLog not compitable with .NetCoreApp v1.0 ``` Package Microsoft.Extensions.Logging.EventLog 1.1.1 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Microsoft.Extensions.Logging.EventLog 1.1.1 supports: net451 (.NETFramework,Version=v4.5.1) One or more packages are incompatible with .NETCoreApp,Version=v1.0. ``` Is there an alternative to writing to the Windows EventLog for a .NetCore app? The EventLog nuget package doesn't install and I want to use it's LoggerProvider. +16786 area-System.Runtime String should implement IReadOnlyList The .Net String class does not implement any API that provides allows random access without also implying that the characters are all in contiguous memory. There are many string-like data structures, however, that give random access to immutable sequences of characters without the characters being in contiguous memory. **Rational and usage:** As things stand, the API & implementation for the VS TextBuffer is complicated because we need two versions of several methods: one that takes a string and one that takes our piece table. Having string implement `IReadOnlyList` would eliminate the need to duplicate the methods (and the while overhead of calling the character indexer via a virtual method is annoying it isn't critical in most of our scenarios since users rarely paste in megabytes of text). **Proposed change:** Change the signature of String from this: ``` c# public sealed class String : IComparable, ICloneable, IConvertible, IComparable, IEnumerable, IEnumerable, IEquatable ``` to this: ``` c# public sealed class String : IComparable, ICloneable, IConvertible, IComparable, IEnumerable, IEnumerable, IEquatable, IReadOnlyList ``` And add an implementation for `int IReadOnlyList.Count {get;}.` A more challenging request would be to have string implement something slightly more robust than `IReadOnlyList` which would provide some useful methods that avoid some of the performance issues (specifically, allowing a Substring-like capability and a copy ability that wouldn't have the overhead of going through the character indexer for each character). ``` c# public interface ISubsetableReadOnlyList : IReadOnlyList { ISubsetableReadOnlyList Slice(int start, int length); public void CopyTo(int sourceIndex, T[] destination, int destinationIndex, int count); } ``` It would also be convenient of ReadOnlySpan also implemented IReadOnlyChar (or ISubsettableReadOnlyList) so it could be used in scenarios where the consumer doesn't require the elements to be in contiguous memory. +16787 area-System.Memory Adding Span IndexOf that takes an index and count +16788 area-Serialization XmlSerializer to Support IXmlSerializable Types IXmlSerializable is available in NetStandard2.0. XmlSerializer should support serializing/de-serializing types implementing this interface. +16789 area-Infrastructure Microsoft.Private.CoreFx.Uap builds on non-Windows platforms "If you're running on Linux and you build with ""-BuildAllConfigurations=true"", it will attempt to build the Microsoft.Private.CoreFx.UAP package. We need some way to build all OS-applicable packages on Linux so that we can produce Microsoft.NETCore.Platforms. As a temporary work-around, we will just explicitly build the Platforms package, but I think the real fix is as simple as adding ""-Windows_NT"" to build BuildConfigurations in https://github.com/dotnet/corefx/blob/master/pkg/Microsoft.Private.CoreFx.UAP/Configurations.props @ericstj @weshaggard @ellismg " +16790 area-System.Collections [NetFX compat]: SortedSet..ctor(IEnumerable, IComparer) netfx bug There is a bug in netfx where `SortedSet..ctor(IEnumerable, IComparer)` throws NullReferenceException when comparer argument is null. @AlexGhiondea @tarekgh +16791 area-Infrastructure Enable Dumpling on all CI runs This turns on Dumpling collection in all CI runs (not just Unix). @karelz @danmosemsft +16792 area-System.Net Remove delegate allocations from SocketAsyncEventArgs SocketAsyncEventArgs is creating per-instance (sometimes per operation) delegates that can instead be a single cached static instance across all instances and operations. (@geoffkizer, I saw this in looking at a trace of your app. It was showing up as two delegate allocations per request.) cc: @geoffkizer, @cipop, @davidsh +16794 area-Infrastructure RootFS: Add no-lldb option to fix arm64 build #16182 and #13200 added lldb to the rootfs for CoreFX. However, CoreFX does not have a dependency on liblldb (CoreCLR does), and this package is not available for ubuntu.16.04-arm64 and earlier, causing the RootFS generation to fail. This PR adds an option to disable adding the LLDB package for the CoreFX RootFS. +16795 area-System.Data System.Data.SqlDbType exists in both netstandard.dll and System.Data.SqlClient.dll "@billwert commented on [Mon Mar 06 2017](https://github.com/dotnet/standard/issues/238) This causes compile failures for apps using the type and the nuget package. cc: @weshaggard --- @weshaggard commented on [Mon Mar 06 2017](https://github.com/dotnet/standard/issues/238#issuecomment-284558489) You need to reference the latest version of System.Data.SqlDbType to fix this error. --- @billwert commented on [Mon Mar 06 2017](https://github.com/dotnet/standard/issues/238#issuecomment-284562285) This project, with a reference to SqlDbType somewhere in the code, repros the problem: ```xml netstandard2.0 2.0.0-beta-25106-01 4.4.0-beta-25106-01 ``` That's the latest NETStandard.Library as well as the latest System.Data.SqlClient. From my project.assets.json: ```json ""System.Data.SqlClient/4.4.0-beta-25106-01"": { ""type"": ""package"", ""dependencies"": { ""Microsoft.NETCore.Platforms"": ""2.0.0-beta-25106-01"", ""NETStandard.Library"": ""1.6.1"", ""System.Data.Common"": ""4.3.0"", ""System.Diagnostics.DiagnosticSource"": ""4.4.0-beta-25106-01"", ""System.IO.Pipes"": ""4.3.0"", ""System.Net.NameResolution"": ""4.3.0"", ""System.Net.Security"": ""4.3.0"", ""System.Reflection.TypeExtensions"": ""4.3.0"", ""System.Security.Principal"": ""4.3.0"", ""System.Security.Principal.Windows"": ""4.4.0-beta-25106-01"", ""System.Text.Encoding.CodePages"": ""4.4.0-beta-25106-01"", ""System.Threading.Thread"": ""4.3.0"", ""System.Threading.ThreadPool"": ""4.3.0"", ""runtime.native.System.Data.SqlClient.sni"": ""4.3.0"" }, ``` " +16796 area-System.Collections [NetFX compat]: ISet_Generic_Tests.ISet_Generic_IntersectWith_Itself throws InvalidOperationException in netfx Currently ISet_Generic_IntersectWith_Itself test fails with error: ``` System.Collections.Tests.SortedSet_TreeSubset_Int_Tests.ISet_Generic_IntersectWith_Itself(setLength: 1) [FAIL] System.Collections.Tests.SortedSet_TreeSubset_Int_Tests.ISet_Generic_IntersectWith_Itself(setLength: 75) [FAIL] System.InvalidOperationException : Collection was modified after the enumerator was instantiated. Stack Trace: at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) at System.Collections.Generic.SortedSet`1.Enumerator.MoveNext() at System.Collections.Generic.SortedSet`1.TreeSubSet.IntersectWithEnumerable(IEnumerable`1 other) at System.Collections.Generic.SortedSet`1.IntersectWith(IEnumerable`1 other) D:\repos\corefx\src\Common\tests\System\Collections\ISet.Generic.Tests.cs(145,0): at System.Collections.Tests.ISet_Generic_Tests`1.Validate_IntersectWith(ISet`1 set, IEnumerable`1 enumerable) D:\repos\corefx\src\Common\tests\System\Collections\ISet.Generic.Tests.cs(426,0): at System.Collections.Tests.ISet_Generic_Tests`1.ISet_Generic_IntersectWith_Itself(Int32 setLength ``` When targeting framework netfx. cc: @tarekgh +16798 area-System.Security System.Security.Cryptography.Xml Fix NullReferenceException with PropagatedNamespaces "Please see XmlDsigC14NTransformTest.PropagatedNamespaces for repro. Copy: ```csharp XmlDocument doc = new XmlDocument(); doc.AppendChild(doc.CreateElement(""foo"", ""urn:foo"")); doc.DocumentElement.AppendChild(doc.CreateElement(""bar"", ""urn:bar"")); Assert.Equal(String.Empty, doc.DocumentElement.GetAttribute(""xmlns:f"")); XmlDsigExcC14NTransform t = new XmlDsigExcC14NTransform(); t.LoadInput(doc); t.PropagatedNamespaces.Add(""f"", ""urn:foo""); t.PropagatedNamespaces.Add(""b"", ""urn:bar""); using (Stream s = t.GetOutput() as Stream) using (StreamReader streamReader = new StreamReader(s, Encoding.UTF8)) { string result = streamReader.ReadToEnd(); Assert.Equal(result, """"); Assert.Equal(""urn:foo"", doc.DocumentElement.NamespaceURI); } ``` We need to figure if @anthonylangsworth fix is the correct one and port the fix to netfx. original fix: https://github.com/krwq/corefx/commit/55f4b8735835b9bb57db03cac31443d061c81cbe As part of this issue we need to ensure that the test is correctly interacting with PropagatedNamespaces (please see full commit with change including the changes made to the test)" +16799 area-System.Threading Add Interlocked.MemoryBarrierProcessWide method Proposal: ```c# static public class System.Threading.Interlocked { public static void ProcessWideMemoryBarrier(); } ``` Asymmetric lock free algorithms and data structures, where frequent operations are really cheap (not even interlocked operation) and rare operations are very expensive, are often used to achieve high scalability and performance. It is not possible to implement them in portable .NET code today because there is no process wide memory barrier API that is a key primitive used to implement them. The proposal is to add system process wide memory barrier API. The implementation is a simple wrapper around [`FlushProcessWriteBuffers`](https://msdn.microsoft.com/en-us/library/windows/desktop/ms683148(v=vs.85).aspx) API on Windows; and equivalent on other operating systems (e.g. `sys_membarrier` on recent Linux kernels). +16800 area-System.Collections Move a System.Collections test Just moves the test to a more derived test class. In its current location, it's unnecessarily getting run multiple times but without any variation. Addressing my remaining comments in https://github.com/dotnet/corefx/pull/16758 cc: @safern +16801 area-System.Data Retarget System.Data.SqlClient to be on top of netstandard2.0. Fixes https://github.com/dotnet/corefx/issues/16795 cc @saurabh500 @ericstj +16802 area-Infrastructure Refresh current solutions and project configurations +16803 area-Infrastructure Cloud test refactoring into UploadTests.proj "Simplifies contents of CoreFX's CloudTest.targets down to discovering the files to be used, generating appropriate helix commands for them, and pushing to Helix. Final changes will also require pipeline JSON changes to: - [x] Change all incidences of TargetQueue to TargetQueues, as this is now the appropriate way to select 1 or more queues when sending jobs. - [x] Change usage of Drop and Results Name + ""Access Token"" (Key) values to be connection strings. Sample command line: msbuild src\uploadtests.proj /p:ArchGroup=x64 /p:ConfigurationGroup=Release /p:""BuildMoniker=20170307-XX"" /p:""TargetQueues="" /p:""TestProduct=corefx"" /p:""TargetOS=Windows_NT"" /p:""Branch=master"" /p:""OfficialBuildId=20170307-XX"" /p:""CloudDropConnectionString="" /p:""CloudResultsConnectionString="" /p:HelixApiAccessKey= /p:""HelixApiEndpoint=https://helix.dot.net/api/2016-06-28/jobs"" " +16804 area-Serialization Stop shipping Desktop OOB package for System.Runtime.Serialization.Primitives Shipping OOB packages overriding Desktop .NET Framework (gac'd assemblies) is HARD. We ran into problems with Networking and decided to stop shipping all such packages. We should stop shipping System.Runtime.Serialization.Primitives package for Desktop and forward everything to Desktop .NET Framework. @shmao @zhenlan is that feasible? What will we lose if we stop shipping the OOB package for Desktop? Some APIs? Bug fixes? Anything super-important? cc @weshaggard +16805 area-System.Net Desktop OOB System.Net.Http - don't ship desktop implementation With netstandard2.0.dll we will facade the OOB into Desktop .NET. Is it something we should do also in the standalone System.Net.Http NuGet package? i.e. release yet another version which entirely removes the implementation in CoreFX and ships just the facade on Desktop? @weshaggard thoughts? +16807 area-Meta PVS-Studio: fixed vulnerability CWE-476 (NULL Pointer Dereference) We have found and fixed a vulnerability CWE-476 (NULL Pointer Dereference) using PVS-Studio tool. Analyzer warning: V3080 and V3019. PVS-Studio is a static code analyzer for C, C++ and C#. +16808 area-System.Collections Remove CoreCLR pull 7966 from SerializeDeserialize_Roundtrips() under System.Collections.ObjectModel.Tests Remove CoreCLR pull 7966 from SerializeDeserialize_Roundtrips() under System.Collections.ObjectModel.Tests in Serialization.netstandard.cs Run >msbuild System.ObjectModel.Tests.csproj /t:BuildAndTest --> Succeeded +16809 area-System.Runtime Remove CoreCLR pull 6423 from NegativeValueNotFound() under System.Runtime.Serialization.Formatters.Tests Remove ActiveIssue 6423 from NegativeValueNotFound() under System.Runtime.Serialization.Formatters.Tests in SerializationInfoTests.cs Run msbuild System.Runtime.Serialization.Formatters.Tests.csproj /t:BuildAndTest --> Succeeded +16810 area-System.Text Expose and test new GetBytes/GetByteCount overloads This is currently a WIP - I'm having some problems exposing the API so want to see what the CI says... Fixes #14255 +16813 area-System.IO Why does System.IO.MemoryStream.Read returns 0 if no more bytes are available? I think that's something which makes streams very inconsistent. System.Net.Sockets.NetworkStream.Read may return 0 if there is no data available right now but there may be some data available in the future. If you look how System.IO.BinaryReader uses Read you see how It wraps around this inconsistency. https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/IO/BinaryReader.cs#L637 However this means It makes BinaryReader unable to work with a NetworkStream(in theory) because a NetworkStream may return 0, while the end of the stream is not reached. Example: https://dotnetfiddle.net/JkakUI +16816 area-Infrastructure Use run.cmd in publish build leg (reapply) https://github.com/dotnet/corefx/pull/16775 removed a fix to use run.cmd in the publish build. That fix is required to make the tool-override work, and the build publish legs are failing without it. Commits are cherry-picked from https://github.com/dotnet/corefx/pull/16440, https://github.com/dotnet/corefx/pull/16672 +16817 area-System.Security Define metadata for the rest of the TLS CipherSuites. The non-ciphersuite ciphersuite values were removed, as were the SSL2-only values, and the values that have unknown values (Cipher:IDEA, KEA:Fortezza). The dictionary is asserted as fully populated with a fixed-length cctor test, and the additional test of ensuring all defined values have defined metadata has been performed. TlsMapping calls were built by regex substitution expressions, and have been checked manually for consistency. +16818 area-System.Collections "Proposal: add ""IEqualityComparer Comparer"" property to the IReadOnlyDictionary and to ISet" When we have only contract of the collection we cannot understand by what criteria keys or items are compared. ```CSharp public void Test(ISet mySet) { // I want to clone this set to get my personal copy. var myCopy = new HashSet(mySet, /*How to get comparer ?*/); } public interface ISet { // This new property can be introduced. IEqualityComparer Compare { get;} } ``` Improvements of BCL interfaces without loosing backward compatibility will be possible with help of https://github.com/dotnet/csharplang/issues/52 Also this proposal is mentioned here https://github.com/dotnet/corefx/issues/1973#issuecomment-283912409 +16819 area-Infrastructure Support compiling for ARM Android - Supports cross-compiling corefx cor ARM Android - Updates curl and krb5 packages - Uses NDK 14 by default for cross-compiling Some changes are required to native source code as well, I'll try to submit separate PRs for that. +16822 area-System.IO Use 64-bit file I/O functions, for Android compatibility On 32-bit Android, the file functions like lseek also operate on 32-bit values. `_FILE_OFFSET_BITS` and friends have no impact on Android, see the 32-bit notes at the end of the [bionic README.md](https://android.googlesource.com/platform/bionic.git/+/master/README.md) This PR updates the codebase to always use 64-bit file I/O functions like `lseek64`. This effectively reverts #736. +16823 area-Meta List and Review OOB packages shipping replacements of Desktop assemblies We need to review all NuGet packages which replace Desktop .NET Framework gac'd assemblies - shipping such NuGet packages is HARD (see e.g. #11100), not tested and causes trouble with binding redirects (see #9846). Known list of packages: 1. System.Net.Http - #16805 2. System.IO.Compression - #15693 3. System.Runtime.Serialization.Primitives - #16804 [3] is example where we extend Desktop - we need to enumerate all such cases in CoreFX and decide for 2.0. +16824 area-System.Threading Move TaskExtensions to CoreLib Depends on https://github.com/dotnet/coreclr/pull/10005 Fixes https://github.com/dotnet/corefx/issues/15152 cc: @jkotas, @alexperovich +16825 area-System.Xml Investigate the size of System.Private.Xml System.Private.Xml is 3.7 MB of size on disk for IL and 8.4 MB when cross-gen'ed which seems a little large. For reference System.Xml.dll on desktop is only 2.6 MB. We should understand the delta and make sure we aren't including a bunch of dead code. +16826 area-System.Net Improve CI: disable socket eventarg test Disabling new test CancelConnectAsync_InstanceConnect_CancelsInProgressConnect since it is failing in CI Applies to issue https://github.com/dotnet/corefx/issues/16765 +16829 area-System.Security Improve Code Coverage for System.Security.Cryptography.Xml (70.4%) Here are the main areas which need improvement: - [x] `SignedXml.CheckSignature(X509Certificate2 certificate, bool verifySignatureOnly)` - currently no coverage - sample code should be sufficient for now - [x] `System.Security.Cryptography.Xml.XmlDecryptionTransform` - https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/System.Security.Cryptography.Xml_XmlDecryptionTransform.htm - [x] `System.Security.Cryptography.Xml.SymmetricKeyWrap` - https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/System.Security.Cryptography.Xml_SymmetricKeyWrap.htm - [ ] `System.Security.Cryptography.Xml.KeyInfoClause` - https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/System.Security.Cryptography.Xml_KeyInfoClause.htm - [X] `System.Security.Cryptography.Xml.EncryptedXml` - https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/System.Security.Cryptography.Xml_EncryptedXml.htm - only most common scenarios - [x] `System.Security.Cryptography.Xml.EncryptionMethod` - https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/System.Security.Cryptography.Xml_EncryptionMethod.htm - [ ] `System.Security.Cryptography.Xml.CanonicalXmlEntityReference` - https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/System.Security.Cryptography.Xml_CanonicalXmlEntityReference.htm - at minimum one or two tests triggering use of this class Guidelines: - focus on writing tests which provide most value (rarely used scenarios can be targeted later) - focus on public entry points cc: @anthonylangsworth @tintoy @peterwurzinger +16832 area-System.Net System.Net.Security tests fix Disables a few tests that are failing for known issues and increases the timeout on some tests that are failing on Unix because they're hitting that timeout. cc: @steveharter @Priya91 resolves https://github.com/dotnet/corefx/issues/16741 +16833 area-System.Numerics API Proposal: Ceil, Floor for Vector This is a proposal of the ideas discussed in issue #15957. There are a few SIMD operations on `System.Numerics.Vector` missing that are required to implement vectorized versions of `log`, `exp`, `sin`, and `cos`. There is a C implementation of these methods using AVX intrinsics [here](http://software-lisc.fbk.eu/avx_mathfun/), which I have translated into a C# implemention using `Vector` [here](https://github.com/mjmckp/VectorMathFuns). In the implementation, I have added fake versions of the missing intrinsics. @mellinoe suggested creating two separate issues for the missing methods (the other issue is #16835), so the purpose of this issue is to propose the addition of the following methods: [Updated proposal with comments below] ```C# namespace System.Numerics { public static class Vector { public static Vector Floor(Vector value); public static Vector Floor(Vector value); public static Vector Ceiling(Vector value); public static Vector Ceiling(Vector value); } } ``` which map directly to the following AVX intrinsics: ``` _mm256_floor_ps _mm256_floor_pd _mm256_ceil_ps _mm256_ceil_pd ``` respectively. +16834 area-System.Net System.Net.Requests: Avoid unnecessary box allocations in TimerThread I noticed that some box allocations could be avoided in `System.Net.TimerThread` (used by `FtpWebRequest`). First commit is some minor cleanup while I'm making changes here: cleanup naming, make fields readonly, use expression bodied members where appropriate, and remove the static constructor. Second commit reduces box allocations. +16835 area-System.Numerics API Proposal: ShiftLeft, ShiftRight for Vector This is a proposal of the ideas discussed in issue #15957. There are a few SIMD operations on `System.Numerics.Vector` missing that are required to implement vectorized versions of `log`, `exp`, `sin`, and `cos`. There is a C implementation of these methods using AVX intrinsics [here](http://software-lisc.fbk.eu/avx_mathfun/), which I have translated into a C# implemention using `Vector` [here](https://github.com/mjmckp/VectorMathFuns). In the implementation, I have added fake versions of the missing intrinsics. @mellinoe suggested creating two separate issues for the missing methods (the other issue is #16833), so the purpose of this issue is to propose the addition of the following methods: ``` public static Vector ShiftLeft(Vector x, int n) public static Vector ShiftLeft(Vector x, int n) public static Vector ShiftLeft(Vector x, int n) public static Vector ShiftRight(Vector x, int n) public static Vector ShiftRight(Vector x, int n) public static Vector ShiftRight(Vector x, int n) ``` which map directly to the following AVX2 intrinsics: ``` _mm256_slli_epi16 _mm256_slli_epi32 _mm256_slli_epi64 _mm256_srli_epi16 _mm256_srli_epi32 _mm256_srli_epi64 ``` respectively. +16836 area-System.Reflection Type: Needs api to distinguish Multidim arrays Forked off from #16566 which is adding `IsSZArray` to `Type`. After that proposal got approved, you can check whether a `System.Type` is a multidim array by writing `type.IsArray && !type.IsSZArray`. This check is rather awkward. We used to have this kind of API surface in the CoreRT type system, but it lead to problems with readability of the code that used the API. We ended up adding an IsMDArray property to the type system - refer to dotnet/corert#1925 to see how it improves readability (it lead to substantial improvements in readability in places that were dealing with arrays and the `IsArray` part was implicit, but we needed to do something special for MD arrays - `IsMDArray` captures the intent better than `!IsSZArray`) Proposal: Add a new property to System.Type: ```csharp public virtual bool IsMultiDimensionalArray => IsArray && !IsSZArray; ``` +16838 area-Infrastructure Update BuildTools to 1.0.27-prerelease-01407-02, include symbols in packages /cc @weshaggard @ellismg @ericstj +16839 area-Serialization TypeInitialization_Type_NoTypeAvailable in Serialization Tests When running on Uapaot, many of serialization tests failed on `System.TypeInitializationException`. Please see the example below, ``` DataContractSerializerTests.DCS_TypeWithKnownTypeAttributeAndListOfInterfaceMember [FAIL] System.TypeInitializationException : TypeInitialization_Type_NoTypeAvailable ---- $BlockedFromReflection_0_42dbdc6b : Reflection_InsufficientMetadata_NoHelpAvailable: EETypeRva:0x00097CE8. For more information, visit http://go.microsoft.com/fwlink/?LinkId=623485 Stack Trace: f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs(114,0): at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun$catch$0() f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs(37,0): at System.Runtime.CompilerServices.ClassConstructorRunner.CheckStaticClassConstruction(Void* returnValue, StaticClassConstructionContext* pContext) D:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\CollectionDataContract.cs(490,0): at System.Runtime.Serialization.CollectionDataContract.CollectionDataContractCriticalHelper.get_KnownInterfaces() D:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\CollectionDataContract.cs(1110,0): at System.Runtime.Serialization.CollectionDataContract.IsCollectionOrTryCreate(Type type, Boolean tryCreate, $DataContract& dataContract, Type& itemType, Boolean constructorRequired, MethodInfo addMethod) ``` According to the error message, it seems the `typeof(IDictionaryGeneric)` call failed or the reflection component was having trouble looking for the static constructor of [CollectionDataContractCriticalHelper](https://github.com/dotnet/corefx/blob/15b4f51c2f3cb924840e5407bb8d5fe03bb282ea/src/System.Private.DataContractSerialization/src/System/Runtime/Serialization/CollectionDataContract.cs#L490). +16840 area-System.Memory Span/ReadonlySpan TryCopy/CopyTo are very slow The implementation of TryCopyTo/CopyTo is extremely slow (byte by byte) for the portable span. There's a TODO to use a new API in Unsafe (which has since been added) but it was never implemented. https://github.com/dotnet/corefx/blob/5ee9e2a7ded9d609e69bbd7c1ed6823b97737a72/src/System.Memory/src/System/Span.cs#L329 https://github.com/dotnet/corefx/blob/5ee9e2a7ded9d609e69bbd7c1ed6823b97737a72/src/System.Memory/src/System/ReadOnlySpan.cs#L226 /cc @jkotas @benaadams @ahsonkhan @KrzysztofCwalina @nietras +16841 area-System.Numerics Floating-Point Classification APIs ### Rationale The .NET framework does not currently provide support for classifying various floating-point types other than Infinity and NAN. Efficiently classifying floating-point values can be very useful to optimize various code paths when dealing with numbers that are outside the normal input range. ### Proposed API ``` C# public struct Double { /// Determines whether the specified value is finite (zero, subnormal, or normal and not infinite or NaN). public static bool IsFinite(double value); // IsInfinity is already provided // IsNaN is already provided /// Determines whether the specified value is normal (not zero, subnormal, infinite, or NaN). public static bool IsNormal(double value); /// Determines whether the specified value is negative. public static bool IsNegative(double value); /// Determines whether the specified value is subnormal. public static bool IsSubnormal(double value); } public struct Single { /// Determines whether the specified value is finite (zero, subnormal, or normal and not infinite or NaN). public static bool IsFinite(float value); // IsInfinity is already provided // IsNaN is already provided /// Determines whether the specified value is normal (not zero, subnormal, infinite, or NaN). public static bool IsNormal(float value); /// Determines whether the specified value is negative. public static bool IsNegative(float value); /// Determines whether the specified value is subnormal. public static bool IsSubnormal(float value); } ``` +16842 area-System.Data Consider removing the Encoding.RegisterProvider from SqlClient SqlClient currently registers the encoding providers. They should be done by the application and the not the client itself. Refer the discussions in https://github.com/dotnet/corefx/pull/16589 ``` I think registering the encoding provider should be the app decision and not the library decision. having the library registering the provider means any app using the library will pay the cost of the encoding even if the app not using the non-Unicode encodings. @stephentoub encoding handling didn't change in Net core 2.0. the only change we did is we have made the console support non-Unicode encodings but this is limited to the console only. if you have a client using Unicode only DBs why you want them pay for the encoding cost? this is similar to the networking libraries which is up to the consumer of the library to decide about the encoding but not forcing every app consume the library to pay for the encoding even if they are not using it or need it. ``` +16843 area-Infrastructure Dumping error ValueError: max() arg is an empty sequence "@mellinoe is this behaving normally? https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug/lastCompletedBuild/consoleText ``` bf7c4efa\src\System.Data.SqlClient\tests\FunctionalTests\System.Data.SqlClient.Tests.csproj] Trying to find crash dumps for project: System.Data.SqlClient.Tests Traceback (most recent call last): File ""DumplingHelper.py"", line 75, in main(sys.argv) File ""DumplingHelper.py"", line 67, in main collect_dump(argv[2], argv[3], argv[4], argv[5]) File ""DumplingHelper.py"", line 33, in collect_dump file = find_latest_dump(folder, startTimeStr) File ""DumplingHelper.py"", line 22, in find_latest_dump latestFile = max(allFiles, key=os.path.getctime) ValueError: max() arg is an empty sequence Finished running tests. End time=10:55:32.45, Exit code = 1 ```" +16844 area-System.Net Skip tests on rhel image base that cause ssl cacert error in curl. To address noise in CI due to the tests failing with ssl ca cert errors on fedora, centos and redhat images. Skipping these tests in CI while offline investigation happens. Find more info in the issue #16201 cc @steveharter @karelz +16847 area-System.Numerics Fixing up the System.Numerics.Vectors perf tests. As discovered in https://github.com/dotnet/corefx/pull/16453, the existing `System.Numerics.Vector` performance tests were not actually testing what they were supposed to as the calls were getting optimized away to nothing (this is because most of the calls we are testing are intrinsic and we can determine that the inputs into the call aren't changing and that the output is never used). This updates the tests so that the JIT will not optimize them away. They have been written in a similar fashion to the System.Math and System.MathF performance tests in CoreCLR. +16848 area-Infrastructure Updating CoreClr dependencies to servicing-25108-01 +16849 area-Infrastructure Update CoreClr to servicing-25108-01 (release/1.1.0) +16850 area-Infrastructure Distinguish x86 and x64 build jobs Our Windows Debug builds appear to be x86 while the Release builds are x64, but that distinction isn't obvious: it's not called out in the job name, all of the home page badges suggest all of the builds are x64, etc. We should fix all of this to make it clear what's being tested. cc: @mmitche, @mellinoe, @danmosemsft +16852 area-System.Net Delete commented out Socket assert "Closes https://github.com/dotnet/corefx/issues/4500 cc: @cipop, @davidsh, @geoffkizer This assert doesn't exist in desktop, and it's faulty. It was previously commented out. I'm simply deleting it. We could put the assert back and special case Raw, but doing so doesn't seem to add any value; we're just picking up OS defaults. This little program shows DualMode values for various sockets: ``` using System; using System.Net.Sockets; class Program { static void Main() { foreach (SocketType sock in Enum.GetValues(typeof(SocketType))) { foreach (ProtocolType prot in Enum.GetValues(typeof(ProtocolType))) { try { using (var s = new Socket(AddressFamily.InterNetworkV6, sock, prot)) { Console.WriteLine($""{sock,10}\t{prot,40}\tDualMode:{s.DualMode}""); } } catch (SocketException) { } } } } } ``` Results on desktop on my Windows 10 box: ``` Stream Unspecified DualMode:False Stream Unspecified DualMode:False Stream Unspecified DualMode:False Stream Tcp DualMode:False Dgram Unspecified DualMode:False Dgram Unspecified DualMode:False Dgram Unspecified DualMode:False Dgram Udp DualMode:False Raw Unspecified DualMode:True Raw Unspecified DualMode:True Raw Unspecified DualMode:True Raw Icmp DualMode:True Raw Igmp DualMode:True Raw Ggp DualMode:True Raw IPv4 DualMode:True Raw Tcp DualMode:True Raw Pup DualMode:True Raw Udp DualMode:True Raw Idp DualMode:True Raw IPv6 DualMode:True Raw IPv6RoutingHeader DualMode:True Raw IPv6FragmentHeader DualMode:True Raw IPSecEncapsulatingSecurityPayload DualMode:True Raw IPSecAuthenticationHeader DualMode:True Raw IcmpV6 DualMode:True Raw IPv6NoNextHeader DualMode:True Raw IPv6DestinationOptions DualMode:True Raw ND DualMode:True Raw Raw DualMode:True ``` Results on core on my Windows 10 box: ``` Stream Unspecified DualMode:False Stream Unspecified DualMode:False Stream Unspecified DualMode:False Stream Tcp DualMode:False Dgram Unspecified DualMode:False Dgram Unspecified DualMode:False Dgram Unspecified DualMode:False Dgram Udp DualMode:False Raw Unspecified DualMode:True Raw Unspecified DualMode:True Raw Unspecified DualMode:True Raw Icmp DualMode:True Raw Igmp DualMode:True Raw Ggp DualMode:True Raw IPv4 DualMode:True Raw Tcp DualMode:True Raw Pup DualMode:True Raw Udp DualMode:True Raw Idp DualMode:True Raw IPv6 DualMode:True Raw IPv6RoutingHeader DualMode:True Raw IPv6FragmentHeader DualMode:True Raw IPSecEncapsulatingSecurityPayload DualMode:True Raw IPSecAuthenticationHeader DualMode:True Raw IcmpV6 DualMode:True Raw IPv6NoNextHeader DualMode:True Raw IPv6DestinationOptions DualMode:True Raw ND DualMode:True Raw Raw DualMode:True ```" +16854 area-System.Net Fix Dns_GetHostEntryAsync_NoneIPAddress_Fail test on Unix The APIs appear to be working fine, at least on Ubuntu where I just tried it; it's just we're throwing an internal exception derived from SocketException that contains more details, and the test was expecting exactly a SocketException. Fixed the test. Fixes https://github.com/dotnet/corefx/issues/10345 cc: @geoffkizer +16856 area-System.Diagnostics Failure in System.Diagnostics.Tests.ActivityTests.DiagnosticSourceStartStop @joperezr can you find the right owner for DiagnosticSource? This gave us a red badge this morning. This test may need some logging adding, and leave enabled. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win7_release/lastCompletedBuild/consoleText ``` xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Diagnostics.DiagnosticSource.Tests Discovered: System.Diagnostics.DiagnosticSource.Tests Starting: System.Diagnostics.DiagnosticSource.Tests System.Diagnostics.Tests.ActivityTests.DiagnosticSourceStartStop [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: D:\j\workspace\outerloop_win---75d58f69\src\System.Diagnostics.DiagnosticSource\tests\ActivityTests.cs(378,0): at System.Diagnostics.Tests.ActivityTests.DiagnosticSourceStartStop() Finished: System.Diagnostics.DiagnosticSource.Tests ``` +16857 area-System.IO Failure in WaitForChangedTests.Changed_Success @JeremyKuhne, @ianhays this gave us a red badge this morning. Perhaps this is just the intrinsic unreliability of FSW -- maybe there's a way to make it more robust, eg., try twice? ``` c# Assert.Equal(WatcherChangeTypes.Changed, t.Result.ChangeType); ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_ubuntu16.10_debug/lastCompletedBuild/consoleText ``` System.IO.Tests.WaitForChangedTests.Changed_Success [FAIL] Assert.Equal() Failure Expected: Changed Actual: 0 Stack Trace: /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.10_debug/src/System.IO.FileSystem.Watcher/tests/FileSystemWatcher.WaitForChanged.cs(174,0): at System.IO.Tests.WaitForChangedTests.Changed_Success() ``` +16859 area-Serialization DCJS Throws NullReferenceException when Using ReflectionAsBackup @vitek-karas found the issue, > The problem is a NullRef in JsonClassDataConract.JsonFormatReaderDelegate (but similar issue is elsewhere as well): ``` else if (DataContractSerializer.Option == SerializationOption.ReflectionAsBackup) { tempDelegate = JsonDataContract.TryGetReadWriteDelegatesFromGeneratedAssembly(TraditionalClassDataContract).ClassReaderDelegate; tempDelegate = tempDelegate ?? new ReflectionJsonClassReader(TraditionalClassDataContract).ReflectionReadClass; ``` > The call to TryGetReadWriteDelegatesFromGeneratedAssembly returns null (which it should as the test I’m running don’t invoke sgen at all). The problem is that the code above calls .ClassReaderDelegate on it immediately without checking for null. So it crashes. +16860 area-Infrastructure Building on Windows with VS 2017 Hey guys, Just wanted to know what the requirements are for Building CoreFX on Windows with VS 2017, and maybe suggest an update to the docs here https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md. From a quick test, it seems that I need the `Desktop development with C++` workload, but also the `VC++ 2015.3 v140 toolset (x86,x64)` component. I tried installing only these individual packages but CMake wouldn't find the compiler (`No CMAKE_CXX_COMPILER could be found`): * Visual Studio C++ core features * VC++ 2015.3 v140 toolset (x86,x64) * VC++ 2017 v141 toolset (x86,x64) Regarding the DIA SDK, it seems the `Desktop development with C++` workload installs it in `C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\DIA SDK` and `build.cmd` finds it without any problem. Thanks! +16862 area-System.Net fix pinning bug in SocketPal.SendToAsync on Windows We weren't pinning the socketAddress before passing a pointer to it into WSASendTo. Fixed this, and modified SetUnmanagedStructures to always pin when using a socketAddress. Fixes #16306. +16863 area-Infrastructure Include the ArchGroup in innerloop CI jobs on Jenkins. This will help distinguish which architecture each CI job is configured to build for. +16864 area-Serialization DCJS_SuspensionManager Failed with ReflectionOnly on Uapaot ``` DataContractJsonSerializerTests.DCJS_SuspensionManager [FAIL] System.Runtime.Serialization.SerializationException : Element ':item' contains data of the 'http://schemas.datacontract.org/2004/07/System.Collections.Generic:KeyValuePairOf stringanyType' data contract. The deserializer has no knowledge of any type that maps to this contract. Add the type corresponding to 'KeyValuePairOfstringanyType' to the list of known types - for example, by using the KnownTypeAttribute attribute or by adding it to the list of known types passed to DataContractSerializer. Stack Trace: D:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerReadContext.cs(177,0): at System.Runtime.Serializa tion.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator reader, String name, String ns, DataContract& dataContract) D:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerReadContext.cs(114,0): at System.Runtime.Serializa tion.XmlObjectSerializerReadContext.InternalDeserialize(XmlReaderDelegator xmlReader, Int32 id, RuntimeTypeHandle declaredTypeHandle, String name, String ns) D:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerReadContextComplex.cs(42,0): at System.Runtime.Ser ialization.XmlObjectSerializerReadContextComplex.InternalDeserialize(XmlReaderDelegator xmlReader, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle, String name, String ns) D:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionReader.cs(345,0): at System.Runtime.Serialization.Reflectio nReader.ReflectionInternalDeserialize(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context, CollectionDataContract collectionContract, Type type, String name, Stri ng ns) D:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionReader.cs(135,0): at System.Runtime.Serialization.Reflectio nReader.ReadCollectionItems(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context, XmlDictionaryString collectionItemName, XmlDictionaryString collectionItemNamespa ce, CollectionDataContract collectionContract, Object resultCollection, Boolean isReadOnlyCollection) D:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionReader.cs(97,0): at System.Runtime.Serialization.Reflection Reader.ReflectionReadCollectionCore(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context, XmlDictionaryString collectionItemName, XmlDictionaryString collectionIte mNamespace, CollectionDataContract collectionContract) D:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionReader.cs(75,0): at System.Runtime.Serialization.Reflection Reader.ReflectionReadCollection(XmlReaderDelegator xmlReader, XmlObjectSerializerReadContext context, XmlDictionaryString collectionItemName, XmlDictionaryString collectionItemNam espace, CollectionDataContract collectionContract) ``` +16868 area-Infrastructure Convert Linux, OSX, and Windows test builds to use upload-tests.proj Additionally, added support for disabling cloud test upload-tests.proj via EnableCloudTest (for parity with previous setup). While I have tested the steps manually and used @chcosta's tool to make sure I got JSON formatting correctly, it doesn't seem possible to test this end-to-end until it's merged, or my branch is mirrored on VSO. @chcosta can you help test? @weshaggard, FYI. +16869 area-System.Data Remove Encoding.RegisterProvider from TdsParser The Encoding providers should be registered by the Application and not the library. If the library registers the providers for all the scenarios, this could lead to more data being loaded for encoding than what the application needs. Fixes : #16842 +16872 area-Infrastructure Add uap configuration for System.Net.HttpListener and System.Net.Mail Those two assemblies are part of the closure of netstandard and are not includded today in the uap layout build. We need to add configurations for them. - [x] System.Net.Mail - [x] System.Net.HttpListener +16874 area-System.Security Add example of signing and verifying XML with X509 Certificate Gets us closer to resolving https://github.com/dotnet/corefx/issues/16829 (improve code coverage) cc: @bartonjs @morganbr @tintoy @anthonylangsworth @peterwurzinger +16875 area-Serialization Fixed a bug with serializing Dictionary. For Json we need to add KeyValuePair to KnownTypes if the UnderLyingType is a Dictionary. We have code adding KeyValuePair as KnownType, but the code was excluded if #NET_Native. Fix #16864 +16877 area-System.Net Change Ssl test to determine if results vary Update this single test to determine impact; per https://github.com/dotnet/corefx/issues/16516 Will monitor for failures. The IPAddress.Any to .Loopback change is subtle, assuming the test machines only have a single network card\interface. However, I believe .Any goes through a different code path as it doesn't short-circuit like using Loopback does. The readBuffer was removed as it just throws an exception on background thread as connection is closed before it can finish. Also change to close TcpListener. cc @Priya91 @stephentoub +16878 area-System.Memory MemoryExtensions.SequenceCompare # Latest Proposal See https://github.com/dotnet/corefx/issues/16878#issuecomment-349414287 ## Problem: As of right now there is no function to efficiently compare memory. The result is that such comparisons are usually done on a byte by byte basis or even worse Enumerable.SequenceEqual, which performs really slow. ## Suggested APIs: ```c# class static SpanExtensions { static int SequenceCompareTo(this ReadOnlySpan first, ReadOnlySpan second); } ``` ## Design It would fit along nicely with other memory functions defined in Buffer such as memcpy or memmove. The arrays would have to be primitives and can be efficiently compared. ## Implementation Different implementations can be used for different lengths. Here are some examples: * Jump tables like [this](http://source.dot.net/#System.Private.CoreLib/src/System/Buffer.cs,276) for lengths <= 16 * comparisons in long*'s on x64, int*'s on x86 for shorter arrays * using SIMD-Enabled Vector Types for medium/longer arrays * CLR memcmp InternalCall for longer arrays. The individual thresholds would have to be profiled of course. # Original Proposal ```c# class static SpanExtensions { static int SequenceCompare(this ReadOnlySpan first, ReadOnlySpan second); } ``` [EDIT] Add C# syntax highlight for code by @karelz +16879 area-System.Security "Provide a way for sysadmins to manage the .Net Core ""My"" certificate store on non-Windows platforms" Title was: X509Store on Unix scans only for PFX files Currently, the only extension supported by the code is PFX. As far as I understand, this extension is commonly used for certificates that will contain a private key on Windows. On Unix I would expect certificate extensions such as .der or .pem, similar to the ones in OpenSSL's store. This is only an inconvenience as I've found that a .cer (base64 encoded) can be simply renamed to .pfx and placed in `~/.dotnet/corefx/cryptography/x509store/root` to simulate the My\Root store. https://github.com/dotnet/corefx/blob/2e8bfa2a38cb0909225202d2542bbe213696dfa0/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/DirectoryBasedStoreProvider.cs#L98 +16880 area-System.Threading Add back System.Threading types for uapaot build. +16881 area-System.Threading Enable CdsSyncEtwBCLProvider for uapaot build of System.Threading This requires adding EventSource to System.Private.CoreLib. +16883 area-System.Xml Remove System.Xml.Xsl.XsltOld.Keywords Removes the unused class (https://github.com/dotnet/corefx/issues/16825) cc: @danmosemsft +16884 area-System.Data Add DataTable support to SqlBulkCopy. CC @saurabh500 @geleems +16885 area-System.Xml Fix XPathEvaluate bug on XNode Fixes https://github.com/dotnet/corefx/issues/16749 XPathEvaluate extension method for XNode returned incorrect results for XPath query of text nodes. The bug was introduced in .Net Core. The behavior difference is due to new code `foreach on t.parent.Nodes()` not being equivalent to the Desktop version. In the .NET Core version, `t.GetParent().Nodes()` returns all the nodes in `t`'s parent, including `t` itself which was previously returned in the method, causing this value to be returned twice. cc: @danmosemsft @krwq +16886 area-System.Collections Would it be possible to get rid of collection _syncRoot fields with ConditionalWeakTable? More of a question really because I'm not very familiar with `ConditionalWeakTable`, but from what I understand it can store key/value entries in such a way that the entries don't have to be kept alive. It also says [on MSDN](https://msdn.microsoft.com/en-us/library/dd287757(v=vs.110).aspx#Anchor_7) that the type is thread-safe. Given that `SyncRoot` is a rarely-used property (if I remember correctly @mikedn told me it was baggage from .NET Framework 1.0), maybe it would be beneficial to store it in a static `ConditionalWeakTable` separate from the object? e.g. ```cs class List { object ICollection.SyncRoot => SyncRootTable.GetSyncRoot(this); } static class SyncRootTable { static readonly ConditionalWeakTable s_table = new ConditionalWeakTable(); static object GetSyncRoot(object key) => s_table.GetValue(key, _ => new object()); } ``` +16887 area-Infrastructure Updating the Windows build instructions to clarify the requirements for VS2017. Resolves https://github.com/dotnet/corefx/issues/16860 +16888 area-System.Memory Span Copy method that copies as much as possible From https://github.com/dotnet/corefx/issues/16840#issuecomment-285225905 Whenever use CopyTo on Span, I wish the method Always succeeded, copied as much as it can, and returned an int indicating how much was copied. e.g. ``` int copied = 0; while(copied < source.Length) { copied += source.Slice(copied).CopyTo(destination); destination = GetMoreSpace(); } ``` ... and many similar scenarios. Without such CopyTo there is lots of ceremony around making sure the source is not larger than the destination. @davidfowl, @terrajobst, @jkotas, any thoughts? +16890 area-System.IO SerialPort: Port cant access when raised InvalidOperationException. (The Port is closed) I'm trying to send AT Commands using `SerialPort` class. I'm using `SerialPort.GetPortNames()` to get all available ports. I'm trying to open a serial port for modem and getting its BaudRate through `SafeFileHandle` and `kernel32.dll` with `CreateFile` and `GetCommProperties` method. It was good until I encountered `InvalidOperationException`. It was raised when I'm trying to read from `Read` or `ReadExistingByte` method then accidentally the port was removed. I call `Close` and `Dispose` method. Then I plugged again the modem. But when I try to get BaudRate again to connect to modem for the same port(without exiting execution), now it says that the `SafeFileHandle` is invalid. The weird thing is when I call `SerialPort.GetPortNames()` (after removing port), it returns the comport that I removed. I think there is still some code in `SerialPort` that holds the port. Any ideas? **NOTE** Im able to access the port when I try to close current debugging session the start again. Thanks. +16892 area-System.Data Slow Open Connection every 4 mintutes or so In this [SO post](http://stackoverflow.com/questions/42433948/azure-web-api-waiting-sql-connection-every-4-minutes-and-30-minutes), I described an anlysis where I observe that opening a connection is blocked on waiting for a long time every 4 minutes or so. However, I couldn't find out why and never got any answers either. +16895 area-System.Net [Port to 1.1] Ensure CURLOPT_TCP_NODELAY is set by CurlHandler Port https://github.com/dotnet/corefx/pull/15354 to the release/1.1.0 branch. cc: @geoffkizer, @mikeharder, @gkhanna79 +16896 area-System.Runtime Proposal: Add static ExceptionDispatchInfo.Throw(Exception) If you have an exception object and you want to throw it without overwriting its existing call stack and bucket information, you do: ```C# ExceptionDispatchInfo.Capture(exception).Throw(); ``` This is unnecessary ceremony and also incurs some additional unnecessary cost (though we're on an exceptional path so the cost doesn't matter as much). It'd be nicer if we could simply write: ```C# ExceptionDispatchInfo.Throw(exception); ``` I propose we add the following method: ```C# public sealed class ExceptionDispatchInfo { public static void Throw(Exception source); ... } ``` Its visible behavior would be identical to using Capture/Throw, so a valid implementation would be: ```C# public static void Throw(Exception source) => Capture(source).Throw(); ``` but a more efficient implementation could be provided that didn't need to allocate an EDI, copy all of the Exception's state into it, and then copy all of the state back. +16897 area-System.Net unmanaged resource leak when HttpClient is not disposed "```c# [Test] public void Test() { TestInternal().Wait(); GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); dotMemory.Check(m => { Console.WriteLine(m.GetObjects(a => a.Type.Like(""System.Net.Http.HttpClient"")).ObjectsCount); //always 0 Console.WriteLine(m.GetObjects(a => a.Type.Like(""System.Net.Connection"")).ObjectsCount); //0 on Dispose(), 2 on Dispose(false) or without Dispose }); } private static async Task TestInternal() { var client = new HttpClient(); var s = await client.GetStringAsync(""http://msdn.com""); //client.Dispose(); /*client.GetType() .GetMethod(""Dispose"", BindingFlags.NonPublic | BindingFlags.Instance) .Invoke(client, new object[] {false});*/ } ``` ![a001a-clip-78kb](https://cloud.githubusercontent.com/assets/991922/23751339/e9da0ecc-04e1-11e7-9a34-99aed0636545.png) ![003ed-clip-185kb](https://cloud.githubusercontent.com/assets/991922/23751446/74d90988-04e2-11e7-9323-a00ea38e6813.png) HttpClient missing finalizer and Dispose(false) called from finalizer will do nothing" +16898 area-System.Net Audit System.Net throws losing stack traces There are a bunch of places throughout the System.Net libraries where exceptions are captured and later thrown, using `throw e;`. This overwrites their stack trace and bucket information, making it harder to diagnose problems when they occur. Over time we've chipped away at these, so there are many fewer now than there used to be, but some still remain. I've audited all of the System.Net libs, and fixed all the locations I found where this pattern was being employed, replacing them with usage of ExceptionDispatchInfo to avoid losing the call stack data. There are still some `throw e`s I left, but those were typically of a form where it was obvious no data would be lost, e.g. the exception was just instantiated a few lines earlier. There are likely also a few straggling cases, e.g. where `throw SomeFunction()` is used and `SomeFunction()` returns a cached exception instance, but we can address those on a case-by-case basis as we find them. Fixes https://github.com/dotnet/corefx/issues/5606 cc: @geoffkizer, @cipop, @davidsh, @Priya91 +16900 area-Infrastructure When call build.cmd -skiptests, build stops with error PE file is already strong-name signed Today I pull coreclr and corefx, build them on my Win10 with VS2015u3, The build of coreclr finished without error, But the build of corefx failed with the following strong-name sign error like following: > Running: U:\OpenSrcResearch\MicrosoftOnGithub\corefx\Tools\msbuild.cmd /nologo /verbosity:minimal /clp:Summary /maxcpucount /nodeReuse:false /l:BinClashLogger,Tools\net45\Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log /p:SkipTests=true /p:OSGroup=Windows_NT /p:TargetOS=Windows_NT /p:ConfigurationGroup=Debug /flp:v=normal /flp2:warningsonly;logfile=msbuild.wrn /flp3:errorsonly;logfile=msbuild.err > [21:50:05.58] Verifying all auto-upgradeable dependencies... > [21:50:18.36] Verifying all auto-upgradeable dependencies... Done. > [21:50:18.36] Restoring all packages... > [21:50:32.95] Restoring all packages...Done. > U:\OpenSrcResearch\MicrosoftOnGithub\corefx\Tools\sign.targets(70,5): error : U:\OpenSrcResearch\MicrosoftOnGithub\corefx\bin/obj/ref/Microsoft.CSharp/4.0.0.0/Microsoft.CSharp.dll: PE file is already strong-name signed. [U:\OpenSrcResearch\MicrosoftOnGithub\corefx\src\Microsoft.CSharp\ref\Microsoft.CSharp.csproj] > Microsoft.VisualBasic -> U:\OpenSrcResearch\MicrosoftOnGithub\corefx\bin\ref\Microsoft.VisualBasic\10.0.0.0\Microsoft.VisualBasic.dll > U:\OpenSrcResearch\MicrosoftOnGithub\corefx\Tools\sign.targets(70,5): error : U:\OpenSrcResearch\MicrosoftOnGithub\corefx\bin/obj/AnyOS.AnyCPU.Debug/Microsoft.VisualBasic/Microsoft.VisualBasic.dll: PE file is already strong-name signed. [U:\OpenSrcResearch\MicrosoftOnGithub\corefx\src\Microsoft.VisualBasic\src\Microsoft.VisualBasic.vbproj] +16908 area-System.Diagnostics Fix for issue 16856 (Test fails because duration is 0) The problem seems to be that time granularity rounds down to zero. However we really do want 0 durations to mean 'EndTime was not set, so when we set the end time we want to insure it is postitive under all contidions. +16909 area-Meta Fix #3862 Replace double-check lock with lazy initialization. Final installment of changes to replace double-check lock usage with lazy initialization. Fixes #3862 @stephentoub @karelz Please review. +16910 area-System.Linq Interpreting build of S.Linq.Expressions (for UAP) is broken "`` should be set in the csproj for uap/uapaot but the build is broken. The correct fix is not obvious without some investigation so for now I'm leaving it as ``` true false ```" +16911 area-System.Net Implement ReceiveMessageFromAsync with buffer list on Unix Fixes #16727 cc: @geoffkizer, @Priya91 +16912 area-Infrastructure Inspect the files in .NET Core App and remove any unnecessary ones We are getting close to a preview release so we should inspect all the files in the shared framework (in particular the private netcoreapp package from corefx) and make sure there isn't anything that shouldn't be there. Some potential candidates for removal are: System.Security.Permissions System.Text.Encoding.CodePages. cc @ericstj @Petermarcu +16913 area-System.IO dotnet core 1.1.0 and net461 now gets System.IO.FileSystem System.TypeLoadException "@jeremyBass commented on [Thu Mar 09 2017](https://github.com/dotnet/coreclr/issues/10062) I hope this is the right place for this issue. I have been betting my head on the wall on this. I will say that I have this on [stackoverflow](http://stackoverflow.com/q/42693085/746758) as well, but believe it may be helpful to have it logged here. I realize there are a few other issues that seem related, but they are not 100% the same and I got no traction on a fix/workaround. I keep getting this error on the server [![enter image description here][1]][1] > Unhandled Exception: System.TypeLoadException: Could not load type 'System.IO.Di rectory' from assembly 'System.IO.FileSystem, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. at fais.printing_services.Program.Main(String[] args) I have done ever trick I can think of, followed all the newest issues to resolve with no luck. Here is my project file: { ""userSecretsId"": ""aspnet-fais.printing_services-6f6dbf21-da98-45d2-a187-08ae49d09d62"", ""dependencies"": { ""DataTables.AspNet.AspNetCore"": ""2.0.2"", ""Microsoft.ApplicationInsights.AspNetCore"": ""2.0.0"", ""Microsoft.AspNetCore.Authentication.Cookies"": ""1.1.0"", ""Microsoft.AspNetCore.Diagnostics"": ""1.1.0"", ""Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore"": ""1.1.0"", ""Microsoft.AspNetCore.Identity.EntityFrameworkCore"": ""1.1.0"", ""Microsoft.AspNetCore.Mvc"": ""1.1.1"", ""Microsoft.AspNetCore.Routing"": ""1.1.0"", ""Microsoft.AspNet.Session"": ""1.0.0-*"", ""Microsoft.AspNetCore.Server.IISIntegration"": ""1.1.0"", ""Microsoft.AspNetCore.Server.Kestrel"": ""1.1.0"", ""Microsoft.AspNetCore.StaticFiles"": ""1.1.0"", ""Microsoft.EntityFrameworkCore"": ""1.1.0"", ""Microsoft.EntityFrameworkCore.Design"": ""1.1.0"", ""Microsoft.EntityFrameworkCore.Relational.Design"": ""1.1.0"", ""Microsoft.EntityFrameworkCore.SqlServer"": ""1.1.0"", ""Microsoft.EntityFrameworkCore.SqlServer.Design"": ""1.1.0"", ""Microsoft.EntityFrameworkCore.Tools"": { ""type"": ""build"", ""version"": ""1.1.0-preview4-final"" }, ""Microsoft.Extensions.Caching.Memory"": ""1.1.0-*"", ""Microsoft.Extensions.Configuration.EnvironmentVariables"": ""1.1.0"", ""Microsoft.Extensions.Configuration.Json"": ""1.1.0"", ""Microsoft.Extensions.Configuration.UserSecrets"": ""1.1.0"", ""Microsoft.Extensions.Logging"": ""1.1.0"", ""Microsoft.Extensions.Logging.Console"": ""1.1.0"", ""Microsoft.Extensions.Logging.Debug"": ""1.1.0"", ""Microsoft.Extensions.Options.ConfigurationExtensions"": ""1.1.0"", ""Microsoft.VisualStudio.Web.BrowserLink.Loader"": ""14.1.0"", ""Microsoft.VisualStudio.Web.CodeGeneration"": ""1.1.0-preview4-final"", ""Microsoft.VisualStudio.Web.CodeGeneration.Tools"": ""1.1.0-preview4-final"", //""Microsoft.VisualStudio.Web.CodeGeneration.Design"": ""1.1.0-msbuild3-final"", ""Microsoft.VisualStudio.Web.CodeGenerators.Mvc"": ""1.1.0-preview4-final"", ""Microsoft.AspNetCore.Session"": ""1.1.0"", ""Microsoft.NETCore"": ""5.0.1-rc2-24027"", ""Microsoft.NETCore.Portable.Compatibility"": ""1.0.1-rc2-24027"", ""BundlerMinifier.Core"": ""2.4.337"", ""Microsoft.AspNetCore.ResponseCompression"": ""1.0.1"", ""Microsoft.AspNetCore.Cors"": ""1.1.1"", ""hiqpdf"": ""10.6.0"", ""Novell.Directory.Ldap.NETStandard"": ""2.3.6"" }, ""tools"": { ""Microsoft.EntityFrameworkCore.Tools"": { ""version"": ""1.1.0-preview4-final"", ""imports"": [ ""portable-net45+win8"" ] }, ""Microsoft.EntityFrameworkCore.Tools.DotNet"": ""1.1.0.0-preview4-final"", ""Microsoft.VisualStudio.Web.CodeGeneration.Tools"": { ""version"": ""1.1.0-msbuild3-final"", ""imports"": [ ""portable-net45+win8"" ] } }, ""frameworks"": { ""net461"": { ""dependencies"": { }, ""frameworkAssemblies"": { ""System.Drawing"": ""4.0.0.0"" } }, ""netcoreapp1.0"": { ""imports"": [ ""dotnet5.6"", ""portable-net45+win8"", ""net461"" ], ""dependencies"": { ""Microsoft.NETCore.App"": ""1.1.0"", ""CoreCompat.System.Configuration"": ""4.2.3-r4"" } } }, ""buildOptions"": { ""emitEntryPoint"": true, ""preserveCompilationContext"": true }, ""runtimeOptions"": { ""configProperties"": { ""System.GC.Server"": true } }, ""publishOptions"": { ""include"": [ ""wwwroot"", ""**/*.cshtml"", ""appsettings.json"", ""web.config"" ] }, ""runtimes"": { ""win10-x64"": {} }, ""scripts"": { ""prepublish"": [ ""bower install"", ""dotnet bundle"" ], ""postpublish"": [ ""dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"" ] } } So the reason for `.net4.6.1` is `hiqpdf`, it is the only thing that is really the reason i had to load it. My app runs on IISExpress, but as soon as i publish it to the IIS box it gets as `HTTP Error 502.5 - Process Failure`. I run the exe in the command prompt as Microsoft asks as got what i put up here. I keep thinking i just have to move the right item in place and it will work on the server. What is the difference? Why does it would great locally but falls on it's face on the server? Can i include System.IO.FileSystem at a version that will fix this? (which i have tried and failed to). I know the project.json file needs some clean up again, but it is working in one spot so i figured I would keep it here. **Server Details:** [![enter image description here][2]][2] [![enter image description here][3]][3] [![enter image description here][4]][4] [1]: https://i.stack.imgur.com/gcg9a.png [2]: https://i.stack.imgur.com/dWgMs.png [3]: https://i.stack.imgur.com/HKSpG.png [4]: https://i.stack.imgur.com/c8NZj.png **Other information** I figured it would be worth noting thing i have done that wouldn't be known from this: - cleared out the nuget cache from the user path - cleared the bin - down graded what i thought i could - tried to include the `System.IO.File` directly at v. `4.3.0` but it downgrades to `4.0.0.1` I believe. " +16914 area-Serialization To Remove System.Xml.XmlSerializer.Tests.settings.targets We'd like to remove System.Xml.XmlSerializer.Tests.settings.targets so that the XmlSerializer test projects would have the same structure as others. As part of the issue, we would need to add ProjectReferences in System.Xml.XmlSerializer.Tests.csproj. /cc: @zhenlan +16916 area-System.Linq [NetFX compat]: EnumerableQuery((IEnumerable)null).GetEnumerator() difference in behavior The following code has a different behavior in NetFX: ```cs IQueryable query = new EnumerableQuery((IEnumerable)null); var enumerator = query.GetEnumerator(); ``` If we call `GetEnumerator` on an `IQueryable` instance that has a null `IEnumerable` in CoreFX we would throw an `InvalidOperationException`, but in NetFX as stated in the MSDN Documentation it will not throw: > Returns an enumerator that can iterate through the associated `IEnumerable` collection, or, if it is null, through the collection that results from rewriting the associated expression tree as a query on an `IEnumerable` data source and executing it. I've tried to execute the sample code I included before in a .NET 4.6.2 Console Application and it will cause an `StackOverflowException`. Also this is causing in one of our `System.Linq.Queryable` tests will cause it to hang forever. [Test source code](https://github.com/dotnet/corefx/blob/master/src/System.Linq.Queryable/tests/EnumerableQueryTests.cs#L23-L29) cc: @tarekgh @danmosemsft +16917 area-System.Security Add HashAlgorithmName overloads for Rfc2898DeriveBytes ctor This adds support for using (HMAC) SHA256, SHA384, SHA512 in PBKDF2. (HMAC)MD5 isn't being enabled at this time. We can re-evaluate that later, but since this API change is about letting newer algorithms in it doesn't seem like letting the older ones in is high-value. This is staying as a managed implementation in this change, switching to using native implementations can easily be done as a followup given the new tests. Fixes #9438. +16918 area-System.Data SNI identity package not being built The SNI identity package at https://github.com/dotnet/corefx/blob/master/src/Native/pkg/runtime.native.System.Data.SqlClient.sni/runtime.native.System.Data.SqlClient.sni.pkgproj was last built on 1/13/2017 and has a version 4.4.0-beta-24913-02 This identity package doesn't reference the latest SNI runtime assemblies which are being uploaded to myget from an internal build system. As a result, the sni identity package still points to version 4.3.0-xxxx of sni.dll. The current version is `4.4.0-beta-25007-02` from dependencies.props cc @gkhanna79 @weshaggard @corivera @ericstj @dagood +16919 area-System.Security CommonSecurityDescriptor BinaryForm returning invalid output Several of the CommonSecurityDescriptor tests are failing by hitting a Debug statement [in the GetsddlForm code](https://github.com/dotnet/corefx/blob/master/src/System.Security.AccessControl/src/System/Security/AccessControl/SecurityDescriptor.cs#L244) that throws when the Win32 `ConvertSdToSddl` call returns an error. These same tests pass when run against Desktop, so this is both a regression and an unintended failure/debug failure leak. +16920 area-System.Diagnostics Comply with changes in Id structure and length This change makes Activity.Id generation in compliance with [Hierarchical RequestId](https://github.com/lmolkova/correlation/blob/master/hierarchical_request_id.md) - root delimiter was changed to `|` to avoid collisions with base64 chars set (`/` is one of the base64) - new delimiter for external parentId was added: `_` - delimiter is now set AFTER suffix, to improve log query experience. E.g. If there was a trace with Id 123.4.5 and other with Id 123.4.56, it was not possible to get traces that belong to 123.4.5 only - Request-Id max length is now 1024 It also solves some issues mentioned in #16500: 1. initial s_currentRootId value is randomized on different process instances. 2. s_currentRootId changed from int to long . It was possible that on a heavily loaded process, running for months, Ids could repeat because of int overflow. @vancem please have a look +16921 area-System.Security Re-enable AccessControl tests These tests were ignored for a while then disabled because they were causing a bunch of failures. I'm re-enabling the ones that don't fail and ActiveIssuing the ones that do fail so we at least have some coverage here. The tests that are failing are doing so because of https://github.com/dotnet/corefx/issues/16919 which is a source bug. resolves https://github.com/dotnet/corefx/issues/15041 cc: @danmosemsft @joperezr @dennisdietrich +16922 area-System.Security Fix marshaling/pinning in GetSignerInPKCS7Store to avoid corrupted data CryptMsgGetParam stores its output data at the provided address, and this data includes pointers into regions of the data written. Since the array we've provided isn't pinned, it can be moved after the call, effectively invalidating the pointers in the byte[] into which the data was stored before then effectively pass those (now invalid) pointers back to the OS for it to get data from. Fixes https://github.com/dotnet/corefx/issues/2667 cc: @bartonjs, @steveharter +16923 area-System.Diagnostics System.Diagnostics.DiagnosticSource causes a cycle This package recently started depending on NETStandard.Library rather than individual packages, but it can’t, because it’s referenced by NETStandard.Library itself. We need to figure out a solution here. +16924 area-System.Linq Expression.Lambda throws NRE if TDelegate is private "See the following F# code: ```f# open System.Linq.Expressions open Microsoft.FSharp.Linq.RuntimeHelpers [] module private MyDelegates = type SimpleDelegate = delegate of unit -> bool let body = LeafExpressionConverter.QuotationToExpression <@ true @> let private lambda = Expression.Lambda(body, Seq.empty) printfn ""%A"" lambda ``` The exception: ``` System.NullReferenceException: Object reference not set to an instance of an object. at System.Dynamic.Utils.CacheDict`2.TryGetValue(TKey key, TValue& value) at System.Dynamic.Utils.TypeExtensions.GetParametersCached(MethodBase method) at System.Linq.Expressions.Expression.ValidateLambdaArgs(Type delegateType, Expression& body, ReadOnlyCollection`1 parameters) at System.Linq.Expressions.Expression.Lambda[TDelegate](Expression body, String name, Boolean tailCall, IEnumerable`1 parameters) at .$FSI_0001.main@() in c:\code\scratch\lambda.fsx:line 11 ``` If the `MyDelegates` module is made public, the exception does not occur. The exception occurs because of [src/System/Linq/Expressions/LambdaExpression.cs#L879](https://github.com/dotnet/corefx/blob/720474a2b49f065c63697194ec098d4e6154404c/src/System.Linq.Expressions/src/System/Linq/Expressions/LambdaExpression.cs#L879). `GetMethod(""Invoke"")` returns null as the Invoke method is not accessible. I believe a null check needs to be added - if the result is null, then throw an exception that the type is not accessible. Better yet, would it be possible to pass in BindingFlags.NonPublic to get the Invoke method?" +16925 area-System.Security Rfc2898DeriveBytes should reuse arrays during chained HMAC invocations. Rfc2898DeriveBytes provides an implementation for the PBKDF2 algorithm. This algorithm does quite a lot of HMAC.ComputeHash calls, each of which marshals back and forth to native code and creates a byte\[\] to emit the answer into. * Windows: [BCryptDeriveKeyPBKDF2](https://msdn.microsoft.com/en-us/library/windows/desktop/dd433795(v=vs.85).aspx) * macOS: [CCKeyDerivationPBKDF](http://stackoverflow.com/documentation/swift/7053/pbkfd2-key-derivation) * Other-\*nix (OpenSSL): [PKCS5_PBKDF2_HMAC](https://www.openssl.org/docs/man1.1.0/crypto/PKCS5_PBKDF2_HMAC.html) (present in 1.0.1) +16926 area-Meta Try running tests that use pinning under GCStress As suggested in https://github.com/dotnet/corefx/pull/16922#issuecomment-285491684 There have been several bugs found through missing pinning in Crypto or Networking. We should try running at least those tests under `set COMPLUS_GCStress=3` It may be it's too slow -- but we could just let it run if it's merely slow. +16928 area-System.Net [NetFX compat]: HttpWebRequest.GetRequestStreamAsync() hangs in desktop "When creating multiple `HttpWebRequest` instances and calling `GetRequestStreamAsync()` it hangs in desktop. There is a test class that does this and when running it in desktop it just hangs forever because all the tests create an `HttpWebRequest` instance and call `GetRequestStreamAsync().GetAwaiter().GetResult()` -- [source code](https://github.com/dotnet/corefx/blob/master/src/System.Net.Requests/tests/RequestStreamTest.cs#L107-L112) the project test is `System.Net.Requests.Tests` I did this on a simple Console App targeting desktop: ```cs static void Main(string[] args) { for(int i = 0; i < 100; i++) { var request = GetRequest(); var stream = request.GetRequestStreamAsync().GetAwaiter().GetResult(); Console.WriteLine(stream.CanWrite); stream.Dispose(); //request.Abort() } } public static HttpWebRequest GetRequest() { HttpWebRequest request = HttpWebRequest.CreateHttp(new Uri("""")); request.Method = ""POST""; return request; } ``` And it will also hang. If I just enable `request.Abort()` when I'm done using the request it will stop hanging. I don't know if that is a good practice, but could be a workaround in the tests for desktop. If we change the `ServicePointManager.DefaultConnectionLimit` to be a 100 it would also fix it but I don't think that would be a good solution. After talking with @stephentoub he explained there was a difference in behavior in Core: > My guess here is that disposing of the request stream doesn't release the underlying connection that HttpWebREquest opens to the server, and that the only way to do that would be to then get the response and dispose of that. That's why changing the connection limit allowed you to get further, because the system wasn't throttling you to the two connections you already opened. On core, HttpWebRequest is built on top of HttpClient, and it's not going to actually open the connection until you've written all your data. That is why the test don't hang in Core. There is a related issue to this https://github.com/dotnet/corefx/issues/11873 cc: @davidfowl @CIPop @tarekgh " +16929 area-System.Net Add better error message for failing ping test I'm adding some better logging to the failure in this test since we don't really know why it failed. It looks race-conditiony but I'd rather be sure about it before modifying the test. Related to https://github.com/dotnet/corefx/issues/16401. @steveharter @Priya91 +16930 area-System.Console Fix Console WindowWidth/Height paramName "Looks like we messed up the paramname when we did the switch to nameof in netcore. It used to be ""width""/""height"" in full framework but we set it to ""value"" which is both less helpful and the cause of a desktop test failure/discrepancy. resolves https://github.com/dotnet/corefx/issues/15114 cc: @tarekgh @stephentoub " +16932 area-System.Net Disable another Net.Security test with known issue. https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/4435/testReport/junit/System.Net.Security.Tests/SchSendAuxRecordTest/SslStream_ClientAndServerUsesAuxRecord_Ok/ failed from known issue: https://github.com/dotnet/corefx/issues/16516 +16933 area-System.Security X509Certificate2.PrivateKey should not return ECDSA Make the PrivateKey property match netfx in not returning ECDSA, fix that it should return null (regardless of algorithm) when HasPrivateKey is false, and move redundant code in the PAL into the PAL-calling layer. Fixes #14283. +16934 area-System.IO [NetFX compat]: Desktop doesn't have cancellation support. There is two tests in `System.IO.Pipes` that hang forever when running in desktop. Desktop doesn't have cancellation support and this tests are trying to cancel a Task through a `CancellationToken`. * [Test 1](https://github.com/dotnet/corefx/blob/master/src/System.IO.Pipes/tests/NamedPipeTests/NamedPipeTest.Simple.cs#L526-L561) * [Test 2](https://github.com/dotnet/corefx/blob/master/src/System.IO.Pipes/tests/NamedPipeTests/NamedPipeTest.Simple.cs#L624-L657) We could consider adding this support on Desktop. cc: @stephentoub @tarekgh +16936 area-System.Data Make Managed SNI the default network impl in SqlClient The change changes the default implementation of SNI on Windows to Managed SNI. The behavior can be changed back to Native SNI by toggling the AppContext Switch `System.Data.SqlClient.UseLegacyNetworkingOnWindows` Fixes https://github.com/dotnet/corefx/issues/16129 cc @corivera +16937 area-System.Data Fix parsing failures with Named Pipe paths in SqlClient.SNIProxy Explanation of changes inline. +16938 area-System.Net Adding System.Net.Mail to the uap and uapaot closures cc: @danmosemsft related issue: #16872 This solves just part of the issue since we still need to fix System.Net.HttpListener, but I'll do that in a separate PR. +16939 area-Infrastructure Add separate symbol index/archive build leg Uses BuildTools functionality to publish Windows platform symbols from the build's symbol packages to the Microsoft official symbol server. Unlike https://github.com/dotnet/corefx/pull/16388 (which I reverted), this adds it in a new build leg. It still takes ~30 minutes to complete, but now it runs in parallel to package publishing and dotnet/versions updating. Letting dotnet/versions publish succeed even if this indexing leg fails is fine for `master` builds, but it could be a problem if it happened to a release/servicing build (and if we don't require all of a build's legs to be green to consider it release-worthy). In this worst case scenario, it's still possible to re-run this build leg or even index/archive the symbols manually, so I'm not concerned about it. I left the symbol publishing in the Windows leg active for now so we can compare what's indexed by both approaches and see what the gap is. +16940 area-System.Data SqlClient manual test run in the CI All the SqlClient tests in Manual Tests, which can be run in the CI, should be made to do so. More details about the tests to follow in this issue. +16941 area-Infrastructure Change pool to official OSX build pool Change over to the new pool /cc @bartonjs +16943 area-System.Security Add more tests to the PublicKey class for ECDSA certs. Also adds a couple `using` statements that were missing. +16944 area-Infrastructure Consider adding PInvoke check against UWP list for tests built for UWP We do not run the PInvoke checker using the UWP list against tests as they do not need to go through store validation. However they do need to run in appcontainer and it's possible that they might end up using calls that do not work correctly there. It may be worth enabling the checker and baselining existing PInvokes so we think before we add any more. Enabling this is just flipping a property in codeanalysis.targets. @jkotas worth it? https://github.com/dotnet/corefx/pull/16704 +16945 area-System.Net Test: System.Net.Sockets.Tests.SendReceiveEap.SendToRecvFrom_Datagram_UDP(loopbackAddress: ::1) failed in CI Failed test: System.Net.Sockets.Tests.SendReceiveEap.SendToRecvFrom_Datagram_UDP(loopbackAddress: ::1) Configuration: OuterLoop_CentOS7.1_debug ([build#123](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_centos7.1_debug/123/testReport/)) Message: ~~~ System.Net.Sockets.Tests.SendReceiveEap.SendToRecvFrom_Datagram_UDP(loopbackAddress: ::1) [FAIL] Assert.True() Failure Expected: True Actual: False ~~~ Stack Trace: ~~~ /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_centos7.1_debug/src/System.Net.Sockets/tests/FunctionalTests/SendReceive.cs(148,0): at System.Net.Sockets.Tests.SendReceive.d__17.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_centos7.1_debug/123/consoleText +16946 area-System.Security DSA cert.PublicKey.Key throws NotSupportedException on non-Windows systems. There was already a test, but it was marked as PlatformSpecific to Windows. Seeing no other issue tracking this, here's a new one. +16947 area-System.Net In Web Request there is no way to set the Content-Type header without Content "## Scenario I want to do an equivalent of ``` curl -X POST https://api.dropboxapi.com/2/team/get_info --header ""Authorization: Bearer $AUTH_TOKEN"" ``` Source: https://www.dropbox.com/developers/documentation/http/teams#team-get_info ## Problem Currently there is no way to do it. ## Details I need to set Content-Type header on a request without setting Content. Currently there is no way to do it, because to setup the Content-Type, I should call `request.Content.Headers['Content-Type']`. But if `Content` is not null, the body would not be null. If I do set this up and send empty body, I will get an error: ``` Error in call to API function ""team/get_info"": request body: could not decode input as JSON ``` If I don't set it up and send request with no Content, I'm getting this error: ``` Error in call to API function ""team/get_info"": Bad HTTP ""Content-Type"" header: ""application/x-www-form-urlencoded"". Expecting one of ""application/json"", ""application/json; charset=utf-8"", ""text/plain; charset=dropbox-cors-hack"". ``` Originally reported at https://github.com/PowerShell/PowerShell/issues/3131 this appeared to be a corefx problem." +16948 area-System.Collections ImmutableHashSet inconsistently accepts and rejects null values It is possible to create an `ImmutableHashSet` containing a null value using `ImmutableHashSet.CreateRange` and `Union`. However, other methods of doing so (`Add`, `Create(T)`) result in `ArgumentNullException`: ``` var set = ImmutableHashSet.Empty; set = set.Add(null); // throws set = set.Union(ImmutableHashSet.CreateRange(new string[] { null })); // adds null ``` Similarly, trying to remove a null with `Remove` throws but the null can be removed using `Except`. This seems like a bug. I think these sets should allow null as an element since this can be useful functionality (note that `HashSet` allows null elements). +16949 area-Meta S.Linq.Expressions and S.Xml.XmlSerializer need uapaot configuration adding "These two projects clearly are missing a uapaot configuration (on top of their uap configuration). I noticed S.Linq.Expressions.csproj ```xml $(DefineConstants);FEATURE_DYNAMIC_DELEGATE ``` Same in S.Xml.XmlSerializer.csproj ```xml ```" +16950 area-Infrastructure TESTING - DO NOT MERGE TESTING - DO NOT MERGE +16951 area-System.Diagnostics DiagnosticSourceStartStop #16856 Fix comparison with DateTime.UtcNow +16953 area-System.Net Unhandled exception from IPEndPointExtensions.Create in Socket tests ``` Unhandled Exception: System.ArgumentException: The AddressFamily Unspecified is not valid for the System.Net.IPEndPoint end point, use InterNetwork instead. Parameter name: socketAddress at System.Net.Sockets.IPEndPointExtensions.Create(EndPoint thisObj, SocketAddress socketAddress) in C:\users\stoub\Source\repos\corefx\src\Common\src\System\Net\Internals\IPEndPointExtensions.cs:line 33 at System.Net.Sockets.AcceptOverlappedAsyncResult.PostCompletion(Int32 numBytes) in C:\users\stoub\Source\repos\corefx\src\System.Net.Sockets\src\System\Net\Sockets\AcceptOverlappedAsyncResult.Windows.cs:line 79 at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionCallback(Int32 numBytes, SocketError socketError) in C:\users\stoub\Source\repos\corefx\src\System.Net.Sockets\src\System\Net\Sockets\BaseOverlappedAsyncResult.Windows.cs:line 139 at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) in C:\users\stoub\Source\repos\corefx\src\System.Net.Sockets\src\System\Net\Sockets\BaseOverlappedAsyncResult.Windows.cs:line 127 at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) ``` +16954 area-System.Net Fix pinning in BaseOverlappedAsyncResult.CompletionCallback Some overloads of PostCompletion rely on the pinning configured by SetUnmanagedStructures, which means the call to it needs to come before the call to ReleaseUmanagedStructures, or else it could end up relying on the addresses of unpinned objects. Fixes https://github.com/dotnet/corefx/issues/16953 cc: @geoffkizer, @cipop, @Priya91 +16956 area-Infrastructure Dumpling downloaded over and over? "https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/4347/consoleFull#-6109453532d31e50d-1517-49fc-92b3-2ca637122019 All the way through the log I see this (only one test actually failed) ``` 19:13:56 CollectDumps 0 System.Threading.Timer.Tests 19:13:56 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/bin/AnyOS.AnyCPU.Debug/System.Threading.Timer.Tests/netstandard /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Threading.Timer/tests 19:13:56 Dumpling not found, installing... 19:13:56 --2017-03-09 19:13:56-- https://dumpling.azurewebsites.net/api/client/dumpling.py 19:13:56 Resolving dumpling.azurewebsites.net... 104.40.84.133 19:13:56 Connecting to dumpling.azurewebsites.net|104.40.84.133|:443... connected. 19:13:56 HTTP request sent, awaiting response... 200 OK 19:13:56 Length: 46584 (45K) [application/octet-stream] 19:13:56 Saving to: 'dumpling.py' 19:13:56 19:13:56 0K .......... .......... .......... .......... ..... 100% 1.12M=0.04s 19:13:56 19:13:56 2017-03-09 19:13:56 (1.12 MB/s) - 'dumpling.py' saved [46584/46584] 19:13:56 19:13:56 Traceback (most recent call last): 19:13:56 File ""dumpling.py"", line 18, in 19:13:56 import requests 19:13:56 ImportError: No module named requests 19:13:56 python: can't open file '/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/tempHome/.dumpling/dumpling.py': [Errno 2] No such file or directory 19:13:56 executing ulimit -c unlimited 19:13:56 Dumpling.sh: line 24: /proc/self/coredump_filter: No such file or directory ``` @mellinoe " +16958 area-System.Diagnostics Failure in System.Diagnostics.Tests.ProcessTests.TestRootGetProcessById in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/4347/consoleFull#-6109453532d31e50d-1517-49fc-92b3-2ca637122019 . ``` System.Diagnostics.Tests.ProcessTests.TestRootGetProcessById [FAIL] 19:19:29 Assert.True() Failure 19:19:29 Expected: True 19:19:29 Actual: False 19:19:29 Stack Trace: 19:19:29 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Diagnostics.Process/tests/ProcessTestBase.cs(33,0): at System.Diagnostics.Tests.ProcessTestBase.Dispose(Boolean disposing) 19:19:29 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/Common/tests/System/IO/FileCleanupTestBase.cs(41,0): at System.IO.FileCleanupTestBase.Dispose() 19:19:29 at ReflectionAbstractionExtensions.DisposeTestClass(ITest test, Object testClass, IMessageBus messageBus, ExecutionTimer timer, CancellationTokenSource cancellationTokenSource) 19:19:43 Finished: System.Diagnostics.Process.Tests 19:19:43 19:19:43 === TEST EXECUTION SUMMARY === 19:19:43 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/Tools/tests.targets(247,5): warning : System.Diagnostics.Process.Tests Total: 108, Errors: 0, Failed: 1, Skipped: 0, Time: 625.446s [/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Diagnostics.Process/tests/System.Diagnostics.Process.Tests.csproj] ``` XUnit creates the test fixture (class) for each test invoked. After the test completes, it disposes the class: https://github.com/xunit/xunit/blob/master/src/xunit.execution/Sdk/Frameworks/Runners/TestInvoker.cs#L216 This test doesn't make any processes but its base class makes one that sleeps 5 minutes (for no obvious reason) https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Process/tests/ProcessTestBase.cs#L19 In dispose of the base class it kills the process if necessary then waits 5 minutes if necessary https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Process/tests/ProcessTestBase.cs#L33 This seems pretty random. Is the machine so overloaded that it takes over 5 minutes to kill the process? @Priya91 +16959 area-Meta Add uapaot configurations to two projects that require them "Fixes https://github.com/dotnet/corefx/issues/16949 Except it won't build S.L.Expressions in uapaot because it can't resolve ` ` `referencefromruntime.targets` is receiving the following `_referencePathFromRuntime` from invoking `external\runtime\runtime.depproj`. DynamicDelegate isn't on the list. I can't figure out how `runtime.depproj` is coming up with this list. @joperezr ? `C:\git\corefx\packages\Microsoft.TargetingPack.Private.NETNative\1.1.0-beta-25109-00\lib\uap10.1\ System.Private.CoreLib.dll;C:\git\corefx\packages\Microsoft.TargetingPack.Private.NETNative\1.1.0-beta-25109-00\lib\uap10.1\System.Private.Interop.dll;C:\git\core fx\packages\Microsoft.TargetingPack.Private.NETNative\1.1.0-beta-25109-00\lib\uap10.1\System.Private.Threading.dll`" +16960 area-System.Data Test failure: System.Data.SqlClient.Tests.ExceptionTest/ExceptionTests Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.ExceptionTest/ExceptionTests` has failed. Assert.Throws() Failure\r Expected: typeof(System.Data.SqlClient.SqlException)\r Actual: typeof(System.TypeInitializationException): The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception. Stack Trace: at System.Data.SqlClient.TdsParser..ctor(Boolean MARS, Boolean fAsynchronous) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at System.Data.SqlClient.Tests.ExceptionTest.GenerateConnectionException(String connectionString) at System.Data.SqlClient.Tests.ExceptionTest.<>c__DisplayClass5_0.b__0() Build : Master - 20170310.01 (Core Tests) Failing configurations: - Windows_NT - x86-Release - x86-Debug - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170310.01/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.ExceptionTest~2FExceptionTests +16961 area-System.Runtime Test failure: System.Tests.SetEnvironmentVariable/ModifyEnvironmentVariable_AndEnumerate(target: Process) Opened on behalf of @Jiayili1 The test `System.Tests.SetEnvironmentVariable/ModifyEnvironmentVariable_AndEnumerate(target: Process)` has failed. has the key we entered\r Expected: True\r Actual: False Stack Trace: at System.Tests.SetEnvironmentVariable.<>c__DisplayClass8_0.b__0() at System.Tests.SetEnvironmentVariable.ExecuteAgainstTarget(EnvironmentVariableTarget target, Action action, Action cleanUp) at System.Tests.SetEnvironmentVariable.ModifyEnvironmentVariable_AndEnumerate(EnvironmentVariableTarget target) Build : Master - 20170310.01 (Core Tests) Failing configurations: - Windows_NT - x86-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170310.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.SetEnvironmentVariable~2FModifyEnvironmentVariable_AndEnumerate(target:%20Process) +16962 area-System.Runtime Test failure: System.Tests.TimeZoneInfoTests/IsDaylightSavingTime_CatamarcaMultiYearDaylightSavings Opened on behalf of @Jiayili1 The test `System.Tests.TimeZoneInfoTests/IsDaylightSavingTime_CatamarcaMultiYearDaylightSavings` has failed. Test with the zone America/Argentina/Catamarca and date 10/1/46 4:00:00 AM failed Expected: True Actual: False Stack Trace: at System.Tests.TimeZoneInfoTests.VerifyDST(TimeZoneInfo tz, DateTime dt, Boolean expectedDST) in /root/corefx/src/System.Runtime/tests/System/TimeZoneInfoTests.cs:line 1977 at System.Tests.TimeZoneInfoTests.IsDaylightSavingTime_CatamarcaMultiYearDaylightSavings() in /root/corefx/src/System.Runtime/tests/System/TimeZoneInfoTests.cs:line 1685 Build : Master - 20170310.01 (Core Tests) Failing configurations: - Linux - x64-Debug - x64-Debug - x64-Release - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170310.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.TimeZoneInfoTests~2FIsDaylightSavingTime_CatamarcaMultiYearDaylightSavings +16963 area-Infrastructure Updating CoreClr dependencies to servicing-25110-01 +16964 area-Serialization Delete another obsolete ApiCompatBaseline +16965 area-Infrastructure Update CoreClr to servicing-25110-01 (release/1.1.0) +16967 area-System.Threading System.NotSupportedException when I want to load Assembly from Stream "Hi everyone, I would like to load a DLL file from http://localhost:8080/bin/ and instantiate classes and functions in my .Net Core application. But when I want to get the assembly I get this exception `System.NotSupportedException: Specified method is not supported.` Here the code : ```c# string url = ""http://localhost:8080/test-dll/Test.dll""; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Method = ""GET""; using (var response = (HttpWebResponse)(await Task.Factory.FromAsync(request.BeginGetResponse, request.EndGetResponse, null))) { Stream answer = response.GetResponseStream(); var myAssembly= AssemblyLoadContext.Default.LoadFromStream(answer); } ``` How am I supposed to do that ? Thanks in advance ! " +16968 area-System.Net ClientAsyncAuthenticate_MismatchProtocols_Fails test failed in CI on Windows https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/4484/consoleText ``` System.Net.Security.Tests.ClientAsyncAuthenticateTest.ClientAsyncAuthenticate_MismatchProtocols_Fails(serverProtocol: Tls12, clientProtocol: Tls11, expectedException: typeof(System.Security.Authentication.AuthenticationException)) [FAIL] Assert.Throws() Failure Expected: typeof(System.Security.Authentication.AuthenticationException) Actual: typeof(System.IO.IOException): Authentication failed because the remote party has closed the transport stream. Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs(894,0): at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs(1115,0): at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs(731,0): at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) D:\j\workspace\windows_nt_re---37265eab\src\Common\tests\System\Threading\Tasks\TaskTimeoutExtensions.cs(19,0): at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\ClientAsyncAuthenticateTest.cs(147,0): at System.Net.Security.Tests.ClientAsyncAuthenticateTest.d__14.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +16970 area-System.Reflection PEBuilder.WriteCoffHeader does not populate the IMAGE_FILE_HEADER TimeDateStamp field The [PEBuilder.WriteCoffHeader](https://github.com/dotnet/corefx/blob/master/src/System.Reflection.Metadata/src/System/Reflection/PortableExecutable/PEBuilder.cs#L197) method does not populate the TimeDateStamp field of the IMAGE_FILE_HEADER struct. Instead, it appears that random values are stored in this value every time a new file is generated. I noticed this when trying to find out software started to show random build dates when compiled for .NET Core. We use logic similar to https://blog.codinghorror.com/determining-build-date-the-hard-way/ to get the compile date of an assembly. +16972 area-Infrastructure The .editorconfig should be updated to support the code style options made available in VS2017 Currently we have a set of code style guidelines here: https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md. However, we don't have a good way to enforce this (aside from manual code reviews and occasionally running https://github.com/dotnet/codeformatter) when users have their VS options configured away from the defaults. VS2017 added support for specifying a majority of these options via the `.editorconfig` file: * https://github.com/dotnet/roslyn/pull/15020 * https://github.com/dotnet/roslyn/pull/15029 * https://github.com/dotnet/roslyn/pull/15065 We should update the repositories `.editorconfig` to have a set of style options matching those specified in our coding-style documentation. +16973 area-System.Threading ConfigureAwait does nothing? @borrrden commented on [Thu Mar 09 2017](https://github.com/dotnet/coreclr/issues/10082) I ran into this unusual problem when running a unit test with xUnit. I noticed the thread before I `await`ed an `async` call and the thread when I was done were different. Ok, I guess this makes sense after reading about `SynchronizationContext`. However, the weird part is that things are continuing on the same thread that the `async` task was running on. That thread is reserved for processing async jobs, and so any blocking after the await in the original test code will cause that processing to lock. My implementation of this is [here](https://github.com/couchbase/couchbase-lite-net/blob/feature/api-v2/src/Couchbase.Lite/Support/SerialQueue.cs#L136). Roughly, it adds some logic to a queue and sets the result of a `TaskCompletionSource` when it is done. In terms of what I am saying above, the logic gets executed in `ProcessAsync` and then the test code continues **on the same thread that ProcessAsync is running** I inspected the `SynchronizationContext` of the thread at start, and determined that it is an XUnit library provided instance of [AsyncTaskMethodContext](https://github.com/xunit/xunit/blob/master/src/xunit.execution/Sdk/AsyncTestSyncContext.cs). If I understand correctly, without `ConfigureAwait(false)` the async state machine should post back to the original context when it is finished with its logic. In that case, this instance (I inspected `innerContext` to be null) will call [XunitWorkerThread.QueueUserWorkItem](https://github.com/xunit/xunit/blob/vs2017/src/common/XunitWorkerThread.cs#L29) which just adds to a default constructure `TaskFactory` instance. That seems to me that it should run on yet another thread and not the same one as before since the one from before is still executing stuff. I thought maybe the default changed to `ConfigureAwait(false)` so I tried running `ConfigureAwait(true)` but the behavior was the same. Is this a bug or the new behavior? --- @stephentoub commented on [Fri Mar 10 2017](https://github.com/dotnet/coreclr/issues/10082#issuecomment-285661409) When you write code like: ```C# var result = await t; ``` that logically translates into something like: ```C# var $awaiter = t.GetAwaiter(); if (!$awaiter.IsCompleted) { ... // stuff to hook up a continuation return; } Label: var result = $awaiter.GetResult(); ``` so if the thing you await is already completed by the time you await it, you will continue running synchronously on the same thread. This has always been the behavior, and ConfigureAwait doesn't influence that, i.e. ConfigureAwait doesn't force the await to always complete asynchronously, but rather controls the continuation behavior if it does complete asynchronously. --- @stephentoub commented on [Fri Mar 10 2017](https://github.com/dotnet/coreclr/issues/10082#issuecomment-285662040) Separately, in your code, Task.Factory.StartNew by default targets the current TaskScheduler, and it's up to the current TaskScheduler how to interpret and handle TaskCreationOptions.LongRunning. If your intent here is to force a new thread to be created as happens for LongRunning with the default scheduler, you should explicitly pass TaskScheduler.Default as the scheduler argument to StartNew; otherwise, if the context in which you're running has a TaskScheduler set up, you may not get the behavior you want (of course, maybe that's exactly what you want, but just wanted to call it out). +16974 area-System.Runtime Also include 'Visual Basic 2017' in the System.ValueTuple Package description. "Visual Basic 2017 also got Tuple support. In the description of the NuGet Package, only C#7 is mentioned. It would be nice and helpful for the VB developers to include ""Visual Basic 2017"" in the description." +16975 area-System.Data SqlClient: Keyword not supported: 'TransparentNetworkIPResolution' _From @msmolka on March 10, 2017 12:50_ I'm sharing connection string between net462 and core application. connection string contains `TransparentNetworkIPResolution=False;' When starting ASP NET Core app I have following error: ``` Exception message: An exception occurred in the database while saving changes. Stack trace: Microsoft.EntityFrameworkCore.DbContext[1] An exception occurred in the database while saving changes. System.ArgumentException: Keyword not supported: 'transparentnetworkipresolution'. at System.Data.Common.DbConnectionOptions.ParseInternal(Dictionary`2 pa ``` I'm expecting `TransparentNetworkIPResolution` is proper keyword. ### Further technical details EF Core version: 1.1.1 Database Provider: Microsoft.EntityFrameworkCore.SqlServer Operating system: Windows Server 2012 IDE: Visual Studio 2015 _Copied from original issue: aspnet/EntityFramework#7836_ +16976 area-System.IO Change tests that use async void to async Task Async tests should always return Task instead of void; XUnit apparently has some issues with it. Changing all existing 'async void' tests to 'async Task' to mitigate any potential side affects. FYI I added this temporary test to socket test class AccessAsync: ``` [Fact] public async void DoIt() { await new Task(() => { }); } ``` and then in all socket test runs after this, the tests hung after successfully running all 4 variants (from 4 Theory inputs) of System.Net.Sockets.Tests.SendReceiveApm.SendRecv_Stream_TCP_MultipleConcurrentReceives No specific tests were running when debugger attached to hung corerun process; I didn't debug further. This is a possible XUnit issue, although other test frameworks don't even allow 'async void' because it is difficult to get the test results back. FWIW XUnit apparently creates a different SynchronizationContext specifically for async void tests. CC @ianhays @Priya91 +16979 area-System.Security Add GetDSA(Public|Private)Key methods Fixes #11802. Fixes #16946. +16981 area-System.Data NonAzureNoProtocolConnectionTestOnWindows failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug_prtest/129/consoleText ``` System.Data.SqlClient.Tests.TcpDefaultForAzureTest.NonAzureNoProtocolConnectionTestOnWindows [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: D:\j\workspace\outerloop_win---7ad0ce03\src\System.Data.SqlClient\tests\FunctionalTests\TcpDefaultForAzureTest.cs(41,0): at System.Data.SqlClient.Tests.TcpDefaultForAzureTest.NonAzureNoProtocolConnectionTestOnWindows() ``` +16983 area-System.Diagnostics Fix System.Diagnostics.TraceSource tests to stop showing debug assert windows in desktop Some of the tests where showing Assert failures windows because in desktop trace listeners `AssertUiEnabled` is set to true by default. I also fixed some tests small compat issues with desktop so that they pass. cc: @tarekgh @danmosemsft @weshaggard +16988 area-System.Security Seg fault in System.Security.Cryptography.Xml tests https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release_prtest/4475/consoleText ``` STOP_REASON: SIGSEGV FAULT_SYMBOL: libcrypto.so.1.0.0!BN_num_bits FAILURE_HASH: SIGSEGV_libcrypto.so.1.0.0!BN_num_bits FAULT_STACK: libcrypto.so.1.0.0!BN_num_bits libcrypto.so.1.0.0!BN_bn2bin System.Console.dll!DomainBoundILStubClass.IL_STUB_PInvoke(Microsoft.Win32.SafeHandles.SafeBignumHandle, Byte*) System.Security.Cryptography.Algorithms.dll!Interop+Crypto.ExtractBignum(Microsoft.Win32.SafeHandles.SafeBignumHandle, Int32) System.Security.Cryptography.Algorithms.dll!Interop+Crypto.ExtractBignum(IntPtr, Int32) System.Security.Cryptography.Algorithms.dll!Interop+Crypto.ExportRsaParameters(Microsoft.Win32.SafeHandles.SafeRsaHandle, Boolean) System.Security.Cryptography.Algorithms.dll!System.Security.Cryptography.RSAImplementation+RSAOpenSsl.ExportParameters(Boolean) System.Security.Cryptography.Xml.Tests.dll!System.Security.Cryptography.Xml.Tests.RSAKeyValueTest.LoadXml_ValidXml(System.String, Byte[], Byte[]) ``` +16990 area-System.Net Disable some more netsec failing tests. We've got some new failures in Net.Security from the same known issues. @steveharter https://github.com/dotnet/corefx/issues/16534 https://github.com/dotnet/corefx/issues/16516 +16991 area-System.Runtime Make BinaryFormatter faster "When BinaryFormatter encounters a larger object list it gets quadratic deserialization times due to the linear search in ``` > ConsoleApp2.dll!System.Runtime.Serialization.ObjectManager.FindObjectHolder(long objectID) Line 68 C# ConsoleApp2.dll!System.Runtime.Serialization.ObjectManager.FindOrCreateObjectHolder(long objectID) Line 81 C# ConsoleApp2.dll!System.Runtime.Serialization.ObjectManager.RegisterFixup(System.Runtime.Serialization.FixupHolder fixup, long objectToBeFixed, long objectRequired) Line 888 C# ConsoleApp2.dll!System.Runtime.Serialization.ObjectManager.RecordArrayElementFixup(long arrayToBeFixed, int[] indices, long objectRequired) Line 966 C# ``` Sample ```c# using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace ConsoleApp2 { [Serializable] class Book { public string Name; public string Id; } class Program { static void Main(string[] args) { var formatter = new BinaryFormatter(); List books = new List(); var mem = new MemoryStream(); for(int i=0;i<500*1000;i++) { books.Add(new Book { Id = i.ToString() }); } var sw = Stopwatch.StartNew(); formatter.Serialize(mem, books); sw.Stop(); Console.WriteLine($""Serialization time {sw.Elapsed.TotalSeconds:F2}s""); mem.Position = 0; sw = Stopwatch.StartNew(); List booksDeser = (List)formatter.Deserialize(mem); sw.Stop(); Console.WriteLine($""Deserialization {sw.Elapsed.TotalSeconds:F2}s""); } } } ``` Serialization time 2.31s Deserialization 21.16s This caused some unexpected ""slowdowns"" in production code when ""real"" big objects (e.g. 20 - 100 MB) object graphs are deserialized. Deserialization times of 10 minutes are not uncommon due to this. It would be great if this ugly thing gets cleaned up in .NET Core. " +16993 area-System.Net System.Net.Http causes error CS0433 When referencing System.Net.Http in .net standard library 1.6 app. I get following compile error ``` Severity Code Description Project File Line Suppression State Error CS0433 The type 'FormUrlEncodedContent' exists in both 'System.Net.Http, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' +16994 area-System.Data System.Data.SqlClient throws PlatformNotSupportedException on AWS Lambda "When using Sql Data Client or EF in .Net Core 1.0 on AWS Lambda the code errors out indicating that the platform is not supported. Is it true that I can get to Sql Server from node.js on Lambda but not C#? Seems a bit odd. Following is the text of the error: `{ ""errorType"": ""AggregateException"", ""errorMessage"": ""One or more errors occurred. (The type initializer for 'System.Data.SqlClient.MetaType' threw an exception.)"", ""stackTrace"": [ ""at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)"", ""at System.Threading.Tasks.Task 1.GetResultCore(Boolean waitCompletionNotification)"", ""at lambda_method(Closure , Stream , Stream , ContextInfo )"" ], ""cause"": { ""errorType"": ""TypeInitializationException"", ""errorMessage"": ""The type initializer for 'System.Data.SqlClient.MetaType' threw an exception."", ""stackTrace"": [ ""at System.Data.SqlClient.MetaType.GetMetaTypeFromSqlDbType(SqlDbType target, Boolean isMultiValued)"", ""at System.Data.SqlClient.SqlParameter.set_SqlDbType(SqlDbType value)"", ""at initRestoreDB.Function.d__6.MoveNext()"" ], ""cause"": { ""errorType"": ""TypeInitializationException"", ""errorMessage"": ""The type initializer for 'System.Data.Common.ADP' threw an exception."", ""stackTrace"": [ ""at System.Data.SqlClient.MetaType..cctor()"" ], ""cause"": { ""errorType"": ""PlatformNotSupportedException"", ""errorMessage"": ""Operation is not supported on this platform."", ""stackTrace"": [ ""at System.Runtime.InteropServices.OSPlatform.get_Windows()"", ""at System.Data.Common.ADP..cctor()"" ] } } } } ` The is repeatable for any SQL call from Lambda which runs .Net Core 1.0 on AWS Linux. " +16995 area-System.Runtime Add more testing for FormatterServices.GetUninitializedObject We should expand testing for GetUninitializedObject to include: * Running precise (non-BeforeFieldInit) constructors * Pointer types * ByRefs * Arrays +16996 area-System.Reflection Type.IsSZArray property. Closes #16566 Won't pass CI until dotnet/coreclr#10105 and corert implementation (pending) are in. +16997 area-System.Memory Should we rename Span to Memory and Memory to something else? @terrajobst @KrzysztofCwalina +17000 area-System.Net Add support for System.Net.Sockets.Socket.Disconnect on Unix This copies the way it is done in Mono (see https://github.com/mono/mono/blob/65025fe/mono/metadata/w32socket-unix.c#L928) +17001 area-System.Security Crypto.Xml DSA tests need to not generate keys on macOS macOS does not support generating DSA keys, only importing them. So these tests will need to use a stock supply (at least on macOS). +17008 area-System.Runtime Missing GetTypeFromProgID in Core 1.1? "Hi folks! I'm building a netstandard 1.5 lib, but method .GetTypeFromProgID is missing. This code works fine in Framework 4.6.2: ` var t = Type.GetTypeFromProgID(""VB6Interop.MyClass""); //missing GetTypeFromProgID var o = Activator.CreateInstance(t); var r = t.InvokeMember ( ""MyMethod"", System.Reflection.BindingFlags.InvokeMethod, null, o, new object[] { """", """" } ); ` Please can you tell me where is GetTypeFromProgID? Thanks a lot! " +17009 area-System.Net Send request in System.Net.Http.Activity.Stop event payload "If request processing throws an exception or is cancelled, ""System.Net.Http.Activity.Stop"" event has null Response property in the payload. In order to log so such requests, consumers either need to retain request from ""System.Net.Http.Activity.Start"" just in case it will fail before ""Stop"". We should allow to listen to Stop event only, so Stop event should always all necessary information including Request. Even if consumer listen to Start event, it's not always useful to tunnel request properties through Activity.Tags." +17010 area-System.Net CurlHandler exception on resource constraint environment The following exception happens on .NET Core runtime 1.1.1 on Ubuntu 14.04, when resources are constrained. ``` Uncatched exception in BroadcasterJob: System.IO.IOException: The read operation failed, see inner exception. ---> System.ObjectDisposedException: Cannot access a closed Stream. at System.IO.__Error.StreamIsClosed() at System.IO.MemoryStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.MemoryStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.CurlHandler.MultiAgent.TransferDataFromRequestStream(IntPtr buffer, Int32 length, EasyRequest easy) at System.Net.Http.CurlHandler.MultiAgent.CurlSendCallback(IntPtr buffer, UInt64 size, UInt64 nitems, IntPtr context) --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.IO.Stream.d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` I am using `CopyToAsync` on a stream from a `WebResponse.GetResponseStream()` to a `MemoryStream`. I imagine something is garbage collected at the wrong time. The `MemoryStream` at the top of the exception stack does not seems to be the same as the one passed to `CopyToAsync`. I experienced the same problem with simple `Read()`, same stacktrace, on the WebResponse stream. Another example: ``` System.ObjectDisposedException: Cannot access a closed Stream. at System.IO.__Error.StreamIsClosed() at System.IO.MemoryStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.IO.MemoryStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.CurlHandler.MultiAgent.TransferDataFromRequestStream(IntPtr buffer, Int32 length, EasyRequest easy) at System.Net.Http.CurlHandler.MultiAgent.CurlSendCallback(IntPtr buffer, UInt64 size, UInt64 nitems, IntPtr context) --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.CurlHandler.CurlResponseStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.Net.Http.DelegatingStream.Read(Byte[] buffer, Int32 offset, Int32 count) ``` I am investigating it, +17011 area-System.Security Remove OpenSSL dependency on macOS (dev/apple_crypto -> master) "With this (set of) change(s) only the types whose name includes ""OpenSsl"" (e.g. RSAOpenSsl) will use OpenSSL on macOS. Instead, everything is provided by Security.framework. * RSA, DSA, ECDSA: SecKeyRef * No new public interop types were added with this change, they can come in the future. * Apple does not allow new DSA keys to be generated. This is import/certs only. * X509Certificate(2): SecCertificateRef, SecIdentityRef * X509Chain: SecTrustRef * X509Store: Keychain (CU\My, LM\My), SecTrustSettings (CU/LM Root/Disallowed) * SslStream: Secure Transport (SslContextRef) * HTTPS: libcurl * Understanding that libcurl+openssl is special has been removed. * OID lookup moves to a fixed set of data due to lack of exposed platform API. Fixes #9394. " +17012 area-System.Net Validate ArraySegments passed to Unix socket operations Fixes https://github.com/dotnet/corefx/issues/16715 cc: @geoffkizer, @Priya91 +17014 area-System.Net System.Net.NetworkInformation manifest error My app references the nuget package for System.Net.NetworkInformation 4.3.0. When I attempt a call to, say, NetworkInterface.GetIsNetworkAvailable() I get this error: Inner Exception 1: FileLoadException: Could not load file or assembly 'System.Net.NetworkInformation, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) I have manually deleted nuget cache, obj and bin directories multiple times. When I look at the assemblies in Object browser I see System.Net.Networkinformation [4.1.0.0] and [4.1.1.0] - they are installed in c:\yada\packages\system.net.networkinformation\ **4.3.0** \ref\yada. When I roll back to 4.1.0.0 everything works. My csproj: ```xml net462;netcoreapp1.1 ``` +17015 area-System.Xml Can't find XslTransform? Hi, I see the XslTransform in the source code here: https://github.com/dotnet/corefx/blob/b1865ea0847a7a86baefe8378b772ecf0b785681/src/System.Private.Xml/src/System/Xml/Xslt/XslTransform.cs Has this shipped? Is it included in some NuGet? Thanks, +17018 area-Meta "Question -- Who owns ""partial classes"" ?" "Where should one file queries/issues/feedback for ""partial classes"" ?" +17019 area-System.Diagnostics Fixes #2751 Use per-thread IndentLevel for tracing. The fix is to lazily set per-thread IndentLevel into each trace listener just before effecting a trace output. Fixes #2751. @stephentoub @karelz @svick Please review. +17020 area-System.Security Fix for Transform.PropagatedNamespaces (#16798) `Transform.PropagatedNamespaces` throws a `NullReferenceException` if called before the `Reference` property is set. This may be an unknown side effect of a the security fix for this namespace. I also rearranged the tests to make them a bit more generic. Note that this bug appears to occur in netfx too and fixing it there is out of scope. The tests accessing this property defined out on netfx. If there is a better way of achieving this, please let me know. Fix for #16798. CC @krwq @tintoy +17021 area-Meta Is there any plan or roadmap to add the .net core and .net standard to VB.NET Now in VS 2017, we can only create C# projects with .NET Core and .NET Standard, when the VB.NET will supported with .NET Core and .NET Standard. +17024 area-System.Drawing System.Drawing.SystemColors available in netcoreapp2.0 but not in netstandard2.0 `System.Drawing.SystemColors` exists in System.Drawing.Primitives 4.1.0.0 for netcoreapp2.0 (as part of Microsoft.Netcore.App 2.0.0-beta-001737-00), but does not exist in System.Drawing or System.Drawing.Primitives for netstandard2.0 Although not a bug per se, since netcoreapp2.0 implements SystemColors, and NetFX and Mono also do, all .NET platforms implement SystemColors so it might be a candidate to end up in the netstandard2.0 specification. Alternatively, if it is deemed it SystemColors should not be part of netstandard2.0, I'm not sure it makes much sense to have it in netcoreapp2.0, either. Background: I have ported Mono's System.Drawing to .NET Core and repeating the excercise for netstandard2.0. When compiling Mono's System.Drawing for netstandard2.0, I have to include SystemColors as it is not part of the netstandard2.0 specification. This version can then be consumed on NetFX (given System.Drawing is not referenced) but not on netcoreapp2.0 because you'll get compiler errors trying to distinguish between System.Drawing.SystemColors in netcoreapp2.0 and Mono's System.Drawing. Net, the gist of this issues is to request to have the same API surface for System.Drawing on netcoreapp2.0 and netstandard2.0. Makes sense? +17026 area-Meta Binding redirect in multi-target class library. "How do i redirect the assembly binding in a multi-target class library, such as: ```xml ``` That can be done by app.config in traditional .Net class library. But what about a multi-target class library? BTW, this issue comes from referencing Microsoft.Bcl.Async when I try to multi-target net40 and netstandard1.4: ```xml net40;netstandard1.4 1.0.168 ``` And VS2017 gave the warning: > The primary reference ""C:\Users\jaren\.nuget\packages\microsoft.bcl.async\1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll"" could not be resolved because it has an indirect dependency on the framework assembly ""System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" which could not be resolved in the currently targeted framework. "".NETFramework,Version=v4.0"". To resolve this problem, either remove the reference ""C:\Users\jaren\.nuget\packages\microsoft.bcl.async\1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll"" or retarget your application to a framework version which contains ""System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"". According to [Microsoft.Bcl.Async FAQ]( https://blogs.msdn.microsoft.com/bclteam/p/asynctargetingpackkb/), it seems like binding redirecting is needed." +17028 area-System.Runtime Two TimeZoneTests failed in CI I assume today's DST change was a factor here. https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_release_prtest/4421/ https://ci.dot.net/job/dotnet_corefx/job/master/job/osx_debug_prtest/4428/ ``` System.Tests.TimeZoneTests.TestRoundTripping [FAIL] Assert.Equal() Failure Expected: 2017-03-12T03:09:36.4716460-07:00 Actual: 2017-03-12T04:09:36.4716460-07:00 Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Runtime/tests/TimeZoneTests.netstandard.cs(86,0): at System.Tests.TimeZoneTests.TestRoundTripping() System.Tests.TimeZoneTests.TestOffsetsAndDaylight [FAIL] Assert.Equal() Failure Expected: -07:00:00 Actual: -08:00:00 Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Runtime/tests/TimeZoneTests.netstandard.cs(67,0): at System.Tests.TimeZoneTests.TestOffsetsAndDaylight() ``` +17030 area-System.Net Open FtpWebRequest for customization "`FtpWebRequest` works great when communicating with ""normal"" FTP servers. But if I try to communicate with more odd FTP servers, it becomes a problem when there is not much opportunity to adjust `FtpWebRequest`. As an example, we have at work an old FTP server with the following characteristics: * There is no proper directory structure as it works on Unix/Dos (and therefore no root). We specifying the path with parameters like this: `CWD ~TNA=AMP,VNA=VOL03,FNA=U-ED-B2-USL` * If you make a listing of files without specifying `FNA`, we get a tree structure with everything on the entire partition. I do not expect that this odd behavior to be implemented in `FtpWebRequest`, but I wish that there is any why to customize `FtpWebRequest `to handle these and other special cases. One way is to have a callback just before commands are sent to the FTP server to provide the ability to customize what is sent and then another callback when the response arrives. Another way might be to make it possible to inherit from `FtpWebRequest `to make your own customized version." +17032 area-Meta NETFramework 4.6 project can not reference project that targets NETStandard 1.4? " According to the [compatibility matrix](https://github.com/dotnet/standard/blob/master/docs/versions.md) my NETFramework 4.6 project should be able to reference libraries up to NetStandard 1.6 - correct? Why am I getting this error? ``` 2>------ Build started: Project: XUnitTestProject1, Configuration: Debug Any CPU ------ 2>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.Common.targets(73,5): error : Project 'C:\bindingTest.csproj' targets '.NETStandard,Version=v1.4'. It cannot be referenced by a project that targets '.NETFramework,Version=v4.6'. 2>Done building project ""bindingTest.csproj"" -- FAILED. ``` " +17033 area-System.Collections Add tests for ArraySegment slicing APIs and GetEnumerator Fixes https://github.com/dotnet/corefx/issues/14170 Fixes https://github.com/dotnet/corefx/issues/10528 This adds tests for the implementation of slicing APIs for `ArraySegment` in coreclr (https://github.com/dotnet/coreclr/pull/9926) and additionally exposes the strongly-typed `GetEnumerator()` overload. /cc @KrzysztofCwalina, @stephentoub +17034 area-Meta Use TryAdd throughout corefx Now that https://github.com/dotnet/corefx/issues/1942 has been exposed, we can replace all of the places using ```cs if (!dictionary.ContainsKey(key)) { dictionary.Add(key, value); } ``` with ```cs if (dictionary.TryAdd(key, value)) { } ``` and get better perf for free. Not sure if there will be any issues with targeting a framework that doesn't have the API, but IIRC @weshaggard said that everything is being built against netcoreapp now so everywhere in corefx should have the API write away. +17036 area-System.Xml Test: System.Xml.Tests.XmlConvertTests.ToTypeTests failed in CI Configuration: OuterLoop_Fedora24_debug ([build#115](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora24_debug/115/testReport/)) Failed test: System.Xml.Tests.XmlConvertTests.ToTypeTests Message: ~~~ System.Xml.Tests.XmlConvertTests.ToTypeTests [FAIL] Assert.Equal() Failure Expected: 0 Actual: 3 ~~~ Stack trace: ~~~ at System.Xml.Tests.XmlConvertTests.RunTestCase(CTestBase testCase) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora24_debug/src/System.Private.Xml/tests/XmlConvert/XmlConvertTests.cs:line 209 at System.Xml.Tests.XmlConvertTests.ToTypeTests() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora24_debug/src/System.Private.Xml/tests/XmlConvert/XmlConvertTests.cs:line 58 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora24_debug/115/consoleText +17037 area-System.Runtime System.Tests.GetEnvironmentVariable.EnumerateEnvironmentVariables failed in CI Configuration: OuterLoop_Windows10_release ([build#126](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win10_release/126/testReport/)) Failed test: System.Tests.GetEnvironmentVariable.EnumerateEnvironmentVariables Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win10_release/126/consoleText Message: ~~~ System.Tests.GetEnvironmentVariable.EnumerateEnvironmentVariables(target: User) [FAIL] System.IO.IOException : No more data is available. ~~~ Stack Trace: ~~~ at Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode, String str) at Microsoft.Win32.RegistryKey.GetValueNames() at System.Environment.GetEnvironmentVariablesCore(EnvironmentVariableTarget target) D:\j\workspace\outerloop_win---6835b088\src\System.Runtime.Extensions\tests\System\Environment.GetEnvironmentVariable.cs(243,0): at System.Tests.GetEnvironmentVariable.EnumerateEnvironmentVariables(EnvironmentVariableTarget target) ~~~ +17039 area-System.Data System.Data.SqlClient package not updated for 1.1.1 release PR #15431 was listed in the release notes for [.NET Core 1.1.1](https://github.com/dotnet/core/blob/master/release-notes/1.1/1.1.1.md). However, there was no new System.Data.SqlClient package so the fix has not been released. Will this package be updated with the next servicing release? +17040 area-System.Diagnostics Use EnvironmentAugments instead of System.Environment from corelib. System.Environment in corelib is not going to be public anymore +17044 area-System.Runtime No more data is available error in EnumerateEnvironmentVariables test https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win10_release/126/consoleText ``` System.Tests.GetEnvironmentVariable.EnumerateEnvironmentVariables(target: User) [FAIL] System.IO.IOException : No more data is available. Stack Trace: at Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode, String str) at Microsoft.Win32.RegistryKey.GetValueNames() at System.Environment.GetEnvironmentVariablesCore(EnvironmentVariableTarget target) D:\j\workspace\outerloop_win---6835b088\src\System.Runtime.Extensions\tests\System\Environment.GetEnvironmentVariable.cs(243,0): at System.Tests.GetEnvironmentVariable.EnumerateEnvironmentVariables(EnvironmentVariableTarget target) ``` +17045 area-System.Net ServerCertificateCustomValidationCallback throws PlatformNotSupportedException in CentOS.7-x64 "As @bartonjs suggested, I am creating a new issue for CentOS. #9728 When using ServerCertificateCustomValidationCallback in .Net Core 1.0.1 CentOS 7 64 bit Azure VM, I am getting the following error ``` System.PlatformNotSupportedException: The libcurl library in use (7.29.0) and its SSL backend (""NSS/3.19.1 Basic ECC"") do not support custom handling of certificates. A libcurl built with OpenSSL is required. at System.Net.Http.CurlHandler.SslProvider.SetSslOptions(EasyRequest easy, ClientCertificateOption clientCertOption) at System.Net.Http.CurlHandler.EasyRequest.InitializeCurl() at System.Net.Http.CurlHandler.MultiAgent.ActivateNewRequest(EasyRequest easy) End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at hwapp.Program.d__1.MoveNext() ``` **Sample code** ```csharp static void Main(string[] args) { MakeWebRequest().GetAwaiter().GetResult(); Console.WriteLine(""Press any key to exit!""); Console.ReadKey(); } private static async Task MakeWebRequest() { var handler = new HttpClientHandler() { AllowAutoRedirect = false, AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip }; handler.ServerCertificateCustomValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; try { using (var client = new HttpClient(handler)) { var result = await client.GetAsync(""https://www.google.com""); Console.WriteLine(result.StatusCode.ToString()); } } catch (Exception exception) { Console.WriteLine(exception.ToString()); } } ``` " +17047 area-System.Numerics System.Runtime.Numerics.Tests are not executed Tests in https://github.com/dotnet/corefx/tree/master/src/System.Runtime.Numerics/tests appears not to be executed as part of build tests and it looks like some of them regressed. +17048 area-System.Reflection MemberInfo.HasSameMetadataDefinitionAs should capture the logic common to all Reflection providers "This is in support of the just approved api `HasSameMetadataDefinitionAs` in #5884 This api has a number of edge cases (constructed types and method instantiations.). These edge cases can mostly be implemented portably. Given that, it would be nice of MemberInfo itself could implement the portable portion, leaving the simplified task for the underlying Reflection provider. This would reduce the amount of implementation underlying Reflection providers have to do and promote more consistent behavior. **Proposal for New API:** `MemberInfo.HasSameMetadataDefinitionAsImpl.` ```c# protected virtual bool HasSameMetadataDefinitionAsImpl(MemberInfo other) { throw new NotImplementedException(); } ``` This would be an extension point for Reflection providers to implement the ""non-portable"" portion of HasSameMetadataDefinitionAs() on non-constructed entities. The specification of `HasSameMetadataDefinitionAsImpl` would be as follows: Return true if and on if this and other... - Have the same MemberType value (i.e. both are methods or both are fields, etc.) - Are implemented by the same Reflection provider. - Represents the same metadata entity (e.g disregarding artifacts such as ReflectedType.) Behavior undefined if: - other is null - this or other is a MethodInfo that represents a constructed generic method (e.g. the result of MethodInfo.MakeGenericMethod() - this or other is a Type that isn't one of - a plain old named type (i.e. HasElementType == false && IsConstructedGenericType == false) - a generic type parameter (i.e. IsGenericParameter == true) The implementation of MemberInfo.HasSameMetadataDefinitionAs() can then be this: ```c# public virtual bool HasSameMetadataDefinitionAs(MemberInfo other) { if (other == null) throw new ArgumentNullException(nameof(other)); MemberInfo thisMember = Distill(this); MemberInfo otherMember = Distill(other); return thisMember.HasSameMetadataDefinitionAsImpl(otherMember); } private MemberInfo Distill(MemberInfo member) { switch (member) { case MethodInfo method: if (method.IsGenericMethod && !method.IsGenericMethodDefinition) method = method.GetGenericMethodDefinition(); return method; case Type type: { while (type.HasElementType) { type = type.GetElementType(); } if (type.IsConstructedGenericType) type = type.GetGenericTypeDefinition(); return type; } default: return member; } } ``` Note that `HasSameMetadataDefinitionAs` is still virtual, allowing providers to replace it entirely if they can provide a more performant version than the default. The default definition, however, still defines the required behavior." +17049 area-System.Net Use vectors in managed ClientWebSocket for mask application The web socket protocol uses a 4-byte mask sent from client to server and xor'd with the payload data. In the managed web socket implementation, that mask is currently applied byte-by-byte. This commit changes it to be done using SIMD. Micro-benchmarks on the ApplyMask function itself show a regression for payload lengths under 4 bytes, but above that it's a clear win: ``` 1: 0.44x 3: 0.64x 4: 1.15x 7: 1.16x 31: 1.73x 32: 6.06x 63: 3.37x 64: 10.40x 1024: 20.36x ``` This doesn't have a measurable affect on small payloads in the overall context of sending/receiving data, but the larger the payload, the more it applies. Locally I measured upwards of a 10% improvement for payloads several-K in size. cc: @benaadams, @geoffkizer, @davidsh, @anurse ,@mellinoe +17051 area-System.Reflection Why do we have IsConstructedGenericType but not IsConstructedGenericMethod? "**Proposal for New API:** ```c# class MethodBase { public virtual bool IsConstructedGenericMethod => IsGenericMethod && !IsGenericMethodDefinition; } ``` This is both for completeness (Type has **IsConstructedGenericType**) and for better expressibility when testing if a MethodBase represents a method instantation. Right now, the only way to perform that task is through this eyesore: ```c# if (method.IsGenericMethod && !method.IsGenericMethodDefinition) {...} ``` This is wordy, requires two calls and requires the use of the 1.0-era **IsGenericMethod** (whose very use I consider to be a code smell due to its poor conceptual grasp of the distinction between generic methods and their instantiations.) The proposed implementation allows the new api to give the correct result for 3rd party Reflection providers without any additional work on their part. Declaring it ""virtual"" (like its IsConstructedGenericType counterpart) makes it possible for providers to override with a more performant version (CoreRT is certainly well positioned to do this.)" +17052 area-System.Globalization StringComparer not working as expected on Linux "The following test works on Windows but not on Linux (RHEL 7.2 or Ubuntu 16.04): Assert.AreEqual(0, StringComparer.CurrentCultureIgnoreCase.Compare(""ss"", ""ß"")); Our Microsoft consultant Ben Gimblett has confirmed it and requested that we raise it as an issue here for follow-up. We understand that .Net Core uses Windows's own comparison service, which is not available on Linux operating systems. How would one perform these culture aware operations on .Net core - irrespective of operating system?" +17053 area-Infrastructure Use optional tooling to merge optimization data during the build Uses tooling implemented in https://github.com/dotnet/buildtools/pull/1322 to merge IBC optimization data during the build pipeline build. We need to pass in secret values for the `OptionalToolSource*` vars: I'll set that up after merging. In my testing, the result was packages with signed DLLs with the optimization data merged. /cc @dpodder (working on this for CoreCLR) +17055 area-Serialization Make Sg.exe Parse Attributes Using Reflection Sg.exe needs to convert CustomAttributeData to actual attribute objects. We currently have to write methods for each attribute for the conversion. Sg.exe would fail to parse an attribute if we didn't add such method for that attribute type. It would be great if Sg.exe can parse attributes using reflection so that we won't have to add such method for individual attribute types anymore. +17056 area-Serialization Improve Sg.exe's Type-Forwarding Sg.exe currently keeps a list for type-forwarding types from desktop assemblies to NetCore assemblies. We'd like to do the type-forwarding smartly and remove the list. +17057 area-Infrastructure Fix target queue behavior for official runs Goes with https://github.com/dotnet/buildtools/pull/1387, should not be merged until it can include a tools version update. @chcosta @weshaggard +17058 area-Infrastructure Verify that tests projects are configured to run on all possible platforms I believe at the minimum, these test projects should be run on all platforms: src/System.IO.FileSystem.DriveInfo/tests/Configurations.props src/System.Net.WebHeaderCollection/tests/Configurations.props src/System.Security.Cryptography.Primitives/tests/Configurations.props src/System.Text.Encoding.CodePages/tests/Configurations.props We should compare the test results from a Windows and Linux run and make sure there are no other unnecessary test gaps. +17059 area-Infrastructure Enable four test projects outside of Windows This enables the following test projects outside of Windows: src/System.IO.FileSystem.DriveInfo/tests/Configurations.props src/System.Net.WebHeaderCollection/tests/Configurations.props src/System.Security.Cryptography.Primitives/tests/Configurations.props src/System.Text.Encoding.CodePages/tests/Configurations.props @stephentoub Part of #17058 +17060 area-Meta Added to .editorconfig csharp code style settings supported by VS 2017 Adds code style settings supported by VS 2017 to .editorconfig file according to https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md. Closes #16972 @tannergooding @karelz +17061 area-System.Diagnostics Augment procfs proc/task states and include unknown char in assert Fixes https://github.com/dotnet/corefx/issues/15689 cc: @mellinoe +17062 area-System.Net Enable System.Private.Uri tests These test projects did not get Configurations.props files in the infrastructure overhaul. I've added them and regenerated the VS artifacts. Related to #17058 +17063 area-System.Memory Make use of CopyBlock for non-overlapping spans Fix for #16840. For non-overlapping spans, this makes copy about 9-10x faster. For overlapping spans, we still take the slow paths. [Edit] 9-10x for sufficiently large blocks (> 2 KB). Though a 256 byte block was still about 4x faster. A 16 byte block was only marginally faster. +17064 area-System.Security Merge dotnet:master to dotnet:dev/apple_crypto (and add lost function) Merges recent merge conflicts from master to dev/apple_crypto, and the master PR noticed that there was a native method that got lost somewhere in the pipeline. +17065 area-System.Net Re-enable disabled tests for CI. These tests don't fail locally run in a loop, and they were disabled long time back after a single test failure. Hence re-enabling them for CI. These tests affect windows only. #10504 #11623 cc @steveharter @ianhays @karelz +17067 area-System.IO Compression.ZipArchive: Expose ExternalFileAttributes for Entries # Problem The ExternalFileAttributes field of a ZipArchiveEntry is currently hidden within the implementation and not accessible. This has been fine in the Windows world since it's not used but it *is* used by Unix's `zip`/`unzip` programs to store file permissions of an entry. As it currently stands, there is no way to carry Unix RWX permissions within a zip, so at unzip time the unzipper has to guess at permissions and manually chmod the entries. https://github.com/dotnet/corefx/issues/14853 https://github.com/dotnet/corefx/issues/15516 https://github.com/dotnet/corefx/issues/10223 https://github.com/NuGet/Home/issues/4424 # Solution Permissions isn't an officially supported feature of the [zip specification](https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.3.3.TXT) but it is used widely enough that we should add support for it. There's a pretty wide range of things we can do here that go from simply exposing the field all the way to implementing [AccessControl for Unix and accepting something from there as input](https://github.com/dotnet/corefx/issues/9225). Since the latter option requires a huge amount of work/new API and marries us to a Zip permissions structure, I suggest we take the simple/future-proof route here and just expose the entire field: ``` public partial class ZipArchiveEntry { public int ExternalAttributes {get; set} } ``` This also has the benefit of potentially supporting other implementations that use the external file attributes field for reasons other than permissions. I'm not aware of any of these off the top of my head, but they ostensibly exist. # Usage The unfortunate aspect of exposing the raw field is that usage becomes a bit more complicated. However, without implementing our own UnixPermissions structure that's somewhat unavoidable. The nice thing is that it leaves us open to implement an explicit UnixPermissions structure in the future (pending the completion of #9225) without conflictions with the ExternalAttributes. [This StackOverflow post does a better job describing the format than I can so I'm just going to link it](http://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute/14727#14727). The permissions values themselves are the same as the ones you get from stat. cc: @stephentoub @JeremyKuhne +17068 area-System.Runtime Proposal: Convenience API for throwing exceptions ## Background It's quite verbose to validate arguments because you have to write an if-statement and `throw new XXXException` for each validation. Even with C# 7's new throw-expressions, you still have to write out the latter part. This makes people write their own helper classes for validating arguments, e.g. [here](https://github.com/dotnet/corefx/blob/master/src/System.Collections.Immutable/src/Validation/Requires.cs) or [here](https://github.com/xunit/xunit/blob/master/src/common/Guard.cs). It would be nice if we had such a helper class as part of the framework. ## Proposal ```cs namespace System { public static class Verify { public static void Argument(bool condition, string message, string argumentName); public static void InRange(bool condition, string argumentName); public static void InRange(string s, int index, int count, string sName, string indexName, string countName); public static void InRange(T[] array, int index, int count, string arrayName, string indexName, string countName); public static void NotEmpty(IEnumerable source, string sourceName); public static void NotNegative(int argument, string argumentName); public static void NotNull(bool condition, string argumentName); public static void NotNull(T argument, string argumentName) where T : class; public static void Positive(int argument, string argumentName); } } // Sample usage: T MyGenericMethod(T[] array, int index, int count) { // Note: All of this is equivalent to Verify.InRange(array, index, count, nameof(array), nameof(index), nameof(count)). // The arguments are validated manually for demo purposes. Verify.NotNull(array, nameof(array)); Verify.NotNegative(index, nameof(index)); Verify.NotNegative(count, nameof(count)); Verify.InRange(array.Length - index >= count, nameof(index)); } ``` A sample implementation [can be found here](https://gist.github.com/jamesqo/13dded2757a8f9f9eb57bbaf944dee1b#file-verify-cs-L79). ## Remarks - In my experience, it's common to validate things like a signed integer being positive/nonnegative, so those patterns will get their own `Positive` / `NotNegative` methods. This will enable us to [provide a better error message](https://gist.github.com/jamesqo/13dded2757a8f9f9eb57bbaf944dee1b#file-verify-cs-L79) if such a check fails. These methods throw the same exception type as `InRange`. - Same applies for `InRange`, `NotEmpty` - The class will work nicely with `using static`: ```cs using static System.Verify; T MyGenericMethod(T[] array, int index, int count) { NotNull(array, nameof(array)); NotNegative(index, nameof(index)); NotNegative(count, nameof(count)); InRange(array.Length - index >= count, nameof(index)); } ``` - The extra `NotNull` overload taking a `bool` covers the rare cases when people are writing generic code, and the parameter might be null but the compiler can't guarantee that it's a class. e.g. [Like here](https://github.com/dotnet/corefx/blob/master/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableDictionary.cs#L300). It also covers the rare times when someone would want to verify a nullable is non-null. - I didn't include a `NotNull(T?, string) where T : struct` nullable overload since if someone thinks a nullable is non-null they would likely 1) not accept a nullable parameter in the first place, or 2) if they're calling some method they know returns a non-null nullable, they're likely to cast the `T?` to a `T` or call `.Value`, which do the validation automatically, instead of bothering to validate themselves. --- This is a follow-up to https://github.com/dotnet/corefx/issues/12509 after putting some thought into the API. +17069 area-Serialization Added tests for XmlMembersMapping. This PR added tests for serializing objects using XmlMembersMapping. The tests passed in ILGen mode, but failed in reflection only mode. Ref #10675. +17070 area-System.Data Ensure we build SqlClient.Sni package This package is just a meta-package for the RID-specific SNI packages, which are built in another repository. Fixes https://github.com/dotnet/corefx/issues/16918 /cc @saurabh500 @weshaggard +17072 area-System.IO Compression tests are writing their test files to their install directory Compression tests are writing their test files to their install directory. In appcontainer, they apparently can't do that. In the example below, `ZipTestData\StrangeZipFiles\largetrailingwhitespacedeflation.zip` comes from the test and it's just suffixed onto the folder of the dll, which I guess is the current directory. ``` 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: Hello + ' C:\dotnetbuild\work\22eb33a7-3458-4f94-b2f1-56522dd4cb26\Work\7db140f3-b2ca-4270-b359-7fce63d78e6b\Unzip\\System.IO.Compression.Tests.dll' 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: Discovering: System.IO.Compression.Tests 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: Discovered: System.IO.Compression.Tests 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: Starting: System.IO.Compression.Tests 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: ERROR: System.IO.Compression.Tests.zip_InvalidParametersAndStrangeFiles.ZipWithLargeSparseFile [FAIL] 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: System.UnauthorizedAccessException : Access to the path 'C:\dotnetbuild\work\22eb33a7-3458-4f94-b2f1-56522dd4cb26\Work\7db140f3-b2ca-4270-b359-7fce63d78e6b\Unzip\ZipTestData\StrangeZipFiles\largetrailingwhitespacedeflation.zip' is denied. 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: at System.IO.File.Open(String path, FileMode mode, FileAccess access, FileShare share) 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: at System.IO.File.Open(String path, FileMode mode, FileAccess access) 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: at System.IO.Compression.Tests.zip_InvalidParametersAndStrangeFiles.ZipWithLargeSparseFile() 2017-03-13 22:45:49,839: INFO: proc(54): run_and_log_output: Output: Finished: System.IO.Compression.Tests ``` @AlexGhiondea this was in your private run. +17075 area-System.Runtime StringBuilder's indexer throws different exceptions for get & set "```cs [IndexerName(""Chars"")] public char this[int index] { get { StringBuilder chunk = this; for (;;) { int indexInBlock = index - chunk.m_ChunkOffset; if (indexInBlock >= 0) { if (indexInBlock >= chunk.m_ChunkLength) { throw new IndexOutOfRangeException(); } return chunk.m_ChunkChars[indexInBlock]; } chunk = chunk.m_ChunkPrevious; if (chunk == null) { throw new IndexOutOfRangeException(); } } } set { StringBuilder chunk = this; for (;;) { int indexInBlock = index - chunk.m_ChunkOffset; if (indexInBlock >= 0) { if (indexInBlock >= chunk.m_ChunkLength) { throw new ArgumentOutOfRangeException(nameof(index), Environment.GetResourceString(""ArgumentOutOfRange_Index"")); } chunk.m_ChunkChars[indexInBlock] = value; return; } chunk = chunk.m_ChunkPrevious; if (chunk == null) { throw new ArgumentOutOfRangeException(nameof(index), Environment.GetResourceString(""ArgumentOutOfRange_Index"")); } } } } ``` It throws an `IndexOutOfRangeException` with no parameter name for the getter, and an AOORE with `nameof(index)` for the setter. The latter exception seems superior because 1) it includes the parameter name, and 2) IOORE is only supposed to be used by arrays IIRC. Should we consider changing the getter to follow the setter?" +17076 area-System.Diagnostics Enable AllowPartiallyTrustedCaller for DiagnosticSource on netfx This change marks DiagnosticSource with AllowPartiallyTrustedCaller on net46 and netfx to make it callable from partially trusted code. E.g. System.Net.Http for .NET Framework declares [AllowPartiallyTrustedCaller](https://msdn.microsoft.com/en-us/library/system.security.allowpartiallytrustedcallersattribute.aspx) to be called by partially trusted code therefore can't have DiagnosticSource instrumentation. Note that support for Activity on .NET 4.5 is dropped, so configuration is removed from the project. +17078 area-System.Memory Add tests to increase code coverage for Span APIs Here is a snapshot of the coverage: ![image](https://cloud.githubusercontent.com/assets/6527137/23919318/a410e1e2-08b3-11e7-8710-172522e8ebc6.png) Currently, SpanHelpers, specifically SpanHelpers.Clear.cs needs tests. https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/System.Memory_SpanHelpers.htm +17080 area-System.IO UnloadingEventMustHappenBeforeProcessExitEvent failed in CI "This is the first use of the folder for this test -- it's upstream of the remote process. It appears that FileCleanupTestBase failed to make the directory. Need to add logging. ``` c# protected FileCleanupTestBase() { TestDirectory = Path.Combine(Path.GetTempPath(), GetType().Name + ""_"" + Path.GetRandomFileName()); try { Directory.CreateDirectory(TestDirectory); } catch { } ``` Perhaps we should log (Console.WriteLine if necessary) ``` System.Tests.UnloadingAndProcessExitTests.UnloadingEventMustHappenBeforeProcessExitEvent [FAIL] System.IO.DirectoryNotFoundException : Could not find a part of the path '/home/someuser/some tempdir/UnloadingAndProcessExitTests_b0ejqce4.zgv/UnloadingEventMustHappenBeforeProcessExitEvent_13'. Stack Trace: at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStreamHelpers.CreateFileStream(String path, Boolean write, Boolean append) at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) at System.IO.StreamWriter..ctor(String path) at System.IO.File.WriteAllText(String path, String contents) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx_debug_prtest/src/System.Runtime.Extensions/tests/System/UnloadingAndProcessExitTests.netcoreapp.cs(15,0): at System.Tests.UnloadingAndProcessExitTests.UnloadingEventMustHappenBeforeProcessExitEvent() Using as the test runtime folder. ```" +17083 area-System.Net System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_EachServerUnsupportedProtocol_Fail fail in CI Configuration: OuterLoop_Fedora24_debug ([build#116](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora24_debug/116/testReport/)) Failed test: System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_EachServerUnsupportedProtocol_Fail Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora24_debug/116/consoleText Message: ~~~ Assert.Throws() Failure Expected: typeof(System.NotSupportedException) Actual: typeof(System.NullReferenceException): Object reference not set to an instance of an object. ~~~ Stack Trace: ~~~ /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora24_debug/src/Common/src/System/Net/Security/Unix/SafeDeleteSslContext.cs(65,0): at System.Net.Security.SafeDeleteSslContext.Dispose(Boolean disposing) /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora24_debug/src/System.Net.Security/src/System/Net/Security/SecureChannel.cs(206,0): at System.Net.Security.SecureChannel.Close() /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora24_debug/src/System.Net.Security/src/System/Net/Security/SslState.cs(494,0): at System.Net.Security.SslState.Close() /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora24_debug/src/System.Net.Security/src/System/Net/Security/SslStream.cs(502,0): at System.Net.Security.SslStream.Dispose(Boolean disposing) at System.IO.Stream.Close() /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora24_debug/src/System.Net.Security/tests/FunctionalTests/ServerAsyncAuthenticateTest.cs(186,0): at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +17086 area-System.IO Broken pipe exception when child process crashed on Linux Create a child process and redirect the stdout. If the child process crashed, the parent process will get a IOException after a period of time, and this exception can not be caught. Running on Windows is all right. **Environment:** Ubuntu 16.04 dotnet core 1.0.4 & 1.1.1 **Code:** Process process = new Process(); process.StartInfo.FileName = XXXX; process.StartInfo.Arguments = XXXX; process.StartInfo.CreateNoWindow = true; process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardOutput = true; process.Start(); **Stack Trace:** Unhandled Exception: System.IO.IOException: Broken pipe at System.IO.UnixFileStream.CheckFileCall(Int64 result, Boolean ignoreNotSupported) at System.IO.UnixFileStream.WriteNative(Byte[] array, Int32 offset, Int32 count) at System.IO.UnixFileStream.FlushWriteBuffer() at System.IO.UnixFileStream.Dispose(Boolean disposing) at System.IO.FileStream.Dispose(Boolean disposing) at System.IO.FileStream.Finalize() +17088 area-System.Data Test: System.Data.SqlClient.Tests.SqlConnectionBasicTests.ConnectionTest failed in CI Failed test: System.Data.SqlClient.Tests.SqlConnectionBasicTests.ConnectionTest Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/fedora24_debug/1369/consoleText Configuration: InnerLoop_Fedora24_debug (build#1369) Message: ~~~ System.Data.SqlClient.Tests.SqlConnectionBasicTests.ConnectionTest [FAIL] Assert.Null() Failure Expected: (null) Actual: System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server) ~~~ Stack Trace: ~~~ at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) in /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInternalConnectionTds.cs:line 372 at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) in /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionFactory.cs:line 133 at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) in /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionFactory.cs:line 114 at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) in /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 476 at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) in /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 1187 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) in /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 792 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) in /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 712 at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) in /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionFactory.cs:line 281 at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) in /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionInternal.cs:line 452 at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) in /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionClosed.cs:line 64 at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) in /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnection.cs:line 992 at System.Data.SqlClient.SqlConnection.Open() in /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnection.cs:line 585 at System.Data.SqlClient.Tests.SqlConnectionBasicTests.ConnectionTest() in /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug/src/System.Data.SqlClient/tests/FunctionalTests/SqlConnectionTest.cs:line 23 ~~~ +17089 area-System.Numerics Matrix4x4 perspective helper methods do not handle farPlaneDistance = float.PositiveInfinity All Matrix4x4.CreatePerspective* methods are affected If you pass in float.PositiveInfinity as farPlaneDistance the resulting matrix is invalid: M33 and M43 are both float.NaN They should be -1 and -nearPlaneDistance respectively As a workaround you can use float.MaxValue instead but I think float.PositiveInfinity should create a valid projection matrix as well. +17090 area-System.Numerics Handle farPlaneDistance = float.PositiveInfinity in Matrix4x4.CreatePerspective* methods Fixes #17089 +17091 area-Meta Fix build of native components on FreeBSD. I tried building the native components on FreeBSD and got two build errors: FreeBSD 11 started to define ENODATA, which was not defined in 10.3: ``` [ 6%] Building CXX object System.Native/CMakeFiles/System.Native-Static.dir/pal_errno.cpp.o /usr/home/austin/corefx/src/Native/Unix/System.Native/pal_errno.cpp:13:9: error: 'ENODATA' macro redefined [-Werror,-Wmacro-redefined] #define ENODATA ENOATTR ^ /usr/include/c++/v1/errno.h:155:9: note: previous definition is here #define ENODATA 9919 ^ 1 error generated. ``` The both clang3.5 and clang3.7 from `pkg` complains about the callback that OpenSSL calls to do locking: ``` /usr/home/austin/corefx/src/Native/Unix/System.Security.Cryptography.Native/openssl.cpp:1267:18: error: releasing mutex 'g_locks[n]' that was not held [-Werror,-Wthread-safety-analysis] result = pthread_mutex_unlock(&g_locks[n]); ^ /usr/home/austin/corefx/src/Native/Unix/System.Security.Cryptography.Native/openssl.cpp:1270:9: error: mutex 'g_locks[n]' is not held on every path through here [-Werror,-Wthread-safety-analysis] if (result != 0) ^ /usr/home/austin/corefx/src/Native/Unix/System.Security.Cryptography.Native/openssl.cpp:1263:18: note: mutex acquired here result = pthread_mutex_lock(&g_locks[n]); ^ 2 errors generated. ``` +17092 area-System.ComponentModel Remove WebClient dependency from S.CM.TypeConverter Fixes https://github.com/dotnet/corefx/issues/14695 cc: @AlexGhiondea +17093 area-System.Memory Convenience extension methods for Span for interop with IEnumerable et al? There doesn't seem to exist a method that allows the creation of an `IEnumerable` from a `Span`. Useful extension methods would include: * `ToEnumerable()` Useful for passing a `Span` to a function accepting `IEnumerable` (e.g. for LINQ) * `GetEnumerator()` Should save one allocation when compared to `ToEnumerable()` * `AsReadOnlyList()` For indexed access in code indicating that: 1. Read-only access 2. Indexed access 3. Avoid multiple re-enumeration when used in multiple places * `AsList()` where `IsReadOnly` returns `true` For APIs that don't know about `IReadOnlyList` and companions. +17094 area-System.Threading Proposal: Add Result property to non generic Task. "Suppose you have some method: ```CSharp public async Task GetMyStructure(string someParam) { .... } //Suppose you need to pass result of this method to some non-generic routine // await MySample(GetMyStructure(""structure1""); public async void MySample(Task getMyStructureTask) { // Currently it's impossible. object result = await getMyStructureTask; // We can only get it through reflection await getMyStructureTask; result = task.GetType().GetTypeInfo().GetDeclaredProperty(""Result"")?.GetValue(task); // Do something with result. Console.WriteLine(result?.ToString()); } ```" +17098 area-System.Net "Delete dead ""shim"" code from System.Net.*" This shims are being built into our System.Net libs on Unix and Windows, but are unused and should have been deleted. cc: @geoffkizer, @davidsh, @cipop, @Priya91 +17099 area-System.Net Improve System.Net.Security code coverage (58%) It's currently at 58.3% line and 45% branch. Both of these would ideally be at least above 80%. +17100 area-System.Net Remove more unused code from System.Net.Security cc: @geoffkizer, @Priya91, @davidsh, @cipop +17101 area-System.Numerics Add more Complex::Cos test data +17103 area-System.Net EventSource_EventsRaisedAsExpected in System.Net.Security tests failed in CI "This test turns on events and then calls a few other tests, so the actual failure (""The credentials supplied to the package were not recognized"") is coming from System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Authentication_Success. https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/4621/consoleText ``` Exception from RemoteExecutorConsoleApp(System.Net.Security.Tests, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb, System.Net.Security.Tests.LoggingTest+<>c, b__1_0): Assembly: System.Net.Security.Tests, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb Type: System.Net.Security.Tests.LoggingTest+<>c Method: Int32 b__1_0() Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AggregateException: One or more errors occurred. (VirtualNetwork: Timeout reading the next frame.) (The credentials supplied to the package were not recognized) ---> System.TimeoutException: VirtualNetwork: Timeout reading the next frame. at System.Net.Test.Common.VirtualNetwork.ReadFrame(Boolean server, Byte[]& buffer) in D:\j\workspace\windows_nt_re---37265eab\src\Common\tests\System\Net\VirtualNetwork\VirtualNetwork.cs:line 39 at System.Net.Test.Common.VirtualNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) in D:\j\workspace\windows_nt_re---37265eab\src\Common\tests\System\Net\VirtualNetwork\VirtualNetworkStream.cs:line 119 at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Threading.Tasks.TaskToApm.End[TResult](IAsyncResult asyncResult) in D:\j\workspace\windows_nt_re---37265eab\src\Common\src\System\Threading\Tasks\TaskToApm.cs:line 115 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\FixedSizeReader.cs:line 143 System.IO.Tests.Directory_Delete_Tests.FileSystemWatcher_Directory_Delete_SymLink [SKIP] Condition(s) not met: \""CanCreateSymbolicLinks\"" System.IO.Tests.Directory_Changed_Tests.FileSystemWatcher_Directory_Changed_SymLink [SKIP] Condition(s) not met: \""CanCreateSymbolicLinks\"" --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 731 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of inner exception stack trace --- at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Net.Security.Tests.SslStreamStreamToStreamTest_Async.DoHandshake(SslStream clientSslStream, SslStream serverSslStream) in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\SslStreamStreamToStreamTest.cs:line 391 at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Authentication_Success() in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\SslStreamStreamToStreamTest.cs:line 36 at System.Net.Security.Tests.LoggingTest.<>c.b__1_1() in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\LoggingTest.cs:line 39 at System.Diagnostics.Tracing.TestEventListener.RunWithCallback(Action`1 handler, Action body) in D:\j\workspace\windows_nt_re---37265eab\src\Common\tests\System\Diagnostics\Tracing\TestEventListener.cs:line 91 at System.Net.Security.Tests.LoggingTest.<>c.b__1_0() in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\LoggingTest.cs:line 41 --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at RemoteExecutorConsoleApp.Program.Main(String[] args) in D:\j\workspace\windows_nt_re---37265eab\src\Common\tests\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.cs:line 49 Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AggregateException: One or more errors occurred. (VirtualNetwork: Timeout reading the next frame.) (The credentials supplied to the package were not recognized) ---> System.TimeoutException: VirtualNetwork: Timeout reading the next frame. at System.Net.Test.Common.VirtualNetwork.ReadFrame(Boolean server, Byte[]& buffer) in D:\j\workspace\windows_nt_re---37265eab\src\Common\tests\System\Net\VirtualNetwork\VirtualNetwork.cs:line 39 at System.Net.Test.Common.VirtualNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) in D:\j\workspace\windows_nt_re---37265eab\src\Common\tests\System\Net\VirtualNetwork\VirtualNetworkStream.cs:line 119 at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Threading.Tasks.TaskToApm.End[TResult](IAsyncResult asyncResult) in D:\j\workspace\windows_nt_re---37265eab\src\Common\src\System\Threading\Tasks\TaskToApm.cs:line 115 at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\FixedSizeReader.cs:line 143 --- End of stack trace from previous location where exception was thrown --- System.IO.Tests.File_Create_Tests.FileSystemWatcher_File_Create_SymLink [SKIP] Condition(s) not met: \""CanCreateSymbolicLinks\"" at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 731 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of inner exception stack trace --- at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Net.Security.Tests.SslStreamStreamToStreamTest_Async.DoHandshake(SslStream clientSslStream, SslStream serverSslStream) in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\SslStreamStreamToStreamTest.cs:line 391 at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Authentication_Success() in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\SslStreamStreamToStreamTest.cs:line 36 at System.Net.Security.Tests.LoggingTest.<>c.b__1_1() in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\LoggingTest.cs:line 39 at System.Diagnostics.Tracing.TestEventListener.RunWithCallback(Action`1 handler, Action body) in D:\j\workspace\windows_nt_re---37265eab\src\Common\tests\System\Diagnostics\Tracing\TestEventListener.cs:line 91 at System.Net.Security.Tests.LoggingTest.<>c.b__1_0() in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.Security\tests\FunctionalTests\LoggingTest.cs:line 41 --- End of inner exception stack trace --- at RemoteExecutorConsoleApp.Program.Main(String[] args) in D:\j\workspace\windows_nt_re---37265eab\src\Common\tests\System\Diagnostics\RemoteExecutorConsoleApp\RemoteExecutorConsoleApp.cs:line 65 ```" +17104 area-System.Security DSAImportExport.ExportAutoKey test failed in CI on Windows https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/4626/consoleText ``` System.Security.Cryptography.Dsa.Tests.DSAImportExport.ExportAutoKey [FAIL] Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : An internal consistency check failed Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Security.Cryptography.Cng\src\System\Security\Cryptography\CngKey.Create.cs(55,0): at System.Security.Cryptography.CngKey.Create(CngAlgorithm algorithm, String keyName, CngKeyCreationParameters creationParameters) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Security.Cryptography.Cng\src\Internal\Cryptography\CngAlgorithmCore.cs(68,0): at Internal.Cryptography.CngAlgorithmCore.GetOrGenerateKey(Int32 keySize, CngAlgorithm algorithm) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Security.Cryptography.Cng\src\System\Security\Cryptography\DSACng.Key.cs(25,0): at System.Security.Cryptography.DSACng.get_Key() D:\j\workspace\windows_nt_de---4526f5ff\src\System.Security.Cryptography.Cng\src\System\Security\Cryptography\DSACng.ImportExport.cs(16,0): at System.Security.Cryptography.DSACng.ExportKeyBlob(Boolean includePrivateParameters) D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\Security\Cryptography\DSACng.ImportExport.cs(232,0): at System.Security.Cryptography.DSACng.ExportParameters(Boolean includePrivateParameters) D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\DSA\DSAImportExport.cs(26,0): at System.Security.Cryptography.Dsa.Tests.DSAImportExport.ExportAutoKey() ``` +17106 area-System.Collections Early return possible in ImmutableInterlocked.AddOrUpdate If the `valueFactory` returns the same value as was present in the dictionary previously, the [`AddOrUpdate`](https://github.com/dotnet/corefx/blob/343561048c85321713c30b6e69ddd20cfac94dea/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableInterlocked.cs#L262) method can return that immediately. This optimization would be equivalent to the one currently performed by the [`Update`](https://github.com/dotnet/corefx/blob/343561048c85321713c30b6e69ddd20cfac94dea/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableInterlocked.cs#L42-L46) methods in the same class. :memo: There are two `AddOrUpdate` methods which this change applies to. +17107 area-Meta Need code coverage run for Unix +17108 area-System.Collections ImmutableInterlockedTests.InterlockedCompareExchangeArrayDefault has no assertions The [`ImmutableInterlockedTests.InterlockedCompareExchangeArrayDefault`](https://github.com/dotnet/corefx/blob/343561048c85321713c30b6e69ddd20cfac94dea/src/System.Collections.Immutable/tests/ImmutableInterlockedTests.cs#L172) test is missing assertions, so while it provides some code coverage it's not currently able to reveal bugs aside from exceptions. Assertions regarding `oldValue` should probably be added to improve the quality of this test. +17109 area-Infrastructure Update CoreClr to beta-25114-02 (master) +17110 area-System.Linq Use IsSZArray in S.Linq.Expressions Expressions had a `IsVector()` method that was a workaround for the unavailability of `IsSZArray`. Now that we have that, use that instead. Flip a some `if(!exp){}else{}` to `if(exp){}else{}`. Slightly more readable Do test for non-array passed to `ArrayLength()` only if `IsSZArray` fails, since anything that will fail the array check will fail that subsequent `IsSZArray` check anyway, avoiding one check in the non-exceptional case. Add a few more tests covering the cases hit by that last change, for confidence it doesn't change behaviour. +17111 area-System.Xml Fix DateTimeOffset XmlConvert test Fixes https://github.com/dotnet/corefx/issues/17036 Replaced `TimeZoneInfo.Local.GetUtcOffset(DateTime.Now)` with `TimeZoneInfo.Local.GetUtcOffset(new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 23, 15, 55))` cc: @tarekgh @danmosemsft +17112 area-System.Runtime System.UnauthorizedAccessException in System.Tests.EnvironmentTests.OSVersion_ValidVersion Test failure in System.Tests.EnvironmentTests. https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/4636/consoleFull#-8467542952d31e50d-1517-49fc-92b3-2ca637122019 On Windows x86 ``` System.Tests.EnvironmentTests.OSVersion_ValidVersion [FAIL] 11:58:43 FileCleanupTestBase failed to create C:\Users\someuser\AppData\Local\Temp\EnvironmentTests_oxkp0ze3.kca due to System.UnauthorizedAccessException: Access to the path 'C:\Users\someuser\AppData\Local\Temp\EnvironmentTests_oxkp0ze3.kca' is denied. 11:58:43 at System.IO.Win32FileSystem.CreateDirectory(String fullPath) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 169 11:58:43 at System.IO.Directory.CreateDirectory(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.FileSystem\src\System\IO\Directory.cs:line 51 11:58:43 at System.IO.FileCleanupTestBase..ctor() in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\IO\FileCleanupTestBase.cs:line 24 11:58:43 Expected: True 11:58:43 Actual: False 11:58:43 Stack Trace: 11:58:43 D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\IO\FileCleanupTestBase.cs(28,0): at System.IO.FileCleanupTestBase..ctor() 11:58:43 at System.Diagnostics.RemoteExecutorTestBase..ctor() 11:58:43 at System.Tests.EnvironmentTests..ctor() 11:58:43 at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) 11:58:46 Finished: System.Runtime.Extensions.Tests ``` +17113 area-System.Net Disable more recently failing Net.Security tests. closes https://github.com/dotnet/corefx/issues/17103 closes https://github.com/dotnet/corefx/issues/17083 Adds to the list of tests disabled by #16516 #16534 +17114 area-System.Security Some perf improvements to dev/apple_crypto changes This addresses feedback brought up in https://github.com/dotnet/corefx/pull/17011. +17115 area-System.IO Make Deflate64 compression test netcoreapp specific resolves https://github.com/dotnet/corefx/issues/13244 +17116 area-System.Runtime Add helper method to describe features supported by the runtime "As we ramp the compiler and runtimes together, we want to prevent users from compiling code that we know will fail against a certain runtime. For instance, we plan for newer runtimes to support default implementations in interface, and the compiler should be able to detect that you're compiling against an older runtime without that support. Previously, this was done by having the compiler look for APIs that were added coincidentally with the new support. But as we expect to run into this problem more often, it makes sense to have a systematic design for testing feature support. The main consumer of this API would be the compiler. Whenever it needs to check for runtime support, it would look for the corresponding well-known enum member (for instance, `System.Runtime.CompilerServices.RuntimeCapabilities.SupportsDefaultImplementation`). If the member exists, then the feature check is successful (the feature is supported). The value for that enum member is ignored. A number of feature requests or known bugs interfering with compiler or language evolution is documented in https://github.com/dotnet/csharplang/issues/251 # Proposed API (Updated after API review 3/28/2017) (Updated to use ""const"" instead of ""static readonly"" after further discussion 4/13/2017) ```C# namespace System.Runtime.CompilerServices { public static class RuntimeFeature { // Presence of the field indicates runtime support public const string FixedGenericAttributes = nameof(FixedGenericAttributes); public const string DefaultImplementation = nameof(DefaultImplementation); // Runtime check public static bool IsSupported(string feature); } } // Usage if (RuntimeFeature.IsSupported(""SomeNewerFeature"") { // Use feature when emitting code at runtime (CodeDOM, RefEmit etc) } ``` * **Static detection**. The presence of a field alone indicates whether the code compiled against it can rely on the runtime providing the feature. This allows us to model runtime capabilities like any other API, which includes leveraging our existing infrastructure for detecting breaking changes. Also, this allows us to express this in .NET Standard and will version like any other API. * **Runtime detection**. There are some (very limited) scenarios where someone might want to do feature detection at runtime, in particular runtime code generation using RefEmit. We don't expect many developers to call this API. Usage of this API will always involve a literal, as having a field in scope would imply `IsSupported` must return `true`. Developers using light-up would discover the strings by looking at the documentation of a particular .NET platform. # Original proposed API (rejected in favor of the one above) ```C# namespace System.Runtime.CompilerServices { public enum RuntimeFeatures { FixedGenericAttributes, SupportsDefaultImplementation, // ... this list would grow over time } } ``` # Maintenance process Adding new enum members would go through the standard API review process. The main requirement is that enum names should mean the same thing across the different runtimes (desktop, core, RT, mono). Also, there needs to be documented agreement between the runtimes and compilers about the meaning of each new member. CC @gafter, @alekseyts, @vsadov, @jaredpar" +17117 area-System.Runtime Incorrect trailing TimeZoneInfo.AdjustmentRule on Unix "On Unix, time zone data is retrieved from tzfiles. See https://linux.die.net/man/5/tzfile. The transition times of each time zone are stored in this file. Every time the offset from UTC changes, an entry is made. In practice, they are ""forecasted"" out until about 2037. In V2 of the tzfile, the time transitions after this ""last"" transition date are represented by a ""POSIX"" style string that represents when DST starts and ends each year. These POSIX-TZ-environment-variable-style strings are documented http://man7.org/linux/man-pages/man3/tzset.3.html. > Here is an example for New Zealand, where the standard time (NZST) is 12 hours ahead of UTC, and daylight saving time (NZDT), 13 hours ahead of UTC, runs from the first Sunday in October to the third Sunday in March, and the changeovers happen at the default time of 02:00:00: TZ=""NZST-12:00:00NZDT-13:00:00,M10.1.0,M3.3.0"" However, our [GetAdjustmentRules()](https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/TimeZoneInfo.Unix.cs#L124-L158) method is not translating this information correctly. Here is an example of using the `America/Los_Angeles` time zone and printing out the AdjustmentRules. Notice the top row says to start daylight transitions on the November 1 of each year, and to end it on December 31. Also notice that there is no `DaylightDelta` during this time, when it should be 1 hour. ``` DateStart DateEnd DaylightDelta DaylightTransitionStart DaylightTransitionEnd 11/01/2037 12/31/9999 00:00:00 M11.w1.d1 1:00 AM M12.w1.d31 11:59 PM 03/08/2037 11/01/2037 01:00:00 M3.w1.d8 3:00 AM M11.w1.d1 1:59 AM 11/02/2036 03/08/2037 00:00:00 M11.w1.d2 1:00 AM M3.w1.d8 1:59 AM 03/09/2036 11/02/2036 01:00:00 M3.w1.d9 3:00 AM M11.w1.d2 1:59 AM 11/04/2035 03/09/2036 00:00:00 M11.w1.d4 1:00 AM M3.w1.d9 1:59 AM ``` ### Code to print the above table ``` class Program { static void Main(string[] args) { TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById(""America/Los_Angeles""); StringBuilder builder = new StringBuilder(); builder.Append(""DateStart""); builder.Append(""\t""); builder.Append(""DateEnd""); builder.Append(""\t""); builder.Append(""\t""); builder.Append(""DaylightDelta""); builder.Append(""\t""); builder.Append(""DaylightTransitionStart""); builder.Append(""\t""); builder.Append(""DaylightTransitionEnd""); System.Console.WriteLine(builder); var rules = tz.GetAdjustmentRules(); foreach (var rule in rules.Reverse().Take(5)) { builder = new StringBuilder(); builder.Append(rule.DateStart.ToString(""MM/dd/yyyy"")); builder.Append(""\t""); builder.Append(rule.DateEnd.ToString(""MM/dd/yyyy"")); builder.Append(""\t""); builder.Append(rule.DaylightDelta); builder.Append(""\t""); PrintTransition(rule.DaylightTransitionStart, builder); builder.Append(""\t""); PrintTransition(rule.DaylightTransitionEnd, builder); System.Console.WriteLine(builder); } } private static void PrintTransition(TimeZoneInfo.TransitionTime transition, StringBuilder builder) { builder.Append($""M{transition.Month}.w{transition.Week}.d{transition.Day} {transition.TimeOfDay.ToShortTimeString()}""); } } ```" +17118 area-System.Memory Do loop unrolling for slow span copyto (slow path) +17120 area-System.Runtime TimeZoneInfo.AdjustmentRule information is not correct on Unix "On Unix, we are trying to populate the ""DaylightTransitionStart"" and ""DaylightTransitionEnd"" values for the AdjustmentRules. However, this design is flawed and leads to incorrect data being reported by the API. See https://github.com/dotnet/corefx/issues/2465#issuecomment-127645308 and the whole issue for discussion on how the Windows-centric TimeZoneInfo.AdjustmentRule API was modified to fit the information that is available on Unix. We are trying to hydrate the DaylightTransition Start and End data here https://github.com/dotnet/coreclr/blob/c2b5d5a707e3bb037df847e17b4e55e19fd5bfa8/src/mscorlib/src/System/TimeZoneInfo.Unix.cs#L124-L158. However, this data is incorrect on Unix. Take the `Africa/Casablanca` time zone from 1940-1945: From our [tests](https://github.com/dotnet/corefx/blob/6451bed4d4a667d9c05a41c0843504d020d283ab/src/System.Runtime/tests/System/TimeZoneInfoTests.cs#L1710-L1712) ``` // Africa/Casablanca had DST from // 1940-02-25T00:00:00.0000000Z {+01:00:00 DST=True} // 1945-11-17T23:00:00.0000000Z { 00:00:00 DST=False} ``` Printing the AdjustmentRules from around that time: ``` Baseoffset: 00:00:00 DateStart DateEnd DaylightDelta DaylightTransitionStart DaylightTransitionEnd 11/17/1945 06/10/1950 00:00:00 M11.w1.d17 11:00 PM M6.w1.d10 11:59 PM 02/25/1940 11/17/1945 01:00:00 M2.w1.d25 1:00 AM M11.w1.d17 11:59 PM 11/18/1939 02/24/1940 00:00:00 M11.w1.d18 11:00 PM M2.w1.d24 11:59 PM 09/12/1939 11/18/1939 01:00:00 M9.w1.d12 1:00 AM M11.w1.d18 11:59 PM 10/26/1913 09/11/1939 00:00:00 M10.w1.d26 12:30 AM M9.w1.d11 11:59 PM ``` Specifically, look at this row: ``` DateStart DateEnd DaylightDelta DaylightTransitionStart DaylightTransitionEnd 02/25/1940 11/17/1945 01:00:00 M2.w1.d25 1:00 AM M11.w1.d17 11:59 PM ``` What this says is that for times in this time zone between `02/25/1940` and `11/17/1945`, Daylight Savings Time starts on the 25th day of February and ends on the 17th day of November of every year. So from Nov 17 to Feb 25 every year, the time zone should not be in daylight savings time, which is incorrect because the time zone was in DST all year round those 5 years. I don't think we should be populating these Daylight TransitionTime values at all when giving the AdjustmentRules to public consumers. Anyone who wants to consume this information is going to be broken trying to use it. This is just going to lead to incorrect information being displayed to their users. ### Code to print the above table ``` class Program { static void Main(string[] args) { TimeZoneInfo tz = TimeZoneInfo.FindSystemTimeZoneById(""Africa/Casablanca""); System.Console.WriteLine($""Baseoffset: {tz.BaseUtcOffset}""); StringBuilder builder = new StringBuilder(); builder.Append(""DateStart""); builder.Append(""\t""); builder.Append(""DateEnd""); builder.Append(""\t""); builder.Append(""\t""); builder.Append(""DaylightDelta""); builder.Append(""\t""); builder.Append(""DaylightTransitionStart""); builder.Append(""\t""); builder.Append(""DaylightTransitionEnd""); System.Console.WriteLine(builder); var rules = tz.GetAdjustmentRules(); DateTime startDate = new DateTime(1945, 12, 31); //DateTime startDate = DateTime.Now; foreach (var rule in rules.Where(r => r.DateStart < startDate).Reverse().Take(5)) { builder = new StringBuilder(); builder.Append(rule.DateStart.ToString(""MM/dd/yyyy"")); builder.Append(""\t""); builder.Append(rule.DateEnd.ToString(""MM/dd/yyyy"")); builder.Append(""\t""); builder.Append(rule.DaylightDelta); builder.Append(""\t""); PrintTransition(rule.DaylightTransitionStart, builder); builder.Append(""\t""); PrintTransition(rule.DaylightTransitionEnd, builder); System.Console.WriteLine(builder); } } private static void PrintTransition(TimeZoneInfo.TransitionTime transition, StringBuilder builder) { builder.Append($""M{transition.Month}.w{transition.Week}.d{transition.Day} {transition.TimeOfDay.ToShortTimeString()}""); } } ``` /cc @tarekgh @mj1856 " +17121 area-System.Net Rewrite System.Net.Security's FixedSizeReader.AsyncReadPacket as an async method Rewrite the FixedSizeReader.AsyncReadPacket as an async void method. It's still allocation-free if the delegated ReadAsync completes synchronously, but if it completes asynchronously, there's now less allocation (fewer and smaller objects); there's slightly less if a single read is required, but those same allocations are then reused across all reads, so if multiple reads are needed, there's a significant decrease. And the code is easier to read. Also changes FixedSizeReader to be a static class, avoiding several being allocations per SslStream. cc: @geoffkizer, @cipop, @davidsh, @Priya91 +17122 area-Infrastructure Enable multi queue for Linux /cc @MattGal +17125 area-System.Threading Add Thread.CurrentPrincipal, Thread.GetDomain, and Thread.GetDomainID for uapaot. +17126 area-System.Data SqlClient implementation and API is not complete in Core The following members are on types implemented in .NET Core. However these particular members are missing, although they are present on Desktop. The problem with this situation is - it defies user expectations that if a type X exists, code from other platforms that use X will work on .NET Core - it cannot be fixed without servicing -- it is not possible to supply a standalone package with the rest of the type definition No work is necessarily required here for 2.0. It's not part of NS2.0. I didn't look at usage data. I'm just flagging this so we're doing this consciously. --- **Updated lists to reflect current status (5/15):** ### Missing APIs ``` T:System.Data.SqlClient.OnChangeEventHandler T:System.Data.SqlClient.PoolBlockingPeriod T:System.Data.SqlClient.SqlAuthenticationMethod M:System.Data.SqlClient.SqlBulkCopyColumnMappingCollection.Clear M:System.Data.SqlClient.SqlBulkCopyColumnMappingCollection.RemoveAt(System.Int32) F:System.Data.SqlClient.SqlBulkCopyOptions.AllowEncryptedValueModifications M:System.Data.SqlClient.SqlClientFactory.System#IServiceProvider#GetService(System.Type) T:System.Data.SqlClient.SqlClientMetaDataCollectionNames T:System.Data.SqlClient.SqlColumnEncryptionCertificateStoreProvider T:System.Data.SqlClient.SqlColumnEncryptionCngProvider T:System.Data.SqlClient.SqlColumnEncryptionCspProvider T:System.Data.SqlClient.SqlColumnEncryptionKeyStoreProvider P:System.Data.SqlClient.SqlCommand.ColumnEncryptionSetting P:System.Data.SqlClient.SqlCommand.Notification P:System.Data.SqlClient.SqlCommand.NotificationAutoEnlist M:System.Data.SqlClient.SqlCommand.BeginExecuteNonQuery M:System.Data.SqlClient.SqlCommand.BeginExecuteNonQuery(System.AsyncCallback,System.Object) M:System.Data.SqlClient.SqlCommand.BeginExecuteReader M:System.Data.SqlClient.SqlCommand.BeginExecuteReader(System.AsyncCallback,System.Object) M:System.Data.SqlClient.SqlCommand.BeginExecuteReader(System.AsyncCallback,System.Object,System.Data.CommandBehavior) M:System.Data.SqlClient.SqlCommand.BeginExecuteReader(System.Data.CommandBehavior) M:System.Data.SqlClient.SqlCommand.BeginExecuteXmlReader M:System.Data.SqlClient.SqlCommand.BeginExecuteXmlReader(System.AsyncCallback,System.Object) M:System.Data.SqlClient.SqlCommand.EndExecuteNonQuery(System.IAsyncResult) M:System.Data.SqlClient.SqlCommand.EndExecuteReader(System.IAsyncResult) M:System.Data.SqlClient.SqlCommand.EndExecuteXmlReader(System.IAsyncResult) M:System.Data.SqlClient.SqlCommand.ResetCommandTimeout T:System.Data.SqlClient.SqlCommandBuilder T:System.Data.SqlClient.SqlCommandColumnEncryptionSetting M:System.Data.SqlClient.SqlConnection.#ctor(System.String,System.Data.SqlClient.SqlCredential) P:System.Data.SqlClient.SqlConnection.AccessToken P:System.Data.SqlClient.SqlConnection.ColumnEncryptionKeyCacheTtl P:System.Data.SqlClient.SqlConnection.ColumnEncryptionQueryMetadataCacheEnabled P:System.Data.SqlClient.SqlConnection.ColumnEncryptionTrustedMasterKeyPaths P:System.Data.SqlClient.SqlConnection.Credential M:System.Data.SqlClient.SqlConnection.ChangePassword(System.String,System.Data.SqlClient.SqlCredential,System.Security.SecureString) M:System.Data.SqlClient.SqlConnection.ChangePassword(System.String,System.String) M:System.Data.SqlClient.SqlConnection.EnlistDistributedTransaction(System.EnterpriseServices.ITransaction) M:System.Data.SqlClient.SqlConnection.RegisterColumnEncryptionKeyStoreProviders(System.Collections.Generic.IDictionary{System.String,System.Data.SqlClient.SqlColumnEncryptionKeyStoreProvider}) T:System.Data.SqlClient.SqlConnectionColumnEncryptionSetting P:System.Data.SqlClient.SqlConnectionStringBuilder.AsynchronousProcessing P:System.Data.SqlClient.SqlConnectionStringBuilder.Authentication P:System.Data.SqlClient.SqlConnectionStringBuilder.ColumnEncryptionSetting P:System.Data.SqlClient.SqlConnectionStringBuilder.ConnectionReset P:System.Data.SqlClient.SqlConnectionStringBuilder.ContextConnection P:System.Data.SqlClient.SqlConnectionStringBuilder.Enlist P:System.Data.SqlClient.SqlConnectionStringBuilder.NetworkLibrary P:System.Data.SqlClient.SqlConnectionStringBuilder.PoolBlockingPeriod P:System.Data.SqlClient.SqlConnectionStringBuilder.TransactionBinding P:System.Data.SqlClient.SqlConnectionStringBuilder.TransparentNetworkIPResolution T:System.Data.SqlClient.SqlCredential M:System.Data.SqlClient.SqlDataReader.IsCommandBehavior(System.Data.CommandBehavior) M:System.Data.SqlClient.SqlDataReader.System#Data#IDataRecord#GetData(System.Int32) T:System.Data.SqlClient.SQLDebugging T:System.Data.SqlClient.SqlDependency T:System.Data.SqlClient.SqlNotificationEventArgs T:System.Data.SqlClient.SqlNotificationInfo T:System.Data.SqlClient.SqlNotificationSource T:System.Data.SqlClient.SqlNotificationType M:System.Data.SqlClient.SqlParameter.#ctor(System.String,System.Data.SqlDbType,System.Int32,System.Data.ParameterDirection,System.Boolean,System.Byte,System.Byte,System.String,System.Data.DataRowVersion,System.Object) M:System.Data.SqlClient.SqlParameter.#ctor(System.String,System.Data.SqlDbType,System.Int32,System.Data.ParameterDirection,System.Byte,System.Byte,System.String,System.Data.DataRowVersion,System.Boolean,System.Object,System.String,System.String,System.String) P:System.Data.SqlClient.SqlParameter.ForceColumnEncryption P:System.Data.SqlClient.SqlParameter.UdtTypeName M:System.Data.SqlClient.SqlParameterCollection.Add(System.String,System.Object) M:System.Data.SqlClient.SqlParameterCollection.Add(System.String,System.Data.SqlDbType,System.Int32,System.String) ``` #### By Design missing * `T:System.Data.SqlClient.SqlProviderServices` - It is part of the EF provider model for old versions of EF that were part of .NET Framework. - see https://github.com/dotnet/corefx/issues/17126#issuecomment-301640792 ### Missing overrides ``` P:System.Data.SqlClient.SqlClientFactory.CanCreateDataSourceEnumerator M:System.Data.SqlClient.SqlClientFactory.CreateCommandBuilder M:System.Data.SqlClient.SqlClientFactory.CreateDataSourceEnumerator M:System.Data.SqlClient.SqlClientFactory.CreatePermission(System.Security.Permissions.PermissionState) M:System.Data.SqlClient.SqlClientPermission.Add(System.String,System.String,System.Data.KeyRestrictionBehavior) M:System.Data.SqlClient.SqlClientPermission.Copy M:System.Data.SqlClient.SqlClientPermissionAttribute.CreatePermission M:System.Data.SqlClient.SqlColumnEncryptionCertificateStoreProvider.DecryptColumnEncryptionKey(System.String,System.String,System.Byte[]) M:System.Data.SqlClient.SqlColumnEncryptionCertificateStoreProvider.EncryptColumnEncryptionKey(System.String,System.String,System.Byte[]) M:System.Data.SqlClient.SqlColumnEncryptionCngProvider.DecryptColumnEncryptionKey(System.String,System.String,System.Byte[]) M:System.Data.SqlClient.SqlColumnEncryptionCngProvider.EncryptColumnEncryptionKey(System.String,System.String,System.Byte[]) M:System.Data.SqlClient.SqlColumnEncryptionCspProvider.DecryptColumnEncryptionKey(System.String,System.String,System.Byte[]) M:System.Data.SqlClient.SqlColumnEncryptionCspProvider.EncryptColumnEncryptionKey(System.String,System.String,System.Byte[]) P:System.Data.SqlClient.SqlCommandBuilder.CatalogLocation P:System.Data.SqlClient.SqlCommandBuilder.CatalogSeparator P:System.Data.SqlClient.SqlCommandBuilder.QuotePrefix P:System.Data.SqlClient.SqlCommandBuilder.QuoteSuffix P:System.Data.SqlClient.SqlCommandBuilder.SchemaSeparator M:System.Data.SqlClient.SqlCommandBuilder.QuoteIdentifier(System.String) M:System.Data.SqlClient.SqlCommandBuilder.UnquoteIdentifier(System.String) M:System.Data.SqlClient.SqlConnection.GetSchema M:System.Data.SqlClient.SqlConnection.GetSchema(System.String) M:System.Data.SqlClient.SqlConnection.GetSchema(System.String,System.String[]) P:System.Data.SqlClient.SqlConnectionStringBuilder.IsFixedSize P:System.Data.SqlClient.SqlDataAdapter.UpdateBatchSize M:System.Data.SqlClient.SqlDataReader.Close M:System.Data.SqlClient.SqlDataReader.GetSchemaTable ``` **These were removed based on further investigation:** ``` M:System.Data.SqlClient.SqlConnection.EnlistTransaction(System.Transactions.Transaction) P:System.Data.SqlClient.SqlParameter.SourceVersion P:System.Data.SqlClient.SqlParameterCollection.IsFixedSize P:System.Data.SqlClient.SqlParameterCollection.IsReadOnly P:System.Data.SqlClient.SqlParameterCollection.IsSynchronized ``` **These were already fixed:** * `M:System.Data.SqlClient.SqlClientFactory.CreateDataAdapter` - https://github.com/dotnet/corefx/commit/88f562c80d8d78218ccc7b4be8b23ceab712a5f6 ---------- Original obsolete list:
``` MembersMustExist : Member 'Microsoft.SqlServer.Server.SqlMetaData..ctor(System.String, System.Data.SqlDbType, System.Type)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'Microsoft.SqlServer.Server.SqlMetaData..ctor(System.String, System.Data.SqlDbType, System.Type, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'Microsoft.SqlServer.Server.SqlMetaData..ctor(System.String, System.Data.SqlDbType, System.Type, System.String, System.Boolean, System.Boolean, System.Data.SqlClient.SortOrder, System.Int32)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'Microsoft.SqlServer.Server.SqlMetaData.DbType.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'Microsoft.SqlServer.Server.SqlMetaData.Type.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlBulkCopy.WriteToServer(System.Data.DataRow[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlBulkCopy.WriteToServer(System.Data.DataTable)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlBulkCopy.WriteToServer(System.Data.DataTable, System.Data.DataRowState)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlBulkCopy.WriteToServer(System.Data.IDataReader)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlBulkCopy.WriteToServerAsync(System.Data.DataRow[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlBulkCopy.WriteToServerAsync(System.Data.DataRow[], System.Threading.CancellationToken)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlBulkCopy.WriteToServerAsync(System.Data.DataTable)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlBulkCopy.WriteToServerAsync(System.Data.DataTable, System.Data.DataRowState)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlBulkCopy.WriteToServerAsync(System.Data.DataTable, System.Data.DataRowState, System.Threading.CancellationToken)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlBulkCopy.WriteToServerAsync(System.Data.DataTable, System.Threading.CancellationToken)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlBulkCopy.WriteToServerAsync(System.Data.IDataReader)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlBulkCopy.WriteToServerAsync(System.Data.IDataReader, System.Threading.CancellationToken)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlBulkCopyOptions System.Data.SqlClient.SqlBulkCopyOptions.AllowEncryptedValueModifications' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlClientFactory.CreatePermission(System.Security.Permissions.PermissionState)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand..ctor(System.String, System.Data.SqlClient.SqlConnection, System.Data.SqlClient.SqlTransaction, System.Data.SqlClient.SqlCommandColumnEncryptionSetting)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.BeginExecuteNonQuery()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.BeginExecuteNonQuery(System.AsyncCallback, System.Object)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.BeginExecuteReader()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.BeginExecuteReader(System.AsyncCallback, System.Object)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.BeginExecuteReader(System.AsyncCallback, System.Object, System.Data.CommandBehavior)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.BeginExecuteReader(System.Data.CommandBehavior)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.BeginExecuteXmlReader()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.BeginExecuteXmlReader(System.AsyncCallback, System.Object)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.Clone()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.ColumnEncryptionSetting.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.EndExecuteNonQuery(System.IAsyncResult)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.EndExecuteReader(System.IAsyncResult)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.EndExecuteXmlReader(System.IAsyncResult)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.Notification.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.Notification.set(System.Data.Sql.SqlNotificationRequest)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.NotificationAutoEnlist.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.NotificationAutoEnlist.set(System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlCommand.ResetCommandTimeout()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnection..ctor(System.String, System.Data.SqlClient.SqlCredential)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnection.AccessToken.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnection.AccessToken.set(System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnection.ChangePassword(System.String, System.Data.SqlClient.SqlCredential, System.Security.SecureString)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnection.ChangePassword(System.String, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnection.ColumnEncryptionTrustedMasterKeyPaths.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnection.Credential.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnection.Credential.set(System.Data.SqlClient.SqlCredential)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnection.EnlistDistributedTransaction(System.EnterpriseServices.ITransaction)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnection.RegisterColumnEncryptionKeyStoreProviders(System.Collections.Generic.IDictionary)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.AsynchronousProcessing.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.AsynchronousProcessing.set(System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.Authentication.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.Authentication.set(System.Data.SqlClient.SqlAuthenticationMethod)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.ColumnEncryptionSetting.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.ColumnEncryptionSetting.set(System.Data.SqlClient.SqlConnectionColumnEncryptionSetting)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.ConnectionReset.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.ConnectionReset.set(System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.ContextConnection.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.ContextConnection.set(System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.Enlist.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.Enlist.set(System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.NetworkLibrary.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.NetworkLibrary.set(System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.TransactionBinding.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.TransactionBinding.set(System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.TransparentNetworkIPResolution.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlConnectionStringBuilder.TransparentNetworkIPResolution.set(System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlDataReader.IsCommandBehavior(System.Data.CommandBehavior)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlParameter..ctor(System.String, System.Data.SqlDbType, System.Int32, System.Data.ParameterDirection, System.Boolean, System.Byte, System.Byte, System.String, System.Data.DataRowVersion, System.Object)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlParameter..ctor(System.String, System.Data.SqlDbType, System.Int32, System.Data.ParameterDirection, System.Byte, System.Byte, System.String, System.Data.DataRowVersion, System.Boolean, System.Object, System.String, System.String, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlParameter.ForceColumnEncryption.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlParameter.ForceColumnEncryption.set(System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlParameter.UdtTypeName.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlParameter.UdtTypeName.set(System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlParameterCollection.Add(System.String, System.Data.SqlDbType, System.Int32, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Data.SqlClient.SqlParameterCollection.Add(System.String, System.Object)' does not exist in the implementation but it does exist in the contract. ```
from https://github.com/dotnet/corefx/blob/master/src/shims/ApiCompatBaseline.netcoreapp.netfx461.txt +17127 area-Infrastructure AVs under code coverage #15839 - 2017/2/5 - System.Net.Http.Functional.Tests #16371 - 2017/2/21 - System.Net.Mail.Functional.Tests #16348 - 2017/2/21 - System.Xml.XmlDocument.Tests ## #15839 - 2017/2/5 - System.Net.Http.Functional.Tests https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows_prtest/17/consoleText ``` Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at Internal.Cryptography.Pal.ChainPal.MapRevocationFlags(X509RevocationMode revocationMode, X509RevocationFlag revocationFlag) at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) in D:\j\workspace\code_coverage---d5838fef\src\System.Security.Cryptography.X509Certificates\src\Internal\Cryptography\Pal.Windows\ChainPal.BuildChain.cs:line 71 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) in D:\j\workspace\code_coverage---d5838fef\src\System.Security.Cryptography.X509Certificates\src\System\Security\Cryptography\X509Certificates\X509Chain.cs:line 118 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) in D:\j\workspace\code_coverage---d5838fef\src\System.Security.Cryptography.X509Certificates\src\System\Security\Cryptography\X509Certificates\X509Chain.cs:line 105 at System.Net.Http.WinHttpCertificateHelper.BuildChain(X509Certificate2 certificate, String hostName, Boolean checkCertificateRevocationList, X509Chain& chain, SslPolicyErrors& sslPolicyErrors) in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpCertificateHelper.cs:line 31 at System.Net.Http.WinHttpRequestCallback.OnRequestSendingRequest(WinHttpRequestState state) in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs:line 272 at System.Net.Http.WinHttpRequestCallback.RequestCallback(IntPtr handle, WinHttpRequestState state, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs:line 94 at System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs:line 47 ``` ## #16371 - 2017/2/21 - System.Net.Mail.Functional.Tests https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows_prtest/31/consoleFull#-61246470379fe3b83-f408-404c-b9e7-9207d232e5fc ``` 08:26:44 Unhandled Exception: 08:26:44 Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. 08:26:44 at System.Net.DebugThreadTracking.SetThreadKind(ThreadKinds kind) 08:26:44 at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Sockets\src\System\Net\Sockets\BaseOverlappedAsyncResult.Windows.cs:line 69 08:26:44 at System.Threading.ThreadPoolBoundHandleOverlapped.CompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 08:26:44 at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 08:26:44 System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. 08:26:44 at System.Net.Sockets.NetworkStream..ctor(Socket socket, FileAccess access, Boolean ownsSocket) 08:26:44 at System.Net.Sockets.NetworkStream..ctor(Socket socket, Boolean ownsSocket) in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Sockets\src\System\Net\Sockets\NetworkStream.cs:line 42 08:26:44 at System.Net.Sockets.TcpClient.GetStream() in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Sockets\src\System\Net\Sockets\TCPClient.cs:line 149 08:26:44 at System.Net.Mail.Tests.SmtpServer.Run() in D:\j\workspace\code_coverage---d5838fef\src\System.Net.Mail\tests\Functional\SmtpServer.cs:line 60 08:26:44 at System.Threading.Thread.ThreadMain_ThreadStart() in D:\j\workspace\code_coverage---d5838fef\src\System.Threading.Thread\src\System\Threading\Thread.cs:line 103 08:26:44 at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 08:26:44 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 08:26:44 at System.Threading.ThreadHelper.ThreadStart() ``` ## #16348 - 2017/2/21 - System.Xml.XmlDocument.Tests https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/107/consoleText ``` Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at System.Xml.XmlTextReaderImpl.ElementNamespaceLookup() in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Core\XmlTextReaderImpl.cs:line 5051 at System.Xml.XmlTextReaderImpl.ParseElement() in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Core\XmlTextReaderImpl.cs:line 4500 at System.Xml.XmlTextReaderImpl.ParseDocumentContent() in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Core\XmlTextReaderImpl.cs:line 4036 at System.Xml.XmlTextReaderImpl.Read() in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Core\XmlTextReaderImpl.cs:line 1202 at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Dom\XmlLoader.cs:line 50 at System.Xml.XmlDocument.Load(XmlReader reader) in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Dom\XmlDocument.cs:line 1261 at System.Xml.XmlDocument.LoadXml(String xml) in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\src\System\Xml\Dom\XmlDocument.cs:line 1279 at System.Xml.Tests.NamespaceURITests.AllNodesForEmptyString() in D:\j\workspace\code_coverage---b14a30e5\src\System.Private.Xml\tests\XmlDocument\XmlNodeTests\NamespaceURITests.cs:line 19 --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 147 at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 224 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\ExecutionTimer.cs:line 48 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__0() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 209 at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.core\Sdk\ExceptionAggregator.cs:line 90 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 208 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 173 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.b__45_0() at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.core\Sdk\ExceptionAggregator.cs:line 107 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) at Xunit.Sdk.TestInvoker`1.RunAsync() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestInvoker.cs:line 156 at Xunit.Sdk.XunitTestRunner.InvokeTestMethodAsync(ExceptionAggregator aggregator) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestRunner.cs:line 84 at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestRunner.cs:line 67 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) at Xunit.Sdk.TestRunner`1.<>c__DisplayClass43_0.b__0() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestRunner.cs:line 149 at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.core\Sdk\ExceptionAggregator.cs:line 107 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) at Xunit.Sdk.TestRunner`1.d__43.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestRunner.cs:line 149 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestRunner`1.RunAsync() at Xunit.Sdk.XunitTestCaseRunner.RunTestAsync() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestCaseRunner.cs:line 106 at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestCaseRunner.cs:line 82 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCaseRunner`1.RunAsync() at Xunit.Sdk.XunitTestCase.RunAsync(IMessageSink diagnosticMessageSink, IMessageBus messageBus, Object[] constructorArguments, ExceptionAggregator aggregator, CancellationTokenSource cancellationTokenSource) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\XunitTestCase.cs:line 106 at Xunit.Sdk.XunitTestMethodRunner.RunTestCaseAsync(IXunitTestCase testCase) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestMethodRunner.cs:line 45 at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestMethodRunner.cs:line 136 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestMethodRunner.cs:line 106 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestMethodRunner`1.RunAsync() at Xunit.Sdk.XunitTestClassRunner.RunTestMethodAsync(ITestMethod testMethod, IReflectionMethodInfo method, IEnumerable`1 testCases, Object[] constructorArguments) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestClassRunner.cs:line 152 at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestClassRunner.cs:line 205 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestClassRunner.cs:line 163 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestClassRunner`1.RunAsync() at Xunit.Sdk.XunitTestCollectionRunner.RunTestClassAsync(ITestClass testClass, IReflectionTypeInfo class, IEnumerable`1 testCases) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestCollectionRunner.cs:line 124 at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestCollectionRunner.cs:line 130 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\TestCollectionRunner.cs:line 101 at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCollectionRunner`1.RunAsync() at Xunit.Sdk.XunitTestAssemblyRunner.RunTestCollectionAsync(IMessageBus messageBus, ITestCollection testCollection, IEnumerable`1 testCases, CancellationTokenSource cancellationTokenSource) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestAssemblyRunner.cs:line 203 at Xunit.Sdk.XunitTestAssemblyRunner.<>c__DisplayClass14_2.b__3() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Frameworks\Runners\XunitTestAssemblyRunner.cs:line 179 at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntry() at System.Threading.Tasks.SynchronizationContextTaskScheduler.<>c.<.cctor>b__8_0(Object s) at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\MaxConcurrencySyncContext.cs:line 107 at Xunit.Sdk.MaxConcurrencySyncContext.<>c__DisplayClass11_0.b__0(Object _) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\MaxConcurrencySyncContext.cs:line 96 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at lambda_method(Closure , Object , Object ) at Xunit.Sdk.ExecutionContextHelper.Run(Object context, Action`1 action) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\Utility\ExecutionContextHelper.cs:line 111 at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.execution\Sdk\MaxConcurrencySyncContext.cs:line 89 at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) in C:\BuildAgent\work\cb37e9acf085d108\src\common\XunitWorkerThread.cs:line 38 at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntryUnsafe() at System.Threading.Tasks.ThreadPoolTaskScheduler.<>c.<.cctor>b__10_0(Object s) at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart(Object obj) ``` +17131 area-Infrastructure Ensure consistent usage of Roslyn compilers Right now we have a custom targets and task that allows us to pass in the host process via OverrideToolHost (https://github.com/dotnet/corefx/blob/977f6e021235b8ff5bab8baf4bf53d03af4706f8/Tools-Override/Build.Common.props#L40) which is inconsistent with the shipping task library. This causes some issues like https://github.com/dotnet/coreclr/issues/10056 and also requires us to maintain a private fork which isn't ideal. That hack was a workaround for https://github.com/Microsoft/msbuild/issues/720 (replaced with https://github.com/Microsoft/msbuild/issues/1669) but we should work around this in a different way. Mostly likely similar to how CLI did it with a wrapper script https://github.com/dotnet/cli/blob/rel/1.0.0/src/dotnet/commands/dotnet-msbuild/MSBuildForwardingApp.cs#L109-L113. On top of cleaning up this we should remove a lot of our dead properties like UseRoslynCompiler (https://github.com/dotnet/corefx/blob/977f6e021235b8ff5bab8baf4bf53d03af4706f8/Tools-Override/Build.Common.props#L44) and move UseSharedCompilation (https://github.com/dotnet/corefx/blob/977f6e021235b8ff5bab8baf4bf53d03af4706f8/Tools-Override/Build.Common.props#L45) into https://github.com/dotnet/corefx/blob/0eb6859a29501722475dfec484f80c43de0c70e0/Tools-Override/Roslyn.Common.props. We should also start using CSharpCoreTargetsPath like Rolsyn itself does (https://github.com/dotnet/roslyn/blob/master/build/Targets/Settings.props#L121), instead of computing the RoslynPropsFile directly and importing it at (https://github.com/dotnet/corefx/blob/b1865ea0847a7a86baefe8378b772ecf0b785681/dir.props#L278) . This should better set us up to consume the custom compiler without a bunch of customizations we have today. cc @chcosta @joperezr +17132 area-System.Diagnostics Fix secannotate errors introduced by #17076 in DiagnosticSource "On the target that do not declare AllowPartiallyTrustedCallers (all except net46 and netfx), secannotate shows a critical error ```c# 'System.Diagnostics.Activity.GetRandomNumber()', a security critical member, is marked with a safe-critical annotation. This annotation should be removed. ``` This change uses `SecuritySafeCritical` attribute only on net46 and netfx." +17133 area-System.Security CAS related stubs missing some members breaking desktop compat These should be trivially added (with null impl/return default(T)) to improve compatibility. @Petermarcu noted this. ``` MembersMustExist : Member 'System.Security.CodeAccessPermission.RevertAll()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.CodeAccessPermission.RevertAssert()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.CodeAccessPermission.RevertDeny()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.CodeAccessPermission.RevertPermitOnly()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.HostSecurityManager.GenerateAppDomainEvidence(System.Type)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.HostSecurityManager.GenerateAssemblyEvidence(System.Type, System.Reflection.Assembly)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.HostSecurityManager.GetHostSuppliedAppDomainEvidenceTypes()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.HostSecurityManager.GetHostSuppliedAssemblyEvidenceTypes(System.Reflection.Assembly)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Permissions.FileIOPermission..ctor(System.Security.Permissions.FileIOPermissionAccess, System.Security.AccessControl.AccessControlActions, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Permissions.FileIOPermission..ctor(System.Security.Permissions.FileIOPermissionAccess, System.Security.AccessControl.AccessControlActions, System.String[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Permissions.RegistryPermission.AddPathList(System.Security.Permissions.RegistryPermissionAccess, System.Security.AccessControl.AccessControlActions, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.PermissionSet.AddPermissionImpl(System.Security.IPermission)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.PermissionSet.GetEnumeratorImpl()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.PermissionSet.GetPermissionImpl(System.Type)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.PermissionSet.RemovePermissionImpl(System.Type)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.PermissionSet.SetPermissionImpl(System.Security.IPermission)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.ApplicationTrust..ctor(System.ApplicationIdentity)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.ApplicationTrust.ApplicationIdentity.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.ApplicationTrust.ApplicationIdentity.set(System.ApplicationIdentity)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.ApplicationTrustCollection.Find(System.ApplicationIdentity, System.Security.Policy.ApplicationVersionMatch)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.ApplicationTrustCollection.Remove(System.ApplicationIdentity, System.Security.Policy.ApplicationVersionMatch)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.Hash.CreateSHA256(System.Byte[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.Hash.SHA256.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.TrustManagerContext.PreviousApplicationIdentity.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.TrustManagerContext.PreviousApplicationIdentity.set(System.ApplicationIdentity)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.Evidence..ctor(System.Security.Policy.EvidenceBase[], System.Security.Policy.EvidenceBase[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.Evidence.AddAssemblyEvidence(T)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.Evidence.AddHostEvidence(T)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.Evidence.GetAssemblyEvidence()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.Evidence.GetHostEvidence()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.SecurityManager.CurrentThreadRequiresSecurityContextCapture()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.SecurityManager.GetStandardSandbox(System.Security.Policy.Evidence)' does not exist in the implementation but it does exist in the contract. ``` +17134 area-System.Security Evidence is missing 5 stubs These should be trivially added (and do nothing) to improve compatibility. ``` MembersMustExist : Member 'System.Security.Policy.Evidence..ctor(System.Security.Policy.EvidenceBase[], System.Security.Policy.EvidenceBase[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.Evidence.AddAssemblyEvidence(T)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.Evidence.AddHostEvidence(T)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.Evidence.GetAssemblyEvidence()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Policy.Evidence.GetHostEvidence()' does not exist in the implementation but it does exist in the contract. ``` +17135 area-System.Runtime Helper class for dealing with native shared libraries and function pointers "# Approved Proposal From https://github.com/dotnet/corefx/issues/17135#issuecomment-365364216 ```C# public sealed class NativeLibrary { public static bool TryLoad(string name, Assembly caller, DllImportSearchPaths paths, out NativeLibrary result); public IntPtr Handle { get; } public bool TryGetDelegate(string name, out TDelegate result) where TDelegate : class; public bool TryGetDelegate(string name, bool exactSpelling, out TDelegate result) where TDelegate : class; public bool TryGetSymbolAddress(string symbolName, out IntPtr result); } ``` # Original proposal Note: Proposal updated based on discussion: https://github.com/dotnet/corefx/issues/17135#issuecomment-353571556 ## Background Many popular C-callable shared libraries exist which do not have a consistent name across platforms. Examples include: * SDL2 * OpenAL * Vulkan * Many more (the above are just ones I've used personally) CoreCLR does not support any notion of ""remappable"" PInvokes, a la DllImport in Mono. The name of the shared library must be encoded directly in the `DllImport` attribute, which makes it impossible to create a single wrapper assembly which works on many platforms. This imposes an unnecessary development and deployment burden on library developers who could otherwise ship a single, simple DLL. Many third-party libraries which rely on PInvoke's only work on Mono platforms because of the DllMap feature. These libraries do not work on .NET Core at all, even if they are otherwise completely compatible with its profile. The alternative to using `[DllImport]` is to write logic which manually opens the shared library, discovers function pointers, and converts them to managed delegates. In a sense, this very similar to what we are doing with our ""Portable Linux"" version of the runtime and native shims. However, this code can be complicated, tedious, and error-prone. This proposal is for a small helper library, with optional cooperation by the runtime, to make this scenarion easier. ## Proposed API ```C# namespace System.Runtime.InteropServices { // Exposes functionality for loading native shared libraries and function pointers. public class NativeLibrary : IDisposable { // The default search paths public static IEnumerable NativeLibrarySearchDirectories { get; } // The operating system handle of the loaded library. public IntPtr Handle { get; } // Constructs a new NativeLibrary using the platform's default library loader. public NativeLibrary(string name); public NativeLibrary(string name, DllImportSearchPath paths); public static NativeLibrary Open(string name, DllImportSearchPath paths, bool throwOnError); // Loads a native function pointer by name. public IntPtr LoadFunction(string name); // Loads a function whose signature matches the given delegate type's signature. // This is roughly equivalent to calling LoadFunction + Marshal.GetDelegateForFunctionPointer public T LoadDelegate(string name); // Lookup a symbol (not a function) from the specified dynamic library public IntPtr SymbolAddress(string name); // Frees the native library. Function pointers retrieved from this library will be void. public void Dispose(); } } ``` ## Usage ```C# public static class Sdl2 { private static NativeLibrary s_sdl2NativeLib = new NativeLibrary(GetSdl2LibraryName()); // Determine library name at runtime. This could be influenced by a DllMap-like policy if desired. private static string GetSdl2LibraryName(); private delegate IntPtr SDL_CreateWindow_d(string title, int x, int y, int w, int h, int flags); private static SDL_CreateWindow_d SDL_CreateWindow_ptr = s_sdl2NativeLib.LoadFunctionPointer(""SDL_CreateWindow""); public static IntPtr CreateWindow(string title, int x, int y, int w, int h, uint flags) => SDL_CreateWindow_ptr(title, x, y, w, h, flags); } public static void Main() { IntPtr window = Sdl2.CreateWindow(""WindowTitle"", 100, 100, 960, 540, 0); } ``` ## Open Design Questions ### Probing Path Logic CoreCLR applies particular probing logic when discovering shared libraries listed in a `DllImport`. Ideally, calling `new NativeLibrary(""lib"")` would follow the same probing logic as `[DllImport(""lib"")], so that PInvoke's can be easily converted. This could potentially be solved with some internal or public runtime helper function exposed from System.Private.CoreLib. Alternatively, the constructor for `NativeLibrary` could include another parameter which controlled probing logic, allowing someone to plug their own logic in. ### Generic delegate types The simplest way to convert from a native function pointer to a clean managed delegate is through the use of `Marshal.GetDelegateForFunctionPointer(IntPtr)`. Unfortunately, this cannot be used with generic delegates, e.g. `Func` in the above example. Given that many native function signatures include pointer types, which cannot be used as generic type arguments, other than as `IntPtr`, this is not a major problem. However, many cases would benefit from being able to use `Action` and `Func` types in the `LoadFunction` method. We could probably allow this using Reflection.Emit, but it would most likely be ugly, complicated, and slower than if custom delegate types were used. If `Marshal.GetDelegateForFunctionPointer(IntPtr)` accepted generic delegate types, this feature would greatly benefit. ### Disposability and lifetime tracking The constructor of `NativeLibrary` involves opening an operating system handle to a native shared library, via `LoadLibrary`, `dlopen`, etc. I have proposed that `NativeLibrary` be disposable, which would involve calling `FreeLibrary`, `dlclose`, etc. Is this desirable or useful? A related issue is how the runtime currently tracks and manages these handles. Should handles opened by `NativeLibrary` be coordinated and tracked in the same way that other handles (via PInvoke, etc.) are? ## Prototype I have a prototype version of this library implemented here: https://github.com/mellinoe/nativelibraryloader, and I have successfully used the pattern described here in a few projects. @yizhang82 @janvorli @danmosemsft @conniey " +17136 area-Meta When method is not impl, we should not throw NotSupportedException() We standardized on throwing PlatformNotSupportedException() even if we don't support the API on _any_ platform. We're throwing NSE in a number of places that we added in 2.0, and according to the above principle we should not. Random example https://github.com/dotnet/corefx/blob/master/src/System.Security.Permissions/src/System/Security/SecurityContext.cs#L12 I don't see this as a high priority to fix for 2.0 generally and it would be a breaking change later so we may want to just close this. @stephentoub since he added the useages above just in case his understanding was different. @weshaggard +17138 area-System.Net Test failure: System.Net.Tests.HttpWebRequestHeaderTest/HttpWebRequest_Timeout_Throws Opened on behalf of @Jiayili1 The test `System.Net.Tests.HttpWebRequestHeaderTest/HttpWebRequest_Timeout_Throws` has failed. Assert.InRange() Failure\r Range: (1 - 10000)\r Actual: 11094 Stack Trace: at System.Net.Tests.HttpWebRequestHeaderTest.HttpWebRequest_Timeout_Throws() Build : Master - 20170315.01 (Core Tests) Failing configurations: - Windows.7.Amd64 - x86-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170315.01/workItem/System.Net.Requests.Tests/analysis/xunit/System.Net.Tests.HttpWebRequestHeaderTest~2FHttpWebRequest_Timeout_Throws +17139 area-System.Data Integrated Auth On SqlClient is completely broken The integrated auth in SqlClient is completely broken. Opening this issue to track the progress. +17141 area-System.Net Instrument HttpClientHandler on netfx with DiagnosticSource/Activity This changes enables instrumentation for outgoing Http requests with DiagnosticSource and Activity API on netfx. It was previously introduced for .net core in #16393. /cc @vancem +17143 area-System.Memory Vectorize SpanHelpers.IndexOf for byte /cc @jkotas @KrzysztofCwalina @davidfowl @ahsonkhan +17144 area-System.Runtime Missing AllowPartiallyTrustedCallers on ValueTuple "Relates to https://github.com/dotnet/roslyn/issues/17783 The attribute is missing on both the `netstandard1.0` and `portable-net40+sl4+win8+wp8` targets. ```C# // \\Mac\Home\Documents\Visual Studio 2017\Projects\DiscardClassification\DiscardClassification\bin\Debug\System.ValueTuple.dll // System.ValueTuple, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 // Global type: // Architecture: AnyCPU (64-bit preferred) // Runtime: .NET 4.0 using System; using System.Diagnostics; using System.Reflection; using System.Resources; using System.Runtime.CompilerServices; [assembly: AssemblyVersion(""4.0.1.0"")] [assembly: CLSCompliant(true)] [assembly: Debuggable] [assembly: AssemblyCompany(""Microsoft Corporation"")] [assembly: AssemblyCopyright(""© Microsoft Corporation. All rights reserved."")] [assembly: AssemblyDefaultAlias(""System.ValueTuple"")] [assembly: AssemblyDescription(""System.ValueTuple"")] [assembly: AssemblyFileVersion(""4.6.24705.01"")] [assembly: AssemblyInformationalVersion(""4.6.24705.01. Commit Hash: 4d1af962ca0fede10beb01d197367c2f90e92c97"")] [assembly: AssemblyMetadata("".NETFrameworkAssembly"", """")] [assembly: AssemblyMetadata(""Serviceable"", ""True"")] [assembly: AssemblyProduct(""Microsoft® .NET Framework"")] [assembly: AssemblyTitle(""System.ValueTuple"")] [assembly: NeutralResourcesLanguage(""en-US"")] [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] ```" +17145 area-System.Net Added HttpStatusCode.TooManyRequests (429) This statuscode is often returned when quotas or throttling limits are being applied to an API. This is often done using an API platform such as Azure API Management or Nginx. Since API's are gaining popularity and more companies are introducing these limits, this statuscode will appear more often in real live scenarios and therefore deserves a representation in this enum. +17147 area-System.Runtime Add an (U)Int128 type "While I know it does exist BigInteger sometimes it would be needed to have a type that is explicit 128 bit and nothing more probably it would be more efficient too (at least in a 64 bit machine at it could be represented as a couple of longs). An Int128 is the ""natural"" type of GUID, IP6 addresses and more at low level but nevertheless true x86 instruction CPUID returns 4 integers (in 4 registers) that need to be ""concatenated"" to get the real value, the real ""intent"" was to return an Int128. I have doubt if an ""alias"" could exist if a long is an abbreviation of ""longword"" and Int128 could be octa as abbreviation of ""octaword""? The literal at that point could be ""O"" or ""o""..." +17149 area-System.Net Add value to HttpStatusCode enum: TooManyRequests (=HTTP 429) This statuscode is often returned when quotas or throttling limits are being applied to an API. This is often done using an API platform such as Azure API Management or Nginx. Since API's are gaining popularity and more companies are introducing these limits, this statuscode will appear more often in real live scenarios and therefore deserves a representation in this enum. See the commit on my fork (1 file change): https://github.com/kwaazaar/corefx/commit/f52cd49a696b7c39bc209b09f3058815fd9396ea +17153 area-System.Runtime Can't find ways for custom marshaling I have created new .NET Core console app in VS 2017 (targeting .NETCoreApp 1.1) and I want to use custom marshaling in my code, but I stuck with 2 issues: 1. There is no UnmanagedType.CustomMarshaler (== 44) enum member anymore 2. There is no ICustomMarshaler anymore (I guess since https://github.com/dotnet/corefx/pull/15769) So, there is a question: was custom marshaling removed from .NET Core or I'm just missing something? +17154 area-System.Net ReceiveMessageFromV6BoundToSpecificV4_NotReceived failed in CI on Ubuntu https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_release_prtest/4644/consoleText ``` System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFromV6BoundToSpecificV4_NotReceived [FAIL] Assert.Throws() Failure Expected: typeof(System.Net.Sockets.SocketException) Actual: typeof(Xunit.Sdk.EqualException): Assert.Equal() Failure Expected: ::1 Actual: ::ffff:127.0.0.1 Stack Trace: Starting: System.Threading.Timer.Tests Using as the test runtime folder. Running tests... Start time: 13:43:32 Commands: source Dumpling.sh /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_release_prtest/bin/testhost/netcoreapp-Linux-Release-x64//dotnet xunit.console.netcore.exe System.Runtime.InteropServices.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapptests -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests CollectDumps 0 System.Runtime.InteropServices.Tests /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_release_prtest/bin/AnyOS.AnyCPU.Release/System.Runtime.InteropServices.Tests/netcoreapp /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_release_prtest/src/System.Runtime.InteropServices/tests executing ulimit -c unlimited xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Runtime.InteropServices.Tests /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_release_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(2086,0): at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFrom_Helper(IPAddress listenOn, IPAddress connectTo, Boolean expectedToTimeout) ``` +17156 area-System.Collections Add netfx ParamName values in SortedListTests When doing `Array.CopyTo` and the destination array is multidimensional it throws an `ArgumentException` in desktop we don't assign a `ParamName` so it is null. Changed to use in those cases `AssertExtensions` that accept both, Core and desktop expected `ParamName` and with the `RuntimeInformation` if it is running in netfx does the `Assert` against the desktop expected `ParamName` if not uses the Core one. This tests where failing in netfx, this will fix them. cc: @tarekgh @danmosemsft +17157 area-Infrastructure Ensure quotes are preserved in Helix submission On Linux the quotes get dropped, which causes problems with the comma +17158 area-System.Net Implement Socket.DontFragment on Unix Contributes to https://github.com/dotnet/corefx/issues/9350 Fixes https://github.com/dotnet/corefx/issues/9652 cc: @mellinoe, @geoffkizer, @Priya91 +17159 area-System.Collections System collections specialized add netfx ParamName When doing Array.CopyTo and the destination array is multidimensional it throws an ArgumentException in desktop we don't assign a ParamName so it is null. This fixes failing tests in `System.Collections.Specialized` in netfx. cc: @tarekgh @danmosemsft +17160 area-Serialization XmlSerializer not building correctly for UAPAOT Here's the call stack I'm seeing, I don't think this can work in this configuration: System.Xml.Serialization.TempAssembly.GenerateRefEmitAssembly($XmlMapping[] xmlMappings, Type[] types, String defaultNamespace) System.Xml.Serialization.TempAssembly..ctor($XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location) System.Xml.Serialization.XmlSerializer.GenerateTempAssembly($XmlMapping xmlMapping, Type type, String defaultNamespace, String location) System.Xml.Serialization.XmlSerializer.GenerateTempAssembly($XmlMapping xmlMapping, Type type, String defaultNamespace) System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace) +17161 area-Infrastructure Another attempt at fixing the quoting +17163 area-System.Security Some members of ECDsaCng are missing from Core The following members are on types implemented in .NET Core. However on desktop they have more members. The members below are missing from Core. I believe that's because the types are included in NS, and the NS definitions don't include them because they're not in Xamarin (?) even though at least some of them they've been in .NET Desktop for a while. The problem with this situation is - it defies user expectations that if a type X exists, code from other platforms that use X will work on .NET Core: instead they have to reason about individual members on X - in some cases it cannot be fixed without servicing -- for instance methods we could supply a package with extension methods, but it would not be binary-compatible as different type identity We are considering [removing these types from NS2.0](https://github.com/dotnet/standard/issues/235) but that should not be relevant. I didn't look at usage data. Any that are not be technically possible on Core in ideally would exist but throw PlatformNotSupportedException. Even if we don't have time to implement them, it's potentially valuable to do that (allows compile to succeed, for a runtime path that may not be followed). ``` MembersMustExist : Member 'System.Security.Cryptography.ECDsaCng.FromXmlString(System.String, System.Security.Cryptography.ECKeyXmlFormat)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsaCng.HashAlgorithm.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsaCng.HashAlgorithm.set(System.Security.Cryptography.CngAlgorithm)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsaCng.SignData(System.Byte[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsaCng.SignData(System.Byte[], System.Int32, System.Int32)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsaCng.SignData(System.IO.Stream)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsaCng.ToXmlString(System.Security.Cryptography.ECKeyXmlFormat)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsaCng.VerifyData(System.Byte[], System.Byte[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsaCng.VerifyData(System.Byte[], System.Int32, System.Int32, System.Byte[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.ECDsaCng.VerifyData(System.IO.Stream, System.Byte[])' does not exist in the implementation but it does exist in the contract ``` I've not included those below that are clearly dependent on ACL's. We made the decision to omit those to avoid an undesired reference to ACLs from a NS library. If this isn't NS we could possibly reconsider that. ``` MembersMustExist : Member 'System.Security.Cryptography.CspKeyContainerInfo.CryptoKeySecurity.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.CspParameters..ctor(System.Int32, System.String, System.String, System.Security.AccessControl.CryptoKeySecurity, System.IntPtr)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.CspParameters..ctor(System.Int32, System.String, System.String, System.Security.AccessControl.CryptoKeySecurity, System.Security.SecureString)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.CspParameters.CryptoKeySecurity.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Cryptography.CspParameters.CryptoKeySecurity.set(System.Security.AccessControl.CryptoKeySecurity)' does not exist in the implementation but it does exist in the contract ``` +17164 area-System.Security Some System.Security.Principal types are missing members present in Desktop The following members are on types implemented in .NET Core. However on desktop in 4.5+ they have more members. The members below are missing from Core. The problem with this situation is - it defies user expectations that if a type X exists, code from other platforms that use X will work on .NET Core: instead they have to reason about individual members on X - in some cases it cannot be fixed without servicing -- for instance methods we could supply a package with extension methods, but it would not be binary-compatible as different type identity I didn't look at usage data. Any that are not be technically possible on Core in ideally would exist but throw PlatformNotSupportedException. Even if we don't have time to implement them, it's potentially valuable to do that (allows compile to succeed, for a runtime path that may not be followed). This is not a NS2.0 issue. The types are not in NS2.0 ``` MembersMustExist : Member 'System.Security.Principal.IdentityReferenceCollection.IsReadOnly.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity..ctor(System.IntPtr, System.String, System.Security.Principal.WindowsAccountType)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity..ctor(System.IntPtr, System.String, System.Security.Principal.WindowsAccountType, System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity..ctor(System.Security.Principal.WindowsIdentity)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity..ctor(System.String, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity.DeviceClaims.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity.Impersonate()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity.Impersonate(System.IntPtr)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity.UserClaims.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsPrincipal.DeviceClaims.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsPrincipal.UserClaims.get()' does not exist in the implementation but it does exist in the contract. ``` also ``` MembersMustExist : Member 'System.Security.SecurityContext.SuppressFlow()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.SecurityContext.SuppressFlowWindowsIdentity()' does not exist in the implementation but it does exist in the contract ``` For completeness, these relevant types are missing: ``` TypesMustExist : Type 'System.Security.Principal.WindowsAccountType' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Security.Principal.WindowsImpersonationContext' does not exist in the implementation but it does exist in the contract. ``` +17165 area-System.Runtime [master] Inbox value tuple Master branch version of https://github.com/dotnet/corefx/pull/16447 /cc @jcouv @marek-safar @weshaggard +17166 area-System.Data Managed SNI on windows doesnt allow LocalDB connectivity Managed SNI should be able to connect to LocalDb on windows +17167 area-System.Net Implement Socket.SendPacketsAsync on Unix There's no built-in API equivalent to this on Unix, so we just approximate it with a basic implementation on top of other Socket functionality. Fixes https://github.com/dotnet/corefx/issues/4007 cc: @geoffkizer, @Priya91, @cipop +17168 area-System.Memory Removing Span/ROS char overloads in extension methods cc @KrzysztofCwalina, @jkotas Part of https://github.com/dotnet/corefxlab/issues/1314 +17169 area-Infrastructure Updating uapaot baseline files Updating uap and uapaot baselines FYI: @weshaggard @joshfree @danmosemsft +17170 area-System.Numerics Move two Complex tests out of netfx test case "I've moved two of these test cases into the ""Sqrt_AdvancedTestData"" method, because they do not work on .NET Framework. These are new test cases which were added as part of the improvements to the .NET Core version by @dcwuser in PR: https://github.com/dotnet/corefx/pull/15338. @safern " +17172 area-Infrastructure Use PB_TargetQueue instead of CreateHelixArguments Also fixes quoting (again) +17173 area-System.Net Increase timeout for HttpWebRequest_Timeout_Throws Fix https://github.com/dotnet/corefx/issues/17138 @davidsh +17174 area-System.Net HttpClient crashes when reading a stream with trailing headers on Linux HttpClient ignores trailing headers on windows, however crash when the same headers are read on Ubuntu with System.Net.Http.HttpRequestException : Error while copying content to a stream. ---- System.IO.IOException : The read operation failed, see inner exception. -------- System.Net.Http.CurlException : Failed writing received data to disk/application Stack Trace: Failing test on ubuntu https://travis-ci.org/Drawaes/CondenserDotNet/builds/211566793 Passing on windows https://ci.appveyor.com/project/Drawaes/condenserdotnet/build/0.7.418 +17175 area-System.Security Sacl doesn't have Mandatory Ace for setting integrity levels to objects. On windows, integrity levels are set using MandatoryAce in System access control lists. Currently we don't have a way to do this with AccessControl apis. Add the following types of WellKnownSidTypes ```c# public enum WellKnownSidType { WinLowLabelSid = 66, WinMediumLabelSid = 67, WinHighLabelSid = 68, } ``` Create a MandatoryAce type which will do this https://msdn.microsoft.com/en-us/library/windows/desktop/aa965464(v=vs.85).aspx +17177 area-System.Net System.Net.NameResolution.Pal.Tests: seg fault System.Net.NameResolution.Pal.Tests, there is no result generated. Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170316.02/workItem/System.Net.NameResolution.Pal.Tests/wilogs +17178 area-System.Net Fix error handling in SendFile{Async} on Unix - If Begin/EndSendFile actually resulted in asynchronous handling (none of the current test inputs were causing that to happen), the operation would fail because it would treat IOPending as an error and throw a SocketException for it. - The callback is checking/storing the wrong error, using the closed over errorCode instead of the passed in socketError. - If an error did get handled by the callback, it would complete the tcs with an exception and then try to complete it again with a result, which would result in an exception getting thrown as the task would already be completed. cc: @geoffkizer, @Priya91 +17179 area-System.Net Tests under System.Net.Sockets.Tests.DisconnectTest failed in CI Configuration: OuterLoop_Fedora23_debug ([build#131](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora23_debug/131/testReport/)) Failed tests: System.Net.Sockets.Tests.DisconnectTest.Disconnect_Success(reuseSocket: False) System.Net.Sockets.Tests.DisconnectTest.BeginDisconnect_Success(reuseSocket: False) System.Net.Sockets.Tests.DisconnectTest.DisconnectAsync_Success(reuseSocket: False) Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora23_debug/131/consoleText ~~~ System.Net.Sockets.Tests.DisconnectTest.Disconnect_Success(reuseSocket: False) [FAIL] Assert.Equal() Failure Expected: IsConnected Actual: Success Stack Trace: /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Net.Sockets/tests/FunctionalTests/DisconnectTest.cs(79,0): at System.Net.Sockets.Tests.DisconnectTest.Disconnect_Success(Boolean reuseSocket) System.Net.Sockets.Tests.DisconnectTest.BeginDisconnect_Success(reuseSocket: False) [FAIL] Assert.Equal() Failure Expected: IsConnected Actual: Success Stack Trace: /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Net.Sockets/tests/FunctionalTests/DisconnectTest.cs(167,0): at System.Net.Sockets.Tests.DisconnectTest.BeginDisconnect_Success(Boolean reuseSocket) System.Net.Sockets.Tests.DisconnectTest.DisconnectAsync_Success(reuseSocket: False) [FAIL] Assert.Equal() Failure Expected: IsConnected Actual: Success Stack Trace: /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_debug/src/System.Net.Sockets/tests/FunctionalTests/DisconnectTest.cs(125,0): at System.Net.Sockets.Tests.DisconnectTest.DisconnectAsync_Success(Boolean reuseSocket) ~~~ +17180 area-System.Diagnostics System.Diagnostics.Tests.ProcessTests.HandleCountChanges failed in CI Configuration: InnerLoop_Fedora24_release ([build#1378](https://ci.dot.net/job/dotnet_corefx/job/master/job/fedora24_release/1378/testReport/)) Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/fedora24_release/1378/consoleText Failed test: System.Diagnostics.Tests.ProcessTests.HandleCountChanges ~~~ System.Diagnostics.Tests.ProcessTests.HandleCountChanges [FAIL] Assert.Equal() Failure Expected: 42 Actual: 145 Stack Trace: /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_release/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs(170,0): at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() ~~~ +17181 area-System.Data Consolidate Data Source Parsing in SNI The changes consolidate and move the data source parsing login for SNI into a single class. I looked into the native sni parsing and brought in some extra capabilities like connecting to `np:` `(local)` etc. This also adds capability to handle the admin protocol used to connect to DAC in data source. The connectivity logic for DAC connectivity still needs to be worked out. Fixes https://github.com/dotnet/corefx/issues/16125 +17182 area-Infrastructure [Linux/x86] Enable CI Linux/x86 build Make new job: Linux/x86 build (debug/release) - Triggered daily - Docker for crossbuild - Use pre-generated rootfs related issue: dotnet/coreclr#9903 +17184 area-System.Drawing Drawing primitives are missing [Browsable(false)] attributes Some of the Drawing primitives are missing `Browsable(false)` attributes. This causes additional attributes to show up in the list of properties returned by the `TypeDescriptor` for those classes. Here's the full list: * `Size` and `SizeF`: - `IsEmpty` should be marked as `[Browsable(false)]` * `Point` and `PointF`: - `IsEmpty` should be marked as `[Browsable(false)]` * `Rectangle` and `RectangleF`: - `IsEmpty` should be marked as `[Browsable(false)]` - `Bottom` should be marked as `[Browsable(false)]` - `Left` should be marked as `[Browsable(false)]` - `Location` should be marked as `[Browsable(false)]` - `Right` should be marked as `[Browsable(false)]` - `Size` should be marked as `[Browsable(false)]` - `Top` should be marked as `[Browsable(false)]` Adding these attributes should be fairly trivial and I'd be happy to submit a PR for this. Before that, just want to make sure there isn't a specific reason these attributes have been left out - I notice a lot of other properties do mark properties with `Browsable(false)`. +17185 area-System.Net Improve NetworkStream.WriteAsync synchronous caching Socket.SendAsync caches the last successfully completed task and returns that same task on subsequent writes if the same number of bytes were written. NetworkStream.WriteAsync then just delegates to SendAsync. But WriteAsync returns a non-generic task, and doesn't actually care or surface the result value, which means we can effectively use any task, regardless of its value, and can thus use a single cached task for all synchronous completions, regardless of how much data is written. With this change, then, the common-case of synchronously completing NetworkStream.WriteAsync calls don't allocate (amortized). cc: @geoffkizer, @cipop, @Priya91 +17187 area-System.Diagnostics TestCommonPriorityAndTimeProperties failed in CI on macOS https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug_prtest/123/consoleText ``` System.Diagnostics.Tests.ProcessThreadTests.TestCommonPriorityAndTimeProperties [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Diagnostics.Process/tests/ProcessThreadTests.cs(26,0): at System.Diagnostics.Tests.ProcessThreadTests.TestCommonPriorityAndTimeProperties() ``` +17188 area-System.Net Socket.Begin/EndSendFile completing asynchronously hangs on macOS +17189 area-System.Net Fix Socket.Disconnect on Unix +17190 area-System.Xml System.Xml.XPath.XmlDocument is no longer getting produced/published `System.Xml.XPath.XmlDocument` is not in the shared framework, and there are no recent nuget packages for it on https://dotnet.myget.org/feed/dotnet-core/package/nuget/System.Xml.XPath.XmlDocument. We need to publish this assembly somewhere - either in the shared framework or as a standalone NuGet package. @ericstj @weshaggard @krwq +17194 area-System.Security Enums missing from System.Security.Cryptography.X509Certificates. The following enums are missing from the System.Security.Cryptography.X509Certificates namespace: * [TrustStatus](https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.truststatus(v=vs.110).aspx). * [X509SelectionFlag](https://msdn.microsoft.com/en-us/library/system.security.cryptography.x509certificates.x509selectionflag(v=vs.110).aspx). Both are available in .NET Framework. I could try to add them myself, but I have no experience contributing to .NET Core. Perhaps someone from the owners of this project could clarify a few things: 1. First of all, are these enums really needed in .NET Core? As far as I understand, the goal is to bring all APIs of .NET Framework to .NET Standard 2.0, which means that these enums are needed, right? 2. Do I understand correctly that it's just a matter of adding these enums to the System.Security.Cryptography.X509Certificates project? Or maybe something additionally has to be done? Perhaps /ref/System.Security.Cryptography.X509Certificates.cs has to be changed as well? +17195 area-System.Net Fix race condition in System.Net.Ping test. "Fixes the test to have the ""canceled iterations"" block more inline with the ""Normal iterations"" block that won't race because awaiting task completion and validation is done for each iteration instead of only at the end. resolves https://github.com/dotnet/corefx/issues/16401" +17196 area-System.Net Re-disable failing Net.Security test Test was enabled in #16877 affects https://github.com/dotnet/corefx/issues/16516 +17197 area-System.Data Fix Managed SNI Integrated Auth Adding the sspi buffer pass by ref so that the retrieved value for buffer gets propagated all the way up. This is needed by Managed SNI. In case of Native SNI, the native call doesn't need a pass by ref to the native layer. The tests which are now passing after this change are in `System.Data.SqlClient.ManualTesting.Tests.IntegratedAuthenticationTest` These tests were failing earlier. cc @geleems +17198 area-System.Runtime Not able to get PInvoke error message on Linux and MacOs "Hello, I see that Marshal.GetLastWin32Error() returns [proper errno](https://github.com/dotnet/corefx/issues/6778), however Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error()) always throws ""The operation completed successfully"" instead corresponding error. ```c# using System; using System.Runtime.InteropServices; namespace ConsoleApplication { public class Program { [DllImport(""libSystem.dylib"", EntryPoint = ""fopen"", SetLastError = true)] // libc.so.6 for linux extern static private IntPtr FOpen(string path, string mode); // fopen was used for example. Same flow for other calls public static void Main(string[] args) { var f = FOpen(""some-not-existing-file"", ""r""); if (f == IntPtr.Zero) { Console.WriteLine(""Error code is {0}"", Marshal.GetLastWin32Error()); Marshal.ThrowExceptionForHR(Marshal.GetHRForLastWin32Error()); } } } } ``` Actual result ``` Admins-Mac:console admin$ dotnet --version 1.0.1 Admins-Mac:console admin$ dotnet run Error code is 2 <--- File not found error code Unhandled Exception: System.Runtime.InteropServices.COMException: The operation completed successfully. (Exception from HRESULT: 0x80070000) at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) at ConsoleApplication.Program.Main(String[] args) in /Users/admin/console/Program.cs:line 24 ``` Expected result: Exception with ""No such file or directory"" message" +17200 area-System.Net Reduce AcceptAsync allocations by 20% for IPv4/6 Every AcceptAsync with a SocketAsyncEventArgs ends up calculating the buffer size necessary to store the address (either to create a buffer if one wasn't supplied, or to verify that the one supplied is large enough). To do that, it's currently serializing the EndPoint into a SocketAddress, which entails allocating both a SocketAddress and the byte[] that backs it. But for IPv4 and IPv6, the two most common families, we know the address size in advance, and can simply use those values rather than allocating to get them. If in the future other families become more common, we could cache those dynamically after computing them once. cc: @geoffkizer, @pgavlin, @KrzysztofCwalina, @cipop, @davidsh +17201 area-Meta Replaced ContainsKey() Calls with TryAdd() Dictionary Calls Replaced usage of the `Dictionary.ContainsKey()` method with the newer `Dictionary.TryAdd()` method (where applicable) for performance benefits [per Issue #17034](https://github.com/dotnet/corefx/issues/17034). This involved replacing this pattern: ```c# if(!dictionary.ContainsKey(key)) { dictionary.Add(key, value); } ``` with: ```c# if (dictionary.TryAdd(key, value)) { // Code } ``` Current Progress (Source) ----- **System.CodeDom `[Unsupported]`** ~~- [ ] ...\src\System\CodeDom\CodeNamespaceImportCollection.cs(34)~~ **System.ComponentModel.TypeConverter** - [X] ...\src\System\ComponentModel\ReflectTypeDescriptionProvider.cs(451) - [X] ...\src\System\ComponentModel\ReflectTypeDescriptionProvider.cs(489) **System.Data.Common** - [X] ...\src\System\Data\DataView.cs(1333) _[reverted]_ - [X] ...\src\System\Data\Common\AdapterUtil.cs(1185) **System.Data.SqlClient `[Unsupported]`** ~~- [ ] ...\src\System\Data\Common\AdapterUtil.cs(976)~~ ~~- [ ] ...\src\System\Data\SqlClient\SNI\SNIMarsConnection.cs(241)~~ **System.Diagnostics `[Unsupported]`** ~~- [ ] ...\src\System\Diagnostics\Tracing\EventSource.cs(6272)~~ **System.DirectoryServices.AccountManagement `[Unsupported]`** ~~- [ ] ...\src\System\DirectoryServices\AccountManagement\AD\ADDNLinkedAttrSet.cs(326)~~ ~~- [ ] ...\src\System\DirectoryServices\AccountManagement\AD\ADDNLinkedAttrSet.cs(343)~~ ~~- [ ] ...\src\System\DirectoryServices\AccountManagement\AD\ADDNLinkedAttrSet.cs(505)~~ ~~- [ ] ...\src\System\DirectoryServices\AccountManagement\AD\ADDNLinkedAttrSet.cs(523)~~ ~~- [ ] ...\src\System\DirectoryServices\AccountManagement\AD\ADDNLinkedAttrSet.cs(682)~~ ~~- [ ] ...\src\System\DirectoryServices\AccountManagement\AD\ADDNLinkedAttrSet.cs(810)~~ ~~- [ ] ...\src\System\DirectoryServices\AccountManagement\AD\ADStoreCtx_Query.cs(1178)~~ **System.IO.Compression `[Unsupported]`** ~~- [ ] ...\src\System\IO\Compression\ZipArchive.cs(368)~~ **System.Linq.Expressions** - [X] ...\src\System\Linq\Expressions\Compiler\BoundConstants.cs(87) - [X] ...\src\System\Linq\Expressions\Interpreter\LightCompiler.cs(1636) - [X] ...\src\System\Linq\Expressions\Interpreter\LightCompiler.cs(1690) **System.Net.NetworkInformation `[Unsupported]`** ~~- [ ] ...\src\System\Net\NetworkInformation\NetworkAddressChange.Windows.cs(104)~~ ~~- [ ] ...\src\System\Net\NetworkInformation\NetworkAddressChange.Windows.cs(225)~~ **System.Private.DataContractSerialization** - [X] ...\src\System\Runtime\Serialization\DataContract.cs(2109) - [X] ...\src\System\Runtime\Serialization\HybridObjectCache.cs(45) - [X] ...\src\System\Runtime\Serialization\Json\JsonDataContract.cs(293) - [X] ...\src\System\Runtime\Serialization\Json\JsonDataContract.cs(302) **System.Private.Xml `[Unsupported]`** ~~- [ ] ...\src\System\Xml\Dom\DocumentSchemaValidator.cs(195)~~ ~~- [ ] ...\src\System\Xml\Dom\DocumentSchemaValidator.cs(203)~~ ~~- [ ] ...\src\System\Xml\Dom\XmlNodeReader.cs(1015)~~ ~~- [ ] ...\src\System\Xml\Dom\XmlNodeReader.cs(1023)~~ ~~- [ ] ...\src\System\Xml\Schema\DtdParser.cs(1437)~~ ~~- [ ] ...\src\System\Xml\Schema\DtdParser.cs(1444)~~ ~~- [ ] ...\src\System\Xml\Schema\DtdParserAsync.cs(1033)~~ ~~- [ ] ...\src\System\Xml\Schema\DtdParserAsync.cs(1040)~~ ~~- [ ] ...\src\System\Xml\Schema\DtdParserAsync.cs(1124)~~ ~~- [ ] ...\src\System\Xml\Schema\SchemaCollectionCompiler.cs(292)~~ ~~- [ ] ...\src\System\Xml\Schema\SchemaCollectionCompiler.cs(772)~~ ~~- [ ] ...\src\System\Xml\Schema\SchemaCollectionCompiler.cs(779)~~ ~~- [ ] ...\src\System\Xml\Schema\SchemaInfo.cs(356)~~ ~~- [ ] ...\src\System\Xml\Schema\SchemaInfo.cs(364)~~ ~~- [ ] ...\src\System\Xml\Schema\SchemaInfo.cs(371)~~ ~~- [ ] ...\src\System\Xml\Schema\SchemaInfo.cs(378)~~ ~~- [ ] ...\src\System\Xml\Schema\SchemaInfo.cs(385)~~ ~~- [ ] ...\src\System\Xml\Schema\SchemaSetCompiler.cs(158)~~ ~~- [ ] ...\src\System\Xml\Schema\SchemaSetCompiler.cs(842)~~ ~~- [ ] ...\src\System\Xml\Schema\XdrBuilder.cs(1052)~~ ~~- [ ] ...\src\System\Xml\Schema\XmlSchema.cs(210)~~ ~~- [ ] ...\src\System\Xml\Serialization\Compilation.cs(304)~~ ~~- [ ] ...\src\System\Xml\Xsl\IlGen\StaticDataManager.cs(30)~~ ~~- [ ] ...\src\System\Xml\Xsl\Xslt\Compiler.cs(104)~~ ~~- [ ] ...\src\System\Xml\Xsl\Xslt\Compiler.cs(172)~~ ~~- [ ] ...\src\System\Xml\Xsl\XsltOld\XsltCompileContext.cs(274)~~ ~~- [ ] ...\tests\XmlSchema\XmlSchemaValidatorApi\ExceptionVerifier.cs(174)~~ ~~- [ ] ...\tests\Xslt\XslTransformApi\ExceptionVerifier.cs(174)~~ **System.Private.Xml.Linq** ~~- [ ] ...\src\System\Xml\Schema\XNodeValidator.cs(156)~~ **System.Reflection.Metadata `[Unsupported]`** ~~- [ ] ...\src\System\Reflection\Metadata\Internal\NamespaceCache.cs(406)~~ **System.Runtime.Serialization** - [X] ...\src\System\Runtime\Serialization\SerializationObjectManager.cs(30) **System.Security.AccessControl `[Unsupported]`** ~~- [ ] ...\src\System\Security\AccessControl\Privilege.cs(150)~~ **System.ServiceProcess.ServiceController `[Unsupported]`** ~~- [ ] ...\src\System\ServiceProcess\ServiceController.cs(274)~~ ~~- [ ] ...\src\System\ServiceProcess\ServiceController.cs(280)~~ Current Progress (Tests) ---------- **Common** - [X] ...\tests\System\Collections\IDictionary.Generic.Tests.cs(769) - [X] ...\tests\System\Collections\IDictionary.Generic.Tests.cs(800) - [X] ...\tests\System\Collections\IDictionary.Generic.Tests.cs(836) **System.Collections** - [X] ...\tests\Performance\Perf.Dictionary.cs(23) **System.Data.SqlClient** - [X] ...\tests\ManualTests\SQL\Common\InternalConnectionWrapper.cs(160) **System.Linq.Expressions** - [X] ...\tests\ILReader\ILPrinter.cs(123) **System.Private.Xml.Linq** - [X] ...\tests\TreeManipulation\XAttributeEnumRemove.cs(248) - [X] ...\tests\TreeManipulation\XNodeSequenceRemove.cs(738) - [X] ...\tests\xNodeBuilder\XmlReaderDiff.cs(42) +17202 area-System.Data Can System.Data.SqlClient take a dependency on non .Net Core libraries? This is a question more than an issue which will help with the design of Azure Active Directory authentication for Azure SQL DB. SqlClient on Desktop depends on a DLL written in C++ and utilizes Windows APIs which needs to be installed on the client machine to be able to authenticate to Azure SQL DB using AAD. For .Net Core, the solution provided above doesn't apply as it is not applicable to Unix or macOS. To add Azure Active Directory support in SqlClient, the access token has to be retrieved from AAD using HTTP rest calls. There are client libraries provided by AAD in C# to expedite clients to retrieve the Access Token. Can SqlClient take a dependency on one of these libraries? If we cannot take a dependency, then SqlClient needs to implement the Access Token retrieval in the client itself which is a big maintenance overhead. What is the guidance in this case? Was such a design decision needed by any other .Net Core libraries? +17204 area-System.Drawing Add missing [Browsable(false)] attributes to Drawing primitives These attributes are present on Desktop .NET but are missing from .NET Core. Fixes #17184 +17205 area-System.Collections Reduce memory load of ConcurrentCollections test This test was hitting an OOM on the CI machines because it adds new items to a collection in a loop until a timeout is met. I modified the test to instead add a fixed number of items, regardless of time. This also reduces the total runtime of the Concurrent Collections tests from ~15 seconds to ~10 seconds on my local box. @safern resolves https://github.com/dotnet/corefx/issues/15837 +17206 area-System.ComponentModel Fix System.ComponentModel.TypeConverter failing tests This PR fixes 2 tests that where failing in System.ComponentModel.TypeConverter Also I made a cleanup moving to the common path `IsFullFramework` property that I previously added. cc: @tarekgh @stephentoub @danmosemsft @AlexGhiondea +17207 area-System.Net Fix HttpClientHandler.ClientCertificates behavior Change the ClientCertificates' getter to throw InvalidOperationException, when ClientCertificateOption.Automatic is set, to match the same behavior in .Net Desktop. Fix #11743 +17209 area-System.Net AcceptAsync with existing Socket not implemented on Unix Windows has built-in support for accepting into an existing socket, something not available on Unix. But we can approximate it in the .NET layer on Unix, e.g. by accepting into a new socket and transferring over the SafeCloseHandle and related state. This will allow the same APIs to be used cross-platform so that code running on Windows gets the intended benefits while not having to fork based on the OS. +17210 area-System.Net Add test for accepting into a disconnected socket We already have a test that accepts into an existing socket, but not one that tests reusing that same socket for another accept. (Interestingly, this works with SocketAsyncEventArgs, but doesn't with APM. That's true for desktop as well. Unless there's an obvious design reason for that, seems like a bug in both.) cc: @cipop, @davidsh, @geoffkizer +17212 area-Infrastructure Enable running CoreFx tests in UAP on CoreCLR /cc @joperezr @MattGal @weshaggard +17213 area-System.Numerics Expand the Perf test coverage for the System.Numerics.Vector types The current perf test coverage for the System.Numerics.Vector types is fairly limited (this extends to types such as Matrix4x4, Quaternion, and Plane as well). Given that these are meant to be fairly core high-performance types (used in things such as Multimedia-based applications), it is important that we have a high amount of perf-test coverage over the current implementations. +17214 area-System.Numerics Improve the performance of the System.Numerics.Vector types The `System.Numerics.Vector` types are currently implemented as intrinsics in the CoreCLR. However, the perf in some cases is not ideal (especially around load/store for Vector3 and Vector2). These scenarios should be investigated and improved. I believe that targeting comparable performance to the DirectXMath implementation is a reasonable goal here (it is also implemented entirely in intrinsics, but in C/C++). +17215 area-System.Linq Enable building of System.Linq.Expression without expression compiler Enable building of System.Linq.Expression without expression compiler in AOT target group. Fixes:https://github.com/dotnet/corefx/issues/16910 +17216 area-Meta Add missing [Browsable(false)] attributes The attribute is new in 2.0. We should port also its usages into .NET Core 2.0. Example: #17184 cc @danmosemsft @weshaggard +17217 area-System.Numerics Adding additional test coverage for the System.Math and System.MathF functions implemented by FCalls. This resolves https://github.com/dotnet/corefx/issues/12855 These tests are essentially the same as those that are implemented in C++ in the CoreCLR PAL layer: https://github.com/dotnet/coreclr/tree/master/src/pal/tests/palsuite/c_runtime These tests cover ~~all~~ most of the interesting corner cases, except for subnormal values, and max/min domain inputs. +17218 area-System.Security System.Net.Security 4.3.0 breaks AuthenticateAsClientAsync on Linux "Hopefully this is the right issue tracker for this bug. System.Net.Security 4.3.0 breaks, at the very least, authenticating with Apple's push notification servers in an unusual way -- but only on Linux. It still works fine when used on Windows. Here is a simple C# program, which does the bare minimum I've found to trigger this bug. For obvious reasons, I cannot provide the certificate file, although I expect any other instances of certificate client authentication would likely also trigger the bug. ```c# using System; using System.IO; using System.Net; using System.Net.Sockets; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.Security.Authentication; using System.Threading.Tasks; namespace Test { class Program { static void Main() { Task.Run(async () => { int port = 2195; string hostname = ""gateway.push.apple.com""; X509Certificate2 clientCertificate = new X509Certificate2(System.IO.File.ReadAllBytes(""certificate.pfx"")); X509Certificate2Collection certificatesCollection = new X509Certificate2Collection(clientCertificate); TcpClient client = new TcpClient(AddressFamily.InterNetwork); await client.ConnectAsync(hostname, port); SslStream sslStream = new SslStream(client.GetStream()); await sslStream.AuthenticateAsClientAsync(hostname, certificatesCollection, SslProtocols.Tls12, false); Console.WriteLine(""Success.""); }).Wait(); } } } ``` And here is a matching csproj file: ```xml Exe netcoreapp1.0 * * 4.0.0 * * ``` When System.Net.Security depends on 4.0.0, the program works as expected; it successfully authenticates, prints ""Success!"", then exits. If you change that dependency to 4.3.0, it instead pauses, then exits the program with no console output during AuthenticateAsClientAsync, and never prints ""Success!"". No exceptions are thrown, it just seemingly cleanly exits, when it should not." +17219 area-System.Runtime Add APTC attribute to System.ValueTuple.dll in .Net Standard 1.0 The attribute is not added in the `portable_net40+sl4+win8+wp8` target group, as it doesn't seem to exist there. Let me know if that can be improved somehow. In target group `netcoreapp`, the assembly that has type forwards doesn't have the attribute and neither does `System.Runtime` (which type forwards further), but the implementation assembly (`System.Private.CoreLib.dll`) does have APTCA. So the `netstandard1.0` target group is the only one benefiting from this fix. In terms of validation, I did a local build with `build -framework:netstandard1.0`, picked up the resulting `System.ValueTuple.dll` and tried it in the customer scenario, which passed. Fixes https://github.com/dotnet/corefx/issues/17144 and https://github.com/dotnet/roslyn/issues/17783 @weshaggard @tarekgh @AlexGhiondea for review. @davidsh @morganbr I have run `secannotate` without errors. ``` C:\repos\corefx\bin\AnyOS.AnyCPU.Debug\System.ValueTuple\netstandard1.0>secannotate System.ValueTuple.dll Microsoft (R) .NET Framework Security Transparency Annotator 4.6.1055.0 Copyright (C) Microsoft Corporation. All rights reserved. Annotating 'System.ValueTuple'. Beginning pass 1. Pass complete, 0 new annotation(s) generated. Annotation of 'System.ValueTuple' stopped due to reaching the maximum number of allowed passes. Annotating complete. 0 errors found. No report file generated since no annotations are required. ``` +17220 area-System.Diagnostics System.Diagnostics.Tests.ProcessWaitingTests.WaitForPeerProcess failed in CI Configuration: OuterLoop_Fedora24_debug ([build#119](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora24_debug/119/testReport/)) Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora24_debug/119/testReport/System.Diagnostics.Tests/ProcessWaitingTests/WaitForPeerProcess/ ~~~ MESSAGE: Assert.Equal() Failure\nExpected: Signal\nActual: (null) +++++++++++++++++++ STACK TRACE: at System.Diagnostics.Tests.ProcessWaitingTests.WaitForPeerProcess() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora24_debug/src/System.Diagnostics.Process/tests/ProcessWaitingTests.cs:line 157 ~~~ +17221 area-System.Security Fix EncryptedXmlTest.GetDecryptionIV_StringNull and expand ExcryptedXmlTest Fix for `EncryptedXmlTest.GetDecryptionIV_StringNull` mentioned in #16685. Also cleaned up the tests a bit. CC @krwq +17225 area-Microsoft.CSharp Teach the dynamic binder about synthetic ItemN tuple fields (Originally reported as part of https://github.com/dotnet/roslyn/issues/17911) While we can't know for sure whether a particular `ValueTuple<...>` was originally used as a C# tuple type or directly as the CLR type, it's reasonable to err on the side of assuming the language feature was in use - so for dynamic references to `d.ItemN` where `N` is greater than 7, the binder should attempt to translate that into `d.Rest.Item(N-7)` recursively. +17226 area-System.Net ServerCertificateCustomValidationCallback with client certificate not called in Windows (.NET Core), but called in debian "Hello The following code in .net core ```c# X509Certificate2 clientCert = new X509Certificate2(""cert.pfx""); HttpClientHandler clientHandler = new HttpClientHandler() { ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => { return true; }, ClientCertificateOptions = ClientCertificateOption.Manual, SslProtocols = SslProtocols.Tls12 }; clientHandler.ClientCertificates.Add(clientCert); ``` Will deliver the following results: With client certificate: Windows 10: SecurityError / Callback not called Debian: No Error / Callback called Without client certificate: Windows 10: No error / Callback called Debian: No error / Callback called Is this expected behaviour or a bug in the windows handler? I expected the handler to call the validation callback when a client certificate is provided too, because I would like to be able to use selfsigned certs in combination with client certs during development phase on my windows machine. Note: Using a simular project with full framework for Win10 deliveres the expected results (callback will be called even if client certificate is provided): ```c# WebRequestHandler clientHandler = new WebRequestHandler(){ ClientCertificateOptions = ClientCertificateOption.Manual }; clientHandler.ClientCertificates.Add(clientCert); clientHandler.ServerCertificateValidationCallback += (msg, cert, chain, errors) => { return true; }; ```" +17228 area-System.Net socket, accept: set CLOEXEC on platforms that support it Fixes #16180 +17232 area-System.Reflection "Need api to determine if a type is ""byref-like.""" "**Proposal for New API:** ```c# class Type { public virtual bool IsByRefLike => throw new NotSupportedException(); } ``` With Span<>, we're now introducing a mainstream type that has ""by-ref-like"" or ""stack-only"" restrictions. We also have TypedReference in this bucket, but Span<> takes this concept out of the ""eccentric uncle in the closet"" realm. There is, however, no robust way to know if a type has these restrictions. Apis like Array.CreateInstance() need to guard against these types (https://github.com/dotnet/corert/pull/3000) and could use a formalized way to catch these types. It's likely that checks like these could go viral into app code or higher level libraries that call apis like this." +17233 area-System.Globalization Need APIs for unicode case mapping and case folding "@gafter commented on [Mon May 11 2015](https://github.com/dotnet/coreclr/issues/976) The Unicode function for determining the category of Unicode characters (`System.Globalization.CharUnicodeInfo.GetUnicodeCategory(char)`) appears to reflect a fairly recent version of the Unicode standard. However, the functions for performing Unicode case mapping (culture-insensitive uppercase and lowercase) appear to reflect Unicode version 1.0. This mismatch was a severe impediment for implementing spec-compliant case folding in the VB compiler. There is also no support whatsoever for performing case folding according to the Unicode specification (simplified or otherwise). APIs in the platform to do this would help with any language that, like VB, wants to depend on the Unicode specification for the meaning of case-insensitive identifiers. --- @jkotas commented on [Mon May 11 2015](https://github.com/dotnet/coreclr/issues/976#issuecomment-101117346) cc @ellismg --- @ellismg commented on [Mon May 11 2015](https://github.com/dotnet/coreclr/issues/976#issuecomment-101125393) This is something I'd like to do. I think the open issue is how we support this on Windows (since I think that we can get Case Folding functionality from ICU). In general, we've tried to move away from the framework itself shipping globalization data and used the OS provided APIs instead. Since Windows doesn't currently expose a way to do case folding, we'd have to figure out what to do. --- @karelz commented on [Fri Mar 17 2017](https://github.com/dotnet/coreclr/issues/976#issuecomment-287305272) @tarekgh do we need a new API for this? If yes, we should move it to CoreFX. If not, let's remove ""api addition"" label. " +17234 area-System.Net Test failure: SendAsync_SlowServerRespondsAfterDefaultReceiveTimeout_ThrowsHttpRequestException https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug_prtest/148/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_windows_nt_debug_prtest/147/consoleText ``` System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest.SendAsync_SlowServerRespondsAfterDefaultReceiveTimeout_ThrowsHttpRequestException [FAIL] Assert.Throws() Failure Expected: typeof(System.AggregateException) Actual: (No exception was thrown) Stack Trace: D:\j\workspace\outerloop_win---7ad0ce03\src\System.Net.Http.WinHttpHandler\tests\FunctionalTests\WinHttpHandlerTest.cs(109,0): at System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest.SendAsync_SlowServerRespondsAfterDefaultReceiveTimeout_ThrowsHttpRequestException() ``` +17235 area-System.Security X509StoreTests.Constructor_StoreHandle failed on macOS in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_osx_debug_prtest/93/consoleText ``` System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.Constructor_StoreHandle [FAIL] Assert.Equal() Failure Expected: 3 Actual: 2 Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_osx_debug_prtest/src/System.Security.Cryptography.X509Certificates/tests/X509StoreTests.cs(63,0): at System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.Constructor_StoreHandle() ``` +17236 area-System.Xml Is there a version 4.1.0.0 of System.Xml.ReaderWriter anywhere? "I notice in the v4.3.0 NuGet of System.Xml.ReaderWriter, the `netstandard1.3` assembly version is 4.1.0.0. But, no other version is like this, all appear to be version 4.0.10.0... The `netcore50` version is 4.0.10.0. Even System.Xml.XDocument, which has a direct dependency on System.Xml.ReaderWriter, references a version 4.0.10.0. (The references of which I speak are the actual assembly references, not NuGet references) At runtime, I get an exception saying that v4.1 is not found - which is to be expected. To resolve this, can either reference the v4.0.11 NuGet directly, or set the `NetStandardImplicitPackageVersion` property to `1.6.0`. The real question is this by design? or is there a problem? I am running the latest stable/RTM version of Windows 10, and if I am having an issue after upgrading my .NET Standard version, there should be others? My use case was building a new `netstandard1.3` assembly (which uses XML) and NuGet, and then reference that NuGet in a UWP app. Nothing fancy, just plain old NuGet. It was working fine when I was targeting project.json and `""NETStandard.Library"": ""1.6.0""`. So this really has to do with the ""implicit"" upgrade to v1.6.1 as well." +17237 area-System.Net Avoid allocation in SocketAsyncEventArgs when buffer configuration changes (1) Manage our own buffer pinning, instead of having the Overlapped infrastructure do this. This allows us to not reallocate Overlapped when buffer configuration changes. (2) Only reallocate _wsaBuffersArray when it needs to grow, otherwise reuse existing array. +17240 area-System.IO Add Retries to FSW WaitFor* Tests These tests are intermittently failing on some platforms from events not being risen by the filesystem. It's causing a fair amount of churn, so I'm adding retries to them like we have for a lot of the other FSW tests that are susceptible to intermittent failures. Doing so also greatly reduces the runtime in the failure case, allowing us to move the tests back to innerloop. resolves https://github.com/dotnet/corefx/issues/16857 cc: @JeremyKuhne @danmosemsft +17241 area-System.Net Disable SendAsync_SlowServerRespondsAfterDefaultReceiveTimeout_ThrowsHttpRequestException test #17234 +17242 area-System.IO Provide a way to override the logic of retrieving the preamble bytes in StreamWriter @kichalla commented on [Tue May 05 2015](https://github.com/dotnet/coreclr/issues/933) In ASP.NET MVC, we use StreamWriter in some places to write data to the response stream. We want to avoid writing the BOM or preamble bytes irrespective of whether an encoding requires preamble or not. I was initially looking to subclass StreamWriter and override some method like `GetPreamble` to prevent writing the preamble bytes, but couldn't find any. (I initially had a wrapper around the supplied encoding to prevent preamble bytes...even though this works, it feels hacky) For reference: https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/IO/StreamWriter.cs#L283 --- @bpschoch commented on [Wed May 06 2015](https://github.com/dotnet/coreclr/issues/933#issuecomment-99581315) some say you can do it via the New UTF8Encoding(false) http://stackoverflow.com/questions/5266069/streamwriter-and-utf-8-byte-order-marks/11655096#11655096 I started an issue on corefx: https://github.com/dotnet/corefx/issues/1645 --- @kichalla commented on [Wed May 06 2015](https://github.com/dotnet/coreclr/issues/933#issuecomment-99608272) Sure, I am aware of it...the thing is this encoding is provided by an end user and they might provide with a BOM encoding or not... --- @bpschoch commented on [Wed May 06 2015](https://github.com/dotnet/coreclr/issues/933#issuecomment-99618606) I made a general proposal on a possible solution here: https://github.com/dotnet/corefx/issues/1645 I'm trying to understand what you are looking for. Your issue appears that you get handed an encoding and using that encoding, prevent any BOM from being generated. Would that proposal solve your issue? --- @kichalla commented on [Wed May 06 2015](https://github.com/dotnet/coreclr/issues/933#issuecomment-99619289) yes, that's right....we want to prevent writing out the BOM in all cases...sure, that proposal would work for me...thanks.. --- @svick commented on [Wed May 06 2015](https://github.com/dotnet/coreclr/issues/933#issuecomment-99659995) @kichalla That sounds to me like an edge case that doesn't need to be supported directly by the framework. Any reason why you can't use something like the following code? ``` c# if (encoding is UTF8Encoding) encoding = new UTF8Ending(false); else if (encoding is UnicodeEncoding) encoding = new UnicodeEncoding(false, false); ``` --- @jbevain commented on [Thu May 07 2015](https://github.com/dotnet/coreclr/issues/933#issuecomment-99775049) Agreed with @svick. I'd solve it in a generic way using: ``` csharp class WithoutPreambleEncoding : Encoding { private readonly Encoding _encoding; public WithoutPreambleEncoding(Encoding encoding) { _encoding = encoding; } public override byte[] GetPreamble() { return new byte[0]; } public override int GetByteCount(char[] chars, int index, int count) { return _encoding.GetByteCount(chars, index, count); } public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) { return _encoding.GetBytes(chars, charIndex, charCount, bytes, byteIndex); } // ... } ``` --- @kichalla commented on [Thu May 07 2015](https://github.com/dotnet/coreclr/issues/933#issuecomment-99838741) @svick @jbevain : I actually had the same encoding wrapper like what you mentioned to solve for all encodings...but this felt hacky and so just wanted to check... --- @joshfree commented on [Wed Oct 28 2015](https://github.com/dotnet/coreclr/issues/933#issuecomment-151951797) @JeremyKuhne can you move this to /dotnet/corefx please --- @karelz commented on [Fri Mar 17 2017](https://github.com/dotnet/coreclr/issues/933#issuecomment-287306822) @ianhays @JeremyKuhne please move it to corefx repo. API additions should not be tracked in coreclr. +17243 area-System.Security Disable X509StoreTests.Constructor_StoreHandle test https://github.com/dotnet/corefx/issues/17235 +17246 area-Infrastructure Fix package dependency issues Some packages were causing cycles due to the meta-package remapping for NETStandard.Library and those packages being used in the implementation closure of NETStandard.Library. Disable the NETStandard.Library remapping in these packages. I also noticed that S.R.M was getting an unbaselined dependency for a portable profile dependency section which was causing issues when restored on UAP10.0 without the UWP meta-package. System.Security.Permissions was also missing support for UAP10.1 but it was required to install due to Registry depending on it. /cc @Petermarcu @weshaggard Fixes #16923 I've also added a test project for consuming the just-built packages. This is not currently plugged into the build but can be ran after a complete `-allConfigurations` build. It examines the package reports for every project built and generates a project.json that restores that package for each framework / RID that it supports. Things to do in the future: 1. Switch to latest CLI and MSBuild based projects. 2. Add test cases post-restore that examine the following: a) No bin-clashes b) API compat between ref & lib. c) No type-clashes in ref. d) Verify closure 3. Enable the tests to run in helix. /cc @chcosta @Chrisboh +17247 area-Infrastructure Separate non-Windows platform detection to its own file to fix ilc errors cc: @weshaggard @tarekgh This is required for the ilc uapaot test run since if we don't separate this code out, then a reference to libc.dll will be added to the test assembly which will crash the ilc compiled runner at test execution time. +17248 area-System.Security Fix Sec.AccessControl CommonSecurityDescriptor bug. When the source for System.Security.AccessControl was ported, one of the Interop functions was misnamed. This was causing the entire CommonSecurityDescriptor class to be broken, and since the tests weren't ported until later we weren't aware that it was broken. This Commit fixes the function call and re-enables the tests that assert the correct behavior (verified against desktop). resolves https://github.com/dotnet/corefx/issues/16919 PTAL: @bartonjs FYI: @danmosemsft @joperezr @LordMike (fixes your https://github.com/DiscUtils/DiscUtils/issues/14) +17249 area-System.Net Remove Socket._permittedRemoteAddress field and associated permissions code "Noticed this field was unnecessary. It appears to be a remnant of needing to do CAS permission checks, and was used to store an address against which a permission check was already done so it could be avoided subsequently if the same address needed to be checked. https://referencesource.microsoft.com/#System/net/System/Net/Sockets/Socket.cs,5929 Once we remove that field, the CheckCacheRemote function is no longer needed, as without the checks associated with that field, the method is the same as SnapshotAndSerialize, so we can remove CheckCacheRemote and replace all call sites. We can then also roll CallSerializeCheckDnsEndPoint into SnapshotAndSerialize, as the only other call site to it is a clone of SnapshotAndSerialize, so we can just use it. I also then searched for remaining mentions of ""permissions"" in comments and removed them. cc: @geoffkizer, @davidsh, @cipop" +17251 area-System.IO Disable failing Pipes test on desktop resolves https://github.com/dotnet/corefx/issues/10899 (sort of) resolves https://github.com/dotnet/corefx/issues/12761 cc: @weshaggard for the decision to leave the System.IO.Pipes and System.IO.Pipes.AccessControl assemblies separate per discussion in #12761 +17253 area-System.Console Fix System.Console difference in behavior We were having a difference in behavior where in `Console.WindowWidth` and `Console.WindowHeight` setters in Core if the value was <= 0 we would throw an `ArgumentOutOfRangeException` no matter if the Console output is redirected. In desktop if the output is redirected and we try to change the Console Width/Height we would get a `System.IO.IOException` so this was causing a test to fail when the output was redirected e.g executing through MsBuild. cc: @weshaggard @tarekgh @stephentoub @danmosemsft +17256 area-Infrastructure CoreFx is now including source and PDBs in all packages It looks like something was done wrong with the work to make combined packages. Only transport packages should have source and PDBs. Non-transport packages should still be split. +17258 area-System.Security Fix NotImplementedExceptions related to sha256, sha384, sha512 in SignedXML Partially fixing https://github.com/dotnet/corefx/issues/16781 - I'm not sure if we do want to abandon some of those algorithms. List of items which is left: - HMACRIPEMD160 - I think @morganbr has mentioned something about abandoning this - DSASignatureDescription - we already do support it when used by URI but no by class name @anthonylangsworth @tintoy @peterwurzinger @bartonjs @morganbr +17259 area-Infrastructure Only include symbols / src in transport packages, also fix pre-existing typo https://github.com/dotnet/corefx/issues/17256 Only includes src / symbols in the transport packages. Also, fixes a long-standing (unrelated) typo that I noticed in dir.props. @ericstj @weshaggard +17260 area-Infrastructure Move to 2.0 CLI for our toolsets As part of the Build from Source effort we need to be able to build CoreFx with the 2.0 CLI otherwise we will not be able do a full stack build from SharedFx to CLI and then reuse that to build the stack again. Somethings that I know will be broken are the 2.0 tools no longer support direct restore of a project.json file which we depend on still in corefx (likely in all our repos). cc @dleeapho @ellismg @chcosta @ellismg are you tracking this work somewhere else? +17261 area-System.Net Include desktop ref for System.Net.Http In most cases we don't include the desktop refs because those configurations are merely present to pass to API Compat. In the System.Net.Http case the ref is actually necessary since the ref is a real ref and not a facade. /cc @weshaggard +17262 area-System.Diagnostics Add net45 target for DiagnosticSource and bring Activity API to NET4.5 Activity API on .NET 4.5 is needed for ASP.NET Core (that targets NET 4.5.1 as well) and ApplicationInsights. Activity.Current is implemented on NET 4.5 with CallContext, that is not available on netstandard1.1, so this target could not be reused for .NET 4.5 +17263 area-Infrastructure Do not block reflection on tests Some tests rely on reflection into themselves, and they should be able to do this. @shmao +17264 area-System.Data Adding Integrated Auth Test with Test Server Adding a test for Integrated Auth for SqlClient on Windows. Currently only the Windows implementation of the server implements Integrated Auth. @geleems @corivera +17265 area-System.Data Fix and clean up the Manual Tests for Sql There are cleanup changes in here 1. Changed the reflect in Kill Connection to look for Managed SNI objects. 2. Deleted a test case which was expecting Integrated Auth to fail on Managed SNI. +17266 area-System.Linq remove reference to System.Reflection.Emit for UAP builds of System.Linq.Expressions remove reference to System.Reflection.Emit for UAP builds of System.Linq.Expressions +17267 area-System.Numerics Add all remaining IEEE754 float types (binary16, binary128, decimal32, decimal64, decimal128), BigDecimal and BigRational to System.Numerics While BigInteger is useful for really big integers, it cannot represent really big decimals. BigRational would be useful in fractional operations (think of 1/3) while BigDecimal could represent something like the square root of 23E-234. BigDecimal could be straight forked from the J# library source (which Microsoft should have) and BigRational could also be straight forked from another pile of Microsoft code (http://bcl.codeplex.com/wikipage?title=BigRational&referringTitle=Home) so it is easy to implement. I would like to see these two this one get added :) +17268 area-System.Runtime Expose and test new string.Join overloads Fixes #5552 +17271 area-System.Collections Add more tests for ImmutableInterlocked.InterlockedCompareExchangeArray Also Fixes #17108 +17272 area-System.Net http request in docker container fails with curl error Near the end of converting a webapi 2 service to aspcore I've run up against a problem hosting the aspcore service in docker. The problem is that no HttpRequest are working anymore in the project. They throw the follow exception: ``` System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: Couldn't connect to server at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) ``` And they only throw this exception when running inside the docker container `FROM microsoft/dotnet:1.0-runtime` and `FROM microsoft/dotnet:1.1.1-runtime` This exception doesn't occur on the host machine running docker and has been no problem so far as I rebuild the project piece by in a new solution. I believe this issue might have started after migrating to csproj from project.json. +17273 area-Meta Generic Type Check Inlining "When writing performance-critical code it often leads to code duplication. Let's say we wanted to make a method that applies an effect on an image, in our case we want to apply a gray-scale and an optional invert. The code could look like this: ```C# public class Effect { public static void Apply(Bitmap bmp, GreyscaleMethod grayscaleMethod, bool invert) { // read bitmap data int w = bmp.Width, h = bmp.Height; var data = bmp.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadWrite, bmp.PixelFormat); if (bmp.PixelFormat != PixelFormat.Format32bppArgb) throw new InvalidOperationException($""Unsupported pixel format: {bmp.PixelFormat}""); var s = data.Stride; unsafe { var ptr = (byte*)data.Scan0; for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { // read RGB (not quite optimized, but that's not the point) int offset = y * s + x; int r = ptr[offset + 1]; int g = ptr[offset + 2]; int b = ptr[offset + 3]; // apply effects per pixel if (grayscaleMethod == GreyscaleMethod.Average) { r = g = b = (r + g + b) / 3; } else if (grayscaleMethod == GreyscaleMethod.Luminance) { r = g = b = (int)(r * 0.2126 + g * 0.7152 + b * 0722); } if (invert) { r = 255 - r; g = 255 - g; b = 255 - b; } // write RGB ptr[offset + 1] = (byte)r; ptr[offset + 2] = (byte)g; ptr[offset + 3] = (byte)b; } } } bmp.UnlockBits(data); } } public enum GreyscaleMethod { None, Average, Luminance, } ``` However if we expect the invert to be only rarely used, that code is slower than it can be because of the constant `if (invert)` check inside the performance-critical inner loop. We could of course create another method that gets called when `invert` is false, but that leads to code duplication, is harder to maintain, etc. What we would need to have both optimal performance and code reuse is a way to get the compiler to generate 2 methods at compile time depending on the value of `invert`. Without any new syntax the code might look like this: ```C# public class Effect { private static void Apply(Bitmap bmp, GreyscaleMethod grayscaleMethod) where invert : Bool { // [...] read bitmap data unsafe { var ptr = (byte*)data.Scan0; for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { // [...] read RGB // apply effects per pixel if (grayscaleMethod == GreyscaleMethod.Average) { r = g = b = (r + g + b) / 3; } else if (grayscaleMethod == GreyscaleMethod.Luminance) { r = g = b = (int)(r * 0.2126 + g * 0.7152 + b * 0722); } if (typeof(invert) == typeof(True)) { // type check r = 255 - r; g = 255 - g; b = 255 - b; } // [...] write RGB } } } bmp.UnlockBits(data); } } public class False : Bool { } public class True : Bool { } public class Bool { } ``` Now that check if a compile-time constant, so the compiler *could* remove the type-condition and its block away when `invert` is `False`, and remove the type-condition but leave its block when `True`, leading to performance optimal code in both cases without code duplication. However does the compiler (or even the JIT) do that? According to [this stackoverflow answer](http://stackoverflow.com/questions/34306049/will-this-comparison-be-compiled-into-a-constant-boolean-value-in-a-generic-clas) it currently does not. This is a proposal to improve the compiler (or JIT) to do that sort of code inlining (through method duplication) for compile-time constant checks. If this were implemented, we can optimize the code even further by doing the same with the `grayscaleMethod` parameter: ```C# public class Effect { private static void Apply(Bitmap bmp) where invert : Bool where greyscaleMethod : GreyscaleMethodEnum { // [...] read bitmap data unsafe { var ptr = (byte*)data.Scan0; for (int y = 0; y < h; y++) { for (int x = 0; x < w; x++) { // [...] read RGB // apply effects per pixel if (typeof(greyscaleMethod) == typeof(GreyscaleMethod_Average)) { r = g = b = (r + g + b) / 3; } else if (typeof(greyscaleMethod) == typeof(GreyscaleMethod_Luminance)) { r = g = b = (int)(r * 0.2126 + g * 0.7152 + b * 0722); } if (typeof(invert) == typeof(True)) { r = 255 - r; g = 255 - g; b = 255 - b; } // [...] write RGB } } } bmp.UnlockBits(data); } } public class GreyscaleMethod_None : GreyscaleMethodEnum { } public class GreyscaleMethod_Average : GreyscaleMethodEnum { } public class GreyscaleMethod_Luminance : GreyscaleMethodEnum { } public class GreyscaleMethodEnum { } ``` Doing the same optimization through code duplication would require 6 methods, and the number would increase exponentially with the number of parameters. However the compiler would know to only generate the methods which are actually used in the code. " +17275 area-System.Collections Migrate new convenience APIs into extension methods Highly used generic types (mostly Collections) pay high cost for every API (method) we add to it. We should revisit the decisions of adding new APIs (esp. convenience APIs) directly on the type and consider moving them into extension methods instead (in future and potentially revisit those we added during 2.0 and did not publish yet). Context: see @jkotas's comment and guidance here: https://github.com/dotnet/coreclr/pull/10203#issuecomment-287526223 +17276 area-System.Data Avoid allocation in TdsParse when reading multiple decimals without a call to writedecimal The TdsParserStateObject contais a array for _decimalBits that is supposed to be reused (See comment: // used alloc'd array if we have one already). But it only gets assigned in TdsParser.WriteDecimal. So if we have a readonly workload we allocate the array every time we access a decimal. Fix: assign the _decimalBits array in TryReadDecimalBits where it gets already checked. +17277 area-Meta Remove NoWarn 0436 from Runtime.Extensions, Threading.Thread & Thread… Remove NoWarn 0436 from Runtime.Extensions, Threading.Thread & Threading csproj Fixes #12678 & #12850 +17281 area-System.Net Proposal: SocketAsyncEventArgs.SetBuffer(Memory) See discussion here: https://github.com/dotnet/corefx/pull/17237#issuecomment-287613725 +17282 area-System.Data SqlClient Named Pipes on Windows doesn't work with \\.\pipe\sql\query While connecting to a Named Pipe instance like \\.\pipe\sql\query using SqlClient on Windows, the connectivity fails. This is happening because `Uri` parsing considers '.' in hostname as an invalid Uri. This is a supported connection string data source and is particularly needed for LocalDb support in Managed SNI. Needed for https://github.com/dotnet/corefx/issues/17166 +17283 area-System.Data Named Pipes integrated authentication doesn't work On Windows, the integrated authentication for Named Pipes doesn't work. This is because in Managed SNI, the tokens are being fetched only during the TCP connectivity. This is particularly needed for LocalDB support https://github.com/dotnet/corefx/issues/17166 +17284 area-System.Data Allow . as hostname in pipe names Fixes https://github.com/dotnet/corefx/issues/17282 Since Uri cannot handle . as hostname, the changes include splitting the named pipe data source by \ and generating the hostname and pipename from the split parts. Apart from the tests added, I ran some tests with a SqlServer to see if the connectivity works. cc @corivera @geleems +17285 area-Infrastructure Updated cmake link to target stable builds +17286 area-System.Memory SpanPool Like the new `ArrayPool`, I could see a SpanPool being useful once/if Span becomes better supported. And since `Spans` are structs, you could do cool stuff like a bunch of Spans could be backed by a single large Array, allowing better cache locality, assuming the Spans are larger than a cache-line and multiples of a cache-line. And reducing object counts. Shrinking the pool could also represent an issue, if supported. +17287 area-Infrastructure Allow not to publish runtime and xunit stubs CLR unittest needs pure FX libraries without runtime and xunit stubs, but it seems that there is no way to exclude runtime and xunit stubs from output. This commit allows users to get pure FX libraries without runtime/xunit stubs via setting SkipRuntimePublish and SkipXunitPublish as true. The default behavior is same as before. +17289 area-Infrastructure Update ProjectNTfs to beta-25120-00 (master) +17292 area-System.Threading DataFlow: Add ability to restrict Duplicates "The DataFlow components are great for managing concurrency/queueing. However, they do not provide a way to ensure that items are not added more than once at a given time. For instance, if you are using an `ActionBlock` to process files received, there is no mechanism to ensure that the file is not added a second time if it is already present (e.g. via a manual catchup process). class Program { private static readonly ActionBlock worker = new ActionBlock(file => ProcessFile(file), new ExecutionDataflowBlockOptions() { MaxDegreeOfParallelism = 1 }); private static void ProcessFile(string file) { //Process the File. new ManualResetEvent(false).WaitOne(10000); File.Delete(file); } private static Timer ScanTimer; static void Main(string[] args) { ScanTimer = new Timer() { Interval = 1000, AutoReset = true, Enabled = true }; ScanTimer.Elapsed += (sender, eventArgs) => GetFiles(); ScanTimer.Start(); } private static void GetFiles() { foreach (var file in Directory.EnumerateFiles(@""C:\Temp\Files"", ""*.*"", SearchOption.TopDirectoryOnly)) { worker.Post(file); //Files currently Queued will be added a second time. } } } Can we add a mechanism to ensure uniqueness? Some options: * Expose methods to show InProcess/QueuedItems. Allow users to implement their own checking. e.g. `worker.PostedItems` * Provide an, `ExecutionDataflowBlockOptions` Property to ensure uniqueness. Options on this: * Uniqueness using the default `Equals` mechanism - Devs are required to override this if required for specific use cases. * Allow devs to specify an equality method during specification of the option, e.g. ` new ExecutionDataflowBlockOptions() { EnsureUniqueness = (a, b) => return a.Id == b.Id }`" +17295 area-System.Net Remove SocketAsyncEventArgs._ptrNativeOverlapped `SocketAsyncEventArgs` uses a `SafeNativeOverlapped` to represent the `NativeOverlapped*` it gets back from the `PreAllocatedOverlapped`. This leads to several costs: - Allocation/disposal of the `SafeNativeOverlapped`. It used to be allocated/disposed for every operation, and that was fixed. But it's still allocated/disposed every time the `SocketAsyncEventArgs` changes associated with a `Socket`, and that's problematic in a pooling situation, where a `SocketAsyncEventArgs` is taken from a pool, used for an operation, and then returned to the pool to be used subsequently by another operation, likely on a different socket. - It adds a field to `SocketAsyncEventArgs`, as the `SafeNativeOverlapped` instance needs to be disposed of only when the operation completes. - As with any `SafeHandle`, it adds AddRef/Release costs to each P/Invoke with which it's used. But, it's unnecessary on `SocketAsyncEventArgs`. The overlapped has a very controlled lifetime: it's created internally, it's passed to an internal async operation, and upon completion of that operation it's freed. The benefits of the `SafeHandle` don't apply here: - `SafeHandle`s help guaranteed cleanup via a finalizer, but we're not publishing this pointer and have knowledge of its complete lifetime. The only place it would help is if we got an asynchronous exception (e.g. a thread abort) in a very unexpected place, and we don't need to be reliable against such things (nor would we be even if we added that). - `SafeHandle`s help guarantee that the pointer won't be disposed of while still in use, but that's mainly relevant when handed out to multiple pieces of code, and in particular code we don't control... in this case, it's not handed out to any code other than that in this one file. On my machine, this improves the throughput by ~13% in the example at https://github.com/dotnet/corefx/pull/17237#issuecomment-287613725 (which is stressing this case by changing the socket on every send/receive and doing very fast send/receives), and makes it allocation-free to change the Socket with which a SocketAsyncEventArgs is associated (whereas today there’s a 40byte SafeHandle allocation each time it changes). With a small modification to that test to not change the buffer and instead set it once up front, this still has an ~8% throughput improvement, most of which is due to the reduction in SafeHandle marshaling and associated AddRef/Release costs. cc: @geoffkizer, @davidsh, @cipop, @jkotas, @vancem +17296 area-System.Net Renames the HTTP outgoing request Activity to HttpReqOut It was named simply 'Activity' which is too generic. This will be used as a template for other logging so we want to use best practices. Others have not yet taken a dependency on the name, but this will change soon, so this is our only chance to do this. +17297 area-System.Memory Porting Span speedup of CopyTo into ReadOnlySpan +17299 area-System.Net "HttpMethod should include ""PATCH"" as a property" "# Latest Proposal Expose Http `PATCH` Verb alongside [existing verbs on `HttpMethod`](https://apisof.net/catalog/System.Net.Http.HttpMethod) `GET`, `PUT`, `POST`, `DELETE`, etc. and on [`HttpClient` as Async methods](https://apisof.net/catalog/System.Net.Http.HttpClient) ```diff namespace System.Net.Http { public class HttpClient { + public Task PatchAsync(string requestUri, HttpContent content); + public Task PatchAsync(Uri requestUri, HttpContent content); + public Task PatchAsync(string requestUri, HttpContent content, CancellationToken cancellationToken); + public Task PatchAsync(Uri requestUri, HttpContent content, CancellationToken cancellationToken); } public class HttpMethod { + public static HttpMethod Patch { get; } } } ``` # Original Proposal ## Description As a part of Http requests, PATCH is an often used way to do a partial update of an object, and is common enough to merit it's own property within the `HttpMethod` class. ## Proposed API Changes ```csharp HttpMethod.Patch; ``` ## Example ```csharp // old var request = new HttpRequestMessage { Method = new HttpMethod(""PATCH"") // deviates from Get, Put, Post, Delete }; // new var request = new HttpRequestMessage { Method = HttpMethod.Patch // matches Get, Put, Post, Delete }; ``` I'd like to submit a PR with the simple change to add PATCH as an Http Method in order to round out the class. This change in the future could also extend the `HttpClient` to include new `PatchAsync` methods." +17300 area-System.Diagnostics Flaky test System.Diagnostics.TraceSourceTests.SwitchClassTests.PruneTest "This test fails when a GC happens to occur after this `<<<<` line I'm not sure what it's trying to achieve (beyond testing the GC itself) so I can't guess what the fix is. ``` ``` ``` [System.Runtime.CompilerServices.MethodImplAttribute(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] static WeakReference PruneMakeRef() { return new WeakReference(new TestSwitch()); } [Fact] public void PruneTest() { var strongSwitch = new TestSwitch(); var weakSwitch = PruneMakeRef(); //<<<< GC here Assert.True(weakSwitch.IsAlive); GC.Collect(2); Trace.Refresh(); Assert.False(weakSwitch.IsAlive); GC.Collect(2); Trace.Refresh(); } ``` @brianrob " +17301 area-Infrastructure Update dogfooding instructions See comments at https://github.com/dotnet/corefx/commit/38dfde9b867a25db2d98b1fdcb86dddbd87d5928#commitcomment-21392770 from @marksmeltzer. There are 2 issues that should be looked at. 1. Why the Microsoft.NETCore.Platforms package isn't built by default. 2. Why does setting BuildNumberMinor not update the package version cc @ericstj +17302 area-Serialization Porting Serialization Tests in NetNative Repo only to CoreFx Here are the list of tests that exist in NetNative repo only. We'd like to port the tests to CoreFx as we are going to remove the tests from NetNative repo soon. ``` DCJS_ConcurrentDictionary DCJS_InvalidDataContract_Write_Invalid_Types_Throws DCJS_ValidateExceptionOnUnspecifiedRootSerializationType DCJS_WinMdTypes DCS_NativeDll DCS_ReadOnlyDictionaryCausingDuplicateInvalidDataContract DCS_InvalidDataContract_Empty_Collection DCS_InvalidDataContract_NoEmpty_Collection DCS_InvalidDataContract_Read_Invalid_Types_Throws DCS_InvalidDataContract_Write_Invalid_Types_Throws DCS_ValidateExceptionOnUnspecifiedRootSerializationType DCS_WinMdTypes Xml_DefaultNamespaceChange_ObjectAsRoot Xml_DefaultNamespaceChange_SimpleArray_ObjectAsRoot Xml_DefaultNamespaceChange_XmlAttributesTestAsRoot Xml_TypeWithIndirectReferencedAssembly Xml_DerivedTypeWithDifferentOverrides Xml_ValidateExceptionOnUnspecifiedRootSerializationType Xml_VerifyCompilationIssueOnly Xml_NookTypes Xml_WinMdTypes ``` /cc: @zhenlan +17304 area-System.IO Provide overloads of File.Copy that support cancellation and progress File.Copy uses the Win32 CopyFileW/A API. There's also CopyFile2 (or CopyFileEx), which support cancellation and progress. That API should enable exposing additional overloads of File.Copy: * `(..., CancellationToken cancellationToken);` * `(..., IProgress progress);` * `(..., IProgress progress, ICancellationToken cancellationToken);` With something like: ```c# public class CopyFileProgressInfo { public long TotalFileSize { get; } public long TotalBytesTransferred { get; } // Remaining values are less important. public long StreamSize { get; } public long StreamBytesTransferred { get; } public int StreamNumber { get; } public string SourceFileName { get; } public string DestinationFileName { get; } // Or even more values could be added; details depends on which API is used. } ``` for progress. Current alternatives, such as using CopyToAsync from one stream to another, can't take advantage of a number of optimizations done within the CopyFile* APIs, including avoiding network roundtripping of the data when copying from a server to a server. Some additional details: https://blogs.technet.microsoft.com/markrussinovich/2008/02/04/inside-vista-sp1-file-copy-improvements/ In practice, I've seen CopyToAsync on streams be multiple times slower than File.Copy (CopyFile* APIs). It would be great to have support for cancellation and progress without having to lose significantly in performance. +17305 area-System.Security DSACng does not match netfx or NIST when H < sizeof(q) A TODO got left in the implementation of DSACng concerning the scenario where the hash size is smaller than the Q size: https://github.com/dotnet/corefx/blob/2c32fb1c1a14a054609a6f1a94927eb4e13bdd5e/src/Common/src/System/Security/Cryptography/DSACng.SignVerify.cs#L61-L70. The code, as it stands, produces answers when netfx does not. And a NIST CAVP test confirms that the behavior it does do is not standards-conformant. FYI @steveharter. +17306 area-System.IO Provide a File.CopyAsync method Related to #17304. File.Copy currently blocks the calling thread. As mentioned in the related issue, .NET alternatives lose significant performance optimizations done within the CopyFile* APIs. It would be great if .NET had a good, general purpose, async file copy method. Doing so well (fast) probably requires a new Win32 API that support something like overlapped I/O to avoid blocking the calling thread. Some possible overloads: * `Task CopyAsync(string sourceFileName, string destFileName);` * `Task CopyAsync(string sourceFileName, string destFileName, CancellationToken cancellationToken);` * `Task CopyAsync(string sourceFileName, string destFileName, IProgress progress, CancellationToken cancellationToken);` It probably makes sense to provide an async version of File.Move at the same time, which also likely requires new Win32 API support. +17309 area-System.Reflection Recognize the framework and version of an assembly with the MetadataReader The System.Reflection.Metadata.MetadataReader class allows me to read the metadata without loading permanently the assembly in memory. Once I open the assembly with the MetadataReader, what is the best way to distinguish the assemblies targeting different frameworks? - netstandard (framework neutral) - .net framework - .net core And for each of those, how can I read the version (I mean for example netstandard1.4, netcoreapp1.1 and net 4.6.2)? Reading the custom attributes or what else? +17316 area-Meta General performance question (comparing Nightly to 1.1) I've got a console app and library I'm working on that targets CoreFx 1.1 and 2.vNext (the nightly). I also target the full framework. This app (which will be released as OSS soon) parses text documents and spits out new text documents. It hits the System.IO APIs (mostly Path.GetFullPath), System.Text APIs (mostly StringBuilder), the collection classes (mostly Dictionary<,>), and System.Text.RegularExpression API (mostly matching). The CoreFx 1.1 build (compiled in release mind you) runs about 25% slower than the full framework build (4.6.2) of the app. The CoreFx 2.0 nightly build (also in compiled in release) runs about 40% slower than full framework and 15% slower than CoreFx 1.1 version of the app (for the code compiled against my local copy of the nightly, I did a release publish build just to be sure that I was running against the latest DLLs). Are there any ingrained debug flags, etc., that need to be disabled (perhaps by command line option?) when compiling the latest CoreFx sources to get maximum performance? Or is there some other general reason that might explain the performance drop I'm seeing from 1.1? This is the same exact code running on all three platforms. I will be publishing this project soon. So it might be worth looking into at that point. I don't know if the profiling tools are working for the latest CoreFx builds yet. If so, I'd be happy to post profiler results if anyone can point me to some documentation on how to profile when dogfooding a local build of CoreFx. I'm sure the focus right now is more on completeness and correctness. But I am a bit of a performance hawk. So I thought I'd ask. +17317 area-System.Net WinRT WebSocket throws unhandled exception on lost connection "The issues affects UWP implementation of `ClientWebSocket`. When `ReceiveAsync` call is pending and the connection is lost, `System.Net.WebSockets.WinRTWebSocket.OnMessageReceived` throws an exception with HRESULT 0x80072EFE (""The connection with the server was terminated abnormally"") here: https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WinRTWebSocket.cs#L282 The exception is thrown on a background thread, which cannot be handled so it brings down the process." +17318 area-System.Collections [Performance] Take advantage of new array range check elimination in other collections See https://github.com/dotnet/coreclr/pull/9539#issuecomment-287937667; doing `if ((uint)index >= (uint)array.Length) { throw something; }` will now elide the range check for `array[index]` afterwards. Probably won't yield a huge benefit in most placecs, but the perf gains would be essentially free. We should probably do this in collections that are backed by arrays, e.g. [here](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/Stack.cs#L207) is one place where the new JIT behavior could be put to use. +17323 area-System.IO Adding tests for System.IO.Path.IsPathRooted that checks if invalid v… …olume letters are indeed invalid fixes https://github.com/dotnet/coreclr/issues/10297 Tests should work after coreclr merge is synced into corefx +17324 area-System.Net Can not create Raw socket on CentOS 7 Hello everyone, I get a problem when create a Socket object with Raw type. My environment as follow: * centos 7 x64 * dotnet Core 1.0.1 My code: ```C# _socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP); ``` It work perfect on Windows, but throw a SocketException on CentOS. The Exception: ``` System.Net.Sockets.SocketException: Protocol not supported at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType) ``` how can I make it work? Thx +17327 area-System.Net Flaky test System.Net.Tests.WebProxyTest.BypassOnLocal_MatchesExpected "This test fails when a GC stress on Ubuntu 16.04 LTS: I am not sure if it is a bug or not, open this issue to track it c.b__27_1(IAsyncResult asyncResult) in /home/gcstress/repos/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 652 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.WebProxyTest.d__10.MoveNext() in /home/gcstress/repos/corefx/src/System.Net.WebProxy/tests/WebProxyTest.cs:line 146 at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() in /home/gcstress/repos/corefx/src/System.Linq/src/System/Linq/Select.cs:line 133]]> " +17330 area-System.Net Socket connection hangs on Linux when buffers aren't read fully before closing connection On windows 10 works perfectly. On ubuntu16 hangs every time. dotnet 1.0.0-preview2-1-003177 command to reproduce (every time) at the following links : ``` dotnet test src/FastTests -class FastTests.Server.OAuth.CanAuthenticate -verbose ``` At first I used WebSocket and the connection hanged. Repro every time at: https://github.com/ravendb/ravendb/commit/1990e41e4da8d3b97e4ba98714028ac27eb9f514 While thinking this is a websocket problem, I changed the code to use http requests, but it still hangs in the same way. Only when I drains the buffers it passes: https://github.com/ravendb/ravendb/commit/d8f4aec4561e51db50b739288b520b8121e45a22 The last commit needed only in Linux. In windows it works fine. My suspect is websocket disconnections timeouts and hangs on linux are related to the above bug, and solving it for http requests will help also with websockets. +17334 area-System.Net Fix Http test regarding uri fragments and redirection No real test code change. But confirming that this test needs to be skipped on Windows 7 due to a bug in WinHTTP with preserving fragments in an uri during redirection. The WinHTTP bug was fixed in Windows 8. Fixes #16272 . +17337 area-Infrastructure Move corefx from OSX 10.10 to 10.12 For 2.0 we are supporting only a min of OSX 10.12 so we need to move any references to 10.12. - Update any CI or build machines - Update any RID stuff in the repo fyi @gkhanna79 @ericstj +17339 area-System.Security X509Chain does not complete on Linux if a certificate shares a name with its issuer Hi, I'm trying to use X509Chain in order to validate a self-signed chain. I have created a chain that consists of CA->Intermediate->Server. In order to validate the chain I'm using the following code: ``` using (X509Chain certsChain = new X509Chain()) { //Store CA temporary in certificats store certsChain.ChainPolicy.ExtraStore.Add(caCert); certsChain.ChainPolicy.ExtraStore.Add(intermediateCert); certsChain.ChainPolicy.VerificationFlags = X509VerificationFlags.AllowUnknownCertificateAuthority; // This setup does not have revocation information certsChain.ChainPolicy.RevocationMode = X509RevocationMode.NoCheck; // Build the chain var buildStatus = certsChain.Build(serverCertificate); // Are there any failures from building the chain or not enough statuses in chain if (buildStatus == false || certsChain.ChainStatus.Length == 0) { return false; } if (certsChain.ChainElements.Count != 3) { return false; } } ``` On Windows I get certsChain.ChainElements = 3 and certsChain.ChainStatus[0].Status = X509ChainStatusFlags.UntrustedRoot which is correct. On Debian I get **certsChain.ChainElements = 1** and certsChain.ChainStatus[0].Status = X509ChainStatusFlags.PartialChain No matter what I do, I cannot make the chain validation on Debian with self-signed certificates. Please assist as it seems like a bug. Thanks, Avi. +17341 area-System.Net Use IPAddress.Address in place of GetAddressBytes Fixes #12662. I could find only one instance in CoreFx repo. @stephentoub @karelz please review. +17342 area-System.IO Compression.ZipFile support for Unix Permissions Split from #17067 We should add support in the Unix ZipFile for capturing the permissions of entries created using `CreateFromDirectory`, `CreateEntryFromFile`, etc. # Code This is what the code to create would look roughly like: ``` // ZipFileExtensions.Unix.cs public static partial class ZipFileExtensions { internal static ZipArchiveEntry DoCreateEntryFromFile(ZipArchive destination, string sourceFileName, string entryName, CompressionLevel? compressionLevel) { ZipArchiveEntry entry = SharedDoCreateEntryFromFile(destination, sourceFileName, entryName, compressionLevel); ApplyPermissions(entry, sourceFileName); } internal static void ApplyPermissions(ZipArchiveEntry entry, string sourceFileName) { Interop.Sys.FileStatus output; Interop.Sys.Stat(sourceFileName, out output); // The Stat Mode lower two bytes represent the filetype and permissions of a file/entry. These directly // correspond to the high two bytes of the Unix `zip` external attributes encoding. entry.ExternalAttributes |= (output.Mode << 16); } } ``` ``` // ZipFileExtensions.Windows.cs public static partial class ZipFileExtensions { internal static ZipArchiveEntry DoCreateEntryFromFile(ZipArchive destination, string sourceFileName, string entryName, CompressionLevel? compressionLevel) { return SharedDoCreateEntryFromFile(destination, sourceFileName, entryName, compressionLevel); } } ``` ``` // ZipFileExtensions.cs public static partial class ZipFileExtensions { internal static ZipArchiveEntry SharedDoCreateEntryFromFile(ZipArchive destination, string sourceFileName, string entryName, CompressionLevel? compressionLevel) { .... this is the same code as the current DoCreateEntryFromFile } } ``` # Usage There's a question here as to whether the permissions capturing/writing should be done by default or whether we should offer an opt-in/opt-out. There's very little cost associated with including permissions in the zips that we create and not any compat worries, but applying permissions to unzipping is a bit more tricky. # Benefit Zips created using ZipFile on Unix will be usable interchangeably with those created using the `zip` command as far as permissions are concerned. Using ZipFile to unzip zips created with `zip` will create files that have the same permissions as they were created with. @eerhardt is happy. cc: @stephentoub @JeremyKuhne @terrajobst +17345 area-System.Reflection "Need an api to determine if a Type is a ""plain old non-constructed type.""" "**Proposal for New API:** ```c# class Type { public virtual bool IsTypeDefinition { get { throw NotImplemented.ByDesign; } } } ``` **Why** Right now, if we want to test if a type is a plain old non-constructed type (i.e. ""one with a mdTypeDef metadata token""), we have to use this windy expression: ```c# if (!type.HasElementType && !type.IsConstructedGenericType && !type.IsGenericParameter) {...} ``` There are a few problems with this: - It's a mouthful. - It take 3 virtual calls - It's not robust against future expansions of the api. Suppose a future expansion to Reflection adds more slices to the Venn diagram (e.g. function pointer types, modified types, or something not yet envisioned...). We want to be able to write robust code that falls through to an ""I don't understand this. NotSupportedException"" fallback, but right now, there's no way to do that. We have to call every other **Is** property we know of, then hope that the ""else"" case will represent the right set for all time. There is also completeness issue - we have inclusion predicates for every other slice of the Venn diagram, yet the most common slice of all lacks one? **Naming** I'm proposing it be called **IsTypeDefinition** for two reasons: - We already have **IsGenericTypeDefinition** that captures the subset of defined types with generic parameters. So **IsTypeDefinition** is a natural derivation from that. - It also rhymes naturally with **Assembly.DefinedTypes** (which returns all the non-constructed types in an assembly.)" +17346 area-Infrastructure Run package closure validation during official builds, possibly CI I added some validation for packages in https://github.com/dotnet/corefx/pull/17246 This is tracking additional improvements: - [x] Switch to latest CLI and MSBuild based projects. - [ ] Add test cases post-restore that examine the following: - [x] No bin-clashes - [ ] API compat between ref & lib. - [x] No type-clashes in ref. - [x] Verify closure - [ ] Enable the tests to run in helix / official builds. For 3 @Chrisboh pointed me at some docs for that: https://github.com/dotnet/core-eng/pull/598 /cc @chcosta @MattGal @weshaggard +17347 area-Infrastructure [WIP] Move contents of binplace.targets Attempts to fix #14588 * The targets themselves are now located in FrameworkTargeting.targets. This will let us easily merge them back into buildtools, where the common logic should live. * The specific properties used in corefx are now in dir.targets. The discussion in #14588 originally mentioned putting them in dir.props, but they actually need to be in dir.targets based on their ordering requirements. There was also some concern about bloating up dir.props / dir.targets. Do we want to try to separate them into a different file / folder? I haven't made any functional changes here, just moved things around. Further cleanup ideas are welcome. @weshaggard @ericstj +17348 area-System.Net Skip NetEventSource logging tests on .NET Framework The 'NetEventSource' logging only works on .NET Core libraries. So, we need to skip these tests when running on full .NET Framework. Fixes #14989 +17351 area-System.Net Skip more NetEventSource logging tests on .NET Framework Similar to PR #17348. The 'NetEventSource' logging only works on .NET Core libraries. So, we need to skip these tests when running on full .NET Framework. +17352 area-System.IO Fix Pipes AccessControl behavior to match Desktop There are two discrepancies in System.IO.Pipes.AccessControl behavior between netfx/netcoreapp that this resolves: - SetAccessControl on a broken NamedPipeClientStream should throw an IOException (before this was throwing an InvalidOperationException) - GetAccessControl on a NamedPipeClientStream for which the paired NamedPipeServerStream has been disconnected should throw an InvalidOperationException (before this was hitting a Debug statement in Debug or an InvalidOperationException in Release). This PR also expands the Pipes.AccessControl tests to cover the above scenarios as well as several others that we weren't testing. replaces https://github.com/dotnet/corefx/pull/17251 resolves #10899 resolves #12761 +17353 area-System.Numerics Implement SinPi and CosPi "We should implement SinPi(x) and CosPi(x) methods in the System.Math class. These methods are listed in section 9.1 of the [IEEE 754 spec](https://www.csee.umbc.edu/~tsimo1/CMSC455/IEEE-754-2008.pdf) as recommended functions. The methods return sin(pi * x) and cos(pi * x). They are different from Sin(PI * x) and Cos(PI * x) because PI is a finite-precision approximation to pi, while pi in the definition of SinPi and CosPi is effectively infinitely precise. The limited precision of PI can cause unexpected behavior for functions like Sin(PI * x). For example, while sin(pi * n) = 0 for all integer n, Sin(PI * n) != 0.0 for any n != 0, and can get quite far from zero for large n. (See issue #10276). SinPi(n) == 0.0 for all n. It is actually easier to implement SinPi and CosPi than Sin and Cos. Internally, Sin and Cos are computed in two steps: first x is written as x = m (pi / 2) + x', where m is an integer and |x'| <= pi / 4, then sin(x') is determined via an optimized expression that only applies to the allowed range of x'. The first step is actually quite difficult, since one requires an extended-precision value of pi (~1100 bits) and corresponding a extended-precision multiplication algorithm in order to determine x' within a few ulp for all representable x. For SinPi and CosPi, the ""range reduction"" step is a simple round-to-nearest-integer in order to write 2 x = m + x'. The resulting fractional part is then fed into the same small-angle logic used in Sin and Cos after range reduction. Ideally, this would be implemented inside the same native library that computes Sin and Cos, so that one could route directly to the small-angle logic after the round-to-nearest-integer logic. But I am told that this native library does not expose its internal small-angle method, nor does it implement SinPi and CosPi. Even implemented in managed code, though, SinPi and CosPi should be quite fast, because round-to-nearest-integer is fast and most of the range reduction machinery inside Sin and Cos will be bypassed for small arguments. Here is a simple example implementation: ``` public static double SinPi (double x) { if (x < 0.0) return (-SinPi(-x)); long y0; double y1; ReduceByOnes(2.0 * x, out y0, out y1); double z = Math.PI / 2.0 * y1; // Since |y1| <= 0.5, PI is a sufficiently good approximation to pi to preserve full accuracy // in this product and the following trig function. switch (y0 % 4L) { case 0L: return Math.Sin(z); case 1L: return Math.Cos(z); case 2L: return -Math.Sin(z); case 3L: return -Math.Cos(z); default: throw new InvalidOperationException(); } } private static void ReduceByOnes(double x, out long x0, out double x1) { double y = Math.Round(x); const double max = (double) (1L << 56 ); if (y < max) { // All integers can be represented with full precision by a double fit into a long. x0 = (long) y; x1 = x - y; } else { // For sufficiently big values, all representable doubles are integers divisible by 4. x0 = 0L; x1 = 0.0; } } ``` The spec also recommends AtanPi and Atan2Pi, and TanPi is another natural candidate." +17354 area-Infrastructure Readd testResults.xml now that FileStream is available for uapaot cc: @weshaggard Now that FileStream is available in uapaot we can re-add the xunit option to write testResults.xml plus also add the option to redirect the output of the Console to a file and then printing the contents of that file. +17356 area-System.Text System.Text.Encoding.GetEncoding(Int32 codepage) 850 error "While migrating SharpZipLib pcl library to netstandard1.3 and tests to netcore2.0 I noticed an issue with a few of their tests: ``` ``` This is what triggers the exception: `System.Text.Encoding.GetEncoding(defaultCodePage);` Default code page gets set like that: `static int defaultCodePage = Encoding.UTF8.CodePage;` Did we change anything with netcore regarding codesets? Source: https://github.com/ViktorHofer/SharpZipLib/blob/master/src/ICSharpCode.SharpZipLib/Zip/ZipConstants.cs#L550" +17357 area-System.Memory Adding Span IndexOfAny APIs that take 2 and 3 bytes From: https://github.com/dotnet/corefxlab/pull/1348#issuecomment-287998752 Part of https://github.com/dotnet/corefxlab/issues/1314 / https://github.com/dotnet/corefxlab/issues/1293 Adding: ```C# public static int IndexOfAny(this Span span, byte value0, byte value1) public static int IndexOfAny(this Span span, byte value0, byte value1, byte value2) public static int IndexOfAny(this Span span, ReadOnlySpan values) public static int IndexOfAny(this ReadOnlySpan span, byte value0, byte value1) public static int IndexOfAny(this ReadOnlySpan span, byte value0, byte value1, byte value2) public static int IndexOfAny(this ReadOnlySpan span, ReadOnlySpan values) ``` Edit: IndexOf => IndexOfAny cc @KrzysztofCwalina, @davidfowl +17361 area-System.Memory Fix array variance checks for portable span Fix for #14533 +17362 area-System.Net DualModeConnect_IPAddressListToHost_Throws failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_debug_prtest/4847/consoleText ``` System.Net.Sockets.Tests.DualModeConnectToIPAddressArray.DualModeConnect_IPAddressListToHost_Throws(connectTo: [127.0.0.1], listenOn: ::, dualModeServer: False) [FAIL] Assert.Throws() Failure Expected: typeof(System.Net.Sockets.SocketException) Actual: (No exception was thrown) Stack Trace: /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(283,0): at System.Net.Sockets.Tests.DualModeConnectToIPAddressArray.DualModeConnect_IPAddressListToHost_Throws(IPAddress[] connectTo, IPAddress listenOn, Boolean dualModeServer) ``` +17365 area-Infrastructure Xunit test runner on .NET Framework doesn't work with ITestOutputHelper "While debugging test failures when running CoreFx tests against the full .NET Framework, I discovered that exceptions are being thrown when using the ITestOutputHelper interface. So, this example code will throw an exception on the `_output.WriteLine(""Hello World"")` line: ```c# using Xunit; using Xunit.Abstractions; public class MyTestClass { private readonly ITestOutputHelper _output; public MyTestClass(ITestOutputHelper output) { _output = output; } [Fact] public void SimpleTest__Success() { _output.WriteLine(“Hello World”); } ``` Our test build/infrastructure system currently invokes tests targetting .NET Framework like this: >call xunit.console.exe TestAssembly.dll -noshadow -noappdomain -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetfxtests -notrait category=OuterLoop -notrait category=failing -notrait category=nonwindowstests This causes an exception to be thrown >System.InvalidOperationException : There is no currently active test case. The exception is coming from Xunit: https://github.com/xunit/xunit/blob/master/src/xunit.execution/Sdk/Frameworks/TestOutputHelper.cs#L50 Removing the -noappdomain parameter makes things work again and no exception is thrown. However, according to @safern, we need that parameter because ""The -noappdomain is needed for other tests because if not we would get the failures as a serialization exception instead of having an assert failure"" This is probably a bug in Xunit. ITestOutputHelper is used in a lot of networking tests and a few other tests in CoreFx (e.g. Xml). " +17366 area-Serialization Add Test for Types Having Virtual Generic Property @mconnew found that it's currently not possible to create delegate for virtual generic method. As reflection based serialization creates setter/getter delegates for properties, we'd like to check if it would fail when serializing types having virtual an generic property. The task is to add tests for this case. +17367 area-System.Runtime Named Multiply and Divide methods on TimeSpan Update refs and add tests. Closes #16476 Won't pass CI until dotnet/coreclr#10366 and dotnet/corert#3052 are in. +17368 area-System.IO File.GetLastWriteTime throws on missing files on Linux, but not Windows "On .NET Framework and CoreCLR on Windows, I can safely call `File.GetLastWriteTime` on a file that does not exist, and I get ""December 31, 1600 4:00:00 PM"" returned. But on Linux, CoreCLR throws `FileNotFoundException`. ``` System.IO.FileNotFoundException: Could not find file '/mnt/c/git/libgit2sharp/LibGit2Sharp/obj/Debug/netstandard1.3/AfterRebaseStepInfo.348465dd.generated.cs'. [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] File name: '/mnt/c/git/libgit2sharp/LibGit2Sharp/obj/Debug/netstandard1.3/AfterRebaseStepInfo.348465dd.generated.cs' [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] at System.IO.FileSystemInfo.EnsureStatInitialized() [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] at System.IO.FileSystemInfo.System.IO.IFileSystemObject.get_LastWriteTime() [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] at System.IO.FileSystemInfo.get_LastWriteTimeUtc() [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] at System.IO.UnixFileSystem.GetLastWriteTime(String fullPath) [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] at System.IO.File.GetLastWriteTime(String path) [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] at CodeGeneration.Roslyn.Tasks.Helper.<b__38_1>d.MoveNext() [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] --- End of stack trace from previous location where exception was thrown --- [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] at CodeGeneration.Roslyn.Tasks.Helper.Execute() [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] at CallSite.Target(Closure , CallSite , Object ) [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] at CodeGeneration.Roslyn.Tasks.GenerateCodeFromAttributes.Execute() [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] at Microsoft.Build.BackEnd.TaskBuilder.d__25.MoveNext() [/mnt/c/git/libgit2sharp/LibGit2Sharp/LibGit2Sharp.csproj] ``` I notice that the problem isn't in `File.GetLastWriteTime` itself, because `FileSystemInfo.get_LastWriteTimeUtc()` also is not expected to throw in this case either. I suggest for ease of interoperability, we keep corefx APIs behaving the same way across operating systems for this." +17369 area-Microsoft.CSharp Remove dead code from Microsoft.CSharp Remove unused internal types `mdToken` type is only use once in a parameter that is in turn unused. Remove that parameter an then the type. Exclude `Equals` overloads from coverage when never called. Defensive to leave them in release builds, but they should never be hit so fail an assertion if they ever are. Simplify `SymWithType`'s `!=` to the negation of `==`. Remove `Aggregates._isComImport`. Is correctly set, but then never used. Clean-up: Use C# keywords rather than .NET type names and remove some unused directives. +17373 area-System.Data System.Data.SqlClient.Tests.ExceptionTest.NamedPipeTest failed in CI "COnfiguration: OuterLoop_Windows10_release ([build#134](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win10_release/134/consoleText)) Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_win10_release/134/consoleText ~~~ System.Data.SqlClient.Tests.ExceptionTest.NamedPipeTest(dataSource: \""np:\\\\\\\\.\\\\pipe\\\\sqlbad\\\\query\"") [FAIL] Assert.Contains() Failure Not found: (provider: Named Pipes Provider, error: 11 - Timeout error) In value: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) Stack Trace: D:\j\workspace\outerloop_win---6835b088\src\System.Data.SqlClient\tests\FunctionalTests\ExceptionTest.cs(116,0): at System.Data.SqlClient.Tests.ExceptionTest.VerifyConnectionFailure[TException](Action connectAction, String expectedExceptionMessage, Func`2 exVerifier) D:\j\workspace\outerloop_win---6835b088\src\System.Data.SqlClient\tests\FunctionalTests\ExceptionTest.cs(124,0): at System.Data.SqlClient.Tests.ExceptionTest.VerifyConnectionFailure[TException](Action connectAction, String expectedExceptionMessage) D:\j\workspace\outerloop_win---6835b088\src\System.Data.SqlClient\tests\FunctionalTests\ExceptionTest.cs(91,0): at System.Data.SqlClient.Tests.ExceptionTest.NamedPipeTest(String dataSource) ~~~" +17376 area-System.Collections Feature - ObservableCollections , Linq "Not sure if I'm in the right forum for this suggestion. It will be truly nice if the language team can extend the functionality of ObservableCollections to include functionality to detect when the item properties in the collection change (row change) , currently this does not seem possible it detects only add/ removed rows and not updated rows. UPDATE: To be moved into separate issue: ~~Also, in linq we can't exclude field name in the select statement. `List.Select(x=> new { column1 , column2 })`~~ ~~using code first approach in EF it would be seriously nice if we can say ""give me all table fields except the byte[] field of 20mb. By selecting the field names in the current linq scenario changing the database (code first - adding columns) you now always have to remember to add the new columns in the select statements. A better scenario would have included those new fields but still excluded the large byte[] field. `List.SelectAllExcept(x=> new { byte[] columns1 , byte[] column2 })`~~ Using currently .net core 1.1 Thks. " +17377 area-System.Runtime FormatterServices.GetSafeUninitializedObject I've been Googling and reading my way through issues on this repo for nearly an hour now and cannot figure out how to call `FormatterServices.GetSafeUninitializedObject(Type)` from .NET Core. I've tried adding a reference to every single System.Runtime.* NuGet package and I've tried targeting every single version of .NET Standard and .NET Core App 1.1 to no avail. Is this API available in .NET Core, and if so, what do I need to do to use it? Thanks. +17378 area-System.Memory IPAddress: use Span to support less allocaty IPv6 The IPAddress class has a constructor which accepts a long and an Address property that returns a long: ```c# IPAddress(Int64) public long Address { get; set; } ``` This makes it possible to: - create an IPv4 IPAddress without allocating a byte[] which isn't stored - retrieve the IPv4 address bytes without allocating a byte[] - change the IPv4 IPAddress The property has been deprecated, probably because it doesn't work for IPv6. We can support these operations for both IPv4 and IPv6 using the Span type: API Proposal: ```c# IPAddress(ReadOnlySpan); // AddressFamily inferred from Span.Length IPAddress(ReadOnlySpan, long scopeid); // Span.Length must be IPv6 void GetAddressBytes(Span); // Span.Length must match AddressFamily* void SetAddressBytes(ReadOnlySpan) { SetAddressBytes(bytes, 0); } void SetAddressBytes(ReadOnlySpan, long scopeid); // allocates if AddressFamily doesn't match* bool Equals(ReadOnlySpan); // Span.Length must match AddressFamily*, scopeid not checked bool Equals(ReadOnlySpan, long scopeid); // Span.Length must match AddressFamily* ``` *: special handling for IPv4MappedToIPv6. +17379 area-System.Diagnostics Is there an EventSourceAnalyzer analog in dotnet core? Or what is the recommended way to validate the correctness of EventSource instances in dotnet core projects? +17380 area-System.ComponentModel Clear cached display name in validation context when member name is set Fixes #11044 +17382 area-System.Diagnostics Process.GetProcessById() is slower than Process.GetProcesses() According to the test below, `GetProcessById()` is twice as slow as `GetProcesses()`. I get similar results when testing .NET Framework. Seems like there's room for optimizations in `GetProcessById()`. +17385 area-Infrastructure Enable additional linux portable platforms Enables portable linux runs on official builds for Ubuntu 14.04 Ubuntu 16.04 Ubuntu 16.10 openSuSE 42.1 +17386 area-Infrastructure Updating uap and uapaot baseline files FYI: @weshaggard @danmosemsft @joshfree Looks like the change on the version of the AccessControl is because our mscorlib facade depends on that version now, which is generated by GenFacades. I didn't dig deep into what triggered this change, but once I know more I'll log an issue for that. +17387 area-System.Net Improve CI: disable socket tests on Linux that have may have port collisions Similar to PR https://github.com/dotnet/corefx/pull/16548, this disables tests on Unix that may have IPV4+IPV6 port collisions with tests that run simultaneously. Addresses https://github.com/dotnet/corefx/issues/13967 (CI failure in System.Net.Sockets.Tests.DualModeConnectionlessReceiveFrom.ReceiveFromV6BoundToAnyV4_NotReceived) FWIW I have a POSIX C test that shows that such port collisions are possible under Linux - i.e. that it is possible to ask for two 'unused' ports (one IPV4, one IPV6) and then receive the two ports but which happen to have the same port #. cc @CIPop, @davidsh +17389 area-System.Runtime Reenable the test for Task.FromAsync now that BinaryCompatibiliy type is gone +17390 area-Infrastructure The build command should not change sources that are tracked by git Only on one of my boxes I'm getting this change every time I `clean -all && sync && build`: ``` S:\corefx (master) git diff diff --git a/src/shims/ApiCompatBaseline.netcoreapp.netfx461.txt b/src/shims/ApiCompatBaseline.netcoreapp.netfx461.txt index f50bb15..6efa1cc 100644 --- a/src/shims/ApiCompatBaseline.netcoreapp.netfx461.txt +++ b/src/shims/ApiCompatBaseline.netcoreapp.netfx461.txt @@ -1,3 +1,4 @@ +DEFAULT_APPNAME Error: 0 : Unable to resolve assembly 'Assembly(Name=System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e)' referenced by the implementation assembly 'Microsoft.Cci.DummyModule'. DEFAULT_APPNAME Error: 0 : Unable to resolve assembly 'Assembly(Name=System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)' referenced by the contract assembly 'Assembly(Name=System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)'. DEFAULT_APPNAME Error: 0 : Unable to resolve assembly 'Assembly(Name=System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)' referenced by the contract assembly 'Assembly(Name=System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089)'. DEFAULT_APPNAME Error: 0 : Unable to resolve assembly 'Assembly(Name=System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)' referenced by the contract assembly 'Assembly(Name=System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a)'. ``` +17391 area-System.Linq Feature - exclude field name using code-first approach "As requested I opened a seperate thread for this request. In linq we can't exclude field name in the select statement. List.Select(x=> new { column1 , column2 }) using code first approach in EF it would be nice if we can say ""give me all table fields except the byte[] field of 20mb. By selecting the field names in the current linq scenario changing the database (code first - adding columns) you now always have to remember to add the new columns in the select statements. A better scenario would have included those new fields but still excluded the large byte[] field. List.SelectAllExcept(x=> new { byte[] columns1 , byte[] column2 }) Using currently .net core 1.1 Thks." +17392 area-System.Security CAS related stubs missing some members breaking desktop compat https://github.com/dotnet/corefx/issues/17133 Please double check. ApiCombat tests succeeded +17393 area-Infrastructure Add property to disable xunit appdomain execution from particular tests projects Fixes #17365 We where passing the -noappdomain option by default when running tests on Desktop. This was causing some tests that use `ITestOutputHelper` to throw xunit exceptions (seems like an xunit issue). Now we will not pass the -noappdomain argument by default. With this change we would provide a way to pass the -noappdomain option to the runner from the csproj itself by setting property `` to true. I enabled this property already on `System.ComponentModel.EventBasedAsync` which we already had an issue related to a test failure that due to multiple app domains xunit was causing a `SerializationException` (#13418) which made it hard to debug the test failure. cc: @tarekgh @davidsh @weshaggard @stephentoub +17395 area-System.Data Refactoring logic for building server spn The logic for building server spn was factored out from CreateTcpHandle for supporting Named Pipe. +17396 area-System.IO SerialPort: fAbortOnError not always cleared correctly when port is opened @daflame76 reported this in #984. There has been a long-standing problem with SerialPort where the DCB fAbortOnError flag can get set somehow (by past problems with the port, how it gets set doesn't really matter) and is then not cleared by SerialPort when the port is opened in a .NET application. This changes the behaviour of the port so that it doesn't work correctly with SerialPort, because it's not expecting the fAbortOnError flag. There have been reports of this before [here](https://connect.microsoft.com/VisualStudio/feedback/details/584116) which have been closed as 'by design', which was, IMO, a mistake - or at least the reasoning given was incorrect. This needs a test in the test suite, and to be investigated to see: 1. Does the problem still exist 2. Is it really a SerialPort bug or do some USB ports behave differently to real ports 3. Regardless of '2', can the situation be improved by changes to SerialPort to be more defensive. This can be assigned to me. +17397 area-Infrastructure Add more robust cleanup to linux build defs - Changed all cleanup steps and steps that publish the build logs to always run and continue on error. - Added step to cleanup docker at the end - Added step to cleanup VSTS agent at the end - Changed PB_DockerContainerName value so that it is a little easier to know what product is not cleaning up containers. - Consolidated the Stop Container and Remove Container build steps. - Changed the default value of PB_BuildTestsArguments so that it matches the configuration used in the PB_BuildArguments. This makes it nicer if you are testing build definitions by manually queuing them. +17399 area-System.Runtime Fix System.Runtime.Extensions tests on uapaot FYI: @JeremyKuhne @danmosemsft These are the required changes in order to succesfully run ilc S.R.Extensions tests. Initial results of them are: ``` System.Runtime.Extensions.Tests Total: 1317, Errors: 0, Failed: 172, Skipped: 1, Time: 7.761s ``` +17400 area-Serialization Fixed Test Failures caused by Type.GetMethod The PR includes two fixes, 1. `Type.GetMethod` is not implemented on CoreRT yet. 28 of DCS tests failed due to this. The fix is to delay the initialization of those static fields that use`Type.GetMethod` but are required reflection based serialization only. Fix #16839. 2. Change class SerializationOption to be internal. The class was used internally only. It shouldn't have been set to public. +17401 area-System.Runtime BitConverter.GetBytes(long value) unaligned memory access As the .NET core supports architectures like ARM where unaligned memory writes can result in a fault, is the following code safe? ```csharp byte[] bytes = new byte[8]; fixed (byte* b = &bytes[0]) *((long*)b) = value; ``` [Source](https://github.com/dotnet/corefx/blob/0f2870b1ece429a0cc247b97d830fd55585abf22/src/System.Runtime.Extensions/src/System/BitConverter.cs#L76-L85) As far as I know the allocator is only guaranteed to return an address aligned on a 32 bit boundary, what if the allocated memory is just 32 bit aligned but not 64 bit aligned? Then there would be a 64 bit write on an unaligned boundary of 32 bit. I am unable to test this because I do not have access to an ARM machine. Does someone know whether this can cause issues? +17402 area-System.Data Localdb in managed sni "The pull request has changes which do the following: 1. Detect if the DataSource connects to LocalDB 2. Load the path to LocalDB sqlUserInstance.dll from the registry and invokes the appropriate APIs to start LocalDB instance. 3. Connects to LocalDB based on the DataSource provided by the instance start. 4. Changes Named pipes behavior where the host provided in the Named Pipe is propagated as-is to NamedPipeClientStream instead of modifying it for localhost. That's the expected behavior for Named Pipes. Connecting to a localDb instance started on ""\\.\pipe\"" is not the same as \\HOSTNAME\pipe\ and there are authorization issues. Confirmed this behavior with Native SNI. I will be adding tests for LocalDB in another PR. " +17403 area-System.Collections Graphs logic Do you have any plans to add logic for manipulating generic graph structures? E.g. adding nodes, vertices, depth/breadth-first searches, traversal algorithms, cycle detection, etc. Thank you. +17405 area-System.Data System.Data.Odbc future improvements Now that #15646 is (about to be) merged, let's track future work here: 1. Enable tests: please see #15776 for info on the missing dependencies 1. Possible C types mismatch: * Per http://www.unixodbc.org/doc/ProgrammerManual/Tutorial/gloss.html the native types are not fixed-width * Currently everything works fine in our supported platforms, but we might end up needing a shim such as here https://github.com/dotnet/corefx/tree/master/src/Native/Unix/System.Native 1. Publish as a Nuget package in the nightly feed 1. Document steps to install native dependencies +17407 area-System.Memory Removing extension method Slice on string and adding AsSpan extension methods Moving to Buffers.Experimental: https://github.com/dotnet/corefxlab/pull/1358 +17408 area-Infrastructure Add CI leg / Helix run to test net45-net463 packages on Desktop We have quite a few packages (35) that ship assets on Desktop. We do not have any test coverage today: ``` 135 packages support some version of desktop 98 of those include an out of band dll 35 of those contain more than just type-forwards Breakdown by version : (numSupported) / (numSupportedOOB) / (numNotFacades) 4.5.0.0 : 70 / 20 / 1 4.5.1.0 : 73 / 22 / 1 4.6.0.0 : 133 / 86 / 28 4.6.1.0 : 134 / 88 / 29 4.6.2.0 : 134 / 94 / 33 4.6.3.0 : 135 / 98 / 35 ``` See details in https://github.com/dotnet/corefx/pull/17262#issuecomment-288531194 +17409 area-System.Memory Removing Span NonPortableCast API Part of https://github.com/dotnet/corefxlab/issues/1314 / https://github.com/dotnet/corefxlab/issues/1292 +17410 area-System.Security Request: Support for System.Security.Cryptography.RSACryptoServiceProvider or similar @PaulHigin commented on [Wed Mar 22 2017](https://github.com/dotnet/standard/issues/256) Just want to make a formal request for this crypto provider or similar. We (PowerShell) need it over multiple platforms for secure credential passing. We also need ephemeral keys (no UI interaction), CRYPT_VERIFYCONTEXT, that is supported in native Windows API but apparently not in the .Net implementation. --- @weshaggard commented on [Wed Mar 22 2017](https://github.com/dotnet/standard/issues/256#issuecomment-288577138) I think this request is better served in the dotnet/corefx repo so moving it there. +17411 area-Microsoft.CSharp Clean-up and optimise constant-handling in Microsoft.CSharp Remove `CONSTVAL.SpecialBox` — Adds nothing over just assigning to `object` type. Make `CONSTVAL` immutable. — Setters are only called as part of construction. Use ctor with value consistently, and remove all setters. Convert `IsNullRef()` method to `IsNullRef` property. Remove `ConstValFactory.Copy` — Since `CONSTVAL` is immutable, aliasing instead of copying is safe. Make `ConstValFactory` completely static — Factory is not influenced by any state, overridden (or overridable) and has no scope for injection of a different factory service. Make it completely static and remove all factory allocations. Move `CONSTVAL` creation into `CONSTVAL` itself. — Allows it to have private constructors, ensuring they are not called directly (as comment on factory had suggested, but which was not enforced). Make `objectVal` an auto-property Rename `CONSTVAL` and its members. Rename to `ConstVal`, for more conventional .NET style. Rename `XXXVal` properties (e.g. `strVal`) to mirror .NET type names (e.g. `StringVal`). Use singletons for `true`, `false` and 0 (`int`) `ConstVals` — Reduce allocations for common and quick to identify cases. Merge `EXPRCONSTANT`'s `Val`, `_val`, `getVal()` & `setVal()` int single auto-property. Merge `EXPRCONSTANT`'s `IsZero` and `isZero()` into single property. Merge `getI64Value()` and `I64Value` renaming to `Int64Value` Replace `getU64Value()` with `UInt64Value` property. Rename `EXPRCONSTANT` to `ExprConstant` Contributes to #16664 +17412 area-System.Diagnostics Request: System.Diagnostics.Process support for CREATE_NEW_PROCESS_GROUP creation flag "API Proposal: ```c# namespace System.Diagnostics { public sealed class ProcessStartInfo { public bool CreateNewProcessGroup { get; set; } } } ``` Usage: ```c# var p = new System.Diagnostics.Process(); p.StartInfo.FileName = @""cmd""; p.StartInfo.CreateNewProcessGroup = true; p.Start(); ``` @PaulHigin commented on [Wed Mar 22 2017](https://github.com/dotnet/standard/issues/255) The Process class currently supports StartInfo class information but no process creation flags. We (PowerShell) need support for cross platform CREATE_NEW_PROCESS_GROUP creation flag to create processes outside the parent process group. This is supported in Windows and also Linux (via setpgid()) but needs to be done during process creation. --- @weshaggard commented on [Wed Mar 22 2017](https://github.com/dotnet/standard/issues/255#issuecomment-288577205) This request is better served in the dotnet/corefx repo so moving there. " +17414 area-System.Memory Proposal: API changes to Span as part of shipping story "As part of productizing `Span` for pre-release - https://github.com/dotnet/corefxlab/issues/1314 / https://github.com/dotnet/corefxlab/issues/1292 - here are the proposed changes that became visible from the use of `Span` in [Kestrel](https://github.com/aspnet/KestrelHttpServer) and from design discussions of what APIs are useful versus what aren't ready to be shipped or not useful. ## Proposed API Additions ```C# public static class SpanExtensions { public static bool StartsWith(this Span span, ReadOnlySpan value) where T : struct, IEquatable public static bool StartsWith(this Span span, ReadOnlySpan value); public static bool StartsWith(this ReadOnlySpan span, ReadOnlySpan value) where T : struct, IEquatable public static bool StartsWith(this ReadOnlySpan span, ReadOnlySpan value); public static void CopyTo(this T[] array, Span span); public static ReadOnlySpan AsSpan(this string text); public static Span AsSpan(this T[] array); public static Span AsSpan(this ArraySegment segment); public static Span AsBytes(this Span source) where T : struct public static ReadOnlySpan AsBytes(this ReadOnlySpan source) where T : struct public static int IndexOfAny(this Span span, byte value0, byte value1); public static int IndexOfAny(this Span span, byte value0, byte value1, byte value2); public static int IndexOfAny(this Span span, ReadOnlySpan values); public static int IndexOfAny(this ReadOnlySpan span, byte value0, byte value1); public static int IndexOfAny(this ReadOnlySpan span, byte value0, byte value1, byte value2); public static int IndexOfAny(this ReadOnlySpan span, ReadOnlySpan values); } ``` ## Proposed API Removals ```C# public static class Span { public static Span AsBytes(this Span source) where T : struct public static ReadOnlySpan AsBytes(this ReadOnlySpan source) where T : struct public static Span NonPortableCast(this System.Span source) where TFrom : struct where TTo : struct public static ReadOnlySpan NonPortableCast(this System.ReadOnlySpan source) where TFrom : struct where TTo : struct public static ReadOnlySpan Slice(this string text); public static ReadOnlySpan Slice(this string text, int start); public static ReadOnlySpan Slice(this string text, int start, int length); } ``` ## Sample Usage and Rationale **Adding AsSpan and removing Slice:** There is not enough consensus whether a method named Slice should return a Span and not the same type that it extends. Furthermore, we want to be able to wrap an ArraySegment into a Span but having a Slice extension method on ArraySegment that returns Span could conflict with a Slice method that returns an ArraySegment. AsSpan more clearly identifies the usage and does not block the use of Slice as a method name. ```C# string s = ""Hello""; ReadOnlySpan span = s.AsSpan().Slice(1, 3); // Instead of: string s = ""Hello""; ReadOnlySpan span = s.Slice(1, 3); int[] a = { 91, 92, -93, 94 }; Span span = a.AsSpan(); // Enables a builder pattern approach, rather than having to do: int[] a = { 91, 92, -93, 94 }; Span span = new Span(a); // Similarly for ArraySegment ArraySegment segment = new ArraySegment(a, 1, 2); Span span = segment.AsSpan(); ``` **Removing NonPortableCast:** Are these APIs useful and do we want to ship them? We can add them if they are necessary. Currently, they are only used in Parsing and Encoding for casting from byte to char, exclusively. Example: https://github.com/dotnet/corefxlab/blob/c9423549a3e37a2b0de953dd20cf30558ebfca13/src/System.Text.Primitives/System/Text/Encoding/Utf16/Utf16TextEncoderLE.cs#L54 **Adding StartsWith:** It enables more readable, cleaner code. The user also does not need to do length checks. ```C# Span firstSpan = new Span(first); ReadOnlySpan secondSpan = new ReadOnlySpan(second); // You can write: bool b = firstSpan.StartsWith(secondSpan); // Instead of: bool b = firstSpan.Slice(0, secondSpan.Length).SequenceEqual(secondSpan); // You also have to do additional length checks first, i.e.: bool b = firstSpan.Length >= secondSpan.Length && firstSpan.Slice(0, secondSpan.Length).SequenceEqual(secondSpan); ``` **Adding IndexOfAny:** Used by Kestrel - System.IO.Pipelines. https://github.com/dotnet/corefxlab/blob/66f021b94e93fe36bc0446d9f23d5a3820dc36df/src/System.IO.Pipelines/ReadCursorOperations.cs#L41 https://github.com/dotnet/corefxlab/blob/66f021b94e93fe36bc0446d9f23d5a3820dc36df/src/System.IO.Pipelines/ReadCursorOperations.cs#L63 ```C# // We have: int index = span.IndexOfAny(byte0, byte1, byte2); if (index != -1) { result = new ReadCursor(segment, segmentPart.Start + index); return span[index]; } // If we don't have this, the alternative would be, something like: int index = span.IndexOf(byte0); index = index == -1 ? span.IndexOf(byte1) : Math.Min(index, span.IndexOf(byte1)); index = index == -1 ? span.IndexOf(byte2) : Math.Min(index, span.IndexOf(byte2)); if (index != -1) { result = new ReadCursor(segment, segmentPart.Start + index); return span[index]; } ``` **Adding Copyto:** This is a convenience extension method on array to avoid having to write a Span wrapper around the source array. ```C# var destination = new Span(new byte[100]); var source = new byte[] { 1, 2, 3 }; // You can write: source.CopyTo(destination); // Instead of: var sourceSpan = new Span(source); sourceSpan.CopyTo(destination); ``` Another related API proposal: https://github.com/dotnet/corefx/issues/16888 **Update:** ~- Changed AsSpan to SliceAsSpan and added overloads that take index and length.~" +17415 area-System.Net Rewrite Socket.AcceptAsync Task-based method on SocketAsyncEventArgs It's currently implemented on top of the APM implementation; this changes it to be implemented on top of the SocketAsyncEventArgs implementation. Doing so saves ~400 bytes and ~6 allocations per accept, so it almost breaks even on first accept, and after that it's a win. Also provides a small throughput improvement. cc: @geoffkizer, @davidsh, @cipop +17416 area-System.Diagnostics Remove Assert.True(weakSwitch.IsAlive); from PruneTest() in SwitchClassTests.cs under System.Diagnostics.TraceSourceTests Remove Assert.True(weakSwitch.IsAlive); from PruneTest() in SwitchClassTests.cs under System.Diagnostics.TraceSourceTests File: src\System.Diagnostics.TraceSource\tests\SwitchClassTests.cs Method: PruneTest() +17418 area-Serialization Create netcoreapp specific files for System.Runtime.Serialization.Xml.Tests This tests use `ISerializationSurrogateProvider` which is not available in netfx but it is part of netstandard so it was not having build failures, but when trying to run them in netfx they would cause a `TypeLoadException` and the test would not run. cc: @weshaggard @tarekgh @danmosemsft +17420 area-Infrastructure Tests required elevated privileges are run in non-sudo environments. Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessTests/TestBasePriorityOnUnix` has failed. System.ComponentModel.Win32Exception : Permission denied Stack Trace: at System.Diagnostics.Process.set_PriorityClassCore(ProcessPriorityClass value) in /root/corefx/src/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs:line 192 at System.Diagnostics.Process.set_PriorityClass(ProcessPriorityClass value) in /root/corefx/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs:line 486 at System.Diagnostics.Tests.ProcessTests.SetAndCheckBasePriority(ProcessPriorityClass exPriorityClass, Int32 priority) in /root/corefx/src/System.Diagnostics.Process/tests/ProcessTests.cs:line 41 at System.Diagnostics.Tests.ProcessTests.TestBasePriorityOnUnix() in /root/corefx/src/System.Diagnostics.Process/tests/ProcessTests.cs:line 94 Build : Master - 20170322.02 (Core Tests) Failing configurations: - Redhat.72.Amd64 - x64-Release - x64-Release - x64-Debug - x64-Debug - Ubuntu.1404.Amd64 - x64-Debug - x64-Release - Ubuntu.1604.Amd64 - x64-Debug - x64-Release - Ubuntu.1610.Amd64 - x64-Release - x64-Debug - suse.421.amd64 - x64-Debug - x64-Release - OSX.1012.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170322.02/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessTests~2FTestBasePriorityOnUnix +17421 area-System.Net Test failure: System.Net.Sockets.Tests.UdpClientTest/Ctor_IPEndPoint_CanSend Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.UdpClientTest/Ctor_IPEndPoint_CanSend` has failed. System.Net.Sockets.SocketException : Permission denied Stack Trace: at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName) in /root/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 5279 at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) in /root/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 758 at System.Net.Sockets.Socket.Bind(EndPoint localEP) in /root/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 702 at System.Net.Sockets.Tests.UdpClientTest.Ctor_IPEndPoint_CanSend() in /root/corefx/src/System.Net.Sockets/tests/FunctionalTests/UdpClientTest.cs:line 105 Build : Master - 20170322.02 (Core Tests) Failing configurations: - Redhat.72.Amd64 - x64-Release - x64-Release - x64-Debug - x64-Debug - Ubuntu.1404.Amd64 - x64-Debug - x64-Release - Ubuntu.1604.Amd64 - x64-Debug - x64-Release - Ubuntu.1610.Amd64 - x64-Release - x64-Debug - suse.421.amd64 - x64-Debug - x64-Release - OSX.1012.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170322.02/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.UdpClientTest~2FCtor_IPEndPoint_CanSend +17422 area-System.Security Test failure: System.Security.Cryptography.X509Certificates.Tests.X509StoreMutableTests_OSX/AddPrivateAfterPublic Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.X509Certificates.Tests.X509StoreMutableTests_OSX/AddPrivateAfterPublic` has failed. Interop+AppleCrypto+AppleCommonCryptoCryptographicException : write permissions error Stack Trace: at Interop.AppleCrypto.X509StoreAddCertificate(SafeKeychainItemHandle certOrIdentity, SafeKeychainHandle keychain) in /Users/buildagent/agent/_work/2/s/corefx/src/Common/src/Interop/OSX/System.Security.Cryptography.Native.Apple/Interop.X509Store.cs:line 38 at Internal.Cryptography.Pal.StorePal.AppleKeychainStore.Add(ICertificatePal cert) in /Users/buildagent/agent/_work/2/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/StorePal.AppleKeychainStore.cs:line 66 at System.Security.Cryptography.X509Certificates.X509Store.Add(X509Certificate2 certificate) in /Users/buildagent/agent/_work/2/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Store.cs:line 135 at System.Security.Cryptography.X509Certificates.Tests.X509StoreMutableTests_OSX.AddPrivateAfterPublic() in /Users/buildagent/agent/_work/2/s/corefx/src/System.Security.Cryptography.X509Certificates/tests/X509StoreMutableTests.OSX.cs:line 118 Build : Master - 20170322.02 (Core Tests) Failing configurations: - OSX.1012.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170322.02/workItem/System.Security.Cryptography.X509Certificates.Tests/analysis/xunit/System.Security.Cryptography.X509Certificates.Tests.X509StoreMutableTests_OSX~2FAddPrivateAfterPublic +17424 area-System.Diagnostics Remove Assert.True(weakSwitch.IsAlive); from PruneTest() in SwitchClassTests.cs under System.Diagnostics.TraceSourceTests Remove Assert.True(weakSwitch.IsAlive); from PruneTest() in SwitchClassTests.cs under System.Diagnostics.TraceSourceTests File: src\System.Diagnostics.TraceSource\tests\SwitchClassTests.cs Method: PruneTest() Fix #17300 +17426 area-System.Diagnostics tests in corefx that party on corelib internals using reflection that have changed will need to be updated "As @jkotas pointed out https://github.com/dotnet/corefx/issues/17413#issuecomment-288612891, tests which are using reflection to access resource strings need to be updated. Depends on this coreclr PR: https://github.com/dotnet/coreclr/pull/10372 Example (https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Tracing/tests/BasicEventSourceTest/TestsManifestNegative.cs#L36): ``` private static string GetResourceStringFromReflection(string key) { BindingFlags flags = BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic; MethodInfo getResource = typeof(Environment).GetMethods(flags).Where(x => x.Name == ""GetResourceString"" && x.GetParameters().Count() == 1).FirstOrDefault() ?? typeof(object).GetTypeInfo().Assembly.GetType(""System.Environment"").GetMethods(flags).Where(x => x.Name == ""GetResourceString"" && x.GetParameters().Count() == 1).First(); object resource = getResource.Invoke(null, new object[] { key }); return (string)resource; } ``` " +17427 area-System.Net SslStream AuthenticateAsClient method is not sending SNI information to the server on OS X When using AuthenticateAsClient to connect to a server, SslStream does not appear to be sending the SNI information to the server. We have observed this issue on OS X. When running on Windows the SNI information *does* appear to be sent. It is unknown to us whether the SNI information is sent when running on Linux. +17430 area-Infrastructure alpine RID falls back to linux RID "In our RID fallback graph: https://github.com/dotnet/corefx/blob/master/pkg/Microsoft.NETCore.Platforms/runtime.json#L571-L576 We list: ``` ""alpine"": { ""#import"": [ ""linux"" ] }, ""alpine-x64"": { ""#import"": [ ""alpine"", ""linux-x64"" ] }, ``` However, from what I understand, `alpine-x64` isn't compatible with our portable `linux-x64` runtime. Thus it seems like it shouldn't be listed as a fallback option, because that will cause problems when selecting runtime assets. If there isn't an asset available for alpine, and an asset that uses a `glibc` is put as a `linux-x64` folder, it will get selected but won't work. @gkhanna79 @ericstj @janvorli @weshaggard " +17433 area-System.Globalization System.Globalization.Tests.IdnMappingIdnaConformanceTests.GetAscii_Invalid failing on different environment "In my environment (European timezone, VS17, RS2 build 15063) the following test is failing (tested 2x times also with different clr packages): ``` ``` It seems they are not failing for @stephentoub. Therefore it might be connected to a different environment." +17434 area-System.Net System.Net.Internals.SocketExceptionFactory+ExtendedSocketException on ubuntu 16.4 I am getting the System.Net.Internals.SocketExceptionFactory exception while using a console app with **AMQP.Net Lite**. It can send houndreds or sometimes thousands of messages to **Azure Servicebus** instance. But it allways fails after a while with this exception: ``` System.Net.Internals.SocketExceptionFactory+ExtendedSocketException: Unknown error -1 at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult) at System.Net.Dns.<>c.b__14_1(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Amqp.TcpTransport.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Amqp.TcpTransport.Connect(Connection connection, Address address, Boolean noVerification) at Amqp.Connection.Connect(SaslProfile saslProfile, Open open) at Amqp.Connection..ctor(Address address, SaslProfile saslProfile, Open open, OnOpened onOpened) at TheMOON.Extensions.ServiceBus.ServiceBusMessageSenderClient.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at TheMOON.Extensions.ServiceBus.ServiceBusMessageSenderClient.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at TheMoon.EcomDbSyncer.Services.Handlers.ChangeHandlerCommons.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at TheMoon.EcomDbSyncer.Services.Handlers.ProductChangeHandler.d__7.MoveNext() ``` The system is a **Ubuntu 16.4** instance running in **Azure**. ``` Microsoft .NET Core Shared Framework Host Version : 1.1.0 Build : 928f77c4bc3f49d892459992fb6e1d5542cb5e86 ``` I have not yet tried to feed the queueclient with the IP instead of the servicebus instance DNS name. Disregarding the certificate trouble this will induce, i am assuming this would be a workaround. +17435 area-Infrastructure Add daily test run for netfx This will add a daily run for netfx tests (innerloop and outerloop) and also this will allow us to run it on a specific PR by commenting test outerloop netfx Configuration (Release or Debug). cc: @danmosemsft @joperezr @mmitche @weshaggard +17437 area-Serialization To add netfx coverage for the IDataContractSurrogate To add netfx coverage for the IDataContractSurrogate so that we are confident that folks can write similar code when targeting desktop. +17438 area-System.IO FileSystemWatcher degenerate file rename events (In reference source) It appears that in a rare case where a large volume of file changes and file renames are occurring, The processing loop for an IO Completion callback to consume the directory change events can have the first part of a rename event pair at the *very end* of the buffer and then the next completion event containing the second part at the *very beginning* of the following buffer. This results in a degenerate pair of rename events where the first event has an old name and empty new name followed by a second event that has a new name and empty old name. +17439 area-System.Net System.Net.NetworkInformation.Tests.NetworkInterfaceBasicTest.BasicTest_AccessInstanceProperties_NoExceptions failing on different environment "In my environment (European timezone, VS17, RS2 build 15063) the following test is failing (tested 2x times also with different clr packages): ``` ``` It seems they are not failing for @stephentoub. Therefore it might be connected to a different environment." +17441 area-System.Memory Re-enable tests to validate current state +17442 area-System.Memory Compiling SpanHelpers.Clear and others only when necessary (slow span) Addresses #17078 +17443 area-System.Threading System.Threading.Tests outerloop test hangs The Outerloop `ReleaseReadersWhenWaitingWriterTimesOut` when running in Desktop it hangs. I left it running for more than 2 hours and attached the debugger and it never moved out from this line: https://github.com/dotnet/corefx/blob/master/src/System.Threading/tests/ReaderWriterLockSlimTests.cs#L443 I tried to run them in netcoreapp and it takes like 20-30 seconds total. cc: @stephentoub @alexperovich +17444 area-System.Net Change the behavior of ReceiveAsync cancellation to throw OperationCanceledException Change the ClientWebSocket's behavior to throw OperationCanceledException, when cancellation happens during the execution of ReceiveAsync(new ArraySegment(Buffer), Ct). Fix #5200 +17445 area-System.Threading Disable System.Thread outerloop test in desktop This test hangs in desktop when running Outerloop. See: #17443 cc: @tarekgh @alexperovich @danmosemsft +17446 area-Infrastructure Fix System.Runtime.Tests so that they can run in UapAot cc: @weshaggard @danmosemsft These changes will fix the issues causing ilc to fail at compile time and will also disable a couple of tests that were causing the actual execution to crash when sending two Asserts. I will log issues for the things that will need to be fixed in order to re-add those tests back. +17447 area-Serialization TypeScope.GetEnumeratorElementType Fails on Uapaot "[`System.Xml.Serialization.TypeScope.GetEnumeratorElementType`](https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/src/System/Xml/Serialization/Types.cs#L1292) is failing on uapaot as it does reflection on IEnumerable types but the metadata info for IEnumerable was reduced by UWP toolchain. 5 XmlSerializer tests failed on uapaot due to the issue. Here's the output of one of the failed tests, ``` (__Canon value, String baseline, Func$1<$XmlSerializer> serializerFactory, Boolean skipStringCompare, $XmlSerializerNamespaces xns) in D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 3097 at XmlSerializerTests.Xml_SimpleCollectionDataContract() in D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 992 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs:line 400]]> ```" +17448 area-Serialization Fix TypeScope.GetEnumeratorElementType. [`System.Xml.Serialization.TypeScope.GetEnumeratorElementType`](https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/src/System/Xml/Serialization/Types.cs#L1292) is failing on uapaot as it does reflection on IEnumerable types but the metadata info for IEnumerable was reduced by UWP toolchain. 5 XmlSerializer tests failed on uapaot due to the issue. The fix is to modify System.Private.Xml's embedded rd.xml to keep the required metadata. Fixed #17447 +17450 area-System.Runtime System.Runtime PointerFieldGetValue test is failfasting in Assert.IsType tests [Sort_Array_Array_NonGeneric](https://github.com/dotnet/corefx/blob/15b4f51c2f3cb924840e5407bb8d5fe03bb282ea/src/System.Runtime/tests/System/ArrayTests.cs#L2909) and [PointerFieldGetValue](https://github.com/dotnet/corefx/blob/7f6ac8bf97a84666ed3e7ef6b77c1a9470ae78c8/src/System.Runtime/tests/System/Reflection/PointerTests.cs#L118) are crashing the uapaot test execution when throwing a Debug.Assert. To get a repro locally, do the following: - Remove the `SkipOnTargetFramework` attribute on the tests - call `build.cmd -framework:uapaot` - `msbuild src\System.Runtime\tests\System.Runtime.Tests.csproj /p:TargetGroup=uapaot /t:rebuildAndTest /p:TestILCFolder=` +17452 area-System.Runtime API for performing framework checks at runtime "Provide an API that allows developers to check whether their code runs on a given .NET platform. ```C# // Assembly: System.Runtime.InteropServices.RuntimeInformation namespace System.Runtime.InteropServices { public partial class RuntimeInformation { public static bool FrameworkIsAtLeast(string targetFramework); } } ``` ### Usage ```C# if (RuntimeInformation.FrameworkIsAtLeast(""netcoreapp10"")) { DoStuffThatOnlyWorksInNetCore(); } else if (RuntimeInformation.FrameworkIsAtLeast(""net462"")) { DoStuffThatOnlyWorksInNetFramework(); } else { throw new PlatformNotSupportedException(); } ``` ### Requirements 1. Provide a robust API that allows developers to perform framework checks - In other words must not require parsing or comparisons by the developer. 2. Use terms the developer already uses when they do compile-time specialization using cross-targeting (""bait & switch"") - The strings passed to the API should be identical to the string used in project files and NuGet packages - In other words, we will not use the canonical TFM representation as it's wordy and generally not used by developers (e.g. `.NETFramework, Version=4.6.1`) 3. Design should allow for an API that we *can* put in-box - Our goal is to avoid having to ask library authors to depend on an extra NuGet package that they have to deploy just for light-up - Means we cannot have APIs that imply each time a new .NET platform (or version ships) all platforms have to update their implementation - In other words, an implementer should only have to correctly answer questions affecting itself, i.e. it shouldn't have to know how other platforms behave or what names they use. 4. API should work on .NET Framework 4.6.1 - That's the minimum platform we support with .NET Standard 2.0, so it will be a common target and hence needs to work 5. API should be addable to .NET Standard 2.0 - This makes (3) much nicer today - Effectively only means we cannot add members to a type that already exists in .NET Framework 6. The API must answer what the application *runs on* (as opposed to what the application is *built for*). - This is different from `AppContext.TargetFrameworkName` ### Decisions * Originally we considered having properties with well-known names (like `Net461`). Having those properties violates requirement (3). * We considered adding the API on a more-well-known type, such as `AppContext` or `Environment`. We believe this API to be quite specialized and should only be used as the last resort. As such, we don't want to overly emphasize its existence. Also, it would violate requirement (4) and (by extension) requirement (5). * We considered using `FrameworkName` instead of `string` but this would require `FrameworkName` to parse NuGet-style TFMs into their canonical representations, i.e. `FrameworkName.Parse(""net45)""` needs to be parsed into `FrameworkName { Identifier="".NETFramework"", Version=new Version(4, 5, 0, 0) }`. While that would be nice, it violates requirement (3). ### Context Today, we have the following APIs that return version numbers: ```C# namespace System { public static partial class AppContext { public static string TargetFrameworkName { get; } } public sealed partial class Environment { public static OperatingSystem OSVersion { get; } public static Version Version { get; } } } namespace System.Runtime.InteropServices { public static partial class RuntimeInformation { public static string FrameworkDescription { get; } public static Architecture OSArchitecture { get; } public static string OSDescription { get; } public static Architecture ProcessArchitecture { get; } public static bool IsOSPlatform(OSPlatform osPlatform); } } ``` Neither of them deal with concepts that the developer is familiar with when building the application, specifically the target framework names and version numbers (e.g. `net45` and `netcoreapp11`). Furthermore, their behavior is less than ideal. Here is the output from a .NET Core console app: ```C# Console.WriteLine(AppContext.TargetFrameworkName); // Console.WriteLine(RuntimeInformation.FrameworkDescription); // .NET Core 4.6.00001.0 ``` Our original design goal of `RuntimeInformation` was to provide developers with the diagnostic means to discover which .NET platform and operating system they are running on while not exposing version checking because it's a known area for creating fragile code. Unfortunately, the resulting API surface is now entirely insufficient for runtime light-up. For better or worse, we've have to accept that developers will have to write code that allows them to tweak the behavior at runtime. We need to expose APIs that make it easy for them to express framework checks." +17453 area-Microsoft.CSharp Teach the dynamic binder about tuple conversions "(Originally reported as part of https://github.com/dotnet/roslyn/issues/17851 and https://github.com/dotnet/roslyn/issues/12804) **Version Used**: Microsoft Visual Studio Community 2017 Version 15.0.26228.4 D15RTWSVC Microsoft .NET Framework Version 4.6.01586 **Steps to Reproduce**: Compile and run: ``` using System; class C { static void Foo((long, long) x, object y) => Console.WriteLine(x); static void Main() => Foo((0, 0), (dynamic) null); } ``` **Expected Behavior**: Program prints ""(0, 0)"". The target type (long, long) for the tuple literal (0, 0) is known at compile time, so the tuple literal should be converted to an instance of that type, rather than of (int, int), and dynamic invocation should succeed. It this kind of conversion is not feasible for some reason, then the compiler should issue a compile-time error, rather than allowing the program to fail at runtime. **Actual Behavior**: ``` Unhandled Exception: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: The best overloaded method match for 'C.Foo(System.ValueTuple, object)' has some invalid arguments at CallSite.Target(Closure , CallSite , Type , ValueTuple`2 , Object ) at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid3[T0,T1,T2](CallSite site, T0 arg0, T1 arg1, T2 arg2) at C.Main() ``` FYI @VSadov " +17454 area-System.Runtime Question: Calling Mac OS X Native APIs from .NET Core Hello, I'd like to call Mac OS X native APIs from .NET Core. More specifically, I'm interested in calling the [IOPowerSource()](https://developer.apple.com/reference/iokit/iopowersources.h) API to get the battery charging status on a MacBook Pro running Mac OS X Sierra. http://stackoverflow.com/questions/5751132/mac-get-battery-charging-status-plugged-in-or-not **Edit**: The question is: How do I actually do this? Cheers, Trevor Sullivan +17455 area-Infrastructure Enable PortableRID packaging Enable Portable RID package generation for Windows, OSX and Linux. +17456 area-System.IO Move SetCurrentDirectory test to RemoteInvoke. Tests that alter the current directory should all be done via remoteinvoke to not interfere with other tests that rely on the currentdirectory in some form or fashion. probably resolves #16316 @stephentoub +17457 area-System.Net Add Socket tests for concurrent accepts We don't concurrently have any coverage for multiple concurrent AcceptAsync calls. This adds some. cc: @geoffkizer, @davidsh, @cipop +17458 area-System.Data Modify TdsParserStateObject.Cancel() to not rely on Owner field CC @saurabh500 +17459 area-System.Data Add remaining SqlDataAdapter APIs to contract CC @saurabh500 +17461 area-Infrastructure Add uap build definition for testing I had to create a new Uap build definition because the UapToolsFolder is a secret and we don't have a good way to pass that value as a secret from Pipebuild to the existing DotNet-Windows-Trusted build definition. Once the UAP tools are consumed as a package, we should be able to get rid of that definition. /cc @AlexGhiondea @joperezr @weshaggard @MattGal +17462 area-System.Net UWP: System.Net.HttpListener Move UAP to use the 100% managed HttpListener implementation in corefx\src\System.Net.HttpListener\src\System\Net\Managed as Unix does rather than the Windows one. This should eliminate calls to the API's below and they can come out of the pinvoke baseline. ``` httpapi.dll!HttpAddUrlToUrlGroup httpapi.dll!HttpCancelHttpRequest httpapi.dll!HttpCloseRequestQueue httpapi.dll!HttpCloseServerSession httpapi.dll!HttpCloseUrlGroup httpapi.dll!HttpCreateRequestQueue httpapi.dll!HttpCreateServerSession httpapi.dll!HttpCreateUrlGroup httpapi.dll!HttpReceiveClientCertificate httpapi.dll!HttpReceiveHttpRequest httpapi.dll!HttpReceiveRequestEntityBody httpapi.dll!HttpRemoveUrlFromUrlGroup httpapi.dll!HttpSendHttpResponse httpapi.dll!HttpSendResponseEntityBody httpapi.dll!HttpSetUrlGroupProperty httpapi.dll!HttpWaitForDisconnect ``` @Priya91 correct me if this is not the plan. +17463 area-System.Security Move Cryptography netcoreapp specific tests to netcoreapp files There are some tests that use types like `ECCurve` which is available until .NET 4.7 and it was causing a runtime exception when trying to run them on Desktop. I moved those tests to be only included when running in netcoreapp. cc: @bartonjs @danmosemsft @weshaggard @tarekgh +17464 area-Meta Some exceptions thrown with unlocalized strings "Almost all our resource strings are for exceptions and it looks like >99% of our exceptions are indeed thrown with localized strings. About 68 aren't: examples ```c# throw new InvalidOperationException(""Attempted to pend a read when _failAsyncPends test hook was enabled""); ``` ```c# throw new InvalidOperationException(""Trying to start an Activity that was already started""); ``` (hits in the CoreFX product sources for `throw new .*Exception\(""[^ ""]+ .*""`) " +17465 area-Microsoft.CSharp Microsoft.CSharp.RuntimeBinder.RuntimeBinder Refactoring Primarily moving common features into an internal interface to avoid repeated type-test-and-cast if-else ladders, an avoiding unnecessary casts of array to `IEnumerable`: Add `ICSharpBinder` covering commonality of CSharp `DynamicMetaObjectBinder` implementations. — Allow to retrieve arguments without if-else ladder on type. Make `GetArgumentType` member instead of delegate. — Delegate is always the same, so that gives no benefit. Add method `ArgumentInfo` array copy on `CSharpInvokeMemberBinder` — More efficient copy, and removes last use of `ArgumentInfo` property, allowing its removal. Move `CallingContext` and `IsChecked` into `ICSharpBinder` — Removes need for test-and-cast ladder. Move `IsBinderThatCanHaveRefReceiver` to `ICSharpBinder` — Resolve through simple interface call instead of call that then does type check. Move `PopulateSymbolTableWithName` into `ICSharpBinder` Move `DispatchPayload` into `ICSharpBinder` Move `BindingFlags` into `ICSharpBinder` Move `GetName` into `ICSharpBinder` as property. — Removes need for test-and-cast ladder. Remove some unused assignments and change is…as for as…!=null More strongly type parameters parameter to `Bind` It's `IEnumerable` but always called with `Expression[]` so type it as such, passing that change in type down to called methods. When a `foreach` also had its index tracked, use it as the index for a `for` loop instead. Replace `Dictionary` with `LocalVariableSymbol[]` — Always filled incrementally from 0 to a pre-computable length, so an array serves better as well as being lighter. Cleanup of binder classes. — Remove unused usings, add missing XML comment parameters, use auto-properties when applicable, use expression-bodied properties when applicable. +17468 area-System.Security Test failure: System.Security.Cryptography.EcDsa.Tests.ECDsaImportExportTests/TestExplicitCurves(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = Characteristic2, IncludePrivat... Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.EcDsa.Tests.ECDsaImportExportTests/TestExplicitCurves(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = Characteristic2, IncludePrivat...` has failed. Interop+Crypto+OpenSslCryptographicException : error:0D06407A:asn1 encoding routines:a2d_ASN1_OBJECT:first num too large Stack Trace: at System.Security.Cryptography.ECDsaImplementation.ECDsaOpenSsl.ImportParameters(ECParameters parameters) in /root/corefx/src/Common/src/System/Security/Cryptography/ECDsaOpenSsl.ImportExport.cs:line 58 at System.Security.Cryptography.EcDsa.Tests.ECDsaImportExportTests.TestExplicitCurves(CurveDef curveDef) in /root/corefx/src/Common/tests/System/Security/Cryptography/AlgorithmImplementations/ECDsa/ECDsaImportExport.cs:line 49 Build : Master - 20170324.01 (Core Tests) Failing configurations: - Ubuntu.1610.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170324.01/workItem/System.Security.Cryptography.Algorithms.Tests/analysis/xunit/System.Security.Cryptography.EcDsa.Tests.ECDsaImportExportTests~2FTestExplicitCurves(curveDef:%20CurveDef%20%7B%20Curve%20=%20System.Security.Cryptography.ECCurve,%20CurveType%20=%20Characteristic2,%20IncludePrivat... +17469 area-System.ComponentModel Fix a CompareAttribute.Validate problem Fixes #11025 +17470 area-System.IO Minimize WinRT specific IO codepaths Tracking work to remove all unnecessary WinRT specific codepaths, so as far as possible we share code with the non-UWP Windows implementations. +17471 area-Meta Some PNSE messages A start on changing all our parameterless `throw new PlatformNotSupportedException()` to have messages. Mainly to make certain they're all thought through (or else have an issue open) and future ones stand out, but it is nicer for the caller to explain what feature is not supported. For some of the UAP cases it was easier to just delete the UAP implementation in favor of the Win32 one on the assumption that the API will get allowlisted. Remains about ~279 of `new +PlatformNotSupportedException\(\)` in product. @JeremyKuhne +17472 area-System.Memory Adding span tests to improve coverage Fixes #17078 Adding tests for: - Implicit operators - Obsolete methods - Clear EnumType and Clear ValueType Without References Pointer Size - Copy empty source - Fill native memory - Fill ValueType Without References for larger arrays - Test IndexOf for larger arrays Gets us much closer to 100% test coverage (for slow span at least), esp if you include outer-loop and 32-bit tests. +17476 area-System.Diagnostics Performance improvement for ProcessManager.Windows.IsProcessRunning Performance optimization for the local machine: First try to OpenProcess by id, if valid handle is returned, the process is definitely running. Otherwise enumerate all processes and compare ids (the logic we had before) Fix #17382 Benchmarks before: ``` Method | Mean | StdDev | -------------------- |---------- |---------- | GetProcessById | 3.5353 ms | 0.0693 ms | GetProcessesEqual | 3.1075 ms | 0.0720 ms | GetProcessesNotEqual | 3.1015 ms | 0.0416 ms | ``` After: ``` Method | Mean | StdDev | -------------------- |---------- |---------- | GetProcessById | 1.4213 ms | 0.0581 ms | GetProcessesEqual | 3.1123 ms | 0.0615 ms | GetProcessesNotEqual | 3.0089 ms | 0.0532 ms | ``` Test program: ```csharp using System.Diagnostics; using System.Linq; using System.Reflection; using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; namespace GetProcessByIdBenchmark { public class Program { private static int CurrentProcessId = Process.GetCurrentProcess().Id; [Benchmark] public void GetProcessById() { Process.GetProcessById(CurrentProcessId); } [Benchmark] public void GetProcessesEqual() { Process.GetProcesses().FirstOrDefault(a => a.Id == CurrentProcessId); } [Benchmark] public void GetProcessesNotEqual() { Process.GetProcesses().FirstOrDefault(a => a.Id != CurrentProcessId); } static void Main(string[] args) { BenchmarkSwitcher.FromAssembly(typeof(Program).GetTypeInfo().Assembly).Run(args); } } } ``` +17477 area-System.Security Fix FIPS 186-3 DSACng signature with H < sizeof(Q) Add signing tests and stable verification tests for the scenario where a short hash is chosen; as well as a whole lot of justification commenting. Fixes #17305. +17478 area-Meta Code Guidelines for VB.net contributions. The current coding guidelines are C-centric, with no or very little guideline for VB.net contributions, for projects within the .NET Foundation that use the language within their project. Thus lack of clear guidelines has and will cause friction between different opinions on stylistic aspects of the code / contribution, rather that the functional / semantic behavior of the code. I'm working on implementing a VBnet Coding guideline. ([Here](https://github.com/AdamSpeight2008/Ideas/blob/master/VBCodingGuidelines.md)) +17479 area-Serialization Area-Serialization Sprint 116 The issue is for tracking issues to be done in sprint 116 (due by 4/14/2017). +17480 area-Infrastructure ILC fails when trying to compile an array of pointers PR #17446 added an ifdef that removes some tests in System.Runtime given that ILC would fail when trying to compile, by saying that Array of pointers type is not supported. This needs to be fixed externally. This issue is so that we track the remaining work on our side of uncommenting those tests for uapaot once ILC is fixed. cc: @jkotas @morganbr +17482 area-Serialization XmlSerializer to Support XmlMembersMapping via Reflection #10675 add a few basic tests for XmlSerializer supporting XmlMembersMapping via Reflection. The issue here is for tracking the complete support of this feature. +17483 area-Meta Xml Serialization code vs documentation Hello, I want to use xml serialization to share (load and save) structs between a .net Core and .net Framework application but the XmlSerializer is unavailable in .net Core. According to the .net core API reference the XmlSerializer is implemented, what I'm missing? Is the documentation out of date or what I've to do in .net Core to use the XmlSerializer? Version: .Net Core 1.1/.Net Standard 1.6 - VS 2017 Commuity API-Ref: https://docs.microsoft.com/de-de/dotnet/core/api/system.xml.serialization.xmlserializer +17486 area-System.Runtime System.TypeLoadException: 'Could not resolve type 'System.AppContext' I was trying to build serialization tests in CoreFx against uapaot. Sg.exe failed to resolve System.AppContext, which caused error when building the tests. Here's the error message, ``` System.TypeLoadException occurred HResult=0x80131522 Message=Could not resolve type 'System.AppContext' in assembly 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Source=mscorlib StackTrace: at System.TypeNameParser.ResolveType(Assembly assembly, String[] names, Func`4 typeResolver, Boolean throwOnError, Boolean ignoreCase, StackCrawlMark& stackMark) in f:\dd\ndp\clr\src\BCL\system\typenameparser.cs:line 303 ``` Is `System.AppContext` not available on uapaot? +17487 area-Infrastructure macOS builds failing with non-null compiler error e.g. https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug_prtest/557/ ``` /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/Native/Unix/System.Security.Cryptography.Native.Apple/pal_keychain.cpp:253:117: error: null passed to a callee that requires a non-null argument [-Werror,-Wnonnull] SecKeychainItemCreateCopy(reinterpret_cast(privateKey), keychain, nullptr, &itemCopy); ~~~~~~~ ^ /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/Native/Unix/System.Security.Cryptography.Native.Apple/pal_keychain.cpp:272:116: error: null passed to a callee that requires a non-null argument [-Werror,-Wnonnull] status = SecKeychainItemCreateCopy(reinterpret_cast(cert), keychain, nullptr, &itemCopy); ``` +17489 area-System.Numerics Adjusting naming and adding some explanatory comments to the System.Math and System.MathF tests. @mellinoe, this should address the feedback you gave here: https://github.com/dotnet/corefx/pull/17217 +17490 area-System.IO System.IO.Path.GetInvalidPathChars() returns different result than Desktop "When running the following test using SharpZipLib NuGet package, I realized `GetInvalidPathChars()` returns a smaller set of characters compared to Desktop. Was this change of behavior intentional? ```c# WindowsNameTransform wnt = new WindowsNameTransform(); wnt.TrimIncomingPaths = false; Assert.Equal(@""c\_"", wnt.TransformFile(""c\\/>"")); ``` `wnt.TransformFile(""c\\/>"")` returns `""c\>""` on .NET Core 2.0." +17491 area-System.Memory CoreFx #14486 Remove argument validation in DangerousCreate Fixes #14486 @ahsonkhan @karelz Kindly review. +17492 area-System.Diagnostics NullReferenceException from DiagnosticListener in HttpClient I get the following when I register an EventListener and use HttpClient: ``` System.NullReferenceException: Object reference not set to an instance of an object. at System.Diagnostics.DiagnosticListener.<>c__DisplayClass2_0.b__0(String name, Object arg1, Object arg2) in /home/stoub/source/corefx/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/DiagnosticListener.cs:line 60 at System.Diagnostics.DiagnosticListener.IsEnabled(String name, Object arg1, Object arg2) in /home/stoub/source/corefx/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/DiagnosticListener.cs:line 211 at System.Net.Http.DiagnosticsHandler.d__2.MoveNext() in /home/stoub/source/corefx/src/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs:line 45 ``` cc: @vancem, @lmolkova +17493 area-Infrastructure Enable sending uapaot test runs to Helix cc: @weshaggard @MattGal @AlexGhiondea @danmosemsft These are the changes that I've been using locally to send private uapaot ILC runs to Helix. By pushing this, I'll enable other devs to queue Helix ILC runs too, plus this is also required for setting up an official build that actually runs the ILC tests. +17494 area-Infrastructure Strong name signing not working for Open key projects Today if any project is rewritten, via GenFacades for example, we invalidate the fully signed binary that has the Open Key and thus it isn't correctly signed. Things like netstandard.dll shim has the same issue where we aren't fully signing it and our signing service doesn't currently support the open key. +17495 area-Infrastructure runtime.depproj should warn if CoreCLRFiles is empty https://github.com/dotnet/corefx/blob/master/external/runtime/runtime.depproj#L57 We should consider giving a warning if `$(CoreCLRFiles)` ends up being empty even if the user passed in `$(CoreCLROverridePath)`, or if the path provided doesn't exist. @ahsonkhan had a typo when he ran the build and didn't realize that nothing was being copied out, because the target just got skipped. +17496 area-System.Runtime "ASP.NET core AppContext.BaseDirectory is not the real ""base"" in development environment" I have a config file as sibling with web.config. When deployed, AppContext.BaseDirectory get me the right path to the file. When debugging it within Visual Studio, then it takes me to the bin\ folder . I am not able to debug it within VS if I use the API. +17497 area-System.IO Add TempFileCollection or something similar I always liked the idea behind the [TempFileCollection](https://msdn.microsoft.com/en-us/library/system.codedom.compiler.tempfilecollection(v=vs.110).aspx) class. It tackles some common problems, often faced when working with temporary files: - Simple management of multiple temporary files belonging together - Reliable creation of temporary files with specific extensions - Easy release (deletion) of all generated temporary files when no longer needed with the dispose pattern Therefore I propose to add a class with similar functionality to corefx. Such a class could reside in the _System.IO_ namespace even though I don't see it quite fitting as its use case is too specific to belong to such a widely used namespace. +17499 area-System.Numerics Helper type in BigInteger tests has shared public static state "Related to https://github.com/dotnet/corefx/issues/15395. https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Numerics/tests/BigInteger/MyBigInt.cs#L12 Because of this shared state, it is not safe to run tests which access the field in parallel. To my knowledge, there are only two tests which do this: the [divrem tests](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Numerics/tests/BigInteger/divrem.cs), and [""Driver""](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Numerics/tests/BigInteger/Driver.cs#L180) tests. It is only used to store the remainder out parameter of `BigInteger.DivRem` calls. I am going to disable assembly-wide test parallelization to avoid this issue for now. This causes the tests to run a bit slower (40 seconds vs. 23 seconds on my machine), so we should fix this eventually." +17500 area-System.Memory Fixing Span IndexOf vectorization. cc @benaadams Please take a look. When trying to reason about different test scenarios with @shiftylogic, these changes make more sense. Let me know if you notice any performance pitfalls or correctness issues. Also cc @jkotas +17501 area-System.Numerics Disable assembly-level parallelization of the System.Runtime.Numerics tests Fixes https://github.com/dotnet/corefx/issues/15395. This will cause the tests to be slightly slower, so I'll look into fixing the public state as well. +17502 area-System.Diagnostics NPE in DiagnosticListener when subscriber provides null predicate See #17492 +17503 area-Infrastructure Give warnings if bad paths are given to CoreCLROverridePath Fixes #17495 . @ahsonkhan +17504 area-System.Data Getting instance name from pipe name was added This change contains: 1) Getting instance name from pipe name 2) Moving instance name look up (SSRP) moved to DataSource parsing process. +17505 area-System.Security Make X509StoreTests.Constructor_StoreHandle more reliable On systems which have multiple CU\My certificates on the first pass, assert that non-zero certificates are found on the second. Fixes #17235. +17506 area-System.Net Skip SendBufferSize=0 test on OSX. cc @stephentoub @geoffkizer UPDATE: contributes to #16716 +17507 area-System.Runtime Add more tests for Assembly.LoadFrom tests corresponding to https://github.com/dotnet/coreclr/pull/10446 +17509 area-System.IO Fix clrcompression binplacing for tests cc: @weshaggard @AlexGhiondea To be clear, I don't like at all the way we do this today but I don't know of a better way given that we use CMake as opposed to msbuild to build our native bits so we can't really use our binplacing logic as we do everywhere else. This changes will make it so that clrcompression gets binplaced to the right path for the testhost. +17512 area-System.Threading Expose Interlocked.MemoryBarrierProcessWide Fixes https://github.com/dotnet/corefx/issues/16799 +17514 area-System.Memory Adding more Span Tests for CopyTo and Clear Addresses #17078 Part of https://github.com/dotnet/corefxlab/issues/1314 cc @shiftylogic Improves test coverage for System.Private.Corelib (SpanHelper) +17515 area-System.IO CoreClr #7061 Remove private _Prop from StreamReader, StreamWriter @jamesqo @jkotas @karelz Kindly review. This PR is for changes for CoreRT, implemented in CoreFx, for the [dotnet/coreclr Issue 7061](https://github.com/dotnet/coreclr/issues/7061). +17516 area-System.Net NetworkInterface.Speed range tests adjusted for Wi-Fi Direct Virtual … fixes #17439 +17518 area-System.Numerics Two MathF Tan tests failing on some Unix distros Failing on at least Ubuntu 16.04, Ubuntu 16.10, Fedora 23, and Fedora 24. Passing on Ubuntu 14.04, CentOS 7.1, and some others. ``` System.Tests.MathFTests.Tan(value: 1.570796, expectedResult: -2.287733E+07, allowedVariance: 0) [FAIL] Assert.Equal() Failure Expected: -22877332 Actual: -22877334 Stack Trace: /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.10_debug/src/System.Runtime.Extensions/tests/System/MathF.netcoreapp.cs(123,0): at System.Tests.MathFTests.AssertEqual(Single expected, Single actual, Single variance) /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.10_debug/src/System.Runtime.Extensions/tests/System/MathF.netcoreapp.cs(1103,0): at System.Tests.MathFTests.Tan(Single value, Single expectedResult, Single allowedVariance) System.Tests.MathFTests.Tan(value: -1.570796, expectedResult: 2.287733E+07, allowedVariance: 0) [FAIL] Assert.Equal() Failure Expected: 22877332 Actual: 22877334 Stack Trace: /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.10_debug/src/System.Runtime.Extensions/tests/System/MathF.netcoreapp.cs(123,0): at System.Tests.MathFTests.AssertEqual(Single expected, Single actual, Single variance) /mnt/j/workspace/dotnet_corefx/master/outerloop_ubuntu16.10_debug/src/System.Runtime.Extensions/tests/System/MathF.netcoreapp.cs(1103,0): at System.Tests.MathFTests.Tan(Single value, Single expectedResult, Single allowedVariance) ``` cc: @tannergooding, @mellinoe +17520 area-System.Net Typo in NetworkInterface.Speed range tests adjusted for Wi-Fi Direct Virtual Adapters PR Just a typo :( https://github.com/dotnet/corefx/pull/17516 +17522 area-System.Net Broken System.Net.Http 4.1.1-4.3.0 post-mortem Issue #11100 caused a lot of problems for a long time. The overall road towards solution (fix in a new NuGet package [4.3.1](https://www.nuget.org/packages/System.Net.Http/4.3.1)) was less than ideal. Let's track the post-mortem here (as initiated in https://github.com/dotnet/corefx/issues/11100#issuecomment-281827797): High-level plan to cover: 1. How did the issue slip through into release? * How to prevent such situation in future? 2. Why did it take 6 months to fix? * Why wasn't it treated/communicated/recognized as high-impact issue earlier? * How to recognize and react to high-impact issues earlier in future? 3. Other concerns (e.g. overall communication) See the writeup in https://github.com/dotnet/corefx/issues/17522#issuecomment-338418610 +17523 area-System.Net Could not load file or assembly 'System.Net.Http in ASP NET CORE Hi @karelz , I've been researching and working two nights in a row so far but I'm not able to fix this. All my System.Net.Http packages have been updated to version 4.3.1 but still get the same error. My project is a NET Core project build using Visual Studio 2017 template Please help me, I don't know what else to try or where to go. Thanks! FileNotFoundException: Could not load file or assembly 'System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. ![image 1](https://cloud.githubusercontent.com/assets/8812746/24325625/9e4a8852-116a-11e7-837e-d1483a5bec1b.jpg) [IbmVcaCore.csproj.txt](https://github.com/dotnet/corefx/files/870320/IbmVcaCore.csproj.txt) +17524 area-System.IO Consider using an alternative implementation for the Stream.CopyToAsync in some scenarios I have created an alternative CopyToAsync implementation which behaves way better than the default one if source stream serves the data in small chunks and the destination stream write has non-zero latency. It **might** be useful in some scenarios, but I am not sure. Leaving it here - for details in the original context please see: aspnet/Proxy#57 +17525 area-System.Numerics Remove shared state from MyBigInt Having shared state is no good idea for running unit tests in parallel. Because of sporadic issues parallelization has been disabled. Without that state, we're able to run these tests in parallel again. Fixes #17499 +17526 area-System.Memory Issue #14486 Update API summary. @ahsonkhan Kindly review the updated API summary. Fixes #14486. +17528 area-Infrastructure System.Runtime.Serialization.Formatters for NETStandard.Library 1.6.0 Why is there no System.Runtime.Serialization.Formatters package that depends on the packages from NETStandard.Library.1.6.0? There is only a version that is 4.3.0 which means to include binary serialization I have had to target packages from 4.3.0 which then appears to copy them all into apps that are netcoreapp1.0. https://github.com/JamesNK/Newtonsoft.Json/issues/1252#issuecomment-289250145 +17533 area-Meta "Change ""up for grabs"" label to up-for-grabs" "The up-for-grabs label is ""more"" standard -- see e.g. http://up-for-grabs.net and we used to have it in CoreCLR repo, but changed it to CoreFX form in ~2016/10 * [x] Rename label on all repos * Update docs in repos: * [x] CoreFX: [""up for grabs""](https://github.com/dotnet/corefx/search?utf8=%E2%9C%93&q=%22up+for+grabs%22&type=) and [""up%20for%20grabs""](https://github.com/dotnet/corefx/search?utf8=%E2%9C%93&q=up%2520for%2520grabs&type=Code) - PR: #17544 and #17594 * [x] CoreCLR: [""up for grabs""](https://github.com/dotnet/coreclr/search?utf8=%E2%9C%93&q=%22up+for+grabs%22&type=) and [""up%20for%20grabs""](https://github.com/dotnet/coreclr/search?utf8=%E2%9C%93&q=%22up%2520for%2520grabs%22&type=) - PR: https://github.com/dotnet/coreclr/pull/10488 * [x] Roslyn: [""Up for Grabs""](https://github.com/dotnet/roslyn/search?utf8=%E2%9C%93&q=%22Up+for+Grabs%22&type=) and [""Up%20for%20Grabs""](https://github.com/dotnet/roslyn/search?utf8=%E2%9C%93&q=Up%2520for%2520Grabs&type=Code) - PR: https://github.com/dotnet/roslyn/pull/18197 * [x] wcf - PR: https://github.com/dotnet/wcf/pull/1827 and https://github.com/dotnet/wcf/commit/1f343b2d2b3d3f17221215d936eb86381482a9d8 * [x] CoreRT - PR: https://github.com/dotnet/corert/pull/3121 * [x] cli - ""help wanted"" renamed to up-for-gras, no doc changes needed * [x] sdk - no doc changes needed * [x] CoreFXLab - no doc changes needed * Update http://up-for-grabs queries for all repos: * [x] CoreFX, Roslyn, CoreFXLab - PR https://github.com/up-for-grabs/up-for-grabs.net/pull/577 and PR https://github.com/up-for-grabs/up-for-grabs.net/pull/579 * CoreCLR - already OK * wcf, corert, cli, sdk - not present on http://up-for-grabs.net * [x] Find out if we can have 'simple' query on the site as well - issue filed https://github.com/up-for-grabs/up-for-grabs.net/issues/578 See https://github.com/dotnet/coreclr/pull/10488#issuecomment-289290327 cc @jkotas" +17534 area-Meta Update docs to be new-contributor friendly Our repo docs are not super-friendly to new contributors. It would be nice to improve them. +17535 area-System.Linq Reduce IL of lifted S.L.Expression boolean And, Or, AndAlso, OrElse Produce smaller IL with fewer branches that doesn't call constructors, but returns either the left or right operand as appropriate. +17536 area-System.IO Test failure: System.IO.Tests.DirectoryInfo_Create/DirectoryLongerThanMaxLongPath_ThrowsPathTooLongException Opened on behalf of @Jiayili1 The test `System.IO.Tests.DirectoryInfo_Create/DirectoryLongerThanMaxLongPath_ThrowsPathTooLongException` has failed. Assert.All() Failure: 1 out of 2 items in the collection did not pass.\r [0]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure\r Expected: typeof(System.IO.PathTooLongException)\r Actual: typeof(System.IO.DirectoryNotFoundException): Could not find a part of the path 'C:\\Users\\helixbot\\AppData\\Local\\Temp\\DirectoryInfo_Create_oiubi2ms.opb\\DirectoryLongerThanMaxLongPath_ThrowsPathTooLongException_247\\7725f39f-c9ed-4c7a-97ba-ce25ad170a76\\93a49321-8a9a-4918-a3b0-d4d7312e4d88\\1ba81e70-c761-4907-8630-f85599efc735\\85ff06f8-140b-47dd-9264-1e3d589e4d58\\e23fc886-be6d-4fbd-976f-c2269a417beb\\a4dcd2b0-6541-43c2-a33a-811ca3a312cb\\29e6e685-2809-4eb4-a45e-1504e436fc0a\\05d8f85d-d451-4b58-8625-b9fc71fd125e\\614f6632-91fd-4bb8-8f00-9a83908a3d99\\d8593a0f-fbee-4872-9a16-a3d393ed7214\\1cb9fbf5-7804-473c-bd37-fd12a4268766\\e06646ff-0d7b-4170-b851-c57f6705f893\\7acbc9c0-0121-483e-a5ca-a05dc808b454\\6e4fc915-14ce-4ed0-b65b-e0308d243193\\ba2687eb-08f3-4954-ac87-d8ee500926ae\\ced4971d-d1aa-44f4-9978-32be9c7974c8\\b32e7954-6830-495c-a31f-659bdd35ca63\\e99de026-8183-404e-b4ee-e1197c40b501\\e334a2d1-a44e-4a29-a281-d098a6bc6bc8\\2632486a-8822-4ff2-9224-bc519cd94818\\32ea3f9c-ad41-433f-a280-74def615e71f\\7c12ddfe-910e-47d4-ba2e-b517e75ce920\\6edc486a-dc25-4fe7-89ab-2443e6e9991a\\a9008904-dc6a-4ea4-ab60-f73c75226236\\fc528f2c-f757-4da0-85db-7d056ad3cf46\\8e347b2f-6a4b-4723-84e6-739bce9600dd\\f2d1f0fc-0260-4f90-9fec-56a96cf934f1\\7fa0f4e3-2dde-4a23-805d-add9823eaee2\\a4cfe699-d597-4828-8d27-b08e530e172f\\bfd0fee7-e217-45c9-a877-dbc2cb4d9262\\ba9ad99b-d908-483a-b9a4-0344a6f0f8fb\\751e5ab2-b825-4ec7-bfa0-aa4a6a39d1d2\\bf9f23d9-a78e-4ebd-bc97-76d0baaf9627\\feda1782-7bfb-46a2-8975-dbe5694c502d\\3b647690-84ff-4b7e-bc22-ecdeeb50eaac\\7cb91233-bf14-4bee-a244-b15665a9fbb0\\f725ffbe-9665-40e8-b3dc-259b60e9c30e\\29b77700-f69d-4839-85a7-f83a13f0f38d\\72445539-b76a-4fc2-bc99-526a4f42d3c8\\0cbc6253-1bf8-483c-91cf-e7d4e713094e\\fe524815-033e-4bf6-85af-90a83b2c5af3\\d4083ae2-9166-48cd-b38a-71380d24df54\\bb954caa-c834-449d-973c-aa94a11f5201\\07ffa3a2-c4e3-4ead-ad7c-a8ecd5b1e704\\ef4c12a8-619b-4128-9291-c3000820f4af\\5d58a29c-4787-4199-b4f9-62ec37de7cb7\\417c2c25-f080-47ca-9311-1a8a6f279558\\cd9864b7-c0a7-479b-8c0c-7e0d31422457\\aa4e3320-7570-47e9-9fcd-00fe4281ccf9\\a5ffc67d-02d2-4538-976f-821cf509f049\\11eeeec8-5f05-4186-a8a2-87b8fb7c8d44\\36e51cf7-6a78-4dbf-93f0-d14b030bd43a\\8f9faeb8-0575-4c8b-93b9-f1f4897ddefe\\43cb76ae-879a-47eb-b894-2c6ec6085a8a\\48fdd098-6419-4646-9c78-764a8fe050ec\\0c0ea20f-5626-4d15-99b8-488031f63069\\8b512e01-f8d4-4765-a27a-8fa06a189e78\\6e10a3ff-6c4c-4303-89c1-37e4d1a17413\\b5d06abd-7266-4b22-9428-787ce67a5372\\fc5a809e-d8e7-450a-b756-ceb08c0d28af\\accde79f-f866-41a3-b93c-f2f0d67ba1cf\\84579219-51d6-4023-b32e-610e949a5f7f\\b65bef5a-4517-4c24-8f95-381215e85db4\\9d8dde8b-d0d1-4ca7-8488-a79c36d67533\\efabc2d6-f279-4401-b0d3-43047d302922\\f2b58884-29b2-46be-ab66-9fc39f50be61\\b9e3534e-ccc2-4720-87c8-bec3b05a7778\\00864b30-e1d4-48cf-9633-f14cb7ad9ff6\\2ca87fa8-92ca-4357-beba-cd17025f082b\\60534d28-7e15-4216-ab34-88094850d3f0\\a0ecf716-9140-45a9-8750-62ae395a31c1\\5ce466a6-6dc0-41eb-8af5-c1efda1a245b\\2125cc2e-4f58-4e5f-80dc-553b7d5588f1\\d3b8bb98-35df-4f7e-a6c0-a21c3a7b5e23\\a4f1beca-17a9-43e4-aed3-ca9efe16019c\\202cb2ca-77c1-4cf9-8bd0-822464cdbc84\\055b197a-8e9b-412a-b4b0-bb8a96c99fab\\b3e494a9-f1b6-41d0-b91b-5e31456a1287\\718f3935-5d88-4e63-89e9-3cd919cd28c6\\053ee7fc-9e78-4c0d-b607-02bb7f906418\\6bd568e1-10e3-4f01-b024-72f5c07d0480\\2ebf7931-1c8a-4772-abe8-75aa46be5cca\\fecb34d5-4016-4e37-ae15-a2836b454207\\be6cf3ac-5b2e-4115-9d45-b3a24dd14585\\552d148a-3916-45be-ae27-2f7cb50a8c0d\\b6b6510c-4c42-4343-b496-c6ec9481af2e\\56a6a514-a570-4dc9-aefe-ba76544719dd\\57b0eafb-73f1-46b1-b360-b5955c0b38b1\\2e778314-af48-4e9e-9263-094c708fe188\\2a66a5b5-8fc4-4e64-8f92-899d04d1b853\\6c19c027-d05f-4217-9d30-7f9d43fcdfe6\\cb0c9e0b-125f-4987-b453-684335942fe2\\0ddfb0c1-f2bf-43bc-a510-1af6c70ec6d8\\14f9b8de-3edd-43f5-a19a-0521844bb48c\\e6a28997-0273-4ee9-8861-c855f0a53e17\\80f42118-d93b-4a97-8d2a-53dfbf748697\\82e9f176-1f6c-4be4-a689-af862cb64e85\\78d68b64-b94a-404e-bc56-74989f870b81\\d27a1892-23b9-43ce-95e0-22e53f5d2e9f\\0ffd1b99-e217-4a1a-807f-9173d15c745b\\fe819cb5-abd7-406e-bb23-2a7a38a11327\\503aa293-26a9-4214-bfe8-b9c2af98a191\\8ce95f34-35ad-45bf-9335-0eea013fe5f7\\c4fbff0e-df38-4449-8a26-8458d9039764\\9e01425d-6df3-49a2-b402-a5604772af92\\9345bab1-e9b4-4645-afa1-d0378ed1f137\\eedb95c7-2b3e-4674-a1c8-c7ea522bc483\\a33872bb-c063-42c4-b1eb-7ad591e4641a\\1910c12d-5089-457c-8ff0-6bd92cdfa6ae\\35200679-295c-48c8-a64f-a9d1f09da9bc\\6b1fc6f1-35ef-40e0-bd2d-9a5938b4f30a\\3f462630-db20-45b0-a7b1-a52cf08650d6\\714df3ee-0e66-41bc-acab-956c10c087b7\\ae410e3b-e0af-42db-9c64-d2281baddc84\\6edd90b5-5413-4b15-a0d1-7aa131d43267\\d371f649-bb0f-4007-a677-cede2244a852\\f6780321-1715-40ec-a03a-887878223354\\613c55f4-edb7-4a5e-8ee2-ca20d633b4d9\\a220c915-72e6-47a4-8ca1-9df55e59c215\\7ca734bb-c006-4920-90c9-fee612ddac7c\\db41a76e-cbce-41fb-823a-6cde539cbec9\\97ebc844-8320-49de-ac17-37075604a94a\\82749e00-815d-458f-b331-91756445b1a2\\7514e485-4631-4bd8-9f55-af72bbec15dd\\7272ae02-fa85-411e-9bff-6f9806d4e0d9\\c5825466-6d8e-4b63-8378-2917038c9ef1\\66941338-0994-48bd-8494-9a38e3b54a83\\1117b657-31ca-4a69-a6a3-a51823ba9869\\2c331018-7bd9-43e5-8eec-5f6505f72f07\\90d1095b-be21-4643-9898-663ab054cf8b\\027dadb0-c635-4101-9cc6-50ffbfcc5bea\\22d5225f-4fc7-46a6-ac51-aca8815139b1\\e10a5abc-37e8-4f61-a0f4-45004caca02f\\fcda8a8d-d16c-4191-928d-9a5a431f06b4\\99db6e91-e009-46e2-b868-ce4d3274ebe1\\14d9339b-6fa7-468e-8c19-f25a0b2235d1\\7da5a71c-a0f5-4082-a616-2be83f528f55\\39895a8b-6b16-4499-b1a9-01540acc1674\\5557db8a-9c6b-4bfd-aa9c-be4aedbc7114\\f7bb7f49-4135-4003-b8ee-81e1fa3d5da9\\2a68cdaa-b68a-4e48-9a28-ad7871de1c9a\\b8032881-e86c-45f3-8570-0b42d627b254\\65261bf3-4cdc-4136-8115-405ca3cbdc8a\\bc34e0e4-81a8-40e2-8241-d1a8dcbb216b\\4641018a-360a-4986-af4d-6213365dfd42\\3fda8635-f438-424f-82f7-71518cc34970\\65a61b41-22b0-4eb6-a5c4-9a1892f3ef27\\5ff6d234-60e8-41f2-aefc-dc0eef25dc43\\a9209732-2aa5-468a-885e-b5e758c184e5\\150747b6-8258-478f-8e51-40ba34ed3939\\55bd65fd-4a0d-4eae-9059-4aeeca073093\\cee1ca89-a19d-4183-a063-eba8b3afd34c\\2980f201-c0c4-421c-91d1-46f797f359ef\\c384a76b-045a-4aa8-8a5c-8f3facad6653\\4b441df1-6f57-435c-ab31-f1b7de6f8c26\\d4f0dd7a-a9db-4ebe-a9cd-546cc56eb10c\\8b781291-a699-4cc3-8b63-b17fb245e240\\a06a61c5-fe9f-42f0-974c-0b0a810e0bd2\\4e79105d-6c2a-4524-b6ce-412e0db81ff0\\89974a3e-f979-4c35-970f-44f872bc5f17\\a4ef28df-7450-4f68-86f1-36474553f886\\5e9d1383-ac3b-4a14-b315-3140ba22096a\\dd34a747-e25f-4b4c-8f7a-78569d7af800\\ebd48aeb-4aa9-4b59-b22b-f604d6cf8759\\f2795015-2a46-435a-80b3-7a3b1b881488\\045b77ee-d8e8-4cf9-94fb-90c79228fb34\\26558bb9-9a3a-466a-ae19-cb79290ca76d\\87595a98-3b05-427c-a58c-d21ab90fe57b\\6a4b04e1-d2cb-4a1a-a195-1eefd4cab7d0\\44191aff-ae97-4eb9-a2e9-980fbde25970\\4cb75e4a-439e-4088-af98-14fa7687f1fe\\be03027b-fc68-4389-b502-c23134806ac6\\311639f3-1db9-40b6-a4aa-3c69d0befba6\\850e1495-efdb-45d8-bcdc-af3caded6a4f\\6dd16566-8bc2-4704-aeba-ae895739e2ea\\5204d18a-638e-40f6-ad27-949a6be9e48f\\275807fd-7727-4d8c-a825-d67a3708b1c9\\84c9cd3f-8c23-4950-bc9f-fc8edafb157d\\a8465864-d7b2-4410-bac3-cd3aa46d9b08\\aaa8d83e-4b61-42b4-b77a-59ad4b646d54\\9fce6feb-d2b2-4244-b3fc-99732f558279\\2d52927a-8726-4b1b-ad00-2fa0c4096e7b\\1e9e7244-469a-47b2-921b-03ad47f24aa9\\25a466f8-1b13-4072-8ae9-83925f63906b\\cf1da10e-3037-4266-a0c1-35423c41a35c\\fdcdb060-3b95-44db-96dc-6f9a275d974a\\a18467e6-f8b7-4a81-96a2-4e27402453f1\\e0e83c05-5c54-42f7-9f12-8231950c0a6b\\e997573a-da6f-4e8c-8d21-6be25b18bb8d\\6d9a7a65-ef1c-4b91-94f4-3487b63fec49\\789378e8-44f9-400b-8dee-7efcb262b30f\\ff8b9681-91f6-48f0-aade-cdd410734dfb\\e44fe59a-ee68-4885-8458-3875c232516c\\80a78d30-9cda-4115-990b-c57e067783c1\\bb422b3f-60a3-4d01-9ed9-50494de685e1\\3599858b-f064-4e89-9e7c-1548d3591898\\55b2b528-e8a9-4a5c-a4ee-583f39c8b0f6\\e020f2a2-8d81-49a3-8fce-fa416c02d244\\e4325799-6e4b-445e-a440-c08d9bdea1a7\\8d65cbf4-3603-44f5-9bd7-63ec743ccbe0\\5ec202f0-775b-4ec4-b950-4d57b6288974\\d74229e0-b43e-4456-a266-65f0ef3162ad\\a5454b24-bc94-4711-9eb6-b9b4ee75f369\\17a5fd7a-b40d-4dd2-aff5-2c3a92621ea7\\aa14ffb0-5d6d-43ca-9441-a733c3e4b14e\\dc1ce7e8-57d9-4c63-97a7-6afc85c8f786\\016b214a-1d87-4d67-b51f-a5874676710d\\fa26108d-b83c-4dca-9626-6c65406bd1e5\\1199965c-f8cf-4ced-9ca6-c48026496650\\ba916325-43cd-471e-9b99-437123b8e0f6\\8ce58c2b-021c-408a-9ab7-4b47e4ca9783\\49e929ab-3d33-47d1-9eda-f902eb3b6c59\\8c817c91-3b54-4ee3-8841-0e665bb660d7\\87513643-be3a-4f63-99b6-e8f1ff43759b\\1f858141-7dfe-49a0-a01a-eada9d8e5cb6\\74bf0e97-cb92-430d-99c1-f1a5f346b86e\\acab5ad7-a9f9-423d-b250-378efe996cde\\27c53ea5-0786-47a6-8460-7d1261a9b3fa\\43ab1d72-7aa3-47f7-b9e1-c348b504c996\\b1e40378-c485-4cc4-a949-158b253eec3c\\eb708943-1d19-43bd-bb5e-c1b74997f842\\280f9f8a-b069-4bd5-9f7e-4ab61fe0ace1\\ef4b11f4-0760-474d-84ae-81c0eb06a194\\7de80748-0c72-4de2-82e3-866cc3f9cc83\\ecee9292-d034-45ff-ae59-06b54364d6f6\\1efb5035-f77a-4549-b952-e5dbe8337908\\93497052-3265-446b-be06-9987bbf68717\\5ff72994-d98b-4908-8d47-e7fb4d78610a\\723525cc-3ecc-40c0-b3fd-5ff01d7c5f5a\\954d2056-233f-4d8b-a0c6-251777b47c92\\d178fec0-e78e-4829-a4ac-403340b17d3f\\1a951df5-24c3-430f-a289-571dbcca8016\\a1a01701-3c3f-4d1c-b9e1-4b58da1ab735\\15c69b91-7652-46ff-992c-00099a1d504c\\09e29d94-f366-4e8f-a5b7-fe32b6c85894\\48c6b334-2177-4726-a7ee-42508ccf018e\\9b055282-96e2-4ea2-a1ab-6dbeff531d38\\d0153fbd-546a-4b1d-b02e-f05bb494af66\\b3a44594-3ca2-4c39-8dc0-5c5e1d978166\\8ecbb23f-1f59-4c59-aca6-b2dcffab9986\\2a38c706-cc9c-4ece-848d-d1e6b1c554d9\\a8da0889-9b85-4f33-af98-b03a1b7565d7\\0c49f0db-320b-42c9-af50-2abb901b5e0a\\260b7bd9-7e74-4c83-bc30-a9e31bf91e66\\8b8075d9-6c35-4e5f-afb2-b99446e4182a\\9460db16-b825-4860-8ccc-1268b13bd4a6\\eff88932-3371-41fb-8717-610aa33de234\\08eb8c00-58ad-4fe2-8a11-352a96e63f90\\d6b16de6-3d33-446b-bd26-a168fa4048e7\\66eec629-7966-4b03-aaef-6f1d203ab965\\43d85ecc-6b51-49e5-94a6-892b5179bfc4\\6b759f64-c6ca-482c-ab39-4485e8d18d68\\0589ec55-e971-4361-8cf2-d8a18156f30d\\1e3260f3-4338-42ac-b8f0-1a999cd06dc0\\587b87c4-f791-4adb-a598-591b41836c51\\aca7f4a6-a571-4460-b375-2de43b5fd274\\5ed51ce7-9a42-4366-9071-ea04fd1afcfb\\f0922d8f-205c-438d-8178-73f9afea1f46\\4636636d-eca6-4efe-92cf-58eb1dcd95fe\\3d5cf8c4-9ea5-4af2-b53c-7c08f11cec00\\579127e9-6dc4-4419-8cc4-9fb14d7c34d9\\491a364a-baad-4d4a-a532-c6d71f74accc\\204743e3-2e93-4498-b3cc-a33d37d5505b\\8f98e310-322b-4b42-8d6a-39c973c31312\\eff49ba9-f6ae-41d9-ab7e-04ce4e085a06\\ec4cc4a2-cb2e-4b94-83f1-4cb2d17c27e2\\eab96d64-69cc-484d-b715-64cf0a6e9f44\\d9fef542-b758-4408-9f58-2723b4c2206d\\0e175154-7493-448b-a2d3-b139e9302cad\\03052e1b-651e-42b7-a3ed-1a642906178f\\8b086443-6258-419a-8ea2-1e905f3f7ce7\\8f377ce1-8448-4a1b-9e46-3e446f9384a1\\e4fba0a0-f953-4321-9da6-696613744c76\\17ce6502-591b-4c58-93cf-4a338b1c0b89\\e79e26c6-ac5f-47fa-a0c4-43a19347da31\\8b362d78-6597-4ab7-9ff3-ae9e4c4882f7\\8cf94351-131c-43c2-898a-7a499fc01ed7\\005afa4d-41d7-40a2-9bf3-926b873161b7\\93df1bb3-b768-46c6-8c8b-0dfed7b2b430\\557c7759-d69b-4d71-bd97-c46d5e2e9a77\\8dd4aab5-ba71-4806-8c9b-067f88536188\\189dd85e-6b39-4ca3-a626-1cc74b265015\\74bd01d8-5776-4ab6-906c-c57ac61a0eb1\\35de97b7-3694-4bd7-873c-59c37def2b75\\ba2c4d37-4a25-45b7-9456-c7cf72b12d72\\ed33a830-2921-48a8-94a3-48f926ebbd8e\\21bd79e1-6d4a-415d-b752-9db6ebecf880\\f256fea8-bf2a-49ee-9f69-719b20082ba6\\312c5e63-454f-40f6-a952-1da1d18a6f71\\e44adf78-6e2f-4990-8381-022eb5e93b1d\\bdc61412-690c-42ff-bafa-7de703882da5\\b5ddeaed-7fbc-4400-b70b-3e9677257c80\\693b77e5-8579-4f3d-b3f4-90b2c96fa281\\3e8983d6-bd56-4f9e-aee3-12c0e9dc3b0b\\7aad7388-26d8-4bc3-a4d0-dc60990514a0\\3e93eed2-6209-4e09-9a22-30381c9f85b0\\56407f85-19d5-4bf6-844b-04b504d14eea\\1f8f08af-868d-4363-b235-4aa82154339a\\7781f63c-ef93-48c7-8e87-8d67abee94c5\\87e26b3c-76ba-4b73-8ca1-cdb18f70ffb1\\8358cc52-6ba3-49e2-9e53-be7e132572ad\\862c51fb-e4ac-429c-b32d-2033c50bae2d\\86f49d84-3383-4097-8264-4043cbd6ec60\\923b4422-63eb-4ddd-83ea-7d7c7230b92a\\93f44864-d124-495c-8ad0-0b3a6940a0f3\\213c8621-7e5f-4aa5-91bb-5337a800626f\\1ef9be6c-f270-45ae-86fc-56c970dc9cca\\86435e09-5e51-40a0-b2d1-6e41125863c5\\e887953a-0ac4-4407-af0a-33e3f700fec8\\9e6c46b3-65f1-45f9-9a20-4d53d5cf0b1b\\156eb607-c795-4550-9b68-5fdb68042d45\\800dce94-1698-4e83-a5a9-1ca68831d38a\\ea7cbf52-9320-416e-8771-bcb5fabd9dbf\\036ce506-8d6c-4b6d-af26-15be10a11fc8\\6f6a695c-2b8a-437e-b78c-b051cd29168a\\982ac7b5-1647-4a73-80fb-5fb50afd2698\\a22ee507-0d62-45cc-a700-dfbedfe84c85\\846f29a3-5f39-4f11-9824-8d16a7c35f31\\4b8cba87-fa11-48c2-9829-5b2c7d3df88d\\3a8b245e-924c-4b26-b910-099532035838\\7842d522-241e-412f-9486-a4d2f4bb24da\\04c5ed00-32fb-499e-9012-da57ab5f927b\\c80b575a-66ba-4720-93d6-9c6c52a55ec8\\13c19fc2-ebec-42a3-8fab-7dae1ca8fea8\\4065c246-32dc-4d08-8f62-2407f9b06875\\bf12b29b-bf5d-49b2-9279-a2e5fd8aeef3\\b3286eb9-143b-44fd-b244-f5f447468927\\c39ab412-ba16-47f7-a5f3-d713ca011153\\19e6815a-0b42-4570-a853-0b3d808d408a\\f32bc98a-ae62-481b-ae6d-b533962ade11\\d314a78b-4385-4bb8-98da-ada755a41b92\\f52bc7cb-3b3a-495f-8263-f5b84482982d\\9fe33910-daa1-4186-89ea-d3c162262c65\\7f0cc45d-ded7-4039-8ac2-91bbd3b2c017\\85a4f414-7bc4-4bf2-a4c1-91e632591e9c\\130480e1-6ad6-4eb8-98a6-88001d9dc717\\b9843c6b-eb90-4805-94dd-0669f2cf1759\\76994d2f-933f-4481-bc11-ff884029e418\\1f0af801-6bb9-438e-aae5-4cf2ded2ffa8\\4a31de24-3a60-44d1-b5e4-513e7bb65272\\11f9a242-84e4-48b9-a105-ef361564a60d\\04ca16be-3cb8-4650-91b0-aec89bb67a00\\6b6f7ca5-8914-4786-a158-c21c89ca6536\\2dc96417-1fa7-4e95-8395-cb83cb47656d\\303d8863-a63c-4352-9fde-25323817961b\\79a30fc1-9d7b-41de-8998-5189c7f26241\\6e5fd4ac-b119-4e0a-b2c2-17ce5535f93d\\2459cbd9-9e6b-419c-a0db-564dadecb720\\70629a5a-4096-48c0-9c0b-6dc113cd05e8\\700b30ac-6109-4b52-b64e-d6cb0af33831\\79334484-379d-4ec4-ab83-364b5233cd22\\4ebd5538-01cf-4fe7-8deb-d09e0d468b2a\\136e1a81-bfee-41b1-b6d7-09eb453f222a\\c05ab88e-17af-42fc-881e-1af3b0e93a4a\\4afe7273-621e-49b8-9eda-d9e5ee51672b\\662615ff-58f0-47ef-b1b1-e7190220f4ae\\888f03c9-8453-4854-a8b5-923fcfbe7a7e\\396a2d76-6422-412b-96db-90ec64e14457\\14f487fa-b157-4bde-8976-4f4c05eb97ab\\f7e9fd7a-27cc-4d36-a997-06a47350fe50\\7000b616-045c-4028-8c82-6be65dd6ef45\\b67bc83f-8d0a-4cf0-bf4f-1b49720e943b\\8bb9fe9b-6ca1-40c2-8116-f7387f1405d1\\3b0db101-1af0-49c1-9e73-65e37b0dc814\\a676cade-bffe-4908-ab8a-7d6724e55cce\\04834328-1efd-4f39-8a88-d1fcc115a7a0\\d1b00c37-d69e-46fe-baa1-fd37eb3d457a\\e0456bb8-2a38-4bc6-a45c-678b689e5cfd\\b1c16fd2-3024-4886-a2c8-04ccd5728b56\\2a4845ba-3c1b-4651-989f-b7c87cf8dcad\\f6245c7d-3f9a-4ac2-9d76-c5a4f5fa486a\\2c9b210d-fead-4301-9c34-0fb52c0d32d6\\b0937e47-b168-4eac-9f99-417cceb17722\\63117ef0-2920-4464-8583-b5f03bbf8618\\ad89452d-21b7-411d-9006-9f7c5ad0fec1\\08f17245-08b9-4723-a6af-11034c3c1c22\\e3c133e6-0f79-4c30-8d8b-b66141969d06\\52f162bd-83d5-4acd-913e-5547a8f64f1f\\b88a5cdf-f385-4396-b74a-255b0596dcfd\\2a3ef0a5-82ae-4d87-8f24-e0a17a0c3399\\4920d6dd-233f-4646-b668-2dc04b4f3a42\\667f2b2c-b61c-4e91-b1ff-31d81b1e0972\\bf77f69f-f25f-47d5-b93b-bbd18128e415\\f55f6390-9b11-47b7-b593-2674906a9aa5\\fd18768f-9e8f-4cc2-a4ac-c6c04382a4fc\\d9e40925-a59f-403f-aaec-aef4602a9cde\\65dc80b8-6b15-4dfe-814f-7765cfcec2b3\\9a917fd8-46cb-4dca-a549-103ef82d1b77\\19d55443-bccd-4b92-927f-932c28cdec17\\2b5f5297-7336-4d2c-97c4-8703690e8ab1\\1a7ec120-4de0-42bf-ab8a-3e0e5eaa0c5e\\65b1d521-643f-4278-91b6-ea61975681e6\\ca28414e-cb62-41ad-a8e1-a648df10cf1e\\f4d85298-f806-423d-8458-76392d708824\\35b9a5ea-6faa-4f5d-b51e-cbe462806709\\46d54e56-da39-44fe-b3b3-42830311e434\\75982df7-bc95-40ec-ba7e-e71d57c963f9\\4e90f829-9655-43c4-8c39-22c24dc503c8\\f9a00e3c-4627-4a88-a8b2-a5e41aa714c6\\99bd3e7e-43af-428c-862c-2221211ebe2c\\3ed6388a-5ba3-4730-b3ef-8b748fdef100\\8a803fdc-b764-4a10-b831-291108d15ba0\\c8decfdd-c57d-464a-a5ba-5bac73ab72d6\\be82c3a0-9e6b-45e4-a4a4-8a3ea48e83a9\\5a5bdcd6-cde2-4d08-b5bb-5f497d72d565\\4de96fa7-f172-411b-b8e5-77beb115b009\\7ee247c2-8e94-4ce1-a17d-a7bb8df3d9b4\\ef89ad40-5ac0-469a-97f9-65963d7b1b5a\\fd1592f1-83b4-4033-9a67-170ad4496717\\f765a20f-24ae-4d76-a98b-09602187a6b6\\53fc22d2-5184-407f-ad9a-c60b754eb58d\\b82e30e4-ebf3-4d5c-88ad-67a77ce07deb\\98c18798-f6d5-4c6e-b9dc-e290284fa764\\0d3606a3-5cfa-4053-bf04-93d4b71319e6\\a84787cf-5915-45cf-aa1c-ea35b9bdc9e0\\14f965ab-1be1-479f-a7ee-4711f091c3f1\\b9853604-6662-4fc2-97df-0ccf7c85b429\\ab90348b-a085-46b7-8ce1-636f2451bc46\\6ff2f1e9-c8cd-4424-ab4b-e343e57537d3\\b1e1c2f1-c42f-4d0b-9321-1fa81a7e63ea\\2a0eead2-4161-4985-a535-15dda21f3109\\921a1fa5-8253-4289-952f-0d2e6edfa4c8\\8a2794ed-75de-4870-9de7-b06d30295a63\\04d0b9e8-24ac-4818-afdd-38de181ab6f8\\137a4e4c-89e3-4f32-9fe7-06054d6f8a1e\\4059ff44-3aa8-48c0-9c75-917676b4059a\\b889d432-0bad-45fa-902e-f2b864b0097f\\f7d6f72d-9d16-44cf-a3b4-e9456d74c3b8\\7ddb574a-5db7-45e7-9255-0018bb624e94\\6db3bdfd-2703-4ba3-969b-28a8f3bdd53b\\9b2b87b5-9201-408b-99ef-73c2e9362f8a\\aaf20b1b-4b79-4f51-8b68-fea78dac6da9\\2b629da6-135f-49b1-80cf-43263eb89ab3\\20b296e0-1faa-4bdf-85ac-a77d8fa621ed\\89362545-71cc-4834-9d0e-6dc6fe64152f\\51e27a01-518c-4de0-9f67-7495d5bb5f6b\\394c1564-7748-406f-8659-85f9b9fe13fe\\1d866038-5fff-410f-a68c-071572d65900\\c80c51a4-6ed0-4425-ae66-822ca1a2f16a\\7e86f4b3-de5c-4335-a7dd-570815afe526\\26a1c5c0-508a-4e4b-a48e-6d2a4db1585e\\97b6981a-b3cc-4295-b804-ed1db86eca6b\\7918c869-8d52-42e8-8267-fbb87ed0bd5f\\e8699606-79a0-4355-aa66-559361885bb4\\78b177ca-cf3e-4e11-a831-bd5020aae713\\02758de8-daae-4260-bf60-76bccc747a02\\6dcb6a10-76ab-4184-b844-e45fa3ce4ce3\\bd4d7bdd-4e36-493e-9e0b-601359625c54\\589a7105-2ab3-44a3-8937-3734343bd7a1\\4fbf15f7-8d84-43cd-8633-8df4242b1c8d\\8e999dd3-3f1c-4c03-b8e8-e23098e5907d\\b273eebb-507b-45d5-96d7-3d7c68da5bc8\\1082212a-a12f-4c09-8dfa-f3824fb6aad8\\b88dd311-4f07-497e-9bc1-27116dcc8463\\5a38d424-171c-4c8c-8c66-2e0e902578d7\\22ddfa6d-54c9-46e1-b916-717046cf347f\\f162be98-a14f-4bcb-8f98-d3a4a26b8877\\b2d0b97c-df41-49b0-8933-7fa9afc3340c\\d664221c-f860-45c5-a919-139c24fcbd2c\\76e587e0-5e8d-4206-8ef0-8f990bbf711b\\daf2b2cf-a678-420c-ae58-968a05e9b87d\\8e41c46b-3e4c-41ca-a7d5-da0bb188ddfd\\c7795784-d437-43d0-afb6-92b06e2a2245\\12e5a3de-e072-42bc-ada9-0d77c5e77c6d\\1665a174-a8d9-466e-9eb0-1057d1426731\\c86c7700-64aa-4466-863a-787b4a9fa6e3\\240026f5-8530-492b-8436-86976a7e5fcf\\bc03c881-c24d-43f3-8408-b72f94da8c04\\4fba7725-6461-4017-ab89-a1b09fc6d5d1\\7bfd14de-a28e-4d00-909f-c3ad0f706693\\0a5a7ec3-ca87-448b-a284-785e2ab8b3c2\\e1620555-1962-4295-afe1-6eee02901688\\31357d67-da30-4850-abec-a48822aebdd1\\f9408d92-36c2-4cff-a916-82260436cfd7\\cbaec5a8-55e1-4c34-a0b4-5b2de19aa149\\8e369bc2-b407-48dd-ab86-c17ccc080ef4\\f3c74e65-b59e-4060-9b64-4f638933e664\\b2aed32e-05ba-4c43-8429-6419ede330bd\\40dda567-ee96-414d-9727-eefe501f4547\\be1b0851-a69f-4715-bee6-d00e2708ffaf\\86c6b730-3a96-4496-8979-de99cda8ef9e\\0af15759-e5a5-4a1e-a244-02f932fc8d5d\\2999cf31-5b17-4199-ab37-ad3abd73ddeb\\7846a51c-4ef3-4110-9aaa-0cf2ef9259f0\\42a5e027-5d13-4a80-9ca6-e63c4ce7a681\\5c610e2f-67fd-4a11-8e1b-c6fe760a8914\\8eee07e7-99f3-46d6-acb5-4c85637fd8fc\\8e7473b7-174d-4071-ac28-eb852d30ad1a\\6cfe72b2-fa0a-4321-94ce-863b7a73e6ae\\33990869-1e2c-4bce-86d1-7da57b85ec24\\5528e15a-3a9e-49b7-9161-483a6dbd4297\\cddb804d-f229-4a34-8cf2-eda2cbba108f\\28d340f3-1d2b-4507-9a02-84c56d877307\\1e2d94d4-afa1-4822-a6db-d3545b6b251e\\da0ab506-367d-4664-8ab5-4b489a515f21\\ce95db1c-f949-47c3-b5be-3f36872ac57f\\480303a4-e0b4-430a-ad3d-3175d6acefa3\\cff72b00-0294-4f39-ae9b-b854944da524\\46e0ace0-0c51-4b7e-af9c-5b702b7a0430\\edd75537-8b5a-47cd-b79a-404d22b58156\\76525b3b-8393-4060-9396-c7124f6230a3\\fbd71b15-573b-4b4c-925d-ca41ab83b6e9\\5748ef6f-b14e-4b71-8bf9-84ddcb7d3aee\\b973c5fe-6cda-4d0a-a569-0e0d2d0960d5\\bad90c3e-ac4b-4855-83f5-b12493f72038\\6e0b63fe-2af7-43d0-874f-c9a0563510f0\\d218289a-74a5-416a-941f-87caecda1346\\d27860cf-879c-4606-b045-ec56f5adeb5a\\58e821ed-2cad-4d11-8619-ef84e39a322b\\42d594a9-ff85-4b91-9994-3aa5395e1da0\\63328208-b5e8-4741-bf3c-ef538b8705c3\\5ed54174-8204-45b2-8e3d-2f0fcba08ef1\\7acc3ab6-1232-42c3-8c68-5d3ad3822809\\b9d59cc2-2e69-485c-bc58-fd1209e9814b\\aad4bea1-b269-4691-907f-ddcf9fd012af\\a91a1864-66ea-4d96-8c6d-6f2ec87f86d3\\0891ab56-308e-4372-b61d-7df176df5a6c\\1eb9aaff-b980-4cba-8654-3acb999ab91d\\0df185bf-b3ab-4253-a18c-f393af7e1707\\b72f5f31-8689-4fb8-90f9-3cfc2a6aad3d\\28b3d27f-3c67-4dd1-ba7f-98d748aaa0ca\\bc3a0c0b-99b2-4b4a-8a92-102e5c1f6a9e\\f405da1e-66e8-463d-9e85-88ac44eb239c\\42531204-b59b-4269-81c2-b5676e8256e9\\317d355a-08db-4612-aca4-4478bb42ddba\\93d6470d-0628-46ce-b51c-7e3600e9af55\\de05cdc0-2892-45ef-b4dd-8c7dc1bbabf0\\2726e00e-8dc1-4bcf-81c4-53e6d29a839b\\25397e67-956a-4065-b1aa-14db211145ed\\ae35613f-025f-4075-ba41-f5947eaa2ce2\\7c27015a-ae7d-4650-abc6-dc482b83accd\\9d685f35-1cff-4499-ae40-c68bb6d0b513\\48c7f22e-d20b-4656-ab02-65785cb86bd0\\64fe99d1-0dc4-4df1-bf3b-abed670b0170\\5ea8cfe7-3a5e-49c7-9fce-8b46292ec469\\42afb07b-700b-49f6-b646-7af9be432d21\\4ff94392-632a-473d-9304-cb22fd016155\\0108cd19-40c0-42e7-90a6-1c2ffba1ac59\\2250afb9-5530-448f-85ac-e866d64c9dfc\\d725d929-06f8-4db7-b9bc-0f8b803bfa36\\fd67189c-bc39-4de7-8311-5ff8ad9306e3\\632fb8d4-f6f5-4570-a6bb-4bb691bb6ec9\\e9ba4715-1d89-451b-89ba-76620d1d2df8\\53ebd1ca-4fd5-44e5-ae1f-ee2aedb77840\\45f757da-dbbf-406b-86a8-eb76764557ae\\694e1293-9ae3-4800-a95e-91558a918f52\\087746de-7399-46e6-9621-67c364dceb56\\09d1bf57-f860-40cb-9c99-8d68f1b5484d\\ef3a1675-bdcf-4072-a2dd-4be216e81cb6\\94dc9e52-631e-4154-9ee8-2f839df9b4dd\\acde648f-8aee-4d55-b5f8-4ea7589b2922\\7d2e7095-6d4c-4c11-8f1c-14339493b5fa\\da8bfbb5-ecaa-4063-aa41-7b7fc83fddb3\\35872741-95a5-418d-91ea-f6ef647d67ed\\a9c4a19e-98a8-42e4-8f76-ad8ccd6bccc9\\a7370097-89f9-4e8b-ae81-073973725baa\\63f690d3-60f2-45d8-ab1c-252cdbc82be4\\23bfa918-608d-4f7e-b2c8-e0466b1059df\\19b3a2e3-a8a5-4a48-9f6b-5e675a34c006\\c549e3ed-d313-4d0c-8258-4b5c7aeda993\\3562e4b4-5fec-43c9-9771-7558baa41102\\96e81e5e-ef08-410c-ad8c-a5809be8c1e3\\0323e277-0da6-4a85-a51c-79e5ff94bbfa\\d1ffe63c-c505-439c-852d-b3acc120c527\\cc0fa547-12a6-47dc-9822-3bac620344ed\\17852783-eaf0-47fc-874f-e1a878b840f1\\7182c465-8f27-4caa-9d68-5c09b8d02cae\\bd36136e-3253-4822-abf4-437af6e4c9d7\\bb601b79-8dc3-4cd9-9d8e-778e04da84f3\\fad3c2b5-fc66-4d80-8f31-9d98589fd5c6\\19811d29-4af1-49da-abb4-af103b28c818\\39182b02-6f5a-4918-9d55-e9a8fb1e0cd8\\39ca646c-b0fa-4888-ab96-ab09a8f52ae7\\1ea23838-4630-48d8-8787-c720d2f97b98\\47caacfd-7790-4d0c-b916-db69f4e31a66\\1450e09d-ce4a-4b89-9d6d-66a1ea81a190\\b14f363e-2833-4d50-bb73-b62b9e14b93f\\9a3d6a2a-ebcd-410e-8068-2757326e2ca7\\94038393-e7f6-4f19-966e-30865db5b965\\1d0c9696-a5af-469a-85af-1785b677333f\\01bf8885-d792-42ed-b3aa-dfd27a436b24\\9a603c77-c66d-40c6-a609-7f54d3c58874\\f813cc47-08b0-43e0-b1c7-ed2425c62ed5\\ea942633-58a2-441d-86ac-1581ec6df1cb\\34912254-d51a-43a2-b61f-9df71eed5341\\c5b6fb23-1325-4706-9b78-13d7e7c276c5\\93fbe5ba-1855-4184-abed-8d8fc373e0dc\\963f3dbd-a966-4252-8a0b-2b82c93a35e5\\fec159a5-b63f-4e68-8294-09c06fee7fd0\\9b14ed0f-3e7e-43a4-a84d-a80b3e35e09b\\dbfeec35-45dd-4093-92de-e99c68e768ea\\138490ed-a205-4f47-a51d-1d24e79ffc0d\\ba8db6fb-1eaa-4ab8-99d2-e7ca660e6cfb\\810948d2-d7f3-44e5-b75e-dc0fc214fe02\\73923dda-79d3-4cbe-8f20-e44c240de04a\\ea4d367a-b6c9-45ce-b29e-90b1b0445297\\bcc92fae-ed5b-4e4a-8fa7-7a6a0da1bb0a\\d609e110-cc6f-43da-8452-db3ae5766bbb\\1c9747db-e275-4fd0-8a1b-8cb6c7603443\\7d8fc62a-26f7-4413-b23e-7bd405221949\\eb436e25-9755-413c-9875-f9c01bfe8c7b\\934e1657-8c98-4378-a6ca-ea0d8f1ac6e5\\478af58c-2136-4c5b-a795-e87cdd8ed77d\\a134d5c4-a81a-4095-a205-63cae55d76ae\\f4e2fe13-0cda-45d2-bd78-bbcba0a3ddfb\\1def0414-dada-4929-aab0-a9082199ba02\\ee21a1a4-2559-4a3e-b44e-67045bd02de9\\d0d5d8ce-f919-4468-a7fd-e059800067bf\\735b5f74-ec22-4bb0-9b12-527c993e789a\\10da3d44-5f3c-41d7-be40-cc2df1443ee8\\7be3bc2a-dd41-4920-8ed8-d0027b9eb816\\a32b6981-b23d-4e92-a38c-e89604f5a870\\84238d56-a653-43e1-adef-d0d79635c307\\059032c6-6fb8-4f68-97d1-6508c977ad4b\\b1f7c6e5-56e2-4f21-8844-c3d89e3562b2\\6aa20bc0-7bd8-41e2-aef7-db488ec03646\\06e84724-ad67-45a5-95ec-569e6f98f949\\041e31f5-52ce-4fcc-969f-5262df1560f0\\0da0430f-48d2-4edb-b928-3a9a08e10b27\\aa35fd50-ed18-4ebd-a951-804f89723851\\d605deba-8b35-463a-8212-a6972d580eeb\\c9fab6c3-1da9-409b-b055-5e448ad2102b\\73c191fe-f6f2-4c99-80bb-8f92e3f37c9f\\25abd92a-51d5-4e64-ac86-e37b48d2d7d6\\c5dcded6-6ec5-4694-bc62-63e9472840ec\\8a318418-deda-4d48-a93c-acb1d90bf7ff\\98a90727-9487-41b6-bd0e-c132f046bf38\\cc316ce5-832b-4caf-a5cd-6fd29dc5b56f\\13770e83-506f-47a0-9ccb-cc8271d23cd4\\2bc6c4be-a8ac-4cf9-8087-62abdc2120df\\85c9b738-6c9f-4699-9444-20a3cfa034cf\\fbce55ef-c9ad-405c-8297-b594be61e527\\2f610ca7-a31a-4011-a278-b95ca5efc6c5\\d8fb1103-d5a9-4b39-ad4f-40c2a91a6512\\9a982873-7628-43c5-ab64-98cc346be6b8\\1000bc67-82ba-40e2-8b44-babd5fd119db\\9c6fc803-e6a1-4184-979f-103d8f3675d7\\4c3c61fe-96ec-460f-929c-934eb360b36a\\6fc6c913-eca5-4715-bbb4-712c7f895282\\519c4341-243a-4b85-b7f3-56c123fdca9a\\d60bfaef-3e1a-4837-837d-4542e5efef75\\298b0635-ca41-46a5-b6d1-f26020885dd3\\15febec5-3672-4fc6-879d-646625a9d36d\\fa2f5ea5-df48-4f0b-ad1c-0077dcdba2ae\\76070106-b28e-478f-814f-258ae65573ea\\e8a07ffc-363e-4a8c-9cc0-3a7bd1a309c7\\67c952ee-e861-41f5-96c3-9358e7cd8265\\c49175c6-bed5-4906-a177-aa9af18ddac5\\af5bb109-7fbd-4031-88cc-c9c4b2deb390\\72f7c056-495b-45bd-a157-1b57fabfd5e2\\c3171ec2-47d9-40b6-9657-eb8f731402d1\\af983881-d5f9-4daf-aa5a-39ef2663ad17\\6d9b4798-8577-449a-96c7-b7063646c25c\\615107e2-15ff-4d7c-9057-69642245c76f\\1cb484a8-1ad5-4bb2-9082-e296db2c34bb\\b476a5e7-8ddf-4721-9448-fa17387f9ff4\\ec7ed1e7-7073-4fad-a5dc-85c27b6c0253\\08199f02-d6a9-4c2f-9c4c-aac092705c71\\123a238c-5aaf-4859-9155-c7ec3c739201\\8b17c251-93b6-4f33-994f-afc6d75a2bc3\\470a2790-1411-4dd7-8670-d86377ebd3b0\\85dc857e-6f79-411d-a074-fc21896c0cc7\\62d34b78-0edc-4da8-9eb0-e0632b1fb457\\4d5aae01-b3d5-45bc-92dc-2a6bca405ced\\d7f0abab-d0da-48a5-ad13-b6b0d7500f8a\\b04d16bf-e15b-49d8-aecc-e1e99e291d4d\\07e17c09-328d-42b8-b74e-d4862ac6cf7b\\fd81644a-cf1d-4e6c-9447-9d19964fd551\\1f02f390-88bc-4450-a24a-837c30cabb9d\\b77040c5-5cde-44ef-975c-77ac6e1bf59a\\ca351a36-cb1b-451a-84f7-224435e4edec\\8071640b-310b-4fd3-81d3-c6d9bfe54bde\\2b216092-23c2-4ac5-828c-0b45fb7d89d3\\d1a5df02-ebc2-4e17-9c9d-3f8d1086db86\\16138d61-2ab7-4853-a369-993f23c52d82\\b594fe90-95f5-4df9-b35b-d18a992c5943\\0bacc300-63bc-4a4d-b962-a4637bc8e8a5\\f3636464-635c-4295-a18a-99376e475ec5\\7b9deb49-4392-4c7f-9442-4fadef94a1ab\\a658a529-43fd-4bbf-836f-0c57d9d5f927\\97d56a17-991e-4143-b6aa-1925dc3482d3\\57e4aca1-e6dc-4ec8-82bb-64fb141eab40\\fd271248-3294-49e4-8eb8-d9d49e040f2b\\64205064-3510-4827-9f81-5a00a95a93e8\\4e62246d-bb9d-413d-a464-92adc5a65eb2\\7de30668-cf5b-448e-8294-658c683bfa30\\eeb9d1eb-7698-44f9-aae4-10d528e30779\\c519445f-e080-4575-b3ba-a14e5f75dbeb\\dd251e2c-5944-47e2-9242-9bf88a5b2141\\51b5d7d3-e134-4267-801e-11af5ce9a6aa\\a892caf8-2d97-486d-9117-7310a17b73fd\\82803fe2-4877-4d51-8118-244f7ffb9ea6\\75251c13-046c-4f06-9782-e6b9c4f61587\\332dc139-5953-4710-b4ff-811ed5c822d4\\a8943531-e461-4c69-9849-6db3f67a853d\\1c3fc0be-214d-47d4-9f7d-4507ec34774c\\738ca35b-9e67-486e-aa6a-8c1297af723f\\88954dde-4f8f-4c33-85d8-1842b32c64b5\\c9e86fad-6cd6-426f-a34f-826a52f48f7b\\37620a77-3053-4656-b0ce-978ea71a00c2\\2369a4f0-2529-4b38-b336-85b6e5ce7969\\5ef35489-b74e-427e-8796-38cfb9c728f9\\dbe8de4c-4490-4db7-bbf1-c37adcb08e3e\\5df1b0e9-2397-430d-a1ab-60f196ee6bb8\\09006741-7d8a-4234-85e2-bcd7cc4857af\\6a5cfeee-929e-4f6a-9e72-1129e965a7d2\\7d8c7862-b4e3-4239-a23e-ec7106cb00eb\\18172d5f-6d8e-4680-9485-7306fe36ca88\\4dc895c8-6b30-4d3c-be7d-71da22dfe189\\6d56b8a6-d055-4d3b-9085-b4cb9d89d9dc\\5136d463-ab64-4fa5-abdc-1c1d6dbf96a9\\9829f3de-098c-41f3-943e-478f0acaa291\\51379e33-de5a-4974-8677-e0fedeca5538\\594e4888-1cfa-4751-8fb7-5cd02ea834de\\e377618b-4703-4b90-a804-0e5acdb1c148\\94ed8fe6-8404-4d81-aa3d-2f5f182ac45b\\c8d9c059-f86d-4fc7-9d1b-61954eff93d4\\82821af6-ce28-4f9f-823b-07990af11bef\\0c1260c1-7b9b-4d96-b33e-b80055f998eb\\ed340927-12ac-4155-a687-ecbba952168f\\5da77136-c912-4963-87fe-d8ae8e1369d0\\f2754355-dbc0-4dbb-be1f-47d0fadf3fcf\\16d1da26-51e2-4a60-ba18-5ee7e644f59e\\91dedd69-2868-4f2f-87bc-3c0c765d8efa\\468f7367-a128-4f3c-9661-ce5aa3b78ab1\\5ba269b6-0414-44dc-ba5b-c1de0c189029\\b371ab36-7faf-4447-8f77-cf210e2540cf\\c9a7125c-8c51-4dc8-9f91-a586c72d40b9\\ecb56afe-c393-4ea9-874c-15cd099a2009\\61990ebe-7d5f-42f6-8aef-9ed6b532954c\\0f3ef2a1-9494-4fbd-ba2b-6743ab45387e\\228729c8-4381-477d-a147-ebf850ebb617\\4988f20a-03a6-429b-ba2a-42b253016b30\\c66f6233-1685-4a53-b6a5-c356a8d5cd3a\\247b0f90-c5ff-4cab-9716-8ca58aceee84\\f42213ab-6a7a-4ed3-bb61-0db8eb45cb88\\1bf748fb-2d0a-4a03-8d26-3df7862c650c\\7349c87e-a3b6-47e1-b37a-86a3aba57b7f\\d16f2291-3ca1-45e0-9e65-96482198a2ad\\891bc995-724b-406c-b69c-4d01e2bc7674\\dfc37f0b-7ebb-4574-9f6f-ac2dcc8cccbc\\5cb5bb82-9051-429c-8a37-be1f95f62f9a\\ef8f8b08-3c4e-47c3-a913-a452e9ecbf15\\2a0fdd0e-20a8-42fa-a5b4-d6996ded1d79\\62f84b05-8494-415d-add3-118f3d4719e3\\53a8d663-62b1-4ee0-9ca4-0cb28f4b3e4b\\3f3c8286-49ad-4cb2-9b48-02aed2a89d8b\\f56c83ff-9755-4ed7-a26c-277190ddd7c3\\2985deba-2282-4abd-9035-7c80eb6e9a6f\\acaf0651-350f-4fbc-bece-b0562b0f3804\\91af8494-78cd-48d1-8d0f-e1f7b95117f7\\997fe299-83b5-4ad2-a677-cf55d0fda35e\\0f341259-ab0e-4d9d-be93-79f05cfd9e1a\\eba393fc-117f-42f3-9726-052d9758ee7c\\4618f75b-8974-4a17-afba-80d6eefc04d3\\da9573db-7d04-41e9-aba8-1f9f42bbd136\\afa26918-7709-4ed8-a85d-8d915ffa9564\\42646a23-0396-40a5-ba53-157b671451a9\\321426d7-c0fa-4316-9a50-c70e86d851a1\\e546cef6-e536-41f6-8846-5aa6027d3349\\12838404-f002-4f75-a812-d9daf560aed4\\ff1f8c0a-421d-49f0-99bd-70e2853f444a\\65d4fc05-cb84-4cd9-9229-6f14a0c7e25e\\ad661261-1f12-4b87-ab77-22eaf5053f79\\5622da94-4224-4a1c-a826-d06dfa0ceab7\\707c3f98-d9b1-41b6-8f24-c2f716b1a57e\\d20f9f88-705e-4da9-886b-e9b90e445f1a\\5155afff-3ffb-4807-b586-faccbaf1a2f2\\de35918f-6d30-4bc8-b540-e28ee38405d5\\d4a367de-855c-4fc1-9be5-88722aef1c5d\\5e55d841-3dae-4d03-8887-da666ce96fb4\\798e7767-d774-4d5f-84be-eb4680f2911c\\1fa0cd7d-a2f0-4b56-a94a-18e0dd53d030\\066c195c-9ea2-4273-8f18-614332cc439b\\af93b7bc-1db4-4474-a1db-819c40799dc9\\cea77671-7e29-496e-b628-043c99bdd79c\\7500ecaf-2e32-4711-86b6-c32661f9748b\\3c0b8f6c-fbf2-466a-9ae3-d253b96bc210\\512fefc8-676f-4414-81b8-92fdeccaf0ba\\b4ff20f6-2771-4581-96e1-218520e338bb\\6baf412c-2fd6-4b65-a6c3-0d6c6915f1c8\\6defdc2f-d8cd-4919-9f59-0a78789b1ecc\\ba20da2b-2df9-4010-b280-3a862646e637\\65e67b11-2aff-40a9-8c8e-26e5680ee5e0\\b07e1396-38b4-4d74-987c-54de4ece6eb1\\e269a0ff-532f-4b1a-8af8-2a19e8fe6eee\\5a1ecbd0-511b-43ba-bebb-4d0510a4305d\\479bd789-9fab-4369-8a7e-98f390336f93\\ee44ea50-627c-4849-9072-904ae9ade953\\d5acfcb4-ca14-4492-9afa-910eff932fa8\\91f77256-5e1e-47e7-adab-8e6d4c61a515\\33691bc1-b3a6-4cd2-8ba1-e028bfe6c402\\aa687884-4920-4739-8bc5-ba4c41fd47f4\\a31b916a-28d6-408e-9edf-b0c389a25d1d\\47fce9bc-812d-4a3c-a2b3-e87c67b79908\\e3ecb895-ee36-482c-a576-57e2a8dceae7\\9c8e9090-f184-4201-ad51-ff812740b2ab\\a0ee22c2-dada-497e-8448-7abe8da15cc1\\719d291b-bdbc-4ce0-b94d-4a06f46a5259\\66489544-1fd3-40ec-8e0d-27a593876e59\\30bbad16-2b18-482f-b82a-08109f710048\\33dd62b2-42e3-41d5-8bac-c0152f027d17\\877bc77f-44fb-441a-90f2-b38bfc727217\\a8834d59-c928-4815-9696-205200c02f78\\c9626e58-4e40-4b50-adc3-d68cfd84bd20\\ed7a27c8-706f-4024-be3e-2a7815601485\\9a74c681-b7e9-4d73-bc16-5e84bbe2ca32\\1467a24e-ed86-4ef6-8b31-b3efbff5c5ba\\26cf9c38-f6a0-4e29-9a9f-a2866150c1e6\\95b55c30-1ef1-467c-a6e7-0a37e6de38a9\\cbe4d95e-8e02-4da6-8550-9bca7b5707ab\\d70f1104-31ec-4dd5-bc7d-44c588027ec4\\b2adddd3-aee6-43d9-9c47-93be32828628\\df4249cc-c7c3-41be-9605-7e9071d49afd\\a2b08b5a-ac2c-4c4f-a57f-3c82ea81613c\\703eaeb6-e06b-4458-9ff3-31a0a77d05e3\\6d956943-eed4-406b-a663-a53498ccfb83\\2c7ea892-4919-4071-a801-4e74ef61e7ec\\6bf6e2e0-afa3-4094-8278-6f7aa000db19\\143558d4-3006-4e0a-81ab-d6cfa8d05353\\92c3aa9c-feda-43dc-a5e8-6a30777f9f77\\bf6a3c9a-1f7e-40c2-84e9-220a919fd289\\c4ed3666-c53f-4820-ae1e-333ed7c70874\\e17d9515-4aeb-4420-9c33-dd75b57eb3c9\\02ea1e56-2fb3-4e8e-9ea6-1f0ccdd46d7a\\eeb7ac65-02ef-4212-84c2-3e65c64572f2\\476ac237-51bd-4daa-88b2-e9d7e261a8a9\\4d591ec3-c8d2-4fcb-95b8-63a0eff7becc\\38183dc2-1e41-40f9-ab1e-6c77cc1703d8\\519f04ed-9943-4d20-8150-aeb4cd149af3\\85d46a27-36dc-4cfc-9f26-728d0c1e4da4\\1f8255ed-3044-4cb3-b620-cca40f14fd4e\\5291251a-ae78-41c6-8d18-808ab01b0762\\1ec8168b-53b1-4f91-a89c-12d3247917ec\\fbee2da4-59a5-4d8e-ae9f-75c9251ffcd9\\d7fc45a0-0571-4e13-b20b-5f3830d0ee18\\eae3b0e4-dd6d-4472-b888-cd361b55bbb4\\986d1ead-bd70-4b6a-a32a-09aa9cb0f377\\cd380459-8431-454d-aed7-efb5c60023c8\\a0ce2bbd-be37-401f-8c82-1c81fbc2c2a7\\611473d1-0151-403a-ac0f-f824bc6a1753\\b0a3e680-ef6b-41e8-85ed-33fa24e3fe89\\5d1bc2f3-d205-47da-8e25-a3ef749b9d76\\16133e3f-a817-41ce-aec2-f9c43a00ca67\\2c8180f1-569b-4a51-9bd6-69ae4ac85e38\\3ad35a28-3492-42cc-9de0-6eb70dfa31ff\\0c2521ce-9320-4dd9-a6b8-f9fdf19126d6\\50b23f69-b92e-4350-bbcb-b795a40a2412\\b1eebe7d-1dad-4d4e-a239-417505186f24\\46a69156-068c-43a0-a4cc-2f7306f4bcc3\\dc8948e5-d9ac-4ca8-a0dc-eee35afec322\\c06d13c1-6075-4947-a36b-1398fcb0655f\\e4454eb7-97ca-4969-b482-9f77630f632a\\30a202b1-29bd-4348-8615-ff724c1f4c81\\ad867b57-5661-45c7-8001-601917fb7065\\4264ff38-b920-478b-9026-2fa71be8a38c\\3fa72a5b-42c4-45cf-a588-e1aa0d232778\\8da90034-822e-497b-aea2-45265639f6ee\\a0643eff-8dda-45ef-8cb7-5be6caf7b7f1\\876fb43e-515c-48cb-929d-97501377373a\\523bdf5e-428e-4311-88cc-cac9feba825f\\c690bf76-349c-4b0e-b95a-e54ad6813d66\\a007e243-3774-4622-9d83-57ca51b79333\\fc243b7d-39ee-4931-82ad-1103a2b20c03\\845e9770-2232-400e-953f-531d3ab7eb3b\\bd77450e-06c7-4c91-8bd7-9b9428c45a6f\\a027aa85-a26f-467b-970d-1eedc30ed30f\\165dc8b7-b763-4f72-8124-39b7ae75d535\\851e8f69-6acc-4531-9d18-c19572e9a05f\\7f6322b5-a451-4d5f-b9c0-a491c81c1039\\68071a7b-b560-4e28-b231-e03ae9628077\\df56f560-a124-4eae-aabb-076c3ba2dbc3\\a7016c01-9ab4-4e74-81b8-7ba333f4a376\\177d5aba-138e-4a13-9d2f-4172e3dad59e\\6d431135-665c-483e-a218-4f5f424b561f\\969ce57c-0a88-4a70-9d95-a332fc85d960\\20f86d36-4403-4a2d-975f-c0009a649ef0\\19c601ee-dce3-4451-b5d8-4ed464df56e2\\870b4c3b-b990-4451-a05e-b9f18eb408df\\4d9bdef9-e8f3-4915-9f0a-aacb5dfcb147\\b52e6025-f174-4363-88b4-cd08079e5b32\\35df4c20-0119-4f03-90b4-517adb121ac9'.\r at System.IO.Win32FileSystem.CreateDirectory(String fullPath)\r at System.IO.Tests.DirectoryInfo_Create.Create(String path)\r at System.IO.Tests.Directory_CreateDirectory.<>c__DisplayClass20_0.b__1()\r at Xunit.Assert.RecordException(Func`1 testCode) Stack Trace: at System.IO.Tests.Directory_CreateDirectory.DirectoryLongerThanMaxLongPath_ThrowsPathTooLongException() Build : Master - 20170326.03 (Core Tests) Failing configurations: - Windows.7.Amd64 - x86-Release - x86-Debug - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170326.03/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.DirectoryInfo_Create~2FDirectoryLongerThanMaxLongPath_ThrowsPathTooLongException +17537 area-System.Net Test failure: System.Net.Http.Functional.Tests.SchSendAuxRecordHttpTest/HttpClient_ClientUsesAuxRecord_Ok Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.SchSendAuxRecordHttpTest/HttpClient_ClientUsesAuxRecord_Ok` has failed. System.TimeoutException : The operation has timed out. Stack Trace: at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.SchSendAuxRecordHttpTest.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170326.03 (Core Tests) Failing configurations: - Windows.7.Amd64 - x86-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170326.03/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.SchSendAuxRecordHttpTest~2FHttpClient_ClientUsesAuxRecord_Ok +17538 area-System.Numerics Test failure: System.Numerics.Tests.cast_fromTest/RunDoubleExplicitCastFromLargeBigIntegerTests Opened on behalf of @Jiayili1 The test `System.Numerics.Tests.cast_fromTest/RunDoubleExplicitCastFromLargeBigIntegerTests` has failed. System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. Stack Trace: at System.Numerics.BigInteger..ctor(UInt32[] value, Boolean negative) at System.Numerics.BigInteger.op_LeftShift(BigInteger value, Int32 shift) at System.Numerics.Tests.cast_fromTest.DoubleExplicitCastFromLargeBigIntegerTests(Int32 startShift, Int32 bigShiftLoopLimit, Int32 smallShift, Int32 smallShiftLoopLimit) at System.Numerics.Tests.cast_fromTest.RunDoubleExplicitCastFromLargeBigIntegerTests() Build : Master - 20170326.03 (Core Tests) Failing configurations: - Windows.81.Amd64 - x86-Release - x86-Debug - Windows.7.Amd64 - x86-Release - x86-Debug - Windows.10.Amd64 - x86-Debug - x86-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170326.03/workItem/System.Runtime.Numerics.Tests/analysis/xunit/System.Numerics.Tests.cast_fromTest~2FRunDoubleExplicitCastFromLargeBigIntegerTests +17541 area-Infrastructure [ARM/CI] Set default CI job and change docker image - Set default CI job: dotnet/core-setup#790 - Chnage docker image newer +17542 area-Infrastructure [ARM32/Linux] Native build failure build command: ./build-native.sh -release -buildArch=arm -- cross clang3.9 ``` loading initial cache file /nfs/rbp3/corefx/src/Native/Unix/../../../cross/arm/tryrun.cmake -- The C compiler identification is Clang 3.9.1 -- The CXX compiler identification is Clang 3.9.1 -- Check for working C compiler: /usr/bin/clang-3.9 -- Check for working C compiler: /usr/bin/clang-3.9 -- works ..... -- Performing Test HAVE_CLOCK_REALTIME CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately: HAVE_CLOCK_REALTIME_EXITCODE (advanced) For details see /nfs/rbp3/corefx/bin/obj/Linux.arm.Release/native/TryRunResults.cmake -- Performing Test HAVE_CLOCK_REALTIME - Failed ...... Failed to generate native component build project! ``` It seems related to #17484 +17544 area-Meta change link for up-for-grabs issues Proposed fix for #17533 +17545 area-System.Diagnostics "System.Diagnostics.Tests.ProcessTests.TestEnableRaiseEvents failed in CI with ""System.ComponentModel.Win32Exception""" Failed test: System.Diagnostics.Tests.ProcessTests.TestEnableRaiseEvents Configuration: OuterLoop_Fedora23_release (build#147) Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_fedora23_release/147/consoleText ~~~ System.Diagnostics.Tests.ProcessTests.TestEnableRaiseEvents(enable: True) [FAIL] System.ComponentModel.Win32Exception : No such process Stack Trace: command exited with ExitCode: 0 /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_release/src/System.IO.MemoryMappedFiles/tests/Performance Finished running tests. End time=18:56:36. Return value was 0 /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_release/src/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs(58,0): at System.Diagnostics.Process.Kill() /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_release/src/System.Diagnostics.Process/tests/ProcessTestBase.cs(76,0): at System.Diagnostics.Tests.ProcessTestBase.StartSleepKillWait(Process p) /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_fedora23_release/src/System.Diagnostics.Process/tests/ProcessTests.cs(117,0): at System.Diagnostics.Tests.ProcessTests.TestEnableRaiseEvents(Nullable`1 enable) ~~~ +17547 area-System.Linq Remove some unreachable branches from S.L.Expressions Or if the branch is an unreachable default case, throw `Unreachable` rather than any other exception. All cases where rules in the expression factories make paths in the compiler impossible. +17550 area-System.Linq System.Linq.Expressions.Tests.CompilerTests.CompileDeepTree_NoStackOverflowFast overflows stack with Checked CoreCLR build CompilerTests.CompileDeepTree_NoStackOverflowFast overflows the stack with Checked (and presumably Debug) builds of CoreCLR. See [comment](https://github.com/dotnet/coreclr/pull/10445#issuecomment-289228613). This makes it problematic for us to use CoreFx tests to validate CoreCLR. Is it reasonable to reduce the complexity of the test so that it fits on the stack regardless of runtime build type? If not, can you recommend an attribute to tag this test so we can disable it in CoreCLR runs? **Repro** (Windows, from dotnet/coreclr repo!) ``` build x64 checked skiptests python tests\scripts\run-corefx-tests.py -build_type Checked ``` (There are likely simpler repro steps that can be distilled from the operation of `run-corefx-tests.py`, but those are left as an exercise for the reader.) +17551 area-System.Net Add more logging to CancelConnectAsync tests And temporarily re-enable them to try to suss out the causes of the failures. cc: @steveharter https://github.com/dotnet/corefx/issues/16765 +17553 area-System.Net Fix test to bind UdpClient to any instead of loopback Closes https://github.com/dotnet/corefx/issues/17421 cc: @steveharter +17554 area-Infrastructure Fix clrcompression testhost path cc: @AlexGhiondea @weshaggard When submitting #17509 PR I didn't add configuration to the path where we are dumping clrcompression, so I'm fixing that with this PR. +17555 area-Serialization Issues with the embedded .rd.xml files in the XML space "When I ran XmlSerializer tests on uapaot, I found that sg.exe wasn't used by ilc.exe. @vitek-karas found the root cause was that we didn't have correct .rd.xml embedded in System.Private.Xml.dll, > The problem is that analysis doesn’t recognize any type as needing XML serialization. Analysis in this case is driven by .rd.xml annotations. > >In the existing (ProjectN) System.Xml.XmlSerializer.dll there’s this piece of XML in the embedded .rd.xml: > ```xml ``` > This tells analysis that the T in XmlSerializer.ctor call is the type which will need XML serialization. > > The embedded .rd.xml the new (in your test) System.Xml.XmlSerializer.dll or System.Private.Xml.dll doesn’t contain anything like the above. So from analysis’ point of view, there are no types which need XML serialization (as it doesn’t see any entrypoint into the XML serialization stack). @vitek-karas also found a few other issues with the embedded .rd.xml files in the XML space, > System.Xml.XmlSerializer: > - The name of the resource is probably off (I don’t think it matters for the compiler, but it’s confusing for humans): System.Xml.XmlSerializer.System.Private.Xml.rd.xml > - The XML itself in the .rd.xml is not a valid .rd.xml: It’s missing Library and possibly also Assembly elements. This causes warnings during ILC and the .rd.xml is not processed (so effectively ignored). > > System.Private.Xml: > - The .rd.xml talks about assembly System.Xml which is just a façade, so it’s effectively ignored by the compiler. Also the directives would not apply to the code we wanted them to. It should refer to System.Private.Xml instead. This also issues a warning during ILC. " +17557 area-System.Xml Issue with the rd.xml embedded by System.Private.Xml.Linq @vitek-karas found the following issue with the rd.xml used by System.Private.Xml.Linq > The .rd.xml talks about System.Xml.Linq, instead of System.Private.Xml.Linq, which is just a façade, so it’s effectively ignored by the compiler. Also the directives would not apply to the code we wanted them to. It should refer to System.Private.Xml.Linq instead. This also issues warnings during ILC. ``` System.Linq.Expressions.Resources.System.Linq.Expressions.rd.xml(9-9): warning : ILTransform : warning ILT0027: Type 'System.Linq.Expressions.Microsoft.CSharp.RuntimeBinder.R untimeBinderException' could not be found. System.Linq.Expressions.Resources.System.Linq.Expressions.rd.xml(10-10): warning : ILTransform : warning ILT0027: Type 'System.Linq.Expressions.System.Linq.Expressions.Expres sionCreator<>' could not be found. System.Linq.Expressions.Resources.System.Linq.Expressions.rd.xml(10-10): warning : ILTransform : warning ILT0027: Type 'System.Linq.Expressions.System.Linq.Expressions.Expres sionCreator>' could not be found. System.Linq.Expressions.Resources.System.Linq.Expressions.rd.xml(11-11): warning : ILTransform : warning ILT0027: Type 'System.Linq.Expressions.System.Runtime.CompilerService s.CallSite<>' could not be found. System.Linq.Expressions.Resources.System.Linq.Expressions.rd.xml(11-11): warning : ILTransform : warning ILT0027: Type 'System.Linq.Expressions.System.Runtime.CompilerService s.CallSite>' could not be found. System.Linq.Expressions.Resources.System.Linq.Expressions.rd.xml(12-12): warning : ILTransform : warning ILT0027: Type 'System.Linq.Expressions.System.Runtime.CompilerService s.CallSiteOps' could not be found. System.Xml.Resources.System.Private.Xml.Linq.rd.xml(4-4): warning : ILTransform : warning ILT0027: Assembly name 'System.Xml.Linq' failed to bind. ``` +17558 area-System.Net HttpClient GetAsync - The server returned an invalid or unrecognized response "**Version** - .Net Core 1.0.1 **OS** - CENT OS.7 64 bit / Azure **Curl version** ```curl curl 7.53.1 (x86_64-pc-linux-gnu) libcurl/7.53.1 OpenSSL/1.0.1e zlib/1.2.7 Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: IPv6 Largefile NTLM NTLM_WB SSL libz UnixSockets HTTPS-proxy ``` When I make a request to http://www.pma.org/home/default.asp? URL I get the following error in my .Net Core App. However, If I make the request using Curl works fine. ```csharp System.Net.Http.HttpRequestException: The server returned an invalid or unrecognized response. at System.Net.Http.CurlResponseHeaderReader.ReadHeader(String& headerName, String& headerValue) at System.Net.Http.CurlHandler.MultiAgent.CurlReceiveHeadersCallback(IntPtr buffer, UInt64 size, UInt64 nitems, IntPtr context) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at hwapp.Program.d__1.MoveNext() ``` **Sample code** ```csharp try { using (var client = new HttpClient()) { client.DefaultRequestHeaders.TryAddWithoutValidation(""Accept"", ""text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8""); client.DefaultRequestHeaders.TryAddWithoutValidation(""User-Agent"", ""Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36""); var result = client.GetAsync(""http://www.pma.org/home/default.asp?"").GetAwaiter().GetResult(); Console.WriteLine(result.StatusCode.ToString()); } } catch (Exception exception) { Console.WriteLine(exception.ToString()); } ``` **Curl request** ```html curl -I http://www.pma.org/home/default.asp? ``` **Curl response** ```html HTTP/1.1 200 OK Date: Mon, 27 Mar 2017 17:30:18 GMT Cache-Control no-cache: Content-Length: 52904 Content-Type: text/html Set-Cookie: BadIP=False; path=/ Set-Cookie: ASPSESSIONIDSSBBABDD=MKLKBPNDEHNNILAPDDBFGMML; path=/ Cache-control: private X-FRAME-OPTIONS: SAMEORIGIN Set-Cookie: BNES_BadIP=teIjVVdWBFXCMdVefZ8/VmOmIVKTmEJMKu74WIqHbXLL4Pb07YvoIqBkWdnZ+637; path=/ Set-Cookie: BNES_ASPSESSIONIDSSBBABDD=7twirxWeZB93d7p1vpjt0+EHI3recOI89u/w/4G0RaMDPdVQqDKsBJTzSFFHOynq22QKkNkv83C/5Le/uFbY2T5MTuFzFeVQkk1A6A+oXvg=; path=/ ``` What's the problem? " +17559 area-System.Diagnostics System.Diagnostics.Tracing.EventSource EventAttribute does not have a Channel property. Hitting an issue when trying to use EventSource as an interface to the Event Log, where Channel property support is not implemented. > Exception thrown: 'System.Reflection.MissingMetadataException' in System.Diagnostics.Tracing.dll > > Additional information: Reflection_InsufficientMetadata_EdbNeeded: System.Diagnostics.Tracing.EventAttribute. For more information, visit http://go.microsoft.com/fwlink/?LinkId=623485 From discussion with @vancem and others on the team: > Your usage case has taken us by surprise. Originally EventSource on .NET Native was pruned to remove channel support. Indeed it was only because of a what amounts to a bug (reference assemblies were updated for harmonization (it was important that the API be the same across all our platforms), but the implementation was not turned on, and testing was not done). This is why it compiles but fails at runtime. Obviously this is a bug in the .NET Native runtime/toolchain. > > It looks like you are really trying to use EventSource not to log windows Asimov-style telemetry but as an interface to the EventLog (which we did not think was an interesting scenario for .NET Native). > > It is probably not hard to fix (there are probably some #ifdefs that need to be adjusted and tests need to be turned on). However it would require an updated runtime/toolchain, so that does not help you in the very short term. > > I think in the very short term(until we fix the runtime/toolchain and you pick up a new toolchain), you have to stick with Microsoft.Diagnostics.Tracing.EventSource (but what I said before is still true, we don’t like people to do this and it really is not supported). We are using the Microsoft.Diagnostics.Tracing NuGet package in the meantime, but we want to remove it to use System.Diagnostics as soon as possible. The NuGet package is outdated and inflating our dll. Let me know of any other details needed to debug this issue. Thanks for the help, James +17560 area-System.Net Add test for HttpClient handling of trailer headers Contributes to https://github.com/dotnet/corefx/issues/17174 Adding a test for trailers. This fails right now on unix due to a libcurl bug: https://github.com/curl/curl/issues/1354. A fix is in the works for that, and I confirmed that building a libcurl with that fix and using it allows these tests of HttpClient to pass. cc: @Priya91, @Drawaes +17561 area-System.Linq Use Error.OnlyStaticMethodsHaveNullInstance in S.L.E Rather than creating the `ArgumentException` directly. The Error class's form takes no parameter name, but since all cases are a mismatch between two arguments rather than one of the arguments being incorrect in itself, this is probably better. +17562 area-System.Linq Remove ExpressionNotSupportedForType error from S.L.Expressions Every callsite is demonstrably unreachable. Use `ContractUtils.Unreachable` instead. +17563 area-System.Linq Remove redundant overrides in S.L.Expression instructions. Either completely duplicates what the base class does or add a tiny micro-opt **and** are only used in debug situations and hence that micro-opt is particularly hard to justify +17564 area-System.Net Backporting HttpClient instrumentation with DiagnosticSource to netstandard1.3 I have previously implemented changes that changes `HttpClientHandler` logging with `DiagnosticsSource` #16393. Now instrumentation is only available with netcoreapp2.0 since System.Net.Http [targets](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System.Net.Http.csproj) netcoreapp2.0 only among CoreFx targets. Would like to use this instrumentation in the existing project that target netstandard1.3 and higher (assuming they can take a dependency on a new System.Net.Http package). Are there any problems with enabling netstandard1.3 target for System.Net.Http and publishing new nuget? Were there any changes in public API that would not make it compatible? +17567 area-System.Net Fix Http Unit tests for NETFX build Change the CSPROJ so that Http Unit tests now build and run successfully. i.e.: >Msbuild /t:rebuildandtest /p:TargetGroup=netfx now works in the src/System.Net.Http/tests/UnitTests folder +17568 area-System.Net Fix Http Unit tests for NETFX build Change the CSPROJ so that Http Unit tests now build and run successfully. i.e.: >Msbuild /t:rebuildandtest /p:TargetGroup=netfx now works in the src/System.Net.Http/tests/UnitTests folder +17569 area-System.Net Cookie* missing from UWP The problem is this, which needs to be resolved now that we need these types in UWP (they're part of standard) This is the only API that's actually missing from the System.Net namespace (functionality is another thing) ``` // The uap #define is used in some source files to indicate we are compiling classes // directly into the UWP System.Net.Http.dll implementation assembly in order to use internal class // methods. Internal methods are needed in order to map cookie response headers from the WinRT Windows.Web.Http APIs. // Windows.Web.Http is used underneath the System.Net.Http classes on .NET Native. Having other similarly // named classes would normally conflict with the public System.Net namespace classes. // So, we need to move the classes to a different namespace. Those classes are never // exposed up to user code so there isn't a problem. In the future, we might expose some of the internal methods // as new public APIs and then we can remove this duplicate source code inclusion in the binaries. #if uap namespace System.Net.Internal #else namespace System.Net #endif { ``` ![image](https://cloud.githubusercontent.com/assets/6385855/24376412/a78a26de-12f0-11e7-81b5-af6b29643b75.png) +17570 area-System.Runtime Expose and use static ExceptionDispatchInfo.Throw Fixes #16896 Depends on https://github.com/dotnet/corert/pull/3115 +17572 area-System.Net Adding ObsoleteAttribute to SSL for ServicePointManager Adding ObsoleteAttribute to SSL for ServicePointManager's SecurityProtocolType. Fixes #13922 +17573 area-Infrastructure "Add ""mono"" configuration" "This configuration will ease the integration of corefx sources into mono. The plan, discussed with @weshaggard, is to have this configuration where we compile all sources used by https://github.com/mono/mono/ in a ""one assembly for all platforms"" manner." +17574 area-System.Net Fix native error handling on Linux during host name resolution "This fixes native error handling when calling the POSIX method gethostbyaddr_r, preventing seg faults and other issues. This was found when attempting to debug issue https://github.com/dotnet/corefx/issues/17177. A POSIX test on Ubuntu shows that gethostbyaddr_r can return 0 (success) even for host names that are not resolved. A similar test was added in this PR that seg faults on Ubuntu (the one with host name of ""fkdsfsjfsrH:"") before the fix here. The return value for gethostbyaddr_r appears to be primarily designed for retry logic, not for all errors. Instead the last argument should be checked. The Ubuntu man pages are not complete\correct here. Also changed gethostbyname_r since it follows the same pattern. cc @CIPop @davidsh" +17575 area-Serialization Desktop throws a TypeLoadException when `StreamingContext` is a typeforward to mscorlib and using any of the serialization event attributes If an assembly is built against netstandard and run it against netfx (desktop) and it has a type marked as Serialized and this types have any of the event methods that use either `OnDeserializedAttribute`, `OnSerializingAttribute`, `OnSerializedAttribute`, and `OnDeserializingAttribute` it would throw an exception like this one: ``` Type in assembly has method with an incorrect signature for the serialization attribute that it is decorated with ``` This would happen even if the method follows the guidelines stated in the msdn documentation: > To use the OnSerializingAttribute, the method must contain a StreamingContext parameter. We are currently hitting this issue on the `System.Runtime.Serialization.Formatters.Tests` that have a type with this characteristics ([source code](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Serialization.Formatters/tests/SerializationTypes.cs#L321-L342)) when the test is built against netstandard and we run it against netfx. After investigating with @weshaggard he found out that there a bug in the `methodtablebuilder.cpp` when verifying the signature for this method (requiring a `StreamingContext` parameter) it doesn't follow the typeforwards correctly on the case it was defined on a shim like in the case of netstandard that is a typeforward to mscorlib so it throws an exception that the method signature is bad. cc: @jkotas @stephentoub +17576 area-System.Runtime Version_MatchesFixedVersion test failed in CI ``` System.Tests.EnvironmentTests.Version_MatchesFixedVersion [FAIL] FileCleanupTestBase failed to create C:\Users\someuser\AppData\Local\Temp\EnvironmentTests_k3c3hzza.ga3 due to System.UnauthorizedAccessException: Access to the path 'C:\Users\someuser\AppData\Local\Temp\EnvironmentTests_k3c3hzza.ga3' is denied. at System.IO.Win32FileSystem.CreateDirectory(String fullPath) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 169 at System.IO.Directory.CreateDirectory(String path) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.FileSystem\src\System\IO\Directory.cs:line 51 at System.IO.FileCleanupTestBase..ctor() in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\IO\FileCleanupTestBase.cs:line 24 Expected: True Actual: False Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\IO\FileCleanupTestBase.cs(28,0): at System.IO.FileCleanupTestBase..ctor() at System.Diagnostics.RemoteExecutorTestBase..ctor() at System.Tests.EnvironmentTests..ctor() at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) ``` +17577 area-System.Data SqlClient: Command execution failures when using Packet Size = 16388 with Encryption When setting the packet size to 16388 or higher while using encryption, command execution fails. This issue is present with both managed and native SNI, and with TCP & NP. Failures also happen with sync & async command execution. With native SNI: System.Data.SqlClient.SqlException : A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.) ---- System.ComponentModel.Win32Exception : The specified network name is no longer available With managed SNI: System.Data.SqlClient.SqlException : A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 35 - An internal exception was caught) ---- System.IO.IOException : Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. -------- System.Net.Sockets.SocketException : An existing connection was forcibly closed by the remote host CC @saurabh500 @geleems +17578 area-System.Runtime Add netfx configuration to System.Runtime.Serialization.Formatters.Tests See: #17575 cc: @weshaggard +17579 area-Serialization Create a project for serialization generator tool +17580 area-Serialization Support SGEN in core Add SGEN function on the project @17579 +17581 area-Infrastructure build -Outerloop passes without running any tests To repro in the master branch: ``` clean -all && build -Outerloop ``` Expected: Based on `build -?` documentation: Builds source and tests; executes the outerloop tests: ```[-Outerloop] Enables outerloops tests scenarios. => Default value: true => Legal values: [True, False]. ``` Actual: Builds `\src` (and `\pkg`?). Will not build (or run) anything under `\test`. +17582 area-Serialization Investigate the possibility to port the serialization desktop tests into core +17583 area-Infrastructure "build-tests -outerloop fails after clean -all: ""The target ""GetBuildConfigurations"" does not exist in the project""" "Running `clean -all & build-tests` will fail with ""The target ""GetBuildConfigurations"" does not exist in the project."" To work-around use `clean -all & build & build-tests`." +17585 area-Infrastructure Restore UAP test tools via a package from internal feed. /cc @weshaggard @joperezr @MattGal +17586 area-System.Reflection Add netfx build configuration for System.Reflection.DispatchProxy Add netfx build configuration so that we can actually run the tests in Desktop. Without this we were getting a runtime exception that it wouldn't find the reference assembly. cc: @weshaggard @tarekgh +17587 area-Serialization "Revert ""Fix TypeScope.GetEnumeratorElementType.""" Reverts dotnet/corefx#17448 as it could potentially be a large size regression for UWP apps. /cc: @morganbr +17588 area-Infrastructure Add baselines strictly against netstandard.dll Current baselines in src\shims compare {netstandard + all contracts built out of corefx for netstandard} vs. {all implementation for targetgroup} It’s doing this because we want all our netstandard compliant libraries (like hopefully just about all netstandard compliant libraries) to work on the target. This adds a 2nd baseline, that is only of the netstandard surface area itself. It would only be for prioritization: we need to clear out both baselines. @weshaggard @joperezr @joshfree +17589 area-System.Net HttpClient doesn't open the connection to the server "My Code is below: ```c# [Fact] public void AsyncDirect() { Stopwatch sw = new Stopwatch(); sw.Start(); List tasks = new List(); for(int i = 0; i < 10; i++) { //Thread.Sleep(50); var ts = Task.Run(() => BaiduTest()); tasks.Add(ts); } Task.WaitAll(tasks.ToArray()); sw.Stop(); Debug.WriteLine($""ASyncDirect cost:{sw.ElapsedMilliseconds}ms""); } [Fact] private void BaiduTest() { Stopwatch sw = new Stopwatch(); sw.Start(); HttpClientHandler handler = new HttpClientHandler(); //handler.SendTimeout = TimeSpan.FromSeconds(60); handler.MaxConnectionsPerServer = 50; using (HttpClient client = new HttpClient(handler)) { byte[] byteContent = new byte[0]; ByteArrayContent content = new ByteArrayContent(byteContent); var response = client.PostAsync(""http://baidu.com"", null).GetAwaiter().GetResult(); response.EnsureSuccessStatusCode(); var responseStream = response.Content.ReadAsStringAsync().GetAwaiter().GetResult(); } handler.Dispose(); sw.Stop(); Debug.WriteLine($""single cost:{sw.ElapsedMilliseconds}""); } ``` if excute 3times is ok,but over 3 times is very slow." +17591 area-System.Net Test failure: System.Net.Http.Functional.Tests.CancellationTest/ReadAsStreamAsync_ReadAsync_Cancel_BodyNeverStarted_TaskCanceledQuickly Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.CancellationTest/ReadAsStreamAsync_ReadAsync_Cancel_BodyNeverStarted_TaskCanceledQuickly` has failed. Elapsed time should be short\r Expected: True\r Actual: False Stack Trace: at System.Net.Http.Functional.Tests.CancellationTest.<>c__DisplayClass4_2.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.Tasks.ContinuationTaskFromTask.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.CancellationTest.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170328.01 (Core Tests) Failing configurations: - Windows.10.Amd64 - x86-Debug - Windows.7.Amd64 - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170328.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.CancellationTest~2FReadAsStreamAsync_ReadAsync_Cancel_BodyNeverStarted_TaskCanceledQuickly +17593 area-System.IO "Some IO tests not run on Unix due to ""Condition(s) not met: \""IsNotWindowsNanoServer\""""" "` System.IO.FileSystem.Tests xunit System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo/ValidFileOptions` is being skipped because `""Condition(s) not met: \""IsNotWindowsNanoServer\""""` https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170328.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.FileStream_ctor_str_fm_fa_fs_buffer_fo~2FValidFileOptions test is adorned with ` [ConditionalTheory(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))]` ```c# public static partial class PlatformDetection { public static bool IsWindows { get; } = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); public static bool IsNotWindowsNanoServer { get; } = (IsWindows && File.Exists(Path.Combine(Environment.GetEnvironmentVariable(""windir""), ""regedit.exe""))); ``` Not clear to me why this isn't working." +17594 area-Meta Update up-for-grabs label Contributes to #17533 +17595 area-System.IO Test tweaks Fixes https://github.com/dotnet/corefx/issues/17593 Logging for https://github.com/dotnet/corefx/issues/17591 @mellinoe +17596 area-System.Security Remove some if !uap's Remove some #if !uap's in S.S.Crypto to bring back some API to uap. @bartonjs I do not know why these were originally if'defed long ago, but the build succeeds. do you know why? is it ok to submit this? +17599 area-System.Security Increased code coverage for SymmetricKeyWrap from 54% to 100% Added tests for System.Security.Cryptography.Xml.SymmetricKeyWrap. Overall code coverage for System.Security.Cryptography.Xml increased from 63% to 64.4%. Part of #16829 +17601 area-Infrastructure [Linux/x86] Change to use official docker image for CI build #17182 https://github.com/dotnet/corefx/pull/17182#discussion_r106488967 We are using temporary private docker image for linux/x86 CI build. We need to change it to official one when that is ready to use. @gkhanna79 @mellinoe +17603 area-System.Reflection Omissions in types supported by both Desktop and Core - System.Reflection.Emit Adjustments for a few reflection emit classes to correctly inherit from System.Reflection.TypeInfo. For more info see here: https://github.com/dotnet/corefx/issues/15255#issuecomment-289550875 ``` System.Reflection.Emit.EnumBuilder System.Reflection.Emit.GenericTypeParameterBuilder System.Reflection.Emit.TypeBuilder ``` +17604 area-System.Security Omissions in types supported by both Desktop and Core - System.Security.AccessControl.AuthorizationRuleCollection Adjustments for System.Security.AccessControl.AuthorizationRuleCollection to correctly inherit from System.Collections.NonGeneric.ReadOnlyCollectionBase. For more info see here: https://github.com/dotnet/corefx/issues/15255#issuecomment-289550875 +17605 area-Microsoft.CSharp Refactor Name, NameManager, NameTable in Microsoft.CSharp * Upper-case exposed fields. * Merge `NameManager.GetPredefName` and `NameManager.GetPredefinedName` * Initialise `s_knownNames` with static field initialiser. Always going to be initialised, so lazy-loading doesn't add anything. * Null-coalesce and simplify ctor. * Make `GetPredefinedName()` static. Remove some passing of `NameManager` instances no longer necessary. * Remove `SymbolTable.GetName(string, NameManager)` Exists to do`Lookup` and then `Add` if necessary, but `Add` already contains lookup that returns already-existing if available, so no benefit. * Autoproperty in `Name`s * Remove `_hashCodeRandomizer`. Is not in use (always zero), anything that can control input can likely do much worse than hash-DoS. * Partial-string lookup. Allow lookup on a string and a length within that string, so that it need not be split unless no match is found. * Widen assertion on adding predefined name. Assertion assumes the mechanism works correctly while it can check all entries in the array to catch both duplicates and anything hiding duplicates. It can also do so in a single debug-only expression. * Include empty string in known names. Used for root namespace in every `RuntimeBinder` instance, so should be predefined. * Remove `KnownName` class Added property is never actually used, so don't have it. `Name` can now be sealed. * Merge two lists of known names together, and move remaining code into `NameManager`. * Make `NameTable` equality/hash methods static. +17606 area-Microsoft.CSharp Refactor EXPR classes. Convert GetXXX and SetXXX methods to auto-properties. Convert public fields to auto-properties. Rename to be PascalCase Restricted to cases that are individually simple. +17609 area-System.Data Omissions in types supported by both Desktop and Core - System.Data.SqlClient.SqlBulkCopyColumnMappingCollection Adjustments for System.Data.SqlClient.SqlBulkCopyColumnMappingCollection to correctly inherit from System.Collections.CollectionBase. For more info see here: https://github.com/dotnet/corefx/issues/15255#issuecomment-289550875 +17610 area-System.Runtime Retry create directory Fixes https://github.com/dotnet/corefx/issues/17576 @stephentoub Ideally we'd resolve whatever is causing this but I'm assuming it's not a product issue. Meantime, I want to get coverage from tests that haven't anything to do with creating directories. +17611 area-Infrastructure Non-shipping packages for .NET Core 2.0 This issue is tracking packages that we shouldn't make stable for the .NET Core 2.0 release. @ericstj do you have any suggestion for how to do this in code so we don't accidentally stabilize these? - System.Memory cc @ericstj @Petermarcu +17613 area-Infrastructure Update csproj and solutions configurations cc: @weshaggard @joperezr +17614 area-System.Runtime Environment.GetEnvironmentVariable returns garbage string if variable is set to empty string on Ubuntu 14.04 "When an environment variable is empty, but set (like `var=`), `GetEnvironmentVariable` will return various garbage values for that variable in Ubuntu 14.04 (tested in Docker). [Gist with Dockerfile and Program.cs to repro](https://gist.github.com/dagood/bce973c70021a010f70c2ec220c0f56a). (Dockerfile is based on the Core-Setup build infra, which is where this was encountered.) Just the execution: ``` RUN ~/.dotnet/dotnet run && \ var=asdf ~/.dotnet/dotnet run && \ var= ~/.dotnet/dotnet run ``` ```C# Console.WriteLine($""Var contains: '{Environment.GetEnvironmentVariable(""var"")}'""); ``` > Var contains: '' > Var contains: 'asdf' > Var contains: '즔翾' The project is using `Microsoft.NETCore.App` `1.1.1`. Issue probably tracking adding tests for this case: https://github.com/dotnet/corefx/issues/4406 /cc @AlexGhiondea " +17615 area-Serialization Create a Microsoft.XmlSerializer.Generator Project Create a Microsoft.XmlSerializer.Generator as a base project for SGen tool to be implemented. The project share the code with System.Private.Xml. And also move some codegen only code from system.private.xml to the new project. #17579 @weshaggard @zhenlan @mconnew @shmao +17616 area-Serialization Add messages for PNSE in Serialization "These PNSE are in Serialization code. Would you consider throwing up a PR that either adds a message or a comment to each? eg `throw new PlatformNotSupportedException(SR.PlatformNotSupported_ComInterop)` where the message is like `COM Interop is not supported on this platform.` Or if it’s something that’s not worth a specific resource, just a comment like this on the same line saves us digging up emails to remember why, and helps the next dev. eg `throw new PlatformNotSupportedException(); // Not supported on Unix because NTLM is rarely used on Unix` The message will help users (and perhaps help support). The comment at least documents the reason for the future devs and anyone checking we've implemented everything. I've been slowly going through the tree adding these or other folks have been. ``` C:\git\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\SchemaExporter.cs: 29: throw new PlatformNotSupportedException(); C:\git\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerReadContextComplex.cs: 139: throw new PlatformNotSupportedException(); C:\git\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XsdDataContractExporter.cs: 43: throw new PlatformNotSupportedException(""SchemaImporter""); 61: throw new PlatformNotSupportedException(); C:\git\corefx\src\System.Private.DataContractSerialization\src\System\Xml\XmlDictionaryReader.cs: 154: throw new PlatformNotSupportedException(); 178: throw new PlatformNotSupportedException(); C:\git\corefx\src\System.Private.DataContractSerialization\src\System\Xml\XmlDictionaryWriter.cs: 69: throw new PlatformNotSupportedException(); C:\git\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryUtilClasses.cs: 412: throw new PlatformNotSupportedException(); ```" +17618 area-System.Net Disable System.Web.Tests.HttpUtilityTest for NETFX fixes: #13254 cc: @ianhays @tarekgh +17619 area-Meta Announcement: Driving towards zero 2.0 bugs by May 10 (ZBB) "As we are getting closer to .NET Core 2.0 Preview and .NET Standard 2.0 Preview [ship dates](https://github.com/dotnet/core/blob/master/roadmap.md#ship-dates), we would like to **drive [2.0.0 bugs](https://github.com/dotnet/corefx/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3A2.0.0) down to 0 by May 10** (see [milestone details](https://github.com/dotnet/corefx/milestone/4)) = ZBB (zero bug bounce) date. We would like to encourage and ask our contributors to help us drive towards that goal. **Be part of .NET Core 2.0 release!** How can you, the CoreFX contributors, help? 1. If you're picking up issues to work on, **prefer issues marked as [2.0.0 bugs](https://github.com/dotnet/corefx/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3A2.0.0)** (some are even [up-for-grabs](https://github.com/dotnet/corefx/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3A2.0.0%20label%3Aup-for-grabs)). 2. If you spot something in [Future](https://github.com/dotnet/corefx/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3AFuture) milestone that should be part of 2.0, please say so and explain why (loop in @karelz). Conversely if there's something in 2.0 that perhaps is not as significant as it seems. * We strive to deliver high-quality product, so **impactful bugs, compatibility, reliability and performance issues** are top priority. Migration to .NET Core 2.0 from .NET Core 1.1 or from .NET Framework is one of the key priorities. * Adding additional new APIs, fixing pre-existing bugs or fixing corner-case issues with lower impact and with existing workaround is lower priority, not tracked as 2.0. 3. Issues with [no milestone](https://github.com/dotnet/corefx/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20no%3Amilestone) - we expect to set their milestone in upcoming weeks (part of ongoing ""triage""), so if you see something must-have for 2.0 there, please say so and explain why (loop in @karelz). 4. Watch for upcoming official preview announcements (on [.NET blog](https://blogs.msdn.microsoft.com/dotnet/) or on [dotnet/Announcements repo](https://github.com/dotnet/announcements)) to help validate and dogfood the end-to-end .NET Core 2.0 experience before final release. * Note: You can dogfood even our daily builds - see [dogfooding steps](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/dogfooding.md) Not surprisingly, to deliver overall end-to-end .NET Core 2.0 experience, similar ZBB efforts happen in our sister repos like [CoreCLR](https://github.com/dotnet/coreclr), [core-setup](https://github.com/dotnet/core-setup), etc. - we will welcome help in those as well, if you're interested. Twitter announcement: https://twitter.com/ziki_cz/status/846839252629385216" +17621 area-System.Net System.Net.Http.FunctionalTests show a debug assert window in desktop The following tests marked as Outerloop show a debug assert window when running in desktop: * System.Net.Http.Functional.Tests.PostScenarioTest.PostRewindableContentUsingAuth_NoPreAuthenticate_Success * System.Net.Http.Functional.Tests.PostScenarioTest.PostUsingNoSpecifiedSemantics_UsesChunkedSemantics * System.Net.Http.Functional.Tests.PostScenarioTest.PostNonRewindableContentUsingAuth_NoPreAuthenticate_ThrowsInvalidOperationException They seem to fail on the same Assert. cc: @davidsh +17622 area-System.IO Disallow FileMode.Truncate in MMF.CreateFromFile Using CreateFromFile on netfx with FileMode.Truncate always results in an ArgumentException whereas in netcoreapp we allow it. It seems like a sort of unintended consequence of the removal of the reliance on the FileSystremRights FileStream constructor. The ArgumentException from FileMode.Truncate was coming from that constructor where it asserts that FileMode.Truncate requires FileSystemRights.Write, but we were only passing FileSystemRights.WriteData. I'm fixing netcore to have the same behavior as netfx, except that the ArgumentException message will be more helpful and it will also have a parameterName. Tests are also updated. found while investigating https://github.com/dotnet/corefx/issues/10895 @stephentoub +17623 area-System.Net Disable some System.Net.Http.Functional outerloop tests for desktop See: #17621 Since this tests show an assert window they would hang if we run them either on Helix or Jenkins since the assert failure needs to be aborted. So I'm disabling them to have a clean run. cc: @davidsh @stephentoub +17624 area-Infrastructure Add portable build definitions skip ci please @weshaggard PTAL +17625 area-System.IO Fix some MMF tests to work on netfx NetFX uses the FileStream constructor that takes a FileSystemRights. This allows it to work in a few situations that throw UnauthorizedAccessExceptions in netcoreapp on Windows. This PR modifies the tests to accomodate netfx. resolves https://github.com/dotnet/corefx/issues/10895 +17626 area-System.Diagnostics Make Activity Class never thow exceptions to any callers Instead it throws and immeidately catches the exceptions. That way callers don't need to bother. We throw and catch so the exception show up in debuggers and monitors. +17627 area-System.Net [Netfx]: HttpUtility.UrlDecodeToBytes doesn't decode correctly when having a UTF8 encoded character. "In full framework `HttpUtility.UrlDecodeToBytes` when the string to decode has a UTF8 encoded character e.g (%u0061 -> a) it wouldn't decode it and would leave it as it is. Example ```cs string encoded = ""http://127.0.0.1:8080/appDir/page.aspx?foo=b%u0061r""; Console.WriteLine(Encoding.UTF8.GetString(HttpUtility.UrlDecodeToBytes(encoded, Encoding.UTF8))); ``` Would print out the same string and it should print: `""http://127.0.0.1:8080/appDir/page.aspx?foo=bar""` cc: @davidsh " +17629 area-System.Linq Enumerable methods with optimizations for IList<> should also optimize for IReadOnlyList<> Enumerable methods such as `Last()` contain [an optimization for `IList<>`](https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/Last.cs#L62). These methods should also optimize for `IReadOnlyList<>` +17631 area-System.Runtime Add regression test for https://github.com/dotnet/coreclr/pull/10352 +17632 area-Infrastructure [WIP] Add ILLink to trim dead code from corefx assemblies /cc @erozenfeld @sbomer +17633 area-Infrastructure Audit configurations of CoreFX packages We should probably do these two audits on packages in CoreFX: 1. If the refs has a netstandard configuration but the impl does not, satisfy ourselves that this is reasonable. For example if the impl is never going to work on anything but one platform, we might want to make the refs configuration platform specific. 1. If the impl has platform specific configurations, satisfy ourselves that they can't be replaced with netstandard configurations either trivially or with some minor change - extending the reach of the library. Particularly worth doing if the refs is netstandard, suggesting we think the impl is close. @weshaggard @ericstj @joperezr +17634 area-System.Security Add more SignedXml algorithms tests "Almost completely fixes https://github.com/dotnet/corefx/issues/16781 the only not tested transformation algorithm is: urn:mpeg:mpeg21:2003:01-REL-R-NS:licenseTransform"";" +17635 area-System.Data Adding updates to packages to update SqlClient in the 1.1.x release The changes enable the build of the service release for System.Data.SqlClient for release/1.1.0 branch of .Net Core. Verified locally by `build.cmd` at the root of the clone. Following is a structure of what was produced ``` F:\NETCORE\COREFX\BIN\PACKAGES\DEBUG | Microsoft.Private.PackageBaseline.1.0.1-servicing-25127-0.nupkg | System.Data.SqlClient.4.3.1-servicing-25127-0.nupkg | System.Diagnostics.DiagnosticSource.4.3.1-servicing-25127-0.nupkg | System.Net.Http.4.3.2-servicing-25127-0.nupkg | System.ValueTuple.4.3.1-servicing-25127-0.nupkg | +---reports | Microsoft.Private.PackageBaseline.json | System.Data.SqlClient.json | System.Diagnostics.DiagnosticSource.json | System.Net.Http.json | System.ValueTuple.json | +---specs | Microsoft.Private.PackageBaseline.nuspec | Microsoft.Private.PackageBaseline.nuspec.pkgpath | System.Data.SqlClient.nuspec | System.Data.SqlClient.nuspec.pkgpath | System.Diagnostics.DiagnosticSource.nuspec | System.Diagnostics.DiagnosticSource.nuspec.pkgpath | System.Net.Http.nuspec | System.Net.Http.nuspec.pkgpath | System.ValueTuple.nuspec | System.ValueTuple.nuspec.pkgpath | \---symbols System.Data.SqlClient.4.3.1-servicing-25127-0.symbols.nupkg System.Diagnostics.DiagnosticSource.4.3.1-servicing-25127-0.symbols.nupkg System.Net.Http.4.3.2-servicing-25127-0.symbols.nupkg System.ValueTuple.4.3.1-servicing-25127-0.symbols.nupkg ``` There is a System.Data.SqlClient.4.3.1-servicing-25127-0.nupkg package with the updated package version. Verified that the runtime DLL has the required changes that were meant to go into service release. +17636 area-System.Diagnostics Debug.Assert (or Contract.Assert) failure when running on Desktop will hang the test run When a `Contract.Assert` fails it seems we pop assert UI which hangs the entire test run https://github.com/dotnet/corefx/issues/17621 Note that `Debug.Assert` would have the same behavior in fact it's what's doing it. cc @safern +17638 area-System.Globalization Added Dutch Titlecasing Tests " Related to: - Issue: [dotnet/corefx#16770](https://github.com/dotnet/corefx/issues/16770) - Pull Request: [dotnet/corefx#10195](https://github.com/dotnet/coreclr/pull/10195) Added a series of tests to check the validity of recent changes to resolve a bug within the Titlecasing functionality for strings that began with ""IJ"" in Dutch cultures. CC: @tarekgh " +17639 area-System.Security Some types missed from System.Security.Permissions They seem to have been **arbitrarily** omitted from System.Security.Permissions.cs and we probably should have them as they're easy to stub. They aren't in Standard so in that sense we aren't obliged to add these and could add them out of band but some like FileIOPermissionAttribute have some significant usage (5+%) in some of our corpuses. Example, I tried to port Antlr3 and it failed because of FileIOPermissionAttribute. ``` 860: TypesMustExist : Type 'System.Security.Permissions.FileIOPermissionAttribute' does not exist in the implementation but it does exist in the contract. 863: TypesMustExist : Type 'System.Security.Permissions.IsolatedStorageContainment' does not exist in the implementation but it does exist in the contract. 864: TypesMustExist : Type 'System.Security.Permissions.IsolatedStorageFilePermission' does not exist in the implementation but it does exist in the contract. 865: TypesMustExist : Type 'System.Security.Permissions.IsolatedStorageFilePermissionAttribute' does not exist in the implementation but it does exist in the contract. 866: TypesMustExist : Type 'System.Security.Permissions.IsolatedStoragePermission' does not exist in the implementation but it does exist in the contract. 867: TypesMustExist : Type 'System.Security.Permissions.IsolatedStoragePermissionAttribute' does not exist in the implementation but it does exist in the contract. 868: TypesMustExist : Type 'System.Security.Permissions.KeyContainerPermission' does not exist in the implementation but it does exist in the contract. 869: TypesMustExist : Type 'System.Security.Permissions.KeyContainerPermissionAccessEntry' does not exist in the implementation but it does exist in the contract. 870: TypesMustExist : Type 'System.Security.Permissions.KeyContainerPermissionAccessEntryCollection' does not exist in the implementation but it does exist in the contract. 871: TypesMustExist : Type 'System.Security.Permissions.KeyContainerPermissionAccessEntryEnumerator' does not exist in the implementation but it does exist in the contract. 872: TypesMustExist : Type 'System.Security.Permissions.KeyContainerPermissionAttribute' does not exist in the implementation but it does exist in the contract. 873: TypesMustExist : Type 'System.Security.Permissions.KeyContainerPermissionFlags' does not exist in the implementation but it does exist in the contract. 1164: TypesMustExist : Type 'System.Security.Permissions.ResourcePermissionBase' does not exist in the implementation but it does exist in the contract. 1165: TypesMustExist : Type 'System.Security.Permissions.ResourcePermissionBaseEntry' does not exist in the implementation but it does exist in the contract. 1166: TypesMustExist : Type 'System.Security.Permissions.StorePermission' does not exist in the implementation but it does exist in the contract. 1167: TypesMustExist : Type 'System.Security.Permissions.StorePermissionAttribute' does not exist in the implementation but it does exist in the contract. 1168: TypesMustExist : Type 'System.Security.Permissions.StorePermissionFlags' does not exist in the implementation but it does exist in the contract. 1169: TypesMustExist : Type 'System.Security.Permissions.TypeDescriptorPermissionAttribute' does not exist in the implementation but it does exist in the contract. ``` @ViktorHofer maybe you could stub these real fast using genapi? +17641 area-Microsoft.CSharp Remove cast and type-test extensions from Microsoft.CSharp A set of extensions allows for type-testing and casting of `Expr`-derived classes. Replacing calls to these with an actual cast is more idiomatic, and there are many cases where the C#7 `is` declarer works well, reducing the number of tests. This also reduces duplicate calls to these methods in many cases. This also changes access to members of some `Expr`-derived classes to go through a common interface or a virtual member, as those were cases where these type-testing methods were being used. +17642 area-System.Runtime Fix path to fx after move to shared fx installation to run tests PTAL @gkhanna79 fixes issue #15101 +17643 area-System.Globalization "Test failure: System.Globalization.Tests.NumberFormatInfoNumberGroupSizes/NumberGroupSizes_Get(format: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = \"".\"", CurrencyGroupSeparator ..." "Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.NumberFormatInfoNumberGroupSizes/NumberGroupSizes_Get(format: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = \"".\"", CurrencyGroupSeparator ...` has failed. Assert.Equal() Failure Expected: Int32[] [3, 2] Actual: Int32[] [3] Stack Trace: at System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.NumberGroupSizes_Get(NumberFormatInfo format, Int32[] expected) in /root/corefx/src/System.Globalization/tests/NumberFormatInfo/NumberFormatInfoNumberGroupSizes.cs:line 29 Build : Master - 20170329.01 (Core Tests) Failing configurations: - fedora.25.amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170329.01/workItem/System.Globalization.Tests/analysis/xunit/System.Globalization.Tests.NumberFormatInfoNumberGroupSizes~2FNumberGroupSizes_Get(format:%20NumberFormatInfo%20%7B%20CurrencyDecimalDigits%20=%202,%20CurrencyDecimalSeparator%20=%20%5C%22.%5C%22,%20CurrencyGroupSeparator%20..." +17644 area-Infrastructure [WIP] Publish packages for netcoreapp remote testing This commit introduces two additional flags to publish remote testing packages: - BinPlaceNETCoreAppTests - BinPlaceNETCoreAppTestDependencies These options allow us to collect all the stubs for netcoreapp unittest from the following directories: - bin\pkg\netcoreapp\tests (for tests) - bin\pkg\netcoreapp\dependencies (for xunit framework) +17647 area-System.Net Bundle latest cURL with fixes we care about @karelz commented on [Tue Mar 28 2017](https://github.com/dotnet/coreclr/issues/10528) Here's interesting list: * Don't compile NSS version, it causes troubles - see https://github.com/dotnet/corefx/issues/16201 * cURL fix https://github.com/curl/curl/issues/1354 for https://github.com/dotnet/corefx/issues/17174 --- @stephentoub commented on [Tue Mar 28 2017](https://github.com/dotnet/coreclr/issues/10528#issuecomment-289860092) > Don't compile NSS version On Linux we always want to use a version based on OpenSSL. While we tolerate NSS and other backends, lots of features don't work when targeting those, e.g. custom handling of certificates, revocation checking, etc. --- @jkotas commented on [Wed Mar 29 2017](https://github.com/dotnet/coreclr/issues/10528#issuecomment-289959662) Why is this tracked in CoreCLR repo? --- @karelz commented on [Wed Mar 29 2017](https://github.com/dotnet/coreclr/issues/10528#issuecomment-289987914) I thought cURL bundling happens in CoreCLR -- @janvorli? If I am wrong, feel free to move it. --- @janvorli commented on [Wed Mar 29 2017](https://github.com/dotnet/coreclr/issues/10528#issuecomment-290013047) No, it will happen in corefx repo. I am sorry for not noticing before this issue was in coreclr. Moving to corefx. +17650 area-Microsoft.CSharp Don't create ExpressionEXPR just to unwrap it again. Several methods in `ExpressionTreeCallRewriter` that return `ExpressionEXPR` are called by both `VisitCALL` and `GetExpression`. The former return them directly while the latter unwraps the contained `Expression` again. Flip this, so that these methods return `Expression`s and they are only wrapped in `ExpressionEXPR` if necessary. Also rename `ExpressionEXPR` to `ExpressionExpr` and remove an override that just calls the base. +17652 area-System.Net Add some PNSE messages in System.Net.Sockets cc: @geoffkizer, @danmosemsft +17653 area-System.Net Avoid NullReferenceException in WinHttpWebSocketState.Dispose "Per issue https://github.com/dotnet/corefx/issues/16419 avoid referencing null _requestHandle field in WinHttpWebSocketState.Dispose. The test Abort_CloseAndAbort_Success may cause a race condition with _requestHandle and raise a NullReferenceException. The test does a CloseAsync followed by an Abort. Depending on timing, the Abort may come after or during the WinHttp callback triggered by the CloseAsync. ```c# Task t = cws.CloseAsync(WebSocketCloseStatus.NormalClosure, ""AbortClose"", ctsDefault.Token); cws.Abort(); await t; ``` cc @CIPop @davidsh " +17655 area-System.IO Revert MMF.CreateFromFile FileShare to None Reverting a purposeful change to the behavior of CreateFromFile for compat purposes. On netfx, we use FileShare.None for CreateFromFile calls, but on netcoreapp we use FileShare.Read. This means we won't be throwing exceptions for netcoreapp in a lot of cases where we would be in netfx. Reverts #6152 @stephentoub +17656 area-System.Collections Expose deconstruct api and add tests This is a pick up of the abandoned PR: #14621 The implementation went into corert and coreclr but the APIs where never exposed in the contract nor tests where added. Fixes: #13746 cc: @ianhays @stephentoub @danmosemsft +17657 area-System.IO Update IO test for new Wildcard chars This test has been disabled since the new Wildcard characters were allowed. This PR re-enables them and handles the new characters. source was modified in #8669. Tests were disabled in #11585. Resolves https://github.com/dotnet/corefx/issues/11584 cc: @JeremyKuhne +17659 area-System.IO Fix System.IO tests for netfx "On my local run I get 106 test failures when running on NetFX. We need to audit the tests to make sure all of the platform differences are purposeful and add `[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, """")]` where necessary." +17660 area-Infrastructure Decide if we want System.*.AccessControl libraries to be available for UAP cc: @weshaggard Today, some of the AccessControl libraries are part of the closure for UAP which is why some of them are includded in the meta-package's runtime assets. This issue is a good place to track the discussion of whether or not to include them for UAP, and if the decision is to remove them, then break all of the dependencies. I did to an initial try of removing them, and it is not trivial since it would mean changing their configurations from netstandard to platform-specific (netcoreapp and netfx) and do that as well for all assemblies that depend on them, which were quite a few. +17661 area-System.IO SerialPort: Background thread can have unhandled exceptions causing process termination `SerialStream` creates a background thread (entry method is `_eventRunner.WaitForCommEvent`) which has no protection against unhandled exceptions. In some messy tear-down situations (e.g. unexpected USB device removal) `ObjectDisposed` exceptions can be unhandled on this thread - this causes process termination which is clearly highly undesirable. A complete rework of the event handling is probably not a good move in the short-term, but a straightforward catch-all around the thread method would seem to be a good idea which is very low risk but fixes a problem which is tremendously difficult to remedy in application code. In discussions on #17396, @daflame76 has posted a stack trace showing this exception terminating an application. Automated test for this is unlikely to be feasible because the circumstances of the exception are so difficult to repro. This can be assigned to me - I'll work with @daflame76 to get a PR together. +17662 area-System.IO SerialPort: Clear fAbortOnError when port opens Fixes #17396 +17666 area-System.IO SerialPort: Don't allow unhandled exceptions out of Background thread Fixes #17661 +17667 area-System.Security Ensure S.S.Crypto.Cng package is getting created for 2.0 Cng has been removed from netstandard2.0, so the package version of it needs to exist again. https://github.com/dotnet/standard/pull/272 +17668 area-System.Net CertificateValidationRemoteServer_EndToEnd_OK failed on OSX https://github.com/dotnet/corefx/pull/17664 ``` System.Net.Security.Tests.CertificateValidationRemoteServer.CertificateValidationRemoteServer_EndToEnd_Ok [FAIL] System.IO.IOException : Unable to transfer data on the transport connection: Operation timed out. ---- System.Net.Sockets.SocketException : Operation timed out Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.Security/src/System/Net/FixedSizeReader.cs(56,0): at System.Net.FixedSizeReader.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.Security/src/System/Net/Security/SslState.cs(755,0): at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.Security/src/System/Net/Security/SslState.cs(725,0): at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.Security/src/System/Net/Security/SslStream.cs(132,0): at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.Security/tests/FunctionalTests/CertificateValidationRemoteServer.cs(27,0): at System.Net.Security.Tests.CertificateValidationRemoteServer.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- Finished: System.Net.Security.Tests ``` +17669 area-System.Drawing Remove SystemColors from .NET Core As `SystemColors` is not in .NET Standard, it doesn't make much sense to have it in .NET Core, either. Fixes #17024 +17670 area-System.IO Add CancellationToken to StreamReader.Read* methods Today we have the following methods on StreamReader: ```` csharp public class StreamReader { public Task ReadLineAsync(); public Task ReadToEndAsync(); public Task ReadAsync(char[] buffer, int index, int count); public Task ReadBlockAsync(char[] buffer, int index, int count); } ```` None of these support cancellation via CancellationTokens, even though the underlying Stream ReadAsync API's do ## Proposed API Add the following methods ```` csharp public class StreamReader { public Task ReadLineAsync(CancellationToken token); public Task ReadToEndAsync(CancellationToken token); public Task ReadAsync(char[] buffer, int index, int count, CancellationToken token); public Task ReadBlockAsync(char[] buffer, int index, int count, CancellationToken token); } ```` ## Motivation Since these methods read from an underlying stream that may have long delays before data is available, they can block for long periods of time. Especially if the underlying stream is network based. When trying to create a responsive application in these circumstances, where long running operations that might never return can be cancelled to return control back to the user, the inability to cancel these operations in difficult. Currently the only real option is to fork the call into a fake cancellable operation that ends up ignoring original Task when a cancellation happens, with something like ThreadingTools.WithCancellation. But that leaves the reading Task (and potentially the stream and any continuations registered on it) floating, unreferenced. +17672 area-Meta More PNSE messages/comments in Process and Crypto @Priya91 can you please answer questions I put in the diagnostics files? I can then add a better comment or message. @bartonjs +17673 area-System.Net Add serialization test for CookieContainer .NET Core 2.0 now supports full binary serialization. `CookieContainer` was already marked Serializable. Adding a test to verify that. Note: a separate test method was added since CookieContainer doesn't override `Equals`. Fixes #9184 +17675 area-Infrastructure Need to bring back automated publishing of Microsoft.Private.PackageBaseline With the merging of the dev/eng branch to master (1/13/2017), we stopped getting updated versions of Microsoft.Private.PackageBaseline on the myget feed. @ericstj very helpfully provided a workaround for the time being, but for repos like WCF it would be very helpful to get this package back. +17676 area-System.Diagnostics Make Activity Serializable on NET 4.5 In order to store Activity in LogicalCallContext, Activity [must be](https://msdn.microsoft.com/en-us/library/system.runtime.remoting.messaging.callcontext.logicalsetdata(v=vs.110).aspx) serializable It only affect the cross app-domain communication, which is not the case for Activity, however causes some implicit problems with MsTest +17677 area-System.Security Some types missed from System.Security.Permissions fixes https://github.com/dotnet/corefx/issues/17639 +17679 area-System.Threading Fix ReaderWriterLockSlim contention spin wait perf Fixes #13345 - The Sleep(1) in the spin wait for entering the reader-writer lock was introducing an aritficial delay that is much longer than necessary. Since a proper wait would follow the spin wait, removed the Sleep(1). +17681 area-System.Net Test failure: System.Net.Sockets.Tests.DualModeConnectionlessReceiveFrom/ReceiveFromV6BoundToAnyV6_Success Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.DualModeConnectionlessReceiveFrom/ReceiveFromV6BoundToAnyV6_Success` has failed. System.Net.Sockets.SocketException : Connection timed out Stack Trace: at System.Net.Sockets.Socket.ReceiveFrom(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint& remoteEP) in /root/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 1725 at System.Net.Sockets.Tests.DualModeBase.ReceiveFrom_Helper(IPAddress listenOn, IPAddress connectTo) in /root/corefx/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 2753 Build : Master - 20170330.01 (Core Tests) Failing configurations: - Redhat.72.Amd64 - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170330.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DualModeConnectionlessReceiveFrom~2FReceiveFromV6BoundToAnyV6_Success +17684 area-System.Security Increased code coverage for EncryptedXml from 62% to 91.8% Added tests for System.Security.Cryptography.Xml.EncryptedXml. Overall code coverage for System.Security.Cryptography.Xml increased from 64.4% to 68.2% Part of #16829 +17685 area-Microsoft.CSharp Remove spurious HashSet.Contains from Microsoft.CSharp Testing `Contains()` prior to calling `Add()` is wasteful; just examine the result of calling `Add()`. +17688 area-Meta Porting to .Net Core Technical Question "I was walking through your ""Porting to .Net Core"" document here: https://github.com/dotnet/corefx/blob/2b15de70c1cf9f585c4878a722de4dbe42b4940b/Documentation/project-docs/porting.md#binary-serialization and came across this slightly edited (for brevity) content: ""Remoting Justification. The idea of .NET remoting -- which is transparent remote procedure calls -- has been identified as a problematic architecture... Replacement. For communication across processes, inter-process communication (IPC) should be used, such as pipes or memory mapped files. Across machines, you should use a network based solution, preferably a low-overhead plain text protocol such as HTTP."" I'm not sure I agree with the justification, but I wanted to focus on the replacement suggestions. Let's pick a very fast IPC method: ""memory mapped files"". Unless I'm wrong (and if I am, please let me know), there's no way easy way to do this in .Net. It's one of the most useful pieces of technology that got washed away by the ""managed code"" model. Yeah; I guess if I wanted to drop back to native, unmanaged C++ I can still use memory mapped files, but that seems like a hack -- kind of like a donut spare on a sport/utility vehicle. Since you are doing away with .Net Remoting, are you planning to support memory mapped files in managed code on all platforms?" +17689 area-Infrastructure Fix signing of shims by passing the right strongname cc: @weshaggard @Petermarcu - Fixing signing of System.ComponentModel.DataAnnotations shim by passing in the right strongNameSig. - Not fail the official build if signing fails (temporary to unblock build in case fix doesn't work) - Added some logging for signing. +17690 area-System.Net Missing SocketTaskExtensions from System.Net.Sockets on Desktop This is breaking developers and tests. We should consider fixing the tests in the short-term. Should we fix this to bring this type back to desktop? cc: @davidsh +17691 area-System.Net Desktop and Core behavior differences in System.Net.Http There are some differences in behavior between Desktop and core which are causing tests like this one fail on Desktop: https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs#L281 cc: @davidsh +17692 area-System.Net Disable a test in System.Net.Http because of behavior difference cc: @davidsh +17693 area-System.Security Some more easy CAS types to stub The following types exist in Desktop and could be stubbed out in CoreFX just as we've done with more popular CAS attributes. Just no-ops to make existing code work. ``` TypesMustExist : Type 'System.Data.Common.DBDataPermission' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Data.Common.DBDataPermissionAttribute' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Data.Odbc.OdbcPermission' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Data.Odbc.OdbcPermissionAttribute' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Data.OleDb.OleDbPermission' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Data.OleDb.OleDbPermissionAttribute' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Data.SqlClient.SqlClientPermission' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Data.SqlClient.SqlClientPermissionAttribute' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Diagnostics.EventLogPermission' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Diagnostics.EventLogPermissionAttribute' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Diagnostics.PerformanceCounterPermission' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Diagnostics.PerformanceCounterPermissionAttribute' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Drawing.Printing.PrintingPermission' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Drawing.Printing.PrintingPermissionAttribute' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Net.DnsPermission' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Net.DnsPermissionAttribute' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Net.EndpointPermission' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Net.Mail.SmtpPermission' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Net.Mail.SmtpPermissionAttribute' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Net.SocketPermission' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Net.SocketPermissionAttribute' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Net.WebPermission' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Net.WebPermissionAttribute' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Transactions.DistributedTransactionPermission' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Transactions.DistributedTransactionPermissionAttribute' does not exist in the implementation but it does exist in the contract. ``` below is some crude usage data from Nuget and app analyses. Note that zero does not mean exactly zero necessarily -- there's a huge number of apps and packages. ``` Type usage DBDataPermission 0.20% DBDataPermissionAttribute 0.20% SqlClientPermissionAttribute 0.11% OraclePermissionAttribute 0.04% OleDbPermission 0.02% SqlClientPermission 0.02% OdbcPermission 0.01% OraclePermission 0.01% Type usage PerformanceCounterPermissionAttribute 0.11% EventLogPermissionAttribute 0.05% PerformanceCounterPermission 0.03% EventLogPermission 0.02% EventLogPermissionEntry 0.01% EventLogPermissionEntryCollection 0.00% PerformanceCounterPermissionEntry 0.00% PerformanceCounterPermissionEntryCollection 0.00% Type usage PrintingPermission 0.02% PrintingPermissionAttribute 0.00% Type usage DnsPermission 0.21% WebPermission 0.14% SocketPermission 0.11% DnsPermissionAttribute 0.05% SocketPermissionAttribute 0.04% WebPermissionAttribute 0.02% SmtpPermissionAttribute 0.02% NetworkInformationPermission 0.01% EndpointPermission 0.00% SmtpPermission 0.00% NetworkInformationPermissionAttribute 0.00% PnrpPermission 0.00% PnrpPermissionAttribute 0.00% PeerCollaborationPermission 0.00% PeerCollaborationPermissionAttribute 0.00% Type usage DistributedTransactionPermission 0.00% DistributedTransactionPermissionAttribute 0.00% ``` This is just a nice to have for 2.0. +17696 area-System.IO SerialPort: Move background Thread to Task `SerialStream` (internal to `SerialPort`) currently does a `new Thread()` to make a `WaitForCommEvent` thread which blocks on `::WaitCommEvent` and dispatches events into the application's code. The use of the background thread has created problems with unhandled events escaping (see #17661 & #17666) and is also possibly some part of an close/re-open problem described in #16261 (I'm not sure if it is or isn't). It is worth investigating if we could change from a background `Thread` to `Task.Run` and then await the completion of this Task in the relevant dispose method. This would bring exceptions back properly where they can be sensibly handled, and would ensure that the thread was finished before returning from the dispose. At present no reference to the background thread is held by `SerialStream`, so it's impossible for it to make sure it's complete before finishing the close/dispose. One for the future... +17699 area-System.IO Get IO.FileSystem tests running on NetFX There were a high number of failing FileSystem tests for NetFX. This PR modifies the tests to run on NetFX without failures and adds comments for the reasons for the tests that had to be disabled. resolves https://github.com/dotnet/corefx/issues/14987 resolves https://github.com/dotnet/corefx/issues/17659 cc: @stephentoub @JeremyKuhne @safern +17700 area-System.Data Update exception thrown in Prelogin handshake processing due to invalid size in TDS header Changing error to SQL.ParsingError to match similar error case in TdsParserStateObject.TryProcessHeader +17701 area-System.Net Modify HttpClientHandler compression default to match Desktop Change HttpClientHandler property for AutomaticDecompression to match original .NET Framework default. Adjust tests accordingly. Contributes to #17691 +17702 area-Infrastructure Update readme build badges I updated the outerloop tests in Jenkins through PR: #17435 and we changed the outerloop build names to be outerloop_targetgroup_os_configuration so this is the require change to have the correct badges and introduced the new badge for the netfx outerloop run. cc: @danmosemsft @weshaggard @karelz +17708 area-System.Data Omissions in types supported by both Desktop and Core - System.Data.SqlClient For api compatibility between Desktop and Core we need to adjust these types in the System.Data.SqlClient area: (more info here: https://github.com/dotnet/corefx/issues/15255) ``` + System.Data.IDataRecord (SqlDataRecord) + System.IServiceProvider (SqlClientFactory) + System.ICloneable (SqlCommand, SqlConnection, SqlParameter) ``` IDataRecord and IServiceProvider add new apis that must be wisely implemented in the types above. ICloneable needs to be added to these three classes. Simple migration from netfx isn't possible as those classes have change significantly. +17710 area-Infrastructure Problems building library with Novell.Directory.Ldap.NETStandard for Core 1.1 "I have a library I am building for Core 1.0, and it builds fine: ```json { ""version"": ""1.0.0-*"", ""dependencies"": { ""Microsoft.AspNet.WebApi.Client"": ""5.2.3"", ""Microsoft.AspNetCore.Mvc.ViewFeatures"": ""1.0.0"", ""Microsoft.AspNetCore.Razor.Runtime"": ""1.0.0"", ""NETStandard.Library"": ""1.6.0"", ""Novell.Directory.Ldap.NETStandard"": ""2.3.6"" }, ""frameworks"": { ""netstandard1.6"": { ""imports"": [ ""dnxcore50"", ""portable-net451+win8"" ] } } } ``` To update to Core 1.1, the project.json is updated: ```json { ""version"": ""1.0.0-*"", ""dependencies"": { ""Microsoft.AspNet.WebApi.Client"": ""5.2.3"", ""Microsoft.AspNetCore.Mvc.ViewFeatures"": ""1.1.1"", ""Microsoft.AspNetCore.Razor.Runtime"": ""1.1.0"", ""NETStandard.Library"": ""1.6.1"", ""Novell.Directory.Ldap.NETStandard"": ""2.3.6"" }, ""frameworks"": { ""netstandard1.6"": { ""imports"": [ ""portable-net462+win8"" ] } } } ``` It builds fine in Visual Studio 2015 on my local machine, but when it gets built via my TFS build process,, it errors on dotnet restore: ``` 2017-03-29T17:08:59.6868965Z dotnet restore e:\tfs_work\11\s\CcpWebClient\Trunk\CcpWebClient 2017-03-29T17:08:59.6868965Z Error message highlight pattern: 2017-03-29T17:08:59.6868965Z Warning message highlight pattern: 2017-03-29T17:08:59.9364981Z log : Restoring packages for e:\tfs_work\11\s\CcpWebClient\Trunk\CcpWebClient\src\CcpWebClient.Common\project.json... 2017-03-29T17:09:00.8725041Z log : Restoring packages for e:\tfs_work\11\s\CcpWebClient\Trunk\CcpWebClient\src\CcpWebClient.Web\project.json... 2017-03-29T17:09:02.0581117Z error: Package System.Net.WebSockets 4.3.0 is not compatible with netstandard1.6 (.NETStandard,Version=v1.6). Package System.Net.WebSockets 4.3.0 supports: 2017-03-29T17:09:02.0581117Z error: - monoandroid10 (MonoAndroid,Version=v1.0) 2017-03-29T17:09:02.0737118Z error: - monotouch10 (MonoTouch,Version=v1.0) 2017-03-29T17:09:02.0737118Z error: - netstandard1.3 (.NETStandard,Version=v1.3) 2017-03-29T17:09:02.0737118Z error: - xamarinios10 (Xamarin.iOS,Version=v1.0) 2017-03-29T17:09:02.0737118Z error: - xamarinmac20 (Xamarin.Mac,Version=v2.0) 2017-03-29T17:09:02.0737118Z error: - xamarintvos10 (Xamarin.TVOS,Version=v1.0) 2017-03-29T17:09:02.0737118Z error: - xamarinwatchos10 (Xamarin.WatchOS,Version=v1.0) 2017-03-29T17:09:02.0737118Z error: Package System.Collections.Specialized 4.3.0 is not compatible with netstandard1.6 (.NETStandard,Version=v1.6). Package System.Collections.Specialized 4.3.0 supports: 2017-03-29T17:09:02.0737118Z error: - monoandroid10 (MonoAndroid,Version=v1.0) 2017-03-29T17:09:02.0737118Z error: - monotouch10 (MonoTouch,Version=v1.0) 2017-03-29T17:09:02.0737118Z error: - netstandard1.3 (.NETStandard,Version=v1.3) 2017-03-29T17:09:02.0737118Z error: - xamarinios10 (Xamarin.iOS,Version=v1.0) 2017-03-29T17:09:02.0737118Z error: - xamarinmac20 (Xamarin.Mac,Version=v2.0) 2017-03-29T17:09:02.0737118Z error: - xamarintvos10 (Xamarin.TVOS,Version=v1.0) 2017-03-29T17:09:02.0737118Z error: - xamarinwatchos10 (Xamarin.WatchOS,Version=v1.0) 2017-03-29T17:09:02.0737118Z error: One or more packages are incompatible with .NETStandard,Version=v1.6. ``` The WebSockets package is a dependency for Novell.Directory.Ldap.NETStandard. I don't understand why these packages are suddenly complaining about compatibility with .NETStandard,Version=v1.6 when they were building fine before. Any ideas? " +17711 area-System.Runtime Need Single Thread Apartment support to allow use of some COM objects PowerShell cmdlets `Enable-WSManCredSSP` and `Disable-WSManCredSSP` require use of `IGroupPolicyObject`, which requires STA. The PowerShell folk need to be able to port those cmdlets to Core (see [PowerShell/PowerShell#3353](https://github.com/PowerShell/PowerShell/issues/3353)) This relates to an earlier corefx issue, #522. +17713 area-System.Globalization Test failure: System.Globalization.Tests.NumberFormatInfoNumberGroupSizes/NumberGroupSizes_Get Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.NumberFormatInfoNumberGroupSizes/NumberGroupSizes_Get` has failed. System.Globalization.CultureNotFoundException : Culture is not supported.\r Parameter name: name\r ur-IN is an invalid culture identifier. Stack Trace: at System.Globalization.CultureInfo.InitializeFromName(String name, Boolean useUserOverride) at System.Globalization.CultureInfo..ctor(String name, Boolean useUserOverride) at System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.d__0.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() Build : Master - 20170331.01 (Core Tests) Failing configurations: - Windows.7.Amd64 - x86-Release - x86-Debug - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170331.01/workItem/System.Globalization.Tests/analysis/xunit/System.Globalization.Tests.NumberFormatInfoNumberGroupSizes~2FNumberGroupSizes_Get +17714 area-Infrastructure Updating the Windows build instructions to clarify the requirements for VS2017 Fix for #16887 I have tested it with VS 2017 and CMake 3.7.2 but needs to be tested with VS 2015 +17715 area-System.Memory Span (Slow Span) debugger viewer One of the debugger viewer needed to #14376 +17716 area-System.Globalization Fix NumberFormatInfoNumberGroupSizes test for certain OS Fixes https://github.com/dotnet/corefx/issues/17713 On Windows 7 the culture is not found. I thought it was excluded because the expected result was different. Reverting the condition back to how it was. @tarekgh +17717 area-System.Runtime Add tests for FormatterServices.GetUninitializedObject - non runtime types - array, pointer, ref types - abstract/interface types - open generic types - byref like types - shared generic instantiations - COM objects - nullable types - default constructor - static constructor (non beforefieldinit) - static field (beforefieldinit) - static constructor throwing Fixes #16995 +17718 area-System.Runtime Difference in behaviour between netfx and netcoreapp in FormatterServices.GetUninitializedObject for COM objects "```c# Theory] [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""The full .NET framework doesn't support GetUninitializedObject for COM objects"")] public void GetUninitializedObject_ContextBoundObjectSubclass_NetCore_InitializesValue() { Assert.Equal(0, ((COMObject)FormatterServices.GetUninitializedObject(typeof(COMObject))).Value); Assert.Equal(0, ((COMObject)FormatterServices.GetSafeUninitializedObject(typeof(COMObject))).Value); } [Theory] [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework, ""The coreclr supports GetUninitializedObject for COM objects"")] public void GetUninitializedObject_ContextBoundObjectSubclass_Netfx_ThrowsNotSupportedException() { Assert.Throws(() => FormatterServices.GetUninitializedObject(typeof(COMObject))); Assert.Throws(() => FormatterServices.GetSafeUninitializedObject(typeof(COMObject))); } public class COMObject : ContextBoundObject { public int Value { get; set; } } ``` See #17717" +17722 area-System.Runtime Difference in behaviour between netfx and netcoreapp in FormatterServices.GetUninitializedObject for byref like types "```c# public static IEnumerable GetUninitializedObject_ByRefLikeType_TestData() { yield return new object[] { typeof(ArgIterator) }; yield return new object[] { typeof(RuntimeArgumentHandle) }; yield return new object[] { typeof(TypedReference) }; yield return new object[] { typeof(Span) }; yield return new object[] { typeof(ReadOnlySpan) }; } public static IEnumerable GetUninitializedObject_ByRefLikeType_NetCore_TestData() { yield return new object[] { Type.GetType(""System.ByReference`1[System.Int32]"") }; } [Theory] [MemberData(nameof(GetUninitializedObject_ByRefLikeType_TestData))] [MemberData(nameof(GetUninitializedObject_ByRefLikeType_NetCore_TestData))] [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""The full .NET framework supports GetUninitializedObject for by ref like types"")] public void GetUninitializedObject_ByRefLikeType_NetCore_ThrowsNotSupportedException(Type type) { Assert.Throws(() => FormatterServices.GetUninitializedObject(type)); Assert.Throws(() => FormatterServices.GetSafeUninitializedObject(type)); } [Theory] [MemberData(nameof(GetUninitializedObject_ByRefLikeType_TestData))] [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework, ""The coreclr doesn't support GetUninitializedObject for by ref like types"")] public void GetUninitializedObject_ByRefLikeType_Netfx_ThrowsNotSupportedException(Type type) { Assert.NotNull(FormatterServices.GetUninitializedObject(type)); Assert.NotNull(FormatterServices.GetSafeUninitializedObject(type)); } ``` See #17717" +17723 area-System.Runtime Cleanup System.Runtime test in netfx configuration I'd like to add a `netfx` test configuration to System.Runtime. Is this something that would be a good idea? If so, I'd like to work on it - hopefully shouldn't be too hard! Maybe someone's already working on it, so I'm making this issue to track this and claim it if no one is working on it! +17724 area-System.IO Desktop: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.FileDoesNotExist(mode: Truncate) failed with Xunit.Sdk.ThrowsException Configuration: Outerloop_netfx_windows_nt_debug ([build#1](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/1/testReport/)) Failed test: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.FileDoesNotExist(mode: Truncate) Message: ~~~ Assert.Throws() Failure\r\nExpected: typeof(System.IO.FileNotFoundException)\r\nActual: typeof(System.ArgumentException): Combining FileMode: Truncate with FileSystemRights: ReadData, CreateFiles is invalid. FileMode.Truncate is valid only when used with FileSystemRights.Write. ~~~ Stack Trace: ~~~ at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileSystemRights rights, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateFromFile(String path, FileMode mode, String mapName, Int64 capacity, MemoryMappedFileAccess access) at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateFromFile(String path, FileMode mode) at System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.<>c__DisplayClass18_0.b__1() in D:\j\workspace\outerloop_net---903ddde6\src\System.IO.MemoryMappedFiles\tests\MemoryMappedFile.CreateFromFile.Tests.cs:line 552 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/1/testReport/System.IO.MemoryMappedFiles.Tests/MemoryMappedFileTests_CreateFromFile/FileDoesNotExist_mode__Truncate_/ +17725 area-System.IO Desktop: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.FileInUse_CreateFromFile_SucceedsWithReadOnly failed with system.IO.IOException Configuration: Outerloop_netfx_windows_nt_debug (build[#1](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/1/testReport/System.IO.MemoryMappedFiles.Tests/MemoryMappedFileTests_CreateFromFile/FileDoesNotExist_mode__Truncate_/)) Failed test: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.FileInUse_CreateFromFile_SucceedsWithReadOnly Message: ~~~ System.IO.IOException : The process cannot access the file 'C:\\Users\\dotnet-bot\\AppData\\Local\\Temp\\MemoryMappedFileTests_CreateFromFile_dd2twmrj.gsl\\FileInUse_CreateFromFile_SucceedsWithReadOnly_626' because it is being used by another process. ~~~ Stack Trace: ~~~ at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileSystemRights rights, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateFromFile(String path, FileMode mode, String mapName, Int64 capacity, MemoryMappedFileAccess access) at System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.FileInUse_CreateFromFile_SucceedsWithReadOnly() in D:\j\workspace\outerloop_net---903ddde6\src\System.IO.MemoryMappedFiles\tests\MemoryMappedFile.CreateFromFile.Tests.cs:line 628 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/1/testReport/System.IO.MemoryMappedFiles.Tests/MemoryMappedFileTests_CreateFromFile/FileInUse_CreateFromFile_SucceedsWithReadOnly/ +17726 area-System.IO "Desktop: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.ValidArgumentCombinationsWithPath_ModesCreateOrTruncate failed with ""System.ArgumentException""" Configuration: outerloop_netfx_windows_nt_debug ([build#1](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/1/testReport/System.IO.MemoryMappedFiles.Tests/MemoryMappedFileTests_CreateFromFile/FileDoesNotExist_mode__Truncate_/)) Failed test: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.ValidArgumentCombinationsWithPath_ModesCreateOrTruncate Message: ~~~ System.ArgumentException : Combining FileMode: Truncate with FileSystemRights: ReadData, CreateFiles is invalid. FileMode.Truncate is valid only when used with FileSystemRights.Write. ~~~ Stack Trace: ~~~ at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileSystemRights rights, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateFromFile(String path, FileMode mode, String mapName, Int64 capacity, MemoryMappedFileAccess access) at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateFromFile(String path, FileMode mode, String mapName, Int64 capacity) at System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.ValidArgumentCombinationsWithPath_ModesCreateOrTruncate(FileMode mode, String mapName, Int64 capacity, MemoryMappedFileAccess access) in D:\j\workspace\outerloop_net---903ddde6\src\System.IO.MemoryMappedFiles\tests\MemoryMappedFile.CreateFromFile.Tests.cs:line 368 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/1/testReport/System.IO.MemoryMappedFiles.Tests/MemoryMappedFileTests_CreateFromFile/ValidArgumentCombinationsWithPath_ModesCreateOrTruncate_mode__Truncate__mapName__null__capacity__1__access__ReadWrite_/ +17727 area-System.Threading "Desktop: System.Threading.Tasks.Tests.EtwTests.TestEtw failed with ""Xunit.Sdk.EqualException""" Configuration: outerloop_netfx_windows_nt_debug ([build#1](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/1/testReport/System.IO.MemoryMappedFiles.Tests/MemoryMappedFileTests_CreateFromFile/FileDoesNotExist_mode__Truncate_/)) Failed test: System.Threading.Tasks.Tests.EtwTests.TestEtw Message: ~~~ Assert.Equal() Failure\r\nExpected: 1\r\nActual: 0 ~~~ Stack Trace: ~~~ at System.Threading.Tasks.Tests.EtwTests.TestEtw() in D:\j\workspace\outerloop_net---903ddde6\src\System.Threading.Tasks.Parallel\tests\EtwTests.cs:line 32 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/1/testReport/System.Threading.Tasks.Tests/EtwTests/TestEtw/ +17728 area-System.IO "Desktop: System.IO.Tests.WaitForChangedTests.CreatedDeleted_Success failed with ""Xunit.Sdk.EqualException""" Configuration: outerloop_netfx_windows_nt_debug ([build#1](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/1/testReport/System.IO.MemoryMappedFiles.Tests/MemoryMappedFileTests_CreateFromFile/FileDoesNotExist_mode__Truncate_/)) Failed test: System.IO.Tests.WaitForChangedTests.CreatedDeleted_Success Message: ~~~ Assert.Equal() Failure\r\nExpected: Deleted\r\nActual: 0 ~~~ Stack Trace: ~~~ at System.IO.Tests.WaitForChangedTests.CreatedDeleted_Success(WatcherChangeTypes changeType) in D:\j\workspace\outerloop_net---903ddde6\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.WaitForChanged.cs:line 152 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/1/testReport/System.IO.Tests/WaitForChangedTests/CreatedDeleted_Success_changeType__Deleted_/ +17730 area-System.Runtime Enum.Format(no such value) returns different values with netcoreapp and netfx "The following test demonstrates this: ```c# public enum AnEnum { Case1 = 1 } [Fact] [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, "".NET Framework returns value.ToString() if the value doesn't exist"")] public static void Format_NoSuchValue_ReturnsElementToString_Netcore() { Assert.Null(Enum.Format(typeof(AnEnum), 2, ""G"")); } [Fact] [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework, "".NET Core returns null if the value doesn't exist"")] public static void Format_NoSuchValue_ReturnsElementToString_Netfx() { Assert.Equal(""2"", Enum.Format(typeof(AnEnum), 2, ""G"")); } ``` Netfx returns `value.ToString()` Netcoreapp returns `null`" +17731 area-System.Runtime Fix System.Runtime.Tests netfx compilation - An ambiguity error for single parameter `null` - Use of uninitialized variable error +17732 area-System.Runtime Fix StringBuilder param names for no more capacity on netfx Contributes to #17723 +17733 area-System.Runtime Fix Array param name for Reverse where index < lower bound Contributes to #17723 +17734 area-System.Runtime Fix param names for GC tests on netfx Also cleans up some code Contributes to #17723 +17735 area-System.Runtime "Fix DateTime.TryParse(""4/21 5am"") tests on netfx" Contributes to #17723 +17738 area-System.Runtime (System.Random instance).Next - returning same numbers "When you call a new instance of System.Random, the ""Next"" method returns the same results: ```c# Console.WriteLine(""\r\nSame Random instance: ""); Random R = new Random(); for (int i = 0; i < 3; i++) Console.WriteLine(R.Next(1, 10).ToString()); // 4 // 6 // 1 Console.WriteLine(""\r\nNew Random instance: ""); for (int i = 0; i < 3; i++) Console.WriteLine((new Random()).Next(1, 10).ToString()); // 4 // 4 // 4 ``` General info: ``` C:\Users\user>dotnet --info .NET Command Line Tools (1.0.0) Product Information: Version: 1.0.0 Commit SHA-1 hash: e53429feb4 Runtime Environment: OS Name: Windows OS Version: 6.3.9600 OS Platform: Windows RID: win81-x64 Base Path: C:\Program Files\dotnet\sdk\1.0.0 ``` Random Ref: C:\Users\user\.nuget\packages\system.runtime.extensions\4.3.0\ref\netstandard1.5\System.Runtime.Extensions.dll" +17739 area-System.Runtime Fix Enum.Format tests for recent coreclr fixes to align with netfx behaviour See https://github.com/dotnet/coreclr/pull/10610 @benaadams @jkotas if we pull this in when updating the coreclr packages, then the tests will pass, assuming we now align with the netfx behaviour +17740 area-Infrastructure Removing ContinueOnError now that we know the signing problem is fixed. cc: @weshaggard Also increasing the Importance of the signing task so that we can see them on minimal logs. +17741 area-System.Runtime Proposal for adding System.Runtime.CompilerServices.IsReadOnlyAttribue # Rationale and Usage For upcoming C# features captured in document [here](https://github.com/dotnet/csharplang/blob/master/proposals/readonly-ref.md ), the C# compiler needs a way to annotate metadata as read-only. The proposal is to add a new attribute to `System.Runtime.CompilerServices` namespace similar to`InAttribuate` and `OutAttribute`, named `IsReadOnlyAttribue`. Example usages: 1) For read-only reference parameters. 2) For return types that are read-only references. 3) On read-only structs. # Proposed API ```csharp // .NET Core: // System.Runtime (reference assembly) // System.Private.CoreLib (implementation) // .NET Framework 4.7++ // mscorlib // .NET Standard 2.0++ // netstandard namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.All, Inherited = false)] public sealed class IsReadOnlyAttribue: Attribute { public IsReadOnlyAttribue(); } } ``` +17742 area-Infrastructure Fix LinuxCross Portable Build Fixes https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_build?_a=summary&buildId=649339 @weshaggard PTAL. Can you also help me understand why this is unique to Portable CrossBuild I introduced and not Linux-x64 Portable build though the definition structure is the same? +17743 area-System.Security Make Linux ECDsa.ExportParameters preserve leading 0x00s. When Qx and Qy (and, optionally, d) all have leading 0x00 bytes the export does not preserve them on our Linux/OpenSSL implementation. This makes for an inconsistent export between Windows and Linux. +17744 area-System.Memory Adding back AsSpan for fast span Once we consume a new coreclr package (after this PR: https://github.com/dotnet/coreclr/pull/10544), this should go green. +17745 area-System.Runtime Add StringBuilder(Char) ## Rationale In PowerShell repo we got a report https://github.com/PowerShell/PowerShell/issues/3457 about ```c# var allErrors = new StringBuilder('\n'); ``` It is expected that allErrors initialized with '\n' char. Really compiler _silently_ convert the char -> ushort -> int and use `StringBuilder(int capacity)` constructor. Sample http://ideone.com/1pPHlZ Currently we already have method `Append(char value)` so suggestion is to add new constructor `StringBuilder(char value)`. ## Proposed API ## ```c# public sealed partial class StringBuilder : ISerializable { // Proposed constructor public StringBuilder(char value); } ``` +17746 area-Infrastructure "Cannot use packages ""System.Runtime.Loader"", ""System.Reflection.Emit"" and ""System.Reflection.Emit.Lightweight"" when targeting netstandard2.0" I’m moving [PowerShell Core](https://github.com/powershell/powershell) to NetStandard2.0, and find that I cannot depend on the following packages when building an assembly targeting netstandard2.0: - [“System.Runtime.Loader”](https://dotnet.myget.org/feed/dotnet-core/package/nuget/System.Runtime.Loader) - [“System.Reflection.Emit”](https://dotnet.myget.org/feed/dotnet-core/package/nuget/System.Reflection.Emit) - [“System.Reflection.Emit.Lightweight”](https://dotnet.myget.org/feed/dotnet-core/package/nuget/System.Reflection.Emit.Lightweight) I’m targeting a very recent version of NetStandard.Library package (2.0.0-beta-25123-01), where the core/primitive types like `Systme.Object` have been moved to netstandard.dll. However, the newest version of the above 3 packages on [dotnet.myget](https://dotnet.myget.org/gallery/dotnet-core) is 4.4.0-beta-24913-02, which is 3 months old, and thus they are still on top of `System.Runtime.dll`. When listing them in the package references, `dotnet restore` will bring the old version of System.Runtime.dll as a dependency, and then `dotnet build` will throw following ambiguous type identity errors: ```output AssemblyInfo.cs(3,12): error CS0433: The type 'InternalsVisibleToAttribute' exists in both 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' [D:\PowerShell\src\Microsoft.PowerShell.CoreCLR.AssemblyLoadContext\Microsoft.PowerShell.CoreCLR.AssemblyLoadContext.csproj] AssemblyInfo.cs(4,12): error CS0433: The type 'AssemblyFileVersionAttribute' exists in both 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' [D:\PowerShell\src\Microsoft.PowerShell.CoreCLR.AssemblyLoadContext\Microsoft.PowerShell.CoreCLR.AssemblyLoadContext.csproj] AssemblyInfo.cs(5,12): error CS0433: The type 'AssemblyVersionAttribute' exists in both 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' [D:\PowerShell\src\Microsoft.PowerShell.CoreCLR.AssemblyLoadContext\Microsoft.PowerShell.CoreCLR.AssemblyLoadContext.csproj] ``` I know the types/APIs exposed from those 3 packages are not in NetStandard2.0, but the packages should be on top of NetStandard and I should be able to use them when targeting NetStandard2.0, right? What should I do to continue depending on those 3 packages when targeting NetStandard2.0? ## Environment data ```powershell PS:515> dotnet --info .NET Command Line Tools (2.0.0-preview1-005683) Product Information: Version: 2.0.0-preview1-005683 Commit SHA-1 hash: 6866bc2f4a Runtime Environment: OS Name: Windows OS Version: 10.0.14393 OS Platform: Windows RID: win10-x64 Base Path: X:\dotnet\dotnet-dev\sdk\2.0.0-preview1-005683\ ``` +17749 area-System.Net "System.Net.NameResolution.Pal.Tests test fixture fails on Fedora 24 with ""invalid argument"" giving ""Unknown gethostbyname/gethostbyaddr error code""' " "Failed twice in my PR https://github.com/dotnet/corefx/pull/17716/files but is not failing in the latest Fedora 24. My PR only touches globalization code. It might be good to make this assert dump the actual code it's getting (`fprintf(stderr...` .. I don't know if we have such a macro defined already) ``` dotnet: /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug_prtest/src/Native/Unix/System.Native/pal_networking.cpp:414: int ConvertGetHostErrorPlatformToPal(int): Assertion `false && ""Unknown gethostbyname/gethostbyaddr error code""' failed. /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug_prtest/bin/Unix.AnyCPU.Debug/System.Net.NameResolution.Pal.Tests/netcoreapp/RunTests.sh: line 83: 48789 Aborted (core dumped) $RUNTIME_PATH/dotnet xunit.console.netcore.exe System.Net.NameResolution.Pal.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapptests -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests command exited with ExitCode: 134 command failed, trying to collect dumps corefile: no coredump file was found /mnt/resource/j/workspace/dotnet_corefx/master/fedora24_debug_prtest/src/System.Net.NameResolution/tests/PalTests ```" +17751 area-Infrastructure For auto-update, find project.jsons relative to dependencies.props Using `dependencies.props`'s directory allows outside projects to use this file. For example, BfS could use `ProjectJsonFiles` to do upgrades. @ellismg +17752 area-Serialization Remove ReflectionXmlSerializationReader and ReflectionXmlSerializationWriter from the XmlSerializerGenerator Need remove the dependency on these two files from the XmlSerializer Generator tool. +17753 area-Infrastructure Remove remaining references to Fedora 23 I am not familiar with what the .json files do, so I'm only speculating what the correct change is here. As far as I know, the references aren't breaking anything. Please advise. @gkhanna79 @weshaggard @dagood Pointed out in https://github.com/dotnet/core-setup/pull/1912 +17754 area-System.Runtime Add test coverage for generic method definition handle roundtripping Also, existing tests were not actually testing anything because they missed `[Fact]` and the `RuntimeTypeHandleTest` would have succeeded no matter what `r1` is. Fixed that. +17757 area-System.Diagnostics Move System.Diagnostics.Debug to CoreLib Depends on https://github.com/dotnet/coreclr/pull/10625 +17759 area-System.Net Stop Pinvoke check of S.N.H.WHH "Per David Goll, our WinHttpHandler library is not used on UWP. Instead we have a shim over WinRT. So we should stop flagging violations of WACK in this library. How do we achieve this shim -- where does it come from? I assume this is relevant, but perhaps out of date System.Net.Http.WinHttpHandler.pkgproj ``` win ``` We can presumably check this in meantime though. @CIPop @davidsh " +17760 area-System.Net Include error number in asserts out of pal_networking.cpp Contributes to https://github.com/dotnet/corefx/issues/17749 Note: this does not emit output in retail. In the cases here, it was failing in debug though. +17762 area-System.IO "Test: System.IO.Tests.WaitForChangedTests.Renamed_Success failed with ""Xunit.Sdk.EqualException""" Configuration: outerloop_netcoreapp_win10_debug ([build#1](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win10_debug/1/testReport/)) Failed test: System.IO.Tests.WaitForChangedTests.Renamed_Success Message: ~~~ Assert.True() Failure\r\nExpected: True\r\nActual: False ~~~ Stack Trace: ~~~ at System.IO.Tests.WaitForChangedTests.Renamed_Success() in D:\j\workspace\outerloop_net---1bfe87b0\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.WaitForChanged.cs:line 226 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win10_debug/1/testReport/System.IO.Tests/WaitForChangedTests/Renamed_Success/ +17763 area-System.IO System.IO.Tests.DirectoryInfo_Create.PathWithReservedDeviceNameAsExtendedPath failed in CI In #17717 Might be intermittent, so feel free to close if you want ``` Stacktrace MESSAGE: System.IO.IOException : The directory is not empty +++++++++++++++++++ STACK TRACE: at System.IO.Win32FileSystem.RemoveDirectoryHelper(String fullPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 663 at System.IO.Win32FileSystem.RemoveDirectory(String fullPath, Boolean recursive) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 509 at System.IO.Directory.Delete(String path, Boolean recursive) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.FileSystem\src\System\IO\Directory.cs:line 581 at TemporaryDirectory.Delete() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.FileSystem\tests\PortedCommon\TemporaryDirectory.cs:line 20 at TemporaryFileSystemItem`1.Dispose() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.FileSystem\tests\PortedCommon\TemporaryFileSystemItem.cs:line 78 at System.IO.Tests.Directory_CreateDirectory.PathWithReservedDeviceNameAsExtendedPath() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.FileSystem\tests\Directory\CreateDirectory.cs:line 424 ``` +17764 area-Infrastructure netstandard configurations for System.Security.Cryptography.Cng and System.Security.Cryptography.X509Certificates netstandard configurations for System.Security.Cryptography.Cng and System.Security.Cryptography.X509Certificates were causing build breaks in uap and uapaot verticals. Disabled in https://github.com/dotnet/corefx/commit/a00139c78398e88bfae1649fe07fc673b9a390c3 to unblock updates. +17765 area-System.Security Add EncryptionMethod tests Contributes to #16829 Increases CC to 100% and also tests some more utils helpers @krwq +17766 area-System.Runtime Fix Attribute tests on netfx This looks like a deliberate fix to buggy .NET framework behaviour: - https://github.com/dotnet/coreclr/pull/6240 - https://github.com/dotnet/coreclr/issues/6232 Contributes to #17723 +17767 area-System.Runtime Fix String tests on netfx These are all expected differences. I've also cleaned up a couple of negative tests that are affected by the parameter name quirks. Just makes things cleaner and easier to understand Contributes to #17723 +17770 area-System.Runtime Fix Assembly tests for netfx Most of these are expected due to differences in the implementation of Assembly in the runtimes Not sure about the `GetModule(module.Name)` tests, though. Contributes to #17723 +17771 area-Serialization "baseline missing timezone info ""Z""" "@zhenlan @shmao @huanwu The case fail when use VS run system.private.xml solution, because the case use parameter DateTimeKind.Utc when instantiate DateTime(), after serialization, it will contain time zone info Z. The fix: add timezone info ""Z"" into baseline string." +17773 area-System.Diagnostics "Desktop: Tests under ""System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests"" failed with ""Xunit.Sdk.EqualException""" "Configuration: outerloop_netfx_windows_nt_debug Failed tests: DelimiterWriteMethodTests\TraceEvent_FormatString_Test DelimiterWriteMethodTests\TraceData_Object_Test DelimiterWriteMethodTests\TraceEvent_String_Test DelimiterWriteMethodTests\TraceData_ObjectArray_Test Message: ~~~ Assert.Equal() Failure\r\n ↓ (pos 46)\r\nExpected: ···ummy message\"";;4552;\""8\"";\""2017-03-31T23:12:18.3920125Z\"";981020···\r\n Actual: ···ummy message\"";;4552;;\""8\"";\""2017-03-31T23:12:18.3920125Z\"";98102···\r\n ↑ (pos 46) ~~~ Stack Trace: ~~~ at System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests.TraceEvent_FormatString_Test(TraceFilter filter, TraceEventCache eventCache, String source, TraceEventType eventType, Int32 id, String format, Object[] args) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.TextWriterTraceListener\tests\DelimiterWriteMethodTests.cs:line 58 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/3/testReport/System.Diagnostics.TextWriterTraceListenerTests/DelimiterWriteMethodTests/TraceEvent_FormatString_Test_filter__null__eventCache__TraceEventCache___Callstack________at_System_Environment_GetStackTrace_Exception_e_______DateTime___2017_03_31T23_12_18_3920125Z__LogicalOperationStack_______ProcessId___4552__ThreadId_____8___________source____Co____1984________eventType__Verbose__id__12__format____Dummy_message____args__null_/" +17774 area-Serialization "Desktop: Tests under ""DataContractSerializerTests"" failed with ""System.TypeInitializationException""" Configuration: outerloop_netfx_windows_nt_debug Failed tests under: DataContractSerializerTests ~~~ MESSAGE: System.TypeInitializationException : The type initializer for 'DataContractSerializerTests' threw an exception.\r\n---- No method named set_Option\r\nExpected: True\r\nActual: False +++++++++++++++++++ STACK TRACE: at DataContractSerializerTests.DCS_ArrayAsRoot() ----- Inner Stack Trace ----- at DataContractSerializerTests..cctor() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 32 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/3/testReport/(root)/DataContractSerializerTests/DCS_ArrayAsRoot/ +17775 area-System.Net Fixes for running Http tests against Desktop Got the Http Functional tests running with no errors against NETFX (Desktop). Found a bunch of compatibility differences between Desktop and Core that need to be investigated. For now, those specific tests are skipped on Desktop. Fixed the LoopbackServer so that it will run. It was blowing up with `TypeLoadException` due to missing SocketTaskExtensions class (#17690). Contributes to #17691 +17777 area-System.Collections Switch BitArray to using uint internally Updates `BitArray` to use uint internally. This primarily means that the right/left shift no longer have to cast to uint during the operation to protect against the arithmetic nature of the operation (since when backed by an int, if the top bit of the int was set it would shift set bits down). As part of this effort, added performance tests for `BitArray` first to observe those effects, and removed (as many as possible) magic numbers present in the class. Full results are [here](https://1drv.ms/x/s!AgmkmomTldiairQDM67k2hWAOPB7dA), but a quick summary: Operation | Size | Average Elapsed - original | Standard Deviation - original | Average Elapsed - uint/blitting | Standard Deviation - uint/blitting | Error | % Difference elapsed --|--|--|--|--|--|--|-- And | 0 | 0.554 | 0.189 | 0.541 | 0.389 | 0.34 | -2.439 And | 1024 | 4.45 | 2.16 | 3.955 | 0.488 | 2.104 | -12.511 And | 4096 | 13.616 | 2.278 | 14.141 | 2.92 | 1.827 | 3.71 And | 16384 | 49.244 | 3.03 | 50.765 | 1.966 | 2.306 | 2.995 CopyTo_bytearray | 0 | 1.277 | 0.171 | 1.612 | 0.304 | 0.251 | 20.777 CopyTo_bytearray | 1024 | 15.61 | 1.052 | 1.89 | 0.355 | 0.99 | -725.839 CopyTo_bytearray | 4096 | 64.14 | 6.996 | 2.093 | 0.344 | 6.988 | -2964.492 CopyTo_bytearray | 16384 | 229.413 | 7.645 | 2.607 | 0.479 | 7.63 | -8700.778 CopyTo_intarray | 0 | 1.169 | 0.188 | 0.986 | 0.2 | 0.068 | -18.477 CopyTo_intarray | 1024 | 1.356 | 0.266 | 1.24 | 0.238 | 0.119 | -9.36 CopyTo_intarray | 4096 | 1.633 | 0.319 | 1.45 | 0.222 | 0.229 | -12.642 CopyTo_intarray | 16384 | 1.905 | 0.172 | 1.88 | 0.25 | 0.181 | -1.365 ctor_bytearray | 0 | 0.789 | 0.128 | 0.86 | 0.18 | 0.127 | 8.246 ctor_bytearray | 1024 | 5.666 | 0.762 | 1.414 | 0.264 | 0.715 | -300.725 ctor_bytearray | 4096 | 20.241 | 3.907 | 2.611 | 0.458 | 3.88 | -675.212 ctor_bytearray | 16384 | 72.49 | 6.846 | 7.196 | 1.024 | 6.769 | -907.426 ctor_intarray | 0 | 0.846 | 0.19 | 0.746 | 0.175 | 0.074 | -13.439 ctor_intarray | 1024 | 1.259 | 0.279 | 1.236 | 0.24 | 0.142 | -1.845 ctor_intarray | 4096 | 2.243 | 0.328 | 2.388 | 0.43 | 0.278 | 6.07 ctor_intarray | 16384 | 6.081 | 1.07 | 6.928 | 0.92 | 0.546 | 12.221 Get | 1024 | 0.738 | 0.192 | 0.683 | 0.116 | 0.153 | -8.149 Get | 4096 | 0.668 | 0.105 | 0.696 | 0.126 | 0.07 | 3.935 Get | 16384 | 0.651 | 0.112 | 0.696 | 0.125 | 0.056 | 6.511 LeftShift | 0 | 1.276 | 0.226 | 1.437 | 0.386 | 0.313 | 11.215 LeftShift | 1024 | 2.927 | 0.533 | 3.229 | 0.491 | 0.207 | 9.342 LeftShift | 4096 | 4.16 | 0.614 | 5.035 | 0.716 | 0.368 | 17.393 LeftShift | 16384 | 7.953 | 0.814 | 9.977 | 1.067 | 0.69 | 20.282 Length | 0 | 1.688 | 0.259 | 1.638 | 0.298 | 0.147 | -3.059 Length | 1024 | 2.197 | 0.509 | 2.378 | 0.432 | 0.269 | 7.607 Length | 4096 | 3.782 | 0.534 | 3.721 | 0.59 | 0.251 | -1.631 Length | 16384 | 8.41 | 1.025 | 8.269 | 0.951 | 0.382 | -1.713 Not | 0 | 0.376 | 0.074 | 0.388 | 0.081 | 0.033 | 3.066 Not | 1024 | 3.516 | 0.497 | 3.677 | 0.411 | 0.279 | 4.363 Not | 4096 | 11.85 | 1.166 | 12.44 | 0.991 | 0.614 | 4.743 Not | 16384 | 44.641 | 3.297 | 47.095 | 1.403 | 2.984 | 5.21 Or | 0 | 0.489 | 0.09 | 0.475 | 0.101 | 0.046 | -2.995 Or | 1024 | 4.079 | 0.849 | 3.963 | 0.492 | 0.692 | -2.919 Or | 4096 | 13.011 | 2.534 | 13.439 | 0.964 | 2.343 | 3.178 Or | 16384 | 50.897 | 5.505 | 51.512 | 2.261 | 5.019 | 1.193 RightShift | 0 | 1.442 | 0.21 | 1.43 | 0.525 | 0.481 | -0.81 RightShift | 1024 | 3.24 | 0.46 | 3.504 | 0.525 | 0.253 | 7.538 RightShift | 4096 | 5.083 | 0.944 | 5.262 | 0.642 | 0.692 | 3.391 RightShift | 16384 | 8.854 | 1.131 | 10.161 | 1.029 | 0.469 | 12.86 Set | 1024 | 0.862 | 0.115 | 0.985 | 0.155 | 0.104 | 12.486 Set | 4096 | 0.857 | 0.108 | 0.973 | 0.149 | 0.103 | 11.999 Set | 16384 | 0.896 | 0.145 | 0.975 | 0.146 | 0.017 | 8.088 Xor | 0 | 0.42 | 0.057 | 0.479 | 0.103 | 0.086 | 12.253 Xor | 1024 | 3.453 | 0.317 | 3.94 | 0.469 | 0.346 | 12.356 Xor | 4096 | 12.378 | 1.507 | 13.351 | 1.299 | 0.764 | 7.286 Xor | 16384 | 44.231 | 0.937 | 50.957 | 1.791 | 1.526 | 13.199 To speed up the array-based constructors and `CopytTo` (especially, admittedly, after the switch to uint....), added in-out blitting/splatting. For byte arrays this really only works on little-endian based architectures, so we have to fall back on other methods at that point. +17782 area-System.IO Disable parts of MemoryMappedFile tests for desktop Fix https://github.com/dotnet/corefx/issues/17725 by disabling for desktop. This was an intentional improvement made in https://github.com/dotnet/corefx/commit/e3e764f22db3e2f6f1fb9f0b78d291caea52d3d9 by @stephentoub . +17783 area-System.Memory Add array CopyTo Span and remove the unnecessary Span class As part of: https://github.com/dotnet/corefxlab/issues/1314 / https://github.com/dotnet/corefxlab/issues/1292 API approved: https://github.com/dotnet/corefx/issues/17414 cc @jkotas, @shiftylogic +17788 area-System.Runtime Fix Type tests using netfx The following test failures occur running `msbuild /T:BuildAndTest /P:TargetGroup=netfx` ``` System.Tests.TypeTestsExtended.GetTypeByName [FAIL] System.TypeInitializationException : The type initializer for 'System.Tests.TypeTestsExtended' threw an excepti on. ---- System.UnauthorizedAccessException : Access to the path 'C:\Users\hughb\Documents\GitHub\corefx\bin\AnyOS. AnyCPU.Debug\System.Runtime.Tests\netstandard\TestLoadAssembly.dll' is denied. Stack Trace: at System.Tests.TypeTestsExtended.GetTypeByName() ----- Inner Stack Trace ----- at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.File.InternalDelete(String path, Boolean checkHost) C:\Users\hughb\Documents\GitHub\corefx\src\System.Runtime\tests\System\TypeTests.cs(321,0): at System.Tests.T ypeTestsExtended..cctor() System.Tests.TypeTestsExtended.GetTypeByNameTypeloadFailure [FAIL] System.TypeInitializationException : The type initializer for 'System.Tests.TypeTestsExtended' threw an excepti on. ---- System.UnauthorizedAccessException : Access to the path 'C:\Users\hughb\Documents\GitHub\corefx\bin\AnyOS. AnyCPU.Debug\System.Runtime.Tests\netstandard\TestLoadAssembly.dll' is denied. Stack Trace: at System.Tests.TypeTestsExtended.GetTypeByNameTypeloadFailure() ----- Inner Stack Trace ----- at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.File.InternalDelete(String path, Boolean checkHost) C:\Users\hughb\Documents\GitHub\corefx\src\System.Runtime\tests\System\TypeTests.cs(321,0): at System.Tests.T ypeTestsExtended..cctor() System.Tests.TypeTestsExtended.GetTypeByNameCaseSensitiveTypeloadFailure [FAIL] System.TypeInitializationException : The type initializer for 'System.Tests.TypeTestsExtended' threw an excepti on. ---- System.UnauthorizedAccessException : Access to the path 'C:\Users\hughb\Documents\GitHub\corefx\bin\AnyOS. AnyCPU.Debug\System.Runtime.Tests\netstandard\TestLoadAssembly.dll' is denied. Stack Trace: at System.Tests.TypeTestsExtended.GetTypeByNameCaseSensitiveTypeloadFailure() ----- Inner Stack Trace ----- at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.File.InternalDelete(String path, Boolean checkHost) C:\Users\hughb\Documents\GitHub\corefx\src\System.Runtime\tests\System\TypeTests.cs(321,0): at System.Tests.T ypeTestsExtended..cctor() ``` Looking into this, I noticed that if I disabled two of the three failing tests, no exception was thrown and the non-disabled test that was previously failing would pass. This suggested that this is a test issue - that the tests are running parallel to each other and this causes failures. After investigation, it seemed that this is caused by trying to delete a file at the same time that it is being moved. This caused a race condition - but I'm not sure why it only occurs on desktop. The fix is to avoid moving and deleting sources. Instead, we can just refer to the original assembly instead of the new destination assembly. This also requires modifying the tests that expect a FileNotFoundException trying to access the original assembly - this is because we previously deleted it. This is not a problem, as we can modify the test data, and it has exactly the same meaning - trying to load an assembly that doesn't exist. Contributes to #17723 @rakhu @danmoesemsft +17790 area-System.Runtime Fix WaitHandleTests caused by recent fixes in coreclr Updates tests for https://github.com/dotnet/coreclr/pull/10650. This can be cherry-picked and closed when we update coreclr See also #17789 Contributes to #17723 @jkotas +17791 area-System.Numerics API Proposal: InvSquareRoot for Vector Having the ability to calculate the inverse square root is much better for performance than square root in several situations, for example: normalising a vector, since it avoids using division. Inverse square root would only have an implementation for singles since there is no equivalent intrinsic for doubles, so this is the proposed method: `public static Vector InvSquareRoot(Vector value)` Which would map directly to these intrinsics: SSE2: `__m128 _mm_rsqrt_ps (__m128 a)` AVX: `__m256 _mm256_rsqrt_ps (__m256 a)` NEON: `float32x4_t vrsqrteq_f32(float32x4_t a)` +17792 area-System.Runtime Fix Guid tests using netfx This consists of expected parameter name differences in the ctor and test cases for #6316, a desktop bug where Guid.TryParse throws an exception Contributes to #17723 +17793 area-System.Memory Proposal: Add Overlaps(...) extension method for ReadOnlySpan ### Problem A method reading from a `ReadOnlySpan` and writing to a `Span` may produce incorrect results if the two spans overlap and the method overwrites data it has not read yet. Here is a minimal but complete example that demonstrates the problem: ```csharp public static void Twice(ReadOnlySpan src, Span dst) { for (var i = 0; i < src.Length; i++) { dst[2 * i + 0] = src[i]; dst[2 * i + 1] = src[i]; } } [Fact] public static void Test1() { var src = new byte[] { 1, 2, 3, 4, 5, 6 }; var dst = new byte[] { 1, 2, 3, 4, 5, 6 }; Twice(new ReadOnlySpan(src, 0, 3), new Span(dst)); Assert.Equal(new byte[] { 1, 1, 2, 2, 3, 3 }, dst); // works! } [Fact] public static void Test2() { var src = new byte[] { 1, 2, 3, 4, 5, 6 }; var dst = src; Twice(new ReadOnlySpan(src, 0, 3), new Span(dst)); Assert.Equal(new byte[] { 1, 1, 2, 2, 3, 3 }, dst); // fails! actual value: { 1, 1, 1, 1, 1, 1 } } ``` It's a very small corner case, but it can lead to very subtle, hard-to-find bugs. The problem can be prevented in `Twice` by * making a defensive copy, or * adding a check if the two spans overlap. The copy is much more expensive, so it would be nice if it could be avoided. With `ArraySegment` arguments, the check can look like this: ```csharp public static void Twice(ArraySegment src, ArraySegment dst) { if (src.Array == dst.Array && src.Offset < dst.Offset + dst.Count && dst.Offset < src.Offset + src.Count) { throw new ArgumentException(); } for (int i = 0; i < src.Count; i++) { dst.Array[dst.Offset + 2 * i + 0] = src.Array[src.Offset + i]; dst.Array[dst.Offset + 2 * i + 1] = src.Array[src.Offset + i]; } } ``` This proposal is to add an API that enables similar checks for spans. ### Proposed API ```csharp public static class SpanExtensions { public static bool Overlaps(this ReadOnlySpan first, ReadOnlySpan second); } ``` *Open questions:* * Are overloads for all four combinations of `Span` and `ReadOnlySpan` needed * Should the name be `Overlaps` (like `Equals`) or `Overlap` (like `SequenceEqual`) * Should the method return `true` or `false` if one or both of the spans is empty * Should the method return the overlapping range rather than a `bool` * Does it belong in SpanExtensions * ... *Usage:* ```csharp public static void Twice(ReadOnlySpan src, Span dst) { if (src.Overlaps(dst)) { throw new ArgumentException(); // or src = src.ToArray(); } for (int i = 0; i < src.Length; i++) { dst[2 * i + 0] = src[i]; dst[2 * i + 1] = src[i]; } } ``` ### Prototype Implementation I've come up with the following implementation that I would use if there is no strong need for an official API. It's based on the current implementation of the [`SpanHelpers.CopyTo`](https://github.com/dotnet/corefx/blob/f17a94868f4a62c22c75b5710d19ab928f896e5e/src/System.Memory/src/System/SpanHelpers.cs#L23) method. ```csharp public static class SpanExtensions { public static bool Overlaps(this ReadOnlySpan first, ReadOnlySpan second) { ref T x1 = ref first.DangerousGetPinnableReference(); ref T y1 = ref second.DangerousGetPinnableReference(); ref T x2 = ref Unsafe.Add(ref x1, first.Length); ref T y2 = ref Unsafe.Add(ref y1, second.Length); // return (x1 < y2) && (y1 < x2) IntPtr diff1 = Unsafe.ByteOffset(ref x1, ref y2); IntPtr diff2 = Unsafe.ByteOffset(ref y1, ref x2); return (IntPtr.Size == sizeof(int) ? (int)diff1 > 0 : (long)diff1 > 0) && (IntPtr.Size == sizeof(int) ? (int)diff2 > 0 : (long)diff2 > 0); } } ``` It looks simple, but I'm not sure if it's correct. For example, is it legal to have `Unsafe.Add` return a `ref` past the end of a span if the `ref` is not dereferenced? ------ ### Update :boom: The above implementation has several bugs. A pull request with the latest code is [here](https://github.com/dotnet/corefx/pull/24980). +17795 area-System.Collections Question: Immutable views Can we implement immutable interfaces for arrays, lists, dictionaries, etc? ```cs var mutableArray = new[] { .. }; IImmutableArray immutableArray = mutableArray; var mutableList = new List { .. }; IImmutableList immutableList = mutableList; ``` +17796 area-System.Net Fix MaxResponseHeadersLengthSemantics The new HttpClientHandler.MaxResponseHeadersLength property is defined differently from the similarly named WebRequestHandler and HttpWebRequest properties. The units are supposed to be in Kilobytes (1024 bytes). This problem was discovered while doing .NET Core vs. .NET Framework compat testing. Fix the semantics to match the existing WebRequestHandler and HttpWebRequest properties. Adjust tests. Contributes to #17691 +17797 area-Infrastructure Get ambiguous type identity error when using package 'Microsoft.CodeAnalysis.CSharp/2.0.0' in a project that targets 'netcoreapp2.0' "I ran into this when using the package [`Microsoft.CodeAnalysis.CSharp/2.0.0`](https://www.nuget.org/packages/Microsoft.CodeAnalysis.CSharp/) (_2.0.0 is the latest version I can find_) in my project targeting `netcoreapp2.0`. `Microsoft.CodeAnalysis.CSharp/2.0.0` depends on `Microsoft.CodeAnalysis.Common/2.0.0` which pulls in `System.ValueTuple/4.3.0`. However, the types in `System.ValueTuple.dll` are already exposed from `System.Runtime.dll` when targeting `netcoreapp2.0`, and thus using any of those types results in ambiguous type identity error: ``` Program.cs(9,45): error CS0433: The type 'TupleExtensions' exists in both 'System.ValueTuple, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' and 'System.Runtime, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' [D:\apps\netcore2\test\test.csproj] ``` Here is a simple repro: ```c# using System; namespace test { class Program { static void Main(string[] args) { Console.WriteLine(typeof(System.TupleExtensions).FullName); } } } Exe netcoreapp2.0 win10-x64 ``` It looks `netcoreapp2.0` doesn't come with `Microsoft.CodeAnalysis.CSharp.dll` and `Microsoft.CodeAnalysis.dll`. How should I consume the `Microsoft.CodeAnalysis.CSharp` package then?" +17798 area-System.Globalization Add the Globalization Invariant mode tests +17799 area-Microsoft.CSharp Microsoft.CSharp.RuntimeBinder.Semantics.Expr Refactoring * Make `Expr.Kind` abstract. Only store a value in the case of unary and binary operators, otherwise the value is fixed for each derived type. As well as slightly reducing instance size this guarantees correctness in those cases. * Narrow return types to `ExprOperator` when possible. (Or narrower again, if possible). Reduces the amount of casting done, and the potential for mis-casting. * Make `Expr.Type` virtual. Only store when necessary, via new intermediate base class. Calculate when possible, or have default behaviour of returning null when not relevant for a given type of `Expr`. * Remove assignment of default values to fields of new objects in factories. These are no-ops, and removing them serves to simplify the factory methods. * Remove `ExprTypeOrNamespace` `ExprClass` is the only derived class, so remove `ExprTypeOrNamespace` and tighten declarations to just that, removing several casts no longer necessary and eliminating cases where a namespace could exist where a type is needed or vice versa. * Remove `ITypeOrNamespace` There are no longer any cases that could be either a `CType` or an `AssemblyQualifiedNamespaceSymbol`, so this interface no longer serves any purpose. +17800 area-Microsoft.CSharp De-spaghetti Microsoft.CSharp.RuntimeBinder.Semantics.ExprVisitorBase.VisitChildren The switch statement contains a lot of `goto` jumps. Resolve these in the source so that the behaviour is identical, but the paths are clearer. +17801 area-System.Data No host_name when connecting to SQL Server I am facing problems deploying an ASP.NET Core Web API using Entity Framework Core. When I connect to the SQL Server, the session has no host_name, in development there's no problem and works fine, but the production servers have a Logon Trigger that checks the host_name and the login_name to grant access, so I'm getting the error Logon failed for login 'user' due to trigger execution. When I compare the sessions from a ASP.NET Web API using Entity Framework and the ASP.NET Core, the Core version has no host_name: `SELECT * FROM SYS.DM_EXEC_SESSIONS where login_name like '%user%'` ![image](https://cloud.githubusercontent.com/assets/8509636/24593488/923ddd5e-17e9-11e7-82ad-13d18a65c4af.png) Is there a way for ASP.NET Core to send the host_name in the connection to SQL Server? I'm using AspNetCore v1.0.1 and EntityFrameworkCore v1.1.0 +17802 area-System.Net System.Net.Security.SslStream - AuthenticateAsClientAsync is not presenting intermediate certs unless they are installed in the cert store SslStream::AuthenticateAsClientAsync is not presenting intermediate certificates unless they are installed in the cert store. I've attached a repro of the issue and confirmed this behavior with Windows and Mac. The desired behavior is that the contents of the X509CertificateCollection parameter should appear on the server side even if the certs are not installed in the cert store. [SslStream.zip](https://github.com/dotnet/corefx/files/888897/SslStream.zip) +17804 area-System.Runtime Add custom marshaler tests I was looking at where we were missing coverage for Exception being thrown instead of ApplicationException (#17789) and noticed we were missing coverage for ICustomMarshaler - a class that uses ApplicationException heavily. I added some tests as part of it. They exert a bunch of codepaths in the c++ implementation over at coreclr - now they pass with netfx, whereas they didn't before. @jkotas +17807 area-System.Globalization System.Globalization IdnMappingIdnaConformanceTests failing on Win10 RS2 Fixes https://github.com/dotnet/corefx/issues/17433 The Unicode 9 test file has an hugely expanded surface of 5110 test lines (in comparison to the Unicode 6 test file which only had 850 lines). 1035 tests are failing BY DESIGN on Win10 >=RS2. Commented those out. I backed up the class, which automatically commented the failing tests out, locally. If I should include it, please tell. +17808 area-Microsoft.CSharp dynamic does not correctly handle single-rank non-sz arrays "The following non-dynamic unit test would pass: ```C# var d = Array.CreateInstance(typeof(int), new[] { 8 }, new[] { -2 }); d.SetValue(32, 3); d.SetValue(28, -1); Assert.Equal(32, d.GetValue(3)); Assert.Equal(28, d.GetValue(-1)); ``` However, changing the type of `d` to `dynamic` causes it to fail with an `InvalidCastOperation` reporting ""Unable to cast object of type 'System.Int32[*]' to type 'System.Int32[]'.""" +17809 area-Microsoft.CSharp dynamic code error messages mis-report array names. "E.g. with something like: ```C# dynamic d = new int[1,2]; string s = d; ``` The error message is `""Cannot implicitly convert type 'int[*,*]"" to 'string'` rather than `""Cannot implicitly convert type 'int[,]' to 'string'""` Conversely single-rank arrays are described with something like `int[]` even when non-sz in which case there should indeed be an asterisk." +17810 area-Microsoft.CSharp Fix two array-related bugs in Microsoft.CSharp Handle dynamic containing non-SZ single-rank arrays. Fixes #17808 Correct names of array types in dynamic-related error messages. Fixes #17809 +17811 area-Meta Omissions in types supported by both Desktop and Core - CannotSealType Parent: https://github.com/dotnet/corefx/issues/15255 The following types are sealed in netcore but not in netfx: ``` System.Runtime.InteropServices.RuntimeEnvironment System.Security.Cryptography.SHA1Managed System.Security.Cryptography.SHA256Managed System.Security.Cryptography.SHA384Managed System.Security.Cryptography.SHA512Managed System.Net.HttpVersion ``` @karelz I think multiple area labels make sense here as this issue is like a container for discussions around CannotSealType errors. +17812 area-System.Net HttpWebRequest.SendRequest fails on UAP due to settting MaximumAutomaticRedirections to 50 The UAP specific code in https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/netcore50/System/Net/HttpClientHandler.cs will throw PlatformNotSupportedException if the MaximumAutomaticRedirections is to set anything but 10 (citing WinInet behavior). But the code in HttpWebRequest.SendAsync sets the property to the value from HttpHandlerDefaults which is 50. Basically any usage of the HttpWebRequest.SendAsync on UAP will fail due to this. +17815 area-Infrastructure Fix TestILC-related auto-upgrade config See https://github.com/dotnet/corefx/pull/17806 +17817 area-System.Security NS2.0 members SHAxxxCSP missing from netcoreapp These were recently added to NS20. @steveharter they need implementing for Windows as well as [Unix](https://github.com/dotnet/corefx/issues/17163) ``` TypesMustExist : Type 'System.Security.Cryptography.SHA256CryptoServiceProvider' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Security.Cryptography.SHA384CryptoServiceProvider' does not exist in the implementation but it does exist in the contract. TypesMustExist : Type 'System.Security.Cryptography.SHA512CryptoServiceProvider' does not exist in the implementation but it does exist in the contract. ``` +17819 area-Infrastructure Ensure we build packages for everything that's been impacted by `net461` > `netstandard2.0` remapping. See https://github.com/dotnet/standard/issues/282. We need to examine all the 1.1 packages to see if anything else is impacted in a similar way. +17820 area-System.Security Cryptography types in core and netstandard20 more restricted than in netfx These classes are marked as sealed (static) in core and netstandard but aren't in netfx: ``` System.Security.Cryptography.SHA1Managed System.Security.Cryptography.SHA256Managed System.Security.Cryptography.SHA384Managed System.Security.Cryptography.SHA512Managed ``` We are getting a few omission errors: - CannotRemoveBaseTypeOrInterface - CannotMakeMemberNonVirtual https://github.com/dotnet/corefx/issues/15255#issuecomment-291137517 Are these classes intentionally now more restrict than before (also in NS2.0)? Some members are also now not virtual anymore. Wouldn't that be a breaking change for netfx NS2.0 compatibility? cc: @bartonjs @danmosemsft +17821 area-System.Net Fix PNSE with HttpClientHandler.MaxAutomaticRedirections property This's a temporary fix for issue https://github.com/dotnet/corefx/issues/17812 to get us unblocked for ns2.0 UWP app-compact. +17825 area-Infrastructure Add ILLink to the build "This adds ILLink (a .NET Core build of the mono linker) to the build tools and uses it to trim non-public unreachable IL and metadata from our assemblies. This is enabled by default for any assembly that is part of NETCore.App. This can be disabled by setting ILLinkTrimAssembly=false. In some cases ILLink may trim too much, for example a runtime dependency via reflection on private or internal API. If we cannot update ILLink to understand this dependency via heuristic then we can manually ""root"" the private or internal API. This is done by adding an XML file next to the project with the name ILLinkTrim.xml that follows the format documented here: https://github.com/mono/linker/blob/master/linker/README Replaces https://github.com/dotnet/corefx/pull/17632 /cc @erozenfeld @sbomer @weshaggard " +17826 area-System.Runtime Fix registry enumeration. Key data (values and subkeys) can change while we're in the midst of enumerating. This is causing intermittent failures in tests as ERROR_NO_MORE_ITEMS surfaces as an exception as we try and iterate past removed data. In addition, allocating 32K to get value names causes 32K * number of items to get natively allocated on the heap. While these allocs are returned on each iteration it could potentially cause significant grief for large keys and concurrent heap allocations. Above and beyond this, allocating 64K for what are typically < 20 character names is a bit crazy, and as such we'll optimize for the common case. Related to #17037, #16961- **however** this doesn't directly fix those as there is another copy of the registry code in System.Private.Corelib that those issues are actually using. I'll be following up shortly with the SPCL fix. +17829 area-Serialization Fix DataContractSerializer ReflectionOnly tests The DataContractSerializer tests when in ReflectionOnly mode try to get `DataContractSerializer.Option` setter method through reflection which is not available in Desktop so when trying to run this tests in netfx we would get failures. Fixes: https://github.com/dotnet/corefx/issues/17774 cc: @danmosemsft +17830 area-System.Data Change command cancellation to use a specific cancellationOwner field, rather than the more generic Owner field "This change brings SqlClient cancellation in line with Framework. Currently, we use the Owner field in TdsParserStateObject to check the Cancel() caller, but overloading the Owner field with BulkCopy introduced some issues with the TdsParserStateObject not being disposed, since it was setting the Owner field to manage cancellation. This change introduces the ""StartSession"" behavior from framework, and uses a specific cancellationOwner field. (This field in Framework is represented as an int though, since it's an objectID also used with BID tracing.)" +17831 area-Infrastructure Add back package for System.Reflection.TypeExtensions Fixes #17819 System.Reflection.TypeExtensions is not part of NETStandard.Library. It's included in NetCore.App, but the package is required in order to ship the netstandard ref and desktop implementation. We must ship the higher version of API (4.1.x) on net461 now that net461 supports netstandard2.0. Previously this API was only supported starting with net462. /cc @weshaggard @pranavkm +17832 area-System.Security [Port to 1.1.x] Fix the P/Invoke target for System.Security.Cryptography.Algorithms.Tests The crypto shim got renamed, but a capabilities probe in the S.S.C.Algorithms test library didn't get the memo. This didn't matter much because the old shim name is still produced for compatibility, but it got highlighted in a test with packages change. This change removes the duplicate definition of the library name, and includes the Unix library names list, but leaves the individual targeted methods in place. Fixes #16047, by cherry-picking the commit from #13123. +17833 area-System.Data SqlDependency Class Support Does .Net Core/Entity Framework support SQL Dependancies and if not directly, is there a way in .Net Core to receive notifications when data changes in SQL Server? +17835 area-System.Net Move System.Net.Cookie to System.Net namespace Move Cookie to System.Net namespace for UAP since cookie is in ns2.0 public System.Net contract. +17836 area-Infrastructure Update CoreClr, CoreFx, ProjectNTfs, ProjectNTfsTestILC, Standard to preview1-25204-02, preview1-25204-02, beta-25204-00, beta-25204-00, preview1-25204-01, respectively (master) +17838 area-Infrastructure Ensure we build all of pkg folder This turns back on ~~Microsoft.NETCore.Targets~~ and Microsoft.Private.PackageBaseline. /cc @weshaggard @MattGal +17839 area-System.Text SBCSCodePageEncoding with ExceptionFallback throws NullPointerException "When decoding a byte array to a string using a single-byte character set code page encoding with `DecoderFallback.ExceptionFallback` as the decoder fallback, upon encountering a byte not defined in the encoding, the method `System.Text.SBCSCodePageEncoding.GetChars(Byte* bytes, Int32 byteCount, Char* chars, Int32 charCount, DecoderNLS decoder)` throws a `System.NullReferenceException`. The expected behavior here is to throw a `System.Text.DecoderFallbackException`. Test program: ```cs using System; using System.Linq; using System.Text; namespace GetStringNullReferenceException { class Program { static void Main(string[] args) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); Encoding win1252 = Encoding.GetEncoding(""windows-1252"", EncoderFallback.ExceptionFallback, DecoderFallback.ExceptionFallback); var enc = new byte[] { 0x81 }; Console.WriteLine(win1252.GetString(enc)); } } } ``` Traceback is: ``` Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object. at System.Text.SBCSCodePageEncoding.GetChars(Byte* bytes, Int32 byteCount, Char* chars, Int32 charCount, DecoderNLS decoder) at System.Text.EncodingNLS.GetChars(Byte* bytes, Int32 byteCount, Char* chars, Int32 charCount) at System.String.CreateStringFromEncoding(Byte* bytes, Int32 byteLength, Encoding encoding) at System.Text.EncodingNLS.GetString(Byte[] bytes, Int32 index, Int32 count) at GetStringNullReferenceException.Program.Main(String[] args) in C:\temp\GSNRE\Program.cs:line 14 ``` Target framework is `netcoreapp1.1` with the package `System.Text.Encoding.CodePages` at version `4.3.0`." +17840 area-System.Runtime "Add ""mono"" configuration to System.Runtime.Extensions and its dependencies" +17842 area-System.Net Desktop and Core behavior differences in System.Net.Requests There are some differences in behavior between .NET Framework (Desktop) and .NET Core which are causing these tests to fail: > xUnit.net Console Runner (64-bit .NET 4.0.30319.42000) Discovering: System.Net.Requests.Tests Discovered: System.Net.Requests.Tests Starting: System.Net.Requests.Tests System.Net.Tests.HttpWebRequestHeaderTest.Ctor_VerifyHttpRequestDefaults(remoteServer: http://corefx-net.cloudapp.net/Echo.ashx) [FAIL] Assert.Equal() Failure Expected: 0 Actual: 64 Stack Trace: s:\GitHub\corefx\src\System.Net.Requests\tests\HttpWebRequestHeaderTest.cs(32,0): at System.Net.Tests.HttpWebRequestHeaderTest.Ctor_VerifyHttpRequest Defaults(Uri remoteServer) System.Net.Tests.HttpWebRequestHeaderTest.HttpWebRequest_ServicePoint_Throws(remoteServer: http://corefx-net.cloudapp.net/Echo.ashx) [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: (No exception was thrown) Stack Trace: s:\GitHub\corefx\src\System.Net.Requests\tests\HttpWebRequestHeaderTest.cs(81,0): at System.Net.Tests.HttpWebRequestHeaderTest.HttpWebRequest_Service Point_Throws(Uri remoteServer) System.Net.Tests.HttpWebRequestHeaderTest.HttpWebRequest_ServicePoint_Throws(remoteServer: https://corefx-net.cloudapp.net/Echo.ashx) [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: (No exception was thrown) Stack Trace: s:\GitHub\corefx\src\System.Net.Requests\tests\HttpWebRequestHeaderTest.cs(81,0): at System.Net.Tests.HttpWebRequestHeaderTest.HttpWebRequest_Service Point_Throws(Uri remoteServer) System.Net.Tests.HttpWebResponseHeaderTest.HttpWebResponse_Close_Success [FAIL] Assert.Throws() Failure Expected: typeof(System.ObjectDisposedException) Actual: (No exception was thrown) +17843 area-System.IO On Linux, on an NTFS volume, DirectoryInfo.Attributes does not include ReparsePoint "Given this directory structure on an NTFS volume ``` E:. +---sub | | sym-to-other | | | +---junction-to-other | | | \---symd-to-other | \---sub_other ``` running `dir` from the Windows command line shows ``` 04/02/2017 05:27 PM junction-to-other [\??\E:\link-test\sub_other] 04/02/2017 05:27 PM sym-to-other [E:\link-test\sub_other] 04/02/2017 05:27 PM symd-to-other [..\sub_other] ``` Moving the NTFS device to a Linux box, `ls -a` from bash shows ``` lrwxrwxrwx 2 jeff jeff 72 Apr 3 14:10 junction-to-other -> /media/jeff/My Book/link-test/sub_other lrwxrwxrwx 2 jeff jeff 68 Apr 3 14:10 symd-to-other -> ../sub_other lrwxrwxrwx 2 jeff jeff 116 Apr 3 14:10 sym-to-other -> /media/jeff/My Book/.NTFS-3G/E:/link-test/sub_other ``` Invoking the `DirectoryInfo` constructor with `""junction-to-other""` results in a DirectoryInfo object whose `Attributes` property contains `Directory`, but not `ReparsePoint`. Constructors giving the other two types of symbolic link behave as expected. ``` var d = new DirectoryInfo(""symd-to-other""); // OK, Attributes has Directory | ReparsePoint var s = new DirectoryInfo(""sym-to-other""); // OK, Attributes has ReparsePoint var j = new DirectoryInfo(""junction-to-other""); // Bad, Attributes has Directory, but not ReparsePoint ``` " +17844 area-System.IO On Linux, on an NTFS volume, DirectoryInfo.Delete() fails to delete the junction "Given this directory structure on an NTFS volume ``` E:. +---sub | | sym-to-other | | | +---junction-to-other | | | \---symd-to-other | \---sub_other ``` running `dir` from the Windows command line shows ``` 04/02/2017 05:27 PM junction-to-other [\??\E:\link-test\sub_other] 04/02/2017 05:27 PM sym-to-other [E:\link-test\sub_other] 04/02/2017 05:27 PM symd-to-other [..\sub_other] ``` Moving the NTFS device to a Linux box, `ls -a` from bash shows ``` lrwxrwxrwx 2 jeff jeff 72 Apr 3 14:10 junction-to-other -> /media/jeff/My Book/link-test/sub_other lrwxrwxrwx 2 jeff jeff 68 Apr 3 14:10 symd-to-other -> ../sub_other lrwxrwxrwx 2 jeff jeff 116 Apr 3 14:10 sym-to-other -> /media/jeff/My Book/.NTFS-3G/E:/link-test/sub_other ``` Creating a `DirectoryInfo` object for `""junction-to-other""` results in an object whose `Attributes` property has `Directory`. However, invoking `Delete()` on that object throws a `System.IO.IOException` with `HRESULT == 20`, and `Message == ""Not a directory""`. Invoking `Delete()` on objects created for the other two symbolic links successfully deletes the items." +17846 area-Infrastructure Update VerifyNETStandard target to use live netstandard package We never updated the VerifyNETStandard target in our pkg package when we started automatically consuming the NETStandard.Library package so this change fixes it to use the same package as we are consuming elsewhere in corefx. Also adds System.ServiceModel.Web shim to the set of shims we support PTAL @ericstj +17847 area-System.Net FIx System.Net.Requests tests for Desktop Adjust tests to run clean against Desktop. Contributes to #17842 +17850 area-Serialization A basic version of SGEN Tool Fix #17580 @shmao @mconnew @zhenlan +17851 area-System.Security Add enhanced overloads for RSA and DSA.Create During the design of the ECC import/export feature we concluded that better overloads for the asymmetric algorithms' Create methods should exist which allow the user to specify the generation space (an ECCurve for ECC, a keysize for RSA and DSA) or to specify key parameters for importing. These methods are currently pure convenience, but in the future they could end up using the arguments to change a preferred back-end provider; for example, on netfx RSA.Create(RSAParameters) could prefer RSACng when the Exponent is larger than 4 bytes, since RSACryptoServiceProvider cannot process those keys. Fixes #8688, completes #8487 (for corefx) ECDsa: Done in .NET Core (1.0) and [.NET Framework](https://msdn.microsoft.com/en-us/library/system.security.cryptography.ecdsa.create(v=vs.110).aspx) (4.7) RSA: Done in .NET Core (2.0, this change) DSA: Done in .NET Core (2.0, this change) ECDiffieHellman: Not yet available in corefx, done in [.NET Framework](https://msdn.microsoft.com/en-us/library/system.security.cryptography.ecdiffiehellman.create(v=vs.110).aspx) (4.7) +17852 area-System.Net Custom SNI (Server Name Indication) support in HttpClient I have a case where I need to establish HTTPS connection to an endpoint that may hosts several virtual HTTPS endpoints which name does not match the endpoint name and I need to use SNI to select a virtual server. https://en.wikipedia.org/wiki/Server_Name_Indication Experiments with HttpClient show that Client Hello message contains the same name as the endpoint name and I cannot find a way to change it to a different virtual server name. Any suggestion on how to do this? +17853 area-System.Net Add OSX specific test in System.Net.Sockets fixes: https://github.com/dotnet/corefx/issues/16716 cc: @karelz +17856 area-System.Threading Get tests building for Dataflow The tests are in `src/System.Threading.Tasks.Dataflow/tests` but they need a .csproj added that builds them successfully, and issues opened for tests that fail, with those disabled against that issue number. +17857 area-System.IO Dead tests in System.IO.Ports Should these be added to compilation, or deleted? ``` src/System.IO.Ports/tests/Legacy/Manual/Regression_142639.cs src/System.IO.Ports/tests/Legacy/Manual/USB_Serial_Regression.cs src/System.IO.Ports/tests/Support/Sleep.cs ``` @willdean +17858 area-System.Diagnostics Apparently dead sources in S.Diagnostics.Tracing In a quick look there seems lots of dead code in tracing. Should any of it be being compiled, or possibly deleted? @brianrob ``` src/Common/tests/System/Diagnostics/Tracing/ConsoleEventListener.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/ActivityTracker.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/EventActivityOptions.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/EventProvider.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/EventSource.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/EventSourceException.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/EventSource_ProjectN.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/StubEnvironment.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/ArrayTypeInfo.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/ConcurrentSet.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/ConcurrentSetItem.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/DataCollector.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/EmptyStruct.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/EnumHelper.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/EnumerableTypeInfo.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/EventDataAttribute.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/EventFieldAttribute.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/EventFieldFormat.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/EventIgnoreAttribute.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/EventPayload.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/EventSourceActivity.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/EventSourceOptions.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/FieldMetadata.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/InvokeTypeInfo.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/NameInfo.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/PropertyAnalysis.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/SimpleEventTypes.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/SimpleTypeInfos.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/Statics.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/TraceLoggingDataCollector.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/TraceLoggingDataType.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/TraceLoggingEventSource.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/TraceLoggingEventTraits.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/TraceLoggingEventTypes.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/TraceLoggingMetadataCollector.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/TraceLoggingTypeInfo.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/TraceLogging/TypeAnalysis.cs src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/Winmeta.cs src/System.Diagnostics.Tracing/tests/BasicEventSourceTest/TestsLowTrust.cs src/System.Diagnostics.Tracing/tests/CustomEventSources/EventSourceNamedEventSource.cs src/System.Diagnostics.Tracing/tests/CustomEventSources/EventSourceWithInheritance.cs src/System.Diagnostics.Tracing/tests/EvtSrcForReflection/EsrResources.Designer.cs src/System.Diagnostics.Tracing/tests/EvtSrcForReflection/EventSourceForReflection.cs ``` Perhaps these also? ``` Common/src/Interop/Windows/advapi32/Interop.EventRegister.cs Common/src/Interop/Windows/advapi32/Interop.EventSetInformation.cs Common/src/Interop/Windows/advapi32/Interop.EventUnregister.cs Common/src/Interop/Windows/advapi32/Interop.EventWrite.cs Common/src/Interop/Windows/advapi32/Interop.EventWriteTransfer.cs ``` +17859 area-System.Xml Remove XML related files that are apparently dead None of these are compiled, I think. @sepidehMS @krwq do we need any? Do you know why they are there? We should have a careful look. They may represent missed work. +17860 area-Meta Dead interop files These are apparently not used in the build. If we need them in future, we can restore them or recreate them. +17861 area-System.Security Fix export of odd-byte-length RSA keys on macOS RSA 1032 has a 129 byte modulus, which means the halfModulus values are 64.5 byte values (64 bytes and a nybble). Round up the division so that the extra nybble has a place to go. Fixes the bug discovered by #17851 +17862 area-System.Threading Dead threading related sources @alexperovich can these be deleted - they aren't built. Are the tests needed - should they be being compiled? +17863 area-System.Globalization Missing glob test This test file wasn't being built. Added to build. Removed some tests that were already duplicated elsewhere. +17864 area-System.IO Remove dead handle files and FileOptions These are all either already moved to corelib, or in the netstandard1.3 file case, not used. None are being built. @JeremyKuhne +17865 area-Serialization Remove dead serialization files These were all moved to corelib. They aren't building and should ahve been deleted. @shmao +17866 area-Meta "Review ""dead"" code (not getting compiled)" None of these are getting compiled. All either need deleting, or hooking up to the build , as appropriate. (I've either opened issues or put up PR's for all the other dead files I found) - [ ] Common/tests/System/Net/Sockets/Performance/SocketTestClientAPM.cs - [ ] System.CodeDom/src/System/CodeDom/Compiler/CompilerParameters.Evidence.cs - [ ] System.CodeDom/src/System/CodeDom/Compiler/CompilerResults.Evidence.cs - [ ] System.Data.Common/src/System/Data/Common/DbProviderFactory.CreatePermission.cs - [x] System.Data.SqlClient/tests/Tools/TDS/TDS/TDSPacketTokenType.cs - [x] System.Data.SqlClient/tests/Tools/TDS/TDS/TDSPacketType.cs - [ ] System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/CertificateCollectionDeltas.cs - [ ] System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/ValueList.cs - [ ] System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/ValueListEnumerator.cs - [ ] System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/config.cs - [ ] System.DirectoryServices.AccountManagement/src/System/DirectoryServices/AccountManagement/testobj.cs - [ ] System.DirectoryServices.AccountManagement/tests/testobj.cs - [ ] System.DirectoryServices/src/System/DirectoryServices/DirectoryDescriptionAttribute.cs - [ ] System.Net.Http/tests/FunctionalTests/prerequisites/BasicAuthModule.cs - [ ] System.Net.Sockets/tests/PerformanceTests/SocketPerformanceAPMTests.cs - [ ] System.Net.WebSockets/tests/WebSocketExceptionTests.netstandard17.cs - [x] System.Runtime.Extensions/src/System/IO/Path.Win32.cs - [ ] System.Runtime.Numerics/tests/BigInteger/add.cs - [ ] System.Runtime.WindowsRuntime/src/System/IO/IsolatedStorage/IsolatedStorageFileIOHelper.cs - [ ] System.Runtime/tests/Common/CompareHelper.cs - [ ] System.Runtime/tests/Performance/Perf.Array.cs - [ ] System.Runtime/tests/netstandard.1.7.Tests.cs - [ ] System.Security.AccessControl/tests/CommonSecurityDescriptor/CommonSecurityDescriptor_CreateFromBinaryForm.cs - [ ] System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/IncrementalHash.net46.cs +17867 area-System.ComponentModel Don't set CustomErrorMessageSet to true for default constructions of ValidationAttributes Fixes #4481 Doesn't seem like a better way to test this as CustomErrorMessageSet is an internal property +17868 area-Infrastructure Updating CoreClr dependencies to servicing-25204-01 +17869 area-Infrastructure Update CoreClr to servicing-25204-01 (release/1.1.0) +17870 area-System.Net Can't join IPv6 multicast group on Linux "I'm getting an error when trying to join a multicast group with an IPv6 address on ubuntu 16.04. I get no errors when using IPv4 address or when executing the same code on windows 7 and 10. The issue https://github.com/dotnet/corefx/issues/14684 is similar but not the same because I have no problems getting udp multicast packages using IPv4. dotnet version: 1.0.1 OS: ubuntu 16.04 x64 Error occurs for all NICs ``` System.Net.Sockets.SocketException: Invalid argument at System.Net.Sockets.Socket.SetIPv6MulticastOption(SocketOptionName optionName, IPv6MulticastOption MR) at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Object optionValue) ``` Repro: https://github.com/PawelGerr/DotnetCoreUdpMulticast Executable: https://github.com/PawelGerr/DotnetCoreUdpMulticast/tree/master/published/ubuntu.16.04-x64 .csproj-File ```csproj Exe netcoreapp1.1 win7-x64;win10-x64;ubuntu.16.04-x64 ``` Program.cs ```c# using System; using System.Linq; using System.Net; using System.Net.NetworkInformation; using System.Net.Sockets; using System.Text; using System.Threading; namespace UdpMulticastTest { class Program { static void Main(string[] args) { var socket = new Socket(AddressFamily.InterNetworkV6, SocketType.Dgram, ProtocolType.Udp); socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1); socket.Bind(new IPEndPoint(IPAddress.IPv6Any, 2222)); foreach (var nic in NetworkInterface.GetAllNetworkInterfaces()) { try { var props = nic.GetIPProperties().GetIPv6Properties(); socket.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.AddMembership, new IPv6MulticastOption(IPAddress.Parse(""ff08::ef00:de""), props.Index)); Console.WriteLine(""Joined multicast group: NIC = "" + nic.Name); } catch (Exception ex) { Console.WriteLine(""Exception while joining multicast group: NIC = "" + nic.Name + ""; Exception: "" + ex); } } Console.WriteLine(""Press ENTER to exit.""); Console.ReadLine(); } } } ``` " +17871 area-System.Threading Dataflow: Add options for Task Faulting "When using a `DataBlock` in `Tpl.DataFlow`, if a task in the block becomes faulted, then the entire block shuts down and must be completely re-initialised before it can be used again. For example var block = new ActionBlock(a => a.Invoke()); block.Post(() => Console.WriteLine(""First Item"")); //Printed block.Post(() => Console.WriteLine(""Second Item"")); //Printed block.Post(() => throw new ApplicationException(""Throwing an exception here"")); block.Post(() => Console.WriteLine(""Fourth Item"")); //Not Printed block.Post(() => Console.WriteLine(""Fifth Item"")); //Not Printed When using the blocks to construct an asyncronous queue for items, this can cause issues. You need to recreate the block and re-post any queued items that have not been processed. The below suggestions provide some additional functionality to allow devs to dictate whether a DataBlock should shut down in the event of a fault. **Suggested Change** Consider adding a new `ExecutionDataflowBlockOptions` property to control how the block acts in faulting scenarios. For example: `new ExecutionDataflowBlockOptions() { ContinueOnTaskFault = true; }` (`false` by default to preserve existing functionality). This functionality would effectively shift responsibility for managing the block faults to the developer. If they want to stop the block, they can call either `Complete` or action a `CancellationToken`. **Alternative** Add a new `ExecutionDataflowBlockOptions` property to specify a Faulting action, e.g. `new ExecutionDataflowBlockOptions() { FaultAction = (args) => HandleFault(args); }`. In this case, args would contain a property akin to `IsFaulted` that the action can set to `false` if they do not wish the block to stop." +17872 area-System.ComponentModel Compat bug in System.ComponentModel.Annotations tests for invalid RangeAttribute params "Example test: ```cs [Theory] [InlineData(typeof(int), ""1"", ""3"")] [InlineData(typeof(double), ""1"", ""3"")] public static void Validate_CantConvertValueToTargetType_ThrowsException(Type type, string minimum, string maximum) { var attribute = new RangeAttribute(type, minimum, maximum); Assert.Throws(() => attribute.Validate(""abc"", new ValidationContext(new object()))); Assert.Throws(() => attribute.IsValid(""abc"")); } ``` On netfx this test passes - `Exception` is thrown. On netcore this test fails - `ValidationException` is thrown. This was introduced when porting the library to .NET core, as `TypeDescriptor` did not exist. From the reference source (https://github.com/Microsoft/referencesource/blob/4fe4349175f4c5091d972a7e56ea12012f1e7170/System.ComponentModel.DataAnnotations/DataAnnotations/RangeAttribute.cs#L178-L182): ```cs TypeConverter converter = TypeDescriptor.GetConverter(type); IComparable min = (IComparable)converter.ConvertFromString((string)minimum); IComparable max = (IComparable)converter.ConvertFromString((string)maximum); Func conversion = value => (value != null && value.GetType() == type) ? value : converter.ConvertFrom(value); ``` From the .NET core source (https://github.com/dotnet/corefx/blob/master/src/System.ComponentModel.Annotations/src/System/ComponentModel/DataAnnotations/RangeAttribute.cs#L200-L207): ```cs Func conversion = value => (value != null && value.GetType() == type) ? value : Convert.ChangeType(value, type, CultureInfo.CurrentCulture); var min = (IComparable)conversion(minimum); var max = (IComparable)conversion(maximum); Initialize(min, max, conversion); ``` I suggest this is triaged as a .NET core bug. I'm submitting a fix to align it with netfx behaviour." +17873 area-System.ComponentModel Compat bug in System.ComponentModel.Annotations tests for validating PhoneAttributes "The following phone numbers (obviously invalid) are valid with .NET core, and invalid with netfx. ```cs public static IEnumerable TestData() { yield return new object[] { ""+4+2+5+-+5+5+5+-+1+2++1+2++"" }; yield return new object[] { ""425-555-1212 "" }; yield return new object[] { "" \r \n 1 \t "" }; yield return new object[] { ""1-.()"" }; yield return new object[] { ""(425555-1212"" }; yield return new object[] { "")425555-1212"" }; } [Theory] [MemberData(nameof(TestData))] public static void Validate(string value) { Assert.False(new PhoneAttribute().IsValid(value)); } ``` On netfx: test passes On netcoreapp: test fails This regression was likely caused by #4319 I suggest this is triaged as a .NET core bug." +17874 area-System.ComponentModel Get System.ComponentModel.Annotations tests passing with netfx ## Commit 1 Fixes a regression from the full .NET framework when porting the library to .net core Fixes #17872 ## Commit 2 Nerfs tests for fixed bugs and added features See #2650, #4465 and #5203 ## Commit 3 Nerfs tests for .NET core bug. I'm not sure how to fix this one, though! See #17873 Fixes: #18149 Fixes: #18150 Fixes: #18148 Fixes: #18145 Fixes: #18146 Fixes #18542 +17875 area-System.Net Fix NetworkInterface.GetAllNetworkInterfaces segfault when interface provides no address. As documented in getifaddrs, ifa_addr may contain a null pointer. +17877 area-System.Linq Get System.Linq tests working with netfx All of these are expected differences - I've referenced the issue/pr which caused these differences in the skip messages or in the comments +17878 area-System.Net NameResolutionPalTests.GetHostByName_HostName failures in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/portablelinux_release_prtest/2914/consoleText ``` System.Net.NameResolution.PalTests.NameResolutionPalTests.GetHostByName_HostName [FAIL] System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : No such device or address Stack Trace: /mnt/resource/j/workspace/dotnet_corefx/master/portablelinux_release_prtest/src/System.Net.NameResolution/src/System/Net/NameResolutionPal.Unix.cs(148,0): at System.Net.NameResolutionPal.GetHostByName(String hostName) /mnt/resource/j/workspace/dotnet_corefx/master/portablelinux_release_prtest/src/System.Net.NameResolution/tests/PalTests/NameResolutionPalTests.cs(53,0): at System.Net.NameResolution.PalTests.NameResolutionPalTests.GetHostByName_HostName() System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName [FAIL] Assert.Equal() Failure Expected: Success Actual: HostNotFound Stack Trace: /mnt/resource/j/workspace/dotnet_corefx/master/portablelinux_release_prtest/src/System.Net.NameResolution/tests/PalTests/NameResolutionPalTests.cs(129,0): at System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName() ``` +17881 area-System.Security Fix the key increment size for RSA on macOS The LegalKeySizes values seem to have been copied from the Windows (CNG) implementation, and only the minSize value adjusted to fit the environment. Exploratory testing has showed that macOS will create an RSA-1032 key when requested, making the keySize increment 8 bits instead of 8 bytes. Coverage for this scenario is already verified by the RSAKeyGeneration.GenerateSecondMinKey test, but was additionally verified by hand. +17882 area-System.Net Desktop and Core behavior differences in System.Net.WebClient There are some differences in behavior between .NET Framework (Desktop) and .NET Core which are causing some of these tests to fail or hang. +17883 area-System.Net Disable some System.Net.WebClient tests on Desktop Skip some tests on Desktop that are failing or hanging. Investigation will be tracked in #17882. +17885 area-System.Security Fixing test configurations for Cng and X509Certificates cc: @jkotas @weshaggard fixes #17764 +17888 area-System.Net Disable hanging test and disable parallelization in System.Net.Requests.Tests Disabling a hanging test on Desktop to have a full daily run in jenkins. Also I'm adding AssemblyInfo.cs file to disable parallelization on this tests to avoid Outerloop tests hang. +17891 area-Infrastructure *NO MERGE* intentionally empty commit +17892 area-System.Security Certificate Creation API "API Goals: * Be able to create self-signed certificates * Be able to programmatically chain sign certificates * Be able to issue a PKCS10 Certificate/Certification Signing Request to a CA. Non Goals: * To be a full CA product API Proposal: ```diff namespace System.Security.Cryptography.X509Certificates { + public sealed partial class CertificateRequest + { + public CertificateRequest(System.Security.Cryptography.X509Certificates.X500DistinguishedName subjectName, System.Security.Cryptography.ECDsa key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) { } + public CertificateRequest(System.Security.Cryptography.X509Certificates.X500DistinguishedName subjectName, System.Security.Cryptography.RSA key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) { } + public CertificateRequest(System.Security.Cryptography.X509Certificates.X500DistinguishedName subjectName, System.Security.Cryptography.X509Certificates.PublicKey publicKey, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) { } + public CertificateRequest(string subjectDistinguishedName, System.Security.Cryptography.ECDsa key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) { } + public CertificateRequest(string subjectDistinguishedName, System.Security.Cryptography.RSA key, System.Security.Cryptography.HashAlgorithmName hashAlgorithm) { } + public System.Collections.Generic.ICollection CertificateExtensions { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } + public System.Security.Cryptography.HashAlgorithmName HashAlgorithm { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } + public System.Security.Cryptography.X509Certificates.PublicKey PublicKey { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } + public System.Security.Cryptography.X509Certificates.X500DistinguishedName Subject { [System.Runtime.CompilerServices.CompilerGeneratedAttribute]get { throw null; } } + public byte[] EncodePkcs10SigningRequest() { throw null; } + public byte[] EncodePkcs10SigningRequest(System.Security.Cryptography.X509Certificates.X509SignatureGenerator signatureGenerator) { throw null; } + public System.Security.Cryptography.X509Certificates.X509Certificate2 SelfSign(System.DateTimeOffset notBefore, System.DateTimeOffset notAfter) { throw null; } + public System.Security.Cryptography.X509Certificates.X509Certificate2 SelfSign(System.TimeSpan validityPeriod) { throw null; } + public System.Security.Cryptography.X509Certificates.X509Certificate2 Sign(System.Security.Cryptography.X509Certificates.X500DistinguishedName issuerName, System.Security.Cryptography.X509Certificates.X509SignatureGenerator generator, System.DateTimeOffset notBefore, System.DateTimeOffset notAfter, byte[] serialNumber) { throw null; } + public System.Security.Cryptography.X509Certificates.X509Certificate2 Sign(System.Security.Cryptography.X509Certificates.X509Certificate2 issuerCertificate, System.DateTimeOffset notBefore, System.DateTimeOffset notAfter, byte[] serialNumber) { throw null; } + public System.Security.Cryptography.X509Certificates.X509Certificate2 Sign(System.Security.Cryptography.X509Certificates.X509Certificate2 issuerCertificate, System.TimeSpan validityPeriod, byte[] serialNumber) { throw null; } + } public static partial class DSACertificateExtensions { + public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateCopyWithPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.DSA privateKey) { throw null; } public static System.Security.Cryptography.DSA GetDSAPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { throw null; } public static System.Security.Cryptography.DSA GetDSAPublicKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { throw null; } } public static partial class ECDsaCertificateExtensions { + public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateCopyWithPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.ECDsa privateKey) { throw null; } public static System.Security.Cryptography.ECDsa GetECDsaPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { throw null; } public static System.Security.Cryptography.ECDsa GetECDsaPublicKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { throw null; } } public static partial class RSACertificateExtensions { + public static System.Security.Cryptography.X509Certificates.X509Certificate2 CreateCopyWithPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate, System.Security.Cryptography.RSA privateKey) { throw null; } public static System.Security.Cryptography.RSA GetRSAPrivateKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { throw null; } public static System.Security.Cryptography.RSA GetRSAPublicKey(this System.Security.Cryptography.X509Certificates.X509Certificate2 certificate) { throw null; } } + public sealed partial class SubjectAltNameBuilder + { + public SubjectAltNameBuilder() { } + public void AddDnsName(string dnsName) { } + public void AddEmailAddress(string emailAddress) { } + public void AddIpAddress(System.Net.IPAddress ipAddress) { } + public void AddUri(System.Uri uri) { } + public void AddUserPrincipalName(string upn) { } + public System.Security.Cryptography.X509Certificates.X509Extension BuildExtension() { throw null; } + public System.Security.Cryptography.X509Certificates.X509Extension BuildExtension(bool critical) { throw null; } + } + public abstract partial class X509SignatureGenerator + { + protected X509SignatureGenerator() { } + public System.Security.Cryptography.X509Certificates.PublicKey PublicKey { get { throw null; } } + protected abstract System.Security.Cryptography.X509Certificates.PublicKey BuildPublicKey(); + public static System.Security.Cryptography.X509Certificates.X509SignatureGenerator CreateForECDsa(System.Security.Cryptography.ECDsa key) { throw null; } + public static System.Security.Cryptography.X509Certificates.X509SignatureGenerator CreateForRSA(System.Security.Cryptography.RSA key, System.Security.Cryptography.RSASignaturePadding signaturePadding) { throw null; } + public abstract byte[] GetSignatureAlgorithmIdentifier(System.Security.Cryptography.HashAlgorithmName hashAlgorithm); + public abstract byte[] SignData(byte[] data, System.Security.Cryptography.HashAlgorithmName hashAlgorithm); + } ``` Changes from original version: * CertificateRequest has required ctor parameters now. * SubjectName: Either an X500DistinguishedName or a string (to be parsed as an X500DN) * Key * A type-limited AsymmetricAlgorithm: * Used as a private key for SelfSign and EncodePkcs10SigningRequest() * Used as a public key for EncodePkcs10SigningRequest(X509SignatureGenerator) or (other)Sign * A PublicKey prebuilt object. Not compatible with the places an AsymmetricAlgorithm would be used as a private key, but allows for algorithms whose public keys we don't support to be used. * HashAlgorithmName: The hash/digest algorithm which will be used in Sign, SelfSign, or EncodePkcs10SigningRequest. * HashAlgorithmName moves out of X509SignatureGenerator constructor * The members of X509SignatureGenerator which needed the value now take it as parameters. * X509SignatureGenerator derived types are now internal, and accessible via static methods on the base class, reducing the number of public types required. * SelfSign no longer needs a X509KeyStorageFlags. (Since we're in the same assembly as the certificates we can play with pointers; and since we're inbox we can use P/Invokes on non-Windows). * CertificateRequest.AssociatePrivateKey is now three extension methods on X509Certificate2 (CreateCopyWithPrivateKey). * Added ""Pkcs10"" into the middle of ""Encode[Pkcs10]SigningRequest"", to make the serialization format more obvious." +17894 area-System.Net Adjust tests to check for proper Windows 10 update version Remove old Windows 10 version check `IsWindows10VersionInsiderPreviewOrGreater` and use `IsWindows10Version1703OrGreater`. Fixes #8945, #10958 +17895 area-System.Security Remove function CryptoNative_GetStreamSizes This function hasn't been called since (before) .NET Core 1.0 RTM. It was left in to allow for the RTM binary to replace a 1.0-rc2 binary without causing exceptions. Since there's no longer an upgrade concern for 1.0-rc2 customers to current versions of the binary, let's go ahead and remove this dead code. Fixes #8504. +17896 area-System.Console Fixing System.Console tests for uapaot cc: @danmosemsft @ianhays Fixing System.Console tests for uapaot. +17897 area-System.Net Mark HttpListener for not UWP As in https://github.com/dotnet/corefx/pull/17759, per David neither of these libraries contain code that's destined for UWP. Therefore, disable the check against the UWP allow list. @davidsh @CIPop @davidgoll +17898 area-System.Diagnostics Omissions in types supported by both Desktop and Core - System.Diagnostics.PerformanceCounter Only refs adjusted! See https://github.com/dotnet/corefx/issues/15255 and https://github.com/dotnet/corefx/issues/3906 +17904 area-System.Net Detect HTTP2 and multiplexing support for CURL at runtime This change allows portable version of dotnet core to run on versions of CURL with and without HTTP2 and multiplexing support and still be able to use those features if running on CURL that supports them. The compile time checks are now made at runtime and detect the feature support based on comparison of the current version of CURL to the well known version number that added that feature support. The version numbers are listed in docs/libcurl/symbols-in-versions in libcurl source tree. +17905 area-Meta Clean up dead code "After enabling the mono linker for our .NETCoreApp binaries it has identified a number of places where we have dead code. These fall into 3 categories. 1. Truly dead code that isn't used anywhere in the assembly. - This can be deleted 2. Source files that are used in one build of the assembly, but not all. Common source files where some project uses the source, but not all. - These can be better factored, split up to provide minimal source where needed. Or, they may contain truly dead code. 3. Compile time only source. Internal constants that are represented as literals in calling IL and not exposed publicly. - These must remain. ### diffs - [ ] [Microsoft.CSharp](http://tempcoverage.blob.core.windows.net/report2/Microsoft.CSharp.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/Microsoft.CSharp.diff.csv)) - [ ] [Microsoft.VisualBasic](http://tempcoverage.blob.core.windows.net/report2/Microsoft.VisualBasic.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/Microsoft.VisualBasic.diff.csv)) - [x] [System.Collections.Concurrent](http://tempcoverage.blob.core.windows.net/report2/System.Collections.Concurrent.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Collections.Concurrent.diff.csv)) - [x] [System.Collections](http://tempcoverage.blob.core.windows.net/report2/System.Collections.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Collections.diff.csv)) - PR #19140 by @YoupHulsebos - [x] [System.Collections.Immutable](http://tempcoverage.blob.core.windows.net/report2/System.Collections.Immutable.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Collections.Immutable.diff.csv)) - Nothing to remove by @YoupHulsebos in https://github.com/dotnet/corefx/issues/17905#issuecomment-298154133 - [x] [System.Collections.NonGeneric](http://tempcoverage.blob.core.windows.net/report2/System.Collections.NonGeneric.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Collections.NonGeneric.diff.csv)) - Nothing to remove by @YoupHulsebos in https://github.com/dotnet/corefx/issues/17905#issuecomment-298154133 - [x] [System.Collections.Specialized](http://tempcoverage.blob.core.windows.net/report2/System.Collections.Specialized.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Collections.Specialized.diff.csv)) - [x] [System.ComponentModel.Annotations](http://tempcoverage.blob.core.windows.net/report2/System.ComponentModel.Annotations.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.ComponentModel.Annotations.diff.csv)) @norek - [x] [System.ComponentModel](http://tempcoverage.blob.core.windows.net/report2/System.ComponentModel.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.ComponentModel.diff.csv))@norek - [x] [System.ComponentModel.EventBasedAsync](http://tempcoverage.blob.core.windows.net/report2/System.ComponentModel.EventBasedAsync.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.ComponentModel.EventBasedAsync.diff.csv))@norek - [x] [System.ComponentModel.Primitives](http://tempcoverage.blob.core.windows.net/report2/System.ComponentModel.Primitives.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.ComponentModel.Primitives.diff.csv))@norek - [x] [System.ComponentModel.TypeConverter](http://tempcoverage.blob.core.windows.net/report2/System.ComponentModel.TypeConverter.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.ComponentModel.TypeConverter.diff.csv))@norek - [x] [System.Console](http://tempcoverage.blob.core.windows.net/report2/System.Console.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Console.diff.csv)) - [x] [System.Data.Common](http://tempcoverage.blob.core.windows.net/report2/System.Data.Common.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Data.Common.diff.csv)) - Fixed in #19141 by @YoupHulsebos - [x] [System.Diagnostics.Debug](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.Debug.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.Debug.diff.csv)) - [x] [System.Diagnostics.DiagnosticSource](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.DiagnosticSource.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.DiagnosticSource.diff.csv)) - [x] [System.Diagnostics.FileVersionInfo](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.FileVersionInfo.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.FileVersionInfo.diff.csv)) - [x] [System.Diagnostics.Process](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.Process.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.Process.diff.csv)) - [x] [System.Diagnostics.StackTrace](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.StackTrace.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.StackTrace.diff.csv)) - [x] [System.Diagnostics.TextWriterTraceListener](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.TextWriterTraceListener.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.TextWriterTraceListener.diff.csv)) - [x] [System.Diagnostics.Tools](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.Tools.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.Tools.diff.csv)) - [x] [System.Diagnostics.TraceSource](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.TraceSource.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.TraceSource.diff.csv)) - [x] [System.Diagnostics.Tracing](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.Tracing.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Diagnostics.Tracing.diff.csv)) - [x] [System.Drawing.Primitives](http://tempcoverage.blob.core.windows.net/report2/System.Drawing.Primitives.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Drawing.Primitives.diff.csv)) - [ ] [System.IO.Compression](http://tempcoverage.blob.core.windows.net/report2/System.IO.Compression.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.IO.Compression.diff.csv)) - [x] [System.IO.Compression.ZipFile](http://tempcoverage.blob.core.windows.net/report2/System.IO.Compression.ZipFile.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.IO.Compression.ZipFile.diff.csv)) - [ ] [System.IO.FileSystem.AccessControl](http://tempcoverage.blob.core.windows.net/report2/System.IO.FileSystem.AccessControl.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.IO.FileSystem.AccessControl.diff.csv)) - [ ] [System.IO.FileSystem](http://tempcoverage.blob.core.windows.net/report2/System.IO.FileSystem.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.IO.FileSystem.diff.csv)) - [x] [System.IO.FileSystem.DriveInfo](http://tempcoverage.blob.core.windows.net/report2/System.IO.FileSystem.DriveInfo.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.IO.FileSystem.DriveInfo.diff.csv)) - [x] [System.IO.FileSystem.Watcher](http://tempcoverage.blob.core.windows.net/report2/System.IO.FileSystem.Watcher.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.IO.FileSystem.Watcher.diff.csv)) - [x] [System.IO.IsolatedStorage](http://tempcoverage.blob.core.windows.net/report2/System.IO.IsolatedStorage.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.IO.IsolatedStorage.diff.csv)) - [x] [System.IO.MemoryMappedFiles](http://tempcoverage.blob.core.windows.net/report2/System.IO.MemoryMappedFiles.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.IO.MemoryMappedFiles.diff.csv)) - [x] [System.IO.Pipes](http://tempcoverage.blob.core.windows.net/report2/System.IO.Pipes.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.IO.Pipes.diff.csv)) - [x] [System.Linq](http://tempcoverage.blob.core.windows.net/report2/System.Linq.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Linq.diff.csv)) - Nothing to remove, https://github.com/dotnet/corefx/issues/17905#issuecomment-294286344 by @JonHanna - [x] [System.Linq.Expressions](http://tempcoverage.blob.core.windows.net/report2/System.Linq.Expressions.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Linq.Expressions.diff.csv)) - [x] [System.Linq.Parallel](http://tempcoverage.blob.core.windows.net/report2/System.Linq.Parallel.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Linq.Parallel.diff.csv)) - Fixed in #19143 by @YoupHulsebos - [x] [System.Linq.Queryable](http://tempcoverage.blob.core.windows.net/report2/System.Linq.Queryable.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Linq.Queryable.diff.csv)) - Nothing to remove - https://github.com/dotnet/corefx/issues/17905#issuecomment-294286344 by @JonHanna - [ ] [System.Net.Http](http://tempcoverage.blob.core.windows.net/report2/System.Net.Http.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.Http.diff.csv)) - [ ] [System.Net.HttpListener](http://tempcoverage.blob.core.windows.net/report2/System.Net.HttpListener.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.HttpListener.diff.csv)) - [x] [System.Net.Mail](http://tempcoverage.blob.core.windows.net/report2/System.Net.Mail.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.Mail.diff.csv)) - Fixed in #19532 by @Ermiar - [x] [System.Net.NameResolution](http://tempcoverage.blob.core.windows.net/report2/System.Net.NameResolution.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.NameResolution.diff.csv)) - [ ] [System.Net.NetworkInformation](http://tempcoverage.blob.core.windows.net/report2/System.Net.NetworkInformation.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.NetworkInformation.diff.csv)) - [x] [System.Net.Ping](http://tempcoverage.blob.core.windows.net/report2/System.Net.Ping.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.Ping.diff.csv)) - [ ] [System.Net.Primitives](http://tempcoverage.blob.core.windows.net/report2/System.Net.Primitives.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.Primitives.diff.csv)) - [ ] [System.Net.Requests](http://tempcoverage.blob.core.windows.net/report2/System.Net.Requests.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.Requests.diff.csv)) - [ ] [System.Net.Security](http://tempcoverage.blob.core.windows.net/report2/System.Net.Security.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.Security.diff.csv)) - [x] [System.Net.ServicePoint](http://tempcoverage.blob.core.windows.net/report2/System.Net.ServicePoint.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.ServicePoint.diff.csv)) - [ ] [System.Net.Sockets](http://tempcoverage.blob.core.windows.net/report2/System.Net.Sockets.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.Sockets.diff.csv)) - [ ] [System.Net.WebClient](http://tempcoverage.blob.core.windows.net/report2/System.Net.WebClient.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.WebClient.diff.csv)) - [ ] [System.Net.WebHeaderCollection](http://tempcoverage.blob.core.windows.net/report2/System.Net.WebHeaderCollection.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.WebHeaderCollection.diff.csv)) - [x] [System.Net.WebProxy](http://tempcoverage.blob.core.windows.net/report2/System.Net.WebProxy.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.WebProxy.diff.csv)) - [ ] [System.Net.WebSockets.Client](http://tempcoverage.blob.core.windows.net/report2/System.Net.WebSockets.Client.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.WebSockets.Client.diff.csv)) - [ ] [System.Net.WebSockets](http://tempcoverage.blob.core.windows.net/report2/System.Net.WebSockets.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Net.WebSockets.diff.csv)) - [x] [System.Numerics.Vectors](http://tempcoverage.blob.core.windows.net/report2/System.Numerics.Vectors.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Numerics.Vectors.diff.csv)) - [x] [System.ObjectModel](http://tempcoverage.blob.core.windows.net/report2/System.ObjectModel.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.ObjectModel.diff.csv)) - [ ] [System.Private.DataContractSerialization](http://tempcoverage.blob.core.windows.net/report2/System.Private.DataContractSerialization.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Private.DataContractSerialization.diff.csv)) - [ ] [System.Private.Uri](http://tempcoverage.blob.core.windows.net/report2/System.Private.Uri.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Private.Uri.diff.csv)) - [x] [System.Private.Xml](http://tempcoverage.blob.core.windows.net/report2/System.Private.Xml.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Private.Xml.diff.csv)) - [x] [System.Private.Xml.Linq](http://tempcoverage.blob.core.windows.net/report2/System.Private.Xml.Linq.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Private.Xml.Linq.diff.csv)) - [x] [System.Reflection.DispatchProxy](http://tempcoverage.blob.core.windows.net/report2/System.Reflection.DispatchProxy.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Reflection.DispatchProxy.diff.csv)) - [x] [System.Reflection.Metadata](http://tempcoverage.blob.core.windows.net/report2/System.Reflection.Metadata.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Reflection.Metadata.diff.csv)) - [x] [System.Reflection.TypeExtensions](http://tempcoverage.blob.core.windows.net/report2/System.Reflection.TypeExtensions.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Reflection.TypeExtensions.diff.csv)) - [x] [System.Resources.Writer](http://tempcoverage.blob.core.windows.net/report2/System.Resources.Writer.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Resources.Writer.diff.csv)) - [x] [System.Runtime.CompilerServices.VisualC](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.CompilerServices.VisualC.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.CompilerServices.VisualC.diff.csv)) - [ ] [System.Runtime](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.diff.csv)) - [x] [System.Runtime.Extensions](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.Extensions.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.Extensions.diff.csv)) - [x] [System.Runtime.InteropServices](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.InteropServices.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.InteropServices.diff.csv)) - [x] [System.Runtime.InteropServices.RuntimeInformation](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.InteropServices.RuntimeInformation.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.InteropServices.RuntimeInformation.diff.csv)) - [x] [System.Runtime.Numerics](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.Numerics.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.Numerics.diff.csv)) - [x] [System.Runtime.Serialization.Formatters](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.Serialization.Formatters.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.Serialization.Formatters.diff.csv)) - Fixed in #19148 by @yaelkeemink - [ ] [System.Runtime.Serialization.Primitives](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.Serialization.Primitives.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Runtime.Serialization.Primitives.diff.csv)) - [ ] [System.Security.AccessControl](http://tempcoverage.blob.core.windows.net/report2/System.Security.AccessControl.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Security.AccessControl.diff.csv)) - [ ] [System.Security.Claims](http://tempcoverage.blob.core.windows.net/report2/System.Security.Claims.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Security.Claims.diff.csv)) - [ ] [System.Security.Cryptography.Algorithms](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.Algorithms.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.Algorithms.diff.csv)) @mccbraxton - [ ] [System.Security.Cryptography.Cng](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.Cng.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.Cng.diff.csv)) - [ ] [System.Security.Cryptography.Csp](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.Csp.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.Csp.diff.csv)) - [ ] [System.Security.Cryptography.Encoding](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.Encoding.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.Encoding.diff.csv)) - [ ] [System.Security.Cryptography.OpenSsl](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.OpenSsl.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.OpenSsl.diff.csv)) - [x] [System.Security.Cryptography.Primitives](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.Primitives.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.Primitives.diff.csv)) - [x] [System.Security.Cryptography.X509Certificates](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.X509Certificates.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Security.Cryptography.X509Certificates.diff.csv)) - Fixed in #19144 by @yaelkeemink - [x] [System.Security.Principal](http://tempcoverage.blob.core.windows.net/report2/System.Security.Principal.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Security.Principal.diff.csv)) - Nothing to remove - [x] [Microsoft.Win32.Primitives](http://tempcoverage.blob.core.windows.net/report2/Microsoft.Win32.Primitives.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/Microsoft.Win32.Primitives.diff.csv)) - [x] [Microsoft.Win32.Registry](http://tempcoverage.blob.core.windows.net/report2/Microsoft.Win32.Registry.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/Microsoft.Win32.Registry.diff.csv)) - [ ] [Microsoft.XmlSerializer.Generator](http://tempcoverage.blob.core.windows.net/report2/Microsoft.XmlSerializer.Generator.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/Microsoft.XmlSerializer.Generator.diff.csv)) - [x] [System.Security.Principal.Windows](http://tempcoverage.blob.core.windows.net/report2/System.Security.Principal.Windows.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Security.Principal.Windows.diff.csv)) - #18267 - [x] [System.Text.RegularExpressions](http://tempcoverage.blob.core.windows.net/report2/System.Text.RegularExpressions.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Text.RegularExpressions.diff.csv)) - #18134 - [x] [System.Threading](http://tempcoverage.blob.core.windows.net/report2/System.Threading.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Threading.diff.csv)) - #18134 - [x] [System.Threading.Overlapped](http://tempcoverage.blob.core.windows.net/report2/System.Threading.Overlapped.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Threading.Overlapped.diff.csv)) - #18134 - [x] [System.Threading.Tasks.Dataflow](http://tempcoverage.blob.core.windows.net/report2/System.Threading.Tasks.Dataflow.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Threading.Tasks.Dataflow.diff.csv)) - #17998 - [x] [System.Threading.Tasks.Extensions](http://tempcoverage.blob.core.windows.net/report2/System.Threading.Tasks.Extensions.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Threading.Tasks.Extensions.diff.csv)) - Nothing to remove - [x] [System.Threading.Tasks.Parallel](http://tempcoverage.blob.core.windows.net/report2/System.Threading.Tasks.Parallel.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Threading.Tasks.Parallel.diff.csv)) - Nothing to remove - [x] [System.Threading.Thread](http://tempcoverage.blob.core.windows.net/report2/System.Threading.Thread.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Threading.Thread.diff.csv)) - Nothing to remove - [x] [System.Transactions.Local](http://tempcoverage.blob.core.windows.net/report2/System.Transactions.Local.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Transactions.Local.diff.csv)) - [x] [System.Web.HttpUtility](http://tempcoverage.blob.core.windows.net/report2/System.Web.HttpUtility.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Web.HttpUtility.diff.csv)) - Nothing to remove - [x] [System.Xml.XPath.XDocument](http://tempcoverage.blob.core.windows.net/report2/System.Xml.XPath.XDocument.diff.html) ([csv](http://tempcoverage.blob.core.windows.net/report2/System.Xml.XPath.XDocument.diff.csv)) - Nothing to remove ### background The reports were generated by enabling ILLink (mono linker build from codegen team /cc @erozenfeld) and diffing the output. The diffs are from a Windows build and constrained to only assemblies that are part of NETCore.App. When the linker is enabled it will produce a ""PreTrim"" folder in the object folder of an assembly, for example `\bin\obj\AnyOS.AnyCPU.Debug\Microsoft.CSharp\netstandard\PreTrim\Microsoft.CSharp.dll`. To enable a central copy of the trimmed assemblies you can set the property `BinPlaceILLinkTrimAssembly=true`, This will copy all pretrimmed and trimmed assemblies to a folder under bin: `\bin\ILLinkTrimAssembly\netcoreapp-Windows_NT-Debug-x64`. To generate the reports linked in this issue you must have a copy of the AsmDiff.exe tool. This tool isn't yet available for core, see (https://github.com/dotnet/buildtools/issues/1420). If you have the desktop version of the tool you can enable the reporting by setting `AsmDiffCmd=` The linker can be enabled for any project (not just those in NETCore.App) by building with `ILLinkTrimAssembly=true` after https://github.com/dotnet/corefx/pull/17825 is merged. ## how to tackle a library Pick a library and make a note you're going to work on it. Open the html report above for the library. Look for lines in red. These are theoretically dead. Search for the code in the `src` folder of this repo and delete it. Continue through the report for the library and delete all the dead code like that. BUT there ere are some special cases: 1. This is a very common one. Anything with “const”, please ignore. These are all fields inlined by the compiler, we want to keep them in the sources. Typically ints and strings. 1. Anything that is “static string” in “class SR” is special. Instead of editing a C# file you must find the matching entry in the .resx file and remove that. The .resx file for a library is in `src\\src\Resources\strings.resx`. The build will regenerate SR after you do this. Ignore anything else in “class SR” -- there are several methods that may show up as dead. 1. Ignore any private parameterless constructors. We have these in the code to prevent accidentally instantiating the class, we want to keep them in the code. 1. Ignore any public parameterless constructors if there are no other constructors. These are not real. 1. Some code will not be under the library’s folder, it will be in src\common. This code may not actually be dead because another library may use it. Ideally, grep to see whether anyone else in the tree uses it -- if so, it can be deleted. Or, ignore it and we can do another pass later. 1. If the code is only used in Unix, UAP, etc do not delete it. It is likely not dead. You can tell whether it's of this type by being surrounded by eg `#if uap` or having a condition in the .csproj file like eg ` '$(TargetGroup)' == 'uap'""` After you have removed the dead code from a library, make sure it builds (run “msbuild” in the “src” folder for the library). If it does not, go backwards. If it does build, next check the tests build and pass (run “msbuild /t:buildandtest” in the “tests” folder). Again if they do not, retrace your steps. If that all looks good, you can put up a PR for the library. When the PR goes in, we can check it off here. " +17906 area-System.Security NS2.0 - Add SHA256/384/512CryptoServiceProvider Recent NetStandard 2.0 stragglers... +17907 area-System.Data Implement ICloneable on SqlConnection, SqlCommand and SqlParameter The PR implements ICloneable interfaces on SqlConnection, SqlCommand and SqlParameter to make them compatible with NetFx. Code is ported from Netfx with the removal of fields related to features not available in .Net Core. Contributes to: https://github.com/dotnet/corefx/issues/17708 +17910 area-System.Net Re-enable allow-list checker on HttpListener when it's reimplemented in managed Reminder to reverse https://github.com/dotnet/corefx/pull/17897 when it's ready for UWP, so we don't let any banned API slip thruogh. +17914 area-Infrastructure Review package content for all packages Refactoring the build system and automatically harvesting past assets make it really easy for our packages to accidentally ship bits that are old or unnecessary. Static validation makes sure that this won't cause install / ref-def issues, but it doesn't make sure that the packages are minimal. We should review the package to make sure we aren't shipping anything we don't want. +17915 area-Serialization Added test for ISerializable Types with Delegate. Add a test covering ISerializable types having Delegate member. DCS should still be able to serialize objects of such types. +17916 area-Serialization typeof in SG\System\Runtime\Serialization\Globals.cs The `typeof` used in PnToolChain\SerializationAssemblyGenerator\System\Runtime\Serialization\Globals.cs should be reviewed. Most of them probably need to be replaced by `LMR.TypeOf` or `RuntimeAssembly.GetType`. +17917 area-System.Collections Remove Dictionary.GetValueOrDefault instance methods and IDictionary.GetValueOrDefault extension methods `IDictionary` already has: ```c# partial class CollectionExtensions { public static TValue GetValueOrDefault(this IDictionary dictionary, TKey key); public static TValue GetValueOrDefault(this IDictionary dictionary, TKey key, TValue defaultValue); } ``` As extension methods in `CollectionExtensions`. In this discussion: #17275 we've decided to remove this instance methods, see: https://github.com/dotnet/corefx/issues/17275#issuecomment-291636863 cc: @danmosemsft @ianhays +17918 area-System.Collections Add TryAdd/Remove extension methods in CollectionExtensions We should add extension methods in CollectionExtensions: * `public static bool TryAdd(this Interface, T value)` * `public static bool Remove(this Interface, out T value)` For IDictionary. > Any other interfaces we should add this methods on? * I was thinking probably ISet but it already has Add and Remove which both return a bool indicating if the operation was successful. * Also I thought about ICollection but it would only make sense adding Remove as adding would just add an element at the end of the collection so it should always be successful. cc: @danmosemsft @ianhays +17920 area-System.Collections Test failure: System.Collections.Concurrent.Tests.ConcurrentStackTests/ManyConcurrentAddsTakes_CollectionRemainsConsistent(operations: 3000000) Opened on behalf of @Jiayili1 The test `System.Collections.Concurrent.Tests.ConcurrentStackTests/ManyConcurrentAddsTakes_CollectionRemainsConsistent(operations: 3000000)` has failed. System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. Stack Trace: at System.Collections.Generic.HashSet`1.SetCapacity(Int32 newSize, Boolean forceNewHashCodes) at System.Collections.Generic.HashSet`1.IncreaseCapacity() at System.Collections.Generic.HashSet`1.AddIfNotPresent(T value) at System.Collections.Generic.HashSet`1.UnionWith(IEnumerable`1 other) at System.Collections.Concurrent.Tests.ProducerConsumerCollectionTests.ManyConcurrentAddsTakes_CollectionRemainsConsistent(Int32 operations) Build : Master - 20170405.01 (Core Tests) Failing configurations: - Windows.7.Amd64 - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170405.01/workItem/System.Collections.Concurrent.Tests/analysis/xunit/System.Collections.Concurrent.Tests.ConcurrentStackTests~2FManyConcurrentAddsTakes_CollectionRemainsConsistent(operations:%203000000) +17921 area-System.ComponentModel Test failure: System.ComponentModel.Tests.DateTimeConverterTests/ConvertTo_WithContext Opened on behalf of @Jiayili1 The test `System.ComponentModel.Tests.DateTimeConverterTests/ConvertTo_WithContext` has failed. Assert.Equal() Failure\r Expected: 12/05/1998\r Actual: 1998-12-05 Stack Trace: at System.ComponentModel.Tests.ConverterTestBase.ConvertTo_WithContext(Object[,] data, TypeConverter converter) at System.ComponentModel.Tests.DateTimeConverterTests.ConvertTo_WithContext() Build : Master - 20170405.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170405.01/workItem/System.ComponentModel.TypeConverter.Tests/analysis/xunit/System.ComponentModel.Tests.DateTimeConverterTests~2FConvertTo_WithContext +17922 area-System.Console Test failure: Color/InvalidColors Opened on behalf of @Jiayili1 The test `Color/InvalidColors` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: (No exception was thrown) Stack Trace: at Color.InvalidColors() Build : Master - 20170405.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170405.01/workItem/System.Console.Tests/analysis/xunit/Color~2FInvalidColors +17923 area-System.Console Test failure: CancelKeyPressTests/CanAddAndRemoveHandler Opened on behalf of @Jiayili1 The test `CancelKeyPressTests/CanAddAndRemoveHandler` has failed. System.PlatformNotSupportedException : Operation is not supported on this platform. Stack Trace: at System.ConsolePal.ControlCHandlerRegistrar.Register() at System.Console.add_CancelKeyPress(ConsoleCancelEventHandler value) at CancelKeyPressTests.CanAddAndRemoveHandler() Build : Master - 20170405.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170405.01/workItem/System.Console.Tests/analysis/xunit/CancelKeyPressTests~2FCanAddAndRemoveHandler +17924 area-System.Console Test failure: ReadKey/RedirectedConsole_ReadKey Opened on behalf of @Jiayili1 The test `ReadKey/RedirectedConsole_ReadKey` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -1073740791 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at ReadKey.RunRemote(Func`1 func, ProcessStartInfo psi) at ReadKey.RedirectedConsole_ReadKey() Build : Master - 20170405.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170405.01/workItem/System.Console.Tests/analysis/xunit/ReadKey~2FRedirectedConsole_ReadKey +17925 area-System.Data "Tests under: System.Data.SqlClient.Tests.DiagnosticTest failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.DiagnosticTest/ConnectionOpenAsyncErrorTest` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -1073740791 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.Data.SqlClient.Tests.DiagnosticTest.ConnectionOpenAsyncErrorTest() Build : Master - 20170405.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170405.01/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.DiagnosticTest~2FConnectionOpenAsyncErrorTest +17926 area-System.Diagnostics "Tests under: System.Diagnostics.Tests.FileVersionInfoTest failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.FileVersionInfoTest/FileVersionInfo_Chinese` has failed. Assert.Equal() Failure\r Expected: \r Actual: (null) Stack Trace: at System.Diagnostics.Tests.FileVersionInfoTest.VerifyVersionInfo(String filePath, MyFVI expected) at System.Diagnostics.Tests.FileVersionInfoTest.FileVersionInfo_Chinese() Build : Master - 20170405.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170405.01/workItem/System.Diagnostics.FileVersionInfo.Tests/analysis/xunit/System.Diagnostics.Tests.FileVersionInfoTest~2FFileVersionInfo_Chinese +17927 area-System.Diagnostics Test failure: System.Diagnostics.Tests.ProcessStandardConsoleTests/TestChangesInConsoleEncoding Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessStandardConsoleTests/TestChangesInConsoleEncoding` has failed. Assert.Equal() Failure\r Expected: 0\r Actual: 437 Stack Trace: at System.Diagnostics.Tests.ProcessStandardConsoleTests.b__1_0(Int32 expectedCodePage) at System.Diagnostics.Tests.ProcessStandardConsoleTests.TestChangesInConsoleEncoding() Build : Master - 20170405.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170405.01/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessStandardConsoleTests~2FTestChangesInConsoleEncoding +17928 area-System.Diagnostics Test failure: System.Diagnostics.Tests.ProcessStartInfoTests/TestEnvironmentOfChildProcess Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessStartInfoTests/TestEnvironmentOfChildProcess` has failed. Expected: LOCALAPPDATA=C:\\Users\\DotNetTestRunner\\AppData\\Local\\Packages\\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\\AC, PSModulePath=%ProgramFiles%\\WindowsPowerShell\\Modules;C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules, TMP=C:\\Users\\DotNetTestRunner\\AppData\\Local\\Packages\\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\\AC\\Temp, LOGONSERVER=\\\\dnbws1000000B9Z, CommonProgramFiles=C:\\Program Files\\Common Files, HELIX_LOG_ROOT=C:\\dotnetbuild\\logs, Path=C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Users\\DotNetTestRunner\\AppData\\Local\\Microsoft\\WindowsApps, HELIX_PYTHONPATH=C:\\Python\\python.exe, USERNAME=DotNetTestRunner, USERDOMAIN=dnbws1000000B9Z, ALLUSERSPROFILE=C:\\ProgramData, ComSpec=C:\\Windows\\system32\\cmd.exe, HOMEDRIVE=C:, PUBLIC=C:\\Users\\Public, PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC, PROCESSOR_ARCHITECTURE=AMD64, OS=Windows_NT, COMPUTERNAME=dnbws1000000B9Z, SystemDrive=C:, HELIX_SCRIPT_ROOT=C:\\dotnetbuild\\scripts, PROCESSOR_LEVEL=6, HELIX_EVENT_URI=https://nethelix.servicebus.windows.net/telemetry/messages?sr=http%3a%2f%2fnethelix.servicebus.windows.net%2ftelemetry%2fmessages%2f&sig=nlqRjD%2faDjBGjUGHFpBZJ7YNImXyPtC1MNs8JdIltfI%3d&se=1503176077&skn=telemetry, HELIX_CONFIG_ROOT=C:\\dotnetbuild\\config, CommonProgramW6432=C:\\Program Files\\Common Files, PYTHONPATH=C:\\Python;C:\\dotnetbuild\\scripts, windir=C:\\Windows, TestEnvironmentOfChildProcess_SpecialStuff=?\r ?, PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 63 Stepping 2, GenuineIntel, PROCESSOR_REVISION=3f02, HELIX_WORK_ROOT=\\\\?\\C:\\dotnetbuild\\work, USERPROFILE=C:\\Users\\DotNetTestRunner, ProgramFiles=C:\\Program Files, ProgramW6432=C:\\Program Files, CommonProgramFiles(x86)=C:\\Program Files (x86)\\Common Files, ProgramData=C:\\ProgramData, HOMEPATH=\\Users\\DotNetTestRunner, SystemRoot=C:\\Windows, NUMBER_OF_PROCESSORS=2, USERDOMAIN_ROAMINGPROFILE=dnbws1000000B9Z, APPDATA=C:\\Users\\DotNetTestRunner\\AppData\\Roaming, ProgramFiles(x86)=C:\\Program Files (x86), TEMP=C:\\Users\\DotNetTestRunner\\AppData\\Local\\Packages\\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\\AC\\Temp\r Actual: \r Expected: True\r Actual: False Stack Trace: at System.Diagnostics.Tests.ProcessStartInfoTests.TestEnvironmentOfChildProcess() Build : Master - 20170405.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170405.01/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessStartInfoTests~2FTestEnvironmentOfChildProcess +17929 area-System.Diagnostics "Tests under: System.Diagnostics.TextWriterTraceListenerTests failed with ""System.UnauthorizedAccessException""" "Opened on behalf of @Jiayili1 The test `System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests/TraceData_ObjectArray_Test(delimiter: \"",\"", filter: null, eventCache: null, source: \""Co1971\"", eventType: Critical, ...` has failed. System.UnauthorizedAccessException : Access to the path 'C:\\dotnetbuild\\work\\ebf6794e-5df9-4724-81f3-14b34f79c3af\\Work\\7db573da-e64a-4c09-909d-e87bf8a323df\\Unzip\\DelimiterWriteMethodTests.xml' is denied. Stack Trace: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access) at System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests..ctor() Build : Master - 20170405.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170405.01/workItem/System.Diagnostics.TextWriterTraceListener.Tests/analysis/xunit/System.Diagnostics.TextWriterTraceListenerTests.DelimiterWriteMethodTests~2FTraceData_ObjectArray_Test(delimiter:%20%5C%22,%5C%22,%20filter:%20null,%20eventCache:%20null,%20source:%20%5C%22Co1971%5C%22,%20eventType:%20Critical,%20..." +17930 area-System.Drawing "Tests under: System.Drawing.PrimitivesTest failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Drawing.PrimitivesTest.RectangleFTests/EqualityTest_NotRectangleF` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.Drawing.PrimitivesTest.RectangleFTests.EqualityTest_NotRectangleF() Build : Master - 20170405.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170405.01/workItem/System.Drawing.Primitives.Tests/analysis/xunit/System.Drawing.PrimitivesTest.RectangleFTests~2FEqualityTest_NotRectangleF +17931 area-System.IO Remove dead test files in serialport fixes https://github.com/dotnet/corefx/issues/17857 +17932 area-Infrastructure "Tests under: System.Globalization.Tests failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.CultureInfoDateTimeFormat/TestSettingThreadCultures` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -1073740791 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.Globalization.Tests.CultureInfoDateTimeFormat.TestSettingThreadCultures() Build : Master - 20170405.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170405.01/workItem/System.Globalization.Tests/analysis/xunit/System.Globalization.Tests.CultureInfoDateTimeFormat~2FTestSettingThreadCultures +17933 area-System.IO "System.IO.FileLoadException, ""System.IO.FileNotFoundException"" & ""System.TypeLoadException""" "In UWP F5 tests, lots of tests failed with ""System.IO.FileLoadException : Could not load file or assembly XXX"" or ""System.IO.FileNotFoundException : Could not load file or assembly XXX"" or ""System.TypeLoadException : Could not load type XXX"" Examples: System.IO.FileSystem.AccessControl.Tests https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170405.01/workItem/System.IO.FileSystem.AccessControl.Tests " +17934 area-System.IO "Tests under: System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests failed with ""System.UnauthorizedAccessException""" Opened on behalf of @Jiayili1 The test `System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests/GetVolumeLabel_Returns_CorrectLabel` has failed. System.UnauthorizedAccessException : Access to the path 'C:\\' is denied. Stack Trace: at System.IO.DriveInfo.get_VolumeLabel() at System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests.GetVolumeLabel_Returns_CorrectLabel() Build : Master - 20170405.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170405.01/workItem/System.IO.FileSystem.DriveInfo.Tests/analysis/xunit/System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests~2FGetVolumeLabel_Returns_CorrectLabel +17935 area-Meta Why is the documentation so bad? "It's only a problem with Microsoft components. I see a component in NuGet whose name looks interesting. I click on Project Site and I am immediately taken to the site for the project that produces the component, which explains what it is, etc. But not with Microsoft components. Here's a simple example. I see a component in NuGet called ""System.Threading.Tasks.Extensions"". I click on Project Site. It takes me to a generic docs site, the main page that has nothing to do with System.Threading.Tasks.Extensions. If I then search for System.Threading.Tasks.Extensions, I got lots of hits, none of which are for System.Threading.Tasks.Extensions, but System.Threading.Tasks instead. I do the search again, this time putting the component name in quotes, prepending a plus sign to indicate that I don't want to see any pages unless the exact name appears: +""System.Threading.Tasks.Extensions"" Now I am given a page that is about another component, value.types, that says I need System.Threading.Tasks.Extensions in order to use it. Googling or Binging ""System.Threading.Tasks.Extensions"" doesn't do anything either. Now, wouldn't it be better if System.Threading.Tasks.Extensions had a documentation page somewhere similar to MSDN, and if one does not exist, actually indicate it does not exist. If there's not docs, telling the user there's not docs is actually quite valuable. The user can stop looking for docs, and may be go elsewhere such as stackoverflow, forums or decide to look through the source. There's a reason why there's a ""project site"" link on nuget.org. It's supposed to take you to the specific page for that component. It would be useful if that's what it did rather than sending you to an entire Docs site where you have to now search for the phrase." +17939 area-System.Data Dead SqlClient files Contributes to https://github.com/dotnet/corefx/issues/17866 @saurabh500 +17940 area-System.IO Remove dead path files Contributes to https://github.com/dotnet/corefx/issues/17866 +17941 area-System.Diagnostics delete unused StackTraceSymbols class Contributes to https://github.com/dotnet/corefx/issues/17905 +17943 area-System.Reflection The ConstructorBuilder and MethodBuilder generated parameter should not has default value by default. "The HasDefaultValue of parameters should be false by default, for the constructors and methods generated from System.Reflection.Emit.ConstructorBuilder and System.Reflection.Emit.MethodBuilder. But actually the HasDefaultValue of the parameters are true. It means the emitter generates parameter default values as null unexpected. The sample code as following: ```c# var builder = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName(""DynamicProxyGenAssembly""), AssemblyBuilderAccess.Run).DefineDynamicModule(""DynamicProxyGenAssembly""); var type = builder.DefineType(""MyProxy"", TypeAttributes.Public); var constructorBuilder = type.DefineConstructor(MethodAttributes.Public, CallingConventions.Standard, new[] {typeof(Version)}); var il = constructorBuilder.GetILGenerator(); il.Emit(OpCodes.Ret); var methodBuilder = type.DefineMethod(""DoSomething"", MethodAttributes.Public, CallingConventions.Standard, typeof(void),new[] {typeof(Version)}); il = methodBuilder.GetILGenerator(); il.Emit(OpCodes.Ret); var typeInfo = type.CreateTypeInfo(); var constructor = typeInfo.GetConstructor(new[] {typeof(Version) }); var parameters = constructor.GetParameters(); Assert.False(parameters[0].HasDefaultValue); // Fails var method = typeInfo.GetMethod(""DoSomething"", new[] {typeof(Version)}); parameters = method.GetParameters(); Assert.False(parameters[0].HasDefaultValue); // Fails ``` But the DynamicMethod has the correct parameter default value as expected. The sample code as following: ```c# var method = new DynamicMethod(""x"", typeof(void), new [] { typeof(Version) }); var il = method.GetILGenerator(); il.Emit(OpCodes.Ret); var delegateMethod = method.CreateDelegate(typeof(Action)); var parameters = delegateMethod.GetMethodInfo().GetParameters(); Assert.False(parameters[0].HasDefaultValue); // Success ```" +17945 area-Serialization Add 3 test cases for DataContractJsonSerializer @huanwu please help review the test code. +17948 area-Microsoft.CSharp Remove dead code from ExpressionBinder.BindAssignment() `ExpressionBinder.BindAssignment()` is only called from `RuntimeBinder.BindAssignment()` which creates the lhs expression with `BindProperty()`. This can (including paths through `CreateArray`, `bindIndexer`, `BindMethodGroupToArguments`, `BindToProperty`, `CreateIndexer`, `CreateProperty`, `CreateField` and `CreateEvent`) produce expressions of type `ExprCast`, `ExprArrayIndex`, `ExprCall`, `ExprProperty`, `ExprClass`, `ExprField` or `ExprEvent`. The path only reachable for this operand being `ExprLocal` is hence unreachable. Remove it and those methods only reached through it. This also means `fOp2NotAddrOp` and `fOp2WasCast` will never be true, so remove them and the path that depends on them. +17951 area-System.Net Fixes NRE when setting Size property of ContentDispositionHeaderValue +17953 area-System.Security Add XmlLicenseTransform E2E test (urn:mpeg:mpeg21:2003:01-REL-R-NS:licenseTransform) Last item in https://github.com/dotnet/corefx/issues/16781 +17955 area-Infrastructure Move ILLink targets and restore to buildtools In order to bring this up quickly and iterate on it we are starting out with it in CoreFx. Once its more stable we should move the targets and restore of the linker into buildtools. /cc @erozenfeld @sbomer +17956 area-System.Net Socket.LocalEndPoint is not cached Every time you retrieve the Socket.LocalEndPoint property, we do a kernel call to retrieve the local end point. Since this cannot change once the socket is open, we should cache this, as we do for RemoteEndPoint. (Or alternatively, we can get the endpoint directly from the result of the AcceptEx call, as we do for RemoteEndPoint. However, this may introduce some additional overhead in cases where LocalEndPoint is never accessed, so it's not clear this is the right tradeoff in all cases.) Retrieving the LocalEndPoint is not a common thing to do, so I don't think this issue is particularly urgent, but we should track it. (I hit this when doing the Kestrel-on-Sockets prototype -- for some reason Kestrel does seem to repeatedly retrieve the LocalEndPoint, and expects it to be cheap, which is not an unreasonable expectation. I worked around the issue by just caching the LocalEndPoint myself.) +17957 area-System.Net Need System.Net.Sockets tests for multicast We don't have any multicast tests that actually exercise the functionality. +17958 area-System.Net Fix IPv6 calls to GetMulticastOptionName in shim The wrong options were being set in the native shim due to an incorrect Boolean value. GetMulticastOptionName is used to translate the option name, with a Boolean indicating whether this is for IPv4 (false) or IPv6 (true), and false was being passed even for IPv6. (Note that I validated the repro in https://github.com/dotnet/corefx/issues/17870 failed before this change and passes after, but we have zero automated tests for multicast functionality, other than some surface area argument validation. I opened https://github.com/dotnet/corefx/issues/17957 to track adding some.) Fixes https://github.com/dotnet/corefx/issues/17870 cc: @geoffkizer, @Priya91, @pgavlin +17960 area-Infrastructure Verify System.ValueTuple package works on .NET Framework After https://github.com/dotnet/corefx/pull/17893 the System.ValueTuple package no longer has a ref\netstandard1.0 reference and now has a net463 reference. We should verify that this package still works as expected on .NET Framework < 4.6.3. I believe it will still work and pick the portable asset but just wanted us to double check once we get a package published after that PR. cc @jcouv @ericstj +17961 area-System.Globalization "win10-x64 vs ubuntu.14.04-arm CultureInfo.CreateSpecificCulture(""en-us"").DateTimeFormat.ShortDatePattern" "I am not sure that this is the correct place for this or if this is not a bug but a setting I need to change somewhere. In a publish for win10-x64, `CultureInfo.CreateSpecificCulture(""en-us"").DateTimeFormat.ShortDatePattern == ""M/d/yyyy""`. In a publish for ubuntu.14.04-arm, `CultureInfo.CreateSpecificCulture(""en-us"").DateTimeFormat.ShortDatePattern == ""M/d/yy""`. In mono on linux, `CultureInfo.CreateSpecificCulture(""en-us"").DateTimeFormat.ShortDatePattern == ""M/d/yyyy""`. The difference caused an exception during `DateTime.ParseExact(, ""G"", CultureInfo.CreateSpecificCulture(""en-us""))` on ubuntu.14.04-arm. `DateTime.ParseExact(, ""G"", CultureInfo.CreateSpecificCulture(""en-us""))` on win10-x64 worked fine. I used a kludge to detect/fix the incorrect ShortDatePattern. Any information would be great if I am doing something wrong. Thanks!" +17964 area-System.Threading Update/replace System.Threading.Tasks.Dataflow internal ConcurrentQueue with Concurrent.Collections changes Apparently, DataFlow has it's own copy of `ConcurrentQueue`, but this does not seem to have been updated with the great optimizations that @stephentoub did to the Concurrent.Collections version see: https://github.com/dotnet/corefx/blob/master/src/System.Threading.Tasks.Dataflow/src/Internal/ConcurrentQueue.cs Either update this with the changes or use Concurrent.Collections. +17966 area-Serialization Enable XmlSerializer to load the pregenerated serialization assembly +17975 area-Infrastructure Change netfx vertical test build and execution to be able to have helix runs I added bin placing to add test dependencies in the testhost folder instead of using the runtime/netfx folder. Also RunTests.cmd now will be called with the testhost parameter as a path and will set DEVPATH env variable to point to that path, and modified the xunit.console.exe.config to use DEVPATH to look for the test dependencies. This is needed to run in Helix. cc: @weshaggard @tarekgh @joperezr +17976 area-System.Drawing System.Drawing.Color has methods for Hue/Sat/Brightness, but actually calcs in HSL As per the[ HSL and HSV wiki](https://en.wikipedia.org/wiki/HSL_and_HSV): >HSL stands for hue, saturation, and lightness (or luminosity), and is also often called HLS. HSV stands for hue, saturation, and value, and is also often called HS**B** (B for *brightness*). (Emphasis my own) `System.Drawing.Color` has methods for `GetHue()`, `GetSaturation()`, and `GetBrightness()`. One might assume that these methods would then return values using the `HSV/HSB` format, however they do not. They are using `HSL`. This is not really intuitive (especially as this doesn't seem to be documented). Appreciate changing how they work is unlikely to fly due to back compat. +17977 area-System.Net Implement HttpListenerTimeoutManager properties where possible for Managed. From @stephentoub in response to a question about implementing HttpListenerTimeoutManager: The timeout manager isn’t just one thing: it’s a collection of various timeouts. And some of them can be implemented: - Likely can: o DrainEntityBody: I’m not aware of any reason we couldn’t do this. But IIRC, we’re not doing connection pooling, so it’s largely irrelevant, and we shouldn’t be throwing a PNSE from it, as it doesn’t really matter what the timeout value is. o EntityBody: We should be able to support this. It’s a matter of how long we wait in socket receives to receive the full body. o HeaderWait: Similarly, we can time how long it takes to receive and parse the headers. o IdleConnection: Not relevant if we’re not connection pooling… again, throwing PNSE here seems like overkill. o MinSendBytesPerSecond: We can also time this and do the appropriate calculations. This is all about the sends that we issue. - Likely can’t: o RequestQueue: I don’t believe we have access to the listen queue in the OS. +17978 area-System.Net System.NullReferenceException in System.Net.Http.CurlHandler.CurlResponseStream.SignalComplete(Exception error, Boolean forceCancel) We are seeing application crashes while running a .NET Core 1.1 application on Ubuntu with the following stack trace: ``` Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object. at System.Net.Http.CurlHandler.CurlResponseStream.SignalComplete(Exception error, Boolean forceCancel) at System.Net.Http.CurlHandler.CurlResponseStream.Dispose(Boolean disposing) at System.Net.Http.CurlHandler.CurlResponseStream.Finalize() ``` As far as I can tell, throwing an exception inside `Dispose` is a pretty bad idea -- this is amplified by the fact that there is no way to catch the exception thrown by a finalizer. +17980 area-System.Net NullReferenceException thrown getting InputStream from HttpListener "```cs class Program { static async Task Test() { string uri = ""http://localhost:9200/""; HttpListener listener = new HttpListener(); listener.Prefixes.Add(uri); listener.Start(); using (ClientWebSocket client = new ClientWebSocket()) { UriBuilder uriBuilder = new UriBuilder(uri) { Scheme = ""ws"" }; Task serverContextTask = listener.GetContextAsync(); Task clientConnectTask = client.ConnectAsync(uriBuilder.Uri, CancellationToken.None); HttpListenerContext listenerContext = await serverContextTask; HttpListenerWebSocketContext wsContext = await listenerContext.AcceptWebSocketAsync(null); await clientConnectTask; HttpListenerRequest request = listenerContext.Request; Stream stream = request.InputStream; } listener.Stop(); } static void Main() { Test().Wait(); } } ``` Stack trace: ``` System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Net.HttpListenerRequest.get_ContentLength64() at System.Net.HttpListenerRequest.get_HasEntityBody() at System.Net.HttpListenerRequest.get_InputStream() ``` I think this is a pretty serious bug - it makes reading any input from HttpListener's tream broken. Netfx works, obviously. I've got a fix for this, and adding tests (as per #13618) The reference source is: ``` if (HttpWebRequest.ChunkedHeader.Equals(GetKnownHeader(HttpRequestHeader.TransferEncoding) ``` However, the .NET core is ``` if (GetKnownHeader(HttpRequestHeader.TransferEncoding).Equals(HttpWebRequest.ChunkedHeader)) ``` This is *not* the same!" +17982 area-System.Linq No test result generated under System.Linq.Parallel.Tests No test result generated, detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170406.01/workItem/System.Linq.Parallel.Tests/wilogs +17983 area-System.IO "Test failure: System.IO.Tests.DirectoryInfo_Create/PathWithInvalidCharactersAsPath_ThrowsArgumentException(invalidPath: \""\\\\\\\\?\\\\\"")" "Opened on behalf of @Jiayili1 The test `System.IO.Tests.DirectoryInfo_Create/PathWithInvalidCharactersAsPath_ThrowsArgumentException(invalidPath: \""\\\\\\\\?\\\\\"")` has failed. Assert.Throws() Failure\r Expected: typeof(System.IO.IOException)\r Actual: typeof(System.UnauthorizedAccessException): Access to the path '\\\\?\\' is denied. Stack Trace: at System.IO.Win32FileSystem.CreateDirectory(String fullPath) at System.IO.Tests.DirectoryInfo_Create.Create(String path) Build : Master - 20170406.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170406.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.DirectoryInfo_Create~2FPathWithInvalidCharactersAsPath_ThrowsArgumentException(invalidPath:%20%5C%22%5C%5C%5C%5C%5C%5C%5C%5C%3F%5C%5C%5C%5C%5C%22)" +17984 area-System.IO "Tests under System.IO.FileSystem.Tests failed with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.DirectoryInfo_EnumDir_str_str/InvalidPath` has failed. System.IO.IOException : DriveName: C:\\ ErrorCode:5 Stack Trace: at IOServices.GetDriveFormat(String driveName) at System.IO.Tests.Directory_GetFileSystemEntries_str.InvalidPath() Build : Master - 20170406.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170406.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.DirectoryInfo_EnumDir_str_str~2FInvalidPath +17985 area-System.IO "Test: System.IO.Tests.FileSystemWatcherTests/FileSystemWatcher_Path failed with ""System.ArgumentException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.FileSystemWatcherTests/FileSystemWatcher_Path` has failed. System.ArgumentException : The directory name .. is invalid. Stack Trace: at System.IO.FileSystemWatcher.set_Path(String value) at System.IO.Tests.FileSystemWatcherTests.FileSystemWatcher_Path() Build : Master - 20170406.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170406.01/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.FileSystemWatcherTests~2FFileSystemWatcher_Path +17986 area-System.Net HttpClientHandler.MaxAutomaticRedirections default value test fails on UWP Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/Ctor_ExpectedDefaultPropertyValues` has failed. Assert.Equal() Failure\r Expected: 50\r Actual: 10 Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandlerTest.Ctor_ExpectedDefaultPropertyValues() Build : Master - 20170406.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170406.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FCtor_ExpectedDefaultPropertyValues +17987 area-System.Net Test failure: System.Net.Tests.AuthenticationTests/TestAnonymousAuthentication Opened on behalf of @Jiayili1 The test `System.Net.Tests.AuthenticationTests/TestAnonymousAuthentication` has failed. System.AggregateException : One or more errors occurred. (Object reference not set to an instance of an object.) (Object reference not set to an instance of an object.)\r ---- System.NullReferenceException : Object reference not set to an instance of an object.\r ---- System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: ----- Inner Stack Trace #1 (System.NullReferenceException) ----- at System.Net.Tests.AuthenticationTests.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace #2 (System.NullReferenceException) ----- at System.Net.Tests.AuthenticationTests.Dispose() at ReflectionAbstractionExtensions.DisposeTestClass(ITest test, Object testClass, IMessageBus messageBus, ExecutionTimer timer, CancellationTokenSource cancellationTokenSource) Build : Master - 20170406.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170406.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.AuthenticationTests~2FTestAnonymousAuthentication +17988 area-System.Net "Tests under: System.Net.Tests.HttpListenerTimeoutManagerWindowsTests failed with ""System.Net.HttpListenerException""" Opened on behalf of @Jiayili1 The test `System.Net.Tests.HttpListenerTimeoutManagerWindowsTests/DrainEntityBody_SetTimeoutAfterStart_GetReturnsNewValue` has failed. System.Net.HttpListenerException : The handle is invalid Stack Trace: at System.Net.HttpListener.SetupV2Config() at System.Net.HttpListener.Start() at System.Net.Tests.HttpListenerTimeoutManagerWindowsTests.DrainEntityBody_SetTimeoutAfterStart_GetReturnsNewValue() Build : Master - 20170406.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170406.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpListenerTimeoutManagerWindowsTests~2FDrainEntityBody_SetTimeoutAfterStart_GetReturnsNewValue +17989 area-System.Net "Tests under: System.Net.Mail.Tests.SmtpClientTest failed with ""System.PlatformNotSupportedException""" Opened on behalf of @Jiayili1 The test `System.Net.Mail.Tests.SmtpClientTest/DeliveryMethodTest(method: PickupDirectoryFromIis)` has failed. System.PlatformNotSupportedException : Operation is not supported on this platform. Stack Trace: at System.Net.NetworkInformation.NetNativeIPGlobalProperties.get_HostName() at System.Net.Mail.SmtpClient.Initialize() at System.Net.Mail.SmtpClient..ctor() at System.Net.Mail.Tests.SmtpClientTest.get_Smtp() at System.Net.Mail.Tests.SmtpClientTest.DeliveryMethodTest(SmtpDeliveryMethod method) Build : Master - 20170406.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170406.01/workItem/System.Net.Mail.Functional.Tests/analysis/xunit/System.Net.Mail.Tests.SmtpClientTest~2FDeliveryMethodTest(method:%20PickupDirectoryFromIis) +17990 area-System.Net "Tests under: System.Net.NameResolution.Tests.InitializationTests failed with ""Xunit.Sdk.NotEqualException""" Opened on behalf of @Jiayili1 The test `System.Net.NameResolution.Tests.InitializationTests/Dns_BeginGetHostAddresses_CallSocketInit_Ok` has failed. Assert.NotEqual() Failure\r Expected: Not 0\r Actual: 0 Stack Trace: Build : Master - 20170406.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170406.01/workItem/System.Net.NameResolution.Unit.Tests +17992 area-System.Net "Tests under: System.Net.NetworkInformation.Tests.IPInterfacePropertiesTest_Windows failed with ""System.NotImplementedException""" Opened on behalf of @Jiayili1 The test `System.Net.NetworkInformation.Tests.IPInterfacePropertiesTest_Windows/IPInfoTest_AccessAllIPv4Properties_NoErrors` has failed. System.NotImplementedException : The method or operation is not implemented. Stack Trace: at System.Net.NetworkInformation.NetNativeNetworkInterface.GetNetworkInterfaces() at System.Net.NetworkInformation.Tests.IPInterfacePropertiesTest_Windows.IPInfoTest_AccessAllIPv4Properties_NoErrors() Build : Master - 20170406.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170406.01/workItem/System.Net.NetworkInformation.Functional.Tests/analysis/xunit/System.Net.NetworkInformation.Tests.IPInterfacePropertiesTest_Windows~2FIPInfoTest_AccessAllIPv4Properties_NoErrors +17993 area-System.Net Test failure: System.Net.NetworkInformation.Unit.Tests.NetworkInterfaceTest/GetIsNetworkAvailable_ConnectionProfileNotPresent_ReturnsFalse Opened on behalf of @Jiayili1 The test `System.Net.NetworkInformation.Unit.Tests.NetworkInterfaceTest/GetIsNetworkAvailable_ConnectionProfileNotPresent_ReturnsFalse` has failed. Assert.False() Failure\r Expected: False\r Actual: True Stack Trace: Build : Master - 20170406.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170406.01/workItem/System.Net.NetworkInformation.WinRT.Unit.Tests/analysis/xunit/System.Net.NetworkInformation.Unit.Tests.NetworkInterfaceTest~2FGetIsNetworkAvailable_ConnectionProfileNotPresent_ReturnsFalse +17994 area-System.Net "Tests under: System.Net.Security.Tests failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.NegotiateStreamStreamToStreamTest_Async/NegotiateStream_StreamToStream_Authentication_Success` has failed. Assert.Equal() Failure\r Expected: True\r Actual: False Stack Trace: at System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_Authentication_Success() Build : Master - 20170406.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170406.01/workItem/System.Net.Security.Tests +17995 area-System.Net Test failure: System.Net.Tests.WebProxyTest/BypassOnLocal_MatchesExpected Opened on behalf of @Jiayili1 The test `System.Net.Tests.WebProxyTest/BypassOnLocal_MatchesExpected` has failed. System.PlatformNotSupportedException : Operation is not supported on this platform. Stack Trace: at System.Net.NetworkInformation.NetNativeIPGlobalProperties.get_DomainName() at System.Net.Tests.WebProxyTest.d__10.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() Build : Master - 20170406.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170406.01/workItem/System.Net.WebProxy.Tests/analysis/xunit/System.Net.Tests.WebProxyTest~2FBypassOnLocal_MatchesExpected +17996 area-System.Reflection Test failure: System.Reflection.Tests.AssemblyTests/GetEntryAssembly Opened on behalf of @Jiayili1 The test `System.Reflection.Tests.AssemblyTests/GetEntryAssembly` has failed. Assert.StartsWith() Failure:\r Expected: xunit.console.netcore\r Actual: XUnit.Runner.Uap, Ver... Stack Trace: at System.Reflection.Tests.AssemblyTests.GetEntryAssembly() Build : Master - 20170406.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170406.01/workItem/System.Reflection.Tests/analysis/xunit/System.Reflection.Tests.AssemblyTests~2FGetEntryAssembly +17998 area-System.Threading Remove dead code for corefx - System.Threading.Tasks.Dataflow Remove dead code according to #17905 Change for System.Threading.Tasks.Dataflow: http://tempcoverage.blob.core.windows.net/report2/System.Threading.Tasks.Dataflow.diff.html +17999 area-System.Net Add HttpListener tests and fix a porting bug This covers `HttpListenerRequestStream` and `HttpListenerResponseStream`. The tests will fail with NulLReferenceExceptions without Commit 2, which fixes #17980, a bug caused porting HttpListener to corefx. @Priya91 @davidsh @CIPop +18000 area-System.Net "HttpClient Error ""An internal response size limit was exceeded""" "Hello, I got an error ""An internal response size limit was exceeded"" when calling SendAsync method in HttpClient Is it about buffer size or what? try to set MaxResponseContentBufferSize but no luck." +18002 area-Meta Question: How to version dotnet core assemblies Forgive me if this is not the appropriate channel for a question. I'm trying to figure out how to version (and retrieve) assembly versions in dotnet core (both build and publish). I've been searching for documentation on this, but I've come up empty. Below are some things I've tried. `dotnet publish /p:Version=3.0.1` (where [Version]3.0.0[/Version] is defined in csproj) `dotnet publish --version-suffix 1` (where [VersionPrefix]3.0[/VersionPrefix] is defined in csproj) I'm retrieving the version using the following code: `typeof(ReflectionUtils).GetTypeInfo().Assembly.GetName().Version.ToString();` ReflectionUtils is an arbitrary type in my assembly. No matter what I try, the version retrieved from the above line shows 3.0.0.0. Can anyone point out what I'm doing wrong, or point me in the direction of a page that explains some of this stuff more fully? +18004 area-Microsoft.CSharp Refactor Microsoft.CSharp.RuntimeBinder.Semantics.BindingContext Remove `BindingContext` fields that always have the same value. A great many fields are passed around, and sometimes used, but only ever set to the same value. Remove `OutputContext`, as `m_bUnsafeErrorGiven` is only field remaining and can just be property of `BindingContext`. Inline the constant values into expressions using them, and remove any code made dead by this. Since this removes `ExprThisPointer`, `ExprLocal` can now be sealed. Remove `CheckedContext`: Offers no more functionality over the base as the related properties are writeable there. Rename BindingContextBase.cs to BindingContext.cs More appropriate, and available after removing `CheckedContext`. Make `ReportUnsafeErrors` a property, and have it rather than `UnsafeErrorGiven` store state. Members to properties or auto-properties where appropriate. Move ctor asserts up to calling factory methods. Remove no-op assignments of defaults in ctors. Don't assign to CheckedNormal and CheckedConstant in ctor, as always to false. Remove static factories and just call ctors. Tidy up comments. +18006 area-Infrastructure CI failure to clone repository in Innerloop OSX10.12 tests E.g. https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug_prtest/1240/ and https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release_prtest/1243/ Doesn't seem to be affecting all such builds, but is affecting a lot of them. +18008 area-System.Net Fix race condition in HttpClient on Unix when canceling a request It looks like it's possible in a rare situation for the following to occur and result in a NullReferenceException when finalizing a request: - HttpClient.SendAsync is called, which creates an EasyRequest. That EasyRequest isn't yet associated with a MultiAgent. - The request is queued to the MultiAgent. - Between the time that the request is queued and it's handled, the associated CancellationToken has cancellation requested. - When the agent then processes the request, in ActivateNewRequest it'll see that cancellation has been requested and will immediately bail, before associating the easy request with the agent. - Everything is dropped and eventually finalized. At that point the response stream's finalizer is invoked, it calls SignalComplete(..., forceCancel:true), and that dereferences _associatedMultiAgent in order to issue a cancellation request... but _associatedMultiAgent hasn't yet been set. There's no reason _associatedMultiAgent's initialization needs to be deferred until the EasyRequest is picked up by the agent. We can instead make _associatedMultiAgent a readonly field that's initialized to the associated agent when the EasyRequest is constructed, so it won't be null even in such a situation. I've not actually been able to repro the reported issue, so this is a speculative fix, but is goodness regardless. I can't see any other way a null ref could happen in the finalizer as reported. I did also clean up a few accesses in the same method, but there's shouldn't be any way those could have caused a null ref, due to the locking and checking being employed. Fixes https://github.com/dotnet/corefx/issues/17978 (I hope) cc: @geoffkizer, @Priya91 +18009 area-System.Security Security.Cryptography tests are failing on portable Linux runs [System.Security.Cryptography.Algorithms.Tests](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170406.01/workItem/System.Security.Cryptography.Algorithms.Tests) (see page 2 on that link) [System.Security.Cryptography.OpenSsl.Tests](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170406.01/workItem/System.Security.Cryptography.OpenSsl.Tests) are failing in our portable linux-x64 build test runs on a few different linux distros in Helix. These tests are passing for the distro-specific build runs. We should investigate why they are failing and fix them. I dug into one: TestExplicitCurves(curveDef: CurveDef { Curve = System.Security.Cryptography.ECCurve, CurveType = Characteristic2, IncludePrivat... And see it failed with: Interop+Crypto+OpenSslCryptographicException : error:0D06407A:asn1 encoding routines:a2d_ASN1_OBJECT:first num too large ### Note Here are the distro-specific build run logs: [System.Security.Cryptography.Algorithms.Tests distro-specific](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170406.02/workItem/System.Security.Cryptography.Algorithms.Tests) [System.Security.Cryptography.OpenSsl.Tests distro-specific](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170406.02/workItem/System.Security.Cryptography.OpenSsl.Tests) /cc @janvorli @bartonjs @steveharter +18011 area-System.Linq Prohibit Expression.ListBind with members of open generic types. Contributes to #8081 +18012 area-System.IO Serial Port support on Unix/OSX Support the existing Windows API on OSX/Linux machines. Original Windows thread was https://github.com/dotnet/corefx/issues/984 Any volunteers interested in starting to scope this out? Please thumbs up if you would use this library. @willdean +18013 area-System.Net HttpClient does not properly parse all Set-Cookie headers Hello, I'm currently trying to build a .Net Core application that automates some HTTP requests. In the first request I receive several cookies which should be sent back to the server on the second request. For demonstration purposes I have created a small PHP script that sends some `Set-Cookie` headers similar to the style I receive them from the actual application. The source code of this script is https://gist.github.com/Nothing4You/6623cda16eb2c2c5b4d3d9106b95a6ce. You can find a live version at https://hosting.rep.pm/cookietest.php. I have tested the script using a web browser (Firefox), curl (in a linux shell) aswell as using python requests, which all handle cookies and show me the expected output in the second request: ``` Cookie[test1]: test1value Cookie[test2]: test=2&value=2 Cookie[test3]: $test-3 Cookie[test4]: test4 ``` However, if I try to do the same thing using `System.Net.Http.HttpClient` it only sets the 2 out of 4 cookies. According to Visual Studio I'm using SDK version 1.1.1. HttpClient is the following version: ``` Assembly: System.Net.Http, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Assembly location: .nuget\packages\system.net.http\4.3.0\ref\netstandard1.3\System.Net.Http.dll ``` Example code: https://gist.github.com/Nothing4You/c04af6781f8520efb4921ef144733731 +18015 area-Serialization Potential ArgumentNullException in Microsoft.XmlSerializer.Generator In Microsoft.XmlSerializer.Generator code, `TempAssembly._assembly` is never being assigned to and will alwaybe null. This causes ArgumentNullException [here](https://github.com/dotnet/corefx/blob/39514943cac0ca081894ac0763c2a91d30345e52/src/System.Private.Xml/src/System/Xml/Serialization/Compilation.cs#L130) cc: @huanwu @shmao, @zhenlan +18016 area-System.Security RSA SignHash either seg faults or doesn't throw when no key on Unix The following tests have been disabled because they don't work on Unix: - System.Security.Cryptography.Csp.Tests.SignHash_BadAlgorithm - System.Security.Cryptography.Csp.Tests.SignHash_WrongSizeHash - System.Security.Cryptography.Csp.Tests.SignHash_PublicKey They either result in a seg fault, or don't throw an exception as expected. This was found during the implementation of https://github.com/dotnet/corefx/issues/16585 which enables RSACryptoServiceProvider for Unix. It is likely an issue with native interop when passing in a key with no information. The tests all use Array.Empty for the data. Passing in null instead is caught earlier in managed code, so there is not an issue with that. Also, similar validation tests should be added to the common RSA tests instead, so that the classes in System.Security.Algorithms also are tested for this. In addition, verify that DSA and ECDsa types don't have similar issues. +18017 area-System.Drawing API Proposal: Support operators * / on type Size types Size types (System.Drawing.Size, etc) represents a value that can be scaled up and down by multiplication and division. A common scenario for this is scaling. Today, this involves taking the parts, doing the math individually, and then creating a new value. Size, and related Size structs, should support * and / with both double and integer types. This proposal should mirror https://github.com/dotnet/corefx/issues/7175 ## Proposed API ```C# namespace System.Drawing { public partial struct Size { public Size operator*(int left, Size right); public Size operator*(Size left, int right); public Size operator/(Size left, int right); public SizeF operator *(float left, Size right); public SizeF operator *(Size left, float right); public SizeF operator /(Size left, float right); } public partial struct SizeF { public SizeF operator*(float left, SizeF right); public SizeF operator*(SizeF left, float right); public SizeF operator/(SizeF left, float right); } } ``` +18018 area-System.Diagnostics Activity: typo, spelling and documentation fixes +18023 area-System.IO Serial Port support for Raspberry Pi with Windows IoT "This issue was created to continue the discussion on further support of SerialPort related APIs for other platforms/devices. You can see related issues below: [Serial Port support on Windows](https://github.com/dotnet/corefx/issues/984) [Serial Port support on Unix/OSX](https://github.com/dotnet/corefx/issues/18012) I actually don't know what the ultimate expectation is for this topic as I hope others would chime in with better scenarios. This will hopefully help contributors understand requirements when improving the APIs to support said features. For example, what does ""support on RPi"" really mean? If it runs under Windows IoT, does that mean support for UWP? If support comes for Unix/OSx, does that mean the APIs will work running on Alpine/Ubuntu? And how about Docker support? There were also discussions on using the on-board UART or using USB (e.g. FTDI, etc.) dongles. Community, please add thoughts to get SerialPort APIs working in other areas in addition to Windows. Thanks in advance. FYI... @willdean @JeremyKuhne @karelz @danmosemsft " +18024 area-System.Security Support Unix in System.Security.Cryptography.Csp Per https://github.com/dotnet/corefx/issues/16585 support Unix in the Csp assembly; previously PNSE was thrown for every member. There was some refactoring to break apart the shared, windows-only and unix-only code. Also several files were renamed to have *.Windows.cs or *.Shared.cs, and Unix-only files were added with *.Unix.cs. +18025 area-System.Reflection Fix xunit name Fix https://github.com/dotnet/corefx/issues/17996 +18026 area-System.Net Fix and enable NetworkStream.Dispose test on Unix Closes https://github.com/dotnet/corefx/issues/16611 cc: @geoffkizer +18029 area-Infrastructure CLI for Alpine is broken The CLI for Alpine claims to contain the 1.1.0 shared framework but it is not. It's some 1.0.0 version in a folder that's been renamed. This is causing anything that depended on 1.1.0 surface area / assembly versions to fail. +18033 area-System.Security Fix portable System.Security.Cryptography.Native EC2M issue We are building the portable dotnet core on the oldest Linux distro we support, which is currently RHEL7.2. But the OpenSSL on that distro doesn't support the EC2M functions and so it effectively disables them for the portable dotnet core on all Linux distros. This change fixes it by adding copies of declarations of the five missing functions to opensslshim.h if they are not found at the compile time. That enables the shim to be able to use those functions on all distros that support them. +18035 area-Infrastructure Move corefx onto the .NET Core 2.0 toolset "The latest version of buildtools allows a 2.0 CLI to be used. This change pulls in that version of buildtools and updates corefx to use the 2.0 CLI for restoring nuget packages and running our shared tools. * All of the project.json(.template) files under `external` have been converted to use `PackageReference` items directly defined in the depproj files. The versions for these references are based on pre-existing properties defined in dependencies.props. When we take future version update PR's, we should only see changes in that single file. * packageresolve.targets was modified so that the paths for the MSBuild project to be restored, as well as the ""project.assets.json"" file (the lock file, essentially). Note that the property for the projec to be restored is still called `ProjectLockJson`, although it represents an MSBuild project. I'll look into cleaning this up, I just need to make sure there's no stray references to ""ProjectLockJson"" remaining. * There are a bunch of new calls to `chmod` here and there. This is because .NET Core 2.0 (which we now restore all packages with, and run the build on) does not preserve executable flags in Unix files, by design. We need to mark our programs as executable before we try to use them. * NuGet now restores all packages into folders with lower-case names. This needed to be accounted for in a variety of different places. * ~~I've brought back the ""hack"" where we pre-build CoreFx.Tools.dll before running the full product build. This is necessary due to changes in the CLI. Technically this will go away when we move CoreFx.Tools.dll into buildtools.~~ Never mind. We don't need that. NOTE: This is not going to work on Alpine right now, because there is no 2.0 CLI being produced for it. Everything should be in place to do, so, though, so hopefully we can turn that on shortly. @ericstj , @weshaggard, @joperezr " +18036 area-System.Net HttpWebRequest.SendRequest fails on UAP due to settting MaxResponseHeadersLength The UAP specific code in https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/netcore50/System/Net/HttpClientHandler.cs will throw PlatformNotSupportedException if the MaxResponseHeadersLength is to set. This is simliar to #17812 +18037 area-System.Net Disable HttpRequest.MaxResponseHeadersLength PNSE for UWP. This is necessary for app-compat , apps fails because of PNSE exception.This is a workaround till we get the correct fix, see #18036. @davidsh @CIPop @vitek-karas +18040 area-Infrastructure Fix package cycle in System.Reflection.TypeExtensions /cc @weshaggard @pranavkm +18041 area-System.Net Expose S.N.NetworkInformation to UWP As in https://github.com/dotnet/corefx/pull/17970, deleting the stub gives us (1) a list of any pinvoke violations (2) test coverage in appcontainer -- we can fix actual bugs now. @davidsh @CIPop @stephentoub +18042 area-System.Xml Remove dead code in System.Private.Xml Unreachable implementations inside System.Private.Xml were discovered by BclRewriter and removed with help of the CodeRemover tool. ~~There were also many public types in `System.Xml.Xsl.Runtime` namespace that were not exposed in the Xml contracts. All of those were made internal.~~ (Related issue: https://github.com/dotnet/corefx/issues/16825) System.Private.Xml contains implementations from both System.Xml.dll and System.Data.SqlXml.dll on Desktop. Here's how the sizes look now: 2,657,952 System.XML.dll 734,416 System.Data.SqlXml.dll 3,534,336 System.Private.Xml.dll cc: @danmosemsft @weshaggard +18043 area-Infrastructure Update buildtoolsversion and copy config file over to test folder Changed the way we where generating the config file for desktop runners from WritingAllLines task to Copy from buildtools static file. cc: @weshaggard @tarekgh @joperezr +18044 area-System.Data Adding DAC support to Managed SNI I added DAC support to Managed SNI. Now user can connect to SQL Server as Dedicated Administrator Connection by adding `admin:` at the beginning of connection string. Integrated Authentication also works in DAC support. +18048 area-System.Runtime "Test: System.Tests.EnvironmentTests/GetFolderPath_Windows failed with ""Xunit.Sdk.NotEmptyException""" Opened on behalf of @Jiayili1 The test `System.Tests.EnvironmentTests/GetFolderPath_Windows(folder: AdminTools)` has failed. Assert.NotEmpty() Failure Stack Trace: at System.Tests.EnvironmentTests.GetFolderPath_Windows(SpecialFolder folder) Build : Master - 20170407.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170407.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.EnvironmentTests~2FGetFolderPath_Windows(folder:%20AdminTools) +18049 area-System.Runtime "Test: System.Tests.Environment_Exit/CheckExitCode failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Tests.Environment_Exit/CheckExitCode(expectedExitCode: -1)` has failed. Assert.Equal() Failure\r Expected: -1\r Actual: -1073740791 Stack Trace: at System.Tests.Environment_Exit.CheckExitCode(Int32 expectedExitCode) Build : Master - 20170407.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170407.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.Environment_Exit~2FCheckExitCode(expectedExitCode:%20-1) +18050 area-System.Runtime "Tests under: System.Tests.SetEnvironmentVariable failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Tests.SetEnvironmentVariable/Default(target: User)` has failed. only machine target should have access issues\r Expected: True\r Actual: False Stack Trace: at System.Tests.SetEnvironmentVariable.ExecuteAgainstTarget(EnvironmentVariableTarget target, Action action, Action cleanUp) Build : Master - 20170407.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170407.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.SetEnvironmentVariable~2FDefault(target:%20User) +18051 area-System.Runtime "Tests under: System.Reflection.Tests.AssemblyTests failed with ""System.NotSupportedException""" Opened on behalf of @Jiayili1 The test `System.Reflection.Tests.AssemblyTests/AssemblyLoadFromBytes` has failed. System.NotSupportedException : Assembly.Load(byte[], ...) is not supported in AppX. Stack Trace: at System.AppDomain.CheckLoadByteArraySupported() at System.Reflection.Assembly.Load(Byte[] rawAssembly, Byte[] rawSymbolStore) at System.Reflection.Assembly.Load(Byte[] rawAssembly) at System.Reflection.Tests.AssemblyTests.AssemblyLoadFromBytes() Build : Master - 20170407.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170407.01/workItem/System.Runtime.Tests/analysis/xunit/System.Reflection.Tests.AssemblyTests~2FAssemblyLoadFromBytes +18052 area-System.Runtime "Test failure: System.Tests.GuidTests/Parse_Invalid_Netfx(input: \""{0xdddddddd, 0xdddd, 0xdddd,{0xdd0xdd,0xdd,0xdd,0x\""..., exceptionType: typeof(System.FormatException))" "Opened on behalf of @Jiayili1 The test `System.Tests.GuidTests/Parse_Invalid_Netfx(input: \""{0xdddddddd, 0xdddd, 0xdddd,{0xdd0xdd,0xdd,0xdd,0x\""..., exceptionType: typeof(System.FormatException))` has failed. Assert.Throws() Failure\r Expected: typeof(System.FormatException)\r Actual: (No exception was thrown) Stack Trace: at System.Tests.GuidTests.Parse_Invalid_Netfx(String input, Type exceptionType) Build : Master - 20170407.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170407.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.GuidTests~2FParse_Invalid_Netfx(input:%20%5C%22%7B0xdddddddd,%200xdddd,%200xdddd,%7B0xdd0xdd,0xdd,0xdd,0x%5C%22...,%20exceptionType:%20typeof(System.FormatException))" +18053 area-System.Runtime "Tests under: System.Tests.StringTests failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Tests.StringTests/ToLower_TurkishI` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.Tests.StringTests.<>c.b__95_2() at System.Tests.Helpers.PerformActionWithCulture(CultureInfo culture, Action test) at System.Tests.StringTests.ToLower_TurkishI() Build : Master - 20170407.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170407.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.StringTests~2FToLower_TurkishI +18054 area-System.Security Test failure: WindowsIdentityTests/CloneAndProperties(cloneViaSerialization: False) Opened on behalf of @Jiayili1 The test `WindowsIdentityTests/CloneAndProperties(cloneViaSerialization: False)` has failed. System.UnauthorizedAccessException : Attempted to perform an unauthorized operation. Stack Trace: at System.Security.Principal.WindowsIdentity.get_AuthenticationType() at System.Security.Claims.ClaimsIdentity..ctor(IIdentity identity, IEnumerable`1 claims, String authenticationType, String nameType, String roleType) at System.Security.Principal.WindowsIdentity..ctor(WindowsIdentity identity) at WindowsIdentityTests.CloneAndProperties(Boolean cloneViaSerialization) Build : Master - 20170407.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170407.01/workItem/System.Security.Principal.Windows.Tests/analysis/xunit/WindowsIdentityTests~2FCloneAndProperties(cloneViaSerialization:%20False) +18055 area-System.Security Test failure: WindowsIdentityTests/ConstructorsAndProperties Opened on behalf of @Jiayili1 The test `WindowsIdentityTests/ConstructorsAndProperties` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at WindowsIdentityTests.ConstructorsAndProperties() Build : Master - 20170407.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170407.01/workItem/System.Security.Principal.Windows.Tests/analysis/xunit/WindowsIdentityTests~2FConstructorsAndProperties +18057 area-System.Text Test failure: System.Text.RegularExpressions.Tests.RegexMatchTests/Match_SpecialUnicodeCharacters Opened on behalf of @Jiayili1 The test `System.Text.RegularExpressions.Tests.RegexMatchTests/Match_SpecialUnicodeCharacters` has failed. Assert.Equal() Failure\r Expected: False\r Actual: True Stack Trace: at System.Text.RegularExpressions.Tests.RegexMatchTests.VerifyMatch(Match match, Boolean expectedSuccess, String expectedValue) at System.Text.RegularExpressions.Tests.RegexMatchTests.Match(String pattern, String input, RegexOptions options, Int32 beginning, Int32 length, Boolean expectedSuccess, String expectedValue) at System.Text.RegularExpressions.Tests.RegexMatchTests.Match_SpecialUnicodeCharacters() Build : Master - 20170407.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170407.01/workItem/System.Text.RegularExpressions.Tests/analysis/xunit/System.Text.RegularExpressions.Tests.RegexMatchTests~2FMatch_SpecialUnicodeCharacters +18058 area-System.Threading "AllocateNativeOverlapped_PreAllocated_ReusedReturnedNativeOverlapped_OffsetLowAndOffsetHighSetToZero failed with ""System.ArgumentException""" Opened on behalf of @Jiayili1 The test `ThreadPoolBoundHandleTests/AllocateNativeOverlapped_BlittableTypeAsPinData_DoesNotThrow` has failed. System.ArgumentException : The handle is invalid.\r Parameter name: handle Stack Trace: at System.Threading.ThreadPoolBoundHandle.BindHandle(SafeHandle handle) at ThreadPoolBoundHandleTests.CreateThreadPoolBoundHandle(SafeHandle handle) at ThreadPoolBoundHandleTests.CreateThreadPoolBoundHandle() at ThreadPoolBoundHandleTests.AllocateNativeOverlapped_BlittableTypeAsPinData_DoesNotThrow() Build : Master - 20170407.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170407.01/workItem/System.Threading.Overlapped.Tests +18059 area-System.Xml "Tests under: System.Xml.Linq.TreeManipulation.Tests.XLinqTests.SaveWithFileName failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `XLinqTests.SaveWithFileName/XDocumentSave` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at XLinqTests.SaveWithFileName.XDocumentSave() Build : Master - 20170407.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170407.01/workItem/System.Xml.Linq.TreeManipulation.Tests/analysis/xunit/XLinqTests.SaveWithFileName~2FXDocumentSave +18060 area-System.Xml Test failure: System.Xml.Tests.TCXmlSchemaValidatorMisc/XSDValidationGeneratesInvalidError_1 Opened on behalf of @Jiayili1 The test `System.Xml.Tests.TCXmlSchemaValidatorMisc/XSDValidationGeneratesInvalidError_1` has failed. System.UnauthorizedAccessException : Access to the path 'C:\\dotnetbuild\\work\\52381fec-489e-4a53-8303-cc6c2645de0d\\Work\\93817085-3283-42ba-938f-99eeb5fc84a0\\Unzip\\commonstructure.xsd' is denied. Stack Trace: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.Xml.XmlWriterSettings.CreateWriter(String outputFileName) at System.Xml.Tests.TCXmlSchemaValidatorMisc.CreateSchema1() at System.Xml.Tests.TCXmlSchemaValidatorMisc.XSDValidationGeneratesInvalidError_1() Build : Master - 20170407.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170407.01/workItem/System.Xml.XmlSchema.XmlSchemaValidatorApi.Tests/analysis/xunit/System.Xml.Tests.TCXmlSchemaValidatorMisc~2FXSDValidationGeneratesInvalidError_1 +18061 area-Serialization Add XmlSerializer test case @huanwu, @shmao , please help review the code. +18065 area-Meta Question: Best way to unit-test localisable error messages? Error messages can be localisable, which means that tests that compare the message with a fixed string are locale-dependent. So far whenever I've needed to examine a message I've either looked for a particular substring (which will serve my needs right now too, but it set me wondering about general principles), or verified that messages from exceptions thrown one way match those thrown another. Is there a better approach to take here that doesn't build assumptions about locale into the unit test? +18066 area-Microsoft.CSharp Prohibit indexing of single-ranked non-SZ arrays in dynamic variables. Fixes #18062 Also: Make exception message match CS0022 on dynamic array index-count mismatch Fixes #18064 and included in this PR as it has to hit the same bit of code. +18069 area-System.Diagnostics MembersMustExist: System.Diagnostics.Debug.Listeners I am currently looking into differences between Core and Desktop and opening this issue as a child of https://github.com/dotnet/corefx/issues/15255#issuecomment-291137517 The following member is missing in corefx but is available in netfx: `MembersMustExist : Member 'System.Diagnostics.Debug.Listeners.get()' does not exist in the implementation but it does exist in the contract.` @joperezr: Would it make sense to port Listeners into corefx? It seems Xamarin is using it for Android: https://apisof.net/catalog/System.Diagnostics.Debug.Listeners. The types involved are TraceListenerCollection and TraceListener. Both are already in Core. Related issue: https://github.com/dotnet/corefx/issues/6196 +18070 area-Meta Removing overrides is also dangerous In the [Breaking Change Rules - Members](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/breaking-change-rules.md#members) it is mentioned: > * Introducing or removing an override > > Make note, that introducing an override might cause previous consumers to skip over the override when calling base. Removing an override will cause in throwing a `System.TypeLoadException` for types that are overriding that implementation. Here's a repo of these issues: https://github.com/paulomorgado/CSharpVirtualCallGotchas +18071 area-System.IO MembersMustExist: System.IO.IsolatedStorage I am currently looking into differences between Core and Desktop and opening this issue as a child of https://github.com/dotnet/corefx/issues/15255#issuecomment-291137517 The following members are missing in corefx but are available in netfx: ``` MembersMustExist : Member 'System.IO.IsolatedStorage.IsolatedStorage.GetPermission(System.Security.PermissionSet)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.IO.IsolatedStorage.IsolatedStorageFile.GetPermission(System.Security.PermissionSet)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.IO.IsolatedStorage.IsolatedStorageFile.GetStore(System.IO.IsolatedStorage.IsolatedStorageScope, System.Security.Policy.Evidence, System.Type, System.Security.Policy.Evidence, System.Type)' does not exist in the implementation but it does exist in the contract. ``` Related issue which talks about the GetStore member: https://github.com/dotnet/corefx/issues/10935 @JeremyKuhne @ianhays: Is it possible / Does it make sense to port those members to Core? Jeremy already talked about that GetStore needs refactoring and would take a week. What about the others? +18072 area-System.Reflection MembersMustExist: System.Reflection.Emit I am currently looking into differences between Core and Desktop and opening this issue as a child of https://github.com/dotnet/corefx/issues/15255#issuecomment-291137517 The following members are missing in corefx but are available in netfx: ``` MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.AddResourceFile(System.String, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.AddResourceFile(System.String, System.String, System.Reflection.ResourceAttributes)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.DefineDynamicModule(System.String, System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.DefineDynamicModule(System.String, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.DefineDynamicModule(System.String, System.String, System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.DefineResource(System.String, System.String, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.DefineResource(System.String, System.String, System.String, System.Reflection.ResourceAttributes)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.DefineUnmanagedResource(System.Byte[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.DefineUnmanagedResource(System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.DefineVersionInfoResource()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.DefineVersionInfoResource(System.String, System.String, System.String, System.String, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.Evidence.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.PermissionSet.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.Save(System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.Save(System.String, System.Reflection.PortableExecutableKinds, System.Reflection.ImageFileMachine)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.SetEntryPoint(System.Reflection.MethodInfo)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilder.SetEntryPoint(System.Reflection.MethodInfo, System.Reflection.Emit.PEFileKinds)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilderAccess System.Reflection.Emit.AssemblyBuilderAccess.ReflectionOnly' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilderAccess System.Reflection.Emit.AssemblyBuilderAccess.RunAndSave' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.AssemblyBuilderAccess System.Reflection.Emit.AssemblyBuilderAccess.Save' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ConstructorBuilder.AddDeclarativeSecurity(System.Security.Permissions.SecurityAction, System.Security.PermissionSet)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ConstructorBuilder.GetModule()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ConstructorBuilder.GetToken()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ConstructorBuilder.ReturnType.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ConstructorBuilder.SetMethodBody(System.Byte[], System.Int32, System.Byte[], System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerable)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ConstructorBuilder.SetSymCustomAttribute(System.String, System.Byte[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ConstructorBuilder.Signature.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.DynamicMethod.DefineParameter(System.Int32, System.Reflection.ParameterAttributes, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.DynamicMethod.GetDynamicILInfo()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.EnumBuilder.CreateType()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.EnumBuilder.TypeToken.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.EventBuilder.GetEventToken()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.FieldBuilder.GetToken()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.FieldBuilder.SetMarshal(System.Reflection.Emit.UnmanagedMarshal)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ILGenerator.EmitCalli(System.Reflection.Emit.OpCode, System.Runtime.InteropServices.CallingConvention, System.Type, System.Type[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ILGenerator.MarkSequencePoint(System.Diagnostics.SymbolStore.ISymbolDocumentWriter, System.Int32, System.Int32, System.Int32, System.Int32)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.LocalBuilder.SetLocalSymInfo(System.String, System.Int32, System.Int32)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.MethodBuilder.AddDeclarativeSecurity(System.Security.Permissions.SecurityAction, System.Security.PermissionSet)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.MethodBuilder.CreateMethodBody(System.Byte[], System.Int32)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.MethodBuilder.GetModule()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.MethodBuilder.GetToken()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.MethodBuilder.SetMarshal(System.Reflection.Emit.UnmanagedMarshal)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.MethodBuilder.SetMethodBody(System.Byte[], System.Int32, System.Byte[], System.Collections.Generic.IEnumerable, System.Collections.Generic.IEnumerable)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.MethodBuilder.SetSymCustomAttribute(System.String, System.Byte[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.MethodBuilder.Signature.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.DefineDocument(System.String, System.Guid, System.Guid, System.Guid)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.DefineManifestResource(System.String, System.IO.Stream, System.Reflection.ResourceAttributes)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.DefinePInvokeMethod(System.String, System.String, System.Reflection.MethodAttributes, System.Reflection.CallingConventions, System.Type, System.Type[], System.Runtime.InteropServices.CallingConvention, System.Runtime.InteropServices.CharSet)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.DefinePInvokeMethod(System.String, System.String, System.String, System.Reflection.MethodAttributes, System.Reflection.CallingConventions, System.Type, System.Type[], System.Runtime.InteropServices.CallingConvention, System.Runtime.InteropServices.CharSet)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.DefineResource(System.String, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.DefineResource(System.String, System.String, System.Reflection.ResourceAttributes)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.DefineUnmanagedResource(System.Byte[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.DefineUnmanagedResource(System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.GetArrayMethodToken(System.Type, System.String, System.Reflection.CallingConventions, System.Type, System.Type[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.GetConstructorToken(System.Reflection.ConstructorInfo)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.GetConstructorToken(System.Reflection.ConstructorInfo, System.Collections.Generic.IEnumerable)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.GetFieldToken(System.Reflection.FieldInfo)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.GetMethodToken(System.Reflection.MethodInfo)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.GetMethodToken(System.Reflection.MethodInfo, System.Collections.Generic.IEnumerable)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.GetSignatureToken(System.Byte[], System.Int32)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.GetSignatureToken(System.Reflection.Emit.SignatureHelper)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.GetSignerCertificate()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.GetStringConstant(System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.GetSymWriter()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.GetTypeToken(System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.GetTypeToken(System.Type)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.IsTransient()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.SetSymCustomAttribute(System.String, System.Byte[])' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ModuleBuilder.SetUserEntryPoint(System.Reflection.MethodInfo)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ParameterBuilder.GetToken()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.ParameterBuilder.SetMarshal(System.Reflection.Emit.UnmanagedMarshal)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.PropertyBuilder.PropertyToken.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.SignatureHelper.GetMethodSigHelper(System.Reflection.Module, System.Runtime.InteropServices.CallingConvention, System.Type)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.SignatureHelper.GetMethodSigHelper(System.Runtime.InteropServices.CallingConvention, System.Type)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.TypeBuilder.AddDeclarativeSecurity(System.Security.Permissions.SecurityAction, System.Security.PermissionSet)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.TypeBuilder.DefinePInvokeMethod(System.String, System.String, System.Reflection.MethodAttributes, System.Reflection.CallingConventions, System.Type, System.Type[], System.Runtime.InteropServices.CallingConvention, System.Runtime.InteropServices.CharSet)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.TypeBuilder.DefinePInvokeMethod(System.String, System.String, System.String, System.Reflection.MethodAttributes, System.Reflection.CallingConventions, System.Type, System.Type[], System.Runtime.InteropServices.CallingConvention, System.Runtime.InteropServices.CharSet)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.TypeBuilder.DefinePInvokeMethod(System.String, System.String, System.String, System.Reflection.MethodAttributes, System.Reflection.CallingConventions, System.Type, System.Type[], System.Type[], System.Type[], System.Type[][], System.Type[][], System.Runtime.InteropServices.CallingConvention, System.Runtime.InteropServices.CharSet)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Reflection.Emit.TypeBuilder.TypeToken.get()' does not exist in the implementation but it does exist in the contract. ``` @AtsushiKan @DnlHarvey: Is it possible / Does it make sense to port these members to Core or is it the same as with TypeInfo that the future for System.Reflection.Emit is unclear till netcoreapp20 release? See here: https://github.com/dotnet/corefx/pull/17603 +18073 area-System.Security MembersMustExist: System.Security.Principal I am currently looking into differences between Core and Desktop and opening this issue as a child of https://github.com/dotnet/corefx/issues/15255#issuecomment-291137517 The following members are missing in corefx but are available in netfx: ``` MembersMustExist : Member 'System.Security.Principal.IdentityReferenceCollection.IsReadOnly.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity..ctor(System.IntPtr, System.String, System.Security.Principal.WindowsAccountType)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity..ctor(System.IntPtr, System.String, System.Security.Principal.WindowsAccountType, System.Boolean)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity..ctor(System.Security.Principal.WindowsIdentity)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity..ctor(System.String, System.String)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity.DeviceClaims.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity.Impersonate()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity.Impersonate(System.IntPtr)' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsIdentity.UserClaims.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsPrincipal.DeviceClaims.get()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.Principal.WindowsPrincipal.UserClaims.get()' does not exist in the implementation but it does exist in the contract. ``` @bartonjs @steveharter: It is possible / Does it make sense to port these members to Core? They live in System.Security.Principal.Windows. https://apisof.net/catalog/System.Security.Principal.IdentityReferenceCollection +18074 area-System.Security MembersMustExist: System.Security.Cryptography.ECDsaCng I am currently looking into differences between Core and Desktop and opening this issue as a child of https://github.com/dotnet/corefx/issues/15255#issuecomment-291137517 The following member is missing in corefx but is available in netfx: `MembersMustExist : Member 'System.Security.Cryptography.ECDsaCng.VerifyData(System.IO.Stream, System.Byte[])' does not exist in the implementation but it does exist in the contract.` Related issue: https://github.com/dotnet/corefx/issues/17163. ECDsaCng are removed from netstandard but still live in netcore. @bartonjs @steveharter: Is it possible / Does it make sense to port this member to Core? I can't see any usage of it in netfx: https://apisof.net/catalog/System.Security.Cryptography.ECDsaCng.VerifyData(Stream,Byte()) +18075 area-System.ComponentModel MembersMustExist: System.ComponentModel.DataAnnotations I am currently looking into differences between Core and Desktop and opening this issue as a child of https://github.com/dotnet/corefx/issues/15255#issuecomment-291137517 The following member is missing in corefx but is available in netfx: `MembersMustExist : Member 'System.ComponentModel.DataAnnotations.ValidationContext.ServiceContainer.get()' does not exist in the implementation but it does exist in the contract.` @lajones @divega @ajcvickers: It is possible / Does it make sense to port this member to Core? The usage is like a non-existent here: https://apisof.net/catalog/System.ComponentModel.DataAnnotations.ValidationContext.ServiceContainer but is **the only missing member** from netfx in System.ComponentModel.DataAnnotations. +18076 area-Serialization Test Xml_HiddenDerivedFieldTest Failed in ReflectionOnly Mode ``` XmlSerializerTests.Xml_HiddenDerivedFieldTest [FAIL] 02:36:17 Roundtrip verification for HiddenDerivedField test failed 02:36:17 Expected: True 02:36:17 Actual: False 02:36:17 Stack Trace: 02:36:17 at XmlSerializerTests.Xml_HiddenDerivedFieldTest() 02:36:18 Finished: System.Xml.XmlSerializer.ReflectionOnly.Tests 02:36:18 02:36:18 === TEST EXECUTION SUMMARY === 02:36:18 /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/Tools/tests.targets(318,5): warning : System.Xml.XmlSerializer.ReflectionOnly.Tests Total: 155, Errors: 0, Failed: 1, Skipped: 0, Time: 2.519s ``` +18077 area-System.Security MembersMustExist: System.Security.SecurityContext I am currently looking into differences between Core and Desktop and opening this issue as a child of https://github.com/dotnet/corefx/issues/15255#issuecomment-291137517 The following members are missing in corefx but are available in netfx: ``` MembersMustExist : Member 'System.Security.SecurityContext.SuppressFlow()' does not exist in the implementation but it does exist in the contract. MembersMustExist : Member 'System.Security.SecurityContext.SuppressFlowWindowsIdentity()' does not exist in the implementation but it does exist in the contract. ``` @bartonjs @steveharter: It is possible / Does it make sense to port these members to Core? +18078 area-System.Security MembersMustExist: System.Security.SecurityException I am currently looking into differences between Core and Desktop and opening this issue as a child of https://github.com/dotnet/corefx/issues/15255#issuecomment-291137517 The following member is missing in corefx but is available in netfx: ``` MembersMustExist : Member 'System.Security.SecurityException.Zone.set(System.Security.SecurityZone)' does not exist in the implementation but it does exist in the contract. ``` @bartonjs @steveharter: It is possible / Does it make sense to port these members to Core? It lives in System.Runtime. https://apisof.net/catalog/System.Security.SecurityException.Zone +18079 area-System.Security MembersMustExist: System.Security.Cryptography.CspParameters I am currently looking into differences between Core and Desktop and opening this issue as a child of https://github.com/dotnet/corefx/issues/15255#issuecomment-291137517 The following member is missing in corefx but is available in netfx: ``` MembersMustExist : Member 'System.Security.Cryptography.CspParameters.CryptoKeySecurity.set(System.Security.AccessControl.CryptoKeySecurity)' does not exist in the implementation but it does exist in the contract. ``` @bartonjs @steveharter: It is possible / Does it make sense to port these members to Core? It lives in System.Security.Cryptography.Csp. https://apisof.net/catalog/System.Security.Cryptography.CspParameters +18080 area-System.Text Add 1252 codepage test case +18082 area-System.Security Improve negative alignment for asymmetric algs. Ensure that we get consistent (modulo HResult/exact message text) exceptions for negative experiences across each of the three implementations of the three asymmetric algorithms. RSA: * We should throw when decrypting with no private key * We should throw when signing with no private key * We should throw when signing and the hash value is the wrong size * We should throw ArgumentNullException on the null hash DSA: * We should throw when signing with no private key ECDSA: * We should throw when signing with no private key Fixes #18016. +18083 area-Infrastructure Testing of .NET Core final output "Today we have a gap around what we test. We test individual output from a single machine but never really test the final thing we're shipping after we bring all the stuff together. Folks upstack do this but not to the level that we would. We should at a minimum test the following things on a final MS.NETCore.App + shared framework out of core-setup. 1. API Compat between MS.NC.A and shared framework - all rids. [djm: runtime assets that are included in the CLI ... similar to apicompat does in the build at leaf level, but for non-Windows, and strictly limited to MS.NC.A] 2. API Compat between MS.NC.A and runtime packages - all rids. [djm: runtime assets that you get when publishing] 3. API Compat between Netstandard.Library and MS.NC.A. [djm: similar to what we do in the shims\apicompat.proj, but strictly limited to MS.NC.A] 4. API Compat between MS.NC.A and last stable version of the same. - ref assys (eg: 2.0 vs 1.1) [djm: this may not have been done before] 5. API Compat between shared framework and last stable version of the same - all rids. [djm: as above but for runtime -- this may not be easy to interpret, or relevant (?)] 6. API Compat between runtime packages and last stable version of the same - all rids. [djm: as for 5 but runtime packages - what you get when publishing] 7. CoreFx test compilation against MS.NC.A (and other stable packages) and execution against shared framework (and runtime packages) - all rids. [djm: will show any tests that depend on random binaries built by corefx that aren't in shared framework; also a sanity check of the real product] 8. Check that necessary baselines built by shims\apicompat.proj are clean. (This does not build by default.) [djm: sanity check] In all cases ""all rids"" mean all platforms we support and care to test, regardless of the granularity of our actual assets. In all cases MS.NC.A and runtime packages indicate the final packages which we publish. In all cases shared framework indicates the final installer/zip that we publish. /cc @weshaggard " +18084 area-Infrastructure Remove docker demand on 1.13.1 This needs to be removed because we are trying to complete upgrade to docker 17.03.0. Right now there is a single machine that has 1.13.1 on it for this build definition. +18085 area-Infrastructure Pass OfficialBuildId to build command to disable package overlap Enables https://github.com/dotnet/corefx/pull/18081. Also disables publish overwriting, which will ensure that there is no package overlap anymore. Also see https://github.com/dotnet/corefx/issues/16126. /cc @ericstj @MattGal @weshaggard +18086 area-System.Data Enable System.Data.SqlClient manual tests for desktop I enabled System.Data.SqlClient.ManualTests to run in desktop by adding a netstandard configuration instead of netcoreapp. cc: @weshaggard @joperezr @danmosemsft @saurabh500 +18087 area-System.Runtime Make it statically and dynamicaly discoverable if runtime supports assembly unloading Just thought of a runtime capability, that would be convenient to check for - ability to unload types/assemblies. I have seen many examples where code goes to great lengths trying to not retain runtime type objects - do not put types as keys (unless the type is a known primitive) in Dictionaries/Caches, do not cache delegates .... - That is with the assumption that retaining type objects will prevent assembly unloading. However, if I am not mistaken, only a few, if any, runtimes can actually unload types/assemblies. It would be helpful for the dynamic scenarios, to know if unloading is not possible and thus no need to worry about, for example, using type objects as keys in caches. # Proposed API (part of overall capability probing framework as in https://github.com/dotnet/corefx/issues/17116) ```C# public static readonly string CollectibleAssemblies = nameof(CollectibleAssemblies); ``` Any better name is more than welcome. Any already existing conventional way to probe for the above would be fine too. +18088 area-Infrastructure Downgrade warnings when referencing log4net in netcoreapp2.0 Copied from https://github.com/dotnet/corefx/issues/17278. log4net referenced a mix of 1.0 and 1.1 packages. When used in netcoreapp1.1 this didn't matter, since the netcore.app meta-package would lift all the packages up to 1.1. In netcoreapp2.0 this no longer happens due to our smaller package graph. The result is that the mix of 1.0 and 1.1 cause downgrade warnings when 1.1 package bring in the 1.1 lineup (Microsoft.NETCore.Targets). This is because the lineup brings in 1.1 versions for **all** split packages, including those 1.0 references from log4net. The 1.1 runtime packages reference 1.1 dependencies which ends up looking like a downgrade to nuget. We could fix this by shipping a new version of Microsoft.NETCore.Targets in netcoreapp2.0 which has no lineup info in its runtime.json. That would have the added benefit of reducing the download for mixed 1.x/2.0 projects, reducing the package graph, and thus our reliance on conflict resolution. The downside is that it would grow the package graph slightly. @weshaggard @terrajobst what do you think? +18091 area-System.Collections Add TryAdd/Remove extension methods in CollectionExtensions Adding `TryAdd` and `Remove` to `CollectionExtensions`. Hopefully I did everything correctly. If not, I'm happy to revise the PR 😄 cc @safern @karelz @danmosemsft Closes #17918 +18093 area-Infrastructure Share build traversal logic across framework pkgs Previously the build traversal logic was duplicated between the UAP and NETCoreApp packages. This refactors it into shared targets/props. The mechanism for opt-in to this traversal behavior is to include a props file in the project that matches the convention *.rids.props. The file must define PackageRID and OfficialBuildRID items. /cc @joperezr @chcosta @weshaggard +18095 area-System.IO MemoryMappedViewStream.PointerOffset returns invalid value @flobadob commented on [Sat Feb 11 2017](https://github.com/dotnet/coreclr/issues/9528) As the title. See [stack overflow discussion](http://stackoverflow.com/questions/42170142/memorymappedviewstream-pointeroffset-has-wrong-value) for a failing unit test that demonstrates the issue. Thanks. --- @janvorli commented on [Mon Feb 13 2017](https://github.com/dotnet/coreclr/issues/9528#issuecomment-279417350) CC: @stephentoub --- @gkhanna79 commented on [Sat Mar 04 2017](https://github.com/dotnet/coreclr/issues/9528#issuecomment-284175967) @danmosemsft @AlexGhiondea PTAL --- @danmosemsft commented on [Wed Mar 22 2017](https://github.com/dotnet/coreclr/issues/9528#issuecomment-288547847) I haven't looked at this, but if desktop behavior matches we need to take care whether we are breaking folks and if so is it worth it. --- @alexperovich commented on [Fri Apr 07 2017](https://github.com/dotnet/coreclr/issues/9528#issuecomment-292672805) The code for MemoryMappedFile is actually in dotnet/corefx. I will move this issue. +18096 area-Infrastructure Add build definitions for netfx tests This PR adds build definitions to run desktop tests in Helix. cc: @joperezr @weshaggard @MattGal @danmosemsft +18097 area-System.Diagnostics Remove UAP specific code for FileVersionInfo The current implementation (same as Unix) looks functional so perhaps this doesn't get us much beyond a single Windows binary. Unfortunately this flags 4 pinvokes we had previously deferred request for. +18098 area-Infrastructure Build UAP identity package during -targetGroup:uapaot build The UAPAOT build currently doesn't build the identity package due to an explicit condition: https://github.com/dotnet/corefx/blob/001fdf5538b27259f845d7ce7cc5daa8f1d179aa/pkg/Microsoft.Private.CoreFx.UAP/Microsoft.Private.CoreFx.UAP.builds#L9 To fix this we need to do the following: 1. Remove that condition. 2. Remove `uapaot` from configurations.props. 3. Use something other than 'targetgroup' for inferring the _aotSuffix. Perhaps _bc_TargetGroup. +18099 area-System.IO Test PathWithReservedDeviceNameAsPath_ThrowsDirectoryNotFoundException fails on windows machine "Test PathWithReservedDeviceNameAsPath_ThrowsDirectoryNotFoundException fails on windows 10 machine. ``` b__32_0(String path) in C:\\Projkti\\.NET\\corefx\\src\\System.IO.FileSystem\\tests\\Directory\\CreateDirectory.cs:line 420\r\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\CollectionAsserts.cs:line 31\r\n[29]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure\r\n Expected: typeof(System.IO.DirectoryNotFoundException)\r\n Actual: (No exception was thrown)\r\n at Xunit.Assert.Throws(Type exceptionType, Exception exception) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\ExceptionAsserts.cs:line 143\r\n at Xunit.Assert.Throws[T](Func`1 testCode) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\ExceptionAsserts.cs:line 36\r\n at System.IO.Tests.Directory_CreateDirectory.b__32_0(String path) in C:\\Projekti\\.NET\\corefx\\src\\System.IO.FileSystem\\tests\\Directory\\CreateDirectory.cs:line 420\r\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\CollectionAsserts.cs:line 31\r\n[28]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure\r\n Expected: typeof(System.IO.DirectoryNotFoundException)\r\n Actual: (No exception was thrown)\r\n at Xunit.Assert.Throws(Type exceptionType, Exception exception) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\ExceptionAsserts.cs:line 143\r\n at Xunit.Assert.Throws[T](Func`1 testCode) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\ExceptionAsserts.cs:line 36\r\n at System.IO.Tests.Directory_CreateDirectory.b__32_0(String path) in C:\\Projekti\\.NET\\corefx\\src\\System.IO.FileSystem\\tests\\Directory\\CreateDirectory.cs:line 420\r\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\CollectionAsserts.cs:line 31]]> ``` Fun fact: I have executed this commands on my machine and it seems that some will give me exception while others will execute silently (while no actual directory will be created) > C:\>mkdir Directory\COM4 <-- no error > > C:\>mkdir Directory\COM1 <-- error > The system cannot find the file specified. > > C:\>mkdir Directory\LPT1 <-- error > The system cannot find the file specified. > > C:\>mkdir Directory\NUL <-- no error > > C:\>mkdir Directory\AUX <-- error > The system cannot find the file specified. @karelz @weshaggard @mellinoe" +18100 area-Infrastructure Update ILLink version. This change updates ILLink version and the flags required by that version. +18101 area-System.Net Adding support for HttpHandlerDiagnosticListener. This listener compensates for the fact that .NET45/46 doesn't use DiagnosticSource. This solution attempts to recreate that by inserting into the Http stack and generating events. This HttpHandlerDiagnosticListener is a singleton, and the bulk of its initialization happens when the first subscribe subscribes. The way this listener injects inself into the Http stack is via reflection. More details are in the code documentation. +18102 area-Serialization Fix some XmlSerializer.ReflectionOnly Tests failures in Desktop Desktop tests where failing with error: ``` System.TypeInitializationException : The type initializer for 'XmlSerializerTests' threw an exception. ---- No method named set_Mode Expected: True Actual: False Stack Trace: at XmlSerializerTests.Xml_TypeWithMultiXmlAnyElement() ----- Inner Stack Trace ----- D:\repos\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs(27,0): at XmlSerializerTests..cctor() ``` Because XmlSerializer.Mode property is not available in desktop (It is an internal API) so when trying to get it through reflection it would throw an exception. I moved the static constructor to a netcoreapp file which is only included when TargetGroup is netcoreapp. cc: @tarekgh @danmosemsft +18103 area-System.Xml Investigate dependency of Xslt on System.Xml.Xsl.Runtime at runtime Refer to the discussion in https://github.com/dotnet/corefx/pull/18042 Xslt is loading public types from System.Xml.Xsl.Runtime and making calls to them at runtime to generate IL code. Investigate why this dependency exists and why we cannot remove them/move them to a separate library? +18104 area-System.Net PreAuthenticate throws PNSE on UWP platfrom Need to fix this for UWP src/System.Net.Http/src/netcore50/System/Net/HttpClientHandler.cs:159 +18105 area-Meta Couple of fixes for UWP app-compat. 1. HttpClientHandler.PreAuthenticate throws PNSE, disabling it for now - #18104 tracking proper fix 2. System.Runtime.CompilerServices.RuntimeOps need to be reflection enabled. +18106 area-System.Net UdpClient Send overload methods not having an offset @txdv commented on [Fri Apr 07 2017](https://github.com/dotnet/coreclr/issues/10790) [I was looking at the API of UdpClient](https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/UDPClient.cs#L904-L928) and I wondered, why is it that there is no offset for the byte buffer provided? It just provides the offset as the 0 default to the underlying Socket SendTo call: ```csharp return Client.SendTo(dgram, 0, bytes, SocketFlags.None, endPoint); ```` Shouldn't the API be typed like Send(byte[] buffer, int offset, int count) like all the other APIs? (Stream::Write, Socket::SendTo) Is that a change that might get accepted? --- @jkotas commented on [Fri Apr 07 2017](https://github.com/dotnet/coreclr/issues/10790#issuecomment-292553643) @txdv You should ask this question in corefx repo since the relevant code lives there. +18107 area-System.Runtime Make `System.Runtime.InteropServices.SafeHeapHandle` Public @SamuelEnglard commented on [Mon May 02 2016](https://github.com/dotnet/coreclr/issues/4730) `System.Runtime.InteropServices.SafeHeapHandle` is a class that almost every developer who has used unmanaged memory has had to write. Having it built in would solve many issues and increase the odds of developers who don't know they needed it finding it. cc: @terrajobst --- @terrajobst commented on [Tue May 03 2016](https://github.com/dotnet/coreclr/issues/4730#issuecomment-216668417) @weshaggard @stephentoub @yizhang82 +18109 area-System.Collections Issue #15622 New overload Dictionary.Remove New overload Dictionary.Remove(TKey, out TValue) that ouputs value associated with the key that is being removed. Fixes #15622. Depends on dotnet/coreclr PR [#10203](https://github.com/dotnet/coreclr/pull/10203) @karelz @danmosemsft @safern @jkotas Please review. +18111 area-Microsoft.CSharp dynamic: Make exception message match CS0022 on index-count mismatch Fixes #18064 +18112 area-System.Linq Selective reflection enable CompilerServices.RuntimeOps in S.L.Expressions rdxml "Right now the whole type is included , this might not be necessary. " +18114 area-System.Diagnostics DiagnosticSource for all: Consistency & Accessibility "Since this involves many repos and projects, I'm filing it here as directed: I've been working to integrate MiniProfiler with ASP.NET Core, Entity Framework Core, MVC Core, etc. and I've been pointed many times at DiagnosticSource. So while implementing EntityFramework I found several inconsistencies in how DiagnosticListener is used in one repo. Issues for that (so far) are: - https://github.com/aspnet/EntityFramework/issues/7939 - https://github.com/aspnet/EntityFramework/issues/8001 - https://github.com/aspnet/EntityFramework/issues/8007 - https://github.com/aspnet/EntityFramework/pull/8110 - ...and I haven't even dealt with transactions and errors yet, which also don't have the bits needed for correlation. But when wrapping up Entity Framework and moving to port MVC from view wrappers (needed in MVC <= 5 days) to DiagnosticListener, I see even more inconsistencies. Here's a summary of the problems I, as a consumer, see with the API as it's applied currently: 1. The arguments sent to the listener (often [via `.SubscribeWithAdapter()`](https://github.com/aspnet/EventNotification/blob/248222ff54848ec7a8967a28eb26dfc1cf8b1fe4/src/Microsoft.Extensions.DiagnosticAdapter/DiagnosticListenerExtensions.cs#L10)) is *usually* an anoymous object. But to consume this object, your parameter types and names on unrelated methods need to match exactly. - How are users to even find these arguments, without digging through source? - What ensures these aren't breaking? This approach seems very brittle overall. - In Entity Framework [strong types exist](https://github.com/aspnet/EntityFramework/tree/f273711b5d8b20173e0769e56006576f3fcd2c72/src/EFCore.Relational/Internal), but they're all internal. Note that the unit tests use them. - Note that Entity Framework is working around easy consumption limitations in .NET Core reflection (https://github.com/dotnet/corefx/issues/4672) - Also of concern here: you can't use adapters where you can't use IL-emit for them, since that's how they're attaching at runtime. 2. Identifiers are sporadically available for correlation. For example https://github.com/aspnet/EntityFramework/issues/8007 addresses this issue with data readers in Entity Framework. Without an ID of some sort (EF uses a `Guid` on connections and commands), the linear nature of DiagnosticListener logging is without a way to correlate without adding far more overhead to the entire chain. For example we're talking about `AsyncLocal` as a workaround (which adds context switching overhead all the way down the pipe). What are we talking about here for 2 events *divided* that need correlation? I posit that allocating a `Guid` is almost *always* the cheapest possible option. Perhaps a correlation method should be built into the diagnostics framework itself. - How do we correlate events without these, cheaply? - How do we ensure a correlation method is consistently available? - As an example, ApplicationInsights uses AsyncLocal (according to @davidfowl, I haven't found this yet), and [only listens to `BeforeAction` in MVC](https://github.com/Microsoft/ApplicationInsights-aspnetcore/blob/develop/src/Microsoft.ApplicationInsights.AspNetCore/DiagnosticListeners/Implementation/MvcDiagnosticsListener.cs#L13). And [Glimpse also falls back to AsyncLocal](https://github.com/Glimpse/Glimpse.Prototype/blob/8565cd72024597fe9d8717c929aa253c3da9f399/src/Glimpse.Agent.AspNet/Internal/Inspectors/Mvc/MvcDiagnosticsInspector.cs). 3. Why aren't the names exposed? As examples: - In [ASP.NET MVC](https://github.com/aspnet/Mvc/blob/1e7972bd8f8c2724f6b81c7efa8775d980a5a130/src/Microsoft.AspNetCore.Mvc.Core/Internal/MvcCoreDiagnosticSourceExtensions.cs), the names are inline (not accessible properties). - In [Entity Framework Core](https://github.com/aspnet/EntityFramework/blob/dev/src/EFCore.Relational/Internal/RelationalDiagnostics.cs#L12-L30) the properties are cleanly declared, but `internal` and therefore useless. Note that they're exposed for sanity in the tests, though. These things together amount to a loose API that's not really friendly for consumption or testing. In many of the above cases, adjustments were made for unit tests to be sane. This consumption is **the same set of things any consumer would like to have**. I propose we make these changes across the board to MS libraries and enhance usability in 2.0: 1. Message values get a strong type 2. These strong types are public (so we can cast and compile against them) 3. The names of messages issued are public (**as constants**, so they may be used in `[DiagnosticName]`) The loose coupling (not even taking a reference on Entity Framework, for example) could still work where it did before with the adapters that exist today. But for those who want compile time checking (often you're taking a listener dependency chain to listen *for that specific thing* anyway), you'd have everything needed. This also allows several possibilities with the `System.Diagnostics` adapters overloads for cleaner code. For example, today I have this: ```c# [DiagnosticName(""Microsoft.EntityFrameworkCore.BeforeExecuteCommand"")] public void OnBeforeExecuteCommand(DbCommand command, string executeMethod, Guid instanceId, bool async) { // Available: Guid connectionId, DbCommand command, string executeMethod, Guid instanceId, long startTimestamp, bool async var timing = command.GetTiming(executeMethod + (async ? "" (Async)"" : null), MiniProfiler.Current); if (timing != null) { _commands[instanceId] = timing; } } ``` Instead, we could have this (while existing adapters continue to work): ```c# [DiagnosticName(RelationalDiagnostics.BeforeExecuteCommand)] public void OnBeforeExecuteCommand(BeforeExecuteCommandMessage message) { var timing = command.GetTiming(message.ExecuteMethod + (message.Async ? "" (Async)"" : null), MiniProfiler.Current); if (timing != null) { _commands[instanceId] = timing; } } ``` In that example I upper-cased the names for consistently in C# and framework patterns, but obviously that's an optional v2 break or not to be had. Note that the adapter could convert them camelcase matching for the proxy method if it struck out on an exact match for compatability. Also note that break would happen **at compile time**, and that it doesn't rely on conventions, the DLR, or runtime reflection to work. Relevant doc link: [Design Notes on Correlation and Timings in DiagnosticSource events](https://github.com/aspnet/EventNotification/issues/46) cc @karelz @pakrym @avanderhoorn @davidfowl @terrajobst" +18115 area-System.Collections Removed Dictionary.GetValueOrDefault From ref contract As Per the Issue #17917 , GetValueOrDefault Api's from the ref contract in the Dictionary class has been removed. Closes #17917 +18116 area-System.Net Review all PNSE from netcore50\System\net\HttpClientHandler.cs +18117 area-System.Net More PNSE disabling for UWP I have disabled couple of PNSE which look suspect and opened issue to review all PNSE. Doing it one by one is not scalable since app runs take about 10 hours to complete. +18118 area-System.IO UnmanagedMemoryStream methods missing from package? I re-wrote a small piece of code within the F# compiler dealing with memory-mapped files to use ``MemoryMappedFile`` instead of the win32 API to allow that functionality to work on all platforms. Microsoft/visualfsharp#2528 The PR fails to build for CoreCLR, because the ``Read`` and ``ReadArray`` methods are missing on ``System.IO.UnmanagedMemoryStream`` (from which ``MemoryMappedFileAccessor`` is derived). Am I doing something wrong in the code or the package references? I've looked around in this repository and dotnet/coreclr and haven't found anything to indicate why those methods would be missing from the ``UnmanagedMemoryStream`` class (from the ``System.IO.UnmanagedMemoryStream`` package). +18120 area-System.Linq Fill some gaps in Expression.Invoke testing. +18121 area-System.Console Invalid input and output encodings are allowed by Console on Windows The following tests pass with netfx, but not with netcoreapp. I'm writing tests for this class and will attempt writing and submitting a patch for this behaviour. - Netfx: IOException thrown - Netcoreapp: no exception thrown - an invalid encoding (i.e. no such code page) is allowed. Suggested behaviour: align with netfx, not just for compat, but also for correctness ```cs public class NoSuchCodePage : Encoding { public override int CodePage => int.MinValue; public override int GetByteCount(char[] chars, int index, int count) => 0; public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) => 0; public override int GetCharCount(byte[] bytes, int index, int count) => 0; public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex) => 0; public override int GetMaxByteCount(int charCount) => 0; public override int GetMaxCharCount(int byteCount) => 0; } [Fact] [PlatformSpecific(TestPlatforms.Windows)] public void InputEncoding_SetEncodingWithInvalidCodePage_ThrowsIOException() { NoSuchCodePage invalidEncoding = new NoSuchCodePage(); Assert.Throws(() => Console.InputEncoding = invalidEncoding); Assert.NotEqual(invalidEncoding, Console.InputEncoding); } [Fact] [PlatformSpecific(TestPlatforms.Windows)] public void OutputEncoding_SetEncodingWithInvalidCodePage_ThrowsIOException() { NoSuchCodePage invalidEncoding = new NoSuchCodePage(); Assert.Throws(() => Console.OutputEncoding = invalidEncoding); Assert.NotEqual(invalidEncoding, Console.OutputEncoding); } ``` +18125 area-System.Net Test UnixPingUtilityTests.PacketSizeIsRespected(payloadSize: 1) failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release_prtest/1481/testReport/junit/System.Net.NetworkInformation.Tests/UnixPingUtilityTests/PacketSizeIsRespected_payloadSize__1_/ ``` MESSAGE: System.ArgumentOutOfRangeException : Index was out of range. Must be non-negative and less than the size of the collection.\nParameter name: startIndex +++++++++++++++++++ STACK TRACE: at System.String.LastIndexOf(String value, Int32 startIndex, Int32 count, StringComparison comparisonType) at System.Net.NetworkInformation.Tests.UnixPingUtilityTests.ParseReturnedPacketSize(String pingOutput) at System.Net.NetworkInformation.Tests.UnixPingUtilityTests.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +18127 area-System.Diagnostics Add tests for Process/ProcessStartInfo +18128 area-System.Net Fix managed implementation of HttpListener to match Windows implementation In #17999 some tests are disabled on Unix due to different implementations of HttpListener. Most of these are argument validation, and can easily be corrected. Some may need further investigation and may be by-design due to inherent platform differences. I'm grabbing this one, once #17999 is merged +18129 area-System.Net How to control IPEndPoint of HTTP requests? I've got a few .NET services that run on machines with multiple IP addresses, and they need to occasionally send HTTP requests from specific IPs. Currently I use `HttpWebRequest` with a custom `ServicePoint.BindIPEndPointDelegate` and it works great. I'm hoping to port this service to .NET Core/Standard, but can't find any equivalent functionality in HttpClient/HttpClientHandler. Is there any way to control local IP to which HttpClient/HttpClientHandler binds? Any workarounds or plans to add this functionality? This is the only thing holding back my porting efforts. +18132 area-System.Net Log ping output Some simple logging for https://github.com/dotnet/corefx/issues/18125 +18133 area-System.Net InvalidOperationException from HttpHeaders.CheckHeaderName when _invalidHeaders contains the header When using [`HttpHeaders.Contains`](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/Headers/HttpHeaders.cs#L210) method, [this](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/Headers/HttpHeaders.cs#L1137) if statement will throw an `InvalidOperationException` when the header *does* exist it throws the exception which seems incorrect? What is even more confusing is that there is a `TryCheckHeaderName` which will return a boolean instead of throwing an exception right below that method, which seems more appropriate for the `HttpHeaders.Contains` method. Sorry if this isn't the place to report this, using the 'file a bug' links in the readme doesn't work for me. +18134 area-Meta Remove dead code for system.threading, system.text.regularexpressions, system.threading.overlapped "Remove dead code according to #17905 Change for System.Threading: http://tempcoverage.blob.core.windows.net/report2/System.Threading.diff.html System.Text.RegularExpressions: http://tempcoverage.blob.core.windows.net/report2/System.Text.RegularExpressions.diff.html I don't delete the line ""public static bool operator !=(CachedCodeEntryKey left, CachedCodeEntryKey right);"" , there is an error CS0216 : The operator 'CachedCodeEntryKey.operator ==(CachedCodeEntryKey, CachedCodeEntryKey)' requires a matching operator '!=' to also be defined if I delete this line. System.Threading.Overlapped: http://tempcoverage.blob.core.windows.net/report2/System.Threading.Overlapped.diff.html" +18135 area-System.Reflection Remove ActiveIssue1050 from CanReadFromSameMemoryMappedPEReaderInParallel() in MetadataReaderTests.cs Remove [ActiveIssue1050] from CanReadFromSameMemoryMappedPEReaderInParallel() in MetadataReaderTests.cs under src\System.Reflection.Metadata\tests\Metadata +18138 area-Meta Change adding or removing overloads from allowed to disallowed In the [Breaking Change Rules - Members](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/breaking-change-rules.md#members) it is mentioned: > * Introducing or removing an override > > Make note, that introducing an override might cause previous consumers to skip over the override when calling base. Removing an override will cause in throwing a `System.TypeLoadException` for types that are overriding that implementation. Here's a repo of these issues: https://github.com/paulomorgado/CSharpVirtualCallGotchas Fixes #18070 +18139 area-System.Security "Desktop: System.Security.Cryptography.Encryption.Tests.Asymmetric.CryptographicExceptionTests.Ctor failed with ""Xunit.Sdk.EqualException""" Failed test: System.Security.Cryptography.Encryption.Tests.Asymmetric.CryptographicExceptionTests.Ctor Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/13/testReport/System.Security.Cryptography.Encryption.Tests.Asymmetric/CryptographicExceptionTests/Ctor/ ~~~ MESSAGE: Assert.Equal() Failure\r\nExpected: 5\r\nActual: -2147024891 +++++++++++++++++++ STACK TRACE: at System.Security.Cryptography.Encryption.Tests.Asymmetric.CryptographicExceptionTests.Ctor() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Primitives\tests\CryptographicException.cs:line 20 ~~~ +18140 area-System.Linq Desktop: System.Linq.Parallel.Tests.OrderByThenByTests.OrderByDescending_ExtremeComparer failed Failed test: System.Linq.Parallel.Tests.OrderByThenByTests.OrderByDescending_ExtremeComparer Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/13/testReport/System.Linq.Parallel.Tests/OrderByThenByTests/OrderByDescending_ExtremeComparer_labeled__Enumerable_Range_Ordered__count__2_/ ~~~ MESSAGE: Assert.InRange() Failure\r\nRange: (0 - 0)\r\nActual: 1 +++++++++++++++++++ STACK TRACE: at System.Linq.Parallel.Tests.OrderByThenByTests.OrderByDescending_ExtremeComparer(Labeled`1 labeled, Int32 count) in D:\j\workspace\outerloop_net---903ddde6\src\System.Linq.Parallel\tests\QueryOperators\OrderByThenByTests.cs:line 384 ~~~ +18141 area-System.Linq "Desktop: Test ""System.Linq.Parallel.Tests.OrderByThenByTests.ThenByDescending_NotPipelined_ExtremeComparer"" failed with ""Xunit.Sdk.AllException""" Failed test: System.Linq.Parallel.Tests.OrderByThenByTests.ThenByDescending_NotPipelined_ExtremeComparer Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/13/testReport/System.Linq.Parallel.Tests/OrderByThenByTests/ThenByDescending_NotPipelined_ExtremeComparer_labeled__Partitioner_Random__count__2_/ Message: ~~~ Assert.All() Failure: 1 out of 2 items in the collection did not pass.\r\n[1]: Xunit.Sdk.InRangeException: Assert.InRange() Failure\r\n Range: (0 - 0)\r\n Actual: 1\r\n at Xunit.Assert.InRange[T](T actual, T low, T high, IComparer`1 comparer) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\RangeAsserts.cs:line 36\r\n at System.Linq.Parallel.Tests.OrderByThenByTests.<>c__DisplayClass71_0.b__2(Int32 x) in D:\\j\\workspace\\outerloop_net---903ddde6\\src\\System.Linq.Parallel\\tests\\QueryOperators\\OrderByThenByTests.cs:line 992\r\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\CollectionAsserts.cs:line 31 ~~~ Stack Trace: ~~~ at System.Linq.Parallel.Tests.OrderByThenByTests.ThenByDescending_NotPipelined_ExtremeComparer(Labeled`1 labeled, Int32 count) in D:\j\workspace\outerloop_net---903ddde6\src\System.Linq.Parallel\tests\QueryOperators\OrderByThenByTests.cs:line 992 ~~~ +18142 area-System.Xml "Desktop: Test ""System.Xml.Tests.TC_SchemaSet_XmlResolver.v6"" failed with ""Xunit.Sdk.EqualException""" Failed test: System.Xml.Tests.TC_SchemaSet_XmlResolver.v6 Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/13/testReport/System.Xml.Tests/TC_SchemaSet_XmlResolver/v6/ ~~~ MESSAGE: Assert.Equal() Failure\r\nExpected: 1\r\nActual: 2 +++++++++++++++++++ STACK TRACE: at System.Xml.Tests.CError.Compare(Object actual, Object expected, String message) in D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Xml\tests\XmlSchema\XmlSchemaSet\CError.cs:line 24 at System.Xml.Tests.TC_SchemaSet_XmlResolver.v6() in D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Xml\tests\XmlSchema\XmlSchemaSet\TC_SchemaSet_XmlResolver.cs:line 135 ~~~ +18143 area-System.Security "Desktop: System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.InvalidKeySizes failed with ""Xunit.Sdk.EqualException""" Failed test: System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.InvalidKeySizes Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/13/testReport/System.Security.Cryptography.Encryption.Aes.Tests/AesContractTests/InvalidKeySizes_invalidKeySize__536870928_/ Message: ~~~ Got \r\nExpected: True\r\nActual: False ~~~ Stack Trace: ~~~ at System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.InvalidKeySizes(Int32 invalidKeySize) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesContractTests.cs:line 86 ~~~ +18145 area-System.ComponentModel "Desktop: Tests under ""System.ComponentModel.DataAnnotations.Tests"" failed with ""Xunit.Sdk.AllException""" Failed tests: System.ComponentModel.DataAnnotations.Tests.PhoneAttributeTests.Validate_Valid System.ComponentModel.DataAnnotations.Tests.MaxLengthAttributeTests.Validate_Invalid System.ComponentModel.DataAnnotations.Tests.MaxLengthAttributeTests.Validate_Valid System.ComponentModel.DataAnnotations.Tests.MinLengthAttributeTests.Validate_Valid System.ComponentModel.DataAnnotations.Tests.MinLengthAttributeTests.Validate_Invalid System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests.Validate_Invalid Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/13/testReport/System.ComponentModel.DataAnnotations.Tests/PhoneAttributeTests/Validate_Valid/ Message: ~~~ Assert.All() Failure: 6 out of 19 items in the collection did not pass.\r\n[18]: System.ComponentModel.DataAnnotations.ValidationException: The Object field is not a valid phone number.\r\n at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext)\r\n at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.Validate(ValidationAttribute attribute, Object value, ValidationContext validationContext, Boolean isValid) in D:\\j\\workspace\\outerloop_net---903ddde6\\src\\System.ComponentModel.Annotations\\tests\\ValidationAttributeTestBase.cs:line 35\r\n at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.b__6_0(TestCase test) in D:\\j\\workspace\\outerloop_net---903ddde6\\src\\System.ComponentModel.Annotations\\tests\\ValidationAttributeTestBase.cs:line 22\r\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\CollectionAsserts.cs:line 31\r\n[17]: System.ComponentModel.DataAnnotations.ValidationException: The Object field is not a valid phone number.\r\n at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext)\r\n at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.Validate(ValidationAttribute attribute, Object value, ValidationContext validationContext, Boolean isValid) in D:\\j\\workspace\\outerloop_net---903ddde6\\src\\System.ComponentModel.Annotations\\tests\\ValidationAttributeTestBase.cs:line 35\r\n at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.b__6_0(TestCase test) in D:\\j\\workspace\\outerloop_net---903ddde6\\src\\System.ComponentModel.Annotations\\tests\\ValidationAttributeTestBase.cs:line 22\r\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\CollectionAsserts.cs:line 31\r\n[16]: System.ComponentModel.DataAnnotations.ValidationException: The Object field is not a valid phone number.\r\n at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext)\r\n at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.Validate(ValidationAttribute attribute, Object value, ValidationContext validationContext, Boolean isValid) in D:\\j\\workspace\\outerloop_net---903ddde6\\src\\System.ComponentModel.Annotations\\tests\\ValidationAttributeTestBase.cs:line 35\r\n at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.b__6_0(TestCase test) in D:\\j\\workspace\\outerloop_net---903ddde6\\src\\System.ComponentModel.Annotations\\tests\\ValidationAttributeTestBase.cs:line 22\r\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\CollectionAsserts.cs:line 31\r\n[15]: System.ComponentModel.DataAnnotations.ValidationException: The Object field is not a valid phone number.\r\n at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext)\r\n at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.Validate(ValidationAttribute attribute, Object value, ValidationContext validationContext, Boolean isValid) in D:\\j\\workspace\\outerloop_net---903ddde6\\src\\System.ComponentModel.Annotations\\tests\\ValidationAttributeTestBase.cs:line 35\r\n at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.b__6_0(TestCase test) in D:\\j\\workspace\\outerloop_net---903ddde6\\src\\System.ComponentModel.Annotations\\tests\\ValidationAttributeTestBase.cs:line 22\r\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\CollectionAsserts.cs:line 31\r\n[14]: System.ComponentModel.DataAnnotations.ValidationException: The Object field is not a valid phone number.\r\n at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext)\r\n at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.Validate(ValidationAttribute attribute, Object value, ValidationContext validationContext, Boolean isValid) in D:\\j\\workspace\\outerloop_net---903ddde6\\src\\System.ComponentModel.Annotations\\tests\\ValidationAttributeTestBase.cs:line 35\r\n at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.b__6_0(TestCase test) in D:\\j\\workspace\\outerloop_net---903ddde6\\src\\System.ComponentModel.Annotations\\tests\\ValidationAttributeTestBase.cs:line 22\r\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\CollectionAsserts.cs:line 31\r\n[13]: System.ComponentModel.DataAnnotations.ValidationException: The Object field is not a valid phone number.\r\n at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext)\r\n at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.Validate(ValidationAttribute attribute, Object value, ValidationContext validationContext, Boolean isValid) in D:\\j\\workspace\\outerloop_net---903ddde6\\src\\System.ComponentModel.Annotations\\tests\\ValidationAttributeTestBase.cs:line 35\r\n at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.b__6_0(TestCase test) in D:\\j\\workspace\\outerloop_net---903ddde6\\src\\System.ComponentModel.Annotations\\tests\\ValidationAttributeTestBase.cs:line 22\r\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.assert\\Asserts\\CollectionAsserts.cs:line 31 ~~~ Stack Trace: ~~~ at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.Validate_Valid() in D:\j\workspace\outerloop_net---903ddde6\src\System.ComponentModel.Annotations\tests\ValidationAttributeTestBase.cs:line 22 ~~~ +18146 area-System.ComponentModel "Desktop: System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests.Validate_IConvertibleThrowsCustomException_IsNotCaught failed with ""Xunit.Sdk.ThrowsException""" Failed test: System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests.Validate_IConvertibleThrowsCustomException_IsNotCaught Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/13/testReport/System.ComponentModel.DataAnnotations.Tests/RangeAttributeTests/Validate_IConvertibleThrowsCustomException_IsNotCaught/ ~~~ MESSAGE: Assert.Throws() Failure\r\nExpected: typeof(System.ArithmeticException)\r\nActual: typeof(System.ComponentModel.DataAnnotations.ValidationException): The field Object must be between 1 and 1. +++++++++++++++++++ STACK TRACE: at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext) at System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests.<>c__DisplayClass11_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\System.ComponentModel.Annotations\tests\RangeAttributeTests.cs:line 191 ~~~ +18147 area-System.IO "Desktop: System.IO.Pipes.Tests.ReadFromPipeWithClosedPartner_ReadNoBytes failed with ""System.ArgumentException""" Failed tests: System.IO.Pipes.Tests.AnonymousPipeTest_Read_ServerIn_ClientOut.ReadFromPipeWithClosedPartner_ReadNoBytes System.IO.Pipes.Tests.AnonymousPipeTest_Read_ServerOut_ClientIn.ReadFromPipeWithClosedPartner_ReadNoBytes Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/13/testReport/System.IO.Pipes.Tests/AnonymousPipeTest_Read_ServerIn_ClientOut/ReadFromPipeWithClosedPartner_ReadNoBytes/ ~~~ MESSAGE: System.ArgumentException : Either the IAsyncResult object did not come from the corresponding async method on this type, or EndRead was called multiple times with the same IAsyncResult. +++++++++++++++++++ STACK TRACE: at System.IO.Stream.EndRead(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.IO.Pipes.Tests.PipeTest_Read.d__9.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\System.IO.Pipes\tests\PipeTest.Read.cs:line 225 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +18148 area-System.ComponentModel "Desktop: Tests under ""System.ComponentModel.DataAnnotations.Tests"" failed with ""Xunit.Sdk.ThrowsException""" Failed tests: System.ComponentModel.DataAnnotations.Tests.CustomValidationAttributeTests.RequiresValidationContext_BadlyFormed_ThrowsInvalidOperationException System.ComponentModel.DataAnnotations.Tests.DataTypeAttributeTests.Ctor_String Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/13/testReport/System.ComponentModel.DataAnnotations.Tests/CustomValidationAttributeTests/RequiresValidationContext_BadlyFormed_ThrowsInvalidOperationException_validatorType__null__method____Does_not_matter___/ ~~~ MESSAGE: Assert.Throws() Failure\r\nExpected: typeof(System.InvalidOperationException)\r\nActual: (No exception was thrown) +++++++++++++++++++ STACK TRACE: at System.ComponentModel.DataAnnotations.Tests.CustomValidationAttributeTests.RequiresValidationContext_BadlyFormed_ThrowsInvalidOperationException(Type validatorType, String method) in D:\j\workspace\outerloop_net---903ddde6\src\System.ComponentModel.Annotations\tests\CustomValidationAttributeTests.cs:line 103 ~~~ +18149 area-System.ComponentModel "Desktop: System.ComponentModel.DataAnnotations.Tests.CustomValidationAttributeTests.RequiresValidationContext_Get_ReturnsExpected failed with ""Xunit.Sdk.EqualException""" Failed test: System.ComponentModel.DataAnnotations.Tests.CustomValidationAttributeTests.RequiresValidationContext_Get_ReturnsExpected Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/13/testReport/System.ComponentModel.DataAnnotations.Tests/CustomValidationAttributeTests/RequiresValidationContext_Get_ReturnsExpected_method____CorrectValidationMethodTwoArgs____expected__True_/ ~~~ MESSAGE: Assert.Equal() Failure\r\nExpected: True\r\nActual: False +++++++++++++++++++ STACK TRACE: at System.ComponentModel.DataAnnotations.Tests.CustomValidationAttributeTests.RequiresValidationContext_Get_ReturnsExpected(String method, Boolean expected) in D:\j\workspace\outerloop_net---903ddde6\src\System.ComponentModel.Annotations\tests\CustomValidationAttributeTests.cs:line 80 ~~~ +18150 area-System.ComponentModel "Desktop: System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests.Validate_MinimumOrMaximumCantBeConvertedToType_ThrowsFormatException failed with ""System.Exception""" Failed: System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests.Validate_MinimumOrMaximumCantBeConvertedToType_ThrowsFormatException Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/13/testReport/System.ComponentModel.DataAnnotations.Tests/RangeAttributeTests/Validate_MinimumOrMaximumCantBeConvertedToType_ThrowsFormatException_type__typeof_int___minimum____Cannot_Convert____maximum____3___/ ~~~ MESSAGE: Assert.Throws() Failure\r\nExpected: typeof(System.FormatException)\r\nActual: typeof(System.Exception): Cannot Convert is not a valid value for Int32. +++++++++++++++++++ STACK TRACE: at System.ComponentModel.BaseNumberConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value) at System.ComponentModel.DataAnnotations.RangeAttribute.SetupConversion() at System.ComponentModel.DataAnnotations.RangeAttribute.IsValid(Object value) at System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(Object value, ValidationContext validationContext) at System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext) at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext) at System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests.<>c__DisplayClass8_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\System.ComponentModel.Annotations\tests\RangeAttributeTests.cs:line 166 ~~~ +18151 area-System.Net "Desktop: System.Net.Tests.FtpWebRequestTest.Ctor_VerifyDefaults_Success failed with ""Xunit.Sdk.EqualException""" Failed test: System.Net.Tests.FtpWebRequestTest.Ctor_VerifyDefaults_Success Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/13/testReport/System.Net.Tests/FtpWebRequestTest/Ctor_VerifyDefaults_Success/ ~~~ MESSAGE: Assert.False() Failure\r\nExpected: False\r\nActual: True +++++++++++++++++++ STACK TRACE: at System.Net.Tests.FtpWebRequestTest.Ctor_VerifyDefaults_Success() in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Requests\tests\FtpWebRequestTest.cs:line 43 ~~~ +18152 area-System.Net "Desktop: System.Net.Sockets.Tests.NetworkStreamTest.CopyToAsync_DisposedSourceStream_ThrowsOnWindows_NoThrowOnUnix failed with ""System.ObjectDisposedException""" Failed test: System.Net.Sockets.Tests.NetworkStreamTest.CopyToAsync_DisposedSourceStream_ThrowsOnWindows_NoThrowOnUnix Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/13/testReport/System.Net.Sockets.Tests/NetworkStreamTest/CopyToAsync_DisposedSourceStream_ThrowsOnWindows_NoThrowOnUnix/ Message: ~~~ MESSAGE: Got unexpected exception: System.ObjectDisposedException: Cannot access a disposed object.\r\nObject name: 'System.Net.Sockets.NetworkStream'.\r\n at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)\r\n at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.IO.Stream.d__27.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Xunit.Record.d__3.MoveNext() in C:\\BuildAgent\\work\\cb37e9acf085d108\\src\\xunit.core\\Record.cs:line 76\r\nExpected: True\r\nActual: False ~~~ Stack Trace: ~~~ System.Net.Sockets.Tests.NetworkStreamTest.<>c.<b__28_0>d.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Sockets\tests\FunctionalTests\NetworkStreamTest.cs:line 689 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Tests.NetworkStreamTest.d__30.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Sockets\tests\FunctionalTests\NetworkStreamTest.cs:line 735 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Tests.NetworkStreamTest.d__28.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Sockets\tests\FunctionalTests\NetworkStreamTest.cs:line 676 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +18154 area-System.Linq Move files in Common only used in S.L.Expressions into S.L.Expressions @bartdesmet made a start on this with #14063 and #14097. This PR brings all remaining such files into System.Linq.Expressions. It also consolidates `System.Dynamic.Utils.Error` and `System.Linq.Expressions.Error`, so there is now one place for all such methods, which had previously been split between the two, with some duplicates. +18158 area-System.Net Added tests for EncryptionPropertyCollection (coverage 62.3%) Overall code coverage for System.Security.Cryptography.Xml is 71.8% Part of #16829 +18159 area-System.Runtime Option/Maybe and Either ```csharp public Option GetById(string id) => new DbContext().Find(id); ``` instead of ```csharp public Employee GetById(string id) => new DbContext().Find(id); ``` The proposed method signature reveals much better the real intent of this method/function. Right? `Option` could provide a `Match` function.... Here is a very basic implementation: ```csharp namespace ElemarJR.FunctionalCSharp { using static Helpers; public struct Option { internal T Value { get; } public bool IsSome { get; } public bool IsNone => !IsSome; internal Option(T value, bool isSome) { Value = value; IsSome = isSome; } public TR Match(Func some, Func none) => IsSome ? some(Value) : none(); public Unit Match(Action some, Action none) => Match(ToFunc(some), ToFunc(none)); public static readonly Option None = new Option(); public static implicit operator Option(T value) => Some(value); public static implicit operator Option(NoneType _) => None; } } ``` with some additional operators: ```csharp namespace ElemarJR.FunctionalCSharp { using static Helpers; public static class Option { #region Of public static Option Of(T value) => new Option(value, value != null); #endregion #region Apply public static Option Apply (this Option> @this, Option arg) => @this.Bind(f => arg.Map(f)); public static Option> Apply (this Option> @this, Option arg) => Apply(@this.Map(Helpers.Curry), arg); #endregion #region Map public static Option Map( this Option @this, Func mapfunc ) => @this.IsSome ? Some(mapfunc(@this.Value)) : None; public static Option> Map( this Option @this, Func func ) => @this.Map(func.Curry()); #endregion #region Bind public static Option Bind( this Option @this, Func> bindfunc ) => @this.IsSome ? bindfunc(@this.Value) : None; #endregion #region GetOrElse public static T GetOrElse( this Option @this, Func fallback ) => @this.Match( some: value => value, none: fallback ); public static T GetOrElse( this Option @this, T @else ) => GetOrElse(@this, () => @else); #endregion #region OrElse public static Option OrElse( this Option @this, Option @else ) => @this.Match( some: _ => @this, none: () => @else ); public static Option OrElse( this Option @this, Func> fallback ) => @this.Match( some: _ => @this, none: fallback ); #endregion } } ``` and some LINQ support: ```csharp namespace System.Linq { using static Helpers; public static partial class LinqExtensions { public static Option Select( this Option @this, Func func) => @this.Map(func); public static Option SelectMany( this Option @this, Func> binder, Func projector ) => @this.Match( none: () => None, some: (t) => @this.Bind(binder).Match( none: () => None, some: (tb) => Some(projector(t, tb)) ) ); public static Option Where( this Option option, Func predicate ) => option.Match( none: () => None, some: o => predicate(o) ? option : None ); } } ``` This proposal does not incur any CLR changes. +18160 area-Infrastructure Individual library packages need netstandard2.0 configuration All our packages need to be sure to have netstandard2.0 support. 1. If they are part of netstandard2.0 then they need to have a placeholder so their owner assets doen't get chosen. 2. If they are above netstandard and they have an older netstandard configuration then they need a netstandard2.0 configuration to ensure package graph is cleaned up. @ericstj I filed this issue once I realized packages like our System.Net.Http will not work if they are referenced from a netstandard 2.0 project. +18161 area-System.Security Csp error strings missing error code parameter fixes https://github.com/dotnet/corefx/issues/11646 +18162 area-Microsoft.CSharp Remove dead code from Microsoft.CSharp The only paths reaching `ExprArrayLength` and `ExprQuestionMark` were removed in #17948 so they can also be deleted, along with code that this in turn makes dead. Since `ExprArrayLength` obviously related to array lengths, add tests double-checking that still works (it does, because it isn't special-cased like it is with static code and is parsed like any other property). Also delete all the code identified as dead in #17905 that is really dead (not some constants), not in shared files, and not going to be deleted by #18004. +18163 area-System.Net Fix app-compat differences in System.Net.Requests Fix some product code behavior differences between .NET Core and .NET Framework (Desktop). Adjust tests. Disable more tests not working on Desktop. Fixes #18151. Contributes to #17842. +18164 area-System.Collections Add support for Data Contract Serializer to Immutable collections Immutable collections should support Data Contract Serializer like other collection types. Not supporting Data Contract Serializer makes Immutable collections unusable in Service Fabric applications. Considering the Service Fabric documentation suggests using immutable types it would be great if the ones supplied by MS worked. +18166 area-Serialization NS2.0 Finish XmlDictionaryWriter surface area. This override appears to be something that's supposed to be overridden by the actual implementation class by something decent, but in keeping with the desktop (and with methods like WriteValueAsync(IStreamProvider)), we'll provide a default implementation that satisfies the letter (if not quite the spirit) of the contract... +18169 area-System.Security Fix KeyInfoTest.ImportKeyNode Fixes https://github.com/dotnet/corefx/issues/16779 Previous version of the test was not Debuggable so I've split it so that we test individual components separately. Also added additional test for DSAKeyValue +18170 area-System.Net Fix Fedora issue with gethostbyname Per https://github.com/dotnet/corefx/issues/17749, fix the issue with Fedora 24 assert (debug build). Fedora is returning error code 22 (EINVAL) for some recently added negative test(s) Fix is to check for EINVAL and if the last parameter of gethostbyname_r is either NO_DATA or HOST_NOT_FOUND then return HOST_NOT_FOUND. This results in a consistent return value across other unix flavors. +18171 area-System.Reflection Remove problematic test case This test case caused problems when additional tests are added to the project Fixes #14625 +18172 area-Meta System.Json assembly identity We added System.Json with https://github.com/dotnet/corefx/pull/9897 and later updated the version number to match mono with https://github.com/dotnet/corefx/issues/9938. However we still haven't taken into account the public key. Currently it has the MSFT public key (soon to be the Open key https://github.com/dotnet/corefx/pull/18165) and so any existing binary references will still not bind to this assembly. We need to decide if we want this binary to exactly match the one we shipped with SL and if so we should give it the same complete assembly identity or we should rename it to a new assembly name and have it fall inline with any other new assembly in corefx. I think I would make it match the exact assembly identity. cc @stephentoub @terrajobst opinions? @karelz @danmosemsft do you know who owns this library? +18173 area-System.Net HTTPS perf issue on Linux/Ubuntu We have a sample app that uploads large files into Azure Storage on Linux (Ubuntu 16.10, .NET Core 1.1). When we use HTTP endpoint we get about 600MB/s throughput, whereas as soon as we change to HTTPS, the throughput drops to about 100MB/s. At first we thought this could be a bottleneck on Azure Storage, but after testing the same scenario with curl on Linux, as well as running the test on Windows, we concluded that this issue happens only with .NET Core on Linux when HTTPS is used. Using .NET Core on Windows, we get similar throughput around 600MB/s for both HTTP and HTTPS. And on Linux, we also tested this using a curl command and both HTTP and HTTPS provide similar results, hence raising the issue here. The sample app is here: https://github.com/seguler/azure-storage-throughput-test Any pointers on the issue ? @JeffreyRichter @polarapfel +18174 area-System.Threading Add test for thread pool concurrent initialization Depends on dotnet/coreclr#10869 Fixes dotnet/coreclr#10521 +18175 area-System.IO Fix MMVS.PointerOffset to be correct This change fixes the PointerOffset property to be correct when the requested offset is larger than the allocation size of the OS. Fixes #18095 +18176 area-Infrastructure Restore portable external assets Now that Core-Setup is also producing portable RID assets, enable portable external assets to be restored for CoreFX. @weshaggard PTAL - this is the artifact we discussed to enable once Core-Setup published portable assets. +18177 area-System.Diagnostics Add sources for native binaries used in FileVersionInfo tests Fixes #16613 Thanks @attilah for the initial work. +18179 area-System.Text [1.1] Bump version for System.Text.Encodings.Web and add to package build PTAL @tarekgh @ericstj FYI @leecow @gkhanna79 +18180 area-System.Text [1.0] Bump version of System.Text.Encodings.Web and add to package build PTAL @tarekgh @ericstj FYI @leecow @gkhanna79 +18181 area-Infrastructure Minor cleanup after moving to 2.0 toolset Includes two minor improvements based on PR feedback in https://github.com/dotnet/corefx/pull/18035. * There is now an init-tools.msbuild file, which is used to restore the buildtools package. This has the same content as the file we used to be automatically generating in init-tools.cmd/sh. Since we're using an MSBuild project now, we can just parameterize the version of the package by using an MSBuild property, and then pass that into `dotnet restore`. * I've added comments to the new usages of `chmod`, with a link to this nuget issue: https://github.com/NuGet/Home/issues/4424 @weshaggard +18183 area-Infrastructure Copy desktop runner config file to test folder This changes where reverted here: https://github.com/dotnet/corefx/pull/18113#issuecomment-292738439 Because of an issue the new version of buildtools was causing OSX not to initialize the tools. This issue was fixed and build tools version was updated so I'm updating tests.targets to copy the config file for Desktop tests instead of writing it every time. cc: @weshaggard @tarekgh @joperezr +18185 area-System.Diagnostics Fix difference in behavior DelimitedListTraceListener.WriteFooter There was a difference in behavior in between .NET Core and desktop where `DelimitedListTraceListener.WriteFooter` was not writing the `TraceEventCache.LogicalOperationStack` on .NET Core. This difference in behavior was causing the tests in Desktop to fail. Fixes: https://github.com/dotnet/corefx/issues/10880 cc: @danmosemsft @brianrob @vancem +18186 area-System.Xml Disable Xml AppContextSwitch test on Desktop Resolves https://github.com/dotnet/corefx/issues/18142 cc: @danmosemsft +18187 area-System.Diagnostics [Netfx bug]: ProcessStartInfo.Verbs throws InvalidCastException when an int value is present in the RegistryKey "On netfx we try to do this when getting the verbs: ```cs string value = (string)key.GetValue(String.Empty); ``` Where we cast the value to string no matter what is the type of that value. On netcoreapp we do: ```cs string value = key.GetValue(string.Empty) as string; if (string.IsNullOrEmpty(value)) return Array.Empty(); ``` Where we use safe cast and verify that the value is not null or empty. If we run the following code (has to be as an administrator) in full framework we will get an `InvalidCastException` since it is adding an int value to the `RegistryKey`: ```cs const string Extension = "".nonstringextension""; const string FileName = ""file"" + Extension; try { RegistryKey key = Registry.ClassesRoot.CreateSubKey(Extension); key.SetValue("""", 123); } catch (UnauthorizedAccessException) { return; } try { var info = new ProcessStartInfo { FileName = FileName }; Assert.Empty(info.Verbs); // netfx: throws InvalidCastException. netcoreapp: returns empty } finally { Registry.ClassesRoot.DeleteSubKeyTree(Extension); } ``` Thanks @hughbe for finding this." +18188 area-System.Net Test failure: Write_HeadersToClosedConnectionSynchronously_ThrowsHttpListenerException ``` MESSAGE: Assert.Throws() Failure\r\nExpected: typeof(System.Net.HttpListenerException)\r\nActual: (No exception was thrown) +++++++++++++++++++ STACK TRACE: at System.Net.Tests.HttpResponseStreamTests.d__21.MoveNext() in D:\j\workspace\windows_nt_re---37265eab\src\System.Net.HttpListener\tests\HttpResponseStreamTests.cs:line 460 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/6067/testReport/junit/System.Net.Tests/HttpResponseStreamTests/Write_HeadersToClosedConnectionSynchronously_ThrowsHttpListenerException_ignoreWriteExceptions__True_/ +18189 area-System.Net Disable intermittent HttpListener tests "See #18188 The test code for this style of tests is: ```cs [ConditionalTheory(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] [InlineData(true)] [InlineData(false)] public async Task Write_HeadersToClosedConnectionSynchronously_ThrowsHttpListenerException(bool ignoreWriteExceptions) { const string Text = ""Some-String""; byte[] buffer = Encoding.UTF8.GetBytes(Text); using (HttpListenerFactory factory = new HttpListenerFactory()) using (Socket client = factory.GetConnectedSocket()) { // Send a header to the HttpListener to give it a context. client.Send(factory.GetContent(RequestTypes.POST, Text, headerOnly: true)); HttpListener listener = factory.GetListener(); listener.IgnoreWriteExceptions = ignoreWriteExceptions; HttpListenerContext context = await listener.GetContextAsync(); // Disconnect the Socket from the HttpListener. client.Close(); GC.Collect(); GC.WaitForPendingFinalizers(); // Writing to, a closed connection should fail. Assert.Throws(() => context.Response.OutputStream.Write(buffer, 0, buffer.Length)); // Closing a response from a closed client if a writing has already failed should not fail. context.Response.Close(); } } ``` It seems that closing the socket doesn't happen instantly, even though we waited for the GC, and then waited for finalizers to run. For some reason, this code doesn't work: ```cs client.Close(); GC.Collect(); GC.WaitForPendingFinalizers(); // Ooops. Client not closed. ``` From #17999: > @hughbe Socket.dispose, is calling safehandle.dispose. It could be the case that there were some references to the safe handle that prevents it from disposing, and with explicilty waiting for gc, that got disposed. Or it could be that the safehandle was put in finalizer queue, and the finalizer hadn't run to free up the resources before you tried to use the stream on the native connection. We need to find a better solution for what the test is trying to do: open a connection, then close the socket, then write to a closed socket. Could be the `using` block that is screwing things up for the GC? I have not encountered a failure on my PC yet in the current code. @stephentoub @Priya91 any ideas? I'd like to keep these tests as they cover a bunch of code in HttpListener. @danmosemsft FYI " +18192 area-System.Net "HttpListener tests: HttpRequestStreamTests failed with ""System.NullReferenceException""" Opened on behalf of @Jiayili1 The test `System.Net.Tests.HttpRequestStreamTests/CanRead_Get_ReturnsTrue` has failed. System.AggregateException : One or more errors occurred. (Object reference not set to an instance of an object.) (Object reference not set to an instance of an object.)\r ---- System.NullReferenceException : Object reference not set to an instance of an object.\r ---- System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: ----- Inner Stack Trace #1 (System.NullReferenceException) ----- at System.Net.Tests.HttpRequestStreamTests.d__13.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace #2 (System.NullReferenceException) ----- at System.Net.Tests.HttpRequestStreamTests.Dispose() at ReflectionAbstractionExtensions.DisposeTestClass(ITest test, Object testClass, IMessageBus messageBus, ExecutionTimer timer, CancellationTokenSource cancellationTokenSource) Build : Master - 20170411.01 (Core Tests) Failing configurations: - Windows.7.Amd64 - x86-Debug - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170411.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpRequestStreamTests~2FCanRead_Get_ReturnsTrue +18193 area-System.Net Test failure: System.Net.Tests.GlobalProxySelectionTest/Select_Success Opened on behalf of @Jiayili1 The test `System.Net.Tests.GlobalProxySelectionTest/Select_Success` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -1073740791 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.Net.Tests.GlobalProxySelectionTest.Select_Success() Build : Master - 20170411.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170411.01/workItem/System.Net.Requests.Tests/analysis/xunit/System.Net.Tests.GlobalProxySelectionTest~2FSelect_Success +18197 area-System.Security "Desktop: System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.VerifyKeyGeneration_256 failed with ""System.Security.Cryptography.CryptographicException""" Failed test: System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.VerifyKeyGeneration_256 Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/14/testReport/System.Security.Cryptography.Encryption.Aes.Tests/AesContractTests/VerifyKeyGeneration_256/ Message: ~~~ System.Security.Cryptography.CryptographicException : Specified key is not a valid size for this algorithm. ~~~ Stack Trace: ~~~ at System.Security.Cryptography.SymmetricAlgorithm.set_KeySize(Int32 value) at System.Security.Cryptography.AesCryptoServiceProvider.set_KeySize(Int32 value) at System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.VerifyKeyGeneration_256() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesContractTests.cs:line 154 ~~~ +18198 area-System.Security "Desktop: System.Security.Cryptography.EcDsa.Tests.ECDsaTests.PublicKey_CannotSign failed with ""System.TypeLoadException""" Failed test: System.Security.Cryptography.EcDsa.Tests.ECDsaTests.PublicKey_CannotSign Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/14/testReport/System.Security.Cryptography.EcDsa.Tests/ECDsaTests/PublicKey_CannotSign/ MESSAGE: System.TypeLoadException : Could not load type 'System.Security.Cryptography.ECParameters' from assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. +++++++++++++++++++ STACK TRACE: at System.Security.Cryptography.EcDsa.Tests.ECDsaTests.PublicKey_CannotSign() +18199 area-System.Net "Desktop: System.Net.Tests.HttpWebRequestHeaderTest.HttpWebRequest_ProxySetAfterGetResponse_Fails failed with ""System.Net.WebException""" Failed test: System.Net.Tests.HttpWebRequestHeaderTest.HttpWebRequest_ProxySetAfterGetResponse_Fails Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/14/testReport/System.Net.Tests/HttpWebRequestHeaderTest/HttpWebRequest_ProxySetAfterGetResponse_Fails_remoteServer__http___corefx_net_cloudapp_net_Echo_ashx_/ **MESSAGE:** System.Net.WebException : The operation has timed out +++++++++++++++++++ **STACK TRACE:** at System.Net.HttpWebRequest.GetResponse() at System.Net.Tests.HttpWebRequestHeaderTest.HttpWebRequest_ProxySetAfterGetResponse_Fails(Uri remoteServer) in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Requests\tests\HttpWebRequestHeaderTest.cs:line 135 +18200 area-Serialization Fix System.Runtime.Serialization.Json.ReflectionOnly tests on netfx Around 148 tests were failing with exception: ``` System.TypeInitializationException : The type initializer for 'DataContractJsonSerializerTests' threw an exception.\r\n---- No method named set_Option\r\nExpected: True\r\nActual: False ``` This tests were trying to invoke a method through reflection on a static constructor and this member is not part of netfx so it throws the exception. cc: @danmosemsft +18201 area-System.ComponentModel "Desktop: System.ComponentModel.Tests.MemberDescriptorTests.CopiedMemberDescriptorEqualsItsSource failed with ""Xunit.Sdk.TrueException""" Failed test: System.ComponentModel.Tests.MemberDescriptorTests.CopiedMemberDescriptorEqualsItsSource Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/14/testReport/System.ComponentModel.Tests/MemberDescriptorTests/CopiedMemberDescriptorEqualsItsSource/ **MESSAGE:** Assert.True() Failure\r\nExpected: True\r\nActual: False +++++++++++++++++++ **STACK TRACE:** at System.ComponentModel.Tests.MemberDescriptorTests.CopiedMemberDescriptorEqualsItsSource() in D:\j\workspace\outerloop_net---903ddde6\src\System.ComponentModel.TypeConverter\tests\MemberDescriptorTests.cs:line 32 +18202 area-System.IO "Desktop: tests under ""System.IO.IsolatedStorage"" failed with ""System.TypeInitializationException"" & ""System.IO.IsolatedStorage.IsolatedStorageException""" Failed tests: System.IO.IsolatedStorage.ContainsUnknownFilesTests.ContainsUnknownFiles_NotOkDirectory System.IO.IsolatedStorage.ContainsUnknownFilesTests.ContainsUnknownFiles_NotOkFiles System.IO.IsolatedStorage.ContainsUnknownFilesTests.ContainsUnknownFiles_OkFiles System.IO.IsolatedStorage.ContainsUnknownFilesTests.ContainsUnknownFiles_CleanStore System.IO.IsolatedStorage.CopyFileTests.CopyFile_CopyOver System.IO.IsolatedStorage.CopyFileTests.CopyFile_CopiesFile System.IO.IsolatedStorage.CreateDirectoryTests.CreateDirectory_Existance System.IO.IsolatedStorage.CreateFileTests.CreateFile_Existence System.IO.IsolatedStorage.DeleteDirectoryTests.DeleteDirectory_CannotDeleteWithContent System.IO.IsolatedStorage.DeleteDirectoryTests.DeleteDirectory_DeletesDirectory System.IO.IsolatedStorage.DeleteFileTests.DeleteFile_DeletesFile System.IO.IsolatedStorage.DirectoryExistsTests.DirectoryExists_Existance System.IO.IsolatedStorage.FileExistsTests.FileExists_Existance System.IO.IsolatedStorage.GetFileNamesTests.GetFileNames_GetsFileNames System.IO.IsolatedStorage.MoveDirectoryTests.MoveDirectory_MovesDirectory System.IO.IsolatedStorage.MoveFileTests.MoveFile_MovesFile System.IO.IsolatedStorage.MoveFileTests.MoveFile_MoveOver System.IO.IsolatedStorage.OpenFileTests.OpenFile_Existence System.IO.IsolatedStorage.RemoveTests.RemoveStoreWithContent Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/14/testReport/System.IO.IsolatedStorage/ContainsUnknownFilesTests/ContainsUnknownFiles_NotOkDirectory_scope__UserStoreForApplication_/ Message: System.TypeInitializationException : The type initializer for 'System.IO.IsolatedStorage.TestHelper' threw an exception.\r\n---- System.IO.IsolatedStorage.IsolatedStorageException : Initialization failed. Stack Trace: ~~~ at System.IO.IsolatedStorage.TestHelper.WipeStores() at System.IO.IsolatedStorage.ContainsUnknownFilesTests.ContainsUnknownFiles_NotOkDirectory(PresetScopes scope) in D:\j\workspace\outerloop_net---903ddde6\src\System.IO.IsolatedStorage\tests\System\IO\IsolatedStorage\ContainsUnknownFilesTests.cs:line 70 ----- Inner Stack Trace ----- at System.IO.IsolatedStorage.Helper.GetDefaultIdentityAndHash(Object& identity, String& hash, Char separator) in D:\j\workspace\outerloop_net---903ddde6\src\System.IO.IsolatedStorage\src\System\IO\IsolatedStorage\Helper.Win32.Unix.cs:line 126 at System.IO.IsolatedStorage.TestHelper..cctor() in D:\j\workspace\outerloop_net---903ddde6\src\System.IO.IsolatedStorage\tests\System\IO\IsolatedStorage\TestHelper.cs:line 26 ~~~ +18203 area-System.Net "Desktop: System.Net.Tests.HttpWebRequestTest.Abort_BeginGetResponseThenAbort_EndGetResponseThrowsWebException failed with ""System.NullReferenceException""" Failed test: System.Net.Tests.HttpWebRequestTest.Abort_BeginGetResponseThenAbort_EndGetResponseThrowsWebException Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/14/testReport/System.Net.Tests/HttpWebRequestTest/Abort_BeginGetResponseThenAbort_EndGetResponseThrowsWebException_remoteServer__http___corefx_net_cloudapp_net_Echo_ashx_/ MESSAGE: System.NullReferenceException : Object reference not set to an instance of an object. +++++++++++++++++++ STACK TRACE: at System.Net.Tests.HttpWebRequestTest.Abort_BeginGetResponseThenAbort_EndGetResponseThrowsWebException(Uri remoteServer) in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Requests\tests\HttpWebRequestTest.cs:line 561 +18204 area-System.Net "Desktop: System.Net.Tests.HttpWebRequestTest.Abort_BeginGetResponseThenAbort_ResponseCallbackCalledBeforeAbortReturns failed with ""Xunit.EqualException""" Failed test: System.Net.Tests.HttpWebRequestTest.Abort_BeginGetResponseThenAbort_ResponseCallbackCalledBeforeAbortReturns Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/14/testReport/System.Net.Tests/HttpWebRequestTest/Abort_BeginGetResponseThenAbort_ResponseCallbackCalledBeforeAbortReturns_remoteServer__https___corefx_net_cloudapp_net_Echo_ashx_/ MESSAGE: Assert.Equal() Failure\r\nExpected: 1\r\nActual: 0 +++++++++++++++++++ STACK TRACE: at System.Net.Tests.HttpWebRequestTest.Abort_BeginGetResponseThenAbort_ResponseCallbackCalledBeforeAbortReturns(Uri remoteServer) in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Requests\tests\HttpWebRequestTest.cs:line 549 +18205 area-Serialization "Desktop: System.Runtime.Serialization.Xml.Tests.XmlDictionaryReaderTests.ReadElementContentAsDateTimeTest failed with ""Xunit.Sdk.EqualException""" Failed test: System.Runtime.Serialization.Xml.Tests.XmlDictionaryReaderTests.ReadElementContentAsDateTimeTest Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/14/testReport/System.Runtime.Serialization.Xml.Tests/XmlDictionaryReaderTests/ReadElementContentAsDateTimeTest/ MESSAGE: Assert.Equal() Failure\r\nExpected: 2003-01-08T15:00:00.0000000\r\nActual: 2003-01-08T07:00:00.0000000-08:00 +++++++++++++++++++ STACK TRACE: at System.Runtime.Serialization.Xml.Tests.XmlDictionaryReaderTests.ReadElementContentAsDateTimeTest() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Xml\tests\XmlDictionaryReaderTests.cs:line 101 +18207 area-System.Net [Linux Mint] Http client to call Soap service over https. "I'm trying to access existing SOAP webservice using `HttpClient`. Works fine on Windows 10, but fails in Linux Mint with `TaskCanceledException: A task was canceled.`, which masks a timeout. Is there a way to run it on Linux? ```c# [HttpGet(""test"")] public IActionResult Login() { HttpClientHandler clientHandler = new HttpClientHandler(); clientHandler.ServerCertificateCustomValidationCallback = (message, cert, chain, errors) => { return true; }; HttpClient client = new HttpClient(clientHandler); HttpRequestMessage request = CreateSoapWebRequest(); HttpResponseMessage response = client.SendAsync(request).Result; } public HttpRequestMessage CreateSoapWebRequest() { string xmlString = String.Format(); HttpRequestMessage result = new HttpRequestMessage(new HttpMethod(""POST""), myUrl); result.Content = new StringContent(xmlString, Encoding.UTF8, ""text/xml""); result.Headers.Add(""SOAPAction"",""http://tempuri.org/IAuthorizationService/AuthorizeUser""); return result; } ``` The request works fine with http and also with https when there are valid certificates. To problem occurs when we are testing in our DEV environment with no valid https certificate available. The request seems to time out. Just before the TaskCanceledException: A task was canceled gets thrown the ServerCertificateCustomValidationCallback gets called (takes about 2 minutes). Returning true/false doesn't seem to make a difference, I think it's too late at this point. Shouldn't this callback be called in the very beginning? Would appreciate everything that helps." +18208 area-System.Globalization Test failures: System.Globalization.Tests.NumberFormatInfoPercentPositivePattern "Just ran build-tests from root and discovered that these two tests are failing in System.Globalization on Core: ``` ``` ``` ```" +18210 area-System.Diagnostics SingleProcess_EnableRaisingEvents_CorrectExitCode test hangs on uapaot test run The test was disabled but it was hanging on uapaot runs. I didn't do any further investigation. cc: @Priya91 +18211 area-System.Net "Compile warning: Duplicate resource name ""net_PropertyNotSupportedException"" is not allowed" "Occurred during test runs of https://github.com/dotnet/corefx/pull/18170 for portablelinux_debug @davidsh - duplicate resource added 4/10/2017 in https://github.com/dotnet/corefx/commit/bbe86c8f0e113d70d0d97936cc254889afbbe149#diff-bac3839a816a936d5db4ecb32728de17 ```` ./src/Resources/Strings.resx : warning MSB3568: Duplicate resource name ""net_PropertyNotSupportedException"" is not allowed, ignored. [/mnt/resource/j/workspace/dotnet_corefx/master/portablelinux_debug_prtest/src/System.Net.Requests/tests/System.Net.Requests.Tests.csproj] ````" +18212 area-System.Diagnostics TestProcessOnRemoteMachineWindows crashes on uapaot test runs "Test was crashing by throwing an AV when trying to call `Process.GetProcessById(currentProcess.Id, ""127.0.0.1"")`. I didn't to more deep investigation on it, but I disabled it for now for uapaot runs. cc: @Priya91 " +18213 area-System.Net Remove duplicate string resource from System.Net.Requests Caused by PR #18163. Looks like compile warnings from strings.resx are not caught by CI. Fixes #18211 +18217 area-Meta Question: how does targeting netstandard versus netcoreapp work? "Hi, I'm not sure I'm asking in the right place. I have a question regarding targeting. I created new console app using `dotnet new console`. Now, the project file looks like this: ``` Exe netcoreapp1.1 ``` Can I target `netstandard1.6` instead? Will it still run? Changing the project file to: ``` Exe netstandard1.6 ``` This builds using `dotnet build`. It doesn't run however. ``` Unable to run your project. Please ensure you have a runnable project type and ensure 'dotnet run' supports this project. The current OutputType is 'Exe'. ``` Is targeting .NET Standard only for libraries, not for executable binaries? I was hoping I could target a standard instead of any runtime and then choose a runtime of my liking to run that binary, as long as that runtime supports that standard version. Like choosing to either point `dotnet` or `mono` against a binary that targets netstandard. Is this even possible? And speaking of `OutputType` Exe, even in the original console project template, the build drops a dll, not an exe. Why is that? thanks, Tobias W." +18219 area-System.Net HttpContent.LimitArrayPoolWriteStream.Write causes a Grow on every call The code in the Write is: EnsureCapacity(_buffer.Length + count); The _buffer.Length is the size of the buffer, not the number of bytes written to it. So with this we're always asking for more than the buffer has room for, and thus we will call Grow. Grow is exponential (doubles the size of the buffer), so enough small writes into the stream will cause the Grow to ask for huge buffer and eventually run out of memory. The correct code should be: EnsureCapacity(_length + count); +18220 area-System.Console Disabled some System.Console tests from uapaot run since they were hanging In order to unblock the uapaot test run, we needed to disable a few tests from running in that framework since they were hanging. We should next figure out if it even makes sense for those tests to run given the differences in Console between netcoreapp and uapaot, and if so, then figure out why are they hanging. Tests are: - All SyncTextReader tests - Some ConsoleEncoding tests cc: @danmosemsft @ianhays @alexperovich +18222 area-System.Security Throw different exception when adding disposed cert to X509Store As discussed in #12223 this PR changes the exception that is thrown when an already disposed certificate is being added to a store. Fixes #12223 +18223 area-System.Net Fix failing httplistener tests on Win7. fixes #18192 cc @hughbe +18225 area-System.Xml Xml_SystemPathResolverCannotOpenUri resource is empty XmlSystemPathResolver will throw for Uris which are not from a local file system. The error message it uses is resource Xml_SystemPathResolverCannotOpenUri, but that resource is empty. It used to look like: Cannot open '{0}'. The Uri parameter must be a file system relative or absolute path. +18226 area-Meta Could not load 'System.Xml' - NUnit tests not working properly with .NET Core projects "In a .NET Core C# Console app test explorer isn't discovering/running tests using Nunit Framework. **Steps** 1. Create a new .NET Core Console App 2. Add code below 3. Add NUnit and NUnit3TestFramework NuGet packages 4. File Menu -> Test -> Run -> Run All **Actual** ``` An exception occurred while test discoverer 'NUnit3TestDiscoverer' was loading tests. Exception: Could not load file or assembly 'System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. The system cannot find the file specified. ``` Sample Code: ```cs using System; using NUnit.Framework; namespace ConsoleApp2 { class Program { static void Main(string[] args) { Console.WriteLine(""Hello World!""); } } [TestFixture] public class NUnitStuff { public bool SmallNumisOdd(int i) { switch (i) { case 0: return false; case 1: return true; case 2: return false; case 3: return true; case 4: return false; case 5: return true; case 6: return false; default: return false; } } [Test] public void testSmallNumisOdd() { Random r = new Random(); int i = r.Next(0, 6); Assert.True(SmallNumisOdd(i)); } } } ```" +18227 area-System.Runtime Add test for serialization of closed delegate involving an extension … …method Depends on PR dotnet/coreclr#10901 Fixes dotnet/coreclr#9597 +18229 area-Infrastructure Add support for local Helix execution Adds the ability to do local execution of whatever was zipped and uploaded by Upload-Tests.proj. Enabled by https://github.com/dotnet/buildtools/pull/1431 Ready to merge, sent job with correlation 'f9ff404d-edc2-4147-a7d3-20e81d906ae9' to prove my payload changes are non-breaking. @weshaggard @joperezr +18233 area-System.Xml Fix System.Private.Xml.Linq.rd.xml Tests under System.Private.Xml/tests/XmlSerializer are not showing the warning anymore but for some reason still getting some warning under System.Runtime.Serialization.Xml/tests: ``` System.Xml.Resources.System.Private.Xml.Linq.rd.xml(5-5): warning : ILTransform : warning ILT0027: Namespace 'System.Private.Xml.Linq' within '' could not be found. ``` This does not make much sense to me since namespace is correct in rd.xml - possibly wrong rd.xml or dll is being used Fixes: https://github.com/dotnet/corefx/issues/17557 +18234 area-System.IO Remove unnecessary pinvoke Lock/UnlockFile are not used. We requested them already but we can certainly remove the usage. +18236 area-Infrastructure [1.0] Bump networking library/package versions and add to package build PTAL @CIPop @Priya91 FYI @leecow @gkhanna79 +18237 area-System.Net HttpWebRequest on corefx significantly slower than that of the .NET Framework As per the title, the current HttpWebRequest is implemented as a wrapper around HttpClient. This change is problematic for many reasons, mainly that HttpClient forces the user to reuse the same configuration across requests via `HttpClientHandler` and `HttpClient`. This would be quite alright for a REST focused library such as RestSharp, but (atleast in my opinion) is an outright _bad_ idea for the main HTTP solution in a major framework. This is a much smaller problem in the full .NET Framework as it fully supports both solutions. People who preferred to change these settings on a per-request basis could use `HttpWebRequest` and REST focused users could employ `HttpClient`. Some of the settings of `HttpWebRequest` I change on a regular basis are `Proxy`, `AllowAutoRedirect` and `Timeout`. These are some benchmarks I ran on the .NET Framework 4.6 (The leftmost number is the average time in ms. The `RestSharp` benchmarks are present just for reference.): ``` HttpWebRequest 70 | 70 69 70 70 70 69 71 70 71 73 71 69 71 69 70 70 70 70 70 69 HttpWebRequest-Async 69 | 67 69 72 69 67 69 70 71 67 70 70 69 70 69 70 69 68 71 71 70 HttpClient-Async 151 | 145 154 149 147 149 149 148 147 152 151 163 151 154 153 152 161 147 151 149 152 HttpClient-Async,Reused 72 | 154 74 69 60 62 72 67 70 72 60 70 64 63 70 63 72 71 72 71 73 RestClient 71 | 74 73 75 72 73 62 73 70 76 73 74 74 75 67 74 74 70 73 74 62 RestClient-Reused 70 | 72 71 71 72 59 70 70 70 70 71 70 71 70 71 71 77 74 72 72 73 ``` And the same benchmarks on .NET Framework 4.7: ``` HttpWebRequest 37 | 32 38 44 42 48 42 38 36 33 38 35 40 34 38 41 32 33 35 39 33 HttpWebRequest-Async 28 | 38 35 34 38 33 20 30 26 27 21 26 26 26 25 28 27 28 27 27 25 HttpClient-Async 48 | 46 48 45 51 46 46 52 45 48 48 46 48 48 46 48 46 46 46 70 58 HttpClient-Async,Reused 23 | 49 19 25 23 22 20 20 19 21 22 23 21 28 19 28 21 21 26 20 21 RestClient 38 | 53 48 42 39 40 38 41 43 39 44 40 36 41 40 35 37 37 20 27 36 RestClient-Reused 28 | 27 29 28 32 28 28 30 27 27 30 28 26 26 27 27 27 27 37 40 28 ``` The above benchmarks are from a Windows 10 system running the creators update. The requests were made to a 6KB resource on a CDN. The tests were run on different hardware from different locations, but since I'd like to focus only on their relative performance, this should not be a problem. Please correct me if I'm wrong. The most glaring difference between the two benchmarks is that .NET 4.7 optimized creating new `HttpClient` instances greatly (On .NET 4.6, the `HttpClient` row was consistently 150ms+). Note that while I was able to compile `2.0.0-preview1`, I have not tested the above on it. The .NET framework appears to use a different approach (Seen at https://referencesource.microsoft.com/#System/net/System/Net/HttpWebRequest.cs). Please consider using a similar approach. Using an `HttpClient` under the hood of an `HttpWebRequest` seems more like a duct-tape solution just in the interest of maintaining compatibility. I would argue it does not accomplish this anyway, since programs that worked well on the .NET Framework would appear to work on .NET Core, only for the developers to find performance issues with no clue as to their cause (Creating a new `HttpClient` took almost 20ms more each request than `HttpWebRequest`!). As as aside, I can imagine code as such as the following would causes deadlocks in cases where the synchronization context needs to be maintained (but I'm not sure if this case is handled elsewhere). ``` public override Stream GetRequestStream() { return InternalGetRequestStream().Result; } ```
**UPDATE**: These are the .NET Core 1.1 benchmarks on the same system as .NET 4.6 above. ``` HttpClient-Async 209 | 208 210 207 212 205 207 212 218 211 210 214 210 205 200 209 217 214 205 215 203 HttpClient-Async,Reused 72 | 204 58 73 66 61 58 60 60 69 67 58 69 60 72 70 69 70 66 70 70 RestClient 216 | 218 212 229 221 212 219 212 209 204 213 212 212 218 219 219 220 223 220 211 217 RestClient-Reused 215 | 208 213 211 211 221 227 211 214 214 220 213 210 219 218 210 217 211 231 215 225 ``` I used the `RestSharp.NetCore` package in the test above, which uses `HttpWebRequest` internally (Which in turn creates new `HttpClient` instances under the hood). The performance hit is clear. `RestClient` takes around 8ms longer for its own code. +18238 area-Serialization XmlSerializer to Support XmlMembersMapping via Reflection This PR enable XmlSerializer to support XmlMembersMapping via reflection (without using ILGen). Added/fixed 41 tests for this feature. Fix https://github.com/dotnet/corefx/issues/17482. +18241 area-Infrastructure [1.1] Bump networking library versions and add to package build PTAL @CIPop @Priya91 FYI @leecow @gkhanna79 +18242 area-System.Memory Block size calculation in SpanHelpers.CopyTo incorrect. @WinCPP Thanks for finding this. +18243 area-Infrastructure Run one iteration of performance tests in Outerloop runs This change will cause us to run one iteration of performance tests during our Outerloop runs. This will give us more assurance that the performance tests are not broken by various changes and will guarantee that they run, at least once. @danmosemsft @DrewScoggins +18244 area-System.Data DAC connection fails sometimes, possibly due to unreleased resource after connection closed. DAC (Dedicated Admin Connection) allows only 1 connection, and it will throw exception if another connection attempts to be established when current connection is not closed and released. In Managed SNI, sometimes and not always, when a DAC connection opened and then closed, and another DAC connection try to be made, it fails. It seems some resource is not released right away after connection closed. It throws exception with following stack trace. ``` System.Data.SqlClient.SqlException : A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 - An internal exception was caught) ---- System.IO.IOException : Unable to read data from the transport connection: An established connection was aborted by the software in your host machine. -------- System.Net.Sockets.SocketException : An established connection was aborted by the software in your host machine Stack Trace: D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnection.cs(250,0): at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapClos eInAction) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParser.cs(1111,0): at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParserStateObject.cs(932,0): at System.Data.SqlClient.TdsParserStateObject.ThrowExceptionAndWarning(Boolean callerHasConnectionLock, Boolean asyncClose) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParserStateObject.cs(2572,0): at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParserStateObject.cs(2107,0): at System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync() D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParserStateObject.cs(2032,0): at System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket() D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParser.cs(666,0): at System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean& marsCapable) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParser.cs(375,0): at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs(1403,0): at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs(1160,0): at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, TimeoutTimer timeout) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs(1014,0): at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs(372,0): at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnectionFactory.cs(133,0): at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionFactory.cs(114,0): at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs(476,0): at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs(1187,0): at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs(792,0): at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs(712,0): at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionFactory.cs(281,0): at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionInternal.cs(452,0): at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionClosed.cs(64,0): at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnection.cs(1003,0): at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnection.cs(596,0): at System.Data.SqlClient.SqlConnection.Open() D:\Projects\CoreFx\src\System.Data.SqlClient\tests\FunctionalTests\SqlConnectionTest.cs(85,0): at System.Data.SqlClient.Tests.SqlConnectionBasicTests.IntegratedAuthTest() ----- Inner Stack Trace ----- D:\Projects\CoreFx\src\System.Net.Sockets\src\System\Net\Sockets\NetworkStream.cs(301,0): at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\SNI\SNIPacket.cs(280,0): at System.Data.SqlClient.SNI.SNIPacket.ReadFromStream(Stream stream) D:\Projects\CoreFx\src\System.Data.SqlClient\src\System\Data\SqlClient\SNI\SNITcpHandle.cs(439,0): at System.Data.SqlClient.SNI.SNITCPHandle.Receive(SNIPacket& packet, Int32 timeoutInMilliseconds) ----- Inner Stack Trace ----- D:\Projects\CoreFx\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs(1394,0): at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) D:\Projects\CoreFx\src\System.Net.Sockets\src\System\Net\Sockets\NetworkStream.cs(295,0): at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) ``` I found that the number of failure of DAC connection reduces after putting `System.GC.Collect();` right before creating `SqlConnection` object when I tested. +18245 area-Infrastructure Build -targetGroup:netfx builds native We don't need to build native in this case. +18246 area-Infrastructure Desktop support package for netstandard2.0 Adds a support package for netstandard2.0 on desktop. Best reviewed commit-by-commit. Commit descriptions have detail of what they are for. /cc @weshaggard @safern @terrajobst +18247 area-Infrastructure Win10 WSL at Linux target platform for tests? Is it worth adding [Windows 10 Subsystem for Linux](https://blogs.msdn.microsoft.com/wsl/2017/04/11/testing-the-windows-subsystem-for-linux/) as a test build target? +18248 area-System.Numerics BigInteger performance tests do not work with xunit.performance The tests in this file do not work when run under the current perf test environment. https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Numerics/tests/BigInteger/PerformanceTests.cs I am going to disable them until I have time to re-work them with the correct style. +18249 area-Serialization Test cases in XsPerformanceTest do not work I get errors like the following when I run the tests in [this file](https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/tests/XmlSerializer/Performance/XsPerformanceTest.cs). ``` System.Xml.XmlSerializer.Tests.Performance.XsPerformanceTest.XsDeSerializationTest(numberOfRuns: 100, testType: DictionaryOfSimpleType, testSize: 1024) [FAIL] System.NotSupportedException : The type System.Collections.Generic.Dictionary`2[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[SerializationTypes.SimpleType, System.Xml .XmlSerializer.ReflectionOnly.Tests, Version=4.0.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb]] is not supported because it implements IDictionary. Stack Trace: D:\OSS\corefx\src\System.Private.Xml\src\System\Xml\Serialization\Types.cs(1312,0): at System.Xml.Serialization.TypeScope.GetDefaultIndexer(Type type, String memberInfo) D:\OSS\corefx\src\System.Private.Xml\src\System\Xml\Serialization\Types.cs(829,0): at System.Xml.Serialization.TypeScope.ImportTypeDesc(Type type, MemberInfo memberInfo, Boolean directReference) D:\OSS\corefx\src\System.Private.Xml\src\System\Xml\Serialization\Types.cs(714,0): at System.Xml.Serialization.TypeScope.GetTypeDesc(Type type, MemberInfo source, Boolean directReference, Boolean throwOnError) D:\OSS\corefx\src\System.Private.Xml\src\System\Xml\Serialization\Models.cs(48,0): at System.Xml.Serialization.ModelScope.GetTypeModel(Type type, Boolean directReference) D:\OSS\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlReflectionImporter.cs(170,0): at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type, XmlRootAttribute root, String defaultNamespace) D:\OSS\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs(274,0): at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace) D:\OSS\corefx\src\System.Private.Xml\tests\XmlSerializer\Performance\XsPerformanceTest.cs(75,0): at System.Xml.XmlSerializer.Tests.Performance.XsSerializer.Init(Object obj) D:\OSS\corefx\src\System.Runtime.Serialization.Xml\tests\Performance\PerformanceTestsCommon.cs(326,0): at System.Runtime.Serialization.PerformanceTestCommon.RunDeserializationPerformanceTest(Int32 numberOfRuns, TestType testT ype, Int32 testSize, ISerializerFactory serializerFactory) ``` +18253 area-Infrastructure Official builds failing the netfx vertical on publish packages step cc: @safern @weshaggard @dagood @safern recently added netfx vertical build to pipebuild. The template used has a step to publish packages, but netfx won't build any packages, which is causing the build to fail. We should either create a new template and use that, or my preferred way would be to make that step on that msbuild call not to fail (either never fail, or just not fail when TargetGroup is netfx) +18254 area-Infrastructure Fixing netfx Official builds by disabling the publish packages step for netfx builds cc: @safern @weshaggard @chcosta fixes: #18253 I don't love this solution, but I don't like the idea of generating a new template that will only be used on 4 verticals, and I also don't like the idea of not erroring on non-netfx builds when packages were not published correctly or when no packages were produced. +18255 area-Serialization "Test: XmlSerializerTests/Xml_NullRefInXmlSerializerCtorTest failed with ""Xunit.Sdk.TrueException""" "Opened on behalf of @Jiayili1 The test `XmlSerializerTests/Xml_NullRefInXmlSerializerCtorTest` has failed. XML comparison is also failing Test failed for input: PurchaseOrder Expected: 1 Main St. AnyTown WA 00000 Monday, April 10, 2017 Widget S Small widget 5.23 3 15.69 15.69 12.51 28.20 Actual: 1 Main St. AnyTown WA 00000 Monday, 10 April 2017 Widget S Small widget 5.23 3 15.69 15.69 12.51 28.20 Expected: True Actual: False Stack Trace: at XmlSerializerTests.SerializeAndDeserialize[T](T value, String baseline, Func`1 serializerFactory, Boolean skipStringCompare, XmlSerializerNamespaces xns) at XmlSerializerTests.Xml_NullRefInXmlSerializerCtorTest() Build : Master - 20170412.01 (Core Tests) Failing configurations: - OSX.1012.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170412.01/workItem/System.Xml.XmlSerializer.ReflectionOnly.Tests/analysis/xunit/XmlSerializerTests~2FXml_NullRefInXmlSerializerCtorTest" +18256 area-Infrastructure Change default clang version to clang3.9 in cross build If we use clang3.9 version in cross build, we can use -O3 option for optimizing. Revert #15643 PR. Related issue: https://github.com/dotnet/core-setup/issues/1411 +18257 area-System.IO Suggestion: NamedPipe classes should support interop with other languages on Unix Currently, as far as I can tell at least, there is no good way to interop with a node.js/C++/etc with the .NET Core pipe code on non-Windows platforms. The problem is that on Unix you would like to get the full path to the underlying domain socket and somehow be able to open an arbitrary domain socket. But .NET Core doesn't have any APIs for this. In node.js, for example, `net.createServer` ([examples](http://stackoverflow.com/questions/11750041/how-to-create-a-named-pipe-in-node-js)) provides one abstraction that works with named pipes and Unix domain sockets. It does require a few lines of platform-specific code to work out the server name correctly. But once that is done you have code that is nice and unified and can interop with any other framework. Suggestions: 1. Named pipe server should have a method to get the underlying full pipe name 2. Named pipe client and server should have overloads that allow specifying the full pipe name +18259 area-Serialization Add two desktop test cases and some reference files for DataContractSerializer test "@shmao @huanwu Add two desktop test cases and some reference files for DataContractSerializer test. All the reference files are placed under **DesktopTestData** folder and using namespace of ""**DesktopTestData**""." +18260 area-System.Net "Test: System.Net.Security.Tests.SslStreamStreamToStreamTest_BeginEnd/SslStream_StreamToStream_LargeWrites_Sync_Success failed with ""System.TimeoutException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.SslStreamStreamToStreamTest_BeginEnd/SslStream_StreamToStream_LargeWrites_Sync_Success(randomizedData: False)` has failed. System.TimeoutException : VirtualNetwork: Timeout reading the next frame. Stack Trace: at System.Net.Test.Common.VirtualNetwork.ReadFrame(Boolean server, Byte[]& buffer) at System.Net.Test.Common.VirtualNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.FixedSizeReader.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.Tests.SslStreamStreamToStreamTest_BeginEnd.DoHandshake(SslStream clientSslStream, SslStream serverSslStream) at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_LargeWrites_Sync_Success(Boolean randomizedData) Build : Master - 20170412.01 (Portable Core Tests) Failing configurations: - Windows.7.Amd64 - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170412.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.SslStreamStreamToStreamTest_BeginEnd~2FSslStream_StreamToStream_LargeWrites_Sync_Success(randomizedData:%20False) +18261 area-Infrastructure Cannot build Core FX (resolve failure) Core FX build failed with the following error message: ``` $ ./build-managed.sh Installing dotnet cli... Restoring BuildTools version 1.0.27-prerelease-01511-02... Initializing BuildTools... BUILDTOOLS_SKIP_CROSSGEN is set. Skipping crossgen step. Making all .sh files executable under Tools. Done initializing tools. Running: /var/jenkins/workspace/FX/FX_Test_Release/repo/code/Tools/msbuild.sh /nologo /verbosity:minimal /clp:Summary /maxcpucount /l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log /p:ConfigurationGroup=Debug /p:BuildPackages=false /flp:v=normal /flp2:warningsonly;logfile=msbuild.wrn /flp3:errorsonly;logfile=msbuild.err /var/jenkins/workspace/FX/FX_Test_Release/repo/code/Tools/packageresolve.targets(86,5): error : The package Microsoft.Build with version 0.1.0-preview-00022 could not be found in /var/jenkins/workspace/FX/FX_Test_Release/repo/code/packages/, /var/jenkins/workspace/FX/FX_Test_Release/repo/code/packages, /root/.dotnet/NuGetFallbackFolder. Run a NuGet package restore to download the package. [/var/jenkins/workspace/FX/FX_ Test_Release/repo/code/src/Tools/CoreFx.Tools/CoreFx.Tools.csproj] ... ``` It seems that ``packages/microsoft.build/0.1.0-preview-00022/`` is restored: ``` $ pwd /var/jenkins/workspace/FX/FX_Test_Release/repo/code $ ls packages/microsoft.build/0.1.0-preview-00022/ lib microsoft.build.0.1.0-preview-00022.nupkg microsoft.build.0.1.0-preview-00022.nupkg.sha512 microsoft.build.nuspec ``` +18262 area-System.Diagnostics "Tests under ""System.Diagnostics.Tests.ProcessStartInfoTests"" failed" Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170412.01/workItem/System.Diagnostics.Process.Tests/wilogs Result: ~~~ 2017-04-12 01:49:31,403: INFO: proc(54): run_and_log_output: Output: Discovering: System.Diagnostics.Process.Tests 2017-04-12 01:49:31,653: INFO: proc(54): run_and_log_output: Output: Discovered: System.Diagnostics.Process.Tests 2017-04-12 01:49:31,653: INFO: proc(54): run_and_log_output: Output: Starting: System.Diagnostics.Process.Tests 2017-04-12 01:49:32,355: INFO: proc(54): run_and_log_output: Output: System.Diagnostics.Tests.ProcessStartInfoTests.TestUseShellExecuteProperty_SetAndGet_Windows [FAIL] 2017-04-12 01:49:32,355: INFO: proc(54): run_and_log_output: Output: Assert.False() Failure 2017-04-12 01:49:32,355: INFO: proc(54): run_and_log_output: Output: Expected: False 2017-04-12 01:49:32,355: INFO: proc(54): run_and_log_output: Output: Actual: True 2017-04-12 01:49:32,355: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-04-12 01:49:32,355: INFO: proc(54): run_and_log_output: Output: E:\A\_work\60\s\corefx\src\System.Diagnostics.Process\tests\ProcessStartInfoTests.cs(243,0): at System.Diagnostics.Tests.ProcessStartInfoTests.TestUseShellExecuteProperty_SetAndGet_Windows() 2017-04-12 01:49:32,403: INFO: proc(54): run_and_log_output: Output: System.Diagnostics.Tests.ProcessStartInfoTests.TestEnvironmentVariables_Environment_DataRoundTrips [FAIL] 2017-04-12 01:49:32,403: INFO: proc(54): run_and_log_output: Output: Assert.Throws() Failure 2017-04-12 01:49:32,403: INFO: proc(54): run_and_log_output: Output: Expected: typeof(System.ArgumentException) 2017-04-12 01:49:32,403: INFO: proc(54): run_and_log_output: Output: Actual: (No exception was thrown) 2017-04-12 01:49:32,403: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-04-12 01:49:32,403: INFO: proc(54): run_and_log_output: Output: E:\A\_work\60\s\corefx\src\System.Diagnostics.Process\tests\ProcessStartInfoTests.cs(460,0): at System.Diagnostics.Tests.ProcessStartInfoTests.TestEnvironmentVariables_Environment_DataRoundTrips() 2017-04-12 01:49:32,418: INFO: proc(54): run_and_log_output: Output: System.Diagnostics.Tests.ProcessStartInfoTests.TestEnvironmentProperty [FAIL] 2017-04-12 01:49:32,418: INFO: proc(54): run_and_log_output: Output: Assert.Throws() Failure 2017-04-12 01:49:32,418: INFO: proc(54): run_and_log_output: Output: Expected: typeof(System.ArgumentException) 2017-04-12 01:49:32,418: INFO: proc(54): run_and_log_output: Output: Actual: (No exception was thrown) 2017-04-12 01:49:32,418: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-04-12 01:49:32,418: INFO: proc(54): run_and_log_output: Output: E:\A\_work\60\s\corefx\src\System.Diagnostics.Process\tests\ProcessStartInfoTests.cs(48,0): at System.Diagnostics.Tests.ProcessStartInfoTests.TestEnvironmentProperty() 2017-04-12 01:49:34,918: INFO: proc(54): run_and_log_output: Output: System.IndexOutOfRangeException: Index was outside the bounds of the array. 2017-04-12 01:49:34,918: INFO: proc(54): run_and_log_output: Output: at System.Text.StringBuilder.get_Chars(Int32 index) 2017-04-12 01:49:34,918: INFO: proc(54): run_and_log_output: Output: at System.Diagnostics.AsyncStreamReader.GetLinesFromStringBuilder() 2017-04-12 01:49:34,918: INFO: proc(54): run_and_log_output: Output: at System.Diagnostics.AsyncStreamReader.ReadBuffer(IAsyncResult ar) 2017-04-12 01:49:34,918: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 2017-04-12 01:49:34,918: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 2017-04-12 01:49:34,918: INFO: proc(54): run_and_log_output: Output: at System.IO.Stream.ReadWriteTask.System.Threading.Tasks.ITaskCompletionAction.Invoke(Task completingTask) 2017-04-12 01:49:34,918: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.FinishContinuations() 2017-04-12 01:49:34,918: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.Finish(Boolean bUserDelegateExecuted) 2017-04-12 01:49:34,918: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 2017-04-12 01:49:34,918: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution) 2017-04-12 01:49:34,918: INFO: proc(54): run_and_log_output: Output: at System.Threading.ThreadPoolWorkQueue.Dispatch() 2017-04-12 01:49:34,934: INFO: proc(54): run_and_log_output: Output: Finished running tests. End time= 1:49:34.93, Exit code = 1 2017-04-12 01:49:34,934: INFO: proc(58): run_and_log_output: Exit Code: 1 2017-04-12 01:49:34,934: ERROR: scriptrunner(82): _main: Error: No exception thrown, but XUnit results not created 2017-04-12 01:49:34,934: ERROR: helix_test_execution(83): report_error: Error running xunit None ~~~ +18263 area-System.IO "Test: System.IO.Compression.Tests.BeginEndDeflateStreamTests/OverlappingFlushAsync_DuringReadAsync failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.IO.Compression.Tests.BeginEndDeflateStreamTests/OverlappingFlushAsync_DuringReadAsync` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.IO.Compression.Tests.CompressionStreamAsyncTestBase.d__11.MoveNext() in E:\A\_work\60\s\corefx\src\System.IO.Compression\tests\AsyncStreamTests.cs:line 156 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170412.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x86-Release - x64-Release - x86-Debug - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170412.01/workItem/System.IO.Compression.Tests/analysis/xunit/System.IO.Compression.Tests.BeginEndDeflateStreamTests~2FOverlappingFlushAsync_DuringReadAsync +18264 area-System.IO "Test: System.IO.Compression.Tests.zip_ManualAndCompatabilityTests/ZipWithInvalidFileNames_ParsedBasedOnSourceOS failed with ""System.ArgumentException""" "Opened on behalf of @Jiayili1 The test `System.IO.Compression.Tests.zip_ManualAndCompatabilityTests/ZipWithInvalidFileNames_ParsedBasedOnSourceOS(zipName: \""NullCharFileName_FromUnix.zip\"", fileName: \""a\\06b6d\"")` has failed. System.ArgumentException : Illegal characters in path. Stack Trace: at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional) at System.IO.Path.GetFileName(String path) at System.IO.Compression.ZipHelper.EndsWithDirChar(String test) at System.IO.Compression.ZipArchiveEntry.set_FullName(String value) at System.IO.Compression.ZipArchiveEntry..ctor(ZipArchive archive, ZipCentralDirectoryFileHeader cd) at System.IO.Compression.ZipArchive.ReadCentralDirectory() at System.IO.Compression.ZipArchive.get_Entries() at System.IO.Compression.Tests.zip_ManualAndCompatabilityTests.d__3.MoveNext() in E:\A\_work\60\s\corefx\src\System.IO.Compression\tests\ZipArchive\zip_ManualAndCompatibilityTests.cs:line 58 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170412.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x86-Release - x64-Release - x86-Debug - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170412.01/workItem/System.IO.Compression.Tests/analysis/xunit/System.IO.Compression.Tests.zip_ManualAndCompatabilityTests~2FZipWithInvalidFileNames_ParsedBasedOnSourceOS(zipName:%20%5C%22NullCharFileName_FromUnix.zip%5C%22,%20fileName:%20%5C%22a%5C%5C06b6d%5C%22)" +18265 area-System.IO "Tests under: System.IO.IsolatedStorage.ContainsUnknownFilesTests failed with ""System.TypeInitializationException""" Opened on behalf of @Jiayili1 The test `System.IO.IsolatedStorage.ContainsUnknownFilesTests/ContainsUnknownFiles_CleanStore(scope: MachineStoreForApplication)` has failed. System.TypeInitializationException : The type initializer for 'System.IO.IsolatedStorage.TestHelper' threw an exception.\r ---- System.IO.IsolatedStorage.IsolatedStorageException : Initialization failed. Stack Trace: at System.IO.IsolatedStorage.TestHelper.WipeStores() at System.IO.IsolatedStorage.ContainsUnknownFilesTests.ContainsUnknownFiles_CleanStore(PresetScopes scope) in E:\A\_work\60\s\corefx\src\System.IO.IsolatedStorage\tests\System\IO\IsolatedStorage\ContainsUnknownFilesTests.cs:line 18 ----- Inner Stack Trace ----- at System.IO.IsolatedStorage.Helper.GetDefaultIdentityAndHash(Object& identity, String& hash, Char separator) in E:\A\_work\60\s\corefx\src\System.IO.IsolatedStorage\src\System\IO\IsolatedStorage\Helper.Win32.Unix.cs:line 124 at System.IO.IsolatedStorage.TestHelper..cctor() in E:\A\_work\60\s\corefx\src\System.IO.IsolatedStorage\tests\System\IO\IsolatedStorage\TestHelper.cs:line 28 Build : Master - 20170412.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x86-Release - x64-Release - x86-Debug - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170412.01/workItem/System.IO.IsolatedStorage.Tests/analysis/xunit/System.IO.IsolatedStorage.ContainsUnknownFilesTests~2FContainsUnknownFiles_CleanStore(scope:%20MachineStoreForApplication) +18266 area-System.IO "Test: System.IO.IsolatedStorage.CopyFileTests/CopyFile_ThrowsIsolatedStorageException failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.IO.IsolatedStorage.CopyFileTests/CopyFile_ThrowsIsolatedStorageException` has failed. Assert.Throws() Failure\r Expected: typeof(System.IO.IsolatedStorage.IsolatedStorageException)\r Actual: typeof(System.InvalidOperationException): Store must be open for this operation. Stack Trace: at System.IO.IsolatedStorage.IsolatedStorageFile.CopyFile(String sourceFileName, String destinationFileName, Boolean overwrite) Build : Master - 20170412.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x86-Release - x64-Release - x86-Debug - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170412.01/workItem/System.IO.IsolatedStorage.Tests/analysis/xunit/System.IO.IsolatedStorage.CopyFileTests~2FCopyFile_ThrowsIsolatedStorageException +18267 area-System.Security Remove dead code for System.Security.Principal.Windows Remove dead code according to #17905 Change for System.Security.Principal.Windows: http://tempcoverage.blob.core.windows.net/report2/System.Security.Principal.Windows.diff.html +18268 area-System.IO "Test: System.IO.IsolatedStorage.CreateDirectoryTests/CreateDirectory_Existance failed with ""System.IO.IsolatedStorage.IsolatedStorageException""" Opened on behalf of @Jiayili1 The test `System.IO.IsolatedStorage.CreateDirectoryTests/CreateDirectory_Existance(scope: MachineStoreForApplication)` has failed. System.IO.IsolatedStorage.IsolatedStorageException : Unable to determine application identity of the caller. Stack Trace: at System.IO.IsolatedStorage.IsolatedStorage.InitStore(IsolatedStorageScope scope, Type appEvidenceType) at System.IO.IsolatedStorage.IsolatedStorageFile.GetStore(IsolatedStorageScope scope, Type applicationEvidenceType) at System.IO.IsolatedStorage.IsoStorageTest.GetPresetScope(PresetScopes scope) in E:\A\_work\60\s\corefx\src\System.IO.IsolatedStorage\tests\System\IO\IsolatedStorage\IsoStorageTest.cs:line 54 at System.IO.IsolatedStorage.CreateDirectoryTests.CreateDirectory_Existance(PresetScopes scope) in E:\A\_work\60\s\corefx\src\System.IO.IsolatedStorage\tests\System\IO\IsolatedStorage\CreateDirectoryTests.cs:line 63 Build : Master - 20170412.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x86-Release - x64-Release - x86-Debug - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170412.01/workItem/System.IO.IsolatedStorage.Tests/analysis/xunit/System.IO.IsolatedStorage.CreateDirectoryTests~2FCreateDirectory_Existance(scope:%20MachineStoreForApplication) +18269 area-System.IO "Test: System.IO.IsolatedStorage.GetStoreTests/GetEnumerator_NoOp failed with ""System.ArgumentException""" Opened on behalf of @Jiayili1 The test `System.IO.IsolatedStorage.GetStoreTests/GetEnumerator_NoOp` has failed. System.ArgumentException : Invalid scope, expected User, User|Roaming or Machine. Stack Trace: at System.IO.IsolatedStorage.IsolatedStorageFile.VerifyGlobalScope(IsolatedStorageScope scope) at System.IO.IsolatedStorage.IsolatedStorageFile.GetEnumerator(IsolatedStorageScope scope) at System.IO.IsolatedStorage.GetStoreTests.GetEnumerator_NoOp() in E:\A\_work\60\s\corefx\src\System.IO.IsolatedStorage\tests\System\IO\IsolatedStorage\GetStoreTests.cs:line 91 Build : Master - 20170412.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x86-Release - x64-Release - x86-Debug - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170412.01/workItem/System.IO.IsolatedStorage.Tests/analysis/xunit/System.IO.IsolatedStorage.GetStoreTests~2FGetEnumerator_NoOp +18270 area-System.Security "Desktop: System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC192_NoPadding Failed with ""System.ArgumentException""" Failed test: System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC192_NoPadding Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/15/testReport/System.Security.Cryptography.Encryption.Aes.Tests/AesCipherTests/VerifyKnownTransform_CBC192_NoPadding/ MESSAGE: System.ArgumentException : The specified key is not a valid size for this algorithm.\r\nParameter name: key +++++++++++++++++++ STACK TRACE: ~~~ at System.Security.Cryptography.AesCryptoServiceProvider.CreateEncryptor(Byte[] key, Byte[] iv) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.AesEncryptDirectKey(Aes aes, Byte[] key, Byte[] iv, Byte[] plainBytes) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs:line 612 at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesTransformDirectKey(CipherMode cipherMode, PaddingMode paddingMode, Byte[] key, Byte[] iv, Byte[] plainBytes, Byte[] cipherBytes) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs:line 601 at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.VerifyKnownTransform_CBC192_NoPadding() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs:line 330 ~~~ +18271 area-System.Security "Desktop: System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.WrongKeyFailDecrypt_2 failed with ""System.Security.Cryptography.CryptographicException""" Failed test: System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.WrongKeyFailDecrypt_2 Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/15/testReport/System.Security.Cryptography.Encryption.Aes.Tests/AesCipherTests/WrongKeyFailDecrypt_2/ MESSAGE: System.Security.Cryptography.CryptographicException : The specified key is not a valid size for this algorithm. +++++++++++++++++++ STACK TRACE: at System.Security.Cryptography.AesCryptoServiceProvider.set_Key(Byte[] value) at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.WrongKeyFailDecrypt_2() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesCipherTests.cs:line 430 +18272 area-System.Net "Desktop: System.Net.Sockets.Tests.TcpClientTest.Dispose_CancelsConnectAsync failed with ""System.NullReferenceException""" Failed test: System.Net.Sockets.Tests.TcpClientTest.Dispose_CancelsConnectAsync Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/15/testReport/System.Net.Sockets.Tests/TcpClientTest/Dispose_CancelsConnectAsync_connectByName__False_/ **MESSAGE:** System.NullReferenceException : Object reference not set to an instance of an object. +++++++++++++++++++ **STACK TRACE:** ~~~ at System.Net.Sockets.TcpClient.EndConnect(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Tests.TcpClientTest.d__24.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Sockets\tests\FunctionalTests\TcpClientTest.cs:line 436 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +18273 area-Serialization Desktop: XmlDictionaryWriterTest.FragmentTest failed Failed test: XmlDictionaryWriterTest.FragmentTest Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/15/testReport/(root)/XmlDictionaryWriterTest/FragmentTest/ MESSAGE: Assert.False() Failure\r\nExpected: False\r\nActual: True +++++++++++++++++++ STACK TRACE: at XmlDictionaryWriterTest.FragmentTest() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Xml\tests\XmlDictionaryWriterTest.cs:line 299 +18274 area-Serialization "Desktop: XmlDictionaryWriterTest.CreateMtomReaderWriter_Throw_PNSE failed with ""Xunit.Sdk.ThrowsException""" Failed test: XmlDictionaryWriterTest.CreateMtomReaderWriter_Throw_PNSE Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/15/testReport/(root)/XmlDictionaryWriterTest/CreateMtomReaderWriter_Throw_PNSE/ MESSAGE: Assert.Throws() Failure\r\nExpected: typeof(System.PlatformNotSupportedException)\r\nActual: (No exception was thrown) +++++++++++++++++++ STACK TRACE: at XmlDictionaryWriterTest.CreateMtomReaderWriter_Throw_PNSE() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Xml\tests\XmlDictionaryWriterTest.cs:line 174 +18275 area-System.Net Fix length calculation in HttpContent to avoid unnecessary growth Fixes https://github.com/dotnet/corefx/issues/18219 cc: @vitek-karas, @davidsh, @danmosemsft +18276 area-System.Data Column Encryption support in SqlClient for .NET Core "When using a DbContext with a ConnectionString like ``` { ""ConnectionStrings"": { ""DefaultConnection"": ""Server=.\\SQLEXPRESS;Database=EFGetStarted.AspNetCore.NewDb;Trusted_Connection=True;Column Encryption Setting=Enabled;MultipleActiveResultSets=true;"" } } ``` I get the following error StackTrace ``` {System.ArgumentException: Keyword not supported: 'column encryption setting'. at System.Data.Common.DbConnectionOptions.ParseInternal(Dictionary`2 parsetable, String connectionString, Boolean buildChain, Dictionary`2 synonyms) at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Dictionary`2 synonyms) at System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) at System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous) at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key) at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value) at Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerConnection.CreateDbConnection() at Microsoft.EntityFrameworkCore.Internal.LazyRef`1.get_Value() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open() at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.BeginTransaction(IsolationLevel isolationLevel) at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.Execute(Tuple`2 parameters) at Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](Func`2 operation, Func`2 verifySucceeded, TState state) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(IReadOnlyList`1 entriesToSave) at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChanges(Boolean acceptAllChangesOnSuccess) at Microsoft.EntityFrameworkCore.DbContext.SaveChanges(Boolean acceptAllChangesOnSuccess) at xBN.Repository.Repositories.EntityBaseRepository`1.Commit() in C:\!Checkouts\git checkouts\xBN\xBN.Service\Repositories\EntityBaseRepository.cs:line 98 at xBN.API.Controllers.CompanyController.Get(Int32 id) in C:\!Checkouts\git checkouts\xBN\xBN.API\Controllers\CompanyController.cs:line 37 at lambda_method(Closure , Object , Object[] ) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__27.MoveNext()} ``` The issue is about adding support for the Column Encryption Setting to the .NET Core ADO.NET SqlClient." +18277 area-System.Data SqlTransaction and TransactionScope leak isolation level "The TransactionScope class seems to ""leak"" it's isolation level to future queries on the same (pooled) connection. I would expect the isolation level of the connection to be restored when the transaction ends or is disposed. Here is a snippet which reproduces the behavior: ```c# SqlConnection.ClearAllPools(); var conn = new SqlConnection(new SqlConnectionStringBuilder { DataSource = @"".\sqlexpress"", IntegratedSecurity = true }.ConnectionString); Action printIsolationLevel = () => { var cmd = conn.CreateCommand(); cmd.CommandText = @""SELECT CASE transaction_isolation_level WHEN 0 THEN 'Unspecified' WHEN 1 THEN 'ReadUncommitted' WHEN 2 THEN 'ReadCommitted' WHEN 3 THEN 'Repeatable' WHEN 4 THEN 'Serializable' WHEN 5 THEN 'Snapshot' END AS TRANSACTION_ISOLATION_LEVEL FROM sys.dm_exec_sessions where session_id = @@SPID""; Console.WriteLine(cmd.ExecuteScalar()); }; conn.Open(); printIsolationLevel(); // ""ReadCommitted"" conn.Close(); using (var scope = new TransactionScope( TransactionScopeOption.RequiresNew, new TransactionOptions { IsolationLevel = System.Transactions.IsolationLevel.Serializable })) { conn.Open(); printIsolationLevel(); // ""Serializable"" conn.Close(); } conn.Open(); printIsolationLevel(); // ""Serializable"" !!? conn.Close(); ```" +18278 area-System.Net Enable System.Net.Sockets.Tests on netfx - Adds a netfx test config - Adds a simple SocketTaskExtensions to the test project to be used in the netfx config - Fixes or skips tests on netfx configuration cc: @davidsh, @safern Closes https://github.com/dotnet/corefx/issues/18152 Contributes to https://github.com/dotnet/corefx/issues/17690 +18279 area-System.Reflection Three System.Reflection.Tests.AssemblyTests tests failed with file sharing error ``` System.Reflection.Tests.AssemblyTests.Test_UnsafeLoadFrom [FAIL] System.IO.IOException : The process cannot access the file '/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_release_prtest/bin/AnyOS.AnyCPU.Release/System.Runtime.Tests/netcoreapp/TestAssembly/System.Runtime.Tests.dll' because it is being used by another process. Stack Trace: at System.IO.FileStream.Init(FileMode mode, FileShare share) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.UnixFileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite) at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite) at System.Reflection.Tests.AssemblyTests..ctor() at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) System.Reflection.Tests.AssemblyTests.GetFiles [FAIL] System.IO.IOException : The process cannot access the file '/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_release_prtest/bin/AnyOS.AnyCPU.Release/System.Runtime.Tests/netcoreapp/TestAssembly/System.Runtime.Tests.dll' because it is being used by another process. Stack Trace: at System.IO.FileStream.Init(FileMode mode, FileShare share) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.UnixFileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite) at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite) at System.Reflection.Tests.AssemblyTests..ctor() at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) System.Reflection.Tests.AssemblyTests.GetFile [FAIL] System.IO.IOException : The process cannot access the file '/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_release_prtest/bin/AnyOS.AnyCPU.Release/System.Runtime.Tests/netcoreapp/TestAssembly/System.Runtime.Tests.dll' because it is being used by another process. Stack Trace: at System.IO.FileStream.Init(FileMode mode, FileShare share) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.UnixFileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite) at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite) at System.Reflection.Tests.AssemblyTests..ctor() at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) ``` +18280 area-Infrastructure "Run ""chmod"" on Tools/scripts/docker directory." We were missing some nested `.sh` files because of how the old command was constructed. This should catch everything. @dagood @MattGal +18281 area-System.Data Move SQLResource.cs to Common [System.Data.Common/src/System/Data/SQLTypes/SQLResource.cs](https://github.com/dotnet/corefx/blob/master/src/System.Data.Common/src/System/Data/SQLTypes/SQLResource.cs) and [System.Data.SqlClient/src/System/Data/SqlTypes/SQLResource.cs](https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/SqlTypes/SQLResource.cs) look identical but have different naming conventions. I took the one from SqlClient and moved it to [Common/src/System/Data/Common](https://github.com/dotnet/corefx/tree/master/src/Common/src/System/Data/Common) (this folder contains other types used by links by these projects) and removed both in System.Data.Common and System.Data.SqlClient. +18282 area-System.Net Fix UdpClient tests that require superuser rights The tests try to bind to a port that's generally configured to require elevated privileges. The fix is to just wrap the code in a try/catch, and if a SocketException emerges, verify that the reason is access denied. https://github.com/dotnet/corefx/pull/18282/files?w=1 Fixes https://github.com/dotnet/corefx/issues/17421 cc: @steveharter, @Priya91 +18283 area-System.Xml Remove dependency System.Private.Xml dependency on System.Reflection.Emit.* on uapaot System.Reflection.Emit.* is not available on uapaot. System.Private.Xml dependency on System.Reflection.Emit.* should be removed. https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/src/System.Private.Xml.csproj#L517 +18284 area-System.Linq Expression.Convert and Expression.ConvertChecked should support tuple conversions. "Currently the code: ```C# Expression.Convert(Expression.Constant((1, 1)), typeof((long, long))) ``` Throws an `InvalidOperationException` with the message ```C# ""No coercion operator is defined between types 'System.ValueTuple`2[System.Int32,System.Int32]' and 'System.ValueTuple`2[System.Int64,System.Int64]'."" ``` As such conversions are now among the standard conversions one expects to work with the main .NET languages, they should work with S.L.Expressions too. As well as being of value in itself, this will facilitate #17453 as then MS.CSharp can be changed to recognise when such conversions are relevant and create the relevant Linq expression, and would be at least beneficial to dotnet/roslyn#12897" +18285 area-System.Reflection setup for system.reflection.assemblytests needs to run only once and … …not per test Fixes #18279 +18286 area-System.Memory Issue #18242 - fix blocksize computation Fixes #18242. @shiftylogic Kindly review. +18287 area-System.Net Disable UDP test I contemplated just deleting the whole test, but I've instead disabled it for now, and I'm pushing the associated issue out to Future. Other UDP tests similar to this were hardened against packet loss, but this one wasn't. And if this one is hardened, it will end up looking basically like the other tests that already exist. (We don't yet know whether it's actually packet loss or whether it just looks like it due to other tests running at the same time consuming the packets, but either way, this test is in the same bucket as a bunch of other UDP tests that were previously hardened for it; this one was just missed.) cc: @steveharter https://github.com/dotnet/corefx/issues/16945 +18288 area-Infrastructure Update Standard to preview1-25212-02 (master) +18289 area-System.Linq Support tuple conversions in Expression.Convert and ConvertChecked Closes #18284 +18290 area-System.IO System.IO.Pipes.Tests.Perf_PipeTest hangs on Unix This test seems to hang when run on Unix. There are a couple of threads waiting on PipeStream writes and socket loops. To repro, just run this test project: ``` Tools/msbuild.sh src/System.IO.Pipes/tests/Performance/System.IO.Pipes.Performance.Tests.csproj /t:rebuildandtest /p:outerloop=true ``` +18292 area-System.Linq Remove .rd.xml directive for RuntimeBinderException from System.Linq.Expressions rd.ml The .rd.xml embedded in System.Linq.Expressions has a runtime directive for RuntimeBinderException which comes from the Microsoft.CSharp assembly. For one the directive is in the wrong assembly element and causes warnings. The other issue is that Microsoft.CSharp is not in the closure of references from System.Linq.Expressions, so System.Linq.Expressions should not have a directive for it, as it's not guaranteed to always be present. +18293 area-System.Security Using incorrect API in GetExceptionFromNtStatus RtlNtStatusToDosError should be LsaNtStatusToWinError. It's just a bug -- MSDN says LsaNtStatusToWinError for all LsaLogonUser calls and it's what Desktop uses. Don't know why we changed it. Incidentally it's also what windows intend to add to WACK so it's necessary for UWP but since we already shipped and it works it desn't seem needed for 2.0 ``` private static Exception GetExceptionFromNtStatus (int status) { if ((uint) status == Win32Native.STATUS_ACCESS_DENIED) return new UnauthorizedAccessException(); if ((uint) status == Win32Native.STATUS_INSUFFICIENT_RESOURCES || (uint) status == Win32Native.STATUS_NO_MEMORY) return new OutOfMemoryException(); int win32ErrorCode = Win32Native.RtlNtStatusToDosError(status); return new SecurityException(Win32Native.GetMessage(win32ErrorCode)); ``` +18294 area-System.Drawing Fix System.Drawing tests on UAP Fixes #17930 +18295 area-System.Diagnostics Temporary remove UAP target for DiagnosticSource DiagnosticSource nuget package preview should be published to nuget.org to be consumed by ApplicationInsights SDK (in preview). On UWP, DiagnosticSource depends on Microsoft.NETCore.Platforms for UWP, that will not be published yet. This change **temporary** removes UAP target from DiagnosticSource and removes dependency on it from System.Net.Http for UAP. This change will be reverted once DiagnosticSource is build, published on MyGet and verified. +18296 area-System.Diagnostics Revert PR 18295 when DiagnosticSource is published on MyGet UAP target was temporary removed from DiagnosticSource to publish preview on nuget. Once the package is published, #18295 must be reverted. Please assign this to me (@lmolkova) +18297 area-System.Data System.Data - move duplicate files to Common Similar to https://github.com/dotnet/corefx/pull/18281 this PR moves `MultipartIdentifier`, `NameValuePair` and `DbConnectionPoolKey` to [Common/src/System/Data/Common](https://github.com/dotnet/corefx/tree/master/src/Common/src/System/Data/Common). System.Data.Common, System.Data.SqlClient and System.Data.Odbc used to have an identical copy of these files (DbConnectionPoolKey had a small difference in `Clone` method implementation). /cc: @marek-safar +18300 area-Infrastructure Add dll to netfx references to force bindingRedirects This dll has a reference to the earliest version of every contract desktop ever shipped. This will ensure that RAR sees conflicts and adds binding redirects. Fixes #7702 /cc @weshaggard +18301 area-System.Net Change UrlDecode behavior and merge test cases for .Net core and desktop 1. Tested in .Net framework, confirmed the difference. Also confirmed the correctness of documentation 2. Merge the test for .Net core and desktop. Since now their behaviors match, no need to test separately (https://github.com/dotnet/corefx/pull/17618#issuecomment-289933351) Fix #17627 +18302 area-Serialization Add Tests for KnownTypeAttribute.MethodName Property We should add tests for KnownTypeAttribute.MethodName Property and verify if it works on UWP. UWP toolchain does not support it. But the tests should pass as we have reflection based serialization. +18304 area-System.IO [Suggestion]: For Binary Files controlling: Add new functions to improve the speed and simpify programming "@MaleDong commented on [Sat Sep 17 2016](https://github.com/dotnet/coreclr/issues/7243) Hello all: It really makes me ""head to the wall"" if we wanna cope with binary files with the help of C# until now……:( Now you can image if we wanna do a download application in C#, we have to use MemoryStream/FileStream. However if we wanna do inserting/updating bytes into the file, we have to fetch some bytes from the file into a temporary one and then continue to do what we want... But if a file is size of GB-based.... It WON'T be a nice idea to do something like this way! I don't know whether Microsoft have nice ways to enhance the functions of FileStream/MemoryStream……ect. However I think it would be better if we now have: 1) FileStream.Insert(byte[] bytes,int startIndex,int endIndex): This is a very very useful method as far as I see——I have to save temporary binary bytes into MemoryStream. However compared with this for large files, it isn't a good way. Because we need a ""rapid-in/rapid-out"" method to direct do ""insert"". Maybe the ""bytes"" is the whole thing to be written into the binary file, startIndex: the position where the byte inserted. endIndex: to write how many bytes. 2) byte[] FileStream.Delete(int startIndex,int endIndex): Direct deleting some bytes from the file with an auto saving rapidly. The return value is the deleted bytes. --- @mikedn commented on [Sat Sep 17 2016](https://github.com/dotnet/coreclr/issues/7243#issuecomment-247762101) > But if a file is size of GB-based. If a file is large then you simply don't insert/delete byte into/from it. Inserting a single byte at offset 1 of a 1GB file requires you to copy 1GB worth of data, there's no magic around that. Any design that requires such insertion/deletion is simply a bad design and the framework has no reason to provide support for that. > I have to save temporary binary bytes into MemoryStream I don't see why you need a MemoryStream for that. If the file is large then you probably don't want to load it in memory. And if you really must insert something into the file then you can simply copy the data after the insert position using a trivial read/write loop. --- @MaleDong commented on [Sat Sep 17 2016](https://github.com/dotnet/coreclr/issues/7243#issuecomment-247762816) @mikedn :Yes, that's the problem——I couldn't agree with you any more on this:) Certialy it seems that we cannot do inserting/deleting to a binary file with a huge size. And we cannot copy the whole rest bytes into the memory. This means it is hard if we wanna cope with bytes for a large file. The reason why I hope this is that if we wanna add some specific symbol as the ""head"" for my specific file (e.g: for the 1st time when I download a resource from the remote server, I wanna write the url address into the binary file with binary formation. However I must delete that to restore what it is later with the downloaded bytes after the symbol head....). This is ONLY an example, and such things are always happening: Imaging that if we wanna make a specific kind of binary file with certain head inside specific position and then our program can analyze that or mark that..... And if the file is very large. What can you do? Hope you can understand what I said. And what's more:In Visual C++ (Perhaps I'm NOT familiar with C++……). We have such functions as ""CreateFileMapping"" and ""MapViewOfFile"" can easily help us jump over some bytes and read next bytes.... So our C# should also have so easily methods to cope with them. --- @mikedn commented on [Sat Sep 17 2016](https://github.com/dotnet/coreclr/issues/7243#issuecomment-247798339) > What can you do? Hope you can understand what I said. No, I don't understand. As far as I can tell you're asking for something that can't be implemented efficiently and that isn't needed anyway. Databases can store terrabytes of data in binary files without requiring the ability to insert/delete stuff in the middle of the file. > We have such functions as ""CreateFileMapping"" and ""MapViewOfFile"" can easily help us jump over some bytes and read next bytes.... I don't understand what file mapping has to do with ""jump over some bytes and read next bytes"". You can do the same thing with a stream by setting the position appropriately. And file mapping doesn't allow you to insert/data data in the middle of the file. .NET exposes file mapping functionality via [MemoryMappedFile](https://docs.microsoft.com/en-us/dotnet/core/api/system.io.memorymappedfiles.memorymappedfile#System_IO_MemoryMappedFiles_MemoryMappedFile). --- @MaleDong commented on [Sat Sep 17 2016](https://github.com/dotnet/coreclr/issues/7243#issuecomment-247814772) > Databases can store terrabytes of data in binary files without requiring the ability to insert/delete stuff in the middle of the file. However I don't need db at all... What I wanna do is just to directly controlling with a binary file with a huge amount.... Since MemoryStream and memory isn't suitable for me. So how can I cope with that? > And file mapping doesn't allow you to insert/data data in the middle of the file. .NET exposes file mapping functionality via MemoryMappedFile ``` static void Main(string[] args) { long byteLen = 0; using (FileStream fs = new FileStream(""c:\\Try.txt"",FileMode.Open)) { byteLen = fs.Length; } //Now we can map our large file into memory and insert some new chars using (MemoryMappedFile mpf = MemoryMappedFile.CreateFromFile(""c:\\Try.txt"",FileMode.Open,""Try"",byteLen+4)) { MemoryMappedViewAccessor access = mpf.CreateViewAccessor(); byte b = 0; //Do shifting to the empty memory for (long i = byteLen-1; i >=0; --i) { b = access.ReadByte(i); System.Console.WriteLine((char)b); access.Write(i+4, b); } //Write down the correct position by inserting new chars var bytes = Encoding.ASCII.GetBytes(""abcd""); //Leave the whole memory for the file and write them directly for (int i = 0; i < bytes.Length; i++) { access.Write(i, bytes[i]); } access.Flush(); } } ``` Now from the codes you can see that I can directly do inserting. Deleting can be also done with such a trick.... However what I'm worrying about is: 1) I still have to copy the byte one by one to shift it to ""empty memory"" into the file 2) My file gets small, however if the file is very large. How can I cope with that? I still have to map the whole file to the memory.... Since Microsoft has added the nice function since net framework 4.0, and it can let us easily directly to cope with files such as what we are doing in the memory……Why don't you offer inserting/deleting functions? It would be very easy for us to Read/Write binary files for certain bytes. --- @mikedn commented on [Sat Sep 17 2016](https://github.com/dotnet/coreclr/issues/7243#issuecomment-247827564) What part of ""As far as I can tell you're asking for something that **can't be implemented efficiently** and that isn't needed anyway"" wasn't clear? --- @MaleDong commented on [Sun Sep 18 2016](https://github.com/dotnet/coreclr/issues/7243#issuecomment-247834936) I see……However we really cannot find any other ways to do inserting/deleting bytes for a large file except for it that we have to save bytes into memory first? And if not, so if you meet this problem. How will you process with that? Maybe we should have other ways to make it better. --- @mikedn commented on [Mon Sep 19 2016](https://github.com/dotnet/coreclr/issues/7243#issuecomment-248067249) > However we really cannot find any other ways to do inserting/deleting bytes for a large file except for it that we have to save bytes into memory first? I told you before that you can do this using a `FileStream` and a simple read/write loop to move the part of the file that's after the insert/delete position. After all, if you load the file in memory, you would do the same thing. > And if not, so if you meet this problem. How will you process with that? Binary file formats that require data to be inserted/deleted typically use fixed size pages. An ""entity"" is stored in multiple pages that are linked together in a linked list, B-tree or other suitable data structure that allows fast page insertion/removal. --- @MaleDong commented on [Tue Sep 20 2016](https://github.com/dotnet/coreclr/issues/7243#issuecomment-248305059) > An ""entity"" is stored in multiple pages that are linked together in a linked list, B-tree or other suitable data structure that allows fast page insertion/removal. So Can this be implemented by the VC++ or C++ dll, and called through .NET platform? --- @gkhanna79 commented on [Sun Mar 05 2017](https://github.com/dotnet/coreclr/issues/7243#issuecomment-284296437) CC @danmosemsft @AlexGhiondea --- @MaleDong commented on [Sun Mar 05 2017](https://github.com/dotnet/coreclr/issues/7243#issuecomment-284303695) Thanks @gkhanna! What do you think of this? --- @AlexGhiondea commented on [Sun Mar 05 2017](https://github.com/dotnet/coreclr/issues/7243#issuecomment-284306097) @MaleDong could you be more specific as to what you are looking for? Are you thinking of adding a convenience method for doing the 2 operations (delete/insert)? Or are you asking for an efficient way of implementing those 2 methods? --- @MaleDong commented on [Sun Mar 05 2017](https://github.com/dotnet/coreclr/issues/7243#issuecomment-284313498) Thanks @AlexGhiondea for your quick reply! If possible, Efficient way with the two methods is fine. If not, Offering Insert/Delete for direct-byte controlling is also nice. --- @AlexGhiondea commented on [Mon Mar 06 2017](https://github.com/dotnet/coreclr/issues/7243#issuecomment-284483437) I see. I don't believe there is a generic efficient approach for insert/delete. Could you give me more data about when those methods would be used? I am trying to see if there is enough value to consider adding them to the framework. --- @MaleDong commented on [Tue Mar 07 2017](https://github.com/dotnet/coreclr/issues/7243#issuecomment-284663923) A typical example is: When we wanna make a memory-based file (something similar to MemoryMappedFile), but we may check for some special bytes and do inserting/deleting at some specific positions to make a mocking memory data for dmp or log…… We don't directly control with memory but using ""MemoryFile"" instead. But now we cannot do direct insert or delete. --- @AlexGhiondea commented on [Tue Mar 07 2017](https://github.com/dotnet/coreclr/issues/7243#issuecomment-284667114) Thanks for the example. It is a bit vague, but it sounds more like a solution would look more like a convenience method and would apply in a small number of scenario. I don't believe there is a generic solution that we can introduce for this problem since, in order to make the insert/delete operations fast you need domain knowledge of how you are going to use those files. Because it requires domain specific knowledge/decisions I don't believe this is a good fit for the framework. --- @danmosemsft commented on [Wed Apr 12 2017](https://github.com/dotnet/coreclr/issues/7243#issuecomment-293778745) Moving to corefx as this is an api request. " +18305 area-Infrastructure Instructions for dogfooding consuming 2.0 packages in VS2017 RTM @ericstj I am not sure what this involves -- clearly the updated nuget is not publicly available, so what would even be required here? @eerhardt +18307 area-Infrastructure Add PreferInbox=true to corefx assemblies "This adds `[assembly:System.Reflection.AssemblyMetadata(""PreferInbox"", ""True"")]` to all corefx assemblies. Mono will use this to ignore the assembly if it's in the application directory and it has the same assembly in its framework. Fixes #15112 /cc @marek-safar " +18308 area-System.IO "Desktop: System.IO.Tests.WaitForChangedTests.CreatedDeleted_Success failed with ""Xunit.Sdk.EqualException""" Failed test: System.IO.Tests.WaitForChangedTests.CreatedDeleted_Success Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/16/testReport/System.IO.Tests/WaitForChangedTests/CreatedDeleted_Success_changeType__Deleted_/ **MESSAGE:** Assert.Equal() Failure\r\nExpected: Deleted\r\nActual: 0 +++++++++++++++++++ **STACK TRACE:** at System.IO.Tests.WaitForChangedTests.CreatedDeleted_Success(WatcherChangeTypes changeType) in D:\j\workspace\outerloop_net---903ddde6\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.WaitForChanged.cs:line 152 +18310 area-System.Reflection "Desktop: System.Reflection.Tests.AssemblyTests.Test_LoadFrom failed with ""Xunit.Sdk.EqualException""" Failed test: System.Reflection.Tests.AssemblyTests.Test_LoadFrom Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/16/testReport/System.Reflection.Tests/AssemblyTests/Test_LoadFrom/ **MESSAGE:** Assert.Equal() Failure Expected: System.Runtime.Tests, Version=4.2.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb Actual: System.Runtime.Tests, Version=4.2.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb +++++++++++++++++++ **STACK TRACE:** at System.Reflection.Tests.AssemblyTests.Test_LoadFrom() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime\tests\System\Reflection\AssemblyTests.cs:line 337 +18311 area-System.Reflection "Desktop: System.Reflection.Tests.AssemblyNameTests.Ctor_String failed with ""Xunit.Sdk.EqualException""" Failed test: System.Reflection.Tests.AssemblyNameTests.Ctor_String Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/16/testReport/System.Reflection.Tests/AssemblyNameTests/Ctor_String_name____NAME____expectedName____NAME___/ **Message:** Assert.Equal() Failure  (pos 0) Expected: NAME Actual: name  (pos 0) **Stack Trace:** D:\j\workspace\outerloop_net---903ddde6\src\System.Reflection\tests\AssemblyNameTests.cs(53,0): at System.Reflection.Tests.AssemblyNameTests.Ctor_String(String name, String expectedName) +18312 area-System.Collections "Desktop: DataContractSerializerTests.DCS_ReadOnlyDictionary failed with ""Xunit.Sdk.EqualException""" "DataContractSerializerTests.DCS_ReadOnlyDictionary [FAIL] **Message:** ~~~ XML comparison is also failing Test failed for input: System.Collections.ObjectModel.ReadOnlyDictionary`2[System.String,System.Int32 Expected: <_dictionary xmlns:a=""http://schemas.microsoft.com/2003/10/Serialization/Arrays"">Foo1Bar2 Actual: Foo1Bar2 Expected: True Actual: False ~~~ **Stack Trace:** at DataContractSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractSerializerSettings settings, Func`1 serializerFactory, Boolean skipStringCompare) in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 2799 at DataContractSerializerTests.DCS_ReadOnlyDictionary() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 1891 Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/16/testReport/(root)/DataContractSerializerTests/DCS_ReadOnlyDictionary/" +18313 area-Serialization "Desktop: DataContractSerializerTests.XsdDataContractExporterTest failed with ""XUnit.Sdk.ThrowsException""" Failed test: DataContractSerializerTests.XsdDataContractExporterTest Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/16/testReport/(root)/DataContractSerializerTests/XsdDataContractExporterTest/ **MESSAGE:** Assert.Throws() Failure\r\nExpected: typeof(System.PlatformNotSupportedException)\r\nActual: (No exception was thrown) +++++++++++++++++++ **STACK TRACE:** at DataContractSerializerTests.XsdDataContractExporterTest() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 2688 +18314 area-System.Net "Desktop: System.PrivateUri.Tests.UriRelativeResolutionTest.Uri_Relative_SimplePartialPathWithScheme_Unicode_ReturnsPartialPathWithScheme failed with ""System.NullReferenceException""" Failed test: System.PrivateUri.Tests.UriRelativeResolutionTest.Uri_Relative_SimplePartialPathWithScheme_Unicode_ReturnsPartialPathWithScheme Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/16/testReport/System.PrivateUri.Tests/UriRelativeResolutionTest/Uri_Relative_SimplePartialPathWithScheme_Unicode_ReturnsPartialPathWithScheme **MESSAGE:** System.NullReferenceException : Object reference not set to an instance of an object. +++++++++++++++++++ **STACK TRACE:** at System.Uri.CreateUriInfo(Flags cF) at System.Uri.EnsureUriInfo() at System.Uri.ParseRemaining() at System.Uri.InitializeUri(ParsingError err, UriKind uriKind, UriFormatException& e) at System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind) at System.PrivateUri.Tests.UriRelativeResolutionTest.Uri_Relative_SimplePartialPathWithScheme_Unicode_ReturnsPartialPathWithScheme() in D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Uri\tests\FunctionalTests\UriRelativeResolutionTest.cs:line 152 +18315 area-System.Net "Desktop: Tests under ""System.PrivateUri.Tests.UriBuilderTests"" failed with ""Xunit.Sdk.EqualException""" "~~~ System.PrivateUri.Tests.UriBuilderTests.TestQuery [FAIL] Assert.Equal() Failure  (pos 1) Expected: ?date=yesterday Actual: ??date=yesterday  (pos 1) Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Uri\tests\FunctionalTests\UriBuilderTests.cs(23,0): at System.PrivateUri.Tests.UriBuilderTests.TestQuery() System.PrivateUri.Tests.UriBuilderTests.Fragment_Get_Set(value: ""#fragment"", expected: ""#fragment"") [FAIL] Assert.Equal() Failure  (pos 1) Expected: #fragment Actual: ##fragment  (pos 1) Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Uri\tests\FunctionalTests\UriBuilderTests.cs(301,0): at System.PrivateUri.Tests.UriBuilderTests.Fragment_Get_Set(String value, String expected) ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/16/testReport/System.PrivateUri.Tests/UriBuilderTests/Fragment_Get_Set_value_____fragment____expected_____fragment___/ https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/16/testReport/System.PrivateUri.Tests/UriBuilderTests/TestQuery/" +18316 area-System.Net "Desktop: tests under ""System.PrivateUri.Tests.UriRelativeResolutionTest"" failed with ""Xunit.Sdk.EqualException""" ~~~ System.PrivateUri.Tests.UriRelativeResolutionTest.Uri_Unicode_SurrogatePairs_Scheme [FAIL] Assert.Equal() Failure  (pos 9) Expected: scheme:?? Actual: scheme:????  (pos 9) Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Uri\tests\FunctionalTests\UriRelativeResolutionTest.cs(242,0): at System.PrivateUri.Tests.UriRelativeResolutionTest.Uri_Unicode_SurrogatePairs_Scheme() ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/16/testReport/System.PrivateUri.Tests/UriRelativeResolutionTest/Uri_Unicode_SurrogatePairs_Scheme/ +18317 area-System.Diagnostics "System.Diagnostics.Tests.ProcessTests.GetProcessesByName_NoSuchProcess_ReturnsEmpty failed with ""Xunit.Sdk.EmptyException"" in CI" "~~~ System.Diagnostics.Tests.ProcessTests.GetProcessesByName_NoSuchProcess_ReturnsEmpty(processName: null) [FAIL] Assert.Empty() Failure System.Diagnostics.Tests.ProcessTests.GetProcessesByName_NoSuchProcess_ReturnsEmpty(processName: \""\"") [FAIL] Assert.Empty() Failure ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release/643/consoleText Configuration: OuterLoop_netcoreapp_OS X 10.12_release " +18318 area-System.Net System.Net.Security.Tests.SslStreamStreamToStreamTest_Sync.SslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success [FAIL] **This test fails on Windows 10 Pro amd64:** System.Net.Security.Tests.SslStreamStreamToStreamTest_Sync.SslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success [FAIL] System.IO.IOException : The read operation failed, see inner exception. ---- System.TimeoutException : VirtualNetwork: Timeout reading the next frame. Stack Trace: F:\repos\corefx\src\System.Net.Security\src\System\Net\Security\SslStreamInternal.cs(171,0): at System.Net.Security.SslStreamInternal.EndRead(IAsyncResult asyncResult) F:\repos\corefx\src\System.Net.Security\src\System\Net\Security\SslStream.cs(537,0): at System.Net.Security.SslStream.EndRead(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) F:\repos\corefx\src\System.Net.Security\tests\FunctionalTests\SslStreamStreamToStreamTest.cs(318,0): at System.Net.Security.Tests.SslStreamStreamToStreamTest.d__10.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- F:\repos\corefx\src\Common\tests\System\Net\VirtualNetwork\VirtualNetwork.cs(42,0): at System.Net.Test.Common.VirtualNetwork.ReadFrame(Boolean server, Byte[]& buffer) F:\repos\corefx\src\Common\tests\System\Net\VirtualNetwork\VirtualNetworkStream.cs(118,0): at System.Net.Test.Common.VirtualNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) F:\repos\corefx\src\System.Net.Security\tests\FunctionalTests\NotifyReadVirtualNetworkStream.cs(22,0): at System.Net.Security.Tests.NotifyReadVirtualNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) F:\repos\corefx\src\Common\tests\System\Net\VirtualNetwork\VirtualNetworkStream.cs(138,0): at System.Net.Test.Common.VirtualNetworkStream.<>c__DisplayClass27_0.b__0() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() F:\repos\corefx\src\System.Net.Security\src\System\Net\FixedSizeReader.cs(56,0): at System.Net.FixedSizeReader.d__1.MoveNext() +18319 area-Serialization Add 9 test cases for DataContractJsonSerializer @huanwu, @shmao , please help review the code. +18321 area-System.Diagnostics GetProcessesByName_NoSuchProcess_ReturnsEmpty test failing This test is newly added and has been taking out a bunch of runs, e.g. https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug_prtest/1701/ https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug_prtest/1702/ https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug_prtest/1704/ https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release_prtest/1705/ https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release_prtest/1707/ ``` System.Diagnostics.Tests.ProcessTests.GetProcessesByName_NoSuchProcess_ReturnsEmpty(processName: null) [FAIL] Assert.Empty() Failure Stack Trace: at System.Diagnostics.Tests.ProcessTests.GetProcessesByName_NoSuchProcess_ReturnsEmpty(String processName) ``` +18324 area-System.Diagnostics Remote machine process tests failing in CI "``` System.Diagnostics.Tests.ProcessTests.TestProcessOnRemoteMachineWindows [FAIL] System.InvalidOperationException : Couldn't connect to remote machine. ---- System.InvalidOperationException : Process performance counter is disabled, so the requested operation cannot be performed. Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(521,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(265,0): at System.Diagnostics.NtProcessManager.GetProcessIds(String machineName, Boolean isRemoteMachine) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(33,0): at System.Diagnostics.ProcessManager.IsProcessRunning(Int32 processId, String machineName) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\Process.cs(1055,0): at System.Diagnostics.Process.GetProcessById(Int32 processId, String machineName) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\tests\ProcessTests.cs(868,0): at System.Diagnostics.Tests.ProcessTests.d__76.MoveNext() D:\j\workspace\windows_nt_re---37265eab\src\System.Linq\src\System\Linq\Select.cs(133,0): at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() ----- Inner Stack Trace ----- D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(550,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(511,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) System.Diagnostics.Tests.ProcessTests.GetProcessesByName_RemoteMachineNameWindows_ReturnsExpected(machineName: \""machine\"") [FAIL] System.InvalidOperationException : Couldn't connect to remote machine. ---- System.InvalidOperationException : Process performance counter is disabled, so the requested operation cannot be performed. Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(521,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\Process.cs(1107,0): at System.Diagnostics.Process.GetProcesses(String machineName) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\Process.Windows.cs(27,0): at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\tests\ProcessTests.cs(821,0): at System.Diagnostics.Tests.ProcessTests.GetProcessesByName_ProcessNameMachineName_ReturnsExpected(String machineName) ----- Inner Stack Trace ----- D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(550,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(511,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) System.Diagnostics.Tests.ProcessTests.GetProcessesByName_RemoteMachineNameWindows_ReturnsExpected(machineName: \""\\\\machine\"") [FAIL] System.InvalidOperationException : Couldn't connect to remote machine. ---- System.InvalidOperationException : Process performance counter is disabled, so the requested operation cannot be performed. Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(521,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\Process.cs(1107,0): at System.Diagnostics.Process.GetProcesses(String machineName) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\Process.Windows.cs(27,0): at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\tests\ProcessTests.cs(821,0): at System.Diagnostics.Tests.ProcessTests.GetProcessesByName_ProcessNameMachineName_ReturnsExpected(String machineName) ----- Inner Stack Trace ----- D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(550,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(511,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) ```" +18328 area-System.Net Min required libcurl version on Redhat? Hi, Our [vsts-agent](https://github.com/Microsoft/vsts-agent) is built on dotnet core 1.1 In pre-req doc dotnet core only mentioned about it needs libcurl on Redhat, but there is no min version. Since the libcurl in Redhat7.2 is 7.29 which is pretty old, there are few bug we got report about the old version libcurl, ex, NTLM not working properly, proxy not working properly. Can we update the doc to provide better guidance? or Can dotnet core work with Redhat to let them update the libcurl? We have enterprise customer who are not allowed to update libcurl from source. +18334 area-Infrastructure Remove some TrimEnd workarounds when updating to latest MSBuild We have a few places where we chain together TrimEnd statements. We can replace this with a single call after updating msbuild. See https://github.com/dotnet/corefx/pull/18306#discussion_r111433796. +18336 area-Infrastructure Disable merging IBC data to unblock build Temporarily disable `EnableProfileGuidedOptimization`. Currently it tries to restore a package during the first project build that needs it: this seems to lead to a race condition causing official build failures. I am also working on moving the package restore to the Sync step, but this PR is a more immediate fix to get builds unblocked for now. @ericstj @MattGal @shawnro +18338 area-System.IO .NETCoreApp 2.0, System.IO.Compression assembly load failure I am doing app building using .NET Core 2.0.0-preview1-001961-00. At run time I am getting the following error: System.IO.FileLoadException occurred HResult=0x80131040 Message=Could not load file or assembly 'System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) Source=System.Net.Http StackTrace: at System.Net.Http.WinHttpResponseParser.CreateResponseMessage(WinHttpRequestState state, Boolean doManualDecompressionCheck) at System.Net.Http.WinHttpHandler.d__105.MoveNext() As far as I can tell System.IO.Compression assembly is right next to System.Net.Http assembly that my application is loading, they are both in C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.0-preview1-001961-00 Not sure why there would be a mismatch? +18342 area-Infrastructure Enable merging IBC data: fix IBC data package restore by moving it to Sync Reverts https://github.com/dotnet/corefx/pull/18336 to reenable IBC data merging. Fixes the build break by restoring the IBC data/OptimizationData package during the `Sync` step of the build rather than during the parallel product build. I've mirrored the Tools-Override change to https://github.com/dotnet/buildtools/pull/1434. +18343 area-System.IO Change FileSystemInfo.CreationTime fall back on Unix If birth time isn't available, CreationTime currently falls back to `default(DateTimeOffset)`. This changes it to instead fall back to the last access (st_atime) or status change time (st_ctime), whichever is older. cc: @ianhays, @billwert, @terrajobst, @JeremyKuhne Closes https://github.com/dotnet/corefx/issues/16782 +18344 area-System.Security Enable the creation of certificates and cert requests The new CertificateRequest class allows a caller to specify a subject name, public key, and extensions for an extension request into a PKCS#10 blob to send to a certificate authority. The new CertificateRequest class allows a caller to set all of the fields in an X.509 v3 certificate, with the exception of the v2 IssuerUniqueId and SubjectUniqueId fields, as they are considered deprecated. Accelerators exist for self-signing, as well as chain-signing given an existing X509Certificate2 instance with a private key already associated. This change also adds CopyWithPrivateKey(this X509Certificate2 cert, {RSA|DSA|ECDSA} key) to enable scenarios where a public cert and private key are held independently but a unification is desired. This makes UNIX-style .pem/.key loading easier, but still requires users understand how to load the .key file. Fixes #17892. Fixes #7129. Fixes #14284. +18345 area-System.Linq Remove unresolvable directive from System.Linq.Expression.rd.xml Since System.Linq.Expressions doesn't have Microsoft.CSharp in its closure, so it should not have directives for types from it, since those directives might not be always resolvable. +18347 area-System.IO ZipFile.CreateFromDirectory(...) file locked after creation. File handle leak? Platform: Windows 7 Symptom: zipfiles I create are not available to be moved by the os after creation until the program ends. Analysis: When ZipFile.CreateFromDirectory(...) calls ZipFileExtensions.DoCreateEntryFromFile(archive, ...) the ZipArchiveEntry is created with the following code (~line 220): ZipArchiveEntry entry = compressionLevel.HasValue ? destination.CreateEntry(entryName, compressionLevel.Value) : destination.CreateEntry(entryName); But the ZipArchiveEntry that destination.CreatEntry(...) returns is an IDisposable object that is not wrapped with a (using ...) statement. Is this a handle leak? Regards. +18349 area-Infrastructure Update Docker images for crossbuilds CC @weshaggard @gkhanna79 +18350 area-Infrastructure Add separate symbol publish (index/archive) build leg See https://github.com/dotnet/corefx/pull/16939. This switches indexing to use VSTS Symbol. It handles hosting, so the builds don't need to copy to a file share. For release branch builds, archiving performance (still using the file share) is improved by https://github.com/dotnet/buildtools/pull/1421. The time this leg's steps take for a daily/indexed build is now: * 6.4 minutes Extracting * 1.5 minutes Publishing (indexing) * Total: 7.9 minutes I removed the symbol publishing steps from the Windows build legs because they're redundant. Removing the publish target path from the index+publish step means it will only index sources for the symbols and won't copy them anywhere. (Edit: on a test build I see that this step is only finding 2 PDBs, and it isn't able to find sources for them. Getting symbol indexing working properly is tracked by https://github.com/dotnet/core-eng/issues/499.) +18352 area-System.Diagnostics Modules_GetMultipleTimes_ReturnsSameInstance test failed in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/6248/consoleText ``` System.Diagnostics.Tests.ProcessModuleTests.Modules_GetMultipleTimes_ReturnsSameInstance [FAIL] System.ComponentModel.Win32Exception : Only part of a ReadProcessMemory or WriteProcessMemory request was completed Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(400,0): at System.Diagnostics.NtProcessManager.GetModules(Int32 processId, Boolean firstModuleOnly) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(294,0): at System.Diagnostics.NtProcessManager.GetModules(Int32 processId) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(107,0): at System.Diagnostics.ProcessManager.GetModules(Int32 processId) D:\j\workspace\windows_nt_de---4526f5ff\src\System.Diagnostics.Process\src\System\Diagnostics\Process.cs(312,0): at System.Diagnostics.Process.get_Modules() D:\j\workspace\windows_nt_de---4526f5ff\src\System.Diagnostics.Process\tests\ProcessModuleTests.cs(50,0): at System.Diagnostics.Tests.ProcessModuleTests.Modules_GetMultipleTimes_ReturnsSameInstance() ``` cc: @hughbe, @danmosemsft +18353 area-Infrastructure Small crossgen.sh fixes - crossgen.sh was failing on OSX because the RID in the package that contains crossgen had changed. - crossgen.sh would try to crossgen the existing mscorlib.ni.dll and that would lead to a file in use error, I updated it such that it never tries to crossgen existing ni's. Neither of these issues failed the build (you can see them happening in CI) but it did impact my source-build work (since the error messages are picked up by another instance of MSBuild which is driving the overall composed build). +18354 area-Serialization Area-Serialization Sprint 117 The issue is for tracking issues to be done in sprint 117 (due by 5/5/2017) +18355 area-System.Runtime System.Runtime.Tests Uap-api work... Mark the PlatformNotSupported ones as Skip. De-theorize GetEnumValues() test to work around https://github.com/dotnet/corert/issues/3328 +18356 area-System.Reflection Remove reflection-based lightup S.R.M for netcoreapp S.R.Metadata has netcoreapp specific build. We can take advantage of it to avoid reflection and trial and error (avoids exception to be thrown and swallowed in some cases). The existing logic is preserved for the netstandard builds. +18357 area-System.Collections [Question/Proposal] Immutable Parent Child API This is a question (or possibly a proposal of new feature) to have the ability to manage immutable parent/child(ren) hierarchies efficiently with .NET Standard. I've searched various sites, blogs and the topic appears to be somewhat complex... at least from my country bumpkin perspective 😄 I came across the @AArnott and @terrajobst [video/blog](https://blogs.msdn.microsoft.com/dotnet/2013/09/25/immutable-collections-ready-for-prime-time/), read @ericlippert's [blog](https://blogs.msdn.microsoft.com/ericlippert/2012/06/08/persistence-facades-and-roslyns-red-green-trees/) on topic and attempted to understand Roslyn's [SyntaxNode](http://source.roslyn.io/#Microsoft.CodeAnalysis/Syntax/SyntaxNode.cs,849dc6029695ef7b)/[GreenNode](http://source.roslyn.io/#Microsoft.CodeAnalysis/Syntax/GreenNode.cs,85387470c0225abf) implementation (which is far more complex than my needs/comprehension). I think the [System.Immutable.Collections APIs](https://www.nuget.org/packages/System.Collections.Immutable) are an incredible start and provide great capabilities. However, they appear to stop short of offering similar parent/child management. It would be nice to have an additional immutable parent/child API. This parent/child relationship is nothing more than similar discussions on [Stack Overflow](http://stackoverflow.com/questions/6613613/in-c-sharp-4-0-is-there-any-way-to-make-an-otherwise-private-member-of-one-clas). I (like many others) need the ability to instantiate immutable parent objects, attach child(ren) objects, search up/down the tree (ancestors/descendants) and most importantly... update the objects' relationship when adding/updating/removing objects respectively (upstream or downstream). Meaning, once a child has been modify... the [Parent](http://source.roslyn.io/#Microsoft.CodeAnalysis/Syntax/SyntaxNode.cs,efecb528c7d2c282,references) is updated accordingly. I'm including a few of the smarter peeps I could think of to reach out to: 1. See if there is already related capabilities included with .NET Standard (or elsewhere compatible with .NET Standard) or 2. Possibly start the conversation/action to add this as a first-class offering with .NET Standard. FYI... @terrajobst, @AArnott, @ericlippert, @davidfowl, @stephentoub, @danmosemsft, @weshaggard, @KrzysztofCwalina, @karelz, @MadsTorgersen I really appreciate any help with my question/proposal. Thanks in advance. +18358 area-System.IO Fix S.IO.FileSystem tests running on uapaot +18360 area-System.ComponentModel [Netfx bug] CustomValidationAttribute doesn't properly implement RequiresValidationContext Requested by @ajcvickers. We should mark this as netfx-port-consider and close this issue. See https://github.com/dotnet/corefx/pull/5203, which fixed this. ```cs public class CustomValidator { public static ValidationResult CorrectValidationMethodOneArg(object o) => ValidationResult.Success; public static ValidationResult CorrectValidationMethodOneArgStronglyTyped(string s) => ValidationResult.Success; public static ValidationResult CorrectValidationMethodTwoArgs(object o, ValidationContext context) => ValidationResult.Success; public static ValidationResult CorrectValidationMethodTwoArgsStronglyTyped(TestClass tc, ValidationContext context) => ValidationResult.Success; } [Theory] [InlineData(nameof(CustomValidator.CorrectValidationMethodOneArg), false)] [InlineData(nameof(CustomValidator.CorrectValidationMethodOneArgStronglyTyped), false)] [InlineData(nameof(CustomValidator.CorrectValidationMethodTwoArgs), true)] [InlineData(nameof(CustomValidator.CorrectValidationMethodTwoArgsStronglyTyped), true)] public static void RequiresValidationContext_Get_ReturnsExpected(string method, bool expected) { CustomValidationAttribute attribute = new CustomValidationAttribute(typeof(CustomValidator), method); // The full .NET framework has a bug where CustomValidationAttribute doesn't // validate the context. See https://github.com/dotnet/corefx/pull/5203. if (PlatformDetection.IsFullFramework) { Assert.False(attribute.RequiresValidationContext); } else { Assert.Equal(expected, attribute.RequiresValidationContext); } } ``` +18361 area-System.ComponentModel [Netfx bug] MaxLengthAttribute and MinLengthAttribute don't support ICollection.Count Issue requested by @ajcvickers. We should tag this one as netfx-port-consider and close it. The following code throws an InvalidCastException . .NET Core added support for this feature. See https://github.com/dotnet/corefx/pull/2650 ```cs using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace MyNamespace { public class MyDataModel { [MinLength(1)] public ICollection MySet { get; set; } } } ``` +18363 area-Serialization Add Attribute SkipOnTargetFramework for Issue 18274. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""is implemented on full framework"")] for method CreateMtomReaderWriter_Throw_PNSE() in src\System.Runtime.Serialization.Xml\tests\XmlDictionaryWriterTest.cs" +18368 area-System.Xml Remove System.Xml.XPath.XmlDocument contract Resolves https://github.com/dotnet/corefx/issues/17190 This PR completely removes the `System.Xml.XPath.XmlDocument` contract. This contract contained few extension methods for `System.Xml.XmlNode` and `System.Xml.XmlDocument` types. Except for two methods, the rest are now available as instance methods on these types and exposed in `System.Xml.ReaderWriter` contract (after NS2.0). Those two methods are: - `public static System.Xml.XPath.IXPathNavigable ToXPathNavigable(this XmlNode node)` This method is not needed anymore as XmlNode now implements IXPathNavigable. - `public static System.Xml.XPath.XPathNavigator CreateNavigator(this XmlDocument document, System.Xml.XmlNode node)` which used to be internal on Desktop and I'm assuming was made public only to keep things working when Xml was split between different contracts. To make sure anyone who references System.Xml.XPath.XmlDocument.dll will have no issue, I tried referencing the 4.3.0 version of this NuGet package in a netcoreapp2.0 project and it worked as expected. cc: @weshaggard @danmosemsft @ericstj +18369 area-System.IO "Test: System.IO.Tests.WaitForChangedTests/Changed_Success failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.WaitForChangedTests/Changed_Success` has failed. Assert.Equal() Failure\r Expected: Changed\r Actual: 0 Stack Trace: at System.IO.Tests.WaitForChangedTests.Changed_Success() Build : Master - 20170414.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170414.01/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.WaitForChangedTests~2FChanged_Success +18370 area-Serialization Add SkipOnTargetFramework for Issue 18313. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""Full framework has an implementation and does not throw InvalidOperationException"")] for method XsdDataContractExporterTest() in src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs" +18371 area-Serialization Add SkipOnTargetFramework for Issue 18273. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""is implemented on full framework"")] for method FragmentTest() in src\System.Runtime.Serialization.Xml\tests\XmlDictionaryWriterTest.cs" +18372 area-System.Reflection Remove ActiveIssue1050 from CanReadFromSameMemoryMappedPEReaderInParallel() in MetadataReaderTests.cs Remove ActiveIssue1050 from CanReadFromSameMemoryMappedPEReaderInParallel() in src/System.Reflection.Metadata/tests/Metadata/MetadataReaderTests.cs +18373 area-Serialization DataContractJsonSerializerTests.DCJS_VerifyDictionaryFormat test failed in CI "DataContractJsonSerializerTests.DCJS_VerifyDictionaryFormat [FAIL] ### Message: ``` Test failed for input: System.Collections.Generic.Dictionary`2[TestClass,System.Object] Expected: {""1,2#45"":{""__type"":""TestClass:#"",""floatNum"":90,""intList"":[4,5]},""6,7#10"":{""__type"":""TestStruct:#"",""value1"":25}} Actual: {""1,2#45"":{""floatNum"":90,""intList"":[4,5]},""6,7#10"":{""value1"":25}} Expected: True Actual: False ``` ### STACK TRACE: at DataContractJsonSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractJsonSerializerSettings settings, Func`1 serializerFactory, Boolean skipStringCompare) in D:\j\workspace\windows_nt_re---37265eab\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs:line 2878 at DataContractJsonSerializerTests.DCJS_VerifyDictionaryFormat() in D:\j\workspace\windows_nt_re---37265eab\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs:line 2744 ### Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/6197/testReport/junit/(root)/DataContractJsonSerializerTests/DCJS_VerifyDictionaryFormat_2/" +18375 area-Serialization Add two DSC test cases. @huanwu, @shmao Please help review this code. +18376 area-System.Net HttpListener Read_FullLengthAsynchronous_Success test failed in CI "https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/6278/consoleText ``` System.Net.Tests.HttpRequestStreamTests.Read_FullLengthAsynchronous_Success(transferEncodingChunked: True, text: \""\"") [FAIL] System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(462,0): at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.HttpListener\tests\HttpRequestStreamTests.cs(74,0): at System.Net.Tests.HttpRequestStreamTests.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\Threading\Tasks\RendezvousAwaitable.cs(62,0): at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(863,0): at System.Net.Http.WinHttpHandler.d__105.MoveNext() ```" +18381 area-System.IO IOException in System.IO.Tests.Directory_NotifyFilter_Tests.FileSystemWatcher_Directory_NotifyFilter_Security ``` Unhandled Exception of Type System.IO.IOException Message : System.IO.IOException : Access to the path '\\\\?\\C:\\Users\\DotNetTestRunner\\AppData\\Local\\Packages\\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\\AC\\Temp\\Directory_NotifyFilter_Tests_dkl4gx0n.z4r\\FileSystemWatcher_Directory_NotifyFilter_Security_148\\dir' is denied. Stack Trace : at System.IO.Win32FileSystem.RemoveDirectoryHelper(String fullPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound) at System.IO.Win32FileSystem.RemoveDirectory(String fullPath, Boolean recursive) at System.IO.Directory.Delete(String path) at System.IO.Tests.Directory_NotifyFilter_Tests.<>c__DisplayClass9_0.b__1() at System.IO.Tests.FileSystemWatcherTest.ExpectEvent(FileSystemWatcher watcher, WatcherChangeTypes expectedEvents, Action action, Action cleanup, String[] expectedPaths, Int32 attempts, Int32 timeout) at System.IO.Tests.FileSystemWatcherTest.ExpectEvent(FileSystemWatcher watcher, WatcherChangeTypes expectedEvents, Action action, Action cleanup, String expectedPath, Int32 attempts, Int32 timeout) at System.IO.Tests.Directory_NotifyFilter_Tests.FileSystemWatcher_Directory_NotifyFilter_Security(NotifyFilters filter) ``` https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170414.01/workItem/System.IO.FileSystem.Watcher.Tests/analysis/xunit/System.IO.Tests.Directory_NotifyFilter_Tests~2FFileSystemWatcher_Directory_NotifyFilter_Security(filter:%20Attributes) +18382 area-System.Net Fix very long running Sockets test This one test is taking ~14 minutes on some Linux distros. Ugh. cc: @danmosemsft, @steveharter, @Priya91 +18383 area-System.IO Remove unnecessary pinvoke suppressions The Pipes one should never have been suppressed, and means I have a new WACK ask. The Shell32 one I do not understand .. both have the same entrypoint in the same module. @stephentoub ? However, removing the suppression does not cause any violations. +18384 area-System.Net Fix zero-length async receives on macOS macOS appears to special-case a zero-length non-blocking receive call to complete successfully immediately even if there's no data available. This breaks a commonly used pattern that works on both Windows and Linux of using a zero-length ReceiveAsync to be asynchronously notified of data being available. As a fix, we special-case a zero-length ReceiveAsync to check whether any data is available as a stand-in for a receive, simulating EAGAIN if no data is currently available. Fixes https://github.com/dotnet/corefx/issues/13778 cc: @geoffkizer, @steveharter, @Priya91 +18386 area-System.Security Bit simplification at System.Security.Cryptography.Xml I just removed unnecessary itens. +18387 area-System.Reflection apiset still used in S.R.Metadata "_From @danmosemsft on April 14, 2017 15:55_ @yizhang82 @stephentoub @tmat, @nguerrera @gkhanna79 is there any reason to still use apisets in this assembly? We removed them in all other places. But perhaps we need to keep it in this library because it ships OOB and does not necessarily have reverse forwarders? ```c# // The library guards against unavailable entrypoints by using EntryPointNotFoundException. private static unsafe class NativeMethods { // API sets available on modern platforms: [DllImport(@""api-ms-win-core-file-l1-1-0.dll"", EntryPoint = ""ReadFile"", ExactSpelling = true, SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] internal static extern bool ReadFileModern( SafeHandle fileHandle, byte* buffer, int byteCount, out int bytesRead, IntPtr overlapped ); // older Windows systems: [DllImport(@""kernel32.dll"", EntryPoint = ""ReadFile"", ExactSpelling = true, SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] internal static extern bool ReadFileCompat( SafeHandle fileHandle, byte* buffer, int byteCount, out int bytesRead, IntPtr overlapped ); } #pragma warning restore BCL0015 ``` _Copied from original issue: dotnet/coreclr#10974_" +18388 area-Infrastructure Add the URLs to allow constructing them from a given version Not really something our customers will do, but when dealing with dog food builds this is invaluable. /cc @eerhardt +18389 area-System.IO Remove duplication of SHGetKnownFolderPath calls The two different native calls in this file are actually identical. Remove the rigamarole around deciding which one to call https://github.com/dotnet/corefx/blob/7422664ba77cac9c0a3cb1dcba79c854ca1b2db0/src/Common/src/Interop/Windows/shell32/Interop.SHGetKnownFolderPath.cs#L40 details https://github.com/dotnet/corefx/pull/18383 +18390 area-System.Collections [Performance] Triage System.Collections performance regressions since v1.1 "We've done an analysis of performance data from two builds of corefx: the released version of .NET Core 1.1, and a snapshot of corefx/master. The data is available through an internal website; contact me for information about how to access the info. There are several regressions in test cases for System.Collections which we should investigate, triage, and potentially fix. The test cases which look reliable (i.e. they are not ""random noise"") are the following: ### `Dictionary` Test Name | Diff Time / Base Time --------|----------- Add(size: 1000) | 1.177 Add(size: 10000) | 1.314 ctor_int(size: 0) | 1.223 ctor_int(size:4096) | 1.287 Dictionary_ContainsKey_String_True(sampleLength: 100000) | 1.104 Dictionary_ContainsValue_Int_False(sampleLength: 1000) | 1.133 Dictionary_ContainsValue_Int_True(sampleLength: 1000) | 1.133 SetItem(size: 10000) | 1.145 Remove(initialSetSize: 8000000, countToRemove: 1) | 1.220 Union_NoOp(startSize: 32000, countToUnion: 320000) | 1.182 ### `HashTable` Test Name | Diff Time / Base Time ----------|---------------- Add(size: 1000) | **2.109 (!)** Ctor_Empty | 1.143 ### `List` Test Name | Diff Time / Base Time ----------- | --------------- Add(size: 100000) | **2.011 (!)** Clear(size: 10000) | **3.116 (!)** GetCount(size: 10000) | 1.840 ctor | 1.129 GenericList_Reverse_String | 1.147 GetCount(size: 10000) | 1.840" +18391 area-Serialization To Verify if WCF Can Use Reflection-based XmlSerializer XmlSerializer now supports XmlMembersMapping using in reflection only mode. We should verify if [XmlSerializerFormat] works when using reflection-based serialization. +18392 area-System.IO [Performance] Triage System.IO performance regressions since v1.1 "We've done an analysis of performance data from two builds of corefx: the released version of .NET Core 1.1, and a snapshot of corefx/master. The data is available through an internal website; contact me for information about how to access the info. There are several regressions in test cases for System.IO which we should investigate, triage, and potentially fix. The test cases which look reliable (i.e. they are not ""random noise"") are the following: ### `Directory` Test Name | Diff Time / Base Time --------|----------- CreateDirectory | 1.449 Exists | **1.993 (!)** GetCurrentDirectory | 1.216 ### `File` Test Name | Diff Time / Base Time -----------|------------ Delete | 1.341 Exists | **2.022 (!)** ### `FileStream` Test Name | Diff Time / Base Time ---------|-------------- Read(useAsync: True, bufferSize: 512, totalSize: 10000000) | **2.421 (!)** Write(useAsync: False, bufferSize: 512, totalSize: 10000000) | 1.317 Write(useAsync: True, bufferSize: 512, totalSize: 10000000) | 1.551 " +18394 area-System.Net Document .NET Remoting alternative - Sockets Our [porting](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/porting.md) doc is vague on replacement of .NET Remoting. We concluded System.Net.Sockets is best alternative. There is worry that it is tricky to write, so we should provide a sample (maybe in docs repo?). +18395 area-System.Xml Comment out apparently dead code in src\System.Private.Xml\System.Pri… …vate.Xml.sln N.B. This is purely for code review purposes. Let me know if this is useful as I did a rather large commit for Roslyn using the same tool - https://github.com/dotnet/roslyn/pull/17630 +18398 area-System.Xml Reduce XmlSchemaTests from ~3 minutes to ~3 seconds The System.Xml schema tests are currently taking ~3 minutes in CI, making it one of the longest running test suites by far in corefx. This is due to: - Tests doing a lot of `Dump`ing of state even when the relevant trace sources are not enabled, and - One test that has a huge input that's causing a ton of time to be spent in BitSet.Or This change addresses that by: - putting the relevant `Dump`ing behind the same trace sources, and - reducing the input sizes to the offending test This reduces the running time of the test suite from ~3 minutes to ~3 seconds. cc: @krwq, @sepidehMS +18400 area-Infrastructure Document upload-tests.proj Reminder issue to write a markdown file detailing how to use upload-tests.proj. +18401 area-Infrastructure What's the motivation for SkipOnTargetFrameworkAttribute in tests? The closed source .NET ToF test tree had a concept of *capabilities* that could be mapped to a set of *target runtimes*. What you could do with that was to say a test *requires* a capability and a *target runtime* could say that it *provides a capability*. When you had a test (such as e.g. a test exercising Rank 1 multidimensional arrays), you could say that the test is only applicable to runtimes that support Rank 1 multidimensional arrays. When a runtime added support for a capability, you would only need to update the list of it's capabilities, and all applicable tests would magically start running. Conversely, if a new target runtime was added, you only had to specify a list of it's capabilities and all the applicable tests would start running instead of having to dig through failures and trying to understand them. `SkipOnTargetFrameworkAttribute` seems to be inferior to the capabilities concept in every possible way: now you need to enumerate every possible runtime that the test is not supported on in the test itself. When the runtime learns that new feature, you better make sure and go over all the tests that were blocked for that particular runtime to make sure you're actually getting the test coverage you would expect for the new feature. +18402 area-System.IO Fix S.IO.FileSystem.DriveInfo running on uapaot +18403 area-System.IO Fix S.IO.FS.Performance tests on uapaot +18404 area-System.Net Retry ping when the output was not in expected syntax. Add retry to ping, when the expected syntax is not got from ping6 output. This behavior is observed from OSX 10.12 update, not sure why the ping6 output sometimes doens't have the full text. In relation to issue #18125 cc @danmosemsft +18405 area-Meta Document API platform differences We need to document API differences: 1. Between .NET platforms -- .NET Framework vs. .NET Core vs. .NET Native vs. Xamarin/Mono, and 2. Between OS's -- Windows vs. Linux vs. Mac The documentation should be exposed as [platform-compat tooling](https://github.com/terrajobst/platform-compat) and also as standalone HTML. +18406 area-System.Data SqlClient fails with netcoreapp2.0 on Win7/Server2008 Repro steps: Build https://github.com/aspnet/EntityFramework on windows 7 machine. All tests which uses SqlServer fails. (Tests uses localdb). Same passes in windows10/Server 2012 machines. Exception message: ```` Error Message: System.DllNotFoundException : Unable to load DLL 'sni.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) Stack Trace: at System.Data.SqlClient.SNINativeMethodWrapper.UnmanagedIsTokenRestricted(IntPtr token, Boolean& isRestricted) at System.Data.Win32NativeMethods.IsTokenRestrictedWrapper(IntPtr token) at System.Data.ProviderBase.DbConnectionPoolIdentity.GetCurrent() at System.Data.ProviderBase.DbConnectionPoolGroup.GetConnectionPool(DbConnectionFactory connectionFactory) at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPool(DbConnection owningObject, DbConnectionPoolGroup connectionPoolGroup) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() ```` dotnet info ``` .NET Command Line Tools (2.0.0-preview1-005783) Product Information: Version: 2.0.0-preview1-005783 Commit SHA-1 hash: 8bd15c7ec0 Runtime Environment: OS Name: Windows OS Version: 6.1.7601 OS Platform: Windows RID: win7-x64 Base Path: C:\Users\smpatel\AppData\Local\Microsoft\dotnet\sdk\2.0.0-preview1-005783\ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview1-001967-00 Build : fa25acec41a87ce36b3ea61273d4798eb0a2486f ``` cc: @Eilon +18407 area-System.Security Fix runtime desktop failure in Cryptography tests `ECDsaTest.PublicKey_CannotSign` uses ECParameters which is not available for Desktop until 4.7 so I wrapped it up under #if netcoreapp to stop having this failure. Fixes #18198 cc: @bartonjs @danmosemsft +18408 area-System.Diagnostics Strange behavior with Process creation and termination "@livarcocc commented on [Thu Mar 16 2017](https://github.com/dotnet/core-setup/issues/1762) _From @mellinoe on April 29, 2016 21:36_ ## Steps to reproduce Consider this program: ``` CSharp public static void Main(string[] args) { ProcessStartInfo psi = new ProcessStartInfo(""ping"", ""github.com""); psi.RedirectStandardOutput = true; Process.Start(psi); Console.WriteLine(""Process started.""); } ``` NOTE: This is just an easy example, my use case is slightly different (using xdg-open to launch a browser). Ping works here because it usually takes a while to exit. ## Expected behavior The program starts a process, prints out ""Process started"", and terminates. ## Actual behavior When executed via `dotnet run`, the program does not terminate until the ""ping"" process terminates. Executing `killall ping` causes the `dotnet` process to terminate, as well, once `ping` has been killed. When I run the same program using corerun or coreconsole, the above behavior is not exhibited. A ping process is started, but the program immediately terminates. Ping continues in the background. ## Environment data `dotnet --info` output: ``` .NET Command Line Tools (1.0.0-rc2-002543) Product Information: Version: 1.0.0-rc2-002543 Commit Sha: 38d0c28a1e Runtime Environment: OS Name: ubuntu OS Version: 15.04 OS Platform: Linux RID: ubuntu.15.04-x64 ``` _Copied from original issue: dotnet/cli#2776_ --- @livarcocc commented on [Thu Mar 16 2017](https://github.com/dotnet/core-setup/issues/1762#issuecomment-287265358) _From @mellinoe on April 29, 2016 21:43_ Another point of data: If I execute `dotnet `, then the correct behavior is exhibited. This repros on both Ubuntu and Windows (all I've tried). --- @livarcocc commented on [Thu Mar 16 2017](https://github.com/dotnet/core-setup/issues/1762#issuecomment-287265362) _From @brthor on May 2, 2016 18:53_ It seems like we should be a little more robust in how we manage child processes in `dotnet run` here, it sounds like we are waiting for the entire process tree instead of the immediate child. I don't think this is a blocker for RC2 though, comment if you feel otherwise. --- @livarcocc commented on [Thu Mar 16 2017](https://github.com/dotnet/core-setup/issues/1762#issuecomment-287265367) @mellinoe I just tried this in 1.0.1 and I hit the same thing, except that when I published the app and run it using dotnet it exhibited the same delay there. So, wondering if that's an issue with dotnet.exe, since that's also what we use during dotnet run. I will move this issue to core-setup. --- @gkhanna79 commented on [Fri Mar 17 2017](https://github.com/dotnet/core-setup/issues/1762#issuecomment-287443578) Dotnet.exe is not launching processes @livarcocc. It simply calls into the managed entrypoint. > I hit the same thing, except that when I published the app and run it using dotnet it exhibited the same delay there How did you repro this? What delay did you see? --- @gkhanna79 commented on [Fri Apr 14 2017](https://github.com/dotnet/core-setup/issues/1762#issuecomment-294252653) The host does not do anything to block/wait against the application aside from invoking its entrypoint. Someone in CoreFX should take a stab. " +18409 area-System.Diagnostics On Linux systems: System.Diagnostics.FileVersionInfo.GetVersionInfo() hangs process/thread when used on named pipe files Repro 1. On Linux Ubuntu 16.04 install PowerShell from GitHub (https://github.com/powershell/powershell) ``` uname -a Linux paul-UbuntuA 4.8.0-46-generic #49~16.04.1-Ubuntu SMP Fri Mar 31 14:51:03 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux ``` 2. Install VSCode as well because it creates named pipe files needed to repro. 3. On PowerShell command line type the following (replace named pipe file name with actual file in /tmp) ```powershell [System.Diagnostics.FileVersionInfo]::GetVersionInfo('/tmp/clr-debug-pipe-12555-7925167-in') ``` Result PowerShell process/thread hangs. No exception is thrown. Discussion This appears to only happen with named pipe files. I don't see the hang when passing in other file paths. This breaks PowerShell remoting when enumerating directories containing named pipe files because PowerShell remoting returns serialized FileInfo objects which includes custom object members that evaluates FileVersionInfo.GetVersionInfo() with the file path. See issue (https://github.com/PowerShell/PowerShell/issues/1866) +18410 area-System.IO Enable MMF tests building on uapaot +18411 area-System.Diagnostics Fix tests to test difference in behavior correctly in ProcessStartInfo While investigating an exception thrown in the tests I found that this test was failing because of a difference in behavior by design in between .NET Core and Desktop so I added the test for desktop and skipped on desktop the .NET Core specific. cc: @stephentoub @Priya91 +18412 area-System.Reflection Dead metadata According to ILLink this is dead. Relates to https://github.com/dotnet/corefx/issues/17905 +18414 area-System.Linq Remove dead code from S.L.Expressions Either truly dead, or default constructors with default access and no XML comment and so same as compiler will produce. After this the only code in this project mentioned at #17905 is either from common files and used elsewhere, constants that are used, or perhaps will be brought into use with CompileToMethod and/or PDB generation. +18416 area-System.Runtime Performance tests with empty loops "While doing some other work I noticed a handful of the System.Runtime performance tests that end up having their test optimized away by the JIT on amd64 release builds. Both tests here: [Perf.Object.cs](https://github.com/dotnet/corefx/blob/master/src/System.Runtime/tests/Performance/Perf.Object.cs) Both tests here: [Perf.IntPtr.cs](https://github.com/dotnet/corefx/blob/master/src/System.Runtime/tests/Performance/Perf.IntPtr.cs) [Perf_String.GetLength](https://github.com/dotnet/corefx/blob/master/src/System.Runtime/tests/Performance/Perf.String.cs#L135) These all jit to a pattern like this: ``` E823E5FFFF call BenchmarkIteration:StartMeasurement():struct:this 90 nop G_M28236_IG05: 33C9 xor ecx, ecx G_M28236_IG06: FFC1 inc ecx 81F910270000 cmp ecx, 0x2710 7CF6 jl SHORT G_M28236_IG06 ``` In general a strategy for working around issues like this is to assign the result to a field of the enclosing type. I did this as a quick experiment locally and it produces a better result. In most cases however these tests are still well optimized by the JIT. For example, this is the ""fixed"" JIT output for the ```IntPtr(0)``` constructor case: ``` E89EDEFFFF call BenchmarkIteration:StartMeasurement():struct:this 90 nop G_M39768_IG05: 33C9 xor ecx, ecx G_M39768_IG06: 33D2 xor rdx, rdx 48895618 mov qword ptr [rsi+24], rdx 48895618 mov qword ptr [rsi+24], rdx 48895618 mov qword ptr [rsi+24], rdx 48895618 mov qword ptr [rsi+24], rdx 48895618 mov qword ptr [rsi+24], rdx 48895618 mov qword ptr [rsi+24], rdx 48895618 mov qword ptr [rsi+24], rdx 48895618 mov qword ptr [rsi+24], rdx 48895618 mov qword ptr [rsi+24], rdx FFC1 inc ecx 81F910270000 cmp ecx, 0x2710 7CD0 jl SHORT G_M39768_IG06 ``` It's not clear that's a particularly valuable test. cc @ianhays as you seem to have written (or at least checked these in originally.) I didn't have a sophisticated parser or anything to find these; I just dumped the jitdisasm and looked for the inc/cmp/jl pattern by hand for these tests. " +18418 area-System.Diagnostics Activity: RootId based sampling When Activity starts without internal 'Parent' or external `ParentId`, it generates Id in the following way: `|MachineName-timestamp-number.` Where - `timestamp` is the last 32-bits of static start time of process (service instance) - `number` is monotonically incremented long with random start value As a result Ids generated for the consecutive requests from one instance look like ``` |Service1-36ef1287-1ad6aa. |Service1-36ef1287-1ad6ab. |Service1-36ef1287-1ad6ac. |Service1-36ef1287-1ad6ad. ``` They all have the same beginning and only few last characters differs. It is natural to sample requests based on the `Activity.RootId` since it ensures consistent sampling for the operation traces. **It could be the problem for the hashing algorithms used for sampling** E.g. djb2 [wiki](https://en.wikipedia.org/wiki/Universal_hashing#Hashing_strings), [sample implementation](http://www.cse.yorku.ca/~oz/hash.html) favors first characters over the last ones. ApplicationInsights uses it to sample telemetry items, so Id of the particular Activity almost always appear in the same hash bucket for the given service instance. In case of small cluster (e.g. 1-2 instances), it is likely all Ids will share the same hash bucket. In case of large cluster, it is still likely that machine names are quite similar and differ only with the last few characters, so distribution of hashes may still be far from uniform. I'd like to highlight that it mostly affects small clusters and only in case when clients (client apps or pages) do not generate the first Id, however it is common case for ApplicationInsights and perhaps other tracing systems. **So, 'root' Id generation should be revised, to make sure existing sampling/hashing algorithms would be able to use it and achieve close to uniform distribution. It implies that 'root id' should be random, at least it's first and last part.** /cc @vancem @cwe1ss @Dmitry-Matveev @SergeyKanzhelev +18419 area-System.Memory Fix CopyTo(this T[] array, Span destination) for covariant arrays CopyTo was creating writeable Span where it should have been only creating readonly Span. It made it slower than necessary for reference types because of the covariance check in writeable Span constructor, and also made it fail for no good reason on covariant arrays. +18420 area-System.Memory API Proposal: Span AsReadOnlySpan(this T[]) extension method #17414 added extension methods that make it easy to create Span from array using fluent pattern. This proposal adds similar methods for ReadOnlySpan. ```c# public static class SpanExtensions { public static ReadOnlySpan AsReadOnlySpan(this T[] array); public static ReadOnlySpan AsReadOnlySpan(this ArraySegment segment); } ``` Note that creating ReadOnlySpan directly using these APIs is not equivalent to creating Span and than casting it to ReadOnlySpan. The later incurs covariance array check that adds unnecessary performance overhead and throws for covariant array. An instance of this problem was fixed in #18419. +18421 area-System.Linq Issue #8578 Use reflection method with binding flags Fixes #8578 @ViktorHofer please review and suggest. +18424 area-System.Net Two FtpWebRequest tests taking long time to fail Two FtpWebRequests tests are each taking upwards of 20 seconds, but all they're doing is trying to connect to targets that don't exist. I'm not familiar enough with the FtpWebRequest APIs to know what can be done about this, but these two tests are the long poles in the suite. `GetResponse_ServerNameNotInDns_ThrowsWebException` `GetResponse_ConnectFailure_ThrowsWebException` +18426 area-Meta Mention global.json in dogfooding instructions +18427 area-System.Diagnostics Enabled disabled tests for netcoreapp in System.Diagnostics.Tracing and updated missing ref members Fixes https://github.com/dotnet/corefx/issues/4865 +18429 area-System.Collections API Proposal: StructuralComparer Currently there is no built-in comparer that can be used with a `HashSet` or the [ToImmutableHashSet](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Immutable.ImmutableHashSet.ToImmutableHashSet--1?view=netcore-1.1.0#System_Collections_Immutable_ImmutableHashSet_ToImmutableHashSet__1_System_Collections_Generic_IEnumerable___0__System_Collections_Generic_IEqualityComparer___0__). Just like `Comparer` provides a convenient `Default`, it would be great to also provide such a structural comparer, which is basically: ```c# public class StructuralComparer : IEqualityComparer { public static IEqualityComparer Default { get; } = new StructuralComparer(); public bool Equals(T x, T y) => StructuralComparisons.StructuralEqualityComparer.Equals(x, y); public int GetHashCode(T obj) => StructuralComparisons.StructuralEqualityComparer.GetHashCode(obj); } ``` I'm using the above when working with Roslyn's `ImmutableArray` and `ImmutableHashSet` and it is quite convenient. +18432 area-System.Collections ConcurrentDictionary throws for null comparer, unlike every other BCL API You would expect this to succeed: ```c# new ConcurrentDictionary((IEqualityComparer)null) ``` I'll quite often take advantage of the fact that all BCL APIs use `EqualityComparer.Default` when you pass null, and chain constructors and other methods with the parameter `IEqualityComparer comparer = null`. I haven't found any other API that throws. Here are some that do not throw: - `Dictionary` - `HashSet` - `ImmutableDictionary` - `ImmutableHashSet` - `ImmutableSortedDictionary` - `ImmutableSortedSet` - `KeyedCollection` - `SortedDictionary` - `SortedList` - `SortedSet` - `Array.BinarySearch` - `Array.Sort` - `List<>.BinarySearch` - `List<>.Sort` - `IEnumerable<>.Contains` - `IEnumerable<>.Distinct` - `IEnumerable<>.Except` - `IEnumerable<>.GroupBy` - `IEnumerable<>.GroupJoin` - `IEnumerable<>.Intersect` - `IEnumerable<>.Join` - `IEnumerable<>.OrderBy` - `IEnumerable<>.OrderByDescending` - `IEnumerable<>.SequenceEqual` - `IEnumerable<>.ThenBy` - `IEnumerable<>.ThenByDescending` - `IEnumerable<>.ToDictionary` - `IEnumerable<>.ToImmutableDictionary` - `IEnumerable<>.ToImmutableHashSet` - `IEnumerable<>.ToImmutableSortedDictionary` - `IEnumerable<>.ToImmutableSortedSet` - `IEnumerable<>.ToLookup` - `IEnumerable<>.Union` +18435 area-System.Memory Issue #17118 Loop unrolling in Span.CopyTo slow path Fixes #17118. @shiftylogic @jkotas Kindy review the code change. I have merged the forward and reverse paths using a `direction` variable. I am not sure if this would affect vectorization avenues if that was the intention to have unrolled loops. Kindly advise. If yes, then I think the option will be to write separate blocks for forward and reverse copy. Thanks. +18436 area-System.Text [Netfx]: Bug in UnicodeDecoder.GetChars(byte[], int, int, char[], int) There is a bug in `UnicodeDecoder.GetChars(byte[], int, int, char[], int)` where it causes to return 0 chars when actually passing a byte array with valid values in it, so if we do: ```cs byte[] buffer = { 97, 0 }; char[] chars = { '\0', '\0' }; int charCount = 1; int charsRetrieved = Encoding.Unicode.GetDecoder().GetChars(buffer, 0, charCount, chars, 0); ``` `charsRetrieved` would be 0 and chars would stay as `['\0', '\0']` but it should return 1 and chars should be `['a', '\0']` However if we make `charCount = 2` then we would get the expected behavior. This is causing other failures, see: +18437 area-System.Diagnostics [Netfx]: Bug in AsyncStreamReader.GetLinesFromStringBuilder() private API "When running the following code, we would get an `IndexOutOfRangeException` from `StringBuilder.get_Char(char)`. ```cs [Fact] public void TestAsyncHalfCharacterAtATime() { var receivedOutput = false; var collectedExceptions = new List(); Process p = CreateProcess(() => { var stdout = Console.OpenStandardOutput(); var bytes = new byte[] { 97, 0 }; //Encoding.Unicode.GetBytes(""a""); for (int i = 0; i != bytes.Length; ++i) { stdout.WriteByte(bytes[i]); stdout.Flush(); Thread.Sleep(100); } return SuccessExitCode; }); p.StartInfo.RedirectStandardOutput = true; p.StartInfo.StandardOutputEncoding = Encoding.Unicode; p.OutputDataReceived += (s, e) => { try { if (!receivedOutput) { Assert.Equal(e.Data, ""a""); } receivedOutput = true; } catch (Exception ex) { // This ensures that the exception in event handlers does not break // the whole unittest collectedExceptions.Add(ex); } }; p.Start(); p.BeginOutputReadLine(); Assert.True(p.WaitForExit(WaitInMS)); p.WaitForExit(); // This ensures async event handlers are finished processing. Assert.True(receivedOutput); } ``` When we call `p.BeginOutputReadLine()` it will call `AsyncStreamReader.ReadBuffer(IAsyncResult)` everything at this moment behaves as expected which has 1 char to read in the byte buffer (97). But when reading the chars through the decoder: https://referencesource.microsoft.com/#System/services/monitoring/system/diagnosticts/AsyncStreamReader.cs,192 We hit a bug in `UnicodeDecoder.GetChars` (see #18436) so we would get 0 as a result when reading the chars out of the decoder. After trying to decode the chars we call `GetLinesFromStringBuilder()` when in this situation where `sb.Length == 0` and `currentIndex == 0` we will try to access `sb[currentIndex - 1]` which will obviously will be an `IndexOutOfRangeException`... source code: https://referencesource.microsoft.com/#System/services/monitoring/system/diagnosticts/AsyncStreamReader.cs,242 In .NET Core this was fixed by doing a check if currentIndex > 0 before trying to access the StringBuilder." +18438 area-System.Diagnostics Disable ProcessStreamReadTest.TestAsyncHalfCharacterAtATime "This test was hitting a `IndexOutOfRangeException` which was causing the tests execution to break and not producing test results. This is caused by 2 desktop bugs, see: #18437 and #18436. Also I moved `receivedOutput=true` to be updated before `Assert.Equal(e.Data, ""a"");` because if this Assert fails received output will never be set to true because the try catch will catch the xunit assert failure exception before updating the value. This will cause `Assert.True(receivedOutput);` to fail and the test will exit at that point causing ```cs if (collectedExceptions.Count > 0) { // Re-throw collected exceptions throw new AggregateException(collectedExceptions); } ``` To never be hitted so the real `Assert.Equal(e.Data, ""a"");` failure will never be thrown and the actual shown failure in the test execution will be `Assert.True(receivedOutput);` which would make it harder to debug as we did actually received output but not the expected. cc: @stephentoub @Priya91 @danmosemsft Contributes to #18262" +18439 area-System.Net Disable Private.Uri tests due to quirked behavior Fixes: #18314 Fixes: #18315 Fixes: #18316 I'm closing the above issues with this PR by disabling tests as this is already tracked by: #15145 cc: @davidsh @CIPop @danmosemsft +18441 area-System.Collections ConcurrentDictionary null comparer consistency with BCL Fixes #18432 Question: would it make sense to pass `null` instead of `EqualityComparer.Default` between the constructor overloads now? 1. [ConcurrentDictionary()][1] 2. [ConcurrentDictionary(int concurrencyLevel, int capacity)][1] 3. [ConcurrentDictionary(IEnumerable> collection)][3] [1]: https://github.com/dotnet/corefx/pull/18441/files#diff-f1285172a2a161542ccf657778f0852cR128 [2]: https://github.com/dotnet/corefx/pull/18441/files#diff-f1285172a2a161542ccf657778f0852cR145 [3]: https://github.com/dotnet/corefx/pull/18441/files#diff-f1285172a2a161542ccf657778f0852cR161 +18442 area-System.Linq Optimise IL for nullable unary S.L.Expressions expressions. `UnaryPlus` is a nop for all possible inputs, so do nothing. Don't construct new value for null operand, just push previous value back on stack. Conversely, don't store then load computed value, just leave it on the stack. Separate path for `Not` on `bool?` values now has no advantage, so roll into rest. Only two paths differ from others, so handle majority as default branch (previous default is unreachable and if not would result in same exception this way anyway). `TypeAs` is nop when result type is same as operand type, so do nothing. (Do this for non-nullable case too). +18444 area-System.Linq Lifted Convert Expression with custom ByRef method fails on compiler While conversion operators cannot normally use methods with `ref` parameters, Expressions does allow them if the method in question is explicitly requested. If lifted however, the compiler will attempt to use a non-method-based conversion with the same ByRef type to do the lifting, which will hence fail (the interpreter behaves correctly in this regard). As a result the compilation fails. There is code that attempts to respond to this scenario, but it is incomplete. +18445 area-System.Linq Convert Expression with custom ByRef method doesn't writeback on interpreter While conversion operators cannot normally use methods with `ref` parameters, Expressions does allow them if the method in question is explicitly requested. The interpreter however does not write-back the parameter of the call. The compiler is correct in this regard. +18446 area-System.Linq Compile Lifted Convert Expression with custom ByRef Fixes #18444 Also contains further Convert tests, including ActiveIssue test for #18445 +18448 area-System.Net HttpWebRequest KeepAlive correctness This issue refers to the code [here](https://github.com/dotnet/corefx/blob/master/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs#L387). Is this a valid HTTP header? ```c# public bool KeepAlive { get { return _webHeaderCollection[HttpKnownHeaderNames.KeepAlive] == bool.TrueString; } set { if (value) { SetSpecialHeaders(HttpKnownHeaderNames.KeepAlive, bool.TrueString); } else { SetSpecialHeaders(HttpKnownHeaderNames.KeepAlive, bool.FalseString); } } } ``` https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Keep-Alive suggests that this should never be a true or false value. Shouldn't we be setting `Connection: keep-alive` instead? +18449 area-System.Net "HttpClient: Impossible to send ""Accept: a;charset=b""" "I want to make a http request with a header `""Accept""` with value `""a;charset=b""`. It is **impossible** to do that with **HttpClient**. ```c# using (var client = new HttpClient()) { client.DefaultRequestHeaders.TryAddWithoutValidation(""Accept"", ""a;charset=b""); // ... } ``` This will generate a request with header `""Accept""` with value `""a; charset=b""`. Yes, this extra space is obviously valid, but the original value was also valid. And there are APIs out there that won't work with the extra space. The only way to make it work is to _hack_ it with reflection: ```c# client.DefaultRequestHeaders.TryAddWithoutValidation(""Accept"", ""foo""); foreach (var v in client.DefaultRequestHeaders.Accept) { if (v.MediaType.Contains(""foo"")) { var field = v.GetType().GetTypeInfo().BaseType.GetField(""_mediaType"", BindingFlags.NonPublic | BindingFlags.Instance); field.SetValue(v, ""a;charset=b""); // avoid MediaType's validation v.CharSet = """"; } } ``` Sugestion: ```c# client.DefaultRequestHeaders.AddHeaderAndDontMessWithItDontChangeItDontParseItIWantTotalControlThankYouVeryMuch(""Whatever header I want"", ""Whatever value I want""); ``` " +18452 area-Infrastructure Package Microsoft.Composition 1.0.27 is not compatible with netcoreapp1.1 (.NETCoreApp,Version=v1.1). Package Microsoft.Composition 1.0.27 supports: portable-net45+win8+wp8+wpa81 (.NETPortable,Version=v0.0,Profile=Profile259) "hello i use VS 2017 version 15.1 (26403.3) Release and .Net framework version 4.6.01586 when i build my project build succeed and my project is lunch,but in Error List i see this error > Package Microsoft.Composition 1.0.27 is not compatible with netcoreapp1.1 (.NETCoreApp,Version=v1.1). Package Microsoft.Composition 1.0.27 supports: portable-net45+win8+wp8+wpa81 (.NETPortable,Version=v0.0,Profile=Profile259) my csproj is ``` netcoreapp1.1 true AdminPanel Exe AdminPanel 1.1.1 $(PackageTargetFallback);dotnet5.6;portable-net45+win8 PreserveNewest ``` how i can fix this problem?" +18458 area-System.Runtime New string.Replace overload throws OOM with empty string "```cs [Fact] public void Replace_EmptyNewValue() { // Nope: OutOfMemoryException Assert.Equal(""abc"", ""abc"".Replace("""", ""def"", StringComparison.CurrentCulture)); Assert.Equal(""abc"", ""abc"".Replace("""", ""def"", StringComparison.CurrentCultureIgnoreCase)); Assert.Equal(""abc"", ""abc"".Replace("""", ""def"", StringComparison.InvariantCulture)); Assert.Equal(""abc"", ""abc"".Replace("""", ""def"", StringComparison.InvariantCultureIgnoreCase)); Assert.Equal(""abc"", ""abc"".Replace("""", ""def"", StringComparison.Ordinal)); Assert.Equal(""abc"", ""abc"".Replace("""", ""def"", StringComparison.OrdinalIgnoreCase)); } ``` Extracted from #1271. It's been fixed in https://github.com/dotnet/coreclr/pull/11001 but the tests need to be updated." +18459 area-System.Runtime New string.Replace overloads OrdinalIgnoreCase comparison is broken. "```cs [Fact] public void Replace_IgnoreCase() { // Nope: ""abc"" Assert.Equal(""def"", ""abc"".Replace(""ABC"", ""def"", StringComparison.OrdinalIgnoreCase)); // Fine: ""def"" Assert.Equal(""def"", ""abc"".Replace(""ABC"", ""def"", StringComparison.InvariantCultureIgnoreCase)); Assert.Equal(""def"", ""abc"".Replace(""ABC"", ""def"", StringComparison.CurrentCultureIgnoreCase)); } [Fact] public void EndsWithHyphen() { // Nope: ""def"" Assert.Equal(""abc"", ""abc"".Replace(""abc\u00AD"", ""def"", StringComparison.OrdinalIgnoreCase)); } ``` Extracted from #1271. I haven't yet got a fix, I'm waiting for @tarekgh to check out the second issue" +18461 area-System.Collections "Test: System.Collections.Tests.Perf_List/Clear(size: 100000) failed with ""System.OutOfMemoryException""" Opened on behalf of @Jiayili1 The test `System.Collections.Tests.Perf_List/Clear(size: 100000)` has failed. System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. Stack Trace: at ExceptionExtensions.Unwrap(Exception ex) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170415.01 (Core Tests) Failing configurations: - suse.421.amd64 - x64-Debug - x64-Release - Ubuntu.1604.Amd64 - x64-Release - x64-Debug - Ubuntu.1404.Amd64 - x64-Release - x64-Debug - Debian.82.Amd64 - x64-Debug - Ubuntu.1610.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170415.01/workItem/System.Collections.Performance.Tests/analysis/xunit/System.Collections.Tests.Perf_List~2FClear(size:%20100000) +18462 area-System.Console "Tests under ""System.Console.Performance.Tests"" failed with ""System.IO.IOException""" "There is no test results generated under ""System.Console.Performance.Tests"" Configuration: OSX.1012.Amd64 Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170415.01/workItem/System.Console.Performance.Tests/wilogs ~~~ 2017-04-14 18:29:49,928: INFO: proc(54): run_and_log_output: Output: xUnit.net console test runner (64-bit .NET Core) 2017-04-14 18:29:49,928: INFO: proc(54): run_and_log_output: Output: Copyright (C) 2014 Outercurve Foundation. 2017-04-14 18:29:49,929: INFO: proc(54): run_and_log_output: Output: 2017-04-14 18:29:50,018: INFO: proc(54): run_and_log_output: Output: Discovering: System.Console.Performance.Tests 2017-04-14 18:29:50,133: INFO: proc(54): run_and_log_output: Output: Discovered: System.Console.Performance.Tests 2017-04-14 18:29:50,169: INFO: proc(54): run_and_log_output: Output: Starting: System.Console.Performance.Tests 2017-04-14 18:29:50,411: INFO: proc(54): run_and_log_output: Output: [FATAL] System.IO.IOException 2017-04-14 18:29:50,412: INFO: proc(54): run_and_log_output: Output: System.IO.IOException : Too many open files 2017-04-14 18:29:50,416: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-04-14 18:29:50,511: INFO: proc(54): run_and_log_output: Output: at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) 2017-04-14 18:29:50,512: INFO: proc(54): run_and_log_output: Output: at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func`2 errorRewriter) 2017-04-14 18:29:50,512: INFO: proc(54): run_and_log_output: Output: at Microsoft.Win32.SafeHandles.SafeFileHandleHelper.Open(Func`1 fdFunc) 2017-04-14 18:29:50,512: INFO: proc(54): run_and_log_output: Output: at System.ConsolePal.OpenStandardError() 2017-04-14 18:29:50,512: INFO: proc(54): run_and_log_output: Output: at System.Console.<>c.b__27_0() 2017-04-14 18:29:50,512: INFO: proc(54): run_and_log_output: Output: at System.Threading.LazyInitializer.EnsureInitializedCore[T](T& target, Object& syncLock, Func`1 valueFactory) 2017-04-14 18:29:50,520: INFO: proc(54): run_and_log_output: Output: System.ConsoleTests.Perf_Console.OpenStandardOutput [FAIL] 2017-04-14 18:29:50,520: INFO: proc(54): run_and_log_output: Output: System.IO.IOException : Too many open files 2017-04-14 18:29:50,520: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-04-14 18:29:50,520: INFO: proc(54): run_and_log_output: Output: at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) 2017-04-14 18:29:50,521: INFO: proc(54): run_and_log_output: Output: at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func`2 errorRewriter) 2017-04-14 18:29:50,521: INFO: proc(54): run_and_log_output: Output: at Microsoft.Win32.SafeHandles.SafeFileHandleHelper.Open(Func`1 fdFunc) 2017-04-14 18:29:50,521: INFO: proc(54): run_and_log_output: Output: at System.ConsolePal.OpenStandardOutput() 2017-04-14 18:29:50,521: INFO: proc(54): run_and_log_output: Output: at System.ConsoleTests.Perf_Console.OpenStandardOutput() ~~~" +18463 area-System.IO "Test: System.IO.MemoryMappedFiles.Tests.Perf_MemoryMappedFile/CreateNew failed with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `System.IO.MemoryMappedFiles.Tests.Perf_MemoryMappedFile/CreateNew(capacity: 10000)` has failed. System.IO.IOException : Too many open files Stack Trace: at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateSharedBackingObjectUsingFile(MemoryMappedProtections protections, Int64 capacity) at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateCore(FileStream fileStream, String mapName, HandleInheritability inheritability, MemoryMappedFileAccess access, MemoryMappedFileOptions options, Int64 capacity) at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateNew(String mapName, Int64 capacity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, HandleInheritability inheritability) at System.IO.MemoryMappedFiles.Tests.Perf_MemoryMappedFile.CreateNew(Int32 capacity) Build : Master - 20170415.01 (Core Tests) Failing configurations: - OSX.1012.Amd64 - x64-Release - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170415.01/workItem/System.IO.MemoryMappedFiles.Performance.Tests/analysis/xunit/System.IO.MemoryMappedFiles.Tests.Perf_MemoryMappedFile~2FCreateNew(capacity:%2010000) +18464 area-System.Collections ConcurrentQueue IsEmpty too slow? I have some hot-path production code that looks like this. The queue is _usually empty_. `if(!myConcurrentQueue.IsEmpty) { WorkItem item; if(myConcurrentQueue.TryDequeue(out item)) { DoWork(item); } }` Clearly the assumption is that IsEmpty is a faster than calling TryDequeue. I decided to test this assumption with writing a little microbenchmark the compares IsEmpty versus TryDequeue on an empty queue.. I was surprised to find the IsEmpty appears to take about _twice a long_ as TryDequeue. Given that to dequeue anything there is probably a check to find out if there is anything in the queue, there's no reason I can think of for IsEmpty to be slower. +18467 area-System.Diagnostics Fix process product code and tests for netfx Fixes #18262 Fixes #18470 Fixes #18471 Fixes #18472 Fixes #18473 @safern +18468 area-System.Linq Remove some dead code in S.L.Expressions LambdaCompiler Contributes to #11409 by removing coverage gaps that can never be covered. Each commit is relatively small, but in some cases the code that makes the removed code unreachable is quite far away from it, so probably best reviewed separately then squash if accepting. +18469 area-Infrastructure Visual Studio tests also running Unix tests "E.g. ``` xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Diagnostics.Process.Tests Discovered: System.Diagnostics.Process.Tests Starting: System.Diagnostics.Process.Tests System.Diagnostics.Tests.ProcessModuleTests.TestModulesContainsUnixNativeLibs [FAIL] Assert.Contains() Failure Not found: (filter expression) In value: d__34 [System.Diagnostics.ProcessModule (dotnet.exe), System.Diagnostics.ProcessModule (ntdll.dll), System.Diagnostics.ProcessModule (KERNEL32.DLL), System.Diagnostics.ProcessModule (KERNELBASE.dll), System.Diagnostics.ProcessModule (ucrtbase.dll), ...] Stack Trace: at System.Diagnostics.Tests.ProcessModuleTests.TestModulesContainsUnixNativeLibs() TestUserCredentialsPropertiesOnWindows: NetUserAdd failed: Access is denied System.Diagnostics.Tests.ProcessStartInfoTests.TestUseShellExecuteProperty_Redirects_NotSupported(std: 0) [FAIL] System.PlatformNotSupportedException : UseShellExecute must always be set to false. Stack Trace: at System.Diagnostics.ProcessStartInfo.set_UseShellExecute(Boolean value) at System.Diagnostics.Tests.ProcessStartInfoTests.TestUseShellExecuteProperty_Redirects_NotSupported(Int32 std) System.Diagnostics.Tests.ProcessStartInfoTests.TestUseShellExecuteProperty_Redirects_NotSupported(std: 1) [FAIL] System.PlatformNotSupportedException : UseShellExecute must always be set to false. Stack Trace: at System.Diagnostics.ProcessStartInfo.set_UseShellExecute(Boolean value) at System.Diagnostics.Tests.ProcessStartInfoTests.TestUseShellExecuteProperty_Redirects_NotSupported(Int32 std) System.Diagnostics.Tests.ProcessStartInfoTests.TestUseShellExecuteProperty_Redirects_NotSupported(std: 2) [FAIL] System.PlatformNotSupportedException : UseShellExecute must always be set to false. Stack Trace: at System.Diagnostics.ProcessStartInfo.set_UseShellExecute(Boolean value) at System.Diagnostics.Tests.ProcessStartInfoTests.TestUseShellExecuteProperty_Redirects_NotSupported(Int32 std) System.Diagnostics.Tests.ProcessStartInfoTests.Password_GetSetUnix_ThrowsPlatformNotSupportedException [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: (No exception was thrown) Stack Trace: at System.Diagnostics.Tests.ProcessStartInfoTests.Password_GetSetUnix_ThrowsPlatformNotSupportedException() System.Diagnostics.Tests.ProcessStartInfoTests.Domain_GetSetUnix_ThrowsPlatformNotSupportedException [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: (No exception was thrown) Stack Trace: at System.Diagnostics.Tests.ProcessStartInfoTests.Domain_GetSetUnix_ThrowsPlatformNotSupportedException() System.Diagnostics.Tests.ProcessStartInfoTests.PasswordInClearText_GetSetUnix_ThrowsPlatformNotSupportedException [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: (No exception was thrown) Stack Trace: at System.Diagnostics.Tests.ProcessStartInfoTests.PasswordInClearText_GetSetUnix_ThrowsPlatformNotSupportedException() System.Diagnostics.Tests.ProcessStartInfoTests.UserName_GetSetUnix_ThrowsPlatformNotSupportedException [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: (No exception was thrown) Stack Trace: at System.Diagnostics.Tests.ProcessStartInfoTests.UserName_GetSetUnix_ThrowsPlatformNotSupportedException() System.Diagnostics.Tests.ProcessStartInfoTests.TestUseShellExecuteProperty_SetAndGet_Unix [FAIL] System.PlatformNotSupportedException : UseShellExecute must always be set to false. Stack Trace: at System.Diagnostics.ProcessStartInfo.set_UseShellExecute(Boolean value) at System.Diagnostics.Tests.ProcessStartInfoTests.TestUseShellExecuteProperty_SetAndGet_Unix() System.Diagnostics.Tests.ProcessStartInfoTests.TestEnvironmentVariablesPropertyUnix [FAIL] System.ArgumentException : An item with the same key has already been added. Key: newkey2 Stack Trace: at System.ThrowHelper.ThrowAddingDuplicateWithKeyArgumentException(Object key) at System.Collections.Generic.Dictionary`2.TryInsert(TKey key, TValue value, InsertionBehavior behavior) at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) at System.Collections.Specialized.StringDictionaryWrapper.Add(String key, String value) at System.Diagnostics.Tests.ProcessStartInfoTests.TestEnvironmentVariablesPropertyUnix() System.Diagnostics.Tests.ProcessStartInfoTests.LoadUserProfile_GetSetUnix_ThrowsPlatformNotSupportedException [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: (No exception was thrown) Stack Trace: at System.Diagnostics.Tests.ProcessStartInfoTests.LoadUserProfile_GetSetUnix_ThrowsPlatformNotSupportedException() System.Diagnostics.Tests.ProcessStartInfoTests.TestEnvironmentProperty [FAIL] Assert.Equal() Failure  (pos 6) Expected: NewKey Actual: NewKey4  (pos 6) Stack Trace: at System.Diagnostics.Tests.ProcessStartInfoTests.TestEnvironmentProperty() System.Diagnostics.Tests.ProcessTests.MinWorkingSet_GetMacos_ThrowsPlatformSupportedException [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: typeof(System.InvalidOperationException): No process is associated with this object. Stack Trace: at System.Diagnostics.Process.EnsureState(State state) at System.Diagnostics.Process.EnsureState(State state) at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited) at System.Diagnostics.Process.GetProcessHandle(Int32 access) at System.Diagnostics.Process.GetWorkingSetLimits(IntPtr& minWorkingSet, IntPtr& maxWorkingSet) at System.Diagnostics.Process.EnsureWorkingSetLimits() at System.Diagnostics.Process.get_MinWorkingSet() at System.Diagnostics.Tests.ProcessTests.<>c__DisplayClass22_0.b__0() System.Diagnostics.Tests.ProcessTests.TestRootGetProcessById [FAIL] System.ArgumentException : Process with an Id of 1 is not running. Stack Trace: at System.Diagnostics.Process.GetProcessById(Int32 processId, String machineName) at System.Diagnostics.Process.GetProcessById(Int32 processId) at System.Diagnostics.Tests.ProcessTests.TestRootGetProcessById() System.Diagnostics.Tests.ProcessTests.TestProcessOnRemoteMachineWindows [SKIP] Condition(s) not met: \""ProcessPeformanceCounterEnabled\"" System.Diagnostics.Tests.ProcessTests.GetProcessesByName_RemoteMachineNameWindows_ReturnsExpected(machineName: \""machine\"") [FAIL] System.InvalidOperationException : Couldn't connect to remote machine. ---- System.InvalidOperationException : Process performance counter is disabled, so the requested operation cannot be performed. Stack Trace: at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName) at System.Diagnostics.Process.GetProcesses(String machineName) at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName) at System.Diagnostics.Tests.ProcessTests.GetProcessesByName_ProcessNameMachineName_ReturnsExpected(String machineName) at System.Diagnostics.Tests.ProcessTests.GetProcessesByName_RemoteMachineNameWindows_ReturnsExpected(String machineName) ----- Inner Stack Trace ----- at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library) at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) System.Diagnostics.Tests.ProcessTests.GetProcessesByName_RemoteMachineNameWindows_ReturnsExpected(machineName: \""\\\\machine\"") [FAIL] System.InvalidOperationException : Couldn't connect to remote machine. ---- System.InvalidOperationException : Process performance counter is disabled, so the requested operation cannot be performed. Stack Trace: at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName) at System.Diagnostics.Process.GetProcesses(String machineName) at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName) at System.Diagnostics.Tests.ProcessTests.GetProcessesByName_ProcessNameMachineName_ReturnsExpected(String machineName) at System.Diagnostics.Tests.ProcessTests.GetProcessesByName_RemoteMachineNameWindows_ReturnsExpected(String machineName) ----- Inner Stack Trace ----- at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library) at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) System.Diagnostics.Tests.ProcessTests.MainWindowHandle_GetUnix_ThrowsPlatformNotSupportedException [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: (No exception was thrown) Stack Trace: at System.Diagnostics.Tests.ProcessTests.MainWindowHandle_GetUnix_ThrowsPlatformNotSupportedException() System.Diagnostics.Tests.ProcessTests.MaxValueWorkingSet_GetSetMacos_ThrowsPlatformSupportedException [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: typeof(System.InvalidOperationException): No process is associated with this object. Stack Trace: at System.Diagnostics.Process.EnsureState(State state) at System.Diagnostics.Process.EnsureState(State state) at System.Diagnostics.Process.GetProcessHandle(Int32 access, Boolean throwIfExited) at System.Diagnostics.Process.GetProcessHandle(Int32 access) at System.Diagnostics.Process.GetWorkingSetLimits(IntPtr& minWorkingSet, IntPtr& maxWorkingSet) at System.Diagnostics.Process.EnsureWorkingSetLimits() at System.Diagnostics.Process.get_MaxWorkingSet() at System.Diagnostics.Tests.ProcessTests.<>c__DisplayClass19_0.b__0() System.Diagnostics.Tests.ProcessTests.TestWindowApisUnix [FAIL] Assert.Equal() Failure  (pos 0) Expected: Actual: C  (pos 0) Stack Trace: at System.Diagnostics.Tests.ProcessTests.TestWindowApisUnix() System.Diagnostics.Tests.ProcessTests.TestProcessOnRemoteMachineUnix [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: typeof(System.InvalidOperationException): Couldn't connect to remote machine. Stack Trace: at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName) at System.Diagnostics.Process.GetProcesses(String machineName) at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName) at System.Diagnostics.Tests.ProcessTests.<>c__DisplayClass79_0.b__0() System.Diagnostics.Tests.ProcessTests.GetProcessesByName_RemoteMachineNameUnix_ThrowsPlatformNotSupportedException(machineName: \""machine\"") [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: typeof(System.InvalidOperationException): Couldn't connect to remote machine. Stack Trace: at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName) at System.Diagnostics.Process.GetProcesses(String machineName) at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName) at System.Diagnostics.Tests.ProcessTests.<>c__DisplayClass72_0.b__0() System.Diagnostics.Tests.ProcessTests.GetProcessesByName_RemoteMachineNameUnix_ThrowsPlatformNotSupportedException(machineName: \""\\\\machine\"") [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: typeof(System.InvalidOperationException): Couldn't connect to remote machine. Stack Trace: at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) at System.Diagnostics.ProcessManager.GetProcessInfos(String machineName) at System.Diagnostics.Process.GetProcesses(String machineName) at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName) at System.Diagnostics.Tests.ProcessTests.<>c__DisplayClass72_0.b__0() System.Diagnostics.Tests.ProcessTests.TestBasePriorityOnUnix [FAIL] Assert.Equal() Failure Expected: -11 Actual: 13 Stack Trace: at System.Diagnostics.Tests.ProcessTests.SetAndCheckBasePriority(ProcessPriorityClass exPriorityClass, Int32 priority) at System.Diagnostics.Tests.ProcessTests.TestBasePriorityOnUnix() System.Diagnostics.Tests.ProcessTests.TestHandleCount_OSX [FAIL] Assert.Equal() Failure Expected: 0 Actual: 418 Stack Trace: at System.Diagnostics.Tests.ProcessTests.TestHandleCount_OSX() System.Diagnostics.Tests.ProcessTests.TestUseShellExecute_Unix_Succeeds [FAIL] System.PlatformNotSupportedException : UseShellExecute must always be set to false. Stack Trace: at System.Diagnostics.ProcessStartInfo.set_UseShellExecute(Boolean value) at System.Diagnostics.Tests.ProcessTests.TestUseShellExecute_Unix_Succeeds() System.Diagnostics.Tests.ProcessThreadTests.TestStartTimeProperty_OSX [FAIL] Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: (No exception was thrown) Stack Trace: at System.Diagnostics.Tests.ProcessThreadTests.TestStartTimeProperty_OSX() Finished: System.Diagnostics.Process.Tests === TEST EXECUTION SUMMARY === System.Diagnostics.Process.Tests Total: 241, Errors: 0, Failed: 26, Skipped: 1, Time: 21.964s Press enter key to continue.../ ```" +18470 area-System.Diagnostics "Desktop: System.Diagnostics.Tests.ProcessModuleTests.TestModulesContainsDotnet failed with ""Xunit.Sdk.ContainsException""" Failed test: System.Diagnostics.Tests.ProcessModuleTests.TestModulesContainsDotnet MESSAGE: Assert.Contains() Failure Not found: (filter expression) In value: d__94 [System.Diagnostics.ProcessModule (xunit.console.exe), System.Diagnostics.ProcessModule (ntdll.dll), System.Diagnostics.ProcessModule (MSCOREE.DLL), System.Diagnostics.ProcessModule (KERNEL32.dll), System.Diagnostics.ProcessModule (KERNELBASE.dll), ...] +++++++++++++++++++ STACK TRACE: at System.Diagnostics.Tests.ProcessModuleTests.TestModulesContainsDotnet() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Process\tests\ProcessModuleTests.cs:line 35 Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/21/testReport/System.Diagnostics.Tests/ProcessModuleTests/TestModulesContainsDotnet/ +18471 area-System.Diagnostics "Desktop: System.Diagnostics.Tests.ProcessTests.TestInvalidPriorityClass failed with ""Xunit.Sdk.ThrowsException""" Failed test: System.Diagnostics.Tests.ProcessTests.TestInvalidPriorityClass Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/21/testReport/System.Diagnostics.Tests/ProcessTests/TestInvalidPriorityClass/ MESSAGE: Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.ComponentModel.InvalidEnumArgumentException): The value of argument 'value' (96) is invalid for Enum type 'ProcessPriorityClass'.\r\nParameter name: value +++++++++++++++++++ STACK TRACE: at System.Diagnostics.Process.set_PriorityClass(ProcessPriorityClass value) at System.Diagnostics.Tests.ProcessTests.<>c__DisplayClass53_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Process\tests\ProcessTests.cs:line 672 +18472 area-System.Diagnostics "Desktop: System.Diagnostics.Tests.ProcessTests.Process_StartWithDuplicatePassword failed with ""Xunit.Sdk.ThrowsException""" Failed test: System.Diagnostics.Tests.ProcessTests.Process_StartWithDuplicatePassword Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/21/testReport/System.Diagnostics.Tests/ProcessTests/Process_StartWithDuplicatePassword/ Message: ~~~ Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.InvalidOperationException): The Process object must have the UseShellExecute property set to false in order to start a process as a user. ~~~ Stack Trace: ~~~ at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) at System.Diagnostics.Tests.ProcessTests.<>c__DisplayClass129_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Process\tests\ProcessTests.cs:line 1464 ~~~ +18473 area-System.Diagnostics "Desktop: Tests under ""System.Diagnostics.Tests.ProcessTests"" failed with ""Xunit.Sdk.EqualException""" Configuration: outerloop_netfx_windows_nt_debug ~~~ System.Diagnostics.Tests.ProcessTests.TestProcessName [FAIL] Assert.Equal() Failure Expected: RemoteExecutorConsoleApp Actual: xunit.console Stack Trace: at System.Diagnostics.Tests.ProcessTests.TestProcessName() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Process\tests\ProcessTests.cs(685,0) System.Diagnostics.Tests.ProcessTests.TestMainModuleOnNonOSX [FAIL] Assert.Equal() Failure  (pos 0) Expected: dotnet.exe Actual: xunit.console.exe  (pos 0) Stack Trace: at System.Diagnostics.Tests.ProcessTests.TestMainModuleOnNonOSX() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Process\tests\ProcessTests.cs(271,0) System.Diagnostics.Tests.ProcessTests.TestStartInfo [FAIL] Assert.Equal() Failure  (pos 0) Expected: D:\\j\\workspace\\outerloop_net---903ddde6\\b··· Actual: RemoteExecutorConsoleApp.exe  (pos 0) Stack Trace: at System.Diagnostics.Tests.ProcessTests.TestStartInfo() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Process\tests\ProcessTests.cs(924,0) ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/21/consoleText +18474 area-System.Diagnostics Desktop: System.Diagnostics.Tests.HttpHandlerDiagnosticListenerTests.TestMultipleConcurrentRequests failed Failed test: System.Diagnostics.Tests.HttpHandlerDiagnosticListenerTests.TestMultipleConcurrentRequests Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/21/testReport/System.Diagnostics.Tests/HttpHandlerDiagnosticListenerTests/TestMultipleConcurrentRequests/ Message: ~~~ The timestamp sent with the event doesn't look correct Expected: True Actual: False ~~~ Stack Trace: ~~~ at System.Diagnostics.Tests.HttpHandlerDiagnosticListenerTests.TestMultipleConcurrentRequests() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.DiagnosticSource\tests\HttpHandlerDiagnosticListenerTests.cs:line 244 ~~~ +18475 area-System.Security "Desktop: System.Security.Cryptography.Encryption.Tests.Asymmetric.TrivialTests.ValidKeySizeUsesProperty failed with ""System.NullReferenceException""" Failed test: System.Security.Cryptography.Encryption.Tests.Asymmetric.TrivialTests.ValidKeySizeUsesProperty Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/21/testReport/System.Security.Cryptography.Encryption.Tests.Asymmetric/TrivialTests/ValidKeySizeUsesProperty/ Message: ~~~ System.NullReferenceException : Object reference not set to an instance of an object. ~~~ Stack Trace: ~~~ at System.Security.Cryptography.AsymmetricAlgorithm.set_KeySize(Int32 value) at System.Security.Cryptography.Encryption.Tests.Asymmetric.TrivialTests.ValidKeySizeUsesProperty() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Primitives\tests\AsymmetricAlgorithm\Trivial.cs:line 51 +18476 area-System.Security "Desktop: System.Security.Cryptography.Encryption.Tests.Symmetric.TrivialTests.TestKey failed with ""Xunit.Sdk.ThrowsException""" Failed test: System.Security.Cryptography.Encryption.Tests.Symmetric.TrivialTests.TestKey Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/21/testReport/System.Security.Cryptography.Encryption.Tests.Symmetric/TrivialTests/TestKey/ Message: ~~~ Assert.Throws() Failure Expected: typeof(System.Security.Cryptography.CryptographicException) Actual: (No exception was thrown) ~~~ Stack Trace: ~~~ at System.Security.Cryptography.Encryption.Tests.Symmetric.TrivialTests.TestKey() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Primitives\tests\SymmetricAlgorithm\Trivial.cs:line 120 ~~~ +18477 area-System.Security "Desktop: System.Security.Cryptography.Hashing.Tests.KeyedHashAlgorithmTest.SetKeyNull failed with ""System.NullReferenceException""" Failed test: System.Security.Cryptography.Hashing.Tests.KeyedHashAlgorithmTest.SetKeyNull Configuration: outerloop_netfx_windows_nt_debug Message: ~~~ System.NullReferenceException : Object reference not set to an instance of an object. ~~~ Stack Trace: ~~~ at System.Security.Cryptography.KeyedHashAlgorithm.set_Key(Byte[] value) at System.Security.Cryptography.Hashing.Tests.KeyedHashAlgorithmTest.SetKeyNull() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Primitives\tests\KeyedHashAlgorithmTests.cs:line 74 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/21/testReport/System.Security.Cryptography.Hashing.Tests/KeyedHashAlgorithmTest/SetKeyNull/ +18478 area-System.Security "Desktop: System.Security.Cryptography.Hashing.Tests.HmacAlgorithmTest.TrivialDerivationThrows failed with ""Xunit.Sdk.ThrowsException""" Failed test: System.Security.Cryptography.Hashing.Tests.HmacAlgorithmTest.TrivialDerivationThrows Configuration: outerloop_netfx_windows_nt_debug Message: ~~~ Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: (No exception was thrown) ~~~ Stack Trace: ~~~ at System.Security.Cryptography.Hashing.Tests.HmacAlgorithmTest.TrivialDerivationThrows() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Primitives\tests\HmacAlgorithmTest.cs:line 78 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/21/testReport/System.Security.Cryptography.Hashing.Tests/HmacAlgorithmTest/TrivialDerivationThrows/ +18479 area-System.Security "Desktop: System.Security.Cryptography.Hashing.Tests.HmacAlgorithmTest.SetNullAlgorithmName failed with ""System.ArgumentNullException""" Failed test: System.Security.Cryptography.Hashing.Tests.HmacAlgorithmTest.SetNullAlgorithmName Configuration: outerloop_netfx_windows_nt_debug Message: ~~~ System.ArgumentNullException : Value cannot be null. Parameter name: name ~~~ Stack Trace: ~~~ at System.Security.Cryptography.CryptoConfig.CreateFromName(String name, Object[] args) at System.Security.Cryptography.HMAC.set_HashName(String value) at System.Security.Cryptography.Hashing.Tests.HmacAlgorithmTest.SetNullAlgorithmName() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Primitives\tests\HmacAlgorithmTest.cs:line 17 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/21/testReport/System.Security.Cryptography.Hashing.Tests/HmacAlgorithmTest/SetNullAlgorithmName/ +18480 area-System.Net Porting bug: NRE thrown in HttpListenerRequest.GetClientCertificateAsync "```cs [Fact] public async Task ClientCertificatError_GetNoCertificate_ReturnsExpected() { await GetRequest(null, (_, r) => { // Ooops! NRE var certificate = await r.GetClientCertificateAsync(); }); } private async Task GetRequest(string[] headers, Action requestAction) { using (HttpListenerFactory factory = new HttpListenerFactory()) using (Socket client = factory.GetConnectedSocket()) { client.Send(factory.GetContent(""POST"", ""text"", headers, true)); HttpListener listener = factory.GetListener(); HttpListenerContext context = await listener.GetContextAsync(); HttpListenerRequest request = context.Request; requestAction(client, request); } } ``` I have a fix" +18481 area-System.Threading ValueTask doesn't inline well None of the method builder or methods on ValueTask seem to inline very well > Inlinee: System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder\`1[System.Decimal].Create - value class System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder\`1 () Fail Reason: Native estimate for function size exceeds threshold. > Inlinee: System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder\`1[System.Decimal].get_Task - instance value class System.Threading.Tasks.ValueTask\`1 () Fail Reason: Native estimate for function size exceeds threshold. > Inlinee: System.Runtime.CompilerServices.ValueTaskAwaiter\`1[System.Decimal].GetResult - instance !0 () Fail Reason: Native estimate for function size exceeds threshold. > Inliner: TheAwaitingGame.Order+d__5.MoveNext - instance void () Inlinee: instance value class System.Threading.Tasks.ValueTask\`1 () Fail Reason: Native estimate for function size exceeds threshold. Using a [ternary check](https://github.com/mgravell/protobuf-net/pull/233) will give better results than a direct `await` e.g. `(task.IsCompleted) ? task.Result : await task;` Note: should be `IsCompletedSuccessfully` though the `Task.Status` path doesn't inline either https://github.com/dotnet/corefx/issues/16745#issuecomment-292728779 Should the no-wait sync path be marked with aggressive inlines? Or is the state machine going to automatically add more weight than the ternary check? /cc @stephentoub @AndyAyersMS +18482 area-System.Net Porting bug: HttpListenerRequest.Cookies throws a CookieException for invalid cookies, NETFX doesn't throw "```cs public static async Task GetClientCertificate_NoCertificate_ReturnsNull() { await GetRequest(new[] { ""cookie: name=value; domain=.domain.com"" }, (_, request) => { Assert.Empty(request.Cookies); }); } private static async Task GetRequest(string[] headers, Action requestAction) { using (HttpListenerFactory factory = new HttpListenerFactory()) using (Socket client = factory.GetConnectedSocket()) { client.Send(factory.GetContent(""POST"", ""text"", headers, true)); HttpListener listener = factory.GetListener(); HttpListenerContext context = await listener.GetContextAsync(); HttpListenerRequest request = context.Request; requestAction(client, request); } } ``` Netfx doesn't throw; any cookie with a non-empty name is added. Netcoreapp does throw /cc @davidsh @Priya91 " +18483 area-Infrastructure ConditionalFact/ConditionalTheory tests are skipped with` netfx Following test fails with `msbuild /T:BuildAndTest` but passes with `msbuild /T:BuildAndTest /P:TargetGroup=netfx`. The test isn't being run. ```cs public static bool AlwaysTrue { get; } = true; [ConditionalFact(nameof(AlwaysTrue))] public void Test() { Assert.False(true); } ``` +18485 area-Meta .NET Core Dependencies Nightmare "Hello, I have a .NET Core project with some net452 dependencies. As per MS documentation, a .NET Core app can run on top of net452 with no issues and indeed, I was able to get a working ,NET Core app by targeting net452. Now, I am having trouble using libraries targeted to .NET Core because some of them target netstandard1.3, some other target netcoreapp1.0 and so on, which causes incompatibility issues. This is the case with IdentityServer4 and AWS .NET Core libraries for instance, how am I suppose to use libraries if there are so many different flavors of the same "".NET Core"" apps. Is this something that can be resolved by changing some config in my project file or is this an MS design decision?" +18486 area-System.Net CookieParser doesn't parse cookies separated by ';' "```cs public static IEnumerable Cookies_TestData() { // Returns 2 objects in .NET Core. // Returns 3 objects in .NET Full framework and on Unix. yield return new object[] { ""cookie: name1=value1,name2=value2;name3=value3"", new CookieCollection() { new Cookie(""name1"", ""value1""), new Cookie(""name2"", ""value2""), new Cookie(""name3"", ""value3"") } }; } [Theory]//[ConditionalTheory(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] [MemberData(nameof(Cookies_TestData))] public async Task Cookies_Get_ReturnsExpected(string cookieString, CookieCollection expected) { await GetRequest(""POST"", null, new[] { cookieString }, (_, request) => { Assert.Equal(expected.Count, request.Cookies.Count); for (int i = 0; i < expected.Count; i++) { Assert.Equal(expected[i].Name, request.Cookies[i].Name); Assert.Equal(expected[i].Value, request.Cookies[i].Value); } }); } private async Task GetRequest(string requestType, string query, string[] headers, Action requestAction, bool sendContent = true) { using (HttpListenerFactory factory = new HttpListenerFactory()) using (Socket client = factory.GetConnectedSocket()) { client.Send(factory.GetContent(requestType, query, sendContent ? ""Text"" : """", headers, true)); HttpListener listener = factory.GetListener(); HttpListenerContext context = await listener.GetContextAsync(); HttpListenerRequest request = context.Request; requestAction(client, request); } }` ```" +18488 area-System.Net Another batch of HttpListener tests and a product fix Contributes to #13618 Fixes #18480 Reveals #18482 and #18486 +18491 area-Meta Bulk updates of tests for AssertExtensions This is necessary because AOT builds can strip strings out of exceptions. +18493 area-System.Linq Compilation of custom System.Linq.Expressions.MemberBinding Creation of custom classes derived from `MemberBinding` is discouraged by the protected constructor being marked as obsolete. It is possible though. Upon compilation, if the `BindingType` is one of the values defined for the enum then both interpreter and compiler will throw an `InvalidCastException`. Otherwise the compiler will throw an `ArgumentException` while the interpreter will just ignore the binding. At the very least these should be consistent, but it seems more useful to throw the `ArgumentException` mentioned for one case above upon the call to `MemberBind` or `MemberInit` that the custom class was passed to. (Alternatively, making the constructor `internal` rather than `protected` would be better still, but a bigger change to the public API). +18495 area-System.Diagnostics DiagnosticSource: return packaging for UAP target UAP target was removed temporarily to build DiagnosticSource and publish it on nuget.org where UAP dependencies are missing (#18295). This change reverts it and returns UAP target to DiagnosticSource package. It fixes #18296 +18496 area-System.Diagnostics Logging for TestMultipleConcurrentRequests Trivial logging to see whether https://github.com/dotnet/corefx/issues/18474 is a little over 30sec or much worse. +18497 area-System.Reflection Proposal: MethodBase.Invoke(params object[]) ## Background When writing reflection-based code to invoke methods, it tends to be quite noisy because you have to write a bunch of `new object[] { }`s inline and cast to a more specific return type. This seems unnecessary because - Why not use `params object[]`? - Can't we make the method generic to avoid having to cast? ## Proposal ```cs namespace System.Reflection { public abstract partial class MethodBase : MemberInfo { // Existing API public object Invoke(object obj, object[] parameters); // Proposed API public TResult Invoke(object obj, params object[] parameters); } } ``` One other tiny pain point is that it seems kind of enigmatic to pass `null` as the first parameter to invoke a static method, so if the above looks OK we should add this API too: ```cs public TResult InvokeStatic(params object[] parameters); ``` ## Sample implementation ```cs public TResult Invoke(object obj, params object[] parameters) => (TResult)Invoke(obj, parameters); public TResult InvokeStatic(params object[] parameters) => Invoke(null, parameters); ``` ## Sample usage ```cs (bool)equalsMethod.Invoke(x, new object[] { y }) // becomes equalsMethod.Invoke(x, y) (int)compareMethod.Invoke(x, new object[] { y }) == 0 // becomes compareMethod.Invoke(x, y) == 0 ``` +18498 area-Infrastructure Re-enable package validation and clean up package content "Requires: https://github.com/dotnet/buildtools/pull/1441 This re-enables package validation and fixes all validation issues with packages. I've deleted packages for System.Net.Http and System.Runtime.InteropServices.RuntimeInformation which were absorbed by NETStandard. I've deleted packages for System.Runtime.WindowsRuntime.* since these are only supported by UWP and are in the framework package. Harvesting is now explicit so we'll no longer see ""magic"" happening around assets being automatically redistributed. This will fail CI until we have my buildtools change." +18500 area-System.Data Move AdapterUtil.cs to Common (System.Data) Each of Common, SqlClient and Odbc assemblies use an internal type `AdapterUtil` that actually has a lot of common pieces across the assemblies. I extracted those pieces and moved to [src/Common/src/System/Data/Common/](https://github.com/dotnet/corefx/tree/master/src/Common/src/System/Data/Common) (the folder where other common pieces for System.Data are located). We are trying to use corefx's System.Data in Mono where we have a single assembly System.Data.dll instead of 3 (Common, Odbc, SqlClient) so it's important for us to remove all duplicates (like I did in https://github.com/dotnet/corefx/pull/18297 and https://github.com/dotnet/corefx/pull/18281). A few notes: 1) Lots of members look unused anywhere - I didn't remove any of them, it's just an observation. 2) IsCatchableExceptionType and IsCatchableOrSecurityExceptionType look different and I am not sure which impl is the best (or they **should** be different): [Common](https://github.com/dotnet/corefx/blob/master/src/System.Data.Common/src/System/Data/Common/AdapterUtil.cs#L193-L225), [SqlClient](https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/Common/AdapterUtil.cs#L264-L283), [Odbc](https://github.com/dotnet/corefx/blob/master/src/System.Data.Odbc/src/Common/System/Data/Common/AdapterUtil.cs#L222-L261). I chose the Odbc one. 3) Exceptions in SqlClient don't use TraceException (DataCommonEventSource.Log) - just compare [this](https://github.com/dotnet/corefx/blob/master/src/System.Data.Common/src/System/Data/Common/AdapterUtil.cs#L60) and [this](https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/Common/AdapterUtil.cs#L99). /cc: @marek-safar +18501 area-System.Linq Throw on attempt to use custom MemberBinding type. Fixes #18493 +18502 area-System.Diagnostics Start Activity and inject headers in HttpHandlerDiagnosticListener on net46 This PR addresses additional comments to #18101. It aligns behavior of reflection-based `HttpHandlerDiagnosticListener` implemented in DiagnosticSource with [HttpClient instrumentation](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs) on corefx: - starts new Activity on outgoing request - injects Request-Id and Correlation-Context headers +18504 area-Serialization Add messages for PNSE in Serialization 1. Added messages for PNSE in DataContractSerializer. 2. SchemaExporter.Export currently throws PNSE. The PR is porting the implementation of the method from full framework. Fix https://github.com/dotnet/corefx/issues/17616 +18505 area-Serialization Directly reference DBNull Clean up some old reflection references to DBNull and statically reference it now. cc @sepidehMS @krwq @shmao +18506 area-System.IO Directory.GetCurrentDirectory() returns installation directory of Visual Studio 2017 in unit tests. @zuoanqh commented on [Mon Apr 17 2017](https://github.com/dotnet/standard/issues/304) +18509 area-System.Security Sanity check the DER encodings of values in certificate creation before writing them down. "Mainly this is ""check that DER lengths seem sensible, recursively"". Or, from a bug perspective, ""don't accept obviously bad input"" For example, the PublicKey object has EncodedParameters. This value is of ASN.1 type ANY OPTIONAL, so it can't be validated except as follows: * If the value is null, that's okay. * If the value is specified, the DER payload length should be correct. * If the tag has the constructed bit set, the contents should have a legal DER encoding. * The DER payload length should be correct. * If the tag has the constructed bit set, ... Additionally, places with expected tags (e.g. the returned AlgorithmIdentifier from X509SignatureGenerator) should check that they're getting those expected tags." +18510 area-System.Security Add missing members to SecurityContext Fix https://github.com/dotnet/corefx/issues/18077 +18512 area-Serialization DCJS_VerifyDateTimeForDateTimeFormat Fails on Unix. "DCJS_VerifyDateTimeForDateTimeFormat fails on Unix as the following method call serializes the object into different payloads, ``` SerializeAndDeserialize(new DateTime(1, 1, 1, 3, 58, 32), value, dcjsSettings); ``` On windows: baseline: `""\""03:58:32.00 a.m.\""""` On unix: actual output: `""\""03:58:32.00 a. m.\""""`" +18515 area-System.Security Add SecurityZone stub #11028 Depends on https://github.com/dotnet/coreclr/pull/11028 Fixes https://github.com/dotnet/corefx/issues/18078 Waiting for coreclr sync... +18516 area-Infrastructure GenFacadesTask should enable assembly resolver Per discussion with Wes and Eric, if GenFacadesTask is the only task to be run, it fails to apply a workaround (something like [this](https://github.com/dotnet/buildtools/blob/78260239e4db68ad5c2df774a27d5f9a54fd92e5/src/Microsoft.DotNet.Build.Tasks.net45/IsRestoreRequired.Desktop.cs)). As a result, it fails to load `System.IO.FileSystem` version 4.0.0.0. In my case, as I was working on type-forwarding for ValueTuple to desktop 4.7, I was just running `C:\repos\corefx\src\System.ValueTuple\src>msbuild /p:TargetGroup=net47`. And even though `C:\repos\corefx\Tools\net46` contained a `System.IO.FileSystem.dll`, there would be a failure to load because its version is 4.0.1.0. +18517 area-System.Reflection Remove tests that check inability to create ByRefs over Pointers I went back and forth on this but finally went down the route of: - Not a breaking change to make something work that didn't before. - There's nothing fundamentally wrong about talking about byrefs to byrefs or pointers - it's just that we don't support that combo in our runtimes. There's no need to enforce this limitation at every turn - if an app tries to get a TypeHandle or activate/instance one of these things, he'll get the exception. - We've been kicking ourselves for years for making Reflection so tied to the underlying runtime - don't want to add code and overhead to CoreRT that takes us back in that direction +18518 area-System.Runtime ValueTuple package uses pre-release package of net47 targeting pack Once a shipped package is available, the version in `external/netfx/netfx.depproj` should be updated. Relates to this change: https://github.com/dotnet/corefx/pull/18519 +18519 area-System.Runtime Adding type-forwards for ValueTuple to desktop 4.7 "@weshaggard @ericstj @AlexGhiondea for review. Fixes https://github.com/dotnet/corefx/issues/15175 I filed a follow-up issue (https://github.com/dotnet/corefx/issues/18518) to reference the shipped targeting pack instead of the pre-release one from myget. Do you have any tips on validation? So far, I inspected the produced package, and verified that it adds a ""net47"" folder under ""lib"" and ""ref"", and that it contains assemblies with type-forwards, and only referencing `mscorlib`. Ref folder before: ![image](https://cloud.githubusercontent.com/assets/12466233/25108070/29bf2d8c-2388-11e7-8596-e81bfe7ad438.png) And after change: ![image](https://cloud.githubusercontent.com/assets/12466233/25108122/7c6d8aba-2388-11e7-8747-be4047f430e3.png) Lib folder before: ![image](https://cloud.githubusercontent.com/assets/12466233/25108089/46442dae-2388-11e7-9aca-e45b71d12a97.png) And after change; ![image](https://cloud.githubusercontent.com/assets/12466233/25108103/643ddb16-2388-11e7-91de-096a34490c1b.png) " +18520 area-System.IO File.GetAttributes is inconsistent when returning attributes for a hidden directory "When running on macOS or linux (Ubuntu 16.04), if `File.GetAttributes` is used to return the attributes of a hidden directory, the results are different depending if the argument contains a trailing slash or not: ```csharp class Program { static void Main(string[] args) { Directory.CreateDirectory("".foo""); Console.WriteLine(File.GetAttributes("".foo"")); //prints ""Hidden, Directory"" Console.WriteLine(File.GetAttributes("".foo/"")); //prints ""Directory"" } } ``` I would expect the trailing slash to not make a difference here, and `Hidden` should be returned in both cases. ``` dotnet --info .NET Command Line Tools (1.0.1) Product Information: Version: 1.0.1 Commit SHA-1 hash: 005db40cd1 Runtime Environment: OS Name: ubuntu OS Version: 16.04 OS Platform: Linux RID: ubuntu.16.04-x64 Base Path: /usr/share/dotnet/sdk/1.0.1 ``` ``` dotnet --info .NET Command Line Tools (1.0.1) Product Information: Version: 1.0.1 Commit SHA-1 hash: 005db40cd1 Runtime Environment: OS Name: Mac OS X OS Version: 10.12 OS Platform: Darwin RID: osx.10.12-x64 Base Path: /usr/local/share/dotnet/sdk/1.0.1 ```" +18521 area-System.IO File.Move throws IOException on macOS when rename differs only by case "If `File.Move` is used on macOS to rename a file that differs only by case, it fails: ```csharp class Program { static void Main(string[] args) { File.WriteAllText(""foo.txt"", ""test""); File.Move(""foo.txt"", ""Foo.txt""); //this throws } } ``` This results in the following exception: ``` Unhandled Exception: System.IO.IOException: The file '/Users/Brandon/Code/repro2/Foo.txt' already exists. at System.IO.UnixFileSystem.MoveFile(String sourceFullPath, String destFullPath) at System.IO.File.Move(String sourceFileName, String destFileName) at repro2.Program.Main(String[] args) in /Users/Brandon/Code/repro2/Program.cs:line 11 ``` This same program does not throw when run on Windows or linux, and instead results in the renamed `Foo.txt` on disk. I would expect this to behave consistently across all platforms. Using `mv foo.txt Foo.txt` on macOS renames the file correctly, so I would expect the same thing to be possible via `File.Move`. ``` dotnet --info .NET Command Line Tools (1.0.1) Product Information: Version: 1.0.1 Commit SHA-1 hash: 005db40cd1 Runtime Environment: OS Name: Mac OS X OS Version: 10.12 OS Platform: Darwin RID: osx.10.12-x64 Base Path: /usr/local/share/dotnet/sdk/1.0.1 ``` " +18522 area-System.Security Adding missing ECDsaCng members Fixes https://github.com/dotnet/corefx/issues/17163 @danmosemsft See open question in linked issue +18523 area-System.Net Increase timeout for HTTP Cancelation tests Fix https://github.com/dotnet/corefx/issues/17591 +18525 area-System.Data Make System.Data more mono-friendly "A bunch of small mono-specific changes (mono is now able to use 100% of System.Data.Common and System.Data.SqlClient codebase with this PR + https://github.com/dotnet/corefx/pull/18500). 1. Move DbConnectionStringBuilderDescriptor class to a separate file from DbConnectionStringCommon.cs (in order to ignore the rest of the DbConnectionStringCommon.cs in mono). 2. Init `TimeSpan ts` with a default value (see https://github.com/dotnet/corefx/pull/17432). 3. Remove redundant `System.Data.Common.` [from here](https://github.com/dotnet/corefx/compare/master...EgorBo:make-system-data-mono-friendly?expand=1#diff-2572b94a53d7bbf4d82ea0f556f135e0L240) (mono will resolve it as System.Collections.ObjectModel.ReadOnlyCollection<>). 4. Make DbConnectionOptions `partial` and put mono-specific behavior near, with ["".Mono"" suffix](https://github.com/dotnet/corefx/pull/16190#issuecomment-280095549). /cc: @marek-safar " +18526 area-Infrastructure [1.0] Stabalize packages for 1.0.5 servicing release cc @gkhanna79 @leecow @ericstj @eerhardt +18527 area-Infrastructure [1.1] Stablize package for 1.1.2 servicing release cc @gkhanna79 @leecow @ericstj @eerhardt +18528 area-System.Runtime ValueTuple throws for null comparer, unlike other BCL APIs Continuing from https://github.com/dotnet/corefx/issues/18432. You would expect this to succeed, but it throws `NullReferenceException`: ```c# ((IStructuralEquatable)(1, 2)).Equals((1, 2), null) ``` I'll quite often take advantage of the fact that all BCL APIs use `EqualityComparer.Default` when you pass null, and chain constructors and other methods with the parameter `IEqualityComparer comparer = null`. If my own constructor or extension method takes `IEqualityComparer comparer = null`, I assume that I can pass that into the BCL method. It's not intuitive to make it the call site's responsibility to check for null and pass `EqualityComparer.Default` *or* call one or the other BCL overload depending whether `comparer = null`. It's not critical since the workaround is to pass `comparer ?? EqualityComparer.Default` instead of `comparer`. This is an API gotcha that may go unnoticed until code is in the field though. [`ValueTuple<*>.IStructuralEquatable.Equals`][1] and [`ValueTuple<*>.IStructuralComparable.CompareTo`][2] have no null comparer check. If it followed the convention set by all other BCL methods, it would use `EqualityComparer.Default` if you pass null. [`Array.IStructuralEquatable.Equals`][3] and [`Array.IStructuralComparable.CompareTo`][4], and [`Tuple<*>.IStructuralEquatable.Equals`][5] and [`Tuple<*>.IStructuralComparable.CompareTo`][6] have the same problem. They are in coreclr. Should I open an issue over there? [1]: https://github.com/dotnet/corefx/blob/124944c13686fd83b2cdaa01e7e94e629c4472f3/src/System.ValueTuple/src/System/ValueTuple/ValueTuple.cs#L335-L342 [2]: https://github.com/dotnet/corefx/blob/124944c13686fd83b2cdaa01e7e94e629c4472f3/src/System.ValueTuple/src/System/ValueTuple/ValueTuple.cs#L371-L382 [3]: https://github.com/dotnet/coreclr/blob/e0b8c96334016770680d64fc83a8e7dbdeb657ee/src/mscorlib/src/System/Array.cs#L698-L731 [4]: https://github.com/dotnet/coreclr/blob/e0b8c96334016770680d64fc83a8e7dbdeb657ee/src/mscorlib/src/System/Array.cs#L669-L696 [5]: https://github.com/dotnet/coreclr/blob/e0b8c96334016770680d64fc83a8e7dbdeb657ee/src/mscorlib/src/System/Tuple.cs#L124-L136 [6]: https://github.com/dotnet/coreclr/blob/e0b8c96334016770680d64fc83a8e7dbdeb657ee/src/mscorlib/src/System/Tuple.cs#L143-L155. +18529 area-System.Security Remove System.Security.Cryptography.Native Fixes: https://github.com/dotnet/corefx/issues/13124 cc: @bartonjs There is also bunch of files in here: `src/Common/src/Interop/Unix/System.Security.Cryptography.Native` but they seem to be used by few projects i.e. `System.Security.Cryptography.X509Certificates`. I took a quick attempt at removing them but they seem to be needed and I didn't find any good substitutes - please let me know if we really care about removing those (I think might be worth post 2.0 but wouldn't prioritize this right now) Misunderstood the issue. I'm also not sure if I need to do anything special for removing the package. Currently I'm mostly interested if this will pass on all of the OSes. +18530 area-System.Security AsymmetricAlgorithm.{To|From}XmlString throwing wrong exception type https://github.com/dotnet/corefx/blob/88ec4ba8432c1444fc43ecba5bd6d70f3d41d103/src/System.Security.Cryptography.Primitives/src/System/Security/Cryptography/AsymmetricAlgorithm.cs#L65-L73 ToXmlString/FromXmlString are throwing NotImplementedException. They should throw a PlatformNotSupportedException, with a message. +18531 area-System.Linq Use hashtable path if S.L.Expressions Switch method is string.Equals The `string.Equals(string, string)` method has the same behaviour as the default equality operator, so the optimised path taken for that default equality operator is just as applicable, so use it. +18532 area-System.Runtime Tlbattributes Not strictly required for net standard 2.0 but nice to have for tlbimp created dll to not have dangling references. This is the same PR as https://github.com/dotnet/coreclr/pull/10975 but done in corefx repo. @jkotas @danmosemsft PTAL +18533 area-System.Linq Fill some testing gaps in S.L.Expressions compilation. Contributes to #11409 +18535 area-System.Globalization Fix S.G.Extensions tests for netfx @safern again I see the failures in MC but for some reason don't find issues for them https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170418.01/workItem/System.Globalization.Extensions.Tests +18537 area-Serialization Fix XsPerformanceTest. XmlSerializer does not support Dictionary type. The fix is to skip DictionaryOfSimpleType for XmlSeriazlier. Fix #18249. +18538 area-Serialization DataContractJsonSerializerTests.DCJS_VerifyDateTimeForFormatStringDCJsonSerSetting Fails on others OS "DCJS_VerifyDateTimeForFormatStringDCJsonSerSetting pass on windows and osx, fails on others OS as the following method call serializes the object into different payloads, `SerializeAndDeserialize(value, baseline, dcjsSettings);` On windows and osx: baseline: `""\""\\/Date(1291190400000{timeZoneString})\\/\""""` On others os: actual output: `""\""\\/Date(1291161600000{timeZoneString})\\/\""""`" +18539 area-Serialization DCJS_VerifyDateTimeForFormatStringDCJsonSerSettings Fails on Ubuntu "DCJS_VerifyDateTimeForFormatStringDCJsonSerSettings fails on Ubuntu as the following method call serializes the object into different payloads, `SerializeAndDeserialize(jsonTypes.DT_List, expected_DT_list, dcjsSettings);` On windows: baseline: `""[\""03:58:32.00 a.m.\"",\""12:00:00.00 a.m.\"",\""12:00:00.00 a.m.\"",\""03:58:32.00 a.m.\""]""; ` On ubuntu: actual output: `""[\""03:58:32.00 a. m.\"",\""12:00:00.00 a. m.\"",\""12:00:00.00 a. m.\"",\""03:58:32.00 a. m.\""]"" `" +18540 area-System.Memory "Test: System.SpanTests.SpanTests/CopyToLargeSizeTest failed with ""System.OverflowException""" Opened on behalf of @Jiayili1 The test `System.SpanTests.SpanTests/CopyToLargeSizeTest(bufferSize: 4294967296)` has failed. System.OverflowException : Arithmetic operation resulted in an overflow. Stack Trace: at System.IntPtr.op_Explicit(Int64 value) at System.SpanTests.SpanTests.CopyToLargeSizeTest(Int64 bufferSize) Build : Master - 20170418.01 (Core Tests) Failing configurations: - Windows.10.Amd64 - x86-Debug - x86-Release - Windows.7.Amd64 - x86-Debug - x86-Release - Windows.81.Amd64 - x86-Debug - x86-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170418.01/workItem/System.Memory.Tests/analysis/xunit/System.SpanTests.SpanTests~2FCopyToLargeSizeTest(bufferSize:%204294967296) +18541 area-System.ComponentModel Improved readability Using pattern matching +18542 area-System.ComponentModel "Test: System.ComponentModel.DataAnnotations.Tests.CompareAttributeTests/Validate_Indexer_ThrowsTargetParameterCountException_Netfx failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.ComponentModel.DataAnnotations.Tests.CompareAttributeTests/Validate_Indexer_ThrowsTargetParameterCountException_Netfx` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: typeof(System.Reflection.TargetParameterCountException): Parameter count mismatch. Stack Trace: at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index) at System.ComponentModel.DataAnnotations.CompareAttribute.IsValid(Object value, ValidationContext validationContext) at System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext) at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext) at System.ComponentModel.DataAnnotations.Tests.CompareAttributeTests.<>c__DisplayClass5_0.b__0() in E:\A\_work\93\s\corefx\src\System.ComponentModel.Annotations\tests\CompareAttributeTests.cs:line 50 Build : Master - 20170418.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release - x86-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170418.01/workItem/System.ComponentModel.Annotations.Tests/analysis/xunit/System.ComponentModel.DataAnnotations.Tests.CompareAttributeTests~2FValidate_Indexer_ThrowsTargetParameterCountException_Netfx +18543 area-System.IO "Test: System.IO.Pipes.Tests.NamedPipeTest_CreateServer/Windows_CreateFromAlreadyBoundHandle_Throws_ArgumentException failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.IO.Pipes.Tests.NamedPipeTest_CreateServer/Windows_CreateFromAlreadyBoundHandle_Throws_ArgumentException(direction: In)` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: typeof(System.ApplicationException): The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG)) Stack Trace: at System.Threading.ThreadPool.BindIOCompletionCallbackNative(IntPtr fileHandle) at System.Threading.ThreadPool.BindHandle(SafeHandle osHandle) at System.IO.Pipes.PipeStream.InitializeHandle(SafePipeHandle handle, Boolean isExposed, Boolean isAsync) at System.IO.Pipes.NamedPipeServerStream..ctor(PipeDirection direction, Boolean isAsync, Boolean isConnected, SafePipeHandle safePipeHandle) at System.IO.Pipes.Tests.NamedPipeTest_CreateServer.<>c__DisplayClass17_1.b__0() in E:\A\_work\93\s\corefx\src\System.IO.Pipes\tests\NamedPipeTests\NamedPipeTest.CreateServer.cs:line 227 Build : Master - 20170418.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release - x86-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170418.01/workItem/System.IO.Pipes.Tests/analysis/xunit/System.IO.Pipes.Tests.NamedPipeTest_CreateServer~2FWindows_CreateFromAlreadyBoundHandle_Throws_ArgumentException(direction:%20In) +18544 area-System.IO "Test: System.IO.Pipes.Tests.NamedPipeTest_Simple_ServerInOutRead_ClientInOutWrite/CancelTokenOn_Client_ReadWriteCancelledToken_Throws_IOException failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.IO.Pipes.Tests.NamedPipeTest_Simple_ServerInOutRead_ClientInOutWrite/CancelTokenOn_Client_ReadWriteCancelledToken_Throws_IOException` has failed. Assert.Throws() Failure\r Expected: typeof(System.IO.IOException)\r Actual: typeof(System.OperationCanceledException): The operation was canceled. Stack Trace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.Pipes.PipeStream.EndRead(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170418.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release - x86-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170418.01/workItem/System.IO.Pipes.Tests/analysis/xunit/System.IO.Pipes.Tests.NamedPipeTest_Simple_ServerInOutRead_ClientInOutWrite~2FCancelTokenOn_Client_ReadWriteCancelledToken_Throws_IOException +18545 area-System.IO "Test: System.IO.Tests.StreamWriterWithBufferedStream_WriteTests/NullNewLineAsync failed with ""System.NullReferenceException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.StreamWriterWithBufferedStream_WriteTests/NullNewLineAsync` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.IO.StreamWriter.d__55.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.IO.Tests.WriteTests.d__12.MoveNext() in E:\A\_work\93\s\corefx\src\System.IO\tests\StreamWriter\StreamWriter.WriteTests.cs:line 206 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170418.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release - x86-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170418.01/workItem/System.IO.Tests/analysis/xunit/System.IO.Tests.StreamWriterWithBufferedStream_WriteTests~2FNullNewLineAsync +18546 area-System.IO "Desktop: System.IO.Pipes.Tests.AnonymousPipeTest_Specific.ReadModeToByte_Accepted failed with ""System.IO.IOException""" Failed test: System.IO.Pipes.Tests.AnonymousPipeTest_Specific.ReadModeToByte_Accepted Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/lastCompletedBuild/testReport/System.IO.Pipes.Tests/AnonymousPipeTest_Specific/ReadModeToByte_Accepted_serverDirection__Out__clientDirection__In_/ MESSAGE: ~~~ System.IO.IOException : The handle is invalid. ~~~ STACK TRACE: ~~~ at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.Pipes.PipeStream.UpdateReadMode() at System.IO.Pipes.PipeStream.get_ReadMode() at System.IO.Pipes.Tests.AnonymousPipeTest_Specific.ReadModeToByte_Accepted(PipeDirection serverDirection, PipeDirection clientDirection) in D:\j\workspace\outerloop_net---903ddde6\src\System.IO.Pipes\tests\AnonymousPipeTests\AnonymousPipeTest.Specific.cs:line 169 ~~~ +18547 area-System.Globalization "Desktop: System.Globalization.Tests.StringNormalizationTests.IsNormalized_Invalid failed with ""Xunit.Sdk.ThrowsException""" Failed tests: System.Globalization.Tests.StringNormalizationTests.IsNormalized_Invalid System.Globalization.Tests.StringNormalizationTests.Normalize_Invalid Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/lastCompletedBuild/testReport/System.Globalization.Tests/StringNormalizationTests/IsNormalized_Invalid/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.ArgumentNullException) Actual: typeof(System.NullReferenceException): Object reference not set to an instance of an object. ~~~ STACK TRACE: ~~~ at System.StringNormalizationExtensions.IsNormalized(String value) in D:\j\workspace\outerloop_net---903ddde6\src\System.Globalization.Extensions\src\System\StringNormalizationExtensions.netfx.cs:line 11 at System.Globalization.Tests.StringNormalizationTests.<>c.b__1_3() in D:\j\workspace\outerloop_net---903ddde6\src\System.Globalization.Extensions\tests\Normalization\StringNormalizationTests.cs:line 34 ~~~ +18548 area-System.Xml "Desktop: System.Xml.Tests.TCValidateElement.StringPassedToValidateEndElementDoesNotSatisfyIdentityConstraints failed with ""Xunit.Sdk.EqualException""" Failed test: System.Xml.Tests.TCValidateElement.StringPassedToValidateEndElementDoesNotSatisfyIdentityConstraints Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/lastCompletedBuild/testReport/System.Xml.Tests/TCValidateElement/StringPassedToValidateEndElementDoesNotSatisfyIdentityConstraints/ MESSAGE: ~~~ Assert.Equal() Failure Expected: 1 Actual: 2 ~~~ STACK TRACE: ~~~ at System.Xml.Tests.TCValidateElement.StringPassedToValidateEndElementDoesNotSatisfyIdentityConstraints() in D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Xml\tests\XmlSchema\XmlSchemaValidatorApi\ValidateElement.cs:line 507 ~~~ +18549 area-System.Threading "Desktop: System.Threading.Tasks.Tests.CancellationTokenTests.TokenSourceDispose_Negative failed with """"" Failed test: System.Threading.Tasks.Tests.CancellationTokenTests.TokenSourceDispose_Negative Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/lastCompletedBuild/testReport/System.Threading.Tasks.Tests/CancellationTokenTests/TokenSourceDispose_Negative/ MESSAGE: ~~~ System.ObjectDisposedException : The CancellationTokenSource has been disposed. ~~~ STACK TRACE: ~~~ at System.Threading.CancellationTokenSource.ThrowObjectDisposedException() at System.Threading.CancellationTokenSource.InternalRegister(Action`1 callback, Object stateForCallback, SynchronizationContext targetSyncContext, ExecutionContext executionContext) at System.Threading.CancellationToken.Register(Action`1 callback, Object state, Boolean useSynchronizationContext, Boolean useExecutionContext) at System.Threading.CancellationToken.Register(Action callback) at System.Threading.Tasks.Tests.CancellationTokenTests.TokenSourceDispose_Negative() in D:\j\workspace\outerloop_net---903ddde6\src\System.Threading.Tasks\tests\CancellationTokenTests.cs:line 198 ~~~ +18550 area-System.Threading "Desktop: Tests under ""System.Threading.Tasks.Tests.UnwrapTests"" failed with ""Xunit.Sdk.SameException""" Failed tests: System.Threading.Tasks.Tests.UnwrapTests.NonGeneric_Completed_Completed System.Threading.Tasks.Tests.UnwrapTests.Generic_Completed_Completed Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/lastCompletedBuild/consoleText ~~~ System.Threading.Tasks.Tests.UnwrapTests.NonGeneric_Completed_Completed(inner: Task { Status = RanToCompletion }) [FAIL] Assert.Same() Failure Expected: Task { Status = RanToCompletion } Actual: Task { Status = RanToCompletion } Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\System.Threading.Tasks\tests\UnwrapTests.cs(33,0): at System.Threading.Tasks.Tests.UnwrapTests.NonGeneric_Completed_Completed(Task inner) System.Threading.Tasks.Tests.UnwrapTests.Generic_Completed_Completed(inner: Task { Status = RanToCompletion }) [FAIL] Assert.Same() Failure Expected: Task { Status = RanToCompletion } (System.Threading.Tasks.Task`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]) Actual: Task { Status = RanToCompletion } (System.Threading.Tasks.UnwrapPromise`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]) Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\System.Threading.Tasks\tests\UnwrapTests.cs(48,0): at System.Threading.Tasks.Tests.UnwrapTests.Generic_Completed_Completed(Task`1 inner) ~~~ +18551 area-System.Threading "Desktop: Tests under ""System.Threading.Tasks.Tests.RunContinuationsAsynchronouslyTests"" failed with ""Xunit.Sdk.NotEqualException""" Failed tests: System.Threading.Tasks.Tests.RunContinuationsAsynchronouslyTests.ViaWhenAny System.Threading.Tasks.Tests.RunContinuationsAsynchronouslyTests.ViaUnwrap System.Threading.Tasks.Tests.RunContinuationsAsynchronouslyTests.ViaWhenAll Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/lastCompletedBuild/testReport/System.Threading.Tasks.Tests/RunContinuationsAsynchronouslyTests/ViaWhenAny_useRunContinuationsAsynchronously__True_/ MESSAGE: ~~~ Assert.NotEqual() Failure Expected: Not True Actual: True ~~~ STACK TRACE: ~~~ at System.Threading.Tasks.Tests.RunContinuationsAsynchronouslyTests.<>c__DisplayClass4_1.b__1(Task _) in D:\j\workspace\outerloop_net---903ddde6\src\System.Threading.Tasks\tests\Task\RunContinuationsAsynchronouslyTests.cs:line 54 at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Threading.Tasks.Tests.RunContinuationsAsynchronouslyTests.<>c__DisplayClass4_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Threading.Tasks\tests\Task\RunContinuationsAsynchronouslyTests.cs:line 60 at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Threading.Tasks.Tests.RunContinuationsAsynchronouslyTests.Run(Boolean useRunContinuationsAsynchronously, Func`2 getIntermediateContinuation) in D:\j\workspace\outerloop_net---903ddde6\src\System.Threading.Tasks\tests\Task\RunContinuationsAsynchronouslyTests.cs:line 63 at System.Threading.Tasks.Tests.RunContinuationsAsynchronouslyTests.ViaWhenAny(Boolean useRunContinuationsAsynchronously) in D:\j\workspace\outerloop_net---903ddde6\src\System.Threading.Tasks\tests\Task\RunContinuationsAsynchronouslyTests.cs:line 40 ~~~ +18552 area-System.Net There is no TcpClient(string hostname, int port) in .Net Core 1.1.0 I followed below link to try TcpClient, but there is no TcpClient(string hostname, int port) in current version of System.Net.Sockets. [TcpClient Class](https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.tcpclient?view=netcore-1.1.0). It seems TcpClient(string hostname, int port) are defined in [https://github.com/dotnet/corefx/blob/df579d8531104524aeadd2377a12de67f256545e/src/System.Net.Sockets/src/System/Net/Sockets/TCPClient.cs](https://github.com/dotnet/corefx/blob/df579d8531104524aeadd2377a12de67f256545e/src/System.Net.Sockets/src/System/Net/Sockets/TCPClient.cs). Could you share any information about this issue? Thanks +18553 area-Serialization Used to be portable library test, covered XmlAttributeOverrides. @huanwu, @shmao, @zhenlan, please help review the code. +18554 area-System.Net Reenabled dns lookup tests Fixes https://github.com/dotnet/corefx/issues/4002 +18556 area-System.Net Replace IPAddress implementation with managed implementation on Unix We have several bugs where different platforms parse IP addresses with different rules, different handling of corner cases, etc. To address this, I'm switching the Unix implementation to be entirely managed, such that parsing strings to IPAddress and rendering IPAddress to strings is handled in managed code without any P/Invokes. This PR: - Ports desktop's IPv4AddressHelper and IPv6AddressHelper to core. I made as few changes as possible to these in order to get things to work, but I did make a few changes in order to fix some bugs, e.g. IPv6AddressHelper's validation routines were letting through some invalid addresses (e.g. nothing after a closing bracket was being validated, scope ID overflow wasn't being validated, etc.) - Replaces IPAddressPal.Unix.cs with IPAddressPal.Managed.cs. I left in place the current PAL layer, but in the future we could easily remove the PAL entirely and just use the managed implementation (I tried compiling IPAddressPal.Managed.cs into the Windows build, and it builds and tests fine. - The one place I did remove the PAL entirely was for IPAddressParser.IPv4AddressToString: there's no point in calling out to native code for that, so I put a managed implementation in place across the board. - I didn't spent a lot of time on performance, but I did remove some of the aggregious things that were happening, e.g. we were allocating a new StringBuilder every time we did IPAddress.ToString, we were allocating byte[]s while parsing unnecessarily, etc. - I consolidated some of the existing test cases into theories and added a bunch more test cases. This revealed other bugs on Unix, which I also addressed. cc: @geoffkizer, @Priya91, @davidsh, @CIPop, @pgavlin Fixes https://github.com/dotnet/corefx/issues/11843 (and some other bugs for which we don't have issues) +18557 area-System.Xml Fix XSLT test failures on Desktop Fixes Desktop failures in XslCompiledTransform and XslTransform test projects. cc: @danmosemsft @krwq FYI: @safern +18559 area-Serialization Old Serialization design is back but it needs refactoring. "The [Serializable] is back (I don't need it since I think it is as useless as a generic in-depth Clone method) but fine. Howerver, I have one major design concern. Current design forces us to store transient serialization data in the object itself. It is awful by design and, IMO, defeats the ""simple-safe-easy-to-use-principle"" of the API: - It is not obvious that storing this transient sate should be the way to go (even for beginners, it hurts). - Failing to set this state to null in OnDeserialization (or OnDeserialized ""event') will lead to memory leaks. This will happen for sure. - Understanding OnDeserialized event vs. IDeserializationCallback.OnDeserialization is... fun but not as much as the SafeSerializationManager... Since I understand the "".Net Framework API surface compatibility"" goal, I think we (the .Net community at large) are missing here a great opportunity to fix what is clearly a bad design option. Is there any issue with the following approach? 1 - Offer a way to the deserialization ctor to store a transient state object. - Thanks to a new SetDeserialiazationState method on the StreamingContext? - Ouch! it's a struct that cannot be changed/extended... let's handle another deserialization ctor with an enhanced StreamingContext or one new parameter. 2 - Give back this object to the OnDeserialization method. - Thanks to a new IDeserializationStateCallback may be? - And, may be also, the OnDeserialized event could allow a new ""object state"" in its signature (since this one is more ""duck typed"". The ObjectManager should be able to manage this transient state correctly. Am I missing something here? I think so... SafeSerialization introduce other complexities. And the attribute/event approach is better than the potentially virtual OnDeserialization method. Again, am I missing something here? Are there hidden/secret plans to handle this more correctly? I guess I'm not the only one that feel a little bit sad to see those stuff coming back into the clean .Net Core code base... " +18560 area-System.Net System.Net.Http.WinHttpHandler not respecting request versions explicitly targeting http/2 "In WinHttpHandler.cs the if block on line 792 doesn't use HTTP/2 when the request message version is explicitly set. It currently just defaults to the WinHTTP default for sending the request. Change: ``` // Try to use the requested version if a known/supported version was explicitly requested. // Otherwise, we simply use winhttp's default. string httpVersion = null; if (state.RequestMessage.Version == HttpVersion.Version10) { httpVersion = ""HTTP/1.0""; } else if (state.RequestMessage.Version == HttpVersion.Version11) { httpVersion = ""HTTP/1.1""; } ``` To: ``` string httpVersion = null; if (state.RequestMessage.Version == HttpVersion.Version10) { httpVersion = ""HTTP/1.0""; } else if (state.RequestMessage.Version == HttpVersion.Version11) { httpVersion = ""HTTP/1.1""; } else if(state.RequestMessage.Version == HttpVersion.Version20) { httpVersion = ""HTTP/2"" } ```" +18564 area-System.Linq Free S.L.Expressions.Compiler.CompilerScope.Storage locals when possible The separate `GetNamedLocal` -seems to exist to possibly write to a `DebugInfoGenerator`, and that feature not used. Using `GetLocal` allows the local to be reused when the scope finishes, so do so. +18565 area-System.IO Expose the ExternalAttributes field in ZipArchive The ExternalFileAttributes field of a ZipArchiveEntry is currently hidden within the implementation and not accessible. This has been fine in the Windows world since it's not used but it is used by Unix's zip/unzip programs to store file permissions of an entry. As it currently stands, there is no way to carry Unix RWX permissions within a zip, so at unzip time the unzipper has to guess at permissions and manually chmod the entries. This PR simply exposes the raw field so that it may be used in any circumstance that requires access to the field. Tests are added to ensure that this field is set, read, and roundtrips properly with zips created from other common programs which use the field. Note: Unix `unzip` doesn't apply permissions in the external file attributes field of a zip produced on Windows. So if you modify the externalfileattributes of a zip on Windows, `unzip` will use the defaults instead of what is set in the field. This isn't easily resolvable on our side since the platformmadeby byte determines a number of other things that we don't want to mess with (e.g. file name validity), so it would be unwise to lie about the platform on which the zip was written. resolves https://github.com/dotnet/corefx/issues/17067 cc: @eerhardt @danmosemsft @stephentoub +18567 area-Infrastructure Add .NET Framework 4.7 support to NETStandard.Library.NETFramework package We need a separate build of both ref (shims.proj so that it unifies with ValueTuple in mscorlib) and lib to support net47. Without that we'd have type-conflicts at compile-time. cc @ericstj +18568 area-System.Net Re-enable dual-mode socket tests that were disabled on Linux\Mac We should re-enable tests that were disabled on Linux\Mac. The tests would randomly fail because of the way that port allocation is different than on Windows. On Linux\Mac, when asking for an available free port, the returned port number is a random unused port. On Windows, it is incremental and eventually rolls over. These tests are negative tests that connect to a V4 port and then send\listen on a V6 port (or vise-versa) of the same number expecting an unused port and thus failure case. However, in Linux\Mac there is a chance that the port is active instead of unused, causing the test to succeed, and\or interfering with a 'good' test. The port may be active on Windows too, causing similar problems, but the odds are much less as any given test run should not have active ports open that longs. Two options to re-enable these tests: 1) Enable a test mode where a given test is flagged an runs serially 2) Move the tests to a new assembly with the CollectionBehavior attribute (DisableTestParallelization=true, MaxParallelThreads=1) For these to work, all other tests should be done running, including tests in other assemblies (at least those tests which use sockets). An alternative way to re-enable these tests is to keep them in the current assembly, but change the logic to something like this to preserve the original intent of making sure the socket is isn't 'dual mode': 1) Bind to address family with port 0 so we get unused port 2) Bind to the other address family + same port 3) The bind should succeed (otherwise retry by going back to step 1) 4) Unbind (so we can do the receive on it) 5) Do the actual receive on that unbound port 6) Should fail (as these tests are negative tests) This alternative approach will increase reliability but there is a small chance between 4 and 5 another test grabbed that port. However, if 3 succeeds then it probably proves that the socket wasn't dual mode because you can't bind to the same port + family twice; thus perhaps the test can stop there and not include 4-6. See issues #16548, #9017, #13213, #17362, #17154, #13967 Tests that were disabled below, located in DualModeSocketTest.cs. Note history should be checked for each of the commits as there are cases of Linux vs. Mac differences in the original test code which needs to be accounted for when the tests are enabled again. https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs ``` DualModeConnect_IPAddressListToHost_Throws BeginAcceptV6BoundToSpecificV4_CantConnect BeginAcceptV4BoundToSpecificV6_CantConnect BeginAcceptV6BoundToAnyV4_CantConnect AcceptAsyncV6BoundToSpecificV4_CantConnect AcceptAsyncV4BoundToSpecificV6_CantConnect AcceptAsyncV6BoundToAnyV4_CantConnect SendToV4IPEndPointToV6Host_NotReceived SendToV6IPEndPointToV4Host_NotReceived SendToAsyncV4IPEndPointToV6Host_NotReceived SendToAsyncV6IPEndPointToV4Host_NotReceived ReceiveMessageFromV6BoundToAnyV4_NotReceived ReceiveFromV6BoundToSpecificV4_NotReceived ReceiveFromV4BoundToSpecificV6_NotReceived ReceiveFromV6BoundToAnyV4_NotReceived BeginReceiveFromV6BoundToSpecificV4_NotReceived BeginReceiveFromV4BoundToSpecificV6_NotReceived BeginReceiveFromV6BoundToAnyV4_NotReceived ReceiveMessageFromV6BoundToSpecificV4_NotReceived ReceiveMessageFromV4BoundToSpecificV6_NotReceived ``` +18569 area-Infrastructure Run outer loop tests on 32 bit Windows in Jenkins We don't do this at present. (The only 32 bit Windows runs we do is inner loop on Windows 8) @gkhanna79 @wtgodbe is this planned? Any reason why we shouldn't? Is it worth someone updating the groovy file at least? cc @mmitche @karelz +18570 area-System.Net Improve CI: disable socket tests on unix Disable socket tests on unix that randomly fail due to port collisions with other tests running concurrently. Addresses test failures #17362 and #17154. See issue #18568 to re-enable these tests in the future. +18571 area-System.Net Workaround bug in osx ping6. Check only for known failure exitcodes from ping to throw TimeOut exception. fixes #15018 cc @stephentoub +18572 area-System.Memory Add ReadOnlySpan CopyTo tests that already exist for Span cc @WinCPP, @shiftylogic An example of this would be the test recently added here: https://github.com/dotnet/corefx/pull/18286 We want these and possibly other such tests added to RoS from: https://github.com/dotnet/corefx/blob/master/src/System.Memory/tests/Span/CopyTo.cs#L205 To here: https://github.com/dotnet/corefx/blob/master/src/System.Memory/tests/ReadOnlySpan/CopyTo.cs#L123 +18575 area-System.Security disable all failing desktop System.Security.Cryptography.Primitives tests (verified no regression) Fixes: - https://github.com/dotnet/corefx/issues/18475 (ValidKeySizeUsesProperty) - https://github.com/dotnet/corefx/issues/18476 (TestKey) - https://github.com/dotnet/corefx/issues/18139 (CryptographicExceptionTests.Ctor) - https://github.com/dotnet/corefx/issues/18479 (SetNullAlgorithmName) - https://github.com/dotnet/corefx/issues/18478 (ResetAlgorithmName, TrivialDerivationThrows) - https://github.com/dotnet/corefx/issues/18477 (SetKeyNull) I have verified each one of them is also failing on Desktop with the same exception. Any additional improvements we can plan for 2.0 (ideally fix all of those differences) cc: @bartonjs +18576 area-System.Net Improve CI: disable randomly failing socket tests on unix Disable socket tests on unix that randomly fail due to port collisions with other tests running concurrently. Addresses test failures #17362 and #17154. See issue #18568 to re-enable these tests in the future. +18577 area-System.Net Change Debug.Assert to throw when X509 file permission issues on unix Convert the Debug.Asserts to be throws when encountering file permissions on unix. This occurred in CI when using NTFS instead of unix file system that supports chmod. Address https://github.com/dotnet/corefx/issues/14166 +18578 area-System.IO IsolatedStorage depends on two PlatformNotSupported assemblies on Unix I noticed this when doing some package refactoring. IsolatedStorage's unix implementation depends on System.Security.AccessControl and System.Security.Principal.Windows, both of which are not implemented. I suspect this means that IsolatedStorage doesn't work on Unix, or at least some portion of it doesn't. /cc @weshaggard +18579 area-System.Reflection Fix or disable failing Reflection tests in System.Runtime.Tests.dll - SkipOnTarget for those exercising PNSE apis. - Block a PNSE that happens in a class constructor and prevents all assembly tests from running. - Delete GetCallingAssembly() tests. This is iffy even in jitted frameworks. (I might have been more generous if the offending api call didn't happen inside Theory data where it's impossible to skip easily... as it is, not enough value to refactor.) - Delete all testing of contents of Module names and strings. - Avoid unnecessary MME's by not using framework types as test data. +18580 area-Infrastructure xplat msbuild not correctly failing on build failure See: Wow, that isn't good. Somehow on rerun Jenkins decided to ignore the failure: ``` /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/frameworkPackage.targets(108,5): error : Cycle detected for /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/bin/obj/shims/netcoreapp/facades/netstandard.dll. [/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/Microsoft.Private.CoreFx.NETCoreApp/Microsoft.Private.CoreFx.NETCoreApp.pkgproj] /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/frameworkPackage.targets(108,5): error : netstandard > System.IO.IsolatedStorage > System.Security.AccessControl > netstandard [/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/Microsoft.Private.CoreFx.NETCoreApp/Microsoft.Private.CoreFx.NETCoreApp.pkgproj] Build succeeded. /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/frameworkPackage.targets(108,5): error : Cycle detected for /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/bin/obj/shims/netcoreapp/facades/netstandard.dll. [/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/Microsoft.Private.CoreFx.NETCoreApp/Microsoft.Private.CoreFx.NETCoreApp.pkgproj] /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/frameworkPackage.targets(108,5): error : netstandard > System.IO.IsolatedStorage > System.Security.AccessControl > netstandard [/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/Microsoft.Private.CoreFx.NETCoreApp/Microsoft.Private.CoreFx.NETCoreApp.pkgproj] 0 Warning(s) 2 Error(s) Time Elapsed 00:12:01.69 Command execution succeeded. ``` Compare this to the failing build: ``` Microsoft.Private.CoreFx.NETCoreApp -> /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/bin/packages/Debug/specs/runtime.centos.7-x64.Microsoft.Private.CoreFx.NETCoreApp.nuspec /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/frameworkPackage.targets(108,5): error : Cycle detected for /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/bin/obj/shims/netcoreapp/facades/netstandard.dll. [/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/Microsoft.Private.CoreFx.NETCoreApp/Microsoft.Private.CoreFx.NETCoreApp.pkgproj] /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/frameworkPackage.targets(108,5): error : netstandard > System.IO.IsolatedStorage > System.Security.AccessControl > netstandard [/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/Microsoft.Private.CoreFx.NETCoreApp/Microsoft.Private.CoreFx.NETCoreApp.pkgproj] Build FAILED. /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/frameworkPackage.targets(108,5): error : Cycle detected for /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/bin/obj/shims/netcoreapp/facades/netstandard.dll. [/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/Microsoft.Private.CoreFx.NETCoreApp/Microsoft.Private.CoreFx.NETCoreApp.pkgproj] /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/frameworkPackage.targets(108,5): error : netstandard > System.IO.IsolatedStorage > System.Security.AccessControl > netstandard [/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug_prtest/pkg/Microsoft.Private.CoreFx.NETCoreApp/Microsoft.Private.CoreFx.NETCoreApp.pkgproj] 0 Warning(s) 2 Error(s) Time Elapsed 00:10:34.64 Command execution failed with exit code 1. Build step 'Execute shell' marked build as failure ``` +18581 area-System.Runtime Add ConditionalWeakTable.GetOrAdd API `ConditionalWeakTable` currently provides APIs for `public TValue GetValue(TKey key, CreateValueCallback createValueCallback)` and `public void AddOrUpdate(TKey key, TValue value)`, however it doesn't have any easy and efficient way to do `GetOrAdd`. Rationale and Usage ------------------------------------- Given a `Key` it will return the associated `Value` if the `Key` already exists in the table, otherwise it will add an entry with the `Key, Value` to the table. As @stephentoub pointed out today we can achieve this with `cwt.GetValue(key, _ => value);`. However, that is inefficient as it creates a delegate and closure. For an example, we have used the internal implementation [here ](https://github.com/dotnet/corert/blob/4d6760f3ca6ca17eb31c441bc5d8f5c1e309386c/src/System.Private.CoreLib/src/System/Runtime/InteropServices/PInvokeMarshal.cs#L254) to add items to the delegate marshalling table which is implemented using `ConditionalWeakTable`. Proposed API --------------------------- ```c# public sealed class ConditionalWeakTable : IEnumerable> where TKey : class where TValue : class { // Existing public ConditionalWeakTable(); ~ConditionalWeakTable(); public bool TryGetValue(TKey key, out TValue value); public void Add(TKey key, TValue value); public void AddOrUpdate(TKey key, TValue value); public bool Remove(TKey key); public void Clear(); public TValue GetValue(TKey key, CreateValueCallback createValueCallback); public TValue GetOrCreateValue(TKey key); public delegate TValue CreateValueCallback(TKey key); //Proposed public TValue GetValue(TKey key, TValue value); } ``` Implementation ------------------------ I have checked-in an internal implementation of the API [here](https://github.com/dotnet/corert/blob/4d6760f3ca6ca17eb31c441bc5d8f5c1e309386c/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/ConditionalWeakTable.cs#L431). +18583 area-Infrastructure Update netfx and netcoreapp baseline files For netfx baseline files we are no including netstandard ref folder in the list of resolve paths to find assemblies for netfx. cc @ericstj +18584 area-System.Runtime Reenable Array.CreateInstance Tests for UapAot in System.Runtime.Tests.dll. In System.Runtime.Tests, Array and Array17 tests exercising CreateInstance are Skip'd for UapAot using this issue as a comment. Something in those tests is corrupting memory in a way that causes the test exe to fail-fast (sometimes in an entirely unrelated test later on.) Since this hampers investigation of all the other tests, I'm disabling the whole lot until someone can figure it out. +18588 area-Infrastructure Remove the alpine-specific workaround in dir.props. This distro is not supported officially, and we are no longer running any official builds on it. Closes https://github.com/dotnet/corefx/issues/18029. +18589 area-System.Linq Proposal: Enumerable.RemoveAll(T) and RemoveFirst(T) ## Background Most of the time I use `Enumerable.Except`, I only want to remove one item. Unfortunately, `Except` takes an `IEnumerable` so I have to write `new[] { }` every time. Here are a couple of instances where this has happened recently: - [Polynomial.cs](https://gitlab.com/jamesqo/PolynomialReducer/blob/master/PolynomialReducer/CompactR/Polynomial.cs#L330) - [Data.cs](https://gitlab.com/jamesqo/PolynomialReducer/blob/master/PolynomialReducer.Tests/CompactR/Data.cs#L19) - [ImmutableArrayTest.cs](https://github.com/dotnet/corefx/blob/master/src/System.Collections.Immutable/tests/ImmutableArrayTest.cs#L1935) ## Proposal - I suggest we add a new method to `Enumerable`, `RemoveAll`, that takes a single item to remove from the user. **edit:** This method will return a new enumerable with all occurrences of the item removed, or an equivalent enumerable if the item wasn't found. - A `RemoveFirst` method will also be added for symmetry; it will remove the first occurrence of a specified item in the enumerable, or return an equivalent enumerable if the item wasn't found. ```cs namespace System.Linq { public static class Enumerable { public static IEnumerable RemoveAll(this IEnumerable source, TSource element); public static IEnumerable RemoveAll(this IEnumerable source, TSource element, IEqualityComparer comparer); public static IEnumerable RemoveFirst(this IEnumerable source, TSource element); public static IEnumerable RemoveFirst(this IEnumerable source, TSource element, IEqualityComparer comparer); } } ``` Does this sound like a reasonable idea? /cc @JonHanna **edit:** There would be one big semantic difference from `Except(new[] { item })`: the enumerable returned would not necessarily be distinct. For example, `new[] { 2, 3, 3 }.Except(new[] { 2 })` is `[3]`, while `new[] { 2, 3, 3 }.Remove(2)` would be `[3, 3]`. (I didn't even realize `Except` returned distinct items until I looked at its source code a second ago.) +18590 area-System.Net "HttpRequestStreamTests.Read_FullLengthAsynchronous_Success failed in CI with ""invalid response""" "https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/6549/consoleText ``` Test: ExecuteReaderWithCommandBehaviorTest Enabled Listeners System.Net.Tests.HttpRequestStreamTests.Read_FullLengthAsynchronous_Success(transferEncodingChunked: True, text: \""\"") [FAIL] System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(462,0): at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.HttpListener\tests\HttpRequestStreamTests.cs(72,0): at System.Net.Tests.HttpRequestStreamTests.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() Test: ExecuteReaderWithCommandBehaviorTest Started Server at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\System\Threading\Tasks\RendezvousAwaitable.cs(62,0): at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(863,0): at System.Net.Http.WinHttpHandler.d__105.MoveNext() Test: ExecuteReaderWithCommandBehaviorTest SqlOperation Successful Test: ExecuteReaderWithCommandBehaviorTest Listeners Disabled Test: ExecuteReaderWithCommandBehaviorTest Server Disposed Test: ExecuteReaderWithCommandBehaviorTest Listeners Disposed Successfully Test: ConnectionOpenAsyncErrorTest Enabled Listeners Finished: System.Net.HttpListener.Tests ```" +18591 area-System.Net Fix IPAddress parsing tests for netfx Some have an InnerException, some don't. I don't think this a breaking change/compat concern. +18593 area-System.Runtime Dead code in S.R.Extensions What showed up in the ILLink report for this. LowLeveldictionary seems like it should be deleted entirely in favor of dictionary: it says aims to have identical behavior. contributes to https://github.com/dotnet/corefx/issues/17905 +18594 area-Meta Reenable Silverlight signing for System.Json.dll I reverted one line from https://github.com/dotnet/corefx/commit/88e110bc10f3d5c9e27c1df41cf8be3300fd8c7e to unblock build. The Microbuild signing service does not recognize its 'SilverlightExtension' Strong name key moniker. This issue tracks re-enabling it once someone more familiar with Microbuild can take a look. @weshaggard +18595 area-System.Security "Desktop: System.Security.Permissions.Tests.EvidenceBaseTests.HashCallMethods failed with ""System.IO.FileNotFoundException""" Failed test: System.Security.Permissions.Tests.EvidenceBaseTests.HashCallMethods Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/23/testReport/System.Security.Permissions.Tests/EvidenceBaseTests/HashCallMethods/ MESSAGE: ~~~ System.IO.FileNotFoundException : Could not load file or assembly 'System.Reflection' or one of its dependencies. The system cannot find the file specified. ~~~ STACK TRACE: ~~~ at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) at System.Reflection.Assembly.Load(AssemblyName assemblyRef) at System.Security.Permissions.Tests.EvidenceBaseTests.HashCallMethods() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Permissions\tests\EvidenceBaseTests.cs:line 45 +18597 area-System.Linq "Desktop: System.Linq.Parallel.Tests.ParallelQueryCombinationTests.ToArray_OperationCanceledException_PreCanceled failed with ""Xunit.Sdk.ThrowsException""" Failed test: System.Linq.Parallel.Tests.ParallelQueryCombinationTests.ToArray_OperationCanceledException_PreCanceled Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/23/testReport/System.Linq.Parallel.Tests/ParallelQueryCombinationTests/ToArray_OperationCanceledException_PreCanceled_operation__Distinct_/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.OperationCanceledException) Actual: typeof(System.AggregateException): One or more errors occurred. ~~~ STACK TRACE: ~~~ at System.Linq.Parallel.QueryTaskGroupState.QueryEnd(Boolean userInitiatedDispose) at System.Linq.Parallel.MergeExecutor`1.Execute[TKey](PartitionedStream`2 partitions, Boolean ignoreOutput, ParallelMergeOptions options, TaskScheduler taskScheduler, Boolean isOrdered, CancellationState cancellationState, Int32 queryId) at System.Linq.Parallel.PartitionedStreamMerger`1.Receive[TKey](PartitionedStream`2 partitionedStream) at System.Linq.Parallel.DistinctQueryOperator`1.WrapPartitionedStreamHelper[TKey](PartitionedStream`2 hashStream, IPartitionedStreamRecipient`1 recipient, CancellationToken cancellationToken) at System.Linq.Parallel.DistinctQueryOperator`1.WrapPartitionedStream[TKey](PartitionedStream`2 inputStream, IPartitionedStreamRecipient`1 recipient, Boolean preferStriping, QuerySettings settings) at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.ChildResultsRecipient.Receive[TKey](PartitionedStream`2 inputStream) at System.Linq.Parallel.ScanQueryOperator`1.ScanEnumerableQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient) at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient) at System.Linq.Parallel.QueryOperator`1.ExecuteAndGetResultsAsArray() at System.Linq.Parallel.Tests.ParallelQueryCombinationTests.<>c__DisplayClass63_0.b__0(ParallelQuery`1 source) in D:\j\workspace\outerloop_net---903ddde6\src\System.Linq.Parallel\tests\Combinatorial\CancellationParallelQueryCombinationTests.cs:line 781 at System.Linq.Parallel.Tests.AssertThrows.<>c__DisplayClass1_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Linq.Parallel\tests\Helpers\AssertThrows.cs:line 17 ~~~ +18598 area-System.Linq "Desktop: System.Linq.Parallel.Tests.CastTests.Cast_ArgumentNullException failed with ""Xunit.Sdk.ThrowsException""" Failed test: System.Linq.Parallel.Tests.CastTests.Cast_ArgumentNullException Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/23/testReport/System.Linq.Parallel.Tests/CastTests/Cast_ArgumentNullException/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.ArgumentNullException) Actual: typeof(System.NullReferenceException): Object reference not set to an instance of an object. ~~~ STACK TRACE: ~~~ at System.Linq.ParallelEnumerable.Cast[TResult](ParallelQuery source) at System.Linq.Parallel.Tests.CastTests.<>c.b__14_0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Linq.Parallel\tests\QueryOperators\CastTests.cs:line 149 ~~~ +18599 area-System.Linq "Desktop: Tests under ""System.Linq.Parallel.Tests.ElementAtElementAtOrDefaultTests"" failed with ""System.MissingMethodException""" Failed tests: System.Linq.Parallel.Tests.ElementAtElementAtOrDefaultTests.ElementAt System.Linq.Parallel.Tests.ElementAtElementAtOrDefaultTests.ElementAtOrDefault System.Linq.Parallel.Tests.ElementAtElementAtOrDefaultTests.ElementAtOrDefault_OutOfRange System.Linq.Parallel.Tests.ElementAtElementAtOrDefaultTests.ElementAt_OutOfRange System.Linq.Parallel.Tests.ElementAtElementAtOrDefaultTests.ElementAt_Longrunning System.Linq.Parallel.Tests.ElementAtElementAtOrDefaultTests.ElementAtOrDefault_OutOfRange_Longrunning System.Linq.Parallel.Tests.ElementAtElementAtOrDefaultTests.ElementAtOrDefault_Longrunning System.Linq.Parallel.Tests.ElementAtElementAtOrDefaultTests.ElementAt_OutOfRange_Longrunning Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/23/testReport/System.Linq.Parallel.Tests/ElementAtElementAtOrDefaultTests/ElementAt/ MESSAGE: ~~~ System.MissingMethodException : Method not found: 'System.Collections.Generic.IEnumerable`1 System.Linq.Enumerable.Append(System.Collections.Generic.IEnumerable`1, !!0)'. ~~~ STACK TRACE: ~~~ at System.Linq.Parallel.Tests.UnorderedSources.d__12`1.MoveNext() at System.Linq.Parallel.Tests.ElementAtElementAtOrDefaultTests.d__2.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\System.Linq.Parallel\tests\QueryOperators\ElementAtElementAtOrDefaultTests.cs:line 18 at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() ~~~ +18600 area-System.Linq "Desktop: System.Linq.Parallel.Tests.SumTests.Sum_Float_Longrunning failed with ""Xunit.Sdk.EqualException""" Failed test: System.Linq.Parallel.Tests.SumTests.Sum_Float_Longrunning Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/23/testReport/System.Linq.Parallel.Tests/SumTests/Sum_Float_Longrunning_count__65536_/ MESSAGE: ~~~ Assert.Equal() Failure Expected: 2.147451E+09 Actual: 2.147422E+09 ~~~ STACK TRACE: ~~~ at System.Linq.Parallel.Tests.SumTests.Sum_Float(Int32 count) in D:\j\workspace\outerloop_net---903ddde6\src\System.Linq.Parallel\tests\QueryOperators\SumTests.cs:line 132 at System.Linq.Parallel.Tests.SumTests.Sum_Float_Longrunning(Int32 count) in D:\j\workspace\outerloop_net---903ddde6\src\System.Linq.Parallel\tests\QueryOperators\SumTests.cs:line 143 ~~~ +18601 area-System.Numerics [ARM32/Linux] Test failure: System.Numerics.Vectors.Tests.dll "Environment: Raspberry pi 3 (Ubuntu 16.04) ``` System.Numerics.Tests.Vector2Tests.Vector2TransformNormalTest [FAIL] Assert.Equal() Failure Expected: <0.3169873, 2.183013> Actual: <0.3169873, 2.183013> Stack Trace: at System.Numerics.Tests.Vector2Tests.Vector2TransformNormalTest() System.Numerics.Tests.Vector2Tests.Vector2TransformNormal3x2Test [FAIL] Assert.Equal() Failure Expected: <-0.1339746, 2.232051> Actual: <-0.1339746, 2.232051> Stack Trace: at System.Numerics.Tests.Vector2Tests.Vector2TransformNormal3x2Test() ``` Simple Test ```c# public class Test { const int Pass = 100; const int Fail = -1; const float Pi = (float)Math.PI; public static float ToRadians(float degrees) { return degrees * Pi / 180f; } public static int Main() { Vector2 v = new Vector2(1.0f, 2.0f); Matrix4x4 m = Matrix4x4.CreateRotationX(ToRadians(30.0f)) * Matrix4x4.CreateRotationY(ToRadians(30.0f)) * Matrix4x4.CreateRotationZ(ToRadians(30.0f)); m.M41 = 10.0f; m.M42 = 20.0f; m.M43 = 30.0f; Vector2 expected = new Vector2(0.3169873f, 2.18301272f); Vector2 actual; actual = Vector2.TransformNormal(v, m); if(expected == actual) { Console.WriteLine(""Pass""); return Pass; } else { Console.WriteLine(""Fail""); return Fail; } } } ``` Test result: ``` Fail ```" +18603 area-System.Security "System.Security.Cryptography.X509Certificates.Tests.ChainTests.BuildChain_MicrosoftDotCom_WithRootCertInUserAndSystemRootCertStores failed with ""System.Security.Cryptography.CryptographicException""" Failed test: System.Security.Cryptography.X509Certificates.Tests.ChainTests.BuildChain_MicrosoftDotCom_WithRootCertInUserAndSystemRootCertStores Configuration: outerloop_netcoreapp_fedora24_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_fedora24_debug/26/testReport/System.Security.Cryptography.X509Certificates.Tests/ChainTests/BuildChain_MicrosoftDotCom_WithRootCertInUserAndSystemRootCertStores/ MESSAGE: ~~~ System.Security.Cryptography.CryptographicException : Invalid file permissions. The file '/mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_debug/tempHome/.dotnet/corefx/cryptography/x509stores/root/4EB6D578499B1CCF5F581EAD56BE3D9B6744A5E5.pfx' must readable and writable by the current owner and by no one else, and the permissions could not be changed to meet that criteria. ~~~ STACK TRACE: ~~~ at Internal.Cryptography.Pal.DirectoryBasedStoreProvider.EnsureFilePermissions(FileStream stream, UInt32 userId) at Internal.Cryptography.Pal.DirectoryBasedStoreProvider.Add(ICertificatePal certPal) at System.Security.Cryptography.X509Certificates.X509Store.Add(X509Certificate2 certificate) at System.Security.Cryptography.X509Certificates.Tests.ChainTests.BuildChain_MicrosoftDotCom_WithRootCertInUserAndSystemRootCertStores() ~~~ +18604 area-System.Data "System.Data.SqlClient.Tests.DiagnosticTest.ExecuteReaderAsyncTest failed with ""Timed out after 60000ms waiting for remote process 54039""" Failed test: System.Data.SqlClient.Tests.DiagnosticTest.ExecuteReaderAsyncTest Configuration: outerloop_netcoreapp_Ubuntu 14.04_release Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu14.04_release/20/testReport/System.Data.SqlClient.Tests/DiagnosticTest/ExecuteReaderAsyncTest/ MESSAGE: ~~~ Timed out after 60000ms waiting for remote process 54039 Expected: True Actual: False ~~~ STACK TRACE: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() +18606 area-System.Runtime Exclude GC tests from GCStress runs "this test failed when **set TestGCStressLevel=2**, error message in testresult.xml as following 1. test name=""System.Tests.GCTests.LatencyRoundtrips_LowLatency(value: SustainedLowLatency)"" type=""System.Tests.GCTests"" method=""LatencyRoundtrips_LowLatency"" time=""0.2391149"" result=""Fail"" 2. failure exception-type=""Xunit.Sdk.EqualException"" 3. **Stacktrace:** at System.Tests.GCTests.LatencyRoundtrips(GCLatencyMode value) in F:\repos\corefx\src\System.Runtime\tests\System\GCTests.cs:line 406 at System.Tests.GCTests.LatencyRoundtrips_LowLatency(GCLatencyMode value) in F:\repos\corefx\src\System.Runtime\tests\System\GCTests.cs:line 419 4. **testResults file attached:** [testResults.txt](https://github.com/dotnet/corefx/files/933119/testResults.txt) " +18607 area-Serialization Add 4 basic DSC test cases. @shmao , @huanwu Please help to review this pull request. +18608 area-System.Memory Overlap detection in SpanHelpers.CopyTo yields false positives The [`SpanHelpers.CopyTo`](https://github.com/dotnet/corefx/blob/166e73faa842fc8d8c46737c0b7b68293af5e1dd/src/System.Memory/src/System/SpanHelpers.cs#L25-L44) method tests if `src` and `dst` overlap by first checking [if `src` is greater than `dst`](https://github.com/dotnet/corefx/blob/166e73faa842fc8d8c46737c0b7b68293af5e1dd/src/System.Memory/src/System/SpanHelpers.cs#L25-L26) and then checking [if the `tailDiff` (which depends on the first check) is negative](https://github.com/dotnet/corefx/blob/166e73faa842fc8d8c46737c0b7b68293af5e1dd/src/System.Memory/src/System/SpanHelpers.cs#L29-L44). If `src` and `dst` do not overlap and the GC swaps the order of `src` and `dst` in the address space between the two checks, then `isOverlapped` becomes erroneously `true`: ```csharp int srcLength = 50; int dstLength = 50; T[] array = new T[300]; ref T src1 = ref array[0]; // src before swap ref T dst = ref array[100]; IntPtr srcMinusDst = Unsafe.ByteOffset(ref dst, ref src1); bool srcGreaterThanDst = (sizeof(IntPtr) == sizeof(int)) ? srcMinusDst.ToInt32() >= 0 : srcMinusDst.ToInt64() >= 0; IntPtr tailDiff; ref T src2 = ref array[200]; // src after swap if (srcGreaterThanDst) { // If the start of source is greater than the start of destination, then we need to calculate // the different between the end of destination relative to the start of source. tailDiff = Unsafe.ByteOffset(ref Unsafe.Add(ref dst, dstLength), ref src2); } else { // If the start of source is less than the start of destination, then we need to calculate // the different between the end of source relative to the start of destunation. tailDiff = Unsafe.ByteOffset(ref Unsafe.Add(ref src2, srcLength), ref dst); } // If the source is entirely before or entirely after the destination and the type inside the span is not // itself a reference type or containing reference types, then we can do a simple block copy of the data. bool isOverlapped = (sizeof(IntPtr) == sizeof(int)) ? tailDiff.ToInt32() < 0 : tailDiff.ToInt64() < 0; Debug.Assert(!isOverlapped); ``` It's not really a bug, because the subsequent copy operation is just less optimized. But it's a bit surprising, and may not be obvious to people looking at the code, who could assume that the overlap check gives correct results under all circumstances. cc @jkotas (related: https://github.com/dotnet/corefx/issues/17793) +18609 area-System.Threading Expose Task.IsCompletedSuccessfully Fixes https://github.com/dotnet/corefx/issues/16745 cc: @kouvel, @alexperovich +18610 area-System.Linq Prohibit Expression.Bind with members of open generic types. Closes #8081 +18612 area-System.Net Fix HttpWebRequest.KeepAlive handling Fixes https://github.com/dotnet/corefx/issues/18448 cc: @davidsh, @Priya91 +18614 area-System.Net Allow instantiate HttpRequestHeaders and merge it into another instance "```System.Net.Http.HttpRequestHeaders``` is a comfortable class, and it stores all general headers [UserAgent, Connection, Encoding etc.] and custom headers. This class used by ```HttpClient``` as ```DefaultRequestHeaders``` property, for merge default headers into every ```HttpRequestMessage```. Example for internal using of this for set default headers: [HttpClient.PrepareRequestMessage](https://github.com/dotnet/corefx/blob/5d20e4df940dc9991af5cbb3f5ecc824e3151741/src/System.Net.Http/src/System/Net/Http/HttpClient.cs#L639) The internal logic that merge headers: [HttpRequestHeaders.AddHeaders](https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.Net.Http/src/System/Net/Http/Headers/HttpRequestHeaders.cs#L418) Unfortunately, This class have 2 limitations: 1. It doesn't have any public constructor. 2. The logic of merge ```HttpRequestHeaders``` into another instance of ```HttpRequestHeaders```, is not public. I want to extend ```HttpClient``` or ```HttpMessageHandler``` behavior, so I can create per-host ```DefaultRequestHeaders```. Something like this: ``` cs HttpRequestHeaders googleDefaultHeaders = new HttpRequestHeaders { { ""X-MY-HEADER-1"", ""123"" }, { ""X-MY-HEADER-2"", ""456"" }, }; googleDefaultHeaders.UserAgent = ""XYZ; googleDefaultHeaders.Connection = false; httpClient.PerHostDefaultHeaders.Add(new Uri(""HTTP://www.google.com""), googleDefaultHeaders); ``` [Sorry for my bad English ):]" +18615 area-System.Security Disable X509 chain test via IsReliableInCI Test is failing on Fedora; this disables it via the IsReliableInCI helper method. Addresses https://github.com/dotnet/corefx/issues/18603 Fedora CI is likely using NTFS file system which doesn't support chmod and thus fails when installing the microsoft.com root cert for this test. Not sure why this is not failing for Ubuntu too - either they already have that cert installed or CI is no longer using NTFS for Ubuntu. +18616 area-System.Linq Fix PLINQ tests for desktop - Avoid using Enumerable.Append, which isn't available in desktop - Suppress tests on desktop where the test is verifying a bug fix in core Fixes https://github.com/dotnet/corefx/issues/18598 Fixes https://github.com/dotnet/corefx/issues/18599 Fixes https://github.com/dotnet/corefx/issues/18600 Fixes https://github.com/dotnet/corefx/issues/18597 cc: @alexperovich, @kouvel +18618 area-System.Runtime Another 556 System.Runtime.Test failures down. "No more ""Multidimensional arrays of rank 1 are not supported...""" +18619 area-System.IO Fix UnixFileSystem.MoveFile on macOS when just changing file casing Neither the link/unlink nor copy-all-data approaches work well on a case-insensitive file system when just changing the casing of the file name. This PR adds an upfront check that detects when the files are the same, and in such cases, just does a rename. (Note that this depends on System.Private.CoreLib having the same understanding of the size of Interop.Sys.FileStatus, and thus the Unix legs of CI will fail until https://github.com/dotnet/coreclr/pull/11070 is merged and consumed into CoreFx.) https://github.com/dotnet/corefx/issues/18521 cc: @ianhays, @JeremyKuhne, @bording +18622 area-System.Runtime Add test for failfast in event of corrupted state exception. Add test… … for Assembly.Load by AssemblyName when AssemblyName.CodeBase property is set +18623 area-System.Net Failure in System.Net.Security.Tests.SslStreamStreamToStreamTest_Sync.SslStream_StreamToStream_Successive_ClientWrite_WithZeroBytes_Success ``` MESSAGE: System.AggregateException : One or more errors occurred. (VirtualNetwork: Timeout reading the next frame.) (The credentials supplied to the package were not recognized)\r\n---- System.TimeoutException : VirtualNetwork: Timeout reading the next frame.\r\n---- System.ComponentModel.Win32Exception : The credentials supplied to the package were not recognized +++++++++++++++++++ STACK TRACE: at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) at System.Net.Security.Tests.SslStreamStreamToStreamTest_Sync.DoHandshake(SslStream clientSslStream, SslStream serverSslStream) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\tests\FunctionalTests\SslStreamStreamToStreamTest.cs:line 424 at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Successive_ClientWrite_WithZeroBytes_Success() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\tests\FunctionalTests\SslStreamStreamToStreamTest.cs:line 113 ----- Inner Stack Trace #1 (System.TimeoutException) ----- at System.Net.Test.Common.VirtualNetwork.ReadFrame(Boolean server, Byte[]& buffer) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Net\VirtualNetwork\VirtualNetwork.cs:line 39 at System.Net.Test.Common.VirtualNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\tests\System\Net\VirtualNetwork\VirtualNetworkStream.cs:line 118 at System.Net.FixedSizeReader.ReadPacket(Stream transport, Byte[] buffer, Int32 offset, Int32 count) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\FixedSizeReader.cs:line 26 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 868 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 839 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 810 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 690 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 611 at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStream.cs:line 207 at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStream.cs:line 195 at System.Net.Security.Tests.SslStreamStreamToStreamTest_Sync.<>c__DisplayClass0_1.b__0() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\tests\FunctionalTests\SslStreamStreamToStreamTest.cs:line 422 at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) ----- Inner Stack Trace #2 (System.ComponentModel.Win32Exception) ----- at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) in D:\j\workspace\windows_nt_de---4526f5ff\src\Common\src\Interop\Windows\sspicli\SSPIWrapper.cs:line 167 at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStreamPal.Windows.cs:line 407 at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStreamPal.Windows.cs:line 131 at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs:line 681 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs:line 784 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs:line 705 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 764 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 979 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 934 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 882 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 690 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 611 at System.Net.Security.SslStream.AuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStream.cs:line 224 at System.Net.Security.SslStream.AuthenticateAsServer(X509Certificate serverCertificate) in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\src\System\Net\Security\SslStream.cs:line 212 at System.Net.Security.Tests.SslStreamStreamToStreamTest_Sync.<>c__DisplayClass0_1.b__1() in D:\j\workspace\windows_nt_de---4526f5ff\src\System.Net.Security\tests\FunctionalTests\SslStreamStreamToStreamTest.cs:line 423 at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/6585/ +18627 area-System.Net Add support for UseDefaultCredentials to CurlHandler Rely on libcurl internally using gssapi and kerberos infrastructure. Fixes https://github.com/dotnet/corefx/issues/12618 cc: @hongdai, @Priya91, @davidsh, @geoffkizer +18629 area-System.Security Implemented a couple missing CAS stubs Implemented a couple missing CAS stubs #17693 +18630 area-System.IO Failure of WaitForChangedTests.CreatedDeleted_Success @ianhays attempted to fix in https://github.com/dotnet/corefx/pull/17240 https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/6591/consoleFull#-12256351162d31e50d-1517-49fc-92b3-2ca637122019 ``` 11:37:46 System.IO.Tests.WaitForChangedTests.CreatedDeleted_Success(changeType: Deleted) [FAIL] 11:37:47 Assert.Equal() Failure 11:37:47 Expected: Deleted 11:37:47 Actual: 0 11:37:47 Stack Trace: 11:37:47 D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.FileSystem.Watcher\tests\FileSystemWatcher.WaitForChanged.cs(152,0): at System.IO.Tests.WaitForChangedTests.CreatedDeleted_Success(WatcherChangeTypes changeType) ``` +18631 area-System.Reflection Harden finalizers Make memory block disposal thread safe. This addresses reentrancy issue occurring on CLR shutdown described in https://github.com/dotnet/corefx/issues/18632 and makes the Dispose method thread safe. Hardens all finalizers against thread abort and race conditions. Fixes https://github.com/dotnet/corefx/issues/18632 (internal bug 360526) +18632 area-System.Reflection Reentrancy in AbstractMemoryBlock.Dispose on shutdown "Copied from internal VSO bug 360526. **Crash Analysis** In the crash case, the portable PDB reader ends up running because CLR shutdown has already been kicked off on another thread, meaning clr!g_fEEShutDown has been transitioned to a nonzero value. Once this happens, the code that would normally acquire an ISymUnmanagedReader for mscorlib/System.Web short circuits at the following stack: ``` // // if (g_fEEShutDown) // RETURN NULL; // clr!Module::GetISymUnmanagedReader clr!Module::GetISymUnmanagedReaderNoThrow clr!DebugStackTrace::GetStackFramesInternal mscorlib!System.Diagnostics.StackFrameHelper::InitializeSourceInfo ``` Once the short-circuit occurs, control unwinds back to GetStackFramesInternal and enters the blocks that ""fall back"" to portable PDB probing in cases where the required source info can't be obtained from a legacy PDB. In other words, the portable PDB reader ""light up everywhere"" once the CLR enters shutdown. Details on how the portable PDB code ended up crashing The reported crash occurred during the execution of the NativeHeapMemoryBlock finalizer (on the finalizer thread): ``` KERNELBASE!LocalFree+0x2e mscorlib_ni!DomainNeutralILStubClass.IL_STUB_PInvoke(IntPtr)+0x6e mscorlib_ni!System.Runtime.InteropServices.Marshal.FreeHGlobal(IntPtr)+0x22 System_Core_ni!System.Reflection.Internal.NativeHeapMemoryBlock.Dispose(Boolean)+0x11 System_Core_ni!System.Reflection.Internal.NativeHeapMemoryBlock.Finalize()+0x1a clr!FastCallFinalizeWorker+0x6 clr!FastCallFinalize+0x55 ``` The crash occurred during while CLR shutdown was underway, and specifically happened during the ""Shutdown_Finalize2"" pass of shutdown finalization. This pass has the following properties: Before the pass starts, the runtime is ""mostly suspended"" such that only the finalizer thread is allowed to run managed code (i.e., all other managed threads have been forced out of managed code via the same mechanism that is used during GC suspension). The pass finalizes ALL finalizable objects on the GC heap, regardless of whether the objects are ""live"" or ""dead"". In the crash case, step 1 occurred while a thread was in the middle of the Dispose code for the very same NativeHeapMemoryBlock instance. The runtime ""trapped"" this thread when it tried to return back to managed code, meaning it was sitting at the following stack at crash time: ``` clr!JIT_RareDisableHelper+0x14 mscorlib_ni!DomainNeutralILStubClass.IL_STUB_PInvoke(IntPtr)+0x87 mscorlib_ni!System.Runtime.InteropServices.Marshal.FreeHGlobal(IntPtr)+0x22 System_Core_ni!System.Reflection.Internal.NativeHeapMemoryBlock.Dispose(Boolean)+0x11 System_Core_ni!System.Reflection.Internal.AbstractMemoryBlock.Dispose()+0x19 System_Core_ni!System.Reflection.PortableExecutable.PEReader.ReadDebugDirectory()+0x21c ``` So in this case (which can only happen when finalizing ""live"" objects during shutdown finalization), while the finalizer doesn't literally ""race"" with the Dispose code, it does conceptually end up ""preempting"" it. As a result, it ends up running the following line twice (from fx\src\Core\System\Reflection\Internal\MemoryBlocks\NativeHeapMemoryBlock.cs): ``` Marshal.FreeHGlobal((IntPtr)_pointer); ``` This generates a double-free, which generates the heap corruption that was detected by the IIS stress harness." +18635 area-System.IO Fix several System.IO.Packaging issues with differing desktop behavior On desktop, calling Package.Open(stream, FileMode.Create, ...) on a seekable stream sets the length to 0, since the ZipArchive that gets created from it will seek around in the stream and considers it to start from position 0 rather than the current position. The core implementation was not doing that. Then tests were written against core; those tests should have used FileMode.Open but used FileMode.Create (presumably by accident), and thus on desktop the stream was being cleared whereas on core it was not. This change fixes the core implementation to do the same stream validation/mutation that's done on desktop (additional code a direct copy of what's in desktop), and updates the tests to use FileMode.Open instead of FileMode.Create in the few problematic cases. I then added a couple of additional tests. Fixes https://github.com/dotnet/corefx/issues/10898 Fixes https://github.com/dotnet/corefx/issues/10897 cc: @EricWhiteDev, @mellinoe +18637 area-System.Runtime Add type forwarders for newly added types in System.Runtime.CompilerServices Specifically `RuntimeFeature` and `IsReadOnlyAttribute`. Both types were added to `dotnet/coreclr` and `dotnet/corert`. cc @jcouv @dotnet/roslyn-compiler @jkotas From what I can see in source, this is the only place that forwards types. Do they need to be coped somewhere in this repo? +18638 area-System.Memory Issue #18572 Add ReadonlySpan CopyTo test Fixes #18572. @ahsonkhan @shiftylogic Please review. +18640 area-System.IO Fix unix time Fixes: #18431 Detailed description: https://github.com/dotnet/corefx/issues/18431#issuecomment-295448091 cc: @stephentoub @danmosemsft @tarekgh @JeremyKuhne @ianhays +18644 area-Serialization Fix XmlDictionaryReader.ReadElementContentAsDateTime(). The bug is with [`XmlDictionaryReader.ReadElementContentAsDateTime()`](https://github.com/dotnet/corefx/blob/6c53c9572258b5b208e9a74efc170494de4de822/src/System.Private.DataContractSerialization/src/System/Xml/XmlDictionaryReader.cs#L859). The method should use `ReadContentAsDateTime` instead of `ReadContentAsDateTimeOffset` to read string into DateTime. The test was verifying the behavior on NetCore, which was wrong. Since we started running the test on Desktop recently, the test started failing. The PR fixed both the code and the test. Fix #18205 +18646 area-System.Net "HttpClient no longer sends header 'Accept-Encoding:""gzip, deflate""' and decompress 'gzip/deflate' content by default in .NET Core 2.0" "This is a breaking change compared to `netcoreapp1.1`. In `netcoreapp1.1`, `HttpClient` automatically sends header `""Accept-Encoding"": ""gzip, deflate""` in the request, and automatically decompress 'gzip/deflate' content from the response. However, with `netcoreapp2.0`, `HttpClient` doesn't send the header and stop automatically decompressing 'gzip/deflate' content. Repro Steps -------------- ```c# // Program.cs using System; using System.Net.Http; namespace test { class Program { static void Main(string[] args) { using (var client = new HttpClient()) { using (var request = new HttpRequestMessage(HttpMethod.Get, @""http://httpbin.org/headers"")) { var result = client.SendAsync(request).Result; var payload = result.Content.ReadAsStringAsync().Result; Console.WriteLine(""Header Dict:\n{0}"", payload); } using (var request = new HttpRequestMessage(HttpMethod.Get, @""http://httpbin.org/gzip"")) { var result = client.SendAsync(request).Result; var payload = result.Content.ReadAsStringAsync().Result; Console.WriteLine(""Decompressed Content:\n{0}"", payload); } } } } } ``` **With netcoreapp1.1** `http://httpbin.org/headers` just echos the request headers. You can see `Accept-Encoding` was sent by `HttpClient`. `http://httpbin.org/gzip` returns gzip-encoded data. You can see the content was automatically decompressed by `HttpClient`. ``` PS> dotnet restore PS> dotnet run Header Dict: { ""headers"": { ""Accept-Encoding"": ""gzip, deflate"", ""Connection"": ""close"", ""Host"": ""httpbin.org"" } } Decompressed Content: { ""gzipped"": true, ""headers"": { ""Accept-Encoding"": ""gzip, deflate"", ""Connection"": ""close"", ""Host"": ""httpbin.org"" }, ""method"": ""GET"", ""origin"": ""131.107.147.177"" } ``` **With netcoreapp2.0** `Accept-Encoding` was not sent by `HttpClient` and the gzip-encoded data was not automatically decompressed. ``` PS> dotnet restore PS> dotnet run Header Dict: { ""headers"": { ""Connection"": ""close"", ""Host"": ""httpbin.org"" } } Decompressed Content:  W??X?%?A ?0E?9E??? nE? ^??C2????K??]??????r?.V?O?????*[5*?rJ8 qR?+?>???U?""?E?q ??v?>(?????.h7??;???????? ``` Environment --------------- **netcoreapp1.1** ``` .NET Command Line Tools (1.0.1) Product Information: Version: 1.0.1 Commit SHA-1 hash: 005db40cd1 Runtime Environment: OS Name: Windows OS Version: 10.0.14393 OS Platform: Windows RID: win10-x64 Base Path: ...\AppData\Local\Microsoft\dotnet\sdk\1.0.1 ``` **netcoreapp2.0** ``` .NET Command Line Tools (2.0.0-preview1-005724) Product Information: Version: 2.0.0-preview1-005724 Commit SHA-1 hash: e391b5d5f3 Runtime Environment: OS Name: Windows OS Version: 10.0.14393 OS Platform: Windows RID: win10-x64 Base Path: ...\AppData\Local\Microsoft\dotnet\sdk\2.0.0-preview1-005724\ ```" +18647 area-System.IO CrossCompilation IsolatedStorage Fixes #18578 +18649 area-System.Drawing Does the upcoming .net core 2.0 support System.Drawing fully in Linux? +18650 area-System.Security Validate the DER components of user-provided data The parameters value for the PublicKey and the generator's SignatureAlgorithm both are supposed to be DER-encoded; so validate that claim. For the most part this isn't necessary, since rehydrating the signed cert is going to fail to parse the certificate anyways; but being defensive is good. Fixes #18509. +18651 area-System.Diagnostics Activity: Precise for StartTime and duration on .NET Desktop DateTime.UtcNow accuracy is ~16ms. This change calculates precise StartTime and duration in `Activity.Start()` and `Activity.Stop()` (unless they were set by user). On CoreCLR 2.0, precision of DateTime.UtcNow was improved in #9736. Though it leaves netcoreapp1.* (CLR 1.*) users with imprecise time in Activity. /cc @vancem +18654 area-Infrastructure "No test result generated under ""System.IO.Pipes.Tests"" and ""System.IO.Ports.Tests""" "No test result generated under ""System.IO.Pipes.Tests"" and ""System.IO.Ports.Tests"" Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170420.01/workItem/System.IO.IsolatedStorage.Tests/wilogs Configuration: Windows.10.Amd64:x64-Release " +18655 area-System.Linq "Tests under: System.Linq.Queryable.Tests.System.Linq.Tests.QueryFromExpressionTests failed with ""System.ArgumentException""" Opened on behalf of @Jiayili1 The test `System.Linq.Tests.QueryFromExpressionTests/Block` has failed. System.ArgumentException : Unhandled Expression Type: Block Stack Trace: at System.Linq.Expressions.OldExpressionVisitor.Visit(Expression exp) at System.Linq.EnumerableQuery`1.GetEnumerator() at System.Linq.Tests.QueryFromExpressionTests.Block() in E:\A\_work\83\s\corefx\src\System.Linq.Queryable\tests\QueryFromExpressionTests.cs:line 550 Build : Master - 20170420.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Debug - x64-Release - x86-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.01/workItem/System.Linq.Queryable.Tests/analysis/xunit/System.Linq.Tests.QueryFromExpressionTests~2FBlock +18656 area-System.Net "Test: System.Net.NameResolution.Tests.InitializationTests/Dns_GetHostName_CallsSocketInit_Ok failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Net.NameResolution.Tests.InitializationTests/Dns_GetHostName_CallsSocketInit_Ok` has failed. Assert.Throws() Failure\r Expected: typeof(System.Exception)\r Actual: (No exception was thrown) Stack Trace: at System.Net.NameResolution.Tests.InitializationTests.Dns_GetHostName_CallsSocketInit_Ok() in E:\A\_work\83\s\corefx\src\System.Net.NameResolution\tests\UnitTests\InitializationTest.cs:line 123 Build : Master - 20170420.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Debug - x64-Release - x86-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.01/workItem/System.Net.NameResolution.Unit.Tests/analysis/xunit/System.Net.NameResolution.Tests.InitializationTests~2FDns_GetHostName_CallsSocketInit_Ok +18657 area-System.Net "Test: System.Net.Tests.HttpWebRequestHeaderTest/HttpWebRequest_KeepAlive_CorrectConnectionHeaderSent failed with ""Xunit.Sdk.ContainsException""" "Opened on behalf of @Jiayili1 The test `System.Net.Tests.HttpWebRequestHeaderTest/HttpWebRequest_KeepAlive_CorrectConnectionHeaderSent(keepAlive: True)` has failed. Assert.Contains() Failure\r Not found: \""Connection\"": \""Keep-Alive\""\r In value: {\""Method\"":\""GET\"",\""Url\"":\""/Echo.ashx\"",\""Headers\"": {\r \""Host\"": \""corefx-net.cloudapp.net\""\r },\r \""Cookies\"": {},\r \""BodyContent\"": \""\"",\r \""BodyLength\"": 0,\r \""SecureConnection\"": false,\r \""ClientCertificatePresent\"": false,\r \""ClientCertificate\"": null\r } Stack Trace: at System.Net.Tests.HttpWebRequestHeaderTest.HttpWebRequest_KeepAlive_CorrectConnectionHeaderSent(Nullable`1 keepAlive) in E:\A\_work\83\s\corefx\src\System.Net.Requests\tests\HttpWebRequestHeaderTest.cs:line 244 Build : Master - 20170420.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.01/workItem/System.Net.Requests.Tests/analysis/xunit/System.Net.Tests.HttpWebRequestHeaderTest~2FHttpWebRequest_KeepAlive_CorrectConnectionHeaderSent(keepAlive:%20True)" +18659 area-System.Net "Test: System.Net.Security.Tests.NegotiateStreamStreamToStreamTest_Async/NegotiateStream_StreamToStream_FlushAsync_Propagated failed with ""System.InvalidOperationException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.NegotiateStreamStreamToStreamTest_Async/NegotiateStream_StreamToStream_FlushAsync_Propagated` has failed. System.InvalidOperationException : Operation is not valid due to the current state of the object. Stack Trace: at System.Net.Test.Common.VirtualNetworkStream.CompleteAsyncFlush() in E:\A\_work\83\s\corefx\src\Common\tests\System\Net\VirtualNetwork\VirtualNetworkStream.cs:line 96 at System.Net.Security.Tests.NegotiateStreamStreamToStreamTest.NegotiateStream_StreamToStream_FlushAsync_Propagated() in E:\A\_work\83\s\corefx\src\System.Net.Security\tests\FunctionalTests\NegotiateStreamStreamToStreamTest.cs:line 285 Build : Master - 20170420.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Debug - x64-Release - x86-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.NegotiateStreamStreamToStreamTest_Async~2FNegotiateStream_StreamToStream_FlushAsync_Propagated +18660 area-Serialization "Desktop: Test ""XmlSerializerTests.SoapEncodedSerializationTest_Enum"" failed with ""System.InvalidOperationException""" Failed tests: XmlSerializerTests.SoapEncodedSerializationTest_Enum XmlSerializerTests.SoapEncodedSerializationTest_Basic XmlSerializerTests.SoapEncodedSerialization_IncludeType XmlSerializerTests.SoapEncodedSerializationTest_With_SoapType XmlSerializerTests.SoapEncodedSerialization_SoapAttribute XmlSerializerTests.SoapEncodedSerialization_CircularLink XmlSerializerTests.SoapEncodedSerializationTest_ComplexField XmlSerializerTests.SoapEncodedSerializationTest_Array XmlSerializerTests.SoapEncodedSerializationTest_With_SoapIgnore XmlSerializerTests.SoapEncodedSerializationTest_NestedPublicType XmlSerializerTests.SoapEncodedSerializationTest_List XmlSerializerTests.SoapEncodedSerializationTest_With_SoapElement Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/24/consoleText Message: ~~~ System.InvalidOperationException : Unable to generate a temporary class (result=1). error CS0012: The type 'System.Enum' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. ~~~ Stack Trace: ~~~ at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence) at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies) at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence evidence) at System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace) at System.Xml.Serialization.XmlSerializer..ctor(XmlTypeMapping xmlTypeMapping) D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs(2684,0): at XmlSerializerTests.SoapEncodedSerializationTest_Enum() ~~~ +18661 area-Serialization "Desktop: XmlSerializerTests.Xml_TimeSpanAsRoot failed with ""XML comparison is also failing""" "Failed tests: Xml_TimeSpanAsRoot Xml_TypeWithDateTimePropertyAsXmlTime Xml_TypeWithTimeSpanProperty Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/24/consoleText Message: ~~~ XML comparison is also failing Test failed for input: 01:02:03 Expected: PT1H2M3S Actual: Expected: True Actual: False ~~~ Stack Trace: ~~~ at XmlSerializerTests.SerializeAndDeserialize[T](T value, String baseline, Func`1 serializerFactory, Boolean skipStringCompare, XmlSerializerNamespaces xns) in D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 3432 at XmlSerializerTests.Xml_TimeSpanAsRoot() in D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 1635 ~~~" +18664 area-System.Net System.Net.HttpListenerException : An operation was attempted on a nonexistent network connection "Test failed in System.Net.HttpListener.Tests.dll, the test output log as following: set COMPlus_GCStress=3 set XUNIT_PERFORMANCE_MIN_ITERATION=1 set XUNIT_PERFORMANCE_MAX_ITERATION=1 call F:\repos\corefx\bin\testhost\netcoreapp-Windows_NT-Debug-x64\\dotnet.exe xunit.console.netcore.exe System.Net.HttpListener.Tests.dll -xml testResults.xml -notrait category=nonnetcoreapptests -notrait category=failing -notrait category=nonwindowstests xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Net.HttpListener.Tests Discovered: System.Net.HttpListener.Tests Starting: System.Net.HttpListener.Tests **System.Net.Tests.HttpRequestStreamTests.Read_LargeLengthAsynchronous_Success(transferEncodingChunked: True) [FAIL]** System.Net.HttpListenerException : An operation was attempted on a nonexistent network connection Stack Trace: F:\repos\corefx\src\System.Net.HttpListener\src\System\Net\Windows\HttpRequestStream.Windows.cs(318,0): at System.Net.HttpRequestStream.BeginRead(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state) at System.IO.Stream.<>c.b__43_0(Stream stream, ReadWriteParameters args, AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncTrim[TInstance,TArgs](TInstance thisRef, TArgs args, Func`5 beginMethod, Func`3 endMethod) at System.IO.Stream.BeginEndReadAsync(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at System.IO.Stream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count) F:\repos\corefx\src\System.Net.HttpListener\tests\HttpRequestStreamTests.cs(149,0): at System.Net.Tests.HttpRequestStreamTests.d__7.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) **System.Net.Tests.HttpRequestStreamTests.Read_LargeLengthAsynchronous_Success(transferEncodingChunked: False) [FAIL]** System.Net.HttpListenerException : An operation was attempted on a nonexistent network connection Stack Trace: F:\repos\corefx\src\System.Net.HttpListener\src\System\Net\Windows\HttpRequestStream.Windows.cs(318,0): at System.Net.HttpRequestStream.BeginRead(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state) at System.IO.Stream.<>c.b__43_0(Stream stream, ReadWriteParameters args, AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncTrim[TInstance,TArgs](TInstance thisRef, TArgs args, Func`5 beginMethod, Func`3 endMethod) at System.IO.Stream.BeginEndReadAsync(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at System.IO.Stream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count) F:\repos\corefx\src\System.Net.HttpListener\tests\HttpRequestStreamTests.cs(149,0): at System.Net.Tests.HttpRequestStreamTests.d__7.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) **System.Net.Tests.HttpRequestStreamTests.Read_LargeLengthSynchronous_Success(transferEncodingChunked: True) [FAIL]** System.Net.HttpListenerException : An operation was attempted on a nonexistent network connection Stack Trace: F:\repos\corefx\src\System.Net.HttpListener\src\System\Net\Windows\HttpRequestStream.Windows.cs(195,0): at System.Net.HttpRequestStream.Read(Byte[] buffer, Int32 offset, Int32 size) F:\repos\corefx\src\System.Net.HttpListener\tests\HttpRequestStreamTests.cs(193,0): at System.Net.Tests.HttpRequestStreamTests.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) **System.Net.Tests.HttpRequestStreamTests.Read_LargeLengthSynchronous_Success(transferEncodingChunked: False) [FAIL]** System.Net.HttpListenerException : An operation was attempted on a nonexistent network connection Stack Trace: F:\repos\corefx\src\System.Net.HttpListener\src\System\Net\Windows\HttpRequestStream.Windows.cs(195,0): at System.Net.HttpRequestStream.Read(Byte[] buffer, Int32 offset, Int32 size) F:\repos\corefx\src\System.Net.HttpListener\tests\HttpRequestStreamTests.cs(193,0): at System.Net.Tests.HttpRequestStreamTests.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) **System.Net.Tests.HttpRequestStreamTests.Read_FullLengthSynchronous_Success(transferEncodingChunked: True, text: \""\"") [FAIL]** System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() F:\repos\corefx\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(462,0): at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() F:\repos\corefx\src\System.Net.HttpListener\tests\HttpRequestStreamTests.cs(116,0): at System.Net.Tests.HttpRequestStreamTests.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() F:\repos\corefx\src\Common\src\System\Threading\Tasks\RendezvousAwaitable.cs(62,0): at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() F:\repos\corefx\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(863,0): at System.Net.Http.WinHttpHandler.d__105.MoveNext() Finished: System.Net.HttpListener.Tests === TEST EXECUTION SUMMARY === System.Net.HttpListener.Tests Total: 104, Errors: 0, Failed: 5, Skipped: 0, Time: 1055.777s Finished running tests. End time= 0:33:32.67, Exit code = 1" +18665 area-Serialization XmlTextAttribute test Hi @huanwu , @shmao , case in this PR is part of old portable library test project, it contains more tests than ported here but I found most of them already covered in the existing Core test project, if you feel this test is also covered already, ignore the merge. Thanks. +18666 area-System.Runtime Caching EqualityComparer.Default in ValueTuple brings significant performance increase I have added caching for EqualityComparer instances inside ValueTuple. E.g. internal static readonly EqualityComparer T1Comparer = EqualityComparer.Default; internal static readonly EqualityComparer T2Comparer = EqualityComparer.Default; internal static readonly EqualityComparer T3Comparer = EqualityComparer.Default; internal static readonly EqualityComparer T4Comparer = EqualityComparer.Default; public bool Equals(ValueTupleCached other) { return T1Comparer.Equals(Item1, other.Item1) && T2Comparer.Equals(Item2, other.Item2) && T3Comparer.Equals(Item3, other.Item3) && T4Comparer.Equals(Item4, other.Item4); } And it seems improving performance for both GetHashCode and Equals. I can create pull request if this change supposed to be approved. ``` ini BenchmarkDotNet=v0.10.3.0, OS=Microsoft Windows NT 6.2.9200.0 Processor=Intel(R) Core(TM) i7-4770 CPU 3.40GHz, ProcessorCount=8 Frequency=3318387 Hz, Resolution=301.3512 ns, Timer=TSC [Host] : Clr 4.0.30319.42000, 32bit LegacyJIT-v4.6.1637.0 LegacyJitX64 : Clr 4.0.30319.42000, 64bit LegacyJIT/clrjit-v4.6.1637.0;compatjit-v4.6.1637.0 LegacyJitX86 : Clr 4.0.30319.42000, 32bit LegacyJIT-v4.6.1637.0 RyuJitX64 : Clr 4.0.30319.42000, 64bit RyuJIT-v4.6.1637.0 Runtime=Clr ``` | Method | Job | Jit | Platform | Mean | StdErr | StdDev | |------------------ |------------- |---------- |--------- |----------- |---------- |---------- | | Equals | LegacyJitX64 | LegacyJit | X64 | 10.4266 ns | 0.0090 ns | 0.0338 ns | | GetHashCode | LegacyJitX64 | LegacyJit | X64 | 47.9099 ns | 0.0912 ns | 0.3533 ns | | EqualsCached | LegacyJitX64 | LegacyJit | X64 | 4.2168 ns | 0.0070 ns | 0.0260 ns | | GetHashCodeCached | LegacyJitX64 | LegacyJit | X64 | 25.2044 ns | 0.0407 ns | 0.1576 ns | | Equals | LegacyJitX86 | LegacyJit | X86 | 9.6312 ns | 0.0323 ns | 0.1252 ns | | GetHashCode | LegacyJitX86 | LegacyJit | X86 | 46.9868 ns | 0.4833 ns | 2.1065 ns | | EqualsCached | LegacyJitX86 | LegacyJit | X86 | 3.9719 ns | 0.0330 ns | 0.1279 ns | | GetHashCodeCached | LegacyJitX86 | LegacyJit | X86 | 20.4734 ns | 0.0514 ns | 0.1925 ns | | Equals | RyuJitX64 | RyuJit | X64 | 9.6321 ns | 0.0123 ns | 0.0476 ns | | GetHashCode | RyuJitX64 | RyuJit | X64 | 40.7101 ns | 0.0525 ns | 0.2035 ns | | EqualsCached | RyuJitX64 | RyuJit | X64 | 2.9862 ns | 0.0035 ns | 0.0130 ns | | GetHashCodeCached | RyuJitX64 | RyuJit | X64 | 14.9397 ns | 0.1623 ns | 0.7073 ns | You can check results in my test project https://github.com/azhmur/TupleBenchmark2/ PS Originally I thought JIT inlining effectively eliminates need of such optimization, but it seems it is not. +18668 area-System.Net HttpWebRequest.AllowReadStreamBuffering can't be set to true Found during UWP apps testing. In the version 4.0.10.0 the System.Net.Requests.dll did implement the HttpWebRequest.AllowReadStreamBuffering and allowed it to be set to true (and it actually did make a difference in behavior). In the latest code, the property always returns false, and can't be set to true. It throws InvalidOperationException if something tries to set it to true. This obviously breaks backward compatibility. +18669 area-System.Net Fix recently added KeepAlive test on desktop "The WinHTTP implementation sends Connection: ""keep-alive"", the desktop implementation does not. Just change the test to validate whether Connection: ""close"" is sent or not. Fixes https://github.com/dotnet/corefx/issues/18657" +18672 area-System.Net Fix/disable several System.Net.Security tests on desktop - SslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success was hanging / timing out on desktop because it relied on Read/WriteAsync not going through the base Stream's Read/WriteAsync, which serializes the delegated calls to Begin/EndRead/Write. Desktop's implementation calls directly to Begin/EndRead/Write whereas in core (by design) we call Read/WriteAsync (which will in turn use Begin/EndRead/Write if the Async method wasn't overridden), but the VirtualNetworkStream wasn't overriding Begin/EndReadWrite to avoid the serialization, and since the test requires non-serialization, it hung. - SslStream_StreamToStream_FlushAsync_Propagated and NegotiateStream_StreamToStream_FlushAsync_Propagated both rely on FlushAsync being overridden, which it's not in desktop. - NegotiateStream_StreamToStream_Authentication_EmptyCredentials_Fails fails due to a known behavioral difference from desktop for which there's already an open issue. Fixes https://github.com/dotnet/corefx/issues/18318 Fixes https://github.com/dotnet/corefx/issues/18659 cc: @davidsh, @cipop, @Priya91 +18673 area-System.Net Fix System.Net.NameResolution tests on desktop A bunch of the unit tests try to validate that sockets were correctly initialized. They do so with fakes that intercept the calls. But on desktop, the real methods were being used, bypassing that interception. I've fixed it by making the unit tests on desktop compile like core so as to use the fakes. Fixes https://github.com/dotnet/corefx/issues/18656 cc: @cipop, @davidsh, @Priya91 +18674 area-System.Net WebClient.UploadValuesAsync app-compat difference with Desktop "While investigating #17882, I root caused the failure of the WebClient.UploadValuesAsync test. On .NET Framework, WebClient uses an internal method, `UrlEncodeBytesToBytesInternal`, to ""UrlEncode"" the NameValueCollection. This is causing it to use lowercase hex digits. On .NET Core, WebClient uses the public WebUtility.UrlEncode method which always uses uppercase hex digits. The public WebUtility.UrlEncode is behaving the same (uppercase digits) on both .NET Framework and .NET Core. However, .NET Core WebClient is sending request body data using uppercase hex digits while on .NET Framework it is using lowercase hex digits while sending the request body data. For app-compat, we should change .NET Core WebClient's implementation to match .NET Framework. " +18676 area-Infrastructure dumpling error https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_fedora24_debug/25/consoleFull#-74100521779fe3b83-f408-404c-b9e7-9207d232e5fc ``` 00:28:37 ImportError: No module named requests 00:28:37 python: can't open file '/mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_debug/tempHome/.dumpling/dumpling.py': [Errno 2] No such file or directory ``` @mellinoe +18677 area-System.Security Update defaults of SignedXml to use SHA-256 SignedXml is currently using SHA-1 for both line and RSA signature digests. These need to be updated to SHA-256. +18678 area-Serialization Move XmlSerializer perf tests into own project with correct naming In order to use the PerfRunner tool, the name of the assembly containing the perf tests needs to end in .Performance.Tests.dll. This change moves the perf tests into their own assembly with this correct naming convention. +18679 area-System.Xml Disable Xml quirk test on NetFx Fixes https://github.com/dotnet/corefx/issues/18548. Disables the test with quirk behavior on Desktop runs as Xunit runner will always run against older TFM (4.5.2). As a result, netfx test runs always get the old behavior, which does not match what's expected. Issue tracking the problem: https://github.com/dotnet/corefx/issues/15136 cc: @safern +18680 area-System.Net Validation missing when adding certain headers to WebClient.Headers collection While investigating #17882, I discovered that adding certain request headers to `WebClient` are not error-checked the same between .NET Core and .NET Framework implementations. Adding 'Connection', or 'Expect' request headers throws WebException when sending the request using .NET Framework. But .NET Core does not throw exception. Adding 'Host' request header with an illegal DNS name throws WebException when sending the request using .NET Framework. But .NET Core does not throw exception. Added new tests to validate this and marked the tests as disabled for .NET Core. +18681 area-System.Net Root cause WebClient test failures on NETFX Finished investigation of failures on .NET Framework for WebClient. Added some new tests to clarify the open issues. Added new bugs #18674 and #18680. Fixes #17882. +18682 area-Serialization XmlDictionaryReader / Writer Canonicalization throws NotSupportedException Is there a plan to support Canonicalization in Core? +18683 area-Meta Delete *UnknownUnix.*cs We never set the property necessary to build them and they're only stubs. @stephentoub shall I just delete them? +18684 area-Serialization Fix Test Xml_HiddenDerivedFieldTest. Fixed a bug with reflection based serialization handling hidden derived fields. See the example below. DerivedClass.value was not serialized correctly. ```c# public class BaseClass { public string value { get; set; } public string Value; } public class DerivedClass : BaseClass { public new string value; public new string Value { get; set; } } ``` Fix #18076 +18687 area-Infrastructure Update performance-tests.md with benchmark-writing guidance Adds a short list of principles to follow when writing performance tests. @DrewScoggins @JosephTremoulet @billwert Thoughts on these guidelines? Some are roughly based on the discussions here: https://github.com/dotnet/corefx/issues/18416 +18689 area-System.Security Add back Cryptography.Cng package The cng package was removed so that the assembly could be included in the netstandard meta-package. However, Cng was later removed from netstandard, so the standalone package needs to be added back. resolves #17667 cc: @ericstj @bartonjs +18690 area-System.Security Port S.S.Cryptography changes to netfx * AsymmetricAlgorithm validates against the LegalKeySizesValue field instead of the LegalKeySizes property. https://github.com/dotnet/corefx/issues/18475 * KeyedHashAlgorithm.Key (set/get) do not handle null well. https://github.com/dotnet/corefx/issues/18477 * SymmetricAlgorithm.set_Key permits large keys by mistake https://github.com/dotnet/corefx/issues/18476 * SymmetricAlgorithm.LegalKeySizes are not isolated https://github.com/dotnet/corefx/issues/8601 * Remove caching for keyed hash algorithms https://github.com/dotnet/corefx/pull/17959 * SignedXml defaults to SHA256 https://github.com/dotnet/corefx/pull/18685 * SignedXml - KeyInfoX509Data.AddIssuerSerial - need to check what exactly - some changes pending * System.Security.Cryptography.RSA.FromXmlString(String xmlString) is not wrapping FormatException coming from System.Convert.FromBase64String - TODO: find out changes +18691 area-System.Security Identify suppressed-on-netfx tests with an issue Tag the SkipOnTargetFramework attributes from #18575 with a port-consider issue number (#18690) so there's a paper trail that will hopefully result in bugs getting fixed. FYI @karelz +18692 area-Infrastructure Clean binplace "Improves the behavior of clean for binplaced files/props. Also added *AllConfigurations targets for Rebuild and Clean, plus shorter versions of those that omit the ""Configurations"" portion of the name. " +18693 area-System.Security Update Crypto API's to support Span As they take byte[], offset, length in a number of places which are then checked and fixed then often passed to a native call, as well as pretty much all being Sync in nature (CPU or Memory bound) they seem like ideal candidates. This should increase safety/reduce checks (no need to check that length is past the array etc) and reduce the number of copies/interim arrays that are needed to be created. Will need an API review. I realize this is a future task, just making sure it's logged. +18694 area-Infrastructure Netfx net standard support package for net462/net47 This adds support for version-specific ref and implementation in our desktop support package. Right now we have 1 file that differs (ValueTuple on net47) but I suspect there are some facades that could be fixed in order to better fill in the existing netstandard API on net462 (Crypto). @weshaggard I'd like your help identifying those by getting API compat runs for net462 and net47 if possible. Please review commit-by-commit. More detail about each commit is in the description. Fixes #18567 +18696 area-System.IO Fix expected exception for PipeStream test Fixes https://github.com/dotnet/corefx/issues/18543 Behavior is the same among Desktop and Core. Core wraps (System.ApplicationException): The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG)) into a nicer-looking System.ArgumentException to handle the scenario, though. cc: @ianhays @danmosemsft @stephentoub +18697 area-Infrastructure BuildAllConfigurations and IsDesktopFacade don't play well together An example of this is System.Security.Principal.Windows. If you do: `build.cmd -framework=netfx` The correct facade ends up under `bin\ref\netfx` from the source build. The ref gets bin-placed by https://github.com/dotnet/corefx/blob/master/dir.targets#L55 if you do: `build.cmd -allconfigurations` The netstandard ref for this assembly ends up under `bin\ref\netfx` which is incorrect. The ref gets bin-placed by https://github.com/dotnet/corefx/blob/master/dir.targets#L109 We should consider doing away with IsDesktopFacade completely to help eliminate all this special casing. +18698 area-Serialization Support ExtensionDataObject in ReflectionOnly mode. Fix #13699 @shmao @mconnew @zhenlan +18699 area-System.Runtime Update StringBuilder.AppendJoin to approved API Closes #3419 Dependent on https://github.com/dotnet/coreclr/pull/11059 I aimed to cover every code path. +18701 area-System.Diagnostics Activity: put a limit on baggage key and value Baggage is a context (property bag) that propagates from one process to another through HTTP or other protocol. It is used for tracing purposes only: to augment and correlate or group telemetry. In case of HTTP, it is propagated in HTTP headers in practice have significant size restrictions. Also, baggage could be misused as a generic way to pass data between the services that we want to restrict. This changes adds limit on the baggage * key length - 32 bytes inclusively * value length - 42 bytes inclusively /cc @vancem +18702 area-System.IO Fix handling of unexpected cancellation in PipeStream. My previous fix was overly aggressive in changing from IOException to OperationCanceledException (I must have been running the tests incorrectly or something). Specifically, desktop handles unexpected cancellation for some operations differently than it does for others: for most operations it always uses an OperationCanceledException, but for WaitForConnectionAsync, it uses IOException. This PR fixes the core behavior to match and updates the tests accordingly. Fixes https://github.com/dotnet/corefx/issues/18544 cc: @sepidehMS, @ianhays +18704 area-System.Runtime System.CharEnumerator is not Serializable This type is serializable on Desktop and Mono. +18705 area-System.IO IsolatedStorage.MaximumSize throws when it doesn't on 4.6 The .NET Core implementation of IsolatedStorage does not initialize m_Quota as the desktop implementation does, resulting in code like this throwing instead of working: ```csharp var store = System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForAssembly(); ulong size = store.MaximumSize; ``` +18706 area-System.IO IsolatedStorageFile.GetStore overloads should not throw PlatformNotSupportedException This is a compat with desktop issue. Currently the only overload that is supported is GetStore(IsolatedStorageScope). We should consider the most sensible fallback possible for the other overloads. Code that happened to call ```IsolatedStorageFile.GetStore(System.IO.IsolatedStorage.IsolatedStorageScope.User | System.IO.IsolatedStorage.IsolatedStorageScope.Assembly,null,null)```, which is the same thing as calling ```GetUserStoreForAssembly()``` doesn't have to fail. +18707 area-System.Net "Test: System.Net.Tests.ServicePointManagerTest/FindServicePoint_Collectible failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.Tests.ServicePointManagerTest/FindServicePoint_Collectible` has failed. Assert.Equal() Failure\r Expected: True\r Actual: False Stack Trace: at System.Net.Tests.ServicePointManagerTest.FindServicePoint_Collectible() in E:\A\_work\81\s\corefx\src\System.Net.ServicePoint\tests\ServicePointManagerTest.cs:line 231 Build : Master - 20170420.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x64-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.02/workItem/System.Net.ServicePoint.Tests/analysis/xunit/System.Net.Tests.ServicePointManagerTest~2FFindServicePoint_Collectible +18708 area-System.Net "Test: System.Net.Tests.ServicePointManagerTest/InvalidArguments_Throw failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Net.Tests.ServicePointManagerTest/InvalidArguments_Throw` has failed. Assert.Throws() Failure\r Expected: typeof(System.NotSupportedException)\r Actual: (No exception was thrown) Stack Trace: at System.Net.Tests.ServicePointManagerTest.InvalidArguments_Throw() in E:\A\_work\81\s\corefx\src\System.Net.ServicePoint\tests\ServicePointManagerTest.cs:line 162 Build : Master - 20170420.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x64-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.02/workItem/System.Net.ServicePoint.Tests/analysis/xunit/System.Net.Tests.ServicePointManagerTest~2FInvalidArguments_Throw +18709 area-System.Numerics "Tests under: System.Numerics.Vectors.Tests.System.Numerics.Tests.Matrix4x4Tests failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Numerics.Tests.Matrix4x4Tests/PerspectiveFarPlaneAtInfinityTest` has failed. Assert.Equal() Failure\r Expected: -1\r Actual: NaN Stack Trace: at System.Numerics.Tests.Matrix4x4Tests.PerspectiveFarPlaneAtInfinityTest() in E:\A\_work\81\s\corefx\src\System.Numerics.Vectors\tests\Matrix4x4Tests.cs:line 2525 Build : Master - 20170420.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x64-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.02/workItem/System.Numerics.Vectors.Tests/analysis/xunit/System.Numerics.Tests.Matrix4x4Tests~2FPerspectiveFarPlaneAtInfinityTest +18710 area-System.Reflection "Test: System.Reflection.Tests.AssemblyNameTests/FullName failed with ""Xunit.Sdk.TrueException""" "Opened on behalf of @Jiayili1 The test `System.Reflection.Tests.AssemblyNameTests/FullName(name: \""NAME\"", expectedName: \""NAME\"")` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.Reflection.Tests.AssemblyNameTests.FullName(String name, String expectedName) in E:\A\_work\81\s\corefx\src\System.Reflection\tests\AssemblyNameTests.cs:line 188 Build : Master - 20170420.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.02/workItem/System.Reflection.Tests/analysis/xunit/System.Reflection.Tests.AssemblyNameTests~2FFullName(name:%20%5C%22NAME%5C%22,%20expectedName:%20%5C%22NAME%5C%22)" +18711 area-System.Reflection "Test: System.Reflection.Tests.AssemblyTests/GetEntryAssembly failed with ""Xunit.Sdk.NotNullException""" Opened on behalf of @Jiayili1 The test `System.Reflection.Tests.AssemblyTests/GetEntryAssembly` has failed. Assert.NotNull() Failure Stack Trace: at System.Reflection.Tests.AssemblyTests.GetEntryAssembly() in E:\A\_work\81\s\corefx\src\System.Reflection\tests\AssemblyTests.cs:line 123 Build : Master - 20170420.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x64-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.02/workItem/System.Reflection.Tests/analysis/xunit/System.Reflection.Tests.AssemblyTests~2FGetEntryAssembly +18712 area-System.IO "Test: System.Resources.ResourceWriterTests.ResourceWriterTests/ExceptionforResWriter03 failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Resources.ResourceWriterTests.ResourceWriterTests/ExceptionforResWriter03` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.ArgumentNullException)\r Actual: typeof(Xunit.Sdk.ThrowsException): Assert.Throws() Failure\r Expected: typeof(System.ArgumentOutOfRangeException)\r Actual: (No exception was thrown) Stack Trace: at System.Resources.ResourceWriterTests.ResourceWriterTests.<>c.b__4_0() in E:\A\_work\81\s\corefx\src\System.Resources.Writer\tests\ResourceWriterUnitTest.cs:line 63 ``` Build : Master - 20170420.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x64-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.02/workItem/System.Resources.Writer.Tests/analysis/xunit/System.Resources.ResourceWriterTests.ResourceWriterTests~2FExceptionforResWriter03 +18713 area-System.IO "Tests under: System.Runtime.Extensions.Tests.System.IO.Tests.PathTests failed with ""System.ArgumentException""" "Opened on behalf of @Jiayili1 The test `System.IO.Tests.PathTests/Combine(paths: [\""<\"", \""abc\"", \""def\"", \""ghi\"", \""jkl\""])` has failed. System.ArgumentException : Illegal characters in path. Stack Trace: at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional) at System.IO.Path.Combine(String path1, String path2) at System.IO.Tests.PathTests.Combine(String[] paths) in E:\A\_work\81\s\corefx\src\System.Runtime.Extensions\tests\System\IO\Path.Combine.cs:line 97 Build : Master - 20170420.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x64-Release - x86-Debug " +18715 area-System.IO "Test: System.IO.Tests.PathTests/GetFullPath_Windows_MaxPathNotTooLong failed with ""System.IO.PathTooLongException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.PathTests/GetFullPath_Windows_MaxPathNotTooLong` has failed. System.IO.PathTooLongException : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. Stack Trace: at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths) at System.IO.Path.GetFullPathInternal(String path) at System.IO.Path.GetFullPath(String path) at System.IO.Tests.PathTests.GetFullPath_Windows_MaxPathNotTooLong() in E:\A\_work\81\s\corefx\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 515 Build : Master - 20170420.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x64-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.02/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.IO.Tests.PathTests~2FGetFullPath_Windows_MaxPathNotTooLong +18716 area-System.IO "Test: System.IO.Tests.PathTests/GetFullPath_Windows_StrangeButLegalPaths failed with ""Xunit.Sdk.NotEqualException""" "Opened on behalf of @Jiayili1 The test `System.IO.Tests.PathTests/GetFullPath_Windows_StrangeButLegalPaths` has failed. ``` Assert.NotEqual() Failure\r Expected: Not \""C:\\\\dotnetbuild\\\\work\\\\7ed983c1-4274-40de-9871-ded\""...\r Actual: \""C:\\\\dotnetbuild\\\\work\\\\7ed983c1-4274-40de-9871-ded\""... Stack Trace: at System.IO.Tests.PathTests.GetFullPath_Windows_StrangeButLegalPaths() in E:\A\_work\81\s\corefx\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 546 ``` Build : Master - 20170420.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x64-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.02/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.IO.Tests.PathTests~2FGetFullPath_Windows_StrangeButLegalPaths" +18717 area-System.IO "Test: System.IO.Tests.PathTests/GetFullPath_Windows_UNC_Valid failed with ""Xunit.Sdk.EqualException""" "Opened on behalf of @Jiayili1 The test `System.IO.Tests.PathTests/GetFullPath_Windows_UNC_Valid(expected: \""\\\\\\\\.\\\\UNC\\\\LOCALHOST\\\\share\\\\\"", input: \""\\\\\\\\.\\\\UNC\\\\LOCALHOST\\\\share\\\\. \"")` has failed. ``` Assert.Equal() Failure\r ? (pos 23)\r Expected: ···\\UNC\\LOCALHOST\\share\\\r Actual: ···\\UNC\\LOCALHOST\\share\r ? (pos 23) Stack Trace: at System.IO.Tests.PathTests.GetFullPath_Windows_UNC_Valid(String expected, String input) in E:\A\_work\81\s\corefx\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 642 ``` Build : Master - 20170420.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x64-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.02/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.IO.Tests.PathTests~2FGetFullPath_Windows_UNC_Valid(expected:%20%5C%22%5C%5C%5C%5C%5C%5C%5C%5C.%5C%5C%5C%5CUNC%5C%5C%5C%5CLOCALHOST%5C%5C%5C%5Cshare%5C%5C%5C%5C%5C%22,%20input:%20%5C%22%5C%5C%5C%5C%5C%5C%5C%5C.%5C%5C%5C%5CUNC%5C%5C%5C%5CLOCALHOST%5C%5C%5C%5Cshare%5C%5C%5C%5C.%20%5C%22)" +18718 area-System.Runtime "Tests under: System.Runtime.Extensions.Tests.System.Tests.AppDomainTests failed with ""System.UnauthorizedAccessException""" Opened on behalf of @Jiayili1 The test `System.Tests.AppDomainTests/AppendPrivatePath` has failed. System.UnauthorizedAccessException : Access to the path 'C:\\dotnetbuild\\work\\7ed983c1-4274-40de-9871-dedf09c523de\\Work\\e8d39aba-863d-43c0-9b98-6396742c36f1\\Unzip\\AssemblyResolveTests.dll' is denied. Stack Trace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.File.InternalDelete(String path, Boolean checkHost) at System.Tests.AppDomainTests..ctor() in E:\A\_work\81\s\corefx\src\System.Runtime.Extensions\tests\System\AppDomainTests.cs:line 26 Build : Master - 20170420.02 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x64-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170420.02/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.AppDomainTests~2FAppendPrivatePath +18719 area-System.Security "Desktop: System.Security.Cryptography.Cng.Tests.ECDsaCngTests.TestVerify521_EcdhKey failed with ""System.ArgumentException""" Failed test: System.Security.Cryptography.Cng.Tests.ECDsaCngTests.TestVerify521_EcdhKey Configration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/26/testReport/System.Security.Cryptography.Cng.Tests/ECDsaCngTests/TestVerify521_EcdhKey/ MESSAGE: ~~~ System.ArgumentException : Keys used with the ECDsaCng algorithm must have an algorithm group of ECDsa. Parameter name: key ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.ECDsaCng..ctor(CngKey key) at System.Security.Cryptography.Cng.Tests.ECDsaCngTests.TestVerify521_EcdhKey() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Cng\tests\ECDsaCngTests.cs:line 93 ~~~ +18720 area-System.Security Desktop: System.TypeLoadException : Could not load type 'System.Security.Cryptography.AesCng' from assembly 'System.Security.Cryptography.Cng' "Failed test: System.Security.Cryptography.Encryption.Aes.Tests.AesModeTests.SupportsECB Track issues under System.Sercurity.Cryptography failed with ""System.TypeLoadException"" Detail: System.Security.Cryptography.Encryption.Aes.Tests.AesModeTests.SupportsECB MESSAGE: ~~~ System.TypeLoadException : Could not load type 'System.Security.Cryptography.AesCng' from assembly 'System.Security.Cryptography.Cng, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.Encryption.Aes.Tests.AesProvider.Create() at System.Security.Cryptography.Encryption.Aes.Tests.AesFactory.Create() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesFactory.cs:line 18 at System.Security.Cryptography.Encryption.Aes.Tests.AesModeTests.SupportsMode(CipherMode mode) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesModeTests.cs:line 33 at System.Security.Cryptography.Encryption.Aes.Tests.AesModeTests.SupportsECB() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesModeTests.cs:line 22" +18721 area-System.Security "Desktop: System.Security.Cryptography.Hashing.Algorithms.Tests.Sha512Tests.Sha512_Fips180_MultiBlock failed with ""Xunit.Sdk.EqualException""" Failed test: System.Security.Cryptography.Hashing.Algorithms.Tests.Sha512Tests.Sha512_Fips180_MultiBlock Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/26/testReport/System.Security.Cryptography.Hashing.Algorithms.Tests/Sha512Tests/Sha512_Fips180_MultiBlock/ MESSAGE: ~~~ Assert.Equal() Failure Expected: Byte[] [12, 59, 72, 9, 109, ...] Actual: Byte[] [207, 131, 225, 53, 126, ...] ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.Hashing.Algorithms.Tests.HashAlgorithmTest.VerifyTransformBlockHash(Byte[] block1, Byte[] block2, Byte[] expected, Byte[] expectedEmpty) in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Algorithms\tests\HashAlgorithmTest.cs:line 91 at System.Security.Cryptography.Hashing.Algorithms.Tests.HashAlgorithmTest.VerifyMultiBlock(String block1, String block2, String expectedHash, String emptyHash) in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Algorithms\tests\HashAlgorithmTest.cs:line 64 at System.Security.Cryptography.Hashing.Algorithms.Tests.Sha512Tests.Sha512_Fips180_MultiBlock() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Algorithms\tests\Sha512Tests.cs:line 36 ~~~ +18723 area-Serialization "Desktop: Tests under ""DataContractJsonSerializerTests"" failed with ""strings differ at index 2""" "Failed tests: DataContractJsonSerializerTests.DCJS_StringAsRoot DataContractJsonSerializerTests.DCJS_ReadOnlyDictionary DataContractJsonSerializerTests.DCJS_StringAsRoot DataContractJsonSerializerTests.DCJS_ReadOnlyDictionary Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/26/consoleText ~~~ DataContractJsonSerializerTests.DCJS_StringAsRoot [FAIL] strings differ at index 2  [expected]:""\b"" [actual ]:""\u0  [Expected (with length=4)]: ""\b"" [Actual (with length=8)]: ""\u0008"" Test failed for input:  Expected: ""\b"" Actual: ""\u0008"" Expected: True Actual: False Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs(2861,0): at DataContractJsonSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractJsonSerializerSettings settings, Func`1 serializerFactory, Boolean skipStringCompare) D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs(248,0): at DataContractJsonSerializerTests.DCJS_StringAsRoot() DataContractJsonSerializerTests.DCJS_ReadOnlyDictionary [FAIL] strings differ at index 2  [expected]:{""_dictionary"":[{""Key"" [actual ]:{""m_dictionary"":[{""Key  [Expected (with length=65)]: {""_dictionary"":[{""Key"":""Foo"",""Value"":1},{""Key"":""Bar"",""Value"":2}]} [Actual (with length=66)]: {""m_dictionary"":[{""Key"":""Foo"",""Value"":1},{""Key"":""Bar"",""Value"":2}]} Test failed for input: System.Collections.ObjectModel.ReadOnlyDictionary`2[System.String,System.Int32] Expected: {""_dictionary"":[{""Key"":""Foo"",""Value"":1},{""Key"":""Bar"",""Value"":2}]} Actual: {""m_dictionary"":[{""Key"":""Foo"",""Value"":1},{""Key"":""Bar"",""Value"":2}]} Expected: True Actual: False Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs(2861,0): at DataContractJsonSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractJsonSerializerSettings settings, Func`1 serializerFactory, Boolean skipStringCompare) D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs(1700,0): at DataContractJsonSerializerTests.DCJS_ReadOnlyDictionary() ~~~" +18724 area-System.Security EnvelopedCms.Encrypt on Desktop rejects zero length content (unlike Core) Failed test: System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.ZeroLengthContent_RoundTrip Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/26/testReport/System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests/EdgeCasesTests/ZeroLengthContent_RoundTrip/ MESSAGE: ~~~ System.InvalidOperationException : The CMS message is not encrypted. ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.Pkcs.EnvelopedCms.Encode() at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.ZeroLengthContent_RoundTrip() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Pkcs\tests\EnvelopedCms\EdgeCasesTests.cs:line 110 ~~~ +18726 area-System.Console ConsoleEncoding.InputEncoding_SetWithInInitialized_ResetsIn [FAIL] test case failed on Ubuntu 16.04 when COMPlus_GCStress=2: Exception from RemoteExecutorConsoleApp(System.Console.Tests, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb, ConsoleEncoding+<>c, b__3_0): Assembly: System.Console.Tests, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb Type: ConsoleEncoding+<>c Method: Int32 b__3_0() Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Xunit.Sdk.NotSameException: Assert.NotSame() Failure at Xunit.Assert.NotSame(Object expected, Object actual) at ConsoleEncoding.<>c.b__3_0() --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at RemoteExecutorConsoleApp.Program.Main(String[] args) Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Xunit.Sdk.NotSameException: Assert.NotSame() Failure at Xunit.Assert.NotSame(Object expected, Object actual) at ConsoleEncoding.<>c.b__3_0() --- End of inner exception stack trace --- at RemoteExecutorConsoleApp.Program.Main(String[] args) ConsoleEncoding.InputEncoding_SetWithInInitialized_ResetsIn [FAIL] Assert.Equal() Failure Expected: 42 Actual: 134 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at ConsoleEncoding.InputEncoding_SetWithInInitialized_ResetsIn() +18730 area-System.Memory Fix overlap detection in SpanHelpers.CopyTo Fixes https://github.com/dotnet/corefx/issues/18608. +18731 area-System.Memory [PENDING API review] Add Overlaps extension method to SpanExtensions Fixes https://github.com/dotnet/corefx/issues/17793 if the API proposal is approved. +18732 area-System.Net Fix ServicePoint tests for desktop Closes https://github.com/dotnet/corefx/issues/18708 Closes https://github.com/dotnet/corefx/issues/18707 cc: @davidsh, @cipop, @Priya91 +18733 area-System.Security why CngKey.Import is not supported on ubuntu? "Is there any workaround to make this code working? ``` var keyContent = System.IO.File.ReadAllText(""key.p8"").Split('\n')[1]; var secretKeyBlob = Convert.FromBase64String(keyContent); var key = CngKey.Import(secretKeyBlob, CngKeyBlobFormat.Pkcs8PrivateBlob); ```" +18734 area-System.Linq Disable on desktop LINQ tests that stack overflow LINQ's Concat implementation in core is optimized to better support chains of Concats, and there are several tests that stress this. These pass on core and stack overflow on desktop. Disabling on desktop. +18735 area-System.Security CreateChain_Hybrid test failed in CI on Unix https://ci.dot.net/job/dotnet_corefx/job/master/job/portablelinux_release_prtest/3919/consoleText ``` System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CertificateRequestChainTests.CreateChain_Hybrid [FAIL] System.ArgumentException : The provided key does not match the public key for this certificate. Parameter name: privateKey Stack Trace: at System.Security.Cryptography.X509Certificates.RSACertificateExtensions.CopyWithPrivateKey(X509Certificate2 certificate, RSA privateKey) at System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CertificateRequestChainTests.CreateAndTestChain(AsymmetricAlgorithm rootPrivKey, AsymmetricAlgorithm intermed1PrivKey, AsymmetricAlgorithm intermed2PrivKey, AsymmetricAlgorithm leafPubKey) at System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CertificateRequestChainTests.CreateChain_Hybrid() ``` +18736 area-Infrastructure Config system should model versionless targetgroups as aliases Today these are distinct nodes in the compatibility graph. As a result `netstandard` isn't considered to be compatible with `netstandard2.0`, nor is `net461` nor `net462`. This creates a maintainence problem. We have to *remember* to keep the graph mappings correct. This means that remapping the versionless targetgroups is not a simple task. I'd like to fix this by treating the versionless identifiers as an alias. This was my original intent with these, but we didn't do it because it required a code change rather than just props. +18738 area-System.Runtime Simple disambiguation of path test inputs XUnit logging seems to throw in extra slashes and these inputs vary with slashes. Trivial change to make it easier to decipher results like https://github.com/dotnet/corefx/issues/18717 +18740 area-System.Net Allow HttpWebRequest.AllowReadStreamBuffering to be set to true While fixing various .NET Framework app-compat differences, PR #18163 changed the AllowReadStreamBuffering property to match .NET Framework. This resulted in having the property throw an exception when set to true. That behavior is what .NET Framework currently does. Historically, this property did not always exist in .NET Framework at all. Other portable versions of .NET (Windows Phone, Silverlight) for the HTTP stack were implemented differently and had this property which worked. When .NET Framework APIs were reconciled in 2015, this virtual property was added to .NET Framework but the functionality on Desktop was limited. This PR will put back this property's functionality for .NET Core which is also used for UWP apps. Fixes #18668. +18743 area-Serialization Disable soap encoded XmlSerialization tests on desktop System.Runtime.Serialization.Xml src and ref contracts are built against netfx not netstandard so the test need to be built against netfx as well to find its correct dependencies in runtime. Now since we are building them against netstandard and run them on netfx it will not find System dependencies as it doesn't have a reference to netstandard. So we should build them against netfx so that it loads it dependencies from mscorlib as it is the ones included from src and ref. Fixes: https://github.com/dotnet/corefx/issues/18660 Tracking issue: #18964 cc: @weshaggard @danmosemsft +18746 area-System.Security Fix multiple intermittent failures in System.Security - Added more diagnostics to be able to easier identify what has happened in the future if similar issue has happened - Updated https://github.com/dotnet/corefx/issues/18690 to mention issue #8601 Issue is caused by not handling LegalKeySizes correctly in multithreaded scenarios. This was fixed by @bartonjs as part of this https://github.com/dotnet/corefx/issues/8601 Fixes: - https://github.com/dotnet/corefx/issues/18270 - https://github.com/dotnet/corefx/issues/18271 - https://github.com/dotnet/corefx/issues/18197 possibly more I've seen around 40 failures less on my local machines. We are down to 18 failures for System.Security.Cryptography.Algorithms on netfx (on my box on Windows at least) +18747 area-System.Memory Hide or move away from Span the dangerous APIs "Every time I look through the Span API, the following leaves some bad taste: ```C# public static Span DangerousCreate(object obj, ref T objectData, int length) ``` The method is very unsafe, but the only protection is a scary name. Is it possible to make `length` a `void*` to force that caller uses ""unsafe"" context to call this method? The method is here for reference: https://github.com/dotnet/corefx/blob/master/src/System.Memory/src/System/Span.cs#L136 Another option is to move this and other dangerous methods to a separate location such as `System.Runtime.CompilerServices.Unsafe`. " +18748 area-System.Net Improve CI: disable randomly failing socket test on unix Disable socket test on unix that randomly fails due to port collisions with other tests running concurrently. It has failed twice in the last 7 weeks. Fixes https://github.com/dotnet/corefx/issues/12048 See issue #18568 to re-enable this test and related tests in the future. +18749 area-System.IO Add Directory.CreateDirectory(string, out bool) "When you want to make sure that a directory exists on a certain path you call `Directory.CreateDirectory(string)` which is great because it also handles creation if it's non-existent. That member call returns a `DirectoryInfo` object but doesn't tell you, whether it already existed or was just created. In scenarios where you want to execute code only if the directory was just created, you have to add extra code. ### Proposal ```C# namespace System.IO { public static partial class Directory { // Existing API: // public DirectoryInfo CreateDirectory(string path); public DirectoryInfo CreateDirectory(string path, out bool created); } } ``` ### Usage ```C# System.IO.Directory.CreateDirectory("""", out bool created); if (created) { // Some code which should only be executed if the directory was created } ``` I came up with this proposal while working in System.IO.IsolatedStorage for https://github.com/dotnet/corefx/pull/18647#discussion_r112710798 ### Alternatives Calling `Directory.Exists(string)` first: ``` c# bool alreadyExisted = Directory.Exists(path); DirectoryInfo info = Directory.CreateDirectory(path); if (!alreadyExisted) { // Some code which should only be executed if the directory was created } ``` This is problematic as between `Directory.Exists(string)` and `Directory.CreateDirectory(string)` a race condition could happen like the state of the directory has changed (e.g. deleted). /cc @terrajobst @JeremyKuhne " +18750 area-System.Memory API Proposal: Span - find if one span contains another; perhaps IsSliceOf "From https://github.com/dotnet/corefxlab/issues/827 by @mgravell A scenario I find myself needing is to see whether one span is a sub-span of another. This test is semantically valid for both array and pointer spans, and is a related operation to `Slice` Suggested API: ``` Span bool IsSliceOf(Span span); bool IsSliceOf(Span span, out int offset); ``` where it is: - `true` if both spans are array-based, for the exact same array, where the inner offet >= outer offset, and inner offset+count <= outer offset+count - `true` if both spans are pointer-based, and inner ptr >= outer ptr and inner ptr+count <= outer ptr+count - `false` otherwise or could be unified to: ``` int GetSliceIndex(Span span) ``` (returns -1 if not a slice; kinda ugly) Would be happy to contribute towards the code, but wanted to discuss API first. https://github.com/dotnet/corefxlab/issues/827#issuecomment-296100325: > The specific example was trying to find the parent block that owns a range (one of several known blocks) so we can do a slice and dice - however, it occurs that the moment I say ""one of several"" it is clear that we aren't talking just about stack-based spans, so all of this could work just as well against Buffer-T if that would be preferable. The exact scenario was: https://github.com/davidfowl/Channels/pull/86/files#diff-2265f88526c85122b370d0d37969d072R620 (search IsSliceOf). Related to: https://github.com/dotnet/corefx/issues/17793 Previous PR: https://github.com/dotnet/corefxlab/pull/830" +18752 area-System.Drawing Consider bringing back System.Drawing API working cross-plattform Consider bringing back System.Drawing API from netfx as identical as possible, working cross-plattform with whatever implementation. Relates to: https://github.com/dotnet/corefx/issues/18649 https://github.com/dotnet/corefx/issues/3634 https://github.com/dotnet/corefx/issues/2020 https://github.com/dotnet/corefx/issues/3778 cc: @danmosemsft @akoeplinger @terrajobst +18753 area-System.Runtime System.Runtime Performance Tests "This is a tracking issue describing the current performance tests we have in the System.Runtime area, and what coverage is missing. The work items below can be completed independently, and they are all of different priority. When adding performance tests, please adhere to [the guidelines listed here](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/performance-tests.md#adding-new-performance-tests). NOTE: System.Runtime is a broad area. I have split out types that ""obviously"" belong to other areas, like Reflection and Globalization, into other issues where they can be tracked alongside the rest of the area. ## Existing Coverage We have some basic coverage for common types, but the test cases need to be audited for conformance with the guidelines: * Most tests are far too short: they should be 100 - 1000 ms long. * Some test cases are being optimized out completely, leading to bogus data. See https://github.com/dotnet/corefx/issues/18416. * Some tests seem redundant and should be trimmed. * System.String has a very large number of tests -- necessary or excessive? ## Missing Coverage * Primitive numeric types have no coverage for operators * Missing coverage for (S)Byte (U)Int16, (U)Int64, Single entirely * Char -- We have minimal tests here. Many un-tested methods are not critical, but some coverage should be added here. * Activator * AppContext * Array * ArraySegment * Buffer * DateTime -- some coverage, but there are a ton of additional operations that may be interesting. * Decimal * Delegate * Enum -- some coverage already. GetNames(), GetValues(), IsDefined() are also important. * FormattableString * Nullable * TimeSpan -- Needs extra coverage * Uri * ValueTuple * WeakReference, WeakReference * ConditionalWeakTable * RuntimeHelpers" +18754 area-System.Reflection System.Reflection Performance Tests "This is a tracking issue describing the current performance tests we have in the System.Reflection area, and what coverage is missing. The work items below can be completed independently, and they are all of different priority. When adding performance tests, please adhere to [the guidelines listed here](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/performance-tests.md#adding-new-performance-tests). NOTE: System.Reflection is split across several ""contracts"", but the majority is actually located and implemented in System.Private.CoreLib / System.Runtime. ## Existing Coverage: **None** ## Missing Coverage: Core Types (System.Runtime), listed in a general order of importance (but not set in stone). * Type * TypeInfo * Assembly * MemberInfo (and subtypes) * RuntimeReflectionExtensions * TypedReference * CustomAttributeExtensions System.Reflection.TypeExtensions (less important than above) * TypeExtensions * *_InfoExtensions * AssemblyExtensions" +18755 area-System.Threading Attempt to improve no unobserved task exception being raised when trying to await null task "My application stopped working after targetting `netcoreapp2.0` while working perfectly fine in `netcoreapp1.1`. While the root cause for that is for another issue, it generated quite interesting scenario that I decided to extract. Consider following reproducable case: ```c# using System; using System.Diagnostics.CodeAnalysis; using System.Threading; using System.Threading.Tasks; namespace test { internal static class Program { private static readonly ManualResetEventSlim ShutdownEvent = new ManualResetEventSlim(false); private static void Main() { AppDomain.CurrentDomain.UnhandledException += OnUnhandledException; TaskScheduler.UnobservedTaskException += OnUnobservedTaskException; Console.WriteLine(""Start""); Reproduce().Forget(); Console.WriteLine(""Forget""); ShutdownEvent.Wait(); Console.WriteLine(""End""); } private static async Task Reproduce() { Console.WriteLine(""Start inner""); await GetNullTask().ConfigureAwait(false); Console.WriteLine(""Set event""); ShutdownEvent.Set(); Console.WriteLine(""End inner""); } private static Task GetNullTask() { return null; } private static void Forget(this object obj) { } private static void OnUnhandledException(object sender, UnhandledExceptionEventArgs e) { Console.WriteLine(""OnUnhandledException!""); } private static void OnUnobservedTaskException(object sender, UnobservedTaskExceptionEventArgs e) { Console.WriteLine(""OnUnobservedTaskException!""); } } } ``` As you can see, `await GetNullTask().ConfigureAwait(false);` is trying to await a `Task` that is null. Thing is, nothing is happening, the function is entirely frozen - no unhandled exception being raised, no unobserved task exception being raised (which should happen), and no function returning - limbo. ``` root@debian:~/test/test# dotnet exec bin/test.dll Start Start inner Forget ``` I'm pretty sure this is **really** unwanted - I didn't test if the same behaviour exists in .NET core 1.1, but regardless if it does, I think this should be corrected with proper (unobserved task) exception being raised. Otherwise there is no way to even guess that some problem occured, and unobserved task exception event is the function that should catch situation like that. Of course there is no issue if we replace `Reproduce().Forget()` with `Reproduce.Wait()`: ``` Unhandled Exception: System.AggregateException: One or more errors occurred. (Object reference not set to an instance of an object.) ---> System.NullReferenceException: Object reference not set to an instance of an object. at test.Program.d__2.MoveNext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait() at test.Program.Main() ``` But in `Forget()` case, there should still be `TaskScheduler.UnobservedTaskException` being raised. ``` .NET Command Line Tools (2.0.0-preview1-005825) Product Information: Version: 2.0.0-preview1-005825 Commit SHA-1 hash: b4a821109d Runtime Environment: OS Name: debian OS Version: 9 OS Platform: Linux RID: ubuntu.16.10-x64 Base Path: /opt/dotnet/sdk/2.0.0-preview1-005825/ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview1-002028-00 Build : 6d0caecf154d3398b9bc0e637089b6af9e250479 ```" +18756 area-System.Diagnostics Expose ulong value for ProcessThread.Id With .NET Core being cross-plat supporting OSX, Linux and Windows, we have to provide accurate APIs that reflect the behavior of underlying OS design. On OSX, the Id of threads is 64 bit unsigned value, whereas in .NET core, the exposed ProcessThread.Id returns int, hence we truncate the ulong to int by casting, resulting in data loss and incorrect values on OSX. ```c# namespace System.Diagnostics { public partial class ProcessThread : System.ComponentModel.Component { public ulong RawId { get { throw null; } } } } ``` +18758 area-System.Diagnostics Handle thread ids overflow on OSX. cc @danmosemsft @karelz fixes #17187 filed #18756 to track addressing the use of large ulong values for thread id being hit frequently in osx 10.12 update. +18759 area-System.IO Add SafeFileHandle access for IStorageFolder and IStorageFile With the Windows 10 Anniversary Update interfaces were added to `IStorageFolder` and `IStorageFile` to create a standard Win32 file handle. ([`IStorageFolderHandleAccess`](https://msdn.microsoft.com/en-us/library/mt765061(v=vs.85).aspx) and [`IStorageItemHandleAccess`](https://msdn.microsoft.com/en-us/library/mt765064(v=vs.85).aspx)) We should expose wrappers for the `Create` methods on these interfaces. (Note that you explicitly have to request these through `IUnknown`) ## Rationale and Usage Getting the Win32 handle allows richer interop with both .NET and other existing libraries. You can, for example, go straight to a .NET `FileStream` without complicated and potentially performance-sapping wrappers. Exposing these methods is also a direct request from the Windows team. Usage example: ``` C# public void Foo(IStorageFile storageFile) { SafeFileHandle handle = storageFile.CreateSafeFileHandle(FileAccess.Read); using (FileStream stream = new FileStream(handle, FileAccess.Read)) { ... } } ``` ## Proposed API We already have IO extension methods in [`System.IO.WindowsRuntimeStorageExtensions`](https://msdn.microsoft.com/en-us/library/system.io.windowsruntimestorageextensions(v=vs.110).aspx) (in `System.Runtime.WindowsRuntime.dll`). These would be added there. ``` C# public static class WindowsRuntimeStorageExtensions { public static SafeFileHandle CreateSafeFileHandle( this IStorageFile windowsRuntimeFile, FileAccess access = FileAccess.ReadWrite, FileShare share = FileShare.Read, FileOptions options = FileOptions.None) { ... } public static SafeFileHandle CreateSafeFileHandle( this IStorageFolder rootDirectory, string relativePath, FileMode mode) { return rootDirectory.CreateSafeFileHandle(relativePath, mode, (mode == FileMode.Append ? FileAccess.Write : FileAccess.ReadWrite)); } public static SafeFileHandle CreateSafeFileHandle( this IStorageFolder rootDirectory, string relativePath, FileMode mode, FileAccess access, FileShare share = FileShare.Read, FileOptions options = FileOptions.None) { ... } } ``` ## Parameter Naming and Defaults Parameters follow naming used in existing methods in `WindowsRuntimeStorageExtensions` and `FileStream`. `FileStream` defaults for constructors are the defaults here as well. ## Parameter Validation | Exception | Case | |---|---| | ArgumentNullException | Thrown if `relativePath` is null | | NotSupportedException | Thrown for `FileShare.Inheritable` and `FileOptions.Encrypted` | | ArgumentOutOfRangeException | Thrown for any other undefined enum values | Note that we explicitly allow `(FileOptions)0x20000000` (which is `NoBuffering`) as FileStream does. We will not do other validation of incompatible combinations of enum values- we'll allow Windows to do this and surface whatever errors it returns. ## Error Handling If the cast to `IStorageFolderHandleAccess` or `IStorageItemHandleAccess` fails for any reason we'll return null. Failed HRESULTs returned from the methods will be converted into normal System.IO exceptions. (As [GetExceptionForWin32Error](http://source.dot.net/#System.Private.CoreLib/shared/System/IO/Win32Marshal.cs,8cf456a56c1e487e,references) would.) ## Other Notes We will not support oplocks or `IOplockBreakingHandler`. We don't support oplocks elsewhere- any such support here should come in with general oplock support. ## Future Considerations We should investigate converting the various `WindowsRuntimeStorageExtensions.OpenStreamFor*Async` extension methods to directly creating a FileStream via these new interfaces if possible. Adding additional non `Async` wraps should be considered as well. +18760 area-Infrastructure UWP ILC runs should run in appcontainer We get some coverage from UWP CoreCLR runs but some cases have emerged where API in the ILC context needs an app identity. (Plus, it's more realistic anyway) @AlexGhiondea can you remind me what is required to do this? You mentioned it wasn't too bad. @DnlHarvey +18761 area-Serialization Support default value for time span Support the default value in timespan. Use the duration as TimeSpan's qualified name. Both are consistent with the recent change in desktop. Fix #13606 @shmao @mconnew @zhenlan +18762 area-System.Diagnostics HttpClient Diagnostics: deprecated events issue In PR #16393 we have changed logging (DiagnosticSource) in HttoClient and introduced a new events: * System.Net.Http.HttpRequestOut.Start * System.Net.Http.HttpRequestOut.Stop * System.Net.Http.Exception We kept events that have been previously fired, but deprecated them: * System.Net.Http.Request * System.Net.Http.Response We also made new and old events **mutually exclusive**. However there is a valid production scenario when there are two listeners in the application that want different set of events: e.g. ApplicationInsights for the 'new' events and Glimpse for the 'old' events. With mutual exclusiveness, only 'new' listener will receive any events. Besides Glimpse, VisualStudio consumes 'old' events, however I do not know whether it is internal logging or listener is somehow injected into the application where other listeners may exist; may be @nbilling can provide more details on it. Potentially there are other consumers affected by this change. Simple solution would be to check for deprecated event listener with IsEnabled method even if there was a listener to new event, however the assumption is that frequently there will be just one listener. IsEnabled for deprecated events may be cached under the assumption that there are no consumers that dynamically subscribe and unsubscribe. /cc @vancem @avanderhoorn @nbilling @cwe1ss +18763 area-System.Globalization System.Globalization Area Performance Tests "This is a tracking issue describing the current performance tests we have in the System.Globalization area, and what coverage is missing. The work items below can be completed independently, and they are all of different priority. When adding performance tests, please adhere to [the guidelines listed here](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/performance-tests.md#adding-new-performance-tests). NOTE: System.Globalization is spread out over a few of our low-level contracts. I suspect the below list is not exhaustive. If there are additional types that are important to cover, please add them to the list. ## Existing Coverage: * Some coverage on types implemented in System.Runtime -- should be audited for conformance to guidelines and usefulness * DateTime, TimeSpan * Char -- Only ""ToLower"" is tested. * String -- part of System.Runtime but overlaps with Globalization on some operations. ## Missing Coverage: * Encoding (in System.Runtime) * Encoder, Decoder (in System.Runtime) * StringComparer (in System.Runtime.Extensions) * CharUnicodeInfo (in System.Runtime) * Calendar (in System.Runtime) " +18764 area-System.Linq Fix the System.Linq tests that want metadata. (the remaining failures are DebuggerAttribute-checking stuff which is a whole another subject that affects Collections too.) +18765 area-System.Runtime System.Runtime.Extensions Area Performance Tests This is a tracking issue describing the current performance tests we have in the System.Runtime.Extensions area, and what coverage is missing. The work items below can be completed independently, and they are all of different priority. When adding performance tests, please adhere to [the guidelines listed here](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/performance-tests.md#adding-new-performance-tests): ## Existing Coverage: There is some existing coverage, but it needs to be audited for conformance with our performance test guidelines. - [X] Path https://github.com/dotnet/corefx/issues/19367 - [x] Random https://github.com/dotnet/corefx/issues/19561 - [x] Environment -- https://github.com/dotnet/corefx/issues/19623) ## Missing Coverage: - [ ] Math, MathF - [ ] MemoryStream - [ ] StreamReader / StreamWriter - [ ] BinaryReader / BinaryWriter - [ ] ArrayList - [ ] StringReader / StringWriter - [ ] TextReader / TextWriter - [ ] BitConverter - [ ] Convert +18766 area-Infrastructure Remove IsDesktopFacade Fixes #18697 /cc @weshaggard This removes use of IsDesktopFacade and replaces it with autogenerated reference facades. I'm running some validation and will update baseline files as necessary in follow up commits. Please review. +18767 area-System.Security Remove assert that trips on Windows 7 Win7 is getting different failure codes from the CAPI-via-CNG tests with DSA, and removing the assert makes the tests pass. So replacing the assert with a comment. Since this is opportunistic recovery from an exception, it seems reasonable to try no matter what the exception is. +18768 area-Serialization Fix PNSE in serialization. Fixed a few PNSE thrown in serialization. Ref https://github.com/dotnet/corefx/issues/18682. +18770 area-System.Data Make CopyAllFromReaderConnectionCloseOnEventAsyncTest debug only, since it uses AsyncDebugScope +18772 area-System.Security Validate that issuerCertificate is a sensible CA certificate "When a certificate is given as a CA cert it needs to * Not have a KeyUsage extension, or assert KeyCertSign. * Have BasicConstraints.CA set or be self-signed and not have BasicConstraints. These two rules are a discovered state of Windows chain validation after cross-reading RFC 3280, RFC 5280 and ITU-T X.509 2012/10. The ""self-signed"" portion turns out to be difficult, since both Windows and OpenSSL take the AuthorityKeyIdentifier extension into account. It's even more difficult in that they don't seem to take them into account in the same way. So the existing two IsSelfSigned methods are deleted, and replaced with a new one that takes the KeyId form of AKID into account, because they treat that form the same. We can be confused by the signature not working out, but that just means we accept certs for signing that the chain builders reject. We will also believe a certificate which uses the Name+Serial form of AuthorityKeyIdentifier is not self-signed, so we will force it to have a Basic Constraints extension. In addition to the CA cert sanity checks, enforce that the notBefore and notAfter values supplied are aligned with the issuerCertificate's NotBefore and NotAfter values." +18774 area-System.Net Updates HTTP Diagnostics guide Event names and payloads were changed in #17296 and #17009, but guide was not updated. +18775 area-System.Diagnostics Activity: StopActivity does not yet use the new more precise timestamp on the full framework #18651 introduced more precise timestamps for the full .net framework in the new Activity API. However, I think that there's one place missing in [StopActivity](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/DiagnosticSourceActivity.cs#L44) ```csharp if (activity.Duration == TimeSpan.Zero) activity.SetEndTime(DateTime.UtcNow); ``` @lmolkova @vancem +18776 area-System.Runtime Enable tests for Environment.ExitCode Based on this comment(https://github.com/dotnet/coreclr/issues/6206#event-1048947484), [the tests of Environment.ExitCode](https://github.com/dotnet/corefx/blob/0ebc867d6bad9d777dd61afb78d0445c86143b34/src/System.Runtime.Extensions/tests/System/Environment.Exit.cs#L52) should be enabled as the bug has been fixed in CoreCLR. I'll work on this issue after https://github.com/dotnet/core-setup/issues/2050 resolved. +18780 area-Meta Types missing [Serializable] Based on #18704 I took a quick look at the rest of the .NET Core framework to find types that were marked [Serializable] in the desktop .NET Framework which are not marked so in .NET Core. I looked for 'serializable typename' in issues on CoreFX and CoreCLR and didn't find any hits on these to try and understand if these were known issues or by design and didn't come up with anything. (I also don't have a great way to split the list between CoreFX and CoreCLR, so I'm opening the issue here for all of them.) The list: Microsoft.VisualBasic.CompilerServices.IncompleteInitialization Microsoft.VisualBasic.CompilerServices.InternalErrorException Microsoft.VisualBasic.CompilerServices.StaticLocalInitFlag System.AssemblyLoadEventHandler System.Configuration.Assemblies.AssemblyHashAlgorithm System.Configuration.Assemblies.AssemblyVersionCompatibility System.Globalization.CultureTypes System.Globalization.DateTimeStyles System.Globalization.DigitShapes System.Globalization.NumberStyles System.Globalization.UnicodeCategory System.IO.FileMode System.IO.FileOptions System.IO.FileShare System.IO.SeekOrigin System.LoaderOptimization System.Reflection.Assembly System.Reflection.AssemblyContentType System.Reflection.AssemblyNameFlags System.Reflection.Binder System.Reflection.BindingFlags System.Reflection.CallingConventions System.Reflection.ConstructorInfo System.Reflection.EventAttributes System.Reflection.EventInfo System.Reflection.FieldAttributes System.Reflection.FieldInfo System.Reflection.ImageFileMachine System.Reflection.MemberFilter System.Reflection.MemberInfo System.Reflection.MemberTypes System.Reflection.MethodAttributes System.Reflection.MethodBase System.Reflection.MethodImplAttributes System.Reflection.MethodInfo System.Reflection.Module System.Reflection.ModuleResolveEventHandler System.Reflection.ParameterAttributes System.Reflection.ParameterInfo System.Reflection.PortableExecutableKinds System.Reflection.ProcessorArchitecture System.Reflection.PropertyAttributes System.Reflection.PropertyInfo System.Reflection.ResourceAttributes System.Reflection.ResourceLocation System.Reflection.TypeAttributes System.Reflection.TypeFilter System.Reflection.TypeInfo System.ResolveEventHandler System.Resources.UltimateResourceFallbackLocation System.Runtime.CompilerServices.MethodImplOptions System.Runtime.InteropServices.CallingConvention System.Runtime.InteropServices.CharSet System.Runtime.InteropServices.LayoutKind System.Runtime.InteropServices.UnmanagedType System.Runtime.InteropServices.VarEnum System.Runtime.Serialization.StreamingContextStates System.Text.RegularExpressions.MatchEvaluator System.Threading.ApartmentState System.Threading.ThreadPriority System.Threading.ThreadState System.Type +18784 area-System.Net WebHeaderCollection needs some internal APIs made public While investigating failures in System.Net.Requests tests ( #17842), I discovered that `FtpWebResponse.Headers` and `FileWebResponse.Headers` is returning a `WebHeaderCollection` object that does not have the private field `WebHeaderCollectionType` properly initialized within the collection. This causes code like this: ```c# FileWebResponse response = ... Assert.Equal(data.Length.ToString(), response.Headers[HttpResponseHeader.ContentLength]); ``` to pass on .NET Core (which is wrong). Instead, it should throw an exception >System.InvalidOperationException : This collection holds request headers and cannot contain the specified response header. similar to what happens on .NET Framework. The exception is because FtpWebResponse/FileWebResponse don't have Http type headers. So, the net result is that we don't have proper validation for WebHeaderCollection type. The problem is that on .NET Core, the `WebHeaderCollection` is being created with the default contructor which doesn't pass it any specific `WebHeaderCollectionType` enum value. On .NET Framework, it uses an internal constructor overload. Also, the `WebHeaderCollectionType` enum is also marked as internal in .NET Framework and is not a public API. This was ok for .NET Framework since everything was in System.dll. But on .NET Core, WebHeaderCollection lives in a different library from System.Net.Requests where *WebRequest, *WebResponse classes live. ```c# internal enum WebHeaderCollectionType : ushort { Unknown, WebRequest, WebResponse, HttpWebRequest, HttpWebResponse, HttpListenerRequest, HttpListenerResponse, FtpWebRequest, FtpWebResponse, FileWebRequest, FileWebResponse, } internal WebHeaderCollection(WebHeaderCollectionType type) : base(DBNull.Value); ``` This is resulting in all WebHeaderCollection objects being set with the `WebHeaderCollectionType.Unknown` enum value. +18786 area-System.Diagnostics Activity: Proposal for an easier/more flexible tracer contract "Since I can't stop thinking about this topic ([see initial discussion](https://github.com/dotnet/corefx/issues/16491)), I'd like to show you a proposal for a IMO more usable Activity system that tries to be a compromise between OpenTracing and what Activity does right now. /alphabetical cc with people I've seen on related issues: @avanderhoorn @benaadams @Dmitry-Matveev @lmolkova @nbilling @SergeyKanzhelev @vancem Main differences/concepts: * It uses a **separate static `Tracer` class and an `ITracer` interface** instead of DiagnosticSource. * I know that it would be nice to reuse something existing but DiagnosticSource is not useful for Activities IMO because: * The Start/Stop events are defined by string values. Everyone could raise an ""activity""-like event that ends with "".Stop"" and tracers would have no good way to differentiate them from real activity events. * There's currently no easy/reliable way to get *all* started/stopped activities. Tracers have to rely on `EndsWith("".Stop"")`-code to subscribe to all activity events. * It doesn't allow you to pass additional arguments without creating anonymous objects. I'd like to always pass the actual activity instance because accessing Activity.Current in a tracer is not reliable enough IMO - especially together with the previous points (does it also have worse performance???). * It is not extensible. We need Inject/Extract hooks to be compatible with 3rd party tracers. With DiagnosticSource, this would result in even more strange string-based events with weird arguments. * In contrast to my [opentracing-code](https://github.com/opentracing/opentracing-csharp), the proposed static `Tracer` does not rely on DependencyInjection and can easily be used everywhere. * It is also zero-allocation based if tracing is off (at least I think so) * There are **hooks for Inject/Extract of IDs and baggage** to support existing tracers. This is an absolute must-have IMO because otherwise this whole system is useless for everyone but new tracers. * The currently used http standard is completely proprietary and not used by anyone. Something like this shouldn't be hard-coded in such a deep layer of the .net framework. * Since there have been concerns about the complexity of inject/extract in opentracing, the proposed code might be a possible compromise (with advantages and disadvantages of course). This would have to be discussed. * I propose to **always set default tags**! Otherwise it's basically impossible to write general-purpose tracers that don't want to take DLL dependencies on instrumented objects. The tags from opentracing are agreed upon by a few 3rd party tracers so I think using them should be a good thing! And every tracer could map them to its own anyway. * I'd argue that there should be *hundreds* of usages of this API in the future (every messaging library, database SDK, probably even frameworks that invoke user code like mvc actions, ...). Tracers should not (and can not) have DLL dependencies on all of these and it should be easy for tracers to automatically subscribe to all of these. * It uses **more common 128bit/64bit randoms for IDs** instead of the very complicated and also completely proprietary algorithm. This would ensure compatibility with some more 3rd party tracers. * Given this proposal has a more reliable way to subscribe to all start events and also inject/extract hooks, it might not even be necessary to dictate the format at all. This PoC probably has some issues and needs further discussion etc. I'd be happy to help work on this and create an initial PR should there be approval towards the general approach. If not, I'll (hopefully - no guarantees :smile:) finally shut up and continue to work on my OpenTracing library as an alternative. ```csharp // Usage in an outgoing Http Request async Task SendHttpRequest(HttpClient client, HttpRequestMessage request) { // NOTE: OperationName has a different meaning in OpenTracing. (e.g. it would be something like ""controller/action"" in an incoming MVC request) const string operationName = ""System.Net.Http.RequestOut""; Activity activity = null; // A separate ""Tracer"" class instead of DiagnosticListener for more flexibility and better contracts // No anonymous objects for easier access to argument! // Zero-alloc in case tracing is off! if (Tracer.IsEnabled(operationName, request)) { // Create through tracer for potential future OnCreate hooks activity = Tracer.CreateActivity(operationName) // *Always* set standardized tags for tracers who don't want to take a dependency // on the instrumented object (e.g. HttpRequestMessage) // these are from the opentracing spec. .AddTag(""span.kind"", ""client"") .AddTag(""http.method"", request.Method.ToString()) .AddTag(""http.url"", request.RequestUri.ToString()) // Informs tracers about the start and allows them to override/add tags .Start(request); // Every tracer uses different header names etc. so we absolutely need this hook! // NOTE: OpenTracing uses a more sophisticated system with formats and carrier objects. // Maybe something like this would be an easy compromise?! (with drawbacks though) Tracer.Inject(activity, x => request.Headers.Add(x.Key, x.Value)); } try { await client.SendAsync(request); } finally { activity?.Stop(request); } } // Usage in an incoming ASP.NET Core request async Task HandleIncomingRequest(HttpContext context) { const string operationName = ""Microsoft.AspNetCore.RequestIn""; Activity activity = null; if (Tracer.IsEnabled(operationName, context)) { activity = Tracer.CreateActivity(operationName) .AddTag(""span.kind"", ""server"") .AddTag(""http.method"", context.Request.Method) .AddTag(""http.url"", context.Request.Path) .AddTag(""peer.hostname"", context.Request.Host.Host); // Every tracer uses different header names etc. so we absolutely need this hook! // NOTE: OpenTracing uses a more sophisticated system with formats and carrier objects. // Maybe something like this would be an easy compromise?! (with drawbacks though) Tracer.Extract(activity, getHeaders: () => context.Request.Headers.Select(x => new KeyValuePair(x.Key, x.Value)), getHeaderValue: key => context.Request.Headers.TryGetValue(key, out var value) ? value.ToString() : null); activity.Start(context); } try { // TODO HandleRequest await Task.CompletedTask; } finally { // Add additional standardized tags activity?.AddTag(""http.status_code"", context.Response.StatusCode); activity?.Stop(context); } } // A new type instead of DiagnosticSource/Listener for more flexibility and a better contract towards tracers. public static class Tracer { // TODO subscription management (unsubscribe (not sure if this is necessary), dispose behavior on app shutdown) private static List _tracers { get; set; } // here instead of Activity, to keep all static code in one Location // TODO net45/net6 handling (AsyncLocal) etc. public static Activity CurrentActivity { get; private set; } public static void AddTracer(ITracer tracer) { if (_tracers == null) _tracers = new List(); _tracers.Add(tracer); } public static bool IsEnabled(string operationName, object arg = null) => _tracers?.Any(x => x.IsEnabled(operationName, arg)) ?? false; public static Activity CreateActivity(string operationName) { return new Activity(operationName); } // internal, to make sure there's only one way to start activities internal static void StartActivity(Activity activity, object arg = null) { CurrentActivity = activity; _tracers?.ForEach(x => x.OnStartActivity(activity, arg)); } // internal, to make sure there's only one way to stop activities internal static void StopActivity(Activity activity, object arg = null) { _tracers?.ForEach(x => x.OnStopActivity(activity, arg)); CurrentActivity = activity.Parent; } public static void Inject(Activity activity, Action> addHeader) { _tracers?.ForEach(x => x.Inject(activity, addHeader)); } public static void Extract(Activity activity, Func>> getHeaders, Func getHeaderValue) { _tracers?.ForEach(x => x.Extract(activity, getHeaders, getHeaderValue)); } } // A very simple interface for tracers that reliably delivers the events and activity // without having to rely on event name strings and Activity.Current. public interface ITracer { bool IsEnabled(string operationName, object arg); void OnStartActivity(Activity activity, object arg); void OnStopActivity(Activity activity, object arg); void Inject(Activity activity, Action> addHeader); void Extract(Activity activity, Func>> getHeaders, Func getHeaderValue); } public class Activity { // Note: This class contains only relevant properties for this POC. public string OperationName { get; } public string Id { get; private set; } public string ParentId { get; private set; } public string RootId { get; set; } // TODO ""TraceId"" would be a more common name! public Activity Parent { get; private set; } public IEnumerable> Baggage { get; } internal Activity(string operationName) { OperationName = operationName; } public Activity Start(object arg = null) { // TODO ensure not started, Parent, StartTime, ... - see current Activity class if (RootId == null) { RootId = ""...""; // 128bit random instead of current algorithm } Id = ""...""; // 64bit random instead of current algorithm Tracer.StartActivity(this, arg); return this; } public void Stop(object arg = null) { // ... see current activity class // TODO if (!_isFinished) { Tracer.StopActivity(this, arg); //} } public Activity AddBaggage(string key, string value) => /* TODO save baggage */ this; public Activity AddTag(string key, int value) => /* TODO: save tag */ this; public Activity AddTag(string key, string value) => /* TODO: save tag */ this; } // Just a PoC example of an actual tracer public class SimpleTracer : ITracer { private IArgumentHandler _argumentHandler = null; public bool IsEnabled(string operationName, object arg) { if (operationName == ""Something.We.DoNot.Need"") return false; // ArgumentHandler would either call into a component with a direct reference to the instrumented object // or into something like aspnet/EventNotification that uses proxy objects. if (!_argumentHandler.IsEnabled(operationName, arg)) return false; return true; } public void OnStartActivity(Activity activity, object arg) { Console.WriteLine($""Activity {activity.Id} started""); } public void OnStopActivity(Activity activity, object arg) { Console.WriteLine($""Activity {activity.Id} stopped""); } public void Inject(Activity activity, Action> addHeader) { addHeader(new KeyValuePair(""X-TraceId"", activity.RootId)); addHeader(new KeyValuePair(""X-ActivityId"", activity.Id)); foreach (var baggageItem in activity.Baggage) addHeader(new KeyValuePair(""X-Baggage-"" + baggageItem.Key, baggageItem.Value)); } public void Extract(Activity activity, Func>> getHeaders, Func getHeaderValue) { string traceId = getHeaderValue(""X-TraceId""); string parentId = getHeaderValue(""X-ActivityId""); foreach (var header in getHeaders()) { if (header.Key.StartsWith(""X-Baggage-"")) { activity.AddBaggage(header.Key.Substring(10), header.Value); } } } } ```" +18787 area-System.Net HttpWebRequest request stream returns different exceptions from Desktop The request stream returned from `HttpWebRequest.GetRequestStream` is always a MemoryStream on .NET Core. On .NET Framework, it is a System.Net.ConnectStream (an internal class). Due to this, there are small behavior difference w.r.t. the exception returned while doing argument checking: See: ```c# [Fact] public void WriteAsync_OffsetPlusCountExceedsBufferLength_ThrowsArgumentException() { using (Stream stream = GetRequestStream()) { if (PlatformDetection.IsFullFramework) { // In .NET Framework, the request stream is a System.Net.ConnectStream // which throws ArgumentOutOfRangeException in this case. Assert.Throws(() => { Task t = stream.WriteAsync(buffer, 0, buffer.Length+1); }); } else { // In .NET Core, the request stream is a System.IO.MemoryStream // which throws ArgumentException in this case. Assert.Throws(() => { Task t = stream.WriteAsync(buffer, 0, buffer.Length+1); }); } } } [Fact] public void WriteAsync_OffsetPlusCountMaxValueExceedsBufferLength_Throws() { using (Stream stream = GetRequestStream()) { if (PlatformDetection.IsFullFramework) { // In .NET Framework, the request stream is a System.Net.ConnectStream // which throws ArgumentOutOfRangeException in this case. Assert.Throws(() => { Task t = stream.WriteAsync(buffer, int.MaxValue, int.MaxValue); }); } else { // In .NET Core, the request stream is a System.IO.MemoryStream // which throws ArgumentException in this case. Assert.Throws(() => { Task t = stream.WriteAsync(buffer, int.MaxValue, int.MaxValue); }); } } } ``` Discovered while investigating #17842 and related to #11873. For app-compat, we should consider fixing this. The simplest fix would be to create a derived class of MemoryStream() and make sure all Write* methods are overridden with matching argument validation before calling the base methods. +18788 area-System.IO How to check whether the PipeStream has data or not "In .NET, the pipe API doesn't expose any property the application can use in order to decide whether it's worth involving a Read operation or not. The other posts on this subject suggest using the async reading and CancellationToken for this. I don't like this very much because the Exception is intended to be used for exceptional cases only. Raising an OperationCancelledException every few milliseconds doesn't sound very appealing. Anyway, I tried that, as well. The reason I am writing this post is the fact that to me it seems the ReadAsync doesn't work either for this purpose. I guess this is because ReadAsync deals with unmanaged IO operations. IMO cancelling should, however, be possible when using PipeOptions.Asynchronous. Please see the code below; it's the Main of a console application. The code contains comments explaining what are the actual and the expected behaviors. Thank you, Ernest. ```csharp // This is the Main of a console application public void Main() { // This code is intended to verify if ReadAsync can be used to check the pipe doesn't have any data. string pipeName = ""XYZ""; // create the server (async)pipe and put it listenting mode var serverPipe = new System.IO.Pipes.NamedPipeServerStream(pipeName, System.IO.Pipes.PipeDirection.InOut,1,System.IO.Pipes.PipeTransmissionMode.Byte,System.IO.Pipes.PipeOptions.Asynchronous); var connWaiterTask = serverPipe.WaitForConnectionAsync(); // create the client pipe and connect it to server. The client intentionally doesn't send any data to the server. var clientPipe = new System.IO.Pipes.NamedPipeClientStream(""localhost"", pipeName, System.IO.Pipes.PipeDirection.InOut); //, System.IO.Pipes.PipeOptions.Asynchronous); clientPipe.Connect(); // prepare a cancellation source for ReadAsync System.Threading.CancellationTokenSource cts = new System.Threading.CancellationTokenSource(); byte[] inBuffer = new byte[1]; try { // invoke ReadAsync on the server pipe and immediately cancel the passed in cancellation token. var readAsyncTask = serverPipe.ReadAsync(inBuffer,0,1, cts.Token); System.Threading.Thread.Sleep(50); cts.Cancel(); // cancel ReadAsync //clientPipe.WriteByte(1); // If the client sends some data, it unblocks the ReadAsync on server side int n = readAsyncTask.Result; // The token is cancelled at this time, but ReadAsync doesn't seem to be aware of this. This line blocks indefinitely if the client doesn't send any data. } finally { // The execution never gets here. Why? Console.WriteLine(""FINISH""); } } ```" +18790 area-System.Reflection TypeBuilder.CreateTypeInfo() throws COMException instead of a more descriptive managed exception "With the following code: ```csharp var assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(new AssemblyName(""RefField""), AssemblyBuilderAccess.Run); var moduleBuilder = assemblyBuilder.DefineDynamicModule(""RefFieldModule.dll""); var typeBuilder = moduleBuilder.DefineType(""RefFieldClass""); typeBuilder.DefineField(""RefInt"", typeof(int).MakeByRefType(), FieldAttributes.Public); var typeInfo = typeBuilder.CreateTypeInfo(); ``` The last line correctly throws, in that the runtime doesn't support a ByRef field. However, it throws a `System.Runtime.InteropServices.COMException`. As far as I can see, there aren't any try/catch blocks around the QCalls into the CLR, so this exception is actually bubbling up through the invoke. Seems like we should be returning some kind of better named and/or more descriptive managed exception in these cases. `COMException` is pretty unusual to see coming out of a framework API." +18791 area-System.Reflection [netcoreapp2.0] For an assembly loaded via 'Assembly.LoadFrom', the assembly it referenced cannot be loaded even if they are in the same folder "This is a breaking change in behavior compared with full .NET. **Scenario** I have libraries `Sample.dll` and `SampleDepend.dll` in the same folder `c:\temp`, and `Sample.dll` depends on `SampleDepend.dll`. In my `test.exe`, I load `Sample.dll` via `Assembly.LoadFrom`, and then invoke a method from `Sample.dll` using reflection, which will trigger the implicit loading of `SampleDepend.dll`. **Expected** The implicit loading of `SampleDepend.dll` succeeds, just like how it works with full .NET. **Actual** Exception thrown: `Could not load file or assembly 'SampleDepend, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.` **Repro Steps** ```CSharp // test.exe namespace Test { public class Program { public static void Main() { var a = System.Reflection.Assembly.LoadFrom(@""c:\temp\Sample.dll""); var t = a.GetType(""Sample.Module""); var m = t.GetMethod(""GetName""); var r = m.Invoke(null, new object[0]); System.Console.WriteLine(r); } } } // Sample.dll using System; using SampleDepend; namespace Sample { public class Module { public static string GetName() { return Utils.GetName(); } } } // SampleDepend.dll using System; namespace SampleDepend { public class Utils { public static string GetName() { return ""SampleDepend.Utils""; } } } ``` **Rresult** ``` PS:159> .\bin\Debug\netcoreapp2.0\win10-x64\publish\test.exe Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileNotFoundException: Could not load file or assembly 'SampleDepend, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified. at Sample.Module.GetName() --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at Test.Program.Main() in C:\Users\rocky\arena\dotnet\test\Program.cs:line 8 ``` **Full .NET Behavior** ``` c:\arena>Test.exe SampleDepend.Utils ``` I think when `Assembly.LoadFrom` successfully loads an assembly from path, it should put the path of the directory in the probing paths of the underlying load context, so that an assembly in the same folder that is referenced by the loaded assembly can be successfully loaded when running code from the loaded assembly." +18793 area-System.Data SqlClient fails to conenct to Sql Server 2014 on Ubuntu 16.04 LTS and CentOS When my DotNetCore app running on Dotnet core 1.0.1 tries to connect to Sql Server 2014 (SP2 with Cumulative Update 3 installed), I get the following exception _System.Data.SqlClient.SqlException: A connection was successfully established with the server, but then an error occurred during the login process. (provider: TCP Provider, error: 35 - An internal exception was caught) ---> System.IO.IOException: Unable to write data to the transport connection: Connection reset by peer. ---> System.Net.Sockets.SocketException: Connection reset by peer at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) --- End of inner exception stack trace --- at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) at System.Data.SqlClient.SNI.SslOverTdsStream.Write(Byte[] buffer, Int32 offset, Int32 count) at System.Net.Security.SslStreamInternal.StartWriting(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStreamInternal.ProcessWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStream.Write(Byte[] buffer, Int32 offset, Int32 count) at System.Data.SqlClient.SNI.SNITCPHandle.Send(SNIPacket packet) --- End of inner exception stack trace ---_ The same app can connect to the Sql Server when running on a Mac. The app can also connect when running inside a docker container on Mac. I used _microsoft/aspnetcore:1.1.1_ as the base image for the docker container. However, on Ubuntu on CentOS based host systems, the same app running within docker fails to connect to the Sql Server. +18794 area-Infrastructure tizen builds fail with parser error ``` 04:47:11 Build RootFS for armel tizen 04:47:11 + sudo docker run --privileged -i --rm -v /mnt/j/workspace/dotnet_corefx/master/tizen_armel_cross_release_prtest:/opt/corefx -w /opt/corefx t2wish/dotnetcore:ubuntu1404_cross_prereqs_v2 ./cross/build-rootfs.sh armel tizen --skipunmount 04:47:12 >>Start downloading files 04:47:12 Initialize arm base 04:47:12 /opt/corefx/cross/rootfs/armel/tizen_tmp/tizen_base_pkgs/build.xml:6: parser error : Opening and ending tag mismatch: hr line 5 and body 04:47:12 04:47:12 ^ 04:47:12 /opt/corefx/cross/rootfs/armel/tizen_tmp/tizen_base_pkgs/build.xml:7: parser error : Opening and ending tag mismatch: body line 3 and html 04:47:12 04:47:12 ^ 04:47:12 /opt/corefx/cross/rootfs/armel/tizen_tmp/tizen_base_pkgs/build.xml:8: parser error : Premature end of data in tag html line 1 04:47:12 + handle_exit 04:47:12 + set +x ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/tizen_armel_cross_debug_prtest/1511/console +18797 area-System.Runtime "Desktop: System.Runtime.InteropServices.Tests.SafeArrayTypeMismatchExceptionTests.SerializationRoundTrip failed with ""Xunit.Sdk.EqualException""" Failed test: System.Runtime.InteropServices.Tests.SafeArrayTypeMismatchExceptionTests.SerializationRoundTrip Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Runtime.InteropServices.Tests/SafeArrayTypeMismatchExceptionTests/SerializationRoundTrip/ Configuration: outerloop_netfx_windows_nt_debug MESSAGE: ~~~ Assert.Equal() Failure ↓ (pos 266) Expected: ···tterHelpers.cs:line 31 Actual: ···tterHelpers.cs:line 26 ↑ (pos 266) ~~~ STACK TRACE: ~~~ at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterHelpers.AssertRoundtrips[T](T expected, Func`2[] additionalGetters) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Runtime\Serialization\Formatters\BinaryFormatterHelpers.cs:line 39 at System.Runtime.InteropServices.Tests.SafeArrayTypeMismatchExceptionTests.SerializationRoundTrip() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.InteropServices\tests\System\Runtime\InteropServices\SafeArrayTypeMismatchExceptionTests.cs:line 18 ~~~ +18798 area-System.Collections IList-Reverse bug IList test = new List() {0, 4, 9}; test.Reverse(); //it's failure +18799 area-System.IO "Desktop: System.IO.Tests.PathTests.GetFullPath_Windows_ValidExtendedPaths failed with ""System.ArgumentException""" Failed test: System.IO.Tests.PathTests.GetFullPath_Windows_ValidExtendedPaths Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.IO.Tests/PathTests/GetFullPath_Windows_ValidExtendedPaths_path_________________UNC____server6____share_________/ Configuration: outerloop_netfx_windows_nt_debug MESSAGE: ~~~ System.ArgumentException : Illegal characters in path. ~~~ STACK TRACE: ~~~ at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional) at System.Security.Permissions.FileIOPermission.QuickDemand(FileIOPermissionAccess access, String fullPath, Boolean checkForDuplicates, Boolean needFullPath) at System.IO.Path.GetFullPath(String path) at System.IO.Tests.PathTests.GetFullPath_Windows_ValidExtendedPaths(String path) in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 606 ~~~ +18800 area-System.Net HttpWebRequest BeginGetResponse with Abort test has race conditions While investigating #17842, I discovered a test that has inherent race conditions (fails all the time on .NET Framework but usually works on .NET Core). There is a race condition between starting the I/O with BeginGetResponse() and calling Abort(). It is possible that the I/O will have completed async on another thread before the Abort() even gets called. This means the I/O will be completed and the Abort() will be a no-op and no WebException will be produced. The test is left disabled for now in the code. ```c# [Theory, MemberData(nameof(EchoServers))] public void Abort_BeginGetResponseThenAbort_EndGetResponseThrowsWebException(Uri remoteServer) { HttpWebRequest request = HttpWebRequest.CreateHttp(remoteServer); RequestState state = new RequestState(); state.Request = request; request.BeginGetResponse(new AsyncCallback(ResponseCallback), state); request.Abort(); WebException wex = state.SavedResponseException as WebException; Assert.Equal(WebExceptionStatus.RequestCanceled, wex.Status); } ``` +18801 area-System.Net Root cause System.Net.Requests test failures on NETFX "Finished investigation of failures on .NET Framework for System.Net.Requests. Cleaned up some tests that used ""global"" variables in the test class. Since tests are running in parallel, that wasn't a good idea. Changed to use the state object passed into the BeginGet* methods (which is best practice). Added new bugs #18784, #18787 and #18800. Fixes #17842." +18802 area-Serialization "Desktop: DataContractJsonSerializerTests.DCJS_VerifyDateTimeForFormatStringDCJsonSerSettings failed with ""Xunit.Sdk.TrueException""" Failed test: DataContractJsonSerializerTests.DCJS_VerifyDateTimeForFormatStringDCJsonSerSettings Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/(root)/DataContractJsonSerializerTests/DCJS_VerifyDateTimeForFormatStringDCJsonSerSettings/ Configuration: outerloop_netfx_windows_nt_debug MESSAGE: ~~~ Assert.True() Failure Expected: True Actual: False ~~~ STACK TRACE: at DataContractJsonSerializerTests.DCJS_VerifyDateTimeForFormatStringDCJsonSerSettings() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs:line 2547 +18803 area-System.IO "Desktop: System.IO.IsolatedStorage.CreateDirectoryTests.CreateDirectory_ThrowsIsolatedStorageException failed with ""System.InvalidOperationException""" Failed test: System.IO.IsolatedStorage.CreateDirectoryTests.CreateDirectory_ThrowsIsolatedStorageException Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.IO.IsolatedStorage/CreateDirectoryTests/CreateDirectory_ThrowsIsolatedStorageException/ Configuration: outerloop_netfx_windows_nt_debug MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.IO.IsolatedStorage.IsolatedStorageException) Actual: typeof(System.InvalidOperationException): Store must be open for this operation. ~~~ STACK TRACE: ~~~ at System.IO.IsolatedStorage.IsolatedStorageFile.Reserve(UInt64 lReserve) at System.IO.IsolatedStorage.IsolatedStorageFile.CreateDirectory(String dir) at System.IO.IsolatedStorage.CreateDirectoryTests.<>c__DisplayClass1_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\System.IO.IsolatedStorage\tests\System\IO\IsolatedStorage\CreateDirectoryTests.cs:line 26 ~~~ +18805 area-System.Diagnostics "Desktop: Tests under ""System.Diagnostics.Tracing.Tests.BasicEventSourceTests"" failed with ""Xunit.Sdk.EqualException""" Failed tests: BasicEventSourceTests.TestsWrite.Test_Write_T_EventListener BasicEventSourceTests.TestsWrite.Test_Write_T_EventListener_UseEvents BasicEventSourceTests.TestsUserErrors.Test_BadEventSource_MismatchedIds Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/BasicEventSourceTests/TestsWrite/Test_Write_T_EventListener/ Configuration: outerloop_netfx_windows_nt_debug MESSAGE: ~~~ Assert.Equal() Failure ↓ (pos 0) Expected: Actual: System.Threading.SynchronizationEventSour··· ↑ (pos 0) ~~~ STACK TRACE: ~~~ at BasicEventSourceTests.TestUtilities.CheckNoEventSourcesRunning(String message) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestUtilities.cs:line 34 at BasicEventSourceTests.TestsWrite.Test_Write_T(Listener listener) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestsWrite.cs:line 80 at BasicEventSourceTests.TestsWrite.Test_Write_T_EventListener() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestsWrite.cs:line 46 ~~~ +18806 area-System.Diagnostics "Desktop: BasicEventSourceTests.TestsWriteEvent.Test_WriteEvent_Manifest_EventListener failed with ""System.InvalidOperationException""" Failed tests: BasicEventSourceTests.TestsWriteEvent.Test_WriteEvent_Manifest_EventListener BasicEventSourceTests.TestsWriteEvent.Test_WriteEvent_SelfDescribing_EventListener BasicEventSourceTests.TestsWriteEvent.Test_WriteEvent_SelfDescribing_EventListener_UseEvents BasicEventSourceTests.TestsWriteEvent.Test_WriteEvent_Manifest_EventListener_UseEvents BasicEventSourceTests.TestsWrite.Test_Write_T_In_Manifest_Serialization Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/BasicEventSourceTests/TestsWriteEvent/Test_WriteEvent_Manifest_EventListener/ MESSAGE: ~~~ System.InvalidOperationException : EventSource not enabled after 5 seconds ~~~ STACK TRACE: ~~~ at BasicEventSourceTests.Listener.WaitForEnable(EventSource logger) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\Harness\Listeners.cs:line 43 at BasicEventSourceTests.Listener.EventSourceSynchronousEnable(EventSource eventSource, FilteringOptions options) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\Harness\Listeners.cs:line 35 at BasicEventSourceTests.EventTestHarness.RunTests(List`1 tests, Listener listener, EventSource source, FilteringOptions options) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\Harness\EventTestHarness.cs:line 97 at BasicEventSourceTests.TestsWriteEvent.Test_WriteEvent(Listener listener, Boolean useSelfDescribingEvents) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestsWriteEvent.cs:line 407 at BasicEventSourceTests.TestsWriteEvent.Test_WriteEvent_Manifest_EventListener() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestsWriteEvent.cs:line 46 ~~~ +18807 area-System.Diagnostics "Tests under ""System.Diagnostics.Tracing.Tests.BasicEventSourceTests"" failed with ""System.TypeLoadException""" Failed test: BasicEventSourceTests.TestsManifestNegative.Test_GenerateManifest_InvalidEventSources Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/BasicEventSourceTests/TestsManifestNegative/Test_GenerateManifest_InvalidEventSources/ MESSAGE: ~~~ System.TypeLoadException : Could not load type 'System.SR' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. ~~~ STACK TRACE: ~~~ at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type) at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase) at BasicEventSourceTests.TestsManifestNegative.GetResourceStringFromReflection(String key) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestsManifestNegative.cs:line 34 at BasicEventSourceTests.TestsManifestNegative.GetResourceString(String key, Object[] args) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestsManifestNegative.cs:line 24 at BasicEventSourceTests.TestsManifestNegative.Test_GenerateManifest_InvalidEventSources() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestsManifestNegative.cs:line 54 ~~~ +18808 area-System.Diagnostics "Desktop: BasicEventSourceTests.TestsManifestGeneration.Test_EventSource_NamedEventSource failed with ""Xunit.Sdk.EqualException""" Failed test: BasicEventSourceTests.TestsManifestGeneration.Test_EventSource_NamedEventSource Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/BasicEventSourceTests/TestsManifestGeneration/Test_EventSource_NamedEventSource/ MESSAGE: ~~~ Assert.Equal() Failure Expected: 1 Actual: 0 ~~~ STACK TRACE: ~~~ at BasicEventSourceTests.TestsManifestGeneration.Test_EventSource_NamedEventSource() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestsManifestGeneration.cs:line 37 ~~~ +18809 area-System.Reflection "Desktop: System.Reflection.Tests.AssemblyTests.LoadFile_NullPath_Netfx_ThrowsNullReferenceException failed with ""System.ArgumentNullException""" Failed test: System.Reflection.Tests.AssemblyTests.LoadFile_NullPath_Netfx_ThrowsNullReferenceException Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Reflection.Tests/AssemblyTests/LoadFile_NullPath_Netfx_ThrowsNullReferenceException/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.NullReferenceException) Actual: typeof(System.ArgumentNullException): Value cannot be null. Parameter name: path ~~~ STACK TRACE: ~~~ at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional) at System.Security.Permissions.FileIOPermission.CheckIllegalCharacters(String[] str) at System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) at System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String path) at System.Reflection.Assembly.LoadFile(String path) at System.Reflection.Tests.AssemblyTests.<>c.b__36_0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime\tests\System\Reflection\AssemblyTests.cs:line 341 ~~~ +18810 area-System.Xml "Desktop: System.Xml.Tests.XmlSystemPathResolverTests.TestResolveInvalidPaths failed with ""Xunit.Sdk.TrueException""" Failed test: System.Xml.Tests.XmlSystemPathResolverTests.TestResolveInvalidPaths Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Xml.Tests/XmlSystemPathResolverTests/TestResolveInvalidPaths/ MESSAGE: ~~~ Assert.True() Failure Expected: True Actual: False ~~~ STACK TRACE: ~~~ at System.Xml.Tests.XmlSystemPathResolverTests.AssertInvalidPath(String path) in D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Xml\tests\XmlSchema\XmlSchemaSet\XmlSystemPathResolverTests.cs:line 69 at System.Xml.Tests.XmlSystemPathResolverTests.TestResolveInvalidPaths() in D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Xml\tests\XmlSchema\XmlSchemaSet\XmlSystemPathResolverTests.cs:line 82 ~~~ +18811 area-System.Security "Desktop: System.Security.Cryptography.Rsa.Tests.KeyGeneration.GenerateKey_4096 failed with ""Xunit.Sdk.EqualException""" Failed test; System.Security.Cryptography.Rsa.Tests.KeyGeneration.GenerateKey_4096 Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Security.Cryptography.Rsa.Tests/KeyGeneration/GenerateKey_4096/ MESSAGE: ~~~ Assert.Equal() Failure Expected: 4096 Actual: 1024 ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.Rsa.Tests.KeyGeneration.GenerateKey(Func`2 getSize) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RSA\KeyGeneration.cs:line 57 at System.Security.Cryptography.Rsa.Tests.KeyGeneration.GenerateKey(Int32 size) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RSA\KeyGeneration.cs:line 43 at System.Security.Cryptography.Rsa.Tests.KeyGeneration.GenerateKey_4096() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RSA\KeyGeneration.cs:line 38 ~~~ +18812 area-System.Xml "Desktop: System.Xml.Tests.CReaderTestModule.TCMaxSettings failed with ""Xunit.Sdk.EqualException""" Failed test: System.Xml.Tests.CReaderTestModule.TCMaxSettings Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Xml.Tests/CReaderTestModule/TCMaxSettings/ MESSAGE: ~~~ Assert.Equal() Failure Expected: 0 Actual: 38 ~~~ STACK TRACE: ~~~ at System.Xml.Tests.CReaderTestModule.RunTestCase(Func`1 testCaseGenerator) in D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Xml\tests\Readers\ReaderSettings\CReaderTestModule.cs:line 20 at System.Xml.Tests.CReaderTestModule.RunTest(Func`1 testCaseGenerator) in D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Xml\tests\Readers\ReaderSettings\CReaderTestModule.cs:line 26 at System.Xml.Tests.CReaderTestModule.TCMaxSettings() in D:\j\workspace\outerloop_net---903ddde6\src\System.Private.Xml\tests\Readers\ReaderSettings\CReaderTestModule.cs:line 63 ~~~ +18813 area-System.IO "Desktop: System.IO.Tests.BinaryReaderTests.Read_InvalidEncoding failed with ""Xunit.Sdk.ThrowsException""" Failed test: System.IO.Tests.BinaryReaderTests.Read_InvalidEncoding Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.IO.Tests/BinaryReaderTests/Read_InvalidEncoding/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: (No exception was thrown) ~~~ STACK TRACE: ~~~ at System.AssertExtensions.Throws[T](String paramName, Func`1 testCode) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\AssertExtensions.cs:line 46 at System.IO.Tests.BinaryReaderTests.Read_InvalidEncoding() in D:\j\workspace\outerloop_net---903ddde6\src\System.IO\tests\BinaryReader\BinaryReaderTests.cs:line 128 ~~~ +18814 area-System.Security "Desktop: Tests under ""System.Security.Claims.ClaimsIdentityTests"" failed with ""Xunit.Sdk.NullException""" Failed tests: System.Security.Claims.ClaimsIdentityTests.Ctor_EnumerableClaimAuthNameRoleType_AllEmpty System.Security.Claims.ClaimsIdentityTests.Ctor_IdentityEnumerableClaimAuthNameRoleType_ClaimsArrayEmptyTypes System.Security.Claims.ClaimsIdentityTests.Ctor_IdentityEnumerableClaimAuthNameRoleType_IdentityNullRestEmpty System.Security.Claims.ClaimsIdentityTests.Ctor_AuthenticationType_Blank System.Security.Claims.ClaimsIdentityTests.Ctor_EnumerableClaimAuthNameRoleType_TwoClaimsAndTypesEmpty Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Security.Claims/ClaimsIdentityTests/Ctor_EnumerableClaimAuthNameRoleType_AllEmpty/ MESSAGE: ~~~ Assert.Null() Failure Expected: (null) Actual: ~~~ STACK TRACE: ~~~ at System.Security.Claims.ClaimsIdentityTests.Ctor_EnumerableClaimAuthNameRoleType_AllEmpty() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Claims\tests\ClaimsIdentityTests.cs:line 193 ~~~ +18815 area-System.Security "Desktop: System.Security.Permissions.Tests.SecurityElementTest.Attributes_Name_Invalid_MS failed with ""System.InvalidCastException""" Failed test: System.Security.Permissions.Tests.SecurityElementTest.Attributes_Name_Invalid_MS Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Security.Permissions.Tests/SecurityElementTest/Attributes_Name_Invalid_MS/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.InvalidCastException): Unable to cast object of type 'System.Collections.DictionaryEntry' to type 'System.String'. ~~~ STACK TRACE: ~~~ at System.Security.SecurityElement.set_Attributes(Hashtable value) at System.Security.Permissions.Tests.SecurityElementTest.<>c__DisplayClass19_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Permissions\tests\SecurityElementTests.cs:line 297 ~~~ +18816 area-System.Security "Desktop: Tests under ""System.Security.Permissions.Tests"" failed with ""System.ArgumentException""" Failed test: System.Security.Permissions.Tests.HostSecurityManagerTests.CallMethods Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Security.Permissions.Tests/HostSecurityManagerTests/CallMethods/ MESSAGE: ~~~ System.ArgumentException : The application evidence does not contain a Fusion activation context. ~~~ STACK TRACE: ~~~ at System.Security.HostSecurityManager.DetermineApplicationTrust(Evidence applicationEvidence, Evidence activatorEvidence, TrustManagerContext context) at System.Security.Permissions.Tests.HostSecurityManagerTests.CallMethods() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Permissions\tests\HostSecurityManagerTests.cs:line 16 ~~~ Failed test: System.Security.Permissions.Tests.PermissionSetTests.PermissionSetCallMethods Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Security.Permissions.Tests/PermissionSetTests/PermissionSetCallMethods/ MESSAGE: ~~~ System.ArgumentException : Invalid XML. Missing required tag for type 'System.Security.PermissionSet'. ~~~ STACK TRACE: ~~~ at System.Security.PermissionSet.FromXml(SecurityElement et, Boolean allowInternalOnly, Boolean ignoreTypeLoadFailures) at System.Security.Permissions.Tests.PermissionSetTests.PermissionSetCallMethods() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Permissions\tests\PermissionSetTests.cs:line 30 ~~~ +18817 area-System.Security "Desktop: System.Security.Permissions.Tests.ApplicationTrustTests.ApplicationTrustEnumeratorCallMethods failed with ""System.NullReferenceException""" Failed test: System.Security.Permissions.Tests.ApplicationTrustTests.ApplicationTrustEnumeratorCallMethods Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Security.Permissions.Tests/ApplicationTrustTests/ApplicationTrustEnumeratorCallMethods/ MESSAGE: ~~~ System.NullReferenceException : Object reference not set to an instance of an object. ~~~ STACK TRACE: ~~~ at System.Security.Policy.ApplicationTrustEnumerator.MoveNext() at System.Security.Permissions.Tests.ApplicationTrustTests.ApplicationTrustEnumeratorCallMethods() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Permissions\tests\ApplicationTrustTests.cs:line 33 ~~~ +18818 area-System.Security "Desktop: System.Security.Permissions.Tests.MembershipConditionTests.PublisherMembershipConditionCallMethods failed with ""System.Security.Cryptography.CryptographicException""" Failed test: System.Security.Permissions.Tests.MembershipConditionTests.PublisherMembershipConditionCallMethods Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Security.Permissions.Tests/MembershipConditionTests/PublisherMembershipConditionCallMethods/ MESSAGE: ~~~ System.Security.Cryptography.CryptographicException : m_safeCertContext is an invalid handle. ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.X509Certificates.X509Certificate.ThrowIfContextInvalid() at System.Security.Cryptography.X509Certificates.X509Certificate.get_Subject() at System.Security.Policy.PublisherMembershipCondition.ToString() at System.Security.Permissions.Tests.MembershipConditionTests.PublisherMembershipConditionCallMethods() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Permissions\tests\MembershipConditionTests.cs:line 88 ~~~ +18819 area-System.Security "Desktop: System.Security.Permissions.Tests.SerializationTests.SerializeDeserialize_Succeeds failed with ""System.MemberAccessException""" Failed test: System.Security.Permissions.Tests.SerializationTests.SerializeDeserialize_Succeeds Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Security.Permissions.Tests/SerializationTests/SerializeDeserialize_Succeeds/ MESSAGE: ~~~ System.MemberAccessException : Cannot create a type for which Type.ContainsGenericParameters is true. ~~~ STACK TRACE: ~~~ at System.Runtime.Serialization.FormatterServices.nativeGetUninitializedObject(RuntimeType type) at System.Security.Permissions.Tests.SerializationTests.d__0.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Permissions\tests\SerializationTests.cs:line 33 at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() ~~~ +18820 area-System.Security "Desktop: System.Security.Permissions.Tests.PolicyTests.PolicyLevelCallMethods failed with ""System.Security.Policy.PolicyException""" Failed test: System.Security.Permissions.Tests.PolicyTests.PolicyLevelCallMethods Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Security.Permissions.Tests/PolicyTests/PolicyLevelCallMethods/ MESSAGE: ~~~ System.Security.Policy.PolicyException : PolicyLevel object not based on a file cannot be recovered. ~~~ STACK TRACE: ~~~ at System.Security.Policy.PolicyLevel.Recover() at System.Security.Permissions.Tests.PolicyTests.PolicyLevelCallMethods() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Permissions\tests\PolicyTests.cs:line 28 ~~~ +18821 area-System.Runtime "Desktop: System.Tests.GetEnvironmentVariable.InvalidArguments_ThrowsExceptions failed with ""Xunit.Sdk.EqualException""" Failed test: System.Tests.GetEnvironmentVariable.InvalidArguments_ThrowsExceptions Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Tests/GetEnvironmentVariable/InvalidArguments_ThrowsExceptions/ MESSAGE: ~~~ Assert.Equal() Failure Expected: value Actual: (null) ~~~ STACK TRACE: ~~~ at System.AssertExtensions.Throws[T](String paramName, Action action) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\AssertExtensions.cs:line 38 at System.Tests.GetEnvironmentVariable.InvalidArguments_ThrowsExceptions() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Extensions\tests\System\Environment.GetEnvironmentVariable.cs:line 22 ~~~ +18822 area-System.Runtime "Desktop: System.Tests.OperatingSystemTests.Ctor_InvalidArgs_Throws failed with ""Xunit.Sdk.ThrowsException""" Failed test: System.Tests.OperatingSystemTests.Ctor_InvalidArgs_Throws Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Tests/OperatingSystemTests/Ctor_InvalidArgs_Throws/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Illegal enum value: -1. Parameter name: platform ~~~ STACK TRACE: ~~~ at System.OperatingSystem..ctor(PlatformID platform, Version version, String servicePack) at System.Tests.OperatingSystemTests.<>c.b__1_0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Extensions\tests\System\OperatingSystemTests.cs:line 37 ~~~ +18823 area-System.IO "Desktop: System.IO.Tests.PathTests.GetFullPath_Windows_LegacyArgumentExceptionPaths failed with ""System.ArgumentException""" Failed test: System.IO.Tests.PathTests.GetFullPath_Windows_LegacyArgumentExceptionPaths Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.IO.Tests/PathTests/GetFullPath_Windows_LegacyArgumentExceptionPaths_path____C_______/ MESSAGE: ~~~ System.ArgumentException : The path is not of a legal form. ~~~ STACK TRACE: ~~~ at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths) at System.IO.Path.GetFullPathInternal(String path) at System.IO.Path.GetFullPath(String path) at System.IO.Tests.PathTests.GetFullPath_Windows_LegacyArgumentExceptionPaths(String path) in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 507 ~~~ +18824 area-Serialization Add two desktop test cases for DataContractSerializer test @shmao @huanwu Please help review the tset code. +18825 area-System.IO "Desktop: System.IO.Tests.PathTests.IsPathRooted_Windows_Invalid failed with ""Xunit.Sdk.FalseException""" Failed test: System.IO.Tests.PathTests.IsPathRooted_Windows_Invalid Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.IO.Tests/PathTests/IsPathRooted_Windows_Invalid_value__________foo___/ MESSAGE: ~~~ Assert.False() Failure Expected: False Actual: True ~~~ STACK TRACE: ~~~ at System.IO.Tests.PathTests.IsPathRooted_Windows_Invalid(String value) in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 240 ~~~ +18826 area-System.IO "Desktop: System.IO.Tests.PathTests.GetFullPath_Windows_ValidExtendedPaths failed with ""System.NotSupportedException""" Failed test: System.IO.Tests.PathTests.GetFullPath_Windows_ValidExtendedPaths Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.IO.Tests/PathTests/GetFullPath_Windows_ValidExtendedPaths_path_________________C_________/ MESSAGE: ~~~ System.NotSupportedException : The given path's format is not supported. ~~~ STACK TRACE: ~~~ at System.Security.Permissions.FileIOPermission.QuickDemand(FileIOPermissionAccess access, String fullPath, Boolean checkForDuplicates, Boolean needFullPath) at System.IO.Path.GetFullPath(String path) at System.IO.Tests.PathTests.GetFullPath_Windows_ValidExtendedPaths(String path) in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 610 ~~~ +18827 area-System.IO "Desktop: System.IO.Tests.PathTests.GetFullPath_Windows_Wildcards and System.IO.Tests.PathTests.GetPathRoot_Windows_UncAndExtended failed with ""Xunit.Sdk.EqualException""" System.IO.Tests.PathTests.GetFullPath_Windows_Wildcards [FAIL] MESSAGE: ~~~ Assert.Equal() Failure Expected: path Actual: (null) ~~~ STACK TRACE: ~~~ at System.AssertExtensions.Throws[T](String paramName, Func`1 testCode) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\AssertExtensions.cs:line 49 at System.IO.Tests.PathTests.GetFullPath_Windows_Wildcards(Char wildcard) in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 708 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.IO.Tests/PathTests/GetFullPath_Windows_Wildcards_wildcard______/ System.IO.Tests.PathTests.GetPathRoot_Windows_UncAndExtended [FAIL] MESSAGE: ~~~ Assert.Equal() Failure ↓ (pos 7) Expected: \\\\?\\UNC\\test\\unc Actual: \\\\?\\UNC ↑ (pos 7) ~~~ STACK TRACE: ~~~ at System.IO.Tests.PathTests.GetPathRoot_Windows_UncAndExtended(String value, String expected) in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 203 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.IO.Tests/PathTests/GetPathRoot_Windows_UncAndExtended_value_________________UNC____test____unc____path____to____something____expected_________________UNC____test____unc___/ +18828 area-System.Runtime "Desktop: System.Runtime.Versioning.Tests.VersioningHelperTests.Test1 failed with ""Xunit.Sdk.EqualException""" Failed test: System.Runtime.Versioning.Tests.VersioningHelperTests.Test1 Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Runtime.Versioning.Tests/VersioningHelperTests/Test1/ MESSAGE: ~~~ Assert.Equal() Failure ↓ (pos 10) Expected: TestFile_r3 Actual: TestFile_r12_ad3 ↑ (pos 10) ~~~ STACK TRACE: ~~~ at System.Runtime.Versioning.Tests.VersioningHelperTests.Test1() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Extensions\tests\System\Runtime\Versioning\VersioningHelperTests.cs:line 16 ~~~ +18829 area-System.Reflection "Desktop: System.Reflection.Tests.AssemblyNameProxyTests.ReferenceMatchesDefinition failed with ""Xunit.Sdk.EqualException""" Failed test: System.Reflection.Tests.AssemblyNameProxyTests.ReferenceMatchesDefinition Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Reflection.Tests/AssemblyNameProxyTests/ReferenceMatchesDefinition_a1__mscorlib__Version_4_0_0_0__Culture_neutral__PublicKeyToken_b77a5c561934e089__a2__System_Runtime_Extensions__expected__True_/ MESSAGE: ~~~ Assert.Equal() Failure Expected: True Actual: False ~~~ STACK TRACE: ~~~ at System.Reflection.Tests.AssemblyNameProxyTests.ReferenceMatchesDefinition(AssemblyName a1, AssemblyName a2, Boolean expected) in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Extensions\tests\System\Reflection\AssemblyNameProxyTests.cs:line 37 ~~~ +18833 area-Serialization Construct the baseline at runtime and embed the DateTime string into the baseline Fix https://github.com/dotnet/corefx/issues/18539 Fix #18538 Fix https://github.com/dotnet/corefx/issues/18802 @shmao please help review the code. +18834 area-System.Console WindowAndCursorProps.SetWindowPosition_GetWindowPosition_ReturnsExpected failed "test case failed on Windows 10 Pro(x64) when COMPlus_GCStress=2: ``` ``` " +18835 area-System.Collections System.Collections.NonGeneric.Performance.tests failed "https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_portablelinux_release/24/testReport/ ---which shows no failures Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_portablelinux_release/24/consoleFull#-15630985984b7730ef-150b-4be7-a00f-82ba6c50792b Shows ""System.Collections.NonGeneric.Performance.tests"" failed" +18836 area-System.Diagnostics Clean build yields 11 warnings about TraceEvent package I just did: ``` git clean -xdf git pull upstream master build ``` and I get the following warnings as part of the build: ``` C:\Users\stoub\Source\repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): warning : Detected package downgrade: Microsoft.Diagnostics.Tracing.TraceEvent from 1.0.3-alpha-experimental to 1.0.0-alpha-experimental [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] C:\Users\stoub\Source\repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): warning : XUnit.Runtime (>= 4.4.0) -> xunit.performance.metrics (>= 1.0.0-beta-build0003) -> Microsoft.Diagnostics.Tracing.TraceEvent (>= 1.0.3-alpha-experimental) [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] C:\Users\stoub\Source\repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): warning : XUnit.Runtime (>= 4.4.0) -> Microsoft.Diagnostics.Tracing.TraceEvent (>= 1.0.0-alpha-experimental) [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] C:\Users\stoub\Source\repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): warning : Detected package downgrade: Microsoft.Diagnostics.Tracing.TraceEvent from 1.0.3-alpha-experimental to 1.0.0-alpha-experimental [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] C:\Users\stoub\Source\repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): warning : XUnit.Runtime (>= 4.4.0) -> xunit.performance.api (>= 1.0.0-beta-build0003) -> Microsoft.Diagnostics.Tracing.TraceEvent (>= 1.0.3-alpha-experimental) [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] C:\Users\stoub\Source\repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): warning : XUnit.Runtime (>= 4.4.0) -> Microsoft.Diagnostics.Tracing.TraceEvent (>= 1.0.0-alpha-experimental) [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] C:\Users\stoub\Source\repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): warning : Detected package downgrade: Microsoft.Diagnostics.Tracing.TraceEvent from 1.0.3-alpha-experimental to 1.0.0-alpha-experimental [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] C:\Users\stoub\Source\repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): warning : XUnit.Runtime (>= 4.4.0) -> xunit.performance.api (>= 1.0.0-beta-build0003) -> Microsoft.Diagnostics.Tracing.TraceEvent (>= 1.0.3-alpha-experimental) [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] C:\Users\stoub\Source\repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): warning : XUnit.Runtime (>= 4.4.0) -> Microsoft.Diagnostics.Tracing.TraceEvent (>= 1.0.0-alpha-experimental) [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] C:\Users\stoub\Source\repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): warning : Detected package downgrade: Microsoft.Diagnostics.Tracing.TraceEvent from 1.0.3-alpha-experimental to 1.0.0-alpha-experimental [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] C:\Users\stoub\Source\repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): warning : XUnit.Runtime (>= 4.4.0) -> xunit.performance.metrics (>= 1.0.0-beta-build0003) -> Microsoft.Diagnostics.Tracing.TraceEvent (>= 1.0.3-alpha-experimental) [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] C:\Users\stoub\Source\repos\corefx\Tools\dotnetcli\sdk\2.0.0-preview1-005724\NuGet.targets(97,5): warning : XUnit.Runtime (>= 4.4.0) -> Microsoft.Diagnostics.Tracing.TraceEvent (>= 1.0.0-alpha-experimental) [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] [C:\Users\stoub\Source\repos\corefx\external\test-runtime\XUnit.Runtime.depproj] ``` cc: @weshaggard, @ericstj, @brianrob +18845 area-Infrastructure Could not load file or assembly 'System.Core, version=4.0.0.0' because of the manisfest... "Hello, I have an issue using some .Net Core libraries, from France ! I had a .NET 4.5.1 library which I want to use in a new .NET Core project as a Nuget package. The package installed well on the .NET Core project, but when running, it stills wants to load the old assembly .Net Core (I suppose when trying to use Linq methods or collections methods) and I have the following error : System.IO.FileLoadException Could not load file or assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. The located assembly's manifest definition does not match the assembly reference How can I fix it ? I do not found anywhere a solution to this issue. Below is my .nuspec file : ``` *** *** *** *** *** *** *** *** *** ``` Thank you in advance. Chifton" +18846 area-System.Security Desktop: System.Security.Cryptography.Rsa.Tests.ImportExport.ImportNoDP failing From @Jiayili1 in https://github.com/dotnet/corefx/issues/18476 Another test failed with the same issue, detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/29/testReport/System.Security.Cryptography.Rsa.Tests/ImportExport/ImportNoDP/ Failed test: System.Security.Cryptography.Rsa.Tests.ImportExport.ImportNoDP MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.Security.Cryptography.CryptographicException) Actual: (No exception was thrown) ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.Rsa.Tests.ImportExport.ImportNoDP() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RSA\ImportExport.cs:line 277 ~~~ +18847 area-System.Collections Add ImmutableArray.AsReadOnlySpan() Can create a zero copy `ReadOnlySpan` over its internal array; would be a valid approach? +18848 area-System.Threading System.Threading Area Performance Tests This is a tracking issue describing the current performance tests we have in the System.Threading area, and what coverage is missing. The work items below can be completed independently, and they are all of different priority. When adding performance tests, please adhere to [the guidelines listed here](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/performance-tests.md#adding-new-performance-tests). NOTE: System.Threading has types defined in several contracts. I'm listing everything in this single issue, but the tests themselves may go into different test projects, depending on how we feel the tests are best organized. ## Existing Coverage: There is a very small amount of existing coverage for two types. We should audit that these existing test cases are 1) valuable and 2) conform to the guidelines linked to above. It's likely that we should just focus on writing new tests and adding better coverage than spending much time on the two existing test cases. We currently have tests for: * ReaderWriterLockSlim * EventWaitHandle ## Missing Coverage: ### System.Threading.Thread * Thread ### System.Runtime * Task * TaskFactory * TaskScheduler * CancellationToken ### System.Threading * Interlocked * Monitor * Semaphore * Volatile * SpinLock, SpinWait * SynchronizationContext * Barrier * ExecutionContext * LazyInitializer * ManualResetEvent, AutoResetEvent ### System.Threading.Tasks * AsyncTaskMethodBuilder * TaskCompletionSource ### System.Threading.Tasks.Extensions * ValueTask +18849 area-Infrastructure Running MusicStore sample on NET461 fails with an exception **Repro:** - Clone https://github.com/aspnet/MusicStore - Checkout the branch `kichalla/net461` - cd `samples/MusicStore` - dotnet restore - dotnet build - Run `samples\MusicStore\bin\Debug\net461\MusicStore.exe` **Expected:** Application starts successfully and you can make a request successfully to `http://localhost:5000/` to see the home page. **Actual:** Application fails to start with an exception ``` Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'System.Runtime.Loader, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) at Microsoft.AspNetCore.Hosting.WebHostExtensions.d__5.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host) at Microsoft.AspNetCore.Hosting.WebHostExtensions.Run(IWebHost host) at MusicStore.Program.Main(String[] args) ``` A pull request where discussion about this has been going on: https://github.com/aspnet/MusicStore/pull/775 cc @Eilon @pranavkm +18850 area-System.Net Change exception returned when serializing HttpWebRequest to match NETFX "Comments from PR #18801: From @safern ""Binary Serialization is now supported on .NET Core 2.0 but it wasn't in 1.1 or 1.0; so probably that is why we were throwing PNSE, so I think the same thing, it sounds reasonable to throw SE."" ```c# [Fact] public void HttpWebRequest_Serialize_Fails() { using (MemoryStream fs = new MemoryStream()) { BinaryFormatter formatter = new BinaryFormatter(); var hwr = HttpWebRequest.CreateHttp(""http://localhost""); if (PlatformDetection.IsFullFramework) { // .NET Framework throws a more detailed exception. // System.Runtime.Serialization.SerializationException): // Type 'System.Net.WebRequest+WebProxyWrapper' in Assembly 'System, Version=4.0.0. // 0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable. Assert.Throws(() => formatter.Serialize(fs, hwr)); } else { // TODO: Issue #18850. Change HttpWebRquest to throw SerializationException similar to .NET Framework. Assert.Throws(() => formatter.Serialize(fs, hwr)); } } } ```" +18851 area-System.Net Investigate behavior difference with NETFX with HttpWebResponse after closing stream "Comments from PR #18801 From @stephentoub ""Is the response Stream usable in this state in desktop? If so, seems like one we should fix in core."" ```c# [OuterLoop] [Fact] public async Task HttpWebResponse_Close_Success() { await LoopbackServer.CreateServerAsync(async (server, url) => { HttpWebRequest request = WebRequest.CreateHttp(url); request.Method = HttpMethod.Get.Method; Task getResponse = request.GetResponseAsync(); DateTimeOffset utcNow = DateTimeOffset.UtcNow; await LoopbackServer.ReadRequestAndSendResponseAsync(server, $""HTTP/1.1 200 OK\r\n"" + $""Date: {utcNow:R}\r\n"" + ""Content-Type: application/json;charset=UTF-8\r\n"" + ""Content-Length: 5\r\n"" + ""\r\n"" + ""12345""); WebResponse response = await getResponse; HttpWebResponse httpResponse = (HttpWebResponse)response; httpResponse.Close(); if (PlatformDetection.IsFullFramework) { Stream stream = httpResponse.GetResponseStream(); } else { // TODO: Issue #18851. Investigate .NET Core to see if it can // match .NET Framework. Assert.Throws(() => { httpResponse.GetResponseStream(); }); } }); ```" +18854 area-Serialization Add a test to verify using duration as the XmlQualifiedName for TimeSpan "#18761 ```c# AddNonXsdPrimitive(typeof(TimeSpan), ""TimeSpan"", UrtTypes.Namespace, ""TimeSpan"", new XmlQualifiedName(""**duration**"", XmlSchema.Namespace), new XmlSchemaFacet[0], TypeFlags.CanBeAttributeValue | TypeFlags.CanBeElementValue | TypeFlags.XmlEncodingNotRequired); ``` Verify the duration in this code." +18858 area-System.IO clrcompression.dll fails BinSkim checks for stack protection features "Instances of clrcompression.dll (e.g. by compiling a UWP app against [System.IO.Compression](https://www.nuget.org/packages/runtime.win7-x64.runtime.native.System.IO.Compression) fail security checks in BinSkim. Microsoft [recommends the use](https://www.microsoft.com/en-us/SDL/adopt/tools.aspx) of BinSkim to ensure binaries are in compliance with SDL requirements and recommendations. Using the [latest version of BinSkim](https://www.nuget.org/packages/Microsoft.CodeAnalysis.BinSkim/1.4.0), e.g. ""BinSkim.exe analyze clrcompression.dll -v -o results.sarif"", there are a number of security issues flagged, but in particular for this post: ""BA2011"": { ""id"": ""BA2011"", ""name"": ""EnableStackProtection"", ""shortDescription"": ""Binaries should be built with the stack protector buffer security feature (/GS) enabled to increase the difficulty of exploiting stack buffer overflow memory corruption vulnerabilities."", ""fullDescription"": ""Binaries should be built with the stack protector buffer security feature (/GS) enabled to increase the difficulty of exploiting stack buffer overflow memory corruption vulnerabilities. To resolve this issue, ensure that all modules compiled into the binary are compiled with the stack protector enabled by supplying /GS on the Visual C++ compiler command line."", ""messageFormats"": { ""Pass"": ""'{0}' is a C or C++ binary built with the stack protector buffer security feature enabled for all modules, making it more difficult for an attacker to exploit stack buffer overflow memory corruption vulnerabilities. "", ""Error"": ""'{0}' is a C or C++ binary built with the stack protector buffer security feature disabled in one or more modules. The stack protector (/GS) is a security feature of the compiler which makes it more difficult to exploit stack buffer overflow memory corruption vulnerabilities. To resolve this issue, ensure that your code is compiled with the stack protector enabled by supplying /GS on the Visual C++ compiler command line. The affected modules were: {1}"", ""Error_UnknownModuleLanguage"": ""'{0}' contains code from an unknown language, preventing a comprehensive analysis of the stack protector buffer security features. The language could not be identified for the following modules: {1}."", ""NotApplicable_InvalidMetadata"": ""'{0}' was not evaluated for check '{1}' as the analysis is not relevant based on observed metadata: {2}."" }, ""defaultLevel"": ""warning"", ""helpUri"": ""https://github.com/microsoft/binskim"", ""properties"": { ""equivalentBinScopeRuleReadableName"": ""GSCheck"" } }, Note that the offending code in CoreFx seems to be replacing the security cookie with its own (and adding its own enhanced randomization): https://github.com/dotnet/corefx/blob/f47e50054279ee285fb8ae9ed85d2985b64bf553/src/Native/Windows/clrcompression/crt.cpp " +18859 area-System.Data Add retries to port checking in SQL SplitPacketTest Reduce min wait time in SplitPacketTest setup by adding multiple tries on shorter sleep intervals +18860 area-System.Data Remove Pubs database dependency in SqlClient tests Only three tests were using the sample Pubs database instead of Northwind. This complicated test setup for other users for no added benefit, so I changed these tests to use Northwind. +18861 area-System.Data Remove fragile connection string parsing from Sql Named Pipes tests Having connection string parsing in these tests added extra complexity for no benefit. +18862 area-System.Net System.Net.Sockets Area Performance Tests This is a tracking issue describing the current performance tests we have in the System.Net.Sockets area, and what coverage is missing. The work items below can be completed independently, and they are all of different priority. When adding performance tests, please adhere to [the guidelines listed here](https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/performance-tests.md#adding-new-performance-tests). ## Existing Coverage: There is an existing test project, which contains some test classes and methods. These are old tests, and are not written against the xunit.performance framework. It's unclear if these tests are defunct, or if we are still using them in a manual fashion. At the very least, we need to clean them up and make sure: * They follow the guidelines linked above * Are valuable when compared with adding new baseline coverage (listed below). ## Missing Coverage: * Socket * TcpClient * UdpClient * SocketTaskExtensions * SocketAsyncEventArgs +18863 area-System.Security HashAlgorithm.TransformFinalBlock doesn't reset the hash state This issue is for tracking changes which should be ported to netfx Related changes: https://github.com/dotnet/corefx/blob/861c91ef4815cc8f525049e83544d0872163f0d3/src/System.Security.Cryptography.Primitives/src/System/Security/Cryptography/HashAlgorithm.cs#L87-L96 Related issues: https://github.com/dotnet/corefx/issues/18721 Please remove ReinitilizeHashIfNetfx in HashAlgorithmTest.cs after port is done. cc: @bartonjs +18864 area-System.Net Incomplete HTTP responses behaves different between Core and NETFX "While investigation #17691, I discovered a test that hangs on .NET Framework. While the test intended to test a scenario with a ""server that slowly returned data"", it is testing it in the wrong manner. Returning an HTTP response with a Content-Length header that is geater than the number of bytes actually being returned will cause a client to wait until all promised bytes are returned. This is how, for example, the long-polling type of scenarios work. The fact the .NET Core is working and returning ""partial data"" doesn't seem right. I believe the bug is that .NET Core is not behaving as per RFC. And this test is testing something invalid. If we really wanted a specific test for ""slow data"", we should return all data promised (but perhaps delayed slightly). ```c# [ActiveIssue(18864)] [OuterLoop] // TODO: Issue #11345 [Fact] public async Task SendAsync_ReadFromSlowStreamingServer_PartialDataReturned() { await LoopbackServer.CreateServerAsync(async (server, url) => { using (var client = new HttpClient()) { Task getResponse = client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead); await LoopbackServer.AcceptSocketAsync(server, async (s, stream, reader, writer) => { while (!string.IsNullOrEmpty(reader.ReadLine())) ; await writer.WriteAsync( ""HTTP/1.1 200 OK\r\n"" + $""Date: {DateTimeOffset.UtcNow:R}\r\n"" + ""Content-Length: 16000\r\n"" + ""\r\n"" + ""less than 16000 bytes""); using (HttpResponseMessage response = await getResponse) { var buffer = new byte[8000]; using (Stream clientStream = await response.Content.ReadAsStreamAsync()) { int bytesRead = await clientStream.ReadAsync(buffer, 0, buffer.Length); _output.WriteLine($""Bytes read from stream: {bytesRead}""); Assert.True(bytesRead < buffer.Length, ""bytesRead should be less than buffer.Length""); } } return null; }); } }); } ```" +18868 area-System.Diagnostics Add Exists check to RemoteExecutorConsoleApp Some tests are failing on Unix with an error that appears to be indicating that the RemoteExecutorConsoleApp.exe is missing. I'm adding an explicit check to confirm or deny that this is the case. It is also possible that the exe can go missing between the check passing and the process startup failing, but there's not much I can do about that other than ignore the SIGCHLD failures which I would prefer to not do except as a last resort. Also modified a test to use a random file path. @danmosemsft @stephentoub Helps to diagnose root cause of #16688 +18869 area-System.Net System.Net.Tests.HttpRequestStreamTests.Read_FullLengthSynchronous_Success failed in CI "This test has a ~1% failure rate on windows 2008 when running on an offline CI machine repeatedly in a loop, and has recently failed in CI. In all cases the detail is as follows (including the test arguments of True, """") ``` System.Net.Tests.HttpRequestStreamTests.Read_FullLengthSynchronous_Success(transferEncodingChunked: True, text: \""\"") [FAIL] System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.HttpRequestStreamTests.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() ```" +18870 area-System.Net Missing parameter validation for CredentialCache.Add method While investigating #17691, discovered that CredentialCache is not doing proper validation with the 'Add' method. On .NET Core, it allows for DefaultCredentials to be added for auth types such as 'Basic'. On .NET Framework, it throws: >System.ArgumentException : Default credentials cannot be supplied for the Basic authentication scheme. Parameter name: authType Stack Trace: at System.Net.CredentialCache.Add(Uri uriPrefix, String authType, NetworkCredential cred) +18871 area-Serialization Skip DCJS_StringAsRoot on NetFx. Test `DCJS_StringAsRoot ` was for a fix originally made on NetCore. Later we port the fix to Desktop (4.7 and above). As Xunit runner currently targets 4.6.1, the test fails on NetFx. The PR is to skip the test on netfx. Fix #18723 +18873 area-System.Net HttpClient (libcurl + SecureTransport) client certificate support (macOS) Did a bit of digging on how libcurl with SecureTransport on macOS loads it's client side certificate, and it seems it can be loaded from a file on disk or from a label in keychain. https://github.com/curl/curl/blob/33cfcfd9f0378625d3bddbd2c8ac5aad4b646f26/lib/vtls/darwinssl.c#L1354 Given how X509Certificate2 does it certificate handling on windows would it be possible to something similar: Approach 1: 1. Save the certificate on import to a temp folder encrypted with a random generated password stored with X509Certificate2 object. 2. Pass the file location and random password to libcurl. Approach 2. 1. Load the certificate into the keychain and get back label save with with X509Certificate2 object. 2. Pass label to libcurl. I would be happy to give either option a go if I got a bit of help to get started. +18875 area-System.Net Root cause System.Net.Http test failures on NETFX Finished investigation of failures on .NET Framework for System.Net.Http. Added specific NETFX test changes where necessary. Opened up additional bugs for investigation. Added missing parameter validation for HttpClientHandler.MaxConnectionsPerServer for the net46 OOB. This matches .NET Core now. Removed some test code that was incorrectly trying to do CredentialCache.Add() with a 'basic' authtype and using DefaultCredentials. This is invalid and throws exception on netfx. Added #18870. Remove PlatformNotSupportedProxy test code. It was throwing an exception on netfx and the purpose of it didn't seem to make sense in the one test that was using it. Fixes #17691. +18877 area-System.Runtime [netcoreapp2.0] 'AppDomain.CurrentDomain.GetAssemblies()' doesn't return the emitted dynamic assembly "`AppDomain.CurrentDomain.GetAssemblies()` doesn't return dynamically emitted assemblies. **Repro** ```c# using System; using System.Reflection; using System.Reflection.Emit; namespace Sample { class Program { static void Main(string[] args) { AssemblyName aName = new AssemblyName(""Microsoft.PowerShell.Cmdletization.GeneratedTypes""); AssemblyBuilder ab = AssemblyBuilder.DefineDynamicAssembly(aName, AssemblyBuilderAccess.Run); ModuleBuilder mb = ab.DefineDynamicModule(aName.Name); string fullEnumName = ""Microsoft.PowerShell.Cmdletization.GeneratedTypes.TestEnum""; Type underlyingType = typeof(Int32); EnumBuilder eb = mb.DefineEnum(fullEnumName, TypeAttributes.Public, underlyingType); eb.DefineLiteral(""Single"", 0); eb.DefineLiteral(""Multiple"", 1); TypeInfo ti = eb.CreateTypeInfo(); Console.WriteLine(""Dynamic assembly emitted: {0}"", ti.Assembly.FullName); bool isEmittedAssemblyFound = false; var allAssemblies = AppDomain.CurrentDomain.GetAssemblies(); foreach (Assembly item in allAssemblies) { if (item.FullName == ti.Assembly.FullName) { isEmittedAssemblyFound = true; Console.WriteLine(""Found it""); break; } } if (!isEmittedAssemblyFound) { Console.WriteLine(""AppDomain.CurrentDomain.GetAssemblies() doesn't return the emitted dynamic assemlby""); } } } } ``` **Expected Result** The program prints `Found it` **Actual Result** ``` Dynamic assembly emitted: Microsoft.PowerShell.Cmdletization.GeneratedTypes, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null AppDomain.CurrentDomain.GetAssemblies() doesn't return the emitted dynamic assemlby ``` Aren't dynamically emitted assembly loaded in the default assembly load context? Why `AppDomain.CurrentDomain.GetAssemblies()` not returning them?" +18879 area-Serialization Improving performance of XML Serializer This improves the speed of writing the indents when writing XML. +18881 area-System.Diagnostics Activity: Reverse root Id to make it work better with hashing algorithms See #18418 for more details. /cc @vancem @Dmitry-Matveev @SergeyKanzhelev +18882 area-System.Security RSA.ImportParameters: should compute optional parameters? Currently when optional parameter is missing (i.e. DP) we throw an exception on Core (Cng on Desktop ignores optional parameters). Those can theoretically be computed but that could potentially open window for timing attacks in some scenarios. Should we compute those parameters, create a new API for computing missing parameters or not support it? (or possibly add some mitigation against those - not sure how since even with random timeout you could still calculate average time which would void the randomness) Related issue: https://github.com/dotnet/corefx/issues/18846 - please fix before closing cc: @bartonjs @morganbr +18883 area-System.Reflection GetMetadataReader() throws BadImageFormatException "Repro, ```c# var assemblyPath = ""C:\\temp\\Microsoft.AspNetCore.Mvc.dll""; using (var stream = File.Open(assemblyPath, FileMode.Open)) { //var assembly = AssemblyLoadContext.Default.LoadFromStream(stream); // This works! var provider = MetadataReaderProvider.FromMetadataStream(stream); var reader = provider.GetMetadataReader(); // throws - Invalid COR20 header signature. var attributes = reader.CustomAttributes; } ``` I am trying to read some assembly attributes without loading it. But when I try to call `GetMetadataReader()`, I get `BadImageFormatException: 'Invalid COR20 header signature.'` Related issue: https://github.com/dotnet/corefx/issues/1050" +18886 area-System.ComponentModel Fix System.ComponentModel.Annotations test bug Looks like in: https://github.com/dotnet/corefx/pull/17874 this test was added but as it was a difference in behavior and it was copied over from the .Net Core one we missed to update the expected exception to what it actually throws, look at the test name. Fixes: https://github.com/dotnet/corefx/issues/18542 cc: @danmosemsft @lajones @divega +18887 area-System.Diagnostics Add HTTP Correlation protocol We created HTTP Correlation protocol as a part of correlation feature: it describes Id format and generation (that is implemented in `System.Diagnostics.Activity`) and HTTP headers that carry `Activity.Id` and `Activity.Baggage` (used in System.Net.Http and Asp.Net Core). The protocol will be submitted to IETF, but until it's officially published as RFC, we want to store it in corefx repo unless someone has a better suggestion. /cc @vancem @SergeyKanzhelev +18888 area-System.IO IO tests need conditionalized for new behavior to run correctly on desktop Tests need split up and results need conditionalized on the relevant new behavior being enabled. I already wrote a [helper](https://github.com/dotnet/corefx/blob/master/src/System.IO.FileSystem/tests/PathFeatures.cs#L38) for this. It needs moved to common. Creating this issue to tag the various tests against. +18890 area-System.Net Failure in System.Net.Http.Functional.Tests.PostScenarioTest.PostUsingContentLengthSemantics_Success https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_portablelinux_release/lastCompletedBuild/testReport/System.Net.Http.Functional.Tests/PostScenarioTest/PostUsingContentLengthSemantics_Success_serverUri__https___corefx_net_cloudapp_net_Echo_ashx_/ System.Net.Http.Functional.Tests.PostScenarioTest.PostUsingContentLengthSemantics_Success(serverUri: https://corefx-net.cloudapp.net/Echo.ashx) (from (empty)) ``` MESSAGE: System.Net.Http.HttpRequestException : An error occurred while sending the request.\n---- System.Net.Http.CurlException : Problem with the SSL CA cert (path? access rights?) +++++++++++++++++++ STACK TRACE: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.PostScenarioTest.d__22.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.PostScenarioTest.d__12.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous loc ation where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous loc ation where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) ``` +18892 area-System.Security Two CryptoConfig members throw PNSE "@bartonjs comments: ""Wasn’t supported in Mono/Xamarin, and costs a world of pain"" ``` M:System.Security.Cryptography.CryptoConfig.AddAlgorithm(System.Type,System.String[]) M:System.Security.Cryptography.CryptoConfig.AddOID(System.String,System.String[]) ``` If it's not supported in Mono this is not necessarily a must have. Also, useage seems negligible. Please triage to 2.0, Future, or close." +18893 area-System.Collections ConcurrentDictionary OnDeserialized exception With .NET Core 2.0 preview, `ConcurrentDictionary` is throwing an error when `OnDeserialized` is called by Newtonsoft.Json. I would expect `ConcurrentDictionary` either to not throw an error, or throw a better error than `NullReferenceException`. See https://github.com/JamesNK/Newtonsoft.Json/issues/1294 for more details. ``` Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object. at System.Collections.Concurrent.ConcurrentDictionary`2.InitializeFromCollection(IEnumerable`1 collection) at System.Collections.Concurrent.ConcurrentDictionary`2.OnDeserialized(StreamingContext context) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at Newtonsoft.Json.Serialization.JsonContract.InvokeOnDeserialized(Object o, StreamingContext context) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings) at test.Program.Main() ``` In the non netstandard version of Json.NET I avoided this error with a hack by not calling OnDeserialized for this type. It would be nice if ConcurrentDictionary was fixed properly. https://github.com/JamesNK/Newtonsoft.Json/blob/aa5f28c09732db5fb3e316433547ea7cdecd8804/Src/Newtonsoft.Json/Serialization/DefaultContractResolver.cs#L890 +18894 area-System.Security Two X509 members throw PNSE on non Windows "``` M:System.Security.Cryptography.X509Certificates.X509Chain.#ctor(System.IntPtr) // mac and unix M:System.Security.Cryptography.X509Certificates.X509Store.#ctor(System.IntPtr) // linux ``` ~0% usage in our corpuses. @bartonjs mentioned the former is ""tricky on mac"". Please triage for 2.0. " +18896 area-System.Security CspParameters.KeyPassword throws PNSE and should not This throws PNSE because it accepts SecureString which was not available earlier. It should be enabled ``` P:System.Security.Cryptography.CspParameters.KeyPassword ``` The implementation is trivial, `public SecureString KeyPassword { get; set; }` . In Desktop, it's used only by an internal method we do not have. So it's low priority to implement this, nevertheless it is an unnecessary public break. +18898 area-System.Security PKCS1MaskGenerationMethod limited to SHA1 -- desktop is not "PKCS1MaskGenerationMethod.HashName will not accept any value other than ""SHA1"" (or null). Otherwise it throws PNSE. In desktop it accepted any value, and would then pass it to `CryptoConfig.CreateFromName(HashNameValue);` I see ~0% usage. Is this limitation acceptable for 2.0? " +18899 area-Serialization "Desktop: XmlDictionaryWriterTest.XmlBaseWriter_WriteStartEndElementAsync failed with ""System.NotImplementedException""" Failed test: XmlDictionaryWriterTest.XmlBaseWriter_WriteStartEndElementAsync Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/30/testReport/(root)/XmlDictionaryWriterTest/XmlBaseWriter_WriteStartEndElementAsync/ MESSAGE: ~~~ System.NotImplementedException : The method or operation is not implemented. ~~~ STACK TRACE: ~~~ at System.Xml.XmlWriter.WriteStartElementAsync(String prefix, String localName, String ns) at XmlDictionaryWriterTest.XmlBaseWriter_WriteStartEndElementAsync() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Xml\tests\XmlDictionaryWriterTest.cs:line 108 ~~~ +18900 area-System.Net HttpWebRequest.MediaType throws PNSE HttpWebRequest.MediaType throws PNSE on all platforms, without any explanatory message. This has 2% usage in apiport data and 1% in Unity top 100. https://apisof.net/catalog/System.Net.HttpWebRequest.MediaType It's not clear in a quick glance at desktop code what it actually does or how easy it would be to port. Please triage for 2.0 +18901 area-System.Runtime Disable some System.Runtime.Extensions tests Fixes: https://github.com/dotnet/corefx/issues/18828 cc: @danmosemsft @AlexGhiondea @joperezr +18902 area-Serialization "Desktop: XmlDictionaryWriterTest.XmlBaseWriter_CheckAsync_ThrowInvalidOperationException failed with ""Xunit.Sdk.ThrowsException""" Failed test: XmlDictionaryWriterTest.XmlBaseWriter_CheckAsync_ThrowInvalidOperationException Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/30/testReport/(root)/XmlDictionaryWriterTest/XmlBaseWriter_CheckAsync_ThrowInvalidOperationException/ MESSAGE: ~~~ System.AggregateException : One or more errors occurred. ---- Assert.Throws() Failure Expected: typeof(System.InvalidOperationException) Actual: (No exception was thrown) ~~~ STACK TRACE: ~~~ at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at XmlDictionaryWriterTest.XmlBaseWriter_CheckAsync_ThrowInvalidOperationException() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Xml\tests\XmlDictionaryWriterTest.cs:line 138 ----- Inner Stack Trace ----- ~~~ +18903 area-System.Security "Desktop: System.Security.Cryptography.Encryption.Aes.Tests.DecryptorReusabilty.TestDecryptorReusability failed with ""Xunit.Sdk.EqualException""" Failed test: System.Security.Cryptography.Encryption.Aes.Tests.DecryptorReusabilty.TestDecryptorReusability Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/30/testReport/System.Security.Cryptography.Encryption.Aes.Tests/DecryptorReusabilty/TestDecryptorReusability/ MESSAGE: ~~~ Assert.Equal() Failure Expected: Byte[] [20, 48, 113, 173, 237, ...] Actual: Byte[] [20, 15, 15, 16, 17, ...] ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.Encryption.Aes.Tests.DecryptorReusabilty.TestDecryptorReusability() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\DecryptorReusability.cs:line 65 ~~~ +18904 area-System.Net Consolidate common code between HttpListenerRequest in Windows and Managed Steps towards #18486, #18482 and #18128 Best reviewed commit-by-commit to make sense of some of the code movement. @Priya91 +18905 area-System.Net 2 members on WebSocket throw PNSE These are both part of NS2.0. Both show no usage in our data. Please triage to 2.0, future, or close. ```c# public static void RegisterPrefixes() { // The current WebRequest implementation in corefx does not support upgrading // web socket connections. For now, we throw. throw new PlatformNotSupportedException(); } [EditorBrowsable(EditorBrowsableState.Never)] public static WebSocket CreateClientWebSocket(Stream innerStream, string subProtocol, int receiveBufferSize, int sendBufferSize, TimeSpan keepAliveInterval, bool useZeroMaskingKey, ArraySegment internalBuffer) { // ClientWebSocket on Unix is implemented in managed code and can be constructed (internally) // for an arbitrary stream. We could use that implementation here, building it in to the WebSocket // library as well, or accessing it from the client library via reflection. For now, we throw. throw new PlatformNotSupportedException(); } ``` +18906 area-System.Net "Test: System.Net.Tests.HttpListenerRequestTests/IsWebSocketRequest_GetProperty_ReturnsExpected failed with ""Xunit.Sdk.EqualException""" "Opened on behalf of @Jiayili1 The test `System.Net.Tests.HttpListenerRequestTests/IsWebSocketRequest_GetProperty_ReturnsExpected(webSocketString: \""Connection: Upgrade\\r\\nUpgrade: websocket\"", expected: True)` has failed. Assert.Equal() Failure\r Expected: True\r Actual: False Stack Trace: at System.Net.Tests.HttpListenerRequestTests.<>c__DisplayClass12_0.b__0(Socket _, HttpListenerRequest request) at System.Net.Tests.HttpListenerRequestTests.d__29.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.HttpListenerRequestTests.d__12.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170425.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x64 - Debug - Release - Windows.7.Amd64-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170425.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpListenerRequestTests~2FIsWebSocketRequest_GetProperty_ReturnsExpected(webSocketString:%20%5C%22Connection:%20Upgrade%5C%5Cr%5C%5CnUpgrade:%20websocket%5C%22,%20expected:%20True)" +18907 area-System.Net Test failure: System.Net.Sockets.Tests.SendReceiveUdpClient/SendToRecvFromAsync_Datagram_UDP_UdpClient(loopbackAddress: 127.0.0.1) Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.SendReceiveUdpClient/SendToRecvFromAsync_Datagram_UDP_UdpClient(loopbackAddress: 127.0.0.1)` has failed. System.AggregateException : One or more errors occurred. (Assert.True() Failure Expected: True Actual: False) (Assert.True() Failure Expected: True Actual: False) ---- Assert.True() Failure Expected: True Actual: False ---- Assert.True() Failure Expected: True Actual: False Stack Trace: at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Net.Sockets.Tests.SendReceiveUdpClient.SendToRecvFromAsync_Datagram_UDP_UdpClient(IPAddress loopbackAddress) ----- Inner Stack Trace #1 (Xunit.Sdk.TrueException) ----- at System.Net.Sockets.Tests.SendReceiveUdpClient.<>c__DisplayClass0_1.<b__0>d.MoveNext() ----- Inner Stack Trace #2 (Xunit.Sdk.TrueException) ----- at System.Net.Sockets.Tests.SendReceiveUdpClient.<>c__DisplayClass0_1.<b__1>d.MoveNext() Build : Master - 20170425.01 (Portable Core Tests) Failing configurations: - fedora.25.amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170425.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SendReceiveUdpClient~2FSendToRecvFromAsync_Datagram_UDP_UdpClient(loopbackAddress:%20127.0.0.1) +18908 area-System.Text "Test failure: System.Text.RegularExpressions.Tests.RegexGroupTests/Groups(pattern: \""ı\"", input: \""I\"", options: IgnoreCase, cultureInfo: az-Latn-AZ, expectedGroups: [\""I\""])" "Opened on behalf of @Jiayili1 The test `System.Text.RegularExpressions.Tests.RegexGroupTests/Groups(pattern: \""ı\"", input: \""I\"", options: IgnoreCase, cultureInfo: az-Latn-AZ, expectedGroups: [\""I\""])` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.Text.RegularExpressions.Tests.RegexGroupTests.Groups(String pattern, String input, RegexOptions options, CultureInfo cultureInfo, String[] expectedGroups) Build : Master - 20170425.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170425.01/workItem/System.Text.RegularExpressions.Tests/analysis/xunit/System.Text.RegularExpressions.Tests.RegexGroupTests~2FGroups(pattern:%20%5C%22%C4%B1%5C%22,%20input:%20%5C%22I%5C%22,%20options:%20IgnoreCase,%20cultureInfo:%20az-Latn-AZ,%20expectedGroups:%20%5B%5C%22I%5C%22%5D)" +18909 area-System.IO "Test: System.IO.Pipes.Tests.AnonymousPipeTest_Write_ServerOut_ClientIn/WriteZeroLengthBuffer_Nop failed with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `System.IO.Pipes.Tests.AnonymousPipeTest_Write_ServerOut_ClientIn/WriteZeroLengthBuffer_Nop` has failed. System.IO.IOException : Invalid pipe handle. Stack Trace: at System.IO.Pipes.AnonymousPipeClientStream.Init(PipeDirection direction, SafePipeHandle safePipeHandle) at System.IO.Pipes.AnonymousPipeClientStream..ctor(PipeDirection direction, SafePipeHandle safePipeHandle) at System.IO.Pipes.Tests.AnonymousPipeTest_Write_ServerOut_ClientIn.CreateServerClientPair() in E:\A\_work\61\s\corefx\src\System.IO.Pipes\tests\AnonymousPipeTests\AnonymousPipeTest.Write.cs:line 26 at System.IO.Pipes.Tests.PipeTest_Write.d__5.MoveNext() in E:\A\_work\61\s\corefx\src\System.IO.Pipes\tests\PipeTest.Write.cs:line 141 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170425.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170425.01/workItem/System.IO.Pipes.Tests/analysis/xunit/System.IO.Pipes.Tests.AnonymousPipeTest_Write_ServerOut_ClientIn~2FWriteZeroLengthBuffer_Nop +18910 area-Serialization NetCore does not support Canonicalization Tests added and verified passed on netfx : System.Runtime.Serialization.Xml.Canonicalization.Tests.XmlCanonicalizationTest - C14NWriterNegativeTests - TestC14NInclusivePrefixes - ReaderWriter_C14N_DifferentReadersWriters +18911 area-Serialization Xml canonicalization test Add NetCore test for to-be-supported canonicalization feature, active issue #18910. +18912 area-System.Net Consolidate common code in HttpListenerRequest and fix a Managed bug Contributes to #18128 @Priya91 +18915 area-System.Net Consolidate HttpListenerResponse code and fix a managed bug Contributes to #18128 +18916 area-Infrastructure [ARM] Update rootfs for Tizen armel *This PR should be merged only after related PR in coreclr merged. Unless Tizen armel CI for CoreCLR will be broken.* This is required to build CoreCLR for Tizen armel as a part of .NET Core 2.0.0 for Tizen. Existing rootfs for armel Tizen is out-of-dated and not suitable for .NET Core 2.0.0 for Tizen. Two changes are made. * Update rootfs for Tizen armel to recent version * Updates CI for Tizen armel to make use of a prebuilt embedded rootfs as Ubuntu arm does. Related PR : https://github.com/dotnet/coreclr/pull/11202 https://github.com/dotnet/core-setup/pull/2163 +18918 area-Infrastructure Consider changing tests away from Assert "In support of uapaot, several sweeps through our test code have replaced thousands of occurrences of Assert.Throws with AssertExtensions.Throws, which affords us the flexibility to not enforce some of the assertion on certain platforms. And we've added our own assert methods elsewhere. Rather than having a separate ""AssertExtensions"" class in conjunction with the xunit ""Assert"" class, we should consider having a ""CorefxAssert"" type or something like that, with all of the assertion surface area and implementation we need, and switching all of our tests over to it. This will afford us the ability to change the implementation further in the future, and it will help to ensure consistency in the tests. We could even then define our own ""Assert"" class that'll result in warnings due to the conflict with the xunit type, highlighting when folks use the wrong thing." +18919 area-System.Linq Remove unnecessary recursion from two S.L.Expressions methods. +18920 area-System.Linq S.L.Expressions: Consolidate pointer & byref test in ValidateType The majority of calls to `ValidateType` happen along with tests that the type validated isn't a pointer or byref (in the other direction,all pointer checks and the majority of byref checks happen this way). Make these checks part of `ValidateType` with an overload for the minority case where they aren't necessary (allowed or statically known not to be the case). +18922 area-System.IO Feature Request: File System Globbing "I'd like to start a discussion on including a [file system globbing](https://en.wikipedia.org/wiki/Glob_(programming)) API in .NET (Core). If you look at [implementations mentioned on Wikipedia](https://en.wikipedia.org/wiki/Glob_(programming)#Implementations), every ""mainstream platform"" has an entry, but not .NET. There's quite a few (more or less) successful implementations around (see below), some even from Microsoft, but I think something as fundamental as this, should ship with the framework. There's already partial globbing support using the following methods - `Directory.GetFiles` - `Directory.EnumerateFiles` - `Directory.GetFileSystemEntries` - `Directory.EnumerateFileSystemEntries` - `Directory.GetDirectories` - `Directory.EnumerateDirectories` They all have a `searchPattern` argument, but it lacks support for recursive globs (`**` aka. ""globstar""), brace expansion etc. This can be achieved using the `SearchOption` argument, but the API is hard to use when you want to support (often user-defined) recursive patterns like `/src/**/*.csproj`. I'd ❤️ to hear people's opinions here... - Is it worth including in the framework? - Should new APIs be introduced, or can we ""level up"" the existing `searchPattern` in the methods mentioned above (without it being a breaking change)? ## Examples - [**MSBuild**](https://github.com/Microsoft/msbuild/tree/master/src/Build/Globbing) by @cdmihai - [**Cake**](https://github.com/cake-build/cake/blob/develop/src/Cake.Core/IO/Globber.cs) by @patriksvensson - [**Minimatch**](https://github.com/SLaks/Minimatch) (port from JS) by @SLaks - [**Microsoft.Extensions.FileSystemGlobbing**](https://github.com/aspnet/FileSystem/tree/dev/src/Microsoft.Extensions.FileSystemGlobbing) by @troydai - [**Glob**](https://github.com/kthompson/glob) by @kthompson And [tons of other implementations](https://github.com/search?utf8=%E2%9C%93&q=glob+NOT+global+NOT+globe+language%3Ac%23&type=Repositories)..." +18924 area-System.Threading Support controlling thread affinity "**Purpose** Allow control of thread affinity. **Proposed API** ```C# class Thread { ProcessorSet Affinity { get; set; } } ``` The `ProcessorSet` represents a a set of logical processors. The underlying APIs for Windows/Posix use bit masks for this. Windows: https://msdn.microsoft.com/en-us/library/windows/desktop/ms686247(v=vs.85).aspx Posix: http://man7.org/linux/man-pages/man3/pthread_setaffinity_np.3.html On Windows, systems with more than 64 processors are split into groups. Threads cannot use processors which belong to multiple groups. `ProcessorSet` can store the group info. ```C# struct ProcessorSet { int Group { get; set; } // get/set group bool this[int processor] { get; set; } // get/set/clear processor ProcessorSet(minCapacity); // actual capacity may be higher int Capacity { get; } // indexer is valid from [0-Capacity[ // string representation, see below string ToString(); static ProcessorSet Parse(string); static bool TryParse(string, out ProcessorSet); static ProcessorSet ForProcessor(int group, int processor); // set with single processor static ProcessorSet ForProcessor(int processor); // set with single processor } ``` The string representation can be a comma separated list of processors and ranges, prefixed with an optional processor group. E.g: `1`, `1-3,5`, `1:8-10`. **Example** ``` var thread = new Thread(threadStart); thread.Affinity = ProcessorSet.Parse(""0-3""); thread.Start(); ``` **Remarks** This proposal does not consider retrieving information from the OS like the number of groups and the number of processors per group. The total number of processors can be read from `Environment.ProcessorCount`. Posix threads inherit the calling thread affinity. It may be preferable to allow new Threads to run on all processors to avoid surprises. Threads that want to inherit the calling thread priority can explicitly do so: ```c# newThread.Affinity = Thread.CurrentThread.Affinity; ```" +18925 area-Serialization Disable XmlDictionaryWriter test Fixes: https://github.com/dotnet/corefx/issues/18899 See: https://github.com/dotnet/corefx/issues/18899#issuecomment-296928857 cc: @danmosemsft @shmao +18927 area-System.IO Fix IsolatedStorage difference in behavior and fix tests IsolatedStorageFile had some difference in behavior in between .Net Core and desktop where in desktop all the operations over a file/directory would throw `InvalidOperationException` if the file/directory is closed (which is also true if the item is deleted) but in .Net Core we would do an extra check if the item is deleted and throw an `IsolatedStorageException`. This makes desktop and core behave the same. Fixes: https://github.com/dotnet/corefx/issues/18266 Fixes: https://github.com/dotnet/corefx/issues/18803 cc: @danmosemsft @JeremyKuhne @ianhays +18929 area-System.Net Root cause PostScenarioTests (Http) test failures on NETFX "Fixed a test bug in PostAuthHelper which caused the wrong entity-body semantics to get used during the test. This actually exposed a netfx bug dealing with ambiguous semantics (Content-Length vs. chunked). After fixing this test bug, it then exposed a product bug where we leak an InvalidOperationException that isn't wrapped properly by an HttpRequestException. The scenario that exposed this related to POST'ing content that is non-rewindable and having to resubmit the POST due to authentication challenges. This test was passing on .NET Core because the test was written using the wrong assumptions. It failed on .NET Framework which exposed the problem. The InvalidOperationException comes from when a StreamContent's SerializeToStreamAsync method is called and the content needs to be rewound. If the content can't be rewound, then the exception is thrown with the error message ""The stream was already consumed. It cannot be read again."" Updated the WinHttpHandler and CurlHandler to wrap the InvalidOperationException in an HttpRequestException. Updated the test accordingly. Fixes #17621." +18931 area-System.Runtime Improve error message when x86/64 bit dlls are inadvertently used together The current message is bad image format. This doesn't encourage the developer to check for mismatched targets. Additional text can resolve this problem. +18933 area-System.Net Fix netcore WebClient.UploadValuesAsync() UrlEncode behavior Change request body data of .Net Core WebClient from using uppercase hex digits to using lowercase hex digits. Fix #18674 +18934 area-System.Xml Fix Desktop test failures in System.Xml.RW.ReaderSettings.Tests Fixes https://github.com/dotnet/corefx/issues/18812. The failure was due to a behavior change between Desktop and Core, On Desktop, XmlReaderSettings used to read full framework registry keys to decide the default value of entity resolving limit. Default used to be 0 (=unlimited), but is 10 million characters now. [The user can still override it with any value.] Limit should be ON by default - for most of the normal and valid XML documents you should not have problems with limits. cc: @krwq @danmosemsft +18936 area-Infrastructure Add Inbox validation to framework packages We record if assemblies are inbox or not in the packageIndex, so that we know if dependencies need to be emitted to packages containing those assemblies. We validate for 1:1 packages to make sure that if the assembly is inbox it doesn't try to apply an assembly from the package. We generate the inbox list from targeting packs for frameworks that use a targeting pack so validation here isn't necessary. We hand-author the inbox state for package-based frameworks (UAP, NETCoreApp) and are missing validation for this. We should add it to the framework packages to make sure that anything in the ref folder for the framework must be marked inbox in the index. Anything inbox in the index for the framework must also be in the ref folder for that framework. /cc @weshaggard @joperezr +18938 area-System.Data I am new to dotnet core and i want my application to interact with sybase . How to we register the sybase provider in dotnetcore ? "I am new to dotnet core and i want my application to interact with sybase . How do we register the sybase provider in dotnetcore ? providerName=""Sybase.AdoNet4.AseClient""" +18939 area-Infrastructure Emit a assembly graph when analyzing fx packages This will drop a dgml for each framework package when validating the assembly closure. This is useful for understanding which assemblies can be removed from the framework package. /cc @weshaggard @ianhays +18940 area-Infrastructure Helix lacking infrastructure support for running AOT test in app-container. Need infrastructure support to selectively run test in App Container. +18942 area-System.Runtime Remove UAPAOT cheat in BinaryFormatterHelpers.Clone() This disables many binary serialization tests on AoT platforms to reduce test noise until we have a real BinaryFormatter story. +18945 area-System.Security Disable Aes test TestDecryptorReusability when quirk disabled or old netfx Fixes: https://github.com/dotnet/corefx/issues/18903 I've manually tested the test is still being run on Core +18946 area-System.Memory System.Span constructor Span(IntPtr ptr, int offset, int length) Does it make sense to have another constructor overload for Span that takes an IntPtr as well for interop with native libraries and memory? An example of a structure I use for native interop today. ```cs public struct MDBValue { public IntPtr size; public IntPtr data; public byte[] GetBytes() { var buffer = new byte[size.ToInt32()]; Marshal.Copy(data, buffer, 0, buffer.Length); return buffer; } //just demonstrating the problem public Span GetSpan() { var bytes = GetBytes(); //extra allocations this route //alternative is dropping to use unsafe, where at least currently the library doesn't require it return new Span(bytes); } } ``` Ideally, I would be able to do the following instead. ```cs public struct MDBValue { public IntPtr size; public IntPtr data; public Span GetSpan() { return new Span(data, 0, size.ToInt32()); } } ``` Looking at the pointer overload it looks like it's already using an IntPtr internally so I would think it wouldn't be all that difficult to do what I've proposed. I'm not sure though if there are any implications with this approach? +18949 area-System.Diagnostics Light up Process.UseShellExecute when available on Windows "It's on by default in Desktop and always off for Windows in Core: https://github.com/dotnet/corefx/issues/10361 https://github.com/dotnet/corefx/issues/4794 It's has an analogous implementation on Unix https://github.com/dotnet/corefx/pull/4861 The reason it's not in Core is ShellExecuteEx is not available in all OneCore platforms. Also "" ShellExecuteEx needs to run as STA but managed code runs as MTA by default and Thread.SetApartmentState() is not supported on all platforms."" It's a heavily used API: https://apisof.net/catalog/System.Diagnostics.ProcessStartInfo.UseShellExecute eg up to 25% in Unity apps. It's also part of .NET Standard 2.0. So we should consider whether there's a way to light up at lesat part of its functionality when (in the 99% case) we do have ShellExecuteEx available. I'm not sure whether we have any precedent in Core for attempting to use a non-OneCore API. Post 2.0 @stephentoub " +18952 area-System.IO Fix 2 failing IO tests. The MMF test is failing from a purposeful design change around the default FileShare being used in CreateFromFile. The FSW tests are failing intermittently from inconsistency so I'm reverting my recent change to move them to innerloop and reduce their wait time. resolves https://github.com/dotnet/corefx/issues/18630 resolves https://github.com/dotnet/corefx/issues/17725 @safern @danmosemsft +18953 area-System.IO Allow previously not supported GetStore overloads that pass null. The GetStore overloads other than the IsoStorageScope throw PSNE for any input. This commit modifies them to check for null inputs and treat the method as equivalent to a 1-arg GetStore in that case. resolves https://github.com/dotnet/corefx/issues/18706 @JeremyKuhne @billwert +18954 area-System.Numerics Behavior of Math.Cos and Sin of double.MaxValue differs between 32- and 64-bit Windows This is a behavior difference inherited from the underlying C-runtime library functions we are now using. Some of our higher-order functions, like `Complex.Cos`, etc. inherit some quirkiness in their behavior when interacting with `double.MaxValue`. 32-bit Windows: ``` Cos(min) == 0.90578110220707 Cos(max) == 0.90578110220707 Sin(min) == 0.423745908398588 Sin(max) == -0.423745908398588 ``` 64-bit Windows ``` Cos(min) == -0.99998768942656 Cos(max) == -0.99998768942656 Sin(min) == -0.00496195478918406 Sin(max) == 0.00496195478918406 ``` FYI: @tannergooding +18956 area-System.IO Add max Collection size to concurrent test This test is causing OOMs on some test machines because of how many items it adds to the collection. I added a hard upper bound on collection size to avoid this. @mellinoe @danmosemsft resolves https://github.com/dotnet/corefx/issues/17920 +18957 area-System.Data Move some SQL named pipes tests to Functional Tests, since they don't require a server to test against +18959 area-System.Data Merge redundant test cases in SQL parallel transactions test "There were ""Yukon"" and ""Katmai"" tests in this file that were both targeting the same server endpoints, so I just merged them into single test cases." +18960 area-System.Data Move SqlClient BaseProviderAsyncTest to Functional Tests, since it does not need to connect to a test server. Also moved ParametersTest to the SQL folder, since it was the only test left in the ADO folder. +18961 area-System.Runtime Fix GetEnvironmentVariables test desktop failure Fixes: https://github.com/dotnet/corefx/issues/18821 cc: @danmosemsft @stephentoub +18964 area-Serialization Soap encoded serialization fails on a netstandard library when running on Desktop. When using soap encoded serialization on a netstandard library and running on Desktop it fails as Desktop has a difference in behavior where it looks for System types (e.g System.Enum, System.Object) in mscorlib.dll but since it was built against netstandard the types it is loading are from netstandard.dll so costumers would hit an InvalidOperationException like this one: ``` System.InvalidOperationException : Unable to generate a temporary class (result=1). error CS0012: The type 'System.Enum' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. ``` There needs to be a solution here for 2.0 as costumers could be hitting this when using soap encoded serialization on a netstandard library and trying to run it on Desktop. For more information see: https://github.com/dotnet/corefx/pull/18743#issuecomment-296306832 cc: @weshaggard @shmao +18965 area-System.Diagnostics Fixed test under System.Diagnostics.Tracing Fixes: https://github.com/dotnet/corefx/issues/18807 Fixed the test to get the actually resource string from Environment.GetResourceString via reflection on Desktop cc: @danmosemsft @vancem +18966 area-System.Linq CompileDeepTree_NoStackOverflowFast fails StackOverflowException with debug build "@seanshpark commented on [Thu Apr 20 2017](https://github.com/dotnet/coreclr/issues/11122) CoreFX System.Linq.Expressions.Tests teminates with StackOverflowException ``` Discovering: System.Linq.Expressions.Tests Discovered: System.Linq.Expressions.Tests Starting: System.Linq.Expressions.Tests Process is terminating due to StackOverflowException. Aborted (core dumped) ``` Inside, `CompileDeepTree_NoStackOverflowFast` test, it tests the compiler with 100 constant expression with 128KB stack size. I'm running the test with debug version of corerun (release is not stable yet). When I change the stack size to 512K, this method passes. I'm not sure how to think about this problem. **Should I test this with Release version only or is there any other ways to fix this?** Test code in CoreFX ``` [Theory, ClassData(typeof(CompilationTypes))] public static void CompileDeepTree_NoStackOverflowFast(bool useInterpreter) { Expression e = Expression.Constant(0); int n = 100; for (int i = 0; i < n; i++) e = Expression.Add(e, Expression.Constant(1)); Func f = null; // Request a stack size of 128KiB to get very small stack. // This reduces the size of tree needed to risk a stack overflow. // This though will only risk overflow once, so the outerloop test // above is still needed. Thread t = new Thread(() => f = Expression.Lambda>(e).Compile(useInterpreter), 128 * 1024); t.Start(); t.Join(); Assert.Equal(n, f()); } ``` --- @seanshpark commented on [Thu Apr 20 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-295987022) @parjong, do you have any comments to add? --- @seanshpark commented on [Thu Apr 20 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-295987395) @jkotas , could you please help or invite who could be a help? --- @parjong commented on [Thu Apr 20 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-295987746) I do not have much to add. --- @seanshpark commented on [Thu Apr 20 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-295988852) With a same method(without the `Assert.Equal(n, f());` line) run in a console app, gdb stack shows like this. `this=0x0` in `Compiler::compStressCompile` as seems that stack has ran out. ```gdb (gdb) bt #0 0xb17e3ab8 in Compiler::compStressCompile (this=0x0, stressArea=Compiler::STRESS_NONE, weight=0) at /home/maxwell/netcore/coreclr/src/jit/compiler.cpp:3529 #1 0xb19879ec in Compiler::fgMorphTree (this=0x80b3a20, tree=0x80ba2a8, mac=0x0) at /home/maxwell/netcore/coreclr/src/jit/morph.cpp:14681 #2 0xb199c320 in Compiler::fgMorphSmpOp (this=0x80b3a20, tree=0x80ba368, mac=0x0) at /home/maxwell/netcore/coreclr/src/jit/morph.cpp:11434 #3 0xb1987d61 in Compiler::fgMorphTree (this=0x80b3a20, tree=0x80ba368, mac=0x0) at /home/maxwell/netcore/coreclr/src/jit/morph.cpp:14767 #4 0xb199c320 in Compiler::fgMorphSmpOp (this=0x80b3a20, tree=0x80ba428, mac=0x0) at /home/maxwell/netcore/coreclr/src/jit/morph.cpp:11434 ... #61 0xb1987d61 in Compiler::fgMorphTree (this=0x80b3a20, tree=0x80bb8c8, mac=0x0) at /home/maxwell/netcore/coreclr/src/jit/morph.cpp:14767 #62 0xb19b168d in Compiler::fgMorphStmts (this=0x80b3a20, block=0x80b6c34, mult=0xb4460227, lnot=0xb4460226, loadw=0xb4460225) at /home/maxwell/netcore/coreclr/src/jit/morph.cpp:15579 #63 0xb19b2388 in Compiler::fgMorphBlocks (this=0x80b3a20) at /home/maxwell/netcore/coreclr/src/jit/morph.cpp:15864 #64 0xb19b612f in Compiler::fgMorph (this=0x80b3a20) at /home/maxwell/netcore/coreclr/src/jit/morph.cpp:17062 #65 0xb17e8769 in Compiler::compCompile (this=0x80b3a20, methodCodePtr=0xb4460b0c, methodCodeSize=0xb4460f20, compileFlags=0xb4460b20) at /home/maxwell/netcore/coreclr/src/jit/compiler.cpp:4299 ... #75 0xb6cc4036 in CallCompileMethodWithSEHWrapper(EEJitManager*, CEEInfo*, CORINFO_METHOD_INFO*, CORJIT_FLAGS, unsigned char**, unsigned int*, MethodDesc*)::$_4::operator()(CallCompileMethodWithSEHWrapper(EEJitManager*, CEEInfo*, CORINFO_METHOD_INFO*, CORJIT_FLAGS, unsigned char**, unsigned int*, MethodDesc*)::Param*) const (this=0xb4460d10, pParam=0xb4460d18) at /home/maxwell/netcore/coreclr/src/vm/jitinterface.cpp:12126 #76 0xb6cc3ea9 in CallCompileMethodWithSEHWrapper (jitMgr=0x8084cb8, comp=0xb4461050, info=0xb4460fa0, flags=..., nativeEntry=0xb4460f24, nativeSizeOfCode=0xb4460f20, ftn=0xb175a1a0) at /home/maxwell/netcore/coreclr/src/vm/jitinterface.cpp:12169 #77 0xb6cc608e in UnsafeJitFunction (ftn=0xb175a1a0, ILHeader=0x0, flags=..., pSizeOfCode=0xb4461f44) at /home/maxwell/netcore/coreclr/src/vm/jitinterface.cpp:12813 #78 0xb720ff41 in MethodDesc::MakeJitWorker (this=0xb175a1a0, ILHeader=0x0, flags=...) at /home/maxwell/netcore/coreclr/src/vm/prestub.cpp:490 #79 0xb7214505 in MethodDesc::DoPrestub (this=0xb175a1a0, pDispatchingMT=0x0) at /home/maxwell/netcore/coreclr/src/vm/prestub.cpp:1515 #80 0xb6fd2d75 in ReflectionInvocation::CompileMethod (pMD=0xb175a1a0) at /home/maxwell/netcore/coreclr/src/vm/reflectioninvocation.cpp:2006 #81 0xb1778a84 in ?? () ... ... ``` --- @jkotas commented on [Fri Apr 21 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296106368) This test was added by @JonHanna in https://github.com/dotnet/corefx/pull/14444 --- @JonHanna commented on [Fri Apr 21 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296135951) Has something changed in `TryEnsureSufficientExecutionStack` in debug that maybe the test is catching, or is this a test configuration that is new? > When I change the stack size to 512K, this method passes From https://github.com/dotnet/corefx/issues/17550#issuecomment-289816350 it would seem that it'll pass with 512K because it won't test what it's trying to test. What happens with 192K? We could up both the stacksize and the size of the tree compiled to keep it testing what it is there to test without, though that increases execution time and the point is to do a similar job to the slower `CompileDeepTree_NoStackOverflow` without spending so long that it impacts heavily on how long the test suite takes. After a certain point the test no longer earns its keep, especially as there is that slower test being run on outerloop. --- @parjong commented on [Fri Apr 21 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296149779) @JonHanna Yes, this issue comes from a completely new configuration (x86/Linux Debug). CLR has been ported to x86/Linux. Recent CLR unittest result shows that debug build is stable, and thus we attempted to run FX unittest as the next step (checked/release build is under bring up). --- @JonHanna commented on [Fri Apr 21 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296152848) It would be worth temporarily taking the OuterLoop tag off this test's outerloop cousin and seeing if it passes. If that one also fails then the problem is in `TryEnsureSufficientExecutionStack` on that configuration and the tests have found a bug. If that one fails then the innerloop test needs tweaking or disabling. --- @parjong commented on [Fri Apr 21 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296158125) @JonHanna We could run System.Linq.Expressions.Tests without stack overflow if this case is excluded (although there are several failures). --- @JonHanna commented on [Fri Apr 21 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296159405) If `CompileDeepTree_NoStackOverflow` passes (but note that it's outerloop and won't be included in most runs, I'm beginning to think that this test is more trouble than it's worth; anything it catches will still be caught by the outerloop tests, albeit not on most test runs. --- @janvorli commented on [Fri Apr 21 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296169837) Taking a look at how the safe execution stack limit is determined, I can see that it checks for 128kB of remaining stack space on 64 bit architectures, but only for 64kB on 32 bit architectures. Could that be causing the problem? --- @parjong commented on [Fri Apr 21 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296170720) @JonHanna Oops. I mean all the innerloop tests. Sorry for confusion. I will let you know the result when the result is ready (I guess that I could let you know the result in the next Monday). --- @seanshpark commented on [Sun Apr 23 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296496425) > it would seem that it'll pass with 512K because it won't test what it's trying to test. What happens with 192K? Thank you for the explanation. 192K also fails and 384K also but didn't check the number that was working. We'll check the cousin in the outter loop. --- @parjong commented on [Sun Apr 23 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296509077) @JonHanna It turns out that the corresponding outerloop test also fails with the same reason (stack overflow) if debug binary is used. This issue does not happen for checked binary. Is it possible to add some trait that allows us to exclude this test for debug build? We could not use checked binary as checked binary is not stable yet. --- @seanshpark commented on [Sun Apr 23 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296524599) I've also tested and the results are - Debug CoreCLR + CompileDeepTree_NoStackOverflow : Pass - Checked CoreCLR + CompileDeepTree_NoStackOverflow : Pass - Debug CoreCLR + CompileDeepTree_NoStackOverflowFast : Fail - Checked CoreCLR + CompileDeepTree_NoStackOverflowFast : Pass --- @JonHanna commented on [Mon Apr 24 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296587075) > It turns out that the corresponding outerloop test also fails with the same reason (stack overflow) if debug binary is used. If the outerloop test is failing, I'm rather worried that it might be an actual bug in `TryEnsureSufficientExecutionStack` or that it isn't sensitive enough an we can expect other uses of it to have a similar problem. Though @seanshpark found differently to you, which is curious in itself. > Is it possible to add some trait that allows us to exclude this test for debug build? We could of course wrap it in `#if !DEBUG`, but someone else may know of a trait that's applicable. --- @parjong commented on [Mon Apr 24 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296609681) @JonHanna Could you let me know why this test uses ``128kB`` as a limit? As @janvorli mentioned in https://github.com/dotnet/coreclr/issues/11122#issuecomment-296169837, ``TryEnsureSufficientExecutionStack`` returns true if the remaining stack size is 64kB for 32-bit architecture instead of 128kB. --- @seanshpark commented on [Mon Apr 24 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296855992) Sorry for the wrong report. I'v retested with debug version from latest master and both fails. - Debug CoreCLR + CompileDeepTree_NoStackOverflow : Fail - Debug CoreCLR + CompileDeepTree_NoStackOverflowFast : Fail --- @JonHanna commented on [Mon Apr 24 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296857069) Well the idea of the ""fast"" one is to have a small stack so that it quickly risks stack overflow, but TryEnsureSufficientExecutionStack saves the day and it doesn't happen. Clearly not the actual result. The ""slow"" one does the same thing with a more normal stack. If only the fast failed I might give it up as overly artificial, but the slow is triggering conditions that were causing users problems with real code, so I'm much more worried about that. Is there a how-to on the type of build you are doing so I can take a look myself? CC @bartdesmet as the first author of the stackguard code and test. --- @parjong commented on [Mon Apr 24 2017](https://github.com/dotnet/coreclr/issues/11122#issuecomment-296857589) @JonHanna https://github.com/dotnet/coreclr/issues/9265#issuecomment-280521257 provides a brief step-by-step build instruction (you first need to create a root filesystem via running build-rootfs.sh under cross with x86 option). " +18967 area-System.Reflection Delete System.Reflection.AssemblyNameProxyTest This test was failing on desktop, deleting as @AtsushiKan said we can do it as it is a bogus test. See: https://github.com/dotnet/corefx/issues/18829#issuecomment-296782158 Fixes: #18829 cc: @danmosemsft +18968 area-System.IO Disable System.IO.BinaryReader netcoreapp specific test on desktop Fixes: https://github.com/dotnet/corefx/issues/18813 cc: @ianhays @JeremyKuhne @danmosemsft +18969 area-System.Security "Test: System.Security.Cryptography.Hashing.Algorithms.Tests.InvalidUsageTests/InvalidHashCoreArgumentsFromDerivedType failed with ""System.ArgumentException""" Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.Hashing.Algorithms.Tests.InvalidUsageTests/InvalidHashCoreArgumentsFromDerivedType` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentOutOfRangeException)\r Actual: typeof(System.ArgumentException): Value was invalid. Stack Trace: at System.Security.Cryptography.HashAlgorithm.TransformBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[] outputBuffer, Int32 outputOffset) at System.Security.Cryptography.HMAC.HashCore(Byte[] rgb, Int32 ib, Int32 cb) at System.Security.Cryptography.Hashing.Algorithms.Tests.InvalidUsageTests.DerivedHMACSHA1.ExposedHashCore(Byte[] rgb, Int32 ib, Int32 cb) in E:\A\_work\82\s\corefx\src\System.Security.Cryptography.Algorithms\tests\InvalidUsageTests.cs:line 41 at System.Security.Cryptography.Hashing.Algorithms.Tests.InvalidUsageTests.<>c__DisplayClass0_0.b__2() in E:\A\_work\82\s\corefx\src\System.Security.Cryptography.Algorithms\tests\InvalidUsageTests.cs:line 19 Build : Master - 20170426.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x64-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170426.01/workItem/System.Security.Cryptography.Algorithms.Tests/analysis/xunit/System.Security.Cryptography.Hashing.Algorithms.Tests.InvalidUsageTests~2FInvalidHashCoreArgumentsFromDerivedType +18970 area-System.Security "Test: System.Security.Permissions.Tests.ApplicationTrustTests/ApplicationTrustCollectionCallMethods failed with ""System.ArgumentException""" Opened on behalf of @Jiayili1 The test `System.Security.Permissions.Tests.ApplicationTrustTests/ApplicationTrustCollectionCallMethods` has failed. System.ArgumentException : An ApplicationTrust must have an application identity before it can be persisted. Stack Trace: at System.Security.Policy.ApplicationTrustCollection.Add(ApplicationTrust trust) at System.Security.Permissions.Tests.ApplicationTrustTests.ApplicationTrustCollectionCallMethods() in E:\A\_work\82\s\corefx\src\System.Security.Permissions\tests\ApplicationTrustTests.cs:line 17 Build : Master - 20170426.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x64-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170426.01/workItem/System.Security.Permissions.Tests/analysis/xunit/System.Security.Permissions.Tests.ApplicationTrustTests~2FApplicationTrustCollectionCallMethods +18971 area-System.Security "Test: System.Security.Permissions.Tests.ApplicationTrustTests/ApplicationTrustEnumeratorCallMethods failed with ""System.NullReferenceException""" Opened on behalf of @Jiayili1 The test `System.Security.Permissions.Tests.ApplicationTrustTests/ApplicationTrustEnumeratorCallMethods` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Security.Policy.ApplicationTrustEnumerator.MoveNext() at System.Security.Permissions.Tests.ApplicationTrustTests.ApplicationTrustEnumeratorCallMethods() in E:\A\_work\82\s\corefx\src\System.Security.Permissions\tests\ApplicationTrustTests.cs:line 33 Build : Master - 20170426.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x86-Release - x64-Release - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170426.01/workItem/System.Security.Permissions.Tests/analysis/xunit/System.Security.Permissions.Tests.ApplicationTrustTests~2FApplicationTrustEnumeratorCallMethods +18972 area-System.Net Add option to HttpClientHandler to validate certificates against custom root certificate authorities "To validate a server certificate against a set of root certificates (instead of the system certificates), we are now limited to using ServerCertificateCustomValidationCallback. Unfortunately this callback does not work on all systems due to incompatibilities described in #9728, and it seems there are some blockers to fixing them on some platforms. It may be easier for users to just be able to provide a file path to a set of root certificates (encoded as PEM), or have another API to provide custom root certificates to use for validation instead of the system root certificates. One idea suggested in https://github.com/dotnet/corefx/issues/9728#issuecomment-297201090 is: ``` httpHandler.ServerCertificateRootCaFile = ""/.../ca.pem""; ``` Another option would be to provide custom instances of `X509Certificate2`." +18973 area-System.Collections "Test: System.Collections.ObjectModel.Tests.KeyedCollection_Serialization/SerializeDeserialize_Roundtrips failed with ""Xunit.Sdk.NotSameException""" "Opened on behalf of @Jiayili1 The test `System.Collections.ObjectModel.Tests.KeyedCollection_Serialization/SerializeDeserialize_Roundtrips(c: [\""hello\"", \""world\""])` has failed. Assert.NotSame() Failure Stack Trace: at System.Collections.ObjectModel.Tests.KeyedCollection_Serialization.SerializeDeserialize_Roundtrips(TestCollection c) Build : Master - 20170426.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170426.01/workItem/System.ObjectModel.Tests/analysis/xunit/System.Collections.ObjectModel.Tests.KeyedCollection_Serialization~2FSerializeDeserialize_Roundtrips(c:%20%5B%5C%22hello%5C%22,%20%5C%22world%5C%22%5D)" +18974 area-System.Security system.security.cryptography.xml.tests failed https://ci.dot.net/job/dotnet_corefx/job/master/job/debian8.4_release/2089/consoleFull#178427296579fe3b83-f408-404c-b9e7-9207d232e5fc +18975 area-Serialization "Desktop: DataContractSerializerTests.DCS_BasicRoundtripDCRVerifyWireformatScenarios failed with ""System.IO.FileLoadException""" Failed test: DataContractSerializerTests.DCS_BasicRoundtripDCRVerifyWireformatScenarios Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/31/testReport/(root)/DataContractSerializerTests/DCS_BasicRoundtripDCRVerifyWireformatScenarios/ MESSAGE: ~~~ System.IO.FileLoadException : Could not load file or assembly 'http:\\/\\/Microsoft.ServiceModel.Samples' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047) ---- System.IO.FileLoadException : The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047) ~~~ STACK TRACE: ~~~ at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type) at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName) at System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark) at System.Type.GetType(String typeName) at SerializationTestTypes.WireFormatVerificationResolver.ResolveName(String typeName, String typeNamespace, Type declaredType, DataContractResolver KTResolver) in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Xml\tests\SerializationTestTypes\DataContractResolverLibrary.cs:line 165 at System.Runtime.Serialization.XmlObjectSerializerContext.ResolveDataContractFromDataContractResolver(XmlQualifiedName typeName, Type declaredType) at System.Runtime.Serialization.XmlObjectSerializerContext.ResolveDataContractFromKnownTypes(String typeName, String typeNs, DataContract memberTypeContract, Type declaredType) at System.Runtime.Serialization.XmlObjectSerializerContext.IsKnownType(DataContract dataContract, Type declaredType) at System.Runtime.Serialization.KnownTypeDataContractResolver.TryResolveType(Type type, Type declaredType, DataContractResolver knownTypeResolver, XmlDictionaryString& typeName, XmlDictionaryString& typeNamespace) at SerializationTestTypes.WireFormatVerificationResolver.TryResolveType(Type dcType, Type declaredType, DataContractResolver KTResolver, XmlDictionaryString& typeName, XmlDictionaryString& typeNamespace) in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Xml\tests\SerializationTestTypes\DataContractResolverLibrary.cs:line 145 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.ResolveType(Type objectType, Type declaredType, XmlDictionaryString& typeName, XmlDictionaryString& typeNamespace) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteResolvedTypeInfo(XmlWriterDelegator writer, Type objectType, Type declaredType) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteTypeInfo(XmlWriterDelegator writer, DataContract contract, DataContract declaredContract) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithXsiType(XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle objectTypeHandle, Type objectType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle, Type declaredType) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) at WriteCharlieToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , ClassDataContract ) at System.Runtime.Serialization.ClassDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.InternalSerialize(XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) at WriteWireformat1ToXml(XmlWriterDelegator , Object , XmlObjectSerializerWriteContext , ClassDataContract ) at System.Runtime.Serialization.ClassDataContract.WriteXmlValue(XmlWriterDelegator xmlWriter, Object obj, XmlObjectSerializerWriteContext context) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType(DataContract dataContract, XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) at System.Runtime.Serialization.DataContractSerializer.InternalWriteObjectContent(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.DataContractSerializer.InternalWriteObject(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions(XmlWriterDelegator writer, Object graph, DataContractResolver dataContractResolver) at System.Runtime.Serialization.XmlObjectSerializer.WriteObject(XmlDictionaryWriter writer, Object graph) at System.Runtime.Serialization.XmlObjectSerializer.WriteObject(Stream stream, Object graph) at DataContractSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractSerializerSettings settings, Func`1 serializerFactory, Boolean skipStringCompare) in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 2927 at DataContractSerializerTests.DCS_BasicRoundtripDCRVerifyWireformatScenarios() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 2897 ----- Inner Stack Trace ----- at System.Reflection.AssemblyName.nInit(RuntimeAssembly& assembly, Boolean forIntrospection, Boolean raiseResolveEvent) at System.Reflection.AssemblyName..ctor(String assemblyName) at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName) ~~~ +18976 area-Meta Unable to run new app: System.DllNotFoundException: Unable to load DLL 'api-ms-win -core-registry-l1-1-0.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) Sorry if that has been previously addressed or answered, could not find an applicable solution. The default generated web app with visual studio. ``` C:\Projects\DotNetCoreTest\WebApplication\WebApplication\bin\Debug\netcoreapp1.1 \win10-x64>C:\Projects\DotNetCoreTest\WebApplication\WebApplication\bin\Debug\ne tcoreapp1.1\win10-x64\WebApplication.exe Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'api-ms-win -core-registry-l1-1-0.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Interop.mincore.RegOpenKeyEx(SafeRegistryHandle hKey, String lpSubKey, Int 32 ulOptions, Int32 samDesired, SafeRegistryHandle& hkResult) at Microsoft.Win32.RegistryKey.InternalOpenSubKeyCore(String name, RegistryRi ghts rights, Boolean throwOnPermissionFailure) at Microsoft.AspNetCore.DataProtection.RegistryPolicyResolver.ResolveDefaultP olicy() at Microsoft.Extensions.DependencyInjection.DataProtectionServices.d__0.MoveNext() at Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionDescr iptorExtensions.TryAdd(IServiceCollection collection, IEnumerable`1 descriptors) at Microsoft.Extensions.DependencyInjection.DataProtectionServiceCollectionEx tensions.AddDataProtection(IServiceCollection services) at Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcCoreBuilderExte nsions.AddViewServices(IServiceCollection services) at Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcCoreBuilderExte nsions.AddViews(IMvcCoreBuilder builder) at Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.Ad dMvc(IServiceCollection services) at WebApplication.Startup.ConfigureServices(IServiceCollection services) in C :\Projects\DotNetCoreTest\WebApplication\WebApplication\Startup.cs:line 33 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(ISer viceCollection services) at Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices() at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication() at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build() at WebApplication.Program.Main(String[] args) in C:\Projects\DotNetCoreTest\W ebApplication\WebApplication\Program.cs:line 14 ``` +18978 area-System.Data Add Oracle ODBC - CI dependencies for testing Please consider adding x-platform Oracle ODBC testing to CI https://github.com/dotnet/corefx/issues/15776 https://github.com/dotnet/corefx/issues/13035 +18980 area-Serialization Disable XmlDictionaryWriter async tests Fixes: https://github.com/dotnet/corefx/issues/18899 cc: @shmao +18984 area-System.Diagnostics Fix and Reenable EventSource tests on Desktop Runtime In PR #18965 some EventSource tests were disabled on Destkop because the tests were looking at internal items that were not on the Desktop runtime This issue tracks fixing the test and enable these tests on Desktop @brianrob +18985 area-System.Security Make the OSX mutable store tests skip on OSStatus -61. "Something about the hosting model in Helix is causing it to always fail with errSecWrPerm (-61). I can reproduce this problem by making ~/Library/Keychains readonly (u-w); and I can produce other problems using ssh and sudo, but I can't quite reproduce a hosting model problem which produces errSecWrPerm. So ""run"" one of the tests, and if it fails with CryptographicException(-61) then don't run the tests. If it fails for any other reason, run the tests to get the telemetry. Fixes #17422." +18993 area-Serialization XmlSerializerTests.Xml_TypeWithDateTimePropertyAsXmlTime Failed on Netfx "The test failed when targeting `netfx`. ``` Test failed for input: SerializationTypes.TypeWithDateTimePropertyAsXmlTime Expected: 15:15:26.9870000Z Actual: 15:15:26.9870000-07:00 ```" +18994 area-System.Security Provide API XmlDsigC14NTransform.GetCanonicalBytes without need for hashalgorithm The current API public override byte[] GetDigestedOutput(HashAlgorithm hash) requires the user to have a HashAlgorithm. This makes extensibility a bit harder since the HashAlgorithm would have to be derived for special handling. In IdentityModel we choose to simply write the canonicalized bytes into a stream allowing processing later. https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/WsFed/src/Microsoft.IdentityModel.Xml/ExclusiveCanonicalizationTransform.cs#L119 +18996 area-System.Data Remove ActiveIssue attributes from some SQL tests, since the associated issues have been closed. +18997 area-System.Data SqlClient hangs while opening connection on localdb with MARS enabled "csproj ``` Exe netcoreapp2.0 ``` Program.cs ``` using System; using System.Data.SqlClient; namespace SqlClientIssue { class Program { static void Main(string[] args) { Console.WriteLine(""Start!""); //AppContext.SetSwitch(""System.Data.SqlClient.UseLegacyNetworkingOnWindows"", true); var connectionString = @""Data Source=(localdb)\MsSqlLocalDb;Database=master;Connect Timeout=5;MultipleActiveResultSets=true""; using (var connection = new SqlConnection(connectionString)) { connection.Open(); Console.WriteLine(""ServerVersion: {0}"", connection.ServerVersion); Console.WriteLine(""State: {0}"", connection.State); } Console.WriteLine(""Hello World!""); } } } ``` Expected output: Successful run. Actual output: Program hangs after printing Start!. No communication is received by SqlServer (using Sql Profiler) dotnet ``` .NET Command Line Tools (2.0.0-preview1-005846) Product Information: Version: 2.0.0-preview1-005846 Commit SHA-1 hash: 6dd6192155 Runtime Environment: OS Name: Windows OS Version: 10.0.14393 OS Platform: Windows RID: win10-x64 Base Path: C:\Users\smpatel\.dotnet\x64\sdk\2.0.0-preview1-005846\ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview1-002061-00 Build : 2b70ec9c3b014af0c2a5f45de0e5b73a1ae51c09 ``` SqlServer version 13.0.2151 The program runs fine with one of the following changes. - Using external server instead of localdb - Disabling MARS - Using System.Data.Common 4.3.0 package - Using native code for connection via `AppContext.SetSwitch(""System.Data.SqlClient.UseLegacyNetworkingOnWindows"", true);`" +19000 area-System.Security Re-enable some Principal tests These tests are failing when run on an account that is not domain joined. This PR makes the Theory a ConditionalTheory based on whether we can get an AccountDomainSid so that these tests can be run and pass when not run as local admin. resolves https://github.com/dotnet/corefx/issues/15436 resolves https://github.com/dotnet/corefx/issues/15421 +19001 area-System.Net Doc: workaround guidance for #8538 regarding multiple TLS protocols "Need to write documentation guidance for workaround for #8538. ""WinHttpHandler not updating response state with error from server when client supports multiple TLS protocols""" +19003 area-System.Data Add SqlClient test cases for MARS over Named Pipes CC @saurabh500 +19004 area-Infrastructure Archive all of the binaries in outerloop CI jobs. We aren't actually archiving the binaries in outerloop jobs. We only do this for innerloop jobs. I've copied over the logic to do that. +19005 area-System.Net Disable HttpListener WebSocket test on Windows 7 "HttpListener on Windows platforms requires ""websocket.dll"" native component in order for WebSocket upgrade to work. And Windows platforms before Windows 8 did not have that component. Fixes #18906." +19007 area-Infrastructure Move local corefx targets/tasks to BuildTools This change mostly deals with moving Tools-Override and CoreFxTools task library to BuildTools and consuming them from there instead. We should not merge this until the associated BuildTools PR is merged. https://github.com/dotnet/buildtools/pull/1460. I did publish a private package for this BuildTools version to test it but we shouldn't merge with that private buildtools being referenced. +19009 area-System.Net Tweak the SendAsync_ExpectedDiagnosticCancelledActivityLogging test A few tweaks to hopefully either fix the test(s) or at least help to further isolate the cause for the hangs. Closes https://github.com/dotnet/corefx/issues/16610 +19010 area-System.Diagnostics Fix downgrade warnings about TraceEvent package Fixes https://github.com/dotnet/corefx/issues/18836. cc @stephentoub @drewscoggins @jorive @brianrob +19012 area-System.IO Fix some System.IO.PathTests on Desktop to support legacy path behavior Fixes: #18827 Fixes: #18799 Fixes: #18717 Contributes: #18888 cc: @danmosemsft @JeremyKuhne @ianhays +19013 area-System.Security Change tests to properly generate RSA (CSP) key on netfx Fixes: https://github.com/dotnet/corefx/issues/18811 General issue: https://github.com/dotnet/corefx/issues/12388 +19016 area-System.Collections Calling methods on default(ImmutableArray) unpredictable on UwpAOT "This helper (ImmutableArray.ThrowNullRefIfNotInitialized()) is supposed to ensure a NullReferenceException if you call a method on an uninitialized ImmutableArray. It's coded to be performant. On .NET Native (with ""/buildtype:ret"" passed to ILC), it's **really** performant. As in, it gets optimized away entirely. As a result, many tests in System.Collections.Immutable.Tests that test this guard fail. cc @davidwrighton - in case he has any guidance on how to avoid this. " +19017 area-System.Security Simplify X509Chain building with OpenSSL While looking into why some chain errors show on all certificates, vs just the ones where the problem originates, I ran across some information that would have simplified the work of building chains long ago. By providing the candidates set (including the values from ChainPolicy.ExtraStore) and the trusted store (the union of the CurrentUser\Root and LocalMachine\Root stores) in separate collections OpenSSL will tell us when the root was trusted or not. So we should do that, and get rid of our post-facto decision that says the root was not trusted after all. The error codes getting copied in multiple positions was an artifact of the callback being called at the end with `ok=1`. Most of the time the X509StoreCtxGetError value has been cleared to `X509_V_OK`, but some of them remain. By only reading error codes when `ok=0` they're not only placed on the element where we first read them. There's a fair body of tests which already verify LM\Root trust; and I manually verified behaviors with CU\Root. +19019 area-System.Threading Build System.Threading.Overlapped on uapaot +19021 area-System.Security Make RSASignaturePadding a required parameter for RSA certs "In the original API design we went back and forth on having a default for RSASignaturePadding. In the end we landed on convenience, and defaulted it to Pkcs1 (v1.5) padding since that is the most widely supported. Some additional feedback was given that suggested that we really didn't want to do that, after all, we had nicely made the digest algorithm a required parameter. This change makes RSASignaturePadding a required parameter for creating RSA certificates. As a consequence the Create method which uses a certificate now has more failure modes. 1) Hybrid algorithm signing is currently disallowed. Either ""RSA is special"", or ""you can only sign with the same algorithm so the options make sense"". We are currently using the latter, though they're almost identical given our current support matrix (2 algorithms). 2) Using Create(X509Certificate2) with .ctor(PublicKey) fails for RSA. This one ended up being ""RSA is special"". In this degenerate case we don't have enough data to know if the signing key is using Pkcs1 or PSS, and NIST guidance is to only use a single padding mode with an RSA private key; so we can't make any assumptions. (We can't even assume signed-with-Pkcs1 means signs-with-Pkcs1, unless it's self-signed)" +19022 area-System.Data Add Async flag to SqlClient NamedPipes' PipeStream to resolve an issue with connection hangs while using MARS over NP. Needed to add an Async flag to the NP PipeStream options. Without the async option, connection.Open() hangs forever while waiting on a sync write for sending the MARS SYN packet. +19023 area-System.Security "Desktop: System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests/ValidateDecryptorProperties failed with ""System.Security.Cryptography.CryptographicException""" Failed test: System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests/ValidateDecryptorProperties Message: ~~~ System.Security.Cryptography.CryptographicException : Decrypting a value requires that a key be set on the algorithm object. ~~~ Stack Trace: ~~~ at System.Security.Cryptography.AesCryptoServiceProvider.CreateDecryptor() at System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests.ValidateDecryptorProperties() in E:\A\_work\82\s\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\AES\AesContractTests.cs:line 202 ~~~ Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170427.01/workItem/System.Security.Cryptography.Algorithms.Tests/analysis/xunit/System.Security.Cryptography.Encryption.Aes.Tests.AesContractTests~2FValidateDecryptorProperties +19025 area-System.Net Add missing theory to IsWebSocketRequest_GetProperty_ReturnsExpected @davidsh +19026 area-Serialization Skip Xml_TypeWithDateTimePropertyAsXmlTime on netfx. XmlCustomFormatter.FromTime is quirked, which causes the test to behavior differently on netfx and netcore. See [the method](https://github.com/dotnet/corefx/blob/63e70fa6b1bc6b7175467e0ad16cbbf4c44f8d83/src/System.Private.Xml/src/System/Xml/Serialization/Xmlcustomformatter.cs#L88) for more details. Fix #18993 +19027 area-Serialization Improvements on ReflectionXmlSerializationWriter. The PR reduce the times we use reflection to read object's member value. cc: @mconnew +19028 area-System.Data Test failure: System.Data.SqlClient.Tests.TcpDefaultForAzureTest/NonAzureNoProtocolConnectionTestOnWindows Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.TcpDefaultForAzureTest/NonAzureNoProtocolConnectionTestOnWindows` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: Build : Master - 20170427.01 (Core Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug - Windows.7.Amd64-x64 - Release - Debug - Windows.81.Amd64-x64 - Release - Debug - Windows.7.Amd64-x86 - Debug - Release - Windows.10.Amd64-x86 - Debug - Release - Windows.81.Amd64-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170427.01/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.TcpDefaultForAzureTest~2FNonAzureNoProtocolConnectionTestOnWindows +19029 area-System.IO Add WinRT to SafeFileHandle converters - Adds methods to create SafeFileHandle from IStorageFolder/IStorageFile - Adds test project and tests to S.R.WindowsRuntime This is the implementation of the API for #18759. Note that these Windows APIs are simply helpers that allow getting brokered CreateFile2 access. The methods have additional context and some additional filtering and can broker, but they are effectively equivalent to calling CreateFile2 directly. One specific takeaway is that the handle is independent of the source IStorage item once created. +19030 area-Serialization Try to fix the issue in fedora Fix #18538 @shmao please help review the code Without the fedora environment, I'm not sure if this will work on the fedora system, I just try to make this line of code consistent with other passed test cases. If you have any suggestion please let me know. +19031 area-System.Net Test failure: System.Net.Http.Functional.Tests.ResponseStreamTest/ReadAsStreamAsync_Cancel_TaskIsCanceled Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.ResponseStreamTest/ReadAsStreamAsync_Cancel_TaskIsCanceled` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Net.Http.WinHttpException : The operation has been canceled Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.ResponseStreamTest.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : Master - 20170427.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x86 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170427.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_Cancel_TaskIsCanceled +19032 area-System.Net "Test: System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest/UseCallback_ValidCertificate_ExpectedValuesDuringCallback failed with ""System.Net.Http.HttpRequestException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest/UseCallback_ValidCertificate_ExpectedValuesDuringCallback` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Net.Http.WinHttpException : The operation timed out Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : Master - 20170427.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170427.01/workItem/System.Net.Http.WinHttpHandler.Functional.Tests/analysis/xunit/System.Net.Http.WinHttpHandlerFunctional.Tests.ServerCertificateTest~2FUseCallback_ValidCertificate_ExpectedValuesDuringCallback +19033 area-System.IO ArgumentException from GetFullPath should include the path "In a case such as the below it would be helpful if the message was something like `The path ""C:|"" is not of a legal form.`. Seems reasonable to add it unless there's some kind of information disclosure issue (I don't know why, we don't generally cleanse our exception messages) ``` System.ArgumentException : The path is not of a legal form. Stack Trace : at System.IO.Path.GetFullPath(String path) at System.IO.FileInfo.Init(String fileName) at System.IO.FileInfo..ctor(String fileName) at MonoTests.System.Configuration.ConfigurationManagerTest.OpenExeConfiguration1_UserLevel_PerUserRoamingAndLocal() ```" +19036 area-System.Numerics "Tests under: System.Numerics.Tests.ComplexTests failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Numerics.Tests.ComplexTests/Cos_Advanced(real: -1.79769313486232E+308, imaginary: -1.79769313486232E+308, expectedReal: ∞, expectedImaginary: ∞)` has failed. Failure at line 590. Expected real: 8. Actual real: -8\r Expected: True\r Actual: False Stack Trace: at System.Numerics.Tests.ComplexTests.VerifyRealImaginaryProperties(Complex complex, Double real, Double imaginary, Int32 lineNumber) in E:\A\_work\147\s\corefx\src\System.Runtime.Numerics\tests\ComplexTests.cs:line 1831 at System.Numerics.Tests.ComplexTests.Cos_Advanced(Double real, Double imaginary, Double expectedReal, Double expectedImaginary) in E:\A\_work\147\s\corefx\src\System.Runtime.Numerics\tests\ComplexTests.cs:line 591 Build : Master - 20170427.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x86-Release - x86-Debug - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170427.01/workItem/System.Runtime.Numerics.Tests/analysis/xunit/System.Numerics.Tests.ComplexTests~2FCos_Advanced(real:%20-1.79769313486232E+308,%20imaginary:%20-1.79769313486232E+308,%20expectedReal:%20%E2%88%9E,%20expectedImaginary:%20%E2%88%9E) +19037 area-System.Security "Test: System.Security.Cryptography.Hashing.Algorithms.Tests.HmacSha384Tests/ProduceLegacyHmacValues failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.Hashing.Algorithms.Tests.HmacSha384Tests/ProduceLegacyHmacValues` has failed. Assert.Throws() Failure\r Expected: typeof(System.PlatformNotSupportedException)\r Actual: (No exception was thrown) Stack Trace: at System.Security.Cryptography.Hashing.Algorithms.Tests.HmacSha384Tests.ProduceLegacyHmacValues() in E:\A\_work\147\s\corefx\src\System.Security.Cryptography.Algorithms\tests\HmacSha384Tests.cs:line 0 Build : Master - 20170427.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x86-Release - x86-Debug - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170427.01/workItem/System.Security.Cryptography.Algorithms.Tests/analysis/xunit/System.Security.Cryptography.Hashing.Algorithms.Tests.HmacSha384Tests~2FProduceLegacyHmacValues +19038 area-System.Net "Desktop: System.Net.Http.Functional.Tests.CancellationTest.GetAsync_ResponseContentRead_CancelUsingTimeoutOrToken_TaskCanceledQuickly failed with ""Xunit.Sdk.ThrowsException""" Failed test: System.Net.Http.Functional.Tests.CancellationTest.GetAsync_ResponseContentRead_CancelUsingTimeoutOrToken_TaskCanceledQuickly Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/32/testReport/System.Net.Http.Functional.Tests/CancellationTest/GetAsync_ResponseContentRead_CancelUsingTimeoutOrToken_TaskCanceledQuickly_useTimeout__True__startResponseBody__True_/ Configuration: outerloop_netfx_windows_nt_debug MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.Net.WebException) Actual: typeof(System.OperationCanceledException): The operation was canceled. ~~~ STACK TRACE: ~~~ at System.Net.Http.HttpClient.HandleFinishSendAsyncError(Exception e, CancellationTokenSource cts) in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 506 at System.Net.Http.HttpClient.d__58.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 461 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.CancellationTest.<>c__DisplayClass2_3.<b__2>d.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Http\tests\FunctionalTests\CancellationTest.cs:line 71 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +19039 area-System.Data "Desktop: System.Data.SqlClient.Tests.ExceptionTest.NamedPipeInvalidConnStringTest failed with ""Xunit.Sdk.ContainsException""" Failed test: System.Data.SqlClient.Tests.ExceptionTest.NamedPipeInvalidConnStringTest COnfiguration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/32/testReport/System.Data.SqlClient.Tests/ExceptionTest/NamedPipeInvalidConnStringTest/ MESSAGE: ~~~ Assert.Contains() Failure Not found: (provider: Named Pipes Provider, error: 25 - Connection string is not valid) In value: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) ~~~ STACK TRACE: ~~~ at System.Data.SqlClient.Tests.ExceptionTest.VerifyConnectionFailure[TException](Action connectAction, String expectedExceptionMessage, Func`2 exVerifier) in D:\j\workspace\outerloop_net---903ddde6\src\System.Data.SqlClient\tests\FunctionalTests\ExceptionTest.cs:line 155 at System.Data.SqlClient.Tests.ExceptionTest.VerifyConnectionFailure[TException](Action connectAction, String expectedExceptionMessage) in D:\j\workspace\outerloop_net---903ddde6\src\System.Data.SqlClient\tests\FunctionalTests\ExceptionTest.cs:line 171 at System.Data.SqlClient.Tests.ExceptionTest.OpenBadConnection(String connectionString, String errorMsg) in D:\j\workspace\outerloop_net---903ddde6\src\System.Data.SqlClient\tests\FunctionalTests\ExceptionTest.cs:line 165 at System.Data.SqlClient.Tests.ExceptionTest.NamedPipeInvalidConnStringTest() in D:\j\workspace\outerloop_net---903ddde6\src\System.Data.SqlClient\tests\FunctionalTests\ExceptionTest.cs:line 112 ~~~ +19040 area-System.Security "Desktop: System.Security.Cryptography.Rsa.Tests.ImportExport.ExportAutoKey failed with ""System.Security.Cryptography.CryptographicException""" Failed test: System.Security.Cryptography.Rsa.Tests.ImportExport.ExportAutoKey Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/32/testReport/System.Security.Cryptography.Rsa.Tests/ImportExport/ExportAutoKey/ MESSAGE: ~~~ System.Security.Cryptography.CryptographicException : The requested operation is not supported.\r\n ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.NCryptNative.ExportKey(SafeNCryptKeyHandle key, String format) at System.Security.Cryptography.CngKey.Export(CngKeyBlobFormat format) at System.Security.Cryptography.RSACng.ExportParameters(Boolean includePrivateParameters) at System.Security.Cryptography.Rsa.Tests.ImportExport.ExportAutoKey() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RSA\ImportExport.cs:line 26 ~~~ +19041 area-System.Security "Desktop: System.Security.Cryptography.Rsa.Tests.ImportExport.ImportExport1032 failed with ""System.Security.Cryptography.CryptographicException""" Failed test: System.Security.Cryptography.Rsa.Tests.ImportExport.ImportExport1032 Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/32/testReport/System.Security.Cryptography.Rsa.Tests/ImportExport/ImportExport1032/ MESSAGE: ~~~ System.Security.Cryptography.CryptographicException : Specified key is not a valid size for this algorithm. ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.AsymmetricAlgorithm.set_KeySize(Int32 value) at System.Security.Cryptography.RSACng.set_Key(CngKey value) at System.Security.Cryptography.RSACng.ImportParameters(RSAParameters parameters) at System.Security.Cryptography.Rsa.Tests.ImportExport.ImportExport1032() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RSA\ImportExport.cs:line 132 ~~~ +19042 area-System.Security Reverse ArgumentExceptions changed to CryptographicException (was breaking change) Failed test: System.Security.Cryptography.Rsa.Tests.ImportExport.ImportNoModulus Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/32/testReport/System.Security.Cryptography.Rsa.Tests/ImportExport/ImportNoModulus/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.Security.Cryptography.CryptographicException) Actual: typeof(System.ArgumentException): The specified RSA parameters are not valid; both Exponent and Modulus are required fields. ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.RSACng.ImportParameters(RSAParameters parameters) at System.Security.Cryptography.Rsa.Tests.ImportExport.<>c__DisplayClass10_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RSA\ImportExport.cs:line 263 ~~~ +19044 area-System.Collections ImmutableHashSet<>.HashBucket needs to implement an Equals()/GetHashCode()/IEquatable for perf reasons "ActiveIssued two tests on System.Collections.Immutable.Tests: ``` System.Collections.Immutable.Tests.ImmutableHashSetTest.EnumeratorWithHashCollisionsTest System.Collections.Immutable.Tests.ImmutableHashSetTest.RemoveValuesFromCollidedHashCode ``` Before the panic sets in any further, the fix is simple: ImmutableHashSet<>.HashBucket needs to implement an Equals()/GetHashCode() pair. I strongly recommend that it also implement IEquatable<HashBucket> to remove the boxing penalty. Right now, comparison of HashBuckets falls back to the last-resort Equals() method implemented by System.ValueType. Which uses _Reflection_ to compare the fields of the HashBucket. So even on non-AoT platforms, you're taking a horrendous perf hit. On AoT platforms, the private fields get hidden from Reflection, thus causing Equals() to return true unconditionally. This is causing two tests to fail on AoT, and it's amazing that it's only two. ImmutableHashSetTest.EnumeratorWithHashCollisionsTest ImmutableHashSetTest.RemoveValuesFromCollidedHashCode @morganbr: I'll open a separate TFS item for the toolchain. There's a discoverable call to EqualityComparer<HashBucket>.Default in the code so if that doesn't kick the toolchain into emitting the auto-Equals method for HashBucket, it probably should. Regardless, this issue should also be fixed in System.Collections.Immutable because of the perf hit alone." +19048 area-System.Globalization Get System.Globalization.Calendars.Tests working on AOT The reasons are all too familiar by now... +19051 area-System.Net Remove SafeHandle marshaling from Send/ReceiveAsync operations "In high-throughput situations with asynchronous operations on Sockets, the overhead involved in marshaling SafeHandles is showing up as a non-trivial cost, contributing upwards of 5% overhead to an end-to-end benchmark doing sends and receives on sockets. While the SafeHandles help to avoid certain misuses, a) SafeHandle marshaling (and in particular the implicit use of DangerousAddRef/Release) already isn't being done for synchronous operations (presumably to enable operation cancelation by closing the handle concurrent with the operation), and it's only being done for asynchronous operations during the actual P/Invoke (and thus the SafeHandle isn't ""protected"" while the async operation is in flight). The benefit of the protection isn't worth the cost. This commit removes the marshaling for send/receive operations. Anyone feel strongly for / against this change? cc: @vancem, @geoffkizer, @jkotas, @davidsh, @cipop, @davidfowl " +19052 area-System.Diagnostics Support telemetry correlation for applications running on 4.6 but compiled with 4.5 framework "Diagnostics Source implements a workaround for the HttpClient requests monitoring by injecting code using reflection. This [logic](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/System/Diagnostics/HttpHandlerDiagnosticListener.cs#L614-L651) only compiles for [NET46 library](https://github.com/dotnet/corefx/blob/b0665b6894a3cc0925217b7728bec54b5455dc2c/src/System.Diagnostics.DiagnosticSource/src/System.Diagnostics.DiagnosticSource.csproj#L71-L73): ``` xml ``` This means that customers compiling applications with the framework 4.5 and running an application as Azure Web App or on any other platforms with NET46 installed will not have correlation feature enabled. Please compile this logic for NET45 and use a runtime check for the `System.HttpClient` library version. This will unblock the scenario. /CC: @vancem, @lmolkova " +19053 area-System.Security Stop producing System.Security.Cryptography.Native System.Security.Cryptography.Native.OpenSsl is the only version of the library in use, so let's be done building the older version. Fixes #13124. +19056 area-System.IO "Test: System.IO.Tests.DirectoryInfo_Create/CDriveCase failed with ""System.IO.DirectoryNotFoundException""" In behalf of @Jiayili1, moved from https://github.com/dotnet/corefx/issues/11687#issuecomment-297624327 This issue is repro on UWP F5 Tests, detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170427.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.DirectoryInfo_Create~2FCDriveCase Message : System.IO.DirectoryNotFoundException : Could not find a part of the path 'c:\'. Stack Trace : at System.IO.Win32FileSystem.CreateDirectory(String fullPath) at System.IO.Tests.DirectoryInfo_Create.Create(String path) at System.IO.Tests.Directory_CreateDirectory.CDriveCase() +19057 area-System.Data SqlClient: Exception is thrown with connection pooling with latest package (4.4.0-preview1) Working on a repro project. https://github.com/aspnet/EntityFramework/tree/sqlclient Clone the branch, run `build.cmd /t:Compile` Run test\EFCore.SqlServer.FunctionalTests on netcoreapp2.0 Stack traces Exception 1 happens when calling 'ClearAllPools` ``` Failed Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.SqlServerDatabaseCreatorEnsureCreatedTest.EnsureCreated_can_create_physical_database_with_filename_and_s chema Error Message: System.IO.IOException : Pipe is broken. Stack Trace: at System.IO.Pipes.PipeStream.CheckWriteOperations() at System.IO.Pipes.PipeStream.Flush() at System.Net.Security.AuthenticatedStream.Dispose(Boolean disposing) at System.Net.Security.SslStream.Dispose(Boolean disposing) at System.IO.Stream.Close() at System.Data.SqlClient.SNI.SNINpHandle.Dispose() at System.Data.SqlClient.SNI.TdsParserStateObjectManaged.Dispose() at System.Data.SqlClient.TdsParser.Disconnect() at System.Data.SqlClient.SqlInternalConnectionTds.Dispose() at System.Data.ProviderBase.DbConnectionPool.DestroyObject(DbConnectionInternal obj) at System.Data.ProviderBase.DbConnectionPool.Clear() at System.Data.ProviderBase.DbConnectionFactory.QueuePoolForRelease(DbConnectionPool pool, Boolean clearing) at System.Data.ProviderBase.DbConnectionPoolGroup.Clear() at System.Data.ProviderBase.DbConnectionFactory.ClearAllPools() at Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.Utilities.SqlServerTestStore.DeleteDatabase(String name) in D:\MergeBranch\EntityFramework\test\EFCore.SqlS erver.FunctionalTests\Utilities\SqlServerTestStore.cs:line 267 at Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.Utilities.SqlServerTestStore.Dispose() in D:\MergeBranch\EntityFramework\test\EFCore.SqlServer.FunctionalTe sts\Utilities\SqlServerTestStore.cs:line 445 at Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.SqlServerDatabaseCreatorEnsureCreatedTest.<>c.< b__9_0>d.MoveNext() in D:\MergeBranch\EntityFramework\test\EFCore.SqlServer.FunctionalTests\SqlServerDatabaseCreatorTest.cs:line 320 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.<>c__7`1.<b__7_0>d.MoveNext() in D:\MergeBranch\EntityFramework\src\EFCore\Extensions\Execu tionStrategyExtensions.cs:line 169 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.SqlServerDatabaseCreatorEnsureCreatedTest.d__6.MoveNext() in D:\MergeBranch\EntityFramework\test\EFCore.SqlServer.FunctionalTests\SqlServerDatabaseCreatorTest.cs:line 294 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Another one with same exception happens when calling `OpenAsync` ``` Failed Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.SqlServerDatabaseCreatorEnsureCreatedTest.EnsureCreatedAsync_can_create_physical_database_and_schema Error Message: System.IO.IOException : Pipe is broken. Stack Trace: at System.IO.Pipes.PipeStream.CheckWriteOperations() at System.IO.Pipes.PipeStream.Flush() at System.Net.Security.AuthenticatedStream.Dispose(Boolean disposing) at System.Net.Security.SslStream.Dispose(Boolean disposing) at System.IO.Stream.Close() at System.Data.SqlClient.SNI.SNINpHandle.Dispose() at System.Data.SqlClient.SNI.TdsParserStateObjectManaged.Dispose() at System.Data.SqlClient.TdsParser.Disconnect() at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirec tedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPoo l pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPool Key poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneChe ckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.WaitForPendingOpen() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.d__36.MoveNext() in D:\MergeBranch\EntityFramework\src\EFCore.Relational\Storage\RelationalCo nnection.cs:line 410 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerDatabaseCreator.<>c__DisplayClass20_0.<b__0>d.MoveNext() in D:\MergeBranch\EntityFramework\src \EFCore.SqlServer\Storage\Internal\SqlServerDatabaseCreator.cs:line 162 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at Microsoft.EntityFrameworkCore.Storage.RelationalDatabaseCreator.d__18.MoveNext() in D:\MergeBranch\EntityFramework\src\EFCore.Relational\Storag e\RelationalDatabaseCreator.cs:line 244 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.SqlServerDatabaseCreatorEnsureCreatedTest.d__10.MoveNext() in D:\MergeBranch\Entit yFramework\test\EFCore.SqlServer.FunctionalTests\SqlServerDatabaseCreatorTest.cs:line 334 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.SqlServerDatabaseCreatorEnsureCreatedTest.<>c.< b__9_0>d.MoveNext() in D:\MergeBranch\EntityFramework\test\EFCore.SqlServer.FunctionalTests\SqlServerDatabaseCreatorTest.cs:line 319 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.<>c__7`1.<b__7_0>d.MoveNext() in D:\MergeBranch\EntityFramework\src\EFCore\Extensions\Execu tionStrategyExtensions.cs:line 169 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.SqlServerDatabaseCreatorEnsureCreatedTest.d__7. MoveNext() in D:\MergeBranch\EntityFramework\test\EFCore.SqlServer.FunctionalTests\SqlServerDatabaseCreatorTest.cs:line 301 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [xUnit.net 00:01:36.8622906] Microsoft.EntityFrameworkCore.SqlServer.FunctionalTests.SqlServerDatabaseCreatorEnsureDeletedTest.EnsureDeletedAsync_will_delete_databas e_with_opened_connections [FAIL] ``` MARS = true in both cases. Using package System.Data.SqlClient 4.4.0-preview1-25227-04 Dotnet ``` Product Information: Version: 2.0.0-preview1-005861 Commit SHA-1 hash: e0c0075ccd Runtime Environment: OS Name: Windows OS Version: 10.0.14393 OS Platform: Windows RID: win10-x64 Base Path: C:\Users\smpatel\.dotnet\x64\sdk\2.0.0-preview1-005861\ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview1-002088-00 Build : e264d929481c1713687bc79e862bae275861981c ``` +19058 area-Infrastructure Breaking changes in CoreFx packages due to net461 > ns2.0 mapping "The remapping can cause ref-def mismatches when a NS1.5 or higher library is consumed in net461. For example see https://github.com/aspnet/MusicStore/pull/775#issuecomment-295513922. We could mitigate this by shoving those into the NETStandard.Library.NETFramework package, effectively ""lifting"" the implementation assembly up to the higher version via conflict resolution. Alternatively we do nothing and document that folks should upgrade those packages. @weshaggard @terrajobst, thoughts?" +19059 area-System.Runtime Update RefEmit Test to expect LoadContext for DynamicAssemblies Test update accompanying fix for https://github.com/dotnet/coreclr/issues/11228 CC @jkotas +19060 area-System.Data Disable SqlClient named pipes exception tests when targeted against Framework, since Core throws exceptions with different messages Resolves failures in https://github.com/dotnet/corefx/issues/19039 and https://github.com/dotnet/corefx/pull/17566 +19061 area-System.Security Allow empty authType for ClaimsIdentity This looks like an unintentional change made in porting that introcued a discrepancy between netcoreapp and desktop behavior. On desktop, an empty string as the authenticationtype is allowed. On netcoreapp before this change, authType was set instead null. resolves https://github.com/dotnet/corefx/issues/18814 After this change, all System.Security.Claims tests are passing on netfx and netcoreapp. cc: @bartonjs @krwq +19062 area-System.Reflection Disable RefEmit Test Issue to disable RefEmit test until https://github.com/dotnet/coreclr/pull/11264 makes into CoreFX. Original issue - https://github.com/dotnet/coreclr/issues/11228 +19063 area-System.Runtime Test updates for Array.Copy bugfixes - Disallow conversions between void* and Object (https://github.com/dotnet/coreclr/issues/10646) - Allow conversions between enum and its underlying type (https://github.com/dotnet/corefx/issues/13816) +19066 area-System.Numerics "Add more ""Legacy"" test cases for Complex class" "* These test cases validate legacy .NET Framework behavior, and only run there. Test cases which validate new, correct .NET Core behavior are now skipped on .NET Framework. * Clean up some use of string literals instead of `nameof` in `MemberData` attributes. * Add comments in all of the ""Legacy_TestData"" methods explaining that they are there for .NET Framework compat checks. * Cleaned up some whitespace inconsistency in the file I've done the following test runs: x86 + x64 .NET Core, x64 .NET Framework, all on Windows." +19067 area-Serialization To Fix rd.xml for Serialization Reflection Only Mode #19006 added rd.xml to `System.Runtime.Serialization.*.ReflectionOnly.Tests`, which made many serialization tests to pass in reflection only mode on UWP. The rd.xml, however, include metadata for the entire System.Private.DataContractSerialization, which is not what we want. We need to fix the rd.xml for System.Private.DataContractSerialization to include just the necessary metadata info. +19070 area-System.Security Fix SSL on Debian 9 Debian 9 has dropped support for SSLv3 and so they have bumped their soname to libssl.so.1.0.2. This change adds lookup for that soname and also makes SSLv3_method optional. +19071 area-System.Diagnostics Change xml docs for Activity.OperationName "The new `Activity` type from DiagnosticSource is based on OpenTracing's `span` type. However, I've noticed that Activity's meaning of ""OperationName"" is different than OpenTracing's. Definition from the [OpenTracing specification](https://github.com/opentracing/specification/blob/master/specification.md#start-a-new-span): > An operation name, a human-readable string which concisely represents the work done by the Span (for example, an RPC method name, a function name, or the name of a subtask or stage within a larger computation). The operation name should be the most general string that identifies a (statistically) interesting class of Span instances. That is, ""get_user"" is better than ""get_user/314159"". > > For example, here are potential operation names for a Span that gets hypothetical account information: > > | Operation Name | Guidance | > |--------|--------| > | get | Too general | > | get_account/792 |Too specific | > |get_account | Good, and account_id=792 would make a nice Span tag | With Activity however, the OperationName is used as a compile-time constant that is used for the DiagnosticSource event names - e.g. ""System.Net.Http.HttpRequestOut"". Depending on how much you'd like to follow the OpenTracing standard, it might be good to rename the property to reduce confusion. I think that your usage might come closest to OpenTracing's standard tag ""[component](https://github.com/opentracing/specification/blob/master/semantic_conventions.md#span-tags-table)"" however using that might be confusing as well. Maybe it's best to call it just `Name` (and `activityName` if used as a parameter)?! In the [HttpClient](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/DiagnosticsHandlerLoggingStrings.cs#L17) instrumentation code you already use `ActivityName` anyway. Also, the comment for `Activity.OperationName` still contains an explanation for an OpenTracing-like usage and therefore should be changed as well. ```csharp /// /// An operation name is a COARSEST name that is useful grouping/filtering. /// The name is typically a compile-time constant. Names of Rest APIs are /// reasonable, but arguments (e.g. specific accounts etc), should not be in /// the name but rather in the tags. /// public string OperationName { get; } ``` /cc @lmolkova @vancem " +19072 area-System.Security Disable whole System.Security.Permissions.Tests on netfx Fixes: #18971 Fixes: #18820 Fixes: #18819 Fixes: #18818 Fixes: #18817 Fixes: #18816 Fixes: #18815 Fixes: #18595 cc: @danmosemsft @bartonjs +19074 area-System.Security Skip S.S.C.Rsa test when framework version is smaller than 462 Fixes: #19041 Fixes: #19040 cc: @danmosemsft @ianhays @bartonjs +19075 area-Meta Add Unix core dump debugging instructions I've walked through these steps yesterday and felt that they should be listed in the docs, because a few things are fairly tricky and easy to get wrong. Thanks to @janvorli for giving me most of the guidance listed here. cc: @stephentoub +19076 area-System.Diagnostics "Desktop: System.Diagnostics.Tests.ProcessTests.HandleCountChanges failed with ""Xunit.Sdk.EqualException""" Failed test: System.Diagnostics.Tests.ProcessTests.HandleCountChanges Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/34/testReport/System.Diagnostics.Tests/ProcessTests/HandleCountChanges/ MESSAGE: ~~~ Assert.Equal() Failure Expected: 42 Actual: -532462766 ~~~ STACK TRACE: ~~~ at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Diagnostics\RemoteExecutorTestBase.cs:line 188 at System.Diagnostics.Tests.ProcessTests.HandleCountChanges() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Process\tests\ProcessTests.cs:line 1199 ~~~ +19077 area-System.Net I want to implement Ssl​Stream in Core console application I followed this [Ssl​Stream Class](https://docs.microsoft.com/en-us/dotnet/api/System.Net.Security.SslStream?view=netcore-1.1&viewFallbackFrom=netcore-1.1.0), but it is applied to Core 2.0 which has not been released. Is there any document for Core 1.0 to use SslStream? Thanks for your help. +19078 area-System.Data Exclude flushing stream in SslOverTdsStream if the underlying stream is a PipeStream Pipes can sometimes be disconnected when trying to flush, and PipeStream's flush doesn't actually flush any data. Addresses https://github.com/dotnet/corefx/issues/19057 +19079 area-System.Security "Desktop: System.Security.Cryptography.Rsa.Tests.SignVerify.VerifySignature_SHA1_384 failed with ""System.Security.Cryptography.CryptographicException""" Failed tests: System.Security.Cryptography.Rsa.Tests.SignVerify.VerifySignature_SHA1_384 System.Security.Cryptography.Rsa.Tests.SignVerify.VerifySignature_SHA1_1032 System.Security.Cryptography.Rsa.Tests.SignVerify.ExpectedSignature_SHA1_1032 System.Security.Cryptography.Rsa.Tests.SignVerify.ExpectedSignature_SHA1_384 Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/34/testReport/System.Security.Cryptography.Rsa.Tests/SignVerify/VerifySignature_SHA1_384/ Configuration: outerloop_netfx_windows_nt_debug MESSAGE: ~~~ System.Security.Cryptography.CryptographicException : Specified key is not a valid size for this algorithm. ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.AsymmetricAlgorithm.set_KeySize(Int32 value) at System.Security.Cryptography.RSACng.set_Key(CngKey value) at System.Security.Cryptography.RSACng.ImportParameters(RSAParameters parameters) at System.Security.Cryptography.Rsa.Tests.SignVerify.VerifySignature(Byte[] signature, Byte[] data, String hashAlgorithmName, RSAParameters rsaParameters) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RSA\SignVerify.cs:line 815 at System.Security.Cryptography.Rsa.Tests.SignVerify.VerifySignature_SHA1_384() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RSA\SignVerify.cs:line 276 ~~~ +19080 area-System.Security "Desktop: System.Security.Cryptography.Rsa.Tests.SignVerify.NegativeVerify_BadKeysize failed with ""System.Security.Cryptography.CryptographicException""" Failed test: System.Security.Cryptography.Rsa.Tests.SignVerify.NegativeVerify_BadKeysize Configuration: outerloop_netfx_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/34/testReport/System.Security.Cryptography.Rsa.Tests/SignVerify/NegativeVerify_BadKeysize/ MESSAGE: ~~~ System.Security.Cryptography.CryptographicException : The parameter is incorrect.\r\n ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.NCryptNative.VerifySignature[T](SafeNCryptKeyHandle key, Byte[] hash, Byte[] signature, T& paddingInfo, AsymmetricPaddingMode paddingMode, NCryptSignatureVerifier`1 verifier) at System.Security.Cryptography.NCryptNative.VerifySignaturePkcs1(SafeNCryptKeyHandle key, Byte[] hash, String hashAlgorithm, Byte[] signature) at System.Security.Cryptography.RSACng.VerifyHash(Byte[] hash, Byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) at System.Security.Cryptography.RSA.VerifyData(Byte[] data, Int32 offset, Int32 count, Byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) at System.Security.Cryptography.RSA.VerifyData(Byte[] data, Byte[] signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding) at System.Security.Cryptography.Rsa.Tests.SignVerify.NegativeVerify_BadKeysize() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RSA\SignVerify.cs:line 489 ~~~ +19081 area-System.Security Desktop: System.TypeLoadException: Could not load type 'System.Security.Cryptography.TripleDESCng' from assembly 'System.Security.Cryptography.Cng' Failed test: System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESReusabilityTests.TripleDESReuseEncryptorDecryptor Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/34/testReport/System.Security.Cryptography.Encryption.TripleDes.Tests/TripleDESReusabilityTests/TripleDESReuseEncryptorDecryptor/ MESSAGE: ~~~ System.TypeLoadException : Could not load type 'System.Security.Cryptography.TripleDESCng' from assembly 'System.Security.Cryptography.Cng, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESCngProvider.Create() at System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESFactory.Create() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\TripleDES\TripleDESFactory.cs:line 19 at System.Security.Cryptography.Encryption.TripleDes.Tests.TripleDESReusabilityTests.TripleDESReuseEncryptorDecryptor() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\TripleDES\TripleDESReusabilityTests.cs:line 18 ~~~ +19082 area-System.Net Stop disposing of request content in HttpClient HttpClient on Unix fails for some sites, in cases where the site sends a response before it’s fully received the entirety of the request. That’s because HttpClient has logic to Dispose of the request content once the Task returned from the handler’s SendAsync completes, and unlike WinHTTP, libcurl doesn’t require that the whole request be sent before any of the response is processed. That means that CurlHandler may receive the response (or the response headers), complete the SendAsync task, but still be reading from the request content, which may then be disposed of by HttpClient while it’s still in use, causing potential corruption, exceptions, etc. The Dispose behavior has other problems with it. A more generalized version of the above is that it prevents handlers that want to support full duplex communication, since it essentially requires that the whole request be sent before the response is processed. It also forces extra cost onto consuming code in some situations, as it means that the request content objects can’t be pooled and reused (since disposal typically invalidates objects for such a purpose, though in some cases a custom content could be developed to override and ignore Dispose). A variety of approaches were explored to address this: - Change CurlHandler to only complete the SendAsync Task when both the request has been fully sent and the appropriate portion of the response has been received. This is problematic, though, as with the pull model employed by libcurl, we don’t know reliably when the request has been fully sent. - Change the disposal to be handled by the handlers rather than by HttpClient. This could help in that a handler like CurlHandler could simply defer disposal until libcurl tells it the “easy” operation is done. But it has other downsides. Today code can use an HttpClientHandler without HttpClient, e.g. by using HttpMessageInvoker instead of HttpClient, in which case it bypasses this disposal logic (and other logic provided by the relatively thin HttpClient wrapper). If we were to move the disposal logic to the HttpClientHandler, now such code that was never having its request content disposed will start to, which is bad and exactly the opposite of what we want. It also causes problems for chains of handlers, e.g. if HttpClient is given a handler that wraps CurlHandler, and that handler expects to be able to look at the request content after the SendAsync Task from CurlHandler completes but before it itself completes its SendAsync Task. And while such a scenario may seem far fetched, we effectively have it in the bits today: the diagnostic handler that's used to pass details off to DiagnosticListeners is injected in the middle like this, and it does pass off the request content after the wrapped SendAsync Task completes... if a listener was expecting a non-disposed request content at that point, it would be sorely disappointed. - Simply stop disposing. The primary downside here is existing code that may have expected disposal to happen, e.g. if a StreamContent wrapping a FileStream isn't explicitly disposed of by the app code, cleanup of the FileStream will be left to its finalizer. The least bad option is to simply stop disposing. This PR makes that change. Fixes https://github.com/dotnet/corefx/issues/9006 Fixes https://github.com/dotnet/corefx/issues/16259 Fixes https://github.com/dotnet/corefx/issues/1794 cc: @davidsh, @cipop, @geoffkizer, @Priya91, @davidfowl, @mikeharder +19083 area-System.Net Test failure: System.Net.Tests.HttpWebRequestTest / Abort_BeginGetRequestStreamThenAbort_EndGetRequestStreamThrowsWebException Failed test: System.Net.Tests.HttpWebRequestTest.Abort_BeginGetRequestStreamThenAbort_EndGetRequestStreamThrowsWebException Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/34/testReport/System.Net.Tests/HttpWebRequestTest/Abort_BeginGetRequestStreamThenAbort_EndGetRequestStreamThrowsWebException_remoteServer__http___corefx_net_cloudapp_net_Echo_ashx_/ Configuration: outerloop_netfx_windows_nt_debug MESSAGE: ~~~ Assert.Equal() Failure Expected: 1 Actual: 0 ~~~ STACK TRACE: ~~~ at System.Net.Tests.HttpWebRequestTest.Abort_BeginGetRequestStreamThenAbort_EndGetRequestStreamThrowsWebException(Uri remoteServer) in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Requests\tests\HttpWebRequestTest.cs:line 523 ~~~ +19084 area-System.Data Disable Managed SNI in sqlclient Enable Native SNI in sqlClient to unblock partners. Addresses #19057 +19085 area-Infrastructure [release/2.0.0][DO_NOT_MERGE][ARM] Update rootfs for Tizen armel *This PR is duplicate of https://github.com/dotnet/corefx/pull/18916 in master branch.* *This PR should be merged only after related PR(https://github.com/dotnet/coreclr/pull/11285) in coreclr merged. Unless Tizen armel CI for CoreCLR will be broken.* This is required to build CoreFX for Tizen armel as a part of .NET Core 2.0.0 for Tizen. Existing rootfs for armel Tizen is out-of-dated and not suitable for .NET Core 2.0.0 for Tizen. Two changes are made. * Update rootfs for Tizen armel to recent version * Updates CI for Tizen armel to make use of a prebuilt embedded rootfs as Ubuntu arm does. +19086 area-Infrastructure Dumpling errors over shared files "https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/34/consoleText ``` Executing in D:\j\workspace\outerloop_net---903ddde6\bin\Windows_NT.AnyCPU.Debug\Common.Tests\netstandard\ Running tests... Start time: 15:24:25.99 downloaded dumpling.py total elapsed time 0:00:00.341000 downloaded dumpling.py total elapsed time 0:00:00.341000 Traceback (most recent call last): Traceback (most recent call last): File ""dumpling.py"", line 1128, in File ""dumpling.py"", line 1128, in main(sys.argv) File ""dumpling.py"", line 1123, in main main(sys.argv) cmdProc.Process(config) File ""dumpling.py"", line 1123, in main File ""dumpling.py"", line 537, in Process self.Install(config) File ""dumpling.py"", line 545, in Install self._dumpSvc.DownloadClientFile('dumpling.py', config.installpath) File ""dumpling.py"", line 213, in DownloadClientFile DumplingService._stream_file_from_response(response, os.path.join(downdir, filename)) File ""dumpling.py"", line 384, in _stream_file_from_response os.remove(path) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\dotnet-bot\\.dumpling\\dumpling.py' cmdProc.Process(config) File ""dumpling.py"", line 537, in Process self.Install(config) File ""dumpling.py"", line 545, in Install self._dumpSvc.DownloadClientFile('dumpling.py', config.installpath) File ""dumpling.py"", line 213, in DownloadClientFile DumplingService._stream_file_from_response(response, os.path.join(downdir, filename)) File ""dumpling.py"", line 384, in _stream_file_from_response os.remove(path) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\dotnet-bot\\.dumpling\\dumpling.py' downloaded dumpling.py downloading debugger for client windows-amd64 Traceback (most recent call last): File ""C:\Users\dotnet-bot/.dumpling/dumpling.py"", line 1128, in main(sys.argv) File ""C:\Users\dotnet-bot/.dumpling/dumpling.py"", line 1123, in main cmdProc.Process(config) File ""C:\Users\dotnet-bot/.dumpling/dumpling.py"", line 537, in Process self.Install(config) File ""C:\Users\dotnet-bot/.dumpling/dumpling.py"", line 566, in Install dbgPath = self._dumpSvc.DownloadDebugger(dbgdir) File ""C:\Users\dotnet-bot/.dumpling/dumpling.py"", line 192, in DownloadDebugger DumplingService._stream_zip_archive_from_response(response, outputdir) File ""C:\Users\dotnet-bot/.dumpling/dumpling.py"", line 355, in _stream_zip_archive_from_response zip.extract(path, unpackdir) File ""C:\Python27\lib\zipfile.py"", line 1031, in extract downloaded dumpling.py downloaded dumpling.py return self._extract_member(member, path, pwd) File ""C:\Python27\lib\zipfile.py"", line 1082, in _extract_member os.mkdir(targetpath) WindowsError: [Error 183] Cannot create a file when that file already exists: 'C:\\Users\\dotnet-bot\\.dumpling\\dbg\\dbg\\triage' downloaded dumpling.py downloading debugger for client windows-amd64 Adding debugger settings dumpling config configuration saved to C:\Users\dotnet-bot\.dumpling\dumpling.config.json Debugger successfully installed downloaded analysis.py downloaded triage.ini ```" +19088 area-Infrastructure Drop build number for final preview1 package build cc @gkhanna79 @Petermarcu +19090 area-System.Security "Desktop: System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.ZeroLengthContent_FixedValue failed with ""System.Security.Cryptography.CryptographicException""" Failed test: System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.ZeroLengthContent_FixedValue Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/34/testReport/System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests/EdgeCasesTests/ZeroLengthContent_FixedValue/ Configuration: outerloop_netfx_windows_nt_debug MESSAGE: ~~~ System.Security.Cryptography.CryptographicException : Invalid provider type specified.\r\n ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.Pkcs.EnvelopedCms.DecryptContent(RecipientInfoCollection recipientInfos, X509Certificate2Collection extraStore) at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.ValidateZeroLengthContent(Byte[] encodedMessage) in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Pkcs\tests\EnvelopedCms\EdgeCasesTests.cs:line 174 at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.ZeroLengthContent_FixedValue() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Pkcs\tests\EnvelopedCms\EdgeCasesTests.cs:line 125 ~~~ +19091 area-System.Diagnostics "Desktop: BasicEventSourceTests.TestsManifestNegative.Test_GenerateManifest_InvalidEventSources failed with ""Xunit.Sdk.EqualException""" "Failed test: BasicEventSourceTests.TestsManifestNegative.Test_GenerateManifest_InvalidEventSources Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/34/testReport/BasicEventSourceTests/TestsManifestNegative/Test_GenerateManifest_InvalidEventSources/ Configuration: outerloop_netfx_windows_nt_debug MESSAGE: ~~~ Assert.Equal() Failure ↓ (pos 135) Expected: ··· NonEvent attribute. Actual: ··· NonEvent attribute.\\r\\nMultiple definitions for string \""task_W··· ↑ (pos 135) ~~~ STACK TRACE: at BasicEventSourceTests.TestsManifestNegative.Test_GenerateManifest_InvalidEventSources() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestsManifestNegative.cs:line 145" +19092 area-System.Security "Desktop: System.Security.Cryptography.Hashing.Algorithms.Tests.InvalidUsageTests.InvalidHashCoreArgumentsFromStream failed with ""System.Security.Cryptography.CryptographicException""" Failed test: System.Security.Cryptography.Hashing.Algorithms.Tests.InvalidUsageTests.InvalidHashCoreArgumentsFromStream Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/34/testReport/System.Security.Cryptography.Hashing.Algorithms.Tests/InvalidUsageTests/InvalidHashCoreArgumentsFromStream/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.Security.Cryptography.CryptographicException): Bad Data.\r\n ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) at System.Security.Cryptography.Utils.HashData(SafeHashHandle hHash, Byte[] data, Int32 cbData, Int32 ibStart, Int32 cbSize) at System.Security.Cryptography.SHA1CryptoServiceProvider.HashCore(Byte[] rgb, Int32 ibStart, Int32 cbSize) at System.Security.Cryptography.HashAlgorithm.ComputeHash(Stream inputStream) at System.Security.Cryptography.Hashing.Algorithms.Tests.InvalidUsageTests.<>c__DisplayClass1_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Algorithms\tests\InvalidUsageTests.cs:line 32 ~~~ +19093 area-System.Runtime "Desktop: System.Tests.BitConverterTests.ValueArgumentNull failed with ""Xunit.Sdk.EqualException""" Failed test: System.Tests.BitConverterTests.ValueArgumentNull Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/34/testReport/System.Tests/BitConverterTests/ValueArgumentNull/ MESSAGE: ~~~ Assert.Equal() Failure ↓ (pos 0) Expected: value Actual: byteArray ↑ (pos 0) ~~~ STACK TRACE: ~~~ at System.AssertExtensions.Throws[T](String paramName, Func`1 testCode) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\AssertExtensions.cs:line 51 at System.Tests.BitConverterTests.ValueArgumentNull() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Extensions\tests\System\BitConverter.cs:line 35 ~~~ +19094 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/GetAsync_AllowedSSLVersion_Succeeds failed with ""System.Net.Http.HttpRequestException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/GetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol: Tls12, requestOnlyThisProtocol: True)` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Net.Http.WinHttpException : The handle is invalid Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.<>c__DisplayClass4_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.Tasks.ContinuationTaskFromTask.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.WinHttpException.ThrowExceptionUsingLastError() at System.Net.Http.WinHttpHandler.SetRequestHandleRedirectionOptions(SafeWinHttpHandle requestHandle) at System.Net.Http.WinHttpHandler.SetRequestHandleOptions(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : Master - 20170428.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170428.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test~2FGetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol:%20Tls12,%20requestOnlyThisProtocol:%20True) +19095 area-Serialization "Test: DataContractSerializerTests/DCS_FileStreamSurrogate failed with ""System.UnauthorizedAccessException""" Opened on behalf of @Jiayili1 The test `DataContractSerializerTests/DCS_FileStreamSurrogate` has failed. System.UnauthorizedAccessException : Access to the path 'C:\\dotnetbuild\\work\\8b64ac9d-8324-443b-a250-64baec62f74f\\Work\\142c785d-2f76-4aae-b3c8-32bf55151a7a\\Unzip\\Test.txt' is denied. Stack Trace: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at MyFileStream..ctor(String fileName) at DataContractSerializerTests.DCS_FileStreamSurrogate() Build : Master - 20170428.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170428.01/workItem/System.Runtime.Serialization.Xml.ReflectionOnly.Tests/analysis/xunit/DataContractSerializerTests~2FDCS_FileStreamSurrogate +19096 area-System.Runtime "Test: System.Tests.BitConverterTests/StartIndexPlusNeededLengthTooLong failed wtih ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Tests.BitConverterTests/StartIndexPlusNeededLengthTooLong` has failed. Assert.Equal() Failure\r Expected: value\r Actual: (null) Stack Trace: at System.AssertExtensions.Throws[T](String paramName, Func`1 testCode) in E:\A\_work\132\s\corefx\src\Common\tests\System\AssertExtensions.cs:line 52 at System.Tests.BitConverterTests.StartIndexPlusNeededLengthTooLong() in E:\A\_work\132\s\corefx\src\System.Runtime.Extensions\tests\System\BitConverter.cs:line 96 Build : Master - 20170428.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x86-Debug - x86-Release - x64-Debug - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170428.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.BitConverterTests~2FStartIndexPlusNeededLengthTooLong +19097 area-Serialization fix a test case for DataContractSerializer test Fix #18975 @shmao, I have updated the namespace of the DataContract to fix the DCS_BasicRoundtripDCRVerifyWireformatScenarios test with targetgroup netfx. please help review the code. +19098 area-System.Net HttpClient.SendAsync() throws 'Error while copying content to a stream.' "When requesting a JSON off of a Gravatar API endpoint, the call to SendAsync ends unsuccessfully with the above System.Net.Http.HttpRequestException. Repro: ```c# using (HttpClient httpClient = new HttpClient()) { HttpRequestMessage request = new HttpRequestMessage { RequestUri = new Uri(@""https://www.gravatar.com/caaa1c76de5cc0ceed0e32f3d4377f31.json""), Method = HttpMethod.Get, Headers = { { ""User-Agent"", ""csharp"", ""Connection"", ""close"" } } }; httpClient.Timeout = new TimeSpan(0, 0, 0, 5); using (HttpResponseMessage response = await httpClient.SendAsync(request)) { string responseContent = response.Content.ReadAsStringAsync(); } } ``` Expected result: The `responseContent` points to a string with the JSON content. Environment: System.Net.Http 4.3.0, netcoreapp1.0, runtime framework version 1.0.4 Notes: The Gravatar endpoint works in a way that it returns a 302 response to redirect to a more specific endpoint for the JSON data. When inspected with Fiddler, the above code throws without even doing the second HTTP request (after the redirect). It might seem that the root cause is that HttpClient does not follow the 302 status code and the 'Location' response header. But no, even with the below code it throws the same kind of exception. ```c# using (HttpClient httpClient = new HttpClient()) { HttpRequestMessage request = new HttpRequestMessage { RequestUri = new Uri(@""https://www.gravatar.com/caaa1c76de5cc0ceed0e32f3d4377f31.json""), Method = HttpMethod.Get, Headers = { { ""User-Agent"", ""csharp"" } } }; httpClient.Timeout = new TimeSpan(0, 0, 0, 5); string responseContent; using (HttpResponseMessage response = await httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead)) { if (response.StatusCode == System.Net.HttpStatusCode.Found && !string.IsNullOrEmpty(response.Headers.Location.PathAndQuery)) { HttpRequestMessage redirectRequest = new HttpRequestMessage { RequestUri = response.Headers.Location, Method = HttpMethod.Get, Headers = { { ""User-Agent"", ""csharp"" }, { ""Connection"", ""close"" } } }; using (HttpResponseMessage redirectResponse = await httpClient.SendAsync(redirectRequest, HttpCompletionOption.ResponseContentRead)) { var bytes = await response.Content.ReadAsByteArrayAsync(); responseContent = System.Text.Encoding.UTF8.GetString(bytes); } } } } ```" +19100 area-System.Runtime Fix param names for desktop runs Fix https://github.com/dotnet/corefx/issues/19096 and some others that don't seem filed +19101 area-System.IO [release 1.0/1.1] Add signing to windows native build We need to port the following change https://github.com/dotnet/corefx/pull/15962 to our release 1.0.0 and 1.1.0 branches so the are correctly signed on the next servicing event for them. +19102 area-System.Security Disable the other ProduceLegacyHmacValues test Fix https://github.com/dotnet/corefx/issues/19037 +19103 area-System.Net Fix bogus Debug.Assert in WebSocketBuffer cc: @stephentoub +19104 area-System.Runtime Type.GetType Behaves Differently on netfx and netcore "The following test present different behaviors on netfx and netcore. ```c# [Fact] public static void TypeGetTypeTest() { Type t = Type.GetType(""Employee, http://www.contoso.com""); Assert.Null(t); } ``` When targeting netstandard or netcoreapp, `Type.GetType` returns null and the test passes; when targeting netfx, the test fails with the following exception, ``` ---- System.IO.FileLoadException : The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047) Stack Trace: at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type) at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtrpPrivHostBinder, Boolean loadTypeFromPartialName) at System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark) at System.Type.GetType(String typeName) ```" +19108 area-System.Net Disable HttpWebRequest Abort related test Similar to #18800. There is a race condition between starting the I/O with BeginGetRequestStream() and calling Abort(). The test tends to work more on .NET Core since a MemoryStream is returned as the request stream. But on .NET Framework, the request stream can be network based. The test is left disabled for now in the code. Contributes to #19083 +19110 area-System.Runtime GetFolderPath_Windows tests ~all fail on Nano https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170428.02/workItem/System.Runtime.Extensions.Tests eg ``` Assert.Equal() Failure\r\n ? (pos 40)\r\nExpected: ···config\\systemprofile\r\nActual: ···config\\systemprofile\\AppData\\Local\\Microsoft\\Windows\\History\r\n ? (pos 40) Stack Trace : at System.Tests.EnvironmentTests.GetFolderPath_Windows(SpecialFolder folder) ``` need fixing. +19111 area-System.Runtime Add Test to enumerate dynamically generated assemblies Test for validating scenario in https://github.com/dotnet/corefx/issues/18877. Should be merged after https://github.com/dotnet/coreclr/pull/11294 comes into CoreFX. @jkotas PTAL. +19112 area-System.Net Add parameter validation for CredentialCache.Add Add parameter validation for CredentialCache.Add, and fix test cases. Fix #18870 +19114 area-System.IO DIsable some tests failing on netfx All Pipes tests are passing on netfx after this commit. resolves https://github.com/dotnet/corefx/issues/18147 cc: @danmosemsft @sepidehMS +19115 area-Infrastructure Error while building CoreFx on Windows I am trying to build CoreFx on Windows. I have synced the latest code and using build.cmd from the root of the repository. However the build fails with `Unhandled Exception: System.TypeLoadException: Could not load type 'System.Object' from assembly 'System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.` I have cleaned the clone using `git clean -d -f -x ` I get the following ``` F:\netcore\corefx>build.cmd Installing dotnet cli... Restoring BuildTools version 2.0.0-prerelease-01528-02... Initializing BuildTools... Done initializing tools. Unhandled Exception: System.TypeLoadException: Could not load type 'System.Object' from assembly 'System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. ``` OS Windows Server 2012 R2 How do I get past this problem? +19116 area-Serialization Support IObjectReference in DCS +19117 area-Infrastructure Validate framework package Adds validation for our framework packages and marks suppresses errors. With this change we can ensure our packageIndex remains in sync with the actual framework packages. It also forces us to add exceptions when we have implementation-only assemblies. @weshaggard please review the index and exceptions to make sure they match your expectations. +19118 area-System.Net HttpWebRequest PNSE/NotImplemented members implemented & code coverage increased Fixes https://github.com/dotnet/corefx/issues/18680 Fixes https://github.com/dotnet/corefx/issues/18900 Fixes https://github.com/dotnet/corefx/issues/18800 Also refactored code in HttpWebRequest. Added a lot of tests which should raise the code coverage to 80-90% +19119 area-System.Runtime Scale back [Serializable] for .NET Core 2.0 We brought [Serializable] and BinaryFormatter back for .NET Core 2.0 in the name of compat and helping code to migrate to core. But it comes with some serious implications, and it's becoming clear we took things too far. Doing this makes it very easy for code to take dependencies on private implementation details and will end up binding our hands for improvements/optimizations/refactorings/etc. in the future. And with all of the improvements/optimizations/refactorings/etc. already made in core, we've had to punt on the idea of cross-runtime serialization support. There needs to be a better happy-medium. The primary need for BinaryFormatter and [Serializable] is on a few core types, e.g. primitives, some of the core collections (e.g. `List`), some small wrapper types (e.g. `Tuple`), etc. Proposal from me and @morganbr for .NET Core 2.0: 1. BinaryFormatter and friends are currently implemented in System.Runtime.Serialization.Formatters.dll. We keep that as-is. 2. SerializableAttribute, ISerializable, etc. are all implemented in System.Private.CoreLib.dll and exposed through System.Runtime.dll. We keep that as-is. 3. We remove most of the [Serializable] implementations we added back for .NET Core 2.0, keeping the most core and important 10% or so. For this set, we a) potentially implement ISerializable if not already implemented in order to separate the implementation from the surfaced serialization state and to minimize the impact of future refactorings and optimizations, and b) try to enable desktop/core serialization/deserialization, so that BinaryFormatter'd state can go back and forth between desktop and core. We'll need to finalize what the list of types is, but it would include all of the primiteves (e.g. Int32), core collection types (e.g. Dictionary), core wrapper types (e.g. KeyValuePair), Exception and important Exception-derived types, and a handful of others. We can add more types in the future as they're highlighted as blockers, but in the meantime we avoid taking on the burden of lots of serializable types that'll hamper our ability to move the platform forward as we'd like. [edit] **list of types we ended up scaling back to is here:** https://docs.microsoft.com/en-us/dotnet/standard/serialization/binary-serialization#binary-serialization-in-net-core +19120 area-System.IO [rel/1.0.0] Add signing to Windows native build Progress towards https://github.com/dotnet/corefx/issues/19101 Ports #15962 to rel for servicing. @weshaggard +19121 area-Serialization Support IObjectReference in DCS. Fix #19116 @shmao @mconnew @zhenlan +19122 area-Infrastructure [NO MERGE] This is a test of the emergency broad cast system (eg. CI) cc @stephentoub test for https://github.com/dotnet/corefx/issues/18580. +19123 area-System.IO [rel/1.1.0] Add signing to Windows native build resolves #19101 Ports #15962 to rel for servicing. @weshaggard +19126 area-System.IO Perf improvements to StreamWriter with perf tests StreamWriter Write multi character methods are inefficient when writing a small number of characters. This leads to the situation where the two calls to StreamWriter when doing this: ```csharp _streamWriter.Write('<'); _streamWriter.Write('/'); ``` runs significantly faster than the one call to StreamWriter when doing this: ```csharp char[] chars = new char[] { '<', '/'}; _streamWriter.Write(chars); ``` This is because Buffer.BlockCopy is always used with char arrays which is more expensive than a simple one char at a time array assignment in a loop. This is more expensive to the point that the overhead of an extra method call costs significantly less. When using the overload which takes a string, a similar issue occurs with a call to string.CopyTo. Here are the perf results before and after the change: | Test | Baseline Avg | Change Avg | % Diff | | --- | --- | --- | --- | | WriteCharArray(writeLength: 10) | 317.7133995 | 315.3404692 | 0.75% | | WriteCharArray(writeLength: 100) | 1042.793872 | 1022.39794 | 1.96% | | WriteCharArray(writeLength: 2) | 258.3788186 | 152.7016172 | 40.90% | | WriteCharArray(writeLength: 3) | 265.1405325 | 163.8113327 | 38.22% | | WriteCharArray(writeLength: 4) | 270.9672665 | 199.7605459 | 26.28% | | WriteCharArray(writeLength: 5) | 272.7933884 | 268.0367705 | 1.74% | | WriteCharArray(writeLength: 6) | 275.7948424 | 272.662552 | 1.14% | | WriteCharArray(writeLength: 7) | 286.0221257 | 287.7501426 | -0.60% | | WriteCharArray(writeLength: 8) | 286.0322753 | 292.7262179 | -2.34% | | WriteCharArray(writeLength: 9) | 310.2990805 | 300.8100611 | 3.06% | | WritePartialCharArray(writeLength: 10) | 320.8516534 | 306.7162235 | 4.41% | | WritePartialCharArray(writeLength: 100) | 992.9288187 | 989.0454886 | 0.39% | | WritePartialCharArray(writeLength: 2) | 274.1539188 | 161.9795985 | 40.92% | | WritePartialCharArray(writeLength: 3) | 272.7907888 | 187.373916 | 31.31% | | WritePartialCharArray(writeLength: 4) | 271.060147 | 218.1671762 | 19.51% | | WritePartialCharArray(writeLength: 5) | 279.3890399 | 285.6314942 | -2.23% | | WritePartialCharArray(writeLength: 6) | 284.7554306 | 298.942551 | -4.98% | | WritePartialCharArray(writeLength: 7) | 301.1510832 | 304.8441162 | -1.23% | | WritePartialCharArray(writeLength: 8) | 307.0650737 | 313.7156342 | -2.17% | | WritePartialCharArray(writeLength: 9) | 296.8718112 | 308.0524504 | -3.77% | | WriteString(writeLength: 10) | 282.8297979 | 283.8806133 | -0.37% | | WriteString(writeLength: 100) | 1015.825361 | 969.9482392 | 4.52% | | WriteString(writeLength: 2) | 229.6652552 | 156.3140115 | 31.94% | | WriteString(writeLength: 3) | 239.3874726 | 174.3450671 | 27.17% | | WriteString(writeLength: 4) | 245.0068201 | 199.1682472 | 18.71% | | WriteString(writeLength: 5) | 255.5878577 | 244.4042087 | 4.38% | | WriteString(writeLength: 6) | 246.6323967 | 244.8518418 | 0.72% | | WriteString(writeLength: 7) | 272.074129 | 261.9257195 | 3.73% | | WriteString(writeLength: 8) | 277.286225 | 266.4553122 | 3.91% | | WriteString(writeLength: 9) | 281.5565211 | 277.8713811 | 1.31% | +19127 area-Infrastructure Increase VSTS Symbol expiration to 30 day default skip ci please I accidentally had expiration set to 1 day in https://github.com/dotnet/corefx/pull/18350, I think for debug purposes. This PR sets it to 30. 30 is the default, but I hard-coded it in case the default changes. Realized I used 1 when porting this to CoreCLR/master in https://github.com/dotnet/coreclr/pull/11300. +19128 area-System.Net Remove a few PNSEs from HttpListener "- Make HttpListener.TimeoutManager return a valid instance - Make HttpListenerTimeoutManager.DrainEntityBody and IdleConnection validate arguments and roundtrip, as we can implicitly ""respect"" them due to them being about connection pooling and the managed implementation not doing any. - Make EntityBody, HeaderWait, MinSendBytesPerSecond, and RequestQueue getters all return the same default value as desktop - Make EntityBody, HeaderWait, MinSendBytesPerSecond, and RequestQueue setters all do argument validation prior to throwing a PNSE Closes https://github.com/dotnet/corefx/issues/17977 cc: @davidsh, @danmosemsft, @Priya91 " +19129 area-System.Linq Test System.Linq.Expressions.Tests.ParameterTests.ReadAndWriteRefParameters causes FailFast on AoT +19130 area-System.Security Fix 18896: KeyPassword is ignored on core Fixes https://github.com/dotnet/corefx/issues/18896 also fixing couple of tiny issues I found on the way FYI: @danmosemsft +19132 area-System.Linq Fix AoT run of S.Linq.Expressions tests +19133 area-System.Net Fix S.Net.Http.Functional.Tests on AoT +19134 area-System.Security Add support for RSA-PSS to cert creation. Encodes RSA-PSS SubjectPublicKeyInfo according to RFC 5756 and the SignatureAlgorithm value according to RFC 4055. PSS certificate creation still relies on the underlying key ability to compute the PSS signature. +19135 area-System.Data Add native error codes and messages to managed SNI Named Pipe disconnect errors, so as to match native SNI behavior. Resolves some of the issues seen in https://github.com/dotnet/corefx/issues/19057 +19138 area-System.Net Fix CookieException thrown for invalid HttpListener cookies Fixes #18482 Fixes #18486 Contributes to #18128 Best reviewed commit-by-commit, lot's of code movement here. +19139 area-Infrastructure Question: Visual Studio Designer Integration for .Net Core/.Net Standard 2.0 ".Net Standard 2.0 and .Net Core 2.0 have included APIs in `System.ComponentModel` for building and extending the Visual Studio designer (e.g `Component` class, `DesignerAttribute`, `TypeConverter`, etc..) However, if one tries to use these classes in the current release of Visual Studio 2017 to create designers for their classes, Visual Studio displays errors in the designer like ```c# using System; using System.Collections.Generic; using System.ComponentModel; using System.Text; namespace CoreDesignerTest { public class Class1 : Component { } } ``` In Visual Studio, right-click on the ""Class1.cs"" node and choose ""View Designer"". > Could not load file or assembly 'System.ComponentModel.Primitives, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. With some hacking in my .config files, I can resolve the above error, but eventually Visual Studio fails to load the .Net Core assemblies with an ""Invalid Format"" error. I'm assuming this is due to the fact that Visual Studio, being a .Net Framework-based application, is trying to load a .Net Core assembly into a .Net Framework application, and therefore failing. My question is, with the coming release of .Net Core 2.0 and .Net Standard 2.0, will there also be an accompanying Visual Studio update that will provide the ability to create designers for .Net Core 2.0 and .Net Standard 2.0 classes?" +19140 area-System.Collections Remove dead code from System.Collections Didn't see the pull from @Olafski for #17905. Found two constuctors that could be removed. Rest of the code is indeed used. +19141 area-System.Data Removed dead code from System.Data.Common Removed dead code for System.Data.Common for issue #17905. +19142 area-Meta Modified test to use GetTempFileName As discussed in #19095 the test should be modified to use an actual temp file path. This also means it's no longer a const though. +19143 area-System.Linq Removed dead code from System.Linq.Parallel Removed dead code for System.Linq.Parrallel for issue #17905. +19144 area-System.Security Removed dead code from Security.Cryptography.X509Certificates for issue #17905. Removed dead code from Security Cryptography X509Certificates for issue #17905. +19145 area-System.Security Added constructors to immediately open an X509Store In this PR new constructor overloads have been added to the X509Store class which immediately open the store, instead of having to call Open on the constructed instance. Additionally an IsOpen property has been added to the X509Store that returns true or false depending on whether the store is open or not. Fixes #6550 +19146 area-System.IO Moved background thread to a task in SerialPort Moved background thread to task as descripted in #17696 +19147 area-System.Reflection Add MethodBase.IsConstructedGenericMethod property Added IsConstructedGenericMethod property to MethodBase, for completion and expresiveness as described in #17051 Closes #17051 +19148 area-System.Runtime Removed dead code system runtime serialisation formatters for issue #17905 Removed dead code system runtime serialisation formatters for issue #17905 +19150 area-System.Net Fix other bogus assert in System.Net cc: @stephentoub @davidsh +19152 area-Infrastructure OSX build issue with low ulimit Today me and @ptoonen ran into an issue when doing a full build of the corefx repo on OSX. Compiling some assemblies failed with a Too Many Open files error. This is caused by a low ulimit (see ulimit -a, which showed 256 for open files on my machine (OSX Sierra 10.12.4)). The init-tools.sh script already tries to change the ulimit by issuing ulimit -n 2048. It seemed that this can only be done when root, although I just tried it again and now it seems to work. I ended up raising the limit system wide (as described [here](https://unix.stackexchange.com/questions/108174/how-to-persist-ulimit-settings-in-osx-mavericks)). After rebooting this fixed the issue. After discussing this with @karelz we decided that it might be useful to raise an issue for this. +19153 area-System.Runtime StringComparer.FromComparison test Added @AlexRadch's tests for method StringComparer.FromComparison. See issue #13800 and PR (abandoned) #14623 +19154 area-System.Data System.Data.SqlClient 4.4.0-preview1 doesn't support RIDs win-x64 or win-x86 "# Repro Steps 1. Install SDK 2.0.0-preview1-005899 2. Create app using files below 3. `dotnet restore` 4. `dotnet publish -f netcoreapp2.0 -r win-x64` 5. `bin\Debug\netcoreapp2.0\win-x64\Repro.exe` ``` Unhandled Exception: System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.SNILoadHandle' threw an exception. ---> System.DllNotFoundException: Unable to load DLL 'sni.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at System.Data.SqlClient.SNINativeMethodWrapper.SNIInitialize(IntPtr pmo) ``` 6. `dotnet publish -f netcoreapp2.0 -r win7-x64` 7. `bin\Debug\netcoreapp2.0\win7-x64\Repro.exe` (works as expected) 8. I assume `win-x86` has the same issue, though I haven't tested. # Program.cs ```C# using System; using System.Data.SqlClient; namespace Repro { class Program { static void Main(string[] args) { using (var connection = new SqlConnection(@""Data Source=(localdb)\MSSQLLocalDB;Database=master;Connect Timeout=30"")) { connection.Open(); Console.WriteLine(""ServerVersion: {0}"", connection.ServerVersion); } } } } ``` # Repro.csproj ```XML Exe netcoreapp2.0 win-x64;win7-x64 ``` # NuGet.config ```XML ```" +19155 area-System.Net Validate input parameters for HttpWebRequest requeststream Write calls Validate the input parameters for Write* calls before hitting the underlying MemoryStream calls which throw exceptions different than expected ones. Fixes #18787 @davidsh Kindly review. Thanks, Mandar +19156 area-System.Threading WaitHandleWaitAll fails on desktop "https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170429.02/workItem/System.Threading.Tests/analysis/xunit/System.Threading.Tests.ManualResetEventTests~2FWaitHandleWaitAll ``` Windows.10.Amd64-x64-Release Unhandled Exception of Type System.NotSupportedException Message : System.NotSupportedException : WaitAll for multiple handles on a STA thread is not supported. Stack Trace : at System.Threading.WaitHandle.WaitMultiple(WaitHandle[] waitHandles, Int32 millisecondsTimeout, Boolean exitContext, Boolean WaitAll) at System.Threading.WaitHandle.WaitAll(WaitHandle[] waitHandles, Int32 millisecondsTimeout, Boolean exitContext) at System.Threading.Tests.ManualResetEventTests.WaitHandleWaitAll() in E:\A\_work\313\s\corefx\src\System.Threading\tests\ManualResetEventTests.cs:line 55 ``` Needs this adding `[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""Full framework throws NotSupportedException because test runs on STA and Core run on MTA"")]`" +19158 area-Infrastructure Update performance-tests.md Update performance-tests.md I was trying to get the tests running for #18765 and was having issues. I also noticed what seems like the same issue reported in #17118. This change mentions that performance tests should be run from the Performance folder with Admin privileges. FWIW, I had to do not only: ``` build build-tests ``` But also: ``` build -release build-tests -release ``` @karelz +19162 area-System.Security ECCurve.Validate() error message inconsistency for Explicit Curves When defining an explicit curve, there's an inconsistency in the error message. If some of the parameters are incorrect, we get: ``` The specified prime curve parameters are not valid. Prime, A, B, G.X, G.Y and Order are required and must be the same length, and the same length as Q.X, Q.Y and D if those are specified. Seed, Cofactor and Hash are optional. Other parameters are not allowed. ``` Based on the message, only **Prime, A, B, G.X, G.Y and Order** are required and **Cofactor** is optional. However, based on [Validate() line L207](https://github.com/dotnet/corefx/blob/master/src/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography/ECCurve.cs#L207), **Cofactor** is a required parameter too. +19166 area-System.Net .net core 2.0 HttpClient cookie handling bug I tested client application and found bug related to cookies. Here i provide test server in python. Basically, first GET request sets cookie on client, second POST request followed by redirect updates that cookie. Example work as intended in python requests, curl, System.Net.Http.WinHttpHandler 4.3.0. Expected Response: -- Done Set -- Done Index: Set-Cookie: p=not_overwritten -- Done Index: Set-Cookie: p=overwritten_on_post_with_redirect When i test it with .Net Core 2.0 on Windows i get this: -- Done Set -- Done Index: No cookie! -- Done Index: No cookie! When i test it with .Net Core 2.0 on Debian 8 i get this: -- Done Set -- Done Index: No cookie! -- Done Index: Set-Cookie: p=overwritten_on_post_with_redirect If i modify my server code **to include Path in cookies**, everything starts to work as intended. This bug could be related to https://github.com/dotnet/corefx/issues/18013 Here is test server : https://gist.github.com/ism/b5ecb70cb9f947435ac863ef5c27c7f0 Here is python requests test code: https://gist.github.com/ism/1bf4a0003c797d264193db559c8f20ac Here is .net core 2.0 code (Windows & Debian) : https://gist.github.com/ism/b9cce55d399883c0a689cf9ec37de44d Here is WinHttpHandler test code: https://gist.github.com/ism/3580fe5c0c2fccbc0c3e6856814c6626 Example raw headers output given by server on first GET request: HTTP/1.1 200 OK Date: Sun, 29 Apr 2017 14:26:31 GMT Server: CherryPy/10.2.1 Content-Length: 11 Content-Type: text/html;charset=utf-8 Set-Cookie: p=not_overwritten; httponly dotnet --info .NET Command Line Tools (2.0.0-preview2-005905) Product Information: Version: 2.0.0-preview2-005905 Commit SHA-1 hash: 2cc5612fec Runtime Environment: OS Name: Windows OS Version: 6.1.7601 OS Platform: Windows RID: win7-x64 Base Path: C:\Program Files\dotnet\sdk\2.0.0-preview2-005905 Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview2-002093-00 Build : 1a195046fd92bd73d993d804bea2f4506c2b56f1 +19167 area-System.Net How can I use binary serialization with CookieContainer I need to serialize CookieContainer to the binary file. I was looking for BinaryFormatter but couldn't find it. I use the newest version of .NET Core. I tried serializing it with protobuf-net and msgpack but it didn't work. Any solution for this? I saw the support for binary serialization was added in 2.0 but I need to use some alternative solution now in 1.1. +19168 area-System.Security What is the proper way of implementing explicit curves as ECCurve type? I want to implement Curve25519 as an ECCurve type so that it can be used in ECDsa. I've tried to define as shown below: public class Curves { // TODO: check the key gen rand. work in progress. check constants. public static ECCurve Curve25519 { get { return new ECCurve() { CurveType = ECCurve.ECCurveType.PrimeMontgomery, B = new byte[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, A = new byte[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,109,6}, G = new ECPoint() { X = new byte[] { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9}, Y = new byte[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }}, Prime = new byte[] { 127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 237 }, Order = new byte[] {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8}, Cofactor = new byte[] { 1 }, // fix later }; } } and later call ``` var ecc2 = ECDsa.Create(Curves.Curve25519); ``` This throws a null pointer exception, which does not make any sense to me. When we call the `Validate` method on the curve, everything seems to works. What is the reason behind this null pointer exception? +19171 area-Infrastructure Update guidance to include special types I noticed a handful of tests substituting int for a value type, which does not always do what you might want. In general test authors should consider if the codepath being tested has optimizations around built-in data types or get faster if types implement certain interfaces. cc: @mellinoe @DrewScoggins +19172 area-System.Threading Fix WaitHandle.WaitAll test on desktop xunit ends up using an STA thread for some (not all) test executions in the desktop runner. This breaks a WaitHandle.WaitAll test, as WaitAll can't be used from STA threads. This commit just makes sure that the WaitAll call is done from an MTA thread. Fixes https://github.com/dotnet/corefx/issues/19156 cc: @danmosemsft, @kouvel +19174 area-System.IO "Fix ""Too many open files"" in MMF perf test" "The test is attempting to time the performance of CreateNew separate from Dispose, but they should only ever be used 1:1 as part of the lifecycle of the MMF, so there isn't a need to measure the performance of these separately (if there's ever an issue, we can dive into understanding where exactly it's coming from). And it's the attempt to measure them separately that's resulting in these ""too many open file"" errors on macOS, due to needing to keep a bunch of MMFs open so that we don't measure the Dispose time as part of the benchmark. This commit just collapses them. Fixes https://github.com/dotnet/corefx/issues/18463 cc: @mellinoe, @danmosemsft " +19177 area-System.Reflection Ignore PDB age when opening Portable PDB A couple of changes: - Ignore the value of Age when checking for Portable PDB CodeView entry. The value is always 1 when the Portable PDB is built by Roslyn compiler, however when a Windows PDB that has been post-processed by a custom tool is converted to a Portable PDB the age might be > 1. Allow such converted PDB to be open. +19179 area-System.Reflection Difference in behavior of AssemblyName.FullName vs. desktop "```c# var version = new Version(255, 1, 2); AssemblyName assemblyName = new AssemblyName(""MyAssemblyName""); assemblyName.Version = version; Console.WriteLine(version.ToString()); Console.WriteLine(assemblyName.FullName); ``` on desktop gives ``` 255.1.2 MyAssemblyName, Version=255.1.2 ``` on core gives ``` 255.1.2 MyAssemblyName, Version=255.1.2.65535, Culture=neutral, PublicKeyToken=null ``` https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170501.01/workItem/System.Reflection.Tests/analysis/xunit/System.Reflection.Tests.AssemblyNameTests~2FVersion(version:%20255.1,%20versionString:%20%5C%22255.1.65535.65535%5C%22) https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170501.01/workItem/System.Reflection.Tests/analysis/xunit/System.Reflection.Tests.AssemblyNameTests~2FVersion(version:%20255.1.2,%20versionString:%20%5C%22255.1.2.65535%5C%22) @AtsushiKan @stephentoub do you know why this might be?" +19180 area-System.Reflection UnderlyingSystemType replacement in .NET Standard1.4 I've some NETFX code that I'm trying to compile for .NET Standard 1.4 and one of the issues I'm facing is how to replace UnderlyingSystemType property on the Type object. I see that this has been exposed from TypeInfo class for .NET Standard 1.5 and 1.6 but I'm looking for an equivalent in .NET Standard 1.4 Any suggestions? +19181 area-System.Reflection Fix DispatchProxy AV when using generic type parameters on methods For return types, an assert is triggered in debug mode. For parameters, an `ExecutionEngineException` is triggered at run time on x64 Windows when a proxied method has a generic-typed parameter and a value type is passed. The lack of an `box` instruction causes an AV in JIT_Stelem_Ref when it tries to treat the value type as an `Object*` . I added some tests that trigger the problem too. +19182 area-Meta Skip verifying stack on full framework Fix https://github.com/dotnet/corefx/issues/18797 Test throws an exception, serializes and compares. For some reason, on desktop, the line number of the top of the stack changes when this is done. Core behavior is an improvement, skip verifying desktop. @safern +19183 area-System.Net HttpClient redirect bug "http://stackoverflow.com/questions/43573321/httpclient-302-redirect I have 2 urls: https://pcr.apple.com/id868222886 and https://jigsaw.w3.org/HTTP/300/302.html. Both have a location link and 302 response code. But apple's link has 0-len response body. ```c# using System; using System.IO; using System.Net.Http; namespace XaveScor.PodcastFeed { public class RemoteFeedSource: FeedSource { private string url; protected virtual HttpMessageHandler Handler => new HttpClientHandler() { AllowAutoRedirect = true }; public override Stream Stream => client.Value.GetStreamAsync(url).Result; private readonly Lazy client; public RemoteFeedSource(string url) { client = new Lazy(() => new HttpClient(Handler), false); this.url = url; } } } [TestMethod] public void Test1() //fail { var source = new RemoteFeedSource(""https://pcr.apple.com/id868222886""); Assert.AreNotEqual(source.Stream.GetString(), """"); } [TestMethod] public void Test2() //success { var source = new RemoteFeedSource(""https://jigsaw.w3.org/HTTP/300/302.html""); Assert.AreNotEqual(source.Stream.GetString(), """"); } ```" +19185 area-System.Net WinHttpException should map to WebException Status At the moment to handle transient exceptions cross platform, I'm having to do something special for .NET Standard Windows only (Map the NativeErrorCode to WebExceptionStatus). But for .NET 4.x and Mono I just get the WebExceptionStatus Status from the InnerException. Here is how Mono does it for iOS https://github.com/mono/mono/blob/master/mcs/class/System.Net.Http/HttpClientEx.cs +19186 area-Infrastructure Update CoreClr, CoreFx, Standard to preview1-25301-02, preview1-25302-01, preview1-25301-01, respectively (release/2.0.0) +19188 area-Serialization Improve Exception for KnownTypeAttribute.MethodName on UWP `KnownTypeAttribute.MethodName` is not supported by UWP toolchain. The toolchain would give warning on using the property and users would get exception at runtime. Accroding to the feedback, the exception is not clear for figuring out the failure. We can try to improve this exception. +19189 area-System.Security Retarget crypto-xml to netstandard Fixes #16594 +19191 area-Infrastructure Profile captured by PerfRunner is missing events needed by PerfView I am running performance tests using the following command: ```cmd msbuild /t:BuildAndTest /p:Performance=true /p:ConfigurationGroup=Release /p:TargetOS=Windows_NT ``` When opening the .etl file in PerfView, most stack frames show the module as ManagedModule. For example: ``` ManagedModule!System.Xml.XmlTextWriter.InternalWriteEndElement(bool) ``` When running the test using PerfView to capture the profile, all the module names are correct. +19192 area-Meta Remove __arglist overloads Follow up on https://github.com/dotnet/standard/commit/52651e78ac329c56fb59cebf5b24174f25acb070 +19193 area-System.Security Implement CryptoConfig.AddOID and AddAlgorithm This PR implements two methods on the CryptoConfig class that threw PNSE's previously. These are AddOID and AddAlgorithm respectively, which allow application specific mappings. Fixes #18892 +19194 area-System.Security CryptoStream - crash when bytesToDeliver=amountRead "Created based on Connect feedback: http://connect.microsoft.com/VisualStudio/feedback/details/2604876/bug-in-system-security-cryptography-cryptostream (internal bug [213692](https://devdiv.visualstudio.com/DevDiv/_workitems?id=213692&_a=edit)) **Description:** A case is not handled in the `Read` method where `bytesToDeliver` equals `amountRead` exactly - the `ProcessFinalBlock` label is never invoked and `_finalBlockTransformed` is not set to true. This means that a read operation that falls into this case will call `FlushFinalBlock` on `Dispose` - which throws an exception in the proprietary stream I'm using for reading. A `Flush` is never expected on stream used for reading only. The last thing that needs to be checked in the `if (bytesToDeliver >= numOutputBytes)` block is whether `bytesToDeliver` has gone to zero, in which case we should go to the `ProcessFinalBlock` label code. I've attached a solution to reproduce and included a copy of `CryptoStream` that with a one line fix. **Repro Steps:** Basically, attempt to read (decrypt) a stream that falls into the ""slow"" label and into the `if (bytesToDeliver >= numOutputBytes)` block with `bytesToDeliver == numOutputBytes`. Impact: For me, I get intermittent crashes when I read a stream of a particular length that just happens to fall into this case - `Flush` is called on a stream that accepts no write operations." +19195 area-System.Diagnostics HttpHandlerDiagnosticListener: Write response event once when request is redirected HttpHandlerDiagnosticListener was introduced in #18101. It allows to hook into the .NET Framework `HttpClient` implementation based on `HttpWebRequest` and get notifications with `DiagnosticSource` and inject correlation headers (similar to [corefx](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/DiagnosticsHandler.cs) instrumentation). When HTTP request is redirected, the hook is invoked once per redirect. when request is being sent, the hook only sends one event for the first request and does not notify about each consecutive redirect. When response is received, hook sends event for each response. Consumers of these events uses them to log requests/responses and having the 'final' response code, actual duration and potentially details from the response is important. So every consumer for the hook needs to wait for the last response. This fix implements it: it does not send `Stop` event * if automatic redirects are allowed * and response status code is one of the redirected ones * and number of redirects is not reached maximum allowed Otherwise it notifies consumer about the 'final' response. /cc @vance @davidsh +19196 area-Infrastructure Update CoreClr, CoreFx, ProjectNTfs, ProjectNTfsTestILC, Sni to preview2-25302-01, preview2-25302-01, beta-25302-00, beta-25302-00, preview2-25302-01, respectively (master) +19197 area-System.Data Modifying the SNI identity package to pick up the new SNI package names. Addresses https://github.com/dotnet/corefx/issues/19154 SNI supports RIDs win-{arch} This led to package changes for preview1. The updated packages on myget are runtime.win-x86.runtime.native.System.Data.SqlClient.sni.4.4.0-preview1-25301-01.nupkg runtime.win-x64.runtime.native.System.Data.SqlClient.sni.4.4.0-preview1-25301-01.nupkg runtime.win-arm64.runtime.native.System.Data.SqlClient.sni.4.4.0-preview1-25301-01.nupkg +19198 area-System.Security SignedXml - refuses valid signed XML file "Created based on Connect report: http://connect.microsoft.com/VisualStudio/feedback/details/1765025/verify-xml-signature-getc14ndigest-problem-in-signedxml-class (internal bug [144292](https://devdiv.visualstudio.com/DevDiv/_workitems?id=144292&_a=edit)) **Description:** I've a problem with verifying XML signature file. The signature is done by third-party application and I am verifying the signature of that XML file in .NET framework 4.0 (check with latestes 4.6 and there is no difference). To identify the problem, I've taken a sample.xml ```xml A ``` When I sign the xml with the third-party app, I get signed.xml: ```xml A /l5xchvEjxgLdPNt9RiB3TTQTcc= cSUDo87XVNqbo+ljCZRAXvcuIXkak/10XyVWks9BNz5EdUmcVbiU84Y5qrJoAkMd yHPiIFkz8Dx5v5psK5oZjGtRleQ67nm1BryHA8F7EW4Otxe/8hEHsqVFK0zz3P79 XzKD2vl4lUaTTOLlCMD+SbpbekyLkDIjXS/6IylPWbNNF3sH9MclGGhSSjREwOuJ Ayj8xqqibQEDvIytLN23+bZJtOGAU54ERXPnh4rccBvzByno08DHVnkQrSQCgY4E CvVbocIFo7GGtq8v9oj6rK3KpWUQnL1V1Aqj5fXRNRC8VnxJyIkHAXOBWC3Wr+DQ zEm4W0Xa+vZ8o0x/2Ct2cg== MIIEejCCA+OgAwIBAgIIBg5jkS3DgTkwDQYJKoZIhvcNAQEFBQAwOjETMBEGA1UE CxMKSW5mcmF4STRDQTEWMBQGA1UEChMNSW5mcmF4IGQuby5vLjELMAkGA1UEBhMC U0kwHhcNMTEwNTAzMDkxMzU2WhcNMTYwNTAxMDkxMzU2WjBfMRcwFQYDVQQDEw5Q cnZpIFVwb3JhYm5pazEQMA4GA1UECxMHaTQgdXNlcjEUMBIGA1UEChMLVGVzdCBk Lm8uby4xDzANBgNVBAcTBlRvbG1pbjELMAkGA1UEBhMCU0kwggEiMA0GCSqGSIb3 DQEBAQUAA4IBDwAwggEKAoIBAQCkkkadn/Uapod4N0f7GVgDNNN/vRoNUzqbdsER vUA7f/MoARF0LoXAoxpAEk2DDf24oIkGjL60uqwx4di5LQr83zsdA/7Wh7RHb73j Cv0glfwK/YpfJcsxfLi/OajWNX5p63D9ISSDYtIgUb4k4JFElg+mbMsRFlPQNyR6 bADQTWputmTE+reWRiHLlnXLNSH3wGO008BfYuBnsuWupK8ar5UQ5I2IyafZJONO 4UQjsXsanYGqivWm147bihj7zfDjqEmVg0yYm9NS/jbhQSXRV9n8348engtu48ND g7Jsr363Ou1nvThzsxIyRBbqSCNSJPAiEYl/jF4WRO2zGmZzAgMBAAGjggHeMIIB 2jAMBgNVHRMBAf8EAjAAMCAGA1UdJQEB/wQWMBQGCCsGAQUFBwMCBggrBgEFBQcD BDAfBgNVHSMEGDAWgBSjdHM8IbieDPxF1rwNvMKR0T6WQDB3BgNVHR8EcDBuMGyg aqBohmZodHRwOi8vY2EuaW5mcmF4LnNpL2VqYmNhL3B1YmxpY3dlYi93ZWJkaXN0 L2NlcnRkaXN0P2NtZD1jcmwmaXNzdWVyPU9VPUluZnJheEk0Q0EsTz1JbmZyYXgg ZC5vLm8uLEM9U0kwDgYDVR0PAQH/BAQDAgSwMB0GA1UdDgQWBBSKMErpxIQp6TQ8 Jqr0ywYrYla4NzCB3gYIKwYBBQUHAQEEgdEwgc4wgYkGCCsGAQUFBzAChn1odHRw Oi8vY2EuaW5mcmF4LnNpL2VqYmNhL3B1YmxpY3dlYi93ZWJkaXN0L2NlcnRkaXN0 P2NtZD1pZWNhY2VydCZpc3N1ZXI9T1UlM2RJbmZyYXhJNENBJTJjTyUzZEluZnJh eCtkLm8uby4lMmNDJTNkU0kmbGV2ZWw9MDBABggrBgEFBQcwAYY0aHR0cDovL2Nh LmluZnJheC5zaTo4MDgwL2VqYmNhL3B1YmxpY3dlYi9zdGF0dXMvb2NzcDANBgkq hkiG9w0BAQUFAAOBgQAms5UL/f0AIavlVo9C5W5Ijdt12g/59PIZeAEDWzoEKi+W rE7ORaq527UHgcVGw7Gr2HhOEHmggUe6k43edQ0fkNg5WXfJzf18hHA+foVqsxra DxBeot442A1zw9GjRnIDCl2r91tHgkneqg2EE8kf7lkRtMRck1MUbHBnLnppKg== ``` (**Note**: The original issue had no (non-required) whitespace in the XML, it was pretty-printed here to allow for better human understanding) This signed XML is valid, according to let's say this (https://www.signatur.rtr.at/en/elsi/Pruefung.html) tool, and I've verified it with a few other tools and all confirm that it's OK, except when I verify it with SignedXml class from .NET Framework. The code I'am using to verify the XML. Now the problem as I've managed to identify is in the SignedXml class in function [`GetC14NDigest`](https://github.com/dotnet/corefx/blob/378b1e398a40e78f3c40363f91a2359e14c9940c/src/System.Security.Cryptography.Xml/src/System/Security/Cryptography/Xml/SignedXml.cs#L791-L817) where `Utils.GetPropagatedAttributes(m_context)` is called. `m_context` is signed XML document, but the namespace `xmlns:xds=""http://uri.etsi.org/01903/v1.1.1#""` is only in Signature node, which was propagated into the `SignedInfo` node, but the `Utils.GetPropagatedAttributes(m_context)` did not return that one, and the SignedInfo node is missing that one, so the SignedInfo node is not the same as it was when the signature was constructed. I've tried to sign an xml like this: ```xml A ``` and this signed XML I was able to verify successfully with SignedXml class." +19199 area-System.Security Handle some Crypto desktop inconsistencies. - RSACng ImportParameters was throwing a CryptoException for null Exponent/Modulus. On NetFX RSACng throws an ArgumentException. The tests were modified to expect CryptoException when the RSA is not full framework and the RSA is not RSACng - Skip the `ValidateDecryptorProperties` test on netfx because it throws a CryptoException when there isn't a key set before doing the test validation. - `RSACryptoServiceProvider` doesn't support SHA20aep, so the `DefaultRSAProvider` test helper was modified to return false for `SupportsSha20aep` when the RSA created by the factory is an `RSACryptoServiceProvider`. - `InvalidHashCoreArgumentsFromStream` is skipped on netfx. Netfx doesn't do argument boundary checking for stream input in ComputeHash which was fixed in netcoreapp. resolves https://github.com/dotnet/corefx/issues/19042 resolves https://github.com/dotnet/corefx/issues/19023 resolves https://github.com/dotnet/corefx/issues/19092 cc: @bartonjs +19200 area-Infrastructure Add Desktop perf runs to our CoreFX infrastucture Currently, if you specify the target group netfx performance tests fail to run. We need to add this functionality. +19201 area-System.Security Allow PKCS1MaskGenerationMethod non-sha1 resolves https://github.com/dotnet/corefx/issues/18898 cc: @danmosemsft @bartonjs @safern +19202 area-System.Data Tests in System.Data.Common crash on uapaot The following tests crash on uapaot: - System.Data.Tests.SqlTypes.SqlXmlTest.Constructor2_Stream_Unicode - System.Data.Tests.SqlTypes.SqlXmlTest.Constructor2_Stream_Empty - System.Data.Tests.SqlTypes.SqlXmlTest.Constructor3 - System.Data.Tests.SqlTypes.SqlXmlTest.Constructor3_XmlReader_Empty - System.Data.Tests.SqlTypes.SqlXmlTest.CreateReader_Stream_Unicode - System.Data.Tests.SqlTypes.SqlXmlTest.SqlXml_fromXmlReader_CreateReaderTest - System.Data.Tests.SqlTypes.SqlXmlTest.SqlXml_fromZeroLengthStream_CreateReaderTest - System.Data.Tests.SqlTypes.SqlXmlTest.SqlXml_fromZeroLengthXmlReader_CreateReaderTest_withFragment +19204 area-System.Xml Make XElement serializable in netstandard The default XElement constroctor is public in corefx, but not in dotnet standard. This breaks our serialization generator for XElement type. The code will be generated based on the corefx and use the default constructor when create a new XElement instance. But it cannot compile in dotnet standard since the default public constructor doesn't exist. Need make them be consistent to unblock our scenario. Either make XElement default contructor be internal like in desktop version. Or add it in the dotnet standard. #16701 +19205 area-System.Data Port SqlClient fixes for NP Flush and for NP/TCP native error codes to 2.0.0 branch Porting changes to release branch +19207 area-Infrastructure [release/2.0.0] Add symbol archive build leg "Cherry-pick https://github.com/dotnet/corefx/pull/18350 and https://github.com/dotnet/corefx/pull/19127. Since this is a `release/*` branch, the new index/archive build leg will archive every build. Tested by queueing this new build leg independently to archive an existing build's symbol packages. It worked with no changes to the commits picked from `master`. I will need to add `PB_DotNetCoreShareDir` to the root pipebuild def. This is the file share to use as an intermediate location for symbols to rest until the symbol service gets around to fetching them. (I will add this variable to the `master` pipebuild def as well for future release branches.) This is the CoreFX part of https://github.com/dotnet/core-eng/issues/703 ""...release/2.0.0 builds don't use the deprecated ""MicroBuild Index Symbols"" step"". It will also remove the need to archive symbols manually for the 2.0.0 release, and make the week-long delay between submission and availability not a problem." +19208 area-System.Security Make ECDsa.Create(ECCurve(.IsExplicit)) work on Windows. ECDsa.Create(ECCurve) had a check which rightly belonged in GenerateKey behind an IsNamed check. Moved that check to where it belonged, and added an Explicit (PrimeShortWeierstrass) test to the big create matrix. Adding the test resulted in debugging several tests which were assuming IsNamed. The extra debugging data seemed generally applicable, so it remains. Fixes the `NullReferenceException` reported in #19168. +19209 area-System.Data Port updated RID to master Update the SNI RID in Master. Ported from release/2.0.0 +19211 area-Infrastructure UWP tests producing no result - crash in xunit? https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170501.02 shows Xunit Counts Pass: 0 Fail: 0 Skip: 0 execution produced no test result xml 2017-05-01 13:31:34,950: INFO: proc(54): run_and_log_output: Output: FAILED 0x8027025B (The app didn't start. 00 0000005c`adb9e830 00007ffd`6c404f55 KERNELBASE!RaiseException(unsigned long dwExceptionCode = , unsigned long dwExceptionFlags = , unsigned long nNumberOfArguments = , unsigned int64 * lpArguments = )+0x68 [d:\rs1\minkernel\kernelbase\xcpt.c @ 904] 01 0000005c`adb9e910 00007ffd`6c4b0750 CoreCLR!GetCLRRuntimeHost+0x3cd65 02 0000005c`adb9ea30 00007ffd`6c03e011 CoreCLR!GetCLRRuntimeHost+0xe8560 03 0000005c`adb9ebe0 00007ffd`6c6ecff3 System_Private_CoreLib!System.AppDomain.Setup()+0x494ce1 04 0000005c`adb9eca0 00007ffd`6c448130 CoreCLR!GetCLRRuntimeHost+0x324e03 05 0000005c`adb9ece0 00007ffd`6c428b86 CoreCLR!GetCLRRuntimeHost+0x7ff40 06 0000005c`adb9ee10 00007ffd`6c3c7731 CoreCLR!GetCLRRuntimeHost+0x60996 07 0000005c`adb9f070 00007ffd`6c3c804b CoreCLR!coreclr_execute_assembly+0x14711 08 0000005c`adb9f540 00007ffd`b96219ec CoreCLR!coreclr_execute_assembly+0x1502b 09 0000005c`adb9f5a0 00007ffd`b9621ad6 UWPHOST!UWPHost::LoadAndStartCoreCLRRuntime(void)+0x2f8 [f:\dd\ndp\clr\src\coreclr\uwp\host\uwphost.cpp @ 167] Appears to be an ArgumentNullException inside System.Private.CoreLib.dll @MattGal has a dumpfile @alexperovich ? +19212 area-System.Runtime Proposal for adding System.Runtime.CompilerServices.IsRefLikeAttribute "# Rationale and Usage For upcoming C# features captured in [Safe Spans proposal here](https://github.com/VSadov/csharplang/blob/3ab16a77b9fefe3805fa81044ba72d6c254e00f9/proposals/span-safety.md), the C# compiler needs a way to annotate structs in metadata as ref-like. The proposal is to add a new attribute to `System.Runtime.CompilerServices` namespace similar to`IsReadOnly`, named `IsRefLike`. The purpose of the attribute is to request that all the requirements of ref-like structs be applied to the type by the compiler. Such struct will be allowed to have instance fields that are ref-like types (and typically will have such fields). # Proposed API ```csharp // .NET Core: // System.Runtime (reference assembly) // System.Private.CoreLib (implementation) // .NET Framework 4.7++ // mscorlib // .NET Standard 2.0++ // netstandard namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Struct)] public sealed class IsByRefLikeAttribute: Attribute { public IsByRefLikeAttribute(); } } ``` To ensure that using this type is an error on old compilers and compilers not familiar with safety rules of ByRefLikeStructs compiler will also emit an `Obsolete` attribute with a predefined message that can be filtered out by compilers that do know how to operate with spans. ```csharp [Obsolete(""ByRefLike types are not supported in this version of your compiler."", true)] ``` So a typical ref like struct will look like the following in the source: ```csharp ref struct TwoSpans { // can have ref-like instance fields public Span first; public Span second; } // error: arrays of ref-like types are not allowed. TwoSpans[] arr = null; ``` and like the following in metadata ```csharp [IsRefLike] [Obsolete(""ByRefLike types are not supported in this version of your compiler."", true)] public struct TwoSpans { . . . . } ```" +19213 area-System.Reflection Make AddCodeViewEntry(..., int age) public "Add an overload of AddCodeViewEntry API for building CodeView Debug Directory entry with specified Age != 1. ```C# namespace System.Reflection.PortableExecutable { class DebugDirectoryBuilder { /// /// Adds a CodeView entry. /// /// Path to the PDB. Shall not be empty. /// Unique id of the PDB content. /// Version of Portable PDB format (e.g. 0x0100 for 1.0), or 0 if the PDB is not portable. /// Age (iteration) of the PDB. Shall be 1 for Portable PDBs. /// is null. /// contains NUL character. /// is less than 1. /// is smaller than 0x0100. public void AddCodeViewEntry( string pdbPath, BlobContentId pdbContentId, ushort portablePdbVersion, int age) } } ```" +19214 area-System.Runtime Change SkipOnTargetFramework for Issue 18052 "Change [SkipOnTargetFramework(TargetFrameworkMonikers.Netcoreapp, ""The coreclr fixed a bug where Guid.TryParse throws a format or overflow exception (https://github.com/dotnet/corefx/issues/6316)"")] to [SkipOnTargetFramework(~TargetFrameworkMonikers.NetFramework,""The coreclr fixed a bug where Guid.TryParse throws a format or overflow exception (https://github.com/dotnet/corefx/issues/6316)"")] for method Parse_Invalid_Netfx() in GuidTests.cs under System.Runtime.Tests. " +19215 area-System.Reflection lowercase another assembly name Akin to https://github.com/dotnet/corefx/pull/19178 .. the initial casing is persisted so we don't guarantee casing matches. Not sure why I didn't see this last time. +19217 area-System.Net Add HttpListenerPrefixCollection tests and align managed implementation with Windows Contributes to #18128 Contributes to #13618 Fixes #19438 Probably best reviewed commit-by-commit to make sense of the code movement. @Priya91 @stephentoub @davidsh +19218 area-System.Data "Test: System.Data.SqlClient.Tests.SqlConnectionBasicTests/IntegratedAuthConnectionTest failed with ""System.Data.SqlClient.SqlException""" Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.SqlConnectionBasicTests/IntegratedAuthConnectionTest` has failed. System.Data.SqlClient.SqlException : Failed to generate SSPI context. Stack Trace: at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at System.Data.SqlClient.Tests.SqlConnectionBasicTests.IntegratedAuthConnectionTest() Build : Master - 20170502.01 (Core Tests) Failing configurations: - Windows.10.Nano.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170502.01/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.SqlConnectionBasicTests~2FIntegratedAuthConnectionTest +19219 area-System.Net Fix incorrect exception thrown in HttpResponseStream.Write for a closed connection Contributes to #18128 +19220 area-System.Globalization System.Globalization.Tests.GregorianCalendarGetWeekOfYears.GetWeekOfYear failed in CI failed test: System.Globalization.Tests.GregorianCalendarGetWeekOfYears.GetWeekOfYear detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/opensuse42.1_debug/2246/testReport/System.Globalization.Tests/GregorianCalendarGetWeekOfYears/GetWeekOfYear/ MESSAGE: ~~~ System.ArgumentOutOfRangeException : Year, Month, and Day parameters describe an un-representable DateTime. ~~~ STACK TRACE: ~~~ at System.DateTime.DateToTicks(Int32 year, Int32 month, Int32 day) at System.DateTime..ctor(Int32 year, Int32 month, Int32 day) at System.Globalization.Tests.GregorianCalendarGetWeekOfYears.d__6.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() ~~~ +19221 area-System.Runtime "Test: System.Tests.EnvironmentTests/GetSystemDirectory failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Tests.EnvironmentTests/GetSystemDirectory` has failed. Assert.Equal() Failure\r ? (pos 0)\r Expected: \r Actual: C:\\Windows\\system32\r ? (pos 0) Stack Trace: at System.Tests.EnvironmentTests.GetSystemDirectory() Build : Master - 20170502.01 (Core Tests) Failing configurations: - Windows.10.Nano.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170502.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.EnvironmentTests~2FGetSystemDirectory +19222 area-System.Threading "Test: System.Threading.Threads.Tests.ThreadTests/ApartmentStateTest_ChangeBeforeThreadStarted_Windows failed with "" Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Threading.Threads.Tests.ThreadTests/ApartmentStateTest_ChangeBeforeThreadStarted_Windows(getApartmentState: Func`2 { Method = System.Threading.ApartmentState d__58.MoveNext()\n--- End of stack trace from previous location where exception was thrown ---\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\n at TestHttpRequestsFunction.Function.d__4.MoveNext()"", ""HelpLink"": null, ""Source"": ""System.Private.CoreLib"", ""HResult"": 52 } ``` I've tested the exact same request on windows in .net core and postman and it succeeds. I use the following code to reproduce the issue. ```csharp var httpClientHandler = new HttpClientHandler { AllowAutoRedirect = false}; _httpClient = new HttpClient(httpClientHandler, true); var requestBody = $""{{\r\n \""testData\"": \""{string.Empty.PadRight(999)}\""\r\n }}"", var content = new StringContent(requestBody, Encoding.UTF8, ""application/json""); var endpoint = """"; // I can provide a sample server privately var postResponse = await _httpClient.PostAsync(endpointUrl, content).ConfigureAwait(false); ``` my project.json, nothing special just dependency for AWS Lambda ```javascript { ""version"": ""1.0.0-*"", ""buildOptions"": { }, ""dependencies"": { ""Microsoft.NETCore.App"": { ""type"": ""platform"", ""version"": ""1.1.0"" }, ""Amazon.Lambda.Core"": ""1.0.0*"", ""Amazon.Lambda.Serialization.Json"": ""1.1.0"" }, ""tools"": { ""Amazon.Lambda.Tools"": ""1.5.0"" }, ""frameworks"": { ""netcoreapp1.1"": { ""imports"": ""dnxcore50"" } } } ``` A little searching pointed to the way that cURL handles requests with a body greater than 1024 chars by adding the `Expect: 100 Continue` header. I tried `_httpClient.DefaultRequestHeaders.ExpectContinue = false;` but the issue persists. I'm not sure where to go from here as root cause seems to be a low level in the framework, I believe this is mostly likely just a configuration issue and any guidance would be appreciated. " +19232 area-System.Runtime Enable Environment.Exit tests. Since Environment.Exit bug has been fixed in both coreclr and core-setup, this PR enables the tests in corefx repo. Related issue: https://github.com/dotnet/coreclr/issues/6206#issuecomment-295339778 https://github.com/dotnet/core-setup/issues/2050 Fix #18776 +19233 area-System.Security Fix random crashes from RSA.ExportParameters on Linux The RSAOpenSsl ExportParameters passed a SafeHandle into a function to get interior pointers to the key parameters, which was the last usage of that SafeHandle. If the parent RSA object had become unrooted then the key is now untracked and subject to finalization, which will free the underlying RSA structure and invalidate the memory to which the interior pointers are pointing. There are two obvious fixes: 1) GC.KeepAlive in ExportRsaParameters right before returning parameters. This would keep the GC from allowing the key to get finalized until after we had finished extracting the data from the interior pointers. But GC.KeepAlive doesn't protect against multithreaded releasing. 2) DangerousAddRef the SafeHandle. AddRef the key before extracting the data and Release it when done so that the object is both GC rooted and safe from a parallel free. As it happens, ECDsaOpenSsl and DSAOpenSsl both already did AddRef/Release, only RSAOpenSsl was shooting from the hip. Due to a missing `using` block RSACertificateExtensions.CopyWithPrivateKey had the last use of cert.GetRSAPublicKey() be the call to ExportParameters(false), which left the RSA object untracked by this method. ExportParameters(false) then grabbed the key reference, and no longer needed `this`, making the object wholly untracked. The key object's last proven use was the call to RsaSize between extracting and using the interior pointers, and so under COMPlus_GCStress=3 this path always freed the underlying key between RsaSize(key) and ExtractBignum(n). Fixes #6302. +19235 area-Meta Review Open TODOs around the entire code base "Currently there are 2923 TODOs in the entire corefx code base. Below is the ordered grouping of TODOs by 1st level directories. As some of them can probably be ignored/removed, it's still worth giving them a look at some point of time. ## Areas with TODOs - [ ] System.Private.Xml: 412 - [ ] System.Linq.Expressions: 356 - [ ] System.Net.Http: 294 - [ ] System.Net.Sockets: 282 - [ ] System.Data.Common: 144 - [ ] System.Net.WebSockets.Client: 132 - [ ] System.Reflection.Metadata: 116 - [ ] Microsoft.CSharp: 112 - [ ] System.Runtime.Extensions: 112 - [ ] System.Private.Xml.Linq: 110 - [ ] Common: 102 - [ ] Microsoft.VisualBasic: 90 - [ ] System.Runtime: 72 - [ ] System.Diagnostics.Tracing: 64 - [ ] System.Net.Http.WinHttpHandler: 62 - [ ] System.Data.SqlClient: 54 - [ ] System.Reflection.TypeExtensions: 34 - [ ] System.Private.DataContractSerialization: 26 - [ ] System.Runtime.Serialization.Formatters: 20 - [ ] System.IO.FileSystem: 18 - [ ] System.Numerics.Vectors: 18 - [ ] System.Data.Odbc: 16 - [ ] System.DirectoryServices.AccountManagement: 16 - [ ] System.Net.Requests: 16 - [ ] System.Runtime.Numerics: 16 - [ ] System.Net.Security: 14 - [ ] System.IO.Compression: 12 - [ ] System.DirectoryServices.Protocols: 10 - [ ] System.IO.Ports: 10 - [ ] System.Net.NameResolution: 10 - [ ] System.Private.Uri: 10 - [ ] Native: 8 - [ ] System.Diagnostics.StackTrace: 8 - [ ] System.Security.Principal.Windows: 8 - [ ] System.Transactions.Local: 8 - [ ] System.Collections.Concurrent: 6 - [ ] System.ComponentModel.Annotations: 6 - [ ] System.Diagnostics.DiagnosticSource: 6 - [ ] System.IO.Packaging: 6 - [ ] System.IO.Pipes: 6 - [ ] System.Memory: 6 - [ ] System.Net.HttpListener: 6 - [ ] System.Runtime.InteropServices: 6 - [ ] System.Security.Cryptography.X509Certificates: 6 - [ ] System.Security.Cryptography.Xml: 5 - [ ] Microsoft.Win32.Registry: 4 - [ ] System.Configuration.ConfigurationManager: 4 - [ ] System.DirectoryServices: 4 - [ ] System.Dynamic.Runtime: 4 - [ ] System.Linq: 4 - [ ] System.Threading.Tasks: 3 - [ ] shims: 2 - [ ] System.Collections: 2 - [ ] System.ComponentModel.TypeConverter: 2 - [ ] System.Console: 2 - [ ] System.IO.IsolatedStorage: 2 - [ ] System.IO.MemoryMappedFiles: 2 - [ ] System.IO.UnmanagedMemoryStream: 2 - [ ] System.Json: 2 - [ ] System.Linq.Queryable: 2 - [ ] System.Net.Ping: 2 - [ ] System.Net.ServicePoint: 2 - [ ] System.Net.WebClient: 2 - [ ] System.Net.WebProxy: 2 - [ ] System.Reflection.Emit: 2 - [ ] System.Resources.Writer: 2 - [ ] System.Runtime.WindowsRuntime: 2 - [ ] System.Threading: 2 - [ ] System.Threading.Tasks.Dataflow: 2 - [ ] System.Runtime.Serialization.Json: 1 - [ ] System.Security.AccessControl: 1 - [ ] System.Text.Encoding: 1 - [ ] System.Text.Encodings.Web: 1 - [ ] System.Threading.Tasks.Extensions: 1 - [ ] System.Threading.Tasks.Parallel: 1 - [ ] System.Threading.Thread: 1 - [ ] System.Xml.ReaderWriter: 1 `~\corefx\src>findstr /si /C:""TODO"" *` All TODOs: [todo.txt](https://github.com/dotnet/corefx/files/970965/todo.txt) cc @karelz @stephentoub @danmosemsft " +19236 area-System.Net System.Net.NameResolution.Pal.Tests.GetHostByName_HostName failed with No such device or address This broke CI https://ci.dot.net/job/dotnet_corefx/job/master/job/portablelinux_debug_prtest/4495/consoleText ``` Discovering: System.Net.NameResolution.Pal.Tests Discovered: System.Net.NameResolution.Pal.Tests Starting: System.Net.NameResolution.Pal.Tests System.Net.NameResolution.PalTests.NameResolutionPalTests.GetHostByName_HostName [FAIL] System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : No such device or address Stack Trace: at System.Net.NameResolutionPal.GetHostByName(String hostName) at System.Net.NameResolution.PalTests.NameResolutionPalTests.GetHostByName_HostName() System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName [FAIL] Assert.Equal() Failure Expected: Success Actual: HostNotFound Stack Trace: at System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName() Finished: System.Net.NameResol ``` +19237 area-System.Security Add missing usings in CopyWithPrivateKey All three overloads of CopyWithPrivateKey created a public key object and let it die off to the GC/Finalizer. This adds the usings that should have been there the whole time. +19238 area-System.Security Desktop failure in System.Security.Cryptography.Rsa.Tests/ImportExport/UnusualExponentImportExport/ This issue is repro on desktop, detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/38/testReport/System.Security.Cryptography.Rsa.Tests/ImportExport/UnusualExponentImportExport_2/ ``` MESSAGE: System.Security.Cryptography.CryptographicException : The requested operation is not supported.\r\n +++++++++++++++++++ STACK TRACE: at System.Security.Cryptography.NCryptNative.ExportKey(SafeNCryptKeyHandle key, String format) at System.Security.Cryptography.CngKey.Export(CngKeyBlobFormat format) at System.Security.Cryptography.RSACng.ExportParameters(Boolean includePrivateParameters) at System.Security.Cryptography.Rsa.Tests.ImportExport.UnusualExponentImportExport() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RSA\ImportExport.cs:line 117 ``` +19239 area-System.Security RSACng throws different exception than other RSAs on netfx [RSACng.ImportParameters on Netfx throws an ArgumentException when either the Exponent or Modulus are null](https://referencesource.microsoft.com/#System.Core/System/Security/Cryptography/RsaCng.cs,322). This is different from RSACSP.ImportParameters which throws a CryptographicException for the same imputs. [We decided to use a CryptographicException for RSACng in netcoreapp](https://github.com/dotnet/corefx/pull/19199#discussion_r114217732) and should consider changing the netfx behavior to match. cc: @bartonjs +19240 area-System.Security Fix S.Security.Cryptography.Cng test failure Fixes: #19041 cc: @bartonjs @ianhays @danmosemsft +19241 area-System.IO Fix Async DeflateStream tests for netfx On NetFX the async Write and Read methods call Stream's versions which wrap around the underlying stream's non-sync Read and Write methods. In netcoreapp this was fixed to have the underlying stream's async methods called instead. I modified the overlap tests to accomodate the netfx style. resolves https://github.com/dotnet/corefx/issues/18263 +19244 area-System.Xml Make XElement.ctor() internal Fixes https://github.com/dotnet/corefx/issues/19204 +19247 area-System.Collections Removed IDictionary.GetValueOrDefault extension methods @safern Please Review the Changes +19249 area-System.Linq Lambda expressions using dynamic types are optimized away by ILC toolchain analyzer. Example dynamic d = 3; Assert.Throws(() => d / 0); This will throw NullReferenceException in ILC tool chain since anonymous method will be optimized () => d/0 but changing dynamic to int will fix the issue int d = 3; Assert.Throws(() => d / 0); +19251 area-System.Net Fix WinHttpHandler POST behavior with zero-length data "WinHttpHandler was incorrectly sending two zero-length chunks (a violation of HTTP protocol) when POST'ing empty data using chunked encoding. The second zero-length chunk was ok since it means end of data. The first zero-length chunk was because it was the empty string being encoded. This was causing problems by sending extra data to WinHTTP and hence to the server. Any subsequent requests to the server might get mis-understood by the server and the server would then send back an error. That translated to getting a WinHTTP error (12152) ""The server returned an invalid or unrecognized response"". This is hard to repro except in the HttpListener tests because of the timing of when the extra zero-length chunk of request data gets sent to the server. There is already an HttpClient unit test for POSTing zero-length data using chunked encoding. But this was not triggering this error due to timing issues. Even the HttpListener test needed to be adjusted to force a consistent repro. Added asserts to validate the logic of making sure that we don't try to chunk encode zero length data. Fixes #18869." +19252 area-System.Security Clean up X509Certificates test conditions A hacky capability, `IsReliableInCI`, was created to overcome test failures during the final days of .NET Core 1.0 when a new configuration came online with a CI tmphome on a fuseblk (NTFS) volume instead of an EXT volume. The infrastructure bug has survived longer than anticipated and the capability is continually updated as new configurations encounter the problem. The capability is very loosely structured, and that is costing us test coverage. Our Helix machines are believed to not have the same limitation, so they could run the tests. A private Ubuntu 16.04 stock machine won't have the limitations, and could run the tests. Only in our CI system does it actually fail. This change introduces a new class, TestEnvironmentConfiguration, which has a partial method to determine the baseline chmod requirements of the persisted files store to assess that the tests won't make sense to run, and the `IsReliableInCI` condition has been renamed to `CanModifyStores`. In order to not have TestEnvironmentConfiguration be a one-trick-pony the change also introduces a `RunManualTests` value to allow for those tests which are not even OuterLoop-reliable to be opted into. Painting a method as a manual test is hoped to not be a very common occurrence, but it is occasionally valueable to indicate that a test is present, but not running. +19257 area-System.Data Re-enable managed SNI by default in SqlClient EntityFramework test failures in https://github.com/dotnet/corefx/issues/19057 have been resolved (aside from occasional command timeouts), so re-enabling SqlClient managed SNI by default in master +19258 area-Serialization Add Tests covering WCF Soap Scenario. I found a issue with reflection based Soap serialization when working on https://github.com/dotnet/wcf/issues/1549. The PR added a few tests which simulate what WCF does when using Soap encoded message. /cc: @zhenlan @mconnew @huanwu +19259 area-Infrastructure Dumpling.sh: line 24: /proc/self/coredump_filter: No such file or directory https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release_prtest/2864/consoleFull#-13326339622d31e50d-1517-49fc-92b3-2ca637122019 ``` 17:22:02 ls: /cores: No such file or directory 17:22:02 Running tests... Start time: 17:22:02 17:22:02 Commands: 17:22:02 source Dumpling.sh 17:22:02 chmod +x /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/bin/testhost/netcoreapp-OSX-Release-x64//dotnet 17:22:02 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/bin/testhost/netcoreapp-OSX-Release-x64//dotnet xunit.console.netcore.exe System.Net.WebClient.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapptests -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonosxtests 17:22:02 CollectDumps 0 System.Net.WebClient.Tests 17:22:02 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/bin/AnyOS.AnyCPU.Release/System.Net.WebClient.Tests/netstandard /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.WebClient/tests 17:22:02 executing ulimit -c unlimited 17:22:02 Dumpling.sh: line 24: /proc/self/coredump_filter: No such file or directory ``` +19260 area-System.Security Failure of FindByValidThumbprint_RootCert Both my OSX legs are failing with this. It seems unlikely I caused it -- somehting changed in the machines? @bartonjs ? https://github.com/dotnet/corefx/pull/19256 https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release_prtest/2864/consoleFull#-13326339622d31e50d-1517-49fc-92b3-2ca637122019 ``` System.Security.Cryptography.X509Certificates.Tests.FindTests.FindByValidThumbprint_RootCert [FAIL] 17:22:05 Root certificate 'CN=DO_NOT_TRUST_WcfBridgeRootCA 2017-02-25T02:35:36, O=DO_NOT_TRUST, OU=Created by https://github.com/dotnet/wcf' (2/25/17 1:35:30 AM - 6/4/17 3:35:30 AM) is findable with thumbprint 'B57CF334491860720E03A9251FCDF4F0F5543B7E' and validOnly=true 17:22:05 Expected: True 17:22:05 Actual: False 17:22:05 Stack Trace: 17:22:05 at System.Security.Cryptography.X509Certificates.Tests.FindTests.FindByValidThumbprint_RootCert() ``` +19263 area-System.Security "Desktop: System.Security.Cryptography.Xml.Tests.XmlLicenseTransformTest.ValidLicense failed with ""System.ArgumentException""" Failed test: System.Security.Cryptography.Xml.Tests.XmlLicenseTransformTest.ValidLicense Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Security.Cryptography.Xml.Tests/XmlLicenseTransformTest/ValidLicense/ MESSAGE: ~~~ System.ArgumentException : The input type was invalid for this transform. Parameter name: type ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.Xml.XmlLicenseTransform.GetOutput(Type type) at System.Security.Cryptography.Xml.Tests.XmlLicenseTransformTest.ValidLicense() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\XmlLicenseTransformTest.cs:line 145 ~~~ +19264 area-System.Security "Desktop: Tests under ""System.Security.Cryptography.Xml.Tests.XmlDecryptionTransformTest"" failed with ""System.NullReferenceException""" Failed tests: System.Security.Cryptography.Xml.Tests.XmlDecryptionTransformTest.LoadStreamInput_CorrectXml System.Security.Cryptography.Xml.Tests.XmlDecryptionTransformTest.GetOutput_XmlWithEncryptedDataInRoot System.Security.Cryptography.Xml.Tests.XmlDecryptionTransformTest.GetOutput_XmlWithEncryptedData System.Security.Cryptography.Xml.Tests.XmlDecryptionTransformTest.GetOutput_XmlNoEncryptedData System.Security.Cryptography.Xml.Tests.XmlDecryptionTransformTest.GetOutput_XmlWithEncryptedDataAndExcept Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Security.Cryptography.Xml.Tests/XmlDecryptionTransformTest/GetOutput_XmlWithEncryptedDataInRoot/ MESSAGE: ~~~ System.NullReferenceException : Object reference not set to an instance of an object. ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.Xml.Transform.get_PropagatedNamespaces() at System.Security.Cryptography.Xml.XmlDecryptionTransform.GetOutput() at System.Security.Cryptography.Xml.Tests.XmlDecryptionTransformTest.GetTransformedOutput(XmlDocument doc, String nodeToEncrypt) in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\XmlDecryptionTransformTest.cs:line 241 at System.Security.Cryptography.Xml.Tests.XmlDecryptionTransformTest.GetOutput_XmlWithEncryptedDataInRoot() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\XmlDecryptionTransformTest.cs:line 201 ~~~ +19267 area-System.Security "Tests under ""System.Security.Cryptography.Xml.Tests.SignedXmlTest"" failed with ""Xunit.Sdk.TrueException""" Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/consoleText Failed test: System.Security.Cryptography.Xml.Tests.SignedXmlTest.VerifyHMAC_SHA256 System.Security.Cryptography.Xml.Tests.SignedXmlTest.VerifyHMAC_MD5 System.Security.Cryptography.Xml.Tests.SignedXmlTest.VerifyHMAC_SHA512 System.Security.Cryptography.Xml.Tests.SignedXmlTest.VerifyHMAC_SHA384 ~~~ System.Security.Cryptography.Xml.Tests.SignedXmlTest.VerifyHMAC_SHA256 [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\SignedXmlTest.cs(1261,0): at System.Security.Cryptography.Xml.Tests.SignedXmlTest.VerifyHMAC_SHA256() System.Security.Cryptography.Xml.Tests.SignedXmlTest.VerifyHMAC_MD5 [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\SignedXmlTest.cs(1363,0): at System.Security.Cryptography.Xml.Tests.SignedXmlTest.VerifyHMAC_MD5() System.Security.Cryptography.Xml.Tests.SignedXmlTest.VerifyHMAC_SHA512 [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\SignedXmlTest.cs(1293,0): at System.Security.Cryptography.Xml.Tests.SignedXmlTest.VerifyHMAC_SHA512() System.Security.Cryptography.Xml.Tests.SignedXmlTest.VerifyHMAC_SHA384 [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\SignedXmlTest.cs(1328,0): at System.Security.Cryptography.Xml.Tests.SignedXmlTest.VerifyHMAC_SHA384() ~~~ +19268 area-System.Security "Tests under ""System.Security.Cryptography.Xml.Tests.SignedXmlTest"" failed with ""Xunit.Sdk.EqualException""" Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Security.Cryptography.Xml.Tests/SignedXmlTest/AsymmetricRSASignature/ https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Security.Cryptography.Xml.Tests/SignedXmlTest/SignedXmlUsesSha256ByDefault/ Failed tests: System.Security.Cryptography.Xml.Tests.SignedXmlTest.AsymmetricRSASignature System.Security.Cryptography.Xml.Tests.SignedXmlTest.SignedXmlUsesSha256ByDefault ~~~ System.Security.Cryptography.Xml.Tests.SignedXmlTest.AsymmetricRSASignature [FAIL] Assert.Equal() Failure  (pos 21) Expected: ···ttp://www.w3.org/2001/04/xmldsig-more#rsa-sha256 Actual: ···ttp://www.w3.org/2000/09/xmldsig#rsa-sha1  (pos 21) Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\SignedXmlTest.cs(191,0): at System.Security.Cryptography.Xml.Tests.SignedXmlTest.AsymmetricRSASignature() System.Security.Cryptography.Xml.Tests.SignedXmlTest.SignedXmlUsesSha256ByDefault [FAIL] Assert.Equal() Failure  (pos 21) Expected: ···ttp://www.w3.org/2001/04/xmlenc#sha256 Actual: ···ttp://www.w3.org/2000/09/xmldsig#sha1  (pos 21) Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\SignedXmlTest.cs(1579,0): at System.Security.Cryptography.Xml.Tests.SignedXmlTest.SignedXmlUsesSha256ByDefault() ~~~ +19269 area-System.Security "Desktop: System.Security.Cryptography.Xml.Tests.SigningAndVerifyingWithCustomSignatureMethod.SignedXmlHasVerifiableSignature failed with ""System.Security.Cryptography.CryptographicException""" Failed test: System.Security.Cryptography.Xml.Tests.SigningAndVerifyingWithCustomSignatureMethod.SignedXmlHasVerifiableSignature Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Security.Cryptography.Xml.Tests/SigningAndVerifyingWithCustomSignatureMethod/SignedXmlHasVerifiableSignature_signatureMethod____http___www_w3_org_2001_04_xmldsig_more_rsa_sha256____digestMethod____http___www_w3_org_2001_04_xmlenc_sha256___/ MESSAGE: ~~~ System.Security.Cryptography.CryptographicException : SignatureDescription could not be created for the signature algorithm supplied. ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.Xml.SignedXml.ComputeSignature() at System.Security.Cryptography.Xml.Tests.SigningAndVerifyingWithCustomSignatureMethod.SignXml(XmlDocument doc, RSA key, String signatureMethod, String digestMethod) in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\Samples\SigningVerifyingWithCustomSignatureMethod.cs:line 42 at System.Security.Cryptography.Xml.Tests.SigningAndVerifyingWithCustomSignatureMethod.SignedXmlHasVerifiableSignature(String signatureMethod, String digestMethod) in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\Samples\SigningVerifyingWithCustomSignatureMethod.cs:line 71 ~~~ +19270 area-System.Security "Desktop: System.Security.Cryptography.Xml.Tests.SigningVerifyingX509Cert.SignedXmlHasCertificateVerifiableSignature failed with ""System.NotSupportedException""" Failed test: System.Security.Cryptography.Xml.Tests.SigningVerifyingX509Cert.SignedXmlHasCertificateVerifiableSignature Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Security.Cryptography.Xml.Tests/SigningVerifyingX509Cert/SignedXmlHasCertificateVerifiableSignature/ MESSAGE: ~~~ System.NotSupportedException : Method is not supported. ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.RSA.DecryptValue(Byte[] rgb) at System.Security.Cryptography.Xml.SignedXml.ComputeSignature() at System.Security.Cryptography.Xml.Tests.SigningVerifyingX509Cert.SignXml(XmlDocument doc, AsymmetricAlgorithm key) in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\Samples\SigningVerifyingX509Cert.cs:line 38 at System.Security.Cryptography.Xml.Tests.SigningVerifyingX509Cert.SignedXmlHasCertificateVerifiableSignature() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\Samples\SigningVerifyingX509Cert.cs:line 73 ~~~ +19271 area-System.Security "Desktop: System.Security.Cryptography.Xml.Tests.EncryptionMethodTests.KeySize_SetNegativeValue_ThrowsArgumentOutOfRangeException failed with ""Xunit.Sdk.EqualException""" Failed test: System.Security.Cryptography.Xml.Tests.EncryptionMethodTests.KeySize_SetNegativeValue_ThrowsArgumentOutOfRangeException Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Security.Cryptography.Xml.Tests/EncryptionMethodTests/KeySize_SetNegativeValue_ThrowsArgumentOutOfRangeException_value___1_/ MESSAGE: ~~~ Assert.Equal() Failure ↓ (pos 0) Expected: value Actual: The key size should be a non negative int··· ↑ (pos 0) ~~~ STACK TRACE: ~~~ at System.AssertExtensions.Throws[T](String paramName, Func`1 testCode) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\AssertExtensions.cs:line 58 at System.Security.Cryptography.Xml.Tests.EncryptionMethodTests.KeySize_SetNegativeValue_ThrowsArgumentOutOfRangeException(Int32 value) in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\EncryptionMethodTests.cs:line 48 ~~~ +19272 area-System.Security "Desktop: System.Security.Cryptography.Xml.Tests.EncryptedXmlTest.DecryptData_CipherReference_InvalidUri failed with ""System.ArgumentNullException""" Failed test: System.Security.Cryptography.Xml.Tests.EncryptedXmlTest.DecryptData_CipherReference_InvalidUri Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Security.Cryptography.Xml.Tests/EncryptedXmlTest/DecryptData_CipherReference_InvalidUri/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.Security.Cryptography.CryptographicException) Actual: typeof(System.ArgumentNullException): Value cannot be null. Parameter name: evidence ~~~ STACK TRACE: ~~~ at System.Security.SecurityManager.GetStandardSandbox(Evidence evidence) at System.Security.Cryptography.Xml.EncryptedXml.DownloadCipherValue(CipherData cipherData, Stream& inputStream, Stream& decInputStream, WebResponse& response) at System.Security.Cryptography.Xml.EncryptedXml.GetCipherValue(CipherData cipherData) at System.Security.Cryptography.Xml.EncryptedXml.DecryptData(EncryptedData encryptedData, SymmetricAlgorithm symmetricAlgorithm) at System.Security.Cryptography.Xml.Tests.EncryptedXmlTest.<>c__DisplayClass48_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\EncryptedXmlTest.cs:line 636 ~~~ +19273 area-System.Security "Desktop: System.Security.Cryptography.Xml.Tests.RSAKeyValueTest.LoadXml_InvalidXml failed with ""System.FormatException""" Failed test: System.Security.Cryptography.Xml.Tests.RSAKeyValueTest.LoadXml_InvalidXml Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Security.Cryptography.Xml.Tests/RSAKeyValueTest/LoadXml_InvalidXml_xml_____KeyValue__RSAKeyValue__Modulus_gZ1_O7iks9ncETqNxL______/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.Security.Cryptography.CryptographicException) Actual: typeof(System.FormatException): Invalid length for a Base-64 char array or string. ~~~ STACK TRACE: ~~~ at System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inputLength, Byte* startDestPtr, Int32 destLength) at System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength) at System.Convert.FromBase64String(String s) at System.Security.Cryptography.RSA.FromXmlString(String xmlString) at System.Security.Cryptography.Xml.Tests.RSAKeyValueTest.<>c__DisplayClass7_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\RSAKeyValueTest.cs:line 99 ~~~ +19274 area-System.Security "Desktop: System.Security.Cryptography.Xml.Tests.KeyInfoX509DataTest.AddIssuerSerial_Issuer_Null failed with ""System.NullReferenceException""" Failed test: System.Security.Cryptography.Xml.Tests.KeyInfoX509DataTest.AddIssuerSerial_Issuer_Null Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Security.Cryptography.Xml.Tests/KeyInfoX509DataTest/AddIssuerSerial_Issuer_Null/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.ArgumentNullException) Actual: typeof(System.NullReferenceException): Object reference not set to an instance of an object. ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.X509Certificates.X509Utils.DecodeHexString(String s) at System.Security.Cryptography.BigInt.FromHexadecimal(String hexNum) at System.Security.Cryptography.Xml.KeyInfoX509Data.AddIssuerSerial(String issuerName, String serialNumber) at System.Security.Cryptography.Xml.Tests.KeyInfoX509DataTest.<>c__DisplayClass13_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\KeyInfoX509DataTest.cs:line 157 ~~~ +19275 area-System.Security "Desktop: System.Security.Cryptography.Xml.Tests.KeyInfoX509DataTest.AddIssuerSerial_Null_Serial failed with ""System.ArgumentException""" Failed test: System.Security.Cryptography.Xml.Tests.KeyInfoX509DataTest.AddIssuerSerial_Null_Serial Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Security.Cryptography.Xml.Tests/KeyInfoX509DataTest/AddIssuerSerial_Null_Serial/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.FormatException) Actual: typeof(System.ArgumentException): String cannot be empty or null. Parameter name: issuerName ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.Xml.X509IssuerSerial..ctor(String issuerName, String serialNumber) at System.Security.Cryptography.Xml.KeyInfoX509Data.AddIssuerSerial(String issuerName, String serialNumber) at System.Security.Cryptography.Xml.Tests.KeyInfoX509DataTest.<>c__DisplayClass12_0.b__0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Xml\tests\KeyInfoX509DataTest.cs:line 150 ~~~ +19276 area-System.Threading Inconsistent results with Parallel.For Running this code produces inconsistent results: ```csharp { static void Main(string[] args) { for (int i = 0; i < 100; i++) { Run(); } } const int _len = 1000 * 1000;//* 1000; static void Run() { System.Diagnostics.Stopwatch s = new System.Diagnostics.Stopwatch(); s.Start(); Parallel.For(0, _len, i => { }); s.Stop(); System.Console.WriteLine(s.ElapsedMilliseconds.ToString()); } } ``` +19278 area-System.Globalization System.Globalization.Calendars - fix Random instances shared across threads Remove sharing of RandomDataGenerators betwen threads. Also, the Taiwanese utilities would generate the same year/month/day every call, almost certainly not what was intended. +19280 area-System.Diagnostics "Desktop: System.Diagnostics.Tests.HttpHandlerDiagnosticListenerTests.TestCanceledRequest failed with ""System.Net.WebException""" Failed test: System.Diagnostics.Tests.HttpHandlerDiagnosticListenerTests.TestCanceledRequest Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Diagnostics.Tests/HttpHandlerDiagnosticListenerTests/TestCanceledRequest/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.Threading.Tasks.TaskCanceledException) Actual: typeof(System.Net.WebException): The request was aborted: The request was canceled. ~~~ STACK TRACE: ~~~ at System.Net.ConnectStream.BeginRead(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state) at System.IO.Stream.<>c.b__43_0(Stream stream, ReadWriteParameters args, AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncTrim[TInstance,TArgs](TInstance thisRef, TArgs args, Func`5 beginMethod, Func`3 endMethod) at System.IO.Stream.BeginEndReadAsync(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at System.IO.Stream.d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.StreamToStreamCopy.<>c.b__1_0(Task completed, Object innerSource) in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Http\src\System\Net\Http\StreamToStreamCopy.cs:line 61 at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpContent.d__51.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Http\src\System\Net\Http\HttpContent.cs:line 383 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 462 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +19281 area-System.Net "Desktop: System.Net.Sockets.Tests.SendReceiveApm.SendRecv_DisposeDuringPendingReceive_ThrowsSocketException failed with ""System.ObjectDisposedException""" Failed test: System.Net.Sockets.Tests.SendReceiveApm.SendRecv_DisposeDuringPendingReceive_ThrowsSocketException Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Net.Sockets.Tests/SendReceiveApm/SendRecv_DisposeDuringPendingReceive_ThrowsSocketException/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.Net.Sockets.SocketException) Actual: typeof(System.ObjectDisposedException): Cannot access a disposed object. Object name: 'System.Net.Sockets.Socket'. ~~~ STACK TRACE: ~~~ at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult, SocketError& errorCode) at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at System.Net.Sockets.SocketTaskExtensions.<>c.b__6_1(IAsyncResult asyncResult) in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Sockets\src\System\Net\Sockets\SocketTaskExtensions.netfx.cs:line 80 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +19282 area-Serialization Add a new Dcs test. @shmao , @huanwu Please help to review this pull request. +19283 area-System.Security "Desktop: Tests under ""System.Security.Cryptography.Cng.Tests.RsaCngTests"" failed with ""System.Security.Cryptography.CryptographicException""" Failed tests: System.Security.Cryptography.Cng.Tests.RsaCngTests.RSACng_Ctor_UnusualKeysize_1032 System.Security.Cryptography.Cng.Tests.RsaCngTests.RSACng_Ctor_UnusualKeysize_384 Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Security.Cryptography.Cng.Tests/RsaCngTests/RSACng_Ctor_UnusualKeysize_1032/ https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/39/testReport/System.Security.Cryptography.Cng.Tests/RsaCngTests/RSACng_Ctor_UnusualKeysize_384/ MESSAGE: ~~~ System.Security.Cryptography.CryptographicException : Specified key is not a valid size for this algorithm. ~~~ STACK TRACE: ~~~ at System.Security.Cryptography.AsymmetricAlgorithm.set_KeySize(Int32 value) at System.Security.Cryptography.RSACng.set_Key(CngKey value) at System.Security.Cryptography.Cng.Tests.RsaCngTests.RSACng_Ctor_UnusualKeysize(Int32 expectedKeySize, Byte[] keyBlob, RSAParameters expectedParameters) in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Cng\tests\RsaCngTests.cs:line 140 at System.Security.Cryptography.Cng.Tests.RsaCngTests.RSACng_Ctor_UnusualKeysize_1032() in D:\j\workspace\outerloop_net---903ddde6\src\System.Security.Cryptography.Cng\tests\RsaCngTests.cs:line 128 ~~~ +19284 area-System.Globalization "Test: System.Globalization.Tests.NumberFormatInfoNumberGroupSizes/NumberGroupSizes_Get failed with ""Xunit.Sdk.EqualException""" "Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.NumberFormatInfoNumberGroupSizes/NumberGroupSizes_Get(format: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = \"".\"", CurrencyGroupSeparator ...` has failed. Assert.Equal() Failure Expected: Int32[] [3, 2] Actual: Int32[] [3] Stack Trace: at System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.NumberGroupSizes_Get(NumberFormatInfo format, Int32[] expected) Build : Master - 20170503.01 (Portable Core Tests) Failing configurations: - Ubuntu.1704.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170503.01/workItem/System.Globalization.Tests/analysis/xunit/System.Globalization.Tests.NumberFormatInfoNumberGroupSizes~2FNumberGroupSizes_Get(format:%20NumberFormatInfo%20%7B%20CurrencyDecimalDigits%20=%202,%20CurrencyDecimalSeparator%20=%20%5C%22.%5C%22,%20CurrencyGroupSeparator%20..." +19285 area-System.Net Fire Issue: System.Net.Socket.Tests failed to generate the test result Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170503.01/workItem/System.Net.Sockets.Tests/wilogs ~~~ 2017-05-03 01:44:25,237: INFO: proc(54): run_and_log_output: Output: xUnit.net console test runner (64-bit .NET Core) 2017-05-03 01:44:25,237: INFO: proc(54): run_and_log_output: Output: Copyright (C) 2014 Outercurve Foundation. 2017-05-03 01:44:25,237: INFO: proc(54): run_and_log_output: Output: 2017-05-03 01:44:25,315: INFO: proc(54): run_and_log_output: Output: Discovering: System.Net.Sockets.Tests 2017-05-03 01:44:25,628: INFO: proc(54): run_and_log_output: Output: Discovered: System.Net.Sockets.Tests 2017-05-03 01:44:25,957: INFO: proc(54): run_and_log_output: Output: Starting: System.Net.Sockets.Tests 2017-05-03 01:44:32,112: INFO: proc(54): run_and_log_output: Output: 2017-05-03 01:44:32,112: INFO: proc(54): run_and_log_output: Output: Unhandled Exception: System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host 2017-05-03 01:44:32,112: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) 2017-05-03 01:44:32,112: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.Tests.SocketAsyncExtensions.<>c__DisplayClass2_0.b__0(IAsyncResult asyncResult) 2017-05-03 01:44:32,112: INFO: proc(54): run_and_log_output: Output: at System.Net.LazyAsyncResult.Complete(IntPtr userToken) 2017-05-03 01:44:32,112: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-05-03 01:44:32,112: INFO: proc(54): run_and_log_output: Output: at System.Net.ContextAwareResult.Complete(IntPtr userToken) 2017-05-03 01:44:32,112: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 2017-05-03 01:44:32,112: INFO: proc(54): run_and_log_output: Output: at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 2017-05-03 01:44:32,726: INFO: proc(54): run_and_log_output: Output: Finished running tests. End time= 1:44:32.72, Exit code = -532462766 2017-05-03 01:44:32,726: INFO: proc(58): run_and_log_output: Exit Code: -532462766 2017-05-03 01:44:32,726: ERROR: scriptrunner(82): _main: Error: No exception thrown, but XUnit results not created 2017-05-03 01:44:32,726: ERROR: helix_test_execution(83): report_error: Error running xunit None ~~~ +19286 area-System.Diagnostics "Test: System.Diagnostics.Tests.HttpHandlerDiagnosticListenerTests/TestCanceledRequest failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.HttpHandlerDiagnosticListenerTests/TestCanceledRequest` has failed. Assert.Equal() Failure\r Expected: 1\r Actual: 0 Stack Trace: at System.Diagnostics.Tests.HttpHandlerDiagnosticListenerTests.d__6.MoveNext() in E:\A\_work\134\s\corefx\src\System.Diagnostics.DiagnosticSource\tests\HttpHandlerDiagnosticListenerTests.cs:line 162 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170503.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170503.01/workItem/System.Diagnostics.DiagnosticSource.Tests/analysis/xunit/System.Diagnostics.Tests.HttpHandlerDiagnosticListenerTests~2FTestCanceledRequest +19287 area-System.IO "Test: System.IO.Pipes.Tests.AnonymousPipeTest_Write_ServerIn_ClientOut/ValidFlush_DoesntThrow failed with ""Xunit.Sdk.EqualException'" Opened on behalf of @Jiayili1 The test `System.IO.Pipes.Tests.AnonymousPipeTest_Write_ServerIn_ClientOut/ValidFlush_DoesntThrow` has failed. Assert.Equal() Failure\r Expected: 123\r Actual: -1 Stack Trace: at System.IO.Pipes.Tests.PipeTest_Write.d__9.MoveNext() in E:\A\_work\298\s\corefx\src\System.IO.Pipes\tests\PipeTest.Write.cs:line 222 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170503.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x64-Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170503.01/workItem/System.IO.Pipes.Tests/analysis/xunit/System.IO.Pipes.Tests.AnonymousPipeTest_Write_ServerIn_ClientOut~2FValidFlush_DoesntThrow +19288 area-System.Security Disable the failed tests for Issue 19238. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #19238"")] Attribute to following methods: ImportExport1032 UnusualExponentImportExport ImportReset LargeKeyImportExport PaddedExport MultiExport in ImportExport.cs under System.Security.Cryptography.Rsa.Tests" +19289 area-Infrastructure Enable building on older Linux distros This change enables building of corefx native parts on older Linux distros that don't support IN_EXCL_UNLINK, where the getnameinfo's last parameter (flags) is unsigned int instead of int, EPOLLET constant is int and in_pktinfo and struct ip_mreqn presence detection during build using the check_type_size doesn't work. +19290 area-System.Net Disable failed tests for Issue 19225. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #19225"")] attribute for tests: HttpWebRequest_KeepAlive_CorrectConnectionHeaderSent HttpWebRequest_PreAuthenticateGetSet_Ok in HttpWebRequestHeaderTest.cs under System.Net.Tests" +19291 area-System.Diagnostics Disable Failed test for Issue 19091. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #19091"")] for Test_GenerateManifest_InvalidEventSources() in TestsManifestNegative.cs under BasicEventSourceTests" +19292 area-System.Net Disable failed test for issue 19083. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #19083"")] For Abort_BeginGetRequestStreamThenAbort_EndGetRequestStreamThrowsWebException in HttpWebRequestTest.cs under System.Net.Tests" +19294 area-System.Net Fix DisposeDuringPendingReceive test The test was meant to be run with several different async implementations: APM, EAP, Task, and Task.Run(sync). But it was accidentally being run all four times with the same Task-based implementation. When fixing that, it highlighted that a) we throw ObjectDisposedException in this situation in the APM case (because the EndReceive call does a CleanedUp check before inspecting the IAsyncResult), and b) that we have a small difference of behavior on netfx due to the Task-based implementation for netfx wrapping the APM implementation rather than the EAP implementation, and thus surfacing the difference noted in (a). Fixes https://github.com/dotnet/corefx/issues/19281 +19295 area-System.Reflection Proposal : runtime attributes **Summary** Making easier to extend existing classes with attributes **Motivation** Sometimes we find us in situation when we want to attribute being dynamically added to a class that didn't have it before. It may be `Serializable`, `DataContract` or tons of `Validation`. Very viable example is that we want to display some model in UI and validate user inputs. In Microsoft stack you have to do it using `unobtrusive attributes` and MVC takes all care about it. But you cannot reference `Microsoft.Mvc.Razor` from model just because you want some validation for obvious reasons. And here you have to write some ViewModels that is just like a model, but has attributes. You have to write a ViewModel not because you want to add some indirection, but because language itself makes you to do it. **Design** I propose use the same mechanism that is using for inheritance and interfaces. Object can inherit one and only one parent (and overrides address in methodtable) and it has a list of interfaces and implementations of interface methods. I propose something similar: we can just add something like `DynamicAttributesList`, which can be freely populated and cleared by reflection methods. When you call `GetAttributes` it concat results of current implementation of `GetAttributes` and attributes from this list. We already have `System.ComponentModel.TypeDescriptor`, but we may want closer integration with methods such as mentioned `GetAttributes`, because otherwise it's a bit useless. I don't see this change breaks anything in any way, it's quietly easy to implement it and it simplify some cases a lot. +19298 area-Infrastructure Add repo name explicitly to symbol publish leg skip ci please `DotNet-CoreFX-Trusted` is the same as the default value specified in the build leg's checked-in json, but it seems that setting it manually might be necessary because the symbol leg broke while the package publish leg didn't. The goal of the workaround is to make DotNet-Trusted-Publish-Symbols work at least as well as DotNet-Trusted-Publish. /cc @chcosta +19301 area-System.Globalization Fix Globalization test on Ubuntu 17.04 Fixes #19284 +19305 area-Infrastructure Support building corefx on Ubuntu 17.04 and OSX 10.13 When building corefx on Ubuntu 17.04 getting some error like: ``` /home/tarek/oss/corefx/Tools/depproj.targets(83,5): error : Error no assets were resolved from NuGet packages. [/home/tarek/oss/corefx/external/ilasm/ilasm.depproj] ``` +19306 area-System.Net Check libcurl TLS backend version to avoid calling into OpenSSL 1.1 If we end up in a sheared state where we're linked against OpenSSL 1.0(.2) (the best we currently support) but libcurl is linked against OpenSSL 1.1 (the newest version) we'll try interpreting incompatible pointers; leading to strange behaviors, including segfaults. Since the distro changing libcurl to use openssl11 could occur even with OpenSSL 1.0 still being on the system the only sign of problems we have are things like segfaults; so we should fix this for the 2.0 release before it becomes prevalent. The data has to be there somewhere, since it's included in `curl --version`: ```sh $ curl --version curl 7.53.0 (i686-pc-linux-gnu) libcurl/7.53.0 OpenSSL/1.0.2k zlib/1.2.11 Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smtp smtps telnet tftp Features: IPv6 Largefile NTLM SSL libz TLS-SRP UnixSockets HTTPS-proxy ``` +19307 area-System.Net Modified SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync can't handle large buffers "The test SocketPerformanceAsyncTests.SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync was modified to send a large buffer which occasionally fails under Unix, but works under Windows. To repro the error, modify the test variables as follows: ```c# int iterations = 20; // was 200 * _iterations int bufferSize = 8192; // was 256 int socket_instances = 1; // was 200 ``` The smallest buffer that repros was 4096 but that does not repro as easily as 8192. A buffer size of 2048 did not repro even after thousands of runs. The result with these settings should be an Exception thrown from the test with a message `""Unexpected bytesSent""`. If this is debugged slightly, the number of bytes received by the client is lower than expected, and the value can vary with each run. The test uses a Socket with SocketType.Stream and client using TaskCompletionSource to return the number of bytes sent. Whether this is a test or product bug is not known yet; the Windows version works even for very large buffers." +19310 area-Serialization Exclude IXmlSerializable.cs from SGen project. @shmao +19311 area-Serialization Skip time span tests in desktop with lower version dotnet Fix #18661 @shmao @zhenlan @mconnew +19314 area-System.Net Test S.N.NetworkInformation.Tests.NetworkInterfaceBasicTest.NetworkInterface_LoopbackInterfaceIndex_MatchesReceivedPackets crashes on uapaot +19315 area-System.Net Fix S.Net.NetworkInformation tests on aot +19316 area-Infrastructure Remove UAP10.1 assets in packages For the .NET Core 2.0 release we should exclude any uap10.1 specific assets in the individual packages as that isn't the correct TFM and we are targeting 2.1 for finishing that work so we should exclude them for now. The only uap package we should produce is the private platform package, but that one won't actually ship on nuget org. cc @ericstj @joperezr @danmosemsft +19318 area-System.Globalization "decimal ToString(""C"") output difference across OS platforms" "I have an app that uses the decimal ToString(String, IFormatProvider) method to get currency formatted string for a specific culture ie $7.99 for en-US. I have noticed a slight difference for the culture ""da-dk"" on what is returned across Linux/OSX/Windows. Sample code: ``` Console.WriteLine(9.99m.ToString(""C"", new CultureInfo(""da-dk""))); ``` On Windows and OSX, the output is: **9,99 kr.** On Linux however, the output is missing the period: **9,99 kr** Though this is a very minor bug this is one I hope is easy to fix to have consistent behavior across OS platforms. dotnet --info across platforms: OSX: ``` .NET Command Line Tools (1.0.3) Product Information: Version: 1.0.3 Commit SHA-1 hash: 37224c9917 Runtime Environment: OS Name: Mac OS X OS Version: 10.12 OS Platform: Darwin RID: osx.10.12-x64 Base Path: /usr/local/share/dotnet/sdk/1.0.3 ``` Windows: ``` .NET Command Line Tools (1.0.3) Product Information: Version: 1.0.3 Commit SHA-1 hash: 37224c9917 Runtime Environment: OS Name: Windows OS Version: 10.0.14393 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\1.0.3 ``` Linux (To test this on Linux I used the microsoft/dotnet:1.1.1 Docker image) " +19319 area-System.Diagnostics System.Diagnostics.StackTrace.StackTraceSymbols class missing from .NET Core 2.0 "The StackTraceSymbols class in the latest .NET Core 2.0 package (I’m currently using the Microsoft.NETCore.App version 2.0.0-preview2-002093-00 package in the debuggertests repo) isn’t there. This internal class is used by System.Private.CoreLib StackTrace code to load portable pdbs for the runtime diagnostic stack trace to get source/line info. If might be from this commit (hash 446e0057) by Jose on 1/20/17 to System.Diagnostics.StackTrace.csproj: ``` - + ``` If this class/code isn’t in this assembly, the runtime won’t display any stack trace source/line info for unhandled exceptions. The class is in the 4.4.0-beta-24913-02 package old package on myget (https://dotnet.myget.org/feed/dotnet-core/package/nuget/System.Diagnostics.StackTrace/4.4.0-beta-24913-02). " +19320 area-Infrastructure Disable symbol package MyGet publish on release/* "Adds `if ($env:SourceBranch.StartsWith(""release/"")) { exit }` to the symbol package publish step. This will automatically disable symbol package publishing to MyGet for `release/*` branches. This was previously done by making manual changes on the release branch, but this step doesn't need to be manual. This is the CoreFX part of https://github.com/dotnet/core-eng/issues/728." +19321 area-System.Security Make VerifyWithRevocation retry on failure VerifyWithRevocation can fail due to network issues. Since it doesn't fail very often the network issues don't seem to happen all that often. So loop the call to chain.Build when it fails, hoping that the call eventually succeeds. If the call fails then the console logs will contain information for what failed at each step. Fixes #14536. +19322 area-System.Runtime Add type forwarders for newly added IsByRefLikeAttribute in System.Runtime.CompilerServices Add type forwarders for newly added IsByRefLikeAttribute in System.Runtime.CompilerServices IsByRefLikeAttribute has been added to dotnet/coreclr and PR is pending for dotnet/corert. (see: https://github.com/dotnet/corert/pull/3502) cc @jcouv @jkotas +19323 area-System.Net Re-enabling tests and adding workaround for a known Windows bug. Potential fix for #16516. A Windows-OS bug may corrupt the X509Certificate KeyStore if multiple processes/threads import the same PFX. A global mutex should prevent this from happening in our tests. +19324 area-Infrastructure Disable by global apicompat build by default Fix https://github.com/dotnet/corefx/issues/17390 +19325 area-System.Data fixed isolation level leak on connection disposed Currently, isolation level setting is not cleared out when connection moves back to pool, and connection keeps isolation level value of previous session. This can cause problem because default isolation level `ReadCommitted` is expected for fresh connection object. This fix resets isolation level to default when pooled connection is closed. This fix is for https://github.com/dotnet/corefx/issues/18277 +19327 area-Infrastructure Remove some assemblies from some OS shared frameworks A number of assemblies are only needed for implementation closure on some OS's so for those lets only include them on the OS that needs them. Contributes to https://github.com/dotnet/corefx/issues/16912. PTAL @ericstj +19328 area-System.Net Implement close_notify alert on ShutdownAsync on Linux. implements close_notify in #12319, the other part of implementing alerts requires changing the structure of pal on Unix. For now, returning the same behavior as on OSX. cc @bartonjs @stephentoub @geoffkizer @davidsh @CIPop @karelz +19329 area-System.IO Fix some System.IO.Path tests Fixes: #18713 Fixes: #18716 Fixes: #18823 Fixes: #18825 Contributes: #18888 cc: @danmosemsft @JeremyKuhne @ianhays +19330 area-System.IO System.IO.Path.IsPathRooted does not check if valid drive letter on Desktop See: https://github.com/dotnet/coreclr/issues/10297 Opened this one as it seems that coreclr doesn't have netfx-port-consider label that is caught by the tool. FYI: @JeremyKuhne +19331 area-System.Runtime Turn off appdomain test for uwp +19332 area-System.Runtime Caching EqualityComparer.Default instances in ValueTuple Fixes https://github.com/dotnet/corefx/issues/18666 +19333 area-System.Diagnostics Fix test canceled request Fix for #19286 and #19280. 1. control at which point the cancellation happened 2. expect TaskCanceledException **or** WebException that could also be thrown with RequestCanceled status +19334 area-System.IO "Desktop: System.Runtime.Extensions.Tests test failed ""System.IO.Tests.PathTests.GetDirectoryName""" "`System.IO.Tests.PathTests.GetDirectoryName` failed with error: ``` System.IO.Tests.PathTests.GetDirectoryName(path: """", expected: null) [FAIL] System.ArgumentException : The path is not of a legal form. Stack Trace: at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths) at System.IO.Path.InternalGetDirectoryName(String path) D:\repos\corefx\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs(45,0): at System.IO.Tests.PathTests.GetDirectoryName(String path, String expected) ``` There is a difference in behavior here as .Net Core returns null when `Path.GetDirectoryName(string.Empty)` and Desktop throws and `ArgumentException`. I've tried it in a ConsoleApp targeting 4.6.2 and it still throws, did this behavior changed in 4.7 or do we have to change .Net Core to throw? cc: @JeremyKuhne @ianhays " +19335 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientHandlerTest/Proxy_BypassFalse_GetRequestGoesThroughCustomProxy(creds: null, wrapCredsInCache: False) Opened on behalf of @jiangzeng The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/Proxy_BypassFalse_GetRequestGoesThroughCustomProxy(creds: null, wrapCredsInCache: False)` has failed. System.AggregateException : One or more errors occurred. (Object reference not set to an instance of an object.) (An error occurred while sending the request.) (One or more errors occurred. (An error occurred while sending the request.))\r ---- System.NullReferenceException : Object reference not set to an instance of an object.\r ---- System.Net.Http.HttpRequestException : An error occurred while sending the request.\r -------- System.Net.Http.WinHttpException : The operation has been canceled\r ---- System.AggregateException : One or more errors occurred. (An error occurred while sending the request.)\r -------- System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ------------ System.Net.Http.WinHttpException : The operation has been canceled Stack Trace: at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.Proxy_BypassFalse_GetRequestGoesThroughCustomProxy(ICredentials creds, Boolean wrapCredsInCache) ----- Inner Stack Trace #1 (System.NullReferenceException) ----- at System.Net.Http.Functional.Tests.LoopbackGetRequestHttpProxy.<>c__DisplayClass2_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.LoopbackGetRequestHttpProxy.d__2.MoveNext() ----- Inner Stack Trace #2 (System.Net.Http.HttpRequestException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() ----- Inner Stack Trace #3 (System.AggregateException) ----- at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.<>c.b__87_0(Task`1 t) at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : Master - 20170504.01 (Core Tests) Failing configurations: - Windows.10.Amd64-x64 - Release Link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170504.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FProxy_BypassFalse_GetRequestGoesThroughCustomProxy(creds:%20null,%20wrapCredsInCache:%20False) +19337 area-System.IO Difference in behavior Path.GetDirectoryName(string.Empty) throws on Desktop, returns null on Core `Path.GetDirectoryName(string.Empty)` throws on Desktop `ArgumentException` and in .Net Core it returns `null` I think we should make them match. See msdn documentation: https://msdn.microsoft.com/es-es/library/system.io.path.getdirectoryname(v=vs.110).aspx cc: @JeremyKuhne @ianhays +19342 area-System.IO `Path.GetPathRoot(string.Empty)` difference in behavior `Path.GetPathRoot(string.Empty)` in Desktop throws `ArgumentException`, on .NET Core it returns `String.Empty` See msdn documentation: https://msdn.microsoft.com/en-us/library/system.io.path.getpathroot(v=vs.100).aspx cc: @JeremyKuhne @ianhays +19343 area-System.IO Fix remaining IO tests Fixes: #18715 Fixes: #19334 Fixes: #18888 Fixes: #18823 Fixes: #19382 cc: @danmosemsft +19344 area-System.Net Test failure: System.Net.Http.Functional.Tests.DiagnosticsTest/SendAsync_ExpectedDiagnosticCancelledLogging Opened on behalf of @jiangzeng The test `System.Net.Http.Functional.Tests.DiagnosticsTest/SendAsync_ExpectedDiagnosticCancelledLogging` has failed. Assert.Equal() Failure Expected: 42 Actual: 134 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() Build : Master - 20170504.01 (Portable Core Tests) Failing configurations: - Centos.73.Amd64-x64 - Release Link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170504.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.DiagnosticsTest~2FSendAsync_ExpectedDiagnosticCancelledLogging +19345 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/GetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol: Tls11, requestOnlyThisProtocol: False) Opened on behalf of @jiangzeng The test `System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/GetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol: Tls11, requestOnlyThisProtocol: False)` has failed. System.ComponentModel.Win32Exception : The credentials supplied to the package were not recognized Stack Trace: at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint) at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) at System.Net.Security.SslStream.<>c__DisplayClass35_0.b__0(AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) at System.Net.Test.Common.LoopbackServer.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.<>c__DisplayClass4_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170504.01 (Portable Core Tests) Failing configurations: - Windows.7.Amd64-x64 - Release Link: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170504.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test~2FGetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol:%20Tls11,%20requestOnlyThisProtocol:%20False) +19346 area-System.Reflection Surface System.Type.IsVariableBoundArray @karelz @stephentoub @AtsushiKan This PR resolves #16836 NB unlike IsSZArray, I've not declared IsVariableBoundArray as virtual. My reasoning is that since the TypeInfo stuff is going away, this shouldn't need to be overridden. +19347 area-System.Net Disable failed test for issue 19038. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #19038"")] For GetAsync_ResponseContentRead_CancelUsingTimeoutOrToken_TaskCanceledQuickly() in CancellationTest.cs under System.Net.Http.Functional.Tests CC: @danmosemsft @safern " +19350 area-System.Xml Disable failed test for issue 18810. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #18810"")] For TestResolveInvalidPaths() in XmlSystemPathResolverTests.cs under System.Xml.Tests cc: @danmosemsft @safern " +19351 area-System.Diagnostics Dsiable failed test for issue 18808. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #18808"")] For Test_EventSource_NamedEventSource() in TestsManifestGeneration.cs under BasicEventSourceTests cc: @danmosemsft @safern " +19352 area-System.Diagnostics Disable failed tests for issue 18806. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #18806"")] For: BasicEventSourceTests.TestsWriteEvent.Test_WriteEvent_Manifest_EventListener BasicEventSourceTests.TestsWriteEvent.Test_WriteEvent_SelfDescribing_EventListener BasicEventSourceTests.TestsWriteEvent.Test_WriteEvent_SelfDescribing_EventListener_UseEvents BasicEventSourceTests.TestsWriteEvent.Test_WriteEvent_Manifest_EventListener_UseEvents cc: @danmosemsft @safern " +19353 area-System.Security Disable failed test for issue 18719. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #18719"")] For TestVerify521_EcdhKey() in ECDsaCngTests.cs under System.Security.Cryptography.Cng.Tests cc: @danmosemsft @safern " +19354 area-System.Runtime ExpandEnvironmentVariables fails in certain conditions on 32-bit "Repro: ```C# string s = ""C:\\J\\workspace\\debug_windows---bc3c3f12\\artifacts\\win81-x86\\stage2\\sdk\\2.0.0-preview1-005938\\Extensions""; for (int i = 0; i < 2; i++) { Environment.ExpandEnvironmentVariables(s); } ``` On 64-bit, succeeds. On 32-bit, throws: ``` System.ArgumentOutOfRangeException : capacity was less than the current size. Parameter name: value Stack Trace: at System.Text.StringBuilder.set_Capacity(Int32 value) C:\Users\stoub\Source\repos\corefx\src\System.Runtime.Extensions\tests\System\Environment.ExpandEnvironmentVariables.cs(95,0): at System.Tests.ExpandEnvironme ntVariables.ExpandEnvironmentVariablesCore(String name) ``` " +19355 area-System.Runtime Fix marshaling-related ArgumentException in ExpandEnvironmentVariablesCore "This bug requires a certain pattern of inputs and calls to manifest, e.g. - StringBuilderCache contains a StringBuilder with Capacity == N, where N > 100 - Call ExpandEnvironmentVariablesCore on 32-bit with a string (no quoted regions) of length M > 100 && M < N The ExpandEnvironmentVariablesCore implementation will acquire a StringBuilder of at least length 100, tracking the requested size of 100 in ""currentSize"" rather than the actual capacity it gets back. Then it will make an initial call to ExpandEnvironmentStringsW with the StringBuilder and the tracked currentSize. The length will be insufficient, so the Win32 call will fail and return the required size. But the runtime marshaling for the StringBuilder doesn't know it failed, so it dutifully marshals back the results of the call, and in doing so, ends up increasing the capacity of the StringBuilder and, importantly, increasing its Length, such that the Length is now larger than both the required size and currentSize. It will then try to increase the capacity of the builder to the required size, but the length and capacity are already longer than that, and the call to set the Capacity will throw due to it being perceived as losing data. The short-term fix is simple: just clear the builder before rather than after changing its capacity. A better longer-term fix is to stop using StringBuilder entirely; it adds overhead for little benefit. Fixes https://github.com/dotnet/corefx/issues/19354 cc: @JeremyKuhne " +19356 area-System.IO System.IO.Path.IsPathRooted tests added +19357 area-System.Net HttpClient, Apple Push api, HTTP/2, IIS 8.5 "In development (Visual Studio MVC/WebApi project with IIS Express), I have been successful calling Apples APNS api (api.push.apple.com), however, I fail when I move code to production (Windows 2012 R2, IIS 8.5). The production WebApi application works fine, it just crashes on httpclient SendAsync to api.push.apple.com using http/2 (generic ""Error while copying content to a stream""). I can run a successful curl in production calling api.push.apple.com with all my parameters (returns 200 success code), but my httpclient code fails . The code in development works great and I can send push notifications to mobile devices easily. The curl -v output on server shows successful negotiation of certificates (which I though may have been the problem as APNS requires Geo Trust Global CA root cert). Logging shows all necessary parameters are being created (jwt token for example). I'm stumped, would greatly appreciate assistance. ?IIS configuration, ?firewall issue..." +19358 area-Meta Add nice messages to all auto generated PNSE For 2.0 we need to build on https://github.com/dotnet/buildtools/issues/1449 to add nice messages to all PNSE generated code. Talk to area owners to get nice strings. +19359 area-System.Net Skip DualMode localhost tests when it's not "Several DualMode tests assume that ""localhost"" maps to both IPv4 and IPv6 addresses, either because the test is verifying that a DualMode socket (such as one used by Socket.ConnectAsync) is able to connect to both IPv4 and IPv6 endpoints, or because the test is verifying that a DualMode socket listening at a given address can accept both IPv4 and IPv6 connections. but ""localhost"" doesn't always map to both IPv4 and IPv6. Change the tests to be conditional to only run when that assumption holds. Fixes https://github.com/dotnet/corefx/issues/4002 cc: @steveharter, @davidsh, @geoffkizer " +19361 area-System.Xml Remove duplicate Xml tests Resolves https://github.com/dotnet/corefx/issues/18810. Removes duplicate of XmlResolver tests from XmlSchema tests. The two versions: https://github.com/dotnet/corefx/blob/7e0170e0ce47ef07c987cdbf8716259d9054cd1d/src/System.Private.Xml/tests/XmlSchema/XmlSchemaSet/XmlSystemPathResolverTests.cs https://github.com/dotnet/corefx/blob/30e9fb02d048e88c71f772eed80ccff407f614d9/src/System.Private.Xml/tests/XmlReader/XmlResolver/XmlSystemPathResolverTests.cs cc: @krwq @danmosemsft +19362 area-System.Security Disable failing PKCS tests from =net462 is running, and the fix is non-quirked. These are the last tests failing in CI for the PKCS test assembly. Note that the `IsNetfx462OrNewer` function only checks the running framework version, not the highest framework version available on the system. This is somewhat problematic since the fix came in 462 and is non-quirked. The end result of this is that these tests will be ignored when the running TFM is =net462 is available even when they will actually pass. It's not perfect, but it at least absolutely disables the tests when they would fail (i.e. when 461 is the highest available framework version). cc: @bartonjs @krwq resolves https://github.com/dotnet/corefx/issues/19090 +19363 area-Infrastructure Source init-tools rather than execute Sourcing init-tools.sh rather than executing it, prevents it from spawning a new process. The ulimit that's set is only valid for the sub-process which means that it's parent won't be affected by it which results in build failures as mentioned in #19152. Sourcing it also means we no longer have to catch the exit code. +19364 area-System.Diagnostics Fix missing System.Diagnostics.StackTrace.StackTraceSymbols class Add ILLinkTrim.xml to keep illink from removing it. Issue #19319 +19365 area-System.Globalization System.Globalization.Tests now at 3 failures. Moved some unicode strings out of InlineData to work around TFS 430084 (.Net Native mangling Unicode strings in custom attributes.) More .ParamName checking disabled. This test still fails because we optimize away the InvalidCultureName property. Not sure if we want to define that as intended behavior so leaving it alone for the time being. +19366 area-System.IO Stream.Flush docs should be explicit about not throwing NotImplementedException even if CanWrite == false This is related to [issue #19194](https://github.com/dotnet/corefx/issues/19194) in which a read-only stream was throwing NotImplementedException on Flush. Per discussion on the thread of associated issue streams should not do that, however, documents are not explicit about it. +19367 area-System.IO Add Path.cs performance tests. Add performance tests for Path.cs This is based on #18765 @mellinoe @karelz I had two questions: 1. Why do the perf tests run with 9 calls to the method inside the loop? 2. How do you decide the number of inner iterations? AKA doing 20k vs 10k and 20k and 30k? I did not add tests for: AltDirectorySeparatorChar DirectorySeparatorChar InvalidPathChars PathSeparator VolumeSeparatorChar GetInvalidFileNameChars GetInvalidPathChars GetTempFileName GetRelativePath +19369 area-System.Reflection Surface Type.IsTypeDefinition and tests Close https://github.com/dotnet/corefx/issues/17345 This also enables the IsSZArray and IsVariableBoundsArray tests on .Net Native. - Don't let test call MakeArrayType() on a generic type definition (.Net Native doesn't allow that loophole.) - Don't let test call create rank-1 multidim arrays on .Net Native. Add a rank-2 test to compensate (and provide extra coverage on CoreCLR.) +19370 area-Serialization Add a test for KnownTypeAttribute.MethodName Property #18302 @shmao @zhenlan @mconnew +19371 area-System.Net Use ReferenceEquals instead of Delegate.op_Equality for sentinel checks The reference equality check is more efficient than `Delegate.op_Equality`. cc: @stephentoub, @davidsh, @CIPop, @Priya91 +19372 area-System.Net Add SEC_E_DOWNGRADE_DETECTED to error table See detailed analysis here: https://github.com/dotnet/corefx/issues/11708#issuecomment-299325869 After I made modification and build on my machine, I used VS to debug into InitializeSecurityContext() and change the return error code to SEC_E_DOWNGRADE_DETECTED. The behavior matches in .NET Framework (cc: @davidsh ) ![capture](https://cloud.githubusercontent.com/assets/8537784/25728873/ada21dec-30e6-11e7-8a93-aa386f0f516a.PNG) Fix #11708 +19374 area-System.Diagnostics If RemoteExecutorConsoleApp the exit code's meaning it unclear and the actual exception is hidden `exitCode` is not used at all if an exception is thrown. A system-specific return code is used instead. @stephentoub explains below: > 134 as the exit code is generally what you get from a .NET process exiting with an unhandled exception or with an abort() or a failed native assert(), as all of these trigger a SIGABRT, which is signal number 6... add the signal number to 128 (just a magic offset), and you get 134. So this Equal failure is saying it expected an exit code of 42 (which is SuccessExitCode, i.e. the app successfully ran what it was supposed to), but instead got 134 (the app crashed with an unhandled exception). Edited, was: `exitCode` is not initialized before use: https://github.com/dotnet/corefx/blob/c0bfbda2e1e8a1f4e39bd5e0b0642edff044f7b2/src/Common/tests/System/Diagnostics/RemoteExecutorConsoleApp/RemoteExecutorConsoleApp.cs#L42 +19375 area-System.Security Issue with WindowsIdentity.RunImpersonated "I am having issue using RunImpersonated with dotnet core 1.1. I have a web API that is trying to run a stored proc on SQL server using a service account, and hence the need for impersonation. At the point where I create the db context I get an exception that its not able to load the Microsoft.EntityFrameworkCore.Relational due to access denied error. Note that the login succeeds with service account. Also if I try this whole thing with my own credentials it works fine, but only has the issue when I use another service account. I tried to add the service account to local machine administrators group just to test but still got the same error. Any ideas what could be the issue ? Code Snippet: ```c# bool LoggedIn = LogonUser(_svcAccount.UserName, _svcAccount.Domain, _svcAccount.Pwd, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out safeAccessTokenHandle); if (LoggedIn == false) { int ret = Marshal.GetLastWin32Error(); Console.WriteLine(""LogonUser failed with error code : {0}"", ret); throw new System.ComponentModel.Win32Exception(ret); } var timeCards = WindowsIdentity.RunImpersonated( safeAccessTokenHandle, () => { // At this point it fails with the following error. // FileLoadException: Could not load file or assembly // 'Microsoft.EntityFrameworkCore.Relational, Version=1.1.1.0, // Culture=neutral, PublicKeyToken=adb9793829ddae60'. Access is denied. using (var db = new TarDbContext(_config, _options)) { } ); ```" +19376 area-System.Security Fix most of S.S.Cryptography.Xml desktop failures - one product bug found (wrong exception being thrown) - one test still failing https://github.com/dotnet/corefx/issues/19272 Fixes 20+ test failures. Updated: https://github.com/dotnet/corefx/issues/18690 Fixes issues: https://github.com/dotnet/corefx/issues/19275 https://github.com/dotnet/corefx/issues/19274 https://github.com/dotnet/corefx/issues/19273 https://github.com/dotnet/corefx/issues/19271 https://github.com/dotnet/corefx/issues/19270 https://github.com/dotnet/corefx/issues/19268 https://github.com/dotnet/corefx/issues/19267 https://github.com/dotnet/corefx/issues/19264 https://github.com/dotnet/corefx/issues/19263 +19377 area-Infrastructure Add note to build -release before running perf tests. Add documentation note to build -release before running perf tests. @DrewScoggins This is a follow up ticket for an issue found in #19158. +19378 area-Serialization Enable Canonicalization on NetCore The PR ports the implementation for `StartCanonicalization` and `EndCanonicalization` from full framework to NetCore. I verified that the tests being added by https://github.com/dotnet/corefx/pull/18911 passed with this fix. Fix #18910. +19379 area-System.Net Multiple tests in S.Net.Security cause xunit to crash on AOT The following tests cause xunit to crash: - CertificateValidationClientServer_EndToEnd_Ok - CertificateValidationRemoteServer_EndToEnd_Ok - ClientAsyncAuthenticate_ServerRequireEncryption_ConnectWithEncryption - ClientAsyncAuthenticate_ServerNoEncryption_NoConnect - ClientDefaultEncryption_ServerRequireEncryption_ConnectWithEncryption - ClientDefaultEncryption_ServerNoEncryption_NoConnect - EventSource_ExistsWithCorrectId - NegotiateStream_StreamToStream_Authentication_TargetName_Success - SslStreamConstructor_BadEncryptionPolicy_ThrowException - ServerNoEncryption_ClientRequireEncryption_NoConnect - ServerRequireEncryption_ClientRequireEncryption_ConnectWithEncryption - ServerRequireEncryption_ClientAllowNoEncryption_ConnectWithEncryption - ServerRequireEncryption_ClientNoEncryption_NoConnect - SslStream_StreamToStream_Authentication_IncorrectServerName_Fail - SslStream_StreamToStream_LargeWrites_Sync_Success - SslStream_StreamToStream_Successive_ClientWrite_Async_Success - SslStream_StreamToStream_WriteAsync_ReadByte_Success - TransportContext_ConnectToServerWithSsl_GetExpectedChannelBindings +19380 area-System.Net Disable S.Net.Security tests that crash xunit on AoT +19382 area-System.IO "Desktop: System.IO.Tests.PathTests.GetFullPath_Windows_URIFormatNotSupported failed with ""System.ArgumentException""" Failed test: System.IO.Tests.PathTests.GetFullPath_Windows_URIFormatNotSupported Detail: System.IO.Tests.PathTests.GetFullPath_Windows_URIFormatNotSupported MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.NotSupportedException) Actual: typeof(System.ArgumentException): URI formats are not supported. ~~~ STACK TRACE: ~~~ at System.IO.Path.NormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths) at System.IO.Path.GetFullPathInternal(String path) at System.IO.Path.GetFullPath(String path) at System.IO.Tests.PathTests.<>c.b__49_0() in D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime.Extensions\tests\System\IO\PathTests.cs:line 492 ~~~ +19386 area-System.Net "Test: System.Net.Security.Tests.ClientDefaultEncryptionTest/ClientDefaultEncryption_ServerRequireEncryption_ConnectWithEncryption failed with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.ClientDefaultEncryptionTest/ClientDefaultEncryption_ServerRequireEncryption_ConnectWithEncryption` has failed. System.IO.IOException : Authentication failed because the remote party has closed the transport stream. Stack Trace: at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.ClientDefaultEncryptionTest.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170505.01 (Core Tests) Failing configurations: - Windows.81.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170505.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.ClientDefaultEncryptionTest~2FClientDefaultEncryption_ServerRequireEncryption_ConnectWithEncryption +19387 area-System.Net ConnectAsync_IPv6_Success timed out on macOS Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170505.01/workItem/System.Net.Sockets.Tests/wilogs System.Net.Sockets.Tests.ConnectAsync.ConnectAsync_IPv6_Success(type: Async) [FAIL] ~~~ 2017-05-04 18:29:47,519: INFO: proc(54): run_and_log_output: Output: Discovering: System.Net.Sockets.Tests 2017-05-04 18:29:47,797: INFO: proc(54): run_and_log_output: Output: Discovered: System.Net.Sockets.Tests 2017-05-04 18:29:48,039: INFO: proc(54): run_and_log_output: Output: Starting: System.Net.Sockets.Tests 2017-05-04 18:29:54,808: INFO: proc(54): run_and_log_output: Output: System.Net.Sockets.Tests.ConnectAsync.ConnectAsync_IPv6_Success(type: Async) [FAIL] 2017-05-04 18:29:54,809: INFO: proc(54): run_and_log_output: Output: IPv6: Timed out while waiting for connection 2017-05-04 18:29:54,809: INFO: proc(54): run_and_log_output: Output: Expected: True 2017-05-04 18:29:54,810: INFO: proc(54): run_and_log_output: Output: Actual: False 2017-05-04 18:29:54,813: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-04 18:29:54,911: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/2/s/corefx/src/System.Net.Sockets/tests/FunctionalTests/ConnectAsync.cs(78,0): at System.Net.Sockets.Tests.ConnectAsync.ConnectAsync_IPv6_Success(SocketImplementationType type) ~~~ +19388 area-System.Net "Test: System.Net.Tests.TaskWebClientTest/UploadString_Success failed with ""System.Net.WebException'" Opened on behalf of @Jiayili1 The test `System.Net.Tests.TaskWebClientTest/UploadString_Success(echoServer: https://corefx-net.cloudapp.net/Echo.ashx)` has failed. System.Net.WebException : An error occurred while sending the request. Problem with the SSL CA cert (path? access rights?) ---- System.Net.Http.HttpRequestException : An error occurred while sending the request. -------- System.Net.Http.CurlException : Problem with the SSL CA cert (path? access rights?) Stack Trace: at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) in /root/corefx/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs:line 1238 at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result) in /root/corefx/src/System.Net.WebClient/src/System/Net/WebClient.cs:line 256 at System.Net.WebClient.d__112.MoveNext() in /root/corefx/src/System.Net.WebClient/src/System/Net/WebClient.cs:line 269 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.WebClient.d__150.MoveNext() in /root/corefx/src/System.Net.WebClient/src/System/Net/WebClient.cs:line 865 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.WebClientTestBase.d__24.MoveNext() in /root/corefx/src/System.Net.WebClient/tests/WebClientTest.cs:line 694 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__59.MoveNext() in /root/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 487 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.HttpWebRequest.d__189.MoveNext() in /root/corefx/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs:line 1184 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) in /root/corefx/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs:line 1234 ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) in /root/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 661 at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) in /root/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs:line 857 Build : Master - 20170505.01 (Portable Core Tests) Failing configurations: - Centos.73.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170505.01/workItem/System.Net.WebClient.Tests/analysis/xunit/System.Net.Tests.TaskWebClientTest~2FUploadString_Success(echoServer:%20https:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx) +19389 area-System.Threading "Test: System.Threading.Tests.AutoResetEventTests/WaitHandleWaitAll failed with ""System.NotSupportedException""" Opened on behalf of @Jiayili1 The test `System.Threading.Tests.AutoResetEventTests/WaitHandleWaitAll` has failed. System.NotSupportedException : WaitAll for multiple handles on a STA thread is not supported. Stack Trace: at System.Threading.WaitHandle.WaitMultiple(WaitHandle[] waitHandles, Int32 millisecondsTimeout, Boolean exitContext, Boolean WaitAll) at System.Threading.WaitHandle.WaitAll(WaitHandle[] waitHandles, Int32 millisecondsTimeout, Boolean exitContext) at System.Threading.Tests.AutoResetEventTests.WaitHandleWaitAll() in E:\A\_work\120\s\corefx\src\System.Threading\tests\AutoResetEventTests.cs:line 62 Build : Master - 20170505.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170505.01/workItem/System.Threading.Tests/analysis/xunit/System.Threading.Tests.AutoResetEventTests~2FWaitHandleWaitAll +19390 area-System.Security Include Cryptography.Cng 462OrNewer tests only when targetgroup is net462, net47 or netcoreapp Fixes: https://github.com/dotnet/corefx/issues/19081 Fixes: https://github.com/dotnet/corefx/issues/18720 cc: @danmosemsft @ianhays +19396 area-System.Diagnostics Disable failed tests for issue 18805. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #18805"")] for: BasicEventSourceTests.TestsWrite.Test_Write_T_EventListener BasicEventSourceTests.TestsWrite.Test_Write_T_EventListener_UseEvents BasicEventSourceTests.TestsUserErrors.Test_BadEventSource_MismatchedIds cc: @danmosemsft @safern " +19397 area-System.IO Dsiable failed test for issue 18546. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #18546"")] for ReadModeToByte_Accepted() cc: @danmosemsft @safern " +19398 area-Serialization Disable failed test for issue 18312. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #18312"")] for: DCS_ReadOnlyDictionary() cc: @danmosemsft @safern " +19399 area-System.IO Disable failed test for issue 18308. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #18308"")] for: CreatedDeleted_Success() cc: @danmosemsft @safern " +19400 area-System.IO Disable failed tests for issue 18269. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #18269"")] for: GetEnumerator_NoOp() GetEnumerator_ThrowsForCurrent() cc: @danmosemsft @safern " +19401 area-System.IO Disable failed tests for issue 18268. "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #18268"")] for: System.IO.IsolatedStorage.CreateDirectoryTests.CreateDirectory_Existance System.IO.IsolatedStorage.CreateFileTests.CreateFile_Existence System.IO.IsolatedStorage.DirectoryExistsTests.DirectoryExists_Existance System.IO.IsolatedStorage.FileExistsTests.FileExists_Existance System.IO.IsolatedStorage.GetFileNamesTests.GetFileNames_ThrowsArgumentNull System.IO.IsolatedStorage.GetStoreTests.GetUserStoreForApplication cc: @danmosemsft @safern " +19402 area-System.IO Disable failed tests for issue 18265.' "Add [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""dotnet/corefx #18265"")] for 27 methods. cc: @danmosemsft @safern " +19403 area-Meta Not support Chinese for enum context when I do `dotnet build` or `dotnet pack` ,an error occurred: ``` root@DevEnv:~/TL.SysData# dotnet build Microsoft (R) Build Engine version 15.1.1012.6693 Copyright (C) Microsoft Corporation. All rights reserved. DTO/Nature/RegionHelper.cs(159,67): error CS1001: Identifier expected [/root/TL.SysData/Source/TL.SysData.csproj] Res/RdsPrex.cs(23,1): warning CS1570: XML comment has badly formed XML -- 'Expected an end tag for element 'summary'.' [/root/TL.SysData/Source/TL.SysData.csproj] DTO/Nature/RegionHelper.cs(159,67): error CS1002: ; expected [/root/TL.SysData/Source/TL.SysData.csproj] Res/RdsPrex.cs(24,13): warning CS1570: XML comment has badly formed XML -- 'End tag was not expected at this location.' [/root/TL.SysData/Source/TL.SysData.csproj] DTO/Nature/RegionHelper.cs(159,67): error CS1056: Unexpected character 'ֱ' [/root/TL.SysData/Source/TL.SysData.csproj] DTO/Nature/RegionHelper.cs(159,69): error CS1002: ; expected [/root/TL.SysData/Source/TL.SysData.csproj] DTO/Nature/RegionHelper.cs(159,69): error CS1056: Unexpected character '�' [/root/TL.SysData/Source/TL.SysData.csproj] DTO/Nature/RegionHelper.cs(159,70): error CS1056: Unexpected character '�' [/root/TL.SysData/Source/TL.SysData.csproj] DTO/Nature/RegionHelper.cs(218,24): error CS1001: Identifier expected [/root/TL.SysData/Source/TL.SysData.csproj] DTO/Nature/RegionHelper.cs(218,24): error CS1056: Unexpected character 'ֱ' [/root/TL.SysData/Source/TL.SysData.csproj] DTO/Nature/RegionHelper.cs(218,25): error CS1003: Syntax error, ',' expected .... .... DTO/Nature/RegionHelper.cs(246,28): error CS1056: Unexpected character '�' [/root/TL.SysData/Source/TL.SysData.csproj] /usr/share/dotnet/sdk/1.0.3/Sdks/Microsoft.NET.Sdk/build/Microsoft.NET.Sdk.targets(92,5): error : Cannot find project info for '/root/TL.SysData/Source/TL.SysData.csproj'. This can indicate a missing project reference. [/root/TL.SysData/Test/UnitTest/UnitTest.csproj] ``` **code: enum value:** ``` public enum Region { 直辖市 = 1 << RegionHelper.Provincelmove, 上海市 = 直辖市 | 1 << RegionHelper.Citylmove, 黄浦区 = 上海市 | 1 << RegionHelper.Districtlmove, ... ... } ... ... public static bool IsCCity(this Region region) { return region.IsCity() && region.Province() == Region.直辖市; } ``` But use VS2013/15/17 build it on windows: Success. And i saw [#7804](https://github.com/dotnet/corefx/issues/7804), so i set this proj charSet UTF-8,and no BOM.Then build ,same error info. ## Expected behavior Build Success. ## Actual behavior error..... ## Environment data `dotnet --version` 1.0.3 `cat /proc/version` Linux version 4.4.0-77-generic (buildd@lgw01-59) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #98-Ubuntu SMP Wed Apr 26 08:34:02 UTC 2017 **Code File**:[Region.cs](http://looku.qiniudn.com/2017_05_05_Git_Issue_Region.cs),[RegionHelper.cs](http://looku.qiniudn.com/2017_05_05_Git_Issue_RegionHelper.cs) +19404 area-Infrastructure Build Tool Search and Acquire Experience Currently, if a prerequisite for a build is missing, then the build fails. This experience can be improved if the missing prerequisite is acquired, and made available for the build to consume. Summary of changes: 1. Metadata of each required build tool will be in `.toolversions` file located in repository root 2. Native build invokes a probing mechanism to get a required tool. Build should specify the name of the required tool. Optionally build can also specify if the declared version, which the version that has been verified to work correctly with the product, of the tool is required. Probing mechanism invokes search and acquire scripts to get the tool on behalf of the build, and returns the tool path if successful or an error message. 3. Scripts that search and acquire a tool will be in `tools-local` folder in repository root. Short description of the design is provided below. Implementation of this design for probing CMake is ready. The design of these scripts is like having ISearchTool and IAcquireTool interfaces. ISearchTool provides a base implementation of searching for the specified tool in environment path, and the search paths specified in the tools metadata file. Base implementation is in `tools-local/unix/search-tool.sh`, and a corresponding PowerShell script for Windows. A tool can override this implementation if it wants to follow a customized search process. This override script will go into the tool specific folder. For example, if CMake overrides the base implementation then, the override script should be in `tools-local/unix/cmake/search-tool.sh`. ISearchTool has abstract methods that each tool must provide an implementation. For example, `get-version.sh` gets the version of CMake at the specified path. This script will be in tool specific folder at `tools-local/unix/cmake/get-version.sh`. IAcquireTool provides similar virtual and abstract functions for acquiring a tool. Entry point to these scripts is `probe-tool.sh` that gets invoked by `src/Native/build-native.sh`. In the current implementation, a tool is downloaded directly from the internet. If a developer would like to acquire the tool from a different location, then the developer can either modify `tools-local/unix/acquire-tool.sh` within the local repository or have the customized script in a folder rooted outside the repository. Path to the folder containing such customized scripts can be specified using `OverrideScriptsFolderPath` argument. A future addition would be to provide an option to override the default `.toolversions` file. @weshaggard @ellismg PTAL. +19408 area-System.Collections Add ImmutableInterlocked.Update for ImmutableArray The current [`ImmutableInterlocked.Update`](https://msdn.microsoft.com/en-us/library/system.collections.immutable.immutableinterlocked.update.aspx) overloads work for each of the immutable collection types except `ImmutableArray`. It would be valuable, e.g. in dotnet/roslyn#19267, to have an overload which covers this case. I propose the addition of the following specific methods to `ImmutableInterlocked`: ``` public static bool Update( ref ImmutableArray location, Func, ImmutableArray> transformer); public static bool Update( ref ImmutableArray location, Func, TArg, ImmutableArray> transformer, TArg transformerArgument); ``` +19410 area-System.Security System.Security.Cryptography.Xml.XmlLicenseTransform.GetOutput improperly checks type of document See here for reference: https://github.com/dotnet/corefx/commit/ce11eb43170125c54e8c368429d741e3d6ae6c22#diff-f156a7b1230342829b2a7663d45119ecR128 +19412 area-System.IO Add tests for UMS PositionPointer overflowing Adds some tests for https://github.com/dotnet/coreclr/pull/11376 which resolved https://github.com/dotnet/coreclr/issues/11199. Requires a new version of coreclr for the tests to pass. cc: @jkotas +19413 area-Infrastructure Disable CLI's first time experience from within our repo We don't want to run the CLI's first time experience in our builds. See discussion: https://github.com/dotnet/corefx/pull/19407#issuecomment-299530720 /cc @weshaggard @eerhardt @livarcocc +19414 area-System.Linq FirstOrDefault_AggregateException fails "Test failure (two instances) running on my secondary dev box (intermittent): ``` .Execute() in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Merging\DefaultMergeHelper.cs:line 107 at System.Linq.Parallel.MergeExecutor`1.Execute() in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Merging\MergeExecutor.cs:line 103 at System.Linq.Parallel.MergeExecutor`1.Execute[TKey](PartitionedStream`2 partitions, Boolean ignoreOutput, ParallelMergeOptions options, TaskScheduler taskScheduler, Boolean isOrdered, CancellationState cancellationState, Int32 queryId) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Merging\MergeExecutor.cs:line 92 at System.Linq.Parallel.PartitionedStreamMerger`1.Receive[TKey](PartitionedStream`2 partitionedStream) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\PartitionedStreamMerger.cs:line 61 at System.Linq.Parallel.FirstQueryOperator`1.WrapHelper[TKey](PartitionedStream`2 inputStream, IPartitionedStreamRecipient`1 recipient, QuerySettings settings) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Unary\FirstQueryOperator.cs:line 91 at System.Linq.Parallel.FirstQueryOperator`1.WrapPartitionedStream[TKey](PartitionedStream`2 inputStream, IPartitionedStreamRecipient`1 recipient, Boolean preferStriping, QuerySettings settings) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Unary\FirstQueryOperator.cs:line 68 at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.ChildResultsRecipient.Receive[TKey](PartitionedStream`2 inputStream) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\UnaryQueryOperator.cs:line 161 at System.Linq.Parallel.ConcatQueryOperator`1.WrapHelper2[TLeftKey,TRightKey](PartitionedStream`2 leftStreamInc, PartitionedStream`2 rightStreamInc, IPartitionedStreamRecipient`1 outputRecipient) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Binary\ConcatQueryOperator.cs:line 130 at System.Linq.Parallel.ConcatQueryOperator`1.WrapHelper[TLeftKey,TRightKey](PartitionedStream`2 leftStreamInc, PartitionedStream`2 rightStream, IPartitionedStreamRecipient`1 outputRecipient, QuerySettings settings, Boolean preferStriping) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Binary\ConcatQueryOperator.cs:line 110 at System.Linq.Parallel.ConcatQueryOperator`1.WrapPartitionedStream[TLeftKey,TRightKey](PartitionedStream`2 leftStream, PartitionedStream`2 rightStream, IPartitionedStreamRecipient`1 outputRecipient, Boolean preferStriping, QuerySettings settings) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Binary\ConcatQueryOperator.cs:line 91 at System.Linq.Parallel.BinaryQueryOperator`3.BinaryQueryOperatorResults.RightChildResultsRecipient`1.Receive[TRightKey](PartitionedStream`2 rightPartitionedStream) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\BinaryQueryOperator.cs:line 189 at System.Linq.Parallel.ScanQueryOperator`1.ScanEnumerableQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\ScanQueryOperator.cs:line 137 at System.Linq.Parallel.BinaryQueryOperator`3.BinaryQueryOperatorResults.LeftChildResultsRecipient.Receive[TLeftKey](PartitionedStream`2 source) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\BinaryQueryOperator.cs:line 155 at System.Linq.Parallel.ScanQueryOperator`1.ScanEnumerableQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\ScanQueryOperator.cs:line 137 at System.Linq.Parallel.BinaryQueryOperator`3.BinaryQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\BinaryQueryOperator.cs:line 125 at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\UnaryQueryOperator.cs:line 130 at System.Linq.Parallel.QueryOperator`1.GetOpenedEnumerator(Nullable`1 mergeOptions, Boolean suppressOrder, Boolean forEffect, QuerySettings querySettings) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\QueryOperator.cs:line 164 at System.Linq.Parallel.QueryOpeningEnumerator`1.OpenQuery() in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\QueryOpeningEnumerator.cs:line 164 at System.Linq.Parallel.QueryOpeningEnumerator`1.MoveNext() in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\QueryOpeningEnumerator.cs:line 108 at System.Linq.ParallelEnumerable.GetOneWithPossibleDefault[TSource](QueryOperator`1 queryOp, Boolean throwIfTwo, Boolean defaultIfEmpty) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\ParallelEnumerable.cs:line 5349 at System.Linq.ParallelEnumerable.FirstOrDefault[TSource](ParallelQuery`1 source) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\ParallelEnumerable.cs:line 5508 at System.Linq.Parallel.Tests.ParallelQueryCombinationTests.FirstOrDefault_AggregateException(Labeled`1 source, Labeled`1 operation) in R:\corefx\src\System.Linq.Parallel\tests\Combinatorial\FailingParallelQueryCombinationTests.cs:line 122 ----- Inner Stack Trace ----- at System.Linq.Parallel.Tests.Enumerables`1.<>c__DisplayClass2_0.b__0(Int32 i) in R:\corefx\src\System.Linq.Parallel\tests\Helpers\Enumerables.cs:line 41 at System.Linq.Enumerable.SelectIPartitionIterator`2.MoveNext() in R:\corefx\src\System.Linq\src\System\Linq\Select.cs:line 670 at System.Linq.Parallel.PartitionedDataSource`1.ContiguousChunkLazyEnumerator.MoveNext(T& currentElement, Int32& currentKey) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Partitioning\PartitionedDataSource.cs:line 682 at System.Linq.Parallel.ConcatQueryOperator`1.ConcatQueryOperatorEnumerator`2.MoveNext(TSource& currentElement, ConcatKey`2& currentKey) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Binary\ConcatQueryOperator.cs:line 207 at System.Linq.Parallel.FirstQueryOperator`1.FirstQueryOperatorEnumerator`1.MoveNext(TSource& currentElement, Int32& currentKey) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Unary\FirstQueryOperator.cs:line 177 at System.Linq.Parallel.StopAndGoSpoolingTask`2.SpoolingWork() in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Scheduling\SpoolingTask.cs:line 227 at System.Linq.Parallel.SpoolingTaskBase.Work() in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Scheduling\SpoolingTaskBase.cs:line 68 at System.Linq.Parallel.QueryTask.BaseWork(Object unused) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Scheduling\QueryTask.cs:line 100 at System.Linq.Parallel.QueryTask.RunTaskSynchronously(Object o) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Scheduling\QueryTask.cs:line 47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)]]> .Execute() in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Merging\DefaultMergeHelper.cs:line 107 at System.Linq.Parallel.MergeExecutor`1.Execute() in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Merging\MergeExecutor.cs:line 103 at System.Linq.Parallel.MergeExecutor`1.Execute[TKey](PartitionedStream`2 partitions, Boolean ignoreOutput, ParallelMergeOptions options, TaskScheduler taskScheduler, Boolean isOrdered, CancellationState cancellationState, Int32 queryId) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Merging\MergeExecutor.cs:line 92 at System.Linq.Parallel.PartitionedStreamMerger`1.Receive[TKey](PartitionedStream`2 partitionedStream) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\PartitionedStreamMerger.cs:line 61 at System.Linq.Parallel.FirstQueryOperator`1.WrapHelper[TKey](PartitionedStream`2 inputStream, IPartitionedStreamRecipient`1 recipient, QuerySettings settings) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Unary\FirstQueryOperator.cs:line 91 at System.Linq.Parallel.FirstQueryOperator`1.WrapPartitionedStream[TKey](PartitionedStream`2 inputStream, IPartitionedStreamRecipient`1 recipient, Boolean preferStriping, QuerySettings settings) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Unary\FirstQueryOperator.cs:line 68 at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.ChildResultsRecipient.Receive[TKey](PartitionedStream`2 inputStream) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\UnaryQueryOperator.cs:line 161 at System.Linq.Parallel.ConcatQueryOperator`1.WrapHelper2[TLeftKey,TRightKey](PartitionedStream`2 leftStreamInc, PartitionedStream`2 rightStreamInc, IPartitionedStreamRecipient`1 outputRecipient) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Binary\ConcatQueryOperator.cs:line 130 at System.Linq.Parallel.ConcatQueryOperator`1.WrapHelper[TLeftKey,TRightKey](PartitionedStream`2 leftStreamInc, PartitionedStream`2 rightStream, IPartitionedStreamRecipient`1 outputRecipient, QuerySettings settings, Boolean preferStriping) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Binary\ConcatQueryOperator.cs:line 110 at System.Linq.Parallel.ConcatQueryOperator`1.WrapPartitionedStream[TLeftKey,TRightKey](PartitionedStream`2 leftStream, PartitionedStream`2 rightStream, IPartitionedStreamRecipient`1 outputRecipient, Boolean preferStriping, QuerySettings settings) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Binary\ConcatQueryOperator.cs:line 91 at System.Linq.Parallel.BinaryQueryOperator`3.BinaryQueryOperatorResults.RightChildResultsRecipient`1.Receive[TRightKey](PartitionedStream`2 rightPartitionedStream) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\BinaryQueryOperator.cs:line 189 at System.Linq.Parallel.ScanQueryOperator`1.ScanEnumerableQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\ScanQueryOperator.cs:line 137 at System.Linq.Parallel.BinaryQueryOperator`3.BinaryQueryOperatorResults.LeftChildResultsRecipient.Receive[TLeftKey](PartitionedStream`2 source) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\BinaryQueryOperator.cs:line 155 at System.Linq.Parallel.ScanQueryOperator`1.ScanEnumerableQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\ScanQueryOperator.cs:line 137 at System.Linq.Parallel.BinaryQueryOperator`3.BinaryQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\BinaryQueryOperator.cs:line 125 at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\UnaryQueryOperator.cs:line 130 at System.Linq.Parallel.QueryOperator`1.GetOpenedEnumerator(Nullable`1 mergeOptions, Boolean suppressOrder, Boolean forEffect, QuerySettings querySettings) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\QueryOperator.cs:line 164 at System.Linq.Parallel.QueryOpeningEnumerator`1.OpenQuery() in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\QueryOpeningEnumerator.cs:line 164 at System.Linq.Parallel.QueryOpeningEnumerator`1.MoveNext() in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\QueryOpeningEnumerator.cs:line 108 at System.Linq.ParallelEnumerable.GetOneWithPossibleDefault[TSource](QueryOperator`1 queryOp, Boolean throwIfTwo, Boolean defaultIfEmpty) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\ParallelEnumerable.cs:line 5349 at System.Linq.ParallelEnumerable.First[TSource](ParallelQuery`1 source) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\ParallelEnumerable.cs:line 5425 at System.Linq.Parallel.Tests.ParallelQueryCombinationTests.First_AggregateException(Labeled`1 source, Labeled`1 operation) in R:\corefx\src\System.Linq.Parallel\tests\Combinatorial\FailingParallelQueryCombinationTests.cs:line 102 ----- Inner Stack Trace ----- at System.Linq.Parallel.Tests.Enumerables`1.<>c__DisplayClass2_0.b__0(Int32 i) in R:\corefx\src\System.Linq.Parallel\tests\Helpers\Enumerables.cs:line 41 at System.Linq.Enumerable.SelectIPartitionIterator`2.MoveNext() in R:\corefx\src\System.Linq\src\System\Linq\Select.cs:line 670 at System.Linq.Parallel.PartitionedDataSource`1.ContiguousChunkLazyEnumerator.MoveNext(T& currentElement, Int32& currentKey) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Partitioning\PartitionedDataSource.cs:line 682 at System.Linq.Parallel.ConcatQueryOperator`1.ConcatQueryOperatorEnumerator`2.MoveNext(TSource& currentElement, ConcatKey`2& currentKey) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Binary\ConcatQueryOperator.cs:line 207 at System.Linq.Parallel.FirstQueryOperator`1.FirstQueryOperatorEnumerator`1.MoveNext(TSource& currentElement, Int32& currentKey) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\QueryOperators\Unary\FirstQueryOperator.cs:line 177 at System.Linq.Parallel.StopAndGoSpoolingTask`2.SpoolingWork() in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Scheduling\SpoolingTask.cs:line 227 at System.Linq.Parallel.SpoolingTaskBase.Work() in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Scheduling\SpoolingTaskBase.cs:line 68 at System.Linq.Parallel.QueryTask.BaseWork(Object unused) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Scheduling\QueryTask.cs:line 100 at System.Linq.Parallel.QueryTask.RunTaskSynchronously(Object o) in R:\corefx\src\System.Linq.Parallel\src\System\Linq\Parallel\Scheduling\QueryTask.cs:line 47 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)]]> ```" +19415 area-System.Net Add exception diagnostics to WinHttp To help diagnose pernicious exceptions, this debug-build-only change augments exceptions created using CreateExceptionUsingError to include the calling thread's stack trace, so that when these exceptions are then moved to other threads and propagated there, we can better correlate where they came from. Related to https://github.com/dotnet/corefx/issues/7812 cc: @davidsh, @steveharter +19416 area-System.Runtime Add support for getting current stack into Exception When writing managed wrappers for native components, it's common to create an Exception in one location (e.g. in a callback from native that includes an error code) and to then pass that off to a completely different location (e.g. storing the Exception into a TaskCompletionSource, with its Task awaited somewhere else). In doing so, the created Exception object doesn't contain any stack trace information about the original location where it was created, sometimes making it difficult to track down where it came from. It would be very helpful if there were a way of storing the equivalent of Environment.StackTrace into an Exception object. It's possible to do: ```C# try { throw e; } catch { } ``` but that doesn't really help, as the stack trace will only include the calling frame, not the entire stack, since the stack will stop after the catching frame. It would be helpful to have an API like: ```C# public class Exception { ... public void AppendCurrentStackTrace(); ... } ``` or something like that. Alternatively it could live on ExceptionDispatchInfo, e.g. ```C# public static class ExceptionDispatchInfo { ... public static void AppendCurrentStackTrace(Exception source); ... } ``` Workarounds today involve using reflection to access privates of Exception, e.g. _remoteStackTraceString. cc: @gkhanna79, @jkotas +19418 area-Serialization Area-Serialization Sprint 118 The issue is for tracking issues to be done in sprint 118 (due by 5/26/2017) +19419 area-System.Net Ignore lack of CURLMOPT_MAX_HOST_CONNECTIONS in CurlHandler Versions before 7.30 don't have this option. Previously we would throw a PlatformNotSupportedException. As devs would generally use an option of this type to increase the limit (since historically such a limit was 2 or 10 in the .NET Framework) rather than decrease it, and since it's already effectively infinite by default in .NET Core, with this commit, now we just ignore it. This helps to avoid PNSEs on the few platforms that still ship with too old a version of libcurl. Fixes https://github.com/dotnet/corefx/issues/14614 cc: @geoffkizer, @Priya91, @davidsh +19420 area-System.Security System.Security.Cryptography.Xml conflicts System.Security when building for .NET Framework "The latest System.Security.Cryptography.Xml package causes compiler errors for .NET Framework projects. > error CS0433: The type 'EncryptedXml' exists in both 'System.Security.Cryptography.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' and 'System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ### Repro Create a .NET Framework 4.6.1 project that references a .NET Standard 2.0 project. Example: TestApp --> TestLib #### TestApp ```xml Exe net461 ``` ```c# using System; using System.Security.Cryptography.Xml; namespace TestApp { class Program { static void Main(string[] args) { Console.WriteLine(typeof(EncryptedXml).AssemblyQualifiedName); } } } ``` #### TestLib ```xml netstandard2.0 true ``` #### Details Using dotnet-CLI 2.0.0-preview2-005905 [msbuild.log.txt](https://github.com/dotnet/corefx/files/980530/msbuild.log.txt) cc @krwq " +19421 area-System.Diagnostics Fix spurious EventSource test failures due to framework sources Some of the EventSource tests check to verify that EventSources have been properly shutdown and can no longer be found in EventSource.GetSources. But the framework itself has several event sources used by core types, and if the tests end up using these types, those sources can end up triggering a failure. As such, the test exempts known framework sources, but it missed SynchronizationEventSource (used by types like SpinWait). This just adds it to the list of sources to exempt. Fixes https://github.com/dotnet/corefx/issues/18805 cc: @vancem, @brianrob +19422 area-System.Security Fix compile assembly on netfx for crypto-xml Fixes: https://github.com/dotnet/corefx/issues/19420 +19423 area-Infrastructure System.Net.Primitives.Functional.Tests.CookieTest.Value_PassNullToCtor_GetReturnsEmptyString_net46 fails consistently on all my dev machines "Running `msbuild /t:rebuild,test /p:Outerloop=true ""/p:XunitOptions=-showprogress""` in `\src\System.Net.Primitives\tests\FunctionalTests` ``` System.Net.Primitives.Functional.Tests.CookieTest.Value_PassNullToCtor_GetReturnsEmptyString_net46 [FAIL] Assert.Null() Failure Expected: (null) Actual: Stack Trace: S:\corefx\src\System.Net.Primitives\tests\FunctionalTests\CookieTest.cs(249,0): at System.Net.Primitives.Functional.Tests.CookieTest.Value_PassNullToCtor_GetReturnsEmptyString_net46() System.Net.Primitives.Functional.Tests.CookieTest.Value_PassNullToCtor_GetReturnsEmptyString_net46 [FINISHED] Time: 0.0016697s ``` " +19424 area-Serialization Manually run System.Xml.XmlSerializer.Tests with pregenerated serializer This include: 1. Generate the serialization code for System.Xml.XmlSerializer.Tests.dll. Verify if it works for all types. 2. Generate the serializer assembly 3. Run the tests targeting at pregenerated assembly in step2. +19425 area-Serialization Investigate the way to automate the SGEN tests +19426 area-Serialization Go through SGEN user experience +19427 area-Infrastructure Specifying /p:XunitOptions overrides -notrait category=nonnetcoreapptests "Running in `\src\System.Net.Mail\tests\Functional`, `msbuild /t:rebuild,test /p:Outerloop=true ""/p:XunitOptions=-showprogress""` fails on my local dev box: ``` System.Net.Mail.Tests.SmtpClientTest.ServicePoint_NetFramework_AddressIsInaccessible [FAIL] Assert.Throws() Failure Expected: typeof(System.NotSupportedException) Actual: (No exception was thrown) Stack Trace: R:\corefx\src\System.Net.Mail\tests\Functional\SmtpClientTest.cs(139,0): at System.Net.Mail.Tests.SmtpClientTest.ServicePoint_NetFramework_ AddressIsInaccessible() System.Net.Mail.Tests.SmtpClientTest.ServicePoint_NetFramework_AddressIsInaccessible [FINISHED] Time: 0.0122828s ```" +19428 area-System.Net System.Net.Sockets tests crash (exception) about 1 in 2 runs on my dev machine ``` 0:041> !pe -nested Exception object: 000001cf8048d7c8 Exception type: System.Net.Sockets.SocketException Message: An existing connection was forcibly closed by the remote host InnerException: StackTrace (generated): SP IP Function 0000003A8977F280 00007FFD130A5E3A System_Net_Sockets!System.Net.Sockets.Socket.Receive(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags)+0xaa 0000003A8977F2F0 00007FFD1315352A System_Net_Sockets_Tests!System.Net.Sockets.Tests.SendFileTest+<>c__DisplayClass5_0.b__0()+0xba 0000003A8977F380 00007FFD131528AC System_Threading_Thread!System.Threading.Thread.ThreadMain_ThreadStart()+0xfc 0000003A8977F3F0 00007FFD720DEFA1 System_Private_CoreLib!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0x111 StackTraceString: HResult: 80004005 Nested exception ------------------------------------------------------------- Exception object: 000001cf8048d7c8 Exception type: System.Net.Sockets.SocketException Message: An existing connection was forcibly closed by the remote host InnerException: StackTrace (generated): SP IP Function 0000003A8977F280 00007FFD130A5E3A System_Net_Sockets!System.Net.Sockets.Socket.Receive(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags)+0xaa 0000003A8977F2F0 00007FFD1315352A System_Net_Sockets_Tests!System.Net.Sockets.Tests.SendFileTest+<>c__DisplayClass5_0.b__0()+0xba 0000003A8977F380 00007FFD131528AC System_Threading_Thread!System.Threading.Thread.ThreadMain_ThreadStart()+0xfc 0000003A8977F3F0 00007FFD720DEFA1 System_Private_CoreLib!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0x111 StackTraceString: HResult: 80004005 ``` +19430 area-System.Net SslStream test failing to access Mutex @cipop, this looks like fall out from your recent change: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release_prtest/3093/consoleText ``` System.Net.Security.Tests.SslStreamStreamToStreamTest_Async.SslStream_StreamToStream_Successive_ClientWrite_Sync_Success [FAIL] Cannot acquire the global certificate mutex. Expected: True Actual: False Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/Common/tests/System/Net/Configuration.Certificates.cs(38,0): at System.Net.Test.Common.Configuration.Certificates.GetCertificateCollection(String certificateFileName) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.Security/tests/FunctionalTests/SslStreamStreamToStreamTest.cs(391,0): at System.Net.Security.Tests.SslStreamStreamToStreamTest_Async.DoHandshake(SslStream clientSslStream, SslStream serverSslStream) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.Security/tests/FunctionalTests/SslStreamStreamToStreamTest.cs(78,0): at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Successive_ClientWrite_Sync_Success() System.Net.Security.Tests.SslStreamStreamToStreamTest_BeginEnd.SslStream_StreamToStream_Authentication_Success [FAIL] Cannot acquire the global certificate mutex. Expected: True Actual: False Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/Common/tests/System/Net/Configuration.Certificates.cs(38,0): at System.Net.Test.Common.Configuration.Certificates.GetCertificateCollection(String certificateFileName) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.Security/tests/FunctionalTests/SslStreamStreamToStreamTest.cs(404,0): at System.Net.Security.Tests.SslStreamStreamToStreamTest_BeginEnd.DoHandshake(SslStream clientSslStream, SslStream serverSslStream) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.Security/tests/FunctionalTests/SslStreamStreamToStreamTest.cs(36,0): at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Authentication_Success() ``` +19431 area-System.Net Increasing test certificate loader mutex timeout. Fixes #19430. +19432 area-System.IO sign runtime.win7-x86.runtime.native.system.io.compression We need to make sure runtime.win7-x86.runtime.native.system.io.compression contains signed binaries in servicing. Take a look at the 4.3.0 package here: https://www.nuget.org/packages/runtime.win7-x86.runtime.native.System.IO.Compression/ +19433 area-System.Data Sign contents of runtime.win-x64.runtime.native.system.data.sqlclient.sni +19435 area-System.Net Failure of .UnixPingUtilityTests.PacketSizeIsRespected on OSX ``` System.Net.NetworkInformation.Tests.UnixPingUtilityTests.PacketSizeIsRespected(payloadSize: 50) [FAIL] System.Exception : Ping output was ::1 > ---- System.ArgumentOutOfRangeException : Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: startIndex Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.Ping/tests/FunctionalTests/UnixPingUtilityTests.cs(60,0): at System.Net.NetworkInformation.Tests.UnixPingUtilityTests.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.String.LastIndexOf(String value, Int32 startIndex, Int32 count, StringComparison comparisonType) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.Ping/tests/FunctionalTests/UnixPingUtilityTests.cs(67,0): at System.Net.NetworkInformation.Tests.UnixPingUtilityTests.ParseReturnedPacketSize(String pingOutput) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.Ping/tests/FunctionalTests/UnixPingUtilityTests.cs(47,0): at System.Net.NetworkInformation.Tests.UnixPingUtilityTests.d__1.MoveNext() Finished: System.Net.Ping.Functional.Tests ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug_prtest/3051/consoleText Compare https://github.com/dotnet/corefx/issues/15018 +19436 area-System.Security CI failure in Rsa.Tests.RSAKeyExchangeFormatterTests.VerifyDecryptKeyExchangePkcs1 https://ci.dot.net/job/dotnet_corefx/job/master/job/portablelinux_debug_prtest/4738/testReport/junit/System.Security.Cryptography.Rsa.Tests/RSAKeyExchangeFormatterTests/VerifyDecryptKeyExchangePkcs1/ ``` Stacktrace MESSAGE: Assert.Throws() Failure\nExpected: typeof(System.Security.Cryptography.CryptographicException)\nActual: (No exception was thrown) +++++++++++++++++++ STACK TRACE: at System.Security.Cryptography.Rsa.Tests.RSAKeyExchangeFormatterTests.VerifyDecryptKeyExchange(AsymmetricKeyExchangeFormatter formatter, AsymmetricKeyExchangeDeformatter deformatter) in /mnt/resource/j/workspace/dotnet_corefx/master/portablelinux_debug_prtest/src/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAKeyExchangeFormatter.cs:line 80 at System.Security.Cryptography.Rsa.Tests.RSAKeyExchangeFormatterTests.VerifyDecryptKeyExchangePkcs1() in /mnt/resource/j/workspace/dotnet_corefx/master/portablelinux_debug_prtest/src/Common/tests/System/Security/Cryptography/AlgorithmImplementations/RSA/RSAKeyExchangeFormatter.cs:line 35 ``` +19437 area-System.Net Potential bug in HttpListener: adding an invalid prefix throws, but is still added "HttpListener refuses a uri prefix that has a host greater than length 255, throwing an `ArgumentOutOfRangeException`. However, the prefix is still added. This breaks expectations of the user IMO. Obviously HttpListener is a compat/legacy API. And, the full .NET Framework also has this bug, so this isn't a 2.0 issue and we may not even want to fix it ```cs [Fact] public void Add_LongHost_ThrowsArgumentOutOfRangeException() { var listener = new HttpListener(); string longPrefix = ""http://"" + new string('a', 256) + ""/""; Assert.Throws(""hostName"", () => listener.Prefixes.Add(longPrefix)); // Ouch: even though adding the prefix threw an exception, the prefix was still added. Assert.Equal(1, listener.Prefixes.Count); Assert.True(listener.Prefixes.Contains(longPrefix)); Assert.Throws(() => listener.Start()); } ```" +19438 area-System.Net HttpListenerPrefixCollection.CopyTo(null, 0) throws an NRE The following test demonstrates this bug that is present in netfx and the Windows implementation of HttpListener. Note that the managed implementation does not have this bug. Although HttpListener is considered a legacy/compat API, @stephentoub mentioned in #19217: > We don't need bug-for-bug compatibility. It's a bug in desktop that it throws an NRE; we don't need to go out of our way to mimic that. So I'm tracking this with an issue ```cs [Fact] public void CopyTo_NullArray_ThrowsNullReferenceException() { var listener = new HttpListener(); Assert.Throws(() => listener.Prefixes.CopyTo((Array)null, 0)); Assert.Throws(() => listener.Prefixes.CopyTo(null, 0)); } ``` +19439 area-Meta Can't extend class from .net 3.5 dll "I have one class library project built on dot net framework 3.5. I want to have a new dot net core application reference the dll produced by the first project and extend classes from that library. I have had to add a nuget reference to Microsoft.NETCore.Portable.Compatibility to make fix some basic issues with doing this, but now when I extend a class with an abstract method I can't override the method. I get a paradoxical situation where the class is raising an error that the method is not implemented and the method is raising an error that there is nothing to override. base class: ``` C# public abstract class Server { public event Action ConnectionEstablished; private TcpListener m_listenSocket; private Task m_awaitConnectionTask; readonly private List m_serverStoppedCallbacks = new List(); protected Server(int port) { m_listenSocket = new TcpListener(IPAddress.Parse(""localhost""), port); } public void Listen() { m_listenSocket.Start(); m_awaitConnectionTask = new Task(AwaitConnection); } public void WhenStopped(Action callback) { lock(m_serverStoppedCallbacks) m_serverStoppedCallbacks.Add(callback); } protected abstract Connection CreateConnection(TcpClient tcpClient); private void AwaitConnection() { try { while (true) ConnectionEstablished?.Invoke(CreateConnection(m_listenSocket.AcceptTcpClient())); } catch (SocketException e) { } finally { m_listenSocket.Stop(); List callbacks; lock (m_serverStoppedCallbacks) { callbacks = m_serverStoppedCallbacks.ToList(); m_serverStoppedCallbacks.Clear(); } foreach (var callback in callbacks) callback(); } } } ``` Inherited class: ``` C# public class Server : Communism.Network.Server { public Server(int port) : base(port) { } public static void Main() {} protected override Connection CreateConnection(TcpClient tcpClient) { throw new NotImplementedException(); } } ``` " +19441 area-System.Net HttpClient version System.Net.Http\4.3.0\ref\netstandard1.3\System.Net.Http.dll ignores proxy in asp.net core 1.1 app When I try to use HttpClientHandler with my proxy server and add it to HttpClient requests go directly instead over proxy server. I checked multiple times using wireshark and fiddler, it doesn't matter if proxy is working ip or is it a fake one. I don't get any error and requests go directly. For double checking I went on the server on which I sent requests and there wasn't IP address of sever which was used as proxy but direct PC. I can write here code part of code to show. +19442 area-System.Runtime Null comparer consistency Goes with PR https://github.com/dotnet/coreclr/pull/11345, part of fix for #18528 /cc @jcouv @stephentoub @weshaggard @AlexGhiondea +19443 area-System.Runtime Expose String.GetHashCode(StringComparison) with tests Closes https://github.com/dotnet/corefx/issues/13800 /cc @karelz @danmosemsft @stephentoub @hughbe @MikevanDongen +19444 area-System.IO OverflowPositionPointer test failing Recently added test is failing on 32-bit (passes on 64-bit): ``` UmsSecurityTests.OverflowPositionPointer [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: (No exception was thrown) Copyright (C) 2014 Outercurve Foundation. Stack Trace: D:\j\workspace\windows_nt_de---4526f5ff\src\System.IO.UnmanagedMemoryStream\tests\UmsSecurityTest.cs(52,0): at UmsSecurityTests.OverflowPositionPointer() ``` +19447 area-System.Security Does .NET Core work on Arch Linux? I'm using Antergos which is Arch Linux distribution and I was trying last several months to build dotnet core. Every time I was trying to build dotnet core I was facing different problem. Today I decide to try again to build dotnet core hoping that will be build successfully, because passed maybe a year of the first release but I face again some problem which i cannot solve. My current problem is [this](https://pastebin.com/ZSP4KU4E) +19449 area-System.Collections Proposal: ImmutableDictionary.Create(TKey, TValue) ## Background Most immutable collection types, such as `ImmutableArray` or `ImmutableList`, provide static `Create` methods that accept items to take advantage of type inference. e.g. `ImmutableArray.Create(new MyClass())` instead of `ImmutableArray.Empty.Add(new MyClass())`. However, with `ImmutableDictionary<>` it's necessary to specify the type parameters via `ImmutableDictionary.Empty.Add(key, value)`, since there is no `Create(TKey, TValue)` method that does type inference. I have just run into a couple of scenarios where I need to create a singleton dictionary, and it would be really nice to have such a factory method around. ## Proposal ```cs public static class ImmutableDictionary { public static ImmutableDictionary Create(TKey key, TValue value); // Not strictly necessary for this proposal, but provided for completeness because ImmutableHashSet has a similar overload. // Feel free to object. public static ImmutableDictionary Create(IEqualityComparer keyComparer, TKey key, TValue value); // Create(IEqualityComparer, IEqualityComparer, TKey, TValue) not offered because one can just do // ImmutableDictionary.Create(keyComparer, valueComparer).Add(key, value) and type inference will work correctly. } ``` Overloads to create a dictionary with more than one key/value pair will not be provided because `params` won't work. If someone wants to do that, they can write `ImmutableDictionary.Create(key1, value1).Add(key2, value2)` and so on. +19450 area-System.Globalization Implement ISO week numbers "In most of EU and Asia, we have the concept of week numbers. They are defined by an ISO standard (ISO 8601). ISO week numbers are used by millions of people. For example, the entire medical and school system in Scandinavia, and possibly the entire EU. According to Wikipedia ISO week numbers are used in ""EU and most of other European countries, most of Asia and Oceania"". ISO week numbers are still not implemented in .NET Framework, forcing developers to implement workarounds. Also, it's easy to miss that it's not implemented, creating subtle bugs in applications that only appear every 4 years or so. As a side note, I first reported this as a missing feature to Microsoft in May 2003 when I discovered the problem in .NET Framework v1.0.3705. Celebrating the 14th anniversary of my initial report, I've now considered implementing it myself ;) Or at least start discussions about implementing it. Because when I started digging into the source code, I fell into a rabbit hole. The problem is we have to choose between two bad options: 1. Implement ISO week numbers entirely correctly, but possibly breaking stuff. If we're lucky, we're only breaking a few workarounds. This means changing the week rules for various countries implemented in the Framework since the start (from FirstFourDayWeek to ISO). 2. Implement ISO week numbers as an entirely optional feature, only usable when calling the GetWeekOfYear function and always having to explicitly state the ISO week number rule. (We cannot rely on the week rule of the current culture). The actual code changes would be very small with this option. Am I correct in assuming option 2 is the only realistic one? (I'm avoiding option 3, to implement nothing). References: Microsoft explains the [subtle differences between ISO 8601 and GetWeekOfYear()](https://blogs.msdn.microsoft.com/shawnste/2006/01/24/iso-8601-week-of-year-format-in-microsoft-net/) [Week numbers (Wikipedia)](https://en.wikipedia.org/wiki/Week#Week_numbering) Various workarounds (StackOverflow): http://stackoverflow.com/a/1497620/ http://stackoverflow.com/a/12197063/ http://stackoverflow.com/a/11155102/ http://stackoverflow.com/a/27791320/ " +19451 area-System.Net Socket - SendAsync() Socket.cs should have an async method for: ```cs public int Send(byte[] buffer, int offset, int size, SocketFlags socketFlags); public int Send(byte[] buffer, int offset, int size, SocketFlags socketFlags, out SocketError errorCode); ``` Expected: ```cs public async Task SendAsync(byte[] buffer, int offset, int size, SocketFlags socketFlags); public async Task SendAsync(byte[] buffer, int offset, int size, SocketFlags socketFlags, out SocketError errorCode); ``` Probably an extension method would be ok ;) +19454 area-System.Net "Desktop: Tests under ""System.Net.Tests.HttpWebRequestTest"" failed with ""Xunit.Sdk.EqualException""" Failed Test: System.Net.Tests.HttpWebRequestTest.Host_SetNullValue_ThrowsArgumentNullException System.Net.Tests.HttpWebRequestTest.Host_SetInvalidUri_ThrowsArgumentException System.Net.Tests.HttpWebRequestTest.Host_SetSlash_ThrowsArgumentException Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/45/testReport/System.Net.Tests/HttpWebRequestTest/Host_SetNullValue_ThrowsArgumentNullException_remoteServer__http___corefx_net_cloudapp_net_Echo_ashx_/ MESSAGE: ~~~ Assert.Equal() Failure Expected: value Actual: (null) ~~~ STACK TRACE: ~~~ at System.Net.Tests.HttpWebRequestTest.Host_SetNullValue_ThrowsArgumentNullException(Uri remoteServer) in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Requests\tests\HttpWebRequestTest.cs:line 349 ~~~ +19455 area-System.Diagnostics "Desktop: BasicEventSourceTests.TestsWrite.Test_Write_T_EventListener failed with ""System.Diagnostics.Tracing.EventSourceException""" Failed tests: BasicEventSourceTests.TestsWrite.Test_Write_T_EventListener BasicEventSourceTests.TestsWrite.Test_Write_T_EventListener_UseEvents Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/45/testReport/BasicEventSourceTests/TestsWrite/Test_Write_T_EventListener/ MESSAGE: ~~~ System.Diagnostics.Tracing.EventSourceException : An error occurred when writing to a listener. ---- Assert.Equal() Failure Expected: (null) Actual: ~~~ STACK TRACE: ~~~ at System.Diagnostics.Tracing.EventSource.DisptachToAllListeners(Int32 eventId, Guid* childActivityID, EventWrittenEventArgs eventCallbackArgs) at System.Diagnostics.Tracing.EventSource.WriteToAllListeners(Int32 eventId, Guid* childActivityID, Int32 eventDataCount, EventData* data) at System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityIdCore(Int32 eventId, Guid* relatedActivityId, Int32 eventDataCount, EventData* data) at System.Diagnostics.Tracing.EventSource.WriteEvent(Int32 eventId, String arg1, Int32 arg2) at BasicEventSourceTests.EventTestHarness.TestHarnessEventSource.StartTest(String name, Int32 testNumber) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\Harness\EventTestHarness.cs:line 130 at BasicEventSourceTests.EventTestHarness.RunTests(List`1 tests, Listener listener, EventSource source, FilteringOptions options) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\Harness\EventTestHarness.cs:line 105 at BasicEventSourceTests.TestsWrite.Test_Write_T(Listener listener) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestsWrite.cs:line 398 at BasicEventSourceTests.TestsWrite.Test_Write_T_EventListener() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestsWrite.cs:line 46 ----- Inner Stack Trace ----- at BasicEventSourceTests.TestsWrite.<>c__DisplayClass3_0.b__27(Event evt) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestsWrite.cs:line 373 at BasicEventSourceTests.EventTestHarness.<>c__DisplayClass0_0.b__0(Event data) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\Harness\EventTestHarness.cs:line 65 at BasicEventSourceTests.EventListenerListener.HelperEventListener.OnEventWritten(EventWrittenEventArgs eventData) in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\Harness\Listeners.cs:line 378 at System.Diagnostics.Tracing.EventSource.DisptachToAllListeners(Int32 eventId, Guid* childActivityID, EventWrittenEventArgs eventCallbackArgs) ~~~ +19456 area-System.Net "Desktop: System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_UnsupportedAllServer_Fail failed with ""System.TimeoutException""" Failed test: System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_UnsupportedAllServer_Fail Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/45/testReport/System.Net.Security.Tests/ServerAsyncAuthenticateTest/ServerAsyncAuthenticate_UnsupportedAllServer_Fail/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.NotSupportedException) Actual: typeof(System.TimeoutException): The operation has timed out. ~~~ STACK TRACE: ~~~ at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Threading\Tasks\TaskTimeoutExtensions.cs:line 23 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Security\tests\FunctionalTests\ServerAsyncAuthenticateTest.cs:line 169 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +19457 area-System.Net Fix several System.Net.Requests param name diffs in tests & disable abort tests again Fixes https://github.com/dotnet/corefx/issues/19454 cc: @danmosemsft +19458 area-System.Net "Desktop: System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_EachServerUnsupportedProtocol_Fail failed with ""System.Security.Authentication.AuthenticationException""" Failed test: System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_EachServerUnsupportedProtocol_Fail Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/45/testReport/System.Net.Security.Tests/ServerAsyncAuthenticateTest/ServerAsyncAuthenticate_EachServerUnsupportedProtocol_Fail_protocol__Ssl2_/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.NotSupportedException) Actual: typeof(System.Security.Authentication.AuthenticationException): A call to SSPI failed, see inner exception. ~~~ STACK TRACE: ~~~ at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Threading\Tasks\TaskTimeoutExtensions.cs:line 19 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() in D:\j\workspace\outerloop_net---903ddde6\src\System.Net.Security\tests\FunctionalTests\ServerAsyncAuthenticateTest.cs:line 169 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +19459 area-System.Net Abort_BeginGetRequestStreamThenAbort_EndGetRequestStreamThrowsWebException fails on desktop This test always passes for me when I run it locally on core and always fails for me on desktop: ``` System.Net.Tests.HttpWebRequestTest.Abort_BeginGetRequestStreamThenAbort_EndGetRequestStreamThrowsWebException [FAIL] Assert.Equal() Failure Expected: 1 Actual: 0 Stack Trace: C:\Users\stoub\Source\Repos\corefx\src\System.Net.Requests\tests\HttpWebRequestTest.cs(1252,0): at System.Net.Tests.HttpWebRequestTest.b__119_0(Socket server, Uri url) C:\Users\stoub\Source\Repos\corefx\src\Common\tests\System\Net\Http\LoopbackServer.cs(54,0): at System.Net.Test.Common.LoopbackServer.CreateServerAsync(Func`3 funcAsync, IPEndPoint& localEndPoint, Optio ns options) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() C:\Users\stoub\Source\Repos\corefx\src\System.Net.Requests\tests\HttpWebRequestTest.cs(1242,0): at System.Net.Tests.HttpWebRequestTest.d__119.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +19461 area-System.ComponentModel System.ComponentModel.EnumConverter.GetStandardValues() throw InvalidCastException "in source code: `IComparer comparer = Comparer; if (comparer != null) { objValues.Sort((IComparer) comparer); }` when ""comparer"" is a InvariantComparer, it can't cast to IComparer<>, implements on .netstandard 1.0 & 1.1 are correct, because objValues are ArrayList, and use objValues.Sort(comparer). " +19462 area-System.Diagnostics "Desktop: Tests under ""BasicEventSourceTests.TestsWriteEventToListener"" failed with ""Xunit.Sdk.EqualException""" Failed tests: BasicEventSourceTests.TestsWriteEventToListener.Test_WriteEvent_ArgsCornerCases BasicEventSourceTests.TestsWriteEventToListener.Test_WriteEvent_ZeroKwds BasicEventSourceTests.TestsWriteEventToListener.Test_WriteEvent_ArgsBasicTypes Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/45/testReport/BasicEventSourceTests/TestsWriteEventToListener/Test_WriteEvent_ArgsCornerCases/ MESSAGE: ~~~ Assert.Equal() Failure\r\nExpected: 26\r\nActual: 0 ~~~ STACK TRACE: ~~~ at BasicEventSourceTests.TestsWriteEventToListener.Test_WriteEvent_ArgsCornerCases() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestsWriteEventToListener.cs:line 193 ~~~ +19463 area-Meta Disable failed tests for 9 issues. Disabled following issues: #19462 #19458 #19456 #19455 #18806 #19384 #19383 #19286 #19179 cc: @danmosemsft @safern +19465 area-Meta Disable failed tests for issue 18196 and 18718. Disable failed tests for issues: #18196 #18718 cc: @danmosemsft @safern +19466 area-System.Net "[HttpListener] No test result generated under ""System.Net.HttpListener.Tests""" "Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170508.01/workItem/System.Net.HttpListener.Tests/wilogs No test result generated under ""System.Net.HttpListener.Tests"", no exception in the result." +19467 area-System.Runtime "Test: System.Runtime.InteropServices.Tests.MarshalDirectiveExceptionTests/SerializationRoundTrip failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Runtime.InteropServices.Tests.MarshalDirectiveExceptionTests/SerializationRoundTrip` has failed. Assert.Equal() Failure\r ? (pos 322)\r Expected: ···terHelpers.cs:line 49\r Actual: ···terHelpers.cs:line 44\r ? (pos 322) Stack Trace: at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterHelpers.AssertRoundtrips[T](T expected, Func`2[] additionalGetters) in E:\A\_work\159\s\corefx\src\Common\tests\System\Runtime\Serialization\Formatters\BinaryFormatterHelpers.cs:line 64 at System.Runtime.InteropServices.Tests.MarshalDirectiveExceptionTests.SerializationRoundTrip() in E:\A\_work\159\s\corefx\src\System.Runtime.InteropServices\tests\System\Runtime\InteropServices\MarshalDirectiveExceptionTests.cs:line 18 Build : Master - 20170508.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64 - x86-Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170508.01/workItem/System.Runtime.InteropServices.Tests/analysis/xunit/System.Runtime.InteropServices.Tests.MarshalDirectiveExceptionTests~2FSerializationRoundTrip +19468 area-System.Runtime Disable failed test for issue 19467. Disable the failed test for issue: #19467 cc: @danmosemsft @safern +19469 area-System.Net "WinHttpException ""The parameter is incorrect"" on HttpRequest with EnableRewind " "Hi, Environment: .NET Core runtime 1.1.1 on Windows 10 Case: I get HttpRequest then I want to send this to other api. ```c# public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup() .Build(); host.Run(); } } public class Startup { public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { app.Run(async (context) => { context.Request.EnableRewind(); var httpRequestMesage = new HttpRequestMessage(new HttpMethod(context.Request.Method), $""https://mysite.com""); if (context.Request.ContentLength != null && context.Request.ContentLength > 0) { httpRequestMesage.Content = new StreamContent(context.Request.Body); httpRequestMesage.Content.Headers.ContentType = MediaTypeHeaderValue.Parse(context.Request.ContentType); } try { using (var httpClient = new HttpClient()) { var response = await httpClient.SendAsync(httpRequestMesage); } } catch (Exception exception) { throw exception; } }); } } ``` Request example: ``` http://localhost:5000/ POST Content-Type: application/json;charset=UTF-8 test ``` When I'm using EnableRewind I have the following exception: ``` ""System.Net.Http.HttpRequestException: Error while copying content to a stream. ---> System.IO.IOException: The write operation failed, see inner exception. ---> System.Net.Http.WinHttpException: The parameter is incorrect --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.IO.Stream.d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpContent.d__44.MoveNext() --- End of inner exception stack trace --- at System.Net.Http.HttpContent.d__44.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.WinHttpHandler.d__131.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at RewindIssue.Startup.<>c.<b__0_0>d.MoveNext() in c:\\Projects\\RewindIssue\\Program.cs:line 50"" ``` " +19470 area-System.Diagnostics Linux Process.WaitForExit(Infinite) takes longer than needs to On Linux with timeout infinite Process.WaitForExit will take an average minimum time of 90ms https://gist.github.com/adamjez/521581903cac93653ab568fc4d7feda0 Meaning a max of 11 processes can be launched and waited for exit per second. Changing that to a 1ms wait and timeout check loop it takes an average of 4ms https://gist.github.com/adamjez/441e19c16a7a61c0aa518f2c7abc7222 Meaning a max of 250 processes can be launched on and waited for exit per second (x22 thoughput increase) The reason and solution for this is actually called out in the code https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessWaitState.Unix.cs#L430-L501 But essentially it checks for exit; [sleeps for 100ms](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessWaitState.Unix.cs#L500-L501) (is Delay but upper call is blocking) in a loop; hence the 90ms average. Either this could be resolved using the blocking OS signal as touched on in the code; or the cycle time could be reduced from 100ms. Effects driving command batching from dotnet. May effect dotnet restore->build command chaining thoughput itself? /cc @karelz @stephentoub @adamjez +19472 area-System.Diagnostics Improve polling window logic in ProcessWaitState on Unix Also clean up a few lines of code. Fixes https://github.com/dotnet/corefx/issues/19470 cc: @benaadams, @Priya91 +19473 area-System.Runtime Fix serialization roundtrip line number test on desktop Fixes https://github.com/dotnet/corefx/issues/19467 cc: @danmosemsft +19474 area-System.Diagnostics "Several Process tests on Windows failing with ""Couldn't connect to remote machine""" "https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/7565/consoleText ``` System.Diagnostics.Tests.ProcessTests.TestProcessOnRemoteMachineWindows [FAIL] System.InvalidOperationException : Couldn't connect to remote machine. ---- System.InvalidOperationException : Process performance counter is disabled, so the requested operation cannot be performed. Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(521,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(265,0): at System.Diagnostics.NtProcessManager.GetProcessIds(String machineName, Boolean isRemoteMachine) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(33,0): at System.Diagnostics.ProcessManager.IsProcessRunning(Int32 processId, String machineName) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\Process.cs(1055,0): at System.Diagnostics.Process.GetProcessById(Int32 processId, String machineName) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\tests\ProcessTests.cs(917,0): at System.Diagnostics.Tests.ProcessTests.d__76.MoveNext() D:\j\workspace\windows_nt_re---37265eab\src\System.Linq\src\System\Linq\Select.cs(133,0): at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() ----- Inner Stack Trace ----- D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(550,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(511,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) System.Diagnostics.Tests.ProcessTests.GetProcessesByName_RemoteMachineNameWindows_ReturnsExpected(machineName: \""8363c42cc7434644b263584fc831a4bb\"") [FAIL] System.InvalidOperationException : Couldn't connect to remote machine. ---- System.InvalidOperationException : Process performance counter is disabled, so the requested operation cannot be performed. Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(521,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\Process.cs(1107,0): at System.Diagnostics.Process.GetProcesses(String machineName) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\Process.Windows.cs(27,0): at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\tests\ProcessTests.cs(870,0): at System.Diagnostics.Tests.ProcessTests.GetProcessesByName_ProcessNameMachineName_ReturnsExpected(String machineName) ----- Inner Stack Trace ----- D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(550,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(511,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) System.Diagnostics.Tests.ProcessTests.GetProcessesByName_RemoteMachineNameWindows_ReturnsExpected(machineName: \""\\\\e41070783511438199c628aa28bd8d16\"") [FAIL] System.InvalidOperationException : Couldn't connect to remote machine. ---- System.InvalidOperationException : Process performance counter is disabled, so the requested operation cannot be performed. Stack Trace: D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(521,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\Process.cs(1107,0): at System.Diagnostics.Process.GetProcesses(String machineName) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\Process.Windows.cs(27,0): at System.Diagnostics.Process.GetProcessesByName(String processName, String machineName) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\tests\ProcessTests.cs(870,0): at System.Diagnostics.Tests.ProcessTests.GetProcessesByName_ProcessNameMachineName_ReturnsExpected(String machineName) ----- Inner Stack Trace ----- D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(550,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(PerformanceCounterLib library) D:\j\workspace\windows_nt_re---37265eab\src\System.Diagnostics.Process\src\System\Diagnostics\ProcessManager.Windows.cs(511,0): at System.Diagnostics.NtProcessManager.GetProcessInfos(String machineName, Boolean isRemoteMachine) ``` cc: @danmosemsft, @hughbe " +19475 area-System.ComponentModel Fix EnumConverter porting bug around ArrayList EnumConverter.GetStandardValues switched from using `ArrayList` to `List` when it was ported to .NET Core. But it performs sorting using the non-generic IComparer, which `List` doesn't have APIs for. Rather than trying to work around the difference, it makes sense to just revert to using ArrayList. Fixes https://github.com/dotnet/corefx/issues/19461 cc: @safern +19476 area-System.Linq Reduce the number of items in a PLINQ query that are kept alive with respect to the GC "PLINQ queries apparently keep up to twice the number of items alive that they must. This is problematic with very big items (such as big batches of smaller work items or images). Please take a look at the results of this measurement. I run with DOP 4 yet up to 8 items are kept alive. public static void RunTest() { var degreeOfParallelism = 4; Console.WriteLine($""degreeOfParallelism: {degreeOfParallelism}""); List trackedItems = new List(); var myItems = Enumerable.Range(0, 100000).Select(_ => { var item = new byte[(1 << 20) * 100]; lock (trackedItems) trackedItems.Add(new WeakReference(item)); return item; }); Task.Run(() => { while (true) { Console.WriteLine($""Created: {trackedItems.Count}, alive: {trackedItems.Count(wr => wr.IsAlive)}.""); Thread.Sleep(1000); } }); var myPartitioner = Partitioner.Create(myItems, EnumerablePartitionerOptions.NoBuffering); var results = myPartitioner .AsParallel() .WithDegreeOfParallelism(degreeOfParallelism) .Select(x => ProcessItem(x)) .ToList(); } static object ProcessItem(byte[] bytes) { Thread.Sleep(TimeSpan.FromSeconds(1)); bytes = null; GC.Collect(); return null; } . degreeOfParallelism: 4 Created: 0, alive: 0. Created: 4, alive: 4. Created: 8, alive: 8. Created: 12, alive: 8. Created: 16, alive: 5. Created: 20, alive: 5. Created: 24, alive: 7. Created: 28, alive: 7. Created: 32, alive: 5. Created: 36, alive: 6. Created: 40, alive: 6. Created: 44, alive: 5. Created: 48, alive: 6. Created: 52, alive: 6. Created: 56, alive: 6. Created: 60, alive: 6. Created: 64, alive: 6. Created: 68, alive: 6. Created: 72, alive: 6. Created: 76, alive: 6. Created: 80, alive: 6. Created: 84, alive: 6. Created: 88, alive: 6. Created: 92, alive: 5. Created: 96, alive: 5. There's some ""overshooting"" over the limit of `4` but it always obeys twice the limit at least. **The consequence of that is that memory usage is doubled.** There must be some ""frictional GC rooting"" that hopefully is easy to kill by clearing some variable early. And this is what I request as an improvement. " +19477 area-System.Net Disable two System.Net.Security tests on desktop These tests are .NET Core-specific, as they're verifying that protocols that have been explicitly made unsupported for security reasons fail appropriately, but they're still supported on desktop. Fixes https://github.com/dotnet/corefx/issues/19456 Fixes https://github.com/dotnet/corefx/issues/19458 cc: @cipop, @davidsh, @safern +19480 area-Infrastructure Win7 test legs failing in Jenkins With errors like this: ``` Finished running tests. End time=13:33:33.49, Exit code = 0 Command execution succeeded. [outerloop_net---15cfbbd5] $ cmd /c call C:\Users\DOTNET~1\AppData\Local\Temp\hudson4212507020438352447.bat D:\j\workspace\outerloop_net---15cfbbd5>C:\Packer\Packer.exe .\bin\build.pack .\bin\runtime\netcoreapp-null-Release-x64 [00:00:00.0000029] Walking Files Unhandled Exception: System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\j\workspace\outerloop_net---15cfbbd5\bin\runtime\netcoreapp-null-Release-x64'. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileSystemEnumerableIterator`1.CommonInit() at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost) at System.IO.DirectoryInfo.EnumerateFileSystemInfos(String searchPattern, SearchOption searchOption) at Packer.Main(String[] args) in C:\Users\Matt G. Ellis\Documents\Visual Studio 2015\Projects\Packer\Packer\Packer.cs:line 58 Build timed out (after 120 minutes). Marking the build as aborted. Build was aborted ``` cc: @danmosemsft, @ellismg +19481 area-System.Security Fix FindByValidThumbprint_RootCert when an invalid root is found. One of our CI machines has a certificate marked as rootTrust which nevertheless comes back as not trusted. This makes the test a bit more resilient against failures of that nature (though it does make it somewhat hard to know if it found a system with no candidate certs, or if it actually worked). Fixes #19260. +19483 area-Infrastructure CoreFX Jenkins badges reflect last completed build results: need badges that show status of last build of any kind Eg for Win7 right now the badge shows last completed results: `https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win7_release/lastCompletedBuild/testReport/`. That's handy for seeing results because it ignores in progress builds. However if the build does not complete (possibly for some days) this does not show up. We should probably add badges showing build status, not just last completed. +19484 area-System.Reflection CoreFX on ILC tests burndown Getting down to 1-bucket items here... - Disabled MarshalAs custom attribute test (not implemented on .Net Native) - Reenabled GetTypeFromCLSID() data item (restored on .Net Native) - Avoid testing contents of ToString() (.Net Native ToString() simplifies the type name in order to avoid excess metadata probing.) +19486 area-System.Runtime Normalize Temp path for Nano Fixes https://github.com/dotnet/corefx/issues/7433 (I can't get on the Helix Nano boxes and it doesn't repro on mine) +19487 area-System.Net Fix Mono bug #52508 in HttpListener when doing multiple Https request. Move the call to SslStream.AuthenticateAsServer() into the constructor because we don't want to call it again when Init() is called from Close(). +19488 area-Infrastructure Enable test run on CI for Desktop With this PR we are enabling tests to be run on CI for desktop so that we catch any compat error and we don't have any regressions on the progress we've made to have a clean run. The run is not clean yet, but opening the PR as we are close to achieve it, so whenever we get a clean run merge it right away. FYI: @danmosemsft @stephentoub +19489 area-System.Security Linux: cannot decrypt EncryptedXml document that uses X509Certificate as the key "#### Repro Create a test certificate, such as https://github.com/aspnet/DataProtection/blob/dev/test/Microsoft.AspNetCore.DataProtection.Extensions.Test/TestFiles/TestCert.pfx ```c# using System; using System.Security.Cryptography.X509Certificates; using System.Security.Cryptography.Xml; using System.Xml; using System.Xml.Linq; namespace decrypt { class Program { static void Main(string[] args) { var cert = new X509Certificate2(""TestCert.pfx"", ""password""); var store = new X509Store(StoreName.Root); store.Open(OpenFlags.ReadWrite); store.Add(cert); store.Close(); try { var xmlDoc = new XmlDocument(); xmlDoc.Load(new XElement(""test"", new XElement(""item"")).CreateReader()); var elementToEncrypt = (XmlElement)xmlDoc.DocumentElement.FirstChild; var encryptedDoc = new EncryptedXml(xmlDoc); var encryptedElement = encryptedDoc.Encrypt(elementToEncrypt, cert); EncryptedXml.ReplaceElement(elementToEncrypt, encryptedElement, false); xmlDoc.Save(""sample.xml""); Console.WriteLine(xmlDoc.OuterXml); var xmlDocument = new XmlDocument(); xmlDocument.Load(""sample.xml""); var encryptedXml = new EncryptedXml(xmlDocument); // this line always throws encryptedXml.DecryptDocument(); } finally { store.Open(OpenFlags.ReadWrite); store.Remove(cert); store.Close(); } } } } ``` #### Error: ``` Unhandled Exception: System.PlatformNotSupportedException: Unix LocalMachine X509Store is limited to the Root and CertificateAuthority stores. at Internal.Cryptography.Pal.StorePal.FromSystemStore(String storeName, StoreLocation storeLocation, OpenFlags openFlags) at System.Security.Cryptography.X509Certificates.X509Store.Open(OpenFlags flags) at System.Security.Cryptography.Xml.Utils.BuildBagOfCerts(KeyInfoX509Data keyInfoX509Data, CertUsageType certUsageType) at System.Security.Cryptography.Xml.EncryptedXml.DecryptEncryptedKey(EncryptedKey encryptedKey) at System.Security.Cryptography.Xml.EncryptedXml.GetDecryptionKey(EncryptedData encryptedData, String symmetricAlgorithmUri) at System.Security.Cryptography.Xml.EncryptedXml.DecryptDocument() ``` #### Details Using: Microsoft.NETCore.App: 2.0.0-preview1-002101-00 OS: Ubuntu 16.04" +19490 area-System.Net Mono-specific HttpListener additions. * Move HttpListener.CreateSslStream() into new partial class. * Add new internal HttpListener.LoadCertificateAndKey() and call it from HttpEndPointListener's .ctor. +19491 area-System.Runtime Fix LazyTests.Ctor_ExceptionRecovery test On AoT, XUnit itself was invoking the Lazy object's Value property behind our backs. This particular test is sensitive to that. (The reason why this was happening on AoT and not CoreClr was because CoreClr finds Lazy's ToString() override and invokes that. We could make the same happen pm AoT with an rd.xml but it's simply more reliable not to give XUnit a chance to meddle in the first place.) +19492 area-System.Data SqlClient: Allow |DataDirectory| macro in AttachDBFilename Now that .NET Standard 2.0 includes `AppDomain.GetData`, there shouldn't be anything blocking the implementation to expand the `|DataDirectory|` substitution string in the `AttachDBFilename` value of the connection string. +19493 area-System.Net Check for openssl version before libcurl initialization. cc @bartonjs fixes #19306 +19494 area-System.Security crypto-xml: test behavior change caused by removing CAS related ctor Fixes: https://github.com/dotnet/corefx/issues/19272 Explanation: https://github.com/dotnet/corefx/issues/19272#issuecomment-299979378 +19495 area-System.Diagnostics Letting perfproc errors pass silently Fixes https://github.com/dotnet/corefx/issues/19474 Unfortunately a reliable detection if performance process counters are enabled isn't possible. Therefore we need to let them pass silently. Not a pretty fix but I can't see any other way around that. +19496 area-System.Net Solve System.Net.Sockets tests crash I can reproduce the crash on my dev machine, explanation of the crash is here: https://github.com/dotnet/corefx/issues/13114#issuecomment-290554256. Client use RST to close the connection instead of FIN. Shutdown() socket before dispose() will fix this test crash. Fix #19428 +19497 area-System.IO Fix UMS 32bit PositionPointer test. The purpose of the test is to make the PositionPointer setter cast ulong.MaxValue to a long, producing -1 which will always be less than the UMS pointer so the final newPosition will be negative. On a 32 bit system where the pointer length is 4, the max value passable to the PositionPointer setter is uint.MaxValue. So in the test when we cast a value greater than uint.MaxValue to the 4-byte byte* we only get the uint.MaxValue bytes. Since casting a 4-byte pointer to a long will never result in overflow, the AOoRE can never be hit. resolves https://github.com/dotnet/corefx/issues/19444 related to https://github.com/dotnet/corefx/pull/19412 cc: @jkotas @stephentoub +19498 area-System.Net Increase code coverage of WebRequest, Authorization, AuthorizationManager Code coverage ~90%. Tested on both netfx and corefx. +19499 area-System.Diagnostics System.Diagnostics.Tests.ProcessTests flaky tests "I've seen the following tests failed in two different PRs today: System.Diagnostics.Tests.ProcessTests.TestProcessOnRemoteMachineWindows System.Diagnostics.Tests.ProcessTests.GetProcessesByName_RemoteMachineNameWindows_ReturnsExpected(machineName: \""3556bb7131de4d6ab3e7ada117d07ac9\"") System.Diagnostics.Tests.ProcessTests.GetProcessesByName_RemoteMachineNameWindows_ReturnsExpected(machineName: \""\\\\128636e3cc3e42888137ee11e9c4d4ad\"") They fail with error: ``` System.InvalidOperationException : Couldn't connect to remote machine.\r\n---- System.InvalidOperationException : Process performance counter is disabled, so the requested operation cannot be performed. ``` Latest CI leg where they failed: https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_release_prtest/7609/ Should we maybe fix them to retry if it wasn't able to connect to remote machine? cc: @Priya91 @stephentoub " +19500 area-System.Security Disable SigningVerifyingX509Cert.SignedXmlHasCertificateVerifiableSignature on <= net4.6.1 Issue: https://github.com/dotnet/corefx/issues/19270 RSACryptoServiceProvider.DecryptValue has not been implemented on <=net4.6.1 and thus is throwing SkipOnTargetFramework logic can be also written as `TargetFrameworkMonikers.Net462 - 1` although that might not be clear for people reading the code +19502 area-Infrastructure Package validation updates This improves our package validation to use the latest CLI. This includes tests for duplicate types and binary clashes. I've fixed all the packages which had issues after doing this, and added some exceptions for duplicate types. The infrastructure is still a work in progress but please review both the fixes and the exceptions. /cc @weshaggard +19503 area-System.Security Block opening the Disallowed X509Store on Linux On Linux we don't use the Disallowed store for making (anti-)trust decisions, but since we didn't go out of our way to block it a user can reference it either by name or the StoreName enum and we'll happily create a store of that name, it just won't do what the user expects. So we should throw if they try to open the store, so we're not construed as implicitly making promises that we don't follow through on. +19504 area-Infrastructure Replace test shared framework with the runtime packages Progress towards #18083 cc: @weshaggard @ericstj @danmosemsft Using the runtime packages that were restored as the shared framework that the tests will run against. After this is in, the last pieces missing would be: 1. Find a form to get the right hash of corefx in order to match the test source with the packages that were restored. 2. Run the different ApiCompat runs that we care about with what we restored. +19505 area-System.Security Fix S.Security.Cryptography desktop tests Fixes: #19283 Fixes: #19238 Fixes: #19080 Fixes: #19079 cc: @danmosemsft +19506 area-Meta Add nice messages for assemblies with autogenerated PNSE Resolves https://github.com/dotnet/corefx/issues/19358. Adding assembly-wide custom messages for all autogenerated PNSE per the talk with area owners. cc: @danmosemsft @tarekgh +19507 area-System.Net Incorrect usage of LingerTime can cause System.Net.Sockets tests failure After investigating into #19428, there is a risk by using LingerState to wait for send/receive operation complete, before dispose the socket. Because the LingerTime value is arbitrarily set by us, some slow computers may take more time to finish the send/receive operation, so it's possible that some data are still available before we dispose the socket. And in this case, we will use a RST packet (instead of FIN) to forcibly close the connection after time out (https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs#L4649, related issue #13114), and test will fail with System.Net.Sockets.SocketException, Message: An existing connection was forcibly closed by the remote host. An example is #19428 Potential fix: always use socket.Shutdown(SocketShutdown how) before we dispose() the socket. cc: @davidsh @CIPop @stephentoub +19508 area-System.Security macOS: cannot add self-signed cert to X509Store CurrentUser\My "**Repro** 1. Download latest build of .NET Core 2.0.0 preview2 https://github.com/dotnet/cli#installers-and-binaries 1. Create a self-signed cert 1. `openssl genrsa 4096 > private.pem` 1. `openssl req -x509 -new -key private.pem -out public.pem` 1. `openssl pkcs12 -export -in public.pem -inkey private.pem -out mycert.pfx` 2. `dotnet new console` and edit code to match: ```c# using System; using System.Security.Cryptography.X509Certificates; namespace addcert { class Program { static void Main(string[] args) { var cert = new X509Certificate2(""mycert.pfx"", ""password""); var store = new X509Store(StoreName.My, StoreLocation.CurrentUser); try { store.Open(OpenFlags.ReadWrite); // this line throws store.Add(cert); } finally { store.Close(); } } } } ``` 3. `dotnet run` **Error** ``` Unhandled Exception: Interop+AppleCrypto+AppleCommonCryptoCryptographicException: The contents of this item cannot be retrieved. at Interop.AppleCrypto.X509StoreAddCertificate(SafeKeychainItemHandle certOrIdentity, SafeKeychainHa ndle keychain) at Internal.Cryptography.Pal.StorePal.AppleKeychainStore.Add(ICertificatePal cert) at System.Security.Cryptography.X509Certificates.X509Store.Add(X509Certificate2 certificate) at addcert.Program.Main(String[] args) ``` **Details:** Microsoft.NETCore.App/2.0.0-preview2-002093-00 macOS 10.12.4 Available Keychains: ![image](https://cloud.githubusercontent.com/assets/2696087/25830803/5f4ef3aa-3414-11e7-8d2a-90731f6f7c08.png) Adding the .pfx file to 'login' via the Keychain Access utility works just fine, as does `security import mycert.pfx -k ~/Library/Keychains` " +19509 area-System.IO Fix System.IO.Compression test Fixes: https://github.com/dotnet/corefx/issues/18264 cc: @danmosemsft +19511 area-System.Console "Test: ConsoleEncoding/InputEncoding_SetWithInInitialized_ResetsIn and OutputEncoding_SetWithErrorAndOutputInitialized_ResetsErrorAndOutput failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `ConsoleEncoding/InputEncoding_SetWithInInitialized_ResetsIn` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -532462766 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() Build : Master - 20170509.01 (Core Tests) Failing configurations: - Windows.10.Nano.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170509.01/workItem/System.Console.Tests/analysis/xunit/ConsoleEncoding~2FInputEncoding_SetWithInInitialized_ResetsIn +19512 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientTest/Timeout_SetTo30AndGetResponseFromLoopbackQuickly_Success Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientTest/Timeout_SetTo30AndGetResponseFromLoopbackQuickly_Success` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Net.Http.WinHttpException : The handle is invalid Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.HttpClientTest.<>c__DisplayClass28_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.Tasks.ContinuationTaskFromTask.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.HttpClientTest.d__28.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Environment.get_StackTrace() at System.Runtime.ExceptionServices.ExceptionStackTrace.AddCurrentStack(Exception exception) at System.Net.Http.WinHttpException.CreateExceptionUsingError(Int32 error) at System.Net.Http.WinHttpException.CreateExceptionUsingLastError() at System.Net.Http.WinHttpException.ThrowExceptionUsingLastError() at System.Net.Http.WinHttpHandler.SetWinHttpOption(SafeWinHttpHandle handle, UInt32 option, UInt32& optionData) at System.Net.Http.WinHttpHandler.SetRequestHandleRedirectionOptions(SafeWinHttpHandle requestHandle) at System.Net.Http.WinHttpHandler.SetRequestHandleOptions(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.d__105.MoveNext() at System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at System.Net.Http.WinHttpHandler.StartRequest(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.<>c.b__101_0(Object s) at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntryUnsafe() at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback() --- End of stack trace from AddCurrentStack --- at System.Net.Http.WinHttpException.ThrowExceptionUsingLastError() at System.Net.Http.WinHttpHandler.SetWinHttpOption(SafeWinHttpHandle handle, UInt32 option, UInt32& optionData) at System.Net.Http.WinHttpHandler.SetRequestHandleRedirectionOptions(SafeWinHttpHandle requestHandle) at System.Net.Http.WinHttpHandler.SetRequestHandleOptions(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : Master - 20170509.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x86 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170509.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientTest~2FTimeout_SetTo30AndGetResponseFromLoopbackQuickly_Success +19513 area-System.Net Test failure: System.Net.Http.Functional.Tests.PostScenarioTest/PostUsingChunkedEncoding_Success(serverUri: https://corefx-net.cloudapp.net/Echo.ashx) Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.PostScenarioTest/PostUsingChunkedEncoding_Success(serverUri: https://corefx-net.cloudapp.net/Echo.ashx)` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Net.Http.WinHttpException : The handle is in the wrong state for the requested operation Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.PostScenarioTest.d__22.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Http.Functional.Tests.PostScenarioTest.d__13.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Environment.get_StackTrace() at System.Runtime.ExceptionServices.ExceptionStackTrace.AddCurrentStack(Exception exception) at System.Net.Http.WinHttpException.CreateExceptionUsingError(Int32 error) at System.Net.Http.WinHttpException.CreateExceptionUsingLastError() at System.Net.Http.WinHttpException.ThrowExceptionUsingLastError() at System.Net.Http.WinHttpHandler.SetWinHttpOption(SafeWinHttpHandle handle, UInt32 option, IntPtr optionData, UInt32 optionSize) at System.Net.Http.WinHttpHandler.SetNoClientCertificate(SafeWinHttpHandle requestHandle) at System.Net.Http.WinHttpHandler.SetRequestHandleClientCertificateOptions(SafeWinHttpHandle requestHandle, Uri requestUri) at System.Net.Http.WinHttpHandler.SetRequestHandleOptions(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.d__105.MoveNext() at System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at System.Net.Http.WinHttpHandler.StartRequest(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.<>c.b__101_0(Object s) at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.Tasks.Task.ExecuteEntryUnsafe() at System.Threading.Tasks.Task.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback() --- End of stack trace from AddCurrentStack --- at System.Net.Http.WinHttpException.ThrowExceptionUsingLastError() at System.Net.Http.WinHttpHandler.SetWinHttpOption(SafeWinHttpHandle handle, UInt32 option, IntPtr optionData, UInt32 optionSize) at System.Net.Http.WinHttpHandler.SetNoClientCertificate(SafeWinHttpHandle requestHandle) at System.Net.Http.WinHttpHandler.SetRequestHandleClientCertificateOptions(SafeWinHttpHandle requestHandle, Uri requestUri) at System.Net.Http.WinHttpHandler.SetRequestHandleOptions(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : Master - 20170509.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x86 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170509.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.PostScenarioTest~2FPostUsingChunkedEncoding_Success(serverUri:%20https:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx) +19514 area-System.Net "Test: System.Net.NetworkInformation.Tests.PingTest/SendPingAsyncWithIPAddressAndTimeoutAndBufferAndPingOptions_Unix failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.NetworkInformation.Tests.PingTest/SendPingAsyncWithIPAddressAndTimeoutAndBufferAndPingOptions_Unix` has failed. Assert.Equal() Failure Expected: Success Actual: TimedOut Stack Trace: at System.Net.NetworkInformation.Tests.PingTest.<>c__DisplayClass8_0.b__1(PingReply pingReply) in /Users/buildagent/agent/_work/19/s/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs:line 199 at System.Net.NetworkInformation.Tests.PingTest.d__23.MoveNext() in /Users/buildagent/agent/_work/19/s/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs:line 453 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__8.MoveNext() in /Users/buildagent/agent/_work/19/s/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs:line 195 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170509.01 (Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170509.01/workItem/System.Net.Ping.Functional.Tests/analysis/xunit/System.Net.NetworkInformation.Tests.PingTest~2FSendPingAsyncWithIPAddressAndTimeoutAndBufferAndPingOptions_Unix +19515 area-Serialization Whether serializer can deserialize different datetime formats on any OS @shmao According to the results that serializer can't deserialize both formats on our test OS +19516 area-Serialization "Desktop: ""Test System.Runtime.Serialization.Xml.ReflectionOnly.Tests.DataContractSerializerTests.DCS_TypeWithPrivateFieldAndPrivateGetPublicSetProperty"" failed" "https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170509.01/workItem/System.Runtime.Serialization.Xml.ReflectionOnly.Tests ``` XML comparison is also failing\r\nTest failed for input: TypeWithPrivateFieldAndPrivateGetPublicSetProperty\r\nExpected: foo\r\nActual: \r\nExpected: True\r\nActual: False ``` Stack Trace: ``` at DataContractSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractSerializerSettings settings, Func`1 serializerFactory, Boolean skipStringCompare) in E:\A\_work\135\s\corefx\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 3187 at DataContractSerializerTests.DCS_TypeWithPrivateFieldAndPrivateGetPublicSetProperty() in E:\A\_work\135\s\corefx\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 821 ``` Seems like a bug in desktop, the difference is how it returns the result in between desktop and core: #### Core ``` foo ``` #### Desktop ```` ```` cc: @shmao @zhenlan " +19517 area-System.Net "Test: System.Net.Sockets.Tests.SendFileTest/SendFile_APM(listenAt: ::1, sendPreAndPostBuffers: False, bytesToSend: 1024) failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.SendFileTest/SendFile_APM(listenAt: ::1, sendPreAndPostBuffers: False, bytesToSend: 1024)` has failed. Completed within allowed time Expected: True Actual: False Stack Trace: at System.Net.Sockets.Tests.SendFileTest.SendFile_APM(IPAddress listenAt, Boolean sendPreAndPostBuffers, Int32 bytesToSend) in /Users/buildagent/agent/_work/2/s/corefx/src/System.Net.Sockets/tests/FunctionalTests/SendFile.cs:line 249 Build : Master - 20170509.01 (Portable Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170509.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SendFileTest~2FSendFile_APM(listenAt:%20::1,%20sendPreAndPostBuffers:%20False,%20bytesToSend:%201024) +19518 area-Infrastructure Exceptions from RemoteExecutorHost should get into XML log "We should try to `tee` the console from RemoteExecutorHost so it gets into the XML test log and thus into the correct test result in Helix. As it is you just get eg (note the code = ""some managed exceptoin"") ``` Assert.Equal() Failure\r Expected: 42\r Actual: -532462766 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() ``` but if you look at the full console output, aggregated for all the tests in this library, you see the actual exception -- ``` 2017-05-09 01:33:05,362: INFO: proc(54): run_and_log_output: Output: Hello World 2017-05-09 01:33:05,440: INFO: proc(54): run_and_log_output: Output: Exception from RemoteExecutorConsoleApp(System.Console.Tests, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb, ConsoleEncoding+<>c, b__6_0): 2017-05-09 01:33:05,440: INFO: proc(54): run_and_log_output: Output: Assembly: System.Console.Tests, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb 2017-05-09 01:33:05,440: INFO: proc(54): run_and_log_output: Output: Type: ConsoleEncoding+<>c 2017-05-09 01:33:05,440: INFO: proc(54): run_and_log_output: Output: Method: Int32 b__6_0() 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.IOException: The request is not supported 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: at System.ConsolePal.SetConsoleOutputEncoding(Encoding enc) 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: at System.Console.set_OutputEncoding(Encoding value) 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: at ConsoleEncoding.<>c.b__6_0() 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: --- End of inner exception stack trace --- 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: at RemoteExecutorConsoleApp.Program.Main(String[] args) 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.IOException: The request is not supported 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: at System.ConsolePal.SetConsoleOutputEncoding(Encoding enc) 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: at System.Console.set_OutputEncoding(Encoding value) 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: at ConsoleEncoding.<>c.b__6_0() 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: --- End of inner exception stack trace --- 2017-05-09 01:33:05,487: INFO: proc(54): run_and_log_output: Output: at RemoteExecutorConsoleApp.Program.Main(String[] args) 2017-05-09 01:33:05,596: INFO: proc(54): run_and_log_output: Output: ConsoleEncoding.OutputEncoding_SetWithErrorAndOutputInitialized_ResetsErrorAndOutput [FAIL] 2017-05-09 01:33:05,596: INFO: proc(54): run_and_log_output: Output: Assert.Equal() Failure 2017-05-09 01:33:05,596: INFO: proc(54): run_and_log_output: Output: Expected: 42 2017-05-09 01:33:05,596: INFO: proc(54): run_and_log_output: Output: Actual: -532462766 2017-05-09 01:33:05,596: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-09 01:33:05,721: INFO: proc(54): run_and_log_output: Output: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() 2017-05-09 01:33:05,957: INFO: proc(54): run_and_log_output: Output: Exception from RemoteExecutorConsoleApp(System.Console.Tests, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb, ConsoleEncoding+<>c, b__3_0): 2017-05-09 01:33:05,957: INFO: proc(54): run_and_log_output: Output: Assembly: System.Console.Tests, Version=4.1.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb ```" +19519 area-System.Console Disable 2 tests on Nano due to missing ASCII code page Fix https://github.com/dotnet/corefx/issues/19511 On Nano, Console.OutputEncoding = Encoding.ASCII; produces ERROR_NOT_SUPPORTED. Since we're just calling directly through to the OS, and our code is the same here, it's unlikely we're to blame. It's likely this is a piece of legacy support intentionally removed from Nano. +19521 area-System.Numerics Standardized Rational object This issue was ported from https://github.com/dotnet/csharplang/issues/553 Lately in csharplang whenever we talk about struct feature. Rational struct often came up as an example And so I think that Rational actually useful. Normally approximate number with float. `3 * (1 / 3f)` is not became what we would expect. Floating point error need to be handled everywhere since we program in C Most of the time we care about precision than the range of number. If we could naturally use `Rational` in code it could make a lot of sense in many calculation logic And instead of always making Rational on our own then overriding all operators just about conversion between each number type. I think it could be useful enough to have it built in ```C# struct Rational64 { public int Number,Divider; } struct Rational128 { public long Number,Divider; } // Both will have long list of overload operator and implicit operator Rational64 f = 3; // implicit operator for int. Became Rational64(3,1) Rational64 f3 = 1 / f; // operator / will flip Number and Divider var three = 9 * f3; // 9 * 1 / 3 became Rational64(9,3). Should it always find LCM or just did it only when overflow? ``` ### ps We actually could handle internal value like this ```C# struct Rational64 { uint divider; public int Number; public uint Divider { get => divider + 1; set => divider = value - 1 } public double Value { get => Number / (double)Divider; } } ``` With this we will always handle negative only in number. And zeromemory will be `0 / 1` ### ps2 Should we also add `Irrational` and `Algebraic` object too? ```C# struct Irrational64 // Actually just 1 order of power for polynomial calculation { public Rational64 Value; public Rational64 Power; } struct Irrational128 { public Rational128 Value; public Rational128 Power; } class Algebraic128 // The real Irrational { public Rational128 Value = 0 / 1R; public Algebraic Power = null; // Unlike Irrational, can contain chain of power public static implicit operator double(Algebraic128 value) => Math.Pow((double)Value,Power ?? 1); } ``` I think most of calculation we use in graphics and physics simulation could be use `Irrational128` in general ### ps3 From csharplang repo I was propose this feature to have literal syntax. And there are suggestion that it should at least make the object itself pass corefx first +19522 area-Meta Disable desktop tests Disabling more desktop tests to get a clean run on CI. cc: @danmosemsft +19523 area-Infrastructure Fix Windows 7 outer loop runs Fix https://github.com/dotnet/corefx/issues/19480 `${osGroup}` is null per the log in the bug. It comes from `def osGroup = osGroupMap[osName]`. I see Windows 7 is not in `osGroupMap` hence null. But, Windows 10 was not there either (?) So this is not fully understood. Is there some way to validate this? +19524 area-System.Runtime Enable Environment.Exit tests and update DotNetHost and DotNetHostPolicy versions Related: https://github.com/dotnet/corefx/pull/19232 As I can't push into mazons PR I try it here. +19525 area-System.Net Enable System.Net.Requests.Tests to run in parallel again In helix the timeout is to small that the tests where timing out when running not in parallel. Parallelization was disabled to avoid hangs due to ServicePointManager.DefaultConnectionLimit small limit in Desktop, but we already take care of that by setting it to int.MaxValue, so we can enable paralellization again to avoid time out issues. The errors we where getting where like this one: ``` 2017-05-09 06:09:40,006: INFO: proc(54): run_and_log_output: Output: xUnit.net Console Runner (64-bit Desktop .NET 4.0.30319.42000) 2017-05-09 06:09:40,131: INFO: proc(54): run_and_log_output: Output: Discovering: System.Net.Requests.Tests 2017-05-09 06:09:40,334: INFO: proc(54): run_and_log_output: Output: Discovered: System.Net.Requests.Tests 2017-05-09 06:09:40,349: INFO: proc(54): run_and_log_output: Output: Starting: System.Net.Requests.Tests 2017-05-09 06:11:42,687: INFO: proc(54): run_and_log_output: Output: System.Net.Tests.HttpWebRequestTest.ContentLength_SetAfterRequestSubmitted_ThrowsInvalidOperationException(remoteServer: http://corefx-net.cloudapp.net/Echo.ashx) [FAIL] 2017-05-09 06:11:42,687: INFO: proc(54): run_and_log_output: Output: System.Net.WebException : The operation has timed out 2017-05-09 06:11:42,701: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-09 06:11:42,701: INFO: proc(54): run_and_log_output: Output: at System.Net.HttpWebRequest.GetResponse() 2017-05-09 06:11:42,701: INFO: proc(54): run_and_log_output: Output: D:\repos\corefx\src\System.Net.Requests\tests\HttpWebRequestTest.cs(146,0): at System.Net.Tests.HttpWebRequestTest.ContentLength_SetAfterRequestSubmitted_ThrowsInvalidOperationException(Uri remoteServer) ``` Sometimes it wouldn't even show a test failure, it would just not finish running. cc: @danmosemsft +19526 area-System.Net Several new HttpListener tests are failing in CI "https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_debug/40/consoleText ``` System.Net.Tests.HttpListenerPrefixCollectionTests.Add_InvalidPrefixNotStarted_ThrowsHttpListenerExceptionOnStart(uriPrefix: \""http://microsoft.com/\"") [FAIL] Assert.Throws() Failure Expected: typeof(System.Net.HttpListenerException) Actual: (No exception was thrown) Stack Trace: D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.HttpListener\tests\HttpListenerPrefixCollectionTests.cs(264,0): at System.Net.Tests.HttpListenerPrefixCollectionTests.Add_InvalidPrefixNotStarted_ThrowsHttpListenerExceptionOnStart(String uriPrefix) ``` cc: @hughbe " +19530 area-System.Net Disable newly added HttpListener test failing in CI https://github.com/dotnet/corefx/issues/19526 +19532 area-System.Net Cleaning up dead code in System.Net.Mail Relative to issue #17905. Code removed in Common was done after a grep to ensure it is not used anymore. Some resources were kept because they were used by other libraries. Routing to @karelz as asked. +19533 area-System.Security Handle the PNSE when opening LocalMachine\My store on Linux When an X509Data is being used as a source of hunting for a store certificate with a (matching) private key it fails on Linux with a PlatformNotSupportedException when trying to open the LocalMachine\My store. Since the code was already resilient to CryptographicException from the store open, add PlatformNotSupportedException to things it expects as ignorable. Fixes #19489. +19534 area-System.Net Write_HeadersToClosedConnectionSynchronously_ThrowsHttpListenerException test fails on macOS ``` System.Net.Tests.HttpResponseStreamTests.Write_HeadersToClosedConnectionSynchronously_ThrowsHttpListenerException(ignoreWriteExceptions: False) [FAIL] 10:29:33 Assert.Throws() Failure 10:29:33 Expected: typeof(System.Net.HttpListenerException) 10:29:33 Actual: (No exception was thrown) 10:29:33 Stack Trace: 10:29:33 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.HttpListener/tests/HttpResponseStreamTests.cs(453,0): at System.Net.Tests.HttpResponseStreamTests.d__21.MoveNext() 10:29:33 --- End of stack trace from previous location where exception was thrown --- 10:29:33 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 10:29:33 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 10:29:33 --- End of stack trace from previous location where exception was thrown --- 10:29:33 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 10:29:33 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 10:29:33 --- End of stack trace from previous location where exception was thrown --- 10:29:33 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 10:29:33 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +19535 area-Meta [Announcement] [Discussion] Microsoft Security Advisory 4021279: Vulnerabilities in .NET Core, ASP.NET Core Could Allow Elevation of Privilege "# Microsoft Security Advisory 4021279: Vulnerabilities in .NET Core, ASP.NET Core Could Allow Elevation of Privilege ## Executive Summary Microsoft is releasing this security advisory to provide information about vulnerabilities in public .NET Core and ASP.NET Core. This advisory also provides guidance on what developers can do to update their applications correctly. .NET Core & ASP.NET Core are the next generation of .NET that provide a familiar and modern framework for web and cloud scenarios. These products are actively developed by the .NET and ASP.NET team in collaboration with a community of open source developers, running on Windows, Mac OS X and Linux. When .NET Core was released, the version number was reset to 1.0.0 to reflect the fact that it is a separate product from its predecessor -.NET. ## Discussion To discuss the ASP.NET Core issues please see https://github.com/aspnet/Mvc/issues/6246 To discuss the CoreFX Core issues please see https://github.com/dotnet/corefx/issues/19535 ## Issue CVEs and Description CVE | Description ----|------------- [CVE-2017-0248](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0248) | Security Feature Bypass [CVE-2017-0247](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0247) | Denial of Service [CVE-2017-0249](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0249) | Elevation of Privilege [CVE-2017-0256](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0256) | Spoofing ## Affected Software The vulnerabilities affect any Microsoft .NET Core project if it uses the following affected package versions. Package name | Package versions | Fixed package versions ---------------- | ------------------- | ------------------------- System.Text.Encodings.Web | 4.0.0
4.3.0 | 4.0.1
4.3.1 System.Net.Http | 4.1.1
4.3.1 | 4.1.2
4.3.2| System.Net.Http.WinHttpHandler | 4.0.1
4.3.0 | 4.0.2
4.3.1 System.Net.Security | 4.0.0
4.3.0 | 4.0.1
4.3.1 System.Net.WebSockets.Client | 4.0.0
4.3.0 | 4.0.1
4.3.1 Microsoft.AspNetCore.Mvc | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 Microsoft.AspNetCore.Mvc.Core | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 Microsoft.AspNetCore.Mvc.Abstractions | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 Microsoft.AspNetCore.Mvc.ApiExplorer | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 Microsoft.AspNetCore.Mvc.Cors | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 Microsoft.AspNetCore.Mvc.DataAnnotations | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 Microsoft.AspNetCore.Mvc.Formatters.Json | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 Microsoft.AspNetCore.Mvc.Formatters.Xml | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 Microsoft.AspNetCore.Mvc.Localization | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 Microsoft.AspNetCore.Mvc.Razor.Host | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 Microsoft.AspNetCore.Mvc.Razor | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 Microsoft.AspNetCore.Mvc.TagHelpers | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 Microsoft.AspNetCore.Mvc.ViewFeatures | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 Microsoft.AspNetCore.Mvc.WebApiCompatShim | 1.0.0, 1.0.1, 1.0.2, 1.0.3
1.1.0, 1.1.1, 1.1.2 | 1.0.4
1.1.3 ## Advisory FAQ ### How do I know if I am affected? .NET Core and ASP.NET Core have two types of dependencies: direct and transitive. If your project has a direct or transitive dependency on any of the packages and versions listed above, you are affected. Note: As part of patching ASP.NET Core MVC we update every Microsoft.AspNetCore.Mvc.* package. If, for example, you have a dependency on `Microsoft.AspNetCore.Mvc` you should update to the appropriate version first (1.0.x should be updated to 1.0.4, 1.1.x should be updated to 1.1.3), and it will also update any other vulnerable ` Microsoft.AspNetCore.Mvc` dependency. ### NET Core Project formats .NET Core has two different project file formats, depending on what software created the project. 1. `project.json` is the format used in .NET Core 1.0 and Microsoft Visual Studio 2015. 2. `csproj` is the format used in .NET Core 1.1 and Microsoft Visual Studio 2017. You must ensure you follow the correct update instructions for your project type. ### Direct Dependencies Direct dependencies are dependencies where you specifically add a package to your project. For example, if you add the `Microsoft.AspNetCore.Mvc` package to your project then you have taken a direct dependency on` Microsoft.AspNetCore.Mvc`. Direct dependencies are discoverable by reviewing your `project.json` or `csproj` file. ### Transitive Dependencies Transitive dependencies occur when you add a package to your project that in turn relies on another package. For example, if you add the `Microsoft.AspNetCore.Mvc` package to your project it depends on the `Microsoft.AspNetCore.Mvc.Core` package (among others). Your project has a direct dependency on `Microsoft.AspNetCore.Mvc` and a transitive dependency on the `Microsoft.AspNetCore.Mvc.Core` package. Transitive dependencies are reviewable in the Visual Studio Solution Explorer window, which supports searching, or by reviewing the `project.lock.json` file contained in the root directory of your project for `project.json` projects or the `project.assets.json` file contained in the obj directory of your project for `csproj` projects. These files are the authoritative list of all packages used by your project, containing both direct and transitive dependencies. ## How do I fix my affected application? You will need to fix both direct dependencies and review and fix any transitive dependencies. The affected packages and versions in the previous “Affected Software” section include each vulnerable package, the vulnerable versions, and the patched versions --- **Note**: If you are using ASP.NET Core MVC in your projects you should first update the `Microsoft.AspNetCore.Mvc` version according to the affected versions table above. If you are currently using version 1.0.0, 1.0.1, 1.0.2 or 1.0.3 you should update your package version to 1.0.4. If you are using version 1.1.0, 1.1.1 or 1.1.2 you should update your package version to 1.1.3. This will update every MVC package to the fixed versions. --- ### Fixing Direct Dependencies – project.json/VS2015 Open your `project.json` file in your editor. Look for the dependencies section. Below is an example dependencies section: ``` json ""dependencies"": { ""Microsoft.NETCore.App"": { ""version"": ""1.0.1"", ""type"": ""platform"" }, ""Microsoft.AspNetCore.Server.Kestrel"": ""1.0.1"", ""Microsoft.AspNetCore.Mvc "": ""1.0.1"", } ``` This example has three direct dependencies: `Microsoft.NETCore.App`, `Microsoft.AspNetCore.Server.Kestrel` and `Microsoft.AspNetCore.Mvc`. `Microsoft.NetCore.App` is the platform the application targets, you should ignore this. The other packages expose their version to the right of the package name. In our example, our non-platform packages are version 1.0.1. Review your direct dependencies for any instance of the packages and versions listed above. In the example above, there is a direct dependency on one of the vulnerable packages, `Microsoft.AspNetCore.Mvc` version 1.0.1. To update to the fixed package, change the version number to be the appropriate package for your release. In the example, this would be updating `Microsoft.AspNetCore.Mvc` to 1.0.4. After updating the vulnerable package versions, save your `project.json` file. The dependencies section in our example `project.json` would now look as follows: ```json ""dependencies"": { ""Microsoft.NETCore.App"": { ""version"": ""1.0.1"", ""type"": ""platform"" }, ""Microsoft.AspNetCore.Server.Kestrel"": ""1.0.1"", ""Microsoft.AspNetCore.Mvc"": ""1.0.4"", } ``` If you are using Visual Studio and save your updated `project.json` file, Visual Studio will restore the new package version. You can see the restore results by opening the Output Window (Ctrl+Alt+O) and changing the Show output from drop-down list to Package Manager. If you are not using Visual Studio, open a command line and change to your project directory. Execute the `dotnet restore` command to restore your new dependency. After you have addressed all of your direct dependencies, you must also review your transitive dependencies. ### Fixing Direct Dependencies – csproj/VS2017 Open your `projectname.csproj` file in your editor, or right click the project in Visual Studio 2017 and choose `Edit projectname.csproj` from the content menu, where projectname is the name of your project. Look for `PackageReference` nodes. The following shows an example project file: ``` XML netcoreapp1.1 $(PackageTargetFallback);portable-net45+win8+wp8+wpa81; ``` The example has two direct package dependencies, as seen by the two `PackageReference` elements. The name of the package is in the Include attribute, and the package version number is in the Version attribute that is exposed to the right of the package name. The example shows two packages `Microsoft.AspNetCore` version 1.1.1, and `Microsoft.AspNetCore.Mvc.Core` version 1.1.2. Review your `PackageReference` elements for any instance of the packages and versions listed above. In the example above, there is a direct dependency on one of the vulnerable packages, `Microsoft.AspNetCore.Mvc` version 1.1.2. To update to the fixed package, change the version number to the appropriate package for your release. In the example, this would be updating `Microsoft.AspNetCore.Mvc` to 1.1.3. After updating the vulnerable package version, save your `csproj` file. The example `csproj` would now look as follows: ``` XML netcoreapp1.1 $(PackageTargetFallback);portable-net45+win8+wp8+wpa81; ``` If you are using Visual Studio and save your updated `csproj` file, Visual Studio will restore the new package version. You can see the restore results by opening the Output Window (Ctrl+Alt+O) and changing the Show output from drop-down list to Package Manager. If you are not using Visual Studio open a command line and change to your project directory. Execute the `dotnet restore` command to restore your new dependency. ### After updating your direct dependencies Recompile your application. If after recompilation you see a Dependency conflict warning, you must update your other direct dependencies to the appropriate version. For example if your project refers to `Microsoft.AspNetCore.Routing` with a version number of 1.0.1 when you update your `Microsoft.AspNetCore.Mvc` package to 1.0.4, compilation will throw: `NU1012 Dependency conflict. Microsoft.AspNetCore.Mvc.Core 1.0.4 expected Microsoft.AspNetCore.Routing >= 1.0.4 but received 1.0.1` To fix this, edit the version for the expected package to be the version expected by updating your `csproj` or `project.json` in the same way that you used to update the vulnerable package versions. After you have addressed all of your direct dependencies, you must also review your transitive dependencies. ### Reviewing Transitive Dependencies There are two ways to view transitive dependencies. You can either use Visual Studio’s Solution Explorer, or you can review your `project.lock.json` (project.json/VS2015) or `project.assets.json` (csproj/VS2017) file. #### Using Visual Studio Solution Explorer (VS2015) If you want to use Visual Studio 2015, open your project in Visual Studio 2015 and then press Ctrl+; to activate the search in Solution Explorer. Search for each of the vulnerable package names and make a note of the version numbers of any results you find. For example, searching for `Microsoft.AspNetCore.Mvc.Core` in an example project that contains a reference to `Microsoft.AspNetCore.Mvc` shows the following results in Visual Studio 2015. ![vs2015](https://cloud.githubusercontent.com/assets/796298/25858059/a1ae6624-348f-11e7-9ce9-ff2d25a3fc5b.png) The search results appear as a tree. In these results, you can see we have found references to `Microsoft.AspNetCore.Mvc`, version 1.0.1, ` vulnerable version. The first entry under the References heading refers to the target framework your application is using. This will be `.NETCoreApp`, `.NETStandard` or `.NET-Framework-vX.Y.Z` (where X.Y.Z is an actual version number) depending on how you configured your application. Under your target framework will be the list of packages you have directly taken a dependency on. In this example, the application takes a dependency on `Microsoft.AspNetCore.Mvc`. `Microsoft.AspNetCore.Mvc` in turn has leaf nodes that list its dependencies and their versions. In this case the `Microsoft.AspNetCore.Mvc` package takes a dependency on a vulnerable version of `Microsoft.AspNetCore.Mvc.Core` and numerous other packages. #### Manually reviewing project.lock.json (project.json/VS2015) Open the `project.lock.json` file in your editor. We suggest you use an editor that understands json and allows you to collapse and expand nodes to review this file; both Visual Studio and Visual Studio Code provide this functionality. If you are using Visual Studio the `project.lock.json` file is “under” the `project.json` file. Click the right pointing triangle, ▷, to the left of the `project.json` file to expand the solution tree to expose the `project.lock.json` file. The following image shows a project with the `project.json` file expanded to show the `project.lock.json` file. ![project lock json](https://cloud.githubusercontent.com/assets/796298/25858179/f6e01200-348f-11e7-8a77-7176d8dd3f03.png) Search the `project.lock.json` file for each of the vulnerable packages, using the format `AssemblyName/`. If you find any vulnerable assembly name in your search examine the line on which they are found, the version number is after the `/` and compare to the vulnerable versions table above. For example a search result that shows `Microsoft.AspNetCore.Mvc.Core/1.0.1` is a reference to v1.0.1 of `Microsoft.AspNetCore.Mvc.Core`. If your `project.lock.json` file includes references to any of the vulnerable packages shown above then you will need to fix the transitive dependencies. #### Fixing transitive dependencies (project.json/VS2015) If you have not found any reference to any vulnerable packages this means none of your direct dependencies depend on any vulnerable packages or you have already fixed the problem by updating the direct dependencies. If your transitive dependency review found references to any of the vulnerable packages you must add a direct dependency to the updated package to your `project.json` file to override the transitive dependency. Open your `project.json` and find the dependencies section. For example: ``` json ""dependencies"": { ""Microsoft.NETCore.App"": { ""version"": ""1.0.1"", ""type"": ""platform"" }, ""Microsoft.AspNetCore.Server.Kestrel"": ""1.1.0"", ""Microsoft.AspNetCore.Mvc"": ""1.1.0"" } ``` For each of the vulnerable packages your search returned you must add a direct dependency to the updated version by adding it to the `project.json` file. You do this by adding a new line to the dependencies section, referring the fixed version. For example, if your search showed a transitive reference to the vulnerable `System.Net.Security` version 4.0.0 you would add a reference to the appropriate fixed version, 4.0.1. Edit the `project.json` file as follows: ``` json ""dependencies"": { ""Microsoft.NETCore.App"": { ""version"": ""1.0.1"", ""type"": ""platform"" }, ""System.Net.Security"": ""4.0.1"", ""Microsoft.AspNetCore.Server.Kestrel"": ""1.1.0"", ""Microsoft.AspNetCore.Mvc"": ""1.1.1"" } ``` After you have added direct dependencies to the fixed packages, save your `project.json` file. If you are using Visual Studio save your updated `project.json` file and Visual Studio will restore the new package versions. You can see the restore results by opening the Output Window (Ctrl+Alt+O) and changing the Show output from drop-down list to Package Manager. If you are not using Visual Studio open a command line and change to your project directory. Execute the `dotnet restore` command to restore your new dependencies. #### Using Visual Studio Solution Explorer (VS2017) If you want to use Solution Explorer, open your project in Visual Studio 2017, and then press Ctrl+; to activate the search in Solution Explorer. Search for each of the vulnerable package names and make a note of the version numbers of any results you find. For example, searching for `Microsoft.AspNetCore.Mvc.Core` in an example project that contains a package that takes a dependency on `Microsoft.AspNetCore.Mvc` shows the following results in Visual Studio 2017. ![vs2017](https://cloud.githubusercontent.com/assets/796298/25858816/8ecdc2b4-3491-11e7-9363-746804bb9832.png) The search results appear as a tree. In these results, you can see we have found references to `Microsoft.AspNetCore.Mvc.Core` version 1.1.2. Under the Dependencies node will be a NuGet node. Under the NuGet node will be the list of packages you have directly taken a dependency on and their versions. In this example, the application takes a direct dependency on `Microsoft.AspNetCore.Mvc`. `Microsoft.AspNetCore.Mvc` in turn has leaf nodes that list its dependencies and their versions. In the example the `Microsoft.AspNetCore.Mvc` package takes a dependency on a version of `Microsoft.AspNetCore.Mvc.ApiExplorer` which in turn takes a dependency on a vulnerable version of `Microsoft.AspNetCore.Mvc.Core`. #### Manually reviewing project.assets.json (VS2017) Open the `project.assets.json` file from your project’s obj directory in your editor. We suggest you use an editor that understands json and allows you to collapse and expand nodes to review this file; both Visual Studio and Visual Studio Code provide this functionality. Search the `project.assets.json` file for each of the vulnerable packages, using the format `AssemblyName/`. If you find any vulnerable assembly name in your search examine the line on which they are found, the version number is after the `/` and compare to the vulnerable versions table above. For example a search result that shows `Microsoft.AspNetCore.Mvc.Core/1.1.0` is a reference to v1.1.0 of `Microsoft.AspNetCore.Mvc.Core`. If your `project.assets.json` file includes references to any of the vulnerable packages shown above then you will need to fix the transitive dependencies. If you have not found any reference to any vulnerable packages this means none of your direct dependencies depend on any vulnerable packages or you have already fixed the problem by updating the direct dependencies. If your transitive dependency review found references to any of the vulnerable packages you must add a direct dependency to the updated package to your `csproj` file to override the transitive dependency. Open your `projectname.csproj` file in your editor, or right click on the project in Visual Studio 2017 and choose Edit `projectname.csproj` from the content menu, where `projectname` is the name of your project. Look for `PackageReference` nodes, for example: ``` xml netcoreapp1.1 $(PackageTargetFallback);portable-net45+win8+wp8+wpa81; ``` For each of the vulnerable packages your search returned you must add a direct dependency to the updated version by adding it to the `csproj` file. You do this by adding a new line to the dependencies section, referring the fixed version. For example, if your search showed a transitive reference to the vulnerable `System.Net.Security` version 4.3.0 you would add a reference to the appropriate fixed version, 4.3.1. ``` xml netcoreapp1.1 $(PackageTargetFallback);portable-net45+win8+wp8+wpa81; ``` After you have added the direct dependency reference, save your `csproj` file. If you are using Visual Studio, save your updated `csproj` file and Visual Studio will restore the new package versions. You can see the restore results by opening the Output Window (Ctrl+Alt+O) and changing the Show output from drop-down list to Package Manager. If you are not using Visual Studio, open a command line and change to your project directory. Execute the `dotnet restore` command to restore your new dependencies. ### Rebuilding your application Finally rebuild your application, test as you would do normally and redeploy using your favored deployment mechanism. ## Other Information ### Reporting Security Issues If you have found a potential security issue in .NET Core, please email details to secure@microsoft.com. Reports may qualify for the .NET Core Bug Bounty. Details of the .NET Core Bug Bounty including Terms and Conditions are at [https://aka.ms/corebounty](https://aka.ms/corebounty). ### Support You can ask questions about this issue on GitHub in the .NET Core or ASP.NET Core organizations. These are located at https://github.com/dotnet/ and https://github.com/aspnet/. The Announcements repo for each product (https://github.com/dotnet/Announcements and https://github.com/aspnet/Announcements) will contain this bulletin as an issue and will include a link to a discussion issue where you can ask questions. ### Disclaimer The information provided in this advisory is provided ""as is"" without warranty of any kind. Microsoft disclaims all warranties, either express or implied, including the warranties of merchantability and fitness for a particular purpose. In no event shall Microsoft Corporation or its suppliers be liable for any damages whatsoever including direct, indirect, incidental, consequential, loss of business profits or special damages, even if Microsoft Corporation or its suppliers have been advised of the possibility of such damages. Some states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation may not apply. ### Acknowledgments Microsoft [thanks](https://go.microsoft.com/fwlink/?LinkId=21127) the following for working with us to help protect customers: - David Fernandez of [Sidertia Solutions](https://www.sidertia.com/Home) for reporting the ASP.NET Core Denial of Service Vulnerability (CVE-2017-0247) - Joonwoo Yu, Hyoung-Kee Choi of [Sungkyunkwan University](http://hit.skku.edu/~hkchoi/) for reporting the .NET Security Feature Bypass (CVE-2017-0248) - [Mikhail Shcherbakov](https://www.linkedin.com/in/mikhailshcherbakov) for reporting the ASP.NET Core Spoofing Vulnerability (CVE-2017-0256) ### Revisions - V1.0 (May 9, 2017): Advisory published. - V1.1 (May 10, 2017): Advisory revised to include a table of issue CVEs and their descriptions. This is an informational change only." +19536 area-System.Security Create a document describing x-plat crypto This is a fairly coarse infodump of the use of .NET Cryptography across the various platforms. The intention here is that it is technically correct, and we can make it prettier over time. +19538 area-Infrastructure Create done marker directory Otherwise the done marker isn't created in init-tools.sh, causing the tools to be restored on each build. +19539 area-System.Net Remove_PrefixExistsStarted_ReturnsTrue failure in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/7597/consoleFull#145732169079fe3b83-f408-404c-b9e7-9207d232e5fc > System.Net.Tests.HttpListenerPrefixCollectionTests.Remove_PrefixExistsStarted_ReturnsTrue [FAIL] Assert.Throws() Failure Expected: typeof(System.Net.Http.HttpRequestException) Actual: (No exception was thrown) Stack Trace: --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/src/System.Net.HttpListener/tests/HttpListenerPrefixCollectionTests.cs(390,0): at System.Net.Tests.HttpListenerPrefixCollectionTests.d__28.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +19540 area-System.Net Disable more recently added HttpListener tests Also failing multiple CI legs. Related to #19526 cc: @danmosemsft, @hughbe +19543 area-System.Net "Desktop: ""System.Net.Tests.HttpListenerPrefixCollectionTests"" failed" System.Net.Tests.HttpListenerPrefixCollectionTests.Add_InvalidPrefixAlreadyStarted_ThrowsHttpListenerExceptionOnAdd Failed with error: ``` Assert.Throws() Failure\r\nExpected: typeof(System.Net.HttpListenerException)\r\nActual: (No exception was thrown) StackTrace: at System.Net.Tests.HttpListenerPrefixCollectionTests.Add_InvalidPrefixAlreadyStarted_ThrowsHttpListenerExceptionOnAdd(String uriPrefix) in D:\j\workspace\outerloop_net---71bc9469\src\System.Net.HttpListener\tests\HttpListenerPrefixCollectionTests.cs:line 276 ``` This failed on both Jenkins and Helix. #### Jenkins https://ci.dot.net/job/dotnet_corefx/job/master/job/portablelinux_debug_prtest/4880/testReport/junit/System.Net.Tests/HttpListenerPrefixCollectionTests/Remove_PrefixExistsStarted_ReturnsTrue/ #### Helix https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170509.02/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpListenerPrefixCollectionTests~2FAdd_InvalidPrefixAlreadyStarted_ThrowsHttpListenerExceptionOnAdd(uriPrefix:%20%5C%22http:~2F~2Fmicrosoft.com~2F%5C%22) cc: @davidsh +19544 area-System.Data adding SqlParameter constructor I added SqlParmeter constructor to resolve this issue: *** Someone is trying to use good ol’ DataSets with a .NET Standard 2.0 class library. * The designer doesn’t work in the new project system (it doesn’t like that the core assembly isn’t mscorlib) * Copying over the generated code from .NET Framework 4.6.1 doesn’t work * The designer uses a bunch of types that .NET Standard 2.0 doesn’t have (e.g. TypedTableBase, EnumerableRowCollection etc) * Worked this around by creating a .NET Framework 2.0 project and regenerated the code there * This fixes all compilation errors except for [one constructor on SqlParameter](https://msdn.microsoft.com/en-us/library/t547y10h(v=vs.110).aspx) +19545 area-System.Diagnostics "Desktop: ""System.Diagnostics.Tests.ActivityDateTimeTests.StartStopReturnsPreciseDuration"" failed" System.Diagnostics.Tests.ActivityDateTimeTests.StartStopReturnsPreciseDuration Failed with error: ``` Assert.True() Failure Expected: True Actual: False STACK TRACE: at System.Diagnostics.Tests.ActivityDateTimeTests.StartStopReturnsPreciseDuration() in D:\j\workspace\outerloop_net---71bc9469\src\System.Diagnostics.DiagnosticSource\tests\ActivityDateTimeTests.cs:line 22 ``` It fails only in Release mode. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_release/46/testReport/junit/System.Diagnostics.Tests/ActivityDateTimeTests/StartStopReturnsPreciseDuration/ +19548 area-System.Reflection System.Reflection.Metadata 1.4.2 Package references wrong System.Collection.Immutable assembly version Hi The System.Reflection.Metadata 1.4.2(NuGet Package) claims to reference System.Collections.Immutable >= 1.3.1. The System.Collection.Immutable 1.3.1 (NuGet Package) contains the assembly version 1.2.1.0 but the System.Reflection.Metadata.dll from 1.4.2 references 1.2.0.0. This leads to an really unfortunate problem with Roslyn which needs both packages, but uses the correct System.Collections.Immutable.dll(1.2.1.0) and my program crashes because it can't find the System.Collections.Immutable.dll(1.2.0.0) which is required by System.Reflection.Metadata.dll. Please help :) +19550 area-System.Runtime Fail to parse the valid DateTime string to DateTime "Throw FormatException when convert the string to DateTime . ``` var dateTimeFormat = new DateTimeFormat(""hh:mm:ss.ff tt"", CultureInfo.CreateSpecificCulture(""es-AR"")); DateTime.ParseExact(""03:58:32.00 a.m."", dateTimeFormat.FormatString, dateTimeFormat.FormatProvider, dateTimeFormat.DateTimeStyles); DateTime.ParseExact(""03:58:32.00 a. m."", dateTimeFormat.FormatString, dateTimeFormat.FormatProvider, dateTimeFormat.DateTimeStyles); ``` Either ""03:58:32.00 a.m."" ""03:58:32.00 **a. m.**"" will fail when converted to DateTime depend on the OS. It will cause the serialization/deserialization through different machines fail." +19551 area-System.Net System.Net.Internals.SocketType is a duplicated public type in implementation assemblies in netcoreapp Include public under ifdef here: https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Net/Sockets/SocketType.cs#L12 EG: ```C# #if SYSTEM_NET_SOCKETS_DLL namespace System.Net.Sockets { public #else namespace System.Net.Internals { internal #endif // Specifies the type of socket an instance of the System.Net.Sockets.Socket class represents. enum SocketType { ``` When doing this, please remove the exception: https://github.com/dotnet/corefx/pull/19502/files#diff-74b55c30c79e12e99b3ceb25668cc292R5 +19552 area-System.Xml XDocumentExtensions is duplicated in System.Private.Xml.Linq and System.Xml.XPath.XDocument. The type is exposed from System.Xml.XPath.XDocument. If this is intentional, please make the one in System.Private.Xml.Linq internal. Also, consider consolidating the code: https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.Private.Xml.Linq/src/System/Xml/XPath/XDocumentExtensions.cs https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.Xml.XPath.XDocument/src/System/Xml/XPath/XDocumentExtensions.cs When doing this, please remove the exception: https://github.com/dotnet/corefx/pull/19502/files#diff-74b55c30c79e12e99b3ceb25668cc292R8 /cc @weshaggard +19553 area-System.IO Overlapped types are duplicated between Overlapped and corelib IOCompletionCallback, NativeOverlapped, Overlapped, PreAllocatedOverlapped, and ThreadPoolBoundHandle are duplicated between Overalapped and System.Private.CoreLib. I believe we should typeforward these instead. When doing this, please remove the exceptions: https://github.com/dotnet/corefx/pull/19502/files#diff-74b55c30c79e12e99b3ceb25668cc292R11 /cc @weshaggard +19554 area-System.Data DBNull is duplicated between System.Data.Common and CoreLib System.DBNull exists as public in both System.Data.Common.dll and System.Private.CoreLib.dll in netcoreapp2.0. This can cause type exchange issues as well as compile errors for runtime compilation. I believe System.Data.Common.dll should type-forward this type. When doing this, please remove the exception: https://github.com/dotnet/corefx/pull/19502/files#diff-74b55c30c79e12e99b3ceb25668cc292R17 /cc @weshaggard +19555 area-System.Net System.Net.TransportType is duplicated in implementation assemblies System.Net.Sockets and System.Security.Permissions This was introduced by https://github.com/dotnet/corefx/commit/33df5e0560f006e8298fd42b441b92b2d5eac671. /cc @jguady It looks like it's completely internal in sockets so I believe the Sockets implementation should be marked internal. When doing this, please remove the exception: https://github.com/dotnet/corefx/pull/19502/commits/142932adcd9312804dbe94ee83e27b9aecf653d3#diff-18ad03aca90bc197f8428e086088fcc6 +19556 area-Serialization Fix rd.xml for Serialization Reflection Only Mode. Reflection based serialization needs to reflect some types or methods defined in `System.Private.DataContractSerialization.dll`. #19006 added rd.xml to System.Runtime.Serialization.*.ReflectionOnly.Tests. Many tests passed after that fix. But that fix caused the test projects to not represent actual customer scenarios. The PR changes `System.Private.DataContractSerialization.rd.xml` to keep necessary metadata and removes the rd.xml for the test projects. Fix #19067 +19557 area-System.Net Make SocketType internal in all but Sockets assembly Fixes https://github.com/dotnet/corefx/issues/19551 cc: @ericstj, @davidsh, @CIPop +19558 area-System.Net Make TransportType internal in Sockets assembly Fixes https://github.com/dotnet/corefx/issues/19555 cc: @ericstj, @davidsh, @CIPop +19560 area-Infrastructure Make the Initilize BuildTools during build.cmd less intensive. "When I am running build.cmd my computer will lag during the ""Initilizing BuildTools"" step. This lag has happened on two of my computers so far. The lag, specifically, slows down Visual Studio and firefox. The slowdown in firefox is evident because youtube will lag and text input is delayed. I don't know if this is a problem with other people but this lag is infuriating when I'm trying to use my computer for other activities while building corefx." +19561 area-System.Runtime Add perf tests for Random.cs. Added missing performance tests for Random.cs. This is part of the work to expand performance tests for System.Runtime.Extensions. Issue: #18765 @karelz @JeremyKuhne @AlexGhiondea +19562 area-System.Runtime Reference official targeting pack for 4.7 (version 1.0.1) Following up on PR https://github.com/dotnet/corefx/pull/18519 which used the pre-release targeting pack. Alex published the new targeting pack on myget (as version 1.0.1). Fixes https://github.com/dotnet/corefx/issues/18518 @AlexGhiondea @ericstj @weshaggard for review. Thanks +19564 area-Serialization Fix XmlSerializer timespan tests for any full framework version This fixes XmlSerializer tests that where hitting the TimeSpan bug that is fixed through a switch value. cc: @danmosemsft +19566 area-System.Collections HashSet.GetOrAdd(T) There are many times when there is a custom equality comparison being done but I need access to the original instance. What I'd like: ```c# var mergedItems = new HashSet(); foreach (var item in items) { mergedItems.GetOrAdd(item).RelatedInfo.Add(x); } public sealed class Item : IEquatable { public DateTime Date { get; } public int Amount { get; } public List RelatedInfo { get; } public bool Equals(Item other) => other != null && other.Date == Date && other.Amount == Amount; public override bool Equals(object obj) => obj is Item item && Equals(item); public override int GetHashCode() => // ... } ``` Today I'm forced to use a Dictionary which duplicates storage of the key for no reason. A dictionary is also wasteful because it has to do two hash lookups, one for `TryGetValue` and one for `Add`: ```c# var mergedItems = new Dictionary(); foreach (var item in items) { if (mergedItems.TryGetValue(item, out var otherItem)) mergedItems.Add(item, otherItem = item); otherItem.RelatedInfo.Add(x); } ``` This is no better; it's a lot more to maintain, unnecessarily coupled to the definition of equality, it's still duplicate storage of the key, and it's still duplicating the number of hash lookups: ```c# var mergedItems = new Dictionary<(DateTime, int), Item>(); foreach (var item in items) { if (mergedItems.TryGetValue((item.Date, item.Amount), out var otherItem)) mergedItems.Add((item.Date, item.Amount), otherItem = item); otherItem.RelatedInfo.Add(x); } ``` KeyedCollection is the worst of all because in addition to the dictionary, it keeps a list I'll never use. +19567 area-System.Security System.Security.Cryptography.Xml.Tests now at 0 failures on ILC. The usual suspects: - Checking for Exception.ParamNames - Types obtained through CryptoConfig being reduced away. - Unnecessary use of GetCallingAssembly() in TestHelper - XmlDsigXsltTransform relies on XslCompiledTransform which relies heavily on Reflection.Emit. Let me know if you want an issue opened on this, though it looks pretty fundamental... +19568 area-Infrastructure [release/2.0.0] Exclude UAP from packages in rel/2.0.0 **release/2.0.0 only** do not merge to master. Fixes #19316 This excludes all UAP files and dependencies from packages for 2.0.0 release. +19570 area-System.Threading Desktop: System.Threading.Tests.SynchronizationContextTests.WaitTest is failing System.Threading.Tests.SynchronizationContextTests.WaitTest Is failing with error: ``` MESSAGE: Assert.Throws() Failure\r\nExpected: typeof(System.DuplicateWaitObjectException)\r\nActual: (No exception was thrown) +++++++++++++++++++ STACK TRACE: at System.Threading.Tests.SynchronizationContextTests.WaitTest() in D:\j\workspace\netfx_windows---50c21bdb\src\System.Threading\tests\SynchronizationContextTests.cs:line 23 ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/netfx_windows_nt_release_prtest/1/testReport/junit/System.Threading.Tests/SynchronizationContextTests/WaitTest/ cc: @stephentoub +19572 area-System.Text Port the Html Encoder fix from VSO branch This is the fix we have done in VSO branch and now we are porting it to corefx after we released the fix in the servicing packages +19573 area-Infrastructure Disable RID-specific Helix runs. Will need to coordinate removing the actual build/publish steps with Core-Setup / CLI teams, making sure they move to portable packages. This simply prevents the tests from running. Once all of them are confirmed gone, we can remove this from the master view of CoreFX runs. @weshaggard +19575 area-System.Xml Fix duplicated XDocumentExtensions Fixes https://github.com/dotnet/corefx/issues/19552 cc: @krwq @ericstj @danmosemsft +19579 area-System.Net Fix failing HttpListener tests "- Add_InvalidPrefixNotStarted_ThrowsHttpListenerExceptionOnStart: connecting to ""http://microsoft.com/"" was seemingly allowed in CI. - Add_InvalidPrefixAlreadyStarted_ThrowsHttpListenerExceptionOnAdd: connecting to ""http://microsoft.com/"" was seemingly allowed in CI. - Remove_PrefixExistsNotStarted_ReturnsTrue: this test shouldn't fail in CI, I reckon it was just disabled alongside the actual bad test (Remove_PrefixExistsStarted_ReturnsTrue) - Remove_PrefixExistsStarted_ReturnsTrue: a race condition: listener may not have actually stopped listening by the time we try to connect. Fixes #19526 " +19580 area-System.Net System.Net.Requests test hanging sometimes on desktop This is not all the time but they are hanging on some PRs and builds. Here is the console log of a failure: https://ci.dot.net/job/dotnet_corefx/job/master/job/netfx_windows_nt_release_prtest/12/consoleFull#4967889112d31e50d-1517-49fc-92b3-2ca637122019 cc: @davidsh +19582 area-System.Net Disable HttpWebRequestTests Skipping them on desktop while the failure is investigated since we are hitting this a lot recently on CI. #19580 cc: @davidsh @stephentoub +19583 area-System.Net Ping API calls are failing in appcontainer with access denied They don't fail that way in ILC https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.01/workItem/System.Net.Ping.Functional.Tests Check we have the internet capability. Whatever manifest we use for our test app, it should enable all capabilities. @AlexGhiondea where is it? cc @ViktorHofer +19584 area-System.Net HttpWebRequest tests hardened & RequestStream tests disabled on Desktop Fixes https://github.com/dotnet/corefx/issues/19580 RequestStream tests aren't behaving correctly on Desktop and hang pretty often. Will follow up tomorrow and analyze the root cause. Tested Innerloop in a loop 100 times Tested Outerloop in a loop 100 times thanks @safern for help! +19585 area-System.Runtime System.Exception is not Serializable on UWP We should mark the [`System.Exception`](https://github.com/dotnet/corert/blob/26413145abcbdd49468db230a6f29784494f6f46/src/Runtime.Base/src/System/Exception.cs#L9) on UWP with [Serializable]. This blocks serialization of exception types on UWP. And `Exception.GetObjectData` is throwing `NotImplementedException`. +19586 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/GetAsync_AllowedSSLVersionDiffersFromServer_ThrowsException failed with ""System.Security.Authentication.AuthenticationException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/GetAsync_AllowedSSLVersionDiffersFromServer_ThrowsException(allowedProtocol: Tls12, acceptedProtocol: Tls11, exceptedServer...` has failed. Assert.Throws() Failure\r Expected: typeof(System.IO.IOException)\r Actual: typeof(System.Security.Authentication.AuthenticationException): A call to SSPI failed, see inner exception. Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) at System.Net.Security.SslStream.<>c__DisplayClass35_0.b__0(AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) at System.Net.Test.Common.LoopbackServer.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170510.01 (Portable Core Tests) Failing configurations: - Windows.7.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170510.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test~2FGetAsync_AllowedSSLVersionDiffersFromServer_ThrowsException(allowedProtocol:%20Tls12,%20acceptedProtocol:%20Tls11,%20exceptedServer... +19587 area-System.Console "Test: ConsoleEncoding/TestValidEncodings failed with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `ConsoleEncoding/TestValidEncodings` has failed. System.IO.IOException : The handle is invalid Stack Trace: at System.ConsolePal.SetConsoleOutputEncoding(Encoding enc) at System.Console.set_OutputEncoding(Encoding value) at ConsoleEncoding.<>c.b__2_0(Encoding encoding) at ConsoleEncoding.TestValidEncodings() Build : Master - 20170510.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.01/workItem/System.Console.Tests/analysis/xunit/ConsoleEncoding~2FTestValidEncodings +19588 area-System.Console "Test: NegativeTesting/OpenStandardErrorNegativeTests failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `NegativeTesting/OpenStandardErrorNegativeTests` has failed. Assert.Throws() Failure\r Expected: typeof(System.NotSupportedException)\r Actual: (No exception was thrown) Stack Trace: at NegativeTesting.NegativeConsoleOutputTests(Stream stream) at NegativeTesting.OpenStandardErrorNegativeTests() Build : Master - 20170510.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.01/workItem/System.Console.Tests/analysis/xunit/NegativeTesting~2FOpenStandardErrorNegativeTests +19589 area-System.Diagnostics "Test: System.Diagnostics.Tests.ProcessModuleTests/Modules_Get_ContainsHostFileName failed with ""Xunit.Sdk.ContainsException""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessModuleTests/Modules_Get_ContainsHostFileName` has failed. Assert.Contains() Failure\r Not found: (filter expression)\r In value: d__34 [System.Diagnostics.ProcessModule (XUnit.Runner.Uap.exe), System.Diagnostics.ProcessModule (ntdll.dll), System.Diagnostics.ProcessModule (KERNEL32.DLL), System.Diagnostics.ProcessModule (KERNELBASE.dll), System.Diagnostics.ProcessModule (ucrtbase.dll), ...] Stack Trace: at System.Diagnostics.Tests.ProcessModuleTests.Modules_Get_ContainsHostFileName() Build : Master - 20170510.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.01/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessModuleTests~2FModules_Get_ContainsHostFileName +19590 area-System.Diagnostics "Test: System.Diagnostics.Tests.ProcessStartInfoTests/Verbs_GetWithExeExtension_ReturnsExpected failed with ""Xunit.Sdk.ContainsException""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessStartInfoTests/Verbs_GetWithExeExtension_ReturnsExpected` has failed. Assert.Contains() Failure\r Not found: open\r In value: String[] [] Stack Trace: at System.Diagnostics.Tests.ProcessStartInfoTests.Verbs_GetWithExeExtension_ReturnsExpected() Build : Master - 20170510.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.01/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessStartInfoTests~2FVerbs_GetWithExeExtension_ReturnsExpected +19591 area-System.IO "Test: System.IO.Tests.Directory_GetEntries_CurrentDirectory/CurrentDirectory failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.Directory_GetEntries_CurrentDirectory/CurrentDirectory` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -532462766 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.IO.Tests.Directory_GetEntries_CurrentDirectory.CurrentDirectory() Build : Master - 20170510.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.Directory_GetEntries_CurrentDirectory~2FCurrentDirectory +19592 area-Meta Interfaces for Future APIs Hi, Thanks for the great product, and specially the coming v2.0. It would great to have in v2.0 interfaces for most of what is coming in v3, v4, v5, v6 of .net core. For example all the generic collections, ot the IClonable or any other general utility apis, that you don't have time to implement in the current version i.e. v2.0. As this will help current nuget/plugin developers to code their classes to implement those interfaces, and weather you (.net team) or others implement them, its just a matter of injecting the implementation, instead of re-coding a lot of the project links/coupling, and it will eliminate the need that each developer implement his own interface for later linking them with others or his own implementation. As each interface done by different developers, even if it has the same functions, it will be considered different, because its from different assemblies. Regards. +19593 area-System.Net "System.Net.Tests.HttpListenerPrefixCollectionTests.Add_InvalidPrefixNotStarted_ThrowsHttpListenerExceptionOnStart(uriPrefix: \""http://a08196d3572648a99e9d3669ecdda58c/\"") fails in CI on mac OSX" "As discussed in https://github.com/dotnet/corefx/pull/19579 ```cs public static IEnumerable InvalidPrefix_TestData() { // [ActiveIssue()] if (!PlatfomDetection.IsOSX) { yield return new object[] { $""http://{Guid.NewGuid().ToString(""N"")}/"" }; } } [Theory] [MemberData(nameof(InvalidPrefix_TestData))] public void Add_InvalidPrefixNotStarted_ThrowsHttpListenerExceptionOnStart(string uriPrefix) { var listener = new HttpListener(); listener.Prefixes.Add(uriPrefix); Assert.Equal(1, listener.Prefixes.Count); Assert.True(listener.Prefixes.Contains(uriPrefix)); Assert.Throws(() => listener.Start()); } ``` This test fails with mac OSX: ``` MESSAGE: Assert.Throws() Failure\nExpected: typeof(System.Net.HttpListenerException)\nActual: (No exception was thrown) +++++++++++++++++++ STACK TRACE: at System.Net.Tests.HttpListenerPrefixCollectionTests.Add_InvalidPrefixNotStarted_ThrowsHttpListenerExceptionOnStart(String uriPrefix) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.HttpListener/tests/HttpListenerPrefixCollectionTests.cs:line 264 ```" +19594 area-Infrastructure Use Tizen dotnet-core myget in Tizen CI Removed related workaround codes Related issue : https://github.com/dotnet/coreclr/issues/11248 +19596 area-System.Net Why have a 302 Exception when i put a request Url:https://xxxx.xxxxx.xxxxxx.com/ Use:~\.nuget\packages\system.net.requests\4.3.0\ref\netstandard1.3\System.Net.Requests.dll Exception.Message:The remote server returned an error: (302) Moved Temporarily. Exception.StackTrace: at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.WebRequest.<>c.b__37_2(IAsyncResult iar) at System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) ``` private static HttpWebResponse _Request(string url) { HttpWebRequest request = WebRequest.CreateHttp(url); HttpWebResponse response =(HttpWebResponse)request.GetResponseAsync().Result; return response; } ``` +19597 area-System.Threading Fix duplicated types in Unix build of System.Threading.Overlapped Fixes https://github.com/dotnet/corefx/issues/19553. All of the types for Overlapped are in coreclr, so we shouldn't be building a PNSE assembly on Unix and instead just type forwarding everything. I wasn't sure if we should be consolidating the builds, as at this point there shouldn't be a diff between the Windows and Unix netcoreapp builds, but for now I left it as is. We should look at the implementations in coreclr to see if we want to add any explicit PNSEs there in its Unix build. cc: @kouvel, @ericstj, @jkotas +19598 area-System.Net Fix remaining TODOs for SocketTaskExtensions tests Fixes https://github.com/dotnet/corefx/issues/17690 cc: @cipop, @davidsh +19599 area-System.Threading Proposal: Task.WhenAllSuccessfulOrAnyFailed Task currently exposes two When helpers: WhenAll and WhenAny. These are the most commonly needed combinators, but there's another that's quite helpful, especially in tests: a combinatory that asynchronously waits for either all of the tasks to complete successfully or for the first one that doesn't complete successfully. This is particularly valuable when writing tests that involve related asynchronous operations, such as in networking, for example where you want to have an asynchronous client operation (e.g. socket.ConnectAsync) and an asynchronous server operation (e.g. socket.AcceptAsync) that are directly dependent on each other... using WhenAll can lead to deadlocks if one of those operations fails causing the other to wait forever. Proposal: ```C# public class Task { public static Task WhenAllSuccessfulOrAnyFailed(params Task[] tasks); public static Task WhenAllSuccessfulOrAnyFailed(IEnumerable tasks); ... } ``` From a behavioral standpoint, it would be as if code like this were used: ```C# var remaining = new List(tasks); while (remaining.Count > 0) { Task t = await Task.WhenAny(remaining).ConfigureAwait(false); remaining.Remove(t); t.GetAwaiter().GetResult(); } ``` but with a more efficient implementation. I'm not sure I love the name either, but I'm sure we can come up with something. +19602 area-System.Net Fix 40 or so System.Net.Mail.Functional.Tests failures on ILC "SmtpClient class is trying to fill in the ""client host name"" checkbox for the HELO message. By default, it tries to use the local host name but this is PNS on .Net Native. This one hiccup makes SmtpClient unusable. Since the client host name is apparently discretionary anyway, fall back to LocalHost if the actual local host is PNS (or NS - why not) as we do in the garbled-Unicode case." +19603 area-System.Net Rewrite SendFile_APM test The test sporadically failed with a timeout, but little details are available about why. Most likely it's due to a failure in one of the operations that causes the other to hang. It could also be due to errors getting eaten. I've rewritten the test to both make it simpler code and to address these issues; if it fails again, we'll have a better idea of why. Closes https://github.com/dotnet/corefx/issues/19517 cc: @geoffkizer, @CIPop, @davidsh, @Priya91 +19604 area-System.Net Two Async tests in System.Net.Mail.Functionality.Tests assert or hang on ILC. "(Reproability is contingent on https://github.com/dotnet/corefx/pull/19602 going in). -method System.Net.Mail.Tests.SmtpClientTest.TestCredentialsCopyInAsyncContext -method System.Net.Mail.Tests.SmtpClientTest.TestMailDeliveryAsync These tests are currently disabled on AoT runs so we can get results for the other tests. This issue gives me an issue # I can put in the comment. This assertion crashes the test: src\System.Net.Sockets\src\System\Net\Sockets\SocketPal.Windows.cs ``` public static SocketError GetLastSocketError() { int win32Error = Marshal.GetLastWin32Error(); if (win32Error == 0) { NetEventSource.Fail(null, ""GetLastWin32Error() returned zero.""); <-- Really? } return (SocketError)win32Error; } ``` Commenting out the NetEventSource.Fail() results in a test that hangs. " +19605 area-System.Net Remove SmtpClient workaround for HostName being PNSE on .Net Native. Workaround was added in https://github.com/dotnet/corefx/pull/19602 to avoid blocking testing of SmpClient on HostName being restored for .Net Native. +19608 area-System.Net Fix another 4 System.Net.Mail.Functional.Tests failures on ILC +19609 area-System.Xml System.Xml.Xsl.XslTransformApi.Tests at 0 failues on ILC. +19610 area-System.Net System.Net.Mail does not encode headers on code point boundaries "In order for unicode headers to be transmitted over SMTP, they must be encoded using the encoding outlined in RFC-2047. This is sometimes known as ""Encoded-Word"" or ""Q-Encoding."" SMTP headers should also be limited in line length, and RFC-2047 sets a maximum line length of 76 characters. Therefore, when encoding unicode headers, it is typical to need to fold headers onto multiple lines. A common example might be something like the following: ```plain Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?= =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?= ``` It is really important to note that the base64 encoding in the above example uses two different character sets, this is not a particularly common example, but this is definitely legal. The binary data for an individual code point should never be split between two ""Encoded Words."" A more practical example is Unicode Emojis. Emojis frequently span multiple (and variable) bytes. In the case of UTF-8 individual code-points could be 1-4 bytes. Splitting emoji bytes on to multiple lines can result in the ""unicode block (�)"" appearing in some mail clients because the multi-byte characters are decoded separately. In other cases, spurious spaces are included. The current `Base64Stream` (and `QuotedPrintableStream`, it would seem) do not account for the byte boundaries of the encoded code points: https://github.com/dotnet/corefx/blob/master/src/System.Net.Mail/src/System/Net/Base64Stream.cs#L230-L246 At this level, the streams are (mostly) unaware of any text encoding semantics, and just write as many bytes as possible on each line. Instead, these encoding streams need to account for code-point byte boundaries, and fold the line preemptively, if only part of a code point can be included in the line before the next line fold would occur. I'm a little bit concerned that the stream is the wrong level of abstraction for this type of handling. Perhaps including some sort of ""look-ahead"" on the `WriteState` is a better option for determining the next smallest block of bytes that can be written is. I have a fork of Corefx and will be fixing it on my own. Please let me know if this is something the team is interested in fixing, and I can provide a patch." +19611 area-System.Net Why have a 302 Exception when i put a request @Circlecirclecircle commented on [Wed May 10 2017](https://github.com/dotnet/standard/issues/336) Url:https://xxxx.xxxxx.xxxxxx.com/ Exception.Message:The remote server returned an error: (302) Moved Temporarily. Exception.StackTrace: at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.WebRequest.<>c.b__37_2(IAsyncResult iar) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) ``` private static HttpWebResponse _Request(string url) { HttpWebRequest request = WebRequest.CreateHttp(url); HttpWebResponse response =(HttpWebResponse)request.GetResponseAsync().Result; return response; } ``` +19612 area-System.Security System.Security.Permissions.Tests at 0 failures on ILC. (An impressive amount of testing being done for a component that is basically a reference assembly masquerading as an implementation assembly...) - The usual ParamName testing throttling. - If you must create bogus parameter objects just to prove that Security.Permissions apis are nops, it can be done in a way that doesn't force internal framework Reflection. +19613 area-System.Net Reenable RequestStream tests and address HttpWebRequest PR feedback Found the root cause why CI was hanging yesterday. `RequestStreamTest` class fires ~20 different tests in parallel. They all have something in common, they call `HttpWebRequest.GetRequestStream()`. As the limit in netfx (`ServicePointManager.DefaultConnectionLimit`) is very low, the test execution timed out. Related: https://github.com/dotnet/corefx/pull/19584 See here: https://github.com/dotnet/corefx/issues/16928 +19615 area-System.Net Disable SendAsync_ReadFromSlowStreamingServer_PartialDataReturned test on netfx This test sends some of the data planned by Content-Length but keeps the connection open; the client is then supposed to read that data and verifies that it got only what was sent and didn't hang. But it's hanging on netfx. The problem is that ConnectStream.BeginRead on netfx first reads what it has buffered, and if it doesn't have buffered as much as was asked for, it then issues an asynchronous read rather than just returning what it has. This netfx behavior diverges from expectations around how Stream is meant to behave: Stream.Read/ReadAsync can block (asynchronously in the Async case) until there's any data available, but once there is data available they should return it rather than waiting arbitrarily long for more. Closes https://github.com/dotnet/corefx/issues/18864 cc: @davidsh +19618 area-System.IO "Desktop: ""System.IO.Pipes.Tests.AnonymousPipeTest_CrossProcess.PingPong"" failed" ``` MESSAGE: Assert.Equal() Failure\r\nExpected: 42\r\nActual: -532462766 +++++++++++++++++++ STACK TRACE: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Diagnostics\RemoteExecutorTestBase.cs:line 188 at System.IO.Pipes.Tests.AnonymousPipeTest_CrossProcess.PingPong() in D:\j\workspace\outerloop_net---903ddde6\src\System.IO.Pipes\tests\AnonymousPipeTests\AnonymousPipeTest.CrossProcess.cs:line 32 ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/lastCompletedBuild/testReport/System.IO.Pipes.Tests/AnonymousPipeTest_CrossProcess/PingPong/ cc: @ianhays +19619 area-System.Net [Desktop] Test failures: System.Net.Tests.HttpListenerPrefixCollectionTests / Add_InvalidPrefix* Tests affected `System.Net.Tests.HttpListenerPrefixCollectionTests`: * `Add_InvalidPrefixNotStarted_ThrowsHttpListenerExceptionOnStart` * `Add_InvalidPrefixAlreadyStarted_ThrowsHttpListenerExceptionOnAdd` Failed again in Desktop daily run. I was not able to get a local repro, this seems to be more like the configuration on the CI machines but not sure what it is. Note that the only test case that failed was: https://github.com/dotnet/corefx/blob/master/src/System.Net.HttpListener/tests/HttpListenerPrefixCollectionTests.cs#L245 So maybe removing that case when PlatformDetection.IsFullFramework for now? https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/51/testReport/ cc: @hughbe @stephentoub +19620 area-System.Net Disable some HttpListener tests (again) cc: @safern, @hughbe #19619 +19622 area-System.Net Fixing OID EKU validation. cc @CIPop @weshaggard +19623 area-System.Runtime Add performance tests for Environment.cs. Add performance tests for Environment.cs. Part of #18765 Unsure if: ``` [PlatformSpecific(TestPlatforms.AnyUnix)] ``` Works for performance tests too? @karelz @ViktorHofer @joperezr +19624 area-System.Diagnostics Remove conditional compilation in System.Diagnostics.Tracing As discussed offline with @vancem, we should remove conditional compilation which was introduced in PR https://github.com/dotnet/corefx/pull/18427 when these APIs will be available in NS21: ``` public abstract partial class EventListener : System.IDisposable { protected internal virtual void OnEventWritten(System.Diagnostics.Tracing.EventWrittenEventArgs eventData) { } } public class EventSourceCreatedEventArgs : EventArgs { public EventSourceCreatedEventArgs() { } public EventSource EventSource { get; } } ``` cc @brianrob +19627 area-System.ComponentModel Add Cancellation capability to PropertyChangingEventArgs ### Motive The [`INotifyPropertyChanging`](https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.inotifypropertychanging?view=netstandard-2.0) interface, is a supplement to the `INotifyPropertyChanged` interface, and its purpose is allow the developer to notify consumers about a property change **prior** to the actual change. The current implementation exposes an event that is raised by the provider, and raises the `PropertyChanging` event passing an instance of type [`PropertyChangingEventArgs`](https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.propertychangingeventargs?view=netstandard-2.0) to the subscribing consumer. That however allows no interaction between the provider and consumer, since there is no way for the consumer to prevent the actual upcoming change. Among the things the consumer could potentially do is: - Throwing an exception, which is not necessarily caught by the provider or the change issuer up the tree - Cache the old value and compare it in the `PropertyChanged` handler (hoping it's the last handler). - Attach a `PropertyChanged` handler to try to set it back to previous value after all the 'changement' completed, again, relying it's the last handler in the chain. Anyway in both of the last options, the change will go back and force which might have a considerable performance impact and even heavy impact on UI (loading templates etc.). All of which are bad options, making the whole idea of `INotifyPropertyChanging` pretty much pointless. I mean, what point is there by knowing that a property is about to change without having any real option to do anything to prevent it or take control over it? [Here](http://stackoverflow.com/questions/8577207/better-propertychanged-and-propertychanging-event-handling)'s a sample discussion about this flaw. ### Solution To address this issue, I suggest that the `PropertyChangingEventArgs` class inherits from [`CancelEventArgs`](https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.canceleventargs?view=netstandard-2.0), this change is silent and unobtrusive, and it just introduces a new `Cancel` property, which the provider can then act accordingly. ### API changes Proposed change ([Line 13](https://github.com/dotnet/corefx/blob/master/src/System.ObjectModel/src/System/ComponentModel/PropertyChangingEventArgs.cs#L13)) ```c# namespace System.ComponentModel { - public class PropertyChangingEventArgs : EventArgs { } + public class PropertyChangingEventArgs : CancelEventArgs { } ... } ``` [Change](../commit/eea57d8206b36a70cca9c288ec3eacae55b2af43) ### Things to consider - Since the current implementation doesn't include the cancellation option, consumers using legacy `NotifyPropertyChanging`, have to know that that setting `Cancel` to `true` is not guaranteed to be obeyed by the provider - To address that, we can add an additional property defaulting to `false` called `IsCancellable`, which should be set to `true` by the provider using a dedicated constructor in the event-args, to make the intent of respecting the cancellation clear for both sides. - As @adampursley [commented](https://github.com/dotnet/corefx/issues/19627#issuecomment-330267649), it may be a good idea to include the old value and new value in both the `PropertyChangingEventArgs` and the `PropertyChangedEventArgs` to spare getting the value via reflection. For itself this might not be an issue, but here are some issues that we should consider: - Since legacy providers don't use the constructor providing the values, a consumer might think the new value is null. - That can be addressed as above, by adding another readonly property `IsCurrentValueSet` which is internally set by the event-args when using the constructor passing values as parameters. - This will require boxing and unboxing for each raised event for value-typed properties (which are IMHO most of the NPC entity properties), and not necessarily the consumer is always interested in knowing the value, especially in post-change, where consumers usually only want to get notified about a change, not caring what the data actually is. - Both in pre-changing and post-changing, the value can be acquired with reflection, in standard implementation, `sender` (in the [`PropertyChangingEventHandler`](https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.propertychangingeventhandler?view=netstandard-2.0)) is usually the instance containing the provided property name. +19629 area-Serialization DCS_ResolveNameReturnsEmptyNamespace Failed on UWP "`DataContractSerializerTests.DCS_ResolveNameReturnsEmptyNamespace` failed on UWP. ```xml members) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ClassDataContract.cs:line 1121 at System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper.ImportDataMembers() in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ClassDataContract.cs:line 1084 at System.Runtime.Serialization.ClassDataContract.ClassDataContractCriticalHelper..ctor(Type type) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ClassDataContract.cs:line 809 at System.Runtime.Serialization.ClassDataContract..ctor(Type type) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ClassDataContract.cs:line 46 at System.Runtime.Serialization.DataContract.DataContractCriticalHelper.CreateDataContract(Int32 id, RuntimeTypeHandle typeHandle, Type type) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContract.cs:line 570 at System.Runtime.Serialization.DataContract.DataContractCriticalHelper.GetDataContractSkipValidation(Int32 id, RuntimeTypeHandle typeHandle, Type type) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContract.cs:line 424 at System.Runtime.Serialization.XmlObjectSerializerContext.GetDataContract(RuntimeTypeHandle typeHandle, Type type) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerContext.cs:line 140 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithXsiType($XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle objectTypeHandle, Type objectType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle, Type declaredType) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 219 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize($XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 138 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerializeReference($XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 106 at Type538.WriteEmptyNsContainerToXml($XmlWriterDelegator A_0, Object A_1, $XmlObjectSerializerWriteContext A_2, $ClassDataContract A_3) at System.Runtime.Serialization.Json.JsonFormatCollectionWriterDelegate.InvokeOpenStaticThunk($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContextComplexJson context, $CollectionDataContract dataContract) in InvokeOpenStaticThunk:line 16707566 at System.Runtime.Serialization.Json.JsonFormatCollectionWriterDelegate.Invoke($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContextComplexJson context, $CollectionDataContract dataContract) in Invoke:line 16707566 at System.Runtime.Serialization.ClassDataContract.WriteXmlValue($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ClassDataContract.cs:line 508 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue($DataContract dataContract, $XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 651 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType($DataContract dataContract, $XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 150 at System.Runtime.Serialization.DataContractSerializer.InternalWriteObjectContent($XmlWriterDelegator writer, Object graph, $DataContractResolver dataContractResolver) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContractSerializer.cs:line 364 at System.Runtime.Serialization.DataContractSerializer.InternalWriteObject($XmlWriterDelegator writer, Object graph, $DataContractResolver dataContractResolver) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContractSerializer.cs:line 247 at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions($XmlWriterDelegator writer, Object graph, $DataContractResolver dataContractResolver) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 71 at System.Runtime.Serialization.XmlObjectSerializer.WriteObject($XmlDictionaryWriter writer, Object graph) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 57 at System.Runtime.Serialization.XmlObjectSerializer.WriteObject(Stream stream, Object graph) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 27 at DataContractSerializerTests.SerializeAndDeserialize(__Canon value, String baseline, $DataContractSerializerSettings settings, Func$1<$DataContractSerializer> serializerFactory, Boolean skipStringCompare) in d:\OSS\corefx-1\corefx\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 3180 at DataContractSerializerTests.DCS_ResolveNameReturnsEmptyNamespace() in d:\OSS\corefx-1\corefx\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 2795 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs:line 400]]> ```" +19630 area-System.Net Uri.IsWellFormedUriString() returns false for a URL which is correct "I have a C# (.Net Core 1.1) app that needs to check if a URL is valid. I used the Uri.IsWellFormedUriString() which works pretty well but have a doubt about this one below which **returns false**. It seems to me that the URL is perfectly valid? `Uri.IsWellFormedUriString(""http://www.test.com/search/Le+Venezuela+b%C3%A9n%C3%A9ficie+d%27importantes+ressources+naturelles+%3A+p%C3%A9trole%2C+gaz%2C+mines"", UriKind.Absolute)` I used the very same URL with the PHP function below which says the URL is correctly formatted: `function filter_var($url, FILTER_VALIDATE_URL)` If I refer to the RFC3986 it seems this URL is correct. Am I missing something here?" +19631 area-Serialization Fix DCS_ResolveNameReturnsEmptyNamespace. Please see https://github.com/dotnet/corefx/issues/19629 for the root cause of the issue. Fix #19629 +19633 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test/UseCallback_CallbackThrowsException_ExceptionPropagates failed with ""System.Net.Http.HttpRequestException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test/UseCallback_CallbackThrowsException_ExceptionPropagates` has failed. Assert.Throws() Failure\r Expected: typeof(System.DivideByZeroException)\r Actual: typeof(System.Net.Http.HttpRequestException): An error occurred while sending the request. Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170510.02 (Core Tests) Failing configurations: - Windows.81.Amd64-x86 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test~2FUseCallback_CallbackThrowsException_ExceptionPropagates +19634 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/GetAsync_SupportedSSLVersion_Succeeds failed with ""System.Net.Http.HttpRequestException""" "Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/GetAsync_SupportedSSLVersion_Succeeds(sslProtocols: Tls, url: \""https://www.ssllabs.com:10301/\"")` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.CurlException : Problem with the SSL CA cert (path? access rights?) Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in /root/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 462 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__6.MoveNext() in /root/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.SslProtocols.cs:line 136 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) in /root/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 644 at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) in /root/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs:line 863 Build : Master - 20170510.02 (Core Tests) Failing configurations: - Redhat.72.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test~2FGetAsync_SupportedSSLVersion_Succeeds(sslProtocols:%20Tls,%20url:%20%5C%22https:~2F~2Fwww.ssllabs.com:10301~2F%5C%22)" +19635 area-System.Net "Test: System.Net.Http.Functional.Tests.ResponseStreamTest/ReadAsStreamAsync_InvalidServerResponse_ThrowsIOException failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.ResponseStreamTest/ReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType: ContentLength, transferError: ContentLengthTooLarge)` has failed. Assert.Throws() Failure\r Expected: typeof(System.IO.IOException)\r Actual: typeof(System.Net.Http.HttpRequestException): An error occurred while sending the request. Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__59.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.ResponseStreamTest.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170510.02 (Core Tests) Failing configurations: - Windows.10.Nano.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_InvalidServerResponse_ThrowsIOException(transferType:%20ContentLength,%20transferError:%20ContentLengthTooLarge) +19636 area-System.Net "Test: System.Net.Security.Tests.CertificateValidationRemoteServer/CertificateValidationRemoteServer_EndToEnd_Ok failed with ""System.Net.Internals.SocketExceptionFactory+ExtendedSocketException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.CertificateValidationRemoteServer/CertificateValidationRemoteServer_EndToEnd_Ok` has failed. System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : No such device or address Stack Trace: at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) in /root/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 46 at System.Net.Dns.ResolveCallback(Object context) in /root/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 290 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) in /root/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 420 at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult) in /root/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 582 at System.Net.Sockets.Socket.DoDnsCallback(IAsyncResult result, MultipleAddressConnectAsyncResult context) in /root/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 5025 at System.Net.Sockets.Socket.DnsCallback(IAsyncResult result) in /root/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 5005 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) in /root/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 2434 at System.Net.Sockets.TcpClient.EndConnect(IAsyncResult asyncResult) in /root/corefx/src/System.Net.Sockets/src/System/Net/Sockets/TCPClient.cs:line 335 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.CertificateValidationRemoteServer.d__0.MoveNext() in /root/corefx/src/System.Net.Security/tests/FunctionalTests/CertificateValidationRemoteServer.cs:line 24 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170510.02 (Portable Core Tests) Failing configurations: - Ubuntu.1704.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170510.02/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.CertificateValidationRemoteServer~2FCertificateValidationRemoteServer_EndToEnd_Ok +19637 area-System.Net "Test: System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest/SendAsync_SlowServerAndCancel_ThrowsTaskCanceledException failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest/SendAsync_SlowServerAndCancel_ThrowsTaskCanceledException` has failed. Assert.Throws() Failure\r Expected: typeof(System.AggregateException)\r Actual: (No exception was thrown) Stack Trace: at System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170510.02 (Portable Core Tests) Failing configurations: - Windows.10.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170510.02/workItem/System.Net.Http.WinHttpHandler.Functional.Tests/analysis/xunit/System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest~2FSendAsync_SlowServerAndCancel_ThrowsTaskCanceledException +19639 area-System.Console "Test: ConsoleEncoding/InputEncoding_SetDefaultEncoding_Success failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `ConsoleEncoding/InputEncoding_SetDefaultEncoding_Success` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -532462766 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Console.Tests/analysis/xunit/ConsoleEncoding~2FInputEncoding_SetDefaultEncoding_Success +19640 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandlerTest/MaxRequestContentBufferSize_Set_ThrowsPlatformNotSupportedException failed with Xunit.Sdk.ThrowsException""""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/MaxRequestContentBufferSize_Set_ThrowsPlatformNotSupportedException` has failed. Assert.Throws() Failure\r Expected: typeof(System.PlatformNotSupportedException)\r Actual: (No exception was thrown) Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandlerTest.MaxRequestContentBufferSize_Set_ThrowsPlatformNotSupportedException() Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FMaxRequestContentBufferSize_Set_ThrowsPlatformNotSupportedException +19641 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test/ClientCertificates_ClientCertificateOptionsAutomatic_ThrowsException failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test/ClientCertificates_ClientCertificateOptionsAutomatic_ThrowsException` has failed. Assert.Throws() Failure\r Expected: typeof(System.InvalidOperationException)\r Actual: (No exception was thrown) Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.ClientCertificates_ClientCertificateOptionsAutomatic_ThrowsException() Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test~2FClientCertificates_ClientCertificateOptionsAutomatic_ThrowsException +19642 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test/SetGet_Roundtrips failed with ""Xunit.Sdk.SameException""" "Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test/SetGet_Roundtrips` has failed. Assert.Same() Failure\r Expected: NetworkCredential { Domain = \""domain\"", Password = \""password\"", SecurePassword = SecureString { Length = 8 }, UserName = \""username\"" }\r Actual: NetworkCredential { Domain = \""\"", Password = \""password\"", SecurePassword = SecureString { Length = 8 }, UserName = \""domain\\\\username\"" } Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test.SetGet_Roundtrips() Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test~2FSetGet_Roundtrips" +19643 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test/Default_ExpectedValue failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test/Default_ExpectedValue` has failed. Assert.Equal() Failure\r Expected: 2147483647\r Actual: 6 Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test.Default_ExpectedValue() Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test~2FDefault_ExpectedValue +19644 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test/GetAsync_Max1_ConcurrentCallsStillSucceed failed wtih ""System.ArgumentException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test/GetAsync_Max1_ConcurrentCallsStillSucceed` has failed. System.ArgumentException : The parameter is incorrect.\r \r value Stack Trace: at Windows.Web.Http.Filters.HttpBaseProtocolFilter.put_MaxConnectionsPerServer(UInt32 value) at System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_MaxConnectionsPerServer_Test~2FGetAsync_Max1_ConcurrentCallsStillSucceed +19645 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_MaxResponseHeadersLength_Test/Default_MaxResponseHeadersLength failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_MaxResponseHeadersLength_Test/Default_MaxResponseHeadersLength` has failed. Assert.Equal() Failure\r Expected: 64\r Actual: -1 Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandler_MaxResponseHeadersLength_Test.Default_MaxResponseHeadersLength() Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_MaxResponseHeadersLength_Test~2FDefault_MaxResponseHeadersLength +19646 area-System.Runtime Add test for BadImageFormatException thrown by AssemblyName.GetAssemblyName Regression test for https://github.com/dotnet/coreclr/issues/11499 +19647 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_MaxResponseHeadersLength_Test/InvalidValue_ThrowsException failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_MaxResponseHeadersLength_Test/InvalidValue_ThrowsException(invalidValue: -1)` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentOutOfRangeException)\r Actual: (No exception was thrown) Stack Trace: at System.AssertExtensions.Throws[T](String paramName, Func`1 testCode) at System.Net.Http.Functional.Tests.HttpClientHandler_MaxResponseHeadersLength_Test.InvalidValue_ThrowsException(Int32 invalidValue) Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_MaxResponseHeadersLength_Test~2FInvalidValue_ThrowsException(invalidValue:%20-1) +19648 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_MaxResponseHeadersLength_Test/SetAfterUse_Throws failed with ""Xunit.Sdk.ThrowsException'" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_MaxResponseHeadersLength_Test/SetAfterUse_Throws` has failed. Assert.Throws() Failure\r Expected: typeof(System.InvalidOperationException)\r Actual: (No exception was thrown) Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandler_MaxResponseHeadersLength_Test.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_MaxResponseHeadersLength_Test~2FSetAfterUse_Throws +19649 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/SetGetProtocols_Roundtrips failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/SetGetProtocols_Roundtrips(protocols: Tls)` has failed. Assert.Equal() Failure\r Expected: Tls\r Actual: None Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.SetGetProtocols_Roundtrips(SslProtocols protocols) Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test~2FSetGetProtocols_Roundtrips(protocols:%20Tls) +19650 area-System.Net "Tests under: System.Net.Http.Functional.Tests.HttpRequestMessageTest failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpRequestMessageTest/Ctor_AbsoluteStringUri_CorrectValues` has failed. Assert.Equal() Failure\r Expected: 1.1\r Actual: 2.0 Stack Trace: at System.Net.Http.Functional.Tests.HttpRequestMessageTest.Ctor_AbsoluteStringUri_CorrectValues() Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpRequestMessageTest~2FCtor_AbsoluteStringUri_CorrectValues +19651 area-System.Data SqlClientFactory.CreateDataAdapter returns null I'm running the .NET Core 2.0 bits and testing against some legacy full framework packages (yeah some legacy code). Looks like most of the other services are working, just the data adapter isn't. ![image](https://cloud.githubusercontent.com/assets/1374013/25937667/655d86a2-35e1-11e7-9a87-8a7c17e388ec.png) Is this something that will come later? +19652 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpRequestMessageTest/ToString_DefaultAndNonDefaultInstance_DumpAllFields failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpRequestMessageTest/ToString_DefaultAndNonDefaultInstance_DumpAllFields` has failed. Assert.Equal() Failure\r ? (pos 44)\r Expected: ··· '', Version: 1.1, Content: , Headers:\\r\\n{\\r\\n} Actual: ··· '', Version: 2.0, Content: , Headers:\\r\\n{\\r\\n} ? (pos 44) Stack Trace: at System.Net.Http.Functional.Tests.HttpRequestMessageTest.ToString_DefaultAndNonDefaultInstance_DumpAllFields() Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpRequestMessageTest~2FToString_DefaultAndNonDefaultInstance_DumpAllFields +19653 area-System.Net "Tests under: System.Net.NetworkInformation.Tests.PingTest failed with ""System.Net.NetworkInformation.PingException""" Opened on behalf of @Jiayili1 The test `System.Net.NetworkInformation.Tests.PingTest/Ping_DisposeAfterSend_Success` has failed. System.Net.NetworkInformation.PingException : An exception occurred during a Ping request.\r ---- System.ComponentModel.Win32Exception : Access is denied Stack Trace: at System.Net.NetworkInformation.Ping.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.NetworkInformation.Ping.SendPingAsyncCore(IPAddress address, Byte[] buffer, Int32 timeout, PingOptions options) at System.Net.NetworkInformation.Ping.d__48.MoveNext() Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Net.Ping.Functional.Tests/analysis/xunit/System.Net.NetworkInformation.Tests.PingTest~2FPing_DisposeAfterSend_Success +19654 area-System.Net "Test: System.Net.NetworkInformation.Tests.PingTest/SendAsyncs_ReuseInstance_Hostname failed with ""System.NullReferenceException""" Opened on behalf of @Jiayili1 The test `System.Net.NetworkInformation.Tests.PingTest/SendAsyncs_ReuseInstance_Hostname` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Net.NetworkInformation.Tests.PingTest.d__17.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170510.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170510.02/workItem/System.Net.Ping.Functional.Tests/analysis/xunit/System.Net.NetworkInformation.Tests.PingTest~2FSendAsyncs_ReuseInstance_Hostname +19656 area-System.IO "Multiple Pipes tests failing on desktop with ""The handle is invalid"" and related errors" https://ci.dot.net/job/dotnet_corefx/job/master/job/netfx_windows_nt_debug_prtest/82/consoleText ``` System.IO.Pipes.Tests.AnonymousPipeTest_Write_ServerOut_ClientIn.WriteWithNegativeOffset_Throws_ArgumentOutOfRangeException [FAIL] System.IO.IOException : The handle is invalid. Stack Trace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.Pipes.AnonymousPipeServerStream.Create(PipeDirection direction, SECURITY_ATTRIBUTES secAttrs, Int32 bufferSize) at System.IO.Pipes.AnonymousPipeServerStream..ctor(PipeDirection direction, HandleInheritability inheritability, Int32 bufferSize) at System.IO.Pipes.AnonymousPipeServerStream..ctor(PipeDirection direction) D:\j\workspace\netfx_windows---8c0e8fba\src\System.IO.Pipes\tests\AnonymousPipeTests\AnonymousPipeTest.Write.cs(25,0): at System.IO.Pipes.Tests.AnonymousPipeTest_Write_ServerOut_ClientIn.CreateServerClientPair() D:\j\workspace\netfx_windows---8c0e8fba\src\System.IO.Pipes\tests\PipeTest.Write.cs(44,0): at System.IO.Pipes.Tests.PipeTest_Write.WriteWithNegativeOffset_Throws_ArgumentOutOfRangeException() ``` +19657 area-System.Runtime Add test for AppDomain.SetData with the same key multiple times Closes https://github.com/dotnet/coreclr/issues/11453 cc: @sepidehMS, @AlexGhiondea +19658 area-System.Net Docker Image microsoft/dotnet:1.1.1-runtime doesn't have fix in LibCurl In PR #16895, a fix for lib_curl on linux was put in to improve HttpClient POST Performance in .NET Core. However, even though the PR says it should be deployed to the dotnet:1.1.0 docker repo, I pulled and reproduced the issue with the `dotnet:1.1.1-runtime` docker image. A reproduction of the issue is here: https://github.com/gortok/httpclient-tests (Dockerfile is in that repo). Was this fix deployed? If so, which docker image should contain it? +19659 area-System.Net Allow Deprecated and non-deprecated HTTP events simultaneously. Addresses #18762 Basically we always check if a client needs deprecated events (previously we checked only if new events were not enabled). This allows clients to support both new and old events simultaneously. @davidsh @lmolkova @avanderhoorn +19660 area-Infrastructure Add initial .NET 2.0 pipelines Adds an initial basic set of .NET core 2.0 pipelines, taking advantage of a lot of new functionality implemented on the backend. The 2.0 pipelines use Jenkins new pipeline job functionality to make the build/test process clearer and map much closer to official processes. Pipelines also have the advantage of being easier to edit in a PR. There are two types of files in this PR. * The pipelinejobs.groovy file is a type of netci.groovy file which identifies the pipelines that need to be run, their triggers and the parameters that run on each trigger. It has a simpler form with far fewer options than netci.groovy * The portable-windows.groovy and portable-linux.groovy files are the pipelines themselves. The Linux pipeline uses docker to build the product, then sends off to Helix for testing. Links to helix test results are linked to on the GitHub PR. Windows pipelines build natively on Windows, and again submit off to Helix for testing. These pipelines are currently not enabled by default until we are sure they are valid (also there are currently failures in some tests), but can be launched with: * @dotnet-bot test portable linux debug pipeline * @dotnet-bot test portable linux release pipeline * @dotnet-bot test portable windows debug pipeline * @dotnet-bot test portable windows release pipeline There are clearly a number of additional improvements that need to be made: * Pipelines need to be expanded to x86, arm, arm64, etc. * Pipelines to be expanded to commits (works today but has a couple issues with reporting) * May need to tweak logic used to generate links to Mission Control in non-PR cases. Because of the major changes required in the CI SDK to enable these changes, the pipelines are currently running against the dev/pipelinesupport branch of dotnet/dotnet-ci +19661 area-System.Security Further harden the VerifyDecryptKeyExchange tests "Running the test in a loop with the additional logging showed that the test can fail, due to the nature of the randomness and underlying cryptographic algorithm. By also checking that the return value isn't the pre-tamper we should reduce the failure rate from ""once every 3.5 months"" (amortized current known rate) to ""once every hundred trillion years"", give or take." +19663 area-Serialization DataContractSerializerTests.DCS_BasicRoundTripResolveDTOTypes Fails on UWP "The test fails on UWP due to https://github.com/dotnet/corert/issues/2946. ```xml $catch$0() in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\AccessorBuilder.cs:line 188 at System.Runtime.Serialization.FastInvokerBuilder.CreateGetterInternal(PropertyInfo propInfo) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\AccessorBuilder.cs:line 115 at System.Func$2.InvokeOpenStaticThunk(IntPtr arg) in InvokeOpenStaticThunk:line 16707566 at System.Runtime.Serialization.FastInvokerBuilder.CreateGetter(MemberInfo memberInfo) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\AccessorBuilder.cs:line 39 at System.Runtime.Serialization.ReflectionReader.ReflectionGetMemberValue(Object obj, $DataMember dataMember) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionClassWriter.cs:line 106 at System.Runtime.Serialization.ReflectionXmlClassWriter.ReflectionWriteMembers($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context, $ClassDataContract classContract, $ClassDataContract derivedMostClassContract, Int32 childElementIndex, $XmlDictionaryString[] emptyStringArray) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionXmlFormatWriter.cs:line 171 at System.Runtime.Serialization.ReflectionClassWriter.ReflectionWriteClass($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context, $ClassDataContract classContract, $XmlDictionaryString[] memberNames) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionClassWriter.cs:line 35 at System.Runtime.Serialization.ReflectionXmlFormatWriter.ReflectionWriteClass($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context, $ClassDataContract classContract) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionXmlFormatWriter.cs:line 20 at System.Runtime.Serialization.Json.JsonFormatCollectionWriterDelegate.Invoke($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContextComplexJson context, $CollectionDataContract dataContract) in Invoke:line 16707566 at System.Runtime.Serialization.ClassDataContract.WriteXmlValue($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ClassDataContract.cs:line 508 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue($DataContract dataContract, $XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 651 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeAndVerifyType($DataContract dataContract, $XmlWriterDelegator xmlWriter, Object obj, Boolean verifyKnownType, RuntimeTypeHandle declaredTypeHandle, Type declaredType) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 279 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithXsiType($XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle objectTypeHandle, Type objectType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle, Type declaredType) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 231 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize($XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 138 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerializeReference($XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 106 at System.Runtime.Serialization.ReflectionClassWriter.ReflectionInternalSerialize($XmlWriterDelegator xmlWriter, $XmlObjectSerializerWriteContext context, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Type memberType, Boolean isNullableOfT) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionClassWriter.cs:line 164 at System.Runtime.Serialization.ReflectionClassWriter.ReflectionWriteValue($XmlWriterDelegator xmlWriter, $XmlObjectSerializerWriteContext context, Type type, Object value, Boolean writeXsiType, $PrimitiveDataContract primitiveContractForParamType) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionClassWriter.cs:line 95 at System.Runtime.Serialization.ReflectionXmlClassWriter.ReflectionWriteMembers($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context, $ClassDataContract classContract, $ClassDataContract derivedMostClassContract, Int32 childElementIndex, $XmlDictionaryString[] emptyStringArray) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionXmlFormatWriter.cs:line 183 at System.Runtime.Serialization.ReflectionClassWriter.ReflectionWriteClass($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context, $ClassDataContract classContract, $XmlDictionaryString[] memberNames) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionClassWriter.cs:line 35 at System.Runtime.Serialization.ReflectionXmlFormatWriter.ReflectionWriteClass($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context, $ClassDataContract classContract) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionXmlFormatWriter.cs:line 20 at System.Runtime.Serialization.Json.JsonFormatCollectionWriterDelegate.Invoke($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContextComplexJson context, $CollectionDataContract dataContract) in Invoke:line 16707566 at System.Runtime.Serialization.ClassDataContract.WriteXmlValue($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ClassDataContract.cs:line 508 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue($DataContract dataContract, $XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 651 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeAndVerifyType($DataContract dataContract, $XmlWriterDelegator xmlWriter, Object obj, Boolean verifyKnownType, RuntimeTypeHandle declaredTypeHandle, Type declaredType) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 279 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithXsiType($XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle objectTypeHandle, Type objectType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle, Type declaredType) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 231 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize($XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 138 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerializeReference($XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 106 at System.Runtime.Serialization.ReflectionClassWriter.ReflectionInternalSerialize($XmlWriterDelegator xmlWriter, $XmlObjectSerializerWriteContext context, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Type memberType, Boolean isNullableOfT) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionClassWriter.cs:line 164 at System.Runtime.Serialization.ReflectionClassWriter.ReflectionWriteValue($XmlWriterDelegator xmlWriter, $XmlObjectSerializerWriteContext context, Type type, Object value, Boolean writeXsiType, $PrimitiveDataContract primitiveContractForParamType) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionClassWriter.cs:line 95 at System.Runtime.Serialization.ReflectionXmlClassWriter.ReflectionWriteMembers($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context, $ClassDataContract classContract, $ClassDataContract derivedMostClassContract, Int32 childElementIndex, $XmlDictionaryString[] emptyStringArray) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionXmlFormatWriter.cs:line 183 at System.Runtime.Serialization.ReflectionClassWriter.ReflectionWriteClass($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context, $ClassDataContract classContract, $XmlDictionaryString[] memberNames) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionClassWriter.cs:line 35 at System.Runtime.Serialization.ReflectionXmlFormatWriter.ReflectionWriteClass($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context, $ClassDataContract classContract) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionXmlFormatWriter.cs:line 20 at System.Runtime.Serialization.Json.JsonFormatCollectionWriterDelegate.Invoke($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContextComplexJson context, $CollectionDataContract dataContract) in Invoke:line 16707566 at System.Runtime.Serialization.ClassDataContract.WriteXmlValue($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ClassDataContract.cs:line 508 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.WriteDataContractValue($DataContract dataContract, $XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 651 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType($DataContract dataContract, $XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 155 at System.Runtime.Serialization.DataContractSerializer.InternalWriteObjectContent($XmlWriterDelegator writer, Object graph, $DataContractResolver dataContractResolver) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContractSerializer.cs:line 364 at System.Runtime.Serialization.DataContractSerializer.InternalWriteObject($XmlWriterDelegator writer, Object graph, $DataContractResolver dataContractResolver) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContractSerializer.cs:line 247 at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions($XmlWriterDelegator writer, Object graph, $DataContractResolver dataContractResolver) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 71 at System.Runtime.Serialization.XmlObjectSerializer.WriteObject($XmlDictionaryWriter writer, Object graph) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 57 at System.Runtime.Serialization.XmlObjectSerializer.WriteObject(Stream stream, Object graph) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 27 at DataContractSerializerTests.SerializeAndDeserialize(__Canon value, String baseline, $DataContractSerializerSettings settings, Func$1<$DataContractSerializer> serializerFactory, Boolean skipStringCompare) in d:\OSS\corefx-1\corefx\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 3180 at DataContractSerializerTests.DCS_BasicRoundTripResolveDTOTypes() in d:\OSS\corefx-1\corefx\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 2613 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs:line 400 ----- Inner Stack Trace ----- at System.Reflection.Runtime.MethodInfos.RuntimeMethodInfo.CreateDelegateWorker(Type delegateType, Object target, Boolean allowClosed) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\MethodInfos\RuntimeMethodInfo.cs:line 99 at System.Reflection.Runtime.MethodInfos.RuntimeMethodInfo.CreateDelegate(Type delegateType) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\MethodInfos\RuntimeMethodInfo.cs:line 71 at System.Runtime.Serialization.CreateDelegateExtension.CreateDelegate(MethodInfo method) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\AccessorBuilder.cs:line 184]]> ```" +19664 area-System.Net Increased code coverage for System.Net.Security to 66.6% Increased code coverage for System.Net.Security to 66.6% +19665 area-Serialization Workaround Issue Related to DateTimeOffsetAdapter. Test `DataContractSerializerTests.DCS_BasicRoundTripResolveDTOTypes` is failing due to a bug in CoreRT. The PR works around the bug in `DEBUG` build. Ref #19663 +19667 area-Infrastructure XUnit should log all InnerExceptions if a test fails Example of test failures that would benefit from having the entire `Exception` chain logged during test execution: #19635, #19633. +19669 area-System.IO Desktop test failure: System.IO.Pipes.Tests.AnonymousPipeTest_Write_ServerIn_ClientOut.WriteWithOutOfBoundsArray_Throws_ArgumentException System.IO.Pipes.Tests.AnonymousPipeTest_Write_ServerIn_ClientOut.WriteWithOutOfBoundsArray_Throws_ArgumentException (from System.IO.Pipes.Tests) ``` MESSAGE: System.IO.IOException : Invalid pipe handle. +++++++++++++++++++ STACK TRACE: at System.IO.Pipes.AnonymousPipeClientStream.Init(PipeDirection direction, SafePipeHandle safePipeHandle) at System.IO.Pipes.AnonymousPipeClientStream..ctor(PipeDirection direction, SafePipeHandle safePipeHandle) at System.IO.Pipes.Tests.AnonymousPipeTest_Write_ServerIn_ClientOut.CreateServerClientPair() in D:\j\workspace\netfx_windows---50c21bdb\src\System.IO.Pipes\tests\AnonymousPipeTests\AnonymousPipeTest.Write.cs:line 15 at System.IO.Pipes.Tests.PipeTest_Write.WriteWithOutOfBoundsArray_Throws_ArgumentException() in D:\j\workspace\netfx_windows---50c21bdb\src\System.IO.Pipes\tests\PipeTest.Write.cs:line 75 ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/netfx_windows_nt_release_prtest/104/ Happening here: https://github.com/dotnet/corefx/pull/19613 +19673 area-System.Data SqlClient.SqlClientFactory doesn't implement DbProviderFactory.CreateDataAdapter() Hi. In netstandard 2.0, the method DbProviderFactory.CreateDataAdapter() is present, however this method isn't implemented in SqlClient.SqlClientFactory, leading to a null being returned. This is likely an oversight caused by the fact that the factory was ported over way before DataTable and friends were ported over. I think this should be corrected before 2.0 RTM, as it's an important method for code using datatables and dataadapters. ref: DbProviderFactory.CreateDataAdapter docs: https://apisof.net/catalog/System.Data.Common.DbProviderFactory.CreateDataAdapter() thanks! +19674 area-System.Reflection Update AssemblyName.FullName tests Closes https://github.com/dotnet/corefx/issues/19179 by updating previously disabled test and addding few new tests. cc: @danmosemsft @stephentoub +19677 area-Serialization DCS Failed to Serialize IEnumerable Types on UWP in ReflectionOnly Mode DCS failed to serialize `IEnumerable` Types on UWP in ReflectionOnly mode. The following tests failed. ``` DataContractSerializerTests.DCS_EnumerableCollection DataContractSerializerTests.DCS_TypeWithExplicitIEnumerableImplementation DataContractSerializerTests.DCS_EnumerableMembers DataContractSerializerTests.DCS_DictionaryMembers DataContractSerializerTests.DCS_EnumerableStruct DataContractSerializerTests.DCS_CollectionMembers ``` +19678 area-System.IO Desktop test failure: System.IO.Pipes.Tests.AnonymousPipeTest_Specific.ClonedServer_ActsAsOriginalServer ``` System.IO.Pipes.Tests.AnonymousPipeTest_Specific.ClonedServer_ActsAsOriginalServer [FAIL] System.IO.IOException : Pipe is broken. Stack Trace: at System.IO.Pipes.PipeStream.WinIOError(Int32 errorCode) at System.IO.Pipes.PipeStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count) C:\Users\vikto\Documents\src\corefx\src\System.IO.Pipes\tests\AnonymousPipeTests\AnonymousPipeTest.Specific.cs(49,0): at System.IO.Pipes.Tests.AnonymousPipeTest_Specific.ClonedServer_Act sAsOriginalServer() ``` Fails on my local looped test runs in System.IO.Pipes like 1/50 runs. +19680 area-System.IO Desktop test failure: System.IO.Pipes.Tests.AnonymousPipeTest_Specific.Windows_BufferSizeRoundtripping ``` System.IO.Pipes.Tests.AnonymousPipeTest_Specific.Windows_BufferSizeRoundtripping [FAIL] System.IO.IOException : The handle is invalid. Stack Trace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.Pipes.PipeStream.get_InBufferSize() C:\Users\vikto\Documents\src\corefx\src\System.IO.Pipes\tests\AnonymousPipeTests\AnonymousPipeTest.Specific.cs(137,0): at System.IO.Pipes.Tests.AnonymousPipeTest_Specific.Windows_BufferS izeRoundtripping() ``` Fails on my local looped test runs in System.IO.Pipes like 1/35 times. cc @ianhays @JeremyKuhne +19681 area-System.IO Desktop test failure: System.IO.Pipes.Tests.AnonymousPipeTest_Specific.InvalidReadMode_Throws_ArgumentOutOfRangeException ``` System.IO.Pipes.Tests.AnonymousPipeTest_Specific.InvalidReadMode_Throws_ArgumentOutOfRangeException [FAIL] System.IO.IOException : Invalid pipe handle. Stack Trace: at System.IO.Pipes.AnonymousPipeClientStream.Init(PipeDirection direction, SafePipeHandle safePipeHandle) at System.IO.Pipes.AnonymousPipeClientStream..ctor(PipeDirection direction, String pipeHandleAsString) C:\Users\vikto\Documents\src\corefx\src\System.IO.Pipes\tests\AnonymousPipeTests\AnonymousPipeTest.Specific.cs(189,0): at System.IO.Pipes.Tests.AnonymousPipeTest_Specific.InvalidReadMode _Throws_ArgumentOutOfRangeException() ``` Fails on my local test looped runs in System.IO.Pipes like 1/30 times. cc: @JeremyKuhne @ianhays +19683 area-System.Net System.Net.Sockets.Tests.DualModeBeginAccept.BeginAcceptV4BoundToSpecificV4_Success fails with COMPlus_GCStress=3 When running the System.Net.Sockets tests with COMPlus_GCStress=3, the tests fail with: ``` System.Net.Sockets.SocketException : Connection reset by peer Stack Trace: at System.Net.Sockets.Tests.DualModeBeginAccept.DualModeConnect_BeginAccept_Helper(IPAddress listenOn, IPAddress connectTo) ``` This has been verified by running the tests twice with the same result. No other tests failed. It only has failed on Linux (RHEL 72 used); Windows did not fail here. 'Connection reset by peer' usually means the client closed and re-opened the connection, which could happen if another tests was colliding on port # Worst case is there is an issue with dual-mode support on Linux perhaps contributing to getting >1 client connections to the same port + family (IPv6). The test uses an IPv4 Loopback address but uses an IPv6 protocol on top of that. The easiest way to repro this is to modify the RunTests.sh in the corresponding test folder to add `export COMPlus_GCStress=3` +19688 area-Infrastructure Changes to support ARM-requeue for UAPAOT testing "I have intentionally avoided turning this on in official builds since the binaries we're producing for ARM right now don't quite execute on the Windows ARM64 clients. Regardless, with just this small change you can get a full multi-queued Helix run by doing the same steps as the other UAP AOT runs, but changing out the arch to ""arm"". @joperezr , FYI." +19689 area-System.Net SendAsync_ExpectedDiagnosticSourceActivityLogging failed in CI on Windows and Linux. ``` System.Net.Http.Functional.Tests.DiagnosticsTest.SendAsync_ExpectedDiagnosticSourceActivityLogging [FAIL] 17:11:22 Assert.Equal() Failure 17:11:22 Expected: 42 17:11:22 Actual: 134 17:11:22 Stack Trace: 17:11:22 /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug_prtest/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs(188,0): at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() 17:11:22 /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug_prtest/src/System.Net.Http/tests/FunctionalTests/DiagnosticsTests.cs(308,0): at System.Net.Http.Functional.Tests.DiagnosticsTest.SendAsync_ExpectedDiagnosticSourceActivityLogging() ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_centos7.1_debug_prtest/16/console +19690 area-System.Net Disable HttpClientHandler test Default_ExpectedValue on Desktop, which fails on random occasions depending on xunit test execution order @safern Talked shortly with Stephen about it as he was available (not the other issue, only this one). He recommended disabling the test as removing the static assignment isn't worth for only fixing this test. +19694 area-System.Runtime Environment.OSVersion.Platform returns Unix on macOS "Using .NET Core 2.0 SDK preview. `dotnet --info`: ``` .NET Command Line Tools (2.0.0-preview1-005977) Product Information: Version: 2.0.0-preview1-005977 Commit SHA-1 hash: 414cab8a0b Runtime Environment: OS Name: Mac OS X OS Version: 10.12 OS Platform: Darwin RID: osx.10.12-x64 Base Path: /usr/local/share/dotnet/sdk/2.0.0-preview1-005977/ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview1-002111-00 Build : 1ff021936263d492539399688f46fd3827169983 ``` Simple test case: ``` [12:41pm yaakov@Eadu:/tmp/osver] dotnet new console The template ""Console Application"" was created successfully. Processing post-creation actions... Running 'dotnet restore' on /private/tmp/osver/osver.csproj... Restore succeeded. [12:41pm yaakov@Eadu:/tmp/osver] vim Program.cs [12:42pm yaakov@Eadu:/tmp/osver] cat Program.cs using System; namespace osver { class Program { static void Main(string[] args) { Console.WriteLine(Environment.OSVersion.Platform); } } } [12:42pm yaakov@Eadu:/tmp/osver] dotnet restore && dotnet build && dotnet run Restoring packages for /private/tmp/osver/osver.csproj... Lock file has not changed. Skipping lock file write. Path: /private/tmp/osver/obj/project.assets.json Restore completed in 177.16 ms for /private/tmp/osver/osver.csproj. NuGet Config files used: /Users/yaakov/.nuget/NuGet/NuGet.Config Feeds used: https://api.nuget.org/v3/index.json /Users/yaakov/.dotnet/NuGetFallbackFolder Microsoft (R) Build Engine version 15.3.117.23532 Copyright (C) Microsoft Corporation. All rights reserved. osver -> /private/tmp/osver/bin/Debug/netcoreapp2.0/osver.dll Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:02.29 Unix [12:42pm yaakov@Eadu:/tmp/osver] ``` I would expect the program to print `MacOSX`, i.e. `System.PlatformID.MacOSX` which is enum value `6`." +19695 area-System.Diagnostics zombie process when start a linux process in dotnet core "```c# var processId = Process.GetCurrentProcess().Id; var process = Process.Start(new ProcessStartInfo { FileName = @""top"", Arguments = $@"" -n 1 -p {processId} -b"", RedirectStandardOutput = true, }); process.Start(); process.WaitForExit(); var result = await process.StandardOutput.ReadToEndAsync().ConfigureAwait(false); try { process.Kill(); } finally { process.Dispose(); } return result.Trim(); ``` when this application run . it cause a zombie procss in linux ![image](https://cloud.githubusercontent.com/assets/8044586/25980482/693e413c-3701-11e7-92bb-fa6cc05a0f32.png) " +19697 area-System.Runtime Fix Environment.OSVersion.Platform output on MacOSX Fixes https://github.com/dotnet/corefx/issues/19694 +19698 area-System.Linq ForEach or Select void to do some logic and continue with the same collection I'm not sure we should add new API or just use Select. But it would be the same argument ```C# IEnumerable Select(this IEnumerable list,Action action); IEnumerable Select(this IEnumerable list,Action action); or IEnumerable ForEach(this IEnumerable list,Action action); IEnumerable ForEach(this IEnumerable list,Action action); ``` This let us split iteration logic easier. We could do something before `Where` clause. We could split it out from `Where` without the need to return each item unneccessary +19699 area-System.Net System.Net.Security.Tests.SslStreamCredentialCacheTest.SslStream_SameCertUsedForClientAndServer_Ok failed in ci failed test: System.Net.Security.Tests.SslStreamCredentialCacheTest.SslStream_SameCertUsedForClientAndServer_Ok detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win7_release/44/testReport/System.Net.Security.Tests/SslStreamCredentialCacheTest/SslStream_SameCertUsedForClientAndServer_Ok/ MESSAGE: ~~~ Assert.True() Failure Expected: True Actual: False ~~~ STACK TRACE: ~~~ at System.Net.Security.Tests.SslStreamCredentialCacheTest.d__1.MoveNext() in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\tests\FunctionalTests\SslStreamCredentialCacheTest.cs:line 50 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.SslStreamCredentialCacheTest.SslStream_SameCertUsedForClientAndServer_Ok() in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\tests\FunctionalTests\SslStreamCredentialCacheTest.cs:line 23 ~~~ +19700 area-System.Security System.Security.Cryptography.X509Certificates.Tests.ChainTests.BuildChain_MicrosoftDotCom_WithRootCertInUserAndSystemRootCertStores failed in ci Failed test: System.Security.Cryptography.X509Certificates.Tests.ChainTests.BuildChain_MicrosoftDotCom_WithRootCertInUserAndSystemRootCertStores detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_osx_release/45/testReport/System.Security.Cryptography.X509Certificates.Tests/ChainTests/BuildChain_MicrosoftDotCom_WithRootCertInUserAndSystemRootCertStores/ MESSAGE: ~~~ Interop+AppleCrypto+AppleCommonCryptoCryptographicException : An invalid record was encountered. ~~~ STACK TRACE: ~~~ at Interop.AppleCrypto.EnumerateStore(StoreLocation location, StoreEnumerator userEnumerator, StoreEnumerator machineEnumerator) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_osx_release/src/Common/src/Interop/OSX/System.Security.Cryptography.Native.Apple/Interop.Trust.cs:line 87 at Internal.Cryptography.Pal.StorePal.AppleTrustStore.CloneTo(X509Certificate2Collection collection) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_osx_release/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/StorePal.AppleTrustStore.cs:line 39 at System.Security.Cryptography.X509Certificates.X509Store.get_Certificates() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_osx_release/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Store.cs:line 140 at System.Security.Cryptography.X509Certificates.Tests.ChainTests.BuildChain_MicrosoftDotCom_WithRootCertInUserAndSystemRootCertStores() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_osx_release/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs:line 435 ~~~ +19701 area-System.Net Test failures: System.Net.Http.Functional.Tests.HttpClientHandler_* / * - Azure endpoints Multiple tests fail with the same stack indicating that the request took more than the configured (default=100s) timeout for HttpClient. The reasons for this timeout may be different but in most cases the way the tests report the error makes it difficult (or impossible) to understand why the server didn't reply (or why the client didn't receive that reply). - System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test/NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds - System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol: Tls11, requestOnlyThisProtocol: False) - System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol: Tls11, requestOnlyThisProtocol: True) - System.Net.Http.Functional.Tests.HttpClientHandlerTest/GetAsync_AllowAutoRedirectTrue_NonRedirectStatusCode_LocationHeader_NoRedirect(statusCode: 200) - System.Net.Http.Functional.Tests.HttpClientHandlerTest/Proxy_BypassFalse_GetRequestGoesThroughCustomProxy(creds: null, wrapCredsInCache: False) - System.Net.Http.Functional.Tests.HttpClientTest.SendAsync_ExpectedDiagnosticSourceLogging - System.Net.Http.Functional.Tests.PostScenarioTest.PostUsingChunkedEncoding_Success(serverUri: http://corefx-net.cloudapp.net/Echo.ashx) - System.Net.Http.Functional.Tests.PostScenarioTest/PostEmptyContentUsingContentLengthSemantics_Success(serverUri: http://corefx-net.cloudapp.net/Echo.ashx) - System.Net.Http.Functional.Tests.PostScenarioTest.PostUsingUsingConflictingSemantics_UsesChunkedSemantics - System.Net.Http.Functional.Tests.ResponseStreamTest/ReadAsStreamAsync_Cancel_TaskIsCanceled OS Distribution: - (most likely to fail) Windows.7.Amd64-x86 Debug - Windows.10.Nano.Amd64-x64 Release - Windows.10.Amd64-x64 Release - Windows.10.Amd64-x86 Release - Windows.7.Amd64-x86 Release --- Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test/NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Net.Http.WinHttpException : The operation has been canceled Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : Master - 20170512.01 (Core Tests) Failing configurations: - Windows.10.Amd64-x86 - Release - Windows.81.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170512.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test~2FNoCallback_RevokedCertificate_NoRevocationChecking_Succeeds +19702 area-System.Net "Test ""System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests/SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync"" failed with ""System.AggregateException""" Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests/SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync` has failed. System.AggregateException : One or more errors occurred. (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it) (No connection could be made because the target machine actively refused it)\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it\r ---- System.Net.Sockets.SocketException : No connection could be made because the target machine actively refused it Stack Trace: at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) at System.Threading.Tasks.Task.WaitAll(Task[] tasks) at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.RunClient(SocketImplementationType testType, EndPoint endpoint, Int32 iterations, Int32 bufferSize, Int32 socketInstances) at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.ClientServerTest(Int32 port, SocketImplementationType serverType, SocketImplementationType clientType, Int32 iterations, Int32 bufferSize, Int32 socketInstances, Int64 expectedMilliseconds) at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.ClientServerTest(SocketImplementationType serverType, SocketImplementationType clientType, Int32 iterations, Int32 bufferSize, Int32 socketInstances, Int64 expectedMilliseconds) at System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests.SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync() ----- Inner Stack Trace #1 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #2 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #3 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #4 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #5 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #6 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #7 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #8 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #9 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #10 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #11 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #12 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #13 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #14 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #15 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #16 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #17 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #18 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #19 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #20 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #21 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #22 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #23 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #24 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #25 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #26 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #27 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #28 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #29 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #30 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #31 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #32 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #33 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #34 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #35 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #36 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #37 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() ----- Inner Stack Trace #38 (System.Net.Sockets.SocketException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at System.Net.Sockets.Performance.Tests.SocketTestClient.d__22.MoveNext() Build : Master - 20170512.01 (Core Tests) Failing configurations: - Windows.10.Amd64-x86 - Debug - Windows.81.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170512.01/workItem/System.Net.Sockets.Async.Performance.Tests/analysis/xunit/System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests~2FSocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync +19703 area-System.Runtime string.GetHashCode() does not return the same result in version 1.1 "Every time I run my program anew and call ```myString.GetHashCode()```, it returns a new result. ## Recreate Create C# console program ```c# class Program { static void Main(string[] args) { var seed = ""myseed""; Console.WriteLine(seed.GetHashCode()); Console.WriteLine(seed.GetHashCode()); } } ``` Run the program. As expected the outputs are equal. dotnet MyProgram.dll 555123300 555123300 ## Actual outcome Now run the program again. The output is now different. dotnet MyProgram.dll 555123300 555123300 dotnet MyProgram.dll 614890615 614890615 ## Expected outcome Two runs on the same machine with the same compiled code should return the same hash for a string. According to [docs](https://docs.microsoft.com/en-us/dotnet/api/system.string.gethashcode?view=netcore-1.1#System_String_GetHashCode) the same string should return the same hash for the same framework and the same application domain. I have not yet checked the behaviour in dotnet core 2." +19704 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientHandlerTest/GetAsync_AllowAutoRedirectTrue_NonRedirectStatusCode_LocationHeader_NoRedirect(statusCode: 200) Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/GetAsync_AllowAutoRedirectTrue_NonRedirectStatusCode_LocationHeader_NoRedirect(statusCode: 200)` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Net.Http.WinHttpException : The operation has been canceled Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.<>c__DisplayClass46_1.<b__1>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.<>c__DisplayClass46_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__46.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : Master - 20170512.01 (Portable Core Tests) Failing configurations: - Windows.10.Nano.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170512.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FGetAsync_AllowAutoRedirectTrue_NonRedirectStatusCode_LocationHeader_NoRedirect(statusCode:%20200) +19705 area-System.Net Test failure: System.Net.Security.Tests.SslStreamStreamToStreamTest_Sync/SslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.SslStreamStreamToStreamTest_Sync/SslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success` has failed. System.IO.IOException : The read operation failed, see inner exception. ---- System.TimeoutException : VirtualNetwork: Timeout reading the next frame. Stack Trace: at System.Net.Security.SslStreamInternal.EndRead(IAsyncResult asyncResult) in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 171 at System.Net.Security.SslStream.EndRead(IAsyncResult asyncResult) in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 537 at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.SslStreamStreamToStreamTest.d__10.MoveNext() in /root/corefx/src/System.Net.Security/tests/FunctionalTests/SslStreamStreamToStreamTest.cs:line 320 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Test.Common.VirtualNetwork.ReadFrame(Boolean server, Byte[]& buffer) in /root/corefx/src/Common/tests/System/Net/VirtualNetwork/VirtualNetwork.cs:line 42 at System.Net.Test.Common.VirtualNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) in /root/corefx/src/Common/tests/System/Net/VirtualNetwork/VirtualNetworkStream.cs:line 118 at System.Net.Security.Tests.NotifyReadVirtualNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) in /root/corefx/src/System.Net.Security/tests/FunctionalTests/NotifyReadVirtualNetworkStream.cs:line 22 at System.Net.Test.Common.VirtualNetworkStream.<>c__DisplayClass27_0.b__0() in /root/corefx/src/Common/tests/System/Net/VirtualNetwork/VirtualNetworkStream.cs:line 138 at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.FixedSizeReader.d__1.MoveNext() in /root/corefx/src/System.Net.Security/src/System/Net/FixedSizeReader.cs:line 56 Build : Master - 20170512.01 (Portable Core Tests) Failing configurations: - Ubuntu.1610.Amd64-x64 - Debug - Release - Ubuntu.1404.Amd64-x64 - Debug - Release - Debian.87.Amd64-x64 - Debug - Ubuntu.1604.Amd64-x64 - Release - Ubuntu.1704.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170512.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.SslStreamStreamToStreamTest_Sync~2FSslStream_StreamToStream_WriteAsync_ReadAsync_Pending_Success +19706 area-System.Numerics add method to directly round double to decimal the current version of the API requires 2 rounding operations to convert from a `double` to a `decimal` with `n` places of precision. eg ``` double d = ...; decimal m1 = (decimal)d; // first rounding operation decimal m2 = Math.Round(m1, n, MidpointRounding.AwayFromZero); // second rounding operation ``` ideally we would have an API that allows a direct conversion/round in a single operation: in class `Decimal`: ``` public static decimal Round(double d, int n, MidpointRounding rouding) {} ``` this is both for performance and correctness reasons. rounding twice may introduce inaccuracies (albeit subtle and infrequent) and also inccurs an extra unnecessary step. +19708 area-System.Data netstandard2.0: DataTable isn't usable as a parameter (SqlClient/DataTable issue) I'm not sure if there are other issues beyond this, but hitting the first boom with SQL TVPs (table valued parameters) when attempting to restore support in Dapper with `netstandard2.0`. In the reference source for `SqlParameter.CoerceValue()`, there's [an explicit check to not attempt conversion on a `DataTable`](https://referencesource.microsoft.com/#System.Data/System/Data/SqlClient/SqlParameter.cs,958): ```c# else if (TdsEnums.SQLTABLE == destinationType.TDSType && (value is DataTable || value is DbDataReader || value is System.Collections.Generic.IEnumerable)) { // no conversion for TVPs. typeChanged = false; } ``` Compared to [the code in CoreFX](https://github.com/dotnet/corefx/blob/9d876a4d4f7b7cf2a1d125d23349b7989650cb30/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlParameter.cs#L917-L923): ```c# else if (TdsEnums.SQLTABLE == destinationType.TDSType && ( value is DbDataReader || value is System.Collections.Generic.IEnumerable)) { // no conversion for TVPs. typeChanged = false; } ``` Without this match, it falls down below resulting in: ``` System.InvalidCastException : Failed to convert parameter value from a DataTable to a IEnumerable`1. ---- System.InvalidCastException : Object must implement IConvertible. Stack Trace: at System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType, Boolean& coercedToDataFeed, Boolean& typeChanged, Boolean allowStreaming) at System.Data.SqlClient.SqlParameter.GetCoercedValue() at System.Data.SqlClient.SqlParameter.Validate(Int32 index, Boolean isCommandProc) at System.Data.SqlClient.SqlCommand.SetUpRPCParameters(_SqlRPC rpc, Int32 startCount, Boolean inSchema, SqlParameterCollection parameters) at System.Data.SqlClient.SqlCommand.BuildRPC(Boolean inSchema, SqlParameterCollection parameters, _SqlRPC& rpc) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) C:\git\Dapper\Dapper\SqlMapper.cs(1052,0): at Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior) C:\git\Dapper\Dapper\SqlMapper.cs(1080,0): at Dapper.SqlMapper.d__130`1.MoveNext() at System.Collections.Generic.List`1.AddEnumerable(IEnumerable`1 enumerable) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) C:\git\Dapper\Dapper\SqlMapper.cs(722,0): at Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable`1 commandTimeout, Nullable`1 commandType) C:\git\Dapper\Dapper.Tests\ParameterTests.cs(435,0): at Dapper.Tests.ParameterTests.DataTableParametersWithExtendedProperty() ----- Inner Stack Trace ----- at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider) at System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType, Boolean& coercedToDataFeed, Boolean& typeChanged, Boolean allowStreaming) ``` This may be a single backporting oversight, or there may be deeper issues with `DataTable` as a parameter beyond this. Filing because this is the wall I'm hitting at the moment. +19709 area-System.Net Proposal: HttpClientHandler.DangerousAcceptAnyServerCertificateValidator property We have what in my mind is a big problem with HttpClient in 2.0: to use HttpClient with self-signed certs (very common in testing environments), you need to hook up a ServerCertificateCustomValidationCallback; that will override the default verification and can be made to always return true. We do this in all of our HTTP testing in corefx, ASP.NET did it in theirs, etc. Unfortunately, this doesn't work on macOS nor on several Linux distros. The problem is that libcurl only supports the necessary callbacks to enable this when using an OpenSSL backend, and if such a backend isn't in use, we can't enable this delegate callback and thus throw a PlatformNotSupportedException when trying to hook up the delegate. As it stands today, basically none of our https testing for HttpClient is running on macOS/CentOS/RHEL/Fedora, ASP.NET recently had to switch away from HttpClient for their testing because of this, etc. ~~Proposal: We add the following property to HttpClientHandler: public class HttpClientHandler { public bool ValidateServerCertificate { get; set; } = true; ... } The default behavior is as things are today. But if you set ValidateServerCertificate to false, we disable verification, both built-in and custom via the callback. We should be able to do that on all Unix's via libcurl's https://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYPEER.html, and we can do so on Windows simply by substituting a `delegate { return true; }` delegate (or tweak a setting if there is one).~~ Updated proposal (5/13/2017): We add the following property to HttpClientHandler: ```C# public class HttpClientHandler { public static Func DangerousAcceptAllCertificatesValidator { get; } = delegate { return true; }; ... } ``` A developer can use this delegate with ```C# handler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAllCertificatesValidator; ``` For platforms that already support the callback, nothing need change, although they could be optimized to specially recognize this delegate instance to avoid the callback needing to be invoked. For platforms that don't support the callback, we can use object equality to check for this delegate instance: if any other instance is supplied, we continue to throw a PNSE, but if this instance is supplied, we flip the appropriate options so that certificates are not validated and all are accepted. cc: @bartonjs, @davidsh, @cesarbs, @CIPop +19710 area-System.IO Directory.Move no longer moves files "The following works fine with net45 and netcoreapp1.0, throws a `DirectoryNotFoundException` with 2.0. ``` File.Create(""test.txt"").Dispose(); Directory.Move(""test.txt"", ""test2.txt""); ``` " +19712 area-System.Data netstandard2.0: SqlParameter's decimals are coming back with integer precision (SqlClient issue) "I came across this when [updating Dapper to `netstandard2.0`](https://github.com/StackExchange/Dapper/commit/7e5bd308f99b790212e6990bc4ec8b0c72579406). Our unit tests checking for decimal precision accuracy are failing on `netstandard2.0` (yet passing on `netstandard1.6`). The basics are when you select a decimal like `11.884`, it comes back as `12`. This could be an integer issue, or a precision/scale issue, or an ordering issue - I haven't had time to dig in yet, but I wanted to file it ASAP given the `netstandard2.0` time frame. ```c# private void Issue261_Decimals_ADONET(bool setPrecisionScaleViaAbstractApi) { try { using (var cmd = connection.CreateCommand()) { cmd.CommandText = ""create proc #Issue261Direct @c decimal(10,5) OUTPUT as begin set @c=11.884 end""; cmd.ExecuteNonQuery(); } } catch { /* we don't care that it already exists */ } using (var cmd = connection.CreateCommand()) { cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = ""#Issue261Direct""; var c = cmd.CreateParameter(); c.ParameterName = ""c""; c.Direction = ParameterDirection.Output; c.Value = DBNull.Value; c.DbType = DbType.Decimal; if (setPrecisionScaleViaAbstractApi) { IDbDataParameter baseParam = c; baseParam.Precision = 10; baseParam.Scale = 5; } else { c.Precision = 10; c.Scale = 5; } cmd.Parameters.Add(c); cmd.ExecuteNonQuery(); decimal value = (decimal)c.Value; value.IsEqualTo(11.884M); } } ``` Actual output: ``` Assert.Equal() Failure Expected: 11.884 Actual: 12 ``` This is a regression from `netstandard1.6`. I'm using the latest SQL Client code available on NuGet: `4.4.0-preview1-25305-02`" +19713 area-System.Reflection Question: How to enumerate forwarded types from facade assemblies via reflection "I am attempting to enumerate the types from facade assemblies (for example System.Xml.Serialization) via reflection. I loaded the assembly via Assembly.Load, but I can't figure out how to get the types, I tried `GetTypes()`, `GetExportedTypes()`, `GetCustomAttributes(typeof(TypeForwardedToAttribute))` and they all return nothing. I am able to explicitly load a type which is forwarded (e.g. `GetType(""System.Xml.Serialization.XmlRootAttribute"")`) so the information is somewhere in there..." +19715 area-Serialization Microsoft.XmlSerializer.Generator Issues +19717 area-System.IO Checking for FileExists || DirectoryExists is not efficient We should implement the code for this internally and look at adding a public API for it. Probably `Path.Exists(string path)`. The internal helper should avoid any sort of path validation/normalization if possible. A bad path, by definition, doesn't exist. At least on the Windows side pre normalizing isn't needed (and wasteful). We should also consider exposing overloads such as `Path.Exists(string path, bool normalize)` to allow users to skip this as well (or perhaps a config switch). +19718 area-System.Net macOS: Can HttpClient do custom cert handling with libcurl+openssl10? Gedankenexperiment: * If OpenSSL/1.0 is the reported backend, run the OpenSSL initializer. * Still fail client auth certificates (non-exportable private keys can't marshal into OpenSSL, and other problems could exist, so just block it) * If OpenSSL/1.0 is the reported backend, register the callbacks/etc as normal. * For the EE (server identity) cert and any presented intermediates, [extract the certificate bytes](https://github.com/dotnet/corefx/blob/5fe5f9aae7b2987adc7082f90712b265bee5eefc/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.Unix/OpenSslX509CertificateReader.cs#L144-L147) to pass to `new X509Certificate2(byte[])`. * [Build the X509Chain](https://github.com/dotnet/corefx/blob/0eeb35b0add4a8d1041a56de85409526c9466cac/src/System.Net.Security/src/System/Net/Security/SecureChannel.cs#L1012-L1022) * Apply [chain and hostname checks](https://github.com/dotnet/corefx/blob/3b19899963606a34e1623e0926b90fe907197ee6/src/System.Net.Security/src/System/Net/CertificateValidationPal.OSX.cs#L13-L46) * Call the callback. +19720 area-Serialization When generate the code for two classes that contains the same collection type, the second one will be ignored If generate the code for two classes that contains the same collection type as the following, it won't generate the write method for the collection in the second class. During the serialization for the object of the second type, it will use the write method generated for the collection in the first type, which will end with conversion error. This also repro on the desktop. ``` public class MyCollection1 : IEnumerable, IEnumerable { private List _values = new List(); … } public class EnumerableCollection : IEnumerable { private List _values = new List(); … } ``` +19721 area-Serialization Cannot generate code for recursive type When generate the code for recursive type, it will throw stackoverflow exception. This also repro on the desktop version. +19722 area-Serialization Fail to generate the code for the classes with the same name but in different namespace When to generate the code for the classes with the same name but in different namespace or class, it will throw the exception during code generation. This also repro in the desktop version. +19723 area-Serialization Fail to generate the code if the type of the class contains any property that only have private setter. During code generation, if any of the class contains the property that only have private setter, it will throw exception. We need ignore this type but not make the code generation fail. This also repro on desktop. +19724 area-Serialization The generated code cannot compile if define the class that use NaN as the default value If to generate the code for the classes that contains the following, the generated code cannot compile. This also repro on the desktop version. ``` [DefaultValue(double.NaN)] public double DoubleProp { get; set; } ``` The generated code is like. Cannot recognize NaN. `if (((global::System.Double)o.@DoubleField) != NaN) ` +19725 area-System.Security Retry failed calls to open SecTrust enumerators. It doesn't seem to fail very often, but I've seen it fail, and CI has seen it fail. Presumably there's some sort of race/sync condition in the OS that's being encountered, so treat it as an intermittent problem and retry. Fixes #19700. +19726 area-Serialization The generated code cannot compile if contains a type with mismatched attribute and property "The generated code for the following class cannot compile. This also repro on the desktop. ``` public class TypeWithMismatchBetweenAttributeAndPropertyType { private int _intValue = 120; [DefaultValue(true), XmlAttribute(""IntValue"")] public int IntValue {get; set;} } ``` The generated code is like `if (((global::System.Int32)o.@IntValue) != true)`" +19727 area-Serialization Codegen not support generic type This also repro in the desktop. +19728 area-Serialization Fail to generate the code if contain the classes with the same XmlType name "Code generation will fail for the following classes. This also repro on the desktop. ``` [XmlType(TypeName = ""MyXmlType"")] public class TypeWithStringArrayAsXmlAttribute { [XmlAttribute(Form = XmlSchemaForm.Qualified)] public string[] XmlAttributeForms; } [XmlType(TypeName = ""MyXmlType"")] public class TypeWithTypeNameInXmlTypeAttribute { [XmlAttribute(Form = XmlSchemaForm.Qualified)] public string XmlAttributeForm; } ``` " +19729 area-Serialization The namespace of mapping is null for the pregenerated serializer The namespace of the mapping of the XmlSerializer is empty string in regular case but it is null when loaded from the pregenerated serialization assembly. This also repro on the desktop. +19730 area-Serialization The serialized string doesn't contain the encoding when using pregenerated serializer "The serialized string miss encoding part ""encoding=\""utf-8\"""". But all serialization and deserialization works fine." +19731 area-System.Runtime TypeLoadException is thrown when calling 'GetEnumerator()' on a COM object that has been successfully casted to 'IEnumerable' "This is happening with `netcoreapp2.0` version `2.0.0-preview1-002106-00`, on windows 10 desktop. Summary ---------- I get the [ShellWindows](https://msdn.microsoft.com/en-us/library/windows/desktop/bb773974(v=vs.85).aspx) object by calling `Shell.Application.Windows()` method with C#. The `ShellWindows` object is enumerable, and it can be successfully cast to `IEnumerable`. After that, when I call `GetEnumerator()` on the casted IEnumerable object, a TypeLoadException is thrown: ``` Could not load type 'System.Runtime.InteropServices.ComTypes.IEnumerable' from assembly 'System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' ``` Will the type `System.Runtime.InteropServices.ComTypes.IEnumerable` be added to .NET Core 2.0? Repro ------ ```CSharp using System; using System.Collections; using System.Runtime.InteropServices; using ComTypes = System.Runtime.InteropServices.ComTypes; namespace COMTest { class Program { static void Main(string[] args) { Guid clsId; int result = CLSIDFromProgID(""Shell.Application"", out clsId); Type type = Marshal.GetTypeFromCLSID(clsId); if (type == null) { Console.WriteLine(""Failed to get type from CLSID""); return; } object obj = Activator.CreateInstance(type); int dispId = GetDispId(obj, ""Windows""); if (dispId == -1) { return; } object windows = Invoke(obj as IDispatch, dispId); IEnumerable enumerable = windows as IEnumerable; if (enumerable == null) { Console.WriteLine(""Cannot cast COM object to IEnumerable""); return; } try { var enumerator = enumerable.GetEnumerator(); if (enumerator == null) { Console.WriteLine(""Cannot get enumerator""); return; } if (enumerator.MoveNext()) { Console.WriteLine(""MoveNext runs successfully""); } } catch (Exception ex) { Console.WriteLine(""Exception caught from 'GetEnumerator()': {0}"", ex.Message); Console.WriteLine(""StackTrace:\n{0}"", ex.StackTrace); if (ex.InnerException != null) { Console.WriteLine(""\nInnerException: {0}"", ex.InnerException.Message); Console.WriteLine(""StackTrace:\n{0}"", ex.InnerException.StackTrace); } } } static int GetDispId(object rcw, string methodName) { IDispatch dispatchObject = rcw as IDispatch; if (dispatchObject == null) { Console.WriteLine(""Passed-in argument is not a IDispatch object""); return -1; } int[] dispIds = new int[1]; Guid emtpyRiid = Guid.Empty; dispatchObject.GetIDsOfNames( emtpyRiid, new string[] { methodName }, 1, 0, dispIds); if (dispIds[0] == -1) { Console.WriteLine(""Method name {0} cannot be recognized."", methodName); } return dispIds[0]; } static object Invoke(IDispatch target, int dispId) { if (target == null) { Console.WriteLine(""Cannot cast target to IDispatch.""); return null; } IntPtr variantArgArray = IntPtr.Zero, dispIdArray = IntPtr.Zero, tmpVariants = IntPtr.Zero; int argCount = 0; var paramArray = new ComTypes.DISPPARAMS[1]; paramArray[0].rgvarg = variantArgArray; paramArray[0].cArgs = argCount; paramArray[0].cNamedArgs = 0; paramArray[0].rgdispidNamedArgs = IntPtr.Zero; ComTypes.EXCEPINFO info = default(ComTypes.EXCEPINFO); object result = null; try { uint puArgErrNotUsed = 0; target.Invoke(dispId, new Guid(), 0x0409, ComTypes.INVOKEKIND.INVOKE_FUNC, paramArray, out result, out info, out puArgErrNotUsed); } catch (Exception ex) { Console.WriteLine(""IDispatch.Invoke failed: {0}"", ex.Message); } return result; } [DllImport(""ole32.dll"")] internal static extern int CLSIDFromProgID([MarshalAs(UnmanagedType.LPWStr)] string lpszProgID, out Guid pclsid); } [Guid(""00020400-0000-0000-c000-000000000046"")] [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] [ComImport] internal interface IDispatch { [PreserveSig] int GetTypeInfoCount(out int info); [PreserveSig] int GetTypeInfo(int iTInfo, int lcid, out ComTypes.ITypeInfo ppTInfo); void GetIDsOfNames( [MarshalAs(UnmanagedType.LPStruct)] Guid iid, [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPWStr)] string[] rgszNames, int cNames, int lcid, [Out, MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I4)] int[] rgDispId); void Invoke( int dispIdMember, [MarshalAs(UnmanagedType.LPStruct)] Guid iid, int lcid, ComTypes.INVOKEKIND wFlags, [In, Out] [MarshalAs(UnmanagedType.LPArray)] ComTypes.DISPPARAMS[] paramArray, out object pVarResult, out ComTypes.EXCEPINFO pExcepInfo, out uint puArgErr); } } ``` Expected Result ----------------- `GetEnumerator()` is successful, and then `MoveNext()` works too. Actual Result --------------- ``` PS:73> dotnet run Exception caught from 'GetEnumerator()': Could not load type 'System.Runtime.InteropServices.ComTypes.IEnumerable' from assembly 'System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'. StackTrace: at System.Collections.IEnumerable.GetEnumerator() at COMTest.Program.Main(String[] args) ``` Environment -------------- ``` PS:74> dotnet --info .NET Command Line Tools (2.0.0-preview1-005952) Product Information: Version: 2.0.0-preview1-005952 Commit SHA-1 hash: 356e309f17 Runtime Environment: OS Name: Windows OS Version: 10.0.15063 OS Platform: Windows RID: win10-x64 Base Path: ...\AppData\Local\Microsoft\dotnet\sdk\2.0.0-preview1-005952\ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview1-002106-00 Build : 86fe9816c8ba782241c441c3228c665e393c3ef3 ```" +19732 area-System.Net HttpWebRequest difference in behavior between .Net Core and Desktop If we run the following code: ```cs HttpWebRequest request = HttpWebRequest.CreateHttp(url); request.BeginGetResponse(null, null); request.BeginGetRequestStream(null, null); ``` When the `HttpMethod` doesn't support getting a request stream, i.e: `HttpMethod.Get`; in desktop we will get a `ProtocolViolationException` and in Net Core we will get an `InvalidOperationException` because the request was already submitted through `request.BeginGetResponse(null, null);`. However if we don't submit the request and only do: ```cs HttpWebRequest request = HttpWebRequest.CreateHttp(url); request.BeginGetRequestStream(null, null); ``` Both platforms will throw a `ProtocolViolationException`. This is because in .Net Core we are checking first if the request was submitted, and in Desktop the first thing we do is checking if the current protocol is valid. #### Netcore http://source.dot.net/#System.Net.Requests/System/Net/HttpWebRequest.cs,1026 #### Desktop https://referencesource.microsoft.com/#System/net/System/Net/HttpWebRequest.cs,1515 However if we want to match behaviors by doing the protocol first in [.NET Core](http://source.dot.net/#System.Net.Requests/System/Net/HttpWebRequest.cs,1034) to match Desktop's behavior we would be introducing a breaking change because we already shipped this behavior in 1.1 and 1.0 Which one we care most, being compatible with Desktop or with core previous versions? cc: @stephentoub @davidsh @ViktorHofer +19733 area-Serialization Fix several codegen issues 1. Remove the attribute class from the code generator 2. Add TimeSpan support in codegen 3. Pass the namespace information when load generated assembly +19735 area-System.Xml Fixed two System.Xml uap errors Basically moving to temporary paths and using the right overload in XmlReader. The hard thing was to find out that xml validation will fail if the directory doesn't have a trailing slash. Thanks krwq! https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170512.03/workItem/System.Xml.XmlSchema.XmlSchemaValidatorApi.Tests/analysis/xunit/System.Xml.Tests.TCXmlSchemaValidatorMisc~2FXSDValidationGeneratesInvalidError_1 https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170512.03/workItem/System.Xml.XmlSchemaSet.Tests/analysis/xunit/System.Xml.Tests.TC_SchemaSet_Compile~2FTFS_470021 +19736 area-System.Net Match desktop behavior GetRequestStream/BeginGetRequestStream throws on invalid verb Fixes: https://github.com/dotnet/corefx/issues/19732 +19737 area-Serialization Fix several code generator issues. Fix the following issues. 1. Remove the attribute class from the generator 2. Add TimeSpan support in codegen 3. Pass the namespace information when load generated assembly Fix #19733 @shmao @zhenlan @mconnew +19738 area-System.IO Use SetThreadErrorMode instead of SetErrorMode SetErrorMode Windows API is process global and thus it suffers from race condition when multiple threads are flipping the error mode back and forth. File I/O on Windows should be using SetThreadErrorMode instead (this API is supported on Win7+). The full framework calls SetThreadErrorMode on Win7+: https://github.com/Microsoft/referencesource/blob/4fe4349175f4c5091d972a7e56ea12012f1e7170/mscorlib/microsoft/win32/win32native.cs#L1480. Calling SetThreadErrorMode instead of SetErrorMode will both fix the race condition and improve compatibility with full framework. +19739 area-System.Data Add LongRunning option to managed SNI async reads When running Entity Framework tests in parallel, some MARS async reads hang for 30+ seconds until they timeout. This issue persists even when only running a single test with parallelization enabled. After adding the LongRunning task continuation option, these async reads complete immediately. So it's likely a thread availability/scheduling issue with the async reads that's resolved by oversubscription from the LongRunning option. Fixes https://github.com/dotnet/corefx/issues/19810 +19741 area-System.Data Add assert failure messages to TcpDefaultForAzureTest, and merge its redundant OS-specific tests Fixes https://github.com/dotnet/corefx/issues/19028 +19742 area-System.Runtime Scale back [Serializable] CoreFX types This is the first step toward #19119. The intent is to only put SerializableAttribute on types where: 1. The types can be correctly serialized between runtimes, versions, and operating systems. This was determined by looking at types that have runtime or OS dependencies or are highly subject to change. 2. The types are clearly important for users to create their own serializable types. This was determined by analyzing serialization usage data along with adding types that complete sets or are needed in order to serialize other types. In all, about 100 types will continue to be serializable by BinaryFormatter. Of course, it's possible we've excluded an important type. We have chosen to start with a conservative set, but to expand it as necessary based on user feedback. This change removes SerializableAttribute from the CoreFX types that didn't make the list as well as removing testing for serializing those types. Future changes will include: * Making similar sweeps through CoreCLR and CoreRT * Changes to make serializing these types compatible where their serialized form doesn't match .NET Framework. +19743 area-System.Data Possible bug in System.Data.SqlClient, with LocalDB and Stored Procedures "While porting some code from .Net 4.5 to core, I noticed a possible bug and currently see no workaround. It is a DOTNET CORE project, with all the latest nuget packages (v2.0 preview). It is being build with Usual Studio 2017 15.1. Details of the exception: System.InvalidOperationException: There is already an open DataReader associated with this Command which must be closed first. at System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command) at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command) at System.Data.SqlClient.SqlCommand.ValidateCommand(Boolean async, String method) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite, String method) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) at System.Data.SqlClient.SqlCommand.ExecuteReader() at DbBug.Program.Main(String[] args) in z:\TFS\IDB\etc\GKW\test\DbBug\Program.cs:line 43 In the full .NET Framework, the same code is running without problems. Outline of the behavior is: - I'm using a connection for a sequence of database operations. - After doing some work with this connection, BeginTransaction fails with the above exception. - When I close and reopen the connection just before BeginTransaction, this statement runs without problems. - But then, after running some commands inside this connection, the call to transaction.Commit() fails with the same exception. I am very carefull with the DataReader, closing it after every use. The problem only happens, if the connection is not closed before reading for the second time. REPRO: ```c# using System; using System.Data; using System.Data.SqlClient; // namespace DbBug { // class Program { // static void Main( string[] args ) { var connection_string = ""Address=(localdb)\\LocalZDB;Database=ZENDB;UID=ZENDB;PWD=DbZenPw2017;WSID=GROOVE;Application Name=Db.Tests;Integrated Security=False;Max Pool Size=32;Min Pool Size=2;Pooling=true""; var connection = new SqlConnection( connection_string ); connection.Open(); // IDataReader rdr = null; int count = 0; try { string sql = ""EXEC [ZENDB].[dbo].UserReadAll""; var cmd = connection.CreateCommand(); cmd.CommandText = sql; cmd.CommandTimeout = 1000; rdr = cmd.ExecuteReader(); // while ( rdr.Read() ) { var id = rdr.IsDBNull( 0 ) ? 0 : rdr.GetInt64( 0 ); count++; } } catch ( Exception ex ) { Console.WriteLine( ex.ToString() ); } finally { if ( rdr != null ) rdr.Close(); //connection.Close(); } var c = rdr.IsClosed; // //connection.Open(); rdr = null; count = 0; try { string sql = ""EXEC [ZENDB].[dbo].UserReadAll""; var cmd = connection.CreateCommand(); cmd.CommandText = sql; cmd.CommandTimeout = 1000; rdr = cmd.ExecuteReader(); // while ( rdr.Read() ) { var id = rdr.IsDBNull( 0 ) ? 0 : rdr.GetInt64( 0 ); count++; } } catch ( Exception ex ) { Console.WriteLine( ex.ToString() ); } finally { if ( rdr != null ) rdr.Close(); connection.Close(); } } } } ```" +19744 area-System.Net HttpStreamAsyncResult.CompletedSynchronously is broken on Unix In the managed implementation of HttpListener, it always returns true. +19746 area-System.Net Add Usable HttpStatusCodes Including a handful of HttpStatusCodes that could be used +19748 area-System.Data netstandard2.0: SqlDataReader doesn't implement GetSchemaTable() There's a disconnect between the `netstandard2.0` intent and actual implementations here, resulting in runtime errors on things that call `.GetSchemaTable()`. The way ADO.NET is setup, `DbDataReader` has added some methods over time (since adding to interfaces is bad), of these `.GetSchemaTable()` is one brought back in `netstandard2.0`. It's a virtual that each implementation needs to override. [Here's the Core FX `DbDataReader.GetSchemaTable()`](https://github.com/dotnet/corefx/blob/master/src/System.Data.Common/src/System/Data/Common/DbDataReader.cs#L57): ```c# public virtual DataTable GetSchemaTable() { throw new NotSupportedException(); } ``` The problem is [`SqlDataReader` never overrides this](https://github.com/dotnet/corefx/blob/84d5d7e278249a8c3682801a05ff505cd489ebb1/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlDataReader.cs). For comparison, here's reference source for .NET 4.x [where this does happen](https://referencesource.microsoft.com/#System.Data/System/Data/SqlClient/SqlDataReader.cs,1396). In the current state, the result is a `NotSupportedException` when actually calling the method: ``` System.NotSupportedException : Specified method is not supported. Stack Trace: at System.Data.Common.DbDataReader.GetSchemaTable() at System.Data.ProviderBase.SchemaMapping..ctor(DataAdapter adapter, DataSet dataset, DataTable datatable, DataReaderContainer dataReader, Boolean keyInfo, SchemaType schemaType, String sourceTableName, Boolean gettingData, DataColumn parentChapterColumn, Object parentChapterValue) at System.Data.Common.DataAdapter.FillMappingInternal(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 schemaCount, DataColumn parentChapterColumn, Object parentChapterValue) at System.Data.Common.DataAdapter.FillMapping(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 schemaCount, DataColumn parentChapterColumn, Object parentChapterValue) at System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue) at System.Data.Common.DataAdapter.Fill(DataTable[] dataTables, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) at System.Data.DataTable.Load(IDataReader reader, LoadOption loadOption, FillErrorEventHandler errorHandler) at System.Data.DataTable.Load(IDataReader reader) ``` Note that this wasn't calling it directly, it was trying to use `DataTable` much further away. So there's quite a few places this is used. I think this was just an oversight after `DataTable` and truckloads of other things were brought back for `netstandard2.0`. Can we please get this in so it's usable? Past issues for context on more usages (for prioritization): - #1039 - #3423 Related concern: this isn't listed in #17126 because it compiles and doesn't have a `PlatformNotSupportedException`, but it's obviously missing. I think we need a separate API call for ADO.NET for things that aren't overridden in CoreFX, that's the superset of items we need to narrow down and fill the gaps on. Not everything should be overridden, but that's likely the easiest list to generate and quickly narrow down. +19749 area-System.Data Scan SqlClient for missing overrides and interface implementations We got 2 reports on .NET Core 2.0 Preview 1 which point to a class of problems we missed: * #19712 - Missing interface implementation `System.Data.SqlClient.SqlParameter : IDbDataParameter` (fixed in PR #19734) (reported by @NickCraver) * #19748 - Missing override `System.Data.SqlClient.SqlDataReader.GetSchemaTable` (reported by @NickCraver) * #19651 & #19673 - Missing override `System.Data.SqlClient.SqlClientFactory.CreateDataAdapter` (fixed in PR #19682 by @justinvp) (reported by @RickStrahl & @FransBouma) I think we need to boost our compat tooling, identify all missing overrides and interface (re)implementations and review all instances. We should probably think deeply if we are missing any other problem classes - we had a list of things we didn't scan for, so maybe we should review it carefully again? (I remember I asked about the overrides, but didn't dig deeper into it) cc @danmosemsft @stephentoub @Petermarcu +19750 area-System.IO Deactivating System.IO.FileSystem.AccessControl tests on uap/uapaot TargetGroup=uap/uapaot > Access Control List (ACL) APIs are part of resource management on Windows and are not supported on this platform. Deactivating tests. https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170513.02/workItem/System.IO.FileSystem.AccessControl.Tests +19751 area-System.IO Fixing uap/uapaot test issues in System.IO.Compression.ZipFile Fixes two System.IO.Compression.ZipFile tempdir issues. Using temppath instead of directly reading from execution location. https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170513.02/workItem/System.IO.Compression.ZipFile.Tests +19752 area-System.IO Fixing uap/uapaot test issues in System.IO.FileSystem.DriveInfo Changes validation of certain properties when in AppContainer. Fixes: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170513.02/workItem/System.IO.FileSystem.DriveInfo.Tests +19753 area-System.Net HttpWebRequest.Host throw new PlatformNotSupportedException() "Hi, HttpWebRequest.Host throw new PlatformNotSupportedException() Why ? Limitation ? Host is usefull to test a web farm. We use server IP to connect and Host to define the web site to test. ```C# HttpWebRequest request = HttpWebRequest.CreateHttp(""https://X.X.X.X""); request.UserAgent = ""Mozilla/5.0 (compatible; )""; request.Timeout = 10000; request.Host = uri.Host; ```" +19754 area-System.Net UnknownHeaders_Success HttpListener test always hangs for me locally on Windows It apparently passes in CI, but every run for me hangs. The test sends 1000 custom headers to the server and validates they were all received: when I change the number to 998 or less, it passes quickly, but when it's 999 or greater, it hangs. It runs successfully in all cases on netfx. +19755 area-System.Net Fix hang in HttpListener test - Fix hang in test that occurs when the client receives back a 400 Bad Request such that the server task never completes - Split the test into ones with a small and large number of headers, and disable the latter with ActiveIssue https://github.com/dotnet/corefx/issues/19754 cc: @Priya91, @hughbe, @ViktorHofer +19757 area-System.Net Fix several GetClientCertificate tests for the managed implementation of HttpListener Contributes to #18128 @stephentoub @Priya91 @ViktorHofer +19758 area-Meta Fix a bunch of random test failures on ILC - PlatformDetection - GetEnvironmentVariable() still returns null on ILC - but Environment.GetSpecialFolder() is fully functional (and it's a preferred idiom.) - Other stuff is self-explanatory. +19759 area-Meta Enable most corefx tests for Bash on Windows Many corefx tests are skipped when running on Bash on Windows. As of Win10 Creators Update, most of these skipped tests now pass, so they can now be enabled. +19760 area-System.IO Fix 180 uap/uapaot tests in System.IO.MemoryMappedFiles.Tests MemoryMappedFileAccess.ReadExecute or MemoryMappedFileAccess.ReadWriteExecute isn't permitted inside an AppContainer. Fixes 180 tests here: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170515.01/workItem/System.IO.MemoryMappedFiles.Tests +19761 area-System.Net Add tests for HttpListenerContext.AcceptWebSocketAsync and fix the managed implementation First commit fixes duplicate code and adds a missing EditorBrowsable attribute to a method Second commit cleans up platform independent code for validating the arguments to AcceptWebSocketAsync in preparation for fixing the managed implementation Third commit adds a bunch of tests for functionality related to this method (they passed before this PR). It then fixes the tests for the managed implementation. Previously almost all of these tests failed with either debug assertitions, incorrect exceptions thrown or no exception thrown. Contributes to #18128 @stephentoub @priya91 @viktorhofer +19762 area-System.Runtime "Tests under: System.Reflection.Tests.AssemblyTests failed with ""System.TypeInitializationException""" Opened on behalf of @Jiayili1 The test `System.Reflection.Tests.AssemblyTests/AssemblyLoadFromBytes` has failed. System.TypeInitializationException : The type initializer for 'System.Reflection.Tests.AssemblyTests' threw an exception.\r ---- System.UnauthorizedAccessException : Access to the path 'C:\\dotnetbuild\\work\\6c8c89ca-0ac6-4877-98bf-ada297eaef14\\Work\\b2e4e6b9-cf66-4e4a-8383-2a5fe6a90460\\Unzip\\TestAssembly' is denied. Stack Trace: at System.Reflection.Tests.AssemblyTests.AssemblyLoadFromBytes() ----- Inner Stack Trace ----- at System.IO.Win32FileSystem.CreateDirectory(String fullPath) at System.IO.Directory.CreateDirectory(String path) at System.Reflection.Tests.AssemblyTests..cctor() Build : Master - 20170515.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170515.01/workItem/System.Runtime.Tests/analysis/xunit/System.Reflection.Tests.AssemblyTests~2FAssemblyLoadFromBytes +19763 area-System.IO "Test: System.IO.Tests.DirectoryInfo_Create/RootPath failed with ""System.IO.DirectoryNotFoundException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.DirectoryInfo_Create/RootPath` has failed. System.IO.DirectoryNotFoundException : Could not find a part of the path 'C:\\'. Stack Trace: at System.IO.Win32FileSystem.CreateDirectory(String fullPath) at System.IO.Tests.DirectoryInfo_Create.Create(String path) at System.IO.Tests.Directory_CreateDirectory.RootPath() Build : Master - 20170515.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170515.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.DirectoryInfo_Create~2FRootPath +19764 area-System.Security "Test: System.Security.Claims.ClaimTests/Claim_SerializeDeserialize_Roundtrip failed with ""Xunit.Sdk.NullException""" "Opened on behalf of @Jiayili1 The test `System.Security.Claims.ClaimTests/Claim_SerializeDeserialize_Roundtrip` has failed. Assert.Null() Failure\r Expected: (null)\r Actual: ClaimsIdentity { Actor = null, AuthenticationType = \""someAuthType\"", BootstrapContext = null, Claims = [], IsAuthenticated = True, ... } Stack Trace: at System.Security.Claims.ClaimTests.Claim_SerializeDeserialize_Roundtrip() Build : Master - 20170515.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170515.01/workItem/System.Security.Claims.Tests/analysis/xunit/System.Security.Claims.ClaimTests~2FClaim_SerializeDeserialize_Roundtrip" +19765 area-System.Runtime ConditionalWeakTable causes a memory leak if one of their values references the table Hi, I found an odd behavior of `System.Runtime.CompilerServices.ConditionalWeakTable` in both .NET Core and .NET Framework which looks like a bug to me: If you create multiple instances of the `ConditionalWeakTable` and store a key-value pairs in them, where the key stays alive and the value contains a reference to the `ConditionalWeakTable`, the values are not garbage-collected after they (and the `ConditionalWeakTable`s) are no longer referenced. For example, create a .NET Core Console application with the following code: ```c# using System; using System.Runtime.CompilerServices; namespace ConsoleApp { class Program { static void Main(string[] args) { object key = new object(); while (true) { var table = new ConditionalWeakTable>(); table.Add(key, new Tuple(table, new byte[1000000])); GC.Collect(); } } } } ``` Expected behavior: The memory consumption of the program should stay in the same area, because when a new `ConditionalWeakTable` instance is created, there are no more references to the previous `ConditionalWeakTable` and its `Tuple` value, so they should be able to be reclaimed by the Garbage Collector. Actual behavior: The memory consumption rises rapidly (4 GB after some seconds) until an `OutOfMemoryException` is thrown, as the byte arrays are not reclaimed by the garbage collector. However, if you remove the reference to the table by replacing `table.Add(...)` with `table.Add(key, new Tuple(null, new byte[1000000]))`, the problem disappears. If the algorithm cannot be implemented such that it can detect that there are no more references to the table and its values, I think the `ConditionalWeakTable` should implement a `Dispose()` method that allows to clear all key-value-pairs. The behavior is the same for .NET Core (.NETCoreAPP 1.1) and .NET Framework 4.6.2. Thanks! +19767 area-Infrastructure The plugin hasn't been performed correctly: Problem on deletion failed in ci CI tests pass, but plugin fails to report results [xUnit] [ERROR] - The plugin hasn't been performed correctly: Problem on deletion detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_osx_debug/47/consoleFull#-7738886783554902-aff0-4799-9e92-0ada24ce2a06 +19768 area-System.Net System.Net.Http.WinHttpException: %1 I use httpclient to send http request,When I use this method ReadAsStringAsync to read content , this exception occurs. the netstandard version is netstandard1.3; My system is window 10 Professional; this is the code: `Var responseMessage = await HttpClient.SendAsync (Request, HttpCompletionOption.ResponseHeadersRead, CancellationToken) .ConfigureAwait (false); var content = await responseMessage.Content.ReadAsStringAsync(); ` - The following is the exception stack information ` System.IO.IOException : The read operation failed, see inner exception. at FeiniuBus.Runtime.HttpWebRequestMessage.d__21.MoveNext() in D:\work\feiniubus-sdk-net\src\FeiniuBusSDK.Core\Runtime\HttpRequestMessageFactory.cs:line 230 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at FeiniuBus.Runtime.Internal.HttpHandler`1.d__3`1.MoveNext() in D:\work\feiniubus-sdk-net\src\FeiniuBusSDK.Core\Runtime\Internal\HttpHandler.cs:line 54 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at FeiniuBus.Runtime.Internal.Unmarshaller.d__2`1.MoveNext() in D:\work\feiniubus-sdk-net\src\FeiniuBusSDK.Core\Runtime\Internal\Unmarshaller.cs:line 18 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at FeiniuBus.Runtime.Internal.ErrorHandler.d__4`1.MoveNext() in D:\work\feiniubus-sdk-net\src\FeiniuBusSDK.Core\Runtime\Internal\ErrorHandler.cs:line 25 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at FeiniuBus.Runtime.Internal.ErrorHandler.d__4`1.MoveNext() in D:\work\feiniubus-sdk-net\src\FeiniuBusSDK.Core\Runtime\Internal\ErrorHandler.cs:line 32 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at FeiniuBusSDK.Core.Runtime.Internal.CredentialsRetriever.d__4`1.MoveNext() in D:\work\feiniubus-sdk-net\src\FeiniuBusSDK.Core\Runtime\Internal\CredentialsRetriever.cs:line 23 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at FeiniuBusSDK.Tests.DispatchTests.d__5.MoveNext() in D:\work\feiniubus-sdk-net\test\FeiniuBusSDK.Tests\DispatchTests.cs:line 83 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- ` +19769 area-System.Numerics Add indexer to MatrixXxX es (preferably ref returning) "I would like to be able to query any value of matrix using indexer Like: ```c# Matrix4x4 m=.... var firstRowColumn=m[0,0]; //equivalent to m.M11 ``` This is mainly convenience, but become big one if one want to get matrix property ""randomly"" e.g. in `for` loop. In this case one must write pretty big `if` `else` block or `switch`. `ref` might be useful to be able to send matrixes to graphic libraries efficiently and conveniently. Next use case is migrating between vector libraries that support indexers (like `OpenTk`) Note: `ref` returning indexer shouldnt be problem there because omitting `ref` when calling means automatic dereference so in theory one could just change `using` and recomplie without problems (assuming no issues with world coordinates etc.) Since `ref` and `out` alternative methods got postponed, i think patch with them is perfect to include ref indexers as well unless you want to backport them to ealier versions of c# than 7 EDIT: If you decide to implement ref indexer without changing internal representation, i think it could be implemented using `Unsafe.Add`. Something along these lines: ```c# public ref float this[int row,int col]{ get{ if(row<0 || row>3 || col<0 || col>3) throw new IndexOutOfRangeException(); var index=0; if(row is 1) index=4; else if(row is 2) index=8; else if(row is 3) index=12; index+=col; return ref Unsafe.Add(ref this.M11,index ); } } ``` EDIT 2: With spans available, you could implement indexers for retrieving only row or only column (return 4-elements span which is constructed using `DangerousCreate(this, ref this.MdesiredRow0, 4)`, Column is more tricky and probably would be implemented as tuple or float[4] since column arent layed out in continguous blocks, unless you add 'jumping' every X elements support to spans. Or just return span over whole matrix and force users to deal with 'jumping') " +19771 area-System.Data Port DatasetExtensions to .NET Core Anyones knows if .AsEnumerable() propertie will be available for datatable on .net core +19773 area-System.Runtime Unload assembly from runtime Hello, Now that AppDomains have been removed from .NET Core, how does one unload an assembly from memory once it has been loaded? AssemblyLoadContext has an Unloading event but no way to programmatically trigger the unload of an assembly +19781 area-Infrastructure Remove sources from our symbol packages We've gone to a lot of effort to preserve building symbols packages including source in those packages. Certainly we need to flow symbols to core-setup in our transport packages so that we can produce symbols zips for shared framework, that is not in question. The things that are in question are the following: 1. Do we need symbols.nupkgs at all? 2. If we do produce them, do they need to contain source files? @dagood added this infrastructure in 1.0 and we've done work to keep it working in 2.0 with the flattened packages. /cc @dagood @weshaggard @gkhanna79 @chcosta +19782 area-System.Threading Enable some threading overlapped tests on Unix - Depends on https://github.com/dotnet/coreclr/pull/11613 - Tests for https://github.com/dotnet/corefx/issues/19785 +19783 area-System.Net UWP Compability with .NET Standard System.Net.Security @taoyouh commented on [Sat May 13 2017](https://github.com/dotnet/standard/issues/343) Though System.Net.Security.SslStream is not in the .Net Standard 1.4, but the NuGet package System.Net.Security supports .NET Standard 1.3. So it's supposed to support Universal Windows Platform 10.0. I installed the package to a UWP project targeting 10.0.15063 and try to reference it, only getting the following exception: > System.IO.FileNotFoundException:“Could not load file or assembly 'System.Net.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. 系统找不到指定的文件。(System cannot find the file)” The referencing code is very simple: ` Stream str = new MemoryStream(); SslStream stream = new SslStream(str);` +19784 area-System.Runtime FileVersionInfo.InternalName on Unix. On Unix, FileVersionInfo.GetVersionInfo() unconditionally sets the FileVersionInfo.InternalName property to be the same as a FileVersionInfo.OriginalFileName property. On Windows. these are two distinct properties that can be set individually. +19785 area-System.Threading ThreadPoolBoundHandle.BindHandle should not be supported on Unix ThreadPool.BindHandle always returns false on Unix, so ThreadPoolBoundHandle.BindHandle would fail the assertion. It should throw PNSE. +19786 area-System.Threading Enable some threading overlapped tests on Unix - Port of https://github.com/dotnet/corefx/pull/19782 - Depends on https://github.com/dotnet/coreclr/pull/11616 - Tests for and closes https://github.com/dotnet/corefx/issues/19785 +19787 area-System.IO Port some WindowsRuntime tests Port tests for converting to WinRT streams. Change from MSTest, add usings, match style guidelines. UWP specific, test only changes. +19788 area-System.Runtime Add System.Runtime.CompilerServices.RuntimeFeature.PortablePdb "Currently there is no support for Portable PDBs in Desktop FX. We are finishing support in stack traces for portable and embedded PDBs for 4.7.1. Features that generate code at runtime (such as scripting) would benefit from being able to detect whether the runtime supports Portable PDBs or not, as they could emit Portable PDBs instead of Windows PDBs. Emitting Portable PDBs has perf benefits. In order to make the feature detection consistent across all platforms we propose to add the following APIs to netstandard as well. # Proposed API ```C# namespace System.Runtime.CompilerServices { public static class RuntimeFeature { public const string PortablePdb = nameof(PortablePdb); // returns true for feature == ""PortablePdb"" public static bool IsSupported(string feature); } } // Usage if (RuntimeFeature.IsSupported(""PortablePdb"") { // Emit code with Portable debug info } ```" +19789 area-System.Reflection Need Reflection api to enumerate type-forwards in an assembly. **Proposed Api** ```c# class Assembly { public virtual Type[] GetForwardedTypes() { throw new NotImplemented.ByDesign; } } ``` Gets the Types exposed by this assembly but defined in another assembly. If one or more Types fail to load (perhaps because the forwardee assembly cannot be found), this api throws a **ReflectionTypeLoadException**. The **ReflectionTypeLoadException**'s **Types** and **LoaderExceptions** property can be queried to recover the Types that did successfully load. (Works similarly to **Assembly.GetTypes()** (https://msdn.microsoft.com/en-us/library/system.reflection.assembly.gettypes(v=vs.110).aspx)) **Why is the api signature so retro?** This is a companion api to **Assembly.GetTypes()** and follows its form. We could also have used **Assembly.DefinedTypes** as a template but that form has two problems: - That api was introduced for the aborted .Net Core 1.0 refactoring and returns **TypeInfo** rather than **Type**. **TypeInfo** is now a historical curiosity and an unnecessary distraction. **Assembly.GetTypes()** has the incumbency advantage. - The **IEnumerable** form is intended to imply lazy list generation which is at odds with the **ReflectionTypeLoadException** mechanism of salvaging partial results in the event of type load exceptions. The docs are silent as to whether you can recover partial results with this form. **Use case** This was always a functionality hole in Reflection and in this world of refactoring-happy .Net Core, type forwarders are everywhere, even in reference assemblies. We've already had one issue raised about this (https://github.com/dotnet/corefx/issues/19713) as it used to be possible to enumerate System.Xml's surface area with Reflection but no longer. **Nested Types** The returned array will include any nested types within returned types whose visibility (and that of its containing nested types) is **NestedPublic**. This reflects the ECMA-335 rule that the ExportedTypes table can only contain types that are **Public** or **NestedPublic**. Nested types will be returned whether or not the ExportedType table contains a separate entry for the nested type (as the presence or absence of it has no effect on whether the nested type can be resolved through that assembly.) **AssemblyBuilder** AssemblyBuilder does not override GetTypes() and there's no burning reason to override GetForwardedTypes() either. It's not like you can add type forwards using RefEmit today. +19791 area-System.Net Fix SendAsync on Unix with multiple buffers In the implementation of Send{To}Async for a list of array segments, we try to do the send operation synchronously, and if it doesn't send the full amount (e.g. because it does one send that's less than the full amount and then tries to complete it but gets an EAGAIN), we then fall back to creating a SendOperation that stores the data to try again later with the remainder. But the number of bytes sent in that initial set of operations wasn't being copied into that SendOperation data structure, so although the data had been sent and although we were correctly updating the pointers to what to send next and when we were done sending, the actual total number of BytesTransferred at the end of the operation would be missing the sum from that initial successful set of synchronous sends prior to the EAGAIN. The fix is simply to store the initial bytesSent into BytesTransferred, as is done for every other send operation on SocketAsyncContext. I also added an explicit test for this, rather than relying on modifying our perf tests to catch it. Fixes https://github.com/dotnet/corefx/issues/19307 cc: @steveharter, @Priya91, @davidsh, @cipop, @geoffkizer +19792 area-Infrastructure Add Gentoo Linux and Buildroot RIDs Currently Gentoo Linux and Buildroot (a system to build embedded Linux images) is not in the list of RIDs. These two commits adds them. Gentoo is using a rolling release cycle, so there is no version number. For more info on Gentoo, please see the discussion on this pull request on core-setup: https://github.com/dotnet/core-setup/pull/2381 +19793 area-System.Net "UseCallback_BadCertificate_ExpectedPolicyErrors failing in CI with ""a security error occurred""" "I thought we had an issue for this but I can't find it, so I'm opening a new one. Please consolidate as necessary... e.g. https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_debug_prtest/72/consoleText https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win7_debug_prtest/7/consoleText ``` System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.UseCallback_BadCertificate_ExpectedPolicyErrors(url: \""https://wrong.host.badssl.com/\"", expectedErrors: RemoteCertificateNameMismatch) [FAIL] System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : A security error occurred Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() D:\j\workspace\outerloop_net---92aeb271\src\System.Net.Http\src\System\Net\Http\HttpClient.cs(462,0): at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() D:\j\workspace\outerloop_net---92aeb271\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.ServerCertificates.cs(234,0): at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__12.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- D:\j\workspace\outerloop_net---92aeb271\src\System.Runtime.Extensions\src\System\Environment.cs(163,0): at System.Environment.get_StackTrace() D:\j\workspace\outerloop_net---92aeb271\src\Common\src\System\Runtime\ExceptionServices\ExceptionStackTrace.cs(23,0): at System.Runtime.ExceptionServices.ExceptionStackTrace.AddCurrentStack(Exception exception) D:\j\workspace\outerloop_net---92aeb271\src\Common\src\System\Net\Http\WinHttpException.cs(51,0): at System.Net.Http.WinHttpException.CreateExceptionUsingError(Int32 error) D:\j\workspace\outerloop_net---92aeb271\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs(308,0): at System.Net.Http.WinHttpRequestCallback.OnRequestError(WinHttpRequestState state, WINHTTP_ASYNC_RESULT asyncResult) D:\j\workspace\outerloop_net---92aeb271\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs(104,0): at System.Net.Http.WinHttpRequestCallback.RequestCallback(IntPtr handle, WinHttpRequestState state, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) D:\j\workspace\outerloop_net---92aeb271\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs(47,0): at System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) --- End of stack trace from AddCurrentStack --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() D:\j\workspace\outerloop_net---92aeb271\src\Common\src\System\Threading\Tasks\RendezvousAwaitable.cs(62,0): at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() D:\j\workspace\outerloop_net---92aeb271\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs(856,0): at System.Net.Http.WinHttpHandler.d__105.MoveNext() ``` " +19794 area-Infrastructure New Contributor - Build-Tests Fails on Clean Clone "Hey Guys, I've decided to help out on the dead code issue (#17905), I have followed the repo's instructions on forking; cloning and building the root repository, and I'm finding test errors before I even start on changes required for #17905. Here are the errors I have received when running **build-test.cmd** in root: Build FAILED. ""c:\dotnet\corefx\src\tests.builds"" (default target) (1) -> ""c:\dotnet\corefx\src\System.Net.NameResolution\tests\FunctionalTests\System.Net.NameResolution.Functional.Tests.csproj"" (Test target) (88:3) -> (RunTestsForProject target) -> c:\dotnet\corefx\Tools\tests.targets(338,5): warning : System.Net.NameResolution.Functional.Tests Total: 53, Errors: 0, Failed: 9, Skipped: 0, Time: 17.563s [c:\dotnet\corefx\src\System.Net.NameResolution\tests\FunctionalTests\System.Net.NameResolution.Functional.Tests.csproj] c:\dotnet\corefx\Tools\tests.targets(338,5): warning MSB3073: The command ""c:\dotnet\corefx\bin/Windows_NT.AnyCPU.Debug/System.Net.NameResolution.Functional.Tests/netstandard//RunTests.cmd c:\dotnet\corefx\bin/testhost/netcoreapp-Windows_NT-Debug-x64/"" exited with code 1. [c:\dotnet\corefx\src\System.Net.NameResolution\tests\FunctionalTests\System.Net.NameResolution.Functional.Tests.csproj] ""c:\dotnet\corefx\src\tests.builds"" (default target) (1) -> ""c:\dotnet\corefx\src\System.Net.Security\tests\FunctionalTests\System.Net.Security.Tests.csproj"" (Test target) (99:3) -> c:\dotnet\corefx\Tools\tests.targets(338,5): warning : System.Net.Security.Tests Total: 138, Errors: 0, Failed: 3, Skipped: 5, Time: 5.276s [c:\dotnet\corefx\src\System.Net.Security\tests\FunctionalTests\System.Net.Security.Tests.csproj] c:\dotnet\corefx\Tools\tests.targets(338,5): warning MSB3073: The command ""c:\dotnet\corefx\bin/Windows_NT.AnyCPU.Debug/System.Net.Security.Tests/netcoreapp//RunTests.cmd c:\dotnet\corefx\bin/testhost/netcoreapp-Windows_NT-Debug-x64/"" exited with code 1. [c:\dotnet\corefx\src\System.Net.Security\tests\FunctionalTests\System.Net.Security.Tests.csproj] ""c:\dotnet\corefx\src\tests.builds"" (default target) (1) -> ""c:\dotnet\corefx\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj"" (Test target) (84:3) -> c:\dotnet\corefx\Tools\tests.targets(338,5): warning : System.Net.Http.Functional.Tests Total: 311, Errors: 0, Failed: 1, Skipped: 11, Time: 3.061s [c:\dotnet\corefx\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] c:\dotnet\corefx\Tools\tests.targets(338,5): warning MSB3073: The command ""c:\dotnet\corefx\bin/Windows_NT.AnyCPU.Debug/System.Net.Http.Functional.Tests/netstandard//RunTests.cmd c:\dotnet\corefx\bin/testhost/netcoreapp-Windows_NT-Debug-x64/"" exited with code 1. [c:\dotnet\corefx\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] ""c:\dotnet\corefx\src\tests.builds"" (default target) (1) -> ""c:\dotnet\corefx\src\System.Security.Principal.Windows\tests\System.Security.Principal.Windows.Tests.csproj"" (Test target) (201:3) -> c:\dotnet\corefx\Tools\tests.targets(338,5): warning : System.Security.Principal.Windows.Tests Total: 10, Errors: 0, Failed: 2, Skipped: 1, Time: 0.577s [c:\dotnet\corefx\src\System.Security.Principal.Windows\tests\System.Security.Principal.Windows.Tests.csproj] c:\dotnet\corefx\Tools\tests.targets(338,5): warning MSB3073: The command ""c:\dotnet\corefx\bin/Windows_NT.AnyCPU.Debug/System.Security.Principal.Windows.Tests/netstandard//RunTests.cmd c:\dotnet\corefx\bin/testhost/netcoreapp-Windows_NT-Debug-x64/"" exited with code 1. [c:\dotnet\corefx\src\System.Security.Principal.Windows\tests\System.Security.Principal.Windows.Tests.csproj] ""c:\dotnet\corefx\src\tests.builds"" (default target) (1) -> ""c:\dotnet\corefx\src\System.Net.NameResolution\tests\FunctionalTests\System.Net.NameResolution.Functional.Tests.csproj"" (Test target) (88:3) -> (RunTestsForProject target) -> c:\dotnet\corefx\Tools\tests.targets(346,5): error : One or more tests failed while running tests from 'System.Net.NameResolution.Functional.Tests' please check c:\dotnet\corefx\bin/Windows_NT.AnyCPU.Debug/System.Net.NameResolution.Functional.Tests/netstandard/testResults.xml for details! [c:\dotnet\corefx\src\System.Net.NameResolution\tests\FunctionalTests\System.Net.NameResolution.Functional.Tests.csproj] ""c:\dotnet\corefx\src\tests.builds"" (default target) (1) -> ""c:\dotnet\corefx\src\System.Net.Security\tests\FunctionalTests\System.Net.Security.Tests.csproj"" (Test target) (99:3) -> c:\dotnet\corefx\Tools\tests.targets(346,5): error : One or more tests failed while running tests from 'System.Net.Security.Tests' please check c:\dotnet\corefx\bin/Windows_NT.AnyCPU.Debug/System.Net.Security.Tests/netcoreapp/testResults.xml for details! [c:\dotnet\corefx\src\System.Net.Security\tests\FunctionalTests\System.Net.Security.Tests.csproj] ""c:\dotnet\corefx\src\tests.builds"" (default target) (1) -> ""c:\dotnet\corefx\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj"" (Test target) (84:3) -> c:\dotnet\corefx\Tools\tests.targets(346,5): error : One or more tests failed while running tests from 'System.Net.Http.Functional.Tests' please check c:\dotnet\corefx\bin/Windows_NT.AnyCPU.Debug/System.Net.Http.Functional.Tests/netstandard/testResults.xml for details! [c:\dotnet\corefx\src\System.Net.Http\tests\FunctionalTests\System.Net.Http.Functional.Tests.csproj] ""c:\dotnet\corefx\src\tests.builds"" (default target) (1) -> ""c:\dotnet\corefx\src\System.Security.Principal.Windows\tests\System.Security.Principal.Windows.Tests.csproj"" (Test target) (201:3) -> c:\dotnet\corefx\Tools\tests.targets(346,5): error : One or more tests failed while running tests from 'System.Security.Principal.Windows.Tests' please check c:\dotnet\corefx\bin/Windows_NT.AnyCPU.Debug/System.Security.Principal.Windows.Tests/netstandard/testResults.xml for details! [c:\dotnet\corefx\src\System.Security.Principal.Windows\tests\System.Security.Principal.Windows.Tests.csproj] ""c:\dotnet\corefx\src\tests.builds"" (default target) (1) -> (TestAllProjects target) -> c:\dotnet\corefx\dir.traversal.targets(77,5): error : (No message specified) [c:\dotnet\corefx\src\tests.builds] 8 Warning(s) 5 Error(s) ### Steps I followed 1. Forked and checked out repository (15th May) https://github.com/dotnet/corefx/wiki/Checking-out-the-code-repository > c:\dotnet>git clone https://github.com/garfbradaz/corefx.git > Cloning into 'corefx'... > remote: Counting objects: 562807, done. > remote: Compressing objects: 100% (3/3), done. > remote: Total 562807 (delta 0), reused 0 (delta 0), pack-reused 562804 > Receiving objects: 100% (562807/562807), 140.81 MiB | 6.11 MiB/s, done. > Resolving deltas: 100% (440613/440613), done. > Checking out files: 100% (15071/15071), done. 2. Ran the following (https://github.com/dotnet/corefx/wiki/Build-and-run-tests): a) sync b) build c) build-test ### My Tin I dont know how much information you need from me so here is the **systeminfo** > Host Name: WL0093 > OS Name: Microsoft Windows 10 Enterprise N > OS Version: 10.0.15063 N/A Build 15063 > OS Manufacturer: Microsoft Corporation > OS Configuration: Member Workstation > OS Build Type: Multiprocessor Free > Registered Owner: N/A > Registered Organization: N/A > Product ID: 00330-00180-00000-AA640 > Original Install Date: 16/04/2017, 12:46:56 > System Boot Time: 12/05/2017, 14:44:36 > System Manufacturer: HP > System Model: HP EliteBook Folio 1040 G3 > System Type: x64-based PC > Processor(s): 1 Processor(s) Installed. > [01]: Intel64 Family 6 Model 78 Stepping 3 GenuineIntel ~2607 Mhz > BIOS Version: HP N83 Ver. 01.08, 02/09/2016 > Windows Directory: C:\WINDOWS > System Directory: C:\WINDOWS\system32 > Boot Device: \Device\HarddiskVolume2 > System Locale: en-gb;English (United Kingdom) > Input Locale: en-gb;English (United Kingdom) > Time Zone: (UTC+00:00) Dublin, Edinburgh, Lisbon, London > Total Physical Memory: 8,073 MB > Available Physical Memory: 2,478 MB > Virtual Memory: Max Size: 15,753 MB > Virtual Memory: Available: 7,217 MB > Virtual Memory: In Use: 8,536 MB > Page File Location(s): C:\pagefile.sys > Domain: hachette.hluk.net > Logon Server: \\WOT01ADS-HDC01 > Hotfix(s): 2 Hotfix(s) Installed. > [01]: KB4018483 > [02]: KB4015583 > Network Card(s): 3 NIC(s) Installed. > [01]: Intel(R) Ethernet Connection I219-LM > Connection Name: Ethernet > Status: Media disconnected > [02]: Intel(R) Dual Band Wireless-AC 8260 > Connection Name: WiFi > DHCP Enabled: Yes > DHCP Server: 192.168.1.254 > IP address(es) > [01]: 192.168.1.153 > [02]: fe80::880e:5551:fa2c:5eff > [03]: Bluetooth Device (Personal Area Network) > Connection Name: Bluetooth Network Connection > Status: Media disconnected > Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed. ### Test Logs mentioned in the error The following are links to the **testResults.xml** for each of the **ERROR** tests mentioned above. [c:\dotnet\corefx\bin/Windows_NT.AnyCPU.Debug/System.Net.NameResolution.Functional.Tests/netstandard/testResults.xml](https://gist.github.com/garfbradaz/a52df93b8687798103337cc79714a2d1) [c:\dotnet\corefx\bin/Windows_NT.AnyCPU.Debug/System.Net.Security.Tests/netcoreapp/testResults.xml](https://gist.github.com/garfbradaz/3c7f4d4b75bc0508cfc6cd81af962d4e) [c:\dotnet\corefx\bin/Windows_NT.AnyCPU.Debug/System.Net.Http.Functional.Tests/netstandard/testResults.xm](https://gist.github.com/garfbradaz/690c670d667a34ed9df6ddcc0ebbf972) [c:\dotnet\corefx\bin/Windows_NT.AnyCPU.Debug/System.Security.Principal.Windows.Tests/netstandard/testResults.xml](https://gist.github.com/garfbradaz/bf278259d1c633a6953fe4bf827663d1) I hope this is enough info? I dont mind looking into the test failures, BUT should a clean fork/clone be running into issues when **build-test** is run for the 1st time? @karelz : You suggested in gitter i tag you in the issue :) " +19797 area-System.Data SqlConnection.GetSchema is missing override in SqlClient The SqlConnection.GetSchema() API implementation is missing from SqlConnection +19799 area-System.Runtime Behavior of arraySegment.ToArray() has changed _From @jodavis on May 15, 2017 20:25_ I was using `Enumerable.ToArray(this IEnumerable)` on an ArraySegment, which calls `ArraySegment.GetEnumerator()`. This did not throw any exception when the underlying array is null, so `ToArray()` would return an empty array. Now that ArraySegment has its own `ToArray()` function, my code is calling that one (with no code change on my part). `ArraySegment.ToArray()` throws an exception when called with a null underlying array. I can work around this, but is this considered a breaking change? _Copied from original issue: dotnet/corert#3619_ +19803 area-System.Xml Change DefaultResolver in XmlReaderSettings to XmlUrlResolver Addresses a behavior difference between Core and Desktop. On Desktop, default resolver for XmlReaderSettings is `XmlUrlResolver`, whereas in Core it is `SystemPathResolver`. This difference makes Core not allow string uri to be resolved in `XmlReader.Create` method, while Desktop does. cc: @danmosemsft @krwq @tarekgh +19804 area-Serialization XmlSerializer Tests Failed to Build on UWP XmlSerializer Tests failed to build on UWP. +19805 area-Serialization Fix the Build of XmlSerializer Tests on UWP The PR addressed the following issues, 1. Fixed the build of XmlSerializer tests on UWP. 2. Fixed a bug that caused pre-generated XmlSerializers being used in reflection only mode. 3. Fixed the incorrect usage of uap/uapaot in Configrations.props across all serialization test projects. Fix #19804. +19806 area-System.Xml XmlDownloadManager HttpRequest in Core vs. WebRequest in Full Framework "XmlDownloadManager.GetNonFileStream uses HttpRequest on Core, whereas it uses WebRequest in Desktop. This change was originally made at time of porting Xml because WebRequest was not available then. This causes cases like `XmlReader.Create(""ftp://www.bing.com"")` not be acceptable and hit the following error: `System.Net.Http.HttpRequestException: Only 'http' and 'https' schemes are allowed.` The method needs to change to match Desktop implementation. " +19807 area-System.Data Replace MANAGED_SNI flag in SQL tests with a reflection-based check of UseManagedSNI Also added skip messages to LocalDBTest's ConditionalFacts Edit: Skip message already gets printed for ConditionalFacts. Removed the LocalDBTest changes +19808 area-System.Data Move DbConnectionOptions.cs to Common Just like https://github.com/dotnet/corefx/pull/18500 this PR moves common code from three similar DbConnectionOptions.cs copies (SqlClient, Odbc, Common) to [src/Common/src/System/Data/Common](https://github.com/dotnet/corefx/tree/master/src/Common/src/System/Data/Common) folder. I didn't remove any members but I had to rename some as these files use different code styles (internal fields) and Odbc and Common used to use `Hashtable `instead of `Dictionary` for 'synonyms' (like SqlClient does). It's needed to make mono happy. Probably would be better to just move DbConnectionOptions.cs to Common without splitting it to provider-specific pieces - they are not too big and the ILLINK will remove unused code anyway. +19809 area-Serialization [UWP] XElement Tests Failed "The following tests failed on UWP. The tests failed in both CodeGen mode and ReflectionOnly mode. ``` XmlSerializerTests.Xml_WithXElement XmlSerializerTests.Xml_XElementAsRoot XmlSerializerTests.Xml_WithArrayOfXElement XmlSerializerTests.Xml_WithXElementWithNestedXElement XmlSerializerTests.Xml_WithListOfXElement ``` CodeGen callstack ``` (__Canon value, String baseline, Func$1<$XmlSerializer> serializerFactory, Boolean skipStringCompare, $XmlSerializerNamespaces xns) in d:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 4481 at XmlSerializerTests.Xml_WithXElement() in d:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 669 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs:line 400 ----- Inner Stack Trace ----- at System.ActivatorImplementation.CreateInstance(Type type, Boolean nonPublic) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\ActivatorImplementation.cs:line 35 at System.Reflection.Runtime.General.ReflectionCoreCallbacksImplementation.ActivatorCreateInstance(Type type, Boolean nonPublic) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\General\ReflectionCoreCallbacksImplementation.cs:line 165 at Microsoft.Xml.Serialization.GeneratedAssembly.ActivatorHelper.CreateInstance(Type type) in C:\Users\shmao\AppData\Local\Temp\Ilc2020754181\xunit.console.netcore.Sg\System.Xml.XmlSerializer.Generated.cs:line 23114 at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read52_WithXElement(Boolean isNullable, Boolean checkType, String defaultNamespace) in C:\Users\shmao\AppData\Local\Temp\Ilc2020754181\xunit.console.netcore.Sg\System.Xml.XmlSerializer.Generated.cs:line 14720 at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read184_WithXElement(String defaultNamespace) in C:\Users\shmao\AppData\Local\Temp\Ilc2020754181\xunit.console.netcore.Sg\System.Xml.XmlSerializer.Generated.cs:line 8019 at Microsoft.Xml.Serialization.GeneratedAssembly.WithXElementSerializer.Deserialize($XmlSerializationReader reader) in C:\Users\shmao\AppData\Local\Temp\Ilc2020754181\xunit.console.netcore.Sg\System.Xml.XmlSerializer.Generated.cs:line 20881 at System.Xml.Serialization.XmlSerializer.Deserialize($XmlReader xmlReader, String encodingStyle, $XmlDeserializationEvents events) in d:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs:line 641]]> ``` ReflectionOnly callstack, ``` (__Canon value, String baseline, Func$1<$XmlSerializer> serializerFactory, Boolean skipStringCompare, $XmlSerializerNamespaces xns) in D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 4466 at XmlSerializerTests.Xml_WithXElement() in D:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 669 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs:line 400 ----- Inner Stack Trace ----- at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping$catch$0() in D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlReflectionImporter.cs:line 467 at System.Xml.Serialization.XmlReflectionImporter.ImportElement($TypeModel model, $XmlRootAttribute root, String defaultNamespace, $RecursionLimiter limiter) in D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlReflectionImporter.cs:line 266 at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type, $XmlRootAttribute root, String defaultNamespace) in D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlReflectionImporter.cs:line 171 at System.Xml.Serialization.XmlSerializer.SerializeUsingReflection($XmlWriter xmlWriter, Object o, $XmlSerializerNamespaces namespaces, String encodingStyle, String id) in D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs:line 530 at System.Xml.Serialization.XmlSerializer.Serialize($XmlWriter xmlWriter, Object o, $XmlSerializerNamespaces namespaces, String encodingStyle, String id) in D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs:line 502 ----- Inner Stack Trace ----- at System.Xml.Serialization.StructModel.CheckSupportedMember($TypeDesc typeDesc, MemberInfo member, Type type) in D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\Models.cs:line 201 at System.Xml.Serialization.StructModel.GetFieldModel(FieldInfo fieldInfo) in D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\Models.cs:line 216 at System.Xml.Serialization.StructModel.GetFieldModel(MemberInfo memberInfo) in D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\Models.cs:line 180 at System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers($StructMapping mapping, $StructModel model, Boolean openModel, String typeName, $RecursionLimiter limiter) in D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlReflectionImporter.cs:line 845 at System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping($StructModel model, String ns, Boolean openModel, $XmlAttributes a, $RecursionLimiter limiter) in D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlReflectionImporter.cs:line 756 at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping($TypeModel model, String ns, $ImportContext context, String dataType, $XmlAttributes a, Boolean repeats, Boolean openModel, $RecursionLimiter limiter) in D:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlReflectionImporter.cs:line 441 ----- Inner Stack Trace ----- ]]> ```" +19810 area-System.Data MARS async read timeouts in Entity Framework tests with parallel testing enabled When using a managed SNI enabled SqlClient in Entity Framework tests, some tests in EFCore.SqlServer.FunctionalTests can take over a minute to complete when using MARS while XUnit test parallelization is enabled. When using the LongRunning task continuation option in SqlClient async reads, these tests runs go from over a minute to less than 10 seconds. We need to investigate the underlying threading issues that are causing the async reads to get blocked while using MARS. +19811 area-Serialization XmlSerializerTests.Xml_KnownTypesThroughConstructorWithArrayProperties Failed "Test `XmlSerializerTests.Xml_KnownTypesThroughConstructorWithArrayProperties` failed on UWP when using Sg. ``` ``` " +19812 area-System.Xml Change XmlDownloadManager back to use WebRequest Resolves https://github.com/dotnet/corefx/issues/19806. When porting Xml, WebRequest was not available, so HttpRequest was used instead. This PR changes XmlDownloadManager implementation so that it uses WebRequest again. Also modifies tests as needed. cc: @krwq @danmosemsft @tarekgh +19813 area-System.Console System.IO.IOException “The parameter is incorrect” on System_Console!System.ConsolePal+ControlCHandlerRegistrar.Unregister()+0x35 "initial report: https://github.com/dotnet/coreclr/issues/11550 My netcore 1.1 app crash on exit due to following exception. ``` 0:000> .cordll -lp C:\Agent.CoreCLR\_dotnetsdk\1.0.1\shared\Microsoft.NETCore.App\1.1.1 CLR DLL status: Loaded DLL C:\Agent.CoreCLR\_dotnetsdk\1.0.1\shared\Microsoft.NETCore.App\1.1.1\mscordaccore.dll 0:000> !pe Exception object: 0000003b30c759a0 Exception type: System.IO.IOException Message: The parameter is incorrect InnerException: StackTrace (generated): SP IP Function 0000003B4928CE50 00007FFE2BE65935 System_Console!System.ConsolePal+ControlCHandlerRegistrar.Unregister()+0x35 0000003B4928CE90 00007FFE2BE65882 System_Console!System.Console.remove_CancelKeyPress(System.ConsoleCancelEventHandler)+0xc2 0000003B4928CEE0 00007FFE2BE65782 Microsoft_VisualStudio_Services_Agent!Microsoft.VisualStudio.Services.Agent.Terminal.Dispose()+0x42 0000003B4928CF20 00007FFE2B701CCF Agent_Worker!Microsoft.VisualStudio.Services.Agent.Worker.Program+d__1.MoveNext()+0xa7f 0000003B2DF5DD20 00007FFE8ABF4D8F System_Private_CoreLib_ni!System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()+0x1f 0000003B2DF5DD50 00007FFE8ABEDCA6 System_Private_CoreLib_ni!System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)+0x46 0000003B2DF5DD80 00007FFE2B7004A8 Agent_Worker!Microsoft.VisualStudio.Services.Agent.Worker.Program.Main(System.String[])+0x28 StackTraceString: HResult: 80070057 ``` Before the crash, we pinvoke to cancel some child process via the following code. we didn't get any exception trace, and the child process is able to get Ctrl-C and gracefully exit. ```C# private async Task SendCtrlSignal(ConsoleCtrlEvent signal, TimeSpan timeout) { Trace.Info($""Sending {signal} to process {_proc.Id}.""); ConsoleCtrlDelegate ctrlEventHandler = new ConsoleCtrlDelegate(ConsoleCtrlHandler); try { if (!FreeConsole()) { throw new Win32Exception(Marshal.GetLastWin32Error()); } if (!AttachConsole(_proc.Id)) { throw new Win32Exception(Marshal.GetLastWin32Error()); } if (!SetConsoleCtrlHandler(ctrlEventHandler, true)) { throw new Win32Exception(Marshal.GetLastWin32Error()); } if (!GenerateConsoleCtrlEvent(signal, 0)) { throw new Win32Exception(Marshal.GetLastWin32Error()); } Trace.Info($""Successfully send {signal} to process {_proc.Id}.""); Trace.Info($""Waiting for process exit or {timeout.TotalSeconds} seconds after {signal} signal fired.""); var completedTask = await Task.WhenAny(Task.Delay(timeout), _processExitedCompletionSource.Task); if (completedTask == _processExitedCompletionSource.Task) { Trace.Info(""Process exit successfully.""); return true; } else { Trace.Info($""Process did not honor {signal} signal within {timeout.TotalSeconds} seconds.""); return false; } } catch (Exception ex) { Trace.Info($""{signal} signal doesn't fire successfully.""); Trace.Error($""Catch exception during send {signal} event to process {_proc.Id}""); Trace.Error(ex); return false; } finally { FreeConsole(); SetConsoleCtrlHandler(ctrlEventHandler, false); } } private bool ConsoleCtrlHandler(ConsoleCtrlEvent ctrlType) { switch (ctrlType) { case ConsoleCtrlEvent.CTRL_C: Trace.Info($""Ignore Ctrl+C to current process.""); // We return True, so the default Ctrl handler will not take action. return true; case ConsoleCtrlEvent.CTRL_BREAK: Trace.Info($""Ignore Ctrl+Break to current process.""); // We return True, so the default Ctrl handler will not take action. return true; } // If the function handles the control signal, it should return TRUE. // If it returns FALSE, the next handler function in the list of handlers for this process is used. return false; } ``` We currently only see 2 machine hitting this exception so far. 1 win7 machine, 1 server12r2 machine, but on those machine this error is repro 100% at a time. I still have the server12r2 VM around, i can provide access if anyone interested." +19814 area-System.Memory Proposal: List.AsSpan() ## Proposed API Additions ```csharp public class List { public Span AsSpan(); public ReadOnlySpan AsReadOnlySpan(); } ``` ## Sample Usage and Rationale ```csharp var list = new List(); foreach(var b in SomeThing) { list.Add(b); } var span = list.AsSpan(); ``` Arrays are fixed sizes; so creating an array over an unknown sized set involves manual resizing and copying (or upfront over allocation). List already covers this scenario, resizing array behind the scenes. Proposal is to add a method that returns a correctly sized Span window over the List's array. i.e. A non allocating version of `.ToArray()` that's also better as it can be made immutable with ReadOnlySpan. /cc @jkotas @terrajobst @stephentoub @davidfowl +19817 area-System.Runtime Proposal: dynamic array with lazy reallocation feature "Copied from https://github.com/dotnet/csharplang/issues/586 The current C# array can ""resize"", but it acturally allocates new memory and copies data, and the old memory can neither be freed nor be used until next GC. I hope to have a kind of dynamic array which can change its length without memory reallocation until next GC. When this kind of array extend its length, only allocate memory of ""extended"" size, and use an internal list to manage the old and new memory. Users needn't know how many internal fragments the dynamic array has, they should be able to use it as a normal array. When GC occurs, the CLR should put all fragments of a dynamic array together and update internal link pointers. If the dynamic array reduces its length, the CLR should be able to ""free"" some memory after next GC. All these CLR actions should be transparent to users. The dynamic array should be a new class, and do not affect the behavior of the current array. For example: ```C# DynamicArray da=new DynamicArray(100); //length is initialized to be 100 ...... da.Resize(200); /*new size is 200, but only allocate new memory of size 100. Old memory is still in use and links to new memory. Now 'da' has internal fragments, but it will have contiguous memory of size 200 after next GC. */ ...... da.Resize(10); /* No allocation. Free memory of size 190 after next GC. */ ``` " +19818 area-System.Net Two FtpWebRequest tests taking long time to fail Fixes #18424 +19819 area-System.Runtime Fixed uap/uapaot tests in System.Runtime Fixing a bunch of these errors: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170516.01/workItem/System.Runtime.Tests +19820 area-System.Net Improve Socket scalability on Unix - scale the number of socket engines with the number of processors The number of socket engines is set to half of the number of available processors when there are at least 6 processors. The lower bound is a heuristic to enable multiple socket engines only on systems that are servers. Having too few socket engines leads to under-performing. Having too many leads to thread overhead. The performance penalty of the latter is much lower than that of the first. A non-pipelined TechEmpower plaintext test of libuv on a 28 cpu thread machine (E5-2690 v4) shows best performance at 16 threads. - increase the number of events reported with a poll from 64 to 1024 1024 is the value used by libuv nginx uses 512 CC @stephentoub @geoffkizer @davidfowl +19824 area-System.Diagnostics TestMultipleConcurrentRequests test failed in CI on desktop ``` System.Diagnostics.Tests.HttpHandlerDiagnosticListenerTests.TestMultipleConcurrentRequests [FAIL] Assert.Equal() Failure Expected: 18 Actual: 16 Stack Trace: D:\j\workspace\netfx_windows---50c21bdb\src\System.Diagnostics.DiagnosticSource\tests\HttpHandlerDiagnosticListenerTests.cs(362,0): at System.Diagnostics.Tests.HttpHandlerDiagnosticListenerTests.TestMultipleConcurrentRequests() ``` cc: @lmolkova +19825 area-System.Data SqlConnection doesn't override DbProviderFactory property Hi, Currently SqlConnection doesn't override the `DbProviderFactory` property. On Desktop/.NET full this is used by `DbConnection.ProviderFactory`, an internal property used by `DbProviderFactories`. This last class isn't part of .NET core, however the lack of these properties and implementation makes it harder to bring this class back to .NET core, as `DbProviderFactories` contains a method `GetFactory(DbConnection)`, which simply reads the property `DbConnection.ProviderFactory`. Likely a complete oversight due to the stalemate on whatever has to happen with DbProviderFactories in .NET core for the last 2 years (See #4571 ) My advice would be two-fold: * add `DbConnection.ProviderFactory` property, as internal. (See: https://referencesource.microsoft.com/#System.Data/System/Data/Common/DBConnection.cs,68) (will file another issue for that) * override `DbConnection.DbProviderFactory` in SqlConnection.cs. This would then open the door to add `DbProviderFactories` to .NET core to make sharing code using that class between .NET full and .NET core easy. +19826 area-System.Data DbConnection doesn't offer an internal property ProviderFactory Hi (This issue is related to #19825). To bring back the functionality of the `DbProviderFactories` class to .NET core so sharing of code between .NET full and .NET core is easy, it's required to have `DbConnection.ProviderFactory` present, as `DbProviderFactories` has a method `GetFactory(DbConnection)` which reads this property to obtain the factory. .NET full has this implementation: https://referencesource.microsoft.com/#System.Data/System/Data/Common/DBConnection.cs,68 which reads the virtual property `DbProviderFactory` which is present in .NET core's DbConnection (and by default returns null). Implementing this property on DbConnection will make it easy to add the `DbProviderFactories` class from reference source to .NET core (without the machine.config stuff of course) and offer the same functionality so porting code over from .NET full to .NET core is easy. +19827 area-System.Net [HttpListener] Multiple HttpListeners on same IP Endpoint "In both .NET 4.5 and Mono, you could have have `HttpListener` instances listen on the same IP Endpoint with different paths, such as for instance HttpListener listener1 = new HttpListener (); listener1.Prefixes.Add (""http://127.0.0.1:"" + port + ""/""); HttpListener listener2 = new HttpListener (); listener2.Prefixes.Add (""http://127.0.0.1:"" + port + ""/hola/""); listener1.Start (); listener2.Start (); This behavior has changed in https://github.com/dotnet/corefx/commit/7a48e11efae5b163a6c3b3d49a7066960e40a5c2 with no explanation why this change has happened. It is a problem for two reasons: 1. It changes behavior from .NET 4.5 in a way that could possibly break many existing customer applications. 2. It shifts the burden of maintaining endpoint listeners from the backend to the user. I discovered this problem while trying to replace Mono's HttpListener implementation with the one from CoreFX (see https://github.com/mono/mono/pull/4850). Since this change could possibly break an unknown amount of existing customer code (apart from our failing unit test), it currently blocks us on going forward with the change. Going forward, I would like to understand why this change happened and work with you towards a solution." +19829 area-Serialization XmlSerializerTests.Xml_KnownTypesThroughConstructor failed Test `XmlSerializerTests.Xml_KnownTypesThroughConstructor` failed in reflection only mode on UWP. +19830 area-Serialization XmlSerializerTests.XmlSchemaTest failed on UWP "Test `XmlSerializerTests.XmlSchemaTest` failed on UWP. ``` ``` The issue is likely due to missing metadata, ``` SG0001 : Cannot generate serialization code for type 'System.Xml.Schema.XmlSchema'. There was an error reflecting type 'System.Xml.Schema.XmlSchema'. There was an error reflecting property 'Includes'. There was an error reflecting type 'System.Xml.Schema.XmlSchemaRedefine'. There was an error reflecting property 'Items'. There was an error reflecting type 'System.Xml.Schema.XmlSchemaAttributeGroup'. There was an error reflecting property 'Attributes'. There was an error reflecting type 'System.Xml.Schema.XmlSchemaAttribute'. Ambiguous match found. ``` " +19831 area-System.Net Disable SslStream_SameCertUsedForClientAndServer_Ok test failing on Win7 Failing on all Win7 runs https://github.com/dotnet/corefx/issues/19699 cc: @cipop +19832 area-System.Runtime 'System.Text.Encoding is not assignable to parameter type 'System.Text.Encoding' I'm working on a library targeting .NET Standard 1.6 and I'm seeing the following error: >Argument type 'System.Text.Encoding [System.Text.Encoding, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]' is not assignable to parameter type 'System.Text.Encoding [System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]' It sounds like one of the parameters is targeting a private version of `System.Text.Encoding`. Any advice? >Screenshot: > ![image](https://cloud.githubusercontent.com/assets/21338699/26119617/d4941f1e-3a3b-11e7-9b28-2c274360ade4.png) >Snippet: >```c# >using (BinaryReader reader = new BinaryReader(stream, Encoding.ASCII)) >{ >} >``` +19833 area-Serialization Xml_DefaultValueAttributeSetToNaNTest Failed on UWP Xml_DefaultValueAttributeSetToNaNTest Failed on UWP when using Sg. ``` MSBUILD : error : System.InvalidOperationException: Unable to generate a temporary class (result=1). MSBUILD : error : error CS0103: The name 'NaN' does not exist in the current context MSBUILD : error : error CS0103: The name 'NaNf' does not exist in the current context MSBUILD : error : error CS0103: The name 'NaN' does not exist in the current context MSBUILD : error : error CS0103: The name 'NaNf' does not exist in the current context MSBUILD : error : MSBUILD : error : at System.Xml.Serialization.Compiler.Compile(XmlSerializerCompilerParameters xmlParameters, Evidence evidence, String outputDir, String assemblyNameBase, IEnu merable`1 referenceDirectories, String intermediateDir, Boolean loadAssembly) MSBUILD : error : at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCom pilerParameters parameters, Hashtable assemblies, String outputDir, String assemblyNameBase, IEnumerable`1 referenceDirectories, String intermediateDir, Boolean loadAssembly) MSBUILD : error : at System.Xml.Serialization.XmlSerializer.GenerateSerializer(Type[] types, XmlMapping[] mappings, CompilerParameters parameters, String outputDir, String asse mblyNameBase, IEnumerable`1 referenceDirectories, String intermediateDir, Boolean loadAssembly) MSBUILD : error : at System.Xml.Serialization.XmlSerializer.GenerateSerializer(Type[] types, String outputDir, String assemblyNameBase, IEnumerable`1 referenceDirectories, Stri ng intermediateDir, List`1 wcfSerializers, Boolean loadAssembly) MSBUILD : error : at SerializationAssemblyGenerator.Program.Main(String[] args) MSBUILD : error : ILT0032: Failed to compile serialization code. See the build log for error details. ``` +19834 area-System.ComponentModel Adding the possibility to use resources for the property NullDisplayText in DisplayFormatAttribute Relative to issue #10526. Tests were also added for existing code since the test class did not exist. I copied the behaviour of `[Display]` for the `NullDisplayText` property. I also copied the same style of xml comments. +19835 area-Serialization Is Microsoft.XmlSerializer.Generator shipping with 2.0.0? What is the plan for this package in release/2.0.0? Do we plan to ship it as stable? Pre-release? Not at all? +19836 area-System.Data Investigate use of LongRunning continuation option in SqlClient async reads A change was made here https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIPacket.cs#L270 to fix timeouts in Entity Framework tests due to blocked async reads. Using the LongRunning option means a new thread will be created on every async read. We need to investigate if this LongRunning option will cause other side effects, and if it can be replaced with a better threading solution. CC @saurabh500 +19837 area-System.Xml Add support to System.Xml.Xsl In need of this to be supported in order to move onto Core 2.0. +19838 area-System.Diagnostics Exception stack trace does not have line numbers "**Repro:** - dotnet new console - Update the Program.cs file to ```c# using System; namespace bar2 { class Program { static void Main(string[] args) { try { throw new InvalidOperationException(""some error""); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } } } ``` - dotnet run - The above code would print out like the following (Notice that there is no line number information) ``` System.InvalidOperationException: some error at bar2.Program.Main(String[] args) ``` **dotnet --info** ``` .NET Command Line Tools (2.0.0-preview2-006071) Product Information: Version: 2.0.0-preview2-006071 Commit SHA-1 hash: 8326a60d7a Runtime Environment: OS Name: Windows OS Version: 10.0.15063 OS Platform: Windows RID: win10-x64 Base Path: C:\Users\kichalla\.dotnet\x64\sdk\2.0.0-preview2-006071\ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview2-25309-07 Build : 41f5fc94eedc889f086800c23f35bf14a8c75a9f ```" +19839 area-System.IO IsolatedStorage Machine scope for WinRT issues As it is currently implemented it depends on `ApplicationData.Current.SharedLocalFolder`, which isn't available without proper [policy](https://docs.microsoft.com/en-us/uwp/api/windows.storage.applicationdata#Windows_Storage_ApplicationData_SharedLocalFolder). Note that with upcoming support in `Environment.GetFolderPath()` we'll be switching to using that and that may alter behavior here. Once that is done we need to find a reasonable way to condition tests if the location is accessible. For now Machine scope tests are disabled on UAP. +19840 area-System.IO Remove IsoStorage lock from UAP and enable tests Removing the random directory logic when running on WinRT as it wasn't used before and has no benefit. Additionally taking a global lock isn't possible on WinRT. This also enables tests for IsolatedStorage on UAP. Also update skip for unit tests on desktop. Issues #19227, #18202 +19843 area-Serialization Enabled XmlSerializer to Serialize XElement on UWP. After PR https://github.com/dotnet/corefx/pull/19244, `XmlSerializer` failed to serialize `XElement` on UWP because the metadata info for `XElement..ctor()` was reduced by UWP toolchain. Although we already have rd.xml for keeping the constructor, see [System.Private.Xml.Linq.rd.xml](https://github.com/dotnet/corefx/blob/87a72facb51c0b50489223f1ef2e52195e1a3f00/src/System.Private.Xml.Linq/src/Resources/System.Private.Xml.Linq.rd.xml), it didn't work because the assembly has `BlockReflectionAttribute` and UWP toolchain would remove metadata for any non-public types/members in the assembly. The fix is to make the constructor public on `uap`. Fix #19809. +19844 area-System.Security Make all X509Store.Open exceptions be CryptographicException. The platform limitations are now CryptographicException(PlatformNotSupportedException) instead of PNSE. This should restore some user expectation around the exception model, given that the call to Open can be delayed from the call to an X509Store .ctor. This also softens the exceptions from the Disallowed store on Linux to let empty reads succeed, only writes and pre-populated data will fail. Updated the X509Store table in the xplat crypto doc. +19846 area-Serialization Fix the issues in extension method. @shmao +19848 area-System.Net BeginSendToV4IPEndPointToV6Host_NotReceived failed for desktop in CI https://ci.dot.net/job/dotnet_corefx/job/master/job/netfx_windows_nt_debug_prtest/327/consoleText ``` System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.BeginSendToV4IPEndPointToV6Host_NotReceived [FAIL] Assert.Throws() Failure Expected: typeof(System.TimeoutException) Actual: typeof(System.Net.Sockets.SocketException): An address incompatible with the requested protocol was used Stack Trace: at System.Net.Sockets.Socket.DoBeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint endPointSnapshot, SocketAddress socketAddress, OverlappedAsyncResult asyncResult) at System.Net.Sockets.Socket.BeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback callback, Object state) D:\j\workspace\netfx_windows---8c0e8fba\src\System.Net.Sockets\tests\FunctionalTests\DualModeSocketTest.cs(1243,0): at System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.DualModeBeginSendTo_EndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) D:\j\workspace\netfx_windows---8c0e8fba\src\System.Net.Sockets\tests\FunctionalTests\DualModeSocketTest.cs(1209,0): at System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.b__4_0() ``` +19849 area-Infrastructure Repro memberinfo bug /cc @weshaggard @AtsushiKan For some reason, updating the assembly version of System.Runtime causes the list of members returned by type.GetMembers(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); to be different on the first call. Subsequent calls return a different (incorrect) order. +19850 area-System.IO Difference in File/DirectoryNotFoundException behavior when both directory and file don't exist "This code on Windows: ```C# using System; using System.IO; class Program { static void Main() { long x = new FileInfo(@""C:\users\stoub\doesntExist\doesntExist.txt"").Length; } } ``` throws a FileNotFoundException, whereas this code on Linux: ```C# using System; using System.IO; class Program { static void Main() { long x = new FileInfo(@""/home/stoub/doesntExist/doesntExist.txt"").Length; } } ``` throws a DirectoryNotFoundException. (If the whole directory exists and just the file doesn't, then we throw a FileNotFoundException on Linux as expected.) Difference reported by @polarapfel at https://github.com/dotnet/corefx/issues/1728#issuecomment-301935624 cc: @ianhays, @JeremyKuhne " +19851 area-System.Data Add IDataReader interface to SqlDataReader to match Framework implementation +19852 area-System.Reflection System.Reflection.Tests.MemberInfoTests.TestEquality_Multiple fails due to non-deterministic ordering of nested classes See https://github.com/dotnet/corefx/pull/19842#issuecomment-301937137 and https://github.com/dotnet/corefx/pull/19849. We should either remove the test case, do an on-ordered equality check, or sort on MetadataToken before doing the check. /cc @AtsushiKan +19854 area-System.Net WebSocket can crash UWP apps if the server does not close the connection gracefully I am investigating a [SignalR issue](https://github.com/aspnet/SignalR/issues/412) where a netstandard SignalR client is being used in a UWP app. The client uses webSockets to connect to the server. The expectation is that when the server is being closed the client will notify the user by raising an event. However the application crashes due to an unhandled exception with the following stack trace: ``` System.Exception: Exception from HRESULT: 0x80072EFE at Windows.Networking.Sockets.MessageWebSocketMessageReceivedEventArgs.GetDataReader() at System.Net.WebSockets.WinRTWebSocket.OnMessageReceived(MessageWebSocket sender, MessageWebSocketMessageReceivedEventArgs args) ``` If I read the code correctly it seems that if the exception happens here: https://github.com/dotnet/corefx/blob/ec2a6190efa743ab600317f44d757433e44e859b/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WinRTWebSocket.cs#L282 it won't be handled anywhere but can't also be caught which causes the crash. SignalR client [expects](https://github.com/aspnet/SignalR/blob/dev/src/Microsoft.AspNetCore.Sockets.Client/WebSocketsTransport.cs#L80-L81) receive result with WebSocketMessageType.Close result type. +19855 area-Infrastructure Update to BuildTools 2.0.0-prerelease-01616-05 This will pick up Eric M's recent fix to crossgen.sh to detect the correct version of the shared framework instead of hard coding a version. Recent updates to the CLI we consume caused the static number to be incorrect. +19856 area-System.Runtime System.Runtime .NET Native fixes and leftover PR feedback +19857 area-System.Reflection PinnedObject.Release may attempt to release an invalid GCHandle during shutdown If process shutdown happens to stop PinnedObject.Release processing within the GCHandle.Free call, then shutdown finalization of the same object will generate an InvalidOperationException. The same may occur if the constructor is preempted by shutdown. +19858 area-System.Reflection Fix potential release of invalid GCHandle in PinnedObject.Release If process shutdown happens to stop PinnedObject.Release processing within the GCHandle.Free call, then shutdown finalization of the same object will generate an InvalidOperationException. The same may occur if the constructor is preempted by shutdown. Fixes https://github.com/dotnet/corefx/issues/19857 in master (not in 2.0) Port to Desktop FX tracked by VSO bug 437163. +19859 area-Serialization Use stream as the input in GenerateSerializer method Currently, it is using code path as the input, need use steam. +19860 area-System.Xml Fix Xml.Linq test failures on ILC Fixes: - Missing metadata for System.Xml.Linq.XCData - Optimized exception messages +19861 area-Meta Making a member virtual should be considered a breaking change The [breaking change document](https://github.com/dotnet/corefx/blob/d2a2d7ccb631aeaf97dc67b2241410b312241343/Documentation/coding-guidelines/breaking-change-rules.md) currently considers making a member virtual a non-breaking change with a small sidenote. When that rule was decided, the C# compiler was only emitting `call` IL instruction in a couple places that didn't really matter and used the IL `callvirt` for everything else (even if the destination instance method was non-virtual, because per the C# spec, calling instance methods with a null `this` needs to throw and `call` IL instruction won't throw). This made it unlikely that people would hit problems with it. The addition of the null-propagation operator gave the C# compiler more opportunities to optimize `callvirt` into a `call` if the `this` is known to be not null. dotnet/corert#3565 has an example where making a member virtual resulted in wrong method being called when compiling against PCL contracts because a breaking change was made making `ConstructorInfo.Invoke` virtual: ```csharp var abc = (ABC) constr.Invoke(new object[0]); // This works ``` ```csharp var abc = (ABC) constr?.Invoke(new object[0]); // This calls the wrong method because // `this` is known not to be null and Invoke // is a non-virtual method ``` Making a member virtual is a breaking change for anyone using the null-propagation operator with the method. +19862 area-Serialization Use stream as the input of GenerateSerializer method Fix #19859 @shmao @mconnew @zhenlan +19864 area-System.Data Adding GetSchemaTable() on SqlDataReader Porting over code to add GetSchemaTable in .Net Core SqlClient. The code is a port from NetFx code. The `CheckSparseColumnBit` test is a port from NetFx, Reduces failures in Dapper tests by 5 based on my internal runs. I ran the EF functional tests with my changes. No regressions observed with the changes. Fixes https://github.com/dotnet/corefx/issues/19748 cc @stephentoub @corivera @danmosemsft @karelz +19866 area-System.Runtime Fixed System.Runtime.Extensions uap/uapaot tests Relates to https://github.com/dotnet/corefx/issues/18718 Fixes (most) appcontainer issues in System.Runtime.Extensions: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170516.02/workItem/System.Runtime.Extensions.Tests +19867 area-System.Net Fix deadlock in SslStream_SameCertUsedForClientAndServer_Ok test on single core Remove the synchronous blocking. cc: @wfurt, @Priya91 +19868 area-Infrastructure Update xunit extensions to include ActiveIssueAttribute functionality cc: @weshaggard +19870 area-System.Runtime Win32Api SetEnvironmentVariableW - Disabled tests "Re-Enable all tests which are disabled on UAP/UAPAOT with reason substring ""SetEnvironmentVariableW"" as soon as Win32 api gets available. https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/tests/System/Environment.SetEnvironmentVariable.cs https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/tests/System/Environment.GetEnvironmentVariable.cs https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/tests/System/Environment.ExpandEnvironmentVariables.cs " +19871 area-Infrastructure Remove SkipOnTargetFramework UAP/UAPAOT on whole classes Skip only tests which are runnable on UAP/UAPAOT for either reasons: - Win32Api not yet available - Execution not possible because of AppContainer isolation If the test tries to access the FileSystem outside of the whitelisted places (appx installation dir, appx temp dir --> %appdata%, capabilities --> pictures,documents,music,...) then rewrite test cases with TempDirectory. +19872 area-System.Runtime Assembly.Load currently not suppported on UWP LoadFile / Load is currently intentionally blocked in Coreclr: https://github.com/dotnet/coreclr/blob/906f60ce3c55ab0cc41765d9eeea542ec65ff737/src/mscorlib/src/System/AppDomain.cs#L393 Will it be supported inside an AppContainer? If yes, re-enable deactivated tests. +19873 area-System.IO Revert: Disabling dynamic code execution in MemoryMappedFiles tests on UAP/UAPAOT - AppContainer now supports the capability Reverting my last change which disabled some tests for uap/uapaot because dynamic code execution wasn't allowed in appx. It still isn't, but I found the reason why. By adding a capability these calls become valid and the tests will pass. This PR depends on a buildtools PR and a nuget package update: https://github.com/dotnet/buildtools/pull/1503. After PR gets accepted some more steps are required. This is planned to be done this week. +19874 area-System.Net Revert and fix no exception thrown in the managed implementation registering an existing prefix The first commit reverts the buggy commit that caused #19827. This revert causes test failures in Add_PrefixAlreadyRegisteredAndNotStarted_ThrowsHttpListenerException The second commit adds a swathe of tests for various scenarios. Most of these tests failed before the revert. It turns out the fix to the difference in behaviour between managed and Windows is actually as simple as removing an `if` in HttpEndPointListener.AddPrefix. Previously the managed implementation wouldn't throw if we tried to add the same prefix with the same listener - but it would with different listeners. Instead we should always throw, in order to match Windows behaviour. Fixes #19827 @stephentoub @baulig @davidsh @priya91 +19875 area-System.Net Test failure: System.Net.Http.Functional.Tests.PostScenarioTest/PostEmptyContentUsingContentLengthSemantics_Success(serverUri: http://corefx-net.cloudapp.net/Echo.ashx) Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.PostScenarioTest/PostEmptyContentUsingContentLengthSemantics_Success(serverUri: http://corefx-net.cloudapp.net/Echo.ashx)` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Net.Http.WinHttpException : The operation has been canceled Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.PostScenarioTest.d__22.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.PostScenarioTest.d__10.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : Master - 20170517.01 (Core Tests) Failing configurations: - Windows.10.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170517.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.PostScenarioTest~2FPostEmptyContentUsingContentLengthSemantics_Success(serverUri:%20http:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx) +19876 area-System.Collections System.Collections.Tests failed to generate the test result Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170517.01/workItem/System.Collections.Tests/wilogs Configuration: Windows.10.Nano.Amd64-x64:Release ~~~ 2017-05-17 00:35:24,230: INFO: proc(54): run_and_log_output: Output: xUnit.net console test runner (64-bit .NET Core) 2017-05-17 00:35:24,230: INFO: proc(54): run_and_log_output: Output: Copyright (C) 2014 Outercurve Foundation. 2017-05-17 00:35:24,230: INFO: proc(54): run_and_log_output: Output: 2017-05-17 00:35:24,480: INFO: proc(54): run_and_log_output: Output: Discovering: System.Collections.Tests 2017-05-17 00:35:25,821: INFO: proc(54): run_and_log_output: Output: Discovered: System.Collections.Tests 2017-05-17 00:35:27,476: INFO: proc(54): run_and_log_output: Output: Starting: System.Collections.Tests 2017-05-17 00:35:40,444: INFO: proc(54): run_and_log_output: Output: Finished: System.Collections.Tests 2017-05-17 00:35:40,444: INFO: proc(54): run_and_log_output: Output: 2017-05-17 00:35:40,444: INFO: proc(54): run_and_log_output: Output: === TEST EXECUTION SUMMARY === 2017-05-17 00:35:40,461: INFO: proc(54): run_and_log_output: Output: System.Collections.Tests Total: 44361, Errors: 0, Failed: 0, Skipped: 0, Time: 12.389s 2017-05-17 00:35:40,706: INFO: proc(54): run_and_log_output: Output: Finished running tests. End time= 0:35:40.70, Exit code = 0 2017-05-17 00:35:40,706: INFO: proc(58): run_and_log_output: Exit Code: 0 2017-05-17 00:35:40,706: INFO: scriptrunner(57): _main: Uploading results from C:\dotnetbuild\work\7b8f77aa-c3ac-4f6f-8c89-ac17eadd62c5\Work\1eb3f0c2-e2c6-4b10-a91b-0b358a9887a2\Unzip\testResults.xml 2017-05-17 00:35:40,706: INFO: azure_storage(200): _upload: Uploading single blob: 'testResults.xml' 2017-05-17 00:35:41,584: INFO: saferequests(90): request_with_retry: Response complete with status code '201' 2017-05-17 00:35:41,599: INFO: scriptrunner(70): _main: Sending completion event 2017-05-17 00:35:41,599: INFO: event(38): send: Sending event type XUnitTestResult 2017-05-17 00:35:41,763: INFO: saferequests(90): request_with_retry: Response complete with status code '201' 2017-05-17 00:35:41,763: INFO: azure_storage(200): _upload: Uploading single blob: '08c74bef8cc9498ab05aeb7356c3a99a.log' 2017-05-17 00:35:41,940: INFO: saferequests(90): request_with_retry: Response complete with status code '201' 2017-05-17 00:35:41,940: INFO: event(38): send: Sending event type Logs 2017-05-17 00:35:41,973: INFO: saferequests(90): request_with_retry: Response complete with status code '201' ~~~ +19878 area-System.Runtime Question: What would happen if we use a lot of Weakreferences? I know that using Weakreference is not without cost, but about the cost, I have some questions. 1. What is the cost? GC time, memory space, or both? GCHandle? 2. How much is the cost? 3. Why does Weakreference has extra cost while strong ref does not have? When GC, strong ref need to be updated too, why couldn't weak ref be updated the same way as strong ref? 4. Can I create a lot of objects and allocate a weakreference for each of them? For example, 100000 objects, acceptable or not? 5. If I allocate many weakreferences whose target is the same object, do they share some cost? Would the total cost be less than the one that each weakref has a different target? +19880 area-System.Net Add HttpListenerResponse tests Contributes to #13618 I've baselined all the managed failures instead of trying to fix them in this PR - there are just too many! I'm sure this will give me plenty of work to do after this PR. Considering that there's been some discussion of the risk of my fixes recently, I'm going to invest in more comprehensive testing, followed by targetted fixes @stephentoub @priya91 @davidsh +19882 area-System.Data SqlDbType exists both in NetStandard and System.Data.SqlClient When using SqlDbType in .NET Core 2.0 SqlDbType errors with: ![image](https://cloud.githubusercontent.com/assets/1374013/26146341/add2c5e2-3aa4-11e7-8efc-0b44d538a801.png) The type exists both in System.Data.SqlClient and .NET Standard, so the Sql Client version probably has to be removed. +19883 area-Infrastructure sync.cmd / build.cmd commandlets fail when a space is in the path I know, why on earth would you use a space a file path, but I happen to have the path: `\myprojects\vs.net projects\github\corefx` which makes sync.cmd and build.cmd fail as they don't wrap the path they're in with quotes. Moving the repo on disk to a folder without a space solves it. Not a high-prio error, just a FYI in case you didn't know. The https://github.com/dotnet/corefx/wiki/Checking-out-the-code-repository page would likely benefit from a warning in this case, so people who clone the repo and try to build it aren't surprised if they're as daft as me and use a space in the path their cloned repo is located ;) +19884 area-System.Data Implements #19825: SqlConnection doesn't override DbProviderFactory property This PR implements #19825 with an override of the SqlConnection.DbProviderFactory property by returning the static SqlClientFactory.Instance object. cc @karelz @saurabh500 +19885 area-System.Data Implements #19826 and #4571: Adds DbConnection.ProviderFactory and DbProviderFactories "This issue (re)implements #19826: DbConnection.ProviderFactory, by simply returning the value returned by the virtual property DbConnection.DbProviderFactory. This way it's easier to bring back DbProviderFactories from .net full. The code was removed in commit 8150669, associated with issue #17905. cc @karelz @saurabh500 (edit). This PR tracks now also the implementation of #4571. The public API is as follows: ```cs public static partial class DbProviderFactories { public static DbProviderFactory GetFactory(string providerInvariantName) public static DbProviderFactory GetFactory(DataRow providerRow) public static DbProviderFactory GetFactory(DbConnection connection) public static void SetFactory(string name="""", string providerInvariantName="""", string description = """") where TFactory : DbProviderFactory public static void SetFactory(DbConnection connection, string name="""", string providerInvariantName = """", string description = """") public static DataTable GetFactoryClasses() } ``` The public API of the NetFX DbProviderFactories class is the same as the public API of this class. Differences: - It doesn't auto-initialize itself, by default no factory/providers are registered. - It can be manipulated using a public API at runtime. Usage to register a factory: ```cs DbProviderFactories.SetFactory(); // or DbProviderFactories.SetFactory(new SqlConnection()); ``` The method accepts more parameters, so the developer can specify their own InvariantName, name and description if they want to. If they're not supplied, like the example above, they're obtained from the Type. " +19887 area-System.Security Document crypto APIs which exist for compat, but are otherwise deprecated A lot (but not all) of the cryptography API delta from 1.1 to 2.0 is compat-only. In addition to the automatically identified cross-platform warnings, identify what things which were brought back that should just be generally regarded as deprecated and add them to the code analyzer tooling. In addition to those items, some 1.x API should be tagged: * The Windows CAPI dependencies (*CryptoServiceProvider types) * Already tagged for cross-platform risk, but should be tagged as well for deprecation. * The Rfc2898DeriveBytes ctors that do not take HashAlgorithmName as an input * Potentially others. +19888 area-System.Security X509Certificate2.CopyWithPrivateKey does not work as expected. "```c# using (var rsa = RSA.Create()) { var request = new CertificateRequest(""CN=localhost"", rsa, HashAlgorithmName.SHA256); var serialNumber = new byte[8]; using (var rng = RandomNumberGenerator.Create()) { rng.GetBytes(serialNumber); } var now = DateTimeOffset.UtcNow; var rootCertificate = new X509Certificate2(@""C:\path\to\root\certificate.pfx""); var certificate = request.Create(rootCertificate, now, now.AddYears(1), serialNumber); var certificate1 = certificate.CopyWithPrivateKey(rsa); var certificate2 = new X509Certificate2(certificate1.Export(X509ContentType.Pkcs12)); // NullReferenceException Console.WriteLine(certificate1.ToString(true)); // Works well Console.WriteLine(certificate2.ToString(true)); } ``` After checking both certificate with inspector, it was discovered that some fields of `X509Certificate2.PrivateKey.Key` objects such as `KeyName`, `IsEphemeral`, `UniqueId` are different from each certificates. Because of this issue, `certificate1` cannot be used for `SslStream.AuthenticateAsServer` method. To workaround this, generated certificate should be exported as pcks#12 and reimported agian." +19889 area-System.IO System.IO.Compression: Add IsFile or IsDirectory property to ZipArchiveEntry "The current mechanism to determine whether an item in a zip is a directory is to test whether the `FullName` ends with `""/""` and also the `Name` property is blank. To my knowledge, in order to extract a zip file and overwrite the contents - since `ExtractToDirectory` doesn't have that ability yet (#8146!) - the following is the smallest way of performing this: $zip = [System.IO.Compression.ZipFile]::OpenRead(""MyCompressedFile.zip"") foreach ($item in $zip.Entries) { if ($item.FullName.EndsWith(""/"") -and $item.name -eq """") { (New-Item $item.FullName -type directory -force) > $null } else { ([System.IO.Compression.ZipFileExtensions]::ExtractToFile($item, (Join-Path -Path $pathToExtractDirectory -ChildPath $item.FullName), $true)) > $null } } As you can see on the third line, we need to determine whether the `ZipArchiveEntry` is a directory or file - `$item.FullName.EndsWith(""/"") -and $item.name -eq """"`. If this condition can be changed to `$item.IsDirectory` or `$item.IsFile` then I believe that this would make it easier for developers to extract files in this way. The function of the `IsDirectory` property is simply to provide a shorthand, user-friendly mechanism of succinctly determining the object type of the `ZipArchiveEntry`. It could also be an enum, such as `ZipArchiveEntryType`, but I believe that this might be overkill." +19890 area-Infrastructure VS Code has trouble opening projects from CoreFX I've been trying to use VS code for CoreFx development, but with very little luck so far. First of all there doesn't seem to be a master solution, some assemblies have their own solutions some don't, there doesn't seem to be much of an order in the .sln files. Opening the repo in VS Code, one needs to pick the .sln to work with (so that OmniSharp has a way to load the projects). Just two examples: - System.Threading.tasks.sln - there are several warnings and failures reported when opening this. The end result is that intellisense doesn't work at all - no Go to Definition or anything like that. - System.Private.Xml.sln - this one seems to open without fatal errors, so some of the intellisense lights up, but then the IDE reports a huge number of errors. Opening a random source file like XmlResolver.cs shows a lot of red squiggles. Basically it seems that types from CoreLib don't resolve at all. +19892 area-Infrastructure Confirm stability of new Perf.Environment tests We checked in new tests in this PR, https://github.com/dotnet/corefx/pull/19623. The tests appear to be good, but we should ensure that over the next week we are seeing stable results from these tests. +19894 area-System.Data User message for non-support of Sys.Transactions in SqlClient I am opening this issue to discuss the right customer messaging for absence of Sys.Transactions support in SqlClient. Refer comment https://github.com/dotnet/corefx/issues/19708#issuecomment-301959886 and the following comment. In case of SqlClient operations enclosed in a TransactionScope, the operations would not be run in a single transaction. However this would not throw an exception to the customer. We need a mechanism to make sure that customers understand this behavior. +19896 area-System.Data Add Tracing in SqlClient SqlClient doesn't have any tracing in .Net Core. All the Bid Tracing API calls were removed during the port to Core. One of the options is to use EventSource to emit traces during runtime. Something similar was done by @stephentoub in `System.Data.Common` . Ref: https://github.com/dotnet/corefx/blob/master/src/System.Data.Common/src/System/Data/Common/DataCommonEventSource.cs cc @corivera +19897 area-Serialization XmlSerializerTests.Xml_TypeWithTwoDimensionalArrayProperty1 Failed on UWP "Test `XmlSerializerTests.Xml_TypeWithTwoDimensionalArrayProperty1` failed on UWP when using SG. ``` \r\n\r\n \r\n \r\n \r\n 0 0 value\r\n 1\r\n \r\n \r\n 0 1 value\r\n 2\r\n \r\n \r\n \r\n \r\n 1 0 value\r\n 3\r\n \r\n \r\n 1 1 value\r\n 4\r\n \r\n \r\n \r\n\r\n Actual: \r\n\r\n \r\n \r\n \r\n 0 0 value\r\n 1\r\n \r\n \r\n 0 1 value\r\n 2\r\n \r\n \r\n \r\n \r\n 1 0 value\r\n 3\r\n \r\n \r\n 1 1 value\r\n 4\r\n \r\n \r\n \r\n\r\n Expected: True\r\nActual: False]]> (__Canon value, String baseline, Func$1<$XmlSerializer> serializerFactory, Boolean skipStringCompare, $XmlSerializerNamespaces xns) in d:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 4466 at XmlSerializerTests.Xml_TypeWithTwoDimensionalArrayProperty1() in d:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 1830 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs:line 400]]> ```" +19898 area-Serialization XmlSerializerTests.XmlUnknownElementAndEventHandlerTest Failed on UWP "`XmlSerializerTests.XmlUnknownElementAndEventHandlerTest` failed on UWP when using Sg. ``` ``` Test `XmlSerializerTests.XmlUnknownNodeAndEventHandlerTest` also failed." +19899 area-Serialization XmlSerializerTests.Xml_TypeWithXmlQualifiedName Failed on UWP "XmlSerializerTests.Xml_TypeWithXmlQualifiedName failed on UWP when using Sg. ``` \r\n\r\n FooName\r\n\r\n Actual: \r\n\r\n FooName\r\n\r\n Expected: True\r\nActual: False]]> (__Canon value, String baseline, Func$1<$XmlSerializer> serializerFactory, Boolean skipStringCompare, $XmlSerializerNamespaces xns) in d:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 4466 at XmlSerializerTests.Xml_TypeWithXmlQualifiedName() in d:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 2033 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs:line 400]]> ```" +19901 area-Serialization XmlSerializerTests.Xml_TypeWithDefaultTimeSpanProperty Failed on UWP "`XmlSerializerTests.Xml_TypeWithDefaultTimeSpanProperty` failed on UWP when using Sg. ``` \r\nPT1M\r\n Actual: \r\n\r\n PT1M\r\n PT1M\r\n\r\n Expected: True\r\nActual: False]]> (__Canon value, String baseline, Func$1<$XmlSerializer> serializerFactory, Boolean skipStringCompare, $XmlSerializerNamespaces xns) in d:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 4466 at XmlSerializerTests.Xml_TypeWithDefaultTimeSpanProperty() in d:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 1670 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs:line 400]]> ```" +19902 area-Serialization XmlSerializerTests.XML_TypeWithQNameArrayAsXmlAttribute Failed on UWP "Test `XmlSerializerTests.XML_TypeWithQNameArrayAsXmlAttribute` failed on UWP when using Sg. ``` (__Canon value, String baseline, Func$1<$XmlSerializer> serializerFactory, Boolean skipStringCompare, $XmlSerializerNamespaces xns) in d:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 4466 at XmlSerializerTests.XML_TypeWithQNameArrayAsXmlAttribute() in d:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 2356 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs:line 400 ----- Inner Stack Trace ----- at System.Xml.XmlTextWriter.AutoComplete($Token token) in d:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Core\XmlTextWriter.cs:line 1176 at System.Xml.XmlTextWriter.WriteStartAttribute$catch$0() in d:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Core\XmlTextWriter.cs:line 676 at System.Xml.Serialization.XmlSerializationWriter.WriteAttribute(String prefix, String localName, String ns, String value) in d:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationWriter.cs:line 999 at System.Xml.Serialization.XmlSerializationWriter.GetQualifiedName(String name, String ns) in d:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationWriter.cs:line 415 at System.Xml.Serialization.XmlSerializationWriter.FromXmlQualifiedName($XmlQualifiedName xmlQualifiedName, Boolean ignoreEmpty) in d:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationWriter.cs:line 434 at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write103_Item(String n, String ns, $TypeWithQNameArrayAsXmlAttribute o, Boolean isNullable, Boolean needType, String parentRuntimeNs, String parentCompileTimeNs) in C:\Users\shmao\AppData\Local\Temp\Ilc991344503\xunit.console.netcore.Sg\System.Xml.XmlSerializer.Generated.cs:line 6024 at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write235_MyXmlType(Object o, String parentRuntimeNs, String parentCompileTimeNs) in C:\Users\shmao\AppData\Local\Temp\Ilc991344503\xunit.console.netcore.Sg\System.Xml.XmlSerializer.Generated.cs:line 1560 at Microsoft.Xml.Serialization.GeneratedAssembly.TypeWithQNameArrayAsXmlAttributeSerializer.Serialize(Object objectToSerialize, $XmlSerializationWriter writer) in C:\Users\shmao\AppData\Local\Temp\Ilc991344503\xunit.console.netcore.Sg\System.Xml.XmlSerializer.Generated.cs:line 21757 at System.Xml.Serialization.XmlSerializer.Serialize($XmlWriter xmlWriter, Object o, $XmlSerializerNamespaces namespaces, String encodingStyle, String id) in d:\OSS\corefx-1\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializer.cs:line 486]]> ``` " +19903 area-Serialization XmlSerializerTests.XmlDeserializationEventsTest Failed on UWP "Test `XmlSerializerTests.XmlDeserializationEventsTest` failed on UWP when using Sg. ``` ```" +19904 area-Serialization XmlSerializerTests.Xml_TypeWithTypesHavingCustomFormatter Failed on UWP "Test `XmlSerializerTests.Xml_TypeWithTypesHavingCustomFormatter` failed on UWP when using sg. ``` \r\n\r\n 2016-07-18T00:00:00Z\r\n QNameContent\r\n 2016-07-18\r\n NameContent\r\n NCNameContent\r\n NMTOKENContent\r\n NMTOKENSContent\r\n VABoAGUAIABxAHUAaQBjAGsAIABiAHIAbwB3AG4AIABmAG8AeAAgAGoAdQBtAHAAcwAgAG8AdgBlAHIAIAB0AGgAZQAgAGwAYQB6AHkAIABkAG8AZwAuAA==\r\n 540068006500200071007500690063006B002000620072006F0077006E00200066006F00780020006A0075006D007000730020006F00760065007200200074006800650020006C0061007A007900200064006F0067002E00\r\n\r\n Actual: \r\n\r\n 2016-07-18T00:00:00Z\r\n QNameContent\r\n 2016-07-18\r\n NameContent\r\n NCNameContent\r\n NMTOKENContent\r\n NMTOKENSContent\r\n VABoAGUAIABxAHUAaQBjAGsAIABiAHIAbwB3AG4AIABmAG8AeAAgAGoAdQBtAHAAcwAgAG8AdgBlAHIAIAB0AGgAZQAgAGwAYQB6AHkAIABkAG8AZwAuAA==\r\n 540068006500200071007500690063006B002000620072006F0077006E00200066006F00780020006A0075006D007000730020006F00760065007200200074006800650020006C0061007A007900200064006F0067002E00\r\n\r\n Expected: True\r\nActual: False]]> (__Canon value, String baseline, Func$1<$XmlSerializer> serializerFactory, Boolean skipStringCompare, $XmlSerializerNamespaces xns) in d:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 4466 at XmlSerializerTests.Xml_TypeWithTypesHavingCustomFormatter() in d:\OSS\corefx-1\corefx\src\System.Private.Xml\tests\XmlSerializer\XmlSerializerTests.cs:line 2151 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs:line 400]]> ```" +19905 area-System.Data Adding DataTable support in SqlParameter Porting code from NetFx which enables DataTables to be passing as a parameter in SqlParameter. Tested with Dapper, and EF tests. Dapper failures for netcoreapp2.0 reduce with this change. No failures in EF tests. Added new test to test DataTable as a parameter. Fixes: https://github.com/dotnet/corefx/issues/19708 cc @NickCraver @danmosemsft @karelz +19906 area-System.Diagnostics Minor DiagnosticSource http tests improvements Address review comments from #19863: improves comments and response dispose. Also, redundant test is removed: same functionality is tested by other tests. @stephentoub +19907 area-Infrastructure Need PlatformDetection.IsUAP to allow testing of UAP specific behaviors "#1395 talks about making `TargetFrameworkMonikers.Uap` more useful to be used in a Skip* attribute on a test method/class. But what can we use within tests where we have different behaviors between platforms? For example, we have the `PlatformDectection` class. We can use things like ""if (PlatformDetection.IsFullFramework)"" etc. However, for UAP apps, it is confusing. We have PlatformDetection.IsWinRT. That seems to do a runtime check on the exe itself to determine if it is app-container, etc. But I've heard that uap-aot testing doesn't actually run as app-container. It is a synthentic ILC.EXE conversion of the managed test assembly creating a native console win32 app. So, `IsWinRT` would work in uap test runs (UWP F5) but not uap-aot test runs (UWP ILC). We also have PlatformDetection.IsNotOneCoreUap but that seems to check for the existence of httpapi.sys which is weird....that really is a SKU check and not a runtime check of the type of the application. We need a PlatformDetection.IsUAP that works reliably for UAP or UAP-AOT test runs. Do we have something to address this? cc: @weshaggard @AlexGhiondea @danmosemsft @stephentoub " +19908 area-System.Net Add DangerousAcceptAnyServerCertificateValidator property to HttpClient It's a common pattern in certain situations (in particular in tests) to use HttpClient to connect to a server with a certificate that shouldn't be validated, e.g. a self-signed cert. This is commonly achieved with HttpClientHandler by setting the ServerCertificateCustomValidationCallback property to a delegate that always returns true (returning true means that the cert passed validation): ```C# handler.ServerCertificateCustomValidationCallback = delegate { return true; }; ``` However, we can't support this callback on all implementations of HttpClientHandler. For example, on macOS, the default libcurl built against SecureTransport doesn't provide the callback we'd need to properly implement the callback, and as such, today trying to set up such a callback results in a PlatformNotSupportedException. This blocks some important scenarios; that includes testing (e.g. ASP.NET had to move away from HttpClient because of this, https://github.com/aspnet/MetaPackages/pull/100) but also higher level libraries and tools that provide similar functionality (e.g. PowerShell's `Invoke-WebRequest -SkipCertificateCheck` is blocked by this https://github.com/PowerShell/PowerShell/issues/3648). This PR adds an approved API to address this case: ```C# public static Func DangerousAcceptAnyServerCertificateValidator { get; } ``` The actual implementation of this property is trivial, simply returning a cached always-return-true delegate: ```C# public static Func DangerousAcceptAnyServerCertificateValidator { get; } = delegate { return true; }; ``` so developers can just substitute it for their custom delegate: ```C# handler.ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator; ``` The benefit of that is it gives HttpClientHandler implementations a known object reference identity that can be compared against to understand the developer's intention: if the object stored in ServerCertificateCustomValidationCallback is reference equals to DangerousAcceptAnyServerCertificateValidator, then we know that it will always return true, and on platforms where we'd otherwise throw a PlatformNotSupportedException because we can't hook up a callback, we can still entirely disable validation. This enables such scenarios to work. (As a side benefit, such a property means developers can use this property and give tools an easier opportunity for flagging the danger of such disabling of validation, making it easier for developers to avoid shipping insecure applications.) This PR: - Adds the property and the singleton delegate implementation. - Adds some tests to ensure it behaves correctly. - On Unix, if we would throw a PNSE because a callback was supplied, we special-case DangerousAcceptAnyServerCertificateValidator to avoid throwing. No changes were made to the implementation on Windows. In the future, we could choose to go further and avoid hooking up the delegate at all on both Windows and Unix even if callbacks are supported, as doing so may save some overhead. However, as this is not meant to be a common case in production, I've only modified code necessary to get these scenarios working. Fixes https://github.com/dotnet/corefx/issues/19709 Related to https://github.com/dotnet/corefx/issues/19718 cc: @bartonjs, @davidsh, @cipop, @Priya91, @wfurt, @geoffkizer +19909 area-System.Diagnostics Reenable the tests ActiveIssue'd on 19909 this in Uap (not UapAot) ``` System.IO.MemoryMappedFiles.Tests -method System.IO.MemoryMappedFiles.Tests.DataShared System.Net.Primitives.Functional.Tests -method System.Net.Primitives.Functional.Tests.EventSource_EventsRaisedAsExpected System.Net.Security.Tests -method System.Net.Security.Tests.EventSource_EventsRaisedAsExpected ``` These tests are ActiveIssue'd against this issue but for Uap, not UapAot. Chances are they were intended to be ActiveIssued against some other process-related issue that prevents them from running in UWP (non-AOT) but since we've fix the aot-related issues, zombie'ing this issue to track reenabling these two tests. +19911 area-System.Runtime Drive System.Runtime.Test failures on ILC to 0. +19912 area-Serialization Fix XmlSchemaTest on UWP The PR is to enable using `XmlSchema` on UWP in ReflectionOnly mode. `XmlSchema.Write.Write` internally create the serializer for `typeof(XmlSchema)`, see [XmlSchema.cs](https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/src/System/Xml/Schema/XmlSchema.cs#L175). As XmlSchema has many known types (e.g. see [XmlSchema.Items](https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/src/System/Xml/Schema/XmlSchema.cs#L365)), we need to keep the metadata for all of those known types to make the serializer work in ReflectionOnly mode. The PR is to keep metadata for types under `System.Xml.Schema`. I tried to find a smaller closure for types to include, but I didn't find one. Before the fix, the size of the output of XmlSerializer test was 18,553 KB; after the fix, the size became 18,579 KB. Fix #19830 +19913 area-System.Data Analyze SqlParameter on Desktop to find out scenarios of missing support for DataTable Code Scan of .Net Framework SqlClient shows that there are more missing references to DataTable and DataRow from .Net Core. Opening this issue to track the progress of the gaps. Action items: Port CParamTest and tvpTests from NetFx to .Net Core and run them to see the deficiencies in SqlParameter and port over the missing code from NetFx to support these scenarios. Other related issue which were fixed in relation to `SqlParameter` https://github.com/dotnet/corefx/issues/19708 +19914 area-System.Net HttpClient 4.3.2 broken on Mono "Hopefully this is the right place to report this. If not, please move and/or let me know where to report. `HttpClient` appears to be broken when running on Mono with the latest release. Consider the following: ```powershell Install-Package System.Net.Http -Version 4.3.1 ``` ```csharp using System; using System.Net.Http; namespace HttpClientTest { class Program { static void Main(string[] args) { var client = new HttpClient(); var response = client.GetAsync(""https://www.microsoft.com/net"").Result; Console.WriteLine(response.StatusCode); } } } ``` Compile with VS 2017, targeting .NET Framework 4.6.1. Run from the Windows command line: ``` HttpClientTest.exe ``` Works, no problem. Run under Mono, and also works. ``` mono HttpClientTest.exe ``` Now upgrade to 4.3.2 ```powershell Update-Package System.Net.Http -Version 4.3.2 ``` Run again. Works on .NET Framework, but under Mono, I get a `MissingMethodException`. ``` Unhandled Exception: System.MissingMethodException: Method 'System.Net.Logging.get_On' not found. at System.Net.Http.HttpMessageInvoker.SendAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) [0x0003d] in <09d4a140061c48849b6322067e841931>:0 at System.Net.Http.HttpClient.SendAsync (System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) [0x00049] in <09d4a140061c48849b6322067e841931>:0 at System.Net.Http.HttpClient.GetAsync (System.Uri requestUri, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) [0x0000c] in <09d4a140061c48849b6322067e841931>:0 at System.Net.Http.HttpClient.GetAsync (System.Uri requestUri, System.Net.Http.HttpCompletionOption completionOption) [0x00008] in <09d4a140061c48849b6322067e841931>:0 at System.Net.Http.HttpClient.GetAsync (System.Uri requestUri) [0x00000] in <09d4a140061c48849b6322067e841931>:0 at System.Net.Http.HttpClient.GetAsync (System.String requestUri) [0x00008] in <09d4a140061c48849b6322067e841931>:0 at HttpClientTest.Program.Main (System.String[] args) [0x00007] in <8019b64f4f864b30ba0f2936c90cfab0>:0 [ERROR] FATAL UNHANDLED EXCEPTION: System.MissingMethodException: Method 'System.Net.Logging.get_On' not found. at System.Net.Http.HttpMessageInvoker.SendAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) [0x0003d] in <09d4a140061c48849b6322067e841931>:0 at System.Net.Http.HttpClient.SendAsync (System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) [0x00049] in <09d4a140061c48849b6322067e841931>:0 at System.Net.Http.HttpClient.GetAsync (System.Uri requestUri, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) [0x0000c] in <09d4a140061c48849b6322067e841931>:0 at System.Net.Http.HttpClient.GetAsync (System.Uri requestUri, System.Net.Http.HttpCompletionOption completionOption) [0x00008] in <09d4a140061c48849b6322067e841931>:0 at System.Net.Http.HttpClient.GetAsync (System.Uri requestUri) [0x00000] in <09d4a140061c48849b6322067e841931>:0 at System.Net.Http.HttpClient.GetAsync (System.String requestUri) [0x00008] in <09d4a140061c48849b6322067e841931>:0 at HttpClientTest.Program.Main (System.String[] args) [0x00007] in <8019b64f4f864b30ba0f2936c90cfab0>:0 ``` In another app (which I can't post here), I get others as well: ``` System.MissingFieldException: Field 'System.Net.ExceptionHelper.WebPermissionUnrestricted' not found. ``` ``` System.MissingMethodException: Method 'System.Net.ServicePointManager.CloseConnectionGroups' not found. ``` Same results on Mono 4.8.0 or 5.0.0." +19915 area-System.Net Workaround Win7 client certificate behavior difference Win7 and below OSs will always present a list of trusted certificates that must be matched by the client certificate. This causes some of our tests to fail when the test CA root isn't installed. Fixes #19699. +19916 area-System.Security Fix Windows X509Certificate2.ToString(true) for ephemeral private keys AppendPrivateKeyInfo handled not being able to resolve the container details for a private key, but an ephemeral private key caused a NullReferenceException instead of the caught CryptographicException. The comments in the code suggest this worked properly at one time, but there was no test guaranteeing functionality. This change handles the null return from GetPrivateKeyCsp, and adds some tests to ensure this doesn't break again. Fixes #19888 (in master, rel TBD) +19918 area-System.Data "Desktop: System.Data.SqlClient.Tests.TcpDefaultForAzureTest.NonAzureNoProtocolConnectionTest failed with ""System.TypeInitializationException""" Failed test: System.Data.SqlClient.Tests.TcpDefaultForAzureTest.NonAzureNoProtocolConnectionTest Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/59/testReport/System.Data.SqlClient.Tests/TcpDefaultForAzureTest/NonAzureNoProtocolConnectionTest/ Configuration: outerloop_netfx_windows_nt_debug MESSAGE: ~~~ System.TypeInitializationException : The type initializer for 'System.Data.SqlClient.ManualTesting.Tests.DataTestUtility' threw an exception. ---- System.NullReferenceException : Object reference not set to an instance of an object. ~~~ STACK TRACE: ~~~ at System.Data.SqlClient.ManualTesting.Tests.DataTestUtility.IsUsingManagedSNI() at System.Data.SqlClient.Tests.TcpDefaultForAzureTest.NonAzureNoProtocolConnectionTest() in D:\j\workspace\outerloop_net---903ddde6\src\System.Data.SqlClient\tests\FunctionalTests\TcpDefaultForAzureTest.cs:line 39 ----- Inner Stack Trace ----- at System.Data.SqlClient.ManualTesting.Tests.DataTestUtility..cctor() in D:\j\workspace\outerloop_net---903ddde6\src\System.Data.SqlClient\tests\ManualTests\DataCommon\DataTestUtility.cs:line 18 ~~~ +19919 area-System.Data Fix IsUsingManagedSNI on desktop Fixes https://github.com/dotnet/corefx/issues/19918 to get desktop run green again cc: @corivera +19920 area-System.Net Decrease number of socket instances in SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync Larger number causes listen queue to be exceeded, resulting in client failures due to connection being rejected by server. Closes https://github.com/dotnet/corefx/issues/19702 (we need to revisit perf testing for this area all-up) cc: @cipop, @steveharter +19921 area-System.IO Move Windows ErrorMode setting from framework/runtime to the host Follow up on https://github.com/dotnet/corefx/pull/19801#discussion_r116656403 The current scheme where the framework is trying to flip the Windows error mode around some I/O operations is bug prone (we are likely missing it on number of APIs - we do not have any testing for this), and outdated (it made sense 20 years ago for WinForms and floppies; it does not make sense for cloud and modern devices). Instead, the Windows error mode should be set once in the host during startup if applicable. Runtime and framework should get out of business of trying to flip it back and forth. +19922 area-System.Net System.Net.Sockets.Async.Performance.Tests failed to generate the test result System.Net.Sockets.Async.Performance.Tests failed to generate the test result Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170518.01/workItem/System.Net.Sockets.Async.Performance.Tests/wilogs ~~~ 2017-05-18 00:45:49,117: INFO: proc(54): run_and_log_output: Output: executing ulimit -c unlimited 2017-05-18 00:45:49,185: INFO: proc(54): run_and_log_output: Output: xUnit.net console test runner (64-bit .NET Core) 2017-05-18 00:45:49,186: INFO: proc(54): run_and_log_output: Output: Copyright (C) 2014 Outercurve Foundation. 2017-05-18 00:45:49,186: INFO: proc(54): run_and_log_output: Output: 2017-05-18 00:45:49,252: INFO: proc(54): run_and_log_output: Output: Discovering: System.Net.Sockets.Async.Performance.Tests 2017-05-18 00:45:49,378: INFO: proc(54): run_and_log_output: Output: Discovered: System.Net.Sockets.Async.Performance.Tests 2017-05-18 00:45:49,427: INFO: proc(54): run_and_log_output: Output: Starting: System.Net.Sockets.Async.Performance.Tests Killed ~~~ +19923 area-Infrastructure "Test: System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests/Roundtrip_CrossProcess failed with ""System.ComponentModel.Win32Exception""" Opened on behalf of @Jiayili1 The test `System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests/Roundtrip_CrossProcess(obj: Tree`1 { Left = Tree`1 { Left = Tree`1 { ... }, Right = Tree`1 { ... }, Value = 2 }, Right = Tree...` has failed. System.ComponentModel.Win32Exception : Cannot allocate memory Stack Trace: at Interop.Sys.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Int32& lpChildPid, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd) in /root/corefx/src/Common/src/Interop/Unix/System.Native/Interop.ForkAndExecProcess.cs:line 41 at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) in /root/corefx/src/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs:line 264 at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) in /root/corefx/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs:line 1319 at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, RemoteInvokeOptions options) in /root/corefx/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs:line 189 at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.Roundtrip_CrossProcess(Object obj) in /root/corefx/src/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTests.cs:line 731 Build : Master - 20170518.01 (Portable Core Tests) Failing configurations: - fedora.25.amd64-x64 - Release - Debug - Ubuntu.1404.Amd64-x64 - Release - Debug - Ubuntu.1610.Amd64-x64 - Release - Debug - suse.422.amd64-x64 - Release - Debug - Ubuntu.1704.Amd64-x64 - Release - Debug - Ubuntu.1604.Amd64-x64 - Release - Debug - Centos.73.Amd64-x64 - Release - Debug - Debian.87.Amd64-x64 - Release - Debug - RedHat.73.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170518.01/workItem/System.Runtime.Serialization.Formatters.Tests/analysis/xunit/System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests~2FRoundtrip_CrossProcess(obj:%20Tree%601%20%7B%20Left%20=%20Tree%601%20%7B%20Left%20=%20Tree%601%20%7B%20...%20%7D,%20Right%20=%20Tree%601%20%7B%20...%20%7D,%20Value%20=%202%20%7D,%20Right%20=%20Tree... +19924 area-System.Collections System.Collections.Performance.Tests failed to generate the test result System.Collections.Performance.Tests failed to generate the test result Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170518.01/workItem/System.Collections.Performance.Tests/wilogs ~~~ 2017-05-18 00:36:29,167: INFO: proc(54): run_and_log_output: Output: Discovering: System.Collections.Performance.Tests 2017-05-18 00:36:29,299: INFO: proc(54): run_and_log_output: Output: Discovered: System.Collections.Performance.Tests 2017-05-18 00:36:29,361: INFO: proc(54): run_and_log_output: Output: Starting: System.Collections.Performance.Tests 2017-05-18 00:43:03,575: INFO: proc(54): run_and_log_output: Output: 2017-05-18 00:43:03,575: INFO: proc(54): run_and_log_output: Output: Unhandled Exception: OutOfMemoryException. 2017-05-18 00:43:35,433: INFO: proc(54): run_and_log_output: Output: /home/helixbot/dotnetbuild/work/5a513eea-2281-486a-a1fd-88e82eed7b3d/Work/3076bf4c-9f2a-40ea-ad95-97a6ea3e3f69/Unzip/RunTests.sh: line 89: 4009 Aborted (core dumped) $RUNTIME_PATH/dotnet xunit.console.netcore.exe System.Collections.Performance.Tests.dll -xml testResults.xml -parallel none -notrait category=nonnetcoreapptests -notrait category=failing -notrait category=nonlinuxtests 2017-05-18 00:43:35,433: INFO: proc(54): run_and_log_output: Output: command exited with ExitCode: 134 2017-05-18 00:43:35,434: INFO: proc(54): run_and_log_output: Output: command failed, trying to collect dumps 2017-05-18 00:43:36,097: INFO: proc(54): run_and_log_output: Output: corefile: core 2017-05-18 00:43:36,098: INFO: proc(54): run_and_log_output: Output: uploading core to dumpling service Killed ~~~ +19925 area-System.Security "Tests under: System.Security.Cryptography.X509Certificates.Tests.X509StoreMutableTests_OSX failed with ""Interop+AppleCrypto+AppleCommonCryptoCryptographicException""" Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.X509Certificates.Tests.X509StoreMutableTests_OSX/AddPrivateAfterPublic` has failed. Interop+AppleCrypto+AppleCommonCryptoCryptographicException : write permissions error Stack Trace: at Interop.AppleCrypto.X509StoreAddCertificate(SafeKeychainItemHandle certOrIdentity, SafeKeychainHandle keychain) in /Users/buildagent/agent/_work/23/s/corefx/src/Common/src/Interop/OSX/System.Security.Cryptography.Native.Apple/Interop.X509Store.cs:line 41 at System.Security.Cryptography.X509Certificates.X509Store.Add(X509Certificate2 certificate) in /Users/buildagent/agent/_work/23/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Store.cs:line 139 at System.Security.Cryptography.X509Certificates.Tests.X509StoreMutableTests_OSX.AddPrivateAfterPublic() in /Users/buildagent/agent/_work/23/s/corefx/src/System.Security.Cryptography.X509Certificates/tests/X509StoreMutableTests.OSX.cs:line 119 Build : 2.0.0 - 20170518.01 (Portable Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170518.01/workItem/System.Security.Cryptography.X509Certificates.Tests/analysis/xunit/System.Security.Cryptography.X509Certificates.Tests.X509StoreMutableTests_OSX~2FAddPrivateAfterPublic +19927 area-System.Runtime Add support to System.Runtime.InteropServices.RuntimeInformation to determine what the currently executing framework is We have a couple of places where we would like to run platform specific code without having to cross-compile. Essentially the same thing as https://github.com/dotnet/corefx/blob/master/src/Common/tests/System/PlatformDetection.cs#L21. However using `RuntimeInformation.FrameworkDescription` seems fragile. Would it make sense to expose an API similar to `RuntimeInformation.IsOSPlatform` here i.e. `RuntimeInformation.IsFramework`? +19928 area-System.Reflection Add API to get an AssemblyName that doesn't throw on a native binary I've seen patterns like this in countless tools: ```C# try { return AssemblyName.GetAssemblyName(sourcePath); } catch(BadImageFormatException) { return null; } ``` It would be better if we could just do: ``` AssemblyName name; return AssemblyName.TryGetAssemblyName(sourcePath, out name) ? name : null; ``` API signature: ```C# public static bool TryGetAssemblyName(string assemblyFile, out AssemblyName assemblyName); ``` By making this a new API we don't change the behavior of the existing API. By making the API determine if a file is an assembly and returning the name we avoid having to open the file twice. The other alternative available today requires using System.Reflection.Metadata which is not part of netstandard and requires redistributing a sizeable dependency (800KB), or writing your own PE parsing code (which requires opening the file twice). /cc @gkhanna79 +19929 area-System.Security System.Security.PermissionSet im getting the following error System.TypeLoadException: 'Could not load type 'System.Security.PermissionSet' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.' When i try to open a MySqlConnection with .Net Core 2. Did you know why? +19930 area-Infrastructure Need a way to configure the project in corefx to work with CLI Currently, the project in corefx cannot be executed using CLI command. Need a way to support it. e.g. https://github.com/dotnet/corefx/blob/master/src/Microsoft.XmlSerializer.Generator/src/Microsoft.XmlSerializer.Generator.csproj Refer the issue https://github.com/dotnet/cli/issues/6612 @mellinoe +19931 area-Infrastructure PlatformDetection IsWinRT and IsNetNative return confusing values when running uap or uap-aot tests While exploring solutions to #19907, I discovered the `PlatformDetection` properties `IsWinRT` and `IsNetNative` return confusing values when running uap or uap-aot tests. For example: ``` // Test against .NET Core (non-UAP) msbuild /t:rebuildandtest // Result (good) IsWinRT=False, IsNetNative=False // Test against .NET Core UAP without .NET Native (ILC) (F5 scenario) msbuild /t:rebuildandtest /p:TargetGroup=uap // Result (weird, why is IsNetNative true?) IsWinRT=True, IsNetNative=True // Test against .NET Core UAP with .NET Native (ILC) msbuild /t:rebuildandtest /p:TargetGroup=uapaot // Result (weird, why is IsWinRT false? Is it because it is now a native app?) IsWinRT=False, IsNetNative=True ``` +19932 area-System.Runtime Path.Combine has issues with null terminated strings "When dealing with null terminated strings from native applications Path.Combine throws an exception. This should not happen no? ``` Path.Combine(""abc\0\0"", ""abc"") 'Path.Combine(""abc\0\0"", ""abc"")' threw an exception of type 'System.ArgumentException' Data: {System.Collections.ListDictionaryInternal} Message: ""Illegal characters in path."" StackTrace: "" at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)\r\n at System.IO.Path.Combine(String path1, String path2)"" TargetSite: {Void CheckInvalidPathChars(System.String, Boolean)} ```" +19933 area-System.Security On OSX X509Chain doesn't correctly check CRL revocation with ChainPolicy X509RevocationMode.Online X509Chain reports no problems when a certificate has been revoked via a CRL. This was discovered in a WCF test and is tracked in dotnet/wcf#1926 +19934 area-System.Security Tests needed for X509Chain with revoked certificates The WCF team discovered that a recent change for OSX broke certificate revocation checks when using a CRL. The corefx repo should have tests which should have caught this issue. +19936 area-System.Net Update NETStandard.Library to reference System.Net.Http 4.3.2 When I create an ASP.NET Core 1.1 app that uses Azure SDK libraries to talk to Azure Key Vault and Azure AD on .NET 4.6.2 I get the following error: ``` System.TypeLoadException: Inheritance security rules violated by type: 'System.Net.Http.WebRequestHandler'. Derived types must either match the security accessibility of the base type or be less accessible. at Microsoft.Rest.ServiceClient`1.CreateRootHandler() at Microsoft.Azure.KeyVault.KeyVaultClient..ctor(ServiceClientCredentials credentials, DelegatingHandler[] handlers) at AspNetCoreIdentityServiceTest.Startup.<b__6_0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.d__7.MoveNext() ``` Which was fixed by https://github.com/dotnet/corefx/issues/11100. I can get the error to go away by directly referencing System.Net.Http 4.3.2. Looking at my assets.json file it looks like NETStandard.Library 1.6.1 is pulling in the older version of System.Net.Http. Can we update NETStandard.Library to pull in the newer fixed version of System.Net.Http? Presumably we would then need to update the ASP.NET Core 1.1 packages. https://github.com/dotnet/standard/issues/354 tracks the similar issue for NETStandard.Library 2.0.0. @ericstj @DamianEdwards @Eilon @karelz +19937 area-System.Data Porting Sqlconnection.GetSchema Porting the SqlConnection.GetSchema API from .Net Framework and adding the related tests and constants to SqlClient. Addresses https://github.com/dotnet/corefx/issues/19797 +19938 area-System.Net AcceptWebSocketAsync_ValidSubProtocol_Success failed with System.Net.HttpListenerException : Address already in use "Only visible in infrastructure log as a later test timed out https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170518.01/workItem/System.Net.HttpListener.Tests/wilogs ``` 2017-05-17 17:38:39,340: INFO: proc(54): run_and_log_output: Output: System.Net.Tests.HttpListenerContextTests.AcceptWebSocketAsync_ValidSubProtocol_Success(clientProtocols: [\""MyProtocol1\"", \""MyProtocol2\""], serverProtocol: \""MyProtocol2\"") [FAIL] 2017-05-17 17:38:39,341: INFO: proc(54): run_and_log_output: Output: System.Net.HttpListenerException : Address already in use 2017-05-17 17:38:39,341: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-17 17:38:39,341: INFO: proc(54): run_and_log_output: Output: at System.Net.HttpEndPointManager.GetEPListener(String host, Int32 port, HttpListener listener, Boolean secure, Boolean& alreadyExists) 2017-05-17 17:38:39,341: INFO: proc(54): run_and_log_output: Output: at System.Net.HttpEndPointManager.RemovePrefixInternal(String prefix, HttpListener listener) 2017-05-17 17:38:39,342: INFO: proc(54): run_and_log_output: Output: at System.Net.HttpEndPointManager.RemoveListener(HttpListener listener) 2017-05-17 17:38:39,342: INFO: proc(54): run_and_log_output: Output: at System.Net.HttpListener.Close(Boolean force) 2017-05-17 17:38:39,342: INFO: proc(54): run_and_log_output: Output: at System.Net.HttpListener.Dispose() 2017-05-17 17:38:39,342: INFO: proc(54): run_and_log_output: Output: at System.Net.HttpListener.Close() 2017-05-17 17:38:39,342: INFO: proc(54): run_and_log_output: Output: at System.Net.Tests.HttpListenerContextTests.Dispose() 2017-05-17 17:38:39,342: INFO: proc(54): run_and_log_output: Output: at ReflectionAbstractionExtensions.DisposeTestClass(ITest test, Object testClass, IMessageBus messageBus, ExecutionTimer timer, CancellationTokenSource cancellationTokenSource) ```" +19939 area-System.Net AcceptWebSocketAsync_InvalidSubProtocol_ThrowsArgumentException failed with ExtendedSocketException : Device not configured "Only visible in infrastructure log as a later test timed out https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170518.01/workItem/System.Net.HttpListener.Tests/wilogs ``` 2017-05-17 17:38:38,891: INFO: proc(54): run_and_log_output: Output: System.Net.Tests.HttpListenerContextTests.AcceptWebSocketAsync_InvalidSubProtocol_ThrowsArgumentException(subProtocol: \""random:text\"") [FAIL] 2017-05-17 17:38:38,891: INFO: proc(54): run_and_log_output: Output: System.Net.WebSockets.WebSocketException : Unable to connect to the remote server 2017-05-17 17:38:38,891: INFO: proc(54): run_and_log_output: Output: ---- System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : Device not configured 2017-05-17 17:38:38,892: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-17 17:38:38,892: INFO: proc(54): run_and_log_output: Output: at System.Net.WebSockets.WebSocketHandle.d__24.MoveNext() 2017-05-17 17:38:38,892: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,892: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,892: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-17 17:38:38,892: INFO: proc(54): run_and_log_output: Output: at System.Net.WebSockets.ClientWebSocket.d__16.MoveNext() 2017-05-17 17:38:38,892: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,892: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,893: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-17 17:38:38,893: INFO: proc(54): run_and_log_output: Output: at System.Net.Tests.HttpListenerContextTests.d__24.MoveNext() 2017-05-17 17:38:38,893: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,893: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,893: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-17 17:38:38,893: INFO: proc(54): run_and_log_output: Output: at System.Net.Tests.HttpListenerContextTests.d__16.MoveNext() 2017-05-17 17:38:38,893: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,894: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,894: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-17 17:38:38,894: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,894: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,894: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-17 17:38:38,894: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,895: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,895: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-17 17:38:38,895: INFO: proc(54): run_and_log_output: Output: ----- Inner Stack Trace ----- 2017-05-17 17:38:38,895: INFO: proc(54): run_and_log_output: Output: at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) 2017-05-17 17:38:38,895: INFO: proc(54): run_and_log_output: Output: at System.Net.Dns.ResolveCallback(Object context) 2017-05-17 17:38:38,895: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,896: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,896: INFO: proc(54): run_and_log_output: Output: at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) 2017-05-17 17:38:38,896: INFO: proc(54): run_and_log_output: Output: at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult) 2017-05-17 17:38:38,896: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) 2017-05-17 17:38:38,896: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,896: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,897: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-17 17:38:38,897: INFO: proc(54): run_and_log_output: Output: at System.Net.WebSockets.WebSocketHandle.d__25.MoveNext() 2017-05-17 17:38:38,897: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,897: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,897: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-17 17:38:38,897: INFO: proc(54): run_and_log_output: Output: at System.Net.WebSockets.WebSocketHandle.d__24.MoveNext() ```" +19940 area-System.Net EndGetClientCertificate_NullAsyncResult_ThrowsArgumentException failed with ExtendedSocketException : Connection refused Only visible in infrastructure log as a later test timed out https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170518.01/workItem/System.Net.HttpListener.Tests/wilogs ``` 2017-05-17 17:38:37,926: INFO: proc(54): run_and_log_output: Output: System.Net.Tests.HttpListenerRequestTests.EndGetClientCertificate_NullAsyncResult_ThrowsArgumentException [FAIL] 2017-05-17 17:38:37,928: INFO: proc(54): run_and_log_output: Output: System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : Connection refused 127.0.0.1:1037 2017-05-17 17:38:37,933: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-17 17:38:38,076: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 2017-05-17 17:38:38,076: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) 2017-05-17 17:38:38,076: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port) 2017-05-17 17:38:38,076: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,077: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,077: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port) 2017-05-17 17:38:38,077: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.Socket.Connect(String host, Int32 port) 2017-05-17 17:38:38,077: INFO: proc(54): run_and_log_output: Output: at System.Net.Tests.HttpListenerFactory.GetConnectedSocket() 2017-05-17 17:38:38,077: INFO: proc(54): run_and_log_output: Output: at System.Net.Tests.HttpListenerRequestTests.d__31.MoveNext() 2017-05-17 17:38:38,077: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,078: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,078: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-17 17:38:38,078: INFO: proc(54): run_and_log_output: Output: at System.Net.Tests.HttpListenerRequestTests.d__18.MoveNext() 2017-05-17 17:38:38,078: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,078: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,079: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-17 17:38:38,079: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,079: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,079: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-17 17:38:38,079: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-17 17:38:38,079: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-17 17:38:38,079: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +19943 area-System.Net Fix Http Unit Tests Fixed the System.Net.Http Unit Tests so that they build and run properly for uap and uap-aot scenarios. Removed the ICloneable.cs file which is no longer needed now that master branch has ICloneable support in it. +19946 area-Infrastructure Changes required to get Linux Validation working CC: @weshaggard @ericstj @danmosemsft These are all of the changes required for the validation on non-Windows machines for non-Windows RIDs. After this, the only thing missing will be to add the APICompat runs in order to complete issue #18083 +19947 area-System.Net Investigate WinHttpException: buffer too small For #7812. Not able to repro locally, want to get more info from CI +19949 area-Infrastructure Avoid having runtime specific assets when they aren't necessary. Due to an issue in nuget which will hopefully be address with https://github.com/NuGet/Home/issues/5192 some of our packages end up with the wrong asset being selected when we have both runtime and lib assets in the package. For some of our packages that isn't necessary. Example: System.Security.Permissions has a runtime\net461 asset and a lib\netstandard2.0 asset and when a netcoreapp2.0 project has a fallback of net461 we will prefer the net461 asset over the netstandard2.0 asset which will not work on netcoreapp2.0. See https://github.com/dotnet/corefx/issues/19929. We should do an audit of other packages in this situation to avoid it. +19952 area-System.Net Fix some Http tests for UAP Fixed some of the HttpRequestMessage tests for UAP. HttpRequestMessage has a different default value for the Version field on UAP platforms compared to netcore or netfx. Added PlatformDetection.IsUap to support this. Implementation of this property was based on investigations for #19907. This property is true on both 'uap' and 'uap-aot' platforms. Fixes #19907 +19953 area-System.Data Review SqlClient tests on Desktop for scenarios missing from .Net Core Review SqlClient tests on Desktop for scenarios which do not satisfy the .Net Core surface area. The review will be targeted at identifying the usage of Data Structures like DataTable , DataRow etc which were added to System.Data.Common in 2.0 and should have related functionality in .Net Core. One of such scenarios was DataTable/TVP support in SqlClient SqlParameter +19954 area-Serialization Fix XmlUnknownElementAndEventHandlerTest. Fix XmlSerializerTests.XmlUnknownElementAndEventHandlerTest in ReflectionOnly mode. Fix #14259. +19955 area-System.Net Re-enable failing httplistener tests on osx. cc @hughbe @stephentoub fixes #19593 #19986 +19956 area-System.Diagnostics Improve UseShellExecute on Unix "This is just a question because from what I read in google there seems to be a problem with it. Does it work/will it work in 2.0? ```c# private bool OpenBrowser(string url) { if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { Process.Start(new ProcessStartInfo(""cmd"", $""/c start {url.Replace(""&"", ""^&"")}"") { CreateNoWindow = true }); return true; } if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { Process.Start(""xdg-open"", url); return true; } if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { Process.Start(""open"", url); return true; } return false; } ``` " +19957 area-Infrastructure Change Build to BuildMoniker to get correct build id +19958 area-System.Runtime Enable more System.Runtime.Tests coverage for ILC "A lot the .netcore.cs files are testing stuff that ""should"" work in .Net Native (and tend to represent the newer stuff which *isn't* likely to have been ported yet). They should be active in the UapAot build." +19959 area-System.IO Fix Unix missing file state In the original .NET implementation a missing file never throws directly with FileInfo. Attributes get the error result from Windows (-1) and times aren't initialized. +19960 area-System.Net System.Net.Primitives for UWP 1. Disabling failing UWP test (tracked by #19909) 2. Unifying Windows implementations +19961 area-System.Data Port of PR https://github.com/dotnet/corefx/pull/19905 Porting code from NetFx which enables DataTables to be passing as a parameter in SqlParameter. Tested with Dapper, and EF tests. Dapper failures for netcoreapp2.0 reduce with this change. No failures in EF tests. Added new test to test DataTable as a parameter. PR in master https://github.com/dotnet/corefx/pull/19905 Fixes: #19708 +19963 area-System.Net HttpClient WebRequestHandler.CachePolicy Replacement I've run the Portability Analyzer and found that HttpClient does not implement WebRequestHandler.CachePolicy and I don't seem to be able to find any replacement for this. @karelz suggested asking here. A [similar question](http://stackoverflow.com/questions/43272530/whats-the-alternative-to-webrequesthandler-in-net-core) was asked on Stack Overflow and has no answer. I would like to know if there is any equivalent to WebRequestHandler.CachePolicy in .NET Core for use with HttpClient. If there is no equivalent, I would like to know what the effective equivalent default value is in .NET Core? More specifically, .NET Core's implementation is equivalent to a RequestCacheLevel of BypassCache OR CacheOnly OR CacheIfAvailable OR Revalidate OR Reload OR NoCacheNoStore? Furthermore, is it consistent across platforms? From examining the [source](https://github.com/dotnet/corefx/tree/master/src/System.Net.Http/src/System/Net/Http), I think it might be BypassCache, but I'm not sure and would like confirmation. I'm also unsure if an OS level cache is used on Windows or elsewhere or whether .NET Core bypasses those. If BypassCache is not the current equivalent default on .NET Core or if any intermediate caches such as OS caches are being used on any platform, I think there needs to be the option to set BypassCache, so we're able to implement our own caching on top of HttpClient. +19964 area-System.Net NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds failed with System.Net.Http.CurlException : Problem with the SSL CA cert (path? access rights?) again https://mc.dot.net/#/user/mmitche/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fportable~2Fcli~2F//workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test~2FNoCallback_RevokedCertificate_NoRevocationChecking_Succeeds ``` nhandled Exception of Type System.Net.Http.HttpRequestException Message : System.Net.Http.HttpRequestException : An error occurred while sending the request.\n---- System.Net.Http.CurlException : Problem with the SSL CA cert (path? access rights?) Stack Trace : at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in /mnt/j/workspace/dotnet_corefx/master/GenPRTest/portable-linux-Config_Debug+OuterLoop_false_prtest/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 462 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__9.MoveNext() in /mnt/j/workspace/dotnet_corefx/master/GenPRTest/portable-linux-Config_Debug+OuterLoop_false_prtest/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.ServerCertificates.cs:line 193 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) in /mnt/j/workspace/dotnet_corefx/master/GenPRTest/portable-linux-Config_Debug+OuterLoop_false_prtest/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 644 at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) in /mnt/j/workspace/dotnet_corefx/master/GenPRTest/portable-linux-Config_Debug+OuterLoop_false_prtest/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandl ``` https://github.com/dotnet/corefx/issues/19701 simlar +19965 area-System.IO Unix throws the wrong exception creating a FileStream Same underlying issue as #19850. Need to update CoreLib to throw DirectoryNotFound if the directory doesn't exist. (`/directory/doesnotexist/doesnotexist`) +19967 area-System.Net System.Net.* marked as ConditionalFact/Theory tests fail in Desktop These tests are currently not running for Desktop in Helix/CI/Jenkins due to: https://github.com/xunit/xunit/issues/1291 in our side we are tracking this with https://github.com/dotnet/corefx/issues/18483 Affected projects: * `System.Net.WebSockets.Client.Tests` * `System.Net.HttpListener.Tests` I currently have a fix out for this that needs to go in on Xunit's repo, be published to nuget, and then we can consume it. (https://github.com/xunit/xunit/pull/1292) However there is a way to execute this tests on the meantime: Download: https://1drv.ms/u/s!AmGrqT8fQnxGryZOE1E5KSce4WwT build corefx from root for netfx (`build.cmd -framework:netfx`) Move the dlls that are inside the .zip that you download (Debug or Release) to corefx\bin\testhost\netfx-BuildConfiguration\ and corefx\bin\runtime\netfx-BuildConfiguration\ Then run the test project with `/p:TargetGroup=netfx` Pointing this out as we should at least take a look at the failures to see if there is concerning reason why they are failing. i.e Compat Issue. cc: @davidsh @CIPop @danmosemsft @stephentoub FYI: @hughbe +19968 area-System.Data Throw exception on enlisting SqlConnection in transaction The PR does the following 1. Brings in Enlist keyword on connection string. 2. Throws exceptions when SqlConnection.Open or SqlConnection.OpenAsync() is called in Transaction Scope 3. Throws Exception when SqlConnection.EnlistTransaction is called. Addresses https://github.com/dotnet/corefx/issues/19894 +19970 area-System.Data Announcement: Call for help: System.Data.SqlClient in .NET Core 2.0 We have found quite non-trivial gaps in System.Data.SqlClient based on Preview 1 feedback. First, thanks everyone helping us discovering them, understand them and fixing them. Also thanks for the patience with the lower-than-desired quality of the area. Special shout outs to @NickCraver @FransBouma @RickStrahl @cskwg and @cincuranet We have had several meetings in last few days and we are working closely with the Data.SqlClient team. They kindly heard us out and increased the number of people focusing on .NET Core 2.0 shipping from 1 to 3! So huge thanks to Ken (new manager of the area) for making it happen! And thanks Data team for helping us to get the area in high-quality shape: @saurabh500 @corivera @geleems Here's update on the remaining work in the space (from @saurabh500): [Query of all SqlClient bugs](https://github.com/dotnet/corefx/issues?utf8=%E2%9C%93&q=is%3Aopen%20label%3Aarea-System.Data.SqlClient%20milestone%3A2.0.0) We have a PRs planned to address issues in the query above for which we have a definite timelines. 1. PR #19894 - due EOD today 2. PR #19797 - PR in master, testing EF and Dapper 3. PR #19708 - PR merged in master. Port to 2.0 pending. 4. PR #19749 - This is an aggregate of issues that came out due to customer feedback. We are addressing or already have addressed everything mentioned here through other issues. 5. PR #19825 - PR up from @FransBouma. Needs to be driven to completion. 6. PR #19826 - PR up from @FransBouma. Needs to be driven to completion. The three issues which can consume time beyond next week are 1. #19953 - Review SqlClient tests on Desktop for scenarios missing from .Net Core. 2. #19913 - Analyze SqlParameter on Desktop to find out scenarios of missing support for DataTable 3. #19836 - Investigate use of LongRunning continuation option in SqlClient async reads Apart from these above issues, we will be looking at **additional testing of .Net Core**. In case they uncover any additional issues, we will open them and bring them to Shiproom. +19971 area-System.Net [Managed bug] HttpListenerResponse should align with Windows behaviour for after disposing/sending headers The following tests are disabled under this issue: - Redirect_Disposed_ThrowsObjectDisposedException - CloseResponseEntity_AlreadyDisposed_ThrowsObjectDisposedException - OutputStream_GetDisposed_ThrowsObjectDisposedException - StatusDescription_SetDisposed_ThrowsObjectDisposedException - ContentType_SetAfterHeadersSent_DoesNothing - RedirectLocation_SetAfterHeadersSent_DoesNothing - StatusCode_SetAfterHeadersSent_DoesNothing - KeepAlive_SetAfterHeadersSent_DoesNothing +19972 area-System.Net [HttpListener] [Managed] HttpListenerResponse should set properties directly in the Headers property on set/get Causes the following test failures: - [x] ContentType_SetAndSend_Success - [x] ContentType_SetNullEmptyOrWhitespace_ResetsContentType - [x] RedirectLocation_SetAndSend_Success - [x] RedirectLocation_SetNullOrEmpty_ResetsRedirectLocation - [x] Redirect_Invoke_SetsRedirectionProperties - [x] KeepAlive_ContentLengthBoundaryAndRequestHttpVersionMinorIsZero_DoesNotChangeWhenSendingHeaders +19973 area-System.Net [Managed bug] HttpListenerResponse should send chunked by default The following issues are disabled under this issue: - ContentLength64_GetSet_ReturnsExpected - ContentLength64_SetDisposed_ThrowsObjectDisposedException - ContentLength64_SetNegative_ThrowsArgumentOutOfRangeException - ContentLength64_NotSetAndGetAfterSendingHeaders_ReturnValueDependsOnStatusCode --- - SendChunked_GetSet_ReturnsExpected - SendChunked_SetDisposed_ThrowsObjectDisposedException - CloseResponseEntity_ChunkedNotSentHeaders_ModifiesContentLength +19974 area-System.Data How do I generate Nuget package for an assembly in CoreFx I am trying to create a Nuget package in CoreFx for System.Data.SqlClient using build-packages.cmd However that only creates the packages for Microsoft.* .nupkg How do I go about creating a package for System.Data.SqlClient or any other assembly? +19975 area-System.Net [HttpListener] [Managed] HttpListenerResponse should align with Windows behaviour for Close(byte[], bool) The following tests are disabled with this issue: - [x] CloseResponseEntity_SendToClosedConnection_DoesNotThrow - [x] CloseResponseEntity_ChunkedSentHeaders_DoesNotModifyContentLength - [x] CloseResponseEntity_NotChunkedSentHeaders_SendsEntityWithoutModifyingContentLength - [x] CloseResponseEntity_AllContentLengthAlreadySent_DoesNotSendEntity - [ ] Abort_Invoke_ForciblyTerminatesConnection +19976 area-System.Net [Managed bug] HttpListenerResponse should align with Windows behaviour for StatusCode/StatusDescription Following tests are disabled with this issue: - StatusCode_SetAndSend_Success - StatusDescription_GetWithCustomStatusCode_ReturnsExpected - StatusDescription_SetCustom_Success - StatusDescription_SetNull_ThrowsArgumentNullException - StatusDescription_SetInvalid_ThrowsArgumentException +19977 area-System.Net [HttpListener] [Managed] HttpListenerResponse should align with Windows behaviour for protocol versions Following tests are disabled with this issue: - ProtocolVersion_SetValid_ReturnsExpected - SendChunked_SetTrueAndRequestHttpVersionMinorIsZero_ThrowsInvalidOperationException - KeepAlive_NoBoundaryAndRequestHttpRequestVersionMinorIsZero_SetsToFalseWhenSendingHeaders +19978 area-System.Net [Managed bug] HttpListenerResponse should align with Windows behaviour for KeepAlive Following tests are disabled with this issue: - KeepAlive_GetSet_ReturnsExpected - KeepAlive_SetDisposed_ThrowsObjectDisposedException +19979 area-System.Net [Managed Bug] HttpListener.GetContextAsync's IAsyncResult with invalid inputs should not hang forever Following tests are disabled with this issue: - EndGetContext_InvalidAsyncResult_ThrowsArgumentException +19980 area-System.Net [Managed bug] HttpListenerResponseStream.Write should validate the IAsyncResult Following tests are disabled with this issue: - EndWrite_InvalidAsyncResult_ThrowsArgumentException - EndWrite_CalledTwice_ThrowsInvalidOperationException +19981 area-System.Net [HttpListener] [Managed] HttpListenerResponseStream should validate how much or little we write Following tests are disabled with this issue: - Write_TooMuch_ThrowsProtocolViolationException - Write_TooLittleAsynchronouslyAndClose_ThrowsInvalidOperationException - Write_TooLittleSynchronouslyAndClose_ThrowsInvalidOperationException +19982 area-System.Net [Managed bug] HttpListenerContext.AcceptWebSocketAsync should send a handshake to the WebSocket Following tests are disabled with this issue: - AcceptWebSocketAsync_SocketSpoofingAsWebSocket_ThrowsWebSocketException +19983 area-System.Net [HttpListener] [Managed] Reading from a closed connection should throw HttpListenerException Following tests are disabled with this issue: - Read_FromClosedConnectionAsynchronously_ThrowsHttpListenerException - Read_FromClosedConnectionSynchronously_ThrowsHttpListenerException +19984 area-System.Net [Managed bug] HttpListenerRequest.Read with chunked input should align with Windows behaviour Following tests are disabled with this issue: - Read_LargeLengthAsynchronous_Success - Read_LargeLengthSynchronous_Success +19985 area-System.Net [Managed bug] HttpListenerRequest.EndRead should validate the IAsyncResult Following tests are disabled with this issue: - EndRead_InvalidAsyncResult_ThrowsArgumentException - EndRead_CalledTwice_ThrowsInvalidOperationException +19986 area-System.Net "[Managed bug] Adding the prefix ""http://192./"" should fail" Following tests are disabled with this change: - Add_InvalidPrefix_ThrowsHttpListenerException_Windows +19987 area-System.Runtime [Proposal] String.Format specifier for IEnumerable "I feel like I have to include lists in strings quite often, which end up something like: ``` $""Name not found. Allowed names are: {string.Join("", "", names)}."" ``` This has two problems: 1. It's verbose (even has nested quotes) 2. It allocates extra string for the result of Join (potentially large) I would like to propose a custom format specifier instead (name is up for consideration): ``` $""Name not found. Allowed names are: {names:J', '}."" ``` And for lists of formattables (saves N+1 allocations instead of 1): ``` $""Byte is incorrect. Allowed bytes are: {string.Join("", "", bytes.Select(b => b.ToString(""X2"")))}"" // could become $""Byte is incorrect. Allowed bytes are: {bytes:J', ':X2}."" ```" +19988 area-System.Diagnostics Fix Process.Start() on Unix platforms to not leak file descriptors of redirection pipes to child processes Fix #13447. Summary of the issue: ------------------------ When an application starts more than one child processes with their standard inputs redirected on Unix, closing the standard input stream of the first child process won't unblock the 'Console.ReadLine()' call in the first child process (it's expected to receive EOF). Root cause of the issue: -------------------------- The file descriptor for the write end of the first child process standard input redirection pipe gets inherited by the second child process, which makes the reference count of the pipe write end become 2. When closing the standard input stream of the first child process, the file descriptor held by the parent process is released, but the one inherited by the second child process is still referencing the pipe write end, which cause the 'Console.ReadLine()' continue to be blocked in the first child process. Fix: ---- Set the O_CLOEXEC flag when creating the redirection pipes. So that no child process would inherit the file descriptors referencing those pipes after the 'execve' call. /cc @stephentoub could you please review this PR? +19990 area-System.Net "System.Net.Sockets.Tests.SocketOptionNameTest.FailedConnect_GetSocketOption_SocketOptionNameError failed with ""Xunit.Sdk.EqualException""" Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170519.01/workItem/System.Net.Sockets.Tests/wilogs ~~~ 2017-05-18 17:34:01,833: INFO: proc(54): run_and_log_output: Output: System.Net.Sockets.Tests.SocketOptionNameTest.FailedConnect_GetSocketOption_SocketOptionNameError(simpleGet: False) [FAIL] 2017-05-18 17:34:01,834: INFO: proc(54): run_and_log_output: Output: Assert.Equal() Failure 2017-05-18 17:34:01,834: INFO: proc(54): run_and_log_output: Output: Expected: 1 2017-05-18 17:34:01,834: INFO: proc(54): run_and_log_output: Output: Actual: 0 2017-05-18 17:34:01,837: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-18 17:34:01,929: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/24/s/corefx/src/System.Net.Sockets/tests/FunctionalTests/SocketOptionNameTest.cs(173,0): at System.Net.Sockets.Tests.SocketOptionNameTest.FailedConnect_GetSocketOption_SocketOptionNameError(Boolean simpleGet) 2017-05-18 17:34:11,952: INFO: proc(54): run_and_log_output: Output: System.Net.Sockets.Tests.SocketOptionNameTest.FailedConnect_GetSocketOption_SocketOptionNameError(simpleGet: True) [FAIL] 2017-05-18 17:34:11,952: INFO: proc(54): run_and_log_output: Output: Assert.Equal() Failure 2017-05-18 17:34:11,952: INFO: proc(54): run_and_log_output: Output: Expected: 1 2017-05-18 17:34:11,952: INFO: proc(54): run_and_log_output: Output: Actual: 0 2017-05-18 17:34:11,952: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-18 17:34:11,952: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/24/s/corefx/src/System.Net.Sockets/tests/FunctionalTests/SocketOptionNameTest.cs(173,0): at System.Net.Sockets.Tests.SocketOptionNameTest.FailedConnect_GetSocketOption_SocketOptionNameError(Boolean simpleGet) ~~~ +19991 area-System.Net System.Net.Sockets.Tests.LoggingTest.EventSource_EventsRaisedAsExpected failed Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170519.01/workItem/System.Net.Sockets.Tests/wilogs ~~~ 2017-05-18 17:34:52,014: INFO: proc(54): run_and_log_output: Output: System.Net.Sockets.Tests.LoggingTest.EventSource_EventsRaisedAsExpected [FAIL] 2017-05-18 17:34:52,014: INFO: proc(54): run_and_log_output: Output: Timed out after 60000ms waiting for remote process 15571 2017-05-18 17:34:52,014: INFO: proc(54): run_and_log_output: Output: Expected: True 2017-05-18 17:34:52,014: INFO: proc(54): run_and_log_output: Output: Actual: False 2017-05-18 17:34:52,014: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-18 17:34:52,014: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/24/s/corefx/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs(208,0): at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() ~~~ +19992 area-System.Net "Tests under ""System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo"" failed with ""System.TimeoutException""" Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170519.01/workItem/System.Net.Sockets.Tests/wilogs ~~~ 2017-05-18 17:34:57,141: INFO: proc(54): run_and_log_output: Output: System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.BeginSendToV4IPEndPointToV4Host_Success [FAIL] 2017-05-18 17:34:57,141: INFO: proc(54): run_and_log_output: Output: System.TimeoutException : The operation has timed out. 2017-05-18 17:34:57,141: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-18 17:34:57,141: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/24/s/corefx/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(1252,0): at System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.DualModeBeginSendTo_EndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) 2017-05-18 17:35:02,218: INFO: proc(54): run_and_log_output: Output: System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.BeginSendToV4IPEndPointToDualHost_Success [FAIL] 2017-05-18 17:35:02,218: INFO: proc(54): run_and_log_output: Output: System.TimeoutException : The operation has timed out. 2017-05-18 17:35:02,219: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-18 17:35:02,219: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/24/s/corefx/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(1252,0): at System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.DualModeBeginSendTo_EndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) 2017-05-18 17:35:07,265: INFO: proc(54): run_and_log_output: Output: System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.BeginSendToV6IPEndPointToDualHost_Success [FAIL] 2017-05-18 17:35:07,265: INFO: proc(54): run_and_log_output: Output: System.TimeoutException : The operation has timed out. 2017-05-18 17:35:07,265: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-18 17:35:07,265: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/24/s/corefx/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(1252,0): at System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.DualModeBeginSendTo_EndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) 2017-05-18 17:35:12,650: INFO: proc(54): run_and_log_output: Output: System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.BeginSendToV6IPEndPointToV6Host_Success [FAIL] 2017-05-18 17:35:12,650: INFO: proc(54): run_and_log_output: Output: System.TimeoutException : The operation has timed out. 2017-05-18 17:35:12,650: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-18 17:35:12,650: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/24/s/corefx/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(1252,0): at System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.DualModeBeginSendTo_EndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) ~~~ +19994 area-System.Net Test failure: System.Net.Primitives.Unit.Tests.CookieContainerTest / GetCookies_RemovesExpired_Cookies ## Types of failures Build 20171125.02: ``` Assert.Equal() Failure Expected: 0 Actual: 1 at System.Net.Primitives.Unit.Tests.CookieContainerTest.d__45.MoveNext() in /root/corefx-1171195/src/System.Net.Primitives/tests/UnitTests/CookieContainerTest.cs:line 555 --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- ``` ## History of failures Day | Build | OS -- | -- | -- 6/5 | 20170605.02 | Ubuntu17.04 6/5 | 20170605.03 | Ubuntu17.04 6/14 | 20170614.04 | Ubuntu17.04 6/24 | 20170624.02 | Debian90 7/17 | 20170717.02 | Ubuntu17.04 11/16 | 20171116.51 | Ubuntu14.04 11/25 | 20171125.02 | Ubuntu16.04 # Original report Opened on behalf of @Jiayili1 The test `System.Net.Primitives.Unit.Tests.CookieContainerTest/GetCookies_RemovesExpired_Cookies` has failed. Assert.Equal() Failure Expected: 0 Actual: 1 Stack Trace: at System.Net.Primitives.Unit.Tests.CookieContainerTest.d__44.MoveNext() in /root/corefx/src/System.Net.Primitives/tests/UnitTests/CookieContainerTest.cs:line 532 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : 2.0.0 - 20170519.02 (Portable Core Tests) Failing configurations: - Ubuntu.1704.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170519.02/workItem/System.Net.Primitives.UnitTests.Tests/analysis/xunit/System.Net.Primitives.Unit.Tests.CookieContainerTest~2FGetCookies_RemovesExpired_Cookies +19995 area-System.Runtime "Desktop: System.Tests.Environment_Exit.ExitCode_VoidMainAppReturnsSetValue failed with ""Xunit.Sdk.EqualException""" Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/netfx_windows_nt_debug_prtest/453/System.Tests/Environment_Exit/ExitCode_VoidMainAppReturnsSetValue_mode__1_/ MESSAGE: ~~~ Assert.Equal() Failure Expected: 123 Actual: 3 ~~~ STACK TRACE: ~~~ at System.Tests.Environment_Exit.ExitCode_VoidMainAppReturnsSetValue(Int32 mode) in D:\j\workspace\netfx_windows---8c0e8fba\src\System.Runtime.Extensions\tests\System\Environment.Exit.cs:line 76 ~~~ +19996 area-System.Security "KeyInfoX509DataTest.Complex failed with ""Invalid handle"" on macOS in CI" https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release_prtest/3761/consoleText ``` System.Security.Cryptography.Xml.Tests.KeyInfoX509DataTest.Complex [FAIL] System.ArgumentException : Invalid handle. Parameter name: handle Stack Trace: Discovering: System.Xml.XmlDocument.Tests /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/CertificatePal.cs(52,0): at Internal.Cryptography.Pal.CertificatePal.FromHandle(IntPtr handle, Boolean throwOnFail) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Certificate.cs(160,0): at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(X509Certificate cert) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Security.Cryptography.Xml/src/System/Security/Cryptography/Xml/KeyInfoX509Data.cs(117,0): at System.Security.Cryptography.Xml.KeyInfoX509Data.AddCertificate(X509Certificate certificate) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Security.Cryptography.Xml/tests/KeyInfoX509DataTest.cs(224,0): at System.Security.Cryptography.Xml.Tests.KeyInfoX509DataTest.Complex() ``` cc: @krwq, @bartonjs +19997 area-System.Diagnostics Fix Process.Start() on Unix platforms to not leak file descriptors of child pipes Same as https://github.com/dotnet/corefx/pull/19988, but against master instead of release/2.0.0, and with feedback nits addressed. cc: @daxian-dbw +19998 area-System.Runtime Clean up if netcoreapp usage in System.Runtime.Tests. "First, this define should also be on for uapaot builds. Second, it's mostly used now to guard access to the ""Enum's with funny backing type"" statics (s_boolEnumType and friends.) These should be replaced with something that gates on PlatformDetection.IsReflectionEmitSupported. " +20000 area-System.Xml XPathNavigator.InnerXml throws when replacement should be a text node "When the `XPathNavigator.InnerXml` is called with a string that consists only of text (not surrounded by XML tags), it throws an `XmlException`: `Data at the root level is invalid. Line 1, position 1.`. This does not happen on .NET Framework 4.7 (I'm on Creators Update, 15063.296). This is a fairly straightforward repro: ```C# XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(@"" Book ""); XPathNavigator nav = xmlDoc.CreateNavigator(); XPathExpression expr = nav.Compile(""/Product/Name""); XPathNodeIterator iter = nav.Select(expr); iter.MoveNext(); Console.WriteLine(iter.Current.InnerXml); iter.Current.InnerXml = ""Car""; ``` Changing the assignment to ```C# iter.Current.InnerXml = """"; ``` appears to work fine. [ConsoleApp1.zip](https://github.com/dotnet/corefx/files/1014643/ConsoleApp1.zip) is a standalone repro project. Repro steps: ``` S:\work\innerxml_assignment\ConsoleApp1\ConsoleApp1>dotnet restore Restoring packages for S:\work\innerxml_assignment\ConsoleApp1\ConsoleApp1\ConsoleApp1.csproj... ... S:\work\innerxml_assignment\ConsoleApp1\ConsoleApp1>dotnet run -f net46 Book Car S:\work\innerxml_assignment\ConsoleApp1\ConsoleApp1>dotnet run -f netcoreapp1.0 Book Unhandled Exception: System.Xml.XmlException: Data at the root level is invalid. Line 1, position 1. at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace() at System.Xml.XmlTextReaderImpl.ParseDocumentContent() at System.Xml.XmlTextReaderImpl.Read() at System.Xml.XPath.XPathNavigator.BuildSubtree(XmlReader reader, XmlWriter writer) at System.Xml.XPath.XPathNavigator.AppendChild(XmlReader newChild) at ConsoleApp1.Program.Main(String[] args) ``` I see the same issue when targeting `netcoreapp1.0` and `netcoreapp1.1`, but, confusingly, not `netcoreapp2.0`. Versions of the `System.Xml.*` package references are 4.3.0 across all TFMs (and I see the same behavior with 4.0.1).
dotnet --info ``` S:\work\innerxml_assignment\ConsoleApp1\ConsoleApp1>dotnet --info .NET Command Line Tools (2.0.0-preview1-005977) Product Information: Version: 2.0.0-preview1-005977 Commit SHA-1 hash: 414cab8a0b Runtime Environment: OS Name: Windows OS Version: 10.0.15063 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\2.0.0-preview1-005977\ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview1-002111-00 Build : 1ff021936263d492539399688f46fd3827169983 ```
I ran into this while investigating https://github.com/Microsoft/msbuild/issues/2105." +20001 area-System.Diagnostics release/2.0: Fix Process.Start() on Unix platforms to not leak file descriptors of child pipes Port https://github.com/dotnet/corefx/pull/19997 to release/2.0 branch Closes https://github.com/dotnet/corefx/issues/13447 +20002 area-System.Net HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.SetDelegate_ConnectionSucceeds failed with System.Net.Http.CurlException : SSL connect error https://ci.dot.net/job/dotnet_corefx/job/release_2.0.0/job/osx10.12_debug_prtest/84/testReport/junit/System.Net.Http.Functional.Tests/HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test/SetDelegate_ConnectionSucceeds_acceptedProtocol__Tls__requestOnlyThisProtocol__False_/ ``` System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.SetDelegate_ConnectionSucceeds(acceptedProtocol: Tls, requestOnlyThisProtocol: False) (from (empty)) Failing for the past 1 build (Since Aborted#84 ) Took 30 sec. Stacktrace MESSAGE: System.Net.Http.HttpRequestException : An error occurred while sending the request.\n---- System.Net.Http.CurlException : SSL connect error +++++++++++++++++++ STACK TRACE: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_2.0.0/osx10.12_debug_prtest/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 462 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.<>c__DisplayClass1_0.<b__0>d.MoveNext() in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_2.0.0/osx10.12_debug_prtest/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.AcceptAllCerts.cs:line 46 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_2.0.0/osx10.12_debug_prtest/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 57 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.d__1.MoveNext() in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_2.0.0/osx10.12_debug_prtest/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.AcceptAllCerts.cs:line 44 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_2.0.0/osx10.12_debug_prtest/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 644 at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_2.0.0/osx10.12_debug_prtest/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs:line 863 ``` +20003 area-System.Net System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.SetDelegate_ConnectionSucceeds failed with Cannot acquire the global certificate mutex. https://ci.dot.net/job/dotnet_corefx/job/release_2.0.0/job/osx10.12_debug_prtest/84/testReport/junit/System.Net.Http.Functional.Tests/HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test/SetDelegate_ConnectionSucceeds_acceptedProtocol__Tls__Tls11__Tls12__requestOnlyThisProtocol__False_/ ``` System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.SetDelegate_ConnectionSucceeds(acceptedProtocol: Tls, requestOnlyThisProtocol: True) (from (empty)) Failing for the past 1 build (Since Aborted#84 ) Took 30 sec. Stacktrace MESSAGE: Cannot acquire the global certificate mutex.\nExpected: True\nActual: False +++++++++++++++++++ STACK TRACE: at System.Net.Test.Common.Configuration.Certificates.GetCertificateCollection(String certificateFileName) in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_2.0.0/osx10.12_debug_prtest/src/Common/tests/System/Net/Configuration.Certificates.cs:line 48 at System.Net.Test.Common.Configuration.Certificates.GetServerCertificateCollection() in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_2.0.0/osx10.12_debug_prtest/src/Common/tests/System/Net/Configuration.Certificates.cs:line 34 at System.Net.Test.Common.Configuration.Certificates.GetServerCertificate() in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_2.0.0/osx10.12_debug_prtest/src/Common/tests/System/Net/Configuration.Certificates.cs:line 24 at System.Net.Test.Common.LoopbackServer.d__9.MoveNext() in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_2.0.0/osx10.12_debug_prtest/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 107 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.<>c__DisplayClass1_0.<b__0>d.MoveNext() in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_2.0.0/osx10.12_debug_prtest/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.AcceptAllCerts.cs:line 46 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_2.0.0/osx10.12_debug_prtest/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 57 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.d__1.MoveNext() in /Users/dotnet-bot/j/workspace/dotnet_corefx/release_2.0.0/osx10.12_debug_prtest/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.AcceptAllCerts.cs:line 44 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +20004 area-System.Data Porting Sqlconnection.GetSchema (PR #19937) * Adding SqlConnection.GetSchema() support Port of PR #19937 Fixes https://github.com/dotnet/corefx/issues/19797 +20005 area-System.Security Fix RevocationMode and RevocationFlag errors on macOS "For certificates which have CRL, but not OCSP, the CRL doesn't seem to be checked, then Apple is silent about the matter. By setting kSecRevocationRequirePositiveResponse we get notified ""RevocationResponseRequired"". That flag should be mapped to X509ChainStatusFlags.RevocationStatusUnknown. When doing NoCheck, the OS was opportunistically checking revocation, possibly from a cache. So make sure that doesn't show up. Also, filter down the results based on the RevocationFlag value." +20006 area-System.Reflection Fix potential release of invalid GCHandle in PinnedObject.Release If process shutdown happens to stop PinnedObject.Release processing within the GCHandle.Free call, then shutdown finalization of the same object will generate an InvalidOperationException. The same may occur if the constructor is preempted by shutdown. Fixes https://github.com/dotnet/corefx/issues/19857 Port to Desktop FX tracked by VSO bug 437163. Rebased to release/2.0.0 from https://github.com/dotnet/corefx/pull/19858. +20007 area-System.Net UWP: System.Net.Primitives +20008 area-System.Runtime Question: What is the purpose of public method ValueTuple.Equals(ValueTuple other) ? Hi there, While looking into [ValueTuple.cs](https://github.com/dotnet/corefx/blob/master/src/System.ValueTuple/src/System/ValueTuple/ValueTuple.cs) class, I observed that there is one public method: ``` public bool Equals(ValueTuple other) { return true; } ``` This method always return ``true```. Just wanted to check what is the purpose of this method and why it is simply returning ``true`` ? +20009 area-System.Net Networking UWP work Tracking all issues related to System.Net.* UWP work. +20010 area-System.Net UWP: System.Net.Http Tracking work for UWP System.Net.Http, related to Epic #20009 +20011 area-System.Net Investigate WinHttpException: buffer too small Add instrumentation for now to catch unexpected errors and fail fast and produce a crash dump. Contributes to #7812 +20014 area-System.Net UWP: System.Net.NetworkInformation +20015 area-Infrastructure Simple name conflict resolution is not working for NETStandard.Library.NETFramework "Originally reported here: https://github.com/dotnet/standard/issues/355 Conflict resolution does not try to resolve conflicts between simple name references because it does not attempt to duplicate assembly search path probing done by RAR. The SDK does removal of simple name references that overlap with nuget packages. This is ""good enough"" in most cases. The problem is that the NETStandard.Library.NETFramework package does not populate its references in a way that plugs into the SDK's logic. Instead we provide the references from targets. The reason for this is we need to hide these references from NuGet for the packages.config case: we don't want a packages.config project getting 100s of references added to its csproj. Taking the SDK out of the picture, we have the exact same simple-name conflict problem for packages.config. To fix this I propose the following: 1. We add a target to the NETStandard.Library.NETFramework project that removes simple name references that overlap with references added by our package, similar to https://github.com/dotnet/sdk/blob/1d81050cab00c6f9ab8bf5b984bc42eff2760c1e/src/Tasks/Microsoft.NET.Build.Tasks/build/Microsoft.PackageDependencyResolution.targets#L375. 2. In a packages.config project we make sure this runs before RAR. The only source of references is the users project file. 3. In a PackageReference project we make sure this runs after `ResolveLockFileReferences`. References may have come from user's project or nuget packages. 4. In a project.json project we make sure this runs after `ResolveNuGetPackageAssets`. References may have come from user's project or nuget packages. We can examine target sequencing to see if there is any way to accomplish 2-4 with a single target sequencing. /cc @weshaggard @dsplaisted @natemcmaster " +20017 area-System.Net Disable System.Net.Http tests on UAP/UAPAOT Disable a bunch of System.Net.Http tests on UAP/UAPAOT platform. Both inner and outer loop tests now run clean for System.Net.Http Contributes to #20010 +20019 area-System.IO Redistribute 4.0.1 clrcompression for netcore50 We're running into issues in UWP apps where people are getting the 4.3.0 version of clrcompression that imports from kernel32.dll while in Debug. This is an issue on Onecore platforms where kernel32.dll is unavailable, so we should repackage the 4.0.1 AOT binaries that import from the api sets instead. This way, customers will be using the same dll for Debug as they are for Release when running under netcore50 for x86, x64, and arm. Packages produced after this change will have this structure: - runtime.win7-x64.*compression.4.3.0: - runtimes/win7-x64/native/clrcompression.dll - new build, non-appx, CFG enabled, kernel32 - runtimes/win7-x64/nativeassets/netcore50/clrcompression.dll - 4.0.1, appx, no CFG flag, API sets - runtime.win7-x86.*compression.4.3.0: - runtimes/win7-x86/native/clrcompression.dll - new build, non-appx, CFG enabled, kernel32 - runtimes/win7-x86/nativeassets/netcore50/clrcompression.dll - 4.0.1, appx, no CFG flag, API sets - runtime.win8-arm.*compression.4.3.0: - runtimes/win8-arm/native/clrcompression.dll - new build, non-appx, CFG enabled, kernel32 - runtimes/win8-arm/nativeassets/netcore50/clrcompression.dll - 4.0.1, appx, no CFG flag, API sets while the AOT packages are unchanged: - runtime.win10-x64-aot.*compression: - runtimes\win10-x64-aot\lib\netcore50\clrcompression.dll - 4.0.1, appx, no CFG flag, API sets - runtime.win10-x86-aot.*compression: - runtimes\win10-x86-aot\lib\netcore50\clrcompression.dll - 4.0.1, appx, no CFG flag, API sets - runtime.win10-arm-aot.*compression: - runtimes\win10-arm-aot\lib\netcore50\clrcompression.dll - 4.0.1, appx, no CFG flag, API sets cc: @MattWhilden @gkhanna79 @ericstj @weshaggard +20020 area-System.IO Behavior difference between CoreFX and desktop WRT IO and symlinks CoreFX handles symlink loops differently that desktop dotnet. On desktop, it throws UnauthorizedAccessException if you try to do any IO (such as File.Open) on such scenario. I'm not 100% CoreFX handle the windows case correctly, but I'm positive it doesn't in unix case as that scenario gets you an ELOOP and GetExceptionForIoErrno doesn't handle it. +20021 area-Infrastructure Move reference expansion to a target and handle simple name conflicts We cannot let simple name references that overlap with our assemblies reach RAR because RAR will choose the files in the targeting pack over the ones we add to the reference item, due to the default AssemblySearchPaths. We could change AssemblySearchPaths to consider all the NuGetPackage paths before `{TargetFrameworkDirectory}` but that has broader implications for compatibility and performance of RAR. I chose to follow a similar pattern to what the SDK does already and took the opportunity to move the reference item setting into the target as well, to more closely match what the SDK is doing. Fixes #20015 +20022 area-System.Data Add additional DataTable functionality to SqlClient to match Framework implementation Also added additional parameter tests. +20024 area-System.Net Test failure: System.Net.Http.Functional.Tests.ResponseStreamTest / ReadAsStreamAsync_ValidServerResponse_Success ## Type of failures ### The server returned an invalid or unrecognized response Failure [20171216.02](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171216.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)): ``` System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response at System.Net.Http.HttpClient.d__59.MoveNext() in E:\A\_work\988\s\corefx\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 489 --- End of stack trace from previous location where exception was thrown --- at System.Net.Http.Functional.Tests.ResponseStreamTest.d__9.MoveNext() in E:\A\_work\988\s\corefx\src\System.Net.Http\tests\FunctionalTests\ResponseStreamTest.cs:line 247 --- End of stack trace from previous location where exception was thrown --- at System.Net.Http.Functional.Tests.ResponseStreamTest.d__8.MoveNext() in E:\A\_work\988\s\corefx\src\System.Net.Http\tests\FunctionalTests\ResponseStreamTest.cs:line 240 --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- ----- Inner Stack Trace ----- at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() in E:\A\_work\988\s\corefx\src\Common\src\System\Threading\Tasks\RendezvousAwaitable.cs:line 62 at System.Net.Http.WinHttpHandler.d__105.MoveNext() in E:\A\_work\988\s\corefx\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 858 ``` ### The operation has been canceled Failure [20171114.01](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171114.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)): ``` System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The operation has been canceled at System.Net.Http.HttpClient.d__59.MoveNext() in E:\A\_work\1272\s\corefx\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 489 --- End of stack trace from previous location where exception was thrown --- at System.Net.Http.Functional.Tests.ResponseStreamTest.d__9.MoveNext() in E:\A\_work\1272\s\corefx\src\System.Net.Http\tests\FunctionalTests\ResponseStreamTest.cs:line 247 --- End of stack trace from previous location where exception was thrown --- at System.Net.Http.Functional.Tests.ResponseStreamTest.d__8.MoveNext() in E:\A\_work\1272\s\corefx\src\System.Net.Http\tests\FunctionalTests\ResponseStreamTest.cs:line 240 --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- ----- Inner Stack Trace ----- at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() in E:\A\_work\1272\s\corefx\src\Common\src\System\Threading\Tasks\RendezvousAwaitable.cs:line 62 at System.Net.Http.WinHttpHandler.d__105.MoveNext() in E:\A\_work\1272\s\corefx\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 858 ``` ### The handle is invalid Failure [20171109.04](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171109.04/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20Chunked,%20transferError:%20None)): ``` System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The handle is invalid at System.Net.Http.HttpClient.d__59.MoveNext() in E:\A\_work\1037\s\corefx\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 489 --- End of stack trace from previous location where exception was thrown --- at System.Net.Http.Functional.Tests.ResponseStreamTest.d__9.MoveNext() in E:\A\_work\1037\s\corefx\src\System.Net.Http\tests\FunctionalTests\ResponseStreamTest.cs:line 247 --- End of stack trace from previous location where exception was thrown --- at System.Net.Http.Functional.Tests.ResponseStreamTest.d__8.MoveNext() in E:\A\_work\1037\s\corefx\src\System.Net.Http\tests\FunctionalTests\ResponseStreamTest.cs:line 240 --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- ----- Inner Stack Trace ----- at System.Net.Http.WinHttpException.ThrowExceptionUsingLastError() in E:\A\_work\1037\s\corefx\src\Common\src\System\Net\Http\WinHttpException.cs:line 44 at System.Net.Http.WinHttpHandler.SetRequestHandleRedirectionOptions(SafeWinHttpHandle requestHandle) in E:\A\_work\1037\s\corefx\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 1082 at System.Net.Http.WinHttpHandler.SetRequestHandleOptions(WinHttpRequestState state) in E:\A\_work\1037\s\corefx\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 956 at System.Net.Http.WinHttpHandler.d__105.MoveNext() in E:\A\_work\1037\s\corefx\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 833 ``` ### IOException: The handle is in the wrong state for the requested operation Failure [20171104.03](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171104.03/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20None,%20transferError:%20None)): ``` System.IO.IOException : The read operation failed, see inner exception. ---- System.Net.Http.WinHttpException : The handle is in the wrong state for the requested operation at System.Net.Http.WinHttpResponseStream.d__22.MoveNext() in E:\A\_work\1388\s\corefx\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpResponseStream.cs:line 225 --- End of stack trace from previous location where exception was thrown --- at System.Net.Http.Functional.Tests.ResponseStreamTest.d__9.MoveNext() in E:\A\_work\1388\s\corefx\src\System.Net.Http\tests\FunctionalTests\ResponseStreamTest.cs:line 253 --- End of stack trace from previous location where exception was thrown --- at System.Net.Http.Functional.Tests.ResponseStreamTest.d__8.MoveNext() in E:\A\_work\1388\s\corefx\src\System.Net.Http\tests\FunctionalTests\ResponseStreamTest.cs:line 238 --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- ----- Inner Stack Trace ----- ``` ## History of failures Day | Build | OS | Error message -- | -- | -- | -- 5/4 | 20170504.02 | Win10 | The server returned an invalid or unrecognized response 5/6 | 20170506.02 | Win10 | The server returned an invalid or unrecognized response 5/9 | 20170509.02 | Win10 | The server returned an invalid or unrecognized response 5/11 | 20170511.02 | Win10 | The server returned an invalid or unrecognized response 5/13 | 20170513.01 | Win10 | The server returned an invalid or unrecognized response 5/13 | 20170513.02 | Win10 | The server returned an invalid or unrecognized response 5/21 | 20170521.01 | Win10 | The server returned an invalid or unrecognized response 5/28 | 20170528.01 | Win10 | The server returned an invalid or unrecognized response 6/14 | 20170614.03 | Win10 | The server returned an invalid or unrecognized response 6/22 | 20170622.02 | Win10 | The server returned an invalid or unrecognized response 7/11 | 20170711.03 | Win10 | The server returned an invalid or unrecognized response 7/25 | 20170725.01 | Win10 | The server returned an invalid or unrecognized response 9/26 | 20170926.05 | Win10 | The server returned an invalid or unrecognized response 9/26 | 20170926.05 | Win10 | The server returned an invalid or unrecognized response 9/26 | 20170926.06 | Win7 | The handle is invalid 9/27 | 20170927.02 | Win10 | The server returned an invalid or unrecognized response 10/1 | 20171001.01 | Win10 | The server returned an invalid or unrecognized response 10/3 | 20171003.02 | Win10 | The server returned an invalid or unrecognized response 10/9 | 20171009.03 | Win10 | The server returned an invalid or unrecognized response 10/13 | 20171013.01 | Win10 | The server returned an invalid or unrecognized response 10/14 | 20171014.01 | Win10 | The server returned an invalid or unrecognized response 10/16 | 20171016.02 | Win10 | The server returned an invalid or unrecognized response 10/17 | 20171017.01 | Win10 | The server returned an invalid or unrecognized response 10/18 | 20171018.02 | Win10 | The server returned an invalid or unrecognized response 10/19 | 20171019.01 | Win10 | The server returned an invalid or unrecognized response 10/20 | 20171020.02 | Win10 | The server returned an invalid or unrecognized response 10/23 | 20171023.02 | Win7 | The handle is invalid 10/26 | 20171026.01 | Win10 | The server returned an invalid or unrecognized response 10/28 | 20171028.01 | Win10 | The server returned an invalid or unrecognized response 10/30 | 20171030.02 | Win10 | The server returned an invalid or unrecognized response 11/2 | 20171102.05 | Win10 | The server returned an invalid or unrecognized response 11/3 | 20171103.10 | Win10 | The server returned an invalid or unrecognized response 11/4 | 20171104.03 | Win7 | IOException: The handle is in the wrong state for the requested operation 11/7 | 20171107.04 | Win10 | The server returned an invalid or unrecognized response 11/8 | 20171108.01 | Win10 | The server returned an invalid or unrecognized response 11/9 | 20171109.04 | Win7 | The handle is invalid 11/9 | 20171109.05 | Win7 | The operation has been canceled 11/11 | 20171111.01 | Win10 | The server returned an invalid or unrecognized response 11/11 | 20171111.01 | Win10 | The server returned an invalid or unrecognized response 11/14 | 20171114.01 | Win7 | The operation has been canceled 11/15 | 20171115.02 | Win10 | The server returned an invalid or unrecognized response 11/15 | 20171115.03 | Win10 | The server returned an invalid or unrecognized response 11/21 | 20171121.01 | Win10 | The server returned an invalid or unrecognized response 11/21 | 20171121.01 | Win10 | The server returned an invalid or unrecognized response 11/23 | 20171123.01 | Win10 | The server returned an invalid or unrecognized response 11/25 | 20171125.02 | Win10 | The server returned an invalid or unrecognized response 11/28 | 20171128.05 | Win10 | The server returned an invalid or unrecognized response 12/2 | 20171202.02 | Win10 | The server returned an invalid or unrecognized response 12/11 | 20171211.05 | Win10 | The server returned an invalid or unrecognized response 12/11 | 20171211.03 | Win10 | The server returned an invalid or unrecognized response 12/12 | 20171212.01 | Win10 | The server returned an invalid or unrecognized response 12/16 | 20171216.02 | Win10 | The server returned an invalid or unrecognized response - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171216.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)) 12/16 | 20171216.03 | Win10 | The server returned an invalid or unrecognized response - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171216.03/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)) 12/28 | 20171228.02 | Win10 | The server returned an invalid or unrecognized response - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171228.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)) 1/3 | 20180103.03 | Win10 | The server returned an invalid or unrecognized response - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180103.03/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)) 1/7 | 20180107.02 | Win8.1 | The operation has been canceled - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180107.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20Chunked,%20transferError:%20None)) 1/10 | 20180110.03 | Win10 | The server returned an invalid or unrecognized response - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180110.03/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)) 1/11 | 20180111.02 | Win10 | 2x - The server returned an invalid or unrecognized response - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180111.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)) 1/16 | 20180117.01 | Win10 | The server returned an invalid or unrecognized response - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180117.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)) 1/21 | 20180122.01 | Win10 | The server returned an invalid or unrecognized response - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180122.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)) 1/22 | 20180122.02 | Win7 | The handle is invalid - only in [catastrophic failure logs](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180122.02/workItem/System.Net.Http.Functional.Tests/wilogs) 1/27 | 20180127.04 | Win10 | The server returned an invalid or unrecognized response - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180127.04/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)) 1/30 | 20180130.05 | Win8.1 | The operation has been canceled - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180130.05/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)) 2/1 | 20180201.05 | Win8.1 | The operation has been canceled - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180201.05/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)) 2/1 | 20180201.05 | Win10 | The server returned an invalid or unrecognized response - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180201.05/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)) 2/3 | 20180203.01 | Win10 | The server returned an invalid or unrecognized response - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180203.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ResponseStreamTest~2FReadAsStreamAsync_ValidServerResponse_Success(transferType:%20ContentLength,%20transferError:%20None)) 3/2 | 20180302.06 | Win7 | The handle is invalid 3/4 | 20180304.01 | Win7 | The handle is invalid 3/7 | 20180307.04 | Win7 | The handle is invalid +20026 area-System.Security release/2.0: Fix RevocationMode and RevocationFlag errors on macOS "For certificates which have CRL, but not OCSP, the CRL doesn't seem to be checked, then Apple is silent about the matter. By setting kSecRevocationRequirePositiveResponse we get notified ""RevocationResponseRequired"". That flag should be mapped to X509ChainStatusFlags.RevocationStatusUnknown. When doing NoCheck, the OS was opportunistically checking revocation, possibly from a cache. So make sure that doesn't show up. Also, filter down the results based on the RevocationFlag value. Ports #20005 to rel/2.0.0." +20028 area-System.Net Increasing mutex time, ensuring the mutex is released Also fixing parallel test execution script. Fixes #19430 +20030 area-Serialization Enabled XmlSerializer..ctor(Type, Type[]) on UWP Previously, `XmlSerializer..ctor(Type type, Type[] extraTypes)` was redirected to call `XmlSerializer..ctor(Type type)` on UWP as we only need to use the `type` as the key to retrieve the generated serializer. The reflection based serialization requires the value of `extraTypes` to do the work. Fix #19829 +20032 area-System.Data Force integrated auth to false in some SQL username and password error checking tests, since int auth overrides username and password. +20033 area-System.Net UWP: System.Net.Security Tracking work for System.Net.Security for UWP. +20034 area-System.IO Directory Delete tests failing on Unix https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170520.01/workItem/System.IO.FileSystem.Tests @JeremyKuhne perhaps related to 801dde95 / https://github.com/dotnet/corefx/pull/19959 ``` Assert.Throws() Failure\nExpected: typeof(System.IO.IOException)\nActual: typeof(System.IO.DirectoryNotFoundException): Could not find a part of the path '/'. Stack Trace : at System.IO.UnixFileSystem.RemoveDirectory(String fullPath, Boolean recursive) in /root/corefx/src/System.IO.FileSystem/src/System/IO/UnixFileSystem.cs:line 317 at System.IO.Directory.Delete(String path, Boolean recursive) in /root/corefx/src/System.IO.FileSystem/src/System/IO/Directory.cs:line 589 at System.IO.Tests.Directory_Delete_str_bool.Delete(String path) in /root/corefx/src/System.IO.FileSystem/tests/Directory/Delete.cs:line 216 at System.IO.Tests.Directory_Delete_str.b__6_0() in /root/corefx/src/System.IO.FileSystem/tests/Directory/Delete.cs:line 67 ``` ``` Assert.Throws() Failure\nExpected: typeof(System.IO.IOException)\nActual: typeof(System.IO.DirectoryNotFoundException): Could not find a part of the path '/'. Stack Trace : at System.IO.UnixFileSystem.RemoveDirectory(String fullPath, Boolean recursive) in /Users/buildagent/agent/_work/24/s/corefx/src/System.IO.FileSystem/src/System/IO/UnixFileSystem.cs:line 315 ``` +20035 area-Meta Prep tests for CoreCLR/CoreRT [Serializable] cleanup Fixes tests that depend on types in System.Private.CoreLib being serializable that won't be [Serializable] soon in CoreCLR/CoreRT. Part of https://github.com/dotnet/corefx/issues/19119 +20036 area-System.Net InvalidCertificateServers_CertificateValidationDisabled_Succeeds failed with WinHttpException : A security error occurred Perhaps a dupe, but I can't find it (there are many Http test failure variations right now) https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170520.01 ``` Unhandled Exception of Type System.Net.Http.HttpRequestException Message : System.Net.Http.HttpRequestException : An error occurred while sending the request.\r\n---- System.Net.Http.WinHttpException : A security error occurred Stack Trace : at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Environment.get_StackTrace() at System.Runtime.ExceptionServices.ExceptionStackTrace.AddCurrentStack(Exception exception) at System.Net.Http.WinHttpException.CreateExceptionUsingError(Int32 error) at System.Net.Http.WinHttpRequestCallback.OnRequestError(WinHttpRequestState state, WINHTTP_ASYNC_RESULT asyncResult) at System.Net.Http.WinHttpRequestCallback.RequestCallback(IntPtr handle, WinHttpRequestState state, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) at System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) --- End of stack trace from AddCurrentStack --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() ``` +20039 area-Meta Master #1477 +20040 area-System.IO Port 2.0: Fix Unix missing file state We need to port #19959 cc @JeremyKuhne @stephentoub +20041 area-Meta Port 2.0: Prep tests for CoreCLR/CoreRT [Serializable] cleanup We need to port PR #20035 cc @morganbr @stephentoub +20043 area-System.Net HttpWebRequest.ReadWriteTimeout property returns NotImplemented Looks like HttpWebRequest.ReadWriteTimeout throws a NotImplemented exception. Also HttpWebRequest.ConnectionGroupName Expected: Either work with expected behavior, or remove from NET Core altogether as this will result in an unexpected runtime error. +20046 area-System.Net Behavior difference in System.Uri.IsAbsoluteUri on some platforms when UriKind = UriKind.RelativeOrAbsolute The following code snippet fails on Ubuntu14.04, OSX, PortableLinux, and CentOS, while it passes on Windows and Ubuntu16.04. ```c# string path = Path.Combine(Path.GetTempPath()); Uri uri = new Uri(path, UriKind.RelativeOrAbsolute); Assert.True(uri.IsAbsoluteUri); ``` This was discovered in https://github.com/dotnet/corefx/pull/19735 when investigating a XmlSchema validation test failure. [In case it helps: XmlSchemaSet creates such Uri in [here](https://source.dot.net/#System.Private.Xml/System/Xml/Schema/XmlSchemaSet.cs,368) and later tries to resolve a file in that uri location in [XmlResolver](https://source.dot.net/#System.Private.Xml/System/Xml/XmlResolver.cs,36)] +20047 area-System.Security Fix use-after-free handle problems in X509Certificates on macOS The first commit fixes https://github.com/dotnet/corefx/issues/19996. The raw IntPtr handle is read from the certificate object, after which the certificate object isn't referenced anymore by the implementation; if the caller also no longer referenced the certificate, it's possible that it can be collected and its SafeHandle finalized before the copy ctor finishes reading state from the handle, leading to handle recycling and use-after-free errors. The second commit is then the result of me proactively searching the rest of the codebase for .Handle usage, and fixing any that (based just on examining the function itself and not on all possible call stacks) could potentially suffer a similar problem. cc: @ianhays, @bartonjs, @steveharter +20048 area-System.Net Fix HttpListenerFactory Dispose after failure If the ctor encounters a failure, _processPrefixListener may remain null; then when the factory is Dispose'd, it null refs. This is taking out a bunch of runs, including almost all macOS runs. cc: @hughbe, @Priya91 +20049 area-System.IO Fix handling of root on Unix in directory error handling "We shouldn't be trimming away the '/' at the end of a path when the entire path is ""/"". The fix just moves the existing TrimEndingDirectorySeparator function to be Windows-specific, and adds a Unix-specific variant that only trims from paths greater than 1 char (if the path has a single char and it's '/', we don't want to trim it away, and if it's anything else, there's nothing to trim). Fixes https://github.com/dotnet/corefx/issues/20034 cc: @danmosemsft, @JeremyKuhne " +20050 area-System.Net "Several HttpListener tests with ""+"" host failing on Unix" "e.g. ``` System.Net.Tests.HttpListenerPrefixCollectionTests.Add_SamePortDifferentPathDifferentListenerStarted_Works(host: \""+\"") [FAIL] System.Exception : Could not reserve a port for HttpListener ---- System.Net.HttpListenerException : The request is not supported. Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.HttpListener/tests/HttpListenerFactory.cs(101,0): at System.Net.Tests.HttpListenerFactory.get_ListeningUrl() /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.HttpListener/tests/HttpListenerPrefixCollectionTests.cs(299,0): at System.Net.Tests.HttpListenerPrefixCollectionTests.Add_SamePortDifferentPathDifferentListenerStarted_Works(String host) ----- Inner Stack Trace ----- /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.HttpListener/src/System/Net/Managed/HttpEndPointManager.cs(128,0): at System.Net.HttpEndPointManager.GetEPListener(String host, Int32 port, HttpListener listener, Boolean secure) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.HttpListener/src/System/Net/Managed/HttpEndPointManager.cs(105,0): at System.Net.HttpEndPointManager.AddPrefixInternal(String p, HttpListener listener) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.HttpListener/src/System/Net/Managed/HttpEndPointManager.cs(65,0): at System.Net.HttpEndPointManager.AddListener(HttpListener listener) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.HttpListener/src/System/Net/Managed/HttpListener.Managed.cs(53,0): at System.Net.HttpListener.Start() /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug_prtest/src/System.Net.HttpListener/tests/HttpListenerFactory.cs(40,0): at System.Net.Tests.HttpListenerFactory..ctor(String hostname, String path) ```" +20051 area-System.Net "Disable failing HttpListener tests with ""+"" host" #20050 cc: @Priya91, @hughbe +20052 area-System.Drawing Issue #18017 Operators * / for Size and SizeF Fixes #18017 . @onovotny @karelz @terrajobst @mellinoe Kindly review. +20053 area-System.Security TripleDESCryptoServiceProvider.Key - specified Key is not valid size "Running the following code: ```cs [TestMethod] public void TripleDesKeyTest() { byte[] key = new byte[16] { 3, 3, 3, 5, 222, 13, 155, 55, 122, 123, 165, 187, 188, 1, 11, 133 }; byte[] data = Encoding.UTF8.GetBytes(""superSeekritSauerkraut""); var des = new TripleDESCryptoServiceProvider(); des.Mode = CipherMode.ECB; des.Key = key; var Transform = des.CreateEncryptor(); byte[] encryptedResult = Transform.TransformFinalBlock(data, 0, data.Length); Assert.IsNotNull(encryptedResult); Assert.IsTrue(encryptedResult.Length > 0); } ``` Works against full framework, but when running against .NET Core I get: ``` System.Security.Cryptography.CryptographicException occurred HResult=0x80131501 Message=Specified key is not a valid size for this algorithm. Source= StackTrace: at System.Security.Cryptography.SymmetricAlgorithm.set_Key(Byte[] value) at System.Security.Cryptography.TripleDES.set_Key(Byte[] value) at System.Security.Cryptography.TripleDESCryptoServiceProvider.set_Key(Byte[] value) at Westwind.Utilities.Test.EncryptionTests.TripleDesKeyTest() in C:\projects2010\Westwind.Utilities.Core\Westwind.Utilities.Test\EncryptionTests.cs:line 20 ``` After digging around a bit it seems the key should be 16 or 24 bytes, but even if the key is that size it doesn't work. Expected: Same behavior as full framework which accepts a key of any byte size. **Updated** So it looks like a 24 byte key works. Either way this doesn't seem right. If using CipherMode.ECB shouldn't the key be adjusted to fit? Here's the test output: ``` PS C:\projects2010\Westwind.Utilities.Core\Westwind.Utilities.Test> dotnet test --filter Westwind.Utilities.Test.EncryptionTests.TripleDesKeyTest Build started, please wait... Build completed. Test run for C:\projects2010\Westwind.Utilities.Core\Westwind.Utilities.Test\bin\Debug\netcoreapp2.0\Westwind.Utilities.Test.dll(.NETCoreApp,Version=v2.0) Microsoft (R) Test Execution Command Line Tool Version 15.3.0-preview-20170502-03 Copyright (c) Microsoft Corporation. All rights reserved. Starting test execution, please wait... Failed Westwind.Utilities.Test.EncryptionTests.TripleDesKeyTest Error Message: Test method Westwind.Utilities.Test.EncryptionTests.TripleDesKeyTest threw exception: System.Security.Cryptography.CryptographicException: Specified key is not a valid size for this algorithm. Stack Trace: at System.Security.Cryptography.SymmetricAlgorithm.set_Key(Byte[] value) at System.Security.Cryptography.TripleDES.set_Key(Byte[] value) at System.Security.Cryptography.TripleDESCryptoServiceProvider.set_Key(Byte[] value) at Westwind.Utilities.Test.EncryptionTests.TripleDesKeyTest() in C:\projects2010\Westwind.Utilities.Core\Westwind.Utilities.Test\EncryptionTests.cs:line 24 Total tests: 1. Passed: 0. Failed: 1. Skipped: 0. Test Run Failed. Test execution time: 0.9436 Seconds Test run for C:\projects2010\Westwind.Utilities.Core\Westwind.Utilities.Test\bin\Debug\net452\Westwind.Utilities.Test.dll(.NETFramework,Version=v4.5.2) Microsoft (R) Test Execution Command Line Tool Version 15.3.0-preview-20170502-03 Copyright (c) Microsoft Corporation. All rights reserved. Starting test execution, please wait... Total tests: 1. Passed: 1. Failed: 0. Skipped: 0. Test Run Successful. Test execution time: 0.8669 Seconds ``` " +20055 area-System.Security Invalid key size exception could helpfully list valid key sizes "I've seen at least a couple [reports ](https://github.com/dotnet/corefx/issues/20053 )where developers were not sure what key size they should use when they get an exception with the message ""Specified key is not a valid size for this algorithm."". In at least some cases, we ought to be able to tell them what key sizes we accept, so they don't have to go to documentation. Especially since it can be[ OS specific](https://github.com/dotnet/corefx/pull/18169#issuecomment-293105179). ``` C:\git\corefx\src\Common\src\System\Security\Cryptography\DSASecurityTransforms.cs: 139: throw new CryptographicException(SR.Cryptography_InvalidKeySize); C:\git\corefx\src\Common\src\System\Security\Cryptography\ECDsaOpenSsl.cs: 202: throw new InvalidOperationException(SR.Cryptography_InvalidKeySize); C:\git\corefx\src\System.Security.Cryptography.Algorithms\src\Internal\Cryptography\AesImplementation.cs: 60: throw new ArgumentException(SR.Cryptography_InvalidKeySize, nameof(rgbKey)); C:\git\corefx\src\System.Security.Cryptography.Algorithms\src\Internal\Cryptography\AesImplementation.Unix.cs: 66: throw new CryptographicException(SR.Cryptography_InvalidKeySize); C:\git\corefx\src\System.Security.Cryptography.Algorithms\src\Internal\Cryptography\DesImplementation.cs: 64: throw new ArgumentException(SR.Cryptography_InvalidKeySize, nameof(rgbKey)); C:\git\corefx\src\System.Security.Cryptography.Algorithms\src\Internal\Cryptography\RC2Implementation.cs: 72: throw new ArgumentException(SR.Cryptography_InvalidKeySize, nameof(rgbKey)); C:\git\corefx\src\System.Security.Cryptography.Algorithms\src\Internal\Cryptography\TripleDesImplementation.cs: 69: throw new ArgumentException(SR.Cryptography_InvalidKeySize, nameof(rgbKey)); C:\git\corefx\src\System.Security.Cryptography.Algorithms\src\System\Security\Cryptography\DES.cs: 50: throw new ArgumentException(SR.Cryptography_InvalidKeySize); 65: throw new CryptographicException(SR.Cryptography_InvalidKeySize); 83: throw new CryptographicException(SR.Cryptography_InvalidKeySize); C:\git\corefx\src\System.Security.Cryptography.Algorithms\src\System\Security\Cryptography\ECDsaCng.Key.cs: 56: throw new ArgumentException(SR.Cryptography_InvalidKeySize); 122: throw new ArgumentException(SR.Cryptography_InvalidKeySize); C:\git\corefx\src\System.Security.Cryptography.Algorithms\src\System\Security\Cryptography\RC2.cs: 69: throw new CryptographicException(SR.Cryptography_InvalidKeySize); C:\git\corefx\src\System.Security.Cryptography.Algorithms\src\System\Security\Cryptography\TripleDES.cs: 52: throw new ArgumentException(SR.Cryptography_InvalidKeySize); 64: throw new CryptographicException(SR.Cryptography_InvalidKeySize); // Desktop compat: Strange exception for a null value, but this is what we threw in classic CLR. 67: throw new CryptographicException(SR.Cryptography_InvalidKeySize); C:\git\corefx\src\System.Security.Cryptography.Cng\src\Internal\Cryptography\CngSymmetricAlgorithmCore.cs: 142: throw new ArgumentException(SR.Cryptography_InvalidKeySize, nameof(rgbKey)); C:\git\corefx\src\System.Security.Cryptography.Cng\src\System\Security\Cryptography\ECDsaCng.Key.cs: 71: throw new ArgumentException(SR.Cryptography_InvalidKeySize); 111: throw new ArgumentException(SR.Cryptography_InvalidKeySize); C:\git\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\DESCryptoServiceProvider.Windows.cs: 76: throw new ArgumentException(SR.Cryptography_InvalidKeySize, nameof(rgbKey)); C:\git\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\DSACryptoServiceProvider.Unix.cs: 120: throw new CryptographicException(SR.Cryptography_InvalidKeySize); C:\git\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\PasswordDeriveBytes.Windows.cs: 19: throw new CryptographicException(SR.Cryptography_InvalidKeySize); C:\git\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\RC2CryptoServiceProvider.Unix.cs: 79: throw new CryptographicException(SR.Cryptography_InvalidKeySize); C:\git\corefx\src\System.Security.Cryptography.Csp\src\System\Security\Cryptography\RC2CryptoServiceProvider.Windows.cs: 88: throw new ArgumentException(SR.Cryptography_InvalidKeySize, nameof(rgbKey)); C:\git\corefx\src\System.Security.Cryptography.Primitives\src\System\Security\Cryptography\AsymmetricAlgorithm.cs: 34: throw new CryptographicException(SR.Cryptography_InvalidKeySize); C:\git\corefx\src\System.Security.Cryptography.Primitives\src\System\Security\Cryptography\SymmetricAlgorithm.cs: 97: throw new CryptographicException(SR.Cryptography_InvalidKeySize); 115: throw new CryptographicException(SR.Cryptography_InvalidKeySize); ```" +20058 area-System.Net Fix '+' host name handling in HttpListener on Unix Fixes https://github.com/dotnet/corefx/issues/20050 cc: @Priya91, @hughbe +20059 area-System.Net Validate IAsyncResult passed to managed HttpListener.EndGetContext Lack of doing so results in hangs if the IAsyncResult is from a different HttpListener. Fixes https://github.com/dotnet/corefx/issues/19979 cc: @Priya91, @hughbe +20060 area-System.Net [HttpListener] Port HttpListener managed fixes to 2.0 en mass We have a bunch of fixes coming in to the managed HttpListener. We should roll-up and review all changes made since forking for 2.0, and port them over en masse rather than reviewing each piece meal. +20061 area-System.Net Validate IAsyncResult used with managed HttpListener BeginRead/Write Fixes #19985 Fixes #19980 cc: @Priya91, @hughbe +20062 area-System.Net Fix HttpListener Read_LargeLength tests Fixes https://github.com/dotnet/corefx/issues/19984 cc: @Priya91, @hughbe +20063 area-System.Net Validate Sec-WebSocket-Key header in managed HttpListener The managed implementation was not validating the Sec-WebSocket-Key header, such that invalid header values (which must be 16 bytes then base64 encoded) were getting through. Fixes https://github.com/dotnet/corefx/issues/19982 cc: @Priya91, @hughbe +20065 area-System.Security release/2.0: Fix use-after-free handle problems in X509Certificates on macOS Port https://github.com/dotnet/corefx/pull/20047 to release/2.0. Fixes #19996. cc: @bartonjs +20066 area-System.Net "HttpClient fails with ""The server returned an invalid or unrecognized response"" when using Apache mod_proxy" I have an issue in production where the heartbeat _GetAsync_ requests that a Windows Server 2012 R2 sends using HttpClient fail intermittently. Around 1 in 10 requests fail with: ```shell Unhandled Exception: System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: The server returned an invalid or unrecognized response at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at Program.Main(String[] args) ``` The servers responding to these heartbeat are CentOS 7.1 with Apache mod_proxy version: httpd-2.4.6-45.el7.centos.4.x86_64 All applications are .NET Core 1.1. I was able to narrow down the issue to the combination of Client on Windows and Kestrel behind Apache. I created a [repo](https://github.com/bruno-garcia/apache-mod-proxy-unrecognized-response) with a script to reproduce the issue. I'm unable to reproduce the issue when the client is running on Linux. Also, if I remove the break between requests, the issue doesn't not happen. If I change the interval from 5 seconds to 4 or 6 seconds, the issue doesn't happen either. That is in fact my current work around. +20067 area-System.Net Test for URI inconsistency Test behavior of #20046 case on each OS +20068 area-System.Net GetAsync_TrailingHeaders_Ignored failed with System.Net.Http.WinHttpException : The operation has been canceled This is the only 1 failure out of 5367832 tests in today's windows run. @karelz I wish I could say fixing tihs would give us our first green run in years, but there are a number of tests flakily producing errors like this. https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170521.02 ``` Unhandled Exception of Type System.Net.Http.HttpRequestException Message : System.Net.Http.HttpRequestException : An error occurred while sending the request.\r\n---- System.Net.Http.WinHttpException : The operation has been canceled Stack Trace : at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.<>c__DisplayClass57_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.Tasks.ContinuationTaskFromTask.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__57.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() ``` +20069 area-System.Net DualModeConnectAsync_DnsEndPointToHost_Helper failed on OSX with Timed out waiting for Connection https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170521.02/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DualModeConnectAsync~2FDualModeConnectAsync_DnsEndPointToHost_Helper(listenOn:%20::,%20dualModeServer:%20True) ``` Unhandled Exception of Type Xunit.Sdk.TrueException Message : Timed out while waiting for connection\nExpected: True\nActual: False Stack Trace : at System.Net.Sockets.Tests.DualModeConnectAsync.DualModeConnectAsync_DnsEndPointToHost_Helper(IPAddress listenOn, Boolean dualModeServer) in /Users/buildagent/agent/_work/29/s/corefx/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 630 ``` +20070 area-System.Diagnostics Process tests failing in Portable run due to needing elevation https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170521.02/workItem/System.Diagnostics.Process.Tests These tests need elevation. Either the runs need to be elevated, the tests need to elevate themselves, or they need filtering out by trait and covered some other way. +20071 area-System.Runtime Small summary mistake "https://github.com/dotnet/corefx/blob/master/src/System.ValueTuple/src/System/ValueTuple/ValueTuple.cs#L446 Change ""first"" to ""second""." +20073 area-System.Threading Implement Performance tests for System.Threading. Improves Performance test coverage from #18848. +20076 area-System.Security Removing dead code in System.Security.Cryptography.Algorithms Cleaning up dead code as identified by [#17905](https://github.com/dotnet/corefx/issues/17905) in System.Security.Cryptography.Algorithms. Included a change to the .gitignore to ignore JetBrains' .idea folder for Rider users. +20077 area-System.Collections "Test: System.Collections.Tests.CaseInsensitiveHashCodeProviderTests/Default_Compare_TurkishI failed with ""Xunit.Sdk.FalseException""" Opened on behalf of @Jiayili1 The test `System.Collections.Tests.CaseInsensitiveHashCodeProviderTests/Default_Compare_TurkishI` has failed. Assert.False() Failure\r Expected: False\r Actual: True Stack Trace: at System.Collections.Tests.CaseInsensitiveHashCodeProviderTests.Default_Compare_TurkishI() Build : Master - 20170522.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170522.01/workItem/System.Collections.NonGeneric.Tests/analysis/xunit/System.Collections.Tests.CaseInsensitiveHashCodeProviderTests~2FDefault_Compare_TurkishI +20078 area-System.Net InvalidCertificateServers_CertificateValidationDisabled_Succeeds failed with WinHttpException : The buffers supplied to a function was too small https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170522.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FInvalidCertificateServers_CertificateValidationDisabled_Succeeds(url:%20%5C%22https:~2F~2Fself-signed.bads... ``` Message : System.Net.Http.HttpRequestException : An error occurred while sending the request.\r\n---- System.Net.Http.WinHttpException : The buffers supplied to a function was too small Stack Trace : at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() ``` +20079 area-System.Net ProxyExplicitlyProvided_DefaultCredentials_Ignored failed with WinHttpException : The connection with the server was terminated abnormally https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170522.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test~2FProxyExplicitlyProvided_DefaultCredentials_Ignored ``` Unhandled Exception of Type System.AggregateException Message : System.AggregateException : One or more errors occurred. (Error while copying content to a stream.) (One or more errors occurred. (Error while copying content to a stream.))\r\n---- System.Net.Http.HttpRequestException : Error while copying content to a stream.\r\n-------- System.IO.IOException : The read operation failed, see inner exception.\r\n------------ System.Net.Http.WinHttpException : The connection with the server was terminated abnormally\r\n---- System.AggregateException : One or more errors occurred. (Error while copying content to a stream.)\r\n-------- System.Net.Http.HttpRequestException : Error while copying content to a stream.\r\n------------ System.IO.IOException : The read operation failed, see inner exception.\r\n---------------- System.Net.Http.WinHttpException : The connection with the server was terminated abnormally Stack Trace : at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout) at System.Threading.Tasks.Task.WaitAll(Task[] tasks) at System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test.ProxyExplicitlyProvided_DefaultCredentials_Ignored() ----- Inner Stack Trace #1 (System.Net.Http.HttpRequestException) ----- at System.Net.Http.HttpContent.d__50.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpResponseStream.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpContent.d__50.MoveNext() ----- Inner Stack Trace ----- at System.Environment.get_StackTrace() at System.Runtime.ExceptionServices.ExceptionStackTrace.AddCurrentStack(Exception exception) at System.Net.Http.WinHttpException.CreateExceptionUsingError(Int32 error) at System.Net.Http.WinHttpRequestCallback.OnRequestError(WinHttpRequestState state, WINHTTP_ASYNC_RESULT asyncResult) at System.Net.Http.WinHttpRequestCallback.RequestCallback(IntPtr handle, WinHttpRequestState state, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) at System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) at Interop.WinHttp.WinHttpQueryDataAvailable(SafeWinHttpHandle requestHandle, IntPtr parameterIgnoredAndShouldBeNullForAsync) at Interop.WinHttp.WinHttpQueryDataAvailable(SafeWinHttpHandle requestHandle, IntPtr parameterIgnoredAndShouldBeNullForAsync) at System.Net.Http.WinHttpResponseStream.d__18.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at System.Net.Http.WinHttpResponseStream.CopyToAsyncCore(Stream destination, Byte[] buffer, CancellationToken cancellationToken) at System.Net.Http.WinHttpResponseStream.CopyToAsync(Stream destination, Int32 bufferSize, CancellationToken cancellationToken) at System.Net.Http.NoWriteNoSeekStreamContent.SerializeToStreamAsync(Stream stream, TransportContext context) at System.Net.Http.HttpContent.LoadIntoBufferAsync(Int64 maxBufferSize) at System.Net.Http.HttpClient.d__58.MoveNext() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(Action action, Boolean allowInlining, Task& currentTask) at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) at System.Threading.Tasks.Task`1.TrySetResult(TResult result) at System.Threading.Tasks.TaskCompletionSource`1.TrySetResult(TResult result) at System.Net.Http.WinHttpHandler.d__105.MoveNext() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.ThreadPoolWorkQueue.Dispatch() --- End of stack trace from AddCurrentStack --- ----- Inner Stack Trace #2 (System.AggregateException) ----- at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test.<>c.b__2_0(Task`1 t) at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) ----- Inner Stack Trace ----- at System.Net.Http.HttpContent.d__50.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpResponseStream.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpContent.d__50.MoveNext() ----- Inner Stack Trace ----- at System.Environment.get_StackTrace() at System.Runtime.ExceptionServices.ExceptionStackTrace.AddCurrentStack(Exception exception) at System.Net.Http.WinHttpException.CreateExceptionUsingError(Int32 error) at System.Net.Http.WinHttpRequestCallback.OnRequestError(WinHttpRequestState state, WINHTTP_ASYNC_RESULT asyncResult) at System.Net.Http.WinHttpRequestCallback.RequestCallback(IntPtr handle, WinHttpRequestState state, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) at System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) at Interop.WinHttp.WinHttpQueryDataAvailable(SafeWinHttpHandle requestHandle, IntPtr parameterIgnoredAndShouldBeNullForAsync) at Interop.WinHttp.WinHttpQueryDataAvailable(SafeWinHttpHandle requestHandle, IntPtr parameterIgnoredAndShouldBeNullForAsync) at System.Net.Http.WinHttpResponseStream.d__18.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at System.Net.Http.WinHttpResponseStream.CopyToAsyncCore(Stream destination, Byte[] buffer, CancellationToken cancellationToken) at System.Net.Http.WinHttpResponseStream.CopyToAsync(Stream destination, Int32 bufferSize, CancellationToken cancellationToken) at System.Net.Http.NoWriteNoSeekStreamContent.SerializeToStreamAsync(Stream stream, TransportContext context) at System.Net.Http.HttpContent.LoadIntoBufferAsync(Int64 maxBufferSize) at System.Net.Http.HttpClient.d__58.MoveNext() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(Action action, Boolean allowInlining, Task& currentTask) at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) at System.Threading.Tasks.Task`1.TrySetResult(TResult result) at System.Threading.Tasks.TaskCompletionSource`1.TrySetResult(TResult result) at System.Net.Http.WinHttpHandler.d__105.MoveNext() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.ThreadPoolWorkQueue.Dispatch() --- End of stack trace from AddCurrentStack --- ``` +20080 area-System.Diagnostics Fix tests needing sudo Fixes https://github.com/dotnet/corefx/issues/20070 by making the test pass if not sudo. Verified it passes with and without sudo. Note there are already some tests that behave differently with and without sudo. Coverage of the few tests and implementation codepaths with sudo I will follow up on separately. I moved the two tests to the unix-specific file in order to keep the libc pinvoke out of the windows build. In doing so, I moved all the other unix specific tests to keep things consistent. +20082 area-Infrastructure Port disabling 3 Nano tests to 2.0 +20084 area-System.Runtime "Tests under: System.Reflection.Tests.AssemblyTests failed with ""System.IO.FileNotFoundException""" Opened on behalf of @Jiayili1 The test `System.Reflection.Tests.AssemblyTests/LoadFrom_SameIdentityAsAssemblyWithDifferentPath_ReturnsEqualAssemblies` has failed. System.IO.FileNotFoundException : Could not load file or assembly 'C:\\Users\\DotNetTestRunner\\AppData\\Local\\Packages\\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\\AC\\Temp\\AssemblyTests_fplfggsf.iuu\\System.Runtime.Tests.dll'. The system cannot find the file specified. Stack Trace: at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, String ilPath, String niPath, ObjectHandleOnStack retAssembly) at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath) at System.Reflection.Assembly.LoadFrom(String assemblyFile) at System.Reflection.Tests.AssemblyTests.LoadFrom_SameIdentityAsAssemblyWithDifferentPath_ReturnsEqualAssemblies() Build : Master - 20170522.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170522.01/workItem/System.Runtime.Tests/analysis/xunit/System.Reflection.Tests.AssemblyTests~2FLoadFrom_SameIdentityAsAssemblyWithDifferentPath_ReturnsEqualAssemblies +20085 area-System.Runtime "Test: System.Tests.StringTests/CompareTest failed with ""Xunit.Sdk.EqualException""" "Opened on behalf of @Jiayili1 The test `System.Tests.StringTests/CompareTest(s1: \""turkish İ\"", s2: \""Turkish i\"", cultureName: \""tr-TR\"", ignoreCase: True, expected: 0)` has failed. Assert.Equal() Failure\r Expected: 0\r Actual: 1 Stack Trace: at System.Tests.StringTests.CompareTest(String s1, String s2, String cultureName, Boolean ignoreCase, Int32 expected) Build : Master - 20170522.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170522.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.StringTests~2FCompareTest(s1:%20%5C%22turkish%20%C4%B0%5C%22,%20s2:%20%5C%22Turkish%20i%5C%22,%20cultureName:%20%5C%22tr-TR%5C%22,%20ignoreCase:%20True,%20expected:%200)" +20086 area-System.Runtime "Test failure: System.Tests.TypeTests/GetTypeByName(typeName: \""Outside`1+Inside`1\"", expectedType: typeof(Outside<,>))" "Opened on behalf of @Jiayili1 The test `System.Tests.TypeTests/GetTypeByName(typeName: \""Outside`1+Inside`1\"", expectedType: typeof(Outside<,>))` has failed. Assert.Equal() Failure\r Expected: typeof(Outside<,>)\r Actual: (null) Stack Trace: at System.Tests.TypeTests.GetTypeByName(String typeName, Type expectedType) Build : Master - 20170522.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170522.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.TypeTests~2FGetTypeByName(typeName:%20%5C%22Outside%601+Inside%601%5C%22,%20expectedType:%20typeof(Outside%3C,%3E))" +20090 area-System.Runtime Update ValueTuple.cs Fix mistake in summary. +20091 area-System.IO Creating MemoryMappedFile fails with PlatformNotSupportedException Creating a MemoryMapped (in memory segment) failed on RHEL .NET Core App 1.1 ctor used: mmf = MemoryMappedFile.CreateNew(_FeedName, _StreamCapacity, MemoryMappedFileAccess.ReadWrite); mvs = mmf.CreateViewStream(); mvs.Seek(0, SeekOrigin.Begin); stack trace 1 22-05-2017 08:24:38.626675 [1] Starting program at 08:24:38.6204093Utc 2 22-05-2017 08:24:38.650215 [7] Creating MemoryMap publiser FXTest System.PlatformNotSupportedException: Named maps are not supported. at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateCore(FileStream fileStream, String mapName, HandleIn heritability inheritability, MemoryMappedFileAccess access, MemoryMappedFileOptions options, Int64 capacity) at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateNew(String mapName, Int64 capacity, MemoryMappedFile Access access, MemoryMappedFileOptions options, HandleInheritability inheritability) at ConsoleApp1.FairValueMemoryMapPublisher.CreateMemoryMappedFile() 3 22-05-2017 08:24:38.775615 [7] Starting Publication 4 22-05-2017 08:24:38.777373 [7] Starting Publication 5 22-05-2017 08:24:38.780634 [7] System.NullReferenceException: Object reference not set to an instance of a n object. at ConsoleApp1.FairValueMemoryMapPublisher.PublishOnMemoryMap(ABCD entity) at ConsoleApp1.Program.StartMemMapPublisher(String _FeedName) +20093 area-System.Threading System.Threading.Tasks.Parallel.ForEach method does not always throw OperationCanceledException when canceled I have found that `ForEach` method in `System.Threading.Tasks.Parallel` class does not always finish with `OperationCanceledException` when canceled. Instead, `ForEach` method silently stops without throwing any exceptions and without executing all iterations. As a result, `Parallel.ForEach` may produce incomplete results. This behavior is observed for `Parallel.ForEach` method only, I was not able to reproduce it for `Parallel.For` method. Let's assume that we have a method that performs some work with the help of `Parallel.ForEach`: ```c# private static int DoWork(CancellationToken token) { var parallelOptions = new ParallelOptions { CancellationToken = token }; int counter = 0; Parallel.ForEach( new int[500], parallelOptions, dummy => { // Waste some time and keep CPU busy. for (long i = 0; i < 500; i++) ; Interlocked.Increment(ref counter); }); return counter; } ``` The method executes 500 tasks, each of them increments `counter` variable. Each task also does a small amount of work in the form of an empty `for` cycle so that it does not finish right away. If `DoWork` method finishes successfully, the returned value should be equal to the number of tasks executed (500). If `CancellationToken` is canceled while `Parallel.ForEach` is still running, then (per documentation) `Parallel.ForEach` should throw `OperationCanceledException`. The problem is that if some code launches `DoWork` method, waits for a short time (a few milliseconds), and then cancels `DoWork`, the value returned from `DoWork` may be smaller than 500: ```C# using (var tokenSource = new CancellationTokenSource()) { Task task = Task.Run(() => DoWork(tokenSource.Token)); // Waste some time and keep CPU busy before canceling DoWork. const long delay = 20000; for (long i = 0; i < delay; i++) ; tokenSource.Cancel(); try { int counter = await task; if (counter == 500) { // This branch should be executed if tokenSource.Cancel() was called too late // and Parallel.ForEach had already finished. } else { // This branch should never be executed, but execution goes there from time // to time. } } catch (OperationCanceledException) { // This is where we expect to land if DoWork was canceled. } } ``` The probability that `DoWork` will return a value different from 500 depends on the value of `delay` constant. On my workstation the issue appears if `delay` is between 10000 and 50000 (see the image below). X-axis is `delay` constant, Y-axis is the probability of `DoWork` returning a wrong value. ![failurerate](https://cloud.githubusercontent.com/assets/23439941/26311148/8c484ef2-3f03-11e7-9748-a30b1f19fd69.png) .NET Core console application that checks the probability of the issue: [ParallelTester.zip](https://github.com/dotnet/corefx/files/1018975/ParallelTester.zip) I was able to reproduce the issue for .NET Core only. The same piece of code works fine when compiled under .NET Frawework 4.6.2. Workstation Configuration: Target Framework: .NETCoreApp 1.1 OS: Windows 10 Pro CPU: Core i7-4702MQ +20095 area-System.Net Add more tracing to HttpClient on Unix Some recent investigations based on tracing data revealed some gaps in usefulness. This adds some more tracing to try to fill those gaps. cc: @geoffkizer, @janvorli, @bartonjs +20096 area-System.Net [HttpListener] [Porting] HttpListener.GetContext on Windows throws an NRE for NTLM and Negotiate authentication "The following test gives an example of this (I'm currently writing tests for HttpListener authentication): ```cs using System.Net.Http; using System.Threading; using System.Threading.Tasks; using Xunit; namespace System.Net.Tests { public class AuthenticationTests : IDisposable { private HttpListenerFactory _factory; private HttpListener _listener; public AuthenticationTests() { _factory = new HttpListenerFactory(); _listener = _factory.GetListener(); } public void Dispose() => _factory.Dispose(); [Fact] public async Task NtlmAuthentication_NoRequestHeaders_ReturnsForbiddenStatusCode() { _listener.AuthenticationSchemes = AuthenticationSchemes.Ntlm; using (var client = new HttpClient()) { HttpResponseMessage message = await AuthenticationFailure(client, HttpStatusCode.Unauthorized); Assert.Equal(""NTLM"", message.Headers.WwwAuthenticate.ToString()); } } public async Task AuthenticationFailure(HttpClient client, HttpStatusCode errorCode) { Task clientTask = client.GetAsync(_factory.ListeningUrl); // The server task will hang forever if it is not cancelled. var tokenSource = new CancellationTokenSource(); Task serverTask = Task.Run(() => _listener.GetContext(), tokenSource.Token); // The client task should complete first - the server should send a 401 response. Task resultTask = await Task.WhenAny(clientTask, serverTask); tokenSource.Cancel(); if (resultTask == serverTask) { await serverTask; } Assert.Same(clientTask, resultTask); Assert.Equal(errorCode, clientTask.Result.StatusCode); return clientTask.Result; } } } ``` This does not fail on desktop. The netcoreapp stack trace is: ``` System.Net.Tests.AuthenticationTests.NtlmAuthentication_NoRequestHeaders_ReturnsForbiddenStatusCode [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: C:\Users\hugh\Documents\GitHub\corefx\src\System.Net.HttpListener\src\System\Net\Windows\HttpListener.Window s.cs(1918,0): at System.Net.HttpListener.DisconnectAsyncResult..ctor(HttpListener httpListener, UInt64 connectionId) C:\Users\hugh\Documents\GitHub\corefx\src\System.Net.HttpListener\src\System\Net\Windows\HttpListener.Window s.cs(1645,0): at System.Net.HttpListener.RegisterForDisconnectNotification(UInt64 connectionId, DisconnectAsyncResult & disconnectResult) C:\Users\hugh\Documents\GitHub\corefx\src\System.Net.HttpListener\src\System\Net\Windows\HttpListener.Window s.cs(1306,0): at System.Net.HttpListener.HandleAuthentication(RequestContextBase memoryBlob, Boolean& stoleBlob) C:\Users\hugh\Documents\GitHub\corefx\src\System.Net.HttpListener\src\System\Net\Windows\HttpListener.Window s.cs(655,0): at System.Net.HttpListener.GetContext() C:\Users\hugh\Documents\GitHub\corefx\src\System.Net.HttpListener\tests\AuthenticationTests.cs(310,0): at Sy stem.Net.Tests.AuthenticationTests.b__30_0() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Obj ect state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() C:\Users\hugh\Documents\GitHub\corefx\src\System.Net.HttpListener\tests\AuthenticationTests.cs(317,0): at Sy stem.Net.Tests.AuthenticationTests.d__30.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() C:\Users\hugh\Documents\GitHub\corefx\src\System.Net.HttpListener\tests\AuthenticationTests.cs(127,0): at Sy stem.Net.Tests.AuthenticationTests.d__14.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() ``` HttpListener... the gift that keeps on giving" +20098 area-System.Net [managed bug] HttpListener.Realm challenges should have the same format as Windows challenges "Following test disabled with this issue: - BasicAuthentication_RealmSet_SendsChallengeToClient ``` System.Net.Tests.AuthenticationTests.BasicAuthentication_RealmSet_SendsChallengeToClient(realm: \""ExampleRealm\"") [FAIL] Assert.Equal() Failure  (pos 11) Expected: Basic realm =""ExampleRealm"" Actual: Basic realm=""ExampleRealm""  (pos 11) ```" +20099 area-System.Net [HttpListener] [Managed] HttpListener should validate basic authentication requests "Tests disabled with this issue: - BasicAuthentication_InvalidRequest_SendsStatusCodeClient ``` System.Net.Tests.AuthenticationTests.BasicAuthentication_InvalidRequest_SendsStatusCodeClient(header: \""\"", statusCode: Unauthorized) [FAIL] System.IndexOutOfRangeException : Index was outside the bounds of the array. Stack Trace: at System.Net.HttpListenerContext.ParseAuthentication(AuthenticationSchemes expectedSchemes) at System.Net.HttpListener.EndGetContext(IAsyncResult asyncResult) at System.Net.HttpListener.GetContext() at System.Net.Tests.AuthenticationTests.b__35_0() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.AuthenticationTests.BasicAuthentication_InvalidRequest_SendsStatusCodeClient(header: null, statusCode: Unauthorized) [FAIL] System.IndexOutOfRangeException : Index was outside the bounds of the array. Stack Trace: at System.Net.HttpListenerContext.ParseAuthentication(AuthenticationSchemes expectedSchemes) at System.Net.HttpListener.EndGetContext(IAsyncResult asyncResult) at System.Net.HttpListener.GetContext() at System.Net.Tests.AuthenticationTests.b__35_0() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.AuthenticationTests.BasicAuthentication_InvalidRequest_SendsStatusCodeClient(header: \""dXNlcm5hbWU=\"", statusCode: BadRequest) [FAIL] Assert.Same() Failure Expected: Task { Status = WaitingForActivation } Actual: Task { Status = RanToCompletion } Stack Trace: at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.AuthenticationTests.BasicAuthentication_InvalidRequest_SendsStatusCodeClient(header: \""abc\"", statusCode: InternalServerError) [FAIL] Assert.Same() Failure Expected: Task { Status = WaitingForActivation } Actual: Task { Status = RanToCompletion } Stack Trace: at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ```" +20100 area-System.Net [HttpListener] [Managed] HttpListener should catch non-fatal errors if AuthenticationSchemeSelectorDelegate throws Following tests are disabled with this issue: - AuthenticationSchemeSelectorDelegate_ThrowsException_SendsInternalServerErrorToClient - AuthenticationSchemeSelectorDelegate_ThrowsOutOfMemoryException_RethrowsException ``` System.Net.Tests.AuthenticationTests.AuthenticationSchemeSelectorDelegate_ThrowsException_SendsInternalServerErrorToClient [FAIL] System.AggregateException : One or more errors occurred. (An error occurred while sending the request.) ---- System.Net.Http.HttpRequestException : An error occurred while sending the request. -------- System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response Stack Trace: at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() ----- Inner Stack Trace ----- at System.Environment.get_StackTrace() at System.Runtime.ExceptionServices.ExceptionStackTrace.AddCurrentStack(Exception exception) at System.Net.Http.WinHttpException.CreateExceptionUsingError(Int32 error) at System.Net.Http.WinHttpRequestCallback.OnRequestError(WinHttpRequestState state, WINHTTP_ASYNC_RESULT asyncResult) at System.Net.Http.WinHttpRequestCallback.RequestCallback(IntPtr handle, WinHttpRequestState state, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) at System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) at Interop.WinHttp.WinHttpReceiveResponse(SafeWinHttpHandle requestHandle, IntPtr reserved) at Interop.WinHttp.WinHttpReceiveResponse(SafeWinHttpHandle requestHandle, IntPtr reserved) at System.Net.Http.WinHttpHandler.InternalReceiveResponseHeadersAsync(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.d__105.MoveNext() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c__DisplayClass4_0.b__0() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.ThreadPoolWorkQueue.Dispatch() --- End of stack trace from AddCurrentStack --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() ``` +20101 area-System.Net [HttpListener] [Managed] HttpListener should not hang when missing NTLM/Negotiate authentication is used "Following tests are disabled with this issue: - NtlmAuthentication_Conversation_ReturnsExpectedType2Message - NtlmAuthentication_InvalidRequestHeaders_ReturnsExpectedStatusCode - NegotiateAuthentication_Conversation_ReturnsExpectedType2Message - NegotiateAuthentication_InvalidRequestHeaders_ReturnsExpectedStatusCode ``` System.Net.Tests.AuthenticationTests.NtlmAuthentication_Conversation_ReturnsExpectedType2Message [FAIL] Assert.Same() Failure Expected: Task { Status = WaitingForActivation } Actual: Task { Status = RanToCompletion } Stack Trace: at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__15.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.AuthenticationTests.NtlmAuthentication_InvalidRequestHeaders_ReturnsExpectedStatusCode(header: null, statusCode: Unauthorized) [FAIL] Assert.Same() Failure Expected: Task { Status = WaitingForActivation } Actual: Task { Status = RanToCompletion } Stack Trace: at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__17.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.AuthenticationTests.NtlmAuthentication_InvalidRequestHeaders_ReturnsExpectedStatusCode(header: \""\"", statusCode: Unauthorized) [FAIL] Assert.Same() Failure Expected: Task { Status = WaitingForActivation } Actual: Task { Status = RanToCompletion } Stack Trace: at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__17.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.AuthenticationTests.NtlmAuthentication_InvalidRequestHeaders_ReturnsExpectedStatusCode(header: \""abc\"", statusCode: BadRequest) [FAIL] Assert.Same() Failure Expected: Task { Status = WaitingForActivation } Actual: Task { Status = RanToCompletion } Stack Trace: at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__17.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.AuthenticationTests.NtlmAuthentication_InvalidRequestHeaders_ReturnsExpectedStatusCode(header: \""abcd\"", statusCode: BadRequest) [FAIL] Assert.Same() Failure Expected: Task { Status = WaitingForActivation } Actual: Task { Status = RanToCompletion } Stack Trace: at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__17.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.AuthenticationTests.NegotiateAuthentication_Conversation_ReturnsExpectedType2Message [FAIL] Assert.Same() Failure Expected: Task { Status = WaitingForActivation } Actual: Task { Status = RanToCompletion } Stack Trace: at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.AuthenticationTests.NegotiateAuthentication_InvalidRequestHeaders_ReturnsExpectedStatusCode(header: null, statusCode: Unauthorized) [FAIL] Assert.Same() Failure Expected: Task { Status = WaitingForActivation } Actual: Task { Status = RanToCompletion } Stack Trace: at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__19.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.AuthenticationTests.NegotiateAuthentication_InvalidRequestHeaders_ReturnsExpectedStatusCode(header: \""\"", statusCode: Unauthorized) [FAIL] Assert.Same() Failure Expected: Task { Status = WaitingForActivation } Actual: Task { Status = RanToCompletion } Stack Trace: at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__19.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.AuthenticationTests.NegotiateAuthentication_InvalidRequestHeaders_ReturnsExpectedStatusCode(header: \""abc\"", statusCode: BadRequest) [FAIL] Assert.Same() Failure Expected: Task { Status = WaitingForActivation } Actual: Task { Status = RanToCompletion } Stack Trace: at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__19.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.AuthenticationTests.NegotiateAuthentication_InvalidRequestHeaders_ReturnsExpectedStatusCode(header: \""abcd\"", statusCode: BadRequest) [FAIL] Assert.Same() Failure Expected: Task { Status = WaitingForActivation } Actual: Task { Status = RanToCompletion } Stack Trace: at System.Net.Tests.AuthenticationTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.AuthenticationTests.d__19.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ```" +20102 area-System.Net Add some HttpListener authentication tests Lots more managed test failures, sorry - also a Windows implementation bug. This prevented me from adding more tests, but I verified that the disabled tests pass on netfx Contributes to #13618 +20103 area-System.Net [HttpListener] HttpListener tests are blocking xunit workers, causing hangs Lots of the tests that are async are doing synchronous work that's dependent on something else happening, resulting in deadlocks/hangs when xunit parallel execution is enabled, in particular on older OSes where things run slower / more stuff completes asynchronously. Examples include synchronous sends/receives, spinning until a socket closes, doing .Wait() to block waiting for an async method, etc. +20104 area-System.Net Disable parallel execution of HttpListener tests https://github.com/dotnet/corefx/issues/20103 cc: @hughbe +20106 area-Infrastructure Remove old Nano testing Removes old nano testing, in favor of new pipelines (@dotnet-bot test portable windows debug pipeline) (@dotnet-bot test portable windows release pipeline) +20107 area-Infrastructure Add help job +20108 area-Meta Test attributes cleanup for Uap now that Uap flag includes UapAot Fixes: https://github.com/dotnet/buildtools/issues/1395 cc: @danmosemsft FYI: @AtsushiKan @davidsh +20109 area-Infrastructure Need to handle generating config files for exe's we launch from tests exe's like our RemoteExecutorApp or others like [VoidMainWithExitCodeApp](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/tests/VoidMainWithExitCodeApp/VoidMainWithExitCodeApp.cs) need to have configuration files in order to successfully run. See https://github.com/dotnet/corefx/pull/19232 where I've temporarily checked in an appconfig file to address it for that test exe. We currently hardcode a list of config files we generate here https://github.com/dotnet/buildtools/blob/master/src/Microsoft.DotNet.Build.Tasks/PackageFiles/tests.targets#L130. Instead of hardcoding we should make that list extensible or automatically detect exe's and generate config files for them. While app.config is for the desktop runs we have a similar problem with the netcoreapp runs with runtimeconfig.json files that are needed. We should follow a similar process and generate them as well instead of having them be checked in along side all the test exe's. +20110 area-Infrastructure Need to generate a RunTest.cmd unique to the BuildConfiguration instead of Configuration Today if we have a configuration of netstandard in a test project and you try to run it once with one target group (say netcoreapp) and then a second time as another target group (say netfx) we keep overwriting the RunTest.cmd each time. We should ensure that the test output path takes into account the target you are running on as well as the target you are building for. I noticed this while helping with https://github.com/dotnet/corefx/pull/19232 and saw we were running the netfx tests from here `D:\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Runtime.Extensions.Tests\netstandard\RunTest.cmd` which didn't account for netfx as all. +20111 area-System.IO Associate #19965 with existing test There is a PR to fix the behavior in FileStream in CoreCLR. This test will pass as per the Windows OS block once that change is taken. Disabling and tracking to allow taking a new drop. #19965, https://github.com/dotnet/coreclr/pull/11757 The primary issue is #19850. +20112 area-System.Reflection Add HasSameMetadataDefinitionAs(). This api was approved here: Fix https://github.com/dotnet/corefx/issues/5884 and is a necessary step to fixing the System.Dynamic.Runtime.Tests failure: https://github.com/dotnet/corefx/issues/19895 which is caused by Microsoft.CSharp trying to do the impossible and emulate this api without GetMetadataToken() support. CoreCLR implementation here: https://github.com/dotnet/coreclr/pull/11774 and CoreRT implementation in CR: +20113 area-Infrastructure Add step/test to validate test machine configuration We occasionally get tests failing only on Helix machines and after expensive investigation discover it's some configuration difference with local dev machines. It would be valuable to have the test run script do simple validation of the configuration to avoid repeating such investigations. Collecting a list of things to validate - [ ] [/proc/sys/vm/overcommit_memory set to 0](https://github.com/dotnet/corefx/issues/19923) I'll add others as I recall them. @stephentoub @MattGal @bartonjs +20114 area-Infrastructure RemoteExecutorConsoleApp is becoming too complex The [RemoteExecutorConsoleApp](https://github.com/dotnet/corefx/blob/master/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs) is becoming too complex and is duplicating a lot of logic from our build generation scripts. Logic like picking the correct runner or setting up the environment or the correct configuration. We should eliminate most of this duplicated logic that we have here and in test.targets and instead generate a RunTest.Remote.cmd/sh (or something like that) that encapsulate the logic for running the remote application for the given platform. Then RemoteExecutorTestBase.cs can simply call run on that cmd or sh script that we generate and we don't have to keep maintaining the logic for figuring out how to run in multiple locations. cc @stephentoub @ViktorHofer @safern @danmosemsft This became pretty clear to me while helping with https://github.com/dotnet/corefx/pull/19232 and the UWP RemoteExecutor issues we are still having. +20115 area-System.Xml add missing stub constructors Add private constructors to the System.Xml.XmlSchemaSet.Tests, where the constructors were missing. Adjusted TC classes in project so they all have the same constructor style. +20116 area-System.Data Port PR#19968 User message for non-support of Sys.Transactions in SqlClient The PR does the following Brings in Enlist keyword on connection string. Throws exceptions when SqlConnection.Open or SqlConnection.OpenAsync() is called in Transaction Scope Throws Exception when SqlConnection.EnlistTransaction is called. Fixes #19894 +20117 area-System.IO Re-enable long path tests for UAP "WinRT APIs weren't long path friendly. This should change for RS3. Additionally we're planning to remove WinRT specific codepaths, relying on our ""traditional"" Win32 APIs. Should tackle after #17470. We have plenty of existing tests, they are just currently skipped for UAP." +20118 area-Infrastructure Make the description of 'Microsoft.NETCore.App' package clearer There is always a confusion as to why is 'Microsoft.NETCore.App' auto-referenced in a .NET Core project and why can it be not updated etc. We are trying to fix the text of such references on Visual Studio Package Manager as tracked here: https://github.com/NuGet/Home/issues/4964 I feel the the description of the package could also clear the air on which SDK (may be we need to use this term somewhere) to make it clearer to the end-customer why this package got included in first place and which SDK (and version) brought this package as dependency to the project. +20119 area-System.Diagnostics [2.0] Port fix for tests that need sudo Port test fix https://github.com/dotnet/corefx/pull/20080 for bug #20070 Fixes #20070 Do not merge - not verified in master yet. +20121 area-Infrastructure Segregate Networking outer loop tests into their own run The outer loop netcore runs are on the verge of being 100% green excepting networking tests which have some broad reliability issues. In order to focus attention on those, and more easily keep the non-networking tests 100% green, we want to break out the networking tests into their own run and their own badge on Helix. @karelz to assign... +20122 area-Infrastructure Move more OuterLoop tests into InnerLoop The netcore tests are close to 100% green, excepting networking. To help avoid going backwards, we should go through the Outerloop tests (except networking) and promote all of them that are (1) reliable and (2) not excessively time consuming. That way CI can protect them. +20123 area-System.Net Several fixes for HttpListener on Unix Fixes https://github.com/dotnet/corefx/issues/19971 Fixes https://github.com/dotnet/corefx/issues/19976 Also most of https://github.com/dotnet/corefx/issues/19972 Primarily involved moving shareable implementations from the Windows code to the shared code and then fixing up the managed implementation to use it. Nothing functional changed on the Windows side. cc: @janvorli, @hughbe, @Priya91, @geoffkizer +20124 area-System.Data Add additional DataTable functionality to SqlClient to match Framework implementation (#20022) Porting #20022 to release/2.0.0 branch Fixes #19913 +20125 area-Serialization Fix Bug with XmlSerializer Events on UWP. The bug was that we didn't set XmlSerializerReader's XmlDeserializationEvents on the code path for UWP, so the events registered were not triggered. Fix #19903. Fix #19898. +20126 area-Infrastructure Outerloop crash: Tools/crossgen.sh: line 54: 2994 Segmentation fault Failed in https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu16.04_debug_prtest/23/consoleFull#14914778664b7730ef-150b-4be7-a00f-82ba6c50792b ``` 16:52:41 /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/System.Runtime.Serialization.Formatters.dll -> /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/System.Runtime.Serialization.Formatters.ni.dll 16:52:41 /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/vbc.exe -> /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/vbc.ni.exe 16:52:42 /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/ApiCompat.exe -> /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/ApiCompat.ni.exe 16:52:42 /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/run.exe -> /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/run.ni.exe 16:52:42 /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/System.Security.Cryptography.Algorithms.dll -> /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/System.Security.Cryptography.Algorithms.ni.dll 16:52:42 /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/System.ComponentModel.TypeConverter.dll -> /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/System.ComponentModel.TypeConverter.ni.dll 16:52:42 Tools/crossgen.sh: line 54: 2994 Segmentation fault (core dumped) $__crossgen /Platform_Assemblies_Paths $__sharedFxDir:$__toolsDir /nologo /MissingDependenciesOK /ReadyToRun $__file > /dev/null 16:52:42 Unable to successfully compile /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/System.Private.CoreLib.dll 16:52:42 /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/System.Net.Mail.dll -> /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/System.Net.Mail.ni.dll 16:52:42 /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/System.Linq.dll -> /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/System.Linq.ni.dll 16:52:42 /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/System.Private.Xml.Linq.dll -> /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug_prtest/Tools/System.Private.Xml.Linq.ni.dll ``` +20127 area-Infrastructure add explicit check for OSX version to avoid mysterious breakages This change adds explicit check for OSX version. On my 10.11 it fails with following message: ./init-tools.sh error: OSX version 10.11.6 is too old! bash -x init.sh I verified that version expands to VERSION=010011006 as expected. I run same script on Sierra and init.sh runs expected. (version expands to VERSION=010012005) +20128 area-System.Net Test failure: System.Net.Security.Tests.LoggingTest / EventSource_EventsRaisedAsExpected (60s timeout) ## History of failures (since 2017/5) Day | Build | OS -- | -- | -- 8/21 | 20170821.03 | OSX10.12 # Original history https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_osx_debug_prtest/39/consoleFull Example: System.Net.Security.Tests.LoggingTest.EventSource_EventsRaisedAsExpected (from (empty)) ``` Stacktrace MESSAGE: Timed out after 60000ms waiting for remote process 97944\nExpected: True\nActual: False +++++++++++++++++++ STACK TRACE: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_osx_debug_prtest/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs:line 214 at System.Net.Security.Tests.LoggingTest.EventSource_EventsRaisedAsExpected() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_osx_debug_prtest/src/System.Net.Security/tests/FunctionalTests/LoggingTest.cs:line 31 ``` Console log: [log.txt](https://github.com/dotnet/corefx/files/1020258/log.txt) +20130 area-System.Net UWP: System.Net.Ping Tracking work for UWP System.Net.Ping. +20131 area-System.Net UWP: System.Net.Mail Tracking work for System.Net.Mail in UWP. +20132 area-System.Net UWP: System.Net.WebSockets Tracking work for System.Net.WebSockets (common, client and server). +20133 area-Infrastructure Add support for other .NET Framework Shims we support for .NET Core We have ported a number of things for .NET Framework to .NET Core but we don't have shims in place for all of them. Based on a diff of the .NET 4.6.1 and .NET Core I see the following .NET Framework identities that we don't currently support type unification for: ``` System.Configuration System.Security System.ServiceProcess WindowsBase ``` PR https://github.com/dotnet/corefx/pull/20029 add these shims. +20134 area-System.IO Port for #20040 Port for #20040. Normalizes exceptions for missing files across platforms. +20135 area-System.Net UWP: System.Net.Sockets Tracking work for System.Net.Sockets in UWP +20136 area-System.Net UWP: System.Net.Requests Tracking work for System.Net.Requests in UWP. +20137 area-System.Net UWP: System.Net.WebProxy Tracking work for System.Net.WebProxy +20138 area-System.Net UWP: System.Net.WebHeaderCollection Tracking work for System.Net.WebHeaderCollection in UWP. +20139 area-System.Net UWP: System.Net.NameResolution Tracking UWP work for System.Net.NameResolution +20140 area-System.Net UWP: System.Net.ServicePoint Tracking UWP work for System.Net.ServicePoint. +20141 area-System.Net UWP: System.Net.WebClient Tracking UWP work for System.Net.WebClient. +20142 area-System.Diagnostics mark certain Process struct fields as reserved We don't use them. +20143 area-System.Net Fixing test name. Small test name changes to easily identify failing tests in CI. No actual changes required for UWP (no test is failing). Fixes #20138 +20144 area-Infrastructure Add more compat shim assemblies Fixes https://github.com/dotnet/corefx/issues/20133 cc @danmosemsft @ericstj +20145 area-System.Net Disable System.Net.* tests for issue #19967 Contributes to: #18483 In order to consume the new buildtools version that fixes [ConditionalFact/Theory] netfx discovery I have to disable failing tests so that CI is green. This tests are tracked by: https://github.com/dotnet/corefx/issues/19967 cc: @davidsh @CIPop @stephentoub +20147 area-System.Runtime System.Environment - Writing environment variables on Mac/Linux "Hi, @stephentoub @jkotas @JeremyKuhne @eerhardt I've been looking at System.Environment and how to read and write Environment variables on Linux/Mac, using the 1.04 release and 2.0 preview currently available. With the 2.0 preview, the APIs expanded to allowing the use of the EnvironmentVariableTarget enum, which features the Process, User and Machine scope where as prior to this, only the Process scope was implemented as a default. Unfortunately, this is not helpful at all on Linux/Mac. With the current API in 2.0 preview (and prior API versions), setting environment variables on Linux/Mac do not bind to the underlying shell process, they live within the scope of the dotnet process executing the assembly setting the environment variable(s) and stop to exist once dotnet terminates assembly execution. Using other scopes (e.g. User, Machine) on non-Windows platforms) is not mapped in the implementation. This is fairly useless for persisting information to be used by other processes. Example: ```csharp using System; using System.Runtime.InteropServices; class Sample { protected static string myVarPrefix = ""FOOBAR_""; protected static string myVarA = myVarPrefix + ""DEFAULT""; // default process protected static string myVarB = myVarPrefix + ""CURRENT""; // Current Process protected static string myVarC = myVarPrefix + ""USER""; // Current User protected static string myVarD = myVarPrefix + ""MACHINE""; // Local Machine protected static string myVarValue = ""FOOBAR""; public static void Main() { Console.WriteLine(""Setting default process...""); Environment.SetEnvironmentVariable(myVarA, myVarValue); Console.WriteLine(""Setting current process...""); Environment.SetEnvironmentVariable(myVarB, myVarValue, EnvironmentVariableTarget.Process); Console.WriteLine(""Setting user...""); Environment.SetEnvironmentVariable(myVarC, myVarValue, EnvironmentVariableTarget.User); Console.WriteLine(""Setting machine...""); try { Environment.SetEnvironmentVariable(myVarD, myVarValue, EnvironmentVariableTarget.Machine); } catch (System.Exception) { Console.WriteLine(""Failed setting machine...""); } if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) System.Diagnostics.Process.Start(""/bin/bash"", ""-c export""); Console.Write(""Press to exit... ""); while (Console.ReadKey(true).Key != ConsoleKey.Enter) {} } } ``` Only FOOBAR_DEFAULT and FOOBAR_CURRENT will be set on Linux while the app executes and running `/bin/bash -c export` _after_ this sample terminated shows that both variables are gone and don't exist anymore. What's the plan here to fix this? To my knowledge, Mono simply implements reading/writing environment variables on Unix/Linux using the same namespace(s) as in .NET, Mono.Unix.Native/Mono.Posix have nothing added to specifically read and write environment variables. Hence, my expectation would be to have this very basic stuff handled with an identical abstraction in CoreFX that is not platform dependent? For Linux, there is of course no scope such as ""Machine"" and ""User"" would bind to the underlying shell process (and any child process starting after the fact through inheritance). **The current scope of implementation in 2.0 preview should be fixed to make the ""User"" scope work on Mac/Linux, where it binds to the scope of the underlying shell.** As a **workaround** to properly set environment variables on Linux/Mac, one could simply query `RuntimeInformation.IsOSPlatform(OSPlatform.Linux)` and use System.IO to check for the presence of any familiar shell (sh, ksh, and bash, maybe also from other shell families such as csh) in the file system and then write simple wrappers calling to their built-in functions to set environment variables correctly such as ```csharp // omitting check for presence of bash binary if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) System.Diagnostics.Process.Start(""/bin/bash"", ""-c export "" + variable + ""="" + value); ``` Whatever the API implementation in CoreFX is going to be (for Mac/Linux), it should work and have the same outcome as making a call to the shell built-ins for managing environment variables. -- Thanks, Tobias W. " +20148 area-System.Xml Investigate XmlSchemaSet's behavior on Unix when temp path is passed as Uri When XmlSchemaSet is trying to load schemas that were imported/included in another schema, if it receives temp path in the Uri, it would not load the schemas on non-Windows platforms, as `/tmp/` is not considered AbsoluteUri. This causes incorrect behavior with XmlSchemaSet. For more details, please refer to the discussion in https://github.com/dotnet/corefx/issues/20046. Please also re-enable the tests marked as ActiveIssue when this is fixed. +20150 area-System.Diagnostics System.Diagnostics.Tests.ProcessTests.TestStartOnWindowsWithBadFileFormat fails on Desktop This test is marked as `[ConditionalFact]` which is currently not running in Desktop. I have the local fix already for that but I can't update it in Corefx until I disable the failing tests to have a green CI, so I will go ahead and disable it. It fails with error: ``` System.Diagnostics.Tests.ProcessTests.TestStartOnWindowsWithBadFileFormat [FAIL] Assert.Throws() Failure Expected: typeof(System.ComponentModel.Win32Exception) Actual: (No exception was thrown) Stack Trace: D:\repos\corefxCopy\corefx\src\System.Diagnostics.Process\tests\ProcessTests.cs(1028,0): at System.Diagnostics.Tests.ProcessTests.TestStartOnWindowsWithBadFileFormat() ``` cc: @Priya91 @stephentoub +20151 area-Infrastructure Run several ApiCompat checks on the SharedFramewor cc: @weshaggard @ericstj @danmosemsft This adds most of the ApiCompat checks on issue #18083 except for the ones against the installer/zip that we publish, which I will add in a subsequent PR. @weshaggard please note that I am adding a baseline file for the apicompat run comparing our last shipped Microsoft.NETCore.App package runtime assets (v. 1.1.2) and the ones we are testing since we have broken compatibility there, so lets just make sure that all changes are expected. From what I look, most of them are because we now don't bring to the closure the roslyn libraries anymore, plus we have made some types from public->internal but they weren't exposed through contracts so I guess we should be fine. Last remaining pieces for this validation work to be done, is to add those installer/zip Apicompat checks, and adding official runs so that we have this working on some cadence. After that, we will just have to port all of these changes to rel/2.0.0 so that we can do validations in there as well. +20152 area-System.Security System.Security.Principal.Windows.WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType fails on Desktop This test is marked as `[ConditionalTheory]` and we haven't seen a failure because in netfx this test attribute is broken. I have the local fix so I was able to run it and it is failing with error: ``` System.ArgumentException : Value was invalid. Parameter name: sidType Stack Trace: at System.Security.Principal.SecurityIdentifier..ctor(WellKnownSidType sidType, SecurityIdentifier domainSid) D:\repos\corefxCopy\corefx\src\System.Security.Principal.Windows\tests\WellKnownSidTypeTests.cs(123,0): at WellKnownSidTypeTests.CanCreateSecurityIdentifierFromWellKnownSidType(WellKnownSidType sidType) ``` Will go ahead and disable it so that we can get the fix for this attributes in Corefx cc: @steveharter @bartonjs +20153 area-System.Net Port to 2.0: Test change - Increasing mutex time, ensuring the mutex is released. Fixes #19430. Port #20028 +20154 area-System.Runtime System.Runtime.Tests failed on Desktop Two tests that are marked as [ConditionalFact] are failing for Desktop: `System.Tests.IntPtrTests.GetHashCodeRespectAllBits` with error: ``` System.Tests.IntPtrTests.GetHashCodeRespectAllBits [FAIL] Assert.NotEqual() Failure Expected: Not -1 Actual: -1 Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime\tests\System\IntPtrTests.cs(149,0): at System.Tests.IntPtrTests.GetHashCodeRespectAllBits() ``` `System.Tests.UIntPtrTests.GetHashCodeRespectAllBits` with error: ``` System.Tests.UIntPtrTests.GetHashCodeRespectAllBits [FAIL] Assert.NotEqual() Failure Expected: Not 2147483647 Actual: 2147483647 Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime\tests\System\UIntPtrTests.cs(146,0): at System.Tests.UIntPtrTests.GetHashCodeRespectAllBits() ``` This tests are currently not running in corefx as [ConditionalFact/Theory] fix is not in corefx. In order to check it in I have to disable this tests first. cc: @joperezr @AlexGhiondea +20155 area-Meta Disable conditional tests Fixes: https://github.com/dotnet/corefx/issues/20150 Fixes: https://github.com/dotnet/corefx/issues/20154 Fixes: https://github.com/dotnet/corefx/issues/20152 Contributes to: https://github.com/dotnet/corefx/issues/18483 This is needed before updating buildtools to get the actual fix for ConditionalFact/Theory to have a green CI. cc: @danmosemsft @joperezr @AlexGhiondea +20156 area-System.Net [HttpListener] HttpListenerResponse.Close(byte[], bool) does not properly shutdown all the time "```cs [InlineData(true)] [InlineData(false)] // The managed implementation should set ContentLength to -1 after sending headers. [ConditionalTheory(nameof(Helpers) + ""."" + nameof(Helpers.IsWindowsImplementation))] // [ActiveIssue(19973, TestPlatforms.AnyUnix)] public async Task CloseResponseEntity_ChunkedNotSentHeaders_ModifiesContentLength(bool willBlock) { using (HttpListenerResponse response = await GetResponse()) { response.SendChunked = true; response.Close(new byte[] { (byte)'a' }, willBlock); Assert.Equal(-1, response.ContentLength64); // If we're non-blocking then it's not guaranteed that we received this when we read from the socket. try { string clientResponse = GetClientResponse(126); Assert.EndsWith(""\r\n1\r\na\r\n0\r\n\r\n"", clientResponse); } catch (SocketException) { // Most of the time, the Socket can read the content send after calling Close(byte[], bool), but // occassionally this test fails as the HttpListenerResponse closes before the Socket can receive all // content. If this happens, just ignore the failure and carry on. // The exception message is: ""An existing connection was forcibly closed by the remote host."" // Although part of this test is to ensure that the connection isn't forcibly closed when closing, // we want to avoid intermittent failures. } } } ``` From @stephentoub in #19880: > This is in both the Windows and managed implementation, or just the managed one? This sounds like a bug. It should be possible for the server to close the connection and still have the client receive all of the data sent before that, assuming the server is doing a proper shutdown of the connection. " +20157 area-System.Runtime Adds runtime feature detection support for default interface method This proposal introduces a new flag for the presence of default interface methods (see the references below). ```csharp public static class RuntimeFeature { /// /// Indicates that this version of runtime supports default interface method implementations. /// // Original name, adjusted by API review: InterfaceDefaultMethods public const string DefaultImplementationsOfInterfaces = nameof(DefaultImplementationsOfInterfaces); /// /// Checks whether a certain feature is supported by the Runtime. /// public static bool IsSupported(string feature) { if (feature == DefaultImplementationsOfInterfaces ) return true; return false; } } ``` `System.Runtime.CompilerServices.RuntimeFeature.IsSupported` returning true indicates that the runtime supports interface default method feature. It only indicates the presence of the feature and does *NOT* necessarily translate to any specific runtime behavior. This means that future runtime will keep returning true for this feature even in the case of breaking behavior changes (perhaps the only exception is when we decide to take the feature out, but that probably would never happen once we ship). Practically speaking, returning true means that the runtime supports the set of behaviors that is defined by first version of interface default method feature in the runtime (that we ship), plus/minus any future behavior changes that may or may not be breaking. If there are any requirements to support detection of any future behavior changes (that clients such as compilers care about), we can introduce a new flag that corresponds to the new behavior. Returning true would indicate the new behavior while returning false indicates otherwise. # References [C# Language Spec Link](https://github.com/dotnet/csharplang/blob/master/proposals/default-interface-methods.md) [Runtime Feature Support API proposal](https://github.com/dotnet/corefx/issues/17116) [CoreCLR issue] (https://github.com/dotnet/coreclr/issues/10504) Runtime Design Spec (TBD) +20158 area-Infrastructure Build.cmd should pick up and use the VS 2017 developer command prompt automatically I only have VS2017 installed on my PC, but when I run `build.cmd` from the normal command prompt (`cmd.exe`) I get > Error: Visual Studio 2015 or 2017 required. > Please see https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/developer-guide.md for build instructions. It'd be nice if `build.cmd` picked up that I have only one of these environments installed and used it. Before VS2017 I could use build.cmd from the non-developer command prompt +20159 area-System.Net [porting bug] HttpListenerResponse.SetCookie does not throw in netcoreapp if the Cookie already exists "```cs [Fact]//[ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] public async Task SetCookie_CookieDoesntExist_ThrowsArgumentException() { HttpListenerResponse response = await GetResponse(); var cookie1 = new Cookie(""name"", ""value""); response.SetCookie(cookie1); Assert.Throws(""cookie"", () => response.SetCookie(cookie1)); var cookie2 = new Cookie(""name"", ""value2""); Assert.Throws(""cookie"", () => response.SetCookie(cookie2)); Assert.Equal(new Cookie[] { cookie2 }, response.Cookies.Cast()); } ``` Netfx throws an ArgumentException. Netcoreapp does not throw. I have a fix for this and will send a PR when I've written more tests" +20160 area-System.Net [porting bug] HttpListenerResponse.SetCookies should clone the cookie "The following tests demonstrates this: ```cs [Fact] public async Task SetCookie_ValidCookie_ClonesCookie() { HttpListenerResponse response = await GetResponse(); var cookie = new Cookie(""name"", ""value""); response.SetCookie(cookie); // Cookies are cloned. cookie.Value = ""value3""; Assert.Equal(""value"", response.Cookies[0].Value); } ``` Netcoreapp fails - `response.Cookies[0].Value == ""value3""` Netfx passes - `response.Cookies[0].Value == ""value""` I have a fix for this which I'll submit with tests" +20161 area-System.Net [porting bug] HttpListenerResponse.AppendHeaders is broken "```cs [Fact]//[ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] public async Task AppendHeader_ValidValue_AddsHeaderToCollection() { HttpListenerResponse response = await GetResponse(); response.AppendHeader(""name"", ""value1""); Assert.Equal(""value1"", response.Headers[""name""]); response.AppendHeader(""name"", ""value2""); Assert.Equal(""value1,value2"", response.Headers[""name""]); } [Fact]//[ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] public async Task AppendHeader_NullOrWhitespaceName_ThrowsArgumentNullException() { HttpListenerResponse response = await GetResponse(); Assert.Throws(""name"", () => response.AppendHeader(null, """")); } [Fact]//[ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] public async Task AppendHeader_InvalidNameOrValue_ThrowsArgumentException() { HttpListenerResponse response = await GetResponse(); Assert.Throws(""name"", () => response.AppendHeader("""", """")); Assert.Throws(""name"", () => response.AppendHeader(""\r \t \n"", """")); Assert.Throws(""name"", () => response.AppendHeader(""("", """")); Assert.Throws(""value"", () => response.AppendHeader(""name"", ""value1\rvalue2\r"")); } ``` All these tests pass with netfx. None pass with netcoreapp: ``` System.Net.Tests.HttpListenerResponseHeadersTests.AppendHeader_NullOrWhitespaceName_ThrowsArgumentNullException [F AIL] Assert.Equal() Failure  (pos 0) Expected: name Actual: header  (pos 0) Stack Trace: at System.Net.Tests.HttpListenerResponseHeadersTests.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() System.Net.Tests.HttpListenerResponseHeadersTests.AppendHeader_ValidValue_AddsHeaderToCollection [FAIL] System.ArgumentException : Specified value does not have a ':' separator. Parameter name: header Stack Trace: at System.Net.WebHeaderCollection.Add(String header) at System.Net.HttpListenerResponse.AppendHeader(String name, String value) at System.Net.Tests.HttpListenerResponseHeadersTests.d__3 .MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() System.Net.Tests.HttpListenerResponseHeadersTests.AppendHeader_InvalidNameOrValue_ThrowsArgumentException [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.ArgumentNullException): Value cannot be null. Parameter name: header Stack Trace: at System.Net.WebHeaderCollection.Add(String header) at System.Net.HttpListenerResponse.AppendHeader(String name, String value) at System.Net.Tests.HttpListenerResponseHeadersTests.<>c__DisplayClass5_0.b__0() ``` I have a fix and will submit it with tests" +20162 area-System.Net [porting bug] HttpListenerResponse crashes with NRE sending any cookies "The following snippet runs to completion with netfx but crashes with NRE with netcoreapp: ```cs public static IEnumerable Cookies_TestData() { yield return new object[] { new CookieCollection() { new Cookie(""name"", ""value"") } }; } [ConditionalTheory(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] [MemberData(nameof(Cookies_TestData))] public async Task Cookies_SetAndSend_ClientReceivesExpectedHeaders(CookieCollection cookies) { HttpListenerResponse response = await GetResponse(); response.Cookies = cookies; response.Close(); } ``` Here's the stack trace: ``` System.Net.Tests.HttpListenerResponseCookiesTests.Cookies_SetAndSend_ClientReceivesExpectedHeaders(cookies: [$Vers ion=1; name2=value2; $Port=\""300\""]) [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Net.CookieExtensions.ToServerString(Cookie cookie) at System.Net.HttpListenerResponse.ComputeCookies() at System.Net.HttpListenerResponse.ComputeCoreHeaders() at System.Net.HttpListenerResponse.ComputeHeaders() at System.Net.HttpResponseStream.ComputeLeftToWrite() at System.Net.HttpResponseStream.DisposeCore() at System.Net.HttpResponseStream.Dispose(Boolean disposing) at System.IO.Stream.Close() at System.Net.HttpListenerResponse.Dispose() at System.Net.HttpListenerResponse.System.IDisposable.Dispose() at System.Net.HttpListenerResponse.Close() at System.Net.Tests.HttpListenerResponseCookiesTests.d_ _2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() ``` I have a fix which I'll submit with tests" +20163 area-System.Net Various tests now failing on Windows with Unexpected async error in WinHttpRequestCallback: 12007, WinHttp API: 5 "example (affects various libraries) https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170523.02/workItem/System.Xml.XmlSchemaSet.Tests/wilogs ```c# Debug.Assert((unchecked((uint)asyncResult.dwResult.ToInt32()) != Interop.WinHttp.API_SEND_REQUEST && ((unchecked((uint)asyncResult.dwResult.ToInt32()) != Interop.WinHttp.API_RECEIVE_RESPONSE) || (asyncResult.dwError == Interop.WinHttp.ERROR_WINHTTP_RESEND_REQUEST) || (asyncResult.dwError == Interop.WinHttp.ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED) || (asyncResult.dwError == Interop.WinHttp.ERROR_WINHTTP_OPERATION_CANCELLED))), $""Unexpected async error in WinHttpRequestCallback: {unchecked((int)asyncResult.dwError)}, WinHttp API: {unchecked((uint)asyncResult.dwResult.ToInt32())}"" ); ``` 12007 = ERROR_WINHTTP_NAME_NOT_RESOLVED 5 = API_SEND_REQUEST ``` 2017-05-23 03:31:19,641: INFO: proc(54): run_and_log_output: Output: Discovered: System.Xml.XmlSchemaSet.Tests 2017-05-23 03:31:19,766: INFO: proc(54): run_and_log_output: Output: Starting: System.Xml.XmlSchemaSet.Tests 2017-05-23 03:31:21,963: INFO: proc(54): run_and_log_output: Output: FailFast: Unexpected async error in WinHttpRequestCallback: 12007, WinHttp API: 5 2017-05-23 03:31:21,963: INFO: proc(54): run_and_log_output: Output: 2017-05-23 03:31:21,963: INFO: proc(54): run_and_log_output: Output: at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 2017-05-23 03:31:21,963: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.WinHttpRequestCallback.OnRequestError(WinHttpRequestState state, WINHTTP_ASYNC_RESULT asyncResult) 2017-05-23 03:31:21,963: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.WinHttpRequestCallback.RequestCallback(IntPtr handle, WinHttpRequestState state, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) 2017-05-23 03:31:21,963: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) 2017-05-23 03:31:21,963: INFO: proc(54): run_and_log_output: Output: 2017-05-23 03:31:21,963: INFO: proc(54): run_and_log_output: Output: at System.Environment.FailFast(System.String, System.Exception) 2017-05-23 03:31:21,963: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.WinHttpRequestCallback.OnRequestError(System.Net.Http.WinHttpRequestState, WINHTTP_ASYNC_RESULT) 2017-05-23 03:31:21,963: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.WinHttpRequestCallback.RequestCallback(IntPtr, System.Net.Http.WinHttpRequestState, UInt32, IntPtr, UInt32) 2017-05-23 03:31:21,963: INFO: proc(54): run_and_log_output: Output: at System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr, IntPtr, UInt32, IntPtr, UInt32) 2017-05-23 03:31:22,040: INFO: proc(54): run_and_log_output: Output: Finished running tests. End time= 3:31:22.04, Exit code = -2146232797 ``` @stephentoub this appears to be your recently added assert. Not sure whether assert is the problem though" +20164 area-System.Net "[porting bug] WebHeaderCollection.Add(null, ""value"") throws NRE in netcoreapp, ArgumentNullException in netfx`" "```cs [Fact] public void Add_NullName_ThrowsArgumentNullException() { var headers = new WebHeaderCollection(); Assert.Throws(""name"", () => headers.Add(null, ""value"")); } ``` This causes some HttpListener tests to fail after I've fixed #20161 I have a fix and will submit a PR" +20165 area-System.Net [HttpListener] [Managed] Enable HttpListenerResponse cookie tests Following tests are disabled with this issue: - Cookies_SetCookie2InHeadersButNotInCookies_RemovesFromHeaders - Cookies_SetAndSend_ClientReceivesExpectedHeaders - Cookies_SetInHeader_ClientReceivesExpectedHeaders +20166 area-System.Net Delete a wrong assert in WinHTTPRequestCallback fix #20163 +20167 area-System.Net Add HttpListenerResponse cookie and header tests Contributes to #13618 Fixes #20162 Fixes #20161 Fixes #20160 Fixes #20159 +20169 area-System.Net Fix argument validation for WebHeaderCollection.Add Fixes #20164 Tests pass with netfx and netcoreapp +20170 area-Infrastructure "dumpling ""unable to find tooling""" "Some bad spelling (I should know) but also it's an error message. @mellinoe ? https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_debug_prtest/93/consoleText ``` processing dump file C:\Users\DOTNET~1\AppData\Local\Temp\CoreRunCrashDumps\dotnet.exe.7904.dmp uncompressed file size: 81880 Kb compressed file size: 27474 Kb creating dumpling dump 85fde065929e25e73ed7e1a9b257aa3f7e1c6748 url: https://dumpling.azurewebsites.net/api/dumplings/create?displayname=System.Net.WebClient.Tests&hash=85fde065929e25e73ed7e1a9b257aa3f7e1c6748&user=dotnet-bot response: uploading artifact 85fde065929e25e73ed7e1a9b257aa3f7e1c6748 dotnet.exe.7904.dmp url: https://dumpling.azurewebsites.net/api/dumplings/uploads?hash=85fde065929e25e73ed7e1a9b257aa3f7e1c6748&localpath=C%3A%5CUsers%5CDOTNET%7E1%5CAppData%5CLocal%5CTemp%5CCoreRunCrashDumps%5Cdotnet.exe.7904.dmp response: url: https://dumpling.azurewebsites.net/api/dumplings/85fde065929e25e73ed7e1a9b257aa3f7e1c6748/properties data: { ""CLIENT_ARCHITECTURE"": ""AMD64"", ""CLIENT_NAME"": ""win2012-fae2b0"", ""CLIENT_OS"": ""Windows"", ""CLIENT_PROCESSOR"": ""Intel64 Family 6 Model 63 Stepping 2, GenuineIntel"", ""CLIENT_RELEASE"": ""2012ServerR2"", ""CLIENT_VERSION"": ""6.3.9600"", ""STRESS_TESTID"": ""System.Net.WebClient.Tests"" } response: unable to find necissary debugger and triage tooling, please ensure these componenets are intalled dumplingid: 85fde065929e25e73ed7e1a9b257aa3f7e1c6748 https://dumpling.azurewebsites.net/api/dumplings/archived/85fde065929e25e73ed7e1a9b257aa3f7e1c6748 ```" +20171 area-System.Runtime Is it possible for Random class to has arbitrary size seed constructor? I have a system that use number larger than int as a random seed in another language. When I port my code to C# the old data cannot pass it's seed to random class without hashing that number So I wish we could have more option for generate a seed to random class. Maybe arbitrary byte array would be great. Is it possible? +20172 area-Infrastructure CI jobs are succeeding despite FailFasts Eg https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug_prtest/8272/ failed in 5 libraries but it shows as success. this means the PR succeds and the failure hits outer loop runs. It seems that the return code is 0 .. and no doubt CI relies on it not being 0. ``` total elapsed time 0:00:26.004000 Trying to find crash dumps for project: System.Xml.RW.XmlReader.Tests Uploading dump file: C:\Users\DOTNET~1\AppData\Local\Temp\CoreRunCrashDumps\dotnet.exe.5644.dmp Finished running tests. End time=13:30:49.34, Exit code = 0 ``` Repro: Just do `Debug.Assert(false)` and run it through CI. +20173 area-System.Threading SleepTest failed on ubuntu 17.04 https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170523.01/workItem/System.Threading.Thread.Tests/analysis/xunit/System.Threading.Threads.Tests.ThreadTests~2FSleepTest ``` c# [Fact] public static void SleepTest() { ... var startTime = DateTime.Now; Thread.Sleep(500); Assert.True((DateTime.Now - startTime).TotalMilliseconds >= 100); <<<<<<<<<<< } ``` ``` Assert.True() Failure\nExpected: True\nActual: False Stack Trace : at System.Threading.Threads.Tests.ThreadTests.SleepTest() in /root/corefx/src/System.Threading.Thread/tests/ThreadTests.cs:line 773 ``` @stephentoub this should be using a stopwatch. But given the daylight savings did not change, can you think of why this might fail? I thought that sleeping X msec was guaranteed to cause you to sleep no less than X msec. +20176 area-System.Net "[HttpListener] Test failure: System.Net.Tests.HttpListenerRequestTests/ContentEncoding_GetProperty_ReturnsExpected failed with ""System.Net.HttpListenerException""" "Opened on behalf of @Jiayili1 The test `System.Net.Tests.HttpListenerRequestTests/ContentEncoding_GetProperty_ReturnsExpected(header: \""Content-Type:application.json;charset;\"", expected: UTF8EncodingSealed { BodyName = \""utf-8\"", C...` has failed. System.Net.HttpListenerException : Too many open files in system Stack Trace: at System.Net.HttpEndPointManager.GetEPListener(String host, Int32 port, HttpListener listener, Boolean secure, Boolean& alreadyExists) at System.Net.HttpEndPointManager.RemovePrefixInternal(String prefix, HttpListener listener) at System.Net.HttpEndPointManager.RemoveListener(HttpListener listener) at System.Net.HttpListener.Close(Boolean force) at System.Net.HttpListener.Dispose() at System.Net.HttpListener.Close() at System.Net.Tests.HttpListenerRequestTests.d__31.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.HttpListenerRequestTests.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : 2.0.0 - 20170523.01 (Portable Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170523.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpListenerRequestTests~2FContentEncoding_GetProperty_ReturnsExpected(header:%20%5C%22Content-Type:application.json;charset;%5C%22,%20expected:%20UTF8EncodingSealed%20%7B%20BodyName%20=%20%5C%22utf-8%5C%22,%20C..." +20177 area-System.Net Libcurl segfault when using httpclient We are getting an issue running our netcore 1.1 app on centos 7 where we get a libcurl segfault. The generated core dump gave the following stack trace: ``` (gdb) bt #0 0x00007f4b4e5bc28d in addbyter () from /lib64/libcurl.so.4 #1 0x00007f4b4e5bc649 in dprintf_formatf () from /lib64/libcurl.so.4 #2 0x00007f4b4e5bd8a5 in curl_mvsnprintf () from /lib64/libcurl.so.4 #3 0x00007f4b4e5ac94e in Curl_failf () from /lib64/libcurl.so.4 #4 0x00007f4b4e5a2f17 in Curl_resolv_timeout () from /lib64/libcurl.so.4 #5 0x00007f4b527b3bd0 in ?? () #6 0x00007f4b527b3a70 in ?? () #7 0x00007f4b50041e28 in ?? () ``` Reading up on this error https://curl.haxx.se/mail/lib-2013-05/0079.html or https://curl.haxx.se/mail/lib-2014-01/0098.html it seems that it has something to do with curl and multi threading and can be solved by setting CURLOPT_NOSIGNAL to 1 however the netcore code seems to be doing that here https://github.com/dotnet/corefx/blob/release/1.1.0/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.EasyRequest.cs#L261 so I am confused at how my netcore app could be running into this issue. +20178 area-System.Console Console.ReadLine() throws on CentOS my testConsole publish on the centos server, the console last line code is Console.ReadLine(); nohup dotnet xxx.dll & the console throw excetption: System.UnauthorizedAccessException: Access to the path is denied. - please help me ! I need help. how can do it +20179 area-System.Data System.Data: ManagedSNI still requires sni.dll "If I set `TdsParserStateObjectFactory.UseManagedSNI = true` (on Windows it's currently [false by default](https://github.com/dotnet/corefx/pull/19084) and always `true` for unix) I assume SqlClient with ManagedSNI will use `TdsParserStateObjectManaged` instead of `TdsParserStateObjectNative` so I will not have to care about the **sni.dll**, but even with ManagedSNI it calls `[DllImport(""sni.dll"")] SNIInitialize(IntPtr)`. If I remove this call - my simple SqlClient tests (open a connection, execute some query, etc..) will pass without the **sni.dll**. So the question is - what **sni.dll** is used for on Windows+ManagedSNI and can we just wrap it like this. ```csharp internal static uint SNIInitialize() { return SNIInitialize(IntPtr.Zero); } ``` TO: ```csharp internal static uint SNIInitialize() { try { return SNIInitialize(IntPtr.Zero); } catch (DllNotFoundException) { return TdsEnums.SNI_UNINITIALIZED; } } ```" +20180 area-System.Net [documentation] WebHeaderCollection.Add(new string('a', 65536)) does not throw as documented "From https://msdn.microsoft.com/en-us/library/y280s7kx(v=vs.110).aspx > ArgumentOutOfRangeException | The length of value is greater than 65535. From #20169: ```cs public static IEnumerable Add_Value_TestData() { string longString = new string('a', 65536); yield return new object[] { longString, longString } } [Theory] [MemberData(nameof(Add_Value_TestData))] public void Add_ValidValue_Success(string value, string expectedValue) { var headers = new WebHeaderCollection { { ""name"", value } }; Assert.Equal(expectedValue, headers[""name""]); } ```" +20183 area-System.Net Fix some HttpListener tests for netfx Contributes to #19967 The remaining HttpListener test failure is in the encoding of QueryString. It looks like the query string `?name1=+&name2=\u1234&\u0100=value&name3=\u00FF` is encoded differently in netfx and netcoreapp. I couldn't quite figure this out so I left it out of this PR. It looks like the listener is actually receiving different content from the connected socket as the value of `_cookedUrlQuery/m_CookedUrlQuery` in HttpListenerRequest is different between netfx and netcoreapp. +20184 area-System.Net Fix ContentLength64, SendChunk, and KeepAlive in managed HttpListener Fixes https://github.com/dotnet/corefx/issues/19973 Fixes https://github.com/dotnet/corefx/issues/19978 For the most part, this just moves functionality from the Windows implementation to be shared, deleting the managed counterpart. In some cases, in particular around the handling of content length, this resulted in more changes through the HttpListenerResponse managed implementation, as various places check for content length vs chunked behaviors. The Windows implementation has not changed (other than some of its functions moving to be in the shared file). As part of this, I fixed a few other differences I noted even though they weren't causing tests to fail, e.g. doing an asynchronous write in Close when willBlock is false. cc: @janvorli, @hughbe, @Priya91, @geoffkizer +20185 area-Microsoft.CSharp Fix newly added Microsoft.CSharp tests on ILC +20186 area-System.Threading change Sleep test to use InRange to see value relates to https://github.com/dotnet/corefx/issues/20173 +20187 area-Infrastructure Add win-arm and win-arm64 to RID graph. "We don't have `win-arm` and `win-arm64` ""portable"" RIDs in our graph. Thus, when trying to use RIDs like `win10-arm` in a self-contained app, no assets are getting selected. Fix https://github.com/dotnet/sdk/issues/1239. @gkhanna79 @ericstj " +20188 area-System.Net release/2.0: Add more tracing to HttpClient on Unix Port https://github.com/dotnet/corefx/pull/20095 to release/2.0.0 +20189 area-System.Net Remove asynchrony from many HttpListener tests Contributes to #20103 @stephentoub PTAL (best reviewed without whitespace for the first commit) +20190 area-Infrastructure Add win-arm and win-arm64 to RID graph. "Porting https://github.com/dotnet/corefx/pull/20187 to `release/2.0.0`. We don't have win-arm and win-arm64 ""portable"" RIDs in our graph. Thus, when trying to use RIDs like win10-arm in a self-contained app, no assets are getting selected. Fix dotnet/sdk#1239. @gkhanna79 @ericstj" +20191 area-System.Net ClientWebSocket client certificate not working with .NET Core "Using the ClientWebSocket to establish a secure WebSocket connection with client certificates. The project is targeting `netcoreapp1.1`. With the following code, the `ConnectAsync` throws an exception: `WinHttpException: A certificate is required to complete client authentication`. When changing the TFM to `net461` the connection is successfully established. I removed the template id of the certificate for security reasons. ```csharp ClientWebSocket client = new ClientWebSocket(); X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly); var cert = store.Certificates.Find(X509FindType.FindByTemplateName, """", true); client.Options.ClientCertificates = new X509CertificateCollection(); client.Options.ClientCertificates.Add(cert[0]); client.ConnectAsync(new Uri(""wss://localhost:44301/path""), CancellationToken.None).Wait(); ``` " +20192 area-Infrastructure Remove win10 jobs that depend on deprecated functionality The Win10 images are no longer working (they were a pre-release version of Win Server 2016). The Win10 functionality is now available in the new Portable builds. Remove these old jobs for now (they get queued and never run) See #20107 +20193 area-System.Net Disable some System.Net.* tests for ILC Disables tests for: 1. API Not Implemented for Uap by design 2. Tests that do white box testing and reflect on internal type cc: @tijoytom +20195 area-Infrastructure Testing CI system for crashing a test actually failing CI Testing for https://github.com/dotnet/corefx/issues/20172 +20197 area-Meta IsInAppContainer & IsNetNative reliability increased Fixes https://github.com/dotnet/corefx/issues/19931 +20199 area-System.Net Test System.Net.Http.Functional.Tests.DiagnosticsTest.SendAsync_HttpTracingEnabled_Succeeds failing The outerrun test System.Net.Http.Functional.Tests.DiagnosticsTest.SendAsync_HttpTracingEnabled_Succeeds is failing with ``` MESSAGE: Assert.Equal() Failure\nExpected: 42\nActual: 134 +++++++++++++++++++ STACK TRACE: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_debian8.4_release/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs:line 208 ``` It looks like a recent regression. It is likely failing on all Linux distros but currently just these are failing (probably because they ran recently): - Debian 8 Release - openSUSE 42.1 Release - Red Hat 7.2 Debug - Ubuntu 16.10 Debug - PortableLinux Debug +20200 area-System.Net Disable more System.Net.HttpListener tests and fix some net47 specific Crypto tests Contributes to: #18483 Tests marked as [ConditionalTheory/Fact] cc: @danmosemsft @bartonjs @stephentoub +20201 area-System.Net HttpListener on Unix doesn't track amount of data written to output stream The Windows implementation tracks how much data has been written to the output stream, and throws when trying to write more data than ContentLength64 specified. The managed implementation doesn't do such tracking. This means that it's possible for misuse that on Windows would result in an InvalidOperationException to go without an exception on Unix, the net result being more data written than should have been, but still doing what the code asked it to do. +20202 area-System.Net ETW collection helper scripts. Adding these scripts as a quick way to collect all System.Net ETW traces. +20203 area-Serialization Set DefaultNameSpace be empty string When the serializer was loaded from pregenerated assembly, the DefaultNameSpace of the mapping is null. It should be the empty string. Fix #19729 @shmao @zhenlan @mconnew +20204 area-System.Diagnostics Quasi-support ShellExec for UWP We didn't ask for ShellExecuteEx to be added to the WACK so for UWP we should make some attempt to use Windows.System.Launcher and if it fails fall back to Process.Start. That ought to give us at least URL support. @JeremyKuhne +20208 area-System.Net System.Net.NameResolution for UWP 1. Unifying Windows implementations (remove dependency on WinRT API) 2. No failing test on this namespace (including outerloop tests) Contribute to #20139 +20209 area-System.Net Adding UAP target to System.Net.Primtives tests Using the new ActiveIssue UAP option to disable the test. Re: #20007 +20210 area-Meta Port 2.0: Prep tests for CoreCLR/CoreRT [Serializable] cleanup (#20035) 2.0 port of #20035 Fixes tests that depend on types in System.Private.CoreLib being serializable that won't be serializable soon. Fixes https://github.com/dotnet/corefx/issues/20041. +20211 area-Infrastructure "Add a ""GenerateReferenceSource"" target and add four ref assembly projects." The GenerateReferenceAssembly target can be run as a manual step on a project. When run, it produces a source code file .cs, in the reference assembly folder for the library. This source file can be used to compile an equivalent reference assembly. Use the target to generate reference assemblies for the following libraries: * System.Collections.Immutable * System.Reflection.Metadata * System.Threading.Tasks.Dataflow * System.Threading.Tasks.Extensions This will cut a chunk out of the total size of the reference assemblies we are shipping. This is part of https://github.com/dotnet/corefx/issues/14291. @ericstj @weshaggard +20212 area-System.Net UWP Cleanup: Remove common unreferenced UAP PAL files Tracking common UAP PAL files that need to be removed when they are not referenced by any contract: - [X] HostInformationPal.Uap.cs - [x] ContextAwareResult.Uap.cs - [x] CompletionPortHelper.Uap.cs +20214 area-System.Security System.Security.Cryptography.Cng.ImportExport tests fail in Desktop This tests are conditioned through `ConditionalFact` where they will run if the current running framework is 4.6.2 or newer as this was supposed to be fixed in that version of the framework: https://github.com/dotnet/corefx/issues/19041#issuecomment-297855354 They are failing with: ``` System.Security.Cryptography.Rsa.Tests.ImportExport.LargeKeyImportExport [FAIL] System.Security.Cryptography.CryptographicException : The requested operation is not supported. Stack Trace: at System.Security.Cryptography.NCryptNative.ExportKey(SafeNCryptKeyHandle key, String format) at System.Security.Cryptography.CngKey.Export(CngKeyBlobFormat format) at System.Security.Cryptography.RSACng.ExportParameters(Boolean includePrivateParameters) D:\repos\corefxCopy\corefx\src\Common\tests\System\Security\Cryptography\AlgorithmImplementations\RSA\ImportExport.cs(95,0): at System.Security.Cryptography.Rsa.Tests.ImportExport.LargeKeyImportExport() ``` cc: @bartonjs @ianhays @steveharter +20216 area-System.Diagnostics Add ShellEx support for Windows & fix issues Adds ShellExecute support for Windows (outside of UAP). Unlike desktop UseShellExecute is not the default. In the process of doing this I ran across two issues (covered by the new tests): 1- The owned process handle would be disposed after hitting members on Process. Getting the ProcessName, for example, would cause a closed handle exception on the next call that used the handle. 2- The MainWindowTitle import wasn't set to the right charset. In addition the allocated buffer size wasn't correct. Fixed and added debug checks for failed api calls. See issue #18949 +20217 area-System.Globalization Debian9 baseline incorrect for glob test https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170524.01/workItem/System.Globalization.Tests/analysis/xunit/System.Globalization.Tests.NumberFormatInfoNumberGroupSizes~2FNumberGroupSizes_Get(format:%20NumberFormatInfo%20%7B%20CurrencyDecimalDigits%20=%202,%20CurrencyDecimalSeparator%20=%20%5C%22.%5C%22,%20CurrencyGroupSeparator%20... ``` Assert.Equal() Failure\nExpected: Int32[] [3, 2]\nActual: Int32[] [3] Stack Trace : at System.Globalization.Tests.NumberFormatInfoNumberGroupSizes.NumberGroupSizes_Get(NumberFormatInfo format, Int32[] expected) in /root/corefx/src/System.Globalization/tests/NumberFormatInfo/NumberFormatInfoNumberGroupSizes.cs:li ``` +20218 area-System.Globalization Fix debian9 failure by updating baseline Fix https://github.com/dotnet/corefx/issues/20217 +20219 area-System.Net SendAsync_HttpTracingEnabled_Succeeds failing consistently on Unix On many distros. eg https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_opensuse42.1_debug/lastCompletedBuild/testReport/System.Net.Http.Functional.Tests/DiagnosticsTest/SendAsync_HttpTracingEnabled_Succeeds/ ``` MESSAGE: Assert.Equal() Failure\nExpected: 42\nActual: 134 +++++++++++++++++++ STACK TRACE: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs:line 219 at System.Net.Http.Functional.Tests.DiagnosticsTest.SendAsync_HttpTracingEnabled_Succeeds() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/tests/FunctionalTests/DiagnosticsTests.cs:line 174 ``` @karelz +20221 area-System.Net Fix HttpListener product typo causing test failures with netfx Fixes #20098 Contributes to #19967 +20223 area-System.Net Tests failed: System.Net.Sockets.Tests.DnsEndPointTest / * ## Type of failures Affected tests: * Socket_StaticConnectAsync_HostNotFound * Socket_StaticConnectAsync_Success * Socket_StaticConnectAsync_ConnectionRefused * Socket_ConnectAsyncDnsEndPoint_HostNotFound * Socket_ConnectAsyncDnsEndPoint_Success (CI only) * Socket_ConnectAsyncDnsEndPoint_SetSocketProperties_Success (CI only) ### Timeout ``` Timed out while waiting for connection Expected: True Actual: False at System.Net.Sockets.Tests.DnsEndPointTest.Socket_StaticConnectAsync_Success(SocketImplementationType type) OR at System.Net.Sockets.Tests.DnsEndPointTest.Socket_StaticConnectAsync_ConnectionRefused() OR at System.Net.Sockets.Tests.DnsEndPointTest.Socket_StaticConnectAsync_HostNotFound() in /root/corefx-1213655/src/System.Net.Sockets/tests/FunctionalTests/DnsEndPointTest.cs:line 373 ``` ### Assert failure Test `Socket_StaticConnectAsync_Success`: ``` Assert.True() Failure Expected: True Actual: False at System.Net.Sockets.Tests.DnsEndPointTest.Socket_StaticConnectAsync_Success(SocketImplementationType type) in /root/corefx-1134004/src/System.Net.Sockets/tests/FunctionalTests/DnsEndPointTest.cs:line 312 ``` ## History of failures Day | Build | OS | Failure | Test -- | -- | -- | -- | -- 5/31-7/25 | N/A | Linux only | Timeout |
  • 51x Socket_StaticConnectAsync_HostNotFound
  • 4x Socket_ConnectAsyncDnsEndPoint_HostNotFound,
  • 1x Socket_StaticConnectAsync_Success
8/23 | 20170823.05 | Win10 | Timeout | Socket_StaticConnectAsync_Success 8/24 | 20170824.03 | Win8.1 | Timeout | Socket_StaticConnectAsync_ConnectionRefused 9/10 | 20170910.02 | Win10 | Timeout | Socket_StaticConnectAsync_Success 9/14 | 20170914.01 | Win7 | Timeout | Socket_StaticConnectAsync_Success 11/13 | 20171113.01 | Centos73 | Assert failure | Socket_StaticConnectAsync_Success 12/3 | 20171203.01 | RedHat73 | Assert failure | Socket_StaticConnectAsync_Success 12/11 | 20171211.05 | Fedora25 | Timeout | Socket_StaticConnectAsync_HostNotFound 12/23 | 20171223.02 | OSX10.12 | Timeout | Socket_StaticConnectAsync_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171223.02/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DnsEndPointTest~2FSocket_StaticConnectAsync_Success(type:%20APM)) 1/5 | 20180105.01 | Win7 | Timeout | Socket_ConnectAsyncDnsEndPoint_HostNotFound - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180105.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DnsEndPointTest~2FSocket_ConnectAsyncDnsEndPoint_HostNotFound) 1/5 | 20180105.01 | Win7 | Timeout | Socket_StaticConnectAsync_HostNotFound - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180105.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DnsEndPointTest~2FSocket_StaticConnectAsync_HostNotFound) 1/9 | 20180109.01 | Win7 | Timeout | Socket_StaticConnectAsync_ConnectionRefused - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180109.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DnsEndPointTest~2FSocket_StaticConnectAsync_ConnectionRefused) 3/5 | 20180305.02 | Fedora26 | Assert failure | Socket_StaticConnectAsync_Success 3/6 | 20180306.01 | Win7 | Timeout | Socket_StaticConnectAsync_Success 3/6 | 20180306.01 | Win7 | Timeout | Socket_StaticConnectAsync_Success 3/8 | 20180308.06 | Fedora26 | Timeout | Socket_StaticConnectAsync_HostNotFound 3/21 | 20180321.05 | Win7 | Timeout | Socket_StaticConnectAsync_Success # Original report Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.DnsEndPointTest/Socket_StaticConnectAsync_HostNotFound` has failed. ``` Timed out while waiting for connection Expected: True Actual: False at System.Net.Sockets.Tests.DnsEndPointTest.Socket_StaticConnectAsync_HostNotFound() in /root/corefx/src/System.Net.Sockets/tests/FunctionalTests/DnsEndPointTest.cs:line 373 ``` Build : Master - 20170524.01 (Portable Core Tests) Failing configurations: - suse.422.amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170524.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DnsEndPointTest~2FSocket_StaticConnectAsync_HostNotFound +20225 area-Infrastructure Tooling: msbuild /t:UpdateVSConfigurations fails with empty sequence exception "To update the solutions in the CoreFX repo after a configuration change in a props file, e.g. a platform was added for a given csproj, the command `msbuild /t:UpdateVSConfigurations` can be used (see: https://github.com/dotnet/corefx/pull/19885#issuecomment-303162997). However when I do that (as I needed to), I get the following exception: ``` C:\Myprojects\corefx>msbuild /t:UpdateVSConfigurations Microsoft (R) Build Engine version 15.1.1012.6693 Copyright (C) Microsoft Corporation. All rights reserved. Build started 23-5-2017 11:32:23. Project ""C:\Myprojects\corefx\build.proj"" on node 1 (UpdateVSConfigurations target(s)). UpdateVSConfigurations: Updating configurations for projects ... C:\Myprojects\corefx\build.proj(66,5): error MSB4018: The ""UpdateVSConfigurations"" task failed unexpectedly.\r C:\Myprojects\corefx\build.proj(66,5): error MSB4018: System.InvalidOperationException: Sequence contains no elements\r C:\Myprojects\corefx\build.proj(66,5): error MSB4018: at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)\r C:\Myprojects\corefx\build.proj(66,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.UpdateVSConfigurations.EnsureProjectGuid(ProjectRootElement project)\r C:\Myprojects\corefx\build.proj(66,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.UpdateVSConfigurations.Execute()\r C:\Myprojects\corefx\build.proj(66,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()\r C:\Myprojects\corefx\build.proj(66,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() Done Building Project ""C:\Myprojects\corefx\build.proj"" (UpdateVSConfigurations target(s)) -- FAILED. Build FAILED. ""C:\Myprojects\corefx\build.proj"" (UpdateVSConfigurations target) (1) ->(UpdateVSConfigurations target) -> C:\Myprojects\corefx\build.proj(66,5): error MSB4018: The ""UpdateVSConfigurations"" task failed unexpectedly.\r C:\Myprojects\corefx\build.proj(66,5): error MSB4018: System.InvalidOperationException: Sequence contains no elements\r C:\Myprojects\corefx\build.proj(66,5): error MSB4018: at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)\r C:\Myprojects\corefx\build.proj(66,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.UpdateVSConfigurations.EnsureProjectGuid(ProjectRootElement project)\r C:\Myprojects\corefx\build.proj(66,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.UpdateVSConfigurations.Execute()\r C:\Myprojects\corefx\build.proj(66,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()\r C:\Myprojects\corefx\build.proj(66,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() 0 Warning(s) 1 Error(s) Time Elapsed 00:00:00.54 ``` This is on the latest CoreFX master as of yesterday. TIA" +20226 area-System.Net "Various System.Net.HttpListener tests fail with ""IOException : Too many open files"" on OSX" Failed test: System.Net.Tests.SimpleHttpTests.UnknownHeaders_Success(numHeaders: 100) Mac OSX failure: Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170524.01/workItem/System.Net.HttpListener.Tests/wilogs ~~~ 2017-05-23 17:43:44,222: INFO: proc(54): run_and_log_output: Output: System.Net.Tests.SimpleHttpTests.UnknownHeaders_Success(numHeaders: 100) [FAIL] 2017-05-23 17:43:44,224: INFO: proc(54): run_and_log_output: Output: System.Net.Http.HttpRequestException : An error occurred while sending the request. 2017-05-23 17:43:44,224: INFO: proc(54): run_and_log_output: Output: ---- System.IO.IOException : Too many open files 2017-05-23 17:43:44,229: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-23 17:43:44,381: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-23 17:43:44,381: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-23 17:43:44,386: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs(462,0): at System.Net.Http.HttpClient.d__58.MoveNext() 2017-05-23 17:43:44,387: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-23 17:43:44,387: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-23 17:43:44,387: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-23 17:43:44,387: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/System.Net.HttpListener/tests/SimpleHttpTests.cs(145,0): at System.Net.Tests.SimpleHttpTests.d__13.MoveNext() 2017-05-23 17:43:44,387: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-23 17:43:44,387: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-23 17:43:44,388: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-23 17:43:44,388: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-23 17:43:44,388: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-23 17:43:44,388: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-23 17:43:44,388: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-23 17:43:44,388: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-23 17:43:44,389: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-23 17:43:44,389: INFO: proc(54): run_and_log_output: Output: ----- Inner Stack Trace ----- 2017-05-23 17:43:44,389: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/Common/src/Interop/Unix/Interop.IOErrors.cs(23,0): at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) 2017-05-23 17:43:44,389: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/Common/src/Interop/Unix/Interop.IOErrors.cs(50,0): at Interop.CheckIo(Int64 result, String path, Boolean isDirectory, Func`2 errorRewriter) 2017-05-23 17:43:44,389: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs(151,0): at System.Net.Http.CurlHandler.MultiAgent.EnsureWorkerIsRunning() 2017-05-23 17:43:44,390: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs(105,0): at System.Net.Http.CurlHandler.MultiAgent.Queue(IncomingRequest request) 2017-05-23 17:43:44,390: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs(471,0): at System.Net.Http.CurlHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) ~~~ +20227 area-System.Net "IsWebSocketRequest_GetProperty_ReturnsExpected failed with ""System.Net.HttpListenerException : Address already in use""" "Failed test: System.Net.Tests.HttpListenerRequestTests.IsWebSocketRequest_GetProperty_ReturnsExpected Mac OSX failure Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170524.01/workItem/System.Net.HttpListener.Tests/wilogs ~~~ 2017-05-23 17:43:46,078: INFO: proc(54): run_and_log_output: Output: System.Net.Tests.HttpListenerRequestTests.IsWebSocketRequest_GetProperty_ReturnsExpected(webSocketString: \""Connection: \"", expected: False) [FAIL] 2017-05-23 17:43:46,078: INFO: proc(54): run_and_log_output: Output: System.Net.HttpListenerException : Address already in use 2017-05-23 17:43:46,078: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-23 17:43:46,079: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/System.Net.HttpListener/src/System/Net/Managed/HttpEndPointManager.cs(160,0): at System.Net.HttpEndPointManager.GetEPListener(String host, Int32 port, HttpListener listener, Boolean secure, Boolean& alreadyExists) 2017-05-23 17:43:46,079: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/System.Net.HttpListener/src/System/Net/Managed/HttpEndPointManager.cs(213,0): at System.Net.HttpEndPointManager.RemovePrefixInternal(String prefix, HttpListener listener) 2017-05-23 17:43:46,079: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/System.Net.HttpListener/src/System/Net/Managed/HttpEndPointManager.cs(187,0): at System.Net.HttpEndPointManager.RemoveListener(HttpListener listener) 2017-05-23 17:43:46,079: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/System.Net.HttpListener/src/System/Net/Managed/HttpListener.Managed.cs(161,0): at System.Net.HttpListener.Close(Boolean force) 2017-05-23 17:43:46,079: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/System.Net.HttpListener/src/System/Net/Managed/HttpListener.Managed.cs(147,0): at System.Net.HttpListener.Dispose() 2017-05-23 17:43:46,080: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/System.Net.HttpListener/src/System/Net/HttpListener.cs(305,0): at System.Net.HttpListener.Close() 2017-05-23 17:43:46,080: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/System.Net.HttpListener/tests/HttpListenerRequestTests.cs(613,0): at System.Net.Tests.HttpListenerRequestTests.d__31.MoveNext() 2017-05-23 17:43:46,080: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-23 17:43:46,080: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-23 17:43:46,080: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-23 17:43:46,081: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/31/s/corefx/src/System.Net.HttpListener/tests/HttpListenerRequestTests.cs(205,0): at System.Net.Tests.HttpListenerRequestTests.d__12.MoveNext() 2017-05-23 17:43:46,081: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-23 17:43:46,081: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-23 17:43:46,081: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-23 17:43:46,081: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-23 17:43:46,081: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-23 17:43:46,082: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-23 17:43:46,082: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-23 17:43:46,082: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-23 17:43:46,082: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~" +20228 area-System.Net [HttpListener] [Managed] HttpListener.GetContext should not succeed for invalid requests The following headers give HTTP listener a context with the managed implementation but not in Windows - `GET {path} HTTP/2.2` - `GET {path} HTTP/2.0` - `GET {path} HTTP/3.0` I'm submitting a PR with tests +20229 area-System.Net [HttpListener] [Managed] HttpListener.GetContext should fail if Content-Length is specified twice with different values Following request gives HttpListener a context with the managed implementation but not on Windows. Note that Windows gets a context if the content-length is the same: ``` GET /path HTTP/1.1 Content-Length: 1 Content-Length: 2 ``` I'm submitting a PR with tests +20230 area-System.Net [HttpListener] [Managed] HttpListener.GetContext should return 404 not found if the path doesn't exist The following requests get a 404 Not Found in the Windows implementation but 400 Bad Request in the managed implementation: - `GET /something/{path} HTTP/1.1` - `GET /{path}/../ HTTP/1.1` I am submitting a PR with tests for this +20231 area-System.Net [HttpListener] [Managed] Duplicate transfer-encoding in the client's request should return 501 Not Implemented Following request gives HttpListener a context with the managed implementation but not on Windows. This causes a 501 Not Implemented on Windows but passes with the managed implementation: ``` GET /path HTTP/1.1 Transfer-Encoding: chunked Transfer-Encoding: chunked ``` I'm submitting a PR with tests +20232 area-System.Net [HttpListener] [Managed] positive overflow of Content-Length should set HttpListenerRequest.ContentLength64 to zero The following request hangs with the managed implementation but works with the Windows implementation: ``` GET {path} HTTP/1.1 Content-Length: 9223372036854775807 ``` I'm submitting a PR with tests +20234 area-System.Collections Provide consistent support for null elements in immutable sets Provide consistent support for null elements in ImmutableHashSet and ImmutableSortedSet. Fix #15403 Previously, ImmutableHashSet rejected nulls via some entry points (e. g. Add()) but allowed them via others (e. g. Union()), while ImmutableSortedSet rejected all nulls. The mutable counterparts HashSet and SortedSet both permit null elements. +20235 area-System.Net Fix off-by-one error in NetEventSource.WriteEvent Fixes https://github.com/dotnet/corefx/issues/20199 cc: @janvorli, @steveharter +20236 area-System.Net release/2.0: Fix off-by-one error in NetEventSource.WriteEvent Port #20235 to release/2.0.0 branch. cc: @janvorli, @steveharter Fixes #20199 +20237 area-System.Net [HttpListener] [Managed] Implement HttpListenerRequest.RequestTraceIdentifier "``` [ConditionalFact(nameof(Helpers) + ""."" + nameof(Helpers.IsWindowsImplementation))] public async Task RequestTraceIdentifier_GetWindows_ReturnsExpected() { await GetRequest(""POST"", null, null, (_, request) => { Assert.NotEqual(Guid.Empty, request.RequestTraceIdentifier); }); } [ConditionalFact(nameof(Helpers) + ""."" + nameof(Helpers.IsNotWindowsImplementation))] // [ActiveIssue public async Task RequestTraceIdentifier_GetUnix_ReturnsExpected() { await GetRequest(""POST"", null, null, (_, request) => { Assert.Equal(Guid.Empty, request.RequestTraceIdentifier); }); } ``` Suggested in https://github.com/dotnet/corefx/pull/20233" +20238 area-System.Net [HttpListener] [Managed] HttpListenerRequest should throw an InvalidOperationException calling certificate APIs after not finishing `BeginGetClientCertificate` "```cs [ConditionalFact(nameof(Helpers) + ""."" + nameof(Helpers.IsWindowsImplementation))] public async Task ClientCertificateError_GetWhileGettingCertificate_ThrowsInvalidOperationException() { await GetRequest(""POST"", null, null, (_, request) => { request.BeginGetClientCertificate(null, null); Assert.Throws(() => request.ClientCertificateError); Assert.Throws(() => request.BeginGetClientCertificate(null, null)); Assert.Throws(() => request.GetClientCertificate()); }); } ```" +20239 area-System.Net [HttpListener] [Managed] Implement HttpListenerRequest.TransportContext.GetChannelBinding "```cs [ConditionalFact(nameof(Helpers) + ""."" + nameof(Helpers.IsWindowsImplementation))] public async Task TransportContext_GetChannelBinding_ReturnsExpected() { // This might not work on other devices: // ""The Security Service Providers don't support extended protection. Please install the // latest Security Service Providers update."" await GetRequest(""POST"", null, null, (_, request) => { Assert.Null(request.TransportContext.GetChannelBinding(ChannelBindingKind.Endpoint)); }); } [ConditionalTheory(nameof(Helpers) + ""."" + nameof(Helpers.IsWindowsImplementation))] // [ActiveIssue( [InlineData(ChannelBindingKind.Unique)] [InlineData(ChannelBindingKind.Unique)] public async Task TransportContext_GetChannelBindingInvalid_ThrowsNotSupportedException(ChannelBindingKind kind) { await GetRequest(""POST"", null, null, (_, request) => { Assert.Throws(() => request.TransportContext.GetChannelBinding(kind)); }); } ```" +20240 area-System.Net [managed bug] Implement HttpListenerRequest.TransportContext.GetChannelBinding "```cs [ConditionalFact(nameof(Helpers) + ""."" + nameof(Helpers.IsWindowsImplementation))] public async Task TransportContext_GetChannelBinding_ReturnsExpected() { // This might not work on other devices: // ""The Security Service Providers don't support extended protection. Please install the // latest Security Service Providers update."" await GetRequest(""POST"", null, null, (_, request) => { Assert.Null(request.TransportContext.GetChannelBinding(ChannelBindingKind.Endpoint)); }); } [ConditionalTheory(nameof(Helpers) + ""."" + nameof(Helpers.IsWindowsImplementation))] // [ActiveIssue( [InlineData(ChannelBindingKind.Unique)] [InlineData(ChannelBindingKind.Unique)] public async Task TransportContext_GetChannelBindingInvalid_ThrowsNotSupportedException(ChannelBindingKind kind) { await GetRequest(""POST"", null, null, (_, request) => { Assert.Throws(() => request.TransportContext.GetChannelBinding(kind)); }); } ```" +20242 area-System.Memory [API Change] Extension AsSpan(this string text) -> AsReadOnlySpan(this string text) From #18420 Extension change to match other ReadOnlySpan return methods ```csharp public static ReadOnlySpan AsSpan(this string text); ``` to ```csharp public static ReadOnlySpan AsReadOnlySpan(this string text); ``` +20243 area-System.Memory AsReadOnlySpan extension method additions Api Proposal #18420 @jkotas @karelz +20244 area-System.Security Question: ClaimTypes and Schema URIs File in question: https://github.com/Microsoft/referencesource/blob/master/mscorlib/system/security/claims/ClaimTypes.cs If I want to create some custom claim types and I want to keep to the same formatting and code style as in this file, then is there a place where all possible (already created) URIs are listed? For example, is there one for DisplayName or userPrincipleName in active directory? There are just examples. I just want to make sure that I am writing good clean code instead of just using some obscure value for these properties. Thanks! +20245 area-System.Net Test failures: System.Net.NameResolution.PalTests.NameResolutionPalTests / GetHostByName_HostName & TryGetAddrInfo_HostName ## Types of failures Affected tests: * GetHostByName_HostName * TryGetAddrInfo_HostName ### TryGetAddrInfo_HostName `TryGetAddrInfo_HostName` test in build 20171203.01 (same for OSX and Linux): ``` Assert.Equal() Failure Expected: Success Actual: HostNotFound at System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName() in /Users/buildagent/agent/_work/320/s/corefx/src/System.Net.NameResolution/tests/PalTests/NameResolutionPalTests.cs:line 129 ``` ### GetHostByName_HostName The error is: * OSX - Device not configured * Linux - No such device or address (same callstack) `GetHostByName_HostName` test in build 20171203.01 (OSX): ``` System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : Device not configured at System.Net.NameResolutionPal.GetHostByName(String hostName) in /Users/buildagent/agent/_work/320/s/corefx/src/System.Net.NameResolution/src/System/Net/NameResolutionPal.Unix.cs:line 157 at System.Net.NameResolution.PalTests.NameResolutionPalTests.GetHostByName_HostName() in /Users/buildagent/agent/_work/320/s/corefx/src/System.Net.NameResolution/tests/PalTests/NameResolutionPalTests.cs:line 53 ``` ## History of failures Note: The tests always both fail - maybe bad setup? Day | Build | OS | Test -- | -- | -- | -- 9/5 | 20170905.02 | Debian90 | GetHostByName_HostName & TryGetAddrInfo_HostName 9/10 | 20170910.01 | Ubuntu14.04 | GetHostByName_HostName & TryGetAddrInfo_HostName 9/15 | 20170915.02 | Debian87 | GetHostByName_HostName & TryGetAddrInfo_HostName 9/16 | 20170916.02 | Debian87 | GetHostByName_HostName & TryGetAddrInfo_HostName 9/20 | 20170920.03 | Debian90 | GetHostByName_HostName & TryGetAddrInfo_HostName 9/27 | 20170927.01 | Debian87 | GetHostByName_HostName & TryGetAddrInfo_HostName 9/27 | 20170927.02 | Debian87 | GetHostByName_HostName & TryGetAddrInfo_HostName 10/2 | 20171002.01 | Debian87 | GetHostByName_HostName & TryGetAddrInfo_HostName 10/3 | 20171003.01 | Debian87 | GetHostByName_HostName & TryGetAddrInfo_HostName 10/3 | 20171003.02 | Debian90 | GetHostByName_HostName & TryGetAddrInfo_HostName 10/9 | 20171009.04 | SLES12 | GetHostByName_HostName & TryGetAddrInfo_HostName 10/23 | 20171020.52 | Debian87 | GetHostByName_HostName & TryGetAddrInfo_HostName 10/25 | 20171025.07 | Debian87 | GetHostByName_HostName & TryGetAddrInfo_HostName 10/26 | 20171026.01 | Debian87 | GetHostByName_HostName & TryGetAddrInfo_HostName 11/16 | 20171116.01 | OSX10.12 | GetHostByName_HostName & TryGetAddrInfo_HostName 11/16 | 20171116.02 | Suse42.2 | GetHostByName_HostName & TryGetAddrInfo_HostName 12/3 | 20171203.01 | OSX10.12 | GetHostByName_HostName & TryGetAddrInfo_HostName # Original report This is in 2.0 on Ubuntu 1604. https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170524.02/workItem/System.Net.WebProxy.Tests/analysis/xunit/System.Net.Tests.WebProxyTest~2FBypassOnLocal_MatchesExpected ``` Unhandled Exception of Type System.Net.Internals.SocketExceptionFactory+ExtendedSocketException Message : System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : No such device or address Stack Trace : at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) in /root/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 46 at System.Net.Dns.ResolveCallback(Object context) in /root/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 290 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) in /root/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 420 at System.Net.Dns.EndGetHostEntry(IAsyncResult asyncResult) in /root/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 562 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.WebProxyTest.d__10.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() in /root/corefx/src/System.Linq/src/System/Linq/Select.cs:line 133 ``` +20246 area-System.Net [HttpListener] Hang of System.Net.HttpListener.Tests in CI "https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu14.04_debug_prtest/8257/consoleFull#130661499679494335-f7bd-47d0-8771-8661e00c2db2 ``` 22:05:43 Finished running tests. End time=05:05:43. Return value was 0 23:44:38 Build timed out (after 120 minutes). Marking the build as aborted. 23:44:38 Build was aborted 23:44:38 [xUnit] [INFO] - Starting to record. 23:44:38 [xUnit] [INFO] - Processing xUnit.Net-v2 (default) 23:44:38 MSBUILD : error MSB4166: Child node ""2"" exited prematurely. Shutting down. Diagnostic information may be found in files in the temporary files directory named MSBuild_*.failure.txt. 23:44:38 [xUnit] [INFO] - [xUnit.Net-v2 (default)] - 155 test report file(s) were found with the pattern 'bin/**/testResults.xml' relative to '/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest' for the testing framework 'xUnit.Net-v2 (default)'. 23:44:38 /mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/Tools/tests.targets(345,5): warning MSB5021: ""sh"" and its child processes are being terminated in order to cancel the build. [/mnt/j/workspace/dotnet_corefx/master/ubuntu14.04_debug_prtest/src/System.Net.HttpListener/tests/System.Net.HttpListener.Tests.csproj] 23:44:39 Command execution failed with exit code 143. ``` Not actionable based on this information, but starting an issue." +20247 area-System.Runtime Add tests for reflection based serialization of coretypes "Relates to https://github.com/dotnet/corefx/issues/19119 ### Follow up work - 100% Core <--> Netfx serialization support - Adding ValueTuples netfx471 hashes - Renaming ""binary serialization"" comment to just ""serialization"" in coreclr and corefx. - Refine DataTable and DataSet equality comparison - Assert.Fail instead of exceptions" +20250 area-Infrastructure Enable portable pipelines by default in CI "* Enable the portable innerloop pipelines by default * Modify the pipelines so that they access incoming parameters with ""param."". This typically has no effect, but without ""param."", you're implictly accessing the environment. If the incoming parameter is boolean, then it would be converted to a string, meaning that boolean checks like if (foo) would return true." +20252 area-System.Diagnostics Proposal: Add new property for getting process command line, environment and parent process # Rationale and Usage When writing tools, it is often useful to be able to get to information about the processes you manage. This is easy on Linux with /proc, but harder on windows. When getting parent process, it is important to check the start time of the process with the PID of the queried process to see if it is older to prevent errors when process ids are recycled. # API proposal ```csharp namespace System.Diagnostics { public class Process : Component { public string CommandLine { get; } public IDictionary Environment{ get; } public Process ParentProcess { get; } } } ``` I would suggest returning `null` if the user doesn't have access to the requested property instead of having to handle exceptions. +20253 area-Infrastructure Can't add System.Runtime.WindowsRuntime nuget package to .net 4.6.1 project If you try to add the package, you get the following error: Could not install package 'System.Runtime.WindowsRuntime 4.3.0'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.6.1', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author. +20254 area-Infrastructure Remove HelixJob type allowing these to default to test/functional/cli/ "Removing this property allows the value to default to what's here: https://github.com/dotnet/corefx/blob/master/src/upload-tests.proj#L62 I've chosen to do it this way because: 1. Currently we lack the ability to have different branches show a mix of different job types. I've tracked improving this experience here: https://github.com/dotnet/core-eng/issues/810 2. In master, these _**are**_ the core tests now; ""portable core"" loses its meaning when everything is portable. Once this merges, we can choose to remove the portable view from the view configuration whenever, but probably some time in the future for historical research purposes. @weshaggard , @chcosta " +20255 area-System.Reflection Expose 'other' property and event accessors Implementation of API to expose 'other' property and event accessors. resolves #4100 +20256 area-System.Runtime `System.IntPtr` and `System.UIntPtr` Improvements ### Rationale The .NET framework provides the `System.IntPtr` and `System.UIntPtr` types which wrap the `native int` IL primitive (as per ECMA-335). These types are frequently used to represent both handles/pointers and integers whose size depend on the underlying platform. When being used to represent the latter (platform sized integer) type, users may find a difficult time performing some basic operations, such as comparing two `native ints` to determine sort order. Additionally, with the proposed C# `Native Sized Number Types` (https://github.com/dotnet/csharplang/issues/435) where language support for the primitive operations will be exposed (currently this will be done via partial erasure), the use of `System.IntPtr` and `System.UIntPtr` as `native int` types will become more prevalent (F# is one language that already exposes these operators). As such, these types should be modified to expose a set of APIs that make other common operations easier to perform. ### Proposed API The proposed API here only shows the members that would be new to the types. **System.IntPtr** ```C# [StructLayout(LayoutKind.Sequential)] // This is implicitly set by the compiler, but should be explicitly declared, as it is done for System.Int32 public struct IntPtr : IComparable, IComparable, IComparable, IEquatable, IFormattable { public static IntPtr MaxValue { get; } public static IntPtr MinValue { get; } public static bool operator ==(IntPtr left, int right); public static bool operator !=(IntPtr left, int right); int IComparable.CompareTo(object value); // Explicitly implemented to ensure that users still get compile-time type checking public int CompareTo(int value); // ECMA-335 defines binary comparisons for IntPtr/int and IntPtr/IntPtr public int CompareTo(IntPtr value); public bool Equals(int other); // ECMA-335 defines binary comparisons for IntPtr/int and IntPtr/IntPtr public bool Equals(IntPtr other); // This is currently explicitly implemented as IEquatable.Equals(IntPtr other) public string ToString(IFormatProvider provider); public string ToString(string format, IFormatProvider provider); public static IntPtr Parse(string s); public static IntPtr Parse(string s, NumberStyles style); public static IntPtr Parse(string s, IFormatProvider provider); public static IntPtr Parse(string s, NumberStyles style, IFormatProvider provider); public static bool TryParse(string s, out IntPtr result); public static bool TryParse(string s, NumberStyles style, IFormatProvider provider, out IntPtr result); } ``` **System.UIntPtr** ```C# public struct UIntPtr : IComparable, IComparable, IComparable, IEquatable, IFormattable { public static UIntPtr MaxValue { get; } public static UIntPtr MinValue { get; } public static bool operator ==(UIntPtr left, uint right); public static bool operator !=(UIntPtr left, uint right); int IComparable.CompareTo(object value); // Explicitly implemented to ensure that users still get compile-time type checking public int CompareTo(uint value); // ECMA-335 defines binary comparisons for IntPtr/int and IntPtr/IntPtr public int CompareTo(UIntPtr value); public bool Equals(uint other); // ECMA-335 defines binary comparisons for IntPtr/int and IntPtr/IntPtr public bool Equals(UIntPtr other); // This is currently explicitly implemented as IEquatable.Equals(UIntPtr other) public string ToString(string format); // This is currently exposed on System.IntPtr, but not on System.UIntPtr public string ToString(IFormatProvider provider); public string ToString(string format, IFormatProvider provider); public static UIntPtr Parse(string s); public static UIntPtr Parse(string s, NumberStyles style); public static UIntPtr Parse(string s, IFormatProvider provider); public static UIntPtr Parse(string s, NumberStyles style, IFormatProvider provider); public static bool TryParse(string s, out UIntPtr result); public static bool TryParse(string s, NumberStyles style, IFormatProvider provider, out UIntPtr result); } ``` ### Other Thoughts Implementing `System.IConvertible` is done by the other primitive types and may be useful in some cases here as well. It might be worthwhile having `int` implement `IComparable` and `IEquatable`, given that these are valid operations as well. +20258 area-Infrastructure "Move ""GenerateReferenceSource"" target into buildtools" "We should move this new target into buildtools if we decide that the functionality is general-purpose enough to warrant it. This might involve cleaning it up, making it ""automatic"", and fixing some of the problems around multiple build configurations." +20259 area-System.Threading Fix Parallel.For* to consistently throw exception upon cancellation Fix for #20093 in master: - Write the exception to be thrown upon cancellation before setting the canceled state so that the exception will be visible upon cancellation - Dispose the cancellation token registration before checking the exception so that a late cancellation would never yield an incomplete return status with no exception +20260 area-Infrastructure Port four new reference assembly projects to release/2.0.0 This tracks porting the changes in https://github.com/dotnet/corefx/pull/20211 to the release/2.0.0 branch. I've made a targeted fix which will reduce the IL size of the reference assemblies we ship with .NET Core. In total, we will bundle 729 KB less in the Microsoft.NETCore.App package. There is no observable difference other than the file size. This change just strips out the implementation IL for the assembly, which is already unused. +20261 area-Infrastructure "Port ""Add a ""GenerateReferenceSource"" target and add four ref assembly projects."" to release/2.0.0" This is a direct port of #20211 - https://github.com/dotnet/corefx/pull/20211/commits to the release/2.0.0 branch. Fixes #20260 +20262 area-System.Xml Fix XmlSchemaSet test failures with absolute Uri on Unix "Re-enables and fixes failing tests of XmlSchemaSet that depend on System.Uri.IsAbsoluteUri 's behavior when the passed string to Uri starts with ""/"" on Unix. The method returns `False` for these types of paths, although the path in Unix is considered as absolute. Resolves https://github.com/dotnet/corefx/issues/20148 cc: @danmosemsft @krwq @stephentoub " +20263 area-System.Xml .NET Core 2.0 Preview 1: XmlSchemaSet Compile Failure to Find Types in Included Schemas "Consider the following XML schema: ``` ``` The following .NET Core 2.0 Preview 1 console app fails with an exception: ``` static void Main(string[] args) { var schemaReader = XmlTextReader.Create(""main.xsd""); var thisSchema = XmlSchema.Read(schemaReader, null); var thisSchemaSet = new XmlSchemaSet(); thisSchemaSet.Add(thisSchema); thisSchemaSet.Compile(); } ``` The exception is as follows: ``` System.Xml.Schema.XmlSchemaException occurred HResult=0x80131941 Message=Type 'http://www.xbrl.org/2003/instance:monetaryItemType' is not declared. Source= StackTrace: at System.Xml.Schema.XmlSchemaSet.InternalValidationCallback(Object sender, ValidationEventArgs e) at System.Xml.Schema.BaseProcessor.SendValidationEvent(XmlSchemaException e, XmlSeverityType severity) at System.Xml.Schema.BaseProcessor.SendValidationEvent(XmlSchemaException e) at System.Xml.Schema.Compiler.CompileElement(XmlSchemaElement xe) at System.Xml.Schema.Compiler.Compile() at System.Xml.Schema.Compiler.Execute(XmlSchemaSet schemaSet, SchemaInfo schemaCompiledInfo) at System.Xml.Schema.XmlSchemaSet.Compile() at SchemaSetTest.Program.Main(String[] args) in c:\users\jefff\documents\visual studio 2017\Projects\SchemaSetTest\SchemaSetTest\Program.cs:line 14 ``` The type in question (`http://www.xbrl.org/2003/instance:monetaryItemType`) is available from the imported schema named on the main XSD's `` element. This code works on .NET Framework. Is this a known issue with `XmlSchemaSet` in .NET Core 2.0?" +20264 area-System.IO Named Pipes only can receive a single message "The implementation of NamedPipeServerStream.WaitForConnectionAsync is unclear and also incorrect. I believe the following should work but it fails (on windows at least) ```c# var server = new NamedPipeServerStream(""test"", PipeDirection.In, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous, 0, 0); server.WaitForConnectionAsync().ContinueWith((task) => { var number = server.ReadByte(); }); for (int i = 0; i < 10; i++) { var client = new NamedPipeClientStream(""."", ""test"", PipeDirection.Out, PipeOptions.Asynchronous | PipeOptions.WriteThrough); client.Connect(); // This waits for forever on the second client, however the named pipe still exists and is open client.WriteByte((byte)10); client.Flush(); client.Dispose(); } ``` However if the wait for connections async is supposed to be called on each disconnect then I am still having errors as calling WaitForConnectionAsync again causes an IO exception ```c# public static void Main(String[]args) { Task.Factory.StartNew(KeepPipeOpen).GetAwaiter(); for (int i = 0; i < 10; i++) { var client = new NamedPipeClientStream(""."", ""test"", PipeDirection.Out, PipeOptions.Asynchronous | PipeOptions.WriteThrough); client.Connect(); client.WriteByte((byte)10); client.Flush(); client.Dispose(); } } public static NamedPipeServerStream server = new NamedPipeServerStream(""test"", PipeDirection.In, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous, 0, 0); public static async void KeepPipeOpen() { var shouldContinue = true; while (shouldContinue) { var msg = await GetNextMessage(); } } public static async Task GetNextMessage() { try { if (!server.IsConnected) { await server.WaitForConnectionAsync(); } var number = server.ReadByte(); return number; }catch(Exception e) { return 0; } } ```" +20265 area-System.Net Several more HttpListener fixes on Unix Fixes https://github.com/dotnet/corefx/issues/20231 Fixes https://github.com/dotnet/corefx/issues/20230 Fixes https://github.com/dotnet/corefx/issues/20229 Fixes https://github.com/dotnet/corefx/issues/20228 Fixes https://github.com/dotnet/corefx/issues/20100 Fixes https://github.com/dotnet/corefx/issues/19977 Fixes https://github.com/dotnet/corefx/issues/20239 Fixes https://github.com/dotnet/corefx/issues/20237 Fixes https://github.com/dotnet/corefx/issues/20101 cc: @geoffkizer, @janvorli, @hughbe, @Priya91, @steveharter +20266 area-System.Threading Fix Parallel.For* to consistently throw exception upon cancellation Port of PR #20259, commit 62bfba654acf00e4b0fc0811be057c637b135bba to release/2.0.0 Fixes #20093: - Write the exception to be thrown upon cancellation before setting the canceled state so that the exception will be visible upon cancellation - Dispose the cancellation token registration before checking the exception so that a late cancellation would never yield an incomplete return status with no exception +20268 area-System.Diagnostics Implementation of ProcessStartInfo.CreateNewProcessGroup property This is an implementation for the API request issue #17412. Normally a new child process is created in the same process group as the parent process. This change allows a child process to be created in its own process group. For Windows this change simply sets the CREATE_NEW_PROCESS_GROUP flag when creating the process. For Unix this change uses the setpgid system call to set the process group id to be the same as the process id. I wasn't able to find any Windows managed or native API to determine a process group id. So functional tests work only in Unix where they use system calls to verify a process group id. +20269 area-System.Data Add AdapterTest to SqlClient ManualTests Tests SqlAdapter functionality +20270 area-System.Net IsWindowsImplementation / IsNotWindowsImplementation semantics This is to track follow-up from the discussion at https://github.com/dotnet/corefx/pull/20250#pullrequestreview-40129192 src/System.Net.HttpListener/tests/GetContextHelper.cs Helpers : IsWindowsImplementation / IsNotWindowsImplementation should either have better name description or should have the implementation changed to mean what they actually do: Windows but not Nano or UWP. +20272 area-System.Security Exporting certificates created on the fly broken on OSX? "We ran into this while trying to generate certificates on the fly to use for HTTPS. If you create a self-signed certificate from an ephemeral RSA key. Shouldn't you be able to export it to a PFX file directly? it was failing for us in line: ```c# var export = certificate.Export(X509ContentType.Pkcs12, """"); ``` ```c# var signingRequest = new CertificateRequest( new X500DistinguishedName(TestSubject), rsa, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); var enhancedKeyUsage = new OidCollection(); enhancedKeyUsage.Add(new Oid(""1.3.6.1.5.5.7.3.1"", ""Server Authentication"")); signingRequest.CertificateExtensions.Add(new X509EnhancedKeyUsageExtension(enhancedKeyUsage, critical: true)); signingRequest.CertificateExtensions.Add(new X509KeyUsageExtension(X509KeyUsageFlags.KeyEncipherment, critical: true)); signingRequest.CertificateExtensions.Add( new X509BasicConstraintsExtension( certificateAuthority: false, hasPathLengthConstraint: false, pathLengthConstraint: 0, critical: true)); var sanBuilder = new SubjectAlternativeNameBuilder(); sanBuilder.AddDnsName(TestSubject.Replace(""CN="", """")); signingRequest.CertificateExtensions.Add(sanBuilder.Build()); var certificate = signingRequest.CreateSelfSigned(DateTimeOffset.UtcNow, DateTimeOffset.UtcNow.AddYears(1)); var export = certificate.Export(X509ContentType.Pkcs12, """"); var imported = new X509Certificate2(export, """", X509KeyStorageFlags.PersistKeySet); Array.Clear(export, 0, export.Length); ```" +20273 area-System.Diagnostics Add ShellEx support for Windows & fix issues (#20216) Port of #20216 for issue #18949 * Add ShellEx support for Windows & fix issues Adds ShellExecute support for Windows (outside of UAP). Unlike desktop UseShellExecute is not the default. In the process of ding this I ran across two issues: 1- The owned process handle would be disposed after hitting members on Process. Getting the ProcessName, for example, would cause a closed handle exception on the next call that used the handle. 2- The MainWindowTitle import wasn't set to the right charset. In addition the allocated buffer size wasn't correct. Fixed and added debug checks for failed api calls. * Address feedback - Add usings in tests - Handle missing API * Move to new using pattern - Remove newly dead string - Other feedback * More feedback changes +20274 area-System.Threading Creating global mutex in UWP context hangs "Repro: try to run the System.Net.Security tests in UWP. The following code will hang in `CreateMutexW`: ```C# private static Mutex m = new Mutex(false, ""Global\\CoreFXTest.Configuration.Certificates.LoadPfxCertificate""); ``` Stack: ``` 01 0000001d`bbcfa4b0 00007ffb`1721aba7 KERNELBASE!CreateMutexW+0x61 02 0000001d`bbcfa530 00007ffb`172e93cc System_Private_CoreLib!DomainNeutralILStubClass.IL_STUB_PInvoke(SECURITY_ATTRIBUTES, Boolean, System.String)+0xf7 03 0000001d`bbcfa620 00007ffb`172e94ea System_Private_CoreLib!System.Threading.Mutex.CreateMutexHandle(Boolean, System.String, SECURITY_ATTRIBUTES, Microsoft.Win32.SafeHandles.SafeWaitHandle ByRef)+0x2c 04 0000001d`bbcfa680 00007ffb`1e4eb6a3 System_Private_CoreLib!System.Threading.Mutex+MutexTryCodeHelper.MutexTryCode(System.Object)+0x3a 05 0000001d`bbcfa6d0 00007ffb`1e247d09 CoreCLR!GetCLRRuntimeHost+0x3234b3 06 0000001d`bbcfa710 00007ffb`1e3cc93d CoreCLR!GetCLRRuntimeHost+0x7fb19 07 0000001d`bbcfa7b0 00007ffb`1e3cca89 CoreCLR!GetCLRRuntimeHost+0x20474d 08 0000001d`bbcfa890 00007ffb`172e8f92 CoreCLR!GetCLRRuntimeHost+0x204899 09 0000001d`bbcfaa10 00007ffb`172e9067 System_Private_CoreLib!System.Threading.Mutex.CreateMutexWithGuaranteedCleanup(Boolean, System.String, Boolean ByRef, SECURITY_ATTRIBUTES)+0xe2 0a 0000001d`bbcfaa80 00007ffa`beca3349 System_Private_CoreLib!System.Threading.Mutex..ctor(Boolean, System.String)+0x37 0b 0000001d`bbcfaad0 00007ffb`1e4eb6a3 System_Net_Security_Tests!System.Net.Test.Common.Configuration+Certificates..cctor()+0x49 [S:\corefxUwp\src\Common\tests\System\Net\Configuration.Certificates.cs @ 21] 0c 0000001d`bbcfab10 00007ffb`1e247c3c CoreCLR!GetCLRRuntimeHost+0x3234b3 0d 0000001d`bbcfab50 00007ffb`1e247cfd CoreCLR!GetCLRRuntimeHost+0x7fa4c 0e 0000001d`bbcfabb0 00007ffb`1e2e57e2 CoreCLR!GetCLRRuntimeHost+0x7fb0d 0f 0000001d`bbcfac50 00007ffb`1e2e5cc2 CoreCLR!GetCLRRuntimeHost+0x11d5f2 10 0000001d`bbcfadb0 00007ffb`1e2e616c CoreCLR!GetCLRRuntimeHost+0x11dad2 11 0000001d`bbcfb840 00007ffb`1e2ab6ca CoreCLR!GetCLRRuntimeHost+0x11df7c 12 0000001d`bbcfb870 00007ffa`beca3131 CoreCLR!GetCLRRuntimeHost+0xe34da 13 0000001d`bbcfba00 00007ffa`beca2f30 System_Net_Security_Tests!System.Net.Test.Common.Configuration+Certificates.GetCertificateCollection(System.String)+0x51 [S:\corefxUwp\src\Common\tests\System\Net\Configuration.Certificates.cs @ 52] 14 0000001d`bbcfbab0 00007ffa`beca2ec7 System_Net_Security_Tests!System.Net.Test.Common.Configuration+Certificates.GetServerCertificateCollection()+0x30 [S:\corefxUwp\src\Common\tests\System\Net\Configuration.Certificates.cs @ 34] ``` " +20275 area-System.Security Support Two-Key Triple DES Fixes https://github.com/dotnet/corefx/issues/9966 Expect to port to 2.0 release branch as well. I am assuming we want to support this in the S.S.C.Cng assembly as well meaning direct use of the TripleDESCng class would work the same as using TripleDES.Create() or TripleDESCryptoServiceProvider. +20276 area-System.Runtime X-Plat: Environment.SetEnvironmentVariable(string, string) on Unix. More details later - just need an issue number for a TODO comment. +20277 area-System.Runtime X-Plat: Environment.GetEnvironmentVariables() on Unix More details later - just need an issue number now. +20278 area-Serialization Fix XmlSerializer(Type type, Types[] extraTypes) on UWP On UWP, if one used `XmlSerializer(Type type, Types[] extraTypes)` to create serializer for `type`, UWP toolchain would pre-generate the serializer for the type and make the `extraTypes` as the type's known types. To achieve the latter, UWP toolchain uses one `XmlReflectionImporter` to import *all types* (all types require serialization in the app) so that the `extraTypes` would be treated as known types. But there're some problems with this. 1. The type would have more known types than those included by `extraTypes`. 2. There might be type conflicts as the importer imports all types and the type scope grows. And etc. The fix is to make the constructor to always use reflection based serialization. Fix #19811 +20279 area-Infrastructure Test retargeting netframework project while using netstandard.library.netframework We should do this in both a netcore.sdk project as well as a legacy project using package reference. Packages.config is not interesting since retargeting has never been supported there. @davkean mentioned the design time build may not react well when retargeting changes targets imported. Interesting scenarios: 1. Reference an n 2.0 package that cross-compiles (like immutable) in net461. 2. Retargeting to net46. 3. Retargeting to net47. (Interesting in valuetuple case). There are others too. Filing this to ensure I don't forget to test this. +20280 area-System.Net Several more HttpListener fixes on Unix Replaces https://github.com/dotnet/corefx/pull/20265, which was having CI issues. Fixes #20239 Fixes #20238 Fixes #20237 Fixes #20232 Fixes #20231 Fixes #20230 Fixes #20229 Fixes #20228 Fixes #20165 Fixes #20101 Fixes #20100 Fixes #20099 Fixes #19977 Fixes #19972 +20283 area-System.Diagnostics "Test: System.Diagnostics.Tests.ProcessStartInfoTests/StartInfo_BadExe failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessStartInfoTests/StartInfo_BadExe(useShellExecute: False)` has failed. Assert.Equal() Failure\r Expected: 193\r Actual: 0 Stack Trace: at System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_BadExe(Boolean useShellExecute) Build : Master - 20170525.01 (Portable Core Tests) Failing configurations: - Windows.10.Nano.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170525.01/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessStartInfoTests~2FStartInfo_BadExe(useShellExecute:%20False) +20284 area-System.Diagnostics "Test: System.Diagnostics.Tests.ProcessStartInfoTests/StartInfo_NotepadWithContent(useShellExecute: False) failed with ""System.ComponentModel.Win32Exception : The system cannot find the file specified""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessStartInfoTests/StartInfo_NotepadWithContent(useShellExecute: False)` has failed. System.ComponentModel.Win32Exception : The system cannot find the file specified Stack Trace: at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) at System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_NotepadWithContent(Boolean useShellExecute) Build : Master - 20170525.01 (Portable Core Tests) Failing configurations: - Windows.10.Nano.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170525.01/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessStartInfoTests~2FStartInfo_NotepadWithContent(useShellExecute:%20False) +20285 area-System.Diagnostics "Test: System.Diagnostics.Tests.ProcessStartInfoTests/StartInfo_NotepadWithContent(useShellExecute: True) failed with ""System.ComponentModel.Win32Exception : This function is not supported on this system""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessStartInfoTests/StartInfo_NotepadWithContent(useShellExecute: True)` has failed. System.ComponentModel.Win32Exception : This function is not supported on this system Stack Trace: at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) at System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_NotepadWithContent(Boolean useShellExecute) Build : Master - 20170525.01 (Portable Core Tests) Failing configurations: - Windows.10.Nano.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170525.01/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessStartInfoTests~2FStartInfo_NotepadWithContent(useShellExecute:%20True) +20286 area-System.Diagnostics "Tests under ""System.Diagnostics.Tests.ProcessStartInfoTests"" failed with ""Xunit.Sdk.StartWithException""" Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170525.01/workItem/System.Diagnostics.Process.Tests/wilogs ~~~ 2017-05-25 00:34:23,901: INFO: proc(54): run_and_log_output: Output: Discovering: System.Diagnostics.Process.Tests 2017-05-25 00:34:24,151: INFO: proc(54): run_and_log_output: Output: Discovered: System.Diagnostics.Process.Tests 2017-05-25 00:34:24,260: INFO: proc(54): run_and_log_output: Output: Starting: System.Diagnostics.Process.Tests 2017-05-25 00:34:24,838: INFO: proc(54): run_and_log_output: Output: System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_WebPage [SKIP] 2017-05-25 00:34:24,838: INFO: proc(54): run_and_log_output: Output: Manual test 2017-05-25 00:34:25,622: INFO: proc(54): run_and_log_output: Output: System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_NotepadWithContent(useShellExecute: False) [FAIL] 2017-05-25 00:34:25,622: INFO: proc(54): run_and_log_output: Output: Assert.StartsWith() Failure: 2017-05-25 00:34:25,622: INFO: proc(54): run_and_log_output: Output: Expected: StartInfo_NotepadWithContent_956_ad11a149.txt 2017-05-25 00:34:25,622: INFO: proc(54): run_and_log_output: Output: Actual: StartInfo_NotepadWithContent_956_ad11a149 - N... 2017-05-25 00:34:25,638: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-25 00:34:25,763: INFO: proc(54): run_and_log_output: Output: at System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_NotepadWithContent(Boolean useShellExecute) 2017-05-25 00:34:25,763: INFO: proc(54): run_and_log_output: Output: System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_NotepadWithContent(useShellExecute: True) [FAIL] 2017-05-25 00:34:25,763: INFO: proc(54): run_and_log_output: Output: Assert.StartsWith() Failure: 2017-05-25 00:34:25,763: INFO: proc(54): run_and_log_output: Output: Expected: StartInfo_NotepadWithContent_956_7922b544.txt 2017-05-25 00:34:25,763: INFO: proc(54): run_and_log_output: Output: Actual: StartInfo_NotepadWithContent_956_7922b544 - N... 2017-05-25 00:34:25,763: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-25 00:34:25,763: INFO: proc(54): run_and_log_output: Output: at System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_NotepadWithContent(Boolean useShellExecute) 2017-05-25 00:34:25,809: INFO: proc(54): run_and_log_output: Output: System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_TextFile_ShellExecute [FAIL] 2017-05-25 00:34:25,809: INFO: proc(54): run_and_log_output: Output: Assert.StartsWith() Failure: 2017-05-25 00:34:25,809: INFO: proc(54): run_and_log_output: Output: Expected: StartInfo_TextFile_ShellExecute_982_8f4d0e14.txt 2017-05-25 00:34:25,809: INFO: proc(54): run_and_log_output: Output: Actual: StartInfo_TextFile_ShellExecute_982_8f4d0e14 - N... 2017-05-25 00:34:25,809: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-25 00:34:25,809: INFO: proc(54): run_and_log_output: Output: at System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_TextFile_ShellExecute() ~~~ +20287 area-System.Console "Test: CancelKeyPressTests/CanAddAndRemoveHandler_Remote failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `CancelKeyPressTests/CanAddAndRemoveHandler_Remote` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -532462766 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at CancelKeyPressTests.CanAddAndRemoveHandler_Remote() Build : Master - 20170525.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170525.01/workItem/System.Console.Tests/analysis/xunit/CancelKeyPressTests~2FCanAddAndRemoveHandler_Remote +20288 area-System.Diagnostics StartInfo_BadExe, StartInfo_BadVerb failing on Nano https://github.com/dotnet/corefx/issues/10290 is relevant I can fix this. +20289 area-System.Diagnostics disable two Process tests for nano relates to https://github.com/dotnet/corefx/issues/20288 +20290 area-Infrastructure Update CoreClr, CoreFx, CoreSetup, ProjectNTfs, ProjectNTfsTestILC, Standard to preview1-25326-02, preview1-25324-02, preview1-25326-03, beta-25326-02, beta-25326-02, preview1-25326-01, respectively (master) +20291 area-Infrastructure Add debian 9 to CI I want to add Debian 9 and Nano as optional legs to CI jobs. @mmitche you said to edit this file - is that it? Where does it indicate that it's an optional leg? To add Nano, do I edit netci.groovy, or somthing else? How do I test - do I do @dotnet-bot test ci please? +20292 area-Infrastructure "build.cmd fails with ""marked as inbox for framework netcoreapp2.0 but was missing from package ...""" ``` C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.Collections.Immutable.dll is marked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCoreApp /4.5.0-preview1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\Micr osoft.Private.PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\ Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgproj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.Configuration.dll is marked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCoreApp/4.5.0-p review1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.Pr ivate.PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\Users\hu gh\Documents\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgproj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.Reflection.Metadata.dll is m arked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCoreApp/4 .5.0-preview1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\Micros oft.Private.PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\Us ers\hugh\Documents\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgproj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.Security.dll is marked as in box for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCoreApp/4.5.0-previe w1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.Private .PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\Users\hugh\Do cuments\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgproj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.ServiceProcess.dll is marked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCoreApp/4.5.0- preview1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.P rivate.PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\Users\h ugh\Documents\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgproj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.Threading.Tasks.Dataflow.dll is marked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCore App/4.5.0-preview1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\M icrosoft.Private.PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [ C:\Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgpr oj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.Threading.Tasks.Extensions.d ll is marked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCo reApp/4.5.0-preview1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg \Microsoft.Private.PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkg proj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File WindowsBase.dll is marked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCoreApp/4.5.0-preview1-2 5423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.Private.Pac kageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\Users\hugh\Docume nts\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgproj] Build FAILED. C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.Collections.Immutable.dll is marked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCoreApp /4.5.0-preview1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\Micr osoft.Private.PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\ Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgproj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.Configuration.dll is marked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCoreApp/4.5.0-p review1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.Pr ivate.PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\Users\hu gh\Documents\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgproj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.Reflection.Metadata.dll is m arked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCoreApp/4 .5.0-preview1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\Micros oft.Private.PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\Us ers\hugh\Documents\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgproj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.Security.dll is marked as in box for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCoreApp/4.5.0-previe w1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.Private .PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\Users\hugh\Do cuments\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgproj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.ServiceProcess.dll is marked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCoreApp/4.5.0- preview1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.P rivate.PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\Users\h ugh\Documents\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgproj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.Threading.Tasks.Dataflow.dll is marked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCore App/4.5.0-preview1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\M icrosoft.Private.PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [ C:\Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgpr oj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File System.Threading.Tasks.Extensions.d ll is marked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCo reApp/4.5.0-preview1-25423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg \Microsoft.Private.PackageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkg proj] C:\Users\hugh\Documents\GitHub\corefx\Tools\Packaging.targets(1119,5): error : File WindowsBase.dll is marked as inbox for framework netcoreapp2.0 but was missing from framework package Microsoft.Private.CoreFx.NETCoreApp/4.5.0-preview1-2 5423-0. Either add the file or update InboxOn entry in C:\Users\hugh\Documents\GitHub\corefx\pkg\Microsoft.Private.Pac kageBaseline\packageIndex.json. This may be suppressed with with PermitMissingInbox suppression [C:\Users\hugh\Docume nts\GitHub\corefx\pkg\Microsoft.Private.CoreFx.NETCoreApp\Microsoft.Private.CoreFx.NETCoreApp.pkgproj] 0 Warning(s) 8 Error(s) Time Elapsed 00:09:13.88 Command execution failed with exit code 1. ``` +20293 area-System.Diagnostics Fix UseShellExec tests for Nano Fixes https://github.com/dotnet/corefx/issues/20288 I need nano support on CI to test this. @mmitche ... +20294 area-System.Net [HttpListener] [porting] HttpListenerRequest.ContentLength64 can be overriden from Request.Headers but can't be with netfx "Following tests pass with netfx but are disabled for netcoreapp: ```cs [ConditionalTheory(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] [InlineData(100)] [InlineData(""-100"")] [InlineData("""")] [InlineData(""abc"")] [InlineData(""9223372036854775808"")] [ActiveIssue(123, TargetFrameworkMonikers.Netcoreapp)] public async Task ContentLength_ManuallySetInHeaders_ReturnsExpected(string newValue) { await GetRequest(""POST"", null, new string[] { ""Content-Length: 1"" }, (_, request) => { Assert.Equal(""1"", request.Headers[""Content-Length""]); request.Headers.Set(""Content-Length"", newValue); Assert.Equal(newValue, request.Headers[""Content-Length""]); Assert.Equal(1, request.ContentLength64); Assert.True(request.HasEntityBody); }, content: ""\r\n""); } [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] [ActiveIssue(123, TargetFrameworkMonikers.Netcoreapp)] public async Task ContentLength_ManuallyRemovedFromHeaders_DoesNotAffect() { await GetRequest(""POST"", null, new string[] { ""Content-Length: 1"" }, (_, request) => { Assert.Equal(""1"", request.Headers[""Content-Length""]); request.Headers.Remove(""Content-Length""); Assert.Equal(1, request.ContentLength64); Assert.True(request.HasEntityBody); }, content: ""\r\n""); } ``` Looking at referencesource the code is exactly the same give or take some formatting." +20295 area-System.Net Add tests for a HttpListenerRequest.ContentLength64 porting bug See #20294 @stephentoub this will conflict with your existing PR - you have dibs though so you can merge that PR and I'll fix the conflicts +20296 area-System.Net HttpClient throws TaskCanceledException on timeout HttpClient is throwing a TaskCanceledException on timeout in some circumstances. This is happening for us when the server is under heavy load. We were able to work around by increasing the default timeout. The following MSDN forum thread captures the essence of the experienced issue: https://social.msdn.microsoft.com/Forums/en-US/d8d87789-0ac9-4294-84a0-91c9fa27e353/bug-in-httpclientgetasync-should-throw-webexception-not-taskcanceledexception?forum=netfxnetcom&prof=required Thanks +20297 area-System.IO "Test: System.IO.MemoryMappedFiles.Tests.MemoryMappedViewAccessorTests/InvalidAccessLevelsCombinations(mapAccess: CopyOnWrite, viewAccess: ReadWriteExecute) failed with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `System.IO.MemoryMappedFiles.Tests.MemoryMappedViewAccessorTests/InvalidAccessLevelsCombinations(mapAccess: CopyOnWrite, viewAccess: ReadWriteExecute)` has failed. Assert.Throws() Failure\r Expected: typeof(System.UnauthorizedAccessException)\r Actual: typeof(System.IO.IOException): The parameter is incorrect Stack Trace: at System.IO.MemoryMappedFiles.MemoryMappedView.CreateView(SafeMemoryMappedFileHandle memMappedFileHandle, MemoryMappedFileAccess access, Int64 offset, Int64 size) at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateViewAccessor(Int64 offset, Int64 size, MemoryMappedFileAccess access) at System.IO.MemoryMappedFiles.Tests.MemoryMappedViewAccessorTests.<>c__DisplayClass2_1.b__1() Build : Master - 20170525.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170525.01/workItem/System.IO.MemoryMappedFiles.Tests/analysis/xunit/System.IO.MemoryMappedFiles.Tests.MemoryMappedViewAccessorTests~2FInvalidAccessLevelsCombinations(mapAccess:%20CopyOnWrite,%20viewAccess:%20ReadWriteExecute) +20298 area-System.IO "Tests under: System.IO.Packaging.Tests.Tests failed with ""System.UnauthorizedAccessException""" Opened on behalf of @Jiayili1 The test `System.IO.Packaging.Tests.Tests/T001_AddParagraphToDocument` has failed. System.UnauthorizedAccessException : Access to the path 'C:\\dotnetbuild\\work\\f0379a4e-1ce3-4162-82f8-ccf81a31cefc\\Work\\b32309d6-9ae8-4920-ba2c-17660304260f\\Unzip\\Temp-8778394265bf4a41896e8171f644de83.docx' is denied. Stack Trace: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes) at System.IO.File.WriteAllBytes(String path, Byte[] bytes) at System.IO.Packaging.Tests.Tests.GetFileSavedWithGuidName(String test, String name) at System.IO.Packaging.Tests.Tests.T001_AddParagraphToDocument() Build : Master - 20170525.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170525.01/workItem/System.IO.Packaging.Tests/analysis/xunit/System.IO.Packaging.Tests.Tests~2FT001_AddParagraphToDocument +20299 area-System.IO "Tests under: System.IO.Pipes.Tests.NamedPipeTest_AclExtensions failed with ""System.UnauthorizedAccessException""" Opened on behalf of @Jiayili1 The test `System.IO.Pipes.Tests.NamedPipeTest_AclExtensions/GetAccessControl_ConnectedStream` has failed. System.UnauthorizedAccessException : Access to the path is denied. Stack Trace: at System.IO.Pipes.NamedPipeServerStream.Create(String pipeName, PipeDirection direction, Int32 maxNumberOfServerInstances, PipeTransmissionMode transmissionMode, PipeOptions options, Int32 inBufferSize, Int32 outBufferSize, HandleInheritability inheritability) at System.IO.Pipes.NamedPipeServerStream..ctor(String pipeName, PipeDirection direction, Int32 maxNumberOfServerInstances, PipeTransmissionMode transmissionMode, PipeOptions options, Int32 inBufferSize, Int32 outBufferSize, HandleInheritability inheritability) at System.IO.Pipes.NamedPipeServerStream..ctor(String pipeName, PipeDirection direction, Int32 maxNumberOfServerInstances, PipeTransmissionMode transmissionMode, PipeOptions options) at System.IO.Pipes.Tests.NamedPipeTest_AclExtensions.CreateServerClientPair() at System.IO.Pipes.Tests.PipeTest_AclExtensions.GetAccessControl_ConnectedStream() Build : Master - 20170525.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170525.01/workItem/System.IO.Pipes.AccessControl.Tests/analysis/xunit/System.IO.Pipes.Tests.NamedPipeTest_AclExtensions~2FGetAccessControl_ConnectedStream +20300 area-System.Net "Tests under: System.Net.NetworkInformation.Tests.AddressParsingTests failed with ""System.UnauthorizedAccessException""" Opened on behalf of @Jiayili1 The test `System.Net.NetworkInformation.Tests.AddressParsingTests/DhcpServerAddressParsing` has failed. System.UnauthorizedAccessException : Access to the path 'C:\\dotnetbuild\\work\\f0379a4e-1ce3-4162-82f8-ccf81a31cefc\\Work\\70a6094c-d43f-449a-9f91-29b2a2f4801c\\Unzip\\dhclient.leases_normalized0' is denied. Stack Trace: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) at System.IO.StreamWriter..ctor(String path) at System.IO.File.WriteAllText(String path, String contents) at System.Net.NetworkInformation.Tests.FileUtil.NormalizeLineEndings(String source, String normalizedDest) at System.Net.NetworkInformation.Tests.AddressParsingTests.DhcpServerAddressParsing() Build : Master - 20170525.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170525.01/workItem/System.Net.NetworkInformation.Functional.Tests/analysis/xunit/System.Net.NetworkInformation.Tests.AddressParsingTests~2FDhcpServerAddressParsing +20301 area-Infrastructure Download Shared Framework Zips and adding their ApiCompat runs cc: @weshaggard @ericstj @danmosemsft fixes #18083 Last piece of the puzzle. This will add those two last apicompat runs that we cared about by restoring the last shipped shared framework and the current one in order to do testing against it. Once this is merged, all work will be ready, and the next step would be enabling all of this through an official build (or maybe a whole new pipeline build) +20302 area-System.Net "Tests under: System.Net.Sockets.Tests.SendPacketsAsync failed with ""System.UnauthorizedAccessException""" Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.SendPacketsAsync/BufferMixedBuffers_ZeroCountBufferIgnored(type: APM)` has failed. System.UnauthorizedAccessException : Access to the path 'C:\\dotnetbuild\\work\\f0379a4e-1ce3-4162-82f8-ccf81a31cefc\\Work\\c5776ee9-264d-4af6-9f90-7fdfca0bef3c\\Unzip\\NCLTest.Socket.SendPacketsAsync.testpayload' is denied. Stack Trace: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode) at System.Net.Sockets.Tests.SendPacketsAsync..ctor(ITestOutputHelper output) Build : Master - 20170525.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170525.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SendPacketsAsync~2FBufferMixedBuffers_ZeroCountBufferIgnored(type:%20APM) +20303 area-System.Runtime Test failure: System.Runtime.Loader.Tests.DefaultLoadContextTests/LoadInDefaultContext Opened on behalf of @Jiayili1 The test `System.Runtime.Loader.Tests.DefaultLoadContextTests/LoadInDefaultContext` has failed. System.UnauthorizedAccessException : Access to the path is denied. Stack Trace: at System.IO.Win32FileSystem.MoveFile(String sourceFullPath, String destFullPath) at System.IO.File.Move(String sourceFileName, String destFileName) at System.Runtime.Loader.Tests.DefaultLoadContextTests.Init() at System.Runtime.Loader.Tests.DefaultLoadContextTests.LoadInDefaultContext() Build : Master - 20170525.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170525.01/workItem/System.Runtime.Loader.DefaultContext.Tests/analysis/xunit/System.Runtime.Loader.Tests.DefaultLoadContextTests~2FLoadInDefaultContext +20304 area-Infrastructure Updating CoreClr dependencies to servicing-25325-01 +20305 area-Infrastructure Update CoreClr, CoreFx to servicing-25325-01, servicing-25325-02, respectively (release/1.1.0) +20306 area-System.Diagnostics NullReferenceException in DiagnosticListener constructor "1. If someone listens to DiagnosticSourceEventSource bridge 2. When any DiagnosticListener is created, it causes static creation of DiagnosticSourceEventSource 3. When it’s created, OnEventCommand is fired that eventually causes call to DiagnosticListener.AllListeners 4. Which creates HttpHandlerDiagnosticListener -> DiagnosticListener that fails on DiagnosticSourceEventSource.Logger.IsEnabled (we are still in the process of creation DiagnosticSourceEventSource.Logger and it’s still null) ``` Unhandled Exception: System.TypeInitializationException: The type initializer for 'System.Diagnostics.HttpHandlerDiagnosticListener' threw an exception. ---> System.NullReferenceException: Object reference not set to an instance of an object. at System.Diagnostics.DiagnosticListener..ctor(String name) at System.Diagnostics.HttpHandlerDiagnosticListener..ctor() at System.Diagnostics.HttpHandlerDiagnosticListener..cctor() --- End of inner exception stack trace --- at System.Diagnostics.DiagnosticListener.get_AllListeners() at ConsoleApp3.Program.Main(String[] args) in C:\repo\delme\ConsoleApp3\Program.cs:line 13 ``` Code to reproduce ```c# class Program : IObserver { static void Main(string[] args) { new MyEventListener(); new DiagnosticListener(""123""); DiagnosticListener.AllListeners.Subscribe(new Program()); } public void OnNext(DiagnosticListener value) {} public void OnError(Exception error){} public void OnCompleted() {} class MyEventListener : EventListener { protected override void OnEventSourceCreated(EventSource eventSource) { if (eventSource != null && eventSource.Name == ""Microsoft-Diagnostics-DiagnosticSource"") { this.EnableEvents(eventSource, EventLevel.Verbose, EventKeywords.All); } base.OnEventSourceCreated(eventSource); } protected override void OnEventWritten(EventWrittenEventArgs eventData) { } } ```" +20307 area-System.Net "Test: System.Net.Tests.SyncWebClientTest/UploadData_LargeData_Success failed with ""System.Net.Http.CurlException : SSL connect error""" Opened on behalf of @Jiayili1 The test `System.Net.Tests.SyncWebClientTest/UploadData_LargeData_Success(echoServer: https://corefx-net.cloudapp.net/Echo.ashx)` has failed. System.Net.WebException : An error occurred while sending the request. SSL connect error ---- System.Net.Http.HttpRequestException : An error occurred while sending the request. -------- System.Net.Http.CurlException : SSL connect error Stack Trace: at System.Net.HttpWebRequest.GetResponse() in /root/corefx/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs:line 1012 at System.Net.WebClient.GetWebResponse(WebRequest request) in /root/corefx/src/System.Net.WebClient/src/System/Net/WebClient.cs:line 249 at System.Net.WebClient.DownloadBits(WebRequest request, Stream writeStream) in /root/corefx/src/System.Net.WebClient/src/System/Net/WebClient.cs:line 851 at System.Net.WebClient.UploadBits(WebRequest request, Stream readStream, Byte[] buffer, Int32 chunkSize, Byte[] header, Byte[] footer) in /root/corefx/src/System.Net.WebClient/src/System/Net/WebClient.cs:line 983 at System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request) in /root/corefx/src/System.Net.WebClient/src/System/Net/WebClient.cs:line 457 at System.Net.WebClient.UploadData(Uri address, String method, Byte[] data) in /root/corefx/src/System.Net.WebClient/src/System/Net/WebClient.cs:line 435 at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.WebClientTestBase.d__21.MoveNext() in /root/corefx/src/System.Net.WebClient/tests/WebClientTest.cs:line 658 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__59.MoveNext() in /root/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 487 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.HttpWebRequest.d__191.MoveNext() in /root/corefx/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs:line 1205 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.HttpWebRequest.GetResponse() in /root/corefx/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs:line 1007 ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) in /root/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 641 at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) in /root/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs:line 875 Build : 2.0.0 - 20170525.01 (Portable Core Tests) Failing configurations: - fedora.25.amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170525.01/workItem/System.Net.WebClient.Tests/analysis/xunit/System.Net.Tests.SyncWebClientTest~2FUploadData_LargeData_Success(echoServer:%20https:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx) +20308 area-Serialization Porting Serialization Tests in NetNative Repo @huanwu @shmao Please help review the code +20309 area-System.Data Issues found when porting FirebirdClient to .NET Standard 1.6 I was asked by @karelz to sum up my biggest holes I found while working on _FirebirdClient_ on .NET Standard 1.6. These would be nice to process before .NET Standard/Core 2.0. Some of these are/might be already fixed or not worth doing. I provide whole list (in no particular order) as a reference. - [x] `DbException` is missing `ErrorCode` property. I know it was originally based around `HRESULT`, but it might be good to have common property for _error codes_. * Answered by @FransBouma - https://github.com/dotnet/corefx/issues/20309#issuecomment-304011943 - [x] `DbParameter` does not have `Precision` and `Scale` properties. * Answered by @FransBouma - https://github.com/dotnet/corefx/issues/20309#issuecomment-304011943 - [x] No `TypeCode.DBNull`. There's a case for it in `FbParameter` (implementation of `DbParameter`). * This is available now in 2.0 - [x] Whole fun around enlisting transactions (not that I'd miss it it if it would be dropped for good ;)) aka the `IEnlistmentNotification` and around. * Sys.Transactions are available in netstandard2.0 with support for Local Transactions, and there is no distributed trasactions. - [x] `DbConnection` does not have `DbProviderFactory`. * This was added back in 2.0 - [x] `DbDataAdapter`, `DbCommandBuilder` and the whole fun around this. I personally don't think the `DbDataAdapter`, ... is needed. * The `DbDataAdapter`, `DbCommandBuilder` are now available in netstandard2.0 - [x] Some story for `|DataDirectory|` in connection strings. * Looking into the code for System.Data.Common, this is not supported. Issue tracking this is https://github.com/dotnet/corefx/issues/19492 - [x] Schema. 😃 Either strongly typed (#13544, #5024) not tightly coupled to what MS SQL (does not) offers or good old one based on `DataTable`s etc. * The `DbConnection.GetSchema(): DataTable` and `DbDataReader.GetSchemaTable() : DataTable` are in `System.Data.Common` in netstandard2.0 Related to #19970. _FirebirdClient_ sources are [here](https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient), if needed. +20310 area-Infrastructure Update CoreFx, Standard to preview2-25325-03, preview2-25325-01, respectively (release/2.0.0) +20311 area-System.Net SSLStream Issue in Docker "Hi, I'm getting some strange behaviour. I'm running my CoreCLR App in a docker container on recent docker on ubuntu16. using the dotnet/runtime:1.1 container, and nothing unusual in the setup. I have a rest endpoint that fires an email off. I hit it once, and it fails. I hit it again, and it succeeds. Here are the logs ``` root@u-dev-test-3:/home/chris# docker logs my-api -f Hosting environment: Production Content root path: /app Now listening on: https://*:4907 Application started. Press Ctrl+C to shut down. RevocationStatus - Unknown unable to get certificate CRL Exception caught whilst sending an email: System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure. at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at MailKit.Net.Smtp.SmtpClient.Connect(String host, Int32 port, SecureSocketOptions options, CancellationToken cancellationToken) at Services.System.CustomEmailService.Post(CustomEmailRequest req) in C:\code\app\api\Services\Customers\CustomEmailService.cs:line 393 Error getting recent file Connected to smtps://smtp.sendgrid.net:465/ S: 220 SG ESMTP service ready at ismtpd0004p1lon1.sendgrid.net C: EHLO [172.17.0.2] S: 250-smtp.sendgrid.net S: 250-8BITMIME S: 250-PIPELINING S: 250-SIZE 31457280 S: 250-AUTH PLAIN LOGIN S: 250 AUTH=PLAIN LOGIN C: AUTH PLAIN AGJsdWV6aW5jMzMzMzMzAGJsdTN6MW5j S: 235 Authentication successful C: MAIL FROM: C: RCPT TO: S: 250 Sender address accepted S: 250 Recipient address accepted C: DATA S: 354 Continue C: From: chris@not-real-address.com C: Date: Thu, 25 May 2017 13:49:22 +0000 C: Subject: C: Message-Id: C: To: chris@not-real-address.com C: MIME-Version: 1.0 C: Content-Type: text/html; charset=utf-8 C: Content-Id: <8TN8LMY6E1U4.B6BKSR2FKAG73@localhost.localdomain> C: C:

C: C: . S: 250 Ok: queued as IoQqdt0uRHSF591FrLzi9A C: QUIT S: 221 See you later ``` ```c# using (var client = new SmtpClient(new ProtocolLogger(Console.OpenStandardOutput()))) { client.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { if (sslPolicyErrors == SslPolicyErrors.None) return true; // if there are errors in the certificate chain, look at each error to determine the cause. if ((sslPolicyErrors & SslPolicyErrors.RemoteCertificateChainErrors) != 0) { if (chain != null && chain.ChainStatus != null) { foreach (var status in chain.ChainStatus) { Console.WriteLine(status.Status + "" - "" + status.StatusInformation); if (status.StatusInformation.Contains(""Unknown unable to get certificate CRL"")) { continue; } if ((certificate.Subject == certificate.Issuer) && (status.Status == X509ChainStatusFlags.UntrustedRoot)) { // self-signed certificates with an untrusted root are valid. continue; } else if (status.Status != X509ChainStatusFlags.NoError) { // if there are any other errors in the certificate chain, the certificate is invalid, // so the method returns false. return false; } } } // When processing reaches this line, the only errors in the certificate chain are // untrusted root errors for self-signed certificates. These certificates are valid // for default Exchange server installations, so return true. return true; } return false; }; client.AuthenticationMechanisms.Remove(""XOAUTH2""); client.Connect(appSettings.Get(""SMTP:Server"", """"), appSettings.Get(""SMTP:Port"", 25)); client.Authenticate(appSettings.Get(""SMTP:User"", """"), appSettings.Get(""SMTP:Password"", """")); client.Send(msg); client.Disconnect(true); return msg; } ``` I'm using smtp.sendgrid.net:465 in my config. I put a connection to the SmtpClient in my app startup, and the email works if I send fairly soon, but if I leave it idle for a while < 2 hours, then it fails again. Any advice on what might be the issue? " +20312 area-Infrastructure [release/2.0.0] Mark NETStandard.Library.NETFramework as trimmable This lets folks use the assembly level trimming from Microsoft.Packaging.Tools.Trimming to reduce the set of assemblies deployed with their application. Port of https://github.com/dotnet/corefx/pull/20271 Fixes https://github.com/dotnet/standard/issues/339 @weshaggard @Petermarcu +20313 area-System.Data System.Data.Common.DbParameter does not implement IDbDataParameter in an overridable way System.Data.Common.DbParameter does not implement IDbDataParameter in an overridable way. Effects: accessing a SqlParameter through the IDbDataParameter interface returns invalid Precision/Scale/Size properties. Example: ```c# var sql = new SqlParameter(); sql.Precision = 5; var idb = (IDbDataParameter)sql; Assert.AreEqual(sql.Precision, idb.Precision); // fails because IDbDataParameter.Precision is hard-coded to 0 ``` In https://github.com/dotnet/corefx/blob/master/src/System.Data.Common/src/System/Data/Common/DbParameter.cs: ```c# byte IDbDataParameter.Precision { get { return 0; } set { } } byte IDbDataParameter.Scale { get { return 0; } set { } } public virtual byte Precision { get { return ((IDbDataParameter)this).Precision; } set { ((IDbDataParameter)this).Precision = value; } } public virtual byte Scale { get { return ((IDbDataParameter)this).Scale; } set { ((IDbDataParameter)this).Scale = value; } } ``` In https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlParameter.cs: ```c# public override Byte Scale { get { return ScaleInternal; } set { ScaleInternal = value; } } ``` +20314 area-System.Security CoreFX does not support SHA512256 Powershell's `Get-FileHash` does not support `-Algorithm SHA512256` and I was directed to reopen this issue on CoreFX (see: https://github.com/PowerShell/PowerShell/issues/3860#issuecomment-303921498) +20315 area-System.Diagnostics NullReference Exception using'Microsoft-Diagnostics-DiagnosticSource' EventSource Attached repro. [NullRefRepo.zip](https://github.com/dotnet/corefx/files/1029702/NullRefRepo.zip) +20316 area-System.Diagnostics Fix for a null ref error using Microsoft-Diagnostics-DiagnosticSource EventSource Fixes issue #20306 +20317 area-Infrastructure Remove non-portable RIDs from netcoreapp package @ericstj @eerhardt @gkhanna79 PTAL +20318 area-System.Net Disable a bunch of HttpListener tests potentially causing hangs/failures in CI I've been unable to reliably repro hangs on Unix locally. As a stand-in, I'm running the managed HttpListener implementation on Windows. There must be enough differences in timing or client behavior or Socket behavior or whatever to trigger a multitude of hangs/asserts, even though this should work reliably. Since it's likely that some subset of these tests are the same ones failing in CI, I've temporarily disabled them all, in hopes of getting CI green reliably. We should aggressively investigate and get these running again; the underlying cause(s) is likely something in the product that would impact real scenarios. A large chunk of them have to do with chunked encoding, so there's very likely a product issue there; also with establishing web socket connections. https://github.com/dotnet/corefx/issues/20246 cc: @geoffkizer, @danmosemsft, @hughbe, @karelz +20319 area-System.Diagnostics Kill notepad in finally {} This may be the cause of a hang we saw in Helix. Also remove path from file in notepad title. This may not be robust enough, we'll see. +20320 area-System.Net Support Two-Key Triple DES (#20275) Direct port of https://github.com/dotnet/corefx/commit/1ce37dfb5a03e5decdb25ee67ef765f89424ceb1 Issue https://github.com/dotnet/corefx/issues/9966 (support 16-byte TripleDES keys for compat with desktop clr) +20321 area-Infrastructure Remove default PR triggers now instead rely on portable pipeline triggers @mmitche @danmosemsft For now the only default triggers coming from netci.groovy are Tizen, the vertical builds, netfx innerloop, and the AllConfigurations legs. +20322 area-Infrastructure Update configurations /cc @weshaggard Update project configurations. I deleted comments that were showing up in every project and getting moved around by the auto update. Note that a few networking tests had empty configurations removed. These were added incorrectly by https://github.com/dotnet/corefx/pull/20208. If you want unique configurations you need to put those in configurations.props. /cc @schen381 @CIPop +20323 area-System.Data SqlClient in .Net Core is missing SqlDataSourceEnumerator SqlClient doesn't have `SqlDataSourceEnumerator` implementation in .Net Core. This should also be exposed via SqlClientFactory +20324 area-System.Security Certificate store issues on OSX Create a self-signed certificate in memory like in: https://github.com/aspnet/DotNetTools/blob/dev/src/Microsoft.AspNetCore.CertificateGeneration.Task/CertificateManager.cs#L24 When you try to add the certificate to the store, the following exception is thrown: ``` Error Message: Interop+AppleCrypto+AppleCommonCryptoCryptographicException : User interaction is not allowed. ``` We've seen this happen intermittently, but when it happens on a machine, it reproduces consistently. +20325 area-System.Drawing Support Full System.Drawing Functionality on .NET Core "### Update: The following is the current plan. * [x] Port the .NET Framework implementation to .NET Core. **WIP, See #20593 .** * [x] Move mono's libgdiplus-based managed implementation from [mono](https://github.com/mono/mono/tree/master/mcs/class/System.Drawing) to corefx * [x] Ensure that there is a code-sharing story between mono and corefx. This likely means removing the source code from mono and importing code from the submodule link that already exists. **In progress. Mono has begun using some portions of the Windows implementation already.** * [x] Port mono's tests for System.Drawing, making any modifications necessary to ensure that they pass on the Windows implementation, which is our baseline for compatibility. **In progress** * [ ] Consolidate differences between the Windows and Unix versions of the library. Document all differences in behavior and mark test cases appropriately. -------------------------------- System.Drawing has been identified as one of the top most-used assemblies that are missing from .NET Core. Although there are 3rd-party alternatives that provide more modern versions of the same functionality ([ImageSharp](https://github.com/JimBobSquarePants/ImageSharp), [SkiaSharp](https://github.com/mono/SkiaSharp), etc.), we believe there is still value in providing a binary-compatible implementation of System.Drawing itself. This issue is intended to document and track the work items involved. There are still lots of open questions; feedback and suggestions are encouraged. ## Priorities: * Simplify migration from .NET Framework to .NET Core. We need to be binary compatible (no recompilation needed for existing assets), and we need to match the behavior as closely as possible. * Support System.Drawing where mono does, and facilitate code sharing between our implementations. As part of this, we will be open-sourcing the original Windows implementation from .NET Framework. This should allow us to improve mono's implementation where it diverges, and hopefully reduce the maintenance burden between us by consolidating code and effort. * **NON-GOALS**: We do not view this library as an opportunity for innovation, nor will we invest significant amounts of effort into optimizing or refactoring it. High performance, rich OS-specific functionality, and a redesigned, modern API are not areas we are interested in investing in as part of this effort. There are alternative libraries which target all of those issues and more. # Plan System.Drawing is, fundamentally, a very thin wrapper over the GDI+ component on Windows. Worse yet, it is not available for UWP applications, so support is limited strictly to Win32 applications. This makes cross-platform implementations difficult, and the largest chunk of work involved with this effort will be figuring out how we can support the library on all of our platforms, and maintaining compatibility between them. There are several existing implementations that we can leverage, but none will support all of our platforms by themselves. We may need several distinct backends in order to get full cross-platform support, although some options could avoid that. The below chart maps implementation approaches (rows) with platform applicability (columns): |Win32 | UWP | macOS | Linux / Others -----|--------|-------|---------|--------- .NET Framework Version (GDI+) | ✓ | X | X | X Direct2D/Win2D|✓|✓|X|X Mono/libgdiplus|✓|X|✓|✓ Xamarin/CoreGraphics|X|X|✓|X Managed|✓|✓|✓|✓ ### .NET Framework Version (GDI+) This is the existing implementation from the .NET Framework on Windows. It is a very thin wrapper around GDI+. * :heavy_check_mark: Baseline implementation. Well-tested, stable. * :x: Can only be used in non-UWP Windows apps (Win32). ### Direct2D/Win2D In order to get UWP support, we could implement a compatibility layer over Direct2D, or Win2D. * :heavy_check_mark: GPU acceleration * :x: Only buys us UWP support over the existing .NET Framework implementation. * :x: High implementation cost * Can be shared between Win32 and UWP applications (Windows 8+ only). ### Mono/libgdiplus This is the implementation used in mono. It uses a complicated native shim called ""libgdiplus"", which relies on a large set of native binaries. * :heavy_check_mark: libgdiplus is available in a large number of package managers across the Unix ecosystem already. This means we can treat the dependency the same way we do the other native dependencies for .NET Core. * :x: Native code adds a lot of complexity for new devs. ### Xamarin/CoreGraphics This is a specialized implementation used by Xamarin, in support of macOS and iOS. Unlike the ""libgdiplus"" mono version, it only uses CoreGraphics (a system component). * :heavy_check_mark: No extra native dependencies; only uses system libraries. * :x: macOS-specific. Could be used for iOS (not supported by .NET Core yet). ### Managed (ImageSharp or custom) One option is to implement the library in managed code. We can call into an existing library, like ImageSharp, for image-processing and graphics functionality. This is very desirable for a lot of reasons, but it does have a higher implementation cost. * :heavy_check_mark: Can be used everywhere. * :heavy_check_mark: Can achieve uniform behavior everywhere (at the expense of conformity with .NET Framework). * :heavy_check_mark: Lower maintenance costs in the long-term. * :x: High implementation cost. ## Windows-Specific One option is to treat the library as a Windows-specific component, similar to Registry. Attempting to install and load the library on other platforms would throw PlatformNotSupportedException's, as Registry does. ## Tests We do not have a very good existing test suite in the .NET Framework. The library is mainly covered indirectly, through other components like WinForms. Mono has a good set of conformance tests for their implementation, which we should be able to re-use. Where appropriate, we should also consider test cases which directly compare output from the .NET Framework implementation and other implementations (assuming we choose to support such things). ## Location An open question is where this library should live. If we take third-party dependencies to support some platforms, we may not want this code to live in corefx. ## Printing Functionality One thing skimmed over above is the fact that System.Drawing exposes a lot of functionality for printing images and documents. This poses a different problem from image-processing and graphics, which can be implemented portably. We may decide to exclude all printing-related portions of the library. ## Future investments Once the library is supported on all platforms, we will accept small, targeted improvements to the library, keeping in mind that legacy compatibility is the only important metric for the library. We will not want to merge any code that refactors, optimizes, or augments the Windows version until we have a fully-working cross-platform implementation. This matches our strategy with other compatibility libraries, like System.IO.SerialPort. @marek-safar @jimbobsquarepants @ViktorHofer @qmfrederik @karelz " +20326 area-Infrastructure How to develop in corefx for UWP Opening on behalf of @CIPop from https://github.com/dotnet/corefx/pull/20322#issuecomment-304102737 >@ericstj @weshaggard /cc @karelz @DavidGoll Could you please help with the following: >1. How to get Visual Studio debugging to work for UWP. >2. How to get Visual Studio build to work correctly for UWP. >3. How to test UWP APIs that are not part of netstandard20 (e.g. APIs that exist in .Net 4.7 / netcoreapp such as TLS Alerts or TLS SystemDefault version). +20327 area-Infrastructure Make portable builds the default and remove non-portable official builds @gkhanna79 @MattGal @ericstj PTAL This should flip corefx to have Portable builds by default and removes all the non-portable build legs in official builds. +20328 area-System.Net Fix some of System.Net.HttpListener test failures on ILC Fixes failures due to ParamName being null on Uap cc: @davidsh @tijoytom +20329 area-Serialization Add tests for DCS Serializing System Types #19119 made changes to many System types and changed they way they're serialized. We'd like to check whether we have tests covering DCS serializing those types. If not, we should add new tests. Here's the list of the types. https://github.com/dotnet/corefx/pull/20247 added tests for BinaryFormatter serializing the types. - [ ] System.Boolean - [ ] System.Byte - [ ] System.Char - [ ] System.Collections.Generic.LongEnumEqualityComparer`1[[System.Runtime.Serialization.Formatters.Tests.UInt64Enum]] - [ ] System.Collections.Generic.EnumEqualityComparer`1[[System.Runtime.Serialization.Formatters.Tests.UInt32Enum]] - [ ] System.Collections.Generic.SByteEnumEqualityComparer`1[[System.Runtime.Serialization.Formatters.Tests.SByteEnum]] - [ ] System.Collections.Generic.ShortEnumEqualityComparer`1[[System.Runtime.Serialization.Formatters.Tests.Int16Enum]] - [ ] System.Collections.Generic.SortedList`2[[System.Int32],[System.Runtime.Serialization.Formatters.Tests.Point]] - [ ] System.Collections.ObjectModel.ObservableCollection`1[[System.Int32]] // The implementations between core and netfx are completely different. I don't think serialization works here without a custom serialization routine - [ ] System.Collections.ObjectModel.ReadOnlyDictionary`2[[System.Int32],[System.String]] - [ ] System.Collections.ObjectModel.ReadOnlyObservableCollection`1[[System.Int32]] - [ ] System.Collections.Specialized.ListDictionary - [ ] System.Collections.Specialized.StringCollection - [ ] System.ComponentModel.BindingList`1[[System.Runtime.Serialization.Formatters.Tests.Point]] - [ ] System.Data.SqlTypes.SqlBoolean - [ ] System.Data.SqlTypes.SqlByte - [ ] System.Data.SqlTypes.SqlDateTime - [ ] System.Data.SqlTypes.SqlDouble - [ ] System.Data.SqlTypes.SqlInt16 - [ ] System.Data.SqlTypes.SqlInt32 - [ ] System.Data.SqlTypes.SqlInt64 - [ ] System.Data.SqlTypes.SqlString - [ ] System.Double - [ ] System.Drawing.Point - [ ] System.Drawing.PointF - [ ] System.Drawing.Rectangle - [ ] System.Drawing.RectangleF - [ ] System.Drawing.Size - [ ] System.Drawing.SizeF - [ ] System.Globalization.CompareInfo - [ ] System.Globalization.SortVersion - [ ] System.Int16 - [ ] System.Int32 - [ ] System.Int64 - [ ] System.Lazy`1[[System.Int32]] - [ ] System.Net.Cookie - [ ] System.Net.CookieCollection // I expect issues here as netfx and core are using different types in serialized fields - [ ] System.Net.CookieContainer - [ ] System.SByte - [ ] System.Single - [ ] System.UInt16 - [ ] System.UInt32 - [ ] System.UInt64 +20330 area-System.Data Fixing System.Data.SqlClient.ManualTesting tests and System.Data.SqlClient.Stress tests for uapaot cc: @weshaggard @danmosemsft @tijoytom Fixing all 3 System.Data.SqlClient.* tests projects that where failing to produce testresults.xml due to missing sni.dll in the test folder. +20331 area-System.Diagnostics How to use EventCounters? The lack of Performance Counters in .NET Core is blocking me to use ASP.NET Core for Enterprise applications. I found many issues telling us to use EventCounters, but I couldn't find docs or even code in the repository using it. There is any docs? Anyway, ETW events doesn't replace Performance Counters, I use it to monitor Req/sec and I can't see how to do it easily with ETW, or ask the support team to monitor or collect it. Would be nice to have a Windows only implementation. Thanks +20332 area-System.Net AppCompat: converting two HWR properties to no-op. Fixes #20043 +20333 area-Infrastructure Update buildtools and extensions and do tests cleanup for new attributes behavior This updates Xunit.NetCore.Extensions to have the new behavior of SkipOnTargetAttribute and ActiveIssueAttribute. Updates buildtools to consume the version that fix an issue where -notrait category=nonosgrouptests was added duplicated to RunTests.cmd in tests.targets Also this is an initial cleanup to use the new behaviors of the Attributes. Will open more PRs to do this cleanup but I wanted to split it in different PRs to make it easier to review. cc: @danmosemsft @tijoytom @weshaggard FYI: @hughbe @davidsh @CIPop you can now use ActiveIssue for test classes. I'm preparing a new doc for the test attributes. Will push it later when I'm done and I'll point it to you. +20334 area-System.Diagnostics Add Regression test for Microsoft-Diagnostics-DiagnosticSource EventSource issue Issue #20315 exposed the fact that we don't test the Microsoft-Diagnostics-DiagnosticSource at process startup, which is a likely customer scenario (Thus the source is on at process start). I started to try to add a test to the System.Diagnostics.DiagnosticSource project, but it is not easy because there is no easy way to turn on the EventSource from outside the process (you need to be set up to turn it on using ETW). This gets ugly because ETW is windows-specific. It occurs to me that the EventSource testing ALREADY set up to do this (use ETW to control the logging from outside the process). Thus my proposal is to add some Microsoft-Diagnostics-DiagnosticSource testing (most specifically having this source turned on before process start) added to the EventSource testing. There was an issue with this (as EventSource is part of CoreCLR not CoreFX), so I would like Brian to weigh in before proceeding. @brianrob @lmolkova +20335 area-Infrastructure Update CoreClr to preview2-25326-01 (release/2.0.0) +20336 area-System.Diagnostics Fix link in docs User reported to me that a link did not work. Fixed it. +20337 area-System.Diagnostics Fix for a null ref error using Microsoft-Diagnostics-DiagnosticSource EventSource (release/2.0.0) This merges PR #20316 into the 2.0 branch. Fixes #20306 +20338 area-Infrastructure [ActiveIssue(nnn, TestPlatforms.Windows, TargetFrameworkMonikers.Netcoreapp)] will run the test on Windows "I've added the ActiveIssue to a test then ran: `msbuild /t:rebuild,test /p:Outerloop=true ""/p:XunitOptions=-class System.Net.Tests.HttpListenerAuthenticationTest` The test is still executed. " +20339 area-System.Data Added cleanup for cached async state in SqlCommand's EndExecute metho… …ds before they throw exceptions. Without this cleanup, a subsequent command execution will fail since it will appear as though other async commands are still pending. When running SqlClient's TVP tests with Managed SNI enabled, exceptions were getting thrown earlier during async execution than with Native SNI, which surfaced this bug. The SqlCommand would throw an exception without resetting the async state, causing subsequent commands to fail due to pending async operations. This async state cleanup matches the other exception cleanup behavior elsewhere in SqlCommand. Fixes in master #20340 +20340 area-System.Data Command execution fails in SqlClient TvpTest due to pending async operations after cancellation When running the SqlClient TVPTests with Managed SNI enabled, command execution fails due to pending async operations in SqlCommand after cancelling a previous command. This is due to SqlCommand not cleaning up its cached async state before throwing the exception for the command cancellation, causing subsequent command executions to fail since it looks like other async commands are still pending. +20341 area-System.Net Fixing null-ref in HttpListener's IOCP implementation. Fixing test platform detection, stabilizing NetFX tests and renaming tests to fit the naming convention. Contributes to #20096 +20342 area-System.Runtime Nullable.IsNullOrDefault "``` csharp public static class Nullable { public static bool IsNullOrDefault(this T? box, T defaultValue = default(T)) where T : struct { return !box.HasValue || Equals(box.value, defaultValue); } } ``` We already have string.IsNullOrEmpty, how about like this ``` csharp public void Func(Guid? id) { if(id.IsNullOrDefault()) { throw new ArgumentNullException(nameof(id), ""your input is null or empty.""); } // do something... } ``` and like this ``` csharp public void Func(int? value) { // define a border value means it's not a enable value. if(value.IsNullOrDefault(int.MinValue)) { throw new ArgumentOutOfRangeException(nameof(id), ""your input is null or unable.""); } // do something... } ```" +20343 area-Infrastructure Update xUnit Performance API with a bug fix that enables Linux runs. +20344 area-System.Diagnostics Port to fix test hang (#20319) Port change to better match notepad title and kill it if assert fails. Address test hang. Porting PR #20319 into rel/2.0.0 +20345 area-System.Reflection Add metdata API to get module custom attributes ### Rationale System.Reflection.Metadata offers convenience methods to access custom attributes on most of the record types that correspond to `HasCustomAttribute` token types in the ECMA-335 spec. Notable omission is the `ModuleDefinition` record. ### Proposed API ```csharp namespace System.Reflection.Metadata { public struct ModuleDefinition { public CustomAttributeHandleCollection GetCustomAttributes(); } } ``` ### Other thoughts This can be worked around with `MetadataReader.GetCustomAttributes(System.Reflection.Metadata.Ecma335.MetadataTokens.EntityHandle(0x1))`, but it's rather awkward. +20346 area-System.Net fix HttpListener chunked encoding handling Partial fix for #20246 (1) CompletedSynchronously logic in HttpStreamAsyncResult is bogus. Just always return false since we are never actually completing synchronously. (2) Handling of nread == 0 in ChunkedInputStream is bogus. We need to test nread == 0 on the result of the underlying read, not on the result after processing the chunk data -- for which nread == 0 is perfectly valid. (3) There's some weird logic in ChunkStream around handling offset/size that smells bad but doesn't actually seem to matter in practice as used; add a comment and assert and a test, and remove some related dead code (4) Re-enable some tests @stephentoub @danmosemsft +20347 area-System.Runtime "Test: System.Tests.EnvironmentTests/CurrentDirectory_SetToValidOtherDirectory failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Tests.EnvironmentTests/CurrentDirectory_SetToValidOtherDirectory` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -532462766 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.Tests.EnvironmentTests.CurrentDirectory_SetToValidOtherDirectory() Build : Master - 20170526.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170526.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.EnvironmentTests~2FCurrentDirectory_SetToValidOtherDirectory +20348 area-System.Runtime "Test: System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests/Roundtrip_CrossProcess failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests/Roundtrip_CrossProcess(obj: Tree`1 { Left = Tree`1 { Left = Tree`1 { ... }, Right = Tree`1 { ... }, Value = 2 }, Right = Tree...` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -532462766 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.Roundtrip_CrossProcess(Object obj) Build : Master - 20170526.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170526.01/workItem/System.Runtime.Serialization.Formatters.Tests/analysis/xunit/System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests~2FRoundtrip_CrossProcess(obj:%20Tree%601%20%7B%20Left%20=%20Tree%601%20%7B%20Left%20=%20Tree%601%20%7B%20...%20%7D,%20Right%20=%20Tree%601%20%7B%20...%20%7D,%20Value%20=%202%20%7D,%20Right%20=%20Tree... +20349 area-System.Runtime "Test: System.Tests.ExceptionTests/Exception_TargetSite_Aot failed with ""Xunit.Sdk.NullException""" Opened on behalf of @Jiayili1 The test `System.Tests.ExceptionTests/Exception_TargetSite_Aot` has failed. Assert.Null() Failure\r Expected: (null)\r Actual: Void Exception_TargetSite_Aot() Stack Trace: at System.Tests.ExceptionTests.Exception_TargetSite_Aot() Build : Master - 20170526.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170526.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.ExceptionTests~2FException_TargetSite_Aot +20351 area-System.Runtime "Tests under: System.Tests.TypeTestsExtended failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Tests.TypeTestsExtended/GetTypeByName` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -532462766 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.Tests.TypeTestsExtended.GetTypeByName() Build : Master - 20170526.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170526.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.TypeTestsExtended~2FGetTypeByName +20352 area-System.Security "Tests under: System.Security.AccessControl.Tests.FileSystemAccessRule_Tests failed with ""System.ArgumentNullException""" "Opened on behalf of @Jiayili1 The test `System.Security.AccessControl.Tests.FileSystemAccessRule_Tests/AccessRule_Constructor(sid: \""S-1-5-32-544\"", accessMask: 1, isInherited: True, inheritanceFlags: 1, propagationFlags: 0, accessC...` has failed. System.ArgumentNullException : Value cannot be null.\r Parameter name: identity Stack Trace: at System.Security.AccessControl.AuthorizationRule..ctor(IdentityReference identity, Int32 accessMask, Boolean isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags) at System.Security.AccessControl.AccessRule..ctor(IdentityReference identity, Int32 accessMask, Boolean isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type) at System.Security.AccessControl.FileSystemAccessRule..ctor(IdentityReference identity, FileSystemRights fileSystemRights, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType type) at System.Security.AccessControl.Tests.FileSystemAccessRule_Tests.Constructor(IdentityReference identityReference, Int32 accessMask, Boolean isInherited, InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags, AccessControlType accessControlType) at System.Security.AccessControl.Tests.AccessRule_Tests.AccessRule_Constructor(String sid, Int32 accessMask, Boolean isInherited, Int32 inheritanceFlags, Int32 propagationFlags, Int32 accessControlType) Build : Master - 20170526.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170526.01/workItem/System.Security.AccessControl.Tests/analysis/xunit/System.Security.AccessControl.Tests.FileSystemAccessRule_Tests~2FAccessRule_Constructor(sid:%20%5C%22S-1-5-32-544%5C%22,%20accessMask:%201,%20isInherited:%20True,%20inheritanceFlags:%201,%20propagationFlags:%200,%20accessC..." +20353 area-System.Threading Test failure: System.Threading.Tasks.Dataflow.Tests.EtwTests/TestEtw Opened on behalf of @Jiayili1 The test `System.Threading.Tasks.Dataflow.Tests.EtwTests/TestEtw` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -532462766 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.Threading.Tasks.Dataflow.Tests.EtwTests.TestEtw() Build : Master - 20170526.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170526.01/workItem/System.Threading.Tasks.Dataflow.Tests/analysis/xunit/System.Threading.Tasks.Dataflow.Tests.EtwTests~2FTestEtw +20356 area-Infrastructure .NET Core Solution design having issues with reference to old version libraries I am in process of designing a basic application, where I would need to utilize my exiting .net libraries which I have written using `Framework 4.5` I am trying to design following structure: -CODE - doamin.csproj built on .NET 45 framework.(Portable Library Class) -Business.csproj - TargetFramework - netstandard1.1 - ProjectReference - domain.csproj - WebApi.csproj -TargetFramework - netcoreapp1.1 - ProjectReference - Business.csproj -TEST - Business.Tests.csproj - TargetFramework - netstandard1.1 - ProjectReference - domain.csproj - ProjectReference - Business.csproj - WebAPI.Tests.csproj -TargetFramework - netcoreapp1.1 - ProjectReference - Business.csproj - ProjectReference - WebApi.csproj Understanding: 1. **`Business.csproj`** is targeting framework `netstandard1.4`, as both `.NET Framework (4.5.x)` & `.NET Core` implements `netstandard1.4` 2. **`WebApi.csproj`** is targeting framework `netcoreapp1.1` as it is need for ASP.NET Core features & referencing project **`Business.csproj`** built on `netstandard1.4` Now when try to restore packages - I am getting following errors: >One or more packages are incompatible with .NETCoreApp,Version=v1.1. >Package Microsoft.Composition 1.0.27 is not compatible with netcoreapp1.1 (.NETCoreApp,Version=v1.1). Package Microsoft.Composition 1.0.27 supports: portable-net45+win8+wp8+wpa81 (.NETPortable,Version=v0.0,Profile=Profile259) Error One or more packages are incompatible with .NETCoreApp,Version=v1.1. +20357 area-Infrastructure Fix missing quote in trimming item Missed this during initial commit but caught during testing when merging to release. /cc @weshaggard +20358 area-System.Net Need to add test for ClientWebSocketOptions.SetBuffer() desktop implementation In ClientWebSocketOptions.SetBuffer(), we have validations for parameters passed in. .Net Core has this implementation: https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/ClientWebSocketOptions.cs#L168 While .Net Framework's implementation is different: https://github.com/Microsoft/referencesource/blob/master/System/net/System/Net/WebSockets/WebSocketHelpers.cs#L471 Which causes failure for ClientWebSocketOptionsTests: https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/tests/ClientWebSocketOptionsTests.cs#L37 Need to test desktop separately. +20359 area-Serialization Area-Serialization Sprint 119 The issue is for tracking issues to be done in sprint 119 (due by 6/16/2017) +20360 area-System.Net Different error message when ClientWebSocket tries to connect to a non websocket server in desktop When ClientWebSocket tries to connect to a non websocket server, we will get a WebSocketException. But the error message is different in desktop. Which causes failure for this assert: https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/tests/ConnectTest.cs#L32 In framework, status 101 is the first case to throw, and has error message (The server returned status code '{0}' when status code '101' was expected): https://github.com/Microsoft/referencesource/blob/master/System/net/System/Net/WebSockets/ClientWebSocket.cs#L265 In core, status 101 is the third case to throw, and has error message (Unable to connect to the remote server): https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Managed.cs#L325 Need to change implementations on all platforms, and make sure that no other tests are failing because of the change. +20361 area-Serialization Update Tests for Exception Serialization https://github.com/dotnet/corefx/issues/19119 removed [Serializable] from most Exceptions except `Exception` and `AggregateException` and made those exceptions' `GetObjectData()` throw. We should update our existing tests to accommodate the change and add tests for custom Exception. +20362 area-System.Net WebSocket state difference when waiting for Close In .Net Core: The WebSocket is only supposed to transition to Closed when the connection is closed, e.g. as part of CloseAsync after a close frame has been both sent and received. But in .Net Framework, if WebSocket is in CloseSent/CloseReceived state and receive/send a close packet, it will immediately transit into Close state (don't wait for CloseAsync). Causes test failure here: https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/tests/CloseTest.cs#L285 +20363 area-Infrastructure Remove NuGet metadata This metadata is read by SDK targets and can trip them up since these packages don't appear in the deps file. Fixes #20364 /cc @eerhardt @weshaggard +20364 area-Infrastructure NETStandard.Library.NETFramework references don't work well with PreserveCompilationContext Using this in a desktop NETCore.SDK project and setting PreserveCompilationContext is failing to preserve the right information. Ensure we make this work correctly. +20365 area-System.Threading OverlappedData.GetOverlappedFromNative throws PNI on uapaot which causes two tests to crash areaowners: @kouvel @alexperovich @AtsushiKan Two System.Threading.Overlapped tests (OverlappedTests.PackPosTest & OverlappedTests.PackPosTest1) where using a completion callback that would eventually call `OverlappedData.GetOverlappedFromNative` method, which today throws `NotImplementedException` on uapaot. This was causing a crash during the test execution, so for the time being I will disable those two. This issue is to track the work of enabling them once that method is implemented for this platform. +20368 area-System.IO System.IO.Tests.FileStream_ctor_sfh_fa_buffer_async.InvalidBufferSizeThrows can fail with ODE I can't see why this should fail, it's in a `using`. @ianhays ? Note this is desktop impl ``` System.IO.Tests.FileStream_ctor_sfh_fa_buffer_async.InvalidBufferSizeThrows [FAIL] 10:47:06 Assert.Throws() Failure 10:47:06 Expected: typeof(System.ArgumentOutOfRangeException) 10:47:06 Actual: typeof(System.ObjectDisposedException): Cannot access a closed file. 10:47:06 Stack Trace: 10:47:06 at System.IO.__Error.FileNotOpen() 10:47:06 at System.IO.FileStream.Flush(Boolean flushToDisk) 10:47:06 at System.IO.FileStream.get_SafeFileHandle() 10:47:06 D:\j\workspace\netfx_windows---50c21bdb\src\System.IO.FileSystem\tests\FileStream\ctor_sfh_fa_buffer.cs(30,0): at System.IO.Tests.FileStream_ctor_sfh_fa_buffer.<>c__DisplayClass2_0.b__1() ``` +20372 area-System.Net Stop disposing previous managed HttpListener connection on accept failure The managed implementation of HttpListener launches an asynchronous accept loop: each accept spawns the next async accept. If an async accept fails, for some reason the current code is actually closing the previously accepted connection, which doesn't make sense. Stop doing that. This is the primary cause of the AcceptWebSocket test failures in #20246, but I'm not yet re-enabling those tests as I'm still hitting a similar failure once every 10 or so runs locally when testing the managed listener on Windows (prior to this fix I hit it basically every run). cc: @geoffkizer, @mellinoe +20373 area-System.Data Added cleanup for cached async state in SqlCommand's EndExecute methods before they throw exceptions. Without this cleanup, a subsequent command execution will fail since it will appear as though other async commands are still pending. (#20339) Porting this change to 2.0.0 Fixes #20340 +20374 area-System.Net Fixing initialization issue for IOCP handle. Contributes to #20096. Testing was manually performed. The change was minimized to simplify a 2.0 port. +20375 area-System.Net 2.0 Port: Fixing initialization issue for IOCP handle. Backport of #20374 Contributes to #20096 +20376 area-System.Net Fix some System.Net.WebSockets.Client.Tests failures Contributes to: #19967 +20378 area-System.Runtime Add a StringSegment type ASP.NET Core has a type called [StringSegment](https://github.com/aspnet/Common/blob/7c7031f145413221be316719683edb0bf1b9bf40/src/Microsoft.Extensions.Primitives/StringSegment.cs). It allows substring operations on string to not allocate but return segments using offset and length. It's the spiritual equivalent of `ArraySegment` for string. Note that `Span` will also allow slicing, but spans have different type system constraints that not all consumers can -- or want to -- opt into. ### Proposed API Shape Starting point is the existing API shape from ASP.NET. We should, however, diff it against the latest surface of `string`. ```C# namespace System.Text { public struct StringSegment : IEquatable, IEquatable { public static readonly StringSegment Empty; public StringSegment(string buffer); public StringSegment(string buffer, int offset, int length); public string Buffer { get; } public int Offset { get; } public int Length { get; } public string Value { get; } public bool HasValue { get; } public char this[int index] { get; } public override bool Equals(object obj); public bool Equals(StringSegment other); public bool Equals(StringSegment other, StringComparison comparisonType); public static bool Equals(StringSegment a, StringSegment b, StringComparison comparisonType); public bool Equals(string text); public bool Equals(string text, StringComparison comparisonType); public override int GetHashCode(); public static bool operator ==(StringSegment left, StringSegment right); public static bool operator !=(StringSegment left, StringSegment right); public static implicit operator StringSegment(string value); public bool StartsWith(string text, StringComparison comparisonType); public bool EndsWith(string text, StringComparison comparisonType); public string Substring(int offset); public string Substring(int offset, int length); public StringSegment Subsegment(int offset); public StringSegment Subsegment(int offset, int length); public int IndexOf(char c, int start, int count); public int IndexOf(char c, int start); public int IndexOf(char c); public int IndexOfAny(char[] anyOf, int startIndex, int count); public int IndexOfAny(char[] anyOf, int startIndex); public int IndexOfAny(char[] anyOf); public int LastIndexOf(char value); public StringSegment Trim(); public StringSegment TrimStart(); public StringSegment TrimEnd(); public StringTokenizer Split(char[] chars); public static bool IsNullOrEmpty(StringSegment value); public override string ToString(); } } ``` ### Other APIs In order to make the API useful, we could also define methods on `String` that allow returning segments, e.g. ```C# namespace String { public partial class String { public StringSegment SubSegment(int startIndex) // or Subsegment public StringSegment SubSegment(int startIndex, int length) } } ``` +20381 area-System.Net 2.0 Port: AppCompat: converting two HWR properties to no-op. Port of #20332 Tracking bug: #20043 +20383 area-System.Net 2.0 Port: AppCompat: converting two HWR properties to no-op. Port of #20332 Tracking bug: #20043 +20386 area-Meta Could not find file 'C:\Program Files\dotnet\sdk\1.0.4\minimumMSBuildVersion' "In the latest d15prerel (26526.3001) I'm getting the below error when trying to build any .net Core project. The logs are the same for both C# and VB. The folder exists, but as the logs say, the file is missing. ``` 1>------ Build started: Project: ConsoleApp3, Configuration: Debug Any CPU ------ 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: The build stopped unexpectedly because of an internal failure. 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: System.IO.FileNotFoundException: Could not find file 'C:\Program Files\dotnet\sdk\1.0.4\minimumMSBuildVersion'. 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: File name: 'C:\Program Files\dotnet\sdk\1.0.4\minimumMSBuildVersion' 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.StreamReader..ctor(String path, Encoding encoding) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.File.InternalReadAllLines(String path, Encoding encoding) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.File.ReadAllLines(String path) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at Microsoft.DotNet.MSBuildSdkResolver.DotNetMSBuildSdkResolver.Resolve(SdkReference sdkReference, SdkResolverContext context, SdkResultFactory factory) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at Microsoft.Build.BackEnd.SdkResolution.GetSdkPath(SdkReference sdk, ILoggingService logger, BuildEventContext buildEventContext, ElementLocation sdkReferenceLocation, String solutionPath, String projectPath) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: The build stopped unexpectedly because of an internal failure. 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: System.IO.FileNotFoundException: Could not find file 'C:\Program Files\dotnet\sdk\1.0.4\minimumMSBuildVersion'. 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: File name: 'C:\Program Files\dotnet\sdk\1.0.4\minimumMSBuildVersion' 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.StreamReader..ctor(String path, Encoding encoding) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.File.InternalReadAllLines(String path, Encoding encoding) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at System.IO.File.ReadAllLines(String path) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at Microsoft.DotNet.MSBuildSdkResolver.DotNetMSBuildSdkResolver.Resolve(SdkReference sdkReference, SdkResolverContext context, SdkResultFactory factory) 1>C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\ConsoleApp3.vbproj : error MSB4014: at Microsoft.Build.BackEnd.SdkResolution.GetSdkPath(SdkReference sdk, ILoggingService logger, BuildEventContext buildEventContext, ElementLocation sdkReferenceLocation, String solutionPath, String projectPath) 1>vbc : warning BC40057: Namespace or type specified in the project-level Imports 'System.Data' doesn't contain any public member or cannot be found. Make sure the namespace or the type is defined and contains at least one public member. Make sure the imported element name doesn't use any aliases. 1>ConsoleApp3 -> C:\Users\v-sccarl\Source\Repos\ConsoleApp3\ConsoleApp3\bin\Debug\netcoreapp1.1\ConsoleApp3.dll 1>Done building project ""ConsoleApp3.vbproj"". ========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ========== ```" +20387 area-System.Runtime Split off ExitCode_VoidMainAppReturnsSetValue for ILC runs. System.Runtime.Extensions.Tests.dll -method System.Tests.Environment_Exit.ExitCode_VoidMainAppReturnsSetValue fails on ILC because it needs to launch a child process using a test assembly and the build pipeline won't run ILC on that test assembly or copy it to the output directory. This test cannot use RemoteExecutor because it's testing ExitCode and needs to know that it is the true main method. If we want to test this scenario for ILC, it should best be done in a standalone test (probably living in CoreRT) that doesn't sit on top of all this xunit stuff. It's not that we can't hack the build pipeline again to accommodate this, it's more that people (like me) investigating test failures on ILC will not appreciate having yet another 3-5 minutes added to the build time of this project because of one single test. +20388 area-System.Diagnostics Desktop: System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_TextFile_ShellExecute fails occasionally on NETFX Failed test: System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_TextFile_ShellExecute (from System.Diagnostics.Process.Tests) Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/67/testReport/System.Diagnostics.Tests/ProcessStartInfoTests/StartInfo_TextFile_ShellExecute/ Configuration: outerloop_netfx_windows_nt_debug MESSAGE: ~~~ System.NullReferenceException : Object reference not set to an instance of an object. ~~~ STACK TRACE: ~~~ at System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_TextFile_ShellExecute() in D:\j\workspace\outerloop_net---903ddde6\src\System.Diagnostics.Process\tests\ProcessStartInfoTests.cs:line 1013 ~~~ +20389 area-System.Net [Porting][HttpListener] HttpListenerContext.AcceptWebSocketContextAsync throws PNSE for authentication "The following test passes on desktop, but fails with netcoreapp: ```c# [ConditionalFact(nameof(IsNotWindows7OrUapCore))] [ActiveIssue(123, TargetFrameworkMonikers.Netcoreapp)] public async Task AcceptWebSocketAsync_AuthorizationInHeaders_ThrowsNotImplementedException() { Socket.Options.SetRequestHeader(""Authorization"", ""Basic "" + Convert.ToBase64String(Encoding.ASCII.GetBytes(""user:password""))); Factory.GetListener().AuthenticationSchemes = AuthenticationSchemes.Basic; HttpListenerContext context = await GetWebSocketContext(); Assert.Equal(""user"", context.User.Identity.Name); HttpListenerWebSocketContext webSocketContext = await context.AcceptWebSocketAsync(null); IPrincipal user = webSocketContext.User; // Should be copied as User gets disposed when HttpListenerContext is closed. Assert.NotSame(context.User, webSocketContext.User); Assert.Equal(""user"", webSocketContext.User.Identity.Name); Assert.Equal(""Basic"", webSocketContext.User.Identity.AuthenticationType); } ``` A NotImplementedException is also thrown for NTLM/Negotiate/Digest authentication but I can't submit tests for this as these authentication schemes are completely broken (they throw an NRE or hang)" +20390 area-System.Net "Test: System.Net.Http.Functional.Tests.DiagnosticsTest/SendAsync_ExpectedDiagnosticCancelledActivityLogging failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.DiagnosticsTest/SendAsync_ExpectedDiagnosticCancelledActivityLogging` has failed. Assert.Equal() Failure Expected: 42 Actual: 134 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /root/corefx/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs:line 208 Build : 2.0.0 - 20170527.02 (Portable Core Tests) Failing configurations: - Centos.73.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170527.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.DiagnosticsTest~2FSendAsync_ExpectedDiagnosticCancelledActivityLogging +20391 area-System.Net [HttpListener] [Porting] All calls to HttpListenerWebSocketContext.WebSocket.Receive fail with ArgumentNullException "Following test code passes with netfx, fails with an ArgumentNullException in netcoreapp: ```cs // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System.Net.WebSockets; using System.Text; using System.Threading; using System.Threading.Tasks; using Xunit; namespace System.Net.Tests { public class HttpListenerWebSocketStreamTests : IDisposable { public static bool IsNotWindows7OrUapCore { get; } = !PlatformDetection.IsWindows7 && PlatformDetection.IsNotOneCoreUAP; private HttpListenerFactory Factory { get; } private HttpListener Listener { get; } private ClientWebSocket Client { get; } private Task ClientConnectTask { get; set; } public HttpListenerWebSocketStreamTests() { Factory = new HttpListenerFactory(); Listener = Factory.GetListener(); Client = new ClientWebSocket(); } public void Dispose() { Factory.Dispose(); Client.Dispose(); if (ClientConnectTask?.IsCompleted == true) { ClientConnectTask?.Dispose(); } } [ConditionalFact(nameof(IsNotWindows7OrUapCore))] public async Task ReceiveAsync_ReadWholeBuffer_Success() { HttpListenerWebSocketContext context = await GetWebSocketContext(); await ClientConnectTask; const string Text = ""Hello Web Socket""; byte[] sentBytes = Encoding.ASCII.GetBytes(Text); await Client.SendAsync(new ArraySegment(sentBytes), WebSocketMessageType.Text, false, new CancellationToken()); byte[] receivedBytes = new byte[sentBytes.Length]; WebSocketReceiveResult result = await context.WebSocket.ReceiveAsync(new ArraySegment(receivedBytes), new CancellationToken()); Assert.Equal(WebSocketMessageType.Text, result.MessageType); Assert.False(result.EndOfMessage); Assert.Null(result.CloseStatus); Assert.Null(result.CloseStatusDescription); Assert.Equal(Text, Encoding.ASCII.GetString(receivedBytes)); } [ConditionalFact(nameof(IsNotWindows7OrUapCore))] public async Task ReceiveAsync_EmptyInnerBuffer_ThrowsArgumentNullException() { HttpListenerWebSocketContext context = await GetWebSocketContext(); await Assert.ThrowsAsync(""buffer.Array"", () => context.WebSocket.ReceiveAsync(new ArraySegment(), new CancellationToken())); } private async Task GetWebSocketContext(string[] subProtocols = null) { if (subProtocols != null) { foreach (string subProtocol in subProtocols) { Client.Options.AddSubProtocol(subProtocol); } } var uriBuilder = new UriBuilder(Factory.ListeningUrl) { Scheme = ""ws"" }; Task serverContextTask = Factory.GetListener().GetContextAsync(); ClientConnectTask = Client.ConnectAsync(uriBuilder.Uri, CancellationToken.None); if (ClientConnectTask == await Task.WhenAny(serverContextTask, ClientConnectTask)) { await ClientConnectTask; Assert.True(false, ""Client should not have completed prior to server sending response""); } HttpListenerContext context = await serverContextTask; return await context.AcceptWebSocketAsync(null); } } } ```" +20392 area-System.Net [HttpListener][Porting] HttpListenerContext.WebSocket.CloseOutputAsync(status, null, cancellationToken) has different behaviour for core and netfx Netfx: null Netcoreapp: string.empty ```cs public static IEnumerable CloseStatus_Valid_TestData() { yield return new object[] { WebSocketCloseStatus.Empty, null, WebSocketCloseStatus.Empty }; } [ConditionalTheory(nameof(IsNotWindows7OrUapCore))] [MemberData(nameof(CloseStatus_Valid_TestData))] public async Task CloseAsync_ValidCloseStatus_Success(WebSocketCloseStatus status, string statusDescription, WebSocketCloseStatus expectedCloseStatus) { HttpListenerWebSocketContext context = await GetWebSocketContext(); Task serverTask = context.WebSocket.CloseOutputAsync(status, statusDescription, new CancellationToken()); byte[] receivedBytes = new byte[512]; Task receiveTask = Client.ReceiveAsync(new ArraySegment(receivedBytes), new CancellationToken()); await Task.WhenAll(serverTask, receiveTask); WebSocketReceiveResult result = await receiveTask; Assert.Equal(expectedCloseStatus, result.CloseStatus); string expectedStatusDescription = statusDescription; if (!PlatformDetection.IsFullFramework && statusDescription == null) { expectedStatusDescription = string.Empty; } Assert.Equal(expectedStatusDescription, result.CloseStatusDescription); Assert.Equal(WebSocketMessageType.Close, result.MessageType); Assert.True(result.EndOfMessage); } ``` I'm submitting tests for this +20393 area-System.Net ClientWebSocket.CloseAsync should match netfx behaviour and throw InvalidOperationException instead of hanging if not connected "```cs [Fact] public async Task Test() { const string Prefix = ""http://localhost:9200/""; var server = new HttpListener(); server.Prefixes.Add(Prefix); server.Start(); var client = new ClientWebSocket(); var uriBuilder = new UriBuilder(Prefix) { Scheme = ""ws"" }; Task serverContextTask = server.GetContextAsync(); Task clientConnectTask = client.ConnectAsync(uriBuilder.Uri, CancellationToken.None); if (clientConnectTask == await Task.WhenAny(serverContextTask, clientConnectTask)) { await clientConnectTask; Assert.True(false, ""Client should not have completed prior to server sending response""); } HttpListenerContext context = await serverContextTask; HttpListenerWebSocketContext webSocketContext = await context.AcceptWebSocketAsync(null); await client.CloseAsync(WebSocketCloseStatus.EndpointUnavailable, ""Hello"", new CancellationToken()); } ``` Netfx: InvalidOperationException thrown Netcoreapp: hang, then WinHttpException thrown for timeout" +20394 area-System.Net [HttpListener][Managed] HttpListenerWebSocketContext.WebSocket.Close should nop after Abort() Following tests are disabled with this issue: - CloseAsync_AfterAborted_Nop - CloseAsync_AfterDisposed_Nop ``` System.Net.Tests.HttpListenerWebSocketTests.CloseAsync_AfterAborted_Nop [FAIL] System.Net.WebSockets.WebSocketException : The WebSocket is in an invalid state ('Aborted') for this operation. Valid states are: 'Open, CloseReceived' Stack Trace: at System.Net.WebSockets.WebSocketValidate.ThrowIfInvalidState(WebSocketState currentState, Boolean isDisposed, WebSocketState[] validStates) at System.Net.WebSockets.ManagedWebSocket.CloseOutputAsync(WebSocketCloseStatus closeStatus, String statusDescription, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.HttpListenerWebSocketTests.d__31.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.HttpListenerWebSocketTests.CloseAsync_AfterDisposed_Nop [FAIL] System.Net.WebSockets.WebSocketException : The WebSocket is in an invalid state ('Closed') for this operation. Valid states are: 'Open, CloseReceived' Stack Trace: at System.Net.WebSockets.WebSocketValidate.ThrowIfInvalidState(WebSocketState currentState, Boolean isDisposed, WebSocketState[] validStates) at System.Net.WebSockets.ManagedWebSocket.CloseOutputAsync(WebSocketCloseStatus closeStatus, String statusDescription, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.HttpListenerWebSocketTests.d__30.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +20395 area-System.Net [HttpListener][Managed] HttpListenerWebSocketContext.WebSocket.Receive/Close should throw ObjectDisposedException after disposal Following tests are disabled with this issue: - SendAsync_Disposed_ThrowsObjectDisposedException - ReceiveAsync_Disposed_ThrowsObjectDisposedException ``` System.Net.Tests.HttpListenerWebSocketTests.SendAsync_Disposed_ThrowsObjectDisposedException [FAIL] Assert.Throws() Failure Expected: typeof(System.ObjectDisposedException) Actual: typeof(System.Net.WebSockets.WebSocketException): The WebSocket is in an invalid state ('Closed') for this operation. Valid states are: 'Open, CloseReceived' Stack Trace: at System.Net.WebSockets.WebSocketValidate.ThrowIfInvalidState(WebSocketState currentState, Boolean isDisposed, WebSocketState[] validStates) at System.Net.WebSockets.ManagedWebSocket.SendAsync(ArraySegment`1 buffer, WebSocketMessageType messageType, Boolean endOfMessage, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.HttpListenerWebSocketTests.ReceiveAsync_Disposed_ThrowsObjectDisposedException [FAIL] Assert.Throws() Failure Expected: typeof(System.ObjectDisposedException) Actual: typeof(System.Net.WebSockets.WebSocketException): The WebSocket is in an invalid state ('Closed') for this operation. Valid states are: 'Open, CloseSent' Stack Trace: at System.Net.WebSockets.WebSocketValidate.ThrowIfInvalidState(WebSocketState currentState, Boolean isDisposed, WebSocketState[] validStates) at System.Net.WebSockets.ManagedWebSocket.ReceiveAsync(ArraySegment`1 buffer, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +20396 area-System.Net [HttpListener][Managed] HttpListenerWebSocketContext close handshakes should not fail "Following tests are disabled with this issue: - CloseAsync_HandshakeStartedFromClient_Success - CloseAsync_HandshakeStartedFromServer_Success ``` xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Net.HttpListener.Tests Discovered: System.Net.HttpListener.Tests Starting: System.Net.HttpListener.Tests System.Net.Tests.HttpListenerWebSocketTests.CloseAsync_HandshakeStartedFromClient_Success(status: -1, statusDescription: \""Negative\"", expectedCloseStatus: 65535) [FAIL] System.Net.WebSockets.WebSocketException : The remote party closed the WebSocket connection without completing the close handshake. ---- System.Net.WebSockets.WebSocketException : An exception caused the WebSocket to enter the Aborted state. Please see the InnerException, if present, for more details. Stack Trace: at System.Net.WebSockets.ManagedWebSocket.d__61.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.HttpListenerWebSocketTests.d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.WebSockets.ManagedWebSocket.d__65.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.ManagedWebSocket.d__62.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.WebSockets.ManagedWebSocket.d__61.MoveNext() System.Net.Tests.HttpListenerWebSocketTests.CloseAsync_HandshakeStartedFromClient_Success(status: Empty, statusDescription: null, expectedCloseStatus: Empty) [FAIL] Assert.Equal() Failure Expected: Empty Actual: NormalClosure Stack Trace: at System.Net.Tests.HttpListenerWebSocketTests.d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.HttpListenerWebSocketTests.CloseAsync_HandshakeStartedFromClient_Success(status: EndpointUnavailable, statusDescription: \""\"", expectedCloseStatus: EndpointUnavailable) [FAIL] System.Net.WebSockets.WebSocketException : The WebSocket is in an invalid state ('Closed') for this operation. Valid states are: 'Open, CloseReceived, CloseSent' Stack Trace: at System.Net.WebSockets.WebSocketValidate.ThrowIfInvalidState(WebSocketState currentState, Boolean isDisposed, WebSocketState[] validStates) at System.Net.WebSockets.ManagedWebSocket.CloseAsync(WebSocketCloseStatus closeStatus, String statusDescription, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.HttpListenerWebSocketTests.d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.HttpListenerWebSocketTests.CloseAsync_HandshakeStartedFromClient_Success(status: MandatoryExtension, statusDescription: \""StatusDescription\"", expectedCloseStatus: MandatoryExtension) [FAIL] System.Net.WebSockets.WebSocketException : The WebSocket is in an invalid state ('Closed') for this operation. Valid states are: 'Open, CloseReceived, CloseSent' Stack Trace: at System.Net.WebSockets.WebSocketValidate.ThrowIfInvalidState(WebSocketState currentState, Boolean isDisposed, WebSocketState[] validStates) at System.Net.WebSockets.ManagedWebSocket.CloseAsync(WebSocketCloseStatus closeStatus, String statusDescription, CancellationToken cancellationToken) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.HttpListenerWebSocketTests.d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.HttpListenerWebSocketTests.Dispose_CallAfterDisposed_Nop [FAIL] Assert.Equal() Failure Expected: Aborted Actual: Closed Stack Trace: at System.Net.Tests.HttpListenerWebSocketTests.d__32.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.HttpListenerWebSocketTests.CloseOutputAsync_HandshakeStartedFromClient_Success(status: -1, statusDescription: \""Negative\"", expectedCloseStatus: 65535) [FAIL] System.Net.WebSockets.WebSocketException : The remote party closed the WebSocket connection without completing the close handshake. ---- System.Net.WebSockets.WebSocketException : An exception caused the WebSocket to enter the Aborted state. Please see the InnerException, if present, for more details. Stack Trace: at System.Net.WebSockets.ManagedWebSocket.d__61.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.HttpListenerWebSocketTests.d__26.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.WebSockets.ManagedWebSocket.d__65.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.ManagedWebSocket.d__62.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.WebSockets.ManagedWebSocket.d__61.MoveNext() System.Net.Tests.HttpListenerWebSocketTests.CloseOutputAsync_HandshakeStartedFromClient_Success(status: Empty, statusDescription: null, expectedCloseStatus: Empty) [FAIL] System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response Stack Trace: at System.Environment.get_StackTrace() at System.Runtime.ExceptionServices.ExceptionStackTrace.AddCurrentStack(Exception exception) at System.Net.Http.WinHttpException.CreateExceptionUsingError(Int32 error) at System.Net.WebSockets.WinHttpWebSocket.InternalReceiveAsync(ArraySegment`1 buffer) at System.Net.WebSockets.WinHttpWebSocket.d__27.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at System.Net.WebSockets.WinHttpWebSocket.ReceiveAsync(ArraySegment`1 buffer, CancellationToken cancellationToken) at System.Net.WebSockets.WebSocketHandle.ReceiveAsync(ArraySegment`1 buffer, CancellationToken cancellationToken) at System.Net.WebSockets.ClientWebSocket.ReceiveAsync(ArraySegment`1 buffer, CancellationToken cancellationToken) at System.Net.Tests.HttpListenerWebSocketTests.d__26.MoveNext() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c__DisplayClass4_0.b__0() at System.Runtime.CompilerServices.TaskAwaiter.<>c__DisplayClass11_0.b__0() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) --- End of stack trace from AddCurrentStack --- at System.Net.WebSockets.WinHttpWebSocket.InternalReceiveAsync(ArraySegment`1 buffer) at System.Net.WebSockets.WinHttpWebSocket.d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.HttpListenerWebSocketTests.d__26.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.HttpListenerWebSocketTests.CloseOutputAsync_HandshakeStartedFromClient_Success(status: EndpointUnavailable, statusDescription: \""\"", expectedCloseStatus: EndpointUnavailable) [FAIL] Assert.Equal() Failure Expected: Closed Actual: CloseReceived Stack Trace: at System.Net.Tests.HttpListenerWebSocketTests.d__26.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) System.Net.Tests.HttpListenerWebSocketTests.CloseOutputAsync_HandshakeStartedFromClient_Success(status: MandatoryExtension, statusDescription: \""StatusDescription\"", expectedCloseStatus: MandatoryExtension) [FAIL] Assert.Equal() Failure Expected: Closed Actual: CloseReceived Stack Trace: at System.Net.Tests.HttpListenerWebSocketTests.d__26.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Finished: System.Net.HttpListener.Tests === TEST EXECUTION SUMMARY === System.Net.HttpListener.Tests Total: 33, Errors: 0, Failed: 13, Skipped: 0, Time: 6.938s Press enter key to continue... ```" +20397 area-System.Net [HttpListener][Managed] HttpListenerWebSocketContext.WebSocket.Dispose should abort, not close the socket Following tests are disabled with this issue: - Dispose_CallAfterDisposed_Nop ``` System.Net.Tests.HttpListenerWebSocketTests.Dispose_CallAfterDisposed_Nop [FAIL] Assert.Equal() Failure Expected: Aborted Actual: Closed Stack Trace: at System.Net.Tests.HttpListenerWebSocketTests.d__35.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` +20398 area-System.Net Add more HttpListener WebSocket tests Contributes to #13618 Contributes to #20389 Contributes to #20391 +20400 area-System.Net [HttpListener][Porting] authentication failures with GetContextAsync throw an Unhandled inner exception for NativeOverlapped used for multiple operations Steps to reproduce: 1. Pull in this commit https://github.com/hughbe/corefx/commit/aa948b02cc9ad4f23fde77502382f5f6a9c42e8b 2. Run the tests Observe: ``` Discovering: System.Net.HttpListener.Tests Discovered: System.Net.HttpListener.Tests Starting: System.Net.HttpListener.Tests Unhandled Exception: Unhandled Exception: Unhandled Exception: Unhandled Exception: System.InvalidOperationException: NativeOverlapped cannot be reused for multiple operations. at System.Threading.ThreadPoolBoundHandleOverlapped.CompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOv erlapped* nativeOverlapped) at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOve rlapped* pOVERLAP) System.InvalidOperationException: NativeOverlapped cannot be reused for multiple operations. at System.Threading.ThreadPoolBoundHandleOverlapped.CompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOv erlapped* nativeOverlapped) at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOve rlapped* pOVERLAP) System.InvalidOperationException: NativeOverlapped cannot be reused for multiple operations. at System.Threading.ThreadPoolBoundHandleOverlapped.CompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOv erlapped* nativeOverlapped) at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOve rlapped* pOVERLAP) System.InvalidOperationException: NativeOverlapped cannot be reused for multiple operations. at System.Threading.ThreadPoolBoundHandleOverlapped.CompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOv erlapped* nativeOverlapped) at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOve rlapped* pOVERLAP) Finished running tests. End time=11:41:39.75, Exit code = -532462766 ``` @CIPop you were taking a look at authentication recently +20407 area-System.Security Add ClaimsIdentity.NameIdentifier property. "`ClaimsIdentity` currently expose the `Name` property but feels like it missing the `NameIdentifier` property. Since `Claim` is the recommended way to work with authentication and the most common property that developers needs to work with when dealing with users is the UserId, known as the `subject` or `NameIdentifier` claim, it's a great opportunity to make a better api for developers to access that value. # Rationale and Usage This is certainly a nice-to-have, but it is a long-standing issue in various versions of ASP.NET Identity where there were always questions and *workarounds* in how to get the user id (a pretty basic need), the use of different `Type` for the primary key made methods (extension or not) hard to deal with from usage and for library to implement them. Having the `NameIdentifier` claim as a property (which is already on the `ClaimsIdentity` object) would make developers access the userId value without the need of a dependency (like `UserManager`) in a consistent and reliable way. Note: This is **not** about `Identity` specific, I'm using it as an example. Historically the `Name` property on `ClaimsIdentity` were used many times to have the User Identifier since the id is normally more helpful than the Name, unfortunately one must pick one or the other while both are useful and serve different purposes and also feels like a hack to have a property that doesn't really represent it's intent. ## Examples (without this change) For example, using Identity, to get the the NameIdentifier Claim right you have 2 options with it's respective problems: 1 - Get the claim as it were any other claim `string userId = User.FindFirstValue(ClaimTypes.NameIdentifier);` configuring another claim for the Identifier (like ""sub"" in the case of OIDC) will break existing code and needs to be updated to `User.FindFirstValue(""claimType"");` 2 - Using the UserManager (similar for any other developer/library custom implementation) `string userId = Microsoft.AspNetCore.Identity.UserManager().GetUserId(User);` This won't break if the claimtype changes but requires to have a dependency on the `UserManager` (or any custom implementation) everywhere you would need to get the userid which shouldn't be needed at all. ## Example (with this change) `User.Identity.NameIdentifier` # Proposed API ```c# public ClaimsIdentity(IIdentity identity, IEnumerable claims, string authenticationType, string nameType, string roleType, string nameIdentifierType) public const string DefaultNameIdentifierClaimType = ClaimTypes.NameIdentifier; public string NameIdentifierClaimType { get; } public virtual string NameIdentifier { get; } ``` # Detail Adding the `NameIdentifier` and `NameIdentifierClaimType` property to `ClaimsIdentity` solve both problems, you can change the `ClaimIdentifierType` like this: ```c# services.Configure(options => { options.ClaimsIdentity.UserIdClaimType = OpenIdConnectConstants.Claims.Subject; }); ``` and code using `ClaimIdentity.NameIdentifier` will return the *right* thing. No dependency, library, or custom code needed. # Open Questions Should `NameIdentifier` be the right name for this property? I'm not aware where the name came from nor the history behind this, while NameIdentifier sounds good may there's opportunity to make it even better. " +20413 area-Meta Yoga metdown jillian +20414 area-System.Security Support loading cryptographic keys from files other than certificate PFX I understand that this represents a thin wrapper over the Win32 CNG APIs, but it does make a whole suite of cryptographic operations simpler. In my case, I'm trying to read an ECDSA public/private key pair out of a PKCS8 container. In .NET Framework and .NET Core on Windows, this is possible with the following: ``` static ECDsa CreateKeyFromDataCng(byte[] data) => new ECDsaCng(CngKey.Import(data, CngKeyBlobFormat.Pkcs8PrivateBlob)); ``` Under macOS (and I assume Linux too), this throws a `PlatformNotSupportedException`. As per #18733, .NET Core can handle loading ECDSA keys from an X509 structure. Would it be possible to implement the Cng suite of APIs with a backing from a non-Windows-CNG source such as OpenSSL on Linux or the Apple crypto libraries on macOS? Failing that, are there any plans for a unified cryptography API in .NET Standard future which would enable a single API call to work across all platforms for fiddly cryptography bits such as this? Thanks. +20416 area-Infrastructure Update CoreClr, Standard to preview2-25328-01, preview2-25328-01, respectively (release/2.0.0) +20418 area-System.Diagnostics ActivityTests DiagnosticSourceStartStop failed in CI https://mc.dot.net/#/user/dotnet-bot/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fportable~2Fcli~2F/c79148689a54240393f14c58768b066f6515b9cc/workItem/System.Diagnostics.DiagnosticSource.Tests/analysis/xunit/System.Diagnostics.Tests.ActivityTests~2FDiagnosticSourceStartStop ``` Unhandled Exception of Type Xunit.Sdk.TrueException Message : Assert.True() Failure\nExpected: True\nActual: False Stack Trace : at System.Diagnostics.Tests.ActivityTests.DiagnosticSourceStartStop() in /mnt/j/workspace/dotnet_corefx/master/portable-linux-Config_Release+OuterLoop_false_prtest/src/System.Diagnostics.DiagnosticSource/tests/ActivityTests.cs:line 442 ``` +20419 area-System.Net HttpClient on Linux does not correctly handle zero-length chunked body "Run the following code: ``` TcpListener listener = new TcpListener(IPAddress.Loopback, 0); listener.Start(); int port = ((IPEndPoint)listener.LocalEndpoint).Port; var acceptTask = listener.AcceptTcpClientAsync(); using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.TransferEncodingChunked = true; Task clientTask = client.PostAsync($""http://localhost:{port}/"", new StringContent("""")); TcpClient server = await acceptTask; Stream serverStream = server.GetStream(); int bytesRead = 0; byte[] buffer = new byte[4096]; while (true) { bytesRead = serverStream.Read(buffer, 0, 4096); if (bytesRead == 0) { break; } Console.WriteLine(Encoding.UTF8.GetString(buffer, 0, bytesRead)); } } ``` You will see output like this: ``` POST / HTTP/1.1 Host: localhost:51288 Accept: */* Content-Type: text/plain; charset=utf-8 Transfer-Encoding: chunked ``` HttpClient should be sending a 0-length chunk terminator, but it's not. Works fine on Windows." +20422 area-System.Net Port HttpListener fixes to release/2.0.0 This ports all changes to HttpListener since we forked the release/2.0.0 branch on May 17th. We can separately do a clean-up port to address any remaining issues addressed today/tomorrow. Fixes #20060. cc: @geoffkizer +20425 area-System.Net "[HttpListener][porting] HttpListenerResponse.AddHeader(""name"", new string('a', 65536)) should throw an ArgumentOutOfRangeException to match netfx behaviour" "All of the following tests pass with netfx, fail with netcoreapp: ```c# private static string s_longString = new string('a', ushort.MaxValue + 1); [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] [ActiveIssue(20425, TargetFrameworkMonikers.Netcoreapp)] public async Task AddHeader_LongName_ThrowsArgumentOutOfRangeException() { HttpListenerResponse response = await GetResponse(); AssertExtensions.Throws(""value"", () => response.AddHeader(""name"", s_longString)); } [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] [ActiveIssue(20425, TargetFrameworkMonikers.Netcoreapp)] public async Task AppendHeader_LongName_ThrowsArgumentOutOfRangeException() { HttpListenerResponse response = await GetResponse(); AssertExtensions.Throws(""value"", () => response.AppendHeader(""name"", s_longString)); } [ConditionalTheory(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] [InlineData(""Transfer-Encoding"")] [ActiveIssue(20425, TargetFrameworkMonikers.Netcoreapp)] public async Task Headers_SetRestricted_ThrowsArgumentException(string name) { HttpListenerResponse response = await GetResponse(); AssertExtensions.Throws(""name"", () => response.Headers.Add(name, ""value"")); AssertExtensions.Throws(""name"", () => response.Headers.Add($""{name}:value"")); } [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] [ActiveIssue(20425, TargetFrameworkMonikers.Netcoreapp)] public async Task Headers_SetLongName_ThrowsArgumentOutOfRangeException() { HttpListenerResponse response = await GetResponse(); AssertExtensions.Throws(""value"", () => response.Headers[""name""] = s_longString); AssertExtensions.Throws(""value"", () => response.Headers.Set(""name"", s_longString)); AssertExtensions.Throws(""value"", () => response.Headers.Add(""name"", s_longString)); AssertExtensions.Throws(""value"", () => response.Headers.Add($""name:{s_longString}"")); AssertExtensions.Throws(""value"", () => response.Headers.Add(HttpResponseHeader.Age, s_longString)); } [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotOneCoreUAP))] [ActiveIssue(20425, TargetFrameworkMonikers.Netcoreapp)] public async Task Headers_SetRequestHeader_ThrowsInvalidOperationException() { HttpListenerResponse response = await GetResponse(); Assert.Throws(() => response.Headers[HttpRequestHeader.Accept]); Assert.Throws(() => response.Headers[HttpRequestHeader.Accept] = ""value""); Assert.Throws(() => response.Headers.Set(HttpRequestHeader.Accept, ""value"")); Assert.Throws(() => response.Headers.Add(HttpRequestHeader.Accept, ""value"")); Assert.Throws(() => response.Headers.Remove(HttpRequestHeader.Accept)); } ```" +20428 area-System.Net fix handling of client Close before writing entire Content-Length If the client closes the connection before writing the full body, as specified by the Content-Length header, we should throw an exception on InputStream.Read/ReadAsync. Partial fix for #20246. @stephentoub @hughbe +20429 area-Infrastructure Running tests with netfx from Visual Studio I know that VS isn't officially fully supported in corefx, but is there a way to have the F5/edit, debug continue experience for tests running against netfx? There may be a way to do this with the command line arguments +20430 area-System.Linq Extra 'LambdaExpression.CompileToMethod(DynamicMethod)' overload I suggest to add a new overload `LamdbaExpression.CompileToMethod(DynamicMethod)` to supplement the existing method [LamdbaExpression.CompileToMethod() method](https://msdn.microsoft.com/en-us/library/system.linq.expressions.lambdaexpression.compiletomethod(v=vs.110).aspx). Indeed, the [extended constructor of DynamicMethod](https://msdn.microsoft.com/en-us/library/0d9fd769(v=vs.110).aspx) offers two important options: * the target module * a `skipVisibility` flag that are very convoluted to replicate from from the `LamdbaExpression.CompileToMethod()` angle. This extra overload would also make it easier blend `DynamicMethod`s and `Expression`s in general. +20432 area-System.Net Add tests for HttpListenerResponse header behaviour Contributes to #13618 +20435 area-System.Net HTTPS proxy servers not working with HttpClient "I'm writing a proxy checking service. This is a short test case: ```cs using System; using System.Net; using System.Net.Http; using System.Security.Authentication; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ProxyNetCoreTest { public class WebProxy : IWebProxy { private readonly Uri _uri; public WebProxy(string ip, int port) { _uri = new Uri(""https://"" + ip + "":"" + port); } public Uri GetProxy(Uri destination) => _uri; public bool IsBypassed(Uri host) => false; public ICredentials Credentials { get; set; } } public class Program { public static void Main(string[] args) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); Test().Wait(); LogInfo(""---=== END ===---""); Console.ReadKey(); } public static async Task Test() { var url = ""https://api.ipify.org?format=json""; string ip = ""103.254.16.21""; int port = 8080; var handler = new HttpClientHandler { Proxy = new WebProxy(ip, port), UseCookies = false, ServerCertificateCustomValidationCallback = (message, xcert, chain, errors) => { LogInfo(""ServerCertificateCustomValidationCallback""); return true; }, SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls, UseProxy = true }; using (var client = new HttpClient(handler)) { try { using (var request = new HttpRequestMessage(HttpMethod.Get, url)) using (var response = await client.SendAsync(request, HttpCompletionOption.ResponseContentRead, CancellationToken.None)) { var data = await response.Content.ReadAsStringAsync(); LogInfo(data); } } catch (Exception e) { while (e != null) { LogError(e.ToString()); e = e.InnerException; } } } } public static void LogError(string message) { Console.ForegroundColor = ConsoleColor.Yellow; LogInfo(message); Console.ResetColor(); } public static void LogInfo(string message) { Console.WriteLine($""{DateTime.Now:HH:mm:ss}: {message}""); } } } ``` It works on Linux Mint 18.1 Serena, but does not work on Windows 10. Windows 10 output: ``` C:\Projects\ProxyNetCoreTest\PublishOutput>dotnet ProxyNetCoreTest.dll 19:58:37: System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: A security error occurred at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at ProxyNetCoreTest.Program.d__1.MoveNext() in C:\Projects\ProxyNetCoreTest\ProxyNetCoreTest\Program.cs:line 58 19:58:37: System.Net.Http.WinHttpException: A security error occurred at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() 19:58:37: ---=== END ===--- ``` Linux Mint 18.1 Serena output: ``` my-server ProxyTest # dotnet ProxyNetCoreTest.dll 19:59:15: ServerCertificateCustomValidationCallback 19:59:16: {""ip"":""103.254.16.21""} 19:59:16: ---=== END ===--- ``` Windows version does not call ServerCertificateCustomValidationCallback. PS: On a full framework, I used HttpWebRequest and everything was fine. What is the best way to perform multiple requests(10k-20k+) through different proxy servers? It seems to me that HttpClient is bad for this. " +20438 area-System.IO Re-enable two file tests on Unix Closes https://github.com/dotnet/corefx/issues/19965 cc: @JeremyKuhne +20439 area-System.Net ClientWebSocket on Windows may fail to connect to managed HttpListener In our HttpListener tests, we currently have each test create a new HttpListener. Since the HttpListener API doesn't support binding to 0 and having the OS pick an available port, the tests iterate through ports looking for one the HttpListener can bind to. Often the listener ends up on the same port as the previous test, which means the client is effectively given the same Uri on one test as it was on its previous test. The Windows ClientWebSocket is using connection pooling, and while this analysis may not be correct, it appears that sometimes there is a race condition whereby the client tries to reuse an existing connection for test N+1 after the server has closed that connection for test N. This then results in the client failing the connection, with an error like: ``` System.Net.WebSockets.WebSocketException : Unable to connect to the remote server ---- System.Net.WebSockets.WebSocketException : Unable to connect to the remote server -------- System.Net.Http.WinHttpException : The connection with the server was terminated abnormally Stack Trace: C:\Users\stoub\Source\Repos\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WebSocketHandle.Win32.cs(60,0): at System.Net.WebSockets.WebSocketHandle.d__20.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) C:\Users\stoub\Source\Repos\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\ClientWebSocket.cs(157,0): at System.Net.WebSockets.ClientWebSocket.d__16.MoveNext() ``` Disabling the per-process connection pooling in ClientWebSocket, e.g. ```C# uint optionData = 1; if (!Interop.WinHttp.WinHttpSetOption( _operation.SessionHandle, Interop.WinHttp.WINHTTP_OPTION_MAX_CONNS_PER_SERVER, ref optionData)) { WinHttpException.ThrowExceptionUsingLastError(); } ``` causes the failure to go away, as does changing the tests to try to use a different port than was used by the last test. +20440 area-System.Net Workaround pooling issue with managed HttpListener and Windows ClientWebSocket When using the managed HttpListener on Windows, try to create each HttpListener on a different port than the one used for the last test's HttpListener. Workaround for https://github.com/dotnet/corefx/issues/20439 Contributes to https://github.com/dotnet/corefx/issues/20246 (Easiest to review when ignoring whitespace diffs: https://github.com/dotnet/corefx/pull/20440/files?w=1) cc: @geoffkizer +20441 area-System.Data "System.Data.SqlClient.Tests (eg ExecuteScalarAsyncTest) test break CI with ""The server was not found or was not accessible""" https://ci.dot.net/job/dotnet_corefx/job/release_2.0.0/job/ubuntu14.04_release_prtest/185/consoleText ``` Exception from RemoteExecutorConsoleApp(System.Data.SqlClient.Tests, Version=4.2.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb, System.Data.SqlClient.Tests.DiagnosticTest+<>c, b__12_0): Assembly: System.Data.SqlClient.Tests, Version=4.2.0.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb Type: System.Data.SqlClient.Tests.DiagnosticTest+<>c Method: Int32 b__12_0() Using as the test runtime folder. Running tests... Start time: 01:44:29 Commands: source Dumpling.sh chmod +x /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/bin/testhost/netcoreapp-Linux-Release-x64//dotnet /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/bin/testhost/netcoreapp-Linux-Release-x64//dotnet xunit.console.netcore.exe System.Diagnostics.Tracing.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapptests -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing -notrait category=nonlinuxtests CollectDumps 0 System.Diagnostics.Tracing.Tests /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/bin/AnyOS.AnyCPU.Release/System.Diagnostics.Tracing.Tests/netcoreapp /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Diagnostics.Tracing/tests executing ulimit -c unlimited Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInternalConnectionTds.cs:line 373 at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionFactory.cs:line 136 at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionFactory.cs:line 114 at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 476 at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 1187 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 792 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 711 at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionFactory.cs:line 281 at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionInternal.cs:line 453 at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnection.cs:line 1062 at System.Data.SqlClient.SqlConnection.Open() in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnection.cs:line 598 at System.Data.SqlClient.Tests.DiagnosticTest.<>c.<b__12_1>d.MoveNext() in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs:line 269 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.SqlClient.Tests.DiagnosticTest.d__25.MoveNext() in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs:line 893 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.SqlClient.Tests.DiagnosticTest.<>c.b__12_0() in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs:line 272 xUnit.net console test runner (64-bit .NET Core) --- End of inner exception stack trace --- Copyright (C) 2014 Outercurve Foundation. at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at RemoteExecutorConsoleApp.Program.Main(String[] args) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/Common/tests/System/Diagnostics/RemoteExecutorConsoleApp/RemoteExecutorConsoleApp.cs:line 51 Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInternalConnectionTds.cs:line 373 at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionFactory.cs:line 136 at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionFactory.cs:line 114 at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 476 at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 1187 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 792 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 711 at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionFactory.cs:line 281 at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionInternal.cs:line 453 at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnection.cs:line 1062 at System.Data.SqlClient.SqlConnection.Open() in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnection.cs:line 598 at System.Data.SqlClient.Tests.DiagnosticTest.<>c.<b__12_1>d.MoveNext() in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs:line 269 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.SqlClient.Tests.DiagnosticTest.d__25.MoveNext() in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs:line 893 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.SqlClient.Tests.DiagnosticTest.<>c.b__12_0() in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/System.Data.SqlClient/tests/FunctionalTests/DiagnosticTest.cs:line 272 --- End of inner exception stack trace --- at RemoteExecutorConsoleApp.Program.Main(String[] args) in /mnt/j/workspace/dotnet_corefx/release_2.0.0/ubuntu14.04_release_prtest/src/Common/tests/System/Diagnostics/RemoteExecutorConsoleApp/RemoteExecutorConsoleApp.cs:line 67 Discovering: System.Diagnostics.Tracing.Tests Discovered: System.Diagnostics.Tracing.Tests Starting: System.Diagnostics.Tracing.Tests System.Data.SqlClient.Tests.DiagnosticTest.ExecuteScalarAsyncTest [FAIL] Assert.Equal() Failure Expected: 42 Actual: 134 ``` +20442 area-System.Runtime Marshal.SizeOf() under Ubuntu 16.04 LTS throws an exception for structs when there is a field of a reference type. _From @marek86 on May 29, 2017 12:0_ public struct A { public double X; public object Obj; } System.Runtime.InteropServices.Marshal.SizeOf() works on Windows but throws ArgumentException on Ubuntu. _Copied from original issue: dotnet/sdk#1263_ +20443 area-System.IO File.WriteAllTextAsync throws an exception when input string is longer than 4096 characters "Code to reproduce the bug ```c# using System; using System.IO; namespace ConsoleApp1 { class Program { static void Main(string[] args) { string str = """"; // Creating string longer than 4096 characters while (str.Length < 4096) { str += ""This is a test\n""; } File.WriteAllTextAsync(""test.txt"", str).Wait(); Console.WriteLine(""Done""); } } } ``` output ``` Unhandled Exception: System.AggregateException: One or more errors occurred. (Index and count must refer to a location within the string. Parameter name: sourceIndex) ---> System.ArgumentOutOfRangeException: Index and count must refer to a location within the string. Parameter name: sourceIndex at System.String.CopyTo(Int32 sourceIndex, Char[] destination, Int32 destinationIndex, Int32 count) at System.IO.File.d__81.MoveNext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait() at test6.Program.Main(String[] args) ``` dotnet --info ``` .NET Command Line Tools (2.0.0-preview1-005899) Product Information: Version: 2.0.0-preview1-005899 Commit SHA-1 hash: ea746bd0dd Runtime Environment: OS Name: Windows OS Version: 10.0.15063 OS Platform: Windows RID: win10-x64 Base Path: C:\Users\Alexandr\.dotnet\x64\sdk\2.0.0-preview1-005899\ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview1-002111-00 Build : 1ff021936263d492539399688f46fd3827169983 ``` " +20444 area-System.Net HttpClientHandlerTest/PostAsync_CallMethod_StreamContent failed with 'WinHttpException : The operation has been canceled' https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170530.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FPostAsync_CallMethod_StreamContent(remoteServer:%20http:~2F~2Fcorefx-net.cloudapp.net~2FVerifyUpload.ashx,%20content:%20StreamContentWithSyncAsyncCop... ``` System.Net.Http.HttpRequestException : An error occurred while sending the request.\r\n---- System.Net.Http.WinHttpException : The operation has been canceled Stack Trace : at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__66.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() ``` +20448 area-Meta 16.0.8067.2115 breaks Tags correct. (System.Net.WebClient | System.Windows.Forms.WebBrowser?!?) With 16.0.7967.2161 it's working without Problems. Reproduced on several Workstation. Drop Down is simply not shown when a click is executed on the Select Element. But one can select the Drop-Down Elements with the Arrow Keys. HTML Source Code isn't changed - so I guess it must be a rendering Problem ... Sample to reproduce: http://demo.ex.ortsinfo.at/tools/test2.php Any Ideas on that? Thank you, bye from Austria Andreas Schnederle-Wagner Also asked: https://answers.microsoft.com/en-us/msoffice/forum/msoffice_outlook-mso_win10/16080672115-breaks-select-tags-in-outlook-add-in/d9998470-f1bd-4cf6-85aa-ea5519bc9121 +20453 area-System.IO Fix incorrect length in File.WriteAllTextAsync Fixes https://github.com/dotnet/corefx/issues/20443 cc: @danmosemsft, @JeremyKuhne, @ianhays +20455 area-Infrastructure Fix archgroup for xunit project cc: @weshaggard @danmosemsft Some of the uapaot tests still fail today because we were restoring the incorrect sni.dll (always restoring x64 version). With this change, now we will restore the right one so the tests can run and pass. +20456 area-System.IO FileSystemInfo.Attributes set to -1 if the file gets deleted while in an enumeration on Unix "Summary ---------- When a file gets deleted (or renamed) during an enumeration of all files in the parent directory, accessing the `'Attributes'` property of the FileInfo object returns value `'-1'`. This seems very bad to me because it's not a meaningful `FileAttributes` value and thus the subsequent tests like `(filesystemInfo.Attributes & FileAttributes.Hidden) != 0` will give unexpected results and cause problems. There are 2 issues in my observation: 1. Inconsistent behavior between Windows and Unix platforms. - On Windows, `filesystemInfo.Attributes` returns the original attributes even though the file gets deleted during the enumeration. 2. Breaking change in behavior from `Microsoft.NetCore.App 2.0.0-preview1-002106-00` to `Microsoft.NetCore.App 2.0.0-preview2-25324-03` - With version `2.0.0-preview1-002106-00`, `filesystemInfo.Attributes` raises an `FileNotFoundException` exception. - With version `2.0.0-preview2-25324-03`, `filesystemInfo.Attributes` returns -1 Thought --------- I think it would be the best if we can have the consistent behavior between Windows and Unix platforms. If that's technically not possible, then throwing `FileNotFoundException` exception is better than returnning `-1` because `-1` is not a meaningful value for `FileAttributes` and it will mislead the subsequent code. Repro ------ Program.cs ```CSharp using System; using System.IO; namespace test { class Program { static void Main(string[] args) { string testDir = Path.Combine(Environment.GetEnvironmentVariable(""HOME""), ""temp""); DirectoryInfo dir = new DirectoryInfo(testDir); foreach (FileSystemInfo fileSystemInfo in dir.EnumerateFiles()) { if (string.Equals(fileSystemInfo.Name, ""bb.txt"", StringComparison.InvariantCulture)) { File.Delete(fileSystemInfo.FullName); } try { Console.WriteLine(""{0} - {1}"", fileSystemInfo.Name, fileSystemInfo.Attributes); } catch (System.IO.FileNotFoundException ex) { Console.WriteLine(""{0}: {1}"", ex.GetType().FullName, ex.Message); Console.WriteLine(ex.StackTrace); } } } } } ``` Result: ``` ## Linux ## .NET Command Line Tools (2.0.0-preview1-005952) ## Microsoft .NET Core Shared Framework Host ## Version : 2.0.0-preview1-002106-00 ## Build : 86fe9816c8ba782241c441c3228c665e393c3ef3 > dotnet run cc.txt - Normal System.IO.FileNotFoundException: Could not find file '/home/pi/temp/bb.txt'. at System.IO.FileSystemInfo.EnsureStatInitialized() at System.IO.FileSystemInfo.System.IO.IFileSystemObject.get_Attributes() at System.IO.FileSystemInfo.get_Attributes() at test.Program.Main(String[] args) aa.txt - Normal ``` ``` ## Linux ## .NET Command Line Tools (2.0.0-preview2-006195) ## Microsoft .NET Core Shared Framework Host ## Version : 2.0.0-preview2-25324-03 ## Build : b6c9f8ad69dc3edd601e288198de27975b514306 > dotnet run bb.txt - -1 aa.txt - Normal cc.txt - Normal ``` ``` ## Windows ## .NET Command Line Tools (2.0.0-preview2-006195) ## Microsoft .NET Core Shared Framework Host ## Version : 2.0.0-preview2-25324-03 ## Build : b6c9f8ad69dc3edd601e288198de27975b514306 > dotnet run aa.txt - Archive bb.txt - Archive cc.txt - Archive ```" +20457 area-System.Threading TaskCancelWait1 failed with Task which has been explicitly cancel-requested either by parent must have CancellationRequested set as true\nExpected: True\nActual: False https://mc.dot.net/#/user/stephentoub/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fportable~2Fcli~2F/fb8b5bd13c0251b01a88cd3e65962ec2575fb023/workItem/System.Threading.Tasks.Tests/analysis/xunit/System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTestCases~2FTaskCancelWait1 ``` Task which has been explicitly cancel-requested either by parent must have CancellationRequested set as true\nExpected: True\nActual: False Stack Trace : at System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTest.VerifyCancel(TaskInfo current) in /mnt/j/workspace/dotnet_corefx/master/portable-linux-Config_Debug+OuterLoop_false_prtest/src/System.Threading.Tasks/tests/Task/TaskCancelWaitTest.cs:line 262 at System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTest.b__12_0(TaskInfo current) in /mnt/j/workspace/dotnet_corefx/master/portable-linux-Config_Debug+OuterLoop_false_prtest/src/System.Threading.Tasks/tests/Task/TaskCancelWaitTest.cs:line 208 at System.Threading.Tasks.Tests.CancelWait.TaskInfo.Traversal(Action`1 predicate) in /mnt/j/workspace/dotnet_corefx/master/portable-linux-Config_Debug+OuterLoop_false_prtest/src/System.Threading.Tasks/tests/Task/TaskCancelWaitTest.cs:line 584 at System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTest.Verify() in /mnt/j/workspace/dotnet_corefx/master/portable-linux-Config_Debug+OuterLoop_false_prtest/src/System.Threading.Tasks/tests/Task/TaskCancelWaitTest.cs:line 203 at System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTest.RealRun() in /mnt/j/workspace/dotnet_corefx/master/portable-linux-Config_Debug+OuterLoop_false_prtest/src/System.Threading.Tasks/tests/Task/TaskCancelWaitTest.cs:line 118 at System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTestCases.TaskCancelWait1() in /mnt/j/workspace/dotnet_corefx/master/portable-linux-Config_Debug+OuterLoop_false_prtest/src/System.Threading.Tasks/tests/Task/TaskCancelWaitTests.cs:line 25 ``` also @Priya91 saw here https://mc.dot.net/#/user/stephentoub/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fportable~2Fcli~2F/fb8b5bd13c0251b01a88cd3e65962ec2575fb023/workItem/System.Threading.Tasks.Tests/analysis/xunit/System.Threading.Tasks.Tests.CancelWait.TaskCancelWaitTestCases~2FTaskCancelWait1 +20458 area-Infrastructure Tizen emulator legs regularly timing out Eg https://ci.dot.net/job/dotnet_corefx/job/master/job/tizen_armel_cross_release_prtest/3234/ I don't know whether it's a hang, or just slow progress. @seanshpark @hseok-oh @gkhanna79 @parjong +20460 area-System.IO release/2.0: Fix incorrect length in File.WriteAllTextAsync Port https://github.com/dotnet/corefx/pull/20453 to release/2.0 Fixes https://github.com/dotnet/corefx/issues/20443 +20461 area-System.Net HttpClient with proxy on linux loads cpu on 100% "I'm writing a proxy checking service. This is a short test case: ```cs using System; using System.Collections.Generic; using System.Diagnostics; using System.Net; using System.Net.Http; using System.Security.Authentication; using System.Text; using System.Threading; using System.Threading.Tasks; namespace ProxyNetCoreTest { public static class ExceptionExtensions { public static string GetMessages(this Exception self) { return self.Message + "" | "" + self.InnerException?.GetMessages(); } } public class WebProxy : IWebProxy { public string Ip { get; } public int Port { get; } private readonly Uri _uri; public WebProxy(string ip, int port) { Ip = ip; Port = port; _uri = new Uri(""http://"" + ip + "":"" + port); } public Uri GetProxy(Uri destination) => _uri; public bool IsBypassed(Uri host) => false; public ICredentials Credentials { get; set; } } public class Program { public static List Proxies { get; } = new List { new WebProxy(""1.179.181.17"", 8081), new WebProxy(""1.179.183.93"", 8080), new WebProxy(""1.179.203.10"", 8080), new WebProxy(""1.209.188.190"", 8080), new WebProxy(""1.209.188.197"", 8080), new WebProxy(""101.200.56.102"", 3128), new WebProxy(""101.201.70.31"", 3128), new WebProxy(""101.255.84.184"", 8080), new WebProxy(""103.10.52.83"", 2841), new WebProxy(""103.10.52.83"", 3910), new WebProxy(""103.10.52.83"", 17189), new WebProxy(""103.15.120.147"", 8000), new WebProxy(""103.15.187.116"", 81), new WebProxy(""103.15.251.75"", 80), new WebProxy(""103.18.180.196"", 8080), new WebProxy(""103.205.134.179"", 8080), new WebProxy(""103.21.77.118"", 8080), new WebProxy(""103.212.33.57"", 3128), new WebProxy(""103.228.143.88"", 45554), new WebProxy(""103.242.45.68"", 8080), new WebProxy(""103.254.52.8"", 45554), new WebProxy(""103.254.52.9"", 36819), new WebProxy(""103.255.30.249"", 80), new WebProxy(""103.26.95.34"", 8080), new WebProxy(""103.27.118.146"", 3128), new WebProxy(""103.28.157.45"", 8080), new WebProxy(""103.3.69.33"", 8080), new WebProxy(""103.41.28.46"", 8080), new WebProxy(""103.43.153.165"", 8080), new WebProxy(""103.47.125.4"", 45554), new WebProxy(""103.55.33.54"", 3129), new WebProxy(""103.56.113.55"", 80), new WebProxy(""103.59.57.219"", 45554), new WebProxy(""103.6.245.204"", 8080), new WebProxy(""103.6.245.205"", 8080), new WebProxy(""103.6.245.206"", 8080), new WebProxy(""103.7.131.74"", 80), new WebProxy(""103.70.231.11"", 8080), new WebProxy(""103.76.170.154"", 80), new WebProxy(""103.76.175.84"", 8080), new WebProxy(""104.131.36.177"", 3128), new WebProxy(""104.193.252.181"", 3321), new WebProxy(""104.206.220.119"", 3128), new WebProxy(""104.206.220.12"", 3128), new WebProxy(""104.206.220.120"", 3128), new WebProxy(""104.206.220.121"", 3128), new WebProxy(""104.206.220.123"", 3128), new WebProxy(""104.219.136.138"", 8080), new WebProxy(""104.236.235.211"", 34499), new WebProxy(""106.186.22.65"", 8888), new WebProxy(""107.151.176.96"", 3128), new WebProxy(""107.16.212.37"", 8080), new WebProxy(""107.170.0.226"", 17245), new WebProxy(""107.170.0.226"", 32567), new WebProxy(""107.170.0.226"", 33525), new WebProxy(""107.170.61.29"", 80), new WebProxy(""107.170.61.29"", 3128), new WebProxy(""107.170.61.29"", 8080), new WebProxy(""108.161.151.98"", 80), new WebProxy(""108.166.205.163"", 3128), new WebProxy(""108.179.54.171"", 80), new WebProxy(""108.48.13.44"", 80), new WebProxy(""109.167.113.25"", 8080), new WebProxy(""109.185.180.87"", 8080), new WebProxy(""109.197.184.59"", 8080), new WebProxy(""109.197.184.7"", 8080), new WebProxy(""109.197.188.14"", 8080), new WebProxy(""109.197.188.20"", 8080), new WebProxy(""109.197.188.21"", 8080), new WebProxy(""109.197.188.22"", 8080), new WebProxy(""109.197.188.28"", 8080), new WebProxy(""109.197.188.30"", 8080), new WebProxy(""109.197.190.222"", 8080), new WebProxy(""109.228.46.132"", 3128), }; public static void Main(string[] args) { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); var sw = new Stopwatch(); sw.Start(); foreach (var proxy in Proxies) { sw.Restart(); Test(proxy).GetAwaiter().GetResult(); LogInfo($""{proxy.Ip}:{proxy.Port} -> Time: {sw.ElapsedMilliseconds}""); } LogInfo(""---=== END ===---""); Console.ReadKey(); } public static async Task Test(WebProxy proxy) { var url = ""https://api.ipify.org?format=json""; var handler = new HttpClientHandler { Proxy = proxy, UseCookies = false, ServerCertificateCustomValidationCallback = (message, xcert, chain, errors) => true, SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls, UseProxy = true }; LogInfo($""{proxy.Ip}:{proxy.Port} -> Start""); using (var client = new HttpClient(handler)) { try { using (var tokenSource = new CancellationTokenSource(4000)) using (var request = new HttpRequestMessage(HttpMethod.Get, url)) using (var response = await client.SendAsync(request, HttpCompletionOption.ResponseContentRead, tokenSource.Token)) { var data = await response.Content.ReadAsStringAsync(); LogInfo(data); } } catch (Exception e) { LogError($""{proxy.Ip}:{proxy.Port} -> Exception: {e.GetMessages()}""); } } } public static void LogError(string message) { Console.ForegroundColor = ConsoleColor.Yellow; LogInfo(message); Console.ResetColor(); } public static void LogInfo(string message) { Console.WriteLine($""{DateTime.Now:HH:mm:ss}: {message}""); } } } ``` The problem is observed on Linux Mint 18.1 Serena. On Windows 10 the problem is not observed. I attach the output of the program above. All requests that running for more than 4 seconds load 1 core of the processor by 100%. If you run several parallel tasks, the entire processor will be loaded 100%. Also, the cancellation takes place much later than 4 seconds. The problem is observed for different proxy servers and is not always repeated for any particular proxy server. Output for two program starts: ``` akfa@akfa-server /var/NetworkShare/ProxyTest $ dotnet ProxyNetCoreTest.dll 22:45:17: 1.179.181.17:8081 -> Start 22:45:21: 1.179.181.17:8081 -> Exception: A task was canceled. | 22:45:21: 1.179.181.17:8081 -> Time: 4278 22:45:21: 1.179.183.93:8080 -> Start 22:45:26: 1.179.183.93:8080 -> Exception: A task was canceled. | 22:45:26: 1.179.183.93:8080 -> Time: 4257 22:45:26: 1.179.203.10:8080 -> Start 22:45:30: 1.179.203.10:8080 -> Exception: A task was canceled. | 22:45:30: 1.179.203.10:8080 -> Time: 4005 22:45:30: 1.209.188.190:8080 -> Start 22:45:41: 1.209.188.190:8080 -> Exception: The operation was canceled. | 22:45:41: 1.209.188.190:8080 -> Time: 11855 22:45:41: 1.209.188.197:8080 -> Start 22:45:53: 1.209.188.197:8080 -> Exception: The operation was canceled. | 22:45:53: 1.209.188.197:8080 -> Time: 11542 22:45:53: 101.200.56.102:3128 -> Start 22:45:58: 101.200.56.102:3128 -> Exception: A task was canceled. | 22:45:58: 101.200.56.102:3128 -> Time: 4685 22:45:58: 101.201.70.31:3128 -> Start 22:46:02: 101.201.70.31:3128 -> Exception: A task was canceled. | 22:46:02: 101.201.70.31:3128 -> Time: 4005 22:46:02: 101.255.84.184:8080 -> Start 22:46:09: 101.255.84.184:8080 -> Exception: A task was canceled. | 22:46:09: 101.255.84.184:8080 -> Time: 7312 22:46:09: 103.10.52.83:2841 -> Start 22:46:13: 103.10.52.83:2841 -> Exception: A task was canceled. | 22:46:13: 103.10.52.83:2841 -> Time: 4003 22:46:13: 103.10.52.83:3910 -> Start 22:46:17: 103.10.52.83:3910 -> Exception: A task was canceled. | 22:46:17: 103.10.52.83:3910 -> Time: 4003 22:46:17: 103.10.52.83:17189 -> Start 22:46:21: 103.10.52.83:17189 -> Exception: An error occurred while sending the request. | Failure when receiving data from the peer | 22:46:21: 103.10.52.83:17189 -> Time: 3521 22:46:21: 103.15.120.147:8000 -> Start 22:46:25: 103.15.120.147:8000 -> Exception: A task was canceled. | 22:46:25: 103.15.120.147:8000 -> Time: 4007 22:46:25: 103.15.187.116:81 -> Start 22:46:38: 103.15.187.116:81 -> Exception: A task was canceled. | 22:46:38: 103.15.187.116:81 -> Time: 13370 22:46:38: 103.15.251.75:80 -> Start 22:46:42: 103.15.251.75:80 -> Exception: A task was canceled. | 22:46:42: 103.15.251.75:80 -> Time: 4003 22:46:42: 103.18.180.196:8080 -> Start 22:46:46: 103.18.180.196:8080 -> Exception: A task was canceled. | 22:46:46: 103.18.180.196:8080 -> Time: 4003 22:46:46: 103.205.134.179:8080 -> Start 22:46:50: 103.205.134.179:8080 -> Exception: A task was canceled. | 22:46:50: 103.205.134.179:8080 -> Time: 4003 22:46:50: 103.21.77.118:8080 -> Start 22:48:23: 103.21.77.118:8080 -> Exception: The operation was canceled. | 22:48:23: 103.21.77.118:8080 -> Time: 93514 22:48:23: 103.212.33.57:3128 -> Start 22:48:46: 103.212.33.57:3128 -> Exception: A task was canceled. | 22:48:46: 103.212.33.57:3128 -> Time: 22203 22:48:46: 103.228.143.88:45554 -> Start 22:51:49: 103.228.143.88:45554 -> Exception: The operation was canceled. | 22:51:49: 103.228.143.88:45554 -> Time: 183762 22:51:49: 103.242.45.68:8080 -> Start 22:51:57: 103.242.45.68:8080 -> Exception: A task was canceled. | 22:51:57: 103.242.45.68:8080 -> Time: 7768 22:51:57: 103.254.52.8:45554 -> Start 22:52:01: 103.254.52.8:45554 -> Exception: A task was canceled. | 22:52:01: 103.254.52.8:45554 -> Time: 4004 22:52:01: 103.254.52.9:36819 -> Start 22:52:05: 103.254.52.9:36819 -> Exception: A task was canceled. | 22:52:05: 103.254.52.9:36819 -> Time: 4003 22:52:05: 103.255.30.249:80 -> Start 22:52:09: 103.255.30.249:80 -> Exception: A task was canceled. | 22:52:09: 103.255.30.249:80 -> Time: 4151 22:52:09: 103.26.95.34:8080 -> Start 22:52:15: 103.26.95.34:8080 -> Exception: A task was canceled. | 22:52:15: 103.26.95.34:8080 -> Time: 6054 22:52:15: 103.27.118.146:3128 -> Start 22:52:20: 103.27.118.146:3128 -> Exception: A task was canceled. | 22:52:20: 103.27.118.146:3128 -> Time: 4596 22:52:20: 103.28.157.45:8080 -> Start 22:52:24: 103.28.157.45:8080 -> Exception: A task was canceled. | 22:52:24: 103.28.157.45:8080 -> Time: 4003 22:52:24: 103.3.69.33:8080 -> Start 22:52:28: 103.3.69.33:8080 -> Exception: A task was canceled. | 22:52:28: 103.3.69.33:8080 -> Time: 4003 22:52:28: 103.41.28.46:8080 -> Start 22:52:44: 103.41.28.46:8080 -> Exception: A task was canceled. | 22:52:44: 103.41.28.46:8080 -> Time: 15566 22:52:44: 103.43.153.165:8080 -> Start 22:52:48: 103.43.153.165:8080 -> Exception: A task was canceled. | 22:52:48: 103.43.153.165:8080 -> Time: 4797 22:52:48: 103.47.125.4:45554 -> Start 22:52:49: 103.47.125.4:45554 -> Exception: An error occurred while sending the request. | Couldn't connect to server | 22:52:49: 103.47.125.4:45554 -> Time: 207 22:52:49: 103.55.33.54:3129 -> Start 22:52:56: 103.55.33.54:3129 -> Exception: A task was canceled. | 22:52:56: 103.55.33.54:3129 -> Time: 7787 22:52:56: 103.56.113.55:80 -> Start 22:53:31: 103.56.113.55:80 -> Exception: A task was canceled. | 22:53:31: 103.56.113.55:80 -> Time: 35072 22:53:31: 103.59.57.219:45554 -> Start 22:53:34: 103.59.57.219:45554 -> Exception: An error occurred while sending the request. | Failure when receiving data from the peer | 22:53:34: 103.59.57.219:45554 -> Time: 2195 22:53:34: 103.6.245.204:8080 -> Start 22:53:37: {""ip"":""103.6.245.204""} 22:53:37: 103.6.245.204:8080 -> Time: 3384 22:53:37: 103.6.245.205:8080 -> Start 22:53:39: {""ip"":""103.6.245.204""} 22:53:39: 103.6.245.205:8080 -> Time: 2486 22:53:39: 103.6.245.206:8080 -> Start 22:53:42: {""ip"":""103.6.245.204""} 22:53:42: 103.6.245.206:8080 -> Time: 2449 22:53:42: 103.7.131.74:80 -> Start 22:53:48: 103.7.131.74:80 -> Exception: A task was canceled. | 22:53:48: 103.7.131.74:80 -> Time: 5994 22:53:48: 103.70.231.11:8080 -> Start 22:53:52: 103.70.231.11:8080 -> Exception: A task was canceled. | 22:53:52: 103.70.231.11:8080 -> Time: 4003 22:53:52: 103.76.170.154:80 -> Start 22:53:56: 103.76.170.154:80 -> Exception: A task was canceled. | 22:53:56: 103.76.170.154:80 -> Time: 4005 22:53:56: 103.76.175.84:8080 -> Start 22:54:01: 103.76.175.84:8080 -> Exception: A task was canceled. | 22:54:01: 103.76.175.84:8080 -> Time: 5394 22:54:01: 104.131.36.177:3128 -> Start 22:54:14: 104.131.36.177:3128 -> Exception: A task was canceled. | 22:54:14: 104.131.36.177:3128 -> Time: 12817 22:54:14: 104.193.252.181:3321 -> Start 22:54:47: 104.193.252.181:3321 -> Exception: The operation was canceled. | 22:54:47: 104.193.252.181:3321 -> Time: 33204 22:54:47: 104.206.220.119:3128 -> Start 22:54:51: 104.206.220.119:3128 -> Exception: A task was canceled. | 22:54:51: 104.206.220.119:3128 -> Time: 4003 22:54:51: 104.206.220.12:3128 -> Start 22:54:55: 104.206.220.12:3128 -> Exception: A task was canceled. | 22:54:55: 104.206.220.12:3128 -> Time: 4004 22:54:55: 104.206.220.120:3128 -> Start 22:55:13: 104.206.220.120:3128 -> Exception: A task was canceled. | 22:55:13: 104.206.220.120:3128 -> Time: 17736 22:55:13: 104.206.220.121:3128 -> Start 22:55:17: 104.206.220.121:3128 -> Exception: A task was canceled. | 22:55:17: 104.206.220.121:3128 -> Time: 4003 22:55:17: 104.206.220.123:3128 -> Start 22:55:37: 104.206.220.123:3128 -> Exception: A task was canceled. | 22:55:37: 104.206.220.123:3128 -> Time: 19890 22:55:37: 104.219.136.138:8080 -> Start 22:55:43: 104.219.136.138:8080 -> Exception: A task was canceled. | 22:55:43: 104.219.136.138:8080 -> Time: 5933 22:55:43: 104.236.235.211:34499 -> Start 22:55:47: 104.236.235.211:34499 -> Exception: A task was canceled. | 22:55:47: 104.236.235.211:34499 -> Time: 4003 22:55:47: 106.186.22.65:8888 -> Start 22:56:52: 106.186.22.65:8888 -> Exception: The operation was canceled. | 22:56:52: 106.186.22.65:8888 -> Time: 65475 22:56:52: 107.151.176.96:3128 -> Start 22:56:56: 107.151.176.96:3128 -> Exception: A task was canceled. | 22:56:56: 107.151.176.96:3128 -> Time: 4003 22:56:56: 107.16.212.37:8080 -> Start 22:56:58: 107.16.212.37:8080 -> Exception: An error occurred while sending the request. | Failure when receiving data from the peer | 22:56:58: 107.16.212.37:8080 -> Time: 1362 22:56:58: 107.170.0.226:17245 -> Start 22:56:58: 107.170.0.226:17245 -> Exception: An error occurred while sending the request. | Couldn't connect to server | 22:56:58: 107.170.0.226:17245 -> Time: 125 22:56:58: 107.170.0.226:32567 -> Start 22:56:58: 107.170.0.226:32567 -> Exception: An error occurred while sending the request. | Couldn't connect to server | 22:56:58: 107.170.0.226:32567 -> Time: 131 22:56:58: 107.170.0.226:33525 -> Start 22:56:58: 107.170.0.226:33525 -> Exception: An error occurred while sending the request. | Couldn't connect to server | 22:56:58: 107.170.0.226:33525 -> Time: 126 22:56:58: 107.170.61.29:80 -> Start 22:56:59: {""ip"":""107.170.61.29""} 22:56:59: 107.170.61.29:80 -> Time: 680 22:56:59: 107.170.61.29:3128 -> Start 22:57:00: {""ip"":""107.170.61.29""} 22:57:00: 107.170.61.29:3128 -> Time: 744 22:57:00: 107.170.61.29:8080 -> Start 22:57:00: {""ip"":""107.170.61.29""} 22:57:00: 107.170.61.29:8080 -> Time: 705 22:57:00: 108.161.151.98:80 -> Start 22:57:16: 108.161.151.98:80 -> Exception: The operation was canceled. | 22:57:16: 108.161.151.98:80 -> Time: 16184 22:57:16: 108.166.205.163:3128 -> Start 22:58:04: 108.166.205.163:3128 -> Exception: A task was canceled. | 22:58:04: 108.166.205.163:3128 -> Time: 47234 22:58:04: 108.179.54.171:80 -> Start 22:58:46: 108.179.54.171:80 -> Exception: A task was canceled. | 22:58:46: 108.179.54.171:80 -> Time: 42276 22:58:46: 108.48.13.44:80 -> Start 22:58:48: 108.48.13.44:80 -> Exception: An error occurred while sending the request. | Failure when receiving data from the peer | 22:58:48: 108.48.13.44:80 -> Time: 2412 22:58:48: 109.167.113.25:8080 -> Start 22:58:52: 109.167.113.25:8080 -> Exception: A task was canceled. | 22:58:52: 109.167.113.25:8080 -> Time: 4002 22:58:52: 109.185.180.87:8080 -> Start 22:58:56: 109.185.180.87:8080 -> Exception: A task was canceled. | 22:58:56: 109.185.180.87:8080 -> Time: 4003 22:58:56: 109.197.184.59:8080 -> Start 22:58:57: {""ip"":""109.197.184.59""} 22:58:57: 109.197.184.59:8080 -> Time: 707 22:58:57: 109.197.184.7:8080 -> Start 22:58:58: {""ip"":""109.197.184.7""} 22:58:58: 109.197.184.7:8080 -> Time: 715 22:58:58: 109.197.188.14:8080 -> Start 23:03:58: 109.197.188.14:8080 -> Exception: The operation was canceled. | 23:03:58: 109.197.188.14:8080 -> Time: 300118 23:03:58: 109.197.188.20:8080 -> Start 23:03:59: {""ip"":""109.197.188.20""} 23:03:59: 109.197.188.20:8080 -> Time: 1496 23:03:59: 109.197.188.21:8080 -> Start 23:04:00: {""ip"":""109.197.188.21""} 23:04:00: 109.197.188.21:8080 -> Time: 697 23:04:00: 109.197.188.22:8080 -> Start 23:04:02: {""ip"":""109.197.188.20""} 23:04:02: 109.197.188.22:8080 -> Time: 1861 23:04:02: 109.197.188.28:8080 -> Start 23:04:03: {""ip"":""109.197.188.20""} 23:04:03: 109.197.188.28:8080 -> Time: 1181 23:04:03: 109.197.188.30:8080 -> Start 23:04:04: {""ip"":""109.197.188.20""} 23:04:04: 109.197.188.30:8080 -> Time: 1007 23:04:04: 109.197.190.222:8080 -> Start 23:04:05: {""ip"":""109.197.190.222""} 23:04:05: 109.197.190.222:8080 -> Time: 613 23:04:05: 109.228.46.132:3128 -> Start 23:04:15: 109.228.46.132:3128 -> Exception: A task was canceled. | 23:04:15: 109.228.46.132:3128 -> Time: 10359 23:04:15: ---=== END ===--- akfa@akfa-server /var/NetworkShare/ProxyTest $ dotnet ProxyNetCoreTest.dll 23:20:09: 1.179.181.17:8081 -> Start 23:20:35: 1.179.181.17:8081 -> Exception: A task was canceled. | 23:20:35: 1.179.181.17:8081 -> Time: 25715 23:20:35: 1.179.183.93:8080 -> Start 23:20:39: 1.179.183.93:8080 -> Exception: A task was canceled. | 23:20:39: 1.179.183.93:8080 -> Time: 4005 23:20:39: 1.179.203.10:8080 -> Start 23:20:43: 1.179.203.10:8080 -> Exception: A task was canceled. | 23:20:43: 1.179.203.10:8080 -> Time: 4372 23:20:43: 1.209.188.190:8080 -> Start 23:20:54: 1.209.188.190:8080 -> Exception: The operation was canceled. | 23:20:54: 1.209.188.190:8080 -> Time: 11230 23:20:54: 1.209.188.197:8080 -> Start 23:21:09: 1.209.188.197:8080 -> Exception: The operation was canceled. | 23:21:09: 1.209.188.197:8080 -> Time: 14493 23:21:09: 101.200.56.102:3128 -> Start 23:21:13: 101.200.56.102:3128 -> Exception: A task was canceled. | 23:21:13: 101.200.56.102:3128 -> Time: 4005 23:21:13: 101.201.70.31:3128 -> Start 23:22:17: 101.201.70.31:3128 -> Exception: A task was canceled. | 23:22:17: 101.201.70.31:3128 -> Time: 64772 23:22:17: 101.255.84.184:8080 -> Start 23:22:21: 101.255.84.184:8080 -> Exception: A task was canceled. | 23:22:21: 101.255.84.184:8080 -> Time: 4004 23:22:21: 103.10.52.83:2841 -> Start 23:22:25: 103.10.52.83:2841 -> Exception: A task was canceled. | 23:22:25: 103.10.52.83:2841 -> Time: 4004 23:22:25: 103.10.52.83:3910 -> Start 23:22:26: 103.10.52.83:3910 -> Exception: An error occurred while sending the request. | Failure when receiving data from the peer | 23:22:26: 103.10.52.83:3910 -> Time: 523 23:22:26: 103.10.52.83:17189 -> Start 23:22:29: 103.10.52.83:17189 -> Exception: An error occurred while sending the request. | Failure when receiving data from the peer | 23:22:29: 103.10.52.83:17189 -> Time: 3519 23:22:29: 103.15.120.147:8000 -> Start 23:22:33: 103.15.120.147:8000 -> Exception: A task was canceled. | 23:22:33: 103.15.120.147:8000 -> Time: 4001 23:22:33: 103.15.187.116:81 -> Start 23:22:37: 103.15.187.116:81 -> Exception: A task was canceled. | 23:22:37: 103.15.187.116:81 -> Time: 4003 23:22:37: 103.15.251.75:80 -> Start 23:22:42: 103.15.251.75:80 -> Exception: A task was canceled. | 23:22:42: 103.15.251.75:80 -> Time: 4005 23:22:42: 103.18.180.196:8080 -> Start 23:22:46: 103.18.180.196:8080 -> Exception: A task was canceled. | 23:22:46: 103.18.180.196:8080 -> Time: 4007 23:22:46: 103.205.134.179:8080 -> Start 23:22:52: 103.205.134.179:8080 -> Exception: A task was canceled. | 23:22:52: 103.205.134.179:8080 -> Time: 6762 23:22:52: 103.21.77.118:8080 -> Start 23:22:56: 103.21.77.118:8080 -> Exception: A task was canceled. | 23:22:56: 103.21.77.118:8080 -> Time: 4010 23:22:56: 103.212.33.57:3128 -> Start 23:23:33: 103.212.33.57:3128 -> Exception: A task was canceled. | 23:23:33: 103.212.33.57:3128 -> Time: 36361 23:23:33: 103.228.143.88:45554 -> Start 23:23:44: 103.228.143.88:45554 -> Exception: The operation was canceled. | 23:23:44: 103.228.143.88:45554 -> Time: 11158 23:23:44: 103.242.45.68:8080 -> Start 23:23:49: 103.242.45.68:8080 -> Exception: A task was canceled. | 23:23:49: 103.242.45.68:8080 -> Time: 5584 23:23:49: 103.254.52.8:45554 -> Start 23:24:23: 103.254.52.8:45554 -> Exception: The operation was canceled. | 23:24:23: 103.254.52.8:45554 -> Time: 33263 23:24:23: 103.254.52.9:36819 -> Start 23:24:27: 103.254.52.9:36819 -> Exception: A task was canceled. | 23:24:27: 103.254.52.9:36819 -> Time: 4003 23:24:27: 103.255.30.249:80 -> Start 23:24:34: 103.255.30.249:80 -> Exception: A task was canceled. | 23:24:34: 103.255.30.249:80 -> Time: 7578 23:24:34: 103.26.95.34:8080 -> Start 23:24:38: 103.26.95.34:8080 -> Exception: A task was canceled. | 23:24:38: 103.26.95.34:8080 -> Time: 4005 23:24:38: 103.27.118.146:3128 -> Start 23:24:43: 103.27.118.146:3128 -> Exception: A task was canceled. | 23:24:43: 103.27.118.146:3128 -> Time: 4697 23:24:43: 103.28.157.45:8080 -> Start 23:24:51: 103.28.157.45:8080 -> Exception: A task was canceled. | 23:24:51: 103.28.157.45:8080 -> Time: 7701 23:24:51: 103.3.69.33:8080 -> Start 23:24:55: 103.3.69.33:8080 -> Exception: A task was canceled. | 23:24:55: 103.3.69.33:8080 -> Time: 4230 23:24:55: 103.41.28.46:8080 -> Start 23:24:59: 103.41.28.46:8080 -> Exception: A task was canceled. | 23:24:59: 103.41.28.46:8080 -> Time: 4003 23:24:59: 103.43.153.165:8080 -> Start 23:25:03: 103.43.153.165:8080 -> Exception: A task was canceled. | 23:25:03: 103.43.153.165:8080 -> Time: 4004 23:25:03: 103.47.125.4:45554 -> Start 23:25:07: 103.47.125.4:45554 -> Exception: A task was canceled. | 23:25:07: 103.47.125.4:45554 -> Time: 4003 23:25:07: 103.55.33.54:3129 -> Start 23:25:17: 103.55.33.54:3129 -> Exception: A task was canceled. | 23:25:17: 103.55.33.54:3129 -> Time: 9647 23:25:17: 103.56.113.55:80 -> Start 23:25:34: 103.56.113.55:80 -> Exception: A task was canceled. | 23:25:34: 103.56.113.55:80 -> Time: 17103 23:25:34: 103.59.57.219:45554 -> Start 23:25:38: 103.59.57.219:45554 -> Exception: A task was canceled. | 23:25:38: 103.59.57.219:45554 -> Time: 4005 23:25:38: 103.6.245.204:8080 -> Start 23:25:54: 103.6.245.204:8080 -> Exception: A task was canceled. | 23:25:54: 103.6.245.204:8080 -> Time: 16042 23:25:54: 103.6.245.205:8080 -> Start 23:26:01: 103.6.245.205:8080 -> Exception: A task was canceled. | 23:26:01: 103.6.245.205:8080 -> Time: 7789 23:26:01: 103.6.245.206:8080 -> Start 23:26:07: 103.6.245.206:8080 -> Exception: A task was canceled. | 23:26:07: 103.6.245.206:8080 -> Time: 6009 23:26:07: 103.7.131.74:80 -> Start 23:26:22: 103.7.131.74:80 -> Exception: A task was canceled. | 23:26:22: 103.7.131.74:80 -> Time: 14383 23:26:22: 103.70.231.11:8080 -> Start 23:26:26: 103.70.231.11:8080 -> Exception: A task was canceled. | 23:26:26: 103.70.231.11:8080 -> Time: 4004 23:26:26: 103.76.170.154:80 -> Start 23:26:30: 103.76.170.154:80 -> Exception: A task was canceled. | 23:26:30: 103.76.170.154:80 -> Time: 4005 23:26:30: 103.76.175.84:8080 -> Start 23:26:34: 103.76.175.84:8080 -> Exception: A task was canceled. | 23:26:34: 103.76.175.84:8080 -> Time: 4003 23:26:34: 104.131.36.177:3128 -> Start 23:26:38: 104.131.36.177:3128 -> Exception: A task was canceled. | 23:26:38: 104.131.36.177:3128 -> Time: 4004 23:26:38: 104.193.252.181:3321 -> Start 23:27:09: 104.193.252.181:3321 -> Exception: The operation was canceled. | 23:27:09: 104.193.252.181:3321 -> Time: 31602 23:27:09: 104.206.220.119:3128 -> Start 23:27:13: 104.206.220.119:3128 -> Exception: A task was canceled. | 23:27:13: 104.206.220.119:3128 -> Time: 4004 23:27:13: 104.206.220.12:3128 -> Start 23:27:31: 104.206.220.12:3128 -> Exception: The operation was canceled. | 23:27:31: 104.206.220.12:3128 -> Time: 17446 23:27:31: 104.206.220.120:3128 -> Start 23:27:44: 104.206.220.120:3128 -> Exception: A task was canceled. | 23:27:44: 104.206.220.120:3128 -> Time: 12793 23:27:44: 104.206.220.121:3128 -> Start 23:27:55: 104.206.220.121:3128 -> Exception: A task was canceled. | 23:27:55: 104.206.220.121:3128 -> Time: 11409 23:27:55: 104.206.220.123:3128 -> Start 23:27:59: 104.206.220.123:3128 -> Exception: A task was canceled. | 23:27:59: 104.206.220.123:3128 -> Time: 4003 23:27:59: 104.219.136.138:8080 -> Start 23:28:01: {""ip"":""104.219.136.138""} 23:28:01: 104.219.136.138:8080 -> Time: 2012 23:28:01: 104.236.235.211:34499 -> Start 23:29:35: 104.236.235.211:34499 -> Exception: The operation was canceled. | 23:29:35: 104.236.235.211:34499 -> Time: 93541 23:29:35: 106.186.22.65:8888 -> Start 23:29:39: 106.186.22.65:8888 -> Exception: A task was canceled. | 23:29:39: 106.186.22.65:8888 -> Time: 4007 23:29:39: 107.151.176.96:3128 -> Start 23:29:43: 107.151.176.96:3128 -> Exception: A task was canceled. | 23:29:43: 107.151.176.96:3128 -> Time: 4004 23:29:43: 107.16.212.37:8080 -> Start 23:30:02: 107.16.212.37:8080 -> Exception: A task was canceled. | 23:30:02: 107.16.212.37:8080 -> Time: 19266 23:30:02: 107.170.0.226:17245 -> Start 23:30:02: 107.170.0.226:17245 -> Exception: An error occurred while sending the request. | Couldn't connect to server | 23:30:02: 107.170.0.226:17245 -> Time: 129 23:30:02: 107.170.0.226:32567 -> Start 23:30:02: 107.170.0.226:32567 -> Exception: An error occurred while sending the request. | Couldn't connect to server | 23:30:02: 107.170.0.226:32567 -> Time: 128 23:30:02: 107.170.0.226:33525 -> Start 23:30:02: 107.170.0.226:33525 -> Exception: An error occurred while sending the request. | Couldn't connect to server | 23:30:02: 107.170.0.226:33525 -> Time: 137 23:30:02: 107.170.61.29:80 -> Start 23:30:03: {""ip"":""107.170.61.29""} 23:30:03: 107.170.61.29:80 -> Time: 843 23:30:03: 107.170.61.29:3128 -> Start 23:30:04: {""ip"":""107.170.61.29""} 23:30:04: 107.170.61.29:3128 -> Time: 766 23:30:04: 107.170.61.29:8080 -> Start 23:30:05: {""ip"":""107.170.61.29""} 23:30:05: 107.170.61.29:8080 -> Time: 732 23:30:05: 108.161.151.98:80 -> Start 23:30:09: 108.161.151.98:80 -> Exception: A task was canceled. | 23:30:09: 108.161.151.98:80 -> Time: 4004 23:30:09: 108.166.205.163:3128 -> Start 23:31:21: 108.166.205.163:3128 -> Exception: A task was canceled. | 23:31:21: 108.166.205.163:3128 -> Time: 72769 23:31:21: 108.179.54.171:80 -> Start 23:31:22: 108.179.54.171:80 -> Exception: An error occurred while sending the request. | Couldn't connect to server | 23:31:22: 108.179.54.171:80 -> Time: 133 23:31:22: 108.48.13.44:80 -> Start 23:31:41: 108.48.13.44:80 -> Exception: The operation was canceled. | 23:31:41: 108.48.13.44:80 -> Time: 19267 23:31:41: 109.167.113.25:8080 -> Start 23:32:01: 109.167.113.25:8080 -> Exception: A task was canceled. | 23:32:01: 109.167.113.25:8080 -> Time: 20532 23:32:01: 109.185.180.87:8080 -> Start 23:32:16: 109.185.180.87:8080 -> Exception: A task was canceled. | 23:32:16: 109.185.180.87:8080 -> Time: 14088 23:32:16: 109.197.184.59:8080 -> Start 23:32:16: {""ip"":""109.197.184.59""} 23:32:16: 109.197.184.59:8080 -> Time: 788 23:32:16: 109.197.184.7:8080 -> Start 23:32:17: {""ip"":""109.197.184.7""} 23:32:17: 109.197.184.7:8080 -> Time: 745 23:32:17: 109.197.188.14:8080 -> Start 23:37:17: 109.197.188.14:8080 -> Exception: The operation was canceled. | 23:37:17: 109.197.188.14:8080 -> Time: 300154 23:37:17: 109.197.188.20:8080 -> Start 23:37:21: 109.197.188.20:8080 -> Exception: A task was canceled. | 23:37:21: 109.197.188.20:8080 -> Time: 4005 23:37:21: 109.197.188.21:8080 -> Start 23:37:22: {""ip"":""109.197.188.21""} 23:37:22: 109.197.188.21:8080 -> Time: 700 23:37:22: 109.197.188.22:8080 -> Start 23:37:31: 109.197.188.22:8080 -> Exception: A task was canceled. | 23:37:31: 109.197.188.22:8080 -> Time: 9396 23:37:31: 109.197.188.28:8080 -> Start 23:37:40: 109.197.188.28:8080 -> Exception: A task was canceled. | 23:37:40: 109.197.188.28:8080 -> Time: 8500 23:37:40: 109.197.188.30:8080 -> Start 23:37:50: 109.197.188.30:8080 -> Exception: A task was canceled. | 23:37:50: 109.197.188.30:8080 -> Time: 10568 23:37:50: 109.197.190.222:8080 -> Start 23:42:50: 109.197.190.222:8080 -> Exception: The operation was canceled. | 23:42:50: 109.197.190.222:8080 -> Time: 300093 23:42:50: 109.228.46.132:3128 -> Start 23:43:06: 109.228.46.132:3128 -> Exception: A task was canceled. | 23:43:06: 109.228.46.132:3128 -> Time: 15336 23:43:06: ---=== END ===--- ```" +20464 area-Serialization Disable Serialization Tests Failing on Uapaot +20465 area-System.Net WebHeaderCollection tests fail in ILC mode due to missing strings in test runner "System.Net.WebHeaderCollection tests run fine in F5 ('uap') mode. But in ILC ('uap-aot') mode they are failing. It seems that strings are missing from the exceptions being thrown in a test like this: ```c# [Theory] [MemberData(nameof(InvalidValues))] public void Add_InvalidValue_ThrowsArgumentException(string value) { var headers = new WebHeaderCollection(); Assert.Throws(""value"", () => headers.Add(""name"", value)); } ``` We get failures like this: >System.Net.Tests.WebHeaderCollectionTest.Add_InvalidValue_ThrowsArgumentException(value: \""value1\\nvalue2\\r\"") [FAIL] Assert.Equal() Failure Expected: value Actual: (null) Stack Trace: s:\GitHub\corefx\src\System.Net.WebHeaderCollection\tests\WebHeaderCollectionTest.cs(495,0): at System.Net.Tests.WebHeaderCollectionTest.Add_Invalid Value_ThrowsArgumentException(String value) Is this an expected problem from the UWP test runner in ILC mode? cc: @tarekgh @danmosemsft @AlexGhiondea " +20469 area-System.Net Port HttpListener fix for disconnect while reading request body Merge fix #20428 @stephentoub +20470 area-System.Net NetEventSource tests aren't working in ILC (multiple contracts) "Running this test passes in F5 ('uap') mode but fails in ILC ('uap-aot') mode: Test: ```c# public class WebHeaderCollectionLoggingTest { [Fact] [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""NetEventSource is only part of .NET Core"")] public void EventSource_ExistsWithCorrectId() ``` >System.Net.Tests.WebHeaderCollectionLoggingTest.EventSource_ExistsWithCorrectId [FAIL] System.TypeLoadException : The type 'System.Net.NetEventSource' cannot be found in assembly 'System.Net.WebHeaderCollection, Version=4.1.1.0, Culture=n eutral, PublicKeyToken=b03f5f7f11d50a3a'. Stack Trace: f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\General\Helpers.cs(158,0): at System.Reflection.Runtime.Gen eral.Helpers.CreateTypeLoadException(String typeName, Assembly assemblyIfAny) f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\TypeParsing\GetTypeOptions.cs(58,0): at System.Reflection.R untime.TypeParsing.GetTypeOptions.CoreResolveType(Assembly containingAssemblyIfAny, String name) f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\TypeParsing\TypeName.cs(90,0): at System.Reflection.Runtime .TypeParsing.NamespaceTypeName.ResolveType(Assembly containingAssemblyIfAny, $GetTypeOptions getTypeOptions) f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\Assemblies\RuntimeAssembly.cs(103,0): at System.Reflection. Runtime.Assemblies.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase) s:\GitHub\corefx\src\System.Net.WebHeaderCollection\tests\LoggingTest.cs(16,0): at System.Net.Tests.WebHeaderCollectionLoggingTest.EventSource_Exist sWithCorrectId() at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Bo olean isTargetThisCall) f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs(400,0): at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, I ntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDe legate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall)" +20472 area-Infrastructure Update Xunit.NetCore.extensions This update includes two changes: * https://github.com/dotnet/buildtools/pull/1522 * https://github.com/dotnet/buildtools/pull/1518 cc: @tarekgh @weshaggard +20473 area-System.Net Disable some WebHeaderCollection tests on ILC test runs Disable some WebHeaderCollection tests on 'uap-aot' (ILC) test runs. Contributes to #20465 and #20470 +20474 area-System.Collections System.Collections.Concurrent test is crashing the run for x86 ILC uapaot runs ManyConcurrentAddsTakes_ForceContentionWithToArray was hitting a Debug.Assert only on x86 uapaot ilc runs. The test was skipped so that the run can continue since today we are not producing results because of it. This issue is to track the required work to fix that and re-enable the test. +20476 area-Serialization Test DCS_TypeWithPrivateFieldAndPrivateGetPublicSetProperty Failed on Uapaot "``` DataContractSerializerTests.DCS_TypeWithPrivateFieldAndPrivateGetPublicSetProperty [FAIL] XML comparison is also failing Test failed for input: TypeWithPrivateFieldAndPrivateGetPublicSetProperty Expected: foo< /Name> Actual: Expected: True Actual: False Stack Trace: d:\OSS\corefx-1\corefx\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs(3161,0): at DataContractSerializerTests.SerializeAndDeserialize(__Canon value, String baseline, $DataContractSerializerSettings settings, Func$1<$DataContractSerializer> serializerFactory, Boolean skipStringCompare) d:\OSS\corefx-1\corefx\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs(822,0): at DataContractSerializerTests.DCS_TypeWithPrivateFieldAndPrivateGetPu blicSetProperty() at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall ) f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs(400,0): at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Ob ject thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle bi nderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) ```" +20477 area-Serialization Test DCS_InnerExceptionMessageWithSpecialChars Failed on Uapaot ``` DataContractSerializerTests.DCS_InnerExceptionMessageWithSpecialChars [FAIL] System.NotImplementedException : The method or operation is not implemented. Stack Trace: d:\OSS\corefx-1\corefx\src\System.Text.RegularExpressions\src\System\Text\RegularExpressions\RegexMatchTimeoutException.cs(60,0): at System.Reflection.Assembly.get_HostCo ntext() d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs(591,0): at System.Runtime.Serializ ation.XmlObjectSerializerWriteContext.GetObjectData(ISerializable obj, SerializationInfo serInfo, StreamingContext context) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs(598,0): at System.Runtime.Serializ ation.XmlObjectSerializerWriteContext.WriteISerializable($XmlWriterDelegator xmlWriter, ISerializable obj) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionClassWriter.cs(26,0): at System.Runtime.Serialization.Refle ctionClassWriter.ReflectionWriteClass($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context, $ClassDataContract classContract, $XmlDictionaryString[] memberNames) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionXmlFormatWriter.cs(20,0): at System.Runtime.Serialization.R eflectionXmlFormatWriter.ReflectionWriteClass($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context, $ClassDataContract classContract) Invoke(16707566,0): at System.Runtime.Serialization.XmlFormatClassWriterDelegate.Invoke($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext contex t, $ClassDataContract dataContract) ``` +20478 area-Serialization DCS/DCJS Failed to Serialize System Types in ReflectionOnly Mode "DCS/DCJS failed to serialize System types in ReflectionOnly mode due to the reflection on the types being blocked. The following tests failed. ``` DataContractSerializerTests.DCS_ReadOnlyDictionary DataContractSerializerTests.DCS_GenericStack DataContractSerializerTests.DCS_Stack DataContractSerializerTests.DCS_SystemVersion DataContractSerializerTests.DCS_ListMembers DataContractSerializerTests.DCS_BasicRoundtripDCRDefaultCollections DataContractSerializerTests.DCS_SortedList DataContractSerializerTests.DCS_GenericQueue DataContractSerializerTests.DCS_Queue DataContractSerializerTests.DCS_ReadOnlyCollection DataContractJsonSerializerTests.DCJS_Queue DataContractJsonSerializerTests.DCJS_GetOonlyDictionary_UseSimpleDictionaryFormat DataContractJsonSerializerTests.DCJS_Stack DataContractJsonSerializerTests.DCJS_ReadOnlyDictionary DataContractJsonSerializerTests.DCJS_GenericQueue DataContractJsonSerializerTests.DCJS_ReadOnlyCollection DataContractJsonSerializerTests.DCJS_GenericStack DataContractJsonSerializerTests.DCJS_SortedList DataContractJsonSerializerTests.DCJS_SystemVersion ``` Example call stack: ``` FooBar\r\n Actual: \r\n Expected: True\r\n Actual: False]]> (__Canon value, String baseline, $DataContractSerializerSettings settings, Func$1<$DataContractSerializer> serializerFactory, Boolean skipStringCompare) in d:\OSS\corefx-1\corefx\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 3163 at DataContractSerializerTests.DCS_ReadOnlyCollection() in d:\OSS\corefx-1\corefx\src\System.Runtime.Serialization.Xml\tests\DataContractSerializer.cs:line 1885 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs:line 400]]> ```" +20480 area-Serialization Need use full name when to get the type of XmlSerializerNamespaces https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/src/System/Xml/Serialization/XmlReflectionImporter.cs#L1839 Need use the full name for XmlSerializerNamespaces since the code is shared with SGEN. +20481 area-Serialization Test DCJS_VerifyDictionaryFormat Failed on Uapaot Using Sg.exe ``` DataContractJsonSerializerTests.DCJS_VerifyDictionaryFormat [FAIL] System.Runtime.Serialization.SerializationException : The dictionary of type 'System.Collections.Generic.Dictionary`2[[TestStruct, System.Runtime.Serialization.Json.Tests, V ersion=4.0.4.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb],[TestStruct, System.Runtime.Serialization.Json.Tests, Version=4.0.4.0, Culture=neutral, PublicKeyToken=9d77cc7ad3 9b68eb]]' cannot be deserialized as a simple dictionary because its key type 'TestStruct' does not have a public static Parse method. Stack Trace: at Type924.ReadArrayOfKeyValueOfTestStructTestStructaI91YjnmFromJson($XmlReaderDelegator A_0, $XmlObjectSerializerReadContextComplexJson A_1, $XmlDictionaryString A_2, $XmlDictionaryString A_3, $CollectionDataContract A_4) InvokeOpenStaticThunk(16707566,0): at System.Runtime.Serialization.XmlFormatCollectionReaderDelegate.InvokeOpenStaticThunk($XmlReaderDelegator xmlReader, $XmlObjectSerial izerReadContext context, $XmlDictionaryString itemName, $XmlDictionaryString itemNamespace, $CollectionDataContract collectionContract) Invoke(16707566,0): at System.Runtime.Serialization.XmlFormatCollectionReaderDelegate.Invoke($XmlReaderDelegator xmlReader, $XmlObjectSerializerReadContext context, $XmlD ictionaryString itemName, $XmlDictionaryString itemNamespace, $CollectionDataContract collectionContract) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\JsonCollectionDataContract.cs(170,0): at System.Runtime.Serializ ation.Json.JsonCollectionDataContract.ReadJsonValueCore($XmlReaderDelegator jsonReader, $XmlObjectSerializerReadContextComplexJson context) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\JsonDataContract.cs(80,0): at System.Runtime.Serialization.Json. JsonDataContract.ReadJsonValue($XmlReaderDelegator jsonReader, $XmlObjectSerializerReadContextComplexJson context) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\XmlObjectSerializerReadContextComplexJson.cs(52,0): at System.Ru ntime.Serialization.Json.XmlObjectSerializerReadContextComplexJson.ReadDataContractValue($DataContract dataContract, $XmlReaderDelegator reader) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerReadContext.cs(201,0): at System.Runtime.Serializa tion.XmlObjectSerializerReadContext.InternalDeserialize($XmlReaderDelegator reader, String name, String ns, $DataContract& dataContract) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerReadContext.cs(127,0): at System.Runtime.Serializa tion.XmlObjectSerializerReadContext.InternalDeserialize($XmlReaderDelegator xmlReader, Type declaredType, $DataContract dataContract, String name, String ns) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerReadContextComplex.cs(72,0): at System.Runtime.Ser ialization.XmlObjectSerializerReadContextComplex.InternalDeserialize($XmlReaderDelegator xmlReader, Type declaredType, $DataContract dataContract, String name, String ns) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs(861,0): at System.Runtime.Serializ ation.Json.DataContractJsonSerializerImpl.InternalReadObject($XmlReaderDelegator xmlReader, Boolean verifyObjectName) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs(261,0): at System.Runtime.Serialization.XmlObj ectSerializer.InternalReadObject($XmlReaderDelegator reader, Boolean verifyObjectName, $DataContractResolver dataContractResolver) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs(280,0): at System.Runtime.Serialization.XmlObj ectSerializer.ReadObjectHandleExceptions($XmlReaderDelegator reader, Boolean verifyObjectName, $DataContractResolver dataContractResolver) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs(684,0): at System.Runtime.Serializ ation.Json.DataContractJsonSerializerImpl.ReadObject($XmlDictionaryReader reader) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs(669,0): at System.Runtime.Serializ ation.Json.DataContractJsonSerializerImpl.ReadObject(Stream stream) d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs(199,0): at System.Runtime.Serializ ation.Json.DataContractJsonSerializer.ReadObject(Stream stream) d:\OSS\corefx-1\corefx\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs(2865,0): at DataContractJsonSerializerTests.SerializeAndDeserialize(__Canon value, String baseline, $DataContractJsonSerializerSettings settings, Func$1<$DataContractJsonSerializer> serializerFactory, Boolean skipStringCompare) d:\OSS\corefx-1\corefx\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs(2714,0): at DataContractJsonSerializerTests.DCJS_VerifyDictionaryFormat() at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall ) f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs(400,0): at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Ob ject thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle bi nderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall)``` +20482 area-System.Net ILC optimization causes reflection to fail in System.Net.Primitives CookieParser test `SetCookies_InvalidData_Throws` is throwing a Debug.Assert in Debug uapaot ilc test runs, so the test will be disabled in order for the test run to complete. This issue is to track the work of fixing the issue causing the Debug.Assert to be called, and for re-enabling the test. +20483 area-Serialization Test DCJS_VerifyIndentation Failed on Uapaot Using Sg.exe ``` DataContractJsonSerializerTests.DCJS_VerifyIndentation [FAIL] System.InvalidOperationException : Type 'System.Collections.Generic.KeyValuePair`2[System.String,System.String]' cannot be added to list of known types since another type 'S ystem.Collections.Generic.KeyValuePair`2[System.String,System.String]' with the same data contract name 'http://schemas.datacontract.org/2004/07/System.Collections.Generic:KeyValu ePairOfstringstring' is already present. typesChecked, Dictionary$2<$XmlQualifiedName,$DataContract>& nameToDataContractTable) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\DataContract.cs:line 2186 at System.Runtime.Serialization.XmlObjectSerializerContext.GetDataContractsForKnownTypes(IList$1 knownTypeList) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerContext.cs:line 211 at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.get_KnownDataContracts() in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 112 at System.Runtime.Serialization.XmlObjectSerializerContext.GetDataContractFromSerializerKnownTypes($XmlQualifiedName qname) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerContext.cs:line 193 at System.Runtime.Serialization.XmlObjectSerializerContext.ResolveDataContractFromKnownTypes($XmlQualifiedName typeName) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerContext.cs:line 260 at System.Runtime.Serialization.XmlObjectSerializerContext.ResolveDataContractFromKnownTypes(String typeName, String typeNs, $DataContract memberTypeContract) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerContext.cs:line 272 at System.Runtime.Serialization.XmlObjectSerializerContext.IsKnownType($DataContract dataContract, Type declaredType) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerContext.cs:line 236 at System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.VerifyType($DataContract dataContract, Type declaredType) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\XmlObjectSerializerWriteContextComplexJson.cs:line 288 at System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.HandleCollectionAssignedToObject(Type declaredType, $DataContract& dataContract, Object& obj, Boolean& verifyKnownType) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\XmlObjectSerializerWriteContextComplexJson.cs:line 231 at System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.SerializeWithXsiType($XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle objectTypeHandle, Type objectType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle, Type declaredType) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\XmlObjectSerializerWriteContextComplexJson.cs:line 215 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerialize($XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 138 at System.Runtime.Serialization.XmlObjectSerializerWriteContextComplex.InternalSerialize($XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContextComplex.cs:line 181 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.InternalSerializeReference($XmlWriterDelegator xmlWriter, Object obj, Boolean isDeclaredType, Boolean writeXsiType, Int32 declaredTypeID, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 106 at Type987.WriteArrayOfanyTypeToJson($XmlWriterDelegator A_0, Object A_1, $XmlObjectSerializerWriteContextComplexJson A_2, $CollectionDataContract A_3) at System.Runtime.Serialization.XmlFormatCollectionWriterDelegate.InvokeOpenStaticThunk($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContext context, $CollectionDataContract dataContract) in InvokeOpenStaticThunk:line 16707566 at System.Runtime.Serialization.Json.JsonFormatCollectionWriterDelegate.Invoke($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContextComplexJson context, $CollectionDataContract dataContract) in Invoke:line 16707566 at System.Runtime.Serialization.Json.JsonCollectionDataContract.WriteJsonValueCore($XmlWriterDelegator jsonWriter, Object obj, $XmlObjectSerializerWriteContextComplexJson context, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\JsonCollectionDataContract.cs:line 180 at System.Runtime.Serialization.Json.JsonDataContract.WriteJsonValue($XmlWriterDelegator jsonWriter, Object obj, $XmlObjectSerializerWriteContextComplexJson context, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\JsonDataContract.cs:line 93 at System.Runtime.Serialization.Json.XmlObjectSerializerWriteContextComplexJson.WriteDataContractValue($DataContract dataContract, $XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\XmlObjectSerializerWriteContextComplexJson.cs:line 181 at System.Runtime.Serialization.XmlObjectSerializerWriteContext.SerializeWithoutXsiType($DataContract dataContract, $XmlWriterDelegator xmlWriter, Object obj, RuntimeTypeHandle declaredTypeHandle) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializerWriteContext.cs:line 155 at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.InternalWriteObjectContent($XmlWriterDelegator writer, Object graph) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 904 at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.InternalWriteObject($XmlWriterDelegator writer, Object graph) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 872 at System.Runtime.Serialization.XmlObjectSerializer.InternalWriteObject($XmlWriterDelegator writer, Object graph, $DataContractResolver dataContractResolver) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 101 at System.Runtime.Serialization.XmlObjectSerializer.WriteObjectHandleExceptions($XmlWriterDelegator writer, Object graph, $DataContractResolver dataContractResolver) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\XmlObjectSerializer.cs:line 71 at System.Runtime.Serialization.Json.DataContractJsonSerializerImpl.WriteObject($XmlDictionaryWriter writer, Object graph) in d:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\DataContractJsonSerializer.cs:line 720 at DataContractJsonSerializerTests.VerifyIndentationOfSerializedXml(__Canon value, String baseline, String indentChars, $DataContractJsonSerializerSettings settings, Func$1<$DataContractJsonSerializer> serializerFactory, Boolean skipStringCompare) in d:\OSS\corefx-1\corefx\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs:line 2956 at DataContractJsonSerializerTests.DCJS_VerifyIndentation() in d:\OSS\corefx-1\corefx\src\System.Runtime.Serialization.Json\tests\DataContractJsonSerializer.cs:line 2830 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs:line 400]]> ``` +20484 area-System.Net Fixing System.Net.Primitives uapaot ilc Debug test runs cc: @stephentoub @danmosemsft @JonHanna One more very similar. For the rest of the ones in System.Net, I'll try to batch them into one PR and have only one issue tracking the fixing of them. +20486 area-Infrastructure Initial work to enable CoreFx perf rolling runs on Linux. +20487 area-System.Diagnostics Mark DiagnosticSource 4.4.0 as stable New DiagnosticSource API (Activity) is consumed by partner teams (ApplicationInsigthts, ASP.NET). In order to align schedules, we want ship 4.4.0 version of DiagnosticSource now, it does not depend on any non-stable packages. @ericstj, please review +20490 area-Infrastructure Dumpling fails with The libcoreclr.so module is not loaded yet in the target process "remoteexecutor failed for a test https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170531.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.DiagnosticsTest~2FSendAsync_ExpectedDiagnosticSourceLogging I went to see if there was a dump https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170531.01/workItem/System.Net.Http.Functional.Tests/wilogs and I see this. @mellinoe any thoughts about `The libcoreclr.so module is not loaded yet in the target process`? ``` 2017-05-31 00:34:10,567: INFO: proc(54): run_and_log_output: Output: System.Net.Http.Functional.Tests Total: 587, Errors: 0, Failed: 1, Skipped: 16, Time: 18.755s 2017-05-31 00:34:10,617: INFO: proc(54): run_and_log_output: Output: command exited with ExitCode: 1 2017-05-31 00:34:10,618: INFO: proc(54): run_and_log_output: Output: command failed, trying to collect dumps 2017-05-31 00:34:10,620: INFO: proc(54): run_and_log_output: Output: corefile: core 2017-05-31 00:34:10,620: INFO: proc(54): run_and_log_output: Output: uploading core to dumpling service 2017-05-31 00:34:38,964: INFO: proc(54): run_and_log_output: Output: bind: Invalid command `enable-meta-key'. 2017-05-31 00:34:38,967: INFO: proc(54): run_and_log_output: Output: (lldb) target create --core /home/helixbot/dotnetbuild/work/81ea0aab-2918-44ab-9ff1-09fd0225e1a9/Work/aa8dfcbc-ae82-4888-bf1e-065037c11c2a/Unzip/core 2017-05-31 00:34:38,971: INFO: proc(54): run_and_log_output: Output: Core file '/home/helixbot/dotnetbuild/work/81ea0aab-2918-44ab-9ff1-09fd0225e1a9/Work/aa8dfcbc-ae82-4888-bf1e-065037c11c2a/Unzip/core' (x86_64) was loaded. 2017-05-31 00:34:38,971: INFO: proc(54): run_and_log_output: Output: (lldb) plugin load /home/helixbot/.dumpling/dbg/bin/libsosplugin.so 2017-05-31 00:34:38,972: INFO: proc(54): run_and_log_output: Output: (lldb) command script import /home/helixbot/.dumpling/analysis.py 2017-05-31 00:34:39,007: INFO: proc(54): run_and_log_output: Output: (lldb) analyze -i /home/helixbot/.dumpling/triage.ini -o /tmp/tmpXrwdi4 2017-05-31 00:34:39,009: INFO: proc(54): run_and_log_output: Output: 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: LAST_EXCEPTION: 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: The libcoreclr.so module is not loaded yet in the target process 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: STOP_REASON: 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: SIGSEGV 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: FAULT_SYMBOL: 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: FAILURE_HASH: 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: SIGSEGV_UNKNOWN!UNKNOWN 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: FAULT_STACK: 2017-05-31 00:34:39,010: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,011: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,012: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,012: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,012: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,012: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,012: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,012: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,012: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,012: INFO: proc(54): run_and_log_output: Output: UNKNOWN!UNKNOWN 2017-05-31 00:34:39,012: INFO: proc(54): run_and_log_output: Output: 2017-05-31 00:34:39,012: INFO: proc(54): run_and_log_output: Output: FAULT_THREAD: 2017-05-31 00:34:39,012: INFO: proc(54): run_and_log_output: Output: thread #1: tid = 2028, 0x00007f1a6bd01ce0, name = 'dotnet', stop reason = signal SIGSEGV 2017-05-31 00:34:39,012: INFO: proc(54): run_and_log_output: Output: (lldb) exit 2017-05-31 00:34:39,216: INFO: proc(54): run_and_log_output: Output: processing dump file /home/helixbot/dotnetbuild/work/81ea0aab-2918-44ab-9ff1-09fd0225e1a9/Work/aa8dfcbc-ae82-4888-bf1e-065037c11c2a/Unzip/core 2017-05-31 00:34:39,216: INFO: proc(54): run_and_log_output: Output: uncompressed file size: 242560 Kb 2017-05-31 00:34:39,216: INFO: proc(54): run_and_log_output: Output: compressed file size: 28805 Kb 2017-05-31 00:34:39,216: INFO: proc(54): run_and_log_output: Output: creating dumpling dump d11f8a7b257f14755e55463f2a2b8e26b3f282c1 2017-05-31 00:34:39,216: INFO: proc(54): run_and_log_output: Output: url: https://dumpling.azurewebsites.net/api/dumplings/create?displayname=System.Net.Http.Functional.Tests&hash=d11f8a7b257f14755e55463f2a2b8e26b3f282c1&user=helixbot 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: response: 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: uploading artifact d11f8a7b257f14755e55463f2a2b8e26b3f282c1 core 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: url: https://dumpling.azurewebsites.net/api/dumplings/uploads?hash=d11f8a7b257f14755e55463f2a2b8e26b3f282c1&localpath=%2Fhome%2Fhelixbot%2Fdotnetbuild%2Fwork%2F81ea0aab-2918-44ab-9ff1-09fd0225e1a9%2FWork%2Faa8dfcbc-ae82-4888-bf1e-065037c11c2a%2FUnzip%2Fcore 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: response: 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: url: https://dumpling.azurewebsites.net/api/dumplings/d11f8a7b257f14755e55463f2a2b8e26b3f282c1/properties 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: data: { 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: ""CLIENT_ARCHITECTURE"": ""x86_64"", 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: ""CLIENT_DISTRO"": ""Ubuntu"", 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: ""CLIENT_DISTRO_ID"": ""xenial"", 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: ""CLIENT_DISTRO_VER"": ""16.04"", 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: ""CLIENT_NAME"": ""dnblu1604000MBX"", 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: ""CLIENT_OS"": ""Linux"", 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: ""CLIENT_PROCESSOR"": ""x86_64"", 2017-05-31 00:34:39,217: INFO: proc(54): run_and_log_output: Output: ""CLIENT_RELEASE"": ""4.4.0-47-generic"", 2017-05-31 00:34:39,218: INFO: proc(54): run_and_log_output: Output: ""CLIENT_VERSION"": ""#68-Ubuntu SMP Wed Oct 26 19:39:52 UTC 2016"", 2017-05-31 00:34:39,218: INFO: proc(54): run_and_log_output: Output: ""STRESS_TESTID"": ""System.Net.Http.Functional.Tests"" 2017-05-31 00:34:39,218: INFO: proc(54): run_and_log_output: Output: } 2017-05-31 00:34:39,218: INFO: proc(54): run_and_log_output: Output: response: 2017-05-31 00:34:39,218: INFO: proc(54): run_and_log_output: Output: Debugger command: /home/helixbot/.dumpling/dbg/bin/lldb -o target create --core /home/helixbot/dotnetbuild/work/81ea0aab-2918-44ab-9ff1-09fd0225e1a9/Work/aa8dfcbc-ae82-4888-bf1e-065037c11c2a/Unzip/core -o plugin load /home/helixbot/.dumpling/dbg/bin/libsosplugin.so -o command script import /home/helixbot/.dumpling/analysis.py -o analyze -i /home/helixbot/.dumpling/triage.ini -o /tmp/tmpXrwdi4 -o exit 2017-05-31 00:34:39,218: INFO: proc(54): run_and_log_output: Output: None 2017-05-31 00:34:39,218: INFO: proc(54): run_and_log_output: Output: Debugger exit code 0 2017-05-31 00:34:39,218: INFO: proc(54): run_and_log_output: Output: url: https://dumpling.azurewebsites.net/api/dumplings/d11f8a7b257f14755e55463f2a2b8e26b3f282c1/properties 2017-05-31 00:34:39,218: INFO: proc(54): run_and_log_output: Output: data: { 2017-05-31 00:34:39,218: INFO: proc(54): run_and_log_output: Output: ""FAILURE_HASH"": ""SIGSEGV_UNKNOWN!UNKNOWN"", 2017-05-31 00:34:39,218: INFO: proc(54): run_and_log_output: Output: ""FAULT_STACK"": ""UNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN\nUNKNOWN!UNKNOWN"", 2017-05-31 00:34:39,218: INFO: proc(54): run_and_log_output: Output: ""FAULT_SYMBOL"": ""UNKNOWN!UNKNOWN"", 2017-05-31 00:34:39,219: INFO: proc(54): run_and_log_output: Output: ""FAULT_THREAD"": ""thread #1: tid = 2028, 0x00007f1a6bd01ce0, name = 'dotnet', stop reason = signal SIGSEGV"", 2017-05-31 00:34:39,219: INFO: proc(54): run_and_log_output: Output: ""LAST_EXCEPTION"": ""The libcoreclr.so module is not loaded yet in the target process\n"", 2017-05-31 00:34:39,219: INFO: proc(54): run_and_log_output: Output: ""STOP_REASON"": ""SIGSEGV"" 2017-05-31 00:34:39,219: INFO: proc(54): run_and_log_output: Output: } 2017-05-31 00:34:39,219: INFO: proc(54): run_and_log_output: Output: response: 2017-05-31 00:34:39,219: INFO: proc(54): run_and_log_output: Output: dumplingid: d11f8a7b257f14755e55463f2a2b8e26b3f282c1 2017-05-31 00:34:39,219: INFO: proc(54): run_and_log_output: Output: https://dumpling.azurewebsites.net/api/dumplings/archived/d11f8a7b257f14755e55463f2a2b8e26b3f282c1 2017-05-31 00:34:39,219: INFO: proc(54): run_and_log_output: Output: total elapsed time 0:00:28.502304 2017-05-31 00:34:39,219: INFO: proc(54): run_and_log_output: Output: ~/dotnetbuild/work/81ea0aab-2918-44ab-9ff1-09fd0225e1a9/Work/aa8dfcbc-ae82-4888-bf1e-065037c11c2a/Unzip 2017-05-31 00:34:39,219: INFO: proc(54): run_and_log_output: Output: Finished running tests. End time=00:34:39. Return value was 1 2017-05-31 00:34:39,220: INFO: proc(54): run_and_log_output: Output: Unable to find executable corerun 2017-05-31 00:34:39,221: INFO: proc(54): run_and_log_output: Output: Copying core file core to /tmp/coredumps ```" +20491 area-Infrastructure Add test attributes documentation @dotnet-bot skip CI Please Add test attributes usage documentation. cc: @weshaggard @danmosemsft +20493 area-System.Net Test failure: System.Net.Http.Functional.Tests.CancellationTest/GetAsync_ResponseContentRead_CancelUsingTimeoutOrToken_TaskCanceledQuickly(useTimeout: False, startResponseBody: False) Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.CancellationTest/GetAsync_ResponseContentRead_CancelUsingTimeoutOrToken_TaskCanceledQuickly(useTimeout: False, startResponseBody: False)` has failed. Assert.Throws() Failure\r Expected: typeof(System.OperationCanceledException)\r Actual: typeof(System.Net.Http.HttpRequestException): An error occurred while sending the request. Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.CancellationTest.<>c__DisplayClass2_3.<b__3>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : 2.0.0 - 20170531.01 (Portable Core Tests) Failing configurations: - Windows.7.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170531.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.CancellationTest~2FGetAsync_ResponseContentRead_CancelUsingTimeoutOrToken_TaskCanceledQuickly(useTimeout:%20False,%20startResponseBody:%20False) +20496 area-System.Globalization Numeric format to percentage: The default value is different from .net framework "in windows,the default value depends on user settings(control panel) in linux,i don't know how to set the default value ? can be set? Since it has not been resolved, so powershell team members recommend me to submit the issue. https://github.com/PowerShell/PowerShell/issues/2194 somebody help to see,thanks. Steps to reproduce ------------------ ""{0:p}"" -f 0.95 (0.95).tostring(""p"") powershell on windows return(i think return is right): 95.00% powershell beta1 on .net core 2.0 return: 95.000% PS /root> [System.Globalization.NumberFormatInfo]::CurrentInfo.PercentDecimalDigits 3 PS /root> [System.Globalization.NumberFormatInfo]::CurrentInfo.PercentDecimalDigits = 2 Exception setting ""PercentDecimalDigits"": ""Instance is read-only."" At line:1 char:1 + [System.Globalization.NumberFormatInfo]::CurrentInfo.PercentDecimalDi ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], SetValueInvocationException + FullyQualifiedErrorId : ExceptionWhenSetting Expected behavior ----------------- default value same with windows Environment data ---------------- Name Value ---- ----- PSVersion 6.0.0-beta PSEdition Core BuildVersion 3.0.0.0 CLRVersion GitCommitId v6.0.0-beta.1 OS Linux 3.10.0-514.16.1.el7.x86_64 #1 SMP Wed Apr 12 15:04:24 UTC 2017 Platform Unix PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 WSManStackVersion 3.0 LANG=zh_CN.UTF-8 " +20497 area-System.Diagnostics Add ProcessStartInfo.StandardInputEncoding property See **detailed latest proposal** in https://github.com/dotnet/corefx/issues/20497#issuecomment-312896302 # Original Proposal By default, the standard IO readers and writer for a process use `Console.OutputEncoding` and `Console.InputEncoding` respectively. The `ProcessStartInfo` class provides `StandardOutputEncoding` and `StandardErrorEncoding` properties to allow callers to override the encoding for those. This simply changes the encoding passed to the `StreamReader` object which wraps the underlying process byte stream. To more naturally support talking to a process that uses a different encoding than the current process's console encoding, we should add a new property to `ProcessStartInfo`: ``` public Encoding StandardInputEncoding { get; set; } ``` This would have the same semantics as the existing properties: * Defaults to `null`, which means use the default encoding * If specified and the input stream is not redirected, an exception is thrown on process start [EDIT] Added latest proposal link by @karelz +20500 area-System.Net Fix HttpClient on Unix handling of 0-len content with chunked upload When there's a disagreement between Content-Length and Transfer-Encoding being specified in the HttpRequestMessage, WinHttpHandler sanitizes the request to ensure it makes sense. CurlHandler does the same thing, except it's currently doing it a bit too late in the send process: it should be doing it before the curl easy handle is configured based on the contents of the request, but it's currently doing it in the middle, after some configuration has already been done based on the content length. The fix is simply to move the sanitization up earlier. For the most part this didn't matter, but it was manifesting as incorrect handling of 0-length content with chunked uploads, where neither the content length nor chunks were being sent. cc: @geoffkizer, @davidsh Fixes https://github.com/dotnet/corefx/issues/20419 +20501 area-Serialization Disable lazy serialization tests on netcoreapp Fixes https://github.com/dotnet/corefx/pull/20499 +20502 area-System.Collections [BlockingCollection] Add TimeSpan parameter to TryAdd and TryTake (and a few questions) Hi! I would like to start contributing to open source projects and since I love C# and the .NET environment, this looks like a great place to start. However, I'm quite new to all this and so, I have a few questions on how to proceed. First of all, what I want to do is relatively simple. I want to add the following methods to the BlockingCollection classe: ```c# public bool TryAdd(out T item, TimeSpan timeout, CancellationToken cancellationToken); public bool TryTake(out T item, TimeSpan timeout, CancellationToken cancellationToken); ``` The original reason for this is that I usually prefer using a TimeSpan object wherever possible since it makes the intention clear and recently had to use BlockingCollection for a project and noticed that some of the Try* methods don't have a overload that takes a TimeSpan parameter. Since this is an easy addition (unless I'm missing something) I though it would be a nice way to start contributing. Besides, it adds consistency. Also, I know this could be implemented as an extension method but that defeats the purpose of contributing :) Regarding my questions. - I need to open a issue for every pull request? If so, can I use this one or should I open new one? - Since this is an API change, do I need to do something special besides opening the issue and if approved, submit the PR? - What are the naming conventions for testing method names? BlockingCollectionTest have some of the following: - TestConcurrentAddAnyTakeAny - TestAddAnyTakeAny_Longrunning - Test17_AddExceptions Is there anything else I'm missing? Thank you! +20503 area-System.Security Failure in VerifyWithRevocation after 3 retries Increase retries? https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170531.02/workItem/System.Security.Cryptography.X509Certificates.Tests/analysis/xunit/System.Security.Cryptography.X509Certificates.Tests.ChainTests~2FVerifyWithRevocation ``` Ubuntu.1604.Amd64-x64-Release Unhandled Exception of Type Xunit.Sdk.TrueException Message : Online Chain Built Validly within 3 tries\nExpected: True\nActual: False Stack Trace : at System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyWithRevocation() in /root/corefx/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs:line 577 ``` +20504 area-System.Security More retries around VerifyWithRevocation test Fix https://github.com/dotnet/corefx/issues/20503 by adding more retries and sleeping after the first few. +20508 area-Infrastructure Clean out portable from CI scripts and add OSX PTAL @danmosemsft @mmitche skip ci please +20509 area-System.Security macOS: Opening a PFX and waiting just over 5 minutes results in a credential prompt ```C# using (var cert = new X509Certificate2(pfxData, pfxPassword)) { System.Threading.Thread.Sleep(TimeSpan.FromMinutes(6)); using (var key = cert.GetRSAPrivateKey()) { key.SignData(Array.Empty(), HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1); } } ```` The SignData call will pop up UI asking to enter a password for a keychain whose name is a GUID. Since no one knows the password to this keychain, it's not possible to proceed. (Workaround: give the cert to a background thread which uses the private key every ~4 minutes or so, to reset the idle timeout on the temporary keychain) +20513 area-System.Data Poring SqlSchemaInfoTest into .NET Core *`SqlSchemaInfoTest`* was ported from .NET Framework into .NET Core manual test. +20514 area-Serialization Need use the full name for XmlSerializerNamespaces Need use the full name for XmlSerializerNamespaces since the code is shared with SGEN. #20480 @shmao @mconnew @zhenlan +20518 area-System.Diagnostics Add InteropEventProvider to built in provider list for UAPAOT CheckNoEventSourcesRunning fails in uapaot since InteropEventProvider was include in the built in provide list. @brianrob +20520 area-System.Net Disable some WebProxy tests for UAP/ILC test runs Disable some WebProxy tests on 'uap' and 'uap-aot' test runs Contributes to #20137. +20521 area-System.Net Disable some WebSockets Client tests for UAP/ILC test runs Disable some WebSockets.Client tests on 'uap' and 'uap-aot' test runs Contributes to #20132. +20522 area-System.IO System.IO.UnmanagedMemoryAccessor throws different exceptions because CoreRT copy is out of date wrt CoreCLR CoreLib throws wrong exception in this case. Test failure on UWP ILC: ``` System.IO.Tests.Uma_ReadWriteStructArray.UmaReadWriteStructArray_InvalidParameters [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Argument_NotEnoughBytesToWrite. For more information, visit http://go.microsoft.com/fwlink/?LinkId=623485 Stack Trace: F:\corefx\src\System.IO.UnmanagedMemoryStream\tests\Uma.ReadWriteStructArray.cs(45,0): at System.IO.Tests.Uma_ReadWriteStructArray.<>c__DisplayClass0_0.b__12() xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. ``` +20524 area-Infrastructure Disable portable release cc @gkhanna79 Using this PR to collect the changes to make portable builds the default and only builds. Still waiting for all the testing in master to be verified before merging. +20525 area-System.Runtime System.Text.Encoding tests are crashing uapaot ilc test run "There are two System.Text.Encoding tests that are crashing the test run process only on Debug builds. From what I can tell after doing some debugging, the problem seems to be when we try to pass in some member data to a Theory, specifically when that member data is an object array for which one of the elements is a string containing a `\0` char. One example of one of the member data that is causing this problem is [this one](https://github.com/dotnet/corefx/blob/master/src/System.Text.Encoding/tests/UTF8Encoding/UTF8EncodingDecode.cs#L26) where the code looks like: ```c# yield return new object[] { new byte[] { 0, 84, 101, 10, 115, 116, 0, 9, 0, 84, 15, 101, 115, 116, 0 }, 0, 15, ""\0Te\nst\0\t\0T\u000Fest\0"" }; ``` I'm not 100% sure, but I believe that this is causing for us to hit the Debug.Assert() [on this array method](https://github.com/dotnet/corert/blob/master/src/System.Private.CoreLib/src/System/Array.CoreRT.cs#L1214), the code looks like: ```c# private Object GetValueWithFlattenedIndex_NoErrorCheck(int flattenedIndex) { ref byte element = ref Unsafe.AddByteOffset(ref GetRawArrayData(), (nuint)flattenedIndex * ElementSize); EETypePtr pElementEEType = ElementEEType; if (pElementEEType.IsValueType) { return RuntimeImports.RhBox(pElementEEType, ref element); } else { Debug.Assert(!pElementEEType.IsPointer); return Unsafe.As(ref element); } } ``` The callstack I get for the fail fast is: ``` xunit.console.netcore.dll!$16_System::Linq::Enumerable::d__32$1.MoveNext() Line 26 xunit.console.netcore.dll!System::Collections::Generic::List$1.InsertRange(int index=0, System::Collections::Generic::IEnumerable$1 & collection) Line 814 xunit.console.netcore.dll!System::Collections::Generic::List$1.AddRange(System::Collections::Generic::IEnumerable$1 & collection) Line 271 xunit.console.netcore.dll!$72_Xunit::Sdk::XunitTheoryTestCaseRunner::d__7.MoveNext() Line 68 ``` cc: @AtsushiKan @jkotas " +20527 area-System.Net HttpClient on Linux not cancel request after the due time "After researching [this](https://github.com/dotnet/corefx/issues/20461) problem. I came to realize that httpclient does not handle the hang of libcurl. And does not cancel hung requests at the due time. I tested 15000+ proxy servers and found 8 that hang even on fresh libcurl(7.52.1) and do not respond to cancellation. I can not get rid of hanging tasks. I do not know the analogs of Thread.Abort() for Tasks or HttpWebRequest.Abort() for HttpClient. This is also a problem, the inability to forcefully kill a task. Test case: ```cs using System; using System.Collections.Generic; using System.Diagnostics; using System.Net; using System.Net.Http; using System.Security.Authentication; using System.Threading; using System.Threading.Tasks; namespace ProxyNetCoreTest { public class Program { public static List Proxies { get; } = new List { new WebProxy(""103.254.16.21"", 8080),//This works, needed for control // new WebProxy(""106.39.162.168"", 80), new WebProxy(""114.215.90.211"", 1080), new WebProxy(""115.159.90.132"", 1080), new WebProxy(""123.56.199.152"", 3641), new WebProxy(""123.56.200.75"", 5261), new WebProxy(""125.93.75.245"", 1081), new WebProxy(""125.93.75.246"", 1081), new WebProxy(""183.232.25.100"", 3080), }; public static void Main(string[] args) { var sw = new Stopwatch(); sw.Start(); foreach (var proxy in Proxies) { sw.Restart(); Test(proxy).GetAwaiter().GetResult(); Log($""{proxy.Ip}:{proxy.Port} -> Time: {sw.ElapsedMilliseconds}""); } Log(""---=== END ===---""); Console.ReadKey(); } public static async Task Test(WebProxy proxy) { var url = ""https://api.ipify.org?format=json""; var handler = new HttpClientHandler { Proxy = proxy, UseCookies = false, ServerCertificateCustomValidationCallback = (message, xcert, chain, errors) => true, SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls, UseProxy = true }; Log($""{proxy.Ip}:{proxy.Port} -> Start""); using (var client = new HttpClient(handler)) { try { using (var tokenSource = new CancellationTokenSource(4000)) using (var request = new HttpRequestMessage(HttpMethod.Get, url)) using (var response = await client.SendAsync(request, HttpCompletionOption.ResponseContentRead, tokenSource.Token)) { var data = await response.Content.ReadAsStringAsync(); Log($""{proxy.Ip}:{proxy.Port} -> OK: {data}""); } } catch (Exception e) { Log($""{proxy.Ip}:{proxy.Port} -> Exception: {e.GetMessages()}""); } } } public static void Log(string message) { Console.WriteLine($""{DateTime.Now:HH:mm:ss}: {message}""); } public class WebProxy : IWebProxy { public string Ip { get; } public int Port { get; } private readonly Uri _uri; public WebProxy(string ip, int port) { Ip = ip; Port = port; _uri = new Uri(""http://"" + ip + "":"" + port); } public Uri GetProxy(Uri destination) => _uri; public bool IsBypassed(Uri host) => false; public ICredentials Credentials { get; set; } } } public static class ExceptionExtensions { public static string GetMessages(this Exception self) { return self.Message + "" | "" + self.InnerException?.GetMessages(); } } } ``` " +20528 area-System.Threading System.MissingMethodException: Method 'RegisteredWaitHandle.Unregister(WaitHandle)' was not included in compilation, but was referenced "Was discovered in UWP ILC test runs. 15 failures in `System.Net.Ping.Functional.Tests.csproj`. The same is true for ThreadPool.RegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, object, int, bool) : ``` Method 'ThreadPool.RegisterWaitForSingleObject(WaitHandle, WaitOrTimerCallback, object, int, bool)' was not included in compilation, but was referenced in Ping.SendPingAsyncCore(IPAddress, by te[], int, PingOptions) ``` Sample failure: ``` d__17.MoveNext$fin$0() in F:\corefx\src\System.Net.Ping\tests\FunctionalTests\PingTest.cs:line 16707566 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147]]> ```" +20541 area-Meta "Remove ""new NotImplementedExceptions"" from corefx assemblies." "Sites found by tooling: - [ ] System.Net.HttpListener.DisconnectAsyncResult::AsyncState.get() - [ ] System.Net.HttpListener.DisconnectAsyncResult::AsyncWaitHandle.get() - [ ] System.Net.HttpListener.DisconnectAsyncResult::CompletedSynchronously.get() - [ ] System.Net.HttpListener.DisconnectAsyncResult::IsCompleted.get() - [ ] System.Net.WebSockets.HttpListenerWebSocketContext::CopyPrincipal(IPrincipal) - [ ] System.Net.WebSockets.WebSocketBase.WebSocketOperation::ProcessAction_IndicateReceiveComplete (Nullable>, BufferType, Action, Buffer[], uint, IntPtr) - [ ] System.Net.Mime.EightBitStream::DecodeBytes(byte[], int, int) - [ ] System.Net.Mime.EightBitStream::EncodeBytes(byte[], int, int) - [ ] System.Net.Mime.EightBitStream::GetEncodedString() - [ ] System.Net.Mime.MimeBasePart::BeginSend(BaseWriter, AsyncCallback, bool, object) - [ ] System.Net.Mime.MimeBasePart::Send(BaseWriter, bool) - [ ] System.Runtime.Serialization.Json.ReflectionJsonReader::ReadSimpleDictionary(XmlReaderDelegator, XmlObjectSerializerReadContext, CollectionDataContract, Type, object) - [ ] System.Runtime.Serialization.NullPrimitiveDataContract::ReadMethodName.get() - [ ] System.Runtime.Serialization.NullPrimitiveDataContract::ReadXmlValue(XmlReaderDelegator, XmlObjectSerializerReadContext) - [ ] System.Runtime.Serialization.NullPrimitiveDataContract::WriteMethodName.get() - [ ] System.Runtime.Serialization.NullPrimitiveDataContract::WriteXmlElement(XmlWriterDelegator, object, XmlObjectSerializerWriteContext, XmlDictionaryString, XmlDictionaryString) - [ ] System.Runtime.Serialization.NullPrimitiveDataContract::WriteXmlValue(XmlWriterDelegator, object, XmlObjectSerializerWriteContext) - [ ] System.Runtime.Serialization.XmlDataContract::ReflectionCreateXmlSerializable(Type) - [ ] System.Runtime.Serialization.XmlObjectSerializerReadContext::IsBitSet(byte[], int) - [ ] System.ServiceModel.Channels.StreamConnection::GetCoreTransport() - [ ] System.ServiceModel.Dispatcher.DispatchRuntime.UnhandledActionInvoker::InvokeBegin(object, object[], AsyncCallback, object) - [ ] System.ServiceModel.Dispatcher.DispatchRuntime.UnhandledActionInvoker::InvokeEnd(object, object[], IAsyncResult) - [ ] MS.Internal.Xml.Cache.XPathDocumentBuilder::WriteEntityRef(string) - [ ] System.Xml.Serialization.ReflectionXmlSerializationReader::WriteArray(ArrayMapping, bool, bool, string, int, Fixup, Member) - [ ] System.Xml.Serialization.ReflectionXmlSerializationReader::WriteAttribute(Member, object) - [ ] System.Xml.Serialization.ReflectionXmlSerializationReader::WriteElement(ElementAccessor, bool, bool, bool, string, int, int, Fixup, Member) - [ ] System.Xml.Serialization.ReflectionXmlSerializationReader::WriteLiteralStructMethod(StructMapping, bool, bool, string) - [ ] System.Xml.Serialization.XmlSerializer::CreateReader() - [ ] System.Xml.Serialization.XmlSerializer::CreateWriter() - [ ] System.Xml.Serialization.XmlSerializer::Deserialize(XmlSerializationReader) - [ ] System.Xml.Serialization.XmlSerializer::Serialize(object, XmlSerializationWriter) - [ ] System.Xml.XmlRawWriter::WriteEndElementAsync(string, string, string) - [ ] System.Xml.XmlRawWriter::WriteNamespaceDeclarationAsync(string, string) - [ ] System.Xml.XmlReader::GetValueAsync() - [ ] System.Xml.XmlReader::ReadAsync() - [ ] System.Xml.XmlResolver::GetEntityAsync(Uri, string, Type) - [ ] System.Xml.XmlTextWriterBase64Encoder::WriteCharsAsync(char[], int, int) - [ ] System.Xml.XmlWellFormedWriter.NamespaceResolverProxy::System.Xml.IXmlNamespaceResolver.GetNamespacesInScope(XmlNamespaceScope) - [ ] System.Xml.XmlWriter::FlushAsync() - [ ] System.Xml.XmlWriter::WriteBase64Async(byte[], int, int) - [ ] System.Xml.XmlWriter::WriteCDataAsync(string) - [ ] System.Xml.XmlWriter::WriteCharEntityAsync(char) - [ ] System.Xml.XmlWriter::WriteCharsAsync(char[], int, int) - [ ] System.Xml.XmlWriter::WriteCommentAsync(string) - [ ] System.Xml.XmlWriter::WriteDocTypeAsync(string, string, string, string) - [ ] System.Xml.XmlWriter::WriteEndAttributeAsync() - [ ] System.Xml.XmlWriter::WriteEndDocumentAsync() - [ ] System.Xml.XmlWriter::WriteEndElementAsync() - [ ] System.Xml.XmlWriter::WriteEntityRefAsync(string) - [ ] System.Xml.XmlWriter::WriteFullEndElementAsync() - [ ] System.Xml.XmlWriter::WriteProcessingInstructionAsync(string, string) - [ ] System.Xml.XmlWriter::WriteRawAsync(char[], int, int) - [ ] System.Xml.XmlWriter::WriteRawAsync(string) - [ ] System.Xml.XmlWriter::WriteStartAttributeAsync(string, string, string) - [ ] System.Xml.XmlWriter::WriteStartDocumentAsync() - [ ] System.Xml.XmlWriter::WriteStartDocumentAsync(bool) - [ ] System.Xml.XmlWriter::WriteStartElementAsync(string, string, string) - [ ] System.Xml.XmlWriter::WriteStringAsync(string) - [ ] System.Xml.XmlWriter::WriteSurrogateCharEntityAsync(char, char) - [ ] System.Xml.XmlWriter::WriteWhitespaceAsync(string) - [ ] System.Xml.Xsl.XsltOld.ContainerAction::Compile(Compiler) - [ ] System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBuffer::EnsureHasMarshalProxy() - [ ] System.Security.Cryptography.DSA::DerivedClassMustOverride() - [ ] System.Security.Cryptography.ECDiffieHellmanPublicKey::ToXmlString() - [ ] System.Security.Cryptography.ECDsa::FromXmlString(string) - [ ] System.Security.Cryptography.ECDsa::ToXmlString(bool) - [ ] System.Security.Cryptography.RandomNumberGenerator::GetNonZeroBytes(byte[]) - [ ] System.Security.Cryptography.RSA::DerivedClassMustOverride() - [ ] System.Security.Cryptography.AsymmetricAlgorithm::FromXmlString(string) - [ ] System.Security.Cryptography.AsymmetricAlgorithm::KeyExchangeAlgorithm.get() - [ ] System.Security.Cryptography.AsymmetricAlgorithm::SignatureAlgorithm.get() - [ ] System.Security.Cryptography.AsymmetricAlgorithm::ToXmlString(bool) - [ ] System.Transactions.InternalEnlistment::PromotableSinglePhaseNotification.get() - [ ] System.Transactions.InternalEnlistment::ResourceManagerIdentifier.get() ## How to remove: 1. Include the following in your .csproj file: ``` Common\System\NotImplemented.cs ``` Options for removing “throw new NotImplementedException()”: ### If you can implement the missing functionality now: Do so. ### If this is functionality that’s not supported on a particular framework or OS, replace with `throw new PlatformNotSupportedException(SR.xxx);` ### If this is an api that needs to throw NotImplemented for backward compat reasons, replace with: `throw NotImplemented.ByDesign;` or `throw NotImplemented.ByDesignWithMessage(SR.xxx);` ### If this is a virtual api method that’s only intended to work when overridden by another class, replace with: `throw new NotSupportedException(SR.xxx);` (Unless required for backward compat, refrain from throwing NotImplemented out of these.) ### If this is a virtual non-api method that’s only intended to work when overridden by another class, replace with: An abstract method. ### If this is a compiler or toolchain intrinsic that only needs a body to make C# happy: `throw new NotSupportedException();` ### If this is true undone work and you just can’t fix it now, replace with: `throw NotImplemented.ActiveIssue(“https://github.com/dotnet/corefx/issues/xxx”);` The string will not leak out via Exception.Message. The string is for tooling and human readers only. In the past, we’ve usually added an inline comment but the trouble with those is that IL-based tooling can’t read comments. " +20542 area-System.Security Fix temp keychain timeout The default lock policy on a new keychain is to lock on sleep and after 5 minutes of being idle. This means that if more than 5 minutes pass from usages of a certificate private key (where the cert was opened from a PFX) the user gets prompted for a password for the temporary keychain. Since that keychain has a randomly generated password it's not really possible for the user to accomplish this successfully. No tests cover this scenario, since they require more than 5 minutes of idle time. Master version of #20509. +20545 area-System.Diagnostics System.Diagnostics.Tests.ProcessThreadTests~2FTestStartTimeProperty failed with Assert.InRange() https://mc.dot.net/#/user/shmao/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/82a719f503a18103d9f896336237989f8d630486/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessThreadTests~2FTestStartTimeProperty ``` Assert.InRange() Failure\r\nRange: (5/31/2017 9:34:50 PM - 5/31/2017 9:34:55 PM)\r\nActual: 5/31/2017 9:34:49 PM Stack Trace : at System.Diagnostics.Tests.ProcessThreadTests.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` last time https://github.com/dotnet/corefx/issues/5805 https://github.com/dotnet/corefx/pull/7223 +20546 area-System.Data System.Data.Common classes should implement an interface containing the async methods `System.Data.Common.DbConnection` and `System.Data.Common.DbCommand` are abstract classes that declares additional async methods not defined in `System.Data.IDbConnection` and `System.Data.IDbCommand`, respectively. This makes migration towards async methods and/or mocking the async methods for testing difficult. I am proposing we introduce an intermediary interface `IDbConnectionAsync` that is derived from `IDbConnection` and will be implemented by `DbConnection`. Similarly, introduce `IDbCommandAsync` between `IDbCommand` and `DbCommand`. These interfaces will contain `public async` methods that is missing from the original interfaces. ## Rationale and Usage Consider the following snippet illustrating an `IDbCommand` factory. There are two factory methods, one for regular and one for the async variant. I've included unit test methods to verify the factory calls `CreateCommand()` and `Open()`. ```c# public class CommandFactory { public IDbCommand CreateCommand(IDbConnection connection) { var command = connection.CreateCommand(); connection.Open(); return command; } public async Task Create​CommandAsync(DbConnection connection) { var command = connection.CreateCommand(); await connection.OpenAsync(); return command; } } [TestClass] public class CommandFactoryTests { [TestMethod] public void TestCreateCommand() { // Arrange var commandFactory = new CommandFactory(); var mockConnection = new Mock(); var mockCommand = new Mock(); mockConnection .Setup(mock => mock.CreateCommand()) .Returns(mockCommand.Object); // Act var command = commandFactory.CreateCommand(mockConnection.Object); // Assert Assert.IsNotNull(command); Assert.AreEqual(mockCommand.Object, command); mockConnection.Verify(mock => mock.Open(), Times.Once); } [TestMethod] public async Task TestCreateCommandAsync() { // Arrange var commandFactory = new CommandFactory(); var mockConnection = new Mock(); var mockCommand = new Mock(); mockConnection .Setup(mock => mock.CreateDbCommand()) // problematic line .Returns(mockCommand.Object); // Act var command = await commandFactory.Create​CommandAsync(mockConnection.Object); // Assert Assert.IsNotNull(command); Assert.AreEqual(mockCommand.Object, command); mockConnection.Verify(mock => mock.OpenAsync(), Times.Once); } } ``` The regular variant passed with flying colors. The async variant, on the other hand, failed to compile because `CreateDbCommand()` method in `DbConnection` is `protected`, thus not accessible to the mocking library. The workaround for this is to create an abstract class that derives from `DbCommand` and implement `CreateDbCommand` and return an instance of `Mock`. This can be easily avoided if there's an interface definition that the mocking library can use instead of the abstract class. `DbCommand` has a similar problem, all overloads of `ExecuteReaderAsync()` eventually calls non-mockable `ExecuteDbDataReader()` because it is a `protected` method. Lastly, while I believe I can mock `DbDataReader` easily, it would be great to follow the same hierarchy by having `IDataReaderAsync`. Implementing this will also avoid `IDbCommand` importing `System.Data.Common`. ## Proposed API ```c# public interface IDbConnection { // as-is } public interface IDbConnectionAsync : IDbConnection { new System.Data.IDbCommandAsync Create​Command (); System.Threading.Tasks.Task OpenAsync (); System.Threading.Tasks.Task OpenAsync (System.Threading.CancellationToken cancellationToken); } public abstract class DbConnection : IDbConnectionAsync { ... } public interface IDbCommand { // as-is } public interface IDbCommandAsync : IDbCommand { Task ExecuteNonQueryAsync (CancellationToken cancellationToken); Task ExecuteNonQueryAsync (); Task ExecuteReaderAsync (); Task ExecuteReaderAsync (CommandBehavior behavior); Task ExecuteReaderAsync (CommandBehavior behavior, CancellationToken cancellationToken); Task ExecuteReaderAsync (CancellationToken cancellationToken); Task ExecuteScalarAsync (CancellationToken cancellationToken); Task ExecuteScalarAsync (); } public abstract class DbCommand : IDbCommandAsync { ... } ``` ## Details * The async interfaces should include async public methods defined in the abstract classes but not defined in the base interfaces. * External API changes will be minimal. We can implement `IDbConnection.CreateCommand` and `IDbConnectionAsync.CreateCommand` explicitly on `DbConnection` and maintain `DbConnection.CreateCommand` signature -- it will return the abstract class `DbCommand`. `DbCommand.ExecuteReaderAsync` overloads can use similar approach, albeit with a small hack because of invariant `Task`. * Proposed change diff: https://github.com/dotnet/corefx/compare/master...adriangodong:system-data-async [EDIT] Added C# syntax highlighting by @karelz +20548 area-System.Data [Proposal] It should be possible to manually create SqlException `SqlException` create methods are currently internal. I would like some kind of create method to be public. ## Rationale Unit tests. There are various scenarios in which SqlException is handled differently than other kinds of exceptions, and being able to test those scenarios without actual database would be useful. Related StackOverflow thread, [How to throw a SqlException when needed for mocking and unit testing?](https://stackoverflow.com/questions/1386962/how-to-throw-a-sqlexception-when-needed-for-mocking-and-unit-testing), has 53 upvotes. ## Potential API ``` class SqlException { // ... public SqlException( string message, SqlErrorCollection errorCollection, Guid clientConnectionId = Guid.Empty, Exception innerException = null ) { ... } } class SqlErrorCollection { // ... public SqlErrorCollection() { ... } public SqlErrorCollection(params SqlError[] errors) { ... } } class SqlError { // ... public SqlError( int infoNumber, byte errorState, byte errorClass, string server, string errorMessage, string procedure, int lineNumber ) { ... } } ``` ## Open Questions Is there a better way to expose `SqlError` that would allow easier future extensibility? Some kind of `SqlErrorBuilder`? +20549 area-System.Net release/2.0: Fix HttpClient on Unix handling of 0-len content with chunked upload Port https://github.com/dotnet/corefx/pull/20500 to the release/2.0.0 branch. cc: @geoffkizer Fixes #20419 +20550 area-System.Net System.Net.Security.Tests.dll FailFast on Debian "This comes just after ""starting KDC"" from `src\System.Net.Security\tests\Scripts\Unix\setup-kdc.sh` https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170601.02/workItem/System.Net.Security.Tests/wilogs ``` Starting KDC.. FailFast: Invalid context passed to SafeDeleteNegoContext at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Net.Security.SafeDeleteNegoContext.SetGssContext(SafeGssContextHandle context) in /root/corefx/src/Common/src/System/Net/Security/Unix/SafeDeleteNegoContext.cs:line 52 at System.Net.Security.NegotiateStreamPal.EstablishSecurityContext(SafeFreeNegoCredentials credential, SafeDeleteContext& context, String targetName, ContextFlagsPal inFlags, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, ContextFlagsPal& outFlags) in /root/corefx/src/Common/src/System/Net/Security/NegotiateStreamPal.Unix.cs:line 197 at System.Net.Security.NegotiateStreamPal.InitializeSecurityContext(SafeFreeCredentials credentialsHandle, SafeDeleteContext& securityContext, String spn, ContextFlagsPal requestedContextFlags, SecurityBuffer[] inSecurityBufferArray, SecurityBuffer outSecurityBuffer, ContextFlagsPal& contextFlags) in /root/corefx/src/Common/src/System/Net/Security/NegotiateStreamPal.Unix.cs:line 240 at System.Net.NTAuthentication.GetOutgoingBlob(Byte[] incomingBlob, Boolean throwOnError, SecurityStatusPal& statusCode) in /root/corefx/src/Common/src/System/Net/NTAuthentication.Common.cs:line 243 at System.Net.Security.NegoState.GetOutgoingBlob(Byte[] incomingBlob, Exception& e) in /root/corefx/src/System.Net.Security/src/System/Net/Security/NegoState.cs:line 778 at System.Net.Security.NegoState.StartSendBlob(Byte[] message, LazyAsyncResult lazyResult) in /root/corefx/src/System.Net.Security/src/System/Net/Security/NegoState.cs:line 444 at System.Net.Security.NegoState.CheckCompletionBeforeNextSend(Byte[] message, LazyAsyncResult lazyResult) in /root/corefx/src/System.Net.Security/src/System/Net/Security/NegoState.cs:line 648 at System.Net.Security.NegoState.ProcessReceivedBlob(Byte[] message, LazyAsyncResult lazyResult) in /root/corefx/src/System.Net.Security/src/System/Net/Security/NegoState.cs:line 624 at System.Net.Security.NegoState.ReadCallback(IAsyncResult transportResult) in /root/corefx/src/System.Net.Security/src/System/Net/Security/NegoState.cs:line 756 at System.Net.LazyAsyncResult.Complete(IntPtr userToken) in /root/corefx/src/Common/src/System/Net/LazyAsyncResult.cs:line 428 at System.Net.LazyAsyncResult.ProtectedInvokeCallback(Object result, IntPtr userToken) in /root/corefx/src/Common/src/System/Net/LazyAsyncResult.cs:line 382 at System.Net.LazyAsyncResult.InvokeCallback(Object result) in /root/corefx/src/Common/src/System/Net/LazyAsyncResult.cs:line 389 at System.Net.StreamFramer.ReadFrameComplete(IAsyncResult transportResult) in /root/corefx/src/System.Net.Security/src/System/Net/StreamFramer.cs:line 270 at System.Net.StreamFramer.ReadFrameCallback(IAsyncResult transportResult) in /root/corefx/src/System.Net.Security/src/System/Net/StreamFramer.cs:line 168 at System.Threading.Tasks.TaskToApm.<>c__DisplayClass3_0.b__0() in /root/corefx/src/Common/src/System/Threading/Tasks/TaskToApm.cs:line 133 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(ContextCallback callback, Object state, Task& currentTask) at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Environment.FailFast(System.String, System.Exception) at System.Net.Security.SafeDeleteNegoContext.SetGssContext(Microsoft.Win32.SafeHandles.SafeGssContextHandle) at System.Net.Security.NegotiateStreamPal.EstablishSecurityContext(System.Net.Security.SafeFreeNegoCredentials, System.Net.Security.SafeDeleteContext ByRef, System.String, System.Net.ContextFlagsPal, System.Net.Security.SecurityBuffer, System.Net.Security.SecurityBuffer, System.Net.ContextFlagsPal ByRef) at System.Net.Security.NegotiateStreamPal.InitializeSecurityContext(System.Net.Security.SafeFreeCredentials, System.Net.Security.SafeDeleteContext ByRef, System.String, System.Net.ContextFlagsPal, System.Net.Security.SecurityBuffer[], System.Net.Security.SecurityBuffer, System.Net.ContextFlagsPal ByRef) at System.Net.NTAuthentication.GetOutgoingBlob(Byte[], Boolean, System.Net.SecurityStatusPal ByRef) at System.Net.Security.NegoState.GetOutgoingBlob(Byte[], System.Exception ByRef) at System.Net.Security.NegoState.StartSendBlob(Byte[], System.Net.LazyAsyncResult) at System.Net.Security.NegoState.CheckCompletionBeforeNextSend(Byte[], System.Net.LazyAsyncResult) at System.Net.Security.NegoState.ProcessReceivedBlob(Byte[], System.Net.LazyAsyncResult) at System.Net.Security.NegoState.ReadCallback(System.IAsyncResult) at System.Net.LazyAsyncResult.Complete(IntPtr) at System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object, IntPtr) at System.Net.LazyAsyncResult.InvokeCallback(System.Object) at System.Net.StreamFramer.ReadFrameComplete(System.IAsyncResult) at System.Net.StreamFramer.ReadFrameCallback(System.IAsyncResult) at System.Threading.Tasks.TaskToApm+<>c__DisplayClass3_0.b__0() at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Threading.Tasks.AwaitTaskContinuation.RunCallback(System.Threading.ContextCallback, System.Object, System.Threading.Tasks.Task ByRef) at System.Threading.Tasks.Task.RunContinuations(System.Object) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef) at System.Threading.ThreadPoolWorkQueue.Dispatch() /home/helixbot/dotnetbuild/work/a3f18f62-593d-45f2-985d-8cbdf5c68e39/Work/e26112cb-e993-41f5-aa16-81e08426a81c/Unzip/RunTests.sh: line 89: 4484 Aborted (core dumped) $RUNTIME_PATH/dotnet xunit.console.netcore.exe System.Net.Security.Tests.dll -xml testResults.xml -notrait category=nonnetcoreapptests -notrait category=nonlinuxtests -notrait category=failing command exited with ExitCode: 134 ```" +20553 area-System.IO System.IO.FileSystem tests are not safe run concurrently with themselves due to using CurrentDirectory "For example the failure below is caused by the two tests below, one creating illegal files like LPT3 underneath the current directory, and the other evaluating wildcards under the current directory. The tests should all use their own directories. Currentdirectory is not writeable in appcontainer runs anyway. https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170601.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.Directory_GetFileSystemEntries_str_str_so_alldirs~2FWindowsSearchPatternInvalid_Wildcards_netcoreapp ``` C# [ConditionalFact(nameof(UsingNewNormalization))] [ActiveIssue(20117, TargetFrameworkMonikers.Uap)] [PlatformSpecific(TestPlatforms.Windows)] // device name prefixes public void PathWithReservedDeviceNameAsExtendedPath() { var paths = IOInputs.GetReservedDeviceNames(); using (TemporaryDirectory directory = new TemporaryDirectory()) // creates at IOPath.Combine(Directory.GetCurrentDirectory(), IOPath.GetRandomFi { Assert.All(paths, (path) => { Assert.True(Create(IOInputs.ExtendedPrefix + Path.Combine(directory.Path, path)).Exists, path); }); } } ``` ```c# [Fact] [PlatformSpecific(TestPlatforms.Windows)] // Windows-invalid search patterns throw [SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework, ""In netcoreapp we made three new characters be treated as valid wildcards instead of invalid characters. NetFX still treats them as InvalidChars."")] public void WindowsSearchPatternInvalid_Wildcards_netcoreapp() { Assert.All(OldWildcards, invalidChar => { GetEntries(Directory.GetCurrentDirectory(), string.Format(""te{0}st"", invalidChar.ToString())); }); Assert.All(NewWildcards, invalidChar => { GetEntries(Directory.GetCurrentDirectory(), string.Format(""te{0}st"", invalidChar.ToString())); }); } ``` ``` ssert.All() Failure: 2 out of 3 items in the collection did not pass.\r [2]: System.UnauthorizedAccessException: Access to the path 'C:\\dotnetbuild\\work\\88cccc46-9679-4e82-9577-6ff3ee507b21\\Work\\376a6561-e0c6-40f6-a963-de66668044b7\\Unzip\\sbnzuwqz.ppn\\LPT3' is denied.\r at System.IO.Win32FileSystemEnumerableIterator`1.HandleError(Int32 errorCode, String path)\r at System.IO.Win32FileSystemEnumerableIterator`1.AddSearchableDirsToList(PathPair localSearchData)\r at System.IO.Win32FileSystemEnumerableIterator`1.MoveNext()\r at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)\r at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)\r at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption)\r at System.IO.Directory.GetFileSystemEntries(String path, String searchPattern, SearchOption searchOption)\r at System.IO.Tests.Directory_GetFileSystemEntries_str_str_so_alldirs.GetEntries(String dirName, String searchPattern)\r at System.IO.Tests.Directory_GetFileSystemEntries_str_str.b__17_1(Char invalidChar)\r at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action)\r [1]: System.UnauthorizedAccessException: Access to the path 'C:\\dotnetbuild\\work\\88cccc46-9679-4e82-9577-6ff3ee507b21\\Work\\376a6561-e0c6-40f6-a963-de66668044b7\\Unzip\\sbnzuwqz.ppn\\COM2' is denied.\r at System.IO.Win32FileSystemEnumerableIterator`1.HandleError(Int32 errorCode, String path)\r at System.IO.Win32FileSystemEnumerableIterator`1.AddSearchableDirsToList(PathPair localSearchData)\r at System.IO.Win32FileSystemEnumerableIterator`1.MoveNext()\r at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)\r at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)\r at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption)\r at System.IO.Directory.GetFileSystemEntries(String path, String searchPattern, SearchOption searchOption)\r at System.IO.Tests.Directory_GetFileSystemEntries_str_str_so_alldirs.GetEntries(String dirName, String searchPattern)\r at System.IO.Tests.Directory_GetFileSystemEntries_str_str.b__17_1(Char invalidChar)\r at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) ```" +20555 area-System.Collections CollectionExtensions is missing optimizations for Dictionary New CollectionExtensions methods Remove and TryAdd could use Dictionary<,> implementation directly when input value is of Dictionary<,> type. +20557 area-System.Runtime "No test results generated under ""System.Runtime.Loader.RefEmitLoadContext.Tests"", ""System.Runtime.Loader.Tests"" & ""System.Runtime.Serialization.Formatters.Tests""" "No test results generated under ""System.Runtime.Loader.RefEmitLoadContext.Tests"", ""System.Runtime.Loader.Tests"" & ""System.Runtime.Serialization.Formatters.Tests"" Details: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170601.01/workItem/System.Runtime.Loader.RefEmitLoadContext.Tests/wilogs https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170601.01/workItem/System.Runtime.Loader.Tests/wilogs https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fportable~2Fcli~2F/build/20170601.01/workItem/System.Runtime.Serialization.Formatters.Tests/wilogs" +20558 area-System.IO Add a Forward-only API for System.IO.Compression "This was started in https://github.com/dotnet/corefx/issues/9657 There seems to be a growing desire/need for a forward-only API that accesses compressed file formats (e.g. zip, gzip, tar, etc.) in a streaming manner. This means very large files as well as streams like network streams can be read and decompressed on the fly. Basically, the API reads from Stream objects and never seeks on it. This is how the Reader/Writer API from [SharpCompress](https://github.com/adamhathcock/sharpcompress) works. Here's a sample from the unit tests: ```csharp using (Stream stream = new ForwardOnlyStream(File.OpenRead(path))) using (IReader reader = ReaderFactory.Open(stream)) { while (reader.MoveToNextEntry()) { if (!reader.Entry.IsDirectory) { reader.WriteEntryToDirectory(test.SCRATCH_FILES_PATH, new ExtractionOptions() { ExtractFullPath = true, Overwrite = true }); } } } public interface IReader : IDisposable { event EventHandler> EntryExtractionProgress; event EventHandler CompressedBytesRead; event EventHandler FilePartExtractionBegin; ArchiveType ArchiveType { get; } IEntry Entry { get; } /// /// Decompresses the current entry to the stream. This cannot be called twice for the current entry. /// /// void WriteEntryTo(Stream writableStream); bool Cancelled { get; } void Cancel(); /// /// Moves to the next entry by reading more data from the underlying stream. This skips if data has not been read. /// /// bool MoveToNextEntry(); /// /// Opens the current entry as a stream that will decompress as it is read. /// Read the entire stream or use SkipEntry on EntryStream. /// EntryStream OpenEntryStream(); } ``` `WriteEntryToDirectory` is an extension method that provides some shortcuts for dealing with file operations but what it really does is just grab the internal stream and decompresses. The actual entry method is just `IReader.WriteEntryTo(Stream);` If the entry isn't decompressed then the internal stream is just moved forward and not decompressed if possible (some formats require decompression since compressed length can be unknown) The Writer API works similarly. There is also a generic API from `ReaderFactory` or `WriterFactory` that doesn't require knowledge of the format beforehand. There is also a similar `ArchiveFactory` that is writeable (that uses WriterFactory internally to save) that could also be used for the current `ZipArchive` API and beyond. As the author of SharpCompress, I'd like to push a lot of the ideas into core library but having native access to the compression streams (like the internal zlib) would be a great performance benefit for me. I haven't ever written any compression algorithm implementations myself so I'm sure my managed implementations need a lot of love. I would start by creating `ZipReader` and `ZipWriter` (as well as starting the generic API) using a lot of the internal code already in the core library to prove out the API. This kind of relates to https://github.com/dotnet/corefx/issues/14853 but forward-only access is something most libraries don't account for so I'm not sure. Other easy additions would be Reader/Writer support for GZip, BZip2 and LZip (with an LZMA compressor). Tar support linked with the previous single file formats would be a larger addition. SharpCompress deals with `tar.gz`, `tar.bz2` and `tar.lz` auto-magically by detecting first the compressed format then a tar file inside. The above API works the same. Thoughts? Summoning a few people from the other issue cc: @ianhays @karelz @qmfrederik " +20559 area-System.Net "Tests under ""System.Net.Security.Tests"" failed with ""Client/Server TCP Connect timed out"" and ""System.TimeoutException""" Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170601.05/workItem/System.Net.Security.Tests/wilogs ~~~ 2017-05-31 23:18:08,252: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.CertificateValidationClientServer.CertificateValidationClientServer_EndToEnd_Ok(useClientSelectionCallback: False) [FAIL] 2017-05-31 23:18:08,254: INFO: proc(54): run_and_log_output: Output: Client/Server TCP Connect timed out. 2017-05-31 23:18:08,254: INFO: proc(54): run_and_log_output: Output: Expected: True 2017-05-31 23:18:08,254: INFO: proc(54): run_and_log_output: Output: Actual: False 2017-05-31 23:18:08,258: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-31 23:18:08,402: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/tests/FunctionalTests/CertificateValidationClientServer.cs(80,0): at System.Net.Security.Tests.CertificateValidationClientServer.d__7.MoveNext() 2017-05-31 23:18:08,402: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-31 23:18:08,402: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-31 23:18:08,402: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-31 23:18:08,402: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-31 23:18:08,403: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-31 23:18:08,403: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-31 23:18:08,403: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-31 23:18:08,403: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-31 23:18:08,403: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-31 23:18:09,393: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_UnsupportedAllServer_Fail [FAIL] 2017-05-31 23:18:09,394: INFO: proc(54): run_and_log_output: Output: Assert.Throws() Failure 2017-05-31 23:18:09,394: INFO: proc(54): run_and_log_output: Output: Expected: typeof(System.NotSupportedException) 2017-05-31 23:18:09,394: INFO: proc(54): run_and_log_output: Output: Actual: typeof(System.TimeoutException): The operation has timed out. 2017-05-31 23:18:09,394: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-05-31 23:18:09,394: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() 2017-05-31 23:18:09,394: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-31 23:18:09,394: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-31 23:18:09,394: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 2017-05-31 23:18:09,394: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/tests/FunctionalTests/ServerAsyncAuthenticateTest.cs(134,0): at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() 2017-05-31 23:18:09,394: INFO: proc(54): run_and_log_output: Output: --- End of stack trace from previous location where exception was thrown --- 2017-05-31 23:18:09,394: INFO: proc(54): run_and_log_output: Output: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 2017-05-31 23:18:09,395: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +20561 area-System.Xml XmlReader, XmlTextReader: ensure Readers created from a full path have an absolute BaseURI @stephentoub @sepidehMS @krwq PTAL This improves cross-platform behavior when creating an XmlReader/XmlTextReader from a full file path (cfr https://github.com/dotnet/corefx/issues/20046). Fixes #20626. +20562 area-Meta Request for Ubuntu 17.04 build When trying to install Powershell Ubuntu 10.04 .deb package, it asks for dependency libicu55 which is not available for Ubuntu 17.04 (it has libicu57). I understand that powershell ( https://github.com/PowerShell/PowerShell/ ) is build on this project, and until you release a 17.04 build, they can't release it. So please, release an Ubuntu 17.04 build/ Thank You, Maxim. +20563 area-System.Linq Enumerable.OrderBy() infinite loops in the presence of a bad comparer An `IComparer` which does not properly detect equal elements can cause an infinite loop in the evaluation of an `IEnumerable` sorted with `OrderBy`: ```c# var sequence = Enumerable.Range(0, 2); var comparer = Comparer.Create((int a, int b) => a == b ? -1 : a.CompareTo(b)); sequence.OrderBy(i => i, comparer).ToArray(); // never terminates ``` This is not necessarily a bug since a non-transitive `IComparer` should cause undefined behavior. However, it would be nice if the result were a thrown exception or nonsensically sorted sequence instead of an infinite loop to simplify debugging. In comparison, `Array.Sort` applied to the same sequence and `IComparer` does not result in an infinite loop. +20564 area-System.Xml XmlResolver: remove workaround for lack of Unix path support in Uri cc @stephentoub Some tests were relying on the Uri class to convert backslashes to forward slashes. +20570 area-Infrastructure CoreFX contributor experience Forked from discussion in https://github.com/dotnet/corefx/issues/4571#issuecomment-305198456 In nutshell: @FransBouma ran into lots of hardship when trying to contribute to CoreFX repo - mainly around using VS. @jnm2 and @willdean raised similar concerns and additional points. Let's have the discussion here. When there are actionable work items what to fix, or separate larger sub-discussions, we may moved them into separate issues. This issue is forum for the overall problem space. List of key VS scenarios: 1. Require latest stable release of VS (not preview) 1. **Open solution** at the top of the tree 1. **Compile** CoreFX projects, including test projects 2. **Run single test** 1. **Debug single test** (incl. over and over again) 1. **Run all tests** from specific test project so you can confirm things work * P2: Support additional ways to run tests - e.g. ReSharper and NCrunch Ideas: * Integration test of CoreFX build & running/debugging test in VS - note: Can we leverage VS UI test automation? +20574 area-System.Reflection Serialization Backdown shuts down all ParameterInfo serialization, not just the runtime's implementation., The decision to make the runtime’s implementation of Reflection objects non-serializable went too far and changed the behaviors of methods inherited by all Reflection implementors. In particular, by changing ParameterInfo.GetRealObject() to throw PNSE, all third-party implementations of ParameterInfo become undeserializable, not just the runtime’s implementation. The intended change was to make the runtime’s implementation non-serializable which is already accomplished by removing [Serializable] from RuntimeParameterInfo. This bug is about to be merged into release/2.0.0 via this open PR (https://github.com/dotnet/coreclr/pull/12020) This issue is about fixing that bug. +20577 area-System.Security [release/2.0] macOS: Set PFX temporary keychains to have a lock policy of never. The default lock policy on a new keychain is to lock on sleep and after 5 minutes of being idle. This means that if more than 5 minutes pass from usages of a certificate private key (where the cert was opened from a PFX) the user gets prompted for a password for the temporary keychain. Since that keychain has a randomly generated password it's not really possible for the user to accomplish this successfully. No tests cover this scenario, since they require more than 5 minutes of idle time. Fixes #20509. (Port of https://github.com/dotnet/corefx/issues/20542 to release/2.0.0) +20578 area-Serialization System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.Deserialize_FuzzInput test failed on Desktop Failed with error: ``` Stacktrace MESSAGE: System.IO.FileLoadException : The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047) +++++++++++++++++++ STACK TRACE: at System.Reflection.AssemblyName.nInit(RuntimeAssembly& assembly, Boolean forIntrospection, Boolean raiseResolveEvent) at System.Reflection.AssemblyName..ctor(String assemblyName) at System.TypeNameParser.ResolveAssembly(String asmName, Func`2 assemblyResolver, Boolean throwOnError, StackCrawlMark& stackMark) at System.TypeNameParser.ConstructType(Func`2 assemblyResolver, Func`4 typeResolver, Boolean throwOnError, Boolean ignoreCase, StackCrawlMark& stackMark) at System.TypeNameParser.ConstructType(Func`2 assemblyResolver, Func`4 typeResolver, Boolean throwOnError, Boolean ignoreCase, StackCrawlMark& stackMark) at System.TypeNameParser.GetType(String typeName, Func`2 assemblyResolver, Func`4 typeResolver, Boolean throwOnError, Boolean ignoreCase, StackCrawlMark& stackMark) at System.Type.GetType(String typeName, Func`2 assemblyResolver, Func`4 typeResolver, Boolean throwOnError) at System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetSimplyNamedTypeFromAssembly(Assembly assm, String typeName, Type& type) at System.Runtime.Serialization.Formatters.Binary.ObjectReader.FastBindToType(String assemblyName, String typeName) at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Bind(String assemblyString, String typeString) at System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name) at System.Runtime.Serialization.Formatters.Binary.ObjectMap..ctor(String objectName, String[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, Object[] typeInformationA, Int32[] memberAssemIds, ObjectReader objectReader, Int32 objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable) at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record) at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run() at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.Deserialize_FuzzInput(Object obj, Random rand, Int32 fuzzTrial) in D:\j\workspace\outerloop_net---71bc9469\src\System.Runtime.Serialization.Formatters\tests\BinaryFormatterTests.cs:line 534 ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_release/lastCompletedBuild/testReport/System.Runtime.Serialization.Formatters.Tests/BinaryFormatterTests/Deserialize_FuzzInput_obj____1__2__3__4__5______AAEAAAD_____AQAAAAAAAAAMAgAAAFVTeXN0ZW0uT2JqZWN0TW_________AAEAAAD_____AQAAAAAAAAAMAgAAAE5XaW5kb3dzQmFzZSwgVm_________rand__Random______fuzzTrial__1_/ cc: @krwq @morganbr @stephentoub +20579 area-System.Diagnostics DiagnosticSourceListener tests fails events and not enabled and event source count is zero "Tests from ""System.Diagnostics.DiagnosticSource\tests"" " +20581 area-Serialization Reenable TimeZoneInfo serialization test Needs newest coreclr update: https://github.com/dotnet/coreclr/pull/12024 cc @danmosemsft +20583 area-System.Net Consider adding WebSocket.CopyToAsync() to avoid copies and allocations on ReceiveAsync So that websocket implementations that keep an internal buffer e.g. (https://github.com/dotnet/corefx/blob/6d796f18bb24762e16ba0337a4bae75c09d83b22/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs#L39) can be pushed to the destination without allocating a buffer. ### API Proposal ```C# public class WebSocket { public Task CopyToAsync( Func, object, Task> callback, object state); ``` ### Usage You could even pipe to a `Stream` like this: ```C# await webSocket.CopyToAsync((data, state) => { return ((Stream)state).WriteAsync(data.Array, data.Offset, data.Count); }, stream); ``` # Original Proposal ```c# WebSocket.CopyToAsync(Func, object, Task> callback, object state); ``` /cc @stephentoub @CIPop @davidsh +20586 area-Infrastructure Set EnableDefaultItems=false in the environment in init-tools scripts This should block the restore command from trying to discover all the default items on the disk when they aren't needed for anything. @danmosemsft @mmitche this is an attempt to see if we can reduce the time it takes during init-tools. +20587 area-System.Runtime Change RuntimeEnvironment.GetRuntimeDirectory to use AppDomain.CurrentDomain.BaseDirectory AppDomain.CurrentDomain.BaseDirectory Change RuntimeEnvironment.GetRuntimeDirectory Disable couple of InteropServices tests which won't work on UWP. @yizhang82 @botaberg @AtsushiKan +20588 area-System.IO System.IO.Ports.Test OpenEveryPortName disabled on UapAot. -method System.IO.Ports.Tests.GetPortNames.OpenEveryPortName This is probably by design but I don't want to make the call as I don't exactly own this area and there may be another way for that api to work that I don't know of. SerialPort.GetPortNames() needs to read the registry and its uses Microsoft.Win32.Registry to do so. For Aot, that package is the autogenerated PNSE version. (Unfortunately, OpenEveryPortName() NullRefs rather than PNSE'ing as it tries to execute Registry.LocalMachine.OpenSubKey() - Registry.LocalMachine is a static field which never gets initialized in an autogenerated PNSE assembly.) +20589 area-System.Data System.Data.Common.Tests InvokeCodeThatShouldFirEvents_EnsureEventsFired test disabled. -method System.Data.Tests.DataCommonEventSourceTest.InvokeCodeThatShouldFirEvents_EnsureEventsFired ```` System.Data.Tests.DataCommonEventSourceTest.InvokeCodeThatShouldFirEvents_EnsureEventsFired [FAIL] Assert.InRange() Failure Range: (1 - 2147483647) Actual: 0 Stack Trace: c:\dd\CoreFxN\src\System.Data.Common\tests\System\Data\DataCommonEventSourceTest.cs(35,0): at System.Data.Tests.DataCommonEventSourceTest.InvokeCodeThatShouldFirEvents_EnsureEventsFired() at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtrForDynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState) c:\dd\ProjectN\src\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\InvokeUtils.cs(400,0): at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) ``` +20590 area-Serialization Test DCS_NativeDll Failed on Uapaot "The test failed on uapaot. The test type block the build of UWP ILC run. I removed the test type entirely. ```c# [Fact] public static void DCS_NativeDll() { NativeDllWrapper.CallIntoNativeDll(); } public class NativeDllWrapper { internal struct MyStruct { internal int field1; internal int field2; } [System.Runtime.InteropServices.DllImport(""NativeDll.dll"")] internal static extern int StructInAndOutTest(MyStruct myStruct, out MyStruct outMyStruct); public static int CallIntoNativeDll() { MyStruct myStruct = new MyStruct(); myStruct.field1 = 1; myStruct.field2 = 2; return myStruct.field1; } } ```" +20591 area-Infrastructure Update BuildToolsVersion This update is to get the XunitOptions fix over in corefx side. cc: @danmosemsft @weshaggard +20592 area-System.Threading System.Threading.Tests TestEtw disabled. System.Threading.Tests -method System.Threading.Tests.EtwTests.TestEtw Events that should be firing aren't. +20593 area-System.Drawing Add support for System.Drawing on Windows. "This change adds a new library, System.Drawing.Common, which supports a large subset of the System.Drawing API. It is a direct port of the code from the .NET Framework codebase. The code has been cleaned, formatted, and sanitized to match the code style of corefx, but is otherwise very similar to the .NET Framework version. There are a few key differences: * TypeConverter's have been omitted for now. If we want to add these to .NET Core, we should add them to the TypeConverter library, rather than System.Drawing.Common itself. Note that there's already a few TypeConverter's for the types that are in System.Drawing.Primitives. * Some parts of the library do not respond to ""System Events"", because they are not yet implemented in .NET Core. This means that fonts and colors will not automatically update when the system defaults change, as they do in .NET Framework. The code is still there, but behind the feature flag ""FEATURE_SYSTEM_EVENTS"". * Various attributes have been removed from the codebase, because they are no longer applicable. Examples: * Designer-related attributes (DefaultProperty, DefaultEvent, Editor, etc.) * CAS-related attributes. CAS-related method calls (Security demands and asserts) have also been removed. There is still further cleanup that can be done in order to match the style and structure of corefx. For example, the interop code should be reorganized to match other BCL libraries. NOTE: This implementation will only work on Windows, and not in UWP. This is a strictly compatibility-driven feature. Any changes made to it should not significantly diverge from the .NET Framework implementation. Libraries should only take a dependency on System.Drawing.Common if they are relying on legacy components from .NET Framework; newly-written code and features should rely on modern alternatives." +20594 area-Serialization Disable Two DCS/DCJS Tests on uapaot. DCJS_ReadOnlyDictionaryCausingDuplicateInvalidDataContract failed on uapaot due to #20478. DCS_NativeDll failed to compile on uapaot. I opened #20590 for tracking it. Re-enabled DCS_TypeWithTypeProperty as it passed on uapaot. Fix #16768 +20597 area-Infrastructure Add symbol signatures to NuGet packages. This is still waiting for a BuildTools update to fix one remaining issue - so this is not ready to merge yet. - Add MicroBuild signing to Publish definition. - Add symbol signing steps to Publish definition. - This cracks the nupkgs, finds files that we want to index by extension, creates a CDF file and from that a catalog file, gets the catalog file signed, and re-inserts the catalog into the nupkg. +20598 area-System.Net Please add option to force resolve DNS address by using IPv4 or IPv6 For example, this is supported by CURL with command line parameters -4, --ipv4 and -6, --ipv6 (https://curl.haxx.se/docs/manpage.html#-6) This parameter would probably be in HttpClientHandler class with default value set to IPv4. One could resolve IP address manually by calling System.Net.Dns.GetHostAddressesAsync and use this in Uri.Host, but there can be issues when connecting to servers with HTTPS protocol. +20599 area-Meta [WIP] Core Desktop Serialization Roundtrip work Stub for out serialization NetFX work - work in progress Types with failures when deserializing netfx->core: - [ ] System.Net.CookieCollection - [ ] System.Net.CookieContainer - [ ] System.Collections.BitArray - [ ] System.Collections.ArrayList - [ ] System.Collections.Comparer - [ ] System.Collections.Queue - [ ] System.Collections.Generic.SortedDictionary - [ ] System.Collections.SortedList - [ ] System.Collections.Hashtable - [ ] System.ComponentModel.BindingList - [ ] System.Collections.Stack - [ ] System.Collections.Specialized.StringDictionary - [ ] System.Collections.Specialized.StringCollection - [ ] System.Collections.Specialized.HybridDictionary - [ ] System.Collections.ObjectModel.ObservableCollection - [ ] System.Collections.ObjectModel.ReadOnlyObservableCollection - [ ] System.Collections.ObjectModel.ReadOnlyDictionary - [ ] System.Runtime.Serialization.Formatters.Tests.SimpleKeyedCollection cc: @ViktorHofer [log.txt](https://github.com/dotnet/corefx/files/1046203/log.txt) +20600 area-System.Runtime Implement RuntimeEnvironment.GetSystemVersion for uapaot RuntimeEnvironment.GetSystemVersion throws PNSE now. +20602 area-Infrastructure Dumpling fails due to locked file "Is dumpling.py getting downloaded even when it already exists? I see lots of ``` downloaded dumpling.py downloaded analysis.py downloaded triage.ini ``` issue: ``` Running tests... Start time: 15:30:51.12 Traceback (most recent call last): File ""C:\Users\dotnet-bot/.dumpling/dumpling.py"", line 1128, in main(sys.argv) File ""C:\Users\dotnet-bot/.dumpling/dumpling.py"", line 1123, in main cmdProc.Process(config) File ""C:\Users\dotnet-bot/.dumpling/dumpling.py"", line 537, in Process self.Install(config) File ""C:\Users\dotnet-bot/.dumpling/dumpling.py"", line 545, in Install self._dumpSvc.DownloadClientFile('dumpling.py', config.installpath) File ""C:\Users\dotnet-bot/.dumpling/dumpling.py"", line 213, in DownloadClientFile DumplingService._stream_file_from_response(response, os.path.join(downdir, filename)) File ""C:\Users\dotnet-bot/.dumpling/dumpling.py"", line 384, in _stream_file_from_response os.remove(path) WindowsError: [Error 32] The process cannot access the file because it is being used by another process: u'C:\\Users\\dotnet-bot\\.dumpling\\dumpling.py' ```" +20603 area-Serialization Fix Bug with Serialization of Property with Private Getter. If a type does not have any serialization attribute, e.g. `Serializable` or `DataContract`, DCS should not serialize the type's property if the property does not have public Getter. Fix #20476 Fix #19516 +20604 area-System.Net WinHttpHandler authentication behavior - [ ] IsWindowsImplementation/IsNotWindowsImplementation is incorrect and prevents some of the tests from executing on certain platforms (see #20341 for a potential fix in GetContextHelper.cs). - [ ] The following tests fail on both .Net Framework (on my machine) as well as on .Net Core (for details and a possible fix see #20341 and comments within that PR.) ```NtlmAuthentication_Conversation_ReturnsExpectedType2Message NtlmAuthentication_InvalidRequestHeaders_ReturnsExpectedStatusCode NegotiateAuthentication_Conversation_ReturnsExpectedType2Message NegotiateAuthentication_InvalidRequestHeaders_ReturnsExpectedStatusCode ``` - [ ] After the fix proposed in #20341 some of the test variations are expected to fail due to a behavior difference in WinHTTP/Negotiate when connecting to localhost servers. For more information also see #20096 +20605 area-System.Net Changing tracking bug number @karelz per our offline discussion and your comment in https://github.com/dotnet/corefx/issues/20096#issuecomment-305582570 Properly tracking #20604. (No actual code or test changes.) +20606 area-System.Reflection Add regression test for shiproom PR. +20609 area-System.Collections ImmutableList.Builder.RemoveAll removes elements for which the Predicate is false "Repro: `\\fsu\shares\MsEng\MSBuild\micodoba\ImmutableListBuilderRepro.zip` 0. open a VS 2017 terminal and navigate to repro dir 1. terminal: `start .\msbuild\src\MSBuild.sln` 2. VS: set breakpoint in Microsoft.Build.Evaluation.LazyItemEvaluator.RemoveOperation.SaveItems at line 34 (with contents `listBuilder.RemoveAll(itemData => items.Contains(itemData.Item));`) 3. terminal: `set MSBUILDDEBUGONSTART=2` 4. terminal: `.\msbuild\bin\Bootstrap\MSBuild\15.0\Bin\MSBuild.exe .\GlobbingProblem\GlobbingProblem\GlobbingProblem.csproj` 5. VS: attach to msbuild process ID and hit any key in terminal 6. VS: breakpoint is hit and the following state exists: - items has 5 elements in it: ``` + [0] ""Compile""=""C:\\Users\\micodoba\\.nuget\\packages\\nservicebus.acceptancetests.sources\\6.3.0-alpha0113\\contentFiles\\cs\\any\\NSB.AcceptanceTests\\Audit\\When_audit_is_overridden_in_code.cs"" #DirectMetadata=5) Microsoft.Build.Execution.ProjectItemInstance + [1] ""Compile""=""C:\\Users\\micodoba\\.nuget\\packages\\nservicebus.acceptancetests.sources\\6.3.0-alpha0113\\contentFiles\\cs\\any\\NSB.AcceptanceTests\\Audit\\When_a_replymessage_is_audited.cs"" #DirectMetadata=5) Microsoft.Build.Execution.ProjectItemInstance + [2] ""Compile""=""C:\\Users\\micodoba\\.nuget\\packages\\nservicebus.acceptancetests.sources\\6.3.0-alpha0113\\contentFiles\\cs\\any\\NSB.AcceptanceTests\\Audit\\When_auditing_message_with_TimeToBeReceived.cs"" #DirectMetadata=5) Microsoft.Build.Execution.ProjectItemInstance + [3] ""Compile""=""C:\\Users\\micodoba\\.nuget\\packages\\nservicebus.acceptancetests.sources\\6.3.0-alpha0113\\contentFiles\\cs\\any\\NSB.AcceptanceTests\\Audit\\When_a_message_is_audited.cs"" #DirectMetadata=5) Microsoft.Build.Execution.ProjectItemInstance + [4] ""Compile""=""C:\\Users\\micodoba\\.nuget\\packages\\nservicebus.acceptancetests.sources\\6.3.0-alpha0113\\contentFiles\\cs\\any\\NSB.AcceptanceTests\\Audit\\When_auditing.cs"" #DirectMetadata=5) Microsoft.Build.Execution.ProjectItemInstance ``` - listBuilder has 190 items in it 7. step over line 34 so the list builder performs the RemoveAll. Expected: 5 elements are removed, the ones from `items`. Actual: 6 elements are removed. The unexpected removed element is an item with the value: `C:\Users\micodoba\.nuget\packages\nservicebus.acceptancetests.sources\6.3.0-alpha0113\contentFiles\cs\any\NSB.AcceptanceTests\ConfigureEndpointLearningTransport.cs`. If you replace the `RemoveAll` with `Remove`, then only the expected items are removed. MSBuild issue: https://github.com/Microsoft/msbuild/issues/2069 " +20610 area-System.Diagnostics Fix System.Diagnostics.Process.Tests and skip some others This PR disables System.Diagnostics.ProcessTests that are hitting: https://github.com/dotnet/corefx/issues/19909 I also fixed some tests where the executable name is different for UapAot and some differences in behavior. cc: @danmosemsft @tijoytom @Priya91 @AtsushiKan +20611 area-System.Runtime System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.Deserialize_FuzzInput failed in ci failed test: System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.Deserialize_FuzzInput detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_centos7.1_debug/65/testReport/System.Runtime.Serialization.Formatters.Tests/BinaryFormatterTests/Deserialize_FuzzInput_obj____0cacaa4d_c6bd_420a_b660_2f557337ca89__be4e9ff4_82d9_4b54_85ea_0957e21de0e2______AAEAAAD_____AQAAAAAAAAAHAQAAAAABAAAAAgAAAAMLU3lzdG_________AAEAAAD_____AQAAAAAAAAAHAQAAAAABAAAAAgAAAAMLU3lzdG_________rand__Random______fuzzTrial__1_/ MESSAGE: ~~~ System.ArgumentException : Object of type 'System.TimeSpan' cannot be converted to type 'System.Byte'. ~~~ STACK TRACE: ~~~ at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast) at System.Reflection.RtFieldInfo.InternalSetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture, StackCrawlMark& stackMark) at System.Reflection.RtFieldInfo.SetValue(Object obj, Object value, BindingFlags invokeAttr, Binder binder, CultureInfo culture) at System.Runtime.Serialization.FormatterServices.PopulateObjectMembers(Object obj, MemberInfo[] members, Object[] data) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Runtime.Serialization.Formatters/src/System/Runtime/Serialization/FormatterServices.cs:line 128 at System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo.PopulateObjectMembers(Object obj, Object[] memberData) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Runtime.Serialization.Formatters/src/System/Runtime/Serialization/Formatters/Binary/BinaryObjectInfo.cs:line 552 at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObjectEnd(ParseRecord pr) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Runtime.Serialization.Formatters/src/System/Runtime/Serialization/Formatters/Binary/BinaryObjectReader.cs:line 331 at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseArrayMemberEnd(ParseRecord pr) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Runtime.Serialization.Formatters/src/System/Runtime/Serialization/Formatters/Binary/BinaryObjectReader.cs:line 692 at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseMemberEnd(ParseRecord pr) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Runtime.Serialization.Formatters/src/System/Runtime/Serialization/Formatters/Binary/BinaryObjectReader.cs:line 813 at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Parse(ParseRecord pr) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Runtime.Serialization.Formatters/src/System/Runtime/Serialization/Formatters/Binary/BinaryObjectReader.cs:line 191 at System.Runtime.Serialization.Formatters.Binary.BinaryParser.Run() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Runtime.Serialization.Formatters/src/System/Runtime/Serialization/Formatters/Binary/BinaryParser.cs:line 183 at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(BinaryParser serParser, Boolean fCheck) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Runtime.Serialization.Formatters/src/System/Runtime/Serialization/Formatters/Binary/BinaryObjectReader.cs:line 99 at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, Boolean check) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Runtime.Serialization.Formatters/src/System/Runtime/Serialization/Formatters/Binary/BinaryFormatter.cs:line 66 at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Runtime.Serialization.Formatters/src/System/Runtime/Serialization/Formatters/Binary/BinaryFormatter.cs:line 40 at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.Deserialize_FuzzInput(Object obj, Random rand, Int32 fuzzTrial) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTests.cs:line 558 ~~~ +20612 area-System.Runtime Deserialize_FuzzInput tests are failing on all OS https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170602.01/workItem/System.Runtime.Serialization.Formatters.Tests The serialization tests changed the test blobs, which may be the cause, or it may be the change to binary formatter. We either need to catch more exceptions, or fix whatever we broke. [ @stephentoub Deserialize_FuzzInput_MemberData always starts with Random(42) so every run is the same. I see about equal numbers of Random(nnn) in our tree as Random(). The latter being non deterministic. I wonder whether we should change throughout to non deterministic but log the seed and have some way to read it] +20613 area-Meta javascript : Need to update WINJS to provide more support for JavaScript Windows UWP APIs There are very many web developers or JS developers who are excited to use JS or JavaScript for development in UWP. Now I've been using WINJS, but it's been a long time since it's been updated, and the new API is not going to happen. I hope you can continue to update Winjs. At the same time hope that UWP can introduce JS part of the function. ---------------------------------------------- 有非常非常多的网页开发人员或是node.js 开发人员,如果能在 UWP 中使用 node.js 或是 Javascript 做开发,是非常另人兴奋的。现在我一直在使用 WinJS,但是已经很长一段时间没有再更新过了,新的 API 也没有办法实现。希望可以继续更新 WinJS。同时希望UWP能引入 node.js 的部分功能。 +20614 area-Infrastructure Update CoreClr, CoreFx, ProjectNTfs, ProjectNTfsTestILC, Standard to preview1-25402-01, preview1-25402-02, beta-25402-00, beta-25402-00, preview1-25402-01, respectively (master) +20615 area-Meta WebView: The Webview API requires additional access to the IFRAME. Webview need to add Invokescriptasync access to the IFRAME. ---------------------------------------------------------------------- WebView 需要添加 invokeScriptAsync 对 iframe 的访问。 +20616 area-System.Runtime Update serialization fuzzing test to add 2 new exceptions "This test verifies that only ""expected"" exception types are thrown when deserializing fuzzed blobs. After we updated the blobs in our serialization work, it caused two new exception types to be thrown. Both these are also thrown when running on Desktop, so this is not a break we introduced and we just have to update the list of exceptions. Although the test is deterministically random, I can only repro the ArgumentException locally when running on Desktop. However I repro the FileLoadException in Helix. Perhaps the behavior of `Random(42)` is different on a different framework version. It might be interesting to change to a non deterministic (but logged) seed. Fixes https://github.com/dotnet/corefx/issues/20611 Fixes https://github.com/dotnet/corefx/issues/20578" +20617 area-Infrastructure Update CoreClr, CoreFx to preview2-25402-03, preview2-25402-01, respectively (release/2.0.0) +20618 area-System.Runtime Hard code Environment.UserName in UWP "GetUserNameEx will not go into the WACK. Hard code to something like ""Windows User"". Hard code Environment.UserDomainName too even though LookupAccountNameW is accessible." +20619 area-System.Diagnostics Avoid HWND functions in UWP Process class HWND related functions are not meaningful in an app. When bringing back API for the Process class, anything that relies on these should throw PNSE with a nice message. ``` EnumWindows GetWindow GetWindowLong GetWindowText GetWindowTextLength GetWindowThreadProcessId IsWindowVisible PostMessage SendMessageTimeout WaitForInputIdle GetKeyState ``` +20620 area-System.Diagnostics update process/thread structs to match updated Windows header Another shot at https://github.com/dotnet/corefx/pull/20142 now I have the official header, which I can share offline. +20623 area-System.Net Uri: preserve backslash for file:/// uris on Unix "This changes the handling of file:/// uris to preserve the backslash on Unix. The uris must start with exactly 3 slashes (uris with more slashes are Unc uris). This make things work like: ```C# var path = ""/one\two""; var uri1 = new Uri(path); var uri2 = new Uri(uri1.ToString()); var uri3 = new Uri(""file://"" + path); Assert.Equal(uri1.LocalPath, uri2.LocalPath); Assert.Equal(uri1.LocalPath, uri3.LocalPath); ``` Otherwise uri2 and uri1 contain forward slashes. CC @stephentoub " +20624 area-System.IO OpenText and FileStream cannot open file in readonly mode "In a .NET Core (actually ASP.NET Core) project I am trying to read log files. The log files get created by a logger (Serilog in my case). When I try to open the currently written log file with this code ```c# using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read)) { using (StreamReader reader = new StreamReader(fs)) { string content = await reader.ReadToEndAsync(); ... } } ``` I get a concurrency exception (""The process cannot access the file ... because it is being used by another process""). Notepad and Notepad++ can open the file for reading without any problem though! It seems almost like the readonly flag would not be respected. Is there anything wrong on my side? This is on Windows 10, VS 2017, netcoreapp1.1" +20626 area-System.Xml XmlReader, XmlTextReader cannot resolve files when created with an absolute file path base uri on Unix The XmlReader and XmlTextReader have a number of methods that accept a url string which used as the base uri to resolve other files. XmlReader.Create(string) and new XmlTextReader(string) will convert the native file paths to an absolute file:// url and use that as the BaseURI. The other overloads do not convert the url-argument and use it as the BaseURI. On Windows this works fine. Even when not converted to a file:// url, the resulting BaseURI string is treated as an absolute uri to resolve the other uris. On Unix, the overloads that use the url-argument as-is don't work. The BaseURI (e.g. /tmp/myfile.xml) is considered to be a relative url and isn't used to resolve other files. This was observed with failing tests in https://github.com/dotnet/corefx/pull/19735. The difference is due to the Uri class treating absolute file uris as relative on Unix (cfr https://github.com/dotnet/corefx/issues/20046). The tests were updated to pass (https://github.com/dotnet/corefx/commit/3a3ead6abb6c27364f12e41478a34d79ced6fdd1#diff-0bf8d1637c34db29730c199a32fd08ff). This breaks existing code when running on Unix instead of Windows. These can be fixed with changes like the ones made to the tests. To avoid breaking existing code, an option is to convert the url-arguments on Unix so they also become absolute uris. This is implemented in: https://github.com/dotnet/corefx/pull/20561. The PR only changes the behavior on Unix when passing an absolute native file path. @karelz @stephentoub @sepidehMS @krwq +20627 area-Infrastructure Improve Unit Testing experience in CoreFX "I don't want this to be a mass hate-in on xUnit, but I made some unguarded comments about xUnit on another CoreFx thread, and there does seem to be some shared feeling on the subject. @karelz suggested (#4571) in a separate thread to discuss it. If the consensus is 'shove off to the xUnit repo and do your moaning there', then that's fine, though I think my complaints are perceived by some to be positive features of xUnit, so I doubt I'd get any traction on my own. The xUnit issues I have found made testing harder than it needed to be on CoreFx are: * Inability to consistently add messages to assertion methods - you can add a message to `Assert.True`, but you can't to `Assert.Equal`. Two workaround recommendations seem to get made: The first is to use `Assert.True` and put your condition in the `bool` argument - that then means the test runner can put no useful info into the trace. The other alternative is to use a better assertion library (there was some consistency of support for Fluent Assertions, though I haven't used it myself, and my heart sinks at yet another dependency). Every assertion method should have an optional message. People planning to advance the defence at this point that there should only be one assertion in a test and so you shouldn't need messages can expect short shrift from me... * Obvious gaps in the assertion support - e.g. no 'Fail' method, so we end up with stuff like `Assert.True(false, ""Message"")` or writing a helpers to avoid this sort of thing. This would be easy to add. * No proper trace from tests. A .NET test framework/runner should collect Console and Trace output and report/log it sensibly (i.e. not co-mingled with other test output). No ifs, no buts, no excuses about async, nothing. This is the one that really winds me up, because it leads to CoreFx having to have a policy *against* tracing in tests largely because the test outputs gets sprayed across each other so they make no sense. Couple this with the pain some of us have with trying to debug into tests, and the result is miserable - CI post-mortem shouldn't have to be a guessing game. I'm aware that xUnit is somehow the MS-insider's choice, and it was probably the only framework with Core support at the time it was chosen, so we cannot rewrite history, but if the Core projects have any influence with xUnit, could they ask for these improvements? " +20628 area-System.Net Unix paths with backslashes are converted to forward slashes when uri is created with the file scheme "A backslash is a valid character in a unix path. It is not used to separate path segments, it is part of a directory/file name. The Uri class will convert these backslashes to forward slashes, causing the resulting uri to no longer point at the correct file. e.g. `new Uri(file:///one\two)` refers to the `/one/two` instead of `/one\two` When creating a Uri without the file scheme, the Uri class will preserve the backslashes. e.g. `new Uri(/one\two)` refers to `/one\two` Note that the `ToString` of this uri returns `file:///one\two`. Which gives the strange behavior that `new Uri(new Uri(/one\two).ToString())` refers to `/one/two` The Uri class is very persistent in converting backslashes to forward slashes. Even when providing a percent encoded backslash, it is converted to a forward slash. One way to fix this is to no longer convert backslashes for `file:///` uris on Unix. The Uri class has special semantics for two types of files: Dos paths and Unc paths. Dos paths (e.g. c:\) don't start with a slash. Unc paths start with 2 slashes. So paths starting with a single slash can be treated as unix uris (i.e. no forward slash conversion). This is implemented https://github.com/dotnet/corefx/pull/20623. The behavior is only changed on Unix for paths that start with file:/// (3 slashes = 2 slashes of the scheme + 1 slash of the unix path). With the current behavior it is not possible to create a Uri with a file:// argument to refer to a path that contains backslashes. When this behavior is changed, existing code that relied on the backslash-to-forwardslash conversion will break. An example of this can be seen in this PR (https://github.com/dotnet/corefx/pull/20564). Here the implementation was changed from `new Uri(""file://"" + path)` to `new Uri(path)`. Due to slashes no longer being converted, some tests needed changes. @karelz @stephentoub @sepidehMS " +20629 area-System.Collections Remove caching from ImmutableSortedSet.Builder.DebuggerProxy Fix #16007 +20630 area-Infrastructure Remove win10/nano RIght now the generators are failing. This fixes. Infra only. +20631 area-System.Runtime Using System.Runtime.Loader library for netstandard 1.3 I have a project that uses netstandard1.3 and I was wondering if there is support for System.Runtime.Loader on this framework and if not what is the alternative? +20632 area-Infrastructure Remove non-functional win10 and win-nano functionality +20633 area-Infrastructure Remove non-functional win10 and nano jobs +20636 area-Serialization Test DCJS_VerifyDictionaryFormat Failed in ReflectionOnly Mode. +20639 area-System.Threading Use monotonic clock for measuring time in sleep test Fixes #20173 +20640 area-System.Diagnostics Serializable attribute was removed on the System.Diagnostics.Activity Activity was serializable because the current Activity is stored in the logical call context on .NET 4.5. It was accidentally removed in https://github.com/dotnet/corefx/pull/19742 that causes SerizalizationException on .NET45 when Activity leaves AppDomain. It only affects .NET45 and we do not have automated testing for it in corefx. We have tested it manually and agreed on the risk that it may break (#17262 (comment)) Our partners (ApplicationInsights) that consume this API do not have scenarios that involve cross AppDomain calls when the serialization breaks. So it was not detected there either +20641 area-System.Collections Remove unnecessary reference in test project This reference was added in https://github.com/dotnet/corefx/pull/20629/files#diff-901fb3723ba45165116ce0805ad0d637 Test projects shouldn't add references as they are added automatically. cc: @ianhays +20642 area-System.Diagnostics Mark Activity and it's properties as Serializable Fixes #20640 Manually tested on .net 4.5 @danmosemsft @krwq @stephentoub +20643 area-System.Collections ObservableCollection: Avoid SimpleMonitor allocation I was a little sad to see the optimization from #12705 reverted in 6393248c7a986476f1e2d9dc4b1e5aff96459690 for serialization compat. This PR adds back the optimization, but in terms of `SimpleMonitor`, maintaining serialization compat with desktop. ~~I didn't included the `[TypeForwardedFrom]` attributes in this PR as they're being added in #20599~~ (Edit: added a commit that includes them). However, if I do temporarily add the attribute to a private copy of `ObservableCollection` (and its private `SimpleMonitor`) in a one-off console project, the collection serializes to the exact same bytes as desktop. cc: @stephentoub, @ViktorHofer +20647 area-System.Diagnostics Improve Activity.Id overflow handling if Parent Id has only root node Activity.Id is generated by adding suffix and delimiter to the 'parent id' that comes from the parent Activity or from the external process. So the Activity.Id may have multiple 'nodes' separated by delimiters. Maximum Id length is 1024 and when the limit is reached, last node(s) are trimmed to make space for random overflow suffix. In case there is single node 1024 bytes or longer, overflow if not handled correctly: instead of completely new Id, Activity generated overflow suffix only. This in general is invalid corner case but may happen because of the bug or some compatibility issue. Currently the only problem that overflow suffix is not long enough and does not guarantee global uniqueness of Activity.Id. This change has a fix for this issue and also updates comments/docs unrelated to this change. +20648 area-System.Net Correctly skip HttpListener tests that shouldn't be ran on uap/uapaot cc: @davidsh @stephentoub @danmosemsft With these changes, System.Net.HttpListener tests finally finish executing without crashing. +20650 area-System.Net UWP work for System.Net.NetworkInformation 1. Disabled some tests for UAP/ILC runs 2. Remove dependency on Win32 APIs System.Net.NetworkInformation now builds clean and has no test failures on uap & uapaot contributes to: #20014 +20651 area-Infrastructure Update buildtools This brings in the new version of buildtools that publishes the tool-runtime as a portable application instead of standalone. The source file changes are to remove some non unicode characters in files that were tripping Roslyn up. +20652 area-System.IO System.IO.FileSystem.Tests - four tests fail if %TMP% directory is a junction. System.IO.FileSystem.Tests -method System.IO.Tests.Directory_Move.MoveFile_TrailingSourceAltSlash_Windows -method System.IO.Tests.Directory_Move.MoveFile_TrailingSourceSlash -method System.IO.Tests.DirectoryInfo_MoveTo.MoveFile_TrailingSourceAltSlash_Windows -method System.IO.Tests.DirectoryInfo_MoveTo.MoveFile_TrailingSourceSlash These tests will fail on Windows if %TMP%/%TEMP% is set to a directory that's actually a junction to another partition. (The underlying Win32 MoveFile() api happily renames the file non-withstanding the trailing slash so the expected IOException is not generated.) +20653 area-System.Diagnostics Mark Activity and it's properties as Serializable Porting #20642 to release/2.0.0 Please do not merge until it's approved by the shiproom. Fixes #20640 +20654 area-System.Runtime Fix PlatformDetection.GetFrameworkVersion() Fixes PlatformDetection.GetFrameworkVersion() bug where it was not returning the right version. This way will map the shipped version ranges to the actual framework version correctly. If we ship a new version we would just need to add its range of version. This is needed to unblock the Serialization effort. cc: @danmosemsft @stephentoub @AlexGhiondea FYI: @ViktorHofer @krwq +20658 area-System.Data SqlDataAdapter needs FillAsync to fully support the async pattern. Core 2.0 preview 1 now supports SqlDataAdapter and DataTable which is great and the best way to fill a DataSet from a stored procedure is by using SqlDataAdapter.Fill(DataSet). This works perfectly when not used in an async environment. There is currently no way in Core or full .NET to do a FillAsync. Without a FillAsync which would take a single line of code now requires 20 lines of much more complicated code including using SqlDataReader.GetSchemaTable() which is currently broken preview 1. Based on other posts I believe it will be working in Preview 2 but have not seen a definitive on that. This is not something for 2.0 but is a clear deficiency in truly being able to support a fully async back-end and would be a much needed improvement moving forward. +20660 area-System.Net Not able to find Referer property in HttpWebRequest I have portable class library pointing .Net Standard libraries (versions below). HttpWebRequest in System.Net.Requests library does not have **Referer** property and many other members. And confusing thing is Github source does have all the members. Is this issue assembly packaged with Nuget ? Microsoft.NETCore.Portable.Compatibility: 1.0.2 NETStandard.Library: 1.6.1 System.Net.Http: 4.3.2 System.Net.Requests: 4.3.0 netstandard: 1.6 Below is HttpWebRequest metadata ![httpwebrequest_metadata](https://cloud.githubusercontent.com/assets/5023443/26749851/711f4ae4-47e2-11e7-90e0-dc93e5450d31.PNG) +20661 area-System.Runtime Port to fix fuzzing test Port https://github.com/dotnet/corefx/pull/20616 test only change to fix fuzzing test. Fixes #20611 Fixes #20578 +20665 area-Infrastructure Inconsistent behaviour of build.sh -? (help) command on OSX **./build.sh -? command displays help mixed with other actions - installs dotnet cli, restores build tools, initializes build tools** After installing prerequisites and cloning corefx repo based on my experience from Windows platform I have typed ./build.sh -? to get info on invocation parameters. Script performed synchronously intermingled tasks: 1. display partial help 2. (i) Installing dotnet cli..., (ii) Restoring BuildTools version 2.0.0-prerelease-01630-02... (iii) Initializing BuildTools... 3. display remaining help Complete output of the commad is in attached file. [osx_corefx_build.sh_-?.txt](https://github.com/dotnet/corefx/files/1049612/osx_corefx_build.sh_-.txt) Coreclr was successfully built for all configurations before attempting corefx build. System: ``` System Version: macOS 10.12.5 (16F73) Kernel Version: Darwin 16.6.0 Boot Volume: Macintosh HD Boot Mode: Normal Computer Name: MacBook Air Secure Virtual Memory: Enabled System Integrity Protection: Enabled Time since boot: 21:56 ``` +20666 area-Infrastructure Debug native build on OSX fails with link error - missing symbols "Tried to build latest corefx repo master branch commit fd7cc973ae66e1523fabd2c432a8333ddfecd8e6 on OSX following current [instructions](https://github.com/dotnet/corefx/blob/master/Documentation/building/unix-instructions.md). Release build was succesfull while Debug build failed with the following errors: ``` [100%] Linking CXX shared library System.Security.Cryptography.Native.OpenSsl.dylib Undefined symbols for architecture x86_64: ""_EC_KEY_set_public_key_affine_coordinates"", referenced from: _CryptoNative_EcKeyCreateByKeyParameters in pal_ecc_import_export.cpp.o _CryptoNative_EcKeyCreateByExplicitParameters in pal_ecc_import_export.cpp.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [System.Security.Cryptography.Native/System.Security.Cryptography.Native.OpenSsl.dylib] Error 1 make[1]: *** [System.Security.Cryptography.Native/CMakeFiles/System.Security.Cryptography.Native.OpenSsl.dir/all] Error 2 make: *** [all] Error 2 Failed to build corefx native components. Command execution failed with exit code 1. ``` System: ``` System Version: macOS 10.12.5 (16F73) Kernel Version: Darwin 16.6.0 Boot Volume: Macintosh HD Boot Mode: Normal Computer Name: MacBook Air Secure Virtual Memory: Enabled System Integrity Protection: Enabled Time since boot: 21:56 Xcode Version 8.3.2 (8E2002) ``` Corefx build was done after successful build of coreclr for all configurations. Complete build output and earlier cmake configuration error output are attached in file. [osx_corefx_debug_build_error.txt](https://github.com/dotnet/corefx/files/1049627/osx_corefx_debug_build_error.txt) " +20668 area-System.IO SerialPort: Use correct charset when unpacking port names This fixes a regression caused by changing the p/invoke character set of a `QueryDosDevice` call in #18928. The symptom prior to applying this is that the test suite does not detect any serial ports so doesn't run any tests. +20676 area-System.Net stream.Read(new byte[1], 0, 0) throw IOException for response of HttpClient.GetAsync with option HttpCompletionOption.ResponseHeadersRead "The following code works fine under full framework, but get exception under .net core 1.0 and 2.0. ```csharp class Program { static void Main(string[] args) { TestAsync().Wait(); } static async Task TestAsync() { using (var client = new HttpClient()) { var url = ""https://download.microsoft.com/download/B/9/F/B9F1AF57-C14A-4670-9973-CDF47209B5BF/dotnet-dev-win-x64.1.0.4.exe""; var response = await client.GetAsync(url, HttpCompletionOption.ResponseHeadersRead); using (var stream = await response.Content.ReadAsStreamAsync()) { var read = stream.Read(new byte[1], 0, 0); //IOException: Unable to read data from the transport connection. The connection was closed before all data could be read. Expected 106710008 bytes, read 0 bytes. } } } } ```" +20677 area-System.Linq Short-circuit ToArray method if source is an array +20678 area-System.Net Removing Dead Code from System.Net.Http and System.Net.HttpListener Not a whole lot to remove, mostly static strings from the SR class and a couple of methods in the System.Net.Http project. #17905 +20680 area-System.IO Improve code coverage of System.IO.FileSystem.AccessControl (35.7%) Pull request for the issue #15808 +20682 area-System.Net GetCookies_RemovesExpired_Cookies failed: cookie did not expire "Can we do better than ""sleep 2 seconds""? https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170605.02/workItem/System.Net.Primitives.UnitTests.Tests/analysis/xunit/System.Net.Primitives.Unit.Tests.CookieContainerTest~2FGetCookies_RemovesExpired_Cookies ``` Assert.Equal() Failure\nExpected: 0\nActual: 1 Stack Trace : at System.Net.Primitives.Unit.Tests.CookieContainerTest.d__44.MoveNext() in /root/corefx/src/System.Net.Primitives/tests/UnitTests/CookieContainerTest.cs:line 532 --- End of stack trace from previous location where exception was thrown --- ``` ```c# [Fact] public async Task GetCookies_RemovesExpired_Cookies() { Cookie c1 = new Cookie(""name1"", ""value"", """", "".url1.com""); Cookie c2 = new Cookie(""name2"", ""value"", """", "".url2.com""); c1.Expires = DateTime.Now.AddSeconds(1); // The cookie will expire in 1 second CookieContainer cc = new CookieContainer(); cc.Add(c1); cc.Add(c2); await Task.Delay(2000); // Sleep for 2 seconds to wait for the cookie to expire Assert.Equal(0, cc.GetCookies(new Uri(""http://url1.com"")).Count); // There should no longer be such a cookie <<<<<<<<<<<<, } ```" +20683 area-System.Linq Collection Other than collections are we using System.lynq with any other C# concepts? if yes other than collection where we are using System.lynq if no then System.lynq we can add part of System.Collections.Generic; Please correct me if I am Incorrect. +20684 area-System.Collections ref-return Dictionary and friends Hi all, I recently (well a few months ago) became pissed at seeing c# reach position 12 at this quite generic yet telling benchmark: https://benchmarksgame.alioth.debian.org/u64q/knucleotide.html This competition requires the use of library/language provided hash tables, which is why I can't submit my version: https://github.com/damageboy/shame Which runs at about half the time of the current top c# version, placing it somewhere near position 3-5 (I don't know since I can't submit it), I can only deduce it from the improvement observed on my machine... The gains are, for the most part, attributed to my hacked up version of [SuperDictionary.cs](https://github.com/damageboy/shame/blob/master/shame/SuperDictionary.cs) which is essentially the plain old c# dictionary.cs coerced into ref-return semantics. Now, admittedly, putting SuperDictionary.cs in the corefx repo to win a benhmark is probably the worst thing ever, as far as suggestions go, (although not as far as winning benchmarks go, that would totally own it... 🥇 ) but I would like to understand where c# / corefx is going forward with faster data structures that are built to make use of ref-return. Are there any plans to get these sort of fast data structures into netstandard / corefx / whatever, or does the official party line state the we all need to implement our half assed versions of exiting tested data structures riddled with our own bugs? +20685 area-System.Net Test failure: System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests/SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests/SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync` has failed. System.Net.Sockets.SocketException : Cannot assign requested address Stack Trace: at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName) in /root/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 5272 at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) in /root/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 758 at System.Net.Sockets.Socket.Bind(EndPoint localEP) in /root/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 702 at System.Net.Sockets.Tests.SocketTestServerAsync.Start(EndPoint localEndPoint) in /root/corefx/src/Common/tests/System/Net/Sockets/SocketTestServerAsync.cs:line 116 at System.Net.Sockets.Tests.SocketTestServer.SocketTestServerFactory(SocketImplementationType type, Int32 numConnections, Int32 receiveBufferSize, EndPoint localEndPoint, ProtocolType protocolType) in /root/corefx/src/Common/tests/System/Net/Sockets/SocketTestServer.cs:line 39 at System.Net.Sockets.Tests.SocketTestServer.SocketTestServerFactory(SocketImplementationType type, Int32 numConnections, Int32 receiveBufferSize, IPAddress address, Int32& port) in /root/corefx/src/Common/tests/System/Net/Sockets/SocketTestServer.cs:line 52 at System.Net.Sockets.Performance.Tests.SocketPerformanceTests.ClientServerTest(Int32 port, SocketImplementationType serverType, SocketImplementationType clientType, Int32 iterations, Int32 bufferSize, Int32 socketInstances, Int64 expectedMilliseconds) in /root/corefx/src/Common/tests/System/Net/Sockets/Performance/SocketPerformanceTests.cs:line 40 at System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests.SocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync() in /root/corefx/src/System.Net.Sockets/tests/PerformanceTests/SocketPerformanceAsyncTests.cs:line 51 Build : Master - 20170605.02 (Core Tests) Failing configurations: - Ubuntu.1604.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170605.02/workItem/System.Net.Sockets.Async.Performance.Tests/analysis/xunit/System.Net.Sockets.Performance.Tests.SocketPerformanceAsyncTests~2FSocketPerformance_MultipleSocketClientAsync_LocalHostServerAsync +20688 area-System.IO "Directory.EnumerateFileSystemEntries doesn't return any item when specify pattern like with ""[]""" " `Directory.EnumerateFileSystemEntries` doesn't return items when search pattern include ""[...]"" in it on Ubuntu (It works well on Windows, while I didn't test it on other platforms). For example, I have a file named ""[a]"" under current folder, following code doesn't output anything: ``` foreach (var fileItem in Directory.EnumerateFileSystemEntries(""."", ""[a]"", SearchOption.TopDirectoryOnly)) { Console.WriteLine(fileItem); } ``` Anyone could help to take a look at this?" +20689 area-Meta Malformed Uri in BitmapIcon causing crash in .NET Native Interop "Not sure, if this is the right place to report bugs in UWP runtime, but this one looks quite interesing. Orginally reported here on UserVoice: [BitmapIcon with UriSource=""about:blank"" causes app crash in edgehtml.dll](https://wpdev.uservoice.com/forums/110705-universal-windows-platform/suggestions/19455838-bitmapicon-with-urisource-about-blank-causes-app) If I use anywhere in my UWP app with UriSource=""about:blank"", this can happen when using databinding, **the app crashes when navigating to other page which contains WebView**. Tested on Windows 10 Creators Update, VS2017 15.2. 100% repro is available in ZIP below. Repro: https://1drv.ms/u/s!AlURSa6JiyiVo4lNj0cWfTva0_dN1A The bug looks like some kind of Out-of-Bounds read, can't tell really. SharedStubs.g.cs -> ComCallHelpers ![image](https://cloud.githubusercontent.com/assets/3041397/26774811/5ef6343a-49d2-11e7-9fe7-34213f05dc90.png)" +20690 area-Meta Reference Source hashes have changed, so links no longer work 1. Go to http://referencesource.microsoft.com/ 2. Scroll down to the `Link to a type/member` text and click the link corresponding to that text: http://referencesource.microsoft.com/mscorlib/a.html#1f55292c3174123d 3. Notice that you are not directed to the appropriate line of code as you would expect. Instead, you are shown a page containing the text `Don't use this page directly, pass #symbolId to get redirected.` This seems to have occurred because the file hashes (I assume) that are used for this functionality have changed. [This affects Visual Studio extensions like Ref12](https://github.com/SLaks/Ref12/issues/32#issuecomment-306161359). +20695 area-System.Diagnostics System.IO.FileLoadException - Exception from HRESULT: 0x80131040 "Folks, I added System.Diagnostics.Process in a netstandard 1.6 library and I get this exception: 'System.IO.FileLoadException: 'Could not load file or assembly 'System.Diagnostics.Process, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)' Before add, lib worked fine. I have added this in App.config (I'm into a WPF 4.7 app) and I get same exception: Other test I did: 1. Upgrade System.Diagnostics.Process to 4.3.0 and same app.config 2. Downgrade to netstandard 1.5 both v4.3.0 and 4.1.0 Every step I run nuget locals all -clear and deleted bin and obj folders (all in solution). Desperated I removed System.Diagnostics.Process and tested with System.Console and same results with same tests... WPF has netstandard 1.6 lib. Tested too netstandard 1.6.1 and same results with same tests ... Finally I have tested this class library with a new console app (FW 4.7) and same result... I forgot to tell you, class library and WPF app and console test app are compiled as x64. [https://drive.google.com/open?id=0B3M-4-kZkv4FSktIbUluVGV1RGs](source with libs) Please can you help me? " +20697 area-Serialization Manually build mscorlib shim to allow for internal type forwards & Adding TypeForwardFrom to serialiazable types @ViktorHofer here is the change needed to build mscorlib facade manually. You will need to give mscorlib InternalsVisibleTo in System.Private.CoreLib to type-forward the other types. cc @jkotas @danmosemsft @ericstj +20699 area-System.Net Fix WinHttpResponseStream when reading 0 bytes Fixes #20676 +20702 area-System.Net Disable more HttpListener tests on UAP/UAPAOT test runs HttpListener is not ready for UAP/UAPAOT. It is currently trying to use the .NET Core implementation which uses http.sys. Instead, the plan is to use the maanaged implementation (currently only used on *Nix). Contributes to #17462 +20704 area-System.Net Disable some WebClient tests for UAPAOT (ILC) test runs WebClient tests run fine for UAP test runs. But some of them are crashing on UAPAOT test runs. Not sure why yet. Disabling them to get a clean run for now. Contributes to #20141 +20705 area-Infrastructure Update CoreClr, CoreFx to preview2-25402-03, preview2-25405-01, respectively (release/2.0.0) +20706 area-System.Drawing Cleanup items for System.Drawing.Common "There are still some things that should be cleaned up and reorganized in the Windows version of System.Drawing.Common. Here is the list that I have developed while porting the code from the internal .NET Framework codebase: * [x] Clean up the formatting of the XML doc comments. They are using some defunct syntax that doesn't work or make sense anymore. @mellinoe https://github.com/dotnet/corefx/pull/21589 * [x] Normalize comment style (lots of weird ""block-style"" header comments, weird comment spacing, etc.) @mellinoe https://github.com/dotnet/corefx/pull/21589 * [x] ~~Reorganize interop code to match corefx guidelines.~~ _Not really feasible given the manual function loading that is necessary._ * [ ] Remove unnecessary CodeAnalysis attributes. * [x] Remove reference to System.Security.Permissions. https://github.com/dotnet/corefx/pull/22232 * [x] Remove System.Configuration.ConfigurationManager dependency. https://github.com/dotnet/corefx/issues/22233 * [x] Consider moving code into Windows-specific folders or filenames in preparation of x-plat version. * [x] Make sure that file names and file structure are consistent with the namespace and type names contained in each file. #20987 * [ ] Enable or remove `FINALIZATION_WATCH` code blocks. * [x] Enable or remove `FEATURE_SYSTEM_EVENTS` code blocks. Tracked by https://github.com/dotnet/corefx/issues/21319 * [ ] Use string resources in Unix version. Tracked by https://github.com/dotnet/corefx/issues/23749 * [ ] Do a dead-code pass after cleanup and reorganization. (Use ILLink to help) -- opened https://github.com/dotnet/corefx/issues/21296" +20708 area-System.Data Add query notification support to SqlClient Addresses https://github.com/dotnet/corefx/issues/8188 Note that SqlCommand.NotificationAutoEnlist has been removed in this PR, since the underlying functionality for it does not exist. ASP.NET sets the auto enlist SqlDependency using CallContext.SetData(), but the CallContext.SetData/GetData methods are not available in .NET Core. The NotificationAutoEnlist property only checks for data set by ASP.NET, so the property has been removed to show that it's explicitly unsupported. +20709 area-System.Diagnostics S.D.Process: throw PNSE on HWND depending funcs on UAP Fix https://github.com/dotnet/corefx/issues/20619 +20710 area-Infrastructure Update buildtools, hook in new Dumpling target * Update buildtools. This has a bunch of new Dumpling features and fixes. * Hook in a new Dumpling target in dir.traversal.targets which causes dumpling.py to be pre-installed before we do our parallel test runs. +20711 area-System.Drawing Add Tests for System.Drawing.Common "This issue tracks porting some set of tests from mono's test suite, covering the portions of System.Drawing that we support on .NET Core. Mono's test cases are in this folder: https://github.com/mono/mono/tree/master/mcs/class/System.Drawing/Test We most likely want to convert the most useful tests from all of the sections here, with the exception of System.Drawing.Design, which we aren't going to support right now on .NET Core (it is mainly related to designer / WinForms support). Mono's tests use NUnit, so we will need to convert them to Xunit when copying them. Additionally, I've identified that there will need to be some functional changes made to the tests themselves, as they do not pass against the .NET Framework implementation. We consider the .NET Framework implementation to be the compatibility baseline, so we should change the tests to accomodate it, rather than the other way around. The test failures seemed mainly related to very small, subtle differences in things like floating-point precision, color values, offsets, etc. We should do the following when we have both Windows and Unix implementations up and running: * Ensure that all tests have enough ""leniency"" to accomodate floating-point differences (and other minor inconsistencies) where unavoidable. * Ensure that all minor inconsistencies are acceptable or otherwise very difficult / problematic to fix. * Ensure that all minor inconsistencies are listed somewhere, so that we can mention it both in the tests, and in the user documentation. @hughbe @qmfrederik @marek-safar ----------------------------------------------------- # Current Status Code coverage: _Note that there is a large amount of internal and debug-only code which distorts these numbers. When the coverage is generally high, we can clean out a lot of dead code and then get more accurate data._ Date | Branch Coverage | Line Coverage --------|---------|----------- **6/26/2017** | **33%** | **25%** **7/11/2017** | **49%** | **54%** **7/17/2017** | **55%** | **60%** **8/2/2017** | **58%** | **66%** **8/25/2017** | **62%** | **71%** **9/21/2017** | **64.6%** | **75.3%** Namespaces and coverage, as of 9/21/2017: * System.Drawing: 76.3% * System.Drawing.Drawing2D: 93.8% * System.Drawing.Imaging: 86.1% * System.Drawing.Printing: 62.8% * System.Drawing.Text: 96%" +20712 area-System.Drawing Add Unix support for System.Drawing.Common The version of System.Drawing.Common ported from the .NET Framework cannot be used outside of Windows. In order to support the library elsewhere, we are going to port the implementation from mono, which is built around libgdiplus, another mono project. We should do the following: * Move the code for System.Drawing into corefx, perhaps initially separated from the Windows files. Mono's code is here: https://github.com/mono/mono/tree/master/mcs/class/System.Drawing * Update build configurations in corefx to create a second build for System.Drawing.Common for Unix platforms. It should reference the code files above. * In the mono repository: delete the original source files, update the corefx submodule link, and redirect references into the submodule for all of the deleted files. * [Follow-Up] Try to rationalize the Windows and Unix codebases. There is bound to be a moderately-sized chunk of code that can be shared between the two configurations. Enums and simple structures should be identical between the two. @qmfrederik Do you have any pointers for this? I know you have worked extensively with mono's System.Drawing recently. +20713 area-System.Net Disable some Ping tests for UAP test runs System.Net.Ping now runs clean for UAP test runs. I'm not sure if #20528 has been fixed or not. I deleted all ActiveIssue labels and found that all tests passed on uapaot mode. https://github.com/dotnet/corefx/issues/20528#issuecomment-306068673 Contributes to: #19583 +20714 area-System.Numerics Expose `Fast*` versions of several math functions that have hardware intrinsic support ### Rationale There are several mathematical functions for which hardware intrinsics are available, but which may not have a consistent implementation from between various hardware architectures. Support for these should be provided in the form of `Fast*` methods exposed on the existing `System.Math` and `System.MathF` types. ### Proposed API ```C# public static class Math { public static double FastClamp(double, double, double); // No intrinsic, but the current implementation requires min <= max, where-as Vector follows what HLSL does public static double FastMax(double, double); // maxsd public static double FastMin(double, double); // minsd public static double FastReciprocal(double); // No intrinsic on x86/x64, provided for parity with MathF public static double FastReciprocalSqrt(double); // No intrinsic on x86/x64, provided for parity with MathF } public static class MathF { public static float Clamp(float, float, float); // Provided for parity with the existing Math.Clamp(float, float, float) function public static float FastClamp(float, float, float); // No intrinsic, but the current implementation requires min <= max, where-as Vector follows what HLSL does public static float FastMax(float, float); // maxss public static float FastMin(float, float); // minss public static float FastReciprocal(float); // rcpss public static float FastReciprocalSqrt(float); // rsqrtss } ``` ### Additional Details This will require several changes in the CoreCLR as well to support the new APIs via intrinsics +20715 area-System.Text Reconcile CoreRT and CoreCLR globalization code ``` -method System.Text.Encodings.Tests.EncodingMiscTests.DefaultEncodingBOMTest -method System.Text.Encodings.Tests.EncodingMiscTests.NormalizationTest -method System.Text.Tests.UnicodeEncodingTests.WebName -method System.Text.Tests.UTF32EncodingTests.WebName -method System.Text.Tests.UnicodeEncodingDecode.Decode_InvalidBytes (amd64 only) ``` On quick glance, the Text.Encoding code in CoreRT needs to be synced with that in CoreCLR. +20716 area-System.IO Fill out FileSystemInfo state when enumerating On Windows FileSystemInfos are filled in with state as we have all of the state from FindFirstFileEx. Fixes #20456 +20717 area-System.Linq Disabled test on System.Linq.Expressions.Tests on ILC (amd64-x64) -method System.Linq.Expressions.Tests.Compiler_Tests.UnaryPlus which is annoyingly located not in CompilerTests.cs but here... https://github.com/dotnet/corefx/blob/master/src/System.Linq.Expressions/tests/SequenceTests/SequenceTests.cs#L844 +20718 area-System.Data Disabled IntegratedAuthConnectionTest in System.Data.SqlClient.Tests on ILC -method System.Data.SqlClient.Tests.SqlConnectionBasicTests.IntegratedAuthConnectionTest Message from test ouput: System.Data.SqlClient.SqlException : Failed to accept security SSPI context\r\nFailed to accept security context +20722 area-System.Memory System.Memory tests getting killed I'm seeing this periodically breaking our full runs. This guy is getting killed after only 10 seconds so I assume it's not timed out. @MattGal thoughts? Unfortunately whatever is doing this doesn't lead to a dump. @shiftylogic @ahsonkhan ``` 2017-06-05 15:32:50,166: INFO: proc(54): run_and_log_output: Output: Copyright (C) 2014 Outercurve Foundation. 2017-06-05 15:32:50,167: INFO: proc(54): run_and_log_output: Output: 2017-06-05 15:32:50,240: INFO: proc(54): run_and_log_output: Output: Discovering: System.Memory.Tests 2017-06-05 15:32:50,447: INFO: proc(54): run_and_log_output: Output: Discovered: System.Memory.Tests 2017-06-05 15:32:50,606: INFO: proc(54): run_and_log_output: Output: Starting: System.Memory.Tests 2017-06-05 15:33:01,766: INFO: proc(54): run_and_log_output: Output: /home/helixbot/dotnetbuild/work/f156f7a3-3468-4286-8536-e7b23f699283/Work/2433b65e-0236-4884-855d-3ffd16f67727/Unzip/RunTests.sh: line 89: 2205 Killed $RUNTIME_PATH/dotnet xunit.console.netcore.exe System.Memory.Tests.dll -xml testResults.xml -notrait category=nonnetcoreapptests -notrait category=nonlinuxtests -notrait category=failing 2017-06-05 15:33:01,777: INFO: proc(54): run_and_log_output: Output: command exited with ExitCode: 137 2017-06-05 15:33:01,777: INFO: proc(54): run_and_log_output: Output: command failed, trying to collect dumps 2017-06-05 15:33:01,826: INFO: proc(54): run_and_log_output: Output: corefile: 2017-06-05 15:33:01,826: INFO: proc(54): run_and_log_output: Output: no coredump file was found 2017-06-05 15:33:01,827: INFO: proc(54): run_and_log_output: Output: ~/dotnetbuild/work/f156f7a3-3468-4286-8536-e7b23f699283/Work/2433b65e-0236-4884-855d-3ffd16f67727/Unzip 2017-06-05 15:33:01,828: INFO: proc(54): run_and_log_output: Output: Finished running tests. End time=15:33:01. Return value was 137 2017-06-05 15:33:01,834: INFO: proc(58): run_and_log_output: Exit Code: 137 2017-06-05 15:33:01,854: ERROR: scriptrunner(82): _main: Error: No exception thrown, but XUnit results not created 2017-06-05 15:33:01,856: ERROR: helix_test_execution(83): report_error: Error running xunit None ``` https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170605.04/workItem/System.Memory.Tests/wilogs +20723 area-System.Net "Test: System.Net.NameResolution.PalTests.NameResolutionPalTests/TryGetAddrInfo_HostName failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.NameResolution.PalTests.NameResolutionPalTests/TryGetAddrInfo_HostName` has failed. Assert.Equal() Failure Expected: Success Actual: HostNotFound Stack Trace: at System.Net.NameResolution.PalTests.NameResolutionPalTests.TryGetAddrInfo_HostName() in /root/corefx/src/System.Net.NameResolution/tests/PalTests/NameResolutionPalTests.cs:line 128 Build : Master - 20170606.01 (Core Tests) Failing configurations: - suse.422.amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170606.01/workItem/System.Net.NameResolution.Pal.Tests/analysis/xunit/System.Net.NameResolution.PalTests.NameResolutionPalTests~2FTryGetAddrInfo_HostName +20725 area-System.Collections Why is KeyedCollection abstract? Why is [KeyedCollection](https://github.com/dotnet/corefx/blob/master/src/System.ObjectModel/src/System/Collections/ObjectModel/KeyedCollection.cs) abstract, how about having it non-abstract with its constructor accepting a `GetKeyFromItem` delegate? So to allow creating `KeyedCollection`s of any type on the flow without having to create classes for each. +20726 area-System.Globalization "Tests under: System.Globalization.Tests failed with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.CultureInfoDateTimeFormat/TestSettingThreadCultures` has failed. System.IO.IOException : RemoteInvoke cannot open the remote service. Open Service Status: AppServiceUnavailable Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, RemoteInvokeOptions options) at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(Func`1 method, RemoteInvokeOptions options) at System.Globalization.Tests.CultureInfoDateTimeFormat.TestSettingThreadCultures() Build : Master - 20170606.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170606.01/workItem/System.Globalization.Tests/analysis/xunit/System.Globalization.Tests.CultureInfoDateTimeFormat~2FTestSettingThreadCultures +20727 area-System.IO "Tests under: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateNew failed with ""System.UnauthorizedAccessException""" "Opened on behalf of @Jiayili1 The test `System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateNew/ValidArgumentCombinations(mapName: \""06a87eadf82443ba97bcda3c60738f20\"", capacity: 10000, access: ReadExecute, options: DelayA...` has failed. System.UnauthorizedAccessException : Access to the path is denied. Stack Trace: at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateCore(FileStream fileStream, String mapName, HandleInheritability inheritability, MemoryMappedFileAccess access, MemoryMappedFileOptions options, Int64 capacity) at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateNew(String mapName, Int64 capacity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, HandleInheritability inheritability) at System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateNew.ValidArgumentCombinations(String mapName, Int64 capacity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, HandleInheritability inheritability) Build : Master - 20170606.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170606.01/workItem/System.IO.MemoryMappedFiles.Tests/analysis/xunit/System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateNew~2FValidArgumentCombinations(mapName:%20%5C%2206a87eadf82443ba97bcda3c60738f20%5C%22,%20capacity:%2010000,%20access:%20ReadExecute,%20options:%20DelayA.." +20728 area-System.Net Test failure: System.Net.Tests.HttpListenerPrefixCollectionTests/Add_AlreadyStarted_ReturnsExpected Opened on behalf of @Jiayili1 The test `System.Net.Tests.HttpListenerPrefixCollectionTests/Add_AlreadyStarted_ReturnsExpected` has failed. System.Exception : Could not reserve a port for HttpListener\r ---- System.Net.HttpListenerException : The handle is invalid Stack Trace: at System.Net.Tests.HttpListenerFactory.GetListener() at System.Net.Tests.HttpListenerPrefixCollectionTests.Add_AlreadyStarted_ReturnsExpected() ----- Inner Stack Trace ----- at System.Net.HttpListener.SetupV2Config() at System.Net.HttpListener.Start() at System.Net.Tests.HttpListenerFactory..ctor(String hostname, String path) Build : Master - 20170606.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170606.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpListenerPrefixCollectionTests~2FAdd_AlreadyStarted_ReturnsExpected +20731 area-Infrastructure building corefx on linux platform with unknown rid "When trying to build corefx on a Linux host with an unsupported RID, the external/{ilasm,runtime}.depproj fail to compile because they are using the host rid. These projects are compiled as: * /p:TargetGroup=netstandard /p:ConfigurationGroup=Debug /p:ArchGroup=x64 /p:OSGroup=AnyOS /p:TargetFramework=netstandard2.0 * /p:TargetGroup=netcoreapp /p:ConfigurationGroup=Debug /p:ArchGroup=x64 /p:OSGroup=Unix /p:TargetFramework=netcoreapp2.0 The following change to external/dir.props makes them compile fine: ```diff diff --git a/external/dir.props b/external/dir.props index eb7e7b6..4ec6ee5 100644 --- a/external/dir.props +++ b/external/dir.props @@ -5,6 +5,8 @@ win osx linux + linux + linux $(RuntimeOS)-$(ArchGroup) true ``` I'm not sure what the proper change is to make the corefx repo compile on unsupported linux flavors (using portable linux)." +20732 area-System.Threading Support await'ing a Task without throwing Currently there isn't a great way to await a Task without throwing (if the task may have faulted or been canceled). You can simply eat all exceptions: ```C# try { await task; } catch { } ``` but that incurs the cost of the throw and also triggers first-chance exception handling. You can use a continuation: ```C# await task.ContinueWith(delegate { }, CancellationToken.None, TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default); ``` but that incurs the cost of creating and running an extra task. The best way in terms of run-time overhead is to use a custom awaiter that has a nop GetResult: ```C# internal struct NoThrowAwaiter : ICriticalNotifyCompletion { private readonly Task _task; public NoThrowAwaiter(Task task) { _task = task; } public NoThrowAwaiter GetAwaiter() => this; public bool IsCompleted => _task.IsCompleted; public void GetResult() { } public void OnCompleted(Action continuation) => _task.GetAwaiter().OnCompleted(continuation); public void UnsafeOnCompleted(Action continuation) => OnCompleted(continuation); } ... await new NoThrowAwaiter(task); ``` but that's obviously more code than is desirable. It'd be nice if functionality similar to that last example was built-in. **Proposal** Add a new overload of `ConfigureAwait`, to both `Task` and `Task`. Whereas the current overload accepts a `bool`, the new overload would accept a new `ConfigureAwaitBehavior` enum: ```C# namespace System.Threading.Tasks { [Flags] public enum ConfigureAwaitBehavior { NoCapturedContext = 0x1, // equivalent to ConfigureAwait(false) NoThrow = 0x2, // when set, no exceptions will be thrown for Faulted/Canceled Asynchronous = 0x4, // force the continuation to be asynchronous ... // other options we might want in the future } } ``` Then with `ConfigureAwait` overloads: ```C# namespace System.Threading.Tasks { public class Task { ... public ConfiguredTaskAwaitable ConfigureAwait(ConfigureAwaitBehavior behavior); } public class Task : Task { ... public ConfiguredTaskAwaitable ConfigureAwait(ConfigureAwaitBehavior behavior); } } ``` code that wants to await without throwing can write: ```C# await task.ConfigureAwait(ConfigureAwaitBehavior.NoThrow); ``` or that wants to have the equivalent of `ConfigureAwait(false)` and also not throw: ```C# await task.ConfigureAwait(ConfigureAwaitBehavior.NoCapturedContext | ConfigureAwaitBehavior.NoThrow); ``` etc. From an implementation perspective, this will mean adding a small amount of logic to ConfiguredTaskAwaiter, so there's a small chance it could have a negative imp **Alternatives** An alternative would be to add a dedicated API like `NoThrow` to `Task`, either as an instance or as an extension method, e.g. ```C# await task.NoThrow(); ``` That however doesn't compose well with wanting to use `ConfigureAwait(false)`, and we'd likely end up needing to add a full matrix of options and supporting awaitable/awaiter types to enable that. Another option would be to add methods like NoThrow to ConfiguredTaskAwaitable, so you could write: ```C# await task.ConfigureAwait(true).NoThrow(); ``` etc. And of course an alternative is to continue doing nothing and developers that need this can write their own awaiter like I did earlier. +20733 area-Infrastructure Unit test results presentation is unconventional "![image](https://cloud.githubusercontent.com/assets/1306085/26832554/c7c2878e-4ac7-11e7-89f6-f327ccf8636d.png) The above is a picture of some test results on one of the various CI flavours that's currently in use on CoreFx. I will try to remain polite, but this is completely nuts. * There is a 'fire' emoji (and ""fire"" is what the tool tip says) - does this mean it ran and it failed - i.e. ""Failed""? * There is an empty square - no tooltip - who knows - were these skipped? * And there is an orange checkmark (""skip"" says the tooltip) - does this mean ""Skipped""? All I can say is that I am filled with admiration for the vast creativity and freedom of thought which enables someone to come up with a completely new way to present a passed/failed/skipped table without being shackled by the tedious red/green cross/tick conventions that everyone else uses. But sadly I don't actually find it helpful in understanding the results. Is ""Fire"" some kind of MS argot for ""Failed"", or was it some kind of coded request to an HR department somewhere?" +20734 area-System.Net Httpclient PostAsync with null HttpContent differs on Windows/Linux "``` var client = new HttpClient(); var result = client.PostAsync(""http://localhost"", null).Result.Content.ReadAsStringAsync().Result; Console.WriteLine(""Content-type:"" + result); ``` Only thing server-side does is echo back the ""content-type"" header. **When runned on windows 10, this is what I get:** `Content-type:` **When runned on Ubuntu, I instead get this:** `Content-type:application/x-www-form-urlencoded ` Is this the intended behaviour?" +20735 area-System.Memory Disable large memory Span::Clear test on Linux +20736 area-System.Memory Disable large memory Span::Clear test on Linux (for 2.0) Fixes #20722 +20737 area-Infrastructure [Contribution blocker] Huge (large - Mac) number of connections are opened and timeout for managed build deps I have built corefx on both Windows and Mac over last couple of days with one issue which resulted in multiple errors during the managed part of the build. When managed build starts build restores several packages by connecting with Azure blobs. During several builds I have noticed that build failed with error indicating that some of the managed packages were not downloaded due to TimeoutExceptions raised after 60000 ms with no activity on server side. After investigating problem I have found that on Windows laptop I got more than 200 tcp connections open from build to azure blob - with many timing out, and on Mac I have found roughly from 20 to 25 max connections open with some timing out. Due to the fact that I have been traveling lately and have to use LTE connections to get on internet this may be caused by lower quality of network - however this problem happens i.e. in Warsaw, Poland as well, which has very good LTE signal, coverage and transfer rates. My workaround is quite simple and unfortunately tedious - I restart build multiple times until all downloads succeed what eventually happens. My suggestion would be to limit numebr of concurrent opened connections to server (all are going to the same IP) and at the same time introduce robust, exponential retrial algorithm. +20738 area-System.Net Remove default libcurl Content-Type header for empty POST requests Fixes #20734 +20739 area-System.Xml Several Xml types use Ref Emit on uapaot which is not supported, which will cause a runtime exception There are several types in System.Private.Xml today that are using types from System.Reflection.Emit which do not exist in UWP. From a quick scan, these types seem to be: ``` System.Xml.Xsl.IlGen.XmlILModule System.Xml.Xsl.XmlIlGenerator ``` Once those two classes are correctly fixed to not use Ref Emit(either by throwing PNS or by different implementation) then we should also fix two things in order to better catch things like this: - Modify the ref of ref emit to not have any types in uapaot(or better yet, don't build it at all). The fact that we are building the contract with the types, is what caused this issue since other implementaitions could reference it. And since we have a baseline today in the implementation project of ref emit for uapaot, the build succeeds. - System.Private.Xml shouldn't have configurations for both uap, and uapaot, and instead just have the one for uap which SHOULD NOT use ref emit. Today, we have the uap config which does use ref emit and expose some other types like CodeGenerator, XmlSerializationILGen, and XmlSerializationReaderILGen that use ref emit as well, and the uapaot config that only has XmlILModule and XmlILGenerator which uses it incorrectly. cc: @sepidehMS @krwq @danmosemsft +20740 area-System.Drawing Finalize packaging for System.Drawing.Common When we have implemented all planned versions of System.Drawing.Common, we should finalize the packaging for the library. This includes making sure the correct System.Drawing shims are produced, packaged, and are correct. +20741 area-System.Net How to Configure Network Tracing on Linux? I want to enable network tracing similar to the tracing described here (https://msdn.microsoft.com/en-us/library/ty48b824.aspx). Is there anything equivalent on linux? +20743 area-System.Net Specify explicit SetLastError semantics for Sockets related delegates The MSDN default for the 'UnmanagedFunctionPointer' attribute regarding SetLastError is false. However, due to historical issues, the .NET Framework and .NET Core used a default of true. This is why these attributes have never decorated these Sockets APIs in the source code. See: https://github.com/dotnet/coreclr/blob/fd3668c7c9b9f5d64b5e6d1edf8c55a307cd3c2d/src/vm/dllimport.cpp#L3642 While .NET Core continues to have a 'true' default, .NET Native started failing with these Sockets APIs. The default is currently undefined in .NET Native and there is pending feature work to implemented the 'UnmanagedFunctionPointer' attribute. This PR alone will not fix the .NET Native failures for these Sockets APIs. But pending feature work in .NET Native will make the attributes functional. +20744 area-System.Diagnostics System.Diagnostic.Tracing tests need reflection metadata enabled for uapaot These tests are failing with m$BlockedFromReflection . Need proper rd.xml or workaround Test_Write_Fuzzy() Test_Write_T_EventListener() Test_Write_T_In_Manifest_Serialization() Test_Write_T_EventListener_UseEvents() +20745 area-System.Diagnostics Fixing System.Diagnostics.Tracing tests on uap-aot All tests expect 4 are fixed , the four fails because of reflectionblock.These need to be looked at by tracing folks. @brianrob @vancem @danmosemsft @joshfree +20746 area-System.Net BeginSendToV6IPEndPointToV6Host_Success timed out on OSX https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release_prtest/4260/consoleFull#18185173682d31e50d-1517-49fc-92b3-2ca637122019 ``` System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.BeginSendToV6IPEndPointToV6Host_Success [FAIL] 10:12:04 System.TimeoutException : The operation has timed out. 10:12:04 Stack Trace: 10:12:04 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(1252,0): at System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.DualModeBeginSendTo_EndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) 10:12:09 System.Net.Sockets.Tests.DualModeConnectionlessSendTo.SendToV4IPEndPointToV4Host_Success [FAIL] 10:12:09 System.TimeoutException : The operation has timed out. 10:12:09 Stack Trace: 10:12:09 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(1151,0): at System.Net.Sockets.Tests.DualModeConnectionlessSendTo.DualModeSendTo_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) 10:12:15 System.Net.Sockets.Tests.DualModeConnectionlessSendTo.SendToV6IPEndPointToDualHost_Success [FAIL] 10:12:15 System.TimeoutException : The operation has timed out. 10:12:15 Stack Trace: 10:12:15 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(1151,0): at System.Net.Sockets.Tests.DualModeConnectionlessSendTo.DualModeSendTo_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) 10:12:20 System.Net.Sockets.Tests.DualModeConnectionlessSendTo.SendToV4IPEndPointToDualHost_Success [FAIL] 10:12:20 System.TimeoutException : The operation has timed out. 10:12:20 Stack Trace: 10:12:20 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(1151,0): at System.Net.Sockets.Tests.DualModeConnectionlessSendTo.DualModeSendTo_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) 10:12:25 System.Net.Sockets.Tests.DualModeConnectionlessSendTo.SendToV6IPEndPointToV6Host_Success [FAIL] 10:12:25 System.TimeoutException : The operation has timed out. 10:12:25 Stack Trace: 10:12:25 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(1151,0): at System.Net.Sockets.Tests.DualModeConnectionlessSendTo.DualModeSendTo_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) 11:42:29 ``` +20747 area-System.Net System.Net.Sockets tests hung "https://ci.dot.net/job/dotnet_corefx/job/release_2.0.0/job/centos7.1_release_prtest/228/consoleText ``` MSBUILD : error MSB4166: Child node ""2"" exited prematurely. Shutting down. Diagnostic information may be found in files in the temporary files directory named MSBuild_*.failure.txt. /mnt/resource/j/workspace/dotnet_corefx/release_2.0.0/centos7.1_release_prtest/Tools/tests.targets(345,5): warning MSB5021: ""sh"" and its child processes are being terminated in order to cancel the build. [/mnt/resource/j/workspace/dotnet_corefx/release_2.0.0/centos7.1_release_prtest/src/System.Net.Sockets/tests/FunctionalTests/System.Net.Sockets.Tests.csproj] ``` No other information available. @mellinoe @MattGal in this case we definitely terminated the test, and it's not possibel to investigate unless we enable dumpling to grab dumps from the relevant processes before we kill them." +20748 area-System.Data Timestamp missing from SqlClientDiagnosticListenerExtensions.WriteCommandBefore telemetry publisher The SqlBeforeExecuteCommand telemetry event is missing the timestamp making it more difficult to compute the duration of executed commands. cc @saurabh500 +20749 area-System.Globalization Disabled tests in System.Globalization.Tests on ILC. ``` -method System.Globalization.Tests.CultureInfoDateTimeFormat.TestSettingThreadCultures -method System.Globalization.Tests.CurrentCultureTests.CurrentCulture -method System.Globalization.Tests.CurrentCultureTests.CurrentUICulture -method System.Globalization.Tests.NumberFormatInfoCurrentInfo.CurrentInfo_CustomCulture -method System.Globalization.Tests.NumberFormatInfoCurrentInfo.CurrentInfo_Subclass_OverridesGetFormat -method System.Globalization.Tests.NumberFormatInfoCurrentInfo.CurrentInfo_Subclass_OverridesNumberFormat ``` All failing with the message: System.InvalidOperationException : The process has no package identity. (Exception from HRESULT: 0x80073D54) Probably an artifact of running the tests outside an app-container. Will leave to area owner to decide how best to conditionalize the tests (if appropriate.) +20751 area-System.IO MemoryMappedFile.CreateViewStream(int, int, MemoryMappedFileAccess.ReadWriteExecute) throws `IOException` in UapAot If we run the following code in UapAot: ```cs const int Capacity = 4096; using (MemoryMappedFile mmf = MemoryMappedFile.CreateNew(null, Capacity, MemoryMappedFileAccess.Read)) { var stream = mmf.CreateViewStream(0, Capacity, MemoryMappedFileAccess.ReadWriteExecute); } ``` `mmf.CreateViewStream(0, Capacity, MemoryMappedFileAccess.ReadWriteExecute);` will throw the following exception: ``` Actual: typeof(System.IO.IOException): The parameter is incorrect Stack Trace: D:\repos\corefxCopy\corefx\src\System.IO.MemoryMappedFiles\src\System\IO\MemoryMappedFiles\MemoryMappedView.Windows.cs(46,0): at System.IO.MemoryMappedFiles.MemoryMappedView.CreateView($SafeMemoryMappedFileHandle memMappedFil eHandle, $MemoryMappedFileAccess access, Int64 offset, Int64 size) D:\repos\corefxCopy\corefx\src\System.IO.MemoryMappedFiles\src\System\IO\MemoryMappedFiles\MemoryMappedFile.cs(464,0): at System.IO.MemoryMappedFiles.MemoryMappedFile.CreateViewAccessor(Int64 offset, Int64 size, $MemoryMapped FileAccess access) ``` Currently we are hitting this in this test: https://github.com/dotnet/corefx/blob/master/src/System.IO.MemoryMappedFiles/tests/MemoryMappedViewStream.Tests.cs#L101-L108 This is supposed to throw an `UnauthorizedAccessException` but only when access is set to `MemoryMappedFileAccess.ReadWriteExecute` we get an `IOException`. I debugged this a little bit and it looks like this [call](https://github.com/dotnet/corefx/blob/master/src/System.IO.MemoryMappedFiles/src/System/IO/MemoryMappedFiles/MemoryMappedView.Windows.cs#L41-L42) is getting an invalid `SafeMemoryMappedViewHandle` and the `Win32ErrorCode` is 87. cc: @ViktorHofer @ianhays @jkotas +20752 area-System.IO Fix System.IO.MemoryMappedFile.Tests failures This PR disables one test related to the Process.Start issue. I also temporary worked around some tests to skip cases when `MemoryMappedFileAccess` is `ReadWriteExecute` as they are hitting: #20751 This gets System.IO.MemoryMappedFileAccess.Tests to 0 failures. cc: @ianhays @danmosemsft @JeremyKuhne +20753 area-System.IO System.IO test failure since the right exception is not thrown in uap-aot These tests are expecting ArgumentNull , but never gets it. Should be a simple fix. TestNullStream_CopyToAsyncValidation() +20755 area-System.IO File move operation with semantics of Unix rename I am looking for a file move operation with the following characteristics: - Overwrites the destination file if it already exists - Creates the destination file if it does not exist - Replaces the destination file atomically - Never falls back to copying (I want an error if the destination is on a different volume) On Unix, [rename(2)](http://man7.org/linux/man-pages/man2/rename.2.html) meets these, but the BCL doesn't have a direct equivalent. ## Issues with BCL alternatives `File.Replace` * Fails if the destination file does not exist * Unclear if underlying `ReplaceFile` on Windows actually has the right guarantees (*) `File.Move` * Fails if the destination file exists * Can fall back to copying I can almost work around the existence issues as follows: ``` C# if (File.Exists(destination)) { File.Replace(source, destination, null) } else { File.Move(source, destination) } ``` But that's cumbersome and opens the door to classic race between existence check and I/O operation. ## (*) Concern about Win32 ReplaceFile [This page](https://msdn.microsoft.com/en-us/library/windows/desktop/hh802690(v=vs.85).aspx#applications_updating_a_single_file_with_document-like_data) gives me the impression that ReplaceFile is what I want, but then the [API documentation](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365512(v=vs.85).aspx) says the following can happen, which I do not want: >ERROR_UNABLE_TO_MOVE_REPLACEMENT > >The replacement file could not be renamed. If lpBackupFileName was specified, the replaced and replacement files retain their original file names. Otherwise, the replaced file no longer exists and the replacement file exists under its original name. This suggests an implementation in several steps where the backup is required to roll things back, and would not exhibit this desirable behavior of `rename`: > If newpath already exists, it will be atomically replaced, so that there is no point at which another process attempting to access newpath will find it missing. With that said, I was not able to repro this situation, so it may just be that the API documentation is out-of-date with implementation improvements. It is also possible that Windows doesn't offer anything with guarantees as strong as `rename` on Linux. I suspect that on Windows other processes have to be prepared to handle file-in-use errors, so removing file-not-found possibility may not be as useful there. The ideal behavior is that readers see the file before or after the move, with no risk of anything in between. No matter the constraints on Windows, I think it would still be worthwhile to have an API that gives full fidelity to `rename` on Linux and the most reasonable equivalent on Windows... ## Initial API Proposal ``` C# [Flags] public enum MoveOptions { None = 0, ReplaceIfExisting = 1, DisallowCopying = 2, }; public static class File { // existing overload public static void Move(string sourceFileName, string destFileName); // new overload public static void Move(string sourceFileName, string destFileName, MoveOptions options); } public class FileInfo { // existing overload public static void MoveTo(string destFileName); // new overload public static void MoveTo(string destFileName, MoveOptions options); } ``` The existing overloads become equivalent to passing MoveOptions.None to the new overloads. On Windows, the flags can be implemented directly using MoveFileEx, with an open question as to which guarantees of `rename` would (not) be retained. On *nix, each one would amount to disabling part of the emulation of Windows MoveFile. If both are passed, it is basically a straight call to `rename`. +20756 area-Infrastructure Enable Linux Performance Runs Porting changes from master to enable Linux performance runs against release/2.0.0. Fixes #20757. +20757 area-System.Diagnostics Enable Linux Performance Runs +20759 area-System.Runtime add rd.xml for System.Runtime.WindowsRuntime.UI.Xaml System.Private.Interop need to create these 4 types through reflection, see https://github.com/dotnet/corert/blob/b18feac9f99f6d67c4e1182e5d2797e5529c3592/src/System.Private.Interop/src/WinRT/ExceptionHelpers.cs#L581 In AOT scenario, it is necessary to mark these types as dynamic to do reflection call. +20761 area-Infrastructure Add `-portable=false` option in Tizen CI build Add `-portable=false` option in Tizen CI build +20763 area-System.Net Add a few WebSocketException tests Just scratching an itch to bring code coverage for the library up to 100%. cc: @davidsh +20764 area-System.IO Serial port failures Unfortunately it's hard to find the red errors among the forest of yellow skipped. I found some representative ones, not sure whether there should be separate issues: https://mc.dot.net/#/user/luqunl/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/f991037ff4a2b8628fc027bfdf6dccddb68a9f39/workItem/System.IO.Ports.Tests @willdean are these all symptoms of somehow not having a port on this box? they're all on the `Windows.81.Amd64.Open-Debug-x64` leg. https://mc.dot.net/#/user/luqunl/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/f991037ff4a2b8628fc027bfdf6dccddb68a9f39/workItem/System.IO.Ports.Tests/analysis/xunit/System.IO.Ports.Tests.WriteLine_Generic~2FBytesToWrite ``` Unhandled Exception of Type Xunit.Sdk.TrueException Message : Timeout while waiting for data to be written to port (wrote 32770, queued 0, bufSize 0)\r\nExpected: True\r\nActual: False Stack Trace : at Legacy.Support.TCSupport.WaitForWriteBufferToLoad(SerialPort com, Int32 bufferLength) at System.IO.Ports.Tests.WriteLine_Generic.BytesToWrite() ``` https://mc.dot.net/#/user/luqunl/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/f991037ff4a2b8628fc027bfdf6dccddb68a9f39/workItem/System.IO.Ports.Tests/analysis/xunit/System.IO.Ports.Tests.WriteTimeout_Property~2FWriteTimeout_Infinite_Write_str ``` Task should not have completed while tx is blocked by flow-control\r\nExpected: False\r\nActual: True Stack Trace : at System.IO.Ports.Tests.WriteTimeout_Property.VerifyInfiniteTimeout(WriteMethodDelegate writeMethod, Boolean setInfiniteTimeout) at System.IO.Ports.Tests.WriteTimeout_Property.WriteTimeout_Default_Write_char_int_int() ``` https://mc.dot.net/#/user/luqunl/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/f991037ff4a2b8628fc027bfdf6dccddb68a9f39/workItem/System.IO.Ports.Tests/analysis/xunit/System.IO.Ports.Tests.WriteLine_Generic~2FSuccessiveReadTimeout ``` Message : ERROR!!!: The write method timedout in 0 expected 1054 percentage difference: 1\r\nExpected: True\r\nActual: False Stack Trace : at System.IO.PortsTests.PortsTest.Fail(String format, Object[] args) at System.IO.Ports.Tests.WriteLine_Generic.VerifyTimeout(SerialPort com) at System.IO.Ports.Tests.WriteLine_Generic.SuccessiveReadTimeout() ``` +20765 area-System.Numerics System.Numerics Matrix4x4 Right-Handed Coordinates Systems? @rochar commented on [Mon Jun 05 2017](https://github.com/dotnet/coreclr/issues/12081) Hi, It's supposed to use Matrix4x4 only in Left-Handed Coordinates systems? Thanks Ricardo +20766 area-System.Threading System.Threading.Thread TrySetApartmentState missing uap-aot implementation These methods need to be implemented. public ApartmentState GetApartmentState() public bool TrySetApartmentState(ApartmentState state) public void DisableComObjectEagerCleanup() public void Interrupt() +20767 area-System.Threading Disable some thread test since the required methods are not implemented in uwp yet. See #20766 +20768 area-System.IO Test failure: System.IO.Ports.Tests.SerialStream_WriteTimeout_Property/SuccessiveWriteTimeoutNoData_WriteByte Opened on behalf of @Jiayili1 The test `System.IO.Ports.Tests.SerialStream_WriteTimeout_Property/SuccessiveWriteTimeoutNoData_WriteByte` has failed. Assert.Throws() Failure\r Expected: typeof(System.TimeoutException)\r Actual: (No exception was thrown) Stack Trace: at System.IO.Ports.Tests.SerialStream_WriteTimeout_Property.SuccessiveWriteTimeoutNoData_WriteByte() Build : Master - 20170607.01 (Core Tests) Failing configurations: - Windows.81.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170607.01/workItem/System.IO.Ports.Tests/analysis/xunit/System.IO.Ports.Tests.SerialStream_WriteTimeout_Property~2FSuccessiveWriteTimeoutNoData_WriteByte +20772 area-Infrastructure No test reports found for the metric 'xUnit.Net' with the resolved pattern 'bin/**/testResults.xml'. failed in ci [xUnit] [ERROR] - No test reports found for the metric 'xUnit.Net' with the resolved pattern 'bin/**/testResults.xml'. Configuration error?. detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_opensuse42.1_debug/71/consoleFull#136046166483554902-aff0-4799-9e92-0ada24ce2a06 +20773 area-Infrastructure [WS-CLEANUP] Cannot delete workspace: remote file operation failed: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_osx_debug at hudson.remoting.Channel@2ce3a350:dci-mac-build-083: hudson.remoting.ChannelClosedException: channel is already closed detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_osx_debug/76/consoleFull#10182403706ee26338-6221-4f7c-8c8f-1d1d5cb4704a +20774 area-System.IO Disable SerialPort tests where no additional hardware is present This disables all port-requiring SerialPort tests on the CI - essentially it's a reversion of PR #20707 Fixes #20764 Fixes #20768 I will not reintroduce these again using an 'opt-out' strategy - when I can work out how to opt them in selectively on the CI we can try that. +20775 area-System.Drawing System.Drawing.Rectangle Contains methods have misleading documentation "This issue is true for the good old Framework as well as for the ""new"" .NetCore implementation (corefx/src/System.Drawing.Primitives/src/System/Drawing/Rectangle.cs) The Rectangle class provides the following overloaded versions of the contains method: public bool Contains(int x, int y); public bool Contains(Point pt) // forwards to Contains(int, int); public bool Contains(Rectangle rect); While the contains method with the Rectangle parameter includes the border points on the right and the bottom, the contains method with the two integer parameter will categorize a point on the border as not being contained. Assume the following cases: Rectangle test = new Rectangle (0, 0, 100, 20); Rectangle test2 = new Rectangle(0, 0, 100, 20); bool covered = test.Contains(test2) // will return true as expected bool covered2 = test.Contains(0, 0) // will return true as expected bool covered3 = test.Contains(100, 20) // will return false NOT expected bool covered4 = test.Contains(100, 0) // will return false NOT expected The last cases in my eyes are unexpected, as the documentation for Rectangle.Contains (with the rectangle parameter) states it will return true if it fully covers the given rectangle. In my eyes it would be more intuitive and semantically consistent if the implementation would be changed from public bool Contains(int x, int y) => X <= x && x < X + Width && Y <= y && y < Y + Height; to public bool Contains(int x, int y) => X <= x && x <= X + Width && Y <= y && y <= Y + Height; I know it's a matter of definition what ""Contains"" semantically means. One could find some good arguments why the last two test cases actually are correct. But then we should also discuss the first test case which should be then false as well. So either a Rectangle is fully contained which means also the points (i.e. Rectangle.Right and Rectangle.Bottom) or if those points are not contained then the rectangle itself cannot (should not) be contained as well. (I personally prefer the way i mentioned in the comments in code above). Best regards, Tobias" +20776 area-Meta System.Exception loses Message value during serialization/deserialization "System.Exception appears to have some serialization issues. If I perform the following simple test utilizing Newtonsoft.Json for serialization, it fails: ```c# var ex = new Exception(""Something bad happened!!!""); var json = JsonConvert.SerializeObject(ex); var obj = JsonConvert.DeserializeObject(json); Assert.AreEqual(ex.Message, obj.Message); ``` The custom message value is lost during deserialization and replaced with the default exception message: ""Exception of type 'System.Exception' was thrown."" This was tested against System.Runtime version 4.1.0.0 " +20779 area-System.IO Wildcard question marks don't collapse right on Unix `?` runs before periods and end-of-string should collapse. When they are there they are `.{0,n}` in regex-speak. So `Foo???.txt` would be `Foo.{0,3}\.txt` as a regex. Not sure if something equivalent is possible with `fnmatch(3)`. See discussion in #20688 Matching behavior is described [here](https://blogs.msdn.microsoft.com/jeremykuhne/2017/06/04/wildcards-in-windows/). +20780 area-System.IO Trailing periods are not optional on Unix with wildcards If a period is followed by a '`*`' or '`.`' it doesn't have to match if it is at the end of the string on Windows. '`foo.*`' is the common example. It will match '`foo`', '`foo.`', '`foo.txt`', but not '`foobar`'. See discussion in #20688, related to #20779 Matching behavior is described [here](https://blogs.msdn.microsoft.com/jeremykuhne/2017/06/04/wildcards-in-windows/). +20781 area-System.IO Trailing '*.' does not match correctly on Unix "A final `*.` in a search pattern gets treated special by Windows. It becomes `<` and will eat any character _up to and including_ the final period. So `foo*.` will match any file beginning with `foo` that does not have an ""extension"". It will match `foo`, `foobar`, but not `foo.bar`. See discussion in #20688, related to #20779, #20780 Matching behavior is described [here](https://blogs.msdn.microsoft.com/jeremykuhne/2017/06/04/wildcards-in-windows/)." +20782 area-System.Runtime Implement Environment.GetFolderPath for UWP Windows are not exposing SHGetKnownFolderPath generally in RS3 as it doesn't yet give the correct answers for apps. Environment.GetFolderPath should do this on UWP: * For anything that should be app-isolated, use the WinRT Windows.Storage.ApplicationData API * For anything that should be shared (photos, music, etc.) use SHGetKnownFolderPath, which .NET implementation will have special access to. * For Documents, use Windows.Storage.ApplicationData.LocalFolder as that's what iOS/Android code expects. (Note: not SHGetKnownFolderPath with CSIDL_PRIVATEDOCUMENTS.) But offer an environment variable tentatively named COMPLUS_PublicDocuments=1 to force this to get hte shared location using SHGetKnownFolderPath and CSIDL_MYDOCUMENTS. Long term we want SHGetKnownFolderPath but this is the interim plan for RS3. +20784 area-System.IO Handle escaping in Unix file enumeration We try and align with Windows, so we'll escape out [ and /. Adds a bunch of tests and issues for other cases that we don't match Windows behavior. Addresses #20688 +20786 area-System.Data Enable UWP build for SqlClient The changes include adding the uap configuration to the SqlClient implementation so that Managed SNI can be built for UWP. 1. Added the uap configuration. 2. Added dependencies for uap. 3. Conditionally added TdsParserStateObjectFactory to uap +20787 area-System.Threading Creating linked cancellation tokens hides which token triggered cancellation In the following scenario, I would expect the code to print true instead of false. The problem is that once you have a linked cancellation token, it will always be the reported token in any `OperationCanceledException` instead of the actual token that fired. ```C# using System; using System.Threading; namespace ConsoleApp2 { class Program { static void Main(string[] args) { var cts1 = new CancellationTokenSource(); var cts2 = new CancellationTokenSource(); var cts3 = new CancellationTokenSource(); try { cts1.Cancel(); CancellationTokenSource.CreateLinkedTokenSource(cts1.Token, cts2.Token, cts3.Token).Token.ThrowIfCancellationRequested(); } catch (OperationCanceledException ex) { Console.WriteLine(cts1.Token == ex.CancellationToken); } } } } ``` I know it's a breaking change but it's *super* annoying. The work around is to check each of the tokens manually in the catch (which isn't even correct since it may have been triggered elsewhere). /cc @stephentoub +20788 area-Infrastructure building/windows-instructions.md docs need update "https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md Under Required Software -> For Visual Studio 2017, there is a very important component missing: we need to have .NET Core cross-platform development checked as well (Workloads -> Other Toolsets) And there is a issue blocking me for two days, starting from Monday. If I pull from dotnet master, then do ""clean.cmd"" (or any other commands), it has the error message: ""System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime.Serialization.Primitives, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"". However, if I reverted to a commit in last Friday, then everything is working. @davidsh found out that my VS2017 is missing some components, and after adding many things, the error message goes away. I'm not sure what' the minimum requirements for VS2017 (the ones in windows-instructions.md are not enough). I attached my configuration. For now, it works for me. ![capture1](https://user-images.githubusercontent.com/8537784/26905630-4538c8ec-4b9d-11e7-9b2c-98c292bb4037.PNG) ![capture2](https://user-images.githubusercontent.com/8537784/26905629-4535ace8-4b9d-11e7-8a16-e5dcb1be977b.PNG) ![capture3](https://user-images.githubusercontent.com/8537784/26905631-453947b8-4b9d-11e7-9376-771cc76dc62a.PNG) ![capture4](https://user-images.githubusercontent.com/8537784/26905632-454a01c0-4b9d-11e7-9ac6-b0759dfa761b.PNG) " +20790 area-System.Data Improve test table cleanup in SqlClient ManualTests Noticed some test tables were building up in my test server, so added some extra table cleanup in the Manual Tests. +20793 area-System.Net Fixing NativeOverlapped lifetime issue. Adding a test to validate. Added DEBUG run-time checks. Also removed one duplicate Interop API. Fixes #20400 . +20794 area-System.Runtime [uapaot] ComAwareEventInfo and ComEventInterfaceAttribute duplicated See https://github.com/dotnet/corefx/pull/20697/files#r120782465 ComAwareEventInfo and ComEventInterfaceAttribute should be deleted in System.Private.Interop, and we should always use the impl in corefx. +20795 area-System.Net Eliminate code duplication between HttpUtility and WebUtility See discussion at https://github.com/dotnet/corefx/pull/11642#r78505478 @weshaggard > Is there some reason these cannot call WebUtility.UrlEncode? @alexperovich > WebUtility doesn't support passing in Encoding. Calling it would work for some of these members but not the others. @weshaggard > Well that sucks. We should try and figure out how we can eliminate any duplication between the 2. @stephentoub > That's really unfortunate. I agree with Wes; we should find a way to share the code. Can you please open an issue to track that? The existing code has had a fair number of optimizations applied to it since it came to the repo. We could, for example, augment that code with support for encoding (even though it won't be used via those public APIs), and compile the code into both assemblies. Or add public API there that supports encoding and simply call into it. +20796 area-System.Collections Fix issue #20609 - RemoveAll on ImmutableList.Builder removes wrong elements. This pull request resolves #20609. +20797 area-System.IO NetFX FileStream closes SafeFileHandles in ctor with bad args If you pass in a SafeFileHandle with bad args (access or buffersize) the passed-in handle will be closed when the finalizer runs. This was showing up as an intermittent failure in test runs. +20798 area-System.IO FileStream SafeHandle ctor negative test fix The tests were intermittently failing on desktop as the constructor was closing the handle when it got finalized. - Moved the negative tests into a new class (they were running redundantly with no changes) - Stopped creating files where it wasn't needed - Added specific test for checking handle state and disabled for desktop with active issue See #20797 +20799 area-System.Net NetworkStream Connection Closed by should be System.IO.EndOfStreamException on Windows in `netstandard2.0` Consider the following unit test: https://github.com/mysql-net/MySqlConnector/blob/0.20.1/tests/SideBySide/ConnectionPool.cs#L154-L180 A TCP Client opens a `NetworkStream` to a MySQL server, then the MySQL server times out and closes the connection after a period of time. In `net451`, `netstandard1.3`, and `netstandard2.0 on linux` this simply results in the connection winding up in a failed state. In `netstandard2.0 on windows` this [results in an exception](https://ci.appveyor.com/project/mysqlnet/mysqlconnector/build/1.0.617#L389): ``` System.IO.IOException : Unable to transfer data on the transport connection: An established connection was aborted by the software in your host machine. ---- System.Net.Sockets.SocketException : An established connection was aborted by the software in your host machine ``` This looks to be a problem with the windows implementation of NetworkStream in `netstandard2.0` since it is behaving differently than every other implementation. ## Windows Version Info (exception only occurs in `netstandard2.0`): ``` .NET Command Line Tools (2.0.0-preview1-005957) Product Information: Version: 2.0.0-preview1-005957 Commit SHA-1 hash: 056ac0e9cd Runtime Environment: OS Name: Windows OS Version: 10.0.14393 OS Platform: Windows RID: win10-x64 Base Path: C:\Users\appveyor\AppData\Local\Microsoft\dotnet\sdk\2.0.0-preview1-005957\ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview1-002111-00 Build : 1ff021936263d492539399688f46fd3827169983 ``` ## Linux Version Info (exception does not occur): ``` .NET Command Line Tools (2.0.0-preview1-005977) Product Information: Version: 2.0.0-preview1-005977 Commit SHA-1 hash: 414cab8a0b Runtime Environment: OS Name: ubuntu OS Version: 17.04 OS Platform: Linux RID: ubuntu.16.04-x64 Base Path: /usr/share/dotnet/sdk/2.0.0-preview1-005977/ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview1-002111-00 Build : 1ff021936263d492539399688f46fd3827169983 ``` +20803 area-System.Drawing "Test: System.Drawing.Primitives.Tests.ColorTests/GetHashCode failed with ""Xunit.Sdk.NotEqualException""" "Opened on behalf of @Jiayili1 The test `System.Drawing.Primitives.Tests.ColorTests/GetHashCode(name1: \""AliceBlue\"", name2: \""AliceBlue\"")` has failed. Assert.NotEqual() Failure Expected: Not \""AliceBlue\"" Actual: \""AliceBlue\"" Stack Trace: at System.Drawing.Primitives.Tests.ColorTests.GetHashCode(String name1, String name2) in /root/corefx/src/System.Drawing.Primitives/tests/ColorTests.cs:line 251 Build : Master - 20170608.01 (Core Tests) Failing configurations: - Ubuntu.1604.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170608.01/workItem/System.Drawing.Primitives.Tests/analysis/xunit/System.Drawing.Primitives.Tests.ColorTests~2FGetHashCode(name1:%20%5C%22AliceBlue%5C%22,%20name2:%20%5C%22AliceBlue%5C%22)" +20808 area-System.Drawing Invalid sequences of bytes debug asserts in System.Drawing.Icon The following test causes a debug assertition to be hit in System.Drawing.Icon.Initialize: ```cs byte[] bytes = new byte[] { 0, 0, 1, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; byte[] bytes = new byte[] { 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255 }; byte[] bytes = new byte[] { 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 127, 255, 255, 255, 127 }; byte[] bytes = new byte[] { 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 12, 0, 0, 0 }; ``` ```cs using (var stream = new MemoryStream()) { stream.Write(bytes, 0, bytes.Length); stream.Position = 0; Assert.Throws(exceptionType, () => new Icon(stream)); } ``` I can't reproduce this issue with netfx, but that might be because of release vs debug mode +20809 area-System.Data ADOMD.NET support for .NET Core Hey, I'd like to convert all of my existing applications to .NET Core but found out that there isn't ADOMD.NET support in .NET Core. I need to be able to query my SSAS cubes with impersonation. Is there any plan for you guys to support ADOMD.NET or might there be another way to query SSAS cubes (Using MDX)? Thanks in advance! +20810 area-System.Numerics Question: double division consistency for scaled integer pairs I have the following method: ```c# void Divide(long x, long y, int factor) { var result1 = (double)x / y; var result2 = (double)(x * factor) / (y * factor); } ``` Are `result1` & `result2` guranteed to be the same for arbitrary (* see bellow) inputs? The following assumptions can be made: 1. `x`, `y`, & `factor` are positive. 2. `x * factor` & `y * factor` are representable by less than 50 bits. 3. `y >= x`. +20811 area-System.Drawing Add System.Drawing.Icon tests Contributes to #20711 Fixes #20808 This is a 50-50 mixture of handwritten tests as well as tests inspired and cleanup up from Mono +20812 area-System.Diagnostics Process.VirtualMemorySize64 (at least) is giving corrupt values "System.Diagnostics.Process.VirtualMemorySize64 has an unexpected High Value (Windows 10 x64) Example: ```c# using System; class Program { static void Main(string[] args) { Console.WriteLine(""VirtualMemorySize:{0:#,0.}"", System.Diagnostics.Process.GetCurrentProcess().VirtualMemorySize64); Console.ReadKey(); } } ``` Output: VirtualMemorySize:2.199.520.038.912 Expected output : <= 150 MB as with .NET Classic" +20813 area-System.Numerics Fixes System.Runtime.Numerics tests compilation Fixes C# compiler error `The out parameter 'num3' must be assigned to before control leaves the current method`. It appears that corefx is using pre-RTM buggy version of C# compiler +20814 area-System.Text Different encoding behavior in windows and linux " docker linux -> Encoding.UTF8.GetString(new byte[] {195,173}) ""Ă­"" string windows -> Encoding.UTF8.GetString(new byte[] {195,173}) ""í"" string" +20816 area-System.Net System.Net.Http.Headers.ContentDispositionHeaderValue.EncodeAndQuoteMime should allow quotes "If `System.Net.Http.Headers.ContentDispositionHeaderValue.FileName` is set to a value with quotes, [this](https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/Headers/ContentDispositionHeaderValue.cs#L441) throws an error: ```c# private string EncodeAndQuoteMime(string input) { ... if (result.IndexOf(""\"""", 0, StringComparison.Ordinal) >= 0) // Only bounding quotes are allowed. { throw new ArgumentException(string.Format(CultureInfo.InvariantCulture, SR.net_http_headers_invalid_value, input)); } ... } ``` As far as I can tell, `quoted-string` should be allowed, as per [RFC 2616](https://tools.ietf.org/html/rfc2616#section-2.2). It seems strange that this error can be thrown at all, considering that you can even give it non-ASCII and it will encode it properly. [EDIT] Add C# syntax highlighting by @karelz" +20817 area-Infrastructure Dumpling hitting server error, breaking runs "As far as I can tell the runs are breaking as a consequence. https://ci.dot.net/job/dotnet_corefx/job/master/job/debian8.4_debug/2722/consoleFull#136046166483554902-aff0-4799-9e92-0ada24ce2a06 https://ci.dot.net/job/dotnet_corefx/job/master/job/fedora24_release/2737/consoleFull#136046166483554902-aff0-4799-9e92-0ada24ce2a06 https://ci.dot.net/job/dotnet_corefx/job/master/job/opensuse42.1_release/2756/consoleFull#136046166483554902-aff0-4799-9e92-0ada24ce2a06 @mellinoe can you look first thing pls? ``` 21:14:46 downloaded dumpling.py 21:14:46 total elapsed time 0:00:00.155554 21:14:47 downloaded dumpling.py 21:14:47 downloading debugger for client linux-suse 21:14:47 Traceback (most recent call last): 21:14:47 File ""/mnt/resource/j/workspace/dotnet_corefx/master/opensuse42.1_release/tempHome/.dumpling/dumpling.py"", line 1128, in 21:14:47 main(sys.argv) 21:14:47 File ""/mnt/resource/j/workspace/dotnet_corefx/master/opensuse42.1_release/tempHome/.dumpling/dumpling.py"", line 1123, in main 21:14:47 cmdProc.Process(config) 21:14:47 File ""/mnt/resource/j/workspace/dotnet_corefx/master/opensuse42.1_release/tempHome/.dumpling/dumpling.py"", line 537, in Process 21:14:47 self.Install(config) 21:14:47 File ""/mnt/resource/j/workspace/dotnet_corefx/master/opensuse42.1_release/tempHome/.dumpling/dumpling.py"", line 566, in Install 21:14:47 dbgPath = self._dumpSvc.DownloadDebugger(dbgdir) 21:14:47 File ""/mnt/resource/j/workspace/dotnet_corefx/master/opensuse42.1_release/tempHome/.dumpling/dumpling.py"", line 184, in DownloadDebugger 21:14:47 response.raise_for_status() 21:14:47 File ""/usr/lib/python2.7/site-packages/requests/models.py"", line 893, in raise_for_status 21:14:47 raise HTTPError(http_error_msg, response=self) 21:14:47 requests.exceptions.HTTPError : 500 Server error : Internal Server Error for url: https://dumpling.azurewebsites.net/api/tools/debug?os=linux&distro=suse [/mnt/resource/j/workspace/dotnet_corefx/master/opensuse42.1_release/src/tests.builds] 21:14:47 /mnt/resource/j/workspace/dotnet_corefx/master/opensuse42.1_release/Tools/Dumpling.targets(11,5): error MSB3073: The command ""python /mnt/resource/j/workspace/dotnet_corefx/master/opensuse42.1_release/Tools/DumplingHelper.py install_dumpling"" exited with code -1. [/mnt/resource/j/workspace/dotnet_corefx/master/opensuse42.1_release/src/tests.builds] ```" +20818 area-System.IO System.IO.Tests.FileInfo_GetSetTimes~2FTimesStillSetAfterDelete failed on Debian @JeremyKuhne the file system on this OS may have coarser granularity? Perhaps the test should get the time from the item itself then check that didn't change, rather than get the wall clock time then create the item? https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170608.02/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.FileInfo_GetSetTimes~2FTimesStillSetAfterDelete ``` Debian.87.Amd64-x64-Release Unhandled Exception of Type Xunit.Sdk.AllException Message : Assert.All() Failure: 6 out of 6 items in the collection did not pass.\n[5]: Xunit.Sdk.InRangeException: Assert.InRange() Failure\r\n Range: (636325222250050043 - 636325222270050575)\r\n Actual: 636325222250000000\n at Xunit.Assert.InRange[T](T actual, T low, T high, IComparer`1 comparer)\n at System.IO.Tests.BaseGetSetTimes`1.<>c__DisplayClass8_0.b__0(TimeFunction function) in /root/corefx/src/System.IO.FileSystem/tests/Base/BaseGetSetTimes.cs:line 75\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action)\n[4]: Xunit.Sdk.InRangeException: Assert.InRange() Failure\r\n Range: (636325222250050043 - 636325222270050575)\r\n Actual: 636325222250000000\n at Xunit.Assert.InRange[T](T actual, T low, T high, IComparer`1 comparer)\n at System.IO.Tests.BaseGetSetTimes`1.<>c__DisplayClass8_0.b__0(TimeFunction function) in /root/corefx/src/System.IO.FileSystem/tests/Base/BaseGetSetTimes.cs:line 75\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action)\n[3]: Xunit.Sdk.InRangeException: Assert.InRange() Failure\r\n Range: (636325222250050043 - 636325222270050575)\r\n Actual: 636325222250000000\n at Xunit.Assert.InRange[T](T actual, T low, T high, IComparer`1 comparer)\n at System.IO.Tests.BaseGetSetTimes`1.<>c__DisplayClass8_0.b__0(TimeFunction function) in /root/corefx/src/System.IO.FileSystem/tests/Base/BaseGetSetTimes.cs:line 75\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action)\n[2]: Xunit.Sdk.InRangeException: Assert.InRange() Failure\r\n Range: (636325222250050043 - 636325222270050575)\r\n Actual: 636325222250000000\n at Xunit.Assert.InRange[T](T actual, T low, T high, IComparer`1 comparer)\n at System.IO.Tests.BaseGetSetTimes`1.<>c__DisplayClass8_0.b__0(TimeFunction function) in /root/corefx/src/System.IO.FileSystem/tests/Base/BaseGetSetTimes.cs:line 75\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action)\n[1]: Xunit.Sdk.InRangeException: Assert.InRange() Failure\r\n Range: (636325222250050043 - 636325222270050575)\r\n Actual: 636325222250000000\n at Xunit.Assert.InRange[T](T actual, T low, T high, IComparer`1 comparer)\n at System.IO.Tests.BaseGetSetTimes`1.<>c__DisplayClass8_0.b__0(TimeFunction function) in /root/corefx/src/System.IO.FileSystem/tests/Base/BaseGetSetTimes.cs:line 75\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action)\n[0]: Xunit.Sdk.InRangeException: Assert.InRange() Failure\r\n Range: (636325222250050043 - 636325222270050575)\r\n Actual: 636325222250000000\n at Xunit.Assert.InRange[T](T actual, T low, T high, IComparer`1 comparer)\n at System.IO.Tests.BaseGetSetTimes`1.<>c__DisplayClass8_0.b__0(TimeFunction function) in /root/corefx/src/System.IO.FileSystem/tests/Base/BaseGetSetTimes.cs:line 75\n at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) Stack Trace : at System.IO.Tests.BaseGetSetTimes`1.ValidateSetTimes(T item, DateTime beforeTime, DateTime afterTime) in /root/corefx/src/System.IO.FileSystem/tests/Base/BaseGetSetTimes.cs:line 82 at System.IO.Tests.InfoGetSetTimes`1.TimesStillSetAfterDelete() in /root/corefx/src/System.IO.FileSystem/tests/Base/InfoGetSetTimes.cs:line 59 ``` +20820 area-System.IO Check actual set time for test There is already a test that checks the time is in range. The time here shouldn't change at all- and the range I was using wasn't tolerant enough for all of our targets. Fixes #20818, introduced in #20716 +20821 area-System.Net Disable HttpListener tests on UAP/UAPAOT Disable rest of the tests on UAP/UAPAOT until the dev work is done. Contributes to #17462 +20822 area-System.IO Handle escaping in Unix file enumeration (#20784) "Ports #20784, which addresses #20688 We try and align with Windows, so we'll escape out [ and /. Adds a bunch of tests and issues for other cases that we don't match Windows behavior. For completeness I ran everything through RtlIsNameInExpression to validate the ""correct"" results. I've commented appropriately." +20823 area-System.IO Fill out FileSystemInfo state when enumerating (#20716) Ports #20716, which addresses #20456. On Windows FileSystemInfos are filled in with state as we have all of the state from FindFirstFileEx. Refactor Time tests and add cases for refresh state. +20825 area-System.Security System.Security.Cryptography.* tests failing in UWP CoreCLR (UAP) The test assemblies that have failures are the following: System.Security.Cryptography.Xml.Tests - 5 failures System.Security.Cryptography.Pkcs.Tests - 1 failure System.Security.Cryptography.Csp.Tests - 1 failure cc: @bartonjs @danmosemsft @ianhays +20827 area-Infrastructure Enable easy building of all projects for a given library I was trying to follow the build instructions here: https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/developer-guide.md#building-individual-corefx-dlls to build the individual projects in corefx (for instance, `System.Collections.Immutable`). When following those instructions the build fails when the SLN file has `\` instead of `/` for the paths in it. The build failure is an `MSB4025` for a missing `.metaproj` file. I suspect many SLN files in the repo have this issue. I'm not sure what the right fix is - I do know that once I changed it to `/` instead of `\` in the SLN it built successfully on linux. This might be an msbuild issue or it might be corefx invalid solutions. Anyway, it would be nice to either update to a msbuild version that fixes this issue or fix the SLN files so that the build/iterate workflow works on linux too. +20829 area-System.Data Add socket connectivity test in the Test TDS server This PR adds a test to connect to the socket when the server initializes the TcpListener to listen to incoming connections before the test can try to connect to the socket. For Diagnosing #20441 +20831 area-Infrastructure Workaround for recent CMake bug w.r.t. CF guard Recent versions of CMake generates the node under the node when it finds /guard:cf linker option in the linker options. But that is not correct. It should generate it under the node so that the Microsoft.CppCommon.targets would then generate node under the . To workaround the problem, change the casing of /guard:cf to uppercase. CMake then doesn't detect the option as something known to it and passes the option to the linker as additional option, which fixes the problem. +20832 area-Infrastructure Build failure: New manual mscorlib shim @dotnet-mc-bot commented on [Thu Jun 08 2017](https://github.com/dotnet/core-eng/issues/899) Build : Master - 20170608.02 (Product Build) Failing configurations: - Windows - AllConfigurations-Release-x64 [Mission Control Build Info](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/build~2Fproduct~2F/build/20170608.02/workItem/Orchestration/analysis/external/Visual%20Studio%20Build%20Information) https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_build?_a=summary&buildId=792955 ``` Failed due to a product build issue: 2017-06-08T12:14:35.7223367Z E:\A\_work\352\s\corefx\Tools\BlockReflectionAttribute.cs(13,49): error CS0246: The type or namespace name 'Attribute' could not be found (are you missing a using directive or an assembly reference?) [E:\A\_work\352\s\corefx\src\shims\manual\mscorlib.csproj] 2017-06-08T12:14:35.7223367Z E:\A\_work\352\s\corefx\Tools\BlockReflectionAttribute.cs(12,6): error CS0518: Predefined type 'System.Object' is not defined or imported [E:\A\_work\352\s\corefx\src\shims\manual\mscorlib.csproj] 2017-06-08T12:14:35.7223367Z E:\A\_work\352\s\corefx\Tools\BlockReflectionAttribute.cs(12,6): error CS0246: The type or namespace name 'AttributeUsageAttribute' could not be found (are you missing a using directive or an assembly reference?) [E:\A\_work\352\s\corefx\src\shims\manual\mscorlib.csproj] 2017-06-08T12:14:35.7223367Z E:\A\_work\352\s\corefx\Tools\BlockReflectionAttribute.cs(12,6): error CS0246: The type or namespace name 'AttributeUsage' could not be found (are you missing a using directive or an assembly reference?) [E:\A\_work\352\s\corefx\src\shims\manual\mscorlib.csproj] 2017-06-08T12:14:35.7223367Z E:\A\_work\352\s\corefx\Tools\BlockReflectionAttribute.cs(12,21): error CS0518: Predefined type 'System.Object' is not defined or imported [E:\A\_work\352\s\corefx\src\shims\manual\mscorlib.csproj] 2017-06-08T12:14:35.7223367Z E:\A\_work\352\s\corefx\Tools\BlockReflectionAttribute.cs(12,21): error CS0103: The name 'AttributeTargets' does not exist in the current context [E:\A\_work\352\s\corefx\src\shims\manual\mscorlib.csproj] ``` Looks related to @weshaggard’s change here: https://github.com/dotnet/corefx/commit/ca49bfbfd64351fddba56f2141b90841b8561eb7 But is confusing since it seems to be specific to the release build. --- @weshaggard commented on [Thu Jun 08 2017](https://github.com/dotnet/core-eng/issues/899#issuecomment-307175737) It is a release only issue which is why it got through CI. CI only runs debug version of AllConfigurations build leg. +20833 area-Serialization DCJS_VerifyDictionaryFormat Failed in ReflectionOnly Mode. When writing a Dictionary type's values, DCJS needs to know the declared value type instead of the actual type of an object. Fix #20636 +20834 area-System.Drawing System.Drawing.Common should give friendly error when used on Nano Right now, you will get EntryPointNotFoundException's when some System.Drawing.Common tries to load some of it's PInvoke imports. We should somehow wrap these in a way that makes error messages more explicit and less confusing. +20835 area-System.Globalization NullReferenceException in System.Globalization.NumberFormatInfo.get_CurrentInfo() https://mc.dot.net/#/user/marek-safar/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/b62758a03e8410f2f523ec0a297dc139423cbe75/workItem/System.Globalization.Tests/analysis/xunit/System.Globalization.Tests.CharUnicodeInfoGetUnicodeCategoryTests~2FGetNumericValue ``` System.NullReferenceException Ubuntu.1604.Amd64.Open-Debug-x64 Unhandled Exception of Type System.NullReferenceException Message : System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace : at System.Globalization.NumberFormatInfo.get_CurrentInfo() at System.Double.ToString(String format, IFormatProvider provider) at System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0, Object arg1, Object arg2) at System.Globalization.Tests.CharUnicodeInfoGetUnicodeCategoryTests.ErrorMessage(Char ch, Object expected, Object actual) in /mnt/j/workspace/dotnet_corefx/master/portable-linux-Config_Debug+OuterLoop_false_prtest/src/System.Globalization/tests/CharUnicodeInfo/CharUnicodeInfoTests.cs:line 123 at System.Globalization.Tests.CharUnicodeInfoGetUnicodeCategoryTests.GetNumericValue(Char ch, Double expected) in /mnt/j/workspace/dotnet_corefx/master/portable-linux-Config_Debug+OuterLoop_false_prtest/src/System.Globalization/tests/CharUnicodeInfo/CharUnicodeInfoTests.cs:line 88 at System.Globalization.Tests.CharUnicodeInfoGetUnicodeCategoryTests.GetNumericValue() in /mnt/j/workspace/dotnet_corefx/master/portable-linux-Config_Debug+OuterLoop_false_prtest/src/System.Globalization/tests/CharUnicodeInfo/CharUnicodeInfoTests.cs:line 76 ``` @tarekgh fyi. +20837 area-System.Diagnostics System.Diagnostics.Tracing Test_EventSource_Lifetime test use private reflection and hense fails in uap-aot "```csharp private void ExerciseEventSource(WeakReference wrProvider, WeakReference wrEventSource) { using (var es = new LifetimeTestEventSource()) { **_FieldInfo field = es.GetType().GetTypeInfo().BaseType.GetField(""m_provider"", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);_** object provider = field.GetValue(es); wrProvider.Target = provider; " +20840 area-System.Net HttpListener: Managed implementation allows authenticated clients to connect successfully when if _listener.AuthenticationSchemes = AuthenticationSchemes.None; "Tracking app-compat behavior for Unix implementation of HttpListener. The scenarios are described by the following tests: - NoAuthenticationGetContextAsync_AuthenticationProvided_ReturnsForbiddenStatusCode - NoAuthentication_AuthenticationProvided_ReturnsForbiddenStatusCode For details on why these tests are not disabled with ""ActiveIssue"" see https://github.com/dotnet/corefx/pull/20793/files#r121023823 " +20841 area-Meta "Contributor Guidance regarding ""Squash and Merge""" "https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/contributing.md suggests that ""Squash and Merge"" be used only to squash and ""only by the contributor on request"" (which doesn't make sense to me since it's the guy who does the merge that clicks the button...) I would recommend that the guidance be changed so that ""Squash and Merge"" is the always the preferred choice even when there's only one commit in the PR. ""Squash and Merge"" isn't just about squashing commits - it's about having a sane history log without every contribution creating two commit objects - one with a useless title (""Merge Pull Request"") and the other with a useless timestamp (I care about when the change was merged into the branch, not when the author built the commit before pushing it to the PR.) " +20842 area-System.IO Use correct charset when unpacking port names (#20668) Port of #20668. Test only fix. None of the SerialPort tests work without this. +20843 area-System.Diagnostics Console encoding not supported Fixes https://github.com/dotnet/corefx/issues/17927 Talked offline with @JeremyKuhne and seem like this should start working at some time in the future @AtsushiKan has recently reenabled this test but it seems to still be failing on Ctrl+F5 (possibly works on UapAot) +20845 area-System.Runtime API Proposal: Add and Subtract overloads that take a void pointer ## Proposed API ```C# namespace System.Runtime.CompilerServices { public static partial class Unsafe { public unsafe static void* Add(void* source, int elementOffset); public unsafe static void* Subtract(void* source, int elementOffset); } } ``` ## Rationale and Usage Issue from: https://github.com/dotnet/corefxlab/issues/1529 > S.R.CS.Unsafe should be a good place. It has both `void*` and `ref T` overloads for most methods. `void*` overloads for Add and Subtract are missing for no good reason. We ended up writing [our own implementation](https://github.com/dotnet/corefxlab/blob/master/src/System.Buffers.Primitives/System/Buffers/OwnedBuffer.cs#L68-L71) because of the need: ```C# unsafe void* Add(void* pointer, int offset) { return (byte*)pointer + ((ulong)Unsafe.SizeOf() * (ulong)offset); } ``` The Add API is required in System.Buffers.Primitives [Buffer\.Pin](https://github.com/dotnet/corefxlab/blob/master/src/System.Buffers.Primitives/System/Buffers/Buffer.cs#L93-L105) method. ```C# public BufferHandle Pin() { if (_owner != null) { return _owner.Pin(_index); } var handle = GCHandle.Alloc(_array, GCHandleType.Pinned); unsafe { var pointer = OwnedBuffer.Add((void*)handle.AddrOfPinnedObject(), _index); return new BufferHandle(null, pointer, handle); } } ``` ## Open Questions ~- Should the Add/Subtract overload return `ref T` or `void*`?~ ## Pull Request A PR with the proposed changes is available: #20886 ## Updates - Changed return value from `ref T` to `void*`. cc @jkotas, @KrzysztofCwalina, @karelz, @terrajobst +20846 area-System.Runtime Tip: add string.Contains(string, StringComparison) Add convenience API 'string.Contains' overload with `StringComparison` argument. Motivation: [2000+ votes](https://stackoverflow.com/a/444818/2061103) on StackOverflow ```c# partial class String { //public bool Contains(string value); // Exists public bool Contains(string value, StringComparison comparisonType); } ``` # Original post I am not sure if this topic has came up before or not, but it looks to me a low hangig fruit with great demand: https://stackoverflow.com/a/444818/2061103 +20847 area-System.Net Don't catch all failures in HttpListenerResponse.Close tests Fixes #20156 For the reasoning, see #20156 +20849 area-Serialization Test failure: System.Runtime.Serialization.Xml.Canonicalization.Tests.XmlCanonicalizationTest/C14NWriterNegativeTests Opened on behalf of @Jiayili1 The test `System.Runtime.Serialization.Xml.Canonicalization.Tests.XmlCanonicalizationTest/C14NWriterNegativeTests` has failed. Assert.Equal() Failure\r ? (pos 15)\r Expected: System.ArgumentException\r Actual: System.ArgumentNullException\r ? (pos 15) Stack Trace: at System.Runtime.Serialization.Xml.Canonicalization.Tests.XmlCanonicalizationTest.C14NWriterNegativeTests() Build : Master - 20170609.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170609.02/workItem/Canonicalization.Tests/analysis/xunit/System.Runtime.Serialization.Xml.Canonicalization.Tests.XmlCanonicalizationTest~2FC14NWriterNegativeTests +20850 area-System.IO "Test: Tests.System.IO.Win32MarshalTests/DirectoryNotFoundErrors(path: \""\"", errorCode: 3, error: \""IO_PathNotFound_NoPathName\"") failed with ""Xunit.Sdk.StartsWithException""" "Opened on behalf of @Jiayili1 The test `Tests.System.IO.Win32MarshalTests/DirectoryNotFoundErrors(path: \""\"", errorCode: 3, error: \""IO_PathNotFound_NoPathName\"")` has failed. Assert.StartsWith() Failure:\r Expected: IO_PathNotFound_NoPathName\r Actual: Exception of type 'System.... Stack Trace: at Tests.System.IO.Win32MarshalTests.DirectoryNotFoundErrors(String path, Int32 errorCode, String error) Build : Master - 20170609.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170609.02/workItem/Common.Tests/analysis/xunit/Tests.System.IO.Win32MarshalTests~2FDirectoryNotFoundErrors(path:%20%5C%22%5C%22,%20errorCode:%203,%20error:%20%5C%22IO_PathNotFound_NoPathName%5C%22)" +20851 area-System.IO "Test: Tests.System.IO.Win32MarshalTests/DirectoryNotFoundErrors(path: \""foo\"", errorCode: 3, error: \""IO_PathNotFound_Path\"") failed with ""System.ArgumentNullException""" "Opened on behalf of @Jiayili1 The test `Tests.System.IO.Win32MarshalTests/DirectoryNotFoundErrors(path: \""foo\"", errorCode: 3, error: \""IO_PathNotFound_Path\"")` has failed. System.ArgumentNullException : Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.IO.Win32Marshal.GetExceptionForWin32Error(Int32 errorCode, String path) at Tests.System.IO.Win32MarshalTests.DirectoryNotFoundErrors(String path, Int32 errorCode, String error) Build : Master - 20170609.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170609.02/workItem/Common.Tests/analysis/xunit/Tests.System.IO.Win32MarshalTests~2FDirectoryNotFoundErrors(path:%20%5C%22foo%5C%22,%20errorCode:%203,%20error:%20%5C%22IO_PathNotFound_Path%5C%22)" +20855 area-System.Collections "Test: System.Collections.Tests.ArrayListTests/Ctor_Int_NegativeCapacity_ThrowsArgumentOutOfRangeException failed with ""System.ArgumentNullException'" Opened on behalf of @Jiayili1 The test `System.Collections.Tests.ArrayListTests/Ctor_Int_NegativeCapacity_ThrowsArgumentOutOfRangeException` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentOutOfRangeException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.Collections.ArrayList..ctor(Int32 capacity) at System.Collections.Tests.ArrayListTests.<>c.b__2_0() Build : Master - 20170609.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170609.02/workItem/System.Collections.NonGeneric.Tests/analysis/xunit/System.Collections.Tests.ArrayListTests~2FCtor_Int_NegativeCapacity_ThrowsArgumentOutOfRangeException +20856 area-System.Collections "Test: System.Collections.Specialized.Tests.HybridDictionaryAddTests/Add_Invalid failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Collections.Specialized.Tests.HybridDictionaryAddTests/Add_Invalid(count: 50, caseInsensitive: False)` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0, Object arg1) at System.SR.Format(String resourceFormat, Object p1, Object p2) at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add) at System.Collections.Hashtable.Add(Object key, Object value) at System.Collections.Specialized.HybridDictionary.Add(Object key, Object value) at System.Collections.Specialized.Tests.HybridDictionaryAddTests.<>c__DisplayClass3_0.b__1() Build : Master - 20170609.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170609.02/workItem/System.Collections.Specialized.Tests/analysis/xunit/System.Collections.Specialized.Tests.HybridDictionaryAddTests~2FAdd_Invalid(count:%2050,%20caseInsensitive:%20False) +20857 area-System.Collections "Test: System.Collections.Generic.Tests.BadlyBehavingComparableComparersTests/EqualityComparer_SerializationRoundtrip failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Collections.Generic.Tests.BadlyBehavingComparableComparersTests/EqualityComparer_SerializationRoundtrip` has failed. System.ArgumentNullException : Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.Runtime.Serialization.ObjectManager.DoFixups() at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(BinaryParser serParser, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream) at System.Collections.Generic.Tests.ComparersGenericTests`1.EqualityComparer_SerializationRoundtrip() Build : Master - 20170609.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170609.02/workItem/System.Collections.Tests/analysis/xunit/System.Collections.Generic.Tests.BadlyBehavingComparableComparersTests~2FEqualityComparer_SerializationRoundtrip +20858 area-System.ComponentModel "Test: System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests/Validate_CantConvertValueToTargetType_ThrowsException failed with ""System.ArgumentNullException""" "Opened on behalf of @Jiayili1 The test `System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests/Validate_CantConvertValueToTargetType_ThrowsException(type: typeof(double), minimum: \""1\"", maximum: \""3\"")` has failed. Assert.Throws() Failure\r Expected: typeof(System.Exception)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0, Object arg1) at System.SR.Format(String resourceFormat, Object p1, Object p2) at System.ComponentModel.BaseNumberConverter.FromStringError(String failedText, Exception innerException) at System.ComponentModel.BaseNumberConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value) at System.ComponentModel.TypeConverter.ConvertFrom(Object value) at System.ComponentModel.DataAnnotations.RangeAttribute.<>c__DisplayClass22_0.b__2(Object value) at System.ComponentModel.DataAnnotations.RangeAttribute.IsValid(Object value) at System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(Object value, ValidationContext validationContext) at System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext) at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext) at System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests.<>c__DisplayClass2_0.b__0() Build : Master - 20170609.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170609.02/workItem/System.ComponentModel.Annotations.Tests/analysis/xunit/System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests~2FValidate_CantConvertValueToTargetType_ThrowsException(type:%20typeof(double),%20minimum:%20%5C%221%5C%22,%20maximum:%20%5C%223%5C%22)" +20859 area-System.ComponentModel "Test: System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests/Validate_Invalid failed with ""Xunit.Sdk.AllException""" Opened on behalf of @Jiayili1 The test `System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests/Validate_Invalid` has failed. Assert.All() Failure: 4 out of 22 items in the collection did not pass.\r [21]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure\r Expected: typeof(System.ComponentModel.DataAnnotations.ValidationException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format\r at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)\r at System.String.Format(String format, Object arg0, Object arg1)\r at System.SR.Format(String resourceFormat, Object p1, Object p2)\r at System.ComponentModel.TypeConverter.GetConvertFromException(Object value)\r at System.ComponentModel.TypeConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)\r at System.ComponentModel.BaseNumberConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)\r at System.ComponentModel.TypeConverter.ConvertFrom(Object value)\r at System.ComponentModel.DataAnnotations.RangeAttribute.<>c__DisplayClass22_0.b__2(Object value)\r at System.ComponentModel.DataAnnotations.RangeAttribute.IsValid(Object value)\r at System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(Object value, ValidationContext validationContext)\r at System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext)\r at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext)\r at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.<>c__DisplayClass8_0.b__0()\r at Xunit.Assert.RecordException(Action testCode)\r [20]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure\r Expected: typeof(System.ComponentModel.DataAnnotations.ValidationException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format\r at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)\r at System.String.Format(String format, Object arg0, Object arg1)\r at System.SR.Format(String resourceFormat, Object p1, Object p2)\r at System.ComponentModel.TypeConverter.GetConvertFromException(Object value)\r at System.ComponentModel.TypeConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)\r at System.ComponentModel.BaseNumberConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)\r at System.ComponentModel.TypeConverter.ConvertFrom(Object value)\r at System.ComponentModel.DataAnnotations.RangeAttribute.<>c__DisplayClass22_0.b__2(Object value)\r at System.ComponentModel.DataAnnotations.RangeAttribute.IsValid(Object value)\r at System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(Object value, ValidationContext validationContext)\r at System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext)\r at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext)\r at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.<>c__DisplayClass8_0.b__0()\r at Xunit.Assert.RecordException(Action testCode)\r [15]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure\r Expected: typeof(System.ComponentModel.DataAnnotations.ValidationException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format\r at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)\r at System.String.Format(String format, Object arg0, Object arg1)\r at System.SR.Format(String resourceFormat, Object p1, Object p2)\r at System.ComponentModel.TypeConverter.GetConvertFromException(Object value)\r at System.ComponentModel.TypeConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)\r at System.ComponentModel.BaseNumberConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)\r at System.ComponentModel.TypeConverter.ConvertFrom(Object value)\r at System.ComponentModel.DataAnnotations.RangeAttribute.<>c__DisplayClass22_0.b__2(Object value)\r at System.ComponentModel.DataAnnotations.RangeAttribute.IsValid(Object value)\r at System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(Object value, ValidationContext validationContext)\r at System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext)\r at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext)\r at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.<>c__DisplayClass8_0.b__0()\r at Xunit.Assert.RecordException(Action testCode)\r [14]: Xunit.Sdk.ThrowsException: Assert.Throws() Failure\r Expected: typeof(System.ComponentModel.DataAnnotations.ValidationException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format\r at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)\r at System.String.Format(String format, Object arg0, Object arg1)\r at System.SR.Format(String resourceFormat, Object p1, Object p2)\r at System.ComponentModel.TypeConverter.GetConvertFromException(Object value)\r at System.ComponentModel.TypeConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)\r at System.ComponentModel.BaseNumberConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)\r at System.ComponentModel.TypeConverter.ConvertFrom(Object value)\r at System.ComponentModel.DataAnnotations.RangeAttribute.<>c__DisplayClass22_0.b__2(Object value)\r at System.ComponentModel.DataAnnotations.RangeAttribute.IsValid(Object value)\r at System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(Object value, ValidationContext validationContext)\r at System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext)\r at System.ComponentModel.DataAnnotations.ValidationAttribute.Validate(Object value, ValidationContext validationContext)\r at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.<>c__DisplayClass8_0.b__0()\r at Xunit.Assert.RecordException(Action testCode) Stack Trace: at System.ComponentModel.DataAnnotations.Tests.ValidationAttributeTestBase.Validate_Invalid() Build : Master - 20170609.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170609.02/workItem/System.ComponentModel.Annotations.Tests/analysis/xunit/System.ComponentModel.DataAnnotations.Tests.RangeAttributeTests~2FValidate_Invalid +20860 area-System.ComponentModel "Test: System.ComponentModel.Primitives.Tests.CategoryAttributeTests/CategoryNames failed with ""Xunit.Sdk.EqualException""" "Opened on behalf of @Jiayili1 The test `System.ComponentModel.Primitives.Tests.CategoryAttributeTests/CategoryNames(attribute: CategoryAttribute { Category = \""Default\"", TypeId = typeof(System.ComponentModel.CategoryAttribute) }, n...` has failed. Assert.Equal() Failure\r ? (pos 0)\r Expected: Misc\r Actual: Default\r ? (pos 0) Stack Trace: at System.ComponentModel.Primitives.Tests.CategoryAttributeTests.CategoryNames(CategoryAttribute attribute, String name) Build : Master - 20170609.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170609.02/workItem/System.ComponentModel.Primitives.Tests/analysis/xunit/System.ComponentModel.Primitives.Tests.CategoryAttributeTests~2FCategoryNames(attribute:%20CategoryAttribute%20%7B%20Category%20=%20%5C%22Default%5C%22,%20TypeId%20=%20typeof(System.ComponentModel.CategoryAttribute)%20%7D,%20n..." +20861 area-System.ComponentModel "Test: System.ComponentModel.Tests.ArrayConverterTests/ConvertTo_WithContext failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.ComponentModel.Tests.ArrayConverterTests/ConvertTo_WithContext` has failed. System.ArgumentNullException : Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.ComponentModel.ArrayConverter.ConvertTo(ITypeDescriptorContext context, CultureInfo culture, Object value, Type destinationType) at System.ComponentModel.Tests.ConverterTestBase.ConvertTo_WithContext(Object[,] data, TypeConverter converter) at System.ComponentModel.Tests.ArrayConverterTests.ConvertTo_WithContext() Build : Master - 20170609.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170609.02/workItem/System.ComponentModel.TypeConverter.Tests/analysis/xunit/System.ComponentModel.Tests.ArrayConverterTests~2FConvertTo_WithContext +20862 area-System.ComponentModel "Test: System.ComponentModel.Tests.CultureInfoConverterTest/ConvertToString failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.ComponentModel.Tests.CultureInfoConverterTest/ConvertToString` has failed. Assert.Equal() Failure\r Expected: (Default)\r Actual: (null) Stack Trace: at System.ComponentModel.Tests.CultureInfoConverterTest.ConvertToString() Build : Master - 20170609.02 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170609.02/workItem/System.ComponentModel.TypeConverter.Tests/analysis/xunit/System.ComponentModel.Tests.CultureInfoConverterTest~2FConvertToString +20863 area-System.Collections Workaround System.Collections.Tests to fix 150 failures in uap due to codegen bug There is a bug in .NET Native's codegen that when running the Collections tests in retail mode (optimized and inlined) there is 150 failures due to codegen. If we run the tests in check mode they wouldn't fail. So this is to workaround that by disabling optimizations and inlining through an embedded .rd.xml file, so that we get those tests passing while this is fixed. cc: @danmosemsft @morganbr +20865 area-System.Drawing Strange bug: KnownColorTable.InitColorNameTable - constant initialization sets all values to null? Steps to reproduce: - Start debugging on L188 in System.Drawing.Common.KnownColorTable ![untitled](https://user-images.githubusercontent.com/1275900/26967236-b5f66ec8-4d27-11e7-8600-68be3c5de9b6.png) - Step over the first assignment to `values[0]`: ![untitled](https://user-images.githubusercontent.com/1275900/26967271-cf753eba-4d27-11e7-83eb-0789a2d7fdab.png) Observe that values is still null, even though everything has already been assigned... This is causing a Debug assertion running the unit tests +20866 area-System.Drawing [refactoring] There are 2 copies of KnownColorTable in corefx One in System.Drawing.Primitives and one in System.Drawing.Primitives These should be moved to src/common +20867 area-System.Drawing Add Pens/Brushes tests Fixes #20866 Fixes #20865 /cc @mellione +20869 area-Infrastructure Update C# compiler to RTM version Looks like we're using Roslyn 2.0-rc, which has some bugs - e.g. https://github.com/dotnet/corefx/pull/20813#issuecomment-307258057 We should upgrade to RTM version (maybe even latest). +20870 area-Serialization Cross framework serialization finish up This PR is intended to be the last piece to make serialization work across Desktop and Core. ## TODO - [x] **mscorlib shim as default entrance point for BinaryFormatter** https://github.com/dotnet/corefx/pull/20879 - [x] **CookieContainer data storage (Hashtable vs Dictionary)** - [x] **Manual System.dll façade for TreeSet and CookieVariant** https://github.com/dotnet/corefx/pull/20988 - [X] **Remaining manual equality checks in test code** [@krwq] - [x] **OrdinalIgnoreCaseComparer does not exist on netfx** https://github.com/dotnet/coreclr/pull/12215 & https://github.com/dotnet/coreclr/pull/12267 - [x] **Fix Uri.OriginalString and uncomment equality check** [@krwq] - [x] **Fix Cookie.TimeStamp and uncomment equality check** [@krwq] - [x] **Waiting for https://github.com/dotnet/coreclr/pull/12267 to come into corefx** ## Status Read from left to right. E.g.: _Core deserializes to Core_ | | Core | Desktop | | ------------- | ------------- | ------------- | | Core | x | x | | Desktop | x | x | +20872 area-System.Net Fix HTTP/2 option setting in WinHttpHandler The WinHTTP team has recommended that we always set the HTTP/2 options explicitly when setting up the WinHTTP request handle. Future versions of Windows might adjust the WinHTTP default value for this setting. So, by always setting the value at the WinHTTP layer, we can ensure that we have a stable default value at the .NET layer. +20873 area-Infrastructure Security Build Definition "Introducing build definition that will run security tools required to comply with Security Development Lifecycle (SDL). The build definition puts together VSTS extensions that run the tools, analyze logs, and upload results to Trust Services Automation that creates workitems for identified security issues. List of tools included in this definition are: 1. BinSkim - validates compiler/linker settings and other security-relevant binary characteristics. https://github.com/Microsoft/binskim 2. APIScan - determines whether or not the software complies with the API Usage Standard of the Interoperability Policy. 3. CredScan - index and scan for credentials or other sensitive content. 4. PoliCheck - scan code, code comments, and content for words that may be sensitive for legal, cultural, or geopolitical reasons. Approach followed in this build is: 1. Get NuGet packages corresponding to the specified official build. 2. Extract packages to `$(Build.SourcesDirectory)\security` 3. Run BinSkim and APIScan on the extracted packages 4. Get sources corresponding to the official build. This means checkout at the SHA listed version.txt 5. Run CredScan and PoliCheck on the sources. Running this build identified the following issues https://msazure.visualstudio.com/defaultcollection/One/_workitems?tempQueryId=f4c69d04-1a80-4fef-ad4b-8f0dd0a8af04 @morganbr @weshaggard @chcosta @dagood PTAL Cc @gkhanna79 Edit 6/12: Described the approach for the build, and updated the query link. Edit 6/12: Fixed type ""Trust Services Automation""" +20875 area-Infrastructure Consider having a way to systematically check styles locally before pushing to PR For external contributors (like me) and probably everyone else, it would be nice to have a way to check some of the formatting rules locally before pushing (i.e. as a build target or a script on the cmdline). I'm running on linux so I don't have VS and don't get the stylecop stuff there. If there was a convenient way to run the style check locally I could be a better citizen and not push things that violate style rules (at least not as often) due to not noticing things or not knowing certain rules - and it would probably make the experience nicer for the reviewers as well, so they could focus on content, not formatting. I'm thinking something like ./stylecop.sh in the root of the repo is the experience I'd be looking for. Other suggestions that were raised were the following workflow: 1. commit your changes 2. run https://github.com/dotnet/codeformatter 3. revert all changes except those in the code you were working on 4. commit formatting fixes or squash into previous commit Of course that whole workflow could be done locally. If this is the sort of workflow we want (I'm fine with that option too), can we make tooling to make it easier as part of the corefx repo? For instance, if (2) could be told how many commits to review and use `git whatchanged HEAD~k` where `k` is the number you provided to figure out which files were touched, that would be awesome. If we want to agree on how changes like this might be done, I can happily help with the git-foo as this is one of my specialties ;) +20876 area-System.IO Directory and file exists methods could be more efficient Related to #19717 Exists methods have a try-catch for error cases and they normalize, which is not necessary (at least on Windows). As all error cases return false, we can remove most of this overhead. https://github.com/dotnet/corefx/blob/master/src/System.IO.FileSystem/src/System/IO/File.cs#L181-L210 The only pre-emptive check we might want to keep from GetFullPath is to return false if the passed in path contains an embedded null. Maybe have a `FileSystem.FileExistsFast`? This is the current Windows one: https://github.com/dotnet/corefx/blob/master/src/System.IO.FileSystem/src/System/IO/File.cs#L181-L210 Unix is already in much better state. I assume that crappy and partial (relative) paths will work. Tests for bad and relative paths are critical, need to validate existing coverage and expand if necessary. +20878 area-Infrastructure Enable two new queues (Suse SLES 12) and (Fedora 26) Suse SLES 12 and Fedora 26 need to be supported for Core 2.0 as well: https://github.com/dotnet/core-eng/issues/861 They ran well in staging, now enable them in Prod corefx official runs. +20879 area-Serialization Using mscorlib shim as default resolving assembly for BinaryFormatter serialization instead of System.Private.Corelib If a type gets serialized in netfx which lives in mscorlib the serialized blob won't contain the Assembly Information (because mscorlib is special cased to remove unnecessary blob info):  System.Collections.Comparer CompareInfo System.Globalization.CompareInfo  System.Globalization.CompareInfom_name win32LCID culture m_SortVersion System.Globalization.SortVersionen-US  ` BinaryFormatter checks if that is the case here: https://github.com/dotnet/corefx/blob/0ebc867d6bad9d777dd61afb78d0445c86143b34/src/System.Runtime.Serialization.Formatters/src/System/Runtime/Serialization/Formatters/Binary/BinaryParser.cs#L430-L435 and will use the default assembly for resolving the type. In netfx the default assembly is mscorlib.dll because it gets checked by `typeof(string).Assembly`. In Core this is System.Private.Corelib.dll which doesn't contain all the types which are living in mscorlib in netfx. Therefore we should change the default assembly to the mscorlib shim which contains manual and auto-generated TypeForwards. The `Assembly.Load(string)` call should also work in uap/uapaot as the mscorlib shim is already loaded. This fixes e.g. that the correct System.Collections.Comparer is picked when trying to deserialize in core. Before this change this one was resolved (internal) https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Collections/Comparer.cs instead of this one (public) https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/src/System/Collections/Comparer.cs Thanks @ericstj ## Optimization This PR also improves the serialization payload dramatically and brings it pack on pair with netfx. Testing with byte.MinValue. ### Before **Base64:** AAEAAAD/////AQAAAAAAAAAMAgAAAEttc2NvcmxpYiwgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkEAQAAAAtTeXN0ZW0uQnl0ZQEAAAAHbV92YWx1ZQACAAs= **UTF8:** ����������� ���Kmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089��� System.Byte���m_value�� ### After **Base 64:** AAEAAAD/////AQAAAAAAAAAEAQAAAAtTeXN0ZW0uQnl0ZQEAAAAHbV92YWx1ZQACAAs= **UTF-8:** �������������� System.Byte���m_value�� cc @weshaggard @danmosemsft @morganbr @stephentoub +20881 area-System.IO SerialPort: Verify GetPortNames is consistent This improves and extends an existing test which is supposed to verify that all the ports which are returned by `SerialPort.GetPortNames` are also returned by `PortHelpers.GetPorts`. The new tests would have found the regression that was fixed in #20668 and #20842 +20882 area-Infrastructure Use NuGetPush target from BuildTools "skip ci please Use `NuGetPush` target added to BuildTools in https://github.com/dotnet/buildtools/pull/1543. This includes per-package retries, to fix the NuGet push hang (https://github.com/dotnet/core-eng/issues/434) in CoreFX master. Inline script reviews are annoying, so I pulled out diffs: Library package push step: ```diff --ApiKey $(MyGetApiKey) -PipelineSrcDir $(Pipeline.SourcesDirectory) -ConfigurationGroup $(PB_ConfigurationGroup) -AzureContainerPackageGlob $(PB_AzureContainerPackageGlob) -MyGetFeedUrl $(PB_MyGetFeedUrl) +-ApiKey $(MyGetApiKey) -ConfigurationGroup $(PB_ConfigurationGroup) -PackagesGlob $(Pipeline.SourcesDirectory)\packages\AzureTransfer\$(PB_ConfigurationGroup)\$(PB_AzureContainerPackageGlob) -MyGetFeedUrl $(PB_MyGetFeedUrl) -param($ApiKey, $PipelineSrcDir, $ConfigurationGroup, $AzureContainerPackageGlob, $MyGetFeedUrl) +param($ApiKey, $ConfigurationGroup, $PackagesGlob, $MyGetFeedUrl) + if ($ConfigurationGroup -ne ""Release"") { exit } -& $env:CustomNuGetPath push $PipelineSrcDir\packages\AzureTransfer\$ConfigurationGroup\$AzureContainerPackageGlob $ApiKey -Source $MyGetFeedUrl -Timeout 3600 + +.\build-managed.cmd -- /t:NuGetPush /v:Normal ` +/p:NuGetExePath=$env:CustomNuGetPath ` +/p:NuGetApiKey=$ApiKey ` +/p:NuGetSource=$MyGetFeedUrl ` +/p:PackagesGlob=$PackagesGlob ``` Symbol package push step: ```diff --ApiKey $(MyGetApiKey) -ConfigurationGroup $(PB_ConfigurationGroup) -MyGetFeedUrl $(PB_MyGetFeedUrl) +-ApiKey $(MyGetApiKey) -ConfigurationGroup $(PB_ConfigurationGroup) -PackagesGlob $(Build.StagingDirectory)\IndexedSymbolPackages\*.nupkg -MyGetFeedUrl $(PB_MyGetFeedUrl) -param($ApiKey, $ConfigurationGroup, $CustomNuGetPath, $MyGetFeedUrl) +param($ApiKey, $ConfigurationGroup, $PackagesGlob, $MyGetFeedUrl) + if ($ConfigurationGroup -ne ""Release"") { exit } if ($env:SourceBranch.StartsWith(""release/"")) { exit } -& $env:CustomNuGetPath push $env:Build_StagingDirectory\IndexedSymbolPackages\*.nupkg $ApiKey -Source $MyGetFeedUrl -Timeout 3600 + +.\build-managed.cmd -- /t:NuGetPush /v:Normal ` +/p:NuGetExePath=$env:CustomNuGetPath ` +/p:NuGetApiKey=$ApiKey ` +/p:NuGetSource=$MyGetFeedUrl ` +/p:PackagesGlob=$PackagesGlob ```" +20883 area-System.Data Add SqlCommandBuilder to SqlClient Also modifies some TdsParser query metadata parsing code. Some fields, like the query TableName, weren't being set correctly, so dynamic SQL query generation would fail in the AdapterTests. Mostly ported code from Framework. +20884 area-System.Drawing Fix Behavior Differences in Unix System.Drawing.Common This is a tracking issue to mark failing tests against. I will fill this out with more details as I understand them. +20885 area-Infrastructure Add Debian 9 as an optional queue which can be requested specifically "Add extra "","" at the end of queues to make diff tools happiler." +20886 area-System.Runtime Adding void* APIs for Add and Subtract For https://github.com/dotnet/corefx/issues/20845 <= Pending API review cc @jkotas, @shiftylogic, @KrzysztofCwalina +20887 area-System.Drawing [WIP] Add Unix implementation for System.Drawing.Common "This is a port of mono's System.Drawing implementation, for use with .NET Core. The goal is to share this source code directly with mono, and build for all configurations from the same codebase. In the present version, the code files have stayed in the same folder structure that they had in mono. This made it easier for me to make sure that mono's build continued to work using the same files. Ultimately, we should condense the folders down to match other corefx projects, and condense implementations as much as possible, as well. Open questions: * What should we do about `[MonoTODO]` attributes? * ~~What should we do about the `Locale` usage?~~ Removed. * What icons should be used in the `SystemIcons` class? I've taken the ""Error"" icon from mono and returned it for all system icons currently. @marek-safar @qmfrederik @hughbe " +20888 area-System.Collections System.Collections.Tests fail with Serialization issue in UAPAOT and UAP There are two different tests failing here: ### [EqualityComparer_SerializationRoundtrip](https://github.com/dotnet/corefx/blob/master/src/System.Collections/tests/Generic/Comparers/EqualityComparer.Generic.Serialization.Tests.cs#L16-L29) This test is failing for all the Test class that inherit from this base class: ``` System.Collections.Generic.Tests.UInt64ComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.DecimalComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.ByteComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.UInt32EnumComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.StringComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.DoubleComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.UInt16EnumComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.IntPtrComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.NullableIntPtrComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.SByteComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.Int16EnumComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.ByteEnumComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.UInt64EnumComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.Int32ComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.NullableInt32ComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.SByteEnumComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.NullableUInt32ComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.EquatableComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.UIntPtrComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.Int16ComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.SingleComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.Int32EnumComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.NullableUIntPtrComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.Int64ComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.UInt16ComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.Int64EnumComparersTests.EqualityComparer_SerializationRoundtrip [FAIL] System.Collections.Generic.Tests.UInt32ComparersTests.EqualityComparer_SerializationRoundtrip [FAIL ``` The failing error is: ``` System.Reflection.MissingMetadataException : 'System.Collections.Generic.GenericEqualityComparer<>' is missing metadata. For more information, please visit http://go.microsoft.com/fwlink/?LinkID=392859 ``` ### [IGenericSharedAPI_SerializeDeserialize](https://github.com/dotnet/corefx/blob/master/src/Common/tests/System/Collections/IEnumerable.Generic.Serialization.Tests.cs#L15-L39) This test is failing for two test classes that implement this base class: * SortedDictionary_Generic_Tests * SortedList_Generic_Tests With error: ``` System.Reflection.MissingMetadataException : This operation cannot be carried out because metadata for the following object was removed for performance reasons:\n\n EETypeRva:0x00001EA0\n\nNo further information is available. Rebuild in debug mode for better information.\n\n ``` +20890 area-System.Net Fix UnauthorizedAccessException for Sockets tests running in app-container In UAP mode, all tests are running inside an UWP app. The app doesn't have direct access to most of the file system, which causes System.UnauthorizedAccessException. Now all innerloop Functional tests for System.Net.Sockets should run clean on UAP mode. Fix: #20302 +20891 area-System.Collections Disable UapAot System.Collections tests related to serialization issue This should bring System.Collections.Tests failures to 7, which are caused by the same issue in only two different tests. cc: @danmosemsft FYI: @morganbr +20892 area-Serialization Remove XmlSchemaProviderAttribute.cs from Microsoft.XmlSerializer.Generator Remove Https://github.com/dotnet/corefx/blob/master/src/Microsoft.XmlSerializer.Generator/src/Microsoft.XmlSerializer.Generator.csproj#L111 https://github.com/dotnet/corefx/blob/master/src/Microsoft.XmlSerializer.Generator/src/Microsoft.XmlSerializer.Generator.csproj#L132 https://github.com/dotnet/corefx/blob/master/src/Microsoft.XmlSerializer.Generator/src/Microsoft.XmlSerializer.Generator.csproj#L135 from the project +20893 area-System.Net Test failure: System.Net.Sockets.Tests.DualModeConnectAsync / DualModeConnectAsync_Static_DnsEndPointToHost_Helper ## Types of failures ``` Timed out while waiting for connection Expected: True Actual: False at System.Net.Sockets.Tests.DualModeConnectAsync.DualModeConnectAsync_Static_DnsEndPointToHost_Helper(IPAddress listenOn, Boolean dualModeServer) in /root/corefx-1213655/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 610 ``` ## History of failures Day | Build | OS -- | -- | -- 2017/9/14 | 20170914.01 | OSX10.12 2017/10/29 | 20171029.01 | OSX10.12 2017/12/11 | 20171211.05 | Fedora25 3/31 | 20180331.05 | OSX10.12 # Original report https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release_prtest/4505/consoleFull#18036880242d31e50d-1517-49fc-92b3-2ca637122019 ``` System.Net.Sockets.Tests.DualModeConnectAsync.DualModeConnectAsync_Static_DnsEndPointToHost_Helper(listenOn: 127.0.0.1, dualModeServer: False) [FAIL] 19:07:03 Timed out while waiting for connection 19:07:03 Expected: True 19:07:03 Actual: False 19:07:03 Stack Trace: 19:07:03 Using as the test runtime folder. 19:07:03 ls: /cores: No such file or directory 19:07:03 Running tests... Start time: 19:07:03 19:07:03 Commands: 19:07:03 python DumplingHelper.py install_dumpling 19:07:03 __TIMESTAMP=`python DumplingHelper.py get_timestamp` 19:07:03 chmod +x /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/bin/testhost/netcoreapp-OSX-Release-x64//dotnet 19:07:03 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/bin/testhost/netcoreapp-OSX-Release-x64//dotnet xunit.console.netcore.exe System.Text.Encoding.CodePages.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapptests -notrait category=nonosxtests -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing 19:07:03 python DumplingHelper.py collect_dump $\ `pwd` System.Text.Encoding.CodePages.Tests /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/bin/runtime/netcoreapp-OSX-Release-x64/,/Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/bin/AnyOS.AnyCPU.Release/System.Text.Encoding.CodePages.Tests/netstandard/ 19:07:03 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/bin/AnyOS.AnyCPU.Release/System.Text.Encoding.CodePages.Tests/netstandard /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Text.Encoding.CodePages/tests 19:07:03 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(654,0): at System.Net.Sockets.Tests.DualModeConnectAsync.DualModeConnectAsync_Static_DnsEndPointToHost_Helper(IPAddress listenOn, Boolean dualModeServer) 19:07:03 System.Net.Sockets.Tests.DualModeConnectionlessSendTo.SendToV4IPEndPointToV4Host_Success [FAIL] 19:07:03 System.TimeoutException : The operation has timed out. 19:07:03 Stack Trace: 19:07:03 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(1151,0): at System.Net.Sockets.Tests.DualModeConnectionlessSendTo.DualModeSendTo_IPEndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) 19:07:03 System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.BeginSendToV6IPEndPointToV6Host_Success [FAIL] 19:07:03 System.TimeoutException : The operation has timed out. 19:07:03 Stack Trace: 19:07:03 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release_prtest/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs(1252,0): at System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.DualModeBeginSendTo_EndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) 19:07:03 Using as the test runtime fold ``` +20894 area-System.Drawing Add ColorTranslator tests +20897 area-System.Drawing [porting] System.Drawing.Common uses its own InvalidEnumArgumentException, breaking tests "The following test passes with netfx: ```cs [Theory] [InlineData(StringTrimming.None - 1)] [InlineData(StringTrimming.EllipsisPath + 1)] public void Trimming_SetInvalid_ThrowsInvalidEnumArgumentException(StringTrimming trimming) { var format = new StringFormat(); Assert.Throws(""value"", () => format.Trimming = trimming); } ```" +20898 area-System.Drawing Add StringFormat and CharacterRange tests Fixes #20897 +20899 area-System.Runtime Add Environment.UserName() equivalent to dotnet core Hello, I've been trying to find a way to get the current session user using dot net core 1.1 in a console project but in vain. Microsoft docs doesn't contain any information about this or it's me missing something. Is this possible in dot net core? +20901 area-System.Drawing Add System.Drawing.Region tests A 50-50 mix of tests cleanup up from Mono, and tests I wrote myself @mellinoe +20902 area-Meta APIs out of scope in CoreFX - 'CoreFXExtensions' repo? Over time we have identified bunch of useful APIs, which we think don't belong into CoreFX repo, because they are more advanced, or just don't fit. Here's the list to keep track of them with common explanation & list which can be reused later if/when we (or community) creates something like CoreFXExtensions * [**PowerCollections**](http://powercollections.codeplex.com/) from CodePlex - Originally created by Wintellect for .NET team. The license should be compatible to grab it. It is generally useful API set * **Graphs** APIs - #17403. Options/alternatives: [MSAGL](https://github.com/Microsoft/automatic-graph-layout) - see https://github.com/dotnet/corefx/issues/17403#issuecomment-307589692, or CodePlex [QuickGraph](http://quickgraph.codeplex.com/) * **ParallelExtensionExtras** (@stephentoub mentioned it in #699) * **Sorting algorithms for nearly-sorted inputs** (see #2252) PLEASE: If you want to argue that something is in scope of CoreFX, vs. not, please take the discussion into specific issue. I will delete such replies from this thread. +20903 area-System.Data Additional API for DbProviderFactories in .NET Core # Latest Proposal Copied from latest API approval: https://github.com/dotnet/corefx/issues/20903#issuecomment-342605350 ```C# public static class DbProviderFactories { // exiting members public static DbProviderFactory GetFactory(string providerInvariantName); public static DbProviderFactory GetFactory(DataRow providerRow); public static DbProviderFactory GetFactory(DbConnection connection); public static DataTable GetFactoryClasses(); // new members /// /// Registers a provider factory using the assembly qualified name of the factory and an /// invariant name /// public static void RegisterFactory(string providerInvariantName, string factoryTypeAssemblyQualifiedName); /// /// Registers a provider factory using the provider factory type and an invariant name /// public static void RegisterFactory(string providerInvariantName, Type factoryType); /// /// Extension method to register a provider factory using the provider factory instance and /// an invariant name /// public static void RegisterFactory(string providerInvariantName, DbProviderFactory factory); /// /// Returns the provider factory instance if one is registered for the given invariant name /// public static bool TryGetFactory(string providerInvariantName, out DbProviderFactory factory); /// /// Removes the provider factory registration for the given invariant name /// public static bool UnregisterFactory(string providerInvariantName); /// /// Returns the invariant names for all the factories registered /// public static IEnumerable GetProviderInvariantNames(); } ``` # Original proposal Issue #4571 is about porting the existing surface of `DbProviderFactories` into .NET Core. This new issue is specifically about new API that needs to be added in .NET Core that does not (yet) exist in .NET Framework. `DbProviderFactories` on .NET Framework can only be initialized from .config files, and in order to make the API usable without .config files the new API is needed. The proposal by @FransBouma can be found in https://github.com/dotnet/standard/issues/356#issuecomment-307552750 and is repeated below: I've refactored the code a bit, the new API now looks like: ```cs public static void ConfigureFactory(Type providerFactoryClass); public static void ConfigureFactory(Type providerFactoryClass, string providerInvariantName); public static void ConfigureFactory(Type providerFactoryClass, string providerInvariantName, string name, string description); public static void ConfigureFactory(DbConnection connection); public static void ConfigureFactory(DbConnection connection, string providerInvariantName); public static void ConfigureFactory(DbConnection connection, string providerInvariantName, string name, string description); ``` Two new overloads are added. They'll use the fallback code for the providerInvariantName, as it is also present in netfx' auto-init code: it will use the namespace of the type. I've added this to avoid people making a typo in the name as for most factories I know (I don't really know of a dbproviderfactory where this isn't the case) the invariant name is equal to the namespace. ### Method usage / purpose ```cs public static void ConfigureFactory(Type providerFactoryClass) ``` **Description**: This method will register the factory instance contained in the specified type, under invariant name equal to the namespace of the specified type. It will leave name and description empty. **Purpose:** This method is meant to be the easiest way to register a factory. Most (if not all) ADO.NET providers use as invariant name the namespace of the factory type. ```cs public static void ConfigureFactory(Type providerFactoryClass, string providerInvariantName) ``` **Description**: This method will register the factory instance contained in the specified type, under invariant name specified in providerInvariantName. It will leave name and description empty. **Purpose:**: This method can be used to register a factory for the ADO.NET providers which don't use the namespace as the invariant name, and it can also be used to register a different factory type under a well-known invariant name, e.g. in the case of a wrapping factory for ADO.NET profiling. ```cs public static void ConfigureFactory(Type providerFactoryClass, string providerInvariantName, string name, string description) ``` **Description**: This method will register the factory instance contained in the specified type, under invariant name specified in providerInvariantName and will fill in the name and description values for the factory. **Purpose:**: This method is equal to `ConfigureFactory(type, string)` and can be used to fill in the additional two columns in the factory table if a user requires that. ```cs public static void ConfigureFactory(DbConnection connection) ``` **Description**: This method will register the factory instance obtained from the specified connection, under invariant name equal to the namespace of the factory instance's type. It will leave name and description empty. **Purpose:** This method is meant to be the easiest way to register a factory if the user doesn't know the factory type but does know the connection type. As DbProviderFactory registration was mainly hidden for most users it can very well be they're not familiar with the factory types, so this method and its overloads make it easier for them to register a factory. Most (if not all) ADO.NET providers use as invariant name the namespace of the factory type. ```cs public static void ConfigureFactory(DbConnection connection, string providerInvariantName) ``` **Description**: This method will register the factory instance obtained from the specified connection, under invariant name specified. It will leave name and description empty. **Purpose:**: This method can be used to register a factory for the ADO.NET providers which don't use the namespace as the invariant name, and it can also be used to register a different factory type under a well-known invariant name, e.g. in the case of a wrapping factory for ADO.NET profiling. ```cs public static void ConfigureFactory(DbConnection connection, string providerInvariantName, string name, string description) ``` **Description**: This method will register the factory instance obtained from the specified connection, under invariant name specified in providerInvariantName and will fill in the name and description values for the factory. **Purpose:**: This method is equal to `ConfigureFactory(DbConnection, string)` and can be used to fill in the additional two columns in the factory table if a user requires that. +20904 area-Serialization Fixing BinaryFormatter member names of parent members to align with netfx @ericstj @stephentoub @danmosemsft @morganbr This is the fix to the offline discussion. After refactoring BinaryFormatter code it seems that we got rid of parent type names. This is now fixed and produces the same results as netfx. ---------- Issue description: Serializing the object “new System.ComponentModel.BindingList(new[] { 32, 45 });” creates the following results: Netfx: ``` ����������� [1]���ISystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089���System.ComponentModel.BindingList`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]��� addNewPosraiseListChangedEventsraiseItemChangedEventsallowNew allowEdit allowRemoveuserSetAllowNewCollection`1+items������� System.Int32[][1]����� ��� ���[1]��� ���-��� ``` NetCoreApp: ``` ����������� [1]���ISystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089���System.ComponentModel.BindingList`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]��� addNewPosraiseListChangedEventsraiseItemChangedEventsallowNew allowEdit allowRemoveuserSetAllowNewitems������� System.Int32[][1]����� ��� ���[1]��� ���-��� ``` The difference is that the serialized name of the items field of the parent class Collection isn’t serialized correctly. Core <-> Core and NetFx <-> Netfx serialization works with the respective blobs. ------------- cc @danmosemsft @morganbr +20906 area-System.Drawing Add Matrix tests Again, 50-50 mono cleanup and handwritten tests +20910 area-Serialization Not able to install System.Runtime.Serialization.Json and System.Runtime.Serialization.Xml both in a project I have visual studio 17. My project is targeting net461 and netstandard1.6 I want to use System.Runtime.Serialization.Json and System.Runtime.Serialization.Xml. but I am facing issues. Steps to reproduce: 1. Install nuget System.Runtime.Serialization.Xml - 4.3.0 2. Now install nuget System.Runtime.Serialization.Json - 4.3.0 But when I am trying step 2 it uninstall System.Runtime.Serialization.Xml . How to use both nuget in code. ![capture](https://user-images.githubusercontent.com/16220515/27013697-b38d5698-4f06-11e7-8f78-1bde87a1e1d1.JPG) +20911 area-Infrastructure Publish regular alpha versions of vNext product "Goal: Provide great experience for early adopters to consume our vNext product. We should have regular (monthly-ish) alpha releases of vNext product. The idea is that every month we would publish last good build of tools, libraries, runtime, etc. that work ""well"" together. If something go south, we can delist it. Motivation: Consuming myget daily feed is painful -- too many builds, changing too often. It's sometimes hard to find working combo. It is likely mostly about perception. What is the right technical solution? 1. Special myget feed with just the alpha monthly-ish bits 2. Regular alpha-previews on nuget 3. Special download of the tools bundle (CLI) on a web site cc @benaadams @NickCraver cc @weshaggard @mellinoe @ericstj " +20913 area-System.Drawing Add Bitmap tests 50-50 cleanup from Mono and handwritten tests +20914 area-System.ComponentModel Move InvalidEnumArgumentException to System.ComponentModel.Primitives Lays the groundwork for #20897 Note: is System.ComponentModel.Primitives the right place to put this? I thought about System.ComponentModel, but that library looks like its for interfaces only. The reason why this is necessary is because we need use InvalidEnumArgumentException in System.Drawing.Common. This exception resides in System.ComponentModel.TypeConverter right now, but we want System.ComponentModel.TypeConverter to depend on System.Drawing.Common in the future. +20918 area-System.Data "Tests under: System.Data.Common.Tests failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Data.Tests.Common.DataAdapterTest/FillLoadOption_Invalid` has failed. System.ArgumentNullException : Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0, Object arg1) at System.SR.Format(String resourceFormat, Object p1, Object p2) at System.Data.Common.ADP.InvalidEnumerationValue(Type type, Int32 value) at System.Data.Common.ADP.InvalidLoadOption(LoadOption value) at System.Data.Common.DataAdapter.set_FillLoadOption(LoadOption value) at System.Data.Tests.Common.DataAdapterTest.FillLoadOption_Invalid() Build : Master - 20170612.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170612.01/workItem/System.Data.Common.Tests/analysis/xunit/System.Data.Tests.Common.DataAdapterTest~2FFillLoadOption_Invalid +20919 area-System.Diagnostics "Test: System.Diagnostics.TraceSourceTests.DefaultTraceListenerClassTests/Fail_LogFileDirectoryNotFound failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.TraceSourceTests.DefaultTraceListenerClassTests/Fail_LogFileDirectoryNotFound` has failed. System.ArgumentNullException : Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0, Object arg1) at System.Diagnostics.DefaultTraceListener.WriteToLogFile(String message) at System.Diagnostics.DefaultTraceListener.Write(String message, Boolean useLogFile) at System.Diagnostics.DefaultTraceListener.WriteLine(String message, Boolean useLogFile) at System.Diagnostics.DefaultTraceListener.WriteLine(String message) at System.Diagnostics.TraceSourceTests.DefaultTraceListenerClassTests.TestDefaultTraceListener.WriteLine(String message) at System.Diagnostics.DefaultTraceListener.WriteAssert(String stackTrace, String message, String detailMessage) at System.Diagnostics.DefaultTraceListener.Fail(String message, String detailMessage) at System.Diagnostics.DefaultTraceListener.Fail(String message) at System.Diagnostics.TraceSourceTests.DefaultTraceListenerClassTests.Fail_LogFileDirectoryNotFound() Build : Master - 20170612.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170612.01/workItem/System.Diagnostics.TraceSource.Tests/analysis/xunit/System.Diagnostics.TraceSourceTests.DefaultTraceListenerClassTests~2FFail_LogFileDirectoryNotFound +20920 area-System.Diagnostics "Test: System.Diagnostics.TraceSourceTests.TraceClassTests/TraceTest02 failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.TraceSourceTests.TraceClassTests/TraceTest02` has failed. Assert.Equal() Failure\r ? (pos 88)\r Expected: ···be indented.\\r\ Fail: This failure is reported with a det···\r Actual: ···be indented.\\r\ This failure is reported with a detailed···\r ? (pos 88) Stack Trace: at System.Diagnostics.TraceSourceTests.TraceClassTests.TraceTest02() Build : Master - 20170612.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170612.01/workItem/System.Diagnostics.TraceSource.Tests/analysis/xunit/System.Diagnostics.TraceSourceTests.TraceClassTests~2FTraceTest02 +20921 area-System.Drawing "Tests under: System.Drawing.Primitives.Tests.ColorTests failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Drawing.Primitives.Tests.ColorTests/FromArgb_InvalidAlpha(alpha: -1)` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object[] args) at System.SR.Format(String resourceFormat, Object[] args) at System.Drawing.Color.CheckByte(Int32 value, String name) at System.Drawing.Color.FromArgb(Int32 alpha, Color baseColor) at System.Drawing.Primitives.Tests.ColorTests.<>c__DisplayClass20_0.b__0() Build : Master - 20170612.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170612.01/workItem/System.Drawing.Primitives.Tests/analysis/xunit/System.Drawing.Primitives.Tests.ColorTests~2FFromArgb_InvalidAlpha(alpha:%20-1) +20922 area-System.IO "Tests under: System.IO.Compression.Tests.zip_InvalidParametersAndStrangeFiles failed with ""System.ArgumentNullException""" "Opened on behalf of @Jiayili1 The test `System.IO.Compression.Tests.zip_InvalidParametersAndStrangeFiles/ZipArchiveEntry_InvalidUpdate(zipname: \""LZMA.zip\"")` has failed. Assert.Throws() Failure\r Expected: typeof(System.IO.InvalidDataException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.IO.Compression.ZipArchiveEntry.IsOpenable(Boolean needToUncompress, Boolean needToLoadIntoMemory, String& message) at System.IO.Compression.ZipArchiveEntry.ThrowIfNotOpenable(Boolean needToUncompress, Boolean needToLoadIntoMemory) at System.IO.Compression.ZipArchiveEntry.OpenInUpdateMode() at System.IO.Compression.ZipArchiveEntry.Open() at System.IO.Compression.Tests.zip_InvalidParametersAndStrangeFiles.<>c__DisplayClass3_0.b__0() Build : Master - 20170612.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170612.01/workItem/System.IO.Compression.Tests/analysis/xunit/System.IO.Compression.Tests.zip_InvalidParametersAndStrangeFiles~2FZipArchiveEntry_InvalidUpdate(zipname:%20%5C%22LZMA.zip%5C%22)" +20923 area-System.IO "Test: System.IO.Compression.Tests.ZipFileTest_Invalid/UnsupportedCompressionRoutine(zipName: \""LZMA.zip\"", throwsOnOpen: True) failed with ""System.ArgumentNullException""" "Opened on behalf of @Jiayili1 The test `System.IO.Compression.Tests.ZipFileTest_Invalid/UnsupportedCompressionRoutine(zipName: \""LZMA.zip\"", throwsOnOpen: True)` has failed. Assert.Throws() Failure\r Expected: typeof(System.IO.InvalidDataException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.IO.Compression.ZipArchiveEntry.IsOpenable(Boolean needToUncompress, Boolean needToLoadIntoMemory, String& message) at System.IO.Compression.ZipArchiveEntry.ThrowIfNotOpenable(Boolean needToUncompress, Boolean needToLoadIntoMemory) at System.IO.Compression.ZipArchiveEntry.OpenInReadMode(Boolean checkOpenable) at System.IO.Compression.ZipArchiveEntry.Open() at System.IO.Compression.Tests.ZipFileTest_Invalid.<>c__DisplayClass3_0.b__0() Build : Master - 20170612.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170612.01/workItem/System.IO.Compression.ZipFile.Tests/analysis/xunit/System.IO.Compression.Tests.ZipFileTest_Invalid~2FUnsupportedCompressionRoutine(zipName:%20%5C%22LZMA.zip%5C%22,%20throwsOnOpen:%20True)" +20924 area-System.IO "Tests under: System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests/GetVolumeLabel_Returns_CorrectLabel` has failed. Assert.Throws() Failure\r Expected: typeof(System.UnauthorizedAccessException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.IO.Win32Marshal.GetExceptionForWin32Error(Int32 errorCode, String path) at System.IO.Error.GetExceptionForWin32DriveError(Int32 errorCode, String driveName) at System.IO.DriveInfo.get_VolumeLabel() at System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests.g__DoDriveCheck7_0() at System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests.<>c.b__7_2() Build : Master - 20170612.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170612.01/workItem/System.IO.FileSystem.DriveInfo.Tests/analysis/xunit/System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests~2FGetVolumeLabel_Returns_CorrectLabel +20925 area-System.Linq "Tests under: System.Dynamic.Tests.DynamicObjectTests failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Dynamic.Tests.DynamicObjectTests/ConvertBuiltInExplicit` has failed. System.ArgumentNullException : Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object[] args) at System.SR.Format(String resourceFormat, Object[] args) at System.Linq.Expressions.Strings.DynamicObjectResultNotAssignable(Object p0, Object p1, Object p2, Object p3) at System.Dynamic.DynamicObject.MetaDynamic.BuildCallMethodWithResult[TBinder](MethodInfo method, TBinder binder, Expression[] args, DynamicMetaObject fallbackResult, Fallback`1 fallbackInvoke) at System.Dynamic.DynamicObject.MetaDynamic.CallMethodWithResult[TBinder](MethodInfo method, TBinder binder, Expression[] args, Fallback`1 fallback, Fallback`1 fallbackInvoke) at System.Dynamic.DynamicObject.MetaDynamic.CallMethodWithResult[TBinder](MethodInfo method, TBinder binder, Expression[] args, Fallback`1 fallback) at System.Dynamic.DynamicObject.MetaDynamic.BindConvert(ConvertBinder binder) at System.Dynamic.ConvertBinder.Bind(DynamicMetaObject target, DynamicMetaObject[] args) at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[] args, ReadOnlyCollection`1 parameters, LabelTarget returnLabel) at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args) at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0) at System.Dynamic.Tests.DynamicObjectTests.ConvertBuiltInExplicit() Build : Master - 20170612.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170612.01/workItem/System.Linq.Expressions.Tests/analysis/xunit/System.Dynamic.Tests.DynamicObjectTests~2FConvertBuiltInExplicit +20926 area-System.Net "Tests under: System.Net.Http.Tests.AuthenticationHeaderValueTest failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Tests.AuthenticationHeaderValueTest/Add_BadValues_Throws` has failed. Assert.Throws() Failure\r Expected: typeof(System.FormatException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(IFormatProvider provider, String format, Object arg0) at System.Net.Http.Headers.HttpHeaderParser.ParseValue(String value, Object storeValue, Int32& index) at System.Net.Http.Headers.HttpHeaders.ParseAndAddValue(String name, HeaderStoreItemInfo info, String value) at System.Net.Http.Headers.HttpHeaders.Add(String name, String value) at System.Net.Http.Tests.AuthenticationHeaderValueTest.<>c__DisplayClass7_0.b__0() Build : Master - 20170612.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170612.01/workItem/System.Net.Http.Unit.Tests/analysis/xunit/System.Net.Http.Tests.AuthenticationHeaderValueTest~2FAdd_BadValues_Throws +20927 area-System.ComponentModel Add tests for enum attributes in System.ComponentModel.Primitives ~I moved some code to ComponentModel.Primitives and saw that theres ~70% coverage. So here are some tests to bring it up to 100%.~ I've now split up this PR as it was v large. Together, they increase CC to 100% +20930 area-System.ComponentModel Add System.ComponentModel string attribute tests Similar code for each test class, but subtly different as some throw NREs and others don't in certain situations Extracted from #20927 +20931 area-System.ComponentModel Add System.ComponentModel.EventBasedAsync tests This increases CC to 100% in the library +20932 area-System.ComponentModel [netfx compat] CompareAttribute throws InvalidOperationException for multi-cased properties "The following code example passes with netfx: ```cs [Fact] public static void Validate_LowerAndUpperPropertyName_ThrowsInvalidOperationException() { CompareAttribute attribute = new CompareAttribute(nameof(CompareObject.comparepropertycased)); Assert.Equal(""'CurrentProperty' and 'comparepropertycased' do not match."", attribute.GetValidationResult(""b"", s_context).ErrorMessage); Assert.Equal(ValidationResult.Success, attribute.GetValidationResult(null, s_context)); } ``` In netcoreapp, this throws an InvalidOperationException: ``` System.ComponentModel.DataAnnotations.Tests.CompareAttributeTests.Validate_LowerAndUpperPropertyName_Success [FAIL ] System.InvalidOperationException : Sequence contains more than one matching element Stack Trace: at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate) at System.ComponentModel.DataAnnotations.CompareAttribute.GetDisplayNameForProperty(Type containerType, S tring propertyName) at System.ComponentModel.DataAnnotations.CompareAttribute.IsValid(Object value, ValidationContext validat ionContext) at System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, Validation Context validationContext) at System.ComponentModel.DataAnnotations.Tests.CompareAttributeTests.Validate_LowerAndUpperPropertyName_S uccess() ```" +20933 area-System.ComponentModel Cleanup and increase coverage of DisplayFormatAttribute Before #if netcoreapp was always false, so these tests never ran +20934 area-System.ComponentModel Add System.ComponentModel.Annotations tests +20937 area-Meta "Clarify guidance around ""Squash and Merge""" Fixes Issue https://github.com/dotnet/corefx/issues/20841 +20938 area-System.Runtime Bring SerializationFieldInfo back to BinaryFormatter in corefx We initially left SerializationFieldInfo out of corefx as it wasn't necessary given previous goals around BinaryFormatter; but now it is. I've ported the code almost as-is from desktop, with some minor style tweaks, and a few necessary changes, e.g. using FieldInfo instead of RuntimeFieldInfo, as the latter isn't accessible. I've not done anything to minimize allocations / improve perf, etc., as that can be done in the future, and the results of all of this gets cached. Changing this required regenerating a few of the serialization blobs in the tests. I also added a test for a case we didn't previously cover, a [Serializable] type derived from a non-serializable type. cc: @ViktorHofer, @morganbr, @danmosemsft +20942 area-Infrastructure Unused code, incompatible with Roslyn > 2.0.0 rc Roslyn made a breaking change sometime between rc and beta2, which flags unused fields(https://github.com/dotnet/roslyn/pull/14628/files) and events as warnings. CoreFx will be unable to update to a newer version of Roslyn until these warnings are fixed / suppressed. ``` System.Diagnostics.Tracing.cs(120,64): error CS0067: The event 'EventListener.EventSourceCreated' is never used [E:\gh\chcosta\corefx\src\System.Diagnostics.Tracing\ref\System.Diagnostics.Tracing.csproj] System.Diagnostics.Tracing.cs(121,58): error CS0067: The event 'EventListener.EventWritten' is never used [E:\gh\chcosta\corefx\src\System.Diagnostics.Tracing\ref\System.Diagnostics.Tracing.csproj] System.Runtime.Loader.cs(35,108): error CS0067: The event 'AssemblyLoadContext.Resolving' is never used [E:\gh\chcosta\corefx\src\System.Runtime.Loader\ref\System.Runtime.Loader.csproj] System.Runtime.Loader.cs(36,50): error CS0067: The event 'AssemblyLoadContext.Unloading' is never used [E:\gh\chcosta\corefx\src\System.Runtime.Loader\ref\System.Runtime.Loader.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(111,24): error CS0169: The field 'XmlSerializationReader._positiveIntegerID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(33,27): error CS0169: The field 'XmlSerializationReader._types' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(34,27): error CS0169: The field 'XmlSerializationReader._typesReverse' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(79,24): error CS0169: The field 'XmlSerializationReader._base64ID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(42,22): error CS0169: The field 'XmlSerializationReader._isReturnValue' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(37,27): error CS0169: The field 'XmlSerializationReader._referencedTargets' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(93,24): error CS0169: The field 'XmlSerializationReader._gMonthID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(92,24): error CS0169: The field 'XmlSerializationReader._gDayID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(84,24): error CS0169: The field 'XmlSerializationReader._unsignedLongID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(116,24): error CS0169: The field 'XmlSerializationReader._timeSpanID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(103,24): error CS0169: The field 'XmlSerializationReader._NCNameID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(82,24): error CS0169: The field 'XmlSerializationReader._unsignedShortID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(90,24): error CS0169: The field 'XmlSerializationReader._ENTITYID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(95,24): error CS0169: The field 'XmlSerializationReader._gYearID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(76,24): error CS0169: The field 'XmlSerializationReader._timeID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(74,24): error CS0169: The field 'XmlSerializationReader._qnameID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(105,24): error CS0169: The field 'XmlSerializationReader._NMTOKENSID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(85,24): error CS0169: The field 'XmlSerializationReader._oldDecimalID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(118,29): error CS0649: Field 'XmlSerializationReader.s_checkDeserializeAdvances' is never assigned to, and will always have its default value false [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(80,24): error CS0169: The field 'XmlSerializationReader._unsignedByteID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(97,24): error CS0169: The field 'XmlSerializationReader._IDID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(32,27): error CS0169: The field 'XmlSerializationReader._callbacks' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(100,24): error CS0169: The field 'XmlSerializationReader._integerID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(73,24): error CS0169: The field 'XmlSerializationReader._dateTimeID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(104,24): error CS0169: The field 'XmlSerializationReader._NMTOKENID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(40,27): error CS0169: The field 'XmlSerializationReader._collectionFixups' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(108,24): error CS0169: The field 'XmlSerializationReader._nonNegativeIntegerID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(68,24): error CS0169: The field 'XmlSerializationReader._shortID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(38,27): error CS0169: The field 'XmlSerializationReader._targetsWithoutIds' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(96,24): error CS0169: The field 'XmlSerializationReader._gYearMonthID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(94,24): error CS0169: The field 'XmlSerializationReader._gMonthDayID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(107,24): error CS0169: The field 'XmlSerializationReader._nonPositiveIntegerID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(70,24): error CS0169: The field 'XmlSerializationReader._floatID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(102,24): error CS0169: The field 'XmlSerializationReader._nameID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(88,24): error CS0169: The field 'XmlSerializationReader._anyURIID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(109,24): error CS0169: The field 'XmlSerializationReader._normalizedStringID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(86,24): error CS0169: The field 'XmlSerializationReader._oldTimeInstantID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(106,24): error CS0169: The field 'XmlSerializationReader._negativeIntegerID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(75,24): error CS0169: The field 'XmlSerializationReader._dateID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(112,24): error CS0169: The field 'XmlSerializationReader._tokenID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(65,24): error CS0169: The field 'XmlSerializationReader._stringID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(114,24): error CS0169: The field 'XmlSerializationReader._charID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(36,27): error CS0169: The field 'XmlSerializationReader._targets' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(91,24): error CS0169: The field 'XmlSerializationReader._ENTITIESID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(98,24): error CS0169: The field 'XmlSerializationReader._IDREFID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(81,24): error CS0169: The field 'XmlSerializationReader._byteID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(78,24): error CS0169: The field 'XmlSerializationReader._base64BinaryID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(71,24): error CS0169: The field 'XmlSerializationReader._doubleID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(67,24): error CS0169: The field 'XmlSerializationReader._booleanID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(110,24): error CS0169: The field 'XmlSerializationReader._NOTATIONID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(115,24): error CS0169: The field 'XmlSerializationReader._guidID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(66,24): error CS0169: The field 'XmlSerializationReader._intID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(99,24): error CS0169: The field 'XmlSerializationReader._IDREFSID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(83,24): error CS0169: The field 'XmlSerializationReader._unsignedIntID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(89,24): error CS0169: The field 'XmlSerializationReader._durationID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(39,27): error CS0169: The field 'XmlSerializationReader._fixups' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(101,24): error CS0169: The field 'XmlSerializationReader._languageID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(69,24): error CS0169: The field 'XmlSerializationReader._longID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(72,24): error CS0169: The field 'XmlSerializationReader._decimalID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(77,24): error CS0169: The field 'XmlSerializationReader._hexBinaryID' is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(43,22): error CS0414: The field 'XmlSerializationReader._decodeName' is assigned but its value is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] 179:2>E:\gh\chcosta\corefx\src\System.Private.Xml\src\System\Xml\Serialization\XmlSerializationReader.cs(31,29): error CS0414: The field 'XmlSerializationReader._d' is assigned but its value is never used [E:\gh\chcosta\corefx\src\Microsoft.XmlSerializer.Generator\src\Microsoft.XmlSerializer.Generator.csproj] ``` /cc @weshaggard @ellismg +20943 area-System.Memory Adding Span IndexOf performance test cc @shiftylogic, @KrzysztofCwalina, @benaadams Please note the (expected?) performance degradation when hardware acceleration is disabled for SpanIndexOfCharAsBytes. Can we improve the performance for \ IndexOf when IsHardwareAcceleration == false? Shouldn't it still match the performance of SpanIndexOfChar? Why is it ~2x worst? **Is this expected since we have twice as many bytes to search through compared to the number of chars?** ![image](https://user-images.githubusercontent.com/6527137/27054036-64316c6a-4f74-11e7-8768-5464a8c33477.png) ![image](https://user-images.githubusercontent.com/6527137/27054037-66171b88-4f74-11e7-9d70-3d503483d89a.png) ![image](https://user-images.githubusercontent.com/6527137/27054034-5f1b743c-4f74-11e7-907c-77264f55be8a.png) +20944 area-System.Globalization Accent and Special Characters "I have a problem with this code ```c# loggerFactory.AddConsole(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseWelcomePage(""/welcome""); app.Run(async (context) => { //var message = Configuration[""Greeting""]; await context.Response.WriteAsync(""¿Cómo estas?""); }); ``` And when render the output show me this text ¿Cómo estas?" +20945 area-System.Collections Fix regressions in corefx tests on ILC. This was caused by the changes to reflection policy for serialized types. A few internal comparer objects that used to be reflection-blocked now became unblocked and prone to throwing MME's. +20946 area-Infrastructure Add 3 new queues in Core 2.1.0 CI part of the task: https://github.com/dotnet/core-eng/issues/861 +20947 area-System.Net Make Cookie.InternalSetName public for uapaot This is a workaround till the required methods from System.Net.Primitives are made public Internal Bug: 449560 +20948 area-System.Diagnostics Process start tests are not running for UAP System.Diagnostics.Process.Tests is doing remote invoke to create another process and execute some code remotely. This is not going to work in UAP F5 scenario without some changes. In UAP we are going to handle the remote invoking by activating the runner Appx as background task and not by creating a process. The test need either to be permanently disabled for UAP scenario or has to be re-written for UAP to manually calls process create or do something else. Talk to me to get more details. Note, we didn't enable the remote execution using the background task yet but we are going to enable it soon when upgrading Helix runs to use RS2+ images. remote invoking is currently not working anyway. +20952 area-Serialization Remove several attribute files from SGEN Remove several unused attribute files from SGEN. Fix #20892 @shmao @mconnew @zhenlan +20953 area-System.Runtime Fix failure in GCNotificationTests Assert added in 8058ec1b0c3eecf9b9835951c46aeefd601831ec exposed that this test was always using the same values of timeout and approach. +20954 area-System.Net TCP Socket.Dispose does not abort Connect on Linux in NetStandard2.0 "Consider the following code that implements a timeout on a TCP `Connect` call: ``` tcpClient = new TcpClient(ipAddress.AddressFamily); using (cancellationToken.Register(() => tcpClient?.Client?.Dispose())) { try { #if NETSTANDARD1_3 await tcpClient.ConnectAsync(ipAddress, cs.Port).ConfigureAwait(false); #else tcpClient.Connect(ipAddress, cs.Port); #endif } catch (ObjectDisposedException ex) when (cancellationToken.IsCancellationRequested) { throw new MySqlException(""Connect Timeout expired."", ex); } } ``` If this TCP socket connects to an address that does not respond, we expect the socket to get shutdown when the Cancellation Token fires with `cancellationToken.Register(() => tcpClient?.Client?.Dispose())` - `NETSTANDARD2.0` Linux Ubuntu 14.04 x64: **does not work, times out after ~2 minutes (OS default?)** - `NETSTANDARD2.0` Linux Ubuntu 17.04 x64: **does not work, times out after ~2 minutes (OS default?)** - `NETSTANDARD2.0` Windows 10 x64: **works, times out when cancellation token fires** - `NETSTANDARD1.3` Linux Ubuntu 14.04: **works, times out when cancellation token fires** (calls ConnectAsync though as Connect is not available in NETSTANDARD1.3 - `NET462` Windows 10 x64: **works, times out when cancellation token fires** Here's our test cases: - [Failing test case NETSTANDARD2.0 Ubuntu 14.04 x64](https://travis-ci.org/mysql-net/MySqlConnector/builds/240652076#L1033-L1037) - [Passing test case NETSTANDARD2.0 Windows 10 x64](https://ci.appveyor.com/project/mysqlnet/mysqlconnector/build/1.0.622#L377) (lines 377-413; other tests failed but this Connect test passed) - [Passing test case NETSTANDARD1.3 Ubuntu 14.04 x64](https://travis-ci.org/mysql-net/MySqlConnector/builds/238541828) - [Passing test case NET462](https://ci.appveyor.com/project/mysqlnet/mysqlconnector/build/1.0.598)" +20955 area-System.Runtime "Desktop: System.Tests.GCExtendedTests.GCNotificationTests failed with ""Xunit.Sdk.AllException""" Failed test: System.Tests.GCExtendedTests.GCNotificationTests Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netfx_windows_nt_debug/84/consoleText ~~~ System.Tests.GCExtendedTests.GCNotificationTests(approach: True, timeout: -1) [FAIL] Assert.All() Failure: 2 out of 2 items in the collection did not pass. [1]: Xunit.Sdk.TrueException: Field marshaling is not supported by RemoteInvoke: timeout Expected: True Actual: False at Xunit.Assert.True(Nullable`1 condition, String userMessage) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.assert\Asserts\BooleanAsserts.cs:line 90 at System.Diagnostics.RemoteExecutorTestBase.<>c.b__20_0(FieldInfo fi) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Diagnostics\RemoteExecutorTestBase.cs:line 275 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.assert\Asserts\CollectionAsserts.cs:line 31 [0]: Xunit.Sdk.TrueException: Field marshaling is not supported by RemoteInvoke: approach Expected: True Actual: False at Xunit.Assert.True(Nullable`1 condition, String userMessage) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.assert\Asserts\BooleanAsserts.cs:line 90 at System.Diagnostics.RemoteExecutorTestBase.<>c.b__20_0(FieldInfo fi) in D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Diagnostics\RemoteExecutorTestBase.cs:line 275 at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.assert\Asserts\CollectionAsserts.cs:line 31 Stack Trace: D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Diagnostics\RemoteExecutorTestBase.cs(273,0): at System.Diagnostics.RemoteExecutorTestBase.GetMethodInfo(Delegate d) D:\j\workspace\outerloop_net---903ddde6\src\Common\tests\System\Diagnostics\RemoteExecutorTestBase.cs(48,0): at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(Func`1 method, RemoteInvokeOptions options) D:\j\workspace\outerloop_net---903ddde6\src\System.Runtime\tests\System\GCTests.cs(491,0): at System.Tests.GCExtendedTests.GCNotificationTests(Boolean approach, Int32 timeout) ~~~ +20956 area-Infrastructure Adding CI pipeline for UAP F5 tests **DO NOT MERGE YET** CC: @weshaggard @mmitche @danmosemsft @karajas FYI: @joshfree @safern Adding CI pipeline for UAP F5 tests. Do not merge this until we have a green run as we don't want to have a failing CI job. +20961 area-Meta Dump runtime info "For many distros, the only testing we do is in our full test runs. We are trusting that the correct images are used in those runs: if a mistake creeps in, we could end up not testing on the platform we expect. As a simple sanity check, this adds a ""test"" that dumps relevant information to the console so we can inspect the logs and verify the platform." +20965 area-System.Net System.Net.Http.Functional.Tests.HttpClientHandlerTest Fail on ARM/Linux I get this error with release/2.0.0 and master branch running with RPi3/Ubuntu16.04 ``` xUnit.net console test runner (32-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Net.Http.Functional.Tests Discovered: System.Net.Http.Functional.Tests Starting: System.Net.Http.Functional.Tests System.Net.Http.Functional.Tests.HttpClientHandlerTest.Dispose_DisposingHandlerCancelsActiveOperationsWithoutResponses [FAIL] System.Threading.Tasks.TaskCanceledException : A task was canceled. ``` works with x64/Linux. I get some timeout related answers when I search `A task was canceled` message, but doesn't seem to be the timeout issue for this case. Could someone help me what `Dispose_DisposingHandlerCancelsActiveOperationsWithoutResponses` is trying to test and what may be the problem? Could it be my Linux environmental problem? +20966 area-System.Net "Tests under: System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTest failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTest/MaxAutomaticRedirections_SetNegativeValue_ThrowsArgumentOutOfRangeException` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentOutOfRangeException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.Net.Http.WinHttpHandler.set_MaxAutomaticRedirections(Int32 value) at System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTest.<>c__DisplayClass29_0.b__0() Build : Master - 20170613.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170613.01/workItem/System.Net.Http.WinHttpHandler.Unit.Tests/analysis/xunit/System.Net.Http.WinHttpHandlerUnitTests.WinHttpHandlerTest~2FMaxAutomaticRedirections_SetNegativeValue_ThrowsArgumentOutOfRangeException +20967 area-System.Net "Test: System.Net.Mail.Tests.LoggingTest/EventSource_ExistsWithCorrectId failed with ""System.Resources.MissingManifestResourceException""" "Opened on behalf of @Jiayili1 The test `System.Net.Mail.Tests.LoggingTest/EventSource_ExistsWithCorrectId` has failed. System.Resources.MissingManifestResourceException : Unable to load resources for resource file \""FxResources.System.Net.Mail.SR\"" in package \""5cd54353-3ed7-4a6e-a72f-db349f28867c\"". Stack Trace: at System.Resources.ResourceManager.GetString(String name, CultureInfo culture) at System.Diagnostics.Tracing.ManifestBuilder.WriteMessageAttrib(StringBuilder stringBuilder, String elementName, String name, String value) at System.Diagnostics.Tracing.ManifestBuilder.StartEvent(String eventName, EventAttribute eventAttribute) at System.Diagnostics.Tracing.EventSource.CreateManifestAndDescriptors(Type eventSourceType, String eventSourceDllName, EventSource source, EventManifestOptions flags) at System.Diagnostics.Tracing.EventSource.GenerateManifest(Type eventSourceType, String assemblyPathToIncludeInManifest, EventManifestOptions flags) at System.Net.Mail.Tests.LoggingTest.EventSource_ExistsWithCorrectId() Build : Master - 20170613.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170613.01/workItem/System.Net.Mail.Functional.Tests/analysis/xunit/System.Net.Mail.Tests.LoggingTest~2FEventSource_ExistsWithCorrectId" +20969 area-System.Net "Tests under: System.Net.Mail.Tests.MailAddressTest failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Net.Mail.Tests.MailAddressTest/Address_NoClosingQuote` has failed. Assert.Throws() Failure\r Expected: typeof(System.FormatException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.Net.Mail.QuotedStringFormatReader.ReadReverseUnQuoted(String data, Int32 index, Boolean permitUnicode, Boolean expectCommaDelimiter) at System.Net.Mail.MailAddressParser.ParseDisplayName(String data, Int32& index, Boolean expectMultipleAddresses) at System.Net.Mail.MailAddressParser.ParseAddress(String data, Boolean expectMultipleAddresses, Int32& index) at System.Net.Mail.MailAddressParser.ParseAddress(String data) at System.Net.Mail.MailAddress..ctor(String address, String displayName, Encoding displayNameEncoding) at System.Net.Mail.MailAddress..ctor(String address) at System.Net.Mail.Tests.MailAddressTest.<>c.b__10_0() Build : Master - 20170613.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170613.01/workItem/System.Net.Mail.Functional.Tests/analysis/xunit/System.Net.Mail.Tests.MailAddressTest~2FAddress_NoClosingQuote +20970 area-System.Net "Tests under: System.Net.Mail.Tests.MailAddressParserTest failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Net.Mail.Tests.MailAddressParserTest/ParseAddress_WithHangingAngleBracket_ShouldThrow` has failed. Assert.Throws() Failure\r Expected: typeof(System.FormatException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.Net.Mail.MailAddressParser.ParseLocalPart(String data, Int32& index, Boolean expectAngleBracket, Boolean expectMultipleAddresses) at System.Net.Mail.MailAddressParser.ParseAddress(String data, Boolean expectMultipleAddresses, Int32& index) at System.Net.Mail.MailAddressParser.ParseAddress(String data) at System.Net.Mail.Tests.MailAddressParserTest.<>c.b__73_0() Build : Master - 20170613.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170613.01/workItem/System.Net.Mail.Unit.Tests/analysis/xunit/System.Net.Mail.Tests.MailAddressParserTest~2FParseAddress_WithHangingAngleBracket_ShouldThrow +20972 area-System.Net "Test: System.Net.Tests.ServicePointManagerTest/InvalidArguments_Throw failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Net.Tests.ServicePointManagerTest/InvalidArguments_Throw` has failed. Assert.Throws() Failure\r Expected: typeof(System.NotSupportedException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.Net.ServicePointManager.ProxyAddressIfNecessary(Uri& address, IWebProxy proxy) at System.Net.ServicePointManager.FindServicePoint(Uri address, IWebProxy proxy) at System.Net.ServicePointManager.FindServicePoint(String uriString, IWebProxy proxy) at System.Net.Tests.ServicePointManagerTest.<>c.b__12_10() Build : Master - 20170613.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170613.01/workItem/System.Net.ServicePoint.Tests/analysis/xunit/System.Net.Tests.ServicePointManagerTest~2FInvalidArguments_Throw +20973 area-System.Net "Tests under: System.Net.WebSockets.Tests.WebSocketTests failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Net.WebSockets.Tests.WebSocketTests/CreateClientBuffer_InvalidReceiveValues(size: -1)` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentOutOfRangeException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.Net.WebSockets.WebSocket.CreateClientBuffer(Int32 receiveBufferSize, Int32 sendBufferSize) at System.Net.WebSockets.Tests.WebSocketTests.<>c__DisplayClass3_0.b__0() Build : Master - 20170613.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170613.01/workItem/System.Net.WebSockets.Tests/analysis/xunit/System.Net.WebSockets.Tests.WebSocketTests~2FCreateClientBuffer_InvalidReceiveValues(size:%20-1) +20977 area-System.Runtime Test failure: System.IO.CreateSafeFileHandleTests/FromStorageFile_SurfaceIOException Opened on behalf of @Jiayili1 The test `System.IO.CreateSafeFileHandleTests/FromStorageFile_SurfaceIOException` has failed. Assert.Throws() Failure\r Expected: typeof(System.IO.IOException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.IO.Win32Marshal.GetExceptionForWin32Error(Int32 errorCode, String path) at System.IO.WindowsRuntimeStorageExtensions.CreateSafeFileHandle(IStorageFile windowsRuntimeFile, FileAccess access, FileShare share, FileOptions options) at System.IO.CreateSafeFileHandleTests.<>c__DisplayClass21_0.b__0() Build : Master - 20170613.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170613.01/workItem/System.Runtime.WindowsRuntime.Tests/analysis/xunit/System.IO.CreateSafeFileHandleTests~2FFromStorageFile_SurfaceIOException +20978 area-System.Security "Test: System.Security.Cryptography.Csp.Tests.CspParametersTests/SetFlags_ValidatesInput failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.Csp.Tests.CspParametersTests/SetFlags_ValidatesInput` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0) at System.SR.Format(String resourceFormat, Object p1) at System.Security.Cryptography.CspParameters.set_Flags(CspProviderFlags value) at System.Security.Cryptography.Csp.Tests.CspParametersTests.<>c__DisplayClass3_0.b__0() Build : Master - 20170613.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170613.01/workItem/System.Security.Cryptography.Csp.Tests/analysis/xunit/System.Security.Cryptography.Csp.Tests.CspParametersTests~2FSetFlags_ValidatesInput +20979 area-System.Security "Test: System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/CryptographicAttributeObjectMismatch failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/CryptographicAttributeObjectMismatch` has failed. Assert.Throws() Failure\r Expected: typeof(System.InvalidOperationException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.String.Format(String format, Object arg0, Object arg1) at System.SR.Format(String resourceFormat, Object p1, Object p2) at System.Security.Cryptography.CryptographicAttributeObject..ctor(Oid oid, AsnEncodedDataCollection values) at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.<>c__DisplayClass32_0.b__0() Build : Master - 20170613.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170613.01/workItem/System.Security.Cryptography.Pkcs.Tests/analysis/xunit/System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests~2FCryptographicAttributeObjectMismatch +20980 area-System.Security "Test: System.Security.Cryptography.Xml.Tests.EncryptedXmlTest/DecryptData_CipherReference_InvalidUri failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.Xml.Tests.EncryptedXmlTest/DecryptData_CipherReference_InvalidUri` has failed. Assert.Throws() Failure\r Expected: typeof(System.Security.Cryptography.CryptographicException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: format Stack Trace: at System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args) at System.Security.Cryptography.CryptographicException..ctor(String format, String insert) at System.Security.Cryptography.Xml.EncryptedXml.GetCipherValue(CipherData cipherData) at System.Security.Cryptography.Xml.EncryptedXml.DecryptData(EncryptedData encryptedData, SymmetricAlgorithm symmetricAlgorithm) at System.Security.Cryptography.Xml.Tests.EncryptedXmlTest.<>c__DisplayClass48_0.b__0() Build : Master - 20170613.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170613.01/workItem/System.Security.Cryptography.Xml.Tests/analysis/xunit/System.Security.Cryptography.Xml.Tests.EncryptedXmlTest~2FDecryptData_CipherReference_InvalidUri +20984 area-System.Runtime Add a helper to BinaryFormatterHelpers to check that exceptions throw a PNSE on deserialization This could be considered an experiment as I'm not sure what the reaction of y'all will be to it. I've limited it to Win32Exception right now, but the idea is to use this helper in other places +20988 area-Serialization Building manual System facade for serialization support Required for the types mentioned in System.forwards.cs. Relates to https://github.com/dotnet/corefx/pull/20870 cc @danmosemsft @ericstj @jkotas @morganbr +20990 area-System.Reflection System.Reflection.Emit.ILGeneration fails to install on a vanilla UWP app I'm trying to use WampSharp that uses ILGeneration as a dependency, but the whole thing fails to install because System.Reflection.Emit.ILGeneration, reported to Code-Sharp/WampSharp#195. The error can be reproduced installing only ILGeneration in a vanilla UWP app (output bellow). I'm using VS 2015 Professional, on Windows 10 Anniversary build 1607
``` PM> Install-Package System.Reflection.Emit.ILGeneration -Version 4.3.0 -Pre Restoring packages for 'App2'. Restoring packages for c:\users\rafael.caldeira\documents\visual studio 2015\Projects\App2\App2\project.json... Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.NETCore (>= 5.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.NETCore (>= 5.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.IO.IsolatedStorage (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Http.Rtc (>= 4.0.0) -> System.Net.Http (>= 4.0.0) -> System.Net.Primitives (>= 4.0.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.IO.FileSystem (>= 4.3.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Net.Primitives (>= 4.3.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Xml.XmlSerializer (>= 4.0.10) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.Serialization.Json (>= 4.0.1) -> System.Private.DataContractSerialization (>= 4.1.0) -> runtime.any.System.Private.DataContractSerialization (>= 4.1.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.NETCore (>= 5.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.NETCore (>= 5.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.IO.IsolatedStorage (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Http.Rtc (>= 4.0.0) -> System.Net.Http (>= 4.0.0) -> System.Net.Primitives (>= 4.0.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.IO.FileSystem (>= 4.3.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Net.Primitives (>= 4.3.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Xml.XmlSerializer (>= 4.0.10) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.Serialization.Json (>= 4.0.1) -> System.Private.DataContractSerialization (>= 4.1.0) -> runtime.aot.System.Private.DataContractSerialization (>= 4.1.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Diagnostics.Contracts from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0) -> runtime.aot.System.Diagnostics.Tracing (>= 4.3.0) -> System.Reflection.Extensions (>= 4.3.0) -> runtime.aot.System.Reflection.Extensions (>= 4.3.0) -> System.Reflection.TypeExtensions (>= 4.3.0) -> System.Diagnostics.Contracts (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Diagnostics.Contracts (>= 4.0.0) Detected package downgrade: System.Diagnostics.Contracts from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0) -> runtime.aot.System.Diagnostics.Tracing (>= 4.3.0) -> System.Reflection.Extensions (>= 4.3.0) -> runtime.aot.System.Reflection.Extensions (>= 4.3.0) -> System.Reflection.TypeExtensions (>= 4.3.0) -> System.Diagnostics.Contracts (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Diagnostics.Contracts (>= 4.0.0) Detected package downgrade: System.Diagnostics.Contracts from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Http.Rtc (>= 4.0.0) -> System.Net.Http (>= 4.0.0) -> System.Net.Primitives (>= 4.0.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0) -> runtime.aot.System.Diagnostics.Tracing (>= 4.3.0) -> System.Reflection.Extensions (>= 4.3.0) -> runtime.aot.System.Reflection.Extensions (>= 4.3.0) -> System.Reflection.TypeExtensions (>= 4.3.0) -> System.Diagnostics.Contracts (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Diagnostics.Contracts (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.NETCore (>= 5.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.NETCore (>= 5.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.IO.IsolatedStorage (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Http.Rtc (>= 4.0.0) -> System.Net.Http (>= 4.0.0) -> System.Net.Primitives (>= 4.0.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.IO.FileSystem (>= 4.3.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Net.Primitives (>= 4.3.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Xml.XmlSerializer (>= 4.0.10) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.Serialization.Json (>= 4.0.1) -> System.Private.DataContractSerialization (>= 4.1.0) -> runtime.any.System.Private.DataContractSerialization (>= 4.1.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.NETCore (>= 5.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.NETCore (>= 5.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.IO.IsolatedStorage (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Http.Rtc (>= 4.0.0) -> System.Net.Http (>= 4.0.0) -> System.Net.Primitives (>= 4.0.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.IO.FileSystem (>= 4.3.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Net.Primitives (>= 4.3.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Xml.XmlSerializer (>= 4.0.10) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.Serialization.Json (>= 4.0.1) -> System.Private.DataContractSerialization (>= 4.1.0) -> runtime.aot.System.Private.DataContractSerialization (>= 4.1.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Diagnostics.Contracts from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0) -> runtime.aot.System.Diagnostics.Tracing (>= 4.3.0) -> System.Reflection.Extensions (>= 4.3.0) -> runtime.aot.System.Reflection.Extensions (>= 4.3.0) -> System.Reflection.TypeExtensions (>= 4.3.0) -> System.Diagnostics.Contracts (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Diagnostics.Contracts (>= 4.0.0) Detected package downgrade: System.Diagnostics.Contracts from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0) -> runtime.aot.System.Diagnostics.Tracing (>= 4.3.0) -> System.Reflection.Extensions (>= 4.3.0) -> runtime.aot.System.Reflection.Extensions (>= 4.3.0) -> System.Reflection.TypeExtensions (>= 4.3.0) -> System.Diagnostics.Contracts (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Diagnostics.Contracts (>= 4.0.0) Detected package downgrade: System.Diagnostics.Contracts from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Http.Rtc (>= 4.0.0) -> System.Net.Http (>= 4.0.0) -> System.Net.Primitives (>= 4.0.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0) -> runtime.aot.System.Diagnostics.Tracing (>= 4.3.0) -> System.Reflection.Extensions (>= 4.3.0) -> runtime.aot.System.Reflection.Extensions (>= 4.3.0) -> System.Reflection.TypeExtensions (>= 4.3.0) -> System.Diagnostics.Contracts (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Diagnostics.Contracts (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.NETCore (>= 5.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.NETCore (>= 5.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.IO.IsolatedStorage (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Http.Rtc (>= 4.0.0) -> System.Net.Http (>= 4.0.0) -> System.Net.Primitives (>= 4.0.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.IO.FileSystem (>= 4.3.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Net.Primitives (>= 4.3.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Xml.XmlSerializer (>= 4.0.10) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.Serialization.Json (>= 4.0.1) -> System.Private.DataContractSerialization (>= 4.1.0) -> runtime.any.System.Private.DataContractSerialization (>= 4.1.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.NETCore (>= 5.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.NETCore (>= 5.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.IO.IsolatedStorage (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Http.Rtc (>= 4.0.0) -> System.Net.Http (>= 4.0.0) -> System.Net.Primitives (>= 4.0.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.IO.FileSystem (>= 4.3.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Net.Primitives (>= 4.3.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: Microsoft.Win32.Primitives from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> Microsoft.Win32.Primitives (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> Microsoft.Win32.Primitives (>= 4.0.0) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Xml.XmlSerializer (>= 4.0.10) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.Serialization.Json (>= 4.0.1) -> System.Private.DataContractSerialization (>= 4.1.0) -> runtime.aot.System.Private.DataContractSerialization (>= 4.1.0) -> System.Xml.ReaderWriter (>= 4.0.10) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Duplex (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Http (>= 4.0.10) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.NetTcp (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Primitives (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Runtime.WindowsRuntime from 4.3.0 to 4.0.10 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.ServiceModel.Security (>= 4.0.0) -> System.Private.ServiceModel (>= 4.0.0) -> System.Net.Primitives (>= 4.0.10) -> System.Private.Networking (>= 4.0.0) -> System.IO.FileSystem (>= 4.0.0) -> runtime.win.System.IO.FileSystem (>= 4.3.0) -> System.Runtime.WindowsRuntime (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Runtime.WindowsRuntime (>= 4.0.10) Detected package downgrade: System.Diagnostics.Contracts from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Sockets (>= 4.0.0) -> runtime.win.System.Net.Sockets (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0) -> runtime.aot.System.Diagnostics.Tracing (>= 4.3.0) -> System.Reflection.Extensions (>= 4.3.0) -> runtime.aot.System.Reflection.Extensions (>= 4.3.0) -> System.Reflection.TypeExtensions (>= 4.3.0) -> System.Diagnostics.Contracts (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Diagnostics.Contracts (>= 4.0.0) Detected package downgrade: System.Diagnostics.Contracts from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Requests (>= 4.0.10) -> System.Net.Primitives (>= 4.0.10) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0) -> runtime.aot.System.Diagnostics.Tracing (>= 4.3.0) -> System.Reflection.Extensions (>= 4.3.0) -> runtime.aot.System.Reflection.Extensions (>= 4.3.0) -> System.Reflection.TypeExtensions (>= 4.3.0) -> System.Diagnostics.Contracts (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Diagnostics.Contracts (>= 4.0.0) Detected package downgrade: System.Diagnostics.Contracts from 4.3.0 to 4.0.0 App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Net.Http.Rtc (>= 4.0.0) -> System.Net.Http (>= 4.0.0) -> System.Net.Primitives (>= 4.0.0) -> runtime.win.System.Net.Primitives (>= 4.3.0) -> System.Diagnostics.Tracing (>= 4.3.0) -> runtime.aot.System.Diagnostics.Tracing (>= 4.3.0) -> System.Reflection.Extensions (>= 4.3.0) -> runtime.aot.System.Reflection.Extensions (>= 4.3.0) -> System.Reflection.TypeExtensions (>= 4.3.0) -> System.Diagnostics.Contracts (>= 4.3.0) App2 (>= 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (>= 5.1.0) -> System.Diagnostics.Contracts (>= 4.0.0) Install-Package : System.Reflection.Emit.ILGeneration 4.3.0 provides a compile-time reference assembly for System.Reflection.Emit.ILGeneration on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-arm-aot. At line:1 char:1 + Install-Package System.Reflection.Emit.ILGeneration -Version 4.3.0 -P ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand Install-Package : Some packages are not compatible with UAP,Version=v10.0 (win10-arm-aot). At line:1 char:1 + Install-Package System.Reflection.Emit.ILGeneration -Version 4.3.0 -P ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand Install-Package : System.Reflection.Emit.ILGeneration 4.3.0 provides a compile-time reference assembly for System.Reflection.Emit.ILGeneration on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x64-aot. At line:1 char:1 + Install-Package System.Reflection.Emit.ILGeneration -Version 4.3.0 -P ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand Install-Package : Some packages are not compatible with UAP,Version=v10.0 (win10-x64-aot). At line:1 char:1 + Install-Package System.Reflection.Emit.ILGeneration -Version 4.3.0 -P ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand Install-Package : System.Reflection.Emit.ILGeneration 4.3.0 provides a compile-time reference assembly for System.Reflection.Emit.ILGeneration on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x86-aot. At line:1 char:1 + Install-Package System.Reflection.Emit.ILGeneration -Version 4.3.0 -P ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand Install-Package : Some packages are not compatible with UAP,Version=v10.0 (win10-x86-aot). At line:1 char:1 + Install-Package System.Reflection.Emit.ILGeneration -Version 4.3.0 -P ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand Package restore failed for 'App2'. Install-Package : Package restore failed. Rolling back package changes for 'App2'. At line:1 char:1 + Install-Package System.Reflection.Emit.ILGeneration -Version 4.3.0 -P ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand PM> ```
+20991 area-Microsoft.CSharp Step 1 of fix for disabled System.Dynamic.Runtime test on ILC (https://github.com/dotnet/corefx/issues/19895) Make Microsoft.CSharp use the the real HasMetadataDefinitionAs() api if it exists on the running framework. Since this library is built on netstandard, it still needs to fall back on its emulation on older frameworks. Actual removal of the ActiveIssue will have to wait until the new System.Runtime reference assembly propagates to the Project N tree and the new api becomes reflectable. +20992 area-System.Net Disable tests in System.Net.Requests for UAP Disable tests related to RemoteExecutor which still doesn't work in UAP. This PR results in a clean UAP test run for System.Net.Requests. Contributes to #20136 +20994 area-System.Net CoreFX is more restrictive parsing if-match header values than the equivalent with the FullCLR. "One of our customers, nmbradford, is moving to PowerShell 6 from Windows PowerShell and has hit an incompatibility between CoreFX and FullCLR's handling of if-match header values. For example, the following Works on Windows PowerShell: ``` $headers = @{} $headers.Add(""if-match"",""12345"") Invoke-WebRequest -Uri ""http://httpbin.org/headers"" -Headers $headers ``` On PowerShell 6 with the CoreFx, the same results in a FormatException thrown by `System.Net.Http.Headers.HttpHeaderParser.ParseValue`. His expectation is the header value should work on PowerShell/CoreFx as it does with Windows PowerShell/FullCLR. Instead, he needs to special case this header for it to work. See https://github.com/PowerShell/PowerShell/issues/2895 for the related PowerShell issue." +20997 area-Infrastructure Helix-based CI runs are not flagging test failures Example: https://ci3.dot.net/job/dotnet_corefx/job/master/job/portable-windows-Config_Debug+OuterLoop_false_prtest/773/ This job is labeled a success, but there are many test failures if you look deeper into the results. @MattGal @karajas @weshaggard +21001 area-System.Net Disable tests in System.Net.Mail for UAP Disable tests related to RemoteExecutor which still doesn't work in UAP. This PR results in a clean UAP test run for System.Net.Mail. Contributes to #20131 +21003 area-System.Net Adjust WebSocketException serialization test Disable test related to serialization. The test works in netcoreapp and uap test runs. Not sure why it fails in uapaot. Is serialization supported for this type in the first place? This PR results in a clean UAPAOT test run for System.Net.WebSockets. Contributes to #20132 +21008 area-System.Net [UWP] DummyTcpServer not working in TLS/SSL in System.Net.Security tests "I noticed that this test in System.Net.Security, TransportContextTest.cs, hangs at the `AuthenticateAsClientAsync` call but only in UAP test run and not UAPAOT test run. ```c# [Fact] public async Task TransportContext_ConnectToServerWithSsl_GetExpectedChannelBindings() { using (var testServer = new DummyTcpServer( new IPEndPoint(IPAddress.Loopback, 0), EncryptionPolicy.RequireEncryption)) using (var client = new TcpClient()) { await client.ConnectAsync(testServer.RemoteEndPoint.Address, testServer.RemoteEndPoint.Port); using (var sslStream = new SslStream(client.GetStream(), false, AllowAnyServerCertificate, null, EncryptionPolicy.RequireEncryption)) { await sslStream.AuthenticateAsClientAsync(""localhost"", null, SslProtocols.Tls, false); // HANGS TransportContext context = sslStream.TransportContext; CheckTransportContext(context); } } } ``` If I don't use the DummyTcpServer but instead just connect to ""corefx-net.cloudapp.net:443"" then it works fine. So I think the problem is specific to using a loopback TLS/SSL server within the UAP tests which use app-container. This is currently blocking a lot of tests in System.Net.Security for UAP test runs." +21009 area-Infrastructure Port commit 2b13699 to enable new distros for Core 2.0 The porting is tracked with task: https://github.com/dotnet/core-eng/issues/931 The commit being ported is for task below: https://github.com/dotnet/corefx/pull/20878 +21011 area-System.Drawing Understand disallowed PInvoke in System.Drawing.Primitives System.Drawing.Primitives uses `user32.dll!GetSysColor`, which seems to be disallowed in OneCore. Our Windows Nano runs do not fail, but we should still understand whether we need to avoid calling this function on Windows Nano. If we can't call the function, we should simply fall back to the cross-platform implementation, which has a hard-coded color table. +21014 area-Infrastructure Enable UAP Remote Execution for all tests This change to enable remote execution of all corefx tests in UAP. Because the remote execution code for UAP is using WinRT APIs and to avoid forcing adding UAP configuration to all test projects, we factor the remote execution code into its own test library (called TestHelper) which is cross compiled. +21015 area-System.Drawing Add System.Drawing.Printing tests (#20711) Copy tests from mono and add few from myself. +21017 area-Infrastructure Scan for libraries with no ref in the ref package and no incoming dependencies in the runtime package @ericstj pointed out it would be useful to improve our build to detect such things, by comparing the runtime and designtime dependency graphs. They can exist as a legacy of an earlier runtime dependency Example: System.Security.AccessControl is in this category for UAP. corefx\bin\packages\Debug\reports\runtime.win10-x64.Microsoft.Private.CoreFx.UAP-runtime.dgml shows no incoming nodes for it (including none from netstandard.dll), and it has no ref in the design time package. (I'll take it out) +21018 area-System.Net Socket multicast will hang in UAP mode with any interfaces The receiveTask will hang forever in UAP run: https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/tests/FunctionalTests/SocketOptionNameTest.cs#L131, no matter what interface is set for MulticastOption. +21019 area-System.Net Disable test in System.Net.Sockets for UAP Now System.Net.Sockets.Functional tests will run clean in both innerloop and outerloop for UAP. I added the [Fact] label back for MulticastInterface_Set_AnyInterface_Succeeds(). The test will never run with only [Outerloop] label. See details here: https://github.com/dotnet/corefx/commit/6257f450653381af91ca5ff097dab837426e91ef#commitcomment-22500352 Contributes to: #20135 +21021 area-System.Collections Disable ComparersGenericTests.EqualityComparer_SerializationRoundtrip test for uap This test fails in Uap as well, with this System.Collections.Tests will be clean cc: @danmosemsft FYI: @morganbr +21022 area-Infrastructure Remove UWP (ILC & F5) and Desktop test runs on release/2.0.0 corefx runs @MattGal commented on [Thu Jun 08 2017](https://github.com/dotnet/core-eng/issues/904) Per @danmosemsft we don't actually use or pay attention to test results coming from the release/2.0.0 corefx branch. Disabling these runs, especially the ILC ones, will save huge amounts of time in test execution. This should just be a quick PR to the build pipelines folder but will require a ship room email as it's a PR to a release branch. +21023 area-System.Security System.Security.AccessControl should not need a UAP configuration After pending PR this will no longer be in UAP package, so this configuration is harmless, still need to remove UAP configuration and add this to project ``` false ``` then remove the pinvoke baseline for that library. Essentially: https://github.com/dotnet/corefx/compare/master...danmosemsft:cleanup.accesscontrol?expand=1 +21024 area-System.Runtime Factor out RtlGetVersion for UWP UWP does not use RtlGetVersion. Pull RtlGetVersion call out into non-UWP code in System.Runtime.InteropServices.RuntimeInformation then the pinvoke baseline can be removed. +21025 area-System.IO Change UWP calls to CreateFile etc to use brokered API (eg CreateFile2) These libraries need to change to CreateFile2 in their UAP configurations, and delete their pinvoke baseline file. System.IO.Pipes System.IO.Ports System.IO.FileSystem.Watcher ~~System.Diagnostics.FileVersionInfo~~ +21026 area-System.IO Change MMF to use FromApp API's Change System.IO.MemoryMappedFiles to have a uap configuration that uses the FromApp versions of these API's then delete the pinvoke baseline file there. ``` kernel32.dll!CreateFileMappingW kernel32.dll!MapViewOfFile kernel32.dll!OpenFileMappingW kernel32.dll!VirtualAlloc ``` +21028 area-Meta Update Pinvoke baselines to match latest modernapis.xml entries "Depends on picking up https://github.com/dotnet/buildtools/pull/1567. * Remove all baseline entries made redundant by new allow list entries * Rename all baseline files to be uap/uapaot specific (except where uap config does not yet exist) and in 2 cases netcoreapp/netstandard specific (for some OneCore violations) * Remove S.Security.AccessControl from the UWP package as it was not needed (and has violations) Some unexpected violations remain, I""ll follow up with Windows. " +21029 area-System.IO Fix System.IO.Packaging.Tests in uap to create files in temp directory using FileCleanupTestBase helper class System.IO.Packaging.Tests where failing in uap due to UnauthorizedAccessException because it was trying to create files inside the test folder and since they run inside appx it is not authorized. I refactored the tests to use FileCleanupTestBase helper class as a base class to create and remove files. This fixes all test failures in Uap for this test project. cc: @danmosemsft @JeremyKuhne @joperezr +21030 area-System.Data TransactionScope does not rollback changes after exception "I was testing `TransactionScope` in .NET Core 2.0 console app and find out that it does not rollback changes even if there is an exception. My test [application](https://github.com/dopare/SqlClientTest/blob/master/SqlClientTest/Program.cs) for repro. Part of source code using `TransactionScope` ```C# static void InsertUsingTransactionScope() { try { using (var tr = new TransactionScope()) using (var conn = new SqlConnection(ConnectionString)) { conn.Open(); // conn.EnlistTransaction(Transaction.Current); // System.NotSupportedException: Specified method is not supported. for (int i = 0; i < 3; i++) { var command = new SqlCommand(""INSERT INTO Records VALUES(@name)"", conn); command.Parameters.Add(new SqlParameter(""@name"", ""Inserted by transaction scope #"" + i)); var result = command.ExecuteNonQuery(); if (i == 1) throw new Exception(""InsertUsingTransactionScope""); } tr.Complete(); } } catch (Exception ex) { Console.WriteLine(ex); } } ``` Console Output: ``` System.Exception: InsertUsingBeginTransaction at SqlClientTest.Program.InsertUsingBeginTransaction() in C:\Users\Dopare\Source\Repos\SqlClientTest\Program.cs:line 51 System.Exception: InsertUsingTransactionScope at SqlClientTest.Program.InsertUsingTransactionScope() in C:\Users\Dopare\Source\Repos\SqlClientTest\Program.cs:line 84 ====== Records ====== Id: 3 Name: Inserted by transaction scope #0 Id: 4 Name: Inserted by transaction scope #1 ```" +21031 area-System.ComponentModel Fix netfx compat bug for cased properties in CompareAttribute @lajones Extacted from #20934 Fixes #20932 +21032 area-Infrastructure external/dir.props: remove Portable condition This PR checks what platforms fail when removing the PortableBuild condition in external/dir.props +21033 area-System.Diagnostics Add some System.Diagnostics.Debug tests I was wondering, why are lots of these attributes in coreclr - they are unused there. Should we move them to corefx? +21034 area-System.Net Test: System.Net.Http.Functional.Tests.HttpClientHandlerTest/PostAsync_CallMethod_StreamContent failed with System.Net.Http.WinHttpException : The handle is invalid Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/PostAsync_CallMethod_StreamContent(remoteServer: https://corefx-net.cloudapp.net/VerifyUpload.ashx, content: StreamContentWithSyncAsyncCo...` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Net.Http.WinHttpException : The handle is invalid Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__66.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.WinHttpException.ThrowExceptionUsingLastError() at System.Net.Http.WinHttpHandler.SetRequestHandleRedirectionOptions(SafeWinHttpHandle requestHandle) at System.Net.Http.WinHttpHandler.SetRequestHandleOptions(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : Master - 20170614.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170614.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FPostAsync_CallMethod_StreamContent(remoteServer:%20https:~2F~2Fcorefx-net.cloudapp.net~2FVerifyUpload.ashx,%20content:%20StreamContentWithSyncAsyncCo... +21035 area-System.Runtime System.Runtime.Serialization.Formatters.Tests sometimes hang in ret on Win7 "No test result generated under ""System.Runtime.Serialization.Formatters.Tests "" Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170614.01/workItem/System.Runtime.Serialization.Formatters.Tests/wilogs ~~~ 2017-06-14 04:36:15,831: INFO: proc(54): run_and_log_output: Output: xUnit.net console test runner (64-bit .NET Core) 2017-06-14 04:36:15,831: INFO: proc(54): run_and_log_output: Output: Copyright (C) 2014 Outercurve Foundation. 2017-06-14 04:36:15,831: INFO: proc(54): run_and_log_output: Output: 2017-06-14 04:36:15,892: INFO: proc(54): run_and_log_output: Output: Discovering: System.Runtime.Serialization.Formatters.Tests 2017-06-14 04:36:16,033: INFO: proc(54): run_and_log_output: Output: Discovered: System.Runtime.Serialization.Formatters.Tests 2017-06-14 04:36:16,095: INFO: proc(54): run_and_log_output: Output: Starting: System.Runtime.Serialization.Formatters.Tests ~~~" +21037 area-System.Net [Mac] Tests failed: System.Net.Internals.SocketExceptionFactory+ExtendedSocketException ## Type of failures Note: Might be related to #23364 (UWP) for some overlapping tests. ### Operation timed out Tests returning only this error: Test Name | # | Test Type -- | -- | -- SendRecv_Stream_TCP_AlternateBufferAndBufferList | 6x | System.Net.Sockets.Tests: SendReceiveApm / SendReceiveSpanSyncForceNonBlocking / SendReceiveMemoryNativeTask BufferZeroCountThenNormal_ZeroCountIgnored | 3x | System.Net.Sockets.Tests.SendPacketsAsync SendTimesOut_Throws | 3x | System.Net.Sockets.Tests.TimeoutTest SendPacketsElement_FileLargeOffset_Throws | 2x | System.Net.Sockets.Tests.SendPacketsAsync ClientAsyncAuthenticate_MismatchProtocols_Fails | 2x | System.Net.Security.Tests.ClientAsyncAuthenticateTest BeginConnectV6IPAddressToV6Host_Success | 2x | System.Net.Sockets.Tests.DualModeBeginConnectToIPAddress ConnectV6IPEndPointToV6Host_Success | 2x | System.Net.Sockets.Tests.DualModeConnectToIPEndPoint NormalBufferRange_Success | 1x | System.Net.Sockets.Tests.SendPacketsAsync BeginConnectV6IPEndPointToV6Host_Success | 1x | System.Net.Sockets.Tests.DualModeBeginConnectToIPEndPoint ClientAsyncAuthenticate_AllServerVsIndividualClientSupportedProtocols_Success | 1x | System.Net.Security.Tests.ClientAsyncAuthenticateTest BufferZeroCount_Ignored | 1x | System.Net.Sockets.Tests.SendPacketsAsync ConnectV6IPEndPointToDualHost_Success | 1x | System.Net.Sockets.Tests.DualModeConnectToIPEndPoint SendPacketsElement_MissingFile_Throws | 1x | System.Net.Sockets.Tests.SendPacketsAsync SendFile_Synchronous | 1x | System.Net.Sockets.Tests.SendFileTest SendPacketsElement_FileMultiPart_Success | 1x | System.Net.Sockets.Tests.SendPacketsAsync ConnectV6IPAddressToDualHost_Success | 1x | System.Net.Sockets.Tests.DualModeConnectToIPAddress Accept_Success | 1x | System.Net.Sockets.Tests.AcceptApm EmptyBuffer_Ignored | 1x | System.Net.Sockets.Tests.SendPacketsAsync NormalBuffer_Success | 1x | System.Net.Sockets.Tests.SendPacketsAsync SendPacketsElement_EmptyFileName_Throws | 1x | System.Net.Sockets.Tests.SendPacketsAsync Connect_Success | 1x | System.Net.Sockets.Tests.ConnectEap SendPacketsElement_FilePart_Success | 1x | System.Net.Sockets.Tests.SendPacketsAsync BeginConnectV6IPAddressToDualHost_Success | 1x | System.Net.Sockets.Tests.DualModeBeginConnectToIPAddress Test `BufferZeroCountThenNormal_ZeroCountIgnored`: ``` System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : Operation timed out [::1]:50462 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 4589 at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 825 at System.Net.Sockets.Tests.SendPacketsAsync.BufferZeroCountThenNormal_ZeroCountIgnored(SocketImplementationType type) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/tests/FunctionalTests/SendPacketsAsync.cs:line 211 ``` ### Connection refused Tests returning only this error: Test Name | # | Test Type -- | -- | -- GetContext_InvalidRequest_DoesNotGetContext | 14x | GetContext_InvalidRequest_DoesNotGetContext StatusDescription_GetWithCustomStatusCode_ReturnsExpected | 6x | System.Net.Tests.HttpListenerResponseHeadersTests KeepAlive_GetProperty_ReturnsExpected | 2x | System.Net.Tests.HttpListenerRequestTests ContentEncoding_GetProperty_ReturnsExpected | 2x | System.Net.Tests.HttpListenerRequestTests Cookies_SetAndSend_ClientReceivesExpectedHeaders | 2x | System.Net.Tests.HttpListenerResponseCookiesTests DualModeConnect_LoopbackDnsToHost_Helper | 1x | System.Net.Sockets.Tests.DualModeConnectToHostString DualModeConnect_DnsEndPointToHost_Helper | 1x | System.Net.Sockets.Tests.DualModeConnectToDnsEndPoint DualModeConnect_IPAddressListToHost_Success | 1x | System.Net.Sockets.Tests.DualModeConnectToIPAddressArray AppendHeader_NullOrEmptyName_ThrowsArgumentNullException | 1x | System.Net.Tests.HttpListenerResponseHeadersTests Cookies_SetInHeader_ClientReceivesExpectedHeaders | 1x | System.Net.Tests.HttpListenerResponseCookiesTests IsWebSocketRequest_GetProperty_ReturnsExpected | 1x | System.Net.Tests.HttpListenerRequestTests Redirect_Invoke_SetsRedirectionProperties | 1x | System.Net.Tests.HttpListenerResponseTests SetCookie_ValidCookie_AddsCookieToCollection | 1x | System.Net.Tests.HttpListenerResponseCookiesTests StatusDescription_SetCustom_Success | 1x | System.Net.Tests.HttpListenerResponseHeadersTests StatusDescription_SetNull_ThrowsArgumentNullException | 1x | System.Net.Tests.HttpListenerResponseHeadersTests ContentLength64_NotSetAndGetAfterSendingHeaders_ReturnValueDependsOnStatusCode | 1x | System.Net.Tests.HttpListenerResponseHeadersTests CopyFrom_AllValues_ReturnsClone | 1x | System.Net.Tests.HttpListenerResponseTests TransportContext_GetChannelBinding_ReturnsExpected | 1x | System.Net.Tests.HttpListenerRequestTests Test `StatusDescription_GetWithCustomStatusCode_ReturnsExpected`: ``` System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : Connection refused 127.0.0.1:1300 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 4589 at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 825 at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 930 --- End of stack trace from previous location where exception was thrown --- at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 940 at System.Net.Sockets.Socket.Connect(String host, Int32 port) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 889 at System.Net.Tests.HttpListenerFactory.GetConnectedSocket() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.HttpListener/tests/HttpListenerFactory.cs:line 156 at System.Net.Tests.HttpListenerResponseTestBase..ctor() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.HttpListener/tests/HttpListenerResponseTests.cs:line 21 at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, Boolean wrapExceptions) in /Users/buildagent/agent/_work/153/s/src/mscorlib/src/System/RtType.cs:line 4840 ``` ## History of failures Day | Build | OS | Error message | Test -- | -- | -- | -- | -- 5/3 | 20170503.04 | OSX10.12 | Connection refused | ContentEncoding_GetProperty_ReturnsExpected 6/27 | 20170627.03 | OSX10.12 | Operation timed out | ClientAsyncAuthenticate_AllServerVsIndividualClientSupportedProtocols_Success 7/7 | 20170707.02 | OSX10.12 | Operation timed out | BufferZeroCountThenNormal_ZeroCountIgnored 7/18 | 20170718.02 | OSX10.13 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext 7/20 | 20170720.01 | OSX10.12 | Connection refused | SetCookie_ValidCookie_AddsCookieToCollection 7/21 | 20170721.01 | OSX10.12 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext 8/2 | 20170802.01 | OSX10.12 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext 8/18 | 20170818.02 | OSX10.12 | Connection refused | ContentEncoding_GetProperty_ReturnsExpected 8/23 | 20170823.03 | OSX10.12 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext 8/25 | 20170825.02 | OSX10.12 | Connection refused | Cookies_SetInHeader_ClientReceivesExpectedHeaders 8/31 | 20170831.01 | OSX10.12 | Connection refused | StatusDescription_GetWithCustomStatusCode_ReturnsExpected 8/31 | 20170831.01 | OSX10.12 | Connection refused | IsWebSocketRequest_GetProperty_ReturnsExpected 9/2 | 20170902.02 | OSX10.12 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext 9/4 | 20170904.02 | OSX10.12 | Operation timed out | SendRecv_Stream_TCP_AlternateBufferAndBufferList 9/8 | 20170908.02 | OSX10.12 | Connection refused | KeepAlive_GetProperty_ReturnsExpected 9/9 | 20170909.01 | OSX10.12 | Operation timed out | SendPacketsElement_FileLargeOffset_Throws 9/13 | 20170913.01 | OSX10.12 | Connection refused | StatusDescription_SetNull_ThrowsArgumentNullException 9/18 | 20170918.03 | OSX10.12 | Operation timed out | BufferZeroCount_Ignored 9/20 | 20170920.02 | OSX10.12 | Operation timed out | ConnectV6IPEndPointToDualHost_Success 9/20 | 20170920.03 | OSX10.12 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext 9/21 | 20170921.01 | OSX10.12 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext 9/22 | 20170922.01 | OSX10.12 | Operation timed out (exception assert) | SendPacketsElement_MissingFile_Throws 9/25 | 20170925.03 | OSX10.12 | Operation timed out (exception assert) | ClientAsyncAuthenticate_MismatchProtocols_Fails 9/26 | 20170926.05 | OSX10.12 | Connection refused | Cookies_SetAndSend_ClientReceivesExpectedHeaders 10/10 | 20171010.03 | OSX10.12 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext 10/11 | 20171011.02 | OSX10.12 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext 10/13 | 20171013.01 | OSX10.12 | Operation timed out | BufferZeroCountThenNormal_ZeroCountIgnored 10/20 | 20171020.01 | OSX10.12 | Connection refused | StatusDescription_SetCustom_Success 10/20 | 20171020.02 | OSX10.12 | Connection refused | StatusDescription_GetWithCustomStatusCode_ReturnsExpected 10/21 | 20171021.02 | OSX10.12 | Connection refused | Redirect_Invoke_SetsRedirectionProperties 10/25 | 20171025.05 | OSX10.12 | Connection refused | StatusDescription_GetWithCustomStatusCode_ReturnsExpected 10/28 | 20171028.03 | OSX10.12 | Connection refused | StatusDescription_GetWithCustomStatusCode_ReturnsExpected 10/29 | 20171029.01 | OSX10.12 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext 10/30 | 20171030.01 | OSX10.12 | Operation timed out | SendRecv_Stream_TCP_AlternateBufferAndBufferList 10/30 | 20171030.01 | OSX10.12 | Connection refused | AppendHeader_NullOrEmptyName_ThrowsArgumentNullException 10/30 | 20171030.02 | OSX10.12 | Connection refused | DualModeConnect_IPAddressListToHost_Success 10/30 | 20171030.02 | OSX10.12 | Operation timed out | BufferZeroCountThenNormal_ZeroCountIgnored 10/31 | 20171031.01 | OSX10.12 | Operation timed out | BeginConnectV6IPAddressToV6Host_Success 11/1 | 20171101.03 | OSX10.12 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext 11/2 | 20171102.03 | OSX10.12 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext 11/29 | 20171129.01 | OSX10.12 | Connection refused | DualModeConnect_DnsEndPointToHost_Helper 12/7 | 20171207.02 | OSX10.12 | Operation timed out | SendTimesOut_Throws 12/10 | 20171210.01 | OSX10.12 | Operation timed out | SendPacketsElement_FileLargeOffset_Throws 12/10 | 20171210.03 | OSX10.12 | Connection refused | KeepAlive_GetProperty_ReturnsExpected 12/10 | 20171210.03 | OSX10.12 | Operation timed out | BeginConnectV6IPEndPointToV6Host_Success 12/13 | 20171213.10 | OSX10.12 | Connection refused | DualModeConnect_LoopbackDnsToHost_Helper 12/24 | 20171224.01 | OSX10.12 | Operation timed out | SendRecv_Stream_TCP_AlternateBufferAndBufferList - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171224.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SendReceiveApm~2FSendRecv_Stream_TCP_AlternateBufferAndBufferList(listenAt:%20::1)) 12/24 | 20171224.01 | OSX10.12 | Operation timed out | SendTimesOut_Throws - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171224.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.TimeoutTest~2FSendTimesOut_Throws(forceNonBlocking:%20False)) 1/4 | CI | OSX10.12 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext - [link](https://mc.dot.net/#/user/dotnet-maestro-bot/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/d0572e85122eaf8e180c52e196997ab96195e26c/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.InvalidClientRequestTests~2FGetContext_InvalidRequest_DoesNotGetContext) 1/6 | 20180106.01 | OSX10.12 | Operation timed out | SendFile_Synchronous - only in [catastrophic failure logs](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180106.01/workItem/System.Net.Sockets.Tests/wilogs) 1/8 | 20180108.02 | OSX10.12 | Connection refused | GetContext_InvalidRequest_DoesNotGetContext - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180108.02/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.InvalidClientRequestTests~2FGetContext_InvalidRequest_DoesNotGetContext) 1/10 | 20180110.03 | OSX10.12 | Operation timed out | SendRecv_Stream_TCP_AlternateBufferAndBufferList - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180110.03/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SendReceiveMemoryNativeTask~2FSendRecv_Stream_TCP_AlternateBufferAndBufferList(listenAt:%20::1)) 1/10 | 20180110.03 | OSX10.12 | Operation timed out | SendPacketsElement_FileMultiPart_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180110.03/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SendPacketsAsync~2FSendPacketsElement_FileMultiPart_Success(type:%20APM)) 1/11 | 20180111.02 | OSX10.12 | Connection refused | ContentLength64_NotSetAndGetAfterSendingHeaders_ReturnValueDependsOnStatusCode - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180111.02/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpListenerResponseHeadersTests~2FContentLength64_NotSetAndGetAfterSendingHeaders_ReturnValueDependsOnStatusCode(statusCode:%20204,%20expectedContentLength64:%200,%20expectedNumberOfBytes:%20114)) 1/19 | 20180119.02 | OSX10.12 | Operation timed out | ConnectV6IPAddressToDualHost_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180119.02/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DualModeConnectToIPAddress~2FConnectV6IPAddressToDualHost_Success) 1/19 | 20180119.04 | OSX10.12 | Operation timed out | Accept_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180119.04/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.AcceptApm~2FAccept_Success(listenAt:%20::1)) 1/19 | 20180119.06 | OSX10.12 | Operation timed out | EmptyBuffer_Ignored - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180119.06/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SendPacketsAsync~2FEmptyBuffer_Ignored(type:%20APM)) 1/21 | 20180121.01 | OSX10.12 | Operation timed out | NormalBuffer_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180121.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SendPacketsAsync~2FNormalBuffer_Success(type:%20APM)) 1/23 | 20180123.04 | OSX10.12 | Operation timed out | SendPacketsElement_EmptyFileName_Throws - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180123.04/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SendPacketsAsync~2FSendPacketsElement_EmptyFileName_Throws(type:%20APM)) 1/24 | 20180124.06 | OSX10.12 | Connection refused | StatusDescription_GetWithCustomStatusCode_ReturnsExpected - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180124.06/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpListenerResponseHeadersTests~2FStatusDescription_GetWithCustomStatusCode_ReturnsExpected(statusCode:%20407,%20expectedDescription:%20%5C%22Proxy%20Authentication%20Required%5C%22)) 1/26 | 20180126.07 | OSX10.12 | Operation timed out | ClientAsyncAuthenticate_MismatchProtocols_Fails - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180126.07/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.ClientAsyncAuthenticateTest~2FClientAsyncAuthenticate_MismatchProtocols_Fails(serverProtocol:%20Tls11,%20clientProtocol:%20Tls12,%20expectedException:%20typeof(System.IO.IOException))) 2/2 | 20180202.05 | OSX10.12 | Connection refused | CopyFrom_AllValues_ReturnsClone - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180202.05/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpListenerResponseTests~2FCopyFrom_AllValues_ReturnsClone) 2/6 | 20180206.02 | OSX10.12 | Connection refused | StatusDescription_GetWithCustomStatusCode_ReturnsExpected - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180206.02/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpListenerResponseHeadersTests~2FStatusDescription_GetWithCustomStatusCode_ReturnsExpected(statusCode:%20501,%20expectedDescription:%20%5C%22Not%20Implemented%5C%22)) 2/16 | 20180216.01 | OSX10.12 | Operation timed out | ConnectV6IPEndPointToV6Host_Success 2/25 | 20180225.01 | OSX10.12 | Operation timed out | Connect_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180225.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.ConnectEap~2FConnect_Success(listenAt:%20::1)) 2/27 | 20180227.01 | OSX10.12 | Operation timed out | NormalBufferRange_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180227.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SendPacketsAsync~2FNormalBufferRange_Success(type:%20Async)) 2/28 | 20180228.05 | OSX10.12 | Operation timed out | SendTimesOut_Throws 3/13 | 20180313.01 | OSX10.12 | Operation timed out | SendRecv_Stream_TCP_AlternateBufferAndBufferList 3/24 | 20180324.02 | OSX10.12 | Connection refused | Cookies_SetAndSend_ClientReceivesExpectedHeaders 3/24 | 20180324.03 | OSX10.12 | Operation timed out | ConnectV6IPAddressToV6Host_Success 3/27 | 20180327.04 | OSX10.12 | Operation timed out | SendRecv_Stream_TCP_AlternateBufferAndBufferList 3/29 | 20180329.02 | OSX10.12 | Operation timed out | SendPacketsElement_FilePart_Success 3/31 | 20180331.05 | OSX10.12 | Operation timed out | BeginConnectV6IPAddressToDualHost_Success 4/2 | 20180402.05 | OSX10.12 | Operation timed out | ConnectV6IPEndPointToV6Host_Success 4/3 | 20180403.04 | OSX10.12 | Connection refused | TransportContext_GetChannelBinding_ReturnsExpected +21040 area-System.Diagnostics Add System.Diagnostics.StackTrace tests Noticed this project was missing a test project, so went ahead and added a bunch of tests. +21042 area-System.ComponentModel System.ComponentModel.Tests.CategoryAttributeTests.Ctor_Category failed in CI failed test: System.ComponentModel.Tests.CategoryAttributeTests.Ctor_Category detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_rhel7.2_release/77/testReport/System.ComponentModel.Tests/CategoryAttributeTests/Ctor_Category_category____Default____expectedIsDefaultAttribute__True_/ MESSAGE: ~~~ Assert.Equal() Failure\n ↓ (pos 0)\nExpected: Default\nActual: Misc\n ↑ (pos 0) ~~~ STACK TRACE: ~~~ at System.ComponentModel.Tests.CategoryAttributeTests.Ctor_Category(String category, Boolean expectedIsDefaultAttribute) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_rhel7.2_release/src/System.ComponentModel.Primitives/tests/CategoryAttributeTests.cs:line 38 ~~~ +21043 area-Serialization Replacing Dictionary with Hashtable in CookieContainer for desktop serialization support Relates to https://github.com/dotnet/corefx/pull/20870 +21050 area-System.IO Fix DeflateStream Performance test +21051 area-System.Net Minor perf improvements to Sockets Shaves a few percent off various socket operations. It's close to noise, but appears to be statistically significant and amount to around 2-3% improvement in microbenchmarks that repeatedly receive/send (in which case receives complete asynchronously) and send/receive (in which case most if not all operations complete synchronously). (At this point most of the overhead associated with sockets (at least in the Windows build) is either in the P/Invokes to native or in peanut butter spread across lots of functions with very low exclusive amounts per function. There's likely a decent amount more to be done on Linux, where we've done less profiling and where we know there are improvements to be made around asynchronous completion and dispatch.) cc: @geoffkizer, @cipop, @davidsh, @vancem +21052 area-System.Collections Please provide ref indexer for collection builder types For example `ImmutableArray.Builder`. Note: https://github.com/dotnet/csharplang/issues/476 could make this a lot cleaner. Also related: https://github.com/dotnet/csharplang/issues/461 +21053 area-System.Numerics BigInteger should have a less strictly typed constructor "`BigInteger` should have a `public BigInteger(IList)` constructor instead of the existing `public BigInteger(Byte[])` constructor. ### Rationale First, asking for an interface instead of a specific type seems more in line with the ideology of the language. Second, there are situations when this would have been more convenient. As an example, we are implementing some public key cryptosystems and use big integers internally. Many PK cryptosystems ([example](https://en.wikipedia.org/wiki/ElGamal_encryption#Encryption)) produce ciphertexts that are actually a pair of big integers, which are stored as a single concatenated byte array; e.g., a `byte[96]` stores two big integers, 48 bytes long each. Reconstructing these would require an extra step of copying first and second halves of the array into individual arrays — an expensive operation. These add up when we are processing large data sets. Especially, considering that modern PK cryptosystems often work with ciphertexts 256 or 512 bytes long. Instead, if there was an `IList` constructor, we could have used `ArraySegment` and skip an unnecessary array copying. ### Details `BigInteger` from `System.Numerics` could be ""serialized"" to a byte array using `.ToByteArray()` method, and ""deserialized"" from a byte array using one of the constructors. However, currently, it only has a constructor that takes `byte[]`. Since the constructor (according to the [reference source](https://referencesource.microsoft.com/#System.Numerics/System/Numerics/BigInteger.cs,531)) actually only uses `.Length` property and indexed access, it would have been enough to require `IList` as an argument. The proposal is to replace an existing constructor with `public BigInteger(IList)`. Since `byte[]` implements `IList`, I don't see any compatibility issues that could arise from that change. As I understand, just adding it to the list of constructors would create ambiguity, but I didn't verify that. Hopefully, this could also be backported to the .NET Framework." +21054 area-System.Runtime Replace ActiveIssue with PlatformDetection.IsSupported So I can close that issue. And if we ever change our mind, the tests will light up. Fixes https://github.com/dotnet/corert/issues/3743 +21055 area-System.Collections Proposal: Specialize IA.Builder.ToImmutableArray, IHS.Builder.ToImmutableHashSet "A while ago I was working on a project and whenever I wanted an `ImmutableArray` I would just call `ToImmutableArray()` on the enumerable. I got so used to doing this, in fact, that I did it for `ImmutableArray.Builder`s without realizing there was a `ToImmutable()` method for a long time. ## Update 8/13/17 Instead of making the new facades instance methods, they will be extension methods. Rationale is given in [this comment](https://github.com/dotnet/corefx/issues/21055#issuecomment-317918406). ```cs public static class ImmutableArray { public static ImmutableArray ToImmutableArray(this ImmutableArray.Builder source); } public static class ImmutableDictionary { public static ImmutableDictionary ToImmutableDictionary(this ImmutableDictionary.Builder source); } public static class ImmutableHashSet { public static ImmutableHashSet ToImmutableHashSet(this ImmutableHashSet.Builder source); } public static class ImmutableList { public static ImmutableList ToImmutableList(this ImmutableList.Builder source); } public static class ImmutableSortedDictionary { public static ImmutableSortedDictionary ToImmutableSortedDictionary(this ImmutableSortedDictionary.Builder source); } public static class ImmutableSortedSet { public static ImmutableSortedSet ToImmutableSortedSet(this ImmutableSortedSet.Builder source); } ``` ## Update 6/16/17 We can add `IA.Builder.ToIA()`, `IHS.Builder.ToIHS()`, etc. instance methods that are simply wrappers for `ToImmutable()`, preventing people who make silly mistakes like me from degrading the performance of their app. ```cs public struct ImmutableArray { public class Builder { public ImmutableArray ToImmutableArray(); } } public class ImmutableHashSet { public class Builder { public ImmutableHashSet ToImmutableHashSet(); } } // ... ``` ## Original content It might be a good idea to add `ToImmutableArray()` to `ImmutableArray.Builder` and mark it `[Obsolete]`, for the sake of enforcing consistency. Similar for all of the other builder types. The `[Obsolete]` should not have `error: true` because we don't want to break existing code, but it will advise the user to use `ToImmutable()`. ```cs public struct ImmutableArray { public class Builder { [EditorBrowsable(Never)] [Obsolete(""Use ToImmutable() instead."")] public ImmutableArray ToImmutableArray(); } } public class ImmutableHashSet { public class Builder { [EditorBrowsable(Never)] [Obsolete(""Use ToImmutable() instead."")] public ImmutableHashSet ToImmutableHashSet(); } } // ... ``` /cc @AArnott, what do you think?" +21056 area-System.Diagnostics Store Activity wrapped into ObjectHandle in Logical CallContext Request to merge https://github.com/dotnet/corefx/pull/20963 into releae/2.0.0 Addresses #21027 **Is not approved by shiproom so far** +21057 area-System.Net Socket SelectTest.Poll_NotReady() fail in ILC mode due to metadata removed for performance reason System.Net.Sockets tests run fine in F5 ('uap') mode. But in ILC ('uap-aot') mode they are failing. It seems that the metadata the test needs to look up has been removed: ```c# [Theory] [InlineData(SelectMode.SelectRead)] [InlineData(SelectMode.SelectError)] public void Poll_NotReady(SelectMode mode) { KeyValuePair pair = CreateConnectedSockets(); try { Assert.False(pair.Key.Poll(SmallTimeoutMicroseconds, mode)); } finally { pair.Key.Dispose(); pair.Value.Dispose(); } } ``` We get failures like this: >System.Reflection.MissingMetadataException : This operation cannot be carried out because metadata for the following object was removed for performance reasons:\n\n System.Net.Sockets.SelectMode\n\nNo further information is available. Rebuild in debug mode for better information.\n\n Is this an expected problem from the UWP test runner in ILC mode? Or we need to fix this? cc: @davidsh +21058 area-System.Net Disable test in System.Net.Sockets for UAPAOT Now all Sockets Functional tests (innerloop and outerloop) can run clean on both UAP and UAPAOT mode. Contributes to: #20135 +21060 area-System.Linq NewExpression without constructor for certain system type "```C# using System; using System.Linq.Expressions; namespace NewExpressionWithNullCtor { class Program { static void Main(string[] args) { Expression> expression = e => new Post { A = new DateTime() }; Console.WriteLine((((expression.Body as MemberInitExpression)?.Bindings[0] as MemberAssignment).Expression as NewExpression).Constructor); Console.WriteLine((((expression.Body as MemberInitExpression)?.Bindings[0] as MemberAssignment).Expression as NewExpression).Constructor == null); Console.WriteLine(""Hello World!""); } public class Post { public DateTime A { get; set; } } } } ``` In the `NewExpression` created for `new DateTime()` the `Constuctor` property is null. Looking at the source of `NewExpression`, it does not seem to be possible to define a `NewExpression` without ctor (even need to pass the default parameterless one). So the Expression tree created looks incorrect. Instead of `new DateTime` if `new Post` is used then property has default ctor. So this seems to be specific to DateTime only (or may be other similar system types) ``` PM> dotnet --info .NET Command Line Tools (2.0.0-preview2-006443) Product Information: Version: 2.0.0-preview2-006443 Commit SHA-1 hash: 3a5612f153 Runtime Environment: OS Name: Windows OS Version: 10.0.15063 OS Platform: Windows RID: win10-x64 Base Path: C:\Users\smpatel\.dotnet\x64\sdk\2.0.0-preview2-006443\ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview1-002111-00 Build : 1ff021936263d492539399688f46fd3827169983 ``` " +21062 area-System.Net ILC mode will clear out ParamName for ArgumentNullException "System.Net.Sockets NullArgs_Throw() test runs fine in netcore/netfx/uap mode. But in ILC ('uap-aot') mode it is failing. It seems that the ParamName field has been optimized away: ```c# public void NullArgs_Throw(SocketImplementationType type) { int port; using (SocketTestServer.SocketTestServerFactory(type, _serverAddress, out port)) { using (Socket sock = new Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp)) { sock.Connect(new IPEndPoint(_serverAddress, port)); ArgumentNullException ex = Assert.Throws(() => { sock.SendPacketsAsync(null); }); Assert.Equal(""e"", ex.ParamName); //failure here, ex.ParamName == null } } } ``` Here is the implementation for SendPacketsAsync: ```c# public bool SendPacketsAsync(SocketAsyncEventArgs e) { ... if (e == null) { throw new ArgumentNullException(nameof(e)); } ... } ``` https://docs.microsoft.com/en-us/dotnet/api/system.argumentnullexception.-ctor?view=netcore-1.1#System_ArgumentNullException__ctor_System_String_ No matter what paramName value I passed in, ex.ParamName is always null. But if I do: ```c# SocketAsyncEventArgs e = null; ArgumentNullException testEx = new ArgumentNullException(nameof(e)); ``` This works, testEx.ParamName is ""e"". cc: @davidsh " +21063 area-Infrastructure Add option to build.cmd/sh to build projects in a directory Addresses https://github.com/dotnet/corefx/issues/20827 PTAL @mellinoe @kellypleahy @ericstj @stephentoub After this option folks can do the following: - Build all System.Collections projects ``` build.cmd/sh System.Collections ``` - Build System.Collection test projects (also runs tests) ``` build.cmd/sh src/System.Collections/tests ``` - While in a library directory build all projects under it. ``` cd src\System.Collections ..\..\build.cmd/sh . ``` These also support any of the standard build options like framework, flavor, os, allconfigurations, etc. Same rules apply that you have to have built the entire tree for that configuration before this will succeed. +21064 area-Serialization Fix Xml_TypeWithTwoDimensionalArrayProperty1. The test failed on uapaot when using sg.exe because sg.exe couldn't pre-generate correct serializer for the test type. It's hard to fix sg.exe to make it generate proper serializer for the type. But since the reflection-base serialization worked for the test type, the workaround is to let sg.exe not to generate serializer for the type and to use reflection-based serialization at runtime. And this would be the workaround we recommend to developers to deal with types having issues like #19897 . Fix #19897 +21066 area-System.Threading Change S.Threading.Overlapped tests that test on OS-invalid handles to use SafeHandle-invalid handles instead "The tests: `BindHandle_ClosedSyncHandleAsHandle_ThrowsArgumentException` and `BindHandle_ClosedAsyncHandleAsHandle_ThrowsArgumentException` are failing in uap because it looks like they are expecting that `handle.CloseWithoutDisposing` should mark the property `handle.isClosed` to true, and it doesn't. Tests look more or less like: ```c# .... handle.CloseWithoutDisposing(); AssertExtensions.Throws(""handle"", () => { ThreadPoolBoundHandle.BindHandle(handle); }); ... ``` Inside, BinHandle method, we do a check and throw ArgumentException if handle is closed, but that is not getting set when calling `CloseWithoutDisposing`. This issue is to track the work of fixing those tests and re enabling them. cc: @kouvel @stephentoub " +21067 area-Serialization Cross Serialization Cleanup cc @krwq +21068 area-System.Threading Fixing System.Threading.Overlapped tests in uap cc: @stephentoub @safern @danmosemsft @kouvel Fixing System.Threading.Overlapped tests since they were trying to create a handle on a file in a location where uap can't access. Also disabling two tests that are failing due to issue #21066 +21069 area-System.Net [release/1.0] Check for openssl version before setting cert callback. macOS High Sierra (10.13) has changed libcurl from using SecureTransport (darwinssl) as the TLS backend to using LibreSSL. The LibreSSL backend for libcurl handles the CURLOPT_SSL_CTX_FUNCTION setting that previously only OpenSSL did, and during the handshake we end up mixing pointers between OpenSSL (libcrypto.1.0.0.dylib) and LibreSSL (libcrypto.35.dylib), to poor effect. Rather than blindly try the option and see if it worked, only try the option when we understand the backend to be a supported backend (OpenSSL 1.0.x). Backport of https://github.com/dotnet/corefx/pull/19493. +21070 area-System.Diagnostics Fix TextWriterTraceListener.Tests for Uap Fixing tests to use temp path through FileCleanupTestBase class so that it is able to run inside Appx. cc: @danmosemsft @stephentoub @brianrob +21071 area-System.Net [release/1.1] Check for openssl version before setting cert callback. macOS High Sierra (10.13) has changed libcurl from using SecureTransport (darwinssl) as the TLS backend to using LibreSSL. The LibreSSL backend for libcurl handles the CURLOPT_SSL_CTX_FUNCTION setting that previously only OpenSSL did, and during the handshake we end up mixing pointers between OpenSSL (libcrypto.1.0.0.dylib) and LibreSSL (libcrypto.35.dylib), to poor effect. Rather than blindly try the option and see if it worked, only try the option when we understand the backend to be a supported backend (OpenSSL 1.0.x). Backport of https://github.com/dotnet/corefx/pull/19493. +21072 area-System.Net Fix System.Net.Requests tests for ILC (UAPAOT) Switch From Assert.Throws to AssertExtensions.Throws to handle the uapaot test runs which don't return string parameter name in exceptions. Contributes to #20136 +21074 area-System.Net CookieContainer improvements #20870 reverted some improvements made to `CookieContainer` to enable binary serialization. This PR adds back some of the improvements while maintaining serialization compat (also some minor cleanup I noticed while making changes here). The PR is broken up into several commits to make it easier to review the changes. cc: @ViktorHofer, @danmosemsft, @stephentoub, @davidsh, @CIPop +21075 area-System.Net System.Net.Security.Tests failed on armel "System.Net.Security.Tests failed on armel failed tcs are in tests/FunctionalTests/NegotiateStreamTestForUnix.cs ``` System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_KerberosAuthInvalidTarget_Failure [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_AuthToHttpTarget_Success [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_KerberosAuthDefaultCredentialsNoSeed_Failure [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_NtlmAuthentication_KerberosCreds_Success [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_KerberosAuthDefaultCredentials_Success [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_EchoServer_NTLM_ClientWriteRead_Successive_Sync_Success [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_EchoServer_ClientWriteRead_Successive_Sync_Success [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_KerberosAuthentication_Success [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_KerberosAuthInvalidPassword_Failure [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_KerberosAuthInvalidUser_Failure [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_NtlmAuthentication_NtlmUser_InvalidCredentials_Fail(credential: NetworkCredential { Domain = ""EST"", Password = ""ntlm_password"", SecurePassword = SecureString { Length = 13 }, UserName = ""ntlm_user"" }) [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_EchoServer_NTLM_ClientWriteRead_Successive_Async_Success [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_EchoServer_ClientWriteRead_Successive_Async_Success [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_NtlmAuthentication_Fallback_Success [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_NtlmAuthentication_ValidCredentials_Success(credential: NetworkCredential { Domain = ""TEST"", Password = ""ntlm_password"", SecurePassword = SecureString { Length = 13 }, UserName = ""ntlm_user"" }) [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_KerberosAuthWithoutRealm_Success [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_NtlmAuthentication_NtlmUser_InvalidCredentials_Fail(credential: NetworkCredential { Domain = ""TEST"", Password = ""ntlm_password"", SecurePaecureString { Length = 13 }, UserName = ""tlm_user"" }) [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_NtlmAuthentication_NtlmUser_InvalidCredentials_Fail(credential: NetworkCredential { Domain = ""TEST"", Password = ""tlm_password"", SecurePassword = SecureString { Length = 12 }, UserName = ""ntlm_user"" }) [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_NtlmAuthentication_NtlmUser_InvalidCredentials_Fail(credential: NetworkCredential { Domain = ""EST"", Password = ""ntlm_password"", SecurePassword = SecureString { Length = 13 }, UserName = ""TEST\\ntlm_user"" }) [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_NtlmAuthentication_NtlmUser_InvalidCredentials_Fail(credential: NetworkCredential { Domain = """", Password = ""ntlm_password"", SecurePassword = SecureString { Length = 13 }, UserName = ""ntlm_user@EST"" }) [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_NtlmAuthentication_NtlmUser_InvalidCredentials_Fail(credential: NetworkCredential { Domain = ""TEST.COREFX.NET"", Password = ""ntlm_password"", SecurePassword = SecureString { Length = 13 }, UserName = ""ntlm_user"" }) [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_NtlmAuthentication_ValidCredentials_Success(credential: NetworkCredential { Domain = """", Password = ""ntlm_password"", SecurePassword = SecureString { Length = 13 }, UserName = ""ntlm_user"" }) [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_NtlmAuthentication_ValidCredentials_Success(credential: NetworkCredential { Domain = """", Password = ""ntlm_password"", SecurePassword = SecureString { Length = 13 }, UserName = ""TEST\\ntlm_user"" }) [FAIL] System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_NtlmAuthentication_ValidCredentials_Success(credential: NetworkCredential { Domain = """", Password = ""ntlm_password"", SecurePassword = SecureString { Length = 13 }, UserName = ""ntlm_user@TEST"" }) [FAIL] ``` There are two thrown exceptions: ``` System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_KerberosAuthInvalidTarget_Failure [FAIL] System.AggregateException : One or more errors occurred. (No such file or directory) (The following constructor parameters did not have matching fixture data: KDCSetup fixture) ---- System.ComponentModel.Win32Exception : No such file or directory ---- The following constructor parameters did not have matching fixture data: KDCSetup fixture Stack Trace: ----- Inner Stack Trace #1 (System.ComponentModel.Win32Exception) ----- at System.Diagnostics.Process.ResolvePath(String filename) at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start() at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) /home/dragon/tizen.release/corefx.release.2.0.0/src/System.Net.Security/tests/FunctionalTests/NegotiateStreamTestForUnix.cs(111,0): at System.Net.Security.Tests.KDCSetup.RunSetupScript(String args) /home/dragon/tizen.release/corefx.release.2.0.0/src/System.Net.Security/tests/FunctionalTests/NegotiateStreamTestForUnix.cs(42,0): at System.Net.Security.Tests.KDCSetup..ctor() ----- Inner Stack Trace #2 (Xunit.Sdk.TestClassException) ----- System.MissingMethodException : Constructor on type 'System.Net.Security.Tests.NegotiateStreamTest' not found. Stack Trace: at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, Object[] args) at ReflectionAbstractionExtensions.<>c__DisplayClass0_0.b__0() at ReflectionAbstractionExtensions.CreateTestClass(ITest test, Type testClassType, Object[] constructorArguments, IMessageBus messageBus, ExecutionTimer timer, CancellationTokenSource cancellationTokenSource) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` it's because of below code. ```cs // in tests/FunctionalTests/NegotiateStreamTestForUnix.cs namespace System.Net.Security.Tests { public class KDCSetup : IDisposable { private static int RunSetupScript(string args = null) { ProcessStartInfo startInfo = new ProcessStartInfo(); // since ProcessStartInfo does not support Verb, we use sudo as // the program to be run startInfo.FileName = SudoCommand; // sudo startInfo.Arguments = string.Format(""bash {0} {1}"", ScriptName, args); // bash setup-kdc.sh --password {guid} --yes // sudo bash setup-kdc.sh --password {guid} --yes using (Process kdcSetup = Process.Start(startInfo)) // if sudo is not there, it throws System.ComponentModel.Win32Exception in ResolvePath() in Process.StartCore() { kdcSetup.WaitForExit(); return kdcSetup.ExitCode; } } ``` Current rootfs of armel doesn't have `sudo`. ``` ~/nfs/corefx/cross/rootfs (master ✘)✭ ᐅ ls arm armel x86 ~/nfs/corefx/cross/rootfs (master ✘)✭ ᐅ sudo find . -name ""sudo"" ./arm/var/lib/sudo ./arm/usr/share/doc/sudo ./arm/usr/share/lintian/overrides/sudo ./arm/usr/bin/sudo ./arm/usr/lib/sudo ./arm/etc/init.d/sudo ./arm/etc/pam.d/sudo ./x86/var/lib/sudo ./x86/usr/share/doc/sudo ./x86/usr/share/lintian/overrides/sudo ./x86/usr/bin/sudo ./x86/usr/lib/sudo ./x86/etc/init.d/sudo ./x86/etc/pam.d/sudo ``` This needs to care about a situation where there is no `sudo`." +21076 area-System.Security "Test: System.Security.Cryptography.X509Certificates.Tests.ChainTests/VerifyWithRevocation failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.X509Certificates.Tests.ChainTests/VerifyWithRevocation` has failed. Online Chain Built Validly within 3 tries Expected: True Actual: False Stack Trace: at System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyWithRevocation() in /root/corefx/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs:line 574 Build : 2.0.0 - 20170615.01 (Core Tests) Failing configurations: - Fedora.26.Amd64-x64 - Debug - Release - fedora.25.amd64-x64 - Debug - Release - Ubuntu.1610.Amd64-x64 - Debug - Release - Ubuntu.1704.Amd64-x64 - Debug - Release - Debian.90.Amd64-x64 - Debug - Release - Ubuntu.1404.Amd64-x64 - Debug - Release - Centos.73.Amd64-x64 - Debug - Release - Debian.87.Amd64-x64 - Debug - Release - RedHat.73.Amd64-x64 - Debug - Release - SLES.12.Amd64-x64 - Debug - Release - RedHat.72.Amd64-x64 - Debug - Release - suse.422.amd64-x64 - Debug - Release - Ubuntu.1604.Amd64-x64 - Debug - Release - OSX.1012.Amd64-x64 - Release - Windows.7.Amd64-x64 - Release - Windows.7.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170615.01/workItem/System.Security.Cryptography.X509Certificates.Tests/analysis/xunit/System.Security.Cryptography.X509Certificates.Tests.ChainTests~2FVerifyWithRevocation +21077 area-System.Net Fix System.Net.Security.Tests failed on armel Add code to care if sudo is not there on armel-rootfs - https://github.com/dotnet/corefx/issues/21075 - add try/catch for catching a situation where there is no sudo - return 1 if os is not specific os(ex. tizen) in setup-kdc.sh +21078 area-Infrastructure Can't Ctrl-C out of Installing dotnet cli in Windows command prompt hangs Normally I can press Ctrl-C and quit the currently exectuting task in the WIndows command prompt. However, things seem to jam up and hang if I press control C when installing the dotnet cli. This is a pain because my slow internet takes upwards of 1 hour to download the CLI, and I also often get errors like these and can't quit the build... ``` C:\Users\hugh\Documents\GitHub\corefx>build C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\GenFacades.Core.dll - Access is denied. C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\Microsoft.Cci.dll - Access is denied. C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\Microsoft.Cci.Extensions.dll - Access is denied. C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\Microsoft.DotNet.Build.Tasks.dll - Access is denied. C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\Newtonsoft.Json.dll - Access is denied. C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\NuGet.Common.dll - Access is denied. C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\NuGet.Packaging.Core.Types.dll - Access is denied. C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\NuGet.Packaging.dll - Access is denied. C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\NuGet.ProjectModel.dll - Access is denied. C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\NuGet.Versioning.dll - Access is denied. C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\roslyn\tools\Microsoft.Build.Tasks.CodeAnalysis.dll - Access is denied. C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\System.Diagnostics.TraceSource.dll - Access is denied. Installing dotnet cli... ``` +21079 area-System.Diagnostics StackTrace/StackFrame don't have a file name or position in .NET Core on Windows, but do with .NET Core on Unix and .NET Framework The following example is a test that passes with netfx, passes with netcoreapp on Unix, but not with netcoreapp on Windows. ```cs [Fact] public void Ctor_FileInfo_CorrectlyGetsFileName() { var stackTrace = new StackTrace(fNeedFileInfo: true); StackFrame[] frames = stackTrace.GetFrames()); Assert.True(frames.Any(f => f.GetFileName() != null)); } ``` +21081 area-Meta Need options for System information _From @vnd-edu on June 15, 2017 5:21_ ## Steps to reproduce I am migrating Asp.net web application in .net core. i am not getting any api to find system information. ## Expected behavior in .net application i used System.management api to run query and get the all information. ## Actual behavior how to get system information like processor id , system installed date and time? Please help me out. ## Environment data `dotnet --info` output: _Copied from original issue: dotnet/cli#6883_ +21086 area-System.Runtime Reenable Environment.GetCommandLineArgs() tests on ILC. Api is now supported. +21090 area-System.Net Disable bad certificates tests on Windows Due to issues with #7812 and certificates using DHE ciphers, we're disabling these tests on Windows for now. I am in the process of moving these tests from the *.badssl.com servers to servers that we control in Azure that won't use DHE cipher suites. +21091 area-Serialization Serialization Tests for Exceptions Failed on Uapaot Serialization tests for exceptions failed on uapaot due to #19585. This issue is for serialization team to track the issue.. +21092 area-Serialization Serialization Tests for System Types are Skipped on Uapaot Serialization tests for System types failed on uapaot due to https://github.com/dotnet/corefx/issues/20478. This issue is for serialization team to track the issue.. +21093 area-System.Globalization Port async-aware CultureInfo property from CoreCLR. @AtsushiKan commented on [Wed May 31 2017](https://github.com/dotnet/corert/issues/3747) The following two tests are ActiveIssued onthis: System.Globalization.Tests -method System.Globalization.Tests.CultureInfoAsync.TestCurrentCulturesAsync -method System.Globalization.Tests.CultureInfoAsync.TestCurrentCulturesWithAwait --- @AtsushiKan commented on [Thu Jun 15 2017](https://github.com/dotnet/corert/issues/3747#issuecomment-308786245) Now tracked as TFS451287 --- @tarekgh commented on [Thu Jun 15 2017](https://github.com/dotnet/corert/issues/3747#issuecomment-308799315) I have reassigned the TFS back to you @AtsushiKan. @AtsushiKan, is this for UAP scenario? or in general for aot? if it is in general for aot (even when running as non UAP, then you may assign it back to me). also I am wondering why we are tracking this as TFS and not here? +21095 area-System.Reflection [.NET Core 2.0.0-preview2-25407-01][Regression] ResourceManager.GetString(string) throw System.IO.FileNotFoundException "Summary ---------- PowerShell Core recently moved to .NET Core `2.0.0-preview2-25407-01` with .NET Core SDK `2.0.0-preview2-006388`. Then we found a regression in this .NET Core version -- the call to `ResourceManager.GetString(string)`, which worked fine on .NET Core `2.0.0-preview1-002106-00`, starts to throw `System.IO.FileNotFoundException`. Impact -------- This is a blocking issue for us. It basically breaks PowerShell core. Repro ------ An application that reads a resource string from a DLL ```CSharp using System; using System.Diagnostics; using System.Reflection; using System.Resources; namespace temp { class Program { static void Main(string[] args) { if (args.Length != 3 && args.Length != 4) { Console.WriteLine(""Usage: test.exe [-debug]""); return; } var path = args[0]; var rName = args[1]; var rKey = args[2]; if (args.Length == 4) { Console.WriteLine(""PID: {0}"", Process.GetCurrentProcess().Id); Console.ReadKey(); } Console.WriteLine(""Assembly:\n\t-- {0}"", path); Console.WriteLine(""Resource:\n\t-- {0}"", rName); Console.WriteLine(""StringKey:\n\t-- {0}"", rKey); Assembly asm = Assembly.LoadFrom(path); var rm = new ResourceManager(rName, asm); try { string rStr = rm.GetString(rKey); Console.WriteLine(""\n{0}:\n\t-- {1}"", rKey, rStr); } catch (Exception ex) { Console.WriteLine(""\n!!! {0} Caught:\n\t-- {1}"", ex.GetType().FullName, ex.Message); } } } } ``` `Lib.dll` is an example assembly that is built against .NET Core `2.0`. We can see the embedded resource files in `ildasm` as follows: ![image](https://user-images.githubusercontent.com/127450/27194987-a0135e68-51b9-11e7-888f-bc94348549ce.png) The project to build `Lib.dll` is also attached for your reference: [Lib.zip](https://github.com/dotnet/corefx/files/1078517/Lib.zip) Run the application to get a resource string: ```CSharp dotnet run C:\tmp\Lib.dll Lib.Resources.CsvCommandStrings CannotSpecifyPathAndLiteralPath ``` Expected Behavior -------------------- With .NET Core `2.0.0-preview1-002106-00` (using .NET Core SDK `2.0.0-preview1-005952`), the resource string corresponding to the key `CannotSpecifyPathAndLiteralPath` is retrieved back: ``` PS:34> dotnet run C:\tmp\Lib.dll Lib.Resources.CsvCommandStrings CannotSpecifyPathAndLiteralPath Assembly: -- C:\tmp\Lib.dll Resource: -- Lib.Resources.CsvCommandStrings StringKey: -- CannotSpecifyPathAndLiteralPath CannotSpecifyPathAndLiteralPath: -- You must specify either the -Path or -LiteralPath parameters, but not both. ``` Actual Behavior ----------------- With .NET Core `2.0.0-preview2-25407-01`, `System.IO.FileNotFoundException` is thrown by `ResourceManager.GetString(string)`: ``` PS:47> dotnet run C:\tmp\Lib.dll Lib.Resources.CsvCommandStrings CannotSpecifyPathAndLiteralPath Assembly: -- C:\tmp\Lib.dll Resource: -- Lib.Resources.CsvCommandStrings StringKey: -- CannotSpecifyPathAndLiteralPath !!! System.IO.FileNotFoundException Caught: -- Could not load file or assembly 'Lib.resources, Version=1.0.0.0, Culture=en-US, PublicKeyToken=null'. The system cannot find the file specified. ```" +21096 area-System.IO Windows TrimEndChars not aligned with NTFS In `corefx/src/System.IO.FileSystem/src/System/IO/PathHelpers.Windows.cs` we have definition `internal static readonly char[] TrimEndChars = { (char)0x9, (char)0xA, (char)0xB, (char)0xC, (char)0xD, (char)0x20, (char)0x85, (char)0xA0 };` This is not fully aligned with underlying file system. For example 0xA0 is allowed as end char on NTFS. This can cause problems, as described [here](https://github.com/PowerShell/PowerShell/issues/4017). I think the same is with char 0x85. Others seems to be OK, but I have not confirmed it. +21097 area-Serialization Area-Serialization Sprint 120 The issue is for tracking issues to be done in sprint 120 (due by 7/6/2017) +21098 area-Serialization Release/2.0.0 Desktop <--> Core serialization support Depends on https://github.com/dotnet/coreclr/pull/12300 Fixes #21141. cc @danmosemsft @stephentoub @krwq @morganbr +21099 area-System.Threading Disable TestEtw and GetTaskSchedulersForDebugger tests for UapAot Disable TestEtw test due to issue #20592. Disable GetTaskSchedulersForDebugger tests due to use of reflection. +21100 area-System.Net [2.0 Port] Fixing NativeOverlapped lifetime issue Port of #20793 to 2.0.0. Fixes #20400 . @karelz @DavidGoll PTAL +21101 area-Serialization Reenabling disabled tests in binaryserialization cc @danmosemsft @krwq +21102 area-System.Net ClientWebSocket.ReceiveAsync behavior difference between .NET Core and UWP There is a behavioral difference between the UAP and non-UAP implementations of ClientWebSocket.ReceiveAsync. Currently, the [WinRTWebSocket](https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WinRTWebSocket.cs)'s OnMessageReceived is only triggered when an entire message has been received, which doesn't allow ClientWebSocket.ReceiveAsync to hand partial data back to the app on-the-fly. +21103 area-Infrastructure Manual shims need to build against the correct vertical references in AllConfigurations leg See comments at https://github.com/dotnet/corefx/pull/20839. Currently the manual shims for mscorlib and System are resolving references from RuntimePath (https://github.com/dotnet/corefx/blob/master/src/shims/manual/mscorlib.csproj#L25), which is correct on individual vertical builds but as part of the AllConfigurations leg it will always be netcoreapp which means the shims for the other configurations (currently only uap) will not have the correct type-forwards. Given we don't ship them from that build leg this isn't a blocker but we need to fix this to ensure we produce the same assets in the AllConfigurations mode that we do in the individual vertical legs. cc @ViktorHofer @ericstj +21104 area-System.Net Fix System.Net.NetworkInformation.Tests for uap This tests where writing files to the test directory and since Uap tests run inside appx this is not authorized so they where failing. Fixed them to use temp path. This brings all System.Net.NetworkInformation.*.Tests to 0 failures cc: @danmosemsft +21105 area-System.Diagnostics "Thousands and thousands of EventSourceException while processing event ""TraceOperationBegin"" thrown throughout a debugging session" "Windows Build: 15063.rs2_release.170317-1834 While debugging, I'm seeing thousands upon thousands of: ``` EventSourceException while processing event ""TraceOperationBegin"" ``` The stack at the time is: mscorlib.dll!System.Diagnostics.Tracing.EventSource.ReportOutOfBandMessage(string msg, bool flush) Line 3931 C# mscorlib.dll!System.Diagnostics.Tracing.EventSource.ThrowEventSourceException(string eventName, System.Exception innerEx) Line 2452 C# mscorlib.dll!System.Diagnostics.Tracing.EventSource.WriteEventWithRelatedActivityIdCore(int eventId, System.Guid* relatedActivityId, int eventDataCount, System.Diagnostics.Tracing.EventSource.EventData* data) Line 1230 C# mscorlib.dll!System.Threading.Tasks.TplEtwProvider.TraceOperationBegin(int TaskID, string OperationName, long RelatedContext) Line 653 C# mscorlib.dll!System.Threading.Tasks.AsyncCausalityTracer.TraceOperationCreation(System.Threading.Tasks.CausalityTraceLevel traceLevel, int taskId, string operationName, ulong relatedContext) Line 191 C# mscorlib.dll!System.Threading.Tasks.StandardTaskContinuation.StandardTaskContinuation(System.Threading.Tasks.Task task, System.Threading.Tasks.TaskContinuationOptions options, System.Threading.Tasks.TaskScheduler scheduler) Line 313 C# mscorlib.dll!System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task continuationTask, System.Threading.Tasks.TaskScheduler scheduler, System.Threading.CancellationToken cancellationToken, System.Threading.Tasks.TaskContinuationOptions options) Line 4644 C# The [code that is throwing is](http://referencesource.microsoft.com/#mscorlib/system/diagnostics/eventing/eventsource.cs,1230): ``` C# if (etwSessions.IsEqualOrSupersetOf(m_curLiveSessions)) { // OutputDebugString(string.Format("" (1) id {0}, kwd {1:x}"", // m_eventData[eventId].Name, m_eventData[eventId].Descriptor.Keywords)); // by default the Descriptor.Keyword will have the perEventSourceSessionId bit // mask set to 0x0f so, when all ETW sessions want the event we don't need to // synthesize a new one if (!m_provider.WriteEvent(ref m_eventData[eventId].Descriptor, pActivityId, relatedActivityId, eventDataCount, (IntPtr)data)) ThrowEventSourceException(m_eventData[eventId].Name); Xunit.Sdk.InRangeException: Assert.InRange() Failure\r Range: (4 - 2147483647)\r Actual: 2\r at Xunit.Assert.InRange[T](T actual, T low, T high, IComparer`1 comparer)\r at System.Tests.GetCommandLineArgs.CheckCommandLineArgs(String[] args)\r --- End of inner exception stack trace ---\r at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)\r at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)\r at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)\r at RunnerRemoteExecutionService.RemoteExecutor.HandleTheRequest(ValueSet message, ValueSet returnData)\r Returned Error code: -4\r Expected: True\r Actual: False Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, RemoteInvokeOptions options) at System.Tests.GetCommandLineArgs.RemoteInvoke(String[] args) Build : Master - 20170616.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170616.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.GetCommandLineArgs~2FCheckCommandLineArgs_ArgsWithEvenBackSlash" +21123 area-System.Runtime "Test: System.Runtime.ExceptionServices.Tests.HandleProcessCorruptedStateExceptionsTests/ProcessExit_Called failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Runtime.ExceptionServices.Tests.HandleProcessCorruptedStateExceptionsTests/ProcessExit_Called` has failed. response.Status = Failure\r Expected: True\r Actual: False Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, RemoteInvokeOptions options) at System.Runtime.ExceptionServices.Tests.HandleProcessCorruptedStateExceptionsTests.ProcessExit_Called() Build : Master - 20170616.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170616.01/workItem/System.Runtime.Tests/analysis/xunit/System.Runtime.ExceptionServices.Tests.HandleProcessCorruptedStateExceptionsTests~2FProcessExit_Called +21126 area-System.IO removing two valid chars from trimming list, 0x85, 0xA0 As per the issue explained here https://github.com/dotnet/corefx/issues/21096 which is causing problems in dotnet languages like PowerShell described here https://github.com/PowerShell/PowerShell/issues/4017 those two characters should be removed from TrimEndChars. They are valid end chars under Windows (NTFS actually) +21127 area-System.Linq Fire Issue: System.Linq.Expressions.Tests on windows.81.amd64 Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170616.01/workItem/System.Linq.Expressions.Tests +21128 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/GetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol: Tls12, requestOnlyThisProtocol: True) failed with ""System.Net.Http.WinHttpException : The operation has been canceled""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test/GetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol: Tls12, requestOnlyThisProtocol: True)` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Net.Http.WinHttpException : The operation has been canceled Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.<>c__DisplayClass4_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.Tasks.ContinuationTaskFromTask.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : 2.0.0 - 20170616.01 (Core Tests) Failing configurations: - Windows.10.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170616.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test~2FGetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol:%20Tls12,%20requestOnlyThisProtocol:%20True) +21129 area-System.Drawing TypeConverters for System.Drawing TypeConverters are currently omitted from System.Drawing.Common, as described in #20593. Since the idea is that Mono will use the CoreFX System.Drawing sources, and Mono maintains compatibility with Desktop .NET, we should add them back. Here's what I can do: - Add the TypeConverters (possibly from Mono) to CoreFX - Add the TypeConverter attributes to the System.Drawing classes and hide them between a feature flag. The same will probably apply other Desktop-only features, such as `[Serializable]` attributes. +21131 area-System.Net API addition: System.Net.Http.HttpMethod.Patch method/verb "System.Net.Http.HttpMethod.Patch method/verb (RFC5789) is a extension to HTTP 1.1 protocol and method definitions defined in (RFC2616 Section 9). Suggestion: add API (static method HttpMethod.Patch that returns new HttpMethod(""PATCH"")) which is current workaround for this issue. Pros: * consistent API with other HTTP methods. Cons: * none, since this is new API, there should not be any breaking changes. Code changes can be viewed in the commit referenced below (no PR issued yet). Preliminary builds on MacOSX passed. References: * https://tools.ietf.org/html/rfc5789 * https://tools.ietf.org/html/rfc2616#section-9 * https://github.com/moljac/corefx/commit/457e528a2e5641643a50a438a356d0c7308cd84e" +21133 area-Serialization Enabling CookieContainer serialization by adding TypeForward for System.Net.PathList cc @danmosemsft @stephentoub @krwq @justinvp +21134 area-System.Runtime Reenable test that is now passing in uapaot Enabling test that is now passing in uapaot. Can't close the issue it pointed (#17450) yet, as the other test still crashes the app. cc: @stephentoub +21135 area-Infrastructure Announcement: Corefx CI legs updating "As part of so infrastructure changes we are shifting the CI system a little. As folks probably already have noticed we have added ""Portable"" legs instead of having a bunch of different individual linux distro legs. Given that Portable is our default netcoreapp configuration now we are also going to remove that term from the descriptions and simplify some of the other legs/names as well. Given the large changes to the CI system there isn't a great way to test beyond just switching which we plan to do today and we will actively work through any issues we run into. Please leave feedback on this issue or ping @weshaggard on any PR's where CI looks it has issues because of these changes. After the changes are done we should have the following CI legs PR: ``` CROSS Check OSX x64 Debug Build OSX x64 Release Build Linux x64 Debug Build Linux x64 Release Build Windows x64 Debug Build Windows x64 Release Build NetFx Debug Build NetFx Release Build UWP CoreCLR Debug Build UWP CoreCLR Release Build UWP NETNative Debug Build UWP NETNative Release Build All Configurations Debug Build All Configurations Release Build Tizen armel Debug Build Tizen armel Release Build Ubuntu14.04 arm Release Build Ubuntu16.04 arm Debug Build ``` By default a leg will run inner loop tests only and be targeting .NET Core portable binaries, unless a different configuration is specified (i.e. netfx, uwp, all). Each of these legs will also support an outerloop trigger by prepending the leg name with ""Outerloop"" for folks that need to manually trigger outerloop test runs. The only .NET Core non-portable legs we currently have is Tizen armel and Ubuntu arm @hqueue @jyoungyun Do we still need all those legs or is the Tizen leg enough? For reference the PR making the CI changes is https://github.com/dotnet/corefx/pull/20508. If there is any feedback/questions please add them to this issue. " +21136 area-System.IO Start on WinRT purge in FileSystem First commit is mostly changing `String` to `string` to match our coding guidelines. Second commit kills the WinRT FileStream class and FileStream constructor in FileSystem (which wasn't being used). Doing this in chunks to make it comprehensible. No functionality change in this first PR, but it changed enough lines that I want to push it through. +21137 area-Serialization Add more serialization test cases and fix SqlGuid Fixes: https://github.com/dotnet/corefx/issues/21141 cc: @morganbr @danmosemsft @ViktorHofer +21138 area-System.Net Add ClientWebSocket partial message test Adding new test case that pins the ClientWebSocket.ReceiveAsync behavioral difference between .NET Core and UWP tracked by issue #21102. I've confirmed that it consistently passes in non-UAP test runs and fails in UAP test runs. Disabling it for UAP for now; will enable it as part of the #21102 fix. cc: @davidsh @CIPop +21140 area-System.Runtime Add some System.Runtime.InteropServices tests Cleanup some existing test code, add tests to increase the code coverage numbers in the library. I'm planning on submitting a PR after this adding some missing coverage for things that reside in coreclr +21141 area-Serialization SqlGuid is not deserializing properly on netfx It's already in the: PR https://github.com/dotnet/corefx/pull/21137 +21143 area-Serialization DCJS_GetOonlyDictionary_UseSimpleDictionaryFormat Failed in ReflectionOnly on Uapaot ``` DataContractJsonSerializerTests.DCJS_GetOonlyDictionary_UseSimpleDictionaryFormat [FAIL] $BlockedFromReflection_0_1dac0683 : This object cannot be invoked because it was metadata-enabled for browsing only: 'System.Boolean.Parse(System.String)' For more informati on, please visit http://go.microsoft.com/fwlink/?LinkID=616867 Stack Trace: f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\Internal\Reflection\Core\Execution\ExecutionEnvironment.cs(130,0): at Internal.Reflection.Core.Execution.Ex ecutionEnvironment.GetMethodInvoker($RuntimeTypeInfo declaringType, $QMethodDefinition methodHandle, $RuntimeTypeInfo[] genericMethodTypeArguments, MemberInfo exceptionPertainant) f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\MethodInfos\NativeFormat\NativeFormatMethodCommon.cs(42,0): at System.Reflection. Runtime.MethodInfos.NativeFormat.NativeFormatMethodCommon.GetUncachedMethodInvoker($RuntimeTypeInfo[] methodArguments, MemberInfo exceptionPertainant) f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\MethodInfos\RuntimeNamedMethodInfo.cs(304,0): at System.Reflection.Runtime.Method Infos.RuntimeNamedMethodInfo$1.get_UncachedMethodInvoker() f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\MethodInfos\RuntimeMethodInfo.cs(357,0): at System.Reflection.Runtime.MethodInfos .RuntimeMethodInfo.get_MethodInvoker() f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\MethodInfos\RuntimeMethodInfo.cs(191,0): at System.Reflection.Runtime.MethodInfos .RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) D:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\ReflectionJsonFormatReader.cs(196,0): at System.Runtime.Serializ ation.Json.ReflectionJsonReader.ReadSimpleDictionary($XmlReaderDelegator xmlReader, $XmlObjectSerializerReadContext context, $CollectionDataContract collectionContract, Type keyVa lueType, Object dictionary) D:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\ReflectionJsonFormatReader.cs(126,0): at System.Runtime.Serializ ation.Json.ReflectionJsonReader.ReflectionReadSpecialCollection($XmlReaderDelegator xmlReader, $XmlObjectSerializerReadContext context, $CollectionDataContract collectionContract, Object resultCollection) D:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\ReflectionReader.cs(60,0): at System.Runtime.Serialization.Reflection Reader.ReflectionReadGetOnlyCollection($XmlReaderDelegator xmlReader, $XmlObjectSerializerReadContext context, $XmlDictionaryString collectionItemName, $XmlDictionaryString collec tionItemNamespace, $CollectionDataContract collectionContract) D:\OSS\corefx-1\corefx\src\System.Private.DataContractSerialization\src\System\Runtime\Serialization\Json\ReflectionJsonFormatReader.cs(47,0): at System.Runtime.Serializa tion.Json.ReflectionJsonCollectionReader.ReflectionReadGetOnlyCollection($XmlReaderDelegator xmlReader, $XmlObjectSerializerReadContextComplexJson context, $XmlDictionaryString em ptyDictionaryString, $XmlDictionaryString itemName, $CollectionDataContract collectionContract) Invoke(16707566,0): at System.Runtime.Serialization.Json.JsonFormatClassWriterDelegate.Invoke($XmlWriterDelegator xmlWriter, Object obj, $XmlObjectSerializerWriteContextC omplexJson context, $ClassDataContract dataContract, $XmlDictionaryString[] memberNames) ``` +21144 area-Serialization Fix Serialization Tests for Collection Types. Serialization tests for System.Collection types failed in ReflectionOnly mode on uapaot due to missing the metadata for the collections types. The fix is to change the tests' rd.xml to keep the metadata for those types. Fix #20478 Fix #20481 +21145 area-System.Net Fix HttpClient.MaxResponseContentBufferSize handling It's not causing failures in all cases it should, as it's comparing against a buffer size that may have grown to be larger than the desired max. cc: @davidsh, @cipop, @geoffkizer +21146 area-Serialization Investigate the way to run SGEN.exe Investigate the way to run SGEN.exe from CLI. +21147 area-Serialization Automate SGEN tests 1. Add a new test project in SGEN and reuse the current XML tests. 2. Add baseline test +21148 area-System.Net System.Net.Sockets: Go back to using GCHandles for linking a SocketAsyncContext to native code In the following commit: https://github.com/dotnet/corefx/commit/730df62e8948846f8661189811980ac341559d1a To fix a race we creates a new layer of 'tokens' and a dictionary to go from these tokens to the SocketAsyncContext (which is the managed object holding the state of a single asynchronous I/O. After some discussion with @geoffkizer @stephentoub @jkotas and others we believe that it is a straightforward solution that solves the race. It looks much like what the code WAS like (thus reverting this change would be a good starting point), but on close it will hand off to the polling thread the responsibility of freeing the GCHandle. +21149 area-System.IO Clean up attribute code - Cleans up and optimizes file attriubte retrieval - Adds wrapper for disabling media prompt and wraps correctly in enumerator This is backlog work that is important for taking the next steps to removing our WinRT code. +21151 area-System.Threading System.Threading.Tests.MutexTests hanging in Uap "This two tests are hanging in uap: CrossProcess_NamedMutex_ProtectedFileAccessAtomic AbandonExisting Sorce code: https://github.com/dotnet/corefx/blob/master/src/System.Threading/tests/MutexTests.cs#L142-L201 They both hang when calling `new Mutex(false, name)` and the name contains `""Global\\""` as its prefix. cc: @kouvel @AntonLapounov" +21152 area-System.Threading Disable System.Threading Mutex hanging tests This two tests are hanging and we are not getting test results. Disabling them to unblock the test run. cc: @danmosemsft @kouvel +21154 area-Infrastructure Enable UWP6.0 MF x86 and MF ARM legs in outerloop This issue is tracking turning on the Multifile x86 and Multifile arm legs in Helix as part of the UWP6.0 zbb. @tijoytom you'll want to chat with @joperezr for a pointer /cc @yizhang82 +21155 area-Serialization Improve XmlSerializer performance, especially the reflection based serializer This are some improvements for the XmlSerializer. Here are the results from the perf run for the new reflection based serializer. Test | Baseline | Changes | % Diff --- | --- | --- | --- XsDeSerializationTest(numberOfRuns: 1, testType: ListOfInt, testSize: 1048576) | 872.6 | 836.0 | 4.19% XsDeSerializationTest(numberOfRuns: 1, testType: SimpleType, testSize: 15) | 770.5 | 629.7 | 18.28% XsDeSerializationTest(numberOfRuns: 1, testType: SimpleTypeWithFields, testSize: 15) | 846.6 | 642.5 | 24.11% XsDeSerializationTest(numberOfRuns: 10, testType: SimpleType, testSize: 1) | 0.261 | 0.214 | 18.30% XsDeSerializationTest(numberOfRuns: 100, testType: ArrayOfSimpleType, testSize: 1024) | 462.1 | 359.9 | 22.11% XsDeSerializationTest(numberOfRuns: 100, testType: ByteArray, testSize: 1024) | 1.403 | 1.420 | -1.18% XsDeSerializationTest(numberOfRuns: 100, testType: DateTimeArray, testSize: 1024) | 440.6 | 131.9 | 70.07% XsDeSerializationTest(numberOfRuns: 100, testType: ListOfInt, testSize: 1024) | 51.38 | 49.98 | 2.73% XsDeSerializationTest(numberOfRuns: 100, testType: ListOfSimpleType, testSize: 1024) | 462.0 | 358.3 | 22.44% XsDeSerializationTest(numberOfRuns: 1000, testType: ArrayOfSimpleType, testSize: 128) | 581.9 | 457.5 | 21.38% XsDeSerializationTest(numberOfRuns: 1000, testType: ListOfInt, testSize: 128) | 67.16 | 64.98 | 3.24% XsDeSerializationTest(numberOfRuns: 1000, testType: ListOfSimpleType, testSize: 128) | 589.8 | 444.5 | 24.64% XsDeSerializationTest(numberOfRuns: 10000, testType: ISerializable, testSize: -1) | 34.43 | 33.12 | 3.80% XsDeSerializationTest(numberOfRuns: 10000, testType: SimpleStructWithProperties, testSize: 1) | 87.05 | 76.87 | 11.69% XsDeSerializationTest(numberOfRuns: 10000, testType: String, testSize: 1024) | 65.88 | 62.23 | 5.54% XsDeSerializationTest(numberOfRuns: 10000, testType: String, testSize: 128) | 37.64 | 35.23 | 6.40% XsDeSerializationTest(numberOfRuns: 10000, testType: XmlElement, testSize: -1) | 35.48 | 35.33 | 0.42% XsDeSerializationTest(numberOfRuns: 5, testType: ByteArray, testSize: 1048576) | 74.57 | 69.71 | 6.52% XsSerializationTest(numberOfRuns: 1, testType: ListOfInt, testSize: 1048576) | 336.9 | 318.8 | 5.38% XsSerializationTest(numberOfRuns: 1, testType: SimpleType, testSize: 15) | 425.8 | 297.6 | 30.11% XsSerializationTest(numberOfRuns: 1, testType: SimpleTypeWithFields, testSize: 15) | 495.3 | 361.8 | 26.96% XsSerializationTest(numberOfRuns: 10, testType: SimpleType, testSize: 1) | 0.122 | 0.107 | 12.29% XsSerializationTest(numberOfRuns: 100, testType: ArrayOfSimpleType, testSize: 1024) | 241.6 | 242.1 | -0.20% XsSerializationTest(numberOfRuns: 100, testType: ByteArray, testSize: 1024) | 0.420 | 0.374 | 10.95% XsSerializationTest(numberOfRuns: 100, testType: DateTimeArray, testSize: 1024) | 69.62 | 62.27 | 10.56% XsSerializationTest(numberOfRuns: 100, testType: ListOfInt, testSize: 1024) | 31.47 | 29.18 | 7.29% XsSerializationTest(numberOfRuns: 100, testType: ListOfSimpleType, testSize: 1024) | 244.6 | 238.2 | 2.61% XsSerializationTest(numberOfRuns: 1000, testType: ArrayOfSimpleType, testSize: 128) | 312.8 | 304.4 | 2.67% XsSerializationTest(numberOfRuns: 1000, testType: ListOfInt, testSize: 128) | 40.78 | 38.56 | 5.46% XsSerializationTest(numberOfRuns: 1000, testType: ListOfSimpleType, testSize: 128) | 306.4 | 299.6 | 2.21% XsSerializationTest(numberOfRuns: 10000, testType: ISerializable, testSize: -1) | 14.58 | 14.70 | -0.80% XsSerializationTest(numberOfRuns: 10000, testType: SimpleStructWithProperties, testSize: 1) | 45.31 | 43.90 | 3.13% XsSerializationTest(numberOfRuns: 10000, testType: String, testSize: 1024) | 30.80 | 26.38 | 14.36% XsSerializationTest(numberOfRuns: 10000, testType: String, testSize: 128) | 14.67 | 14.30 | 2.48% XsSerializationTest(numberOfRuns: 10000, testType: XmlElement, testSize: -1) | 13.88 | 13.77 | 0.83% XsSerializationTest(numberOfRuns: 5, testType: ByteArray, testSize: 1048576) | 13.64 | 9.879 | 27.55% Here are the results for the default ref emit serializer. Test | Baseline | Changes | % Diff --- | --- | --- | --- XsDeSerializationTest(numberOfRuns: 1, testType: ListOfInt, testSize: 1048576) 400.6 | 377.9 | 5.66% XsDeSerializationTest(numberOfRuns: 1, testType: SimpleType, testSize: 15) | 369.2 | 361.1 | 2.19% XsDeSerializationTest(numberOfRuns: 1, testType: SimpleTypeWithFields, testSize: 15) | 367.2 | 354.2 | 3.54% XsDeSerializationTest(numberOfRuns: 10, testType: SimpleType, testSize: 1) | 0.135 | 0.132 | 2.31% XsDeSerializationTest(numberOfRuns: 100, testType: ArrayOfSimpleType, testSize: 1024) | 133.0 | 128.4 | 3.43% XsDeSerializationTest(numberOfRuns: 100, testType: ByteArray, testSize: 1024) | 1.389 | 1.365 | 1.70% XsDeSerializationTest(numberOfRuns: 100, testType: DateTimeArray, testSize: 1024) | 56.61 | 53.87 | 4.84% XsDeSerializationTest(numberOfRuns: 100, testType: ListOfInt, testSize: 1024) | 36.47 | 34.79 | 4.62% XsDeSerializationTest(numberOfRuns: 100, testType: ListOfSimpleType, testSize: 1024) | 130.1 | 128.0 | 1.61% XsDeSerializationTest(numberOfRuns: 1000, testType: ArrayOfSimpleType, testSize: 128) | 173.3 | 165.4 | 4.59% XsDeSerializationTest(numberOfRuns: 1000, testType: ListOfInt, testSize: 128) | 48.73 | 47.62 | 2.28% XsDeSerializationTest(numberOfRuns: 1000, testType: ListOfSimpleType, testSize: 128) | 171.1 | 169.8 | 0.79% XsDeSerializationTest(numberOfRuns: 10000, testType: ISerializable, testSize: -1) | 29.27 | 29.42 | -0.50% XsDeSerializationTest(numberOfRuns: 10000, testType: SimpleStructWithProperties, testSize: 1) | 50.88 | 49.02 | 3.67% XsDeSerializationTest(numberOfRuns: 10000, testType: String, testSize: 1024) | 67.47 | 63.73 | 5.54% XsDeSerializationTest(numberOfRuns: 10000, testType: String, testSize: 128) | 38.23 | 37.70 | 1.38% XsDeSerializationTest(numberOfRuns: 10000, testType: XmlElement, testSize: -1) | 35.55 | 34.15 | 3.94% XsDeSerializationTest(numberOfRuns: 5, testType: ByteArray, testSize: 1048576) | 73.92 | 70.33 | 4.86% XsSerializationTest(numberOfRuns: 1, testType: ListOfInt, testSize: 1048576) | 249.2 | 235.6 | 5.47% XsSerializationTest(numberOfRuns: 1, testType: SimpleType, testSize: 15) | 267.9 | 143.1 | 46.60% XsSerializationTest(numberOfRuns: 1, testType: SimpleTypeWithFields, testSize: 15) | 270.8 | 140.0 | 48.29% XsSerializationTest(numberOfRuns: 10, testType: SimpleType, testSize: 1) | 0.056 | 0.063 | **-13.68%** XsSerializationTest(numberOfRuns: 100, testType: ArrayOfSimpleType, testSize: 1024) | 64.82 | 61.19 | 5.59% XsSerializationTest(numberOfRuns: 100, testType: ByteArray, testSize: 1024) | 0.407 | 0.367 | 9.77% XsSerializationTest(numberOfRuns: 100, testType: DateTimeArray, testSize: 1024) | 54.06 | 47.28 | 12.53% XsSerializationTest(numberOfRuns: 100, testType: ListOfInt, testSize: 1024) | 22.66 | 20.47 | 9.66% XsSerializationTest(numberOfRuns: 100, testType: ListOfSimpleType, testSize: 1024) | 63.68 | 60.40 | 5.15% XsSerializationTest(numberOfRuns: 1000, testType: ArrayOfSimpleType, testSize: 128) | 83.09 | 79.71 | 4.07% XsSerializationTest(numberOfRuns: 1000, testType: ListOfInt, testSize: 128) | 29.88 | 28.60 | 4.31% XsSerializationTest(numberOfRuns: 1000, testType: ListOfSimpleType, testSize: 128) | 82.95 | 78.79 | 5.02% XsSerializationTest(numberOfRuns: 10000, testType: ISerializable, testSize: -1) | 18.41 | 18.02 | 2.09% XsSerializationTest(numberOfRuns: 10000, testType: SimpleStructWithProperties, testSize: 1) | 29.78 | 29.32 | 1.55% XsSerializationTest(numberOfRuns: 10000, testType: String, testSize: 1024) | 30.50 | 26.01 | 14.74% XsSerializationTest(numberOfRuns: 10000, testType: String, testSize: 128) | 14.75 | 13.71 | 7.04% XsSerializationTest(numberOfRuns: 10000, testType: XmlElement, testSize: -1) | 17.20 | 16.57 | 3.63% XsSerializationTest(numberOfRuns: 5, testType: ByteArray, testSize: 1048576) | 13.35 | 10.07 | 24.57% The serialization result for SimpleType and testSize of 1 shows a regression. This only have the number of runs set at 10 and the results are very small periods of time. When modifying the test to have the number of runs at 10000, performance improved with these changes by 8.1%. Further investigation is needed as it appears there's a higher startup cost which is overcome by a per-iteration cost when the number of iterations passes some threshold. +21156 area-System.IO System.IO.Ports.Tests.OpenDevices.OpenDevices01 failed in uap This test is throwing the following exception: ``` System.Exception : Unknown Win32 Error: 5 Stack Trace: at System.IO.Ports.Tests.DosDevices.CallQueryDosDevice(String name, Int32& dataSize) at System.IO.Ports.Tests.DosDevices.Initialize() at System.IO.Ports.Tests.DosDevices..ctor() at System.IO.Ports.Tests.OpenDevices.OpenDevices01() ``` When calling [CallQueryDosDevice](https://github.com/dotnet/corefx/blob/master/src/System.IO.Ports/tests/SerialPort/DosDevices.cs#L133) cc: @danmosemsft @JeremyKuhne +21157 area-System.IO Remove WinRT specific code A lot won't be necessary. Killing a number of methods that we don't need to make re-enabling the ones we do easier. +21158 area-Infrastructure Array initialization throws ArgumentOutOfRangeException if size is 0 in ILC mode System.Net.Sockets.SendPacketsAsync tests run fine in F5 ('uap') & netcore & netfx mode. But in ILC ('uap-aot') mode they are failing. It seems that the array initialization throws ArgumentOutOfRangeException if size is 0 (take one test for example): ```c# [Theory] [InlineData(SocketImplementationType.APM)] [InlineData(SocketImplementationType.Async)] public void EmptyBuffer_Ignored(SocketImplementationType type) { SendPackets(type, new SendPacketsElement(new byte[0]), 0); } ``` SendPackets() will eventually call into `SetupPinHandlesSendPackets()` in `SocketAsyncEventArgs.Windows.cs` ```c# private unsafe void SetupPinHandlesSendPackets() { ... _sendPacketsDescriptor = new Interop.Winsock.TransmitPacketsElement[_sendPacketsElementsFileCount + _sendPacketsElementsBufferCount]; // throws ArgumentOutOfRangeException if size is 0, i.e _sendPacketsElementsFileCount + _sendPacketsElementsBufferCount == 0 ... } ``` If _sendPacketsElementsFileCount + _sendPacketsElementsBufferCount == 0, we get failures like this: >System.ArgumentOutOfRangeException : Specified argument was out of the range of valid values. Is this an expected problem from the UWP test runner in ILC mode? This is the cause for 90% of Sockets Functional tests failure in ILC mode. cc: @davidsh +21159 area-System.IO Fix System.IO.Ports.Tests for uap System.IO.Ports.Tests where hanging because of issue related to: https://github.com/dotnet/corefx/issues/21156 Also I've fixed tests that where trying to access common path to use TempPath and disabled a couple of more tests. +21160 area-System.Data Standarize on DiagnosticSource for tracing in System.Data.* components Currently we have around [27 `EventSource` trace points](https://github.com/dotnet/corefx/search?p=1&q=DataCommonEventSource++&type=&utf8=%E2%9C%93) in `System.Data.Common`. On the other hand, SqlClient has been instrumented with `DiagnosticSource`. I talked to @vancem today and we came to the conclusion that there may be enough value in standardizing on `DiagnosticSource` before we release 2.0. This would make the story more consistent for consumers of ADO.NET events (we are planning to add more `DiagnosticSource` instrumentation and make it easier for ADO.NET providers to add it) and once we ship the `EventSource` instrumentation it is unlikely that we will be able to remove it. cc @saurabh500 +21162 area-System.Xml Fix System.Xml.Xsl.XslTransformApi.Tests in uap This tests where crashing because they had ~1300 failures in uap and we currently dump all the failures to the app runner's UI so that 1300 stack traces where blowing up the runner and crashing. This PR fixes all of them and brings failures to 0. So we should stop seeing them crashing and this would bring 1546 more test that will be running :) cc: @danmosemsft +21163 area-Serialization Aot forwarder fixes Fixes the ifdefs for the mscorlib and System facades to build for aot as well. Also includes a minor rd.xml tweak for BinaryFormatter. Fixes hundreds of BinaryFormatter tests. Progress on #19119 +21165 area-System.Runtime Add ComAwareEventInfo tests Extracted from #21140 +21166 area-System.Data System.ExecutionEngineException in System.Data.Common.dll The program is an ASP.Net Core 2.0 Preview MVC application, runs in an IIS application pool. After running several hours, an access to an action will let the runtime to load System.Data.Common.dll, then trigger a System.ExecutionEngineException in that assembly. Here is the stack trace extracted from the Stack window in Visual Studio's Debug View (I cannot get details that inside the exception, since Visual Studio always said `Cannot evaluate the value of expression $exception`.): ``` [Managed to native] System.Data.Common.dll!System.Data.Common.DbConnectionStringBuilder.ConnectionString.set(string value) Unknown MySqlConnector.dll!MySql.Data.MySqlClient.MySqlConnection.ConnectionString.set(string value) Unknown MySqlConnector.dll!MySql.Data.MySqlClient.MySqlConnection.MySqlConnection(string connectionString) Unknown > SXLibraryCore.dll!SXLibraryCore.DBHelper.MySql.CreateConnection(string connStr) Line 45 C# ClientDemo.dll!LoggingTester.Relay.NewConnection() Line 41 C# ClientDemo.dll!LoggingTester.Controllers.TestController.Index() Line 25 C# [Lightweight Function] Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ObjectMethodExecutor.Execute(object target, object[] parameters) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync() Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__18>(ref Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__18 stateMachine) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeActionMethodAsync() Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(ref Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.State next, ref Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Scope scope, ref object state, ref bool isCompleted) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync() Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__16>(ref Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__16 stateMachine) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync() Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(ref Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.State next, ref Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Scope scope, ref object state, ref bool isCompleted) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync() Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__16>(ref Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__16 stateMachine) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync() Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAwaitedAsync() Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__17>(ref Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__17 stateMachine) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAwaitedAsync() Unknown Microsoft.AspNetCore.Mvc.ViewFeatures.dll!Microsoft.AspNetCore.Mvc.Controller.OnActionExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate next) Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__27>(ref Microsoft.AspNetCore.Mvc.Controller.d__27 stateMachine) Unknown Microsoft.AspNetCore.Mvc.ViewFeatures.dll!Microsoft.AspNetCore.Mvc.Controller.OnActionExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate next) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionFilter.OnActionExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate next) Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__4>(ref Microsoft.AspNetCore.Mvc.Internal.ControllerActionFilter.d__4 stateMachine) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionFilter.OnActionExecutionAsync(Microsoft.AspNetCore.Mvc.Filters.ActionExecutingContext context, Microsoft.AspNetCore.Mvc.Filters.ActionExecutionDelegate next) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(ref Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.State next, ref Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Scope scope, ref object state, ref bool isCompleted) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync() Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__21>(ref Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__21 stateMachine) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync() Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.Next(ref Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.State next, ref Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.Scope scope, ref object state, ref bool isCompleted) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.InvokeNextResourceFilter() Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__18>(ref Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.d__18 stateMachine) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.InvokeNextResourceFilter() Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.Next(ref Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.State next, ref Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.Scope scope, ref object state, ref bool isCompleted) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.InvokeFilterPipelineAsync() Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__13>(ref Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.d__13 stateMachine) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.InvokeFilterPipelineAsync() Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.InvokeAsync() Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__11>(ref Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.d__11 stateMachine) Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Core.Internal.ResourceInvoker.InvokeAsync() Unknown Microsoft.AspNetCore.Mvc.Core.dll!Microsoft.AspNetCore.Mvc.Internal.MvcRouteHandler.RouteAsync.AnonymousMethod__0(Microsoft.AspNetCore.Http.HttpContext c) Unknown Microsoft.AspNetCore.Routing.dll!Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__4>(ref Microsoft.AspNetCore.Builder.RouterMiddleware.d__4 stateMachine) Unknown Microsoft.AspNetCore.Routing.dll!Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) Unknown Microsoft.AspNetCore.StaticFiles.dll!Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) Unknown Microsoft.AspNetCore.Diagnostics.dll!Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__6>(ref Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.d__6 stateMachine) Unknown Microsoft.AspNetCore.Diagnostics.dll!Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) Unknown Microsoft.AspNetCore.Server.IISIntegration.dll!Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__8>(ref Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware.d__8 stateMachine) Unknown Microsoft.AspNetCore.Server.IISIntegration.dll!Microsoft.AspNetCore.Server.IISIntegration.IISMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) Unknown Microsoft.AspNetCore.HttpOverrides.dll!Microsoft.AspNetCore.HttpOverrides.ForwardedHeadersMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext context) Unknown Microsoft.AspNetCore.Hosting.dll!Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Startd__3>(ref Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.d__3 stateMachine) Unknown Microsoft.AspNetCore.Hosting.dll!Microsoft.AspNetCore.Hosting.Internal.RequestServicesContainerMiddleware.Invoke(Microsoft.AspNetCore.Http.HttpContext httpContext) Unknown Microsoft.AspNetCore.Hosting.dll!Microsoft.AspNetCore.Hosting.Internal.HostingApplication.ProcessRequestAsync(Microsoft.AspNetCore.Hosting.Internal.HostingApplication.Context context) Unknown Microsoft.AspNetCore.Server.Kestrel.Core.dll!Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame.RequestProcessingAsync() Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner..cctor.AnonymousMethod__4_0(object sm) Unknown System.Private.CoreLib.ni.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunnerWithContext.RunWithCapturedContext() Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.OutputAsyncCausalityEvents.AnonymousMethod__0() Unknown System.Private.CoreLib.ni.dll!System.Runtime.CompilerServices.AsyncMethodBuilderCore.ContinuationWrapper.Invoke() Unknown Microsoft.AspNetCore.Server.Kestrel.Core.dll!Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure.LoggingThreadPool.RunAction.AnonymousMethod__3_0(object o) Unknown System.Private.CoreLib.ni.dll!System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(object state) Unknown System.Private.CoreLib.ni.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) Unknown System.Private.CoreLib.ni.dll!System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() Unknown System.Private.CoreLib.ni.dll!System.Threading.ThreadPoolWorkQueue.Dispatch() Unknown System.Private.CoreLib.ni.dll!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback() Unknown ``` (The stack trace is copied from a Visual Studio with Simplified Chinese language pack, I translated a little part of it. Hope that won't lead to any confusion.) Here, the function `SXLibraryCore.dll!SXLibraryCore.DBHelper.MySql.CreateConnection(string connStr)` is just a one-liner: `return new MySqlConnection(connectionString)`. Environment: Windows Server 2012R2 x64 / IIS 8 / .Net Core 2.0 Preview 1 with ASP.Net Core 2.0 Preview 1 +21167 area-System.Runtime Add a System.Runtime.CompilerServices.VisualC test project Was going through projects without a test project to see what's missing. Went ahead and added some tests - they're not really important +21168 area-System.Runtime Marshal.IsComObject on Unix should throw ArgumentNullException if the object is null to match Windows behaviour "This is causing test failures in #21165 on Unix: ```cs [Fact] [ActiveIssue()] public void AddEventHandler_NullTarget_ThrowsArgumentNullException() { var attribute = new ComAwareEventInfo(typeof(NonComObject), nameof(NonComObject.Event)); AssertExtensions.Throws(""o"", () => attribute.AddEventHandler(null, new EventHandler(EventHandler))); } public class NonComObject { public event EventHandler Event; } ``` Although `Marshal.IsComObject` is a nop on Unix, we want to match the argument validation as some code relies on it on Windows" +21171 area-System.Net Fix some Sockets Functional test failures in ILC mode Fix: #21062 #21057 +21174 area-System.Runtime Add test project for System.Runtime.InteropServices.Windows And add some tests +21175 area-System.Drawing Fix netfx test failures in System.Drawing.Common - One case where app switches are flipped between netfx and netcoreapp for PNG icons. I also added a test to make sure netcoreapp also obeys app switches - One case where an icon would be finalized in an iterator for test data in ToBitmap tests (I think that's what's causing it) - One case of platform specific serialization Fixes #21294 +21177 area-System.Drawing Cleanup Brushes/Pens/Icons/Colors/Fonts code Contributes to #20706 +21178 area-System.Drawing Remove Win9x/Vista specific code from System.Drawing.Common We support Win7+ Contributes to #20706 +21179 area-System.Drawing Cleanup System.Drawing.Drawing2D code As discussed in #20711 +21180 area-System.Drawing Add tests for various System.Drawing.Common brushes And cleanup some code +21181 area-Infrastructure RemoteExecutorTestBase throws TargetParameterCountException passing an empty string as an argument Example: ```cs RemoteInvoke(param => Assert.Empty(param), string.Empty).Dispose(); ``` +21182 area-System.Drawing Add some tests for System.Drawing.Common.Imaging for issue #20711 Hi Ive add some tests for this easier part of Imaging. What do you think about ImageCodecInfoTests.cs ? Maybe better idea will be to rewrite it to theory? +21184 area-System.Runtime Add System.Runtime.WindowsRuntime.UI.Xaml test project and tests Starting with 100% CC right off the bat :D +21186 area-System.IO InvalidBufferSizeThrows failed on netfx https://ci.dot.net/job/dotnet_corefx/job/release_2.0.0/job/netfx_windows_nt_debug_prtest/219/consoleText System.IO.Tests.FileStream_ctor_sfh_fa_buffer_async.InvalidBufferSizeThrows [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ObjectDisposedException): Cannot access a closed file. Finished: System.Collections.Concurrent.Tests Stack Trace: === TEST EXECUTION SUMMARY === Using D:\j\workspace\netfx_windows---120b7803\bin\testhost\netfx-Windows_NT-Debug-x86\ as the test runtime folder. System.Collections.Concurrent.Tests Total: 2027, Errors: 0, Failed: 0, Skipped: 0, Time: 41.910s Executing in D:\j\workspace\netfx_windows---120b7803\bin\AnyOS.AnyCPU.Debug\System.Globalization.Extensions.Tests\netstandard\ Running tests... Start time: 6:52:32.15 at System.IO.__Error.FileNotOpen() at System.IO.FileStream.Flush(Boolean flushToDisk) at System.IO.FileStream.get_SafeFileHandle() Finished running tests. End time= 6:52:32.47, Exit code = 0 D:\j\workspace\netfx_windows---120b7803\src\System.IO.FileSystem\tests\FileStream\ctor_sfh_fa_buffer.cs(30,0): at System.IO.Tests.FileStream_ctor_sfh_fa_buffer.<>c__DisplayClass2_0.b__1() +21187 area-System.Runtime Remove unnecessary attributes and callback from non-serializable types Relates to changes introduced in https://github.com/dotnet/corefx/issues/19119 Remove unnecessary attributes and callbacks (NonSerialized, OnSerializing, etc) from non-serializable types. - [x] CoreFX - [ ] CoreCLR - [ ] CoreRT cc @danmosemsft @morganbr +21188 area-System.Runtime Add Roslyn analyzer to build to check nothing has [Serializable] that's not on the approved list Relates to changes introduced in https://github.com/dotnet/corefx/issues/19119 Add Roslyn analyzer to build to check nothing has [Serializable] that's not on the approved list cc @danmosemsft @morganbr +21189 area-System.Runtime Disabling binary serialization fuzzying test (#21185) Port to 2.0. Was issue https://github.com/dotnet/corefx/issues/21035 +21190 area-System.Diagnostics Thread.Name should use SetThreadDescription Windows 10 Creators Update delivers new APIs to set the thread name https://msdn.microsoft.com/en-us/library/windows/desktop/mt774976(v=vs.85).aspx These should be used by the managed thread name set property as well so one can find the thread name in ETW traces on Windows as well. Currently there was no way to set the thread name for unmanaged threads with a decent API until Creators Update. +21192 area-System.Collections Avoid O(N^2) in HashSetEquals and SortedSetEquals Avoid O(N^2) in HashSetEquals and SortedSetEquals when the two sets have different comparers, but one of them has the fallback comparer. We treat the set without the fallback comparer as just another IEnumerable, and determine equality in O(N) +21193 area-System.Drawing System.Drawing needs more code coverage (13.4%) https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/Code_Coverage_Report/ This is a great place for new contributors to start. +21195 area-Infrastructure Windows 10 legs appear to be missing From the badges on the home page: ![image](https://user-images.githubusercontent.com/2642209/27267566-54819300-5477-11e7-94ab-6496cf327ada.png) cc: @danmosemsft +21196 area-Infrastructure Correctly handle empty strings in params of RemoteExecutorTestBase Fixes #21181 I tested this by modifying an existing test in System.Runtime to use the empty string alongside other data. As part of this, I noticed that one of the tests that asserts a FileNotFoundException actually originated from Assembly.LoadFrom, rather than the actual method that we were testing. We already have coverage for Assembly.LoadFrom where the path doesn't exist, so we can safely delete that test. +21198 area-System.Linq "System.Linq.Expressions tests disabled with [Theory(Skip = ""870811"")]" System.Linq.Expressions.Tests.LambdaTests.InvokeComputedLambda [SKIP] System.Linq.Expressions.Tests.Compiler_Tests.CallOnCapturedInstance [SKIP] System.Linq.Expressions.Tests.Compiler_Tests.NewExpressionwithMemberAssignInit [SKIP] System.Linq.Expressions.Tests.Compiler_Tests.ArrayInitializedWithCapturedInstance [SKIP] System.Linq.Expressions.Tests.Compiler_Tests.TestAndAlso [SKIP] This number doesn't mean anything. +21200 area-Meta Minor test cleanup Looked through our disabled tests and noticed a couple nits. +21201 area-System.Xml Cleanup active issues on XML tests Many are archaic: ``` System.Xml.Tests.CXmlResolverTest.XmlResolver3 [SKIP] SQLBU Defect Tracking Bug 430834: Skipping when input type is URI, see bug for more details. System.Xml.Tests.CXmlResolverTest.XmlResolver7 [SKIP] When style sheet URI = Intranet zone, XmlSecureResolver does not resolve document function System.Xml.Tests.CLoadXmlResolverTest.LoadGeneric6 [SKIP] By design bug #84957: Skip this test for Load(url, resolver) System.Xml.Tests.CLoadXmlResolverTest.LoadGeneric7 [SKIP] By design bug #84957: Skip this test for Load(url, resolver) System.Xml.Tests.CLoadXmlResolverTest.LoadGeneric8 [SKIP] By design bug #84957: Skip this test for Load(url, resolver) System.Xml.Tests.CLoadXmlResolverTest.LoadGeneric5 [SKIP] By design bug #84957: Skip this test for Load(url, resolver) System.Xml.Tests.CLoadXPathNavigableTest.LoadNavigator4 [SKIP] Not InProc System.Xml.Tests.CTransformResolverTest.XmlResolver5 [SKIP] When style sheet URI = Intranet zone, XmlSecureResolver does not resolve document function System.Xml.Tests.CTransformResolverTest.XmlResolver3 [SKIP] SQLBU Defect Tracking Bug 430834: Skipping when input type is URI, see bug for more details. System.Xml.Tests.CTransformStrStrResolverTest.TransformStrStrResolver3 [SKIP] SQLBU Defect Tracking Bug 430834: Skipping when input type is URI, see bug for more details. System.Xml.Tests.CNDP1_1SP1Test.var3 [SKIP] SQLBU Defect Tracking Bug 430834: Skipping when input type is URI, see bug for more details. System.Xml.Tests.XsltcTestPlatform.Var1 [SKIP] ``` The tests should either be enabled, deleted, or ActiveIssue against a real issue. +21202 area-System.Net Uri(String, UriKind) throws IndexOutOfRangeException for certain inputs "We're relying on `Uri` in the http://github.com/dotnet/project-system, to represent paths. Testing our path handling code, I found that Uri throws IndexOutOfRangeException (instead of UriFormatException) in the following situations: ``` C# new Uri(""/\\‎//"", UriKind.Absolute); new Uri(""\\/\u200e"", UriKind.Absolute); new Uri(""/\\\\-Ā\r"", UriKind.Absolute); new Uri(""\\\\\\\\\\‎"", UriKind.Absolute); ```" +21203 area-System.Globalization "Test: System.Globalization.Tests.NumberFormatInfoCurrentInfo/CurrentInfo_Subclass_OverridesNumberFormat failed with ""Xunit.Sdk.TrueException""" "Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.NumberFormatInfoCurrentInfo/CurrentInfo_Subclass_OverridesNumberFormat` has failed. ``` RemoteExecuter: System.Globalization.Tests, Version=4.1.1.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb b__3_0 \r System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Xunit.Sdk.SameException: Assert.Same() Failure\r Expected: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = \"",\"", CurrencyGroupSeparator = \"" \"", CurrencyGroupSizes = [3], CurrencyNegativePattern = 8, ... }\r Actual: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = \"".\"", CurrencyGroupSeparator = \"",\"", CurrencyGroupSizes = [3], CurrencyNegativePattern = 0, ... }\r at System.Globalization.Tests.NumberFormatInfoCurrentInfo.<>c.b__3_0()\r --- End of inner exception stack trace ---\r at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)\r at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)\r at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)\r at RunnerRemoteExecutionService.RemoteExecutor.HandleTheRequest(ValueSet message, ValueSet returnData)\r Returned Error code: -4\r Expected: True\r Actual: False Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, RemoteInvokeOptions options) at System.Globalization.Tests.NumberFormatInfoCurrentInfo.CurrentInfo_Subclass_OverridesNumberFormat() Build : Master - 20170619.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Release ``` Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170619.01/workItem/System.Globalization.Tests/analysis/xunit/System.Globalization.Tests.NumberFormatInfoCurrentInfo~2FCurrentInfo_Subclass_OverridesNumberFormat" +21204 area-System.IO "Test: System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests/TestValidDiskSpaceProperties failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests/TestValidDiskSpaceProperties` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests.TestValidDiskSpaceProperties() Build : Master - 20170619.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170619.01/workItem/System.IO.FileSystem.DriveInfo.Tests/analysis/xunit/System.IO.FileSystem.DriveInfoTests.DriveInfoWindowsTests~2FTestValidDiskSpaceProperties +21206 area-System.IO "Test: System.IO.Tests.FileStream_CopyToAsync/NamedPipeViaFileStream_AllDataCopied failed with ""System.UnauthorizedAccessException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.FileStream_CopyToAsync/NamedPipeViaFileStream_AllDataCopied(useAsync: False, writeSize: 10, numWrites: 1024)` has failed. System.UnauthorizedAccessException : Access to the path is denied. Stack Trace: at System.IO.Pipes.NamedPipeServerStream.Create(String pipeName, PipeDirection direction, Int32 maxNumberOfServerInstances, PipeTransmissionMode transmissionMode, PipeOptions options, Int32 inBufferSize, Int32 outBufferSize, HandleInheritability inheritability) at System.IO.Pipes.NamedPipeServerStream..ctor(String pipeName, PipeDirection direction, Int32 maxNumberOfServerInstances, PipeTransmissionMode transmissionMode, PipeOptions options, Int32 inBufferSize, Int32 outBufferSize, HandleInheritability inheritability) at System.IO.Pipes.NamedPipeServerStream..ctor(String pipeName, PipeDirection direction, Int32 maxNumberOfServerInstances, PipeTransmissionMode transmissionMode, PipeOptions options) at System.IO.Tests.FileStream_CopyToAsync.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170619.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170619.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.FileStream_CopyToAsync~2FNamedPipeViaFileStream_AllDataCopied(useAsync:%20False,%20writeSize:%2010,%20numWrites:%201024) +21207 area-System.Runtime Add tests for changes to Marshal.ComObject in coreclr Fixes #21168 +21208 area-System.Runtime "Test: System.Text.Tests.StringBuilderTests/Insert_Decimal(original: \""Hello\"", index: 5, doubleValue: -4,56, expected: \""Hello-4.56\"") failed with ""Xunit.Sdk.EqualException""" "Opened on behalf of @Jiayili1 The test `System.Text.Tests.StringBuilderTests/Insert_Decimal(original: \""Hello\"", index: 5, doubleValue: -4,56, expected: \""Hello-4.56\"")` has failed. Assert.Equal() Failure\r ? (pos 7)\r Expected: Hello-4.56\r Actual: Hello-4,56\r ? (pos 7) Stack Trace: at System.Text.Tests.StringBuilderTests.<>c__DisplayClass99_0.b__0() at System.Tests.Helpers.PerformActionWithCulture(CultureInfo culture, Action test) at System.Text.Tests.StringBuilderTests.Insert_Decimal(String original, Int32 index, Double doubleValue, String expected) Build : Master - 20170619.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170619.01/workItem/System.Runtime.Tests/analysis/xunit/System.Text.Tests.StringBuilderTests~2FInsert_Decimal(original:%20%5C%22Hello%5C%22,%20index:%205,%20doubleValue:%20-4,56,%20expected:%20%5C%22Hello-4.56%5C%22)" +21209 area-System.Threading "Test: System.Threading.Tests.EventWaitHandleTests/PingPong failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Threading.Tests.EventWaitHandleTests/PingPong(mode: AutoReset)` has failed. RemoteExecuter: System.Threading.Tests, Version=4.1.1.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb PingPong_OtherProcess AutoReset, d3b856e924c440d3a9e5a366115f8266, ed2a8534cf8a44ac98ac133febfa7a59\r System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Xunit.Sdk.TrueException: Assert.True() Failure\r Expected: True\r Actual: False\r at Xunit.Assert.True(Nullable`1 condition, String userMessage)\r at System.Threading.Tests.EventWaitHandleTests.PingPong_OtherProcess(String modeName, String inboundName, String outboundName)\r --- End of inner exception stack trace ---\r at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)\r at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)\r at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)\r at RunnerRemoteExecutionService.RemoteExecutor.HandleTheRequest(ValueSet message, ValueSet returnData)\r Returned Error code: -4\r Expected: True\r Actual: False Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, RemoteInvokeOptions options) at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(Func`4 method, String arg1, String arg2, String arg3, RemoteInvokeOptions options) at System.Threading.Tests.EventWaitHandleTests.PingPong(EventResetMode mode) Build : Master - 20170619.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170619.01/workItem/System.Threading.Tests/analysis/xunit/System.Threading.Tests.EventWaitHandleTests~2FPingPong(mode:%20AutoReset) +21211 area-System.Drawing Remove some dead code for PngFrame `PngFrame` is only called from a single place - `ToBitmap`. The code for `ToBitmap` checks the following: ```cs public Bitmap ToBitmap() { if (HasPngSignature() && !LocalAppContextSwitches.DontSupportPngFramesInIcons) { return PngFrame(); } else { return BmpFrame(); } } ``` The code for `HasPngSignature` is as follows ```cs private bool HasPngSignature() { if (!_isBestImagePng.HasValue) { if (_iconData != null && _iconData.Length >= _bestImageOffset + 8) { int iconSignature1 = BitConverter.ToInt32(_iconData, _bestImageOffset); int iconSignature2 = BitConverter.ToInt32(_iconData, _bestImageOffset + 4); _isBestImagePng = (iconSignature1 == PNGSignature1) && (iconSignature2 == PNGSignature2); } else { _isBestImagePng = false; } } return _isBestImagePng.Value; } ``` Note that `_isBestImagePng` will always be false if `_iconData == null`. This means that `PngFrame()` won't be called if `_iconData == null`, so the check is dead inside `PngFrame`. Note that `_isBestImagePng` is a cached variable, so if `_iconData` changes, then `_isBestImagePng` won't change. However, `_iconData` can be made readonly, so we know that `_iconData` and `_isBestImagePng` are fixed, so this is OK +21212 area-System.Collections "Test: System.Collections.Concurrent.Tests.ConcurrentQueueTests/ManyConcurrentAddsTakesPeeks_ForceContentionWithOtherThreadsTaking(seconds: 1) failed with ""Xunit.Sdk.InRangeException""" Opened on behalf of @Jiayili1 The test `System.Collections.Concurrent.Tests.ConcurrentQueueTests/ManyConcurrentAddsTakesPeeks_ForceContentionWithOtherThreadsTaking(seconds: 1)` has failed. Assert.InRange() Failure\r Range: (1 - 4)\r Actual: 0 Stack Trace: at System.Collections.Concurrent.Tests.ProducerConsumerCollectionTests.<>c__DisplayClass50_0.b__0() at xunit.console.netcore!+0xba7a96 at xunit.console.netcore!+0x84e117 --- End of stack trace from previous location where exception was thrown --- at xunit.console.netcore!+0x7a9e1c at xunit.console.netcore!+0x7a9d6a at xunit.console.netcore!+0x7a9cef at System.Collections.Concurrent.Tests.ProducerConsumerCollectionTests.WaitAllOrAnyFailed(Threading.Tasks.Task[] tasks) at System.Collections.Concurrent.Tests.ProducerConsumerCollectionTests.ManyConcurrentAddsTakesPeeks_ForceContentionWithOtherThreadsTaking(Double seconds) at xunit.console.netcore!+0x9f6557 at xunit.console.netcore!+0x8a3b7c at xunit.console.netcore!+0x8a39d4 Build : Master - 20170619.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170619.01/workItem/System.Collections.Concurrent.Tests/analysis/xunit/System.Collections.Concurrent.Tests.ConcurrentQueueTests~2FManyConcurrentAddsTakesPeeks_ForceContentionWithOtherThreadsTaking(seconds:%201) +21213 area-System.Collections "Tests under: System.Collections.Generic.Tests.EqualityComparerTests failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Collections.Generic.Tests.EqualityComparerTests/NullableEquals(left: System.Collections.Tests.NonEquatableValueType, right: System.Collections.Tests.NonEquatableV...` has failed. Assert.Equal() Failure\r Expected: 16777216\r Actual: 1 Stack Trace: at xunit.console.netcore!+0xcdb4c0 at xunit.console.netcore!+0xc33b98 at xunit.console.netcore!+0xc335a3 at xunit.console.netcore!+0xc353a4 at xunit.console.netcore!+0xc32e18 at xunit.console.netcore!+0xc32d75 at xunit.console.netcore!+0xc33b98 at xunit.console.netcore!+0xc335a3 at xunit.console.netcore!+0xc353a4 at xunit.console.netcore!+0xc32e18 at xunit.console.netcore!+0xc32d75 at xunit.console.netcore!+0xcafa1c at xunit.console.netcore!+0xcaf874 Build : Master - 20170619.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-x86 - Debug - Release - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170619.01/workItem/System.Collections.Tests/analysis/xunit/System.Collections.Generic.Tests.EqualityComparerTests~2FNullableEquals%3CNonEquatableValueType%3E(left:%20System.Collections.Tests.NonEquatableValueType,%20right:%20System.Collections.Tests.NonEquatableV... +21214 area-System.ComponentModel "Test: System.ComponentModel.Tests.InvalidEnumArgumentExceptionTests/Deserialize_ThrowsPlatformNotSupportedException failed with ""System.NotImplementedException""" Opened on behalf of @Jiayili1 The test `System.ComponentModel.Tests.InvalidEnumArgumentExceptionTests/Deserialize_ThrowsPlatformNotSupportedException` has failed. System.NotImplementedException : The method or operation is not implemented. Stack Trace: at System.Exception.GetObjectData(Runtime.Serialization.SerializationInfo info, Runtime.Serialization.StreamingContext context) at xunit.console.netcore!+0x83d599 at xunit.console.netcore!+0x83b020 at xunit.console.netcore!+0x83adbb at System.ComponentModel.Tests.InvalidEnumArgumentExceptionTests.Deserialize_ThrowsPlatformNotSupportedException() at xunit.console.netcore!+0x90cbde at xunit.console.netcore!+0x7d25fc at xunit.console.netcore!+0x7d2454 Build : Master - 20170619.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-x86 - Debug - Release - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170619.01/workItem/System.ComponentModel.Primitives.Tests/analysis/xunit/System.ComponentModel.Tests.InvalidEnumArgumentExceptionTests~2FDeserialize_ThrowsPlatformNotSupportedException +21215 area-System.Diagnostics "Test: BasicEventSourceTests.TestsManifestNegative/Test_GenerateManifest_InvalidEventSources failed with ""System.NullReferenceException""" Opened on behalf of @Jiayili1 The test `BasicEventSourceTests.TestsManifestNegative/Test_GenerateManifest_InvalidEventSources` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: typeof(System.NullReferenceException): Object reference not set to an instance of an object. Stack Trace: at xunit.console.netcore!+0x9124e3 at System.Diagnostics.Tracing.EventSource.GenerateManifest(Type eventSourceType, String assemblyPathToIncludeInManifest, Diagnostics.Tracing.EventManifestOptions flags) at BasicEventSourceTests.TestsManifestNegative.<>c__DisplayClass2_0.b__1() at System.Func.Invoke() Build : Master - 20170619.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-x86 - Debug - Release - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170619.01/workItem/System.Diagnostics.Tracing.Tests/analysis/xunit/BasicEventSourceTests.TestsManifestNegative~2FTest_GenerateManifest_InvalidEventSources +21216 area-System.Diagnostics "Tests under: BasicEventSourceTests.TestsUserErrors failed with ""Xunit.Sdk.EqualException"" & ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `BasicEventSourceTests.TestsUserErrors/Test_BadEventSource_MismatchedIds` has failed. Assert.Equal() Failure\r ? (pos 5)\r Expected: EventSourceMessage\r Actual: Event1\r ? (pos 5) Stack Trace: at BasicEventSourceTests.TestsUserErrors.Test_Bad_EventSource_Startup(Boolean onStartup, Listener listener, Diagnostics.Tracing.EventSourceSettings settings) at BasicEventSourceTests.TestsUserErrors.Test_BadEventSource_MismatchedIds() at xunit.console.netcore!+0xa9afce at xunit.console.netcore!+0x9716ac at xunit.console.netcore!+0x971504 Build : Master - 20170619.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-x86 - Debug - Release - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170619.01/workItem/System.Diagnostics.Tracing.Tests/analysis/xunit/BasicEventSourceTests.TestsUserErrors~2FTest_BadEventSource_MismatchedIds +21218 area-System.Net "Test: System.Net.Security.Tests.LoggingTest/EventSource_EventsRaisedAsExpected failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.LoggingTest/EventSource_EventsRaisedAsExpected` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -323331298 Stack Trace: at xunit.console.netcore!+0x8615a8 at System.Net.Security.Tests.LoggingTest.EventSource_EventsRaisedAsExpected() at xunit.console.netcore!+0x932f2e at xunit.console.netcore!+0x80751c at xunit.console.netcore!+0x807374 Build : Master - 20170619.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-x86 - Debug - Release - Windows.10.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170619.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.LoggingTest~2FEventSource_EventsRaisedAsExpected +21219 area-System.Collections One or more tests failed while running tests from 'System.Collections.Immutable.Tests' failed in ci /mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/Tools/tests.targets(353,5): error : One or more tests failed while running tests from 'System.Collections.Immutable.Tests' please check /mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/bin/AnyOS.AnyCPU.Debug/System.Collections.Immutable.Tests/netcoreapp/testResults.xml for details! [/mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/src/System.Collections.Immutable/tests/System.Collections.Immutable.Tests.csproj] detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/rhel7.2_debug/2971/consoleFull#32536873579fe3b83-f408-404c-b9e7-9207d232e5fc +21220 area-System.Runtime Consolidate files of the same name in System.Runtime These used to be netstandard1.7 specific I think. Now they can be merged +21223 area-Serialization Fixing SizeF, CookieContainer, CookieCollection serialization between Core <--> Desktop and adding full binary mode tests Relates to https://github.com/dotnet/coreclr/pull/12365 Port for 2.0.0: https://github.com/dotnet/corefx/pull/21224 ## Fixing - SizeF public key token was wrong - CookieContainer core --> desktop serialization in simple and full mode - CookieCollection serialization core <--> desktop in simple and full mode (A regression introduced by my latest change on Friday) ## Adding - Tests for full mode binaryformatter - Integrity test for blobs ## Requires - CompareInfo culture field serialization fix in coreclr: https://github.com/dotnet/coreclr/pull/12365 What I also realized, we aren't updating the blobs in CI which means that we don't detect if a change is harming our serialization support... cc @danmosemsft @krwq +21224 area-Serialization Fixing SizeF, CookieContainer, CookieCollection serialization between Core <--> Desktop and adding full binary mode tests https://github.com/dotnet/corefx/pull/21223 Requires https://github.com/dotnet/coreclr/pull/12367 cc @danmosemsft +21225 area-Infrastructure Dumpling fails with AttributeError: DumplingConfig instance has no attribute 'dbgpath' " ``` 21:18:56 python DumplingHelper.py install_dumpling 21:18:56 __TIMESTAMP=`python DumplingHelper.py get_timestamp` 21:18:56 chmod +x /mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/bin/testhost/netcoreapp-Linux-Debug-x64//dotnet 21:18:56 /mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/bin/testhost/netcoreapp-Linux-Debug-x64//dotnet xunit.console.netcore.exe System.IO.FileSystem.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapptests -notrait category=nonlinuxtests -notrait category=IgnoreForCI -notrait category=OuterLoop -notrait category=failing 21:18:56 python DumplingHelper.py collect_dump $\ `pwd` System.IO.FileSystem.Tests /mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/bin/runtime/netcoreapp-Linux-Debug-x64/,/mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/bin/Unix.AnyCPU.Debug/System.IO.FileSystem.Tests/netcoreapp/ 21:18:56 /mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/bin/Unix.AnyCPU.Debug/System.IO.FileSystem.Tests/netcoreapp /mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/src/System.IO.FileSystem/tests 21:18:56 downloaded dumpling.py 21:18:56 total elapsed time 0:00:00.178800 21:18:56 xUnit.net console test runner (64-bit .NET Core) 21:18:56 Copyright (C) 2014 Outercurve Foundation. 21:18:56 21:18:56 Discovering: System.IO.FileSystem.Tests 21:18:57 Discovered: System.IO.FileSystem.Tests 21:18:58 Traceback (most recent call last): 21:18:58 File ""/mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/tempHome/.dumpling/dumpling.py"", line 1128, in 21:18:58 main(sys.argv) 21:18:58 File ""/mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/tempHome/.dumpling/dumpling.py"", line 1123, in main 21:18:58 cmdProc.Process(config) 21:18:58 File ""/mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/tempHome/.dumpling/dumpling.py"", line 529, in Process 21:18:58 self.Upload(config) 21:18:58 File ""/mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/tempHome/.dumpling/dumpling.py"", line 624, in Upload 21:18:58 self.UploadDump(config) 21:18:58 File ""/mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/tempHome/.dumpling/dumpling.py"", line 644, in UploadDump 21:18:58 self._triage_dump(dumpid, config.dumppath, config) 21:18:58 File ""/mnt/resource/j/workspace/dotnet_corefx/master/rhel7.2_debug/tempHome/.dumpling/dumpling.py"", line 812, in _triage_dump 21:18:58 if config.dbgpath is None: 21:18:58 AttributeError: DumplingConfig instance has no attribute 'dbgpath' ``` https://ci.dot.net/job/dotnet_corefx/job/master/job/rhel7.2_debug/2971/consoleFull#32536873579fe3b83-f408-404c-b9e7-9207d232e5fc @mellinoe " +21226 area-System.Net NetworkInterface.Speed: different behavior The property `Speed` of type `NetworkInterface` behaves different on Linux than on Windows. * On Windows I'm getting the number of **bytes** per second. * In my case the returned value is 1,000,000,000 * That is the expected behavior (https://msdn.microsoft.com/de-de/library/system.net.networkinformation.networkinterface.speed(v=vs.110).aspx) * On Linux I'm getting a `PlatformNotSupportedException` (that's ok) or **mega bytes** per second (not ok). * The returned value is 1,000 ## System * ubuntu 16.04 x64 * dotnet version: 1.04 ### NIC Info on Linux ``` Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: off (auto) Cannot get wake-on-lan settings: Operation not permitted Current message level: 0x00000007 (7) drv probe link Link detected: yes ``` +21227 area-System.Net HttpClient socket reuse behavior different on linux/osx/win I help maintain the .NET client for Elasticsearch and one of our integration tests does the following: * download (if needed) Elasticsearch to `/tmp/NEST` or `%APPDATA%\NEST` * start an empty Elasticsearch server and index some data. * do `20` batches of `1000` searches. * Inspect through an Elasticsearch API that exposes how many http connections it currently has open and opened in total if we are actually reusing TCP connections when doing 20k API calls. On windows I can guarantee a stable number for the TCP connections depending on the max conncurrent connections set. 1. clone: https://github.com/elastic/elasticsearch-net 2. checkout `fix/httpclient-curl` 3. Call `./build.sh connectionreuse [concurrent_connections]` on osx/linux or `build connectionreuse [concurrent_connections] on windows` **note** to test both corefx and full framework on windows you can also call `connectionreuse-all` Example: > ./build.sh connectionreuse 6.0.0-alpha1 80 What follows is a bunch of output from this test on various OS's, the reported run time numbers are including starting the server and doing bootstrap work and are only illustrative to show that concurrent connections has an effect on overall running time. The numbers are formatted as followed: > Current Open: X, Total Opened: Y, Iteration Max = Z, Iteration: 0, Total Searches N I expect `X` and `Y` to be a constant fixed value each iteration of `N` searches. Our tests used to make sure that `X` and `Y` equaled `[concurrent_connections]` but on .NET core we see consistent TCP connection bleed so we built in some leeway to allow for some TCP connection dropage while still being able to assert that we do not open and close each a tcp connection for **each** request. # Linux Physical processors: 4 Logical processors: 8 HttpClient (CurlHandler)
Concurrent Connections: 4full tcp connection reuse (45s) ``` Current Open: 4, Total Opened: 5, Iteration Max = 16, Iteration: 0, Total Searches 1000 Current Open: 4, Total Opened: 5, Iteration Max = 16, Iteration: 1, Total Searches 2000 Current Open: 4, Total Opened: 5, Iteration Max = 18, Iteration: 2, Total Searches 3000 Current Open: 4, Total Opened: 5, Iteration Max = 20, Iteration: 3, Total Searches 4000 Current Open: 4, Total Opened: 5, Iteration Max = 22, Iteration: 4, Total Searches 5000 Current Open: 4, Total Opened: 5, Iteration Max = 24, Iteration: 5, Total Searches 6000 Current Open: 4, Total Opened: 5, Iteration Max = 26, Iteration: 6, Total Searches 7000 Current Open: 4, Total Opened: 5, Iteration Max = 28, Iteration: 7, Total Searches 8000 Current Open: 4, Total Opened: 5, Iteration Max = 30, Iteration: 8, Total Searches 9000 Current Open: 4, Total Opened: 5, Iteration Max = 32, Iteration: 9, Total Searches 10000 Current Open: 4, Total Opened: 5, Iteration Max = 34, Iteration: 10, Total Searches 11000 Current Open: 4, Total Opened: 5, Iteration Max = 36, Iteration: 11, Total Searches 12000 Current Open: 4, Total Opened: 5, Iteration Max = 38, Iteration: 12, Total Searches 13000 Current Open: 4, Total Opened: 5, Iteration Max = 40, Iteration: 13, Total Searches 14000 Current Open: 4, Total Opened: 5, Iteration Max = 42, Iteration: 14, Total Searches 15000 Current Open: 4, Total Opened: 5, Iteration Max = 44, Iteration: 15, Total Searches 16000 Current Open: 4, Total Opened: 5, Iteration Max = 46, Iteration: 16, Total Searches 17000 Current Open: 4, Total Opened: 5, Iteration Max = 48, Iteration: 17, Total Searches 18000 Current Open: 4, Total Opened: 5, Iteration Max = 50, Iteration: 18, Total Searches 19000 Current Open: 4, Total Opened: 5, Iteration Max = 52, Iteration: 19, Total Searches 20000 ``` ``` Running time ConnectionReuse: 00:00:45.6609693 ```
Concurrent Connections: 8tcp connections dropped (32s) ``` Current Open: 8, Total Opened: 14, Iteration Max = 22, Iteration: 0, Total Searches 1000 Current Open: 7, Total Opened: 15, Iteration Max = 22, Iteration: 1, Total Searches 2000 Current Open: 7, Total Opened: 17, Iteration Max = 26, Iteration: 2, Total Searches 3000 Current Open: 7, Total Opened: 19, Iteration Max = 30, Iteration: 3, Total Searches 4000 Current Open: 8, Total Opened: 21, Iteration Max = 34, Iteration: 4, Total Searches 5000 Current Open: 7, Total Opened: 22, Iteration Max = 38, Iteration: 5, Total Searches 6000 Current Open: 8, Total Opened: 24, Iteration Max = 42, Iteration: 6, Total Searches 7000 Current Open: 7, Total Opened: 25, Iteration Max = 46, Iteration: 7, Total Searches 8000 Current Open: 7, Total Opened: 27, Iteration Max = 50, Iteration: 8, Total Searches 9000 Current Open: 7, Total Opened: 29, Iteration Max = 54, Iteration: 9, Total Searches 10000 Current Open: 7, Total Opened: 31, Iteration Max = 58, Iteration: 10, Total Searches 11000 Current Open: 7, Total Opened: 33, Iteration Max = 62, Iteration: 11, Total Searches 12000 Current Open: 8, Total Opened: 35, Iteration Max = 66, Iteration: 12, Total Searches 13000 Current Open: 8, Total Opened: 36, Iteration Max = 70, Iteration: 13, Total Searches 14000 Current Open: 7, Total Opened: 37, Iteration Max = 74, Iteration: 14, Total Searches 15000 Current Open: 7, Total Opened: 39, Iteration Max = 78, Iteration: 15, Total Searches 16000 Current Open: 7, Total Opened: 41, Iteration Max = 82, Iteration: 16, Total Searches 17000 Current Open: 8, Total Opened: 43, Iteration Max = 86, Iteration: 17, Total Searches 18000 Current Open: 7, Total Opened: 44, Iteration Max = 90, Iteration: 18, Total Searches 19000 Current Open: 7, Total Opened: 46, Iteration Max = 94, Iteration: 19, Total Searches 20000 ``` ``` Running time ConnectionReuse: 00:00:32.8867351 ```
Concurrent Connections: 80tcp connections dropped (27s) ``` Current Open: 80, Total Opened: 87, Iteration Max = 130, Iteration: 0, Total Searches 1000 Current Open: 75, Total Opened: 88, Iteration Max = 130, Iteration: 1, Total Searches 2000 Current Open: 80, Total Opened: 107, Iteration Max = 170, Iteration: 2, Total Searches 3000 Current Open: 78, Total Opened: 115, Iteration Max = 210, Iteration: 3, Total Searches 4000 Current Open: 73, Total Opened: 118, Iteration Max = 250, Iteration: 4, Total Searches 5000 Current Open: 68, Total Opened: 134, Iteration Max = 290, Iteration: 5, Total Searches 6000 Current Open: 76, Total Opened: 147, Iteration Max = 330, Iteration: 6, Total Searches 7000 Current Open: 80, Total Opened: 173, Iteration Max = 370, Iteration: 7, Total Searches 8000 Current Open: 80, Total Opened: 177, Iteration Max = 410, Iteration: 8, Total Searches 9000 Current Open: 72, Total Opened: 178, Iteration Max = 450, Iteration: 9, Total Searches 10000 Current Open: 78, Total Opened: 187, Iteration Max = 490, Iteration: 10, Total Searches 11000 Current Open: 63, Total Opened: 190, Iteration Max = 530, Iteration: 11, Total Searches 12000 Current Open: 65, Total Opened: 209, Iteration Max = 570, Iteration: 12, Total Searches 13000 Current Open: 80, Total Opened: 237, Iteration Max = 610, Iteration: 13, Total Searches 14000 Current Open: 73, Total Opened: 238, Iteration Max = 650, Iteration: 14, Total Searches 15000 Current Open: 67, Total Opened: 255, Iteration Max = 690, Iteration: 15, Total Searches 16000 Current Open: 80, Total Opened: 275, Iteration Max = 730, Iteration: 16, Total Searches 17000 Current Open: 80, Total Opened: 276, Iteration Max = 770, Iteration: 17, Total Searches 18000 Current Open: 80, Total Opened: 280, Iteration Max = 810, Iteration: 18, Total Searches 19000 Current Open: 80, Total Opened: 283, Iteration Max = 850, Iteration: 19, Total Searches 20000 ``` ``` Running time ConnectionReuse: 00:00:27.9313542 ```
# OSX Physical processors: 1 Logical processors: 4 HttpClient (CurlHandler)
Concurrent Connections: 4full tcp connection reuse (45s) ``` Current Open: 4, Total Opened: 5, Iteration Max = 16, Iteration: 0, Total Searches 1000 Current Open: 4, Total Opened: 5, Iteration Max = 16, Iteration: 1, Total Searches 2000 Current Open: 4, Total Opened: 5, Iteration Max = 18, Iteration: 2, Total Searches 3000 Current Open: 4, Total Opened: 5, Iteration Max = 20, Iteration: 3, Total Searches 4000 Current Open: 4, Total Opened: 5, Iteration Max = 22, Iteration: 4, Total Searches 5000 Current Open: 4, Total Opened: 5, Iteration Max = 24, Iteration: 5, Total Searches 6000 Current Open: 4, Total Opened: 5, Iteration Max = 26, Iteration: 6, Total Searches 7000 Current Open: 4, Total Opened: 5, Iteration Max = 28, Iteration: 7, Total Searches 8000 Current Open: 4, Total Opened: 5, Iteration Max = 30, Iteration: 8, Total Searches 9000 Current Open: 4, Total Opened: 5, Iteration Max = 32, Iteration: 9, Total Searches 10000 Current Open: 4, Total Opened: 5, Iteration Max = 34, Iteration: 10, Total Searches 11000 Current Open: 4, Total Opened: 5, Iteration Max = 36, Iteration: 11, Total Searches 12000 Current Open: 4, Total Opened: 5, Iteration Max = 38, Iteration: 12, Total Searches 13000 Current Open: 4, Total Opened: 5, Iteration Max = 40, Iteration: 13, Total Searches 14000 Current Open: 4, Total Opened: 5, Iteration Max = 42, Iteration: 14, Total Searches 15000 Current Open: 4, Total Opened: 5, Iteration Max = 44, Iteration: 15, Total Searches 16000 Current Open: 4, Total Opened: 5, Iteration Max = 46, Iteration: 16, Total Searches 17000 Current Open: 4, Total Opened: 5, Iteration Max = 48, Iteration: 17, Total Searches 18000 Current Open: 4, Total Opened: 5, Iteration Max = 50, Iteration: 18, Total Searches 19000 Current Open: 4, Total Opened: 5, Iteration Max = 52, Iteration: 19, Total Searches 20000 ``` ``` Running time ConnectionReuse: 00:00:45.6656894 ```
Concurrent Connections: 8tcp connections dropped (39s) ``` Current Open: 8, Total Opened: 12, Iteration Max = 22, Iteration: 0, Total Searches 1000 Current Open: 8, Total Opened: 13, Iteration Max = 22, Iteration: 1, Total Searches 2000 Current Open: 7, Total Opened: 14, Iteration Max = 26, Iteration: 2, Total Searches 3000 Current Open: 8, Total Opened: 16, Iteration Max = 30, Iteration: 3, Total Searches 4000 Current Open: 8, Total Opened: 17, Iteration Max = 34, Iteration: 4, Total Searches 5000 Current Open: 7, Total Opened: 18, Iteration Max = 38, Iteration: 5, Total Searches 6000 Current Open: 8, Total Opened: 20, Iteration Max = 42, Iteration: 6, Total Searches 7000 Current Open: 8, Total Opened: 21, Iteration Max = 46, Iteration: 7, Total Searches 8000 Current Open: 8, Total Opened: 22, Iteration Max = 50, Iteration: 8, Total Searches 9000 Current Open: 7, Total Opened: 23, Iteration Max = 54, Iteration: 9, Total Searches 10000 Current Open: 7, Total Opened: 25, Iteration Max = 58, Iteration: 10, Total Searches 11000 Current Open: 8, Total Opened: 27, Iteration Max = 62, Iteration: 11, Total Searches 12000 Current Open: 7, Total Opened: 28, Iteration Max = 66, Iteration: 12, Total Searches 13000 Current Open: 8, Total Opened: 30, Iteration Max = 70, Iteration: 13, Total Searches 14000 Current Open: 8, Total Opened: 31, Iteration Max = 74, Iteration: 14, Total Searches 15000 Current Open: 8, Total Opened: 32, Iteration Max = 78, Iteration: 15, Total Searches 16000 Current Open: 8, Total Opened: 33, Iteration Max = 82, Iteration: 16, Total Searches 17000 Current Open: 8, Total Opened: 34, Iteration Max = 86, Iteration: 17, Total Searches 18000 Current Open: 7, Total Opened: 35, Iteration Max = 90, Iteration: 18, Total Searches 19000 Current Open: 8, Total Opened: 37, Iteration Max = 94, Iteration: 19, Total Searches 20000 ``` ``` Running time ConnectionReuse: 00:00:39.4068795 ```
Concurrent Connections: 80tcp connections dropped (28s) ``` Current Open: 74, Total Opened: 87, Iteration Max = 130, Iteration: 0, Total Searches 1000 Current Open: 80, Total Opened: 94, Iteration Max = 130, Iteration: 1, Total Searches 2000 Current Open: 79, Total Opened: 95, Iteration Max = 170, Iteration: 2, Total Searches 3000 Current Open: 74, Total Opened: 97, Iteration Max = 210, Iteration: 3, Total Searches 4000 Current Open: 80, Total Opened: 105, Iteration Max = 250, Iteration: 4, Total Searches 5000 Current Open: 80, Total Opened: 114, Iteration Max = 290, Iteration: 5, Total Searches 6000 Current Open: 66, Total Opened: 187, Iteration Max = 330, Iteration: 6, Total Searches 7000 Current Open: 80, Total Opened: 224, Iteration Max = 370, Iteration: 7, Total Searches 8000 Current Open: 78, Total Opened: 225, Iteration Max = 410, Iteration: 8, Total Searches 9000 Current Open: 71, Total Opened: 231, Iteration Max = 450, Iteration: 9, Total Searches 10000 Current Open: 67, Total Opened: 241, Iteration Max = 490, Iteration: 10, Total Searches 11000 Current Open: 80, Total Opened: 262, Iteration Max = 530, Iteration: 11, Total Searches 12000 Current Open: 74, Total Opened: 264, Iteration Max = 570, Iteration: 12, Total Searches 13000 Current Open: 80, Total Opened: 271, Iteration Max = 610, Iteration: 13, Total Searches 14000 Current Open: 80, Total Opened: 275, Iteration Max = 650, Iteration: 14, Total Searches 15000 Current Open: 80, Total Opened: 283, Iteration Max = 690, Iteration: 15, Total Searches 16000 Current Open: 65, Total Opened: 284, Iteration Max = 730, Iteration: 16, Total Searches 17000 Current Open: 80, Total Opened: 300, Iteration Max = 770, Iteration: 17, Total Searches 18000 Current Open: 78, Total Opened: 302, Iteration Max = 810, Iteration: 18, Total Searches 19000 Current Open: 73, Total Opened: 314, Iteration Max = 850, Iteration: 19, Total Searches 20000 ``` ``` Running time ConnectionReuse: 00:00:28.9767982 ```
# On windows (.NET core) Physical processors: 4 Logical processors: 8 HttpClient => WebRequestHandler
Concurrent Connections: 4full tcp connection reuse (30s) ``` Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 0, Total Searches 1000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 1, Total Searches 2000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 2, Total Searches 3000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 3, Total Searches 4000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 4, Total Searches 5000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 5, Total Searches 6000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 6, Total Searches 7000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 7, Total Searches 8000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 8, Total Searches 9000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 9, Total Searches 10000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 10, Total Searches 11000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 11, Total Searches 12000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 12, Total Searches 13000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 13, Total Searches 14000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 14, Total Searches 15000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 15, Total Searches 16000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 16, Total Searches 17000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 17, Total Searches 18000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 18, Total Searches 19000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 19, Total Searches 20000 ``` ``` Running time 00:00:30.211312 ```
Concurrent Connections: 8full tcp connection reuse (29s) ``` Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 0, Total Searches 1000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 1, Total Searches 2000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 2, Total Searches 3000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 3, Total Searches 4000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 4, Total Searches 5000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 5, Total Searches 6000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 6, Total Searches 7000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 7, Total Searches 8000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 8, Total Searches 9000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 9, Total Searches 10000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 10, Total Searches 11000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 11, Total Searches 12000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 12, Total Searches 13000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 13, Total Searches 14000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 14, Total Searches 15000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 15, Total Searches 16000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 16, Total Searches 17000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 17, Total Searches 18000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 18, Total Searches 19000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 19, Total Searches 20000 ``` ``` Running time 00:00:29.2162262 ```
Concurrent Connections: 80full tcp connection reuse (27s) ``` Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 0, Total Searches 1000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 1, Total Searches 2000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 2, Total Searches 3000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 3, Total Searches 4000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 4, Total Searches 5000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 5, Total Searches 6000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 6, Total Searches 7000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 7, Total Searches 8000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 8, Total Searches 9000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 9, Total Searches 10000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 10, Total Searches 11000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 11, Total Searches 12000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 12, Total Searches 13000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 13, Total Searches 14000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 14, Total Searches 15000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 15, Total Searches 16000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 16, Total Searches 17000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 17, Total Searches 18000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 18, Total Searches 19000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 19, Total Searches 20000 ``` ``` Running time ConnectionReuse: 00:00:27.2084013 ```
# On windows (.NET full framework) Physical processors: 4 Logical processors: 8 When targetting this TFM we do not use `HttpClient` at all, just old school `HttpWebRequest`
Concurrent Connections: 4full tcp connection reuse (30s) ``` Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 0, Total Searches 1000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 1, Total Searches 2000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 2, Total Searches 3000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 3, Total Searches 4000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 4, Total Searches 5000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 5, Total Searches 6000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 6, Total Searches 7000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 7, Total Searches 8000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 8, Total Searches 9000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 9, Total Searches 10000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 10, Total Searches 11000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 11, Total Searches 12000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 12, Total Searches 13000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 13, Total Searches 14000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 14, Total Searches 15000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 15, Total Searches 16000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 16, Total Searches 17000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 17, Total Searches 18000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 18, Total Searches 19000 Current Open: 4, Total Opened: 4, Iteration Max = 14, Iteration: 19, Total Searches 20000 ``` ``` Running time ConnectionReuse: 00:00:30.9015482 ```
Concurrent Connections: 8full tcp connection reuse (29s) ``` Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 0, Total Searches 1000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 1, Total Searches 2000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 2, Total Searches 3000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 3, Total Searches 4000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 4, Total Searches 5000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 5, Total Searches 6000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 6, Total Searches 7000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 7, Total Searches 8000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 8, Total Searches 9000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 9, Total Searches 10000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 10, Total Searches 11000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 11, Total Searches 12000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 12, Total Searches 13000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 13, Total Searches 14000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 14, Total Searches 15000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 15, Total Searches 16000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 16, Total Searches 17000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 17, Total Searches 18000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 18, Total Searches 19000 Current Open: 8, Total Opened: 8, Iteration Max = 18, Iteration: 19, Total Searches 20000 ``` ``` Running time ConnectionReuse: 00:00:29.6064365 ```
Concurrent Connections: 80full tcp connection reuse (29s) ``` Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 0, Total Searches 1000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 1, Total Searches 2000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 2, Total Searches 3000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 3, Total Searches 4000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 4, Total Searches 5000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 5, Total Searches 6000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 6, Total Searches 7000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 7, Total Searches 8000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 8, Total Searches 9000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 9, Total Searches 10000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 10, Total Searches 11000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 11, Total Searches 12000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 12, Total Searches 13000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 13, Total Searches 14000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 14, Total Searches 15000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 15, Total Searches 16000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 16, Total Searches 17000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 17, Total Searches 18000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 18, Total Searches 19000 Current Open: 80, Total Opened: 80, Iteration Max = 90, Iteration: 19, Total Searches 20000 ``` ``` Running time ConnectionReuse: 00:00:29.3900225 ```
------ There is a https://curl.haxx.se/libcurl/c/CURLOPT_TCP_KEEPALIVE.html that could possibly be set in a world where `ServicepointManager.SetTcpKeepAlive` is back in play. Will this make a comeback in netstandard 2.0? Not sure that that curl opt will improve things though. +21230 area-System.Security Make VerifyWithRevocation skip if the Online chain can't build "When the system doesn't have a current CRL cached for the entirety of the chain, and the CRL Distribution Point is offline (or there's a local network issue) then the test fails. This is tolerable for a manual run, but not for the automated runs. So unless the X.509 ""RunManualTests"" configuration is set, treat a failure of the online chain to be a skip. Ideally we'd throw a SkipTestException, or something of that ilk, but xunit doesn't support it. Fixes #21076 (in master)" +21231 area-System.Runtime User Environment variable tests should pass on uap/uapaot On the RS3 images, get/set of user environment variables should work and the tests should be enabled. get/set of machine environment variables will be blocked by appcontainer and the tests shoudl be disabled for uap/uapaot. +21232 area-System.Net Add managed HttpClientHandler prototype as opt-in @geoffkizer prototyped out a managed HttpClientHandler implementation, as we'd eventually like to be able to switch to a managed implementation as the primary implementation rather than having different implementations per platform. It's missing features (e.g. HTTP/2, various auth support, etc.), needs work around correctness and performance, etc., but it's at a good enough state to check-in and enable under a feature flag in an opt-in fashion, which will allow everyone to help contribute to it and make it better. The first commit adds Geoff's code. The second integrates it into HttpClientHandler in an opt-in manner, such that by default on Windows you still use WinHttpHandler and on Unix CurlHandler, but by setting an environment variable, you can opt-in to experiment with the managed implementation. The commit also enables some of the tests to also run with the managed handler; the rest can be enabled when some issues are fixed. (As part of this PR, I'm not planning to address any issues with the managed implementation. Folks are welcome to submit PRs to do so subsequently.) cc: @geoffkizer, @davidsh, @cipop, @wfurt, @Priya91, @Petermarcu +21233 area-System.Net Regression in System.Net.Primitives for UWP Running the UAP tests I'm getting the following for System.Net.Primitives: ``` 0:017> !pe Exception object: 0000018080001210 Exception type: System.ExecutionEngineException Message: InnerException: System.Diagnostics.Debug+DebugAssertException, Use !PrintException 0000018080638d88 to see more. StackTrace (generated): StackTraceString: HResult: 80131506 0:017> !PrintException /d 0000018080638d88 Exception object: 0000018080638d88 Exception type: System.Diagnostics.Debug+DebugAssertException Message: We need to use an internal method named InternalSetName that is declared on Cookie. at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Net.CookieParser.get_InternalSetNameMethod() at System.Net.CookieParser.Get() at System.Net.CookieContainer.CookieCutter(Uri uri, String headerName, String setCookieHeader, Boolean isThrow) at System.Net.CookieContainer.SetCookies(Uri uri, String cookieHeader) at System.Net.Primitives.Functional.Tests.CookieContainerTest.<>c__DisplayClass29_0.b__0() at Xunit.Assert.RecordException(Action testCode) at Xunit.Assert.Throws[T](Action testCode) at System.Net.Primitives.Functional.Tests.CookieContainerTest.SetCookies_InvalidData_Throws(Uri uri, String cookieHeader) at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at Xunit.Sdk.TestInvoker`1.CallTestMethod(Object testClassInstance) at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestInvoker`1.b__45_0() at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) at Xunit.Sdk.TestRunner`1.d__43.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestRunner`1.RunAsync() at Xunit.Sdk.XunitTheoryTestCaseRunner.d__9.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.XunitTheoryTestCaseRunner.RunTestAsync() at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCaseRunner`1.RunAsync() at Xunit.Sdk.XunitTestMethodRunner.RunTestCaseAsync(IXunitTestCase testCase) at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestMethodRunner`1.RunAsync() at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestClassRunner`1.RunAsync() at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestCollectionRunner`1.RunAsync() at Xunit.Sdk.TestAssemblyRunner`1.d__42.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestAssemblyRunner`1.RunTestCollectionsAsync(IMessageBus messageBus, CancellationTokenSource cancellationTokenSource) at Xunit.Sdk.XunitTestAssemblyRunner.d__14.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.XunitTestAssemblyRunner.RunTestCollectionsAsync(IMessageBus messageBus, CancellationTokenSource cancellationTokenSource) at Xunit.Sdk.TestAssemblyRunner`1.d__41.MoveNext() at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.TestAssemblyRunner`1.RunAsync() at Xunit.Sdk.XunitTestFrameworkExecutor.d__6.MoveNext() at System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at Xunit.Sdk.XunitTestFrameworkExecutor.RunTestCases(IEnumerable`1 testCases, IMessageSink executionMessageSink, ITestFrameworkExecutionOptions executionOptions) at XUnit.Runner.Uap.XunitTestRunner.d__2.MoveNext() at System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at XUnit.Runner.Uap.XunitTestRunner.RunTests(String arguments, StringBuilder sbLog, Action`1 uiLogger) at XUnit.Runner.Uap.MainPage.<>c__DisplayClass3_0.b__0() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) at System.Threading.ThreadPoolWorkQueue.Dispatch() InnerException: StackTrace (generated): StackTraceString: HResult: 80131500 ``` +21234 area-System.Xml Fix small nit that wasn't addressed before PR was merged Fixing the `=null` cc: @danmosemsft +21235 area-Serialization Enable Reflection-based Serialization to Call Static Parse Method. The issue was that, on uapaot, reflection-based serialization cannot invoke primitive types's static `Parse` method due to reflection on primitive types being blocked. Fix #21143 +21236 area-Infrastructure [Arm64/Unix] Add OfficialBuildRID linux-arm64 +21237 area-Infrastructure clean.cmd should also stop dotnet and msbuild execution The current clean.cmd only stops execution of VBCSCompiler.exe. It should also stop execution of dotnet.exe and msbuild.exe to prevent problems with cleaning the output. +21239 area-System.Net Forward porting AsyncRequestContext PR feedback. Forward-porting changes made to #21100 after @DavidGoll 's PR feedback to 2.1. Contributes to #20400. +21240 area-System.Collections Proposal: ref returns API for Dictionary @brandon942 commented on [Mon Jun 19 2017](https://github.com/dotnet/coreclr/issues/12361) Dictionary value updates are not possible without unnecessary double lookups in the current Dictionary implementation. This issue has been there forever and is particularly problematic for value-type/struct values which are extensively used in game dev. Value updates require the whole struct to be copied, changed and reinserted (copied again) with another lookup. The C#7 ref feature allows one to create faster custom dictionaries without messing with Entry indexes, but why not fix the Dictionary in the coreclr? The following Dictionary methods are needed to prevent double lookups in checks & updates and insertions: public ref TValue GetValueByRef(TKey key) // throws if key not found private static TValue _DefaultVal; // needed for TryGetValueByRef as default return public ref TValue TryGetValueByRef(TKey key, out bool found) public ref TValue TryGetValueByRefOrAdd(TKey key, out bool found, TValue setVal) public bool TryGetValueOrAdd(TKey key, out TValue value, TValue setValue) Furthermore I propose incrementing the `version`-field (used by enumerators) only when Entries are added or removed, but not when they are changed because it serves no purpose. Reference-type values can already be changed without the Dictionary knowing and incrementing the version. +21241 area-Serialization Add automation tests for SGEN. Add automation tests for SGEN. It includes two parts. 1. Baseline test 2. Run the existing XML tests on SGEN. Fix #21147 @shmao @zhenlan @mconnew +21242 area-System.ComponentModel Fixed NullableConverter.ConvertTo(ITypeDescriptorContext, CultureInfo… …, object) not using UnderlyingTypeConverter if the value is null +21244 area-System.IO Disable uap System.IO.FileSystem tests which use CreateFile to create named pipes Contributes to https://github.com/dotnet/corefx/issues/16422 Fixes https://github.com/dotnet/corefx/issues/21206 +21246 area-System.Data Increase code coverage from 65.3% to 70.8% on System.Data.Common.DataColumnMappingCollection Hi, Here are a couple of new tests for this class. If you have any questions, please let me know. Thanks, Michael +21247 area-Meta Re-enable and fix some UWP F5 tests Resolves https://github.com/dotnet/corefx/issues/18055, https://github.com/dotnet/corefx/issues/13121 Re-enables some tests that now pass for UWP and fixes two AppContainer issues cc: @danmosemsft @tijoytom +21248 area-System.Memory Provide StringBuilder.ForeachChunk for efficient access to characters in a StringBuilder "Today, StringBuilder has problem in that the only way to read the characters out of the StringBuilder is to do it a character at a time [] or call the ToString APIs to convert it to a string (and then index it). Both of these are slow. Typically what people actually do is call ToString, which forces the creation of a large string. Often the very next thing that happens is that the String is written to a file, leaving behind a large, dead string on the GC heap. With the advent of Span there is now an efficient, safe mechanism for extracting the data in the StringBuilder. The proposed API is ```c# /// /// ForEachChunk is an efficient way of accessing all the characters in the StringBuilder. /// It is an alternative to calling ToString() on the StringBuilder. /// /// The 'callback' delegate is called 0 or more times, each time being passed a chunk of /// the string as a ReadOnlySpan of characters (in order). This is repeated until all /// the characters in the span have been passed back through 'callback'. /// /// A method that is called repeatedly, being passed a chunk /// of the Strinbuilder with each call. If 'false' is returned by the callback /// then ForEachChunk terminates immediately. public void ForEachChunk(Func, bool> callback) ``` The actual implmentation is simple: ```c# public void ForEachChunk(Func, bool> callback) { VerifyClassInvariant(); ForEachChunk(callback, this); } private bool ForEachChunk(Func, bool> callback, StringBuilder chunk) { // The chunks are last written first, so we need to output the others first. var next = chunk.m_ChunkPrevious; if (next != null && !ForEachChunk(callback, next)) return false; // The fields here might be changing and inaccurate if threads are racing, but the validation that Span does on // construction insures that the values, even if inaccurate, are 'in bounds'. return callback(new Span(chunk.m_ChunkChars, chunk.m_ChunkOffset, chunk.m_ChunkLength)); } ``` The intent is that this new API can be a building block to provide extension methods on Stream (or other APIs that act like streams) that operate on StringBuilders directly (so an intermediate strings need not be formed) Question: A variation of this is to have an explicit context parameter that is passed to the callback. ```c# public void ForEachChunk(Func, T, bool> callback, T context = null) where T : class ``` While this is not as convenient to use, it allows the user to avoid creating closures (which force the allocation of a Func), which is faster (and the goal of this API is is all about being faster) @stephentoub @jkotas @alexperovich @AlexGhiondea @davidfowl " +21250 area-System.Net CookieContainer has issues with cookies set to a different path than the current request uri path When a server sends back a cookie with a path different than the current request uri, CookieContainer throws an exception indicating that the path portion of the cookie is invalid. For example: * HttpClient send a request to `/Home/About` * The server answers with a redirect response to `/tfp/Identity/signinsignup/...` and sets a cookie to `/signin-oidc` * Internally, CookieContainer throws or silently fails on line https://github.com/dotnet/corefx/blob/master/src/System.Net.Primitives/src/System/Net/Cookie.cs#L508 I believe this is due to the fact that an old version of the spec required any path on any cookie set by the server to be a prefix path of the current request URI. This doesn't seem to be the case in the latest version of the standard. https://tools.ietf.org/html/rfc6265 (new version) https://tools.ietf.org/html/rfc2109 (old version) For reference, this works fine on all major browsers (Chrome, Firefox, Edge,...) We ran into this on our authentication tests (that run the scenario mentioned above). Limiting the path check in the code linked above to only the case when the cookie refers to an old version of the spec should be enough. +21252 area-Infrastructure TargetsWindows msbuild property is false for netfx configuration "For the `netfx` configuration, `'$(TargetsWindows) == 'false'` However, we can use the `netfx-Windows_NT` configuration instead, and `'$(TargetsWindows) == 'true'` Is this expected? Example configuration.props ```xml netstandard; netcoreapp-Windows_NT; netfx; ``` Example csproj ```xml {A824F4CD-935B-4496-A1B2-C3664936DA7B} $(DefineConstants);netcoreapp ``` Example Tests.cs ```c# using Xunit; public class Tests { [Fact] public void AssertFailure() { Assert.False(true); } } ```" +21253 area-Infrastructure "`msbuild /T:BuildAndTest /P:TargetGroup=uap` prints to the console many times with ""Cannot create a file when that file already exists.""" "@joperezr suggested I make an issue. Example log:
Click Here ``` C:\Users\hugh\Documents\GitHub\corefx\src\System.Runtime.CompilerServices.VisualC\tests>msbuild /T:BuildAndTest Microsoft (R) Build Engine version 15.1.1012.6693 Copyright (C) Microsoft Corporation. All rights reserved. Build started 20/06/2017 08:55:53. Project ""C:\Users\hugh\Documents\GitHub\corefx\src\System.Runtime.CompilerServices.VisualC\tests\System.Runtime.Compile rServices.VisualC.Tests.csproj"" on node 1 (BuildAndTest target(s)). CoreCompile: C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /noconfig /unsafe+ /nowarn:1701,1702 /nostdlib+ /warn:4 /define :DEBUG;TRACE;DEBUGRESOURCES;SIGNED /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/CoreFx.Privat e.TestUtilities.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/Microsoft.CSharp.dll /refere nce:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/Microsoft.VisualBasic.dll /reference:C:\Users\hugh\Docu ments\GitHub\corefx\bin/ref/netstandard/Microsoft.Win32.Primitives.dll /reference:C:\Users\hugh\Documents\GitHub\core fx\bin/ref/netstandard/Microsoft.Win32.Registry.AccessControl.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bi n/ref/netstandard/Microsoft.Win32.Registry.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/m scorlib.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/netstandard.dll /reference:C:\Users\ hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.AppContext.dll /reference:C:\Users\hugh\Documents\GitHub\core fx\bin/ref/netstandard/System.Buffers.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System .CodeDom.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Collections.Concurrent.dll / reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Collections.dll /reference:C:\Users\hugh\D ocuments\GitHub\corefx\bin/ref/netstandard/System.Collections.Immutable.dll /reference:C:\Users\hugh\Documents\GitHub \corefx\bin/ref/netstandard/System.Collections.NonGeneric.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/re f/netstandard/System.Collections.Specialized.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard /System.ComponentModel.Annotations.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Co mponentModel.Composition.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.ComponentMod el.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.ComponentModel.EventBasedAsync.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.ComponentModel.Primitives.dll /reference :C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.ComponentModel.TypeConverter.dll /reference:C:\User s\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Composition.AttributedModel.dll /reference:C:\Users\hugh\Do cuments\GitHub\corefx\bin/ref/netstandard/System.Composition.Convention.dll /reference:C:\Users\hugh\Documents\GitHub \corefx\bin/ref/netstandard/System.Composition.Hosting.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/n etstandard/System.Composition.Runtime.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System .Composition.TypedParts.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Configuration .ConfigurationManager.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Console.dll /re ference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Core.dll /reference:C:\Users\hugh\Documents\ GitHub\corefx\bin/ref/netstandard/System.Data.Common.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/net standard/System.Data.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Data.Odbc.dll /r eference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Data.SqlClient.dll /reference:C:\Users\hugh \Documents\GitHub\corefx\bin/ref/netstandard/System.Diagnostics.Contracts.dll /reference:C:\Users\hugh\Documents\GitH ub\corefx\bin/ref/netstandard/System.Diagnostics.Debug.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/n etstandard/System.Diagnostics.DiagnosticSource.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstanda rd/System.Diagnostics.FileVersionInfo.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System .Diagnostics.Process.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Diagnostics.Stac kTrace.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Diagnostics.TextWriterTraceLis tener.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Diagnostics.Tools.dll /referenc e:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Diagnostics.TraceSource.dll /reference:C:\Users\hu gh\Documents\GitHub\corefx\bin/ref/netstandard/System.Diagnostics.Tracing.dll /reference:C:\Users\hugh\Documents\GitH ub\corefx\bin/ref/netstandard/System.DirectoryServices.AccountManagement.dll /reference:C:\Users\hugh\Documents\GitHu b\corefx\bin/ref/netstandard/System.DirectoryServices.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/ne tstandard/System.DirectoryServices.Protocols.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard /System.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Drawing.dll /reference:C:\Use rs\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Drawing.Primitives.dll /reference:C:\Users\hugh\Documents\ GitHub\corefx\bin/ref/netstandard/System.Dynamic.Runtime.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref /netstandard/System.Globalization.Calendars.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/ System.Globalization.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Globalization.Ex tensions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.Compression.dll /referenc e:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.Compression.FileSystem.dll /reference:C:\Users\ hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.Compression.ZipFile.dll /reference:C:\Users\hugh\Documents \GitHub\corefx\bin/ref/netstandard/System.IO.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard /System.IO.FileSystem.AccessControl.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.I O.FileSystem.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.FileSystem.DriveInfo. dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.FileSystem.Primitives.dll /referen ce:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.FileSystem.Watcher.dll /reference:C:\Users\hug h\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.IsolatedStorage.dll /reference:C:\Users\hugh\Documents\GitHub \corefx\bin/ref/netstandard/System.IO.MemoryMappedFiles.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/ netstandard/System.IO.Packaging.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.Pi pes.AccessControl.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.Pipes.dll /refer ence:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.Ports.dll /reference:C:\Users\hugh\Documents \GitHub\corefx\bin/ref/netstandard/System.IO.UnmanagedMemoryStream.dll /reference:C:\Users\hugh\Documents\GitHub\core fx\bin/ref/netstandard/System.Json.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Li nq.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Linq.Expressions.dll /reference:C: \Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Linq.Parallel.dll /reference:C:\Users\hugh\Documents\G itHub\corefx\bin/ref/netstandard/System.Linq.Queryable.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/n etstandard/System.Memory.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.dll /ref erence:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.Http.dll /reference:C:\Users\hugh\Documen ts\GitHub\corefx\bin/ref/netstandard/System.Net.Http.WinHttpHandler.dll /reference:C:\Users\hugh\Documents\GitHub\cor efx\bin/ref/netstandard/System.Net.NameResolution.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netsta ndard/System.Net.NetworkInformation.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.N et.Ping.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.Primitives.dll /reference :C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.Requests.dll /reference:C:\Users\hugh\Documents \GitHub\corefx\bin/ref/netstandard/System.Net.Security.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/n etstandard/System.Net.Sockets.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.Web HeaderCollection.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.WebSockets.Clien t.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.WebSockets.dll /reference:C:\Us ers\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Numerics.dll /reference:C:\Users\hugh\Documents\GitHub\co refx\bin/ref/netstandard/System.Numerics.Vectors.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstan dard/System.ObjectModel.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Reflection.Co ntext.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Reflection.DispatchProxy.dll /r eference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Reflection.dll /reference:C:\Users\hugh\Doc uments\GitHub\corefx\bin/ref/netstandard/System.Reflection.Extensions.dll /reference:C:\Users\hugh\Documents\GitHub\c orefx\bin/ref/netstandard/System.Reflection.Metadata.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/net standard/System.Reflection.Primitives.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System .Reflection.TypeExtensions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Resources. Reader.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Resources.ResourceManager.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Resources.Writer.dll /reference:C:\Users\ hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.CompilerServices.Unsafe.dll /reference:C:\Users\hugh\ Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.CompilerServices.VisualC.dll /reference:C:\Users\hugh\Docu ments\GitHub\corefx\bin/ref/netstandard/System.Runtime.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/n etstandard/System.Runtime.Extensions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System. Runtime.Handles.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.InteropServic es.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.InteropServices.RuntimeInf ormation.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.Numerics.dll /refere nce:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.Serialization.dll /reference:C:\Users\hu gh\Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.Serialization.Formatters.dll /reference:C:\Users\hugh\D ocuments\GitHub\corefx\bin/ref/netstandard/System.Runtime.Serialization.Json.dll /reference:C:\Users\hugh\Documents\G itHub\corefx\bin/ref/netstandard/System.Runtime.Serialization.Primitives.dll /reference:C:\Users\hugh\Documents\GitHu b\corefx\bin/ref/netstandard/System.Runtime.Serialization.Xml.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bi n/ref/netstandard/System.Security.AccessControl.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstand ard/System.Security.Claims.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.C ryptography.Algorithms.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Crypt ography.Cng.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.Csp .dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.Encoding.dll / reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.OpenSsl.dll /referen ce:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.Pkcs.dll /reference:C:\User s\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.Primitives.dll /reference:C:\Users\hu gh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.ProtectedData.dll /reference:C:\Users\hug h\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.X509Certificates.dll /reference:C:\Users\h ugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.Xml.dll /reference:C:\Users\hugh\Documen ts\GitHub\corefx\bin/ref/netstandard/System.Security.Permissions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx \bin/ref/netstandard/System.Security.Principal.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstanda rd/System.Security.Principal.Windows.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System. Security.SecureString.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.ServiceModel.We b.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.ServiceProcess.ServiceController.dl l /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Text.Encoding.CodePages.dll /reference: C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Text.Encoding.dll /reference:C:\Users\hugh\Documents \GitHub\corefx\bin/ref/netstandard/System.Text.Encoding.Extensions.dll /reference:C:\Users\hugh\Documents\GitHub\core fx\bin/ref/netstandard/System.Text.Encodings.Web.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstan dard/System.Text.RegularExpressions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.T hreading.AccessControl.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Threading.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Threading.Overlapped.dll /reference:C:\Us ers\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Threading.Tasks.Dataflow.dll /reference:C:\Users\hugh\Doc uments\GitHub\corefx\bin/ref/netstandard/System.Threading.Tasks.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\ bin/ref/netstandard/System.Threading.Tasks.Extensions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/ne tstandard/System.Threading.Tasks.Parallel.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/Sy stem.Threading.Thread.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Threading.Threa dPool.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Threading.Timer.dll /reference: C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Transactions.dll /reference:C:\Users\hugh\Documents\ GitHub\corefx\bin/ref/netstandard/System.ValueTuple.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/nets tandard/System.Web.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Windows.dll /refer ence:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Xml.dll /reference:C:\Users\hugh\Documents\GitH ub\corefx\bin/ref/netstandard/System.Xml.Linq.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandar d/System.Xml.ReaderWriter.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Xml.Seriali zation.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Xml.XDocument.dll /reference:C :\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Xml.XmlDocument.dll /reference:C:\Users\hugh\Document s\GitHub\corefx\bin/ref/netstandard/System.Xml.XmlSerializer.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin /ref/netstandard/System.Xml.XPath.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Xml .XPath.XDocument.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64/xun it.core.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64/Xunit.NetCor e.Extensions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64/xunit.a ssert.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64/xunit.abstract ions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64/xunit.performan ce.core.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/runtime/netcoreapp-Windows_NT-Debug-x64/xunit.perfor mance.api.dll /debug+ /debug:full /delaysign- /keyfile:C:\Users\hugh\Documents\GitHub\corefx\Tools/Test.snk /optimize - /out:C:\Users\hugh\Documents\GitHub\corefx\bin/obj/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.VisualC.Tests /netstandard/System.Runtime.CompilerServices.VisualC.Tests.dll /ruleset:C:\Users\hugh\Documents\GitHub\corefx\CodeAna lysis.ruleset /target:library /warnaserror+ /utf8output /analyzer:C:\Users\hugh\Documents\GitHub\corefx\Tools/net46/a nalyzers/Microsoft.DotNet.CodeAnalysis.dll /additionalfile:C:\Users\hugh\Documents\GitHub\corefx\bin/obj/AnyOS.AnyCPU .Debug/System.Runtime.CompilerServices.VisualC.Tests/netstandard//disabledAnalyzers.config System\Runtime\CompilerSer vices\ScopelessEnumAttributeTests.cs System\Runtime\CompilerServices\RequiredAttributeAttributeTests.cs C:\Users\hugh \Documents\GitHub\corefx\bin/obj/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.VisualC.Tests/netstandard/_Assemb lyInfo.cs @C:\Users\hugh\Documents\GitHub\corefx\Tools\checksum.rsp Using shared compilation with compiler from directory: C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\roslyn\tools CopyFilesToOutputDirectory: Copying file from ""C:\Users\hugh\Documents\GitHub\corefx\bin/obj/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.V isualC.Tests/netstandard/System.Runtime.CompilerServices.VisualC.Tests.dll"" to ""C:\Users\hugh\Documents\GitHub\corefx \bin/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.VisualC.Tests/netstandard/System.Runtime.CompilerServices.Vis ualC.Tests.dll"". System.Runtime.CompilerServices.VisualC.Tests -> C:\Users\hugh\Documents\GitHub\corefx\bin\AnyOS.AnyCPU.Debug\System. Runtime.CompilerServices.VisualC.Tests\netstandard\System.Runtime.CompilerServices.VisualC.Tests.dll Copying file from ""C:\Users\hugh\Documents\GitHub\corefx\bin/obj/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.V isualC.Tests/netstandard/System.Runtime.CompilerServices.VisualC.Tests.pdb"" to ""C:\Users\hugh\Documents\GitHub\corefx \bin/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.VisualC.Tests/netstandard/System.Runtime.CompilerServices.Vis ualC.Tests.pdb"". GenerateTestExecutionScripts: Generating C:\Users\hugh\Documents\GitHub\corefx\bin//TestDependencies/System.Runtime.CompilerServices.VisualC.Tests- .dependencylist.txt Test Command lines = call %RUNTIME_PATH%\dotnet.exe xunit.console.netcore.exe System.Runtime.CompilerServices.VisualC .Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapptests -notrait category=nonwi ndowstests -notrait category=OuterLoop -notrait category=failing Wrote Windows-compatible test execution script to C:\Users\hugh\Documents\GitHub\corefx\bin/AnyOS.AnyCPU.Debug/System .Runtime.CompilerServices.VisualC.Tests/netstandard//RunTests.cmd RunTestsForProject: C:\Users\hugh\Documents\GitHub\corefx\bin/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.VisualC.Tests/netstandar d//RunTests.cmd C:\Users\hugh\Documents\GitHub\corefx\bin/testhost/netcoreapp-Windows_NT-Debug-x64/ Using C:\Users\hugh\Documents\GitHub\corefx\bin\testhost\netcoreapp-Windows_NT-Debug-x64\ as the test runtime folder. Executing in C:\Users\hugh\Documents\GitHub\corefx\bin\AnyOS.AnyCPU.Debug\System.Runtime.CompilerServices.VisualC.Tes ts\netstandard\ Running tests... Start time: 8:55:55.21 xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. Discovering: System.Runtime.CompilerServices.VisualC.Tests Discovered: System.Runtime.CompilerServices.VisualC.Tests Starting: System.Runtime.CompilerServices.VisualC.Tests Finished: System.Runtime.CompilerServices.VisualC.Tests === TEST EXECUTION SUMMARY === System.Runtime.CompilerServices.VisualC.Tests Total: 3, Errors: 0, Failed: 0, Skipped: 0, Time: 0.508s Finished running tests. End time= 8:55:57.70, Exit code = 0 Touching ""C:\Users\hugh\Documents\GitHub\corefx\bin/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.VisualC.Tests/ netstandard//tests.passed.without.OuterLoop.failing"". Done Building Project ""C:\Users\hugh\Documents\GitHub\corefx\src\System.Runtime.CompilerServices.VisualC\tests\System.R untime.CompilerServices.VisualC.Tests.csproj"" (BuildAndTest target(s)). Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:04.55 C:\Users\hugh\Documents\GitHub\corefx\src\System.Runtime.CompilerServices.VisualC\tests>msbuild /T:BuildAndTest /P:TargetGroup=uap Microsoft (R) Build Engine version 15.1.1012.6693 Copyright (C) Microsoft Corporation. All rights reserved. Build started 20/06/2017 08:56:02. Project ""C:\Users\hugh\Documents\GitHub\corefx\src\System.Runtime.CompilerServices.VisualC\tests\System.Runtime.Compile rServices.VisualC.Tests.csproj"" on node 1 (BuildAndTest target(s)). GenerateAssemblyInfo: Skipping target ""GenerateAssemblyInfo"" because all output files are up-to-date with respect to the input files. CoreCompile: C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /noconfig /unsafe+ /nowarn:1701,1702 /nostdlib+ /warn:4 /define :DEBUG;TRACE;DEBUGRESOURCES;SIGNED /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/CoreFx.Privat e.TestUtilities.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/Microsoft.CSharp.dll /refere nce:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/Microsoft.VisualBasic.dll /reference:C:\Users\hugh\Docu ments\GitHub\corefx\bin/ref/netstandard/Microsoft.Win32.Primitives.dll /reference:C:\Users\hugh\Documents\GitHub\core fx\bin/ref/netstandard/Microsoft.Win32.Registry.AccessControl.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bi n/ref/netstandard/Microsoft.Win32.Registry.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/m scorlib.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/netstandard.dll /reference:C:\Users\ hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.AppContext.dll /reference:C:\Users\hugh\Documents\GitHub\core fx\bin/ref/netstandard/System.Buffers.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System .CodeDom.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Collections.Concurrent.dll / reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Collections.dll /reference:C:\Users\hugh\D ocuments\GitHub\corefx\bin/ref/netstandard/System.Collections.Immutable.dll /reference:C:\Users\hugh\Documents\GitHub \corefx\bin/ref/netstandard/System.Collections.NonGeneric.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/re f/netstandard/System.Collections.Specialized.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard /System.ComponentModel.Annotations.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Co mponentModel.Composition.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.ComponentMod el.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.ComponentModel.EventBasedAsync.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.ComponentModel.Primitives.dll /reference :C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.ComponentModel.TypeConverter.dll /reference:C:\User s\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Composition.AttributedModel.dll /reference:C:\Users\hugh\Do cuments\GitHub\corefx\bin/ref/netstandard/System.Composition.Convention.dll /reference:C:\Users\hugh\Documents\GitHub \corefx\bin/ref/netstandard/System.Composition.Hosting.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/n etstandard/System.Composition.Runtime.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System .Composition.TypedParts.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Configuration .ConfigurationManager.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Console.dll /re ference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Core.dll /reference:C:\Users\hugh\Documents\ GitHub\corefx\bin/ref/netstandard/System.Data.Common.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/net standard/System.Data.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Data.Odbc.dll /r eference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Data.SqlClient.dll /reference:C:\Users\hugh \Documents\GitHub\corefx\bin/ref/netstandard/System.Diagnostics.Contracts.dll /reference:C:\Users\hugh\Documents\GitH ub\corefx\bin/ref/netstandard/System.Diagnostics.Debug.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/n etstandard/System.Diagnostics.DiagnosticSource.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstanda rd/System.Diagnostics.FileVersionInfo.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System .Diagnostics.Process.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Diagnostics.Stac kTrace.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Diagnostics.TextWriterTraceLis tener.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Diagnostics.Tools.dll /referenc e:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Diagnostics.TraceSource.dll /reference:C:\Users\hu gh\Documents\GitHub\corefx\bin/ref/netstandard/System.Diagnostics.Tracing.dll /reference:C:\Users\hugh\Documents\GitH ub\corefx\bin/ref/netstandard/System.DirectoryServices.AccountManagement.dll /reference:C:\Users\hugh\Documents\GitHu b\corefx\bin/ref/netstandard/System.DirectoryServices.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/ne tstandard/System.DirectoryServices.Protocols.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard /System.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Drawing.dll /reference:C:\Use rs\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Drawing.Primitives.dll /reference:C:\Users\hugh\Documents\ GitHub\corefx\bin/ref/netstandard/System.Dynamic.Runtime.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref /netstandard/System.Globalization.Calendars.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/ System.Globalization.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Globalization.Ex tensions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.Compression.dll /referenc e:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.Compression.FileSystem.dll /reference:C:\Users\ hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.Compression.ZipFile.dll /reference:C:\Users\hugh\Documents \GitHub\corefx\bin/ref/netstandard/System.IO.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard /System.IO.FileSystem.AccessControl.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.I O.FileSystem.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.FileSystem.DriveInfo. dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.FileSystem.Primitives.dll /referen ce:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.FileSystem.Watcher.dll /reference:C:\Users\hug h\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.IsolatedStorage.dll /reference:C:\Users\hugh\Documents\GitHub \corefx\bin/ref/netstandard/System.IO.MemoryMappedFiles.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/ netstandard/System.IO.Packaging.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.Pi pes.AccessControl.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.Pipes.dll /refer ence:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.IO.Ports.dll /reference:C:\Users\hugh\Documents \GitHub\corefx\bin/ref/netstandard/System.IO.UnmanagedMemoryStream.dll /reference:C:\Users\hugh\Documents\GitHub\core fx\bin/ref/netstandard/System.Json.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Li nq.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Linq.Expressions.dll /reference:C: \Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Linq.Parallel.dll /reference:C:\Users\hugh\Documents\G itHub\corefx\bin/ref/netstandard/System.Linq.Queryable.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/n etstandard/System.Memory.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.dll /ref erence:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.Http.dll /reference:C:\Users\hugh\Documen ts\GitHub\corefx\bin/ref/netstandard/System.Net.Http.WinHttpHandler.dll /reference:C:\Users\hugh\Documents\GitHub\cor efx\bin/ref/netstandard/System.Net.NameResolution.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netsta ndard/System.Net.NetworkInformation.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.N et.Ping.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.Primitives.dll /reference :C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.Requests.dll /reference:C:\Users\hugh\Documents \GitHub\corefx\bin/ref/netstandard/System.Net.Security.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/n etstandard/System.Net.Sockets.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.Web HeaderCollection.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.WebSockets.Clien t.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Net.WebSockets.dll /reference:C:\Us ers\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Numerics.dll /reference:C:\Users\hugh\Documents\GitHub\co refx\bin/ref/netstandard/System.Numerics.Vectors.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstan dard/System.ObjectModel.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Reflection.Co ntext.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Reflection.DispatchProxy.dll /r eference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Reflection.dll /reference:C:\Users\hugh\Doc uments\GitHub\corefx\bin/ref/netstandard/System.Reflection.Extensions.dll /reference:C:\Users\hugh\Documents\GitHub\c orefx\bin/ref/netstandard/System.Reflection.Metadata.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/net standard/System.Reflection.Primitives.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System .Reflection.TypeExtensions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Resources. Reader.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Resources.ResourceManager.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Resources.Writer.dll /reference:C:\Users\ hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.CompilerServices.Unsafe.dll /reference:C:\Users\hugh\ Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.CompilerServices.VisualC.dll /reference:C:\Users\hugh\Docu ments\GitHub\corefx\bin/ref/netstandard/System.Runtime.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/n etstandard/System.Runtime.Extensions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System. Runtime.Handles.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.InteropServic es.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.InteropServices.RuntimeInf ormation.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.Numerics.dll /refere nce:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.Serialization.dll /reference:C:\Users\hu gh\Documents\GitHub\corefx\bin/ref/netstandard/System.Runtime.Serialization.Formatters.dll /reference:C:\Users\hugh\D ocuments\GitHub\corefx\bin/ref/netstandard/System.Runtime.Serialization.Json.dll /reference:C:\Users\hugh\Documents\G itHub\corefx\bin/ref/netstandard/System.Runtime.Serialization.Primitives.dll /reference:C:\Users\hugh\Documents\GitHu b\corefx\bin/ref/netstandard/System.Runtime.Serialization.Xml.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bi n/ref/netstandard/System.Security.AccessControl.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstand ard/System.Security.Claims.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.C ryptography.Algorithms.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Crypt ography.Cng.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.Csp .dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.Encoding.dll / reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.OpenSsl.dll /referen ce:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.Pkcs.dll /reference:C:\User s\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.Primitives.dll /reference:C:\Users\hu gh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.ProtectedData.dll /reference:C:\Users\hug h\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.X509Certificates.dll /reference:C:\Users\h ugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Security.Cryptography.Xml.dll /reference:C:\Users\hugh\Documen ts\GitHub\corefx\bin/ref/netstandard/System.Security.Permissions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx \bin/ref/netstandard/System.Security.Principal.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstanda rd/System.Security.Principal.Windows.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System. Security.SecureString.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.ServiceModel.We b.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.ServiceProcess.ServiceController.dl l /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Text.Encoding.CodePages.dll /reference: C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Text.Encoding.dll /reference:C:\Users\hugh\Documents \GitHub\corefx\bin/ref/netstandard/System.Text.Encoding.Extensions.dll /reference:C:\Users\hugh\Documents\GitHub\core fx\bin/ref/netstandard/System.Text.Encodings.Web.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstan dard/System.Text.RegularExpressions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.T hreading.AccessControl.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Threading.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Threading.Overlapped.dll /reference:C:\Us ers\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Threading.Tasks.Dataflow.dll /reference:C:\Users\hugh\Doc uments\GitHub\corefx\bin/ref/netstandard/System.Threading.Tasks.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\ bin/ref/netstandard/System.Threading.Tasks.Extensions.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/ne tstandard/System.Threading.Tasks.Parallel.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/Sy stem.Threading.Thread.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Threading.Threa dPool.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Threading.Timer.dll /reference: C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Transactions.dll /reference:C:\Users\hugh\Documents\ GitHub\corefx\bin/ref/netstandard/System.ValueTuple.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/nets tandard/System.Web.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Windows.dll /refer ence:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Xml.dll /reference:C:\Users\hugh\Documents\GitH ub\corefx\bin/ref/netstandard/System.Xml.Linq.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandar d/System.Xml.ReaderWriter.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Xml.Seriali zation.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Xml.XDocument.dll /reference:C :\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Xml.XmlDocument.dll /reference:C:\Users\hugh\Document s\GitHub\corefx\bin/ref/netstandard/System.Xml.XmlSerializer.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin /ref/netstandard/System.Xml.XPath.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/ref/netstandard/System.Xml .XPath.XDocument.dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/runtime/uap-Windows_NT-Debug-x64/xunit.core .dll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/runtime/uap-Windows_NT-Debug-x64/Xunit.NetCore.Extensions.d ll /reference:C:\Users\hugh\Documents\GitHub\corefx\bin/runtime/uap-Windows_NT-Debug-x64/xunit.assert.dll /reference: C:\Users\hugh\Documents\GitHub\corefx\bin/runtime/uap-Windows_NT-Debug-x64/xunit.abstractions.dll /reference:C:\Users \hugh\Documents\GitHub\corefx\bin/runtime/uap-Windows_NT-Debug-x64/xunit.performance.core.dll /reference:C:\Users\hug h\Documents\GitHub\corefx\bin/runtime/uap-Windows_NT-Debug-x64/xunit.performance.api.dll /debug+ /debug:full /delaysi gn- /keyfile:C:\Users\hugh\Documents\GitHub\corefx\Tools/Test.snk /optimize- /out:C:\Users\hugh\Documents\GitHub\core fx\bin/obj/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.VisualC.Tests/netstandard/System.Runtime.CompilerServic es.VisualC.Tests.dll /ruleset:C:\Users\hugh\Documents\GitHub\corefx\CodeAnalysis.ruleset /target:library /warnaserror + /utf8output /analyzer:C:\Users\hugh\Documents\GitHub\corefx\Tools/net46/analyzers/Microsoft.DotNet.CodeAnalysis.dll /additionalfile:C:\Users\hugh\Documents\GitHub\corefx\bin/obj/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.Vis ualC.Tests/netstandard//disabledAnalyzers.config System\Runtime\CompilerServices\ScopelessEnumAttributeTests.cs Syste m\Runtime\CompilerServices\RequiredAttributeAttributeTests.cs C:\Users\hugh\Documents\GitHub\corefx\bin/obj/AnyOS.Any CPU.Debug/System.Runtime.CompilerServices.VisualC.Tests/netstandard/_AssemblyInfo.cs @C:\Users\hugh\Documents\GitHub\ corefx\Tools\checksum.rsp Using shared compilation with compiler from directory: C:\Users\hugh\Documents\GitHub\corefx\Tools\net46\roslyn\tools CopyFilesToOutputDirectory: Copying file from ""C:\Users\hugh\Documents\GitHub\corefx\bin/obj/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.V isualC.Tests/netstandard/System.Runtime.CompilerServices.VisualC.Tests.dll"" to ""C:\Users\hugh\Documents\GitHub\corefx \bin/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.VisualC.Tests/netstandard/System.Runtime.CompilerServices.Vis ualC.Tests.dll"". System.Runtime.CompilerServices.VisualC.Tests -> C:\Users\hugh\Documents\GitHub\corefx\bin\AnyOS.AnyCPU.Debug\System. Runtime.CompilerServices.VisualC.Tests\netstandard\System.Runtime.CompilerServices.VisualC.Tests.dll Copying file from ""C:\Users\hugh\Documents\GitHub\corefx\bin/obj/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.V isualC.Tests/netstandard/System.Runtime.CompilerServices.VisualC.Tests.pdb"" to ""C:\Users\hugh\Documents\GitHub\corefx \bin/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.VisualC.Tests/netstandard/System.Runtime.CompilerServices.Vis ualC.Tests.pdb"". GenerateTestExecutionScripts: Generating C:\Users\hugh\Documents\GitHub\corefx\bin//TestDependencies/System.Runtime.CompilerServices.VisualC.Tests- .dependencylist.txt Test Command lines = mkdir Assets mkdir entrypoint mkdir Properties mkdir WinMetadata mklink /H AppxManifest.xml %RUNTIME_PATH%\Runner\AppxManifest.xml mklink /H Assets\LockScreenLogo.scale-200.png %RUNTIME_PATH%\Runner\Assets\LockScreenLogo.scale-200.png mklink /H Assets\SplashScreen.scale-200.png %RUNTIME_PATH%\Runner\Assets\SplashScreen.scale-200.png mklink /H Assets\Square150x150Logo.scale-200.png %RUNTIME_PATH%\Runner\Assets\Square150x150Logo.scale-200.png mklink /H Assets\Square44x44Logo.scale-200.png %RUNTIME_PATH%\Runner\Assets\Square44x44Logo.scale-200.png mklink /H Assets\Square44x44Logo.targetsize-24_altform-unplated.png %RUNTIME_PATH%\Runner\Assets\Square44x44Logo.targ etsize-24_altform-unplated.png mklink /H Assets\StoreLogo.png %RUNTIME_PATH%\Runner\Assets\StoreLogo.png mklink /H Assets\Wide310x150Logo.scale-200.png %RUNTIME_PATH%\Runner\Assets\Wide310x150Logo.scale-200.png mklink /H clrcompression.dll %RUNTIME_PATH%\Runner\clrcompression.dll mklink /H concrt140_app.dll %RUNTIME_PATH%\Runner\concrt140_app.dll mklink /H entrypoint\XUnit.Runner.Uap.exe %RUNTIME_PATH%\Runner\entrypoint\XUnit.Runner.Uap.exe mklink /H msvcp140_app.dll %RUNTIME_PATH%\Runner\msvcp140_app.dll mklink /H Properties\Default.rd.xml %RUNTIME_PATH%\Runner\Properties\Default.rd.xml mklink /H resources.pri %RUNTIME_PATH%\Runner\resources.pri mklink /H RunnerRemoteExecutionService.winmd %RUNTIME_PATH%\Runner\RunnerRemoteExecutionService.winmd mklink /H System.ComponentModel.DataAnnotations.dll %RUNTIME_PATH%\Runner\System.ComponentModel.DataAnnotations.dll mklink /H System.Net.dll %RUNTIME_PATH%\Runner\System.Net.dll mklink /H System.Private.ServiceModel.dll %RUNTIME_PATH%\Runner\System.Private.ServiceModel.dll mklink /H System.ServiceModel.dll %RUNTIME_PATH%\Runner\System.ServiceModel.dll mklink /H System.ServiceModel.Duplex.dll %RUNTIME_PATH%\Runner\System.ServiceModel.Duplex.dll mklink /H System.ServiceModel.Http.dll %RUNTIME_PATH%\Runner\System.ServiceModel.Http.dll mklink /H System.ServiceModel.NetTcp.dll %RUNTIME_PATH%\Runner\System.ServiceModel.NetTcp.dll mklink /H System.ServiceModel.Primitives.dll %RUNTIME_PATH%\Runner\System.ServiceModel.Primitives.dll mklink /H System.ServiceModel.Security.dll %RUNTIME_PATH%\Runner\System.ServiceModel.Security.dll mklink /H System.ServiceModel.Web.dll %RUNTIME_PATH%\Runner\System.ServiceModel.Web.dll mklink /H System.Windows.dll %RUNTIME_PATH%\Runner\System.Windows.dll mklink /H System.Xml.Serialization.dll %RUNTIME_PATH%\Runner\System.Xml.Serialization.dll mklink /H UAPHost.dll %RUNTIME_PATH%\Runner\UAPHost.dll mklink /H UWPHost.dll %RUNTIME_PATH%\Runner\UWPHost.dll mklink /H vcamp140_app.dll %RUNTIME_PATH%\Runner\vcamp140_app.dll mklink /H vccorlib140_app.dll %RUNTIME_PATH%\Runner\vccorlib140_app.dll mklink /H vcomp140_app.dll %RUNTIME_PATH%\Runner\vcomp140_app.dll mklink /H vcruntime140_app.dll %RUNTIME_PATH%\Runner\vcruntime140_app.dll mklink /H WinMetadata\Windows.winmd %RUNTIME_PATH%\Runner\WinMetadata\Windows.winmd mklink /H XUnit.Runner.Uap.exe %RUNTIME_PATH%\Runner\XUnit.Runner.Uap.exe mklink /H XUnit.Runner.Uap.xr.xml %RUNTIME_PATH%\Runner\XUnit.Runner.Uap.xr.xml mklink /H xunit.runner.utility.dotnet.dll %RUNTIME_PATH%\Runner\xunit.runner.utility.dotnet.dll mklink /H api-ms-win-core-console-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-console-l1-1-0.dll mklink /H api-ms-win-core-datetime-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-datetime-l1-1-0.dll mklink /H api-ms-win-core-debug-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-debug-l1-1-0.dll mklink /H api-ms-win-core-errorhandling-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-errorhandling-l1-1-0.dll mklink /H api-ms-win-core-file-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-file-l1-1-0.dll mklink /H api-ms-win-core-file-l1-2-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-file-l1-2-0.dll mklink /H api-ms-win-core-file-l2-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-file-l2-1-0.dll mklink /H api-ms-win-core-handle-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-handle-l1-1-0.dll mklink /H api-ms-win-core-heap-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-heap-l1-1-0.dll mklink /H api-ms-win-core-interlocked-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-interlocked-l1-1-0.dll mklink /H api-ms-win-core-libraryloader-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-libraryloader-l1-1-0.dll mklink /H api-ms-win-core-localization-l1-2-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-localization-l1-2-0.dll mklink /H api-ms-win-core-memory-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-memory-l1-1-0.dll mklink /H api-ms-win-core-namedpipe-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-namedpipe-l1-1-0.dll mklink /H api-ms-win-core-processenvironment-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-processenvironment-l 1-1-0.dll mklink /H api-ms-win-core-processthreads-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-processthreads-l1-1-0.dl l mklink /H api-ms-win-core-processthreads-l1-1-1.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-processthreads-l1-1-1.dl l mklink /H api-ms-win-core-profile-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-profile-l1-1-0.dll mklink /H api-ms-win-core-rtlsupport-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-rtlsupport-l1-1-0.dll mklink /H api-ms-win-core-string-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-string-l1-1-0.dll mklink /H api-ms-win-core-synch-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-synch-l1-1-0.dll mklink /H api-ms-win-core-synch-l1-2-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-synch-l1-2-0.dll mklink /H api-ms-win-core-sysinfo-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-sysinfo-l1-1-0.dll mklink /H api-ms-win-core-timezone-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-timezone-l1-1-0.dll mklink /H api-ms-win-core-util-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-core-util-l1-1-0.dll mklink /H api-ms-win-crt-conio-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-conio-l1-1-0.dll mklink /H api-ms-win-crt-convert-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-convert-l1-1-0.dll mklink /H api-ms-win-crt-environment-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-environment-l1-1-0.dll mklink /H api-ms-win-crt-filesystem-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-filesystem-l1-1-0.dll mklink /H api-ms-win-crt-heap-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-heap-l1-1-0.dll mklink /H api-ms-win-crt-locale-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-locale-l1-1-0.dll mklink /H api-ms-win-crt-math-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-math-l1-1-0.dll mklink /H api-ms-win-crt-multibyte-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-multibyte-l1-1-0.dll mklink /H api-ms-win-crt-private-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-private-l1-1-0.dll mklink /H api-ms-win-crt-process-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-process-l1-1-0.dll mklink /H api-ms-win-crt-runtime-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-runtime-l1-1-0.dll mklink /H api-ms-win-crt-stdio-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-stdio-l1-1-0.dll mklink /H api-ms-win-crt-string-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-string-l1-1-0.dll mklink /H api-ms-win-crt-time-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-time-l1-1-0.dll mklink /H api-ms-win-crt-utility-l1-1-0.dll %RUNTIME_PATH%\UAPLayout\api-ms-win-crt-utility-l1-1-0.dll mklink /H apphost.exe %RUNTIME_PATH%\UAPLayout\apphost.exe mklink /H clrcompression.dll %RUNTIME_PATH%\UAPLayout\clrcompression.dll mklink /H clrcompression.lib %RUNTIME_PATH%\UAPLayout\clrcompression.lib mklink /H clrcompression.pdb %RUNTIME_PATH%\UAPLayout\clrcompression.pdb mklink /H clretwrc.dll %RUNTIME_PATH%\UAPLayout\clretwrc.dll mklink /H clrjit.dll %RUNTIME_PATH%\UAPLayout\clrjit.dll mklink /H CommandLine.dll %RUNTIME_PATH%\UAPLayout\CommandLine.dll mklink /H coreclr.dll %RUNTIME_PATH%\UAPLayout\coreclr.dll mklink /H CoreFx.Private.TestUtilities.dll %RUNTIME_PATH%\UAPLayout\CoreFx.Private.TestUtilities.dll mklink /H CoreFx.Private.TestUtilities.pdb %RUNTIME_PATH%\UAPLayout\CoreFx.Private.TestUtilities.pdb mklink /H CoreRun.exe %RUNTIME_PATH%\UAPLayout\CoreRun.exe mklink /H dbgshim.dll %RUNTIME_PATH%\UAPLayout\dbgshim.dll mklink /H dotnet.exe %RUNTIME_PATH%\UAPLayout\dotnet.exe mklink /H hostfxr.dll %RUNTIME_PATH%\UAPLayout\hostfxr.dll mklink /H hostpolicy.dll %RUNTIME_PATH%\UAPLayout\hostpolicy.dll mklink /H Microsoft.3rdpartytools.MarkdownLog.dll %RUNTIME_PATH%\UAPLayout\Microsoft.3rdpartytools.MarkdownLog.dll mklink /H Microsoft.CSharp.dll %RUNTIME_PATH%\UAPLayout\Microsoft.CSharp.dll mklink /H Microsoft.CSharp.pdb %RUNTIME_PATH%\UAPLayout\Microsoft.CSharp.pdb mklink /H Microsoft.Diagnostics.Tracing.TraceEvent.dll %RUNTIME_PATH%\UAPLayout\Microsoft.Diagnostics.Tracing.TraceEv ent.dll mklink /H Microsoft.VisualBasic.dll %RUNTIME_PATH%\UAPLayout\Microsoft.VisualBasic.dll mklink /H Microsoft.VisualBasic.pdb %RUNTIME_PATH%\UAPLayout\Microsoft.VisualBasic.pdb mklink /H Microsoft.Win32.Primitives.dll %RUNTIME_PATH%\UAPLayout\Microsoft.Win32.Primitives.dll mklink /H Microsoft.Win32.Primitives.pdb %RUNTIME_PATH%\UAPLayout\Microsoft.Win32.Primitives.pdb mklink /H Microsoft.Win32.Registry.AccessControl.dll %RUNTIME_PATH%\UAPLayout\Microsoft.Win32.Registry.AccessControl. dll mklink /H Microsoft.Win32.Registry.AccessControl.pdb %RUNTIME_PATH%\UAPLayout\Microsoft.Win32.Registry.AccessControl. pdb mklink /H Microsoft.Win32.Registry.dll %RUNTIME_PATH%\UAPLayout\Microsoft.Win32.Registry.dll mklink /H Microsoft.Win32.Registry.pdb %RUNTIME_PATH%\UAPLayout\Microsoft.Win32.Registry.pdb mklink /H Microsoft.XmlSerializer.Generator.dll %RUNTIME_PATH%\UAPLayout\Microsoft.XmlSerializer.Generator.dll mklink /H Microsoft.XmlSerializer.Generator.pdb %RUNTIME_PATH%\UAPLayout\Microsoft.XmlSerializer.Generator.pdb mklink /H mscordaccore.dll %RUNTIME_PATH%\UAPLayout\mscordaccore.dll mklink /H mscordbi.dll %RUNTIME_PATH%\UAPLayout\mscordbi.dll mklink /H mscorlib.dll %RUNTIME_PATH%\UAPLayout\mscorlib.dll mklink /H mscorlib.pdb %RUNTIME_PATH%\UAPLayout\mscorlib.pdb mklink /H mscorrc.debug.dll %RUNTIME_PATH%\UAPLayout\mscorrc.debug.dll mklink /H mscorrc.dll %RUNTIME_PATH%\UAPLayout\mscorrc.dll mklink /H netstandard.dll %RUNTIME_PATH%\UAPLayout\netstandard.dll mklink /H Newtonsoft.Json.dll %RUNTIME_PATH%\UAPLayout\Newtonsoft.Json.dll mklink /H sni.dll %RUNTIME_PATH%\UAPLayout\sni.dll mklink /H sos.dll %RUNTIME_PATH%\UAPLayout\sos.dll mklink /H SOS.NETCore.dll %RUNTIME_PATH%\UAPLayout\SOS.NETCore.dll mklink /H System.AppContext.dll %RUNTIME_PATH%\UAPLayout\System.AppContext.dll mklink /H System.AppContext.pdb %RUNTIME_PATH%\UAPLayout\System.AppContext.pdb mklink /H System.Buffers.dll %RUNTIME_PATH%\UAPLayout\System.Buffers.dll mklink /H System.Buffers.pdb %RUNTIME_PATH%\UAPLayout\System.Buffers.pdb mklink /H System.CodeDom.dll %RUNTIME_PATH%\UAPLayout\System.CodeDom.dll mklink /H System.CodeDom.pdb %RUNTIME_PATH%\UAPLayout\System.CodeDom.pdb mklink /H System.Collections.Concurrent.dll %RUNTIME_PATH%\UAPLayout\System.Collections.Concurrent.dll mklink /H System.Collections.Concurrent.pdb %RUNTIME_PATH%\UAPLayout\System.Collections.Concurrent.pdb mklink /H System.Collections.dll %RUNTIME_PATH%\UAPLayout\System.Collections.dll mklink /H System.Collections.Immutable.dll %RUNTIME_PATH%\UAPLayout\System.Collections.Immutable.dll mklink /H System.Collections.Immutable.pdb %RUNTIME_PATH%\UAPLayout\System.Collections.Immutable.pdb mklink /H System.Collections.NonGeneric.dll %RUNTIME_PATH%\UAPLayout\System.Collections.NonGeneric.dll mklink /H System.Collections.NonGeneric.pdb %RUNTIME_PATH%\UAPLayout\System.Collections.NonGeneric.pdb mklink /H System.Collections.pdb %RUNTIME_PATH%\UAPLayout\System.Collections.pdb mklink /H System.Collections.Specialized.dll %RUNTIME_PATH%\UAPLayout\System.Collections.Specialized.dll mklink /H System.Collections.Specialized.pdb %RUNTIME_PATH%\UAPLayout\System.Collections.Specialized.pdb mklink /H System.ComponentModel.Annotations.dll %RUNTIME_PATH%\UAPLayout\System.ComponentModel.Annotations.dll mklink /H System.ComponentModel.Annotations.pdb %RUNTIME_PATH%\UAPLayout\System.ComponentModel.Annotations.pdb mklink /H System.ComponentModel.Composition.dll %RUNTIME_PATH%\UAPLayout\System.ComponentModel.Composition.dll mklink /H System.ComponentModel.DataAnnotations.dll %RUNTIME_PATH%\UAPLayout\System.ComponentModel.DataAnnotations.dl l mklink /H System.ComponentModel.dll %RUNTIME_PATH%\UAPLayout\System.ComponentModel.dll mklink /H System.ComponentModel.EventBasedAsync.dll %RUNTIME_PATH%\UAPLayout\System.ComponentModel.EventBasedAsync.dl l mklink /H System.ComponentModel.EventBasedAsync.pdb %RUNTIME_PATH%\UAPLayout\System.ComponentModel.EventBasedAsync.pd b mklink /H System.ComponentModel.pdb %RUNTIME_PATH%\UAPLayout\System.ComponentModel.pdb mklink /H System.ComponentModel.Primitives.dll %RUNTIME_PATH%\UAPLayout\System.ComponentModel.Primitives.dll mklink /H System.ComponentModel.Primitives.pdb %RUNTIME_PATH%\UAPLayout\System.ComponentModel.Primitives.pdb mklink /H System.ComponentModel.TypeConverter.dll %RUNTIME_PATH%\UAPLayout\System.ComponentModel.TypeConverter.dll mklink /H System.ComponentModel.TypeConverter.pdb %RUNTIME_PATH%\UAPLayout\System.ComponentModel.TypeConverter.pdb mklink /H System.Composition.AttributedModel.dll %RUNTIME_PATH%\UAPLayout\System.Composition.AttributedModel.dll mklink /H System.Composition.AttributedModel.pdb %RUNTIME_PATH%\UAPLayout\System.Composition.AttributedModel.pdb mklink /H System.Composition.Convention.dll %RUNTIME_PATH%\UAPLayout\System.Composition.Convention.dll mklink /H System.Composition.Convention.pdb %RUNTIME_PATH%\UAPLayout\System.Composition.Convention.pdb mklink /H System.Composition.Hosting.dll %RUNTIME_PATH%\UAPLayout\System.Composition.Hosting.dll mklink /H System.Composition.Hosting.pdb %RUNTIME_PATH%\UAPLayout\System.Composition.Hosting.pdb mklink /H System.Composition.Runtime.dll %RUNTIME_PATH%\UAPLayout\System.Composition.Runtime.dll mklink /H System.Composition.Runtime.pdb %RUNTIME_PATH%\UAPLayout\System.Composition.Runtime.pdb mklink /H System.Composition.TypedParts.dll %RUNTIME_PATH%\UAPLayout\System.Composition.TypedParts.dll mklink /H System.Composition.TypedParts.pdb %RUNTIME_PATH%\UAPLayout\System.Composition.TypedParts.pdb mklink /H System.Configuration.ConfigurationManager.dll %RUNTIME_PATH%\UAPLayout\System.Configuration.ConfigurationMa nager.dll mklink /H System.Configuration.ConfigurationManager.pdb %RUNTIME_PATH%\UAPLayout\System.Configuration.ConfigurationMa nager.pdb mklink /H System.Configuration.dll %RUNTIME_PATH%\UAPLayout\System.Configuration.dll mklink /H System.Console.dll %RUNTIME_PATH%\UAPLayout\System.Console.dll mklink /H System.Console.pdb %RUNTIME_PATH%\UAPLayout\System.Console.pdb mklink /H System.Core.dll %RUNTIME_PATH%\UAPLayout\System.Core.dll mklink /H System.Data.Common.dll %RUNTIME_PATH%\UAPLayout\System.Data.Common.dll mklink /H System.Data.Common.pdb %RUNTIME_PATH%\UAPLayout\System.Data.Common.pdb mklink /H System.Data.dll %RUNTIME_PATH%\UAPLayout\System.Data.dll mklink /H System.Data.Odbc.dll %RUNTIME_PATH%\UAPLayout\System.Data.Odbc.dll mklink /H System.Data.Odbc.pdb %RUNTIME_PATH%\UAPLayout\System.Data.Odbc.pdb mklink /H System.Data.SqlClient.dll %RUNTIME_PATH%\UAPLayout\System.Data.SqlClient.dll mklink /H System.Data.SqlClient.pdb %RUNTIME_PATH%\UAPLayout\System.Data.SqlClient.pdb mklink /H System.Diagnostics.Contracts.dll %RUNTIME_PATH%\UAPLayout\System.Diagnostics.Contracts.dll mklink /H System.Diagnostics.Contracts.pdb %RUNTIME_PATH%\UAPLayout\System.Diagnostics.Contracts.pdb mklink /H System.Diagnostics.Debug.dll %RUNTIME_PATH%\UAPLayout\System.Diagnostics.Debug.dll mklink /H System.Diagnostics.Debug.pdb %RUNTIME_PATH%\UAPLayout\System.Diagnostics.Debug.pdb mklink /H System.Diagnostics.DiagnosticSource.dll %RUNTIME_PATH%\UAPLayout\System.Diagnostics.DiagnosticSource.dll mklink /H System.Diagnostics.DiagnosticSource.pdb %RUNTIME_PATH%\UAPLayout\System.Diagnostics.DiagnosticSource.pdb mklink /H System.Diagnostics.FileVersionInfo.dll %RUNTIME_PATH%\UAPLayout\System.Diagnostics.FileVersionInfo.dll mklink /H System.Diagnostics.FileVersionInfo.pdb %RUNTIME_PATH%\UAPLayout\System.Diagnostics.FileVersionInfo.pdb mklink /H System.Diagnostics.Process.dll %RUNTIME_PATH%\UAPLayout\System.Diagnostics.Process.dll mklink /H System.Diagnostics.Process.pdb %RUNTIME_PATH%\UAPLayout\System.Diagnostics.Process.pdb mklink /H System.Diagnostics.StackTrace.dll %RUNTIME_PATH%\UAPLayout\System.Diagnostics.StackTrace.dll mklink /H System.Diagnostics.StackTrace.pdb %RUNTIME_PATH%\UAPLayout\System.Diagnostics.StackTrace.pdb mklink /H System.Diagnostics.TextWriterTraceListener.dll %RUNTIME_PATH%\UAPLayout\System.Diagnostics.TextWriterTraceL istener.dll mklink /H System.Diagnostics.TextWriterTraceListener.pdb %RUNTIME_PATH%\UAPLayout\System.Diagnostics.TextWriterTraceL istener.pdb mklink /H System.Diagnostics.Tools.dll %RUNTIME_PATH%\UAPLayout\System.Diagnostics.Tools.dll mklink /H System.Diagnostics.Tools.pdb %RUNTIME_PATH%\UAPLayout\System.Diagnostics.Tools.pdb mklink /H System.Diagnostics.TraceSource.dll %RUNTIME_PATH%\UAPLayout\System.Diagnostics.TraceSource.dll mklink /H System.Diagnostics.TraceSource.pdb %RUNTIME_PATH%\UAPLayout\System.Diagnostics.TraceSource.pdb mklink /H System.Diagnostics.Tracing.dll %RUNTIME_PATH%\UAPLayout\System.Diagnostics.Tracing.dll mklink /H System.Diagnostics.Tracing.pdb %RUNTIME_PATH%\UAPLayout\System.Diagnostics.Tracing.pdb mklink /H System.DirectoryServices.AccountManagement.dll %RUNTIME_PATH%\UAPLayout\System.DirectoryServices.AccountMan agement.dll mklink /H System.DirectoryServices.AccountManagement.pdb %RUNTIME_PATH%\UAPLayout\System.DirectoryServices.AccountMan agement.pdb mklink /H System.DirectoryServices.dll %RUNTIME_PATH%\UAPLayout\System.DirectoryServices.dll mklink /H System.DirectoryServices.pdb %RUNTIME_PATH%\UAPLayout\System.DirectoryServices.pdb mklink /H System.DirectoryServices.Protocols.dll %RUNTIME_PATH%\UAPLayout\System.DirectoryServices.Protocols.dll mklink /H System.DirectoryServices.Protocols.pdb %RUNTIME_PATH%\UAPLayout\System.DirectoryServices.Protocols.pdb mklink /H System.dll %RUNTIME_PATH%\UAPLayout\System.dll mklink /H System.Drawing.dll %RUNTIME_PATH%\UAPLayout\System.Drawing.dll mklink /H System.Drawing.Primitives.dll %RUNTIME_PATH%\UAPLayout\System.Drawing.Primitives.dll mklink /H System.Drawing.Primitives.pdb %RUNTIME_PATH%\UAPLayout\System.Drawing.Primitives.pdb mklink /H System.Dynamic.Runtime.dll %RUNTIME_PATH%\UAPLayout\System.Dynamic.Runtime.dll mklink /H System.Dynamic.Runtime.pdb %RUNTIME_PATH%\UAPLayout\System.Dynamic.Runtime.pdb mklink /H System.Globalization.Calendars.dll %RUNTIME_PATH%\UAPLayout\System.Globalization.Calendars.dll mklink /H System.Globalization.Calendars.pdb %RUNTIME_PATH%\UAPLayout\System.Globalization.Calendars.pdb mklink /H System.Globalization.dll %RUNTIME_PATH%\UAPLayout\System.Globalization.dll mklink /H System.Globalization.Extensions.dll %RUNTIME_PATH%\UAPLayout\System.Globalization.Extensions.dll mklink /H System.Globalization.Extensions.pdb %RUNTIME_PATH%\UAPLayout\System.Globalization.Extensions.pdb mklink /H System.Globalization.pdb %RUNTIME_PATH%\UAPLayout\System.Globalization.pdb mklink /H System.IO.Compression.dll %RUNTIME_PATH%\UAPLayout\System.IO.Compression.dll mklink /H System.IO.Compression.FileSystem.dll %RUNTIME_PATH%\UAPLayout\System.IO.Compression.FileSystem.dll mklink /H System.IO.Compression.pdb %RUNTIME_PATH%\UAPLayout\System.IO.Compression.pdb mklink /H System.IO.Compression.ZipFile.dll %RUNTIME_PATH%\UAPLayout\System.IO.Compression.ZipFile.dll mklink /H System.IO.Compression.ZipFile.pdb %RUNTIME_PATH%\UAPLayout\System.IO.Compression.ZipFile.pdb mklink /H System.IO.dll %RUNTIME_PATH%\UAPLayout\System.IO.dll mklink /H System.IO.FileSystem.AccessControl.dll %RUNTIME_PATH%\UAPLayout\System.IO.FileSystem.AccessControl.dll mklink /H System.IO.FileSystem.AccessControl.pdb %RUNTIME_PATH%\UAPLayout\System.IO.FileSystem.AccessControl.pdb mklink /H System.IO.FileSystem.dll %RUNTIME_PATH%\UAPLayout\System.IO.FileSystem.dll mklink /H System.IO.FileSystem.DriveInfo.dll %RUNTIME_PATH%\UAPLayout\System.IO.FileSystem.DriveInfo.dll mklink /H System.IO.FileSystem.DriveInfo.pdb %RUNTIME_PATH%\UAPLayout\System.IO.FileSystem.DriveInfo.pdb mklink /H System.IO.FileSystem.pdb %RUNTIME_PATH%\UAPLayout\System.IO.FileSystem.pdb mklink /H System.IO.FileSystem.Primitives.dll %RUNTIME_PATH%\UAPLayout\System.IO.FileSystem.Primitives.dll mklink /H System.IO.FileSystem.Primitives.pdb %RUNTIME_PATH%\UAPLayout\System.IO.FileSystem.Primitives.pdb mklink /H System.IO.FileSystem.Watcher.dll %RUNTIME_PATH%\UAPLayout\System.IO.FileSystem.Watcher.dll mklink /H System.IO.FileSystem.Watcher.pdb %RUNTIME_PATH%\UAPLayout\System.IO.FileSystem.Watcher.pdb mklink /H System.IO.IsolatedStorage.dll %RUNTIME_PATH%\UAPLayout\System.IO.IsolatedStorage.dll mklink /H System.IO.IsolatedStorage.pdb %RUNTIME_PATH%\UAPLayout\System.IO.IsolatedStorage.pdb mklink /H System.IO.MemoryMappedFiles.dll %RUNTIME_PATH%\UAPLayout\System.IO.MemoryMappedFiles.dll mklink /H System.IO.MemoryMappedFiles.pdb %RUNTIME_PATH%\UAPLayout\System.IO.MemoryMappedFiles.pdb mklink /H System.IO.Packaging.dll %RUNTIME_PATH%\UAPLayout\System.IO.Packaging.dll mklink /H System.IO.Packaging.pdb %RUNTIME_PATH%\UAPLayout\System.IO.Packaging.pdb mklink /H System.IO.pdb %RUNTIME_PATH%\UAPLayout\System.IO.pdb mklink /H System.IO.Pipes.AccessControl.dll %RUNTIME_PATH%\UAPLayout\System.IO.Pipes.AccessControl.dll mklink /H System.IO.Pipes.AccessControl.pdb %RUNTIME_PATH%\UAPLayout\System.IO.Pipes.AccessControl.pdb mklink /H System.IO.Pipes.dll %RUNTIME_PATH%\UAPLayout\System.IO.Pipes.dll mklink /H System.IO.Pipes.pdb %RUNTIME_PATH%\UAPLayout\System.IO.Pipes.pdb mklink /H System.IO.Ports.dll %RUNTIME_PATH%\UAPLayout\System.IO.Ports.dll mklink /H System.IO.Ports.pdb %RUNTIME_PATH%\UAPLayout\System.IO.Ports.pdb mklink /H System.IO.UnmanagedMemoryStream.dll %RUNTIME_PATH%\UAPLayout\System.IO.UnmanagedMemoryStream.dll mklink /H System.IO.UnmanagedMemoryStream.pdb %RUNTIME_PATH%\UAPLayout\System.IO.UnmanagedMemoryStream.pdb mklink /H System.Json.dll %RUNTIME_PATH%\UAPLayout\System.Json.dll mklink /H System.Json.pdb %RUNTIME_PATH%\UAPLayout\System.Json.pdb mklink /H System.Linq.dll %RUNTIME_PATH%\UAPLayout\System.Linq.dll mklink /H System.Linq.Expressions.dll %RUNTIME_PATH%\UAPLayout\System.Linq.Expressions.dll mklink /H System.Linq.Expressions.pdb %RUNTIME_PATH%\UAPLayout\System.Linq.Expressions.pdb mklink /H System.Linq.Parallel.dll %RUNTIME_PATH%\UAPLayout\System.Linq.Parallel.dll mklink /H System.Linq.Parallel.pdb %RUNTIME_PATH%\UAPLayout\System.Linq.Parallel.pdb mklink /H System.Linq.pdb %RUNTIME_PATH%\UAPLayout\System.Linq.pdb mklink /H System.Linq.Queryable.dll %RUNTIME_PATH%\UAPLayout\System.Linq.Queryable.dll mklink /H System.Linq.Queryable.pdb %RUNTIME_PATH%\UAPLayout\System.Linq.Queryable.pdb mklink /H System.Memory.dll %RUNTIME_PATH%\UAPLayout\System.Memory.dll mklink /H System.Memory.pdb %RUNTIME_PATH%\UAPLayout\System.Memory.pdb mklink /H System.Net.dll %RUNTIME_PATH%\UAPLayout\System.Net.dll mklink /H System.Net.Http.dll %RUNTIME_PATH%\UAPLayout\System.Net.Http.dll mklink /H System.Net.Http.pdb %RUNTIME_PATH%\UAPLayout\System.Net.Http.pdb mklink /H System.Net.Http.Rtc.dll %RUNTIME_PATH%\UAPLayout\System.Net.Http.Rtc.dll mklink /H System.Net.Http.Rtc.pdb %RUNTIME_PATH%\UAPLayout\System.Net.Http.Rtc.pdb mklink /H System.Net.Http.WinHttpHandler.dll %RUNTIME_PATH%\UAPLayout\System.Net.Http.WinHttpHandler.dll mklink /H System.Net.Http.WinHttpHandler.pdb %RUNTIME_PATH%\UAPLayout\System.Net.Http.WinHttpHandler.pdb mklink /H System.Net.HttpListener.dll %RUNTIME_PATH%\UAPLayout\System.Net.HttpListener.dll mklink /H System.Net.HttpListener.pdb %RUNTIME_PATH%\UAPLayout\System.Net.HttpListener.pdb mklink /H System.Net.Mail.dll %RUNTIME_PATH%\UAPLayout\System.Net.Mail.dll mklink /H System.Net.Mail.pdb %RUNTIME_PATH%\UAPLayout\System.Net.Mail.pdb mklink /H System.Net.NameResolution.dll %RUNTIME_PATH%\UAPLayout\System.Net.NameResolution.dll mklink /H System.Net.NameResolution.pdb %RUNTIME_PATH%\UAPLayout\System.Net.NameResolution.pdb mklink /H System.Net.NetworkInformation.dll %RUNTIME_PATH%\UAPLayout\System.Net.NetworkInformation.dll mklink /H System.Net.NetworkInformation.pdb %RUNTIME_PATH%\UAPLayout\System.Net.NetworkInformation.pdb mklink /H System.Net.Ping.dll %RUNTIME_PATH%\UAPLayout\System.Net.Ping.dll mklink /H System.Net.Ping.pdb %RUNTIME_PATH%\UAPLayout\System.Net.Ping.pdb mklink /H System.Net.Primitives.dll %RUNTIME_PATH%\UAPLayout\System.Net.Primitives.dll mklink /H System.Net.Primitives.pdb %RUNTIME_PATH%\UAPLayout\System.Net.Primitives.pdb mklink /H System.Net.Requests.dll %RUNTIME_PATH%\UAPLayout\System.Net.Requests.dll mklink /H System.Net.Requests.pdb %RUNTIME_PATH%\UAPLayout\System.Net.Requests.pdb mklink /H System.Net.Security.dll %RUNTIME_PATH%\UAPLayout\System.Net.Security.dll mklink /H System.Net.Security.pdb %RUNTIME_PATH%\UAPLayout\System.Net.Security.pdb mklink /H System.Net.ServicePoint.dll %RUNTIME_PATH%\UAPLayout\System.Net.ServicePoint.dll mklink /H System.Net.ServicePoint.pdb %RUNTIME_PATH%\UAPLayout\System.Net.ServicePoint.pdb mklink /H System.Net.Sockets.dll %RUNTIME_PATH%\UAPLayout\System.Net.Sockets.dll mklink /H System.Net.Sockets.pdb %RUNTIME_PATH%\UAPLayout\System.Net.Sockets.pdb mklink /H System.Net.WebClient.dll %RUNTIME_PATH%\UAPLayout\System.Net.WebClient.dll mklink /H System.Net.WebClient.pdb %RUNTIME_PATH%\UAPLayout\System.Net.WebClient.pdb mklink /H System.Net.WebHeaderCollection.dll %RUNTIME_PATH%\UAPLayout\System.Net.WebHeaderCollection.dll mklink /H System.Net.WebHeaderCollection.pdb %RUNTIME_PATH%\UAPLayout\System.Net.WebHeaderCollection.pdb mklink /H System.Net.WebProxy.dll %RUNTIME_PATH%\UAPLayout\System.Net.WebProxy.dll mklink /H System.Net.WebProxy.pdb %RUNTIME_PATH%\UAPLayout\System.Net.WebProxy.pdb mklink /H System.Net.WebSockets.Client.dll %RUNTIME_PATH%\UAPLayout\System.Net.WebSockets.Client.dll mklink /H System.Net.WebSockets.Client.pdb %RUNTIME_PATH%\UAPLayout\System.Net.WebSockets.Client.pdb mklink /H System.Net.WebSockets.dll %RUNTIME_PATH%\UAPLayout\System.Net.WebSockets.dll mklink /H System.Net.WebSockets.pdb %RUNTIME_PATH%\UAPLayout\System.Net.WebSockets.pdb mklink /H System.Numerics.dll %RUNTIME_PATH%\UAPLayout\System.Numerics.dll mklink /H System.Numerics.Vectors.dll %RUNTIME_PATH%\UAPLayout\System.Numerics.Vectors.dll mklink /H System.Numerics.Vectors.pdb %RUNTIME_PATH%\UAPLayout\System.Numerics.Vectors.pdb mklink /H System.Numerics.Vectors.WindowsRuntime.dll %RUNTIME_PATH%\UAPLayout\System.Numerics.Vectors.WindowsRuntime. dll mklink /H System.Numerics.Vectors.WindowsRuntime.pdb %RUNTIME_PATH%\UAPLayout\System.Numerics.Vectors.WindowsRuntime. pdb mklink /H System.ObjectModel.dll %RUNTIME_PATH%\UAPLayout\System.ObjectModel.dll mklink /H System.ObjectModel.pdb %RUNTIME_PATH%\UAPLayout\System.ObjectModel.pdb mklink /H System.pdb %RUNTIME_PATH%\UAPLayout\System.pdb mklink /H System.Private.CoreLib.dll %RUNTIME_PATH%\UAPLayout\System.Private.CoreLib.dll mklink /H System.Private.DataContractSerialization.dll %RUNTIME_PATH%\UAPLayout\System.Private.DataContractSerializat ion.dll mklink /H System.Private.DataContractSerialization.pdb %RUNTIME_PATH%\UAPLayout\System.Private.DataContractSerializat ion.pdb mklink /H System.Private.Uri.dll %RUNTIME_PATH%\UAPLayout\System.Private.Uri.dll mklink /H System.Private.Uri.pdb %RUNTIME_PATH%\UAPLayout\System.Private.Uri.pdb mklink /H System.Private.Xml.dll %RUNTIME_PATH%\UAPLayout\System.Private.Xml.dll mklink /H System.Private.Xml.Linq.dll %RUNTIME_PATH%\UAPLayout\System.Private.Xml.Linq.dll mklink /H System.Private.Xml.Linq.pdb %RUNTIME_PATH%\UAPLayout\System.Private.Xml.Linq.pdb mklink /H System.Private.Xml.pdb %RUNTIME_PATH%\UAPLayout\System.Private.Xml.pdb mklink /H System.Reflection.Context.dll %RUNTIME_PATH%\UAPLayout\System.Reflection.Context.dll mklink /H System.Reflection.Context.pdb %RUNTIME_PATH%\UAPLayout\System.Reflection.Context.pdb mklink /H System.Reflection.DispatchProxy.dll %RUNTIME_PATH%\UAPLayout\System.Reflection.DispatchProxy.dll mklink /H System.Reflection.DispatchProxy.pdb %RUNTIME_PATH%\UAPLayout\System.Reflection.DispatchProxy.pdb mklink /H System.Reflection.dll %RUNTIME_PATH%\UAPLayout\System.Reflection.dll mklink /H System.Reflection.Emit.dll %RUNTIME_PATH%\UAPLayout\System.Reflection.Emit.dll mklink /H System.Reflection.Emit.ILGeneration.dll %RUNTIME_PATH%\UAPLayout\System.Reflection.Emit.ILGeneration.dll mklink /H System.Reflection.Emit.ILGeneration.pdb %RUNTIME_PATH%\UAPLayout\System.Reflection.Emit.ILGeneration.pdb mklink /H System.Reflection.Emit.Lightweight.dll %RUNTIME_PATH%\UAPLayout\System.Reflection.Emit.Lightweight.dll mklink /H System.Reflection.Emit.Lightweight.pdb %RUNTIME_PATH%\UAPLayout\System.Reflection.Emit.Lightweight.pdb mklink /H System.Reflection.Emit.pdb %RUNTIME_PATH%\UAPLayout\System.Reflection.Emit.pdb mklink /H System.Reflection.Extensions.dll %RUNTIME_PATH%\UAPLayout\System.Reflection.Extensions.dll mklink /H System.Reflection.Extensions.pdb %RUNTIME_PATH%\UAPLayout\System.Reflection.Extensions.pdb mklink /H System.Reflection.Metadata.dll %RUNTIME_PATH%\UAPLayout\System.Reflection.Metadata.dll mklink /H System.Reflection.Metadata.pdb %RUNTIME_PATH%\UAPLayout\System.Reflection.Metadata.pdb mklink /H System.Reflection.pdb %RUNTIME_PATH%\UAPLayout\System.Reflection.pdb mklink /H System.Reflection.Primitives.dll %RUNTIME_PATH%\UAPLayout\System.Reflection.Primitives.dll mklink /H System.Reflection.Primitives.pdb %RUNTIME_PATH%\UAPLayout\System.Reflection.Primitives.pdb mklink /H System.Reflection.TypeExtensions.dll %RUNTIME_PATH%\UAPLayout\System.Reflection.TypeExtensions.dll mklink /H System.Reflection.TypeExtensions.pdb %RUNTIME_PATH%\UAPLayout\System.Reflection.TypeExtensions.pdb mklink /H System.Resources.Reader.dll %RUNTIME_PATH%\UAPLayout\System.Resources.Reader.dll mklink /H System.Resources.Reader.pdb %RUNTIME_PATH%\UAPLayout\System.Resources.Reader.pdb mklink /H System.Resources.ResourceManager.dll %RUNTIME_PATH%\UAPLayout\System.Resources.ResourceManager.dll mklink /H System.Resources.ResourceManager.pdb %RUNTIME_PATH%\UAPLayout\System.Resources.ResourceManager.pdb mklink /H System.Resources.Writer.dll %RUNTIME_PATH%\UAPLayout\System.Resources.Writer.dll mklink /H System.Resources.Writer.pdb %RUNTIME_PATH%\UAPLayout\System.Resources.Writer.pdb mklink /H System.Runtime.CompilerServices.Unsafe.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.CompilerServices.Unsafe. dll mklink /H System.Runtime.CompilerServices.VisualC.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.CompilerServices.Visual C.dll mklink /H System.Runtime.CompilerServices.VisualC.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.CompilerServices.Visual C.pdb mklink /H System.Runtime.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.dll mklink /H System.Runtime.Extensions.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.Extensions.dll mklink /H System.Runtime.Extensions.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.Extensions.pdb mklink /H System.Runtime.Handles.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.Handles.dll mklink /H System.Runtime.Handles.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.Handles.pdb mklink /H System.Runtime.InteropServices.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.InteropServices.dll mklink /H System.Runtime.InteropServices.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.InteropServices.pdb mklink /H System.Runtime.InteropServices.RuntimeInformation.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.InteropServic es.RuntimeInformation.dll mklink /H System.Runtime.InteropServices.RuntimeInformation.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.InteropServic es.RuntimeInformation.pdb mklink /H System.Runtime.InteropServices.WindowsRuntime.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.InteropServices.W indowsRuntime.dll mklink /H System.Runtime.InteropServices.WindowsRuntime.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.InteropServices.W indowsRuntime.pdb mklink /H System.Runtime.Loader.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.Loader.dll mklink /H System.Runtime.Loader.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.Loader.pdb mklink /H System.Runtime.Numerics.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.Numerics.dll mklink /H System.Runtime.Numerics.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.Numerics.pdb mklink /H System.Runtime.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.pdb mklink /H System.Runtime.Serialization.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.Serialization.dll mklink /H System.Runtime.Serialization.Formatters.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.Serialization.Formatter s.dll mklink /H System.Runtime.Serialization.Formatters.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.Serialization.Formatter s.pdb mklink /H System.Runtime.Serialization.Json.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.Serialization.Json.dll mklink /H System.Runtime.Serialization.Json.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.Serialization.Json.pdb mklink /H System.Runtime.Serialization.Primitives.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.Serialization.Primitive s.dll mklink /H System.Runtime.Serialization.Primitives.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.Serialization.Primitive s.pdb mklink /H System.Runtime.Serialization.Xml.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.Serialization.Xml.dll mklink /H System.Runtime.Serialization.Xml.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.Serialization.Xml.pdb mklink /H System.Runtime.WindowsRuntime.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.WindowsRuntime.dll mklink /H System.Runtime.WindowsRuntime.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.WindowsRuntime.pdb mklink /H System.Runtime.WindowsRuntime.UI.Xaml.dll %RUNTIME_PATH%\UAPLayout\System.Runtime.WindowsRuntime.UI.Xaml.dl l mklink /H System.Runtime.WindowsRuntime.UI.Xaml.pdb %RUNTIME_PATH%\UAPLayout\System.Runtime.WindowsRuntime.UI.Xaml.pd b mklink /H System.Security.AccessControl.dll %RUNTIME_PATH%\UAPLayout\System.Security.AccessControl.dll mklink /H System.Security.AccessControl.pdb %RUNTIME_PATH%\UAPLayout\System.Security.AccessControl.pdb mklink /H System.Security.Claims.dll %RUNTIME_PATH%\UAPLayout\System.Security.Claims.dll mklink /H System.Security.Claims.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Claims.pdb mklink /H System.Security.Cryptography.Algorithms.dll %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Algorithm s.dll mklink /H System.Security.Cryptography.Algorithms.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Algorithm s.pdb mklink /H System.Security.Cryptography.Cng.dll %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Cng.dll mklink /H System.Security.Cryptography.Cng.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Cng.pdb mklink /H System.Security.Cryptography.Csp.dll %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Csp.dll mklink /H System.Security.Cryptography.Csp.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Csp.pdb mklink /H System.Security.Cryptography.Encoding.dll %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Encoding.dl l mklink /H System.Security.Cryptography.Encoding.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Encoding.pd b mklink /H System.Security.Cryptography.OpenSsl.dll %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.OpenSsl.dll mklink /H System.Security.Cryptography.OpenSsl.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.OpenSsl.pdb mklink /H System.Security.Cryptography.Pkcs.dll %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Pkcs.dll mklink /H System.Security.Cryptography.Pkcs.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Pkcs.pdb mklink /H System.Security.Cryptography.Primitives.dll %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Primitive s.dll mklink /H System.Security.Cryptography.Primitives.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Primitive s.pdb mklink /H System.Security.Cryptography.ProtectedData.dll %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Protec tedData.dll mklink /H System.Security.Cryptography.ProtectedData.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Protec tedData.pdb mklink /H System.Security.Cryptography.X509Certificates.dll %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.X50 9Certificates.dll mklink /H System.Security.Cryptography.X509Certificates.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.X50 9Certificates.pdb mklink /H System.Security.Cryptography.Xml.dll %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Xml.dll mklink /H System.Security.Cryptography.Xml.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Cryptography.Xml.pdb mklink /H System.Security.dll %RUNTIME_PATH%\UAPLayout\System.Security.dll mklink /H System.Security.Permissions.dll %RUNTIME_PATH%\UAPLayout\System.Security.Permissions.dll mklink /H System.Security.Permissions.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Permissions.pdb mklink /H System.Security.Principal.dll %RUNTIME_PATH%\UAPLayout\System.Security.Principal.dll mklink /H System.Security.Principal.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Principal.pdb mklink /H System.Security.Principal.Windows.dll %RUNTIME_PATH%\UAPLayout\System.Security.Principal.Windows.dll mklink /H System.Security.Principal.Windows.pdb %RUNTIME_PATH%\UAPLayout\System.Security.Principal.Windows.pdb mklink /H System.Security.SecureString.dll %RUNTIME_PATH%\UAPLayout\System.Security.SecureString.dll mklink /H System.Security.SecureString.pdb %RUNTIME_PATH%\UAPLayout\System.Security.SecureString.pdb mklink /H System.ServiceModel.Web.dll %RUNTIME_PATH%\UAPLayout\System.ServiceModel.Web.dll mklink /H System.ServiceProcess.dll %RUNTIME_PATH%\UAPLayout\System.ServiceProcess.dll mklink /H System.ServiceProcess.ServiceController.dll %RUNTIME_PATH%\UAPLayout\System.ServiceProcess.ServiceControlle r.dll mklink /H System.ServiceProcess.ServiceController.pdb %RUNTIME_PATH%\UAPLayout\System.ServiceProcess.ServiceControlle r.pdb mklink /H System.Text.Encoding.CodePages.dll %RUNTIME_PATH%\UAPLayout\System.Text.Encoding.CodePages.dll mklink /H System.Text.Encoding.CodePages.pdb %RUNTIME_PATH%\UAPLayout\System.Text.Encoding.CodePages.pdb mklink /H System.Text.Encoding.dll %RUNTIME_PATH%\UAPLayout\System.Text.Encoding.dll mklink /H System.Text.Encoding.Extensions.dll %RUNTIME_PATH%\UAPLayout\System.Text.Encoding.Extensions.dll mklink /H System.Text.Encoding.Extensions.pdb %RUNTIME_PATH%\UAPLayout\System.Text.Encoding.Extensions.pdb mklink /H System.Text.Encoding.pdb %RUNTIME_PATH%\UAPLayout\System.Text.Encoding.pdb mklink /H System.Text.Encodings.Web.dll %RUNTIME_PATH%\UAPLayout\System.Text.Encodings.Web.dll mklink /H System.Text.Encodings.Web.pdb %RUNTIME_PATH%\UAPLayout\System.Text.Encodings.Web.pdb mklink /H System.Text.RegularExpressions.dll %RUNTIME_PATH%\UAPLayout\System.Text.RegularExpressions.dll mklink /H System.Text.RegularExpressions.pdb %RUNTIME_PATH%\UAPLayout\System.Text.RegularExpressions.pdb mklink /H System.Threading.AccessControl.dll %RUNTIME_PATH%\UAPLayout\System.Threading.AccessControl.dll mklink /H System.Threading.AccessControl.pdb %RUNTIME_PATH%\UAPLayout\System.Threading.AccessControl.pdb mklink /H System.Threading.dll %RUNTIME_PATH%\UAPLayout\System.Threading.dll mklink /H System.Threading.Overlapped.dll %RUNTIME_PATH%\UAPLayout\System.Threading.Overlapped.dll mklink /H System.Threading.Overlapped.pdb %RUNTIME_PATH%\UAPLayout\System.Threading.Overlapped.pdb mklink /H System.Threading.pdb %RUNTIME_PATH%\UAPLayout\System.Threading.pdb mklink /H System.Threading.Tasks.Dataflow.dll %RUNTIME_PATH%\UAPLayout\System.Threading.Tasks.Dataflow.dll mklink /H System.Threading.Tasks.Dataflow.pdb %RUNTIME_PATH%\UAPLayout\System.Threading.Tasks.Dataflow.pdb mklink /H System.Threading.Tasks.dll %RUNTIME_PATH%\UAPLayout\System.Threading.Tasks.dll mklink /H System.Threading.Tasks.Extensions.dll %RUNTIME_PATH%\UAPLayout\System.Threading.Tasks.Extensions.dll mklink /H System.Threading.Tasks.Extensions.pdb %RUNTIME_PATH%\UAPLayout\System.Threading.Tasks.Extensions.pdb mklink /H System.Threading.Tasks.Parallel.dll %RUNTIME_PATH%\UAPLayout\System.Threading.Tasks.Parallel.dll mklink /H System.Threading.Tasks.Parallel.pdb %RUNTIME_PATH%\UAPLayout\System.Threading.Tasks.Parallel.pdb mklink /H System.Threading.Tasks.pdb %RUNTIME_PATH%\UAPLayout\System.Threading.Tasks.pdb mklink /H System.Threading.Thread.dll %RUNTIME_PATH%\UAPLayout\System.Threading.Thread.dll mklink /H System.Threading.Thread.pdb %RUNTIME_PATH%\UAPLayout\System.Threading.Thread.pdb mklink /H System.Threading.ThreadPool.dll %RUNTIME_PATH%\UAPLayout\System.Threading.ThreadPool.dll mklink /H System.Threading.ThreadPool.pdb %RUNTIME_PATH%\UAPLayout\System.Threading.ThreadPool.pdb mklink /H System.Threading.Timer.dll %RUNTIME_PATH%\UAPLayout\System.Threading.Timer.dll mklink /H System.Threading.Timer.pdb %RUNTIME_PATH%\UAPLayout\System.Threading.Timer.pdb mklink /H System.Transactions.dll %RUNTIME_PATH%\UAPLayout\System.Transactions.dll mklink /H System.Transactions.Local.dll %RUNTIME_PATH%\UAPLayout\System.Transactions.Local.dll mklink /H System.Transactions.Local.pdb %RUNTIME_PATH%\UAPLayout\System.Transactions.Local.pdb mklink /H System.ValueTuple.dll %RUNTIME_PATH%\UAPLayout\System.ValueTuple.dll mklink /H System.ValueTuple.pdb %RUNTIME_PATH%\UAPLayout\System.ValueTuple.pdb mklink /H System.Web.dll %RUNTIME_PATH%\UAPLayout\System.Web.dll mklink /H System.Web.HttpUtility.dll %RUNTIME_PATH%\UAPLayout\System.Web.HttpUtility.dll mklink /H System.Web.HttpUtility.pdb %RUNTIME_PATH%\UAPLayout\System.Web.HttpUtility.pdb mklink /H System.Windows.dll %RUNTIME_PATH%\UAPLayout\System.Windows.dll mklink /H System.Xml.dll %RUNTIME_PATH%\UAPLayout\System.Xml.dll mklink /H System.Xml.Linq.dll %RUNTIME_PATH%\UAPLayout\System.Xml.Linq.dll mklink /H System.Xml.ReaderWriter.dll %RUNTIME_PATH%\UAPLayout\System.Xml.ReaderWriter.dll mklink /H System.Xml.ReaderWriter.pdb %RUNTIME_PATH%\UAPLayout\System.Xml.ReaderWriter.pdb mklink /H System.Xml.Serialization.dll %RUNTIME_PATH%\UAPLayout\System.Xml.Serialization.dll mklink /H System.Xml.XDocument.dll %RUNTIME_PATH%\UAPLayout\System.Xml.XDocument.dll mklink /H System.Xml.XDocument.pdb %RUNTIME_PATH%\UAPLayout\System.Xml.XDocument.pdb mklink /H System.Xml.XmlDocument.dll %RUNTIME_PATH%\UAPLayout\System.Xml.XmlDocument.dll mklink /H System.Xml.XmlDocument.pdb %RUNTIME_PATH%\UAPLayout\System.Xml.XmlDocument.pdb mklink /H System.Xml.XmlSerializer.dll %RUNTIME_PATH%\UAPLayout\System.Xml.XmlSerializer.dll mklink /H System.Xml.XmlSerializer.pdb %RUNTIME_PATH%\UAPLayout\System.Xml.XmlSerializer.pdb mklink /H System.Xml.XPath.dll %RUNTIME_PATH%\UAPLayout\System.Xml.XPath.dll mklink /H System.Xml.XPath.pdb %RUNTIME_PATH%\UAPLayout\System.Xml.XPath.pdb mklink /H System.Xml.XPath.XDocument.dll %RUNTIME_PATH%\UAPLayout\System.Xml.XPath.XDocument.dll mklink /H System.Xml.XPath.XDocument.pdb %RUNTIME_PATH%\UAPLayout\System.Xml.XPath.XDocument.pdb mklink /H ucrtbase.dll %RUNTIME_PATH%\UAPLayout\ucrtbase.dll mklink /H WindowsBase.dll %RUNTIME_PATH%\UAPLayout\WindowsBase.dll mklink /H xunit.abstractions.dll %RUNTIME_PATH%\UAPLayout\xunit.abstractions.dll mklink /H xunit.assert.dll %RUNTIME_PATH%\UAPLayout\xunit.assert.dll mklink /H xunit.assert.pdb %RUNTIME_PATH%\UAPLayout\xunit.assert.pdb mklink /H xunit.console.netcore.exe %RUNTIME_PATH%\UAPLayout\xunit.console.netcore.exe mklink /H xunit.core.dll %RUNTIME_PATH%\UAPLayout\xunit.core.dll mklink /H xunit.core.pdb %RUNTIME_PATH%\UAPLayout\xunit.core.pdb mklink /H xunit.execution.dotnet.dll %RUNTIME_PATH%\UAPLayout\xunit.execution.dotnet.dll mklink /H xunit.execution.dotnet.pdb %RUNTIME_PATH%\UAPLayout\xunit.execution.dotnet.pdb mklink /H Xunit.NetCore.Extensions.dll %RUNTIME_PATH%\UAPLayout\Xunit.NetCore.Extensions.dll mklink /H xunit.performance.api.dll %RUNTIME_PATH%\UAPLayout\xunit.performance.api.dll mklink /H xunit.performance.core.dll %RUNTIME_PATH%\UAPLayout\xunit.performance.core.dll mklink /H xunit.performance.execution.dll %RUNTIME_PATH%\UAPLayout\xunit.performance.execution.dll mklink /H xunit.performance.metrics.dll %RUNTIME_PATH%\UAPLayout\xunit.performance.metrics.dll mklink /H xunit.runner.utility.dotnet.dll %RUNTIME_PATH%\UAPLayout\xunit.runner.utility.dotnet.dll mklink /H xunit.runner.utility.dotnet.pdb %RUNTIME_PATH%\UAPLayout\xunit.runner.utility.dotnet.pdb copy /y %RUNTIME_PATH%\UAPLayout\System.Private.CoreLib.dll System.Private.CoreLib.ni.dll call %RUNTIME_PATH%\Launcher\WindowsStoreAppLauncher.exe -test appxmanifest.xml System.Runtime.CompilerServices.Visua lC.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonuaptests -notrait category=nonwindows tests -notrait category=OuterLoop -notrait category=failing move %USERPROFILE%\Documents\TestResults\System.Runtime.CompilerServices.VisualC.Tests.dll.xml .\testResults.xml move %USERPROFILE%\Documents\TestResults\System.Runtime.CompilerServices.VisualC.Tests.dll.txt .\logs.txt type logs.txt Wrote Windows-compatible test execution script to C:\Users\hugh\Documents\GitHub\corefx\bin/AnyOS.AnyCPU.Debug/System .Runtime.CompilerServices.VisualC.Tests/netstandard//RunTests.cmd RunTestsForProject: C:\Users\hugh\Documents\GitHub\corefx\bin/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.VisualC.Tests/netstandar d//RunTests.cmd C:\Users\hugh\Documents\GitHub\corefx\bin/testhost/uap-Windows_NT-Debug-x64/ Using C:\Users\hugh\Documents\GitHub\corefx\bin\testhost\uap-Windows_NT-Debug-x64\ as the test runtime folder. Executing in C:\Users\hugh\Documents\GitHub\corefx\bin\AnyOS.AnyCPU.Debug\System.Runtime.CompilerServices.VisualC.Tes ts\netstandard\ Running tests... Start time: 8:56:03.19 A subdirectory or file Assets already exists. A subdirectory or file entrypoint already exists. A subdirectory or file Properties already exists. A subdirectory or file WinMetadata already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. 1 file(s) copied. Got manifest file appxmanifest.xml Removing any previous installation... Installing the application... Package ID is 5cd54353-3ed7-4a6e-a72f-db349f28867c_1.0.0.0_x64__v52bfwc2c21ha Starting the application... Resolved Folder Path: C:\Users\hugh\AppData\Local\Packages\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\ Waiting for the application to exit... Process has just exited with return code 1. Disabling the debugger... STDOUT & STDERR from imersive process: ================================================================================== ================================================================================== Removing the application... SUCCESS ExitCode 1 1 file(s) moved. 1 file(s) moved. Args: System.Runtime.CompilerServices.VisualC.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait catego ry=nonuaptests -notrait category=nonwindowstests -notrait category=OuterLoop -notrait category=failing Starting... Discovering: System.Runtime.CompilerServices.VisualC.Tests Discovered: System.Runtime.CompilerServices.VisualC.Tests Starting: System.Runtime.CompilerServices.VisualC.Tests Finished: System.Runtime.CompilerServices.VisualC.Tests System.Runtime.CompilerServices.VisualC.Tests Total: 3, Errors: 0, Failed: 0, Time: 0.1498099 Finished running tests. End time= 8:56:11.88, Exit code = 0 Touching ""C:\Users\hugh\Documents\GitHub\corefx\bin/AnyOS.AnyCPU.Debug/System.Runtime.CompilerServices.VisualC.Tests/ netstandard//tests.passed.without.OuterLoop.failing"". Done Building Project ""C:\Users\hugh\Documents\GitHub\corefx\src\System.Runtime.CompilerServices.VisualC\tests\System.R untime.CompilerServices.VisualC.Tests.csproj"" (BuildAndTest target(s)). Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:09.73 C:\Users\hugh\Documents\GitHub\corefx\src\System.Runtime.CompilerServices.VisualC\tests> ``` +0xccdaae at xunit.console.netcore!+0xccd83f at xunit.console.netcore!+0xccf0ef at xunit.console.netcore!+0xccf045 at xunit.console.netcore!+0xcceab3 at xunit.console.netcore!+0xcce9e0 at xunit.console.netcore!+0xcc5a91 at xunit.console.netcore!+0xcc3998 at xunit.console.netcore!+0xcc390b at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.RoundtripManyObjectsInOneStream() at xunit.console.netcore!+0xf6a15e at xunit.console.netcore!+0xc8f23c at xunit.console.netcore!+0xc8f094 Build : Master - 20170620.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170620.01/workItem/System.Runtime.Serialization.Formatters.Tests/analysis/xunit/System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests~2FRoundtripManyObjectsInOneStream +21259 area-System.Runtime "Test: System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests/ValidateAgainstBlobs failed with ""Xunit.Sdk.TrueException""" "Opened on behalf of @Jiayili1 The test `System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests/ValidateAgainstBlobs(obj: GenericEqualityComparer`1 { }, blobs: [\""AAEAAAD/////AQAAAAAAAAAEAQAAAC9TeXN0ZW0uQ29sbGVjdG\""..., \...` has failed. Error during equality check of type System.Collections.Generic.GenericEqualityComparer`1[[System.Byte, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]\r Expected: True\r Actual: False Stack Trace: at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.CheckForAnyEquals(Object obj, Object deserializedObj) at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.ValidateAgainstBlobs(Object obj, String[] blobs) at xunit.console.netcore!+0xcf3d3c at xunit.console.netcore!+0xc8f1ff at xunit.console.netcore!+0xc8f08a Build : Master - 20170620.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170620.01/workItem/System.Runtime.Serialization.Formatters.Tests/analysis/xunit/System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests~2FValidateAgainstBlobs(obj:%20GenericEqualityComparer%601%20%7B%20%7D,%20blobs:%20%5B%5C%22AAEAAAD~2F~2F~2F~2F~2FAQAAAAAAAAAEAQAAAC9TeXN0ZW0uQ29sbGVjdG%5C%22...,%20%5C..." +21260 area-System.Linq Test failure: System.Linq.Tests.SelectTests/SelectProperty Opened on behalf of @Jiayili1 The test `System.Linq.Tests.SelectTests/SelectProperty` has failed. $BlockedFromReflection_0_927fe506 : MakeGenericMethod() cannot create this generic method instantiation because the instantiation was not metadata-enabled: 'System.Linq.Enumerable.Select<<>f__AnonymousType2,System.String>(System.Collections.Generic.IEnumerable<<>f__AnonymousType2>,System.Func<<>f__AnonymousType2,System.String>)' For more information, please visit http://go.microsoft.com/fwlink/?LinkID=616868 Stack Trace: at xunit.console.netcore!+0xac6247 at xunit.console.netcore!+0xb88307 at xunit.console.netcore!+0xb39311 at xunit.console.netcore!+0xb39dab at xunit.console.netcore!+0xb87e95 at xunit.console.netcore!+0xb0db5d at xunit.console.netcore!+0xb0dda5 at xunit.console.netcore!+0x7a4a6d at xunit.console.netcore!+0xb0dd19 at xunit.console.netcore!+0xb0d3c7 at xunit.console.netcore!+0xafdbd1 at xunit.console.netcore!+0x69fe77 at xunit.console.netcore!+0x69fef9 at xunit.console.netcore!+0x8b87d7 at xunit.console.netcore!+0x8b8e27 at System.Linq.Tests.SelectTests.SelectProperty() at xunit.console.netcore!+0xa1be21 at xunit.console.netcore!+0x899973 at xunit.console.netcore!+0x8997a7 Build : Master - 20170620.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170620.01/workItem/System.Linq.Queryable.Tests.Execution/analysis/xunit/System.Linq.Tests.SelectTests~2FSelectProperty +21261 area-System.Numerics "Test: System.Numerics.Tests.GenericVectorTests/SquareRootSingle failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Numerics.Tests.GenericVectorTests/SquareRootSingle` has failed. Assert.Equal() Failure\r Expected: 43194.29\r Actual: 43194.3 Stack Trace: at System.Numerics.Tests.GenericVectorTests.<>c__DisplayClass533_0.b__0(Int32 index, Single val) at System.Numerics.Tests.GenericVectorTests.ValidateVector(Numerics.Vector vector, Action indexValidationFunc) at System.Numerics.Tests.GenericVectorTests.TestSquareRoot() at System.Numerics.Tests.GenericVectorTests.SquareRootSingle() at xunit.console.netcore!+0xa57d5d at xunit.console.netcore!+0x84efd3 at xunit.console.netcore!+0x84ee07 Build : Master - 20170620.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170620.01/workItem/System.Numerics.Vectors.Tests.Execution/analysis/xunit/System.Numerics.Tests.GenericVectorTests~2FSquareRootSingle +21263 area-System.Net Allow file Uris to terminate the host with '\' on Unix. Reverts part of https://github.com/dotnet/corefx/pull/20623 which discards these uris as BadAuthorityTerminator. With this change, these uris work the same as on Windows. CC @Priya91 @stephentoub @karelz +21267 area-Meta Command Line tokenization is done all over the place and inconsistently. They should be reconciled. "We have at least four separate implementations of command line tokenization/pasting: CoreCLR - Windows - **Environment.GetCommandLineArgs()** and create a String[] array to pass to Main() https://github.com/dotnet/coreclr/blob/master/src/utilcode/util.cpp#L2886 CoreRT - Windows - **Environment.GetCommandLineArgs()** and create a String[] array to pass to Main() https://github.com/dotnet/corert/blob/master/src/System.Private.CoreLib/src/System/Runtime/CommandLine.Windows.cs#L44 CoreFx - Unix - **System.Diagnostics.Process** - create String[] array to pass to Unix exec(). https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs#L450 CoreFx - AnyPlatform - **Environment.CommandLine** - untokenize String[] array back to a single String. https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Extensions/src/System/Environment.cs#L64 There's also test infrastructure (https://github.com/dotnet/corefx/blob/master/src/CoreFx.Private.TestUtilities/src/System/Diagnostics/RemoteExecutorTestBase.Process.cs#L52) which implements a ""String[]""-based process invocation utility. It should also paste the arguments using the canonical standard but right it now, it doesn't even make a minimal attempt. While we can't easily share source for an algorithm that lives in three different repos and is written in two different languages, they should at least implement the same standard. It's a pity we never API'ized this in a usable way since every command line tool that parses a response file has to redo this work (and probably get it wrong.) That standard should probably be the CRT's **parse_cmdline()** routine which is what the full framework has emulated ever since .Net 4.0. The CoreCLR and CoreRT implementations are probably already good reference implementations to model (aside from some incorrect comments that imply the behavior is based on **CommandLineToArgvW()**. That may have been true once, but that behavior has diverged between it and the CRT.) The Unix tokenizer at has at least one bug related to zero-length arguments. And the repaster for Environment.CommandLine looks highly suspect (does not recognize that argv[0] is tokenized using special rules, and handling of the 2N/2N+1 backslash rule.) For reference here's also a good 3rd party overview of the sorry mess: http://www.windowsinspired.com/how-a-windows-programs-splits-its-command-line-into-individual-arguments/" +21268 area-System.Runtime Disable User and Machine environment api tests inside appcontainers. These require registry apis and we don't expect to support those inside appcontainers. +21269 area-System.Security [release/2.0] Make VerifyWithRevocation skip if the Online chain can't build "When the system doesn't have a current CRL cached for the entirety of the chain, and the CRL Distribution Point is offline (or there's a local network issue) then the test fails. This is tolerable for a manual run, but not for the automated runs. So unless the X.509 ""RunManualTests"" configuration is set, treat a failure of the online chain to be a skip. Ideally we'd throw a SkipTestException, or something of that ilk, but xunit doesn't support it. Port of https://github.com/dotnet/corefx/issues/21230. Fixes #21076 (in rel/2.0)" +21270 area-System.Drawing Add back some private constructors in System.Drawing.Common https://github.com/dotnet/corefx/commit/f6bb2b5bb5f8841e839fb99eb60118b7b37c4901 removed a few private constructors, because they are not interesting for .NET Core. We should add them back behind a flag, because mono needs them to stick around when they compile this code. @hughbe +21271 area-Infrastructure Build definition work to disable external publish via PipeBuild definition "Related: https://github.com/dotnet/core-eng/issues/626 This was informed by the MSRC work, where being able to selectively disable publish steps for all builds in the composed product was necessary. I did some work to allow disabling any given Pipebuild leg with the -d arg (e.g. “-d ""Regex:^Publish.*""”) but @dagood points out that there’s more to be done there since some repositories do things that need to be disabled in nearly every leg of their build. This issue tracks doing build definition refactoring work to factor functionality that needs to be optionally turned off out. There’s probably many ways to actually get this work done, but I’d suggest one of two: - Factor the optional behavior into independent pipelines (as defined by the pipelines.json for this repo) and disable them for servicing PIpebuild definitions as noted above - Establish Boolean properties that disable all undesirable behavior (publishing to feeds, etc) and set these properties in the -g section of the PipeBuild definition used. In both cases this work needs to be done in the repository using it, not in Pipebuild or other Engineering Services code. Simply disabling the publish leg in CoreFX helps, but it does mean we no longer get a VSTS Drop for each build and other tasks in the publish leg like symbol signing no longer run. It's not a huge deal to run a custom build later to do only the needed steps, but the team should decide what to do here. " +21272 area-System.Net Return Linux NetworkInterface speed in bits per second, not megabits. "On Linux, we retrieve the speed of a network interface ""xyz"" by looking at the file `/sys/class/net/xyz/speed`. This file contains the connection speed in **megabits** per second, but `NetworkInterface.Speed` specifies that it returns a value in **bits** per second. This is a small change that converts between those two units. @stephentoub @pawelgerr Fixes https://github.com/dotnet/corefx/issues/21226" +21273 area-System.IO [NetFx/Mono compat] File.Delete throws IOException on non-existing file on a read-only file system on Linux "Repro steps: ```bash $ sudo mkdir -p /mnt/readonlyfs $ sudo mount --bind / /mnt/readonlyfs $ sudo mount -o remount,ro,bind / /mnt/readonlyfs $ cd /mnt/readonlyfs && touch test.txt # just to be sure touch: cannot touch ‘test.txt’: Read-only file system ``` ```bash $ cd ~ $ dotnet new console ... add the following code in Main(): ... System.IO.File.Delete (""/mnt/readonlyfs/test.txt""); $ dotnet run Unhandled Exception: System.IO.IOException: Read-only file system at System.IO.UnixFileSystem.DeleteFile(String fullPath) at System.IO.File.Delete(String path) at test.Program.Main(String[] args) in /home/alexander/dev/test/Program.cs:line 10 ``` The same code works with Mono, i.e. throws no exception on the non-existent file as specified by MSDN: https://msdn.microsoft.com/en-us/library/system.io.file.delete(v=vs.110).aspx: > If the file to be deleted does not exist, no exception is thrown. --- Importantly, it also works with .NET Core/.NET Framework on Windows when you create a new partition and use `diskpart` to set it to read-only via `ATTRIBUTES VOLUME SET READONLY`. .NET Core version (same on Linux/Windows): ```bash $ dotnet --info .NET Command Line Tools (2.0.0-preview1-005977) Product Information: Version: 2.0.0-preview1-005977 Commit SHA-1 hash: 414cab8a0b Runtime Environment: OS Name: ubuntu OS Version: 14.04 OS Platform: Linux RID: ubuntu.14.04-x64 Base Path: /usr/share/dotnet/sdk/2.0.0-preview1-005977/ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview1-002111-00 Build : 1ff021936263d492539399688f46fd3827169983 ``` /cc @JeremyKuhne " +21274 area-System.Diagnostics System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_TextFile_ShellExecute [FAIL] "Found in https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_debug_prtest/122/consoleFull#-4760281082d31e50d-1517-49fc-92b3-2ca637122019 Ran part of #21239. ``` System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_TextFile_ShellExecute [FAIL] 15:48:45 Could not start C:\Users\dotnet-bot\AppData\Local\Temp\ProcessStartInfoTests_dc2ppurg.ww0\StartInfo_TextFile_ShellExecute_1010_2203599d.txt UseShellExecute=True 15:48:45 Association details for '.txt' 15:48:45 ------------------------------ 15:48:45 Open command: C:\Windows\system32\OpenWith.exe ""%1"" 15:48:45 ProgID: Didn't get expected HRESULT (1) when getting char count. HRESULT was 0x80070057 15:48:45 15:48:45 Expected: True 15:48:45 Actual: False 15:48:45 Stack Trace: 15:48:45 D:\j\workspace\outerloop_net---92aeb271\src\System.Diagnostics.Process\tests\ProcessStartInfoTests.cs(1022,0): at System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_TextFile_ShellExecute() 15:48:46 15:48:46 15:48:46 Usage: dotnet [options] 15:48:46 15:48:46 Usage: dotnet [path-to-application] 15:48:46 15:48:46 15:48:46 15:48:46 Options: 15:48:46 15:48:46 -h|--help Display help. 15:48:46 15:48:46 --version Display version. 15:48:46 15:48:46 15:48:46 15:48:46 path-to-application: 15:48:46 15:48:46 The path to an application .dll file to execute. 15:48:46 15:48:49 Finished: System.Diagnostics.Process.Tests 15:48:49 15:48:49 === TEST EXECUTION SUMMARY === 15:48:49 D:\j\workspace\outerloop_net---92aeb271\Tools\tests.targets(345,5): warning : System.Diagnostics.Process.Tests Total: 222, Errors: 0, Failed: 1, Skipped: 2, Time: 5.381s [D:\j\workspace\outerloop_net---92aeb271\src\System.Diagnostics.Process\tests\System.Diagnostics.Process.Tests.csproj] 15:48:49 Trying to find crash dumps for project: System.Diagnostics.Process.Tests 15:48:49 No new dump file was found in C:\Users\DOTNET~1\AppData\Local\Temp\CoreRunCrashDumps 15:48:49 Finished running tests. End time=15:48:48.97, Exit code = 1 15:48:49 D:\j\workspace\outerloop_net---92aeb271\Tools\tests.targets(345,5): warning MSB3073: The command ""D:\j\workspace\outerloop_net---92aeb271\bin/Windows_NT.AnyCPU.Debug/System.Diagnostics.Process.Tests/netstandard//RunTests.cmd D:\j\workspace\outerloop_net---92aeb271\bin/testhost/netcoreapp-Windows_NT-Debug-x64/"" exited with code 1. [D:\j\workspace\outerloop_net---92aeb271\src\System.Diagnostics.Process\tests\System.Diagnostics.Process.Tests.csproj] 15:48:49 D:\j\workspace\outerloop_net---92aeb271\Tools\tests.targets(353,5): error : One or more tests failed while running tests from 'System.Diagnostics.Process.Tests' please check D:\j\workspace\outerloop_net---92aeb271\bin/Windows_NT.AnyCPU.Debug/System.Diagnostics.Process.Tests/netstandard/testResults.xml for details! [D:\j\workspace\outerloop_net---92aeb271\src\System.Diagnostics.Process\tests\System.Diagnostics.Process.Tests.csproj] ```" +21275 area-Infrastructure RemoteExecutorTestBase on UAP waits for the remote process It looks like the UAP implementation of RemoteInvoke waits for the remote process to finish before continuing, blocking the main process. Some tests are timing out due to this, and others that are expecting concurrent processing are being run sequentially. Disabled tests: - https://github.com/dotnet/corefx/blob/master/src/System.Threading/tests/EventWaitHandleTests.cs#L179 - https://github.com/dotnet/corefx/blob/master/src/System.Threading/tests/SemaphoreTests.cs#L283 +21276 area-System.Threading RemoteInvoke + Both reading/writing to a file does not seem to work "The test is using FileCleanupTestBase.GetTestFilePath(), but it's getting the following exception from the remote process: ``` ERROR: System.Threading.Tests.MutexTests.CrossProcess_NamedMutex_ProtectedFileAccessAtomic(prefix: ""dd63f96fc81d41239d884790ad70bd6c"") [FAIL] System.AggregateException : One or more errors occurred. (RemoteExecuter: System.Threading.Tests, Version=4.1.1.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb b__15_1 dd63f96fc81d41239d884790ad70bd6ca4c011e6fad843faa29b09c69631e03f, ""C:\Users\\AppData\Local\Packages\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\AC\Temp\MutexTests_s5jxc3bf.q23\CrossProcess_NamedMutex_ProtectedFileAccessAtomic_228_e009ac76"" System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NotSupportedException: The format of the path '""C:\Users\\AppData\Local\Packages\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\AC\Temp\MutexTests_s5jxc3bf.q23\CrossProcess_NamedMutex_ProtectedFileAccessAtomic_228_e009ac76""' is not supported. at System.IO.Path.GetFullPath(String path) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) at System.IO.StreamWriter..ctor(String path) at System.IO.File.WriteAllText(String path, String contents) at System.Threading.Tests.MutexTests.<>c.b__15_1(String m, String f) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at RunnerRemoteExecutionService.RemoteExecutor.HandleTheRequest(ValueSet message, ValueSet returnData) Returned Error code: -4 Expected: True Actual: False) ---- RemoteExecuter: System.Threading.Tests, Version=4.1.1.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb b__15_1 dd63f96fc81d41239d884790ad70bd6ca4c011e6fad843faa29b09c69631e03f, ""C:\Users\\AppData\Local\Packages\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\AC\Temp\MutexTests_s5jxc3bf.q23\CrossProcess_NamedMutex_ProtectedFileAccessAtomic_228_e009ac76"" System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NotSupportedException: The format of the path '""C:\Users\\AppData\Local\Packages\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\AC\Temp\MutexTests_s5jxc3bf.q23\CrossProcess_NamedMutex_ProtectedFileAccessAtomic_228_e009ac76""' is not supported. at System.IO.Path.GetFullPath(String path) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) at System.IO.StreamWriter..ctor(String path) at System.IO.File.WriteAllText(String path, String contents) at System.Threading.Tests.MutexTests.<>c.b__15_1(String m, String f) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at RunnerRemoteExecutionService.RemoteExecutor.HandleTheRequest(ValueSet message, ValueSet returnData) Returned Error code: -4 Expected: True Actual: False Stack Trace: at System.Threading.Tests.ThreadTestHelpers.<>c__DisplayClass3_0.b__1() at System.Threading.Tests.ThreadTestHelpers.<>c__DisplayClass3_0.b__2() at System.Threading.Tests.ThreadTestHelpers.RunTestInBackgroundThread(Action test) at System.Threading.Tests.MutexTests.CrossProcess_NamedMutex_ProtectedFileAccessAtomic(String prefix) ----- Inner Stack Trace ----- at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, RemoteInvokeOptions options) at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(Func`3 method, String arg1, String arg2, RemoteInvokeOptions options) at System.Threading.Tests.MutexTests.<>c__DisplayClass15_0.b__0() at System.Threading.Tests.ThreadTestHelpers.<>c__DisplayClass3_0.b__0() ``` Disabled tests: - https://github.com/dotnet/corefx/blob/master/src/System.Threading/tests/MutexTests.cs#L176" +21278 area-System.Threading Add test for mutex creation hang in a context where creating a global… … mutex is not allowed Depends on https://github.com/dotnet/coreclr/pull/12381 Fixes dotnet/coreclr#11306 - Added test for mutex creation hang in a context where creating a global mutex is not allowed - Modified two tests to run in a separate thread to allow them to fail rather than hang if there's a bug - Disabled a few tests that are not working under UWP with issues filed +21279 area-System.Data Can't set SqlParameter.DbType to Date "Executing `parameter.DbType = DbType.Date;` sets `SqlParameter.DbType` to `DbType.DateTime` This results in an exception: ```C# System.Data.SqlTypes.SqlTypeException occurred HResult=0x80131930 Message=SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM. Source= StackTrace: at System.Data.SqlClient.TdsParser.TdsExecuteRPC(_SqlRPC[] rpcArray, Int32 timeout, Boolean inSchema, TdsParserStateObject stateObj, Boolean isCommandProc, Boolean sync, TaskCompletionSource`1 completion, Int32 startRpc, Int32 startParam) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite, String method) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite, String methodName) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at DateParameterBug.Program.Main(String[] args) in C:\Users\ansvyryd\source\repos\DateParameterBug\DateParameterBug\Program.cs:line 44 ``` when executing the following code ```C# using System; using System.Data; using System.Data.SqlClient; namespace DateParameterBug { class Program { static void Main(string[] args) { using (var conn = new SqlConnection(""Server=(localdb)\\mssqllocaldb;Database=master;Trusted_Connection=True"")) { conn.Open(); using (var command = conn.CreateCommand()) { command.CommandText = ""CREATE DATABASE DateParameterBug""; command.ExecuteNonQuery(); } } using (var conn = new SqlConnection(""Server=(localdb)\\mssqllocaldb;Database=DateParameterBug;Trusted_Connection=True"")) { conn.Open(); using (var command = conn.CreateCommand()) { command.CommandText = @""CREATE TABLE [Item] ( [Id] int NOT NULL IDENTITY, [Date] date NOT NULL, CONSTRAINT [PK_Item] PRIMARY KEY([Id]) );""; command.ExecuteNonQuery(); } using (var command = conn.CreateCommand()) { command.CommandText = @""INSERT [dbo].[Item] ([Date]) VALUES (@date)""; var parameter = new SqlParameter(); parameter.ParameterName = ""@date""; parameter.DbType = DbType.Date; parameter.Value = new DateTime(1605, 1, 15); command.Parameters.Add(parameter); command.ExecuteNonQuery(); } } } } } ``` Targeting `netcoreapp2.0` Referencing `System.Data.SqlClient 4.4.0-preview2-25405-01` " +21280 area-System.Net Change GetMethod binding flags for InternalSetName "CookieParser need to reflect on internal method ""InternalSetName"" and this was failing in UWP_AOT. I changed ""InternalSetName"" to be public , but forgot to change the GetMethod binding attributes" +21281 area-System.Memory Add initial Span/Buffer-based APIs across corefx With the advent of `Span` and `Buffer`, there are a multitude of improvements we’ll want to make to types across coreclr/corefx. Some of these changes include exposing `Span`/`Buffer`/`ReadOnlySpan`/`ReadOnlyBuffer` themselves and the associated operations on them. Other changes involve using those types internally to improve memory usage of existing code. This issue isn’t about either of those. Rather, this issue is about what new APIs we want to expose across corefx (with some implementations in coreclr/corert). A good approximation of a starting point is looking at existing APIs that work with arrays or pointers (and to some extent strings), and determining which of these should have `Span`/`Buffer`-based overloads (there will almost certainly be “new” APIs we’ll want to add that don’t currently have overloads, but for the most part those can be dealt with separately and one-off). There are ~3000 such methods that exist today in the corefx reference assemblies. We’re obviously not going to add ~3000 new overloads that work with `Span`/`Buffer`, nor should we. But many of these aren’t relevant for one reason or another, e.g. they’re in components considered to be legacy, they’re very unlikely to be used on hot paths where a span/buffer->array conversion would matter at all, etc. I’ve gone through the framework and identified a relatively small set of methods I believe we should start with and add together for the next release. This is dialable, of course, but I believe we need a solid set of these to represent enough mass that span/buffer permeate the stack and make sense to use in an application. All of these are cases where using a span or a buffer instead of an array makes a quantifiable difference in allocation, and thus can have a measurable impact on the overall memory profile of a consuming application, contributing to an overall improvement in performance. #### System.BitConverter BitConverter is used to convert between primitive types and bytes, but the current APIs force an unfortunate amount of allocation due to working with byte[]s. We can help to avoid much of that by adding overloads that work with `Span`, adding `CopyBytes` methods instead of `GetBytes` methods, and adding `To*` overloads that accept `ReadOnlySpan` instead of accepting `byte[]`. ```C# namespace System { public static class BitConverter { // Matching overloads for GetBytes. Copy to the destination span // rather than allocating a new byte[]. Return false if the destination // span isn't large enough, which can be determined before any copying. public static bool TryWriteBytes(Span destination, bool value); public static bool TryWriteBytes(Span destination, char value); public static bool TryWriteBytes(Span destination, double value); public static bool TryWriteBytes(Span destination, short value); public static bool TryWriteBytes(Span destination, int value); public static bool TryWriteBytes(Span destination, long value); public static bool TryWriteBytes(Span destination, float value); public static bool TryWriteBytes(Span destination, ushort value); public static bool TryWriteBytes(Span destination, uint value); public static bool TryWriteBytes(Span destination, ulong value); // matching overloads for To* public static bool ToBoolean(ReadOnlySpan value); public static char ToChar(ReadOnlySpan value); public static double ToDouble(ReadOnlySpan value); public static short ToInt16(ReadOnlySpan value); public static int ToInt32(ReadOnlySpan value); public static long ToInt64(ReadOnlySpan value); public static float ToSingle(ReadOnlySpan value); public static ushort ToUInt16(ReadOnlySpan value); public static uint ToUInt32(ReadOnlySpan value); public static ulong ToUInt64(ReadOnlySpan value); … } } ``` EDIT 7/18/2017: Updated based on API review. Separated out into https://github.com/dotnet/corefx/issues/22355 for implementation. #### System.Convert As with BitConverter, the Convert class is also used to convert arrays. Most of the members are about converting from individual primitives to other individual primitives, but several work with arrays, in particular those for working with Base64 data. We should add the following methods: ```C# namespace System { public class Convert { public static string ToBase64String(ReadOnlySpan bytes, Base64FormattingOptions options = Base64FormattingOptions.None); public static bool TryToBase64Chars(ReadOnlySpan bytes, Span chars, out int bytesConsumed, out int charsWritten, Base64FormattingOptions options = Base64FormattingOptions.None); public static bool TryFromBase64String(string s, Span bytes, out int charsConsumed, out int bytesWritten); public static bool TryFromBase64Chars(ReadOnlySpan chars, Span bytes, out int charsConsumed, out int bytesWritten); … } } ``` Separated out as https://github.com/dotnet/corefx/issues/22417 for implementation. #### System.Random The Random class provides a NextBytes method that takes a byte[]. In many situations, that’s fine, but in some you’d like to be able to get an arbitrary amount of random data without having to allocate such an array, and we can do that with spans. For example, here’s a case where we’re getting some random data only to then want a Base64 string from it: https://referencesource.microsoft.com/#System/net/System/Net/WebSockets/WebSocketHelpers.cs,366 ```C# namespace System { public class Random { public virtual void NextBytes(Span buffer); … } } ``` Separated out into https://github.com/dotnet/corefx/issues/22356 for implementation. #### Primitive Parse methods Related to BitConverter and Convert, it’s very common to want to parse primitive values out of strings. Today, that unfortunately often involves creating substrings representing the exact piece of text, and then passing it to a string-based TryParse method. Similarly, it's common to convert primitives to strings via a method like ToString. Instead, I suggest we add the following: ```C# namespace System { public struct Int16 { public short Parse(ReadOnlySpan chars, NumberStyles style = NumberStyles.Integer, NumberFormatInfo info = null); public bool TryParse(ReadOnlySpan chars, out short result, NumberStyles style = NumberStyles.Integer, NumberFormatInfo info = null); public bool TryFormat(Span destination, out int charsWritten, string format = null, IFormatProvider provider = null); … } … // similar Parse/TryParse/TryFormat methods for each of: // Int32 // Int64 // UInt16 // UInt32 // UInt64 // Decimal // Double // Single // Boolean (no NumberStyle/NumberFormatInfo args) } ``` Separated out as https://github.com/dotnet/corefx/issues/22403 for implementation. Then we should also support parsing a few common types out of `ReadOnlySpan`: ```C# namespace System { public struct DateTime { public static DateTime Parse(ReadOnlySpan s, IFormatProvider provider = null, System.Globalization.DateTimeStyles styles = DateTimeStyles.None); public static DateTime ParseExact(ReadOnlySpan s, string format, IFormatProvider provider, DateTimeStyles style = DateTimeStyles.None); public static DateTime ParseExact(ReadOnlySpan s, string[] formats, IFormatProvider provider, DateTimeStyles style); public static bool TryParse(ReadOnlySpan s, out DateTime result, IFormatProvider provider = null, DateTimeStyles styles = DateTimeStyles.None); public static bool TryParseExact(ReadOnlySpan s, string format, IFormatProvider provider, DateTimeStyles style, out DateTime result); public static bool TryParseExact(ReadOnlySpan s, string[] formats, IFormatProvider provider, DateTimeStyles style, out DateTime result); public bool TryFormat(Span destination, out int charsWritten, string format = null, IFormatProvider provider = null); … } public struct DateTimeOffset { public static DateTimeOffset Parse(ReadOnlySpan input, IFormatProvider formatProvider = null, System.Globalization.DateTimeStyles styles = DateTimeStyles.None); public static DateTimeOffset ParseExact(ReadOnlySpan input, string format, IFormatProvider formatProvider, DateTimeStyles styles = DateTimeStyles.None); public static DateTimeOffset ParseExact(ReadOnlySpan input, string[] formats, IFormatProvider formatProvider, DateTimeStyles styles); public static bool TryParse(ReadOnlySpan input, out DateTimeOffset result, IFormatProvider formatProvider = null, DateTimeStyles styles = DateTimeStyles.None); public static bool TryParseExact(ReadOnlySpan input, string format, IFormatProvider formatProvider, DateTimeStyles styles, out DateTimeOffset result); public static bool TryParseExact(ReadOnlySpan input, string[] formats, IFormatProvider formatProvider, DateTimeStyles styles, out DateTimeOffset result); public bool TryFormat(Span destination, out int charsWritten, string format = null, IFormatProvider formatProvider = null); … } public struct TimeSpan { public static TimeSpan Parse(ReadOnlySpan input, IFormatProvider formatProvider = null); public static TimeSpan ParseExact (ReadOnlySpan input, string format, IFormatProvider formatProvider, TimeSpanStyles styles = TimeSpanStyles.None); public static TimeSpan ParseExact (ReadOnlySpan input, string[] formats, IFormatProvider formatProvider, TimeSpanStyles styles = TimeSpanStyles.None); public static bool TryParse(ReadOnlySpan input, out TimeSpan result, IFormatProvider formatProvider = null); public static bool TryParseExact (ReadOnlySpan input, string format, IFormatProvider formatProvider, out TimeSpan result, TimeSpanStyles styles = TimeSpanStyles.None); public static bool TryParseExact (ReadOnlySpan input, string[] formats, IFormatProvider formatProvider, out TimeSpan result, TimeSpanStyles styles = TimeSpanStyles.None); public bool TryFormat(Span destination, out int charsWritten, string format = null, IFormatProvider provider = null); … } public class Version { public static Version Parse(ReadOnlySpan input); public static bool TryParse(ReadOnlySpan input, out Version result); public bool TryFormat(Span destination, out int charsWritten, int fieldCount = 4); … } } ``` EDIT 7/18/2017: Updated per API review DateTime{Offset} separated out as https://github.com/dotnet/corefx/issues/22358 for implementation. TimeSpan separated out as https://github.com/dotnet/corefx/issues/22375 for implementation. Version separated out as https://github.com/dotnet/corefx/issues/22376 for implementation. #### System.Guid Guids are often constructed from byte[]s, and these byte[]s are often new’d up, filled in, and then provided to the Guid, e.g. https://referencesource.microsoft.com/#mscorlib/system/guid.cs,b622ef5f6b76c10a,references We can avoid such allocations with a Span ctor, with the call sites instead creating a Span from 16 bytes of stack memory. Guids are also frequently converted to byte[]s to be output, e.g. https://referencesource.microsoft.com/#mscorlib/system/guid.cs,94f5d8dabbf0dbcc,references and we can again avoid those temporary allocations by supporting copying the Guid’s data to a span: ```C# namespace System { public struct Guid { public Guid(ReadOnlySpan b); // correspond to Guid(byte[] b) public bool TryWriteBytes(Span destination); public static Guid Parse(ReadOnlySpan input); public static Guid ParseExact(ReadOnlySpan input, string format); public static bool TryParse(ReadOnlySpan input, out Guid result); public static bool TryParseExact(ReadOnlySpan input, string format, out Guid result); public bool TryFormat(Span destination, out int charsWritten, string format = null, IFormatProvider provider = null); … } } ``` EDIT 7/18/2017: Updated per API review Separated out as https://github.com/dotnet/corefx/issues/22377 for implementation. #### System.String It’ll be very common to create strings from spans. We should have a ctor for doing so: ```C# namespace System { public class String { public String(ReadOnlySpan value); … } } ``` Separated out as https://github.com/dotnet/corefx/issues/22378 for implementation. In addition to the new ctor on String, we should also expose an additional Create method (not a ctor so as to support a generic method argument). One of the difficulties today with String being immutable is it’s more expensive for developers to create Strings with custom logic, e.g. filling a char[] and then creating a String from that. To work around that expense, some developers have taken to mutating strings, which is very much frowned upon from a BCL perspective, e.g. by using the String(char, int) ctor to create the string object, then using unsafe code to mutate it, and then handing that back. We could handle such patterns by adding a method like this: ```C# namespace System { public delegate void StringCreateAction(TState state, Span destination); public class String { public static string Create(int length, TState state, StringCreateAction action); … } } ``` Separated out as https://github.com/dotnet/corefx/issues/22380 for implementation. The value of overloads like this is amplified when you start using them together. For example, here’s an example of creating a random string: https://referencesource.microsoft.com/#System.Web.Mobile/UI/MobileControls/Adapters/ChtmlTextBoxAdapter.cs,62 This incurs the allocation of a byte[] to pass to Random, a char[] as a temporary from which to create the string, and then creating the string from that char[]; unnecessary copies and allocations. Finally, we may also want to provide string.Format support for `ReadOnlyBuffer` as an argument; although passing it as an object will box it, string.Format could write it to the generated string without needing an intermediary string created, so a smaller allocation and avoiding an extra copy. #### System.IO.Stream ```C# namespace System.IO { public class Stream { public virtual int Read(Span destination); public virtual ValueTask ReadAsync(Buffer destination, CancellationToken cancellationToken = default(CancellationToken)); public virtual void Write(ReadOnlySpan source); public virtual Task WriteAsync(ReadOnlyBuffer source, CancellationToken cancellationToken = default(CancellationToken)); … } } ``` EDIT 7/18/2017: Updated per API review. Separated out as https://github.com/dotnet/corefx/issues/22381 for implementation. The base `{ReadOnly}Buffer`-accepting methods can use TryGetArray to access a wrapped array if there is one, then delegating to the existing array-based overloads. If the buffer doesn’t wrap an array, then it can get a temporary array from ArrayPool, delegate and copy (for reads) or copy and delegate (for writes). The base `Span`-accepting methods can do the ArrayPool/delegation approach in all cases. We’ll then need to override these methods on all relevant streams: FileStream, NetworkStream, SslStream, DeflateStream, CryptoStream, MemoryStream, UnmanagedMemoryStream, PipeStream, NullStream, etc. to provide more efficient `Span`/`Buffer`-based implementations, which they should all be able to do. In a few corner cases, there are streams where the synchronous methods are actually implemented as wrappers for the asynchronous ones; in such cases, we may be forced to live with the ArrayPool/copy solution. However, in such cases, the synchronous implementation is already relatively poor, incurring additional costs (e.g. allocations, blocking a thread, etc.), and they’re that way in part because synchronous usage of such streams is discouraged and thus these haven’t been very optimized, so the extra overhead in these cases is minimal. Once these additional methods exist, we’ll want to use them in a variety of places in implementation around corefx, e.g. https://github.com/dotnet/corefx/blob/d6b11250b5113664dd3701c25bdf9addfacae9cc/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs#L1140 as various pieces of code can benefit not only from the use of `Span`/`Buffer`, but also from the async methods returning `ValueTask` instead of `Task`, and the corresponding reduced allocations for ReadAsync calls that complete synchronously. #### System.IO.BufferStream and System.IO.ReadOnlyBufferStream Just as we have a MemoryStream that works with `byte[]` and an UnmanagedMemoryStream that works with a `byte*` and a length, we need to support treating `Buffer` and `ReadOnlyBuffer` as streams. It’s possible we could get away with reimplementing `MemoryStream` on top of `Buffer`, but more than likely this would introduce regressions for at least some existing use cases. Unless demonstrated otherwise, we will likely want to have two new stream types for these specific types: ```C# namespace System.IO { public class BufferStream : Stream { public BufferStream(Buffer buffer); public BufferStream(Buffer buffer, bool publiclyVisible); public bool TryGetBuffer(out Buffer buffer); … // overrides of all members on Stream } public class ReadOnlyBufferStream : Stream { public ReadOnlyBufferStream(ReadOnlyBuffer buffer); public ReadOnlyBufferStream(ReadOnlyBuffer buffer, bool publiclyVisible); public bool TryGetBuffer(out ReadOnlyBuffer buffer); … // overrides of all members on Stream, with those that write throwing NotSupportedException } } ``` The name of BufferStream is unfortunately close to that of BufferedStream, and they mean very different things, but I’m not sure that’s important enough to consider a less meaningful name. Separated out as https://github.com/dotnet/corefx/issues/22404 for discussion and implementation. Optional: It’s also unfortunate that all of these various memory-based streams don’t share a common base type or interface; we may want to add such a thing, e.g. an interface that anything which wraps a `Buffer` can implement… then for example code that uses Streams and has optimizations when working directly with the underlying data can query for the interface and special-case when the underlying `Buffer` can be accessed, e.g. ```C# namespace System { public interface IHasBuffer { bool TryGetBuffer(out Buffer buffer); bool TryGetBuffer(out ReadOnlyBuffer buffer); } } ``` We could implement this not only on `BufferStream` and `ReadOnlyBufferStream`, but also on `MemoryStream`, `UnmanagedMemoryStream`, and even on non-streams, basically anything that can hand out a representation of its internals as buffers. Separated out as https://github.com/dotnet/corefx/issues/22404 for discussion and implementation. #### System.IO.TextReader and System.IO.TextWriter As with streams, we should add the relevant base virtuals for working with spans/buffers: ```C# namespace System.IO { public class TextReader { public virtual int Read(Span span); public virtual ValueTask ReadAsync(Buffer buffer); public virtual int ReadBlock(Span span); public virtual ValueTask ReadBlockAsync(Buffer buffer); … } public class TextWriter { public virtual void Write(ReadOnlySpan span); public virtual Task WriteAsync(ReadOnlyBuffer buffer, CancellationToken cancellationToken = default(CancellationToken)); public virtual void WriteLine(ReadOnlySpan span); public virtual Task WriteLineAsync(ReadOnlyBuffer buffer, CancellationToken cancellationToken = default(CancellationToken)); … } } ``` We’ll then also need to override these appropriately on our derived types, e.g. StreamReader, StreamWriter, StringReader, etc. Separated out as https://github.com/dotnet/corefx/issues/22406 for implementation. #### System.IO.BinaryReader and System.IO.BinaryWriter As with TextReader/Writer, we also want to enable the existing BinaryReader/Writer to work with spans: ```C# namespace System.IO { public class BinaryReader { public virtual int Read(Span span); public virtual int Read(Span span); … } public class BinaryWriter { public virtual int Write(ReadOnlySpan span); public virtual void Write(ReadOnlySpan span); … } } ``` The base implementations of these can work with the corresponding new methods on Stream. Separated out as https://github.com/dotnet/corefx/issues/22428 and https://github.com/dotnet/corefx/issues/22429 for implementation. #### System.IO.File EDIT 6/26/2017: For now I've removed these File methods, as it's unclear to me at this point that they actually meet the core need. If you're repeatedly reading and pass a span that's too small, you're going to need to read again after handling the read data, but with these APIs as defined, each read results in needing to open and the close the file again; similarly if you're using the write APIs to write a file in pieces. At that point you're better off just using FileStream and reading/writing spans and buffers. We should look to add helpers here when we can figure out the right helpers at the right level of abstraction, e.g. should we expose the ability to just create a SafeFileHandle and then have these helpers operate on SafeFileHandle rather than on a string path? ~~The File class provides helpers for reading/writing data from/to files. Today the various “read/write data as bytes” functions work with byte[]s, which mean allocating potentially very large byte[]s to store the data to be written or that’s read. This can be made much more efficient with spans, allowing the buffers to be pooled (in particular for file reads).~~ ``` // Previously proposed. API decision: Won't add for now. namespace System.IO { public static class File { public static int ReadAllBytes(string path, long offset, Span span, out long remaining); public static ValueTask<(int bytesRead, long bytesRemaining)> ReadAllBytesAsync(string path, long offset, Buffer buffer); public static void WriteAllBytes(string path, ReadOnlySpan span); public static Task WriteAllBytesAsync(string path, ReadOnlyBuffer buffer); public static void AppendAllBytes(string path, ReadOnlySpan span); public static Task AppendAllBytesAsync(string path, ReadOnlyBuffer buffer); … } } ``` #### System.Text.StringBuilder StringBuilder is at the core of lots of manipulation of chars, and so it’s a natural place to want to work with `Span` and `ReadOnlySpan`. At a minimum we should add the following APIs to make it easy to get data in and out of a StringBuilder without unnecessary allocation: ```C# namespace System.Text { public class StringBuilder { public StringBuilder Append(ReadOnlySpan value); public StringBuilder Insert(int index, ReadOnlySpan value); public void CopyTo(int sourceIndex, Span destination, int count); … } } ``` Separated out as https://github.com/dotnet/corefx/issues/22430. In addition to these, we’ll also want to consider a mechanism for exposing the one or more buffers StringBuilder internally maintains, allowing them to be accessed as `ReadOnlySpan`. This is covered separately by #21248. #### System.Text.Encoding The Encoding class already exposes a lot of methods for converting between chars/strings and bytes, and it includes overloads for both arrays and pointers. While it might seem onerous to add an additional set for spans, the number of new overloads needed is actually fairly small, and we can provide reasonable default base implementations in terms of the existing pointer-based overloads. These methods could potentially have optimized derived overrides, but more generally they will help the platform to have a consistent feel, avoiding the need for devs with spans to use unsafe code to access the pointer-based methods. ```C# namespace System.Text { public class Encoding { public virtual int GetByteCount(ReadOnlySpan chars); public virtual bool TryGetBytes(ReadOnlySpan chars, Span bytes, out int charsConsumed, out int bytesWritten); public virtual int GetCharCount(ReadOnlySpan bytes); public virtual bool TryGetChars(ReadOnlySpan bytes, Span chars, out int bytesConsumed, out int charsWritten); public virtual string GetString(ReadOnlySpan bytes); public virtual ReadOnlySpan Preamble { get; } … } } ``` Separated out as https://github.com/dotnet/corefx/issues/22431. #### System.Numerics ```C# namespace System.Numerics { public struct BigInteger { public BigInteger(ReadOnlySpan value); public int GetByteCount(); public bool TryWriteBytes(Span destination, out int bytesWritten); public static BigInteger Parse(ReadOnlySpan value, NumberStyles style = NumberStyles.Integer, IFormatProvider provider = null); public static bool TryParse(ReadOnlySpan value, out BigInteger result, NumberStyles style = NumberStyles.Integer, IFormatProvider provider = null); … } } ``` Separated out in https://github.com/dotnet/corefx/issues/22401 for implementation. Even with BigInteger being a less-commonly-used type, there are still places even in our own code where this would be helpful: https://source.dot.net/#System.Security.Cryptography.X509Certificates/Common/System/Security/Cryptography/DerSequenceReader.cs,206 In fact, BigInteger’s implementation itself could benefit from this, such as with parsing: https://referencesource.microsoft.com/#System.Numerics/System/Numerics/BigNumber.cs,411 #### System.Net.IPAddress It’s very common to create IPAddresses from data gotten off the network, and in high-volume scenarios. Internally we try to avoid creating `byte[]`s to pass to IPAddress when constructing them, such as by using an internal pointer-based ctor, but outside code doesn’t have that luxury. We should make it possible to go to and from IPAddress without additional allocation: ```C# namespace System.Net { public class IPAddress { public IPAddress(ReadOnlySpan address); public IPAddress(ReadOnlySpan address, long scopeid); public bool TryWriteBytes(Span destination, out int bytesWritten); public static IPAddress Parse(ReadOnlySpan ipChars); public static bool TryParse(ReadOnlySpan ipChars, out IPAddress address); public static bool TryFormat(Span destination, out int charsWritten); … } } ``` Even internally this will be useful in cases like these: https://source.dot.net/#System.Net.NetworkInformation/Common/System/Net/SocketAddress.cs,135 https://source.dot.net/#System.Net.NameResolution/Common/System/Net/Internals/IPAddressExtensions.cs,21 EDIT 7/25/2017: Updated based on API review Separated out as https://github.com/dotnet/corefx/issues/22607 for implementation. #### System.Net.Sockets This is one of the more impactful areas for spans and buffers, and having these methods will be a welcome addition to the Socket family. Today, there are lots of existing methods on sockets, e.g. an overload for sync vs async with the APM pattern vs async with Task vs async with SocketAsyncEventArgs, and overload for Send vs Receive vs SendTo vs ReceiveMessageFrom vs… etc. I do not think we should add an entire new set of span/buffer-based methods, and instead we should start with the most impactful. To me, that means adding the following two synchronous and two Task-based asynchronous overloads for sending and receiving: ```C# namespace System.Net.Sockets { public class Socket { public int Receive(Span buffer, SocketFlags flags); public int Receive(Span buffer, SocketFlags socketFlags, out SocketError errorCode); public int Send(ReadOnlySpan buffer, SocketFlags flags); public int Send(ReadOnlySpan buffer, SocketFlags flags, out SocketError errorCode); … } public class SocketTaskExtensions { public static ValueTask ReceiveAsync(this Socket socket, Buffer buffer, SocketFlags socketFlags, CancellationToken cancellationToken = default(CancellationToken)); public static ValueTask SendAsync(this Socket socket, ReadOnlyBuffer buffer, SocketFlags socketFlags, CancellationToken cancellationToken = default(CancellationToken)); … } } ``` Note that I’ve put the ReceiveAsync and SendAsync overloads on the SocketTaskExtensions class as that’s where the existing overloads live. We could choose to instead make these new overloads instance methods on Socket. In addition, the highest-performing set of APIs with sockets are based on SocketAsyncEventArgs. To support those, we should add the following: ```C# namespace System.Net.Sockets { public class SocketAsyncEventArgs { public void SetBuffer(Buffer buffer); public Buffer GetBuffer(); … } } ``` The implementation currently stores a `byte[]` buffer. We can change that to store a `Buffer` instead, and just have the existing `SetBuffer(byte[])` overload wrap the `byte[]` in a `Buffer`. There is an existing `Buffer { get; }` property as well. We can change that to just use TryGetArray on the internal buffer and return it if it exists, or else null. The `GetBuffer` method is then there to support getting the set `Buffer`, in case the supplied buffer wrapped something other than an array. EDIT 7/25/2017: Updated based on API review Separated out as https://github.com/dotnet/corefx/issues/22608 for implementation #### System.Net.WebSockets.WebSocket Similar to Socket is WebSocket, in that it’s desirable to be able to use these APIs with finer-grain control over allocations than is currently easy or possible, and in high-throughput situations. We should add the following members: ```C# namespace System.Net.WebSockets { public class WebSocket { public virtual ValueTask ReceiveAsync(Buffer buffer, CancellationToken cancellationToken = default(CancellationToken)); public virtual Task SendAsync(ReadOnlyBuffer buffer, CancellationToken cancellationToken = default(CancellationToken)); … } } ``` Note that ReceiveAsync is returning a ValueTask rather than a Task (to avoid that allocation in the case where the operation can complete synchronously), and it’s wrapping a ValueWebSocketReceiveResult instead of a WebSocketReceiveResult. The latter is the type that currently exists, but is a class. I’m suggesting we also add the following struct-based version, so that receives can be made to be entirely allocation-free in the case of synchronous completion, and significantly less allocating even for async completion. ```C# namespace System.Net.WebSockets { public struct ValueWebSocketReceiveResult { public ValueWebSocketReceiveResult(int count, WebSocketMessageType messageType, bool endOfMessage); public ValueWebSocketReceiveResult(int count, WebSocketMessageType messageType, bool endOfMessage, WebSocketCloseStatus? closeStatus, string closeStatusDescription); public WebSocketCloseStatus? CloseStatus { get; } public string CloseStatusDescription { get; } public int Count { get; } public bool EndOfMessage { get; } public WebSocketMessageType MessageType { get; } } } ``` EDIT 7/25/2017: Updated per API review Separated out as https://github.com/dotnet/corefx/issues/22610 for implementation #### System.Net.Http This area still needs more thought. My current thinking is at a minimum we add the following: ```C# namespace System.Net.Http { public class HttpClient { public ValueTask GetBytesAsync(Uri requestUri, Buffer buffer); … } public sealed class ReadOnlyBufferContent : HttpContent { public ReadOnlyBufferContent(ReadOnlyBuffer buffer); … // override relevant members of HttpContent } } ``` The GetBytesAsync overload avoids the need for allocating a potentially large byte[] to store the result, and the ReadOnlyBufferContent makes it easy to upload `ReadOnlyBuffer`s rather than just `byte[]`s. There is potentially more that can be done here, but I suggest we hold off on that until we investigate more deeply to understand what we’d need to plumb throughout the system. HttpClient is itself a relatively small wrapper on top of HttpClientHandler, of which there are multiple implementations (ours and others’), and to plumb a buffer all the way down through would involve new APIs and implementation in HttpClientHandler implementations. Definitely something to investigate. Separated out as https://github.com/dotnet/corefx/issues/22612 for implementation (ReadOnlyBufferContent... we decided against the GetBytesAsync helper for now in 7/25/2017 API review) #### System.Security.Cryptography namespace Several hashing-related types in System.Security.Cryptography would benefit from being able to work with data without allocating potentially large `byte[]`s. One is HashAlgorithm, which has several methods for processing an input `byte[]` and allocating/filling an output `byte[]`: ```C# namespace System.Security.Cryptography { public abstract class HashAlgorithm { public bool TryComputeHash(ReadOnlySpan source, Span destination, out int bytesWritten); protected virtual void HashCore(ReadOnlySpan source); protected virtual bool TryHashFinal(Span destination, out int bytesWritten); … } } ``` EDIT 7/25/2017: Updated per API review Separated out as https://github.com/dotnet/corefx/issues/22613 for implementation Similarly, several overloads would be beneficial on IncrementalHash: ```C# namespace System.Security.Cryptography { public sealed class IncrementalHash { public void AppendData(ReadOnlySpan data); public bool TryGetHashAndReset(Span destination, out int bytesWritten); … } } ``` EDIT 7/25/2017: Updated per API review Separated out as https://github.com/dotnet/corefx/issues/22614 for implementation Similarly, several encryption/signing related types would benefit from avoiding such `byte[]` allocations: ```C# namespace System.Security.Cryptography { public abstract class RSA : AsymmetricAlgorithm { public virtual bool TryDecrypt(ReadOnlySpan source, Span destination, RSAEncryptionPadding padding, out int bytesWritten); public virtual bool TryEncrypt(ReadOnlySpan source, Span destination, RSAEncryptionPadding padding, out int bytesWritten); protected virtual bool TryHashData(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, out int bytesWritten); public virtual bool TrySignData(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding, out int bytesWritten); public virtual bool TrySignHash(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding, out int bytesWritten); public virtual bool VerifyData(ReadOnlySpan data, ReadOnlySpan signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding); public virtual bool VerifyHash(ReadOnlySpan hash, ReadOnlySpan signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding); … } public abstract class DSA : AsymmetricAlgorithm { public virtual bool TryCreateSignature(ReadOnlySpan source, Span destination, out int bytesWritten); protected virtual bool TryHashData(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, out int bytesWritten); public virtual bool TrySignData(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, out int bytesWritten); public virtual bool VerifyData(ReadOnlySpan data, ReadOnlySpan signature, HashAlgorithmName hashAlgorithm); public virtual bool VerifySignature(ReadOnlySpan rgbHash, ReadOnlySpan rgbSignature); … } public abstract class ECDsa : AsymmetricAlgorithm { protected virtual bool TryHashData(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, out int bytesWritten); public virtual bool TrySignData(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, out int bytesWritten); public virtual bool TrySignHash(ReadOnlySpan source, Span destination, out int bytesWritten); public virtual bool VerifyData(ReadOnlySpan data, ReadOnlySpan signature, HashAlgorithmName hashAlgorithm); public virtual bool VerifyHash(ReadOnlySpan hash, ReadOnlySpan signature); … } } ``` EDIT 7/25/2017: Update per API review Separated out of https://github.com/dotnet/corefx/issues/22615 for implementation One other place where we’d want to be able to use span is `ICryptoTransform`. Lots of APIs, mainly CreateEncryptor and CreateDecryptor, methods return ICryptoTransform, and it has one it a TransformBlock and TransformFinalBlock method that works with `byte[]`. We’d really like support in terms of `ReadOnlySpan` and `Span`. I see four options here: 1. Do nothing. 2. Add a second `ISpanCryptoTransform` interface, and a second set of differently-named CreateEncryptor/Decryptor methods for creating instances of these. 3. Add a second `ISpanCryptoTransform` interface that’s also implemented by our implementations, and have consuming code query for the interface and use it if it exists. 4. If we get support for default interface methods (https://github.com/dotnet/csharplang/issues/52), add these span-based overloads to the interface, with a default implementation in terms of the existing methods. My strong preference is for (4), but that’s based on a feature that doesn’t yet exist. As such, my suggestion is to hold off on this until it’s clear whether such a feature will exist: if it will, do (4) once it does, otherwise do (3). EDIT 7/25/2017: Decision: 4 if/when the feature exists, and 1 until then. #### Other namespaces There are some other namespaces that could likely benefit from Span/Buffer, but we should probably handle separately from this initial push: - System.Collections. It’s not clear to me to what extent we should add span/buffer-based APIs to collections. CopyTo overloads that take `Span`? Callback-based methods for exposing the internal storage via a `ReadOnlySpan` (if that makes sense for the relevant collection)? This needs more thought. - System.Collections.Immutable. Just as `T[]` has an implicit operator to a `Span`, we should consider adding an `ImmutableArray` operator for converting to a `ReadOnlySpan`. - System.Reflection.Metadata. It’s very specialized, and I’ve not included it in this issue. It can be handled separately. ### Known Open Issues There are several cross-cutting open issues that apply to many of these APIs: - How to handle cases where data is too large for the supplied span/buffer provided? Throw? Simply return a “not big enough” indication? Return how much data was written along with such an indication? Return how much data was written and attempt to return how much more space is needed if possible? Etc. Related to that, do we want to enable an approach where you can call the method with an empty output span and get back an upper bound for the maximum amount of space that will be needed, such that you can then call it again with a sufficient buffer? - Argument names. For overloads, should we generally name arguments “span” for `ReadOnlySpan` and `Span`, and “buffer” for `ReadOnlyBuffer` and `Buffer`? What if the existing overload uses a different name, like “input” or “b”? What about cases where currently there’s a single argument (e.g. “input”) and then returns an array, and the new overload will have two span args, one input and one output? ## Next Steps 1. Discussion of this “minimal” proposal. My goal is to quickly arrive at a minimal set; there may be additional APIs we want beyond these, but are there any here we shouldn’t have? Are there any absolutely critical ones missing? 2. API review. I want to review all of these en-mass to ensure we’re being consistent across all of these members. 3. Once the APIs are approved, open individual issues for each set that’ll be worked on by an individual together. 4. Implement them, test them, and expose them. +21282 area-System.Security WindowsIdentity.IsAuthenticated is false when running in an AppContainer Tracking special-casing UWP in NegotiateStream_StreamToStream_Authentication_Success and NegotiateStream_StreamToStream_Authentication_TargetName_Success. Since UAPAOT tests are not running in an AppContainer testing it will not exhibit the same problems. Fixing this is tracked by #18760. I've narrowed the behavior difference to WindowsIdentity.IsAuthenticated when running in UAP mode, within an AppContainer. +21283 area-System.Net Enabling System.Net.Security tests and fixing/disabling tests that currently fail in UAP / UAPAOT Adding workarounds for behavior differences when running in an AppContainer. Contributes to #20033 +21284 area-Infrastructure Update build tools version to 2.0.0-prerelease-01720-02 To include restore fix for https://github.com/dotnet/buildtools/pull/1577. PTAL @danmosemsft @mellinoe +21285 area-System.Net Manually run multi-machine Enterprise test scenarios - [ ] Several System.Net.Security can only be tested within a multi-machine environment. - [x] Manually re-enable and run tests disabled by the CI intermittent issue tracked by #16534 +21286 area-Infrastructure Update all the apicompat baselines With this change we are now re-enabling APICompat checks against netstandard, except the are no longer producing baseline files they will take a baseline file and produce errors if they are broken. We are still not doing the netcoreapp.netfx baseline automatically it is still behind the BaselineApiCompat property. PTAL @danmosemsft @joperezr +21287 area-Infrastructure Update UAP Xunit Runner to new version where UI logging is disabled cc: @danmosemsft @joperezr @tarekgh +21288 area-Serialization DCS Serialize ICollection Class Differently on Desktop and NetCore "The behavior difference is caused by the code difference in `CollectionDataContract.GetCollectionMethods`. On Desktop: ``` Type ienumerableInterface = interfaceType.GetInterface(""System.Collections.Generic.IEnumerable*""); ``` On NetCore: ``` Type ienumerableInterface = interfaceType.GetInterfaces().Where(t => t.FullName.StartsWith(""System.Collections.Generic.IEnumerable"")).FirstOrDefault(); ``` The implementation on Desktop is wrong. It would never find the IEnumerable`1 interface." +21289 area-Serialization Added a tests for ICollection`1 Types. DCS serialize ICollection`1 types differently on Desktop and NetCore. But DCS can de-serialize the payloads from both frameworks, so we don't need to change the behavior of either Desktop or NetCore. Fix #21288 +21290 area-System.Net [Port to 2.0] Support backslashes in Unix file URIs. fixes #20628 Master PR: #20623 #21263 #21482 With these changes, on Unix, file paths containing backslashes will be accepted. It is legal on Unix for filenames to have \\ char. Hence, we enable support for these in .NET Core. Cases like below will report the following on Unix. ``` file://authority\pathpart1/pathpart2?query#fragment -> file://authority/pathpart1/pathpart2?query#fragment file://authority/pathpart1\pathpart2?query#fragment -> file://authority/pathpart1%5Cpathpart2?query#fragment file:///pathpart1\pathpart2?query#fragment -> file:///pathpart1%5Cpathpart2?query#fragment \\host\pathpart1\pathpart1 -> file://host/pathpart1/pathpart2 ``` cc @tmds +21292 area-Serialization Reenable Ref Emit for XML Serializer in UAP Change #if uap in https://github.com/dotnet/corefx/pull/20783 to #if uapaot only. per discussion with @zhenlan we want to keep RefEmit support for Xml Serializer in the compiled case as it's proven and faster than reflection base serialization and also matches DCS Before this change, we had: Debug (uap): RefEmit Retail (uapaot): AOT optimization + RBS as fallback After this change, we have Debug (uap): RBS Retail (uapaot): AOT optimization + RBS as fallback we want to go back. +21293 area-System.Drawing Add back private ctors removed incorrectly in System.Drawing.Common Fixes #21270 +21294 area-System.Drawing "Test: System.Drawing.Tests.IconTests/ToBitmap_BitmapIcon_Success(icon: (Icon)) failed with ""System.ArgumentException""" Opened on behalf of @Jiayili1 The test `System.Drawing.Tests.IconTests/ToBitmap_BitmapIcon_Success(icon: (Icon))` has failed. System.ArgumentException : Parameter is not valid. Stack Trace: at System.Drawing.Bitmap..ctor(Int32 width, Int32 height, PixelFormat format) at System.Drawing.Icon.BmpFrame() at System.Drawing.Icon.ToBitmap() at System.Drawing.Tests.IconTests.ToBitmap_BitmapIcon_Success(Icon icon) Build : Master - 20170621.01 (Core Tests) Failing configurations: - Windows.81.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170621.01/workItem/System.Drawing.Common.Tests/analysis/xunit/System.Drawing.Tests.IconTests~2FToBitmap_BitmapIcon_Success(icon:%20(Icon)) +21296 area-System.Drawing Remove System.Drawing dead code Attached is a zip containing removed.htm which shows everything ILLink thinks is dead and all.htm which shows everything, with removed in red. Everything red should be safe to delete. [removed.zip](https://github.com/dotnet/corefx/files/1090302/removed.zip) @mellinoe @hughbe do you think it is safe for folks to do this without tests? +21297 area-System.IO UWP F5 tests: System.IO.IOException : RemoteInvoke cannot open the remote service. Open Service Status: AppUnavailable Opened on behalf of @Jiayili1 The test `System.ComponentModel.Tests.AsyncOperationFinalizerTests/Finalizer_OperationCompleted_DoesNotCallOperationCompleted` has failed. System.IO.IOException : RemoteInvoke cannot open the remote service. Open Service Status: AppUnavailable Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, RemoteInvokeOptions options) at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(Func`1 method, RemoteInvokeOptions options) at System.ComponentModel.Tests.AsyncOperationFinalizerTests.Finalizer_OperationCompleted_DoesNotCallOperationCompleted() Build : Master - 20170621.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170621.01/workItem/System.ComponentModel.EventBasedAsync.Tests/analysis/xunit/System.ComponentModel.Tests.AsyncOperationFinalizerTests~2FFinalizer_OperationCompleted_DoesNotCallOperationCompleted +21299 area-System.Linq "Test: System.Linq.Tests.ContainsTests/String failed with ""System.Reflection.MissingMetadataException""" Opened on behalf of @Jiayili1 The test `System.Linq.Tests.ContainsTests/String` has failed. System.Reflection.MissingMetadataException : This operation cannot be carried out because metadata for the following object was removed for performance reasons:\ \ EETypeRva:0x0003E2FC\ \ No further information is available. Rebuild in debug mode for better information.\ \ Stack Trace: at xunit.console.netcore!+0xc1c50e at xunit.console.netcore!+0xc1bb80 at xunit.console.netcore!+0xc28672 at xunit.console.netcore!+0x74188b at xunit.console.netcore!+0x73ac23 at xunit.console.netcore!+0x71d03c at xunit.console.netcore!+0x8f96df at xunit.console.netcore!+0x8ff385 at xunit.console.netcore!+0x8ff5da at xunit.console.netcore!+0xc1b731 at xunit.console.netcore!+0x7fcecb at xunit.console.netcore!+0x8030f9 at xunit.console.netcore!+0xa48210 Build : Master - 20170621.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170621.01/workItem/System.Linq.Tests/analysis/xunit/System.Linq.Tests.ContainsTests~2FString +21301 area-System.Reflection "Tests under: DispatchProxyTests.DispatchProxyTests failed with ""System.Reflection.DispatchProxyInstanceNotFoundException""" Opened on behalf of @Jiayili1 The test `DispatchProxyTests.DispatchProxyTests/Create_Proxy_Derives_From_DispatchProxy_BaseType` has failed. $BlockedFromReflection_0_48792822 : Exception of type 'EETypeRva:0x0003D150(System.Reflection.DispatchProxyInstanceNotFoundException)' was thrown. Stack Trace: at xunit.console.netcore!+0x7b1c48 at DispatchProxyTests.DispatchProxyTests.Create_Proxy_Derives_From_DispatchProxy_BaseType() at xunit.console.netcore!+0x8ab8a8 at xunit.console.netcore!+0x791d6c at xunit.console.netcore!+0x791bc4 Build : Master - 20170621.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170621.01/workItem/System.Reflection.DispatchProxy.Tests/analysis/xunit/DispatchProxyTests.DispatchProxyTests~2FCreate_Proxy_Derives_From_DispatchProxy_BaseType +21302 area-System.Runtime "Test: System.Tests.GetEnvironmentVariable/EnumerateEnvironmentVariables(target: User) failed with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `System.Tests.GetEnvironmentVariable/EnumerateEnvironmentVariables(target: User)` has failed. System.IO.IOException : No more data is available Stack Trace: at xunit.console.netcore!+0x8a4a69 at xunit.console.netcore!+0xa24c2f at xunit.console.netcore!+0xa24b55 at xunit.console.netcore!+0xa24a2f at xunit.console.netcore!+0x7cefcf at xunit.console.netcore!+0x92046d at System.Tests.GetEnvironmentVariable.EnumerateEnvironmentVariables(EnvironmentVariableTarget target) at xunit.console.netcore!+0x995f0b at xunit.console.netcore!+0x83a05f at xunit.console.netcore!+0x839e93 Build : Master - 20170621.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170621.01/workItem/System.Runtime.Extensions.Tests.Execution/analysis/xunit/System.Tests.GetEnvironmentVariable~2FEnumerateEnvironmentVariables(target:%20User) +21303 area-System.IO Subclass of MemoryStream can cause a Debug.Assert to be hit in WindowsRuntimeBuffer ```cs [Fact] public void GetWindowsRuntimeBuffer_BufferWithLengthGreaterThanIntMax_Throws() { var memoryStream = new SubMemoryStream(10); WindowsRuntimeBufferExtensions.GetWindowsRuntimeBuffer(memoryStream, 0, 0); } public class SubMemoryStream : MemoryStream { public SubMemoryStream(int capacity) : base(capacity) { } public override long Length => long.MaxValue; } ``` Stack: ``` FailFast: at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) at System.Diagnostics.Debug.Assert(Boolean condition) at System.Runtime.InteropServices.WindowsRuntime.WindowsRuntimeBufferExtensions.GetWindowsRuntimeBuffer(MemoryStre am underlyingStream, Int32 positionInStream, Int32 length) in C:\Users\hugh\Documents\GitHub\corefx\src\System.Runtim e.WindowsRuntime\src\System\Runtime\InteropServices\WindowsRuntime\WindowsRuntimeBufferExtensions.cs:line 445 at System.Runtime.InteropServices.WindowsRuntime.Tests.WindowsRuntimeBufferExtensionsTests.GetWindowsRuntimeBuffer _BufferWithLengthGreaterThanIntMax_Throws() in C:\Users\hugh\Documents\GitHub\corefx\src\System.Runtime.WindowsRuntim e\tests\System\Runtime\InteropServices\WindowsRuntimeBufferExtensionsTests.cs:line 199 at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] paramet ers, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) ``` +21304 area-System.Collections ObservableCollection.OnDeserialized NullRefs when called from JSON.Net When JSON.Net deserializes ObservableCollection it will call OnDeserialized on it with the below callstack: Newtonsoft.Json!Newtonsoft::Json::Serialization::JsonContract::<>c__DisplayClass1.b__0+0x57 Newtonsoft.Json!Newtonsoft::Json::Serialization::SerializationCallback.Invoke+0x25 Newtonsoft.Json!Newtonsoft::Json::Serialization::JsonContract.InvokeOnDeserialized+0x76 Newtonsoft.Json!Newtonsoft::Json::Serialization::JsonSerializerInternalReader.OnDeserialized+0xc4 Newtonsoft.Json!Newtonsoft::Json::Serialization::JsonSerializerInternalReader.PopulateList+0x268 The method will NullRef because the _monitor field is null. I'm guessing this was caused by #20643 . There seems to be a mismatch where we override OnDeserialized, but not OnDeserializing where would initialize the monitor. @justinvp @ViktorHofer +21305 area-System.Text RegEx: Support for POSIX character classes Is there any plan to support POSIX character classes? [:digit:] [:alnum:] etc. +21306 area-Infrastructure Crashes on shutdown from EventListener in various test projects We're continuing to be plagued by failures like this in netfx runs: ``` System.InvalidOperationException: Collection was modified; enumeration operation may not execute. at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) at System.Collections.Generic.List`1.Enumerator.MoveNextRare() at System.Diagnostics.Tracing.EventListener.DisposeOnShutdown(Object sender, EventArgs e) ``` e.g. https://ci3.dot.net/job/dotnet_corefx/job/master/job/windows-TGroup_netfx+CGroup_Release+AGroup_x86+TestOuter_false_prtest/102/. If we're not already on a version of netfx that includes the fix, we need to move CI to a newer version. And if we are on a sufficiently new version, then apparently the issue isn't fixed. +21308 area-System.Runtime Add Attribute tests in System.Runtime.InteropServices Had these in my backlog from last week - can now send in because it won't cause merge conflicts. The tests are pretty basic, just added for test coverage for constructors of attributes etc. etc. +21309 area-Infrastructure Provision CodeBase and NotificationAlias variables. Introducing `CodeBase` and `NotificationAlias` variables so that values of these can be passed through PipeBuild. `CodeBase` allows targeting security build for non-master branches. `NotificationAlias` enables TSA reports for non-dncsec users. +21310 area-System.Drawing [porting] SystemIcons.ShieldIcon fails with `Resource 'ShieldIcon.ico' cannot be found in class 'System.Drawing.SystemIcons'` "The code for `SystemIcons.Shield` is as follows ```c# Contract.Ensures(Contract.Result() != null); if (s_shield == null) { try { // IDI_SHIELD is defined in OS Vista and above if (Environment.OSVersion.Version.Major >= 6) { // we hard-code size here, to prevent breaking change // the size of _shield before this change is always 32 * 32 IntPtr hIcon = IntPtr.Zero; int result = SafeNativeMethods.LoadIconWithScaleDown(NativeMethods.NullHandleRef, SafeNativeMethods.IDI_SHIELD, 32, 32, ref hIcon); if (result == 0) s_shield = new Icon(hIcon); } } catch (Exception) { // we don't want to throw exception here. // If there is an exception, we will load an icon from file ShieldIcon.ico } } if (s_shield == null) { s_shield = new Icon(typeof(SystemIcons), ""ShieldIcon.ico""); } return s_shield; ``` The first error we get is an `EntrypointNotFoundException` for `LoadIconWithScaleDown` which is likely a bug The second error we get is constructing the icon: ```c# System.Drawing.Tests.SystemIconsTests.SystemIcons_Get_ReturnsExpected(iconThunk: Func`1 { Method = System.Drawing. Icon b__0_7(), Target = <>c { } }) [FAIL] System.ArgumentException : Resource 'ShieldIcon.ico' cannot be found in class 'System.Drawing.SystemIcons'. Stack Trace: at System.Drawing.Icon..ctor(Type type, String resource) at System.Drawing.SystemIcons.get_Shield() at System.Drawing.Tests.SystemIconsTests.<>c.b__0_7() at System.Drawing.Tests.SystemIconsTests.SystemIcons_Get_ReturnsExpected(Func`1 iconThunk) ``` This is likely because the logical name of the embedded resource icon is incorrect . I'll submit a fix for the first part" +21311 area-System.Diagnostics Convert docs to markdown Converted HTML docs to markdown. Used C# syntax highlight on the code sample. +21313 area-Infrastructure Nano only supports x64 so only test it for the x64 legs @MattGal @danmosemsft this should limit the Nano test runs to just x64. +21314 area-System.Net System.Net.Http.WinHttpException: The server returned an invalid or unrecognized response "When a server returns a HTTP header which has a white space in the header name, then the `HttpClient` throws the following error: ``` System.Net.Http.WinHttpException: The server returned an invalid or unrecognized response at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() ``` I tried to create a simple ASP.NET Core application to reproduce this issue, but it seems that there is another bug in ASP.NET Core which causes a server issue when trying to set this HTTP header: ```csharp app.Run(async (ctx) => { ctx.Response.Headers.Add(""some -test"", ""abcdef""); await ctx.Response.WriteAsync(""Hello world""); }); ```" +21316 area-Infrastructure Changing binplace configurations so the default only contains TargetGroup and OSGroup Port of https://github.com/dotnet/corefx/pull/20839 cc @joperezr @danmosemsft @ViktorHofer +21317 area-System.Net Re-enabling CookieContainer test on uapaot Reverts dotnet/corefx#20484 since test has now been fixed based on @tijoytom 's comment here: https://github.com/dotnet/corefx/issues/20482#issuecomment-309962895 +21318 area-System.Net [release/2.0.0] Return Linux NetworkInterface speed as bits per second, not megabits. Direct port of #21272 to release/2.0.0. Pending approval, do not merge. +21319 area-System.Drawing Start using FEATURE_SYSTEM_EVENTS in System.Drawing.Common On the .NET Framework, types in System.Drawing will react to certain system events, like system fonts changing, or system colors changing. When such an event is encountered, the system fonts and colors are refreshed and re-cached, so that they stay up-to-date with the rest of the OS. On .NET Framework, these events are tracked through the `SystemEvents` class, located in System.dll. We don't have this functionality in .NET Core, but can consider adding it, perhaps directly in System.Drawing.Common.dll for now. All code using this is behind the `FEATURE_SYSTEM_EVENTS` flag. Note that this will probably only ever work on Windows, and not other operating systems. Another option is to simply delete the code, and document this as a minor quirk of the .NET Core version of the library. This would mean that, in very rare (incredibly rare?) circumstances, the colors and fonts returned by System.Drawing.Common would be out of sync with the rest of the system. @stephentoub @hughbe +21320 area-System.Net Unable to make https request when Oid lookup takes too long "This issue was discovered in .NET 4.6, but would also affect .NET core apps running on windows. Here is a link to the feedback I created on the connect website for this issue: https://connect.microsoft.com/VisualStudio/feedback/details/3136313 The solution is to use a different Oid constructor that prevents the potentially costly Oid friendly name lookup. What follows is a more detailed description of how issue we were seeing in our application. I support a desktop application that calls a WCF service hosted on our servers over https. A small number of our clients with the desktop application installed (~20/10000) have been reporting issues connecting to the WCF service since installing KB4014511. The exception being thrown is: System.IO.IOException: Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host The error is misleading though. After quite a lot of troubleshooting, we were able to pinpoint the source of the problem. By decompiling the System.dll, I saw that the following 2 lines were added to the System.Net.Security.SecureChannel class shipped with KB4014511: private readonly Oid m_ServerAuthOid = new Oid(""1.3.6.1.5.5.7.3.1""); private readonly Oid m_ClientAuthOid = new Oid(""1.3.6.1.5.5.7.3.2""); The initialization of those Oid objects is triggering a system call to the CryptFindOIDInfo function to lookup the friendly name associated with the specified OID. When the machine is part of a domain, that call will perform the lookup against active directory (see the Remarks in the docs https://msdn.microsoft.com/en-us/library/windows/desktop/aa379938%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396). For our clients that are having issues connecting to our WCF service, this lookup is taking up to 15 seconds. Because these Oid lookups are happening after WCF has opened the TCP connection to our server, but before the SSL/TLS handshake has started, we are seeing the above error. So, the TCP connection is opened, 2 OID lookups happen taking up to 30 seconds, the application then attempts to start the SSL/TLS handshake, but by the time the SSL/TLS handshake is attempted, the TCP connection has already been reset by the server (in our case the server resets the connection after 10 seconds)." +21321 area-Infrastructure Enabling Multifile ILC Tests for uapaot-Release-x64 configuration cc: @danmosemsft @joshfree @tijoytom @botaberg @yizhang82 This will switch the Release-x64 configuration tests to run on multi-file mode instead of single-file. +21322 area-System.Collections Allow Json.NET deserialization of ObservableCollection Json.NET serializes the collection by enumerating it, without taking into account any of its fields like the binary serializer does, and deserializes it by adding the items back to the collection, without initializing the fields. However, it does still call the `OnSerializing`/`OnSerialized`/`OnDeserializing`/`OnDeserialized` methods. When it calls `OnDeserialized`, a NullRef exception is thrown when we try to access the `_monitor` field because the field has not been initialized, unlike with binary deserialization, where the field would have been initialized from the serialized binary data. A workaround is to simply check `if (_monitor != null)` before accessing it in `OnDeserialized`. Fixes #21304 cc: @vitek-karas, @ViktorHofer +21323 area-System.Data ConnectionPoolTest.ConnectionPool_Mars manual test hangs when running with SqlClient managed SNI with Encrypt=true CC @saurabh500 +21324 area-System.Data CommandCancelTest.TimeoutCancel fails when using managed SNI with Encrypt=true Test results: FAILURE: - unexpected non-open state after Execute! Expected: True Actual: False Stack Trace: System.Data.SqlClient\tests\ManualTests\SQL\CommandCancelTest\CommandCancelTest.cs(198,0): at System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest.VerifyConnection(SqlCommand cmd) System.Data.SqlClient\tests\ManualTests\SQL\CommandCancelTest\CommandCancelTest.cs(154,0): at System.Data.SqlClient.ManualTesting.Tests.CommandCancelTest.TimeoutCancel(String constr) CC @saurabh500 +21325 area-System.Net Fix HttpClientHandler.DefaultProxyCredential on NETFX This bug was discovered in internal testing when this code was being ported to .NET Framework vNext. Due to all these tests being previously disabled on NETFX, the bug was missed. The HttpClientHandler.DefaultProxyCredentials property is only used when an explicit proxy is not specified (HttpClientHandler.Proxy==null) but a proxy is still desired (HttpClientHandler.UseProxy==true). In this case, the semantics implied are to use the system default proxy settings to find a proxy. In that case, the credentials specified by DefaultProxyCredentials should be passed to the webrequest.Proxy object which, by default, points to the system proxy. +21327 area-System.Net Socket multicast will hang in AppContainer with loopback interface The description in #21018 is not correct. The test will hang if loopback interface is chosen. Since there is no problem using other interfaces for socket multicast, we move this issue to future. @davidsh @CIPop +21328 area-System.Net Re-enable a Sockets Functional test for UAP mode Contributes to: #21018 +21330 area-System.ComponentModel System.ComponentModel.CultureInfoConverter is changing UI culture during runtime System.ComponentModel.CultureInfoConverter in some cases is changing UI culture during the runtime which is causing problems on multithreaded scenarios: https://github.com/dotnet/corefx/blob/a957acc46d97c4e8b123f3d82891f5cf563a5a17/src/System.ComponentModel.TypeConverter/src/System/ComponentModel/CultureInfoConverter.cs#L93 https://github.com/dotnet/corefx/blob/a957acc46d97c4e8b123f3d82891f5cf563a5a17/src/System.ComponentModel.TypeConverter/src/System/ComponentModel/CultureInfoConverter.cs#L186 it is possible to avoid that +21331 area-System.ComponentModel Fix TypeConverter tests on UAP Fixes: https://github.com/dotnet/corefx/issues/21330 Background: Tests were flaky because TypeConverter (product) is temporarily changing UI culture which is making tests fail as they expect `CultureInfo.CurrentCulture != CultureInfo.InvariantCulture` This includes two fixes, each of them separately fixes the issue: - product fix to not do that - tests use RemoteExecutor and override culture from within I recommend looking at this diff with `&w=1` / `?w=1`: https://github.com/dotnet/corefx/commit/a246a010a20f4ecd70585527b7f15f8421fab724?w=1 cc: @tarekgh - Thank you a lot for help on this! +21332 area-System.Globalization IdnMappingIdnaConformanceTests.GetAscii_Invalid failing on our Nano image Don't know why this just started. We may need to remove this line from the IdnaTest_6.txt file. Unfortunately the test doesn't log what line it's on. ``` Windows.10.Nano.Amd64.Open-Debug-x64 Unhandled Exception of Type Xunit.Sdk.ThrowsException Message : Assert.Throws() Failure\r\nExpected: typeof(System.ArgumentException)\r\nActual: (No exception was thrown) Stack Trace : at System.Globalization.Tests.IdnMappingIdnaConformanceTests.GetAscii_Invalid() ``` OS=Microsoft Windows 10.0.14393 OSVer=Microsoft Windows NT 10.0.14393.0 OSArch=X64 Arch=X64 Framework=.NET Core 4.6.00001.0 +21333 area-System.Drawing Move Serialization-related code into partial class files for System.Drawing.Common This moves all `SerializableAttribute` and `ISerializable`-related code to partial files in System.Drawing.Common, and omits those files from the .NET Core build of the library. They will still be used for the mono configuration, because it supports these serialization features. * For classes and structs, I have moved the attribute declarations and, when applicable, the interface implementations into a *.Serializable.cs file. * For enums, I have removed the attribute entirely, as it was a no-op. * None of the new *.Serializable.cs files are included in the .NET Core build configuration. * All of the attributes and interfaces have been removed from the .NET Core reference assembly. @stephentoub @akoeplinger I chatted with both of you today about this. In the past, we have simply been deleting this code from corefx, since it's not used in the .NET Core implementation. However, we want to continue sharing these files with mono, and Alex mentioned this way was preferred. Mono already consumes a few of these files, so deleting the attributes outright would break some functionality. I'm open to tweaking this and using a different pattern if we find something that is easier to maintain. +21334 area-System.Security Fix temp keychain lifetime with macOS CopyWithPrivateKey Because macOS is the only platform that doesn't allow ephemeral keys to be associated with certificates we have a straightforward-yet-complex temporary keychain management system. In the new CopyWithPrivateKey methods, we end up messing with the refcounts and deleting too early because the input certificate got mutated by the call -- it believes it belongs to the keychain, even though it was subsequently removed from it. So when that cert handle disposes we DangerousRelease our shared lifetime handle even though we never did a DangerousAddRef. Since the new method is supposed to have no lasting side effects, and we've found one, change to use the Windows PAL approach: first clone the cert to disassociate it from mutation operations. The existing tests noticed this problem, which got the incorrect fix of a persisted field for the private key. But since PFX exporting is done within the keychain itself, if the keychain was deleted PFX export isn't possible. With the addition of PFX export tests from CopyWithPrivateKey we now have better ways of tracking that the keychain isn't deleted too early. Fixes (in master) #20272. +21335 area-System.ComponentModel .AsyncOperationTests.ThrowAfterAsyncComplete failed on Netfx I am assuming this is a latent bug in NETFX but opening this issue so we can track how often it happens. ``` 14:57:38 Starting: System.ComponentModel.EventBasedAsync.Tests 14:57:38 Finished running tests. End time=14:57:38.37, Exit code = 0 14:57:38 Using D:\j\workspace\netfx_windows---120b7803\bin\testhost\netfx-Windows_NT-Debug-x86\ as the test runtime folder. 14:57:38 Executing in D:\j\workspace\netfx_windows---120b7803\bin\AnyOS.AnyCPU.Debug\System.ComponentModel.Primitives.Tests\netstandard\ 14:57:38 Running tests... Start time: 14:57:38.48 14:57:38 System.ComponentModel.EventBasedAsync.Tests.AsyncOperationTests.ThrowAfterAsyncComplete [FAIL] 14:57:38 Assert.Throws() Failure 14:57:38 Expected: typeof(System.InvalidOperationException) 14:57:38 Actual: (No exception was thrown) 14:57:38 Stack Trace: 14:57:38 D:\j\workspace\netfx_windows---120b7803\src\System.ComponentModel.EventBasedAsync\tests\AsyncOperationTests.cs(40,0): at System.ComponentModel.EventBasedAsync.Tests.AsyncOperationTests.<>c.b__2_0() 14:57:38 at System.Threading.Tasks.Task.Execute() 14:57:38 --- End of stack trace from previous location where exception was thrown --- 14:57:38 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 14:57:38 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 14:57:38 at System.Runtime.CompilerServices.TaskAwaiter.GetResult() 14:57:38 D:\j\workspace\netfx_windows---120b7803\src\System.ComponentModel.EventBasedAsync\tests\AsyncOperationTests.cs(34,0): at System.ComponentModel.EventBasedAsync.Tests.AsyncOperationTests.ThrowAfterAsyncComplete() 14:57:38 Finished: System.ComponentModel.EventBasedAsync.Tests ``` see https://github.com/dotnet/corefx/pull/1938/files +21337 area-System.Runtime Add tests for String.Contains overload with StringComparison Fix #20846 +21339 area-System.Diagnostics Handle empty arguments in argv in Process. "Implementing parsing """" empty arguments in argv which was ignored in Unix ParseArgv function. Unblocking PR #21196 cc @hughbe @danmosemsft @AtsushiKan @stephentoub " +21340 area-System.Drawing Add Graphics tests for handles and construction Let's see how the CI fares as some of these tests use HWNDs +21343 area-System.Security CreateChain_Hybrid failed on Debian.90.Amd64-x64-Debug ``` Debian.90.Amd64-x64-Debug Unhandled Exception of Type Xunit.Sdk.TrueException Message : Initial chain build: Initial chain error at depth 0: NotTimeValid\nExpected: True\nActual: False Stack Trace : at System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CertificateRequestChainTests.RunChain(X509Chain chain, X509Certificate2 cert, Boolean expectSuccess, String msg) in /root/corefx/src/System.Security.Cryptography.X509Certificates/tests/CertificateCreation/CertificateRequestChainTests.cs:line 312 at System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CertificateRequestChainTests.CreateAndTestChain(AsymmetricAlgorithm rootPrivKey, AsymmetricAlgorithm intermed1PrivKey, AsymmetricAlgorithm intermed2PrivKey, AsymmetricAlgorithm leafPubKey) in /root/corefx/src/System.Security.Cryptography.X509Certificates/tests/CertificateCreation/CertificateRequestChainTests.cs:line 430 at System.Security.Cryptography.X509Certificates.Tests.CertificateCreation.CertificateRequestChainTests.CreateChain_Hybrid() in /root/corefx/src/System.Security.Cryptography.X509Certificates/tests/CertificateCreation/CertificateR ``` @bartonjs +21344 area-System.Globalization "Test: System.Globalization.Tests.IdnMappingIdnaConformanceTests/GetAscii_Invalid failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.IdnMappingIdnaConformanceTests/GetAscii_Invalid` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: (No exception was thrown) Stack Trace: at System.Globalization.Tests.IdnMappingIdnaConformanceTests.GetAscii_Invalid() Build : Master - 20170622.01 (Core Tests) Failing configurations: - Windows.10.Nano.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170622.01/workItem/System.Globalization.Extensions.Tests/analysis/xunit/System.Globalization.Tests.IdnMappingIdnaConformanceTests~2FGetAscii_Invalid +21347 area-System.Runtime "Tests under: System.Tests.SetEnvironmentVariable failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Tests.SetEnvironmentVariable/Default(target: Machine)` has failed. Assert.Equal() Failure\r Expected: (null)\r Actual: true Stack Trace: at System.Tests.SetEnvironmentVariable.<>c__DisplayClass6_0.b__0() at System.Tests.SetEnvironmentVariable.ExecuteAgainstTarget(EnvironmentVariableTarget target, Action action, Action cleanUp) at System.Tests.SetEnvironmentVariable.Default(EnvironmentVariableTarget target) at xunit.console.netcore!+0xc373d4 at xunit.console.netcore!+0xa4d643 at xunit.console.netcore!+0xa4d443 Build : Master - 20170622.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170622.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.SetEnvironmentVariable~2FDefault(target:%20Machine) +21348 area-System.Runtime "Test: System.Runtime.InteropServices.Tests.ComAwareEventInfoTests/Ctor_Type_EventName failed with ""System.NotImplementedException""" Opened on behalf of @Jiayili1 The test `System.Runtime.InteropServices.Tests.ComAwareEventInfoTests/Ctor_Type_EventName` has failed. System.NotImplementedException : The method or operation is not implemented. Stack Trace: at xunit.console.netcore!+0x82fc81 at System.Reflection.ParameterInfo.get_CustomAttributes() at xunit.console.netcore!+0xc1a010 at xunit.console.netcore!+0x756978 at System.Runtime.InteropServices.Tests.ComAwareEventInfoTests.Ctor_Type_EventName() at xunit.console.netcore!+0xaf9107 at xunit.console.netcore!+0x99cc43 at xunit.console.netcore!+0x99ca43 Build : Master - 20170622.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170622.01/workItem/System.Runtime.InteropServices.Tests/analysis/xunit/System.Runtime.InteropServices.Tests.ComAwareEventInfoTests~2FCtor_Type_EventName +21350 area-System.Runtime "Test: System.Tests.StringTests/Concat_String(values: [\""\""], expected: \""\"") failed with ""Xunit.Sdk.SameException""" "Opened on behalf of @Jiayili1 The test `System.Tests.StringTests/Concat_String(values: [\""\""], expected: \""\"")` has failed. Assert.Same() Failure\r Expected: \r Actual: Stack Trace: at System.Tests.StringTests.<>c__DisplayClass15_0.b__0(String result) at System.Tests.StringTests.Concat_String(String[] values, String expected) at xunit.console.netcore!+0x872eec at SharedLibrary!+0x7661d5 at SharedLibrary!+0x765f5e Build : Master - 20170622.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170622.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.StringTests~2FConcat_String(values:%20%5B%5C%22%5C%22%5D,%20expected:%20%5C%22%5C%22)" +21351 area-System.Runtime "Test: Windows.UI.Xaml.Media.Animation.Tests.RepeatBehaviorTests/Equals_Object_ReturnsExpected failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `Windows.UI.Xaml.Media.Animation.Tests.RepeatBehaviorTests/Equals_Object_ReturnsExpected(repeatBehaviour: , other: 00:00:00, expected: False)` has failed. Assert.Equal() Failure\r Expected: False\r Actual: True Stack Trace: at Windows.UI.Xaml.Media.Animation.Tests.RepeatBehaviorTests.Equals_Object_ReturnsExpected(UI.Xaml.Media.Animation.RepeatBehavior repeatBehaviour, Object other, Boolean expected) at xunit.console.netcore!+0x9b5cb4 at xunit.console.netcore!+0x972145 at xunit.console.netcore!+0x971ece Build : Master - 20170622.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170622.01/workItem/System.Runtime.WindowsRuntime.UI.Xaml.Tests/analysis/xunit/Windows.UI.Xaml.Media.Animation.Tests.RepeatBehaviorTests~2FEquals_Object_ReturnsExpected(repeatBehaviour:%20,%20other:%2000:00:00,%20expected:%20False) +21353 area-System.IO "Tests under: System.IO.Pipes.Tests failed with ""System.UnauthorizedAccessException""" Opened on behalf of @Jiayili1 The test `System.IO.Pipes.Tests.NamedPipeTest_CreateServer/CreateWithNegativeOneServerInstances_DefaultsToMaxServerInstances` has failed. System.UnauthorizedAccessException : Access to the path is denied. Stack Trace: at System.IO.Pipes.NamedPipeServerStream.Create(String pipeName, PipeDirection direction, Int32 maxNumberOfServerInstances, PipeTransmissionMode transmissionMode, PipeOptions options, Int32 inBufferSize, Int32 outBufferSize, HandleInheritability inheritability) at System.IO.Pipes.NamedPipeServerStream..ctor(String pipeName, PipeDirection direction, Int32 maxNumberOfServerInstances, PipeTransmissionMode transmissionMode, PipeOptions options, Int32 inBufferSize, Int32 outBufferSize, HandleInheritability inheritability) at System.IO.Pipes.Tests.NamedPipeTest_CreateServer.CreateWithNegativeOneServerInstances_DefaultsToMaxServerInstances() Build : Master - 20170622.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Debug - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170622.01/workItem/System.IO.Pipes.Tests/analysis/xunit/System.IO.Pipes.Tests.NamedPipeTest_CreateServer~2FCreateWithNegativeOneServerInstances_DefaultsToMaxServerInstances +21356 area-System.ComponentModel System.ComponentModel.Tests.CategoryAttributeTests.Ctor_Category failed in ci failed test: System.ComponentModel.Tests.CategoryAttributeTests.Ctor_Category detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.10_debug/2836/testReport/System.ComponentModel.Tests/CategoryAttributeTests/Ctor_Category_category____Misc____expectedIsDefaultAttribute__True_/ MESSAGE: ~~~ Assert.Equal() Failure Expected: True Actual: False ~~~ STACK TRACE: ~~~ at System.ComponentModel.Tests.CategoryAttributeTests.Ctor_Category(String category, Boolean expectedIsDefaultAttribute) in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_debug/src/System.ComponentModel.Primitives/tests/CategoryAttributeTests.cs:line 34 ~~~ +21357 area-Serialization Adding test to check if OnDeserialized doesn't throw if serialization… … fields aren't initialized yet. Relates to https://github.com/dotnet/corefx/pull/21322 +21358 area-System.IO [Regression] Previous valid NTFS paths are considered invalid in .NET Framework 4.6.2/.NET Core "1. Run the following code: ``` C# using System; using System.IO; class Program { static void Main(string[] args) { for (char c = (char)0; c < Char.MaxValue; c++) { if (char.IsWhiteSpace(c) && CanCreateFile(c)) { Console.WriteLine($""Valid Path Char: {ToCodePoint(c)} CanCreateFile: true CanGetFullPath: {CanGetFullPath(c)}""); } } } private static string ToCodePoint(char c) { return string.Format(""\\u{0:x4} "", (int)c); } private static bool CanGetFullPath(char c) { try { Path.GetFullPath(c.ToString()); return true; } catch (ArgumentException) { } return false; } private static bool CanCreateFile(char c) { try { string path = Path.Combine(@""c:\Temp"", c.ToString()); File.WriteAllText(path, """"); } catch (DirectoryNotFoundException) { // Handle ' ' and '\t', etc return false; } catch (ArgumentException) { return false; } return true; } } ``` **Expected (behavior in .NET Framework 4.6.1 and below):** ``` Valid Path Char: \u1680 CanCreateFile: true CanGetFullPath: True Valid Path Char: \u2000 CanCreateFile: true CanGetFullPath: True Valid Path Char: \u2001 CanCreateFile: true CanGetFullPath: True Valid Path Char: \u2002 CanCreateFile: true CanGetFullPath: True Valid Path Char: \u2003 CanCreateFile: true CanGetFullPath: True Valid Path Char: \u2004 CanCreateFile: true CanGetFullPath: True Valid Path Char: \u2005 CanCreateFile: true CanGetFullPath: True Valid Path Char: \u2006 CanCreateFile: true CanGetFullPath: True Valid Path Char: \u2007 CanCreateFile: true CanGetFullPath: True Valid Path Char: \u2008 CanCreateFile: true CanGetFullPath: True Valid Path Char: \u2009 CanCreateFile: true CanGetFullPath: True Valid Path Char: \u200a CanCreateFile: true CanGetFullPath: True Valid Path Char: \u2028 CanCreateFile: true CanGetFullPath: True Valid Path Char: \u2029 CanCreateFile: true CanGetFullPath: True Valid Path Char: \u202f CanCreateFile: true CanGetFullPath: True Valid Path Char: \u205f CanCreateFile: true CanGetFullPath: True Valid Path Char: \u3000 CanCreateFile: true CanGetFullPath: True ``` **Actual (.NET Framework 4.6.2/.NET Core):** ``` Valid Path Char: \u1680 CanCreateFile: true CanGetFullPath: False Valid Path Char: \u2000 CanCreateFile: true CanGetFullPath: False Valid Path Char: \u2001 CanCreateFile: true CanGetFullPath: False Valid Path Char: \u2002 CanCreateFile: true CanGetFullPath: False Valid Path Char: \u2003 CanCreateFile: true CanGetFullPath: False Valid Path Char: \u2004 CanCreateFile: true CanGetFullPath: False Valid Path Char: \u2005 CanCreateFile: true CanGetFullPath: False Valid Path Char: \u2006 CanCreateFile: true CanGetFullPath: False Valid Path Char: \u2007 CanCreateFile: true CanGetFullPath: False Valid Path Char: \u2008 CanCreateFile: true CanGetFullPath: False Valid Path Char: \u2009 CanCreateFile: true CanGetFullPath: False Valid Path Char: \u200a CanCreateFile: true CanGetFullPath: False Valid Path Char: \u2028 CanCreateFile: true CanGetFullPath: False Valid Path Char: \u2029 CanCreateFile: true CanGetFullPath: False Valid Path Char: \u202f CanCreateFile: true CanGetFullPath: False Valid Path Char: \u205f CanCreateFile: true CanGetFullPath: False Valid Path Char: \u3000 CanCreateFile: true CanGetFullPath: False ``` What Unicode considers as whitespace (via String.IsNullOrWhitespace) does not match what NTFS considers as whitespace.." +21359 area-Infrastructure .NET Core 2.0 Preview 1 - Could not load type 'System.Security.Permissions.ReflectionPermission' Testing out Preview 2 and some Nuget packages. One required adding the System.Security.Permissions Nuget package to get past the Permissions assembly not being found. https://www.nuget.org/packages/System.Security.Permissions/4.4.0-preview1-25305-02 But now I'm getting the following error: System.TypeLoadException occurred HResult=0x80131522 Message=Could not load type 'System.Security.Permissions.ReflectionPermission' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Source= StackTrace: at Newtonsoft.Json.Serialization.JsonTypeReflector.get_DynamicCodeGeneration() at Newtonsoft.Json.Serialization.JsonTypeReflector.get_ReflectionDelegateFactory() at Newtonsoft.Json.Serialization.DefaultContractResolver.GetDefaultCreator(Type createdType) at Newtonsoft.Json.Serialization.DefaultContractResolver.InitializeContract(JsonContract contract) at Newtonsoft.Json.Serialization.DefaultContractResolver.CreateDictionaryContract(Type objectType) at Newtonsoft.Json.Serialization.DefaultContractResolver.ResolveContract(Type type) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer) ... Is this a known issue? +21360 area-System.Drawing 4 specific System.Drawing.Common tests have started failing regularily on Windows 10 release mode - Ctor_InvalidIconHandle_SetsHandleToZero: ``` Unhandled Exception of Type Xunit.Sdk.ThrowsException Message : Assert.Throws() Failure\r\nExpected: typeof(System.ObjectDisposedException)\r\nActual: (No exception was thrown) Stack Trace : at System.Drawing.Tests.IconTests.Ctor_InvalidIconHandle_SetsHandleToZero() ``` - Save_InvalidHandle_ThrowsCOMException ``` Unhandled Exception of Type Xunit.Sdk.ThrowsException Message : Assert.Throws() Failure\r\nExpected: typeof(System.Exception)\r\nActual: (No exception was thrown) Stack Trace : at System.Drawing.Tests.IconTests.Save_InvalidHandle_ThrowsCOMException() ``` - Size_GetFromInvalidHandle_ReturnsZeroSize ``` Unhandled Exception of Type Xunit.Sdk.EqualException Message : Assert.Equal() Failure\r\nExpected: {Width=0, Height=0}\r\nActual: {Width=32, Height=32} Stack Trace : at System.Drawing.Tests.IconTests.Size_GetFromInvalidHandle_ReturnsZeroSize() ``` - ToBitmap_InvalidHandle_ThrowsArgumentException ``` Unhandled Exception of Type Xunit.Sdk.ThrowsException Message : Assert.Throws() Failure\r\nExpected: typeof(System.ArgumentException)\r\nActual: (No exception was thrown) Stack Trace : at System.Drawing.Tests.IconTests.ToBitmap_InvalidHandle_ThrowsArgumentException() ``` +21362 area-Infrastructure Update attribute-value in security build definition. Workaround for https://github.com/dotnet/core-eng/issues/1009 +21364 area-System.Linq We looked everywhere but we can't find your metadata - iteration 5493 Fixes https://github.com/dotnet/corefx/issues/21299 +21367 area-System.Drawing Properly dispose of all resources in System.Drawing tests I think the resources will be finalized, but this is good practice and it was mentioned this should be done +21368 area-System.Runtime Reenable test in System.Runtime.InteropServices for ILC Api is now implemented. Fixes https://github.com/dotnet/corefx/issues/20600 +21371 area-System.Net Faster SslStream SslStream apparently shows up as bottleneck in server-side scenarios. Info from @davidfowl offline: * Benchmarks observed: TechEmpower benchmark - see [results](https://msit.powerbi.com/view?r=eyJrIjoiMzFiNDdjNWEtODRiZS00ZDM3LTg4YWEtMGQ3OWQ2ZTc3MDUyIiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9) * PlainText (with pipelining): 1.31M RPS * PlainText with Https (with pipelining): 156K RPS ... clear large ~10x overhead at this moment * [HttpsConnectionAdapter code](https://github.com/aspnet/KestrelHttpServer/blob/c83f606b220714fa7b1b6a6a91b16d78cee6005f/src/Microsoft.AspNetCore.Server.Kestrel.Https/HttpsConnectionAdapter.cs) in Kestrel * Idea: Compare SSL slowdown in competing technologies (incl. C) to get the idea where it could be potentially pushed. +21373 area-System.Net Fix DefaultProxyCredentials edge case on NETFX After my PR #21325, I discovered an edge case where we need to check for a non-null Proxy property in the underlying WebRequest. On .NET Framework, System.Net.Http is built on WebRequest (HttpWebRequest) and is subject to side-affects from it. The static property WebRequest.DefaultWebProxy affects the initial value of WebRequest.Proxy. So, it's possible that a developer may have set WebRequest.DefaultWebProxy to null prior to using System.Net.Http in the app. The net affect of this is that there won't be any proxy used as the system default proxy and thus the HttpClientHandler.DefaultProxyCredentials is ignored. On .NET Core, there is no relationship between System.Net.Http and System.Net.WebRequest. So, in all cases on .NET Core, where a developer has specified HttpClientHander.UseProxy=true and HttpClientHandler.Proxy = null (default values), the handler will always try to use the system default proxy (if configured). +21376 area-System.Runtime Fix failing System.Runtime.Interop.Tests on ILC "Fixes https://github.com/dotnet/corefx/issues/21348 Override all the remaining Reflection apis whose default implementation is ""throw"". This will increase the chance of success in the cases where the two CoreLib's have different dependencies on Reflection objects passed into them. We actually try very hard to avoid these but there are some cases where the cost of doing that is too high - CustomAttributeExtensions being one of them." +21377 area-System.Runtime InternalTestAotSubset is failing in ILC x86 only ``` Assert.Same() Failure\r\nExpected: \r\nActual: Stack Trace : at System.Tests.StringTests.InternalTestAotSubset() at xunit.console.netcore!+0xb808d1 at SharedLibrary!+0x7626f3 at SharedLibrary!+0x7624f3 ``` @AtsushiKan this is your test. Seems 32 bit specific? +21379 area-System.Runtime BinarySearchSZArray tests failing in ILC ``` BinarySearch_SZArray(array: [-32768, 0, 0, 32767], index: 0, length: 1, value: -32768, comparer: null, expected: 0) BinarySearch_SZArray(array: [-32768, 0, 0, 32767], index: 0, length: 4, value: -32768, comparer: null, expected: 0) BinarySearch_SZArray(array: [-32768, 0, 0, 32767], index: 1, length: 3, value: -32768, comparer: null, expected: -2) BinarySearch_SZArray(array: [-128, 0, 0, 127], index: 0, length: 1, value: -128, comparer: null, expected: 0) BinarySearch_SZArray(array: [-128, 0, 0, 127], index: 0, length: 4, value: -128, comparer: null, expected: 0) BinarySearch_SZArray(array: [-128, 0, 0, 127], index: 1, length: 3, value: -128, comparer: null, expected: -2) IndexOf_SZArray(array: [Min], value: Min, startIndex: 0, count: 1, expected: 0) ``` https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170622.02/workItem/System.Runtime.Tests.Execution eg https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170622.02/workItem/System.Runtime.Tests.Execution/analysis/xunit/System.Tests.ArrayTests~2FBinarySearch_SZArray%3CInt16%3E(array:%20%5B-32768,%200,%200,%2032767%5D,%20index:%200,%20length:%201,%20value:%20-32768,%20comparer:%20null,%20expected:%200) @joshfree can you please assign to a dev on your side. +21380 area-System.IO Proposal: using ArrayPool in MemoryStream with new APIs When not constructed with a specific `byte[]`, `MemoryStream` allocates `byte[]s` every time it needs to grow. It would be tempting to just change the implementation to use `ArrayPool.Shared.Rent` to get that array, but this is problematic for a few reasons, mostly to do with existing code: 1. It's fairly common to not dispose MemoryStreams, as currently the Dispose is effectively a nop. But with wrapping buffers from `ArrayPool`, it's important to release the currently used buffer back to the pool when the stream is disposed. And it would be expensive to make MemoryStream finalizable to deal with this. 2. MemoryStream by default allows the buffers it creates to be exposed through its TryGetBuffer method. That means folks today could be taking and using these buffers, potentially even after the MemoryStream is disposed, which could lead to code using the array after the array is returned to the pool and potentially used by someone else. One solution would just be to introduce a new Stream type, e.g. ```C# namespace System.IO { public sealed class ArrayPoolStream : Stream { public ArrayPoolStream() : this(ArrayPool.Shared) { } public ArrayPoolStream(ArrayPool pool); ~ArrayPoolStream(); public ArraySegment DangerousGetArray(); ... // override all the relevant members on Stream } } ``` That has its own downsides, though. In particular, there's something nice about this just being a part of MemoryStream, being easily used in existing code that uses MemoryStreams, etc. Another option would be to just plumb this into MemoryStream, but in an opt-in manner, and accept some of the resulting limitations because they're opt-in: - Add a ctor: `public MemoryStream(ArrayPool pool)`. - When that ctor is used, buffers come from the pool rather than being new'd up. - If you don't Dispose, you leak the buffer, but since this only happens when you use the new ctor, we're at least not impacting existing code, and it's little different than just using the pool directly and not returning a buffer. - We either make TryGetBuffer return false, or as with Dispose we accept that you had to opt-in to this by using the new ctor. I'm leaning towards the second option: just add the new `MemoryStream(ArrayPool)` ctor, and allow TryGetBuffer to work; devs just need to know that when they create the stream with this ctor, they should dispose the stream, and they shouldn't use the array retrieved from TryGetBuffer after doing something else to the stream. +21381 area-System.Runtime Fix RuntimeInformation.FrameworkName for Uap and UapAot @sepidehMS found this while investigating System.ObjectModel.Tests which is caused by this. Fixes: https://github.com/dotnet/corefx/issues/18973 When refactoring from netcore50 to uap and netcore50aot in: https://github.com/dotnet/corefx/pull/16704 this was changed from netcore50aot to uap instead of uapaot. +21382 area-Infrastructure Add Outerloop tests to daily helix test runs for Uap and UapAot Currently we are not running Outerloop tests for uap and uapaot in our daily runs. cc: @danmosemsft @tijoytom @joshfree +21384 area-Infrastructure [Arm64/Unix] Add ARM64 Native builds to CI +21385 area-Infrastructure Enable uap F5 arm helix runs cc: @danmosemsft @weshaggard @safern @MattGal @Chrisboh Adding UWP F5 ARM runs in helix. I have submitted a private run to make sure this works as expected and although the run hasn't finished, things look promising(so far 110791 tests pass, 33 failures) Correlation ID for my private job is 97552c7b-36f4-48e5-98ba-9f0ef4bcdab7 +21386 area-System.Runtime SystemNative_SysConf Regression on Ubuntu 17.04 After further investigation of a bug that first manifested with powershell on Ubuntu 17.04, I have noticed that the SysConf method in System.Native is in some way allowing input that triggers its assertion. Running powershell in fact triggers this assertion immediately. +21389 area-System.Runtime Reenable System.Runtime.Interop.Test on ILC. Fix just went in. +21391 area-System.Net System.Net.Sockets.Tests.LoggingTest failed with TargetInvocationException in ILC mode Can't find related issue. Please close it if there is a dup. Type: System.Net.Sockets.Tests.LoggingTest+<>c Method: Int32 b__1_0() ``` Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Xunit.Sdk.InRangeException: Assert.InRange() Failure Range: (1 - 2147483647) Actual: 0 at Xunit.Assert.InRange(Int32 actual, Int32 low, Int32 high, Collections.Generic.IComparer comparer) at Xunit.Assert.InRange(Int32 actual, Int32 low, Int32 high) at System.Net.Sockets.Tests.LoggingTest.<>c.b__1_0() at RemoteExecutorConsoleApp!+0xc5ce7a at RemoteExecutorConsoleApp!+0xa77023 at RemoteExecutorConsoleApp!+0xa76e23 --- End of inner exception stack trace --- at RemoteExecutorConsoleApp!+0xa76f6f at RemoteExecutorConsoleApp!+0xdbf53d at RemoteExecutorConsoleApp!+0xda481c at RemoteExecutorConsoleApp.Program.Main(String[] args) Unhandled Exception: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Xunit.Sdk.InRangeException: Assert.InRange() Failure Range: (1 - 2147483647) Actual: 0 at Xunit.Assert.InRange(Int32 actual, Int32 low, Int32 high, Collections.Generic.IComparer comparer) at Xunit.Assert.InRange(Int32 actual, Int32 low, Int32 high) at System.Net.Sockets.Tests.LoggingTest.<>c.b__1_0() at RemoteExecutorConsoleApp!+0xc5ce7a at RemoteExecutorConsoleApp!+0xa77023 at RemoteExecutorConsoleApp!+0xa76e23 --- End of inner exception stack trace --- at RemoteExecutorConsoleApp!+0xa76f6f at RemoteExecutorConsoleApp!+0xdbf53d at RemoteExecutorConsoleApp!+0xda481c at RemoteExecutorConsoleApp.Program.Main(String[] args) at RemoteExecutorConsoleApp.Program.Main(String[] args) at RemoteExecutorConsoleApp!+0x7a1065 at RemoteExecutorConsoleApp!+0x7d7920 System.Net.Sockets.Tests.LoggingTest.EventSource_EventsRaisedAsExpected [FAIL] Assert.Equal() Failure Expected: 42 Actual: 255 Stack Trace: at xunit.console.netcore!+0xb5a139 at System.Net.Sockets.Tests.LoggingTest.EventSource_EventsRaisedAsExpected() at xunit.console.netcore!+0xc82347 at xunit.console.netcore!+0xa9f193 at xunit.console.netcore!+0xa9ef93 ``` +21392 area-System.IO Update NamedPipe tests to inject \LOCAL\ in the paths for UAP so they can be reenabled for UAP Uap has some access restrictions when creating a NamedPipe, we are still figuring out with the Windows guys how should we do this and through which Win Api. So we need to tweak this tests to pass for uap as they apparently can only create local named pipes to within the app container package location. I will disable this tests against this issue. cc: @danmosemsft @JeremyKuhne +21393 area-System.Net ClientWebSocket doesn't support client certificates in UWP "The current UWP implementation of ClientWebSocket.ConnectAsync (see [WinRTWebSocket](https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WinRTWebSocket.cs)) ignores the _ClientCertificates_ member of the app-provided _ClientWebSocketOptions_. This makes it impossible to establish connections with WSS endpoints that require mutual TLS authentication, which is blocking WCF scenarios in UWP. I'll be sending out a PR in the near future with a ""repro test"" (disabled for UAP) and will be working on fixing this shortcoming. Note that .NET Core also lacks support for client certificates during ClientWebSocket.ConnectAsync, but that falls outside of the scope of this issue." +21394 area-System.Net UWP Sockets Functional test work I have finished final check for Sockets Functional test. Besides, we are not able to remove dependencies on `ContextAwareResult.Uap.cs` and `CompletionPortHelper.Uap.cs`. They are important components for Sockets synchronous completion support. +21395 area-System.Memory String-like extension methods to ReadOnlySpan Epic As we look to support more efficient parsing/formatting/usage of `ReadOnlySpan` as slices of System.Strings, we're planning to add a variety of APIs across corefx that operate with `ReadOnlySpan` (https://github.com/dotnet/corefx/issues/21281). But for such APIs to be truly useful, and for `ReadOnlySpan` to be generally helpful as a string-like type, we need a set of extension methods on `ReadOnlySpan` that mirror the corresponding operations on string, e.g. Equals with various kinds of string comparisons, Trim, Replace, etc. We need to define, implement, test, and ship a core set of these (more can of course be added in the future), e.g. **Edit by @ahsonkhan - Updated APIs:** ```C# // All these do ordinal comparisons, and hence do not rely on StringComparison, and can live in System.Memory.dll public static class MemoryExtensions { // If we decide to add overloads to Trim in the future that are non-ordinal and take StringComparison // (similar to https://github.com/dotnet/corefx/issues/1244), they will be .NET Core specific. public static ReadOnlySpan Trim(this ReadOnlySpan span); public static ReadOnlySpan Trim(this ReadOnlySpan span, char trimChar); public static ReadOnlySpan Trim(this ReadOnlySpan span, ReadOnlySpan trimChars); public static ReadOnlySpan TrimStart(this ReadOnlySpan span); public static ReadOnlySpan TrimStart(this ReadOnlySpan span, char trimChar); public static ReadOnlySpan TrimStart(this ReadOnlySpan span, ReadOnlySpan trimChars); public static ReadOnlySpan TrimEnd(this ReadOnlySpan span); public static ReadOnlySpan TrimEnd(this ReadOnlySpan span, char trimChar); public static ReadOnlySpan TrimEnd(this ReadOnlySpan span, ReadOnlySpan trimChars); public static bool IsWhiteSpace(this ReadOnlySpan span); public static bool Remove(this ReadOnlySpan source, int startIndex, int count, Span destination); // Does exactly what string does today, i.e. ordinal, case-sensitive, culture-insensitive comparison public static bool Replace(this ReadOnlySpan source, ReadOnlySpan oldValue, ReadOnlySpan newValue, Span destination, out int bytesWritten); // To me, these are complementary to the Trim APIs and hence we should add them. public static bool PadLeft(this ReadOnlySpan source, int totalWidth, Span destination); public static bool PadLeft(this ReadOnlySpan source, int totalWidth, Span destination, char paddingChar); public static bool PadRight(this ReadOnlySpan source, int totalWidth, Span destination); public static bool PadRight(this ReadOnlySpan source, int totalWidth, Span destination, char paddingChar); } // Live in CoreLib and only available on .NET Core, exposed from System.Memory.dll // Atm, this class in corelib is called 'Span' and contains the .NET Core specific implementation of the extension methods public static class MemoryExtensions { public static bool Equals(this ReadOnlySpan span, ReadOnlySpan value, StringComparison comparison); public static int Compare(this ReadOnlySpan span, ReadOnlySpan value, StringComparison comparison); public static bool Contains(this ReadOnlySpan span, ReadOnlySpan value, StringComparison comparison); public static bool StartsWith(this ReadOnlySpan span, ReadOnlySpan value, StringComparison comparison); public static bool EndsWith(this ReadOnlySpan span, ReadOnlySpan value, StringComparison comparison); public static bool Replace(this ReadOnlySpan source, ReadOnlySpan oldValue, ReadOnlySpan newValue, StringComparison comparison, Span destination, out int bytesWritten); public static bool ToUpper(this ReadOnlySpan source, Span destination); public static bool ToUpper(this ReadOnlySpan source, Span destination, CultureInfo culture); public static bool ToUpperInvariant(this ReadOnlySpan source, Span destination); public static bool ToLower(this ReadOnlySpan source, Span destination); public static bool ToLower(this ReadOnlySpan source, Span destination, CultureInfo culture); public static bool ToLowerInvariant(this ReadOnlySpan source, Span destination); } ```
Original Proposal ```C# public static class SpanExtensions { public static ReadOnlySpan Trim(this ReadOnlySpan span); public static bool Equals(this ReadOnlySpan source, ReadOnlySpan value, StringComparison comparison); public static int Compare(this ReadOnlySpan source, ReadOnlySpan value, StringComparison comparison); public static bool StartsWith(this ReadOnlySpan source, ReadOnlySpan value, StringComparison comparison); public static ReadOnlySpan Remove(this ReadOnlySpan source, int startIndex, int count); // this will need to allocate if any chars are removed from the middle ... } ```
+21397 area-System.Diagnostics Disable StartInfo_TextFile_ShellExecute on Win8 Relates to https://github.com/dotnet/corefx/issues/20388 The feature works but for some reason (see issue) the shell association for .txt is not right on our images (works fine on new VM). Meanwhile, disabling for Win8 only. +21401 area-Infrastructure Error running UAP tests in clean repo: The Appx package's manifest is invalid. In the log, immediately after the linking stuff ``` Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. Cannot create a file when that file already exists. 1 file(s) copied. Got manifest file appxmanifest.xml FAILED 0x80080204 (The Appx package's manifest is invalid. ) The system cannot find the file specified. The system cannot find the file specified. The system cannot find the file specified. Finished running tests. End time= 9:31:39.88, Exit code = 1 ``` I'm running `msbuild /T:RebuildAndTest /P:TargetGroup=uap` Has anyone seen this before? +21403 area-System.Net Fix HttpClientHandler PreAuthenticate property for UAP "The HttpClientHandler for UAP does not properly implement the PreAuthenticate property. This is because on UAP, HttpClientHandler is built on the WinRT APIs which in turn are built on WinInet. And WinInet always uses authentication caching internally and this results in the net effect of PreAuthenticate always being ""true"". The default for .NET Framework and .NET Core (non-UAP) is ""false"". When this property was first added to .NET Core 1.1, the UAP version defaulted to true and the setter would throw PNSE. As part of .NET Core 2.0, API surface for networking APIs was expanded. This resulted in HttpWebRequest exposing and implementing a ""PreAuthenticate"" property, which is what it has historically done in .NET Framework. On .NET Core, HttpWebRequest is built on top of HttpClient. And so, HttpWebRequest was enhanced in .NET Core 2.0 to set the default of PreAuthenticate to false. But this later caused the PNSE exception to surface and this exception was caught in UWP app-compat testing. Essentially, we had now created the default HttpWebRequest to always throw an exception. So, in PR #18105, the PNSE in HttpClientHandler.PreAuthenticate was commented out and thus the setter became a no-op. This PR basically acknowledges this situation and removes the TODO from this change. Since there is no good way to implement the actual HttpClientHandler.PreAuthenticate property, I left the getter default to return ""true"" which is closer to reality of what happens on UAP (even though this default value is different from .NET Framework or the rest of .NET Core). And, in terms of the setter for the property, I opted to leave it as a no-op. This seems like the best compromise outcome for now and will generate less distraction for developers rather than throwing an exception all the time. The rest of this PR moves the ActiveIssue's from the class level to the method level as part of eventually solving all of them. In addition, I added a new test case to validate the HttpClientHandler constructor defaults that are different on the UAP platform. Fixes #18104" +21404 area-System.Runtime "Test: System.Tests.EnvironmentTests/FailFast_ExpectFailureExitCode failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Tests.EnvironmentTests/FailFast_ExpectFailureExitCode` has failed. response.Status = Failure\r Expected: True\r Actual: False Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, RemoteInvokeOptions options) at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(Func`1 method, RemoteInvokeOptions options) at System.Tests.EnvironmentTests.FailFast_ExpectFailureExitCode() Build : Master - 20170623.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170623.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.EnvironmentTests~2FFailFast_ExpectFailureExitCode +21406 area-Meta Provide APIs from WIndows IoT Extensions as .NET Core To enable .NET Core to be platform, which run on any device, it is necessary to provide support for diverse IoT scenarios. For example, we already have a set of APIs related to BLE, various sensors and GPIO. They all are implemented as a part of Windows IoT Extensions and unfortunately available for UWP only. How about implementing them as native .NET Core API and integrating them as standard ? #See also: https://github.com/dotnet/standard/issues/358 +21409 area-Meta Convert Assert.Throws to AssertExtensions.Throws across corefx I'm working on this now, as per @danmosemsft suggestion. There are a couple of places where I'd like to seek clarification: - ICollection tests: collections have different param names. is it worth adding an extensibility point for param names? @ianhays +21410 area-System.Runtime AppDomain.ProcessExit_Called failed as Appdomain ProcessExit did not fire +21415 area-System.Runtime Several Environment_Exit tests fail on UAP "Crashing at remote end but currently we don't get console output. ``` b__1_0 0\r\n\r\nReturned Error code: 0\r\nExpected: True\r\nActual: False]]> b__1_0 1\r\n\r\nReturned Error code: 1\r\nExpected: True\r\nActual: False]]> b__1_0 -1\r\n\r\nReturned Error code: -1\r\nExpected: True\r\nActual: False]]> b__1_0 -45\r\n\r\nReturned Error code: -45\r\nExpected: True\r\nActual: False]]> b__1_0 255\r\n\r\nReturned Error code: 255\r\nExpected: True\r\nActual: False]]> ```" +21420 area-System.Runtime "Test: System.Tests.DoubleTests/ToString(d: -1,79769313486232E+308, format: \""G\"", provider: null, expected: \""-1.79769313486232E+308\"") failed with ""Xunit.Sdk.EqualException""" "Opened on behalf of @Jiayili1 The test `System.Tests.DoubleTests/ToString(d: -1,79769313486232E+308, format: \""G\"", provider: null, expected: \""-1.79769313486232E+308\"")` has failed. Assert.Equal() Failure\r ? (pos 2)\r Expected: -1.79769313486232E+308\r Actual: -1,79769313486232E+308\r ? (pos 2) Stack Trace: at System.Tests.DoubleTests.<>c__DisplayClass16_0.b__0() at System.Tests.Helpers.PerformActionWithCulture(CultureInfo culture, Action test) at System.Tests.DoubleTests.ToString(Double d, String format, IFormatProvider provider, String expected) Build : Master - 20170623.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170623.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.DoubleTests~2FToString(d:%20-1,79769313486232E+308,%20format:%20%5C%22G%5C%22,%20provider:%20null,%20expected:%20%5C%22-1.79769313486232E+308%5C%22)" +21421 area-System.Runtime "Test: System.Tests.LazyTests/Serialization_RefType failed with ""System.Runtime.Serialization.SerializationException""" Opened on behalf of @Jiayili1 The test `System.Tests.LazyTests/Serialization_RefType` has failed. System.Runtime.Serialization.SerializationException : Type 'System.Lazy`1[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]' in Assembly 'System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(Type type) at System.Runtime.Serialization.FormatterServices.<>c.b__5_0(MemberHolder mh) at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) at System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Boolean check) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph) at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterHelpers.Clone[T](T obj) at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterHelpers.Clone[T](Lazy`1 lazy) at System.Tests.LazyTests.Serialization_RefType() Build : Master - 20170623.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170623.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.LazyTests~2FSerialization_RefType +21422 area-System.Security "Test: System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/Rc4AndCngWrappersDontMixTest failed with ""Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The request is not supported""" Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/Rc4AndCngWrappersDontMixTest` has failed. Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : The request is not supported Stack Trace: at System.Security.Cryptography.Pkcs.EnvelopedCms.DecryptContent(RecipientInfoCollection recipientInfos, X509Certificate2Collection extraStore) at System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(X509Certificate2Collection extraStore) at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.Rc4AndCngWrappersDontMixTest() Build : Master - 20170623.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170623.01/workItem/System.Security.Cryptography.Pkcs.Tests/analysis/xunit/System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests~2FRc4AndCngWrappersDontMixTest +21424 area-System.Xml "Test: System.Xml.Tests.TC_SchemaSet_Add_URL/bug298991Choice(size: 5000, xsdFileName: \""5000c.xsd\"") failed with ""System.UnauthorizedAccessException""" "Opened on behalf of @Jiayili1 The test `System.Xml.Tests.TC_SchemaSet_Add_URL/bug298991Choice(size: 5000, xsdFileName: \""5000c.xsd\"")` has failed. System.UnauthorizedAccessException : Access to the path 'C:\\dotnetbuild\\work\\1cd97244-3cc5-4c55-8ff2-b9c00ad0c880\\Work\\977a282c-c7b8-4392-a807-03a6359163c7\\Unzip\\5000c.xsd' is denied. Stack Trace: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.Xml.Tests.TC_SchemaSet_Add_URL.GenerateChoiceXsdFile(Int32 size, String xsdFileName) at System.Xml.Tests.TC_SchemaSet_Add_URL.bug298991Choice(Int32 size, String xsdFileName) Build : Master - 20170623.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170623.01/workItem/System.Xml.XmlSchemaSet.Tests/analysis/xunit/System.Xml.Tests.TC_SchemaSet_Add_URL~2Fbug298991Choice(size:%205000,%20xsdFileName:%20%5C%225000c.xsd%5C%22)" +21425 area-System.Globalization "Test: System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern/CurrencyNegativePattern_Get(locale: \""fa-IR\"") failed with ""Xunit.Sdk.ContainsException""" "Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern/CurrencyNegativePattern_Get(locale: \""fa-IR\"")` has failed. Assert.Contains() Failure Not found: 8 In value: Int32[] [1, 0] Stack Trace: Build : Master - 20170623.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170623.01/workItem/System.Globalization.Tests/analysis/xunit/System.Globalization.Tests.NumberFormatInfoCurrencyNegativePattern~2FCurrencyNegativePattern_Get(locale:%20%5C%22fa-IR%5C%22)" +21426 area-System.Globalization "Test: System.Globalization.Tests.RegionInfoPropertyTests/MiscTest failed with ""Xunit.Sdk.EqualException""" "Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.RegionInfoPropertyTests/MiscTest(lcid: 1037, geoId: 117, currencyEnglishName: \""Israeli New Shekel\"", alternativeCurrencyEnglishName: \""Israeli New Sheqel\"", currenc...` has failed. Assert.Equal() Failure ? (pos 1) Expected: ??? Actual: ??? ??? ? (pos 1) Stack Trace: at System.Globalization.Tests.RegionInfoPropertyTests.MiscTest(Int32 lcid, Int32 geoId, String currencyEnglishName, String alternativeCurrencyEnglishName, String currencyNativeName, String threeLetterISORegionName, String threeLetterWindowsRegionName) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Globalization/tests/RegionInfo/RegionInfoTests.Properties.cs:line 119 Build : Master - 20170623.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170623.01/workItem/System.Globalization.Tests/analysis/xunit/System.Globalization.Tests.RegionInfoPropertyTests~2FMiscTest(lcid:%201037,%20geoId:%20117,%20currencyEnglishName:%20%5C%22Israeli%20New%20Shekel%5C%22,%20alternativeCurrencyEnglishName:%20%5C%22Israeli%20New%20Sheqel%5C%22,%20currenc..." +21427 area-System.IO "Tests under: System.IO.Compression.Tests.ZipFileTest_ConvenienceMethods failed with ""Xunit.Sdk.TrueException'" Opened on behalf of @Jiayili1 The test `System.IO.Compression.Tests.ZipFileTest_ConvenienceMethods/ExtractToDirectoryExtension_Unicode` has failed. Assert.True() Failure Expected: True Actual: False Stack Trace: at System.IO.Compression.Tests.ZipFileTest_ConvenienceMethods.ExtractToDirectoryExtension_Unicode() in /Users/buildagent/agent/_work/45/s/corefx/src/System.IO.Compression.ZipFile/tests/ZipFileConvenienceMethods.cs:line 184 Build : Master - 20170623.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170623.01/workItem/System.IO.Compression.ZipFile.Tests/analysis/xunit/System.IO.Compression.Tests.ZipFileTest_ConvenienceMethods~2FExtractToDirectoryExtension_Unicode +21429 area-System.Net System.Net.Http.CurlException: SSL peer certificate or SSH remote key was not OK This exception only occurs in docker image microsoft/dotnet:1.1.2-runtime but not in microsoft/dotnet:1.1.2-runtime-nanoserver. Codes are the same. Our company is using GeoTrust G3 WildCart sign. +21430 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test/SetDelegate_ConnectionSucceeds failed with ""System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation.""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test/SetDelegate_ConnectionSucceeds(acceptedProtocol: None, requestOnlyThisProtocol: False)` has failed. System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. ---- System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 991 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 838 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 809 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 978 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 881 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 694 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 611 at System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 161 at System.Net.Security.SslStream.<>c__DisplayClass35_0.b__0(AsyncCallback callback, Object state) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 257 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) at System.Net.Test.Common.LoopbackServer.d__9.MoveNext() in /Users/buildagent/agent/_work/45/s/corefx/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 109 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.<>c__DisplayClass1_0.<b__0>d.MoveNext() in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.AcceptAllCerts.cs:line 46 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in /Users/buildagent/agent/_work/45/s/corefx/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 58 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.d__1.MoveNext() in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.AcceptAllCerts.cs:line 44 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at Internal.Cryptography.Pal.SecTrustChainPal.ParseResults(SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs:line 248 at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs:line 210 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs:line 581 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs:line 118 at System.Net.Http.TLSCertificateExtensions.BuildNewChain(X509Certificate2 certificate, Boolean includeClientApplicationPolicy) in /Users/buildagent/agent/_work/45/s/corefx/src/Common/src/System/Net/Http/TlsCertificateExtensions.cs:line 78 at System.Net.SafeDeleteSslContext.SetCertificate(SafeSslHandle sslContext, X509Certificate2 certificate) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/Pal.OSX/SafeDeleteSslContext.cs:line 290 at System.Net.SafeDeleteSslContext.CreateSslContext(SafeFreeSslCredentials credential, Boolean isServer) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/Pal.OSX/SafeDeleteSslContext.cs:line 100 at System.Net.SafeDeleteSslContext..ctor(SafeFreeSslCredentials credential, Boolean isServer) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/Pal.OSX/SafeDeleteSslContext.cs:line 54 at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired, String targetName) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamPal.OSX.cs:line 238 Build : Master - 20170623.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170623.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20None,%20requestOnlyThisProtocol:%20False) +21431 area-System.Net "Tests under: System.Net.Security.Tests failed with ""System.Security.Authentication.AuthenticationException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.ServerAsyncAuthenticateTest/ServerAsyncAuthenticate_AllClientVsIndividualServerSupportedProtocols_Success(serverProtocol: Tls)` has failed. System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. ---- System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 991 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 838 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 809 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 978 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 881 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 694 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 611 at System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 161 at System.Net.Security.SslStream.<>c__DisplayClass35_0.b__0(AsyncCallback callback, Object state) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 257 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/tests/FunctionalTests/ServerAsyncAuthenticateTest.cs:line 154 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__9.MoveNext() in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/tests/FunctionalTests/ServerAsyncAuthenticateTest.cs:line 95 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at Internal.Cryptography.Pal.SecTrustChainPal.ParseResults(SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs:line 248 at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs:line 210 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs:line 581 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs:line 118 at System.Net.Http.TLSCertificateExtensions.BuildNewChain(X509Certificate2 certificate, Boolean includeClientApplicationPolicy) in /Users/buildagent/agent/_work/45/s/corefx/src/Common/src/System/Net/Http/TlsCertificateExtensions.cs:line 78 at System.Net.SafeDeleteSslContext.SetCertificate(SafeSslHandle sslContext, X509Certificate2 certificate) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/Pal.OSX/SafeDeleteSslContext.cs:line 290 at System.Net.SafeDeleteSslContext.CreateSslContext(SafeFreeSslCredentials credential, Boolean isServer) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/Pal.OSX/SafeDeleteSslContext.cs:line 100 at System.Net.SafeDeleteSslContext..ctor(SafeFreeSslCredentials credential, Boolean isServer) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/Pal.OSX/SafeDeleteSslContext.cs:line 54 at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired, String targetName) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamPal.OSX.cs:line 238 Build : Master - 20170623.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170623.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.ServerAsyncAuthenticateTest~2FServerAsyncAuthenticate_AllClientVsIndividualServerSupportedProtocols_Success(serverProtocol:%20Tls) +21432 area-System.Net Test failure: System.Net.Security.Tests.SslStreamStreamToStreamTest_Async/SslStream_StreamToStream_Successive_ClientWrite_Async_Success Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.SslStreamStreamToStreamTest_Async/SslStream_StreamToStream_Successive_ClientWrite_Async_Success` has failed. System.AggregateException : One or more errors occurred. (VirtualNetwork: Timeout reading the next frame.) (A call to SSPI failed, see inner exception.) ---- System.TimeoutException : VirtualNetwork: Timeout reading the next frame. ---- System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. -------- System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. Stack Trace: at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Net.Security.Tests.SslStreamStreamToStreamTest_Async.DoHandshake(SslStream clientSslStream, SslStream serverSslStream) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/tests/FunctionalTests/SslStreamStreamToStreamTest.cs:line 391 at System.Net.Security.Tests.SslStreamStreamToStreamTest.d__7.MoveNext() in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/tests/FunctionalTests/SslStreamStreamToStreamTest.cs:line 202 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace #1 (System.TimeoutException) ----- at System.Net.Test.Common.VirtualNetwork.ReadFrame(Boolean server, Byte[]& buffer) in /Users/buildagent/agent/_work/45/s/corefx/src/Common/tests/System/Net/VirtualNetwork/VirtualNetwork.cs:line 39 at System.Net.Test.Common.VirtualNetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count) in /Users/buildagent/agent/_work/45/s/corefx/src/Common/tests/System/Net/VirtualNetwork/VirtualNetworkStream.cs:line 119 at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.FixedSizeReader.d__1.MoveNext() in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/FixedSizeReader.cs:line 56 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 728 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) ----- Inner Stack Trace #2 (System.Security.Authentication.AuthenticationException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 991 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 838 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 809 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 978 at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 1140 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 728 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) ----- Inner Stack Trace ----- at Internal.Cryptography.Pal.SecTrustChainPal.ParseResults(SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs:line 248 at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs:line 210 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs:line 581 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs:line 118 at System.Net.Http.TLSCertificateExtensions.BuildNewChain(X509Certificate2 certificate, Boolean includeClientApplicationPolicy) in /Users/buildagent/agent/_work/45/s/corefx/src/Common/src/System/Net/Http/TlsCertificateExtensions.cs:line 78 at System.Net.SafeDeleteSslContext.SetCertificate(SafeSslHandle sslContext, X509Certificate2 certificate) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/Pal.OSX/SafeDeleteSslContext.cs:line 290 at System.Net.SafeDeleteSslContext.CreateSslContext(SafeFreeSslCredentials credential, Boolean isServer) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/Pal.OSX/SafeDeleteSslContext.cs:line 100 at System.Net.SafeDeleteSslContext..ctor(SafeFreeSslCredentials credential, Boolean isServer) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/Pal.OSX/SafeDeleteSslContext.cs:line 54 at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired, String targetName) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamPal.OSX.cs:line 238 Build : Master - 20170623.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170623.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.SslStreamStreamToStreamTest_Async~2FSslStream_StreamToStream_Successive_ClientWrite_Async_Success +21433 area-System.Runtime "Tests under: System.Tests.TimeZoneInfoTests failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Tests.TimeZoneInfoTests/ConvertTime_DateTimeOffset_NearMinMaxValue` has failed. Error: Expected value '01/01/0001 00:00:00' but got '01/01/0001 00:03:00', input value is '01/01/0001 18:00:00', Source TimeZone: Australia/Sydney, Dest. Time Zone: America/Los_Angeles Expected: True Actual: False Stack Trace: at System.Tests.TimeZoneInfoTests.VerifyConvert(DateTime inputTime, String sourceTimeZoneId, String destinationTimeZoneId, DateTime expectedTime) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Runtime/tests/System/TimeZoneInfoTests.cs:line 1923 at System.Tests.TimeZoneInfoTests.ConvertTime_DateTimeOffset_NearMinMaxValue() in /Users/buildagent/agent/_work/45/s/corefx/src/System.Runtime/tests/System/TimeZoneInfoTests.cs:line 187 Build : Master - 20170623.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170623.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.TimeZoneInfoTests~2FConvertTime_DateTimeOffset_NearMinMaxValue +21434 area-System.Net System.Net.WebSockets failed with Segfault on Ubuntu 16.10 [xUnit] [ERROR] - No test reports found for the metric 'xUnit.Net' with the resolved pattern 'bin/**/testResults.xml'. Configuration error?. detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu16.10_release/87/consoleFull#136046166483554902-aff0-4799-9e92-0ada24ce2a06 +21435 area-System.Security "Tests under: System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests failed with ""Interop+AppleCrypto+AppleCommonCryptoCryptographicException""" Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests/DecryptKnownECB192` has failed. Interop+AppleCrypto+AppleCommonCryptoCryptographicException : The system cryptographic library returned error '-4305' of type 'CCCryptorStatus' Stack Trace: at Internal.Cryptography.AppleCCCryptor.ProcessInteropError(Int32 functionReturnCode, Int32 ccStatus) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/AppleCCCryptor.cs:line 222 at Internal.Cryptography.AppleCCCryptor.Reset() in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/AppleCCCryptor.cs:line 201 at Internal.Cryptography.AppleCCCryptor.TransformFinal(Byte[] input, Int32 inputOffset, Int32 count) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/AppleCCCryptor.cs:line 65 at Internal.Cryptography.UniversalCryptoDecryptor.UncheckedTransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) in /Users/buildagent/agent/_work/45/s/corefx/src/Common/src/Internal/Cryptography/UniversalCryptoDecryptor.cs:line 91 at Internal.Cryptography.UniversalCryptoTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount) in /Users/buildagent/agent/_work/45/s/corefx/src/Common/src/Internal/Cryptography/UniversalCryptoTransform.cs:line 101 at System.Security.Cryptography.CryptoStream.FlushFinalBlock() in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.Primitives/src/System/Security/Cryptography/CryptoStream.cs:line 113 at System.Security.Cryptography.CryptoStream.Dispose(Boolean disposing) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.Primitives/src/System/Security/Cryptography/CryptoStream.cs:line 564 at System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests.TestAesDecrypt(CipherMode mode, Byte[] key, Byte[] iv, Byte[] encryptedBytes, Byte[] expectedAnswer) in /Users/buildagent/agent/_work/45/s/corefx/src/Common/tests/System/Security/Cryptography/AlgorithmImplementations/AES/AesCipherTests.cs:line 578 Build : Master - 20170623.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170623.01/workItem/System.Security.Cryptography.Algorithms.Tests/analysis/xunit/System.Security.Cryptography.Encryption.Aes.Tests.AesCipherTests~2FDecryptKnownECB192 +21436 area-System.Security "No test results generated under ""System.Security.Cryptography.X509Certificates.Tests """ "No test results generated under ""System.Security.Cryptography.X509Certificates.Tests "" Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170623.01/workItem/System.Security.Cryptography.X509Certificates.Tests/wilogs ~~~ 2017-06-22 17:30:06,710: INFO: proc(54): run_and_log_output: Output: Discovering: System.Security.Cryptography.X509Certificates.Tests 2017-06-22 17:30:07,588: INFO: proc(54): run_and_log_output: Output: Discovered: System.Security.Cryptography.X509Certificates.Tests 2017-06-22 17:30:07,738: INFO: proc(54): run_and_log_output: Output: Starting: System.Security.Cryptography.X509Certificates.Tests 2017-06-22 17:30:09,731: INFO: proc(54): run_and_log_output: Output: Warning: unable to build chain to self-signed root for signer ""(null)"" System.Security.Cryptography.X509Certificates.Tests.ChainTests.BuildChainExtraStoreUntrustedRoot [FAIL] 2017-06-22 17:30:09,734: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. 2017-06-22 17:30:09,742: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-06-22 17:30:09,920: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(248,0): at Internal.Cryptography.Pal.SecTrustChainPal.ParseResults(SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) 2017-06-22 17:30:09,921: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(210,0): at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) 2017-06-22 17:30:09,922: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(581,0): at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 2017-06-22 17:30:09,922: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs(118,0): at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) 2017-06-22 17:30:09,923: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs(222,0): at System.Security.Cryptography.X509Certificates.Tests.ChainTests.BuildChainExtraStoreUntrustedRoot() 2017-06-22 17:30:10,768: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyExpiration_LocalTime(verificationTime: 2014-10-14T23:59:59.0000000Z, shouldBeValid: False, kind: Utc) [FAIL] 2017-06-22 17:30:10,768: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. 2017-06-22 17:30:10,769: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-06-22 17:30:10,769: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(248,0): at Internal.Cryptography.Pal.SecTrustChainPal.ParseResults(SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) 2017-06-22 17:30:10,769: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(210,0): at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) 2017-06-22 17:30:10,770: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(581,0): at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 2017-06-22 17:30:10,771: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs(118,0): at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) 2017-06-22 17:30:10,771: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs(288,0): at System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyExpiration_LocalTime(DateTime verificationTime, Boolean shouldBeValid, DateTimeKind kind) 2017-06-22 17:30:10,855: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyExpiration_LocalTime(verificationTime: 2014-10-14T16:59:59.0000000-07:00, shouldBeValid: False, kind: Local) [FAIL] 2017-06-22 17:30:10,855: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. 2017-06-22 17:30:10,855: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-06-22 17:30:10,856: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(248,0): at Internal.Cryptography.Pal.SecTrustChainPal.ParseResults(SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) 2017-06-22 17:30:10,856: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(210,0): at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) 2017-06-22 17:30:10,857: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(581,0): at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 2017-06-22 17:30:10,858: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs(118,0): at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) 2017-06-22 17:30:10,858: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs(288,0): at System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyExpiration_LocalTime(DateTime verificationTime, Boolean shouldBeValid, DateTimeKind kind) 2017-06-22 17:30:10,884: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.X509Certificates.Tests.CertTests.TestVerify [FAIL] 2017-06-22 17:30:10,884: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. 2017-06-22 17:30:10,884: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-06-22 17:30:10,885: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(248,0): at Internal.Cryptography.Pal.SecTrustChainPal.ParseResults(SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) 2017-06-22 17:30:10,885: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(210,0): at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) 2017-06-22 17:30:10,886: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(581,0): at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 2017-06-22 17:30:10,886: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs(118,0): at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) 2017-06-22 17:30:10,886: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Certificate2.cs(626,0): at System.Security.Cryptography.X509Certificates.X509Certificate2.Verify() 2017-06-22 17:30:10,887: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/tests/CertTests.cs(103,0): at System.Security.Cryptography.X509Certificates.Tests.CertTests.TestVerify() 2017-06-22 17:30:10,938: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyExpiration_LocalTime(verificationTime: 2014-10-14T16:59:59.0000000, shouldBeValid: False, kind: Unspecified) [FAIL] 2017-06-22 17:30:10,938: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. 2017-06-22 17:30:10,939: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-06-22 17:30:10,939: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(248,0): at Internal.Cryptography.Pal.SecTrustChainPal.ParseResults(SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) 2017-06-22 17:30:10,940: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(210,0): at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) 2017-06-22 17:30:10,940: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(581,0): at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 2017-06-22 17:30:10,941: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs(118,0): at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) 2017-06-22 17:30:10,941: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs(288,0): at System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyExpiration_LocalTime(DateTime verificationTime, Boolean shouldBeValid, DateTimeKind kind) 2017-06-22 17:30:11,044: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyExpiration_LocalTime(verificationTime: 2016-10-16T00:00:00.0000000Z, shouldBeValid: False, kind: Utc) [FAIL] 2017-06-22 17:30:11,045: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. 2017-06-22 17:30:11,045: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-06-22 17:30:11,045: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(248,0): at Internal.Cryptography.Pal.SecTrustChainPal.ParseResults(SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) 2017-06-22 17:30:11,046: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(210,0): at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) 2017-06-22 17:30:11,046: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(581,0): at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 2017-06-22 17:30:11,047: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs(118,0): at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) 2017-06-22 17:30:11,047: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs(288,0): at System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyExpiration_LocalTime(DateTime verificationTime, Boolean shouldBeValid, DateTimeKind kind) 2017-06-22 17:30:11,202: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyExpiration_LocalTime(verificationTime: 2016-10-15T17:00:00.0000000-07:00, shouldBeValid: False, kind: Local) [FAIL] 2017-06-22 17:30:11,203: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. 2017-06-22 17:30:11,203: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-06-22 17:30:11,203: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(248,0): at Internal.Cryptography.Pal.SecTrustChainPal.ParseResults(SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) 2017-06-22 17:30:11,204: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(210,0): at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) 2017-06-22 17:30:11,204: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(581,0): at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 2017-06-22 17:30:11,205: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs(118,0): at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) 2017-06-22 17:30:11,205: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs(288,0): at System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyExpiration_LocalTime(DateTime verificationTime, Boolean shouldBeValid, DateTimeKind kind) 2017-06-22 17:30:11,302: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyExpiration_LocalTime(verificationTime: 2016-10-15T17:00:00.0000000, shouldBeValid: False, kind: Unspecified) [FAIL] 2017-06-22 17:30:11,302: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. 2017-06-22 17:30:11,302: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-06-22 17:30:11,303: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(248,0): at Internal.Cryptography.Pal.SecTrustChainPal.ParseResults(SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) 2017-06-22 17:30:11,303: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(210,0): at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) 2017-06-22 17:30:11,304: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(581,0): at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 2017-06-22 17:30:11,304: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs(118,0): at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) 2017-06-22 17:30:11,304: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs(288,0): at System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyExpiration_LocalTime(DateTime verificationTime, Boolean shouldBeValid, DateTimeKind kind) 2017-06-22 17:30:11,350: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.X509Certificates.Tests.ChainTests.BuildChain_WithApplicationPolicy_NoMatch [FAIL] 2017-06-22 17:30:11,350: INFO: proc(54): run_and_log_output: Output: System.Security.Cryptography.CryptographicException : Error occurred during a cryptographic operation. 2017-06-22 17:30:11,351: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-06-22 17:30:11,351: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(248,0): at Internal.Cryptography.Pal.SecTrustChainPal.ParseResults(SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) 2017-06-22 17:30:11,351: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(210,0): at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) 2017-06-22 17:30:11,352: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs(581,0): at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) 2017-06-22 17:30:11,352: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs(118,0): at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) 2017-06-22 17:30:11,353: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs(353,0): at System.Security.Cryptography.X509Certificates.Tests.ChainTests.BuildChain_WithApplicationPolicy_NoMatch() ~~~" +21437 area-System.Data "Test: System.Data.SqlClient.Tests.TcpDefaultForAzureTest/NonAzureNoProtocolConnectionTest failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.TcpDefaultForAzureTest/NonAzureNoProtocolConnectionTest` has failed. Expected protocol Named Pipes Provider in the error message, but received: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 40 - Could not open a connection to SQL Server)\r Expected: True\r Actual: False Stack Trace: at System.Data.SqlClient.Tests.TcpDefaultForAzureTest.CheckConnectionFailure(String connString, String protocol) at System.Data.SqlClient.Tests.TcpDefaultForAzureTest.NonAzureNoProtocolConnectionTest() at xunit.console.netcore!+0x10b2d00 at xunit.console.netcore!+0xe6c1f3 at xunit.console.netcore!+0xe6bff6 Build : Master - 20170623.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Windows.10.Amd64.ClientRS3-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170623.01/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.TcpDefaultForAzureTest~2FNonAzureNoProtocolConnectionTest +21438 area-System.Net "Test: System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest/GetAsync_RedirectResponseHasCookie_CookieSentToFinalUri failed with ""Xunit.Sdk.TrueException""" "Opened on behalf of @Jiayili1 The test `System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest/GetAsync_RedirectResponseHasCookie_CookieSentToFinalUri(cookieUsePolicy: UseSpecifiedCookieContainer, cookieName: \""cookieName...` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at xunit.console.netcore!+0xa269e9 --- End of stack trace from previous location where exception was thrown --- at xunit.console.netcore!+0x876781 at xunit.console.netcore!+0x8766ae at xunit.console.netcore!+0x876623 at xunit.console.netcore!+0x77b23a --- End of stack trace from previous location where exception was thrown --- at xunit.console.netcore!+0x876781 at xunit.console.netcore!+0x8766ae at xunit.console.netcore!+0x876623 at xunit.console.netcore!+0x8bf367 --- End of stack trace from previous location where exception was thrown --- at xunit.console.netcore!+0x876781 at xunit.console.netcore!+0x8766ae at xunit.console.netcore!+0x876623 at xunit.console.netcore!+0x8bfa05 Build : Master - 20170623.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Windows.10.Amd64.ClientRS3-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170623.01/workItem/System.Net.Http.WinHttpHandler.Functional.Tests/analysis/xunit/System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest~2FGetAsync_RedirectResponseHasCookie_CookieSentToFinalUri(cookieUsePolicy:%20UseSpecifiedCookieContainer,%20cookieName:%20%5C%22cookieName..." +21439 area-System.Runtime "Test: System.Runtime.InteropServices.RuntimeEnvironmentTests/RuntimeEnvironmentSysVersion failed with ""System.PlatformNotSupportedException""" Opened on behalf of @Jiayili1 The test `System.Runtime.InteropServices.RuntimeEnvironmentTests/RuntimeEnvironmentSysVersion` has failed. System.PlatformNotSupportedException : Operation is not supported on this platform. Stack Trace: at System.Delegate.Equals(Object obj) at System.Runtime.InteropServices.RuntimeEnvironmentTests.RuntimeEnvironmentSysVersion() at xunit.console.netcore!+0x8fc92e at xunit.console.netcore!+0x7c051c at xunit.console.netcore!+0x7c0374 Build : Master - 20170623.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170623.01/workItem/System.Runtime.InteropServices.Tests/analysis/xunit/System.Runtime.InteropServices.RuntimeEnvironmentTests~2FRuntimeEnvironmentSysVersion +21440 area-System.Runtime "Tests under: System.Runtime.InteropServices.WindowsRuntime.Tests.EventRegistrationTokenTableTests failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Runtime.InteropServices.WindowsRuntime.Tests.EventRegistrationTokenTableTests/Ctor_NonDelegateType_ThrowsInvalidOperationException` has failed. Assert.Throws() Failure\r Expected: typeof(System.InvalidOperationException)\r Actual: (No exception was thrown) Stack Trace: at System.Runtime.InteropServices.WindowsRuntime.Tests.EventRegistrationTokenTableTests.Ctor_NonDelegateType_ThrowsInvalidOperationException() at xunit.console.netcore!+0x543acf at SharedLibrary!+0x6017dc at SharedLibrary!+0x601634 Build : Master - 20170623.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170623.01/workItem/System.Runtime.InteropServices.WindowsRuntime.Tests/analysis/xunit/System.Runtime.InteropServices.WindowsRuntime.Tests.EventRegistrationTokenTableTests~2FCtor_NonDelegateType_ThrowsInvalidOperationException +21441 area-System.Runtime "Test: System.Runtime.InteropServices.WindowsRuntime.Tests.WindowsRuntimeMarshalTests/GetActivationFactory_NotExportedType_ThrowsArgumentException failed with ""System.Runtime.InteropServices.COMException""" Opened on behalf of @Jiayili1 The test `System.Runtime.InteropServices.WindowsRuntime.Tests.WindowsRuntimeMarshalTests/GetActivationFactory_NotExportedType_ThrowsArgumentException` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: typeof(System.Runtime.InteropServices.COMException): Class not registered (Exception from HRESULT: 0x80040154) Stack Trace: at SharedLibrary!+0x75670f at SharedLibrary!+0x756561 at SharedLibrary!+0x837926 at System.Runtime.InteropServices.WindowsRuntime.Tests.WindowsRuntimeMarshalTests.<>c.b__46_0() Build : Master - 20170623.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170623.01/workItem/System.Runtime.InteropServices.WindowsRuntime.Tests/analysis/xunit/System.Runtime.InteropServices.WindowsRuntime.Tests.WindowsRuntimeMarshalTests~2FGetActivationFactory_NotExportedType_ThrowsArgumentException +21442 area-System.Runtime "Test: System.Runtime.InteropServices.WindowsRuntime.Tests.WindowsRuntimeMarshalTests/RemoveAllEventHandlers_RemoveMethodHasNoTarget_Success failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Runtime.InteropServices.WindowsRuntime.Tests.WindowsRuntimeMarshalTests/RemoveAllEventHandlers_RemoveMethodHasNoTarget_Success` has failed. System.ArgumentNullException : Value cannot be null. Stack Trace: at System.Runtime.CompilerServices.ConditionalWeakTable>.TryGetValue(Windows.Input.ICommand key, Runtime.InteropServices.WindowsRuntime.EventRegistrationTokenTable& value) at SharedLibrary!+0x610b48 at SharedLibrary!+0x8372e9 at SharedLibrary!+0x837283 at System.Runtime.InteropServices.WindowsRuntime.Tests.WindowsRuntimeMarshalTests.RemoveAllEventHandlers_RemoveMethodHasNoTarget_Success() at xunit.console.netcore!+0x543acf at SharedLibrary!+0x6017dc at SharedLibrary!+0x601634 Build : Master - 20170623.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170623.01/workItem/System.Runtime.InteropServices.WindowsRuntime.Tests/analysis/xunit/System.Runtime.InteropServices.WindowsRuntime.Tests.WindowsRuntimeMarshalTests~2FRemoveAllEventHandlers_RemoveMethodHasNoTarget_Success +21443 area-System.Runtime Test failure: System.Tests.GCExtendedTests/TryStartNoGCRegion_SettingLatencyMode_ThrowsInvalidOperationException Opened on behalf of @Jiayili1 The test `System.Tests.GCExtendedTests/TryStartNoGCRegion_SettingLatencyMode_ThrowsInvalidOperationException` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -323331298 Stack Trace: at xunit.console.netcore!+0x9a80cc at System.Tests.GCExtendedTests.TryStartNoGCRegion_SettingLatencyMode_ThrowsInvalidOperationException() at xunit.console.netcore!+0xb81531 at SharedLibrary!+0x7626f3 at SharedLibrary!+0x7624f3 Build : Master - 20170623.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170623.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.GCExtendedTests~2FTryStartNoGCRegion_SettingLatencyMode_ThrowsInvalidOperationException +21444 area-System.Security Test failure: System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/Rc4AndCngWrappersDontMixTest Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests/Rc4AndCngWrappersDontMixTest` has failed. $BlockedFromReflection_0_fd24b54c : The request is not supported Stack Trace: at xunit.console.netcore!+0xa2cd93 at xunit.console.netcore!+0xa3ada3 at System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests.Rc4AndCngWrappersDontMixTest() at xunit.console.netcore!+0xb2fbc0 at xunit.console.netcore!+0x9d67a3 at xunit.console.netcore!+0x9d65a3 Build : Master - 20170623.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Windows.10.Amd64.ClientRS3-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170623.01/workItem/System.Security.Cryptography.Pkcs.Tests/analysis/xunit/System.Security.Cryptography.Pkcs.EnvelopedCmsTests.Tests.EdgeCasesTests~2FRc4AndCngWrappersDontMixTest +21446 area-Infrastructure [release/2.0.0] Update buildtools +21447 area-Serialization Release/2.0.0 ObservableCollection serializiation compat with Json.NET Waiting for shiproom approval cc @justinvp @JamesNK +21448 area-System.IO Disable System.IO.FileSystem NamedPipe for UAP This cleans System.IO.FileSystem in UAP. +21449 area-System.IO Disable System.IO.Pipes.AccessControl.Tests for UAP Disabling NamedPipes tests. This cleans System.IO.Pipes,AccessControl.Tests in UAP. +21451 area-System.Drawing [porting] ToolboxBitmapAttribute throws StackOverflowException when all params are null The following code just completes successfully with netfx. In .NET Core, it throws a StackOverflowException ```cs var attribute = new ToolboxBitmapAttribute((string)null); attribute.GetImage(null, null, false); ``` +21452 area-System.Net Productize ManagedHandler for HttpClient We've checked in a prototype C# implementation of an HttpClientHandler. But there's lots of work left to do on it. - [x] Get all existing tests passing. - [ ] Add lots of additional protocol-related tests - [x] Add support for digest auth - [ ] Add support for NTLM auth - [ ] Add support for Negotiate auth - [x] Add better connection pooling support - [ ] Add HTTP/2 support - [ ] Add support for environment variables recognized by existing handlers - [ ] Lots of fit and finish - [x] Perf - [ ] Perf - [ ] Perf - [ ] Perf - [ ] ... you get the idea - [ ] Determine if/how it should be shipped initially +21454 area-System.Drawing Fix embedded resources in System.Drawing.Common Fixes #21451 Fixes #21310 I've added tests for ToolboxBitmapAttribute with this PR, as they failed before for a similar reason to #21310 +21457 area-System.Drawing Add EncoderParameter tests for System.Drawing.Common.Imaginig for #20711 Hi little chunk of tests for Imiaginig part. In EncoderParameterTests Ive used AnyEncoder propertie to inform that the value of this parameter in a particular case is irrelevant. What do you think about that, good or not. In our company we are using something like Autofixture for this case. +21458 area-System.Net Some more miscellaneous ManagedHandler cleanup - Consolidate lots of individual WriteCharAsync calls, and change some others to avoid unnecessary checks - Switch some unnecessary `ValueTask`s to just be `Task` cc: @geoffkizer +21459 area-System.Net System.Net.Ping assumes fixed size IPv4 header for Unix "When [SendIcmpEchoRequestOverRawSocket()](https://github.com/dotnet/corefx/blob/master/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs#L43) is used for ping in Linux, it assumes size of IPv4 header is fixed 20 bytes at [Ping.Unix.cs:19](https://github.com/dotnet/corefx/blob/master/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs#L19). In reality, size of IPv4 header can vary from 20 bytes to 60 bytes. Therefore `SendIcmpEchoRequestOverRawSocket()` works incorrectly when IPv4 header is larger than 20 bytes and fails to find a correct echoed packet due to wrong interpretation of a received packet. This failure is observed when running `System.Net.Ping.Functional.Tests.dll` on environment where IPv4 header is larger than 20 bytes and 12 tests are failed as below. ``` ``` I'm not expert in network implementation and looking forward any advice and comments on this issue. " +21460 area-System.Security [release/2.0] Fix temp keychain lifetime with macOS CopyWithPrivateKey Because macOS is the only platform that doesn't allow ephemeral keys to be associated with certificates we have a straightforward-yet-complex temporary keychain management system. In the new CopyWithPrivateKey methods, we end up messing with the refcounts and deleting too early because the input certificate got mutated by the call -- it believes it belongs to the keychain, even though it was subsequently removed from it. So when that cert handle disposes we DangerousRelease our shared lifetime handle even though we never did a DangerousAddRef. Since the new method is supposed to have no lasting side effects, and we've found one, change to use the Windows PAL approach: first clone the cert to disassociate it from mutation operations. The existing tests noticed this problem, which got the incorrect fix of a persisted field for the private key. But since PFX exporting is done within the keychain itself, if the keychain was deleted PFX export isn't possible. With the addition of PFX export tests from CopyWithPrivateKey we now have better ways of tracking that the keychain isn't deleted too early. Port of https://github.com/dotnet/corefx/pull/21334 to release/2.0 Fixes #20272. +21461 area-System.Net Align param name for Windows and Unix for Socket.Select Mentioned in #21409 +21462 area-System.Net Fix Ping.Unix.cs to handle various size of IPv4 header correctly Fix #21459 Size of IP header for IPv4 varies from 20 bytes to 60 bytes. +21464 area-System.Runtime Add misc tests for System.Runtime.InteropServices Final one in the Runtime.InteropServices backlog that can now be sent in without merge conflicts +21465 area-System.Runtime Fix System.Runtime.InteropServices.Tests from crashing in uap System.Runtime.InteropServices are crashing in uap with error: ``` System.IO.FileLoadException: Could not load file or assembly 'System.Runtime.InteropServices.Tests, Version=4.2.1.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb'. Operation is not supported. (Exception from HRESULT: 0x80131515) File name: 'System.Runtime.InteropServices.Tests, Version=4.2.1.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb' ---> System.NotSupportedException: A Primary Interop Assembly is not supported in AppX. ``` @yizhang82 explained: _PrimaryInteropAssemblyAttributeTests.cs has PrimaryInteropAssemblyAttribute in it which makes the entire test assembly a PrimaryInteropAssembly that can’t be loaded under AppX. This test needs to be disabled under AppX and also excluded from build._ With this change they run fine but there are 7 tests failing with error: ``` System.Runtime.InteropServices.Tests.ComAwareEventInfoTests.AddEventHandler_NullSourceTypeEventInterface_ThrowsNullReferenceException [FAIL] System.Runtime.InteropServices.COMException : Creating an instance of the COM component with CLSID {7B9E38B0-A97C-11D0-8534-00C04FD8D503} using CoCreateInstanceFromApp failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). Please make sure your COM object is in the allowe d list of CoCreateInstanceFromApp. ``` @yizhang82 once my PR is merged could you take a look? Or should this tests be disabled? @weshaggard is this the best way to exclude it from the build or is there a better way than adding a build configuration? cc: @danmosemsft @tijoytom +21466 area-System.Net Add ClientWebSocket client certificate test Adding new test case that pins the UWP shortcoming tracked by issue #21393. This test case requires [special setup](https://github.com/dotnet/corefx/blob/master/src/Common/tests/System/Net/Prerequisites/README.md) that is checked inside its ConditionalFact attribute. I've confirmed that it consistently passes in .NET Framework test runs and fails in UWP and .NET Core test runs (as expected). I'll enable it for UWP as part of the #21393 fix. Contributes to #21393 +21468 area-Serialization Removing serialization tests for lazy as we stripped the type from th… …e serialization bucket and it won't come back soon. Before I just disabled them with an ActiveIssue but it's better to remove them completely (Stephen also suggested that back then). Fixes https://github.com/dotnet/corefx/issues/21421 cc @danmosemsft +21469 area-System.Net Fix WebHeaderCollection for UAPAOT Change some Assert.Throws into AssertExtensions.Throws. This is needed since UAPAOT (via the ILC.EXE compiler) strips out strings for the parameter names for the exceptions that are thrown. Using the AssertExtensions class automatically knows not to look for parameter names to compare when on UAPAOT platform. Fixes #20465 +21470 area-System.Runtime Fixed System.Runtime.Extensions uap/uapaot/netfx tests (combined with Viktor's PR) Contributes to: https://github.com/dotnet/corefx/issues/18718 This is resolving conflicts with mostly overlapping changes with @danmosemsft's PR: https://github.com/dotnet/corefx/pull/21412 I've left original PR for comparison: https://github.com/dotnet/corefx/pull/19866 We might want to revert changes to src/System.Runtime.Extensions/tests/System/AppDomainTests.cs cc: @ViktorHofer Testing in progress so may fail CI +21471 area-System.Runtime Convert System.Runtime.Tests to use RemoteInvoke when changing CurrentCulture Fixes the flakiness in System.Runtime.Tests in UWP F5. That was caused by some tests changing CurrentCulture in the same process, so it could observe wrong value at times. cc: @tarekgh +21472 area-System.IO Add CopyToAsync with Func overload to Stream ## Latest proposal ```c# public abstract class Stream { public virtual void CopyTo(ReadOnlySpanAction callback, object state, int bufferSize); public virtual Task CopyToAsync(Func, CancellationToken, Task> callback, object state, int bufferSize, CancellationToken cancellationToken); ... } ``` See https://github.com/dotnet/corefx/issues/21472#issuecomment-321669769 for details. ## Original Proposal Today `Stream` as `CopyToAsync` which acts more like a write operation than a read operation but it can also be used as a way to have a `Stream` push data to a consumer. Instead of forcing people to write a dummy `Stream` implementation that handles incoming data on `WriteAsync`, a callback could be provided to get the data that `Stream` has to hand out. API shape: ```C# public class Stream { public Task CopyToAsync(Func, Task> callback, object state); public Task CopyToAsync(Func, CancellationToken, Task> callback, CancellationToken cancellationToken, object state); public Task CopyToAsync(Func, CancellationToken, Task> callback, Int32 bufferSize, CancellationToken cancellationToken, object state); } ``` The underlying implementation would just have a dummy stream that forwarded to callback on calls to `WriteAsync`: ```C# CopyToAsync(new InternalCopyToAsyncStream(callback, state), bufferSize, cancellationToken); ``` /cc @stephentoub +21474 area-System.Xml Some Xml OuterLoop tests are failing because files are not found "
``` Discovering: System.Xml.XmlSchemaSet.Tests Discovered: System.Xml.XmlSchemaSet.Tests Starting: System.Xml.XmlSchemaSet.Tests System.Xml.Tests.TC_SchemaSet_Add_URL.bug298991Sequence(size: 1000, xsdFileName: \""1000s.xsd\"") [FAIL] System.IO.FileNotFoundException : Could not find file 'd:\corefx4\bin\Windows_NT.AnyCPU.Debug\System.Xml.XmlSch emaSet.Tests\netcoreapp\1000s.xsd'. Stack Trace: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 buffe rSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 buffe rSize) d:\corefx4\src\System.Private.Xml\src\System\Xml\XmlDownloadManager.cs(26,0): at System.Xml.XmlDownloadManag er.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy) d:\corefx4\src\System.Private.Xml\src\System\Xml\XmlUrlResolver.cs(62,0): at System.Xml.XmlUrlResolver.GetEn tity(Uri absoluteUri, String role, Type ofObjectToReturn) d:\corefx4\src\System.Private.Xml\src\System\Xml\Core\XmlTextReaderImpl.cs(633,0): at System.Xml.XmlTextRead erImpl.FinishInitUriString() d:\corefx4\src\System.Private.Xml\src\System\Xml\Core\XmlTextReaderImpl.cs(611,0): at System.Xml.XmlTextRead erImpl..ctor(String uriStr, XmlReaderSettings settings, XmlParserContext context, XmlResolver uriResolver) d:\corefx4\src\System.Private.Xml\src\System\Xml\Core\XmlReaderSettings.cs(422,0): at System.Xml.XmlReaderSe ttings.CreateReader(String inputUri, XmlParserContext inputContext) d:\corefx4\src\System.Private.Xml\src\System\Xml\Core\XmlReader.cs(1771,0): at System.Xml.XmlReader.Create(S tring inputUri, XmlReaderSettings settings, XmlParserContext inputContext) d:\corefx4\src\System.Private.Xml\src\System\Xml\Core\XmlReader.cs(1761,0): at System.Xml.XmlReader.Create(S tring inputUri, XmlReaderSettings settings) d:\corefx4\src\System.Private.Xml\src\System\Xml\Schema\XmlSchemaSet.cs(333,0): at System.Xml.Schema.XmlSche maSet.Add(String targetNamespace, String schemaUri) d:\corefx4\src\System.Private.Xml\tests\XmlSchema\XmlSchemaSet\TC_SchemaSet_Add_URL.cs(377,0): at System.Xml .Tests.TC_SchemaSet_Add_URL.verifyXsd(String file) d:\corefx4\src\System.Private.Xml\tests\XmlSchema\XmlSchemaSet\TC_SchemaSet_Add_URL.cs(395,0): at System.Xml .Tests.TC_SchemaSet_Add_URL.bug298991Sequence(Int32 size, String xsdFileName) System.Xml.Tests.TC_SchemaSet_Add_URL.bug298991Choice(size: 5000, xsdFileName: \""5000c.xsd\"") [FAIL] System.IO.FileNotFoundException : Could not find file 'd:\corefx4\bin\Windows_NT.AnyCPU.Debug\System.Xml.XmlSch emaSet.Tests\netcoreapp\5000c.xsd'. Stack Trace: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 buffe rSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 buffe rSize) d:\corefx4\src\System.Private.Xml\src\System\Xml\XmlDownloadManager.cs(26,0): at System.Xml.XmlDownloadManag er.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy) d:\corefx4\src\System.Private.Xml\src\System\Xml\XmlUrlResolver.cs(62,0): at System.Xml.XmlUrlResolver.GetEn tity(Uri absoluteUri, String role, Type ofObjectToReturn) d:\corefx4\src\System.Private.Xml\src\System\Xml\Core\XmlTextReaderImpl.cs(633,0): at System.Xml.XmlTextRead erImpl.FinishInitUriString() d:\corefx4\src\System.Private.Xml\src\System\Xml\Core\XmlTextReaderImpl.cs(611,0): at System.Xml.XmlTextRead erImpl..ctor(String uriStr, XmlReaderSettings settings, XmlParserContext context, XmlResolver uriResolver) d:\corefx4\src\System.Private.Xml\src\System\Xml\Core\XmlReaderSettings.cs(422,0): at System.Xml.XmlReaderSe ttings.CreateReader(String inputUri, XmlParserContext inputContext) d:\corefx4\src\System.Private.Xml\src\System\Xml\Core\XmlReader.cs(1771,0): at System.Xml.XmlReader.Create(S tring inputUri, XmlReaderSettings settings, XmlParserContext inputContext) d:\corefx4\src\System.Private.Xml\src\System\Xml\Core\XmlReader.cs(1761,0): at System.Xml.XmlReader.Create(S tring inputUri, XmlReaderSettings settings) d:\corefx4\src\System.Private.Xml\src\System\Xml\Schema\XmlSchemaSet.cs(333,0): at System.Xml.Schema.XmlSche maSet.Add(String targetNamespace, String schemaUri) d:\corefx4\src\System.Private.Xml\tests\XmlSchema\XmlSchemaSet\TC_SchemaSet_Add_URL.cs(377,0): at System.Xml .Tests.TC_SchemaSet_Add_URL.verifyXsd(String file) Finished: System.Xml.XmlSchemaSet.Tests d:\corefx4\src\System.Private.Xml\tests\XmlSchema\XmlSchemaSet\TC_SchemaSet_Add_URL.cs(408,0): at System.Xml .Tests.TC_SchemaSet_Add_URL.bug298991Choice(Int32 size, String xsdFileName) ```
cc: @sepidehMS " +21476 area-Serialization reenable ref emit for xml serializer in UAP Fixes: https://github.com/dotnet/corefx/issues/21292 Related to: https://github.com/dotnet/corefx/pull/20783 +21481 area-System.IO WinRtToNetFxStreamAdapter.Flush seems to be blocked when waiting for WinRT stream's FlushAsync Hi, we are seeing an issue where an in app that uses the WinRT StreamSocket API to implement a webserver and listens/responds to connection requests. The issue we are seeing is the app (acting as the webserver) stops responding because there are 500 worker threads accumulated over time that are hanging, which reached the threadpool limit for the process. We noticed that the hanging threads all have an identical stack, which shows that WinRtToNetFxStreamAdapter.Flush is calling the WinRTStream's flushASync and waiting forever for it. However on the WinRT side, the FlushAsync seems to be completing if called outside of the .NET context. We further noticed that this only repros with Debug build of the app, either using F5 debug or a standalone debug build without the debugger attached. On release builds, the issue does not repro. I have the repro app. Please email me when needed and I'll send you the zip. +21482 area-System.Net Escape '\' on Unix file uris to '%5C' for canonical form. On Unix it is valid for filenames to have char '\\'. According to URI RFC, on the wire, the backslash needs to be in percent-encoded form as %5C. Hence we are converting all '\\' and '%5C' in unix file uris to be '%5C' in Uri.AbsolutePath and Uri.AbsoluteUri. These return the canonical URI values. Also note, the Uri.LocalPath will return these unescaped as before. Fixes #20628 cc @tmds @CIPop @wfurt @karelz +21483 area-System.Console [RS5] Reenable Console tests related to OutputEncoding ``` kernel32!SetConsoleOutputCP kernel32!GetConsoleOutputCP ``` are currently not available on UAP but are on RS3, reenable once this is available I believe our CIs already use RS3 although most of the people don't so let's keep them disabled until this works locally too +21486 area-System.Net UWP work for S.N.NetworkInformation Completely removed dependencies on WinRT implementation. Fix: #20014 #9675 #17992 #17993 #19314 +21489 area-System.Threading System.Threading.Tasks.Tests.TaskRtTests_Core.RunTaskWaitAllTests [FAIL] I'm hitting this test failure in multiple flavors while running outerloop tests as part of #21466: - OuterLoop netcoreapp Windows_NT Release x64 ([results](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_release_prtest/29/)) - OuterLoop netcoreapp Windows_NT Debug x64 ([results](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_debug_prtest/134/)) - OuterLoop netcoreapp Ubuntu16.10 Debug x64 ([results](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu16.10_debug_prtest/20/)) - OuterLoop netcoreapp OSX10.12 Debug x64 ([results](https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_osx_debug_prtest/56/)) > MESSAGE: > Assert.Equal() Failure\nExpected: (null)\nActual: tasks > +++++++++++++++++++ > STACK TRACE: > at System.AssertExtensions.Throws[T](String paramName, Action action) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_osx_debug_prtest/src/Common/tests/System/AssertExtensions.cs:line 48 at System.Threading.Tasks.Tests.TaskRtTests_Core.RunTaskWaitAllTests() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_osx_debug_prtest/src/System.Threading.Tasks/tests/Task/TaskRtTests_Core.cs:line 1326 +21491 area-Meta Convert Assert.Throws to AssertExtensions This one was a little easier :D Contributes to #21409 +21492 area-System.Drawing Cleanup Bitmap/Icon Now that these classes are well tested we can clean them up a bit +21503 area-Infrastructure QUESTION: Enabling New OS for CoreFX "Currently working on the CoreFX section of [this issue](https://github.com/dotnet/core-setup/issues/1651) and I've parsed the following issues for information… - dotnet/corefx#6770 - - dotnet/coreclr#917 (specifically [this comment](https://github.com/dotnet/coreclr/issues/917#issuecomment-229827373)) …but need additional clarification/information: 1. Are there published (gist or issue) steps for what is needed for a PR enabling CoreFX for a new platform? 2. Should I be able to generate Android-specific nuget packages for CoreFX as an end goal or is there additional work needed? 3. The main user doing the bulk of the work to bring up CoreFX/dotnet for Alpine was deleted; is there an Alpine ""team"" or maintainer whom I could contact? 4. Who are the maintainers for packaging and other bits of the CoreFX repo (I'll create a PR for a CODE_OWNERS.TXT file along the lines of [this](https://github.com/dotnet/coreclr/blob/master/CODE_OWNERS.TXT) with the info provided) cc @janvorli, @jkotas and @schellap " +21507 area-Serialization BinaryFormatter - Reenable sanity check 1. DataSet and DataTable produced different blobs on Unix machines as their serialized payload contains line breaks: \r\n vs \n. 2. CookieContainer sets the machines domain to a field. Overwrote with reflection. 3. CompareInfo sets a SortVersion which is Windows OS machine dependent. Overwrote with reflection. 4. CookieCollection didn't contain a serializable field (m_version) probably because it was wrapped in pragmas and had its default value but only in CI, locally it was in the payload. The serialized value was also not 100% correct as the value should be the amount of cookies and not the default value of int. This isn't a breaking change as netfx doesn't use the value anymore for any operations. But with the change it's now always in the serialization payload. +21509 area-System.Net ManagedWebSocket needs resource strings Everything has TODO: ``` System.Net.WebSockets.WebSocketException (0x80004005): TODO, RESX: net_WebSockets_InvalidState; (CloseSent,Open, CloseReceived) at System.Net.WebSockets.WebSocketValidate.ThrowIfInvalidState(WebSocketState currentState, Boolean isDisposed, WebSocketState[] validStates) at System.Net.WebSockets.ManagedWebSocket.SendAsync(ArraySegment`1 buffer, WebSocketMessageType messageType, Boolean endOfMessage, CancellationToken cancellationToken) ``` +21510 area-System.Net HttpClientHandler.UseDefaultCredentials default value different on UAP "HttpClientHandler.UseDefaultCredentials should default to FALSE. On UAP, it is currently returning TRUE. Using default credentials on UAP also requires EnterpriseAuthentication capability on the UWP App, which is a capability that only certain approved Windows Store app developers can put onto their app. Usually this is allowed for developers with corporate Windows Store developer accounts (instead of individual). So, the flag 'UseDefaultCredentials' isn't really the only thing controlling whether default credentials actually gets sent. Also, regardless, default credentials are only sent along to endpoints that are considered ""intranet"". This is controlled automatically by the WinRT Windows.Web.Http APIs via the native Windows WinInet HTTP stack. For consistency with the other platforms, this #property should return FALSE by default. However, we already shipped the default of TRUE in prior UAP packages, so we should consider whether we should change this." +21511 area-System.Net Fix some HttpClientHandler properties for UAP Due to platform differences on UAP and the current use of WinRT APIs to implement that HTTP stack, a few properties won't have the same defaults or behavior. Similar to the decision made in PR #21403, don't throw PNSE. Instead just no-op. Fixes #18036 #17812 +21515 area-Infrastructure Can't run UAP and non UAP tests serially because wrong remoteeexcutor is used CoreFx.Private.TestUtilities.dll is target framework specific (there is a separate binary for UAP, UAPAOT, netcore, and netfx). However it gets copied only once to the test folder. So eg. if I run UAP tests for console, using /p:targetgroup=uap, I get the UAP one in my test folder: C:\git\corefx\bin\Windows_NT.AnyCPU.Debug\System.Console.Tests\netstandard\CoreFx.Private.TestUtilities.dll then if I try to run tests again, without /p:targetgroup=uap, the tests fail because it's trying to use the UAP copy of it. This binary comes from the test package (xunit.runtime.depproj) and I'm unsure how to modify that to fix it. @tarekgh / @weshaggard ? +21518 area-System.Console Fix occasional 'The data area passed to a system call is too small.' When running Console tests on one of my machines I sometimes get this error when it tries to get a console title of >1000 characters. GetConsoleTitle, is supposed to return the length of the buffer it wants, but sometimes instead it returns 0 and ERROR_INSUFFICIENT_BUFFER. I don't know why: I found mention on the web of this also. To fix this, in such a case, progressively try larger buffers until we hit our limit or it works. This makes the test pass on my laptop. Also I added +1 when we pass in the length of the StringBuilder. @JeremyKuhne pointed out (also documented [here](https://docs.microsoft.com/en-us/dotnet/framework/interop/default-marshaling-for-strings)) that .Capacity does not include the trailing null that the marshaler includes in the buffer it passes to the native call. +21520 area-Infrastructure AttributeError: DumplingConfig instance has no attribute 'dbgpath' "https://mc.dot.net/#/user/hughbe/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/a808e4f4bb61ed8002200c969d132a54769b2328/workItem/System.Runtime.InteropServices.Tests/wilogs ``` 2017-06-25 06:28:18,063: INFO: proc(54): run_and_log_output: Output: /home/helixbot/dotnetbuild/work/dd100005-e671-46fb-892b-4e743335ba82/Work/10f58f6f-862f-44af-9628-ca1652b6bf2e/Unzip/RunTests.sh: line 87: 2365 Segmentation fault (core dumped) $RUNTIME_PATH/dotnet xunit.console.netcore.exe System.Runtime.InteropServices.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapptests -notrait category=nonlinuxtests -notrait category=OuterLoop -notrait category=failing 2017-06-25 06:28:47,204: INFO: proc(54): run_and_log_output: Output: processing dump file /home/helixbot/dotnetbuild/work/dd100005-e671-46fb-892b-4e743335ba82/Work/10f58f6f-862f-44af-9628-ca1652b6bf2e/Unzip/core 2017-06-25 06:28:47,204: INFO: proc(54): run_and_log_output: Output: creating dumpling dump cf4c07f3f46a55e83f477e7c7164bcf510fa4343 2017-06-25 06:28:47,204: INFO: proc(54): run_and_log_output: Output: uploading artifact cf4c07f3f46a55e83f477e7c7164bcf510fa4343 core 2017-06-25 06:28:47,204: INFO: proc(54): run_and_log_output: Output: Traceback (most recent call last): 2017-06-25 06:28:47,204: INFO: proc(54): run_and_log_output: Output: File ""/home/helixbot/.dumpling/dumpling.py"", line 1128, in 2017-06-25 06:28:47,205: INFO: proc(54): run_and_log_output: Output: main(sys.argv) 2017-06-25 06:28:47,205: INFO: proc(54): run_and_log_output: Output: File ""/home/helixbot/.dumpling/dumpling.py"", line 1123, in main 2017-06-25 06:28:47,205: INFO: proc(54): run_and_log_output: Output: cmdProc.Process(config) 2017-06-25 06:28:47,205: INFO: proc(54): run_and_log_output: Output: File ""/home/helixbot/.dumpling/dumpling.py"", line 529, in Process 2017-06-25 06:28:47,205: INFO: proc(54): run_and_log_output: Output: self.Upload(config) 2017-06-25 06:28:47,206: INFO: proc(54): run_and_log_output: Output: File ""/home/helixbot/.dumpling/dumpling.py"", line 624, in Upload 2017-06-25 06:28:47,206: INFO: proc(54): run_and_log_output: Output: self.UploadDump(config) 2017-06-25 06:28:47,206: INFO: proc(54): run_and_log_output: Output: File ""/home/helixbot/.dumpling/dumpling.py"", line 644, in UploadDump 2017-06-25 06:28:47,206: INFO: proc(54): run_and_log_output: Output: self._triage_dump(dumpid, config.dumppath, config) 2017-06-25 06:28:47,206: INFO: proc(54): run_and_log_output: Output: File ""/home/helixbot/.dumpling/dumpling.py"", line 812, in _triage_dump 2017-06-25 06:28:47,206: INFO: proc(54): run_and_log_output: Output: if config.dbgpath is None: 2017-06-25 06:28:47,207: INFO: proc(54): run_and_log_output: Output: AttributeError: DumplingConfig instance has no attribute 'dbgpath' 2017-06-25 06:28:47,219: INFO: proc(54): run_and_log_output: Output: Trying to find crash dumps for project: System.Runtime.InteropServices.Tests 2017-06-25 06:28:47,219: INFO: proc(54): run_and_log_output: Output: Uploading dump file: /home/helixbot/dotnetbuild/work/dd100005-e671-46fb-892b-4e743335ba82/Work/10f58f6f-862f-44af-9628-ca1652b6bf2e/Unzip/core 2017-06-25 06:28:47,224: INFO: proc(54): run_and_log_output: Output: ~/dotnetbuild/work/dd100005-e671-46fb-892b-4e743335ba82/Work/10f58f6f-862f-44af-9628-ca1652b6bf2e/Unzip ``` @mellinoe " +21524 area-System.Drawing Add LinearGradientBrush tests Had this one lying around for a week or so but it can now be sent in without pesky merge conflicts +21525 area-Infrastructure Dumpling can't find dumps on some Linux distros eg suse and fedora 25. It says ` (core dumped) ` but where is it? https://mc.dot.net/#/user/danmosemsft/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/575ab2eecbb50ef3f8978cc2d6bebc13ec045002/workItem/System.Runtime.InteropServices.Tests/wilogs ``` 2017-06-25 07:52:48,811: INFO: proc(54): run_and_log_output: Output: Finished: System.Runtime.InteropServices.Tests 2017-06-25 07:52:49,390: INFO: proc(54): run_and_log_output: Output: /home/helixbot/dotnetbuild/work/38645e04-4cb5-4a56-987c-36c2682a6c9e/Work/4fa60773-8fb6-4f40-939d-c70f19566fe6/Unzip/RunTests.sh: line 87: 23380 Segmentation fault (core dumped) $RUNTIME_PATH/dotnet xunit.console.netcore.exe System.Runtime.InteropServices.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapptests -notrait category=nonlinuxtests -notrait category=OuterLoop -notrait category=failing 2017-06-25 07:52:49,430: INFO: proc(54): run_and_log_output: Output: Trying to find crash dumps for project: System.Runtime.InteropServices.Tests 2017-06-25 07:52:49,431: INFO: proc(54): run_and_log_output: Output: No new dump file was found in /home/helixbot/dotnetbuild/work/38645e04-4cb5-4a56-987c-36c2682a6c9e/Work/4fa60773-8fb6-4f40-939d-c70f19566fe6/Unzip 2017-06-25 07:52:49,433: INFO: proc(54): run_and_log_output: Output: ~/dotnetbuild/work/38645e04-4cb5-4a56-987c-36c2682a6c9e/Work/4fa60773-8fb6-4f40-939d-c70f19566fe6/Unzip 2017-06-25 07:52:49,434: INFO: proc(54): run_and_log_output: Output: Finished running tests. End time=07:52:49. Return value was 139 2017-06-25 07:52:49,436: INFO: proc(58): run_and_log_output: Exit Code: 139 ``` @mellinoe +21526 area-System.Runtime System.Runtime.InteropServices.Tests segfaulting on some Linux So far Fedora 25 and Suse https://mc.dot.net/#/user/danmosemsft/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/575ab2eecbb50ef3f8978cc2d6bebc13ec045002/workItem/System.Runtime.InteropServices.Tests/wilogs Unfortunately we aren't getting dumps. But it's happened several times on one PR. ``` 2017-06-24 23:37:59,432: INFO: proc(54): run_and_log_output: Output: Starting: System.Runtime.InteropServices.Tests 2017-06-24 23:38:00,184: INFO: proc(54): run_and_log_output: Output: /home/helixbot/dotnetbuild/work/4f944e98-7c0d-4ef5-af27-296b5e3e76a7/Work/66044e6b-eaf9-4f01-97f9-f1ffbd73a701/Unzip/RunTests.sh: line 87: 3291 Segmentation fault (core dumped) $RUNTIME_PATH/dotnet xunit.console.netcore.exe System.Runtime.InteropServices.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapptests -notrait category=nonlinuxtests -notrait category=OuterLoop -notrait category=failing 2017-06-24 23:38:00,214: INFO: proc(54): run_and_log_output: Output: Trying to find crash dumps for project: System.Runtime.InteropServices.Tests 2017-06-24 23:38:00,214: INFO: proc(54): run_and_log_output: Output: No new dump file was found in /home/helixbot/dotnetbuild/work/4f944e98-7c0d-4ef5-af27-296b5e3e76a7/Work/66044e6b-eaf9-4f01-97f9-f1ffbd73a701/Unzip ``` +21528 area-System.Net HttpClienthandler code cleanup for UAP This file had never been formatted according to CoreFx style guidelines when the code was first ported into GitHub. Now that we are doing NETStandard2.0 work, I wanted to clean up this file to avoid distractions as I add features. +21530 area-System.Data Large performance gap in SqlCommand.ExecuteNonQuery between net461 and netcoreapp "Sharing the following code on a full framework net461 Console application and a netcoreapp Console app, I am seeing huge gaps in performance when executing `SqlCommand.ExecuteNonQuery` with `SqlConnection`. It doesn't matter if I use it within a transaction or not. public async Task AddDataWithADO(int id, string name) { SqlConnection connection = this.transaction.Connection; SqlCommand command = new SqlCommand(""INSERT INTO TestTable ( Id, Name ) VALUES ( @Id, @name )"", connection, this.transaction); command.Parameters.AddWithValue(""@id"", id); command.Parameters.AddWithValue(""@name"", name); await command.ExecuteNonQueryAsync(); } When I run this on my local machine against a LocalDb, I see an average insertion time of 19.89ms in netcoreapp1.0 and 1.1. When I run the same code in full framework net461, then I see insertion times of 0.83ms. It's a shared NetStandard1.4 class library with a reference to `System.Data.SqlClient` 4.3.1. My current .Net Core runtime is 1.1.0 I was moving my Azure Functions which ran on net461 over to ASP.net Core when I saw this gap. Why is there such a huge difference in performance? I have a repro repository that you can look at here (originally thought this was [a Dapper issue](https://github.com/StackExchange/Dapper/issues/810), turned out to be ADO.Net): https://github.com/scionwest/DapperRepro/tree/ADO_net_issue You can publish the Sql database project that's in the solution to a LocaLDb and then run the two console apps to see the difference." +21531 area-System.Net Re-enable some System.Net.Mail tests for UAPAOT With the recent implementation of System.Net.NetworkInformation for UWP, we can re-enable some tests. Also, the latest plan of record for serialization support in .NET Core is such that serializing these exception types are not supported. So, removing the test for that. FYI, the actual implementation of the serialization overrides in the SmtpException class are already no-ops in the code and simply call the base method. Fixes #19604 +21532 area-System.Net Disable WinHttpHandler tests on UAP/UAPAOT System.Net.Http.WinHttpHandler is only meant for use on .NET Framework and .NET Core but not for UWP apps. Fixes #21438 +21533 area-System.Net Announcement: Networking stack - Technical roadmap See https://github.com/dotnet/designs/issues/9 +21534 area-System.ComponentModel ForeignKeyAttribute: can we have a params string[] constructor? Since C# 6, we have the `nameof` operator which makes it great to pass the names of properties, methods, types, and so forth into attributes. The `ForeignKeyAttribute`, however, requires us to pass in a comma-separated string to specify multiple property names. Could we have a new constructor that accepts a `params string[]` and performs the concatenation, so that we can cleanly use the `ForeignKeyAttribute` with `nameof` to specify multiple names? +21537 area-System.Net Add WebSocket.CreateFromConnectedStream Several corefx components pull in the internal [ManagedWebSocket implementation](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs), both System.Net.WebSockets.Client on Unix and System.Net.HttpListener on Unix, and with https://github.com/dotnet/corefx/issues/9503 the plan is to use it in System.Net.WebSockets.Client on Windows 7 as well. Plus, ASP.NET uses the same implementation, via [source cloning](https://github.com/aspnet/WebSockets/blob/dev/src/Microsoft.AspNetCore.WebSockets/Internal/fx/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs). We should stop building this multiple times and instead expose it out through an API that anyone can use to wrap an established stream for a websockets connection. ```C# public abstract class WebSocket { public static WebSocket CreateFromConnectedStream( Stream stream, bool isServer, string subprotocol, TimeSpan keepAliveInterval, int receiveBufferSize, ArraySegment? receiveBuffer = null); ... } ``` Related to https://github.com/dotnet/corefx/issues/13663#issuecomment-265879275 Related to https://github.com/dotnet/corefx/issues/21509#issuecomment-310862176 Once this is added, we can stop compiling it into the various projects and just use the exposed API. Alternative: WebSocket currently exposes the following API: ```C# [EditorBrowsable(EditorBrowsableState.Never)] public static WebSocket CreateClientWebSocket(Stream innerStream, string subProtocol, int receiveBufferSize, int sendBufferSize, TimeSpan keepAliveInterval, bool useZeroMaskingKey, ArraySegment internalBuffer) ``` We could remove that EditorBrowsable(Never) and add a corresponding CreateServerWebSocket API. Both would effectively use CreateFromConnectedStream, just with a different value for isServer. However, it's not clear we could overload the meaning of CreateClientWebSocket in corefx to be what we need, given its current semantics on desktop, in particular as on desktop it uses WPSC and is documented as such. EDIT 9/26/2017: ```C# // System.Net.WebSockets.Protocol.dll, with a netstandard2.0 build // (and subsequently specialized for netcoreapp2.1) namespace System.Net.WebSockets { public static class WebSocketProtocol { public static WebSocket CreateFromConnectedStream( Stream stream, bool isServer, string subprotocol, TimeSpan keepAliveInterval, int receiveBufferSize, int sendBufferSize, // hints as to desired size ArraySegment? buffer = null); // buffer space to use however the implementation wants } } ``` +21539 area-System.Security .net 4.6.2 signedXml.CheckSignature(); problem with rsa2 "_From @zchpit on June 21, 2017 12:24_ After upgrade to .net 4.6.2 I have problem with signedXml.CheckSignature(); with RSA2 For signing I use CryptoConfig.AddAlgorithm(typeof(RSAPKCS1SHA256SignatureDescription), ""http://www.w3.org/2001/04/xmldsig-more#rsa-sha256""); It works on my machine but don't work on test serwer. Error: System.Security.Cryptography.CryptographicException SignatureDescription could not be created for the signature algorithm supplied. at System.Security.Cryptography.Xml.SignedXml.CheckSignedInfo(AsymmetricAlgorithm key) at System.Security.Cryptography.Xml.SignedXml.CheckSignature(AsymmetricAlgorithm key) at System.Security.Cryptography.Xml.SignedXml.CheckSignatureReturningKey(AsymmetricAlgorithm& signingKey) at ePR.Biz.Security.Signature.Veryfier.EprDsigSimpleVerifier.VerifyXml(XmlDocument doc, X509Certificate2& cert) at ePR.Biz.Security.Signature.Veryfier.EprDsigSimpleVerifier.Verify(FileContentInfo fci, X509Certificate2& cert, String& stringSignature) at ePR.Biz.Security.Signature.SignatureManager.ValidateSignatureCore(ISignatureVeryfier veryfier, FileContentInfo fci) at ePR.Biz.Security.Signature.SignatureManager.ValidateSignature(XmlDocument doc) P.S. In my comuper I work as administator and run as Console App., in test serwer there is custom profile created and run as a Windows Service _Copied from original issue: Microsoft/dotnet#430_" +21540 area-System.Net Update uri correctly in BypassOnLocal_MemberData uri is always null as it is not updated. +21541 area-System.Runtime Test failure: System.Tests.StringTests/IndexOf_TurkishI on UAP Opened on behalf of @danmosemsft ``` The test `System.Tests.StringTests/IndexOf_TurkishI` has failed. RemoteExecuter: System.Runtime.Tests, Version=4.2.1.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb b__45_0 \r System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Xunit.Sdk.EqualException: Assert.Equal() Failure\r Expected: 19\r Actual: 4\r at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer)\r at System.Tests.StringTests.<>c.b__45_0()\r --- End of inner exception stack trace ---\r at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)\r at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)\r at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)\r at RunnerRemoteExecutionService.RemoteExecutor.HandleTheRequest(ValueSet message, ValueSet returnData)\r Returned Error code: -4\r Expected: True\r Actual: False Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, RemoteInvokeOptions options) at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(Func`1 method, RemoteInvokeOptions options) at System.Tests.StringTests.IndexOf_TurkishI() Build : Master - 20170626.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug ``` +21544 area-Infrastructure Update Xunit.Netcore.Extensions version to get new UapNotUapAot TFM To ingest: https://github.com/dotnet/buildtools/pull/1583 Fixes: https://github.com/dotnet/corefx/issues/20349 Thanks @danmosemsft for taking care of adding the new TFM. +21547 area-System.Text "No test result generated under ""System.Text.RegularExpressions.Tests"" on UWP F5 tests" "No test result generated under ""System.Text.RegularExpressions.Tests"" on UWP F5 tests Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170626.01/workItem/System.Text.RegularExpressions.Tests/wilogs COnfigurations: Windows.10.Amd64.ClientRS3-x86:Debug Windows.10.Arm64-arm:Debug Windows.10.Arm64-arm:Release ~~~ 2017-06-26 01:02:46,563: INFO: proc(54): run_and_log_output: Output: Got manifest file appxmanifest.xml 2017-06-26 01:02:46,611: INFO: proc(54): run_and_log_output: Output: Removing any previous installation... 2017-06-26 01:02:46,611: INFO: proc(54): run_and_log_output: Output: Installing the application... 2017-06-26 01:02:47,361: INFO: proc(54): run_and_log_output: Output: Package ID is 5cd54353-3ed7-4a6e-a72f-db349f28867c_1.0.0.0_x86__v52bfwc2c21ha 2017-06-26 01:02:47,375: INFO: proc(54): run_and_log_output: Output: Starting the application... 2017-06-26 01:02:47,375: INFO: proc(54): run_and_log_output: Output: Resolved Folder Path: C:\Users\DotNetTestRunner\AppData\Local\Packages\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\ 2017-06-26 01:02:47,625: INFO: proc(54): run_and_log_output: Output: Waiting for the application to exit... ~~~" +21548 area-System.Console "Test: NegativeTesting/OpenStandardErrorNegativeTests_Uap failed with ""Xunit.Sdk.SameException""" Opened on behalf of @Jiayili1 The test `NegativeTesting/OpenStandardErrorNegativeTests_Uap` has failed. Assert.Same() Failure\r Expected: $BlockedFromReflection_1_5dff0413 { CanRead = True, CanSeek = True, CanTimeout = False, CanWrite = True, Length = 0, ... }\r Actual: $BlockedFromReflection_0_931ac17f { CanRead = False, CanSeek = False, CanTimeout = False, CanWrite = True, Length = (throws NotSupportedException), ... } Stack Trace: at NegativeTesting.OpenStandardErrorNegativeTests_Uap() at xunit.console.netcore!+0x90f108 at xunit.console.netcore!+0x7c89ac at xunit.console.netcore!+0x7c8804 Build : Master - 20170626.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170626.01/workItem/System.Console.Tests/analysis/xunit/NegativeTesting~2FOpenStandardErrorNegativeTests_Uap +21549 area-System.Net Timeouts with SslStream are fatal [The documentation for SslStream](https://docs.microsoft.com/en-us/dotnet/api/system.net.security.sslstream?view=netcore-2.0) contains the following sentences: ``` SslStream assumes that a timeout along with any other IOException when one is thrown from the inner stream will be treated as fatal by its caller. Reusing a SslStream instance after a timeout will return garbage. An application should Close the SslStream and throw an exception in these cases. ``` Consider modifying to SslStream to treat timeouts as non-fatal, like a normal NetworkStream - there are various scenarios where network timeouts can be (relatively) normal events and reconnecting the socket after them is a heavy and unwieldy workaround. +21550 area-System.Net Consider adding SslStream.DataAvailable NetworkStream provides a [DataAvailable property](https://docs.microsoft.com/en-us/dotnet/api/system.net.sockets.networkstream.dataavailable?view=netcore-2.0#System_Net_Sockets_NetworkStream_DataAvailable) which allows non-blocking style usage by examining whether a read would block. Consider providing the same for SslStream. +21552 area-System.Drawing Add FontFamily and FontCollection tests +21554 area-System.Diagnostics System.Diagnostics.Tests.StackTraceTests failed with Xunit.Sdk.NullException detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win7_debug/96/testReport/System.Diagnostics.Tests/StackTraceTests/Ctor_SkipFrames_FNeedFileInfo_skipFrames__0__fNeedFileInfo__True_/ MESSAGE: ~~~ Assert.Null() Failure Expected: (null) Actual: D:\\j\\workspace\\outerloop_net---92764178\\src\\System.Diagnostics.StackTrace\\tests\\StackTraceTests.cs ~~~ STACK TRACE: ~~~ at System.Diagnostics.Tests.StackTraceTests.VerifyFrames(StackTrace stackTrace, Boolean hasFileInfo) in D:\j\workspace\outerloop_net---92764178\src\System.Diagnostics.StackTrace\tests\StackTraceTests.cs:line 375 at System.Diagnostics.Tests.StackTraceTests.Ctor_SkipFrames_FNeedFileInfo(Int32 skipFrames, Boolean fNeedFileInfo) in D:\j\workspace\outerloop_net---92764178\src\System.Diagnostics.StackTrace\tests\StackTraceTests.cs:line 94 ~~~ failed test: System.Diagnostics.Tests.StackTraceTests.Ctor_SkipFrames_FNeedFileInfo System.Diagnostics.Tests.StackTraceTests.Ctor_ThrownException_GetFramesReturnsExpected System.Diagnostics.Tests.StackTraceTests.Ctor_FNeedFileInfo System.Diagnostics.Tests.StackTraceTests.Ctor_Exception_SkipFrames_FNeedFileInfo System.Diagnostics.Tests.StackFrameTests.Ctor_FNeedFileInfo System.Diagnostics.Tests.StackFrameTests.Ctor_SkipFrames_FNeedFileInfo +21555 area-System.Xml "Test: CoreXml.Test.XLinq.FunctionalTests/RunTests failed with ""System.NullReferenceException""" Opened on behalf of @Jiayili1 The test `CoreXml.Test.XLinq.FunctionalTests/RunTests` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at Microsoft.Test.ModuleCore.TestException.ToString() at System.IO.TextWriter.WriteLine(Object value) at xunit.console.netcore!+0xf4b5c7 at xunit.console.netcore!+0xd52e93 at Microsoft.Test.ModuleCore.TestCase.Execute() at Microsoft.Test.ModuleCore.TestCase.Execute() at Microsoft.Test.ModuleCore.TestModule.Execute() at CoreXml.Test.XLinq.FunctionalTests.RunTests() at xunit.console.netcore!+0xe01e78 at xunit.console.netcore!+0xb43dec at xunit.console.netcore!+0xb43c44 Build : Master - 20170626.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170626.01/workItem/System.Xml.Linq.xNodeBuilder.Tests/analysis/xunit/CoreXml.Test.XLinq.FunctionalTests~2FRunTests +21556 area-System.Runtime System.Tests.Perf_String.Contains failed in CI failed test: System.Tests.Perf_String.Contains detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_centos7.1_release/89/testReport/System.Tests/Perf_String/Contains_comparisonType__CurrentCultureIgnoreCase__size___10__/ MESSAGE: ~~~ System.ArgumentException : Object of type 'System.Object[]' cannot be converted to type 'System.Int32'. ~~~ STACK TRACE: ~~~ at System.RuntimeType.TryChangeType(Object value, Binder binder, CultureInfo culture, Boolean needsSpecialCast) at System.Reflection.MethodBase.CheckArguments(Object[] parameters, Binder binder, BindingFlags invokeAttr, CultureInfo culture, Signature sig) at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.Xunit.Performance.BenchmarkTestInvoker.<>c__DisplayClass1_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.Xunit.Performance.Internal.BenchmarkIterator.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +21557 area-Infrastructure Update 'debugging using vscode' doc "The documentation on debugging using vscode is a bit out-dated and can be improved: https://github.com/dotnet/corefx/blob/master/Documentation/debugging/unix-instructions.md#using-visual-studio-code > Open the folder containing the source you want to debug in VS Code Can this be the toplevel corefx folder? Or does this need to be a folder with a csproj? Is debugging limited to source code in that folder? > set program to the full path to corerun in the test directory There is no corerun in the test directory. > set args to the command line arguments to pass to the test something like: [ ""xunit.console.netcore.exe"", "".dll"", ""-notrait"", .... ] An example launch configuration (e.g. for Linux including typical traits) would be nice." +21558 area-System.Drawing [porting] PrivateFontCollection has different argument validation in netfx and netcoreapp "```cs [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] public void AddFontFile_NullFileName_ThrowsArgumentNullException() { using (var fontCollection = new PrivateFontCollection()) { AssertExtensions.Throws(""path"", () => fontCollection.AddFontFile(null)); } } [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] public void AddFontFile_InvalidPath_ThrowsArgumentException() { using (var fontCollection = new PrivateFontCollection()) { AssertExtensions.Throws(null, () => fontCollection.AddFontFile(string.Empty)); } } [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] public void AddFontFile_NoSuchFilePath_ThrowsArgumentException() { using (var fontCollection = new PrivateFontCollection()) { Assert.Throws(() => fontCollection.AddFontFile(""fileName"")); } } [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] public void AddFontFile_LongFilePath_ThrowsPathTooLongException() { using (var fontCollection = new PrivateFontCollection()) { Assert.Throws(() => fontCollection.AddFontFile(new string('a', 261))); } } ``` These tests pass with netfx. On .NET core, they fail with: ``` Discovering: System.Drawing.Common.Tests Discovered: System.Drawing.Common.Tests Starting: System.Drawing.Common.Tests System.Drawing.Tests.BrushTests.Dispose_NoSuchEntryPoint_SilentyCatchesException [SKIP] Condition(s) not met: \""IsWindowsNanoServer\"" System.Drawing.Text.Tests.PrivateFontCollectionTests.AddFontFile_InvalidPath_ThrowsArgumentException [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: typeof(System.IO.FileNotFoundException): File not found. Stack Trace: at System.Drawing.SafeNativeMethods.Gdip.CheckStatus(Int32 status) at System.Drawing.Text.PrivateFontCollection.AddFontFile(String filename) at System.Drawing.Text.Tests.PrivateFontCollectionTests.<>c__DisplayClass3_0.b__0() System.Drawing.Text.Tests.PrivateFontCollectionTests.AddFontFile_LongFilePath_ThrowsPathTooLongException [FAIL] Assert.Throws() Failure Expected: typeof(System.IO.PathTooLongException) Actual: typeof(System.IO.FileNotFoundException): File not found. Stack Trace: at System.Drawing.SafeNativeMethods.Gdip.CheckStatus(Int32 status) at System.Drawing.Text.PrivateFontCollection.AddFontFile(String filename) at System.Drawing.Text.Tests.PrivateFontCollectionTests.<>c__DisplayClass5_0.b__0() System.Drawing.Text.Tests.PrivateFontCollectionTests.AddFontFile_NullFileName_ThrowsArgumentNullException [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentNullException) Actual: typeof(System.ArgumentException): Parameter is not valid. Stack Trace: at System.Drawing.SafeNativeMethods.Gdip.CheckStatus(Int32 status) at System.Drawing.Text.PrivateFontCollection.AddFontFile(String filename) at System.Drawing.Text.Tests.PrivateFontCollectionTests.<>c__DisplayClass2_0.b__0() System.Drawing.Printing.Tests.PageSettingsTests.Clone_Success [SKIP] Condition(s) not met: \""AnyInstalledPrinters\"" Finished: System.Drawing.Common.Tests ```" +21559 area-System.Net `SystemUri.Compare` requires query string parameters to be in the same order. "**The Issue** When comparing two URIs, we get a non-zero result if two URIs are functionally identical, but with query string parameters ordered differently. For example: ```c# var uriComponentsOptions = UriComponents.AbsoluteUri; var uriFormatOptions = UriFormat.SafeUnescaped; var stringComparisonOptions = StringComparison.OrdinalIgnoreCase; var uriX = ""https://example.com/demo?param1=abc¶m2=xyz""; var uriY = ""https://example.com/demo?param2=xyz¶m1=abc""; //calling this URI would have the same affect as calling the above var result = Uri.Compare(uriX, uriY, uriComponentsOptions, uriFormatOptions, stringComparisonOptions); //yet this returns a non-zero value ``` **Suggestion** It would be helpful if there were a value for [UriComponents](https://msdn.microsoft.com/en-us/library/7767559y(v=vs.110).aspx) called `QueryIgnoreOrder` (or equivalent), allowing the query string of the URL to be compared without taking the order of the parameters into account. **Use Case** In automated test code, sometimes we need to compare URIs to ensure the correct URI is being generated. However, we don't care about the order of the parameters there, since that has no functional impact. We could code our tests to use fixed orders, but this would mean that any change to our code which altered that order would break our unit tests, creating more work to recode those strings for no real benefit. Currently I have this scenario / have had to code a workaround where my tests sort the parameters in key order before making a comparison (see https://stackoverflow.com/questions/44751296/uri-comparer-ignoring-query-string-order/44757683#44757683); but I'd hope that this would be something offerred by the .Net framework itself, as it feels a fairly common scenario / one of the key benefits of using Uri's Compare over a string comparison. Related Method: https://github.com/dotnet/corefx/blob/7df6b74cc4aeebc86e76b5c7901a59fa7fa793f6/src/System.Private.Uri/src/System/UriExt.cs" +21560 area-System.Drawing Fix invalid icon tests Fixes #21360 Firstly, generate a random handle first - this gives us 4 billion different values of the handle instead of the 1 previously. But if we're *really* unlucky, then keep going and repeat 100 times. Quite simply, if my analysis of the cause of the issue is correct, this should never fail. +21564 area-Serialization SQLString adding missing typeforward to correctly serializable blobs … …between netfx and core This wasn't failing before during deserialization with netfx461 because we had a System.Data.Common.dll with the respective type in our runtime folder: `~\corefx\bin\testhost\netfx-Windows_NT-Debug-x64`. This was the only failing test for netfx451! +21565 area-Serialization Release/2.0.0 sanity blobs and sql string This is the last planned part of serialization changes for 2.0. ## Production code changes - CookieCollection serialization field - SqlString TypeForward attribute for enum ## Other code changes - Enable sanity check for blobs. This will help us in the future to guarantee that our defined core types stay serializable as their integrity gets tested in CI. +21566 area-System.Runtime Two fixes to System.Runtime.Tests.dll "- The already weakened interning guarantees on AoT are even weaker on multifile builds. There's more than one literal empty string. - Compare_LongString test Test is called the ""Compare_LongString"" test, not the ""CanYourTextEditorHandleRidiculouslyLongLines"" test. VS IDE testing is on the other side of the street..." +21568 area-System.Net New HttpClient API design Following the discussion here https://github.com/dotnet/designs/issues/9 there are several issues with current `HttpClient` implementation. The idea with this issue is to discuss the design of a proposed _new_ implementation and API surface for `HttpClient` as part of the original issue. Some points discussed on that issue: 1. There are 2 different implementations of `HttpClient`. One on Windows (based on WinHttp) and other on *NIX world (based on libcurl) 2. It does not release all resources right away as most of people expect by a class implementing `IDisposable` (the TCP socket still leaking for a while by default for 240s due to `TIME_WAIT` state which makes you run out of available socket connections under high load) 3. There could be a internal pool similar to what exist in `SqlConnection`. However, it would probably hit worse issues with DNS cache, since it is managed by the OS networking stack and this implementation try to be 100% managed on top of the new *Foundation* layer proposed on the previous issue. +21569 area-System.Console Fix negative testing in System.Console.Tests Fixes https://github.com/dotnet/corefx/issues/21548 Stream.Null is supposed to be deaf, dumb and mute: https://msdn.microsoft.com/en-us/library/system.io.stream.null(v=vs.110).aspx and it is across CoreCLR, Desktop and N. Also, the test disabling attributes didn't match the stated intent in the comments. +21570 area-System.Net Make NetworkStream compatible with non-blocking I/O The predominant way to perform I/O is async. However, in some scenarios non-blocking I/O (or polling) is better adapted - the ability to read or write as much as possible, along with a guarantee that the call would not block. This allows retaining a very deterministic, single-thread model where I/O occurs opportunistically where the application chooses, rather than launching an asynchronous operation that may occur in parallel with other processes, require synchronization etc. Note that non-blocking is quite a common pattern in Unix (but not in Windows, which may explain the lack of support in .NET). Non-blocking I/O is currently supported at the Socket level by setting Blocking to true, and then calling Send and Receive. However, trying to construct a NetworkStream over a non-blocking socket throws an IOException (`The operation is not allowed on a non-blocking Socket`). Note that .NET's `Stream.Write()` returns void (unlike the [Linux write system call](http://man7.org/linux/man-pages/man2/write.2.html)). This probably means that the introduction of a new API element would be required to support non-blocking *writing*. +21571 area-Infrastructure Enabling CI for UWP F5 runs cc: @weshaggard @mmitche @danmosemsft @safern Now that our UWP F5 test run is clean, we are ready for adding this CI leg for uap tests. The only thing missing now is that the actual open target queue for ClientRS2 doesn't exist yet, but should be created very soon. Once that queue is ready, this PR will be ready to merge. +21572 area-System.Net Re-enable some socket tests, and delete some dead code Re-enable tests since #21158 has been fixed. I found that there are more dead code should be removed with PR #21486. +21574 area-System.Net improve SslStream read buffering SslStream is currently reading from the underlying stream piece-wise; that is, it first does a 5 byte read to get the frame header, then a second read to get the frame body, whose size is defined in the header. This results in multiple kernel calls to receive socket data. Add some smarter read buffering logic to improve this. Now, we try to read as much as we can at once into the read buffer, and then process it until we run out of data. Contributes to #21371 @stephentoub @CIPop +21575 area-System.Runtime Fix System.Tests.Perf_String.Contains Fix #21556 +21576 area-System.Net Fix some more low-hanging fruit in ManagedHandler - Setting the Host header in the request object incurs a variety of allocations. We can skip that and just write the header directly to the output. - Rather than writing strings char by char, if the whole string fits in the output buffer, we can just store the chars rather than doing an async write for each. - Use cached header name strings, reason phrases, and some value strings, rather than always allocating a string for each - Remove several of the intermediary async methods in the handler chain (though we should really try to remove them all... SendAsync is pretty much always going to yield, so this is adding measurable allocations on every call, even if it results in cleaner code) - Use ContinueWith instead of async/await in a few places where ContinueWith results in less allocation - Clean up the ManagedHandler class a bit, including ensuring arg validation is happening the same as in CurlHandler - Fix several issues from the initial PR feedback cc: @geoffkizer +21577 area-System.Net HttpClient: Add API to change cipher suites offered in SSL/TLS handshake Depends on SslStream API proposal: #24588 Re-opening a previously closed issue (https://github.com/dotnet/corefx/issues/15157) with a supporting use case. For US government compliance (FIPS, CNSA, etc), the set of allowed ciphers over TLS is mandated. There does not seem to be any mechanism for .NET Core on Linux to adjust the cipher suite offered when using HttpClient and friends, and therefore .NET Core cannot currently be used in most government installations. This is a key blocker to adoption for us. [EDIT] Add dependency on SslStream issue by @karelz +21579 area-System.Reflection Added GetCustomAttributes method to ModuleInfo (#20345) Adds `ModuleInfo.GetCustomAttributes` method according to approved API in #20345. Closes #20345. @tmat i guess you will review :) +21580 area-System.Runtime Disable GetActivationFactory negative test on UAPAOT We dont have a way to check if a type is WinRT reliably in AOT without reflection enabling the type in question. @yizhang82 +21584 area-System.Net Fix use of Cookie.InternalSetName The System.Net.Primitives UAPAOT test run was failing in SetCookies_InvalidData_Throws. The reflection wasn't working as expected. However, this same CookieParser.cs file is included in the System.Net.HttpListener library. And that reflection was working. It seems that reflecting on a type (Cookie) from within the same library (System.Net.Primitives) doesn't work from another type in that same library (CookieParser). It turns out that we can optimize this anyways and not use reflection when the file is included directly in System.Net.Primitives. Fixes #20482 +21585 area-System.Threading ReaderWriterLockSlim.AcquireWriterLock timing out does not wake up waiting readers in uapaot related issue: #3364 cc: @kouvel corefx test ReleaseReadersWhenWaitingWriterTimesOut is hanging in uapaot test runs causing our ARM machines (which are physical machines) to hang forever. It's very possible that this issue is simply some change that was made to coreclr that fixed this and needs to be mirrored to corert. This issue is to track the work of fixing and enabling that test once its fixed. +21587 area-System.Net Remove outdated TODO in HttpClientHandler for UAP "The current behavior for .NET Core (Windows, *Nix, and UAP) is to use a default HTTP version if none or an illegal version is specified on the HttpRequestMessage.Version On .NET Framework, an exception is thrown in these cases, ""Only HTTP/1.0 and HTTP/1.1 version requests are currently supported."" This error message wouldn't make sense now anyways since HTTP/2 is supported in .NET Core. So, it is better to use a default version than to throw an exception. This difference between .NET Core and .NET Framework will be document here: https://github.com/dotnet/corefx/wiki/ApiCompat Fixes #7878" +21588 area-System.IO Read-only delete fix for Linux. Fixed error with read-only file system, non-existing files being deleted. Tested manually, automated tests in progress. cc @akoeplinger Addresses issue #21273 +21589 area-System.Drawing Standardize all XML comments in System.Drawing & minor formatting fixes "This is part of #20706 > * Clean up the formatting of the XML doc comments. They are using some defunct syntax that doesn't work or make sense anymore. > * Normalize comment style (lots of weird ""block-style"" header comments, weird comment spacing, etc.) This was a very rote cleanup. I just went through all of the files and did the following: * Change all XML comments to be of normal form, with `` tags, etc. There were a TON of comments that were empty, or just contained junk. I removed those. Others were of the correct form, but were formatted really strangely -- I fixed those up, too. * Removed duplicate comments. There were lots of comments right above the XML comment blocks which essentially said the exact same thing. I just removed these when I saw them. * Inside methods: cleaned up weird comment blocks where I saw them, deleted useless comments, empty comments, etc. * As I went, I also moved the ""using"" blocks up outside of the namespace, like all of the other files in corefx. This isn't related to the comments -- I just figured I would clean that up at the same time. There are no functional changes here. This is all code style cleanup. @hughbe @stephentoub Could you give this a quick look over? I know that it is quite large, but the changes are all very straightforward and formulaic. I've only touched comment blocks, so I don't think the entire thing needs to be examined, just a small section to make sure it looks reasonable." +21590 area-System.Drawing Delete PrintingPermission code from Drawing.Common. This code is already in S.Security.Permissions, and isn't even being compiled into the System.Drawing.Common assembly. Part of #20706 +21591 area-Infrastructure Adding Amazon Linux to the Runtime IDs I'd like to add Amazon Linux to list of Runtime IDs (RID). What are the steps to achieve this? 1. Does adding new Amazon Linux RIDs in [runtime.json](https://github.com/dotnet/corefx/blob/master/pkg/Microsoft.NETCore.Platforms/runtime.json) suffice? Are there any other steps involved? 2. The logic to create the RID string for a given Linux distro resides here in corehost [pal::get_current_os_rid_platform](https://github.com/dotnet/core-setup/blob/master/src/corehost/common/pal.unix.cpp#L295) , is that correct? @Petermarcu, this is based on the discussion you and @normj had at NDC Oslo. +21594 area-System.Console Reenable some console tests on rs3 Fixes: https://github.com/dotnet/corefx/issues/21483 +21595 area-System.Net Enable some System.Net.Requests tests for UAP/UAPAOT Tests that use RemoteExecutor are now working on both UAP and UAPAOT. Contributes to #20136 +21597 area-System.IO "Test: System.IO.FileSystem.DriveInfoTests.DriveInfoUnixTests/PropertiesOfValidDrive failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.IO.FileSystem.DriveInfoTests.DriveInfoUnixTests/PropertiesOfValidDrive` has failed. Assert.Equal() Failure Expected: Fixed Actual: Unknown Stack Trace: at System.IO.FileSystem.DriveInfoTests.DriveInfoUnixTests.PropertiesOfValidDrive() in /Users/buildagent/agent/_work/78/s/corefx/src/System.IO.FileSystem.DriveInfo/tests/DriveInfo.Unix.Tests.cs:line 67 Build : Master - 20170627.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170627.01/workItem/System.IO.FileSystem.DriveInfo.Tests/analysis/xunit/System.IO.FileSystem.DriveInfoTests.DriveInfoUnixTests~2FPropertiesOfValidDrive +21598 area-System.Data Test failure: System.Data.SqlClient.Tests.SqlConnectionBasicTests/IntegratedAuthConnectionTest Opened on behalf of @danmosemsft The test `System.Data.SqlClient.Tests.SqlConnectionBasicTests/IntegratedAuthConnectionTest` has failed. System.DllNotFoundException : Unable to load DLL 'sni.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) Stack Trace: at System.Data.SqlClient.SNINativeMethodWrapper.UnmanagedIsTokenRestricted(IntPtr token, Boolean& isRestricted) at System.Data.Win32NativeMethods.IsTokenRestrictedWrapper(IntPtr token) at System.Data.ProviderBase.DbConnectionPoolIdentity.GetCurrent() at System.Data.ProviderBase.DbConnectionPoolGroup.GetConnectionPool(DbConnectionFactory connectionFactory) at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPool(DbConnection owningObject, DbConnectionPoolGroup connectionPoolGroup) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at System.Data.SqlClient.Tests.SqlConnectionBasicTests.IntegratedAuthConnectionTest() Build : Master - 20170627.01 (UWP F5 Tests) Failing configurations: - Windows.10.Arm64-arm - Release +21600 area-System.Net Fix unhandled exception when UWP ClientWebSocket loses connection to server "The UWP implementation of ClientWebSocket uses WinRT MessageWebSocket APIs internally. If a connection-related or message-processing failure occurs, WinRT raises a MessageReceived event that throws an exception containing the failure's details when GetDataReader() is called. Unfortunately, ClientWebSocket isn't handling those exceptions inside its MessageReceived event handler, so they end up bringing down the entire process. These changes add basic handling of GetDataReader() exceptions. They also contain a new functional test that pins the current behavior of all ClientWebSocket implementations around the ""connection is prematurely closed"" scenario. Without the proposed product code changes, this new test case reproduces the crash tracked by #17317. Fixes #17317" +21602 area-System.Runtime String IndexOf and LastIndexOf in CoreRT do not support InvariantCulture/InvariantCultureIgnoreCase "Opened on behalf of @Jiayili1 The test `System.Tests.StringTests/Contains(s: \""Hello\"", value: \""ELL\"", comparisonType: InvariantCulture, expected: False)` has failed. System.ArgumentException : NotSupported_StringComparison. For more information, visit http://go.microsoft.com/fwlink/?LinkId=623485 Stack Trace: at xunit.console.netcore!+0xbddaa4 at System.Tests.StringTests.Contains(String s, String value, StringComparison comparisonType, Boolean expected) at xunit.console.netcore!+0xcdb431 at xunit.console.netcore!+0xc8aa25 at xunit.console.netcore!+0xc8a7ae Build : Master - 20170627.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170627.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.StringTests~2FContains(s:%20%5C%22Hello%5C%22,%20value:%20%5C%22ELL%5C%22,%20comparisonType:%20InvariantCulture,%20expected:%20False)" +21605 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandlerTest/GetAsync_IPBasedUri_Success(address: ::1) failed with ""System.Net.Http.CurlException : Couldn't connect to server""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/GetAsync_IPBasedUri_Success(address: ::1)` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.CurlException : Couldn't connect to server Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() in /Users/buildagent/agent/_work/108/s/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 462 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.<>c__DisplayClass28_0.<b__0>d.MoveNext() in /Users/buildagent/agent/_work/108/s/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs:line 226 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in /Users/buildagent/agent/_work/108/s/corefx/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 58 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__28.MoveNext() in /Users/buildagent/agent/_work/108/s/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs:line 224 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) in /Users/buildagent/agent/_work/108/s/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 641 at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) in /Users/buildagent/agent/_work/108/s/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs:line 875 Build : 2.0.0 - 20170627.01 (Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170627.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FGetAsync_IPBasedUri_Success(address:%20::1) +21609 area-System.Threading "Test: System.Threading.Tests.MutexTests/Ctor_TryCreateGlobalMutexTest_Uwp failed with ""System.AggregateException""" Opened on behalf of @Jiayili1 The test `System.Threading.Tests.MutexTests/Ctor_TryCreateGlobalMutexTest_Uwp` has failed. System.AggregateException : One or more errors occurred. (Assert.Throws() Failure\r Expected: typeof(System.UnauthorizedAccessException)\r Actual: (No exception was thrown))\r ---- Assert.Throws() Failure\r Expected: typeof(System.UnauthorizedAccessException)\r Actual: (No exception was thrown) Stack Trace: at System.Threading.Tests.ThreadTestHelpers.<>c__DisplayClass5_0.b__1() at System.Threading.Tests.ThreadTestHelpers.<>c__DisplayClass3_0.b__2() at System.Threading.Tests.ThreadTestHelpers.RunTestInBackgroundThread(Action test) at System.Threading.Tests.MutexTests.Ctor_TryCreateGlobalMutexTest_Uwp() at xunit.console.netcore!+0xba9b67 at xunit.console.netcore!+0xa24333 at xunit.console.netcore!+0xa24133 ----- Inner Stack Trace ----- at System.Threading.Tests.MutexTests.<>c.b__6_0() at System.Threading.Tests.ThreadTestHelpers.<>c__DisplayClass3_0.b__0() Build : Master - 20170627.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170627.01/workItem/System.Threading.Tests/analysis/xunit/System.Threading.Tests.MutexTests~2FCtor_TryCreateGlobalMutexTest_Uwp +21612 area-System.Net reuse httpclient failed on windows. "The following code works fine under full framework and Linux, but failed on windows .net core. csproj: ```xml Exe netcoreapp2.0 ``` Program.cs ```csharp using System; using System.Net.Http; using System.Threading.Tasks; namespace HttpClientIssue { class Program { static void Main(string[] args) { Run().Wait(); Console.Read(); } static async Task Run() { HttpClient client = new HttpClient() { BaseAddress = new Uri(""http://www.github.com"") }; await client.PostAsXmlAsync("""", new object()); await client.PostAsXmlAsync("""", new object()); } } } ``` Exception: Unhandled Exception: System.AggregateException: One or more errors occurred. (Error while copying content to a stream.) ---> System.Net.Http.HttpRequestException: Error while copying content to a stream. ---> System.IO.IOException: The write operation failed, see inner exception. ---> System.Net.Http.WinHttpException: The connection with the server was terminated abnormally ![image](https://user-images.githubusercontent.com/1818225/27579992-34be4366-5ade-11e7-82a0-a2e56e493ab3.png) please see the screenshot of fiddler, it seems there are some bytes left in the request stream buffer that cause the second request header parsing failed. System.Net.Http.Formatting.dll include many useful extension methods of HttpClient which has not been include in corefx. The aspnetwebstack project is not maintained. But i think corefx should be able to fix this issue as these code works well on Linux. " +21613 area-System.Xml XmlNodeReader not wotking Please, what is an alternative for using xmlNodeReader as it is not working at the moment for .net core? +21614 area-System.Data wrong implementation of the try pattern ? "Hi, I've just stumbled across the following code. ``` if (_state != State.Running) { Bid.PoolerTrace("" %d#, DbConnectionInternal State != Running.\n"", ObjectID); connection = null; return true; } ``` This is an snippet from the **TryGetConnection** method of class **DbConnectionPool** and I would expect a return value _false_ if the connection is null. " +21615 area-Meta Suggestion: Partner with SlickEdit I recently evaluated the SlickEdit code editor and was totally blown by its speed and feature-set. I installed it inside a VM running Ubuntu Desktop with 4GB ram/2 proc and honestly I couldn't sense a VM environment in any way. I highly recommend the team reach out and discuss .NET Core support. It would be super to have it as an additional cross-platform editor alongside other offerings like JetBrains Rider. https://www.slickedit.com +21616 area-System.Drawing Add Pen tests +21618 area-System.Collections Reenable EnumeratePastEndThenModify collection test Fixes #1170 (is already closed but the code was never cleaned up) According to the changes in MSDN accessing the `Enumerator.Current` after the collection is modified does not result in an exception. Therefore changing the test. +21619 area-System.Linq Reenable ConstantExpressions csharp test which was temporarily disabled Test was temporarily disabled. Reenabling. +21620 area-System.Collections Reenabling equality comparers tests after corert src change Fixes https://github.com/dotnet/corert/issues/1736 Passes locally for me. +21622 area-System.Security X509Chain doesn't detect cert with invalid signature on Ubuntu, properly detected on Windows I'm working UACTT test cases for the https://github.com/OPCFoundation/UA-.NETStandardLibrary. (VS2017 15.2/Ubuntu dotnet-dev-1.0.4) This is a cert with invalid signature: [opcuactt_incorrectsign.zip](https://github.com/dotnet/corefx/files/1105376/opcuactt_incorrectsign.zip) ``` // setup policy chain X509ChainPolicy policy = new X509ChainPolicy(); policy.RevocationFlag = X509RevocationFlag.EntireChain; policy.RevocationMode = X509RevocationMode.NoCheck; policy.VerificationFlags = X509VerificationFlags.NoFlag; // build chain. X509Chain chain = new X509Chain(); chain.ChainPolicy = policy; chain.Build(certificate); ``` On Windows, the chain status after this code for the attached cert contains `NotSignatureInvalid `and `UntrustedRoot`. However, on Ubuntu the chain status returned is just `UntrustedRoot`, so the cert with invalid signature can be used to start communication over a secure channel despite a security violation. Any issues with my code for the security check? Is this a bug in the calling code or in the X509Chain implementation? +21624 area-System.Net SetSocketOption throw Unknown error -1 exception on linux "When I call SetSocketOption on Windows it's work, but on Linux it throws > System.Net.Sockets.SocketException: Unknown error -1 at System.Net.Sockets.Socket.SetSocketOption(SocketOptionLevel optionLevel, SocketOptionName optionName, Byte[] optionValue) I tried with dotnet v1.0.4 and debian 8.2. Example: ```c# using System; using System.Net; using System.Net.Sockets; namespace SetSocketOptionExample { class Program { static void Main(string[] args) { Console.WriteLine(""Configuration started""); byte[] groupIp = { 0xef, 0xc3, 0x01, 0x29 }; byte[] srcIp = { 0x5b, 0xcb, 0xfd, 0xe3 }; Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); byte[] membershipAddresses = new byte[12]; Buffer.BlockCopy(groupIp, 0, membershipAddresses, 0, 4); Buffer.BlockCopy(srcIp, 0, membershipAddresses, 4, 4); Buffer.BlockCopy(IPAddress.Any.GetAddressBytes(), 0, membershipAddresses, 8, 4); try { socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddSourceMembership, membershipAddresses); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } Console.WriteLine(""Configuration ended""); Console.ReadLine(); } } } ``` [EDIT] Add C# syntax highlighting by @karelz" +21626 area-System.Net HttpClient::GetStreamAsync() - Leaking handles on *nix when not disposing HttpResponse Hello Community, It seems that there's a leak using the short hand `GetStreamAsync()` on `HttpClient` The `HttpResponseMessage` is never disposed and therefore leaking handles on the cURL version used on *nix by default. Relevant: https://github.com/dotnet/corefx/blob/master/src/System.Net.Http/src/System/Net/Http/HttpClient.cs#L250-L256 https://github.com/dotnet/corefx/blob/4709a5cda50ec3d141b5b460bc05c8b576332659/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs#L84-L87 +21627 area-System.Net Implement HttpClientHandler ServerCertificateCustomValidationCallback for UWP Part of: https://github.com/dotnet/corefx/issues/20010 epic. +21628 area-System.Net Implement HttpClientHandler ClientCertificates for UWP Part of: #20010 epic. +21629 area-System.Memory InvalidProgramException with ReadOnlySpan ToString() "Invoking the ToString() method of the Span type results in a System.InvalidProgramException: Common Language Runtime detected an invalid program. I wouldn't expect the ToString method to work with Span, but I didn't expect this to be an invalid program. ```csharp string s = ""Hello, World!""; ReadOnlySpan span = s.AsSpan(); string s2 = span.ToString(); // exception: Unhandled Exception: System.InvalidProgramException: Common Language Runtime detected an invalid program. ``` See: https://github.com/christiannagel/SpanIssues for a test project " +21630 area-System.Net Fix some TLS related HttpClientHandler properties for UAP Due to platform differences on UAP and the current use of WinRT APIs to implement that HTTP stack, a few properties won't have the same defaults or behavior. CheckCertificateRevocationList default value is true for UAP and can't be changed. However, on UAP, revocation checking that results in an indeterminate status (i.e. revocation server offline) is treated the same as a valid result. This is the behavior of the underlying WinRT APIs. SslProtocols default value is SslProtocols.None which is the same as the rest of .NET Core. 'None' means to use the system default. However, changes to this property value will be ignored. Similar to the decision made in PR #21403, we don't throw PNSE for these differences. Instead we just no-op on the property setter. The behavior differences will be documented in: https://github.com/dotnet/corefx/wiki/ApiCompat Contributes to #18116. +21631 area-System.Security Fix cryptography errors on macOS 10.13 "This provides a long-term workaround for the behavior change in CCCryptorReset for ECB transforms (should the workaround be inadequate we'd catch it in testing at a future point... but since ECB is stateless it's fine). It provides a stable workaround for the appearance of a new status info field in the trust results. Unless ""StatusCodes"" became used to represent some new type of distinct error at a later date it seems ignorable. The TestResetMethod chain test is being disabled because it's segfaulting. It appears to be the sole test testing DSA-based certificate chains, which might indicate a DSA-based regression in the new OS version. Investigation will continue." +21636 area-System.IO add apfs to the filesystem list "Fixes #21597 Tests will pass on 10.13 as long as we recognize the name. OSX supports that via statfs() and adding Magic number does not seems needed. According to notes in the code, that is internal glibc code and it does not reflect type of the partition anyway. src/Native/Unix/System.Native/pal_mount.cpp: int result = statfs(name, &stats); #if HAVE_STATFS_FSTYPENAME || HAVE_STATVFS_FSTYPENAME #ifdef VFS_NAMELEN if (bufferLength < VFS_NAMELEN) #else if (bufferLength < MFSNAMELEN) #endif { result = ERANGE; *formatType = 0; } else { SafeStringCopy(formatNameBuffer, bufferLength, stats.f_fstypename); *formatType = -1; } #else assert(formatType != nullptr); *formatType = SignedCast(stats.f_type); SafeStringCopy(formatNameBuffer, bufferLength, """"); #endif " +21640 area-System.IO Need to write tests for Directory.Delete on non-existing directory, read-only file system in Linux From issue #21273 - File.Delete was throwing an IOException on non-existing files on a read-only file system. Need to write tests to check whether Directory.Delete behaves as documented for non-existing directories in a read-only file system. https://msdn.microsoft.com/en-us/library/fxeahc5f(v=vs.110).aspx From the documentation, Directory.Delete should throw a DirectoryNotFoundException for a non-existing directory and an IOException on a read-only directory. Need to write a test checking both these conditions to see that a DirectoryNotFoundException is thrown. +21642 area-Infrastructure Windows.winmd needs to be updated to Windows Insider SDK flight 16225 "The current UWP (UAP/UAPILC) implementations of System.Net.WebSockets.Client and System.Net.Http.HttpClient use WinRT APIs. The following high-priority **_.NET Standard 2.0 for UWP_** work requires us to consume new WinRT APIs that are part of the recently-flighted Windows Insider SDK 16225: #7877 #21393 #21102 In order to call these new APIs, we need to have the Windows.winmd file updated in the CoreFx repo and associated .NET Native toolchain. - Windows Insider SDK flight 16225 download page: https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewSDK Of course, we will call the new APIs only if they are present from a runtime perspective: ``` using Windows.Foundation.Metadata; if (ApiInformation.IsPropertyPresent(""Windows.Networking.Sockets.WebSockets.MyNewAPI"")) { // Use the new API if present… } ``` CC: @davidsh @weshaggard @yizhang82 @tijoytom @safern @DavidGoll @danmosemsft @joperezr " +21643 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test/SetDelegate_ConnectionSucceeds(acceptedProtocol: None, requestOnlyThisProtocol: False) failed with ""System.ComponentModel.Win32Exception : Cannot allocate memory""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test/SetDelegate_ConnectionSucceeds(acceptedProtocol: None, requestOnlyThisProtocol: False)` has failed. System.IO.IOException : The encryption operation failed, see inner exception. ---- System.ComponentModel.Win32Exception : Cannot allocate memory Stack Trace: at System.Net.Security.SslStreamInternal.StartWriting(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/40/s/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 443 at System.Net.Security.SslStreamInternal.ProcessWrite(Byte[] buffer, Int32 offset, Int32 count, LazyAsyncResult asyncResult) in /Users/buildagent/agent/_work/40/s/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 375 at System.Net.Security.SslStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncCallback asyncCallback, Object asyncState) in /Users/buildagent/agent/_work/40/s/corefx/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 542 at System.Threading.Tasks.TaskFactory`1.FromAsyncTrim[TInstance,TArgs](TInstance thisRef, TArgs args, Func`5 beginMethod, Func`3 endMethod) at System.IO.Stream.BeginEndWriteAsync(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at System.IO.StreamWriter.d__65.MoveNext() in /Users/buildagent/agent/_work/40/s/corefx/src/System.Runtime.Extensions/src/System/IO/StreamWriter.cs:line 1019 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.IO.StreamWriter.d__52.MoveNext() in /Users/buildagent/agent/_work/40/s/corefx/src/System.Runtime.Extensions/src/System/IO/StreamWriter.cs:line 712 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.d__8.MoveNext() in /Users/buildagent/agent/_work/40/s/corefx/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 101 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.d__11.MoveNext() in /Users/buildagent/agent/_work/40/s/corefx/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 179 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.<>c__DisplayClass1_0.<b__0>d.MoveNext() in /Users/buildagent/agent/_work/40/s/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.AcceptAllCerts.cs:line 46 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in /Users/buildagent/agent/_work/40/s/corefx/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 67 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.d__1.MoveNext() in /Users/buildagent/agent/_work/40/s/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.AcceptAllCerts.cs:line 44 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- Build : Master - 20170628.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170628.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20None,%20requestOnlyThisProtocol:%20False) +21645 area-System.IO BinaryReaderTests.Read_InvalidEncoding() failing because CoreRT BinaryReader is outdated "This test is expecting: `AssertExtensions.Throws(""charsRemaining"", () => reader.Read(new char[10], 0, 10));` This does not exist in the BinaryReader in CoreRT. Compare corert\src\System.Private.CoreLib\src\System\IO\BinaryReader.cs and C:\git\coreclr\src\mscorlib\src\System\IO\BinaryReader.cs. The latter has an extra check `throw new ArgumentOutOfRangeException(nameof(charsRemaining))` The tes tcould be hacked to accommodate the older CoreRT sources. But the right tihng to do here is probably to change CoreRT to use the CoreCLR copy, by moving it into the 'shared' folder." +21646 area-System.Net Remove dead file Fix #20212 +21649 area-System.Numerics "Fireball: No test result generated under ""System.Numerics.Vectors.Performance.Tests"" " "Fireball on Windows.10.Arm64-arm:Debug No test result generated under ""System.Numerics.Vectors.Performance.Tests"" ~~~ 2017-06-27 19:15:09,954: INFO: proc(54): run_and_log_output: Output: C:\dotnetbuild\work\b3c1d3f3-b611-4622-a6c9-1ca7640c10ab\Work\d5cb91dc-ba88-4bf1-bf21-3166e429b17f\Unzip>call C:\dotnetbuild\work\b3c1d3f3-b611-4622-a6c9-1ca7640c10ab\Payload\Launcher\WindowsStoreAppLauncher.exe -test appxmanifest.xml System.Numerics.Vectors.Performance.Tests.dll -xml testResults.xml -parallel none -notrait category=nonuaptests -notrait category=nonwindowstests -notrait category=failing 2017-06-27 19:15:09,970: INFO: proc(54): run_and_log_output: Output: Got manifest file appxmanifest.xml 2017-06-27 19:15:10,063: INFO: proc(54): run_and_log_output: Output: Removing any previous installation... 2017-06-27 19:15:10,079: INFO: proc(54): run_and_log_output: Output: Installing the application... 2017-06-27 19:15:11,664: INFO: proc(54): run_and_log_output: Output: Package ID is 5cd54353-3ed7-4a6e-a72f-db349f28867c_1.0.0.0_arm__v52bfwc2c21ha 2017-06-27 19:15:11,696: INFO: proc(54): run_and_log_output: Output: Starting the application... 2017-06-27 19:15:11,696: INFO: proc(54): run_and_log_output: Output: Resolved Folder Path: C:\Users\DotNetTestRunner\AppData\Local\Packages\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\ 2017-06-27 19:15:12,321: INFO: proc(54): run_and_log_output: Output: Waiting for the application to exit... ~~~" +21651 area-System.Runtime System.Runtime.InteropServices.GCHandleTests.Alloc_InvalidPinnedObject_ThrowsArgumentException failed with This [test](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/GCHandleTests.cs#L85) is failing with: ``` System.Runtime.InteropServices.Tests.GCHandleTests.Alloc_InvalidPinnedObject_ThrowsArgumentException(value: Object { }) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentException) Actual: (No exception was thrown) ``` Note that this only fails for when the parameter is `new object()` ([source code](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/GCHandleTests.cs#L69)) The thing here is that [GCHandleValidatePinnedObject](https://github.com/dotnet/corert/blob/master/src/System.Private.CoreLib/src/System/Runtime/InteropServices/GCHandle.cs#L271) is checking if the type is a valid pinned object, if not it should throw `ArgumentException` The only explanation here is that [eeType.MightBeBlittable()](https://github.com/dotnet/corert/blob/master/src/System.Private.CoreLib/src/System/Runtime/InteropServices/GCHandle.cs#L286) should return false for object so that it throws but seems to be returning true (not sure this is the case yet). Note that for the test input of `object[]` throws correctly, which makes it more weird that if it is an array of object it detects that is not valid pinned object and it throws, contrary to when the value is just a simple object instance it doesn't throw. cc: @danmosemsft @AtsushiKan +21652 area-System.Runtime Fix System.Runtime.InteropServices.Tests for Uap Fixing 3 tests and disabling 1. Fixes: https://github.com/dotnet/corefx/issues/21655 cc: @tijoytom +21655 area-System.Runtime "Test: System.Runtime.InteropServices.Tests.ComEventsHelperTests/Combine_NullRcwWindows_ThrowsArgumentNullException failed with ""System.PlatformNotSupportedException""" Opened on behalf of @Jiayili1 The test `System.Runtime.InteropServices.Tests.ComEventsHelperTests/Combine_NullRcwWindows_ThrowsArgumentNullException` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentNullException)\r Actual: typeof(System.PlatformNotSupportedException): Operation is not supported on this platform. Stack Trace: at System.Runtime.InteropServices.Tests.ComEventsHelperTests.<>c.b__5_0() at System.Action.Invoke() Build : Master - 20170628.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170628.01/workItem/System.Runtime.InteropServices.Tests/analysis/xunit/System.Runtime.InteropServices.Tests.ComEventsHelperTests~2FCombine_NullRcwWindows_ThrowsArgumentNullException +21656 area-System.Runtime "Test: System.Runtime.InteropServices.Tests.GCHandleTests/Alloc_InvalidPinnedObject_ThrowsArgumentException(value: Object { }) failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Runtime.InteropServices.Tests.GCHandleTests/Alloc_InvalidPinnedObject_ThrowsArgumentException(value: Object { })` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: (No exception was thrown) Stack Trace: at System.Runtime.InteropServices.Tests.GCHandleTests.Alloc_InvalidPinnedObject_ThrowsArgumentException(Object value) at xunit.console.netcore!+0x82899e at xunit.console.netcore!+0x7d52cf at xunit.console.netcore!+0x7d515a Build : Master - 20170628.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170628.01/workItem/System.Runtime.InteropServices.Tests/analysis/xunit/System.Runtime.InteropServices.Tests.GCHandleTests~2FAlloc_InvalidPinnedObject_ThrowsArgumentException(value:%20Object%20%7B%20%7D) +21658 area-System.Runtime Add Runtime.WindowsRuntime tests Did these about a week ago but forgot to ever send it in Fixes #21303 +21664 area-Infrastructure Create meta-package for .NET Framework support We have added a number of nuget packages to fill the API gaps in .NET Core and a lot of them are part of the Microsoft.NETCore.App but there are still a lot that aren't. To help folks with porting we should create another meta-package that will reference all the libraries that we have individual nuget packages that are above Microsoft.NETCore.App and are to help bridge the gap with .NET Framework. cc @Petermarcu @ericstj @terrajobst Proposed list of packages: ``` System.CodeDom System.ComponentModel.Annotations System.Configuration.ConfigurationManager System.Data.SqlClient System.DirectoryServices System.DirectoryServices.AccountManagement System.DirectoryServices.Protocols System.IO.FileSystem.AccessControl System.IO.Packaging System.IO.Pipes.AccessControl System.IO.Ports System.Numerics.Vectors System.Reflection.TypeExtensions System.Security.AccessControl System.Security.Cryptography.Cng System.Security.Cryptography.Pkcs System.Security.Cryptography.ProtectedData System.Security.Cryptography.Xml System.Security.Permissions System.Security.Principal.Windows System.ServiceProcess.ServiceController System.Text.Encoding.CodePages System.Threading.AccessControl System.Threading.Tasks.Dataflow ``` For reference all the extra nuget packages we produce can be seen at https://github.com/dotnet/versions/blob/master/build-info/dotnet/corefx/master/Latest_Packages.txt I've filtered that list to just things that already exist in the .NET Framework. +21667 area-Serialization Rd.xml Entry from XmlSerializer.Mode Caused Size-on-disk Regressions. XmlSerializer.Mode iss marked as required by the System.Private.Xml.rd.xml. Unfortunately, it pulls in the XmlSerializer type itself (has to), which in turn pulls in a whole lot of code through its static ctor dependencies. This caused some size-on-disk regressions. +21668 area-Serialization Move Entries from Library Rd.xml to Test Rd.xml. XmlSerializer.Mode iss marked as required by the System.Private.Xml.rd.xml. Unfortunately, it pulls in the XmlSerializer type itself (has to), which in turn pulls in a whole lot of code through its static ctor dependencies. This caused some size-on-disk regressions. As the property is used by our test project only, the fix is to move the entry from the library rd.xml to the test rd.xml. The fix also made the similar changes to DCS/DCJS. Fix #21667 +21670 area-System.Net Removing unused UAP code and SmtpClient HostName workaround 1. Miscellaneous clean up for uap (NetworkInformation now doesn't use WinRT implementation) 2. Fix: #19605 +21671 area-Infrastructure Add converter from IEnumerable to TheoryData Manipulating test input data in IEnumerable format is desirable, but a bit awkward to get into IEnumerable format that [Theory] expects. Add test project to new test project. :) Change a test in System.IO.FileSystem to theory with new extension. +21672 area-System.Net Clarify default credentials usage for HttpClientHandler on UAP "This PR clarifies how credential handling and specifically default logged-on credentials actually works on the UAP platform. First, ""default credentials"" are the current credentials of the logged-on user, typically on an enterprise network joined to an Active Directory domain. When these credentials are sent to a proxy or server, only Negotiate, Kerberos, or NTLM schemes are used. Those credentials can never be sent via other schemes like basic or digest. .NET Framework traditionally has two ways for developers to specify using default logged-on credentials to send to the server. Either set the .UseDefaultCredentials property to true or specify CredentialCache.DefaultCredentials to the .Credentials property. For proxy credentials, the developer could pass DefaultCredentials via the custom IProxy object or via the .DefaultProxyCredentials property. .NET Framework would send default credentials anywhere (intranet or internet) if specified by the developer. The UAP platform implementation of System.Net.Http uses a different set of rules for sending default credentials. It is based on whether the app has Enterprise Authentication capability as well as if the endpoint is specified in an intranet zone. This design is part of the base native WinInet and WinHTTP stacks. It was a design choice to provide optimum security as well as convenience for developers writing apps for enterprise scenarios. This PR does a few things. First, it keeps the .NET ICredentials properties stored separately so that they correctly round-trip on get and set. .NET NetworkCredential has 3 parameters (domain, user, password). But WinRT PasswordCredential only has 2 parameters (user, password). We now convert to the WinRT objects only when we need to use them. Second, this PR clarifies that the .UseDefaultCredentials property is basically a no-op because the API models of default credentials handling is different on the UAP platform as described above. These platform differences will be documented here: https://github.com/dotnet/corefx/wiki/ApiCompat Fixes #19642 Fixes #21510" +21673 area-System.Runtime Fix System.Runtime.Interop test for uapaot Fixes: https://github.com/dotnet/corefx/issues/21651 cc: @danmosemsft @tijoytom +21674 area-Infrastructure Disable performance tests for uap when running in arm Fixes: https://github.com/dotnet/corefx/issues/21649 cc: @joperezr @danmosemsft +21676 area-System.Runtime Documentation on `Marshal.GetLastWin32Error` should be updated. The documentation currently makes no mention that this method will return `errno` on Unix/Mac (or the conditions, if any, under which it will return `errno` on Windows). +21678 area-System.Runtime Add DispatcherQueue support in WindowsRuntimeSynchronizationContext This is a port of work we did on Desktop to support [DispatcherQueues](https://docs.microsoft.com/en-us/uwp/api/windows.system.dispatcherqueue) that are being introduced in Windows. It will ensure that when we post task continuations on dedicated DispatcherQueue threads, the continuations will run on the same thread. There will be a corresponding change that will go into CoreCLR when this gets in that will actually pass DispatcherQueues into `WinRTSynchronizationContextFactory.Create`. @yizhang82 @sergiy-k @kouvel @jkotas +21679 area-System.Net Several allocation improvements for HttpClient/ManagedHandler Some of these changes are specific to ManagedHandler, while others are applicable to HttpClient in general. ManagedHandler-specific: - We currently write out a host header with a port number by converting the port to a string. This changes it to just write out the digits directly without the intermediate string. - HttpRequestHeaders is currently always allocated, even if it's never accessed by the developer code. - Parsing the response very likely yields at least once, and currently it's a helper that's called from the main SendAsync. It's easy to combine them and avoid the extra allocations from the extra async layer. - We're going to need to revisit the connection pooling anyway, but for now I was seeing allocations related to the ConcurrentDictionary show up. ConcurrentyDictionary is optimized for many-reads-fewer-writes, but this usage is entirely writes. CD just does striped locking for writes internally, so I replaced it with a simple striped-lock-HashSet structure that doesn't allocate on every add. - We're currently incurring an array enumerator allocation on every header being written out. We can avoid that with a cast. HttpClient-general: - Currently GetStream/String/ByteArrayAsync all incur a task allocation for getting the response stream. But in most cases, the stream is available promptly (it's the reads on the stream that are likely to be async). We can employ ValueTask to minimize the need for this allocation. - HttpRequestHeaders has 9 reference fields dedicated to specific lazily-allocated collection properties, and HttpResponseHeaders has 5. That's 112 bytes of fields allocated per request on 64-bit that are often unneeded. This puts them into a lazily-allocated array to make them more pay for play: they're a bit more expensive when used (the space for the array's overhead plus a cast on each use), but we avoid having to pay for the allocations for the fields when they're not used. Both: - Both HttpRequestHeader and HttpResponseHeader currently promptly allocate another wrapped HttpGeneralHeaders object, but this is only really necessary in the implementation when various strongly-typed properties are accessed. We can make it lazily-allocated and more pay-for-play. This changes the headers to be lazily-allocated, and then modifies the ManagedHandler to avoid accessing them unless necessary. cc: @davidsh, @geoffkizer +21680 area-System.Runtime System.Runtime.Extensions failures on UAPAOT "Currently those tests are disabled and need to be investigated ``` ```" +21681 area-Infrastructure Update to the latest intellisense package PTAL @ericstj FYI @Petermarcu +21684 area-System.IO Read only file system delete tests Tests to validate behavior for directory and file delete for read only file systems on Unix. +21685 area-Infrastructure Update prerelease label to preview2 release/uwp6.0 is going to use preview1 for now +21687 area-System.Threading "Fireball: No test result generated under ""System.Threading.Tasks.Parallel.Tests""" Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170629.01/workItem/System.Threading.Tasks.Parallel.Tests/wilogs Configuration: Windows.10.Nano.Amd64-x64:Release ~~~ 2017-06-29 01:28:38,927: INFO: proc(54): run_and_log_output: Output: Discovering: System.Threading.Tasks.Parallel.Tests 2017-06-29 01:28:39,069: INFO: proc(54): run_and_log_output: Output: Discovered: System.Threading.Tasks.Parallel.Tests 2017-06-29 01:28:39,147: INFO: proc(54): run_and_log_output: Output: Starting: System.Threading.Tasks.Parallel.Tests ~~~ +21688 area-Serialization Add desktop serialize test case @shmao Please help review the code. +21689 area-Microsoft.CSharp Length cannot be less than zero. thrown on nectoreapp2.0 when trying to invoke Action that accesses a property on the input class - works for anonymous types "_From @maumar on June 28, 2017 19:7_ repro: ```cs public class MyEntity { public int Id { get; set; } public string Name { get; set; } } [Fact] public virtual void Netcoreapp_bug() { Action workingElementAsserter = e => Console.WriteLine(""works""); Action failingElementAsserter = e => Console.WriteLine(e.Id); var dto = new MyEntity { Id = 1, Name = ""Foo"" }; var anonymous = new { Id = 1, Name = ""Foo"" }; workingElementAsserter(dto); //works failingElementAsserter(anonymous); //works failingElementAsserter.Invoke(dto); //fails } ``` exception: ``` System.ArgumentOutOfRangeException : Length cannot be less than zero. Parameter name: length Stack Trace: at System.String.Substring(Int32 startIndex, Int32 length) at Microsoft.CSharp.RuntimeBinder.Syntax.NameTable.Add(String key, Int32 length) at Microsoft.CSharp.RuntimeBinder.Syntax.NameManager.Add(String key, Int32 length) at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetName(Type type) at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.GetArgumentType(ICSharpBinder p, CSharpArgumentInfo argInfo, Expression param, DynamicMetaObject arg, Int32 index) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.CreateArgumentArray(ICSharpBinder payload, Expression[] parameters, DynamicMetaObject[] args) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.BindCore(ICSharpBinder payload, Expression[] parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.Bind(DynamicMetaObjectBinder payload, Expression[] parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.BinderHelper.Bind(DynamicMetaObjectBinder action, RuntimeBinder binder, DynamicMetaObject[] args, IEnumerable`1 arginfos, DynamicMetaObject onBindingError) at Microsoft.CSharp.RuntimeBinder.CSharpGetMemberBinder.FallbackGetMember(DynamicMetaObject target, DynamicMetaObject errorSuggestion) at System.Dynamic.DynamicMetaObject.BindGetMember(GetMemberBinder binder) at System.Dynamic.GetMemberBinder.Bind(DynamicMetaObject target, DynamicMetaObject[] args) at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[] args, ReadOnlyCollection`1 parameters, LabelTarget returnLabel) at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args) at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0) at Microsoft.EntityFrameworkCore.Query.ComplexNavigationsQueryTestBase`2.<>c.b__247_1(Object e) at Microsoft.EntityFrameworkCore.Query.ComplexNavigationsQueryTestBase`2.Netcoreapp_bug() ``` I am unable to reproduce this in standalone app, this only happens in our test infrastructure (Entity Framework Core). Using xunit and we have generic and polymorphic test classes and tests are in multiple assemblies - maybe this has something to do with it, but so far we were unable to figure out the root cause. Let me know if you need any more info. dotnet --version: 2.0.0-preview3-006607 _Copied from original issue: dotnet/coreclr#12529_" +21691 area-System.Net Fix HttpClientHandler on UAP to use WinRT NoCache enum Since System.Net.Http APIs default to not using any cache, we need to turn off caching at the WinRT layer. If supported, we set the CacheControl.ReadBehavior to use the NoCache enum value. Otherwise, we use the next best enum option. Removed some unneeded try/catch handling when we previously needed to handle compiling with older SDKs and trap JIT errord. This is no longer needed for NETStandard20. Fixed some typos from a previous PR. Fixes #7877 +21692 area-Infrastructure Extract Resources from assemblies and write them into the runner's pri file for UAP - [x] Add MakePri.exe to buildtools package - [x] Modify [GenerateResourcesCode](https://github.com/dotnet/buildtools/blob/78260239e4db68ad5c2df774a27d5f9a54fd92e5/src/Microsoft.DotNet.Build.Tasks/GenerateResourcesCode.cs) to write the resources to a ResW file per assembly when building for UAP. This can be done through a parameter to the task when calling it in the build process. - [x] Bin place the ResW files to the runtime folder. - [x] Create test's assembly ResW file when building the test project and bin place it to the ResW runtime folder. - [x] Add task to merge ResW files to runner's PRI file using MakePri.exe - [x] Delete mklink for runner's PRI file from RunTests.cmd for UAP This are the steps that I will be following to extract the resources from the assemblies to merge them to the PRI file. cc: @tarekgh @danmosemsft @weshaggard +21696 area-Infrastructure UWP ILC Tests: Serveral tests have fireball on Windows.10.Amd64-arm Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170629.01 Configuration: Windows.10.Amd64-arm +21698 area-Infrastructure 2.0.0 Core Tests: Fire issues on Fedora.26.Amd64 Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170629.01 Several tests have fireball on Fedora.26.Amd64 +21699 area-System.IO test bug: test helper treats non-serial ports as serial ports "This is a tiny test issue that I hit on my box. The comparison made by the helper ended up treating some ports like ""COMPATIBLEBUS*"" as serial ports, and that broke the `AllHelperPortsAreInGetPortNames` test." +21700 area-System.IO ensure test helper do not treat non-serial ports as serial ports (fix #21699) Ensures that only serial ports are identified as such by the test helper fixing issue #21699 +21701 area-System.IO Got Illegal character error when the file name is encoded in GBK "Hi All, We just encountered an issue that the enumeration function reports error of illegal character when there's GBK Chinese character in the directory. We found this issue on RedHat 7.3 with $LANG and $LC_ALL set to ""zh_CN.GBK"". It works well with Chines character with UTF-8 encoding. The issue can be reproduced by following code: ```c# using System; using System.IO; namespace netcoretest { class Program { static void Main(string[] args) { foreach (var fileItem in Directory.EnumerateFileSystemEntries(""."", ""*"", SearchOption.TopDirectoryOnly)) { Console.WriteLine(fileItem); } } } } ``` It reports an error as following: ``` Unhandled Exception: System.ArgumentException: Illegal characters in path. Parameter name: path at System.IO.PathInternal.CheckInvalidPathChars(String path) at System.IO.Path.Combine(String path1, String path2) at System.IO.UnixFileSystem.FileSystemEnumerable`1.d__11.MoveNext() at netcoretest.Program.Main(String[] args) in /home/xtest/netcoretest/Program.cs:line 10 Aborted (core dumped) ``` GBK is an encoding standard defined by China. Does .Net Core framework have plan to support other encoding besides Unicode? If so, could you share your schedule? Thanks Emma" +21702 area-System.Net Test failed: System.Net.Sockets.Tests.TcpListenerTest / Accept_AcceptsPendingSocketOrClient failed test: System.Net.Sockets.Tests.TcpListenerTest.Accept_AcceptsPendingSocketOrClient detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu16.04_release/92/testReport/System.Net.Sockets.Tests/TcpListenerTest/Accept_AcceptsPendingSocketOrClient/ MESSAGE: ~~~ Assert.False() Failure Expected: False Actual: True ~~~ STACK TRACE: ~~~ at System.Net.Sockets.Tests.TcpListenerTest.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +21703 area-System.Runtime System.Runtime.InteropServices.Tests failed in ci /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_release/Tools/tests.targets(354,5): error : One or more tests failed while running tests from 'System.Runtime.InteropServices.Tests' please check /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_release/bin/AnyOS.AnyCPU.Release/System.Runtime.InteropServices.Tests/netstandard/testResults.xml for details! [/mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_release/src/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.Tests.csproj] detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.10_release/2981/consoleFull#72209969733fe3402-0c0f-45a7-a707-47164965bab5 +21704 area-System.Runtime [UWP6.0] Rect and Size in System.Runtime.WindowsRuntime has different exception thrown for size validation As suggested in #21658 - disabling tests against this issue. ``` Windows.Foundation.Tests.SizeTests.Ctor_NegativeHeight_ThrowsArgumentOutOfRangeException(height: -1) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\SizeTests.cs(51,0): at Windows.Foundation.Tests.SizeTests.<>c__DisplayClass3_0.b__0() Windows.Foundation.Tests.SizeTests.Ctor_NegativeHeight_ThrowsArgumentOutOfRangeException(height: -ì) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\SizeTests.cs(51,0): at Windows.Foundation.Tests.SizeTests.<>c__DisplayClass3_0.b__0() Windows.Foundation.Tests.SizeTests.Height_SetNegative_ThrowsArgumentOutOfRangeException(height: -1) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\SizeTests.cs(91,0): at Windows.Foundation.Tests.SizeTests.<>c__DisplayClass7_0.b__0() Windows.Foundation.Tests.SizeTests.Height_SetNegative_ThrowsArgumentOutOfRangeException(height: -ì) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\SizeTests.cs(91,0): at Windows.Foundation.Tests.SizeTests.<>c__DisplayClass7_0.b__0() Windows.Foundation.Tests.SizeTests.Ctor_NegativeWidth_ThrowsArgumentOutOfRangeException(width: -1) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\SizeTests.cs(43,0): at Windows.Foundation.Tests.SizeTests.<>c__DisplayClass2_0.b__0() Windows.Foundation.Tests.SizeTests.Ctor_NegativeWidth_ThrowsArgumentOutOfRangeException(width: -ì) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\SizeTests.cs(43,0): at Windows.Foundation.Tests.SizeTests.<>c__DisplayClass2_0.b__0() Windows.Foundation.Tests.SizeTests.Width_SetNegative_ThrowsArgumentOutOfRangeException(width: -1) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\SizeTests.cs(71,0): at Windows.Foundation.Tests.SizeTests.<>c__DisplayClass5_0.b__0() Windows.Foundation.Tests.SizeTests.Width_SetNegative_ThrowsArgumentOutOfRangeException(width: -ì) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\SizeTests.cs(71,0): at Windows.Foundation.Tests.SizeTests.<>c__DisplayClass5_0.b__0() Windows.Foundation.Tests.RectTests.Ctor_NegativeHeight_ThrowsArgumentOutOfRangeException(height: -1) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\RectTests.cs(66,0): at Windows.Foundation.Tests.RectTests.<>c__DisplayClass3_0.b__0() Windows.Foundation.Tests.RectTests.Ctor_NegativeHeight_ThrowsArgumentOutOfRangeException(height: -ì) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\RectTests.cs(66,0): at Windows.Foundation.Tests.RectTests.<>c__DisplayClass3_0.b__0() Windows.Foundation.Tests.RectTests.Height_SetNegative_ThrowsArgumentOutOfRangeException(height: -1) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\RectTests.cs(188,0): at Windows.Foundation.Tests.RectTests.<>c__DisplayClass16_0.b__0() Windows.Foundation.Tests.RectTests.Height_SetNegative_ThrowsArgumentOutOfRangeException(height: -ì) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\RectTests.cs(188,0): at Windows.Foundation.Tests.RectTests.<>c__DisplayClass16_0.b__0() Windows.Foundation.Tests.RectTests.Ctor_NegativeWidth_ThrowsArgumentOutOfRangeException(width: -1) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\RectTests.cs(58,0): at Windows.Foundation.Tests.RectTests.<>c__DisplayClass2_0.b__0() Windows.Foundation.Tests.RectTests.Ctor_NegativeWidth_ThrowsArgumentOutOfRangeException(width: -ì) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\RectTests.cs(58,0): at Windows.Foundation.Tests.RectTests.<>c__DisplayClass2_0.b__0() Windows.Foundation.Tests.RectTests.Width_SetNegative_ThrowsArgumentOutOfRangeException(width: -1) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\RectTests.cs(171,0): at Windows.Foundation.Tests.RectTests.<>c__DisplayClass14_0.b__0() Windows.Foundation.Tests.RectTests.Width_SetNegative_ThrowsArgumentOutOfRangeException(width: -ì) [FAIL] Assert.Throws() Failure Expected: typeof(System.ArgumentOutOfRangeException) Actual: typeof(System.ArgumentException): Value does not fall within the expected range. Stack Trace: D:\repos\corefxCopy\corefx\src\System.Runtime.WindowsRuntime\tests\Windows\Foundation\RectTests.cs(171,0): at Windows.Foundation.Tests.RectTests.<>c__DisplayClass14_0.b__0() `` +21706 area-Serialization Cannot deserialize XML with DataContractSerializer "The following snippet throws exception: ```c# using System; using System.Runtime.Serialization; using System.Text; using System.Xml; namespace BugTest { class Program { static void Main(string[] args) { Console.WriteLine(""Hello World!""); var xml = @"" 88c02aba-f78c-4749-8665-0caddee08b8a 88c02aba-f78c-4749-8665-0caddee08b8a 0001-01-01T00:00:00 ""; const int buffSize = 1000000; int bytes = 0; int chars = 0; byte[] result = new byte[buffSize]; bool compl; Encoding.UTF8.GetEncoder().Convert(xml.ToCharArray(), 0, xml.Length, result, 0, buffSize, true, out chars, out bytes, out compl); var xmlReader = XmlDictionaryReader.CreateTextReader(result, 0, bytes, new XmlDictionaryReaderQuotas()); var sr = new DataContractSerializer(typeof(PingDataConfirmation)); var deserialized = sr.ReadObject(xmlReader); } } [DataContract(Namespace = ""http://mycompany.com/MyProduct/Operations"")] public class PingDataConfirmation { [DataMember(IsRequired = true)] public string SourceGuid { get; set; } [DataMember(IsRequired = true)] public string Guid { get; set; } [DataMember(IsRequired = true)] public DateTime CreationTime { get; set; } } } ``` Exception: > System.Runtime.Serialization.SerializationException: Error in line 1 position 86. 'Element' 'SourceGuid' from namespace 'http://mycompany.com/MyProduct/Operations' is not expected. Expecting element 'CreationTime' Ennviroment: CSPROJ: ```xml Exe netcoreapp1.1 ``` .NET CORE SDK > 1.0.4" +21707 area-System.Drawing Fix missing .NET Core argument validation for PrivateFontCollection.AddFontFile This is a cleaned up copy of the netfx source code. However, is the whole `IntSecurity.DemandReadFileIO(filename)` stuff necessary Or maybe I could just replace that with `filename = Path.GetFullPath(filename)` and delete `IntSecurity.cs` Fixes #21558 +21708 area-System.Drawing Fix memory leaks if native exception is thrown in GDI+ The main one is Bitmap.FromResource will always throw a DLLNotFoundException on Nano, for example. The other cases are unlikely to throw unless a DLL was deleted or something went badly wrong causing exceptions. However, it's good to be safe. In these situations, if a native exception is thrown, then the allocated memory will not be freed, which I believe is a memory leak. +21709 area-Serialization DataContractSerializer problem "```c# using System; using System.IO; using System.Xml.Linq; using System.Runtime.Serialization; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var xElement = XElement.Parse(""""); var sXmlOrig = xElement.ToString(); var serializer = new DataContractSerializer(typeof(XElement)); using (var stream2 = new MemoryStream()) { serializer.WriteObject(stream2, xElement); stream2.Flush(); stream2.Position = 0; var dXElement = (XElement)serializer.ReadObject(stream2); var sDXml = dXElement.ToString(); if (!string.Equals(sXmlOrig, sDXml)) { // != Console.WriteLine($""{sXmlOrig} != {sDXml}""); } } Console.ReadKey(); } } } ```" +21712 area-System.Runtime Reenable the CoreFx tests on ILC that got fixes yesterday. +21713 area-System.Net Move ManagedWebSocket from System.Net.WebSockets.Client to System.Net.WebSockets Contributes to https://github.com/dotnet/corefx/issues/21537. Regardless of which path we take for that issue, we'll want the managed implementation built into the System.Net.WebSockets.dll assembly. This PR moves it down from System.Net.WebSockets.Client, and changes ClientWebSocket on Unix to use the ManagedWebSocket via the existing CreateClientWebSocket method (which we can leave implemented like this regardless of what path we take for adding an additional API). cc: @davidsh, @cipop, @anurse, @geoffkizer, @Priya91 +21714 area-System.Reflection SRE AssemblyBuilder with ReferenceAssemblyAttribute can create instances. "`AssemblyBuilder` can be used to create object instances even if the AssemblyBuilder has the `ReferenceAssemblyAttribute` set: ```csharp using System; using System.Reflection; using System.Reflection.Emit; public class Program { public static void Main(String[] args) { var s = ""abcd""; var aName = new AssemblyName(s); var a = MakeAssembly (aName); var t = a.GetType(""Foo""); var o = Activator.CreateInstance(t); Console.WriteLine(""made object {0}"", o); var fi = t.GetField(""X""); fi.SetValue(o,123); Console.WriteLine(""field is set to: {0}"", fi.GetValue(o)); return; } private static Assembly MakeAssembly(AssemblyName an) { var ab = AssemblyBuilder.DefineDynamicAssembly(an, AssemblyBuilderAccess.Run); var mb = ab.DefineDynamicModule(an.Name); var conInfo = typeof(System.Runtime.CompilerServices.ReferenceAssemblyAttribute).GetConstructor(new Type[] { }); ab.SetCustomAttribute(conInfo, new byte[] { }); var tb = mb.DefineType(""Foo"", TypeAttributes.Public); tb.DefineDefaultConstructor(MethodAttributes.Public); var fb = tb.DefineField(""X"", typeof(int), FieldAttributes.Public); tb.CreateType(); return ab; } } ``` This runs and I get the following output: ``` made object Foo field is set to: 123 ```" +21715 area-System.Threading ActionBlock.Post fail We use many ActionBlock and create instances using constructors that accept only Action without any configurations. So it should be unbound. But in some cases method Post returns false. What can cause this issue? +21716 area-Serialization Need use base type property get method when the override property is internal When serialize the following derived type, it will throw “access method DerivedTypeWithDifferentOverrides.get_Name4() failed”. This is because the generated code is wrong and it try to access the internal Name4 property. ``` public class BaseType { public virtual string Name1 { get; set; } public string Name2 { get; set; } public string Name3 { get; set; } public string Name4 { get; set; } public string @Name5 { get; set; } } public class DerivedTypeWithDifferentOverrides : BaseType { public override string Name1 { get; set; } new public string Name2 { get; set; } new public string Name3 { get; set; } new internal string Name4 { get; set; } new public string Name5 { get; set; } } ``` +21717 area-System.Diagnostics Fix System.Diagnostics.StackTrace tests Fixes https://github.com/dotnet/corefx/issues/21554 cc: @danmosemsft +21718 area-System.Data ASP.Net Core 1.1 App running inside docker container cannot connect to Remote Sql Server on Windows "I have an ASP.Net Core Web API running on .Net Core 1.1 is not able to connect to a sql server which is in my network but outside of docker container. I always get connection time out error. `Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond;` App works fine when running outside of the docker container. Dockerfile: > FROM microsoft/aspnetcore:1.1 WORKDIR /contest EXPOSE 85 EXPOSE 1433 COPY /out . ENTRYPOINT [""dotnet"", ""contest.dll""] any help is appreciated. Thank you." +21719 area-Serialization Need generate the code to get base type property if the derived override property is internal @shmao @zhenlan @mconnew Fix #21716 +21720 area-System.Runtime Test failure: System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests/ValidateAgainstBlobs(obj: CookieContainer { Capacity = 10, Count = 1, MaxCookieSize = 1024, PerDomainCapacity = 5 }, blobs: [... Opened on behalf of @danmosemsft The test `System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests/ValidateAgainstBlobs(obj: CookieContainer { Capacity = 10, Count = 1, MaxCookieSize = 1024, PerDomainCapacity = 5 }, blobs: [...` has failed. The stored blob for type System.Net.CookieContainer is outdated and needs to be updated. Stored blob: AAEAAAD/////AQAAAAAAAAAMAgAAAElTeXN0ZW0sIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAaU3lzdGVtLk5ldC5Db29raWVDb250YWluZXIGAAAADW1fZG9tYWluVGFibGUPbV9tYXhDb29raWVTaXplDG1fbWF4Q29va2llcxVtX21heENvb2tpZXNQZXJEb21haW4HbV9jb3VudA5tX2ZxZG5NeURvbWFpbgMAAAAAARxTeXN0ZW0uQ29sbGVjdGlvbnMuSGFzaHRhYmxlCAgICAIAAAAJAwAAAAAEAAAKAAAABQAAAAEAAAAGBAAAAAAEAwAAABxTeXN0ZW0uQ29sbGVjdGlvbnMuSGFzaHRhYmxlBwAAAApMb2FkRmFjdG9yB1ZlcnNpb24IQ29tcGFyZXIQSGFzaENvZGVQcm92aWRlcghIYXNoU2l6ZQRLZXlzBlZhbHVlcwAAAwMABQULCBxTeXN0ZW0uQ29sbGVjdGlvbnMuSUNvbXBhcmVyJFN5c3RlbS5Db2xsZWN0aW9ucy5JSGFzaENvZGVQcm92aWRlcgjsUTg/AQAAAAoKAwAAAAkFAAAACQYAAAAQBQAAAAEAAAAGBwAAAAouMTI3LjAuMC4xEAYAAAABAAAACQgAAAAFCAAAABNTeXN0ZW0uTmV0LlBhdGhMaXN0AQAAAAZtX2xpc3QDLFN5c3RlbS5Db2xsZWN0aW9ucy5Tb3J0ZWRMaXN0K1N5bmNTb3J0ZWRMaXN0AgAAAAkJAAAABAkAAAAsU3lzdGVtLkNvbGxlY3Rpb25zLlNvcnRlZExpc3QrU3luY1NvcnRlZExpc3QJAAAABV9saXN0BV9yb290D1NvcnRlZExpc3Qra2V5cxFTb3J0ZWRMaXN0K3ZhbHVlcxBTb3J0ZWRMaXN0K19zaXplElNvcnRlZExpc3QrdmVyc2lvbhNTb3J0ZWRMaXN0K2NvbXBhcmVyElNvcnRlZExpc3Qra2V5TGlzdBRTb3J0ZWRMaXN0K3ZhbHVlTGlzdAMCBQUAAAMDAx1TeXN0ZW0uQ29sbGVjdGlvbnMuU29ydGVkTGlzdAgIG1N5c3RlbS5Db2xsZWN0aW9ucy5Db21wYXJlciVTeXN0ZW0uQ29sbGVjdGlvbnMuU29ydGVkTGlzdCtLZXlMaXN0J1N5c3RlbS5Db2xsZWN0aW9ucy5Tb3J0ZWRMaXN0K1ZhbHVlTGlzdAkKAAAACQsAAAAJDAAAAAkMAAAAAAAAAAAAAAAJDQAAAAoKBAoAAAAdU3lzdGVtLkNvbGxlY3Rpb25zLlNvcnRlZExpc3QHAAAABGtleXMGdmFsdWVzBV9zaXplB3ZlcnNpb24IY29tcGFyZXIHa2V5TGlzdAl2YWx1ZUxpc3QFBQAABAMDCAgkU3lzdGVtLk5ldC5QYXRoTGlzdCtQYXRoTGlzdENvbXBhcmVyAgAAACVTeXN0ZW0uQ29sbGVjdGlvbnMuU29ydGVkTGlzdCtLZXlMaXN0J1N5c3RlbS5Db2xsZWN0aW9ucy5Tb3J0ZWRMaXN0K1ZhbHVlTGlzdAkOAAAACQ8AAAABAAAAAQAAAAkQAAAACgkRAAAABAsAAAANU3lzdGVtLk9iamVjdAAAAAAQDAAAAAAAAAAEDQAAABtTeXN0ZW0uQ29sbGVjdGlvbnMuQ29tcGFyZXIBAAAAC0NvbXBhcmVJbmZvAyBTeXN0ZW0uR2xvYmFsaXphdGlvbi5Db21wYXJlSW5mbwkSAAAAEA4AAAAQAAAABhMAAAAFL3BhdGgNDxAPAAAAEAAAAAkUAAAADQ8FEAAAACRTeXN0ZW0uTmV0LlBhdGhMaXN0K1BhdGhMaXN0Q29tcGFyZXIAAAAAAgAAAAQRAAAAJ1N5c3RlbS5Db2xsZWN0aW9ucy5Tb3J0ZWRMaXN0K1ZhbHVlTGlzdAEAAAAKc29ydGVkTGlzdAMdU3lzdGVtLkNvbGxlY3Rpb25zLlNvcnRlZExpc3QJCgAAAAQSAAAAIFN5c3RlbS5HbG9iYWxpemF0aW9uLkNvbXBhcmVJbmZvAwAAAAZtX25hbWUNbV9Tb3J0VmVyc2lvbgdjdWx0dXJlAQMAIFN5c3RlbS5HbG9iYWxpemF0aW9uLlNvcnRWZXJzaW9uCAYWAAAABWVuLVVTCgkEAAAFFAAAABtTeXN0ZW0uTmV0LkNvb2tpZUNvbGxlY3Rpb24EAAAABm1fbGlzdAltX3ZlcnNpb24LbV9UaW1lU3RhbXAUbV9oYXNfb3RoZXJfdmVyc2lvbnMDAAAAHFN5c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxpc3QIDQECAAAACRcAAAABAAAAAAAAAAAAAAABBBcAAAAcU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdAMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBQAACAgJGAAAAAEAAAABAAAAEBgAAAAEAAAACRkAAAANAwUZAAAAEVN5c3RlbS5OZXQuQ29va2llFQAAAAltX2NvbW1lbnQMbV9jb21tZW50VXJpD21fY29va2llVmFyaWFudAltX2Rpc2NhcmQIbV9kb21haW4RbV9kb21haW5faW1wbGljaXQJbV9leHBpcmVzBm1fbmFtZQZtX3BhdGgPbV9wYXRoX2ltcGxpY2l0Bm1fcG9ydA9tX3BvcnRfaW1wbGljaXQLbV9wb3J0X2xpc3QIbV9zZWN1cmUKbV9odHRwT25seQttX3RpbWVTdGFtcAdtX3ZhbHVlCW1fdmVyc2lvbgttX2RvbWFpbktleQ9Jc1F1b3RlZFZlcnNpb24OSXNRdW90ZWREb21haW4BBAQAAQAAAQEAAQAHAAAAAQABAAAKU3lzdGVtLlVyaQIAAAAYU3lzdGVtLk5ldC5Db29raWVWYXJpYW50AgAAAAEBDQEBCAEBDQgBAQIAAAAJBAAAAAoF5f///xhTeXN0ZW0uTmV0LkNvb2tpZVZhcmlhbnQBAAAAB3ZhbHVlX18ACAIAAAABAAAAAAYcAAAACTEyNy4wLjAuMQAAAAAAAAAAAAYdAAAABW5hbWUxCRMAAAAACQQAAAABCgAAgFhsCQ2+tQgGIAAAAAV2YWx1ZQAAAAAJBwAAAAAACw== Generated runtime blob: AAEAAAD/////AQAAAAAAAAAMAgAAAElTeXN0ZW0sIFZlcnNpb249NC4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BQEAAAAaU3lzdGVtLk5ldC5Db29raWVDb250YWluZXIGAAAADW1fZG9tYWluVGFibGUPbV9tYXhDb29raWVTaXplDG1fbWF4Q29va2llcxVtX21heENvb2tpZXNQZXJEb21haW4HbV9jb3VudA5tX2ZxZG5NeURvbWFpbgMAAAAAARxTeXN0ZW0uQ29sbGVjdGlvbnMuSGFzaHRhYmxlCAgICAIAAAAJAwAAAAAEAAAKAAAABQAAAAEAAAAGBAAAAAAEAwAAABxTeXN0ZW0uQ29sbGVjdGlvbnMuSGFzaHRhYmxlBwAAAApMb2FkRmFjdG9yB1ZlcnNpb24IQ29tcGFyZXIQSGFzaENvZGVQcm92aWRlcghIYXNoU2l6ZQRLZXlzBlZhbHVlcwAAAwMABQULCBxTeXN0ZW0uQ29sbGVjdGlvbnMuSUNvbXBhcmVyJFN5c3RlbS5Db2xsZWN0aW9ucy5JSGFzaENvZGVQcm92aWRlcgjsUTg/AQAAAAoKAwAAAAkFAAAACQYAAAAQBQAAAAEAAAAGBwAAAAouMTI3LjAuMC4xEAYAAAABAAAACQgAAAAFCAAAABNTeXN0ZW0uTmV0LlBhdGhMaXN0AQAAAAZtX2xpc3QDLFN5c3RlbS5Db2xsZWN0aW9ucy5Tb3J0ZWRMaXN0K1N5bmNTb3J0ZWRMaXN0AgAAAAkJAAAABAkAAAAsU3lzdGVtLkNvbGxlY3Rpb25zLlNvcnRlZExpc3QrU3luY1NvcnRlZExpc3QJAAAABV9saXN0BV9yb290D1NvcnRlZExpc3Qra2V5cxFTb3J0ZWRMaXN0K3ZhbHVlcxBTb3J0ZWRMaXN0K19zaXplElNvcnRlZExpc3QrdmVyc2lvbhNTb3J0ZWRMaXN0K2NvbXBhcmVyElNvcnRlZExpc3Qra2V5TGlzdBRTb3J0ZWRMaXN0K3ZhbHVlTGlzdAMCBQUAAAMDAx1TeXN0ZW0uQ29sbGVjdGlvbnMuU29ydGVkTGlzdAgIG1N5c3RlbS5Db2xsZWN0aW9ucy5Db21wYXJlciVTeXN0ZW0uQ29sbGVjdGlvbnMuU29ydGVkTGlzdCtLZXlMaXN0J1N5c3RlbS5Db2xsZWN0aW9ucy5Tb3J0ZWRMaXN0K1ZhbHVlTGlzdAkKAAAACQsAAAAJDAAAAAkMAAAAAAAAAAAAAAAJDQAAAAoKBAoAAAAdU3lzdGVtLkNvbGxlY3Rpb25zLlNvcnRlZExpc3QHAAAABGtleXMGdmFsdWVzBV9zaXplB3ZlcnNpb24IY29tcGFyZXIHa2V5TGlzdAl2YWx1ZUxpc3QFBQAABAMDCAgkU3lzdGVtLk5ldC5QYXRoTGlzdCtQYXRoTGlzdENvbXBhcmVyAgAAACVTeXN0ZW0uQ29sbGVjdGlvbnMuU29ydGVkTGlzdCtLZXlMaXN0J1N5c3RlbS5Db2xsZWN0aW9ucy5Tb3J0ZWRMaXN0K1ZhbHVlTGlzdAkOAAAACQ8AAAABAAAAAQAAAAkQAAAACgkRAAAABAsAAAANU3lzdGVtLk9iamVjdAAAAAAQDAAAAAAAAAAEDQAAABtTeXN0ZW0uQ29sbGVjdGlvbnMuQ29tcGFyZXIBAAAAC0NvbXBhcmVJbmZvAyBTeXN0ZW0uR2xvYmFsaXphdGlvbi5Db21wYXJlSW5mbwkSAAAAEA4AAAAQAAAABhMAAAAFL3BhdGgNDxAPAAAAEAAAAAkUAAAADQ8FEAAAACRTeXN0ZW0uTmV0LlBhdGhMaXN0K1BhdGhMaXN0Q29tcGFyZXIAAAAAAgAAAAQRAAAAJ1N5c3RlbS5Db2xsZWN0aW9ucy5Tb3J0ZWRMaXN0K1ZhbHVlTGlzdAEAAAAKc29ydGVkTGlzdAMdU3lzdGVtLkNvbGxlY3Rpb25zLlNvcnRlZExpc3QJCgAAAAQSAAAAIFN5c3RlbS5HbG9iYWxpemF0aW9uLkNvbXBhcmVJbmZvAwAAAAZtX25hbWUNbV9Tb3J0VmVyc2lvbgdjdWx0dXJlAQMAIFN5c3RlbS5HbG9iYWxpemF0aW9uLlNvcnRWZXJzaW9uCAkEAAAACn8AAAAFFAAAABtTeXN0ZW0uTmV0LkNvb2tpZUNvbGxlY3Rpb24EAAAABm1fbGlzdAltX3ZlcnNpb24LbV9UaW1lU3RhbXAUbV9oYXNfb3RoZXJfdmVyc2lvbnMDAAAAHFN5c3RlbS5Db2xsZWN0aW9ucy5BcnJheUxpc3QIDQECAAAACRcAAAABAAAAAAAAAAAAAAABBBcAAAAcU3lzdGVtLkNvbGxlY3Rpb25zLkFycmF5TGlzdAMAAAAGX2l0ZW1zBV9zaXplCF92ZXJzaW9uBQAACAgJGAAAAAEAAAABAAAAEBgAAAAEAAAACRkAAAANAwUZAAAAEVN5c3RlbS5OZXQuQ29va2llFQAAAAltX2NvbW1lbnQMbV9jb21tZW50VXJpD21fY29va2llVmFyaWFudAltX2Rpc2NhcmQIbV9kb21haW4RbV9kb21haW5faW1wbGljaXQJbV9leHBpcmVzBm1fbmFtZQZtX3BhdGgPbV9wYXRoX2ltcGxpY2l0Bm1fcG9ydA9tX3BvcnRfaW1wbGljaXQLbV9wb3J0X2xpc3QIbV9zZWN1cmUKbV9odHRwT25seQttX3RpbWVTdGFtcAdtX3ZhbHVlCW1fdmVyc2lvbgttX2RvbWFpbktleQ9Jc1F1b3RlZFZlcnNpb24OSXNRdW90ZWREb21haW4BBAQAAQAAAQEAAQAHAAAAAQABAAAKU3lzdGVtLlVyaQIAAAAYU3lzdGVtLk5ldC5Db29raWVWYXJpYW50AgAAAAEBDQEBCAEBDQgBAQIAAAAJBAAAAAoF5f///xhTeXN0ZW0uTmV0LkNvb2tpZVZhcmlhbnQBAAAAB3ZhbHVlX18ACAIAAAABAAAAAAYcAAAACTEyNy4wLjAuMQAAAAAAAAAAAAYdAAAABW5hbWUxCRMAAAAACQQAAAABCgAAgFhsCQ2+tQgGIAAAAAV2YWx1ZQAAAAAJBwAAAAAACw== Expected: True Actual: False Stack Trace: at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.ValidateAgainstBlobs(Object obj, String[] blobs) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Runtime.Serialization.Formatters/tests/BinaryFormatterTests.cs:line 62 Build : Master - 20170626.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release - OSX.1012.Amd64-x64 - Release +21722 area-Infrastructure Turn netcore vs netfx apicompat checks into errors To help with compat issues like https://github.com/dotnet/corefx/pull/21388/files#r123627397 we need to turn the ApiCompat runs on all the time and make them errors. The start of this work is in branch https://github.com/weshaggard/corefx/tree/EnableNetFxApiCompat but it still needs some work before it passes. cc @ericstj @danmosemsft +21723 area-System.Threading Enable ReaderWriterLockSlim test for UapAot Fixes #21585 Actual issue fixed by PRs dotnet/coreclr#12530 and dotnet/corert#4018 +21724 area-Serialization DerivedTypeWithDifferentOverrides fail when running on desktop We need enable this test back on netfx once port #21716 on the desktop. +21725 area-System.Threading Add some debugging code to help diagnose an issue Issue #18058 +21726 area-System.Net Verify that Interop.Kernel32.SetFileCompletionNotificationModes is available in UAP Ensure that Interop.Kernel32.SetFileCompletionNotificationModes Win32 API is available in the Store Profile. Related to the discussion in #20212 +21727 area-System.Diagnostics Replace NtQueryInformationProcess with GetProcessID GetProcessID is in WACK We only use NtQueryInformationProcess in one place - GetProcessIdFromHandle so we can remove all use of it. @sepidehMS +21728 area-System.Diagnostics Throw PNSE for Process.Modules and Process.MainModule in UWP We cannot use K32EnumProcessModules in UWP as it's not on the approved list. It’s used by Process.Modules and Process.MainModule -- usage is low and there's workarounds so just throw PNSE for those in UWP only. +21729 area-System.Net Certain TcpClient (and potentially other class) constructors perform I/O Performing I/O in a constructor is not supported by the UWP policies if that constructor is called on an UI thread. We need to investigate if we need to change the implementation, obsolete the constructors or at least document this behavior. +21730 area-System.Runtime Initial commit of a .NET Standard status suite My team is working on tech to generate tests based on observations of real running applications. This first commit is an experiment to understand the value these tests will have an the cost. More to come. cc: @weshaggard @danmosemsft +21731 area-Serialization Fix DerivedTypeWithDifferentOverrides in reflectiononly mode Test DerivedTypeWithDifferentOverrides still fail in reflectiononly mode. #21716 +21732 area-System.Net Tracking ETW UAP test failures against a single issue. Global mutex is not supported in UAP. - Removing Global mutex bug# - it will not be supported in UAP. - Tracking all ETW UAP tests failures against a single issue. +21733 area-System.Data Add TestCommandBuilder() and TestInitialCatalogStandardValues() in SqlSchemaInfoTest TestCommandBuilder() and TestInitialCatalogStandardValues() need to be filled out after CommandBuilder and PropertyDescriptor become supported in .NET Core. +21735 area-Infrastructure Update intellisense rel Port https://github.com/dotnet/corefx/pull/21681 to release/2.0.0 PTAL @ericstj FYI @Petermarcu +21736 area-System.Security [release/2.0] Port HighSierra crypto fixes Port the bugfixes for crypto on macOS High Sierra from https://github.com/dotnet/corefx/pull/21631. Since the disabled test didn't eliminate the segfault in test execution it isn't being backported with this PR. +21737 area-System.Security [release/1.1] Address kCCUnimplemented in CCCryptoReset for ECB Backport from https://github.com/dotnet/corefx/pull/21631. This commit is the only one relevant to the 1.1 release. +21738 area-System.Net HttpClientEKUTest hang in UAP The HttpClientEKUTest tests require several prerequisites installed to run. I've noticed that the tests hang if the root CA is installed. The tests make use of most of the server certificate callback and client certificates so it may be that this issue is related to (or just a side effect of) #21627 and #21628 +21739 area-System.Net Enabling BypassOnLocal_MatchesExpected test after dependent contracts were fixed for UAP Fixes #20137 Fixes #17995 +21740 area-System.Runtime Fix intermittent failures in StringTests Fixes: https://github.com/dotnet/corefx/issues/21541 and also few issues which we haven't hit yet but were time bombs Root cause of failures: On UAP setting culture for the first time happens immediately. After the first set it may not happen immediately and the value is dependent on the fact if Windows has already changed it (this usually happens really quickly but is not quick enough for stress testing) Simple repro showing the issue: ```csharp for (int i = 0; i < 1000; i++) { foreach (var culture in cultures) { var c = culture; CultureInfo.CurrentCulture = c; Assert.Equal(c.LCID, CultureInfo.CurrentCulture.LCID); } } // example cultures are hu-HU, invariant, en-US ``` This has failed 100% of the time on my local box +21741 area-System.Runtime GCHandle double-free in GCHandleTests This case https://github.com/dotnet/corefx/blob/954d7199ffd45537e89aa1b15b3cc38df56f58e1/src/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/GCHandleTests.cs#L125 is causing the GCHandle to be double-freed here https://github.com/dotnet/corefx/blob/954d7199ffd45537e89aa1b15b3cc38df56f58e1/src/System.Runtime.InteropServices/tests/System/Runtime/InteropServices/GCHandleTests.cs#L151 It leads to intermittent crashes with release CoreCLR build, and asserts with debug CoreCLR build. +21742 area-System.Net Removing ActiveIssue attributes. Adding component name to all WebClient tests. Fixes #20141 Fixes #18680 (removing ActiveIssue) +21743 area-System.Runtime Fix GCHandle double-free Fix https://github.com/dotnet/corefx/issues/21741, #21703, #21526 +21744 area-System.Runtime Using WindowsRuntimeBuffer should not require rd.xml From @yizhang82 in #21658 > @hughbe @safern The MissingMetadataException doesn't make sense to me. It looks like there is a bug in latest .NET native. We should not require people to add WindowsRuntimeBuffer in rd.xml. @tijoytom Can you help take a look? The exception diff seems to be a result of overly aggressive optimization. I remember @hoyMS mentioned something like this in the past. If we keep running into issues like these, we should consider turning off that particular optimization, at least in our testing. And if that optimization doesn't bring us a lot of value, we should consider simply turn it off in the compiler by default. The failing tests were fixed by updating the `rd.xml` file. The failing tests were: - IsSameData_Buffer_ReturnsExpected - AsStream_Buffer_Success +21745 area-System.Diagnostics Fix System.Diagnostic.Tracing Tests Running on UWP Various fixes to EventSource tests to enable them to run on UWP. +21746 area-System.Diagnostics Remove usage of NtQueryInformationProcess and K32EnumProcessModules from System.Diagnosctics.Process for UWP Fixes https://github.com/dotnet/corefx/issues/21727 Fixes https://github.com/dotnet/corefx/issues/21728 Replaces NtQueryInformationProcess with GetProcessId and converts usage of K32EnumProcessModules to use QueryFullProcessImageName instead for UWP. cc: @danmosemsft @stephentoub +21747 area-System.Drawing [porting] Image.FromFile has different argument validation from netfx "Following tests pass with netfx, fail with netcoreapp: ```cs [Fact] [ActiveIssue(21747, TestPlatforms.Windows)] public void FromFile_NullFileName_ThrowsArgumentNullException() { AssertExtensions.Throws(""path"", () => Image.FromFile(null)); AssertExtensions.Throws(""path"", () => Image.FromFile(null, useEmbeddedColorManagement: true)); } [Fact] [ActiveIssue(21747, TestPlatforms.Windows)] public void FromFile_EmptyFileName_ThrowsArgumentNullException() { AssertExtensions.Throws(""path"", null, () => Image.FromFile(string.Empty)); AssertExtensions.Throws(""path"", null, () => Image.FromFile(string.Empty, useEmbeddedColorManagement: true)); } [Fact] [ActiveIssue(21747, TestPlatforms.Windows)] public void FromFile_LongFile_ThrowsPathTooLongException() { string fileName = new string('a', 261); Assert.Throws(() => Image.FromFile(fileName)); Assert.Throws(() => Image.FromFile(fileName, useEmbeddedColorManagement: true)); } [Fact] [ActiveIssue(21747, TestPlatforms.Windows)] public void FromFile_NoSuchFile_ThrowsFileNotFoundException() { Assert.Throws(() => Image.FromFile(""NoSuchFile"")); Assert.Throws(() => Image.FromFile(""NoSuchFile"", useEmbeddedColorManagement: true)); } ``` I have a fix" +21748 area-System.Drawing Add Image.FromFile/Image.FromStream negative tests Fixes #21747 +21750 area-System.Net Enable a bunch of ManagedHandler tests Required a few fixes: - libcurl respects the http_proxy environment variable, and we had a test verifying that. I added basic support for this, but we'll want to go back and add some additional support. - DefaultProxyCredentials were being ignored. cc: @geoffkizer +21752 area-System.Net Enable more ManagedHandler tests Required a few small src fixes: - Special-case handling of count==0 reads - Wrap IOExceptions and InvalidOperationExceptions from SendAsync in HttpRequestException - Add a ToString override to SafeFreeContextBufferChannelBinding to output the value of the binding rather than the type name in order to match WinHttpHandler's binding's behavior (@davidsh, is this the right thing to do?) cc: @geoffkizer, @davidsh +21753 area-System.Runtime Move ValueTask and friends to Corelib We will need to be able to use these in APIs defined in Corelib, e.g. on Stream. +21754 area-Infrastructure Disabled Performance tests for UAP in arm have to be investigated and re-enabled System.Numerics.Vectors.Performance.Tests and System.Collections.Performance.Tests where hanging in official build for UAP in ARM. We need to investigate if it was an actual hang or just because the ARM computers are slower. They where disabled in: https://github.com/dotnet/corefx/pull/21674 cc: @joperezr @danmosemsft +21755 area-System.Net UWP ClientWebSocket.ReceiveAsync returns partial message data as it arrives With these changes, the UWP implementation of ClientWebSocket.ReceiveAsync hands partial WebSocket message data back to the app as soon as it arrives. This eliminates the behavioral difference between .NET Core and UWP tracked by issue #21102. This fix leverages WinRT APIs that are only present since Windows 10 Insider Preview Build 16215, so API presence checks are in place. The pre-fix behavior takes effect when running on older Windows builds. Fixes #21102 CC: @mconnew +21756 area-System.Collections Avoid boxing HashBucket This avoids the boxing cost of `ImmutableHashSet+HashBucket` and fixes equality checks during rebalancing so that the contents of any hash collisions are considered. This fixes: 1. performance 1. data corruption on AoT platforms 1. data corruption due to improper tree rebalancing on any platform in edge cases of hash collisions. At least in theory. I haven't written a test to prove it. This makes `ImmutableHashSet` follow the same pattern as `ImmutableDictionary` for equating `HashBucket` instances. Fixes #19044 +21758 area-System.Runtime Re-enable one System.Runtime.Extensions Evironment_Exit test and fix it for UAP Contributes: https://github.com/dotnet/corefx/issues/21415 The test CheckExitCode was failing because: 1. RemoteExecutor for UAP always checks that the invoke exit code is SuccessExitCode (42). Since the intention of this test was to check an specific exit code because we where manipulating the process through a parameter to tell it to set that exit code it was failing since it was different than 42. To solve this I added an ExpectedExitCode to the RemoteInvokeOptions class which defaults to SuccessExitCode but this allows testing to override that exit code if for some reason the test should expect for a different one. 2. Even after I fixed that they where failing with NullReferenceException because we where trying to access the exit code from RemoteExecutor's result process, but for UAP this process is set to true. So I decided to split the tests. cc: @tarekgh @joperezr @danmosemsft +21761 area-System.Net SslStream bug on Linux/OSX: Interop+OpenSsl+SslException: SSL Handshake failed with OpenSSL error "**`dotnet --version` output:** 1.0.1 The bug is present on Ubuntu, but not on Windows 7. I suspect it is an **issue on both Linux and OSX, but not an issue on Windows**, because it doesn't use OpenSSL. I created a project where **I reproduce the issue**, you can find it here: https://github.com/nopara73/SslStreamBug/ It only consists of a `Program.cs` file. The **place** where the exceptions are thrown is at `AuthenticateAsClientAsync`: ``` Console.WriteLine(""Ssl authenticating as client...""); using (var stream = new NetworkStream(socket, ownsSocket: false)) using (SslStream httpsStream = new SslStream(stream, leaveInnerStreamOpen: true)) { httpsStream .AuthenticateAsClientAsync( uri.DnsSafeHost, new X509CertificateCollection(), SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12, checkCertificateRevocation: true) .Wait(); } ``` **And the exception:** ``` Unhandled Exception: System.AggregateException: One or more errors occurred. (A call to SSPI failed, see inner exception.) ---> System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> Interop+OpenSsl+SslException: SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL. ---> Interop+Crypto+OpenSslCryptographicException: error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error --- End of inner exception stack trace --- at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) at System.Net.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ReadFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait() at SslStreamBug.Program.Main(String[] args) in /home/user/SslStreamBug/SslStreamBug/Program.cs:line 56 ``` **Might be related:** https://github.com/dotnet/corefx/issues/10858 https://stackoverflow.com/questions/38960081/asp-net-core-linux-ssl-ssl-read-bio-failed-with-openssl-error " +21762 area-Serialization Native case fix @huanwu @shmao Test case about #17302. Please help review the code. +21763 area-System.Net [Proposal] Change internal type name System.Net.WebFileStream to System.Net.FileWebStream After porting one of my projects from .NET Framework 4.6.1 to netcoreapp2.0 target I have noticed some failing tests due to a tests dependency on netfx internal type name System.Net.FileWebStream. This type has different name in .Net Core - [System.Net.WebFileStream](https://github.com/dotnet/corefx/blob/master/src/System.Net.Requests/src/System/Net/FileWebRequest.cs#L311). Although I am aware of consequences of taking dependencies on internal framework types (they are not guaranteed to not change in the future) I think that in this case it would be reasonable to use identical type names for types performing the very same functions across related frameworks. Going even further it could be quite useful to have this type exposed in public API as it is exposed publicly anyway as a return type of some framework methods i.e. ```C# public Stream System.Net.WebClient.OpenRead(Uri uri); ``` That change would allow safe use of return type in scenarios where it is used to differentiate source of data returned. +21764 area-System.Drawing Add Graphics property tests +21765 area-System.Linq Modernise C# style within System.Linq In particular, `is`-with patterns is applicable quite a few places. +21766 area-System.Data System.Data.SqlClient .NET Core 2.0 Preview 2 - Unable to load DLL 'sni.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) "I'm getting this error with .NET core 2.0 Preview 2. I'm running Windows 7 SP1 x64. When I run dotnot --version from my output directory I get _2.0.0-preview2-006497_ # Code Example: ```c# static void Main(string[] args) { using (var conn = new System.Data.SqlClient.SqlConnection()) { using (var cmd = new System.Data.SqlClient.SqlCommand(, conn)) { cmd.CommandType = System.Data.CommandType.Text; conn.Open(); // error happens here var reader = cmd.ExecuteReader(); while (reader.Read()) { // doesn't matter } } } System.Console.WriteLine(""Done""); } ``` # Repo steps using VS 15.3.0 Preview 3.0: Create new C# .NET Core console app Add System.Data.SqlClient from nuget (currently version 4.3.1) Copy/paste code from above Start debugging project # What should happen: It should just work. It works fine in a project that targets ""regular"" .NET # Exception I'm getting: System.TypeInitializationException occurred HResult=0x80131534 Message=The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception. Source= StackTrace: at System.Data.SqlClient.TdsParser..ctor(Boolean MARS, Boolean fAsynchronous) at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, TimeoutTimer timeout) at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, Boolean redirectedUserInstance) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at ConsoleApp1.Program.Main(String[] args) in C:\Users\joshua_lonberger\Desktop\TicketModeler\ConsoleApp1\Program.cs:line 17 Inner Exception 1: TypeInitializationException: The type initializer for 'System.Data.SqlClient.SNILoadHandle' threw an exception. Inner Exception 2: DllNotFoundException: Unable to load DLL 'sni.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) " +21767 area-System.Diagnostics "Process.Start(""cmd.exe"") launches inside existing console window (on Windows)" "_From @danwalmsley on June 30, 2017 8:57_ I would expect this code to launch a separate console window. ``` using System; using System.Diagnostics; namespace console_test { class Program { static void Main(string[] args) { Process.Start(""cmd.exe""); Console.ReadKey(); } } } ``` _Copied from original issue: dotnet/coreclr#12571_" +21771 area-System.Threading Clean up ValueTask code in preparation for copying it to coreclr Contributes to #21753 @weshaggard, we should have deleted the temporary, hidden member previously, but neglected to do so. No one should be using it. Concerns about removing it? +21772 area-System.IO Port #21273: read-only file system delete fix Ports changes from #21588, tests from #21684 for issue #21273. +21773 area-Infrastructure Updating xUnit Performance Api and Performance Tests - This changes enable us to have a baseline and track performance changes in the product. (The benchmarks and the way we measured has changed and we did not have an appropriate way to compare release/1.1.0 vs. release/2..0 vs. master) +21774 area-System.Runtime Fix System.Runtime.Loader.DefaultContext on uap (and simplify test code) Fixes https://github.com/dotnet/corefx/issues/20303 Test is testing few things (only stuff related to this PR is mentioned): - ensuring assembly could not be loaded by simply providing its name - changing resolver - checking if assembly can be loaded Previous logic of the test was moving the test assembly to a different path to ensure that assembly can't be found by default. This logic was problematic on UAP since we don't have access to the assembly to rename it. This change is making renaming happen during the build. That has simplified the logic of the test and thus some tiny refactoring was added to clean it up. +21775 area-System.Runtime Improve test coverage for Array.Clone .NET Native prior to 1.6 used to have a bug around `Array.Clone` for multidimensional arrays: https://stackoverflow.com/questions/44850907/avoid-net-native-bugs This was fixed as a side effect of https://github.com/dotnet/corert/commit/90698bcde54ddc0eb7c1c452cef6641f8b73bbac (we no longer implement MdArrays as an object with a single field that is an SzArray that backs the MdArray's data (we forgot to override `Clone` on that object)). We might want to add a regression test for this. +21776 area-System.Data No testResults.xml for System.Data.Common.Tests in UAPAOT This tests are failing fast. I just investigated and the tests that are causing this to happen are: [SqlXmlTest](https://github.com/dotnet/corefx/blob/ad697e016a5ed01a698ba780ea9dda0ed5cee901/src/System.Data.Common/tests/System/Data/SqlTypes/SqlXmlTest.cs#L34) It seems like all of them cause this tests to fail fast and not produce testResults.xml My guess since they are failing fast and only in all the Debug runs is that a Debug.Assert is failing. cc: @saurabh500 @krwq @danmosemsft @joshfree +21777 area-System.IO AnonymousPipeTest_CrossProcess.PingPong fails with SEH exception on uap " The test was disabled. Output: ``` Args: System.IO.Pipes.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonuaptests -notrait category=nonwindowstests -notrait category=OuterLoop -notrait category=failing Discovering: System.IO.Pipes.Tests Discovered: System.IO.Pipes.Tests Starting: System.IO.Pipes.Tests ERROR: System.IO.Pipes.Tests.AnonymousPipeTest_CrossProcess.PingPong [FAIL] System.AggregateException : One or more errors occurred. (RemoteExecuter: System.IO.Pipes.Tests, Version=4.1.1.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb PingPong_OtherProcess 2060, 2068 System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Runtime.InteropServices.SEHException: External component has thrown an exception. at Interop.Kernel32.GetFileType(SafeHandle hFile) at System.IO.Pipes.PipeStream.ValidateHandleIsPipe(SafePipeHandle safePipeHandle) at System.IO.Pipes.AnonymousPipeClientStream.Init(PipeDirection direction, SafePipeHandle safePipeHandle) at System.IO.Pipes.AnonymousPipeClientStream..ctor(PipeDirection direction, String pipeHandleAsString) at System.IO.Pipes.Tests.AnonymousPipeTest_CrossProcess.PingPong_OtherProcess(String inHandle, String outHandle) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at RunnerRemoteExecutionService.RemoteExecutor.HandleTheRequest(ValueSet message, ValueSet returnData) Returned Error code: -4 Expected: True Actual: False) ---- RemoteExecuter: System.IO.Pipes.Tests, Version=4.1.1.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb PingPong_OtherProcess 2060, 2068 System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Runtime.InteropServices.SEHException: External component has thrown an exception. at Interop.Kernel32.GetFileType(SafeHandle hFile) at System.IO.Pipes.PipeStream.ValidateHandleIsPipe(SafePipeHandle safePipeHandle) at System.IO.Pipes.AnonymousPipeClientStream.Init(PipeDirection direction, SafePipeHandle safePipeHandle) at System.IO.Pipes.AnonymousPipeClientStream..ctor(PipeDirection direction, String pipeHandleAsString) at System.IO.Pipes.Tests.AnonymousPipeTest_CrossProcess.PingPong_OtherProcess(String inHandle, String outHandle) --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at RunnerRemoteExecutionService.RemoteExecutor.HandleTheRequest(ValueSet message, ValueSet returnData) Returned Error code: -4 Expected: True Actual: False Stack Trace: at System.Threading.Tests.ThreadTestHelpers.<>c__DisplayClass3_0.b__1() at System.Threading.Tests.ThreadTestHelpers.<>c__DisplayClass3_0.b__2() at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.IO.Pipes.Tests.AnonymousPipeTest_CrossProcess.PingPong() ----- Inner Stack Trace ----- at System.Diagnostics.RemoteExecutorTestBase.<>c__DisplayClass14_0.b__1() at System.Threading.Tests.ThreadTestHelpers.<>c__DisplayClass3_0.b__0() Finished: System.IO.Pipes.Tests D:\e\clr\corefx\Tools\tests.targets(346,5): warning : System.IO.Pipes.Tests Total: 140, Errors: 0, Failed: 1, Time: 0.696658 [D:\e\clr\corefx\src\System.IO.Pipes\tests\System.IO.Pipes.Tests.csproj] Finished running tests. End time=13:45:09.95, Exit code = 0 D:\e\clr\corefx\Tools\tests.targets(346,5): warning MSB3073: The command ""D:\e\clr\corefx\bin/Windows_NT.AnyCPU.Debug/System.IO.Pipes.Tests/netstandard//RunTests.cmd D:\e\clr\corefx\bin/testhost/uap-Windows_NT-Debug-x64/"" exited with code -1. [D:\e\clr\co refx\src\System.IO.Pipes\tests\System.IO.Pipes.Tests.csproj] D:\e\clr\corefx\Tools\tests.targets(354,5): error : One or more tests failed while running tests from 'System.IO.Pipes.Tests' please check D:\e\clr\corefx\bin/Windows_NT.AnyCPU.Debug/System.IO.Pipes.Tests/netstandard/testResults.xml for details! [D:\e\clr \corefx\src\System.IO.Pipes\tests\System.IO.Pipes.Tests.csproj] ```" +21778 area-System.Net Test failure: System.Net.Http.Functional.Tests failing on macOS HIgh Sierra specifically "Opened on behalf of @danmosemsft The test `System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test/InvalidCertificateServers_CertificateValidationDisabled_Succeeds(url: \""https://wrong.host.badss...` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.CurlException : SSL peer certificate or SSH remote key was not OK Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 462 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.d__3.MoveNext() in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.AcceptAllCerts.cs:line 68 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 636 at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs:line 875 Build : Master - 20170629.02 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release " +21779 area-System.Data Disable System.Data.Common.Tests.SqlXmlTest for uapaot This tests are still crashing in uap. See: https://github.com/dotnet/corefx/issues/19202 cc: @saurabh500 @danmosemsft +21780 area-Infrastructure Have the uap version of RemoteExecutorTestBase.RemoteInvoke wait in a… … background thread Fixes #21275 +21781 area-Infrastructure Delete the 4.5.0-preview2 packages from myget "We had a couple builds of master that used the post-2.0 versioning (4.5.0) with the preview2 string. This is bogus. The packages are causing problems for folks who try to ""get latest"" and are getting old builds. /cc @weshaggard @dagood can you help script this with your NuGet-CLI-fu?" +21782 area-System.Text Re-enable Regex tests on UAP and speed them up (more than 40x times) Fixes https://github.com/dotnet/corefx/issues/21547 Fixes https://github.com/dotnet/corefx/issues/21835 I could not repro original issue (tests hanging) at all locally but seems to me like regular timeout. **I'm leaving these tests running over the weekend in a loop to see if they will fail.** Currently running for several minutes and haven't failed yet. Timing change ``` System.Text.RegularExpressions.Tests.RegexGroupTests Before => 128.812s Now => 2.784 ``` Most of the time difference is due to not calling RemoteInvoke so many times +21785 area-Infrastructure Update branch name This prepares us for pushing info to dotnet/versions +21786 area-Infrastructure UWP test runner metadata needs to be updated to Windows Insider SDK flight 16225 The Windows.winmd files used by the CoreFX repo and associated .NET Native toolchain were updated this week to the Windows.winmd corresponding to Windows Insider SDK flight 16225. For full context, see #21642 I’m now working on #21102 (out for PR - #21755) and the new code that references new APIs compiles just fine. However, running the UWP tests (i.e., msbuild /t:rebuildandtest /p:TargetGroup=uap) leads to a bunch of MissingMethodExceptions, such as: > System.Exception: Unknown ---> System.MissingMethodException: Method not found: 'Void Window > s.Networking.Sockets.MessageWebSocketControl.put_ReceiveMode(Windows.Networking.Sockets.MessageWebSocketReceiveMode)' All new API calls are guarded by _IsPropertyPresent_ checks already, and the code is executing on a machine that contains the new APIs (which is why the new code attempts to use them). After some analysis, we realized that these exceptions are due to the test runner’s UWP app having been compiled against an old Windows 10 SDK. Could you please help us update the test runner to be compiled against the RS3 16225 SDK? :) Please, let me know how I can help. P.S. Compiling against pre-RS3 SDKs won’t be supported for NETStandard20, so this is just a test issue. P.P.S. All tests pass in UAPAOT mode, since they execute outside of a UWP package. CC: @davidsh @weshaggard @yizhang82 @tijoytom @safern @DavidGoll @danmosemsft @joperezr @joshfree @MattGal +21788 area-Meta Namespace resolution not working "I created a simple Console app using .Net Core project template using Visual Studio and give that project name ""Core.Console.CS1"". The default program.cs files looks like this ```c# using System; namespace Core.Console.CS1 { class Program { static void Main(string[] args) { Console.WriteLine(""Hello World!""); } } } ``` on building the project, i get the error: WriteLine not found in Core.Console namespace. However, the full Namespace here is Core.Console.CS1, so my program should compile here." +21790 area-System.Net Feature Request: leaveOpen in System.Net.Http.StreamContent Hi, recently I'm using `StreamContent` with `HttpClient` to perform some file uploading operations. When I tried to implement the retry logic, I found out that * The passed-in `HttpContent` contained in `HttpRequestMessage` got disposed in `HttpClient.SendAsync`. * The underlying `Stream` in `StreamContent` [got disposed](https://github.com/dotnet/corefx/blob/6bf1e7c3032d3c24d5a41bbd880549ef4a8de2da/src/System.Net.Http/src/System/Net/Http/StreamContent.cs#L85) in `StreamContent.Dispose()` invocation. This means that if I have passed in a `Stream` in `StreamContent`'s ctor, the very `Stream` will be inevitably disposed after the first `HttpClient.SendAsync` invocation. This is not good, especially if the `StreamContent`-user is agnostic about how to reconstruct another brand-new `Stream` instance (but still can seek the position so the `Stream` will be at the same position as it is in the first call, as long as its `CanSeek` is `true`). I ended up writing [my own version of `StreamContent`](https://github.com/CXuesong/WikiClientLibrary/blob/3a3ece77923beb31956afee973e72e17fe1d2f4f/WikiClientLibrary/HttpContentEx.cs#L65) that won't dispose the underlying `Stream` when disposed. Still, I hope there will be some `leaveOpen`-like parameter in the constructor of `StreamContent`, like [the constructor of `StreamReader`](https://github.com/dotnet/corefx/blob/6bf1e7c3032d3c24d5a41bbd880549ef4a8de2da/src/System.Runtime.Extensions/src/System/IO/StreamReader.cs#L140). +21792 area-System.Memory Rename AsSpan to AsReadOnlySpan Fix #20242 @ahsonkhan +21793 area-System.Net HttpClient.GetAsync() causes uncatchable CryptographicException on Linux in OpenSslX509ChainProcessor.MapVerifyErrorToChainStatus "System: Ubuntu 16.04 and Ubuntu 16.10 Dotnet release: dotnet-dev-1.0.4 apt list --installed | grep dotnet output: ``` dotnet-dev-1.0.4/yakkety,now 1.0.4-1 amd64 [installed] dotnet-host/yakkety,now 2.0.0-preview2-25407-01-1 amd64 [installed,automatic] dotnet-hostfxr-1.1.0/yakkety,now 1.1.0-1 amd64 [installed,automatic] dotnet-sharedframework-microsoft.netcore.app-1.1.2/yakkety,now 1.1.2-1 amd64 [installed,automatic] ``` apt list --installed | grep openssl output: ``` libgnutls-openssl27/yakkety-updates,yakkety-security,now 3.5.3-5ubuntu1.2 amd64 [installed] openssl/yakkety-updates,now 1.0.2g-1ubuntu9.3 amd64 [installed] ``` Repro Code: ``` using System; using System.Net.Http; using System.Threading.Tasks; namespace Repro { class Program { static void Main(string[] args) { Do().GetAwaiter().GetResult(); } static async Task Do() { var client = new HttpClient(); try { var response = await client.GetAsync((new Uri(""https://obr03.ru/""))); Console.WriteLine(""Ok""); } catch(Exception ex) { Console.WriteLine(""Catched""); } } } } ``` Result Windows: `Catched` Result Linux: ``` Unhandled Exception: System.Security.Cryptography.CryptographicException: Error occurred during a cryptographic operation. at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.MapVerifyErrorToChainStatus(X509VerifyStatusCode code) at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.AddElementStatus(X509VerifyStatusCode errorCode, List`1 elementStatus, List`1 overallStatus) at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.AddElementStatus(List`1 errorCodes, List`1 elementStatus, List`1 overallStatus) at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.BuildChain(X509Certificate2 leaf, HashSet`1 candidates, HashSet`1 downloaded, HashSet`1 systemTrusted, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan& remainingDownloadTime) at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) at System.Net.Security.CertificateValidation.BuildChainAndVerifyProperties(X509Chain chain, 509Certificate2 remoteCertificate, Boolean checkCertName, String hostName) at System.Net.Http.CurlHandler.SslProvider.VerifyCertChain(IntPtr storeCtxPtr, IntPtr curlPtr) at Interop.Http.MultiPerform(SafeCurlMultiHandle multiHandle) at System.Net.Http.CurlHandler.MultiAgent.WorkerBodyLoop() Aborted (core dumped) ``` " +21795 area-System.Linq Remove checked floating negate instructions from S.L.Expressions Since checked/unchecked context has no effect on floating-point operations, `NegateCheckedSingle` is effectively a duplicate of `NegateSingle` and `NegateCheckedDouble` of `NegateDouble`. Remove these duplicates, reducing code size and number of cached instruction instances. +21796 area-System.Net Deadlock between HttpClientHandler and HttpWebRequest Classic out of order lock. This issue exists in 4.1.1.1 but not the .net Framework version (4.0.0.0). Seems to be introduced by https://github.com/dotnet/corefx/commit/d24ddedc5edb10d4ed385a1eb8bfb2351a117cd5. Which is related to #11100 Thread 1: ``` [Managed to Native Transition] System.dll!System.Net.Connection.CloseOnIdle() !!! lock (this) !!! System.dll!System.Net.ConnectionGroup.PruneExcesiveConnections() System.dll!System.Net.ServicePoint.ResolveConnectionLimit() System.dll!System.Net.ServicePoint.ConnectionLimit.set(int value) !!! lock (this) !!! System.Net.Http.dll!System.Net.Http.HttpClientHandler.CreateAndPrepareWebRequest(System.Net.Http.HttpRequestMessage request) System.Net.Http.dll!System.Net.Http.HttpClientHandler.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) System.Net.Http.dll!System.Net.Http.HttpMessageInvoker.SendAsync(System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) System.Net.Http.dll!System.Net.Http.HttpClient.SendAsync(System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpCompletionOption completionOption, System.Threading.CancellationToken cancellationToken) System.Net.Http.dll!System.Net.Http.HttpClient.SendAsync(System.Net.Http.HttpRequestMessage request) ``` Thread 2: ``` [Managed to Native Transition] System.dll!System.Net.ServicePoint.IncrementConnection() !!! lock (this) !!! System.dll!System.Net.Connection.CheckNonIdle() System.dll!System.Net.Connection.StartRequest(System.Net.HttpWebRequest request, bool canPollRead) System.dll!System.Net.Connection.SubmitRequest(System.Net.HttpWebRequest request, bool forcedsubmit) !!! lock (this) !!! System.dll!System.Net.ServicePoint.SubmitRequest(System.Net.HttpWebRequest request, string connName) System.dll!System.Net.HttpWebRequest.SubmitRequest(System.Net.ServicePoint servicePoint) System.dll!System.Net.HttpWebRequest.GetResponse() ``` +21799 area-Infrastructure Move AssertExtensions to Corefx.Private.TestUtilities Can't do PlatformDetection right now as it requires a buildtools change for ConditionalFact/Theory to work. @tarekgh suggested this +21800 area-System.Drawing Add Font tests +21801 area-System.Security Prevent SslProvider exceptions from being thrown to native code When using HttpClient to communicate over SSL, a callback provided to OpenSSL invokes our managed verification callback which in turn calls back to OpenSSL to manipulate the server's cert. For certain kinds of bad certs, that manipulation may end up throwing an exception, which accidentally is allowed to propagate out of the managed callback back across the interop boundary, which is unsupported and ends up crashing. The fix is simply to expand the existing catch block to prevent such exceptions from propagating and instead appropriately marshal them to the request that should be failed. In addition, this particular failure triggers a debug fail fast in X509Certificates due to an unrecognized status code while trying to map error codes to chain status. I've added the particular error code to avoid the assert, but it looks like there are other missing codes as well, so we should subsequently review those missing codes to determine whether they should also be added. Contributes to https://github.com/dotnet/corefx/issues/21793 (fixes it, but we should aim to port the fix to 2.0 if possible, so keeping it open) cc: @bartonjs, @janvorli, @geoffkizer, @Qowy +21803 area-Meta Port Winforms to CoreFX As the porting of System.Drawing from the Mono code is in progress what are the possibilities to have Winforms ported to CoreFX? Not having an official supported portable GUI is the only single point in which Java is in advantage... What do you think? +21804 area-System.Linq System.Linq.Parallel.Tests crashing in UapAot when building in ret mode A bunch of tests are crashing when this tests are built in ret mode. If we build them in chk mode the tests run successfully. The exception thrown that is causing them to crash is the following: ``` Unhandled exception at 0x581410DF (mrt100_app.dll) in xunit.console.netcore.exe: 0xC0000005: Access violation reading location 0x00000000. ``` One place where I've got the debugger to break on this exception was: https://github.com/dotnet/corefx/blob/master/src/System.Linq.Parallel/src/System/Linq/Parallel/Utils/GrowingArray.cs#L27 Note that this only happens in ret mode for the following configurations: - Debug x86 - Release x86 - Release Arm - Debug Arm This seems to be a codegen bug when running optimization. cc: @kouvel @danmosemsft @joshfree +21805 area-System.Linq Fix System.Linq.Parallel.Tests for UapAot by building them on chk mode only Since they where a lot of tests to disable and the debugger just crashes I think this is the best workaround to have the tests running and producing testResults.xml - please see: https://github.com/dotnet/corefx/issues/21804 cc: @kouvel @danmosemsft @joshfree +21806 area-System.Linq Compile Boolean != as ^ in System.Linq.Expressions Boolean and lifted Boolean `!=` is identical to `^` in results. In the case of the interpreter this allows for one type, and its memoising field, to be removed, so do so. In the case of the compiler this allows for a slightly shorter CIL output. Detecting this adds to the compilation complexity, but also inlining `EmitUnliftedEquality` into `EmitUnliftedBinaryOp` can remove a branch on two tests so the nett result is simpler. +21807 area-Infrastructure Groovy failing in CI for Linux x64 Release Build `Caused: java.lang.IllegalArgumentException: Failed to prepare archiveArtifacts step` at https://ci3.dot.net/job/dotnet_corefx/job/master/job/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/741/console and other runs. +21808 area-System.Net Enable more ManagedHandler tests cc: @geoffkizer +21809 area-System.Runtime Proposal: CallerArgumentExpressionAttribute ## Rationale In order to facilitate the language feature at https://github.com/dotnet/csharplang/issues/287, which has been championed and discussed in the LDM, we should add `CallerArgumentExpressionAttribute` to the framework. The LDM notes seem to approve of getting this into the framework: see [here](https://github.com/dotnet/csharplang/blob/master/meetings/2017/LDM-2017-05-16.md#callerargumentexpression). ## Proposal ```cs namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)] public sealed class CallerArgumentExpressionAttribute : Attribute { public CallerArgumentExpressionAttribute(string parameterName); // Added in response to @svick's comment public string ParameterName { get; } } } ``` ## Notes - The name of the constructor argument is intentionally `parameterName` and not `argumentName`. Parameters refer to the variables declared inside the callee, while arguments are the values passed by the caller. ![image](https://user-images.githubusercontent.com/9159214/27773044-483c57ac-5f3e-11e7-9a87-50876915a518.png) +21810 area-Meta .NET Core should consider having the equivalent of Windows.Devices.* Filing based on feedback: https://docs.microsoft.com/en-us/uwp/api/ There are lots of basic device operations from GPIO, I2C, to Bluetooth that should be really easy to do on all devices when using .NET Core. +21811 area-System.Security DSA-SHA1 SignedXml issues .netcore 2.0 "I have a SAMLlibrary which I am trying to piece together on .net core 2.0, however I have hit an issue it some pre-existing tests. The tests pass fine on net461 but when using netcoreapp2.0 fail. All the test is doing is ```c# private static bool VerifySignature(XmlDocument assertion) { var signedXml = new SignedXml(assertion.DocumentElement); var nodeList = assertion.GetElementsByTagName(""Signature"", ""http://www.w3.org/2000/09/xmldsig#""); signedXml.LoadXml((XmlElement)nodeList[0]); Assert.NotNull(signedXml.Signature); return signedXml.CheckSignature(); } ``` The xml files that is being passed in is located in the tests here: [DSA-SHA1 Saml2Assertion_01](https://github.com/eByte23/SAMLSilly/blob/dev/2.0/tests/SAMLSilly.Tests/Assertions/Saml2Assertion_01) [DSA-SHA1 Saml2Assertion_02](https://github.com/eByte23/SAMLSilly/blob/dev/2.0/tests/SAMLSilly.Tests/Assertions/Saml2Assertion_01) All other non-DSA pass e.g. RSA1,RSA256 just these I believe to be completely valid XMLDSIGS validated online as well as on dotnet FF. Any help would be appreciated as this is a blocker for me/" +21813 area-System.Console "Test: System.ConsoleTests.Perf_Console/OpenStandardInput failed with ""System.IO.IOException"" Too many open files" Opened on behalf of @Jiayili1 The test `System.ConsoleTests.Perf_Console/OpenStandardInput` has failed. System.IO.IOException : Too many open files Stack Trace: at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandleHelper.Open(Func`1 fdFunc) at System.ConsolePal.OpenStandardInput() at System.ConsoleTests.Perf_Console.OpenStandardInput() Build : Master - 20170703.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170703.01/workItem/System.Console.Performance.Tests/analysis/xunit/System.ConsoleTests.Perf_Console~2FOpenStandardInput +21814 area-System.Net remove Linux SSL assert that's no longer true My previous change made this assert no longer valid. Remove it. @stephentoub +21815 area-System.Net FailFast: Expected offset 0 when decrypting in System.Net.Security.Tests Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170703.01/workItem/System.Net.Security.Tests/wilogs ~~~ 2017-07-02 17:29:52,725: INFO: proc(54): run_and_log_output: Output: Discovering: System.Net.Security.Tests 2017-07-02 17:29:52,959: INFO: proc(54): run_and_log_output: Output: Discovered: System.Net.Security.Tests 2017-07-02 17:29:53,105: INFO: proc(54): run_and_log_output: Output: Starting: System.Net.Security.Tests 2017-07-02 17:29:53,766: INFO: proc(54): run_and_log_output: Output: FailFast: Expected offset 0 when decrypting 2017-07-02 17:29:53,766: INFO: proc(54): run_and_log_output: Output: 2017-07-02 17:29:53,766: INFO: proc(54): run_and_log_output: Output: at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 2017-07-02 17:29:53,766: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamPal.EncryptDecryptHelper(SafeDeleteContext securityContext, Byte[] input, Int32 offset, Int32 size, Boolean encrypt, Byte[]& output, Int32& resultSize) in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamPal.Unix.cs:line 157 2017-07-02 17:29:53,767: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamPal.DecryptMessage(SafeDeleteContext securityContext, Byte[] buffer, Int32& offset, Int32& count) in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamPal.Unix.cs:line 64 2017-07-02 17:29:53,767: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SecureChannel.Decrypt(Byte[] payload, Int32& offset, Int32& count) in /root/corefx/src/System.Net.Security/src/System/Net/Security/SecureChannel.cs:line 972 2017-07-02 17:29:53,767: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslState.PrivateDecryptData(Byte[] buffer, Int32& offset, Int32& count) in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 501 2017-07-02 17:29:53,767: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslState.DecryptData(Byte[] buffer, Int32& offset, Int32& count) in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 496 2017-07-02 17:29:53,767: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.ProcessFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 795 2017-07-02 17:29:53,767: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.StartFrameBody(Int32 readBytes, Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 776 2017-07-02 17:29:53,767: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.StartFrameHeader(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 747 2017-07-02 17:29:53,767: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.StartReading(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 733 2017-07-02 17:29:53,767: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.ProcessRead(Byte[] buffer, Int32 offset, Int32 count, BufferAsyncResult asyncResult) in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 675 2017-07-02 17:29:53,767: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.Read(Byte[] buffer, Int32 offset, Int32 count) in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 131 2017-07-02 17:29:53,768: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.ReadByte() in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 124 2017-07-02 17:29:53,768: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStream.ReadByte() in /root/corefx/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 512 2017-07-02 17:29:53,768: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Write_ReadByte_Success() in /root/corefx/src/System.Net.Security/tests/FunctionalTests/SslStreamStreamToStreamTest.cs:line 248 2017-07-02 17:29:53,768: INFO: proc(54): run_and_log_output: Output: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 2017-07-02 17:29:53,768: INFO: proc(54): run_and_log_output: Output: at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 2017-07-02 17:29:53,768: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.<b__1>d.MoveNext() 2017-07-02 17:29:53,768: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,768: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.<>c__DisplayClass46_1.b__1() 2017-07-02 17:29:53,768: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExecutionTimer.d__4.MoveNext() 2017-07-02 17:29:53,768: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,768: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExecutionTimer.AggregateAsync(Func`1 asyncAction) 2017-07-02 17:29:53,768: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.d__9.MoveNext() 2017-07-02 17:29:53,768: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.RunAsync(Func`1 code) 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.d__46.MoveNext() 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.InvokeTestMethodAsync(Object testClassInstance) 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.<b__45_0>d.MoveNext() 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1.b__45_0() 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestRunner.d__4.MoveNext() 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(ExceptionAggregator aggregator) 2017-07-02 17:29:53,769: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.d__10`1.MoveNext() 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.RunAsync[T](Func`1 code) 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestRunner`1.d__43.MoveNext() 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestRunner`1.RunAsync() 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCaseRunner`1.d__19.MoveNext() 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCaseRunner`1.RunAsync() 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestMethodRunner`1.d__32.MoveNext() 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestMethodRunner`1.RunTestCasesAsync() 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestMethodRunner`1.d__31.MoveNext() 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestMethodRunner`1.RunAsync() 2017-07-02 17:29:53,770: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestClassRunner`1.d__38.MoveNext() 2017-07-02 17:29:53,771: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,771: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestClassRunner`1.RunTestMethodsAsync() 2017-07-02 17:29:53,771: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestClassRunner`1.d__37.MoveNext() 2017-07-02 17:29:53,771: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,771: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestClassRunner`1.RunAsync() 2017-07-02 17:29:53,771: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCollectionRunner`1.d__28.MoveNext() 2017-07-02 17:29:53,771: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,771: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCollectionRunner`1.RunTestClassesAsync() 2017-07-02 17:29:53,771: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCollectionRunner`1.d__27.MoveNext() 2017-07-02 17:29:53,771: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.Start[TStateMachine](TStateMachine& stateMachine) 2017-07-02 17:29:53,771: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCollectionRunner`1.RunAsync() 2017-07-02 17:29:53,771: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task`1.InnerInvoke() 2017-07-02 17:29:53,771: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-07-02 17:29:53,772: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 2017-07-02 17:29:53,772: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteEntry() 2017-07-02 17:29:53,772: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.SynchronizationContextTaskScheduler.<>c.<.cctor>b__8_0(Object s) 2017-07-02 17:29:53,772: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(SendOrPostCallback callback, Object state) 2017-07-02 17:29:53,772: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-07-02 17:29:53,772: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 2017-07-02 17:29:53,772: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitWorkerThread.<>c.b__5_0(Object _) 2017-07-02 17:29:53,772: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-07-02 17:29:53,772: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) 2017-07-02 17:29:53,772: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-07-02 17:29:53,772: INFO: proc(54): run_and_log_output: Output: 2017-07-02 17:29:53,772: INFO: proc(54): run_and_log_output: Output: at System.Environment.FailFast(System.String, System.Exception) 2017-07-02 17:29:53,772: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamPal.EncryptDecryptHelper(System.Net.Security.SafeDeleteContext, Byte[], Int32, Int32, Boolean, Byte[] ByRef, Int32 ByRef) 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamPal.DecryptMessage(System.Net.Security.SafeDeleteContext, Byte[], Int32 ByRef, Int32 ByRef) 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SecureChannel.Decrypt(Byte[], Int32 ByRef, Int32 ByRef) 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslState.PrivateDecryptData(Byte[], Int32 ByRef, Int32 ByRef) 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslState.DecryptData(Byte[], Int32 ByRef, Int32 ByRef) 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.ProcessFrameBody(Int32, Byte[], Int32, Int32, System.Net.AsyncProtocolRequest) 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.StartFrameBody(Int32, Byte[], Int32, Int32, System.Net.AsyncProtocolRequest) 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.StartFrameHeader(Byte[], Int32, Int32, System.Net.AsyncProtocolRequest) 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.StartReading(Byte[], Int32, Int32, System.Net.AsyncProtocolRequest) 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.ProcessRead(Byte[], Int32, Int32, System.Net.BufferAsyncResult) 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.Read(Byte[], Int32, Int32) 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamInternal.ReadByte() 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStream.ReadByte() 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.Tests.SslStreamStreamToStreamTest.SslStream_StreamToStream_Write_ReadByte_Success() 2017-07-02 17:29:53,773: INFO: proc(54): run_and_log_output: Output: at System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean) 2017-07-02 17:29:53,774: INFO: proc(54): run_and_log_output: Output: at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(System.Object, System.Object[], System.Object[]) 2017-07-02 17:29:53,774: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1+<>c__DisplayClass46_1+<b__1>d[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() 2017-07-02 17:29:53,774: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[[Xunit.Sdk.TestInvoker`1+<>c__DisplayClass46_1+<b__1>d[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], xunit.execution.dotnet, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](<b__1>d ByRef) 2017-07-02 17:29:53,774: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1+<>c__DisplayClass46_1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].b__1() 2017-07-02 17:29:53,774: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExecutionTimer+d__4.MoveNext() 2017-07-02 17:29:53,774: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[[Xunit.Sdk.ExecutionTimer+d__4, xunit.execution.dotnet, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__4 ByRef) 2017-07-02 17:29:53,774: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExecutionTimer.AggregateAsync(System.Func`1) 2017-07-02 17:29:53,774: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator+d__9.MoveNext() 2017-07-02 17:29:53,775: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder.Start[[Xunit.Sdk.ExceptionAggregator+d__9, xunit.core, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__9 ByRef) 2017-07-02 17:29:53,775: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.RunAsync(System.Func`1) 2017-07-02 17:29:53,775: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1+d__46[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() 2017-07-02 17:29:53,775: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Decimal, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Xunit.Sdk.TestInvoker`1+d__46[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], xunit.execution.dotnet, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__46 ByRef) 2017-07-02 17:29:53,775: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].InvokeTestMethodAsync(System.Object) 2017-07-02 17:29:53,775: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1+<b__45_0>d[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() 2017-07-02 17:29:53,775: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Decimal, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Xunit.Sdk.TestInvoker`1+<b__45_0>d[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], xunit.execution.dotnet, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](<b__45_0>d ByRef) 2017-07-02 17:29:53,775: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestInvoker`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].b__45_0() 2017-07-02 17:29:53,776: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator+d__10`1[[System.Decimal, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() 2017-07-02 17:29:53,776: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Decimal, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Xunit.Sdk.ExceptionAggregator+d__10`1[[System.Decimal, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], xunit.core, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__10`1 ByRef) 2017-07-02 17:29:53,776: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.RunAsync[[System.Decimal, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Func`1>) 2017-07-02 17:29:53,776: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestRunner+d__4.MoveNext() 2017-07-02 17:29:53,776: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Xunit.Sdk.XunitTestRunner+d__4, xunit.execution.dotnet, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__4 ByRef) 2017-07-02 17:29:53,776: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitTestRunner.InvokeTestAsync(Xunit.Sdk.ExceptionAggregator) 2017-07-02 17:29:53,776: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator+d__10`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() 2017-07-02 17:29:53,776: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Xunit.Sdk.ExceptionAggregator+d__10`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], xunit.core, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__10`1 ByRef) 2017-07-02 17:29:53,776: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.ExceptionAggregator.RunAsync[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.Func`1>) 2017-07-02 17:29:53,777: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestRunner`1+d__43[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() 2017-07-02 17:29:53,777: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Xunit.Sdk.TestRunner`1+d__43[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], xunit.execution.dotnet, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__43 ByRef) 2017-07-02 17:29:53,777: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestRunner`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].RunAsync() 2017-07-02 17:29:53,777: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCaseRunner`1+d__19[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() 2017-07-02 17:29:53,777: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Xunit.Sdk.TestCaseRunner`1+d__19[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], xunit.execution.dotnet, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__19 ByRef) 2017-07-02 17:29:53,777: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCaseRunner`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].RunAsync() 2017-07-02 17:29:53,777: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestMethodRunner`1+d__32[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() 2017-07-02 17:29:53,777: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Xunit.Sdk.TestMethodRunner`1+d__32[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], xunit.execution.dotnet, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__32 ByRef) 2017-07-02 17:29:53,778: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestMethodRunner`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].RunTestCasesAsync() 2017-07-02 17:29:53,778: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestMethodRunner`1+d__31[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() 2017-07-02 17:29:53,778: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Xunit.Sdk.TestMethodRunner`1+d__31[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], xunit.execution.dotnet, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__31 ByRef) 2017-07-02 17:29:53,778: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestMethodRunner`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].RunAsync() 2017-07-02 17:29:53,778: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestClassRunner`1+d__38[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() 2017-07-02 17:29:53,778: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Xunit.Sdk.TestClassRunner`1+d__38[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], xunit.execution.dotnet, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__38 ByRef) 2017-07-02 17:29:53,778: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestClassRunner`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].RunTestMethodsAsync() 2017-07-02 17:29:53,778: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestClassRunner`1+d__37[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() 2017-07-02 17:29:53,779: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Xunit.Sdk.TestClassRunner`1+d__37[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], xunit.execution.dotnet, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__37 ByRef) 2017-07-02 17:29:53,779: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestClassRunner`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].RunAsync() 2017-07-02 17:29:53,779: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCollectionRunner`1+d__28[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() 2017-07-02 17:29:53,779: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Xunit.Sdk.TestCollectionRunner`1+d__28[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], xunit.execution.dotnet, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__28 ByRef) 2017-07-02 17:29:53,779: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCollectionRunner`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].RunTestClassesAsync() 2017-07-02 17:29:53,779: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCollectionRunner`1+d__27[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].MoveNext() 2017-07-02 17:29:53,779: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Start[[Xunit.Sdk.TestCollectionRunner`1+d__27[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], xunit.execution.dotnet, Version=2.2.0.3300, Culture=neutral, PublicKeyToken=8d05b1bb7a6fdb6c]](d__27 ByRef) 2017-07-02 17:29:53,779: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.TestCollectionRunner`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].RunAsync() 2017-07-02 17:29:53,779: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task`1[[System.__Canon, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].InnerInvoke() 2017-07-02 17:29:53,780: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 2017-07-02 17:29:53,780: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef) 2017-07-02 17:29:53,780: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteEntry() 2017-07-02 17:29:53,780: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.SynchronizationContextTaskScheduler+<>c.<.cctor>b__8_0(System.Object) 2017-07-02 17:29:53,780: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.MaxConcurrencySyncContext.RunOnSyncContext(System.Threading.SendOrPostCallback, System.Object) 2017-07-02 17:29:53,780: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 2017-07-02 17:29:53,780: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.MaxConcurrencySyncContext.WorkerThreadProc() 2017-07-02 17:29:53,780: INFO: proc(54): run_and_log_output: Output: at Xunit.Sdk.XunitWorkerThread+<>c.b__5_0(System.Object) 2017-07-02 17:29:53,780: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 2017-07-02 17:29:53,780: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef) 2017-07-02 17:29:53,780: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 2017-07-02 17:29:56,113: INFO: proc(54): run_and_log_output: Output: /home/helixbot/dotnetbuild/work/a76bb1e6-b59a-4474-b968-349a33a1a278/Work/c20f7718-b704-4573-a6fa-c26ee4c0a9ba/Unzip/RunTests.sh: line 91: 8147 Aborted (core dumped) $RUNTIME_PATH/dotnet xunit.console.netcore.exe System.Net.Security.Tests.dll -xml testResults.xml -notrait category=nonnetcoreapptests -notrait category=nonlinuxtests -notrait category=failing 2017-07-02 17:29:56,145: INFO: proc(54): run_and_log_output: Output: Trying to find crash dumps for project: System.Net.Security.Tests 2017-07-02 17:29:56,145: INFO: proc(54): run_and_log_output: Output: No new dump file was found in /home/helixbot/dotnetbuild/work/a76bb1e6-b59a-4474-b968-349a33a1a278/Work/c20f7718-b704-4573-a6fa-c26ee4c0a9ba/Unzip 2017-07-02 17:29:56,148: INFO: proc(54): run_and_log_output: Output: ~/dotnetbuild/work/a76bb1e6-b59a-4474-b968-349a33a1a278/Work/c20f7718-b704-4573-a6fa-c26ee4c0a9ba/Unzip 2017-07-02 17:29:56,149: INFO: proc(54): run_and_log_output: Output: Finished running tests. End time=17:29:56. Return value was 134 2017-07-02 17:29:56,151: INFO: proc(58): run_and_log_output: Exit Code: 134 2017-07-02 17:29:56,152: ERROR: scriptrunner(82): _main: Error: No exception thrown, but XUnit results not created 2017-07-02 17:29:56,152: ERROR: helix_test_execution(83): report_error: Error running xunit None ~~~ +21816 area-Infrastructure Update strong-name-signing.md Fixed broken markdown for a link +21817 area-System.Net 'System.Net.Http.Functional.Tests' failed in ci /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug/Tools/tests.targets(354,5): error : One or more tests failed while running tests from 'System.Net.Http.Functional.Tests' please check /mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug/bin/Unix.AnyCPU.Debug/System.Net.Http.Functional.Tests/netcoreapp/testResults.xml for details! [/mnt/resource/j/workspace/dotnet_corefx/master/centos7.1_debug/src/System.Net.Http/tests/FunctionalTests/System.Net.Http.Functional.Tests.csproj] detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/centos7.1_debug/3384/consoleFull#-9775515633fe3402-0c0f-45a7-a707-47164965bab5 +21818 area-System.Net "System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_ClientCertificates_Test failed with ""Xunit.Sdk.ThrowsException"" in CI " failed test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_ClientCertificates_Test.Manual_SSLBackendNotSupported_ThrowsPlatformNotSupportedException detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_centos7.1_release/95/testReport/System.Net.Http.Functional.Tests/ManagedHandler_HttpClientHandler_ClientCertificates_Test/Manual_SSLBackendNotSupported_ThrowsPlatformNotSupportedException/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.PlatformNotSupportedException) Actual: (No exception was thrown) ~~~ STACK TRACE: ~~~ --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.d__5.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_release/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.ClientCertificates.cs:line 80 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +21820 area-System.ComponentModel 'System.ComponentModel.TypeConverter.Tests' failed in ci /mnt/resource/j/workspace/dotnet_corefx/master/debian8.4_release/Tools/tests.targets(354,5): error : One or more tests failed while running tests from 'System.ComponentModel.TypeConverter.Tests' please check /mnt/resource/j/workspace/dotnet_corefx/master/debian8.4_release/bin/AnyOS.AnyCPU.Release/System.ComponentModel.TypeConverter.Tests/netcoreapp/testResults.xml for details! [/mnt/resource/j/workspace/dotnet_corefx/master/debian8.4_release/src/System.ComponentModel.TypeConverter/tests/System.ComponentModel.TypeConverter.Tests.csproj] detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/debian8.4_release/3078/ +21821 area-System.Net 'System.Net.WebSockets.Client.Tests' failed in CI /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/Tools/tests.targets(354,5): error : One or more tests failed while running tests from 'System.Net.WebSockets.Client.Tests' please check /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/bin/Unix.AnyCPU.Debug/System.Net.WebSockets.Client.Tests/netstandard/testResults.xml for details! [/mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj] detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_opensuse42.1_debug/96/ +21823 area-System.IO System.IO.Tests.FileInfo_Delete failed with Xunit.Sdk.TrueException in CI failed test: System.IO.Tests.FileInfo_Delete.Unix_ExistingDirectory_ReadOnlyVolume detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu14.04_debug/95/testReport/System.IO.Tests/FileInfo_Delete/Unix_ExistingDirectory_ReadOnlyVolume/ MESSAGE: ~~~ Assert.True() Failure Expected: True Actual: False ~~~ STACK TRACE: ~~~ at System.IO.Tests.FileSystemTest.RunAsSudo(String commandLine) in /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu14.04_debug/src/System.IO.FileSystem/tests/FileSystemTest.cs:line 69 at System.IO.Tests.FileSystemTest.ReadOnly_FileSystemHelper(Action`1 testAction, String subDirectoryName) in /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu14.04_debug/src/System.IO.FileSystem/tests/FileSystemTest.cs:line 108 at System.IO.Tests.File_Delete.Unix_ExistingDirectory_ReadOnlyVolume() in /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu14.04_debug/src/System.IO.FileSystem/tests/File/Delete.cs:line 144 ~~~ +21824 area-System.Data Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON' "While using the mssql extension for vscode (which uses SqlClient implementation for .Net Core), I am having an issue for querying linked servers. See [link](https://github.com/Microsoft/vscode-mssql/issues/909) Steps to Reproduce: Connect to a SQL Server with ""authenticationType"": ""Integrated"" Do a select request with a join on the table of a linked server The following error appears : Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON' Other requests work correctly. This works correctly on SSMS so I guess it is not an issue linked to a bad configuration." +21825 area-System.Runtime FormatException for invalid dates should show the date and format that were passed in Currently, we just get an error like: > FormatException: String was not recognized as a valid DateTime. This is a pain as you don't know what actually went wrong where. For example, I'm parsing a CSV file and the dates it contains are constantly changing their formats. So when something goes wrong, it's unclear and I have to catch and rethrow the exception, taking note of the date and format +21826 area-System.Xml XmlResolver: remove workaround, BaseUriTests: fix test This includes the change that was in https://github.com/dotnet/corefx/pull/20564 but not included in https://github.com/dotnet/corefx/pull/20623. It also fixes a test which was added in https://github.com/dotnet/corefx/pull/20561. CC @sepidehMS +21829 area-System.Diagnostics System.Diagnostics.PerformanceCounterType enum missing values I think System.Diagnostics.PerformanceCounterType is missing some values. I think it should also include PrecisionSystemTimer = 541525248; Precision100NsTimer = 542573824; PrecisionObjectTimer = 543622400; to match all the values from the Win32 api. This is based off https://github.com/Microsoft/referencesource/blob/4fe4349175f4c5091d972a7e56ea12012f1e7170/System/compmod/microsoft/win32/NativeMethods.cs#L993 If that makes sense I can create a PR. +21830 area-Serialization Testing serialization errors in release/2.0.0 branch - NO MERGE testing https://github.com/dotnet/corefx/pull/21734/files +21832 area-System.Numerics Investigate using Span in BigInteger implementation "As already mentioned within #21281 the all-new Span should bring many benefits to BigInteger. * We currently use pointers to spare some index calculations (performance) and ""abstract"" the differences between ordinary arrays and stackalloc based stuff --> use spans instead * We currently copy the array containing the actual number after every operation to trim leading zeros --> use span.slice instead? * And maybe there's more... We cannot get grid of unsafe code completely since there are stack-vs-heap paths based on stackalloc, but all the pointer based stuff should gracefully disappear; I think. I'm interested to dive into this, after the summer or so. " +21833 area-System.Security .NET should expose a generalized ASN.1 reader/writer API A lot of features in cryptography and X.509 certificates rely on the ability to read or write ASN.1-structured data. Not only would a good API for ASN.1 reading/writing simplify some of our existing code, it's very handy when someone wants to try adding support for something we don't have inbox, like reading a new certificate extension. There are a couple of different aspects to the problem: ## 1) What do inputs/outputs look like? One of the harder parts to remember to get right is rejecting unexpected data. For example, from https://tools.ietf.org/html/rfc3280#section-4.1.1.2: ```asn AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL } ``` The `AlgorithmIdentifier` structure defines two, and only two fields. If a third field is present the data is invalid. (In our current internal implementation this means you need `if (reader.HasData) throw new CryptographicException();` at the end of reading it). This means that we really don't want to have to resort to a ReadNext() type API, since it's easy to do it poorly. One strawman is to build on the model of existing serializers, so one would so something like ```C# [StructLayout(StructLayoutKind.Sequential)] internal struct AlgorithmIdentifier { internal ObjectIdentifier Algorithm; [Optional] internal ??? Parameters; } ``` The fact that the first example drew a need for a base class might be telling that it needs to be a Sequential-layout class instead of a struct. Or maybe ASN-ANY has to be a byte[] that gets reinterpreted by the caller (but the serializer validates that it was legally encoded). But sequential ordering on the type seems like a requirement. C-based libraries generally seem to solve this problem with macro-based template languages. So maybe a template is the way to go. But, maybe not. Needs to consider: * OPTIONAL (DER says never to write down ASN-NULL for an OPTIONAL value) * DEFAULT (DER says to never write down a default value) * Sometimes a default is on a complex type (like saying that a default AlgorithmIdentifier is SHA-2-256). * ANY * Context-specific tagging * And Application-specific, and Private. I suppose * That tags *technically* are not constrained to one-byte values. * Collections (arrays/etc) can be SEQUENCE OF (write them down in the order I gave you) or SET OF (write them down in a proscribed order) * This *could* be skipped in the encoder and declared to be a problem for the data provider; but since the sort order for SET OF frequently comes down to the data length (before data values) it is sort of hard for them to do it right. * ASN INTEGER is C# BigInteger. But also supporting Int32/Int64/etc has virtue. * There are lots of string encodings in ASN * I'm sure floating point is unpleasant. * DateTime values can be pretty weird. X.509 adds more restrictions than DER does. Is that an encoding? An attribute? A post-deserialization validation? * Any other quirks that exist when combining ITU-T X.680 (ASN), ITU-T X.690 (BER/CER/DER) and C#. ## 2) What encodings are supported? ITU-T X.690 defines 3 different encoding rulesets: * BER (Basic Encoding Rules) * CER (Canonical Encoding Rules) * DER (Distinguished Encoding Rules) Generally speaking; BER defines all the possibilities for representing data, CER describes a set of restrictions on BER, and DER describes even more restrictions. Occasionally CER and DER give conflicting recommendations, though. * Read-as-BER can read anything. * Read-as-CER (maybe) should reject an octet-string with a primitive encoding in excess of 1000 octets (ITU-T REC X.690 2015-08 section 9.2) * (Maybe there needs to be CER-strict and CER-flexible?) * Read-as-DER should (definitely) reject any indefinite length encoding (ITU-T REC X.690 2015-08 section 10.1). Almost all things in cryptography use DER, making DER a minimum bar. But, since [CMS / S/MIME / PKCS#7](https://tools.ietf.org/html/rfc2315) says that it's designed to allow BER indefinite length encodings, there are clearly cases where readers need to be more flexible. (Windows and OpenSSL both write all CMS objects with DER; macOS uses indefinite length encodings) ## 3) What does an API look like? Largely this comes out of the inputs/outputs section, but encodings need to be taken into account. ```C# public static AsnEncoding { public static ???? Encode(T value, AsnEncodingType type, Span output); public static ???? Decode(ReadOnlySpan input, } ``` If there's a base class then there could be an OnDeserialize()-style validation callback per hydrated member. If it's a convention that ends up being reflection, which isn't super fun. So maybe it's just up to the user... but that's somewhat annoying for embedded structures. Particularly through OPTIONAL. ----- It probably makes sense to try to design the API, and use it internally, and then eventually expose it (essentially letting internal consumption be the proving ground). +21835 area-System.Text System.Text.RegularExpressions.Tests.Match_SpecialUnicodeCharacters* is failing on UAP This test is failing because of combination of two windows bugs: - setting a culture to invariant does not always happen - turkish I should not be lowercased to i on en-US This test is being renamed to System.Text.RegularExpressions.Tests.Match_SpecialUnicodeCharacters_Invariant in https://github.com/dotnet/corefx/pull/21782 @tarekgh, could you provide details? +21837 area-System.Diagnostics some style fixes While working on the IntelliSense for EventCounter, I stumbled upon this topic. If the bold/italic styling is done inside a fenced block, it won't work. BTW, is this something we should transform in an official doc? There would be some work involved since this is written in a very informal way. I also don't know what you mean on item 3 (line 37). +21838 area-System.Security Fix segfault on chain build on macOS High Sierra When building a cert chain for self-issued certificates on High Sierra, Security.framework gets into a bad state. One minute after entering SecTrustEvaluate the function exits with the trust result set to Invalid and the return value (an OSStatus) set to success. Continuing to interact with that chain results in more slowdowns and/or a null-dereference triggering a segfault. Hopefully the underlying issue is fixed before 10.13 RTM, but for now we can be less destructive by throwing an exception instead of letting the native code terminate the process. This addresses #21436 in master, but we'll probably want to backport the fix to 2.0. See the issue for the saga of finding out where the problems arose. +21839 area-Serialization Fix BinaryFormatter UAPAOT build Fixes UAPAOT compilation for the System.Runtime.Serialization.Formatters test, which fails because a test struct has a field of type Span, but isn't marked IsByRefLike. +21841 area-System.Net Disable hostname check on macOS with non-SecureTransport backend. fixes #21778 cc @bartonjs @stephentoub @danmosemsft OSX 10.13 has LibreSsl as crypto backend. Disable hostname checks on certificates when using ```HttpClientHandler.DangerousAcceptAnyServerCertificateValidator``` as ```ServerCertificateCustomValidationCallback``` +21845 area-System.Drawing File locking during Drawing tests ``` 2017-07-04 00:21:19,194: INFO: proc(54): run_and_log_output: Output: System.Drawing.Tests.IconTests.Save_ClosedOutputStreamNoIconData_DoesNothing [FAIL] 2017-07-04 00:21:19,194: INFO: proc(54): run_and_log_output: Output: System.IO.IOException : The process cannot access the file 'C:\dotnetbuild\work\95163101-5a92-4162-b58e-e4103c9b9f6f\Work\1606da83-0c1a-4490-ad29-030060e6260d\Unzip\bitmaps\48x48_multiple_entries_4bit.ico' because it is being used by another process. 2017-07-04 00:21:19,210: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-07-04 00:21:19,273: INFO: proc(54): run_and_log_output: Output: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) 2017-07-04 00:21:19,273: INFO: proc(54): run_and_log_output: Output: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 2017-07-04 00:21:19,273: INFO: proc(54): run_and_log_output: Output: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) 2017-07-04 00:21:19,273: INFO: proc(54): run_and_log_output: Output: at System.Drawing.Icon..ctor(String fileName, Int32 width, Int32 height) 2017-07-04 00:21:19,273: INFO: proc(54): run_and_log_output: Output: at System.Drawing.Icon..ctor(String fileName) 2017-07-04 00:21:19,273: INFO: proc(54): run_and_log_output: Output: at System.Drawing.Tests.IconTests.Save_ClosedOutputStreamNoIconData_DoesNothing() ``` +21846 area-System.Drawing Fix locking during drawing tests "Fix https://github.com/dotnet/corefx/issues/21845 FileStream.ctor and File.Open default for FileAccess is FileAccess.ReadWrite (unless FileMode.Append, then FileAccess.Write only). FileStream.ctor default for FileShare is FileShare.Read, but File.Open's default is FileShare.None. In Windows, FileAccess maps to GENERIC_READ and/or GENERIC_WRITE, and FileShare to FILE_SHARE_READ, FILE_SHARE_WRITE, and/or ""FILE_SHARE_NONE"". The valid combinations for CreateFile calls are shown here: https://msdn.microsoft.com/en-us/library/windows/desktop/aa363874(v=vs.85).aspx. Essentially the file access required must be allowed by other handles' file share values. So if an existing handle has GENERIC_READ, other handles must all include FILE_SHARE_READ. I didn't look at Unix. In this case the tests opened the icon file with a FileStream using FileMode.Open passed, and therefore the defaults of FileAccess.ReadWrite and FileShare.Read. Other tests called the Icon constructor which opened the icon file with `new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read)`. The FileAccess.ReadWrite is not compatible with the FileShare.Read, causing the error. The fix is to explicitly request FileAccess.Read in the tests. Also noticed a use of File.Open with the default values of FileAccess.ReadWrite and FileShare.None. Since it's just reading from the file, it seems reasonable to pass FileAccess.Read, FileShare.Read explicitly, so another notional process could read concurrently." +21847 area-System.IO Port fix to DriveInfo for apple FS Fixes #21597 Port #21636 to release/2.0.0 +21850 area-Infrastructure "No test result generated under ""System.Xml.RW.XmlWriterApi.Tests""" "No test result generated under ""System.Xml.RW.XmlWriterApi.Tests"" Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170704.01/workItem/System.Xml.RW.XmlWriterApi.Tests/wilogs Configuration: Windows.10.Amd64.ClientRS3-x86 Windows.10.Arm64-arm ~~~ 2017-07-03 19:42:18,296: INFO: proc(54): run_and_log_output: Output: Got manifest file appxmanifest.xml 2017-07-03 19:42:18,391: INFO: proc(54): run_and_log_output: Output: Removing any previous installation... 2017-07-03 19:42:18,391: INFO: proc(54): run_and_log_output: Output: Installing the application... 2017-07-03 19:42:19,578: INFO: proc(54): run_and_log_output: Output: Package ID is 5cd54353-3ed7-4a6e-a72f-db349f28867c_1.0.0.0_arm__v52bfwc2c21ha 2017-07-03 19:42:19,609: INFO: proc(54): run_and_log_output: Output: Starting the application... 2017-07-03 19:42:19,609: INFO: proc(54): run_and_log_output: Output: Resolved Folder Path: C:\Users\DotNetTestRunner\AppData\Local\Packages\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\ 2017-07-03 19:42:20,203: INFO: proc(54): run_and_log_output: Output: Waiting for the application to exit... 2017-07-03 19:42:31,871: INFO: proc(54): run_and_log_output: Output: Process has just exited with return code 255. 2017-07-03 19:42:31,871: INFO: proc(54): run_and_log_output: Output: Disabling the debugger... 2017-07-03 19:42:31,871: INFO: proc(54): run_and_log_output: Output: 2017-07-03 19:42:31,871: INFO: proc(54): run_and_log_output: Output: 2017-07-03 19:42:31,871: INFO: proc(54): run_and_log_output: Output: STDOUT & STDERR from imersive process: 2017-07-03 19:42:31,871: INFO: proc(54): run_and_log_output: Output: ================================================================================== 2017-07-03 19:42:31,887: INFO: proc(54): run_and_log_output: Output: 2017-07-03 19:42:31,887: INFO: proc(54): run_and_log_output: Output: ================================================================================== 2017-07-03 19:42:31,887: INFO: proc(54): run_and_log_output: Output: Removing the application... 2017-07-03 19:42:33,437: INFO: proc(54): run_and_log_output: Output: 2017-07-03 19:42:33,437: INFO: proc(54): run_and_log_output: Output: SUCCESS 2017-07-03 19:42:33,437: INFO: proc(54): run_and_log_output: Output: ExitCode 255 2017-07-03 19:42:33,437: INFO: proc(54): run_and_log_output: Output: 2017-07-03 19:42:33,437: INFO: proc(54): run_and_log_output: Output: C:\dotnetbuild\work\074ab7a5-2eef-42da-8843-793c057a4837\Work\141c2691-75ba-443e-99a1-c81258f7bb52\Unzip>move C:\Users\DotNetTestRunner\Documents\TestResults\System.Xml.RW.XmlWriterApi.Tests.dll.xml .\testResults.xml 2017-07-03 19:42:33,437: INFO: proc(54): run_and_log_output: Output: The system cannot find the file specified. 2017-07-03 19:42:33,437: INFO: proc(54): run_and_log_output: Output: 2017-07-03 19:42:33,437: INFO: proc(54): run_and_log_output: Output: C:\dotnetbuild\work\074ab7a5-2eef-42da-8843-793c057a4837\Work\141c2691-75ba-443e-99a1-c81258f7bb52\Unzip>move C:\Users\DotNetTestRunner\Documents\TestResults\System.Xml.RW.XmlWriterApi.Tests.dll.txt .\logs.txt 2017-07-03 19:42:33,437: INFO: proc(54): run_and_log_output: Output: The system cannot find the file specified. 2017-07-03 19:42:33,437: INFO: proc(54): run_and_log_output: Output: 2017-07-03 19:42:33,437: INFO: proc(54): run_and_log_output: Output: C:\dotnetbuild\work\074ab7a5-2eef-42da-8843-793c057a4837\Work\141c2691-75ba-443e-99a1-c81258f7bb52\Unzip>type logs.txt 2017-07-03 19:42:33,437: INFO: proc(54): run_and_log_output: Output: The system cannot find the file specified. 2017-07-03 19:42:33,453: INFO: proc(54): run_and_log_output: Output: Finished running tests. End time=19:42:33.45, Exit code = 1 2017-07-03 19:42:33,453: INFO: proc(58): run_and_log_output: Exit Code: 1 2017-07-03 19:42:33,467: ERROR: scriptrunner(82): _main: Error: No exception thrown, but XUnit results not created 2017-07-03 19:42:33,467: ERROR: helix_test_execution(83): report_error: Error running xunit None ~~~" +21851 area-System.Net System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFromAsyncV6BoundToAnyV4_NotReceived failed in ci failed test: System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFromAsyncV6BoundToAnyV4_NotReceived detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_opensuse42.1_debug/97/testReport/System.Net.Sockets.Tests/DualModeConnectionlessReceiveMessageFrom/ReceiveMessageFromAsyncV6BoundToAnyV4_NotReceived/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.TimeoutException) Actual: typeof(Xunit.Sdk.EqualException): Assert.Equal() Failure Expected: ::1 Actual: ::ffff:127.0.0.1 ~~~ STACK TRACE: ~~~ at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFromAsync_Helper(IPAddress listenOn, IPAddress connectTo, Boolean expectedToTimeout) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 2388 at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.b__40_0() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 2348 ~~~ +21852 area-System.Threading System.Threading.Tests.MutexTests.CrossProcess_NamedMutex_ProtectedFileAccessAtomic failed with Xunit.Sdk.TrueException in ci failed test: System.Threading.Tests.MutexTests.CrossProcess_NamedMutex_ProtectedFileAccessAtomic detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu16.04_debug/95/testReport/System.Threading.Tests/MutexTests/CrossProcess_NamedMutex_ProtectedFileAccessAtomic_prefix____8bef4c7fff8f4893b56954031c2e7508___/ MESSAGE: ~~~ Assert.True() Failure Expected: True Actual: False ~~~ STACK TRACE: ~~~ at System.Threading.Tests.ThreadTestHelpers.<>c__DisplayClass3_0.b__2() in /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug/src/Common/tests/System/Threading/ThreadTestHelpers.cs:line 48 at System.Threading.Tests.ThreadTestHelpers.RunTestInBackgroundThread(Action test) in /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug/src/Common/tests/System/Threading/ThreadTestHelpers.cs:line 100 at System.Threading.Tests.MutexTests.CrossProcess_NamedMutex_ProtectedFileAccessAtomic(String prefix) in /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu16.04_debug/src/System.Threading/tests/MutexTests.cs:line 228 ~~~ +21853 area-System.Net "Test: System.Net.WebSockets.Client.Tests.KeepAliveTest/KeepAlive_LongDelayBetweenSendReceives_Succeeds failed with ""System.Net.WebSockets.WebSocketException""" Opened on behalf of @Jiayili1 The test `System.Net.WebSockets.Client.Tests.KeepAliveTest/KeepAlive_LongDelayBetweenSendReceives_Succeeds` has failed. System.Net.WebSockets.WebSocketException : The WebSocket is in an invalid state ('Aborted') for this operation. Valid states are: 'Open, CloseSent, CloseReceived, Closed' Stack Trace: at xunit.console.netcore!+0x7efa6f at xunit.console.netcore!+0x7ef9bf at xunit.console.netcore!+0x7ef8fd --- End of stack trace from previous location where exception was thrown --- at xunit.console.netcore!+0x69714d at xunit.console.netcore!+0x6970a3 at xunit.console.netcore!+0x697035 at xunit.console.netcore!+0x5a4f37 at System.Net.WebSockets.Client.Tests.KeepAliveTest.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at xunit.console.netcore!+0x69714d at xunit.console.netcore!+0x6970a3 at xunit.console.netcore!+0x697035 --- End of stack trace from previous location where exception was thrown --- at xunit.console.netcore!+0x69714d at xunit.console.netcore!+0x6970a3 at xunit.console.netcore!+0x697035 --- End of stack trace from previous location where exception was thrown --- at xunit.console.netcore!+0x69714d at xunit.console.netcore!+0x6970a3 at xunit.console.netcore!+0x697035 Build : Master - 20170704.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170704.01/workItem/System.Net.WebSockets.Client.Tests.Execution/analysis/xunit/System.Net.WebSockets.Client.Tests.KeepAliveTest~2FKeepAlive_LongDelayBetweenSendReceives_Succeeds +21854 area-System.Net System.Net.Mail.Tests.LoggingTest.EventSource_EventsRaisedAsExpected failed Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170704.01/workItem/System.Net.Mail.Functional.Tests/wilogs Configuration: OSX.1012.Amd64-x64 ~~~ 2017-07-03 17:51:35,990: INFO: proc(54): run_and_log_output: Output: Discovering: System.Net.Mail.Functional.Tests 2017-07-03 17:51:36,121: INFO: proc(54): run_and_log_output: Output: Discovered: System.Net.Mail.Functional.Tests 2017-07-03 17:51:36,184: INFO: proc(54): run_and_log_output: Output: Starting: System.Net.Mail.Functional.Tests 2017-07-03 17:52:36,718: INFO: proc(54): run_and_log_output: Output: System.Net.Mail.Tests.LoggingTest.EventSource_EventsRaisedAsExpected [FAIL] 2017-07-03 17:52:36,719: INFO: proc(54): run_and_log_output: Output: Timed out after 60000ms waiting for remote process 19702 2017-07-03 17:52:36,719: INFO: proc(54): run_and_log_output: Output: Expected: True 2017-07-03 17:52:36,719: INFO: proc(54): run_and_log_output: Output: Actual: False 2017-07-03 17:52:36,722: INFO: proc(54): run_and_log_output: Output: Stack Trace: 2017-07-03 17:52:36,813: INFO: proc(54): run_and_log_output: Output: /Users/buildagent/agent/_work/28/s/corefx/src/Common/tests/System/Diagnostics/RemoteExecutorTestBase.cs(208,0): at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() ~~~ +21855 area-System.Net "Test: System.Net.Sockets.Tests.DualModeAcceptAsync/AcceptAsyncV6BoundToAnyV6_Success failed with ""System.TimeoutException""" Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.DualModeAcceptAsync/AcceptAsyncV6BoundToAnyV6_Success` has failed. System.TimeoutException : Timed out while waiting for either of client and server connections... Stack Trace: at System.Net.Sockets.Tests.DualModeAcceptAsync.DualModeConnect_AcceptAsync_Helper(IPAddress listenOn, IPAddress connectTo) in /Users/buildagent/agent/_work/28/s/corefx/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 1016 Build : 2.0.0 - 20170704.01 (Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170704.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DualModeAcceptAsync~2FAcceptAsyncV6BoundToAnyV6_Success +21856 area-System.Drawing Add SystemFonts tests +21857 area-System.IO Unix_NonExistentPath_ReadOnlyVolume failed in CI Failed on Debian 8.7 CI machine: https://mc.dot.net/#/user/stephentoub/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/be0145cb201f0154f7d5b2f878f9e495bdd29a83/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.FileInfo_Delete~2FUnix_NonExistentPath_ReadOnlyVolume ``` Unhandled Exception of Type Xunit.Sdk.TrueException Message : Assert.True() Failure\nExpected: True\nActual: False Stack Trace : at System.IO.Tests.FileSystemTest.RunAsSudo(String commandLine) in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_true_prtest/src/System.IO.FileSystem/tests/FileSystemTest.cs:line 70 at System.IO.Tests.FileSystemTest.ReadOnly_FileSystemHelper(Action`1 testAction, String subDirectoryName) in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_true_prtest/src/System.IO.FileSystem/tests/FileSystemTest.cs:line 102 ``` +21861 area-Infrastructure DO NOT MERGE - testing CI +21862 area-Serialization Disabling CookieContainer sanity check for release/2.0.0 "Fixes https://github.com/dotnet/corefx/issues/21720 Relates to https://github.com/dotnet/corefx/pull/21859 The errors are only happening in release/2.0.0 branch. For whatever reason this is not happening in master. Disabling the check as it isn't crucial for the 2.0 release. I will continue follow-up on the root cause. After a far too long investigation it seems (not 100% sure) that manipulating the field ""m_fqdnMyDomain"" via reflection after the CookieContainer object gets instantiated causes the field to appear at the top of the stack when calling `Type.GetFields`. ``` var cookieContainer = new CookieContainer(10, 5, 1024); // To avoid differences in generated blobs because of machine configuration (domain). typeof(CookieContainer) .GetField(""m_fqdnMyDomain"", BindingFlags.Instance | BindingFlags.NonPublic) .SetValue(cookieContainer, string.Empty); ``` After removing the manipulation the results look as expected." +21863 area-System.Drawing Expose and test SystemDrawingSection This was discussed in #20712 +21864 area-System.Drawing Cleanup uses of ClientUtils across Drawing.Common +21865 area-System.Net Zero byte Socket.ReceiveAsync does not complete when peer disconnects on Unix "When there is a pending Socket.ReceiveAsync for count==0 and the peer disconnects, the Completed event does not fire. This is caused by a workaround for macOS. When the peer disconnects, GetBytesAvailable returns 0. https://github.com/dotnet/corefx/blob/29fb3994aa493d68bb080063287f200a3a50167d/src/System.Net.Sockets/src/System/Net/Sockets/SocketPal.Unix.cs#L619-L640. CC @stephentoub repro: ```C# using System; using System.Diagnostics; using System.Net; using System.Net.Sockets; using System.Threading; using System.Threading.Tasks; namespace ConsoleApplication { public class Program { public static void Main(string[] args) { new Program().Run(); } Thread _serverThread; Thread _clientThread; // used to synchronize between the threads TaskCompletionSource _serverListening = new TaskCompletionSource(); TaskCompletionSource _clientCompleted = new TaskCompletionSource(); public void Run() { _serverThread = new Thread(ServerThread); _clientThread = new Thread(ClientThread); var threads = new [] { _serverThread, _clientThread }; foreach (var thread in threads) { thread.Start(); } foreach (var thread in threads) { thread.Join(); } } public void ServerThread(object state) => ServerThreadAsync().Wait(); public void ClientThread(object state) => ClientThreadAsync().Wait(); public async Task ServerThreadAsync() { var listener = new TcpListener(IPAddress.Loopback, 0); listener.Start(); // clients can connect _serverListening.SetResult(listener.LocalEndpoint as IPEndPoint); var socket = await listener.AcceptSocketAsync(); System.Console.WriteLine($""{DateTime.Now}: Server: accept client""); socket.Dispose(); System.Console.WriteLine($""{DateTime.Now}: Server: dispose client""); } public async Task ClientThreadAsync() { // wait for the server to start var endpoint = await _serverListening.Task; Socket socket = new Socket(endpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); socket.Connect(endpoint); var sea = new SocketAsyncEventArgs(); sea.Completed += ReceiveCompleted; sea.SetBuffer(new byte[0], 0, 0); if (socket.ReceiveAsync(sea)) { System.Console.WriteLine($""{DateTime.Now}: Client: receive pending""); } else { System.Console.WriteLine($""{DateTime.Now}: Client: receive completed""); _clientCompleted.SetResult(null); } // wait for the client to complete await _clientCompleted.Task; } public void ReceiveCompleted(object sender, SocketAsyncEventArgs ae) { System.Console.WriteLine($""{DateTime.Now}: Client: receive completed""); _clientCompleted.SetResult(null); } } } ``` outputs ``` 7/4/17 5:59:56 PM: Client: receive pending 7/4/17 5:59:56 PM: Server: accept client 7/4/17 5:59:56 PM: Server: dispose client ```" +21866 area-System.Drawing Adding System.Drawing.Common.Drawing2D GraphicsPath tests. #20711 Converting mono GraphicsPath tests and adding few new. +21867 area-System.Security Question: how to store RSA piravate keys? With 2.0 now the private part of `RSAParameters` cannot be serialized any more, so what is the recommended way to store the private key? Thanks! +21870 area-System.Linq Test failure: System.Linq.Expressions.Tests.ArrayBoundsTests/SingleNegativeBoundErrorMessage(useInterpreter: True) Opened on behalf of @danmosemsft The test `System.Linq.Expressions.Tests.ArrayBoundsTests/SingleNegativeBoundErrorMessage(useInterpreter: True)` has failed. Assert.Equal() Failure\r Expected: (null)\r Actual: Arithmetic operation resulted in an overflow. Stack Trace: at System.Linq.Expressions.Tests.ArrayBoundsTests.SingleNegativeBoundErrorMessage(Boolean useInterpreter) at xunit.console.netcore!+0x16d75f8 at SharedLibrary!+0x753e93 at SharedLibrary!+0x753c93 Build : Master - 20170705.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug - Windows.10.Amd64.ClientRS3-x86 - Release - Debug +21873 area-Serialization Native case fix test no merge It is a test , please do not merge . +21875 area-System.Security "Test: System.Security.Cryptography.X509Certificates.Tests.CertTests/TestVerify failed with ""Interop+AppleCrypto+AppleCommonCryptoCryptographicException : No error.""" Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.X509Certificates.Tests.CertTests/TestVerify` has failed. Interop+AppleCrypto+AppleCommonCryptoCryptographicException : No error. Stack Trace: at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs:line 207 at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/ChainPal.cs:line 581 at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Chain.cs:line 118 at System.Security.Cryptography.X509Certificates.X509Certificate2.Verify() in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Certificate2.cs:line 626 at System.Security.Cryptography.X509Certificates.Tests.CertTests.TestVerify() in /Users/buildagent/agent/_work/45/s/corefx/src/System.Security.Cryptography.X509Certificates/tests/CertTests.cs:line 120 Build : Master - 20170705.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170705.01/workItem/System.Security.Cryptography.X509Certificates.Tests/analysis/xunit/System.Security.Cryptography.X509Certificates.Tests.CertTests~2FTestVerify +21876 area-System.Linq "Test: System.Linq.Parallel.Tests.ParallelQueryCombinationTests/SequenceEqual_OperationCanceledException(operation: SelectMany-ResultSelector) failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Linq.Parallel.Tests.ParallelQueryCombinationTests/SequenceEqual_OperationCanceledException(operation: SelectMany-ResultSelector)` has failed. Assert.Throws() Failure\r Expected: typeof(System.OperationCanceledException)\r Actual: (No exception was thrown) Stack Trace: at System.Linq.Parallel.Tests.AssertThrows.EventuallyCanceled(Action`2 query) at System.Linq.Parallel.Tests.ParallelQueryCombinationTests.SequenceEqual_OperationCanceledException(Labeled`1 operation) Build : Master - 20170705.01 (UWP F5 Tests) Failing configurations: - Windows.10.Arm64-arm - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170705.01/workItem/System.Linq.Parallel.Tests/analysis/xunit/System.Linq.Parallel.Tests.ParallelQueryCombinationTests~2FSequenceEqual_OperationCanceledException(operation:%20SelectMany-ResultSelector) +21880 area-System.Threading "Provide common Task results for ""true"", ""false"", ""empty"", ""null"", etc" "It's extremely common both in the framework itself and applications built on top of the framework to statically cache your own versions of Task with common results retrieved via Task.FromResult, similar to: ``` C# /// /// Provides sentinel Tasks that represent commonly returned values. /// internal class TaskResult { /// /// Represents a Task that's completed successfully with the result of . /// public static readonly Task False = Task.FromResult(false); /// /// Represents a Task that's completed successfully with the result of . /// public static readonly Task True = Task.FromResult(true); } ``` Just a few examples in 5 minutes of searching, are: [AsyncTaskCache in mscorlib](http://referencesource.microsoft.com/#mscorlib/system/runtime/compilerservices/AsyncMethodBuilder.cs,eb8b64a3166ac82a,references) [ADP in System.Data](http://referencesource.microsoft.com/#System.Data/System/Data/Common/AdapterUtil.cs,19bcf2b5a55bf1b3,references) [AsyncHelper in System.Xml](https://github.com/dotnet/corefx/blob/4f425df37377b5b2b8df750144695d89ceade51d/src/System.Private.Xml/src/System/Xml/AsyncHelper.cs#L11) [TplExtensions in Microsoft.VisualStudio.Threading](https://github.com/Microsoft/vs-threading/blob/v15.3/src/Microsoft.VisualStudio.Threading/TplExtensions.cs) [TaskResult in ProjectSystem](https://github.com/dotnet/project-system/blob/master/src/Microsoft.VisualStudio.ProjectSystem.Managed/Threading/Tasks/TaskResult.cs) Similar to what it did with Task.CompletedTask, the BCL should just provide these already cached values for common values, including true, false, empty string ("""") and null. " +21881 area-System.Threading "Test: System.Threading.Threads.Tests.ThreadTests/SleepTest failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Threading.Threads.Tests.ThreadTests/SleepTest` has failed. Assert.True() Failure Expected: True Actual: False Stack Trace: at System.Threading.Threads.Tests.ThreadTests.SleepTest() in /root/corefx/src/System.Threading.Thread/tests/ThreadTests.cs:line 773 Build : 2.0.0 - 20170705.01 (Core Tests) Failing configurations: - Centos.73.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170705.01/workItem/System.Threading.Thread.Tests/analysis/xunit/System.Threading.Threads.Tests.ThreadTests~2FSleepTest +21883 area-System.Runtime Fix Environment.CommandLine to roundtrip with GetCommandLineArgs() Fix https://github.com/dotnet/corefx/issues/21267 +21886 area-System.Drawing MakeTransparent_GrayscalePixelFormat_ThrowsArgumentException failed in CI on desktop https://ci3.dot.net/job/dotnet_corefx/job/master/job/windows-TGroup_netfx+CGroup_Release+AGroup_x86+TestOuter_false_prtest/793/consoleText ``` ystem.Drawing.Tests.BitmapTests.MakeTransparent_GrayscalePixelFormat_ThrowsArgumentException [FAIL] Assert.Throws() Failure Expected: typeof(System.Runtime.InteropServices.ExternalException) Actual: (No exception was thrown) Stack Trace: D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Drawing.Common\tests\BitmapTests.cs(0,0): at System.Drawing.Tests.BitmapTests.MakeTransparent_GrayscalePixelFormat_ThrowsArgumentException() ``` +21887 area-System.Security [release/2.0] Fix segfault on chain build on macOS High Sierra When building a cert chain for self-issued certificates on High Sierra, Security.framework gets into a bad state. One minute after entering SecTrustEvaluate the function exits with the trust result set to Invalid and the return value (an OSStatus) set to success. Continuing to interact with that chain results in more slowdowns and/or a null-dereference triggering a segfault. Hopefully the underlying issue is fixed before 10.13 RTM, but for now we can be less destructive by throwing an exception instead of letting the native code terminate the process. Ports #21838 to release/2.0. Fixes #21436. +21888 area-System.Net release/2.0: Prevent SslProvider exceptions from being thrown to native code (#21801) Port #21801 to release/2.0.0 branch +21889 area-System.Net [release/2.0] Disable hostname check on macOS with non-SecureTransport backend. cc @bartonjs @stephentoub Master PR #21841 fixes #21778 @danmosemsft How to launch OSX 10.13 CI job? +21890 area-System.Data No testResults.xml generated for System.Data.*.Tests in UapAot when running in arm - System.Data.SqlClient.ManualTesting.Tests - System.Data.SqlClient.Stress.Tests - System.Data.SqlClient.Tests These tests are crashing in arm. @joperezr could you take a look at which tests are causing it to crash the arm machines? cc: @saurabh500 @danmosemsft @joshfree +21891 area-Infrastructure ILC is failing to compile multiple test projects - System.CodeDom.Tests - System.Collections.Concurrent.Tests - System.Collections.Immutable.Tests - System.Collections.NonGeneric.Test @joshfree who would be the right person to take a look at this? cc: @danmosemsft +21892 area-Infrastructure "tests periodically fail with ""too many open files"" on macOS machines" "We periodically have tests fail on our macOS machines with `System.IO.IOException : Too many open files` eg https://github.com/dotnet/corefx/issues/20226 https://github.com/dotnet/corefx/issues/21813 https://github.com/dotnet/corefx/issues/12503 https://github.com/dotnet/corefx/issues/18462 According to @MattGal "" For our OSX machines (which were basically set up once then cloned, as they are not VMs) ulimit -a shows 256 open files and 8 MB stack size, which is lower than the init-tools setting "" (this may be just because init tools wasn't run in that tab) We set `ulimit -n` (ie file descriptors) to 2048 in init-tools.sh on macOS only https://github.com/dotnet/corefx/blob/master/init-tools.sh#L27 . This is supposed to set both hard and soft limit - although I'm not sure this script is run as sudo. On my Ubuntu machine, `ulimit -n` shows 1024. This may not have actually applied until April (fixed in https://github.com/dotnet/corefx/pull/19363) We should either modify init-tools.sh to increase this limit and/or run `lsof` to try to figure out what the files are that are getting held open. @pjanotti perhaps you could try lsof a few times during a test run on macOS, see what number we typically get up to, and whether a leak stands out?" +21894 area-Infrastructure Display the contents of init-tools.log. https://github.com/dotnet/core-eng/issues/1096 Though `init-tools` command prepares a detailed log, the console output is minimal. To investigate a failure of `init-tools`, content of the log will be helpful. Hence this change attempts to display the content of `init-tools.log` to console. This is done by adding a task in build definition that does a `cat` or `type` of `init-tools.log`. This task runs only when a previous task that runs `init-tools` command fails. Another solution I thought was to update the command itself such that there is an option for verbose output, which I think is nicer, and costlier. @ellismg PTAL. +21895 area-System.Diagnostics Fix issues in ProcessManager.Win32 Issues are mentioned in https://github.com/dotnet/corefx/pull/21746. [System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Win32.cs](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Win32.cs) cc: @JeremyKuhne +21896 area-System.Diagnostics [release/2.0] Disable StartInfo_TextFile_ShellExecute on Win8 (#21397) Port disabling ShellExecute test for Win8. Porting PR #21397 +21897 area-System.Runtime Reactivate ILC tests that are no longer failing. +21899 area-System.Memory Should ReadOnlySpan.ToString() return the contents of the span? Trying out the new Spans for the first time and I was expecting `ReadOnlySpan.ToString()` to be an easy way to do a conversion. It just returns the default type name. I understand that `ReadOnlySpan` is an array-like structure but with https://github.com/dotnet/corefx/issues/21395 coming `ReadOnlySpan` is going to look string-like. Is their any precedent to `Something.ToString()` being special cased? +21902 area-System.Net UnknownHeaders_Success_Large() test will hang on Windows sometimes Please see the discussions here: https://github.com/dotnet/corefx/issues/19754#issuecomment-301313041 The `UnknownHeaders_Success_Large()` test are still disabled [(See here)](https://github.com/dotnet/corefx/blob/cd20a23b5225a51665d202e99a2a04fbf240f749/src/System.Net.HttpListener/tests/SimpleHttpTests.cs#L128) +21903 area-System.Net GetContext_InvalidRequest_DoesNotGetContext() throws ObjectDisposedException on UAP mode In System.Net.HttpListener, the GetContext_InvalidRequest_DoesNotGetContext() test will crash the UAP test runner. Below are the details in dump: ``` 0:035> !pe Exception object: 0000021504ba5150 Exception type: System.ObjectDisposedException Message: Cannot access a disposed object. InnerException: StackTrace (generated): SP IP Function 0000006BD2FFE3C0 00007FFA35B376BB System_Net_HttpListener!System.Net.HttpListenerResponse.CheckDisposed()+0x9b 0000006BD2FFE420 00007FFA35B3A04C System_Net_HttpListener!System.Net.HttpListenerResponse.get_OutputStream()+0x2c 0000006BD2FFE460 00007FFA35B40463 System_Net_HttpListener!System.Net.HttpListenerResponse+<>c.b__74_0(System.IAsyncResult)+0xa3 0000006BD2FFE4D0 00007FFA35B34962 System_Net_Sockets!System.Net.LazyAsyncResult.Complete(IntPtr)+0x292 0000006BD2FFE5D0 00007FFA35B34441 System_Net_Sockets!System.Net.ContextAwareResult.CompleteCallback()+0x71 0000006BD2FFE610 00007FFA35B343AF System_Net_Sockets!System.Net.ContextAwareResult+<>c.b__17_0(System.Object)+0x6f 0000006BD2FFE650 00007FFA6F5F37B1 System_Private_CoreLib!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0x111 0000006BD2FFE6C0 00007FFA35B34207 System_Net_Sockets!System.Net.ContextAwareResult.Complete(IntPtr)+0x2e7 0000006BD2FFE7A0 00007FFA35B33CB3 System_Net_Sockets!System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object, IntPtr)+0x253 0000006BD2FFE870 00007FFA35B33A41 System_Net_Sockets!System.Net.LazyAsyncResult.InvokeCallback(System.Object)+0x31 0000006BD2FFE8A0 00007FFA35B32733 System_Net_Sockets!System.Net.Sockets.BaseOverlappedAsyncResult.CompletionCallback(Int32, System.Net.Sockets.SocketError)+0x73 0000006BD2FFE8E0 00007FFA35B323BE System_Net_Sockets!System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)+0x5ae 0000006BD2FFEAD0 00007FFA6F7DDA43 System_Private_CoreLib!System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)+0x73 StackTraceString: HResult: 80131622 There are nested exceptions on this thread. Run with -nested for details ``` After running with -nested, the nested exception has the same StackTrace. ``` 0:035> !pe -nested Exception object: 0000021504ba5150 Exception type: System.ObjectDisposedException Message: Cannot access a disposed object. InnerException: StackTrace (generated): SP IP Function 0000006BD2FFE3C0 00007FFA35B376BB System_Net_HttpListener!System.Net.HttpListenerResponse.CheckDisposed()+0x9b 0000006BD2FFE420 00007FFA35B3A04C System_Net_HttpListener!System.Net.HttpListenerResponse.get_OutputStream()+0x2c 0000006BD2FFE460 00007FFA35B40463 System_Net_HttpListener!System.Net.HttpListenerResponse+<>c.b__74_0(System.IAsyncResult)+0xa3 0000006BD2FFE4D0 00007FFA35B34962 System_Net_Sockets!System.Net.LazyAsyncResult.Complete(IntPtr)+0x292 0000006BD2FFE5D0 00007FFA35B34441 System_Net_Sockets!System.Net.ContextAwareResult.CompleteCallback()+0x71 0000006BD2FFE610 00007FFA35B343AF System_Net_Sockets!System.Net.ContextAwareResult+<>c.b__17_0(System.Object)+0x6f 0000006BD2FFE650 00007FFA6F5F37B1 System_Private_CoreLib!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0x111 0000006BD2FFE6C0 00007FFA35B34207 System_Net_Sockets!System.Net.ContextAwareResult.Complete(IntPtr)+0x2e7 0000006BD2FFE7A0 00007FFA35B33CB3 System_Net_Sockets!System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object, IntPtr)+0x253 0000006BD2FFE870 00007FFA35B33A41 System_Net_Sockets!System.Net.LazyAsyncResult.InvokeCallback(System.Object)+0x31 0000006BD2FFE8A0 00007FFA35B32733 System_Net_Sockets!System.Net.Sockets.BaseOverlappedAsyncResult.CompletionCallback(Int32, System.Net.Sockets.SocketError)+0x73 0000006BD2FFE8E0 00007FFA35B323BE System_Net_Sockets!System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)+0x5ae 0000006BD2FFEAD0 00007FFA6F7DDA43 System_Private_CoreLib!System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)+0x73 StackTraceString: HResult: 80131622 Nested exception ------------------------------------------------------------- Exception object: 0000021504ba5150 Exception type: System.ObjectDisposedException Message: Cannot access a disposed object. InnerException: StackTrace (generated): SP IP Function 0000006BD2FFE3C0 00007FFA35B376BB System_Net_HttpListener!System.Net.HttpListenerResponse.CheckDisposed()+0x9b 0000006BD2FFE420 00007FFA35B3A04C System_Net_HttpListener!System.Net.HttpListenerResponse.get_OutputStream()+0x2c 0000006BD2FFE460 00007FFA35B40463 System_Net_HttpListener!System.Net.HttpListenerResponse+<>c.b__74_0(System.IAsyncResult)+0xa3 0000006BD2FFE4D0 00007FFA35B34962 System_Net_Sockets!System.Net.LazyAsyncResult.Complete(IntPtr)+0x292 0000006BD2FFE5D0 00007FFA35B34441 System_Net_Sockets!System.Net.ContextAwareResult.CompleteCallback()+0x71 0000006BD2FFE610 00007FFA35B343AF System_Net_Sockets!System.Net.ContextAwareResult+<>c.b__17_0(System.Object)+0x6f 0000006BD2FFE650 00007FFA6F5F37B1 System_Private_CoreLib!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0x111 0000006BD2FFE6C0 00007FFA35B34207 System_Net_Sockets!System.Net.ContextAwareResult.Complete(IntPtr)+0x2e7 0000006BD2FFE7A0 00007FFA35B33CB3 System_Net_Sockets!System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object, IntPtr)+0x253 0000006BD2FFE870 00007FFA35B33A41 System_Net_Sockets!System.Net.LazyAsyncResult.InvokeCallback(System.Object)+0x31 0000006BD2FFE8A0 00007FFA35B32733 System_Net_Sockets!System.Net.Sockets.BaseOverlappedAsyncResult.CompletionCallback(Int32, System.Net.Sockets.SocketError)+0x73 0000006BD2FFE8E0 00007FFA35B323BE System_Net_Sockets!System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)+0x5ae 0000006BD2FFEAD0 00007FFA6F7DDA43 System_Private_CoreLib!System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)+0x73 StackTraceString: HResult: 80131622 ``` +21904 area-System.Net User-provided SSL callback exceptions are rethrown incorrectly The current .NET Core code is behaving differently than .NET Framework when exceptions are thrown in a user-provided callback for the HttpClient ServerCertificateCustomValidationCallback. In .NET Framework, any exception bubbling out of a user-provided callback is trapped, saved, and placed as an inner exception to the main HttpRequestException that is thrown. This is the current behavior of HttpClient on .NET Framework. Even for HttpWebRequest on .NET Framework, the exception is placed as an inner exception to the top-level WebException. Currently, .NET Core is throwing a raw exception from the callback and propagating it as a top-level exception for HttpClient APIs. This bad pattern started with WinHttpHandler when I introduced (unknowingly) the bug. The behavior was then copied to the *Nix version. This current test is therefore invalid: ```c# [Fact] public async Task UseCallback_CallbackThrowsException_ExceptionPropagates() { // ... var handler = new HttpClientHandler(); using (var client = new HttpClient(handler)) { var e = new DivideByZeroException(); handler.ServerCertificateCustomValidationCallback = delegate { throw e; }; Assert.Same(e, await Assert.ThrowsAsync(() => client.GetAsync(Configuration.Http.SecureRemoteEchoServer))); } } ``` In my PR #21905 implementing ServerCertificateCustomValidationCallback for UWP, I have revised this test and disabled it on all platforms except UAP. +21905 area-System.Net Fix HttpClientHandler ServerCertificateCustomValidationCallback for UWP This PR implements the ServerCertificateCustomValidationCallback for UWP. While implementing this, I discovered that the behavior of the current .NET Core code is incorrect regarding how to propagate exceptions from the user provided callback. I opened up a new issue #21904 and revised the test as well. Fixes #21627 +21906 area-Infrastructure Build CoreFx with a mounted docker volume "For CoreFx Linux official builds, rather than starting a detached docker container and issuing commands to it; issue each docker command to a new docker container using a mounted volume. This method means that we share the disk drive between the Host machine and docker containers which allows us to grab logs / binaries /etc... whenever and not have to deal with the ""expose docker"" step which has been flakey and caused build warnings. /cc @MichaelSimons @weshaggard " +21907 area-System.Net Disable several ManagedHandler tests These were enabled as they weren't failing CI, but that's likely because they were being skipped rather than because they actually work. cc: @davidsh +21908 area-System.Net ClientWebSocket supports client certificates in UWP With these changes, the UWP implementation of ClientWebSocket.ConnectAsync takes the _ClientCertificates_ member of the app-provided _ClientWebSocketOptions_ into account. The first client cert that can be successfully converted into a WinRT client cert (if any) is configured on the underlying WinRT MessageWebSocket instance, leading to the cert being used for mutual TLS authentication when establishing connections with WSS endpoints. This fix leverages WinRT APIs that are only present since Windows 10 Insider Preview Build 16215, so API presence checks are in place. Fixes #21393 CC: @mconnew +21909 area-System.Security Make CertificateRequest chain tests pass under clock adjustments "The X509Chain objects built during CertificateRequest tests didn't set the chain.ChainPolicy.VerificationTime value, so they got ""now"". But if ""now"" changed (backwards) between when the test asked for the NotBefore values and when the chain was built, then NotTimeValid will be produced when success is expected. A quick audit of the X509Chains built in the test library showed that these were effectively the only ones which didn't set their VerificationTime value, and by having NotBefore be ""now"" when the certs are created, they were very sensitive to backwards clock adjustments. Addresses #21343 in master (since it's a test-only noise-reduction we'll likely want to fix in rel/2.0, too)" +21911 area-System.Drawing Add basic tests for AdjustableArrowCap Chipping in with some very basic validation for AdjustableArrowCap. There's more stuff to test on the base CustomLineCap class; this just tests the properties in AdjustableArrowCap itself. +21913 area-Serialization Make GetMember to read from base type if the property is internal in derived type but public in base type When a property in internal in derived type but public in base type, the GetMember need read from base type. Fix #21731 @shmao @mconnew @zhenlan +21914 area-System.Net Some S.N.HttpListener tests will break UWP test runner on Windows managed implementation `AcceptWebSocketAsync_ValidSubProtocol_Success()`, `AcceptWebSocketAsync_ValidWebSocket_SetsUpContextProperties()`, and `AcceptWebSocketAsync_AuthorizationInHeaders_ThrowsNotImplementedException()`, would throw a exception caught by runtime, and break UWP test runner. ``` Loading unloaded module list .. This dump file has an exception of interest stored in it. The stored exception information can be accessed via .ecxr. (e428.651c): Unknown exception - code c000027b (first/second chance not available) KERNELBASE!RaiseFailFastException+0x74: 00007ffa`d405f204 803d3d3c1b0000 cmp byte ptr [KERNELBASE!BasepIsSecureProcess (00007ffa`d4212e48)],0 ds:00007ffa`d4212e48=00 0:027> .ecxr rax=000000c96e8fe390 rbx=000000c96e8fe930 rcx=000000c96e8fe390 rdx=0000000000000000 rsi=0000000000000002 rdi=000000c96e8fe390 rip=00007ffad405f204 rsp=000000c96e8fe2b0 rbp=000000c96e8fe980 r8=0000000000000000 r9=0000000000000006 r10=0000000000000000 r11=00007ffad6e25a17 r12=00007ffad6825330 r13=0000000000000000 r14=00007ffad6822440 r15=0000000000000000 iopl=0 nv up ei pl zr na po nc cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000244 KERNELBASE!RaiseFailFastException+0x74: 00007ffa`d405f204 803d3d3c1b0000 cmp byte ptr [KERNELBASE!BasepIsSecureProcess (00007ffa`d4212e48)],0 ds:00007ffa`d4212e48=00 ``` EDIT: removed call stack since it contains line numbers. cc: @davidsh @DavidGoll @CIPop +21917 area-System.Net System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test.GetAsync_AllowedSSLVersion_Succeeds failed in CI failed test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test.GetAsync_AllowedSSLVersion_Succeeds detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_opensuse42.1_debug/99/testReport/System.Net.Http.Functional.Tests/ManagedHandler_HttpClientHandler_SslProtocols_Test/GetAsync_AllowedSSLVersion_Succeeds_acceptedProtocol__Tls11__requestOnlyThisProtocol__False_/ MESSAGE: ~~~ System.Net.Http.HttpRequestException : could not establish SSL connection ---- System.IO.IOException : Authentication failed because the remote party has closed the transport stream. ~~~ STACK TRACE: ~~~ at System.Net.Http.HttpConnectionHandler.d__9.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 89 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Threading.Tasks.Extensions/src/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs:line 61 at System.Net.Http.HttpConnectionHandler.d__10.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 105 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Threading.Tasks.Extensions/src/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs:line 61 at System.Net.Http.HttpConnectionHandler.d__8.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 59 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.CookieHandler.d__3.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/CookieHandler.cs:line 31 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.AutoRedirectHandler.d__3.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/AutoRedirectHandler.cs:line 28 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 464 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.<>c__DisplayClass4_0.<b__0>d.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.SslProtocols.cs:line 104 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 66 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__4.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.SslProtocols.cs:line 102 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 884 at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 1102 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 745 at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 717 at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 132 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnectionHandler.d__9.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 79 ~~~ +21918 area-System.Runtime BinaryFormatter incompatibility regarding base class values between Desktop and Core "Given the following serializable classes: ```csharp [Serializable] class BaseClass { public const string DefaultValue = ""hello""; public string MissingValue { get; } = DefaultValue; } [Serializable] class FinalClass : BaseClass { } ``` When serializing `FinalClass` on Desktop .NET (4.6.1) and deserializing on .NET Core 2.0 Preview 2, `FinalClass.MissingValue` will always be unset. ## Test Case https://github.com/sandyarmstrong/BinaryFormatterSubclassTest ## Runtimes tested * .NET Core 2.0.0-preview2-006497 * .NET 4.6.1 (MS.NET and Mono 5.2.0.179) " +21920 area-System.IO "Test: System.IO.Tests.DirectoryInfo_Delete_bool/Unix_NotFoundDirectory_ReadOnlyVolume failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.DirectoryInfo_Delete_bool/Unix_NotFoundDirectory_ReadOnlyVolume` has failed. Assert.True() Failure Expected: True Actual: False Stack Trace: at System.IO.Tests.FileSystemTest.RunAsSudo(String commandLine) in /root/corefx/src/System.IO.FileSystem/tests/FileSystemTest.cs:line 69 at System.IO.Tests.FileSystemTest.ReadOnly_FileSystemHelper(Action`1 testAction, String subDirectoryName) in /root/corefx/src/System.IO.FileSystem/tests/FileSystemTest.cs:line 98 at System.IO.Tests.Directory_Delete_str.Unix_NotFoundDirectory_ReadOnlyVolume() in /root/corefx/src/System.IO.FileSystem/tests/Directory/Delete.cs:line 214 Build : Master - 20170706.01 (Core Tests) Failing configurations: - Ubuntu.1404.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170706.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.DirectoryInfo_Delete_bool~2FUnix_NotFoundDirectory_ReadOnlyVolume +21921 area-System.Net "Test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandlerTest/GetAsync_IPBasedUri_Success failed with ""System.Net.Sockets.SocketException : No route to host""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandlerTest/GetAsync_IPBasedUri_Success(address: fe80::1%1)` has failed. System.Net.Http.HttpRequestException : could not connect ---- System.Net.Sockets.SocketException : No route to host Stack Trace: at System.Net.Http.ConnectHelper.d__0.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/src/System/Net/Http/Managed/ConnectHelper.cs:line 38 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Threading.Tasks.Extensions/src/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs:line 61 at System.Net.Http.HttpConnectionHandler.d__10.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 99 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Threading.Tasks.Extensions/src/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs:line 61 at System.Net.Http.HttpConnectionHandler.d__8.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 59 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.CookieHandler.d__3.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/src/System/Net/Http/Managed/CookieHandler.cs:line 31 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.AutoRedirectHandler.d__3.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/src/System/Net/Http/Managed/AutoRedirectHandler.cs:line 28 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 464 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.<>c__DisplayClass31_0.<b__0>d.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs:line 278 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in /Users/buildagent/agent/_work/48/s/corefx/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 67 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__31.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs:line 276 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Sockets.Socket.BeginConnectEx(EndPoint remoteEP, Boolean flowContext, AsyncCallback callback, Object state) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 4981 at System.Net.Sockets.Socket.BeginConnect(IPAddress address, Int32 port, AsyncCallback requestCallback, Object state) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 2227 at System.Net.Sockets.TcpClient.BeginConnect(IPAddress address, Int32 port, AsyncCallback requestCallback, Object state) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/TCPClient.cs:line 295 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2](Func`5 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, Object state, TaskCreationOptions creationOptions) at System.Net.Sockets.TcpClient.ConnectAsync(IPAddress address, Int32 port) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/TCPClient.cs:line 276 at System.Net.Http.ConnectHelper.d__0.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/src/System/Net/Http/Managed/ConnectHelper.cs:line 27 Build : Master - 20170706.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release - OSX.1012.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170706.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandlerTest~2FGetAsync_IPBasedUri_Success(address:%20fe80::1%251) +21922 area-System.Net "Test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_ServerCertificates_Test/UseCallback_ValidCertificate_ExpectedValuesDuringCallback failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_ServerCertificates_Test/UseCallback_ValidCertificate_ExpectedValuesDuringCallback(url: https://corefx-net.cloudapp.net/Echo.as...` has failed. Assert.Equal() Failure Expected: None Actual: RemoteCertificateChainErrors Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.<>c__DisplayClass4_0.b__0(HttpRequestMessage request, X509Certificate2 cert, X509Chain chain, SslPolicyErrors errors) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.ServerCertificates.cs:line 132 at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback, ProtocolToken& alertToken) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Security/src/System/Net/Security/SecureChannel.cs:line 1036 at System.Net.Security.SslState.CompleteHandshake(ProtocolToken& alertToken) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 1022 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 817 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 801 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 970 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 873 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 830 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 801 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 970 at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 1102 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 720 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnectionHandler.d__9.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 89 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Threading.Tasks.Extensions/src/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs:line 61 at System.Net.Http.HttpConnectionHandler.d__10.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 105 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Threading.Tasks.Extensions/src/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs:line 61 at System.Net.Http.HttpConnectionHandler.d__8.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 59 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.CookieHandler.d__3.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/src/System/Net/Http/Managed/CookieHandler.cs:line 31 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.AutoRedirectHandler.d__3.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/src/System/Net/Http/Managed/AutoRedirectHandler.cs:line 28 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 464 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__4.MoveNext() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.ServerCertificates.cs:line 138 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170706.01 (Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170706.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_ServerCertificates_Test~2FUseCallback_ValidCertificate_ExpectedValuesDuringCallback(url:%20https:~2F~2Fcorefx-net.cloudapp.net~2FEcho.as... +21923 area-System.Net System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test.GetAsync_AllowedSSLVersion_Succeeds failed in CI failed test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test.GetAsync_AllowedSSLVersion_Succeeds detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_opensuse42.1_debug/99/testReport/System.Net.Http.Functional.Tests/ManagedHandler_HttpClientHandler_SslProtocols_Test/GetAsync_AllowedSSLVersion_Succeeds_acceptedProtocol__Tls12__requestOnlyThisProtocol__False_/ MESSAGE: ~~~ System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. ---- Interop+OpenSsl+SslException : SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL. -------- Interop+Crypto+OpenSslCryptographicException : error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number ~~~ STACK TRACE: ~~~ at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 983 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 810 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 800 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 969 at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 924 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 872 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 685 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 603 at System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 160 at System.Net.Security.SslStream.<>c__DisplayClass35_0.b__0(AsyncCallback callback, Object state) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 257 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) at System.Net.Security.SslStream.AuthenticateAsServerAsync(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 257 at System.Net.Test.Common.LoopbackServer.d__11.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 167 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.<>c__DisplayClass4_0.<b__0>d.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.SslProtocols.cs:line 104 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 66 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__4.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.SslProtocols.cs:line 102 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.OpenSsl.cs:line 153 at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslStreamPal.Unix.cs:line 128 ----- Inner Stack Trace ----- ~~~ +21924 area-System.Net "Test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test/GetAsync_NoSpecifiedProtocol_DefaultsToTls12 failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test/GetAsync_NoSpecifiedProtocol_DefaultsToTls12` has failed. Assert.Equal() Failure Expected: Tls12 Actual: Tls Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.<>c.<b__9_1>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.d__11.MoveNext() in /root/corefx/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 179 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.<>c__DisplayClass9_1.<b__0>d.MoveNext() in /root/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.SslProtocols.cs:line 173 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in /root/corefx/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 67 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__9.MoveNext() in /root/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.SslProtocols.cs:line 171 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170706.01 (Core Tests) Failing configurations: - SLES.12.Amd64-x64 - Release - Debug - suse.422.amd64-x64 - Release - Debug - Ubuntu.1704.Amd64-x64 - Release - Debug - Ubuntu.1610.Amd64-x64 - Release - Debug - Ubuntu.1604.Amd64-x64 - Release - Debug - Ubuntu.1404.Amd64-x64 - Release - Debug - Debian.90.Amd64-x64 - Release - Debug - Debian.87.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170706.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test~2FGetAsync_NoSpecifiedProtocol_DefaultsToTls12 +21925 area-System.Net "Test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test/GetAsync_UnsupportedSSLVersion_Throws failed with ""Xunit.Sdk.ThrowsException""" "Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test/GetAsync_UnsupportedSSLVersion_Throws(name: \""SSLv3\"", url: \""https://www.ssllabs.com:10300/\"")` has failed. Assert.Throws() Failure\r Expected: typeof(System.Net.Http.HttpRequestException)\r Actual: (No exception was thrown) Stack Trace: --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170706.01 (Core Tests) Failing configurations: - Windows.81.Amd64-x86 - Release - Windows.7.Amd64-x86 - Release - Windows.81.Amd64-x64 - Release - Windows.7.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170706.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test~2FGetAsync_UnsupportedSSLVersion_Throws(name:%20%5C%22SSLv3%5C%22,%20url:%20%5C%22https:~2F~2Fwww.ssllabs.com:10300~2F%5C%22)" +21926 area-System.Security "Test: System.Security.Cryptography.X509Certificates.Tests.ChainTests/VerifyWithRevocation failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Security.Cryptography.X509Certificates.Tests.ChainTests/VerifyWithRevocation` has failed. Assert.Equal() Failure Expected: 0 Actual: 1 Stack Trace: at System.Security.Cryptography.X509Certificates.Tests.ChainTests.VerifyWithRevocation() in /Users/buildagent/agent/_work/48/s/corefx/src/System.Security.Cryptography.X509Certificates/tests/ChainTests.cs:line 590 Build : Master - 20170706.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170706.01/workItem/System.Security.Cryptography.X509Certificates.Tests/analysis/xunit/System.Security.Cryptography.X509Certificates.Tests.ChainTests~2FVerifyWithRevocation +21927 area-System.Net System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test.GetAsync_NoSpecifiedProtocol_DefaultsToTls12 failed in CI failed test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test.GetAsync_NoSpecifiedProtocol_DefaultsToTls12 detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_opensuse42.1_debug/99/testReport/System.Net.Http.Functional.Tests/ManagedHandler_HttpClientHandler_SslProtocols_Test/GetAsync_NoSpecifiedProtocol_DefaultsToTls12/ MESSAGE: ~~~ System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.IO.IOException : Unable to transfer data on the transport connection: Connection reset by peer. -------- System.Net.Sockets.SocketException : Connection reset by peer ~~~ STACK TRACE: ~~~ at System.Net.Http.HttpConnection.d__29.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnection.cs:line 885 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpConnectionHandler.d__8.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 60 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.CookieHandler.d__3.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/CookieHandler.cs:line 31 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.AutoRedirectHandler.d__3.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/AutoRedirectHandler.cs:line 28 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 464 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.<>c__DisplayClass9_1.<b__0>d.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.SslProtocols.cs:line 173 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 66 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__9.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.SslProtocols.cs:line 171 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Security.SslStreamInternal.EndRead(IAsyncResult asyncResult) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs:line 174 at System.Net.Security.SslStream.EndRead(IAsyncResult asyncResult) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 537 at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.HttpConnection.<>c.b__42_0(Task`1 completed, Object state) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnection.cs:line 1089 at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.d__45.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnection.cs:line 1120 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Threading.Tasks.Extensions/src/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs:line 61 at System.Net.Http.HttpConnection.d__29.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnection.cs:line 724 ----- Inner Stack Trace ----- ~~~ +21928 area-System.Net Fix Socket.ReceiveAsync not completing for 0-byte receive on peer disconnect on Unix. Fixes https://github.com/dotnet/corefx/issues/21865 +21929 area-System.Runtime "Tests under: System.Tests.Array17Tests failed with ""System.ArgumentException""" Opened on behalf of @Jiayili1 The test `System.Tests.Array17Tests/CreateInstance_Type_Int_Int_Int_Invalid` has failed. Assert.Throws() Failure\r Expected: typeof(System.NotSupportedException)\r Actual: typeof(System.ArgumentException): The type 'System.Collections.Generic.List`1[T]' may not be used as an array element type. Stack Trace: at xunit.console.netcore!+0xd09eec at xunit.console.netcore!+0xd17eae at xunit.console.netcore!+0x808f51 at xunit.console.netcore!+0xd0846d at xunit.console.netcore!+0x81e83a at System.Array.CreateInstance(Type elementType, Int32 length1, Int32 length2, Int32 length3) at System.Tests.Array17Tests.<>c.b__12_2() at System.Func.Invoke() Build : Master - 20170706.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Debug - Windows.10.Amd64.ClientRS3-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170706.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.Array17Tests~2FCreateInstance_Type_Int_Int_Int_Invalid +21931 area-System.Runtime "Tests under: System.Tests.ArrayNetcoreappTests failed with ""System.InvalidOperationException""" Opened on behalf of @Jiayili1 The test `System.Tests.ArrayNetcoreappTests/CreateInstance_Type_Int_Int_Int_Invalid` has failed. Assert.Throws() Failure\r Expected: typeof(System.ArgumentException)\r Actual: typeof(System.InvalidOperationException): InvalidOperation_ArrayCreateInstance_NotARuntimeType. For more information, visit http://go.microsoft.com/fwlink/?LinkId=623485 Stack Trace: at xunit.console.netcore!+0x81e822 at System.Array.CreateInstance(Type elementType, Int32 length1, Int32 length2, Int32 length3) at System.Tests.ArrayNetcoreappTests.<>c__DisplayClass2_0.b__0() at System.Func.Invoke() Build : Master - 20170706.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Debug - Windows.10.Amd64.ClientRS3-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170706.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.ArrayNetcoreappTests~2FCreateInstance_Type_Int_Int_Int_Invalid +21932 area-System.Runtime Test failure: System.Tests.ArrayTests/CreateInstance_NotSupportedType_ThrowsNotSupportedException(elementType: typeof(GenericClass`1)) Opened on behalf of @Jiayili1 The test `System.Tests.ArrayTests/CreateInstance_NotSupportedType_ThrowsNotSupportedException(elementType: typeof(GenericClass`1))` has failed. Assert.Throws() Failure\r Expected: typeof(System.NotSupportedException)\r Actual: typeof(System.PlatformNotSupportedException): PlatformNotSupported_NoTypeHandleForOpenTypes. For more information, visit http://go.microsoft.com/fwlink/?LinkId=623485 Stack Trace: at xunit.console.netcore!+0xc92e74 at System.Tests.ArrayNetcoreappTests.<>c__DisplayClass0_0.b__0() at System.Func.Invoke() Build : Master - 20170706.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Debug - Windows.10.Amd64.ClientRS3-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170706.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.ArrayTests~2FCreateInstance_NotSupportedType_ThrowsNotSupportedException(elementType:%20typeof(GenericClass%601)) +21933 area-System.Net Port Uri.CheckForUnicode rewrite to desktop Visual Studio uses Uri to verify and check paths due to some limitations in the Path APIs. Uri.CheckForUnicode, (which appears to be have been rewritten in CoreFx to not allocate), is a cause of a [large amount of data](http://referencesource.microsoft.com/#System/net/System/UriExt.cs,258) in certain scenarios. Can we please port this rewrite to desktop? Here's an example of a trace taken just opening (http://github.com/dotnet/project-system) in Visual Studio, this one method is the cause of 3.7% of all data allocated: ![image](https://user-images.githubusercontent.com/1103906/27902230-4ee93376-6278-11e7-8602-6169e3fcef55.png) +21934 area-System.IO File System watcher Filters dont work on Linux So when I set: fileSystemWatcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite; The created event is raised even when its a folder being created. Im on ubuntu 17.04, ``` .NET Command Line Tools (2.0.0-preview2-006497) Product Information: Version: 2.0.0-preview2-006497 Commit SHA-1 hash: 06a2093335 Runtime Environment: OS Name: ubuntu OS Version: 17.04 OS Platform: Linux RID: linux-x64 Base Path: /usr/share/dotnet/sdk/2.0.0-preview2-006497/ Microsoft .NET Core Shared Framework Host Version : 2.0.0-preview2-25407-01 Build : 40c565230930ead58a50719c0ec799df77bddee9 ``` +21936 area-System.Net Detect connection closed in ManagedHandler pooling We still need a real connection pooling implementation, but this change at least helps mitigate the case where the server closes the connection. When we take a connection from the pool, we now poll to see if it's readable, and if it is (meaning either it's been shutdown or there's data available to read), we discard it as it's unusable. cc: @geoffkizer +21937 area-System.Net release/2.0: Fix Socket.ReceiveAsync not completing for 0-byte receive on peer disconnect on Unix Port #21928 to release/2.0 branch. Fixes #21865. cc: @geoffkizer, @tmds +21938 area-System.Net Wrap CurlHandler cert validation callback exceptions in HttpRequestException Contributes to https://github.com/dotnet/corefx/issues/21904 (https://github.com/dotnet/corefx/issues/21905 is fixing the corresponding test, so for now in this PR I've just marked the associated test as ActiveIssue, and we'll just need to resolve the merge conflict accordingly based on whichever change is merged first.) cc: @davidsh, @geoffkizer +21940 area-System.Net handle Connection: close on response @stephentoub, @wfurt, @Priya91 +21941 area-Serialization Area-Serialization Sprint 121 The issue is for tracking issues to be done in sprint 121 (due by 7/27/2017) +21942 area-Serialization XmlSerializer works inconsistently with XmlTextAttribute on derived classes "For some reason XmlText only works on string properties on derived classes, while it can properly convert other types if the class is not derived. This seems weird and inconsistent. ```CSharp using System; using System.Xml.Serialization; namespace CoreXmlTextTest { public enum TestEnum { Off, On, Both } public class EnumTestUnderived { [XmlText] public TestEnum Test { get; set; } } public class EnumTestBase { } public class EnumTestDerived : EnumTestBase { [XmlText] public TestEnum Test { get; set; } } public class Program { public static void Main(string[] args) { var ser = new XmlSerializer(typeof(EnumTestUnderived)); var sw = new System.IO.StringWriter(); ser.Serialize(sw, new EnumTestUnderived() { Test = TestEnum.On }); Console.WriteLine(sw.ToString()); try { new XmlSerializer(typeof(EnumTestDerived)); } catch (Exception e) { Console.WriteLine(e); return; } } } } ``` The code above outputs: ``` On System.InvalidOperationException: There was an error reflecting type 'CoreXmlTextTest.EnumTestDerived'. ---> System.InvalidOperationException: Cannot serialize object of type 'CoreXmlTextTest.EnumTestDerived'. Consider changing type of XmlText member 'CoreXmlTextTest.EnumTestDerived.Test' from CoreXmlTextTest.TestEnum to string or string array. at System.Xml.Serialization.StructMapping.SetContentModel(TextAccessor text, Boolean hasElements) at System.Xml.Serialization.XmlReflectionImporter.InitializeStructMembers(StructMapping mapping, StructModel model, Boolean openModel, String typeName, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportStructLikeMapping(StructModel model, String ns, Boolean openModel, XmlAttributes a, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter) --- End of inner exception stack trace --- at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportElement(TypeModel model, XmlRootAttribute root, String defaultNamespace, RecursionLimiter limiter) at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type, XmlRootAttribute root, String defaultNamespace) at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace) at System.Xml.Serialization.XmlSerializer..ctor(Type type) at CoreXmlTextTest.Program.Main(String[] args) in c:\Users\kb\Documents\Visual Studio 2015\Projects\Test\CoreXmlTextTest\Program.cs:line 31 ``` Note that the only difference whether it succeeds or not is whether the class derives from Object or from another class. .net Core version: 2.0.0-preview2-25407-01 NB: This issue is also present in the full .NET Framework." +21943 area-System.Data Change System.Data.Common to build with System.Xml.Private For uapaot, SqlXml needs to have access to the XmlReader.CreateSqlReader via reflection. The options are to disable reflect block on System.Xml.* which may cause the application size to be larger. To get past this issue, the recommendation is to change the CreateSqlReader visibility to public in System.Private.Xml and take a dependency on the private assembly. Fixes #19202 cc @tijoytom @stephentoub @joperezr @danmosemsft @jkotas +21944 area-System.Drawing Add license header to AdjustableArrowCapTests.cs I forgot to add the license header to this file. +21945 area-System.Net Interactions between different UAP HttpClient SSL tests causes failures "While working on PR #21905, I discovered some test failures on UAP. The failures occur in two different tests, but only if both tests are enabled. Running each test separately while disabling the other makes the tests pass. The problem is actually due to a known issue in WinRT Windows.Web.Http.HttpClient layer. The WinRT layer uses native WinInet and there are some things that WinInet caches per-process and not per-session handle. That means that there is unintended sharing of some state between separate HttpClient objects. In particular, this shared state is about TCP connections and specifically if SSL connections were made using cert error ignore flags. We have two tests were the tests are testing against connecting to servers with bad certificates. ```c# public static readonly object[][] CertificateValidationServers = { new object[] { Configuration.Http.ExpiredCertRemoteServer }, new object[] { Configuration.Http.SelfSignedCertRemoteServer }, new object[] { Configuration.Http.WrongHostNameCertRemoteServer }, }; [OuterLoop] // TODO: Issue #11345 [ConditionalTheory(nameof(ClientSupportsDHECipherSuites))] [MemberData(nameof(CertificateValidationServers))] public async Task NoCallback_BadCertificate_ThrowsException(string url) { using (var client = new HttpClient()) { await Assert.ThrowsAsync(() => client.GetAsync(url)); } } [OuterLoop] // TODO: Issue #11345 [ConditionalTheory(nameof(BackendSupportsCustomCertificateHandlingAndClientSupportsDHECipherSuites))] [MemberData(nameof(CertificateValidationServersAndExpectedPolicies))] public async Task UseCallback_BadCertificate_ExpectedPolicyErrors(string url, SslPolicyErrors expectedErrors) ``` In one test, we use no callback and expect to get errors. In another test, we connect to the same servers and pass it a callback. We use the callback to analyze the certificate errors from the X509Chain we get back. The problem occurs in the no_callback test where we expect to get an HttpRequestException back. But we don't because the other test which ran in parallel or just before already used ignore flags, made good connections at the TCP/SSL layer, so Wininet caches those connections for later use. So, the no_callback test fails because the connections are already there. One way to work around this problem in the tests is to isolate each of the two tests into separate processes using the RemoteExecutor. In a previous release of Windows 10, the WinRT HttpClient APIs added a new method to the HttpBaseProtocolFilter: https://docs.microsoft.com/en-us/uwp/api/windows.web.http.filters.httpbaseprotocolfilter That new method ```c# public void ClearAuthenticationCache() ``` allows developers to clear out any cached connection information if their app is running long-term and they need to do ""log off"" scenarios. However, at the System.Net.Http layer, we don't have that control, nor do we expect it since the assumption is that connections are cached per HttpClient. So, this is a difference in behaviors, unfortunately, for now. " +21946 area-System.Diagnostics Remove use of NtQuerySystemInformation for UWP We can't use NtQuerySystemInformation in an app. It will fail WACK. At this point, we should stop using it in our UWP binaries. That means API that enumerates and examines arbitrary processes should be stubbed to thrown PNSE with a nice message. Please factor the process class so that it doesn't appear in the UAP build and so you can remove it from src\System.Diagnostics.Process\src\PinvokeAnalyzerExceptionList.analyzerdata.uap +21948 area-System.IO Fix uap package clrcompression import The UAP AOT packages were taking a clrcompression that did not have the appx bit enabled. @joperezr @ericstj +21950 area-System.Net GetAsync_IPBasedUri_Success test fails on some Unixes with ManagedHandler and link-local addresses e.g. ``` MESSAGE: System.Net.Http.HttpRequestException : could not connect\n---- System.Net.Sockets.SocketException : Invalid argument +++++++++++++++++++ STACK TRACE: at System.Net.Http.ConnectHelper.d__0.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/ConnectHelper.cs:line 38 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Threading.Tasks.Extensions/src/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs:line 61 at System.Net.Http.HttpConnectionHandler.d__10.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 99 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Threading.Tasks.Extensions/src/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs:line 61 at System.Net.Http.HttpConnectionHandler.d__8.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 59 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.CookieHandler.d__3.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/CookieHandler.cs:line 31 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.AutoRedirectHandler.d__3.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/AutoRedirectHandler.cs:line 28 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 464 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.<>c__DisplayClass31_0.<b__0>d.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs:line 278 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 66 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__31.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs:line 276 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Sockets.Socket.BeginConnectEx(EndPoint remoteEP, Boolean flowContext, AsyncCallback callback, Object state) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 4986 at System.Net.Sockets.Socket.UnsafeBeginConnect(EndPoint remoteEP, AsyncCallback callback, Object state, Boolean flowContext) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 2132 at System.Net.Sockets.Socket.BeginConnect(EndPoint remoteEP, AsyncCallback callback, Object state) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 2108 at System.Net.Sockets.Socket.BeginConnect(IPAddress address, Int32 port, AsyncCallback requestCallback, Object state) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 2227 at System.Net.Sockets.TcpClient.BeginConnect(IPAddress address, Int32 port, AsyncCallback requestCallback, Object state) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Sockets/src/System/Net/Sockets/TCPClient.cs:line 297 at System.Net.Sockets.TcpClient.<>c.b__27_0(IPAddress targetAddess, Int32 targetPort, AsyncCallback callback, Object state) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Sockets/src/System/Net/Sockets/TCPClient.cs:line 277 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2](Func`5 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory.FromAsync[TArg1,TArg2](Func`5 beginMethod, Action`1 endMethod, TArg1 arg1, TArg2 arg2, Object state) at System.Net.Sockets.TcpClient.ConnectAsync(IPAddress address, Int32 port) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Sockets/src/System/Net/Sockets/TCPClient.cs:line 276 at System.Net.Http.ConnectHelper.d__0.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Http/src/System/Net/Http/Managed/ConnectHelper.cs:line 28 ``` +21951 area-System.Net Fix ManagedHandler to support connecting to IPv6 servers Also use IdnHost instead of Host, in case the Host isn't DNS-safe. Fixes https://github.com/dotnet/corefx/issues/21950 cc: @geoffkizer +21953 area-System.Net Some tests in System.Net.HttpListener HttpRequestStreamTests.cs will break UWP test runner with System.IO.IOException "Those are sample test cases will break the test runner: `Read_NullBuffer_ThrowsArgumentNullException()`, `Read_InvalidOffset_ThrowsArgumentOutOfRangeException()`, `EndRead_NullAsyncResult_ThrowsArgumentNullException()`, ..... ``` CLR exception type: System.IO.IOException ""Unable to read data from the transport connection: A request to send or receive data was disallowed because the socket had already been shut down in that direction with a previous shutdown call."" ntdll!ZwWaitForMultipleObjects+0x14: 00007ffa`d6e1f8d4 c3 ret 0:019> !pe Exception object: 0000018fd824b8d0 Exception type: System.IO.IOException Message: Unable to read data from the transport connection: A request to send or receive data was disallowed because the socket had already been shut down in that direction with a previous shutdown call. InnerException: System.Net.Sockets.SocketException, Use !PrintException 0000018fd824aee8 to see more. StackTrace (generated): SP IP Function 00000049660FC2E0 00007FFA3F2EBD07 System_Net_Sockets!System.Net.Sockets.NetworkStream.BeginRead(Byte[], Int32, Int32, System.AsyncCallback, System.Object)+0x447 00000049660FE780 00007FFA3F2F1E24 System_Net_HttpListener!System.Net.HttpConnection.OnReadInternal(System.IAsyncResult)+0x394 00000049660FE880 00007FFA3F2F19CE System_Net_HttpListener!System.Net.HttpConnection.OnRead(System.IAsyncResult)+0x9e 00000049660FE8E0 00007FFA3F2F1532 System_Net_Sockets!System.Net.LazyAsyncResult.Complete(IntPtr)+0x292 00000049660FE9E0 00007FFA3F2F1231 System_Net_Sockets!System.Net.ContextAwareResult.CompleteCallback()+0x71 00000049660FEA20 00007FFA3F2F119F System_Net_Sockets!System.Net.ContextAwareResult+<>c.b__17_0(System.Object)+0x6f 00000049660FEA60 00007FFA70A837B1 System_Private_CoreLib!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)+0x111 00000049660FEAD0 00007FFA3F2F0E57 System_Net_Sockets!System.Net.ContextAwareResult.Complete(IntPtr)+0x2e7 00000049660FEBB0 00007FFA3F2F0B03 System_Net_Sockets!System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object, IntPtr)+0x253 00000049660FEC80 00007FFA3F2F0841 System_Net_Sockets!System.Net.LazyAsyncResult.InvokeCallback(System.Object)+0x31 00000049660FECB0 00007FFA3F2EF5A3 System_Net_Sockets!System.Net.Sockets.BaseOverlappedAsyncResult.CompletionCallback(Int32, System.Net.Sockets.SocketError)+0x73 00000049660FECF0 00007FFA3F2EF22E System_Net_Sockets!System.Net.Sockets.BaseOverlappedAsyncResult.CompletionPortCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)+0x5ae 00000049660FEEE0 00007FFA70C6DA43 System_Private_CoreLib!System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)+0x73 StackTraceString: HResult: 80131620 There are nested exceptions on this thread. Run with -nested for details ``` @davidsh @DavidGoll @CIPop " +21954 area-Meta Application Manifest File does not build correctly In a .NET Core project, add an Application Manifest File to the project and build the solution. An error of `CS1926 Error opening Win32 manifest file c:\app1.manifest -- Could not find file 'c:\app1.manifest'.` In .NET Framework projects, adding this file works and builds without any modification. +21955 area-System.IO Convert Tests to Theory Converting tests from Fact to Theory to make it easier to recognize which tests are failing instead of spending time sorting through ambiguous test output. +21957 area-System.Diagnostics Remove NtQuerySystemInformation from Uap Resolves https://github.com/dotnet/corefx/issues/21946 Since we can't use NtQuerySystemInformation in Uap, to enumerate/examine processes, I'm using `PerformanceCounterLib` as we do for remote machines. +21958 area-System.Net System.Net.HttpListener switch to managed implementation for UAP Fix: #17910 +21959 area-System.Xml Fix System.Xml.Linq.xNodeBuilder.Tests for UapAot Fixes: https://github.com/dotnet/corefx/issues/21555 ArgumentNullException.ParamName is set to null in ILC ret mode by nutc optimizations so this was causing the tests to crash with a NullReferenceException in https://github.com/dotnet/corefx/compare/master...safern:FixXnodeBuilderTests?expand=1#diff-970dcd231e06d46b9ed9524632984fb0R97 This was caused because we are actually testing for the `exception.ParamName` and since it was different than the expected this tests throw a `TestException` and prints it out. So when `TestException.ToString()` was called `Actual` was `null` and `Actual.GetType()` was causing the `NullReferenceException` cc: @danmosemsft @tijoytom +21961 area-System.Xml Unexpected KeyNotFoundException in XmlSerializerNamespaces.Namespaces I'm converting a project to netstandard2.0 and run into a KeyNotFoundException from the internals of XmlSerializer (full stack trace below). I tracked it down from: https://github.com/dotnet/corefx/blob/release/2.0.0/src/System.Private.Xml/src/System/Xml/Serialization/XmlSerializationWriter.cs#L1405 to: https://github.com/dotnet/corefx/blob/release/2.0.0/src/System.Private.Xml/src/System/Xml/Serialization/XmlSerializerNamespaces.cs#L108 When looking at the reference source at: https://referencesource.microsoft.com/#System.Xml/System/Xml/Serialization/XmlSerializerNamespaces.cs,99 'Namespaces' changed from a Hashtable to a Dictionary, which now causes a KeyNotFoundException on non-existing namespaces. XmlSerializer relies on the fact it can return null. This could be problematic in other places as well if they rely on a Hashtable. Probably, all references of 'Namespaces' should be checked and corrected with TryGetValue, or go back to using a Hashtable. Full stack trace: ``` Failed UblSharp.Tests.SampleTests.UBLInvoice20ExampleNS2Test Error Message: System.InvalidOperationException : There was an error generating the XML document. ---- System.Collections.Generic.KeyNotFoundException : The given key was not present in the dictionary. Stack Trace: at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces, String encodingStyle, String id) at System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, XmlSerializerNamespaces namespaces) at UblSharp.BaseDocumentExtensions.Save[T](T document, XmlWriter writer) in C:\Projects\UblSharp2\src\UblSharp\BaseDocumentExtensions.cs:line 65 at UblSharp.BaseDocumentExtensions.Save[T](T document, Stream stream) in C:\Projects\UblSharp2\src\UblSharp\BaseDocumentExtensions.cs:line 34 at UblSharp.Tests.SampleTests.ToXDocument[T](T document) in C:\Projects\UblSharp2\src\UblSharp.Tests\SampleTests.cs:line 96 at UblSharp.Tests.SampleTests.TestDocument[T](String documentFilename, Func`1 factory) in C:\Projects\UblSharp2\src\UblSharp.Tests\SampleTests.cs:line 47 at UblSharp.Tests.SampleTests.UBLInvoice20ExampleNS2Test() in C:\Projects\UblSharp2\src\UblSharp.Tests\Samples\SampleTests.partial.cs:line 157 ``` ``` ----- Inner Stack Trace ----- at System.ThrowHelper.ThrowKeyNotFoundException() at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at System.Xml.Serialization.XmlSerializationWriter.WriteNamespaceDeclarations(XmlSerializerNamespaces xmlns) at System.Xml.Serialization.XmlSerializationWriter.WriteStartElement(String name, String ns, Object o, Boolean writePrefixed, XmlSerializerNamespaces xmlns) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterInvoiceType.Write330_InvoiceType(String n, String ns, InvoiceType o, Boolean isNullable , Boolean needType) at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterInvoiceType.Write331_Invoice(Object o) Skipped UblSharp.Tests.SampleTests.UBLInvoice20EnvelopedTest Standard Output Messages: ``` +21962 area-System.IO Increased timeout Increased timeout for deleting a read only file system as sudo. Fixes #21823. +21963 area-System.Net Intermittent Failure in ServicePointManager tests Intermittent failure, see details below. System.Net.Tests.TlsSystemDefault.ServicePointManager_SecurityProtocolDefault_Ok() [failed](https://mc.dot.net/#/user/nchikanov/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/ccff43e892dac662b67327aad3d7e20625f3f2bc/workItem/System.Net.ServicePoint.Tests/analysis/xunit/System.Net.Tests.TlsSystemDefault~2FServicePointManager_SecurityProtocolDefault_Ok): Assert.Equal() Failure\r\nExpected: SystemDefault\r\nActual: Tls11 +21964 area-System.Net [release/2.0] Unable to make https request when Oid lookup takes too long (#21320) Port EKU Oid lookup fix which is causing hangs in TLS/SSL network connections. Fix was verified by customers in (master) branch. The same fix is being discussed for .NET Framework servicing. Porting PR #21320 +21970 area-System.ComponentModel Added new params constructor to ForeignKeyAttribute Added new params constructor to System.ComponentModel.DataAnnotations.Schema.ForeignKeyAttribute to enable support for passing in multiple names rather than requiring developers to concatenate them. +21971 area-System.Diagnostics "Tests under: BasicEventSourceTests.TestsWrite failed with ""System.Reflection.MissingMetadataException""" Opened on behalf of @Jiayili1 The test `BasicEventSourceTests.TestsWrite/Test_Write_T_EventListener` has failed. System.Reflection.MissingMetadataException : This operation cannot be carried out because metadata for the following object was removed for performance reasons:\ \ \ \ No further information is available. Rebuild in debug mode for better information.\ \ Stack Trace: at xunit.console.netcore!+0xe0b68b at xunit.console.netcore!+0xa05b16 at xunit.console.netcore!+0xdf6e1c at xunit.console.netcore!+0xa571b4 at xunit.console.netcore!+0xa57146 at xunit.console.netcore!+0xa570ba at xunit.console.netcore!+0xa56f33 at xunit.console.netcore!+0xa5594d at xunit.console.netcore!+0xa5514b at xunit.console.netcore!+0x79c88a at xunit.console.netcore!+0xae5d3d at BasicEventSourceTests.TestsWrite.<>c__DisplayClass3_0.b__0() at BasicEventSourceTests.EventTestHarness.RunTests(Collections.Generic.List tests, Listener listener, Diagnostics.Tracing.EventSource source, FilteringOptions options) at BasicEventSourceTests.TestsWrite.Test_Write_T(Listener listener) at BasicEventSourceTests.TestsWrite.Test_Write_T_EventListener() at xunit.console.netcore!+0xcdc467 at xunit.console.netcore!+0xb7cf83 at xunit.console.netcore!+0xb7cd83 Build : Master - 20170707.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Windows.10.Amd64.ClientRS3-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170707.01/workItem/System.Diagnostics.Tracing.Tests/analysis/xunit/BasicEventSourceTests.TestsWrite~2FTest_Write_T_EventListener +21973 area-System.Runtime Test failure: System.Tests.DBNullTests/Convert_IsDBNull_ReturnsExpected Opened on behalf of @Jiayili1 The test `System.Tests.DBNullTests/Convert_IsDBNull_ReturnsExpected` has failed. $BlockedFromReflection_0_ce6e468c : This object cannot be invoked because it was metadata-enabled for browsing only: 'System.DBNull.ToString()' For more information, please visit http://go.microsoft.com/fwlink/?LinkID=616867 Stack Trace: at xunit.console.netcore!+0xc91930 at xunit.console.netcore!+0xc91816 at xunit.console.netcore!+0xd4c7c7 at xunit.console.netcore!+0xd0dc09 at xunit.console.netcore!+0xd0df8d Build : Master - 20170707.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170707.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.DBNullTests~2FConvert_IsDBNull_ReturnsExpected +21974 area-System.Runtime "Test: System.Tests.GCTests/GetAllocatedBytesForCurrentThread failed with ""System.MissingMethodException""" Opened on behalf of @Jiayili1 The test `System.Tests.GCTests/GetAllocatedBytesForCurrentThread(size: 1000)` has failed. System.MissingMethodException : Method 'GC.GetAllocatedBytesForCurrentThread()' was not included in compilation, but was referenced in GCTests.GetAllocatedBytesForCurrentThread(int). There may have been a missing assembly, or a dependency on a more recent Windows SDK release. Stack Trace: at System.Tests.GCTests.GetAllocatedBytesForCurrentThread(Int32 size) at xunit.console.netcore!+0xae9db3 at SharedLibrary!+0x754013 at SharedLibrary!+0x753e13 Build : Master - 20170707.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Windows.10.Amd64.ClientRS3-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170707.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.GCTests~2FGetAllocatedBytesForCurrentThread(size:%201000) +21975 area-Serialization Serialization test case DCS_BasicRoundtripDCRDefaultCollections failed in ReflectionOnly "The tset case named DCS_BasicRoundtripDCRDefaultCollections failed in project System.Runtime.Serialization.Xml.ReflectionOnly.Tests. Error message : 1. **expected**: <_arrayList z:Id=""2"" **z:Size=""1""** xmlns:a=""http://schemas.microsoft.com/2003/10/Serialization/Arrays\""> **actual**: <_arrayList z:Id=""2"" xmlns:a=""http://schemas.microsoft.com/2003/10/Serialization/Arrays\""> 2. **expected**: <_hashtable z:Id=""6"" **z:Size=""1""** xmlns:a=""http://schemas.microsoft.com/2003/10/Serialization/Arrays\""> **actual**: <_hashtable z:Id=""6"" xmlns:a=""http://schemas.microsoft.com/2003/10/Serialization/Arrays\"">" +21976 area-Meta Proposal: Provide API/class library to play music stored in strings, like QBasic "QBasic has ""play"" command to play music which is stored in strings, why VB and C# can't? I hope that VB and C# have the same ability to play music without a music file. If I only have a music score and do not have any music files, I wish to write a program to play it. I can translate the music score to strings manually, according to specific rules, just like QBasic." +21981 area-System.Net HttpListenerFactory: improve port selection This speeds up test execution of System.Net.HttpListener.Tests by about 15 seconds. Pre: ``` System.Net.HttpListener.Tests Total: 638, Errors: 0, Failed: 0, Skipped: 16, Time: 141.388s ``` Post: ``` System.Net.HttpListener.Tests Total: 638, Errors: 0, Failed: 0, Skipped: 16, Time: 127.527s ``` +21982 area-System.Runtime Dynamically Loading .NET Core Assemblies "I've published an ASP.NET Core project to a folder and I'm trying to dynamically load the assembly containing the ASP.NET Core `Startup` class. I then want to instantiate the `Startup` class and hand it over to the `TestHost` API, so I can start the site in memory. I've written the following code: ```c# var directoryPath = @""C:\Dlls""; var assemblyFilePath = Path.Combine(directoryPath, ""Foo.dll""); var assemblyName = AssemblyLoadContext.GetAssemblyName(assemblyFilePath); var assembly = new AssemblyLoader(directoryPath).LoadFromAssemblyName(assemblyName); var startupType = assembly.ExportedTypes .FirstOrDefault(x => string.Equals(x.Name, ""Startup"")); var webHostBuilder = new WebHostBuilder() .UseStartup(startupType) .UseUrls(new string[] { ""http://localhost"" }); using (var testServer = new TestServer(webHostBuilder)) { var response = testServer.CreateClient().GetAsync(""/""); } public class AssemblyLoader : AssemblyLoadContext { private readonly string directoryPath; public AssemblyLoader(string directoryPath) => this.directoryPath = directoryPath; protected override Assembly Load(AssemblyName assemblyName) { var dependencyContext = DependencyContext.Default; var compilationLibraries = dependencyContext .CompileLibraries .Where(x => x.Name.Contains(assemblyName.Name)) .ToList(); if (compilationLibraries.Count > 0) { return Assembly.Load(new AssemblyName(compilationLibraries.First().Name)); } else { var file = new FileInfo($""{this.directoryPath}{Path.DirectorySeparatorChar}{assemblyName.Name}.dll""); if (File.Exists(file.FullName)) { var asemblyLoader = new AssemblyLoader(file.DirectoryName); return asemblyLoader.LoadFromAssemblyPath(file.FullName); } } return Assembly.Load(assemblyName); } } ``` This works when I publish the app as a self contained application, however, I'd like to avoid dealing with runtime identifiers (RID's) if possible. When I publish normally the code throws a `TypeLoadException` when `assembly.ExportedTypes` is called. The full stack trace: ``` System.TypeLoadException occurred HResult=0x80131522 Message=Method 'ConfigureServices' in type 'Foo.Startup' from assembly 'Foo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation. Source= StackTrace: at System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes) at System.Reflection.RuntimeAssembly.GetExportedTypes() ``` How can I dynamically load the .NET Core runtime in the `AssemblyLoader` class? [Related StackOverflow question](https://stackoverflow.com/questions/44545544/dynamically-loading-an-asp-net-core-assembly). [EDIT] @karelz changes: formatting code with c# syntax (\`\`\`c#) and stack trace in \`\`\` block." +21986 area-System.Xml System.Xml.Linq.Events.Tests crash on UapAot This tests are crashing with following error: ``` Unhandled exception thrown: read access violation. pContext->pRbx was nullptr. ``` I've seen this failed in several places, one of them is: https://github.com/dotnet/corefx/blob/master/src/System.Private.Xml/src/System/Xml/Core/XmlEncodedRawTextWriter.cs#L138 Note that this only happens in ret mode, if I build the test project in chk then this doesn't happen anymore. cc: @tijoytom +21987 area-System.Net [release/1.1] Unable to make https request when Oid lookup takes too long (#21320) Port EKU Oid lookup fix which is causing hangs in TLS/SSL network connections. Porting PR #21320 +21989 area-System.Net [release/1.0] Unable to make https request when Oid lookup takes too long (#21320) Port EKU Oid lookup fix which is causing hangs in TLS/SSL network connections. Porting PR #21320 +21990 area-System.Net Avoid HttpClient substring allocations for number parsing This both avoids substring allocations and is faster than the current calls, at least in microbenchmarks. cc: @geoffkizer, @davidsh +21991 area-System.Net SslStream incorrectly handles SslProtocols.None on Unix "This should run successfully on Linux, as it does on Windows. Instead it fails with the exception: ``` Unhandled Exception: System.Security.Authentication.AuthenticationException: A call to SSPI failed, see inner exception. ---> Interop+OpenSsl+SslException: SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL. ---> Interop+Crypto+OpenSslCryptographicException: error:1408A10B:SSL routines:ssl3_get_client_hello:wrong version number --- End of inner exception stack trace --- at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Test.d__1.MoveNext() in /home/stoub/tmpapp/Program.cs:line 39 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Repro: ``` using System; using System.IO; using System.Linq; using System.Net; using System.Net.Security; using System.Net.Sockets; using System.Security.Authentication; using System.Security.Cryptography.X509Certificates; using System.Threading.Tasks; class Test { static void Main() => MainAsync().GetAwaiter().GetResult(); static async Task MainAsync() { var serverCert = new X509Certificate2(s_testcertpfx, ""testcertificate""); using (Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) using (Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) { listener.Bind(new IPEndPoint(IPAddress.Loopback, 0)); listener.Listen(1); Task connectTask = Task.Run(() => client.Connect(listener.LocalEndPoint)); using (Socket server = listener.Accept()) { await connectTask; using (var serverStream = new SslStream(new NetworkStream(server, true), false, delegate { return true; })) using (var clientStream = new SslStream(new NetworkStream(client, true), false, delegate { return true; })) { Task t1 = serverStream.AuthenticateAsServerAsync(serverCert, false, SslProtocols.Tls12, false); Task t2 = clientStream.AuthenticateAsClientAsync(""localhost"", null, SslProtocols.None, false); await await Task.WhenAny(t1, t2); await Task.WhenAll(t1, t2); } } } } private static readonly byte[] s_testcertpfx = Convert.FromBase64String( @""MIIVBAIBAzCCFMAGCSqGSIb3DQEHAaCCFLEEghStMIIUqTCCCooGCSqGSIb3DQEHAaCCCnsEggp3 MIIKczCCCm8GCyqGSIb3DQEMCgECoIIJfjCCCXowHAYKKoZIhvcNAQwBAzAOBAhCAauyUWggWwIC B9AEgglYefzzX/jx0b+BLU/TkAVj1KBpojf0o6qdTXV42drqIGhX/k1WwF1ypVYdHeeuDfhH2eXH ImwPTw+0bACY0dSiIHKptm0sb/MskoGI8nlOtHWLi+QBirJ9LSUZcBNOLwoMeYLSFEWWBT69k/sW rc6/SpDoVumkfG4pZ02D9bQgs1+k8fpZjZGoZp1jput8CQXPE3JpCsrkdSdiAbWdbNNnYAy4C9Ej /vdyXJVdBTEsKzPYajAzo6Phj/oS/J3hMxxbReMtj2Z0QkoBBVMc70d+DpAK5OY3et872D5bZjvx hjAYh5JoVTCLTLjbtPRn1g7qh2dQsIpfQ5KrdgqdImshHvxgL92ooC1eQVqQffMnZ0/LchWNb2rM Da89K9CtAefEIF4ve2bOUZUNFqQ6dvd90SgKq6jNfwQf/1u70WKE86+vChXMMcHFeKso6hTE9+/z uUPNVmbRefYAtDd7ng996S15FNVdxqyVLlmfcihX1jGhTLi//WuMEaOfXJ9KiwYUyxdUnMp5QJqO 8X/tiwnsuhlFe3NKMXY77jUe8F7I+dv5cjb9iKXAT+q8oYx1LcWu2mj1ER9/b2omnotp2FIaJDwI 40Tts6t4QVH3bUNE9gFIfTMK+WMgKBz/JAGvC1vbPSdFsWIqwhl7mEYWx83HJp/+Uqp5f+d8m4ph San2rkHEeDjkUaoifLWHWDmL94SZBrgU6yGVK9dU82kr7jCSUTrnga8qDYsHwpQ22QZtu0aOJGep SwZU7NZNMiyX6QR2hI0CNMjvTK2VusHFB+qnvw+19DzaDT6P0KNPxwBwp07KMQm3HWTRNt9u6gKU mo5FHngoGte+TZdY66dAwCl0Pt+p1v18XlOB2KOQZKLXnhgikjOwYQxFr3oTb2MjsP6YqnSF9EpY pmiNySXiYmrYxVinHmK+5JBqoQCN2C3N24slZkYq+AYUTnNST7Ib2We3bBICOFdVUgtFITRW40T+ 0XZnIv8G1Kbaq/1avfWI/ieKKxyiYp/ZNXaxc+ycgpsSsAJEuhb83bUkSBpGg9PvFEF0DXm4ah67 Ja1SSTmvrCnrOsWZXIpciexMWRGoKrdvd7Yzj9E8hiu+CGTC4T6+7FxVXJrjCg9zU9G2U6g7uxzo yjGj1wqkhxgvl9pPbz6/KqDRLOHCEwRF4qlWXhsJy4levxGtifFt6n7DWaNSsOUf8Nwpi+d4fd7L Q7B5tW/y+/vVZziORueruCWO4LnfPhpJ70g18uyN7KyzrWy29rpE46rfjZGGt0WDZYahObPbw6Hj cqSOuzwRoJMxamQb2qsuQnaBS6Bhb5PAnY4SEA045odf/u9uC7mLom2KGNHHz6HrgEPas2UHoJLu xYvY1pza/29akuVQZQUvMA5yMFHHGYZLtTKtCGdVGwX0+QS6ovpV93xux4I/5TrD5U8z9RmTdAx0 3R3MUhkHF7Zbv5egDNsVar+41YWG4VkV1ZXtsZRKJf0hvKNvrpH0e7fVKBdXljm5PXOSg2Vdtkhh OpnKKSMcv6MbGWVi/svWLnc7Qim4A4MDaz+bFVZmh3oGJ7WHvRQhWIcHUL+YJx+064+4IKXZJ/2a /+b2o7C8mJ3GGSBx831ADogg6MRWZx3UY19OZ8YMvpzmZEBRZZnm4KgNpj+SQnf6pGzD2cmnRhzG 60LSNPb17iKbdoUAEMkgt2tlMKXpnt1r7qwsIoTt407cAdCEsUH7OU/AjfFmSkKJZ7vC5HweqZPn hgJgZ6LYHlfiRzUR1xeDg8JG0nb0vb7LUE4nGPy39/TxIGos7WNwGpG1QVL/8pKjFdjwREaR8e5C STlQ7gxHV+G3FFvFGpA1p8cRFzlgE6khDLrSJIUkhkHMA3oFwwAzBNIKVXjToyxCogDqxWya0E1H w5rVCS/zOCS1De2XQbXs//g46TW0wTJwvgNbs0xLShf3XB+23meeEsMTCR0+igtMMMsh5K/vBUGc JA27ru/KM9qEBcseb/tqCkhhsdj1dnH0HDmpgFf5DfVrjm+P6ickcF2b+Ojr9t7XHgFszap3COpE PGmeJqNOUTuU53tu/O774IBgqINMWvvG65yQwsEO06jRrFPRUGb0eH6UM4vC7wbKajnfDuI/EXSg vuOSZ9wE8DeoeK/5We4pN7MSWoDl39gI/LBoNDKFYEYuAw/bhGp8nOwDKki4a16aYcBGRClpN3ym rdurWsi7TjyFHXfgW8fZe4jXLuKRIk19lmL1gWyD+3bT3mkI2cU2OaY2C0fVHhtiBVaYbxBV8+kj K8q0Q70zf0r+xMHnewk9APFqUjguPguTdpCoH0VAQST9Mmriv/J12+Y+fL6H+jrtDY2zHPxTF85p A4bBBnLA7Qt9TKCe6uuWu5yBqxOV3w2Oa4Pockv1gJzFbVnwlEUWnIjbWVIyo9vo4LBd03uJHPPI QbUp9kCP/Zw+Zblo42/ifyY+a+scwl1q1dZ7Y0L92yJCKm9Qf6Q+1PBK+uU9pcuVTg/Imqcg5T7j FO5QCi88uwcorgQp+qoeFi0F9tnUecfDl6d0PSgAPnX9XA0ny3bPwSiWOA8+uW73gesxnGTsNrtc 1j85tail8N6m6S2tHXwOmM65J4XRZlzzeM4D/Rzzh13xpRA9kzm9T2cSHsXEYmSW1X7WovrmYhdO h9K3DPwSyG4tD58cvC7X79UbOB+d17ieo7ZCj+NSLVQO1BqTK0QfErdoVHGKfQG8Lc/ERQRqj132 Mhi2/r5Ca7AWdqD7/3wgRdQTJSFXt/akpM44xu5DMTCISEFOLWiseSOBtzT6ssaq2Q35dCkXp5wV bWxkXAD7Gm34FFXXyZrJWAx45Y40wj/0KDJoEzXCuS4Cyiskx1EtYNNOtfDC5wngywmINFUnnW0N kdKSxmDJvrT6HkRKN8ftik7tP4ZvTaTS28Z0fDmWJ+RjvZW+vtF6mrIzYgGOgdpZwG0ZOSKrXKrY 3xpMO16fXyawFfBosLzCty7uA57niPS76UXdbplgPanIGFyceTg1MsNDsd8vszXd4KezN2VMaxvw +93s0Uk/3Mc+5MAj+UhXPi5UguXMhNo/CU7erzyxYreOlAI7ZzGhPk+oT9g/MqWa5RpA2IBUaK/w gaNaHChfCcDj/J1qEl6YQQboixxp1IjQxiV9bRQzgwf31Cu2m/FuHTTkPCdxDK156pyFdhcgTpTN y7RPLDGB3TATBgkqhkiG9w0BCRUxBgQEAQAAADBdBgkrBgEEAYI3EQExUB5OAE0AaQBjAHIAbwBz AG8AZgB0ACAAUwB0AHIAbwBuAGcAIABDAHIAeQBwAHQAbwBnAHIAYQBwAGgAaQBjACAAUAByAG8A dgBpAGQAZQByMGcGCSqGSIb3DQEJFDFaHlgAQwBlAHIAdABSAGUAcQAtADcAOQA4AGUANQA4AGIA NQAtAGMAOQA2ADQALQA0ADcAZQA2AC0AYQAzADIAOQAtADAAMQBjAGEAZABmADcANgAyAGEANgA5 MIIKFwYJKoZIhvcNAQcGoIIKCDCCCgQCAQAwggn9BgkqhkiG9w0BBwEwHAYKKoZIhvcNAQwBBjAO BAh+t0PMVhyoagICB9CAggnQwKPcfNq8ETOrNesDKNNYJVXnWoZ9Qjgj9RSpj+pUN5I3B67iFpXC lvnglKbeNarNCzN4hXD0I+ce+u+Q3iy9AAthG7uyYYNBRjCWcBy25iS8htFUm9VoV9lH8TUnS63W b/KZnowew2HVd8QI/AwQkRn8MJ200IxR/cFD4GuVO/Q76aqvmFb1BBHItTerUz7t9izjhL46BLab JKx6Csqixle7EoDOsTCA3H1Vmy2/Hw3FUtSUER23jnRgpRTA48M6/nhlnfjsjmegcnVBoyCgGaUa dGE5OY42FDDUW7wT9VT6vQEiIfKSZ7fyqtZ6n4+xD2rVySVGQB9+ROm0mywZz9PufsYptZeB7AfN OunOAd2k1F5y3qT0cjCJ+l4eXr9KRd2lHOGZVoGq+e08ylBQU5HB+Tgm6mZaEO2QgzXOAt1ilS0l Dii490DsST62+v58l2R45ItbRiorG/US7+HZHjHUY7EsDUZ+gn3ZZNqh1lAoli5bC1xcjEjNdqq0 knyCAUaNMG59UhCWoB6lJpRfVEeQOm+TjgyGw6t3Fx/6ulNPc1V/wcascmahH3kgHL146iJi1p2c 2yIJtEB+4zrbYv7xH73c8qXVh/VeuD80I/+QfD+GaW0MllIMyhCHcduFoUznHcDYr5GhJBhU62t6 sNnSjtEU1bcd20oHrBwrpkA7g3/Mmny33IVrqooWFe876lvQVq7GtFu8ijVyzanZUs/Cr7k5xX3z jh6yUMAbPiSnTHCl+SEdttkR936fA6de8vIRRGj6eAKqboRxgC1zgsJrj7ZVI7h0QlJbodwY2jzy zcC5khn3tKYjlYeK08iQnzeK5c9JVgQAHyB4uOyfbE50oBCYJE7npjyV7LEN2f7a3GHX4ZWI3pTg bUv+Q1t8BZozQ4pcFQUE+upYucVL3Fr2T8f7HF4G4KbDE4aoLiVrYjy0dUs7rCgjeKu21UPA/BKx 4ebjG+TZjUSGf8TXqrJak1PQOG4tExNBYxLtvBdFoOAsYsKjTOfMYpPXp4vObfktFKPcD1dVdlXY XvS5Dtz3qEkwmruA9fPQ6FYi+OFjw0Pkwkr5Tz+0hRMGgb1JRgVo8SVlW/NZZIEbKJdW5ZVLyMzd d1dC0ogNDZLPcPR/HENe2UXtq+0qQw0ekZ+aC2/RvfAMr5XICX8lHtYmQlAFGRhFNuOysHj7V2AJ TuOx2wCXtGzrTPc6eyslsWyJign8bD1r+gkejx/qKBwwTvZF1aSmiQmFnmMm0jLj7n8v7v6zHCFT uKF1bHZ44eIwMaUDl6MAgHDdvkPl56rYgq/TM3dKuXnu47GLiRei0EXTT9OMCKcI6XYICsge81ET 3k15VfLyI1LNufgqAsafnwl31yqntscXW0NsxW6SkmyXaW1mndxejLBQRjik3civBGTgxgKQbZaO 9ZGOrjsSogcCSne+s0zLDxEFjmaYYtpIaU8SFWDja5jyo0jvM3OHUwvElvndZJgreFGG5cKHgwgG KdkYgx6YAvucrgQwqKE/+nxuhkKWtV9D4h9qFAqZbWc9jOPtWx9h3U3gX3NTLY/4Z4iy/FXR9KnK UtCmD1MSRRIOiMca1sNTga3mP/+qSS5u+pyon5c4c/jLdEW0GapDz/yvQcc0MP/21vSoeIkUN+w/ RzUBvxrawhHGx+FeLlI249+LBKNBQu4Fbw6G9AYpPJf3PdNc0GRMnantA4B7Rm2NsSGdqqrEMuCw 1XxzR6ki4jbLC/ASbcVMr54YsBw+45sggenFshRrYm0QXoUM5XoqEtesby6YfPAjBldyB/QcuULV 6QyAeL44YmxOnKD5E5qQwgfcZUxN01eBgbeSS7bZI3zpFwAMdMQ+dtwHXMuhVXuUGLmNTvNe9Dup fPGKbaM8louY1Xw4fmg4PaY7MP2mdYQlEXvSg2geICJVuGRBirH+Xv8VPr7lccN++LXv2NmggoUo /d18gvhY8XtOrOMon1QGANPh7SzBjR3v19JD170Z6GuZCLtMh681YkKwW/+Em5rOtexoNQRTjZLN STthtMyLfAqLk6lZnbbh+7VdCWVfzZoOzUNV+fVwwvyR9ouIzrvDoZ5iGRZU8rEuntap6rBrf9F3 FMsz4mvPlCAMp15sovLFpVI8t+8OmKmqQH3LOwd03s6iMJ+0YEWrCaTQYu3kEKoOWC3uhGE8XLSj ZBqc3kwVIlzVzOBr97SGjG88JYVDW2FrjQbIv+1yTzOYzMnCDUW3T8GMtfYEQbN6ZtBaD9i4ZeZl QCdkfGuNC6OYO98L7fU4frgff8nNfeka8kHtvNMn4CosFKBRXA5y+kqEE0Qk5feZhfM8NX9x3O0C Jobm4HC57VxJ3c0jTe2SA0gAfB4g0keghmDzYgjQAuIY/o1LMKFiBNue4fnXlhU1L402Zlx/lzKD era6o3Xgh9IXj3ZqyFlXa9bkyKDtek0ephTZulLc3NLeb1a3KZxId8OmplR8OcZsHluEu+Z3Der0 j8Ro7X7kOnNkUxuTV2blqZ4V8DsYKATeKv4ffc1Ub8MLBd9hMs8ehjmC5jkYApM5HvXl4411mPN6 MrF8f2hPVgqrd3p/M80c8wNWjvWIvPLr9Tjqk71hKBq3+Hu0oI1zuoTY2BOhBLyvpjM+mvRd8Ulr FJTLGTyCAXvAhIDRIVyrGuscO5Y0sfDc+82Bvrua4FyhZkjb1r8GrGciH0V5HHKjg5dewWnr21qf 4q96yf2/ZjoldFFvKiCd8wum9ZV1OaTbjjg46oSpIyBzxl4qpfrgT1ZX1MvGW4uAJ7WQHjSAex7V Gr1Sl+ghe5PQBbURyFiu9PnBRMOMjGYkI2lngd3bdehc+i2fPnNe5LgdsBbmUKmEJH96rlkFT8Co +NYBWKBUsBXyfC+kwXDRyNrt2r7VafWWz/cwK0/AJ/Ucq4vz8E0mzy03Gs+ePW+tP9JOHP6leF0T LhbItvQl3DJy0gj6TyrO9S077EVyukFCXeH1/yp04lmq4G0urU+pUf2wamP4BVNcVsikPMYo/e75 UI330inXG4+SbJ40q/MQIfYnXydhVmWVCUXkfRFNbcCu7JclIrzS1WO26q6BOgs2GhA3nEan8CKx a85h/oCaDPPMGhkQtCU75vBqQV9Hk2+W5zMSSj7R9RiH34MkCxETtY8IwKa+kiRAeMle8ePAmT6H fcBOdTsVGNoRHQAOZewwUycrIOYJ/54WOmcy9JZW9/clcgxHGXZq44tJ3BDHQQ4qBgVd5jc9Qy9/ fGS3YxvsZJ3iN7IMs4Jt3GWdfvwNpJaCBJjiiUntJPwdXMjAeUEZ16Tmxdb1l42rjFSCptMJS2N2 EPSNb36+staNgzflctLLpmyEK4wyqjA7MB8wBwYFKw4DAhoEFIM7fHJcmsN6HkU8HxypGcoifg5M BBRXe8XL349R6ZDmsMhpyXbXENCljwICB9A=""); } ``` This is particularly problematic now that None is the default that's meant to mean ""use whatever the system thinks is best"". cc: @bartonjs, @Priya91, @geoffkizer " +21993 area-System.Linq Invalid RD.XML in System.Linq.Expression The embedded RD.XML in System.Linq.Expression doesn't conform to the schema and causes compilation warnings on UWP: ``` System.Linq.Expressions.Resources.System.Linq.Expressions.rd.xml(158-158): warning : ILTransform : warning ILT0027: The 'Dynamic' attribute is invalid - The value 'Required' is invalid according to its datatype 'http://schemas.microsoft.com/netfx/2013/01/metadata:applicabilitySpec' - The Enumeration constraint failed. [D:\dd\PN1\src\QA\ToF\tests\ToolChain\Analysis\SimpleFlow.csproj] ``` What we need to investigate is why there are no failing tests (a badly specified RD.XML does nothing) - is this directive needed? Do we need more tests? Also, the RD.XML needs to be fixed or all users will see this warning in VS. +21995 area-System.Net NullReferenceException from SocketAsyncEventArgs.InnerStartOperationReceiveMessageFrom I was working on a UDP library when I hit this miserable exception. Attached is the minimal project I can think of to reproduce the exception. [SocketAsyncClose.zip](https://github.com/dotnet/corefx/files/1132479/SocketAsyncClose.zip) Compile and run this project with no debugger attached, and you should see the exception details, ``` System.NullReferenceException: Object reference not set to an instance of an object. at System.Net.Sockets.SocketAsyncEventArgs.InnerStartOperationReceiveMessageFrom() at System.Net.Sockets.Socket.ReceiveMessageFromAsync(SocketAsyncEventArgs e) at SocketAsyncClose.Program.<>c__DisplayClass1_0.
b__0() in c:\users\lextm\documents\visual studio 2017\Projects\SocketAsyncClose\SocketAsyncClose\Program.cs:line 36 ``` This piece of code tries to reuse `SocketAsyncEventArgs` objects. And it works fine if `Socket.ReceiveAsync` or `Socket.ReceiveFromAsync` is used. I tested it on Windows 10 (latest patches, .NET Core 1.0 and 1.1), and both cases give the same exception. I tested on macOS (latest stable. .NET Core 1.0 and 1.1), and cannot reproduce the exception. Not surprised, as it should be something wrong in `SocketAsyncEventArgs.Windows.cs` I think and is Windows only. +21996 area-System.Net Fix handling of SslStream.None on Linux "First commit refactors and augments SslStreamSystemDefaultTests to test not only default-to-default, but also default-to-other stuff and both explicitly and implicitly specifying the default. The tests fail on Linux before the second commit. Second commit makes two changes: - Currently if None is specified, we end up disabling all protocols! OpenSSL will then end up negotiating something very limited, and for example using None on the client won't be able to connect to a Tls12 server. - If an explicit version is used, on the server we end up only allowing connections from clients sending that specific version's hello message, which means a client sending an earlier version but with support for upgrading to a newer is explicitly denied, which means on Unix a None can't connect to a Tls12, for example. The fix for the first issue is to simply allow None to mean what was intended, the system default, and not override OpenSSL's default if None is specified. The fix for the second issue is to simplify how protocol limitation is done. Currently we both select the ""proper"" version method and then set context options. Instead, we always use SSLv23_method, which the docs recommend, and then just use the context options to restrict the allowed protocol. Contributes to #21991 (fix should be ported to 2.0) cc: @bartonjs, @geoffkizer, @davidsh, @cipop, @Priya91 " +21997 area-System.Data Making UAP SqlClient sni.dll independent The changes include moving the code around, so that the SNI.dll is not a dependency for SqlClient. The new code that has been added is in LocalDB.Windows.cs and LocalDBAPI.uap.cs to get the message function pointer without using sni.dll. cc @corivera @joperezr Fixes https://github.com/dotnet/corefx/issues/21890 +21998 area-Serialization Enable Xml_DefaultValueAttributeSetToNaNTest in UWP. @shmao @zhenlan @mconnew +21999 area-Infrastructure RemoteExecutorTestBase can't be used with Theory tests While working on a PR, I needed to use RemoteInvoke to isolate some tests to run in their process. The tests were using ConditionalTheory. After modifying the test with RemoteInvoke, it threw exceptions: ``` Assert.All() Failure: 2 out of 3 items in the collection did not pass. [1]: Xunit.Sdk.TrueException: Field marshaling is not supported by RemoteInvoke: expectedErrors Expected: True Actual: False at Xunit.Assert.True(Nullable`1 condition, String userMessage) at System.Diagnostics.RemoteExecutorTestBase.<>c.b__11_0(FieldInfo fi) at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) [0]: Xunit.Sdk.TrueException: Field marshaling is not supported by RemoteInvoke: url Expected: True Actual: False at Xunit.Assert.True(Nullable`1 condition, String userMessage) at System.Diagnostics.RemoteExecutorTestBase.<>c.b__11_0(FieldInfo fi) at Xunit.Assert.All[T](IEnumerable`1 collection, Action`1 action) Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.GetMethodInfo(Delegate d) at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(Func`1 method, RemoteInvokeOptions options) at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__19.MoveNext() ``` +22000 area-System.Net Modify some HttpClient tests to use RemoteInvoke on UAP A few of the HttpClient tests were failing and needed to be isolated into their own process. This is due to the UAP stack using per-process connection pooling. Fixes #21945 +22002 area-System.Net Disable ManagedHandler negative test failing on older Windows 10 builds Fixes https://github.com/dotnet/corefx/issues/21925 +22003 area-Infrastructure DO NOT MERGE - testing CI +22008 area-System.IO Improve code coverage of System.IO.FileSystem.AccessControl (84.3%) Another pull request for the issue #15808 to increase the code coverage. +22011 area-System.IO About FileShare.Read behavior? "Create two Write FileStream with **FileShare.Read**, but have no exception. ```xml Exe netcoreapp1.1 ``` ```c# Console.WriteLine (typeof(FileStream).GetTypeInfo().Assembly.FullName); var f1 = new FileStream (""/tmp/a"", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read, 1); var f2 = new FileStream (""/tmp/a"", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read, 1); f1.Write( new byte[]{ (byte)'a', (byte)'a', (byte)'a'},0,3); f2.Write( new byte[]{ (byte)'b'},0,1); Console.WriteLine(""Hello World! NET1.0 ""); ``` ``` user@ubuntu:~/net/n1$ dotnet --version 1.0.4 user@ubuntu:~/net/n1$ uname -a Linux ubuntu 3.13.0-32-generic 57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux user@ubuntu:~/net/n1$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.1 LTS Release: 14.04 Codename: trusty user@ubuntu:~/net/n1$ dotnet run System.IO.FileSystem, Version=4.0.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Hello World! NET1.0 ``` What expected. ``` Unhandled Exception: System.IO.IOException: Sharing violation on path /tmp/a at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in :0 ``` [EDIT] by karelz - fixed formatting of code & log blocks" +22012 area-System.Net Fix lifetime handling of ReceiveMessageFromAsync buffer on Windows When a ReceiveMessageFromAsync is first used with a SocketAsyncEventArgs instance, it initializes the _wsaMessageBuffer. Then in order to use the buffer, it pins it, storing both a GCHandle and a pointer to the target object. But if the SAEA's buffer is ever changed with, for example, a SetBuffer call, a routine is invoked on the SocketAsyncEventArgs that frees all of its pinned data, including these for the _wsaMessageBuffer. Then the next time ReceiveMessageFromAsync is used, this handle ends up not getting recreated, and we end up dereferencing a null pointer. The essentially-one-line fix is to separate the creation of the buffer from the creation of the pinning handle, lazily initializing each independently. If the pinning handle is freed due to SetBuffer, the next invocation will reinitialize it. I also consolidated and augmented the existing ReceiveMessageFromAsync tests to test multiple receives with the same SocketAsyncEventArgs in order to catch this case. The test now fails before the fix and passes after. Contributes to https://github.com/dotnet/corefx/issues/21995 (hoping to port fix to 2.0 branch) cc: @davidsh, @cipop, @geoffkizer +22013 area-System.Net release/2.0: Fix lifetime handling of ReceiveMessageFromAsync buffer on Windows Port #22012 to release/2.0 branch Fixes https://github.com/dotnet/corefx/issues/21995 +22014 area-System.IO Race in NamedPipeClientStream.TryConnect leads to unexpected exception "The Windows version of [`TryConnect`](https://github.com/dotnet/corefx/blob/master/src/System.IO.Pipes/src/System/IO/Pipes/NamedPipeClientStream.Windows.cs#L25) first calls `WaitNamedPipe` and if it returns ""file not found"" it tries again until the timeout expires. If `WaitNamedPipe` succeeds then the code calls `CreateNamedPipeClient` (`CreateFile`) and if that returns any error other than ""pipe busy"" it throws an exception. If the server dies between the call to `WaitNamedPipe` and `CreateNamedPipeClient` you'll end up with an unexpected `FileNotFoundException`. IMO `TryConnect` should just call `CreateNamedPipeClient` first and fall back to `WaitNamedPipe` if it returns ""file not found"" or ""pipe busy""." +22016 area-Serialization EqualityComparer binary serialization test failures on uapaot "An EqualityComparer test which uses byte as the generic argument is currently failing on uapaot. ``` +0x10d66cf at xunit.console.netcore!+0x1064945 at xunit.console.netcore!+0x10646d1]]> ``` coreclr serializes `EqualityComparer.Default`, corert to `System.Collections.Generic.GenericEqualityComparer1[[System.Byte, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]`: https://github.com/dotnet/corert/blob/master/src/System.Private.CoreLib/src/System/Collections/Generic/EqualityComparer.cs#L19 @morganbr @tarekgh Is it intentional that byte doesn't have its own optimized equality comparer in corert? Others like int or string are returning the same type as coreclr. cc @danmosemsft" +22018 area-Meta Cleanup casing of Culture=neutral These are the leftovers in corefx. +22019 area-System.Drawing System.Drawing.Tests.FontTests failing locally on master "These tests are failing locally on my machine (Windows 10 Fall Creators Update, 16232.1004): ``` ``` " +22021 area-System.Net Crash in loopback server using ssl and client certificates during HttpClient testing While working on a PR to implement HttpClientHandler.ClientCertificates for UAP, I discovered a crash in the loopback server. It doesn't seem to crash for non-UAP scenarios. ```c# ERROR: System.Net.Http.Functional.Tests.HttpClientHandler_ClientCertificates_Test.Manual_CertificateSentMatchesCertificateReceived_Success(numberOfRequest s: 6, reuseClient: False) [FAIL] System.IO.IOException : Authentication failed because the remote party has closed the transport stream. Stack Trace: at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, ``` +22022 area-System.Net Implement client certificates for HttpClient on UAP Added code for HttpClientHandler.ClientCertificates on UAP. Moved code duplicated in several places into a common helper class, CertificateHelper. Then I discovered a bug introduced into GetEligibleCertificates (from PR #21908) that doesn't properly filter by EKU or KeyUsage if there is only one cert (this was failing the WinHttpHandler Unit tests). So, I removed that optimization. Used the new Azure test endpoint for client certificates. I did not use the loopback server because there is a problem using it with HttpClient in UAP. There is a crash in the SslStream.AuthenticateAsServer that I was not able to diagnose yet. It will require a lot of time debugging and I wanted to get this HttpClientHandler feature done now. Tracking that investigation with #22021. Fixes #21628 Contributes to #14542 +22026 area-System.Drawing GraphicsPathIterator.CopyData throws EntrypointNotFoundException - does not on netfx ```cs using System.Drawing; using System.Drawing.Drawing2D; namespace Test { public class Program { public static void Main() { // Throw ArgumentException. //CopyData_StartEndIndexesOutOfRange_ReturnsExpeced(new PointF[3], new byte[3], -1, 2); //CopyData_StartEndIndexesOutOfRange_ReturnsExpeced(new PointF[3], new byte[3], 0, 3); // Return 0 CopyData_StartEndIndexesOutOfRange_ReturnsExpeced(new PointF[3], new byte[3], int.MinValue, 2); CopyData_StartEndIndexesOutOfRange_ReturnsExpeced(new PointF[3], new byte[3], 0, int.MaxValue); CopyData_StartEndIndexesOutOfRange_ReturnsExpeced(new PointF[3], new byte[3], 2, 0); } public static void CopyData_StartEndIndexesOutOfRange_ReturnsExpeced(PointF[] points, byte[] types, int startIndex, int endIndex) { PointF[] resultPoints = new PointF[points.Length]; byte[] resultTypes = new byte[points.Length]; using (GraphicsPath gp = new GraphicsPath(points, types)) using (GraphicsPathIterator gpi = new GraphicsPathIterator(gp)) { gpi.CopyData(ref resultPoints, ref resultTypes, startIndex, endIndex); } } } } ``` This runs fine with netfx. With netcoreapp, an EntrypointNotFoundException is thrown. +22030 area-System.Xml xpath concat not working. "```c# using System; using System.Xml.Linq; using System.Xml.XPath; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var xElement = XElement.Parse(@"" 1 2 ""); var xPathEvaluate = xElement.XPathEvaluate(""/t/concat(a, b)""); Console.ReadKey(); } } } ``` System.Xml.XPath.XPathException: ""'/t/concat(a, b)' has an invalid token."" [EDIT] @karelz formatting change - code indentation for easier reading" +22032 area-Infrastructure Can't install nuget package of library developed by .net 4.7 full on .net core 2 app "I've a .NET core 2 app and when I add nuget packages of a library which has .NET 4.7 binaries only, I receive following error: Package XYZ 1.2.3.4 is not compatible with netcoreapp2.0 But when I open %userprofile%\.nuget\packages folder and in ""lib"" folder of that package, I rename ""net47"" to ""net45"". After this small change, everything works fine and apps work properly. App is using same .net 4.7 dlls, so a folder name is a only change. What should I do? is there any incompatibility between .net 4.7 & .net core 2 ? Thanks in advance" +22033 area-Serialization Type forwarded cleanup update blobs for TimeZoneInfo Relates to #22025 @jkotas @stephentoub whoever is first up pls review +22034 area-Microsoft.CSharp Simplify Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory Move more logic into constructors, and when this allows properties to be init-only, do so. Remove unsused types, unused parameters, and other dead code. Rename variables with Hungarian prefixes (and prefixes apparently referring to C++ pointers at that). +22038 area-System.Net WinHttpHandler stops possible chain of handlers Very simple (at first glance) fix, please make WinHttpHandler inherit DelegatingHandler instead of HttpMessageHandler, so inner handlers can be passed and chained appropriately. +22040 area-System.Threading System.Linq.Parallel.Tests crashing in UapAot when building in ret mode on ARM Forked from #21804. At present we are forcing chk build in src/System.Linq.Parallel/tests/System.Linq.Parallel.Tests.csproj. +22042 area-System.Xml System.Xml.Tests.XmlWriterTestModule.TCFullEndElement failing in uap test runs TCFullEndElement has been crashing the execution of tests in all archs for most runs lately. The problem seems to be related to WindowsRuntimeResourceManager. Crash is happening because of an unhandeled System.ArgumentException, here is the callstack: ``` Value does not fall within the expected range. at Windows.ApplicationModel.Resources.Core.ResourceContext.get_Languages() at System.Resources.WindowsRuntimeResourceManager.GlobalResourceContextChanged(Object sender, IMapChangedEventArgs`1 e) ``` cc: @krwq @tarekgh +22043 area-System.Xml Skipping test that is crashing UAP Outerloop runs cc: @krwq @tarekgh @safern This test has been crashing our outerloop runs which is causing results to not be produced, so skipping for now with an activeissue +22044 area-Infrastructure Remove calls to display init-tools.log in groovy scripts https://github.com/dotnet/corefx/pull/21894 will display `init-tools.log` when `init-tools` command runs into an error. This PR removes the calls to display `init-tools.log` when an exception occurs while running `init-tools` in `.groovy` scripts. +22045 area-System.Net Follow-up feedback from PR #22022 PR feedback: #22022 Additional items to be done: - [ ] Dispose certificates that are not owned by the caller - [ ] Stop using the Find() APIs and iterate directly which might be more efficient since it will generate less objects to be finalized. - [ ] Replace GetEligibleClientCertificate() overload with https://github.com/Microsoft/referencesource/blob/90b323fe52bec428fe4bd5f007e9ead6b265d553/System/net/System/Net/UnsafeNativeMethods.cs#L1679 - [ ] Add new Azure endpoint for client certificates to prerequisites folder https://github.com/dotnet/corefx/tree/master/src/Common/tests/System/Net/Prerequisites +22046 area-System.IO Created admin helper file Moved run as admin helper to test project. +22048 area-System.Net NetworkInterface.GetIsNetworkAvailable fails with exception that can't be caught "Reproduced in Bash/WSL on Ubuntu on Windows. 1. Create .Net Core Console App with the following code: ```cs static void Main(string[] args) { try { if (NetworkInterface.GetIsNetworkAvailable()) { Console.WriteLine(""Available!""); } else { Console.WriteLine(""Unavailable!""); } } catch (Exception) { Console.WriteLine(""Crashed!""); } } ``` 2. Open bash and execute ""dotnet run"" **Actual** Application crashes with `FileNotFoundException`: ```cs Unhandled Exception: System.IO.FileNotFoundException: Could not find file '/proc/sys/net/ipv4/conf/eth0/forwarding'. at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) at System.IO.UnixFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStr at System.IO.UnixFileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, File at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.File.InternalReadAllText(String path, Encoding encoding) at System.IO.File.ReadAllText(String path) at System.Net.NetworkInformation.StringParsingHelpers.ParseRawIntFile(String filePath) at System.Net.NetworkInformation.LinuxIPv4InterfaceProperties.GetIsForwardingEnabled() at System.Net.NetworkInformation.LinuxIPv4InterfaceProperties..ctor(LinuxNetworkInterface linuxNetworkInterface) at System.Net.NetworkInformation.LinuxIPInterfaceProperties..ctor(LinuxNetworkInterface lni) at System.Net.NetworkInformation.LinuxNetworkInterface..ctor(String name) at System.Net.NetworkInformation.LinuxNetworkInterface.GetOrCreate(Dictionary`2 interfaces, String name) at System.Net.NetworkInformation.LinuxNetworkInterface.<>c__DisplayClass5_0.b__2(String name, LinkLayerAddressInfo* l at Interop.Sys.EnumerateInterfaceAddresses(IPv4AddressDiscoveredCallback ipv4Found, IPv6AddressDiscoveredCallback ipv6Found, LinkLayerAddressDis at System.Net.NetworkInformation.LinuxNetworkInterface.GetLinuxNetworkInterfaces() at System.Net.NetworkInformation.NetworkInterfacePal.GetIsNetworkAvailable() at DotNetCoreGetNetworkLoad.Program.Main(String[] args) in /mnt/d/Work/Temp/DotNetCoreGetNetworkLoad/DotNetCoreGetNetworkLoad/Program.cs:line 11 ``` **Expected** Console prints either `Available!` or `Unavailable!`" +22050 area-System.Net System.Net.HttpListener HttpListenerRequestTests class takes too long to finish in UAP mode After enable all test cases in HttpListenerRequestTests, it takes about 2 minutes to run all tests in this particular class in UAP mode. We need to mark some test cases in this file as [OuterLoop] to improve test performance. @davidsh @CIPop +22053 area-System.Net Partial send support for ClientWebSocket on UWP The UWP implementation of ClientWebSocket (WinRTWebSocket.cs) buffers the entire message before it can pass it to the underlying WinRT MessageWebSocket. This is due to missing support for sending partial messages in WinRT MessageWebSocket. #21102 improved the receive path of partial messages in UWP, but the existing WinRT APIs still lack partial message support in the send path. System.Net.HttpListener HttpListenerWebSocketTests will hang in UAP mode. +22054 area-System.Net HttpListener HttpListenerWebSocketTests hang on UAP Tracking the investigation for HttpListenerWebSocketTests hanging on UAP. +22055 area-System.Net System.Net.Tests.HttpListenerPrefixCollectionTests.CopyTo_NonZeroLowerBoundArray_ThrowsIndexOutOfRangeException throws PNSE on UAPAOT ```System.Net.Tests.HttpListenerPrefixCollectionTests.CopyTo_NonZeroLowerBoundArray_ThrowsIndexOutOfRangeException [FAIL] System.PlatformNotSupportedException : Arg_NotSupportedNonZeroLowerBound. For more information, visit http://go.microsoft.com/fwlink/?LinkId=623485 Stack Trace: at xunit.console.netcore!+0x9b7bfb at xunit.console.netcore!+0x9b7a97 at System.Array.CreateInstance(Type elementType, Int32[] lengths, Int32[] lowerBounds) at System.Net.Tests.HttpListenerPrefixCollectionTests.CopyTo_NonZeroLowerBoundArray_ThrowsIndexOutOfRangeException() at xunit.console.netcore!+0xc52f67 at xunit.console.netcore!+0xad4113 at xunit.console.netcore!+0xad3f16 ``` +22056 area-System.Net Some of the HttpListenerResponseCookiesTests are failing with NullReferenceException in UAPAOT System.Net.Tests.HttpListenerResponseCookiesTests.SetCookie_CookieDoesntExist_ThrowsArgumentException [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at xunit.console.netcore!+0xb456d0 at xunit.console.netcore!+0xb453ed at System.Net.Tests.HttpListenerResponseCookiesTests.d__11.MoveNext() --- End of stack trace from previous location where exception was thrown --- at xunit.console.netcore!+0x95a051 at xunit.console.netcore!+0x959fee at xunit.console.netcore!+0x959f63 --- End of stack trace from previous location where exception was thrown --- at xunit.console.netcore!+0x95a051 at xunit.console.netcore!+0x959fee at xunit.console.netcore!+0x959f63 --- End of stack trace from previous location where exception was thrown --- at xunit.console.netcore!+0x95a051 at xunit.console.netcore!+0x959fee at xunit.console.netcore!+0x959f63 +22057 area-System.Net Tracking HttpListenerResponseTests.Headers.cs disabled tests These tests were originally tracked by 17462 (UAP related) but against .Net Core (non-UAP). - [ ] AddHeader_LongName_ThrowsArgumentOutOfRangeException - [ ] AppendHeader_LongName_ThrowsArgumentOutOfRangeException - [ ] Headers_SetRestricted_ThrowsArgumentException - [ ] Headers_SetLongName_ThrowsArgumentOutOfRangeException - [ ] Headers_SetRequestHeader_ThrowsInvalidOperationException +22059 area-System.Data Transaction code porting from Framwork for TransactionScope / TransactionBinding support Code related to SQL transaction was ported from NET Framework for supporting TransactionScope and TransactionBinding. +22060 area-Microsoft.CSharp Replace RETAILVERIFY in MS.CSharp with Debug.Assert There are two such methods. One simplifies to a call to `Debug.Assert` and so can obviously be replace with it, reducing retail builds. The other would throw `RuntimeBinderInternalCompilerException` but all calls do seem more reasonable as asserts than runtime checks. +22062 area-Infrastructure Stabilize corefx packages shipping with .NET Core 2.0 cc @Petermarcu +22063 area-System.Net System.Net.Tests.HttpListenerRequestTests.ContentEncoding_GetProperty_ReturnsExpected throws MissingMetadataException on UAPAOT ``` System.Reflection.MissingMetadataException : This operation cannot be carried out because metadata for the following object was removed for performance reasons:\n\n EETypeRva:0x00077110\n\nNo further information is available. Rebuild in debug mode for better information.\n\n Stack Trace: at xunit.console.netcore!+0x894406 at xunit.console.netcore!+0xdbc7ae at xunit.console.netcore!+0x9766a2 at xunit.console.netcore!+0x97f9b1 ``` +22064 area-System.Security [release/1.1] Bump runtime AppleCrypto package version and add package to build Changes to this package aren't being effective since the package was not registered for building in the servicing state. Based on https://github.com/dotnet/corefx/commit/0a9aec134587f04932556c91c33618adbc536be8. +22065 area-System.Net Remove some ActiveIssue labels for HttpListener Contributes to: #22053 Fixes: #21902 +22066 area-System.Net System.Net.Tests.HttpRequestStreamTests.CanWrite_Get_ReturnsFalse and CanRead_Get_ReturnsFalse fails on UAPAOT: NotSupported_UnwritableStream/NotSupported_UnreadableStream ``` System.Net.Tests.HttpRequestStreamTests.CanWrite_Get_ReturnsFalse [FAIL] Assert.Throws() Failure Expected: typeof(System.InvalidOperationException) Actual: typeof(System.NotSupportedException): NotSupported_UnwritableStream. For more information, visit http://go.microsoft.com/fwlink/?Lin kId=623485 Stack Trace: at xunit.console.netcore!+0xa35f68 at System.Net.Tests.HttpRequestStreamTests.<>c__DisplayClass16_0.b__1() System.Net.Tests.HttpResponseStreamTests.CanRead_Get_ReturnsFalse [FAIL] Assert.Throws() Failure Expected: typeof(System.InvalidOperationException) Actual: typeof(System.NotSupportedException): NotSupported_UnreadableStream. For more information, visit http://go.microsoft.com/fwlink/?Lin kId=623485 Stack Trace: at xunit.console.netcore!+0xb41398 at System.Net.Tests.HttpResponseStreamTests.<>c__DisplayClass12_0.b__1() System.Net.Tests.HttpResponseStreamTests.Write_NullBuffer_ThrowsArgumentNullException [FAIL] ``` +22068 area-System.Security Add X509SubjectAlternativeName as a rich type SubjectAltName is an extension from RFC 3280 that's fairly important to the people who need it. Currently applications make programmatic decisions for it via `ToString()` which has a couple of problems: * It's localized on Windows * It's not the same on Windows and !Windows. Rather than exposing the whole GeneralName concept (and dealing with X400Address) the type would * Exist * Allow enumerating the DNSName entries * Maybe allow enumerating the IPAddress entries * Probably have a `MatchesHostname(string)` method * Maybe have a `MatchesIPAddress(IPAddress)` method. It might make sense to put `MatchesHostname` on X509Certificate2, just to make things easier. +22072 area-System.Net Re-enabling ClientWebSocket close and cancel tests in UWP "Re-enabling ClientWebSocket's CloseTest and CancelTest runs for UWP. All of these tests pass after a minor behavioral fix, where the ""cancel pending ReceiveAsync"" scenario was resulting in a different exception type compared to .NET Framework and non-UWP .NET Core. The following CancelTest test cases caught the bad behavior that I'm fixing as part of this PR: - ReceiveAsync_CancelThenReceive_ThrowsOperationCanceledException - ReceiveAsync_ReceiveThenCancel_ThrowsOperationCanceledException - ReceiveAsync_AfterCancellationDoReceiveAsync_ThrowsWebSocketException Contributes to #20132" +22073 area-System.ComponentModel Add Container tests and fix a debug assertion +22074 area-Microsoft.CSharp Remove InputFile and KAID from Microsoft.CSharp `InputFile` relates to source files in Rotor and doesn't affect behaviour in dynamic code. Related to this, a type cannot be unresolved in dynamic code, as it comes from existing types, so there's no need to track it. Our starting point is the runtime type, so the references to assemblies are not necessary as with static compilation, hence e.g. `PredefinedTypes._aidMsCorLib` being calculated and then never used. Trimming out unused elements related to this, and the elements those removals make unused, results in `KAID` being removed completely. Also remove some unused method parameters. +22075 area-System.Net Fix HttpClientHandler UAP to use a filtered set of client certs My earlier PR #22022 refactored the GetEligibleClientCertificates code into a Common method. However, I neglected to actually use it in the UAP HttpClientHandler! Fixed the handler to properly filter down the set of client certificates. Added new tests to verify functionality. While doing this, I discovered that the tests need to run in an isolated process due to the per-process caching behavior of the UAP HTTP stack. So, I used the RemoteInvoke method. I had to duplicate some of the new tests using Fact instead of using Theory. This is because the RemoteInvoke doesn't allow non-string parameters and I had to pass in X509Certificate2 objects. So, I separated out each variant into its own Fact test. +22076 area-System.Runtime LoadUnmanagedDllFromPath / LoadUnmanagedDll is not working on linux if .so file is present in any other path other than application output directory Hi , i am not sure whether the issue exists in coreclr or corefx. So notifying the issue here https://github.com/dotnet/coreclr/issues/12707 Thanks, Prashanth. +22077 area-System.Data "Test: System.Data.SqlClient.Tests.DiagnosticTest/ConnectionOpenAsyncErrorTest failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.DiagnosticTest/ConnectionOpenAsyncErrorTest` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.Data.SqlClient.Tests.DiagnosticTest.ConnectionOpenAsyncErrorTest() Build : Master - 20170711.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170711.01/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.DiagnosticTest~2FConnectionOpenAsyncErrorTest +22079 area-System.IO "Test: System.IO.Tests.FileStream_LockUnlock/OverlappingRegionsFromOtherProcess_ThrowsException failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.FileStream_LockUnlock/OverlappingRegionsFromOtherProcess_ThrowsException(fileLength: 10, firstPosition: 3, firstLength: 5, secondPosition: 4, secondLength: 5)` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.IO.Tests.FileStream_LockUnlock.OverlappingRegionsFromOtherProcess_ThrowsException(Int64 fileLength, Int64 firstPosition, Int64 firstLength, Int64 secondPosition, Int64 secondLength) Build : Master - 20170711.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170711.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.FileStream_LockUnlock~2FOverlappingRegionsFromOtherProcess_ThrowsException(fileLength:%2010,%20firstPosition:%203,%20firstLength:%205,%20secondPosition:%204,%20secondLength:%205) +22080 area-System.Runtime "Tests under: System.Runtime.Extensions.Tests failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Tests.AppDomainTests/SetThreadPrincipal` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() Build : Master - 20170711.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170711.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.AppDomainTests~2FSetThreadPrincipal +22081 area-System.Runtime "Tests under: System.Runtime.Tests failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Tests.DecimalTests/Test_ToString` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.Tests.DecimalTests.Test_ToString() Build : Master - 20170711.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170711.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.DecimalTests~2FTest_ToString +22082 area-System.Runtime "Tests under: System.Runtime.Tests failed with ""System.IO.IOException : RemoteInvoke cannot open the remote service. Open Service Status: AppUnavailable""" Opened on behalf of @Jiayili1 The test `System.Tests.StringTests/IndexOf_CyrillicE_EnglishUSCulture` has failed. System.AggregateException : One or more errors occurred. (RemoteInvoke cannot open the remote service. Open Service Status: AppUnavailable)\r ---- System.IO.IOException : RemoteInvoke cannot open the remote service. Open Service Status: AppUnavailable Stack Trace: at System.Threading.ThreadTestHelpers.<>c__DisplayClass3_0.b__1() at System.Threading.ThreadTestHelpers.<>c__DisplayClass3_0.b__2() at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.Tests.StringTests.IndexOf_CyrillicE_EnglishUSCulture() ----- Inner Stack Trace ----- at System.Diagnostics.RemoteExecutorTestBase.<>c__DisplayClass14_0.b__1() at System.Threading.ThreadTestHelpers.<>c__DisplayClass3_0.b__0() Build : Master - 20170711.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170711.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.StringTests~2FIndexOf_CyrillicE_EnglishUSCulture +22083 area-System.Data "Test: System.Data.Tests.DataTableReadWriteXmlTest/TestReadXml failed with ""Xunit.Sdk.EqualException""" "Opened on behalf of @Jiayili1 The test `System.Data.Tests.DataTableReadWriteXmlTest/TestReadXml` has failed. ``` Assert.Equal() Failure\r ? (pos 380)\r Expected: ···:element name=\""Main\"" msdata:Prefix=\""\"">\\r\ \\r\ \\r\ ···\r ? (pos 380) Stack Trace: at System.Data.Tests.DataTableReadWriteXmlTest.TestReadXml() in E:\A\_work\286\s\corefx\src\System.Data.Common\tests\System\Data\DataTableReadWriteXmlTest.cs:line 364 ``` Build : Master - 20170711.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170711.01/workItem/System.Data.Common.Tests/analysis/xunit/System.Data.Tests.DataTableReadWriteXmlTest~2FTestReadXml" +22084 area-System.Net "Test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test/GetAsync_AllowedSSLVersion_Succeeds failed with ""System.ComponentModel.Win32Exception """ Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test/GetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol: Tls11, requestOnlyThisProtocol: False)` has failed. System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception.\r ---- System.ComponentModel.Win32Exception : The client and server cannot communicate, because they do not possess a common algorithm Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) at System.Net.Security.SslStream.<>c__DisplayClass35_0.b__0(AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) at System.Net.Test.Common.LoopbackServer.d__11.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.<>c__DisplayClass4_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- Build : Master - 20170711.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x64 - Release - Windows.7.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170711.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test~2FGetAsync_AllowedSSLVersion_Succeeds(acceptedProtocol:%20Tls11,%20requestOnlyThisProtocol:%20False) +22085 area-System.Net "Test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test/GetAsync_SupportedSSLVersion_Succeeds failed with ""System.ComponentModel.Win32Exception : The function requested is not supported""" "Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test/GetAsync_SupportedSSLVersion_Succeeds(sslProtocols: Tls11, url: \""https://www.ssllabs.com:10302/\"")` has failed. System.Net.Http.HttpRequestException : could not establish SSL connection\r ---- System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception.\r -------- System.ComponentModel.Win32Exception : The function requested is not supported Stack Trace: at System.Net.Http.HttpConnectionHandler.d__9.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() at System.Net.Http.HttpConnectionHandler.d__10.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() at System.Net.Http.HttpConnectionHandler.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.CookieHandler.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.AutoRedirectHandler.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnectionHandler.d__9.MoveNext() ----- Inner Stack Trace ----- Build : Master - 20170711.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x64 - Release - Windows.7.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170711.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_SslProtocols_Test~2FGetAsync_SupportedSSLVersion_Succeeds(sslProtocols:%20Tls11,%20url:%20%5C%22https:~2F~2Fwww.ssllabs.com:10302~2F%5C%22)" +22087 area-System.IO "Test: System.IO.Tests.Directory_GetFiles_str_str_so/PatternTests_DosStarOddSpace failed with ""Xunit.Sdk.EqualException""" "Opened on behalf of @Jiayili1 The test `System.IO.Tests.Directory_GetFiles_str_str_so/PatternTests_DosStarOddSpace(pattern: \""fooooo*.\"", sourceFiles: [\""foooooo.\"", \""foooooo. \"", \""foooooo. \""], expected: [\""foooooo.\"", \""foooooo...` has failed. Assert.Equal() Failure\r Expected: OrderedEnumerable [\""foooooo.\"", \""foooooo. \"", \""foooooo. \""]\r Actual: OrderedEnumerable [\""foooooo.\""] Stack Trace: Build : 2.0.0 - 20170711.01 (Core Tests) Failing configurations: - windows.10.amd64.iot-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170711.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.Directory_GetFiles_str_str_so~2FPatternTests_DosStarOddSpace(pattern:%20%5C%22fooooo*.%5C%22,%20sourceFiles:%20%5B%5C%22foooooo.%5C%22,%20%5C%22foooooo.%20%5C%22,%20%5C%22foooooo.%20%20%5C%22%5D,%20expected:%20%5B%5C%22foooooo.%5C%22,%20%5C%22foooooo..." +22088 area-System.IO "Tests under: System.IO.Tests.Directory_Move failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.Directory_Move/MoveFile_TrailingSourceAltSlash_Windows` has failed. Assert.Throws() Failure\r Expected: typeof(System.IO.IOException)\r Actual: (No exception was thrown) Stack Trace: at System.IO.Tests.Directory_Move.MoveFile_TrailingSourceAltSlash_Windows() Build : 2.0.0 - 20170711.01 (Core Tests) Failing configurations: - windows.10.amd64.iot-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170711.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.Directory_Move~2FMoveFile_TrailingSourceAltSlash_Windows +22089 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test/SetDelegate_ConnectionSucceeds failed with ""System.Net.Http.CurlException : SSL connect error""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test/SetDelegate_ConnectionSucceeds(acceptedProtocol: Tls, requestOnlyThisProtocol: False)` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.CurlException : SSL connect error Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in /Users/buildagent/agent/_work/41/s/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 462 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.<>c__DisplayClass1_0.<b__0>d.MoveNext() in /Users/buildagent/agent/_work/41/s/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.AcceptAllCerts.cs:line 46 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in /Users/buildagent/agent/_work/41/s/corefx/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 57 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.d__1.MoveNext() in /Users/buildagent/agent/_work/41/s/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.AcceptAllCerts.cs:line 44 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) in /Users/buildagent/agent/_work/41/s/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 644 at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) in /Users/buildagent/agent/_work/41/s/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs:line 869 Build : 2.0.0 - 20170711.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170711.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20Tls,%20requestOnlyThisProtocol:%20False) +22090 area-System.Net "Test: System.Net.Tests.HttpListenerPrefixCollectionTests/Add_InvalidPrefixAlreadyStarted_ThrowsHttpListenerExceptionOnAdd failed with ""System.Net.HttpListenerException""" "Opened on behalf of @Jiayili1 The test `System.Net.Tests.HttpListenerPrefixCollectionTests/Add_InvalidPrefixAlreadyStarted_ThrowsHttpListenerExceptionOnAdd(uriPrefix: \""http://localhost/invalid%path/\"")` has failed. System.Net.HttpListenerException : The request is not supported. Stack Trace: at System.Net.HttpEndPointManager.GetEPListener(String host, Int32 port, HttpListener listener, Boolean secure) at System.Net.HttpEndPointManager.RemovePrefixInternal(String prefix, HttpListener listener) at System.Net.HttpEndPointManager.RemoveListener(HttpListener listener) at System.Net.HttpListener.Close(Boolean force) at System.Net.HttpListener.Dispose() at System.Net.HttpListener.System.IDisposable.Dispose() at System.Net.HttpListener.Close() at System.Net.Tests.HttpListenerFactory.Dispose() at System.Net.Tests.HttpListenerPrefixCollectionTests.Add_InvalidPrefixAlreadyStarted_ThrowsHttpListenerExceptionOnAdd(String uriPrefix) Build : 2.0.0 - 20170711.01 (Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170711.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpListenerPrefixCollectionTests~2FAdd_InvalidPrefixAlreadyStarted_ThrowsHttpListenerExceptionOnAdd(uriPrefix:%20%5C%22http:~2F~2Flocalhost~2Finvalid%25path~2F%5C%22)" +22091 area-System.Runtime "Test: System.IO.Tests.PathTests/GetFullPath_Windows_83Paths failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.PathTests/GetFullPath_Windows_83Paths` has failed. Assert.Equal() Failure\r ? (pos 3)\r Expected: C:\\\windows\\\TEMP\\\f40b550e58b649b192051d3d0b05···\r Actual: C:\\\Windows\\\TEMP\\\f40b550e58b649b192051d3d0b05···\r ? (pos 3) Stack Trace: at System.IO.Tests.PathTests.GetFullPath_Windows_83Paths() Build : 2.0.0 - 20170711.01 (Core Tests) Failing configurations: - windows.10.nanolatest.amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170711.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.IO.Tests.PathTests~2FGetFullPath_Windows_83Paths +22092 area-System.Runtime "Test: System.IO.Tests.PathTests/GetInvalidFileNameChars_OtherCharsValid failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.PathTests/GetInvalidFileNameChars_OtherCharsValid` has failed. Assert.Equal() Failure\r ? (pos 3)\r Expected: C:\\\data\\\helix\\\work\\\7f8bdd16-0b15-4851-a5b2-d···\r Actual: C:\\\Data\\\helix\\\work\\\7f8bdd16-0b15-4851-a5b2-d···\r ? (pos 3) Stack Trace: at System.IO.Tests.PathTests.GetInvalidFileNameChars_OtherCharsValid() Build : 2.0.0 - 20170711.01 (Core Tests) Failing configurations: - windows.10.amd64.iot-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170711.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.IO.Tests.PathTests~2FGetInvalidFileNameChars_OtherCharsValid +22093 area-System.Runtime "Test: System.Tests.EnvironmentTests/GetSystemDirectory failed with ""Xunit.Sdk.NotEqualException""" "Opened on behalf of @Jiayili1 The test `System.Tests.EnvironmentTests/GetSystemDirectory` has failed. Assert.NotEqual() Failure\r Expected: Not \""C:\\\\\\\windows\\\\\\\system32\""\r Actual: \""C:\\\\\\\windows\\\\\\\system32\"" Stack Trace: Build : 2.0.0 - 20170711.01 (Core Tests) Failing configurations: - windows.10.amd64.iot-x64 - Release - windows.10.nanolatest.amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170711.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.EnvironmentTests~2FGetSystemDirectory" +22094 area-System.Threading "Test: System.Threading.Threads.Tests.ThreadTests/ApartmentStateTest_ChangeBeforeThreadStarted_Windows failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Threading.Threads.Tests.ThreadTests/ApartmentStateTest_ChangeBeforeThreadStarted_Windows(getApartmentState: Func`2 { Method = System.Threading.ApartmentState ` instead. Split possible paths into separate functions, for simpler iterators. +22096 area-Microsoft.CSharp Iterate TypeArray's inner array instead of TypeArray when safe. "Rewrite enumerations of `TypeArray`s in Microsoft.CSharp to instead enumerate on the inner array, allowing bounds check eliminations and removing some indirection. This could be done in more places, but for now conservatively only done where the ""translation"" is direct, so more easily confirmed as safely equivalent to the existing code, and no local holds the array and no slip-up could overwrite an element." +22098 area-System.Net Uri.TryCreate(string, UriKind, out Uri) now considers /path as valid absolute paths on Linux/macOS "When porting [my OIDC server framework from ASP.NET Core 1.0 to 2.0](https://github.com/aspnet-contrib/AspNet.Security.OpenIdConnect.Server/issues/449), I discovered a very strange behavior change in `Uri.TryCreate(string, UriKind, out Uri)` that now considers `/path` as valid absolute paths on Linux and macOS (but not on Windows). This can be reproduced using the latest CLI/runtime bits: ```xml Exe netcoreapp2.0 ``` ```csharp using System; namespace UriConsoleApp { public static class Program { public static void Main(string[] args) { if (Uri.TryCreate(""/path"", UriKind.Absolute, out Uri uri)) { Console.WriteLine(""The '/path' string is considered as a valid absolute URI.""); } else { Console.WriteLine(""The '/path' string is not considered as a valid absolute URI.""); } Console.ReadLine(); } } } ``` On Windows: > The '/path' string is not considered as a valid absolute URI. On Ubuntu 14.04.3 LTS: > The '/path' string is considered as a valid absolute URI. Is this inconsistency/behavior change expected? /cc @karelz " +22100 area-System.Net Update MediaTypeHeaderValue.cs Fixed an issue only occuring when running on net45, but compield with net46. See: https://stackoverflow.com/questions/30558827/method-not-found-system-string-system-string-formatsystem-iformatprovider-sy +22102 area-System.Runtime Reenable AppDomain test on ILC Part of https://github.com/dotnet/corefx/issues/21680 +22103 area-System.Runtime Proposal: Create method Guid.NewSequentialGuid() Make a new method to create a sequential Guid. +22105 area-Infrastructure Add RIDs for Amazon Linux. "PR to add Amazon Linux RIDs to runtime.json. Related to #21591. - /etc/os-release is available on Amazon Linux. Here is an example. ``` NAME=""Amazon Linux AMI"" VERSION=""2017.03"" ID=""amzn"" ID_LIKE=""rhel fedora"" VERSION_ID=""2017.03"" PRETTY_NAME=""Amazon Linux AMI 2017.03"" ANSI_COLOR=""0;33"" CPE_NAME=""cpe:/o:amazon:linux:2017.03:ga"" HOME_URL=""http://aws.amazon.com/amazon-linux-ami/"" ``` - VERSION_ID is always in the form _year.month_ . " +22106 area-Microsoft.CSharp Remove dead error case from MS.CSharp and test some other error cases. `Error.BindExplicitConversionRequireOneArgument` is triggered if `RuntimeBinder.BindExplicitConversion` is called with any number of arguments other than 1, but this is only called by `CSharpConvertBinder.DispatchPayload` which takes its arguments from the `args` and `parameters` passed to `RuntimeBinder.BindCore` which is called by `RuntimeBinder.Bind` which is called by `BinderHelper.Bind` which is called by `CSharpConvertBinder.FallbackConvert` with a single argument. So tracing that lot through shows that this is dead code. `BindImplicitConversionRequireOneArgument` has a path that is much as the above and another from `RuntimeBinder.BindCall` which also always sets a single argument, so again this is dead code. Remove these dead methods, and add tests covering some of the other error methods. +22107 area-System.Net Re-enabling ClientWebSocketUnitTest runs in UWP "Re-enabling ClientWebSocket's unit tests for UWP. Note that the following code fails in UAPAOT without the ResourceHelper change proposed in this PR, even though it's already using AssertExtensions: ``` AssertExtensions.Throws( () => cws.CloseOutputAsync(WebSocketCloseStatus.Empty, """", new CancellationToken()).GetAwaiter().GetResult(), ResourceHelper.GetExceptionMessage(""net_WebSockets_NotConnected"")); ``` **Exception message from ResourceHelper (pre-changes):** _The WebSocket is not connected._ **Actual exception message:** _net_WebSockets_NotConnected. For more information, visit http://go.microsoft.com/fwlink/?LinkId=623485_ Contributes to #20132" +22108 area-System.Data Fix SNI version issues in Named Pipes tests in SqlClient functional tests Error messages sometimes differ when using Native & Managed SNI, so these changes check the SNI version before running these tests. +22110 area-System.Net System.Net.HttpListener tests hanging in UAPAOT Some of the HttpListener tests are hanging in AOT mode only. The failures are intermittent and the following may not be a complete list: - [ ] 7 tests in HttpRequestStreamTests.cs - [x] 2 test in HttpResponseStreamTests.cs +22112 area-System.Collections Fix failed in System.Collections.Tests on ILC Fixes https://github.com/dotnet/corefx/issues/20888 +22113 area-System.ComponentModel Invalid Rd.xml in System.ComponentModel.TypeConverter The embedded RD.XML in System.ComponentModel.TypeConverter doesn't conform to the schema and causes compilation warnings on UWP: ``` System.ComponentModel.TypeConverter.Resources.System.ComponentModel.TypeConverter.rd.xml(26-26): warning : ILTransform : warning ILT0027: The 'Dynamic' attribute is invalid - The value 'Required Public' is invalid according to its datatype 'http://schemas.microsoft.com/netfx/2013/01/metadata:memberApplicabilitySpec' - The Enumeration constraint failed. [E:\ProjectN_2\src\ndp\pntoolchain\ilc\ilc_selfhosted.proj] ``` What we need to investigate is why there are no failing tests (a badly specified RD.XML does nothing) - is this directive needed? Do we need more tests? Also, the RD.XML needs to be fixed or all users will see this warning in VS. +22114 area-System.Net Enabling some HttpListener tests. Disabling UAP and UAPAOT tests against individual classes of bugs. Fixing test string AOT lookups. Contributes to #17462. +22115 area-System.Drawing Add tests for CustomLineCap This adds some standard validation for `System.Drawing.Drawing2D.CustomLineCap`. +22117 area-Microsoft.CSharp Fix bug in MS.CSharp handling non-generic classes nested in generic Such types are still generic but don't have a tick in their name, which the name lookup expects all generic types' names to have. Handle this case correctly. Fixes #21689 +22118 area-System.ComponentModel Fix invalid rd.xml. Fixes https://github.com/dotnet/corefx/issues/22113 +22120 area-System.Net Add rd.xml for not removing metadata in HttpListenerRequestTests on ILC Fixes: #22063 +22123 area-System.Runtime Reenable System.Runtime Enum test on ILC. +22127 area-System.Net Re-enabling ClientWebSocketUnitTest runs in UWP "Re-enabling ClientWebSocket's unit tests for UWP. Note that the following code fails in UAPAOT, even though it's already using AssertExtensions, which is why the exception message comparisons are being placed behind a ""!IsNetNative"" check: ``` AssertExtensions.Throws( () => cws.CloseOutputAsync(WebSocketCloseStatus.Empty, """", new CancellationToken()).GetAwaiter().GetResult(), ResourceHelper.GetExceptionMessage(""net_WebSockets_NotConnected"")); ``` **Exception message from ResourceHelper:** _The WebSocket is not connected._ **Actual exception message:** _net_WebSockets_NotConnected. For more information, visit http://go.microsoft.com/fwlink/?LinkId=623485_ Note that my previous attempt to improve the ResourceHelper to special-case .NET Native was unsuccessful (see #22107). Contributes to #20132" +22128 area-System.Security API checker issue with CheckTokenMembershipEx [CheckTokenMembershipEx](https://msdn.microsoft.com/en-us/library/windows/desktop/hh448479(v=vs.85).aspx) is documented to have an entrypoint in kernel32.dll but the checker places it in advapi32.dll. As a workaround I have temporarily added CheckTokenMembershipEx to the ignore file. ``` Getting error BCL0015: kernel32.dll!CheckTokenMembershipEx is not supported on one\more targeted platforms.Consider using advapi32.dll!CheckTokenMembershipEx instead which doesn't exist. Using advapi32.dll!CheckTokenMembershipEx will give out a runtime error: System.EntryPointNotFoundException : Unable to find an entry point named 'CheckTokenMembershipEx' in DLL 'advapi32.dll'. ``` +22129 area-System.Security Fixing WindowsIdentity.IsAuthenticated for UWP and removing test workarounds. Apps running in a container need to call [CheckTokenMembershipEx ](https://msdn.microsoft.com/en-us/library/windows/desktop/hh448479(v=vs.85).aspx) instead of CheckTokenMembership passing the `CTMF_INCLUDE_APPCONTAINER` flag for authentication validation to work. A potential Windows SDK issue is misplacing the new API. I'm tracking the temporary workaround with #22128. (/cc @danmosemsft @AlexGhiondea ) Fixes #21282. +22134 area-System.Runtime "Test: System.Tests.AppDomainTests/SetData_SameKeyMultipleTimes_ReplacesOldValue failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Tests.AppDomainTests/SetData_SameKeyMultipleTimes_ReplacesOldValue` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -323331298 Stack Trace: at xunit.console.netcore!+0xb071ee at System.Tests.AppDomainTests.SetData_SameKeyMultipleTimes_ReplacesOldValue() at xunit.console.netcore!+0xbb23b7 at xunit.console.netcore!+0x9ed0a3 at xunit.console.netcore!+0x9ecea3 Build : Master - 20170712.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug - Windows.10.Amd64.ClientRS3-x86 - Release - Debug Detail:https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170712.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.AppDomainTests~2FSetData_SameKeyMultipleTimes_ReplacesOldValue +22135 area-System.Globalization How can I add an unsupported culture/locale? I need to support several cultures/locales currently unsupported in .NET Core. Is there any way? | Culture | Description | |:-:|:-:| | 'ckb-IQ' | Which is 'ku-arab-IQ' in .NET's culture notation, but only working on Windows platform. https://github.com/dotnet/coreclr/issues/12759 | | 'mai-IN' and 'sat-IN' | Which are in ISO639-2 specification, but not supported in .NET Core. http://www.loc.gov/standards/iso639-2/php/langcodes_name.php?code_ID=278 http://www.loc.gov/standards/iso639-2/php/langcodes_name.php?code_ID=388| | 'tu-IN' | Which are not in ISO639 specification, but need to support. | +22139 area-System.Xml Xslt recursion incorrect result "Hi, We have come across an issue when using the Xslt 1.0 implementation in .Net Core 2.0.0-preview2-006497. I have committed a sample project at the following location: https://github.com/ymor/NetCore2-XSLTIssue If you run the tests you will see the test ""TestNetCore_InlineCalculation_ReturnsHelloWorld"" fails as the output is 'Hllo World' instead of 'Hello World'. The .net framework 4.6.2 version of this test passes correctly. If you compare the outputs from the two tests, you will see that on iteration 2 of the .net core version the result is incorrect. I have noticed that if you do the ""calculation"" outside of the with-param, the .Net Core test will pass. (ExternalCalculation.xslt). I hope the example is sufficient to help diagnose the issue. Many thanks." +22141 area-System.IO Named pipe stream endpoint cannot be created under application directory In order to preserve application's permissions also on the created pipe, I have to create a directory under the temp path. However it will be much easier not to create one, and just use the path of the current running dotnet app. Currently I'm w/a this by overriding : https://github.com/dotnet/corefx/blob/master/src/System.IO.Pipes/src/System/IO/Pipes/PipeStream.Unix.cs#L28 Can dotnet provide a way to set _path ? +22142 area-System.Runtime System.Runtime.Loader not copied to output directory Hi, I'm using 2.0.0-preview1-25305-02 and I have an issue with mixed netstandard and net462 projects in the same solution. Not sure if I'm doing something wrong or if there's something else. I have a net462 app that loads another net462 dll containing some Unity hosting code. That in turn loads some other dlls, some of which are netstandard2. On app startup I'm getting: ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime.Loader, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. I had thought this was part of netstandard, but either way I've added it as a NuGet package dependency to the Unity project (seeing as that's the one that does dynamic loading), but for some reason it's not ending up in either the Unity project bin folder or the exe one. Do you know why this dll is not being deployed to the bin folder? Thanks, Ben Young +22144 area-System.Net Fix memory leak in ReceiveMessageFromAsync I found this via code inspection while working on a separate change to remove some fields from SocketAsyncEventArgs. When using ReceiveMessageFromAsync multiple times with the same SocketAsyncEventArgs and buffer, it ends up allocating a pinning handle on every call and not freeing one that might already exist. This results in leaking a GCHandle per call. As verification, I ran essentially the test at https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/tests/FunctionalTests/ReceiveMessageFromAsync.cs#L37 but with an infinite number of iterations rather than with 5. Prior to the fix, memory usage climbs consistently and quickly. After the fix, it quickly levels off. cc: @davidsh, @cipop, @geoffkizer +22145 area-System.ComponentModel ComponentResourceManager seems to have different behaviour than netfx "From #22138 ```cs [Fact] public void ApplyResources_IComponentWithDesignModeSite_Success() { var resourceManager = new ComponentResourceManager(typeof(global::Resources.TestResx)) { IgnoreCase = true }; var value = new TestComponent { Site = new TestSite { DesignMode = true } }; resourceManager.ApplyResources(value, ""Object""); Assert.Equal(""One"", value.GetSetProperty); } private class TestSite : ISite { public bool DesignMode { get; set; } public IComponent Component => throw new NotImplementedException(); public IContainer Container => throw new NotImplementedException(); public string Name { get => throw new NotImplementedException(); set => throw new NotImplementedException(); } public object GetService(Type serviceType) => null; } ``` This test passes with `netcoreapp`, but throws with `netfx`: ``` System.ComponentModel.Tests.ComponentResourceManagerTests.ApplyResources_IComponentWithDesignModeSite_Success [FA IL] System.NotImplementedException : The method or operation is not implemented. Stack Trace: C:\Users\hugh\Documents\GitHub\corefx\src\System.ComponentModel.TypeConverter\tests\ComponentResourceManagerT ests.cs(154,0): at System.ComponentModel.Tests.ComponentResourceManagerTests.TestSite.get_Container() at System.ComponentModel.ReflectTypeDescriptionProvider.GetExtenderProviders(Object instance) at System.ComponentModel.ReflectTypeDescriptionProvider.GetExtendedProperties(Object instance) at System.ComponentModel.TypeDescriptor.GetPropertiesImpl(Object component, Attribute[] attributes, Boolea n noCustomTypeDesc, Boolean noAttributes) at System.ComponentModel.ComponentResourceManager.ApplyResources(Object value, String objectName, CultureI nfo culture) C:\Users\hugh\Documents\GitHub\corefx\src\System.ComponentModel.TypeConverter\tests\ComponentResourceManagerT ests.cs(145,0): at System.ComponentModel.Tests.ComponentResourceManagerTests.ApplyResources_IComponentWithDesignModeS ite_Success() ```" +22148 area-System.Threading Reenable Threading ETW's on UAPAOT Fixes https://github.com/dotnet/corefx/issues/20592 +22149 area-System.Security Add missing return statement in test VerifyWithRevocation skip path. "When revocation couldn't be checked (due to network or other issues) the VerifyWithRevocation test is supposed to print ""SKIP"" and exit successfully. Due to a missing return statement it prints SKIP, then fails. Addresses https://github.com/dotnet/corefx/issues/21926 in master." +22150 area-System.Security Disable tests on High Sierra which trigger corrupt chains "Whatever bad loop is currently present on High Sierra with building self-signed chains with revocation enabled seems to be inside a critical section, so any other tests running concurrently have a chance of hitting the ""took too long"" internal timeout and reporting an invalid chain, too. Avoiding calling Verify on a self-signed cert in TestVerify and avoiding TestResetMethod (whose first chain has revocation enabled) results in all tests passing with parallelism enabled across ~60 sequential runs on High Sierra Beta2. Addresses https://github.com/dotnet/corefx/issues/21875 in master." +22152 area-System.Net NullReferenceException thrown from WinHttpResponseStream.CancelPendingResponseStreamReadOperation() An [AppVeyor build failed](https://ci.appveyor.com/project/aspnetci/signalr/build/1.0.1264) for one of the iterations of https://github.com/aspnet/SignalR/pull/657 due to a NullReferenceException apparently thrown from WinHttpResponseStream.CancelPendingResponseStreamReadOperation() with the following stack trace: ``` [xUnit.net 00:00:03.1857362] Stack Trace: [xUnit.net 00:00:03.1867768] at System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(Boolean throwOnFirstException) [xUnit.net 00:00:03.1868651] C:\projects\signalr\src\Microsoft.AspNetCore.Sockets.Client.Http\ServerSentEventsTransport.cs(128,0): at Microsoft.AspNetCore.Sockets.Client.ServerSentEventsTransport.d__13.MoveNext() [xUnit.net 00:00:03.1869721] --- End of stack trace from previous location where exception was thrown --- [xUnit.net 00:00:03.1870194] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [xUnit.net 00:00:03.1870795] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [xUnit.net 00:00:03.1871896] C:\projects\signalr\src\Microsoft.AspNetCore.Sockets.Client.Http\HttpConnection.cs(385,0): at Microsoft.AspNetCore.Sockets.Client.HttpConnection.d__42.MoveNext() [xUnit.net 00:00:03.1872998] --- End of stack trace from previous location where exception was thrown --- [xUnit.net 00:00:03.1873450] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [xUnit.net 00:00:03.1874010] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [xUnit.net 00:00:03.1874476] C:\projects\signalr\src\Microsoft.AspNetCore.SignalR.Client\HubConnection.cs(91,0): at Microsoft.AspNetCore.SignalR.Client.HubConnection.d__20.MoveNext() [xUnit.net 00:00:03.1875257] --- End of stack trace from previous location where exception was thrown --- [xUnit.net 00:00:03.1875684] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [xUnit.net 00:00:03.1876090] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [xUnit.net 00:00:03.1876622] at Microsoft.AspNetCore.SignalR.Tests.Common.TaskExtensions.d__2.MoveNext() [xUnit.net 00:00:03.1877018] --- End of stack trace from previous location where exception was thrown --- [xUnit.net 00:00:03.1877398] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [xUnit.net 00:00:03.1878073] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [xUnit.net 00:00:03.1878519] at Microsoft.AspNetCore.SignalR.Client.FunctionalTests.HubConnectionTests.d__3.MoveNext() [xUnit.net 00:00:03.1878920] --- End of stack trace from previous location where exception was thrown --- [xUnit.net 00:00:03.1879332] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [xUnit.net 00:00:03.1879915] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [xUnit.net 00:00:03.1880318] --- End of stack trace from previous location where exception was thrown --- [xUnit.net 00:00:03.1880732] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [xUnit.net 00:00:03.1881324] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [xUnit.net 00:00:03.1881687] --- End of stack trace from previous location where exception was thrown --- [xUnit.net 00:00:03.1882134] at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [xUnit.net 00:00:03.1882686] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [xUnit.net 00:00:03.1883055] ----- Inner Stack Trace ----- [xUnit.net 00:00:03.1883462] at System.Net.Http.WinHttpResponseStream.CancelPendingResponseStreamReadOperation() [xUnit.net 00:00:03.1883993] at System.Net.Http.WinHttpResponseStream.<>c.b__18_0(Object s) [xUnit.net 00:00:03.1884418] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) [xUnit.net 00:00:03.1884825] at System.Threading.CancellationTokenSource.ExecuteCallbackHandlers(Boolean throwOnFirstException) ``` NETStandard library version: NETStandard.Library 2.0.0-preview3-25505-01 Runtime - netcoreapp2.0 So far, I saw the failure only once which indicates that this might be due to a race somewhere and it will likely happen again. Looking at the code the issue is likely on this line: https://github.com/dotnet/corefx/blob/master/src/System.Net.Http.WinHttpHandler/src/System/Net/Http/WinHttpResponseStream.cs#L321. It seems that the stream was disposed (we do [dispose the stream](https://github.com/aspnet/SignalR/blob/cd5d4fbdaf73f9c364a84fd800d40c24ae47358d/src/Microsoft.AspNetCore.Sockets.Client.Http/ServerSentEventsTransport.cs#L120) but this should happen only after the cancellationToken passed to [CopyAsync (via pipelines)](https://github.com/aspnet/SignalR/blob/cd5d4fbdaf73f9c364a84fd800d40c24ae47358d/src/Microsoft.AspNetCore.Sockets.Client.Http/ServerSentEventsTransport.cs#L74) was cancelled. +22155 area-System.Net Re-enable and fix Http tests for UAP * Removed ActiveIssue from a bunch of Http tests. * Converted some ActiveIssue to SkipOnTargetFramework due to platform differences. * Change some tests to use RemoteInvoke to get process isolation since UAP will cache connections per-process. * Removed a duplicate ChannelBinding test. There is already the same test in HttpClientHandlerTest.ServerCertificates.cs (PostAsync_Post_ChannelBinding_ConfiguredCorrectly). And that test checks more things. Contributes to #20010 +22156 area-System.Net [NO MERGE] Test PR HttpListener for UAP test The purpose of this PR is to test CI for running HttpListener tests in UAP mode. Tests passed locally on my machine. @CIPop @davidsh @DavidGoll +22158 area-System.Net HttpClientHandler test GetAsync_IPv6LinkLocalAddressUri_Success fails on UAP "Exception being thrown from GetAsync() on the tests: >ArgumentException: The given System.Uri cannot be converted into a Windows.Foundation.Uri. Please see http://go.microsoft.com/fwlink/?LinkID=215849 for details. Need to debug this more. Most likely a bug in Windows.Foundation.Uri or the interop layer between System.Uri and Windows.Foundation.Uri. Using Ipv6 link-local addresses in uri's in browsers (IE, Edge, Chrome) works. example Uri: http://[fe80::3df1:c851:8775:4c5b]:1693/ Moie stack information: ``` StackTrace "" at System.StubHelpers.UriMarshaler.CreateNativeUriInstanceHelper(Char* rawUri, Int32 strLen)\r\n at System.StubHelpers.UriMarshaler.CreateNativeUriInstance(String rawUri)\r\n at Windows.Web.Http.HttpRequestMessage..ctor(HttpMethod method, Uri uri)\r\n at System.Net.Http.HttpHandlerToFilter.d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Net.Http.HttpHandlerToFilter.d__4.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Net.Http.HttpClientHandler.d__86.MoveNext()"" string ```" +22159 area-System.Net SendAsync_Cancel_CancellationTokenPropagates throw wrong exception on UAP HttpClientHandler test SendAsync_Cancel_CancellationTokenPropagates() is throwing OperationCanceledException on UAP. But it throws TaskCanceledException on .NET Core. +22161 area-System.Net SendAsync_SendRequestUsingMethodToEchoServerWithNoContent_MethodCorrectlySent test throws on UAP "Throws when run on UAP and UAPAOT. >System.Net.Http.Functional.Tests.HttpClientHandlerTest.SendAsync_SendRequestUsingMethodToEchoServerWithNoContent_MethodCorrectlySent(method: ""TRACE "", secureServer: False) [FAIL] System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Runtime.InteropServices.COMException : The text associated with this error code could not be found. The requested operation is invalid" +22163 area-System.Net GetAsync_StatusCode99_ExpectedException fails on UAP Running the test with a statuscode value of '99' fails the test on UAP. On UAP, the GetAsync() does not throw an exception. On .NET Core, it throws. >ERROR: System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_StatusCodeOutOfRange_ExpectedException(statusCode: 99) [FAIL] Assert.Throws() Failure Expected: typeof(System.Net.Http.HttpRequestException) Actual: (No exception was thrown) Need to investigate to know which behavior is correct. +22164 area-System.Net HttpListenerWebSocketTests.SendAsync_SendWholeBuffer_Success hangs in UAP/UAPAOT on Windows 10 Version 1703 Tracking further investigation for this hang in Windows 10 Version 1703 but not vNext. This is most likely related to the Windows vNext enhancements for WebSocket buffer management. /cc @Diego-Perez-Botero +22166 area-System.Linq Simplify some S.L.Expressions branch compilation methods #### Simplify `EmitExpressionAndBranch` method `EmitExpressionAndBranch` is called from non-lifted non-method `AndAlso` and `OrElse` expressions, from `Conditional` and from `Switch` expressions' use of `Equal`, and from calls which originate with itself, all of which mean the node's type is boolean. Removing the test for `node.Type == typeof(bool)` allows for the rest of the method to be simplified and no longer need a `try`…`finally`. Also include tests covering the `EmitBranchNot` case. Contributes to #11409 #### Reduce if-else ladders in `EmitAndAlsoBinaryExpression` and `EmitOrElseBinaryExpression` Handle all cases in 2 tests, instead of between 2 and 4. #### Simplify IL produced for `EmitMethodAndAlso` and `EmitMethodOrElse` These methods `dup` the lhs operand, then if not short-circuiting store it, then obtain the rhs and store than, the retrieve lhs and rhs and call the method. Instead just `dup` the lhs and if not short-circuiting leave it on the stack, obtain the rhs and call the method. +22169 area-Infrastructure Create Windows PDBs from Portable PDBs during symbol archive Update buildtools to get https://github.com/dotnet/buildtools/pull/1605, which automatically creates converted Windows PDBs for any Portable PDBs in the symbol archive build leg. I changed the target used for master branch builds to `GetAllSymbolFilesToPublish` rather than `UnzipSymbolPackagesForPublish` so that we create converted symbols even if we aren't going to archive them. (We index them on symweb using VSTS Symbol.) On a current CoreFX master build, this new extra target takes ~14 seconds. Windows builds produce Windows PDBs right now, so it only converted PDBs for the Linux and OSX symbol packages. This is part of https://github.com/dotnet/core-eng/issues/698. Note: the converted symbols won't be put on MyGet yet. https://github.com/dotnet/core-eng/issues/1132 tracks that. +22170 area-System.Net Remove 6 IntPtr fields from SocketAsyncEventArgs on Windows "In the Windows implementation of SocketAsyncEventArgs, we're currently storing in six IntPtr fields values that we can efficiently recreate at run time, and by removing the fields, we save 48 bytes per SocketAsyncEventArgs instance (on 64-bit). Unfortunately SocketAsyncEventArgs is currently quite large, so that's ""only"" 7%, but it's a good start. cc: @geoffkizer, @davidsh, @cipop" +22171 area-System.Threading Can we delete ValueTask.CreateAsyncMethodBuilder? https://github.com/dotnet/corefx/blob/5a6d8ca975b512eeeea7404c740afcf865128405/src/System.Threading.Tasks.Extensions/src/System/Threading/Tasks/ValueTask.cs#L156-L161 This CreateAsyncMethodBuilder function was used as part of the initial C# compiler design for supporting arbitrary async return types, but the final design switched away from needing it. Unfortunately we neglected to then remove the method prior to shipping the library as stable. The method is hidden from IntelliSense, and there's no good reason for someone to call it. Can we remove it? +22173 area-System.Security Enable X509Certificates tests to run on uap and uapaot fixes #17764 cc: @bartonjs @jkotas @steveharter Enabling test run for uap and uapaot for X509Certificates tests which were not running before. +22174 area-System.Diagnostics S.D.Process tests are failing on uap "Currently all S.D.Process tests are disabled (https://github.com/dotnet/corefx/issues/20948). I'm planning to reenable not failing tests and substitute that issue so that only relevant tests are disabled.
List of failing tests on uap ``` ERROR: System.Diagnostics.Tests.ProcessCollectionTests.TestThreadCollectionBehavior [FAIL] ERROR: System.Diagnostics.Tests.ProcessModuleTests.Modules_Get_ContainsHostFileName [FAIL] ERROR: System.Diagnostics.Tests.ProcessStandardConsoleTests.TestChangesInConsoleEncoding [FAIL] ERROR: System.Diagnostics.Tests.ProcessStartInfoTests.TestCreateNoWindowProperty(value: True) [FAIL] ERROR: System.Diagnostics.Tests.ProcessStartInfoTests.TestCreateNoWindowProperty(value: False) [FAIL] ERROR: System.Diagnostics.Tests.ProcessStartInfoTests.Verbs_GetWithExeExtension_ReturnsExpected [FAIL] ERROR: System.Diagnostics.Tests.ProcessStartInfoTests.TestWorkingDirectoryProperty [FAIL] ERROR: System.Diagnostics.Tests.ProcessStartInfoTests.TestEnvironmentOfChildProcess [FAIL] ERROR: System.Diagnostics.Tests.ProcessStreamReadTests.TestAsyncErrorStream [FAIL] ERROR: System.Diagnostics.Tests.ProcessStreamReadTests.TestSyncStreams [FAIL] ERROR: System.Diagnostics.Tests.ProcessStreamReadTests.TestAsyncOutputStream [FAIL] ERROR: System.Diagnostics.Tests.ProcessStreamReadTests.TestSyncOutputStream [FAIL] ERROR: System.Diagnostics.Tests.ProcessStreamReadTests.TestStreamNegativeTests [FAIL] ERROR: System.Diagnostics.Tests.ProcessStreamReadTests.TestManyOutputLines [FAIL] ERROR: System.Diagnostics.Tests.ProcessStreamReadTests.TestAsyncHalfCharacterAtATime [FAIL] ERROR: System.Diagnostics.Tests.ProcessStreamReadTests.TestEOFReceivedWhenStdInClosed [FAIL] ERROR: System.Diagnostics.Tests.ProcessStreamReadTests.TestSyncErrorStream [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPeakWorkingSet [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestVirtualMemorySize [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.GetProcessesByName_EmptyMachineName_ThrowsArgumentException [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestSessionId [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.StartInfo_GetFileName_ReturnsExpected [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPeakVirtualMemorySize [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestProcessName [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestMainModuleOnNonOSX [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.GetProcessesByName_ProcessName_ReturnsExpected [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestId [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.MainWindowHandle_NoWindow_ReturnsEmptyHandle [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.Process_StartTest [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestVirtualMemorySize64 [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPagedMemorySize [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPriorityClassWindows [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.HandleCountChanges [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestNonpagedSystemMemorySize [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestExitTime [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestWorkingSet64 [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPagedMemorySize64 [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPrivateMemorySize64 [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPeakPagedMemorySize [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestEnableRaiseEvents(enable: True) [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestEnableRaiseEvents(enable: False) [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestEnableRaiseEvents(enable: null) [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.GetProcessesByName_NullMachineName_ThrowsArgumentNullException [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.CloseMainWindow_NotStarted_ThrowsInvalidOperationException [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.CloseMainWindow_NoWindow_ReturnsFalse [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.Process_StartWithArgumentsTest [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestGetProcesses [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPrivateMemorySize [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestProcessStartTime [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestHasExited [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestMaxWorkingSet [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.GetProcessesByName_NoSuchProcess_ReturnsEmpty [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPagedSystemMemorySize [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestMachineName [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPagedSystemMemorySize64 [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestGetProcessById [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.MainWindowTitle_NoWindow_ReturnsEmpty [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPeakPagedMemorySize64 [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.StartInfo_SetOnRunningProcess_ThrowsInvalidOperationException [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPeakWorkingSet64 [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.GetProcessesByName_ProcessNameMachineName_ReturnsExpected(machineName: ""."") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.GetProcessesByName_ProcessNameMachineName_ReturnsExpected(machineName: ""."") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.GetProcessesByName_ProcessNameMachineName_ReturnsExpected(machineName: ""krwq-win10"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPeakVirtualMemorySize64 [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestProcessorTime [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestExitCode [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.Process_StartWithInvalidUserNamePassword [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""\""abc\"" d e"", expectedArgv: ""abc,d,e"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""b d \""\""a\""\"" "", expectedArgv: ""b,d,a"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""\""\""a\""\"" b d"", expectedArgv: ""a,b,d"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""\""\""c \""\""b\""\"" d\""\\"", expectedArgv: ""c,b,d\\"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""c\""\""\""\"" b \""\""\\"", expectedArgv: ""c\"",b,\\"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""\""\""\""\"" b c"", expectedArgv: ""\"",b,c"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""\""\"" b \""\"""", expectedArgv: "",b,"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""\""\\a\\\"" \\\\\""\\\\\\ b c"", expectedArgv: ""\\a\"" \\\\\\\\,b,c"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""a b c\""def"", expectedArgv: ""a,b,cdef"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""a\""b c\""d e\""f g\""h i\""j k\""l"", expectedArgv: ""ab cd,ef gh,ij kl"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""a\\\\\\\\\""b c\"" d e"", expectedArgv: ""a\\\\b c,d,e"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""a\\\\\\\""b c d"", expectedArgv: ""a\\\""b,c,d"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""\\ \\\\ \\\\\\"", expectedArgv: ""\\,\\\\,\\\\\\"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""a\\\\b d\""e f\""g h"", expectedArgv: ""a\\\\b,de fg,h"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""\""abc\""\t\td\te"", expectedArgv: ""abc,d,e"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""\""abc\"" d e"", expectedArgv: ""abc,d,e"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""\\\""\\\""a\\\""\\\"" b d"", expectedArgv: ""\""\""a\""\"",b,d"") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestArgumentParsing(inputArguments: ""b d \\\""\\\""a\\\""\\\"""", expectedArgv: ""b,d,\""\""a\""\"""") [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestSafeHandle [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestBasePriorityOnWindows [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestWorkingSet [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestPriorityBoostEnabled [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestHandleCount [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestMinWorkingSet [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestNonpagedSystemMemorySize64 [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestProcessorAffinity [FAIL] ERROR: System.Diagnostics.Tests.ProcessTests.TestProcessOnRemoteMachineWindows [FAIL] ERROR: System.Diagnostics.Tests.ProcessThreadTests.TestCommonPriorityAndTimeProperties [FAIL] ERROR: System.Diagnostics.Tests.ProcessThreadTests.TestStartTimeProperty [FAIL] ERROR: System.Diagnostics.Tests.ProcessThreadTests.TestThreadCount [FAIL] ERROR: System.Diagnostics.Tests.ProcessThreadTests.Threads_GetMultipleTimes_ReturnsSameInstance [FAIL] ERROR: System.Diagnostics.Tests.ProcessThreadTests.TestStartAddressProperty [FAIL] ERROR: System.Diagnostics.Tests.ProcessThreadTests.TestPriorityLevelProperty [FAIL] ERROR: System.Diagnostics.Tests.ProcessThreadTests.TestThreadStateProperty [FAIL] ERROR: System.Diagnostics.Tests.ProcessWaitingTests.SingleProcess_EnableRaisingEvents_CorrectExitCode(exitCode: 0) [FAIL] ERROR: System.Diagnostics.Tests.ProcessWaitingTests.SingleProcess_EnableRaisingEvents_CorrectExitCode(exitCode: 1) [FAIL] ERROR: System.Diagnostics.Tests.ProcessWaitingTests.SingleProcess_EnableRaisingEvents_CorrectExitCode(exitCode: 127) [FAIL] ERROR: System.Diagnostics.Tests.ProcessWaitingTests.WaitForPeerProcess [FAIL] ERROR: System.Diagnostics.Tests.ProcessWaitingTests.SingleProcess_CopiesShareExitInformation [FAIL] ERROR: System.Diagnostics.Tests.ProcessWaitingTests.MultipleProcesses_StartAllKillAllWaitAll [FAIL] ERROR: System.Diagnostics.Tests.ProcessWaitingTests.MultipleProcesses_ParallelStartKillWait [FAIL] ERROR: System.Diagnostics.Tests.ProcessWaitingTests.WaitChain [FAIL] ERROR: System.Diagnostics.Tests.ProcessWaitingTests.SingleProcess_TryWaitMultipleTimesBeforeCompleting [FAIL] ERROR: System.Diagnostics.Tests.ProcessWaitingTests.MultipleProcesses_SerialStartKillWait [FAIL] ERROR: System.Diagnostics.Tests.ProcessWaitingTests.SingleProcess_WaitAfterExited(addHandlerBeforeStart: False) [FAIL] ERROR: System.Diagnostics.Tests.ProcessWaitingTests.SingleProcess_WaitAfterExited(addHandlerBeforeStart: True) [FAIL] ERROR: System.Diagnostics.Tests.ProcessWaitingTests.WaitForSelfTerminatingChild [FAIL] ```
They are related to RemoteInvoke not giving back process handle" +22175 area-System.Net Fix null dereference in WinHttpResponseStream If the response stream is disposed of while an operation like CopyToAsync is in flight, a subsequent cancellation request can trigger a null dereference in CancelPendingResponseStreamReadOperation. While this may not be desirable interaction, we should be more robust against it. Fixes https://github.com/dotnet/corefx/issues/22152 cc: @davidsh, @moozzyk @moozzyk, I'm not entirely sure how the access pattern you highlighted could have triggered this, but obviously something did, so hopefully this addresses it. Regardless of whether it does, it's a worthwhile change IMHO. +22177 area-System.Net Building tests not successful on Mac OSX "Hi, I was trying to build core fx tests on my Macbook with OSX 10.12.3 and it failed to build the tests. I cloned corefx yesterday, I was able to build successfully. But when I built and ran the test using build-tests.sh I ran into errors. Here is the test execution summary. I have also attached the relevant files. [Archive.zip](https://github.com/dotnet/corefx/files/1143416/Archive.zip) ``` /Users/Surya/code/dotnet2/corefx/Tools/tests.targets(346,5): warning : System.Net.NameResolution.Pal.Tests Total: 17, Errors: 0, Failed: 2, Skipped: 0, Time: 17.235s [/Users/Surya/code/dotnet2/corefx/src/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj] ~/code/dotnet2/corefx/src/System.Net.NameResolution/tests/PalTests Finished running tests. End time=11:11:21. Return value was 1 /Users/Surya/code/dotnet2/corefx/Tools/tests.targets(346,5): warning MSB3073: The command ""/Users/Surya/code/dotnet2/corefx/bin/Unix.AnyCPU.Debug/System.Net.NameResolution.Pal.Tests/netcoreapp/RunTests.sh /Users/Surya/code/dotnet2/corefx/bin/testhost/netcoreapp-OSX-Debug-x64/"" exited with code 1. [/Users/Surya/code/dotnet2/corefx/src/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj] /Users/Surya/code/dotnet2/corefx/Tools/tests.targets(354,5): error : One or more tests failed while running tests from 'System.Net.NameResolution.Pal.Tests' please check /Users/Surya/code/dotnet2/corefx/bin/Unix.AnyCPU.Debug/System.Net.NameResolution.Pal.Tests/netcoreapp/testResults.xml for details! [/Users/Surya/code/dotnet2/corefx/src/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj] /Users/Surya/code/dotnet2/corefx/dir.traversal.targets(77,5): error : (No message specified) [/Users/Surya/code/dotnet2/corefx/src/tests.builds] Build FAILED. /Users/Surya/code/dotnet2/corefx/Tools/tests.targets(346,5): warning : System.Net.WebProxy.Tests Total: 21, Errors: 0, Failed: 1, Skipped: 0, Time: 5.925s [/Users/Surya/code/dotnet2/corefx/src/System.Net.WebProxy/tests/System.Net.WebProxy.Tests.csproj] /Users/Surya/code/dotnet2/corefx/Tools/tests.targets(346,5): warning MSB3073: The command ""/Users/Surya/code/dotnet2/corefx/bin/AnyOS.AnyCPU.Debug/System.Net.WebProxy.Tests/netstandard/RunTests.sh /Users/Surya/code/dotnet2/corefx/bin/testhost/netcoreapp-OSX-Debug-x64/"" exited with code 1. [/Users/Surya/code/dotnet2/corefx/src/System.Net.WebProxy/tests/System.Net.WebProxy.Tests.csproj] /Users/Surya/code/dotnet2/corefx/Tools/tests.targets(346,5): warning : System.Net.NameResolution.Pal.Tests Total: 17, Errors: 0, Failed: 2, Skipped: 0, Time: 17.235s [/Users/Surya/code/dotnet2/corefx/src/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj] /Users/Surya/code/dotnet2/corefx/Tools/tests.targets(346,5): warning MSB3073: The command ""/Users/Surya/code/dotnet2/corefx/bin/Unix.AnyCPU.Debug/System.Net.NameResolution.Pal.Tests/netcoreapp/RunTests.sh /Users/Surya/code/dotnet2/corefx/bin/testhost/netcoreapp-OSX-Debug-x64/"" exited with code 1. [/Users/Surya/code/dotnet2/corefx/src/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj] /Users/Surya/code/dotnet2/corefx/Tools/tests.targets(354,5): error : One or more tests failed while running tests from 'System.Net.WebProxy.Tests' please check /Users/Surya/code/dotnet2/corefx/bin/AnyOS.AnyCPU.Debug/System.Net.WebProxy.Tests/netstandard/testResults.xml for details! [/Users/Surya/code/dotnet2/corefx/src/System.Net.WebProxy/tests/System.Net.WebProxy.Tests.csproj] /Users/Surya/code/dotnet2/corefx/Tools/tests.targets(354,5): error : One or more tests failed while running tests from 'System.Net.NameResolution.Pal.Tests' please check /Users/Surya/code/dotnet2/corefx/bin/Unix.AnyCPU.Debug/System.Net.NameResolution.Pal.Tests/netcoreapp/testResults.xml for details! [/Users/Surya/code/dotnet2/corefx/src/System.Net.NameResolution/tests/PalTests/System.Net.NameResolution.Pal.Tests.csproj] /Users/Surya/code/dotnet2/corefx/dir.traversal.targets(77,5): error : (No message specified) [/Users/Surya/code/dotnet2/corefx/src/tests.builds] 4 Warning(s) 3 Error(s) Time Elapsed 00:03:42.99 Command execution failed with exit code 1. ``` " +22178 area-System.Diagnostics Re-enable not failing S.D.Process tests on uap Fixes: https://github.com/dotnet/corefx/issues/20948 Opens: https://github.com/dotnet/corefx/issues/22174 Currently all S.D.Process tests are disabled on uap, now only relevant failing tests. While quickly reviewing the code I noticed that most of the tests (but not all) fail because RemoteInvoke does not give back Process handle on uap (also we do not have a way of creating remote process without starting it) I have also decreased timeout for remote processes from 10 minutes to 10 seconds +22179 area-System.Runtime Fix RepeatBehavior GetHashCode test on Uap Resolves https://github.com/dotnet/corefx/issues/21351 The test case `new object[] { new RepeatBehavior { Type = RepeatBehaviorType.Forever + 1 }, new RepeatBehavior { Type = RepeatBehaviorType.Count + 1 }, false };` fails on [this line](https://github.com/dotnet/corefx/blob/master/src/System.Runtime.WindowsRuntime.UI.Xaml/tests/Windows/UI/Xaml/Media/Animation/RepeatBehaviorTests.cs#L177). The test seems to be failing because the first behavior type argument passed is invalid and thus gets ValueType.HashCode()=0 as hash code by default, and the second one is of behavior type Duration, which has 0 time span and as a result, returns 0 for hash code. I'm not 100% sure what the purpose of the test was, but looks like to me the failure should be expected given the input. So, enforcing non-zero timespan for the second arg. cc: @hughbe @tijoytom +22180 area-System.Security [release/2.0] Disable tests on High Sierra which trigger corrupt chains "Whatever bad loop is currently present on High Sierra with building self-signed chains with revocation enabled seems to be inside a critical section, so any other tests running concurrently have a chance of hitting the ""took too long"" internal timeout and reporting an invalid chain, too. Avoiding calling Verify on a self-signed cert in TestVerify and avoiding TestResetMethod (whose first chain has revocation enabled) results in all tests passing with parallelism enabled across ~60 sequential runs on High Sierra Beta2. Port #22150 to release/2.0. Fixes #21875." +22181 area-Serialization release/2.0.0 - Disabling CompareInfo serialization blob sanity test which is failing on OSX Somebody please sign-off. cc @Petermarcu @tarekgh +22182 area-System.Security [release/2.0] Add missing return statement in test VerifyWithRevocation skip path. "When revocation couldn't be checked (due to network or other issues) the VerifyWithRevocation test is supposed to print ""SKIP"" and exit successfully. Due to a missing return statement it prints SKIP, then fails. Port #22149 to release/2.0. Fixes #21926" +22183 area-System.Net Pinning correct WebSocketState.Closed behavior As part of the #20362 investigation, it has been determined that the non-UWP .NET Core behavior around WebSocketState.Closed is incorrect. These changes pin the correct (.NET Framework) behavior. After these changes, there will be no remaining UAP-specific ActiveIssue or SkipOn* annotations in the entire System.Net.WebSockets* namespace. Contributes to #20362 #20132 +22184 area-System.Data Cannot access Kerberos ticket. Ensure Kerberos has been initialized with 'kinit'. Hello, I have mssql-server installed on Debian 8. I'm using 2.0.0-preview2-final packages. When it's trying to connect to local mssql server, I'm getting the following error: ``` Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[0] An unhandled exception has occurred: Cannot access Kerberos ticket. Ensure Kerberos has been initialized with 'kinit'. ErrorCode=InternalError, Exception=Interop+NetSecurityNative+GssApiException: GSSAPI operation failed with error - An invalid status code was supplied (SPNEGO cannot find mechanisms to negotiate). at System.Net.Security.NegotiateStreamPal.GssInitSecurityContext(SafeGssContextHandle& context, SafeGssCredHandle credential, Boolean isNtlm, SafeGssNameHandle targetName, GssFlags inFlags, Byte[] buffer, Byte[]& outputBuffer, UInt32& outFlags, Int32& isNtlmUsed) at System.Net.Security.NegotiateStreamPal.EstablishSecurityContext(SafeFreeNegoCredentials credential, SafeDeleteContext& context, String targetName, ContextFlagsPal inFlags, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, ContextFlagsPal& outFlags) at System.Data.SqlClient.SNI.SNIProxy.GenSspiClientContext(SspiClientContextStatus sspiClientContextStatus, Byte[] receivedBuff, Byte[]& sendBuff, Byte[] serverName) at System.Data.SqlClient.SNI.TdsParserStateObjectManaged.GenerateSspiClientContext(Byte[] receivedBuff, UInt32 receivedLength, Byte[]& sendBuff, UInt32& sendLength, Byte[] _sniSpnBuffer) at System.Data.SqlClient.TdsParser.SNISSPIData(Byte[] receivedBuff, UInt32 receivedLength, Byte[]& sendBuff, UInt32& sendLength) System.Data.SqlClient.SqlException (0x80131904): Cannot access Kerberos ticket. Ensure Kerberos has been initialized with 'kinit'. ErrorCode=InternalError, Exception=Interop+NetSecurityNative+GssApiException: GSSAPI operation failed with error - An invalid status code was supplied (SPNEGO cannot find mechanisms to negotiate). at System.Net.Security.NegotiateStreamPal.GssInitSecurityContext(SafeGssContextHandle& context, SafeGssCredHandle credential, Boolean isNtlm, SafeGssNameHandle targetName, GssFlags inFlags, Byte[] buffer, Byte[]& outputBuffer, UInt32& outFlags, Int32& isNtlmUsed) at System.Net.Security.NegotiateStreamPal.EstablishSecurityContext(SafeFreeNegoCredentials credential, SafeDeleteContext& context, String targetName, ContextFlagsPal inFlags, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, ContextFlagsPal& outFlags) at System.Data.SqlClient.SNI.SNIProxy.GenSspiClientContext(SspiClientContextStatus sspiClientContextStatus, Byte[] receivedBuff, Byte[]& sendBuff, Byte[] serverName) at System.Data.SqlClient.SNI.TdsParserStateObjectManaged.GenerateSspiClientContext(Byte[] receivedBuff, UInt32 receivedLength, Byte[]& sendBuff, UInt32& sendLength, Byte[] _sniSpnBuffer) at System.Data.SqlClient.TdsParser.SNISSPIData(Byte[] receivedBuff, UInt32 receivedLength, Byte[]& sendBuff, UInt32& sendLength) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() ``` I successfully connected to the mssql server remotely using the same net core app from Windows. But I can't connect to the server when it's running locally on Linux. The question: what's going wrong? Why do I need to install and setup a Kerberos client (as far as I understand). What I need to do? +22187 area-System.Net GetAsync_RequestHeadersAddCustomHeaders_HeaderAndValueSent failing on UAP "The HttpClientHandler test GetAsync_RequestHeadersAddCustomHeaders_HeaderAndValueSent is failing on UAP. It fails when it tries to send a custom header with an empty value: ```c# public static readonly object[][] HeaderValueAndUris = { new object[] { ""X-CustomHeader"", ""x-value"", Configuration.Http.RemoteEchoServer }, new object[] { ""X-Cust-Header-NoValue"", """" , Configuration.Http.RemoteEchoServer }, // FAILS new object[] { ""X-CustomHeader"", ""x-value"", Configuration.Http.RedirectUriForDestinationUri( secure:false, statusCode:302, destinationUri:Configuration.Http.RemoteEchoServer, hops:1) }, new object[] { ""X-Cust-Header-NoValue"", """" , Configuration.Http.RedirectUriForDestinationUri( secure:false, statusCode:302, destinationUri:Configuration.Http.RemoteEchoServer, // FAILS hops:1) }, }; ``` This is a bug in WinRT HttpClient. Opened internal bug 12743908 " +22188 area-System.Data Skip NonAzureNoProtocolConnectionTest on UAP, since the UseManagedSNI flag it uses cannot be checked via reflection on UAP Fixes https://github.com/dotnet/corefx/issues/21437 +22189 area-System.Net Add PlatformDetection.PartialMessagesSupported and disable Arrays with non-zero lower bounds on not supported platform Fixes #22164 Fixed #22055 +22190 area-System.IO Update tests for long path support in CoreCLR Update tests to correspond to dotnet/coreclr#12786. See #8655 After we get CoreCLR bits into CoreFX, I can come back and remove the ActiveIssue. Also, at that time, I would like to flesh out the tests a bit more to cover some more cases that should be lit up then. cc @JeremyKuhne +22191 area-System.Net PostAsync_RedirectWith307_LargePayload test fails on UAP >ERROR: System.Net.Http.Functional.Tests.HttpClientHandlerTest.PostAsync_RedirectWith307_LargePayload [FAIL] System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Runtime.InteropServices.COMException : The text associated with this error code could not be found. The HTTP redirect request must be confirmed by the user +22192 area-System.Net SendAsync_SendRequestUsingNoBodyMethodToEchoServerWithContent_NoBodySent fails in UAP "The HttpClientHandler test fails with using the TRACE verb. >ERROR: System.Net.Http.Functional.Tests.HttpClientHandlerTest.SendAsync_SendRequestUsingNoBodyMethodToEchoServerWithContent_NoBodySent(method: ""TRACE"", secureServer: False) [FAIL] System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Runtime.InteropServices.COMException : The text associated with this error code could not be found. The requested operation is invalid Needs investigation. Most likely a WinRT HttpClient behavior difference." +22193 area-System.Net Adjust Http tests for UAP behavior differences Made changes to some UAP tests due to known platform differences. Differences will be documented in the AppCompat docs. Opened some new issues for bugs to investigate. Fixes #22159 Fixes #22163 Fixes #22192 +22195 area-System.Net "Parallel requests with WinHttpHandler throws exception ""The server returned an invalid or unrecognized response""" "According to different recommendations I use only one instance of HttpClient in my app. I need to make HTTP/2 calls, so I use WinHttpHandler. I noticed that when I run several requests simultaneously some of them fail with > System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: The server returned an invalid or unrecognized response > at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) > at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) > at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) > at System.Net.Http.WinHttpHandler.d__105.MoveNext() > --- End of inner exception stack trace --- > at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) > at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) > at System.Net.Http.HttpClient.d__58.MoveNext() > --- End of stack trace from previous location where exception was thrown --- > at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) > at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) > at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() > at WinHttpRaceCondition.Program.d__2.MoveNext() in D:\dev\test-projects\WinHttpRaceCondition\WinHttpRaceCondition\Program.cs:line 76 The following code reproduces this issue. ``` using System; using System.Collections.Generic; using System.Threading.Tasks; namespace WinHttpRaceCondition { using System.Net.Http; using System.Security.Authentication; class Program { private static HttpClient _httpClient; static void Main(string[] args) { var httpHandler = new WinHttpHandler { SslProtocols = SslProtocols.Tls12 }; _httpClient = new HttpClient(httpHandler, true); var numberOfRequests = 5; if (args.Length == 2) { var sharedClient = args[0] == ""SharedClient=true""; var parallelExecution = args[1] == ""ParallelExecution=true""; if (parallelExecution) { var tasks = new Task[numberOfRequests]; for (var i = 0; i < numberOfRequests; i++) { tasks[i] = SendToApple(sharedClient, i.ToString()); } Task.WaitAll(tasks); for (var i = 0; i < numberOfRequests; i++) { Console.WriteLine(tasks[i].Result + ""\n""); } } else { for (var i = 0; i < numberOfRequests; i++) { Console.WriteLine(SendToApple(sharedClient, i.ToString()).Result + ""\n""); } } } else { Console.WriteLine(""Wrong arguments""); } } private static async Task SendToApple(bool shareHttpClient, string postfix) { HttpClient httpClient; if (shareHttpClient) { httpClient = _httpClient; } else { var httpHandler = new WinHttpHandler { SslProtocols = SslProtocols.Tls12 }; httpClient = new HttpClient(httpHandler, true); } using (var request = new HttpRequestMessage(HttpMethod.Post, ""https://api.push.apple.com:443/3/device/"" + postfix)) { request.Content = new StringContent(""Test""); ; request.Version = new Version(2, 0); try { using (var httpResponseMessage = await httpClient.SendAsync(request)) { var responseContent = await httpResponseMessage.Content.ReadAsStringAsync(); return $""status: {(int) httpResponseMessage.StatusCode} content: {responseContent}""; } } catch (Exception e) { return e.ToString(); } } } } } ``` SharedClient parameter controls if requests will use shared (true) or separate httpClients (false), ParallelExecution controls if requests will be executed in parallel (true) or sequentually (true). If you run it with SharedClient=true ParallelExecution=true the program will use shared httpClient for requests and make 5 requests in parallel. In that case it is very probable that a few of these requests fail with ""System.Net.Http.WinHttpException: The server returned an invalid or unrecognized response"" exception. The program with other combinations of parameters works fine." +22196 area-System.Net Fix UAP HttpClient to match behaviors with other platforms regarding invalid status codes Reference: comment in PR https://github.com/dotnet/corefx/pull/22193 The test currently skips the behavior difference on UAP due to WinRT (wininet) behavior differences. ```c# public async Task GetAsync_StatusCodeOutOfRange_ExpectedException(int statusCode) { if (PlatformDetection.IsUap && statusCode == 99) { // UAP platform allows this status code due to historical reasons. return; } ``` Is it possible to workaround this difference and fix it in the .NET layer, i.e. to throw exception when receiving invalid status codes from a server? +22197 area-System.ComponentModel Add BindingList tests and fix a debug assertion +22199 area-System.Drawing Adding System.Drawing.Common.Drawing2D PathGradientBrush tests. #20711 Converting mono **PathGradientBrush** tests and adding few new. #20711 +22201 area-System.Net Reconcile behavior of MaxRequestContentBufferSize across .NET Core The HttpClientHandler property, MaxRequestContentBufferSize, has been deprecated. This PR reconciles the behavior of the getter and setter of the property. Similar to other decisions in HttpClient PRs with these kinds of behavior differences, we are not going to throw PNSE. We will document the differences in the AppCompat docs. Fixes #7879 +22203 area-System.IO "Test: System.IO.Tests.StreamReaderTests/DetectEncoding_EncodingRoundtrips failed with ""System.Reflection.MissingMetadataException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.StreamReaderTests/DetectEncoding_EncodingRoundtrips` has failed. System.Reflection.MissingMetadataException : This operation cannot be carried out because metadata for the following object was removed for performance reasons:\ \ EETypeRva:0x0005EE58\ \ No further information is available. Rebuild in debug mode for better information.\ \ Stack Trace: at xunit.console.netcore!+0xd392c3 at xunit.console.netcore!+0xd384d9 at xunit.console.netcore!+0xd3e0b7 at xunit.console.netcore!+0x88dede at xunit.console.netcore!+0x88502d at V System.Collections.Concurrent.ConcurrentUnifier`2.GetOrAdd(K) + 0x6a at xunit.console.netcore!+0xc04188 at xunit.console.netcore!+0xc045eb at xunit.console.netcore!+0xd37d9c at xunit.console.netcore!+0x96ab02 at xunit.console.netcore!+0x97347d Build : Master - 20170713.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170713.01/workItem/System.IO.Tests/analysis/xunit/System.IO.Tests.StreamReaderTests~2FDetectEncoding_EncodingRoundtrips +22204 area-Serialization "Test: XmlSerializerTests/Xml_VerifyCompilationIssueOnly failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `XmlSerializerTests/Xml_VerifyCompilationIssueOnly` has failed. Assert.Throws() Failure\r Expected: typeof(System.InvalidOperationException)\r Actual: (No exception was thrown) Stack Trace: at T Xunit.Assert.Throws[T](Action) + 0x3b at Void XmlSerializerTests.AssertSerializationFailure[T, ExceptionType]() + 0xab at XmlSerializerTests.Xml_VerifyCompilationIssueOnly() at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x51 at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x43 at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x183 Build : Master - 20170713.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170713.01/workItem/System.Xml.XmlSerializer.ReflectionOnly.Tests/analysis/xunit/XmlSerializerTests~2FXml_VerifyCompilationIssueOnly +22205 area-System.Diagnostics "Test: System.Diagnostics.Tests.ProcessTests/TestExitTime failed with ""TestExitTime is incorrect""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessTests/TestExitTime` has failed. TestExitTime is incorrect. TimeBeforeStart 7/13/17 12:51:12 AM Ticks=636355038728165136, ExitTime=7/13/17 12:51:12 AM, Ticks=636355038727555168, ExitTimeUniversal 7/13/17 12:51:12 AM Ticks=636355038727555168, NowUniversal 7/13/17 12:51:12 AM Ticks=636355038727559263 Expected: True Actual: False Stack Trace: at System.Diagnostics.Tests.ProcessTests.TestExitTime() in /root/corefx/src/System.Diagnostics.Process/tests/ProcessTests.cs:line 149 Build : 2.0.0 - 20170713.01 (Core Tests) Failing configurations: - Ubuntu.1610.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170713.01/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessTests~2FTestExitTime +22206 area-Infrastructure Editor support on Linux / macOS "During a meetup together with @karelz on July 11th I did a talk on contributing to .NET Core. In my talk I talked about the editors you can use with the code base. My conclusion was that on Windows its all fine with Visual Studio, but on other platforms the experience is quite limiting. The contributor docs currently suggest using Visual Studio for Mac on macOS, but it doesn't want to open the project files at all. It gives me the following error: ``` Error while trying to load the project 'corefx/src/System.Security.Cryptography.Algorithms/ref/System.Security.Cryptography.Algorithms.csproj': Project does not support framework '.NETPortable, Version=v4.5' ``` My best bet currently is Visual Studio Code since I can at least open and edit the files. Unfortunately there's no IntelliSense support there, due to the following error: ``` [info]: OmniSharp.MSBuild.MSBuildProjectSystem Loading project: /Users/jmezach/Projects/open-source/dotnet/corefx/src/System.Security.Cryptography.Algorithms/ref/System.Security.Cryptography.Algorithms.csproj [warn]: OmniSharp.MSBuild.MSBuildProjectSystem Failed to load project file '/Users/jmezach/Projects/open-source/dotnet/corefx/src/System.Security.Cryptography.Algorithms/ref/System.Security.Cryptography.Algorithms.csproj'. /Users/jmezach/Projects/open-source/dotnet/corefx/src/System.Security.Cryptography.Algorithms/ref/System.Security.Cryptography.Algorithms.csproj(1,1) Microsoft.Build.Exceptions.InvalidProjectFileException: The imported project ""/Users/jmezach/.vscode/extensions/ms-vscode.csharp-1.11.0/bin/xbuild/Microsoft/Portable/v4.5/Microsoft.Portable.CSharp.targets"" was not found. Also, tried to find ""Microsoft/Portable/v4.5/Microsoft.Portable.CSharp.targets"" in the fallback search path(s) for $(MSBuildExtensionsPath32) - ""/Library/Frameworks/Mono.framework/External/xbuild/"" . These search paths are defined in ""/Users/jmezach/.vscode/extensions/ms-vscode.csharp-1.11.0/bin/omnisharp/OmniSharp.exe.config"". Confirm that the path in the declaration is correct, and that the file exists on disk in one of the search paths. /Users/jmezach/Projects/open-source/dotnet/corefx/Tools/FrameworkTargeting.targets at Microsoft.Build.Shared.ProjectErrorUtilities.ThrowInvalidProject (System.String errorSubCategoryResourceName, Microsoft.Build.Shared.IElementLocation elementLocation, System.String resourceName, System.Object[] args) [0x00067] in :0 at Microsoft.Build.Shared.ProjectErrorUtilities.ThrowInvalidProject (Microsoft.Build.Shared.IElementLocation elementLocation, System.String resourceName, System.Object[] args) [0x00001] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].ThrowForImportedProjectWithSearchPathsNotFound (Microsoft.Build.Evaluation.ProjectImportPathMatch searchPathMatch, Microsoft.Build.Construction.ProjectImportElement importElement) [0x000ae] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].ExpandAndLoadImports (System.String directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement) [0x0027f] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].EvaluateImportElement (System.String directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement) [0x00001] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].PerformDepthFirstPass (Microsoft.Build.Construction.ProjectRootElement currentProjectOrImport) [0x0036c] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].EvaluateImportElement (System.String directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement) [0x00031] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].PerformDepthFirstPass (Microsoft.Build.Construction.ProjectRootElement currentProjectOrImport) [0x0036c] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].EvaluateImportElement (System.String directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement) [0x00031] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].PerformDepthFirstPass (Microsoft.Build.Construction.ProjectRootElement currentProjectOrImport) [0x0036c] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].EvaluateImportElement (System.String directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement) [0x00031] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].PerformDepthFirstPass (Microsoft.Build.Construction.ProjectRootElement currentProjectOrImport) [0x0036c] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].EvaluateImportElement (System.String directoryOfImportingFile, Microsoft.Build.Construction.ProjectImportElement importElement) [0x00031] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].PerformDepthFirstPass (Microsoft.Build.Construction.ProjectRootElement currentProjectOrImport) [0x0036c] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].Evaluate () [0x00055] in :0 at Microsoft.Build.Evaluation.Evaluator`4[P,I,M,D].Evaluate (Microsoft.Build.Evaluation.IEvaluatorData`4[P,I,M,D] data, Microsoft.Build.Construction.ProjectRootElement root, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings, System.Int32 maxNodeCount, Microsoft.Build.Collections.PropertyDictionary`1[T] environmentProperties, Microsoft.Build.BackEnd.Logging.ILoggingService loggingService, Microsoft.Build.Evaluation.IItemFactory`2[S,T] itemFactory, Microsoft.Build.Evaluation.IToolsetProvider toolsetProvider, Microsoft.Build.Evaluation.ProjectRootElementCache projectRootElementCache, Microsoft.Build.Framework.BuildEventContext buildEventContext, Microsoft.Build.Execution.ProjectInstance projectInstanceIfAnyForDebuggerOnly) [0x0001a] in :0 at Microsoft.Build.Evaluation.Project.Reevaluate (Microsoft.Build.BackEnd.Logging.ILoggingService loggingServiceForEvaluation, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings) [0x0003c] in :0 at Microsoft.Build.Evaluation.Project.ReevaluateIfNecessary (Microsoft.Build.BackEnd.Logging.ILoggingService loggingServiceForEvaluation, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings) [0x00040] in :0 at Microsoft.Build.Evaluation.Project.ReevaluateIfNecessary (Microsoft.Build.BackEnd.Logging.ILoggingService loggingServiceForEvaluation) [0x00001] in :0 at Microsoft.Build.Evaluation.Project.ReevaluateIfNecessary () [0x00008] in :0 at Microsoft.Build.Evaluation.Project.Initialize (System.Collections.Generic.IDictionary`2[TKey,TValue] globalProperties, System.String toolsVersion, System.String subToolsetVersion, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings) [0x00108] in :0 at Microsoft.Build.Evaluation.Project..ctor (System.String projectFile, System.Collections.Generic.IDictionary`2[TKey,TValue] globalProperties, System.String toolsVersion, System.String subToolsetVersion, Microsoft.Build.Evaluation.ProjectCollection projectCollection, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings) [0x000bb] in :0 at Microsoft.Build.Evaluation.Project..ctor (System.String projectFile, System.Collections.Generic.IDictionary`2[TKey,TValue] globalProperties, System.String toolsVersion, Microsoft.Build.Evaluation.ProjectCollection projectCollection, Microsoft.Build.Evaluation.ProjectLoadSettings loadSettings) [0x00000] in :0 at Microsoft.Build.Evaluation.Project..ctor (System.String projectFile, System.Collections.Generic.IDictionary`2[TKey,TValue] globalProperties, System.String toolsVersion, Microsoft.Build.Evaluation.ProjectCollection projectCollection) [0x00000] in :0 at Microsoft.Build.Evaluation.ProjectCollection.LoadProject (System.String fileName, System.Collections.Generic.IDictionary`2[TKey,TValue] globalProperties, System.String toolsVersion) [0x00135] in :0 at Microsoft.Build.Evaluation.ProjectCollection.LoadProject (System.String fileName, System.String toolsVersion) [0x00001] in :0 at Microsoft.Build.Evaluation.ProjectCollection.LoadProject (System.String fileName) [0x00001] in :0 at OmniSharp.MSBuild.ProjectFile.ProjectFileInfo.LoadProject (System.String filePath, System.String solutionDirectory, System.String sdksPath, Microsoft.Extensions.Logging.ILogger logger, OmniSharp.Options.MSBuildOptions options, System.Collections.Generic.ICollection`1[T] diagnostics, System.Collections.Immutable.ImmutableArray`1[System.String]& targetFrameworks) [0x00062] in <4547000d373140b29fc6ad48137693ba>:0 at OmniSharp.MSBuild.ProjectFile.ProjectFileInfo.Create (System.String filePath, System.String solutionDirectory, System.String sdksPath, Microsoft.Extensions.Logging.ILogger logger, OmniSharp.Options.MSBuildOptions options, System.Collections.Generic.ICollection`1[T] diagnostics) [0x0000a] in <4547000d373140b29fc6ad48137693ba>:0 at OmniSharp.MSBuild.MSBuildProjectSystem.LoadProject (System.String projectFilePath) [0x0003f] in <4547000d373140b29fc6ad48137693ba>:0 ``` Karel encouraged me to post the issue here to see what we can do about this. My guess is that it's not going to be an easy fix since it has do with the project system. Someone at the meetup did make a remark that JetBrains Rider can open the project files, but I haven't yet tried that myself." +22207 area-System.Drawing Cleanup interop code in System.Drawing +22210 area-Infrastructure Add xunit.analyzers to corefx infrastructure I just saw a PR in Roslyn: https://github.com/dotnet/roslyn/pull/20814 The Anlayzer found multiple missing facts, etc. Etc. This could benefit corefx as well. I'm not sure how to integrate this in a non-intrusive way - VS integration by default would be a super plus +22211 area-System.Security The type 'ECCurve' exists in both 'System.Core' and 'System.Security.Cryptography.Algorithms' when targeting .NET Framework 4.7 I'm currently porting my ASP.NET Core OIDC server from 1.0 to 2.0 and I'm facing a strange error that appears in a class library targeting `netstandard2.0`, `netcoreapp2.0` and `net47` and using the new `ECCurve` type (introduced in `netstandard1.6` and `net47`): > The type 'ECCurve' exists in both 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' and 'System.Security.Cryptography.Algorithms, Version=4.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' https://github.com/PinpointTownes/AspNet.Security.OpenIdConnect.Server/blob/31f43c4769d5400ab0f09760a5bb631807916a75/src/AspNet.Security.OpenIdConnect.Server/AspNet.Security.OpenIdConnect.Server.csproj https://ci.appveyor.com/project/aspnet-contrib/aspnet-security-openidconnect-server/build/1.0.0-rtm-1262#L353 I spent a few hours trying to make a repro, but unsuccessfully. Any tips that would allow me to determine why this compilation error occurs when targeting `net47` would be much appreciated! :sweat_smile: +22215 area-Infrastructure Cannot install Microsoft.NETCore.UniversalWindowsPlatform as NuGet dependency for .NET Core Library "I suppose this is more of a ""known issue"" or even possibly a ""by design,"" but according to the breakdown chart of the different .NET frameworks and how everything fits together with .NET Core 1.0 and now 2.0, shouldn't `Microsoft.NETCore.UniversalWindowsPlatform` be available as a package that can be installed as a dependency for any .NET Core project, though only available on Windows? As it currently stands, creating a .NET Framework library in Visual Studio 2017 (15.3 preview), setting to netstandard1.3, and then attempting to install `Microsoft.NETCore.UniversalWindowsPlatform` leads to package install errors." +22217 area-System.IO Fix System.IO.Tests failure on ILC. More xunit/metadata interaction. +22222 area-Infrastructure ILC Failed to compile to test projects in multi file mode ILC failed to compile System.Linq.Expressions.Tests and System.Runtime.Tests in multi file mode. Multi file is enabled in: - Release-x64 - Debug-x86 cc: @joshfree +22223 area-System.Linq Remove unnecessary store/loads from in S.L.Expression Cases in `EmitNonNullableToNullableConversion` and `EmitNullableToNullableConversion` where values are stored just to be loaded again. +22225 area-System.Linq Have S.L.Expressions produce shorter IL for integral NegateChecked When non-nullable there's an unnecessary cast of 0 for short and sbyte, and an unnecessary store/load that can be removed. When nullable the output is roughly like: ``` T? temp = Evaluate(operand); T? zero = (T?)(T)0; result = temp.HasValue & zero.HasValue ? (T?)(zero.GetValueOrDefault() - temp.GetValueOrDefault()) : default(T?); ``` Instead produce code closer to: ``` T? temp = Evaluate(operand); result = temp.GetValueOrDefault() != 0 ? (T?)(0 - temp.GetValueOrDefault()) : temp; +22228 area-System.Net [Port to 2.0] Fix failing tests on OSX 2.0 branch. cc @Petermarcu @bartonjs fixes #22089 #22090 +22229 area-System.Security RSAKeyValue.LoadXml not working when XmlElement input has namespace prefix. "Hello, guys! When I used the method LoadXml from RSAKeyValue.cs, I was always receiving the following exception: `System.Security.Cryptography.CryptographicException: 'Root element must be KeyValue element in namepsace http://www.w3.org/2000/09/xmldsig#'` After searching for some bug, I've found that the second IF statement inside LoadXml is verifying if value.Name (instead of value.LocalName) is different from ""KeyValue"". Because of that, when this method receives any XmlElement that has namespace prefix, it will throw the exception above. Code with the bug: ```csharp if (value.Name != KeyValueElementName || value.NamespaceURI != SignedXml.XmlDsigNamespaceUrl) { throw new CryptographicException($""Root element must be {KeyValueElementName} element in namepsace {SignedXml.XmlDsigNamespaceUrl}""); } ``` How I think it should be: ```csharp if (value.LocalName != KeyValueElementName || value.NamespaceURI != SignedXml.XmlDsigNamespaceUrl) { throw new CryptographicException($""Root element must be {KeyValueElementName} element in namepsace {SignedXml.XmlDsigNamespaceUrl}""); } ``` By the way, you could also fix the ""namepsace"" inside the CryptographicException message hehe. Thanks!" +22232 area-System.Drawing Remove System.Security.Permissions dependency from System.Drawing.Common. We do not care about these attributes in .NET Core, and by removing them we can remove the dependency on System.Security.Permissions. Part of https://github.com/dotnet/corefx/issues/20706 @akoeplinger Does mono care about these security attributes? I can accommodate that, if necessary. +22233 area-System.Drawing Consider removing ConfigurationManager dependency from System.Drawing.Common "The only usage of ConfigurationManager is in this internal class: https://github.com/dotnet/corefx/blob/master/src/System.Drawing.Common/src/System/Drawing/BitmapSelector.cs#L33 In turn, `BitmapSelector` is only used by one public type: https://github.com/dotnet/corefx/blob/master/src/System.Drawing.Common/src/System/Drawing/ToolboxBitmapAttribute.cs There is already a ""graceful"" fallback path if there is no ""system.drawing"" ConfigurationSection defined, so we can easily just delete it. I find it extremely unlikely that anybody would ever care about this functionality going away: it looks incredibly obscure, and not that useful in the first place. The main use case seems to be for UI designers (like the VS WinForms designer), to select different bitmaps with. The .NET Core version of the library likely won't ever be used for that. Thoughts @hughbe @stephentoub ?" +22235 area-System.Net Fixing ClientWebSockets event source in ILC These changes unblock reflection for the ClientWebSockets event source by following @brianrob's guidance (see #20470 for full context). I have confirmed that _Microsoft-System-Net-WebSockets-Client_ logging works fine on UAPAOT post-fix and the LoggingTest passes as well. I'll do the same thing for the other System.Net event sources if/when this PR is approved. Contributes to #20470 +22236 area-System.Data SqlClient - ManagedSNI doesn't work on Windows? "In **System.Data.SqlClient** solution in **System.Data.SqlClient.Tests** I created a small simple test with the following code: ``` [Fact] public static void SimpleTest() { string cs = @""Server=.\SQLEXPRESS;Database=...;User Id=...;Password=...;""; using (var connection = new SqlConnection(cs)) { connection.Open(); } } ``` the SQL Server is running and the test passes. But if I go to the TdsParserStateObjectFactory.Windows.cs and change `UseManagedSNI = false` to `true` -- the tests fails with ``` System.Net.Sockets.SocketException: 'An existing connection was forcibly closed by the remote host' at DoBeginReceiveFrom(...) ``` Am I doing something wrong or ManagedSNI mode doesn't work on Windows at the moment?" +22237 area-System.Net Enabling ILC reflection for certain types in System.Net.Primitives. System.Net.HttpListener is temporarily (actual fix tracked by #13607) relying on reflection to access internal Cookie and CookieCollection members from System.Net.Primitives. This is allowing the temporary workaround in UWPAOT. /cc @Priya91 Fixes #20482 Fixes #22056 +22239 area-System.Net Port TFS WinRT interop tests for HttpClient for UAP Bring over the last of the WinRT interop tests for HttpClient. These tests deal with interop between WinRT stream classes and .NET stream classes. Fixes #9044 +22241 area-System.Data Add more uapaot #if checks in SqlXml to exclude unnecessary code that's causing debug assert failures during uap test runs. There was some unnecessary code leftover from this SqlXml commit, which was causing some debug asserts to fail during uap test runs. https://github.com/dotnet/corefx/commit/9e36f6355340336f9950987d18f76e398fd4f5ef +22242 area-System.Net Use a shared MultiAgent in CurlHandler when using LibreSSL backend on macOS LibreSSL needs locks initialized in order to be used safely from multiple threads, which happens when multiple HttpClients are used. But we don't currently have a good way to perform that initialization as we do for OpenSSL. As a workaround, add a shared MultiAgent that's initialized when LibreSSL is used on macOS, and use that same MultiAgent from all CurlHandler instances rather than giving each their own. Since MultiAgent is 1:1 with a thread, all HttpClient's will then end up sharing the same libcurl event loop thread, and we'll serialize all of our interactions with libcurl and thus hopefully with LibreSSL. cc: @bartonjs, @geoffkizer, @nguerrera, @Petermarcu +22243 area-System.Net release/2.0: Use a shared MultiAgent in CurlHandler when using LibreSSL backend on macOS LibreSSL needs locks initialized in order to be used safely from multiple threads, which happens when multiple HttpClients are used. But we don't currently have a good way to perform that initialization as we do for OpenSSL. As a workaround, add a shared MultiAgent that's initialized when LibreSSL is used on macOS, and use that same MultiAgent from all CurlHandler instances rather than giving each their own. Since MultiAgent is 1:1 with a thread, all HttpClient's will then end up sharing the same libcurl event loop thread, and we'll serialize all of our interactions with libcurl and thus hopefully with LibreSSL. cc: @bartonjs, @geoffkizer, @nguerrera, @Petermarcu +22244 area-System.Diagnostics UAPAOT: System.Diagnostics.Tests.ProcessStartInfoTests/StartInfo_NotepadWithContent(useShellExecute: False) Failed in Outerloop during validation for #22237: https://mc.dot.net/#/user/CIPop/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/343581b48553b789c3a92222e109b9d4b07927c1/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessStartInfoTests~2FStartInfo_NotepadWithContent(useShellExecute:%20False) ``` Windows.10.Amd64.ClientRS2.Open-Debug-x64 Unhandled Exception of Type System.InvalidOperationException Message : System.InvalidOperationException : WaitForInputIdle failed. This could be because the process does not have a graphical interface. Stack Trace : at System.Diagnostics.Process.WaitForInputIdleCore(Int32 milliseconds) at System.Diagnostics.Process.WaitForInputIdle(Int32 milliseconds) at System.Diagnostics.Process.WaitForInputIdle() at System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_NotepadWithContent(Boolean useShellExecute) ``` +22245 area-System.IO Add a replacement for IsPathRooted that actually returns if a path is relative "As [mentioned previously](https://github.com/dotnet/corefx/issues/21933), for better or worse, we use Uri over the Path APIs in Visual Studio due to two main reasons, this represents the first reason. Windows [docs state](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx) (emphasis mine) and IsPathRooted implements this behavior: > **Fully Qualified vs. Relative Paths** > For Windows API functions that manipulate files, file names can often be relative to the current directory, while some APIs require a fully qualified path. _**A file name is relative to the current directory if it does not begin**_ with one of the following: > - A UNC name of any format, which always start with two backslash characters (""\\""). For more information, see the next section. > - A disk designator with a backslash, for example ""C:\"" or ""d:\"". > - **_A single backslash, for example, ""\directory"" or ""\file.txt"". This is also referred to as an absolute path._** However, that last point is incorrect. A path of `\directory' or '\file.txt' is treated as _relative_ to the root of the current directory as this clearly demonstrates: ``` C# Environment.CurrentDirectory = @""C:\Temp""; Console.WriteLine(Path.GetFullPath(@""\Foo"")); Environment.CurrentDirectory = @""D:\""; Console.WriteLine(Path.GetFullPath(@""\Foo"")); ``` Which outputs: ``` C:\Foo D:\Foo ``` Inside VS we need to answer; _will this path change based on the current directory?_. IsPathRooted does not supply that - whereas, Uri does: ``` C# Console.WriteLine(""Path.IsPathRooted: "" + Path.IsPathRooted(@""\Foo"")); Console.WriteLine(""Uri.TryCreate: "" + Uri.TryCreate(@""\Foo"", UriKind.Absolute, out Uri result)); ``` Which outputs: ``` Path.IsPathRooted: True Uri.TryCreate: False ``` I suspect what Windows docs is referring to and what IsPathRooted is actually handling, is the _device namespace_, such as `\Device\HarddiskVolume4` but as far as I'm aware you cannot use that syntax via Win32, you need to prepend; `\\.\`." +22246 area-System.Linq Don't double-cast in nullable-to-nullable coalesce S.L.Expressions If a coalesce of a nullable has the same type as the expression (e.g. `x ?? y` if both `x` and `y` are int?) then not looking for this case means if the lhs isn't null it's cast to non-nullable then back to nullable again. Instead catch this case and just use the left hand value as the result. +22247 area-System.Security Add net47 configuration to System.Security.Cryptography.Algorithms Fix NETStandard.Library.NETFramework package targets Update the VerifyDuplicateTypes target to include framework assemblies to ensure we don't have any conflicting types between the framework and our OOBs. cc @bartonjs @ericstj Fixes #22211 +22248 area-System.Security Add net47 configuration to System.Security.Cryptography.Algorithms Fix NETStandard.Library.NETFramework package targets Update the VerifyDuplicateTypes target to include framework assemblies to ensure we don't have any conflicting types between the framework and our OOBs. cc @bartonjs @ericstj Fixes #22211 Port of https://github.com/dotnet/corefx/pull/22247. Preparing PR in case we can take it for 2.0 but don't have approval yet. +22251 area-System.Net InvalidCastException randomly thrown in WinHttpHandler I haven't been able to repro this since it occured, but am looking into seeing what caused this. Moved from https://github.com/aspnet/Diagnostics/issues/394 ``` fail: Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[0] An unhandled exception has occurred while executing the request System.InvalidCastException: [A]<>f__AnonymousType0`3[System.Net.Http.HttpRequestMessage,System.Guid,System.Int64] cannot be cast to [B]<>f__AnonymousType0`3[System.Net.Http.HttpRequestMessage,System.Guid,System.Int64]. Type A originates from 'System.Net.Http.WinHttpHandler, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' in the context 'Default' at location 'C:\Users\hugh\.nuget\packages\system.net.http.winhttphandler\4.3.0\runtimes\win\lib\netstandard1.3\System.Net.Http.WinHttpHandler.dll'. Type B originates from 'System.Net.Http, Version=4.1.1.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' in the context 'Default' at location 'C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.2\System.Net.Http.dll'. at Microsoft.ApplicationInsights.DependencyCollector.Implementation.PropertyFetcher.PropertyFetch.TypedFetchProperty`2.Fetch(Object obj) at Microsoft.ApplicationInsights.DependencyCollector.Implementation.HttpCoreDiagnosticSourceListener.OnNext(KeyValuePair`2 evnt) at System.Diagnostics.DiagnosticListener.Write(String name, Object value) at System.Net.Http.HttpHandlerDiagnosticListenerExtensions.LogHttpRequestCore(DiagnosticListener diagnosticListener, HttpRequestMessage request) at System.Net.Http.WinHttpHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpMessageInvoker.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken) at System.Net.Http.HttpClient.GetAsync(Uri requestUri, HttpCompletionOption completionOption, CancellationToken cancellationToken) at System.Net.Http.HttpClient.GetStringAsync(Uri requestUri) at System.Net.Http.HttpClient.GetStringAsync(String requestUri) at Facebook.GraphClient.d__20`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at Facebook.GraphClient.d__18`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at AsiaChat.Controllers.PageController.d__19.MoveNext() in C:\Users\hugh\Documents\GitHub\asia-chat\src\backend\AsiaChat.WebAPI\Controllers\PageController.cs:line 232 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at AsiaChat.Controllers.PageController.d__16.MoveNext() in C:\Users\hugh\Documents\GitHub\asia-chat\src\backend\AsiaChat.WebAPI\Controllers\PageController.cs:line 176 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__27.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__25.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__24.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ExceptionContext context) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__22.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ResourceExecutedContext context) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__20.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Builder.RouterMiddleware.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.d__7.MoveNext() info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2] Request finished in 1851.0059ms 500 text/html; charset=utf-8 ``` +22252 area-System.Diagnostics "Test: System.Diagnostics.Tests.ProcessCollectionTests/TestThreadCollectionBehavior failed with ""System.PlatformNotSupportedException : GetProcessInfoNotSupported""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessCollectionTests/TestThreadCollectionBehavior` has failed. System.PlatformNotSupportedException : GetProcessInfoNotSupported. For more information, visit http://go.microsoft.com/fwlink/?LinkId=623485 Stack Trace: at ProcessInfo System.Diagnostics.ProcessManager.GetProcessInfo(Int32, String) + 0x7c at Void System.Diagnostics.Process.EnsureState(Process+State) + 0x94 at System.Diagnostics.Process.get_Threads() at System.Diagnostics.Tests.ProcessCollectionTests.TestThreadCollectionBehavior() at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x37 at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x43 at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x183 Build : Master - 20170714.02 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170714.02/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessCollectionTests~2FTestThreadCollectionBehavior +22253 area-System.Diagnostics "Test: System.Diagnostics.Tests.ProcessTests/CloseMainWindow_NotStarted_ThrowsInvalidOperationException failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessTests/CloseMainWindow_NotStarted_ThrowsInvalidOperationException` has failed. Assert.Throws() Failure\r Expected: typeof(System.InvalidOperationException)\r Actual: (No exception was thrown) Stack Trace: at System.Diagnostics.Tests.ProcessTests.CloseMainWindow_NotStarted_ThrowsInvalidOperationException() at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x37 at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x43 at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x183 Build : Master - 20170714.02 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170714.02/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessTests~2FCloseMainWindow_NotStarted_ThrowsInvalidOperationException +22254 area-System.Diagnostics "Test: System.Diagnostics.Tests.ProcessTests/HandleCountChanges failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessTests/HandleCountChanges` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -323331298 Stack Trace: at Void System.Diagnostics.RemoteExecutorTestBase+RemoteInvokeHandle.Dispose() + 0xce at System.Diagnostics.Tests.ProcessTests.HandleCountChanges() at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x37 at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x43 at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x183 Build : Master - 20170714.02 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170714.02/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessTests~2FHandleCountChanges +22256 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test/InvalidCertificateServers_CertificateValidationDisabled_Succeeds(url: \""https://expired.badssl.c... failed with ""System.Net.Http.WinHttpException : The handle is invalid""" "Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test/InvalidCertificateServers_CertificateValidationDisabled_Succeeds(url: \""https://expired.badssl.c...` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Net.Http.WinHttpException : The handle is invalid Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.WinHttpException.ThrowExceptionUsingLastError() at System.Net.Http.WinHttpHandler.SetRequestHandleRedirectionOptions(SafeWinHttpHandle requestHandle) at System.Net.Http.WinHttpHandler.SetRequestHandleOptions(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : 2.0.0 - 20170714.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170714.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FInvalidCertificateServers_CertificateValidationDisabled_Succeeds(url:%20%5C%22https:~2F~2Fexpired.badssl.c..." +22257 area-Serialization Feature request: async DataContractSerializer methods As for now, `DataContractSerializer` does serialization/deserialization in synchronous style. But, `Stream`, `TextWriter` and `TextReader` does have async methods. As async programming is widely used today, to serialize/deserialize data contracts, developer should manually schedule background task to achieve async data contracts serialization/deserialization on stream (which itself does support async I/O out of the box!) I propose extend DataContractSerializer to have built-in task-based async serialization/deserialization methods. +22258 area-Microsoft.CSharp Make Microsoft.CSharp.RuntimeBinder.Semantics.CType.StripNubs virtual and not loop The `T??` case can't happen since we're basing our types on actual existing so there are only two cases; it's called on `NullableType`, in which case we return `UnderlyingType` or it's called on something else, in which case we return `this`. We can also report with boolean instead of int in the overload that reports on number of times is stripped a nullable, and so replace a dependent loop with a branch. +22259 area-Microsoft.CSharp Remove CType.isSpecialByRefType in Microsoft.CSharp Always false, so remove it and branches that depend on it being true. +22264 area-System.Diagnostics System.Diagnostics.Process.MainModule.FileName has junk characters in the prefix on UAP (Test case will be added soon, creating issue so that I can disable that in the PR) Junk characters might be BOM or Xunit display error ``` ERROR: System.Diagnostics.Tests.ProcessTests.TestMainModuleOnNonOSX [FAIL] Assert.EndsWith() Failure: Expected: xunit.runner.uap.exe Actual: ┬╖┬╖┬╖XUnit.Runner.Uap.exe ``` +22266 area-System.Diagnostics [S.D.Process] TestProcessStartTime throws NRE on UAP (Test case will be added soon, creating issue so that I can disable that in the PR) ``` ERROR: System.Diagnostics.Tests.ProcessTests.TestProcessStartTime [FAIL] System.NullReferenceException : Object reference not set to an instance of an object. ``` +22267 area-System.Net Make ManagedHandler ConnectionPoolingTest clean itself up ManagedHandler_HttpClientHandler_ConnectionPooling_Test didn't assert IDisposable (though did have a Dispose method), so it didn't clear the environment variable that says to use the prototype managed handler in tests. This means that any tests which should still be using the curl provider end up using the managed provider until another managed test runs. So now it's disposable, and a failure we were expecting, but not seeing, on macOS 10.13 is asserting itself again. Solves the conundrum from https://github.com/dotnet/corefx/issues/22089#issuecomment-315383328. +22268 area-System.Diagnostics [S.D.Process] CloseMainWindow_NotStarted_ThrowsInvalidOperationException does not throw (Test case will be added soon, creating issue so that I can disable that in the PR) I believe we should be able to throw even on UAP since we can detect that process is not started. On the other hand we might need to be consistent with non throwing behavior because MainWindowHandle is not supported ``` ERROR: System.Diagnostics.Tests.ProcessTests.CloseMainWindow_NotStarted_ThrowsInvalidOperationException [FAIL] Assert.Throws() Failure Expected: typeof(System.InvalidOperationException) Actual: (No exception was thrown) ``` +22269 area-System.Diagnostics System.Diagnostics.Tests.ProcessWaitingTests.WaitForPeerProcess fails with NRE on UAP (Test case will be added soon, creating issue so that I can disable that in the PR) ``` ERROR: System.Diagnostics.Tests.ProcessWaitingTests.WaitForPeerProcess [FAIL] System.AggregateException : One or more errors occurred. (Object reference not set to an instance of an object.) (Object reference not s et to an instance of an object.) ---- System.NullReferenceException : Object reference not set to an instance of an object. ---- System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: ----- Inner Stack Trace #1 (System.NullReferenceException) ----- at System.Diagnostics.Tests.ProcessWaitingTests.WaitForPeerProcess() ----- Inner Stack Trace #2 (System.NullReferenceException) ----- at System.Diagnostics.Tests.ProcessTestBase.Dispose(Boolean disposing) at System.IO.FileCleanupTestBase.Dispose() at ReflectionAbstractionExtensions.DisposeTestClass(ITest test, Object testClass, IMessageBus messageBus, ExecutionTimer timer, Can cellationTokenSource cancellationTokenSource) ``` +22270 area-System.Diagnostics Fix all S.D.Process tests on UAP Fixes: https://github.com/dotnet/corefx/issues/22174 (fixes/disables with better reason around 90 tests) Possibly fixes: https://github.com/dotnet/corefx/issues/18210 (need to check if testcase is passing on uapaot after changes) Opened: - https://github.com/dotnet/corefx/issues/22264 - https://github.com/dotnet/corefx/issues/22266 - https://github.com/dotnet/corefx/issues/22268 - https://github.com/dotnet/corefx/issues/22269 Related issues: - https://github.com/dotnet/corefx/issues/21483 @tarekgh thank you for great help debugging issues Currently some of the test cases are not applicable on uap because RemoteInvoke does not return Process back. Most of the tests do not require to run RemoteInvoke against UAP. This PR adds tiny implementation of RemoteInvoke which runs remotely as netfx inside app container and thus many scenarios are easily unblocked +22271 area-System.IO Enable NamedPipe tests against updated Windows build When fixing #21392 we discovered a regression that was made after RS1 on the `WaitNamedPipe()` PInvoke when running inside an appcontainer. This has now been fixed for RS3, but since we are running our CI tests in RS2 then those tests will hang forever. I have already validated that in RS3 all the tests disabled by this issue are passing succesfully. This issue is to track the work of re-enabling those tests once we are running our CI on RS3. This bug will obviously go beyond ZBB. cc: @JeremyKuhne @AlexGhiondea @joshfree +22272 area-Infrastructure Enable UWP multi-file test runs for the ARM32 Release configuration #21154 calls for the enabling of Multi-File x86 and ARM runs - x86 Multi-File has already been added so the only thing left to do is ARM. I verified this on my local machine by building uapaot arm release and checking to see if the Shared Assembly is present in the TestILC path. I also verified that the Shared Assembly is not present after building ARM debug. +22273 area-System.IO Move NamedPipe tests to use Local prefix Fixes #21392 Opens #22271 cc: @JeremyKuhne @stephentoub - Fix NamedPipes tests when running in AppContainer so that they use Local as a prefix - Disable tests that depend on WaitNamedPipe since there was a regression after RS1 on kernel32.dll. I have validated that the fix that will com on RS3 will pass all of the tests disabled by this PR. +22276 area-System.IO IOException message for ERROR_SHARING_VIOLATION should say which process ID(s) are holding the file "It would be great that instead of saying: >The process cannot access the file '{0}' because it is being used by another process."" The error message would be: >The process cannot access the file '{0}' because it is being used by process ID {1}."" Originally by @stephentoub had written code that could do this for the article ""Restart Manager and Generic Method Compilation"" https://msdn.microsoft.com/sl-si/magazine/mt149362?author=stephen+toub https://web.archive.org/web/20140403112957/https://msdn.microsoft.com/en-us/magazine/cc163450.aspx" +22279 area-System.Net Disable ping tests against specific issue Updating ActiveIssue annotations to point to the specific issue that's tracking System.Net.NetworkInformation.Ping not working inside an AppContainer. Contributes to #19583 +22281 area-System.Data Make DataCommonEventSource members public on uapaot, since reflection needed for EventSource functionality is blocked in UAP for nonpublic members. Fixes https://github.com/dotnet/corefx/issues/20589 The EventName for the DataCommonEventSource is retrieved via reflection, which is blocked for nonpublic members on UAP. This leads to failures in the above test, since the TestEventListener enables an event only if its name matches the expected EventSource name. TestEventListener code: https://github.com/dotnet/corefx/blob/master/src/Common/tests/System/Diagnostics/Tracing/TestEventListener.cs#L81 This change is similar to changes in other EventSources. For example: https://github.com/dotnet/corefx/pull/22235 No contract changes are required for this change. +22282 area-System.Net Implementing Stream.*Async overrides in HttpResponseStream/HttpRequestStream Fixes #22066 Contributes to #22110 For #22110: HttpResponseStreamTests will pass on my machine without hanging after my changes; however, HttpRequestStreamTests will still hang. As @CIPop [has mentioned, ](https://github.com/dotnet/corefx/issues/22110#issuecomment-315476167)it's hard to diagnose the hang because we can't trace. +22283 area-System.Threading Enable reflection for DataflowEtwProvider and fix #20592. +22284 area-System.Diagnostics [DiagnosticsSource] http correlation protocol should not force to make Request-Id unique "Http correlation protocol is designed defensively to protect from bad callers. Many tracing systems are used in enclosed systems with trusted callers. These systems may benefit having shorter identifiers. Proposal is to 1. change protocol description and 2. provide a way to enable ""trusted callers"" mode in built-in .NET instrumentation [HTTP Correlation Protocol](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/HttpCorrelationProtocol.md) states: > When Request-Id is provided by upstream service, there is no guarantee that it is unique within the entire system. Implementation SHOULD make it unique by adding small suffix to incoming Request-Id to represent internal activity and use it for outgoing requests, see more details in Hierarchical Request-Id document. [Hierarchical request format](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/HierarchicalRequestId.md) states: > Implementation SHOULD make it unique by adding small suffix to incoming Request-Id to represent internal activity and use it for outgoing requests. If implementation does not trust incoming Request-Id in the least, suffix may be as long as Root Request Id. We recommend appending random string of 8 characters length (e.g. 32-bit hex-encoded random integer). CC: @jacpull @lmolkova @vancem " +22286 area-Serialization Fixes for CollectionDataContract in ReflectionOnly Mode. PR #21688 uncovered a few issues with CollectionDataContract in ReflectionOnly mode. The PR is to fix those issues. See the tests in [DCS_BasicPerSerializerRoundTripAndCompare_SampleTypes_FailInReflectionOnly](https://github.com/dotnet/corefx/pull/21688/files#diff-842d4b05f36c1089c037e1b2e53908ecR3479). The PR fixed the following issues: 1. When writing collection object the element type of the collection was not correctly set, which caused the type info was not correctly written in the payload. Test type: `SampleListTExplicitWithoutDC`. The fix is ported from `XmlFormatWriterGenerator.CriticalHelper.WriteCollection`. 2. DCS couldn't correctly de-serialize generic dictionary in certain cases. Test type: `MyGenericIDictionaryKVContainsPublicDC`. 3. DCS couldn't de-serialize collection type with private `Add` method. Test type: `CDC_PrivateAdd`. 4. DCS couldn't de-serialize collection type with private constructor. Test type: `CDC_PrivateDefaultCtor`. With the PR, the tests in that method should all pass. +22289 area-Infrastructure "Use POSIX ""command"" instead of non-standard ""which""" Re-apply https://github.com/dotnet/coreclr/pull/8823 that got somehow lost +22292 area-System.IO System.IO.Compression.ZipArchiveEntry: Add Crc32 Property "ZipArchiveEntry should get a ""Crc"" Propery. # Rationale and Usage ZIP Files are frequently used as a Backup Medium. To rapidly check the ZIP Contents against other File-Copies it would be most efficient to expose the already existing _crc32 Field as a Read-Only Property. This would save having to extract and compare File Contents Byte-wise when checking whether a File has different Content. # Proposed API-Addition and Implementation: ```c# class ZipArchiveEntry { public uint Crc { get } // return _crc32; } ``` EDIT: Added code formatting + added class to the API proposal by @karelz" +22293 area-System.Runtime How can I detect my code is running on top of .net core? "```csharp public class PlatformUtilities { public static bool IsRunningOnMono { get { return Type.GetType(""Mono.Runtime"") != null; // I need something like this. } } public static bool IsRunningOnDotNetCore { get { // What should I return here? } } } ``` Thanks in advance." +22294 area-Infrastructure Detected package downgrade "Hi. I have encountered the following issue. `Detected package downgrade: Microsoft.NETCore.App from 2.0.0-preview3-25514-02 to 2.0.0-preview2-006497` while executing `dotnet restore` over a project with following csproj: ```xml netcoreapp2.0 portable true FoodgetWebapp Exe FoodgetWebapp FoodgetWebapp-c23d27a4-eb88-4b18-9b77-2a93f3b15119 2.0.0-preview2-006497 true All All ``` I am doing something wrong? [EDIT] Fixed formatting as xml - @karelz" +22298 area-System.Drawing Add BufferedGraphics tests And fix faulty debug assertions, and some code cleanup +22299 area-System.Diagnostics [System.Diagnostics.Process]::Start() doesn't return error on Unix if fileName is directory "Repro: Using PowerShell: ```powershell PS> [System.Diagnostics.Process]::Start(""/home"") ``` Expected: error that `/home` isn't valid or access denied Actual: New forked powershell process " +22300 area-Microsoft.CSharp Microsoft.CSharp does not see interfaces as derived from object when doing member lookup "A variant of #14752, with a related but not quite identical cause. Given: ```C# string s = """"; dynamic d = s; IEnumerable c = s; Console.WriteLine(c.Equals(d)); ``` We would expect output of `True`, but instead we get a `RuntimeBinderException` with a message of > 'System.Collections.Generic.IEnumerable' does not contain a definition for 'Equals' " +22301 area-Microsoft.CSharp Have Microsoft.CSharp correctly handle statically-typed interface types' inherited methods ### Include base interfaces on lookup when dynamic is an argument to a call When a variable is statically typed to an interface type that implements another interface and an inherited method or indexer is called with a dynamic argument, then the method or indexer will not be found by the binder. Change both the initial adding of methods to the table, and the subsequent lookup, to fix this. Fixes #14752 ### Include `System.Object` as base of interfaces on lookup when dynamic is an argument to a call When a variable is statically typed to an interface and the `Equals` method inherited from `object` is called with a dynamic argument, then the method will not be found by the binder. Change both the initial adding of methods to the table, and the subsequent lookup, to fix this. Fixes #22300 Also optimise `CreateInheritanceHierarchyList` so it makes fewer copies internal to `List`. +22302 area-System.Security Security crypto - Roadmap See https://github.com/dotnet/designs/issues/11 +22303 area-System.Net Assert more details in Http SSL test failure +22304 area-System.Net Remove a few allocations from SslStream Minor, as they only affect the AuthenticateAsClient/Server paths, which generally happen only once per stream, but every little bit helps: - If no client certificates are provided, the code is currently allocating an empty collection. That's not necessary. - Begin and End delegates are currently being allocated for each call. We can avoid that by passing `this` in as instance state. cc: @geoffkizer, @Drawaes, @cipop +22305 area-System.Net Skip asserts in Http SSL test on macOS Closes https://github.com/dotnet/corefx/issues/21922 cc: @bartonjs +22309 area-System.Drawing System.Drawing.Imaging.ImageAttributes.SetColorKey() is set but not applied. "I am writing test for `System.Drawing.Imaging.ImageAttributes` #20711: ```c# private readonly Rectangle _rectangle = new Rectangle(0, 0, 64, 64); [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] public void SetColorKey_Success() { using (var bitmap = new Bitmap(_rectangle.Width, _rectangle.Height)) using (var graphics = Graphics.FromImage(bitmap)) using (var imageAttr = new ImageAttributes()) { imageAttr.SetColorKey(Color.FromArgb(50, 50, 50), Color.FromArgb(150, 150, 150)); bitmap.SetPixel(0, 0, Color.FromArgb(255, 100, 100, 100)); graphics.DrawImage(bitmap, _rectangle, _rectangle.X, _rectangle.Y, _rectangle.Width, _rectangle.Height, GraphicsUnit.Pixel, imageAttr); Assert.Equal(Color.FromArgb(0, 0, 0, 0), bitmap.GetPixel(0, 0)); } } ``` Expected: Color.FromArgb(0, 0, 0, 0) Actual: Color.FromArgb(255, 100, 100, 100) I am running the test on `netfx` and `netcoreapp` and it fails on both. Looks like transparency isn't get applied. [EDIT] Fixed code formatting - @karelz" +22313 area-Microsoft.CSharp Remove paths for types being anonymous from Microsoft.CSharp Since in running code no types are anonymous (though they may have unspeakable names), `SetAnonymousType` is only ever called with `false`. Remove `_isAnonymousType` and all branches for it being true, including `TypeContainsAnonymousTypes` (only branches returning true is removed or depends on recursive call hitting removed branch) and `GenerateMembersArray` (never hit). +22314 area-Microsoft.CSharp "Remove ""Missing"" name check in Microsoft.CSharp.RuntimeBinder.Semantics.SymFactoryBase" This name is never produced, except to create tests for it having been produced. (We can't have a parser error if our source isn't a parser). +22316 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test/NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds failed with ""System.Net.Http.CurlException : Failure when receiving data from the peer""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test/NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.CurlException : Failure when receiving data from the peer Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in /root/corefx-865334/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 464 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__15.MoveNext() in /root/corefx-865334/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.ServerCertificates.cs:line 261 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) in /root/corefx-865334/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 655 at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) in /root/corefx-865334/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs:line 877 Build : Master - 20170717.01 (Core Tests) Failing configurations: - RedHat.72.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170717.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test~2FNoCallback_RevokedCertificate_NoRevocationChecking_Succeeds +22318 area-System.Net Hang/Race-condition observed in Sockets We are using Sockets and using `BufferedStream` of size [8 * 1024](https://github.com/harshjain2/vstest/blob/fe6fbc50699511baf8bc838bfc23ff5278fb5de3/src/Microsoft.TestPlatform.CommunicationUtilities/SocketCommunicationManager.cs). We are observing an intermittent hang because of which the test execution doesn't complete as expected. Is this a known issue? We tried debugging, but couldn't find anything wrong. Repro steps : 1. Clone the repositroy : https://github.com/harshjain2/vstest 2. Checkout branch hangrepro. 3. From the root of repo, invoke `build.cmd -noloc` 4. From the root of repo, invoke `test.cmd` For reproing this issue consistently, I have increased the buffer size to 1024 * 1024. cc: @codito +22321 area-Infrastructure Failed to download package 'Microsoft.NETCore.Targets.1.0.1' in CI Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win7_debug/125/ https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_fedora24_release/lastCompletedBuild/ Failed to generate the test report /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/Tools/dotnetcli/sdk/2.0.0-preview1-005977/NuGet.targets(97,5): error : Failed to download package 'Microsoft.NETCore.Targets.1.0.1' from 'https://api.nuget.org/v3-flatcontainer/microsoft.netcore.targets/1.0.1/microsoft.netcore.targets.1.0.1.nupkg'. [/mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/external/test-runtime/XUnit.Runtime.depproj] [/mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/external/test-runtime/XUnit.Runtime.depproj] +22324 area-System.Data GDPR + Always Encrypted Hi, please read this EU regulation [GDPR](http://ec.europa.eu/justice/data-protection/reform/files/regulation_oj_en.pdf). We will need functional support for SQL **Always Encrypted** before **25. may 2018** . When it will be implemented in **EF Core**? (Please, give it priority. It will be before 25 may 2018?) Thanks +22325 area-System.Globalization Add architecture doc on globalization invariant mode +22328 area-System.Net Undo Stream.*Async overrides in HttpResponseStream/HttpRequestStream PR #22282 is just a bandaid for lots of Stream-derived types in the wild don't override Read/WriteAsync. Once Read/WriteAsync in Stream is fixed on ILC, the code should be undone. +22331 area-Microsoft.CSharp Microsoft.CSharp binder not prepared for mis-called static calls. "If we set up a dynamic call-site as follows; ```C# var site = CallSite>.Create( Binder.InvokeMember( CSharpBinderFlags.None, ""Equals"", null, GetType(), new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.IsStaticType, null), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null) } ) ); Func target = site.Target; ``` Then `target` can now be used to call a static method called `Equals` as in e.g. `target(site, typeof(object), ""A"", ""A"")` returning true. The binder is not prepared for the consumer incorrectly calling it with a non-type as the second argument, throwing `RuntimeBinderInternalCompilerException` with a message of ""An unexpected exception occurred while binding a dynamic operation"", or in debug mode triggering an assertion. Rather than an exception that ""represents a malfunctioning of the runtime binder itself"", it should be an `ArgumentException` (or arguably a `RuntimeBinderException`, but AE matches some similar cases)." +22332 area-System.Linq Span and friends may require work in Linq.Expression/DLR and dynamic binders It is not permitted to box these types and expressions/binders would need to know about that. Otherwise there could be some relatively trivial ways to cause failures such as dynamically invoking a Span-returning method by name. That would easily result in a Span being boxed, which might fail very ungracefully. +22333 area-Microsoft.CSharp Microsoft.CSharp: Catch passing non-type as type for bound static call "If something other than a `Type` is passed as the second argument (first after the `CallSite`) then catch this and throw an explanatory `ArgumentException`, rather than a `RuntimeBinderInternalCompilerException` describing it as ""unexpected"". Also remove assertion this cannot happen, as it clearly can. Conversely, replace check that would throw `RuntimeBinderInternalCompilerException` for this case in `CreateCallingObjectForCall` with just an assertion, as the above check will have happened before this point could be reached. Fixes #22331" +22335 area-System.Diagnostics Investigate Ways to Reduce Dependence on Reflection for EventSource EventSources currently require reflection for both manifest-based logging and tracelogging. The latter is required, because there is no concept of subclasses or event methods - just calls to Write public methods on EventSources. However, we can do better with manifest-based logging. There is currently an IL transform in the toolchain that triggers for a well-known set of EventSources in the framework and pre-generates metadata for them so that reflection is not used at runtime. We should consider expanding this transform for two cases: 1. Automatically detect reflection blocked types and pre-generate metadata for them, rather than having to explicitly opt the types in. 2. Support localized resources (the current transform does not support this). +22336 area-System.Security Fixed issue #22229, where RSAKeyValue.LoadXml was throwing a CryptographicException when receiving a XmlElement with namespace prefix as input Fixed bug on element name check in RSAKeyValue which caused error when element had a namespace prefix; Implemented a test case. Fixes #22229 [EDIT] Fixes #abc added by @karelz to [auto-close issue upon merge](https://help.github.com/articles/closing-issues-using-keywords/) +22337 area-System.Xml Port: Fix usage of XmlSerializerNamespaces.Namespaces dictionary Ports https://github.com/dotnet/corefx/pull/22006 to 2.0. [Approved by shiproom] Fixes https://github.com/dotnet/corefx/issues/21961 cc: @danmosemsft FYI: @remcoros +22338 area-System.Net Throw PNSE on Ping.Send* in UWP Win32 Icmp* APIs fail with E_ACCESSDENIED when called from UWP due to Windows OS limitations. Ping will not work on UWP in this OS release, so I'm updating Ping.Send* to throw PNSE instead of E_ACCESSDENIED for now. Contributes to #19583 +22339 area-System.Diagnostics [DiagnosticsSource] http correlation protocol should optionally support intrinsic sort "Related to issue #22284 The current version of the Hierarchical Request Format mandates uniqueness. But analytics on tracing formats which are vector clock based, also rely on the format providing a sort without depending on other event properties such as Time. To provide such a sort as well as provide uniqueness, the elements in the vector have to support a monotonic sequence. The current protocol is cited as follows: > Suffix MUST be unique for every outgoing HTTP request sent while processing the incoming request; monotonically incremented number of outgoing request within the scope of this incoming operation, is a good candidate. But there is insufficient information if the value is actually a monotonic sequence. Also, a benefit of explicitly supporting a numeric format incremented from 0 is improved wire cost when compared to a randomly generated suffix. The proposed changes are follows: - Distinguish vector elements to be either a number (on which a sort is possible) or an entropy element, using a prefix character: ""#"". Number can be typed to unsigned 64 bit max. - Provide a way to enable ""atomic increments"" mode in the built-in .NET implementation. If enabled, this would create atomic increments of the current vector element on the outgoing path, as opposed to simply generating randomized suffixes and the prefix character described above would be applied on the latter case. - If the ""atomic increments"" mode is turned on for a component that is initializing a root request id, it should generate X.0. - Similarly, if the ""atomic increments"" mode is turned on, and if the incoming value of the Request Id is ""X."", then the value should be ""X.0"" (if the ""trusted caller"" mode is on as per #22284) or ""X.[Entropy_0]"" otherwise. @vancem, @lmolkova, @SergeyKanzhelev" +22341 area-System.IO Update tests for pending whitespace trimming changes Update tests for pending whitespace trimming changes (see: https://github.com/dotnet/coreclr/pull/12862) +22343 area-System.Runtime AppDomain events have wrong sender ``` AppDomain.UnhandledExceptionEventHandler AppDomain.AssemblyLoadEventHandler AppDomain.ResolveEventHandler AppDomain.FirstChanceException AppDomain.ProcessExit ... ``` The sender argument for these events should be AppDomain.CurrentDomain, but it is actually the internal AppDomain object. #22330 fixed this for FirstChanceException event on uapaot only. This should be fixed for all of the events and for both CoreCLR and CoreRT. Also, tests should be added. We may consider fixing this by moving AppDomain back to CoreLib. Having it in CoreFX seems to have less and less value. +22345 area-System.IO Add method IsPathFullyQualified() to replace IsPathRooted() for returning if a path is relative "A common mistake is to assume that `IsPathRooted()` paths cannot be relative. To make the distinction between rooted and relative clear, `Path` should implement a `IsPathFullyQualified()` method that returns whether or not changing the current directory will change the path. Details in issue #22245 ## Rationale and Usage Currently, `IsPathRooted()` does not answer the question of whether changing the current directory will change a given path. Adding `IsPathFullyQualified()` will more explicitly and correctly address this question. Note: `IsPathRelative()` may seem like a more intuitive name for the method to be added. However, `IsPathRelative()` suggests that the method determines whether or not the path contains '.' or '..', which is not true. `IsPathFullyQualified()` is broader and addresses whether the path will change based on the current directory. This terminology is also consistent with [documentation.](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#fully_qualified_vs._relative_paths) ## Proposed API ``` c# /// /// Returns false if the path specified is relative to the current drive or working directory. /// Returns true if the path is fixed to a specific drive or UNC path. This method does no /// validation of the path (URIs will be returned as relative as a result). /// /// /// Handles paths that use the alternate directory separator. It is a frequent mistake to /// assume that rooted paths (Path.IsPathRooted) are not relative. This isn't the case. /// ""C:a"" is drive relative- meaning that it will be resolved against the current directory /// for C: (rooted, but relative). ""C:\a"" is rooted and not relative (the current directory /// will not be used to modify the path). /// public static bool IsPathFullyQualified(string path) ``` ## Details Doesn't handle URIs (will say all URIs are relative). ## Open Questions N/A ## Pull Request N/A ## Updates " +22347 area-Infrastructure CI issue: Error during cleanup: java.io.IOException: in OSX Debug https://ci3.dot.net/job/dotnet_corefx/job/master/job/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/1318/console https://ci3.dot.net/job/dotnet_corefx/job/master/job/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/1316/console and a few more in the last couple of hours. +22348 area-System.Runtime System.Runtime.Serialization.Formatters.Tests failing in UapAot Tests are failing with error: ``` The stored blob for type System.TimeZoneInfo+AdjustmentRule is outdated and needs to be updated.\r\nStored blob: AAEAAAD/////AQAAAAAAAAAEAQAAACJTeXN0ZW0uVGltZVpvbmVJbmZvK0FkanVzdG1lbnRSdWxlBwAAAAlEYXRlU3RhcnQHRGF0ZUVuZA1EYXlsaWdodERlbHRhF0RheWxpZ2h0VHJhbnNpdGlvblN0YXJ0FURheWxpZ2h0VHJhbnNpdGlvbkVuZBJCYXNlVXRjT2Zmc2V0RGVsdGEVTm9EYXlsaWdodFRyYW5zaXRpb25zAAAAAwMAAA0NDCJTeXN0ZW0uVGltZVpvbmVJbmZvK1RyYW5zaXRpb25UaW1lIlN5c3RlbS5UaW1lWm9uZUluZm8rVHJhbnNpdGlvblRpbWUMAQBAVyBTBVEIAEDGiJPMjwgA0IjDEAAAAAT+////IlN5c3RlbS5UaW1lWm9uZUluZm8rVHJhbnNpdGlvblRpbWUGAAAACVRpbWVPZkRheQVNb250aARXZWVrA0RheQlEYXlPZldlZWsPSXNGaXhlZERhdGVSdWxlAAAAAAMADQICAhBTeXN0ZW0uRGF5T2ZXZWVrAQDQiMMQAAAAAgEDBP3///8QU3lzdGVtLkRheU9mV2VlawEAAAAHdmFsdWVfXwAIAAAAAAEB/P////7///8A0IjDEAAAAAMBBAH7/////f///wAAAAABAAAAAAAAAAAACw==\r\nGenerated runtime blob: AAEAAAD/////AQAAAAAAAAAEAQAAACJTeXN0ZW0uVGltZVpvbmVJbmZvK0FkanVzdG1lbnRSdWxlBgAAAAlEYXRlU3RhcnQHRGF0ZUVuZA1EYXlsaWdodERlbHRhF0RheWxpZ2h0VHJhbnNpdGlvblN0YXJ0FURheWxpZ2h0VHJhbnNpdGlvbkVuZBJCYXNlVXRjT2Zmc2V0RGVsdGEAAAADAwANDQwiU3lzdGVtLlRpbWVab25lSW5mbytUcmFuc2l0aW9uVGltZSJTeXN0ZW0uVGltZVpvbmVJbmZvK1RyYW5zaXRpb25UaW1lDABAVyBTBVEIAEDGiJPMjwgA0IjDEAAAAAT+////IlN5c3RlbS5UaW1lWm9uZUluZm8rVHJhbnNpdGlvblRpbWUGAAAACVRpbWVPZkRheQVNb250aARXZWVrA0RheQlEYXlPZldlZWsPSXNGaXhlZERhdGVSdWxlAAAAAAMADQICAhBTeXN0ZW0uRGF5T2ZXZWVrAQDQiMMQAAAAAgEDBP3///8QU3lzdGVtLkRheU9mV2VlawEAAAAHdmFsdWVfXwAIAAAAAAEB/P////7///8A0IjDEAAAAAMBBAH7/////f///wAAAAABAAAAAAAAAAAL\r\nExpected: True\r\nActual: False ``` Stack Trace: ``` at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.SanityCheckBlob(Object obj, String[] blobs) at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.ValidateAgainstBlobs(Object obj, String[] blobs) at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetVII[T0, T1](Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x6f at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x55 at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x171 ``` https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170717.02/workItem/System.Runtime.Serialization.Formatters.Tests/analysis/xunit/System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests~2FValidateAgainstBlobs(obj:%20AdjustmentRule%20%7B%20DateEnd%20=%201955-12-31T00:00:00.0000000,%20DateStart%20=%201900-01-01T00:00:00.0000000,%20Da... +22349 area-System.Net Converted sudo commands to class helper Use new sudo admin helper class. +22350 area-System.Threading System.Threading.Tasks.Tests are failing in UapAot - System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.FaultedTaskExceptions - System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.TaskMethodBuilderT_ValidateFaultedTask - System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.TaskMethodBuilder_ValidateFaultedTask - System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.Tcs_ValidateFaultedTask - System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.TrackedSyncContext_ValidateException This tests are failing with error: ``` Assert.Contains() Failure\r\nNot found: End of stack trace\r\nIn value: at System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.TrackedSyncContext_ValidateException()\r\n at xunit.console.netcore!+0x1\r\n at Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21\r\n at Void System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.b__7_0(Object) + 0x1e\r\n at System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.TrackOperationsSynchronizationContext.Post(Threading.SendOrPostCallback callback, Object state)\r\n ``` Stack Trace: ``` at System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.ValidateException(Exception e) at System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.TrackedSyncContext_ValidateException() at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x50 at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x43 at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x183 ``` cc: @joshfree +22351 area-System.Runtime System.Runtime.ExceptionServices.Tests.ExceptionDispatchInfoTests/StaticThrow_UpdatesStackTraceAppropriately failed in UapAot https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170717.02/workItem/System.Runtime.Tests/analysis/xunit/System.Runtime.ExceptionServices.Tests.ExceptionDispatchInfoTests~2FStaticThrow_UpdatesStackTraceAppropriately Message : ``` Assert.Equal() Failure\r\nExpected: 1\r\nActual: 0 ``` Stack Trace ``` at System.Runtime.ExceptionServices.Tests.ExceptionDispatchInfoTests.StaticThrow_UpdatesStackTraceAppropriately() at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x51 at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x43 at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x183 ``` cc: @danmosemsft +22352 area-System.Net Adding more documentation and better error messages for Networking multi-machine setup A few glitches found while working on #21285. +22353 area-System.Runtime Expose Span from System.Runtime contract Span needs to be exposed from System.Runtime so that other types exposed from System.Runtime can use it in public APIs. cc: @ahsonkhan, @KrzysztofCwalina +22354 area-System.Runtime Move {ReadOnly}Buffer to System.Private.CoreLib, expose from System.Runtime contract Needed for new Stream methods to use `Buffer` in public APIs. cc: @ahsonkhan, @KrzysztofCwalina +22355 area-System.Runtime Add BitConverter Span-based APIs "Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement in System.Private.CoreLib in coreclr (it's ""shared"" with corert) - [x] Expose from System.Runtime.Extensions contract in corefx - [x] Add tests to System.Runtime.Extensions tests in corefx ```C# namespace System { public static class BitConverter { // Matching overloads for GetBytes. Copy to the destination span // rather than allocating a new byte[]. Return false if the destination // span isn't large enough, which can be determined before any copying. public static bool TryWriteBytes(Span destination, bool value); public static bool TryWriteBytes(Span destination, char value); public static bool TryWriteBytes(Span destination, double value); public static bool TryWriteBytes(Span destination, short value); public static bool TryWriteBytes(Span destination, int value); public static bool TryWriteBytes(Span destination, long value); public static bool TryWriteBytes(Span destination, float value); public static bool TryWriteBytes(Span destination, ushort value); public static bool TryWriteBytes(Span destination, uint value); public static bool TryWriteBytes(Span destination, ulong value); // Matching overloads for To*. As with existing To* methods, throw if not // enough data in the source span. public static bool ToBoolean(ReadOnlySpan value); public static char ToChar(ReadOnlySpan value); public static double ToDouble(ReadOnlySpan value); public static short ToInt16(ReadOnlySpan value); public static int ToInt32(ReadOnlySpan value); public static long ToInt64(ReadOnlySpan value); public static float ToSingle(ReadOnlySpan value); public static ushort ToUInt16(ReadOnlySpan value); public static uint ToUInt32(ReadOnlySpan value); public static ulong ToUInt64(ReadOnlySpan value); … } } ```" +22356 area-System.Runtime Add Random Span-based APIs Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement in System.Private.CoreLib in coreclr (corert shares the same file) - [x] Expose from System.Runtime.Extensions contract in corefx - [x] Add tests to System.Runtime.Extensions tests in corefx ```C# namespace System { public class Random { public virtual void NextBytes(Span buffer); … } } ``` Implementation should be in terms of `Next()`. The `NextBytes(byte[])` base method is implemented in terms of `InternalSample`, but `NextBytes(Span)` shouldn't be implemented in terms of that, as it's not public and thus an existing derived type couldn't have overridden it, and thus the new virtual wouldn't pick up existing behaviors. It also shouldn't be in terms of `NextBytes(byte[])`, as that would require allocating/copying an array, largely defeating the purpose of the method (at least for the base class). But since `Next()` on the base class just delegates to `InternalSample()`, `Next()` is a reasonable thing to base the implementation on, e.g. ```C# public virtual void NextBytes(Span buffer) { for (int i = 0; i < buffer.Length; i++) { buffer[i] = (byte)(Next() & 0xFF); } } ``` +22358 area-System.Runtime Add DateTime{Offset} Span-based APIs Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement in System.Private.CoreLib in coreclr (corert shares the same files) - [x] Expose from System.Runtime contract in corefx - [x] Add tests to System.Runtime tests in corefx ```C# namespace System { public struct DateTime { public static DateTime Parse(ReadOnlySpan s, IFormatProvider provider = null, System.Globalization.DateTimeStyles styles = DateTimeStyles.None); public static DateTime ParseExact(ReadOnlySpan s, string format, IFormatProvider provider, DateTimeStyles style = DateTimeStyles.None); public static DateTime ParseExact(ReadOnlySpan s, string[] formats, IFormatProvider provider, DateTimeStyles style); public static bool TryParse(ReadOnlySpan s, out DateTime result, IFormatProvider provider = null, DateTimeStyles styles = DateTimeStyles.None); public static bool TryParseExact(ReadOnlySpan s, string format, IFormatProvider provider, DateTimeStyles style, out DateTime result); public static bool TryParseExact(ReadOnlySpan s, string[] formats, IFormatProvider provider, DateTimeStyles style, out DateTime result); public bool TryFormat(Span destination, out int charsWritten, string format = null, IFormatProvider provider = null); … } public struct DateTimeOffset { public static DateTimeOffset Parse(ReadOnlySpan input, IFormatProvider formatProvider = null, System.Globalization.DateTimeStyles styles = DateTimeStyles.None); public static DateTimeOffset ParseExact(ReadOnlySpan input, string format, IFormatProvider formatProvider, DateTimeStyles styles = DateTimeStyles.None); public static DateTimeOffset ParseExact(ReadOnlySpan input, string[] formats, IFormatProvider formatProvider, DateTimeStyles styles); public static bool TryParse(ReadOnlySpan input, out DateTimeOffset result, IFormatProvider formatProvider = null, DateTimeStyles styles = DateTimeStyles.None); public static bool TryParseExact(ReadOnlySpan input, string format, IFormatProvider formatProvider, DateTimeStyles styles, out DateTimeOffset result); public static bool TryParseExact(ReadOnlySpan input, string[] formats, IFormatProvider formatProvider, DateTimeStyles styles, out DateTimeOffset result); public bool TryFormat(Span destination, out int charsWritten, string format = null, IFormatProvider formatProvider = null); … } } ``` +22360 area-System.Data "Test: System.Data.Tests.SqlTypes.SqlBooleanTest/ToSqlInt64 failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Data.Tests.SqlTypes.SqlBooleanTest/ToSqlInt64` has failed. Assert.Equal() Failure\r Expected: 1\r Actual: 0 Stack Trace: at System.Data.Tests.SqlTypes.SqlBooleanTest.ToSqlInt64() at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x2c at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x3a at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x122 Build : Master - 20170718.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170718.01/workItem/System.Data.Common.Tests.Execution/analysis/xunit/System.Data.Tests.SqlTypes.SqlBooleanTest~2FToSqlInt64 +22362 area-System.Linq "Tests under: System.Linq.Expressions.Tests.ConvertCheckedTests failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Linq.Expressions.Tests.ConvertCheckedTests/ConvertCheckedNullableByteToNullableEnumLongTest(useInterpreter: True)` has failed. Assert.Equal() Failure\r Expected: A\r Actual: B Stack Trace: at System.Linq.Expressions.Tests.ConvertCheckedTests.VerifyCheckedNullableByteToNullableEnumLong(Nullable value, Boolean useInterpreter) at System.Linq.Expressions.Tests.ConvertCheckedTests.ConvertCheckedNullableByteToNullableEnumLongTest(Boolean useInterpreter) at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetVI[T0](Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x5c at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x3a at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x122 Build : Master - 20170718.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170718.01/workItem/System.Linq.Expressions.Tests.Execution/analysis/xunit/System.Linq.Expressions.Tests.ConvertCheckedTests~2FConvertCheckedNullableByteToNullableEnumLongTest(useInterpreter:%20True) +22364 area-System.Threading "Tests under: System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests failed with ""Xunit.Sdk.ContainsException""" Opened on behalf of @Jiayili1 The test `System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests/FaultedTaskExceptions` has failed. Assert.Contains() Failure\r Not found: End of stack trace\r In value: at System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.<>c.b__29_18()\r at Void System.Threading.Tasks.Task`1.InnerInvoke() + 0x36\r at Void System.Threading.Tasks.Task.Execute() + 0x1c\r at xunit.console.netcore!+0x1\r at Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x18\r at Void System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0x66\r at Void System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x5c\r at System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.<>c__DisplayClass31_0.b__0()\r at Xunit.Assert.RecordException(Action testCode)\r Stack Trace: at System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.ValidateException(Exception e) at System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.ValidateFaultedTask(Threading.Tasks.Task t) at System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests.FaultedTaskExceptions() at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x48 at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x3a at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x122 Build : Master - 20170718.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170718.01/workItem/System.Threading.Tasks.Tests.Execution/analysis/xunit/System.Threading.Tasks.Tests.AsyncTaskMethodBuilderTests~2FFaultedTaskExceptions +22367 area-System.Drawing System.Drawing.Imaging.ImageAttributes.SetOutputChannelColorProfile() Throws System.Runtime.InteropServices.ExternalException on netcoreapp - does not on netfx (#20711) "The test: ``` c# [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] public void SetOutputChannelColorProfile_Null_ThrowsArgumentNullException() { using (var imageAttr = new ImageAttributes()) { Assert.Throws(() => imageAttr.SetOutputChannelColorProfile(null)); Assert.Throws(() => imageAttr.SetOutputChannelColorProfile(null, ColorAdjustType.Default)); } } ``` **Expected:** `ArgumentNullException` **Actual:** `netfx` - `ArgumentNullException` `netcoreapp` - `System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+.` (#20711)" +22372 area-System.Drawing Validate the focus and scale parameters in managed code Validate the focus and scale parameters in managed code, because libgdiplus does not validate them. This would cause issues when using System.Drawing.Common on Linux or within Mono. +22373 area-System.Xml Diff between Core 2.0 and legacy Fx: XslTransform fails on custom function "This came about when working on #21201. The test for `XslTransform` using `XsltArgumentList` with a custom implementation crashes with the following stack on Core 2.0: ``` Unhandled Exception: System.Xml.XPath.XPathException: Function 'ext:distinct()' has failed. ---> System.InvalidCastException: Invalid cast from 'System.Double' to 'System.Xml.XPath.XPathNodeIterator'. at System.Convert.DefaultToType(IConvertible value, Type targetType, IFormatProvider provider) at System.Xml.Xsl.XsltOld.XsltCompileContext.XsltFunctionImpl.ToNumeric(Object argument, Type type) at System.Xml.Xsl.XsltOld.XsltCompileContext.XsltFunctionImpl.ConvertToXPathType(Object val, XPathResultType xt, Type type) at System.Xml.Xsl.XsltOld.XsltCompileContext.FuncExtension.Invoke(XsltContext xsltContext, Object[] args, XPathNavigator docContext) at MS.Internal.Xml.XPath.FunctionQuery.Evaluate(XPathNodeIterator nodeIterator) --- End of inner exception stack trace --- at MS.Internal.Xml.XPath.FunctionQuery.Evaluate(XPathNodeIterator nodeIterator) at System.Xml.Xsl.XsltOld.Processor.StartQuery(XPathNodeIterator context, Int32 key) at System.Xml.Xsl.XsltOld.ForEachAction.Execute(Processor processor, ActionFrame frame) at System.Xml.Xsl.XsltOld.ActionFrame.Execute(Processor processor) at System.Xml.Xsl.XsltOld.Processor.Execute() at System.Xml.Xsl.XsltOld.Processor.Execute(TextWriter writer) at System.Xml.Xsl.XslTransform.Transform(XPathNavigator input, XsltArgumentList args, TextWriter output) at Legacy_ExtObjDistinctFunction.Program.Main(String[] args) in C:\projects\XmlDistinctInvestigation\repro\Program.cs:line 31 ``` On legacy Fx v2.0.50727 and v4.7.2046.0 the same code produces the expected results. For convenience the code with the isolated repro is below but the respective test is going to be marked with the # of this issue too. Note: the order of elements returned in the transformed xml between different versions of the Fx is different, the test perhaps should sort the elements to avoid issues with that. ```c# using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Text; using System.Xml; using System.Xml.XPath; using System.Xml.Xsl; #pragma warning disable 0618 namespace Legacy_ExtObjDistinctFunction { class Program { static void Main(string[] args) { XsltArgumentList xsltArg = new XsltArgumentList(); xsltArg.AddExtensionObject(""http://foo.com"", new MyXsltExtension()); XslTransform xslTransform = new XslTransform(); using (StringReader streamReader = new StringReader(c_xsl)) using (XmlTextReader xmlReader = new XmlTextReader(streamReader)) xslTransform.Load(xmlReader); using (StringWriter streamWriter = new StringWriter()) using (StringReader streamReader = new StringReader(c_xml)) using (XmlTextReader xmlReader = new XmlTextReader(streamReader)) { XPathDocument xpathDoc = new XPathDocument(xmlReader); xslTransform.Transform(xpathDoc.CreateNavigator(), xsltArg, streamWriter); streamWriter.Flush(); Console.WriteLine(streamWriter.GetStringBuilder()); } Console.WriteLine(""It read the doc without issues!!!""); } #region Files const string c_xsl = @"" , ""; const string c_xml = @"" ""; #endregion } internal class MyXsltExtension { public XPathNodeIterator distinct(XPathNodeIterator nodeset) { Hashtable nodelist = new Hashtable(); while (nodeset.MoveNext()) { if (!nodelist.Contains(nodeset.Current.Value)) { nodelist.Add(nodeset.Current.Value, nodeset.Current.Clone()); } } return new MyArrayIterator(new ArrayList(nodelist.Values)); } } internal class MyArrayIterator : XPathNodeIterator { protected ArrayList array; protected int index; public MyArrayIterator(ArrayList array) { this.array = array; this.index = 0; } public MyArrayIterator(MyArrayIterator it) { this.array = it.array; this.index = it.index; } public override XPathNodeIterator Clone() { return new MyArrayIterator(this); } public override bool MoveNext() { if (index < array.Count) { index++; return true; } return false; } public override XPathNavigator Current { get { return (index > 0) ? (XPathNavigator)array[index - 1] : null; } } public override int CurrentPosition { get { return index; } } public override int Count { get { return array.Count; } } public void Reset() { index = 0; } // BUGBUG: DCR 104760 public override IEnumerator GetEnumerator() { MyArrayIterator it = (MyArrayIterator)this.Clone(); it.Reset(); return (IEnumerator)it; } } } ```" +22374 area-System.Security Move cross-platform-crypto doc +22375 area-System.Runtime Add TimeSpan Span-based APIs Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [ ] Implement in System.Private.CoreLib in coreclr (corert shares the same files) - [ ] Expose from System.Runtime contract in corefx - [ ] Add tests to System.Runtime tests in corefx ```C# namespace System { public struct TimeSpan { public static TimeSpan Parse(ReadOnlySpan input, IFormatProvider formatProvider = null); public static TimeSpan ParseExact (ReadOnlySpan input, string format, IFormatProvider formatProvider, TimeSpanStyles styles = TimeSpanStyles.None); public static TimeSpan ParseExact (ReadOnlySpan input, string[] formats, IFormatProvider formatProvider, TimeSpanStyles styles = TimeSpanStyles.None); public static bool TryParse(ReadOnlySpan input, out TimeSpan result, IFormatProvider formatProvider = null); public static bool TryParseExact (ReadOnlySpan input, string format, IFormatProvider formatProvider, out TimeSpan result, TimeSpanStyles styles = TimeSpanStyles.None); public static bool TryParseExact (ReadOnlySpan input, string[] formats, IFormatProvider formatProvider, out TimeSpan result, TimeSpanStyles styles = TimeSpanStyles.None); public bool TryFormat(Span destination, out int charsWritten, string format = null, IFormatProvider provider = null); … } } ``` +22376 area-System.Runtime Add Version Span-based APIs Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement in System.Private.CoreLib in coreclr (corert shares the same files) - [ ] Expose from System.Runtime contract in corefx - [ ] Add tests to System.Runtime tests in corefx ```C# namespace System { public class Version { public static Version Parse(ReadOnlySpan input); public static bool TryParse(ReadOnlySpan input, out Version result); public bool TryFormat(Span destination, out int charsWritten, int fieldCount = 4); … } } ``` --- EDIT 8/17/2017: We'd approved: ```C# public bool TryFormat(Span destination, out int charsWritten, int fieldCount = 4); ``` as a way to avoid needing to add two TryFormat overloads based on whether it takes a fieldCount or not, but it turns out that deviates from the ToString()/ToString(fieldCount) behavior, where the former doesn't always use fieldCount == 4 but rather dynamically determines the value based on the instance, so we should add both: ```C# public bool TryFormat(Span destination, out int charsWritten); public bool TryFormat(Span destination, int fieldCount, out int charsWritten); ``` +22377 area-System.Runtime Add Guid Span-based APIs "Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement in System.Private.CoreLib in coreclr - [x] Implement in System.Private.CoreLib in corert (if Guid isn't yet ""shared"" between coreclr and corert) - [x] Expose from System.Runtime contract in corefx - [x] Add tests to System.Runtime tests in corefx ```C# namespace System { public struct Guid { public Guid(ReadOnlySpan b); // correspond to Guid(byte[] b) public bool TryWriteBytes(Span destination); public static Guid Parse(ReadOnlySpan input); public static Guid ParseExact(ReadOnlySpan input, string format); public static bool TryParse(ReadOnlySpan input, out Guid result); public static bool TryParseExact(ReadOnlySpan input, string format, out Guid result); public bool TryFormat(Span destination, out int charsWritten, string format = null); … } } ```" +22378 area-System.Runtime Add String Span-based ctor "Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement in System.Private.CoreLib in coreclr - [x] Implement in System.Private.CoreLib in corert (unless string is ""shared"" by then) - [x] Expose from System.Runtime contract in corefx - [x] Add tests to System.Runtime tests in corefx ```C# namespace System { public class String { public String(ReadOnlySpan value); … } } ```" +22380 area-System.Runtime Add String Span-based method for writing into String's buffer "Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement in System.Private.CoreLib in coreclr - [x] Implement in System.Private.CoreLib in corert (if string isn't yet ""shared"" between coreclr and corert) - [x] Expose from System.Runtime contract in corefx - [x] Add tests to System.Runtime tests in corefx ```C# namespace System { public delegate void StringCreateAction(TState state, Span destination); public class String { public static string Create(int length, TState state, StringCreateAction action); … } } ``` Mostly approved, but open issue around the delegate, its name, what namespace it lives in (or nested type within String), etc. A custom delegate is needed as span can't be used as a generic type argument with one of the built-in action types." +22381 area-System.IO Add Stream Span/Buffer-based APIs "Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement span-based APIs in System.Private.CoreLib in coreclr - [x] Implement buffer-based APIs in System.Private.CoreLib in coreclr - [x] Implement span-based APIs in System.Private.CoreLib in corert (if Stream isn't yet in ""shared"") - [x] Implement buffer-based APIs in System.Private.CoreLib in corert (if Stream isn't yet in ""shared"") - [x] Expose span-based APIs from System.Runtime contract in corefx - [ ] Expose buffer-based APIs from System.Runtime contract in corefx - [x] Add span-based APIs tests to System.Runtime tests in corefx - [ ] Add buffer-based APIs tests to System.Runtime tests in corefx ```C# namespace System.IO { public class Stream { public virtual int Read(Span destination); public virtual ValueTask ReadAsync(Buffer destination, CancellationToken cancellationToken = default(CancellationToken)); public virtual void Write(ReadOnlySpan source); public virtual Task WriteAsync(ReadOnlyBuffer source, CancellationToken cancellationToken = default(CancellationToken)); … } } ```" +22382 area-System.Threading Fixes for ConcurrentDictionary for weak memory model hardware There was possibility to observe partially constructed object (Node) in ConcurrentDictionary on architectures with weak hardware memory model (e.g. ARM). Volatile.Write protects us from exposing reference to partially constructed Node object. +22383 area-System.Data "SqlConnection GetSchema(""DataTypes"") method returns wrong datatype for tinyint" "SqlConnection's method GetSchema(""DataTypes"") returns following results for ""tinyint"" data type - DataType: System.SByte - IsUnsigned:True This result is inconsistent and it seems it should return System.Byte as DataType, because SQLServer's tinyint data type is defined to be mapped to .NET byte type (0-254) ### Example code to reproduce problems ``` CSharp var conn = new SqlConnection(@""Data Source=(LocalDB)\MSSQLLocalDB;Initial Catalog=TestDB;Integrated Security=True;""); conn.Open(); var rows = conn.GetSchema(DbMetaDataCollectionNames.DataTypes) .Rows .OfType() .Where(p=>(string)p[""TypeName""]== ""tinyint""); foreach (var row in rows) { Console.WriteLine(String.Format(""TypeName:{0,-25} DataType:{1,-30} IsUnsigned:{2,-15}"", row[""TypeName""], row[""DataType""], row[""IsUnsigned""] )); } //Output: //TypeName:tinyint DataType:System.SByte IsUnsigned:True ``` ### Root cause of problems It seems SqlConnection GetSchema(""DataTypes"") method return results from following xml definition file. ### Reproducible environments I've confirmed this problem occurs following environments - .NET 4.6.1 - .NET Core 2.0 with System.Data.SqlClient/4.4.0-preview2-25405-01 ### Note It seems following issue mentioned this wrong tinyint datatype. " +22384 area-System.IO Add support for disabled short path generation to System.IO.Tests.Directory_GetFileSystemEntries_str.PatternTests_DosStarOddSpace() ```PatternTests_DosStarOddSpace()``` currently tests for pattern-matching behavior on files that, according to inline documentation in the test source, is due to a preexisting bug in the Windows stack. However, the exhibited behavior is intended on systems that have short path alias generation enabled because the pattern is matched against both the full file name and the shortened alias generated by Windows. Consequentially, this test fails on systems that do not have short path alias generation enabled. Expected behavior is as follows: - If the system has short path alias generation enabled, then the current set of expected results should be used. - If the system has short path alias generation disabled, then the set of results labeled as ```// Really should be:``` should be expected. +22385 area-System.Threading System.Collections.Concurrent.Tests not producing testResults.xml in UapAot This tests haven't produced testResults.xml in Debug-x64 and Release-x64 for UapAot in the past days. I tried to repro locally but wasn't lucky. I just missed to use the Helix repro tool, but hadn't have time for that. +22386 area-System.IO Override new Span/Buffer-based APIs on FileStream Dependent on https://github.com/dotnet/corefx/issues/22381. +22387 area-System.Net Override new Span/Buffer-based APIs on NetworkStream Dependent on #22381. - [X] Override span-based Read/Write methods - [x] Override buffer-based ReadAsync/WriteAsync methods +22388 area-System.IO Override new Span/Buffer-based APIs on MemoryStream Dependent on #22381. - [X] Override span-based Read/Write methods - [ ] Override buffer-based ReadAsync/WriteAsync methods +22389 area-System.IO Override new Span/Buffer-based APIs on UnmanagedMemoryStream Dependent on #22381. - [X] Override span-based Read/Write methods - [ ] Override buffer-based ReadAsync/WriteAsync methods +22390 area-System.IO Override new Span/Buffer-based APIs on DeflateStream Dependent on #22381. - [X] Override span-based Read/Write methods - [ ] Override buffer-based ReadAsync/WriteAsync methods +22391 area-System.Security Override new Span/Buffer-based APIs on CryptoStream Dependent on #22381. +22392 area-System.IO Override new Span/Buffer-based APIs on GZipStream Dependent on #22381. - [X] Override span-based Read/Write methods - [ ] Override buffer-based ReadAsync/WriteAsync methods +22393 area-System.IO Fix test assertions for long paths We don't preemptively check path length any more. The OS errors we get back can either be PathTooLong or NotFound depending on the environment and requested path. See #22368 +22394 area-System.IO Investigate overriding new Span/Buffer-based APIs on streams used in ZipArchive There are a bunch of internal stream types. They may or may not benefit from having their Span/Buffer-based APIs overridden (depends on how they're consumed and what optimizations are possible). Dependent on #22381. - [X] Override span-based Read/Write methods - [ ] Override buffer-based ReadAsync/WriteAsync methods +22395 area-System.IO Override new Span/Buffer-based APIs on PipeStream Dependent on #22381. - [X] Override span-based Read/Write methods - [ ] Override buffer-based ReadAsync/WriteAsync methods +22396 area-System.Net Override new Span/Buffer-based APIs on streams used in System.Net.Http Dependent on #22381. +22397 area-System.IO Override new Span/Buffer-based APIs on BufferedStream Dependent on #22381. - [X] Override span-based Read/Write methods - [ ] Override buffer-based ReadAsync/WriteAsync methods +22398 area-System.Net Override new Span/Buffer-based APIs on SslStream Dependent on #22381. - [ ] Override Read(Span) - [ ] Override Write(ReadOnlySpan) - [ ] Override ReadAsync(Memory) - [x] Override WriteAsync(ReadOnlyMemory) (https://github.com/dotnet/corefx/pull/24295) +22399 area-System.Net Override new Span/Buffer-based APIs on NegotiateStream Dependent on #22381. +22400 area-System.Data Adding error message for inaccessible SQL Server Browser I added error message for the exception caused by inaccessible sql server browser. +22401 area-System.Numerics Add BigInteger Span-based APIs Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement in System.Runtime.Numerics - [x] Expose from System.Runtime.Numerics ref - [x] Test in System.Runtime.Numerics.Tests ```C# namespace System.Numerics { public struct BigInteger { public BigInteger(ReadOnlySpan value); public int GetByteCount(); public bool TryWriteBytes(Span destination, out int bytesWritten); public static BigInteger Parse(ReadOnlySpan value, NumberStyles style = NumberStyles.Integer, IFormatProvider provider = null); public static bool TryParse(ReadOnlySpan value, out BigInteger result, NumberStyles style = NumberStyles.Integer, IFormatProvider provider = null); public static bool TryFormat(Span destination, out int charsWritten, string format = null, IFormatProvider provider = null); … } } ``` +22403 area-System.Runtime Add primitive type Span-based Parse/TryParse/TryFormat methods "Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement parsing in System.Private.CoreLib in coreclr - [x] Implement parsing in System.Private.CoreLib in corert (unless primitive types are ""shared"" by then) - [x] Expose parsing from System.Runtime contract in corefx - [x] Add parsing tests to System.Runtime tests in corefx - [x] Implement formatting in System.Private.CoreLib in coreclr - [x] Implement formatting in System.Private.CoreLib in corert (unless primitive types are ""shared"" by then) - [x] Expose formatting from System.Runtime contract in corefx - [x] Add formatting tests to System.Runtime tests in corefx ```C# namespace System { public struct Int16 { public short Parse(ReadOnlySpan s, NumberStyles style = NumberStyles.Integer, IFormatProvider provider = null); public bool TryParse(ReadOnlySpan s, out short result, NumberStyles style = NumberStyles.Integer, IFormatProvider provider = null); public bool TryFormat(Span destination, out int charsWritten, string format = null, IFormatProvider provider = null); … } … // similar Parse/TryParse/TryFormat methods for each of: // Int32 // Int64 // UInt16 // UInt32 // UInt64 // Decimal // Double // Single // Boolean (but no NumberStyle/NumberFormatInfo args) } ```" +22404 area-System.Memory Consider adding {ReadOnly}BufferStream types Just as we have a MemoryStream that works with `byte[]` and an UnmanagedMemoryStream that works with a `byte*` and a length, we should support treating `Buffer` and `ReadOnlyBuffer` as streams. It’s possible we could get away with reimplementing `MemoryStream` on top of `Buffer`, but more than likely this would introduce regressions for at least some existing use cases, and it doesn't work with `ReadOnlyBuffer`. It would be nice if we could potentially write something ala: ```C# Stream s = buffer.TryGetArray(out var segment) ? new MemoryStream(segment.Array, segment.Offset, segment.Count) : new UnmanagedMemoryStream(&buffer.DangerousGetPinnableReference(), buffer.Length); ``` but it's possible that TryGetArray could return false but the wrapped memory not inherently pinned, in which case the UnmanagedMemoryStream case would be wrapping a pointer to memory that could get moved. To pin it and keep track of the pinning, you'd need a wrapper Stream type anyway. So, we could have two new stream types for these specific types: ```C# namespace System.IO { public class BufferStream : Stream { public BufferStream(Buffer buffer); public BufferStream(Buffer buffer, bool publiclyVisible); public bool TryGetBuffer(out Buffer buffer); … // overrides of all members on Stream } public class ReadOnlyBufferStream : Stream { public ReadOnlyBufferStream(ReadOnlyBuffer buffer); public ReadOnlyBufferStream(ReadOnlyBuffer buffer, bool publiclyVisible); public bool TryGetBuffer(out ReadOnlyBuffer buffer); … // overrides of all members on Stream, with those that write throwing NotSupportedException } } ``` The name of BufferStream is unfortunately close to that of BufferedStream, and they mean very different things, but I’m not sure that’s important enough to consider a less meaningful name. Alternatively, we could hide these behind a factory, e.g. ```C# public static Stream ToStream(this Buffer buffer) => new BufferStream(buffer); public static Stream ToStream(this ReadOnlyBuffer buffer) => new ReadOnlyBufferStream(buffer); ``` to keep them from needing to be public. Especially if we do the latter, we would want to consider either adding TryGetBuffer virtuals to the base Stream class, or introducing an interface that could be queried for and which exposing such methods. Then for example code that uses Streams and has optimizations when working directly with the underlying data can query for the interface and special-case when the underlying `Buffer` can be accessed, e.g. ```C# namespace System { public interface IHasBuffer { bool TryGetBuffer(out Buffer buffer); bool TryGetBuffer(out ReadOnlyBuffer buffer); } } ``` We could implement this not only on `BufferStream` and `ReadOnlyBufferStream`, but also on `MemoryStream`, `UnmanagedMemoryStream`, and even on non-streams, basically anything that can hand out a representation of its internals as buffers. +22405 area-System.Runtime Consider adding BitConverter overloads that accept endian option #22355 lists APIs we're planning to add that use `Span` instead of `byte[]`. These and the existing methods also use the current machine's endianness. We should separately consider overloads that accept the endianness to use, rather than always using that of the current machine, e.g. ```C# public static bool TryWriteBytes(Span destination, long value, bool? littleEndian); public static long ToInt64(ReadOnlySpan value, bool? littleEndian); // null littleEndian means current machine's ``` or ```C# public enum Endianness { Current, Little, Big } public static bool TryWriteBytes(Span destination, long value, Endianness endianness); public static long ToInt64(ReadOnlySpan value, Endianness endiannes); ```` cc: @bartonjs +22406 area-System.Runtime Add TextReader and TextWriter Span/Buffer-based APIs Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement in System.Runtime.Extensions - [x] Expose from System.Runtime.Extensions contract - [x] Add tests to System.Runtime.Extensions.Tests ```C# namespace System.IO { public class TextReader { public virtual int Read(Span destination); public virtual ValueTask ReadAsync(Buffer destination, CancellationToken cancellationToken = default(CancellationToken)); public virtual int ReadBlock(Span destination); public virtual ValueTask ReadBlockAsync(Buffer destination, CancellationToken cancellationToken = default(CancellationToken)); … } public class TextWriter { public virtual void Write(ReadOnlySpan source); public virtual Task WriteAsync(ReadOnlyBuffer source, CancellationToken cancellationToken = default(CancellationToken)); public virtual void WriteLine(ReadOnlySpan source); public virtual Task WriteLineAsync(ReadOnlyBuffer source, CancellationToken cancellationToken = default(CancellationToken)); … } } ``` EDIT 7/25/2017: Updated with CancellationTokens per API review. +22407 area-System.IO Tweak path related tests Needed to update a few tests for unix whitespace behavior. +22408 area-System.IO Override new Span/Buffer-based APIs on StreamReader Depends on https://github.com/dotnet/corefx/issues/22406. +22409 area-System.IO Override new Span/Buffer-based APIs on StreamWriter Depends on #22406. +22410 area-System.IO Override new Span/Buffer-based APIs on StringReader Depends on #22406. +22411 area-System.IO Override new Span/Buffer-based APIs on StringWriter Depends on #22406. +22412 area-System.Runtime Add TransformationStatus enum from corefxlab Based on corefxlab work, will be used by a variety of new corefx Span-based APIs. We need to re-review to make sure it's exactly what we want to bake in to the core of the framework ```C# namespace System.Buffers // System? { public enum TransformationStatus // TransformStatus? TransformResult? { Done, // Success? Complete? Ok? DestinationTooSmall, NeedMoreSourceData, // SourceTooSmall? InvalidData } } ``` cc: @terrajobst, @bartonjs, @KrzysztofCwalina, @ahsonkhan +22415 area-System.IO System.IO.MemoryMappedFiles.MemoryMappedView.CreateView(...) check for sufficient virtual memory is incomplete "The static factory method of the internal MemoryMappedView is typically called from MemoryMappedFile.CreateViewAccessor(...) after a user has created a MemoryMappedFile. An overload of CreateViewAccessor() with no parameters is provided for the common case that the view is to cover the entire file. That overload results in a DefaultSize value of zero being passed to the size parameter of MemoryMappedView.CreateView(). Line 38 of the file MemoryMappedView.Windows.cs calls a check, preceded by a comment: // if request is >= than total virtual, then MapViewOfFile will fail with meaningless error message // ""the parameter is incorrect""; this provides better error message in advance Interop.CheckForAvailableVirtualMemory(nativeSize); The problem is that ""nativeSize"" as implemented is zero under the (most?) common case just mentioned, such that the check (in Interop.Windows.cs) is not very probative: if (nativeSize >= totalVirtual) { throw new IOException(SR.IO_NotEnoughMemory); } Now the one caller (MemoryMappedFile) of MemoryMappedView.CreateView() has the actual file length (from its FileStream, or from a native call). On line 152 of MemoryMappedFile it ensures that the filestream.length is meaningful under the default capacity/size scenario, so it could readily provide it to MemoryMappedView.CreateView() to enable an accurate lower-bound expected memory consumption calculation and check before the Pinvoke call to MapViewOfFile. (By considering both the system page size as well as the allocation granularity it is straightforward to calculate a value that matches the viewInfo.RegionSize that is later returned by the existing VirtualQuery call.) Given that this problem is not resulting in a catastrophic failure (only a ""meaningless error message,"" per the comment in the code) and that it may not be all that common to be mapping views of large files exceeding the available virtual memory, I'm unsure where this fits in the grand scheme of priorities. However, I wanted to log it given that I found myself adding a remedy today in my own specialized implementation in case someone eventually logs a bug on this. I'm new here, almost a first time participant, so please let me know to what extent this falls below (or above) the current level of relevance/urgency." +22416 area-System.Data System.Data.SqlClient.Tests crash on UapAot in Release-x86 This seems to be a codegen bug as this only happens when ILC built in ret mode, if we build them as chk mode then they don't crash. There are various tests crashing and they seem to be flaky, once every 3 runs aprox. This is one of the tests I've seen crash: - System.Data.SqlClient.Tests.SqlErrorCollectionTest.CopyTo_Throws Error: ``` Unhandled exception at 0x0F4456D1 (mrt100_app.dll) in xunit.console.netcore.exe: 0xC0000005: Access violation reading location 0x000003E8. ``` Stack Trace: ``` > xunit.console.netcore.dll!$18_System::Data::SqlClient::SessionData..ctor() Line 72 Unknown xunit.console.netcore.dll!$18_System::Data::SqlClient::SqlInternalConnectionTds..ctor($18_System::Data::ProviderBase::DbConnectionPoolIdentity & identity, $18_System::Data::SqlClient::SqlConnectionString & connectionOptions, System::Object & providerInfo, bool redirectedUserInstance, $18_System::Data::SqlClient::SqlConnectionString & reconnectSessionData, $18_System::Data::SqlClient::SessionData & applyTransientFaultHandling, bool) Line 323 Unknown xunit.console.netcore.dll!$18_System::Data::SqlClient::SqlConnectionFactory.CreateConnection($18_System::Data::Common::DbConnectionOptions & options, $18_System::Data::Common::DbConnectionPoolKey & poolKey, System::Object & poolGroupProviderInfo, $18_System::Data::ProviderBase::DbConnectionPool & pool, $17_System::Data::Common::DbConnection & owningConnection, $18_System::Data::Common::DbConnectionOptions & userOptions) Line 136 Unknown xunit.console.netcore.dll!$18_System::Data::ProviderBase::DbConnectionFactory.CreateNonPooledConnection($17_System::Data::Common::DbConnection & owningConnection, $18_System::Data::ProviderBase::DbConnectionPoolGroup & poolGroup, $18_System::Data::Common::DbConnectionOptions & userOptions) Line 100 Unknown xunit.console.netcore.dll!$18_System::Data::ProviderBase::DbConnectionFactory.TryGetConnection($17_System::Data::Common::DbConnection & owningConnection, System::Threading::Tasks::TaskCompletionSource$1<$18_System::Data::ProviderBase::DbConnectionInternal> & retry, $18_System::Data::Common::DbConnectionOptions & userOptions, $18_System::Data::ProviderBase::DbConnectionInternal & oldConnection, $18_System::Data::ProviderBase::DbConnectionInternal & & connection) Line 278 Unknown xunit.console.netcore.dll!$18_System::Data::ProviderBase::DbConnectionInternal.TryOpenConnectionInternal($17_System::Data::Common::DbConnection & outerConnection, $18_System::Data::ProviderBase::DbConnectionFactory & connectionFactory, System::Threading::Tasks::TaskCompletionSource$1<$18_System::Data::ProviderBase::DbConnectionInternal> & retry, $18_System::Data::Common::DbConnectionOptions & userOptions) Line 691 Unknown xunit.console.netcore.dll!$18_System::Data::ProviderBase::DbConnectionClosed.TryOpenConnection($17_System::Data::Common::DbConnection & outerConnection, $18_System::Data::ProviderBase::DbConnectionFactory & connectionFactory, System::Threading::Tasks::TaskCompletionSource$1<$18_System::Data::ProviderBase::DbConnectionInternal> & retry, $18_System::Data::Common::DbConnectionOptions & userOptions) Line 1902 Unknown xunit.console.netcore.dll!$18_System::Data::SqlClient::SqlConnection.TryOpen(System::Threading::Tasks::TaskCompletionSource$1<$18_System::Data::ProviderBase::DbConnectionInternal> & retry) Line 1031 Unknown xunit.console.netcore.dll!$18_System::Data::SqlClient::SqlConnection.Open() Line 598 Unknown xunit.console.netcore.dll!$19_System::Data::SqlClient::Tests::SqlErrorCollectionTest.CreateCollection() Line 144 Unknown xunit.console.netcore.dll!$19_System::Data::SqlClient::Tests::SqlErrorCollectionTest.ValidateCopyToThrows(System::Action$3<$18_System::Data::SqlClient::SqlErrorCollection,$18_System::Data::SqlClient::SqlError[],System::Int32> & copyTo, System::Action$1<$18_System::Data::SqlClient::SqlErrorCollection> & additionalValidation) Line 93 Unknown xunit.console.netcore.dll!$19_System::Data::SqlClient::Tests::SqlErrorCollectionTest.CopyTo_Throws() Line 75 Unknown ``` I will force the tests to be built as chk for ILC towards getting a clean build in the .csproj adding a comment linked to this issue so that whenever this issue is solved we remove that line I will add. cc: @joshfree +22417 area-System.Runtime Add Convert Span-based APIs "Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement in System.Private.CoreLib in coreclr (""shared"" with corert) - [x] Expose from System.Runtime.Extensions contract in corefx - [x] Add tests to System.Runtime.Extensions tests in corefx ```C# namespace System { public class Convert { public static string ToBase64String(ReadOnlySpan bytes, Base64FormattingOptions options = Base64FormattingOptions.None); public static TransformationStatus ToBase64Chars(ReadOnlySpan bytes, Span chars, out int bytesConsumed, out int charsWritten, Base64FormattingOptions options = Base64FormattingOptions.None); public static TransformationStatus FromBase64(string s, Span destination, out int charsConsumed, out int bytesWritten, Base46FormattingOptions options = ...); public static TransformationStatus FromBase64(ReadOnlySpan s, Span destination, out int charsConsumed, out int bytesWritten, Base46FormattingOptions options = ...); … } } ``` Mostly approved, but needed to re-verify approach with TransformationStatus. Depends on https://github.com/dotnet/corefx/issues/22412." +22420 area-Microsoft.CSharp Skip interpreting arithmetic operands if the left argument is null The arithmetic operations have an optimisation where they read from the stack directly rather than popping and pushing. This can be extended to skip reading the right operand if the left is null (the result will always be the same as leaving the current null value on the stack) and reducing field accesses, so do so. +22421 area-System.Data Make DataCommonEventSource members public on uapaot, since reflection needed for EventSource functionality is blocked in UAP for nonpublic members. Fixes https://github.com/dotnet/corefx/issues/20589 The DataCommonEventSource members need to be marked public on uapaot in order for EventSource reflection to work. TestEventListener in DataCommonEventSourceTest enables events based on the event name, which is retrieved via reflection. Not enabling any events is what is causing the test failures in the above issue. I tried the ILTransform solution mentioned by @brianrob in https://github.com/dotnet/corefx/issues/20589, but the test runs fail since the event method at https://github.com/dotnet/corefx/blob/master/src/System.Data.Common/src/System/Data/Common/DataCommonEventSource.cs#L69 has a non-void return type. According to Brian, Events normally shouldn't work at all with a non-void return type, but so far this is the only issue we've seen with that event method. Marking the event source members public is less invasive than changing all the calls to DataCommonEventSource.EnterScope() that would be needed to make the ILTransform fix work +22422 area-System.Diagnostics Fixed races in EventCounters There were a number of races in EventCounters. Did an audit and fixed these. Also added the Dispose() method so that you can make counters for transient objects (e.g. files) Also turned on and beefed up the testing. Fixed tests. @brianrob, @stephentoub +22425 area-System.Console Test failure: System.ConsoleTests.Perf_Console/OpenStandardInput Opened on behalf of @v-haren The test `System.ConsoleTests.Perf_Console/OpenStandardInput` has failed. System.IO.IOException : Too many open files Stack Trace: at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func`2 errorRewriter) at Microsoft.Win32.SafeHandles.SafeFileHandleHelper.Open(Func`1 fdFunc) at System.ConsolePal.OpenStandardInput() at System.ConsoleTests.Perf_Console.OpenStandardInput() Build : Master - 20170719.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release +22427 area-System.Data System.IO.FileNotFoundException when opening connection in UWP "I try to get SQL Client to work in UWP. When I try to connect to a localdb I get an error. In debug mode: System.IO.FileNotFoundException: 'Could not load file or assembly 'Microsoft.Win32.Registry, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.' In release mode: System.TypeLoadException: 'Unresolved P/Invoke method 'RegOpenKeyEx!api-ms-win-core-registry-l1-1-0.dll' from this method. Please look for this method in build warnings for more details. ' It fails on the open command ``` using (SqlConnection conn = new SqlConnection()) { // Create the connectionString // Trusted_Connection is used to denote the connection uses Windows Authentication //conn.ConnectionString = ""Server=(localdb)\\MSSQLLocalDB;Database=Northwind;Trusted_Connection=true""; conn.ConnectionString = ""Server=(localdb)\\MSSQLLocalDB;Database=Northwind;Persist Security Info=False;User ID = test123; Password = xxxxxxx""; conn.Open(); } ``` 4.5.0-preview2-25518-02 of System.Data.SqlClient " +22428 area-System.IO Add BinaryReader Span-based APIs "Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [ ] Implement in System.Private.CoreLib in coreclr - [ ] Implement in System.Private.CoreLib in corert (if BinaryReader isn't yet in ""shared"") - [ ] Expose from System.IO contract in corefx - [ ] Add tests to System.IO tests in corefx ```C# namespace System.IO { public class BinaryReader { public virtual int Read(Span destination); public virtual int Read(Span destination); … } } ```" +22429 area-System.IO Add BinaryWriter Span-based APIs "Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [ ] Implement in System.Private.CoreLib in coreclr - [ ] Implement in System.Private.CoreLib in corert (if BinaryWriter isn't yet in ""shared"") - [ ] Expose from System.IO contract in corefx - [ ] Add tests to System.IO tests in corefx ```C# namespace System.IO { public class BinaryWriter { public virtual void Write(ReadOnlySpan value); public virtual void Write(ReadOnlySpan value); … } } ```" +22430 area-System.Runtime Add StringBuilder Span-based APIs "Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement in System.Private.CoreLib in coreclr (""shared"" with corert) - [x] Expose from System.Runtime contract in corefx - [x] Add tests to System.Runtime tests in corefx ```C# namespace System.Text { public class StringBuilder { public StringBuilder Append(ReadOnlySpan value); public StringBuilder Insert(int index, ReadOnlySpan value); public void CopyTo(int sourceIndex, Span destination, int count); … } } ```" +22431 area-System.Text Add Encoding Span-based APIs "Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [ ] Implement in System.Private.CoreLib in coreclr (""shared"" with corert) - [ ] Expose from System.Text.Encoding contract in corefx - [ ] Add tests to System.Text.Encoding tests in corefx ```C# namespace System.Text { public class Encoding { public virtual int GetByteCount(ReadOnlySpan chars); public virtual int GetBytes(ReadOnlySpan chars, Span bytes); public virtual int GetCharCount(ReadOnlySpan bytes); public virtual int GetChars(ReadOnlySpan bytes, Span chars); public string GetString(ReadOnlySpan bytes); public virtual ReadOnlySpan Preamble { get; } … } } ```" +22434 area-System.Net Test failure: System.Net.Security.Tests.NegotiateStreamTest / NegotiateStream_* ## Types of failures Affected tests: * NegotiateStream_StreamToStream_AuthToHttpTarget_Success * NegotiateStream_StreamToStream_KerberosAuthWithoutRealm_Success * NegotiateStream_StreamToStream_KerberosAuthentication_Success * NegotiateStream_EchoServer_ClientWriteRead_Successive_Async_Success * NegotiateStream_EchoServer_ClientWriteRead_Successive_Sync_Success * NegotiateStream_StreamToStream_KerberosAuthDefaultCredentials_Success ### GSSAPI operation failed with error Invalid status: * Preauthentication failed - Ubuntu17.04-17.10, Debian90 * Decrypt integrity check failed - Fedora25, Debian87, Ubuntu16.04-16.10 ``` System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. ---- System.ComponentModel.Win32Exception : GSSAPI operation failed with error - An invalid status code was supplied (Decrypt integrity check failed). at System.Net.Security.NegoState.ValidateCreateContext(String package, Boolean isServer, NetworkCredential credential, String servicePrincipalName, ChannelBinding channelBinding, ProtectionLevel protectionLevel, TokenImpersonationLevel impersonationLevel) in /root/corefx-1134723/src/System.Net.Security/src/System/Net/Security/NegoState.cs:line 207 at System.Net.Security.NegotiateStream.BeginAuthenticateAsClient(NetworkCredential credential, ChannelBinding binding, String targetName, ProtectionLevel requiredProtectionLevel, TokenImpersonationLevel allowedImpersonationLevel, AsyncCallback asyncCallback, Object asyncState) in /root/corefx-1134723/src/System.Net.Security/src/System/Net/Security/NegotiateStream.cs:line 101 at System.Net.Security.NegotiateStream.BeginAuthenticateAsClient(NetworkCredential credential, String targetName, AsyncCallback asyncCallback, Object asyncState) in /root/corefx-1134723/src/System.Net.Security/src/System/Net/Security/NegotiateStream.cs:line 61 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2](Func`5 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, Object state, TaskCreationOptions creationOptions) in /root/coreclr/src/mscorlib/src/System/Threading/Tasks/FutureFactory.cs:line 1081 at System.Net.Security.NegotiateStream.AuthenticateAsClientAsync(NetworkCredential credential, String targetName) in /root/corefx-1134723/src/System.Net.Security/src/System/Net/Security/NegotiateStream.cs:line 247 at System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_EchoServer_ClientWriteRead_Successive_Async_Success() in /root/corefx-1134723/src/System.Net.Security/tests/FunctionalTests/NegotiateStreamTestForUnix.cs:line 356 ----- Inner Stack Trace ----- at System.Net.Security.NegotiateStreamPal.AcquireCredentialsHandle(String package, Boolean isServer, NetworkCredential credential) in /root/corefx-1134723/src/Common/src/System/Net/Security/NegotiateStreamPal.Unix.cs:line 313 at System.Net.NTAuthentication.Initialize(Boolean isServer, String package, NetworkCredential credential, String spn, ContextFlagsPal requestedContextFlags, ChannelBinding channelBinding) in /root/corefx-1134723/src/Common/src/System/Net/NTAuthentication.Common.cs:line 127 at System.Net.Security.NegoState.ValidateCreateContext(String package, Boolean isServer, NetworkCredential credential, String servicePrincipalName, ChannelBinding channelBinding, ProtectionLevel protectionLevel, TokenImpersonationLevel impersonationLevel) in /root/corefx-1134723/src/System.Net.Security/src/System/Net/Security/NegoState.cs:line 203 ``` ## History of failures Day | Build | OS | Error message -- | -- | -- | -- 7/18-9/18 | N/A | \* | 178 failures -- GSSAPI operation failed with error 9/12-9/18 | N/A | \* | 109 failures -- Win32Exception : No such file or directory (Invalid argument on Suse422) 9/20-10/18 | N/A | \* | 28 failures -- Assert 10/23-10/31 | N/A | \* | 11 failures -- GSSAPI operation failed with error 11/1 | 20171101.03 | Ubuntu17.04 | 11/12 | 20171112.01 | Fedora25 | 11/12 | 20171112.01 | Fedora25 | 11/13 | 20171113.01 | Fedora25 | 11/13 | 20171113.01 | Fedora25 | 11/13 | 20171113.02 | Fedora25 | 2/6 | 20180206.04 | Debian90 | all 6 tests failed 2/15 | 20180215.04 | Ubuntu16.04 | 2x all 6 tests failed 3/1 | 20180301.04 | Fedora26 | 2x all 6 tests failed +22437 area-System.Security Extensibility for X509Certificate2 It would be really nice to have an extensibility point around `X509Certificate2` that allows certificates backed by other crypto providers. The existing implementation of `X509Certificate2` is pretty much hard-coded to use `RSACryptoServiceProvider` or `DSACryptoServiceProvider` on Windows. Not sure about the other platforms. My use case is that I'd like a way to support Azure Key Vault-backed certificates in a clean way and that appears impossible today. There is virtually nothing on the base class that can be overridden and the extension methods `GetRSAPublicKey` and `GetRSAPrivateKey` are pretty much hard-coded to `RSACng` and `RSACryptoServiceProvider` right now. My ideal goal is that I could create an `AzureKeyVaultX509Certificate` class that derives from `X509Certificate2` and that end users can work with the same as existing certificates. The constructor would take a `KeyVaultClient` and `KeyBundle` so that it would know the key identifier and public key. Sign and Decrypt operations would go to the Key Vault client instead of any native API. Calls to the `GetRSAPrivateKey` would get a custom implementation of `RSA` that knows how to call into Key Vault. +22440 area-System.Numerics Add more Math operation support System.Numerics.Vectors Support for some SIMD instructions are missing in Numerics.Vectors Vector.RootN //Only SquareRoot is implemented Vector.Exp //Every element of the result is exp(a,b) where a,b are input vectors Vector.LShift //Shift elements in a by elements in b Vector.RShift //Like above would simulate a = b >> c for all elements It wondsers me because Or and XOr is there but not shift. Code where Vectors would be perfect but are not supported yet: ``` while (pbuf < pend) { uint tx = x ^ (x << 11); uint ty = y ^ (y << 11); uint tz = z ^ (z << 11); uint tw = w ^ (w << 11); *(pbuf++) = x = w ^ (w >> 19) ^ (tx ^ (tx >> 8)); *(pbuf++) = y = x ^ (x >> 19) ^ (ty ^ (ty >> 8)); *(pbuf++) = z = y ^ (y >> 19) ^ (tz ^ (tz >> 8)); *(pbuf++) = w = z ^ (z >> 19) ^ (tw ^ (tw >> 8)); } ``` +22443 area-System.IO StackOverflow in System.IO.Tests.Directory_CreateDirectory.DirectoryLongerThanMaxLongPathWithExtendedSyntax_ThrowsException @JeremyKuhne your change 0721434 looks most relevant here. Not sure whether its unterminated or just too much recursion. I don't have symbols so I can't tell which path exactly. https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/259/consoleText System.IO.Tests.Directory_CreateDirectory.DirectoryLongerThanMaxLongPathWithExtendedSyntax_ThrowsException ``` System.IO.FileSystem.dll!Interop.Kernel32.FindFirstFile(string fileName, ref Interop.Kernel32.WIN32_FIND_DATA data) Unknown System.IO.FileSystem.dll!System.IO.Win32FileSystem.RemoveDirectoryHelper(string fullPath, bool recursive, bool throwOnTopLevelDirectoryNotFound) Unknown System.IO.FileSystem.dll!System.IO.Win32FileSystem.RemoveDirectoryHelper(string fullPath, bool recursive, bool throwOnTopLevelDirectoryNotFound) Unknown ... System.IO.FileSystem.dll!System.IO.Win32FileSystem.RemoveDirectoryHelper(string fullPath, bool recursive, bool throwOnTopLevelDirectoryNotFound) Unknown System.IO.FileSystem.dll!System.IO.Win32FileSystem.RemoveDirectoryHelper(string fullPath, bool recursive, bool throwOnTopLevelDirectoryNotFound) Unknown System.IO.FileSystem.dll!System.IO.Win32FileSystem.RemoveDirectory(string fullPath, bool recursive) Unknown System.IO.FileSystem.dll!System.IO.Directory.Delete(string path, bool recursive) Unknown CoreFx.Private.TestUtilities.dll!System.IO.FileCleanupTestBase.Dispose(bool disposing) Unknown CoreFx.Private.TestUtilities.dll!System.IO.FileCleanupTestBase.Dispose() Unknown ``` I don't know the directory, but this is the test directory. C:\Users\dotnet-bot\AppData\Local\Temp\Directory_CreateDirectory_4y5i43q1.nod +22444 area-System.ComponentModel System.ComponentModel.ComponentResourceManager.ApplyResources separator conflicts in uwp "Since UWP apps merge their resources into a pri file given the '.' separator for [ApplyResources](https://github.com/dotnet/corefx/blob/master/src/System.ComponentModel.TypeConverter/src/System/ComponentModel/ComponentResourceManager.cs#L70-L200) our costumers could potentially hit a MakePri failure when compiling their application. The reason why costumers could hit this is if they add into their Application's resources or consume a library that their resources have key/values like the example below: ```xml Object ObjectGetSetProperty ObjectNoSuchProperty ``` Where a resource is the Prefix of the full property name (Class.PropertyName). If we have this resources structure inside a UWP app when building it will fail with an error similar to this one: ``` error PRI175 : 0x80073b0f - Processing Resources failed with error : Duplicate Entry. error PRI278: 0xdef00531 - 'Resources.TestResx/Object' or one if its parents is defined as both resource and scope, which is not allowed. ``` We will need to provide an additional separator to our customers to have a valid workaround here rather than changing the ""Default"" resource (I suggest '-'). With this separator our customers will be able to have resources in the following structure: ```xml Default DefaultGetSetProperty DefaultNoSuchProperty DefaultGetOnlyProperty DefaultPrivateProperty ``` cc: @weshaggard @tarekgh " +22446 area-Microsoft.CSharp Replace Microsoft.CSharp methods for casting CType with normal operations. Lighter, allows for pattern-matching, avoids repeated field accesses and casts by moving more into locals. +22448 area-System.IO Nested directories were too deep Nesting directories with Windows paths were over 800 levels deep, causing intermittent issues with stack overflows. Making directory segments longer to mitigate. Remove a test that wasn't providing any real value but was complicating the helper methods and allocating a ton of memory. Fixes #22443 +22449 area-System.IO Remove ActiveIssue(21358) on WhiteSpace changes Changes fully merged in, no longer active issue +22450 area-Infrastructure Display the contents of init-tools.log Port of https://github.com/dotnet/corefx/pull/21894 to release/1.0.0 /cc @ravimeda +22451 area-Infrastructure Display the contents of init-tools.log Port of https://github.com/dotnet/corefx/pull/21894 to release/1.1.0 /cc @ravimeda +22452 area-System.Diagnostics [DiagnosticsSource] Hierarchical Request-Id to support unbounded traces "@vancem, @lmolkova, @SergeyKanzhelev The current version of the Request-Id is specified to have a max length of 1024 bytes. > Request-Id is a string up to 1024 bytes length. It contains only Base64 and ""-"" (hyphen), ""|"" (vertical bar), ""."" (dot), and ""_"" (underscore) characters. This max length is designed to accommodate the hierarchical request format which maintains a growing vector of elements. Assuming an average of two digit increments for outgoing paths, each stage requires 12 bytes : - 9 bytes (8 random characters + '_') - 2 digits - '.' This translates to about 83 vector elements after taking into account the root. While this may seem plentiful, it is still bounded and a kb is considerable overhead for tracking correlation on a web request. To address this, can we consider the following: - Allow for unbounded growth by resetting the vector. So when the vector at max length is received on the incoming path, the suffix is hashed and the Request-Id reinitialized with the first element being the hashed value. We can rely on a standard 64 bit hash to distinguish this from a regular element. - Reduce the max length to something like 128 bytes (which incidentally is the same max length for the cV 2.0) which should be sufficient for approximately 8 stages before being reset. For context, the cV does not support reset semantics. But this would allow for shorter max lengths and unbounded traces which are desirable traits for the next version." +22453 area-System.Security SqlConnection.Open fails with SSL error on macOS High Sierra (10.13) "SqlClient connections to any SQL Server instance fails on macOS High Sierra. The repro for this is below. This is impacting users of the MSSQL extension for VSCode - see https://github.com/Microsoft/vscode-mssql/issues/954 for the original bug report. I've created a .Net only repo below that's very simple. @saurabh500 @corivera @karelz could you please take a look and let us know if you need anything more? We naturally would like to get this into the next Preview of .Net Core 2.0 and we'll update our MSSQL release to include that as otherwise when High Sierra goes GA, users will start to run into this problem more often. **Repro steps** 1. Ensure you have a SQL Server instance running. In this example I'm using [localhost in Docker per MSSQL Docs](https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker) 2. install dotnet core 2.0 SDK on a mac 3. Create a new console application and add SqlClient dependency: ``` Exe netcoreapp2.0 ``` 4. Update the `Program.cs` file to call `SqlConnection.Open` ``` using System; using System.Data.SqlClient; namespace hwapp { class Program { static void Main(string[] args) { try { using (SqlConnection con = new SqlConnection(""Data Source=localhost;Initial Catalog=master;User=sa;Password=Yukon900"")) { con.Open(); } } catch (Exception e) { Console.WriteLine(e); } } } } ``` **Expected** Connection is opened successfully **Actual** SSL handshake error occurs: ``` System.Data.SqlClient.SqlException (0x80131904): A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed) ---> System.Security.Cryptography.CryptographicException: Error occurred during a cryptographic operation. at Internal.Cryptography.Pal.SecTrustChainPal.ParseResults(SafeX509ChainHandle chainHandle, X509RevocationMode revocationMode) at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) at System.Net.CertificateValidationPal.VerifyCertificateProperties(SafeDeleteContext securityContext, X509Chain chain, X509Certificate2 remoteCertificate,Boolean checkCertName, Boolean isServer, String hostName) at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback, ProtocolToken& alertToken) at System.Net.Security.SslState.CompleteHandshake(ProtocolToken& alertToken) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.SqlClient.SNI.SNITCPHandle.EnableSsl(UInt32 options) at System.Data.SqlClient.SNI.SNIProxy.EnableSsl(SNIHandle handle, UInt32 options) at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at hwapp.Program.Main(String[] args) in /Users/kevincunnane/hwapp/Program.cs:line 15 ClientConnectionId:85d1abe2-b84a-4773-8205-c3bb87312975 ``` " +22454 area-System.Threading Minor fixes to concurrent collections from port to CoreCLR See https://github.com/dotnet/coreclr/pull/12939 +22455 area-System.Data Re-enable IntegratedAuthConnectionTest, since the failures no longer repro on the latest uapaot test runs. Related to https://github.com/dotnet/corefx/issues/20718 +22457 area-Microsoft.CSharp Replace Microsoft.CSharp methods for casting Symbol with normal operations Lighter, allows for pattern-matching, avoids repeated field accesses and casts by moving more into locals. +22458 area-System.Data SqlClient FunctionalTests fail due to missing System.Private.Interop.dll The SqlClient functional tests are failing on a clean build of the latest master branch. SqlClient ManualTests are fine. Test output: Running tests... Start time: 16:41:07.42 Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'System.Private.Interop, Ver sion=999.999.999.999, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified . at System.ConsolePal.GetBufferInfo(Boolean throwOnNoConsole, Boolean& succeeded) at System.ConsolePal.set_ForegroundColor(ConsoleColor value) in C:\SqlProjects\CoreFx\src\System.Console\src\Sy stem\ConsolePal.Windows.cs:line 504 at System.Console.set_ForegroundColor(ConsoleColor value) in C:\SqlProjects\CoreFx\src\System.Console\src\Syste m\Console.cs:line 181 at Xunit.ConsoleClient.Program.Main(String[] args) Finished running tests. End time=16:41:41.72, Exit code = -532462766 Seems like the failures happen before the tests even get run. +22461 area-Serialization Fix BinaryFormatter AoT test differences Fix serialization tests to handle a couple of AoT differences: 1. AoT doesn't return ByteEqualityComparer from EqualityComparer.Default, so create it with reflection instead 2. CoreCLR changes the _version field of List differently than both AoT and NetFX, so pass arrays to the IEnumerable constructor of a few collections, which causes the _version fields to agree. Also updates the stored blobs to reflect this. +22462 area-System.Net Improve connection pooling in ManagedHandler Add support for purging stale connections from the pool and for a max number of connections per server. cc: @geoffkizer +22463 area-System.Net Integrated authentication failing when attempting to connect to SQL Server from macOS Sierra "This issue is originally discussed [here](https://github.com/Microsoft/vscode-mssql/issues/356#issuecomment-316166467). Following the [Kerberos Setup Instructions](https://github.com/Microsoft/vscode-mssql/blob/380cfb4e8acce9d9d8368d2a5f32cfff9c73a933/KERBEROS_HELP.md). Steps 1 through 3 work perfectly. However, when attempting step 4 I get the following: ``` mssql: Failed to connect: Cannot access Kerberos ticket. Ensure Kerberos has been initialized with 'kinit'. [3:36:58 PM] Error connecting to server ""[ServerName]"". Details: Cannot access Kerberos ticket. Ensure Kerberos has been initialized with 'kinit'. ErrorCode=InternalError, Exception=Interop+NetSecurityNative+GssApiException: GSSAPI operation failed with error - An unsupported mechanism was requested (unknown mech-code 0 for mech unknown). at System.Net.Security.NegotiateStreamPal.GssInitSecurityContext(SafeGssContextHandle& context, SafeGssCredHandle credential, Boolean isNtlm, SafeGssNameHandle targetName, GssFlags inFlags, Byte[] buffer, Byte[]& outputBuffer, UInt32& outFlags, Int32& isNtlmUsed) at System.Net.Security.NegotiateStreamPal.EstablishSecurityContext(SafeFreeNegoCredentials credential, SafeDeleteContext& context, String targetName, ContextFlagsPal inFlags, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, ContextFlagsPal& outFlags) at System.Data.SqlClient.SNI.SNIProxy.GenSspiClientContext(SspiClientContextStatus sspiClientContextStatus, Byte[] receivedBuff, Byte[]& sendBuff, Byte[] serverName) at System.Data.SqlClient.SNI.TdsParserStateObjectManaged.GenerateSspiClientContext(Byte[] receivedBuff, UInt32 receivedLength, Byte[]& sendBuff, UInt32& sendLength, Byte[] _sniSpnBuffer) at System.Data.SqlClient.TdsParser.SNISSPIData(Byte[] receivedBuff, UInt32 receivedLength, Byte[]& sendBuff, UInt32& sendLength) ``` Per @kevcunnane request, I'm submitting an issue here. The only other thing I've noticed since the other issue, is that if I run the `klist` command without first running the `kinit` command I have several other entries: ``` Credentials cache: API:ED70540F-329F-44FB-9C08-059260828BBB Principal: me@DOMAIN.COMPANY.COM Issued Expires Principal Jul 19 22:31:24 2017 Jul 20 08:31:24 2017 krbtgt/DOMIAN.COMPANY.COM@DOMIAN.COMPANY.COM Jul 19 22:31:41 2017 Jul 20 08:31:24 2017 host/COMPANYSERVER.DOMIAN.COMPANY.COM@DOMIAN.COMPANY.COM Jul 19 22:31:41 2017 Jul 20 08:31:24 2017 HTTP/COMPANYSERVER.DOMIAN.COMPANY.COM@DOMIAN.COMPANY.COM ``` We do use the [Jamf Casper Suite](https://www.jamf.com/products/jamf-pro/) to manage our Macs, and I'm assuming that's what those other entries are from. Finally, I also setup a .Net Core Console app to see if integrated security would run from there, following along the same lines as [this issue](https://github.com/dotnet/corefx/issues/22453) and I received the same exception as the one the VS Code is giving me with the mssql extension. > macOS 10.12.5 > dotnet 2.0.0-preview2-006497" +22464 area-System.Net Test: System.Net.WebSockets.Client.Tests.CloseTest / CloseAsync_DuringConcurrentReceiveAsync_ExpectedStates Opened on behalf of @Jiayili1 The test `System.Net.WebSockets.Client.Tests.CloseTest/CloseAsync_DuringConcurrentReceiveAsync_ExpectedStates(server: wss://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx)` has failed. System.Net.WebSockets.WebSocketException : The WebSocket is in an invalid state ('Closed') for this operation. Valid states are: 'Open, CloseReceived, CloseSent' Stack Trace: at Void System.Net.WebSockets.WinRTWebSocket.CheckValidState(WebSocketState[]) + 0x82 at Void System.Net.WebSockets.WinRTWebSocket.InterlockedCheckAndUpdateCloseState(WebSocketState, WebSocketState[]) + 0x26 at Void System.Net.WebSockets.WinRTWebSocket+d__43.MoveNext() + 0x1b2 --- End of stack trace from previous location where exception was thrown --- at Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x18 at Void System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0x66 at Void System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x5c at TResult System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() + 0x1e at System.Net.WebSockets.Client.Tests.CloseTest.d__11.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x18 at Void System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0x66 at Void System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x5c at Void Xunit.Sdk.TestInvoker`1+<>c__DisplayClass46_1+<b__1>d.MoveNext() + 0x1dc --- End of stack trace from previous location where exception was thrown --- at Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x18 at Void System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0x66 at Void System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x5c --- End of stack trace from previous location where exception was thrown --- at Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x18 at Void System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0x66 at Void System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x5c Build : Master - 20170720.91 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170720.91/workItem/System.Net.WebSockets.Client.Tests.Execution/analysis/xunit/System.Net.WebSockets.Client.Tests.CloseTest~2FCloseAsync_DuringConcurrentReceiveAsync_ExpectedStates(server:%20wss:~2F~2Fcorefx-net.cloudapp.net~2FWebSocket~2FEchoWebSocket.ashx) +22468 area-System.IO System.IO.Compression.ZipFile contents not available on Android platforms Hello, After installing the official NuGet package `System.IO.Compression.ZipFile`, version 4.3.0, on a Xamarin Android project, the `System.IO.Compression.ZipFile` assembly is not made available, even though the `System.IO.Compression` is there. The Nuget package actually only contains the library for the `net46` and `netstandard1.3` frameworks. The other 'supported' frameworks (all mobile specific) does not contain the library. So even if I've made sure that my android project is NetStandard compatible, I'll get the empty `MonoAndroid10` libraries. +22469 area-System.ComponentModel .NET Core 2 type load exception when using full .net framework dll "We've developed an app on top of ""Full .NET/Owin"". We managed to run that app on top of ""Full .NET/ASP.NET Core"" very easily. Then we started to test that on .net core 2 as it accepts referencing full .net assemblies. Interestingly lots of things are working (signalr, web api, static files middleware etc). Now we're working on ""ASP.NET Web API / OData"" as it has no suitable equivalent in .net core world). In web api parts, we've used swagger, and by running its UI, I received an interesting exception: ``` ""System.TypeLoadException"",""Message"":""Could not load type 'System.ComponentModel.DataAnnotations.AssociatedMetadataTypeTypeDescriptionProvider' from assembly 'System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToke n=31bf3856ad364e35' ``` This is a link of repository which contains the sample app you need to reproduce the problem: https://github.com/ysmoradi/WebApiOwinSwaggerProblemOnDotNetCore2Preview Run http://localhost:5000/api/swagger and you'll see that exception in console. Note that swagger itself works(!). You can fix this problem by commenting BadController class easily. You'll see GoodController methods in swagger ui and you can invoke them. I think there is a problem in .NET full shim in .NET Core 2." +22470 area-Microsoft.CSharp Remove checks for impossible conditions from Microsoft.CSharp #22456 removed some error codes that were never used, but there is other code in Microsoft.CSharp that checks for conditions that are irrelevant (can only happen when defining a type, constant operations, or other cases that only come up in static code) or impossible (lacking a mscorlib, types like `int` and `object` aren't available, in which case there would have been a fatal error before the code had a chance to run). The removal of this dead code of course needs to be careful of removing a condition that actually could happen, in which case a test cases that hit it should be added or if that's difficult for some reason the condition should be clearly documented in a comment. This issue is to track that. The following is a list of all errors not currently hit during testing. This isn't a perfect to-do list (the same error could have both possible and impossible paths to it) and it includes some cases that I think should definitely be reachable (but they should be covered by tests anyway for #14345 and marked off as soon as confirmed as reachable, and besides I could be wrong), but it will serve as a gauge. There could also be cases that cannot be hit but should be, as per #22534) - [x] CS0031 ConstOutOfRange (#25825) - [x] CS0035 AmbigUnaryOp (#22549) - [x] CS0038 WrongNestedThis (#26417) - [x] CS0120 ObjectRequired (#22682) - [x] CS0123 MethDelegateMismatch (#25217) - [ ] CS0131 AssgLvalueExpected - [x] CS0143 NoConstructors (#23069) - [x] CS0148 BadDelegateConstructor (#23371) - [x] CS0176 ObjectProhibited (#22682) - [x] CS0192 RefReadonly (#25042) - [ ] CS0198 AssgReadonlyStatic - [x] CS0199 RefReadonlyStatic (#25042) - [x] CS0205 AbstractBaseCall (#22518) - [x] CS0206 RefProperty (#25042) - [x] CS0218 MustHaveOpTF (#22782) - [x] CS0221 ConstOutOfRangeChecked (#25825) - [x] CS0229 AmbigMember (#25827) - [x] CS0233 SizeofUnsafe (#22519) - [x] CS0245 CallingFinalizeDepracated (#22518) - [x] CS0250 CallingBaseFinalizeDeprecated (#22518) - [x] CS0306 BadTypeArgument (#23286) - [x] CS0307 TypeArgsNotAllowed (#23069) - [x] CS0312 GenericConstraintNotSatisfiedNullableEnum (#23069) - [x] CS0313 GenericConstraintNotSatisfiedNullableInterface (#23069) - [x] CS0314 GenericConstraintNotSatisfiedTyVar (#23287) - [x] CS0403 TypeVarCantBeNull (#23278) - [x] CS0407 BadRetType (#23371) - [x] CS0428 MethGrpToNonDel (#23371) - [x] CS0452 RefConstraintNotSatisfied (#22549) - [x] CS0518 PredefinedTypeNotFound (#22471) - [ ] CS0570 BindToBogus - [x] CS0571 CantCallSpecialMethod (#22549) - [x] CS0648 BogusType (#22537) - [x] CS0656 MissingPredefinedMember (#22541) - [x] CS0664 LiteralDoubleCast (#22533) - [x] CS0716 ConvertToStaticClass (#22549) - [x] CS0718 GenericArgIsStaticClass (#23286) - [x] CS0762 PartialMethodToDelegate (#22548) - [x] CS1061 NoSuchMemberOrExtension (#22999) - [x] CS1113 ValueTypeExtDelegate (#22999) - [x] CS1503 BadArgType (#22748) - [x] CS1510 RefLvalueExpected (#25042) - [x] CS1545 BindToBogusProp2 (Should be used but wasn't, fixed in #22537) - [x] CS1546 BindToBogusProp1 (Should be used but wasn't, fixed in #22537) - [x] CS1594 BadDelArgTypes (#25218) - [x] CS1604 AssgReadonlyLocal (#25042) - [x] CS1605 RefReadonlyLocal (#25042) - [x] CS1612 ReturnNotLValue (#26370) - [x] CS1615 BadArgExtraRef (#22748) - [x] CS1620 BadArgRef (#22748) - [x] CS1648 AssgReadonly2 (#26370) - [x] CS1649 RefReadonly2 (#25042) - [x] CS1650 AssgReadonlyStatic2 (#26370) - [x] CS1651 RefReadonlyStatic2 (#25042) - [x] CS1656 AssgReadonlyLocalCause (#25214) - [x] CS1657 RefReadonlyLocalCause (#25042) - [x] CS1728 DelegateOnNullable (#23371) - [x] CS1729 BadCtorArgCount (#23069) - [x] CS1740 DuplicateNamedArgument (Enum value 5005) (#23281) - [x] CS1744 NamedArgumentSpecificationBeforeFixedArgument (Enum value 5002) (#23281) - [x] CS1928 BadExtensionArgTypes (#22999) - [x] CS1929 BadInstanceArgType (#22748) - [x] CS1950 BadArgTypesForCollectionAdd (#22525) - [x] CS1954 InitializerAddHasParamModifiers (#22525) +22471 area-Microsoft.CSharp Microsoft.CSharp PredefinedTypes remove dead code and tidy up "* Remove unused parameters from `PredefinedTypeInfo` ctor * Remove concept of ""required"" from `PredefinedTypes` If this code is running somewhere without a predefined type available (due to faulty or missing mscorlib) then it can't get as far as creating the `PredefinedTypeInfo` instance that will be used to determine that it is a required type and its absence requires a different error message! Contributes to #22470 Replace the `GetOptPredef…` and `GetReqPredef…` methods with single `GetPredef…` version as this is all they differ on. * Use shorter ctor on `PredefinedTypeInfo` when applicable. If we've a shorter override, we may as well use it consistently. * Simpler, branchless `IsSimpleType` * Single-pass `PredefinedType` name lookup. Use `TryGet` instead of `Contains` followed by indexer. * Only store `PredefinedType` in `PredefinedTypeInfo` in Debug Is only used to assert the ordering is correct; not needed in Release * More C# idiomatic names. Contributes to #16664 * Remove null-check from `DelayLoadPredefSym` Aside from it being unreachable, if a bug did cause a null here, the null-check is just moving where the exception will be thrown further away from where the problem was encountered, so it will be harder to debug. * Add `FirstNonSimpleType` to `PredefinedType` enum, aliasing `PT_INTPTR` Makes `IsSimpleType` check more self-documenting. " +22474 area-System.Data SqlConnectionStringBuilder - several keywords are not supported "I am wondering why [these keywords](https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionStringBuilder.cs#L873-L887) are marked as ""not supported"" in SqlConnectionStringBuilder? Is it by design or just is not yet implemented? Especially: - 'Network Library' - 'asynchronous processing' - 'connection reset' I tried to run mono System.Data tests using corefx sources (Passed: 2347, Failures: 36) and the most popular failure is `The keyword 'XX' is not supported on this platform.` For example, the following code works in .NET 4.6 but fails with NIE in .NET Core: `var builder = new SqlConnectionStringBuilder(""SERVER=localhost;Network=DBMSSOCN"");`" +22475 area-System.Security Unaccounted forced unoptimized build of System.Security.Cryptography.X509Certificates tests The tests are forced to run unoptimized with ILC but there's no issue I can find tracking an underlying codegen issue: https://github.com/dotnet/corefx/pull/22173#issuecomment-316449128. These either shouldn't be forced to run unoptimized, or there should be a UWP6.0 bug that codegen people are looking at. +22476 area-System.Collections Disable hanging Collections.Concurrent test on x86 too. It hangs on x86 too (just not consistently.) +22479 area-System.Net NullReferenceException from System.Uri "Sometimes `Uri.TryCreate` returns an invalid Uri when given a file path with a trailing slash. The `MinimalUriInfoSet` flag is set, but `m_Info` is null, so most of the methods and properties of the Uri throw `NullReferenceException`. The behavior is not deterministic; for the same input I sometimes get a working Uri. I can reproduce this (sometimes) with the following code in a unit test: ``` Uri result; string input = @""C:\users\jodavis\Documents\Visual Studio 2017\WebApplication1\WebApplication1\""; Uri.TryCreate(input, UriKind.Absolute, out result); Assert.AreEqual(""file://"", result.GetComponents(UriComponents.SchemeAndServer, UriFormat.SafeUnescaped)); ``` It doesn't reproduce every time. It seems to happen more frequently when built for Release. It also seems more frequent if I step into the `Uri.TryCreate` method; but if I step in any deeper than that, then it never reproduces." +22480 area-Infrastructure CodeCoverage runs are failing with various test faults "The last 8 runs have failed with the message ""NuGet hit a corrupted cache on this machine. Please email @jaredpar with a link to this run.""" +22481 area-System.Threading Enable Tasks.Extensions tests on uap +22482 area-Infrastructure .NET Core 2.0 test should support Windows IoT Core checking We are testing .NET Core 2.0 on Windows IoT Core in response to the growing popularity of developing managed apps on IoT Core platforms. Currently there is only one test flag 'IsNanoServer' to test .NET Core 2.0 for both Nano Server and IoT Core platforms. Because there is no specific flag for Windows IoT Core, it results in at least 2 false test failures. We suggest to add a specific test flag for Windows IoT Core, or OneCore UAP, in the CoreFx testing framework. +22483 area-System.Net ETW collection typo. +22484 area-System.Data System.Data.SqlClient doesn't work with System.Transactions.Transaction "I understand that there's no support for ambient transactions, but even explicit transactions don't seem to work. I have a middle tier which I'm porting to .NET Core. I simply want to make sure that the in-memory update is committed with the SQL update as an atomic operation. I had been using ambient transactions, but decided to move to explicit after reading that ambient wasn't supported. So I have: this.committableTransaction = new CommittableTransaction(); this.committableTransaction.EnlistVolatile(VolatileTransaction.Current, EnlistmentOptions.None); this.sqlConnection = new SqlConnection(""...""); sqlConnection.Open(); sqlConnection.EnlistTransaction(this.committableTransaction); **VolatileTransaction.Current** is my own implementation of the **IEnlistmentNotification** interface. When I run this, I get: _System.NotSupportedException: 'Enlisting in Ambient transactions is not supported.'_ If there's a different way to support a two-phase commit then I'll use it, just let me know how I'm supposed to do this basic operation. " +22485 area-Infrastructure ./build-native.sh fails to build after adding openssl function if run from root "On a clean Ubuntu 14.04 LTS machine with only the prereq's for .netcore and with the entire thing building first..... If I add a function to the opensslshim.h such as PER_FUNCTION_BLOCK(CRYPTO_set_ex_data, true) \ with adding the pointer as well #define CRYPTO_set_data_ex CRYPTO_set_data_ex_ptr and then run ./build-native.sh from the ""corefx"" root folder I get the following output https://gist.github.com/Drawaes/7b2011e7b9eda9c6adea4e4fdac0c9b4 However if I run it from /corefx/src/Native folder it works fine... ? " +22486 area-Serialization Pass right context in delegate Need use the context passed into the delegate not the context passed into the method. #21975 The test code is in https://github.com/dotnet/corefx/compare/master...JimboWei:iobjectfix#diff-842d4b05f36c1089c037e1b2e53908ecR3038 @shmao @zhenlan @mconnew +22488 area-System.IO NamedPipeClientStream high cpu usage when server unavailable "_From @coderb on July 20, 2017 11:31_ NamedPipeClientStream does a tight infinite loop (spins without blocking) if Connect(Timeout.Infinite) is called and the server is unavailable (not running or the pipe is busy). I would suggest that the retry loop should yield the cpu (Thread.Sleep/Task.Delay) for say 250ms. ``` public void Connect(int timeout) { CheckConnectOperationsClient(); if (timeout < 0 && timeout != Timeout.Infinite) { throw new ArgumentOutOfRangeException(""timeout"", SR.GetString(SR.ArgumentOutOfRange_InvalidTimeout)); } UnsafeNativeMethods.SECURITY_ATTRIBUTES secAttrs = PipeStream.GetSecAttrs(m_inheritability); int _pipeFlags = (int)m_pipeOptions; if (m_impersonationLevel != TokenImpersonationLevel.None) { _pipeFlags |= UnsafeNativeMethods.SECURITY_SQOS_PRESENT; _pipeFlags |= (((int)m_impersonationLevel - 1) << 16); } // This is the main connection loop. It will loop until the timeout expires. Most of the // time, we will be waiting in the WaitNamedPipe win32 blocking function; however, there are // cases when we will need to loop: 1) The server is not created (WaitNamedPipe returns // straight away in such cases), and 2) when another client connects to our server in between // our WaitNamedPipe and CreateFile calls. int startTime = Environment.TickCount; int elapsed = 0; do { // Wait for pipe to become free (this will block unless the pipe does not exist). if (!UnsafeNativeMethods.WaitNamedPipe(m_normalizedPipePath, timeout - elapsed)) { int errorCode = Marshal.GetLastWin32Error(); // Server is not yet created so let's keep looping. if (errorCode == UnsafeNativeMethods.ERROR_FILE_NOT_FOUND) { continue; } ``` _Copied from original issue: Microsoft/dotnet#445_" +22489 area-System.Data Throw a PlatformNotSupported exception when trying to connect to LocalDB with SqlClient on UAP, since UAP does not have the registry functionality needed for LocalDB connectivity. Also moved includes of Microsoft.Win32.Registry.dll and Interop.LoadLibraryEx.cs to non-uap Windows builds. The Registry dll does not exist in UWP, and the LoadLibrary interop is not used in uap since we just throw a NotSupportedException. Fixes https://github.com/dotnet/corefx/issues/22427 +22490 area-System.Numerics Adding tests for the new 'Floating-Point Classification APIs'. FYI. @mellinoe This also updates cases where we were using `IsInfinity || IsNaN` to be `!IsFinite` instead. +22491 area-System.Drawing Adding System.Drawing.Common.Imaging ImageAttributes tests. #20711 Converting old tests for ` System.Drawing.Common.Imaging.ImageAttributes` and adding new. +22492 area-System.IO "Test: System.IO.Tests.PathTests/GetFullPath_NonControlWhiteSpaceStays failed with ""Xunit.Sdk.EqualException""" "Opened on behalf of @Jiayili1 The test `System.IO.Tests.PathTests/GetFullPath_NonControlWhiteSpaceStays(component: \"" \"")` has failed. Assert.Equal() Failure\r ? (pos 7)\r Expected: C:\\Test?\r Actual: C:\\Test\r ? (pos 7) Stack Trace: at System.IO.Tests.PathTests.GetFullPath_NonControlWhiteSpaceStays(String component) at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetVI[T0](Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x56 at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x2f at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x11a Build : Master - 20170721.91 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170721.91/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.IO.Tests.PathTests~2FGetFullPath_NonControlWhiteSpaceStays(component:%20%5C%22%C2%85%5C%22)" +22493 area-System.IO "Test: System.IO.Tests.PathTests/GetDirectoryName_NonControl failed with ""System.ArgumentException """ "Opened on behalf of @Jiayili1 The test `System.IO.Tests.PathTests/GetDirectoryName_NonControl(path: \"" \"")` has failed. System.ArgumentException : The path is empty.\r Parameter name: path Stack Trace: at String System.IO.Path.GetDirectoryName(String) + 0xb8 at System.IO.Tests.PathTests.GetDirectoryName_NonControl(String path) at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetVI[T0](Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x56 at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x2f at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x11a Build : Master - 20170721.91 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170721.91/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.IO.Tests.PathTests~2FGetDirectoryName_NonControl(path:%20%5C%22%C2%A0%5C%22)" +22494 area-Microsoft.CSharp Remove dead symbol and symbol kinds from Microsoft.CSharp * Remove `UnresolvedAggregateSymbol` No path by which it is ever created. * Remove unused symbol masks, and redundant casts in definition. * Remove redundant switch cases on `SYMKIND`, and then remove any `SYMKIND` this leaves unused. * Simplify `ErrArgSymKind` `AssemblyQualifiedNamespaceSymbol`s are only ever created with the empty string for their name, so the re-write within `ErrArgSymKind` will always result in `SK_ExternalAliasDefinitionSymbol` being set. This is only ever used in `UserStringBuilder.ErrSK` where `SK_AssemblyQualifiedNamespaceSymbol` and `SK_ExternalAliasDefinitionSymbol` are both cases judged to be unreachable. Remove the rewrite from `ErrArgSymKind` just let `SK_AssemblyQualifiedNamespaceSymbol` hit the same default case that `SK_ExternalAliasDefinitionSymbol` would have. Remove `SK_ExternalAliasDefinitionSymbol` as it is now not used. +22495 area-System.Net Disable default proxy credentials tests for managed handler One of these tests is now hanging on Unix after the updated connection pooling changes went in. Disabling for now to unblock CI. cc: @geoffkizer +22498 area-Infrastructure Update CoreClr, CoreFx, CoreSetup, ProjectNTfs, ProjectNTfsTestILC, Standard to preview1-25525-01, preview1-25525-01, preview1-25525-03, rel-25525-00, rel-25525-00, preview1-25524-01, respectively (release/uwp6.0) +22499 area-System.Data Implement QuoteIdentifier and UnquoteIdentifier in OdbcCommandBuilder `QuoteIdentifier(..)` and `UnquoteIdentifier(..)` in `OdbcCommandBuilder` are not implemented and throw NIE - I copy-pasted code from [reference-sources](http://referencesource.microsoft.com/#System.Data/System/Data/Odbc/OdbcCommandBuilder.cs,240) to fill the gaps and added tests. It also fixes few tests in mono as part of https://github.com/mono/mono/pull/4893 +22500 area-Microsoft.CSharp Microsoft.CSharp does not identify indexer properties correctly "The dynamic binder assumes that all indexers are called `Item` with the exception of that on `string`. So for example: ```C# public class AllTheIntegers { [IndexerName(""Integers"")] public int this[int x] => x; } var i = new AllTheIntegers(); dynamic d = i; int staticAnswer = i[42]; // 42 int dynamicAnswer = d[42]; // RuntimeBinderException: // Cannot apply indexing with [] to an expression of type 'AllTheIntegers'" +22501 area-Microsoft.CSharp Have Microsoft.CSharp lookup indexers using DefaultMemberAttribute Fixes #22500 +22502 area-System.IO System.IO.FileSystem.Tests.*.LongPathSegment failed in UapAot All LongPathSegment tests under System.IO.FileSystem failed in UapAot with error: ``` Expected one of: (System.IO.IOException, System.IO.PathTooLongException) -> Actual: (System.IO.DirectoryNotFoundException) ``` Failing Tests: - System.IO.Tests.FileInfo_Create.LongPathSegment - System.IO.Tests.File_Create_str.LongPathSegment - System.IO.Tests.File_Create_str_i.LongPathSegment - System.IO.Tests.File_Create_str_i_fo/LongPathSegment https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170721.02/workItem/System.IO.FileSystem.Tests cc: @danmosemsft +22503 area-System.IO Recursive directory deletion doesn't scale On Windows in particular, as paths can be ~32K characters long. It is quite possible to have directories nested 1000 levels deep. (#22443) On Windows the P/Invoke is suboptimal- the WIN32_FIND_DATA struct isn't blittable, causing multiple managed and unmanaged heap allocations in addition to eating up space on the stack. Making this blittable and passing it in by ref would relieve a large chunk of the stack pressure. [RemoveDirectoryHelper](https://github.com/dotnet/corefx/blob/master/src/System.IO.FileSystem/src/System/IO/Win32FileSystem.cs#L449-L601) +22506 area-System.Runtime [uapaot] AsyncTaskMethodBuilder.SetStateMachine throws when 'm_moveNextAction' is uninitialized "It's a difference from CoreCLR behavior, the exception occurs here: https://github.com/dotnet/corert/blob/master/src/System.Private.CoreLib/src/System/Runtime/CompilerServices/AsyncMethodBuilder.cs#L874 The following test was temporarily disabled for uapaot in PR https://github.com/dotnet/corefx/pull/22481: - AsyncValueTaskMethodBuilderTests.SetStateMachine_InvalidArgument_ThrowsException Test: ```c# AsyncValueTaskMethodBuilder b = ValueTask.CreateAsyncMethodBuilder(); AssertExtensions.Throws(""stateMachine"", () => b.SetStateMachine(null)); // The following line throws InvalidOperationException on uapaot b.SetStateMachine(new DelegateStateMachine()); ```" +22507 area-Serialization Disabling adjustmentrule blob sanity check till code is converged Fixes https://github.com/dotnet/corefx/issues/22348 @tarekgh and I agreed that we will disable the blob check for TimeZoneInfo.AdjustmentRule till code is converged into shared folder for coreclr/corert. This fixes the last uapaot serialization failure. Disabling the test is safe as the difference in the blob is a field which exists in coreclr but not in corert which handles Unix daylightsavings scenarios. For UWP6.0 this isn't required and therefore disabling the test case till the TimeZoneInfo is fully converged isn't an issue. +22508 area-System.Reflection Value 0x0010 for DllCharacteristics is missing In corefx/src/System.Reflection.Metadata/src/System/Reflection/PortableExecutable/PEFileFlags.cs, there is no value for 0x0010 listed. I cannot find it documented anywhere, however if I build a native DLL with cl.exe and pass /APPCONTAINER to the linker, this bit is present in the resulting PE file's DllCharacteristics field. While the link.exe documentation for /APPCONTAINER isn't clear whether it actually applies to DLLs, the fact that the C# compiler only has a single /out:library option as opposed to separate /out:winexe and /out:appcontainerexe options would seem to indicate that it doesn't apply. Can someone check with the Visual C++ compiler team to find out what the value of 0x0010 is in DllCharacteristics and if it has anything to do with building a DLL with /APPCONTAINER, or is just a coincidence as a result of /APPCONTAINER activating other options in the reuslting output? +22509 area-Infrastructure Overriding the RID for build.sh I'm building the coreclr, corefx, and cli repos for Amazon Linux. When I build the corefx repo I run into issues because the build scripts and tools don't handle the RID 'amzn.2015.09-x64' properly. I originally tried to fix the build scripts in the corefx repo to override the RID, instead of deriving from /etc/os-release. But there are scripts and tools that get downloaded as part of the build that reference the /etc/os-release file too. The temporary workaround I'm using is to change the /etc/os-release file to make the tools think they're running on 'rhel.7-x64', since Amazon Linux is closest to that distro. When I change /etc/os-release the build and tests work. That's not a long term solution though, since it's not safe to change that file permanently. Do you have any suggestions on how to override the RID globally for the duration of the build? +22511 area-Microsoft.CSharp Some optimisations for Microsoft.CSharp.RuntimeBinder.SymbolTable * Merge ClearCache() into ctor * Switch in IsOperator Don't keep hitting virtual property, and don't repeat checks. * Only get name property once per method when hunting conversions. * Make two never-used return types void. * Add parameter conversions during AddNamesOnType rather than looping twice * Don't create store results in AddNamesInInheritanceHierarchy (not needed any more) * Don't call GetRuntimeEvents unless we've processed a member. If we won't use it, we don't need it. * Only iterate through members once * Add to _namesLoadedForEachType before further work. Skip if already done * Avoid some double type checks +22512 area-System.Xml Fix GetTypeCode mistake in XsltCompileContext Fixes https://github.com/dotnet/corefx/issues/22373 This was a mistake when porting Xml. Looked at the history and confirmed that only two places were affected. This PR fixes those, re-enables tests and adds sort for the result xml, and finally does some cleanup. cc: @danmosemsft +22515 area-System.Net SslStream.AuthenticateAsClient takes a long time to throw given invalid remote cert on macOS High Sierra "Starting in macOS 10.13, some Kestrel tests that expect `SslStream.AuthenticateAsClient[Async] to fail got dramatically slower. The reason for this that the call to AuthenticateAsClient takes much longer on 10.13 than it does in previous versions of macOS. To demonstrate this, run the following console app against a website with an invalid cert. If you don't have such a website easily available, feel free to use [Kestrel's SampleApp](https://github.com/aspnet/KestrelHttpServer/tree/rel/2.0.0-preview2/samples/SampleApp). ``` using System; using System.Diagnostics; using System.Net; using System.Net.Security; using System.Net.Sockets; using System.Security.Authentication; using System.Security.Cryptography.X509Certificates; namespace ClientApp { class Program { static void Main(string[] args) { using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) { socket.Connect(new IPEndPoint(IPAddress.Loopback, 5001)); using (var rawStream = new NetworkStream(socket)) using (var sslStream = new SslStream(rawStream)) { Console.WriteLine(""Calling SslStream.AuthenticateAsClient with a list of enabled SslProtocols.""); Exception authenticationEx = null; var stopWatch = new Stopwatch(); stopWatch.Start(); try { sslStream.AuthenticateAsClient(""127.0.0.1"", new X509CertificateCollection(), SslProtocols.Tls11 | SslProtocols.Tls12, checkCertificateRevocation: true); } catch (Exception ex) { authenticationEx = ex; } Console.WriteLine(""SslStream.AuthenticateAsClient completed in {0} ms. Ex: {1}"", stopWatch.ElapsedMilliseconds, authenticationEx); } } Console.WriteLine(); Console.WriteLine(); using (var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)) { socket.Connect(new IPEndPoint(IPAddress.Loopback, 5001)); using (var rawStream = new NetworkStream(socket)) using (var sslStream = new SslStream(rawStream)) { Console.WriteLine(""Calling SslStream.AuthenticateAsClient without extra arguments.""); Exception authenticationEx = null; var stopWatch = new Stopwatch(); stopWatch.Start(); try { sslStream.AuthenticateAsClient(""127.0.0.1""); } catch (Exception ex) { authenticationEx = ex; } Console.WriteLine(""SslStream.AuthenticateAsClient completed in {0} ms. Ex: {1}"", stopWatch.ElapsedMilliseconds, authenticationEx); } } } } } ``` Here's the output of the script on macOS 10.13 (High Sierra): ``` bash-3.2$ ~/.dotnet/dotnet run Calling SslStream.AuthenticateAsClient with a list of enabled SslProtocols. SslStream.AuthenticateAsClient completed in 40709 ms. Ex: Interop+AppleCrypto+AppleCommonCryptoCryptographicException: No error. at Internal.Cryptography.Pal.SecTrustChainPal.Execute(DateTime verificationTime, Boolean allowNetwork, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationFlag revocationFlag) at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate, Boolean throwOnException) at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) at System.Net.CertificateValidationPal.VerifyCertificateProperties(SafeDeleteContext securityContext, X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, Boolean isServer, String hostName) at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback, ProtocolToken& alertToken) at System.Net.Security.SslState.CompleteHandshake(ProtocolToken& alertToken) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) at ClientApp.Program.Main(String[] args) in /Users/aspnetci/KestrelHttpServer/samples/ClientApp/Program.cs:line 30 Calling SslStream.AuthenticateAsClient without extra arguments. SslStream.AuthenticateAsClient completed in 10173 ms. Ex: System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure. at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost) at ClientApp.Program.Main(String[] args) in /Users/aspnetci/KestrelHttpServer/samples/ClientApp/Program.cs:line 56 ``` And here's the output of the script on macOS 10.12 (Sierra) for comparison: ``` bash-3.2$ ~/.dotnet/dotnet run Calling SslStream.AuthenticateAsClient with a list of enabled SslProtocols. SslStream.AuthenticateAsClient completed in 90 ms. Ex: System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure. at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) at ClientApp.Program.Main(String[] args) in /Users/asplab/KestrelHttpServer/samples/ClientApp/Program.cs:line 30 Calling SslStream.AuthenticateAsClient without extra arguments. SslStream.AuthenticateAsClient completed in 20 ms. Ex: System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure. at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) at System.Net.Security.SslStream.AuthenticateAsClient(String targetHost) at ClientApp.Program.Main(String[] args) in /Users/asplab/KestrelHttpServer/samples/ClientApp/Program.cs:line 56 ```" +22518 area-Microsoft.CSharp Remove guards against inappropriate base or Finalize calls from Microsoft.CSharp There's no way to construct a dynamic call to a base method (the static compiler raises CS1971 on such attempts, and there's no way to indicate it in hand-coding against the binding methods). As such all paths for the flags indicating a base call are dead code. As such the exception for base-calling an abstract class or a destructor cannot be reached, so remove the error codes for them. Also remove the error code for calling a finaliser directly as likewise impossible to express (calling another object's finaliser is separately blocked due to access). Contributes to #22470 +22519 area-Microsoft.CSharp Consolidate overloads of checkUnsafe in Microsoft.CSharp One is only ever called by the other, so merge them into a single method and remove paths this rules out. This shows an assert using `ErrorCode.ERR_SizeofUnsafe` to be unnecessary and it was the only use of that code, so remove it. Contributes to #22470 +22520 area-System.Linq Request: Consider displaying count in debugger display when known for System.Linq iterators "Today I was debugging an xUnit theory that accepted an `IEnumerable`. In my test data method, I was generating the enumerable via `Enumerable.Range`. When I looked at the enumerable in the debugger, it was stringified to `{System.Linq.RangeIterator}`. I needed to evaluate the enumerable via 'Results View' and count the number of elements displayed to find the count. Can we consider just displaying the count in the debugger display if we know it already? We can even consider adding more information for a few iterators, where there's not a risk of stringifying a really long collection or evaluating user-supplied functions. For example, we can show `Start = x, Count = y` in the debugger display for `Range` and `Element = ..., Count = x` for `Repeat`." +22525 area-Microsoft.CSharp Remove Microsoft.CSharp paths for collection initialization There's no way to express this to the dynamic binder (any use of `dynamic` in an initializer is turned into `Add` calls at the static compilation stage), so `BindMethodGroupToArgumentsCore` is only ever called with `bindingCollectionAdd` as false). Remove this parameter and those paths that depend on it being true. Entails the deletion of `ERR_BadArgTypesForCollectionAdd` and `ERR_InitializerAddHasParamModifiers`, contributes to #22470 +22527 area-Infrastructure Project URL isn't meaningful Our packages all point to `http://dot.net` which isn't a very meaningful location. Instead, the packages should probably point to their proper GitHub repos, e.g. `https://github.com/dotnet/corefx`. +22528 area-Microsoft.CSharp RuntimeBinderException could provide a useful HelpLink Many causes of `RuntimeBinderException` being thrown are directly analogous to causes of compile-time errors when compiling C#. These errors all have some, often copious, information available about them on the web, and roslyn already has a mechanism for guiding developers to a Bing search, which could be easily piggy-backed on to provide a `HelpLink` that has a good chance of beating the results found by copy-pasting the error message into a search engine. +22529 area-Microsoft.CSharp Add HelpLink to RuntimeBinderException when error relates to C# error Closes #22528 +22533 area-Microsoft.CSharp Remove two checks for EXPRFLAG values in Microsoft.CSharp that are never set * Remove checks for implicit this. We never have an implicit this within a dynamic expression (if an argument to an expression with implicit this has a dynamic argument, then the static binder has already selected the correct object or type argument), so don't check for it when checking static-ness (*stasis*? :wink:) is correct * Remove check for literal constant. Literal status is never set (and rather meaningless after static compilation), so remove branch depending on it. Entails removal of `ERR_LiteralDoubleCast`, contributes to #22470 +22534 area-Microsoft.CSharp Microsoft.CSharp does not report CS1545 or CS1546 "If a type has property with parameters that is not its indexer property, then attempting to index it in C# will cause either CS1545 if it has both a getter and setter (""Property, indexer, or event 'XXX' is not supported by the language; try directly calling accessor methods 'get_XXX' or 'set_XXX'"") or CS1546 if it has only one of those (""Property, indexer, or event 'XXX' is not supported by the language; try directly calling accessor method 'get_XXX'""). If the same thing happens with dynamic code, it throws an exception equivalent to a less helpful (and slightly misleading) CS0570 with a message of ""'TheType' is not supported by the language"". There's code to report CS1545 or CS1546, but it fails to identify the situation when that code should be run." +22535 area-System.Net ClientWebSocket throws exception when connecting after abort "The [documentation ](https://msdn.microsoft.com/en-us/library/system.net.websockets.clientwebsocket.abort(v=vs.110).aspx) of `ClientWebSocket.Abort()` says: > Aborts the connection and cancels any pending IO operations. But after calling `Abort`, one can no longer connect with that ClientWebSocket. The following snippet throws an ObjectDisposedException (""Cannot access a disposed object""): ``` CancellationTokenSource src = new CancellationTokenSource(); ClientWebSocket socket = new ClientWebSocket(); socket.ConnectAsync(new Uri(""wss://echo.websocket.org""), src.Token).Wait(); socket.Abort(); socket.ConnectAsync(new Uri(""wss://echo.websocket.org""), src.Token).Wait(); ``` I understand that this exception is thrown when trying to reconnect after a `Dispose` call (since the documentation states that unmanaged resources are released), but why is it also thrown after `Abort`?" +22536 area-Microsoft.CSharp Constructor Using Dynamic Type Not Visible When Using InternalsVisibleTo "_From @adamrodger on July 23, 2017 16:35_ I have a class in `ClassLibrary1` like this: ```csharp [assembly: InternalsVisibleTo(""OtherLibrary"")] public class Foo { internal Foo(dynamic bar) { Console.WriteLine(bar.Bar); } } ``` And then in `OtherLibrary` I have a test: ```csharp [Fact] public void Test1() { dynamic bar = new { Bar = ""Success!"" }; Foo x = new Foo(bar); } ``` **Expected Result**: Running the test passes and ""Success!"" is written to the console **Actual Result**: ``` Microsoft.CSharp.RuntimeBinder.RuntimeBinderException : 'ClassLibrary1.Foo.Foo(object)' is inaccessible due to its protection level at CallSite.Target(Closure , CallSite , Type , Object ) at CallSite.Target(Closure , CallSite , Type , Object ) at OtherProject.UnitTest1.Test1() ``` If I change the constructor to take an explicitly typed object (e.g. pass a string directly) then the test passes. If I make the constructor public then the test also passes. It's only when `Foo` has an internal constructor with a `dynamic` argument. _Copied from original issue: dotnet/coreclr#12988_" +22537 area-Microsoft.CSharp "Remove most use of ""Bogus"" from Microsoft.CSharp and fix remaining" * Remove concept of bogus from types and most symbols. Since bogus types can't get as far as the dynamic binder, the only case where bogus can be true is when a non-indexer parametrized property, defined in a language where that is allowed, is encountered. In other cases computing bogosity involves recursive checks that always hit false. Give `PropertySymbol` a separate `Bogus` property to use where it could be set, and remove all other uses of `GetBogus` and similar. Entails removal of `ERR_BogusType`, contributes to #22470 * Identify indexer properties correctly in `AddPropertyToSymbolTable` `AddPropertyToSymbolTable` assumes any property with parameters is an indexer, which makes the subsequent check that only indexers can have parameters tautologous. Check `DefaultMemberAttribute` instead. * Remove `useMethInstead` from property symbols and consider always true. `useMethInstead` should be set in `AddPropertyToSymbolTable` when bogus is set, but is not. However, the only time it is looked for the only possible value is true as that is the only condition under which a symbol can be bogus, so remove it, and the path for it being false. This now means that `ErrorCode.ERR_BindToBogusProp1` or `ErrorCode.ERR_BindToBogusProp2` will be used when appropriate (contributes to #22470). Fixes #22534 * Tests for accessing non-indexer parameter properties * Remove bogus check within PredefinedMembers Predefined properties cannot be bogus. +22538 area-System.Data Increase code coverage from 70.8% to 74.9% on System.Data.Common.DataColumnMappingCollection Hi, I had some time so here are a few more unit tests. If you have any questions or comments, please let me know. Thanks, Michael +22539 area-System.Net add test variations for simulating sync operations over a nonblocking socket On non-Windows platforms, once non-blocking is turned on (either explicitly or by performing an async operation), we always stay in non-blocking mode. Therefore, any subsequent sync operation have to be simulated via async and explicit blocking. Add some test variations that cover this scenario. Also fix the Send timeout test to actually test for Send timeout. @stephentoub +22541 area-Microsoft.CSharp Remove some deadcode from Microsoft.CSharp's predefined members * Remove predefined methods the dynamic compiler never uses * Remove null-check from `GetMethod` and merge `GetOptionalMethod` into it. Predefined methods can't be unexpectedly missing if the code is running. * Don't look for setter for predefined property. The only example doesn't have one. * Change `LoadProperty` order to always load property first, ensuring method loads correctly immediately. * Remove error check from `GetProperty` as it cannot happen for only value it is ever called with. * Remove `ReportError` as the two overloads that called it are gone. Entails removal of `ERR_MissingPredefinedMember`, contributes to #22470 * Remove `PP_FIRST` Acts as a guard value, but starting from zero works just as well and without waste. * Remove `PM_FIRST` Acts as a guard, but 0 or `PM_COUNT` works as well without waste. +22542 area-System.Data "Test: System.Data.SqlClient.Tests.AmbientTransactionFailureTest/TestSqlException failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.AmbientTransactionFailureTest/TestSqlException(connectAction: Action`1 { Method = $BlockedFromReflection_4_851c0221 { Attributes = ReuseSlot, Assembly, HideBySig, C...` has failed. Assert.Throws() Failure\r Expected: typeof(System.Data.SqlClient.SqlException)\r Actual: typeof(System.ArgumentNullException): Value cannot be null.\r Parameter name: name Stack Trace: at System.Resources.ResourceManager.GetString() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Resources\ResourceManager.cs:line 1036 at System.SR.GetResourceString() in E:\A\_work\887\s\corefx\src\Common\src\System\SR.cs:line 28 at System.Data.SqlClient.TdsParser.ProcessSNIError() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParser.cs:line 1169 at System.Data.SqlClient.TdsParser.Connect() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParser.cs:line 329 at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs:line 1573 at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs:line 1275 at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist$catch$0() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs:line 1184 at System.Data.SqlClient.SqlInternalConnectionTds..ctor() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs:line 355 at System.Data.SqlClient.SqlConnectionFactory.CreateConnection() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnectionFactory.cs:line 135 at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionFactory.cs:line 113 at System.Data.ProviderBase.DbConnectionPool.CreateObject$catch$3() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs:line 755 at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs:line 1606 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection$catch$1() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs:line 1132 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs:line 1044 at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionFactory.cs:line 289 at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal$catch$0() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionInternal.cs:line 700 at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionClosed.cs:line 69 at System.Data.SqlClient.SqlConnection.TryOpen() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnection.cs:line 1031 at System.Data.SqlClient.SqlConnection.Open$catch$0() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnection.cs:line 606 at System.Data.SqlClient.Tests.AmbientTransactionFailureTest.<>c.<.cctor>b__13_0() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\tests\FunctionalTests\AmbientTransactionFailureTest.cs:line 22 at System.Data.SqlClient.Tests.AmbientTransactionFailureTest.<>c.<.cctor>b__13_4() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\tests\FunctionalTests\AmbientTransactionFailureTest.cs:line 49 at System.Threading.Tasks.TaskToApm.<>c__DisplayClass3_0.b__0() in f:\dd\ndp\fxcore\CoreRT\src\Common\src\System\Threading\Tasks\TaskToApm.cs:line 126 Build : Master - 20170724.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170724.01/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.AmbientTransactionFailureTest~2FTestSqlException(connectAction:%20Action%601%20%7B%20Method%20=%20$BlockedFromReflection_4_851c0221%20%7B%20Attributes%20=%20ReuseSlot,%20Assembly,%20HideBySig,%20C... +22543 area-System.Data "Tests under: System.Data.SqlClient.Tests.TcpDefaultForAzureTest/AzureNoProtocolConnectionTest failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.TcpDefaultForAzureTest/AzureNoProtocolConnectionTest` has failed. Expected error message A network-related or instance-specific error occurred while establishing a connection to SQL Server., but received: Value cannot be null.\r Parameter name: name\r Expected: True\r Actual: False Stack Trace: at System.Data.SqlClient.Tests.TcpDefaultForAzureTest.CheckConnectionFailure() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\tests\FunctionalTests\TcpDefaultForAzureTest.cs:line 101 at System.Data.SqlClient.Tests.TcpDefaultForAzureTest.AzureNoProtocolConnectionTest() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\tests\FunctionalTests\TcpDefaultForAzureTest.cs:line 65 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV() at System.InvokeUtils.CalliIntrinsics.Call() at System.InvokeUtils.CallDynamicInvokeMethod() in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170724.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Windows.10.Amd64.ClientRS3-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170724.01/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.TcpDefaultForAzureTest~2FAzureNoProtocolConnectionTest +22544 area-System.IO "Test: System.IO.Tests.DirectoryInfo_EnumFSI_str_str/SearchPatternLongPath failed with ""System.IO.DirectoryNotFoundException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.DirectoryInfo_EnumFSI_str_str/SearchPatternLongPath` has failed. System.IO.DirectoryNotFoundException : Could not find a part of the path 'C:\\Users\\DotNetTestRunner\\AppData\\Local\\Temp\\DirectoryInfo_EnumFSI_str_str_hdeqoqwz.xbj\\SearchPatternLongPath_635_6d7c9ccc\\kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk'. Stack Trace: at System.IO.FileStream.OpenHandle() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\shared\System\IO\FileStream.WinRT.cs:line 54 at System.IO.FileStream..ctor() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\shared\System\IO\FileStream.cs:line 228 at System.IO.Tests.Directory_GetFileSystemEntries_str_str.SearchPatternLongPath() in E:\A\_work\887\s\corefx\src\System.IO.FileSystem\tests\Directory\GetFileSystemEntries_str_str.cs:line 651 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV() at System.InvokeUtils.CalliIntrinsics.Call() at System.InvokeUtils.CallDynamicInvokeMethod() in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170724.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170724.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.DirectoryInfo_EnumFSI_str_str~2FSearchPatternLongPath +22545 area-System.Threading "Test: System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests/AwaitOnCompleted_InvokesStateMachineMethods failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests/AwaitOnCompleted_InvokesStateMachineMethods(awaitUnsafe: False)` has failed. Assert.Equal() Failure\r Expected: System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests+DelegateStateMachine\r Actual: (null) Stack Trace: at System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests.d__7.MoveNext() in E:\A\_work\887\s\corefx\src\System.Threading.Tasks.Extensions\tests\AsyncValueTaskMethodBuilderTests.cs:line 112 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 119 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 Build : Master - 20170724.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170724.01/workItem/System.Threading.Tasks.Extensions.Tests/analysis/xunit/System.Threading.Tasks.Tests.AsyncValueTaskMethodBuilderTests~2FAwaitOnCompleted_InvokesStateMachineMethods(awaitUnsafe:%20False) +22548 area-Microsoft.CSharp Remove check against delegate creation from partial in Microsoft.CSharp At runtime a method is never partial, so this can never be hit. Contributes to #22470 +22551 area-System.Net 'secure' cookies missing in HTTPS WebSocket upgrade request (ClientWebSocket) "Cookies with 'secure' flag set are not sent by ClientWebSocket in the HTTPS WebSocket upgrade request. **Actual result:** When sharing the CookieContainer between a HttpClient and ClientWebSocket, only the cookies with secure=false are sent in the HTTPS WebSocket upgrade request. **Expected result:** When sharing the CookieContainer between a HttpClient and ClientWebSocket, all shared cookies are sent in the HTTPS WebSocket upgrade request, including the ones with secure=true. Test secure websocket server available at https://test.circuitsandbox.net/api UWP C# code below and also available in repo: https://github.com/rogeru/corefx-cookie-issue ```csharp public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); Run(); } private async void Run() { // Save cookies for use in ClientWebSocket CookieContainer sharedCookies = new CookieContainer(); HttpClientHandler handler = new HttpClientHandler(); handler.CookieContainer = sharedCookies; var client = new HttpClient(handler); // response contains AWSELB cookie (secure=false) and connect.sid cookie (secure=true) var response = await client.GetAsync(""https://test.circuitsandbox.net""); // Only cookies without 'secure' flag are sent on WebSocket upgrade request // I.e. AWSELB cookie is sent, but connect.sid is not sent // Expected result: connect.sid is also send in HTTPS WebSocket upgrade request var socket = new ClientWebSocket(); socket.Options.Cookies = sharedCookies; await socket.ConnectAsync(new Uri(""wss://test.circuitsandbox.net/api""), CancellationToken.None); } } ``` Initial issue opened with https://github.com/Microsoft/dotnet/issues/395" +22552 area-System.Runtime Tests for not calling AssemblyResolve event for CoreLib resources Part of fix for dotnet/coreclr#12668 Depends on https://github.com/dotnet/coreclr/pull/12999 +22553 area-System.Runtime Tests for not calling AssemblyResolve event for CoreLib resources Port of https://github.com/dotnet/corefx/pull/22552 to release/2.0.0 Depends on https://github.com/dotnet/coreclr/pull/13003 Fixes dotnet/coreclr#12668 +22554 area-System.Runtime Remove some workarounds for ILC bugs in S.R.E.Tests The bug has been fixed in Project N. +22555 area-System.Runtime [uapaot] Investigate AssemblyResolve event raising for CoreLib resources .NET Core PRs: https://github.com/dotnet/coreclr/pull/12999 https://github.com/dotnet/corefx/pull/22552 +22557 area-Meta Update UAP pinvoke baselines (#22516) * readding 1 API and updating buildtools * removing more APIs that were added +22558 area-Serialization Load the assembly from the same location as the type assembly @shmao @zhenlan @mconnew +22559 area-System.Runtime Expose ValueTask from System.Runtime in netcoreapp ValueTask will be used/exposed by types in System.Runtime, so it also needs to be exposed from there. This also requires pulling down a few related types. Fixes https://github.com/dotnet/corefx/issues/21753 Depends on updated runtimes being consumed into corefx cc: @weshaggard +22560 area-System.Data Remove resource string checking in SqlClient UWP ILC tests The resource strings are retrieved via reflection in the SqlClient tests, and this reflection is blocked on UWP ILC. This causes NullReference and ArgumentNullExceptions to be thrown when trying to retrieve the strings. +22562 area-Microsoft.CSharp Remove ExprEvent from Microsoft.CSharp `RuntimeBinder.BindProperty` is only ever called with false for `fEventsPermitted`. Remove it and paths that depend on it being true, which removes `ExprEvent` (such expressions aren't used in dealing with the events' accessors). +22564 area-System.Net Linux Sockets: Close with pending synchronous Receive hangs If you issue a blocking Receive on a connected socket, and then try to Close it from another thread, the Close call will hang and the Receive will never complete. This works properly on Windows -- the Close succeeds and the Receive throws a SocketException with errorCode = ConnectionAborted. +22565 area-System.Globalization Allow Current Cultures behave in UWP as it does in none-UWP While running inside UWP, CultureInfo.CurrentCulture/CurrentUICulture will behave differently than when running outside UWP apps. In UWP get or set the current culture from/to Windows.ApplicationModel.Resources.Core.ResourceManager.Current.DefaultContext.Languages. This causes the current cultures global to the whole app. In the none-UWP app, the current cultures are tied to the running thread. Which means setting current culture will affect the current thread and is not global to the whole apps. The request here is, Allow a way for UWP apps to force the behavior of the none-UWP apps to have the current culture tied to the thread instead to be global to the whole app. Initial thoughts to support that uses a config switch the app can declare to force this new desired behavior. The other idea is to provide some new API to force this behavior but I think the API would have some serious problems. +22566 area-System.Data Adding SqlConnectionStringBuilder.Enlist to public method contract I added `SqlConnectionStringBuilder.Enlist` to public method contract, and also add more unit tests for `SqlConnectionStringBuilder.Enlist` +22567 area-System.IO Fix System.IO.FileSystem.Tests for UapAot Fixes: https://github.com/dotnet/corefx/issues/22544 +22568 area-Infrastructure Ubuntu16.10 is EOL so remove it form our test queues cc @stephentoub @MattGal @danmosemsft +22569 area-System.Net Uri.ReCreateParts allocates a char[] that could be avoided Accessing a property like Uri.PathAndQuery not only allocates the resulting string, but also a char[] that's often larger than necessary and which is then used to create that resulting string. Whenever/wherever possible, it'd be good to avoid that allocation. As an example of the impact of this allocation, that one char[] array is currently showing up as ~14% of the memory allocated when making a simple get request with ManagedHandler. Related to https://github.com/dotnet/corefx/pull/16456 cc: @safern, @geoffkizer, @cipop +22570 area-System.Net Several improvements to ManagedHandler The main change is to switch how reading is done so that the core logic is handed back a line at a time to parse rather than having to parse byte-by-byte. I also separated classes out into their own files to make the solution a bit more manageable, and employed several others perf tweaks, like using a single empty response stream when possible, using Span instead of ArraySegment where possible, etc. For simple get requests, this improves throughput by 5-10%. cc: @geoffkizer +22571 area-System.Drawing Add Unix implementation for System.Drawing.Common "This PR adds a Unix implementation for System.Drawing.Common. This implementation has been taken from the mono codebase, and implements the majority of its image-processing and graphics functionality in a native library called ""libgdiplus"". This library is available on all of the Linux distributions we support, as well as macOS through homebrew. Up until the final commit, the code pulled into this repository is identical to the implementation in mono. The final commit makes a large change to the mono codebase due to its reliance on the DllMap feature, which is not supported in .NET Core. To fix this, I have removed all of the PInvoke declarations for GDI+ functions, and replaced them with manual function loading. Please see [this commit description](https://github.com/mellinoe/corefx/commit/48e96d5ac2e51a7a388aa5d066c9f516faa22e2d) for a more thorough explanation of the process. Functionally, the behavior should be identical to before my change, but the library loading mechanism will be more flexible and resilient. Currently, a large number of tests are disabled on Unix by this PR. A large chunk of the test failures are due to differences in argument validation or exception behavior, which can be fixed within the managed implementation. There is an unknown number of behavioral problems inherent to the libgdiplus implementation we are using, which will be much more problematic to solve. There will be a long process of understanding these behavioral differences as we go forward. The CI machines have been updated with the new ""libgdiplus"" dependency, so there should be no more blockers for merging this work. @qmfrederik @akoeplinger @marek-safar @stephentoub @stephentoub I'd appreciate any input on the function-loading approach I've taken; it is in the final commit. Fixes https://github.com/dotnet/corefx/issues/20712" +22573 area-System.Net Re-enable some HttpListener tests for UAPAOT Closes #22066 Contributes to #22110 ~~For now, HttpListener tests don't run for[ UAPAOT and UAP mode](https://github.com/dotnet/corefx/pull/22340#discussion_r129180860), but I have tested locally.~~ I have pushed new commit to fix the issue. +22576 area-System.Data "Test: System.Data.SqlClient.ManualTesting.Tests.LocalDBTest/LocalDBNotSupportedOnUapTest failed with ""System.NullReferenceException""" Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.ManualTesting.Tests.LocalDBTest/LocalDBNotSupportedOnUapTest` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Data.SqlClient.ManualTesting.Tests.AssemblyResourceManager.TryGetResourceValue() in E:\A\_work\532\s\corefx\src\System.Data.SqlClient\tests\ManualTests\DataCommon\AssemblyResourceManager.cs:line 59 at System.Data.SqlClient.ManualTesting.Tests.AssemblyResourceManager.TryGetMember() in E:\A\_work\532\s\corefx\src\System.Data.SqlClient\tests\ManualTests\DataCommon\AssemblyResourceManager.cs:line 39 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetOIR() at System.InvokeUtils.CalliIntrinsics.Call() at System.InvokeUtils.CallDynamicInvokeMethod() in CallDynamicInvokeMethod:line 16707566 at xunit.console.netcore!+0x1 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Linq.Expressions.Interpreter.ExceptionHelpers.UnwrapAndRethrow() in E:\A\_work\532\s\corefx\src\System.Linq.Expressions\src\System\Linq\Expressions\Interpreter\Utilities.cs:line 172 at System.Linq.Expressions.Interpreter.ByRefMethodInfoCallInstruction.Run$catch$1() in E:\A\_work\532\s\corefx\src\System.Linq.Expressions\src\System\Linq\Expressions\Interpreter\CallInstruction.cs:line 450 at System.Linq.Expressions.Interpreter.Interpreter.Run() in E:\A\_work\532\s\corefx\src\System.Linq.Expressions\src\System\Linq\Expressions\Interpreter\Interpreter.cs:line 61 at System.Linq.Expressions.Interpreter.LightLambda.Run() in E:\A\_work\532\s\corefx\src\System.Linq.Expressions\src\System\Linq\Expressions\Interpreter\LightLambda.cs:line 417 at System.Linq.Expressions.Interpreter.CallInstruction.InterpretLambdaInvoke() in E:\A\_work\532\s\corefx\src\System.Linq.Expressions\src\System\Linq\Expressions\Interpreter\CallInstruction.cs:line 289 at System.Linq.Expressions.Interpreter.MethodInfoCallInstruction.Run() in E:\A\_work\532\s\corefx\src\System.Linq.Expressions\src\System\Linq\Expressions\Interpreter\CallInstruction.cs:line 342 at System.Linq.Expressions.Interpreter.EnterTryCatchFinallyInstruction.Run() in E:\A\_work\532\s\corefx\src\System.Linq.Expressions\src\System\Linq\Expressions\Interpreter\ControlFlowInstructions.cs:line 345 at System.Linq.Expressions.Interpreter.Interpreter.Run() in E:\A\_work\532\s\corefx\src\System.Linq.Expressions\src\System\Linq\Expressions\Interpreter\Interpreter.cs:line 61 at System.Linq.Expressions.Interpreter.LightLambda.Run() in E:\A\_work\532\s\corefx\src\System.Linq.Expressions\src\System\Linq\Expressions\Interpreter\LightLambda.cs:line 417 at Newtonsoft.Json.Utilities.MethodCall$2.InvokeObjectArrayThunk() at System.Func$3.Invoke() in Invoke:line 16707566 at System.Data.SqlClient.ManualTesting.Tests.LocalDBTest.LocalDBNotSupportedOnUapTest() in E:\A\_work\532\s\corefx\src\System.Data.SqlClient\tests\ManualTests\SQL\LocalDBTest\LocalDBTest.cs:line 65 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV() at System.InvokeUtils.CalliIntrinsics.Call() at System.InvokeUtils.CallDynamicInvokeMethod() in CallDynamicInvokeMethod:line 16707566 Build : UWP 6.0 - 20170722.02 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/uwp60/source/official~2Fcorefx~2Frelease~2Fuwp6.0~2F/type/test~2Ffunctional~2Filc~2F/build/20170722.02/workItem/System.Data.SqlClient.ManualTesting.Tests/analysis/xunit/System.Data.SqlClient.ManualTesting.Tests.LocalDBTest~2FLocalDBNotSupportedOnUapTest +22578 area-Infrastructure Core Tests (Master): All work items has fireball on Ubuntu.1610.Amd64-x64 Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170725.01 All work items has fireball on Ubuntu.1610.Amd64-x64 +22579 area-System.Data Add helper function for retrieving SniContext enum names, since SniContext is an internal enum and its name cannot be retrieved via reflection on uapaot. Also changed TdsParser.ProcessSNIError() to always use this helper function, since it will be faster than retrieving the enum name via reflection. Fixes this issue: https://github.com/dotnet/corefx/issues/22542 +22580 area-System.Data Move LocalDBNotSupportedOnUapTest to Functional tests, since it does not require a test server. +22582 area-System.Text "Encoding ""iso-8859-4"" throws encoding not supported exception." "I tried below code on Net standard 2.0, ``` var res = Encoding.GetEncoding( ""iso-8859-4"", new EncoderReplacementFallback(), new DecoderReplacementFallback()); ``` ``` _threw an exception of type 'System.ArgumentException' Data: {System.Collections.ListDictionaryInternal} HResult: -2147024809 HelpLink: null InnerException: null Message: ""'iso-8859-4' is not a supported encoding name. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method.\r\nParameter name: name"" ParamName: ""name"" Source: ""System.Private.CoreLib"" StackTrace: "" at System.Globalization.EncodingTable.internalGetCodePageFromName(String name)\r\n at System.Globalization.EncodingTable.GetCodePageFromName(String name)\r\n at System.Text.Encoding.GetEncoding(String name, EncoderFallback encoderFallback, DecoderFallback decoderFallback)"" TargetSite: {Int32 internalGetCodePageFromName(System.String)}_ ``` But samething works on .Net framework, class library 4.5.2 Same exception comes for other encoding names, 'iso-8859-2, 'iso-8859-3, till 'iso-8859-9. Only'iso-8859-1 is supported. Please let me know if am missing something with this code." +22583 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandlerTest/PostAsync_CallMethod_EmptyContent failed with ""System.Exception : Operation aborted""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/PostAsync_CallMethod_EmptyContent(remoteServer: http://corefx-net.cloudapp.net/Echo.ashx)` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Exception : Operation aborted (Exception from HRESULT: 0x80004004) Stack Trace: at System.Net.Http.HttpClientHandler.d__109.MoveNext$catch$1() in E:\A\_work\643\s\corefx\src\System.Net.Http\src\uap\System\Net\HttpClientHandler.cs:line 604 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable$1.ConfiguredTaskAwaiter.GetResult() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 477 at System.Net.Http.HttpClient.d__58.MoveNext$catch$0() in E:\A\_work\643\s\corefx\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 464 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable$1.ConfiguredTaskAwaiter.GetResult() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 477 at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__76.MoveNext() in E:\A\_work\643\s\corefx\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.cs:line 1455 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 119 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable$1.ConfiguredTaskAwaiter.GetResult() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 477 at System.Net.Http.HttpHandlerToFilter.d__11.MoveNext$catch$1() in E:\A\_work\643\s\corefx\src\System.Net.Http\src\uap\System\Net\HttpHandlerToFilter.cs:line 70 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable$1.ConfiguredTaskAwaiter.GetResult() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 477 at System.Net.Http.HttpClientHandler.d__109.MoveNext() in E:\A\_work\643\s\corefx\src\System.Net.Http\src\uap\System\Net\HttpClientHandler.cs:line 595 Build : Master - 20170725.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170725.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FPostAsync_CallMethod_EmptyContent(remoteServer:%20http:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx) +22587 area-System.Net Linux Sockets: Send/Receive timeouts take too long If you set a timeout and then perform a (synchronous) Send or Receive, it will timeout eventually, but the timeout period is much larger than what was requested -- Send timeout seems to be 3x what was requested, Receive is 2x. If you force the socket into nonblocking mode (e.g. socket.Blocking = false; socket.blocking = true;) then the timeouts are as expected. +22588 area-System.Net Linux Sockets: fix timeout handling by forcing into nonblocking mode Fixes #22587 Currently, we can't reliably support send/receive timeouts because we can't distinguish between an EAGAIN caused by a nonblocking socket, and one caused by a timeout on a synchronous system call. Fix this by forcing us into AsyncContext mode when a timeout is set. This handles the timeout semantics correctly. @stephentoub +22589 area-System.Net Dns.GetHostEntryAsync is faulty on Windows "When calling `Dns.GetHostEntryAsync()` an `AggregateException` is always thrown with information of: > System.AggregateException was unhandled > Source=System.Private.CoreLib > InnerException: > HResult=-2147467259 > Message=Either the application has not called WSAStartup, or WSAStartup failed > NativeErrorCode=10093 > Source=System.Net.NameResolution > StackTrace: > at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) > at System.Net.Dns.EndGetHostEntry(IAsyncResult asyncResult) > at System.Net.Dns.<>c.b__15_1(IAsyncResult asyncResult) > at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) > It seems that the method does not correctly initialize Winsock through `WSAStartup()`. A hacky ""fix"" at this moment is asking for a response from a WebRequest first to ensure that Winsock is initialized: ``` var req = WebRequest.Create(""http://xxxxxx.com""); var res = req.GetResponseAsync().Result; IPHostEntry hostInfo = Dns.GetHostEntryAsync(hostIPAddress).Result; ```" +22591 area-System.Collections Min/Max properties for SortedDictionary The `SortedDictionary` does not provide any way to efficiently access the minimum and maximum key values, despite being built upon `SortedSet`, which provides `Min` and `Max` properties for this purpose. It would be useful if similar properties for accessing the minimum and maximum keys were available for the SortedDictionary, perhaps via similar `Min` and `Max` properties to follow the naming in SortedSet, or via `MinKey`/`MaxKey` to be explicit. +22593 area-System.Net Buffer Overflow Exception in WinHttpHandler "My application has crashed due to the following exception: ERROR_CODE: (NTSTATUS) 0xc0000409 - The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application. EXCEPTION_CODE: (NTSTATUS) 0xc0000409 - The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application. EXCEPTION_CODE_STR: c0000409 The error was thrown from the following callstack: [InlinedCallFrame: address] Interop+WinHttp.WinHttpSendRequest(SafeWinHttpHandle, System.Text.StringBuilder, UInt32, IntPtr, UInt32, UInt32, IntPtr) [InlinedCallFrame: address] Interop+WinHttp.WinHttpSendRequest(SafeWinHttpHandle, System.Text.StringBuilder, UInt32, IntPtr, UInt32, UInt32, IntPtr) DomainBoundILStubClass.IL_STUB_PInvoke(SafeWinHttpHandle, System.Text.StringBuilder, UInt32, IntPtr, UInt32, UInt32, IntPtr) System.Net.Http.WinHttpHandler.InternalSendRequestAsync(System.Net.Http.WinHttpRequestState) System.Net.Http.WinHttpHandler+d__105.MoveNext() System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[[System.Net.Http.WinHttpHandler+d__105, System.Net.Http.WinHttpHandler]](d__105 ByRef) System.Net.Http.WinHttpHandler.StartRequest(System.Object) Looking at the code for WinHttpHandler.InternalSendRequestAsync: ```cs private RendezvousAwaitable InternalSendRequestAsync(WinHttpRequestState state) { lock (state.Lock) { state.Pin(); if (!Interop.WinHttp.WinHttpSendRequest( state.RequestHandle, null, 0, IntPtr.Zero, 0, 0, state.ToIntPtr())) { int lastError = Marshal.GetLastWin32Error(); Debug.Assert((unchecked((int)lastError) != Interop.WinHttp.ERROR_INSUFFICIENT_BUFFER && unchecked((int)lastError) != unchecked((int)0x80090321)), // SEC_E_BUFFER_TOO_SMALL $""Unexpected async error in WinHttpRequestCallback: {unchecked((int)lastError)}""); // Dispose (which will unpin) the state object. Since this failed, WinHTTP won't associate // our context value (state object) to the request handle. And thus we won't get HANDLE_CLOSING // notifications which would normally cause the state object to be unpinned and disposed. state.Dispose(); throw WinHttpException.CreateExceptionUsingError(lastError); } } return state.LifecycleAwaitable; } ``` So the Debug.Assert makes me thing that this error is not unexpected. Is that true? Can I get some more info on what this error means and how to prevent it? Thanks." +22595 area-System.Net Fix httplistener test project configuration file According to : https://github.com/dotnet/corefx/pull/22340#issuecomment-317673253 +22596 area-System.IO Improve directory deletion stack pressure Recursive directory deletion used particularly large frames and would easily stack overflow with deeply nested directories (especially so when running unoptimized bits). Reduced the stack frame size by passing the native struct used by ref and removing unnecessary throw/catch blocks. Other optimizations and logic clarifications. Made the native struct blittable and introduced a helper struct set for fixed size blittable strings. See #22443 +22597 area-System.Security Unable to construct X509Certificate2 object from byte array on UWP "The WCF team has a test infrastructure which creates new short lived client certificates for each run. In our scenario test code we fetch the bytes for a certificate from our test server and instantiate an X509Certificate2 object to then install in the local user MY certificate store. This works fine on all platforms except UWP where we get a WindowsCryptographicException with the message `Access denied`. This is the code we're trying to run: ```csharp var certificate = new X509Certificate2(certBytes, ""test"", X509KeyStorageFlags.PersistKeySet); ``` It throws the following exception: ```csharp Internal.Cryptography.CryptoThrowHelper+WindowsCryptographicException : Access denied Stack Trace: at Internal.Cryptography.Pal.CertificatePal.FilterPFXStore(Byte[] rawData, SafePasswordHandle password, PfxCertStoreFlags pfxCertStoreFlags) at Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, String fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(Byte[] rawData, String password, X509KeyStorageFlags keyStorageFlags) ``` If I change the constructor to use `X509KeyStorageFlags.EphemeralKeySet | X509KeyStorageFlags.Exportable`, instead I get the same exception but with the message `Bad Data`. An example of the certificate we're using [is here](https://github.com/dotnet/corefx/files/1174392/wcf-client-cert.zip). It's created with bouncy castle as we need to control CRL's for our testing. " +22598 area-System.Drawing System.Drawing.Imaging.Metafile(filename) throws wrong Exception when filename is Null on netcoreapp "The test: ```c# [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] public void Ctor_NullString_ThrowsArgumentNullException() { AssertExtensions.Throws(""path"", () => new Metafile((string)null)); } ``` **Expected:** `System.ArgumentNullException` **Actual:** netfx `System.ArgumentNullException` netcoreapp `System.ArgumentException` (#20711)" +22599 area-System.Drawing System.Drawing types lost ISerializable This is showing up in /src/shims/ApiCompatBaseline.netcoreapp.netfx461.txt ``` Compat issues with assembly System.Drawing: CannotRemoveBaseTypeOrInterface : Type 'System.Drawing.Bitmap' does not implement interface 'System.Runtime.Serialization.ISerializable' in the implementation but it does in the contract. CannotMakeTypeAbstract : Type 'System.Drawing.BufferedGraphicsManager' is abstract in the implementation but is not abstract in the contract. CannotRemoveBaseTypeOrInterface : Type 'System.Drawing.Font' does not implement interface 'System.Runtime.Serialization.ISerializable' in the implementation but it does in the contract. CannotRemoveBaseTypeOrInterface : Type 'System.Drawing.Icon' does not implement interface 'System.Runtime.Serialization.ISerializable' in the implementation but it does in the contract. CannotRemoveBaseTypeOrInterface : Type 'System.Drawing.Image' does not implement interface 'System.Runtime.Serialization.ISerializable' in the implementation but it does in the contract. CannotRemoveBaseTypeOrInterface : Type 'System.Drawing.Imaging.Metafile' does not implement interface 'System.Runtime.Serialization.ISerializable' in the implementation but it does in the contract. MembersMustExist : Member 'System.Drawing.Printing.InvalidPrinterException..ctor(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)' does not exist in the implementation but it does exist in the contract. ``` For types we don't support binary serializing, like these, we are implementing the interface but throwing PNSE. This at least allows casting to work. Eg., ```c# private Enumerator(SerializationInfo info, StreamingContext context) { throw new PlatformNotSupportedException(); } void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context) { throw new PlatformNotSupportedException(); } ``` We should do thes ame for drawing and then msbuild src/shims /p:baselineapicompat=true to remove the errors. +22601 area-Infrastructure "Remove invalid ""BaselineVersion"" entries from PackageIndex.json for packages which are not building." See https://github.com/dotnet/wcf/pull/2097#issuecomment-317825845 +22606 area-Infrastructure Port of https://github.com/dotnet/corefx/pull/22568 to release/2.0.0 Discontinue Ubuntu 16.10 runs in corefx release 2.0.0. +22607 area-System.Net Add IPAddress Span-based APIs Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [ ] Implement in System.Net.Primitives in corefx - [ ] Expose from System.Net.Primitives contract in corefx - [ ] Add tests to System.Net.Primitives tests in corefx ```C# namespace System.Net { public class IPAddress { public IPAddress(ReadOnlySpan address); public IPAddress(ReadOnlySpan address, long scopeid); public bool TryWriteBytes(Span destination, out int bytesWritten); public static IPAddress Parse(ReadOnlySpan ipChars); public static bool TryParse(ReadOnlySpan ipChars, out IPAddress address); public static bool TryFormat(Span destination, out int charsWritten); … } } ``` +22608 area-System.Net Add Socket Span/Buffer-based APIs Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [X] Implement/expose/test span-based methods in System.Net.Sockets in corefx - [x] Implement/expose/test buffer-based methods in System.Net.Sockets in corefx ```C# namespace System.Net.Sockets { public class Socket { public int Receive(Span buffer); public int Receive(Span buffer, SocketFlags flags); public int Receive(Span buffer, SocketFlags socketFlags, out SocketError errorCode); public int Send(ReadOnlySpan buffer); public int Send(ReadOnlySpan buffer, SocketFlags flags); public int Send(ReadOnlySpan buffer, SocketFlags flags, out SocketError errorCode); … } public class SocketTaskExtensions { public static ValueTask ReceiveAsync(this Socket socket, Buffer buffer, SocketFlags socketFlags, CancellationToken cancellationToken = default(CancellationToken)); public static ValueTask SendAsync(this Socket socket, ReadOnlyBuffer buffer, SocketFlags socketFlags, CancellationToken cancellationToken = default(CancellationToken)); … } public class SocketAsyncEventArgs { public void SetBuffer(Buffer buffer); public Buffer GetBuffer(); … } } ``` +22610 area-System.Net Add WebSocket Buffer-based APIs Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [ ] Implement in System.Net.WebSockets in corefx - [ ] Expose from System.Net.WebSockets contract in corefx - [ ] Add tests to System.Net.WebSockets tests in corefx ```C# namespace System.Net.WebSockets { public abstract class WebSocket { public virtual ValueTask ReceiveAsync(Buffer buffer, CancellationToken cancellationToken = default(CancellationToken)); public virtual Task SendAsync(ReadOnlyBuffer buffer, CancellationToken cancellationToken = default(CancellationToken)); … } [StructLayout(LayoutKind.Auto)] public struct ValueWebSocketReceiveResult { public ValueWebSocketReceiveResult(int count, WebSocketMessageType messageType, bool endOfMessage); public ValueWebSocketReceiveResult(int count, WebSocketMessageType messageType, bool endOfMessage, WebSocketCloseStatus? closeStatus, string closeStatusDescription); public WebSocketCloseStatus? CloseStatus { get; } public string CloseStatusDescription { get; } public int Count { get; } public bool EndOfMessage { get; } public WebSocketMessageType MessageType { get; } } } ``` +22611 area-System.Net Override new WebSocket.Receive/SendAsync methods on ClientWebSocket Depends on https://github.com/dotnet/corefx/issues/22610 +22612 area-System.Net Add ReadOnlyBufferContent for HttpClient Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement in System.Net.Http in corefx - [x] Expose from System.Net.Http contract in corefx - [x] Add tests to System.Net.Http tests in corefx ```C# namespace System.Net.Http { public sealed class ReadOnlyBufferContent : HttpContent { public ReadOnlyBufferContent(ReadOnlyBuffer buffer); … // override relevant members of HttpContent } } ``` +22613 area-System.Security Add HashAlgorithm Span-based APIs Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [ ] Implement in System.Security.Cryptography.Primitives in corefx - [ ] Expose from System.Security.Cryptography.Primitives contract in corefx - [ ] Add tests to System.Security.Cryptography.Primitives tests in corefx ```C# namespace System.Security.Cryptography { public abstract class HashAlgorithm { public bool TryComputeHash(ReadOnlySpan source, Span destination, out int bytesWritten); protected virtual void HashCore(ReadOnlySpan source); protected virtual bool TryHashFinal(Span destination, out int bytesWritten); … } } ``` These methods should then be overridden as-is appropriate on the implementations for: - [ ] MD5 - [ ] SHA1 - [ ] SHA256 - [ ] SHA384 - [ ] SHA512 +22614 area-System.Security Add IncrementalHash Span-based APIs Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [ ] Implement in System.Security.Cryptography.Algorithms in corefx - [ ] Expose from System.Security.Cryptography.Algorithms contract in corefx - [ ] Add tests to System.Security.Cryptography.Algorithms tests in corefx ```C# namespace System.Security.Cryptography { public sealed class IncrementalHash { public void AppendData(ReadOnlySpan data); public bool TryGetHashAndReset(Span destination, out int bytesWritten); … } } ``` +22615 area-System.Security Add AssymetricAlgorithm Span-based APIs Separated out of https://github.com/dotnet/corefx/issues/21281 for tracking purposes. - [x] Implement/expose/test RSA methods - [x] Implement/expose/test DSA methods - [ ] Implement/expose/test ECDsa methods ```C# namespace System.Security.Cryptography { public abstract class RSA : AsymmetricAlgorithm { public virtual bool TryDecrypt(ReadOnlySpan source, Span destination, RSAEncryptionPadding padding, out int bytesWritten); public virtual bool TryEncrypt(ReadOnlySpan source, Span destination, RSAEncryptionPadding padding, out int bytesWritten); protected virtual bool TryHashData(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, out int bytesWritten); public virtual bool TrySignData(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding, out int bytesWritten); public virtual bool TrySignHash(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding, out int bytesWritten); public virtual bool VerifyData(ReadOnlySpan data, ReadOnlySpan signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding); public virtual bool VerifyHash(ReadOnlySpan hash, ReadOnlySpan signature, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding); … } public abstract class DSA : AsymmetricAlgorithm { public virtual bool TryCreateSignature(ReadOnlySpan source, Span destination, out int bytesWritten); protected virtual bool TryHashData(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, out int bytesWritten); public virtual bool TrySignData(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, out int bytesWritten); public virtual bool VerifyData(ReadOnlySpan data, ReadOnlySpan signature, HashAlgorithmName hashAlgorithm); public virtual bool VerifySignature(ReadOnlySpan rgbHash, ReadOnlySpan rgbSignature); … } public abstract class ECDsa : AsymmetricAlgorithm { protected virtual bool TryHashData(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, out int bytesWritten); public virtual bool TrySignData(ReadOnlySpan source, Span destination, HashAlgorithmName hashAlgorithm, out int bytesWritten); public virtual bool TrySignHash(ReadOnlySpan source, Span destination, out int bytesWritten); public virtual bool VerifyData(ReadOnlySpan data, ReadOnlySpan signature, HashAlgorithmName hashAlgorithm); public virtual bool VerifyHash(ReadOnlySpan hash, ReadOnlySpan signature); … } } ``` This includes not only adding the virtuals but also providing meaningful and efficient implementations on the internal concrete implementations returned from the various Create methods. +22616 area-System.Runtime Use primitive TryFormat methods in StringBuilder Currently StringBuilder.Append(primitiveType) first does a ToString on that type and then appends the resulting characters. Once https://github.com/dotnet/corefx/issues/22403 is implemented, we should use that support in StringBuilder to avoid the intermediate strings. +22617 area-System.Data Adding unexposed method to public contract I added more unexposed methods, which was implemented already, to public contract. +22618 area-System.Data Fix SqlClient UapAot test failures caused by blocked reflection of internal types Reflection of internal members is blocked in UapAot, so retrieving error messages with SystemDataResourceManager fails. Resource string checking has been skipped in UapAot ManualTests in this change by just using empty strings for the expected error messages (our tests check that the exception contains the expected message, not equals). All the functional DiagnosticTests also use blocked reflection when retrieving runtime PropertyInfo data, so these tests have been disabled on UapAot. Fixes this issue: https://github.com/dotnet/corefx/issues/22560 +22619 area-Microsoft.CSharp Lighten Operators lookup in Microsoft.CSharp * Use array instead of dictionary to store `OPINFO`s. Dictionary indexed by a contiguous integral value may as well be an array, and lookup is faster. * Remove arity parameter to `OPINFO`, that is never used. * Rename `OPKIND` to `OperatorKind` and rename its fields. * Replace `OperatorOfMethodName` and the several calls following with single dictionary lookup. * Expression-body methods +22620 area-Infrastructure Create a docker file for RHEL 6 distro Per @Petermarcu @janvorli As part of the plan to be able to ship .NET Core 2.0 that supports RHEL 6, we need build machines for that distro. This is necessary as RHEL 6 is super ancient w.r.t. the libraries that we depend on. So if we build on RHEL 7, which was our minimum supported distro, the binary will get dependencies on versions of some symbols that are not present on RHEL 6. As a result, to run dotnet core on RHEL 6, it has to be built on RHEL 6, which requires the corresponding docker to be created. RHEL 6 is NOT free, so we should create equivalent CentOS 6 docker instead. We already have CentoOS docker file available, which can be used as the starting point for the CentOS 6 one. +22622 area-System.Net Account for differences in WebSocket minimum buffer sizes between Core and Framework Client.WebSocketOptions.SetBuffer(...) has different validation between the .Net Core and Framework versions. The previous tests assumed that ClientWebSocket.Options.SetBuffer would accept a minimum buffer size of one, which is not the case in the Framework implementation. Unlike .Net core, the Framework expects a minimum size of 16 for the send buffer and 256 for the receive buffer. This meant that tests intended to pass a _valid_ minimum receive buffer size (of 1) and an _invalid_ minimum send buffer size (of 0) would trigger an exception with the wrong message, as the (accidentally) incorrect minimum receive buffer size of 1 failed validation. Additionally, the test would fail because of a slight difference in the name used for the internal buffer, and as such a conditional was added to ensure that the correct name is checked on each version. Fix: #20358 +22624 area-System.Data Failing Debug Assert in TdsParserStateObject.ReadAsyncCallback Fails in SqlClient manual tests when running with Managed SNI in debug mode. https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/SqlClient/TdsParserStateObject.cs#L2686 +22625 area-System.Collections Add ImmutableArray Span-based APIs @stephentoub You did not open a tracking issue for this in https://github.com/dotnet/corefx/issues/21281, although from the notes at https://github.com/dotnet/apireviews/pull/40 it seems like this was approved (:tada:). So I took the liberty of moving the proposal here: ```cs namespace System.Collections.Immutable { public struct ImmutableArray { public static implicit operator ReadOnlySpan(ImmutableArray array); } } ``` Since the API seems to have been approved, this is intended to be a tracking issue for work towards implementing it. +22626 area-System.Security HashAlgorithm.Create throws PNSE on .NET Core 2 If you need to call `HashAlgorithm.Create` to create an instance without knowing the concrete type, it throws PNSE on .NET Core 2. Workaround is to call `(HashAlgorithm)CryptoConfig.CreateFromName(string)`, though calling `CryptoConfig` directly is generally discouraged. +22627 area-System.Net Test: System.Net.Tests.HttpWebRequestTest / Timeout_SetTenMillisecondsOnLoopback_ThrowsWebException Opened on behalf of @Jiayili1 The test `System.Net.Tests.HttpWebRequestTest/Timeout_SetTenMillisecondsOnLoopback_ThrowsWebException` has failed. Assert.InRange() Failure\r Range: (1 - 15000)\r Actual: 0 Stack Trace: at System.Net.Tests.HttpWebRequestTest.<>c.b__31_0() in E:\A\_work\552\s\corefx\src\System.Net.Requests\tests\HttpWebRequestTest.cs:line 294 at Newtonsoft.Json.Utilities.MethodCall$2.Invoke() in Invoke:line 16707566 at System.Net.Test.Common.LoopbackServer.CreateServerAsync() in E:\A\_work\552\s\corefx\src\Common\tests\System\Net\Http\LoopbackServer.cs:line 63 at xunit.console.netcore!+0x1 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at System.Net.Tests.HttpWebRequestTest.d__31.MoveNext() in E:\A\_work\552\s\corefx\src\System.Net.Requests\tests\HttpWebRequestTest.cs:line 16707566 at xunit.console.netcore!+0x1 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at xunit.console.netcore!+0x1 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at xunit.console.netcore!+0x1 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 Build : UWP 6.0 - 20170725.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/uwp60/source/official~2Fcorefx~2Frelease~2Fuwp6.0~2F/type/test~2Ffunctional~2Filc~2F/build/20170725.01/workItem/System.Net.Requests.Tests/analysis/xunit/System.Net.Tests.HttpWebRequestTest~2FTimeout_SetTenMillisecondsOnLoopback_ThrowsWebException +22628 area-Microsoft.CSharp Remove code in Microsoft.CSharp related to extension and external methods * Remove paths for extension methods. Dynamic doesn't support extension methods, except for static-style calls, so `isExtension` is never true. Remove it and all paths that depend on it being true. * Remove error conditions relating to extension methods. Demonstrated unreachable. Contributes to #22470 * Remove MethodSymbol.isExternal Never set to true. Remove it and all paths depending on it. +22629 area-System.Drawing "Test failure: System.Drawing.Tests.FontFamilyTests/Ctor_GenericFamily(genericFamily: SansSerif, expectedName: \""Microsoft Sans Serif\"")" "Opened on behalf of @Jiayili1 The test `System.Drawing.Tests.FontFamilyTests/Ctor_GenericFamily(genericFamily: SansSerif, expectedName: \""Microsoft Sans Serif\"")` has failed. Assert.Equal() Failure\r ? (pos 0)\r Expected: Microsoft Sans Serif\r Actual: Arial\r ? (pos 0) Stack Trace: at System.Drawing.Tests.FontFamilyTests.Ctor_GenericFamily(GenericFontFamilies genericFamily, String expectedName) Build : Master - 20170726.01 (Core Tests) Failing configurations: - Windows.10.Amd64.Core-x86 - Release - Windows.10.Amd64.Core-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170726.01/workItem/System.Drawing.Common.Tests/analysis/xunit/System.Drawing.Tests.FontFamilyTests~2FCtor_GenericFamily(genericFamily:%20SansSerif,%20expectedName:%20%5C%22Microsoft%20Sans%20Serif%5C%22)" +22630 area-System.Drawing "Test: System.Drawing.Tests.FontFamilyTests/Ctor_Name failed with ""System.ArgumentException""" "Opened on behalf of @Jiayili1 The test `System.Drawing.Tests.FontFamilyTests/Ctor_Name(name: \""Microsoft Sans Serif\"", expectedName: \""Microsoft Sans Serif\"")` has failed. System.ArgumentException : Font 'Microsoft Sans Serif' cannot be found. Stack Trace: at System.Drawing.FontFamily.CreateFontFamily(String name, FontCollection fontCollection) at System.Drawing.Tests.FontFamilyTests.Ctor_Name(String name, String expectedName) Build : Master - 20170726.01 (Core Tests) Failing configurations: - Windows.10.Amd64.Core-x86 - Release - Windows.10.Amd64.Core-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170726.01/workItem/System.Drawing.Common.Tests/analysis/xunit/System.Drawing.Tests.FontFamilyTests~2FCtor_Name(name:%20%5C%22Microsoft%20Sans%20Serif%5C%22,%20expectedName:%20%5C%22Microsoft%20Sans%20Serif%5C%22)" +22631 area-System.Drawing "Test: System.Drawing.Tests.FontTests/GetHeight_Dpi_ReturnsExpected failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Drawing.Tests.FontTests/GetHeight_Dpi_ReturnsExpected(dpi: -1, expected: -0.1571995)` has failed. Assert.Equal() Failure\r Expected: -0.1572 (rounded from -0.157199501991272)\r Actual: -0.15971 (rounded from -0.159708678722382) Stack Trace: at System.Drawing.Tests.FontTests.GetHeight_Dpi_ReturnsExpected(Single dpi, Single expected) Build : Master - 20170726.01 (Core Tests) Failing configurations: - Windows.10.Amd64.Core-x86 - Release - Windows.10.Amd64.Core-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170726.01/workItem/System.Drawing.Common.Tests/analysis/xunit/System.Drawing.Tests.FontTests~2FGetHeight_Dpi_ReturnsExpected(dpi:%20-1,%20expected:%20-0.1571995) +22632 area-System.Drawing "Tests under: System.Drawing.Tests.IconTests failed with ""System.ComponentModel.Win32Exception : The specified module could not be found""" "Opened on behalf of @Jiayili1 The test `System.Drawing.Tests.IconTests/Ctor_FilePath_Size(fileName: \""256x256_one_entry_32bit.ico\"", size: {Width=0, Height=0}, expectedSize: {Width=256, Height=256})` has failed. System.ComponentModel.Win32Exception : The specified module could not be found Stack Trace: at System.Drawing.Icon.Initialize(Int32 width, Int32 height) at System.Drawing.Icon..ctor(String fileName, Int32 width, Int32 height) at System.Drawing.Tests.IconTests.Ctor_FilePath_Size(String fileName, Size size, Size expectedSize) Build : Master - 20170726.01 (Core Tests) Failing configurations: - Windows.10.Amd64.Core-x86 - Release - Windows.10.Amd64.Core-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170726.01/workItem/System.Drawing.Common.Tests/analysis/xunit/System.Drawing.Tests.IconTests~2FCtor_FilePath_Size(fileName:%20%5C%22256x256_one_entry_32bit.ico%5C%22,%20size:%20%7BWidth=0,%20Height=0%7D,%20expectedSize:%20%7BWidth=256,%20Height=256%7D)" +22634 area-System.Drawing "Test: System.Drawing.Tests.IconTests/ToBitmap_PngIconNotSupportedInSwitches_ThrowsArgumentOutOfRangeException failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Drawing.Tests.IconTests/ToBitmap_PngIconNotSupportedInSwitches_ThrowsArgumentOutOfRangeException` has failed. Assert.Equal() Failure\r Expected: 42\r Actual: -532462766 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.Drawing.Tests.IconTests.ToBitmap_PngIconNotSupportedInSwitches_ThrowsArgumentOutOfRangeException() Build : Master - 20170726.01 (Core Tests) Failing configurations: - Windows.10.Amd64.Core-x86 - Release - Windows.10.Amd64.Core-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170726.01/workItem/System.Drawing.Common.Tests/analysis/xunit/System.Drawing.Tests.IconTests~2FToBitmap_PngIconNotSupportedInSwitches_ThrowsArgumentOutOfRangeException +22635 area-System.Net [Desktop] Test failed: System.Net.WebSockets.Client.Tests.CancelTest / ReceiveAsync_ReceiveThenCancel_ThrowsOperationCanceledException Opened on behalf of @Jiayili1 The test `System.Net.WebSockets.Client.Tests.CancelTest/ReceiveAsync_ReceiveThenCancel_ThrowsOperationCanceledException(server: wss://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx)` has failed. Assert.Throws() Failure\r Expected: typeof(System.OperationCanceledException)\r Actual: typeof(System.InvalidOperationException): This operation is only allowed using a successfully authenticated context. Stack Trace: at System.Net.Security.SslState.CheckThrow(Boolean authSuccessCheck, Boolean shutdownCheck) at System.Net.Security.SslState.get_SecureStream() at System.Net.TlsStream.EndRead(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.WebSocketConnectionStream.d__21.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.WebSocketBase.WebSocketOperation.d__19.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.WebSocketBase.d__45.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170726.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64.Core-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170726.01/workItem/System.Net.WebSockets.Client.Tests/analysis/xunit/System.Net.WebSockets.Client.Tests.CancelTest~2FReceiveAsync_ReceiveThenCancel_ThrowsOperationCanceledException(server:%20wss:~2F~2Fcorefx-net.cloudapp.net~2FWebSocket~2FEchoWebSocket.ashx) +22637 area-System.Security API Proposal: Add *Async operations to signing abstract types The abstract types `RSA` and `ECDSA` have synchronous operations for signing, verifying, and in the case of RSA specifically, encryption and decryption. For custom implementations of these types, it would be nice if there were *Async versions of these APIs. For example, an [implementation](https://github.com/onovotny/RSAKeyVaultProvider) that uses Azure Key Vault can do this asynchronously. I would propose these types be virtual, and if no inheritor overrides them, delegates to the synchronous version in the similar fashion that some of the IO Stream types do. Going forward, it would be nice then if the core framework used those asynchronous APIs when possible. This also allows other user implementations to take an `RSA` type and get the benefit of async if the inheritor chooses to implement a real async version. Sample idea: ```csharp public virtual Task SignDataAsync( byte[] data, HashAlgorithmName hashAlgorithm, RSASignaturePadding padding ) { return Task.FromResult(this.SignData(data, hashAlgorithm, padding)); } ``` +22638 area-System.Net Cannot get Header value back when it includes special chars. "Just encountered an issue when trying to get azure blob's properties, that it cannot get the property value back when the value string includes special chars like ""<"" or "">"" with following code: ```c# HttpClient client = new HttpClient(); HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Head, ""http://emmahk2.blob.core.windows.net/container1/overwritetest/Program.cs""); httpRequestMessage.Headers.Add(""x-ms-version"", ""2017-04-17""); HttpResponseMessage response = client.SendAsync(httpRequestMessage).Result; response.EnsureSuccessStatusCode(); Console.WriteLine(response.Content.Headers.Contains(""ContentDisposition"")); ``` Value for ""ContentDisposition"" is ""\"". From the response got from fiddler, Azure Storage Server returns the value correctly, while the value is null in `HttpResponseMessage response` of the above codes. I can get the value back with following code: ```c# HttpWebRequest req = WebRequest.CreateHttp(new Uri(""http://emmahk2.blob.core.windows.net/container1/overwritetest/Program.cs"")); req.Method = ""HEAD""; req.Headers[""x-ms-version""] = ""2017-04-17""; var result = req.GetResponseAsync().Result; Console.WriteLine(result.Headers[""Content-Disposition""]); ``` It seems weird that the behavior of `HttpClient `and `HttpWebRequest` is different. Could anyone help to take a look? [EDIT] Add C# syntax highlighting by @karelz" +22640 area-System.Drawing System.Drawing.Imaging.Metafile(filename) throws wrong Exception when filename is not valid on netcoreapp "**Test:** ```c# [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] public void Ctor_InvalidPath_ThrowsArgumentException() { string fileNameTooLong = new string('a', 261); AssertExtensions.Throws(null, () => new Metafile(string.Empty)); // fails on netcoreapp AssertExtensions.Throws(null, () => new Metafile(@""fileNo*-//\\#@(found"")); // fails on netcoreapp AssertExtensions.Throws(null, () => new Metafile(fileNameTooLong)); // fails on netcoreapp } ``` Expected: `System.ArgumentException` Actual: netfx `System.ArgumentException` netcoreapp `typeof(System.Runtime.InteropServices.ExternalException): A generic error occurred in GDI+` (#20711) " +22642 area-System.Net "System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandlerTest.GetAsync_ServerNeedsAuthAndNoCredential_StatusCodeUnauthorized failed with ""Xunit.Sdk.EqualException""" Failed test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandlerTest.GetAsync_ServerNeedsAuthAndNoCredential_StatusCodeUnauthorized Configuration: OuterLoop_netcoreapp_rhel7.2_debug MESSAGE: ~~~ Assert.Equal() Failure\nExpected: 42\nActual: -117 ~~~ STACK TRACE: ~~~ at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_rhel7.2_debug/src/CoreFx.Private.TestUtilities/src/System/Diagnostics/RemoteExecutorTestBase.cs:line 175 at System.Net.Http.Functional.Tests.HttpClientHandlerTest.GetAsync_ServerNeedsAuthAndNoCredential_StatusCodeUnauthorized() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_rhel7.2_debug/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs:line 433 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_rhel7.2_debug/121/testReport/System.Net.Http.Functional.Tests/ManagedHandler_HttpClientHandlerTest/GetAsync_ServerNeedsAuthAndNoCredential_StatusCodeUnauthorized/ +22646 area-System.Text Null ref thrown in System.Text RegEx The user posted an image with issue here: https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/649 @krwq: wrote regex stack trace by hand from the picture for easier grep ``` System.Text.RegularExpressions.Regex.Lookup.LookupCachedAndUpdate(CachedCodeEntryKey key) System.Text.RegularExpressions.Regex..ctor(String pattern, RegexOptions options, TimeSpan ... ... (irrelevant) ``` +22647 area-System.Diagnostics Add EventCounter.Dispose() "Today EventCounters have a very simple API. You can Create one, and you can write a metric (floating point value) to one). This works well for 'static' counters (that get created early and live forever), but does not allow for counters that are specific to objects that come and go. For example. There may be a counter for the I/O operations for a request. Thus you would like a counter that gets created when request is received, update, and then destroyed when the request is complete. Adding a Dispose() method on EventCounter allows this. Thus the proposed API change is to add the Dispose method and make EventCounter IDisposeable ```c# public class EventCounter : *IDisposable* { public EventCounter(string name, EventSource eventSource) { } public void WriteMetric(float value) { } *public void Dispose() { }* } ``` I can be used like this ```c# request.ioCounter = new EventCounter(""I/O Operations: "" + request.url, logger); ..... counterForRequest.WriteMetric(ioSize); // Do this at the appropriate point. .... ``` And in the code that cleans up a request request.ioCounter.Dispose(); request.ioCounter =- null; **Dispose is an optional API**. If you don't call it the EventCounter will be cleaned up, but only when the EventSource it is attached to is dead, and this is perfectly fine for many uses.. [EDIT] Code formatting by @karelz" +22648 area-Infrastructure Add quotes for uapaot TargetQueues This should fix official build break https://github.com/dotnet/core-eng/issues/1328. https://github.com/dotnet/corefx/pull/22572/files#diff-c9539d529b27144215b930ab94c59342R215 added a `,` but no quotes, where all other TargetQueues had quotes. This causes msbuild to fail, saying: ``` MSBUILD : error MSB1006: Property is not valid. Switch: Windows.10.Amd64.Core ``` +22654 area-System.IO Add Stream and {Unmanaged}MemoryStream Span-based APIs - Add the new Span-based Read/Write overloads to the refs - Add tests for the new methods Depends on https://github.com/dotnet/coreclr/pull/13058 and https://github.com/dotnet/corert/pull/4231; will fail CI until those are merged and consumed into corefx. (The test changes for UnmanagedMemoryStream look more extensive than they actually are, as I moved some tests between files to enable more easily reusing them for both the span-based and array-based read/write overloads.) Contributes to dotnet/corefx#22381, dotnet/corefx#22388, and dotnet/corefx#22389. cc: @jkotas, @JeremyKuhne, @KrzysztofCwalina +22656 area-System.Drawing Disable System.Drawing tests expected to fail on Server Core "• All the Drawing tests fail. https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170726.03/workItem/System.Drawing.Common.Tests I assume this is because GDI doesn’t exist, like on Nano. Currently these all have [ConditionalTheory(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] Which we should bulk edit now to [ConditionalTheory(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotHeadlessWindows))] after https://github.com/dotnet/corefx/pull/22653/files " +22658 area-Infrastructure Is it possible to package assemblies during build into individual packages i.e. System.Numerics Tried to find code which would allow to pack assemblies in a standard way and in addition each assembly individually - without success. Is it possible or do I have to create additional build code to get it done? I need to get normal build output plus all assemblies packaged each in it's own NuGet package. +22660 area-System.Diagnostics How to get Common System Hardware information across platforms @heartlocker commented on [Mon Jul 24 2017](https://github.com/dotnet/core/issues/769) As the .NET Core project could run on Windows, Linux and Mac OS. Is it possible for me to get the PhysicalMemory size of the running machine on these three OS. Just like in .NET framework, by using `Microsoft.VisualBasic.Devices.ComputerInfo` to get the Physical Memory information of the windows machine --- @Petermarcu commented on [Wed Jul 26 2017](https://github.com/dotnet/core/issues/769#issuecomment-318125530) @AlexGhiondea , should this issue be moved to CoreFX to make an API proposal? --- @AlexGhiondea commented on [Wed Jul 26 2017](https://github.com/dotnet/core/issues/769#issuecomment-318127409) @Petermarcu yes -- I will move it. +22661 area-System.Data Memory overconsumption on SqlClient with MARS I have a simple web api application which connects to SQLServer with MARS enabled. I have noticed that the application consumes a lot of memory and never release any of it. However, when MARS is disabled everything works fine and memory is properly released. Memory increases constantly until it reaches the maximum physical limit, after that it starts writing on swap. The same application works as expected on Windows. Actually on Windows memory consumption goes to **~300MB** and then stops increasing. OS: **ubuntu 16.04** (and on docker) dotnet version: **preview1-final** +22663 area-System.Runtime AssemblyName ctor throws on Core when version number does not have 4 parts - works on full Framework "This code succeeds on Desktop but throws on Core. Can we either make this work, or be more helpful? ``` Unhandled Exception: System.IO.FileLoadException: The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047) at System.Reflection.AssemblyName.nInit(RuntimeAssembly& assembly, Boolean forIntrospection, Boolean raiseResolveEvent) at System.Reflection.AssemblyName..ctor(String assemblyName) at ConsoleApp2.Program.Main(String[] args) in C:\dotnet.2\1\Program.cs:line 11 ``` ```c# using System; using System.Reflection; namespace ConsoleApp2 { class Program { static void Main(string[] args) { var assemblyName = new AssemblyName(""asdfasdfa, Version=1.0, Culture=neutral, PublicKeyToken=null""); } } } ``` @morganbr is this expected?" +22664 area-System.IO Use new WinRT APIs for SpecialFolders Starting in master, then I'll port to UWP. +22665 area-Infrastructure Add .NET Framework compat package This meta-package will make it easier for .NET Core developers to add a set of library packages to help them port code from .NET Framework to .NET Core. resolves https://github.com/dotnet/corefx/issues/21664. PTAL @ericstj @Petermarcu @terrajobst +22668 area-System.Data Add helper function for retrieving SniContext enum names, since SniContext is an internal enum and its name cannot be retrieved via reflection on uapaot. (#22579) Porting change to release/UWP6.0 +22669 area-System.Data Port System.Data.DataSetExtensions from desktop to Core "Waiting on feedback for naming conventions -- initial idea to change the port name to System.Data.Extensions since the port removed 2 APIs (AsDataView) /tests has one ""Smoke Test"" currently that validates that the project is ready for tests to be added. I still need to find the existing tests, those will be included soon. Otherwise, looking for any feedback 👍 (Related to #19771)" +22670 area-Infrastructure Identify the set of packages we need to ship for UWP60 Ideally we would only ship the UWP platform package with the UWP6 release and avoid having to ship any of the other library nuget packages. We should do some analysis to see if there are any additional packages that have uwp specific assets in them that we need to ship. If we do have such packages we need to test to make sure they don't have netcoreapp specific assets as well as we need to ensure they still work on .NET Core 2.0. cc @Petermarcu @danmosemsft +22673 area-System.Runtime Expose and test new String(ReadOnlySpan) ctor cc: @jkotas, @KrzysztofCwalina Contributes to https://github.com/dotnet/corefx/issues/22378 Depends on https://github.com/dotnet/coreclr/pull/13075 being merged and consumed into corefx before this PR will pass CI. +22674 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandlerTest/Proxy_BypassFalse_GetRequestGoesThroughCustomProxy failed with ""System.AggregateException""" "Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/Proxy_BypassFalse_GetRequestGoesThroughCustomProxy(creds: NetworkCredential { Domain = \""\"", Password = \""password\"", SecurePassword = Se...` has failed. System.AggregateException : One or more errors occurred. (An error occurred while sending the request.) (An error occurred while sending the request.) (One or more errors occurred. (An error occurred while sending the request.))\r ---- System.Net.Http.HttpRequestException : An error occurred while sending the request.\r -------- System.Net.Http.WinHttpException : The handle is invalid\r ---- System.Net.Http.HttpRequestException : An error occurred while sending the request.\r -------- System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response\r ---- System.AggregateException : One or more errors occurred. (An error occurred while sending the request.)\r -------- System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ------------ System.Net.Http.WinHttpException : The server returned an invalid or unrecognized response Stack Trace: at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.Proxy_BypassFalse_GetRequestGoesThroughCustomProxy(ICredentials creds, Boolean wrapCredsInCache) ----- Inner Stack Trace #1 (System.Net.Http.HttpRequestException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.LoopbackGetRequestHttpProxy.d__2.MoveNext() ----- Inner Stack Trace ----- at System.Net.Http.WinHttpException.ThrowExceptionUsingLastError() at System.Net.Http.WinHttpHandler.SetRequestHandleRedirectionOptions(SafeWinHttpHandle requestHandle) at System.Net.Http.WinHttpHandler.SetRequestHandleOptions(WinHttpRequestState state) at System.Net.Http.WinHttpHandler.d__105.MoveNext() ----- Inner Stack Trace #2 (System.Net.Http.HttpRequestException) ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() ----- Inner Stack Trace #3 (System.AggregateException) ----- at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task`1.get_Result() at System.Net.Http.Functional.Tests.HttpClientHandlerTest.<>c.b__87_0(Task`1 t) at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : 2.0.0 - 20170726.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170726.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FProxy_BypassFalse_GetRequestGoesThroughCustomProxy(creds:%20NetworkCredential%20%7B%20Domain%20=%20%5C%22%5C%22,%20Password%20=%20%5C%22password%5C%22,%20SecurePassword%20=%20Se..." +22676 area-System.Net Implement digest authentication for ManagedHandler. "cc @geoffkizer @stephentoub @karelz Implemented following the rules listed in [RFC 7616](https://tools.ietf.org/html/rfc7616). Verified the correctness of the implementation using a third party digest authentication validator [here](http://pernau.at/kd/sipdigest.php). The header field values are set as expected. While performing a real Http scenario test using httpbin, digest authentication returns Unauthorized on .NET Core. Note that this bug reproes even when not using ManagedHandler. Whereas, on full framework the httpbin test with digest auth passes. I'm not sure what's wrong, used the following code to test. @CIPop Is Digest authentication expected to work with .NET Core HttpClient? ```c# using (HttpClientHandler handler = new HttpClientHandler()) { handler.Credentials = new NetworkCredential(""user"", ""passwd""); using (HttpClient client = new HttpClient(handler)) { using (HttpResponseMessage m = client.GetAsync(""http://httpbin.org/digest-auth/auth/user/passwd/MD5"").Result) Console.WriteLine(m.StatusCode); } } ``` Update: 1. Figured out httpbin test failure, httpbin expects the cookie header to also be sent during digest auth to pass digest authentication. By hacking my test to always send a cookie header with the digest auth, passed the httpbin test. This issue is already reported to httpbin, and was closed as by design. https://github.com/kennethreitz/httpbin/issues/124 2. Tested the following scenarios: - qop: auth, algorithm: MD5 - qop: auth-int, algorithm: MD5 - qop: auth, algorithm: MD5-sess - qop: auth-int, algorithm: MD5-sess - qop: auth, algorithm: SHA-256 - qop: auth-int, algorithm: SHA-256 - qop: auth, algorithm: SHA-256-sess - qop: auth-int, algorithm: SHA-256-sess - Multiple requests with same username, password - updates nonce count Pending: 1. Figure out why httpbin test fails - Done. 2. Support Proxy-Authorization header for digest authentication as response to Proxy-Authenticate challenge from server. Stretch scenarios: 1. Support for username* - to be used when userhash=false, and username has reserved characters 2. Parsing Authorization-Info, ProxyAuthorization-Info that the server may send in response to request containing successful Authorization header values. " +22683 area-Microsoft.CSharp Remove pIsMatchingStatic out parameter from AdjustMemberObject If this parameter is ever set to false it is either set to true again before the method returns, or an exception is thrown which is not caught at the caller. Remove it, and all paths for it being false. +22684 area-Microsoft.CSharp Make Expr.Type in Microsoft.CSharp non-virtual. Since those types that compute this do so in a limited number of places and can pre-emptively do so, and since only a small number never set it, the advantage of having the member virtual is low. Conversely, since the property is accessed a very large number of times the advantage of having the getter a simple (hidden) field access which would be fast and more easily inlined, is greater. +22687 area-System.Reflection Expose Assembly.GetForwardedTypes() and add tests. Fix https://github.com/dotnet/corefx/issues/19789 +22688 area-System.Memory Mark System.Memory package as stable for 2.1 cc: @KrzysztofCwalina, @ahsonkhan +22689 area-System.Numerics Add Span-based APIs to BigInteger Adds: ```C# public BigInteger(ReadOnlySpan value); public int GetByteCount(); public static BigInteger Parse(ReadOnlySpan value, NumberStyles style, IFormatProvider provider); public static bool TryParse(ReadOnlySpan value, out BigInteger result, NumberStyles style, IFormatProvider provider); public bool TryWriteBytes(Span destination, out int bytesWritten); ``` Rather than duplicate a lot of logic, existing code paths were changed to use {ReadOnly}Span, with string and array-based overloads targeting them as well. cc: @axelheer, @mellinoe, @bartonjs Fixes https://github.com/dotnet/corefx/issues/22401 +22690 area-System.Security Add RandomNumberGenerator.GetBytes(Span) Currently RandomNumberGenerator provides a GetBytes method that takes a byte[]. We should add one that takes a Span. ```C# namespace System.Security.Cryptography { public abstract class RandomNumberGenerator { public virtual void GetBytes(Span data); ... } } ``` cc: @bartonjs +22691 area-Serialization Area-Serialization Sprint 122 The issue is for tracking issues to be done in sprint 122 (due by 8/17/2017) +22695 area-Microsoft.CSharp Poor wording of error message if first argument to dynamic constructor binding isn't a type. #22333 fixed an issue with Microsoft.CSharp not handling erroneous calls to static methods well (#22331). In doing so it also fixed a similar issue with calls to constructors. Unfortunately the error message added in #22333 specifically refers to static methods. While the two cases could be distinguished, just rewording to cover both cases would probably suffice. +22696 area-Microsoft.CSharp M.CSharp: Improve error handling with CSharpInvokeConstructorBinder * Better message for ctor called by non-type. `TypeArgumentRequiredForStaticCall` can be used for constructor calls as well as static type calls, so reword to cover that case. Fixes #22695 * Refactor `GetTypeForErrorMetaObject` We only need to extract the first item in `args` in one case, so pass the array rather than that first element. Replace `as` used just as test with `is`. In `action is CSharpInvokeConstructorBinder` branch, first argument is guaranteed to be a Type, or there would have been an `ArgumentException` earlier, so no need to guard against it being otherwise. +22697 area-System.Net Random exceptions with System.Net.Http.WinHttpHandler _From @hanabi1224 on July 27, 2017 18:34_ It randomly(at very low chance) throws 'An item with the same key has already been added.' when SendAsync being called, and same issue never happen after removing WinHttpHandler Package version: 4.3.1 .Net version: 4.6.2 OS: Azure guest OS 5-* Http version: 2.0 _Copied from original issue: dotnet/coreclr#13086_ +22700 area-System.Net ManagedHandler: Failing AllowAutoRedirect_True_ValidateNewMethodUsedOnRedirection test Discovered while working on PR #22702. The managed handler is not changing/keeping the correct HTTP methods on the various redirect status codes: AllowAutoRedirect_True_ValidateNewMethodUsedOnRedirection +22701 area-System.Diagnostics [BLOCKED] Add event counter Dispose() This is associated with issue #22647 I also made some test names clearer. +22702 area-System.Net Fix HttpClient redirection logic on UAP This PR changes the implementation of sending requests in HttpClient for UAP when dealing with redirection. In the past, we would let the WinRT layer handle auto redirection logic. However, due to #9003, the cookies were getting lost on 3xx responses since the .NET layer didn't see them. So, this PR implements the redirection ourselves. One important part of redirection is that we need to drop credentials. The WinRT layer did this for us. However, we are unable to use a single WinRT HttpBaseProtocolFilter object since we need to remove the credential after the first redirect. So, we need to maintain a second filter that uses no credentials and keep it in sync regarding all the other properties of the primary filter. With this PR, the behavior of other aspects (such as controlling max number of redirects, etc.) now matches .NET Framework. So, some tests were adjusted to remove the UAP specific behavior checks. Fixes #9003 Fixes #22191 +22704 area-Infrastructure Update package index Add the latest stable versions Update baseline versions to match the latest stable versions. +22705 area-System.Xml Xml test case disabled on UAP needs to be reenabled on RS4 This is a Windows issue and will likely be fixed on RS4. It is related to frequently changing culture. Converting this test case to use RemoteInvoke is significantly increasing test execution time (from seconds to minutes). ``` at Windows.ApplicationModel.Resources.Core.ResourceContext.get_Languages() at System.Resources.WindowsRuntimeResourceManager.SetGlobalResourceContextDefaultCulture(CultureInfo ci) at System.Globalization.CultureInfo.set_CurrentCulture(CultureInfo value) at System.Xml.Tests.TCFullEndElement.TCWriteValue.writeValue_27(XmlWriterUtils utils, Int32 param, String sourceStr, String destStr, Boolean isValid, Object expVal) ``` _change is still pending in the PR_ +22706 area-System.Runtime Reenable cloning of serializable object for uapaot Fixes https://github.com/dotnet/corefx/issues/18942 Local test verification build is still running. No failures yet. Please do not merge till it's finished. +22707 area-System.Net AllowAutoRedirect_True_ValidateNewMethodUsedOnRedirection failing "AllowAutoRedirect_True_ValidateNewMethodUsedOnRedirection(statusCode: 300, oldMethod: \""POST\"", newMethod: \""GET\"") PR #22702 and the added tests has exposed that CurlHandler is not changing HTTP method verbs appropriately for certain redirect status codes. Ref: https://mc.dot.net/#/user/davidsh/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/2621566904aabc833bf3515748c9c6253f5d37bc/workItem/System.Net.Http.Functional.Tests " +22709 area-System.Data Add MarsConnection cleanup in disposal of TdsParserStateObject when using managed SNI. This prevents connections from accumulating forever in the static SNIMarsManager singleton. Issue would show up when using MARS in managed SNI with Pooling=false. Connectons would keep getting added to the MarsManager, but were never getting removed. Also did some misc cleanup: 1) Removed an unnecessary using in SNIMarsManager 2) Made SNIMarsManager's constructor private, since it's supposed to be a singleton class Fixes: https://github.com/dotnet/corefx/issues/22661 +22710 area-System.Data Force connection pooling in SqlClient manual tests that rely on connection pooling. Started seeing some test failures when doing some ad-hoc manual testing with Pooling=false in my connection string. +22711 area-System.Runtime Add more performance tests for double.ToString() Per https://github.com/dotnet/coreclr/pull/12894#issuecomment-318065901 and https://github.com/dotnet/coreclr/pull/12894#issuecomment-318425886 , we need to add more tests to cover all scenarios of double.ToString(). So that when new implementation of double.ToString() included by CoreFX, we can know the exact performance gain. Current double.ToString() performance tests are not enough: https://github.com/dotnet/corefx/blob/master/src/System.Runtime/tests/Performance/Perf.Double.cs I'm going to add following tests to CoreFX: https://github.com/mazong1123/doubleperftest/blob/master/src/DoubleToStringTest.cs +22713 area-Infrastructure All 2.1.0 branches create Microsoft.NETCore.Platforms with the same fixed version `master`, `release/uwp6.0`, and ~~`release/defaultintf`~~`dev/defaultintf` all produce `Microsoft.NETCore.Platforms 2.1.0-preview1-25324-02`: [build-info/dotnet/corefx/master/Last_Build_Packages.txt#L2](https://github.com/dotnet/versions/blob/356894fb584a6a16010f894f7723176b18166dd9/build-info/dotnet/corefx/master/Last_Build_Packages.txt#L2) [build-info/dotnet/corefx/release/uwp6.0/Last_Build_Packages.txt#L2](https://github.com/dotnet/versions/blob/356894fb584a6a16010f894f7723176b18166dd9/build-info/dotnet/corefx/release/uwp6.0/Last_Build_Packages.txt#L2) [build-info/dotnet/corefx/dev/defaultintf/Last_Build_Packages.txt#L2](https://github.com/dotnet/versions/blob/356894fb584a6a16010f894f7723176b18166dd9/build-info/dotnet/corefx/dev/defaultintf/Last_Build_Packages.txt#L2) This is making publish fail now that the package feed is set to forbid overwrites. (Even if only master were building, this version doesn't seem to correspond to the build and would still cause problems.) It looks like this is because of [Microsoft.NETCore.Platforms.pkgproj#L6](https://github.com/dotnet/corefx/blob/c708a0af2550fc2aa4d246b8160588bda6060cdb/pkg/Microsoft.NETCore.Platforms/Microsoft.NETCore.Platforms.pkgproj#L6) using the `PlatformPackageVersion` from [dependencies.props#L24](https://github.com/dotnet/corefx/blob/c708a0af2550fc2aa4d246b8160588bda6060cdb/dependencies.props#L24), but I don't know the intent behind it. @weshaggard @ericstj ? FYI @joshfree (release/uap6.0 impact) +22714 area-System.Runtime Added more perf tests for double.ToString() Added tests to cover NaN, +inf, -inf, +0.0, -0.0, subnormal and etc. Fix #22711 +22716 area-Infrastructure Dump remote exception better "When a spawned test process throws currently we dump it verbosely to the console, but in the test log, and thus in bug reports, we have useless info: ``` Assert.Equal() Failure Expected: 42 Actual: -532462766 Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() at System.Drawing.Tests.IconTests.ToBitmap_PngIconNotSupportedInSwitches_ThrowsArgumentOutOfRangeException() ``` The number just means ""unhandled exception"" and the stack is not relevant to the failure. It is necessary to navigate through MC to the console output and figure out which callstack in there was the matching one. With this change the test log (and thus bug reports) contain the actual exception. The console is cleaned up also. Example output: ``` Child exception: System.IO.IOException: The data area passed to a system call is too small at System.ConsolePal.get_Title() in C:\git\corefx\src\System.Console\src\System\ConsolePal.Windows.cs:line 6 23 at System.Console.get_Title() in C:\git\corefx\src\System.Console\src\System\Console.cs:line 284 at WindowAndCursorProps.<>c.b__11_0(String lengthOfTitleString) in C:\git\corefx\src\Syst em.Console\tests\WindowAndCursorProps.cs:line 157 Child process: System.Console.Tests, Version=4.1.1.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb WindowAndCursorProps+ <>c Int32 b__11_0(System.String) Child arguments: 1024 ``` The information is passed using a temp file, rather than redirecting console output, as the latter is reserved for tests to do if they wish." +22719 area-System.Data "System.Data.SqlClient.Tests.AmbientTransactionFailureTest.TestSqlException failed with ""System.InvalidOperationException"" in CI" Failed Test: System.Data.SqlClient.Tests.AmbientTransactionFailureTest.TestSqlException Configuration: outerloop_netcoreapp_rhel7.2_release Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_rhel7.2_release/122/testReport/System.Data.SqlClient.Tests/AmbientTransactionFailureTest/TestSqlException_connectAction__Action_1___Method___Void___cctor_b__13_0_System_String___Target_____c________connectionString____Data_Source_605a0eb5_7c51_414a_b735_afb0f076140d________/ MESSAGE: ~~~ Assert.Throws() Failure Expected: typeof(System.Data.SqlClient.SqlException) Actual: typeof(System.InvalidOperationException): Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. ~~~ STACK TRACE: ~~~ at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_rhel7.2_release/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionFactory.cs:line 318 at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_rhel7.2_release/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionInternal.cs:line 700 at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_rhel7.2_release/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnection.cs:line 1062 at System.Data.SqlClient.SqlConnection.Open() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_rhel7.2_release/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnection.cs:line 606 at System.Data.SqlClient.Tests.AmbientTransactionFailureTest.<>c.<.cctor>b__13_0(String connectionString) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_rhel7.2_release/src/System.Data.SqlClient/tests/FunctionalTests/AmbientTransactionFailureTest.cs:line 22 ~~~ +22720 area-System.Net WebRequest.DefaultWebProxy: Set doesn't work without a previous Get Unless we do an unnecessary Get() on WebRequest.DefaultWebProxy, any Set() done will not be honored. This is especially a problem on Linux, where DefaultWebProxy throws PlatformNotSupportedException(). This in turn breaks libraries like WindowsAzure.Storage which fail unless the Get() is called first and then WebRequest.DefaultWebProxy is set to null. This fix avoids the unnecessary Get() by setting the already initialized flag sent to the LazyInitializer. @davidsh +22721 area-Infrastructure The release/1.1.0 branch produces old stable-versioned Compression packages 4.3.0 versions of `runtime.[non-windows].runtime.native.System.IO.Compression` are being produced and pushed to MyGet dotnet-core. ([build-info/dotnet/corefx/release/1.1.0/Latest_Packages.txt](https://github.com/dotnet/versions/blob/9ad683d7d73031d00f0d2a60d9ebc1feea57781f/build-info/dotnet/corefx/release/1.1.0/Latest_Packages.txt)) This is now causing build failures because overwriting is disabled on the MyGet feed. Right now, `runtime.debian.8-x64.runtime.native.system.io.compression.4.3.0.nupkg` has different contents on the NuGet gallery vs. the MyGet dev feed. I think the package version upgrade was missed when enabling these packages to build during servicing. @weshaggard @ericstj +22722 area-Microsoft.CSharp Remove BoundLambdaType from Microsoft.CSharp A dead type that is never used (methods aren't really anonymous in running code). Also remove the orphaned `TypeKind` values for `UnboundLambdaType` and `NaturalIntegerType`, as well as that for `BoundLambdaType`. +22723 area-System.Drawing System.Drawing.Imaging.Metafile(filename, referenceHdc) throws wrong Exception when filename is not valid on netcoreapp "**Test Invalid path:** ```c# [ConditionalTheory(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] [InlineData(@""fileNo*-//\\#@(found"")] [InlineData("""")] public void Ctor_InvalidPathI_ThrowsArgumentException(string fileName) { using (var bufferGraphics = Graphics.FromHwndInternal(IntPtr.Zero)) { IntPtr referenceHdc = bufferGraphics.GetHdc(); AssertExtensions.Throws(null, () => new Metafile(fileName, referenceHdc)); AssertExtensions.Throws(null, () => new Metafile(fileName, referenceHdc, EmfType.EmfOnly)); AssertExtensions.Throws(null, () => new Metafile(fileName, referenceHdc, EmfType.EmfOnly, ""description"")); } } ``` **Expected:** `System.ArgumentException` **Actual:** netfx `System.ArgumentException` netcoreapp `typeof(System.Runtime.InteropServices.ExternalException): A generic error occurred in GDI+.` **Test Path Too Long:** ```c# [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] public void Ctor_PathTooLong_ThrowsPathTooLongException() { string fileName = Helpers.GetTestBitmapPath(new string('a', 261)); using (var bufferGraphics = Graphics.FromHwndInternal(IntPtr.Zero)) { IntPtr referenceHdc = bufferGraphics.GetHdc(); Assert.Throws(() => new Metafile(fileName, referenceHdc)); Assert.Throws(() => new Metafile(fileName, referenceHdc, EmfType.EmfOnly)); Assert.Throws(() => new Metafile(fileName, referenceHdc, EmfType.EmfOnly, ""description"")); } DeleteFile(fileName); } ``` **Expected:** `System.IO.PathTooLongException` **Actual:** netfx `System.IO.PathTooLongException` netcoreapp `typeof(System.Runtime.InteropServices.ExternalException): A generic error occurred in GDI+.` **Test Null Path:** ```c# [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] public void Ctor_NullPath_ThrowsArgumentNullException() { using (var bufferGraphics = Graphics.FromHwndInternal(IntPtr.Zero)) { IntPtr referenceHdc = bufferGraphics.GetHdc(); AssertExtensions.Throws(""path"", () => new Metafile((string)null, referenceHdc)); AssertExtensions.Throws(""path"", () => new Metafile((string)null, referenceHdc, EmfType.EmfOnly)); AssertExtensions.Throws(""path"", () => new Metafile((string)null, referenceHdc, EmfType.EmfOnly, ""description"")); } } ``` **Expected:** `System.ArgumentNullException` **Actual:** netfx `System.ArgumentNullException` netcoreapp `System.ArgumentException` (#20711)" +22724 area-System.Collections ConcurrentQueue 128-byte cache line +22725 area-System.Data Cannot connect to SQL Server from UWP: HResult=0x80131904 "When trying to connect to SQL from UWP I get an exception. Same code works from a console. Tried local database and 1 in azure. System.Data.SqlClient.SqlException occurred HResult=0x80131904 Message=A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 35 - An internal exception was caught) Source=Core .Net SqlClient Data Provider StackTrace: at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at SQLTest.MainPage..ctor() in C:\Users\mahoekst\source\repos\SQLTest\SQLTest\MainPage.xaml.cs:line 34 at SQLTest.SQLTest_XamlTypeInfo.XamlTypeInfoProvider.Activate_0_MainPage() in C:\Users\mahoekst\source\repos\SQLTest\SQLTest\obj\x86\Debug\XamlTypeInfo.g.cs:line 226 at SQLTest.SQLTest_XamlTypeInfo.XamlUserType.ActivateInstance() in C:\Users\mahoekst\source\repos\SQLTest\SQLTest\obj\x86\Debug\XamlTypeInfo.g.cs:line 382 Inner Exception 1: TypeLoadException: Could not load type 'System.Runtime.CompilerServices.IAsyncStateMachine' from assembly 'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. This is the code: ~~~~ using (SqlConnection conn = new SqlConnection()) { conn.ConnectionString = ""Server=tcp:XXXX.database.windows.net,1433;Initial Catalog=AdventureWorks;Persist Security Info=False;User ID=XXXX;Password=XXX;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;""; conn.Open(); SqlCommand command = new SqlCommand(""SELECT * FROM SalesLT.Customer"", conn); using (SqlDataReader reader = command.ExecuteReader()) { Console.WriteLine(""FirstColumn\tSecond Column\t\tThird Column\t\tForth Column\t""); while (reader.Read()) { Console.WriteLine(String.Format(""{0} \t | {1} \t | {2} \t | {3}"", reader[0], reader[1], reader[2], reader[3])); } } Console.WriteLine(""Data displayed!""); } Console.ReadLine(); ~~~~ VS version: Version 15.4.0 Preview 1.0 [30319.200.d15prstg3] UWP: 6.0.0-preview2-25512-03 or 6.0.0-preview2-25527-02 System.Data.SqlClient: 4.5.0-preview2-25527-02 " +22726 area-Infrastructure Revert PackageBaseline 1.0.0 stabilization Always produce a prerelease to represent versions produced in the latest servicing build. Without this change, release/1.0.0 always produces 1.0.0, which makes the official build fail when MyGet feed overwrites are disabled. +22728 area-System.Data Adding SqlConnectionStringBuilder.Enlist to public method contract (#22566) This PR is for merging the change to release/uwp6.0 branch. *** Original PR: https://github.com/dotnet/corefx/pull/22566 I added `SqlConnectionStringBuilder.Enlist` to public method contract, and also add more unit tests for `SqlConnectionStringBuilder.Enlist` +22735 area-System.Net HttpClient test SendAsync_RequestVersion20_ResponseVersion20 fails See discussion in PR #22702: Outerloop tests for .NET Core and UWP are failing on this test: https://ci3.dot.net/job/dotnet_corefx/job/master/job/windows-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_true_prtest/16/ >SendAsync_RequestVersion20_ResponseVersion20(server: https://www.microsoft.com/) It looks like the www.microsoft.com server is not using HTTP/2.0 protocol today. Our tests assume that this server always uses HTTP/2 protocol. Don't know if this is temporary problem. We might need to switch to a different HTTP/2 test server. I also confirmed using the Chrome browser that www.microsoft.com is not using HTTP/2. +22737 area-System.Net Enabling HttpClient EKU tests. For UWP, the tests require both the Root as well as all the client certificates to be correctly installed. These tests require client side prerequisites and cannot be executed in CI at this time. Fixes #21738 +22741 area-System.Drawing System.Drawing.Imaging.Metafile(Stream) throws wrong Exception when Stream is Null on netcoreapp "**Test Null Stream:** ```c# [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] public void Ctor_NullStream_ThrowsArgumentException() { AssertExtensions.Throws(null, () => new Metafile((Stream)null)); } ``` Expected: `System.ArgumentException` Actual: netfx `System.ArgumentException` netcoreapp `System.ArgumentNullException` **Edit** Forgot to reference related issue (#20711) " +22744 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientHandlerTest/SendAsync_RequestVersion20_ResponseVersion20(server: https://www.microsoft.com/) Opened on behalf of @joshfree The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/SendAsync_RequestVersion20_ResponseVersion20(server: https://www.microsoft.com/)` has failed. Assert.Equal() Failure\r Expected: 2.0\r Actual: 1.1 Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__91.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : UWP 6.0 - 20170729.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Windows.10.Arm64-arm - Release - Debug - Windows.10.Amd64.ClientRS3-x64 - Release +22745 area-System.IO Test failure: System.IO.Tests.Perf_FileStream/Write(useAsync: False, bufferSize: 1, totalSize: 200000) Opened on behalf of @joshfree The test `System.IO.Tests.Perf_FileStream/Write(useAsync: False, bufferSize: 1, totalSize: 200000)` has failed. System.UnauthorizedAccessException : Access to the path 'C:\\Users\\DotNetTestRunner\\AppData\\Local\\Packages\\5cd54353-3ed7-4a6e-a72f-db349f28867c_v52bfwc2c21ha\\AC\\Temp\\Perf_FileStream_bnuz2qjb.aqh\\Write_104_e160e71a' is denied. Stack Trace: at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.Tests.Perf_FileStream.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.Xunit.Performance.BenchmarkTestInvoker.<>c__DisplayClass1_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Microsoft.Xunit.Performance.Internal.BenchmarkIterator.d__6.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : UWP 6.0 - 20170729.01 (UWP F5 Tests) Failing configurations: - Windows.10.Arm64-arm - Debug +22746 area-System.Net Test failure: System.Net.WebSockets.Client.Tests.KeepAliveTest/KeepAlive_LongDelayBetweenSendReceives_Succeeds Opened on behalf of @joshfree The test `System.Net.WebSockets.Client.Tests.KeepAliveTest/KeepAlive_LongDelayBetweenSendReceives_Succeeds` has failed. System.Net.WebSockets.WebSocketException : The WebSocket is in an invalid state ('Aborted') for this operation. Valid states are: 'Open, CloseSent, CloseReceived, Closed' Stack Trace: at System.Net.WebSockets.WinRTWebSocket.CheckValidState() in E:\A\_work\779\s\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WinRTWebSocket.cs:line 547 at System.Net.WebSockets.WinRTWebSocket.InterlockedCheckValidStates() in E:\A\_work\779\s\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WinRTWebSocket.cs:line 490 at System.Net.WebSockets.WinRTWebSocket.d__43.MoveNext() in E:\A\_work\779\s\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WinRTWebSocket.cs:line 343 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at System.Runtime.CompilerServices.TaskAwaiter$1.GetResult() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 477 at System.Net.WebSockets.Client.Tests.KeepAliveTest.d__1.MoveNext() in E:\A\_work\779\s\corefx\src\System.Net.WebSockets.Client\tests\KeepAliveTest.cs:line 30 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 Build : UWP 6.0 - 20170729.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Release +22747 area-System.Drawing System.Drawing.Imaging.Metafile.GetMetafileHeader(String) throws wrong Exception when String is not valid path on netcoreapp "**Test Path Too Long:** ```c# [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] public void Static_GetMetafileHeader_PathTooLong_ThrowsPathTooLongException() { Assert.Throws(() => Metafile.GetMetafileHeader(GetPath(new string('a', 261)))); } ``` **Expected**: `System.IO.PathTooLongException` **Actual:** netfx `System.IO.PathTooLongException` netcoreapp `System.ArgumentException` **Test Null path:** ```c# [ConditionalFact(nameof(PlatformDetection) + ""."" + nameof(PlatformDetection.IsNotWindowsNanoServer))] public void Static_GetMetafileHeader_NullString_ThrowsArgumentNullException() { AssertExtensions.Throws(""path"", () => Metafile.GetMetafileHeader((string)null)); } ``` **Expected**: `System.ArgumentNullException` **Actual:** netfx `System.ArgumentNullException` netcoreapp `System.ArgumentException` (#20711)" +22748 area-Microsoft.CSharp Refactor Microsoft.CSharp's error handling. Reduces a lot of complexity inherited from the static compiler, particularly to enable different approaches to error reporting (nothing but throwing an exception makes sense in a dynamic context) or report multiple errors (again, not meaningful with dynamic binding) and report on source code positions. Removes some errors that in static compilation could be reported after another error, but hence can't for dynamic; contributes to #22470 +22749 area-Microsoft.CSharp Apply FlagsAttribute to internal flag enums in Microsoft.CSharp +22750 area-System.Data Increase code coverage from 74.9% to 77.8% on System.Data.Common.DataColumnMappingCollection Hi, Here are a couple more tests for the class. If you have any questions or comments, please let me know. Thanks, Michael +22753 area-System.Drawing Adding System.Drawing.Common.Imaging Metafile tests. (#20711) Adding System.Drawing.Common.Imaging.Metafile tests. (#20711) +22754 area-Microsoft.CSharp Remove unnecessary predefined types from Microsoft.CSharp Any that aren't looked up by the `PredefinedType` enum don't offer any benefits. +22755 area-System.Text TextEncoder misses last BMP character after surrogate pair "**Version:** 2.0.0-preview2-final ```C# string url = System.Text.Encodings.Web.UrlEncoder.Default.Encode(""𐌺X""); string html = System.Text.Encodings.Web.HtmlEncoder.Default.Encode(""𐌺X""); string js = System.Text.Encodings.Web.JavaScriptEncoder.Default.Encode(""𐌺X""); ``` **Expected:** ``` url = ""%F0%90%8C%BAX"" html = ""𐌺X"" js = ""\uD800\uDF3AX"" ``` **Actual:** ``` url = ""%F0%90%8C%BA"" html = ""𐌺"" js = ""\uD800\uDF3A"" ```" +22756 area-Microsoft.CSharp Remove redundancy from ExprZeroInit in MicrosoftCSharp * Remove `ExprZeroInit.IsConstructor` Only ever false (in static code this could be e.g. `new int()` or similar for any value type without an explicit nullary ctor, but in dynamic code we won't see that as different to any other way to get the default as we're receiving the result of that). * Remove `ExprZeroInit.OptionalConstructorCall` Only ever null * Remove `ExprZeroInit.OptionalArgument` Only ever null. * Don't create `ExprClass` for `CreateZeroInit` only to discard it. Create only if it's used. * Remove unreachable branch. We're in a branch for `type.fundType()` being `FT_PTR` and comparing that with something that will always be `FT_REF`, so that branch is unreachable. * Remove error branch in `CreateZeroInit` Could only happen if called with a type like void that doesn't have a fundamental type, but no callsite attempts this. Add appropriate assertion in this regard. +22759 area-System.Net [release/uwp6.0] Fix HttpClient redirection logic on UAP (#22702) Port #22702 from master to release/uwp6.0 Fix HttpClient redirection logic on UAP This PR changes the implementation of sending requests in HttpClient for UAP when dealing with redirection. In the past, we would let the WinRT layer handle auto redirection logic. However, due to #9003, the cookies were getting lost on 3xx responses since the .NET layer didn't see them. So, this PR implements the redirection ourselves. One important part of redirection is that we need to drop credentials. The WinRT layer did this for us. However, we are unable to use a single WinRT HttpBaseProtocolFilter object since we need to remove the credential after the first redirect. So, we need to maintain a second filter that uses no credentials and keep it in sync regarding all the other properties of the primary filter. With this PR, the behavior of other aspects (such as controlling max number of redirects, etc.) now matches .NET Framework. So, some tests were adjusted to remove the UAP specific behavior checks. Fixes #9003 Fixes #22191 +22760 area-Microsoft.CSharp Simplify symbol factory in Microsoft.CSharp down to a single type. * Remove `MiscSymFactory`, moving functionality into `SymFactory` No benefit to the split. * Remove `SymFactoryBase` Only has one derived type, so move its functionality into that. * Rename some locals and members local to `SymFactory` +22761 area-Microsoft.CSharp Refactor init methods into ctors in Microsoft.CSharp Move `BSYMMGR` init methods into ctor Move `TypeManager` init method into ctor Remove no-op calls to `TypeManager.InitType` +22762 area-Microsoft.CSharp Tidy some nullable-handling in Microsoft.CSharp * Remove paths for `Nullable` not having `Value` property or ctor Will only fail if `Nullable` is so broken that we can't run anyway. * Fix `NullableType.GetAts` calls Remove unused parameter, move all implementation into check for memoised result, and remove paths for it returning null, which can't happen. * Remove unnecessary looping to cast `T??` +22763 area-System.Text Fix last character check in TextEncoder.EncodeIntoBuffer Fixes #22755 +22764 area-System.Net Socket.BeginAccept does not allow socket reuse If you call socket.Disconnect(true) and then try to BeginAccept into that socket, you get InvalidOperationException. If you use SocketAsyncEventArgs to do the Accept, it succeeds. This is Windows-only and not a common scenario at all, but I found it while adding tests so I thought we should at least track it. +22765 area-System.Net Linux sockets: async connect on already connected socket does not throw If you do a ConnectAsync on an already connected socket, no exception is thrown. Synchronous Connect correctly throws a SocketException with errorcode SocketError.IsConnected. +22766 area-System.Net refactor some Socket test code into SocketTestHelper, and modify some existing tests to use this Refactor the existing logic in SendReceive.cs for abstracting across sync/APM/Task/etc and generalize it. Also, update existing Accept and Connect tests to use this. Some existing Accept/Connect tests that are specific to SocketAsyncEventArgs are moved to SocketAsyncEventArgsTests.cs. PR is split into two commits: first has all the changes, second is just file renaming/reorganization. @stephentoub @davidsh @CIPop @Priya91 @wfurt +22767 area-Microsoft.CSharp Microsoft.CSharp does not validate binding arguments well. Say for example we have a binder from: ```C# BinaryOperationBinder binder = Microsoft.CSharp.RuntimeBinder.Binder.BinaryOperation( CSharpBinderFlags.None, ExpressionType.Add, GetType(), new[] { CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null), CSharpArgumentInfo.Create(CSharpArgumentInfoFlags.None, null)} ) as BinaryOperationBinder; ``` Then if called with: ```C# binder.FallbackBinaryOperation(null, null); ``` We get a `NullReferenceException` rather than an `ArgumentNullException`, and if called with: ```C# binder.FallbackBinaryOperation( new DynamicMetaObject(Expression.Parameter(typeof(object)), BindingRestrictions.Empty), new DynamicMetaObject(Expression.Parameter(typeof(object)), BindingRestrictions.Empty)) ``` We get a `RuntimeBinderInternalCompilerException` rather than an `ArgumentException` or any other exception that reflects the issue. In a debug build, an assertion fails. +22768 area-Microsoft.CSharp Validate arguments to Bind in Microsoft.CSharp Fixes #22767 +22770 area-Microsoft.CSharp Remove OpenTypePlaceholderType from Microsoft.CSharp Not part of the type of any value, the instance of this type is only used in a branch that depends on first encountering an instance of this type, and so never used. +22771 area-System.Runtime String.IndexOfAny is slower than hand-written naive implementation on x86 See: https://github.com/NuGet/NuGet.Client/pull/1590#discussion_r130262373 and https://github.com/aspnet/Mvc/issues/5362. On short strings and only two char arrays, `String.IndexOfAny` is significantly slower than a hard-coded version, and on x86 (non-RyuJIT) even slower than a hand-written naive implementation where there is no matches. Method | Job | Jit | Platform | Input | Mean | Error | StdDev | Scaled | ScaledSD |Faster? ------------------------------------------ |------------- |---------- |--------- |------------------------- |-----------:|------------:|------------:|-------:|---------:|:---:| IndexOfAny_Baseline | LegacyJitX64 | LegacyJit | X64 | This is a short string. | 3,690.3 us | 43.6378 us | 36.4396 us | 1.00 | 0.00 | IndexOfAny_HandWrittenLoop_HardcodedChars | LegacyJitX64 | LegacyJit | X64 | This is a short string. | 2,276.0 us | 27.5134 us | 25.7360 us | 0.62 | 0.01 |✓ IndexOfAny_HandWrittenLoop | LegacyJitX64 | LegacyJit | X64 | This is a short string. | 6,550.1 us | 123.8535 us | 96.6966 us | 1.78 | 0.03 | IndexOfAny_Baseline | LegacyJitX86 | LegacyJit | X86 | This is a short string. | 6,552.9 us | 65.9870 us | 61.7243 us | 1.00 | 0.00 | IndexOfAny_HandWrittenLoop_HardcodedChars | LegacyJitX86 | LegacyJit | X86 | This is a short string. | 2,314.6 us | 48.8886 us | 71.6603 us | 0.35 | 0.01 |✓ IndexOfAny_HandWrittenLoop | LegacyJitX86 | LegacyJit | X86 | This is a short string. | 5,143.8 us | 51.0904 us | 47.7900 us | 0.79 | 0.01 |✓ IndexOfAny_Baseline | RyuJitX64 | RyuJit | X64 | This is a short string. | 3,666.7 us | 61.5387 us | 57.5634 us | 1.00 | 0.00 | IndexOfAny_HandWrittenLoop_HardcodedChars | RyuJitX64 | RyuJit | X64 | This is a short string. | 2,400.2 us | 22.9174 us | 21.4370 us | 0.65 | 0.01 |✓ IndexOfAny_HandWrittenLoop | RyuJitX64 | RyuJit | X64 | This is a short string. | 6,126.5 us | 118.1990 us | 116.0872 us | 1.67 | 0.04 | IndexOfAny_Baseline | LegacyJitX64 | LegacyJit | X64 | /This is a short string. | 1,196.7 us | 8.0287 us | 7.1172 us | 1.00 | 0.00 | IndexOfAny_HandWrittenLoop_HardcodedChars | LegacyJitX64 | LegacyJit | X64 | /This is a short string. | 206.3 us | 1.3898 us | 1.3000 us | 0.17 | 0.00 |✓ IndexOfAny_HandWrittenLoop | LegacyJitX64 | LegacyJit | X64 | /This is a short string. | 464.2 us | 8.2176 us | 7.2847 us | 0.39 | 0.01 |✓ IndexOfAny_Baseline | LegacyJitX86 | LegacyJit | X86 | /This is a short string. | 1,668.2 us | 11.5627 us | 10.8158 us | 1.00 | 0.00 | IndexOfAny_HandWrittenLoop_HardcodedChars | LegacyJitX86 | LegacyJit | X86 | /This is a short string. | 233.1 us | 0.7199 us | 0.6734 us | 0.14 | 0.00 |✓ IndexOfAny_HandWrittenLoop | LegacyJitX86 | LegacyJit | X86 | /This is a short string. | 350.4 us | 1.5306 us | 1.3568 us | 0.21 | 0.00 |✓ IndexOfAny_Baseline | RyuJitX64 | RyuJit | X64 | /This is a short string. | 1,344.7 us | 35.3044 us | 49.4918 us | 1.00 | 0.00 | IndexOfAny_HandWrittenLoop_HardcodedChars | RyuJitX64 | RyuJit | X64 | /This is a short string. | 236.6 us | 1.6766 us | 1.4001 us | 0.18 | 0.01 |✓ IndexOfAny_HandWrittenLoop | RyuJitX64 | RyuJit | X64 | /This is a short string. | 384.6 us | 5.8540 us | 5.1894 us | 0.29 | 0.01 |✓ IndexOfAny_Baseline | LegacyJitX64 | LegacyJit | X64 | This is a/short string. | 2,074.6 us | 14.7860 us | 13.1074 us | 1.00 | 0.00 | IndexOfAny_HandWrittenLoop_HardcodedChars | LegacyJitX64 | LegacyJit | X64 | This is a/short string. | 920.1 us | 14.5393 us | 12.1410 us | 0.44 | 0.01 |✓ IndexOfAny_HandWrittenLoop | LegacyJitX64 | LegacyJit | X64 | This is a/short string. | 3,059.0 us | 26.8631 us | 20.9729 us | 1.47 | 0.01 | IndexOfAny_Baseline | LegacyJitX86 | LegacyJit | X86 | This is a/short string. | 3,821.6 us | 22.9191 us | 20.3171 us | 1.00 | 0.00 | IndexOfAny_HandWrittenLoop_HardcodedChars | LegacyJitX86 | LegacyJit | X86 | This is a/short string. | 1,256.0 us | 7.6582 us | 7.1635 us | 0.33 | 0.00 |✓ IndexOfAny_HandWrittenLoop | LegacyJitX86 | LegacyJit | X86 | This is a/short string. | 3,824.8 us | 36.8087 us | 34.4309 us | 1.00 | 0.01 | IndexOfAny_Baseline | RyuJitX64 | RyuJit | X64 | This is a/short string. | 2,096.2 us | 15.8659 us | 14.8410 us | 1.00 | 0.00 | IndexOfAny_HandWrittenLoop_HardcodedChars | RyuJitX64 | RyuJit | X64 | This is a/short string. | 1,045.3 us | 12.6123 us | 11.7975 us | 0.50 | 0.01 |✓ IndexOfAny_HandWrittenLoop | RyuJitX64 | RyuJit | X64 | This is a/short string. | 3,116.7 us | 62.2240 us | 103.9623 us | 1.49 | 0.05 | ``` C# [MethodImpl(MethodImplOptions.NoInlining)] public static int IndexOfAny(string value, char[] array) { return value.IndexOfAny(array); } [MethodImpl(MethodImplOptions.NoInlining)] public static int IndexOfAny_HandWrittenLoop_HardcodedChars(string value) { for (int i = 0; i < value.Length; i++) { char c = value[i]; if (c == '/' || c == '\\') { return i; } } return -1; } [MethodImpl(MethodImplOptions.NoInlining)] public static int IndexOfAny_HandWrittenLoop(string value, char[] array) { if (array.Length == 0) return 0; for (int i = 0; i < value.Length; i++) { char c = value[i]; foreach (var ch in array) { if (c == ch) return i; } } return -1; } ``` Benchmark is here (using BenchmarkDotNet): https://gist.github.com/davkean/dab5c068e3f907709f57a757a7e7fb3a. @benaadams Seems to think that the code [creates a probabilistic map](https://github.com/dotnet/coreclr/blob/master/src/classlibnative/bcltype/stringnative.cpp#L480-L532) is over kill for a two char array. **Updated:** Add a few more test cases, and updated handwritten loop to handle empty chars. +22773 area-System.Runtime "Cleanup test workaround for: System.Reflection.Tests.AssemblyNetCoreAppTests/AssemblyGetForwardedTypes failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Reflection.Tests.AssemblyNetCoreAppTests/AssemblyGetForwardedTypes` has failed. Assert.Equal() Failure\r Expected: Type[] [typeof(string), typeof(TypeInForwardedAssembly), typeof(TypeInForwardedAssembly+PublicInner), typeof(TypeInForwardedAssembly+PublicInner+PublicInnerInner)]\r Actual: Type[] [typeof(TypeInForwardedAssembly), typeof(TypeInForwardedAssembly+PublicInner), typeof(TypeInForwardedAssembly+PublicInner+PublicInnerInner)] Stack Trace: at System.Reflection.Tests.AssemblyNetCoreAppTests.AssemblyGetForwardedTypes() in E:\A\_work\435\s\corefx\src\System.Runtime\tests\System\Reflection\AssemblyTests.netcoreapp.cs:line 30 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV() at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x2c at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x124 Build : Master - 20170731.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170731.01/workItem/System.Runtime.Tests/analysis/xunit/System.Reflection.Tests.AssemblyNetCoreAppTests~2FAssemblyGetForwardedTypes +22775 area-Infrastructure Roslyn Error MSB3883: Unexpected exception: when build is run "Hi, Im having problems building corefx, using build-managed. When the ..\corefx\Tools\net46\roslyn\tools\Microsoft.CSharp.Core.targets(72,5) file is loaded, a series of ""System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified"" are thrown. Each of the files reported missing are present and the VS command-prompt is run with Administrator privileges. See below for csc command and output. Enviroment is: OS: Win 10 Pro 10.0.14393 Build 14393 VS: 15.2 (26430.16) Release Visual C# Compiler version 2.2.0.61624 Thanks Brian 24>CoreCompile: C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /warn:4 /define:DEBUG;TRACE;DEBUGRESOURCES;SIGNED /reference:""D:\Development\C#\Forked\corefx\bin/ref/netstandard/netstandard.dll"" /debug+ /debug:full /delaysign+ /keyfile:""D:\Development\C#\Forked\corefx\Tools/MSFT.snk"" /optimize- /out:""D:\Development\C#\Forked\corefx\bin/obj/ref/Microsoft.VisualBasic/10.0.0.0/netstandard/Microsoft.VisualBasic.dll"" /ruleset:""D:\Development\C#\Forked\corefx\CodeAnalysis.ruleset"" /target:library /warnaserror+ /utf8output /analyzer:""D:\Development\C#\Forked\corefx\Tools/net46/analyzers/Microsoft.DotNet.CodeAnalysis.dll"" Microsoft.VisualBasic.cs ""D:\Development\C#\Forked\corefx\bin/obj/ref/Microsoft.VisualBasic/10.0.0.0/netstandard/_AssemblyInfo.cs"" ""D:\Development\C#\Forked\corefx\Tools\/BlockReflectionAttribute.cs"" @""D:\Development\C#\Forked\corefx\Tools\checksum.rsp"" Using shared compilation with compiler from directory: D:\Development 24>D:\Development\C#\Forked\corefx\Tools\net46\roslyn\tools\Microsoft.CSharp.Core.targets(72,5): error MSB3883: Unexpected exception: [D:\Development\C#\Forked\corefx\src\Microsoft.VisualBasic\ref\Microsoft.VisualBasic.csproj] 23>CoreCompile: Using shared compilation with compiler from directory: D:\Development 24>D:\Development\C#\Forked\corefx\Tools\net46\roslyn\tools\Microsoft.CSharp.Core.targets(72,5): error : System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified [D:\Development\C#\Forked\corefx\src\Microsoft.VisualBasic\ref\Microsoft.VisualBasic.csproj] 24>D:\Development\C#\Forked\corefx\Tools\net46\roslyn\tools\Microsoft.CSharp.Core.targets(72,5): error : at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) [D:\Development\C#\Forked\corefx\src\Microsoft.VisualBasic\ref\Microsoft.VisualBasic.csproj] 24>D:\Development\C#\Forked\corefx\Tools\net46\roslyn\tools\Microsoft.CSharp.Core.targets(72,5): error : at System.Diagnostics.Process.Start() [D:\Development\C#\Forked\corefx\src\Microsoft.VisualBasic\ref\Microsoft.VisualBasic.csproj] 24>D:\Development\C#\Forked\corefx\Tools\net46\roslyn\tools\Microsoft.CSharp.Core.targets(72,5): error : at Microsoft.Build.Utilities.ToolTask.ExecuteTool(String pathToTool, String responseFileCommands, String commandLineCommands) [D:\Development\C#\Forked\corefx\src\Microsoft.VisualBasic\ref\Microsoft.VisualBasic.csproj] 24>D:\Development\C#\Forked\corefx\Tools\net46\roslyn\tools\Microsoft.CSharp.Core.targets(72,5): error : at Microsoft.CodeAnalysis.BuildTasks.ManagedCompiler.HandleResponse(BuildResponse response, String pathToTool, String responseFileCommands, String commandLineCommands) [D:\Development\C#\Forked\corefx\src\Microsoft.VisualBasic\ref\Microsoft.VisualBasic.csproj] 24>D:\Development\C#\Forked\corefx\Tools\net46\roslyn\tools\Microsoft.CSharp.Core.targets(72,5): error : at Microsoft.CodeAnalysis.BuildTasks.ManagedCompiler.ExecuteTool(String pathToTool, String responseFileCommands, String commandLineCommands) [D:\Development\C#\Forked\corefx\src\Microsoft.VisualBasic\ref\Microsoft.VisualBasic.csproj] 24>Done Building Project ""D:\Development\C#\Forked\corefx\src\Microsoft.VisualBasic\ref\Microsoft.VisualBasic.csproj"" (Build target(s)) -- FAILED. " +22776 area-Serialization Serialization test case DCS_BasicPerSerializerRoundTripAndCompare_SampleTypes_FailedInuapaot_IncludeDataSet failed when targeting uapaot This case is a part of test case DCS_BasicPerSerializerRoundTripAndCompare_SampleTypes , it was failed when **targeting `uapaot`** , so we move these scenarios into a new case. **Detail** : the class include **DataSet** will fail when serialization. **Error Message** : System.Runtime.Serialization.InvalidDataContractException : Type 'System.Data.DataSet' does not have a static method 'GetDataSetSchema' that takes a parameter of type 'System.Xml.Schema.XmlSchemaSet' as specified by the XmlSchemaProviderAttribute attribute. +22777 area-Serialization Serialization test case DCS_BasicPerSerializerRoundTripAndCompare_SampleTypes_FailedInuapaot_InheritedFromIList failed when targeting uapaot This case is a part of test case DCS_BasicPerSerializerRoundTripAndCompare_SampleTypes , it failed when **targeting `uapaot `**, so we move these scenarios into a new case. **Detail** : the class in these scenarios inherit from **IList** will fail when serialization. **Error Message** : System.Runtime.Serialization.InvalidDataContractException : Collection type 'SerializationTestTypes.SampleListTExplicitWithoutDC' does not have a valid Add method. **Note** : I checked the test classes they already implement interface explicitly and have a method named **`ICollection<..>.Add`**. +22778 area-Serialization Serialization test case DCS_BasicPerSerializerRoundTripAndCompare_SampleTypes_FailedInuapaot_InheritedFromIList_CanPassInReflectionOnly failed when targeting uapaot This case is a part of test case DCS_BasicPerSerializerRoundTripAndCompare_SampleTypes , it failed when **targeting `uapaot`** , so we move these scenarios into a new case. **Detail** : the class in these scenarios inherit from **IList** will fail when serialization, but it can pass in project ReflectionOnly. **Error Message** : System.Runtime.Serialization.InvalidDataContractException : Collection type 'SerializationTestTypes.SampleListExplicitWithoutDC' does not have a valid Add method. **Note** : I checked the test classes they already implement interface **IList** explicitly and have a method named **IList.Add**. +22779 area-Serialization Serialization test case DCS_BasicPerSerializerRoundTripAndCompare_Collections_FailedInuapaot_InCollections failed when targeting uapaot "This case is a part of test case DCS_BasicPerSerializerRoundTripAndCompare_Collections , it failed when **targeting `uapaot`** , so we move these scenarios into a new case. **Detail** : the class in these scenarios has **DataMember attribute decorate Collections type** ,has different result with baseline when serialization. **Baseline** : … … **Actual**: …… **Missing assembly information of the List**." +22780 area-Serialization Cleanup serialization code in unsupported types Mainly test code but in a few cases also production code. E.g. https://github.com/dotnet/corefx/blob/master/src/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentBag.cs#L42 cc @morganbr @danmosemsft @stephentoub +22781 area-Infrastructure System.Net.Http package 4.3.2 - redirect to 4.2.0.0, assembly loading failure "I know there's been a few issues with System.Net.Http, but after some searching I couldn't find anything that seems to relate to, or remedy, my issue. I'll be happy to move this somewhere else, provide more details, etc, as necessary. I have some .NET Framework 4.6.1 class libraries and ASP.NET MVC projects which reference this package: When they run, I get: ``` System.BadImageFormatException : Could not load file or assembly 'System.Net.Http, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058) ----> System.BadImageFormatException : Could not load file or assembly 'file:///C:\Program Files (x86)\Microsoft Visual Studio\Preview\Professional\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\ref\System.Net.Http.dll' or one of its dependencies. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058) ----> System.BadImageFormatException : Cannot load a reference assembly for execution. ``` My workaround is to manually overwrite the assembly redirects which seem to be automatically generated very frequently whenever I update a number of NuGet references, with this: ``` ``` I'd like to either be able to use this latest version of the package without manually doing this, to understand why 4.2.0.0 is not working by design, or do whatever reconfiguration is necessary to stop the workaround being overwritten. If it's a helpful clue, netfx.force.conflict also appears in my bin folder at certain time (nuget restore?). A clean does not clear it away, but manually deleting the bin folder lets the project run successfully. Most of all, I'd like to feel less helpless / have the tools or knowledge to work out why this is happening by a logical process of elimination / deduction. I've been using and trying to find a way to get us on board the .NET Core train for quite a while. This is our first production project and is utilising some new .NET Core / .NET Standard libraries we have for some parts, and .NET Framework for others. It's been a very difficult experience so far, specifically any time .NET Framework assemblies are referencing netstandard ones. Through bashing against this kind of error for several weeks, I am piecing together facts and workarounds for NuGet versioning, redirects, reference assemblies, type forwarding, build file flags and a myriad of other nuggets. However, my knowledge is still evidently full of gaps. Is there a single place - or even a recommended set of places - where I can learn everything I need to know to have a project set up in this way? The knowledge set required to diagnose build and runtime errors in this kind of scenario so far seems huge, but I/we need to build this expertise internally. (Visual Studio 2017 15.3 Preview 6)" +22785 area-Serialization Remove unused serialization members Fixes https://github.com/dotnet/corefx/issues/22780 Not sure what the intent of those types is. Their sole purpose is to serialize something. What should be do about them? - https://github.com/dotnet/corefx/blob/master/src/System.Security.Claims/src/System/Security/Claims/ClaimsIdentity.cs - https://github.com/dotnet/corefx/blob/master/src/System.Security.Claims/src/System/Security/Claims/GenericPrincipal.cs - https://github.com/dotnet/corefx/blob/master/src/System.Security.Principal.Windows/src/System/Security/Principal/WindowsPrincipal.cs +22786 area-Infrastructure Converge root scripts for Unix and Windows This is intended to be more a question than an issue. Currently we have to the following scripts with each two flavors for Unix and Windows: - build-managed - build-native - build-packages - build-tests - build - clean - init-tools - publish-packages - (run-test.sh) - run - sync Are there any plans to converge them? If yes, will we use the dotnet-cli for that? If not, what about using cross-platform powershell scripts? @weshaggard @ericstj +22787 area-Meta Enable RHEL6 and CentOS 6 RID detection in build This change adds RHEL6 and CentOS 6 RID detection to src/Native/build-native.sh. These distros don't have the /etc/os-release file and so we need to use another source - the /etc/redhat-release file. It is an exact copy of the same change merged in for CoreCLR. +22788 area-System.Linq Removes unused SortQueryOperatorEnumerator field +22789 area-System.Runtime Add support for System.Runtime.WindowsRuntime to .NETCore We have a need to develop tooling using .NETCore to do hardware validation scenarios. .NETCore currently has no ways to talk to hardware. Exposing System.Runtime.WindowsRuntime would enable us to perform many query and validation scenarios on hardware devices. +22790 area-System.Runtime A mechanism for specifying alignment on a field or struct should be supported. "### Rationale In certain high performance or specialized data structures/algorithms, it is desirable to enforce an alignment for structs, fields, or locals. Today, CoreFX provides several specialized data structures for which the runtime either has special alignment handling (`System.Numerics.Vector`) or for which they have some specialized padding (https://github.com/dotnet/corefx/pull/22724). As such, the framework/runtime should provide a mechanism for encforcing a specified alignment for structs and fields. Locals should also be included if that is feasible (I'm not sure if that is readily possible today given that attributes cannot be specified on locals). ### Additional Thoughts It might be worthwhile to additionally expose this on the existing `StructLayoutAttribute` as an `Alignment` property. An alignment of `0` should be treated as ""Automatic"" (the current behavior of letting the runtime decide alignment). A mechanism for aligning to the cache would be ideal (https://github.com/dotnet/corefx/pull/22724#issuecomment-319075196). This could perhaps be a special value that would otherwise be invalid (such as `Alignment=-1`). Other special alignments could also be allowed in a similar manner. If a field specifies an alignment less than that of the struct, it should be aligned to the alignment of the struct. For example, if you do `Alignment=8` on a `Vector4` (which has an `Alignment=16`), the field should be treated as `Alignment=16`. [Design Decision] If a struct specifies an alignment less than that of its first field it should either: A. Align the struct as specified and add the appropriate padding so that the first field is also aligned as specified -or- B. Align the struct as per the requirements of the first field [EDIT] Make reference to the PR a link by @karelz" +22791 area-System.Diagnostics BasicEventSourceTests.TestEventCounter.Test_Write_Metric_EventListener fails on UWP. Test failure on UWP: BasicEventSourceTests.TestEventCounter.Test_Write_Metric_EventListener This failure appears to be caused by #22422. https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170726.01/workItem/System.Diagnostics.Tracing.Tests/analysis/xunit/BasicEventSourceTests.TestEventCounter~2FTest_Write_Metric_EventListener +22794 area-System.Net Changing System.Net.Primitives AOT related conditions from uap to uapaot Discovered while working on uapaot stuff: https://github.com/dotnet/corefx/pull/22706#issuecomment-319158261 cc @morganbr @davidsh +22795 area-System.IO IsPathFullyQualified() Tests, public API Added tests for Path.IsPathFullyQualified() for Windows and Unix, made IsPathFullyQualified() public. +22796 area-System.Net System.Net.Sockets.SendPacketsElement should have Int64 offset # Latest Proposal ```c# public partial class SendPacketsElement { // Existing APIs public SendPacketsElement(string filepath, int offset, int count) { } public SendPacketsElement(string filepath, int offset, int count, bool endOfPacket) { } public int Offset { get; } // New APIs: public SendPacketsElement(string filepath, long offset, int count) { } public SendPacketsElement(string filepath, long offset, int count, bool endOfPacket) { } public long OffsetLong { get; } } ``` # Original Proposal The [_offset field](https://github.com/dotnet/corefx/blob/master/src/System.Net.Sockets/src/System/Net/Sockets/SendPacketsElement.cs#L12) in SendPacketsElement defines the offset to start sending from, in the byte buffer or the filename. In the former case an `int` is fine, but in the latter it would be great to allow `int64` to allow offsets beyond the 2Gb mark in large files. The winsock API accepts an int64 too: https://github.com/dotnet/corefx/blob/master/src/Common/src/Interop/Windows/Winsock/Interop.WinsockAsync.cs#L70 and https://msdn.microsoft.com/en-us/library/windows/desktop/ms740570(v=vs.85).aspx In case the offset means an offset in a byte buffer, there is validation in place already to check that the offset is not out of bounds. Perhaps it is enough to make the field into an `int64` and add another constructor overload taking a filename and `int64` offset. +22798 area-System.Net WebRequest.DefaultWebProxy: Set doesn't work without a previous Get Iteration1: https://github.com/dotnet/corefx/pull/22720. Added test case as per comments in iteration1. Unless we do an unnecessary Get() on WebRequest.DefaultWebProxy, any Set() done will not be honored. This is especially a problem on Linux, where DefaultWebProxy throws PlatformNotSupportedException(). This in turn breaks libraries like WindowsAzure.Storage which fail unless the Get() is called first and then WebRequest.DefaultWebProxy is set to null. This fix avoids the unnecessary Get() by setting the already initialized flag sent to the LazyInitializer. @davidsh @stephentoub +22800 area-System.Reflection Partially disable System.Runtime test on ILC This fails in shared assembly mode. +22801 area-System.Net Slow Performance using AspNetCore Kestrel Host\WebAPI\HttpClient.SendAsync "Sample code: ```c# [Route(""api/[controller]"")] public class ValuesController : Controller { private static readonly HttpClient client = InitHttpClient(); [HttpGet] public async Task Get() { var r = await HttpInternal(); return r; } private async Task HttpInternal() { string uuid = Guid.NewGuid().ToString(); var request = new HttpRequestMessage(HttpMethod.Get, $""http://www.bing.com/?uuid={uuid}""); try { var sw = new Stopwatch(); sw.Start(); // This appears to be the location of the delay; with greater load, the worse random delays var response = await client.SendAsync(request); sw.Stop(); // Logging code removed… return sw.ElapsedMilliseconds; } catch (Exception) { // swallow } return -1; } ``` Some sample data which might be helpful as well (using Visual Studio Load Test Project to generate load) 10x User Load for 6000 Request: AVG: 472 Milliseconds and Max: 10 Seconds As load increases these numbers get worse: 100x User Load for 6000 Request: AVG: 3.7 Seconds and MAX: 33 Seconds *I can provide sample project and load project as well. Question: Are we calling the HttpClient correctly? Is there anyway to avoid the spike in call time accessing: var response = await client.SendAsync(request);? What are we missing here? [EDIT] Code formatting markdown added by @karelz" +22802 area-Microsoft.CSharp Refactor Better Conversion Picking in Microsoft.CSharp Mostly straightforward reduction of duplicates or code with unused results, but also guards against a branch that would throw an NRE and not ruled out as definitely unreachable. +22803 area-System.Data Add tests to System.Data.DataSetExtensions and create pkgproj Recently ported System.Data.DataSetExtensions to Core (see #22669) Still need to add relevant tests to ensure full coverage, and later create a package. +22804 area-System.Net Fix HttpListener test hang on ILC "In test file HttpRequestStreamTests, most of test cases do: 1. Get the HttpListenerContext: `Task contextTask = _listener.GetContextAsync();`. 2. Using a HttpClient to Send a POST request to the specified Uri HttpListener listening on: `Task clientTask = client.PostAsync(_factory.ListeningUrl, ""hello"");`. 3. Get the `HttpListenerRequest request` from HttpListenerContext.Request, and do some testings and validations. 4. Use `context.Response.Close();` to finish the operation. The `public async Task GetRequest(bool chunked)` in `GetContextHelper.cs` causes problem because: For the `PostAsync` operation, the returned Task object will complete after the whole response (including content) is read. We use `context.Response.Close()` to send the response to the client by closing the response. Above procedures worked well on netcore. However, on ILC, we need to explicitly `await clientTask` to finish. (First few runs are working, but if run the test case for many times, i.e a test case has many inline data, it will hang.) Fix #22110" +22806 area-System.Net HttpClient Encoding problem "## my code ``` c# public async Task test_6() { var client = new HttpClient(); var multipartContent = new MultipartFormDataContent(""-------boundary""); var fileStream2 = File.Open(@""H:\开源的项目\新建文本文档.txt"", FileMode.Open); var streamContent2 = new StreamContent(fileStream2); multipartContent.Add(streamContent2, ""files"", ""新建文本文档.txt""); var output = new MemoryStream(); await multipartContent.CopyToAsync(output); output.Seek(0, SeekOrigin.Begin); string result = new StreamReader(output).ReadToEnd(); return result; } ``` ## result:output ---------boundary Content-Disposition: form-data; name=files; filename=""=?utf-8?B5paw5bu65paH5pys5paH5qGjLnR4dA==?=""; filename*=utf8''%E6%96%B0%E5%BB%BA%E6%96%87%E6%9C%AC%E6%96%87%E6%A1%A3.txt ������ ---------boundary-- I want to use httpclient to upload files. When the name of the file is Chinese, the garbled code appears. I want to be able to upload Chinese files correctly. For example: `filename=“新建文本文档.txt“` instead of: `filename=""=?utf-8?B?5paw5bu65paH5pys5paH5qGjLnR4dA==?=""` I want to encode the Content.header with UTF-8 and calculate the length instead of using DefaultHttpEncoding (Encoding.GetEncoding (28591)). The source code is: src/System.Net.Http/src/System/Net/Http/HttpRuleParser.cs System.Net.Http.HttpRuleParser ``` c# internal static readonly Encoding DefaultHttpEncoding = Encoding.GetEncoding(28591); ``` [EDIT] Fix readability by @karelz" +22807 area-System.Net [Desktop] Test failed: System.Net.Tests.HttpListenerAuthenticationTests / NoAuthenticationGetContextAsync_AuthenticationProvided_ReturnsForbiddenStatusCode "Opened on behalf of @Jiayili1 The test `System.Net.Tests.HttpListenerAuthenticationTests/NoAuthenticationGetContextAsync_AuthenticationProvided_ReturnsForbiddenStatusCode(headerType: \""NTLM\"")` has failed. System.ApplicationException : The parameter is incorrect. (Exception from HRESULT: 0x80070057 (E_INVALIDARG)) Stack Trace: at System.Threading.ThreadPool.BindIOCompletionCallbackNative(IntPtr fileHandle) at System.Threading.ThreadPool.BindHandle(IntPtr osHandle) at System.Net.HttpListener.EnsureBoundHandle() at System.Net.ListenerAsyncResult.QueueBeginGetContext() at System.Net.HttpListener.BeginGetContext(AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) at System.Net.HttpListener.GetContextAsync() at System.Net.Tests.HttpListenerAuthenticationTests.d__37.MoveNext() in E:\A\_work\124\s\corefx\src\System.Net.HttpListener\tests\HttpListenerAuthenticationTests.cs:line 427 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.HttpListenerAuthenticationTests.d__8.MoveNext() in E:\A\_work\124\s\corefx\src\System.Net.HttpListener\tests\HttpListenerAuthenticationTests.cs:line 63 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170801.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170801.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpListenerAuthenticationTests~2FNoAuthenticationGetContextAsync_AuthenticationProvided_ReturnsForbiddenStatusCode(headerType:%20%5C%22NTLM%5C%22)" +22808 area-System.Net [Desktop] Test failed: System.Net.Sockets.Tests.AcceptTask / Accept_WithTargetSocket_ReuseAfterDisconnect_Success on Desktop Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.AcceptTask/Accept_WithTargetSocket_ReuseAfterDisconnect_Success(reuseSocket: False)` has failed. ``` Assert.Throws() Failure\r Expected: typeof(System.Net.Sockets.SocketException)\r Actual: typeof(System.InvalidOperationException): acceptSocket: The socket must not be bound or connected. at System.Net.Sockets.Socket.DoBeginAccept(Socket acceptSocket, Int32 receiveSize, AcceptOverlappedAsyncResult asyncResult) at System.Net.Sockets.Socket.BeginAccept(Socket acceptSocket, Int32 receiveSize, AsyncCallback callback, Object state) at System.Net.Sockets.SocketTaskExtensions.<>c.b__1_0(Socket socketForAccept, Int32 receiveSize, AsyncCallback callback, Object state) in E:\A\_work\301\s\corefx\src\System.Net.Sockets\src\System\Net\Sockets\SocketTaskExtensions.netfx.cs:line 24 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2](Func`5 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory`1.FromAsync[TArg1,TArg2](Func`5 beginMethod, Func`2 endMethod, TArg1 arg1, TArg2 arg2, Object state) at System.Net.Sockets.SocketTaskExtensions.AcceptAsync(Socket socket, Socket acceptSocket) in E:\A\_work\301\s\corefx\src\System.Net.Sockets\src\System\Net\Sockets\SocketTaskExtensions.netfx.cs:line 23 at System.Net.Sockets.Tests.SocketHelperTask.AcceptAsync(Socket s, Socket acceptSocket) in E:\A\_work\301\s\corefx\src\System.Net.Sockets\tests\FunctionalTests\SocketTestHelper.cs:line 133 at System.Net.Sockets.Tests.SocketTestHelperBase`1.AcceptAsync(Socket s, Socket acceptSocket) in E:\A\_work\301\s\corefx\src\System.Net.Sockets\tests\FunctionalTests\SocketTestHelper.cs:line 249 at System.Net.Sockets.Tests.Accept`1.<>c__DisplayClass4_1.b__0() in E:\A\_work\301\s\corefx\src\System.Net.Sockets\tests\FunctionalTests\Accept.cs:line 219 ``` Build : Master - 20170801.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64.Core-x86 - Debug - Windows.10.Amd64-x86 - Debug - Windows.10.Amd64.Core-x64 - Debug - Windows.10.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170801.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.AcceptTask~2FAccept_WithTargetSocket_ReuseAfterDisconnect_Success(reuseSocket:%20False) +22809 area-System.Collections Does SortedSet.UnionWith need to optimize for another SortedSet? Hi, I'm in the middle of trying to clean up the `SortedSet` code. Over [here](https://github.com/jamesqo/corefx/blob/9f892eb60e68916d24670190ecc070eb22b6973e/src/System.Collections/src/System/Collections/Generic/SortedSet.cs#L927-L989), in both `UnionWith` and `IntersectWith`, there is a huge 60-line block of code that checks if the other enumerable is a `SortedSet` and if so does a mergesort on it, all inline. I'm wondering why this optimization was added in the first place: is it a common case to call `UnionWith` with a `SortedSet`? And were there perf problems with a naive implementation like ```cs foreach (T item in other) { Add(item); } ``` ? I checked the earliest version of `SortedSet.cs` on the [referencesource repo](https://github.com/Microsoft/referencesource/blob/9da503f9ef21e8d1f2905c78d4e3e5cbb3d6f85a/System/compmod/system/collections/generic/sortedset.cs#L1005), and the optimization was still there. If possible, can a maintainer with access to the TFS history please go back and see why it was added? /cc @ianhays @safern +22811 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test/UseCallback_ValidCertificate_ExpectedValuesDuringCallback failed with ""System.OperationCanceledException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test/UseCallback_ValidCertificate_ExpectedValuesDuringCallback(url: https://corefx-net.cloudapp.net/Echo.ashx, checkRevoca...` has failed. System.OperationCanceledException : The operation was canceled. Stack Trace: at System.Net.Http.HttpClient.HandleFinishSendAsyncError(Exception e, CancellationTokenSource cts) in /root/corefx-896831/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 508 at System.Net.Http.HttpClient.d__58.MoveNext() in /root/corefx-896831/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 463 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__10.MoveNext() in /root/corefx-896831/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.ServerCertificates.cs:line 180 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170801.01 (Core Tests) Failing configurations: - Ubuntu.1710.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170801.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test~2FUseCallback_ValidCertificate_ExpectedValuesDuringCallback(url:%20https:~2F~2Fcorefx-net.cloudapp.net~2FEcho.ashx,%20checkRevoca... +22812 area-System.Net "Test: System.Net.WebSockets.Client.Tests.SendReceiveTest/SendReceive_VaryingLengthBuffers_Success failed with ""System.OperationCanceledException""" Opened on behalf of @Jiayili1 The test `System.Net.WebSockets.Client.Tests.SendReceiveTest/SendReceive_VaryingLengthBuffers_Success(server: ws://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx)` has failed. System.OperationCanceledException : Aborted ---- System.IO.IOException : Unable to transfer data on the transport connection: Operation canceled. -------- System.Net.Sockets.SocketException : Operation canceled Stack Trace: at System.Net.WebSockets.ManagedWebSocket.d__61.MoveNext() in /root/corefx-896831/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 740 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.WebSockets.Client.Tests.SendReceiveTest.d__9.MoveNext() in /root/corefx-896831/src/System.Net.WebSockets.Client/tests/SendReceiveTest.cs:line 309 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.WebSockets.ManagedWebSocket.d__70.MoveNext() in /root/corefx-896831/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 1141 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.ManagedWebSocket.d__61.MoveNext() in /root/corefx-896831/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 647 ----- Inner Stack Trace ----- Build : Master - 20170801.01 (Core Tests) Failing configurations: - Ubuntu.1710.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170801.01/workItem/System.Net.WebSockets.Client.Tests/analysis/xunit/System.Net.WebSockets.Client.Tests.SendReceiveTest~2FSendReceive_VaryingLengthBuffers_Success(server:%20ws:~2F~2Fcorefx-net.cloudapp.net~2FWebSocket~2FEchoWebSocket.ashx) +22813 area-System.Runtime Please provide a weak reference version of ArrayPool This kind of WeakArrayPool should only hold the weak reference of every array, so the arrays in the pool could be collected by GC, and could be reused before GC. It would be a self-balanced array cache mechanism. +22814 area-System.Net Test failure: System.Net.Sockets.Tests.SendReceiveSync / Receive0ByteReturns_WhenPeerDisconnects ## History of failures Day | Build | OS -- | -- | -- 7/11 | 20170711.03 | Win10 7/15 | 20170715.02 | Win8.1 7/23 | 20170723.01 | Win7 9/16 | 20170916.02 | Win10 9/17 | 20170917.01 | Win10 11/4 | 20171104.02 | Win10 11/16 | 20171116.01 | Win8.1 # Original report Failed test: System.Net.Sockets.Tests.SendReceiveSync.Receive0ByteReturns_WhenPeerDisconnects Configuration: OuterLoop_netcoreapp_windows_nt_release Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_release/122/testReport/System.Net.Sockets.Tests/SendReceiveSync/Receive0ByteReturns_WhenPeerDisconnects/ MESSAGE: ~~~ System.Net.Sockets.SocketException : An existing connection was forcibly closed by the remote host ~~~ STACK TRACE: ~~~ at System.Net.Sockets.Tests.SendReceiveSync.<>c__DisplayClass3_0.b__0() in D:\j\workspace\outerloop_net---7a39cc82\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs:line 1025 at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Sockets.Tests.SendReceive.d__27.MoveNext() in D:\j\workspace\outerloop_net---7a39cc82\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs:line 726 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +22818 area-System.Security Deserialization of Claim blows up, if Properties was set "The following code snippet causes the de-serialization of [serialized] claim to blow up: ```c# private static void T_22() { var c2 = new Claim(ClaimTypes.Actor, ""Test"", ClaimValueTypes.String, ""Test"", ""Test""); c2.Properties[""Prop1""] = ""Value1""; c2.Properties[""Prop2""] = ""Value2""; var b0 = T_22_Encode((stream, writer) => { c2.WriteTo(writer); writer.Flush(); return stream.ToArray(); }); var y0 = T_22_Decode(b0, reader => new Claim(reader)); } private static byte[] T_22_Encode(Func func) { using (var m0 = new MemoryStream()) using (var w0 = new BinaryWriter(m0)) return func.Invoke(m0, w0); } private static T T_22_Decode(byte[] encoded, Func func) where T : class { using (var m0 = new MemoryStream(encoded)) using (var r0 = new BinaryReader(m0)) return func.Invoke(r0); } ``` With the following exception: ``` System.IO.EndOfStreamException occurred HResult=0x80070026 Message=Unable to read beyond the end of the stream. Source= StackTrace: at System.IO.__Error.EndOfFile() at System.IO.BinaryReader.ReadByte() at System.IO.BinaryReader.Read7BitEncodedInt() at System.IO.BinaryReader.ReadString() at System.Security.Claims.Claim..ctor(BinaryReader reader, ClaimsIdentity subject) at System.Security.Claims.ClaimsIdentity.CreateClaim(BinaryReader reader) at System.Security.Claims.ClaimsIdentity.Initialize(BinaryReader reader) at System.Security.Claims.ClaimsIdentity..ctor(BinaryReader reader) at System.Security.Claims.ClaimsPrincipal.CreateClaimsIdentity(BinaryReader reader) at System.Security.Claims.ClaimsPrincipal..ctor(BinaryReader reader) ``` There is no issue if the properties are not used. [EDIT] Fixed code markdown by @karelz" +22819 area-System.Drawing System.Drawing.Color considers 0 a known, system color. On desktop `Color.FromKnownColor(0).IsKnownColor` and `Color.FromKnownColor(0).IsSystemColor` both return false. In CoreFX they both return true. +22820 area-System.Drawing System.Drawing.KnownColor exposes internal names When `System.Drawing.KnownColor` was made internal-only it had convenience values of `First` and `Last` added. When it was made public again these were not removed. The ref assembly doesn't include them, but they can be found in calls to `Enum.GetNames()` and `Enum.GetValues()` includes `First` and doubles up on `MenuHighlight`. +22822 area-System.Drawing Adding System.Drawing.Common.tests.Imaging PropertyItem tests. Adding System.Drawing.Common.tests.Imaging PropertyItem tests. This is a small one... (#20711) +22825 area-System.Security API checker: remove special case of CheckTokenMembershipEx in UWP Fixes #22128 +22826 area-Infrastructure Re-enable corefx multifile test configurations once nutc error is fixed A recent change in PN side has broken the build for the uapaot configurations that use the multifile test configuration. In order to unblock the full official build, we turned off the multifile test configurations from corefx/master, but we should re-enable them once the fix has been checked in to PN. cc: @joshfree @trylek +22831 area-System.Drawing Retarget System.Drawing.Common to netcoreapp2.0 "We would like to be able to ship a preview version of System.Drawing.Common that works on .NET Core 2.0, so that customers can easily test out the library without needing to upgrade their entire runtime to version 2.1. For the most part, the library can be easily retargeted, with a few small caveats. I'm filing this issue to document the things that will need to change for us to target .NET Core 2.0. * Work around missing types in other .NET Core 2.0 assemblies. Almost everything that has been added is isolated to the System.Drawing.Common assembly, but there are a few types that were added or modified elsewhere: * `KnownColor` is now public in System.Drawing.Primitives. * `Color` exposes several previously-private members as public. * `InvalidEnumArgumentException` was exposed publically, and is thrown by System.Drawing.Common. * `SystemDrawingSection` was added to ConfigurationManager. * Testing plan. We can test the .NET Core 2.0 configuration against the current-built runtime, but we won't be able to do that easily if we also add a .NET Core 2.1 configuration. This is because the test project will just select the ""most applicable version"", which would be .NET Core 2.1, if both existed. We can potentially work around this limitation, but it would be messy. For the time being, let's just support the .NET Core 2.0 configuration when testing. I plan to tackle the code changes in this way: * `KnownColor`: Add an internal copy of KnownColor into System.Drawing.Common. This type is an implementation detail anyways -- it's identity doesn't leak out of the library. We should share the source code with System.Drawing.Primitives to avoid duplication. * `Color`: Access the private members through reflection. These are already implemented in .NET Core 2.0, they just aren't public. The only change I made for .NET Core 2.1 was changing the accessibility. * `InvalidEnumArgumentException`: Add an internal version of this exception to be thrown instead. The tests will need to be modified to allow for the base-type to be thrown, though, because this exception will not have the same identity as the one from System.ComponentModel.Primitives. * `SystemDrawingSection`: Stop reading from ConfigurationManager for these settings. In both cases, there is already reasonable behavior if no configuration value is read." +22833 area-System.Drawing Change System.Drawing.Common's target to netcoreapp2.0 "There are two parts to this PR: 1. Add a ""netcoreapp"" project to the ""external"" folder. This restores the .NET Core 2.0 targeting pack, so that assemblies can target and be built against it. 2. Change the TargetGroup for System.Drawing.Common to netcoreapp2.0. Fix the minor incompatibilities mentioned in this issue: #22831. @ericstj @weshaggard Could you take a look at the build configuration stuff that I have changed?" +22839 area-System.Collections Cleanup code in SortedSet This is a continuation of https://github.com/dotnet/corefx/pull/16061. I found that I had a bunch of changes made after that PR stashed, but forgot about them until now. +22841 area-System.Net Support username* and Proxy-Authorization for digest auth. cc @stephentoub @geoffkizer @mconnew +22843 area-System.Runtime Exploration of API Look and Feel for x86 SSE Platform Intrinsics "**NOTE:** This is currently more of an exploration for API look and feel than an actual proposal. Recently, the design document for `.NET Platform Dependent Intrinsics` was published (https://github.com/dotnet/designs/blob/master/accepted/platform-intrinsics.md). One of the things that still needs to be determined is the exact ""look and feel"" of the exposed APIs. Given the requirements put forth in the design doc, I explored what exposing the x86 SSE intrinsics might look like. I believe we need a minimum of 3 attributes: * `Intrinsic` identifies a method as exposing an intrinsic * It might be worthwhile letting the constructor take a set of strings that indicates alternative aliases for the function * `Literal` identifiers a parameter that is required to be a literal (there are a few instructions that require this) * Ideally this would cause `modreq literal` to be emitted and would have compiler supports * This could probably go in `System.Runtime.CompilerServices` rather than `S.R.CS.Intrinsics` * `Alignment` enforces an alignment for a struct. * I have a separate proposal for such an attribute here https://github.com/dotnet/corefx/issues/22790. * This can probably go in `System.Runtime.InteropServices` where it makes more sense For SSE, there are 4 different register sizes: 64, 128, 256, and 512. * These are separate rather than a generic 'Vector` type so that the user can explicitly dictate which register size they are using (and therefore also control clearing of upper bits, etc) * These expose an `IsSupported` property so the user can determine whether the CPU supports that register size (for example, this can indicate support for https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm256_cvtss&expand=1809). * These structs are currently generic and do not expose the underlying fields (which should not be accessed directly anyways) * It might be worthwhile seeing if we can enforce these to be ""stack only"". Ideally users would always guarantee they have a software fallback and create their types as such as well. That is, they would never declare `Simd128` as a field, and instead would declare `float x, y, z, w` and would explicitly call `Load` and `Store` to get a `Simd128` The SSE static class exposes all the instructions supported by the SSE CPUID bit flag: * Methods which do not have a software implementation are marked as 'extern' * The runtime should throw a PNSE if IsSupported is false * This forces any consumers (such as AOT compilers) to understand the method * Most of the method names can be differentiated by overload * For some method names, we have to append 'Scalar', since the packed and scalar forms both take `Simd128` and just treat the parameter differently. * Some of the names may not be ideal, I just chose something that made some sense ```C# namespace System.Runtime.CompilerServices.Intrinsics { [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = false)] internal sealed class IntrinsicAttribute : Attribute { // Indicates that a method is an intrinsic // Optional. Allow users to specify useful metadata such as the corresponding C/C++ intrinsic or hardware instruction } [AttributeUsage(AttributeTargets.Parameter, AllowMultiple = false, Inherited = false)] public sealed class LiteralAttribute : Attribute { // Indicates that a parameter is required to be literal. // Should be emitted as a `modreq literal` } [AttributeUsage(AttributeTargets.Struct, AllowMultiple = false, Inherited = false)] public sealed class AlignmentAttribute : Attribute { // Indicates the required alignment of a type. public AlignmentAttribute(int value) { } } [Alignment(8)] public struct Simd64 { // This should be recognized by the JIT as a constant // This indicates whether the hardware supports holding values of T public static bool IsSupported { get; } } [Alignment(16)] public struct Simd128 { // This should be recognized by the JIT as a constant // This indicates whether the hardware supports holding values of T public static bool IsSupported { get; } } [Alignment(32)] public struct Simd256 { // This should be recognized by the JIT as a constant // This indicates whether the hardware supports holding values of T public static bool IsSupported { get; } } [Alignment(64)] public struct Simd512 { // This should be recognized by the JIT as a constant // This indicates whether the hardware supports holding values of T public static bool IsSupported { get; } } namespace x86 { public static unsafe class SSE { // This should be recognized by the JIT as a constant // This indicates whether the hardware supports this instruction set. public static bool IsSupported { get; } #region Data Transfer Instructions [Intrinsic] // MOVAPS, _mm_load_ps public static extern Simd128 LoadAligned(float* address); [Intrinsic] // MOVAPS, _mm_store_ps public static extern void StoreAligned(float* address, Simd128 value); [Intrinsic] // MOVUPS, _mm_loadu_ps public static extern Simd128 LoadUnaligned(float* address); [Intrinsic] // MOVUPS, _mm_storeu_ps public static extern void StoreUnaligned(float* address, Simd128 value); [Intrinsic] // MOVHPS, _mm_loadh_pi public static extern Simd128 LoadHigh(Simd128 value, float* address); [Intrinsic] // MOVHPS, _mm_storeh_pi public static extern void StoreHigh(float* address, Simd128 value); [Intrinsic] // MOVHLPS, _mm_movehl_ps public static extern Simd128 MoveHighLow(Simd128 a, Simd128 b); [Intrinsic] // MOVLPS, _mm_loadl_pi public static extern Simd128 LoadLow(Simd128 value, float* address); [Intrinsic] // MOVLPS, _mm_storel_pi public static extern void StoreLow(float* address, Simd128 value); [Intrinsic] // MOVLHPS, _mm_movelh_ps public static extern Simd128 MoveLowHigh(Simd128 a, Simd128 b); [Intrinsic] // MOVMSKPS, _mm_movemask_ps public static extern int MoveMask(Simd128 value); [Intrinsic] // MOVSS, _mm_cvtss_f32 public static extern float ToSingle(Simd128 value); [Intrinsic] // MOVSS, _mm256_cvtss_f32 public static extern float ToSingle(Simd256 value); [Intrinsic] // MOVSS, _mm512_cvtss_f32 public static extern float ToSingle(Simd512 value); [Intrinsic] // MOVSS, _mm_load_ss public static extern Simd128 Load(float* address); [Intrinsic] // MOVSS, _mm_move_ss public static extern Simd128 Move(Simd128 a, Simd128 b); [Intrinsic] // MOVSS, _mm_store_ss public static extern void Store(float* address, Simd128 value); #endregion #region Arithmetic Instructions [Intrinsic] // ADDPS, _mm_add_ps public static extern Simd128 Add(Simd128 a, Simd128 b); [Intrinsic] // ADDSS, _mm_add_ss public static extern Simd128 AddScalar(Simd128 a, Simd128 b); [Intrinsic] // SUBPS, _mm_sub_ps public static extern Simd128 Subtract(Simd128 a, Simd128 b); [Intrinsic] // SUBSS, _mm_sub_ss public static extern Simd128 SubtractScalar(Simd128 a, Simd128 b); [Intrinsic] // MULPS, _mm_mul_ps public static extern Simd128 Multiply(Simd128 a, Simd128 b); [Intrinsic] // MULSS, _mm_mul_ss public static extern Simd128 MultiplyScalar(Simd128 a, Simd128 b); [Intrinsic] // DIVPS, _mm_div_ps public static extern Simd128 Divide(Simd128 a, Simd128 b); [Intrinsic] // DIVSS, _mm_div_ss public static extern Simd128 DivideScalar(Simd128 a, Simd128 b); [Intrinsic] // RCPPS, _mm_rcp_ps public static extern Simd128 Reciprocal(Simd128 value); [Intrinsic] // RCPSS, _mm_rcp_ss public static extern Simd128 ReciprocalScalar(Simd128 value); [Intrinsic] // SQRTPS, _mm_sqrt_ps public static extern Simd128 Sqrt(Simd128 value); [Intrinsic] // SQRTSS, _mm_sqrt_ss public static extern Simd128 SqrtScalar(Simd128 value); [Intrinsic] // RSQRTPS, _mm_rsqrt_ps public static extern Simd128 ReciprocalSqrt(Simd128 value); [Intrinsic] // RSQRTSS, _mm_rsqrt_ss public static extern Simd128 ReciprocalSqrtScalar(Simd128 value); [Intrinsic] // MAXPS, _mm_max_ps public static extern Simd128 Max(Simd128 a, Simd128 b); [Intrinsic] // MAXSS, _mm_max_ss public static extern Simd128 MaxScalar(Simd128 a, Simd128 b); [Intrinsic] // MINPS, _mm_min_ps public static extern Simd128 Min(Simd128 a, Simd128 b); [Intrinsic] // MINSS, _mm_min_ss public static extern Simd128 MinScalar(Simd128 a, Simd128 b); #endregion #region Comparison Instructions [Intrinsic] // CMPPS, _mm_cmpeq_ps public static extern Simd128 CompareEqual(Simd128 a, Simd128 b); [Intrinsic] // CMPPS, _mm_cmpge_ps public static extern Simd128 CompareGreaterOrEqual(Simd128 a, Simd128 b); [Intrinsic] // CMPPS, _mm_cmpgt_ps public static extern Simd128 CompareGreater(Simd128 a, Simd128 b); [Intrinsic] // CMPPS, _mm_cmple_ps public static extern Simd128 CompareLessOrEqual(Simd128 a, Simd128 b); [Intrinsic] // CMPPS, _mm_cmplt_ps public static extern Simd128 CompareLess(Simd128 a, Simd128 b); [Intrinsic] // CMPPS, _mm_cmpneq_ps public static extern Simd128 CompareNotEqual(Simd128 a, Simd128 b); [Intrinsic] // CMPPS, _mm_cmpnge_ps public static extern Simd128 CompareNotGreaterOrEqual(Simd128 a, Simd128 b); [Intrinsic] // CMPPS, _mm_cmpngt_ps public static extern Simd128 CompareNotGreater(Simd128 a, Simd128 b); [Intrinsic] // CMPPS, _mm_cmpnle_ps public static extern Simd128 CompareNotLessOrEqual(Simd128 a, Simd128 b); [Intrinsic] // CMPPS, _mm_cmpnlt_ps public static extern Simd128 CompareNotLess(Simd128 a, Simd128 b); [Intrinsic] // CMPPS, _mm_cmpord_ps public static extern Simd128 CompareOrdered(Simd128 a, Simd128 b); [Intrinsic] // CMPPS, _mm_cmpunord_ps public static extern Simd128 CompareUnordered(Simd128 a, Simd128 b); [Intrinsic] // CMPSS, _mm_cmpeq_ss public static extern Simd128 CompareEqualScalar(Simd128 a, Simd128 b); [Intrinsic] // CMPSS, _mm_cmpge_ss public static extern Simd128 CompareGreaterOrEqualScalar(Simd128 a, Simd128 b); [Intrinsic] // CMPSS, _mm_cmpgt_ss public static extern Simd128 CompareGreaterScalar(Simd128 a, Simd128 b); [Intrinsic] // CMPSS, _mm_cmple_ss public static extern Simd128 CompareLessOrEqualScalar(Simd128 a, Simd128 b); [Intrinsic] // CMPSS, _mm_cmplt_ss public static extern Simd128 CompareLessScalar(Simd128 a, Simd128 b); [Intrinsic] // CMPSS, _mm_cmpneq_ss public static extern Simd128 CompareNotEqualScalar(Simd128 a, Simd128 b); [Intrinsic] // CMPSS, _mm_cmpnge_ss public static extern Simd128 CompareNotGreaterOrEqualScalar(Simd128 a, Simd128 b); [Intrinsic] // CMPSS, _mm_cmpngt_ss public static extern Simd128 CompareNotGreaterScalar(Simd128 a, Simd128 b); [Intrinsic] // CMPSS, _mm_cmpnle_ss public static extern Simd128 CompareNotLessOrEqualScalar(Simd128 a, Simd128 b); [Intrinsic] // CMPSS, _mm_cmpnlt_ss public static extern Simd128 CompareNotLessScalar(Simd128 a, Simd128 b); [Intrinsic] // CMPSS, _mm_cmpord_ss public static extern Simd128 CompareOrderedScalar(Simd128 a, Simd128 b); [Intrinsic] // CMPSS, _mm_cmpunord_ss public static extern Simd128 CompareUnorderedScalar(Simd128 a, Simd128 b); [Intrinsic] // COMISS, _mm_comieq_ss public static extern bool OrderedCompareEqualScalar(Simd128 a, Simd128 b); [Intrinsic] // COMISS, _mm_comige_ss public static extern bool OrderedCompareGreaterOrEqualScalar(Simd128 a, Simd128 b); [Intrinsic] // COMISS, _mm_comigt_ss public static extern bool OrderedCompareGreaterScalar(Simd128 a, Simd128 b); [Intrinsic] // COMISS, _mm_comile_ss public static extern bool OrderedCompareLessOrEqualScalar(Simd128 a, Simd128 b); [Intrinsic] // COMISS, _mm_comilt_ss public static extern bool OrderedCompareLessScalar(Simd128 a, Simd128 b); [Intrinsic] // COMISS, _mm_comineq_ss public static extern bool OrderedCompareNotEqualScalar(Simd128 a, Simd128 b); [Intrinsic] // UCOMISS, _mm_ucomieq_ss public static extern bool UnorderedCompareEqualScalar(Simd128 a, Simd128 b); [Intrinsic] // UCOMISS, _mm_ucomige_ss public static extern bool UnorderedCompareGreaterOrEqualScalar(Simd128 a, Simd128 b); [Intrinsic] // UCOMISS, _mm_ucomigt_ss public static extern bool UnorderedCompareGreaterScalar(Simd128 a, Simd128 b); [Intrinsic] // UCOMISS, _mm_ucomile_ss public static extern bool UnorderedCompareLessOrEqualScalar(Simd128 a, Simd128 b); [Intrinsic] // UCOMISS, _mm_ucomilt_ss public static extern bool UnorderedCompareLessScalar(Simd128 a, Simd128 b); [Intrinsic] // UCOMISS, _mm_ucomineq_ss public static extern bool UnorderedCompareNotEqualScalar(Simd128 a, Simd128 b); #endregion #region Logical Instructions [Intrinsic] // ANDPS, _mm_and_ps public static extern Simd128 And(Simd128 a, Simd128 b); [Intrinsic] // ANDNPS, _mm_andnot_ps public static extern Simd128 AndNot(Simd128 a, Simd128 b); [Intrinsic] // ORPS, _mm_or_ps public static extern Simd128 Or(Simd128 a, Simd128 b); [Intrinsic] // XORPS, _mm_xor_ps public static extern Simd128 XOr(Simd128 a, Simd128 b); #endregion #region Shuffle and Unpack Instructions [Intrinsic] // SHUFPS, _mm_shuffle_ps public static extern Simd128 Shuffle(Simd128 a, Simd128 b, [Literal] byte imm8); [Intrinsic] // UNPCKHPS, _mm_unpackhi_ps public static extern Simd128 UnpackHigh(Simd128 a, Simd128 b); [Intrinsic] // UNPCKLPS, _mm_unpacklo_ps public static extern Simd128 UnpackLow(Simd128 a, Simd128 b); #endregion #region Conversion Instructions [Intrinsic] // CVTPI2PS, _mm_cvt_pi2ps, _mm_cvtpi32_ps public static extern Simd128 ToPackedSingle(Simd128 a, Simd64 b); [Intrinsic] // CVTSI2SS, _mm_cvt_si2ss, _mm_cvtsi32_ss public static extern Simd128 ToPackedSingle(Simd128 a, int b); [Intrinsic] // CVTSI2SS, _mm_cvtsi64_ss public static extern Simd128 ToPackedSingle(Simd128 a, long b); [Intrinsic] // CVTPS2PI, _mm_cvt_ps2pi, _mm_cvtps_pi32 public static extern Simd64 ToPackedInt32(Simd128 value); [Intrinsic] // CVTTPS2PI, _mm_cvtt_ps2pi, _mm_cvttps_pi32 public static extern Simd64 ToPackedInt32Truncated(Simd128 value); [Intrinsic] // CVTSS2SI, _mm_cvt_ss2si, _mm_cvtss_si32 public static extern int ToInt32(Simd128 value); [Intrinsic] // CVTSS2SI, _mm_cvtss_si64 public static extern long ToInt64(Simd128 value); [Intrinsic] // CVTTSS2SI, _mm_cvvt_ss2si, _mm_cvttss_si32 public static extern int ToInt32Truncated(Simd128 value); [Intrinsic] // CVTTSS2SI, _mm_cvttss_si64 public static extern long ToInt64Truncated(Simd128 value); #endregion #region MXCSR State Management Instructions [Intrinsic] // LDMXCSR, _mm_setcsr public static extern void SetControlStatus(uint a); [Intrinsic] // STMXCSR, _mm_getcsr public static extern uint GetControlStatus(); #endregion #region 64-bit Integer Instructions [Intrinsic] // PAVGB, _mm_avg_pu8, _m_pavgb public static extern Simd64 Average(Simd64 a, Simd64 b); [Intrinsic] // PAVGW, _mm_avg_pu16, _m_pavgw public static extern Simd64 Average(Simd64 a, Simd64 b); [Intrinsic] // PEXTRW, _mm_extract_pi16, _m_pextrw public static extern short Extract(Simd64 a, [Literal] byte imm8); [Intrinsic] // PINSRW, _mm_insert_pi16, _m_pinsrw public static extern Simd64 Insert(Simd64 a, short i, [Literal] byte imm8); [Intrinsic] // PMAXUB, _mm_max_pu8, _m_pmaxub public static extern Simd64 Max(Simd64 a, Simd64 b); [Intrinsic] // PMAXSW, _mm_max_pu16, _m_pmaxuw public static extern Simd64 Max(Simd64 a, Simd64 b); [Intrinsic] // PMINUB, _mm_min_pu8, _m_pminub public static extern Simd64 Min(Simd64 a, Simd64 b); [Intrinsic] // PMINSW, _mm_min_pu16, _m_pminuw public static extern Simd64 Min(Simd64 a, Simd64 b); [Intrinsic] // PMOVMSKB, _mm_movemask_pi8, _m_pmovmskb public static extern int MoveMask(Simd64 value); [Intrinsic] // PMULHUWm _mm_mulhi_pu16, _m_pmulhuw public static extern Simd64 MultiplyHigh(Simd64 a, Simd64 b); [Intrinsic] // PSADBW, _mm_sad_pu8, _m_psadbw public static extern Simd64 AbsoluteSumOfDifferences(Simd64 a, Simd64 b); [Intrinsic] // PSHUFW, _mm_shuffle_pi16, _m_pshufw public static extern Simd64 Shuffle(Simd64 value, [Literal] byte imm8); #endregion #region Cacheability Control, Prefetch, and Instruction Ordering Instructions [Intrinsic] // MASKMOVQ, _mm_maskmove_si64, _m_maskmovq public static extern void MaskMove(Simd64 a, Simd64 mask, byte* address); [Intrinsic] // MOVNTQ, _mm_stream_pi public static extern void Stream(long* address, Simd64 value); [Intrinsic] // MOVNTPS, _mm_stream_ps public static extern void Stream(float* address, Simd128 value); [Intrinsic] // PREFETCHNTA, PREFETCH0, PREFETCH1, PREFETCH2, _mm_prefetch public static extern void Prefetch(byte* p, int i); [Intrinsic] // SFENCE, _mm_sfence public static extern void StoreFence(); #endregion } } } ```" +22844 area-System.Net "Test: System.Net.Sockets.Tests.AcceptSyncForceNonBlocking/Accept_ConcurrentAcceptsAfterConnects_Success failed with ""System.Net.Sockets.SocketException""" Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.AcceptSyncForceNonBlocking/Accept_ConcurrentAcceptsAfterConnects_Success(numberAccepts: 2)` has failed. System.Net.Sockets.SocketException : A non-blocking socket operation could not be completed immediately Stack Trace: at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName) at System.Net.Sockets.Socket.Accept() at System.Net.Sockets.Tests.SocketHelperSyncForceNonBlocking.<>c__DisplayClass0_0.b__0() at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__276_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Sockets.Tests.Accept`1.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170802.01 (UWP F5 Tests) Failing configurations: - Windows.10.Arm64-arm - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170802.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.AcceptSyncForceNonBlocking~2FAccept_ConcurrentAcceptsAfterConnects_Success(numberAccepts:%202) +22845 area-System.Net "System.Net.WebSockets.Client.Tests.SendReceiveTest.SendReceive_VaryingLengthBuffers_Success failed with ""System.ObjectDisposedException""" Failed test: System.Net.WebSockets.Client.Tests.SendReceiveTest.SendReceive_VaryingLengthBuffers_Success Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_opensuse42.1_release/126/testReport/System.Net.WebSockets.Client.Tests/SendReceiveTest/SendReceive_VaryingLengthBuffers_Success_server__wss___corefx_net_cloudapp_net_WebSocket_EchoWebSocket_ashx_/ MESSAGE: ~~~ System.OperationCanceledException : Aborted ---- System.ObjectDisposedException : Cannot access a disposed object. Object name: 'SslStream'. ~~~ STACK TRACE: ~~~ at System.Net.WebSockets.ManagedWebSocket.d__61.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_release/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 740 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.Client.Tests.SendReceiveTest.d__9.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_release/src/System.Net.WebSockets.Client/tests/SendReceiveTest.cs:line 309 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.CheckThrow(Boolean authSuccessCheck, Boolean shutdownCheck) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_release/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 446 at System.Net.Security.SslState.get_SecureStream() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_release/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 384 at System.Net.Security.SslStream.EndRead(IAsyncResult asyncResult) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_release/src/System.Net.Security/src/System/Net/Security/SslStream.cs:line 556 at System.Threading.Tasks.TaskFactory`1.FromAsyncTrimPromise`1.Complete(TInstance thisRef, Func`3 endMethod, IAsyncResult asyncResult, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.ManagedWebSocket.d__70.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_release/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 1141 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.ManagedWebSocket.d__61.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_opensuse42.1_release/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 708 ~~~ +22847 area-System.Net Test: System.Net.WebSockets.Client.Tests.ConnectTest.EchoBinaryMessage_Success failed in CI Failed test: System.Net.WebSockets.Client.Tests.ConnectTest.EchoBinaryMessage_Success Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_portablelinux_release/126/testReport/System.Net.WebSockets.Client.Tests/ConnectTest/EchoBinaryMessage_Success_server__ws___corefx_net_cloudapp_net_WebSocket_EchoWebSocket_ashx_/ Configuration: OuterLoop_netcoreapp_portablelinux_release MESSAGE: ~~~ System.Net.WebSockets.WebSocketException : The remote party closed the WebSocket connection without completing the close handshake. ---- System.IO.IOException : Unable to transfer data on the transport connection: Connection reset by peer. -------- System.Net.Sockets.SocketException : Connection reset by peer ~~~ STACK TRACE: ~~~ at System.Net.WebSockets.ManagedWebSocket.d__61.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_portablelinux_release/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 740 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.ManagedWebSocket.d__67.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_portablelinux_release/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 1049 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.Client.Tests.WebSocketHelper.d__3.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_portablelinux_release/src/System.Net.WebSockets.Client/tests/WebSocketHelper.cs:line 56 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.Client.Tests.ConnectTest.d__2.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_portablelinux_release/src/System.Net.WebSockets.Client/tests/ConnectTest.cs:line 40 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.ManagedWebSocket.d__70.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_portablelinux_release/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 1141 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.ManagedWebSocket.d__61.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_portablelinux_release/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 647 ----- Inner Stack Trace ----- ~~~ +22848 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_SupportedSSLVersion_Succeeds failed with ""System.Net.Http.WinHttpException : The operation timed out"" in CI" Failed test: System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.GetAsync_SupportedSSLVersion_Succeeds Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_debug/124/testReport/System.Net.Http.Functional.Tests/HttpClientHandler_SslProtocols_Test/GetAsync_SupportedSSLVersion_Succeeds_sslProtocols__Tls11__url____https___www_ssllabs_com_10302____/ MESSAGE: ~~~ System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The operation timed out ~~~ STACK TRACE: ~~~ at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 464 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_SslProtocols_Test.d__6.MoveNext() in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.SslProtocols.cs:line 149 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Environment.get_StackTrace() in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Runtime.Extensions\src\System\Environment.cs:line 174 at System.Runtime.ExceptionServices.ExceptionStackTrace.AddCurrentStack(Exception exception) in D:\j\workspace\outerloop_net---dbe8fad8\src\Common\src\System\Runtime\ExceptionServices\ExceptionStackTrace.cs:line 23 at System.Net.Http.WinHttpException.CreateExceptionUsingError(Int32 error) in D:\j\workspace\outerloop_net---dbe8fad8\src\Common\src\System\Net\Http\WinHttpException.cs:line 51 at System.Net.Http.WinHttpRequestCallback.OnRequestError(WinHttpRequestState state, WINHTTP_ASYNC_RESULT asyncResult) in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs:line 312 at System.Net.Http.WinHttpRequestCallback.RequestCallback(IntPtr handle, WinHttpRequestState state, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs:line 104 at System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs:line 47 --- End of stack trace from AddCurrentStack --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() in D:\j\workspace\outerloop_net---dbe8fad8\src\Common\src\System\Threading\Tasks\RendezvousAwaitable.cs:line 62 at System.Net.Http.WinHttpHandler.d__105.MoveNext() in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 856 ~~~ +22849 area-System.Net "System.Net.Tests.HttpWebRequestTest.GetResponseAsync_PostRequestStream_ContainsData failed with ""System.Net.Http.WinHttpException : The operation timed out"" in CI" Failed test: System.Net.Tests.HttpWebRequestTest.GetResponseAsync_PostRequestStream_ContainsData Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_debug/124/testReport/System.Net.Tests/HttpWebRequestTest/GetResponseAsync_PostRequestStream_ContainsData_remoteServer__http___corefx_net_cloudapp_net_Echo_ashx_/ MESSAGE: ~~~ System.Net.WebException : An error occurred while sending the request. The operation timed out ---- System.Net.Http.HttpRequestException : An error occurred while sending the request. -------- System.Net.Http.WinHttpException : The operation timed out ~~~ STACK TRACE: ~~~ at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Requests\src\System\Net\HttpWebRequest.cs:line 1261 at System.Net.WebRequest.<>c.b__68_2(IAsyncResult iar) in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Requests\src\System\Net\WebRequest.cs:line 550 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.HttpWebRequestTest.d__95.MoveNext() in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Requests\tests\HttpWebRequestTest.cs:line 995 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__59.MoveNext() in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 489 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.HttpWebRequest.d__194.MoveNext() in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Requests\src\System\Net\HttpWebRequest.cs:line 1207 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Requests\src\System\Net\HttpWebRequest.cs:line 1257 ----- Inner Stack Trace ----- at System.Environment.get_StackTrace() in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Runtime.Extensions\src\System\Environment.cs:line 174 at System.Runtime.ExceptionServices.ExceptionStackTrace.AddCurrentStack(Exception exception) in D:\j\workspace\outerloop_net---dbe8fad8\src\Common\src\System\Runtime\ExceptionServices\ExceptionStackTrace.cs:line 23 at System.Net.Http.WinHttpException.CreateExceptionUsingError(Int32 error) in D:\j\workspace\outerloop_net---dbe8fad8\src\Common\src\System\Net\Http\WinHttpException.cs:line 51 at System.Net.Http.WinHttpRequestCallback.OnRequestError(WinHttpRequestState state, WINHTTP_ASYNC_RESULT asyncResult) in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs:line 312 at System.Net.Http.WinHttpRequestCallback.RequestCallback(IntPtr handle, WinHttpRequestState state, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs:line 104 at System.Net.Http.WinHttpRequestCallback.WinHttpCallback(IntPtr handle, IntPtr context, UInt32 internetStatus, IntPtr statusInformation, UInt32 statusInformationLength) in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpRequestCallback.cs:line 47 --- End of stack trace from AddCurrentStack --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() in D:\j\workspace\outerloop_net---dbe8fad8\src\Common\src\System\Threading\Tasks\RendezvousAwaitable.cs:line 62 at System.Net.Http.WinHttpHandler.d__105.MoveNext() in D:\j\workspace\outerloop_net---dbe8fad8\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 856 ~~~ +22850 area-System.Net "Test: System.Net.Tests.InvalidClientRequestTests/GetContext_InvalidRequest_DoesNotGetContext failed with ""System.Net.Internals.SocketExceptionFactory+ExtendedSocketException""" Opened on behalf of @Jiayili1 The test `System.Net.Tests.InvalidClientRequestTests/GetContext_InvalidRequest_DoesNotGetContext` has failed. System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : Connection refused 127.0.0.1:1561 Stack Trace: at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 4529 at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 825 at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 930 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 940 at System.Net.Sockets.Socket.Connect(String host, Int32 port) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 889 at System.Net.Tests.HttpListenerFactory.GetConnectedSocket() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.HttpListener/tests/HttpListenerFactory.cs:line 156 at System.Net.Tests.InvalidClientRequestTests.d__6.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.HttpListener/tests/InvalidClientRequestTests.cs:line 100 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170802.01 (Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170802.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.InvalidClientRequestTests~2FGetContext_InvalidRequest_DoesNotGetContext +22851 area-System.Net "Test: System.Net.WebSockets.Client.Tests.ConnectTest/EchoTextMessage_Success failed with ""System.OperationCanceledException""" Opened on behalf of @Jiayili1 The test `System.Net.WebSockets.Client.Tests.ConnectTest/EchoTextMessage_Success(server: ws://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx)` has failed. System.OperationCanceledException : Aborted ---- System.IO.IOException : Unable to transfer data on the transport connection: Operation canceled. -------- System.Net.Sockets.SocketException : Operation canceled Stack Trace: at System.Net.WebSockets.ManagedWebSocket.d__61.MoveNext() in /root/corefx-899391/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 740 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.ManagedWebSocket.d__67.MoveNext() in /root/corefx-899391/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 1049 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.Client.Tests.WebSocketHelper.d__3.MoveNext() in /root/corefx-899391/src/System.Net.WebSockets.Client/tests/WebSocketHelper.cs:line 56 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.Client.Tests.ConnectTest.d__3.MoveNext() in /root/corefx-899391/src/System.Net.WebSockets.Client/tests/ConnectTest.cs:line 47 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.ManagedWebSocket.d__70.MoveNext() in /root/corefx-899391/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 1141 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.ManagedWebSocket.d__61.MoveNext() in /root/corefx-899391/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 647 ----- Inner Stack Trace ----- Build : Master - 20170802.01 (Core Tests) Failing configurations: - Ubuntu.1710.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170802.01/workItem/System.Net.WebSockets.Client.Tests/analysis/xunit/System.Net.WebSockets.Client.Tests.ConnectTest~2FEchoTextMessage_Success(server:%20ws:~2F~2Fcorefx-net.cloudapp.net~2FWebSocket~2FEchoWebSocket.ashx) +22852 area-System.Runtime Add StringBuilder Span-based APIs Contributes to https://github.com/dotnet/corefx/issues/22430 Depends on https://github.com/dotnet/coreclr/pull/13163 - Add span-based Append/Insert/CopyTo methods to StringBuilder - Add unit tests for the new methods +22853 area-Serialization DataContractSerializer doesn't invoke the Dispose()-Method of IEnumerable I use the DataContractSerializer (System.Runtime.Serialization.dll v4.6.2) for serializing a own thread-safe Collection. My collection implements IEnumerable and therefore it returns my own thread-safe Enumerator. The enumerator uses the ReaderWriterLockSlim-Class and enters the READ-lock while retrieving it over GetEnumerator() and exits the lock when the Dispose()-Method is invoked. This works normally fine - but not with the DataContractSerializer. When the DataContractSerializer serializes my collection it retrieves the enumerator but after serializing it doesn't invoke the Dispose()-Method. As a result my other threads can't change the Collection any more. I know, that I'm writing this issue at a the wrong project (.NET-Core) but the C#-Code here is very similar to the big framework and I hope somebody could help me. (https://github.com/dotnet/corefx/blob/master/src/System.Private.DataContractSerialization/src/System/Runtime/Serialization/DataContractSerializer.cs) This issue was already posted at social.msdn.microsoft.com but the unqualified answer of the forum answerer was not very helpful. (https://social.msdn.microsoft.com/Forums/azure/en-US/b0097ab1-b0e6-4d0b-9a4d-5a09de2c3024/datacontractserializer-not-calling-dispose-on-ienumerator?forum=csharpgeneral) +22855 area-System.Data Null value in string array in DataRow causes DataRowComparer to throw NRE, but only if it is the first parameter "The following test demonstrates this bug. It is present in both netfx and netcoreapp. We could fix this in netcoreapp by allowing the comparison to succeed. I'd expect row1 and row2 to be equal, and row1 and row3 to be unequal, but this crashes. ```cs [Fact] public void Equals_NullStringValueInStringArrayInRightColumn_ThrowsNullReferenceException() { var table = new DataTable(""Table""); DataColumn column = table.Columns.Add(""Column""); column.DataType = typeof(Array); DataRow row1 = table.Rows.Add(new object[] { new string[] { null } }); DataRow row2 = table.Rows.Add(new object[] { new string[] { null } }); DataRow row3 = table.Rows.Add(new object[] { new string[] { ""abc"" } }); Assert.Throws(() => DataRowComparer.Default.Equals(row1, row2)); Assert.Throws(() => DataRowComparer.Default.Equals(row2, row1)); Assert.Throws(() => DataRowComparer.Default.Equals(row1, row3)); Assert.False(DataRowComparer.Default.Equals(row3, row1)); } ```" +22857 area-System.Threading Proposal: Add Task.WhenAny(Task,Task) overload to avoid Task[] allocation public static Task WhenAny(Task task1, Task task2); or public static Task WhenEither(Task task1, Task task2); The scenario is of multiple independent worker tasks observing one control task. Currently, each worker needs to allocate an Array which appears wasteful. +22858 area-System.Security Fixing binary serialization EndOfStream exception Instantiating a Claim object with a BinaryReader as argument failed because it tried to read over the length of the Stream. Fixing https://github.com/dotnet/corefx/issues/22818 and adding test The bug also exists in .NET Framework 4.7: https://referencesource.microsoft.com/#mscorlib/system/security/claims/Claim.cs,477 How to transport the fix into the next version (or a servicing release) of .NET Framework? @Petermarcu Should this be integrated into the first servicing release of .NET Core 2.0 or into the final .NET Core 2.0 bits? cc @karelz @danmosemsft +22862 area-Serialization Remove unused NonSerializable attributes from non serializable types minor changes - just cleanup through the entire repo. +22866 area-System.Reflection Add a way to opt out of TargetInvocationException wrapping on late-bound invokes. "Late-bound invokes through Reflection wrap exceptions thrown by the target in a `TargetInvocationException`. In many cases, this behavior is not desired and counter-productive. For those who want the actual exception, it requires unwrapping the `TargetInvocationException` to rethrow the inner exception and to retrieve the full call stack. The fact that every exception is ""caught"" hampers the normal debugging experience. It'd be useful to have a way to opt out of this wrapping. We can do this without adding lots of new overloads by adding a new member to the `BindingFlags` enum: `BindingFlag.DoNotWrapExceptions`. Setting this bit would disable the wrapping behavior. Here is a fiddle of the code sample included below: https://dotnetfiddle.net/o9qUht ```C# public class Program { public static void Main() { try { var bf = BindingFlags.Static | BindingFlags.Public | BindingFlags.InvokeMethod; bf |= BindingFlags.DoNotWrapExceptions; typeof(Program).InvokeMember(""LateBoundTarget"", bf, null, null, null); } catch(TargetInvocationException e) { Console.WriteLine(""fail""); } catch(InvalidOperationException e) { Console.WriteLine(""success""); } } public static void LateBoundTarget() { throw new InvalidOperationException(); } } ``` ### Apis that would be affected: ```c# public static class Activator { public static object CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, object[] args, CultureInfo culture); public static object CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, object[] args, CultureInfo culture, object[] activationAttributes); } public class Type { public object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args); public object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, CultureInfo culture); public abstract object InvokeMember(string name, BindingFlags invokeAttr, Binder binder, object target, object[] args, ParameterModifier[] modifiers, CultureInfo culture, string[] namedParameters); } public class Assembly { public virtual object CreateInstance(string typeName, bool ignoreCase, BindingFlags bindingAttr, Binder binder, object[] args, CultureInfo culture, object[] activationAttributes); } public abstract class ConstructorInfo : MethodBase { public abstract object Invoke(BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture); } public abstract class MethodBase : MemberInfo { public abstract object Invoke(object obj, BindingFlags invokeAttr, Binder binder, object[] parameters, CultureInfo culture); } public abstract class PropertyInfo : MemberInfo { public abstract object GetValue(object obj, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture); public abstract void SetValue(object obj, object value, BindingFlags invokeAttr, Binder binder, object[] index, CultureInfo culture); } ``` [EDIT] Added C# syntax highlight by @karelz" +22867 area-System.Net Add basic EventSource tracing to ManagedHandler cc: @geoffkizer +22869 area-System.Drawing Add nuget package configuration for System.Drawing.Common This adds a nuget package for System.Drawing.Common, which can be referenced in any .NET Core 2.0 or .NET Framework project. As part of it, I've added in the `netfx` build configurations for System.Drawing.Common, which are just pure facades over the System.Drawing assembly. I've also updated buildtools to avoid a validation error (see https://github.com/dotnet/buildtools/pull/1622). @ericstj Could you take a look? +22870 area-System.Reflection Allow Type.MakeGenericType to further instantiate partially instantiated Types "Currently `Type.MakeGenericType` will throw for types for which `Type.IsGenericTypeDefinition` is `false`. I'd like to lift that restriction and allow Type.MakeGenericType to further instantiate partially instantiated types. For example, given a `type` representing `Foo` where `T0` represents the first generic type parameter then the type `Foo` could be constructed by calling `type.MakeGenericType(typeof(string))`. Here is a fiddle of a slightly more complicated example which is copied below: https://dotnetfiddle.net/HYGMv9. A few ""food for thought"" cases: * If fewer types are supplied to `MakeGenericType` then the missing generic parameters are assumed to be the existing substitutions. Thus `type.MakeGenericType(new Type[] { })` would always succeed and return `type`. * `MakeGenericType` may accept fewer than or an equal number of types than `GenericTypeParameters.Length` but never more. * If all types have been substituted then `type.MakeGenericType(...)` will succeed (if an equal or fewer number of types than there are generic parameters are supplied) and return `type` * If no type parameters exist for a given substitution than that substitution is ignored. * `null` can be passed as a substitution argument to `MakeGenericType` if there no long exist any generic parameters which would be substituted for the position `null` occupies. * Although type parameters from other types can be used to instantiate a type only the type parameters for the type be instantiated are substituted. ``` C# using System; public class Foo { } public class Program { public static void Main() { var type = typeof(Foo<,,>); var genericArguments = type.GetGenericArguments(); var T0 = genericArguments[0]; var T1 = genericArguments[1]; var T2 = genericArguments[2]; var type_Int_T2_T1 = type.MakeGenericType(typeof(int), T2, T1); var type_Int_T1_Short = type.MakeGenericType(typeof(int), T0, typeof(short)); // Currently throws; Wish for it to succeed if (type_Int_T1_Short == type_Int_T2_T1.MakeGenericType( null, // T0 replacement => typeof(int) typeof(short), // T1 replacement T0) // T2 replacement ) Console.WriteLine(""success""); } }" +22871 area-System.Data SqlConnection.WorkstationId is null "Case 1: ``` var conn = new SqlConnection(@""Server=X;Database=master;User Id=Y;Password=Z""); Console.WriteLine(conn.WorkstationId); Console.WriteLine(Environment.MachineName); ``` in .NET 4.6 and mono it prints: > EGORBOPC > EGORBOPC in .NET Core it prints > (null) > EGORBOPC Case 2: ``` var conn = new SqlConnection(@""Server=X;Database=master;User Id=Y;Password=Z;Workstation Id=Desktop""); conn.Dispose(); Console.WriteLine(conn.WorkstationId); Console.WriteLine(Environment.MachineName); ``` in .NET 4.6 and mono it prints: > EGORBOPC > EGORBOPC in .NET Core it prints > """" (empty string) > EGORBOPC Windows 10 x86/64" +22872 area-System.Net Remove char[] allocation from Uri.HexEscape cc: @cipop, @davidsh +22873 area-System.Net Remove UriShim from HttpClient - Uri's members are now back in core; it can just use those directly. - Rather than calling HexEscape per character, which allocates a string per character, we can just encode directly to the StringBuilder. cc: @davidsh, @cipop, @geoffkizer, @Priya91 +22874 area-System.IO Expand Deflate64 WindowSize The WindowSize being used in the old managed deflate implementation that I modified to decompress Deflate64 is too small. Deflate64 can have lengths up to 64kb as well as distances up to 64kb when doing lookback. In my initial implementation I disregarded the increased length, allowing potentially 64kb of data to be written to an outputwindow that only has as little as 258 bytes of open space. This causes the previously inflated yet-to-be-flushed data to be overwritten, causing invalid output. The fix is simple: increase the WindowSize to fit the new length/distance maximums. Becuase of the way our managed Deflate implementation is written, it's not possible to simply flush the OutputWindow after already determining the lookback without a large rewrite, so I opted for the increased WindowSize solution instead. Testing is unfortunately not simple because it's rare that a file will need such a high length/distance and we do not have a Deflate64 deflater so we have to rely on other programs for generating test input. I've got a file that allows reproduction of the failure, but it's 3gb and doesn't experience data loss until a little under the 1gb mark. Because of the large size of the test file, I've left it out. I also took the chance to cleanup the s_extraLengthBits field. Currently, we attempt to read extra bits from input when given an invalid symbol for determining length. By shortening the arrays to only valid values, we instead throw an InvalidDataException early. cc: @stephentoub +22875 area-System.Data Removed SNIMarsManager, and modified TdsParserStateObjectManaged so that it manages its own SNIMarsConnection if MARS is enabled. This prevents SNIMarsConnections from accumulating forever in a static SNIMarsManager singleton. (#22709) Porting fix to release/uwp6.0 +22876 area-System.Data SqlCommand EndExecuteXmlReader is private I know the missing API stuff in System.Data is listed here https://github.com/dotnet/corefx/issues/17126 but in this particular case the [method](https://github.com/dotnet/corefx/blob/master/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlCommand.cs#L1299) is fully implemented but it's private ([public](https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.endexecutexmlreader(v=vs.110).aspx) in .NET 4.6) it looks like it can be easily fixed ;-) the full list of private members: ``` - IAsyncResult BeginExecuteNonQuery(System.AsyncCallback callback, object stateObject) - System.IAsyncResult BeginExecuteXmlReader(System.AsyncCallback callback, object stateObject) - int EndExecuteNonQuery(System.IAsyncResult asyncResult) - SqlDataReader EndExecuteReader(System.IAsyncResult asyncResult) - XmlReader EndExecuteXmlReader(System.IAsyncResult asyncResult) ``` +22877 area-System.Net HttpClientHandler not Correctly Setting Cookie on UAP WCF changed to use HttpClientHandler on UAP recently. One test (see https://github.com/dotnet/wcf/issues/2140) started failing on UAP. The issue is that the `HttpClientHandler` did not correctly set the associated `CookieContainer`. I did some investigation. To me, the bug seems to be in [`CookieTokenizer.FindNext`](https://github.com/dotnet/corefx/blob/e30fdc38e60f6fa2ed8e7e103d1f8c44655438cd/src/System.Net.Http/src/uap/System/Net/cookie.cs#L1264). See the code below, ```c# if (!Eof) { switch (m_tokenStream[m_index]) { case ';': token = CookieToken.EndToken; break; case '=': token = CookieToken.Equals; break; default: m_cookieLength = m_index - m_cookieStartIndex; token = CookieToken.EndCookie; break; } ++m_index; } else { m_cookieLength = m_index - m_cookieStartIndex; } ``` Consider the very last cookie in the cookie header, `m_cookieLength` would not be set for it. The above code probably should be, ```c# if (!Eof) { switch (m_tokenStream[m_index]) { case ';': token = CookieToken.EndToken; break; case '=': token = CookieToken.Equals; break; default: m_cookieLength = m_index - m_cookieStartIndex; token = CookieToken.EndCookie; break; } ++m_index; } if (Eof) // <--- Change here { m_cookieLength = m_index - m_cookieStartIndex; } ``` +22879 area-System.Data SqlConnection doesn't support empty values "``` var cn = new SqlConnection(""Timeout=""); Console.WriteLine(cn.ConnectionTimeout); ``` .NET 4.6 (and mono) prints: > 15 .NET Core: > System.ArgumentNullException: 'Value cannot be null.' I suspect it happens with other parameters too, for example - ""packet Size=""" +22880 area-Infrastructure Stop buildling Ubuntu 16.10 in all branches +22882 area-System.Data SqlConnection GetSchema throws NullReferenceException ``` SqlConnection cn = new SqlConnection(); cn.GetSchema(); ``` .NET 4.6 (and mono): > System.InvalidOperationException: 'Invalid operation. The connection is closed.' .NET Core: > NullReferenceException I guess NRE is not really user friendly +22883 area-System.Net Sockets: ensure InnerReleaseHandle is called exactly once In SafeCloseSocket, InnerReleaseHandle often gets called twice today -- once by CloseAsIs, once by ReleaseHandle. This can in rare occasions lead to deadlocks in the SocketAsyncContext code, deadlocked on the queuelock by multiple threads calling InnerReleaseHandle. Ensure that InnerReleaseHandle is called exactly once, and is consistently called before the innerSocket is released. @stephentoub @wfurt @Priya91 @davidsh @CIPop +22884 area-System.Net Sockets: disable unreliable new test Accept_ConcurrentAcceptsAfterConnects_Success isn't reliable in the ForceNonBlocking case, for the same reason as Accept_ConcurrentAcceptsBeforeConnects_Success, which is already disabled. @stephentoub @wfurt @Priya91 @davidsh @CIPop +22885 area-System.Net Test issue: Race condition with SocketHelperSyncForceNonBlocking.AcceptAsync SocketHelperSyncForceNonBlocking.AcceptAsync always toggles the Blocking setting on the listen socket. This results in a race condition if you do multiple concurrent accepts on a listen socket. Instead of toggling the listen socket's Blocking in AcceptAsync, we need a separate call to configure the listen socket to be nonblocking before we do the accepts. +22886 area-System.Data Backport Mars cleanup fix PR #22709 to release/2.0.0 This change should be backported to 2.0.0, if possible. PR: https://github.com/dotnet/corefx/pull/22709 Original issue: https://github.com/dotnet/corefx/issues/22661 +22887 area-System.IO [WIP] UWP support for serial port This is still in progress for #21156 and I want to get better coverage with tests on my box before moving ahead with this change, but, anyway I wanted to get this PR in place to get some feedback. There is still the issue about enumerating the COM ports in UWP, for now I didn't fix that but hard coded it for tests. +22888 area-System.Net Clean up usage of UriHelper Some more debt I noticed: we've got some duplication in UriHelper of functions that are again available on Uri, so remove the duplication and clean up the call sites. We've also got a dead UriHelper file copy in System.Net.Http that's no longer needed. And while cleaning that up, I noticed a few functions that could be made faster, e.g. Uri.IsHexDigit, Uri.FromHex, and Uri.IsHexEncoding... the changes make them 10-20% faster in microbenchmarks that just repeatedly call them with various inputs. cc: @davidsh, @cipop +22891 area-System.Threading Proposal/discussion: Task/Task implementing IObservable? When Task/Task were initially introduced, we went back and forth on whether they should implement IObservable. The remnants of this are even still visible in the desktop code, e.g. http://referencesource.microsoft.com/#mscorlib/system/threading/Tasks/Future.cs,75 http://referencesource.microsoft.com/#mscorlib/system/threading/Tasks/Future.cs,1598 If I remember correctly (and I might not), the reason we eventually didn't implement it was for layering concerns at the time, but given that both Task and IObservable are in corelib on all platforms, and in System.Runtime, I don't think there are any such layering concerns remaining. The main benefit to implementing these interfaces is that then combinators for IObservable would then also work for Task, e.g. making it easier to stream together the results from arbitrary numbers of async operations. This would raise the question of whether a Task would also implement an IAsyncEnumerable if/when such an interface exists, and if not, why it would implement IObservable. There's also the question of whether both `Task` and `Task` would implement the interface, and if so, what would the type `T` be in `IObservable`, e.g. ```C# public class Task : Task, IObservable { ... } public class Task : IObservable { ... } ``` or ```C# public class Task : Task, IObservable> { ... } public class Task : IObservable { ... } ``` or ```C# public class Task : Task, IObservable { ... } public class Task : IObservable { ... } ``` or ```C# public class Task : Task, IObservable { ... } public class Task { ... } ``` with the oddity compounded by `Task` implementing both the `IObservable` interface it implements and the `IObservable` its base Task implements, if the latter does so. +22892 area-System.Data Add initial tests to System.Data.DataSetExtensions Integrated new tests as well as existing tests from Mono. Still going through and adding tests, this is initial PR. Re: #22803 +22893 area-System.Drawing Remove SystemDrawingSection typeforward from our System.Drawing.dll shim cc: @joshfree @Petermarcu @weshaggard Removing SystemDrawingSection from ConfigurationManager's ref so that System.Drawing shim won't type forward to it. +22895 area-System.Net System.Net.CookieParser to Support Cookie String with Trailing Semicolon The issue was that if a cookie string has trailing semicolon, `System.Net.CookieParser.GetString()` returns empty string. The issue was found on UAP/UAPAOT runs as `System.Net.CookieParser.GetString()` was used on those platforms. We would also need to port the fix to UWP6.0 branch. Fix #22877 +22896 area-System.Net Fixing abort race condition in ClientWebSocket for UWP. I was able to force a repro by queuing a ReadAsync task while, on another thread, scheduling two SendAsync operations that would Abort the WebSocket. Exceptions are now handled through `AbortInternal` instead of checking the state of the socket after the ReadAsync operation. I've also added `ConfigureAwait` statements to `await`s. Fixes #22746 +22898 area-System.Net Fix ManagedHandler environment proxy setting handling Missing a clause resulting in test failures. cc: @geoffkizer +22900 area-System.Net "Test: System.Net.Sockets.Tests.AcceptSyncForceNonBlocking/Accept_ConcurrentAcceptsAfterConnects_Success failed with ""System.Net.Sockets.SocketException : Resource temporarily unavailable""" Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.AcceptSyncForceNonBlocking/Accept_ConcurrentAcceptsAfterConnects_Success(numberAccepts: 5)` has failed. System.Net.Sockets.SocketException : Resource temporarily unavailable Stack Trace: at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName) in /root/corefx-901735/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 5272 at System.Net.Sockets.Socket.Accept() in /root/corefx-901735/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 1059 at System.Net.Sockets.Tests.SocketHelperSyncForceNonBlocking.<>c__DisplayClass0_0.b__0() in /root/corefx-901735/src/System.Net.Sockets/tests/FunctionalTests/SocketTestHelper.cs:line 74 at System.Threading.Tasks.Task`1.InnerInvoke() at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Sockets.Tests.Accept`1.d__2.MoveNext() in /root/corefx-901735/src/System.Net.Sockets/tests/FunctionalTests/Accept.cs:line 125 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170803.01 (Core Tests) Failing configurations: - suse.422.amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170803.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.AcceptSyncForceNonBlocking~2FAccept_ConcurrentAcceptsAfterConnects_Success(numberAccepts:%205) +22901 area-System.Runtime "Test: System.Tests.TypeTestsExtended/GetTypeByName failed with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `System.Tests.TypeTestsExtended/GetTypeByName` has failed. System.IO.IOException : RemoteInvoke cannot open the remote service. Open Service Status: AppUnavailable Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, RemoteInvokeOptions options, Boolean pasteArguments) at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(Func`1 method, RemoteInvokeOptions options) at System.Tests.TypeTestsExtended.GetTypeByName() Build : Master - 20170803.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170803.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.TypeTestsExtended~2FGetTypeByName +22902 area-System.Runtime "Test: System.Tests.StringTests/Ctor_CharSpan failed with ""System.NullReferenceException"" & ""System.OutOfMemoryException""" "Opened on behalf of @Jiayili1 The test `System.Tests.StringTests/Ctor_CharSpan(valueArray: ['a', 'b', 'c', 'd', 'e', ...], startIndex: 0, length: 12, expected: \""abcdefgh\\0ijk\"")` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.String.Ctor() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\String.cs:line 15732480 at System.Tests.StringTests.Ctor_CharSpan() in E:\A\_work\305\s\corefx\src\System.Runtime\tests\System\StringTests.netcoreapp.cs:line 32 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetVIIII() at System.InvokeUtils.CalliIntrinsics.Call() at System.InvokeUtils.CallDynamicInvokeMethod() in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170803.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170803.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.StringTests~2FCtor_CharSpan(valueArray:%20%5B'a',%20'b',%20'c',%20'd',%20'e',%20...%5D,%20startIndex:%200,%20length:%2012,%20expected:%20%5C%22abcdefgh%5C%5C0ijk%5C%22)" +22904 area-System.Net Test: System.Net.WebSockets.Client.Tests.CancelTest / CloseAsync_Cancel_Success Opened on behalf of @Jiayili1 The test `System.Net.WebSockets.Client.Tests.CancelTest/CloseAsync_Cancel_Success(server: wss://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx)` has failed. Assert.Equal() Failure\r Expected: Aborted\r Actual: Open Stack Trace: at System.Net.WebSockets.Client.Tests.ClientWebSocketTestBase.d__8.MoveNext$catch$0() in E:\A\_work\825\s\corefx\src\System.Net.WebSockets.Client\tests\ClientWebSocketTestBase.cs:line 66 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at System.Net.WebSockets.Client.Tests.CancelTest.d__4.MoveNext() in E:\A\_work\825\s\corefx\src\System.Net.WebSockets.Client\tests\CancelTest.cs:line 80 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 Build : UWP 6.0 - 20170803.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Release Detail: https://mc.dot.net/#/product/netcore/uwp60/source/official~2Fcorefx~2Frelease~2Fuwp6.0~2F/type/test~2Ffunctional~2Filc~2F/build/20170803.01/workItem/System.Net.WebSockets.Client.Tests.Execution/analysis/xunit/System.Net.WebSockets.Client.Tests.CancelTest~2FCloseAsync_Cancel_Success(server:%20wss:~2F~2Fcorefx-net.cloudapp.net~2FWebSocket~2FEchoWebSocket.ashx) +22905 area-Infrastructure Add documentation on how to use one's corefx build I forgot how to use the corefx binaries for testing in a console app, after not making PRs for a while. I've added documentation on how to do this in case I ever get stuck on that again, and hopefully prevent others from wasting time. **To Do** - [x] Add link to document in `Documentation/README.md` +22909 area-System.Linq Include and ThenInclude not working after groupBy with OrderBy Core 2.0 AspNetCore.All 2.1.0-preview1-26462 Navigation property ICollection is null, Core 1.1 work fine +22910 area-System.Net HttpListener Cookie issue "This is my code : var cookies=new string[]{ ""SP_GUEST=; domain=xx.com; path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT"", ""SP_F=sadfsdfsdf; domain=xx.com; path=/; expires=Sat, 02-Sep-2017 08:41:07 GMT"", ""SP_RETURN_USER=ssdfsdf; domain=xx.com; path=/; expires=Sat, 02-Sep-2017 08:41:07 GMT"" } foreach (var c in cookies) { HttpListenerResponse.Headers.Add(""Set-Cookie"",c); } In windows the response cookie is : Set-Cookie: SP_GUEST=; domain=xx.com; path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT Set-Cookie: SP_F=sadfsdfsdf; domain=xx.com; path=/; expires=Sat, 02-Sep-2017 08:41:07 GMT Set-Cookie: SP_RETURN_USER=ssdfsdf; domain=xx.com; path=/; expires=Sat, 02-Sep-2017 08:41:07 GMT but in Centos7.3 return: Set-Cookie: SP_GUEST=; domain=xx.com; path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT, SP_F=sadfsdfsdf; domain=xx.com; path=/; expires=Sat, 02-Sep-2017 08:41:07 GMT, SP_RETURN_USER=ssdfsdf; domain=xx.com; path=/; expires=Sat, 02-Sep-2017 08:41:07 GMT cookie connected together dotnet --version 2.0.0-preview2-006497" +22911 area-System.Data sqlclient not Found Exception get exception on sqlconnection open. UWP Visual Studio preview, Windows 10 Creators update referenced 6.0.0-preview2-25602-02 sqlclient 4.5.0-preview2-25603-01 System.IO.FileNotFoundException ist aufgetreten. HResult=0x80070002 Nachricht = Could not load file or assembly 'System.Threading.Thread, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Das System kann die angegebene Datei nicht finden. Quelle = Stapelüberwachung: bei System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) bei System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) bei System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) bei System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) bei System.Data.SqlClient.SqlConnection.Open() bei ADO.NETSharp.MainPage.Button_Click(Object sender, RoutedEventArgs e) in c:\win10\ADO.NETSharp\ADO.NETSharp\MainPage.xaml.cs: Zeile37 +22921 area-System.Net [release/uwp6.0] Fixing abort race condition in ClientWebSocket for UWP. (#22896) Port #22896 to release/uwp6.0. I was able to force a repro #22746 by queuing a ReadAsync task while, on another thread, scheduling two SendAsync operations that would Abort the WebSocket. Exceptions are [now ](https://github.com/dotnet/corefx/commit/5573a9e3d4151642e8e2ff477eba2f2eda954fb4) handled through AbortInternal instead of checking the state of the socket after the ReadAsync operation. I've also added ConfigureAwait statements to awaits. +22922 area-System.Data Plain zero insertion error when SqlBulkCopy `SqlDecimal` 0 has precision *1* scale *0*. When the scale is adjusted by n *(n>0)*, currently, n is just added up to both prevision and scale, which makes precision 1+n and scale 0+n. Adjusting scale by 2 converts `SqlDecimal` 0 (precision 1, scale 0) into 0.00 with precision 3 and scale 2. This caused an issue on `SqlBulkcopy`, when a row with `SqlDecimal` 0 in `DataTable` was being inserted to a table which has *decimal(2,2)* type in the corresponding column. +22923 area-System.IO System.IO.Compression is using managed rather than zlib crc32 implementation The FEATURE_ZLIB flag stopped getting set in https://github.com/dotnet/corefx/commit/45b4c71bff924245d8962035bd751d65c45bf31d#diff-c6b38c104d8ce4d33770fa26bcb7c315L9 cc: @ericstj, @ianhays +22924 area-Infrastructure Add linux-arm64 to official builds This is needed for validation now that we support the linux-arm64 RID. +22925 area-System.Net CookieParser.Get() not Returning Cookie Correctly. I have a cookie string as shown below, `cookie_name1=cookie_value1;cookie_name2=cookie_value2` I have the following test code, ```c# var parser = new CookieParser(cookieString); while (true) { Cookie cookie = parser.Get(); if (cookie == null) { break; } cookieCount++; } ``` I expected the cookieCount to be the count of the cookies in the string. For the example, I expected the count to be 2. But the actual value was 1. If I used parser.GetServer() instead of Get() in the test code, the cookieCount is as expected. So I wondered if the behavior is as expected. Please see test CookieParserGet_SetCookieHeaderValue_Success. The test failed due to the issue. +22926 area-System.Data Fix plain zero insertion error when SqlBulkCopy This is a fix for https://github.com/dotnet/corefx/issues/22922 *** `SqlDecimal` 0 has precision *1* scale *0*. When the scale is adjusted by n *(n>0)*, currently, n is just added up to both prevision and scale, which makes precision 1+n and scale 0+n. Adjusting scale by 2 converts `SqlDecimal` 0 (precision 1, scale 0) into 0.00 with precision 3 and scale 2. This caused an issue on `SqlBulkcopy`, when a row with `SqlDecimal` 0 in `DataTable` was being inserted to a table which has *decimal(2,2)* type in the corresponding column. +22928 area-System.Data Fix SqlClient UapAot test failures caused by blocked reflection of internal types (#22618) Porting test fix to release/uwp6.0 +22929 area-Meta Publish non-allocating coding patterns found during PR review. PR review is a rare window of opportunity to identify common coding pitfalls in production code. Since over-allocation has proved to have negative impact on .NET programs I suggest documenting common coding patterns seen in PR which avoid over-allocation. I believe this type of knowledge would be very hard to gather later on; therefore I suggest this be added as a goal to PR review. +22930 area-System.IO Use new WinRT APIs for SpecialFolders (#22664) Ports #22664. This addresses #20782. * Use new WinRT APIs for SpecialFolders * Update tests * Update test package Fix test verification * Clean up project files * Add back test skip condition * Add comments and fallback Windows dir. +22931 area-Serialization Add more parameters, functions in SGEN Need add the following parameters, functions, which existed in desktop version. ? help nologo silent - silently fail verbose - more error message debug - keep pdb keep - keep cs files parsableerrors assembly // For command line apps, cmd.exe cannot display right-to-left languages currently. Change the // CurrentUICulture to meet their needs, falling back to our invariant resources. SetConsoleUICulture WriteHelp, WriteHeader methods +22932 area-Serialization Review the parameters in csc command Review the csc parameters. +22933 area-System.Net System.Net.Sockets hang on Fedora 26 / amd64 Fedora.26.Amd64.Open:Release-x64 Details from Job fc812eef-160b-4fd1-bf70-32716ed58c2f ExitCode: -3 Ran on Machine: dnbfed26p0000YO ``` 2017-08-03 13:58:01,087: INFO: proc(54): run_and_log_output: Output: total elapsed time 0:00:00.156145 2017-08-03 13:58:01,184: INFO: proc(54): run_and_log_output: Output: xUnit.net console test runner (64-bit .NET Core) 2017-08-03 13:58:01,184: INFO: proc(54): run_and_log_output: Output: Copyright (C) 2014 Outercurve Foundation. 2017-08-03 13:58:01,185: INFO: proc(54): run_and_log_output: Output: 2017-08-03 13:58:01,249: INFO: proc(54): run_and_log_output: Output: Discovering: System.Net.Sockets.Tests 2017-08-03 13:58:01,620: INFO: proc(54): run_and_log_output: Output: Discovered: System.Net.Sockets.Tests 2017-08-03 13:58:01,940: INFO: proc(54): run_and_log_output: Output: Starting: System.Net.Sockets.Tests ``` ``` 2017-08-03 14:18:00,691: ERROR: executor(350): _execute_command: Executor timed out after 1200 seconds and was killed. 2017-08-03 14:18:00,692: INFO: event(43): send: Sending event type WorkItemTimeout 2017-08-03 14:18:00,725: INFO: saferequests(90): request_with_retry: Response complete with status code '201' 2017-08-03 14:18:00,726: INFO: executor(368): _execute_command: Finished _execute_command, exit code: -3 ``` https://mc.dot.net/#/user/CIPop/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Frelease~2Fuwp6.0~2F/test~2Ffunctional~2Fcli~2F/1066b07f751912f2f7bdbb0734a8fcf4a784ad9f/workItem/System.Net.Sockets.Tests/wilogs +22934 area-Serialization Use immediate path instead of output path +22935 area-Serialization Handle the errors from CSC Handle the errors from csc, need let customer know either warnings or errors if fail to generate the cs file, fail to compile +22936 area-Serialization Enable the auto build scenario when download the SGEN package The prototype is done. Now we manually rename the exe to dll. And manually put the files into the package. Need make it in the corefx. +22937 area-Serialization Allow the customer to pass the additional parameter through the config Currently, in our prototype, we hard code the sgen command. Need allow the customer to pass the additional parameter through the config. +22938 area-Serialization Display one warning when fail to generate the serialization code for some types. Display one warning when fail to generate the serialization code for some types Put the details in the log +22939 area-System.Net [release/uwp6.0] System.Net.CookieParser to Support Cookie String with Trailing Semicolon The issue was that if a cookie string has trailing semicolon, System.Net.CookieParser.GetString() returns empty string. The issue was found on UAP/UAPAOT runs as System.Net.CookieParser.GetString() was used on those platforms. Fix #22877 +22940 area-System.Runtime API Proposal: Add Intel hardware intrinsic functions and namespace "This proposal adds intrinsics that allow programmers to use managed code (C#) to leverage Intel® SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, FMA, LZCNT, POPCNT, BMI1/2, PCLMULQDQ, and AES instructions. ## Rationale and Proposed API ### Vector Types Currently, .NET provides `System.Numerics.Vector` and related intrinsic functions as a cross-platform SIMD interface that automatically matches proper hardware support at JIT-compile time (e.g. `Vector` is size of 128-bit on SSE2 machines or 256-bit on AVX2 machines). However, there is no way to simultaneously use different size `Vector`, which limits the flexibility of SIMD intrinsics. For example, on AVX2 machines, XMM registers are not accessible from `Vector`, but certain instructions have to work on XMM registers (i.e. SSE4.2). Consequently, this proposal introduces `Vector128` and `Vector256` in a new namespace `System.Runtime.Intrinsics` ```csharp // Types.cs namespace System.Runtime.Intrinsics { // 128 bit types [StructLayout(LayoutKind.Sequential, Size = 16)] public struct Vector128 where T : struct {} // 256 bit types [StructLayout(LayoutKind.Sequential, Size = 32)] public struct Vector256 where T : struct {} } ``` This namespace is platform agnostic, and other hardware could provide intrinsics that operate over them. For instance, `Vector128` could be implemented as an abstraction of XMM registers on SSE capable processor or as an abstraction of Q registers on NEON capable processors. Meanwhile, other types may be added in the future to support newer SIMD architectures (i.e. adding 512-bit vector and mask vector types for AVX-512). In addition, this namespace would contain conversion functions between the existing SIMD type (`Vector`) and new `Vector128` and `Vector256` types, which enable legacy SIMD programs that use `Vector` to be further optimized for specific hardware. ### Intrinsic Functions The current design of `System.Numerics.Vector` abstracts away the specifics of processor details. While this approach works well in many cases, developers may not be able to take full advantage of the underlying hardware. Intrinsic functions allow developers to access full capability of processors on which their programs run. One of the design goals of intrinsics APIs is to provide one-to-one correspondence to [Intel C/C++ intrinsics](https://software.intel.com/sites/landingpage/IntrinsicsGuide/). That way, programmers already familiar with C/C++ intrinsics can easily leverage their existing skills. Another advantage of this approach is that we leverage the existing body of documentation and sample code written for C/C++ instrinsics. Intrinsic functions that manipulate `Vector128/256` will be placed in a platform-specific namespace `System.Runtime.Intrinsics.X86`. Intrinsic APIs will be separated to several static classes based-on the instruction sets they belong to. ```csharp // Avx.cs namespace System.Runtime.Intrinsics.X86 { public static class Avx { public static bool IsSupported {get;} // __m256 _mm256_add_ps (__m256 a, __m256 b) [Intrinsic] public static Vector256 Add(Vector256 left, Vector256 right) { throw new NotImplementedException(); } // __m256d _mm256_add_pd (__m256d a, __m256d b) [Intrinsic] public static Vector256 Add(Vector256 left, Vector256 right) { throw new NotImplementedException(); } // __m256 _mm256_addsub_ps (__m256 a, __m256 b) [Intrinsic] public static Vector256 AddSubtract(Vector256 left, Vector256 right) { throw new NotImplementedException(); } // __m256d _mm256_addsub_pd (__m256d a, __m256d b) [Intrinsic] public static Vector256 AddSubtract(Vector256 left, Vector256 right) { throw new NotImplementedException(); } ...... } } ``` Some of intrinsics benefit from C# generic and get simpler APIs: ```csharp // Sse2.cs namespace System.Runtime.Intrinsics.X86 { public static class Sse { public static bool IsSupported {get;} // __m128 _mm_castpd_ps (__m128d a) // __m128i _mm_castpd_si128 (__m128d a) // __m128d _mm_castps_pd (__m128 a) // __m128i _mm_castps_si128 (__m128 a) // __m128d _mm_castsi128_pd (__m128i a) // __m128 _mm_castsi128_ps (__m128i a) [Intrinsic] public static Vector128 StaticCast(Vector128 value) where T : struct where U : struct { throw new NotImplementedException(); } ...... } } ``` Each instruction set class contains an `IsSupported` property which stands for whether the underlying hardware supports the instruction set. Programmers use these properties to ensure that their code can run on any hardware via platform-specific code path. For JIT compilation, the results of capability checking are JIT time constants, so dead code path for the current platform will be eliminated by JIT compiler (conditional constant propagation). For AOT compilation, compiler/runtime executes the CPUID checking to identify corresponding instruction sets. Additionally, the intrinsics do not provide software fallback and calling the intrinsics on machines that has no corresponding instruction sets will cause `PlatformNotSupportedException` at runtime. Consequently, we always recommend developers to provide software fallback to remain the program portable. Common pattern of platform-specific code path and software fallback looks like below. ```csharp if (Avx2.IsSupported) { // The AVX/AVX2 optimizing implementation for Haswell or above CPUs } else if (Sse41.IsSupported) { // The SSE optimizing implementation for older CPUs } ...... else { // Scalar or software-fallback implementation } ``` The scope of this API proposal is not limited to SIMD (vector) intrinsics, but also includes scalar intrinsics that operate over scalar types (e.g. int, short, long, or float, etc.) from the instruction sets mentioned above. As an example, the following code segment shows `Crc32` intrinsic functions from `Sse42` class. ```csharp // Sse42.cs namespace System.Runtime.Intrinsics.X86 { public static class Sse42 { public static bool IsSupported {get;} // unsigned int _mm_crc32_u8 (unsigned int crc, unsigned char v) [Intrinsic] public static uint Crc32(uint crc, byte data) { throw new NotImplementedException(); } // unsigned int _mm_crc32_u16 (unsigned int crc, unsigned short v) [Intrinsic] public static uint Crc32(uint crc, ushort data) { throw new NotImplementedException(); } // unsigned int _mm_crc32_u32 (unsigned int crc, unsigned int v) [Intrinsic] public static uint Crc32(uint crc, uint data) { throw new NotImplementedException(); } // unsigned __int64 _mm_crc32_u64 (unsigned __int64 crc, unsigned __int64 v) [Intrinsic] public static ulong Crc32(ulong crc, ulong data) { throw new NotImplementedException(); } ...... } } ``` ### Intended Audience The intrinsics APIs bring the power and flexibility of accessing hardware instructions directly from C# programs. However, this power and flexibility means that developers have to be cognizant of how these APIs are used. In addition to ensuring that their program logic is correct, developers must also ensure that the use of underlying intrinsic APIs are valid in the context of their operations. For example, developers who use certain hardware intrinsics should be aware of their data alignment requirements. Both aligned and unaligned memory load and store intrinsics are provided, and if aligned loads and stores are desired, developers must ensure that the data are aligned appropriately. The following code snippet shows the different flavors of load and store intrinsics proposed: ```csharp // Avx.cs namespace System.Runtime.Intrinsics.X86 { public static class Avx { ...... // __m256i _mm256_loadu_si256 (__m256i const * mem_addr) [Intrinsic] public static unsafe Vector256 Load(sbyte* address) { throw new NotImplementedException(); } // __m256i _mm256_loadu_si256 (__m256i const * mem_addr) [Intrinsic] public static unsafe Vector256 Load(byte* address) { throw new NotImplementedException(); } ...... [Intrinsic] public static Vector256 Load(ref T vector) where T : struct { throw new NotImplementedException(); } // __m256i _mm256_load_si256 (__m256i const * mem_addr) [Intrinsic] public static unsafe Vector256 LoadAligned(sbyte* address) { throw new NotImplementedException(); } // __m256i _mm256_load_si256 (__m256i const * mem_addr) [Intrinsic] public static unsafe Vector256 LoadAligned(byte* address) { throw new NotImplementedException(); } ...... // __m256i _mm256_lddqu_si256 (__m256i const * mem_addr) [Intrinsic] public static unsafe Vector256 LoadDqu(sbyte* address) { throw new NotImplementedException(); } // __m256i _mm256_lddqu_si256 (__m256i const * mem_addr) [Intrinsic] public static unsafe Vector256 LoadDqu(byte* address) { throw new NotImplementedException(); } ...... // void _mm256_storeu_si256 (__m256i * mem_addr, __m256i a) [Intrinsic] public static unsafe void Store(sbyte* address, Vector256 source) { throw new NotImplementedException(); } // void _mm256_storeu_si256 (__m256i * mem_addr, __m256i a) [Intrinsic] public static unsafe void Store(byte* address, Vector256 source) { throw new NotImplementedException(); } ...... public static void Store(ref T vector, Vector256 source) where T : struct { throw new NotImplementedException(); } // void _mm256_store_si256 (__m256i * mem_addr, __m256i a) [Intrinsic] public static unsafe void StoreAligned(sbyte* address, Vector256 source) { throw new NotImplementedException(); } // void _mm256_store_si256 (__m256i * mem_addr, __m256i a) [Intrinsic] public static unsafe void StoreAligned(byte* address, Vector256 source) { throw new NotImplementedException(); } ...... // void _mm256_stream_si256 (__m256i * mem_addr, __m256i a) [Intrinsic] public static unsafe void StoreAlignedNonTemporal(sbyte* address, Vector256 source) { throw new NotImplementedException(); } // void _mm256_stream_si256 (__m256i * mem_addr, __m256i a) [Intrinsic] public static unsafe void StoreAlignedNonTemporal(byte* address, Vector256 source) { throw new NotImplementedException(); } ...... } } ``` ### IMM Operands Most of the intrinsics can be directly ported to C# from C/C++, but certain instructions that require immediate parameters (i.e. imm8) as operands deserve additional consideration, such as `pshufd`, ` vcmpps`, etc. C/C++ compilers specially treat these intrinsics which throw compile-time errors when non-constant values are passed into immediate parameters. Therefore, CoreCLR also requires the immediate argument guard from C# compiler. We suggest an addition of a new ""compiler feature"" into Roslyn which places `const` constraint on function parameters. Roslyn could then ensure that these functions are invoked with ""literal"" values on the `const` formal parameters. ```csharp // Avx.cs namespace System.Runtime.Intrinsics.X86 { public static class Avx { ...... // __m256 _mm256_blend_ps (__m256 a, __m256 b, const int imm8) [Intrinsic] public static Vector256 Blend(Vector256 left, Vector256 right, const byte control) { throw new NotImplementedException(); } // __m256d _mm256_blend_pd (__m256d a, __m256d b, const int imm8) [Intrinsic] public static Vector256 Blend(Vector256 left, Vector256 right, const byte control) { throw new NotImplementedException(); } // __m128 _mm_cmp_ps (__m128 a, __m128 b, const int imm8) [Intrinsic] public static Vector128 Compare(Vector128 left, Vector128 right, const FloatComparisonMode mode) { throw new NotImplementedException(); } // __m128d _mm_cmp_pd (__m128d a, __m128d b, const int imm8) [Intrinsic] public static Vector128 Compare(Vector128 left, Vector128 right, const FloatComparisonMode mode) { throw new NotImplementedException(); } ...... } } // Enums.cs namespace System.Runtime.Intrinsics.X86 { public enum FloatComparisonMode : byte { EqualOrderedNonSignaling, LessThanOrderedSignaling, LessThanOrEqualOrderedSignaling, UnorderedNonSignaling, NotEqualUnorderedNonSignaling, NotLessThanUnorderedSignaling, NotLessThanOrEqualUnorderedSignaling, OrderedNonSignaling, ...... } ...... } ``` ## Semantics and Usage The semantic is straightforward if users are already familiar with [Intel C/C++ intrinsics](https://software.intel.com/sites/landingpage/IntrinsicsGuide/). Existing SIMD programs and algorithms that are implemented in C/C++ can be directly ported to C#. Moreover, compared to `System.Numerics.Vector`, these intrinsics leverage the whole power of Intel SIMD instructions and do not depend on other modules (e.g. `Unsafe`) in high-performance environments. For example, SoA (structure of array) is a more efficient pattern than AoS (array of structure) in SIMD programming. However, it requires dense `shuffle` sequences to convert data source (usually stored in AoS format), which is not provided by `Vector`. Using `Vector256` with AVX shuffle instructions (including shuffle, insert, extract, etc.) can lead to higher throughput. ```csharp public struct Vector256Packet { public Vector256 xs {get; private set;} public Vector256 ys {get; private set;} public Vector256 zs {get; private set;} // Convert AoS vectors to SoA packet public unsafe Vector256Packet(float* vectors) { var m03 = Avx.ExtendToVector256(Sse2.Load(&vectors[0])); // load lower halves var m14 = Avx.ExtendToVector256(Sse2.Load(&vectors[4])); var m25 = Avx.ExtendToVector256(Sse2.Load(&vectors[8])); m03 = Avx.Insert(m03, &vectors[12], 1); // load higher halves m14 = Avx.Insert(m14, &vectors[16], 1); m25 = Avx.Insert(m25, &vectors[20], 1); var xy = Avx.Shuffle(m14, m25, 2 << 6 | 1 << 4 | 3 << 2 | 2); var yz = Avx.Shuffle(m03, m14, 1 << 6 | 0 << 4 | 2 << 2 | 1); var _xs = Avx.Shuffle(m03, xy, 2 << 6 | 0 << 4 | 3 << 2 | 0); var _ys = Avx.Shuffle(yz, xy, 3 << 6 | 1 << 4 | 2 << 2 | 0); var _zs = Avx.Shuffle(yz, m25, 3 << 6 | 0 << 4 | 3 << 2 | 1); xs = _xs; ys = _ys; zs = _zs; } ...... } public static class Main { static unsafe int Main(string[] args) { var data = new float[Length]; fixed (float* dataPtr = data) { if (Avx2.IsSupported) { var vector = new Vector256Packet(dataPtr); ...... // Using AVX/AVX2 intrinsics to compute eight 3D vectors. } else if (Sse41.IsSupported) { var vector = new Vector128Packet(dataPtr); ...... // Using SSE intrinsics to compute four 3D vectors. } else { // scalar algorithm } } } } ``` Furthermore, conditional code is enabled in vectorized programs. Conditional path is ubiquitous in scalar programs (`if-else`), but it requires specific SIMD instructions in vectorized programs, such as compare, blend, or andnot, etc. ```csharp public static class ColorPacketHelper { public static IntRGBPacket ConvertToIntRGB(this Vector256Packet colors) { var one = Avx.Set1(1.0f); var max = Avx.Set1(255.0f); var rsMask = Avx.Compare(colors.xs, one, FloatComparisonMode.GreaterThanOrderedNonSignaling); var gsMask = Avx.Compare(colors.ys, one, FloatComparisonMode.GreaterThanOrderedNonSignaling); var bsMask = Avx.Compare(colors.zs, one, FloatComparisonMode.GreaterThanOrderedNonSignaling); var rs = Avx.BlendVariable(colors.xs, one, rsMask); var gs = Avx.BlendVariable(colors.ys, one, gsMask); var bs = Avx.BlendVariable(colors.zs, one, bsMask); var rsInt = Avx.ConvertToVector256Int(Avx.Multiply(rs, max)); var gsInt = Avx.ConvertToVector256Int(Avx.Multiply(gs, max)); var bsInt = Avx.ConvertToVector256Int(Avx.Multiply(bs, max)); return new IntRGBPacket(rsInt, gsInt, bsInt); } } public struct IntRGBPacket { public Vector256 Rs {get; private set;} public Vector256 Gs {get; private set;} public Vector256 Bs {get; private set;} public IntRGBPacket(Vector256 _rs, Vector256 _gs, Vector256_bs) { Rs = _rs; Gs = _gs; Bs = _bs; } } ``` As previously stated, traditional scalar algorithms can be accelerated as well. For example, CRC32 is natively supported on SSE4.2 CPUs. ```csharp public static class Verification { public static bool VerifyCrc32(ulong acc, ulong data, ulong res) { if (Sse42.IsSupported) { return Sse42.Crc32(acc, data) == res; } else { return SoftwareCrc32(acc, data) == res; // The software implementation of Crc32 provided by developers or other libraries } } } ``` ## Implementation Roadmap Implementing all the intrinsics in JIT is a large-scale and long-term project, so the current plan is to initially implement a subset of them with unit tests, code quality test, and benchmarks. The first step in the implementation would involve infrastructure related items. This step would involve wiring the basic components, including but not limited to internal data representations of `Vector128` and `Vector256`, intrinsics recognition, hardware support checking, and external support from Roslyn/CoreFX. Next steps would involve implementing subsets of intrinsics in classes representing different instruction sets. ## Complete API Design [Add Intel hardware intrinsic APIs to CoreFX #23489](https://github.com/dotnet/corefx/pull/23489) [Add Intel hardware intrinsic API implementation to mscorlib #13576](https://github.com/dotnet/coreclr/pull/13576) ## Update 08/17/2017 - Change namespace `System.Runtime.CompilerServices.Intrinsics` to `System.Runtime.Intrinsics` and `System.Runtime.CompilerServices.Intrinsics.X86` to `System.Runtime.Intrinsics.X86`. - Change ISA class name to match CoreFX naming convention, e.g., using `Avx` instead of `AVX`. - Change certain pointer parameter names, e.g., using `address` instead of `mem`. - Define `IsSupport` as properties. - Add `Span` overloads to the most common memory-access intrinsics (`Load`, `Store`, `Broadcast`), but leave other alignment-aware or performance-sensitive intrinsics with original pointer version. - Clarify that these intrinsics will not provide software fallback. - Clarify `Sse2` class design and separate small calsses (e.g., `Aes`, `Lzcnt`, etc.) into individual source files (e.g., `Aes.cs`, `Lzcnt.cs`, etc.). - Change method name `CompareVector*` to `Compare` and get rid of `Compare` prefix from `FloatComparisonMode`. 08/22/2017 - Replace `Span` overloads by `ref T` overloads. 09/01/2017 - Minor changes from API code review. " +22941 area-System.Drawing Clean up path validation related issues in System.Drawing.Common There were several places in the .NET Framework codebase for System.Drawing which called `IntSecurity.DemandReadFileIO(string);`. On first glance, this looks to be a CAS-related call, which isn't interesting in .NET Core. What isn't obvious is that this also ends up calling `Path.GetFullPath` on the string passed in, and that call may throw argument validation exceptions. If the path is `null`, for example, the security demand will result in an ArgumentNullException. These calls were omitted from the .NET Core version when I trimmed out all of the security demands. I've added these back, and fixed up several test cases which validated the behavior, and were previously disabled. Path.GetFullPath in .NET Core now correctly sets the `ParamName` property on its ArgumentException, so the assertions have been augmented to expect that. There were several tests which also expected some methods to result in a `PathTooLongException` being thrown from `Path.GetFullPath`. However, .NET Core no longer eagerly throws that exception from `Path.GetFullPath`. I have removed those test cases. @hughbe @KostaVlev +22943 area-System.Net BufferBuilder: Avoid unnecessary char[] and byte[] allocations Use `GetByteCount` and the overload of `GetBytes` that avoids the unnecessary `char[]` and `byte[]` allocations. +22944 area-Infrastructure Add retry to PDB conversion official build step "This brings in https://github.com/dotnet/buildtools/pull/1623, which adds a retry to the official build step that converts Portable PDBs to Windows PDBs. This will fix an occasional build error in the ""Symbol Publish"" leg: https://github.com/dotnet/core-eng/issues/1273." +22946 area-System.Net HttpDateParse: Avoid unnecessary char[] allocation and cleanup Avoid calling `ToCharArray` and just operate on the string directly to avoid the unnecessary `char[]` allocation. Also, cleaned the formatting and naming in the file while making changes here. cc: @davidsh, @CIPop, @Priya91 +22949 area-Infrastructure How to build self-contained app on archlinux? https://github.com/dotnet/corefx/blob/master/pkg/Microsoft.NETCore.Platforms/runtime.json I can not find any define in runtime.json but i can really run dotnet run to exec my app. I read full https://docs.microsoft.com/en-us/dotnet/core/deploying/deploy-with-cli But not find how to build on archlinux would you please add a archlinux.x64 to runtime.json? +22952 area-System.Net "Test: System.Net.WebSockets.Client.Tests.CloseTest/CloseOutputAsync_ClientInitiated_CanReceive_CanClose failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Net.WebSockets.Client.Tests.CloseTest/CloseOutputAsync_ClientInitiated_CanReceive_CanClose(server: ws://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx)` has failed. Assert.Equal() Failure\r Expected: 17\r Actual: 0 Stack Trace: at System.Net.WebSockets.Client.Tests.CloseTest.d__7.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170804.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170804.01/workItem/System.Net.WebSockets.Client.Tests/analysis/xunit/System.Net.WebSockets.Client.Tests.CloseTest~2FCloseOutputAsync_ClientInitiated_CanReceive_CanClose(server:%20ws:~2F~2Fcorefx-net.cloudapp.net~2FWebSocket~2FEchoWebSocket.ashx) +22953 area-System.IO "Test: System.IO.Tests.DirectoryInfo_Delete_bool/RecursiveDelete_DeepNesting failed with ""System.IO.PathTooLongException""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.DirectoryInfo_Delete_bool/RecursiveDelete_DeepNesting` has failed. System.IO.PathTooLongException : The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters. Stack Trace: at System.IO.PathHelper.GetFullPathName() at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths) at System.IO.Path.GetFullPathInternal(String path) at System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost) at System.IO.Tests.Directory_Delete_str_bool.RecursiveDelete_DeepNesting() in E:\A\_work\398\s\corefx\src\System.IO.FileSystem\tests\Directory\Delete.cs:line 276 Build : Master - 20170804.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Windows.10.Amd64.Core-x86 - Debug - Windows.10.Amd64-x86 - Debug - Windows.10.Amd64.Core-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170804.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.DirectoryInfo_Delete_bool~2FRecursiveDelete_DeepNesting +22956 area-System.Net "System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandlerTest.PostAsync_RedirectWith302_LargePayload failed with ""System.OperationCanceledException"" in CI" Failed test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandlerTest.PostAsync_RedirectWith302_LargePayload Configuration: OuterLoop_netcoreapp_ubuntu14.04_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu14.04_debug/131/testReport/System.Net.Http.Functional.Tests/ManagedHandler_HttpClientHandlerTest/PostAsync_RedirectWith302_LargePayload/ MESSAGE: ~~~ System.OperationCanceledException : The operation was canceled. ~~~ STACK TRACE: ~~~ at System.Net.Http.HttpClient.HandleFinishSendAsyncError(Exception e, CancellationTokenSource cts) in /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu14.04_debug/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 508 at System.Net.Http.HttpClient.d__58.MoveNext() in /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu14.04_debug/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 463 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__83.MoveNext() in /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu14.04_debug/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs:line 1582 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__82.MoveNext() in /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu14.04_debug/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs:line 1566 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +22957 area-System.Runtime Expose an `Unsafe.CallIndirect` method. "### Rationale Today, in C#, you can only invoke an unmanaged function pointer by first calling `Marshal.GetDelegateForFunctionPointer` and then invoking the resulting delegate that is created. This not only comes with the increased overhead of the call (`Marshal.GetDelegateForFunctionPointer`) itself, but it also incurs a heap allocation and a 4-6x memory increase, not including internal runtime allocations/overhead -- the `MulticastDelegate` type has an `object` and an `IntPtr` field and the base `Delegate` type itself has two `object` and two `IntPtr` fields -- Invoking the method also has some increased overhead as it goes through the `Delegate.Invoke` call rather than as a direct invocation. The C# language has planned support for `static delegates` in the future (https://github.com/dotnet/csharplang/blob/c5de26f52019ca0e1e79d88584f75bfe530ee986/proposals/static-delegates.md), but those may still be a way off and could potentially not come at all. Other languages may also face similar issues if they do not provide equivalent support. ### Proposal We should expose a new method on the `System.Runtime.CompilerServices.Unsafe` type that functions as an equivalent to the `calli` instruction. ```C# namespace System.Runtime.CompilerServices { public static class Unsafe { // Potential other names include: Call, Invoke, InvokeIndirect, Calli, etc... public static TResult CallIndirect(IntPtr ptr, params object[] args); } } ``` The runtime should treat this as an equivalent to the `calli` instruction with a signature matching `TDelegate`. The runtime should validate that `TResult`/`args` matches the return/input type of `TDelegate`. ### Other Thoughts Using generics means that pointers are harder to use, there would have to be support to interpret `IntPtr` and `UIntPtr` args (those passed to `CallIndirect`) as equivalent to a pointer (as declared for the corresponding field in `TDelegate`). The current proposal (using `params object[]`) means boxing for arguments, maybe having explicit ``, `` overloads would be better? * I can provide some details for the min/max/avg number of args the interop delegates take (at least for DirectX). I think, for either case, `out` and `ref` would not be readily supported unless `Unsafe.AsRef` were used internally (also having special handling to interpret `IntPtr` and `UIntPtr` as `ref` equivalents). ### Example Usage A user might have a manually authored interop type such as: ```C# [Guid(""7B7166EC-21C7-44AE-B21A-C9AE321AE369"")] unsafe public /* blittable */ struct IDXGIFactory { #region Fields public readonly Vtbl* lpVtbl; #endregion #region Delegates [SuppressUnmanagedCodeSecurity] [UnmanagedFunctionPointer(CallingConvention.ThisCall, BestFitMapping = false, CharSet = CharSet.Unicode, SetLastError = false, ThrowOnUnmappableChar = false)] [return: ComAliasName(""HRESULT"")] public /* static */ delegate int EnumAdapters( [In] IDXGIFactory* This, [In, ComAliasName(""UINT"")] uint Adapter, [Out] IDXGIAdapter** ppAdapter ); [SuppressUnmanagedCodeSecurity] [UnmanagedFunctionPointer(CallingConvention.ThisCall, BestFitMapping = false, CharSet = CharSet.Unicode, SetLastError = false, ThrowOnUnmappableChar = false)] [return: ComAliasName(""HRESULT"")] public /* static */ delegate int MakeWindowAssociation( [In] IDXGIFactory* This, [In, ComAliasName(""HWND"")] void* WindowHandle, [In, ComAliasName(""UINT"")] uint Flags ); [SuppressUnmanagedCodeSecurity] [UnmanagedFunctionPointer(CallingConvention.ThisCall, BestFitMapping = false, CharSet = CharSet.Unicode, SetLastError = false, ThrowOnUnmappableChar = false)] [return: ComAliasName(""HRESULT"")] public /* static */ delegate int GetWindowAssociation( [In] IDXGIFactory* This, [Out, ComAliasName(""HWND"")] void** pWindowHandle ); [SuppressUnmanagedCodeSecurity] [UnmanagedFunctionPointer(CallingConvention.ThisCall, BestFitMapping = false, CharSet = CharSet.Unicode, SetLastError = false, ThrowOnUnmappableChar = false)] [return: ComAliasName(""HRESULT"")] public /* static */ delegate int CreateSwapChain( [In] IDXGIFactory* This, [In] IUnknown* pDevice, [In] DXGI_SWAP_CHAIN_DESC* pDesc, [Out] IDXGISwapChain** ppSwapChain ); [SuppressUnmanagedCodeSecurity] [UnmanagedFunctionPointer(CallingConvention.ThisCall, BestFitMapping = false, CharSet = CharSet.Unicode, SetLastError = false, ThrowOnUnmappableChar = false)] [return: ComAliasName(""HRESULT"")] public /* static */ delegate int CreateSoftwareAdapter( [In] IDXGIFactory* This, [In, ComAliasName(""HMODULE"")] void* Module, [Out] IDXGIAdapter** ppAdapter ); #endregion #region Structs public /* blittable */ struct Vtbl { #region Fields public IDXGIObject.Vtbl BaseVtbl; public IntPtr EnumAdapters; public IntPtr MakeWindowAssociation; public IntPtr GetWindowAssociation; public IntPtr CreateSwapChain; public IntPtr CreateSoftwareAdapter; #endregion } #endregion } ``` In order to invoke `EnumAdapters` today, the user would code something similar to: ```C# var EnumAdapters = Marshal.GetDelegateForFunctionPointer(pFactory->lpVtbl->EnumAdapters); IDXGIAdapter* pAdapter; for (var adapterIndex = 0u; DXGI_ERROR_NOT_FOUND != EnumAdapters(pFactory, adapterIndex, &pAdapter); adapterIndex++) { // Check if the adapter supports D3D12 } ``` Under the proposal, someone would now declare: ```C# IDXGIAdapter* pAdapter; for (var adapterIndex = 0u; DXGI_ERROR_NOT_FOUND != Unsafe.CallIndirect(pFactory->lpVtbl->EnumAdapters, pFactory, adapterIndex, pAdapter); adapterIndex++) { // Check if the adapter supports D3D12 } ```" +22963 area-System.Security [release/1.1] Add newer shim package reference for Algorithms tests The Helix tests aren't seeing fixes made for macOS 10.13 because they are still using the 4.3.0 (RTM) native assets. This indicates that the servicing build is required. +22964 area-System.Globalization "Core test failure: System.Globalization.Tests.RegionInfoPropertyTests.DisplayName(name: \""en-US\"", expected: \""United States\"")" "If DisplayLanguage is not en-US the following test is failing: ``` System.Globalization.Tests.RegionInfoPropertyTests.DisplayName(name: \""en-US\"", expected: \""United States\"") [FAIL ] Assert.Equal() Failure  (pos 0) Expected: United States Actual: Vereinigte Staaten  (pos 0) Stack Trace: D:\git\corefx\src\System.Globalization\tests\RegionInfo\RegionInfoTests.Properties.cs(37,0): at System.Globa lization.Tests.RegionInfoPropertyTests.DisplayName(String name, String expected) ``` In my case I had just switched my display language to German and the test started to fail. The test should either be conditioned to only run when display language is en-US or be disabled completely. The related production code: https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Globalization/RegionInfo.cs#L211 @tarekgh " +22965 area-Serialization Exception when serialize class contains Dictionary and DateTimeOffset via DataContractSerializer "@jiemon commented on [Fri Aug 04 2017](https://github.com/dotnet/core/issues/789) I try serialize via DataContractSerializer simple class by example: ``` public class SimpleExampleClass2 { private Dictionary _attributes1; public Dictionary Attributes1 => _attributes1; public DateTimeOffset TestDate { get; set; } } ``` Serialization code: ``` var test = new SimpleExampleClass2() { TestDate = DateTimeOffset.Now }; var ser = new DataContractSerializer(typeof(SimpleExampleClass2)); MemoryStream memoryStream = new MemoryStream(); ser.WriteObject(memoryStream, test); memoryStream.Seek(0, SeekOrigin.Begin); return File(memoryStream, ""application/xml"", $""test.xml""); ``` But on line ""ser.WriteObject(memoryStream, test)"" I get exception: > InvalidDataContractException: Type 'System.Runtime.Serialization.DateTimeOffsetAdapter' cannot be serialized. Consider marking it with the DataContractAttribute attribute, and marking all of its members you want serialized with the DataMemberAttribute attribute. If the type is a collection, consider marking it with the CollectionDataContractAttribute. See the Microsoft .NET Framework documentation for other supported types. Is this bug in DataContractSerializer? --- @Petermarcu commented on [Fri Aug 04 2017](https://github.com/dotnet/core/issues/789#issuecomment-320271980) @zhenlan @ViktorHofer @danmosemsft --- @ViktorHofer commented on [Fri Aug 04 2017](https://github.com/dotnet/core/issues/789#issuecomment-320273333) It's not related to binary serialization with BinaryFormatter. --- @Petermarcu commented on [Fri Aug 04 2017](https://github.com/dotnet/core/issues/789#issuecomment-320274307) @zhenlan Any thoughts? --- @zhenlan commented on [Fri Aug 04 2017](https://github.com/dotnet/core/issues/789#issuecomment-320295733) + @shmao " +22966 area-System.IO Serial port tests blocking when loopback is present with USB seria ports This is not related to code in corefx since I can repro it in Desktop framework. However, it makes the coverage of my local tests for serial ports very limited. The issue is that after certain tests the code trying to close the port gets blocked on closing the handle (it proceeds if I unplug the USB). I suspect that is related to the way that the tests are using threads to read/write and force exceptions to be throw. I tried with the driver automatically installed (2.12.24.0) latest from http://www.ftdichip.com/Drivers/VCP.htm (2.12.26.0) but no change. @JeremyKuhne @willdean let me know if you guys have any idea about this issue. For now blocks me from getting good coverage for adding serial ports to UWP (see #22887). +22967 area-System.Security Make OpenSSL verify self-issued signature integrity to match Windows Windows checks signatures on self-issued certificates (to prove they are self-signed), but OpenSSL doesn't by default, opting to save on the CPU. Before this change the behavior was: * Windows: NotSignatureValid * macOS: UntrustedRoot * Linux: UntrustedRoot With this change it becomes * Windows: NotSignatureValid * macOS: UntrustedRoot * Linux: NotSignatureValid | UntrustedRoot While additional work could be done to not report UntrustedRoot for Linux chains, it doesn't seem as worthwhile. macOS will continue not reporting NotSignatureValid, because there's no API to allow changing the behavior. Fixes #21622. +22968 area-System.Reflection Test class SRE GenericTypeParameterBuilderSetGenericParameterAttributes is wrong The `SetGenericParameterAttributes` test calls `GenericTypeParameterBuilder:SetGenericParameterAttributes` and then immediately accesses the `GenericParameterAttributes` property of the builder. According to https://msdn.microsoft.com/en-us/library/system.reflection.emit.generictypeparameterbuilder.setgenericparameterattributes(v=vs.110).aspx > Special constraints cannot be retrieved using methods of the GenericTypeParameterBuilder class. Once you have created the generic type that contains the type parameter, you can use its Type object to reflect the type parameters and their constraints. To get the type parameters of a completed generic type, use the Type.GetGenericArguments method. To get the special constraints for each type parameter, use the Type.GenericParameterAttributes property. So the test should first call `CreateType` on the generic class and then retrieve the parameter attributes. The test in question: https://github.com/dotnet/corefx/blob/master/src/System.Reflection.Emit/tests/GenericTypeParameterBuilder/GenericTypeParameterBuilderSetGenericParameterAttributes.cs#L28 +22969 area-Infrastructure [RHEL6] Port to release/2.0.0 Enable RHEL6 and CentOS 6 RID detection This change adds RHEL6 and CentOS 6 RID detection to src/Native/build-native.sh. These distros don't have the /etc/os-release file and so we need to use another source - the /etc/redhat-release file +22970 area-Infrastructure [RHEL6] Port to release/2.0.0 Add RHEL 6 official RID +22971 area-Infrastructure Add RHEL 6 official RID +22972 area-System.IO Consider providing an API like GetRandomFileName that also creates an empty file "Currently GetTempFileName() creates a file with a random file name but has the limit of ~65K files > The GetTempFileName method will raise an IOException if it is used to create more than 65535 files without deleting previous temporary files. GetRandomFileName() on the other hand, provides more entropy but > Unlike GetTempFileName, GetRandomFileName does not create a file. FYI: https://github.com/aspnet/Coherence-Signed/issues/510 An API that provides the ""cryptographically strong, random"" file name with as much as entropy as GetRandomFileName() but also creates a temporary file like GetTempFileName() can be useful. cc @Eilon " +22973 area-System.Net Update UAP test regarding 'TRACE' method Uap platform doesn't support the 'TRACE' verb. After discussion with Wininet team, the method is explicitly not allowed. So, removing the activeissue and just skipping that part of the test. Also made some nit fixes as part of delayed feedback from other PRs. Fixes #22161 +22974 area-Serialization DCS_TypeWithCollectionAndDateTimeOffset_ListIsNull Failed on Uapaot The test fails on uapaot when using UWP toolchain. We need to port the fix of #22975 to SG. +22975 area-Serialization Fixed Issue with DCS Serializing Get-Only Collection. Fixed Issue with DCS Serializing Get-Only Collection. Fix #22965 +22976 area-System.IO Add FSW file/directory event filtering to Linux Because we are using inotify as the underlying implemenation for FileSystemWatcher on Linux, we can not only raise events for files or only raise events for directories, so we have to allow events for both to be raised regardless of NotifyFilters. However, inotify does tell us that if an event occurred on a directory or on a file after the event has been raised. Since this is after filtering has already been done, we forward that event regardless of the NotifyFilters. This commit passes NotifyFilters to the RunningInstance that forwards the events and adds in some manual filtering after the fact. It isn't quite the same as filtering through the native call, but it does bring us closer to the Windows behavior. cc: @JeremyKuhne @stephentoub @danwalmsley resolves https://github.com/dotnet/corefx/issues/21934 +22977 area-System.Net Add HttpListenerWebSocketContext.WebSocket.Receive/Close throw ObjectDisposedException after disposal in managed implementation We should add a check `ThrowIfDisposed()` before checking for InvalidState in managed implementation. Fix: #20395 Close: #22057 Removed unused ContextHelper in HttpRequestStreamTests test class. +22978 area-System.Globalization Set CurrentUICulture before retrieving DisplayName in RegionInfo and isolate static thread changes Relates to https://github.com/dotnet/corefx/issues/22964 Will pass in CI as all the machines are currently set to en-US but will still fail on machines with different cultures like de-AT (my tested one). Requires a coreclr change from @tarekgh. +22979 area-Infrastructure No line numbers for test failures on Windows "This is happening in the test runs we do on Windows Server 2016 Core. It makes debugging problems harder than it should be. The official runs we do seem to all be ""Release"" configuration, but even when I manually copy a Debug runtime and tests into a VM, I still don't get line numbers." +22980 area-System.Collections Use expression-bodied members throughout ImmutableList This is still part of my old PR #15382 for `ImmutableList`; I am porting all of the style-only changes I made during that PR so there will be less noise while reviewing the actual changes. Most of the style changes I made were converting members to use expression-bodied form. This is a follow-up to https://github.com/dotnet/corefx/pull/22842. /cc @AArnott, @safern +22982 area-System.Drawing Fix missing ISerializable interface on some types in System.Drawing Fix missing ISerializable interface on some types in System.Drawing. Fixes #22599. +22985 area-Microsoft.CSharp Microsoft.CSharp binders' argument infos in arrays rather than lists Extra functionality of lists is not used. +22986 area-System.ComponentModel Conditional/scoped validation support in data annotations Hi, I'd like to request to extend the `ValidationAttribute` by adding a few properties that will enable conditional validation. I love the idea of validating by attributes, but it would be nice if we could extend the validation attribute a little bit. The downside of attributes, is that there are no generics, and no complex parameters so there is no nice way to extend the current behavior. So please add a few properties to the abstract `ValidationAttribute` class, there a many ways to think of how to gather the condition. Some of which are: - Expose a set of properties `PropertyName` and `IsEqualTo` that enables validation only when a property with the specified name equals the specified value. - Have the class implement an interface `IShouldValidate` etc. - Make it easier to attach/unattach metadata types for validation - Add a generic methods to `Validator` class, so it's easier to validate using `IValidatable` For example: `public ValidationResult ValidateValue(object value, Func setup = null);` Example usage (within `IValidatableObject.Validate`): yield return Validator.Validate(this.Name); (returns `ValidationResult`); yield return Validator.Validate(this.Age, () => new RangeAttribute(10, 20)); Would be also interesting to hear about more ideas and workarounds too. +22988 area-System.Net Add Span-based overloads to System.Net.Sockets Span-based synchronous overloads of: - Socket.Receive/Send - NetworkStream.Read.Write Contributes to https://github.com/dotnet/corefx/issues/22608 Contributes to https://github.com/dotnet/corefx/issues/22387 cc: @geoffkizer, @cipop, @davidsh, @KrzysztofCwalina (Buffer-based async overloads will be done later once `Buffer` is available.) +22992 area-System.Console Support for Console.MoveBufferArea() on Linux & Mac Is there a plan to support Console.MoveBufferArea() on Linux & Mac? Currently it throws a PlatformNotSupportedException on these platforms. Without this feature it seems to me not possible to write in the bottom right corner of the console without losing the first line of the buffer (due to the resulting jump to the next line of the cursor), which is not very useful for text user interfaces. +22996 area-System.Net HttpClient with a client certificate SSL Connection Error "I'm attempting to connect to a kubernetes api within the cluster with C#. I can do this with the Python and Go libraries, but would like to do it with C#. I would imagine what I'm doing will become more common as kubernetes grows in popularity and C# becomes more popular in that world. I'm getting some somewhat generic errors and I'm sorta stumped on how to debug this further and could use some pointers if anyone is able. The following curl commands works. ```bash curl -v --cacert /var/run/secrets/kubernetes.io/serviceaccount/ca.crt -H ""Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)"" https://kubernetes/api/v1/services ``` Here is my C# attempt at trying to replicate the above ```csharp private HttpClient GetClient() { const string certPath = ""/var/run/secrets/kubernetes.io/serviceaccount/ca.crt""; const string tokenPath = ""/var/run/secrets/kubernetes.io/serviceaccount/token""; const string baseAddress = ""https://kubernetes/""; var handler = new HttpClientHandler { ClientCertificateOptions = ClientCertificateOption.Manual, SslProtocols = SslProtocols.Tls12 }; handler.ClientCertificates.Add( new X509Certificate2(certPath)); var token = File.ReadAllText(tokenPath); var httpClient = new HttpClient(handler) { BaseAddress = baseAddress, DefaultRequestHeaders = { {""Authorization"", $""Bearer {token}""} } }; return httpClient; } public void Test() { var client = GetClient(); var result = client.GetStringAsync(""api/v1/services"").GetAwaiter().GetResult(); Console.WriteLine(result); } ``` This is running in the ``microsoft/aspnetcore:1.1`` docker image. The exception that's being thrown isn't all that helpful to me ``` System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.CurlException: SSL connect error at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__32`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` I've seen a couple issues about things (possibly?) similar https://github.com/dotnet/corefx/issues/12871, and then https://github.com/dotnet/corefx/issues/12962; But I don't really know enough about SSL or this kubernetes certificate i'm using to know if I'm having the same issue or if I'm just configuring the ``HttpClient`` wrong. The certificate at ``/var/run/secrets/kubernetes.io/serviceaccount/ca.crt`` looks something like this (I don't know what kind of certificate this is, but maybe somebody else does) ``` -----BEGIN CERTIFICATE----- MIIC2DCCAcCgAwIBAgIRAKKWzHRtGNDE41/XVtJZre0wDQYJKoZIhvcNAQELBQAw DqzylX68MAVdg+LF -----END CERTIFICATE----- ``` I""ve been stuck on this for a couple days now trying random variations of the above and trying to look at what the Go Client library does to get this to work (as far as I can tell..nothing really special). Hoping someone here can push me in the right direction to get this either working or figured out why it's not working. Thanks" +22997 area-System.Runtime Disable System.Runtime.Extensions tests expected to fail on Server Core • In one case ShGetKnownFolderPath returns a different value. It’s kind of bogus API on these platforms so I suggest just disabling it for Server Core. https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170726.03/workItem/System.Runtime.Extensions.Tests https://github.com/dotnet/corefx/issues/22656 +22998 area-System.Net SslStream Improvements for Unix Performance "#21371 Changed the OpenSsl code to use a ""custom"" bio that uses the buffers from managed code directly rather than using an interim MemoryBio to stop extra copying. This alone didn't provide much performance however I have modified the encrypt side to write directly to the output buffer, if the content is too large it will then send that to the socket and return to get more of the frame/frames. This should setup the future for improvements on the read side and to react to Buffer/Span changes. The performance diff I see on my hardware using the Techempower plaintext on Ubuntu 14.04 with SSL turned on is as below these are unconfirmed numbers. There is a clear convergence of the new and old code as the send sizes get bigger, the numbers don't include the HTTP Header, so the 11 bytes == Hello World. The tests use 256 connections, and pipelining with a depth of 16 ![2017-08-06 22_28_44-new test results](https://user-images.githubusercontent.com/16406969/29007252-b9162fa6-7af6-11e7-9fdf-50431c4b4c94.png) " +22999 area-Microsoft.CSharp Remove code in Microsoft.CSharp related to extension and external methods * Remove paths for extension methods. Dynamic doesn't support extension methods, except for static-style calls, so `isExtension` is never true. Remove it and all paths that depend on it being true. * Remove error conditions relating to extension methods. Demonstrated unreachable. Contributes to #22470 * Remove MethodSymbol.isExternal Never set to true. Remove it and all paths depending on it. +23001 area-System.Drawing "Test: System.Drawing.Printing.Tests.PrintDocumentTests/Ctor_Default_Success failed with ""System.Drawing.Printing.InvalidPrinterException : No printers are installed.""" Opened on behalf of @Jiayili1 The test `System.Drawing.Printing.Tests.PrintDocumentTests/Ctor_Default_Success` has failed. System.Drawing.Printing.InvalidPrinterException : No printers are installed. Stack Trace: at System.Drawing.Printing.PrinterSettings.GetHdevmodeInternal(String printer) at System.Drawing.Printing.PageSettings.get_Bounds() at System.Drawing.Printing.Tests.PrintDocumentTests.AssertDefaultPageSettings(PageSettings pageSettings) at System.Drawing.Printing.Tests.PrintDocumentTests.Ctor_Default_Success() Build : Master - 20170807.01 (Core Tests) Failing configurations: - Windows.10.Amd64.Core-x64 - Release - Windows.10.Amd64.Core-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170807.01/workItem/System.Drawing.Common.Tests/analysis/xunit/System.Drawing.Printing.Tests.PrintDocumentTests~2FCtor_Default_Success +23002 area-System.Runtime "Test: System.Tests.EnvironmentTests/GetFolderPath_Windows failed with ""Xunit.Sdk.NotEmptyException""" Opened on behalf of @Jiayili1 The test `System.Tests.EnvironmentTests/GetFolderPath_Windows(folder: CDBurning)` has failed. Assert.NotEmpty() Failure Stack Trace: at System.Tests.EnvironmentTests.GetFolderPath_Windows(SpecialFolder folder) Build : Master - 20170807.01 (Core Tests) Failing configurations: - Windows.10.Amd64.Core-x64 - Release - Windows.10.Amd64.Core-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170807.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.EnvironmentTests~2FGetFolderPath_Windows(folder:%20CDBurning) +23003 area-System.Runtime "Test: System.Tests.GetEnvironmentVariable/GetEnumerator_LinqOverDictionaryEntries_Success failed with ""System.IO.IOException : No more data is available""" Opened on behalf of @Jiayili1 The test `System.Tests.GetEnvironmentVariable/GetEnumerator_LinqOverDictionaryEntries_Success(target: User)` has failed. System.IO.IOException : No more data is available.\r Stack Trace: at Microsoft.Win32.RegistryKey.Win32Error(Int32 errorCode, String str) at Microsoft.Win32.RegistryKey.GetValueNames() at System.Environment.GetRegistryKeyNameValuePairs(RegistryKey registryKey) at System.Environment.GetEnvironmentVariables(EnvironmentVariableTarget target) at System.Tests.GetEnvironmentVariable.GetEnumerator_LinqOverDictionaryEntries_Success(Nullable`1 target) in E:\A\_work\398\s\corefx\src\System.Runtime.Extensions\tests\System\Environment.GetEnvironmentVariable.cs:line 175 Build : Master - 20170807.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64.Core-x86 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170807.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.GetEnvironmentVariable~2FGetEnumerator_LinqOverDictionaryEntries_Success(target:%20User) +23005 area-System.Linq Linq Permutation Cross and Multiple variable for Zip and Join I would like to have linq `Zip` and `Join` can take more than 2 collections. May be up to 8 ```C# public static IEnumerable Zip(this IEnumerable c0,IEnumerable c1,IEnumerable c2,IEnumerable c3,Func func) public static IEnumerable Join(this IEnumerable c0,IEnumerable c1,IEnumerable c2,IEnumerable c3,Func outer,Func inner1,Func inner2,Func inner3,Func func) ``` And I would like to suggest addition function `Cross` (or any other name) that would yield permutations of collections ```C# public static IEnumerable Cross(this IEnumerable c0,IEnumerable c1,Func func) { foreach(var v0 in c0) foreach(var v1 in c1) yield return func(v0,v1); } var bools = new[] { false,true }; var ints = new[] { 0,1 }; bools.Cross(ints,(b,i) => (b,i)); // yield (false,0) (false,1) (true,0) (true,1) ``` Also `Cross` should has overload of multiple collections like `Zip` +23006 area-Infrastructure "Test: System.Globalization.Tests.RegionInfoPropertyTests/CurrentRegion failed with ""System.IO.IOException : RemoteExecutorConsoleApp test app isn't present in the test runtime directory""" Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.RegionInfoPropertyTests/CurrentRegion` has failed. System.IO.IOException : RemoteExecutorConsoleApp test app isn't present in the test runtime directory. Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, $RemoteInvokeOptions options, Boolean pasteArguments) in E:\A\_work\441\s\corefx\src\CoreFx.Private.TestUtilities\src\System\Diagnostics\RemoteExecutorTestBase.Process.cs:line 59 at System.Globalization.Tests.RegionInfoPropertyTests.CurrentRegion() in E:\A\_work\441\s\corefx\src\System.Globalization\tests\RegionInfo\RegionInfoTests.Properties.cs:line 17 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170807.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170807.01/workItem/System.Globalization.Tests/analysis/xunit/System.Globalization.Tests.RegionInfoPropertyTests~2FCurrentRegion +23007 area-System.Runtime "Test: System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests/Roundtrip_Exceptions failed with ""System.Runtime.Serialization.SerializationException""" Opened on behalf of @Jiayili1 The test `System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests/Roundtrip_Exceptions(expected: System.AggregateException: Aggregate exception message (Exception message) ---> System.Excepti...` has failed. System.Runtime.Serialization.SerializationException : Type '$BlockedFromReflection_0_6907734b' in Assembly 'System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable. Stack Trace: at System.Runtime.Serialization.FormatterServices.InternalGetSerializableMembers(Type type) in E:\A\_work\441\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\FormatterServices.cs:line 82 at System.Runtime.Serialization.FormatterServices.<>c.b__5_0($MemberHolder mh) in E:\A\_work\441\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\FormatterServices.cs:line 177 at System.Func$2.Invoke(Int32 arg) in Invoke:line 16707566 at System.Collections.Concurrent.ConcurrentDictionary$2.GetOrAdd(__Canon key, Func$2<__Canon,__Canon> valueFactory) in E:\A\_work\441\s\corefx\src\System.Collections.Concurrent\src\System\Collections\Concurrent\ConcurrentDictionary.cs:line 989 at System.Runtime.Serialization.FormatterServices.GetSerializableMembers(Type type, StreamingContext context) in E:\A\_work\441\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\FormatterServices.cs:line 175 at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitMemberInfo() in E:\A\_work\441\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryObjectInfo.cs:line 242 at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, $ISurrogateSelector surrogateSelector, StreamingContext context, $SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, $ObjectWriter objectWriter, $SerializationBinder binder) in E:\A\_work\441\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryObjectInfo.cs:line 115 at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize(Object obj, $ISurrogateSelector surrogateSelector, StreamingContext context, $SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, $ObjectWriter objectWriter, $SerializationBinder binder) in E:\A\_work\441\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryObjectInfo.cs:line 70 at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write($WriteObjectInfo objectInfo, $NameInfo memberNameInfo, $NameInfo typeNameInfo) in E:\A\_work\441\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryObjectWriter.cs:line 174 at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, $BinaryFormatterWriter serWriter, Boolean fCheck) in E:\A\_work\441\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryObjectWriter.cs:line 98 at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Boolean check) in E:\A\_work\441\s\corefx\src\System.Runtime.Serialization.Formatters\src\System\Runtime\Serialization\Formatters\Binary\BinaryFormatter.cs:line 87 at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterHelpers.Clone(__Canon obj) in E:\A\_work\441\s\corefx\src\Common\tests\System\Runtime\Serialization\Formatters\BinaryFormatterHelpers.cs:line 21 at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterHelpers.AssertRoundtrips(__Canon expected, __Canon[] additionalGetters) in E:\A\_work\441\s\corefx\src\Common\tests\System\Runtime\Serialization\Formatters\BinaryFormatterHelpers.cs:line 39 at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.Roundtrip_Exceptions(Exception expected) in E:\A\_work\441\s\corefx\src\System.Runtime.Serialization.Formatters\tests\BinaryFormatterTests.cs:line 168 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetVI(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170807.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170807.01/workItem/System.Runtime.Serialization.Formatters.Tests/analysis/xunit/System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests~2FRoundtrip_Exceptions(expected:%20System.AggregateException:%20Aggregate%20exception%20message%20(Exception%20message)%20---%3E%20System.Excepti... +23009 area-System.Net HttpClient file descriptors leak running on docker I was doing some .NET CORE vs Golang performance testing and noticed that HttpClient keeps a lot of HTTP connections in TIME_WAIT state. I'm using Docker `microsoft/dotnet:2.0.0-preview2-sdk` image. 1. Running .NET CORE for 100s I got about **3000** HTTP connections in TIME_WAIT state. 2. Running Golang for 100s I got only 4 HTTP connections in TIME_WAIT state. Is this is a bug in HttpClient or this is normal behaviour? All source code can be found here https://github.com/anjmao/netcore-vs-golang with instructions how to run it. +23010 area-System.Security Add RandomNumberGenerator.GetBytes(Span) overload Fixes https://github.com/dotnet/corefx/issues/22690 cc: @bartonjs +23012 area-System.Net Repeated http requests get stuck and cause client-side timeout _From @myarichuk on August 7, 2017 9:37_ Repeated http calls get stuck and timeout after one or two requests when executed in a 4.6.1 project that references a netstandard 2.0 project. On my end, I've reproduced it here --> https://github.com/myarichuk/TestWebRequestGettingStuck (the steps to reproduce are in the readme) It reproduces each run reliably. It looks like a bug. _Copied from original issue: dotnet/coreclr#13247_ +23013 area-System.ComponentModel Add DesignerOptionService tests +23014 area-Infrastructure Automatically harvest dependencies for .NET Framework compat meta-package After https://github.com/dotnet/corefx/pull/22665 the updating and validation of the Microsoft.NETFramework.Compatibility meta-package is all manual. We should provide some mechanism to automatically consume the right set of packages. We should at a minimum provide a mechanism to validate that the package list and versions being referenced are correct. +23015 area-Infrastructure Move queues to the PB_TargetQueue parameter replacing ',' for '+'. This fixes: https://github.com/dotnet/core-eng/issues/1331 +23016 area-System.Net Send secure cookies with WSS upgrade request. Fixes: #22551 Adds WSS to the secure protocol check of CookieContainer so that cookies are sent along with the initial HTTP upgrade request used in the handshake of a secure WebSocket connection. Also modifies the current Websocket ConnectAsync_CookieHeaders_Success test to check that secure cookies are sent when they should be. +23018 area-Infrastructure Increment version to 2.0.1-servicing @weshaggard PTAL - is there a StabilizeVersion equivalent I need to set here? +23019 area-System.Memory System.Memory: how does the Xamarin.Mac dependency end up in the nuspec? "I just looked at the System.Memory package on https://www.nuget.org/packages/System.Memory and wondered why it has an explicit entry for Xamarin.Mac in the nuspec: ``` ``` I looked at the csproj's in corefx but couldn't figure out how this ends up there. @weshaggard ?" +23020 area-Microsoft.CSharp Microsoft.CSharp treats type name collisions poorly. Microsoft.CSharp cannot handle the case of two types which have the same full name being used in the same operation. Despite noting it as possible in a comment, the error thrown is `RuntimeBinderInternalCompilerException` and an assertion fails in debug mode. A `RuntimeBinderException` with an explanatory message should be thrown. +23021 area-Microsoft.CSharp Have Microsoft.CSharp treat type name collisions better. Throw `RuntimeBinderException` with an explanatory message instead of `RuntimeBinderInternalCompilerException` and assertion failure. Fixes #23020 +23022 area-System.Security Coreclr crash due to double freeing Openssl handles [1.0.x] Tracking issue to backport [corefx/issues/11107](https://github.com/dotnet/corefx/issues/11107) to 1.0.x. +23023 area-System.Security Simplify X509Chain building with OpenSSL [1.0.x/1.1.x] Tracking issue to backport [corefx/pull/19017](https://github.com/dotnet/corefx/pull/19017) to 1.0.x and 1.1.x. +23024 area-System.Xml "XDeclaration failed to display """" when using ToString()" " var xml = new XDocument( new XDeclaration(""1.0"", ""UTF-8"", ""yes""), new XElement(""Envelope"", """") ); It works when you do this. It showed < ? xml version=""1.0"" encoding=""utf-8"" standalone=""yes"" ? > in the text file. xml.Save(@""Xml\foooo.xml""); But it does not work when you do the ToString() object. It did NOT showed < ? xml version=""1.0"" encoding=""utf-8"" standalone=""yes"" ? > in xml string. var debug = xml.ToString(); " +23025 area-System.Diagnostics Add diagnostics to help understand issue This is to help investigate https://github.com/dotnet/corefx/issues/22791 This does not fix anything but will let get information to diagnose the issue. @brianrob +23026 area-System.Security Prevent unnecessary AIA fetches of trusted roots "The ""Simplify X509Chain"" change no longer used userRootCerts or systemRootCerts in FindCandidates. Since the eventual chain build would get them from the trusted path there's not a functional difference, but FindCandidates was doing an AIA fetch for the root certificates so it could complete it locally. This means that a lot of cert chain attempts use the network when they don't need to. So just keep those certs in the scan list to revert the network use regression." +23027 area-System.Net Avoid double dispose() check in ManagedWebSocket and ClientWebSocket From [comment in PR #22977 ](https://github.com/dotnet/corefx/pull/22977#discussion_r131529522): >ManagedWebSocket was originally written for use with ClientWebSocket, which already does such a disposal check: https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/ClientWebSocket.cs#L164 We can wrap the ManagedWebSocket in HttpListener, and do the check in HttpListener instead. [Here is different approach.](https://github.com/dotnet/corefx/pull/22977#discussion_r131724567) +23028 area-Infrastructure Add DiaSymReader to list of included packages in test-runtime depproj. Depproj files do some filtering based on this ItemGroup. By adding this entry here, the native binary for DiaSymReader will be copied into the test shared framework, and we should get line numbers on all Windows runs. @danmosemsft @ericstj +23029 area-System.Drawing Unify implementations for System.Drawing.Pen and related types. I was hitting an intermittent test failure in the System.Drawing.Pens tests. The Unix implementation of Pens uses a pattern like this: ```C# public static Pen Green { get { if (green == null) { green = new Pen(Color.Green); green.isModifiable = false; } return green; } } ``` This is not thread-safe, and there is nothing stopping the underlying field from being assigned multiple times if two threads happen to run initialization code at the same time. I hit very occasional test failures where the same property returns two different values in the span of a test method, and an `Assert.Same` check fails. The Windows implementation already handles caching these variables in a thread-local storage location. I've simply deleted the Unix version of this code and switched the build configuration to use the Windows code. * Move the function imports into the shared Gdiplus.cs file, and remove the duplicated declarations from Gdiplus.Unix.cs and Gdiplus.Windows.cs. * Add basic argument validation into the shared code, so that we throw ArgumentExceptions up front, rather than as a result of a failure code from GDI+. * This change does affect the Windows version, but it should be functionally equivalent to before. +23033 area-System.Runtime Consider adding ArgumentIsNullOrEmptyException and ArgumentIsNullOrWhitespaceException to System Firstly, I tried to research if this had been proposed and did not find an existing issue. Of course, if one exists, please link to existing and close. I am aware that this usage can be captured by `ArgumentOutOfRangeException`, but these cases are so common that the System.String class itself has methods for just these checks, and they can provide a more specific default message when used like: `new ArgumentNullOrEmptyException(nameof(strParmeter));` then `ArgumentNullException` or `ArgumentOutOfRange` does. My proposal is that these would be subclasses of `ArgumentOutOfRangeException`. Of course, the momentum behind just using `ArgumentOutOfRangeException` may be so great to preclude the usefulness of such classes, but I believe the overall use cases they cover is common enough to warrant consideration. +23037 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientHandlerTest/SendAsync_RequestVersion20_ResponseVersion20IfHttp2Supported(server: https://http2.akamai.com/) Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/SendAsync_RequestVersion20_ResponseVersion20IfHttp2Supported(server: https://http2.akamai.com/)` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.CurlException : Operation was aborted by an application callback -------- Assert.Equal() Failure Expected: PartialChain Actual: NotSignatureValid Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in /root/corefx-911209/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 464 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__93.MoveNext() in /root/corefx-911209/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs:line 1874 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- ----- Inner Stack Trace ----- at System.Net.Http.Functional.Tests.HttpClientHandlerTest.<>c.b__93_0(HttpRequestMessage msg, X509Certificate2 cert, X509Chain chain, SslPolicyErrors errors) in /root/corefx-911209/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.cs:line 1867 at System.Net.Http.CurlHandler.SslProvider.VerifyCertChain(SafeX509StoreCtxHandle storeCtx, EasyRequest easy) in /root/corefx-911209/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.SslProvider.cs:line 359 at System.Net.Http.CurlHandler.SslProvider.VerifyCertChain(IntPtr storeCtxPtr, IntPtr curlPtr) in /root/corefx-911209/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.SslProvider.cs:line 264 Build : Master - 20170808.01 (Core Tests) Failing configurations: - Debian.87.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170808.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FSendAsync_RequestVersion20_ResponseVersion20IfHttp2Supported(server:%20https:~2F~2Fhttp2.akamai.com~2F) +23038 area-System.Net "Test: System.Net.WebSockets.Client.Tests.CancelTest/ReceiveAsync_AfterCancellationDoReceiveAsync_ThrowsWebSocketException failed with ""System.ObjectDisposedException""" Opened on behalf of @Jiayili1 The test `System.Net.WebSockets.Client.Tests.CancelTest/ReceiveAsync_AfterCancellationDoReceiveAsync_ThrowsWebSocketException(server: ws://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx)` has failed. Assert.Throws() Failure Expected: typeof(System.Net.WebSockets.WebSocketException) Actual: typeof(System.ObjectDisposedException): Cannot access a disposed object. Object name: 'System.Net.WebSockets.ManagedWebSocket'. Stack Trace: at System.Net.WebSockets.ManagedWebSocket.ThrowIfDisposed() in /Users/buildagent/agent/_work/4/s/corefx/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 1291 at System.Net.WebSockets.ManagedWebSocket.ReceiveAsync(ArraySegment`1 buffer, CancellationToken cancellationToken) in /Users/buildagent/agent/_work/4/s/corefx/src/Common/src/System/Net/WebSockets/ManagedWebSocket.cs:line 309 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170808.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release - OSX.1012.Amd64-x64 - Release - fedora.25.amd64-x64 - Debug - Release - Fedora.26.Amd64-x64 - Debug - Release - SLES.12.Amd64-x64 - Debug - Release - suse.422.amd64-x64 - Debug - Release - Ubuntu.1604.Amd64-x64 - Debug - Release - Ubuntu.1710.Amd64-x64 - Debug - Release - Ubuntu.1704.Amd64-x64 - Debug - Release - Ubuntu.1404.Amd64-x64 - Debug - Release - RedHat.72.Amd64-x64 - Debug - Release - Debian.87.Amd64-x64 - Debug - Release - Debian.90.Amd64-x64 - Debug - Release - RedHat.73.Amd64-x64 - Debug - Release - Centos.73.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170808.01/workItem/System.Net.WebSockets.Client.Tests/analysis/xunit/System.Net.WebSockets.Client.Tests.CancelTest~2FReceiveAsync_AfterCancellationDoReceiveAsync_ThrowsWebSocketException(server:%20ws:~2F~2Fcorefx-net.cloudapp.net~2FWebSocket~2FEchoWebSocket.ashx) +23039 area-System.Runtime "Tests under: System.Tests.EnvironmentTests failed with ""System.MissingMethodException""" Opened on behalf of @Jiayili1 The test `System.Tests.EnvironmentTests/GetFolderPath_UapExistAndAccessible(folder: Cookies)` has failed. System.MissingMethodException : Method 'UserDataPaths.GetDefault()' from assembly 'Windows' was not included in compilation, but was referenced in Environment.GetFolderPathCoreCurrent(Environment.SpecialFolder). There may have been a missing assembly, or a dependency on a more recent Windows SDK release. Stack Trace: at System.Environment.GetFolderPathCore($SpecialFolder folder, $SpecialFolderOption option) in E:\A\_work\251\s\corefx\src\System.Runtime.Extensions\src\System\Environment.WinRT.cs:line 29 at System.Environment.GetFolderPath($SpecialFolder folder, $SpecialFolderOption option) in E:\A\_work\251\s\corefx\src\System.Runtime.Extensions\src\System\Environment.cs:line 158 at System.Tests.EnvironmentTests.GetFolderPath_UapExistAndAccessible($SpecialFolder folder) in E:\A\_work\251\s\corefx\src\System.Runtime.Extensions\tests\System\EnvironmentTests.cs:line 289 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetVI(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170808.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170808.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.EnvironmentTests~2FGetFolderPath_UapExistAndAccessible(folder:%20Cookies) +23040 area-System.Net SslStream doesn't update its stored buffer, causing excess allocations [Here in `SslStream`](https://github.com/dotnet/corefx/blob/cb173f6004e9671793d1aff64bab78e2d5f701c3/src/System.Net.Security/src/System/Net/Security/SslStreamInternal.cs#L419), `EncryptData` can update the passed `outBuffer`. However, since SslStream throws away this value and doesn't update the fields in the class, this can cause excessive allocations to occur. (The allocation itself occurs in [`SslStreamPal`](https://github.com/dotnet/corefx/blob/cb173f6004e9671793d1aff64bab78e2d5f701c3/src/System.Net.Security/src/System/Net/Security/SslStreamPal.Windows.cs#L149)). At the moment I'm working around this by writing to the stream with very specifically-sized buffers (i.e. 4096-bytes), which means that the new allocation doesn't occur. Here's a little snapshot from a DotMemory session showing this behaviour (the numbers are bytes allocated, instances allocated, bytes collected, instances collected): ![image](https://user-images.githubusercontent.com/12575/29059530-56e11508-7c59-11e7-8b47-51f9e79781f2.png) +23041 area-System.Data Remove dead NET_4_5 We never defined it, but the tests inside seem valid. Also fixed spacing. +23043 area-System.Runtime Disable GetEnumerator_LinqOverDictionaryEntries_Success() for full framwork. Disable test GetEnumerator_LinqOverDictionaryEntries_Success() for full framework. https://github.com/dotnet/corefx/issues/23003 +23044 area-System.Runtime Disable test GetEnumerator_LinqOverDictionaryEntries_Success() for full framework Disable test GetEnumerator_LinqOverDictionaryEntries_Success() for full framework +23045 area-Microsoft.CSharp Don't atomise strings in Microsoft.CSharp "The static compiler sees a lot of identical strings in quick succession as it parses tokens, and as such benefits immensely from atomising. Dynamic compilation works with smaller units, and its atomising lives in memory forever, rather than for a compilation operation. As such the benefits of atomising are less and the costs greater. Use strings directly, instead. Since much of the benefit of the predefined names is in seeding this set, use strings directly in that case, too. It's hard to determine how best to measure performance impact. I used a case that did a few different dynamic operations: ```C# private static int dump; [Benchmark] public void TempPerformanceTest() { foreach (var iteration in Benchmark.Iterations) { using (iteration.StartMeasurement()) { for (int i = 0; i < 1000000; i++) { dynamic x = 23; dynamic y = 47; dynamic z = x * y; dynamic s = z.ToString(); dynamic bu = new Uri(""http://example.net/""); dynamic u = new Uri(bu, s + s.Length); dynamic p = u.AbsolutePath; dynamic b = string.IsNullOrWhiteSpace(p); dynamic r = b ? x : y; dump = r; } } } } ``` ### Before |Test Name|Metric|Iterations|AVERAGE|STDEV.S|MIN|MAX| |---------|------|----------|-------|-------|---|---| Microsoft.CSharp.RuntimeBinder.Tests.TempPerformance.TempPerformanceTest|Duration|4|2878.11260689472|151.795343740538|2711.06853438242|3020.87581481642 Microsoft.CSharp.RuntimeBinder.Tests.TempPerformance.TempPerformanceTest|Duration|4|2648.36714824399|10.0406400805859|2637.46739684668|2661.6017775862 Microsoft.CSharp.RuntimeBinder.Tests.TempPerformance.TempPerformanceTest|Duration|4|2736.14701287239|124.428088134655|2665.10479426716|2922.5105092833 Microsoft.CSharp.RuntimeBinder.Tests.TempPerformance.TempPerformanceTest|Duration|4|2718.26595309438|131.364382921837|2633.53285926681|2913.24330641109 Microsoft.CSharp.RuntimeBinder.Tests.TempPerformance.TempPerformanceTest|Duration|3|3407.81461799982|656.868131469811|2668.76362498082|3925.08470638618 |||||| |Ave, Max, Min of above|||2877.74146782106||2633.53285926681|3925.08470638618| ### After |Test Name|Metric|Iterations|AVERAGE|STDEV.S|MIN|MAX| |---------|------|----------|-------|-------|---|---| |Microsoft.CSharp.RuntimeBinder.Tests.TempPerformance.TempPerformanceTest|Duration|4|2850.54017086362|182.223336989238|2735.97218859469|3122.08495970061| |Microsoft.CSharp.RuntimeBinder.Tests.TempPerformance.TempPerformanceTest|Duration|4|2642.93826545393|43.5051180165349|2589.54291906861|2691.64449582264| |Microsoft.CSharp.RuntimeBinder.Tests.TempPerformance.TempPerformanceTest|Duration|4|3004.94557938328|231.242920652251|2830.25040807882|3341.45525641438| |Microsoft.CSharp.RuntimeBinder.Tests.TempPerformance.TempPerformanceTest|Duration|4|2653.03935330645|61.1607418566276|2587.7883784191|2734.57779295487| |Microsoft.CSharp.RuntimeBinder.Tests.TempPerformance.TempPerformanceTest|Duration|4|2750.33040505584|165.351254692047|2588.9093997381|2935.01715120632| ||||||| |Ave, Max, Min of above|||2780.35875481262||2587.7883784191|3341.45525641438| The two are within each other's margin of error, but there is an average improvement of around 3%, along with the assembly no longer holding atomised strings in memory indefinitely, and the result being IMO simpler." +23049 area-Meta Add ref/tests for Span-based Encoding APIs cc: @KrzysztofCwalina, @tarekgh Fixes https://github.com/dotnet/corefx/issues/22431 Depends on https://github.com/dotnet/coreclr/pull/13269 +23054 area-Infrastructure Can we extend the timeout on the coverage builds? Timing out has always been common with them, and of the last 10 runs, 1 had a test failure and the other 9 timed out. The time required to run will generally tend to increase too (more tests are common and desired, ideas on how to make tests quicker much rarer). Most seem like they could well have completed (rather than being stuck somewhere). Could the time allowed for the run be increased? +23056 area-System.Data SqlException ... error occurred during the pre-login handshake. https://mc.dot.net/#/user/dotnet-maestro-bot/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Frelease~2Fuwp6.0~2F/test~2Ffunctional~2Fcli~2F/66720e5b118975058aa9ed007dec818755879412/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.SqlConnectionBasicTests~2FConnectionTest ``` System.Data.SqlClient.SqlException : A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 - An internal exception was caught)\n---- System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception.\n-------- Interop+OpenSsl+SslException : SSL Handshake failed with OpenSSL error - SSL_ERROR_SSL.\n------------ Interop+Crypto+OpenSslCryptographicException : error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlInternalConnectionTds.cs:line 374 at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnectionFactory.cs:line 136 at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionFactory.cs:line 113 at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 755 at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 1606 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 1132 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionPool.cs:line 1043 at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionFactory.cs:line 289 at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Data.SqlClient/src/System/Data/ProviderBase/DbConnectionInternal.cs:line 700 at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnection.cs:line 1062 at System.Data.SqlClient.SqlConnection.Open() in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SqlConnection.cs:line 606 at System.Data.SqlClient.Tests.SqlConnectionBasicTests.ConnectionTest() in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Data.SqlClient/tests/FunctionalTests/SqlConnectionTest.cs:line 22 ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 978 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 825 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 796 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 965 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 868 at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 825 at System.Net.Security.SslState.WriteCallback(IAsyncResult transportResult) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 1075 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.Security/src/System/Net/Security/SslState.cs:line 715 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.SqlClient.SNI.SNITCPHandle.EnableSsl(UInt32 options) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNITcpHandle.cs:line 324 ----- Inner Stack Trace ----- at Interop.OpenSsl.DoSslHandshake(SafeSslHandle context, Byte[] recvBuf, Int32 recvOffset, Int32 recvCount, Byte[]& sendBuf, Int32& sendCount) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.OpenSsl.cs:line 152 at System.Net.Security.SslStreamPal.HandshakeInternal(SafeFreeCredentials credential, SafeDeleteContext& context, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, Boolean isServer, Boolean remoteCertRequired) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.Security/src/System/Net/Security/SslStreamPal.Unix.cs:line 128 ----- Inner Stack Trace ----- ``` +23057 area-System.Text Proposal: Span-based methods on Encoder/Decoder In https://github.com/dotnet/corefx/issues/22431, we agreed on new span-based methods on Encoding, but we didn't discuss the lower-level Encoder/Decoder types. @jkotas reminded me of this in https://github.com/dotnet/coreclr/pull/13269#issuecomment-321020525, and upon taking a look, I expect methods like the following are the ones we'd want to add: ```C# namespace System.Text { public abstract class Encoder { public virtual void Convert(ReadOnlySpan chars, Span bytes, bool flush, out int charsUsed, out int bytesUsed, out bool completed); public virtual int GetByteCount(ReadOnlySpan chars, bool flush); public virtual int GetBytes(ReadOnlySpan chars, Span bytes, bool flush); ... } public abstract class Decoder { public virtual void Convert(ReadOnlySpan bytes, Span chars, bool flush, out int bytesUsed, out int charsUsed, out bool completed); public virtual int GetCharCount(ReadOnlySpan bytes, bool flush); public virtual int GetChars(ReadOnlySpan bytes, Span chars, bool flush); } } ``` @tarekgh, thoughts, both on exposing such methods and on the specific ones I've listed? These are basically just span-based versions of the existing pointer-based virtuals on those two types. +23058 area-System.Security Re-enable test disabled on High Sierra since the bug is fixed The latest beta release of High Sierra seems to have fixed the issue where doing a revocation check on a self-signed certificate caused the SecTrustRef to go into an invalid state, so re-enable the test we disabled due to that problem. +23059 area-System.Drawing Various fixes for Unix Pen and CustomLineCap. Pen changes * Fix behavior of Pen.CustomEndCap/StartCap on Unix. * Use a cached value for CustomEndCap, because a get accessor is not available via libgdiplus. * Try to match the exception behavior of Windows for these two properties. * Correctly clone CustomLineCap objects before storing them in set_CustomEndCap / set_CustomStartCap. * MultiplyTransform now explicitly checks for a disposed matrix before using it. libgdiplus does not ignored null matrix handles -- it throws an exception. * Re-enable all Pen tests on all platforms. CustomLineCap changes * Stop using unavailable GdipGetCustomLineCapType function on Unix * Allow AdjustableArrowCap objects to be successfully cloned despite the above +23062 area-Microsoft.CSharp Remove Microsoft.CSharp.RuntimeBinder.Semantics.SymbolLoader.FCanLift Always returns true (flag for static compiling where nullable and hence lifting is not available). Remove, and paths for it being false. +23063 area-System.Runtime AppContext.TargetFrameworkName differs between CoreRT and CoreCLR "https://github.com/dotnet/coreclr/pull/13266#pullrequestreview-55061899 In CoreCLR, AppContext.TargetFrameworkName will always return null. On CoreRT/ProjectN, it will return attribute value from main exe https://github.com/dotnet/corert/blob/ff7eba504516fa0bc0a50357ad559c19b45d1d51/src/System.Private.CoreLib/src/System/AppContext.cs#L45 If we are OK with updating CoreCLR, we return ` return Assembly.GetEntryAssembly()?.GetCustomAttribute()?.FrameworkName; ` from AppDomainSetup.TargetFrameworkName this will cause AppContext to parse "".NETCoreApp,Version=v2.0"" and have an identifier and version instead of empty/null as it currently has and I don't know what that will do downstream." +23064 area-System.Net [Port to 1.1] Make HttpClient on Unix treat SslProtocols.None as meaning system defaults This fixes the segaults happening on OSX 10.13 in 1.1/1.0 branches, when doing https connections with default settings. fixes #23066 cc @danmosemsft @bartonjs @stephentoub +23066 area-System.Net Fix segfaults in release branches for OSX 10.13 System.Net.Http.Functional.Tests and System.Net.Requests.Tests seg fault in OSX 10.13 runs. +23067 area-System.Net [Port to 1.0] Make HttpClient on Unix treat SslProtocols.None as meaning system defaults This fixes the segaults happening on OSX 10.13 in 1.1/1.0 branches, when doing https connections with default settings. fixes #23066 cc @danmosemsft @bartonjs @stephentoub +23068 area-System.Collections ConcurrentBag containing a circular reference does not get garbage collected ConcurrentBag has [a ThreadLocal field](https://github.com/dotnet/corefx/blob/64eff9bb5a1c39caf6ade8413dbca175b93ee80c/src/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentBag.cs#L35) that maintains references to whatever was added to it without being removed/cleared even after the ConcurrentBag itself becomes unreferenced. Use your favorite search engine to find references to ConcurrentBag leaking memory to see that this has been a gotcha for developers for a while now. I don't think it should be necessary to explicitly clear the ConcurrentBag when you're finished with it. @vancem @stephentoub +23070 area-Microsoft.CSharp Remove VSFAIL from Microsoft.CSharp Just a wrapper on `Debug.Fail` that won't be completely removed from release (but still won't do anything in release). Replace with `Debug.Fail` or, when possible, with a more explicit assertion. +23071 area-Microsoft.CSharp Some Microsoft.CSharp.RuntimeBinder.SymbolTable refactoring * Define `AddMethodToSymbolTable` as taking `MethodBase` `AddMethodToSymbolTable` is called with a `MemberInfo` that can be either a `MethodInfo` or a `ConstructorInfo`, and takes different paths for each. Much of what these paths do is a duplication of calls that are available through those types common `MethodBase` base. Change the parameter type to `MethodBase` and use it as much as possible. * Replace if-else ladder on Type with switch on `TypeCode` * Remove some unused locals and assignments +23072 area-System.Diagnostics "Test: System.Diagnostics.Tests.ActivityTests/DiagnosticSourceStartStop failed with ""Xunit.Sdk.InRangeException""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ActivityTests/DiagnosticSourceStartStop` has failed. Assert.InRange() Failure\r Range: (00:00:00.0000001 - 00:00:00.1412301)\r Actual: 00:00:00.2089664 Stack Trace: at System.Diagnostics.Tests.ActivityTests.DiagnosticSourceStartStop() in /root/corefx-913927/src/System.Diagnostics.DiagnosticSource/tests/ActivityTests.cs:line 469 Build : Master - 20170809.01 (Core Tests) Failing configurations: - Debian.90.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170809.01/workItem/System.Diagnostics.DiagnosticSource.Tests/analysis/xunit/System.Diagnostics.Tests.ActivityTests~2FDiagnosticSourceStartStop +23073 area-System.Memory "Test: System.Globalization.Tests.CharUnicodeInfoGetUnicodeCategoryTests/GetNumericValue failed with ""System.NullReferenceException""" Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.CharUnicodeInfoGetUnicodeCategoryTests/GetNumericValue` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Globalization.FormatProvider.IsSuffix(String source, String suffix) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Globalization\FormatProvider.cs:line 65 at System.Globalization.Tests.CharUnicodeInfoTestData.Parse(List$1<$CharUnicodeInfoTestCase> testCases, String line) in E:\A\_work\251\s\corefx\src\System.Globalization\tests\CharUnicodeInfo\CharUnicodeInfoTestData.cs:line 66 at System.Globalization.Tests.CharUnicodeInfoTestData.<>c.<.cctor>b__8_0() in E:\A\_work\251\s\corefx\src\System.Globalization\tests\CharUnicodeInfo\CharUnicodeInfoTestData.cs:line 20 at System.Lazy$1.ViaFactory(LazyThreadSafetyMode mode) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\shared\System\Lazy.cs:line 327 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Lazy$1.CreateValue() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\shared\System\Lazy.cs:line 439 at System.Globalization.Tests.CharUnicodeInfoGetUnicodeCategoryTests.GetNumericValue() in E:\A\_work\251\s\corefx\src\System.Globalization\tests\CharUnicodeInfo\CharUnicodeInfoTests.cs:line 73 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170809.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170809.01/workItem/System.Globalization.Tests.Execution/analysis/xunit/System.Globalization.Tests.CharUnicodeInfoGetUnicodeCategoryTests~2FGetNumericValue +23074 area-System.Runtime "Test: System.Tests.AppDomainTests/SetThreadPrincipal failed with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `System.Tests.AppDomainTests/SetThreadPrincipal` has failed. System.IO.IOException : RemoteInvoke cannot open the remote service. Open Service Status: AppUnavailable Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, RemoteInvokeOptions options, Boolean pasteArguments) at System.Tests.AppDomainTests.SetThreadPrincipal() Build : UWP 6.0 - 20170809.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/uwp60/source/official~2Fcorefx~2Frelease~2Fuwp6.0~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170809.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.AppDomainTests~2FSetThreadPrincipal +23077 area-System.Net Proposed SslStream additions for ALPN and SNI "# Rationale --- SNI and ALPN have been hanging around for a while as requirements and are becoming more urgent for Kestrel as HTTP/2 approaches (ALPN) and it becomes an edge server (SNI). There was an initial API proposal in issue #4721 however this stalled from my reading because of two issues 1. It would break compat with desktop 2. It would make the AuthenticateAsXXXXX method overloads become unwieldy So I think the need has been established just not the API Design and therefore the implementation. #Proposed API change --- I would propose adding extension methods for SslStream. ``` csharp public static SslStreamExtensions { public delegate void ApplicationLayerProtocolCallback(object sender, string matchedProtocol); public delegate bool ServerNameIndiciationCallback(object sender, string serverName, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors); public void SetApplicationLayerProtocolNegotiation(this SslStream self, string[] supportedProtocols, ApplicationLayerProtocolNegotiationCallback callback) {} public void SetServerNameIndiciation(this SslStream self, Dictionary serverCertificates, ServerNameIndiciationCallback callback) {} } ``` One other potential idea is to move this off to a ""Builder"" method for SslStream. This might help in the server scenario as multiple SslStreams could be built from it and components that each can share could be reused (for instance SSL_CTX in openssl is only required 1x for the same settings rather than per connection). # Example Usage --- ``` csharp var supportedProtocols = new string[] {""http1.1"", ""h2""}; var supportedServerNames = new Dictionary() { ""www.myanimatedgifsrock.com"" , new X509Certificate(""secretpath"", ""secretpassword""), ""www.immoslesscoolgifs.com"", new X509Certificate(""expiredcertpath"", ""secretpassword2""), }; var SslStream stream = new SslStream(networkStream); stream.SetApplicationLayerProtocolNegotiation(supportedProtocols, MyAlpnHandler); stream.SetServerNameIndiciation(supportedServerNames, MySniHandler); //normal use resumes ``` # Referenced Issues --- #9608 SNI #4721 ALPN # Potential Issues --- The callback for SNI should need to (and does in above) provide the ability to validate the certificate. Consideration would need to be given to the concept that if the SNI callback provides this what happens if a callback is provided in the Authenticate method. Also should there be separate extension methods for client and for server? Maybe but really you probably want both to have the chance to decide if they are happy with the otherside based on the servername that they tried to connect to. The other issue with this pattern is that there is no ""state"" held in the SslStream. Once the callback has been called there is no real way to retrieve this information later and it would be up to the user to associate this information with the SslStream and carry it around. To this end perhaps an extension method/methods to later retrieve this information might be considered such as below ``` csharp public static bool TryGetApplicationLayerProtocol(this SslStream self, out string protocol); public static bool TryGetServerName(this SslStream self, out string serverName); ``` Thanks :)" +23080 area-System.Linq Suggestion: Enumerable.ToReadOnly Please include a LINQ extension `ToReadOnly` (and `ToReadOnlyAsync` (for `IQueryable`, in `System.Data.Entity.QueryableExtensions`), which should return a readonly list of the enumerated result. +23085 area-System.Runtime System.ValueTuple now supports .NET Framework 4.7 # Summary The NuGet package System.ValueTuple [has been updated](https://www.nuget.org/packages/System.ValueTuple/4.4.0) to support .NET Framework 4.7. # Details The NuGet package provides the `ValueTuple` types which are required for the C# tuple syntax. In .NET Framework 4.7 we've added the types directly to `mscorlib`. If you use both, the NuGet package, as well as .NET Framework 4.7 you'll end up seeing the same types multipe times. This results in issues like this one [reported on Stack Overflow](https://stackoverflow.com/questions/45339914/predefined-type-system-valuetuple-is-not-defined-or-imported-after-upgrading-t). We've updated the NuGet package to type forward the tuple types on .NET Framework 4.7 to `mscorlib`. This unifies the types and thus allows you to consume other libraries and NuGet packages that depend on `System.ValueTuple` while still targeting .NET Framework 4.7. +23086 area-Meta Consistency of sealed modifiers on methods of sealed classes The general style across corefx is that if a type is sealed, its virtual members are not also annotated as sealed. There are a few projects within the repo, however, where that is not maintained. We should be consistent across the repo. +23087 area-System.Data Add PkgProj for System.Data.DataSetExtensions Updated necessary descriptions and packaging for System.Data.DataSetExtensions (part of #22803) +23088 area-Infrastructure Enable rhel6 in both official builds and CI of corefx master Enable rhel6 in both official builds and CI of corefx master +23089 area-System.Drawing Add two tests for Graphics.DrawString. This adds two very simple tests for `Graphics.DrawString`. @hughbe @KostaVlev +23090 area-Serialization Add SGEN Automation. Fix #21147 @shmao @zhenlan @mconnew +23091 area-System.Net add HeaderDescriptor and use as key for header store "Today, HttpClient uses strings as the key for its header store. This makes lookup more expensive in certain circumstances, because we have to perform string hashes and compares. Replace this with a ""HeaderDescriptor"" struct, for which all known headers are predefined. This also allows us to quickly look up meta-information about known headers, such as their parser and which header collections they are valid for, and allows us to extend this meta-information in the future. @stephentoub @Priya91 @wfurt @davidsh @cipop Note I don't have perf data for this change yet, due to some issues with our perf testing infrastructure. Will update once I have this data." +23095 area-System.Diagnostics "Test: System.Diagnostics.Tests.ProcessStartInfoTests/StartInfo_TextFile_ShellExecute failed with ""System.NullReferenceException""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessStartInfoTests/StartInfo_TextFile_ShellExecute` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_TextFile_ShellExecute() Build : 2.0.0 - 20170810.02 (Core Tests) Failing configurations: - Windows.10.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170810.02/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessStartInfoTests~2FStartInfo_TextFile_ShellExecute +23096 area-System.Data Test failure: MonoTests.System.Data.DataRowExtensionsTest/Field_T_DBNullFieldValue Opened on behalf of @Jiayili1 The test `MonoTests.System.Data.DataRowExtensionsTest/Field_T_DBNullFieldValue` has failed. System.TypeInitializationException : A type initializer threw an exception. To determine which type, inspect the InnerException's StackTrace property.\r ---- System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun$catch$0() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 114 at System.Runtime.CompilerServices.ClassConstructorRunner.CheckStaticClassConstruction(Void* returnValue, StaticClassConstructionContext* pContext) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 37 at System.Data.DataRowExtensions.Field>($DataRow row, String columnName) in E:\A\_work\801\s\corefx\src\System.Data.DataSetExtensions\src\System\Data\DataRowExtensions.cs:line 27 at MonoTests.System.Data.DataRowExtensionsTest.Field_T_DBNullFieldValue() in E:\A\_work\801\s\corefx\src\System.Data.DataSetExtensions\tests\Mono\DataRowExtensionsTest.cs:line 68 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtrForDynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 ----- Inner Stack Trace ----- at System.Data.DataRowExtensions.UnboxT$1>.Create(Type type) in E:\A\_work\801\s\corefx\src\System.Data.DataSetExtensions\src\System\Data\DataRowExtensions.cs:line 154 at System.Data.DataRowExtensions.UnboxT$1>..cctor() in E:\A\_work\801\s\corefx\src\System.Data.DataSetExtensions\src\System\Data\DataRowExtensions.cs:line 146 at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun(StaticClassConstructionContext* pContext) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 92 Build : Master - 20170810.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64-x86 - Debug - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170810.01/workItem/System.Data.DataSetExtensions.Tests/analysis/xunit/MonoTests.System.Data.DataRowExtensionsTest~2FField_T_DBNullFieldValue +23097 area-System.Diagnostics "Test: System.Diagnostics.Tests.ProcessStartInfoTests/StartInfo_TextFile_ShellExecute failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessStartInfoTests/StartInfo_TextFile_ShellExecute` has failed. Could not start C:\\\Users\\\DotNetTestRunner\\\AppData\\\Local\\\Temp\\\ProcessStartInfoTests_i1jilq44.ypx\\\StartInfo_TextFile_ShellExecute_1008_15160bef.txt UseShellExecute=True\r Association details for '.txt'\r ------------------------------\r Open command: C:\\\Windows\\\system32\\\NOTEPAD.EXE %1\r ProgID: txtfile\r \r Expected: True\r Actual: False Stack Trace: at System.Diagnostics.Tests.ProcessStartInfoTests.StartInfo_TextFile_ShellExecute() Build : Master - 20170810.01 (Core Tests) Failing configurations: - Windows.10.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170810.01/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessStartInfoTests~2FStartInfo_TextFile_ShellExecute +23098 area-System.Net "Test: System.Net.Security.Tests.NegotiateStreamTest/NegotiateStream_StreamToStream_KerberosAuthDefaultCredentials_Success failed with ""Interop+NetSecurityNative+GssApiException""" Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.NegotiateStreamTest/NegotiateStream_StreamToStream_KerberosAuthDefaultCredentials_Success` has failed. Interop+NetSecurityNative+GssApiException : Gss api operation failed with error : An invalid status code was supplied (Preauthentication failed). Stack Trace: at Microsoft.Win32.SafeHandles.SafeGssCredHandle.Create(String username, String password, Boolean isNtlmOnly) in /root/corefx-916510/src/Common/src/Microsoft/Win32/SafeHandles/GssSafeHandles.cs:line 105 at System.Net.Security.Tests.UnixGssFakeNegotiateStream.GetDefaultKerberosCredentials(String username, String password) in /root/corefx-916510/src/System.Net.Security/tests/FunctionalTests/UnixGssFakeNegotiateStream.cs:line 43 at System.Net.Security.Tests.NegotiateStreamTest.NegotiateStream_StreamToStream_KerberosAuthDefaultCredentials_Success() in /root/corefx-916510/src/System.Net.Security/tests/FunctionalTests/NegotiateStreamTestForUnix.cs:line 275 Build : Master - 20170810.01 (Core Tests) Failing configurations: - Debian.90.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170810.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.NegotiateStreamTest~2FNegotiateStream_StreamToStream_KerberosAuthDefaultCredentials_Success +23099 area-System.Net "Test: System.Net.Sockets.Tests.ConnectSyncForceNonBlocking/Connect_MultipleIPAddresses_Success failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.ConnectSyncForceNonBlocking/Connect_MultipleIPAddresses_Success(listenAt: 127.0.0.1)` has failed. Timed out while waiting for connection\r Expected: True\r Actual: False Stack Trace: at System.Net.Sockets.Tests.Connect`1.Connect_MultipleIPAddresses_Success(IPAddress listenAt) Build : Master - 20170810.01 (Core Tests) Failing configurations: - Windows.10.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170810.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.ConnectSyncForceNonBlocking~2FConnect_MultipleIPAddresses_Success(listenAt:%20127.0.0.1) +23100 area-Serialization "Tests under: DataContractSerializerTests failed with ""Xunit.Sdk.TrueException""" "Opened on behalf of @Jiayili1 The test `DataContractSerializerTests/DCS_BasicPerSerializerRoundTripAndCompare_Collections` has failed. XML comparison is also failing Test failed for input: SerializationTestTypes.ObjectContainer Expected: <_data i:type=\""a:SerializationTestTypes.ContainsLinkedList***\"" xmlns:a=\""http://schemas.datacontract.org/2004/07/SerializationTestTypes.ContainsLinkedList***\"">11:59:59 PM11:59:59 PM11:59:59 PM11:59:59 PM11:59:59 PM11:59:59 PM<_data2 i:type=\""a:SerializationTestTypes.ContainsLinkedList***\"" xmlns:a=\""http://schemas.datacontract.org/2004/07/SerializationTestTypes.ContainsLinkedList***\""> Actual: <_data i:type=\""a:SerializationTestTypes.ContainsLinkedList***\"" xmlns:a=\""http://schemas.datacontract.org/2004/07/SerializationTestTypes.ContainsLinkedList***\"">23:59:5923:59:5923:59:5923:59:5923:59:5923:59:59<_data2 i:type=\""a:SerializationTestTypes.ContainsLinkedList***\"" xmlns:a=\""http://schemas.datacontract.org/2004/07/SerializationTestTypes.ContainsLinkedList***\""> Expected: True Actual: False Stack Trace: at DataContractSerializerTests.SerializeAndDeserialize[T](T value, String baseline, DataContractSerializerSettings settings, Func`1 serializerFactory, Boolean skipStringCompare) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Runtime.Serialization.Xml/tests/DataContractSerializer.cs:line 4014 at DataContractSerializerTests.TestObjectInObjectContainerWithSimpleResolver[T](T o, String baseline, Boolean skipStringCompare) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Runtime.Serialization.Xml/tests/DataContractSerializer.cs:line 4057 at DataContractSerializerTests.DCS_BasicPerSerializerRoundTripAndCompare_Collections() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Runtime.Serialization.Xml/tests/DataContractSerializer.cs:line 3527 Build : Master - 20170810.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Release - OSX.1012.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170810.01/workItem/System.Runtime.Serialization.Xml.ReflectionOnly.Tests/analysis/xunit/DataContractSerializerTests~2FDCS_BasicPerSerializerRoundTripAndCompare_Collections" +23102 area-System.Net System.Net.Http.Functional.Tests.ManagedHandler_DiagnosticsTest.SendAsync_ExpectedDiagnosticSourceUrlFilteredActivityLogging failed in CI Failed test: System.Net.Http.Functional.Tests.ManagedHandler_DiagnosticsTest.SendAsync_ExpectedDiagnosticSourceUrlFilteredActivityLogging MESSAGE: ~~~ Exit code was 139 but it should have been 42\nExpected: True\nActual: False ~~~ STACK TRACE: ~~~ at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/CoreFx.Private.TestUtilities/src/System/Diagnostics/RemoteExecutorTestBase.cs:line 181 at System.Net.Http.Functional.Tests.DiagnosticsTest.SendAsync_ExpectedDiagnosticSourceUrlFilteredActivityLogging() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Net.Http/tests/FunctionalTests/DiagnosticsTests.cs:line 387 ~~~ +23107 area-System.Security [release/2.0] Re-enable test disabled on High Sierra since the bug is fixed The latest beta release of High Sierra seems to have fixed the issue where doing a revocation check on a self-signed certificate caused the SecTrustRef to go into an invalid state, so re-enable the test we disabled due to that problem. +23108 area-System.Diagnostics Activity paths for events collected via EventListener are incorrect for Stop events "Run the following program, targeting Core CLR 2.0: ```csharp class MySource : EventSource { [Event(1, Message = ""{0}"")] public void Message(string arg) { WriteEvent(1, arg); } [Event(2, Message = ""{0}"")] public void MyActivityStart(string arg) { WriteEvent(2, arg); } [Event(3, Message = ""{0}"")] public void MyActivityStop(string arg) { WriteEvent(3, arg); } public static MySource Logger = new MySource(); } class MyListener : EventListener { public const EventKeywords TasksFlowActivityIds = (EventKeywords)0x80; protected override void OnEventSourceCreated(EventSource eventSource) { if (eventSource.Name == ""MySource"") { EnableEvents(eventSource, EventLevel.Verbose); Console.WriteLine(""*** In MyListener: turning on MySource""); } else if (eventSource.Name == ""System.Threading.Tasks.TplEventSource"") { EnableEvents(eventSource, EventLevel.Verbose, TasksFlowActivityIds); Console.WriteLine(""*** In MyListener: turning on Task library Activity Flow""); } } protected override void OnEventWritten(EventWrittenEventArgs eventData) { // We expect the activity and relatedActities to be set properly, currently they are zero. Console.WriteLine(""MyListener: level {0}, message: {1} activity {2} related {3}"", eventData.Level, eventData.Message != null ? string.Format(eventData.Message, eventData.Payload.ToArray()) : """", eventData.ActivityId, eventData.RelatedActivityId); } } public class Program { public static void Main(string[] args) { MyListener listener = new MyListener(); // Currently the activityIDs generated in the OnEventWritten EventListener callback are always 0. // They should be non-zero during the activity. MySource.Logger.Message(""Before Start""); MySource.Logger.MyActivityStart(""MYTask""); MySource.Logger.Message(""In task""); MySource.Logger.MyActivityStop(""MYTask stop""); MySource.Logger.Message(""After task""); Console.ReadKey(); } } ``` Note that the activity GUID for the MyActivityStop event is a null GUID Expected: the activity GUID for the MyActivityStop event should be a valid activity ID, same as for MyActivityStart and ""In task"" events. @vancem and @brianrob think this is indeed an issue and not by design Originally reported by @ghelyar https://github.com/Azure/diagnostics-eventflow/issues/124 " +23110 area-System.Net HttpMethod.ToString(): Remove unnecessary string.ToString() call Avoid making a virtual function call when the code already has a string. I wasn't sure if I was supposed to propose this change on some other branch ('dev*') instead. Let me know. +23111 area-System.Data Fix MonoTests.System.Data.DataRowExtensionsTest on ILC Fixes https://github.com/dotnet/corefx/issues/23096 Unbox utility used Reflection on private members to unbox a Nullable. It's really a lot simpler just to... unbox it. +23115 area-System.Net Linux sockets: perform queued IO operations on threadpool, and rework queue locking "Currently, we perform all queued IO on the epoll thread, and then dispatch a workitem to the threadpool to call the user's completion callback. This makes the epoll thread a bottleneck. Instead, rework the queue processing logic so that we dispatch a workitem to the threadpool to perform the IO and then call the user's callback directly. This results in the same amount of ""thread-hopping"", but the actual IO work is moved off the epoll thread, which should hopefully make it less of a bottleneck. Additionally, rework the queue locking logic to ensure that our locking is as fine-grained and short-lived as possible. I don't have perf data on this change yet due to some infrastructure issues, will get this as soon as I can. @stephentoub @wfurt @Priya91 @pgavlin @vancem @dotnet-bot test Outerloop Linux x64 Debug Build @dotnet-bot test Outerloop Windows x64 Debug Build @dotnet-bot test Outerloop OSX x64 Debug Build " +23116 area-Infrastructure Packages built from master incorrectly target netcoreapp2.0 Opened with @ericstj Changes like https://github.com/dotnet/corefx/commit/1d3cc0417753bf0a436824abfeff9c3c1712f63f have moved components inbox for `netcoreapp2.0` but those components were not inbox in the actual 2.0 release. We need to retarget to `netcoreapp2.1` in master and audit these additions and move them to `netcoreapp2.1` /cc @weshaggard @mellinoe @JeremyKuhne +23119 area-Infrastructure Update package versions to service release/1.1 and 1.0 branches. I went through the history of the release/1.1 branch, this [commit](https://github.com/dotnet/corefx/commit/9e98f24f508d2cda97f10474a86052f51bc9c7e3), which is an update after the servicing release. From then these are the concrete product commits, 1. [Interop.MountPoints.cs](https://github.com/dotnet/corefx/commit/3d2debcf3f4fb7ce06f58c0b617348835e9036c8) by @wfurt 2. [WinHttpHandler](https://github.com/dotnet/corefx/commit/454bdeb2ef477344b8626307892f442bff2a3106) by @davidsh We need to update the package and assembly versions of the libs where these changes need to serviced for 1.1 release. refer pr #23113 +23121 area-System.Net Tests failed: System.Net.Sockets.Tests.DualModeConnectionless* / * ## Type of failures Note: The failures are less frequent after 10/25 (fix #24615 addressing `Connection timed out` failures) ### TimeoutException ``` System.TimeoutException : The operation has timed out. at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFromAsync_Helper(IPAddress listenOn, IPAddress connectTo, Boolean expectedToTimeout) in E:\A\_work\1811\s\corefx\src\System.Net.Sockets\tests\FunctionalTests\DualModeSocketTest.cs:line 2337 at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFromAsyncV4BoundToSpecificV4_Success() in E:\A\_work\1811\s\corefx\src\System.Net.Sockets\tests\FunctionalTests\DualModeSocketTest.cs:line 2238 ``` ### Connection failed ``` System.Net.Sockets.SocketException : A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName) in E:\A\_work\1811\s\corefx\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs:line 5112 at System.Net.Sockets.Socket.ReceiveMessageFrom(Byte[] buffer, Int32 offset, Int32 size, SocketFlags& socketFlags, EndPoint& remoteEP, IPPacketInformation& ipPacketInformation) in E:\A\_work\1811\s\corefx\src\System.Net.Sockets\src\System\Net\Sockets\Socket.cs:line 1611 at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFrom_Helper(IPAddress listenOn, IPAddress connectTo, Boolean expectedToTimeout) in E:\A\_work\1811\s\corefx\src\System.Net.Sockets\tests\FunctionalTests\DualModeSocketTest.cs:line 1994 at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.ReceiveMessageFromV4BoundToSpecificMappedV4_Success() in E:\A\_work\1811\s\corefx\src\System.Net.Sockets\tests\FunctionalTests\DualModeSocketTest.cs:line 1876 ``` ### [REMOVED] System.Net.Sockets.SocketException : Connection timed out This failure was pretty common (133 failures 7/30-10/26), but was fixed by #24615 on 10/25. No such failure appeared afterwards. ## History of failures Day | Build | OS | Error message | Test -- | -- | -- | -- | -- 6/4 | 20170604.03 | Win7 | Connection failed | ReceiveFromV4BoundToSpecificV4_Success 6/23 | 20170623.01 | Win10 | Connection failed | ReceiveFromV4BoundToSpecificV4_Success 6/28 | 20170628.05 | Win7 | Connection failed | ReceiveFromV4BoundToAnyV4_Success 7/3 | 20170703.01 | Win7 | Connection failed | ReceiveFromV4BoundToAnyV4_Success 7/26 | 20170726.03 | Win7 | Connection failed | ReceiveMessageFromV4BoundToAnyV6_Success 8/2 | 20170802.02 | Win10 | Connection failed | ReceiveFromV4BoundToAnyV4_Success 8/9 | 20170809.02 | Win8.1 | Connection failed | ReceiveFromV4BoundToSpecificV4_Success 8/9 | 20170809.02 | Win8.1 | Connection failed | ReceiveFromV4BoundToAnyV4_Success 8/11 | 20170811.01 | Ubuntu16.04 | TimeoutException | BeginReceiveMessageFromV4BoundToAnyV6_Success 8/11 | 20170811.02 | Win7 | TimeoutException | ReceiveMessageFromAsyncV6BoundToSpecificV6_Success 8/14 | 20170814.01 | Win7 | Connection failed | ReceiveMessageFromV4BoundToAnyMappedV4_Success 8/14 | 20170814.01 | Win7 | TimeoutException | BeginReceiveMessageFromV6BoundToSpecificV6_Success 8/14 | 20170814.01 | Win7 | TimeoutException | BeginReceiveMessageFromV4BoundToSpecificMappedV4_Success 8/14 | 20170814.01 | Win7 | TimeoutException | ReceiveMessageFromAsyncV6BoundToAnyV6_Success 8/18 | 20170818.02 | Win10 | Connection failed | ReceiveFromV4BoundToSpecificV4_Success 8/18 | 20170818.02 | Win7 | TimeoutException | ReceiveMessageFromAsyncV4BoundToAnyV4_Success 8/22 | 20170823.01 | Win10 | Connection failed | ReceiveFromV4BoundToAnyV4_Success 8/30 | 20170830.01 | Win7 | TimeoutException | BeginReceiveFromV6BoundToSpecificV6_Success 8/30 | 20170830.02 | Win8.1 | TimeoutException | ReceiveMessageFromAsyncV4BoundToAnyMappedV4_Success 9/6 | 20170906.01 | Win10 | Connection failed | ReceiveFromV4BoundToAnyV4_Success 9/8 | 20170908.02 | Win10 | Connection failed | ReceiveFromV4BoundToSpecificV4_Success 9/8 | 20170908.02 | Win10 | Connection failed | ReceiveFromV4BoundToAnyV4_Success 9/14 | 20170914.02 | Win7 | TimeoutException | BeginReceiveMessageFromV4BoundToAnyV6_Success 10/4 | 20171004.01 | Win10 | Connection failed | ReceiveFromV4BoundToAnyV4_Success 10/7 | 20171007.01 | Win10 | Connection failed | ReceiveFromV4BoundToSpecificV4_Success 10/9 | 20171009.02 | Win10 | Connection failed | ReceiveFromV4BoundToSpecificV4_Success 10/9 | 20171009.03 | Win7 | Connection failed | ReceiveFromV4BoundToSpecificV4_Success 10/9 | 20171009.03 | Win7 | Connection failed | ReceiveFromV4BoundToAnyV4_Success 10/14 | 20171014.02 | Win10 | Connection failed | ReceiveFromV4BoundToSpecificV4_Success 11/25 | 20171125.02 | Win7 | TimeoutException | ReceiveMessageFromAsyncV4BoundToAnyV4_Success 11/25 | 20171125.02 | Win7 | Connection failed | ReceiveMessageFromV4BoundToAnyMappedV4_Success 12/13 | 20171213.08 | Win7 | Connection failed | ReceiveMessageFromV4BoundToSpecificMappedV4_Success 12/13 | 20171213.08 | Win7 | TimeoutException | ReceiveMessageFromAsyncV4BoundToSpecificV4_Success 12/25 | 20171225.01 | Win7 | Connection failed | ReceiveMessageFromV4BoundToSpecificMappedV4_Success 1/13 | 20180113.01 | Win7 | TimeoutException | BeginReceiveMessageFromV4BoundToSpecificMappedV4_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180113.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom~2FBeginReceiveMessageFromV4BoundToSpecificMappedV4_Success) 1/13 | 20180113.01 | Win7 | TimeoutException | BeginReceiveMessageFromV6BoundToSpecificV6_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180113.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom~2FBeginReceiveMessageFromV6BoundToSpecificV6_Success) 1/13 | 20180113.01 | Win7 | Connection failed | ReceiveMessageFromV4BoundToAnyMappedV4_Success - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180113.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom~2FReceiveMessageFromV4BoundToAnyMappedV4_Success) 1/17 | 425dd3680cfc5b808a9b41b8d71c5a6a9c03a304 | Win7 | Connection failed | ReceiveMessageFromV4BoundToAnyMappedV4_Success # Original report Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom/BeginReceiveMessageFromV4BoundToAnyV6_Success` has failed. ``` System.TimeoutException : The operation has timed out. at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.BeginReceiveMessageFrom_Helper(IPAddress listenOn, IPAddress connectTo, Boolean expectedToTimeout) in /root/corefx-919057/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 2208 at System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom.BeginReceiveMessageFromV4BoundToAnyV6_Success() in /root/corefx-919057/src/System.Net.Sockets/tests/FunctionalTests/DualModeSocketTest.cs:line 2181 ``` Build : Master - 20170811.01 (Core Tests) Failing configurations: - Ubuntu.1604.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170811.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.DualModeConnectionlessReceiveMessageFrom~2FBeginReceiveMessageFromV4BoundToAnyV6_Success +23122 area-System.Diagnostics "Test: System.Diagnostics.Tests.StackFrameTests/Ctor_SkipFrames(skipFrames: -1) failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.StackFrameTests/Ctor_SkipFrames(skipFrames: -1)` has failed. Expected GetILOffset() 0 for BuildStackFrame at offset 96 in file:line:column :0:0\r to be greater than zero.\r Expected: True\r Actual: False Stack Trace: at System.Diagnostics.Tests.StackFrameTests.VerifyStackFrameSkipFrames(StackFrame stackFrame, Boolean isFileConstructor, Int32 skipFrames, MethodInfo expectedMethod, Boolean isCurrentFrame) in E:\A\_work\146\s\corefx\src\System.Diagnostics.StackTrace\tests\StackFrameTests.cs:line 171 at System.Diagnostics.Tests.StackFrameTests.VerifyStackFrame(StackFrame stackFrame, Boolean hasFileInfo, Int32 skipFrames, MethodInfo expectedMethod, Boolean isCurrentFrame) in E:\A\_work\146\s\corefx\src\System.Diagnostics.StackTrace\tests\StackFrameTests.cs:line 153 at System.Diagnostics.Tests.StackFrameTests.Ctor_SkipFrames(Int32 skipFrames) in E:\A\_work\146\s\corefx\src\System.Diagnostics.StackTrace\tests\StackFrameTests.cs:line 43 Build : Master - 20170811.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64.Core-x86 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fdesktop~2Fcli~2F/build/20170811.01/workItem/System.Diagnostics.StackTrace.Tests/analysis/xunit/System.Diagnostics.Tests.StackFrameTests~2FCtor_SkipFrames(skipFrames:%20-1) +23123 area-System.Data "Test: System.Data.SqlClient.Tests.DiagnosticTest/ConnectionOpenAsyncErrorTest failed with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.DiagnosticTest/ConnectionOpenAsyncErrorTest` has failed. System.IO.IOException : RemoteInvoke cannot open the remote service. Open Service Status: AppUnavailable Stack Trace: at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(MethodInfo method, String[] args, RemoteInvokeOptions options, Boolean pasteArguments) at System.Diagnostics.RemoteExecutorTestBase.RemoteInvoke(Func`1 method, RemoteInvokeOptions options) at System.Data.SqlClient.Tests.DiagnosticTest.ConnectionOpenAsyncErrorTest() Build : UWP 6.0 - 20170810.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release Detail: https://mc.dot.net/#/product/netcore/uwp60/source/official~2Fcorefx~2Frelease~2Fuwp6.0~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170810.01/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.DiagnosticTest~2FConnectionOpenAsyncErrorTest +23125 area-System.Collections System.Collections.Immutable.ImmutableList`1+Enumerator[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]].Dispose() takes 17 ms to JIT Looking at some perf problems with MSBuild, [we're spending lots of time JITing](https://github.com/Microsoft/msbuild/issues/2419), this one in particular stood out: JitTime (msec) | ILSize | NativeSize | Method | BG | Module --- | --- | --- | --- | --- | --- 17.4 | 74 | 163 | System.Collections.Immutable.ImmutableList1+Enumerator[System.Collections.Generic.KeyValuePair2[System.__Canon,System.__Canon]].Dispose() | JIT | System.Collections.Immutable.dll Almost all other methods are under 1ms. Can we simplify this method? +23127 area-System.ComponentModel DesignerOptionService.DesignerOptionCollection.Properties does not update cached version when children update "In System.ComponentModel.TypeConverters, DesignerOptionCollection caches the value of the `Properties` field. The cached value never updates, even if the properties would be different. In the example below, accessing `Properties` before adding a child causes the value of Properties to be cached and be out of date. Accessing `Properties` after adding a child causes the value to be correct ```cps [Fact] public void Properties_GetBeforeAddingChild_ReturnsEmpty() { var service = new TestDesignerOptionService(); Assert.Empty(service.Options.Properties); DesignerOptionService.DesignerOptionCollection options = service.DoCreateOptionCollection(service.Options, ""name"", ""value""); Assert.Empty(service.Options.Properties); } [Fact] public void Properties_GetAfterAddingChild_ReturnsNonEmpty() { var service = new TestDesignerOptionService(); DesignerOptionService.DesignerOptionCollection options = service.DoCreateOptionCollection(service.Options, ""name"", ""value""); Assert.NotEmpty(service.Options.Properties); } private class TestDesignerOptionService : DesignerOptionService { public object ShowDialogValue { get; set; } = ""Default""; public DesignerOptionCollection DoCreateOptionCollection(DesignerOptionCollection parent, string name, object value) { return CreateOptionCollection(parent, name, value); } protected override bool ShowDialog(DesignerOptionCollection options, object optionObject) { ShowDialogValue = optionObject; return true; } public bool DoShowDialog(DesignerOptionCollection options, object optionObject) { return base.ShowDialog(options, optionObject); } } ``` @safern (from #23013)" +23128 area-System.Net ManagedHandler: Sends client cert when it shouldn't "The Manual_SendClientCertificateWithServerAuthEKUToRemoteServer_Forbidden test is disabled for the ManagedHandler. According to the comment in the test, ""The managed handler is currently sending out client certificates when it shouldn't."" Needs to be investigated and either the src or the test fixed." +23129 area-System.Net ManagedHandler: Soliciting Ok instead of Unauthorized response with credential redirect test "The GetAsync_CredentialIsNetworkCredentialUriRedirect_StatusCodeUnauthorized is disabled for the ManagedHandler. According to the comment, ""The managed handler is currently getting Ok when it should be getting Unauthorized."" Either the src or the test needs to be fixed." +23130 area-System.Net [ManagedHandler] Implement support for trailing headers The implementation currently lacks this support and doesn't deal with with responses that have them. At the very least it needs to be able to ignore them, but right now requests with them fail. +23131 area-System.Net [ManagedHandler] Disposing the handler should initiate cancellation of requests "According to the comment, ""the ManagedHandler isn't correctly handling disposal of the handler. It should cause the outstanding requests to be canceled with OperationCanceledExceptions, whereas currently it's resulting in ObjectDisposedExceptions.""" +23132 area-System.Net ManagedHandler: Support 1.0 requests Currently the handler throws an exception for 1.0 requests. It needs to tolerate them. +23134 area-System.Net HTTP/2 support ManagedHandler should support HTTP/2. +23135 area-System.Net [ManagedHandler] Basic auth can't handle ':' in domain name Some of the theory inputs to Proxy_BypassFalse_GetRequestGoesThroughCustomProxy are failing as a result. +23136 area-System.Net [ManagedHandler] SSL proxy tunneling is not yet implemented It should be implemented. https://github.com/dotnet/corefx/blob/b265a0f0066dbce3cf4845c25444fe85266c81d0/src/System.Net.Http/src/System/Net/Http/Managed/HttpProxyConnectionHandler.cs#L62-L66 +23137 area-System.Net [ManagedHandler] ServerCertificateCustomValidationCallback returning unexpected errors "From the comment in UseCallback_BadCertificate_ExpectedPolicyErrors_Helper: ""This test is failing with the managed handler on the exact value of the managed errors, e.g. reporting ""RemoteCertificateNameMismatch, RemoteCertificateChainErrors"" when we only expect RemoteCertificateChainErrors."" The src or the test need to be fixed." +23138 area-System.Net [ManagedHandler] Several SSL version verification tests are failing GetAsync_AllowedSSLVersion_Succeeds GetAsync_SupportedSSLVersion_Succeeds +23139 area-System.Net Test failure: HttpClientEKUTest tests are disabled These tests are disabled due to failures. The failures need to be investigated to determine whether there's missing functionality, bugs, etc., or whether the tests should be fixed, aren't applicable, etc. +23140 area-System.Net ManagedHandler: ManagedHandler_DefaultCredentialsTest tests are disabled These tests are disabled for the managed handler. They need to be investigated and either src or tests fixed. +23141 area-System.Net [ManagedHandler] Improve cancellation support when sending/receiving data The ManagedHandler_CancellationTest tests are disabled because sockets don't support canceling individual operations. We might be able to address this once https://github.com/dotnet/corefx/issues/22608 is implemented and the associated cancellation support is enabled. We could also employ a variety of workarounds, including ending the whole request on cancellation by disposing of the connection, wrapping the operations in ones that can be canceled even though the underlying operation may continue running, etc. +23142 area-System.Net [ManagedHandler] Implement MaxResponseHeadersLength We currently don't track the amount of header data received, and thus don't enforce MaxResponseHeadersLength. +23143 area-System.Net ManagedHandler: Size overflow needs to be handled in ParseHexSize We should just see how WinHttpHandler and CurlHandler handle overflow here, and do the same. +23144 area-System.Net ManagedHandler: Support Expect: 100-continue We need to add support for this. +23145 area-System.Net ManagedHandler: Enable duplex communication Currently the ManagedHandler waits for all of the request content to be sent before parsing the response content. This prohibits duplex communication and needs to be fixed (both in general, and to be able to reuse the underlying types here in the managed ClientWebSocket implementation). +23146 area-System.Net ManagedHandler: Better cancellation support when transferring request body Currently cancellation is ignored while the request body is being transferred. +23147 area-System.Net [ManagedHandler] Avoid string allocations while parsing headers +23148 area-System.Net ManagedHandler: Move text into .resx There are currently strings littered throughout the code. If they'll be user visible (e.g. exception messages), we should move them into the .resx and unify them with the existing messages, avoiding duplication where possible. +23149 area-System.Net ManagedHandler: Improve timer management in HttpConnectionPools Currently the timer continues to run even if there are no active connections on any pool. +23150 area-System.Net [ManagedHandler] Support Windows & Unix environment variables for proxy configuration libcurl and other clients respect an established convention for environment variables used to configure proxies. We should respect these in ManagedHandler as well. +23151 area-System.Net ManagedHandler: Support canceling opening connections Right now we use the instance socket.ConnectAsync method, which doesn't give us a way to cancel the connection. We should investigate other approaches that would allow us to do so, e.g. with SocketAsyncEventArgs and its connection cancellation support, or worst case, disposing of the socket (though that might have reliability concerns). +23152 area-System.Net ManagedHandler: Use the managed handler in ClientWebSocket's managed implementation This depends on #23145. +23153 area-System.Net [ManagedHandler] Investigate adding NTLM auth support +23154 area-System.Net [ManagedHandler] Investigate adding Negotiate auth support +23155 area-System.Net Update TODOs in ManagedHandler "I cleaned up the TODOs in ManagedHandler, opening individual issues for each aspect and updating the comments to link to the associated issue. In the process of doing so, I found that some of the ""hangs"" reported were due to test issues, where the tests would hang if the HttpClient.GetAsync operation failed, so I fixed those such that we now see the actual reason for the failure rather than the test hanging. And I added a bit more tracing to ManagedHandler, in particular to see details about the established SSL connection. cc: @geoffkizer " +23156 area-System.Net [ManagedHandler] Investigate adding connection draining support Today when we cancel/dispose a response and we've not yet handled all of the expected response data from the server, we abandon the connection rather than putting it back into the pool. We should investigate adding support for draining the remaining data from the connection, and whether it's worthwhile from a performance perspective (maybe just for https, given the additional overhead associated with establishing the connection?). WinHttp drains up to 1MB by default. +23159 area-System.Net Test failed: DualModeConnectionlessBeginSendTo.BeginSendToV4IPEndPointToV4Host_Success https://ci3.dot.net/job/dotnet_corefx/job/master/job/windows-TGroup_netfx+CGroup_Release+AGroup_x86+TestOuter_false_prtest/2167/consoleText ``` System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.BeginSendToV4IPEndPointToV4Host_Success [FAIL] System.Net.Sockets.SocketException : The requested address is not valid in its context Stack Trace: at System.Net.Sockets.Socket.DoBeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint endPointSnapshot, SocketAddress socketAddress, OverlappedAsyncResult asyncResult) at System.Net.Sockets.Socket.BeginSendTo(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, EndPoint remoteEP, AsyncCallback callback, Object state) D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Net.Sockets\tests\FunctionalTests\DualModeSocketTest.cs(1243,0): at System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.DualModeBeginSendTo_EndPointToHost_Helper(IPAddress connectTo, IPAddress listenOn, Boolean dualModeServer, Boolean expectedToTimeout) D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Net.Sockets\tests\FunctionalTests\DualModeSocketTest.cs(1196,0): at System.Net.Sockets.Tests.DualModeConnectionlessBeginSendTo.BeginSendToV4IPEndPointToV4Host_Success() ``` +23160 area-System.Net Handle invalid chunk size in ManagedHandler To match WinHttpHandler, support chunk sizes up to ulong.MaxValue in size, and throw exceptions for anything larger. Fixes #23143 cc: @geoffkizer +23162 area-System.Net Remove CancellationToken field from StreamContent This is a holdover from a previous design, isn't used, but is still taking up space in the StreamContent. Remove it. cc: @davidsh, @geoffkizer +23164 area-System.Runtime Expose and Add Tests for BitConverter APIs in Corefx Expose in System.Runtime.Extensions contract in corefx. Second part of issue #22355 Adding tests to verify correct implementation and exposure (https://msdn.microsoft.com/en-us/library/system.bitconverter_methods(v=vs.110).aspx) +23165 area-Infrastructure Master should remap `netfx` to `net471` Related #23116 We should also disable the majority of the `netfx` configurations for things inside netstandard as well as the support package since we aren't shipping them anymore. New versions of the 4.6.1 support package will come from servicing and every library in `netstandard2.0` is now part of `net4.7.1`. /cc @weshaggard @AlexGhiondea +23166 area-System.Net [ManagedHandler] Determine how to ship it, and implement that Opt-in/Opt-out? Enabled via an environment variable? Shipped as public API? Etc. We need a supported way to allow for granular use of ManagedHandler on per-instance basis and not just process-wide. +23167 area-System.Net Bump package version for release 1.0 branch cc @danmosemsft @weshaggard @ericstj I'm not able to fix the packaging errors with these changes. Putting up a PR with the proposed changes, @ericstj Can you please take a look at the correctness of the changes for packaging.. +23168 area-Infrastructure Move master to netcoreapp2.1 Fixes #23116 /cc @weshaggard @mellinoe @bartonjs +23171 area-System.Runtime Modify High Sierra Check and Fix TZ Test Fixes #21433 +23173 area-System.Net ManagedHandler: Moved exception strings to .resx resources. Fixes #23148 NOTE: I purposely ignored exceptions that had TODOs with active issues for functionality that is not implemented. cc @stephentoub +23174 area-System.Net ManagedHandler: Only run connection pool cleanup timer when needed Fixes #23149 cc: @stephentoub +23177 area-System.Net Proposed SslStream additions for ALPN "# Latest Proposal https://github.com/dotnet/corefx/issues/23177#issuecomment-332995338 ```c# namespace System.Net.Security { public partial class SslStream { public Task AuthenticateAsServerAsync(SslServerAuthenticationOptions options, CancellationToken cancellation) { } public Task AuthenticateAsClientAsync(SslClientAuthenticationOptions options, CancellationToken cancellation) { } public SslApplicationProtocol NegotiatedApplicationProtocol { get; } } public class SslServerAuthenticationOptions { public bool AllowRenegotiation { get; set; } public X509Certificate ServerCertificate { get; set; } public bool ClientCertificateRequired { get; set; } public SslProtocols EnabledSslProtocols { get; set; } public X509RevocationMode CheckCertificateRevocation { get; set; } public IList ApplicationProtocols { get; set; } public RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get; set; } public EncryptionPolicy EncryptionPolicy { get; set; } } public class SslClientAuthenticationOptions { public bool AllowRenegotiation { get; set; } public string TargetHost { get; set; } public X509CertificateCollection ClientCertificates { get; set; } public LocalCertificateSelectionCallback LocalCertificateSelectionCallback { get; set; } public SslProtocols EnabledSslProtocols { get; set; } public X509RevocationMode CheckCertificateRevocation { get; set; } public IList ApplicationProtocols { get; set; } public RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get; set; } public EncryptionPolicy EncryptionPolicy { get; set; } } public struct SslApplicationProtocol : IEquatable { public static readonly SslApplicationProtocol Http2; public static readonly SslApplicationProtocol Http11; // Adding other IANA values, is left based on customer input. public SslApplicationProtocol(byte[] protocol) { } public SslApplicationProtocol(string protocol) { } public ReadOnlyMemory Protocol { get; } public bool Equals(SslApplicationProtocol other) { } public override bool Equals(object obj) { } public override int GetHashCode() { } public override string ToString() { } public static bool operator ==(SslApplicationProtocol left, SslApplicationProtocol right) { } public static bool operator !=(SslApplicationProtocol left, SslApplicationProtocol right) { } } } ``` # Previous Proposal Change log: * Updated = Removed results object to keep new objects down * Updated = Meeting notes * Updated = Removed string overload as there is no clear way in code to tell the user that it's utf-8 and only adds a potential trap * Updated = Put that string overload back under protest, but decision was made in a review meeting References #23077 ## Rationale Server Name Indication and Application Layer Protocol Negotiation are two TLS extensions that are missing currently from SslStream. They are needed urgently to support Http/2 (ALPN) and the ability to run Kestrel as an edge server (SNI). There are also many other customer applications that require this, including Clients being able to use HTTP/2 (Mananed HttpClient has an Http/2 support open issue). These have been outstanding for a long period of time, for a number of reasons. One major reason is that any change will cause an increase in overloading of the Authenticate methods which have become unwieldy and are brittle when adding new options. There will be more options coming with other TLS extensions available now (max fragment size for restricted memory clients for instance) and having a mechanism to add these without major API changes seems like a sensible change. ## Proposed API Change Originally I suggested overloading the Authenticate methods, however discussions in #23077 have changed my mind. Thanks to @Tratcher for this concept ``` csharp public partial class SslStream { public Task AuthenticateAsServerAsync(SslServerAuthenticationOptions options, CancellationToken cancellation) { } public Task AuthenticateAsClientAsync(SslClientAuthenticationOptions options, CancellationToken cancellation) { } public SslApplicationProtocol NegotiatedApplicationProtocol {get;} } public class SslServerAuthenticationOptions { public bool AllowRenegotiation { get; set; } public X509Certificate ServerCertificate { get; set; } public bool ClientCertificateRequired { get; set; } public SslProtocols EnabledSslProtocols { get; set; } public X509RevocationMode CheckCertificateRevocation { get; set; } public IList ApplicationProtocols { get; set; } public RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get; set; } public EncryptionPolicy EncryptionPolicy { get; set; } } public class SslClientAuthenticationOptions { public bool AllowRenegotiation { get; set; } public string TargetHost { get; set; } public X509CertificateCollection ClientCertificates { get; set; } public LocalCertificateSelectionCallback LocalCertificateSelectionCallback { get; set; } public SslProtocols EnabledSslProtocols { get; set; } public X509RevocationMode CheckCertificateRevocation { get; set; } public IList ApplicationProtocols { get; set; } public RemoteCertificateValidationCallback RemoteCertificateValidationCallback { get; set; } public EncryptionPolicy EncryptionPolicy { get; set; } } public struct SslApplicationProtocol : IEquatable { public static readonly SslApplicationProtocol Http2; public static readonly SslApplicationProtocol Http11; // Adding other IANA values, is left based on customer input. public SslApplicationProtocol(byte[] protocol) { } public SslApplicationProtocol(string protocol) { } // assumes utf-8 and public override public ReadOnlyMemory Protocol { get; } public bool Equals(SslApplicationProtocol other) { } public override bool Equals(object obj) { } public override int GetHashCode() { } public override string ToString() { } // For debugger. utf-8 or a string representation of the raw bytes. E.g. ""0x68 0x74 0x74 0x70 0x2f 0x31 0x2e 0x31"" public static bool operator ==(SslApplicationProtocol left, SslApplicationProtocol right) { } public static bool operator !=(SslApplicationProtocol left, SslApplicationProtocol right) { } } ``` ## Meeting Notes 22-Sep-2017 1. Add ToString() to SslApplicationProtocol to get string version of the bytes. 2. Add string ctor to SslApplicationProtocol for usability, this will assume it's utf8 string. 3. ReadOnlyMemory is not immutable, we need to copy the bytes in the ctor, so taking a byte[] instead of ReadOnlyMemory ## Meeting Notes 5-Sep-2017 1. Use the updated API proposal above with options bags on the Authenticate methods. 2. Introduce an ApplicationProtocol type so the ALPN values can be correctly defined as raw bytes, have shared constants, and have equality operators. 2. Disallow mixing calls between the old constructors and the new methods. Only the minimal constructors taking the inner stream and ownership bool will be supported. 3. There is still some pending discussion on the factory approach. ## Further Notes 1. This will mean future options can be added without causing binary compatibility issues (increasing properties on concrete classes rather than changing overloads) 1. Non async methods shouldn't be supported for the new methods as it is an async operation under the hood so hiding the threads goes against current framework thinking. Consumers can wrap the async methods with blocking if they so wish (see modern HttpClient ) 1. I snuck max fragment in for the client, but I am happy to have this dropped if it is a sticking point 1. Cancellation tokens are there for both methods as per current framework thinking 1. ValueTask wasn't considered because there will be very few times this doesn't cause async operations, but if the new standard is to use ValueTask that is fine as well 1. A static list of the Http 1.1, Http/2 and Http/2 over TLS should be provided to stop users having to look it up. 1. Helper methods on the auth results should be provided so users don't have to look up what the string representations are in this case I added one for IsHttp2. ## Potential Implementation Issues There are now a number of parameters that could be modified during an connection being created. One of these is the certificate dictionary. If the consumer changes these by accidentally reusing the config options for a differently configured connection you could run into a security issue. One option is to have a builder but this is frowned upon as an API pattern and instead mostly used in higher level libraries/frameworks (ASP.NET for instance). This is solvable via taking an internal snapshot of the options but will need to be considered in any threat modelling. ## Example Usage ``` var options = new ServerAuthenticationOptions() { EnabledProtocols = SslProtocols.Tls12 | SslPRotocols.Tls11, ApplicationProtocols = new List() { ApplicationProtocol.Http2, ApplicationProtocol.Http11 } }; var secureStream = new SslStream(innerStream); await secureStream(options, token); ``` ## References #9608 SNI #4721 ALPN #23077 Previous API proposal [RFC 7301 ALPN](https://tools.ietf.org/rfc/rfc7301.txt) [RFC 3546 SNI and Max fragment](https://www.ietf.org/rfc/rfc3546.txt) [IANA ALPN Protocol Ids](https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids) [EDIT] Updated formatting by @karelz" +23180 area-System.Net Enable full duplex communication with ManagedHandler ManagedHandler currently waits for all of the request content to be sent before it processes any response content. While that matches with what many servers do (not sending any response content until all request content has been received), some sites and situations do benefit from or even require full duplex communication, such that the response can be processed even while the request content is being sent. This change is also a necessary step towards enabling Expect: 100-continue, as we need to be able to receive the response header before having sent the content, and even without Expect: 100-continue, this allows us to stop sending a large request body if a server quickly sends back a status indicating the transfer isn't needed (e.g. a redirect). This change also improves on the cancellation support for sending the request body. The send cancellation token is now embedded in the request content stream and uses that token for all operations. Fixes https://github.com/dotnet/corefx/issues/23145 Fixes https://github.com/dotnet/corefx/issues/23146 cc: @geoffkizer +23182 area-System.Drawing System.Drawing: Consolidate GraphicsContainer code accross Unix and Windows Use the `GraphicsContainer` class from the Windows implementation on both Windows and Unix. Consolidate the the P/Invoke-related code in `GdiPlusNative.cs` Remove a unused `PenAlignment.cs` file (the Windows implementation is used on both Windows and Unix). +23183 area-System.Drawing System.Drawing: Consolidate LinearGradientBrush and PathGradientBrush classes Use the Windows implementation of `LinearGradientBrush` and `PathGradientBrush` on all platforms, and consolidate the P/Invoke methods, too. +23186 area-System.Net HttpClient: several HeaderDescriptor-related improvements (1) Change managed handler parser to use HeaderDescriptor directly (2) Add known header values to HeaderDescriptor and define these for a few headers (3) Remove Parser field from HttpStoreItemInfo, since we can get it from the HeaderDescriptor instead (4) Remove some dead code This shows about a 3.5% improvement on the HttpClientPerf GET test. @stephentoub @davidsh @Priya91 @wfurt @dotnet-bot test Outerloop Linux x64 Debug Build @dotnet-bot test Outerloop Windows x64 Debug Build @dotnet-bot test Outerloop OSX x64 Debug Build +23189 area-System.Drawing System.Drawing: Consolidate the Matrix and Region classes Use the `Matrix` and `Region` classes from the Windows implementation on Unix as well. Move the P/Invoke methods to `GdiplusNative.cs` +23191 area-System.Drawing System.Drawing: Consolidate CopyPixelOperation and PrivateFontCollection classes Use the Windows implementation of `CopyPixelOperation` and `PrivateFontCollection` on both Windows and Unix. Update the P/Invoke declarations accordingly. +23193 area-System.Net Could not load file or assembly System.Net.Http Version=4.0.0.0 > System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. > File name: 'System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' Does anyone have any experience with this kind of issue? It is a .net core 1.1 application, I have seen several solutions for similar problems, but they did not seem to work. +23194 area-System.Drawing System.Drawing: Consolidate the FontFamily class Use the Windows implementation of the `FontFamily` class for both Windows and Unix. Update the P/Invoke declarations accordingly. +23195 area-System.Drawing System.Drawing: Start consolidating the Graphics class A lot (but not all) of the code in the `Graphics` class can be shared across Windows & Unix. Start implementing this by implementing `Graphics` as a partial class, with the shared code in `Graphics.cs` and the platform-specific code in `Graphics.Windows.cs` and `Graphics.Unix.cs`. Update the P/Invoke code accordingly. +23196 area-System.Net Add Expect: 100-continue support to ManagedHandler Fixes https://github.com/dotnet/corefx/issues/23144 cc: @geoffkizer +23197 area-System.Runtime Need consistent way to get Runtime framework version "For applications that may run on multiple versions, it can be useful diagnostic info to output ("".NET Framework 4.7.1"" or "".NET Core App 2.0.1"", etc). As far as I can see, there's no way to do this since `TargetFrameworkAttribute` is not present on either `mscorlib` or `System.Private.CoreLib`. Putting those on would be very helpful as well. At least `mscorlib` has an `AssemblyFileVersion` of `4.7.2542.1`. I don't see any such thing on .NET Core app that maps to its ""real"" version. Instead, .NET Core App 1.0.5 has `[assembly: AssemblyFileVersion(""4.6.25211.02"")]`. The ask is to have a reliable way, at runtime, to get a value that says something like "".NET Framework v4.7.1"", "".NET Core App 2.0.1"" or ""UWP ..."". Possibly related to https://github.com/dotnet/corefx/issues/23063" +23198 area-Meta Typo +23201 area-System.Threading System.Threading.Tasks tests hanging In the last few weeks, CI runs have been timing out sporadically due to the System.Threading.Tasks test project hanging. It looks like it's due to the RunStackGuardTests test; this test is not new nor has it been changed recently. +23202 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandlerTest/AllowAutoRedirect_True_ValidateNewMethodUsedOnRedirection(statusCode: 302, oldMethod: \""HEAD\"", newMethod: \""HEAD\"") failed with ""Xunit.Sdk.FalseException""" "Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/AllowAutoRedirect_True_ValidateNewMethodUsedOnRedirection(statusCode: 302, oldMethod: \""HEAD\"", newMethod: \""HEAD\"")` has failed. Faulted: System.AggregateException: One or more errors occurred. (An error occurred while sending the request.) ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: The connection with the server was terminated abnormally\r at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r at System.Threading.Tasks.RendezvousAwaitable`1.GetResult()\r at System.Net.Http.WinHttpHandler.d__105.MoveNext()\r --- End of inner exception stack trace ---\r at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r at System.Net.Http.HttpClient.d__58.MoveNext()\r --- End of inner exception stack trace ---\r ---> (Inner Exception #0) System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: The connection with the server was terminated abnormally\r at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r at System.Threading.Tasks.RendezvousAwaitable`1.GetResult()\r at System.Net.Http.WinHttpHandler.d__105.MoveNext()\r --- End of inner exception stack trace ---\r at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r at System.Net.Http.HttpClient.d__58.MoveNext()<---\r \r Expected: False\r Actual: True Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandlerTest.<>c__DisplayClass46_1.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.Tasks.ContinuationTaskFromTask.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__279_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__46.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : Master - 20170814.01 (Core Tests) Failing configurations: - Windows.10.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170814.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FAllowAutoRedirect_True_ValidateNewMethodUsedOnRedirection(statusCode:%20302,%20oldMethod:%20%5C%22HEAD%5C%22,%20newMethod:%20%5C%22HEAD%5C%22)" +23204 area-System.Net Test: System.Net.WebSockets.Client.Tests.KeepAliveTest / KeepAlive_LongDelayBetweenSendReceives_Succeeds Opened on behalf of @Jiayili1 The test `System.Net.WebSockets.Client.Tests.KeepAliveTest/KeepAlive_LongDelayBetweenSendReceives_Succeeds` has failed. System.Net.WebSockets.WebSocketException : The WebSocket is in an invalid state ('Aborted') for this operation. Valid states are: 'Open, CloseReceived, CloseSent, Closed' Stack Trace: at System.Net.WebSockets.WinRTWebSocket.CheckValidState($WebSocketState[] validStates) in E:\A\_work\908\s\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WinRTWebSocket.cs:line 546 at System.Net.WebSockets.WinRTWebSocket.InterlockedCheckAndUpdateCloseState($WebSocketState newState, $WebSocketState[] validStates) in E:\A\_work\908\s\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WinRTWebSocket.cs:line 508 at System.Net.WebSockets.WinRTWebSocket.d__36.MoveNext() in E:\A\_work\908\s\corefx\src\System.Net.WebSockets.Client\src\System\Net\WebSockets\WinRTWebSocket.cs:line 259 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at System.Net.WebSockets.Client.Tests.KeepAliveTest.d__1.MoveNext() in E:\A\_work\908\s\corefx\src\System.Net.WebSockets.Client\tests\KeepAliveTest.cs:line 33 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 Build : UWP 6.0 - 20170813.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Release Detail: https://mc.dot.net/#/product/netcore/uwp60/source/official~2Fcorefx~2Frelease~2Fuwp6.0~2F/type/test~2Ffunctional~2Filc~2F/build/20170813.01/workItem/System.Net.WebSockets.Client.Tests.Execution/analysis/xunit/System.Net.WebSockets.Client.Tests.KeepAliveTest~2FKeepAlive_LongDelayBetweenSendReceives_Succeeds +23207 area-System.Net "System.Net.Sockets.Tests.TimeoutTest.SendTimesOut_Throws failed with ""Xunit.Sdk.InRangeException""" Failed test: System.Net.Sockets.Tests.TimeoutTest.SendTimesOut_Throws Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win7_debug/178/testReport/System.Net.Sockets.Tests/TimeoutTest/SendTimesOut_Throws_forceNonBlocking__False_/ Configuration: outerloop_netcoreapp_win7_debug MESSAGE: ~~~ Assert.InRange() Failure\r\nRange: (1500 - 3000)\r\nActual: 3075.975 ~~~ STACK TRACE: ~~~ at System.Net.Sockets.Tests.TimeoutTest.SendTimesOut_Throws(Boolean forceNonBlocking) in D:\j\workspace\outerloop_net---92764178\src\System.Net.Sockets\tests\FunctionalTests\TimeoutTest.cs:line 128 ~~~ +23208 area-System.Xml System.Xml.Tests.CXmlResolverTest.XmlResolver7 failed in CI "Failed test: System.Xml.Tests.CXmlResolverTest.XmlResolver7 Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/windows_nt_debug/3994/testReport/System.Xml.Tests/CXmlResolverTest/XmlResolver7_xslInputType__URI__readerType__XmlValidatingReader__outputType__Stream__navType__XPathDocument_/ Configuration: innerloop_netcoreapp_windows_nt_debug MESSAGE: ~~~ System.Xml.Xsl.XslTransformException : An error occurred while loading document 'C:\\Users\\dotnet-bot\\AppData\\Local\\Temp\\xmlResolver_document_function.xml'. See InnerException for a complete description of the error. ---- System.IO.FileNotFoundException : Could not find file 'C:\\Users\\dotnet-bot\\AppData\\Local\\Temp\\xmlResolver_document_function.xml'. ~~~ STACK TRACE: ~~~ at System.Xml.Xsl.Runtime.XmlQueryContext.GetDataSource(String uriRelative, String uriBase) in D:\j\workspace\windows_nt_debug88592b53\src\System.Private.Xml\src\System\Xml\Xsl\Runtime\XmlQueryContext.cs:line 156 at (XmlQueryRuntime ) at Root(XmlQueryRuntime ) at Execute(XmlQueryRuntime ) at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlSequenceWriter results) in D:\j\workspace\windows_nt_debug88592b53\src\System.Private.Xml\src\System\Xml\Xsl\XmlILCommand.cs:line 139 at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter writer) in D:\j\workspace\windows_nt_debug88592b53\src\System.Private.Xml\src\System\Xml\Xsl\XmlILCommand.cs:line 114 at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, XmlWriter results, XmlResolver documentResolver) in D:\j\workspace\windows_nt_debug88592b53\src\System.Private.Xml\src\System\Xml\Xslt\XslCompiledTransform.cs:line 450 at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, Stream results) in D:\j\workspace\windows_nt_debug88592b53\src\System.Private.Xml\src\System\Xml\Xslt\XslCompiledTransform.cs:line 316 a t System.Xml.Tests.XsltApiTestCaseBase2.Transform(String szXmlFile, OutputType outputType, NavType navType, Boolean errorCase) in D:\j\workspace\windows_nt_debug88592b53\src\System.Private.Xml\tests\Xslt\XslCompiledTransformApi\XsltApiV2.cs:line 543 at System.Xml.Tests.XsltApiTestCaseBase2.Transform(String szXmlFile, OutputType outputType, NavType navType) in D:\j\workspace\windows_nt_debug88592b53\src\System.Private.Xml\tests\Xslt\XslCompiledTransformApi\XsltApiV2.cs:line 524 at System.Xml.Tests.CXmlResolverTest.XmlResolver7(XslInputType xslInputType, ReaderType readerType, OutputType outputType, NavType navType) in D:\j\workspace\windows_nt_debug88592b53\src\System.Private.Xml\tests\Xslt\XslCompiledTransformApi\XslCompiledTransform.cs:line 636 ----- Inner Stack Trace ----- at System.IO.FileStream.OpenHandle(FileMode mode, FileShare share, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize) at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy) in D:\j\workspace\windows_nt_debug88592b53\src\System.Private.Xml\src\System\Xml\XmlDownloadManager.cs:line 26 at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn) in D:\j\workspace\windows_nt_debug88592b53\src\System.Private.Xml\src\System\Xml\XmlUrlResolver.cs:line 62 at System.Xml.Xsl.Runtime.XmlQueryContext.GetDataSource(String uriRelative, String uriBase) in D:\j\workspace\windows_nt_debug88592b53\src\System.Private.Xml\src\System\Xml\Xsl\Runtime\XmlQueryContext.cs:line 135 ~~~" +23209 area-System.Net Test failure: System.Net.Http.Functional.Tests.DiagnosticsTest / SendAsync_ExpectedDiagnosticCancelledLogging ## Types of failures Related to #26042 ## History of failures Day | Build | OS | Error message -- | -- | -- | -- 5/26 | 20170526.52 | Centos73 | Assert: Expected: 42, Actual: 134 5/31 | 20170531.02 | Suse42.2 | Assert: Expected: 42, Actual: 127 5/31 | 20170601.01 | Suse42.2 | Assert: Expected: 42, Actual: 134 6/7 | 20170607.02 | Suse42.2 | Assert: Expected: 42, Actual: 134 6/12 | 20170612.02 | Ubuntu16.04 | Assert: Expected: 42, Actual: 134 6/13 | 20170613.01 | SLES12 | Assert: Expected: 42, Actual: 134 6/17 | 20170617.01 | RedHat72 | Assert: Expected: 42, Actual: 134 6/19 | 20170619.01 | RedHat73 | Assert: Expected: 42, Actual: 134 6/19 | 20170619.01 | Ubuntu17.04 | Assert: Expected: 42, Actual: 127 6/22 | 20170622.03 | Suse42.2 | Assert: Expected: 42, Actual: 134 6/26 | 20170626.01 | RedHat73 | Assert: Expected: 42, Actual: 134 7/3 | 20170703.02 | RedHat72 | [ManagedHandler] Assert: Expected: 42, Actual: -122 7/7 | 20170707.01 | RedHat73 | [ManagedHandler] Assert: Expected: 42, Actual: -122 7/7 | 20170708.01 | Centos73 | [ManagedHandler] Assert: Expected: 42, Actual: -122 7/13 | 20170713.01 | Win7 | [ManagedHandler] Assert: Expected: 42, Actual: -532462766 7/14 | 20170714.02 | Ubuntu16.10 | [ManagedHandler] Assert: Expected: 42, Actual: -122 7/19 | 20170719.03 | Centos73 | Assert: Expected: 42, Actual: -122 7/20 | 20170720.02 | RedHat72 | [ManagedHandler] Assert: Expected: 42, Actual: -122 8/13 | 20170813.01 | Debian90 | Assert exit code: Expected: 42, Actual: 134 8/19 | 20170819.02 | Ubuntu17.10 | Assert exit code: Expected: 42, Actual: 134 8/20 | 20170820.02 | Debian90 | Assert exit code: Expected: 42, Actual: 134 8/29 | 20170829.01 | RedHat69 | Remote process failed with an unhandled exception. 8/29 | 20170829.01 | RedHat69 | Remote process failed with an unhandled exception. 8/29 | 20170829.02 | RedHat69 | Remote process failed with an unhandled exception. 8/29 | 20170829.02 | RedHat69 | Remote process failed with an unhandled exception. 9/11 | 20170911.01 | Win8.1 | [ManagedHandler] Remote process failed with an unhandled exception. # Original report Failed test: System.Net.Http.Functional.Tests.ManagedHandler_DiagnosticsTest.SendAsync_ExpectedDiagnosticCancelledLogging Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_release/134/testReport/System.Net.Http.Functional.Tests/ManagedHandler_DiagnosticsTest/SendAsync_ExpectedDiagnosticCancelledLogging/ Configuration: outerloop_netcoreapp_windows_nt_release MESSAGE: ~~~ System.Diagnostics.RemoteExecutorTestBase+RemoteInvokeHandle+RemoteExecutionException : Remote process failed with an unhandled exception. ~~~ STACK TRACE: ~~~ Child exception: Xunit.Sdk.TrueException: Cancellation was not logged within 1 second timeout. Expected: True Actual: False at System.Net.Http.Functional.Tests.DiagnosticsTest.<>c.b__5_0() in D:\j\workspace\outerloop_net---7a39cc82\src\System.Net.Http\tests\FunctionalTests\DiagnosticsTests.cs:line 300 Child process: System.Net.Http.Functional.Tests, Version=4.2.1.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb System.Net.Http.Functional.Tests.DiagnosticsTest+<>c Int32 b__5_0() ~~~ +23211 area-System.Data SqlClient v4.4.0 on .NET core 2.0 throws FileLoadException when property's set "(Using vs 2017, 15.3 preview 17.1, dotnet --version: 2.0.0-preview2-006497) This code: ```cs using System; using System.Data.SqlClient; namespace ConsoleApp3 { class Program { static void Main(string[] args) { var con = new SqlConnection(); con.ConnectionString = ""data source=;initial catalog=master;integrated security=SSPI;persist security info=False;packet size=4096""; con.Open(); con.Close(); } } } ``` using project file: ``` xml Exe netcoreapp2.0 ``` throws: ``` Unhandled Exception: System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.SqlConnection' threw an exception. ---> System.IO.FileLoadException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) at System.Data.SqlClient.SqlConnection..cctor() --- End of inner exception stack trace --- at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key) at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value) at ConsoleApp3.Program.Main(String[] args) in c:\users\frans\documents\visual studio 2017\Projects\ConsoleApp3\ConsoleApp3\Program.cs:line 11 Press any key to continue . . . ``` Looking into the v4.4.0 SqlClient package, it appears to contain SqlClient v4.2 dll. Not sure whether that's OK or not, but at least it's impossible to do anything with it on .net core 2.0 " +23213 area-System.Runtime Binary Serializing an object with a property of type 'Type' fails with SerializationException "(vs2017 15.3 preview 7.1. dotnet --version: 2.0.1-servicing-006924) This code: ```cs using System; using System.Data.SqlClient; using System.Diagnostics; using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace ConsoleTester { class Program { static void Main(string[] args) { BinaryFormatter formatter = new BinaryFormatter(); MemoryStream stream = new MemoryStream(); var toSerialize = new Foo() {Bar = ""Bar"", T = typeof(string)}; formatter.Serialize(stream, toSerialize); stream.Seek(0, SeekOrigin.Begin); Foo deserialized = (Foo)formatter.Deserialize(stream); stream.Close(); Console.WriteLine(""Deserialized: "" + deserialized.Bar); } } [Serializable] public class Foo { public string Bar { get; set; } public Type T { get; set; } } } ``` results in: ``` Unhandled Exception: System.Runtime.Serialization.SerializationException: Type 'System.RuntimeType' in Assembly 'System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' is not marked as serializable. at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize(Object obj, ISurrogateSelector surrogateSelector, StreamingContext context, SerObjectInfoInit serObjectInfoInit, IFormatterConverter converter, ObjectWriter objectWriter, SerializationBinder binder) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo) at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize(Object graph, BinaryFormatterWriter serWriter, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize(Stream serializationStream, Object graph, Boolean check) at ConsoleTester.Program.Main(String[] args) in C:\Myprojects\VS.NET Projects\LLBLGen Pro v5.3\UnitTests\LLBLGen Pro\LowLevelAPI\NUnitTests\SelfServicing\ConsoleTester\ConsoleTester\Program.cs:line 16 Press any key to continue . . . ``` Looking at RuntimeType in CoreCli, it indeed isn't Serializable, while the type RuntimeType in .NET full is serializable. This causes problems when porting code over from .NET full to .NET core 2.0 and using BinarySerialization. As the BinaryFormatter is available, one would assume it would work with normal arbitrary code like the simple class above. " +23216 area-System.Net Fix ManagedHandler redirect post->get behavior Fixes https://github.com/dotnet/corefx/issues/22700 cc: @geoffkizer, @davidsh +23218 area-System.Security [release/1.1] Simplify X509Chain building with OpenSSL Backport #19017 (and #23026) to release/1.1 so our X509Chain processing model is the same across all released versions. The change for 2.0 changed the signature of the shim function since it's a side-by-side model. For 1.1 a new shim function was added and the P/Invoke target changed as a defensive measure. This also includes the packaging changes necessary to service the X509Certificates library (which should pull up the native shim change through the package closure). Addresses #23023 for 1.1 +23219 area-System.Security [release/1.0] Prevent crash when Openssl's PKCS12_parse function fails. Backport #11147 to release/1.0. Packaging changes based off of #18365. Fixes #23022. +23220 area-Infrastructure Ensure build of netcoreapp vertical of CoreFx can be done without past packages Some recent changes cause us to require past shipped packages, see https://github.com/dotnet/corefx/pull/23168#discussion_r132996424. We should eliminate those. The only packages pulled down for netcoreapp vertical build should be buildtools (and its related closure), netstandard, desktop targeting packs, and the runtime. /cc @weshaggard @mellinoe +23221 area-System.Diagnostics FW link on release notes is broken in DiagnosticsSource https://preview.nuget.org/packages/System.Diagnostics.DiagnosticSource/ Release notes link https://go.microsoft.com/fwlink/?LinkID=799421 leads to 1.1 release notes https://github.com/dotnet/core/blob/master/release-notes/1.1/1.1.0-preview1.md +23223 area-System.Xml Fix intermittent issues caused by two different xsl tests accessing same file Fixes: https://github.com/dotnet/corefx/issues/23208 Seems like two different projects use the same temporary path and possibly run tests in parallel (parallelization is disabled per project but two different projects can run in parallel I believe) +23224 area-System.Net Add IPAddress Span-based APIs resolves #22607 This adds ```C# public IPAddress(ReadOnlySpan address) public IPAddress(ReadOnlySpan address, long scopeid) public bool TryWriteBytes(Span destination, out int bytesWritten) public static IPAddress Parse(ReadOnlySpan ipSpan) public static bool TryParse(ReadOnlySpan ipSpan, out IPAddress address) public bool TryFormat(Span destination, out int bytesWritten) ``` Assumption is that the use of `ReadOnlySpan` or `Span` overloads are by the most demanding use cases so where it makes sense the existing methods call the Span related methods or the internal helper methods have been converted to use spans. @stephentoub I think this is ready for review now +23229 area-Infrastructure Could not load file or assembly 'netfx.force.conflicts' I've compiled project with new release of VS 2015.3. Installed .Net Core 2.0 SDK. Project is a pretty old Asp.Net web application, where all project deps were converted to .Net Standard. No on every page load I get ``` [BadImageFormatException: Cannot load a reference assembly for execution.] [BadImageFormatException: Could not load file or assembly 'netfx.force.conflicts' or one of its dependencies. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058)] System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +225 System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +110 System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +22 System.Reflection.Assembly.Load(String assemblyString) +34 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +48 [ConfigurationErrorsException: Could not load file or assembly 'netfx.force.conflicts' or one of its dependencies. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058)] System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +771 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +256 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +58 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +236 System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +69 System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +139 System.Web.Compilation.BuildManager.ExecutePreAppStart() +172 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +912 [HttpException (0x80004005): Could not load file or assembly 'netfx.force.conflicts' or one of its dependencies. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058)] System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +534 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +111 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +718 ``` How to resolve this? +23230 area-System.IO Tests in System.IO.Ports are terminating the runner for some test failures Some tests are starting threads and when these threads crash because of test failures the runner stops. It will be more productive to have individual tests failing since the full run of the tests is pretty long if either null modem or loopback are present. +23231 area-System.Net WebProxy_BypassOnLocal_MatchesExpected fails in Linux CI https://mc.dot.net/#/user/ericstj/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/58821d965b53932b09804845d6d0f752aff9c28d/workItem/System.Net.WebProxy.Tests/analysis/xunit/System.Net.Tests.WebProxyTest~2FWebProxy_BypassOnLocal_MatchesExpected Appears to be transient issue. Test leg was Ubuntu.1604.Amd64.Open-Release-x64. ``` Unhandled Exception of Type System.Net.Internals.SocketExceptionFactory+ExtendedSocketException Message : System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : No such device or address Stack Trace : at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 46 at System.Net.Dns.ResolveCallback(Object context) in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 290 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 420 at System.Net.Dns.EndGetHostEntry(IAsyncResult asyncResult) in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 562 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.WebProxyTest.d__10.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Linq/src/System/Linq/Select.cs:line 129 ``` +23232 area-System.Security [release/1.0] Simplify X509Chain building with OpenSSL Backport #23218 to release/1.0 so our X509Chain processing model is the same across all released versions. In the 1.1 version of this change the chain builder context used X509UpRef, which was added in 1.1 to reduce memory, since that isn't available in 1.0 this edition uses X509Duplicate. This also includes the packaging changes necessary to service the X509Certificates library (which should pull up the native shim change through the package closure). Addresses #23023 for 1.0. +23233 area-System.Security System.Security.Cryptography.Cng package needs Xamarin support Xamarin SDKs have custom System.Security.Cryptography.Cng facade because the underlying types exist in system assemblies but System.Security.Cryptography.Cng package is missing `_._` redirects to allow this facade to be used +23234 area-System.IO Test AbortOnErrorShouldBeClearedOnOpen is disabled on Uap and UapAot The current implementation of this test requires reflection that is not available for the internal type without adding the reflection for the whole serial ports (which increase the size of the assembly). So for now the test is being disabled. +23237 area-System.Collections Move argument validation for some ImmutableList functions to ImmutableList.Node I am still breaking up parts of https://github.com/dotnet/corefx/pull/15382 into different PRs to make reviewing easier. In this PR, I've removed argument validation for a couple of `ImmutableList` functions. I did this since I noticed many functions validated their arguments twice, once in `ImmutableList` and once in `ImmutableList.Node`. It's simpler if we just omit validation for the former and let the `Node` class take care of it. There were a few places where `ImmutableList` and `Node` validated arguments differently. For those cases, I copied and pasted the `ImmutableList` validation into the `Node` method to preserve exception behavior. /cc @safern, @ianhays, @AArnott +23240 area-System.Runtime Proposal: Enum.IsDefined() I am aware of the issues https://github.com/dotnet/corefx/issues/10692 and https://github.com/dotnet/corefx/issues/15453. However, https://github.com/dotnet/corefx/issues/10692 isn't a formal proposal, and https://github.com/dotnet/corefx/issues/15453 will take forever to get through because it has so much other stuff. I think this API is valuable enough that I am opening a new issue to expedite things. ## Proposal ```cs namespace System { public abstract class Enum : ValueType, IComparable, IConvertible, IFormattable { public bool IsDefined(); } } ``` ## Performance The new API doesn't need to have great performance. (Yes, it will still box.) 99% of the time I use this in `Debug.Assert`, so it has no effect on release perf. Also, as @benaadams mentions in the first issue, this is faster than the existing `IsDefined` method because > Enum.IsDefined(typeof(MyEnum), argument) is also quite slow as it needs to do lots of conversion checks etc; whereas if you already have the enum these don't need to be done. It's faster and terser than the existing method and it's used very often, so it seems reasonable to add this, no? **edit:** If for whatever reason the boxing becomes a performance problem, we can consider making the method an intrinsic to avoid it (just like https://github.com/dotnet/coreclr/pull/7895 avoided boxing for `Enum.GetHashCode`). +23242 area-System.Drawing Adding System.Drawing.Printing PrinterSettings tests. Adding System.Drawing.Printing PrinterSettings tests. (#23161) (#20711) +23243 area-System.Reflection Tests for fix to AssemblyName(string) version parsing Depends on https://github.com/dotnet/coreclr/pull/13373 Part of fix for https://github.com/dotnet/corefx/issues/22663 +23244 area-System.Net HttpWebRequest.Host throw WebException "Hi, I use .net core 2.0 with VS 15.3. This example work fine on Framework .net 6.4.2. This request work fine: ```C# string host = ""www.google.fr""; string url = ""https://"" + host; try { System.Net.HttpWebRequest request = System.Net.HttpWebRequest.CreateHttp(url); request.UserAgent = ""Mozilla/5.0 (compatible;)""; request.Timeout = 10000; //request.Host = uri.Host; HttpWebResponse response = request.GetResponse() as HttpWebResponse; } catch(Exception ex) { Console.WriteLine(ex.ToString()); } ``` But when a try to use Host with IP address. I obtains with exception: ```C# string host = ""www.google.fr""; string url = ""https://"" + host; try { Ping ping = new Ping(); PingReply reply = ping.Send(host); System.Net.HttpWebRequest request = System.Net.HttpWebRequest.CreateHttp(""https://"" + reply.Address.ToString()); request.UserAgent = ""Mozilla/5.0 (compatible;)""; request.Timeout = 10000; request.Host = host; HttpWebResponse response = request.GetResponse() as HttpWebResponse; } catch (Exception ex) { Console.WriteLine(ex.ToString()); } ``` **Exception:** > System.Net.WebException: An error occurred while sending the request. A security error occurred ---> System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: A security error occurred > at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() > at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() > at System.Net.Http.WinHttpHandler.d__105.MoveNext() > --- End of inner exception stack trace --- > at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() > at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) > at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() > at System.Net.Http.HttpClient.d__59.MoveNext() > --- End of stack trace from previous location where exception was thrown --- > at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() > at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) > at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() > at System.Net.HttpWebRequest.d__194.MoveNext() > --- End of stack trace from previous location where exception was thrown --- > at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() > at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) > at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() > at System.Net.HttpWebRequest.GetResponse() > --- End of inner exception stack trace --- > at System.Net.HttpWebRequest.GetResponse() > at HttpWebRequest.Program.Main(String[] args) in..Program.cs:line 38 " +23248 area-Microsoft.CSharp Remove unused properties from ErrorType `ErrorType` never has `TypeParent` set to anything except null, and either both the `nameText` is not null and the namespace parent is the root namespace, or both are null, so the tests for it can become tests on `nameText`. +23250 area-System.Net System.Net.WebSockets doesn't allow setting of socket options in any way. The current API surface of .NET core doesn't expose the underlying TCPSocket so there is no way to set socket options. My specific use cases requires me to disable naggle algorithm. If I don't there are stalls that make it unuseable in my application. I would really like it if we could either access the underlying TCP socket object or allow us to set the socket options in some way. Currently I am forced to disable naggle system wide... +23251 area-System.IO Prevent serial port test failures of aborting the run Not pretty but a way to get tests to run with the flaky driver/ports so runs with and without changes can be easily compared (i.e.: one could check if the set of failures is affected by the changes or not). Basically this change replaces `Thread` usage with `Task` and handle the failures on the test case directly. Notice that the default diff from GH is going to make this looks bigger than it is, I recommend ignoring whitespace diffs to better see this. This fixes #23230 +23253 area-System.IO Added BinaryWriter Span-based APIs Added tests for BinaryWriter Span-based APIs and exposed them from System.IO contract. Connected to https://github.com/dotnet/coreclr/pull/13378 +23255 area-Meta https://apisof.net/ is having certificate error ``` This site is not secure This might mean that someone's trying to fool you or steal any info you send to the server. You should close this site immediately The website's security certificate is not yet valid or has expired. Error Code: DLG_FLAGS_SEC_CERT_DATE_INVALID ``` Browser: Edge +23260 area-System.Runtime GetTypeFromProgID not working on NetStandard 2.0 "Hi folks, This piece of code works fine in 4.61 and later: ` public sealed class ComLoader { private string m_fullName; private Type m_t; private Object m_o; public ComLoader(string fullName) { m_fullName = fullName; } public void InvokeMethod(string name, object[] parameters, out string result) { m_t = Type.GetTypeFromProgID(m_fullName); if (m_t == null) throw new Exception(""'"" + name + ""' not found""); m_o = Activator.CreateInstance(m_t); var r = m_t.InvokeMember ( name, System.Reflection.BindingFlags.InvokeMethod, null, m_o, parameters ); if (r == null) result = null; else result = r.ToString(); } } ` I call it from console app (4.6.1 and later): ` var x = new ComLoader(""VBAInterop.myClass""); x.InvokeMethod(""myMethod"", null, out string r); ` When class ComLoader is within netstandard2.0 class library, code raises this exception: Retrieving the COM class factory for component with CLSID {9910CCF8-F352-4823-AF20-EE524E614D82} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) at m_o = Activator.CreateInstance(m_t); When class ComLoader is within net 4.6.1 and later class library, code works fine. Please can you help me?" +23261 area-System.IO Add support for serial port to UWP "Change in corefx: UWP support for serial port (#22887) * [WIP] add serial port to UWP update build and test tools * OpenCommPort signature fixes * [WIP] review feedback * [WIP] add missing files * fix packaging issue * [WIP] replaced ThreadPool.BindHandle Replaced calls to ThreadPool.BindHandle w/ ThreadPoolBoundHandle.BindHandle This is still working in progress due to issues in tests preventing full code coverage (same issues happening without the current changes). minor self-review * CR feedback * [WIP] System.IO.Ports NullModem running all tests * Finish UWP work to enable serial ports * Revert ""[WIP] System.IO.Ports NullModem running all tests"" This reverts commit a97edbaba463feb1871100cdcafc5f9d5f79663c. * add comment for conditional fact * changes for AbortOnError" +23262 area-System.Text GroupCollection should implement IReadOnlyDictionary interface to align with its Dictionary-Type Usage "```GroupCollection``` acts like a dictionary, but doesn't provide all of the familiar methods found on Dictionary collections. This makes it harder to inspect contents to make informed decisions on its contents to drive logic. For instance, determining if a key was present in a named capture group before trying to perform logic with the result. This can be seen as a follow-on to issue #271 (it was listed in the Open Questions section). Rationale and Usage ----------------------- This was something I stumbled upon when trying to make a RegEx expression in two forms, one with a lot of named parameters, but that were all optional. I wanted to check if the parameters existed before proceeding to perform logic with them but discovered that there was no method to check if a named capture group was actually captured. Currently, I can use an indexer to access a specific group name like ``` match.Groups[""options""] ``` But unlike a normal dictionary, I can't call ```match.Groups.ContainsKey('options"")``` to see if it exists first before retrieval if I have optional named capture groups. The current Contains method only checks on the **object** not the named key. Currently, the group if *not* captured returns an empty string, but that is a bit misleading, as the group could have been captured but contained no data. So, there's an ambiguous state. If we had methods to check if the capture was performed, we could leave the group out and have KeyNotFoundExceptions or nulls to differentiate from existence vs. no data. This would let us then do: ``` if (match.Groups.ContainsKey(""options"")) { // do something with match.Groups[""options""] } ``` OR ``` Group options; if (match.Groups.TryGetValue(""options"", out options)) { // do something with options group now. } ``` Proposed API --------------- ``` public GroupCollection : IReadOnlyDictionary, ... { bool ContainsKey(string key); bool TryGetValue(string key, out Group group); ... } ``` Details ------- - As mentioned, this was an Open Question of #271 that wasn't resolved. It should be a fairly straight-forward addition to the class. Updates --------- - 8/16/17 Updated request to align with review process format and changed to explicitly call out IReadOnlyDictionary interface. " +23264 area-System.IO UWP branch: remove warning suppression after build tools are updated. /cc @joperezr @JeremyKuhne Suppressing BCL0015 was needed in order to use `kernelbase.dll!OpenCommPort` on `release/UWP6.0` when merging we can check if build tools was updated to a version that does not require the suppression anymore. +23265 area-Serialization Update version to 9.9.9 Update the version to a fake one. @shmao @zhenlan +23267 area-System.Data Added Close() to DbDataReader contract. Also changed DbDataReader.Dispose() to call Close(), so as to match the Framework implementation. Ports DbDataReader.Close() changes from https://github.com/dotnet/corefx/commit/7888677b3c53596085c2fa53860d9a0519eeecfd to 1.1.0. Fixes issue: https://github.com/dotnet/corefx/issues/2249 Shiproom approval pending. +23268 area-System.Net [release/1.1.0] Do not service System.Net.Requests. cc @ericstj @danmosemsft @weshaggard @davidsh This change reverts servicing for System.Net.Requests, servicing is not required for assemblies depending on another serviced assembly. We ensure the System.Net.Requests tests pick the latest serviced System.Net.Http, by adding a direct project reference from the System.Net.Requests test assembly to the System.Net.Http pkgproj. +23269 area-System.Security Use Span overloads with Rfc2898DeriveBytes computations Change from ComputeHash(byte[])=>byte[] to TryComputeHash(src, dest) to reduce the number of allocations involved. For iteration counts of 1000, 10000, and 100000 it shows a 15% reduction in time, and almost entire elimination of GC (most of that 15%). Fixes https://github.com/dotnet/corefx/issues/16925. +23272 area-Microsoft.CSharp Remove dead code from CreateArray in Microsoft.CSharp & tidy the rest * Remove dead code from `BindArrayIndexCore` Is only ever called with expression typed `ArrayType` so remove path for other types. * Remove unused `BindingFlags` argument. * Include fallback within `ChooseArrayIndexType` `Int32` is always used when it fails to find a match, so move that logic into it, itself. * Remove branch for `CreateArrayIndex` called with non-array. Never happens. Also, element type was already found for unsafe check, so pass it in. * Move ArrayType flag setting into ArrayType ctor * Remove bindInder Only caller was removed as dead code. +23273 area-System.IO Address some of the feedback in PR for port SerialPort to UWP6.0 There was some good feedback while porting `SerialPort` to UWP6.0, this issue is to track it, refer to the comments at #23261. +23274 area-Infrastructure Update package/assembly versions for assemblies to be serviced 1.0 cc @danmosemsft @ericstj fixes #23119 @ericstj The System.IO.FileSystem.DriveInfo pkgproj doesn't have the last package version, and looking at nuget.org, the package version seems to be 4.3.0, but not sure which branch version is that. How do I update the package version of this lib here? +23277 area-System.Runtime Expose and test primitive span-based {Try}Parse methods Contributes to dotnet/corefx#22403 Depends on https://github.com/dotnet/coreclr/pull/13389 and https://github.com/dotnet/corert/pull/4327 cc: @jkotas, @KrzysztofCwalina, @tarekgh +23278 area-Microsoft.CSharp Remove dead code concernin TypeParameterType/Symbol from Microsoft.CSharp Most of this is code that relates to possibilities when compiling a generic method (including methods within generic types) that aren't relevant with the concrete types dynamic code works with. * Remove cases concerning `TypeParameterType` conversions Only relevant when compiling generic methods, not in dynamic code. Entails removal of `ERR_TypeVarCantBeNull`. Contributes to #22470 * Remove case for `TypeParameterType` in `AllPossibleInterfaces` Since both call sites ensure the type is a struct, class or interface type, it can only be called with an `AggregateType` or `NullableType` * Remove `_bHasRefBound`, `_bHasValBound` and `_pDeducedBaseClass` Only ever false, false and null respectively. * Remove base and boxing type parameter conversions. Only relevant when compiling generic methods, so never hit in dynamic code. * Don't consider type parameter types in `GetRefEqualSigs` Only comes up when statically compiling generic methods. * Remove unnecessary `goto`s * Don't consider type parameter types in `HasImplicitReferenceConversion` Only comes up when static compiling generic methods. * Reduce repeated checks within `HasImplicitReferenceConversion` (Some of these will become better still when some methods that only return true for `AggregateType` are made sealed and virtual within it) * Remove unnecessary identity check form `HasImplicitReferenceConversion`. Never true when it is called, and if it was true the method should return true anyway. * Move check that `pDest` is `AggregateType` As all true-returning branches depend on it in some way, and it simplifies the rest. * Replace if ladder on types of `AggregateType` into switch on symbol's `AggKind` * Remove `TypeParameterType` case from `MemberLookup.Lookup` Cannot happen outside of static compilation of generic method. * Remove type parameter case from `SearchSingleType` Cannot happen in dynamic code. * Remove `TypeVarsAllowed` and `ExtensionCall` from `MemLookFlags` Unused * Remove `GetInterfaceBounds` from `TypeParameterType` and `TypeParameterSymbol` Always null and no longer used. * Remove `GetEffectiveBaseClass` from `TypeParameterType` & `TypeParameterSymbol` Always null, and unused. (Removing either still results in null being the value that would be found, or removing a case that would throw if it was hittable). +23279 area-Infrastructure Core Tests (2.0.0): All work items have fireball issue for RHEL69 Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170815.02 Failed configurations: Centos.73.Amd64-x64 Debian.87.Amd64-x64 RedHat.69.Amd64-x64 RedHat.72.Amd64-x64 RedHat.73.Amd64-x64 SLES.12.Amd64-x64 Ubuntu.1404.Amd64-x64 Ubuntu.1604.Amd64-x64 suse.422.amd64-x64 +23282 area-System.Data "Test: System.Data.Tests.SqlTypes.SqlStringTest/SqlDateTimeToSqlString failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Data.Tests.SqlTypes.SqlStringTest/SqlDateTimeToSqlString` has failed. Assert.Equal() Failure\r ? (pos 0)\r Expected: 10/22/2002 9:52:30 AM\r Actual: 22/10/2002 9:52:30 AM\r ? (pos 0) Stack Trace: at System.Data.Tests.SqlTypes.SqlStringTest.SqlDateTimeToSqlString() Build : UWP 6.0 - 20170815.01 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug Detail: https://mc.dot.net/#/product/netcore/uwp60/source/official~2Fcorefx~2Frelease~2Fuwp6.0~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170815.01/workItem/System.Data.Common.Tests/analysis/xunit/System.Data.Tests.SqlTypes.SqlStringTest~2FSqlDateTimeToSqlString +23283 area-Infrastructure FileLoadException when referencing log4net on Linux in netcoreapp2.0 "Looking at https://github.com/dotnet/corefx/issues/18088 I would expect to be able to reference log4net but I get downgrade warnings. So I updated the project as below: ``` Exe netcoreapp2.0 win7-x64;centos.7-x64 ``` Code is as simple as it could be. ``` using log4net; namespace ConsoleApp2 { class Program { private static readonly ILog Log = LogManager.GetLogger(typeof(Program)); static void Main(string[] args) { Log.Info(""Hello World""); } } } ``` Publish to win7-x64 and run and I get a working app. Publish to centos.7-x64 and I get the below exception. ``` Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'System.IO.FileSystem, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) Aborted ```" +23284 area-Infrastructure Updating CoreClr dependencies to servicing-25616-01 +23285 area-System.Runtime Set fixed culture for CookieContainer blob sanity check Fixes https://github.com/dotnet/corefx/issues/21720 Not defining a fixed culture causes various test cases to fail sometimes as the at runtime instantiated object isn't the same as the serialized stored one. RemoteExecutor isn't possible in this case as we can't let every test case (~300) invoke a new RemoteExecutor instance. Try-Finally pattern is also not possible as we are using yield return statements. For this method I think this is the best solution. +23286 area-Microsoft.CSharp Remove Microsoft.CSharp's checks on pointer or static type parameters. Since types come from live instances, and pointer operations are already prohibited, this case can't come up. Entails removal of `ERR_BadTypeArgument` and `ERR_GenericArgIsStaticClass`, contributes to #22470 +23287 area-Microsoft.CSharp Don't consider TypeParameterTypes in Microsoft.CSharp constraint checks Since we only consider constraints for calls on actual types (rather than we would if compiling a call from within a generic method), `arg` is never a `TypeParameterType`, so don't consider the case of it being so. Entails removal of `ERR_GenericConstraintNotSatisfiedTyVar`, contributes to #22470 +23291 area-System.Net Test failed: System.Net.Security.Tests.SslStreamCredentialCacheTest / SslStream_SameCertUsedForClientAndServer_Ok ## Types of failures ``` System.TimeoutException : Task timed out after 15000 at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Net.Security.Tests.SslStreamCredentialCacheTest.d__0.MoveNext() in E:\A\_work\1384\s\corefx\src\System.Net.Security\tests\FunctionalTests\SslStreamCredentialCacheTest.cs:line 42 --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- ``` ## History of failures History since 2017/6, when another unrelated problem was addressed in the test. Day | Build | OS | Details --- | --- | --- | --- 11/28 | 20171128.03 | Win7 | 12/18 | CI: 55314276e4392f81422c627c94b074f4da492ca7 | Unknown 12/30 | 20171230.02 | Win7 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171230.02/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.SslStreamCredentialCacheTest~2FSslStream_SameCertUsedForClientAndServer_Ok) 1/3 | CI: ef02f28820e7b930dec93f66d5e7f349be3a80c3 | Win7 | 1/27 | 20180127.01 | Win7 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180127.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.SslStreamCredentialCacheTest~2FSslStream_SameCertUsedForClientAndServer_Ok) 3/16 | 20180316.01 | Win7 3/16 | 20180316.03 | Win7 3/23 | 20180323.03 | Win10 # Original report It timed out, but this test doesn't even use networking. https://github.com/dotnet/corefx/pull/23188 ``` System.Net.Security.Tests.SslStreamCredentialCacheTest.SslStream_SameCertUsedForClientAndServer_Ok [FAIL] System.TimeoutException : The operation has timed out. Stack Trace: D:\j\workspace\windows_nt_re---e95ab8b5\src\Common\tests\System\Threading\Tasks\TaskTimeoutExtensions.cs(23,0): at System.Threading.Tasks.TaskTimeoutExtensions.d__0.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) D:\j\workspace\windows_nt_re---e95ab8b5\src\System.Net.Security\tests\FunctionalTests\SslStreamCredentialCacheTest.cs(49,0): at System.Net.Security.Tests.SslStreamCredentialCacheTest.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) D:\j\workspace\windows_nt_re---e95ab8b5\src\System.Net.Security\tests\FunctionalTests\SslStreamCredentialCacheTest.cs(23,0): at System.Net.Security.Tests.SslStreamCredentialCacheTest.SslStream_SameCertUsedForClientAndServer_Ok() ``` This was on 1.1, though, so maybe something has been fixed since then? +23292 area-System.Data Could not load type 'Microsoft.SqlServer.Server.SqlContext' from assembly 'System.Data, Version=4.0.0.0 I am getting this exception when i tried to restore the Data base using **c# , .Net core2 and VS2017 preview2 ,** here is the sample code SqlConnection sqlConnection = new SqlConnection(ConnectionString); // Error on the line below Microsoft.SqlServer.Management.Common.ServerConnection conn = new Microsoft.SqlServer.Management.Common.ServerConnection(sqlConnection); but this is working in console application . Did i miss anything ... Thanks Victor.A +23293 area-System.Security Updating CoreFx dependencies to servicing-25616-01, and make X509Certificates tests use newest shim. +23294 area-System.IO UWP: Implement SerialPort.GetPortNames Currently it is throws PNSE. When this is done the test `OpenDevices01` should be enabled for Uap, likely it would be able leverage enumeration via registry, unless we run tests on devices that do not have registry information that will be fine. See #21156 for more information. +23296 area-System.IO File.WriteAllTextAsync performance issues "System configuration: * `dotnet --version`: 2.0.0 * OS: Arch Linux I'm facing performance issues using `File.WriteAllTextAsync` in .NET core 2.0. I'm relatively new to .NET core, so I don't know if I'm doing something wrong here. For testing purposes, have written 3 methods that do the same thing in different ways: all of them write some content to a random file, and then delete it. ```c# static async Task WriteAllTextAsync() { string fileName = System.Guid.NewGuid().ToString(); await File.WriteAllTextAsync($""write/{fileName}.txt"", content); File.Delete($""write/{fileName}.txt""); } static void WriteAllText() { string fileName = System.Guid.NewGuid().ToString(); File.WriteAllText($""write/{fileName}.txt"", content); File.Delete($""write/{fileName}.txt""); } static async Task WriteWithStreamWriter() { string fileName = System.Guid.NewGuid().ToString(); using (StreamWriter outputFile = new StreamWriter($""write/{fileName}.txt"")) { await outputFile.WriteAsync(content); } File.Delete($""write/{fileName}.txt""); } ``` I am using the following loop to call these methods: ```c# for (int i = 0; i < 200; ++i) { //""method()"" or ""await async_method()"" } ``` I've noticed that `WriteAllTextAsync` is significantly slower than the other methods and results in higher disk usage (no fancy benchmarks here, the HDD led on my pc just stays turned on when using this method). Using `time` on each method gives the following results: ``` WriteAllTextAsync real 0m14.579s user 0m4.314s sys 0m0.460s WriteAllText real 0m4.244s user 0m4.116s sys 0m0.418s WriteWithStreamWriter real 0m4.243s user 0m4.133s sys 0m0.432s ``` As expected, the results using `File.WriteAllText` (synchronously) and StreamWriter.WriteAsync (asynchronously) are very close, but `File.WriteAllTextAsync` is much slower. " +23298 area-System.Runtime Random deviates from standard algortihm "A customer filed the following bug report on [Connect](https://connect.microsoft.com/VisualStudio/feedback/details/634761/system-random-serious-bug): > While investigating the period of various random number generators, I found a serious bug in Microsoft .NET System.Random implementation. > > [Microsoft Documentation](http://msdn.microsoft.com/en-us/library/system.random.aspx) says that the Random class is based on Donald E. Knuth's subtractive random number generator algorithm. For more information, see D. E. Knuth. ""The Art of Computer Programming, volume 2: Seminumerical Algorithms"". Addison-Wesley, Reading, MA, second edition, 1981. > > The problem was discovered when I use .NET Reflector to see what is actually implemented. Knuth was very specific about the lagged Fibonacci sequence coefficient (24 and 55). Somehow Microsoft mistyped the value to be 21 (this.inextp = 0x15 in public Random(int Seed) in source code), in place of 31 (=55-24). Due to this mistype, the random number generated no longer has the guanrantee on the period to be longer than (2^55-1). The Knuth version of lags (24, 55) has been tested by many people about the property of the generated numbers but not the one created by Microsoft. > > It is very easy to identify the typo. It seems that Microsoft just copied the routine (ran3) from Numerical Recipes v.2 page. 283 verbatim (even the variable names are copied), not from Knuth book which has a complete different way of initializing. You see that Numerical Recipe version uses 31 correctly, not 21 used by Microsoft. Looking at the [sources](https://github.com/dotnet/coreclr/blob/633f4ed3231fd3977976fa974d13038b338be325/src/mscorlib/shared/System/Random.cs#L90), it seems it's still the case today. I'm not sure what the implication of our deviation is. If we wanted to fix it, we'd likely would have to quirk the implementation on .NET Framework. For .NET Core, we can debate the merits of quirking, but it's likely we break customers with changing the seed. Thoughts? " +23299 area-Infrastructure corefx does not build on Ubuntu 17.04 This is because clang-3.5 is no longer available and system comes with 3.8 by default. The src/Native/ build script has option to specify different version but that is not exposed to top level scripts (build.sh and build-native.sh) This is somewhat unpleasant as for example we require minimum 3.9 for arm so available 3.8 should work just fine. I think there are two possible stages for fix: #1 expose clang option to root build script and make sure it works. #2 detect available clang and use closest desired match similar to way how coreclr does. +23300 area-Meta ASP.NET Core with Docker support: Connection refused "I have a ASP .NET Core (v2.0) app with Docker support. And I want to start a Oracle Database when starting my app. This is how my docker-compose file looks like: ``` version: '3' services: devarttestapp: image: devarttestapp build: context: ./DevartTestApp dockerfile: Dockerfile oracledb: image: sath89/oracle-12c ports: - ""1521:1521"" ``` I use Devart data provider dotConnect for Oracle. ```c# var conn = new Devart.Data.Oracle.OracleConnection(); conn.ConnectionString = Environment.GetEnvironmentVariable(""ORACLE_CONNECTION_STRING""); try { conn.Open(); } catch (Exception e) { Console.WriteLine(e); throw; } ``` But when I try to connect to the database of the created Oracle DB container I get following exception: > System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (Connection refused 127.0.0.1:1521) I also tried to include the `depends_on` as well as the `networks` option in my docker-compose file with the same results. What could be the cause of this exception? And how do I solve this problem? [EDIT] Add C# syntax highlight by @karelz" +23302 area-Infrastructure add option to specify clang and few minor improvements for Linux "fixes #23299 - build on Ubuntu 17.04 build-native.sh under src/Native already has option to specify clang but that is not exposed to top level and build.sh clang3.8 fails with complain about unknown option. The options are really inconsistent, some starting with --XX, some -YY and some ZZZ. To keep it consistent wit top level options and help I added -Clang=XYZ so one can pass any string without need to update script for every new clang version (which builds-managed.sh clangx.y does) There are also three more minor improvements: 1. -h works now same way as -? (it always did for src/Native/build-native.sh) 2. - we do not try to use options starting with '-' as directory. Preferably the check -d $1 should skip all options like normal scripts do or there should be explicit option for that. 3. we use ""$@"" instead of $* to properly handle arguments with spaces. I did this while back but it got rolled back because it exposed some other problem (which is fixed now) I did test build on Ubuntu 17.04 ./build.sh -Clang=clan3.8 I also did basic testing on OSX. ./build.sh -h ... [-ProducesTarget] MsBuild target that displays all of the artifacts this repo produces. [-DirectoryToBuild] MsBuild property used to set the directory to scope the build to things under that directory. => Default value: Please-Specify-A-Directory [-Clang] Specific version of Clang to use e.g. clang3.7, clang3.8, etc ... [-RunQuiet] Run tool specific setting. Set to True to only display output from the executing command. => Default value: false => Legal values: [true, false]. this should fix panda20 build problem @geoffkizer " +23303 area-Infrastructure Update CoreClr, CoreFx to servicing-25621-01, servicing-25621-01, respectively (release/2.0.0) +23304 area-Serialization Error running build-tests > CSC : error CS1504: Source file 'd:\dotnet\corefx\Microsoft.XmlSerializer.Generator.Tests.XmlSerializers.cs' could not be opened ('The system cannot find the file specified. ') [d:\dotnet\corefx\src\Microsoft.XmlSerializer.Generator\tests \Microsoft.XmlSerializer.Generator.Tests.csproj] +23305 area-Infrastructure Installation is not compatible with Windows 7 +23306 area-System.Net System.Net.Http redirect errors in VS 15.3.0 "As requested by @karelz a dedicated bug to the issue mistakingly reported in #22781. Story: - Existing .NET 4.6 application, including System.Threading.Tasks.Dataflow 4.7.0 nuget package and System.Net.Http 4.3.2 package, redirects for System.Net.Http are configured - Nuget offers update of Dataflow to V 4.8.0 - After update, redirects for System.Net.Http warn that I should redirect to V 4.2.0 Note: If I don't touch the nuget update at all, no build errors occur Steps to reproduce in a small repro: 1. Create .NET 4.6 project 2. Add reference to Nuget System.Net.Http (V 4.3.2) package 3. Add binding redirect to ```xml ``` 4. Compile (no warnings) 5. According to Project references the Assembly version of System.Net.Http.dll is 4.1.1.1 6. Add reference to one of (there are probably more packages) - System.Threading.Tasks.Dataflow nuget (V4.8.0) - System.Buffers (V4.4.0) 7. Compile Expected result: No warnings Actual result: Consider app.config remapping of assembly ""System.Net.Http, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"" from Version ""4.1.1.1"" [c:\users\tornhoof\documents\visual studio 2017\Projects\NetHttpRepro\NetHttpRepro\bin\Debug\System.Net.Http.dll] to Version ""4.2.0.0"" [C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\ref\System.Net.Http.dll] to solve conflict and get rid of warning. Workaround: - Do what it suggests and replace the redirect with ```xml ``` I don't know why the build suddenly uses a library from the VS program directory and not from the NuGet packages. Note: Of the packages released on August 11th, not all are affected, e.g. System.Diagnostics.DiagnosticSource V4.4.1 does not show the behaviour. [EDIT] Fixed bullet points formatting to improve readability by @karelz" +23307 area-System.Runtime Test Failure: UnloadingAndProcessExitTests on UAP not firing unloading events "Discovered failing test case in UWP CoreCLR x64 Debug Build (https://mc.dot.net/#/user/nchikanov/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/eea80bba9af50534e761788810fef3c3335cff4f/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.UnloadingAndProcessExitTests~2FUnloadingEventMustHappenBeforeProcessExitEvent) ` Xunit.Sdk.EqualException Windows.10.Amd64.ClientRS2.Open-Debug-x64 Unhandled Exception of Type Xunit.Sdk.EqualException Message : Assert.Equal() Failure\r\n ? (pos 0)\r\nExpected: \r\nActual: u0u1e0e1\r\n ? (pos 0) Stack Trace : at System.Tests.UnloadingAndProcessExitTests.UnloadingEventMustHappenBeforeProcessExitEvent() in D:\j\workspace\windows-TGrou---33cbf18b\src\System.Runtime.Extensions\tests\System\UnloadingAndProcessExitTests.netcoreapp.cs:line 34` **This test can be improved to help narrow down a repro:** 1. The Assert is backwards - expected is u0u1e0e1 2. Should dump ""s"" to the file before hooking the events and ""h"" after hooking- that way we could see if the events simply aren't firing. e.g. result should be ""shu0u1e0e1"" That will make it easier to follow up on continued failures" +23308 area-System.Data The type 'SqlDbType' is defined in both System.Data.SqlClient and netstandard 2.0 Noticed this while updating a library which uses Dapper (which is compatible with .NET standard 1.3+) Steps to reproduce: - Create library targeting .NET standard 2.0 - Reference Dapper - Add ``private SqlDbType _Type = SqlDbType.BigInt;`` to class in library Expected result: - No errors Actual result: CS0433 The type 'SqlDbType' exists in both 'System.Data.SqlClient, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' and 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' As far as I understand I should be able to reference any .NET standard library with a lower version number from 2.0. In this case Dapper. Dapper uses System.Data.SqlClient, but in 2.0 the SQL types moved into .NET Standard 2.0. I guess the ``System.Data.SqlClient`` nuget package is missing .NET standard 2.0 type forwards. +23310 area-Infrastructure Update CoreClr, CoreFx, CoreSetup, ProjectNTfs, ProjectNTfsTestILC, Standard to preview1-25616-02, preview1-25619-01, preview1-25618-02, rel-25618-00, rel-25618-00, preview1-25618-01, respectively (release/uwp6.0) +23311 area-System.Security Array bounds error with CryptoStream.Write using DESCryptoServiceProvider "We have a simple text decryption function that uses classes in System.Security.Cryptography that works fine when targeting the full framework but throws an ArgumentException `Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.` on the `CryptoStream.Write` method. Here is the full extent of a console app recreating the error: ```c# using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var textToDecrypt = ""oZYdrxMbPKav5xewuT1PUw==""; // an encrypted form of ""test string 1"" var key = ""Test Encryption Key""; byte[] initializationVector = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef }; byte[] byKey = Encoding.UTF8.GetBytes(key.Substring(0, 8)); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); inputByteArray = Convert.FromBase64String(textToDecrypt); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(byKey, initializationVector), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); // <--- ERROR IS THROWN HERE cs.FlushFinalBlock(); Encoding encoding = Encoding.UTF8; Console.WriteLine(encoding.GetString(ms.ToArray())); // <--- Expected to see ""test string 1"" in the console. } } } ``` The inputByteArray contains 16 elements (0-15), the offset is 0 and the length is 16. Not sure why I would get an index error here. Here is the stack trace from the error: ``` at System.Buffer.BlockCopy(Array src, Int32 srcOffset, Array dst, Int32 dstOffset, Int32 count) at Internal.NativeCrypto.CapiHelper.DecryptData(SafeKeyHandle hKey, Byte[] input, Int32 inputOffset, Int32 inputCount, Byte[] output, Int32 outputOffset, Int32 outputCount) at Internal.Cryptography.BasicSymmetricCipherCsp.Transform(Byte[] input, Int32 inputOffset, Int32 count, Byte[] output, Int32 outputOffset, Boolean isFinal) at Internal.Cryptography.BasicSymmetricCipherCsp.Transform(Byte[] input, Int32 inputOffset, Int32 count, Byte[] output, Int32 outputOffset) at Internal.Cryptography.UniversalCryptoDecryptor.UncheckedTransformBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[] outputBuffer, Int32 outputOffset) at Internal.Cryptography.UniversalCryptoTransform.TransformBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[] outputBuffer, Int32 outputOffset) at System.Security.Cryptography.CryptoStream.d__49.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Security.Cryptography.CryptoStream.Write(Byte[] buffer, Int32 offset, Int32 count) at ConsoleApp1.Program.Main(String[] args) in C:\Users\dslinn\Desktop\ConsoleApp1\ConsoleApp1\Program.cs:line 32 ``` [EDIT] Add C# syntax highlight by @karelz" +23312 area-System.IO Add Stream.CopyToAsync overload without buffer size "## Rationale and Usage Today, `Stream` has three `CopyToAsync` overloads: ```csharp public Task CopyToAsync(Stream destination) public Task CopyToAsync(Stream destination, Int32 bufferSize) public virtual Task CopyToAsync(Stream destination, Int32 bufferSize, CancellationToken cancellationToken) ``` If I want to pass a cancellation token, I'm forced to specify a buffer size: ```csharp // 81920 is the default buffer size... source.CopyToAsync(target, 81920, cancellationToken); ``` One issue with the code above is ""What does 81920 mean?"". For readability, you could also include argument names: ```csharp source.CopyToAsync(target, bufferSize: 81920, cancellationToken: cancellationToken); ``` This leads to some really verbose code, and in the majority of cases, I just want to stick with the default buffer size. With the proposed overload, the above code would end up looking like this: ```csharp source.CopyToAsync(target, cancellationToken); ``` I realize that this could be implemented as an extension method, but since the default buffer size constant is private, you end up having to copy it and future tweaks would not follow. There's also [various optimizations inside `CopyToAsync`](https://github.com/dotnet/coreclr/blob/a6045809b3720833459c9247aeb4aafe281d7841/src/mscorlib/src/System/IO/Stream.cs#L125-L152) that you'd have to reimplement. ## Proposed API ```diff namespace System.IO { public abstract class Stream : MarshalByRefObject, IDisposable { public Task CopyToAsync(Stream destination) public Task CopyToAsync(Stream destination, Int32 bufferSize) + public Task CopyToAsync(Stream destination, CancellationToken cancellationToken) public virtual Task CopyToAsync(Stream destination, Int32 bufferSize, CancellationToken cancellationToken) } } ``` ## Details - The implementation would just call into the (virtual) overload using the default buffer size." +23313 area-System.Net [ManagedHandler] Explore use of .netrc (config for authentication - general/proxy) https://ec.haxx.se/usingcurl-netrc.html it seems like curl can use it but I'm not sure if libcurl would on linux with c# The come up in are of configuring proxy, but there may possibly be more, like authentication details. +23315 area-Infrastructure Disable dumpling Seeing issues installing the dumpling package. This, combined with https://github.com/dotnet/buildtools/pull/1639 can be used to disable dumpling on cloud test runs +23316 area-System.IO Use FromApp APIs to allow brokered file access This changes our P/Invokes to use the FromApp variants, which allow for brokered file access on UAP. These are only included in the UAP build. Adds tests for the brokered IO WinRT functions and removes a dead option from movefile. This option was removed in Windows 8 and did not work correctly in prior OSes. (This was needed for this change.) This change depends on the referenced dll being packaged and added to our dependencies. There is a related change for CoreCLR that supports FileStream. Note: I broke out the struct defines and put all of the new P/Invokes in a single file. I want to keep them together and in the FileSystem dir to help keep them from creeping out and allow for easy disabling if required. There is one known issue at this point with setting of attributes in brokered locations. Everything else is to the point where it looks like our code is correct. +23317 area-System.Collections [Question] System.Collections.Immutable.ImmutableDictionary reorders "This is probably by design to help with the immutable types, but why does an ImmutableDictionary reorder keys after adding? For example compared to regular Dictionary: ```c# ImmutableDictionary.Builder isdBuilder = ImmutableDictionary.CreateBuilder(); isdBuilder.Add(""one"", false); isdBuilder.Add(""two"", true); isdBuilder.Add(""three"", false); isdBuilder.Add(""four"", false); ImmutableDictionary isd = isdBuilder.ToImmutableDictionary(); ``` **Not Expected**: The order by keys are ""two"", ""one"", ""three"", ""four"" ```c# Dictionary dic = new Dictionary(); dic.Add(""one"", false); dic.Add(""two"", true); dic.Add(""three"", false); dic.Add(""four"", false); ``` **As Expected**: ""one"", ""two"", ""three"", ""four"" I've tried the ImmutableSortedDictionary and appears to reorder by key. I would like to have it stay in the same order as they are added. Is there a way of making the ImmutableDictionary store KeyValuePairs in a specific order? [EDIT] Add C# syntax highlight by @karelz" +23319 area-System.Net "Test: System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest/SendAsync_SlowServerAndCancel_ThrowsTaskCanceledException failed with ""Xunit.Sdk.IsTypeException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest/SendAsync_SlowServerAndCancel_ThrowsTaskCanceledException` has failed. Assert.IsType() Failure\r Expected: System.Threading.Tasks.TaskCanceledException\r Actual: System.Net.Http.HttpRequestException Stack Trace: at System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : 2.0.0 - 20170816.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170816.01/workItem/System.Net.Http.WinHttpHandler.Functional.Tests/analysis/xunit/System.Net.Http.WinHttpHandlerFunctional.Tests.WinHttpHandlerTest~2FSendAsync_SlowServerAndCancel_ThrowsTaskCanceledException +23320 area-Meta HTTP Error 502.5 - Process Failure ASP.Net Core2 after update to Microsoft.EntityFrameworkCore -Version 2.0.0 #7462 ## Steps to reproduce [ARTSQLCORE.zip](https://github.com/dotnet/corefx/files/1230002/ARTSQLCORE.zip) ``` `dotnet --info` output: ARTNetCore> It was not possible to find any compatible framework version ARTNetCore> ARTNetCore> The specified framework 'Microsoft.NETCore.App', version '2.0.0' was not found. ARTNetCore> ARTNetCore> - Check application dependencies and target a framework version installed at: ARTNetCore> ARTNetCore> \ ARTNetCore> ARTNetCore> - Alternatively, install the framework version '2.0.0'. ARTNetCore> ARTNetCore> It was not possible to find any compatible framework version ARTNetCore> ARTNetCore> The specified framework 'Microsoft.NETCore.App', version '2.0.0' was not found. ARTNetCore> ARTNetCore> - Check application dependencies and target a framework version installed at: ARTNetCore> ARTNetCore> \ ARTNetCore> ARTNetCore> - Alternatively, install the framework version '2.0.0'. ARTNetCore> ARTNetCore> It was not possible to find any compatible framework version ARTNetCore> ARTNetCore> The specified framework 'Microsoft.NETCore.App', version '2.0.0' was not found. ARTNetCore> ARTNetCore> - Check application dependencies and target a framework version installed at: ARTNetCore> ARTNetCore> \ ARTNetCore> ARTNetCore> - Alternatively, install the framework version '2.0.0'. ARTNetCore> ARTNetCore> It was not possible to find any compatible framework version ARTNetCore> ARTNetCore> The specified framework 'Microsoft.NETCore.App', version '2.0.0' was not found. ARTNetCore> ARTNetCore> - Check application dependencies and target a framework version installed at: ARTNetCore> ARTNetCore> \ ARTNetCore> ARTNetCore> - Alternatively, install the framework version '2.0.0'. ``` I installed `Microsoft.NETCore.App -Version 2.0.0` yet when I run the app I get this msg, > HTTP Error 502.5 - Process Failure > > > Common causes of this issue: > > The application process failed to start > The application process started but then stopped > The application process started but failed to listen on the configured port > > Troubleshooting steps: > > Check the system event log for error messages > Enable logging the application process' stdout messages > Attach a debugger to the application process and inspect +23325 area-System.Net HttpListener: Use Encoding.Preamble Use the new `Encoding.Preamble` property to avoid unnecessary `byte[]` allocations for encodings that return cached instances from `Preamble` (e.g. all of the built-in encodings that have preambles). I debated whether to even submit this PR as the encoding used is `Encoding.Default` (line 277), which in .NET Core is always going to be UTF8 without a preamble. Since the code for handling a potential preamble is present here, I decided to go ahead and make the change to avoid the potential `byte[]` allocation if the encoding is ever changed to one that has a preamble. Reference: https://github.com/dotnet/coreclr/pull/13269 cc: @davidsh, @CIPop, @Priya91, @stephentoub +23327 area-System.Net "Test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandlerTest/AllowAutoRedirect_True_ValidateNewMethodUsedOnRedirection failed with ""System.IO.IOException""" "Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandlerTest/AllowAutoRedirect_True_ValidateNewMethodUsedOnRedirection(statusCode: 300, oldMethod: \""HEAD\"", newMethod: \""HEAD\"")` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.IO.IOException : The server returned an invalid or unrecognized response. Stack Trace: at System.Net.Http.HttpConnection.d__36.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.CookieHandler.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.AutoRedirectHandler.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.<>c__DisplayClass46_1.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__46.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.Http.HttpConnection.<>c.b__62_0(Task`1 completed, Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.d__60.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() at System.Net.Http.HttpConnection.d__36.MoveNext() Build : Master - 20170817.01 (Core Tests) Failing configurations: - Windows.10.Amd64.Core-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170817.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandlerTest~2FAllowAutoRedirect_True_ValidateNewMethodUsedOnRedirection(statusCode:%20300,%20oldMethod:%20%5C%22HEAD%5C%22,%20newMethod:%20%5C%22HEAD%5C%22)" +23328 area-System.Collections "Test: System.Collections.Tests.CaseInsensitiveHashCodeProviderTests/Default_Compare_TurkishI failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Collections.Tests.CaseInsensitiveHashCodeProviderTests/Default_Compare_TurkishI` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.Collections.Tests.CaseInsensitiveHashCodeProviderTests.Default_Compare_TurkishI() in E:\A\_work\394\s\corefx\src\System.Collections.NonGeneric\tests\CaseInsensitiveHashCodeProviderTests.cs:line 190 Build : Master - 20170817.01 (UWP F5 Tests) Failing configurations: - Windows.10.Arm64-arm - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170817.01/workItem/System.Collections.NonGeneric.Tests/analysis/xunit/System.Collections.Tests.CaseInsensitiveHashCodeProviderTests~2FDefault_Compare_TurkishI +23329 area-System.Net avoid async overhead in ReadNextLineAsync Updated version of #23210 @stephentoub I'm blocked on getting perf data here for now, but I expect it to be similar to the previous PR. +23331 area-Infrastructure Cannot reference Foo(HttpResponseMessage) implemented in .NET Standard 2.0 library from .NET Framework 4.7 unit test library Create a .NET Standard 2.0 library with the following code: ```cs public static class Class1 { public static void Foo(HttpResponseMessage response) { } } ``` Then create a .NET Framework 4.7 unit test library with the following code: ```cs [TestClass] public class UnitTest1 { [TestMethod] public void TestMethod1() { Class1.Foo(new HttpResponseMessage(System.Net.HttpStatusCode.OK)); } } ``` Expected result: test passes. Actual result: `Message: Test method UnitTestProject2.UnitTest1.TestMethod1 threw exception: System.MissingMethodException: Method not found: 'Void ClassLibrary1.Class1.Foo(System.Net.Http.HttpResponseMessage)'.` +23332 area-System.Net SslStream AuthenticateAsClientAsync throws when running under netcoreapp2.0 I have an app that I've been porting from net461 to netcoreapp2.0 over the last few days and I've come across a problem when using SslStream. If I run the ported application as netcoreapp2.0 I get the following exception when running on Windows 7 x64 A call to SSPI failed, see inner exception. at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) at System.Net.Security.SslStream.BeginAuthenticateAsClient(String targetHost, AsyncCallback asyncCallback, Object asyncState) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1](Func`4 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory.FromAsync[TArg1](Func`4 beginMethod, Action`1 endMethod, TArg1 arg1, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory.FromAsync[TArg1](Func`4 beginMethod, Action`1 endMethod, TArg1 arg1, Object state) at System.Net.Security.SslStream.AuthenticateAsClientAsync(String targetHost) Inner exception details System.Security.Authentication.AuthenticationException occurred HResult=0x80131501 Message=A call to SSPI failed, see inner exception. Source= StackTrace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() Inner Exception 1: Win32Exception: The function requested is not supported If I then run the same app on an linux-arm board I get the following exception Unable to transfer data on the transport connection: Connection reset by peer. at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Net.FixedSizeReader.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) at System.Net.Security.SslStream.EndAuthenticateAsClient(IAsyncResult asyncResult) at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() If I run the app on Windows 7 as net461 it all works as excepted. On my Windows 7 machine I have OpenSSL installed and on path. It's version 1.0.2h On the Linux board I have version 1.0.2d In summary if I run the code as netcoreapp2.0 on linux-arm or Windows 7 I get an exception, if I run the same code but as net461 on Windows 7 everything works fine. I'm using the official release of the tooling from dot.net +23333 area-System.Net Managed Handler: add some basic protocol tests for status line handling @stephentoub @Priya91 @wfurt +23334 area-Serialization Warnings on compiling Microsoft.XmlSerializer.Generator.Tests.csproj On compiling the project directly, several CS0219 warnings. On compiling from `build-tests`: ``` CSC : warning CS1691: 'false' is not a valid warning number [d:\dotnet\corefx\src\Microsoft.XmlSerializer.Generator\tes ts\Microsoft.XmlSerializer.Generator.Tests.csproj] CSC : warning CS1691: 'true' is not a valid warning number [d:\dotnet\corefx\src\Microsoft.XmlSerializer.Generator\test s\Microsoft.XmlSerializer.Generator.Tests.csproj] +23335 area-Serialization WarningsAsErrors and DisabledWarnings are not boolean. Remove `WarningsAsErrors` and set `DisabledWarnings` to `219` as that warning is given in several places. Fixes #23334 +23336 area-Meta Unable to resolve service for type 'Core.Data.CoreContext' while attempting to activate 'Core.Data.Repositories.UnitOfWork' I have part of WebAPI application that I want to move to separate project as class library. It is common base structure that almost every app has so idea is to make it easy shareable. What I have done in that direction is created a project named Core and moved those shared elements there, including Base Entities (e.g. User, Settings, etc), CoreContext, UnitOfWork, Generic Repository, BaseRepositories,... In the Main project of app there are others Entities, AppContext that inherits CoreContext, more Repositories, and all Controllers, ... I was able to build the app but when after starting it get the following error: > InvalidOperationException: Unable to resolve service for type 'Core.Data.CoreContext' while attempting to activate 'Core.Data.Repositories.UnitOfWork'. >Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteFactory.CreateArgumentCallSites(Type serviceType, Type implementationType, ISet callSiteChain, ParameterInfo[] parameters, bool throwIfCallSiteNotFound)... Problem seems to be that `UnitOfWork` class is in Core project and in Main project is `Startup.cs` with method` ConfigureServices` that has `services.AddTransient();`. Is this a bug or am I just not configuring it correctly and how could it be achieved, if possible at all. ### Further technical details NetCore & EF Core version: 2.0 Database Provider: Microsoft.EntityFrameworkCore.SqlServer IDE: Visual Studio 2017 15.3 Operating system: Windows 10 +23337 area-Infrastructure Update CoreClr, CoreFx, ProjectNTfs, ProjectNTfsTestILC, Standard to preview2-25618-04, preview2-25618-02, beta-25618-00, beta-25618-00, preview1-25618-01, respectively (master) +23338 area-System.Runtime Expose/test span-based Version methods Depends on https://github.com/dotnet/coreclr/pull/13424 Fixes dotnet/corefx#22376 cc: @AlexGhiondea, @joperezr +23340 area-System.Security RSACrpytoServiceProvider throws exception when decrypting fOAEP padded data https://github.com/dotnet/corefx/blob/2d7ee255d3cdb1b13072176d4881e1b58453358b/src/System.Security.Cryptography.Csp/src/System/Security/Cryptography/RSACryptoServiceProvider.Windows.cs#L269 This check throws an exception if the data is fOAEP padded, even if the real data is smaller than the key! +23341 area-System.Net Test failure: System.Net.Security crashed with System.ComponentModel.Win32Exception (0x80004005): The credentials supplied to the package were not recognized "Like https://github.com/dotnet/corefx/issues/19345 but the whole test library failed. ``` 2017-08-17 15:30:05,270: INFO: proc(54): run_and_log_output: Output: Copyright (C) 2014 Outercurve Foundation. 2017-08-17 15:30:05,270: INFO: proc(54): run_and_log_output: Output: 2017-08-17 15:30:05,520: INFO: proc(54): run_and_log_output: Output: Discovering: System.Net.Security.Tests 2017-08-17 15:30:06,193: INFO: proc(54): run_and_log_output: Output: Discovered: System.Net.Security.Tests 2017-08-17 15:30:06,286: INFO: proc(54): run_and_log_output: Output: Starting: System.Net.Security.Tests 2017-08-17 15:30:06,661: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_NoEKUServerAuth_Ok [SKIP] 2017-08-17 15:30:06,661: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" 2017-08-17 15:30:06,677: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_SelfSignedClientEKUClientAuth_Ok [SKIP] 2017-08-17 15:30:06,677: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" 2017-08-17 15:30:06,677: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_NoEKUClientAuth_Ok [SKIP] 2017-08-17 15:30:06,677: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" 2017-08-17 15:30:06,677: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_ServerEKUClientAuth_Fails [SKIP] 2017-08-17 15:30:06,677: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" 2017-08-17 15:30:06,677: INFO: proc(54): run_and_log_output: Output: System.Net.Security.Tests.SslStreamEKUTest.SslStream_ClientEKUServerAuth_Fails [SKIP] 2017-08-17 15:30:06,677: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsRootCertificateInstalled\"" 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: FailFast: AcquireCredentialsHandle failed. 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: System.ComponentModel.Win32Exception (0x80004005): The credentials supplied to the package were not recognized 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamPal.<>c__DisplayClass20_0.b__0() 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Security.Principal.WindowsIdentity.<>c__DisplayClass57_0`1.b__0() 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Security.Principal.WindowsIdentity.<>c__DisplayClass61_0.b__0(Object ) 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Security.Principal.WindowsIdentity.RunImpersonatedInternal(SafeAccessTokenHandle token, Action action) 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Security.Principal.WindowsIdentity.RunImpersonated[T](SafeAccessTokenHandle safeAccessTokenHandle, Func`1 func) 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint) 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) 2017-08-17 15:30:19,318: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.AsyncProtocolRequest.CompleteRequest(Int32 result) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.FixedSizeReader.d__1.MoveNext() 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(Action action, Boolean allowInlining, Task& currentTask) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.RunContinuations(Object continuationObject) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task`1.TrySetResult(TResult result) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.SetExistingTaskResult(TResult result) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1.SetResult(TResult result) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.Socket.CompleteSendReceive(Socket s, Int32TaskSocketAsyncEventArgs saea, Boolean isReceive) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.Socket.<>c.<.cctor>b__325_1(Object s, SocketAsyncEventArgs e) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(SocketAsyncEventArgs e) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs.ExecutionCallback(Object state) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationAsyncSuccess(Int32 bytesTransferred, SocketFlags flags) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs.<>c.<.cctor>b__202_0(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Environment.FailFast(System.String, System.Exception) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse, SCHANNEL_CRED) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(System.Security.Cryptography.X509Certificates.X509Certificate, System.Security.Authentication.SslProtocols, System.Net.Security.EncryptionPolicy, Boolean) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[] ByRef) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SecureChannel.GenerateToken(Byte[], Int32, Int32, Byte[] ByRef) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SecureChannel.NextMessage(Byte[], Int32, Int32) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslState.StartSendBlob(Byte[], Int32, System.Net.AsyncProtocolRequest) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslState.ProcessReceivedBlob(Byte[], Int32, System.Net.AsyncProtocolRequest) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslState.StartReadFrame(Byte[], Int32, System.Net.AsyncProtocolRequest) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Security.SslState.PartialFrameCallback(System.Net.AsyncProtocolRequest) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.AsyncProtocolRequest.CompleteRequest(Int32) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.FixedSizeReader+d__1.MoveNext() 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task.RunContinuations(System.Object) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].TrySetResult(Int32) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].SetExistingTaskResult(Int32) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].SetResult(Int32) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.Socket.CompleteSendReceive(System.Net.Sockets.Socket, Int32TaskSocketAsyncEventArgs, Boolean) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.Socket+<>c.<.cctor>b__325_1(System.Object, System.Net.Sockets.SocketAsyncEventArgs) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(System.Net.Sockets.SocketAsyncEventArgs) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs.ExecutionCallback(System.Object) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs.FinishOperationAsyncSuccess(Int32, System.Net.Sockets.SocketFlags) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs.CompletionPortCallback(UInt32, UInt32, System.Threading.NativeOverlapped*) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Net.Sockets.SocketAsyncEventArgs+<>c.<.cctor>b__202_0(UInt32, UInt32, System.Threading.NativeOverlapped*) 2017-08-17 15:30:19,334: INFO: proc(54): run_and_log_output: Output: at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*) 2017-08-17 15:30:25,006: INFO: proc(54): run_and_log_output: Output: Finished running tests. End time=15:30:25.00, Exit code = -2146232797 2017-08-17 15:30:25,020: INFO: proc(58): run_and_log_output: Exit Code: -2146232797 2017-08-17 15:30:25,020: ERROR: scriptrunner(82): _main: Error: No exception thrown, but XUnit results not created ``` https://mc.dot.net/#/user/justinvp/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/563aab7e14f70a99f38ff6ad48a72f2bb148ae40/workItem/System.Net.Security.Tests/wilogs" +23342 area-System.IO Capture PR feedback issues from UWP6.0 port. Fixes #23273 +23343 area-System.Xml XslCompiledTransform BadImageFormatException - Bad Method Token @ThuCommix commented on [Wed Aug 16 2017](https://github.com/dotnet/core/issues/845) # XslCompiledTransform BadImageFormatException When using XslCompiledTransform.Transform the framework throws a BadImageFormatException - Bad Method Token. It works fine with the full framework. # General I'm using the newest dot net core sdk available in combination with Visual Studio 2017.3 and Windows10. Steps to reproduce: 1. Adjust the directories in the attached project to point to the xsl and xml which are also in the zip. 2. Debug to transform.Transform -> Exception at System.Xml.Xsl.CompiledQuery.Query.{urn:schemas-microsoft-com:xslt-debug}init(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime) at System.Xml.Xsl.CompiledQuery.Query.Execute(XmlQueryRuntime {urn:schemas-microsoft-com:xslt-debug}runtime) at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlSequenceWriter results) at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter writer) at System.Xml.Xsl.XslCompiledTransform.Transform(XmlReader input, XsltArgumentList arguments, Stream results) [Sample Project.zip](https://github.com/dotnet/core/files/1228103/Sample.Project.zip) --- @leecow commented on [Thu Aug 17 2017](https://github.com/dotnet/core/issues/845#issuecomment-323117120) Moving issue to corefx repo +23345 area-System.Net Override Read/Write(span) on System.Net.Http streams These streams are all in the common portion of the build that's also compiled for netfx. We're going to be deleting that build of it, so rather than separating these out into separate partial files, I just followed the current convention in the project of using #if !NET46. cc: @davidsh, @geoffkizer +23347 area-Serialization Area-Serialization Sprint 123 The issue is for tracking issues to be done in sprint 123 (due by 9/8/2017) +23348 area-Serialization Improve Sgen package for better customer experience By adding more targets in the package, the app will to auto generate and compile the xmlserializer when download the nuget package. Fix the product issue so it won't generate an empty serializer code file. Fix #19426 #22936 @22935 #22934 #22932 @shmao @zhenlan @mconnew +23351 area-Serialization Verify Sgen End to End on Linux and Mac +23352 area-System.Data [System.Data] fix #22879 (SqlConnection doesn't support empty values) the PR fixes https://github.com/dotnet/corefx/issues/22879 + a small test. +23353 area-Serialization Set Sgen Package Version for Preview +23354 area-Serialization Check Public APIs Exposed by Sgen +23355 area-Infrastructure Mark UWP6.0 packages as stable Tracking issue for marking UWP6.0 as stable +23357 area-System.Data Removed SNIMarsManager, and modified TdsParserStateObjectManaged so that it manages its own SNIMarsConnection if MARS is enabled. This prevents SNIMarsConnections from accumulating forever in a static SNIMarsManager singleton. (#22709) Porting change to release/2.0.0. Shiproom approval pending. +23358 area-System.IO Override new Span/Buffer-based APIs on SerialStream +23360 area-Infrastructure unable to pass in build parameters with spaces to Linux build scripts "This is clone from #23302 @geoffkizer wrote: msbuild.sh /t:RebuildAndTest /p:XunitOptions=""-showprogress -parallel none"" I had similar problem see #1505 but it broke CI build as it did uncovered some other problems. This is probably trivial change but has high risk for existing building infrastructure and needs to be tested there. /cc @weshaggard @MattGal " +23361 area-System.Runtime Expose/test Encoder/Decoder span-based APIs Depends on https://github.com/dotnet/coreclr/pull/13409 being consumed into corefx. Fixes https://github.com/dotnet/corefx/issues/23057 cc: @tarekgh +23362 area-System.Net HttpClient don't send SSL server_name extension "Hi, The aim is to test a web farm. DNS is configured with one IP (behind there are several servers) and redirect to one web server. To test one server in web farm, in framework 4.6.2, I use with sample code: ```C# string host = ""www.ebay.fr""; IPHostEntry hostEntry; hostEntry = Dns.GetHostEntry(host); ///// HttpClient Test HttpClientHandler httpClientHandler = new HttpClientHandler(); HttpClient client = new HttpClient(httpClientHandler); client.BaseAddress = new Uri(""https://"" + hostEntry.AddressList[0].ToString()); client.DefaultRequestHeaders.UserAgent.ParseAdd(""Mozilla/5.0 (compatible;"" + DateTime.Now + "" "" + DateTime.Now.Millisecond + "")""); client.DefaultRequestHeaders.Host = host; HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, client.BaseAddress); request.Headers.Host = host; request.Headers.UserAgent.ParseAdd(""Mozilla/5.0 (compatible;"" + DateTime.Now + "" "" + DateTime.Now.Millisecond + "")""); Task task = client.SendAsync(request); task.Wait(); HttpResponseMessage respones = task.Result; ``` With framework 4.6.2, it is work fine. **But in .net core 2**, with a test on IIS server web server, the connexion close when web client try to negociate SSL. Here I use ""ebay"" server but it is work on it. I don't found a IIS server on web. My web farm is not access from web. I debug the connection with WireShark to see the network data: **With .net core2** ![image](https://user-images.githubusercontent.com/20461115/29434016-b34561e2-83a1-11e7-81f8-2f2af5786660.png) **With Framework 4.6.2** ![image](https://user-images.githubusercontent.com/20461115/29434003-aa4457ba-83a1-11e7-9d9c-04dd54f65982.png) 📌 I think the issue is with .net core, **the extension server_name is not defined**. IIS server should need known the certificat to take. .net core 2 should define server_name from client.DefaultRequestHeaders.Host or request.Headers.Host (even if BaseAddress is an IP) ? **For more information:** [https://idea.popcount.org/2012-06-16-dissecting-ssl-handshake/](url) > TLS introduces a number of extensions. Most notably the server_name / Server Name Indication (SNI) extension is used to specify a remote host name. This allows the server to choose appropriate certificate based on the requested host name. With this extension one can host many SSL-enabled vhosts on a single IP address. " +23363 area-System.Net Test failure: System.Net.WebSockets.Client.Tests.CancelTest/CloseAsync_Cancel_Success(server: ws://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx) Opened on behalf of @safern The test `System.Net.WebSockets.Client.Tests.CancelTest/CloseAsync_Cancel_Success(server: ws://corefx-net.cloudapp.net/WebSocket/EchoWebSocket.ashx)` has failed. Assert.Equal() Failure\r Expected: Aborted\r Actual: Open Stack Trace: at System.Net.WebSockets.Client.Tests.ClientWebSocketTestBase.d__8.MoveNext$catch$0() in E:\A\_work\853\s\corefx\src\System.Net.WebSockets.Client\tests\ClientWebSocketTestBase.cs:line 66 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at System.Net.WebSockets.Client.Tests.CancelTest.d__4.MoveNext() in E:\A\_work\853\s\corefx\src\System.Net.WebSockets.Client\tests\CancelTest.cs:line 80 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 Build : UWP 6.0 - 20170816.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release +23364 area-System.Net Test failure: System.Net.Sockets.Tests.SendReceiveTask/SendRecv_Stream_TCP_AlternateBufferAndBufferList(listenAt: 127.0.0.1) Opened on behalf of @safern The test `System.Net.Sockets.Tests.SendReceiveTask/SendRecv_Stream_TCP_AlternateBufferAndBufferList(listenAt: 127.0.0.1)` has failed. System.Net.Sockets.SocketException : An existing connection was forcibly closed by the remote host Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter$1.GetResult() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 477 at System.Net.Sockets.Tests.SendReceive.d__22.MoveNext() in E:\A\_work\881\s\corefx\src\System.Net.Sockets\tests\FunctionalTests\SendReceive.cs:line 379 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 Build : UWP 6.0 - 20170816.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release +23365 area-System.Threading Delete bad test from AsyncValueTaskMethodBuilderTests. Port #23356 to release/uwp6.0 @safern +23366 area-Serialization Fix the sgen issue when use NaN as the default value. Fix the sgen issue when use NaN as the default value. Move the NaN test from XmlSerializerTest .runtimeonly to XmlSerializerTest so it will be included in Sgen test run. Fix #19724 @shmao @zhenlan @mconnew +23367 area-Infrastructure Script to retry a given command Introducing a script that will retry a given command. Script will retry the command until the command runs successfully or the specified number of retries are exhausted. This script will be useful in a build step that involves network operations such as `git clone`, which might run into intermittent issues. Refer https://github.com/dotnet/core-eng/issues/1438 Plan is to commit directly to servicing branches. Same script will also be made available in newer versions of BuildTools (tracked through https://github.com/dotnet/buildtools/issues/1640) so that all `master` or any future branches can upgrade to. +23368 area-System.Linq Linq.SequenceEqual: Improved performance for collections that support index based access This change avoids the Enumerator instantiations inside the SequenceEqual method for anything that implements IReadOnlyList. We get two more type casts in this situation but the comparison loop should be faster (plus lower memory footprint). +23369 area-Meta Fix TZ test on OSX High Sierra Fixes #21433 +23370 area-Infrastructure Update package/assembly versions for assemblies to be serviced 1.0 Builds on #23274. +23371 area-Microsoft.CSharp Remove code in Microsoft.CSharp for casting from method groups. As a method group cannot be cast to object, the casting from method group to delegate that can be done in static code is not relevant, and code related to such casts is never reached. Remove it. Includes removal of `ExprFuncPtr`, and `ERR_MethGrpToNonDel`, `ERR_BadRetType`, `ERR_DelegateOnNullable` & `ERR_BadDelegateConstructor`, contributes to #22470 +23372 area-System.Reflection MetadataReader API for getting content of embedded resources The metadata reader does not currently provide an easy way to get at the content of an embedded resource. # First draft API proposal ``` C# namespace System.Reflection.Metadata { public static class PEReaderExtensions // existing class { // new API Stream GetEmbeddedResourceStream(this PEReader peReader, ManifestResource resource); } } ``` # Sample implementation https://gist.github.com/nguerrera/6864d2a907cb07d869be5a2afed8d764 * DISCLAIMER: I wrote that a long time ago against pre-release API and did not re-test after simply fixing compilation errors. * Update: @safern got it working for him after one fix he sent me that I've applied to the gist. * InvalidDataException should be BadImageFormatException as should any arithmetic overflow caused by bad data. * We can make the code safer by using BlobReader for more than just the length. It was written before there was `PEMemoryBlock.GetReader()` and the use of BlobReader used to be direct pointer indirection, and I just changed it locally to fix an endianness bug (at the time S.R.M threw on big endian). # See also https://github.com/Microsoft/msbuild/pull/2254#discussion_r129891209 # Open questions #* Is `Stream` the right return type? That is what msbuild asked for and was also most convenient for me when I wrote that code a while ago. Should we have other overloads, PEMemoryBlock, ImmutableArray, byte[], BlobReader? We have a mix for other similar things and don't directly provide Streams. Maybe we just need ToStream() helper on PEMemoryBlock or BlobReader instead? cc @rainersigwald @ericstj @tmat +23373 area-Serialization Microsoft.XmlSerializer.Generator Preview Track the issues that need be solved by SGEN preview release +23374 area-Serialization Sgen test on Linux, OSX Sgen automation fail on Linux. Need try the customer scenario on the Linux and unblock the automation run on Linux and osx. +23375 area-Serialization Add help method in SGEN "The help method just shows ""in development"". Need fill the right content." +23376 area-Serialization Review the output message in SGEN Need review the output message in SGEN since lots of text just copied from desktop version. +23377 area-Meta Enterprise Library ,Unity and AntiXss support net core? AntiXss patterns & practices–Enterprise Library patterns & practices -Unity +23378 area-System.Data Bump SqlClient assembly & package versions for 2.0.0 servicing. Forgot to do SqlClient packaging changes for: https://github.com/dotnet/corefx/pull/23357 CC @weshaggard @ericstj +23379 area-Meta Razor Pages support ASP.Net server controls or have server controls? Razor Pages support ASP.Net server controls or have server controls? +23381 area-System.Console Bright console colors don't work correctly on Linux "Given the following C# code: ```csharp using System; using System.Linq; namespace colors { class Program { static void Main(string[] args) { Console.WriteLine(); var colors = Enum.GetValues(typeof(ConsoleColor)).Cast().ToList(); foreach (var fore in colors) { foreach (var back in colors) { Console.ForegroundColor = fore; Console.BackgroundColor = back; Console.Write("" *** ""); Console.ResetColor(); Console.Write("" ""); } Console.WriteLine(); } Console.WriteLine(); } } } ``` When run on Windows 10, it correctly prints out with bright foreground and background colors: ![Windows 10](https://user-images.githubusercontent.com/16944/29439952-20705a3c-8376-11e7-91ad-d0c16f76d7de.png) When run on Linux (in my example, Ubuntu Server 16.04), bright colors are shown dark: ![Ubuntu 16.04](https://user-images.githubusercontent.com/16944/29439966-32b45b12-8376-11e7-9d8a-6c37fc384ce1.png) I verified this with bug .NET Core 1.x and 2.0. The reason this came up is because I noticed that the color output from `dotnet xunit` was broken, as we rely on bright colors when writing our output. I have a temporary workaround in place which emits the correct ANSI codes when running on non-Windows machines. Here you can see the difference between the Windows and Linux outputs: ![dotnet xunit on Windows](https://user-images.githubusercontent.com/16944/29440113-15badfbc-8377-11e7-9ab6-03727d207e20.png) ![dotnet xunit on Ubuntu 16.04](https://user-images.githubusercontent.com/16944/29440114-17baaa5e-8377-11e7-9d4f-165e102fc605.png) ----- As an interesting postscript, the bug does not seem to affect Windows Subsystem for Linux: ![Windows Subsystem for Linux](https://user-images.githubusercontent.com/16944/29439988-5f954056-8376-11e7-9055-746886e91652.png) So when verifying this bug, it's important to use a real Linux installation (I used VMs in Hyper-V for my testing). /tag @karelz @terrajobst " +23382 area-Meta Do you support System.Web.UI.WebControls? System.Web.UI System.Web.UI.Adapters System.Web.UI.HtmlControls System.Web.UI.WebControls.Adapters System.Web.UI.WebControls.WebParts System.Web.UI.WebControls; +23385 area-System.Collections API Proposal: Set-like operations over dictionaries "### Rationale and Usage I've noticed, that quite often developers run into a case, when there's a need to perform Set-specific operations over dictionaries. Examples of such can be found in languages like [Elm's Dict module](http://package.elm-lang.org/packages/elm-lang/core/latest/Dict#combine), but there are also multiple questions about it on the C# tags of StackOverflow, pointing that this is a desired feature. Example: ```csharp var left = ImmutabeDictionary.CreateRange(new Dictionary { { ""a"", 1 }, { ""b"", 2 } }); var right = ImmutabeDictionary.CreateRange(new Dictionary { { ""b"", -1 }, { ""c"", 7 } }); var merged = left.Merge(right, (key, leftValue, rightValue) => leftValue + rightValue); // => { (""a"", 1), (""b"", 1), (""c"", 7) } var intersected = left.Intersect(right, (key, leftValue, rightValue) => leftValue + rightValue); // => { (""b"", 1) } var diff = left.Except(right); // => { (""a"", 1) } ``` ### Proposed API ```csharp interface IImmutableDictionary where TKey: IComparable { IImmutableDictionary Intersect(IImmutableDictionary other, Func onEqual); IImmutableDictionary Except(IImmutableDictionary other); IImmutableDictionary Merge(IImmutableDictionary other, Func onEqual); IImmutableDictionary Merge(IImmutableDictionary other, Func onEqual, Func onLeft, Func onRight); } ``` ### Details - `Intersect` and `Except` methods would work just like their equivalents in `IImmutableSet<>` API (distinct elements are recognized by key). In case of intersection, we need a method to resolve conflict between two different values in each dictionary (given the same key). - `Merge` method works like set union, but as we need to recognize distinct elements by key, we need to resolve conflicting values. This is the place for `onEqual` parameter. It takes a function, which for the given `key` and its values in current and merged dictionaries, will produce an output value. - Second `Merge` overload additionally allows to supply extra parameters which may be used to map key/value pair to output value in case, when a unique dictionary entry was found on either left or right side of the operation. This would allow to construct dictionaries from scratch using any arbitrary logic, just like in case of `ToImmutableDictionary` method. - It may be possible, that the `other` dictionary could be generalized even further into a `IEnumerable>`. - Potentially, the similar set of methods could be also applied to mutable `IDictionary<,>` interface (see `Intersect` and `Except` methods on `ISet<>` interface for reference)." +23386 area-System.Collections "Tests under: System.Collections.Generic.Tests.EqualityComparerTests/NullableEquals failed with ""System.NullReferenceException""" Opened on behalf of @Jiayili1 The test `System.Collections.Generic.Tests.EqualityComparerTests/NullableEquals(left: 0, right: 128, expected: False)` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Nullable$1.get_HasValue() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Nullable.cs:line 31 at System.Collections.Generic.NullableEqualityComparer$1.Equals(Nullable$1<__UniversalCanon> x, Nullable$1<__UniversalCanon> y) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\Internal\IntrinsicSupport\EqualityComparerHelpers.cs:line 220 at Internal.Runtime.Augments.RuntimeAugments.CallDescrWorker(IntPtr callDescr) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\Internal\Runtime\Augments\RuntimeAugments.cs:line 949 at Internal.Runtime.TypeLoader.CallConverterThunk.InvokeTarget(Void* allocatedStackBuffer, $CallConversionParameters conversionParams) in InvokeTarget:line 16707566 at Internal.Runtime.Augments.RuntimeAugments.RunFunctionWithConservativelyReportedBufferInternal(Int32 cbBuffer, IntPtr pfnTargetToInvoke, $CallConversionInterpreterLocals context, ConservativelyReportedRegionDesc regionDesc) in RunFunctionWithConservativelyReportedBufferInternal:line 15732480 at Internal.Runtime.Augments.RuntimeAugments.RunFunctionWithConservativelyReportedBuffer(Int32 cbBuffer, IntPtr pfnTargetToInvoke, $CallConversionParameters context) in RunFunctionWithConservativelyReportedBuffer:line 16707566 at Internal.Runtime.TypeLoader.CallConverterThunk.CallConversionThunk(IntPtr callerTransitionBlockParam, IntPtr callConversionId) in CallConversionThunk:line 16707566 at Internal.Runtime.Augments.RuntimeAugments.CallDescrWorker(IntPtr callDescr) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\Internal\Runtime\Augments\RuntimeAugments.cs:line 949 at Internal.Runtime.TypeLoader.CallConverterThunk.InvokeTarget(Void* allocatedStackBuffer, $CallConversionParameters conversionParams) in InvokeTarget:line 16707566 at Internal.Runtime.Augments.RuntimeAugments.RunFunctionWithConservativelyReportedBufferInternal(Int32 cbBuffer, IntPtr pfnTargetToInvoke, $CallConversionInterpreterLocals context, ConservativelyReportedRegionDesc regionDesc) in RunFunctionWithConservativelyReportedBufferInternal:line 15732480 at Internal.Runtime.Augments.RuntimeAugments.RunFunctionWithConservativelyReportedBuffer(Int32 cbBuffer, IntPtr pfnTargetToInvoke, $CallConversionParameters context) in RunFunctionWithConservativelyReportedBuffer:line 16707566 at Internal.Runtime.TypeLoader.CallConverterThunk.CallConversionThunk(IntPtr callerTransitionBlockParam, IntPtr callConversionId) in CallConversionThunk:line 16707566 at System.Collections.Generic.Tests.EqualityComparerTests.NullableEquals(__UniversalCanon left, __UniversalCanon right, Boolean expected) in E:\A\_work\1104\s\corefx\src\System.Collections\tests\Generic\Comparers\EqualityComparer.Tests.cs:line 117 at Internal.Runtime.Augments.RuntimeAugments.CallDescrWorker(IntPtr callDescr) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\Internal\Runtime\Augments\RuntimeAugments.cs:line 949 at Internal.Runtime.TypeLoader.CallConverterThunk.InvokeTarget(Void* allocatedStackBuffer, $CallConversionParameters conversionParams) in InvokeTarget:line 16707566 at Internal.Runtime.Augments.RuntimeAugments.RunFunctionWithConservativelyReportedBufferInternal(Int32 cbBuffer, IntPtr pfnTargetToInvoke, $CallConversionInterpreterLocals context, ConservativelyReportedRegionDesc regionDesc) in RunFunctionWithConservativelyReportedBufferInternal:line 15732480 at Internal.Runtime.Augments.RuntimeAugments.RunFunctionWithConservativelyReportedBuffer(Int32 cbBuffer, IntPtr pfnTargetToInvoke, $CallConversionParameters context) in RunFunctionWithConservativelyReportedBuffer:line 16707566 at Internal.Runtime.TypeLoader.CallConverterThunk.CallConversionThunk(IntPtr callerTransitionBlockParam, IntPtr callConversionId) in CallConversionThunk:line 16707566 at Internal.Runtime.Augments.RuntimeAugments.CallDescrWorker(IntPtr callDescr) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\Internal\Runtime\Augments\RuntimeAugments.cs:line 949 at Internal.Runtime.TypeLoader.CallConverterThunk.InvokeTarget(Void* allocatedStackBuffer, $CallConversionParameters conversionParams) in InvokeTarget:line 16707566 at Internal.Runtime.Augments.RuntimeAugments.RunFunctionWithConservativelyReportedBufferInternal(Int32 cbBuffer, IntPtr pfnTargetToInvoke, $CallConversionInterpreterLocals context, ConservativelyReportedRegionDesc regionDesc) in RunFunctionWithConservativelyReportedBufferInternal:line 15732480 at Internal.Runtime.Augments.RuntimeAugments.RunFunctionWithConservativelyReportedBuffer(Int32 cbBuffer, IntPtr pfnTargetToInvoke, $CallConversionParameters context) in RunFunctionWithConservativelyReportedBuffer:line 16707566 at Internal.Runtime.TypeLoader.CallConverterThunk.CallConversionThunk(IntPtr callerTransitionBlockParam, IntPtr callConversionId) in CallConversionThunk:line 16707566 at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170818.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170818.01/workItem/System.Collections.Tests/analysis/xunit/System.Collections.Generic.Tests.EqualityComparerTests~2FNullableEquals%3CByte%3E(left:%200,%20right:%20128,%20expected:%20False) +23387 area-Microsoft.CSharp Microsoft.CSharp bug when dynamically invoking a property of a F# Record with generic union input "### Short description Microsoft.CSharp bug when dynamically invoking a property (as a function) of a F# Record with generic union input. This used to work in ""classic"" .NET (net45) ### Details While porting [my library](https://github.com/Zaid-Ajaj/Fable.Remoting) from full classic .NET (net45) to .NET Core 2.0 I have come across a weird bug that occurs in Microsoft.CSharp when trying to invoke properties of a F# record dynamically from C# at runtime. I wrote [this static class](https://github.com/Zaid-Ajaj/Fable.Remoting/blob/master/Fable.Remoting.Reflection/FSharpRecord.cs) in C# to do this task and it worked just fine for all kinds of inputs. ```cs using System.Reflection; using Microsoft.CSharp; // etc... public static class FSharpRecord { static B Pipe(this A x, Func f) => f(x); public static dynamic Invoke(string methodName, object implementation, object arg, bool hasArg) { return implementation .GetType() .GetProperty(methodName) .GetValue(implementation, null) .Pipe((dynamic fsFunc) => hasArg ? fsFunc.Invoke((dynamic)arg) : fsFunc.Invoke(null)); } } ``` This class works very well with F# records and I have tested it before with net45 but the tests fail when the input is a generic union type from F# such as: ```fs type Maybe<'t> = | Just 't | Nothing ``` Here is my test suite from [this file](https://github.com/Zaid-Ajaj/Fable.Remoting/blob/master/Fable.Remoting.Server.Tests/ServerDynamicInvokeTests.fs#L18): Given the record type: ```fs type TestRec = { simpleMethod : string -> int listsMethod : int list -> int genericUnion: Maybe -> int } ``` And these tests (written with Expecto) ```fs let fsharpRecordTests = let invoke (methodName: string) (record: obj) (input: obj) (hasArg: bool) = FSharpRecord.Invoke(methodName, record, input, hasArg) let testRec = { genericUnion = function Just x -> x | _ -> 0 simpleMethod = fun input -> input.Length listsMethod = fun xs -> Seq.sum xs } testList ""FSharpRecord tests"" [ testCase ""Invoking listsMethod"" <| fun () -> let input = [1 .. 10] let output = invoke ""listsMethod"" testRec (box input) true equal 55 (unbox output) testCase ""Invoking simpleMethod"" <| fun () -> let input = ""hello"" let output = invoke ""simpleMethod"" testRec (box input) true equal 5 (unbox output) testCase ""Invkoing genericUnion on record dynamically works"" <| fun () -> let input = Just 5 let output = invoke ""genericUnion"" testRec (box input) true equal 5 (unbox output) ] ``` The test cases ""Invoking simpleMethod"" and ""Invoking listsMethod"" do pass but the last test case with the generic union input fails, here is the test log: ``` cmd /C dotnet Fable.Remoting.Server.Tests\bin\MCD\Release\netcoreapp2.\Fable.Remoting.Server.Tests.dll [08:02:18 INF] EXPECTO? Running tests... [08:02:18 DBG] FSharpRecord tests/Invoking listsMethod starting... [08:02:19 DBG] FSharpRecord tests/Invoking listsMethod passed in 00:00:00.6730000. [08:02:19 DBG] FSharpRecord tests/Invoking simpleMethod starting... [08:02:19 DBG] FSharpRecord tests/Invoking simpleMethod passed in 00:00:00.0100000. [08:02:19 DBG] FSharpRecord tests/Invkoing genericUnion on record dynamically works starting... [08:02:19 ERR] FSharpRecord tests/Invkoing genericUnion on record dynamically works errored in 00:00:00.0190000 System.ArgumentOutOfRangeException: Length cannot be less than zero. Parameter name: length at System.String.Substring(Int32 startIndex, Int32 length) at Microsoft.CSharp.RuntimeBinder.Syntax.NameTable.Add(String key, Int32 length) at Microsoft.CSharp.RuntimeBinder.Syntax.NameManager.Add(String key, Int32 length) at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetName(Type type) at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.GetArgumentType(ICSharpBinder p, CSharpArgumentInfo argInfo, Expression param, DynamicMetaObject arg, Int32 index) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.CreateArgumentArray(ICSharpBinder payload, Expression[] parameters, DynamicMetaObject[] args) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.BindCore(ICSharpBinder payload, Expression[] parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.Bind(DynamicMetaObjectBinder payload, Expression[] parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.BinderHelper.Bind(DynamicMetaObjectBinder action, RuntimeBinder binder, DynamicMetaObject[] args, IEnumerable`1 arginfos, DynamicMetaObject onBindingError) at Microsoft.CSharp.RuntimeBinder.CSharpInvokeMemberBinder.FallbackInvokeMember(DynamicMetaObject target, DynamicMetaObject[] args, DynamicMetaObject errorSuggestion) at System.Dynamic.DynamicMetaObject.BindInvokeMember(InvokeMemberBinder binder, DynamicMetaObject[] args) at System.Dynamic.InvokeMemberBinder.Bind(DynamicMetaObject target, DynamicMetaObject[] args) at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[] args, ReadOnlyCollection`1 parameters, LabelTarget returnLabel) at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args) at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1) at ServerDynamicInvokeTests.fsharpRecordTests@40-2.Invoke(Unit unitVar0) in C:\Projects\Fable.Remoting\Fable.Remoting.Server.Tests\ServerDynamicInvokeTests.fs:line 41 at Expecto.Impl.execTestAsync@859-1.Invoke(Unit unitVar) at Microsoft.FSharp.Control.AsyncBuilderImpl.callA@839.Invoke(AsyncParams`1 args) [08:02:20 INF] EXPECTO! 3 tests run in 00:00:01.5915904 - 2 passed, 0 ignored, 0 failed, 1 errored. ``` ### To reproduce the issue ``` git clone https://github.com/Zaid-Ajaj/Fable.Remoting.git RemotingRepo cd RemotingRepo .paket/paket.exe install # if windows build RestoreBuildRunServerTests # if linux packages/FAKE/tools/Fake.exe build.fsx RestoreBuildRunServerTests ```" +23389 area-Meta Please consider supporting 10.11 Some Mac users cannot upgrade to 10.12 due to Apple hardware requirements. This blocks users of Mac OS 10.11- from using dotnet core 2, which blocks use of Powershell 6 alpha. Please remove if this is a duplicate issue. +23390 area-Serialization CI failures from sgen ``` 2017-08-18 12:30:21,115: INFO: proc(54): run_and_log_output: Output: Discovering: Microsoft.XmlSerializer.Generator.Tests 2017-08-18 12:30:21,303: INFO: proc(54): run_and_log_output: Output: Discovered: Microsoft.XmlSerializer.Generator.Tests 2017-08-18 12:30:21,365: INFO: proc(54): run_and_log_output: Output: Starting: Microsoft.XmlSerializer.Generator.Tests 2017-08-18 12:30:22,069: INFO: proc(54): run_and_log_output: Output: Serialization Assembly Name: C:\dotnetbuild\work\57753adf-3a4b-4c3c-b08d-f00b471e81a3\Work\dbf6bd61-156e-4f2c-a79a-634499a6cd6b\Unzip\Microsoft.XmlSerializer.Generator.Tests.XmlSerializers.cs. 2017-08-18 12:30:22,069: INFO: proc(54): run_and_log_output: Output: Generated serialization assembly for assembly C:\dotnetbuild\work\57753adf-3a4b-4c3c-b08d-f00b471e81a3\Work\dbf6bd61-156e-4f2c-a79a-634499a6cd6b\Unzip\Microsoft.XmlSerializer.Generator.Tests.dll --> 'C:\dotnetbuild\work\57753adf-3a4b-4c3c-b08d-f00b471e81a3\Work\dbf6bd61-156e-4f2c-a79a-634499a6cd6b\Unzip\Microsoft.XmlSerializer.Generator.Tests.XmlSerializers.cs'. 2017-08-18 12:30:22,085: INFO: proc(54): run_and_log_output: Output: SGEN: error SGEN1: Missing required command-line argument: The name of the source assembly.. ``` https://ci3.dot.net/job/dotnet_corefx/job/master/job/windows-TGroup_netcoreapp+CGroup_Release+AGroup_x86+TestOuter_false_prtest/2389/ +23391 area-System.Runtime Setting binary serialization culture to invariant to avoid test machine diffs Fixes https://github.com/dotnet/corefx/issues/21720 +23392 area-System.Data Fix Test: System.Data.Tests.SqlTypes.SqlStringTest/SqlDateTimeToSqlString Implement fixes based on #23282 +23393 area-Meta Please introduce some location interfaces into .NET Standard @weitzhandler commented on [Mon Aug 07 2017](https://github.com/dotnet/standard/issues/436) For example the [`GeoCoordinate`](https://msdn.microsoft.com/en-us/library/system.device.location.geocoordinate) class and the like. --- @dotMorten commented on [Wed Aug 09 2017](https://github.com/dotnet/standard/issues/436#issuecomment-321441857) If you were to do this, make sure this is heavily extensible and has custom implementations, as there are many ways of getting location, and also many types of metadata associated with the retrieved location, that in some cases are just as important as the longitude/latitude/altitude (not to mention it's not always longitude/latitude, and altitude can also mean many things). --- @weshaggard commented on [Fri Aug 18 2017](https://github.com/dotnet/standard/issues/436#issuecomment-323416413) This issue is better suited for the corefx repo. We won't put anything into the standard until it exists in .NET Core. +23394 area-System.Net Setting Http version when initialize HttpClient Right now, HttpClient will default to 1.1 on all requests, unless specifies directly on each `HttpRequestMessage` with `SendAsync()` (per [#4870](https://github.com/dotnet/corefx/issues/4870#issuecomment-289884130)). It would be nice if we can initialize the client with the Http version of choice once, and use it for every API that `HttpClient` provides. # Rejected API Proposal (attempt) Motivation: Change default Http protocol version to the latest supported version by default to get the best performance. ```diff public static class HttpVersion { public static readonly Version Unknown = new Version(0, 0); public static readonly Version Version10 = new Version(1, 0); public static readonly Version Version11 = new Version(1, 1); public static readonly Version Version20 = new Version(2, 0); + public static readonly Version Default = new Version(int.MaxValue, int.MaxValue); // Use the highest version that the platform supports } ``` Note: Similar to [`SecurityProtocolType.SystemDefault`](https://apisof.net/catalog/System.Net.SecurityProtocolType.SystemDefault) +23395 area-Meta "Undo ""goto return"" works-around" Issue to track following up on feedback at https://github.com/dotnet/coreclr/pull/13314#issuecomment-321586182 -- now that the JIT tries to pull early returns out of loops, find the code where `goto` has been added to work around its prior inability to do so, revert, and make sure the JIT gives the desired layout. +23396 area-System.Reflection Added GetAssemblyName API for AssemblyDefinition and AssemblyReference Also added GetAssemblyName() APIs on AssemblyReference and AssemblyDefinition This is my initial pull request. I am looking to get feedback. fixes #13295 cc: @safern @danmosemsft @tmat @nguerrera +23398 area-System.Data Make DBNull binary serializable We marked Datasets/DataTables as serializable but they can contain these. Note it needs some special treatment as it is singleton - see reference sources. See https://github.com/dotnet/corefx/issues/23213#issuecomment-323272756 cc @FransBouma +23400 area-Serialization Workaround sgen automation errors. The negative test will cause the CI failure. So just remove this test. And on some local machine, the CSC command will try to find the generated code from a root location. Still need understand why it happen. To workaround, just ignore the csc build error, and make the tests work without the generator. #23390 & #23304 @shmao @zhenlan @mconnew +23401 area-System.Net HttpClient Performance Slow Compared to .NET 4.7 "I have conducted a basic performance test of `HttpClient` in .NET Core 2.0 versus `HttpClient` in .NET Framework 4.7 and have noticed a gap in performance. The .NET Framework 4.7 `HttpClient/WebClient` outperforms .NET Core's `HttpClient` by ~1.5-2x in terms of how long it takes to complete a batch of _n_ requests. ### Testing The test is a console app (run in release mode on Windows 7 16GB 3.5GHz) with identical code for .NET Core/Framework that follows this sequence: 1. Create a single, shared HttpClient instance with a maximum of _n_ (for testing _n_=10,100) connections. ``` // .NET Core 2.0 var httpClient = new HttpClient(new HttpClientHandler { MaxConnectionsPerServer = 100 }); // .NET Framework 4.7 ServicePointManager.DefaultConnectionLimit = 100; var httpClient = new HttpClient(); // .NET Framework 4.7 - WebClient instance is created ONCE PER REQUEST ServicePointManager.DefaultConnectionLimit = 100; var webClient = new WebClient(); ``` 2. Start 10,000 simulataneous requests and time how long each request takes to complete + how long all take to complete. Here is code demonstrating how requests are made / timed. ``` private void RunTest(int count) { // requests is a list of Request data structures used to store individual request latency / responses var requests = Enumerable.Range(0, count).Select(j => CreateRequest(j)).ToList(); // this stopwatch is for duration of all requests var stopwatch = Stopwatch.StartNew(); // start all requests and wait for completion var requestTasks = requests.Select(MakeRequest).ToArray(); Task.WaitAll(requestTasks); stopwatch.Stop(); // total run time = stopwatch.ElapsedMilliseconds } private Task MakeRequest(Request request) { var stopwatch = Stopwatch.StartNew(); var response = await httpClient.GetStringAsync(request.Url); stopwatch.Stop(); // save request duration and response request.DurationMs = stopwatch.ElapsedMilliseconds; request.ResponseId = ParseResponse(response); } ``` I am testing against a basic python server that is well under capacity to rule out any server side bottlenecks. The server returns a simple JSON response containing an `id` field which is used to validate the HttpClient responses. ``` { ""id"": ""some_identifier"" } ``` JSON deserialization / response validation is NOT included in performance stats. ### Results These are average statistics (in milliseconds) of 5 separate runs of 10,000 requests each. It is worth mentioning that the actual time spent on each request was much less with .NET Core's HttpClient, it's just that the batch of requests takes longer to complete as a whole vs .NET Framework. | framework | total run time (ms) | avg req time (ms) | median req time (ms) | total time spent on requests (s) | |---------------|---------------------|-------------------|----------------------|----------------------------------| | .NET Core 2.0 | 5614 | 216 | 282 | 777 | | .NET 4.7 | 3055 | 1355 | 1339 | 10,585 |" +23402 area-Microsoft.CSharp Fix duplicate types exception on WinRT interfaces For certain WinRT types like `Windows.Foundation.Collections.IPropertySet`, when using the dynamic C# binder and calling a method, for example `Add(key, value)`, the binder creates the type hierarchy and tries to bind the base method. The existing code tries to bind implemented interfaces both in the AggregateType's t ype hierarchy and WinRT interfaces, and ends up with duplicates, which results in: ```Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:The call is ambiguous between the following methods or properties: 'System.Collections.Generic.IDictionary.Add(string, object)' and 'System.Collections.Generic.IDictionary.Add(string, object)'``` The simple workaround for now is to use a `HashSet` to store these interfaces, so that we don't end up passing duplicates up the call chain. A smarter way of filtering out types that we know for sure are not applicable should be considered in the future. DevDiv #476163 +23404 area-System.Net FtpWebRequest on core does not reuse connections "FtpWebRequest on .net core connects and disconnects for every operation: ![image](https://user-images.githubusercontent.com/1697911/29480430-1aeaaf88-842d-11e7-8359-3e4f07b1e579.png) Eventually hitting connection rate limit: ![image](https://user-images.githubusercontent.com/1697911/29480440-2e2bbb6e-842d-11e7-99b9-0d55aebb2e35.png) Same code on net461 reuses connection: ![image](https://user-images.githubusercontent.com/1697911/29480455-43bcbcda-842d-11e7-8348-6b85efcc533a.png) Code: ``` c# var request = (FtpWebRequest) WebRequest.Create(address); request.Method = WebRequestMethods.Ftp.UploadFile; request.KeepAlive = true; request.UseBinary = true; request.Credentials = new NetworkCredential(publishingProfile.FtpUsername, publishingProfile.FtpPassword); request.ConnectionGroupName = ""group""; using (var fileStream = File.OpenRead(file.FullName)) { using (var requestStream = await request.GetRequestStreamAsync()) { await fileStream.CopyToAsync(requestStream); } } await request.GetResponseAsync(); ``` " +23405 area-Microsoft.CSharp Regression in dynamic method invocation in .NET Core 2.0 _From @DavidZidar on August 18, 2017 22:45_ I've discovered a regression where calling a generic method with a dynamic argument throws an exception in .NET Core 2.0 but not in previous versions. Here is a small program that cause the bug. https://github.com/DavidZidar/DynamicProblems/blob/ad51939ec05bd840bf441e9653d6fb608872e6ce/DynamicProblems/Program.cs#L7-L36 The problematic type signature is as follows `void HandleMessage(IQuery query)` As you can see in the example, invoking the method with TResult of `List<>` works fine but with `ImmutableList<>` the runtime binder throws the following exception. ``` Length cannot be less than zero. Parameter name: length at System.String.Substring(Int32 startIndex, Int32 length) at Microsoft.CSharp.RuntimeBinder.Syntax.NameTable.Add(String key, Int32 length) at Microsoft.CSharp.RuntimeBinder.Syntax.NameManager.Add(String key, Int32 length) at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetName(Type type) at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType) at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetConstructedType(Type type, AggregateSymbol agg) at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType) at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetCTypeArrayFromTypes(IList`1 types) at Microsoft.CSharp.RuntimeBinder.SymbolTable.SetInterfacesOnAggregate(AggregateSymbol aggregate, Type type) at Microsoft.CSharp.RuntimeBinder.SymbolTable.AddAggregateToSymbolTable(NamespaceOrAggregateSymbol parent, Type type) at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType) at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetConstructedType(Type type, AggregateSymbol agg) at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType) at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetCTypeArrayFromTypes(IList`1 types) at Microsoft.CSharp.RuntimeBinder.SymbolTable.SetInterfacesOnAggregate(AggregateSymbol aggregate, Type type) at Microsoft.CSharp.RuntimeBinder.SymbolTable.AddAggregateToSymbolTable(NamespaceOrAggregateSymbol parent, Type type) at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.GetArgumentType(ICSharpBinder p, CSharpArgumentInfo argInfo, Expression param, DynamicMetaObject arg, Int32 index) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.CreateArgumentArray(ICSharpBinder payload, Expression[] parameters, DynamicMetaObject[] args) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.BindCore(ICSharpBinder payload, Expression[] parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.Bind(DynamicMetaObjectBinder payload, Expression[] parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.BinderHelper.Bind(DynamicMetaObjectBinder action, RuntimeBinder binder, DynamicMetaObject[] args, IEnumerable`1 arginfos, DynamicMetaObject onBindingError) at Microsoft.CSharp.RuntimeBinder.CSharpInvokeMemberBinder.FallbackInvokeMember(DynamicMetaObject target, DynamicMetaObject[] args, DynamicMetaObject errorSuggestion) at System.Dynamic.DynamicMetaObject.BindInvokeMember(InvokeMemberBinder binder, DynamicMetaObject[] args) at System.Dynamic.InvokeMemberBinder.Bind(DynamicMetaObject target, DynamicMetaObject[] args) at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[] args, ReadOnlyCollection`1 parameters, LabelTarget returnLabel) at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args) at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid2[T0,T1](CallSite site, T0 arg0, T1 arg1) at DynamicProblems.Program.Main(String[] args) in c:\code\test\DynamicProblems\DynamicProblems\Program.cs:line 27 ``` If you change TargetFramework to netcoreapp1.1 in the csproj file then everything works as expected. _Copied from original issue: dotnet/coreclr#13478_ +23406 area-System.Memory Enable System.Runtime.CompilerServices.Unsafe and System.Memory tests for UAP We need to get targeted unit test for Span enabled. They are very likely uncover bugs that will be hard to track down otherwise (e.g. #23073). +23407 area-System.Data System.Data.DataSetExtensions Test Failures with Unbox Tests fail fast / crash when running ILCBuildType=ret in System.Data.DataSetExtensions on UapAot. Test do not fail when ILCBuildType=chk. This is likely a code gen bug. **Failure Location**: (One of many) https://github.com/dotnet/corefx/blob/73f62d06803d086ee7f6745b55dfde63e27be779/src/System.Data.DataSetExtensions/tests/Mono/EnumerableRowCollectionTest.cs#L99-L102 Then Field calls UnboxT, where there is a failure: `Exception Unhandled: Unhandled exception at 0x00007FFA233500A0 (xunit.console.netcore.dll) in xunit.console.netcore.exe: 0x80004005: Unspecified error.` https://github.com/dotnet/corefx/blob/73f62d06803d086ee7f6745b55dfde63e27be779/src/System.Data.DataSetExtensions/src/System/Data/DataRowExtensions.cs#L146 **Execution failed on:** Windows.10.Amd64.ClientRS3-x64:Release Windows.10.Amd64.ClientRS3-x64:Debug Windows.10.Amd64.ClientRS3-x86:Debug Windows.10.Amd64.ClientRS3-x86:Release Windows.10.Amd64-x86:Debug **Error message**: `Access Violation: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. The application will be terminated since this platform does not support throwing an AccessViolationException.` **Call stack**: ``` xunit.console.netcore.dll!$14_System::Data::DataRowExtensions::UnboxT$1..cctor() Line 146 xunit.console.netcore.dll!System::Runtime::CompilerServices::ClassConstructorRunner.EnsureClassConstructorRun(System::Runtime::CompilerServices::StaticClassConstructionContext * pContext) Line 92 xunit.console.netcore.dll!System::Runtime::CompilerServices::ClassConstructorRunner.CheckStaticClassConstruction(void * returnValue, System::Runtime::CompilerServices::StaticClassConstructionContext * pContext) Line 38 xunit.console.netcore.dll!$14_System::Data::DataRowExtensions.Field($13_System::Data::DataRow & InstParam, System::String & row) Line 27 xunit.console.netcore.dll!$15_MonoTests::System::Data::EnumerableRowCollectionTest::<>c.b__3_2($13_System::Data::DataRow & line) Line 161 [Inline Frame] xunit.console.netcore.dll!System::Func$2::Invoke(System::__Canon &) Line 16707565 xunit.console.netcore.dll!$26_System::Linq::Enumerable::SelectEnumerableIterator$2.MoveNext() Line 131 xunit.console.netcore.dll!$15_MonoTests::System::Data::EnumerableRowCollectionTest.QueryWhereSelectOrderByDescending() Line 135 ``` cc: @danmosemsft @safern +23409 area-System.Net [release/uwp6.0] Disable two flaky tests in System.Net.* Disabling this two flaky tests in the effort to have a clean build in the release branch. Related issues: https://github.com/dotnet/corefx/issues/22904 and https://github.com/dotnet/corefx/issues/23364 cc: @davidsh @danmosemsft +23411 area-Meta .NET Core 2.1 support .NET Framework 4.7? OR .NET Framework 4.6.2 .NET Core 2.1 support .NET Framework 4.7? OR .NET Framework 4.6.2 +23412 area-System.Data Make 4.4.1 SqlClient harvest the 4.3.1 SqlClient package for its netstandard1.3 bits, since the 4.3.0 SqlClient had a connection leak bug. The 4.4.0 SqlClient package used 4.3.0 for its netstandard1.3 bits, so harvesting 4.4.0 would continue the problem. Fixes this issue: https://github.com/dotnet/corefx/issues/13422 Shiproom approval pending. +23413 area-System.Collections [release/uwp6.0] Fix a uapaot hang in a ConcurrentQueue test Port https://github.com/dotnet/corefx/pull/23403 to release/uwp6.0. @stephentoub +23415 area-System.IO PlatformNotSupportedException when attempting to serialize DirectoryInfo instance with Newtonsoft.Json "Cross-posting with https://github.com/JamesNK/Newtonsoft.Json/issues/1404 to demonstrate the pain this can cause with 3rd party libraries that have historically relied on this behavior vs simply removing the API which would bring attention to the problem immediately, instead of at runtime. Please consider removing these APIs in the future ### Source/destination types ```csharp System.IO.DirectoryInfo ``` ### Source/destination JSON None/serialization fails. ### Expected behavior Serialization of the DirectoryInfo object to function how it works on .net 4.x ### Actual behavior ``` Message: System.PlatformNotSupportedException : Operation is not supported on this platform. at System.IO.FileSystemInfo.GetObjectData(SerializationInfo info, StreamingContext context) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.SerializeISerializable(JsonWriter writer, ISerializable value, JsonISerializableContract contract, JsonProperty member, JsonContainerContract collectionContract, JsonProperty containerProperty) at Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.Serialize(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter jsonWriter, Object value, Type objectType) at Newtonsoft.Json.JsonConvert.SerializeObjectInternal(Object value, Type type, JsonSerializer jsonSerializer) at CSDiscordService.EvalTests.d__15.MoveNext() in C:\src\CSDiscord\CSDiscordService.Tests\EvalTests.cs:line 88 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Result Message: System.PlatformNotSupportedException : Operation is not supported on this platform. ``` Appears to be related to a change made in the .net core implementation to no longer support serializing several types. https://github.com/dotnet/corefx/pull/20220 ### Steps to reproduce ``` PM> dotnet --info .NET Command Line Tools (2.0.1-servicing-006924) Product Information: Version: 2.0.1-servicing-006924 Commit SHA-1 hash: 1ed6be56ca Runtime Environment: OS Name: Windows OS Version: 10.0.16257 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\2.0.1-servicing-006924\ Microsoft .NET Core Shared Framework Host Version : 2.0.0 Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d ``` ```csharp var di = Directory.CreateDirectory(""C:\\this\\doesnt\\exist""); var json = JsonConvert.SerializeObject(di); Console.WriteLine(json); ``` ### Other Observations ### `SerializerSettings.Error = (s, e) => e.ErrorContext.Handled = true;` does not handle this exception setting `SerializerSettings.ContractResolver = new DefaultContractResolver { IgnoreSerializableInterface = true };` does not change this behavior " +23416 area-System.Net .NET Core 2.0 Ubuntu 16.04 SocketException 10040 MessageSize Ubuntu 16.04 SocketException 10040 MessageSize nioBuffers List> nioBuffers when nioBuffers is large (total 892913 byte) SocketException 10040 MessageSize SocketError errorCode; long localWrittenBytes = socket.Send(nioBuffers, SocketFlags.None, out errorCode); if (errorCode != SocketError.Success && errorCode != SocketError.WouldBlock) { throw new SocketException((int)errorCode); } ![29483441-fbe0779c-84d8-11e7-8963-383c88c35151](https://user-images.githubusercontent.com/3415285/29486311-61bdaf58-8515-11e7-9aa6-6e1730a78697.png) +23417 area-System.Security Add missing members to EncryptedXml. While importing `EncryptedXml` into Mono (https://github.com/mono/mono/pull/5273), it was noticed that its following members are missing: * [The `(XmlDocument, Evidence)` constructor.](https://msdn.microsoft.com/en-us/library/kc1kt87d(v=vs.110).aspx) * [The `DocumentEvidence` property.](https://msdn.microsoft.com/en-us/library/system.security.cryptography.xml.encryptedxml.documentevidence(v=vs.110).aspx) This PR adds them. The implementation is taken from [.NET Framework](https://referencesource.microsoft.com/#System.Security/system/security/cryptography/xml/encryptedxml.cs). The behavior of the `EncryptedXmlTest.DecryptData_CipherReference_InvalidUri` test was changed. As far as I understand, both .NET Core and .NET Framework must behave the same way. According to [the documentation](https://msdn.microsoft.com/en-us/library/system.security.securitymanager.getstandardsandbox(v=vs.110).aspx), the `SecurityManager.GetStandardSandbox` must throw if the evidence is null. Previously, .NET Core wasn't throwing in this case, so this was changed as well. +23418 area-System.Collections Added Merge and Intersect methods to immutable dictionaries This PR is work in progress. I've made this as a reference point for further discussion for a new API methods proposed in #23385 : - ` IImmutableDictionary Intersect(IEnumerable> other, Func resolveValue)` - `IImmutableDictionary Merge(IEnumerable> other, Func resolveValue)` They aim to provide set-like intersection/union methods over dictionaries. Those two methods have specialized implementations for both `ImmutableDictionary` and `ImmutableSortedDictionary`, however I'm not yet much familiar with immutable collections internals. Also it would be great, if somebody could help me create some unit tests for those. +23419 area-System.Collections Proposal: ReverseComparer If you want to sort a `List` by descending, you have to create a Reverse IComparer class. My Proposal is to add a `ReverseComparer` class like System.Linq.Parallel.ReverseComparer and add extension method like ``` csharp public static IComparer Reverse(this IComparer comparer); public static IComparer Reverse(this IComparer comparer); ``` ## Usage This api is to make it simple to make a reverse comparer. ```csharp list.Sort(comparer.Reverse()); // you can use list.Sort((x,y)=>comparer.Compare(y,x)); insted var sorteddictionary = new SortedDictionary(comparer.Reverse()); //you can use (Comparer.Create((x,y)=> comprer.Compare(y,x))); ``` ## API ```csharp public class ReverseComparer: IComparer { public ReverseComparer(IComparer comparer); public int Compare(T x, T y); public static IComparer Reverse(this IComarer comparer); } ``` +23420 area-System.Data Increase code coverage from 39.1% to 50.8% on System.Data.Common.DataColumnMapping Hi, Here are some tests to increase code coverage. If you have any questions, please let me know. Thanks, Michael +23422 area-System.Net HttpWebRequest in .NET Core 2.0 throwing 301 Moved Permanently "The following single-line console program works just fine in .NET Framework 4.6.1: ```c# Console.WriteLine(XDocument.Load(""http://feeds.thisamericanlife.org/talpodcast"")); ``` However, in .NET Core 2.0 it throws the following exception: ``` Unhandled Exception: System.Net.WebException: The remote server returned an error: (301) Moved Permanently. at System.Net.HttpWebRequest.GetResponse() at System.Xml.XmlDownloadManager.GetNonFileStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy) at System.Xml.XmlDownloadManager.GetStream(Uri uri, ICredentials credentials, IWebProxy proxy, RequestCachePolicy cachePolicy) at System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri, String role, Type ofObjectToReturn) at System.Xml.XmlTextReaderImpl.FinishInitUriString() at System.Xml.XmlTextReaderImpl..ctor(String uriStr, XmlReaderSettings settings, XmlParserContext context, XmlResolver uriResolver) at System.Xml.XmlReaderSettings.CreateReader(String inputUri, XmlParserContext inputContext) at System.Xml.XmlReader.Create(String inputUri, XmlReaderSettings settings) at System.Xml.Linq.XDocument.Load(String uri, LoadOptions options) at System.Xml.Linq.XDocument.Load(String uri) at ConsoleApp1.Program.Main(String[] args) ``` This has always worked in the full .NET Framework, presumably because it automatically follows the redirection. However, it does not do that in .NET Core (it seems that AllowAutoRedirect is simply ignored), so I'm assuming this is a bug. Please let us know if there's a workaround. [EDIT] Fixed C# syntax highlight & exception code formatting by @karelz" +23423 area-Meta C# new operate bug? ```c# public class ListTest { public List MyList; public ListTest() { MyList = new List { 1, 2, 3 }; } } var listTest = new ListTest() { MyList = {4,5,6} }; ``` Do you know the value of listTest.MyList ??? It would be {1,2,3,4,5,6} (on .net framework 4.6.1) Someone can explain that?? [EDIT] Fixed proper code formatting by @karelz +23424 area-System.Xml Avoid unnecessary intermediate Version allocation Just a minor nit: `Version..ctor(string)` is [implemented](https://github.com/dotnet/coreclr/blob/a6045809b3720833459c9247aeb4aafe281d7841/src/mscorlib/shared/System/Version.cs#L81-L88) by calling `Version.Parse`, which allocates an intermediate `Version` instance. Avoid the unnecessary intermediate allocation by using `Version.Parse` directly in the two places `Version..ctor(string)` is used in CoreFX. Also, some minor cleanup to `XslCompiledTransform` while making changes here. cc: @krwq (for System.Xml) cc: @AlexGhiondea, @joperezr (for System.Runtime.Extensions) +23426 area-System.Net HttpClient specify interface to bind to / make requests from On a machine with multiple NICs, how can i specify (if possible) which interface IP to use for making requests? I am sometimes on a server where the default management interface is not connected to the internet, however there are multiple other NICs that are internet-facing that I would like to be able to use. With .NET Framework + ServicePointManager I believe you could use [BindIPEndPoint](https://msdn.microsoft.com/en-us/library/ms144146(v=vs.110).aspx). +23427 area-System.Net "Test: System.Net.Tests.HttpListenerResponseHeadersTests/StatusDescription_GetWithCustomStatusCode_ReturnsExpected failed with ""System.Net.Sockets.SocketException""" "Opened on behalf of @Jiayili1 The test `System.Net.Tests.HttpListenerResponseHeadersTests/StatusDescription_GetWithCustomStatusCode_ReturnsExpected(statusCode: 426, expectedDescription: \""Upgrade Required\"")` has failed. System.Net.Sockets.SocketException : Too many open files in system Stack Trace: at System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType) at System.Net.Tests.HttpListenerFactory.GetConnectedSocket() at System.Net.Tests.HttpListenerResponseTestBase..ctor() at System.Net.Tests.HttpListenerResponseHeadersTests..ctor() at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) Build : 2.0.0 - 20170818.01 (Core Tests) Failing configurations: - OSX.1013.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0-msrc~2F/type/test~2Ffunctional~2Fcli~2F/build/20170818.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpListenerResponseHeadersTests~2FStatusDescription_GetWithCustomStatusCode_ReturnsExpected(statusCode:%20426,%20expectedDescription:%20%5C%22Upgrade%20Required%5C%22)" +23428 area-System.Linq "Test: System.Linq.Parallel.Tests.FirstFirstOrDefaultTests/First_NoMatch_Longrunning failed with ""System.AggregateException""" Opened on behalf of @Jiayili1 The test `System.Linq.Parallel.Tests.FirstFirstOrDefaultTests/First_NoMatch_Longrunning(labeled: Enumerable.Range-Ordered, count: 65536, position: 0)` has failed. Assert.Throws() Failure Expected: typeof(System.InvalidOperationException) Actual: typeof(System.AggregateException): One or more errors occurred. (One or more errors occurred. (Object reference not set to an instance of an object.)) (One or more errors occurred. (Object reference not set to an instance of an object.)) (One or more errors occurred. (Object reference not set to an instance of an object.)) (One or more errors occurred. (Object reference not set to an instance of an object.)) (Object reference not set to an instance of an object.) (Object reference not set to an instance of an object.) (Object reference not set to an instance of an object.) (Object reference not set to an instance of an object.) Stack Trace: at System.Linq.Parallel.QueryTaskGroupState.QueryEnd(Boolean userInitiatedDispose) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/Parallel/Scheduling/QueryTaskGroupState.cs:line 132 at System.Linq.Parallel.OrderPreservingSpoolingTask`2.Spool(QueryTaskGroupState groupState, PartitionedStream`2 partitions, Shared`1 results, TaskScheduler taskScheduler) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/Parallel/Scheduling/OrderPreservingSpoolingTask.cs:line 123 at System.Linq.Parallel.MergeExecutor`1.Execute[TKey](PartitionedStream`2 partitions, Boolean ignoreOutput, ParallelMergeOptions options, TaskScheduler taskScheduler, Boolean isOrdered, CancellationState cancellationState, Int32 queryId) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/Parallel/Merging/MergeExecutor.cs:line 93 at System.Linq.Parallel.PartitionedStreamMerger`1.Receive[TKey](PartitionedStream`2 partitionedStream) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/Parallel/QueryOperators/PartitionedStreamMerger.cs:line 61 at System.Linq.Parallel.FirstQueryOperator`1.WrapHelper[TKey](PartitionedStream`2 inputStream, IPartitionedStreamRecipient`1 recipient, QuerySettings settings) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/Parallel/QueryOperators/Unary/FirstQueryOperator.cs:line 92 at System.Linq.Parallel.FirstQueryOperator`1.WrapPartitionedStream[TKey](PartitionedStream`2 inputStream, IPartitionedStreamRecipient`1 recipient, Boolean preferStriping, QuerySettings settings) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/Parallel/QueryOperators/Unary/FirstQueryOperator.cs:line 70 at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.ChildResultsRecipient.Receive[TKey](PartitionedStream`2 inputStream) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/Parallel/QueryOperators/UnaryQueryOperator.cs:line 162 at System.Linq.Parallel.ScanQueryOperator`1.ScanEnumerableQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/Parallel/QueryOperators/ScanQueryOperator.cs:line 138 at System.Linq.Parallel.UnaryQueryOperator`2.UnaryQueryOperatorResults.GivePartitionedStream(IPartitionedStreamRecipient`1 recipient) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/Parallel/QueryOperators/UnaryQueryOperator.cs:line 132 at System.Linq.Parallel.QueryOperator`1.GetOpenedEnumerator(Nullable`1 mergeOptions, Boolean suppressOrder, Boolean forEffect, QuerySettings querySettings) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/Parallel/QueryOperators/QueryOperator.cs:line 166 at System.Linq.Parallel.QueryOpeningEnumerator`1.OpenQuery() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/Parallel/QueryOperators/QueryOpeningEnumerator.cs:line 164 at System.Linq.Parallel.QueryOpeningEnumerator`1.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/Parallel/QueryOperators/QueryOpeningEnumerator.cs:line 111 at System.Linq.ParallelEnumerable.GetOneWithPossibleDefault[TSource](QueryOperator`1 queryOp, Boolean throwIfTwo, Boolean defaultIfEmpty) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/ParallelEnumerable.cs:line 5349 at System.Linq.ParallelEnumerable.First[TSource](ParallelQuery`1 source, Func`2 predicate) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/src/System/Linq/ParallelEnumerable.cs:line 5467 at System.Linq.Parallel.Tests.FirstFirstOrDefaultTests.<>c__DisplayClass9_0.b__0() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Linq.Parallel/tests/QueryOperators/FirstFirstOrDefaultTests.cs:line 100 Build : Master - 20170821.01 (Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170821.01/workItem/System.Linq.Parallel.Tests/analysis/xunit/System.Linq.Parallel.Tests.FirstFirstOrDefaultTests~2FFirst_NoMatch_Longrunning(labeled:%20Enumerable.Range-Ordered,%20count:%2065536,%20position:%200) +23429 area-System.Net Test failure: System.Net.WebSockets.Client.Tests.SendReceiveTest / SendReceive_ConnectionClosedPrematurely_ReceiveAsyncFailsAndWebSocketStateUpdated ## Types of failures Affected tests: * `System.Net.WebSockets.Client.Tests.SendReceiveTest` / `SendReceive_ConnectionClosedPrematurely_ReceiveAsyncFailsAndWebSocketStateUpdated` - 2x * `System.Net.WebSockets.Client.Tests.ConnectTest` / `ConnectAsync_CookieHeaders_Success` - 1x ``` System.Net.WebSockets.WebSocketException : Unable to connect to the remote server ---- System.OperationCanceledException : The operation was canceled. -------- System.ObjectDisposedException : Cannot access a disposed object. Object name: 'System.Net.Sockets.Socket'. at System.Net.WebSockets.WebSocketHandle.d__24.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Managed.cs:line 138 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.ClientWebSocket.d__16.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/ClientWebSocket.cs:line 157 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.Client.Tests.SendReceiveTest.<>c__DisplayClass11_1.<b__0>d.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.WebSockets.Client/tests/SendReceiveTest.cs:line 384 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.Client.Tests.SendReceiveTest.<>c__DisplayClass11_1.<b__10>d.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.WebSockets.Client/tests/SendReceiveTest.cs:line 470 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in /Users/buildagent/agent/_work/30/s/corefx/src/Common/tests/System/Net/Http/LoopbackServer.cs:line 67 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.Client.Tests.SendReceiveTest.d__11.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.WebSockets.Client/tests/SendReceiveTest.cs:line 466 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.WebSockets.WebSocketHandle.d__25.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Managed.cs:line 175 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.WebSockets.WebSocketHandle.d__25.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Managed.cs:line 190 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.WebSocketHandle.d__24.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Managed.cs:line 87 ----- Inner Stack Trace ----- at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 2434 at System.Net.Sockets.Socket.<>c.b__273_0(IAsyncResult iar) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/src/System/Net/Sockets/Socket.Tasks.cs:line 139 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.WebSockets.WebSocketHandle.d__25.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.Managed.cs:line 166 ``` ## History of failures Day | Build | OS | Test -- | -- | -- | -- 7/29 | 20170729.02 | Suse42.2 | ConnectAsync_CookieHeaders_Success 8/21 | 20170821.01 | OSX10.12 | SendReceive_ConnectionClosedPrematurely_ReceiveAsyncFailsAndWebSocketStateUpdated 8/30 | 20170830.01 | OSX10.12 | SendReceive_ConnectionClosedPrematurely_ReceiveAsyncFailsAndWebSocketStateUpdated +23430 area-System.Memory "System.SpanTests.ReadOnlySpanTests.OnSequenceEqualOfEqualSpansMakeSureEveryElementIsCompared failed with ""Xunit.Sdk.TrueException"" in CI" Failed test: System.SpanTests.ReadOnlySpanTests.OnSequenceEqualOfEqualSpansMakeSureEveryElementIsCompared COnfiguration: ubuntu16.10_release Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/ubuntu16.10_release/3504/testReport/System.SpanTests/ReadOnlySpanTests/OnSequenceEqualOfEqualSpansMakeSureEveryElementIsCompared/ MESSAGE: ~~~ Assert.True() Failure\nExpected: True\nActual: False ~~~ STACK TRACE: ~~~ at System.SpanTests.ReadOnlySpanTests.OnSequenceEqualOfEqualSpansMakeSureEveryElementIsCompared() in /mnt/j/workspace/dotnet_corefx/master/ubuntu16.10_release/src/System.Memory/tests/ReadOnlySpan/SequenceEqual.T.cs:line 67 ~~~ +23431 area-System.Runtime "Test: System.Tests.DecimalTests/Parse_Invalid failed with ""System.ArgumentNullException""" Opened on behalf of @Jiayili1 The test `System.Tests.DecimalTests/Parse_Invalid(value: null, style: Float, provider: null, exceptionType: typeof(System.ArgumentNullException))` has failed. System.ArgumentNullException : Value cannot be null.\r Parameter name: s Stack Trace: at System.Tests.DecimalTests.Parse_Invalid(String value, NumberStyles style, IFormatProvider provider, Type exceptionType) in E:\A\_work\441\s\corefx\src\System.Runtime\tests\System\DecimalTests.cs:line 699 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetVIIII(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170821.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64-x86 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170821.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.DecimalTests~2FParse_Invalid(value:%20null,%20style:%20Float,%20provider:%20null,%20exceptionType:%20typeof(System.ArgumentNullException)) +23432 area-System.Runtime "Tests under: System.Tests.EnvironmentTests failed with ""System.InvalidOperationException""" Opened on behalf of @Jiayili1 The test `System.Tests.EnvironmentTests/GetFolderPath_UapExistAndAccessible(folder: Cookies)` has failed. System.InvalidOperationException : The process has no package identity. (Exception from HRESULT: 0x80073D54) Stack Trace: at System.Runtime.InteropServices.McgMarshal.ThrowOnExternalCallFailed(Int32 hr, RuntimeTypeHandle typeHnd) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Interop\src\Shared\McgMarshal.cs:line 1012 at __Interop.ComCallHelpers.Call($__ComObject __this, RuntimeTypeHandle __typeHnd, Int32 __targetIndex, Void* arg0) in Call:line 15732480 at __Interop.ForwardComStubs.Stub_1($__ComObject __this, Int32 __targetIndex) in Stub_1:line 16707566 at System.Environment.GetFolderPathCoreCurrent($SpecialFolder folder) in E:\A\_work\441\s\corefx\src\System.Runtime.Extensions\src\System\Environment.WinRT.cs:line 117 at System.Environment.GetFolderPath($SpecialFolder folder, $SpecialFolderOption option) in E:\A\_work\441\s\corefx\src\System.Runtime.Extensions\src\System\Environment.cs:line 159 at System.Tests.EnvironmentTests.GetFolderPath_UapExistAndAccessible($SpecialFolder folder) in E:\A\_work\441\s\corefx\src\System.Runtime.Extensions\tests\System\EnvironmentTests.cs:line 289 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetVI(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170821.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170821.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.EnvironmentTests~2FGetFolderPath_UapExistAndAccessible(folder:%20Cookies) +23433 area-System.Runtime "Tests under: System.Tests.MathFTests failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Tests.MathFTests/Round_Digits` has failed. Assert.Equal() Failure\r Expected: 3.42199993\r Actual: 0.00100000005 Stack Trace: at System.Tests.MathFTests.AssertEqual(Single expected, Single actual, Single variance) in E:\A\_work\441\s\corefx\src\System.Runtime.Extensions\tests\System\MathF.netcoreapp.cs:line 135 at System.Tests.MathFTests.Round_Digits() in E:\A\_work\441\s\corefx\src\System.Runtime.Extensions\tests\System\MathF.netcoreapp.cs:line 946 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170821.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170821.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.MathFTests~2FRound_Digits +23434 area-System.Runtime "Tests under: System.Tests.MathTests failed with ""System.MissingMethodException""" Opened on behalf of @Jiayili1 The test `System.Tests.MathTests/Clamp_Byte(value: 0, min: 1, max: 3, expected: 1)` has failed. System.MissingMethodException : Method 'Math.Clamp(byte, byte, byte)' from assembly 'System.Runtime.Extensions' was not included in compilation, but was referenced in MathTests.Clamp_Byte(byte, byte, byte, byte). There may have been a missing assembly, or a dependency on a more recent Windows SDK release. Stack Trace: at System.Tests.MathTests.Clamp_Byte(Byte value, Byte min, Byte max, Byte expected) at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetVIIII(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170821.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170821.01/workItem/System.Runtime.Extensions.Tests/analysis/xunit/System.Tests.MathTests~2FClamp_Byte(value:%200,%20min:%201,%20max:%203,%20expected:%201) +23435 area-System.Data "Test: System.Data.SqlClient.Tests.SqlConnectionBasicTests/IntegratedAuthConnectionTest failed with ""System.Data.SqlClient.SqlException""" Opened on behalf of @Jiayili1 The test `System.Data.SqlClient.Tests.SqlConnectionBasicTests/IntegratedAuthConnectionTest` has failed. System.Data.SqlClient.SqlException : Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=1; handshake=17; [Login] initialization=0; authentication=1; [Post-Login] complete=3998; \r ---- System.ComponentModel.Win32Exception : The wait operation timed out Stack Trace: at System.Data.SqlClient.SqlInternalConnection.OnError($SqlException exception, Boolean breakConnection, Action$1 wrapCloseInAction) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnection.cs:line 618 at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning($TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParser.cs:line 1107 at System.Data.SqlClient.TdsParserStateObject.ThrowExceptionAndWarning(Boolean callerHasConnectionLock, Boolean asyncClose) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParserStateObject.cs:line 932 at System.Data.SqlClient.TdsParserStateObject.ReadSniError($TdsParserStateObject stateObj, UInt32 error) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParserStateObject.cs:line 2572 at System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParserStateObject.cs:line 2107 at System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParserStateObject.cs:line 2032 at System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParserStateObject.cs:line 1077 at System.Data.SqlClient.TdsParserStateObject.TryReadByte(Byte& value) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParserStateObject.cs:line 1311 at System.Data.SqlClient.TdsParser.TryRun($RunBehavior runBehavior, $SqlCommand cmdHandler, $SqlDataReader dataStream, $BulkCopySimpleResultSet bulkCopyHandler, $TdsParserStateObject stateObj, Boolean& dataReady) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParser.cs:line 1590 at System.Data.SqlClient.TdsParser.Run($RunBehavior runBehavior, $SqlCommand cmdHandler, $SqlDataReader dataStream, $BulkCopySimpleResultSet bulkCopyHandler, $TdsParserStateObject stateObj) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\TdsParser.cs:line 1493 at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs:line 1005 at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin($ServerInfo serverInfo, Boolean ignoreSniOpenTimeout, $TimeoutTimer timeout, Boolean withFailover) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs:line 1591 at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover$catch$0() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs:line 1332 at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist$catch$0() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs:line 1184 at System.Data.SqlClient.SqlInternalConnectionTds..ctor($DbConnectionPoolIdentity identity, $SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, $SqlConnectionString userConnectionOptions, $SessionData reconnectSessionData, Boolean applyTransientFaultHandling) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs:line 355 at System.Data.SqlClient.SqlInternalConnectionTds..ctor$catch$0() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs:line 374 at System.Data.SqlClient.SqlConnectionFactory.CreateConnection($DbConnectionOptions options, $DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, $DbConnectionPool pool, $DbConnection owningConnection, $DbConnectionOptions userOptions) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnectionFactory.cs:line 135 at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection($DbConnectionPool pool, $DbConnection owningObject, $DbConnectionOptions options, $DbConnectionPoolKey poolKey, $DbConnectionOptions userOptions) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionFactory.cs:line 113 at System.Data.ProviderBase.DbConnectionPool.CreateObject$catch$3() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs:line 755 at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest($DbConnection owningObject, $DbConnectionOptions userOptions, $DbConnectionInternal oldConnection) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs:line 1606 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection$catch$1() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs:line 1132 at System.Data.ProviderBase.DbConnectionPool.TryGetConnection($DbConnection owningObject, TaskCompletionSource$1<$DbConnectionInternal> retry, $DbConnectionOptions userOptions, $DbConnectionInternal& connection) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionPool.cs:line 1044 at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection($DbConnection owningConnection, TaskCompletionSource$1<$DbConnectionInternal> retry, $DbConnectionOptions userOptions, $DbConnectionInternal oldConnection, $DbConnectionInternal& connection) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionFactory.cs:line 289 at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal$catch$0() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\ProviderBase\DbConnectionInternal.cs:line 700 at System.Data.SqlClient.SqlInternalConnectionTds.TryReplaceConnection($DbConnection outerConnection, $DbConnectionFactory connectionFactory, TaskCompletionSource$1<$DbConnectionInternal> retry, $DbConnectionOptions userOptions) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlInternalConnectionTds.cs:line 1902 at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource$1<$DbConnectionInternal> retry) in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnection.cs:line 1031 at System.Data.SqlClient.SqlConnection.Open$catch$0() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\src\System\Data\SqlClient\SqlConnection.cs:line 606 at System.Data.SqlClient.Tests.SqlConnectionBasicTests.IntegratedAuthConnectionTest() in E:\A\_work\887\s\corefx\src\System.Data.SqlClient\tests\FunctionalTests\SqlConnectionTest.cs:line 38 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtrForDynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 ----- Inner Stack Trace ----- Build : UWP 6.0 - 20170821.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release Detail: https://mc.dot.net/#/product/netcore/uwp60/source/official~2Fcorefx~2Frelease~2Fuwp6.0~2F/type/test~2Ffunctional~2Filc~2F/build/20170821.01/workItem/System.Data.SqlClient.Tests/analysis/xunit/System.Data.SqlClient.Tests.SqlConnectionBasicTests~2FIntegratedAuthConnectionTest +23436 area-Infrastructure System.Runtime.Extensions nuget package installs signed dll (v4.6.24705.1) When referencing System.Runtime.Extensions (4.3.0) (or anything that makes uses of it), the dll that gets downloaded/deployed seems to be v4.6.24705.1 as opposed to the standard unsigned version as per the rest of the system dlls. The results in issues such as the following when attempting to publish for ubuntu 16.04. ``` Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'System.Runtime.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) at Microsoft.Extensions.CommandLineUtils.CommandLineApplication..ctor(Boolean throwOnUnexpectedArg) ``` Issue was not present when targeting .NET Core 1.1 and only presented itself after upgrading to .NET Core 2.0. Any advice on how to get around this? (Have attempted to clear nuget cache without any luck). [EDIT] Fixed exception formatting by @karelz [EDIT] Added details around affected version by @onematchfox. +23437 area-System.Runtime S.R.CS.Unsafe.AsRef remove unnecessary IL instructions for netcoreapp Fixes https://github.com/dotnet/coreclr/issues/13341 or at least the `Unsafe` part of this. WIP! Submitting PR to get feedback. @jkotas +23438 area-System.Collections ConcurrentDictionary: ApproximateCount ## Proposed API ```cs public class ConcurrentDictionary : ... { ... public int ApproximateCount { get; } ... } ``` ## Rationale and Usage Following the discussion from #3357, there seemed to be a consensus that an `ApproximateCount` property can fit plenty of use cases and can be implemented to be faster than `Count` (i.e avoid locking). For example, we might have a cache implementation that does some cleanup or flush-to-disk after reaching some arbitrarily defined X items in the dictionary: ```cs if (map.Count > 10000) cleanup(); ``` In this use-case it doesn't really matter what the exact value of X is, and is perfectly tolerable if some race condition causes it to be inaccurate once in a while, but the action itself might be called a lot and in quick succession (maybe even in a tight loop), so the cost of the lock in `Count` is not negligible, and the developer might prefer to write `if (map.ApproximateCount> 10000) cleanup();` instead to avoid that cost. Another use-case with similar rationale behind it might be when we want to construct a list from a dictionary (or multiple dictionaries/collections), and need to come up with a reasonable estimate of the list's capacity before-hand to avoid extra copies. We could then write something like: `List list = new List(map1.ApproximateCount + map2.ApproximateCount);`, if we believe that the cost of using `Count` would be greater than the occasional non-exact list capacity. +23440 area-System.IO Investigate rel OSX ZipFile failures Some ZipFile tests are failing on OSX in rel/1.0.0 and rel/1.1.0 because they're unable to match file names to entries in the FileData class. We need to investigate why they're only failing on rel e.g. if they're missing some recent test fixes and determine if there is something more insidious happening. PR's to disable the tests temporarily: https://github.com/dotnet/corefx/pull/23346 https://github.com/dotnet/corefx/pull/23359 +23441 area-System.Net System.Net.Tests.WebProxyTest/WebProxy_BypassOnLocal_MatchesExpected failure on SUSE https://mc.dot.net/#/user/dotnet-maestro-bot/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Frelease~2Fuwp6.0~2F/test~2Ffunctional~2Fcli~2F/f902382494decbafaa7eefe4935d2a074f926d15/workItem/System.Net.WebProxy.Tests/analysis/xunit/System.Net.Tests.WebProxyTest~2FWebProxy_BypassOnLocal_MatchesExpected Unhandled Exception of Type System.Net.Internals.SocketExceptionFactory+ExtendedSocketException Message : `System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : No such device or address` Stack Trace: ``` at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 46 at System.Net.Dns.ResolveCallback(Object context) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 290 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 420 at System.Net.Dns.EndGetHostEntry(IAsyncResult asyncResult) in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 562 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.WebProxyTest.d__10.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() in /mnt/j/workspace/dotnet_corefx/release_uwp6.0/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Linq/src/System/Linq/Select.cs:line 129 ``` +23442 area-System.Data [release/uwp6.0] Wrap CultureCulture assignments in RemoteInvoke Setting current culture or UI culture should be set remotely in our tests. The change also removes class derivation from DataSetAssertion so as to force correct inheritance behavior. Related issue: #23282 PR of fix: #23392 (this fix was ported against release/uwp6.0 to make current PR) cc: @danmosemsft +23443 area-System.Data SqlClient Connection Pooling error Hello , I have an Webapi that connect to different sql servers, we enabled connection pooling for both connections. Recently we need to apply a patch to one server, so we need to restart it. The result was that the connection pool blow the whole application. Different ways it fails: - When app starts, and you try to do first query to initialized the pool. If the server is not available or cannot connect. - After app starts and one of the server is not available, the app will eventually crash. - After app starts and you get intermittent connection availability, the app will eventually crash. I test this on the new core 2.0 , and also on 1.1.2 both on windows and linux , same result. this is the stack error that I get on core 2.0 System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 35 - An internal exception was caught) ---> System.AggregateException: One or more errors occurred. (Connection refused 10.40.40.106:1433) ---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException: Connection refused 10.40.40.106:1433 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) at System.Net.Sockets.Socket.<>c.b__267_0(IAsyncResult iar) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Data.SqlClient.SNI.SNITCPHandle.d__22.MoveNext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Threading.Tasks.Task.Wait(TimeSpan timeout) at System.Data.SqlClient.SNI.SNITCPHandle..ctor(String serverName, Int32 port, Int64 timerExpire, Object callbackObject, Boolean parallel) --- End of inner exception stack trace --- at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.PoolCreateRequest(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadPoolWorkQueue.Dispatch() Aborted I wrote a simple console test that helps to reproduced the issue. [Test.txt](https://github.com/dotnet/corefx/files/1239779/Test.txt) The problem is that there is no way to catch the exception since it happens at the framework level, so the entire app crash. If we removed the Min Pool Size the app wont crash. +23444 area-System.IO Resetting attributes broken in brokered locations Related to PR: #23316 Setting attributes twice on a file in a brokered location under UAP doesn't work. Issue is understood, need a new drop of FileApiInterop to fix. +23447 area-System.IO Disable failing compression test on OSX High Sierra Port https://github.com/dotnet/corefx/pull/23276 to release/2.0.0 resolves https://github.com/dotnet/corefx/issues/21427 +23448 area-System.Numerics Update documentation for `System.Numerics.Vector` to be more explicit. This was raised in the dotnet/corefx gitter channel. It is not currently clear from the documentation that the types exposed by the `System.Numerics.Vectors` assembly are not meant for general purpose `Vector` operations and that the types are heavily tied to the underlying hardware. The documentation for this could be greatly improved. Some types, such as `Vector` should have explicit (and readily visible) documentation that its element count is limited to `Vector.Count`, and that certain methods (such as the [Vector(T[])](https://msdn.microsoft.com/en-us/library/dn877694(v=vs.111).aspx) constructor) will only use the first `Vector.Count` elements and ignore the remaining. +23449 area-System.Diagnostics PrivateMemorySize64 Writing code in Dotcore 2.0 and trying to use ```Process.GetCurrentProcess().PrivateMemorySize64``` on Linux will yield 0 as a result where by Windows OS's return the expected results. Is this intended ? +23450 area-Infrastructure "Replace ""Initialize tools"" to only download docker files" "This way ""Initialize tools"" will be done later INSIDE docker, instead of OUTSIDE. This fixes issue: https://github.com/dotnet/core-eng/issues/1544 The inline script is: if command -v curl > /dev/null; then curl --retry 10 -sSL -o cleanup-docker.sh $(PB_VsoDockerFileDirUrl)cleanup-docker.sh curl --retry 10 -sSL -o init-docker.sh $(PB_VsoDockerFileDirUrl)init-docker.sh else wget $(PB_VsoDockerFileDirUrl)cleanup-docker.sh -q -O cleanup-docker.sh wget $(PB_VsoDockerFileDirUrl)init-docker.sh -q -O init-docker.sh fi" +23452 area-System.Runtime Fix wrong SkipOnTargetFramework in EnvironmentTests which were incorrectly not sipped in uapaot Contributes to: https://github.com/dotnet/corefx/issues/23432 Will close the issue whenever is ported to release/uwp6.0 cc: @danmosemsft @tijoytom +23453 area-System.Data Disable SqlClient tests that use TestTdsServer, since TestTdsServer has issues that can cause connection test timeouts and other failures. The TestTdsServer sometimes doesn't get setup in a timely manner, leading to test timeouts when trying to connect to it (even though the test server endpoint is on the same machine). There are also some other issues like errors during RemoveInvokeHandle.Dispose, or a one-off issue with encryption protocol negotiation while connecting to TestTdsServer. Timeout issues: https://github.com/dotnet/corefx/issues/23435 https://github.com/dotnet/corefx/issues/23123 https://github.com/dotnet/corefx/issues/20441 https://github.com/dotnet/corefx/issues/18604 https://github.com/dotnet/corefx/issues/17088 RemoveInvokeHandle.Dispose() issue: https://github.com/dotnet/corefx/issues/17925 An SSL/TLS protocol issue when connecting to TestTdsServer: https://github.com/dotnet/corefx/issues/23056 Also renamed SqlConnectionTest.cs to match its actual class name. +23455 area-System.Diagnostics DiagnosticSource Needs Documentation As @NickCraver points out in #18114, we need documentation that describes how DiagnosticSource is supposed to work from event production to consumption. Further, this documentation should describe from a user's perspective what is required and expected. +23458 area-System.IO Port change #23316 Ports change #23316 which gives brokering support to System.IO.FileSystem. Depends on port of #23454. Two commits- 1 for the cherry-pick from master, 1 for changes to align with the rel branch. cc: @joperezr +23460 area-System.ComponentModel Enable Validation of entire graph Please implement a way to validate an entire graph of object, so validating the root object will walk throughout the entire object graph and validate all subsequent children and their properties: ``` public class Company { [Required] public string Name { get; set; } public ICollection Contacts { get; set; } } public class Contact { [Required] public string Name { get; set; } public string Address { get; set; } } public class Address { [Required] public string Street { get; set; } } ``` Usage: Validator.TryValidateObject(company, ...); The validation should walk thru the whole graph and validate both `Name` properties and the `Street` property. +23461 area-System.ComponentModel Enable MinLengthAttribute and MaxLengthAttribute in more collection types. Please implement a `ValidationAttribute` that validates that a collection-typed property has any elements. Maybe expand the `RangeAttribute` functionality to work with collection? ``` public class Contact { [Range(3, 10)] public ICollection Phones { get; set; } } ``` +23463 area-System.Net IPEndPoint should have Parse/TryParse methods IPAddress has this, but not IPEndPoint. +23466 area-System.Collections [WIP] Add FastEquals extension method on EqualityComparer to improve perf /cc @jkotas @benaadams This PR adds a new `ComparerUtilities` class, which adds an extension method `FastEquals` to `IEqualityComparer`. `FastEquals` checks if the comparer is the default equality comparer and if `T` is a well-known type, and if so avoids a virtual method call to `Equals()`. Similarly, `ComparerUtilities.DefaultEquals()` replaces usages of `EC.Default.Equals()`. After hours of tinkering this morning, I finally got the code in `DefaultEquals` / `FastEquals` to inline without regressing the asm for any of the test cases. That is, for well-known types it folds into a single instruction, while for other types it generates the exact same code as before. So, aside from the increased JIT time, the perf is essentially free. So far, I've modified nearly all the types in System.Collections to use this API. I also plan on doing the following before un-WIPing this PR: - [ ] Having System.Collections.{Concurrent,Immutable} and System.Linq use the API - [ ] Making sure there is no asm regression for desktop-- [it doesn't seem like it optimizes the `typeof` trick in generic methods](https://github.com/dotnet/coreclr/issues/13514#issuecomment-323987735) - [ ] Publishing perf measurements +23467 area-Infrastructure Allow build to work behind corporate proxy servers Many corporate proxies require default user credentials to be sent. This PR allows the CLI to be downloaded and the build to run to completion in those environments +23468 area-System.Net Name not legible IsSuccessStatusCode in HttpResponseMessage I believe that the attribute IsSuccessStatusCode could be more intuitive. +23469 area-System.IO Exception in Directory.CreateDirectory when folder name ends with whitespace "I'm getting inconsistent results when calling Directory.CreateDirectory in a .NETCoreApp 1.0 and 2.0 compared to .NETFramework 4.6.2. If the folder ends with a whitespace but doesn't contain any whitespaces in the name: `Directory.CreateDirectory(""c:\work\CreateDirectory\folder \inner"") Directory.CreateDirectory(""c:\work\CreateDirectory\ folder \inner"")` will throw an exception: at System.IO.Win32FileSystem.CreateDirectory(String fullPath) at System.IO.Directory.CreateDirectory(String path) at TrailingNETCore.Program.ValidateCreate(String path, String netFrameworkResult) in C:\source\TrailingWhiteSpace\TrailingWhiteSpace\TrailingNETCore\Program.cs:line 55 If the folder ends with a whitespace but contains whitespaces in the name: `Directory.CreateDirectory(""c:\work\CreateDirectory\fold er \inner"") Directory.CreateDirectory(""c:\work\CreateDirectory\ fol der \inner"")` will get different results than .NETFramework. I attached an example program with various use cases and a comparison against .NETFramework [CreateDirectory.zip](https://github.com/dotnet/corefx/files/1242387/CreateDirectory.zip) " +23470 area-System.Diagnostics The throw keyword shows the wrong thrown exception line "Using .NETCore2.0, Win10, it seems the `throw` keywor Using the `throw` keyword loose all the initial stacktrace information. You can workaround with `ExceptionDispatchInfo.Capture(ex).Throw();`, but this seems like a bug to me. ``` using System; namespace ConsoleApp3 { class Program { static void Main(string[] args) { try { DoStuff(); } catch(Exception ex) { Console.WriteLine(ex.StackTrace); } } private static void DoStuff() { try { throw new Exception(""Boom!""); } catch(Exception ex) { throw; } } } } ``` Actual output: (Exception line 28) ``` at ConsoleApp3.Program.DoStuff() in c:\users\nicolasdorier\documents\visual studio 2017\Projects\ConsoleApp3\ConsoleApp3\Program.cs:line 28 at ConsoleApp3.Program.Main(String[] args) in c:\users\nicolasdorier\documents\visual studio 2017\Projects\ConsoleApp3\ConsoleApp3\Program.cs:line 11 ``` Expected output: (Exception line 24) ``` at ConsoleApp3.Program.DoStuff() in c:\users\nicolasdorier\documents\visual studio 2017\Projects\ConsoleApp3\ConsoleApp3\Program.cs:line 24 at ConsoleApp3.Program.Main(String[] args) in c:\users\nicolasdorier\documents\visual studio 2017\Projects\ConsoleApp3\ConsoleApp3\Program.cs:line 11 ``` Workaround using `ExceptionDispatchInfo.Capture(ex).Throw();`: ``` using System; using System.Runtime.ExceptionServices; namespace ConsoleApp3 { class Program { static void Main(string[] args) { try { DoStuff(); } catch(Exception ex) { Console.WriteLine(ex.StackTrace); } } private static void DoStuff() { try { throw new Exception(""Boom!""); } catch(Exception ex) { ExceptionDispatchInfo.Capture(ex).Throw(); throw; } } } } ```" +23471 area-System.Memory Remove Span(T[], int) ctor Span currently has these ctors with two parameters: - `public Span(T[], int)` - `public Span(void*, int)` - `internal Span(ref T, int)` (currently internal, but potentially public in the future) The usability issue is that the int parameter doesn't always mean the same thing: for the `void*` and `ref` ctors, it means length, but for the `T[]` ctor, it means offset. This leads to subtle bugs when switching back and forth between inputs, as a length can accidentally become an offset, or vice versa. We should remove the `public Span(T[], int)` ctor to avoid the confusion. We will still have the `public Span(T[])` ctor for cases where you want a span over the whole array, and we will still have the `public Span(T[], int, int)` ctor for cases where you want to specify the array, an offset, and a length, and for cases where you only want to specify the array and an offset, you can use `new Span(arr).Slice(offset)` without ambiguity. +23472 area-Infrastructure Add FileApiInterop.dll to uap corefx private package Porting change #23454 to release/uwp6.0 branch. This will add FileApiInterop.dll to the uap corefx private package. cc: @danmosemsft @JeremyKuhne @weshaggard @joshfree +23473 area-System.IO "Some IO tests now fail with ""The directory is not empty""" When running the System.IO.FileSystem tests locally, I sporadically hit the following error on Windows 10: ``` System.IO.Tests.DirectoryInfo_Delete_bool.RecursiveDelete_DeepNesting [FAIL] System.IO.IOException : The directory is not empty Stack Trace: C:\Users\stoub\Source\Repos\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs(542,0): at Syst em.IO.Win32FileSystem.RemoveDirectoryRecursive(String fullPath, WIN32_FIND_DATA& findData, Boolean topLevel) C:\Users\stoub\Source\Repos\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs(439,0): at Syst em.IO.Win32FileSystem.RemoveDirectory(String fullPath, Boolean recursive) C:\Users\stoub\Source\Repos\corefx\src\System.IO.FileSystem\src\System\IO\DirectoryInfo.cs(431,0): at System .IO.DirectoryInfo.Delete(Boolean recursive) c:\Users\stoub\Source\Repos\corefx\src\System.IO.FileSystem\tests\DirectoryInfo\Delete.cs(40,0): at System.I O.Tests.DirectoryInfo_Delete_bool.Delete(String path, Boolean recursive) c:\Users\stoub\Source\Repos\corefx\src\System.IO.FileSystem\tests\Directory\Delete.cs(277,0): at System.IO.T ests.Directory_Delete_str_bool.RecursiveDelete_DeepNesting() ``` +23474 area-Infrastructure Update dogfooding instructions to copy native assets. Native assets aren't being copied when following the dogfooding instructions because the Microsoft.NETCore.App package is being preferred over the local CoreFX package. /cc @dsplaisted skip ci please +23475 area-System.Runtime Port fix of incorrect SkipOnTargetFramework in EnvironmentTests Fixes: https://github.com/dotnet/corefx/issues/23432 cc: @danmosemsft +23477 area-Infrastructure [Release/2.0.0] Mark packages stable for 2.0.1 +23478 area-Infrastructure [release/1.1.0] Mark packages stable for 1.1.3 cc @ericstj @bartonjs +23479 area-Infrastructure [release/1.0.0] Mark packages as stable for 1.0.6 cc @ericstj @bartonjs +23480 area-System.Data Disable SqlClient tests that use TestTdsServer, since TestTdsServer has some issues that can cause connection test timeouts and other failures. (#23453) Porting change to release/uwp6.0. Shiproom approval pending. +23481 area-System.IO Add tests for FileStream span-based overrides cc: @JeremyKuhne, @ianhays Depends on https://github.com/dotnet/coreclr/pull/13522 Contributes to https://github.com/dotnet/corefx/issues/22386 +23482 area-System.Diagnostics "Remove invalid ""bold"" syntax in EventCounter docs" The use of `**` to try to call out a piece of preformatted code as bold doesn't actually work, because the preformatted code block overrides any Markdown syntax in the block. The EventCounter docs use this to try to call out a section of preformatted code as bold, and it causes confusion, as the user may think that the `**` sequence is needed (when it is actually invalid). Small nit that confused me for a few minutes when trying to use EventCounters. Wanted to fix it to avoid further confusion by anyone else looking at these docs :). +23483 area-Infrastructure Occasional hangs of threading tests on CI machines Per https://github.com/dotnet/corefx/pull/23462#issuecomment-324078900 there is speculation this is related to them only having 2 CPU. We should loop the tests on a 2 CPU machine and see whether they are just getting starved and never complete in a reasonable time. If that's the case we should either adjust the tests or the product. Was in Suse: https://mc.dot.net/#/user/dotnet-maestro-bot/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/02a6e4efff40d87d98e92a4c8a5a0c8fb5ad1c96/workItem/System.Threading.Tasks.Tests/wilogs +23484 area-Infrastructure Add macOS 10.13 to CI options @danmosemsft commented on [Tue Aug 08 2017](https://github.com/dotnet/core-eng/issues/1460) Helix runs now include 10.13 (high sierra). Can we please add this an optional leg to Jenkins for corefx? Ideally for release/1.x and 2.0 branches also. --- @maririos commented on [Thu Aug 10 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-321660036) FYI @mmitche --- @mmitche commented on [Thu Aug 10 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-321667673) This is a product work item. @danmosemsft ci.dot.net has 4 10.13 nodes. They can be transferred to ci3.dot.net if needed (for pipeline support), but you should be good to add the legs in corefx. --- @danmosemsft commented on [Thu Aug 10 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-321668051) OK. @tarekgh maybe you could add this CI support as part of your 10.13 work? We will want to port it into all the release branches. --- @tarekgh commented on [Thu Aug 10 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-321668810) I'll look at that next week. is there any doc how I can do it? sorry I didn't do that before. --- @mmitche commented on [Thu Aug 10 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-321671970) @tarekgh Here is the info on pipelines: https://github.com/dotnet/dotnet-ci/blob/dev/pipelinesupport/docs/CI-PIPELINES.md The existing corefx jobs are declared here: https://github.com/dotnet/corefx/blob/master/buildpipeline/pipelinejobs.groovy. The OSX jobs there call the osx.groovy file here: https://github.com/dotnet/corefx/blob/master/buildpipeline/osx.groovy You probably just want to parameterize this script so that the target OS here: https://github.com/dotnet/corefx/blob/master/buildpipeline/osx.groovy#L11 is passed in as a parameter to the script, then alter pipelinejobs.groovy so that it differentiates between 10.12 and 10.13 and passes the appropriate OS name in there. The rest of the build workflow will stay the same. I'll ensure that there are available 10.13 machines connected to the right CI server tomorrow or early next week. @weshaggard Any idea why we're not using Helix for the testing for OSX in CI? I think you put together that testing. --- @danmosemsft commented on [Thu Aug 10 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-321672560) BTW @Priya91 @wfurt @bartonjs do we yet know to our satisfcation that Apple supports building on one version of OSX and deploying on another? (As Windows generally does). For a while we were guessing that it might be causing segfaults, but that wasn't the case. It would be nice to know it's actually supported and we can continue to do all our building on 10.12. --- @mmitche commented on [Thu Aug 10 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-321673034) #1483 for moving a couple machines over. --- @weshaggard commented on [Thu Aug 10 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-321679172) >@weshaggard Any idea why we're not using Helix for the testing for OSX in CI? I think you put together that testing. We don't want to build on 10.13 just test so as long as we have the necessary Open helix queue then we can add them. --- @mmitche commented on [Thu Aug 10 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-321687380) We're not submitting through Helix today though....any idea why? --- @weshaggard commented on [Thu Aug 10 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-321691249) >We're not submitting through Helix today though....any idea why? I don't think there is any reason beyond the queues weren't ready when I updated it last. We should definitely start doing it. --- @mmitche commented on [Tue Aug 22 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-324111208) This has been completed --- @tarekgh commented on [Tue Aug 22 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-324114406) Thanks @mmitche. so there is no more actions needed from our side. right? --- @mmitche commented on [Tue Aug 22 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-324121653) The machines are available in the CI pools, but the jobs will need to be reworked to build using them,. That is something for the product team to do. --- @tarekgh commented on [Tue Aug 22 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-324132304) Reopen the issue as we still need to do some work from our side. --- @mmitche commented on [Tue Aug 22 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-324134639) @tarekgh I think this should go into the corefx/coreclr repos then. --- @tarekgh commented on [Tue Aug 22 2017](https://github.com/dotnet/core-eng/issues/1460#issuecomment-324135248) I didn't notice we are not on corefx :-) I'll move it there. +23485 area-System.Net SSLStream suffers degraded performance on Unix when completing writes sync If you make the write side of SslStream at any point in the code swap contexts/threads and reschedule you get a ~4x speed increase from plaintext tests on Kestrel. After looking at the CPU use and stats it would point towards a lock contention/deadlock scenario. As the number of threads/connections goes up the overall CPU use goes down quickly. We have tried replacing the PinnableBuffer pool for an ArrayPool and that made a small difference (a few percent but not enough to worry about) I will perform some more investigation and see if I can at least narrow the issue. +23486 area-System.Runtime Set InvariantCulture Local explicitely and improve error logging Fixes https://github.com/dotnet/corefx/issues/21720 Thanks @tarekgh for your tip. I found out that a few test records had no Locale set. I expect the different blobs now to be fixed. @danmosemsft Improved logging. +23487 area-System.Reflection Consider including AssemblyDefinition/AssemblyReference.GetAssemblyName in netstandard1.1 build The APIs added by https://github.com/dotnet/corefx/pull/23396 are currently only available in netstandard2.0. In order to include the APIs in netstandard1.1 we would need to work around the lack of AssemblyName.CultureName setter, which is not available in netstandard1.1. We can use a light-up. +23488 area-Meta update owners +23489 area-System.Runtime Add Intel hardware intrinsic APIs to CoreFX This PR is the complete design of [API Proposal: Add Intel hardware intrinsic functions and namespace #22940](https://github.com/dotnet/corefx/issues/22940). For building with the current code base, `const` parameter modifiers and `[intrinsic]` is temporarily removed. @russellhadley @terrajobst @CarolEidt @mellinoe +23490 area-System.Xml fix improperly generated method tokens in XSL IlGen Fixes: https://github.com/dotnet/corefx/issues/23343 Current implementation of Call instruction used when compiling XSL in debug mode is invalid and original desktop implementation can't be used due to lack of `System.Reflection.Emit.ModuleBuilder.GetMethodToken(MethodInfo)`. I've noted that this API is used only because of the workaround put in place related to really old bug (I could not find it in the database but based on the comments it seems that some platforms were missing LCG at that time) so I've decided to remove the workaround since I believe LCG is available for more than 10 years already. +23492 area-System.Collections Wrap CurrentCulture assignments in RemoteInvokes for Issue #23328 Wrap CurrentCulture assignments in RemoteInvokes for Issue #23328 to fix failures +23493 area-System.IO Override Stream.CopyTo in Streams that already override CopyToAsync Fixes https://github.com/dotnet/corefx/issues/12860 +23496 area-System.Diagnostics MSBuild Exec task broken with .NET Core 2.1 "I'm running into an issue [updating the .NET CLI to use .NET Core 2.1](https://github.com/dotnet/cli/pull/7478). My best guess currently is that this is a regression in .NET Core, because it is surfacing when I update to .NET Core 2.1 but worked with .NET Core 2.0. ## Repro steps - On a non-Windows OS - With a version of the .NET CLI that uses .NET Core 2.1 - Run `dotnet msbuild` with the following project ```xml ``` ## Expected Build succeeds ## Actual Build fails with the following: > Microsoft (R) Build Engine version 15.3.409.57025 for .NET Core Copyright (C) Microsoft Corporation. All rights reserved. > > /bin/sh: 1: export LANG=en_US.UTF-8; export LC_ALL=en_US.UTF-8; . /tmp/tmp365c3d61708c464b9358f5adcdafd024.exec.cmd: not found /mnt/c/git/dotnet-cli-linux/artifacts/testexec/testexec.proj(6,9): error MSB3073: The command ""echo Hello World"" exited with code 127. ## Details The MSBuild Exec task [creates a script file in the temporary folder](https://github.com/Microsoft/msbuild/blob/080ef976a428f6ff7bf53ca5dd4ee637b3fe949c/src/Tasks/Exec.cs#L216) in order to [set encodings](https://github.com/Microsoft/msbuild/blob/080ef976a428f6ff7bf53ca5dd4ee637b3fe949c/src/Tasks/Exec.cs#L608-L612) for the launched process. After the command is executed, the temporary file [is deleted](https://github.com/Microsoft/msbuild/blob/080ef976a428f6ff7bf53ca5dd4ee637b3fe949c/src/Tasks/Exec.cs#L340). It appears that with .NET Core 2.1, the temporary script file is not visible to the launched process, resulting in a ""not found"" error. ## Building a CLI with .NET Core 2.1 Currently there isn't a version of the CLI available with .NET Core 2.1. To build one yourself in order to repro the issue: - Clone https://github.com/dsplaisted/cli - Check out the `update-runtime-to-2.1` branch - Set the `CLIBUILD_SKIP_TESTS` environment variable to `true` - Run `build.sh` from the repo root - To use the newly built CLI, run `dotnet` from the `artifacts/linux-x64/stage2` folder" +23498 area-System.IO "Test: System.IO.Tests.WinRT_BrokeredFunctions/CreateDirectory failed with ""System.IO.IOException : The directory is not empty""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.WinRT_BrokeredFunctions/CreateDirectory` has failed. System.IO.IOException : The directory is not empty Stack Trace: at System.IO.Win32FileSystem.RemoveDirectoryInternal(String fullPath, Boolean topLevel) in E:\A\_work\274\s\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 567 at System.IO.Win32FileSystem.RemoveDirectory(String fullPath, Boolean recursive) in E:\A\_work\274\s\corefx\src\System.IO.FileSystem\src\System\IO\Win32FileSystem.cs:line 426 at System.IO.Directory.Delete(String path) in E:\A\_work\274\s\corefx\src\System.IO.FileSystem\src\System\IO\Directory.cs:line 565 at System.IO.Tests.WinRT_BrokeredFunctions.CreateDirectory() in E:\A\_work\274\s\corefx\src\System.IO.FileSystem\tests\WinRT_BrokeredFunctions.cs:line 47 Build : Master - 20170823.04 (UWP F5 Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fuwp~2F/build/20170823.04/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.WinRT_BrokeredFunctions~2FCreateDirectory +23499 area-System.ComponentModel "Tests under: System.ComponentModel.Design.Tests.DesignerOptionServiceTests failed with ""Xunit.Sdk.TrueException"" & ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.ComponentModel.Design.Tests.DesignerOptionServiceTests/DesignerOptionConverterGetPropertiesSupported_Invoke_ReturnsTrue` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.ComponentModel.Design.Tests.DesignerOptionServiceTests.DesignerOptionConverterGetPropertiesSupported_Invoke_ReturnsTrue() at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x2e at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x2c at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x124 The test `System.ComponentModel.Design.Tests.DesignerOptionServiceTests/DesignerOptionConverterGetProperties_ValidValue_ReturnsExpected` has failed. Assert.Equal() Failure\r Expected: 2\r Actual: 0 Stack Trace: at System.ComponentModel.Design.Tests.DesignerOptionServiceTests.DesignerOptionConverterGetProperties_ValidValue_ReturnsExpected() at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x2e at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x2c at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x124 The test `System.ComponentModel.Design.Tests.DesignerOptionServiceTests/DesignerOptionConverter_ConvertToString_ReturnsExpected` has failed. Assert.Equal() Failure\r ? (pos 0)\r Expected: (Collection)\r Actual: \r ? (pos 0) Stack Trace: at System.ComponentModel.Design.Tests.DesignerOptionServiceTests.DesignerOptionConverter_ConvertToString_ReturnsExpected() at Object _$ILCT$+$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x2e at Object System.InvokeUtils+CalliIntrinsics.Call(IntPtr, Object, IntPtr, InvokeUtils+ArgSetupState&, Boolean) + 0x2c at Object System.InvokeUtils.CallDynamicInvokeMethod(Object, IntPtr, Object, IntPtr, IntPtr, Object, Object[], BinderBundle, Boolean, Boolean) + 0x124 Build : Master - 20170823.04 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-x86 - Debug - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170823.04/workItem/System.ComponentModel.TypeConverter.Tests +23500 area-System.Net UrlEncoding with TextEncoding "_From @cilerler on August 20, 2017 22:13_ I have a text that retrieved from the web and saved into a file with encoding 1252. Text has URL's in it with some emoji's. However unless I get the result from method1 below, I can not be able to retrieve those pages. Since we don't have System.Web in dotnet-core and no support from System.Net.WebUtility for TextEncoding, I wonder, if you may provide me a simple example how to achieve this via new UrlEncoder. ``` var text = ""hello-world 💟""; Encoding sourceEncoding = Encoding.GetEncoding(1252); // method 1 // hello-world+%f0%9f%92%9f // <----- result, I would like to get System.Web.HttpUtility.UrlEncode(text, sourceEncoding).Dump(); // method 2 // hello-world+%c3%b0%c5%b8%e2%80%99%c5%b8 System.Web.HttpUtility.UrlEncode(text).Dump(); // method 3 // hello-world+%C3%B0%C5%B8%E2%80%99%C5%B8 System.Net.WebUtility.UrlEncode(text).Dump(); // method 4 // hello-world%20%C3%B0%C5%B8%E2%80%99%C5%B8 System.Uri.EscapeUriString(text).Dump(); ``` Thanks in advance 🤗 _Copied from original issue: aspnet/HtmlAbstractions#46_" +23501 area-System.Linq System.Linq.Parallel.Tests failed Failed Configuration: OuterLoop_netcoreapp_ubuntu14.04_debug OuterLoop_netcoreapp_windows_nt_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu14.04_debug/149/ https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_windows_nt_debug/143/ D:\j\workspace\outerloop_net---dbe8fad8\Tools\tests.taergets(453,5): error: One or more tests failed while running tests from 'System.Linq.Parallel.Tests' please check D:\j\workspace\outerloop_net---dbe8fad8\bin/AnyOS.AnyCPU.Debug/System.Linq.Parallel.Tests/netcoreapp/testResults.xml for details! [D:\j\workspace\outerloop_net---dbe8fad8\src\System.Linq.Parallel\tests\System.Linq.Parallel.Tests.csproj] +23502 area-System.Net Where is System.Security.Cryptography.Xml? Apologies for a dumb question, but as far as I can see System.Security.Cryptography.Xml is a part of .net core 2.0 release. How comes it is not included in dependencies of .net core 2.0 project? 1. Installed .net Core 2.0 SDK 2. Installed .net Core 2.0 runtime 3. Created .net Core 2.0 console application in Visual Studio 2017 (15.3) System.Security.Cryptography.Xml is nowhere to be found. +23503 area-System.Data SqlClient Should Support localhost in Connection Strings on Linux "When using a connection string containing `Data Source=localhost` on linux (in a Docker container in my case) I get the following error: ``` System.Data.SqlClient.SqlException occurred HResult=0x80131904 Message=A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 35 - An internal exception was caught) Source=Core .Net SqlClient Data Provider StackTrace: at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.PoolCreateRequest(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.QueueUserWorkItemCallbackDefaultContext.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() Inner Exception 1: AggregateException: One or more errors occurred. (This protocol version is not supported.) Inner Exception 2: NotSupportedException: This protocol version is not supported. ``` I believe `localhost` should be supported as it's a common scenario and to smooth out the platform inconsistencies. My understanding is that you must use an IP address on linux at the moment. I can't seem to get a working connection to the SQL Server installation on my local machine. My local SQL Server instance does not accept remote connections at the moment, I suspect this is why I cannot connect. I can however, point to a SQL Server public IP address that works. As a workaround, I'm thinking I could programmatically replace `localhost` with the required IP address but I haven't been able to figure out how to do this. Here is a general idea of what I've tried: ``` private static string GetConnectionString(string connectionString) { if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { var ipAddress = NetworkInterface .GetAllNetworkInterfaces() .Where(x => x.NetworkInterfaceType == NetworkInterfaceType.Ethernet && x.OperationalStatus == OperationalStatus.Up) .SelectMany(x => x.GetIPProperties().DnsAddresses) .FirstOrDefault(); if (ipAddress != null) { connectionString = connectionString.Replace(""localhost"", ipAddress.ToString()); } } return connectionString; } ```" +23504 area-System.Net WinHttpResponseStream.CopyToAsyncCore sporadically throws IOException "I have an self-hosted (kestrel) asp net web api site, based on net core. On application startup i am using single instance of `HttpClient` (with ""Connection: keep-alive"") to touch `/post` endpoint (with different payloads) of that site, and after that mark it as healthy (so called warm up). `/post` endpoint uses its own `HttpClient` to send dto, serialized as string, to third party endpoint. During warm up, instead of third party endpoint, i use same site endpoint, like `http://localhost:80/fake-third-party-response/`, where i return sample string that is expected from third party. And there comes an Issue - during integration tests (i am using nunit, inside test self hosted kestrel site is started), `WarmupService` produce errors, not always, but in about 20% cases test is failed. Errors are caught inside `/post` endpoint, when it tries to do: `PostAsync(new StringContent(someText, System.Text.Encoding.UTF8, ""text/xml"")` with ""Connection: close"" headers, using `HttpClient`. `HttpClient` in `/post` endpoint is created each time new, and disposed. `HttpResponseMessage` as a result of `PostAsync` call is also disposed. Test itself making about 50 calls to `/post` endpoint (so overall calls could be 100). Issue appears on Windows OS, i tried with netcoreapp1.1 and netcoreapp2.0, System.Net.Http 4.3.0 and 4.3.2. Stack trace: ```csharp System.Net.Http.HttpRequestException: Error while copying content to a stream. ---> System.IO.IOException: The read operation failed, see inner exception. ---> System.Net.Http.WinHttpException: The operation completed successfully --- End of inner exception stack trace --- at System.Net.Http.WinHttpResponseStream.d__18.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpContent.d__48.MoveNext() --- End of inner exception stack trace --- at System.Net.Http.HttpContent.d__48.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() ```" +23505 area-Infrastructure Should we stop using reference assemblies on desktop? See issues https://github.com/dotnet/sdk/issues/1522 and https://github.com/dotnet/corefx/issues/23229. We're seeing multiple issues where tools in the .NET framework build pipeline attempt to load reference assemblies in an execution context (Assembly.Load, LoadFrom, LoadFile). This fails for assemblies that have the ReferenceAssemblyAttribute. Build tools should **never** attempt to load references for execution: they may be running on totally different frameworks / platforms / versions. The problem is that not all tools (especially those for desktop) follow this practice. Largely because before System.Reflection.Metadata we didn't provide a safe way for build tools to do the right thing. They had to use the COM metadata APIs, CCI, LMR, or Cecil. Given that landscape and our desire to work in as many places as possible, should we remove the ReferenceAssemblyAttribute from any assembly which would apply to desktop? /cc @nguerrera @weshaggard @jkotas +23506 area-System.Net Invalid results of the function GetAttributeFromHeader in System.Net.HttpListenerRequest "https://github.com/dotnet/corefx/blob/ff7f4ba7ab0a9f50a0e4c1d3a3195165afd96d8f/src/System.Net.HttpListener/src/System/Net/HttpListenerRequest.cs#L293 For example, for parameters headerValue = `""multipart/form-data; boundary=abc; charset=UTF-8""` (from Content-Type header) and attrName = `""boundary""` The result will be >""abc;"" instead >""abc""" +23507 area-System.IO Make DisableMediaInsertionPrompt to be private struct to match CoreLib +23512 area-Microsoft.CSharp Porting a fix for #21689 to release/2.0.0 release/2.0.0 port of #22117 (Fix bug in MS.CSharp handling non-generic classes nested in generic) Such types are still generic but don't have a tick in their name, which the name lookup expects all generic types' names to have. Handle this case correctly. Fixes #21689 +23513 area-Infrastructure Make netfx mean net471 This maps netfx to net471 and removes the netfx support package and corresponding configurations from all projects. In the cases of packages that still support netfx I only kept a live configuration in the package if that package had type-defs. Otherwise I just harvested the past assets. Fixes #23165 +23515 area-System.Collections Remove code under FEATURE_RANDOMIZED_STRING_HASHING from corefx IIRC `string` does randomized hashing by default in .NET Core so the collections don't need to be modified to use a randomized equality comparer. [This code](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/HashSet.cs#L1249-L1253) doesn't even compile. +23516 area-System.Runtime Add tests for floating point and overridden Equals bug fix As discussed with @jkotas https://github.com/dotnet/coreclr/pull/13164#issuecomment-322919479 I'll add tests for the bug fixing of https://github.com/dotnet/coreclr/issues/11452 . My plan is to add the tests but disable them. After the new coreclr bits included in corefx, create another PR to enable them. The tests should cover double/float number (0.0, -0.0 and NaNs) issues as well as overridden `Equals` issues. +23517 area-Infrastructure [xUnit] [ERROR] - No test reports found for the metric 'xUnit.Net' with the resolved pattern 'bin/**/testResults.xml'. Configuration error? [xUnit] [ERROR] - No test reports found for the metric 'xUnit.Net' with the resolved pattern 'bin/**/testResults.xml'. Configuration error?. Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/fedora24_debug/3681/consoleFull#126823694079494335-f7bd-47d0-8771-8661e00c2db2 Configuration: fedora24_debug +23518 area-System.Net APNs + HTTP/2 + HttpClient + ClientCertificate throws WinHttpException "I'm trying to sent message to APNs using HttpClient and p12 certificate. Unfortunatelly I'm getting `The server returned an invalid or unrecognized response` error on `SendAsync`. Here is Code Example: ``` csharp public async Task SendAsync(ApnsHttp2Notification notification) { var url = string.Format(""https://{0}:{1}/3/device/{2}"", _options.Host, _options.Port, notification.DeviceToken); var uri = new Uri(url); using (var certificate = SecurityHelperMethods.GetCertificateFromFile(_options.CertificateFileName, _options.CertificatePassword)) using (var httpHandler = new HttpClientHandler { SslProtocols = SslProtocols.Tls12 }) { httpHandler.ClientCertificates.Add(certificate); using (var httpClient = new HttpClient(httpHandler, true)) using (var request = new HttpRequestMessage(HttpMethod.Post, url)) { request.Content = new StringContent(""Test""); request.Version = new Version(2, 0); try { using (var httpResponseMessage = await httpClient.SendAsync(request)) { var responseContent = await httpResponseMessage.Content.ReadAsStringAsync(); var result = $""status: {(int)httpResponseMessage.StatusCode} content: {responseContent}""; } } catch (Exception e) { throw; } } } } ``` Exception: ``` {System.Net.Http.HttpRequestException: Error while copying content to a stream. ---> System.IO.IOException: The write operation failed, see inner exception. ---> System.Net.Http.WinHttpException: The server returned an invalid or unrecognized response --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpContent.d__44.MoveNext() --- End of inner exception stack trace --- at System.Net.Http.HttpContent.d__44.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.WinHttpHandler.d__131.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.WinHttpHandler.d__105.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at APNs.ApnService.d__4.MoveNext() in D:\projects\ipl\src\Services\Notifiers\IPL.APNsNotifier.Worker\APNs\ApnService.cs:line 69} Data: {System.Collections.ListDictionaryInternal} HResult: -2146232800 HelpLink: null InnerException: {System.IO.IOException: The write operation failed, see inner exception. ---> System.Net.Http.WinHttpException: The server returned an invalid or unrecognized response --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpContent.d__44.MoveNext()} Message: ""Error while copying content to a stream."" Source: ""System.Net.Http"" StackTrace: "" at System.Net.Http.HttpContent.d__44.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Net.Http.WinHttpHandler.d__131.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Net.Http.WinHttpHandler.d__105.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Sys tem.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()\r\n at System.Net.Http.HttpClient.d__58.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()\r\n at APNs.ApnService.d__4.MoveNext() in ...\\ApnService.cs:line 69"" TargetSite: {Void MoveNext()} ``` Target Framework: netcoreapp2.0 OS: Windows 10 OS Version: 1703 OS Build: 15063.332" +23519 area-System.Runtime Add Scalar Intel hardware intrinsic functions "This proposal extends #22940 to additionally cover intrinsics for the `scalar` forms of the x86 hardware instructions. ## Rationale Currently, CoreFX implicitly emits various SSE/SSE2 instructions when performing operations on scalar floating-point types. However, there is currently no way to explicitly emit specific optimized sequences of code to best take advantage of the underlying hardware. For example, the `System.Math` and `System.MathF` APIs are currently implemented as FCALLs to the underlying C Runtime implementation of the corresponding method. The underlying C Runtime implementations are most frequently implemented as hand-optimized assembly or C/C++ intrinsics to ensure that they provide the best throughput possible and that they take advantage of newer instruction sets when available (`cos`/`cosf`, for example, frequently have one code path for SSE and one for FMA3). Due to these methods depending on the underlying C Runtime implementation: * We are at a significantly delayed cadence for getting bug fixes * We often have to add hacks to workaround these bugs as we find them, decreasing perf * The implementations between platforms and architectures often differ * This leads to perf differences: https://github.com/dotnet/coreclr/issues/9373 * This leads to input/output differences between Operating Systems (Windows, Linux, Mac, etc) * This leads to input/output differences between Platforms (x86, x64, ARM, etc) * Updating these methods requires modifying the runtime By providing scalar intrinsics for the Intel hardware functions it becomes much easier to implement these functions in managed code, which: * Means fewer workarounds as bugs can be fixed directly * Keeps perf is more consistent * Keeps input/output differences minimal or non-existing between operating systems * Helps keep input/output are minimal between platforms * Allows most bug fixes to be made independent of the runtime Furthermore, with the addition of #22940, it may become more pertinent to also have these scalar intrinsics to ensure that the codegen when intermixing scalar and vectorized operations remains ""optimal"" for the end-users customized/hand-optimized algorithms. ## Proposed API The current design in #22940 creates a class per instruction set and exposes methods such as `Vector128 Sse2.Sqrt(Vector128)` which corresponds to the `__m128d _mm_sqrt_pd(__m128d)` C/C++ intrinsic`. This would additionally extend the surface area to expose the scalar forms of all the instructions with the same name as the vector intrinsic, but with a `Scalar` postfix. This is required to differentiate between the vector and scalar APIs due to them taking the same types as their inputs. For example, we would expose: ```csharp public static class Sse2 { // __m128d _mm_add_sd(__m128d a, __m128d b); public static Vector128 AddScalar(Vector128 left, Vector128 right); // ... // No corresponding C/C++ intrinsic, used when upper should be taken from `value` public static Vector128 SqrtScalar(Vector128 value); // __m128d _mm_sqrt_sd(__m128d a, __m128d b) public static Vector128 SqrtScalar(Vector128 upper, Vector128 value); // ... } ``` ## Other Thoughts Most of the remaining sections (Intended Audience, Semantics and Usage, Implementation Roadmap, etc) are the same as in #22940 " +23520 area-System.Runtime Serialized Exception and AggregateException may not exchange successfully between CoreRT and CoreCLR `AggregateException` has a field `_innerExceptions` in CoreRT but `m_innerExceptions` in CoreCLR. It does not implement ISerializable so I think it will not exchange correctly. `Exception` does implement ISerializable and from eyeball it looks like the de/serialization will work although I notice CoreRT does not implement `ExceptionMethod` and `WatsonBuckets` and it does not set `RemoteStackTrace` even though CoreCLR needs that (it reads `StackTrace` but then nulls it out in `[OnDeserialized]`). Similarly `RemoteStackIndex`. +23523 area-System.Runtime Adding cross framework serialization and blob sanity check for serializable Exception types Relates to https://github.com/dotnet/corefx/issues/23520 Relates to https://github.com/dotnet/corert/pull/4377 This enables cross serialization and blob sanity checks for exception types. Focused on Desktop to Core interchangeability. Also removed the duplicated Clone method in favor of a more flexible one in Common. +23526 area-Microsoft.CSharp Fix duplicate types exception on WinRT interfaces Porting PR #23402 to release branch. Pending approval. Not ready for merge. +23527 area-Microsoft.CSharp Fix duplicate types exception on WinRT interfaces Porting PR #23402 to release branch. Pending approval. Not ready for merge. +23528 area-System.IO Add tests to validate we don't fall over enumerating files that just … …cross the legacy MAX_PATH barrier. As we do special logic on Windows to support long paths this is an important boundary to test. While these path lengths don't have special meaning outside of Windows, we'll always run them they should still pass . https://github.com/dotnet/cli/issues/7508#issuecomment-324742361 +23529 area-System.Data Fixed a bug where SqlDataReader.GetSchemaTable() would throw an error with UDT queries. When calling SqlDataReader.GetSchemaTable() for a UDT query, a PlatformNotSupported exception gets thrown. SqlClient in Core returns UDTs as binary types currently, so this scenario should succeed. Also moved some UDT tests to a dedicated UdtTest class. +23531 area-System.Runtime release/uwp6.0 - Serialiazation globalization fix Fixes failing tests on OSX10.12 and 10.13: https://mc.dot.net/#/product/netcore/uwp60/source/official~2Fcorefx~2Frelease~2Fuwp6.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170824.01/workItem/System.Runtime.Serialization.Formatters.Tests Waiting for shiproom approval. +23532 area-System.Runtime release/2.0.0 - Serialization test fixes Re-enables disabled serialization tests for CompareInfo, CookieContainer and language agnostics types. cc @danmosemsft waiting for shiproom approval +23533 area-System.Net flaky Socket Connect tests "## History of failures Day | Build | OS | Error message -- | -- | -- | -- 8/9 | 20170809.02 | Win8.1 | Assert time out 8/9 | 20170809.02 | Win10 | Assert time out 8/10 | 20170810.01 | Win10 | Assert time out 8/10 | 20170810.02 | Win7 | Assert time out 8/12 | 20170812.01 | Win7 | Assert time out 8/14 | 20170814.02 | Win10 | Assert time out 8/15 | 20170815.02 | Win7 | Assert time out 8/17 | 20170817.01 | Ubuntu17.10 | Assert time out 8/18 | 20170818.02 | Win10 | Assert time out 8/19 | 20170819.02 | Win8.1 | Assert time out 8/19 | 20170819.02 | Win7 | Assert time out 8/20 | 20170820.01 | Win10 | Assert time out 8/21 | 20170821.01 | Win10 | Assert time out 8/21 | 20170821.03 | Win8.1 | Assert time out 8/22 | 20170822.02 | Win8.1 | Assert time out 8/22 | 20170822.03 | Win10 | Assert time out 8/23 | 20170823.02 | Win8.1 | Assert time out 8/22 | 20170823.01 | Win10 | Assert time out 8/23 | 20170823.02 | Win10 | Assert time out 8/23 | 20170823.05 | Win10 | Assert time out 8/23 | 20170823.06 | Win10 | Assert time out 8/24 | 20170824.01 | Win10 | Assert time out 8/24 | 20170824.03 | Win8.1 | Assert time out 8/27 | 20170827.02 | Win8.1 | Assert time out 8/31 | 20170831.01 | Win10 | Assert time out 9/8 | 20170908.01 | Win10 | Assert time out 9/8 | 20170908.02 | Win10 | Assert time out 9/11 | 20170911.01 | Win10 | Assert time out 9/12 | 20170912.01 | Win7 | Assert time out 9/15 | 20170915.01 | Win10 | Assert time out 9/16 | 20170916.01 | Win8.1 | Assert time out 11/21 | 20171121.02 | Win7 | Assert time out 11/21 | N/A | N/A | Assert turned into TimeoutException in https://github.com/dotnet/corefx/commit/779171fea3d9f0b25d4058e281ca05b2b6eec323#diff-018414b4fffa636f2e5e9ef6099c07b0 11/22 | 20171122.01 | Win7 | Timeout 10,000 11/22 | 20171122.03 | Win8.1 | Timeout 10,000 11/24 | 20171124.02 | Win10 | Timeout 10,000 11/24 | 20171124.02 | Win7 | Timeout 10,000 11/25 | 20171125.01 | Win7 | Timeout 10,000 11/25 | 20171125.01 | RedHat69 | Timeout 10,000 11/25 | 20171125.02 | RedHat69 | Timeout 10,000 11/25 | 20171125.02 | Win7 | Timeout 10,000 11/27 | 20171127.01 | Win7 | Timeout 10,000 11/27 | 20171127.02 | Win10 | Timeout 10,000 11/27 | 20171127.02 | Win8.1 | Timeout 10,000 11/27 | 20171127.06 | Win7 | Timeout 10,000 11/28 | 20171128.01 | Win7 | Timeout 10,000 11/28 | 20171128.01 | Win7 | Timeout 10,000 11/28 | 20171128.03 | Win8.1 | Timeout 10,000 11/28 | 20171128.05 | Win7 | Timeout 10,000 11/28 | 20171128.07 | Win10 | Timeout 10,000 # Original report These tests are often failing in CI with ""Timed out while waiting for connection"": System.Net.Sockets.Tests.ConnectSyncForceNonBlocking: Connect_MultipleIPAddresses_Success(listenAt: 127.0.0.1) Connect_MultipleIPAddresses_Success(listenAt: ::1) " +23534 area-System.Data DllNotfound exception sni.dll All I did was publish an asp.net 2.0 project up from 1.1. using SqlConnection fails on open. An unhandled exception was thrown by the application. (560e7d32) System.DllNotFoundException: Unable to load DLL 'sni.dll' +23535 area-System.Net flaky Sockets tests in System.Net.Sockets.Tests.DualModeConnectionlessReceiveFrom "I've seen this one fail with ""connection timed out"". Other similar tests may have a similar timeout issue. ReceiveFromV6BoundToSpecificV6_Success" +23536 area-Meta Update DotNetHost version reference This change updates the version of the DotNetHost and DotNetHostPolicy to a newer version that's available for RHEL 6 too. +23537 area-System.Net Handle hostnotfound errors on Unix. fixes #23441 #23231 +23539 area-System.Console Handle EAGAIN in Console.Write on Unix If stdout/stderr is configured as a non-blocking file descriptor, Console.Write{Line} may fail if the descriptor is full and would block. With this commit, we instead poll in that case waiting for the ability to write and then retry. (This should workaround the issue seen in https://github.com/Microsoft/msbuild/issues/2153, though it'd be good to understand why stdout is being set as O_NONBLOCK in that scenario, who's doing it, etc.) cc: @joperezr, @wfurt, @CESARDELATORRE +23542 area-System.Data Consider porting System.Data.OleDb to .NET Core and include it in Windows Compatibility Pack how do using oledb? https://docs.microsoft.com/zh-cn/dotnet/api/system.data.oledb?view=netcore-2.0 +23544 area-System.Net [API] Add per request headers override to HttpClient convenience methods "## Motivation Custom per request http headers importance are on the rise due to their role in authentication and authentication in newer api security models. The way to send custom per request headers with `HttpClient` is via `SendAsync` and adding them to the `HttpRequestMessage`. However that isn't very discoverable and is a big jump from using the convenience methods `GetAsync`, `PostAsync`, etc This can lead people to changing the `DefaultRequestHeaders` on the `HttpClient` instead: [SO](https://stackoverflow.com/a/35910012/1109918), [SO](https://stackoverflow.com/q/42156953/1109918), [SO](https://stackoverflow.com/q/10679214/1109918), etc Which is very dangerous if the `HttpClient` is used as a static; which is [also an official suggested practice](https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client) > **HttpClient** is intended to be instantiated once and re-used throughout the life of an application. Especially in server applications, creating a new **HttpClient** instance for every request will exhaust the number of sockets available under heavy loads. This will result in **SocketException** errors. And in popular blogs [""You're using HttpClient wrong and it is destabilizing your software""](https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/) > This is dramatic. If you have any kind of load at all you need to remember these two things: > > 1. Make your HttpClient static. > 2. Do not dispose of or wrap your HttpClient in a using unless you explicitly are looking for a particular behaviour (such as causing your services to fail). Both changing `DefaultRequestHeaders` per request and concurrently making requests from a shared `HttpClient` will end *very* badly. ## Proposal Add overloads to the convenience methods `GetAsync`, `PostAsync`, etc to allow for customer headers on a per request basis from a shared `HttpClient` ```csharp public partial class HttpClient { Task DeleteAsync(string requestUri, HttpRequestHeaders requestHeaders) { throw null; } Task DeleteAsync(string requestUri, HttpRequestHeaders requestHeaders, CancellationToken cancellationToken) { throw null; } Task DeleteAsync(Uri requestUri, HttpRequestHeaders requestHeaders) { throw null; } Task DeleteAsync(Uri requestUri, HttpRequestHeaders requestHeaders, CancellationToken cancellationToken) { throw null; } Task GetAsync(string requestUri, HttpRequestHeaders requestHeaders) { throw null; } Task GetAsync(string requestUri, HttpRequestHeaders requestHeaders, HttpCompletionOption completionOption) { throw null; } Task GetAsync(string requestUri, HttpRequestHeaders requestHeaders, HttpCompletionOption completionOption, CancellationToken cancellationToken) { throw null; } Task GetAsync(string requestUri, HttpRequestHeaders requestHeaders, CancellationToken cancellationToken) { throw null; } Task GetAsync(Uri requestUri, HttpRequestHeaders requestHeaders) { throw null; } Task GetAsync(Uri requestUri, HttpRequestHeaders requestHeaders, HttpCompletionOption completionOption) { throw null; } Task GetAsync(Uri requestUri, HttpRequestHeaders requestHeaders, HttpCompletionOption completionOption, CancellationToken cancellationToken) { throw null; } Task GetAsync(Uri requestUri, HttpRequestHeaders requestHeaders, CancellationToken cancellationToken) { throw null; } Task GetByteArrayAsync(string requestUri, HttpRequestHeaders requestHeaders) { throw null; } Task GetByteArrayAsync(Uri requestUri, HttpRequestHeaders requestHeaders) { throw null; } Task GetStreamAsync(string requestUri, HttpRequestHeaders requestHeaders) { throw null; } Task GetStreamAsync(Uri requestUri, HttpRequestHeaders requestHeaders) { throw null; } Task GetStringAsync(string requestUri, HttpRequestHeaders requestHeaders) { throw null; } Task GetStringAsync(Uri requestUri, HttpRequestHeaders requestHeaders) { throw null; } Task PostAsync(string requestUri, HttpContent content, HttpRequestHeaders requestHeaders) { throw null; } Task PostAsync(string requestUri, HttpContent content, HttpRequestHeaders requestHeaders, CancellationToken cancellationToken) { throw null; } Task PostAsync(Uri requestUri, HttpContent content, HttpRequestHeaders requestHeaders) { throw null; } Task PostAsync(Uri requestUri, HttpContent content, HttpRequestHeaders requestHeaders, CancellationToken cancellationToken) { throw null; } Task PutAsync(string requestUri, HttpContent content, HttpRequestHeaders requestHeaders) { throw null; } Task PutAsync(string requestUri, HttpContent content, HttpRequestHeaders requestHeaders, CancellationToken cancellationToken) { throw null; } Task PutAsync(Uri requestUri, HttpContent content, HttpRequestHeaders requestHeaders) { throw null; } Task PutAsync(Uri requestUri, HttpContent content, HttpRequestHeaders requestHeaders, CancellationToken cancellationToken) { throw null; } } ``` ## Notes There are also suggestions [for going further for increased safety](https://twitter.com/xoofx/status/900367218806063104) > I would opt for taking headers at construction time and freeze them, or allow to pass frozen headers through a param or TLS...etc Perhaps freezing the `DefaultRequestHeaders` on first request; and throwing an `InvalidOperationException` if they are modified after the first request has been initiated? As modifying the default headers while requests are being initiated in parallel will lead to nonsensical outcome; and modifying them and submitting a request can't be an atomic operation. /cc @davidsh, @CIPop, @Priya91 @xoofx @khellang " +23545 area-System.Data Failed to load sni.dll "Posted project here: https://github.com/foxjazz/gadgetWebApi.git Created asp.net 2.0 core app with a controller that opens a connection sqlConnection. when this happens error is here but only on a 2008 r2 server the app is published to. The app runs fine on developer machine. but does not publish correctly and even if code is copied, still failes on 2008R2 server. [ERR] Connection id """"0HL7B69PSCNQ2"""", Request id """"0HL7B69PSCNQ2:00000001"""": An unhandled exception was thrown by the application. (560e7d32) System.DllNotFoundException: Unable to load DLL 'sni.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at System.Data.SqlClient.SNINativeMethodWrapper.UnmanagedIsTokenRestricted(IntPtr token, Boolean& isRestricted) at System.Data.Win32NativeMethods.IsTokenRestrictedWrapper(IntPtr token)" +23546 area-System.Runtime "Test: System.Runtime.InteropServices.MarshalTests/ValidateExceptionForHRAPI failed with ""System.Exception""" Opened on behalf of @Jiayili1 The test `System.Runtime.InteropServices.MarshalTests/ValidateExceptionForHRAPI` has failed. System.Exception : Exception from HRESULT: 0x80131D0B Stack Trace: at System.Runtime.InteropServices.MarshalTests.ValidateExceptionForHRAPI() in E:\A\_work\390\s\corefx\src\System.Runtime.InteropServices\tests\System\Runtime\InteropServices\MarshalTests.cs:line 264 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170825.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170825.01/workItem/System.Runtime.InteropServices.Tests/analysis/xunit/System.Runtime.InteropServices.MarshalTests~2FValidateExceptionForHRAPI +23547 area-System.Runtime "Tests under: System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests failed with ""System.NullReferenceException""" Opened on behalf of @Jiayili1 The test `System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests/RoundtripManyObjectsInOneStream` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.d__19.MoveNext() in E:\A\_work\390\s\corefx\src\System.Runtime.Serialization.Formatters\tests\BinaryFormatterTestData.cs:line 104 at System.Collections.Generic.LargeArrayBuilder$1.AddRange(IEnumerable$1<__Canon> items) in E:\A\_work\390\s\corefx\src\Common\src\System\Collections\Generic\LargeArrayBuilder.cs:line 142 at System.Collections.Generic.EnumerableHelpers.ToArray(IEnumerable$1<__Canon> source) in E:\A\_work\390\s\corefx\src\Common\src\System\Collections\Generic\EnumerableHelpers.cs:line 84 at System.Linq.Enumerable.ToArray(IEnumerable$1<__Canon> source) in E:\A\_work\390\s\corefx\src\System.Linq\src\System\Linq\ToCollection.cs:line 18 at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.SerializableObjects_MemberData() in E:\A\_work\390\s\corefx\src\System.Runtime.Serialization.Formatters\tests\BinaryFormatterTestData.cs:line 38 at System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests.RoundtripManyObjectsInOneStream() in E:\A\_work\390\s\corefx\src\System.Runtime.Serialization.Formatters\tests\BinaryFormatterTests.cs:line 136 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170825.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release - Windows.10.Amd64.ClientRS3-x86 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170825.01/workItem/System.Runtime.Serialization.Formatters.Tests/analysis/xunit/System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests~2FRoundtripManyObjectsInOneStream +23549 area-System.Security "SSL fails on linux if ""~/.dotnet"" directory unavailable" "Using SSL fails with ""Access to the path '/.dotnet/corefx/cryptography/x509stores/ca' is denied."" if .dotnet dir cannot be created. We're running a dotnet app as a phony user with no home direcotory of its own." +23551 area-Meta NETSTANDARD2_0 not support in .net framework project? ![qq 20170825220515](https://user-images.githubusercontent.com/5651857/29717447-c6b74b64-89e1-11e7-971a-865577006101.png) Why the code can't reach ? I use ASP.NET Core in .NET Framework 4.6.1. +23552 area-System.Reflection Reenable tests that are now working on ILC +23553 area-System.Diagnostics Make EventCounter test more robust It seems that Timer events may not fire promptly. Since EventCounters rely on timers to periodically send callbacks, then EventCounters also are not prompt. The tests bascially set the EventCounters to fire every 100 msec and expect at least 2 timer callbacks in 700 msec, which is pretty generous. However we have a case where this fails (we only got 1). Rather than simply make the time bigger (it is already very generous), I have created another use of Timer which simply counts how many 100msec ticks go off. If THIS timer does not register enough ticks, then we don't require EventCounter to do so either. This should make the test robust. @brianrob @Jiayili1 +23554 area-System.IO Conditionally run namedPipes tests in uap if windows version contains fix Cc @danmosemsft @joshfree @safern Adding tests back conditionally for new Windows version. This doesn't close the related issue yet, because there are two more tests still failing (pingpong_async and PingPong_sync). I'll continue investigating those to see why did we get that regression. +23555 area-System.Net Avoid byte[] allocations for IPAddress in System.Net.Sockets Use the new span-based overloads to avoid byte[] allocations when constructing IPAddresses in System.Net.Sockets. cc: @geoffkizer, @Priya91, @davidsh, @cipop +23556 area-System.IO UWP brokered locations do not work with FileStream in Release Brokered locations are folders that require capabilities to access- such as Pictures or Music. We have consumed FileApiInterop.dll from Windows to provide brokered functionality for CoreFX and CoreCLR. ProjectN still needs to be updated. cc: @safern, @joshfree, @joperezr, @danmosemsft This issue subsumes the prior issues #21025, #16422, and #15284. +23557 area-System.IO Don't use FromApp apis in UAP @safern will amend this PR with the package changes cc: @joshfree, @davidwrighton, @botaberg, @zamont, @nattress, @danmosemsft +23558 area-System.Memory Remove Span(T[],int) ctor from System.Runtime https://github.com/dotnet/corefx/pull/23530 removed the {ReadOnly}Span(T[],int) ctor from the System.Memory ref, but it missed removing it from the System.Runtime ref. corefx will fail to build against the latest coreclr without those being removed, too. cc: @ahsonkhan, @jkotas +23559 area-Infrastructure Update build tools Update to the latest buildtools and deal with compiler breaking changes. This is splitting out the buildtools update portion from https://github.com/dotnet/corefx/pull/23513. +23560 area-Serialization Clean up or pragma disable warnings 0169, 0414, and 0649 in Microsoft.XmlSerializer.Generator.csproj See https://github.com/dotnet/corefx/commit/84c6a81f7d1343a038850c6aa6286bd50f210a29#diff-47a9f2bd971e727d7993cdfad3d33f58R13 The new build of roslyn started catching unused fields. Microsoft.XmlSerializer.Generator.csproj had too many for me to fix. Please remove the warnings and either fix these by deleting the unused fields, or pragma disable and add a comment about how they are used if accessed through reflection or kept for serialization (for example). +23561 area-System.Xml Clean up or pragma disable warnings 0169, 0414, and 0649 in System.Private.Xml.csproj See https://github.com/dotnet/corefx/commit/84c6a81f7d1343a038850c6aa6286bd50f210a29#diff-f942094b67f3b93600fc4729053f8bccR9 The new build of roslyn started catching unused fields. System.Private.Xml.csproj had too many for me to fix. Please remove the warnings and either fix these by deleting the unused fields, or pragma disable and add a comment about how they are used if accessed through reflection or kept for serialization (for example). +23562 area-System.Drawing Remove some assertions from AssertDefaultPageSettings in PrintDocumentTests.cs. After some system update (or maybe some other system configuration change), these assertions started to fail for me on my machine. They seem to be system-dependent, and not some sort of global default, so I've just removed them. @KostaVlev +23566 area-System.IO Port rollback of System.IO DCR from release branch to master cc: @danmosemsft @joshfree +23568 area-Infrastructure /p:XunitOptions build option does not work properly on Unix "Run msbuild with a quoted /p:XunitOptions parameter on Unix, and it will fail because it's not properly handling the quoted parameter: ``` ../../../Tools/msbuild.sh /t:RebuildAndTest /p:Outerloop=true ""/p:XunitOptions=-showProgress -parallel none"" Microsoft (R) Build Engine version 15.1.523.56541 Copyright (C) Microsoft Corporation. All rights reserved. MSBUILD : error MSB1001: Unknown switch. Switch: -parallel ``` This works on Windows. I believe @wfurt knows how to fix this. " +23570 area-Meta Maintain release notes for corefx NuGet packages With corefx, it's great that development happens in the open and that pull requests are accepted. However, it is hard to know when various features or fixes actually make it out because the packages on NuGet.org do not specify release notes. For example, System.Collections.Immutable links it's release notes as https://github.com/dotnet/core/blob/master/release-notes/1.1/1.1.0-preview1.md, which isn't very helpful. It would be great if each package linked to a clear release notes page with a bulleted list of fixes and features linked to issues. A good example of a release notes page is https://github.com/JamesNK/Newtonsoft.Json/releases. +23572 area-System.Net Remove pinnable buffer from SslStream In testing underload and with different threading and programming models that the Pinnable buffer is either not percievably faster or significantly slower than just using the shared array pool. By removing this we remove a significant amount of code from this class and pave the way for other refactors. In the current state I see a small performance bump in SslStream underload on Unix on a NUMA based system. Maybe if he could be so kind @benaadams or someone with windows benchmarking could confirm the same on Windows. I see from 149k -> 160k over a number of test runs, it's just outside the margin of error but I think it's a low risk change that reduces code complexity and moves to the common ArrayPool that is heavily tested. +23574 area-System.Net HttpUtility.ParseQueryString incorrect if first item's name begins with a question mark "If a query-string's first name-value pair begins with a question mark then the initial question mark is stripped twice, so the name in the parsed collection is incorrect. E.g. with `??name=value&x=y` the result is a collection where `[""name""] == ""value""` while if it isn't the first element, as in `?x=y&?name=value` then it has the correct result of `[""?name""] == ""value""`" +23577 area-System.Drawing System.Drawing: Consolidate Clip-related code in Graphics - Move common Clip-related code from Graphics.Unix and Graphics.Windows to Graphics - Move P/Invoke methods to GdiplusNative +23578 area-System.Collections Make a new interface ICountable "### Description I often bump into scenarios where I have to evaluate an `IEnumerable` that might be either `ICollection`, `ICollection`, `IEnumerable` or `IEnumerable`, to get their size if available, so to avoid iterating on them to count them. The thing with `ICollection`, is that it doesn't inherit from `ICollection`, and there are types that inherit from `ICollection` but not from `ICollection` (for instance `HashSet`). Additionally, `ICollection` isn't co-variant, meaning not every `ICollection` is an `ICollection`, like `IEnumerable` is. I'm not arguing about this design, which is a good thing to avoid confusion and mis-adding of types. ### Motives The thing I do find annoying here, and I bump into it a lot, is the `Count` property, which is common to `ICollection` and `ICollection` and `IReadOnlyCollection`, but these interfaces don't overlap each other. Obtain a value from a generic type when the type argument is unknown at compile time is only possible with reflection. So in order to get the known size of a collection you'd have to do the following (see discussion [here](https://github.com/dotnet/corefx/pull/23664#discussion_r136200693)). And with the branching of the `TypeInfo` class, this gets even worse: ```c# //gets count if known int? GetCountIfKnown(IEnumerable collection) { if(collection is ICollection collection) return collection.Count; else { Type genericCol = value.GetType().GetTypeInfo().ImplementedInterfaces.Select(t => t.GetTypeInfo()).FirstOrDefault(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(ICollection<>)); if (genericCol != null) retun (int)genericCol.GetTypeInfo().GetProperty(""Count"").GetValue(value); } return null; } ``` As pointed out later in [comments](https://github.com/dotnet/corefx/issues/23578#issuecomment-325664702) by @NightOwl888, the `IReadOnlyCollection` interface also exposes the `Count` property, but the reasons it doesn't address my issue is: - It's generic, so when the type is unknown at compile time, we can only evaluate it using reflection - `ICollection` doesn't inherit from it. - Not all collections with known size inherit from it There are many use cases of non-generic collections I bump into, the real reason we need non-generic support, is not because their not generic, but rather because their generic argument may not be known at runtime. I can't remember all of the scenarios I've encountered this demand as they are many, but I'll name a few. - When developing general tools (i.e. XAML converters) that are supposed to eat a wide variety of value types and work differently when the value is a collection. - We need to store a collection of `ICollection`s of a variety of types. When enumerating the main collection, the count of the items can only be achieved by acquiring the collection type with reflection. ### Solution My suggestion is then, to introduce a new interface `ICountable` (or `IReadOnlyCollection` - non generic) that its contract determines that a collection has a `Count` property and exposed the collection size regardless of its item type. This interface should be implemented by (please comment if you're aware of others): - `ICollection` - `ICollection` - `IReadOnlyCollection` The new interface should have one sole task: expose a known size of a collection via a `Count` property, with disregard to the collection type (`T`), editability (`ICollection` vs `IReadOnlyCollection`), or other features. ```c# int? GetCountIfKnown(IEnumerable enumerable) => (enumerable as IReadOnlyCollection)?.Count; ``` ### Concequences - Implicit implementations of `ICollection`, `ICollection` and `IReadOnlyCollection` will have to change the pattern to `ICountable` (or if we call it `IReadOnlyCollection` or anything else). - Implementations that call the property `Count` on `ICollection` (or the others) as ""declared"", will have to switch to either calling the runtime property, or call it on `ICountable` etc. Related: https://github.com/dotnet/corefx/issues/23700." +23579 area-System.Net Netcore2.0 Unix Socket Tcp Send Big Buffer Raise Error Message too long https://github.com/caozhiyuan/DotNetty/tree/dev/examples/SocketAsyncClient https://github.com/caozhiyuan/DotNetty/tree/dev/examples/SocketAsyncServer when nioBuffers total byte size big than 344064,will raise 10040 MessageSize Error(Message Too Long) ```c# SocketError errorCode; long localWrittenBytes = this.clientSocket.Send(nioBuffers, SocketFlags.None, out errorCode); if (errorCode != SocketError.Success && errorCode != SocketError.WouldBlock) { throw new SocketException((int)errorCode); } ``` +23580 area-System.ComponentModel Tests for System.ComponentModel.DataAnnotations * Check ValidationException throws PSNE on .NET Core serialisation. * Test multiple validation errors can be returned from same call. +23581 area-System.ComponentModel Some refactoring in System.ComponentModel.DataAnnotations * Use null propagation where appropriate. * Fix parameter reference in XML documentation. * Remove unnecessary `this.` qualifications. * Properties to auto-properties where possible. * Auto-properties get-only where appropriate. * Use `GetValueOrDefault` rather than `Value` when known that `HasValue` Avoids second check. * Make field `readonly`. * Remove unused parameter on private method. * Remove `CompareAttribute.IsPublic` Unused and private. * Don't check to avoid redundant write to `LocalizableString.Value` `LocalizableString.Value` protects itself from redundant writes with its current value, so checking from the outside is wasteful. * Use expression-bodied properties and methods throughout. * Remove unused `using`s. +23582 area-System.Net HttpUtility.ParseQueryString does HTML decoding first on CoreFX, but not on NetFX "The version of `HttpUtility.ParseQueryString` in CoreFX does HTML decoding first, differing from desktop: ```C# HttpUtility.ParseQueryString(""name=value&name2=value2"").ToString() // name=value&%3bname2=value2 on Desktop // name=value&name2=value2 on CoreFX HttpUtility.ParseQueryString(""?name=valué"")[""name""] // valu on Desktop // valué on CoreFX ``` #23573 is a knock-on effect of this. (Closing as such). #23574 is an indirect knock-on effect in that ? is stripped both before and after HTML decoding that shouldn't be done at all." +23583 area-System.Linq Enumerable.Generate ### Description `Enumerable.Repeat`, when used with a reference type, will generate an iteration of the specified count with reference sharing the same object. For example `Enumerable.Repeat(new Contact(), 10) will generate a single `Contact` and an iterator of 10 references to that single object. My suggestion is hereby to please introduce a new method in the `Enumerable` class, that generates a number of instances according to the desired one. ### Suggestion Please implement one of the following options: - Introduce a new method in the `Enumerable` class that generates a separate new reference type for each iteration - Add a new overload with a flag that specifies whether to activate a new one for each iteration or reuse them - Add a new overload that takes an `Action` that uses as an activation action, and is called upon each iteration - One of the above plus an `Action` where `int` is the current index. What I'm looking for is simply a shorthand for: Enumerable.Range(0, count).Select(i => new Contact { Id = i }); Looks like there is a demand for it, see [this](https://stackoverflow.com/questions/17865166/creating-a-list-filled-with-new-instances-of-an-object) and [this](https://stackoverflow.com/questions/13553022/how-can-i-use-linq-to-initialize-an-array-of-repeated-elements)) Additionally, as a syntactic sugar, please make an overload of `Enumerable.Repeat` without the [first argument](https://source.dot.net/#System.Linq/System/Linq/Repeat.cs,12), (instead, perhaps and the `where TResult: new()` constraint), and when called activate a new element of TResult without having to specify it. Related: #5078, #13909. +23584 area-System.Runtime PlatformNotSupportedException when attempting to deserialize exceptions not deriving directly from System.Exception "I suspect this is related to #19119, but it is unclear what ""partial serialization support"" means entirely. It seems like all exception types should be serializable/deserializable given the fact they are the most likely to cross application boundaries, but that doesn't seem to be the case. We have a test to verify exceptions can both serialize and deserialize. When adding support for .NET Standard 2.0, we have put the FEATURE_SERIALIZABLE compilation symbol back in, meaning these tests should now run (was that a mistake?). Here is what the test looks like: ```c# #if FEATURE_SERIALIZABLE using Lucene.Net.Attributes; using NUnit.Framework; using System; using System.Collections.Generic; using System.Linq; namespace Lucene.Net.Support { /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the ""License""); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an ""AS IS"" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ [TestFixture] public class TestExceptionSerialization : ExceptionSerializationTestBase { public static IEnumerable ExceptionTestData { get { var exceptionTypes = typeof(Lucene.Net.QueryParsers.Classic.ICharStream).Assembly.GetTypes().Where(t => typeof(Exception).IsAssignableFrom(t)).Cast(); // If the assembly has no exceptions, just provide Exception so the test will pass if (!exceptionTypes.Any()) { return new Type[] { typeof(Exception) }; } return exceptionTypes; } } [Test, LuceneNetSpecific] public void AllExceptionsInLuceneNamespaceCanSerialize([ValueSource(""ExceptionTestData"")]Type luceneException) { var instance = TryInstantiate(luceneException); Assert.That(TypeCanSerialize(instance), string.Format(""Unable to serialize {0}"", luceneException.FullName)); } } } #endif ``` ```c# #if FEATURE_SERIALIZABLE using Lucene.Net.Util; using NUnit.Framework; using System; using System.Globalization; using System.IO; using System.Reflection; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters.Binary; namespace Lucene.Net.Support { /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the ""License""); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an ""AS IS"" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ public abstract class ExceptionSerializationTestBase : LuceneTestCase { protected static bool TypeCanSerialize(T exception) { T clone; try { var binaryFormatter = new BinaryFormatter(); using (var serializationStream = new MemoryStream()) { binaryFormatter.Serialize(serializationStream, exception); serializationStream.Seek(0, SeekOrigin.Begin); clone = (T)binaryFormatter.Deserialize(serializationStream); } } #pragma warning disable 168 catch (SerializationException ex) #pragma warning restore 168 { return false; } return true; } protected static object TryInstantiate(Type type) { object instance = null; BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance; try { instance = Activator.CreateInstance(type, flags, null, new object[] { ""A message"" }, CultureInfo.InvariantCulture); } catch (MissingMethodException) { try { instance = Activator.CreateInstance(type, flags, null, null, CultureInfo.InvariantCulture); } catch (MissingMethodException) { Assert.Fail(""Can't instantiate type {0}, it's missing the necessary constructors."", type.FullName); } } return instance; } } } #endif ``` It passes for all tests that inherit `System.Exception` directly. However, it fails for exceptions that inherit `System.IO.IOException` and `System.NotSupportedException` on the line `clone = (T)binaryFormatter.Deserialize(serializationStream);`. ### Example Exception that Fails to Deserialize ```c# #if FEATURE_SERIALIZABLE [Serializable] #endif public class TooManyBasicQueries : System.IO.IOException { public TooManyBasicQueries(int maxBasicQueries) : this(""Exceeded maximum of "" + maxBasicQueries + "" basic queries."") { } // For testing public TooManyBasicQueries(string message) : base(message) { } #if FEATURE_SERIALIZABLE /// /// Initializes a new instance of this class with serialized data. /// /// The that holds the serialized object data about the exception being thrown. /// The that contains contextual information about the source or destination. public TooManyBasicQueries(SerializationInfo info, StreamingContext context) : base(info, context) { } #endif ``` ``` Test Name: AllExceptionsInLuceneNamespaceCanSerialize(Lucene.Net.QueryParsers.Surround.Query.TooManyBasicQueries) Test FullName: Lucene.Net.Support.TestExceptionSerialization.AllExceptionsInLuceneNamespaceCanSerialize(Lucene.Net.QueryParsers.Surround.Query.TooManyBasicQueries) Test Source: F:\Projects\lucenenet\src\Lucene.Net.Tests.QueryParser\Support\TestExceptionSerialization.cs : line 49 Test Outcome: Failed Test Duration: 0:00:00.032 Result StackTrace: at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeConstructorInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) at System.Runtime.Serialization.ObjectManager.CompleteISerializableObject(Object obj, SerializationInfo info, StreamingContext context) at System.Runtime.Serialization.ObjectManager.FixupSpecialObject(ObjectHolder holder) at System.Runtime.Serialization.ObjectManager.DoFixups() at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(BinaryParser serParser, Boolean fCheck) at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, Boolean check) at Lucene.Net.Support.ExceptionSerializationTestBase.TypeCanSerialize[T](T exception) in F:\Projects\lucenenet\src\Lucene.Net.TestFramework\Support\ExceptionSerializationTestBase.cs:line 42 at Lucene.Net.Support.TestExceptionSerialization.AllExceptionsInLuceneNamespaceCanSerialize(Type luceneException) in F:\Projects\lucenenet\src\Lucene.Net.Tests.QueryParser\Support\TestExceptionSerialization.cs:line 49 --PlatformNotSupportedException at System.SystemException..ctor(SerializationInfo info, StreamingContext context) at System.IO.IOException..ctor(SerializationInfo info, StreamingContext context) at Lucene.Net.QueryParsers.Surround.Query.TooManyBasicQueries..ctor(SerializationInfo info, StreamingContext context) in F:\Projects\lucenenet\src\Lucene.Net.QueryParser\Surround\Query\TooManyBasicQueries.cs:line 55 Result Message: System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation. ----> System.PlatformNotSupportedException : Operation is not supported on this platform. Result StandardOutput: Culture: rof Time Zone: (UTC+04:30) Kabul Default Codec: Lucene3x (Lucene.Net.Codecs.Lucene3x.PreFlexRWCodec) Default Similarity: RandomSimilarityProvider(queryNorm=False,coord=no): ``` Note that if the above exception is changed to inherit `System.Exception` instead of `System.IO.IOException` the test will pass. However, we can't exactly work around this by inheriting `System.Exception` since we are porting from Java and the application relies heavily on catching the right exception types to go down the correct execution path (at least not without putting in a catch block for every single one of our custom exception types that inherits `System.IO.IOException`, etc.) What I am wondering is whether or not this is a bug, whether or not we shouldn't be relying on serialization yet in .NET Standard 2.0, and if this was intentional why such an odd choice to allow serialization on some exceptions but not others was made? ### Platform Microsoft Windows [Version 10.0.15063] (c) 2017 Microsoft Corporation. All rights reserved. .NET Command Line Tools (2.0.0) Product Information: Version: 2.0.0 Commit SHA-1 hash: cdcd1928c9 Runtime Environment: OS Name: Windows OS Version: 10.0.15063 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\2.0.0\ Microsoft .NET Core Shared Framework Host Version : 2.0.0 Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d " +23585 area-System.Text System.Text.Encodings.Web.Tests ForbidRange test failed on macOS in CI https://ci3.dot.net/job/dotnet_corefx/job/master/job/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/2743/consoleText ``` Microsoft.Framework.WebEncoders.TextEncoderSettingsTests.ForbidRange [FAIL] Assert.Equal() Failure Expected: True Actual: False Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Text.Encodings.Web/tests/TextEncoderSettingsTests.cs(277,0): at Microsoft.Framework.WebEncoders.TextEncoderSettingsTests.ForbidRange() ``` +23586 area-System.Numerics Several numeric operator tests failed on macOS in CI https://ci3.dot.net/job/dotnet_corefx/job/master/job/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/2743/consoleText ``` System.Numerics.Tests.ToStringTest.RunRegionSpecificStandardFormatToStringTests [FAIL] Unexpected Exception:Xunit.Sdk.TrueException: Assert.True() Failure Expected: True Actual: False at Xunit.Assert.True(Nullable`1 condition, String userMessage) at System.Numerics.Tests.ToStringTest.VerifyToString(String test, String format, IFormatProvider provider, Boolean expectError, String expectedResult) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Runtime.Numerics/tests/BigInteger/BigIntegerToStringTests.cs:line 1439 Expected: True Actual: False Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Runtime.Numerics/tests/BigInteger/BigIntegerToStringTests.cs(1448,0): at System.Numerics.Tests.ToStringTest.VerifyToString(String test, String format, IFormatProvider provider, Boolean expectError, String expectedResult) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Runtime.Numerics/tests/BigInteger/BigIntegerToStringTests.cs(1397,0): at System.Numerics.Tests.ToStringTest.VerifyToString(String test, String format, String expectedResult) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Runtime.Numerics/tests/BigInteger/BigIntegerToStringTests.cs(478,0): at System.Numerics.Tests.ToStringTest.RunStandardFormatToStringTests(Random random, String format, String negativeSign, Int32 precision, StringFormatter formatter) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Runtime.Numerics/tests/BigInteger/BigIntegerToStringTests.cs(253,0): at System.Numerics.Tests.ToStringTest.RunRegionSpecificStandardFormatToStringTests() System.Numerics.Tests.op_orTest.RunOrTests [FAIL] Assert.Equal() Failure ↓ (pos 240) Expected: ···6007339264329025061429377265939311317315953000824212942620456··· Actual: ···6007339264329025061465590802459251221408169200421330713897122··· ↑ (pos 240) Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Runtime.Numerics/tests/BigInteger/op_or.cs(126,0): at System.Numerics.Tests.op_orTest.VerifyOrString(String opstring) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Runtime.Numerics/tests/BigInteger/op_or.cs(25,0): at System.Numerics.Tests.op_orTest.RunOrTests() System.Numerics.Tests.op_rightshiftTest.RunRightShiftTests [FAIL] Assert.Equal() Failure ↓ (pos 2632) Expected: ···5000711332234539142747417137995476834885943827938409825669015··· Actual: ···5000711332234539142785686200374855839256444202561770627110816··· ↑ (pos 2632) Stack Trace: /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Runtime.Numerics/tests/BigInteger/op_rightshift.cs(167,0): at System.Numerics.Tests.op_rightshiftTest.VerifyRightShiftString(String opstring) /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Runtime.Numerics/tests/BigInteger/op_rightshift.cs(118,0): at System.Numerics.Tests.op_rightshiftTest.RunRightShiftTests() ``` +23587 area-System.Numerics Math.Sin(double) returning incorrect result on .NET Standard 2.0 I have put together a test case as proof. It passes on .NET Framework 4.5.1 and .NET Standard 1.5 (with a .NET Core 1.0 client), but fails on .NET Standard 2.0 (with a .NET Core 2.0 client). The test requires NUnit (I am using 3.7.1), but I have ruled out NUnit as the cause: ```c# public static readonly double DEGREES_TO_RADIANS = Math.PI / 180; public static readonly double RADIANS_TO_DEGREES = 1 / DEGREES_TO_RADIANS; [Test] public void CalcDistanceIncorrectOnNetStandard2_0() { double lat2 = 1.5707963267948966; double dist1 = DistHaversineRAD(0, 0, lat2, 0); double dist2 = ToDegrees(dist1); Assert.AreEqual(90, dist2, 0); } public static double DistHaversineRAD(double lat1, double lon1, double lat2, double lon2) { // Check for same position if (lat1 == lat2 && lon1 == lon2) return 0.0; double hsinX = Math.Sin((lon1 - lon2) * 0.5); double hsinY = Math.Sin((lat1 - lat2) * 0.5); double h = hsinY * hsinY + (Math.Cos(lat1) * Math.Cos(lat2) * hsinX * hsinX); return 2 * Math.Atan2(Math.Sqrt(h), Math.Sqrt(1 - h)); } public static double ToDegrees(double radians) { return radians * RADIANS_TO_DEGREES; } ``` The result of this line ```c# double hsinY = Math.Sin((lat1 - lat2) * 0.5); ``` is `-0.70710678118654746` on .NET Framework 4.5.1 and .NET Standard 1.5, but it is `-0.70710678118654757` on .NET Standard 2.0. I have confirmed the result of `(lat1 - lat2) * 0.5` is `-0.78539816339744828` in both cases (the value being passed into `Math.Sin(double)`). Note also the program is being ported from Java, and a similar test passes there with the same input and expected output. ## Environment .NET Command Line Tools (2.0.0) Product Information: Version: 2.0.0 Commit SHA-1 hash: cdcd1928c9 Runtime Environment: OS Name: Windows OS Version: 10.0.15063 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\2.0.0\ Microsoft .NET Core Shared Framework Host Version : 2.0.0 Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d +23588 area-Infrastructure Code coverage for System.Private.CoreLib is broken It appears we're no longer able to get code coverage of System.Private.CoreLib, even when using CoreCLROverridePath, even when using `set COMPlus_ZapDisable=1`. cc: @mellinoe, @danmosemsft +23589 area-System.IO Add BinaryReader Span-based APIs Contributes to https://github.com/dotnet/corefx/issues/22428 Depends on https://github.com/dotnet/coreclr/pull/13616, https://github.com/dotnet/corert/pull/4396 +23590 area-System.Threading Add conversion from Task -> CancellationToken method There should be a built in way to convert a task to a cancellation token. Tasks can be used to represent one shot events (see https://github.com/dotnet/corefx/issues/16221) and lots of manual code needs to be written to convert a Task to a CancellationToken. ```C# public class Connection { // This task will continue with the connection is terminated public Task ConnectionLifetime { get; } } var connection = new Connection(); var buffer = new byte[1024]; var cts = new CancellationTokenSource(); await Task FireToken() { await connection.ConnectionLifetime.NoThrow(); // I want this extension method too cts.Cancel(); } _ = FireToken(); await stream.ReadAsync(buffer, cts.Token); ``` I really just want to write something like: ```C# // This would require an implicit conversion to CancellationToken await stream.ReadAsync(buffer, connection.ConnectionLifetime); ``` It could also be a method (extension or otherwise): ```C# await stream.ReadAsync(buffer, connection.ConnectionLifetime.ToCancellationToken()); ``` The benefit of the method would be that you could pass options that determined how the token should fire (only on failure, on any completion etc). ```C# public class Task { ... public CancellationToken ToCancellationToken(); public CancellationToken ToCancellationToken(TaskContinuationOptions options); ... } ``` Another alternative might be to add an overload to `CancellationTokenSource` but that still sucks and isn't as nice to use as the above method: ```C# var cts = new CancealltionTokenSource(); cts.CancelAfter(task); ``` /cc @stephentoub +23591 area-System.Net Fix two issues in System.Web.HttpUtility * Don't HTML-decode in HttpUtility.ParseQueryString Fixes #23582 * Only strip initial ? in HttpUtility.ParseQueryString once. Fixes #23574 * Simplify ParseQueryString exit logic. Checks for exit conditions two ways, when just one suffices. * Inline private ParseQueryString into caller. Allows for avoiding allocation for initial ? * Add more HttpUtilityTests +23592 area-System.Diagnostics Add ProcessStartInfo.ArgumentList "Note: Updated into an API proposal, with feedback incorporated. # Rationale On Unix platforms, external executables (binaries) receive their arguments as an _array_ of string _literals_, which makes for robust, predictable passing of arguments (see [Linux system function `execvp()`](https://linux.die.net/man/3/execvp), for instance). Regrettably, in Windows there is no equivalent mechanism: a pseudo shell ""command line"" must be passed as a _single string_ encoding _all_ arguments, and it is up to the _target executable itself_ to parse that line into individual arguments. The `ProcessStartInfo` class currently only supports the _Windows_ approach directly, by exposing a `string Arguments` property that expects the whole command line. **On Unix platforms, this means that even if you start out with an array of arguments, you must currently artificially assemble its elements into a single pseudo shell command line, only to have CoreFX split that back into an array of individual arguments behind the scenes** so as to be able to invoke the platform-native process-creation function, which takes an _array_ of arguments. Not only is this an unnecessary burden on the user and inefficient, it is error-prone. It is easy to accidentally assemble a command-line string that does _not_ round-trip as expected. As a real-world use case, consider the [ongoing quoting woes PowerShell experiences](https://github.com/PowerShell/PowerShell/issues/1995). At least on Unix platforms, PowerShell should be able to simply pass the arguments that are the result of _its_ parsing _as-is_ to external utilities. Having the ability to pass an _array_ of arguments would be of benefit on Windows too, as it is fair to assume that the more typical use case is to build the desired arguments as a list / array rather than to piece together a single-string command line with intricate quoting. (The latter should only be needed if you're passing an preexisting string through or if you're invoking an executable that has custom argument-parsing rules.) # Proposed API **Add a `IReadOnlyList ArgumentList` property (conceptually, an array of argument string literals) to the `ProcessStartInfo` class**, to complement the existing `string Arguments` (pseudo shell command line) property, and let each update the other lazily, on demand, when accessed: * If `.Arguments` was (last) assigned to, do the following when `.ArgumentList` is accessed: Call [`ParseArgumentsIntoList()`](https://github.com/dotnet/corefx/blob/edecb1207cbe6194cb9a9f1bc862ef8d1ebb3ef4/src/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs#L481), which splits the string into individual arguments based on [the rules for MS C++ programs](https://docs.microsoft.com/en-us/cpp/cpp/parsing-cpp-command-line-arguments) and return the resulting list. * If `.ArgumentList` was (last) assigned to, do the following when `.Arguments` is accessed: Synthesize the pseudo shell command line from the individual arguments and assign the result to using the above rules _in reverse_ (enclose in `""...""` if a given argument has embedded whitespace, ..., as already implemented for internal use [in `System.PasteArguments.Paste()`](https://github.com/dotnet/corefx/blob/5d3e42f831ec3d4c5964040e235824f779d5db53/src/Common/src/System/PasteArguments.cs#L16)) and return the resulting `string`. * As @TSlivede proposes, it's worth extending the conversion algorithm to also double-quote arguments that contain `'` (single quotes) lest they be interpreted as having _syntactic_ function, which to some programs they do (e.g., Ruby, Cygwin). That way, both `.Arguments` and `.ArgumentList` can be assigned to, and the respective other property contains the equivalent in terms of the official (MS C++) parsing rules. A `ProcessStartInfo` instance constructed this way can therefore be used on all supported platforms: * On Windows, pass the `.Arguments` property value to the `CreateProcess()` / `ShellExecuteEx()` Windows API functions, as before. * On Unix platforms, pass the `.ArgumentList` property value via `.ToArray()` to [`ForkAndExecProcess()`](https://github.com/dotnet/corefx/blob/edecb1207cbe6194cb9a9f1bc862ef8d1ebb3ef4/src/Common/src/Interop/Unix/System.Native/Interop.ForkAndExecProcess.cs#L15). Additionally, to complement the suggested behind-the-scenes conversion between the array form and the single-string form, **public utility methods should be implemented** that perform these conversions explicitly, on demand. @AtsushiKan proposes the following signatures: ```csharp public static IReadOnlyList SplitArguments(String commandLine) { ... } public static String CombineArguments(IReadOnlyList argumentList) { ... } ``` # Open Questions * How exactly should the existing, currently (effectively) private utility methods referenced above be surfaced publicly (namespace, class, signature)? Currently, they're in different classes, and one of them is `internal` (`System.PasteArguments`); @AtsushiKan suggests making them public methods of the `System.Diagnostics.Process` class. # Usage ```csharp // The array of arguments to pass. string[] args = { ""hello"", ""sweet world"" }; // ---- New ProcessStartInfo.ArgumentList property. // Assign it to the new .ArgumentList property of a ProcessStartInfo instance. var psi = new ProcessStartInfo(); psi.ArgumentList = args; // Accessing .Arguments now returns the pseudo shell command line that is the // equivalent of the array of arguments: // @""hello """"sweet world"""""" string pseudoShellCommandLine = psi.Arguments; // ---- New utility methods for conversion on demand. // EXACT NAMES AND SIGNATURES TBD. // Arguments array (list) -> pseudo shell command line string[] args = { ""hello"", ""sweet world"" }; string pseudoShellCommandLine = System.Diagnostics.Process.CombineArguments(args); // Pseudo shell command line -> arguments array (list) IReadOnlyList argList = System.Diagnostics.Process.SplitArguments(@""hello """"sweet world""""""); ```" +23594 area-System.Runtime Expose/test TimeSpan span-based methods Two commits: 1. Adds a bunch of test validation, which all passes on the existing implementation. This boosts code coverage up to ~95% line and ~91% branch coverage for TimeSpan's parsing code. 2. Exposes the new span-based TimeSpan.{Try}Parse{Exact} and TryFormat methods and adds tests for them (largely copies of the existing string-based tests). Depends on https://github.com/dotnet/coreclr/pull/13619 Closes https://github.com/dotnet/corefx/issues/22375 cc: @AlexGhiondea, @joperezr, @tarekgh +23595 area-System.Net "Test: System.Net.Sockets.Tests.TimeoutTest/SendTimesOut_Throws failed with ""Xunit.Sdk.InRangeException""" Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.TimeoutTest/SendTimesOut_Throws(forceNonBlocking: True)` has failed. Assert.InRange() Failure\r Range: (1500 - 3000)\r Actual: 1428.4429 Stack Trace: at System.Net.Sockets.Tests.TimeoutTest.SendTimesOut_Throws(Boolean forceNonBlocking) in /root/corefx-952634/src/System.Net.Sockets/tests/FunctionalTests/TimeoutTest.cs:line 128 Build : Master - 20170828.01 (Core Tests) Failing configurations: - Ubuntu.1404.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170828.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.TimeoutTest~2FSendTimesOut_Throws(forceNonBlocking:%20True) +23596 area-System.Runtime Added tests for struct Equals issue. Added tests to cover following scenarios: - Compare 2 tightly packed struct instances with double/float fields. - Compare 2 tightly packed struct instances with nested struct which contains double/float fields. - Compare 2 struct instances with overridden Equals and GetHashCode. Fix #23516 +23597 area-System.Data [ADO.NET] Support changeUser for DbConnection https://github.com/dotnet/corefx/blob/master/src/System.Data.Common/src/System/Data/IDbConnection.cs Since we have supported change database, why not add change user support? This will be useful when develop an EF Core provider in change into master connection scenario. The php has already supoorted change user in mysqli: http://php.net/manual/en/mysqli.change-user.php +23599 area-System.Linq Add ParallelEnumerable.WithTaskScheduler Full .NET has internal method to do PLINQ with [custom scheduler](https://github.com/Microsoft/referencesource/blob/master/System.Core/System/Linq/ParallelEnumerable.cs#L303). Current .NET Core does not have such method in [ParallelEnumerable](https://github.com/dotnet/corefx/blob/a38c5000be0d4b98445ef43d642614d0e8d8f82d/src/System.Linq.Parallel/src/System/Linq/ParallelEnumerable.cs). Could we have `WithTaskScheduler` public in `ParallelEnumerable` or any other viable alternative? I see that [underlying classes do have task scheduler configuration build in](https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.Linq.Parallel/src/System/Linq/Parallel/QueryOperators/QuerySettings.cs#L28). Why this is needed? We have product which did not setup default task scheduler for whole process/appdomain. So we do that that manually. I am afraid to set scheduler process/appdomain wide to avoid regression. Same time I want to use PLINQ instead of Tasks/Parallel, where PLINQ is best fit. But I cannot use PLINQ as customer scheduler is must for us. Another possible reason for such api is virtual isolation. I have witnessed that applications do more and more isolation not on process/appdomain levels, but in process via type loading and di/ioc containers. Another level of isolation could be done with parallelism, but for this all API should accept custom schedulers. +23600 area-System.Text System.Text.Encodings.Web.TextEncoder throws NRE on constructing copy ```C# TextEncoder copyFrom = null; TextEncoder copy = new TextEncoder(copyFrom); // Throws NullReferenceException ``` Should really throw `ArgumentNullException`. +23601 area-System.Text Throw ANE for null TextEncoderSettings to TextEncoderSettings ctor Fixes #23600 Also further test to bring coverage for that class up to 100%. +23602 area-System.Text System.Text.Encodings.Web.HtmlEncoder.Create wrong parameter name on exception "If the overload of `System.Text.Encodings.Web.HtmlEncoder.Create` that takes a `TextEncoderSettings` argument is called with null, the `ArgumentNullException` thrown has a `ParamName` of `""filter""` though the parameter name is `""settings""`." +23603 area-System.Text Fix System.Text.Encodings.Web.HtmlEncoder.Create ParamName on exception Change argument name of `DefaultHtmlEncoder` ctor from `filter` to `settings` to match that of only public method that directly calls it, so any `ArgumentNullException` has the correct `ParamName` property. Fixes #23602 Also include tests bringing coverage of `DefaultHtmlEncoder` and `HtmlEncoder` up to 100%. +23604 area-Meta .net core 2 InvalidOperationException: Cannot resolve scoped service 'IFillDataService' from root provider. "i use asp.net core 2 and VS 2017 15.3.2 and windows 10 i declare middleware and in .net core 1.1 it run without any error, but in .net core 2 i get this error `InvalidOperationException: Cannot resolve scoped service 'IFillDataService' from root provider. ` ``` public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { services.AddSingleton(Configuration); services.AddScoped(); services.Configure (options => options.Level = CompressionLevel.Fastest); services.AddResponseCompression(options => { options.Providers.Add(); }); services.AddMvc(); } public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseDeveloperExceptionPage(); app.UseStatusCodePages(); loggerFactory.AddConsole(Configuration.GetSection(""Logging"")); loggerFactory.AddDebug(); app.UseFillDataService(); app.UseResponseCompression(); app.UseMvc(); } } ``` ``` public static IApplicationBuilder UseFillDataService(this IApplicationBuilder builder) { return builder.UseMiddleware(); } ``` ``` public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup() .ConfigureAppConfiguration((hostingContext, config) => { var env = hostingContext.HostingEnvironment; config.AddJsonFile(""appsettings.json"", optional: true, reloadOnChange: true) .AddJsonFile($""appsettings.{env.EnvironmentName}.json"", optional: true, reloadOnChange: true); config.AddEnvironmentVariables(); }) .Build(); } ``` `raw exception details` ``` System.InvalidOperationException: Cannot resolve scoped service 'IFillDataService' from root provider. at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteValidator.ValidateResolution(Type serviceType, ServiceProvider serviceProvider) at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType) at Microsoft.Extensions.Internal.ActivatorUtilities.ConstructorMatcher.CreateInstance(IServiceProvider provider) at Microsoft.Extensions.Internal.ActivatorUtilities.CreateInstance(IServiceProvider provider, Type instanceType, Object[] parameters) at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c__DisplayClass4_0.b__0(RequestDelegate next) at Microsoft.AspNetCore.Builder.Internal.ApplicationBuilder.Build() at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication() ```" +23606 area-System.Net Move the write side of SslStream to AsyncAwait BUILDS on the removal of pinnable buffers so can't be merged until then..... (#23572) Changes the write side to async/await. Clears out a bunch of cruft from the APM model. Will move closer to allowing the SemaphoreSlim unix solution, as well as clarity on the flow that is required. Is a first step, readside would be next and then the underlying handshake/renegotiation. Benchmarks and traces to come, but it makes the flow a lot more readable (initial indications is that the aspnet core tests are about 5% faster and with traces I hope to show that is due to lower allocations). If I had my own way I would convert the sync methods to ReadAsync().GetAwaiter().GetResult() as it is truly async in nature and by not doing that two paths need to be maintained which leads to a higher cognitive load in a security library. That however is a decision that others need to think about. Cheers Tim +23609 area-System.Security SignedXml detailed failure feedback inaccessible I've got a simple test case where I sign a bit of XML and then try to verify its signature. Verification of the signature fails - `SignedXml.CheckSignature()` returns false. The problem is that I cannot find out *why* it fails. Does it fail while getting a public key, looking up a certificate, validating the certificate, or validating the signature? Did I do something wrong during signing and there's now necessary information missing? I don't know - all I get is a simple `false` return value. Looking at the source, `SignedXml` does extensive logging via `System.Diagnostics.TraceSource`, but it hides the actual `TraceSource` as a private static member of an internal logging helper class (`SignedXmlDebugLog`), so I can't modify the source. In the full framework, I could use an app.config file to configure the `TraceSource` externally, but as far as I can tell, this isn't possible in Core. The `TraceSource` that the debug log uses is initialized to default values and never changes. There seems to be no way to get detailed feedback from this (complex and brittle) validation process. I think such feedback is needed. +23611 area-Infrastructure Remove NetFx support libs Now that we've shipped the NETStandard support package we will no longer build its content from `master`. It will be serviced from the `release/2.0.0` branch and the only netfx builds in `master` will correspond to package content. /cc @weshaggard +23613 area-System.Security Fix output buffer assumptions in CSP symmetric transforms. The CAPI DecryptData and EncryptData methods made assumptions about the calling patterns, in particular that the output buffer would be perfectly sized for the desired output. This change adds tests which violate those assumptions, but work on netfx and with the corefx CNG implementation. Then follows up on making the tests pass. Fixes #23311. +23614 area-Infrastructure error PRI210: 0x80070020 from UWP CI See https://github.com/dotnet/corefx/pull/23611#issuecomment-325437628 It seems that when building UWP tests there is a race condition when building the pri file. I suspect two projects get in MakeCommonResourcesPriFile because the output doesn't exist yet, then they fight over writing the file. +23616 area-System.Drawing System.Drawing.Printing.Tests has 2 failures if run on a machine not using US Letter size. "`Ctor_Default_Success()` and `DefaultPageSettings_SetValue_ReturnsExpected()` both call into `AssertDefaultPageSettings()` which assumes that the default paper size found from the default printer will be ANSI/ASME Y14.1 A (""US Letter"") which is rare outside of the US, Canada, Mexico and the Dominican Republic. The test should also accept ISO 216 A4 size, which is the most common size in most other countries." +23617 area-System.Drawing Allow A4 as a default paper size in PrintDocument Tests. A common setting for the default size for the default printer. Fixes #23616 +23618 area-Infrastructure GenerateResourcesSource is skipped when OutputSourceFilePath is up to date, but NormalizedAssemblyName remapping is still done with an empty string "To reproduce, build repo for -targetGroup:uap. Go to any source project and build it again (note: not rebuild, just build). See: ``` GenerateResourcesSource: Skipping target ""GenerateResourcesSource"" because all output files are up-to-date with respect to the input files. CopyResxFilesToReswFiles: Copying file from ""F:\dotnet\corefx\src\Microsoft.CSharp\src\Resources\Strings.resx"" to ""F:\dotnet\corefx\bin/runtime /uap-Windows_NT-Debug-x64/resw/FxResources..SR.resw"". Touching ""F:\dotnet\corefx\bin/runtime/uap-Windows_NT-Debug-x64/resw/FxResources..SR.resw"". ``` This is because `GenerateResourcesSource` is skipped, however MSBuild still tries to evaluate the items inside the target because of [output inference](https://msdn.microsoft.com/en-us/library/ee264087.aspx#Anchor_0). As a result LogicalName metadata is set to FxResources.~~$(_NormalizedAssemblyName)~~.SR.resources (since _NormalizedAssemblyName never gets set as the task doesn't run). " +23620 area-Infrastructure Eliminate OpenSuSE 13.2 (EOL) +23621 area-Infrastructure Remove EOL'd OS's openSuSE 13.2 and Fedora 23 They have been EOL'd and are no longer usable/upgradeable in CI. +23622 area-Infrastructure Remove EOL'd OS's openSuSE 13.2 and Fedora 23 +23623 area-Infrastructure Eliminate OpenSuSE 13.2 (EOL) +23624 area-Infrastructure Eliminate OpenSuSE 13.2 (EOL) +23625 area-System.Net Fastpath same-object case in System.Net.CaseInsensitiveAscii.Equals The case gets hit running the tests for `System.Net.WebHeaderCollection` (and not for the both-null case, which is already pretty fast), so the benefit can be assumed to hit real code (interning probably makes it particularly common). Also, Remove `System.Net.CaseInsensitiveAscii.FastGetHashCode()`. Its checks are repeated in the loop, so do first-character check before loop (just in case it was successfully finding mismatches quickly) and don't do it in the loop itself. +23626 area-System.Data Connection pool fragmentation Customer reported connection pool fragmentation issue. Customer runs an Web Application, and they found 3000+ connection pools that have 0 connection for the same connection string in their memory dump. +23627 area-Meta Mac 不能安装sdk2.0 我的mac系统版本是11.6 安装sdk出现提醒:只能安装在10.12以后版本 这是为什么呢 +23628 area-System.Globalization "Test failure: System.Globalization.Tests.NumberFormatInfoNumberGroupSizes/NumberGroupSizes_Get(format: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = \"".\"", CurrencyGroupSeparator ..." "Opened on behalf of @Jiayili1 The test `System.Globalization.Tests.NumberFormatInfoNumberGroupSizes/NumberGroupSizes_Get(format: NumberFormatInfo { CurrencyDecimalDigits = 2, CurrencyDecimalSeparator = \"".\"", CurrencyGroupSeparator ...` has failed. Assert.Equal() Failure Expected: Int32[] [3, 2] Actual: Int32[] [3] Stack Trace: Build : Master - 20170829.01 (Core Tests) Failing configurations: - RedHat.69.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170829.01/workItem/System.Globalization.Tests/analysis/xunit/System.Globalization.Tests.NumberFormatInfoNumberGroupSizes~2FNumberGroupSizes_Get(format:%20NumberFormatInfo%20%7B%20CurrencyDecimalDigits%20=%202,%20CurrencyDecimalSeparator%20=%20%5C%22.%5C%22,%20CurrencyGroupSeparator%20..." +23629 area-System.Security General low level primitive for ciphers (AES-GCM being the first) "# Rationale There is a general need for a number of ciphers for encryption. Todays mix of interfaces and classes has become a little disjointed. Also there is no support for AEAD style ciphers as they need the ability to provide extra authentication information. The current designs are also prone to allocation and these are hard to avoid due to the returning arrays. # Proposed API A general purpose abstract base class that will be implemented by concrete classes. This will allow for expansion and also by having a class rather than static methods we have the ability to make extension methods as well as hold state between calls. The API should allow for recycling of the class to allow for lower allocations (not needing a new instance each time, and to catch say unmanaged keys). Due to the often unmanaged nature of resources that are tracked the class should implement IDisposable ``` csharp public abstract class Cipher : IDisposable { public virtual int TagSize { get; } public virtual int IVSize { get; } public virtual int BlockSize { get; } public virtual bool SupportsAssociatedData { get; } public abstract void Init(ReadOnlySpan key, ReadOnlySpan iv); public abstract void Init(ReadOnlySpan iv); public abstract int Update(ReadOnlySpan input, Span output); public abstract int Finish(ReadOnlySpan input, Span output); public abstract void AddAssociatedData(ReadOnlySpan associatedData); public abstract int GetTag(Span span); public abstract void SetTag(ReadOnlySpan tagSpan); } ``` # Example Usage (the input/output source is a mythical span based stream like IO source) ``` csharp using (var cipher = new AesGcmCipher(bitsize: 256)) { cipher.Init(myKey, nonce); while (!inputSource.EOF) { var inputSpan = inputSource.ReadSpan(cipher.BlockSize); cipher.Update(inputSpan); outputSource.Write(inputSpan); } cipher.AddAssociatedData(extraInformation); cipher.Finish(finalBlockData); cipher.GetTag(tagData); } ``` # API Behaviour 1. If get tag is called before finish a [exception type?] should be thrown and the internal state should be set to invalid 1. If the tag is invalid on finish for decrypt it should be an exception thrown 1. Once finished is called, a call to anything other than one of the Init methods will throw 1. Once Init is called, a second call without ""finishing"" will throw 1. If the type expects an key supplied (a straight ""new'd"" up instance) if the Initial ""Init"" call only has an IV it will throw 1. If the type was generated say from a store based key and you attempt to change the key via Init and not just the IV it will throw 1. If get tag is not called before dispose or Init should an exception be thrown? To stop the user not collecting the tag by accident? Reference #7023 # Updates 1. Changed nonce to IV. 1. Added behaviour section 1. Removed the single input/output span cases from finish and update, they can just be extension methods 1. Changed a number of spans to readonlyspan as suggested by @bartonjs 1. Removed Reset, Init with IV should be used instead" +23630 area-System.IO "Test: System.IO.Pipes.Tests.AnonymousPipeTest_Specific/Linux_BufferSizeRoundtrips failed with ""System.PlatformNotSupportedException""" Opened on behalf of @Jiayili1 The test `System.IO.Pipes.Tests.AnonymousPipeTest_Specific/Linux_BufferSizeRoundtrips` has failed. System.PlatformNotSupportedException : Operation is not supported on this platform. Stack Trace: at System.IO.Pipes.PipeStream.GetPipeBufferSize() in /root/corefx-954865/src/System.IO.Pipes/src/System/IO/Pipes/PipeStream.Unix.cs:line 396 at System.IO.Pipes.Tests.AnonymousPipeTest_Specific.Linux_BufferSizeRoundtrips() in /root/corefx-954865/src/System.IO.Pipes/tests/AnonymousPipeTests/AnonymousPipeTest.Specific.cs:line 90 Build : Master - 20170829.01 (Core Tests) Failing configurations: - RedHat.69.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170829.01/workItem/System.IO.Pipes.Tests/analysis/xunit/System.IO.Pipes.Tests.AnonymousPipeTest_Specific~2FLinux_BufferSizeRoundtrips +23631 area-Infrastructure Native shim dependencies not correctly setup for running tests on Redhat69 Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.CancellationTest/GetAsync_ResponseContentRead_CancelUsingTimeoutOrToken_TaskCanceledQuickly(useTimeout: False, startResponseBody: False)` has failed. System.TypeInitializationException : The type initializer for 'System.Net.Http.CurlHandler' threw an exception. ---- System.TypeInitializationException : The type initializer for 'Http' threw an exception. -------- System.TypeInitializationException : The type initializer for 'HttpInitializer' threw an exception. ------------ System.DllNotFoundException : Unable to load DLL 'System.Net.Http.Native': The specified module or one of its dependencies could not be found. (Exception from HRESULT: 0x8007007E) Stack Trace: at System.Net.Http.CurlHandler..ctor() in /root/corefx-954865/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 136 at System.Net.Http.HttpClientHandler..ctor() in /root/corefx-954865/src/System.Net.Http/src/System/Net/Http/HttpClientHandler.Unix.cs:line 30 at System.Net.Http.Functional.Tests.CancellationTest.d__2.MoveNext() in /root/corefx-954865/src/System.Net.Http/tests/FunctionalTests/CancellationTest.cs:line 40 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at Interop.Http.GetSupportedFeatures() at System.Net.Http.CurlHandler..cctor() in /root/corefx-954865/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs:line 164 ----- Inner Stack Trace ----- at Interop.HttpInitializer.Initialize() in /root/corefx-954865/src/Common/src/Interop/Unix/System.Net.Http.Native/Interop.Initialization.cs:line 47 at Interop.Http..cctor() in /root/corefx-954865/src/Common/src/Interop/Unix/System.Net.Http.Native/Interop.Initialization.cs:line 19 ----- Inner Stack Trace ----- at Interop.Http.GetSslVersionDescription() at Interop.HttpInitializer..cctor() in /root/corefx-954865/src/Common/src/Interop/Unix/System.Net.Http.Native/Interop.Initialization.cs:line 27 Build : Master - 20170829.01 (Core Tests) Failing configurations: - RedHat.69.Amd64-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170829.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.CancellationTest~2FGetAsync_ResponseContentRead_CancelUsingTimeoutOrToken_TaskCanceledQuickly(useTimeout:%20False,%20startResponseBody:%20False) +23632 area-System.Drawing Disable System.Drawing.Tests flaky test failing in CI Relates to: #21886 cc: @danmosemsft @mellinoe +23633 area-Infrastructure Add BinPlaceConfiguration for test projects to have a working directory per BuildConfiguration This changes depends on: https://github.com/dotnet/buildtools/pull/1652 and a BuildTools update once that is merged. Fixes: https://github.com/dotnet/buildtools/issues/1587 ## New Behavior with this change With this change we will have the next behavior when building/running tests: - When building the tests we will still bin place the test assets to the `OutputDirectory` (`corefx\bin\OSGroup.Configuration\TestProject\TargetGroup\`) - When running the tests we will bin place the tests assets to this new [`TestPath`](https://github.com/dotnet/corefx/pull/23633/files#diff-4de71e7a0fd952be821f8af2768281dcR34) which will be the `TestPath`. This new path will be the test's working directory where we will bin place the RunTests.cmd and necessary dependencies in tests.targets. Also the `testResults.xml` will be found here after the test execution. - `TestPath` is set to be `bin/tests///` (i.e `corefx\bin\tests\System.Collections.Immutable.Tests\netcoreapp-Windows_NT-Debug-x64`) in `dir.props` - This `TestPath` will be added to the `BinPlaceDir` in `FrameworkTargeting.targets` when `BinPlaceTest` is set to true. - Then in the [`BinPlaceFiles`](https://github.com/safern/buildtools/blob/4d39247ff2c152ac50ade6128a44afc6f9993ca2/src/Microsoft.DotNet.Build.Tasks/PackageFiles/FrameworkTargeting.targets#L243) target the test assets will be hardlinked to the `TestPath`. This will isolate every test execution per build configuration and will allow people to run the same test project for all of the supported configurations on the same repo without having to clean the repo. cc: @weshaggard @ericstj @joperezr FYI: @danmosemsft +23636 area-System.Drawing System.Drawing: Consolidate the Brushes class Use the Windows implementation of the `Brushes` class for both Windows and Unix. Update the P/Invoke declarations accordingly. +23639 area-System.Net IPAddress.Parse incorrectly parsing invalid IPv6 addresses "Prior to upgrading to .NET Core 2.0, this would throw a FormatException (note the extra character in the final hextet): IPAddress.Parse(""3fff:ffff:ffff:ffff:ffff:ffff:ffff:abcde""); Following the upgrade, the code above parses as if the first character were not there i.e as equivalent to: IPAddress.Parse(""3fff:ffff:ffff:ffff:ffff:ffff:ffff:bcde""); Additional characters in any of the first seven hextets do still cause the expected FormatException to be thrown: IPAddress.Parse(""3fff:ffff:ffff:ffff:ffff:ffff:affff:ffff""); Is this an intentional change of behavior from NetCoreApp1.1 and Net461?" +23640 area-System.Net Only strip initial ? in HttpUtility.ParseQueryString once. Fixes #23574 +23641 area-Infrastructure CI Failure: error: libunwind.so.8: cannot open shared object file: No such file or directory The `Linux x64 Release Build` CI failed when I ran this PR: https://github.com/dotnet/corefx/pull/23596 ```sh 2017-08-29 08:59:09,715: INFO: proc(54): run_and_log_output: Output: total elapsed time 0:00:00.160024 2017-08-29 08:59:09,766: INFO: proc(54): run_and_log_output: Output: Failed to load �J!�, error: libunwind.so.8: cannot open shared object file: No such file or directory 2017-08-29 08:59:09,766: INFO: proc(54): run_and_log_output: Output: Failed to bind to CoreCLR at '/home/helixbot/dotnetbuild/work/ba5f7733-09d1-46b9-bf98-58f68a1b0b8e/Payload/shared/Microsoft.NETCore.App/9.9.9/libcoreclr.so' 2017-08-29 08:59:09,787: INFO: proc(54): run_and_log_output: Output: Trying to find crash dumps for project: System.Data.SqlClient.Tests ``` Full log can be found at https://mc.dot.net/#/user/mazong1123/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/edb0e549ee2d27b9496f4d09731171a38ff6cb29/workItem/Microsoft.CSharp.Tests/wilogs Seems like an environment issue. +23642 area-System.Runtime Replace span-based optional arguments with fixed overloads When I outlined what span-based {Try}Parse methods I thought we should have on primitive types (int, long, etc.), I tried to keep the list of overloads short by using optional parameters. For example, Int32 has these string-based Parse methods: ```C# public static int Parse(string s); public static int Parse(string s, NumberStyles style); public static int Parse(string s, NumberStyles style, IFormatProvider provider); public static int Parse(string s, IFormatProvider provider); ``` and I suggested (and we agreed on and we now have) adding just one span-based one to cover them all: ```C# public static int Parse(ReadOnlySpan s, NumberStyles style = NumberStyles.Integer, IFormatProvider provider = null); ``` For the most part, that’s seemed to work well, in terms of the experience I’ve had then consuming this in other code. However, it’s worked less well in my experience for TryParse. For TryParse, Int32 has: ```C# public static bool TryParse(string s, out int result); public static bool TryParse(string s, NumberStyles style, IFormatProvider provider, out int result); ``` and we’ve now added: ```C# public static bool TryParse(ReadOnlySpan s, out int result, NumberStyles style = NumberStyles.Integer, IFormatProvider provider = null); ``` The problem is in the order of the arguments. Because the optional parameters need to come at the end of the signature, the `out int result` argument is now in the middle, differing from the corresponding long overload that works with a string. When converting code from being string-based to span-based, for me at least this has been jarring and hasn’t been a pit of success. For example, let’s say you’ve got code like this: https://github.com/dotnet/corefx/blob/master/src/Common/src/Interop/Linux/procfs/Interop.ProcFsStat.cs#L133-L138 ```C# string startingString = s.Substring(start, pos); if (long.TryParse(startingString, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out startingAddress)) { string endingString = s.Substring(pos + 1, end - (pos + 1)); long.TryParse(endingString, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out endingAddress); } ``` It’s pretty straightforward to replace the `.Substring` with `.AsReadOnlySpan().Slice`: ```C# ReadOnlySpan startingString = s.AsReadOnlySpan().Slice(start, pos); if (long.TryParse(startingString, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out startingAddress)) { ReadOnlySpan endingString = s.AsReadOnlySpan().Slice(pos + 1, end - (pos + 1)); long.TryParse(endingString, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out endingAddress); } ``` but then that doesn’t compile because the arguments are in the wrong order, and the developer needs to realize the problem and take the extra step of changing the code to be: ```C# ReadOnlySpan startingString = s.AsReadOnlySpan().Slice(start, pos); if (long.TryParse(startingString, out startingAddress, NumberStyles.HexNumber, CultureInfo.InvariantCulture)) { ReadOnlySpan endingString = s.AsReadOnlySpan().Slice(pos + 1, end - (pos + 1)); long.TryParse(endingString, out endingAddress, NumberStyles.HexNumber, CultureInfo.InvariantCulture); } ``` We should back away from the optional parameters here for TryParse, and add the same set of overloads as we have for strings. In most cases, it should mean adding only one or two more methods. +23643 area-System.Console Wrong text encoding on console apps I have a console app made in dotnet core which, among other things, receive text input using Console.ReadLine. This works fine except when entering words using non english characters (áéíóúñ) I can write such text without problem using Console.WriteLine and debugging I can see the text received have the usual marker for invalid character. This is happening in dotnet core 1.1.0 +23645 area-System.Runtime Runtime error with [OnDeserialized] in netstandard2.0 library running in framework461 project 1. Create new Project 1. Create net461 app (A) 1. Create netstandard2.0 class library with the below code (B) 1. Reference (B) in (A) 1. Try and compile ```cs using System; using System.Runtime.Serialization; namespace ClassLibraryNetStandard20 { [Serializable] public class SerializableClass : ISerializable { private readonly string _value; public SerializableClass(string value) { _value = value; } public SerializableClass(SerializationInfo info, StreamingContext context) { _value = info.GetString(nameof(Value)); } public string Value => _value; public void GetObjectData(SerializationInfo info, StreamingContext context) { info.AddValue(nameof(Value), _value); } [OnDeserialized] private void OnDeserialized(StreamingContext context) { } } } ``` Runtime error of: > Type 'ClassLibraryNetStandard20.SerializableClass' in assembly 'ClassLibraryNetStandard20, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' has method 'OnDeserialized' with an incorrect signature for the serialization attribute that it is decorated with. ------ N.B. this works fine if (B) targets net461 +23646 area-System.Net System.ServiceModel.BasicHttpBinding throwing InvalidOperationException in dotnet core 2.0 I am getting an invalid operation exception calling an external web service when setting the proxy settings on the BasicHttpBinding class. The error is: When using a non-null Proxy, the WindowsProxyUsePolicy property must be set to WindowsProxyUsePolicy.UseCustomProxy. (Source: System.Net.Http.WinHttpHandler) My code: ```c# var binder1 = new BasicHttpBinding(); binder1.UseDefaultWebProxy = false; binder1.ProxyAddress = proxyAddress; ``` Removing these two lines (so it uses the machines default proxy settings) results in a successful web service call. From Dudod's comments in https://github.com/dotnet/wcf/issues/1592 it seems it may be related to the WinHttpHandler implementation. I'm using Visual Studio 2017 version 15.3.0, my dll is targeting netstandard2.0 and I am using version 2.0.0 of the sdk. I'm testing this code using xunit tests targeting netcoreapp2.0. FYI if I switch the unit test target from netcoreapp2.0 to net461 the above code works. [EDIT[ Fix C# syntax highlighting by @karelz +23650 area-System.Drawing CopyFromScreen tests causing intermittent failures ``` System.Drawing.Tests.GraphicsTests.CopyFromScreen_ValidRange_AffectsGraphics(sourceX: 1, sourceY: 1, destinationX: 2, destinationY: 2, width: 3, height: 3) [FAIL] 20:39:03 System.ComponentModel.Win32Exception : The handle is invalid 20:39:03 Stack Trace: 20:39:03 at System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize, CopyPixelOperation copyPixelOperation) 20:39:03 at System.Drawing.Graphics.CopyFromScreen(Int32 sourceX, Int32 sourceY, Int32 destinationX, Int32 destinationY, Size blockRegionSize) ``` I believe these tests are invalid, given that they are failing against the .NET Framework. We should give them some scrutiny, and potentially remove them. +23653 area-System.Net Add minimal handling for HTTP 1.0 requests to ManagedHandler More work may need to be done but this at least fixes issues covered by existing tests. We may add more checks to disable 1.1 extensions for 1.0 requests. fixes #23132 +23654 area-Infrastructure Blocking: Package restore failing with nuget errors. "As of this morning, any attempt to ""sync -p"" (master branch, synced to current bits, ""git clean -xdf"" done), aborts with this set of error messages (which seems to me like they should be warnings.) ``` c:\dd\CoreFx\external\test-runtime\XUnit.Runtime.depproj : error NU1603: Microsoft.xunit.netcore.extensions 1.0.1-prerelease-01911-02 depends on System.Linq.Expressions (>= 4.0.11) but System.Linq.Expressions 4.0.11 was not found. An approximate best match of System.Linq.Expressions 4.1.0 was resolved. c:\dd\CoreFx\external\test-runtime\XUnit.Runtime.depproj : error NU1603: Microsoft.xunit.netcore.extensions 1.0.1-prerelease-01911-02 depends on System.Text.RegularExpressions (>= 4.0.12) but System.Text.RegularExpressions 4.0.12 was not found. An approximate best match of System.Text.RegularExpressions 4.1.0 was resolved. c:\dd\CoreFx\external\test-runtime\XUnit.Runtime.depproj : error NU1603: xunit.console.netcore 1.0.3-prerelease-00921-01 depends on System.Text.RegularExpressions (>= 4.0.12) but System.Text.RegularExpressions 4.0.12 was not found. An approximate best match of System.Text.RegularExpressions 4.1.0 was resolved. c:\dd\CoreFx\Tools\packageresolve.targets(42,5): error MSB3073: The command """"c:\dd\CoreFx\Tools/dotnetcli/dotnet.exe"" restore --packages ""c:\dd\CoreFx\packages"" --source https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json --source https://dotnet.myget.org/F/dotnet-core/api/v3/index.json --source https://api.nuget.org/v3/index.json c:\dd\CoreFx\external\test-runtime\XUnit.Runtime.depproj /p:TargetGroup=netstandard /p:ConfigurationGroup=Debug /p:ArchGrou p=x64 /p:OSGroup=AnyOS /p:TargetFramework=netstandard2.0 -r win10-x64 "" exited with code 1. [c:\dd\CoreFx\external\test-runtime\XUnit.Runtime.depproj] ``` Syncing back to commits that I knew worked yesterday and retrying just produces other nuget errors. This looks like something changed nuget configuration on my box althought I thought corefx was supposed to be insulated from that. Can anybody assist. @ericstj ; @weshaggard " +23656 area-System.Memory Using latest System.Memory package with netcoreapp2.0 fails due to S.N.V depenedency If we bump up the version of the packages we reference in corefxlab to: 4.5.0-preview2-25628-01 https://github.com/dotnet/corefxlab/blob/master/tools/dependencies.props#L6-L8 ..\.nuget\packages\microsoft.netcore.app\2.0.0\ref\netcoreapp2.0\System.Numerics.Vectors.dll has version ver 4:1:3:0 But the latest System.Memory depends on 4.1.4 .assembly extern System.Numerics.Vectors { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: .ver 4:1:4:0 } Our tests (which target netcoreapp2.0) fail with the following error: Failed System.Buffers.Tests.EqualityTests.SpansReferencingSameMemoryAreEqualInEveryAspect(bytes: [0, 0], start: 0, length: 2) Error Message: System.IO.FileNotFoundException : Could not load file or assembly 'System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. Stack Trace: at System.SpanHelpers.SequenceEqual(Byte& first, Byte& second, Int32 length) at System.Buffers.Tests.EqualityTests.SpansReferencingSameMemoryAreEqualInEveryAspect(Span`1 span, Span`1 pointingToSameMemory) in D:\GitHub\Fork\corefxlab\tests\System.Buffers.Primitives.Tests\EqualityTests.cs:line 163 at System.Buffers.Tests.EqualityTests.SpansReferencingSameMemoryAreEqualInEveryAspect(Byte[] bytes, Int32 start, Int32 length) in D:\GitHub\Fork\corefxlab\tests\System.Buffers.Primitives.Tests\EqualityTests.cs:line 45 cc @weshaggard, @ericstj, @KrzysztofCwalina, @shiftylogic, @mellinoe +23657 area-Infrastructure Unable to build the repo on my machine "Hi, I followed [these](https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md) directions, but when I'm building it fails. ## My setup - Windows 10.0.15063 Build 15063 x64 Home edition - VS 2017 (15.3.3) Community edition (only IDE) - Workloads: ![image](https://user-images.githubusercontent.com/2716316/29845753-bb02a0e6-8d1c-11e7-9025-06af8acda619.png) - Individual components: ![image](https://user-images.githubusercontent.com/2716316/29846084-00e4d3bc-8d1e-11e7-8d84-96cb050ecbb3.png) - Instructions from [here](https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md) ## Actual behavior Calling *build-native.cmd* (or *build.cmd*) gives the following output: ``` Tools are already initialized. Running: C:\Users\Shimmy\Source\Repos\corefx\src\Native\build-native.cmd x64 Debug Windows_NT --numproc 8 -portable toolSetDir=c:\tools\clr Tools are already initialized. Running: C:\Users\Shimmy\Source\Repos\corefx\Tools\msbuild.cmd /nologo /verbosity:minimal /clp:Summary /maxcpucount /nodeReuse:false /l:BinClashLogger,Tools\net46\Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log /p:ConfigurationGroup=Debug /p:BuildPackages=false /p:GenerateNativeVersionInfo=true /flp:v=normal /flp2:warningsonly;logfile=msbuild.wrn /flp3:errorsonly;logfile=msbuild.err C:\Users\Shimmy\Source\Repos\corefx\src\Native\..\../build.proj /t:GenerateVersionHeader Project file contains ToolsVersion=""14.0"". This toolset may be unknown or missing, in which case you may be able to res olve this by installing the appropriate version of MSBuild, or the build may have been forced to a particular ToolsVers ion for policy reasons. Treating the project as if it had ToolsVersion=""4.0"". For more information, please see http://g o.microsoft.com/fwlink/?LinkId=291333. Command execution succeeded. The system cannot find the path specified. Commencing build of native components Error: DIA SDK is missing at ""DIA SDK"". This is due to a bug in the Visual Studio installer. It does not install DIA SDK at """" but rather at VS install location of previous version. Workaround is to copy DIA SDK folder from VS install location of previous version to """" and then resume build. Visual Studio Express does not include the DIA SDK. You need Visual Studio 2015 or 2017 (Community is free). See: https://github.com/dotnet/coreclr/blob/master/Documentation/project-docs/developer-guide.md#prerequisites Command execution failed with exit code 1. ``` When calling *build-managed.cmd* however, [this](http://pasted.co/03cc0523/fullscreen.php?hash=46ea6283825f86890ec8711f16f2ed78&toolbar=true&linenum=false) is the output I'm getting. Any help please?" +23659 area-System.Reflection Expose IsByRefLike api. Api was approved today: Fixes https://github.com/dotnet/corefx/issues/17232 CoreRT/CoreCLR implementations were done some time ago (we needed them internally.) So this just exposes the api in the contract. +23661 area-System.Diagnostics BasicEventSourceTests.TestEventCounter.Test_Write_Metric_EventListener fails on NetFx when running on netstandard support libs. "Sync to eade3b36725c8d463a40589ff749af5bb0cab8f4 build -targetGroup:netfx cd src\System.Diagnostics.Tracing\tests msbuild /p:TargetGroup=netfx /t:BuildAndTest Expect: pass Actual: failure with following ``` FAILURE IN SUBTEST: ""EventCounter: Log 1 event, explicit poll at end"" ************* EXCEPTION INFO *************** Xunit.Sdk.EqualException: Assert.Equal() Failure Expected: 4 Actual: 0 at Xunit.Assert.Equal[T](T expected, T actual, IEqualityComparer`1 comparer) in C:\BuildAgent\work\cb37e9acf085d108\src\xunit.assert\Asserts\EqualityAsserts.cs:line 35 at BasicEventSourceTests.TestEventCounter.<>c.b__2_1(List`1 evts) in D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\TestEventCounter.cs:line 84 at BasicEventSourceTests.EventTestHarness.<>c__DisplayClass2_0.b__0(Event data) in D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\Harness\EventTestHarness.cs:line 72 at System.Diagnostics.Tracing.EventSource.DispatchToAllListeners(Int32 eventId, Guid* childActivityID, EventWrittenEventArgs eventCallbackArgs) *********** END EXCEPTION INFO ************* ************* LOGGING MESSAGES *************** 38:55.738 : STARTING Sub-Test EventCounter: Log 1 event, explicit poll at end 38:55.738 : Sending command MyEventSource to EventSource Enable Options c.b__2_1(List`1 evts) D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.Tracing\tests\BasicEventSourceTest\Harness\EventTestHarness.cs(72,0): at BasicEventSourceTests.EventTestHarness.<>c__DisplayClass2_0.b__0(Event data) at System.Diagnostics.Tracing.EventSource.DispatchToAllListeners(Int32 eventId, Guid* childActivityID, EventWrittenEventArgs eventCallbackArgs) ``` I suspect that this is due to the test expecting behavior post fixes made in master after the release/2.0.0 fork. Any fixes made to the netfx build here were actually dead-ends since we don't intend to ship any of the dlls that make up netstandard.dll as out of band after release/2.0.0. Please evaluate this issue to determine if we need to either a) fix the test, or b) port changes to servicing/desktop. Related, but likely wrong issue: https://github.com/dotnet/corefx/issues/22791 /cc @brianrob @vancem " +23664 area-System.ComponentModel ICollection support in MinLengthAttribute and MaxLengthAttribute Fixes #23461. +23665 area-Microsoft.CSharp What should be done about byref-like types in Microsoft.CSharp Now that we have an API for detecting them consistently. The netfx handling of a set number of types, like typed references, gives us a model, and perhaps we should follow it, but perhaps not. (Will follow up with more details on that later, but opening this now before I forget). +23666 area-System.Text backport of REGEX_DEFAULT_MATCH_TIMEOUT Fixes https://github.com/dotnet/corefx/issues/15173 +23667 area-Infrastructure Add support for OpenSuse 42.2 in .NET CoreFx 1.1.0 This issue tracks ensuring that your team has considered how to handle OpenSuse 42.2 builds in your .NET Core 1.1.0 repositories. Since .NET Core 1.1 is an LTS release, per @leecow we need to support OpenSUSE 42.2 with it. Unfortunately, when 1.1 release branches were snapped, 42.1 was the used version. It turns out there was not even a RID (runtime identifier) that matches this build (In the 1.1 time frame, ‘opensuse.42.1-x64’ was used) Please use this issue to track addressing the issue for your specific repository. In some cases, little-to-no change will be required but lacking a previously-used RID we need to figure something out. @weshaggard FYI. +23668 area-System.Drawing Unify implementations of SystemFonts as much as possible. The implementation for these is still more-or-less diverged, but there is a small part that can be shared. I have also made a trimmed-down version of the existing test case that is not dependent on precise names of fonts, which can be run on Unix platforms. The existing test case is now Windows-specific, rather than having an active issue on Unix. @qmfrederik @hughbe +23671 area-System.Runtime WindowsRuntimeBufferExtensions.ToArray incorrectly checks Capacity The following code will throw an ArgumentException: ```c# var buffer = new Windows.Storage.Streams.Buffer(0); var array = buffer.ToArray(); ``` WindowsRuntimeBufferExtensions.ToArray checks the buffer capacity as a precondition, which isn't used in the method. Obviously the expected behavior would be to return an array of length zero. I also can't find a unit test for this case. +23672 area-System.Net Unix Socket Client Send WouldBlock Server Receive Data Error "```c# /// /// Exchange a message with the host. /// /// Message to send. /// Message sent by the host. internal void Send(string message) { if (!this.isContinue) { Console.WriteLine($""isContinue {this.isContinue}""); return; } if (this.connected) { var nioBuffers = new List>(); nioBuffers.Add(new ArraySegment(Encoding.UTF8.GetBytes(message))); SocketError errorCode; long localWrittenBytes = this.clientSocket.Send(nioBuffers, SocketFlags.None, out errorCode); if (errorCode != SocketError.Success && errorCode != SocketError.WouldBlock) { throw new SocketException((int)errorCode); } if (errorCode == SocketError.WouldBlock) { this.isContinue = false; Console.WriteLine(message); var sendArgs = new SocketAsyncEventArgs(); sendArgs.BufferList = nioBuffers; sendArgs.Completed += this.SendArgs_Completed; bool pending = this.clientSocket.SendAsync(sendArgs); if (!pending) { Console.WriteLine($""pending false BytesTransferred {sendArgs.BytesTransferred}""); } else { Console.WriteLine($""pending true""); } } else { Console.WriteLine($""{nioBuffers.Sum(n => n.Array.Length)} {localWrittenBytes}""); } } else { throw new SocketException((int)SocketError.NotConnected); } } ``` https://github.com/caozhiyuan/DotNetty/tree/dev/examples/SocketAsyncClient https://github.com/caozhiyuan/DotNetty/tree/dev/examples/SocketAsyncServer ![qq 20170830084137](https://user-images.githubusercontent.com/3415285/29850341-72317066-8d5f-11e7-9727-90cd239e0db0.png) [EDIT] Add C# syntax highlighting by @karelz" +23675 area-System.Net System.Net.Http: Remove unnecessary null validator check A null validator is never passed-in when creating `ObjectCollection` instances internally, so we can avoid the unnecessary null checks. cc: @davidsh, @CIPop, @Priya91 +23676 area-System.Net CurlHandler Does Not Respect MaxConnectionsPerServer Property Setting MaxConnectionsPerServer on an HttpClientHandler doesn't do anything on Unix systems. The property is propagated to CurlHandler which [stores it as an instance variable](https://github.com/dotnet/corefx/blob/a26de495ffa390a9d6b3a0d0f338e9d9f97ad5fe/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.cs#L371) but doesn't ever use it. This seems like an oversight since [documentation for libcurl](https://curl.haxx.se/libcurl/c/CURLMOPT_MAX_HOST_CONNECTIONS.html) shows it can be set, and there is already piping to set related settings [in CurlHandler.MultiAgent.cs](https://github.com/dotnet/corefx/blob/a27929935d2782cdc3e7be21653e8c4530274c6f/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.MultiAgent.cs#L232). +23677 area-System.Collections "Test: System.Collections.Generic.Tests.ComparerTests/NullableOfIComparableComparisonsShouldTryToCallLeftHandCompareToFirst failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `System.Collections.Generic.Tests.ComparerTests/NullableOfIComparableComparisonsShouldTryToCallLeftHandCompareToFirst` has failed. Assert.Equal() Failure\r Expected: 0\r Actual: 1 Stack Trace: at System.Collections.Generic.Tests.ComparerTests.NullableOfIComparableComparisonsShouldTryToCallLeftHandCompareToFirst() in E:\A\_work\371\s\corefx\src\System.Collections\tests\Generic\Comparers\Comparer.Tests.cs:line 341 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170830.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64-arm - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170830.01/workItem/System.Collections.Tests.Execution/analysis/xunit/System.Collections.Generic.Tests.ComparerTests~2FNullableOfIComparableComparisonsShouldTryToCallLeftHandCompareToFirst +23678 area-Meta Load custom assembly to ASP .NET Core 2.0 project "_From @troncomputers on August 29, 2017 9:26_ Hi! I'm trying to load custom assembly (nip24Library.dll). This is the C# API for finding companies by VAT Number in Poland. ``` FileNotFoundException: Could not load file or assembly 'nip24Library, Version=1.3.1.0, Culture=neutral, PublicKeyToken=a3a1b0bb1b99a109'. Can not find the specified file. ``` VS added for me this entry to .csproj file ``` C:\OptimoKasiarz\OptimoKasiarz\bin\Debug\netcoreapp2.0\nip24Library.dll true ``` It looks like the web app doesn't know where this file is. How can I solve this problem? _Copied from original issue: aspnet/Home#2171_" +23679 area-System.Net "System.Net.Http.Functional.Tests.ManagedHandler_DiagnosticsTest.SendAsync_ExpectedDiagnosticCancelledLogging failed with ""Timed out after 60000ms""" Failed test: System.Net.Http.Functional.Tests.ManagedHandler_DiagnosticsTest.SendAsync_ExpectedDiagnosticCancelledLogging MESSAGE: ~~~ Timed out after 60000ms waiting for remote process 4372\r\nExpected: True\r\nActual: False ~~~ STACK TRACE: ~~~ at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in D:\j\workspace\outerloop_net---15cfbbd5\src\CoreFx.Private.TestUtilities\src\System\Diagnostics\RemoteExecutorTestBase.cs:line 161 ~~~ +23680 area-System.Linq LINQ bug: ConcatNIterator.LazyToArray() produces incorrect results "Here's a repro: https://github.com/gulbanana/repro-corefx-concat-toarray ``` banana@forsyth MINGW64 /c/code/repro-corefx-concat-toarray (master) $ dotnet run -f netcoreapp1.0 A B C banana@forsyth MINGW64 /c/code/repro-corefx-concat-toarray (master) $ dotnet run -f netcoreapp2.0 A B A ``` The problem occurs when using Concat multiple times and then calling ToArray(). ```c# using System; using System.Collections.Generic; using System.Linq; class Program { class A { public override string ToString() => ""A""; } class B { public override string ToString() => ""B""; } class C { public override string ToString() => ""C""; } static void Main(string[] args) { var results = new List { new A() } .Concat(new List { new B() }) .Concat(new List { new C() }) .ToArray(); Console.WriteLine(string.Join(' ', results)); } } ``` This program should print ""A B C"", but it instead prints ""A B A"". I believe the problem is in the specialised implementation of concatenation for 3+-enumerables-of-collections. I ran into it in an actual project (an IEnumerable containing multiple subclass instances) but I've worked around the bug by using `ToList()` instead. [EDIT] Add C# syntax highlight by @karelz" +23681 area-System.Net Inconsistent certificate handling between Linux and Windows "The following code yields different results on Linux and Windows (STARTTLS in SMTP) On Windows the cert is handled correctly and the cert subj is printed to stdout. On Linux (Fedora 26, Debian 9) cert is null in the CertificateValidationCallbakc (null if printed to stdout) ```c# using System; using Newtonsoft.Json; using System.Net.Sockets; using System.Net.Security; using System.Security; using System.IO; using System.Security.Cryptography.X509Certificates; using System.Security.Authentication; using System.Text; namespace code3 { class Program { static void Main(string[] args) { var host = ""mail.galapp.net""; using (var c = new TcpClient(host, 587)) using (var s = c.GetStream()) using (var sw = new StreamWriter(s, Encoding.ASCII)) using (var sr = new StreamReader(s, Encoding.ASCII)) { var l = read(); sw.Write(""EHLO localhost\r\n""); sw.Flush(); var l1 = read(); sw.Write(""STARTTLS\r\n""); sw.Flush(); var l2 = read(); using (var ss = new SslStream(s, false, (snd, cert, chain, err) => { Console.WriteLine(cert == null ? ""null"": cert.Subject); return true; })) { ss.AuthenticateAsClient(host, new X509CertificateCollection(), SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12, false); } // handle SMTP response string read() { byte[] buffer = new byte[1024]; int position = 0; bool lastLine = false; do { int readLength = s.Read(buffer, position, buffer.Length - position); if (readLength > 0) { int available = position + readLength - 1; if (available > 4 && (buffer[available] == '\n' || buffer[available] == '\r')) for (int index = available - 3; ; index--) { if (index < 0 || buffer[index] == '\n' || buffer[index] == '\r') { lastLine = buffer[index + 4] == ' '; break; } } position += readLength; if (position == buffer.Length) { byte[] newBuffer = new byte[buffer.Length * 2]; Array.Copy(buffer, 0, newBuffer, 0, buffer.Length); buffer = newBuffer; } } else { break; } } while (!lastLine); return Encoding.ASCII.GetString(buffer, 0, position - 1); } } } } } ``` [EDIT] Add C# syntax highlighting by @karelz" +23682 area-Infrastructure Remove EOL openSuSE 42.1 +23683 area-Infrastructure Remove EOL openSuSE 42.1 +23684 area-Infrastructure Remove EOL openSuSE 42.1 +23685 area-Infrastructure Remove EOL openSuSE 42.1 +23686 area-System.Security Rsa ToXmlString is not supported on .NET Core 2.0 "@myloveCc commented on [Sun Aug 20 2017](https://github.com/dotnet/core/issues/874) # rsa.ToXmlString(true) is not supported on .NET Core 2.0 ```csharp var rsa = RSA.Create(2048); var privateKey = rsa.ToXmlString(true); // //not supported exception ``` --- @bartonjs commented on [Mon Aug 21 2017](https://github.com/dotnet/core/issues/874#issuecomment-323742850) Yep. In .NET Framework networking, XML, and cryptography all live in one library (mscorlib). In .NET Core they're in three separate libraries, and making this method work requires a circle: * XML needs networking, because (even though we discourage it) DTDs can initiate downloads. * Networking needs cryptography because TLS/https have X.509 certificates. * Cryptography needs XML for ToXmlString/FromXmlString. The easiest link to snip is the ToXmlString/FromXmlString methods. Technically ToXmlString can be written without XML (like in [.NET Framework's implementation](http://referencesource.microsoft.com/#mscorlib/system/security/cryptography/rsa.cs,fd15a0bacd426550), but FromXmlString requires an XML parser. My recommendation would be to make a `public static string ToXmlString(this RSAParameters rsaParameters)` method, and a `public static RSAParameters FromXmlString(string xml)` method; borrowing from NetFx and [CoreFx's SignedXml](https://github.com/dotnet/corefx/blob/c88064e2054fca0789511410260906ff5ff0468d/src/System.Security.Cryptography.Xml/src/System/Security/Cryptography/Xml/RSAKeyValue.cs); and to ultimately try moving off of the XML representations. --- @myloveCc commented on [Mon Aug 21 2017](https://github.com/dotnet/core/issues/874#issuecomment-323894072) ### This feature is not difficult, and I have been achieved in my project。 ```csharp using System; using System.Security.Cryptography; using System.Xml; using Newtonsoft.Json; using NETCore.Encrypt.Shared; using NETCore.Encrypt.Internal; namespace NETCore.Encrypt.Extensions.Internal { internal static class RSAKeyExtensions { #region JSON internal static void FromJsonString(this RSA rsa, string jsonString) { Check.Argument.IsNotEmpty(jsonString, nameof(jsonString)); try { var paramsJson = JsonConvert.DeserializeObject(jsonString); RSAParameters parameters = new RSAParameters(); parameters.Modulus = paramsJson.Modulus != null ? Convert.FromBase64String(paramsJson.Modulus) : null; parameters.Exponent = paramsJson.Exponent != null ? Convert.FromBase64String(paramsJson.Exponent) : null; parameters.P = paramsJson.P != null ? Convert.FromBase64String(paramsJson.P) : null; parameters.Q = paramsJson.Q != null ? Convert.FromBase64String(paramsJson.Q) : null; parameters.DP = paramsJson.DP != null ? Convert.FromBase64String(paramsJson.DP) : null; parameters.DQ = paramsJson.DQ != null ? Convert.FromBase64String(paramsJson.DQ) : null; parameters.InverseQ = paramsJson.InverseQ != null ? Convert.FromBase64String(paramsJson.InverseQ) : null; parameters.D = paramsJson.D != null ? Convert.FromBase64String(paramsJson.D) : null; rsa.ImportParameters(parameters); } catch { throw new Exception(""Invalid JSON RSA key.""); } } internal static string ToJsonString(this RSA rsa, bool includePrivateParameters) { RSAParameters parameters = rsa.ExportParameters(includePrivateParameters); var parasJson = new RSAParametersJson() { Modulus = parameters.Modulus != null ? Convert.ToBase64String(parameters.Modulus) : null, Exponent = parameters.Exponent != null ? Convert.ToBase64String(parameters.Exponent) : null, P = parameters.P != null ? Convert.ToBase64String(parameters.P) : null, Q = parameters.Q != null ? Convert.ToBase64String(parameters.Q) : null, DP = parameters.DP != null ? Convert.ToBase64String(parameters.DP) : null, DQ = parameters.DQ != null ? Convert.ToBase64String(parameters.DQ) : null, InverseQ = parameters.InverseQ != null ? Convert.ToBase64String(parameters.InverseQ) : null, D = parameters.D != null ? Convert.ToBase64String(parameters.D) : null }; return JsonConvert.SerializeObject(parasJson); } #endregion #region XML public static void FromXmlString(this RSA rsa, string xmlString) { RSAParameters parameters = new RSAParameters(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlString); if (xmlDoc.DocumentElement.Name.Equals(""RSAKeyValue"")) { foreach (XmlNode node in xmlDoc.DocumentElement.ChildNodes) { switch (node.Name) { case ""Modulus"": parameters.Modulus = (string.IsNullOrEmpty(node.InnerText) ? null : Convert.FromBase64String(node.InnerText)); break; case ""Exponent"": parameters.Exponent = (string.IsNullOrEmpty(node.InnerText) ? null : Convert.FromBase64String(node.InnerText)); break; case ""P"": parameters.P = (string.IsNullOrEmpty(node.InnerText) ? null : Convert.FromBase64String(node.InnerText)); break; case ""Q"": parameters.Q = (string.IsNullOrEmpty(node.InnerText) ? null : Convert.FromBase64String(node.InnerText)); break; case ""DP"": parameters.DP = (string.IsNullOrEmpty(node.InnerText) ? null : Convert.FromBase64String(node.InnerText)); break; case ""DQ"": parameters.DQ = (string.IsNullOrEmpty(node.InnerText) ? null : Convert.FromBase64String(node.InnerText)); break; case ""InverseQ"": parameters.InverseQ = (string.IsNullOrEmpty(node.InnerText) ? null : Convert.FromBase64String(node.InnerText)); break; case ""D"": parameters.D = (string.IsNullOrEmpty(node.InnerText) ? null : Convert.FromBase64String(node.InnerText)); break; } } } else { throw new Exception(""Invalid XML RSA key.""); } rsa.ImportParameters(parameters); } public static string ToXmlString(this RSA rsa, bool includePrivateParameters) { RSAParameters parameters = rsa.ExportParameters(includePrivateParameters); return string.Format(""{0}{1}

{2}

{3}{4}{5}{6}{7}
"", parameters.Modulus != null ? Convert.ToBase64String(parameters.Modulus) : null, parameters.Exponent != null ? Convert.ToBase64String(parameters.Exponent) : null, parameters.P != null ? Convert.ToBase64String(parameters.P) : null, parameters.Q != null ? Convert.ToBase64String(parameters.Q) : null, parameters.DP != null ? Convert.ToBase64String(parameters.DP) : null, parameters.DQ != null ? Convert.ToBase64String(parameters.DQ) : null, parameters.InverseQ != null ? Convert.ToBase64String(parameters.InverseQ) : null, parameters.D != null ? Convert.ToBase64String(parameters.D) : null); } #endregion } } ``` --- @Petermarcu commented on [Wed Aug 30 2017](https://github.com/dotnet/core/issues/874#issuecomment-326073405) @danmosemsft can you get this moved over to dotnet/corefx to be tracked as an issue there? " +23687 area-System.Globalization More fixes for the failing tests on 2.0 Fixes #21425 #21426 +23688 area-System.Security SymmetricAlgorithm and CryptoStream.Write throws ArgumentException with DES and RC2 "Hi, I'm trying to port an class library to .net core 2.0, I have a class that uses SymmetricAlgorithm that Ciphers and deciphers some strings and files, in my unit tests when the Algorithm is DES or RC2 and try to decipher (cipher works OK ) the method CryptoStream.Write throws an argument exception with the message : ""Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection."" (TriplesDes and Rijndael works fine), the problem is in the following line ```c# using (CryptoStream cryptoStream = new CryptoStream(destinyStream, symmetric.CreateDecryptor(), CryptoStreamMode.Write)) { long total = sourceStream.Length; //// total number of bytes to read byte[] temporal = new byte[4096]; //// temporal storage long read = 0; //// number of bytes read in the cycle int actualRead; //// number of bytes actually read while (read < total) { actualRead = sourceStream.Read(temporal, 0, CipherBuffer); cryptoStream.Write(temporal, 0, actualRead); // <- here is the error read += actualRead; } cryptoStream.FlushFinalBlock(); } ``` I created a new project (File -> new Project -> Console Project) and I'm attaching the project where I can reproduce the issue, in this project I'm using a salt and IV with just zeroes (I don't know if that's the problem) Thanks a lot for your time Edit: I added a Console app to the solution with the full framework with the same code and the program runs fine. [ClassLibraryVer2.zip](https://github.com/dotnet/corefx/files/1264804/ClassLibraryVer2.zip) [EDIT] Fix code formatting, add C# syntax by @karelz" +23689 area-System.Runtime Invariant Arrays "# Rationale and Proposed Usage .NET arrays are covariant. These leads to many complexities in the implementation of the runtime for dealing with checking if assignments to the array are valid. For example, ```csharp object [] a = ...; //A a[1]= ""hello""; //B ``` The assignment labelled `//B` must check if the `a` allows `string`s to be stored in it. If the initialisation, had been: ```csharp object [] a = new Node[10]; ``` this would raise an exception at `//B`. There are clever/ugly workarounds to remove the runtime type checks, such as https://codeblog.jonskeet.uk/2013/06/22/array-covariance-not-just-ugly-but-slow-too/. But they do not provide nice interop as moving between covariant arrays and invariant arrays using this approach requires coping. Generics negates many of the reasons for covariant subtyping on arrays. Let's add arrays that are invariantly typed, and thus do not require type checks for assignments. This proposal is to wrap standard covariant arrays with a generic struct to make its use invariantly typed, and thus enable optimization at the runtime level. If we had ```csharp InvariantArray a = new InvariantArray(10); ``` We would simply not be allowed to cast it to a different type as generic parameters to classes and structs are invariant with respect to subtyping. I think an initially beneficiary of this addition would be `System.Collections.Generic.List`, where this is used to store lots of objects the runtime type checking can be noticeable. # Proposed API ```csharp public struct InvariantArray { public InvariantArray(T[] array) {} public InvariantArray(int length) {} public ref T this[int index] { get } public int Length { get; } public T[] AsArray() { return null; } public static implicit operator T[](InvariantArray ia) { return null; } public static void Copy(InvariantArray dst, U[] src) where U : S {} /// Other things from ArrayNative } ``` This should be expanded to cover most of the things in System.Array. # Implementation sketch I believe this could be implemented using similar tricks to those used in `Span`. ```csharp public struct InvariantArray { private T[] inner; public InvariantArray(T[] array) { if (array.GetType() == typeof(T[])) { inner = array; } else { throw new Exception(); } } public InvariantArray(int length) { inner = new T[length]; } public ref T this[int index] { get { // Replace with something like the following unverifiable code: // ldloc inner // ldloc index // readonly ldelema T return ref inner[index]; } } public int Length => inner.Length; public T[] AsArray() { return inner; } public static implicit operator T[](InvariantArray ia) { return ia.AsArray(); } public static void Copy(InvariantArray dst, U[] src) where U : S { // Implement array copy without requiring type checking } /// Other things from ArrayNative } ``` * This could be initially implemented as an internal struct inside CoreCLR, where a few collections could be ported to use it. Most notably `System.Collections.Generic.List`. This could demonstrate the performance benefits. * There may need to be an additional Jit helper to implement the index property efficiently, but I believe this may just work with unsafe IL. So it could be possible to prototype on Corefxlab as was done with Span. * This approach would allow zero allocation interop with existing array code, where covariant subtyping has not be used. It is wrapping the covariant array, rather than making an internal wrapper, hence the private field can be returned to get a standard array. # Issues * The API needs fleshing out to reach parity with System.Array, but I wanted to gauge if invariant arrays might be taken before doing that work. " +23690 area-System.Drawing "CentOS CI test machines need ""liberation-serif-fonts"" package installed" This package contains some fonts that are used by the System.Drawing.Common implementation. Other distros seem to bundle these fonts in elsewhere, because we only see test failures on CentOS. +23691 area-Serialization Need set the SGEN package version to the real version +23692 area-System.Runtime Random span-based API tests Added tests for Span API in Random class. References https://github.com/dotnet/corefx/issues/22356. Depends on https://github.com/dotnet/coreclr/pull/13708. +23693 area-System.Drawing Unify implementations of StringFormat. CharacterRange.cs is not new code -- it was was previously in StringFormat.cs. +23694 area-System.Net SslStream - Making the reset buffer logic clearer "These are to make the ""returning"" of the buffer logic clearer. Also the asserts caught the fact that the logic was a little odd. We don't need to resize the buffer anymore therefore we don't have to call the ""ensureinternalbuffersize"" on each read (for the header and the frame). So I have removed that, renamed to ""ResetReadBuffer"". Removed one of the extra checks on the if statement for ""if buffercount > 0 && bufferoffset >0"". So this has the buffercount removed and an assert added to make sure we only ever get here if the buffer is null or if it has data (if it doesn't have data it should be released). Finally I added an extra assert to double check there are no decrypted bytes left. Using @geoffkizer benchmark on Azure windows 4 cores I see no difference in the 256 byte test a slight uptick in the bigger buffer but nothing to write home about. " +23699 area-Infrastructure Generic linux-x64 RID for supported distros prevents shipping native dependencies in package I have a NuGet [package](https://github.com/libgit2/libgit2sharp.nativebinaries) that needs to ship a native library via the `runtimes//native` mechanism, and I need to vary the library by linux distro due to the dependencies it has, OpenSSL being the primary one. I want to be able to run on all of the supported linux distros listed [here](https://github.com/dotnet/core/blob/master/release-notes/2.0/2.0-supported-os.md), but while testing them, I've noticed that when running `dotnet --info`, some of them show a specific RID, while others just have `linux-x64` listed as the RID. This makes it impossible to ensure the correct version of the library will be chosen. If I understand the dotnet CLI code correctly, it appears that the reason some of them are falling back to the generic RID is because the [runtime.json](https://github.com/dotnet/corefx/blob/master/pkg/Microsoft.NETCore.Platforms/runtime.json) file hasn't been updated for them. Here is the list of distros I have tested so far, and the RIDs that are displayed via `dotnet --info`: - CentOS 7 (centos.7-x64) - Fedora 25 (fedora.25-x64) - Fedora 26 (fedora.26-x64) - Debian 9 (linux-x64) - Ubuntu 14.04 (ubuntu.14.04-x64) - Ubuntu 16.04 (ubuntu.16.04-x64) - Ubuntu 17.04 (linux-x64) - Linux Mint 18.2 (linux-x64) - openSUSE 42.2 (linux-x64) Was this just an oversight, or is this an intentional change to stop updating this file? If it was intentional, can you explain the reasoning? I can't just ship a single library using the `linux-x64` RID because, for example, I need to compile a separate library for Debian and openSUSE. Right now, it appears that I don't have a way to do that. +23701 area-System.Memory Adding Memory, OwnedMemory, MemoryHandle, and IRetainable & Tests ~The CI will be green after the corresponding PR in coreclr gets merged: https://github.com/dotnet/coreclr/pull/13583~ [Done] ~**In Progress:** Working on adding tests (including those from corefxlab - https://github.com/dotnet/corefxlab/tree/master/tests/System.Buffers.Primitives.Tests).~ [Done] Part of https://github.com/dotnet/corefxlab/issues/1711 Adding the following types: - Memory\ - ReadOnlyMemory\ - OwnedMemory\ - MemoryHandle - IRetainable +Added Unit Tests. Order of changes: 1) Add to mscorlib (https://github.com/dotnet/coreclr/pull/13583). 2) After the type has been added to mscorlib, add impl (for portable) and type forwarders to System.Memory (this PR) and System.Runtime here in corefx. 3) Remove impl from corefxlab and update uses/references in Pipelines/Buffers.Experimental. 4) Other changes/additions like review/add APIs from MemoryExtensions cc @shiftylogic, @KrzysztofCwalina, @davidfowl, @jkotas, @stephentoub, @AtsushiKan +23702 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test / ProxyExplicitlyProvided_DefaultCredentials_Ignored Opened on behalf of @v-haren The test `System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test/ProxyExplicitlyProvided_DefaultCredentials_Ignored` has failed. ``` Assert.Equal() Failure\r ? (pos 0)\r Expected: rightusername:rightpassword\r Actual: wrongusername:wrongpassword\r ? (pos 0) Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test.ProxyExplicitlyProvided_DefaultCredentials_Ignored() in E:\A\_work\1039\s\corefx\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.DefaultProxyCredentials.cs:line 73 ``` Build : Master - 20170831.01 (Full Framework Tests) Failing configurations: - Windows.10.Amd64-x64 - Debug - Windows.10.Amd64-x86 - Debug +23705 area-System.Diagnostics Improving UseShellExecute implementation on Process.Start Fixes both #19956 and #22299 +23706 area-Microsoft.CSharp The StackOverflow exception is raised if C# code contains a generic object that nests a hierarchy of generic types I created the following simple console application where the problem is reproduced: ```c# class Program { static void Main(string[] args) { dynamic arg = 5; new Builder().SomeMethod(arg); } } public class Builder : BuilderBaseEx> { public Builder SomeMethod(object arg) { return this; } } public class BuilderBaseEx : BuilderBase where T : BuilderBaseEx { } public class BuilderBase where T : BuilderBase { } ``` After running the program, I got the StackOverflowException. The exception occurs only when I send a dynamic type object to the SomeMethod. If I send a non-dynamic type object, no error occurs. [EDIT] Add C# syntax highlight by @karelz +23707 area-System.Console "System.Console should support ""Indentation Levels""" # Rationale It is often desired to print text that is properly indented to make it easy to read. However, in order to track indentation across method calls you have to either implement some wrapper class or pass the indentation level around. As such, `System.Console` should be extended to natively support indentation levels in a similar manner to `Sytem.Diagnostics.Debug` # Proposal `System.Console` should be extended to support the following APIs: ```csharp public static partial class Console { // The indentation character, defaults to ' ' (space) public static char IndentChar { get; set; } // The indentation level, defaults to and will not decrease below 0 public static int IndentLevel { get; set; } // The number of times `IndentChar` is repeated per `IndentLevel`, defaults to 4 public static int IndentSize { get; set; } // Increases `IndentLevel` by one public static void Indent(); // Decreases `IdentLevel` by one public static void Unindent(); } ``` Then, there are two sub-proposals: ## Proposal A Additionally expose a `public static void WriteIndented()` and `public static void WriteLineIndented()`, each with all of the corresponding overloads that `Console.Write` and `Console.WriteLine` have. ## Proposal B `System.Console` should internally track when the last `WriteLine` occurred and only prefix the indentation on the next `Write` or `WriteLine`. This may end up being confusing to some users initially, but reduces the overall new APIs considerably. +23708 area-Meta Add T4 support There is no any code generation solution except of Razor, but it's coupled with web context. Add T4 support for code generation. +23709 area-Infrastructure Remove retry to remove cloning hangs +23710 area-System.IO Ensure file path is in IO exception messages "Historically IO exceptions have often not contained the path often due to CAS. That is not a concern any more and it is certainly more helpful to get ""Access to the path '{0}' is denied."" rather than ""Access to the path is denied."" We fixed this in Corelib https://github.com/dotnet/coreclr/commit/6ba74dc2a7194f8d6c86c3aeab572a074ef645c8 .. we should do a similar pass over CoreFX. Look for strings like `Could not find a part of the path` `The specified file name or path is too long, or a component of the specified path is too long.` `Access to the path is denied` and insert the path where possible. Similarly `Illegal characters in path.`" +23711 area-Infrastructure [release/2.0.0] Remove reference assemblies from NetFx netstandard support package Multiple tools in .NETFramework projects are attempting to load references for execution which fails for reference assemblies. To work better with these tools, don't use reference assemblies in the support package. Note: this only fixes the problem in our support package, and this change will need to be ingested by SDK in order to work. We should also consider making a change to our standalone packages. /cc @weshaggard Related: https://github.com/dotnet/sdk/issues/1522 +23712 area-System.Net Fix IPv6 address parsing when last number is too long When given an IPv6 address where the last number has more than four digits, rather than failing the parse we end up just using the last four digits. The last commit fixes that. The first three commits add a bunch more test cases, fix some duplication, and fix a test issue recently introduced where the IPAddress parsing tests weren't running on netfx. Fixes https://github.com/dotnet/corefx/issues/23639 cc: @davidsh, @geoffkizer, @joseph-newton +23713 area-System.Console release/2.0: Handle EAGAIN in Console.Write (#23539) If stdout/stderr is configured as a non-blocking file descriptor, Console.Write{Line} may fail if the descriptor is full and would block. With this commit, we instead poll in that case waiting for the ability to write and then retry. Port of https://github.com/dotnet/corefx/pull/23539 to release/2.0 branch. +23714 area-Infrastructure Moving the Windows Performance runs from Server 2012 to Server 2016. +23715 area-System.Net Ssl Stream Async Write /cc @stephentoub @geoffkizer @benaadams This needs a bit of tidy still, but I want to check the idea, naming, if you are all cool with it I will start benchmarking and checking off any previous issues. I used a single struct for the write side as that way I really only need a single pointer in the sync case and a pointer for the sslState and the cancellation token on the async side. It also means I don't have to drag that token around but get cancellation :) +23716 area-System.Threading Proposal: Asynchronously cancel a CancellationTokenSource "## **Proposal**: Add a way to asynchronously cancel a CancellationTokenSource I would like to suggest adding a method to CancellationTokenSource: ```C# public Task CancelAsync() ``` The method would work like Cancel, with a difference: - If no callback is registered, then the method processes synchronously and returns a completed task - If callbacks are registered, then a task is created and returned. That task will execute the callbacks and propagate the exceptions if any (just like Cancel) Alternatively, it could just be fire-and-forget: ```C# public void CancelAsync() ``` ## **Use case:** Whenever a CancellationTokenSource is cancelled, all registration callbacks are executed synchronously. While this is OK in most cases, I ran into the following scenario: - I have a long-running thread that can't afford to be held for a long time. This thread is in charge of cancelling the token (among other things). The thread is part of a framework. - The CancellationToken is handed to client code, over which I have no control. So I can't make sure that all callbacks can execute in a short time My problem is: in this scenario, how to guarantee that the client code won't ever block my thread for a significant amount of time? The most obvious solution is to call Cancel in another thread: ```C# Task.Run(cts.Cancel); ``` This would work. However, I would end up queuing work to the threadpool everytime I cancel a token, even though most of the tokens won't have a callback registered. It feels wrong having to add a cost to the 99% case to handle the 1%. The ""CancelAsync"" method can't be implemented from outside: - To the best of my knowledge, there is no way to know whether a callback is registered on a CancellationToken - Even if there was, there would still be a race condition between the registration and the check I don't see any major obstacle to implementation, and I think it can be done without adding an additional field to the class. That said, I'm aware of how specific is the scenario I described, and I don't know if many applications would benefit from this. *** ## Past discussion This was moved from https://github.com/dotnet/coreclr/issues/13494 Copy of the discussion: *** #### davidfowl This is similar to dotnet/corefx#14903 (but for the actual cancellation call, not dispose). I think you need to be clear if you want to > The ""CancelAsync"" method can't be implemented from outside Sure it can be. See http://referencesource.microsoft.com/#System.Web/Util/CancellationTokenHelper.cs,cbfb354e962dfb2a for an example of how it could be done. There are some questions I have based on this request - Do you want the ability to wait on the callbacks? - Do you want wait on async callbacks? That is, if the user code you were calling was itself async, would you want to await that? *** #### kevingosse > Sure it can be. See http://referencesource.microsoft.com/#System.Web/Util/CancellationTokenHelper.cs,cbfb354e962dfb2a for an example of how it could be done. If I understand this code correctly, it always uses the threadpool to call `Cancel`. I was thinking of a way to use the threadpool only if there is a callback registered, and otherwise execute the call inline. The rationale being that in most cases there will be no callback (this is true for the codebase I work on, I'm not sure how representative it is). > Do you want the ability to wait on the callbacks? I don't need it in my scenario, that's why I also suggested the fire-and-forget version. In fact, I was first thinking of a `Cancel(bool executeCallbacksAsynchronously)` overload, but that's not possible because there's already a `Cancel(bool throwOnFirstException)`. Then I thought of `CancelAsync`. I'm not sure the task would actually be useful to anybody. > Do you want wait on async callbacks? That is, if the user code you were calling was itself async, would you want to await that? Same answer as above. " +23717 area-System.Console Handle EAGAIN in Console.Write Already fixed in master. https://github.com/dotnet/corefx/pull/23713 ports it to the release/2.0 branch and should be merged for 2.0.2. +23718 area-System.Data Enable SqlDataReader.GetValue() and GetSqlValue() for UDT types. Currently the UDT data is just returned as bytes. +23720 area-System.Security [release/2.0] Fix output buffer assumptions in CSP symmetric transforms. The CAPI DecryptData and EncryptData methods made assumptions about the calling patterns, in particular that the output buffer would be perfectly sized for the desired output. This change adds tests which violate those assumptions, but work on netfx and with the corefx CNG implementation. Then follows up on making the tests pass. NetFX idiosyncrasies: AesCryptoServiceProvider.CreateDecryptor on netfx guards against the key not being specified, but no other Aes class does. TripleDESCryptoServiceProvider on netfx doesn't check if the output buffer is too small, so the ArgumentOutOfRangeException ends up being a CryptographicException instead. Port of #23613 to release/2.0. Fixes #23311 in release/2.0 +23721 area-System.Data Connection pool fragmentation by connection string variation (case, space..etc) Connection String A: `Server=tcp:.;User ID=testuser;Password=test1234;pooling=true` Connection String B: `Server=tcp:.;User ID=testuser;Password=test1234; pooling=true` (notice a space where `pooling=true` starts) Connection String C: `Server=tcp:.;User ID=testuser;Password=test1234;pooling=True` Connection strings A, B, and C are indicating the same connection, but they creates separated connection pool for each of them although only one connection pool is supposed to be created. +23722 area-System.Data Fix connection pool & connection pool group fragmentation This is fix for https://github.com/dotnet/corefx/issues/23626 This issue is fixed by moving code part for the connection pool creation to synchronized (lock) block so that only one thread can create connection pool, and adds it to pool group. It will prevent the extra empty pool creation, which will save memory and CPU resource consumption. Addition unit test is not added since existing unit tests utilize the code spot this fix is applied on. +23723 area-System.Data Rollback UDT changes to SqlDataReader.GetValue() and GetSqlValue(), since they are expected to throw PlatformNotSupportedExceptions with UDTs. Rolls back changes from this commit: https://github.com/dotnet/corefx/commit/2b790aa855ef28c84711f4c8f8fc9e630548b207 Also adds a UDT test to verify the PlatformNotSupportedExceptions +23725 area-System.Linq "Tests under: System.Linq.Expressions.Tests failed with ""System.ArgumentException : The type 'System.Linq.Expressions.Tests.GenericClass`1[T]' may not be used as a type argument""" Opened on behalf of @Jiayili1 The test `System.Linq.Expressions.Tests.Assign/Left_InvalidType_ThrowsArgumentException` has failed. System.TypeInitializationException : A type initializer threw an exception. To determine which type, inspect the InnerException's StackTrace property.\r ---- System.ArgumentException : The type 'System.Linq.Expressions.Tests.GenericClass`1[T]' may not be used as a type argument. Stack Trace: at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun$catch$0() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 114 at System.Runtime.CompilerServices.ClassConstructorRunner.CheckStaticClassConstruction(Void* returnValue, StaticClassConstructionContext* pContext) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 37 at System.Linq.Expressions.Tests.InvalidTypesData.d__2.MoveNext() in E:\A\_work\357\s\corefx\src\System.Linq.Expressions\tests\HelperTypes.cs:line 307 at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun(StaticClassConstructionContext* pContext) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 92 at System.Runtime.CompilerServices.ClassConstructorRunner.CheckStaticClassConstruction(Void* returnValue, StaticClassConstructionContext* pContext) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 37 at System.Linq.Expressions.Tests.InvalidTypesData.d__2.MoveNext() in E:\A\_work\357\s\corefx\src\System.Linq.Expressions\tests\HelperTypes.cs:line 307 at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun(StaticClassConstructionContext* pContext) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 92 at System.Runtime.CompilerServices.ClassConstructorRunner.CheckStaticClassConstruction(Void* returnValue, StaticClassConstructionContext* pContext) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 37 at System.Linq.Expressions.Tests.InvalidTypesData.d__2.MoveNext() in E:\A\_work\357\s\corefx\src\System.Linq.Expressions\tests\HelperTypes.cs:line 307 at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun(StaticClassConstructionContext* pContext) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 92 at System.Runtime.CompilerServices.ClassConstructorRunner.CheckStaticClassConstruction(Void* returnValue, StaticClassConstructionContext* pContext) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 37 at System.Linq.Expressions.Tests.InvalidTypesData.d__2.MoveNext() in E:\A\_work\357\s\corefx\src\System.Linq.Expressions\tests\HelperTypes.cs:line 307 ----- Inner Stack Trace ----- at System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo.ConstructedGenericTypeTable.Factory($UnificationKey key) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\General\TypeUnifier.cs:line 430 at System.Collections.Concurrent.ConcurrentUnifierWKeyed$2.GetOrAdd($UnificationKey key) in f:\dd\ndp\fxcore\CoreRT\src\Common\src\System\Collections\Concurrent\ConcurrentUnifierWKeyed.cs:line 136 at System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo.GetRuntimeConstructedGenericTypeInfo($RuntimeTypeInfo genericTypeDefinition, $RuntimeTypeInfo[] genericTypeArguments, RuntimeTypeHandle precomputedTypeHandle) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\General\TypeUnifier.cs:line 381 at System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo.MakeGenericType(Type[] typeArguments) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\TypeInfos\RuntimeTypeInfo.cs:line 16707566 at System.Linq.Expressions.Tests.InvalidTypesData..cctor() in E:\A\_work\357\s\corefx\src\System.Linq.Expressions\tests\HelperTypes.cs:line 303 at System.Runtime.CompilerServices.ClassConstructorRunner.EnsureClassConstructorRun(StaticClassConstructionContext* pContext) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\ClassConstructorRunner.cs:line 92 Build : Master - 20170901.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release - Windows.10.Amd64.ClientRS3-x86 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170901.01/workItem/System.Linq.Expressions.Tests/analysis/xunit/System.Linq.Expressions.Tests.Assign~2FLeft_InvalidType_ThrowsArgumentException +23726 area-System.Runtime "Test: System.Runtime.Serialization.Formatters.Tests.FormatterServicesTests/GetUninitializedObject_OpenGenericClass_ThrowsMemberAccessException failed with ""System.ArgumentException""" Opened on behalf of @Jiayili1 The test `System.Runtime.Serialization.Formatters.Tests.FormatterServicesTests/GetUninitializedObject_OpenGenericClass_ThrowsMemberAccessException` has failed. System.ArgumentException : The type 'System.Runtime.Serialization.Formatters.Tests.FormatterServicesTests+GenericClass`1[T]' may not be used as a type argument. Stack Trace: at System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo.ConstructedGenericTypeTable.Factory($UnificationKey key) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\General\TypeUnifier.cs:line 430 at System.Collections.Concurrent.ConcurrentUnifierWKeyed$2.GetOrAdd($UnificationKey key) in f:\dd\ndp\fxcore\CoreRT\src\Common\src\System\Collections\Concurrent\ConcurrentUnifierWKeyed.cs:line 136 at System.Reflection.Runtime.TypeInfos.RuntimeConstructedGenericTypeInfo.GetRuntimeConstructedGenericTypeInfo($RuntimeTypeInfo genericTypeDefinition, $RuntimeTypeInfo[] genericTypeArguments, RuntimeTypeHandle precomputedTypeHandle) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\General\TypeUnifier.cs:line 381 at System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo.MakeGenericType(Type[] typeArguments) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\TypeInfos\RuntimeTypeInfo.cs:line 16707566 at System.Runtime.Serialization.Formatters.Tests.FormatterServicesTests.d__11.MoveNext() in E:\A\_work\357\s\corefx\src\System.Runtime.Serialization.Formatters\tests\FormatterServicesTests.cs:line 83 at System.Linq.Enumerable.SelectEnumerableIterator$2.MoveNext() in E:\A\_work\357\s\corefx\src\System.Linq\src\System\Linq\Select.cs:line 129 Build : Master - 20170901.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release - Windows.10.Amd64.ClientRS3-x86 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170901.01/workItem/System.Runtime.Serialization.Formatters.Tests/analysis/xunit/System.Runtime.Serialization.Formatters.Tests.FormatterServicesTests~2FGetUninitializedObject_OpenGenericClass_ThrowsMemberAccessException +23727 area-System.IO Improve StreamWriter Fixes #23874 Summary of main changes Use ArrayPool in StreamWriter * Rents **char** buffer on first `Write` or `WriteAsync` to backing buffer. * Rents **byte** buffer on first `Flush` or `FlushAsync` (can happen during `Write`s). * Returns **char** and **byte** buffer on `Stream` flush (doesn't always happen during `Flush` i.e. a mid `Write` flush. (Return once enforced using `Interlocked.Exchange`) Faster small Writes * Changed to using local vars for counts rather than class vars, for better register use Sync-Fast Paths * FlushAsync methods now have non-statemachine fast-paths when completing sync Code depue * Merged `Write(char[], int, int)` and `Write(char[])` to `WriteInternal(char[], int, int)` * Merged `Write(string)`/`Writeline(string)` main functionality to `WriteInternal(string)` No Copy Write/WriteAsync * It buffers and writes chunks to the stream in `bufferSize` **char** arrays (as before) * If **char** buffer is empty and the remaining chars to write is above the `DontCopyOnWriteThreshold` (512 bytes); it encodes directly to the byte array rather than via the **char** buffer, in up to `bufferSize` chunks, leaving the remaining in the **char** array (i.e. less than `DontCopyOnWriteThreshold`). For large arrays and `string`s; when there is data in the buffer, this will occur second time in loop etc. For the blocking `Write(char[])`/`Write(string)`/`Flush`s specifically: * Below the `RentFromPoolThreshold` (64 bytes) it uses `stackalloc` rather than renting a **byte** buffer. Effects * Small writes are faster <= 4 bytes * Medium writes a little slower (4 - 512 bytes) due to addition of lazy array pool acquisition, fast release * Large writes faster as no extra copy prior to transform * Allocations from creating and using `StreamWriter` from 5432 bytes, to 264 bytes Contributes to https://github.com/dotnet/corefx/issues/5598 /cc @stephentoub Fixes https://github.com/dotnet/corefx/issues/8376 /cc @GSPP @ianhays +23731 area-System.Net ClientWebSocket does not send SNI header on linux "When creating a ClientWebSocket to a `wss://` url on linux (Ubuntu 16.04), the SNI header is not set in the TLS handshake. This is in violation of the WebSockets RFC (And it breaks real world usage when SNI is actually required) https://tools.ietf.org/html/rfc6455#page-17 (End of point 5). Linux (Ubuntu 16.04-x64) ![image](https://user-images.githubusercontent.com/393086/29955833-af5bf956-8f36-11e7-8291-27b8f194c338.png) (`extension: server_name` is missing) Windows ![image](https://user-images.githubusercontent.com/393086/29955836-b7347e6e-8f36-11e7-818d-121752fe5a69.png) (`extension: server_name` is included) **Test code** This will succeed as SNI is not required for this server, however if you look at the packets in wireshark the SNI extension is not included. ```cs using System; using System.Net.WebSockets; using System.Text; using System.Threading; using System.Threading.Tasks; namespace HttpsTest { class Program { static void Main(string[] args) { Task.Run(WebSocketTask).Wait(); } static async Task WebSocketTask() { var ws = new ClientWebSocket(); Console.WriteLine(""Connecting""); await ws.ConnectAsync(new Uri(""wss://echo.websocket.org""), CancellationToken.None); Console.WriteLine(""Sending""); await ws.SendAsync(new ArraySegment(Encoding.UTF8.GetBytes(""test hi"")), WebSocketMessageType.Text, true, CancellationToken.None); Console.WriteLine(""Receiving""); var res = await ws.ReceiveAsync(new ArraySegment(new byte[100]), CancellationToken.None); Console.WriteLine(""Received "" + res.Count); await ws.CloseAsync(WebSocketCloseStatus.NormalClosure, String.Empty, CancellationToken.None); } } } ```" +23734 area-System.Runtime "Tests under: System.Tests.ValueTypeTests failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Tests.ValueTypeTests/StructWithDoubleFieldNotTightlyPackedNaNCompareTest` has failed. Assert.True() Failure\r Expected: True\r Actual: False Stack Trace: at System.Tests.ValueTypeTests.StructWithDoubleFieldNotTightlyPackedNaNCompareTest() in E:\A\_work\357\s\corefx\src\System.Runtime\tests\System\ValueTypeTests.cs:line 59 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall) in CallDynamicInvokeMethod:line 16707566 Build : Master - 20170901.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Debug - Release - Windows.10.Amd64.ClientRS3-x86 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170901.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.ValueTypeTests~2FStructWithDoubleFieldNotTightlyPackedNaNCompareTest +23738 area-System.Security "Tests under ""System.Security.Cryptography.X509Certificates.Tests"" failed with ""Interop+AppleCrypto+AppleCommonCryptoCryptographicException"" in CI" Failed tests: System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.ReOpen_IsOpenTrue System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.AddReadOnlyThrowsWhenCertificateExists System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.ReadMyCertificates System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.Constructor_OpenFlags_StoreName System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.Dispose_IsOpenFalse System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.AddDisposedThrowsCryptographicException System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.AddReadOnlyThrows System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.Constructor_OpenFlags System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.RemoveReadOnlyThrowsWhenFound System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.Constructor_OpenFlags_OpenAnyway System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.TestDispose System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.OpenMyStore System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.Constructor_StoreHandle System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.Open_IsOpenTrue System.Security.Cryptography.X509Certificates.Tests.CertTests.X509Cert2ToStringVerbose MESSAGE: ~~~ Interop+AppleCrypto+AppleCommonCryptoCryptographicException : A default keychain could not be found. ~~~ STACK TRACE: ~~~ at Interop.AppleCrypto.SecKeychainCopyDefault() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release/src/Common/src/Interop/OSX/System.Security.Cryptography.Native.Apple/Interop.Keychain.cs:line 106 at Internal.Cryptography.Pal.StorePal.FromSystemStore(String storeName, StoreLocation storeLocation, OpenFlags openFlags) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release/src/System.Security.Cryptography.X509Certificates/src/Internal/Cryptography/Pal.OSX/StorePal.cs:line 106 at System.Security.Cryptography.X509Certificates.X509Store.Open(OpenFlags flags) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release/src/System.Security.Cryptography.X509Certificates/src/System/Security/Cryptography/X509Certificates/X509Store.cs:line 127 at System.Security.Cryptography.X509Certificates.Tests.X509StoreTests.ReOpen_IsOpenTrue() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release/src/System.Security.Cryptography.X509Certificates/tests/X509StoreTests.cs:line 201 ~~~ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release/2971/testReport/ +23741 area-System.Reflection Add GenericMethodParameters and GenericMethodArguments to MethodBase "## Proposed Additions ``` class MethodBase { public virtual Type[] GenericMethodArguments => IsConstructedGenericMethod ? GetGenericArguments() : Array.Empty(); public virtual Type[] GenericMethodParameters => IsGenericMethodDefinition ? GetGenericArguments() : Array.Empty(); } ``` As with most Reflection methods, these are defined virtually to allow implementors to override with more efficient versions. CoreRT is well positioned to do this. ## Rationale ### Symmetry These properties exist on `TypeInfo` (as `GenericTypeArguments` and `GenericTypeParameters`). It is inconsistent for them to be missing on `MethodBase` With this addition, the api space would look like this: | Type/TypeInfo | MethodBase/MethodInto | | ---- | ---- | | IsGenericType | IsGenericMethod | | IsGenericTypeDefinition | IsGenericMethodDefinition | | GetGenericArguments | GetGenericArguments | | GetGenericTypeDefinition | GetGenericMethodDefinition | | MakeGenericType | MakeGenericMethod | | IsConstructedGenericType | IsConstructedGenericMethod | | ContainsGenericParameters | ContainsGenericParameters | | GenericTypeArguments | GenericMethodArguments [new] | | GenericTypeParameters | GenericMethodParameters [new] | @AtsushiKan > ### GetGenericArguments() is a code smell > Generic parameters and generic arguments are different things. The former are the ""type formals"" declared by the generic method definition. The latter are the actual (usually closed) types used to create an instantiation of the generic method definition. The 2.0 `GetGenericArguments()` api conflates the two, and while it's not the end of the world, some developers prefer to be explicit about their intentions. @kingces95 > ### GetGenericArguments() smells of roses > See [comment](https://github.com/dotnet/corefx/issues/23741#issuecomment-326705519) ## Why on MethodBase rather than MethodInfo The existing pattern in Reflection is to put apis pertaining to generics on `MethodBase` **unless** the api returns a method, in which case, it lives on `MethodInfo` so that the caller receives a `MethodInfo` without casting. Should .NET ever decide to support generic constructors, this bit of future proofing will pay off - in any case, it costs next to nothing to put it on `MethodBase`. The following apis already exist on `MethodBase`. - IsGenericMethodDefinition - IsConstructedGenericMethod - IsGenericMethod - GetGenericArguments ## Naming: GenericMethodParameters or GenericTypeParameters? While a case could be made that the word ""Type"" refers to the fact that generic parameters are ""**type** variables"", we did just introduce a new api named `Type.MakeGenericMethodParameter()`. So I'm inclined to roll with the ""Method"" names." +23742 area-System.Security WindowsIdentity ctor should pass authType to base This constructor passes null to base, should pass authType https://github.com/dotnet/corefx/blob/master/src/System.Security.Principal.Windows/src/System/Security/Principal/WindowsIdentity.cs#L202 +23743 area-Infrastructure How can we maintain library packages for things that also ship in framework packages? "See https://github.com/dotnet/corefx/issues/23656, https://github.com/dotnet/corefx/pull/23719#issuecomment-326450314, and https://github.com/dotnet/corefx/commit/75962dae7f338445b57d7d276d018774e1dd2e46. Whenever we wish to expose portable surface area for a library we must do so through a package. If that library is also *inbox* in the framework the framework will carry an optimized version of the library that should take precedence. In all cases the library does not need to follow the netstandard rules (new API can only be in a new NETStandard version), since it is not part of netstandard. 1. In some cases the library can deliver its implementation completely out of band to all frameworks, so the library will want to add new API in a new package and make that API available to all platforms supporting some low version of netstandard say `netstandard1.1`. It needs to do this without regressing the inbox implementations on existing frameworks, and also without dropping support for those frameworks or causing missing member/type exceptions or loader exceptions. Examples of this sort of library are System.Collections.Immutable, System.Buffers, and System.Memory. The latter two are interesting in that they are coupled to the NETCore runtime and must preserve that implementation. 2. In other cases the library cannot deliver new implementation out of band to some frameworks: for example if the library is exposing types that already exist in desktop and we do not wish to (or cannot) deliver a replacement library out of band. In this case the library cannot add API to existing netstandard versions because those imply a version of desktop which will not have the new API. In these cases we should freeze the API and the assembly version, and ideally not even rebuild the library unless it contains actual code. We should also ensure our build system leads folks into this path so that we don't accidentally break these rules. Examples of this sort of library are Microsoft.CSharp and System.IO.Ports. We can refer to these two cases as ""OOB"" libraries and ""Anchored"" libraries for the purpose of this discussion. /cc @weshaggard @terrajobst @Petermarcu " +23744 area-System.Net release/2.0: Fix IPv6 address parsing when last number is too long Port https://github.com/dotnet/corefx/pull/23712 to release/2.0 (just the relevant commits). +23745 area-System.Net System.Net.Http.CurlException: Server returned nothing (no headers, no data) "Hi there, I'm getting an error `System.Net.Http.CurlException: Server returned nothing (no headers, no data)` when calling a https endpoint in .NET Core 1.1.2 only on Docker Container. Currently, it works on Windows running via Visual Studio, but it doesn't work inside my Linux Container. **As part of my customer environment, I have to add their CA certificates in our containers but it still doesn't work. Please, could you someone highlight any issue with my approach? **The details are below:** My docker file is - ``` FROM microsoft/aspnetcore:1.1.2 ADD /CA.crt /usr/local/share/ca-certificates/CA.crt RUN chmod 777 /usr/local/share/ca-certificates/CA.crt RUN apt-get update && apt-get install -y apt-transport-https ca-certificates RUN update-ca-certificates ............ ``` Code example: ```c# var clientCertificate = new X509Certificate2(""Certificates/my-certificate.pfx"", ""password""); var handler = new HttpClientHandler(); handler.ClientCertificateOptions = ClientCertificateOption.Manual; handler.SslProtocols = SslProtocols.Tls12; handler.ClientCertificates.Add(clientCertificate); var httpClient = new HttpClient(handler); httpClient.DefaultRequestHeaders.Add(""Authorization"", ""Basic XPTO""); var response = await http.SendAsync(request); ``` Exception: ``` System.Net.Http.CurlException: Server returned nothing (no headers, no data) app_1 | at System.Net.Http.CurlHandler.ThrowIfCURLEError(CURLcode error) app_1 | at System.Net.Http.CurlHandler.MultiAgent.FinishRequest(StrongToWeakReference`1 easyWrapper, CURLcode messageResult) ``` File Info for `HttpClient`: ``` app_1 | [16:13:20 DBG] File: /usr/share/dotnet/shared/Microsoft.NETCore.App/1.1.2/System.Private.CoreLib.ni.dll app_1 | InternalName: System.Private.CoreLib.ni.dll app_1 | OriginalFilename: System.Private.CoreLib.ni.dll app_1 | FileVersion: 4.6.25211.01 app_1 | FileDescription: System.Private.CoreLib app_1 | Product: Microsoft/x00ae .NET Framework app_1 | ProductVersion: 4.6.25211.01. Commit Hash: 7a35adb1a68baa02f542ed06b5d7a1b9167f32fb app_1 | Debug: False app_1 | Patched: False app_1 | PreRelease: False app_1 | PrivateBuild: False app_1 | SpecialBuild: False app_1 | Language: Language Neutral app_1 | app_1 | [16:13:20 DBG] File: /usr/share/dotnet/shared/Microsoft.NETCore.App/1.1.2/System.Net.Http.dll app_1 | InternalName: System.Net.Http.dll app_1 | OriginalFilename: System.Net.Http.dll app_1 | FileVersion: 4.6.25220.01 app_1 | FileDescription: System.Net.Http app_1 | Product: Microsoft┬« .NET Framework app_1 | ProductVersion: 4.6.25220.01. Commit Hash: 936d52df0532d56a19ff8486bc9aa7eac19860b3 app_1 | Debug: False app_1 | Patched: False app_1 | PreRelease: False app_1 | PrivateBuild: False app_1 | SpecialBuild: False app_1 | Language: Language Neutral ``` [EDIT] Add C# syntax highlighting by @karelz" +23746 area-Infrastructure Update CoreClr, CoreFx to servicing-25708-01, servicing-25708-01, respectively (release/2.0.0) +23747 area-System.Drawing Fix up Unix Icon implementation and enable more tests "* Move Unix Icon.cs file into regular source tree, as ""Icon.Unix.cs"". Rename existing Windows code to ""Icon.Windows.cs"". * These files are still separate for now, and code isn't being shared. It is likely that we could share a lot more of the code if we just made a fully-managed version. `.ico` isn't the most complicated format in the world; we could just create our own managed parser and use it everywhere. Icon.Unix.cs already has quite a bit of platform-agnostic logic like that, but it is not very robust. If we did this, we could get 100% behavior compat. * Add several corrections to the Unix implementation, mainly around argument validation and exception types. * Re-enable several test cases which were either fixed by the above bullet, or were fixed at some previous time (there were a few that just passed without me fixing anything). @qmfrederik @hughbe Compat notes from this work: # Icon * Icon(Stream, int, int) constructor does not work correctly if you specify a size which does not match the true size of the Icon in the stream. On Windows, this is permitted and handled silently. * Icon constructors will not throw the same exception types when given invalid data. Instead of ArgumentException, constructors may throw Win32Exceptions instead. * Icon.FromHandle must be given a valid native Icon handle. Windows gracefully handles invalid handles, but libgdiplus may crash or otherwise behave poorly. * Icon.Dispose, when called on an Icon created via Icon.ExtractAssociatedIcon, does not destroy the underlying handle. * Icon.ExtractAssociatedIcon does not return a null Icon when passed invalid parameters. It will throw a FileNotFoundException instead. * Icon.ExtractAssociatedIcon may throw a FileNotFoundException when given an invalid path, rather than an ArgumentException. * Icon.Save may throw a NullReferenceException instead of an ArgumentNullException when passed a null stream. * Icon.Save may throw an ArgumentException rather than an ObjectDisposedException if it is given a Closed or non-writable Stream." +23748 area-Meta Don't directly throw Exception When looking at https://github.com/Microsoft/dotnet/issues/471, I noticed that the thrown exception is `Exception`, not a type derived from `Exception`. I think this should not be done and [the Framework Design Guidelines](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/using-standard-exception-types#exception-and-systemexception) agree. Instead, some derived type should be thrown. This issue seems to happen in a few places in CoreFX: ``` $ git grep -n 'new Exception(' | grep -v tests | cut -d: -f1,2 Common/src/System/Drawing/ColorConverterCommon.cs:131 System.ComponentModel.TypeConverter/src/System/ComponentModel/BaseNumberConverter.cs:48 System.Configuration.ConfigurationManager/src/System/Configuration/GenericEnumConverter.cs:35 System.Configuration.ConfigurationManager/src/System/Configuration/GenericEnumConverter.cs:42 System.Configuration.ConfigurationManager/src/System/Configuration/GenericEnumConverter.cs:47 System.Configuration.ConfigurationManager/src/System/Configuration/ProtectedConfigurationSection.cs:58 System.Configuration.ConfigurationManager/src/System/Configuration/ProtectedConfigurationSection.cs:88 System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIProxy.cs:162 System.Data.SqlClient/src/System/Data/SqlClient/SNI/SNIProxy.cs:166 System.Data.SqlClient/src/System/Data/SqlClient/SqlUtil.cs:191 System.Drawing.Common/src/System/Drawing/Graphics.cs:216 System.IO.FileSystem.AccessControl/src/System/Security/AccessControl/DirectoryObjectSecurity.cs:352 System.IO.FileSystem.AccessControl/src/System/Security/AccessControl/DirectoryObjectSecurity.cs:398 System.IO.FileSystem.AccessControl/src/System/Security/AccessControl/DirectoryObjectSecurity.cs:417 System.IO.FileSystem.AccessControl/src/System/Security/AccessControl/DirectoryObjectSecurity.cs:493 System.Net.Http/src/System/Net/Http/Unix/CurlHandler.CurlResponseMessage.cs:61 System.Net.Mail/src/System/Net/Mail/MailHeaderInfo.cs:79 System.Net.WebSockets.Client/src/System/Net/WebSockets/WebSocketHandle.WinRT.cs:49 System.Private.DataContractSerialization/src/System/Runtime/Serialization/DiagnosticUtility.cs:83 System.Private.DataContractSerialization/src/System/Runtime/Serialization/Json/XmlJsonReader.cs:357 System.Private.Xml/src/System/Xml/BinaryXml/XmlBinaryReader.cs:3217 System.Private.Xml/src/System/Xml/BinaryXml/XmlBinaryReader.cs:3219 System.Private.Xml/src/System/Xml/Core/XmlTextReaderImplAsync.cs:3609 System.Private.Xml/src/System/Xml/Serialization/XmlSerializationWriter.cs:1925 System.Private.Xml/src/System/Xml/Serialization/Xmlcustomformatter.cs:80 System.Private.Xml/src/System/Xml/Serialization/Xmlcustomformatter.cs:246 System.Private.Xml/src/System/Xml/Xsl/Xslt/XPathPatternBuilder.cs:331 System.Runtime.WindowsRuntime/src/System/Runtime/InteropServices/WindowsRuntime/WindowsRuntimeBuffer.cs:94 System.Runtime.WindowsRuntime/src/System/Threading/Tasks/TaskToAsyncInfoAdapter.cs:983 System.Security.AccessControl/src/System/Security/AccessControl/SecurityDescriptor.cs:675 System.Threading.Tasks.Dataflow/src/Base/DataflowBlock.cs:1356 ``` There are also many cases where CoreFX tests throw `Exception`, but I think that's okay. +23749 area-System.Drawing Use string resources in Unix System.Drawing.Common The code from mono does not use string resources. We should go through and replace hard-coded strings with resources. Ideally, these resources should be shared with the Windows version where applicable. +23750 area-System.Net Respect UseProxy better in ManagedHandler To match CurlHandler, we should only be using environment variable-based proxy configuration if UseProxy is true, but we're currently using it regardless. This commit fixes that and adds a test for it. cc: @geoffkizer, @wfurt +23751 area-Infrastructure Updating CLI to 2.0.0 version cc: @weshaggard @ericstj Updating CLI version we use to the 2.0.0 version. +23752 area-System.Net Re-enable HTTP/2 test Turning back on the HTTP/2 test that relied on www.microsoft.com being HTTP/2 now that the HTTP/2 server farm processing those requests is working again. Fixes #22735 +23753 area-System.Drawing Delete Unix-specific ColorTranslator, KnownColor, SystemColors We can just replace all of these with the Windows implementation. As a consequence, I was able to re-enable all of the ColorTranslator tests which were previously failing. +23754 area-System.Net Enable disabled HttpClientEKUTests on ManagedHandler They appear to all be passing now. Closes https://github.com/dotnet/corefx/issues/23128 +23755 area-System.Drawing Re-enable SystemFonts test on Linux. #23690 should be fixed now, so I'm going to try re-enabling this test. +23756 area-System.IO System.IO.FileSystem.Tests failed with stack overflow on UWP System.IO.FileSystem.Tests https://mc.dot.net/#/user/justinvp/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/3163a1c0614fd48a1abcd0f9948ec4c143f537d2/workItem/System.IO.FileSystem.Tests/wilogs failed with stack overflow in master ``` 2017-09-01 19:26:47,180: INFO: proc(54): run_and_log_output: Output: Waiting for the application to exit... 2017-09-01 19:28:30,098: INFO: proc(54): run_and_log_output: Output: Process has just exited with return code -1073741571. 2017-09-01 19:28:30,098: INFO: proc(54): run_and_log_output: Output: Disabling the debugger... ``` We don't get dumpling for UWP. @safern can you please try looping this test locally? +23758 area-Serialization Use the dotnet and SGEN under RuntimePath @shmao @ericstj +23759 area-System.IO Need performance tests for creating and deleting directories We should have some performance tests for creating and deleting nested directories. I have a stress test that shows how to create deeply nested directories that can be used as a reference: https://github.com/dotnet/corefx/blob/1d3cc0417753bf0a436824abfeff9c3c1712f63f/src/System.IO.FileSystem/tests/Directory/Delete.cs#L256 There are limits to path lengths on some platforms. As such here are some suggested scenarios: **All Platforms** Create/Delete a directory that is 10 & 100 levels deep **Windows Only** Create/Delete a directory that is 1000 levels deep Creation and deletion should be separate tests. Call Create / Delete on a simple directory to ensure the code has been compiled before doing the core of the test. Tests should be in the performance test project in System.IO.FileSystem. +23762 area-System.Reflection Add GenericTypeParameters to Type # Proposed Additions ```` class Type { // implementation provided by TypeInfo override public virtual Type[] GenericTypeParameters => throw new NotImplementedException() } ```` # Rationale ## Unified Metadata/Runtime Type representation `Type.GenericTypeArguments` and `TypeInfo.GenericTypeParameters` were introduced during an effort to split `Type` into a runtime representation (`Type`) and a metadata representation (`TypeInfo`). In such a world, a type's generic arguments belonged on the runtime representation while a type's generic parameters belonged on the metadata representation. Hence, `GenericTypeArguments` was declared on `Type` and `GenericTypeParameters` on `TypeInfo`. Alas, the cleaving type into runtime/metadata representations didn't take root (see https://github.com/dotnet/coreclr/issues/13714#issuecomment-326300477), `TypeInfo` was deprecated (to the extent possible), and Type's original unified abstraction restored for the .NET Standard 2.0 release. In this new world, the metadata and runtime abstractions live next to each other. So `GenericTypeParameters`, the metadata representation, belongs next to it's runtime counterpart, `GenericTypeArguments`. ## Symmetry The 2.0 generic API was symmetric between `Type` and `MethodInfo` (see below). If we desire to maintain that symmetry then if/when `GenericMethodParameters` is added to `MethodBase` (see https://github.com/dotnet/corefx/issues/23741) `GenericTypeParameters` will need to be declared on `Type`. | Type | TypeInfo | MethodInfo | | ---- | ---- | ---- | | IsGenericType | | IsGenericMethod | | IsGenericTypeDefinition | | IsGenericMethodDefinition | | GetGenericArguments | | GetGenericArguments | | GetGenericTypeDefinition | | GetGenericMethodDefinition | | MakeGenericType | | MakeGenericMethod | | IsConstructedGenericType | | IsConstructedGenericMethod | | ContainsGenericParameters | | ContainsGenericParameters | | GenericTypeArguments | | GenericMethodArguments [new] | | GenericTypeParameters [new] | GenericTypeParameters | GenericMethodParameters [new] | +23763 area-System.Reflection Add GetGenericMethodDefinition and MakeGenericMethod to MethodBase # Proposed Additions ```` class MethodBase { public virtual MethodBase MakeGenericMethod(params Type[] typeArguments) => (this as MethodInfo)?.MakeGenericMethod(typeArguments) ?? throw new InvalidOperationException(); public virtual MethodBase GetGenericMethodDefinition() => (this as MethodInfo)?.GetGenericMethodDefinition() ?? throw new InvalidOperationException(); } ```` # Proposed Modifications These virtuals need to be made `new virtual`: ```` class MethodInfo { public new virtual MethodInfo MakeGenericMethod(params Type[] typeArguments) { ... } public new virtual MethodInfo GetGenericMethodDefinition() { ... } } ```` # Rationale ## Complete The Move Originally, generic APIs for methods were all added to `MethodInfo` as opposed to `MethodBase`. Subsequently, many, but not all of, the generic APIs on `MethodInfo` have been moved to `MethodBase`. We should complete the move for the same reason the move was initiated, whatever that was. ## Symmetry with `Type` If we wish to maintain the same symmetry in generic functionality that exists between `Type` and `MethodInfo` for `Type` and `MethodBase` then we need to add `MakeGenericMethod` and `GetGenericMethodDefinition` to `MethodBase`: | TypeInfo | MethodInfo | MethodBase | | ---- | ---- | ---- | | IsGenericType | IsGenericMethod | IsGenericMethod | | IsGenericTypeDefinition| IsGenericMethodDefinition | IsGenericMethodDefinition | | GetGenericArguments | GetGenericArguments | GetGenericArguments | | GetGenericTypeDefinition | GetGenericMethodDefinition | GetGenericMethodDefinition [new] | | MakeGenericType | MakeGenericMethod | MakeGenericMethod [new] | | IsConstructedGenericType | IsConstructedGenericMethod | IsConstructedGenericMethod | | ContainsGenericParameters | ContainsGenericParameters | ContainsGenericParameters | | GenericTypeArguments | GenericMethodArguments† | GenericMethodArguments† | | GenericTypeParameters‡ | GenericMethodParameters† | GenericMethodParameters† | †See #23741 ‡See #23762 ## Ease Of Use Algorithms are forced to cast to `MethodInfo` because some functionality, like `GetGenericTypeDefinition()`, is only available there. That might have been palatable when there was some reason, some invariant, like _functionality that doesn't exist on constructors lives on `MethodInfo`_ justified that design. But that invariant no longer exists (and good riddance IMHO!) so the cast just feels unnecessary. Moving the functionality down to `MethodBase` removes the need for the cast: ```` if (methodBase.IsGenericMethodDefinition) { var methodDefinition = ((MethodInfo)methodBase).GetGenericMethodDefinition(); // ... do something with methodDefinition } ```` could instead be ```` if (methodBase.IsGenericMethodDefinition) { var methodDefinition = methodBase.GetGenericMethodDefinition(); // ... do something with methodDefinition } ```` # New Virtuals on `MethodInfo` The existing methods on `MethodInfo` cannot directly override the new additions to `MethodBase` as the former return `MethodInfo` and the latter (should) return `MethodBase`. As such, the existing virtual methods need a new vtable slot. Hence the `new virtual`. While there may be objection to exposing `new virtual` methods, in practice, derivation of the reflection API is rare, and those that do derive tend to derive from `ConstructorInfo` and `MethodInfo` and not from `MethodBase` (e.g. `Reflection.Emit`). For those unicorns that did derive from `MethodBase`, they can still make due. But there is no need to go into those weeds. Unless, that is, someone can think of a customer doing this and suggest why they might not like the `new virtuals`. +23764 area-Infrastructure Building with local CoreFx build. Debugger: Module was built without symbols. "Hey, first of all I am sorry if this isn't the right place to ask this but this is pretty frustrating. I've been trying to make some modification to corefx and then use a locally built corefx with my test application, however after finally getting the build to work, it seems that the vscode debugger won't load/can't find the debugging symbols despite having a symbol file in the build folder. I followed these instructions to setup the nighly sdk and the locally built corefx: https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/dogfooding.md My simple helloworld project's csproj file looks like: ``` Exe netcoreapp2.1 Microsoft.Private.CoreFx.NETCoreApp;runtime.linux-x64.Microsoft.Private.CoreFx.NETCoreApp;$(PackageConflictPreferredPackages) linux-x64 ``` Well, I am currently out of ideas how I could get the debugging to work. ``` .NET Command Line Tools (2.1.0-preview1-007102) Product Information: Version: 2.1.0-preview1-007102 Commit SHA-1 hash: abaf4aebc9 Runtime Environment: OS Name: ubuntu OS Version: 17.04 OS Platform: Linux RID: linux-x64 Base Path: /usr/share/dotnet/sdk/2.1.0-preview1-007102/ Microsoft .NET Core Shared Framework Host Version : 2.1.0-preview2-25616-02 Build : 8aa34a95bad481e1b5e4c8286e5cb2d7cb6ed943 ``` vscode debugger output: ``` Loaded '/home/cynecx/.nuget/packages/runtime.linux-x64.microsoft.netcore.app/2.1.0-preview2-25616-02/runtimes/linux-x64/native/System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. Loaded '/home/cynecx/dev/test/bin/Debug/netcoreapp2.1/linux-x64/test.dll'. Module was built without symbols. Loaded '/home/cynecx/.nuget/packages/runtime.linux-x64.microsoft.private.corefx.netcoreapp/4.5.0-preview2-25731-0/runtimes/linux-x64/lib/netcoreapp2.1/System.Runtime.dll'. Module was built without symbols. Loaded '/home/cynecx/.nuget/packages/runtime.linux-x64.microsoft.private.corefx.netcoreapp/4.5.0-preview2-25731-0/runtimes/linux-x64/lib/netcoreapp2.1/System.Console.dll'. Module was built without symbols. Loaded '/home/cynecx/.nuget/packages/runtime.linux-x64.microsoft.private.corefx.netcoreapp/4.5.0-preview2-25731-0/runtimes/linux-x64/lib/netcoreapp2.1/System.Runtime.Extensions.dll'. Module was built without symbols. ``` The log says that the module has been built without symbols but in the same directory there is a test.pdb file." +23765 area-System.Net Test failed: System.Net.WebSockets.Client.Tests.SendReceiveTest / SendReceive_VaryingLengthBuffers_Success ## Types of failures Few of variants on Linux and Mac: ``` System.OperationCanceledException : Aborted ---- System.ObjectDisposedException : Cannot access a disposed object. Object name: 'SslStream'. System.OperationCanceledException : The operation was canceled. ---- System.ObjectDisposedException : Cannot access a disposed object. Object name: 'SslStream'. System.OperationCanceledException : The operation was canceled. ---- System.IO.IOException : Unable to transfer data on the transport connection: Operation canceled. -------- System.Net.Sockets.SocketException : Operation canceled ``` Windows: ``` System.OperationCanceledException : The operation was canceled. ``` ## History of failures (before test disabled on 2017/9/2) Day | Build | OS -- | -- | -- 8/1 | 20170801.01 | Ubuntu17.10 8/1 | 20170801.02 | Ubuntu17.10 8/1 | 20170801.03 | Ubuntu17.10 8/2 | 20170802.01 | Ubuntu17.10 8/4 | 20170804.01 | Ubuntu14.04 8/4 | 20170804.01 | Ubuntu17.10 8/4 | 20170804.01 | Win8.1 8/24 | 20170824.01 | RedHat73 8/24 | 20170824.01 | Fedora26 8/30 | 20170830.01 | OSX10.12 9/2 | 20170902.01 | RedHat72 9/2 | 20170902.02 | Fedora26 9/2 | 20170902.02 | RedHat73 9/3 | 20170903.01 | RedHat73 9/3 | 20170903.01 | Ubuntu16.04 9/3 | 20170903.01 | Centos73 9/3 | 20170903.01 | Debian87 9/3 | 20170903.01 | RedHat72 # Original report Test failed during PR run: https://mc.dot.net/#/user/davidsh/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/169daaad2062ab623fdafa738c3fdbc778d3652e Unhandled Exception of Type System.OperationCanceledException Message : System.OperationCanceledException : The operation was canceled. ---- System.IO.IOException : Unable to transfer data on the transport connection: Operation canceled. -------- System.Net.Sockets.SocketException : Operation canceled +23766 area-System.Net Test failed: WebProxy_BypassOnLocal_MatchesExpected ## Types of failures Error messages (ExtendedSocketException text) * Linux: No such device or address * OSX: Device not configured Build 20170902.01: ``` System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : No such device or address at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) in /root/corefx-966039/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 46 System.Net.Dns.ResolveCallback(Object context) in /root/corefx-966039/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 290 --- End of stack trace from previous location where exception was thrown --- System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult) in /root/corefx-966039/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 420 System.Net.Dns.EndGetHostEntry(IAsyncResult asyncResult) in /root/corefx-966039/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 562 System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Tests.WebProxyTest.d__10.MoveNext() at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext() in /root/corefx-966039/src/System.Linq/src/System/Linq/Select.cs:line 129 ``` ## History of failures (before disabling on 2017/9/2) Note: The test was renamed in https://github.com/dotnet/corefx/commit/cd7ae0572ed600eb7c0ae3350a6f08653fc20946 (on 2017/6/29) from `BypassOnLocal_MatchesExpected` to `WebProxy_BypassOnLocal_MatchesExpected` Day | Build | OS -- | -- | -- 5/7 | 20170507.02 | Ubuntu16.04 5/28 | 20170528.02 | OSX10.12 6/9 | 20170609.01 | Ubuntu16.04 6/12 | 20170612.02 | Ubuntu16.04 6/17 | 20170617.01 | Ubuntu14.04 6/23 | 20170623.02 | Debian90 6/26 | 20170626.03 | Debian90 6/27 | 20170627.01 | Debian90 6/27 | 20170627.01 | Suse42.2 6/27 | 20170627.02 | Suse42.2 7/2 | 20170702.02 | OSX10.12 7/18 | 20170718.02 | Debian87 7/20 | 20170720.92 | OSX10.12 8/2 | 20170802.02 | Debian87 8/4 | 20170804.03 | Debian90 8/15 | 20170815.02 | Ubuntu14.04 8/16 | 20170816.01 | Suse42.2 8/20 | 20170820.02 | SLES12 8/21 | 20170821.01 | OSX10.12 8/21 | 20170821.02 | OSX10.12 8/23 | 20170823.06 | OSX10.12 8/24 | 20170824.02 | Debian90 8/30 | 20170830.01 | Debian90 9/2 | 20170902.01 | SLES12 # Original report Test failed during PR run: https://mc.dot.net/#/user/davidsh/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/169daaad2062ab623fdafa738c3fdbc778d3652e Unhandled Exception of Type System.Net.Internals.SocketExceptionFactory+ExtendedSocketException Message : System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : No such device or address +23767 area-System.Net Test failure: System.Net.Sockets.Tests.TimeoutTest / ReceiveTimesOut_Throws ## Types of failures Similar to #24804 (`SendTimesOut_Throws`) Build 20170814.02: ``` Assert.InRange() Failure Range: (1500 - 3000) Actual: 1346.6928 at System.Net.Sockets.Tests.TimeoutTest.ReceiveTimesOut_Throws(Boolean forceNonBlocking) in /root/corefx-923915/src/System.Net.Sockets/tests/FunctionalTests/TimeoutTest.cs:line 83 ``` ## History of failures Day | Build | OS -- | -- | -- 8/14 | 20170814.02 | Debian90 # Original report Test failed during PR run: ReceiveTimesOut_Throws(forceNonBlocking: True) https://mc.dot.net/#/user/davidsh/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/169daaad2062ab623fdafa738c3fdbc778d3652e ReceiveTimesOut_Throws(forceNonBlocking: True) (Ubuntu) ``` Assert.InRange() Failure Range: (1500 - 3000) Actual: -15521.3745 ``` +23768 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientHandlerTest / PostAsync_RedirectWith307_LargePayload ## History of failures Day | Build | OS | Error message -- | -- | -- | -- 8/1 | 20170801.02 | Ubuntu17.10 | TaskCanceledException: A task was canceled. 8/1 | 20170801.03 | Ubuntu16.04 | TaskCanceledException: A task was canceled. 8/2 | 20170802.01 | Ubuntu16.04 | TaskCanceledException: A task was canceled. 8/4 | 20170804.01 | Win7 | [ManagedHandler] TaskCanceledException: A task was canceled. 8/4 | 20170804.01 | Win7 | TaskCanceledException: A task was canceled. 8/16 | 20170816.01 | Debian90 | [ManagedHandler] OperationCanceledException: The operation was canceled. 9/1 | 20170901.01 | Debian90 | [ManagedHandler] OperationCanceledException: The operation was canceled. 9/1 | 20170901.02 | Ubuntu17.10 | [ManagedHandler] OperationCanceledException: The operation was canceled. 1/19 | | | Test re-enabled in PR #26399 1/21 | 20180121.02 | SLES12 | [ManagedHandler] OperationCanceledException : The operation was canceled. - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180121.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandlerTest~2FPostAsync_RedirectWith307_LargePayload) 1/22 | 20180122.02 | Ubuntu16.04 | [ManagedHandler] OperationCanceledException : The operation was canceled. - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180122.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandlerTest~2FPostAsync_RedirectWith307_LargePayload) # Original report Test failed during PR run: https://mc.dot.net/#/user/davidsh/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/169daaad2062ab623fdafa738c3fdbc778d3652e Unhandled Exception of Type System.Threading.Tasks.TaskCanceledException Message : System.Threading.Tasks.TaskCanceledException : A task was canceled. +23769 area-System.Net HttpClient test failed: AllowAutoRedirect_True_ValidateNewMethodUsedOnRedirection ## History of failures It failed **222x** during 8/12-9/1 (more than 10x/day) on Win7-Win10 # Original report Test failed during PR run: https://mc.dot.net/#/user/davidsh/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/169daaad2062ab623fdafa738c3fdbc778d3652e Unhandled Exception of Type System.Net.Http.HttpRequestException Message : System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.IO.IOException : The server returned an invalid or unrecognized response. +23770 area-System.Net HttpClient test failed: RequestVersion20_ResponseVersion20IfHttp2Supported Test failed during PR run: https://mc.dot.net/#/user/davidsh/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/169daaad2062ab623fdafa738c3fdbc778d3652e RequestVersion20_ResponseVersion20IfHttp2Supported(server: https://http2.akamai.com/) (Linux) Unhandled Exception of Type System.Net.Http.HttpRequestException Message : System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.CurlException : Operation was aborted by an application callback -------- Assert.Equal() Failure Expected: PartialChain Actual: NotSignatureValid +23771 area-System.Net [ManagedHandler] Test failed: DiagnosticsTest / SendAsync_HttpTracingEnabled_Succeeds Test failed during PR run: https://mc.dot.net/#/user/davidsh/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/169daaad2062ab623fdafa738c3fdbc778d3652e DiagnosticsTest/SendAsync_HttpTracingEnabled_Succeeds (Linux) (ManagedHandler) Unhandled Exception of Type Xunit.Sdk.TrueException Message : Exit code was 139 but it should have been 42 Expected: True Actual: False +23772 area-System.Net Disable some networking tests Disabling tests. #23765 #23766 #23767 #23768 #23769 #23770 #23771 +23773 area-System.Net SslStream Correct current size calculations "/cc @geoffkizer When attempting to remove the ""ref"" for the encrypt function I placed some Debug.Asserts and ran a lot fo testing. What I found is there was a lot of allocations on windows and a few on Linux. The windows ones I tracked down to the fact that even though the header/trailer could not be any bigger than 32 bytes SChannel claimed it needed more space. So I have changed the calculation instead to use the StreamSizes that we have (from Linux/OSX they are fixed from SChannel it is retrieved from the API for that connection based on it's requirements/session ciphers etc). This means we always now have the correct size on windows. So I could remove the allocations and the refs. I put in some Debug.Asserts to replace the code that checked the size and allocated. Onto Linux. Currently we had zero for Headers + Trailers and just a fixed MaxMessageSize. The message size is currently set to 32k. Which the description even says is arbitrary. As the max framesize for TLS is 16k if we set this to 32k we could need to output 16k * 2 + Overhead * 2. This means we can allocate in Linux/OSX whenever we go over the 16k boundary. As the frames are independent and it's not a Kernel call just native interop I have changed the this to 16k (reduces the buffer sizes in OpenSSL as well because it has to buffer the first completed frame). Next I added the 32byte overhead to the header to work with the new flow of sizes above. Last thing I fixed is the calculation of the ""max data"" we can send. Currently we are taking the max message size and subtracting the Head and Trailer. This is not what the API says for SChannel from my understanding and certainly isn't the logic from OpenSsl. > The length of the SecBuffer structure that contains the message must be no greater than cbMaximumMessage, which is obtained from the QueryContextAttributes (Schannel) (SECPKG_ATTR_STREAM_SIZES) function. However our data is the only thing that goes into that buffer there are separate buffers for the header and trailer so the max is the max. Once this has been done I did some testing with your tool @geoffkizer and there was pretty much no difference (it's only allocations) but I could see a drop in allocations on large scale stress tests :) " +23774 area-Infrastructure Building on Server Core According to this (https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md), building requires VS 2015 or 2017 installed. And the build script actually stops if they are not found. Then, according to this (https://www.visualstudio.com/en-us/productinfo/vs2017-system-requirements-vs), VS 2017 can't be installed on Windows Server Core (or can it?). Does this mean, we can't build dotnet on a Server Core? Specifically, I want to build from source in a docker container to have clean, reproducible environments. +23775 area-Infrastructure Enable detecting Red Hat distors in PlatformDetection Fixes #21920 and #23630 +23776 area-System.IO Expose/add tests for Memory-based Stream overloads in coreclr/corert Depends on: https://github.com/dotnet/coreclr/pull/13769 https://github.com/dotnet/corert/pull/4443 https://github.com/dotnet/corefx/pull/23701 Closes https://github.com/dotnet/corefx/issues/22381 Closes https://github.com/dotnet/corefx/issues/22388 Closes https://github.com/dotnet/corefx/issues/22389 Closes https://github.com/dotnet/corefx/issues/22386 cc: @JeremyKuhne, @pjanotti, @KrzysztofCwalina, @ahsonkhan +23777 area-System.Net "System.Net.Tests.TaskWebClientTest.UploadData_LargeData_Success failed with ""System.Net.WebException : The operation has timed out"" in CI" Failed test: System.Net.Tests.TaskWebClientTest.UploadData_LargeData_Success MESSAGE: ~~~ System.Net.WebException : The operation has timed out. ~~~ STACK TRACE: ~~~ at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_debian8.4_debug/src/System.Net.Requests/src/System/Net/HttpWebRequest.cs:line 1261 at System.Net.WebClient.GetWebResponse(WebRequest request, IAsyncResult result) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_debian8.4_debug/src/System.Net.WebClient/src/System/Net/WebClient.cs:line 256 at System.Net.WebClient.d__112.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_debian8.4_debug/src/System.Net.WebClient/src/System/Net/WebClient.cs:line 269 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.WebClient.d__150.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_debian8.4_debug/src/System.Net.WebClient/src/System/Net/WebClient.cs:line 865 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.WebClientTestBase.d__21.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_debian8.4_debug/src/System.Net.WebClient/tests/WebClientTest.cs:line 657 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +23779 area-System.Net Test failure: System.Net.Sockets.Tests.SendFileTest/SendFile_APM(listenAt: ::1, sendPreAndPostBuffers: False, bytesToSend: 1024) Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.SendFileTest/SendFile_APM(listenAt: ::1, sendPreAndPostBuffers: False, bytesToSend: 1024)` has failed. Neither client nor server task completed within allowed time Expected: True Actual: False Stack Trace: at System.Net.Sockets.Tests.SendFileTest.SendFile_APM(IPAddress listenAt, Boolean sendPreAndPostBuffers, Int32 bytesToSend) in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Sockets/tests/FunctionalTests/SendFile.cs:line 233 Build : Master - 20170904.01 (Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170904.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SendFileTest~2FSendFile_APM(listenAt:%20::1,%20sendPreAndPostBuffers:%20False,%20bytesToSend:%201024) +23780 area-System.Security WindowsCryptographicException trying to read certificate from file "I have a problem adding the client certficate (that is included in the project) on my production environment. It works locally so I guess it is somehow machine related and also it works on our test server. It is trying to import the certificate file as seen below and I have no real help from the error message. I have tried adding more permission to the application pool user as well as file level permissions. Any ideas on what could be the cause? Or should I rewrite something? Production server is Windows 2012 R2. The error I get is: ``` WindowsCryptographicException: An internal error occurred Internal.Cryptography.Pal.CertificatePal.FilterPFXStore(Byte[] rawData, SafePasswordHandle password, PfxCertStoreFlags pfxCertStoreFlags) Internal.Cryptography.Pal.CertificatePal.FromBlobOrFile(Byte[] rawData, string fileName, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags) System.Security.Cryptography.X509Certificates.X509Certificate..ctor(string fileName, string password, X509KeyStorageFlags keyStorageFlags) ``` ``` ChannelFactory factory = null; BolagsverketServiceReference.XMLProdukt serviceProxy = null; BasicHttpsBinding binding = null; binding = new BasicHttpsBinding(BasicHttpsSecurityMode.Transport); binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate; factory = new ChannelFactory(binding, new EndpointAddress(""https://eservice.bolagsverket.se/services/XMLProdukt"")); var pathToFile = hostingEnvironment.ContentRootPath + Path.DirectorySeparatorChar.ToString() + ""certificates"" + Path.DirectorySeparatorChar.ToString() + ""something.p12""; factory.Credentials.ClientCertificate.Certificate = new System.Security.Cryptography.X509Certificates.X509Certificate2(pathToFile, ""hiddenpassword"", X509KeyStorageFlags.UserKeySet | X509KeyStorageFlags.PersistKeySet); serviceProxy = factory.CreateChannel(); return serviceProxy; ``` .Net/EF Core 2.0.0 VS 2017 15.3-latest Win 10" +23781 area-System.Net Truncate sendmsg/recvmsg to IOV_MAX Fixes https://github.com/dotnet/corefx/issues/23416 @stephentoub PTAL +23782 area-System.Net Linux HttpClient.SendAsync resets Content Stream position "In the past the stream was disposed after SendAsync call. Now it isn't : https://github.com/dotnet/corefx/pull/19082 However, on Linux the Stream.Position is reset to zero. On windows it remains on the last read position. The following program, i.e., set the MemoryStream position to last read position 3 in Windows, but to 0 in Linux OS : Windows 10 vs. Ubuntu16.04 .NetCore 2.0.0 ```c# using System; using System.IO; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Logging; namespace StreamShouldNotBeReset { internal class Program { internal class MyContent : HttpContent { private readonly Stream _stream; private readonly byte[] _buffer = new byte[4096]; internal MyContent(Stream ms) { _stream = ms; } protected async Task CopyToStreamAsync(Stream stream) { var count = await _stream.ReadAsync(_buffer, 0, _buffer.Length).ConfigureAwait(false); while (count > 0) { await stream.WriteAsync(_buffer, 0, count).ConfigureAwait(false); count = await _stream.ReadAsync(_buffer, 0, _buffer.Length).ConfigureAwait(false); } } protected override Task SerializeToStreamAsync(Stream stream, TransportContext context) { return CopyToStreamAsync(stream); } protected override bool TryComputeLength(out long length) { if (_stream.CanSeek) { length = _stream.Length; return true; } length = 0; return false; } protected override Task CreateContentReadStreamAsync() { return Task.FromResult(_stream); } } internal static async Task RequestHandler(HttpContext context) { var result = await context.Request.ReadFormAsync().ConfigureAwait(false); foreach (var keyValuePair in result) { Console.WriteLine(keyValuePair.Key + ""="" + keyValuePair.Value); } context.Response.StatusCode = (int)HttpStatusCode.OK; } internal class MyStartUp { public void Configure(IApplicationBuilder app, ILoggerFactory loggerfactory) { app.Run(RequestHandler); } } private static void Main() { const string url = ""http://127.0.0.1:8080""; var host = new WebHostBuilder() .UseKestrel() .UseStartup() .UseUrls(url).Build(); host.Start(); using (var client = new HttpClient(new HttpClientHandler())) using (var ms = new MemoryStream(new byte[] {1, 2, 3})) { client.BaseAddress = new Uri(url); client.SendAsync(new HttpRequestMessage { Method = HttpMethod.Put, Content = new MyContent(ms) }).Wait(); Console.WriteLine(ms.Position); } } } } ``` [EDIT] Add C# syntax highlighting by @karelz" +23783 area-System.Net System.URI fails to correctly parse URNs containing unicode characters System.URI fails to correctly parse URNs containing unicode characters. For reproduction steps, see this Gist: https://gist.github.com/richardprobert/99efb44a5a04613475d1b2f67e837c20 In the example above, the bug manifests in ToString(), but is apparent in other operations too. The bug seems to be triggered by the combination of both an URN, and one that contains unicode characters. I would have expected this to either work as expected, or throw some exception. +23784 area-Infrastructure Update CoreClr, CoreFx, CoreSetup, ProjectNTfs, ProjectNTfsTestILC, Standard to preview2-25708-01, preview2-25707-02, preview2-25707-02, beta-25708-00, beta-25708-00, preview1-25707-01, respectively (master) +23786 area-System.IO TextReader/Writer Span overloads and tests @stephentoub , @ianhays , @JeremyKuhne Appreciate your review feedback on the changes in this PR. In this PR, 1. New Span / ReadonlySpan overloads as mentioned in #22406. The buffer based overloads will be done when buffer is available. 2. Added TextReader and TextWriter tests as per comment [here](https://github.com/dotnet/corefx/issues/22406#issuecomment-325443936). Contributes to #22406. Thanks, Mandar +23787 area-System.Data Ported a missing SqlParameter constructor I've added a missing SqlParameter constructor per discussion on #17126. This is a direct port of the constructor located [here](https://msdn.microsoft.com/en-us/library/5a10hy4y(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-2) from reference source located [here](https://github.com/dotnet/corefx/blob/master/src/shims/ApiCompatBaseline.netcoreapp.netfx461.txt). I tried to mirror my work off the similar PR #19544. @danmosemsft had originally suggested that I attempt to port the rest of SqlParameter's missing items as well, but since this is my first attempt at open source contribution I'm going to start small. (Plus, some of that work looked a bit out of my league.) I'm happy to make any changes or additions as necessary - please let me know! +23788 area-System.Net System.Net.Http.StreamContent.ReadOnlyStream size awareness "Streams typically returned by `HttpClient` (`StreamContent.ReadOnlyStream` - I am **explicitely** trying not to use buffered streams, so `MemoryStream` is out of question) are neither size nor position-aware. https://github.com/dotnet/corefx/blob/6bf1e7c3032d3c24d5a41bbd880549ef4a8de2da/src/System.Net.Http/src/System/Net/Http/HttpContent.cs#L248-L275 This is for obvious reasons: the `Content-Length` header is not actually required to be sent at all times (see [RFC](https://tools.ietf.org/html/rfc7230#section-3.3.3)). I guess I could return a wrapped stream which exposes `Content-Length`, if sent by the server. ~Additionally - because I'm not sure it's worth adding another issue for, when this is more of a question as of now than an actual ""pull request poll"", `System.IO.Compression.DeflateStream` does not support seek operations. Now, I will be the first to admit I don't exactly know how the deflate algorithm works. I was just curious of the reasoning behind that, since it is already memory-backed, and surely it should be easy enough to implement forward-seeking, by just quickly glancing at the current implementation. `SeekOrigin.End` may become problematic with `StreamContent.ReadOnlyStream` in regards to the fact that it does not expose the complete amount of bytes returned by the server, or would do so in an unusual way (regarding the point above).~ >Removed because actual code suggests it works a little differently. I guess my question here is: is adding a way to tell actual content-length inside a network stream something worth creating a pull request for? ~Additionally, is it worth trying to implement seek operations in `DeflateStream` ?~ " +23789 area-System.Net managedHandler does not respect all_proxy I did some testing with simple http client. On Linux curl based client does rest http_proxy as well as all_proxy environmental variable. new managedHandler only seems to pay attention yo http_proxy. +23790 area-System.Net NullReferenceException when setting TcpClient.SendTimeout We use netstandard2.0. See: http://issues.hibernatingrhinos.com/issue/RavenDB-8440 System.NullReferenceException occurred HResult=0x80004003 Message=Object reference not set to an instance of an object. Source= StackTrace: at System.Net.Sockets.TcpClient.set_SendTimeout(Int32 value) ![image](https://user-images.githubusercontent.com/629734/30052131-33ef6d30-922d-11e7-89aa-cb8b30cd266a.png) ![image](https://user-images.githubusercontent.com/629734/30052139-39982506-922d-11e7-80a9-0e3068ef4e45.png) +23791 area-System.Security Remove unused SSLv3_method This API is not used anymore, so remove it from the openssl shim. +23792 area-System.Numerics Add tests for double/single GetHashCode and Equals invariant fix. While fixing https://github.com/dotnet/coreclr/issues/6237 , we need to add tests to ensure: - All `System.Double.NaNs` have same hash code. - All `System.Single.NaNs` have same hash code. So that we can keep the `Equals` -> `GetHashCode` invariant. +23793 area-System.Numerics Added NaN and -NaN comparison. NaNs should have same hash code. The two exposed NaNs are NaN and -NaN. So we need to ensure these two NaNs have the same hash code. **NOTE: Do not merge this PR until https://github.com/dotnet/coreclr/pull/13781 included in corefx.** Fix #23792 +23794 area-System.Net Fix behavior of Dns.GetHost* with empty string On Windows, passing an empty string to gethostbyname/GetAddrInfoW results in the host's information being used; that behavior then bubble's up through (and is documented for) the Dns.GetHost* APIs in .NET. On Unix, the native functions being used don't provide that same behavior, instead returning an error. This just special-cases empty string in the Unix implementation. cc: @geoffkizer, @Priya91, @wfurt +23795 area-System.IO System.IO.Packaging attempt to delete non-existent property fails An attempt to delete a package property that was not previously defined fails in subsequent Dispose(). Lines 481-489 in [http://referencesource.microsoft.com/#WindowsBase/Base/MS/Internal/IO/Packaging/PartBasedPackageProperties.cs,2e226d8b23d00ee4](url) have no equivalent implementation in the corefx implementation https://github.com/dotnet/corefx/blob/release/2.0.0/src/System.IO.Packaging/src/System/IO/Packaging/PartBasedPackageProperties.cs#L400 A repro is available in https://github.com/OfficeDev/Open-XML-SDK/issues/235 +23796 area-System.Diagnostics Several StackFrameTests now failing with line number differences on netfx ``` System.Diagnostics.Tests.StackFrameTests.Ctor_FNeedFileInfo(fNeedFileInfo: True) [FAIL] Assert.Equal() Failure Expected: 0 Actual: 7 Stack Trace: D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.StackTrace\tests\StackFrameTests.cs(166,0): at System.Diagnostics.Tests.StackFrameTests.VerifyStackFrameSkipFrames(StackFrame stackFrame, Boolean isFileConstructor, Int32 skipFrames, MethodInfo expectedMethod, Boolean isCurrentFrame) D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.StackTrace\tests\StackFrameTests.cs(34,0): at System.Diagnostics.Tests.StackFrameTests.Ctor_FNeedFileInfo(Boolean fNeedFileInfo) System.Diagnostics.Tests.StackFrameTests.Ctor_FNeedFileInfo(fNeedFileInfo: False) [FAIL] Assert.Equal() Failure Expected: 0 Actual: 7 Stack Trace: D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.StackTrace\tests\StackFrameTests.cs(166,0): at System.Diagnostics.Tests.StackFrameTests.VerifyStackFrameSkipFrames(StackFrame stackFrame, Boolean isFileConstructor, Int32 skipFrames, MethodInfo expectedMethod, Boolean isCurrentFrame) D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.StackTrace\tests\StackFrameTests.cs(34,0): at System.Diagnostics.Tests.StackFrameTests.Ctor_FNeedFileInfo(Boolean fNeedFileInfo) System.Diagnostics.Tests.StackFrameTests.Ctor_SkipFrames_FNeedFileInfo(skipFrames: 0, fNeedFileInfo: True) [FAIL] Assert.Equal() Failure Expected: 0 Actual: 8 Stack Trace: D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.StackTrace\tests\StackFrameTests.cs(166,0): at System.Diagnostics.Tests.StackFrameTests.VerifyStackFrameSkipFrames(StackFrame stackFrame, Boolean isFileConstructor, Int32 skipFrames, MethodInfo expectedMethod, Boolean isCurrentFrame) D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.StackTrace\tests\StackFrameTests.cs(57,0): at System.Diagnostics.Tests.StackFrameTests.Ctor_SkipFrames_FNeedFileInfo(Int32 skipFrames, Boolean fNeedFileInfo) System.Diagnostics.Tests.StackFrameTests.Ctor_SkipFrames_FNeedFileInfo(skipFrames: 0, fNeedFileInfo: False) [FAIL] Assert.Equal() Failure Expected: 0 Actual: 8 Stack Trace: D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.StackTrace\tests\StackFrameTests.cs(166,0): at System.Diagnostics.Tests.StackFrameTests.VerifyStackFrameSkipFrames(StackFrame stackFrame, Boolean isFileConstructor, Int32 skipFrames, MethodInfo expectedMethod, Boolean isCurrentFrame) D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.StackTrace\tests\StackFrameTests.cs(57,0): at System.Diagnostics.Tests.StackFrameTests.Ctor_SkipFrames_FNeedFileInfo(Int32 skipFrames, Boolean fNeedFileInfo) ``` +23797 area-System.Drawing [System.Drawing] Add unit tests based on Mono's test suite When consolidating the Unix and Windows codebase for System.Drawing, I noticed some gaps in code coverage. For example, the various `Graphics.*Clip*` methods and properties did not have any coverage. As a result, I tried to port the Mono test suite for System.Drawing to corefx. This PR is the result of that. The tests uncovered a couple of bugs in the current implementation of System.Drawing: - The getter for `PathGradientBrush.Blend` returned inconsistent results across calls due to invalid P/Invoke code - https://github.com/dotnet/corefx/commit/3a6f13043b6790449cc2c0b1d4c44b3c7e15bc9b - The P/Invoke declaration for `GdipSaveImageToFile_delegate` was missing a `MarshalAs` attribute for the `filename` parameter, causing the filenames to be passed in ANSI format to a function which expected Unicode, resulting in unexpected filenames. - The `InvalidEnumArgumentException` exception class exists in both `System.Drawing` and `System.ComponentModel` +23799 area-System.Net Add_ReachedMaxCountWithExpiredCookies_Added failed in CI ``` Unhandled Exception of Type Xunit.Sdk.EqualException Message : Assert.Equal() Failure Expected: 0 Actual: 1 Stack Trace : at System.Net.Primitives.Unit.Tests.CookieContainerTest.d__38.MoveNext() in /mnt/j/workspace/dotnet_corefx/master/linux-TGroup_netcoreapp+CGroup_Release+AGroup_x64+TestOuter_false_prtest/src/System.Net.Primitives/tests/UnitTests/CookieContainerTest.cs:line 423 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` https://mc.dot.net/#/user/stephentoub/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/86ca19c92fccec47994700d09738fc4051fd18ab/workItem/System.Net.Primitives.UnitTests.Tests/analysis/xunit/System.Net.Primitives.Unit.Tests.CookieContainerTest~2FAdd_ReachedMaxCountWithExpiredCookies_Added +23803 area-System.Net Increase allowed timeout range in SendTimesOut_Throws Closes https://github.com/dotnet/corefx/issues/23595 +23804 area-System.Runtime Converge TimeZoneInfo sources (coreclr & corert) This is a reminder to finish the convergence of the TimeZoneInfo source files. WIP here: https://github.com/ViktorHofer/coreclr/tree/TimeZoneInfoConverganceBackup When finished, remove this line https://github.com/dotnet/corefx/blob/master/src/System.Runtime.Serialization.Formatters/tests/BinaryFormatterHelper.cs#L139 and update the blobs. +23805 area-System.Net release/2.0: Truncate sendmsg/recvmsg to IOV_MAX (#23781) Port #23781 to release/2.0.0 branch. cc: @tmds, @geoffkizer +23807 area-Infrastructure Updates to RID graph are clunky and error-prone Updating the file https://github.com/dotnet/corefx/blob/master/pkg/Microsoft.NETCore.Platforms/runtime.json is clunky and error prone. Now ideally RIDs would have more strongly-typed semantics that have continuous (eg: version) or discrete (eg: architecture) values, along with relationships and precedence between them. Today we handle these by convention. At runtime the RID is just an opaque string that's related to other opaque strings. We should create a smaller representation of the RID graph and codify all of our conventions into a some code generation task. For example: OSFamily : linux Parent OSFamily: unix Versions: none Architectures: x64, x86, arm, armel, arm64 Additional qualifiers: none OSFamily : rhel Parent OSFamily: linux Versions: 6, 7, 7.0, 7.1, 7.2, 7.3, 7.4 Architectures: x64 Additional qualifiers: none We can also have a pass-through that merges runtime.json fragments for things we don't want to represent with a generator. Given this smaller set of information we should be able to generate the same RID graph we have today but in a less-error prone way. /cc @Petermarcu +23808 area-System.Runtime Fixing uap serialization errors for exceptions Fixes https://github.com/dotnet/corefx/issues/23547 Exceptions are reflection blocked in uapaot. +23809 area-System.Memory ReadOnlySpan and Span must be `readonly` structs. ReadOnlySpan and Span do not have any mutable fields and should be `readonly` just from the principle of least privilege. Also, being not readonly makes the code like the following an error: ```C# Span stackAllocated = stackalloc int[100]; Span returnableSpan = new int[100]; // error, compiler thinks that CopyTo could just do 'this = other' // there would be no danger if Span was `readonly` returnableSpan.CopyTo(stackAllocated); ``` Also see: https://github.com/dotnet/roslyn/issues/21911 For now I can assume that ReadOnlySpan and Span will be `readonly` and specialcase them to be `readonly` regardless of annotations. That would fix https://github.com/dotnet/roslyn/issues/21911 temporarily. Depending on the compiler used they should be either ```C# public readonly ref struct Span { ... } ``` or ```C# [S.R.CS.ReadOnlyAttribute] [S.R.CS.IsByRefLikeAttribute] public struct Span { ... } ``` +23810 area-System.IO TextWriter.Read base implementation fails with count == 0 Repro: ```C# using System.IO; class Program { static void Main() { var reader = new MyTextReader(); reader.Read(new char[0], 0, 0); } } class MyTextReader : TextReader { public override int Read() => 'a'; } ``` This throws an IndexOutOfRangeException, and repros on both netfx and .NET Core. The loop in Read currently looks like this: ```C# int n = 0; do { int ch = Read(); if (ch == -1) break; buffer[index + n++] = (char)ch; } while (n < count); return n; ``` It'd be better as something like: ```C# int n; for (n = 0; n < count; n++) { int ch = Read(); if (ch == -1) break; buffer[index + n] = (char)ch; } return n; ``` +23812 area-System.Net HttpClient virtual SendAsync is not properly called HttpClient has several overloads of SendAsync. Only the one that accepts a request and cancellation token is marked virtual. Looking at the implementations they all call the version that accepts the request, option and cancellation token. Inside this method it ultimately calls the SendAsync version that accepts a request and cancellation token but from the base class. The net result is that deriving from HttpClient and overriding the only virtual implementation of SendAsync doesn't impact anything unless you happen to call the version that accepts the given parameters. HttpClient should have an overload that can be called to hook into all the methods to allow pre/post request processing. Alternatively the existing implementation should be adjusted such that all the overloads eventually call the overridable implementation that then defers to the base implementation. ```public class MyHttpClient : HttpClient { public override Task SendAsync ( HttpRequestMessage request, CancellationToken cancellationToken ) { //Will never be called unless code explicitly calls this override return base.SendAsync(request, cancellationToken); } } ``` +23813 area-Infrastructure Update CoreClr, CoreFx to , servicing-25713-01, respectively (release/1.1.0) +23814 area-Infrastructure Updating CoreFx dependencies to servicing-25705-01 +23815 area-System.Runtime List.Reverse should not call Array.Reverse, or add Array.Reverse method and call it. From analysis of real profiles: List.Reverse should not call Array.Reverse, or add Array.Reverse method and call it. Here is List.Reverse implementation: ```c# // System.Collections.Generic.List public void Reverse(int index, int count) { .. Array.Reverse(._items, index, count); _version++; } ``` Notice Array.Reverse is not a generic method because there is no `Array.Reverse` method. It's implementing using boxing for custom struct and GetValue/SetValue calls. Super expensive. The whole JToken.get_Path method is expensive and it building a new string every time through StringBuilder. +23816 area-System.ComponentModel System.ComponentModel.Annotations Refactoring * Rename private static field to use `s_` prefix. * Favor `?:` over `if` … `else` * Replace `!= null && string.IsNullOrEmpty` with `?.Length == 0`. Only one null check, and can call length non-virtually. * Only obtain `stringValue` if `!AllowEmptyStrings` Otherwise is wasted. * Favour `.Length` or `.Count` over `.Any()` for collections Lighter call in each case. * Use as-available yield rather than building collections in some methods * Remove `breakOnFirstError` parameter. As methods are now enumerating directly, caller can just abort early. * Break `foreach` in `TryValidateXXX` methods into enumerator operations Allows separate path that only cares if there is a result to do less, and path for adding results to only test collection exists once. * Move null check to where it gives answer before accessing property. * Remove redundant intialisers. Inlining into out parameters where applicable. * Favour `OfType<>().FirstOrDefault()` over `FirstOrDefault` with type test. Avoids using delegate. * Use `is` patterns over `as` and check where appropriate. * Use lambda expressions instead of delegate keyword. * Rename consts to PascalCase * Remove redundant cast. * Use `??` instead of `if` for null checks. * Remove redundant base call * Internal properties to private fields when only used privately. * Explicit types rather than `var` (or inline variables in a few places). * Unused return type to `void` +23817 area-System.Linq Fix LargeArrayBuilder.CopyTo returning incorrect end-of-copy position Fixes #23680 Replaces #23730 cc @stephentoub @VSadov @jamesqo +23818 area-Infrastructure Updating CoreClr dependencies to stable +23820 area-System.Globalization Fix NumberFormatInfoNumberGroupSizes failed test Fixes #23628 +23821 area-System.Net Use only CredentialCache for authentication when redirecting Uris in ManagedHandler. fixes #23129 cc @geoffkizer @stephentoub @wfurt +23822 area-System.Net "Test: System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test/UseCallback_BadCertificate_ExpectedPolicyErrors failed with ""Xunit.Sdk.EqualException""" "Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test/UseCallback_BadCertificate_ExpectedPolicyErrors(url: \""https://wrong.host.badssl.com/\"", expectedErrors: RemoteCertif...` has failed. Assert.Equal() Failure Expected: RemoteCertificateNameMismatch Actual: RemoteCertificateNameMismatch, RemoteCertificateChainErrors Stack Trace: at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.<>c__DisplayClass12_0.b__0(HttpRequestMessage request, X509Certificate2 cert, X509Chain chain, SslPolicyErrors errors) in /root/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.ServerCertificates.cs:line 231 at System.Net.Http.CurlHandler.SslProvider.VerifyCertChain(SafeX509StoreCtxHandle storeCtx, EasyRequest easy) in /root/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.SslProvider.cs:line 359 at System.Net.Http.CurlHandler.SslProvider.VerifyCertChain(IntPtr storeCtxPtr, IntPtr curlPtr) in /root/corefx/src/System.Net.Http/src/System/Net/Http/Unix/CurlHandler.SslProvider.cs:line 264 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in /root/corefx/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 462 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__12.MoveNext() in /root/corefx/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.ServerCertificates.cs:line 235 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) Build : 2.0.0 - 20170906.01 (Core Tests) Failing configurations: - SLES.12.Amd64-x64 - Debug - Release - suse.422.amd64-x64 - Debug - Release - Ubuntu.1604.Amd64-x64 - Debug - Release - Ubuntu.1704.Amd64-x64 - Debug - Release - Debian.90.Amd64-x64 - Debug - Release - Ubuntu.1404.Amd64-x64 - Debug - Release - Debian.87.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170906.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test~2FUseCallback_BadCertificate_ExpectedPolicyErrors(url:%20%5C%22https:~2F~2Fwrong.host.badssl.com~2F%5C%22,%20expectedErrors:%20RemoteCertif..." +23823 area-Infrastructure Update CoreFx, CoreSetup, ProjectNTfs, ProjectNTfsTestILC, Standard to preview1-25801-01, stable, rel-25728-00, rel-25728-00, preview1-25729-01, respectively (release/uwp6.0) +23824 area-System.Net "Test: System.Net.NameResolution.Tests.GetHostByNameTest/DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName failed with ""Xunit.Sdk.ContainsException""" Opened on behalf of @Jiayili1 The test `System.Net.NameResolution.Tests.GetHostByNameTest/DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName` has failed. Assert.Contains() Failure Not found: DCI-Mac-Build-068.local In value: dci-mac-build-068.local Stack Trace: at System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.NameResolution/tests/FunctionalTests/GetHostByNameTest.cs:line 115 Build : Master - 20170906.01 (Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170906.01/workItem/System.Net.NameResolution.Functional.Tests/analysis/xunit/System.Net.NameResolution.Tests.GetHostByNameTest~2FDnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName +23825 area-System.Data How to use DataTable and DataView in asp.net core 2.0 Hi All, I have using DataTable (https://blogs.msdn.microsoft.com/devfish/2017/05/15/exploring-datatable-and-sqldbadapter-in-asp-net-core-2-0/) in asp.net core but not work in DataTable (https://apisof.net/catalog/System.Data.DataTable ) and DataView(https://apisof.net/catalog/System.Data.DataView). I have already referred System.Data.Common, Version=4.3 assembly extension. could you please right me to proper way. thanks. +23826 area-System.Net Only truncate to IOV_MAX for stream sockets This fixes the change in behavior for non-stream sockets introduced by https://github.com/dotnet/corefx/pull/23781. CC @wfurt @stephentoub +23827 area-System.Net System.Net.Http httpClient ServerCertificateCustomValidationCallback does not include the intermediate certificates provided by the server "When we assign a callback to ServerCertificateCustomValidationCallback (SCCVC) (tested on Win7/Win8.1,) the passed ""chain"" arg only includes the server certificate but no intermediate certs passed by the server. The ""chain"" only has multiple ChainElements if the server cert is signed by a certificate, intermediate or root, that exists in the local store. If we have a cert signed by an intermediate CA and that cert is chained by the server, even if that CA cert is in turn signed by a root/intermediate CA that exists in the store, the chain will not include any of the intermediate certificates, and will show just the server certificate. In such a case where the root cert exists in the store and the intermediate cert is chained by the HTTPS server, the request will go through successfully when no callback is defined, yet show up in the callback with ChainElements.Count == 1 and SslPolicyErrors != none; which some might find a smidge ironic. The following are the current behaviors and the corresponding behavior in the ServerCertificateValidationCallback (SCVC) in .NET Framework which I assume should be the expected behavior here. 1) When the server passes a certificate chain and a given certificate is _different_ to the one in the store for the same CN/SAN, SCCVC gets the store cert, while SCVC (expected) gets the one passed by the server. 2) When the server passes a certificate chain which does not conflict with the store, SCCVC does not get any of the certificates passed to ""chain"" other than the server cert itself. Expected behavior per SCVC is to have the server intermediate certs passed along and ADDITIONAL certs, only if the final cert is not self-signed, added to the chain where appropriate. This is preventing us from using httpClient in production. We have our certs signed by an intermediate CA which we cannot install on target systems' local cert stores. Furthermore, we use an internal root CA for testing and we would prefer to compare the CA cert to the final cert in the chain in the validation callback, rather than installing and re-installing certs as test CAs pop in and out of existence." +23828 area-System.Threading Add CancellationTokenRegistration.Token property When registering with a CancellationToken, a common pattern is to then store the resulting CancellationTokenRegistration onto some object for later disposal when the associated asynchronous operation completes. It's also common to store the original CancellationToken, so that it can, for example, be passed to TaskCompletionSource.TrySetCanceled. But having to store the CancellationToken in addition to the CancellationTokenRegistration should be unnecessary, as the registration already knows with which CancellationToken it's associated... it just doesn't expose that information. We should expose it. ```C# public struct CancellationTokenRegistration { public CancellationToken Token { get; } ... } ``` This property now exists, it's just internal: https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/Threading/CancellationTokenRegistration.cs#L44 We should simply make it public. This will allow us to shrink by a reference-sized field several objects that store the CT in addition to the CTR. +23829 area-System.Net Disable default proxy test on Desktop HttpClient test `ProxyExplicitlyProvided_DefaultCredentials_Ignored` has started failing on Desktop due to build system changes. Disabling for now. #23702 +23830 area-Infrastructure [Release/2.0.0] Reduce desktop targeted reference assemblies in 2.0 release See https://github.com/dotnet/corefx/issues/23505. The use of reference assemblies in 2.0 for desktop-targeted packages and netstandard support targets has resulted in a number of tooling issues. To help relieve these, we can dial back the number of reference assemblies we use. 1. Don't use reference assemblies at all for the support package / targets. - https://github.com/dotnet/corefx/pull/23711 - Will need to be ingested into SDK 2. For packages which have reference facades which are full facades, don't set the reference assembly bit. - https://github.com/dotnet/buildtools/pull/1663 - Needs to be ported to release/2.0.0 - The following packages will benefit from this: - Microsoft.Win32.Registry - System.CodeDom - System.ComponentModel.Annotations - System.Configuration.ConfigurationManager - System.Data.SqlClient - System.IO.Packaging - System.IO.Ports - System.Security.AccessControl - System.Security.Cryptography.Cng - for all but net461 see below - System.Security.Cryptography.Pkcs - System.Security.Cryptography.ProtectedData - System.Security.Cryptography.Xml - System.Security.Principal.Windows - System.ServiceProcess.ServiceController - System.Threading.Tasks.Extensions 3. For the remaining packages, consider excluding the desktop reference and instead using the implementation assembly as the reference (as we did in 1.x). These are the packages we shipped in 2.0 that contained reference assemblies with typedefs for desktop: - System.Numerics.Vectors - System.IO.FileSystem.AccessControl - System.IO.Pipes.AccessControl - System.Reflection.TypeExtensions - System.Security.Cryptography.Cng - only on net461 as a result of the netstandard remapping. Fix here is to drop those types from the reference for the netfx build. - System.Threading.AccessControl 1 is a must-fix for 2.0. For 2 and 3 we'd need to ship the individual packages and for that I'd like a shiproom read. +23831 area-Infrastructure Switch OSX CI runs to use Helix +23832 area-System.Xml Make Xunit detect tests from Xml custom test fx (no more outerloop tests in S.P.Xml) This improves debuggability of XML tests. Before this PR when one of the test cases failed you couldn't tell which one (one test case was a batch of hundreds to thousands tests). This PR makes it so that XML custom test framework is feeding Xunit's theory with inline data which is enough to execute test and show description of the test case - this way we can nicely see a failure Fixes https://github.com/dotnet/corefx/issues/14855 Contributes to https://github.com/dotnet/corefx/issues/3133 +23833 area-System.Linq LINQ Concat.ToArray outputs null elements when it shouldn't From @markples at https://github.com/dotnet/corefx/issues/23680#issuecomment-326906526 --- Here is a repro (from @vuminhle). It seems very specific - reducing the list sizes or changing the construction in various ways loses the repro. ```cs using System; using System.Collections.Generic; using System.Linq; namespace repro { internal class Program { private static void Main(string[] args) { A[] list = List1().Concat(List2()).Concat(List3()).ToArray(); foreach (A a in list) { Console.WriteLine(a.Value); } } internal static IEnumerable List1() { for (var i = 0; i < 4; i++) { yield return new A(i); } } internal static IEnumerable List2() { return Enumerable.Range(0, 2).Select(v => new A(v)); } internal static IEnumerable List3() { for (var i = 0; i < 5; i++) { yield return new A(i); } } internal class A { public A(int v) { Value = v; } public int Value { get; } } } } ``` +23834 area-Infrastructure Disable package builds for Microsoft.NETCore.Platforms and Microsoft.NETCore.Targets cc: @weshaggard @danmosemsft @ericstj Disabling two extra packages that won't be shipped for uwp6.0 release, and depending on released packages instead. +23835 area-Infrastructure How do I reference corefx libs with net.core 2 app "Hi there! I am happy to write here, thank you all <3!! Actually I cant understand how can I build a library and use it in to my project. There are not enought info or I cant understand base things. My steps are: -0 Add a new ""Hello World!"" method somewhere System.Collections library -1 Compile it (use cmd.exe build \src\System.Collections -os=Windows_NT) -2 Create an empty net.core 2.0 console app then add referece to obtained on prev step dll -3 Get an error ""the reference is invalid or unsupported"" (VS 2017 community) The question is: how can I use compiled libraries (or reference whole projects) from the repo in my net.core 2 projects ? Where is the trick ?" +23836 area-System.Memory Avoid downgrading to netstandard reference assembly Similar to 75962dae7f338445b57d7d276d018774e1dd2e46 but for the reference assembly. The reference assembly for System.Memory on netcoreapp2.1 is significantly different since types have been pushed down into System.Runtime. We need to make sure that is used on netcoreapp2.1 to avoid any type conflicts. /cc @weshaggard @ahsonkhan +23837 area-System.Memory Changes in master with respect to UWP @JeremyKuhne added System.Memory inbox on UWP with https://github.com/dotnet/corefx/commit/1d3cc0417753bf0a436824abfeff9c3c1712f63f but I don't think that made it to release/uwp6.0. @JeremyKuhne did you intend to ship that in UWP6? If not, we should probably make sure it isn't marked as inbox there. We should also retarget master to something after UWP6 so we don't let things get out of sync (like we did with netcoreapp2.1 and I had to clean up later with https://github.com/dotnet/corefx/pull/23168). /cc @joperezr @weshaggard +23838 area-System.Collections ConcurrentDictionary: Reduced branching during GrowTable() Oh well, just some micro optimization for the GrowTable() method. I essentially got rid of one branch without touching the semantics of the method. I think [line 1766 in the new code](https://github.com/dotnet/corefx/compare/master...dnickless:ConcDictGrow1?expand=1#diff-f1285172a2a161542ccf657778f0852cR1766) can be removed, too, in order to micro optimize things even further if thou so wisheth. This would result in a slightly bigger newLength than MaxArrayLength (214643507**3** vs 214643507**1** to be precise) if that's acceptable. But that line will really just be called once per instance anyway and only in the case that the dictionary is really maxed out in bucket size... +23839 area-System.Collections ConcurrentDictionary: Faster check if lock array should be grown once it shouldn't be grown anymore If there was such a thing as a nano optimization this would be it. ;) In `Grow()` I'm setting the - previously readonly - _growLockArray flag to false if the lock array is about to grow to its full allowed size. From that point onwards the check if it should be grown even further during a `Grow()` operation comes down to just checking this one boolean variable as opposed to comparing the `tables._locks.Length < MaxLockNumber` on top of the boolean. Small change, small effect... +23840 area-System.Runtime Expose and add tests for span-based Guid methods Added tests for span-based Guid methods (ctor, TryWriteBytes, and TryFormat), largely based on existing tests for ctor, ToByteArray, and ToString. Exposed new span-based methods in the contract. Depends on https://github.com/dotnet/coreclr/pull/13323 +23841 area-System.Memory Expose {ReadOnly}Memory from System.Runtime Part of https://github.com/dotnet/corefxlab/issues/1711 Adding the following types: - Memory\ - ReadOnlyMemory\ - OwnedMemory\ - MemoryHandle - IRetainable Order of changes: 1) Add to mscorlib (https://github.com/dotnet/coreclr/pull/13583). 2) After the type has been added to mscorlib, add impl (for portable) and type forwarders to System.Memory (https://github.com/dotnet/corefx/pull/23701) and System.Runtime (this PR) here in corefx. 3) Remove impl from corefxlab and update uses/references in Pipelines/Buffers.Experimental. 4) Other changes/additions like review/add APIs from MemoryExtensions cc @shiftylogic, @KrzysztofCwalina, @davidfowl, @jkotas, @stephentoub, @AtsushiKan, @ericstj +23843 area-System.Diagnostics DiagnosticSource does not install with nuget 2.8.6 DiagnosticSource [pkgproj](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/pkg/System.Diagnostics.DiagnosticSource.pkgproj#L6) sets MinClientVersion to 2.8.6 ``` 2.8.6 ``` However nuget 2.8.6 does not support packages with netstandard target.: https://github.com/NuGet/Home/issues/3131 Minimum version that supports them is 2.12. The same problem is relevant for other packages that have 2.8.6 specified: https://github.com/dotnet/corefx/search?q=minClientVersion&type=Code&utf8=%E2%9C%93 Please advise what is the best way to fix that. Is there some default setting for minClientVersion? +23844 area-Serialization Make immutable collections serializable. All of the Immutable collections should support serialization. In particular they should support Data Contract Serialization so that they can be used with Service Fabric and other systems that require serialization. Hope this isn't a duplicate but I didn't see any other similar requests. +23846 area-System.Drawing CI: RHEL7, CentOS7 and Ubuntu 14.04 are running outdated versions of libgdiplus The CI servers running RHEL7, CentOS7 and Ubuntu 14.04 are running version 2.x of libgdiplus, causing some tests to fail because of bugs in that version of libgdiplus. These are currently being disabled on those OSes, but we should try to install a more recent version of libgdiplus on those machines. +23847 area-System.Runtime Some fields of RSAParameters are marked as NotSerialized "When RSAParameters is serialized by json.net, The private key is not included. It due to some fields of RSAParameters(D, Q, etc) are marked as NotSerialized. NotSerialized should means ""This field is meaningless for serialization"", not ""This field is too important so we couldn't do serialize for it""" +23849 area-System.Net Fix ArgumentException message in CookieContainer.Add . Currently the the method will throw the following exception when `cookie.Domain == null` ``` System.ArgumentException:“The parameter '{0}' cannot be an empty string.” ``` So I added `SR.Format` invocation to it. +23850 area-System.Security Expose Internal.Cryptography.KeyPropertyName publicly There are situations where they can come useful, for example https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/issues/480#issuecomment-327745106/. The are defined as internal here: https://github.com/dotnet/corefx/blob/bffef76f6af208e2042a2f27bc081ee908bb390b/src/System.Security.Cryptography.Cng/src/Internal/Cryptography/KeyPropertyName.cs#L13 And also here in `System.Security.Cryptograph.KeyPropertyName`, would be just as good to expose: https://github.com/Microsoft/referencesource/blob/90b323fe52bec428fe4bd5f007e9ead6b265d553/System.Core/System/Security/Cryptography/NCryptNative.cs#L139 +23851 area-System.Runtime remove dead strings (#23710) System.Runtime.Extensions\src\Resources\Strings.resx * Argument_PathFormatNotSupported * Arg_PathIllegal * Arg_PathIllegalUNC * InvalidOperation_Cryptography * Serialization_InsufficientState +23852 area-System.Reflection Ensure reflection APIs exist that can specify any single info _Carving this discussion out of #23762_ # Proposal Ensure methods exist that allow the user to specify a single info (specifically Method, Constructor, and Property) to reflection to activate and in so doing allow reflection to only activate and cache the minimum infos needed by the user. A bit of recent history: > This issue arose as part of a more general push to move useful APIs off of `TypeInfo` to more accessible locations. While considering what to do with the `TypeInfo.GetDeclaredXXX` family of APIs we though, if we do move them let's change their signatures so they're each able to specify each type of info they retrieve. The idea of moving the `GetDeclaredXXX` met with a lukewarm response and is not specifically what this issue is addressing. Here we address the proposal to ensure we have methods to return a single info. https://github.com/dotnet/corefx/issues/23762#issuecomment-327633532 @AtsushiKan --------------------- Right, I think we're on the same page. We want an api that lets you pass everything that guarantees a single (or zero) result. The existing api `Type.GetMethod(string name, int genericParameterCount, BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers)` comes pretty close. I know of at least two things it's missing: 1. Return type (e.g. the `operator explicit` case, though it's not limited to that of course.) 2. Custom modifiers on parameter types. You can overload on them too. The thing is, that for this to have any chance of getting approved, it really has to get it right. We've got so many overlapping apis to do the 99% job already - if it doesn't really solve something 100%, it's not going to be added. https://github.com/dotnet/corefx/issues/23762#issuecomment-327830616 @AtsushiKan --------------------- The uber-GetMethod is a much more ambitious effort (and much harder to justify on a cost-benefit basis - Reflection has been demented with regard to custom modifiers since its inception and it doesn't seem to have mattered much in the real world.) That can wait for another day. --------------------- So this may just be a place holder to collect any ideas about this for some future release. +23854 area-System.Reflection Move and make `TypeInfo.GetDeclaredXXX` APIs symmetric with `RuntimeReflectionExtensions.GetRuntimeXXX` _Carving this discussion out of #23762_ # Proposal Hold on. Let me try this again... +23855 area-Microsoft.CSharp NullReferenceException in ExpressionBinder.GroupToArgsBinder.LookForCandidates "**Repro Steps** Execute the following: * git clone -b updateToNetCore https://github.com/conniey/RazorEngine.git * cd RazorEngine * dotnet restore .\src\RazorEngine.NetCore.sln * dotnet build .\src\RazorEngine.NetCore.sln * dotnet test .\src\test\Test.RazorEngine.Core\Test.RazorEngine.Core.NetCore.csproj --no-build --filter ""FullyQualifiedName~RazorEngineService_TestEnumeratingDynamicObject"" --framework netcoreapp2.0 **Expected** It passes. It passes when executed on .NET 4.6.2 and used to work on .NET Core 2.0 preview. * dotnet test .\src\test\Test.RazorEngine.Core\Test.RazorEngine.Core.NetCore.csproj --no-build --filter ""FullyQualifiedName~RazorEngineService_TestEnumeratingDynamicObject"" **--framework net462** **Actual** Test fails with a NullReferenceException. I checked the output binaries for .NET 4.6.2 and .NET Core 2.0. They appear exactly the same, aside from references to .NET Framework in the first case and the .NET Core references in the other. (The files are output to a folder like: _%TEMP%\RazorEngine_\_.) ``` Test Name: RazorEngineService_TestEnumeratingDynamicObject Test FullName: Test.RazorEngine.RazorEngineServiceTestFixture.RazorEngineService_TestEnumeratingDynamicObject Test Source: D:\git\conniey\RazorEngine\src\test\Test.RazorEngine.Core\RazorEngineServiceTestFixture.cs : line 516 Test Outcome: Failed Test Duration: 0:00:00.114 Result Message: System.NullReferenceException : Object reference not set to an instance of an object. Result StackTrace: at Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder.GroupToArgsBinder.LookForCandidates() at Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder.BindMethodGroupToArgumentsCore(GroupToArgsBinderResult& pResults, BindingFlag bindFlags, ExprMemberGroup grp, Expr& args, Int32 carg, Boolean bindingCollectionAdd, Boolean bHasNamedArgumentSpecifiers) at Microsoft.CSharp.RuntimeBinder.Semantics.ExpressionBinder.BindMethodGroupToArguments(BindingFlag bindFlags, ExprMemberGroup grp, Expr args) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.BindCall(ICSharpInvokeOrInvokeMemberBinder payload, Expr callingObject, ArgumentObject[] arguments, LocalVariableSymbol[] locals) at Microsoft.CSharp.RuntimeBinder.CSharpInvokeMemberBinder.DispatchPayload(RuntimeBinder runtimeBinder, ArgumentObject[] arguments, LocalVariableSymbol[] locals) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.BindCore(ICSharpBinder payload, Expression[] parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.Bind(DynamicMetaObjectBinder payload, Expression[] parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.BinderHelper.Bind(DynamicMetaObjectBinder action, RuntimeBinder binder, DynamicMetaObject[] args, IEnumerable`1 arginfos, DynamicMetaObject onBindingError) at Microsoft.CSharp.RuntimeBinder.CSharpInvokeMemberBinder.FallbackInvokeMember(DynamicMetaObject target, DynamicMetaObject[] args, DynamicMetaObject errorSuggestion) at System.Dynamic.DynamicMetaObject.BindInvokeMember(InvokeMemberBinder binder, DynamicMetaObject[] args) at System.Dynamic.InvokeMemberBinder.Bind(DynamicMetaObject target, DynamicMetaObject[] args) at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[] args, ReadOnlyCollection`1 parameters, LabelTarget returnLabel) at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args) at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0) at RazorEngine.Compilation.ImpromptuInterface.Optimization.InvokeHelper.InvokeMemberTargetType[TTarget,TReturn](CallSite& callsite, Type binderType, Int32 knownType, LazyBinder binder, String_OR_InvokeMemberName name, Boolean staticContext, Type context, String[] argNames, TTarget target, Object[] args) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\InvokeHelper.cs:line 317 at RazorEngine.Compilation.ImpromptuInterface.Optimization.InvokeHelper.InvokeMember[TReturn](CallSite& callsite, Type binderType, Int32 knownType, LazyBinder binder, String_OR_InvokeMemberName name, Boolean staticContext, Type context, String[] argNames, Object target, Object[] args) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\InvokeHelper-Regular.cs:line 298 at RazorEngine.Compilation.ImpromptuInterface.Optimization.InvokeHelper.InvokeMemberCallSite(Object target, String_OR_InvokeMemberName name, Object[] args, String[] tArgNames, Type tContext, Boolean tStaticContext, CallSite& callSite) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\InvokeHelper-Regular.cs:line 445 at RazorEngine.Compilation.ImpromptuInterface.Impromptu.InvokeMember(Object target, String_OR_InvokeMemberName name, Object[] args) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\Impromtu.cs:line 179 at RazorEngine.Compilation.ImpromptuInterface.Dynamic.Invocation.Invoke(Object target, Object[] args) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\Invocation.cs:line 242 at RazorEngine.Compilation.ImpromptuInterface.Dynamic.Invocation.InvokeWithStoredArgs(Object target) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\Invocation.cs:line 302 at RazorEngine.Compilation.RazorDynamicObject.MarshalWrapper.GetResult(Invocation invocation) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\RazorDynamicObject.cs:line 140 at RazorEngine.Compilation.RazorDynamicObject.RemoteInvoke(Invocation invocation, Object& result) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\RazorDynamicObject.cs:line 462 at RazorEngine.Compilation.RazorDynamicObject.TryInvokeMember(InvokeMemberBinder binder, Object[] args, Object& result) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\RazorDynamicObject.cs:line 600 at CallSite.Target(Closure , CallSite , Object ) at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0) at ActLike_IList`1_36f0a2eb9ada4306abe097de77b83502.System.Collections.IEnumerable.GetEnumerator() at CompiledRazorTemplates.Dynamic.RazorEngine_cab742326b86467eb2301cbfdbe904d9.d__1.MoveNext() in C:\Users\conniey\AppData\Local\Temp\RazorEngine_hudttqnr.3fz\CompiledRazorTemplates.Dynamic.RazorEngine_cab742326b86467eb2301cbfdbe904d9.cs:line 3 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at RazorEngine.Templating.TemplateBase.d__32.MoveNext() in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\TemplateBase.cs:line 230 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at RazorEngine.Templating.RazorEngineCore.d__12.MoveNext() in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineCore.cs:line 155 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineService.cs:line 278 at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineService.cs:line 257 at RazorEngine.Templating.DynamicWrapperService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\DynamicWrapperService.cs:line 102 at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 142 at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.b__0(TextWriter writer) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 254 at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 222 at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 254 at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String templateSource, String name, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 326 at Test.RazorEngine.RazorEngineServiceTestFixture.<>c.b__22_0(IRazorEngineService service) in D:\git\conniey\RazorEngine\src\test\Test.RazorEngine.Core\RazorEngineServiceTestFixture.cs:line 527 at Test.RazorEngine.RazorEngineServiceTestFixture.RunTestHelper(Action`1 test, Action`1 withConfig) in D:\git\conniey\RazorEngine\src\test\Test.RazorEngine.Core\RazorEngineServiceTestFixture.cs:line 49 at Test.RazorEngine.RazorEngineServiceTestFixture.RazorEngineService_TestEnumeratingDynamicObject() in D:\git\conniey\RazorEngine\src\test\Test.RazorEngine.Core\RazorEngineServiceTestFixture.cs:line 517 ```" +23856 area-Microsoft.CSharp ArgumentOutOfRangeException in RuntimeBinder.Syntax.NameTable.Add(String key, Int32 length) when invoking dynamic object "**Repro Steps** Execute the following: * git clone -b updateToNetCore https://github.com/conniey/RazorEngine.git * dotnet restore .\src\RazorEngine.NetCore.sln * dotnet build .\src\RazorEngine.NetCore.sln * dotnet test .\src\test\Test.RazorEngine.Core\Test.RazorEngine.Core.NetCore.csproj --no-build --filter ""FullyQualifiedName~Issue67_CollectionOfAnonymous"" --framework netcoreapp2.0 **Expected** It passes. It passes when executed on .NET 4.6.2 and used to work on .NET Core 2.0 preview. * dotnet test .\src\test\Test.RazorEngine.Core\Test.RazorEngine.Core.NetCore.csproj --no-build --filter ""FullyQualifiedName~Issue67_CollectionOfAnonymous"" **--framework net462** **Actual** Test fails with an ArgumentOutOfRangeException. I checked the output binaries for .NET 4.6.2 and .NET Core 2.0. They appear exactly the same, aside from references to .NET Framework in the first case and the .NET Core references in the other. (The files are output to a folder like: _%TEMP%\RazorEngine_\_.) ``` Test Name: Issue67_CollectionOfAnonymous Test FullName: RazorEngine.Tests.TestTypes.Issues.Release_3_6_TestFixture.Issue67_CollectionOfAnonymous Test Source: D:\git\conniey\RazorEngine\src\test\Test.RazorEngine.Core\Issues\Release_3_6_TestFixture.cs : line 81 Test Outcome: Failed Test Duration: 0:00:00.579 Result Message: System.ArgumentOutOfRangeException : Length cannot be less than zero. Parameter name: length Result StackTrace: at System.String.Substring(Int32 startIndex, Int32 length) at Microsoft.CSharp.RuntimeBinder.Syntax.NameTable.Add(String key, Int32 length) at Microsoft.CSharp.RuntimeBinder.Syntax.NameManager.Add(String key, Int32 length) at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetName(Type type) at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.InitializeCallingContext(ICSharpBinder payload) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.BindCore(ICSharpBinder payload, Expression[] parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.RuntimeBinder.Bind(DynamicMetaObjectBinder payload, Expression[] parameters, DynamicMetaObject[] args, DynamicMetaObject& deferredBinding) at Microsoft.CSharp.RuntimeBinder.BinderHelper.Bind(DynamicMetaObjectBinder action, RuntimeBinder binder, DynamicMetaObject[] args, IEnumerable`1 arginfos, DynamicMetaObject onBindingError) at Microsoft.CSharp.RuntimeBinder.CSharpInvokeMemberBinder.FallbackInvokeMember(DynamicMetaObject target, DynamicMetaObject[] args, DynamicMetaObject errorSuggestion) at System.Dynamic.DynamicMetaObject.BindInvokeMember(InvokeMemberBinder binder, DynamicMetaObject[] args) at System.Dynamic.InvokeMemberBinder.Bind(DynamicMetaObject target, DynamicMetaObject[] args) at System.Dynamic.DynamicMetaObjectBinder.Bind(Object[] args, ReadOnlyCollection`1 parameters, LabelTarget returnLabel) at System.Runtime.CompilerServices.CallSiteBinder.BindCore[T](CallSite`1 site, Object[] args) at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0) at RazorEngine.Compilation.ImpromptuInterface.Optimization.InvokeHelper.InvokeMemberTargetType[TTarget,TReturn](CallSite& callsite, Type binderType, Int32 knownType, LazyBinder binder, String_OR_InvokeMemberName name, Boolean staticContext, Type context, String[] argNames, TTarget target, Object[] args) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\InvokeHelper.cs:line 317 at RazorEngine.Compilation.ImpromptuInterface.Optimization.InvokeHelper.InvokeMember[TReturn](CallSite& callsite, Type binderType, Int32 knownType, LazyBinder binder, String_OR_InvokeMemberName name, Boolean staticContext, Type context, String[] argNames, Object target, Object[] args) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\InvokeHelper-Regular.cs:line 298 at RazorEngine.Compilation.ImpromptuInterface.Optimization.InvokeHelper.InvokeMemberCallSite(Object target, String_OR_InvokeMemberName name, Object[] args, String[] tArgNames, Type tContext, Boolean tStaticContext, CallSite& callSite) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\InvokeHelper-Regular.cs:line 445 at RazorEngine.Compilation.ImpromptuInterface.Impromptu.InvokeMember(Object target, String_OR_InvokeMemberName name, Object[] args) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\Impromtu.cs:line 179 at RazorEngine.Compilation.ImpromptuInterface.Dynamic.Invocation.Invoke(Object target, Object[] args) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\Invocation.cs:line 242 at RazorEngine.Compilation.ImpromptuInterface.Dynamic.Invocation.InvokeWithStoredArgs(Object target) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\DynamicObject\Impromtu\Invocation.cs:line 302 at RazorEngine.Compilation.RazorDynamicObject.MarshalWrapper.GetResult(Invocation invocation) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\RazorDynamicObject.cs:line 140 at RazorEngine.Compilation.RazorDynamicObject.RemoteInvoke(Invocation invocation, Object& result) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\RazorDynamicObject.cs:line 462 at RazorEngine.Compilation.RazorDynamicObject.TryInvokeMember(InvokeMemberBinder binder, Object[] args, Object& result) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Compilation\RazorDynamicObject.cs:line 600 at CallSite.Target(Closure , CallSite , Object ) at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0) at ActLike_IEnumerator`1_9c672819f42145cd95938ca2764cccd5.MoveNext() at CompiledRazorTemplates.Dynamic.RazorEngine_2b03143873ed48859513f94d70844003.d__1.MoveNext() in C:\Users\conniey\AppData\Local\Temp\RazorEngine_0mbewxcu.exl\CompiledRazorTemplates.Dynamic.RazorEngine_2b03143873ed48859513f94d70844003.cs:line 1 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at RazorEngine.Templating.TemplateBase.d__32.MoveNext() in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\TemplateBase.cs:line 230 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at RazorEngine.Templating.RazorEngineCore.d__12.MoveNext() in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineCore.cs:line 155 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at RazorEngine.Templating.RazorEngineService.Run(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineService.cs:line 278 at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineService.cs:line 257 at RazorEngine.Templating.DynamicWrapperService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\DynamicWrapperService.cs:line 102 at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 142 at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.b__0(TextWriter writer) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 254 at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 222 at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 254 at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String templateSource, String name, Type modelType, Object model, DynamicViewBag viewBag) in D:\git\conniey\RazorEngine\src\source\RazorEngine.Core\Templating\RazorEngineServiceExtensions.cs:line 326 at RazorEngine.Tests.TestTypes.Issues.Release_3_6_TestFixture.<>c.b__1_0(IRazorEngineService service) in D:\git\conniey\RazorEngine\src\test\Test.RazorEngine.Core\Issues\Release_3_6_TestFixture.cs:line 95 at Test.RazorEngine.RazorEngineServiceTestFixture.RunTestHelper(Action`1 test, Action`1 withConfig) in D:\git\conniey\RazorEngine\src\test\Test.RazorEngine.Core\RazorEngineServiceTestFixture.cs:line 49 at RazorEngine.Tests.TestTypes.Issues.Release_3_6_TestFixture.Issue67_CollectionOfAnonymous() in D:\git\conniey\RazorEngine\src\test\Test.RazorEngine.Core\Issues\Release_3_6_TestFixture.cs:line 82 ```" +23857 area-Serialization Area-Serialization Sprint 124 The issue is for tracking issues to be done in sprint 124 (due by 9/29/2017) +23859 area-Serialization Documentation of Sgen on Core Preview We need to have documentation for the SGEN on Core preview. Per our discussion, here's the action items for this issue, - [x] Create a .md file in https://github.com/dotnet/core/tree/master/samples for instruction and samples. - [x] Open an issue in [dotnet/announcements](https://github.com/dotnet/announcements) for the announcement of SGen. The issue would be locked for discussion. - [x] Open an issue in [dotnet/corefx](https://github.com/dotnet/corefx) for discussion and user feedback. +23861 area-System.Text release/2.0.0 backport of REGEX_DEFAULT_MATCH_TIMEOUT (#23666) Change #23666 Fixed #15173 waiting for shiproom approval +23862 area-System.Memory Productizing APIs for {ReadOnly}Memory and friends "**Open issues to resolve as part of productizing:** 1. We changed the AsSpan() method into an abstract property named Span. - When do we intend to use properties versus methods for span/memory related conversions? 2. Should we add the ""bulk"" operations that are available on Span\ to Memory\ as well such as the ones listed below: - Where would the extension methods for Memory go? Its own MemoryExtensions class like SpanExtensions or should we merge them both into one? Given these are extension methods (and the classes won't appear in user code), I would say they should go in separate MemoryExtensions class. ```C# // instance methods public struct Memory { public void CopyTo(Memory destination); public bool TryCopyTo(Memory destination); public void Fill(T value); public void Clear(); } public struct ReadOnlyMemory { public void CopyTo(Memory destination); public bool TryCopyTo(Memory destination); } // extension methods public static class MemoryExtensions { public static int IndexOf(this Memory memory, T value); public static int IndexOf(this Memory memory, ReadOnlyMemory value); public static int IndexOf(this ReadOnlyMemory memory, T value); public static int IndexOf(this ReadOnlyMemory memory, ReadOnlyMemory value); public static bool SequenceEqual(this Memory first, ReadOnlyMemory second); public static bool SequenceEqual(this ReadOnlyMemory first, ReadOnlyMemory second); public static void CopyTo(this T[] array, Memory destination); public static Memory AsMemory(this T[] array); public static Memory AsMemory(this ArraySegment arraySegment); public static ReadOnlyMemory AsReadOnlyMemory(this T[] array); public static ReadOnlyMemory AsReadOnlyMemory(this ArraySegment arraySegment); } ```
Here are the Memory APIs that have already gone through API review They were added here: - https://github.com/dotnet/coreclr/pull/13583 (mscorlib) - https://github.com/dotnet/corefx/pull/23701 (System.Memory) - https://github.com/dotnet/corefx/pull/23841 (System.Runtime) ```C# namespace System { public struct Memory { public static Memory Empty { get; } public Memory(T[] array); public Memory(T[] array, int start, int length); public bool IsEmpty { get; } public int Length { get; } [EditorBrowsable(EditorBrowsableState.Never)] public override bool Equals(object obj); public bool Equals(Memory other); [EditorBrowsable(EditorBrowsableState.Never)] public override int GetHashCode(); public static implicit operator Memory(T[] array); public static implicit operator Memory(ArraySegment arraySegment); public static implicit operator ReadOnlyMemory(Memory memory); public Memory Slice(int start); public Memory Slice(int start, int length); public Span Span { get;} public unsafe Buffers.MemoryHandle Retain(bool pin = false); public T[] ToArray(); public bool TryGetArray(out ArraySegment arraySegment); } public struct ReadOnlyMemory { public static ReadOnlyMemory Empty { get;} public ReadOnlyMemory(T[] array); public ReadOnlyMemory(T[] array, int start, int length); internal ReadOnlyMemory(Buffers.OwnedMemory owner, int index, int length); public bool IsEmpty { get;} public int Length { get;} [EditorBrowsable(EditorBrowsableState.Never)] public override bool Equals(object obj); public bool Equals(ReadOnlyMemory other); [EditorBrowsable(EditorBrowsableState.Never)] public override int GetHashCode(); public static implicit operator ReadOnlyMemory(T[] array); public static implicit operator ReadOnlyMemory(ArraySegment arraySegment); public ReadOnlyMemory Slice(int start); public ReadOnlyMemory Slice(int start, int length); public ReadOnlySpan Span { get;} public unsafe Buffers.MemoryHandle Retain(bool pin = false); public T[] ToArray(); [EditorBrowsable(EditorBrowsableState.Never)] public bool DangerousTryGetArray(out ArraySegment arraySegment); } } ``` ```C# namespace System.Buffers { public unsafe struct MemoryHandle : IDisposable { public MemoryHandle(IRetainable owner, void* pointer = null, GCHandle handle = default(GCHandle)); public void* Pointer { get; } public bool HasPointer { get; } public void Dispose(); } public interface IRetainable { bool Release(); void Retain(); } public abstract class OwnedMemory : IDisposable, IRetainable { public Memory Memory { get; } public abstract bool IsDisposed { get; } protected abstract bool IsRetained { get; } public abstract int Length { get; } public abstract Span Span { get; } public void Dispose(); protected abstract void Dispose(bool disposing); public abstract MemoryHandle Pin(); public abstract bool Release(); public abstract void Retain(); protected internal abstract bool TryGetArray(out ArraySegment arraySegment); } } ```
(https://github.com/dotnet/corefx/blob/master/src/System.Memory/ref/System.Memory.cs#L149) cc @weshaggard, @KrzysztofCwalina, @shiftylogic, @stephentoub, @terrajobst, @karelz, @jkotas, @davidfowl " +23863 area-System.Memory Create usage guidelines for lifetime management of Memory From: https://github.com/dotnet/corefx/pull/23701#discussion_r136669166 The architecture overview doc will clarify the semantics and usage of MemoryHandle and OwnedMemory\ Retain, Release, and Dipose. cc @KrzysztofCwalina, @shiftylogic +23865 area-System.Linq Fix LargeArrayBuilder.CopyTo returning incorrect end-of-copy position Porting #23817 to release 2.0 branch. Fixes #23680 +23866 area-Serialization Enable SgenTests Enable Sgen Test. +23867 area-System.Xml Xml schema dependency removal for AOT compilers This changes fixes a size issue in AOT compiled code which uses XmlReader. Using XmlReader for just reading XML without validation still pulls in all of the XmlSchema code. This makes the AOT compilation slow (it's more than 400KB of IL) and the resulting app is larger (.NET Native X86 measures the difference at more than 800KB of native code). The change relies on an assumption, that apps which don't need validation will not call the XmlReaderSettings.ValidationType setter. As such it can be reduced away and the change then ties all the dependencies needed for validation to that setter. So if the setter itself is not called XmlSchema is not pulled in. Verified that the change does reduce the app size and that XmlSchema is not in final app anymore. +23868 area-System.Net Remove duplicate bug ids in source code. fixes #23140 These tests will anyways be skipped by failing the conditional theory on each individual test in the base test class. +23869 area-Serialization Fix 4 Serialization Tests Fix 4 serialization tests. Please see details in each individual issues. Fix #22776 Fix #22777 Fix #22778 Fix #22779` +23870 area-System.Memory DCR: Review ReferenceCountedDisposable as an alternative to IRetainable _From @ahsonkhan on September 7, 2017 20:26_ Design Change Request (DCR) From https://github.com/dotnet/coreclr/pull/13583#issuecomment-325162865: > :bulb: My strongest recommendation here would be to carefully review the semantics of [`ReferenceCountedDisposable`](https://github.com/dotnet/roslyn/blob/master/src/Workspaces/Core/Portable/Utilities/ReferenceCountedDisposable.cs) in Roslyn and consider how they might be usable in these scenarios as an alternative to `IRetainable`. This type provides strong guarantees in concurrent code and eliminates many concerns related to ownership when both `IDisposable` and `IRetainable` are at play. It also provides a weak reference type with strong semantic guarantees. cc @KrzysztofCwalina, @shiftylogic _Copied from original issue: dotnet/coreclr#13840_ +23872 area-System.Runtime Expose/test String.Create span-based method Depends on https://github.com/dotnet/coreclr/pull/13849 and https://github.com/dotnet/corert/pull/4467 Fixes https://github.com/dotnet/corefx/issues/22380 +23873 area-System.Linq Faster Any() Linq query _From @banjouuid on September 7, 2017 15:38_ # Could Any() query be faster? Currently the Any() Linq query as shown in the [source](https://source.dot.net/#System.Linq/System/Linq/AnyAll.cs) calls a using and then gets the enumerator. I'm just guessing if it makes sense to add this extension to ICollection that would be faster: `public static bool Any(this ICollection source) { if (source == null) => throw Error.ArgumentNull(nameof(source)); return source.Count > 0; }` Regards. _Copied from original issue: dotnet/core#949_ +23874 area-System.IO [API] StreamWriter .ctor pooling overloads ## Motivation As `StreamWriter` requires buffers that live longer than a function lifetime (i.e. buffer lifetime is longer than single entry function scope - class field vs local); there isn't a way to transparently use the `ArrayPool` without regressing either performance or safety. As a result of this the option is to make buffer pooling a conscious opt-in choice by the user; so it is safe by default and can be more performant on the opt-in. ## Proposal https://github.com/dotnet/corefx/issues/23874#issuecomment-333624280 ```csharp public partial class StreamWriter { static int DefaultBufferSize { get; } static int DefaultFileBufferSize { get; } static Encoding DefaultEncoding { get; } StreamWriter(Stream stream, Encoding encoding = DefaultEncoding, int bufferSize = DefaultBufferSize, bool leaveOpen = false, ArrayPool charPool = null, ArrayPool bytePool = null); } ``` ### Previous proposal ```csharp public partial class StreamWriter { StreamWriter(Stream stream, bool useBufferPooling) StreamWriter(Stream stream, bool useBufferPooling, Encoding encoding) StreamWriter(Stream stream, bool useBufferPooling, Encoding encoding, int bufferSize) StreamWriter(Stream stream, bool useBufferPooling, Encoding encoding, int bufferSize, bool leaveOpen) } ``` ## Comment Similar pattern could be extended to other areas with longer lived buffers, like `FileStream` etc /cc @stephentoub @JeremyKuhne @jkotas @KrzysztofCwalina +23875 area-System.Reflection Does CoreFX library support NI file, including both FNV and R2R ? Does CoreFX library support NI file, including both FNV and R2R? If not, what types of file does CoreFX library support for reflection ? e.g. C# managed dll, native dll(Windows), and etc. For example, such as `PEReader.GetMetadataReader` or `GetCustomAttributes` is supporting NI file? If PEReader accepts a stream from a pe file and the pe file is FNV or R2R NI file, all corefx apis are handling the case? p.s. the reason why I ask about that, `System.Reflection.Metadata.Decoding.Tests.CustomAttributeDecoderTests.TestCustomAttributeDecoder` in `System.Reflection.Metadata.Tests'` always is failed on NI overlay + NI TC-FNV&R2R. And some tcs are failed like it. /cc @dotnet/arm32-contrib @parjong @hqueue +23876 area-System.Net "Test: System.Net.NetworkInformation.Tests.PingTest/SendPings_ReuseInstance_Hostname failed with ""System.Net.NetworkInformation.PingException : An exception occurred during a Ping request""" Opened on behalf of @Jiayili1 The test `System.Net.NetworkInformation.Tests.PingTest/SendPings_ReuseInstance_Hostname` has failed. System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. ---- System.Net.NetworkInformation.PingException : An exception occurred during a Ping request. Stack Trace: at System.Net.NetworkInformation.Ping.d__48.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs:line 364 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Tests.PingTest.d__15.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Ping/tests/FunctionalTests/PingTest.cs:line 349 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Net.NetworkInformation.Ping.d__60.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs:line 210 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__58.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.Unix.cs:line 31 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.NetworkInformation.Ping.d__48.MoveNext() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.Ping/src/System/Net/NetworkInformation/Ping.cs:line 353 Build : Master - 20170908.01 (Core Tests) Failing configurations: - OSX.1012.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170908.01/workItem/System.Net.Ping.Functional.Tests/analysis/xunit/System.Net.NetworkInformation.Tests.PingTest~2FSendPings_ReuseInstance_Hostname +23877 area-System.Drawing System.Drawing.Common.Tests failed Failed to generate the test results. Failed configuration: OuterLoop_netcoreapp_ubuntu14.04_release Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_ubuntu14.04_release/lastCompletedBuild/ /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu14.04_release/Tools/tests.targets(483,5): error: One or more tests failed while running tests from 'System.Drawing.Common.Tests' please check /mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu14.04_release/bin/tests/System.Drawing.Common.Tests/netcoreapp-Linux-Release-x64/testResults.xml for details! [mnt/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_ubuntu14.04_release/src/System.Drawing.Common/tests/System.Drawing.Common.Tests.csproj] +23878 area-System.Data System.Data.SqlClient.Stress.Tests failed to generate the test result System.Data.SqlClient.Stress.Tests failed to generate the test result Failed configuration: Windows.10.Amd64-arm Detail: https://mc.dot.net/#/product/netcore/uwp60/source/official~2Fcorefx~2Frelease~2Fuwp6.0~2F/type/test~2Ffunctional~2Filc~2F/build/20170908.01/workItem/System.Data.SqlClient.Stress.Tests/wilogs ~~~ 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : Unhandled Exception: System.InvalidOperationException: Method failed with unexpected error code 122. 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at System.Security.AccessControl.NativeObjectSecurity.Persist(String name, SafeHandle handle, AccessControlSections includeSections, Object exceptionContext) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at System.Security.AccessControl.NativeObjectSecurity.Persist(SafeHandle handle, AccessControlSections includeSections, Object exceptionContext) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at System.Security.AccessControl.NativeObjectSecurity.Persist(SafeHandle handle, AccessControlSections includeSections) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at System.Security.AccessControl.RegistrySecurity.Persist(SafeRegistryHandle hKey, String keyName) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at Microsoft.Win32.RegistryKey.SetAccessControl(RegistrySecurity registrySecurity) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at Microsoft.VisualStudio.Telemetry.RegistryPropertyBag.SetAccessControl(RegistryKey key) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at Microsoft.VisualStudio.Telemetry.RegistryPropertyBag.<>c__DisplayClass14_0.b__0() 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at Microsoft.VisualStudio.Telemetry.RegistryPropertyBag.SafeRegistryCall(Action action) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at Microsoft.VisualStudio.Telemetry.RegistryPropertyBag.SetProperty(String propertyName, Object value) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at Microsoft.VisualStudio.Telemetry.RegistryPropertyBag.SetProperty(String propertyName, String value) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at Microsoft.VisualStudio.Telemetry.MACInformationProvider.<>c__DisplayClass13_0.b__0(String data) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at Microsoft.VisualStudio.Telemetry.ProcessTools.<>c__DisplayClass1_0.b__1(Object sender, EventArgs e) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at System.Diagnostics.Process.OnExited() 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at System.Diagnostics.Process.RaiseOnExited() 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at System.Diagnostics.Process.CompletionCallback(Object context, Boolean wasSignaled) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at System.Threading._ThreadPoolWaitOrTimerCallback.WaitOrTimerCallback_Context(Object state, Boolean timedOut) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at System.Threading._ThreadPoolWaitOrTimerCallback.WaitOrTimerCallback_Context_f(Object state) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 2017-09-08 02:00:15,917: INFO: proc(54): run_and_log_output: Output: MSBUILD : error : at System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(Object state, Boolean timedOut) ~~~ +23879 area-System.Memory Support casting ReadOnlyMemory to Memory # Latest Proposal From https://github.com/dotnet/corefx/issues/23879#issuecomment-340861229 ```C# namespace System.Runtime.InteropServices { public static class MemoryMarshal { public static bool TryGetArray(ReadOnlyMemory readOnlyMemory, out ArraySegment arraySegment); public static Memory AsMemory(ReadOnlyMemory readOnlyMemory); } } ``` # Original Proposal We already have `DangerousTryGetArray(...)` on `ReadOnlyMemory`, as well as `rom.Span.DangerousGetPinnableReference()`, so it's possible to get writable access to the underlying data. But there's currently no efficient way to get a `Memory` from a `ReadOnlyMemory`. This is relevant for cases where a shared data structure or API needs to be usable from APIs that work with either `Memory` or `ReadOnlyMemory`. For example, Socket.SendAsync will take a `ReadOnlyMemory`, but the underlying SocketAsyncEventArgs type only works with `Memory`, because it needs to support both read and write APIs. If there's no way to efficiently convert a `ReadOnlyMemory` to a `Memory`, we'll need to increase the size of such objects to store both, and potentially add branching in a variety of places to make sure the right underlying field is being used. I propose we add the following method to `ReadOnlyMemory`: ```C# public Memory DangerousAsMemory(); ``` cc: @KrzysztofCwalina, @ahsonkhan +23881 area-System.Memory ReadOnlySpan.DangerousGetPinnableReference should return a readonly reference Should ```csharp namespace System { public struct ReadOnlySpan { public ref T DangerousGetPinnableReference() ``` be ```csharp public ref readonly T DangerousGetPinnableReference() ↑ ``` ? That would make it slightly less dangerous. +23882 area-System.Reflection Expose the recently approved Reflection apis in contracts Fixes https://github.com/dotnet/corefx/issues/22866 Fixes https://github.com/dotnet/corefx/issues/16567 +23883 area-System.Reflection Add IsGenericTypeParameter and IsGenericMethodParameter to System.Type "# Proposed apis ```c# class Type { public virtual bool IsGenericTypeParameter => IsGenericParameter && DeclaringMethod == null; public virtual bool IsGenericMethodParameter => IsGenericParameter && DeclaringMethod != null; } class TypeDelegator (and TypeBuilder,GenericTypeParameterBuilder,EnumBuilder) { public override bool IsGenericTypeParameter { get; } public override bool IsGenericMethodParameter { get; } } ``` These properties distinguish between generic parameters introduced by types and generic parameters introduced by methods. # Rationale Currently, the only way to distinguish generic parameters on types from generic parameters on methods is by testing whether `DeclaringMethod` returns null. This idiom will not work with the recently added Signature Types (https://github.com/dotnet/corefx/issues/16567) as these types do not have a `MethodInfo` to return and will always throw on a `DeclaringMethod` call. While one could work around this today by writing this: ```c# IsGenericMethodParameter => IsGenericParameter && (IsSignatureType || DeclaringMethod != null) ``` this is not very intuitive, nor is it future-proof as it's not inconceivable that in the future, we may add the ability to create signature types representing unbounded generic type parameters. Even for regular types, these new properties are more succinct, expressive and allow properly factored underlying implementations (CoreRT) to override with the maximally performant ""return true/false"" implementations, eliminating a virtual call. Signature Types, of course, will have to override. # Naming Naming is consistent with the recently added ```c# Type MakeGenericMethodParameter(int position) ``` api." +23884 area-System.Memory Support casting ReadOnlySpan to Span # Proposal ``` struct ReadOnlySpan { public Span DangerousAsSpan(); } ``` I have not found a workable way to do this (at least one that works across both fast and slow Span.) This functionality is needed to bridge code that uses ReadOnlySpan with code that supports both reading and writing (Span). +23886 area-System.Net WebRequest.DefaultWebProxy: Set doesn't work without a previous Get Unless we do an unnecessary Get() on WebRequest.DefaultWebProxy, any Set() done will not be honored. This is especially a problem on Linux, where DefaultWebProxy throws PlatformNotSupportedException(). This in turn breaks libraries like WindowsAzure.Storage which fail unless the Get() is called first and then WebRequest.DefaultWebProxy is set to null. This fix avoids the unnecessary Get() by setting the already initialized flag sent to the LazyInitializer. // bug created to track 2.0 port https://github.com/dotnet/corefx/pull/22720 +23887 area-System.Diagnostics Process.ProcessName is expensive on Windows It causes an enumeration of all processes just to get the name of the current process https://source.dot.net/#System.Diagnostics.Process/System/Diagnostics/Process.cs,900 https://source.dot.net/#System.Diagnostics.Process/System/Diagnostics/ProcessManager.Windows.cs,53 On Windows it could call just GetProcessName. There may be other places it could avoid examining all processes just to get information about the current process. (All this is arguably fallout of giving the Process class three responsibilities -- spawning processes, representing the current process, and accessing general process information) Feedback from internal service that calls `Process.ProcessName` often for logging on Windows. +23889 area-Infrastructure Tests for OOB packages in NETFX need to run against OOB binaries. "@davidsh words: ""This test is failing now because it is running against the ""Full Framework"". But for System.Net.Http tests, even running against ""Full Framework"" means that it should use the OOB System.Net.Http and not the inbox System.Net.Http from the .NET Framework. Something has changed in how the test binaries are laid out and consumed. The tests appear to be using the inbox System.Net.Http binary and not the OOB System.Net.Http binary (net46 build from package). I think this all broke when individual packages for contracts (such as System.Net.Http) went away and were replaced with mega-packages."" Please see: https://github.com/dotnet/corefx/issues/23702#issuecomment-326674472 cc: @weshaggard @ericstj @karelz " +23890 area-Infrastructure Move Windows performance jobs to Windows Server 2016 machine pool. +23891 area-Infrastructure Move Windows performance jobs to Windows Server 2016. +23892 area-System.Net Disable sockets test always failing on Desktop "System.Net.Sockets.Tests.AcceptTask Accept_WithTargetSocket_ReuseAfterDisconnect_Success ""System.InvalidOperationException : acceptSocket: The socket must not be bound or connected."" #22808" +23893 area-System.Runtime Add more DateTime parsing tests As part of adding span support to DateTime, I'm adding some more tests. This increases code coverage of DateTimeParse from a bit over 40% to a bit over 60%. cc: @tarekgh, @joperezr, @AlexGhiondea +23894 area-Infrastructure Automatic updating of buildtools version. With this change, BuildTools will automatically be updated to the latest available version. +23895 area-Infrastructure Revert PreReleaseLabel CC @weshaggard +23896 area-Infrastructure Reset list of built packages for 1.0.7 servicing cc: @weshaggard +23897 area-System.Runtime DbNull serialization with tests and forward Fixes https://github.com/dotnet/corefx/issues/23398 Waiting for new coreclr build ingestion: https://github.com/dotnet/coreclr/pull/13845 +23898 area-System.Threading Task.Yield() is missing a .ConfigureAwait(bool) option As there are legitimate uses of `Task.Yield()` and legit uses of `Task.ConfigureAwait(false)`, it's odd that there is no API to allow `await Task.Yield().ConfigureAwait(false);`. Anyone who must yield back to the caller but does not want to resume on the caller's `SynchronizationContext` has no convenient API to enable that. In [vs-threading we just filled this gap](https://github.com/Microsoft/vs-threading/pull/182/files) ourselves, but it seems like a worthwhile addition to .NET itself. See also: https://stackoverflow.com/questions/28309185/task-yield-in-library-needs-configurewaitfalse # Proposal ```C# public struct YieldAwaitable { public ConfiguredYieldAwaitable ConfigureAwait(bool continueOnCapturedContext); } ``` Or an equivalent extension method as we've defined in vs-threading. +23899 area-System.Data IDbDataParameter.Precision is broken for SqlClient 4.3.0 The implementations of IDbParameter.Precision and IDBParameter.Scale in System.Data.Common.DbParameter got replaced with dummy implementations by commit 7888677b3c53596085c2fa53860d9a0519eeecfd. This demo application reproduces the problem in .NET Core 2.0 but works just fine in .NET Core 1.1. Expected output: 19; got 0. [Program.zip](https://github.com/dotnet/corefx/files/1289338/Program.zip) +23900 area-Infrastructure Reset package list for 1.1.4 servicing release cc: @weshaggard +23901 area-System.Memory Adding log message containing actual number of compares for Span API tests This will help us get more info about intermittent failures like: https://github.com/dotnet/corefx/issues/23430 cc @AtsushiKan, @shiftylogic +23902 area-System.Data Fix IDbParamter.Precision for SqlClient Fixes #23899 +23905 area-System.Memory Enable S.R.CS.Unsafe and System.Memory tests for UAP "Fixes https://github.com/dotnet/corefx/issues/23406 **The Span tests fail for uapaot when we try to access the elements of a Span of a reference type like string using the provided indexer:** ```C# public static void TestingSpanReferenceTypeForUAPAOT() { ReadOnlySpan span1 = new byte[] { 1 }; byte temp1 = span1[0]; // successful ReadOnlySpan span2 = new string[] { ""1"" }; string temp2 = span2[0]; // fails with IndexOutOfRangeException } ``` ```xml span1) in D:\GitHub\Fork\corefx\src\System.Memory\tests\ReadOnlySpan\CtorArray.cs:line 66 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean wrapInTargetInvocationException, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall, Boolean parametersNeedCopyBack, ArgSetupState argSetupState, Object[] parametersOld, Object[] nullableCopyBackObjectsOld, Int32 curIndexOld, Object targetMethodOrDelegateOld, BinderBundle binderBundleOld, Object[] customBinderProvidedParametersOld, Object result, Exception e, Int32 i) in CallDynamicInvokeMethod:line 16707566 ]]> ``` **The Unsafe.RefAreSame test fails on uapaot:** ```C# public static void RefAreSame() { long[] a = new long[2]; Assert.True(Unsafe.AreSame(ref a[0], ref a[0])); // successful Assert.False(Unsafe.AreSame(ref a[0], ref a[1])); // fails } ``` ```xml ``` I am not sure why Span\ indexer (`ref T this[int index]`) and Unsafe.AreSame\(ref T left, ref T right) are failing on uapaot. Any ideas? cc @jkotas, @safern, @danmosemsft " +23907 area-System.Data Break out System.Data.DataSet and DataTable from System.Data.Common Most projects using System.Data.SqlClient have no need or use of DataSet or DataTable classes. It is to them about half a megabyte of junk they do not need and will never try to use, but it gets loaded because all this stuff references it. Most projects are better off using DataReader directly or EntityFramework which uses DataReader. The classes along with whatever depends on them should be broken out into another dll such as System.Data.DataSet. SqlDataAdapter would also need to get broken out into its own dll or it defeats the purpose. There is no point arguing this will break backwards compatibility. Backwards compatibility of System.Data.Common is already broken. Better to fix this soon before too much depends on it. +23908 area-System.Memory Marking {ReadOnly}Span as readonly structs Fixes issue https://github.com/dotnet/corefx/issues/23809 Related PR for coreclr: https://github.com/dotnet/coreclr/pull/13886 cc @KrzysztofCwalina, @VSadov +23911 area-System.Reflection Add a Create method overload for the System.Reflection.Dispatchpro… Add a Create method overload for the System.Reflection.Dispatchproxy class +23912 area-Infrastructure Intermittent build failure: The type or namespace name 'Policy' does not exist in the namespace 'System.Security' _From @sdmaclea on September 9, 2017 0:24_ CoreCLR is referencing CoreFX 13b5345 Building managed on Ubuntu AMD64 results in the following error. The type or namespace name 'Policy' does not exist in the namespace 'System.Security' _Copied from original issue: dotnet/coreclr#13881_ +23913 area-System.Diagnostics ProcessStartInfo.UseShellExecute documentation is inconsistent with behavior "The documentation for the `UseShellExecute` property in the `ProcessStartInfo` class states the following: > Gets or sets a value indicating whether to use the operating system shell to start the process. Returns: true if the shell should be used when starting the process; false if the process should be created directly from the executable file. **The default is true**. This seems to be inconsistent with the actual behavior. ```cs using System; using System.Diagnostics; namespace Example { class Program { static void Main(string[] args) { var info = new ProcessStartInfo() { // UseShellExecute = true, }; Console.WriteLine($""UseShellExecute: {info.UseShellExecute}""); } } } ``` Which prints out: > UseShellExecute: False Reference: https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessStartInfo.Unix.cs#L41" +23915 area-System.IO CoreFx #22409 StreamWriter Span based API and tests This PR is for the Span based API for StreamWriter. Please note that this PR is dependent on PR #23786 for successful compilation. @stephentoub @danmosemsft kindly review. Fixes #22409. Thanks, Mandar +23916 area-System.Runtime S.R.CS.Unsafe and read-only references Most (if not all) APIs today are defined to accept references with `ref` rather than `ref readonly`. This includes all methods of the `Unsafe` class. This proposal is to provide a method to turn a `ref readonly T` into a `ref T`, so that read-only references can be passed to methods that use `ref` but are known to be only reading them. ```diff public static partial class Unsafe { ... + public static ref T AsRef(ref readonly T source) } ```
Original proposals (click to expand) A few proposals for APIs related to the System.Runtime.CompilerServices.Unsafe class and read-only references. **Proposal 1:** Change `ref T` to `ref readonly T` where possible: ```diff public static class Unsafe { public static ref T AddByteOffset(ref T source, System.IntPtr byteOffset) public static ref T Add(ref T source, int elementOffset) public static void* Add(void* source, int elementOffset) public static ref T Add(ref T source, System.IntPtr elementOffset) - public static bool AreSame(ref T left, ref T right) + public static bool AreSame(ref readonly T left, ref readonly T right) - public static void* AsPointer(ref T value) + public static void* AsPointer(ref readonly T value) public static ref T AsRef(void* source) public static T As(object o) where T : class public static ref TTo As(ref TFrom source) - public static System.IntPtr ByteOffset(ref T origin, ref T target) + public static System.IntPtr ByteOffset(ref readonly T origin, ref readonly T target) - public static void CopyBlock(ref byte destination, ref byte source, uint byteCount) + public static void CopyBlock(ref byte destination, ref readonly byte source, uint byteCount) public static void CopyBlock(void* destination, void* source, uint byteCount) - public static void CopyBlockUnaligned(ref byte destination, ref byte source, uint byteCount) + public static void CopyBlockUnaligned(ref byte destination, ref readonly byte source, uint byteCount) public static void CopyBlockUnaligned(void* destination, void* source, uint byteCount) - public static void Copy(void* destination, ref T source) + public static void Copy(void* destination, ref readonly T source) public static void Copy(ref T destination, void* source) public static void InitBlock(ref byte startAddress, byte value, uint byteCount) public static void InitBlock(void* startAddress, byte value, uint byteCount) public static void InitBlockUnaligned(ref byte startAddress, byte value, uint byteCount) public static void InitBlockUnaligned(void* startAddress, byte value, uint byteCount) public static T Read(void* source) public static T ReadUnaligned(void* source) - public static T ReadUnaligned(ref byte source) + public static T ReadUnaligned(ref readonly byte source) public static int SizeOf() public static ref T SubtractByteOffset(ref T source, System.IntPtr byteOffset) public static ref T Subtract(ref T source, int elementOffset) public static void* Subtract(void* source, int elementOffset) public static ref T Subtract(ref T source, System.IntPtr elementOffset) public static void Write(void* destination, T value) public static void WriteUnaligned(void* destination, T value) public static void WriteUnaligned(ref byte destination, T value) } ``` **Proposal 2:** `Unsafe` but every `ref T` is a `ref readonly T`: ```diff +public static class UnsafeReadOnly +{ + public static ref readonly T AddByteOffset(ref readonly T source, System.IntPtr byteOffset) + public static ref readonly T Add(ref readonly T source, int elementOffset) + public static void* Add(void* source, int elementOffset) + public static ref readonly T Add(ref readonly T source, System.IntPtr elementOffset) + public static bool AreSame(ref readonly T left, ref readonly T right) + public static void* AsPointer(ref readonly T value) + public static ref readonly T AsRef(void* source) + public static T As(object o) where T : class + public static ref readonly TTo As(ref readonly TFrom source) + public static System.IntPtr ByteOffset(ref readonly T origin, ref readonly T target) + public static void CopyBlock(ref readonly byte destination, ref readonly byte source, uint byteCount) + public static void CopyBlock(void* destination, void* source, uint byteCount) + public static void CopyBlockUnaligned(ref readonly byte destination, ref readonly byte source, uint byteCount) + public static void CopyBlockUnaligned(void* destination, void* source, uint byteCount) + public static void Copy(void* destination, ref readonly T source) + public static void Copy(ref readonly T destination, void* source) + public static void InitBlock(ref readonly byte startAddress, byte value, uint byteCount) + public static void InitBlock(void* startAddress, byte value, uint byteCount) + public static void InitBlockUnaligned(ref readonly byte startAddress, byte value, uint byteCount) + public static void InitBlockUnaligned(void* startAddress, byte value, uint byteCount) + public static T Read(void* source) + public static T ReadUnaligned(void* source) + public static T ReadUnaligned(ref readonly byte source) + public static int SizeOf() + public static ref readonly T SubtractByteOffset(ref readonly T source, System.IntPtr byteOffset) + public static ref readonly T Subtract(ref readonly T source, int elementOffset) + public static void* Subtract(void* source, int elementOffset) + public static ref readonly T Subtract(ref readonly T source, System.IntPtr elementOffset) + public static void Write(void* destination, T value) + public static void WriteUnaligned(void* destination, T value) + public static void WriteUnaligned(ref readonly byte destination, T value) +} ``` **Proposal 3:** A method to turn a `ref readonly T` into a `ref T`: ```diff public static partial class Unsafe { ... + public static ref T AsRef(ref readonly T source) } ``` **Potential problems:** Passing a `ref readonly T` argument does not look different from passing a `T` argument, so the following code is legal but very surprising: ```csharp byte[] buffer = new byte[16]; Unsafe.CopyBlockUnaligned(ref buffer[0], 123, 16); // what does this copy? ```
+23917 area-System.Runtime S.R.CS.Unsafe: Aligned vs Unaligned method name suffix "The new Intel Intrinsic APIs (https://github.com/dotnet/corefx/pull/23489) follow the convention of using the suffix `Aligned` for methods that require alignment. E.g.: ```csharp public static unsafe Vector256 Load(byte* address) public static unsafe Vector256 LoadAligned(byte* address) ``` The System.Runtime.CompilerServices.Unsafe class currently does the opposite. E.g.: ```csharp public unsafe static T Read(void* source) public unsafe static T ReadUnaligned(void* source) ``` Should the Unsafe class switch? Benefit: ease of use. Methods without a suffix feel like the ""default""; methods with a suffix feel like special cases that can be ignored most of the time. Unaligned access is a much better default than aligned access. ```diff public static partial class Unsafe { public static ref T AddByteOffset(ref T source, System.IntPtr byteOffset) public static ref T Add(ref T source, int elementOffset) public static void* Add(void* source, int elementOffset) public static ref T Add(ref T source, System.IntPtr elementOffset) public static bool AreSame(ref T left, ref T right) public static void* AsPointer(ref T value) public static ref T AsRef(void* source) public static T As(object o) where T : class public static ref TTo As(ref TFrom source) public static System.IntPtr ByteOffset(ref T origin, ref T target) - public static void CopyBlock(ref byte destination, ref byte source, uint byteCount) - public static void CopyBlock(void* destination, void* source, uint byteCount) + public static void CopyBlockAligned(ref byte destination, ref byte source, uint byteCount) + public static void CopyBlockAligned(void* destination, void* source, uint byteCount) - public static void CopyBlockUnaligned(ref byte destination, ref byte source, uint byteCount) - public static void CopyBlockUnaligned(void* destination, void* source, uint byteCount) + public static void CopyBlock(ref byte destination, ref byte source, uint byteCount) + public static void CopyBlock(void* destination, void* source, uint byteCount) public static void Copy(void* destination, ref T source) public static void Copy(ref T destination, void* source) - public static void InitBlock(ref byte startAddress, byte value, uint byteCount) - public static void InitBlock(void* startAddress, byte value, uint byteCount) + public static void InitBlockAligned(ref byte startAddress, byte value, uint byteCount) + public static void InitBlockAligned(void* startAddress, byte value, uint byteCount) - public static void InitBlockUnaligned(ref byte startAddress, byte value, uint byteCount) - public static void InitBlockUnaligned(void* startAddress, byte value, uint byteCount) + public static void InitBlock(ref byte startAddress, byte value, uint byteCount) + public static void InitBlock(void* startAddress, byte value, uint byteCount) - public static T Read(void* source) + public static T ReadAligned(void* source) - public static T ReadUnaligned(void* source) - public static T ReadUnaligned(ref byte source) + public static T Read(void* source) + public static T Read(ref byte source) public static int SizeOf() public static ref T SubtractByteOffset(ref T source, System.IntPtr byteOffset) public static ref T Subtract(ref T source, int elementOffset) public static void* Subtract(void* source, int elementOffset) public static ref T Subtract(ref T source, System.IntPtr elementOffset) - public static void Write(void* destination, T value) + public static void WriteAligned(void* destination, T value) - public static void WriteUnaligned(void* destination, T value) - public static void WriteUnaligned(ref byte destination, T value) + public static void Write(void* destination, T value) + public static void Write(ref byte destination, T value) } ``` " +23918 area-System.Net [release/2.0.0] Fix Desktop app-compat issues with System.Web.HttpUtility Fixes #23582, fixes #23574 Port of commits from #23591. +23919 area-System.Net Web requests abnormally slow "Hi, in my current project, I'm trying to make a web request in C# by using the following code (a bit modified for the sake of this post): ```c# private static void WithWebRequest() { Stopwatch sw = new Stopwatch(); sw.Start(); var request = WebRequest.Create(""http://www.dot.net""); using (WebResponse response = request.GetResponse()) { using (StreamReader sr = new StreamReader(response.GetResponseStream())) { string content = sr.ReadToEnd(); sw.Stop(); Console.WriteLine(content); Console.WriteLine($""Response got in {sw.ElapsedMilliseconds / 1000}""); } } } ``` I'm pretty sure it used to work pretty well when I was using ASP.NET Core 2.0 but since I upgraded to ASP.NET Core 2.1 (2.1.0-preview1-26907) (because I need it to use SignalR Core), it seems that requests take for ages to execute. As you can see, I used `Stopwatch` to measure the duration of the call and it is generally about 45 seconds, give or take. I usually have the time to open a new browser instance and navigate to the URL by myself while the request is called. I also tried with `HttpClient`: ```c# private static void WithHttpClient() { Stopwatch sw = new Stopwatch(); sw.Start(); using (var client = new HttpClient()) { client.BaseAddress = new Uri(""http://www.dot.net""); var content = client.GetStringAsync(string.Empty).Result; sw.Stop(); Console.WriteLine(content); Console.WriteLine($""Response got in {sw.ElapsedMilliseconds / 1000}""); } } ``` And I obtain approximately the same result. I also tried to use ""async"" execution and it didn't solve it. [EDIT] Added C# syntax highlight by @karelz" +23920 area-System.Net Disable brittle WebSockets.Client test "System.Net.WebSockets.Client.Tests.KeepAliveTest/KeepAlive_LongDelayBetweenSendReceives_Succeeds ""System.Net.WebSockets.WebSocketException : The WebSocket is in an invalid state ('Aborted') for this operation. Valid states are: 'Open, CloseReceived, CloseSent, Closed'"" #23204" +23921 area-System.Net System.Web.HttpUtility Refactoring Some refactoring of the `HttpUtility` class. Removal of dead code and an extra test brings coverage up to 100% lines, 98.4% branching (two branches implicit to `fixed` are left uncoverable). * Use named arguments instead of comments. * Remove `ignoreAscii` parameter from `UrlEncodeUnicode` method Only ever `false`. * Remove `alwasyCreateNewReturnValue` from `UrlEncodeNonAscii` Always `false`. * Remove `ValidateUrlEncodingParameters` check from `UrlEncodeNonAscii` Cases covered can't happen as bytes comes from `Encoding.GetBytes` call and sizes are based on that. * Remove `string.IsnullOrEmpty` and `e == null` branches from `UrlEncodeNonAscii` Guaranteed by only caller not to be hit. Replace with assertions. * Remove `bytes == null` branch from `UrlDecodeToBytes` Exists in a `bytes != null` branch, so never `true`. * Remove `sb.Length` test from `HttpQSCollection.ToString()` In a path for which there will always be at least one value added, so always true, so just use offset & length overload of `ToString`. * Remove check that `authorityIndex != -1`. Cannot be `false` in the branch it is in. * Change `JavaScriptStringEncode` call to avoid unnecessary branch. Can just call `HttpEncoder.JavaScriptStringEncode` directly. * Move switch for determining js escape into first `CharRequiresJavaScriptEncoding` branch. Removes need for double-check. * Add test for `JavaScriptStringEncode` with `false` for `addDoubleQuotes` * Always have braces in `if` * Remove redundant casts. * Use explicit types. * Use expression-body syntax * Use PascalCase for constant. +23922 area-System.Runtime Roundtripping DateTime with mn-MN FullDateTimePattern on Windows 8.1 fails ``` Unhandled Exception of Type System.FormatException Message : System.FormatException : The string was not recognized as a valid DateTime. There is an unknown word starting at index 16. Stack Trace : at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles) at System.Tests.DateTimeTests.Parse_ValidInput_Suceeds(String input, CultureInfo culture, Nullable`1 expected) ``` +23923 area-System.Runtime Roundtripping DateTime with he-IL and HebrewCalendar fails with some formats on Unix See DateTimeTests.cs for examples (search for this issue number). +23925 area-System.Diagnostics [Feature request] Debugger.Break on condition "It would be nice to have an opportunity to break when a condition is true. Sample use case: Current look: ```c# List cObjects = new List { 1, 2, 3, ""Hello World"", null }; cObjects.ForEach(x => { if (x is int) Debugger.Break(); }); ``` After such a feature fot added: ```c# List cObjects = new List { 1, 2, 3, ""Hello World"", null }; cObjects.ForEach(x => { Debugger.Break(x is int); }); ``` It doesnt make the code shorter but i think it looks cleaner after such an addition. Related: https://github.com/dotnet/coreclr/issues/13889 [EDIT] Added C# syntax hihglight by @karelz" +23926 area-System.Net Only truncate to IOV_MAX for stream sockets (#23826) Port of https://github.com/dotnet/corefx/pull/23826 to release/2.0.0 branch +23927 area-System.Data Enlisting in Ambient transactions is not supported +23928 area-System.Globalization GetAscii_Invalid failing in release branches The System.Globalization.Tests.IdnMappingIdnaConformanceTests.GetAscii_Invalid test is causing lots of PRs to fail in the release branches. It's also why the Windows 8.1 line at https://github.com/dotnet/corefx/tree/release/2.0.0 is red across the board. cc: @danmosemsft, @karelz, @tarekgh, @Petermarcu +23932 area-System.Numerics Make BigInteger ctor opt path for == int.MinValue reachable. The `BigInteger(ReadOnlySpan value)` ctor contains an optimised path for value being larger than 4 bytes and the result being equal to `int.MinValue`. However this path is inside a test that precludes that value, so can never be reached. Restructure so that the path is reachable. +23937 area-System.Reflection System.Reflection.Metadata.Decoding.Tests.CustomAttributeDecoderTests.TestCustomAttributeDecoder is failed if tc is a native image file (This tc is in `System.Reflection.Metadata.Tests` which built with `/p:Outerloop=True`) It is failed on x64/arm32/armel(I've checked it on only three arches) ``` System.Reflection.Metadata.Decoding.Tests.CustomAttributeDecoderTests.TestCustomAttributeDecoder [FAIL] Assert.Empty() Failure Stack Trace: /home/dragon/dotnet/x64-dotnet/corefx/src/System.Reflection.Metadata/tests/Metadata/Decoding/CustomAttributeDecoderTests.cs(36,0): at System.Reflection.Metadata.Decoding.Tests.CustomAttributeDecoderTests.TestCustomAttributeDecoder() ``` How to make ni for testing this issue ``` # crossgen /Platform_Assemblies_Paths $overlay ./System.Reflection.Metadata.Tests.dll ~/dotnet/x64-dotnet/tmp/nopatch_latest/overlay/crossgen /Platform_Assemblies_Paths ~/dotnet/x64-dotnet/tmp/nopatch_latest/overlay ./System.Reflection.Metadata.Tests.dll ``` In fact, there are more failed tcs if they are ni files. ``` # in AnyOS.AnyCPU.$BuildMode/System.Runtime.Loader.RefEmitLoadContext.Tests /p:Outerloop=True System.Runtime.Loader.Tests.RefEmitLoadContextTests.LoadRefEmitAssembly # in AnyOS.AnyCPU.$BuildMode/System.Runtime.Tests /p:Outerloop=True System.Reflection.Tests.AssemblyTests.AssemblyLoadFromBytes System.Reflection.Tests.AssemblyTests.LoadFrom_SameIdentityAsAssemblyWithDifferentPath_ReturnsEqualAssemblies # in Unix.AnyCPU.Release.$BuildMode/System.Runtime.Extensions.Tests /p:Outerloop=True System.Tests.AppDomainTests.AssemblyLoad System.Tests.AppDomainTests.Load System.Tests.AppDomainTests.GetAssemblies ``` The above tcs use Reflection methods, so I think this issue may solve them. If the tcs are failed after this issue is solved, they should be submmited as new issues. +23938 area-System.Net Controlling TRUSTED_ISSUERS in SslStream (platform differences between Unix & Windows) This is related to https://github.com/dotnet/corefx/issues/17226 and https://github.com/aspnet/KestrelHttpServer/issues/1802 On Windows, when using `SslStream` and requiring client certificates using `AuthenticateAsServer` an empty list of trusted issuers will be sent. This can be seen when running: `penssl s_client -connect 192.168.1.11:8080` The results on Windows include ``` No client certificate CA names sent ``` On Linux, however, the server will send a list of all the trusted issuers on the system. This is actually handled by CoreFX directly, in this method: https://github.com/dotnet/corefx/blob/0fd3d2c5bcb1a83e7ebd8025e4810e11e231ce03/src/Common/src/Interop/Unix/System.Security.Cryptography.Native/Interop.OpenSsl.cs#L323 The code there is explicitly adding the registered certificates. On some machines, this can be a VERY big list. However, the calling code has no control over that and has to accept the machine state. This is problematic, and a solution that will allow us to control what are the trusted issuers would be much better for us. The underlying reason is that currently a user may specify a certificate, but get an error that no such certificate was used, which is really confusing and require to dig into which is the trusted issuer, what is going on and a lot of other annoyances. There is also now way for us to inject any behavior into the system to control it. Another overload on `SslStream` that would allow configuring the ssl context directly before use would be much better, but anything that would allow us to avoid sending the full issuers list all the time would be sufficent. This seems to impact quite a few people and it is the cause of very hard to diagnose issues. +23940 area-System.Runtime Cleanup code in System.Runtime.Serialization.Formatters.Tests @krwq if you have time it would be nice if you can review my changes as you contributed a fair amount of code to it :) Motivation for changes: 1. Get rid of BinaryFormatterHelper.cs in favor of BinaryFormatterHelpers.cs (Common) 2. Move code to read and write from/to base64strings and byte arrays to common to be able to test serialization code in different packages. +23942 area-Infrastructure Update run-test.sh to follow up recent change Because layout of CoreFX test has been changed, run-test.sh should be updated too. +23943 area-System.Diagnostics TraceListener.TraceOptions ignores TraceOutputOptions.LogicalOperationStack You can set the `TraceOutputOptions.LogicalOperationStack` flag on the `TraceOptions` of a `TraceListener` and in Desktop .NET, that will cause it to include the logical operation stack for each trace output. But in .NET Core, this flag is ignored. There doesn't seem to be a good reason for this flag not to work: the underlying mechanism it relies on (the correlation manager in `Trace`) appears to be present and works as required, so it's not as this this requires some base functionality that is missing in .NET Core. This seems similar to the issue fixed by https://github.com/dotnet/corefx/pull/18185 and with a very similar underlying reason. https://github.com/dotnet/corefx/issues/10880#issuecomment-291763962 in the issue for that PR notes refers to https://github.com/dotnet/corefx/issues/17773#issuecomment-290952601 that points out the difference between Desktop .NET and .NET Core that led to the descrepancy in #10880. You can see a similar difference for `TraceListener` between Desktop .NET: https://referencesource.microsoft.com/#System/compmod/system/diagnostics/TraceListener.cs,417 and the corresponding `WriteFooter` implementation in .NET Core: https://source.dot.net/#System.Diagnostics.TraceSource/System/Diagnostics/TraceListener.cs,414 As you can see .NET Core just doesn't have the code that handles this flag. It looks like the underlying `Trace.CorrelationManager.LogicalOperationStack` works as expected under .NET Core so there doesn't seem to be any obvious reason for this feature to be missing from `TraceListener` (any more than there was any reason for the corresponding feature to be missing from `DelimitedListTraceListener` before that was fixed by https://github.com/dotnet/corefx/pull/18185 +23945 area-Infrastructure Use linker from ILLink.Tasks This tasks package contains the newest version of the linker, which comes with an msbuild task. The corefx targets have been updated to use the new msbuild task instead of running illink in a new process. +23947 area-Serialization Add /casesensitive parameter so the command works on linux when the path contains capital letter "On linux, the output folder Debug contains ""D"", without adding /casesitive, it will try to reach folder debug, which doesn't exist. @shmao @zhenlan @mconnew " +23948 area-System.Drawing libcups PInvokes need manual loading "See: https://github.com/dotnet/corefx/blob/master/src/System.Drawing.Common/src/Unix/System.Drawing.Printing/PrintingServicesUnix.cs#L950 These functions need to be manually loaded in the same way that GDI+ functions are. Mono has a default Dllmap which maps ""libcups"" to ""libcups.so.2"". This is required on Ubuntu 16.04, at the very least. I will probably fix this as part of consolidating / cleaning up the printing implementation." +23949 area-Serialization Fix the output message in SGEN. "Using word ""file"" instead of ""assembly"" since the sgen will generate a cs file not an assembly. Fix #23376 @shmao @zhenlan @mconnew " +23951 area-System.Net Fix WinHttpHandler when building certificate chain Unlike SslStream, WinHttpHandler was not using all the certificates obtained from the TLS/SSL handshake when building the chain. In addition to the end-entity server certificate, there were other certs available in the native cert handle that could be passed along to the chain build operation. As part of fixing this, I refactored the Common schannel and crypto interop code so that it can be used in both SslStream and WinHttpHandler. I tested this manually because this cannot be easily tested in the CI system. Added traces in WinHttpHandler to support this. Fixes #23827 Fixes #4473 +23952 area-System.Memory [uapaot] Span indexer fails with IndexOutOfRangeException for reference types "Test disabled in: https://github.com/dotnet/corefx/pull/23905 **The Span tests fail for uapaot when we try to access the elements of a Span of a reference type like string using the provided indexer:** ```C# public static void TestingSpanReferenceTypeForUAPAOT() { ReadOnlySpan span1 = new byte[] { 1 }; byte temp1 = span1[0]; // successful ReadOnlySpan span2 = new string[] { ""1"" }; string temp2 = span2[0]; // fails with IndexOutOfRangeException } ``` ```xml span1) in D:\GitHub\Fork\corefx\src\System.Memory\tests\ReadOnlySpan\CtorArray.cs:line 66 at _$ILCT$.$ILT$ReflectionDynamicInvoke$.InvokeRetV(Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean targetIsThisCall) at System.InvokeUtils.CalliIntrinsics.Call(IntPtr dynamicInvokeHelperMethod, Object thisPtr, IntPtr methodToCall, ArgSetupState argSetupState, Boolean isTargetThisCall) at System.InvokeUtils.CallDynamicInvokeMethod(Object thisPtr, IntPtr methodToCall, Object thisPtrDynamicInvokeMethod, IntPtr dynamicInvokeHelperMethod, IntPtr dynamicInvokeHelperGenericDictionary, Object targetMethodOrDelegate, Object[] parameters, BinderBundle binderBundle, Boolean wrapInTargetInvocationException, Boolean invokeMethodHelperIsThisCall, Boolean methodToCallIsThisCall, Boolean parametersNeedCopyBack, ArgSetupState argSetupState, Object[] parametersOld, Object[] nullableCopyBackObjectsOld, Int32 curIndexOld, Object targetMethodOrDelegateOld, BinderBundle binderBundleOld, Object[] customBinderProvidedParametersOld, Object result, Exception e, Int32 i) in CallDynamicInvokeMethod:line 16707566 ]]> ```" +23953 area-System.Runtime [uapaot] Unsafe RefAreSame test fails for uapaot "Test disabled in: https://github.com/dotnet/corefx/pull/23905 **The Unsafe.RefAreSame test fails on uapaot:** ```C# public static void RefAreSame() { long[] a = new long[2]; Assert.True(Unsafe.AreSame(ref a[0], ref a[0])); // successful Assert.False(Unsafe.AreSame(ref a[0], ref a[1])); // fails } ``` ```xml ```" +23954 area-System.Collections Provide the way to control how HashSet and Dictionary grows Is it possible to provide the way to control how HashSet and Dictionary expand their storage? Now it always doubles current size and takes next prime number as capacity. Sometimes it is too wasteful and even if you know capacity from the beginning it doesn't prevent from wasting a lot of memory ([here](https://stackoverflow.com/questions/46068944/how-to-avoid-extra-space-allocation-when-using-standard-collections-and-storing)) It would be nice to provide something like this: ``` class HashSet { // ... protected virtual void IncreaseCapacity() {...} } class Dictionary { // ... protected virtual void Resize() {...} } ``` I don't see any performance concerns, because single virtual call followed by memory allocation and copy is almost nothing imo. The only thing that comes into my mind is that now it must be checked that after IncreaseCapacity/Resize the capacity actually increased. +23956 area-System.Drawing System.Drawing - Fix and simplify PathGradientBrush.Blend and GdipSaveImageToFile_delegate PInvoke code Fixes/cleans up some of the P/Invoke code in System.Drawing, as a result of bugs that surfaced when porting Mono's test to netfx. * PathGradientBrush: Let the runtime marshal the `float` arrays instead of manually reading unmanaged memory * `GdipSaveImageToFile_delegate`: Marshal `filename` as `LPWStr` +23957 area-System.Drawing Simplify P/Invoke logic in PathGradientBrush.InterpolationColors and SurroundColors Let the runtime marshal the float[] array instead of processing unmanaged memory ourselves. Fixes libgdiplus interop issues surfaced by Mono's tests. Do additional parameter validation in managed code, for libgdiplus compatibility. +23958 area-System.Drawing System.Drawing - Simplify Pen.get_DashPattern P/Invoke code Let the runtime marshal the `float` arrays instead of manually processing unmanaged memory. Fixes libgdiplus compatibility. +23959 area-System.Runtime Add DbNull to DataTable Serialization test +23960 area-System.Net System.Net.Tests.HttpListenerResponseCookiesTests/Cookies_GetSet_ReturnsExpected failed on OSX https://mc.dot.net/#/user/qmfrederik/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/e9bd0a167b8bb087d01f73993641808601c05829/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpListenerResponseCookiesTests~2FCookies_GetSet_ReturnsExpected ``` Unhandled Exception of Type System.Net.Internals.SocketExceptionFactory+ExtendedSocketException System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : Connection refused 127.0.0.1:1191 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 4592 at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 824 at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 929 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Sockets.Socket.Connect(IPAddress[] addresses, Int32 port) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 940 at System.Net.Sockets.Socket.Connect(String host, Int32 port) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 889 at System.Net.Tests.HttpListenerFactory.GetConnectedSocket() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Net.HttpListener/tests/HttpListenerFactory.cs:line 155 at System.Net.Tests.HttpListenerResponseTestBase..ctor() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/src/System.Net.HttpListener/tests/HttpListenerResponseTests.cs:line 22 at System.Net.Tests.HttpListenerResponseCookiesTests..ctor() at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, Boolean wrapExceptions) ``` +23961 area-System.Runtime release/2.0.0 - Make DBNull serializable and adding tests Requires: https://github.com/dotnet/coreclr/pull/13906 Issue: dotnet/corefx#23398 Docs update: https://github.com/dotnet/docs/pull/3116 **Blobs need to be updated after coreclr change is merged.** @weshaggard I'm disabling the typeforward in the release/2.0.0 branch for uap/uapaot. waiting for shiproom approval. +23964 area-System.Drawing Fix, clean up and re-organize System.Drawing.Printing code "* Previously, `PrintingServices` had an implementation which was hidden behind a layer of indirection, one for Windows and one for Unix. Realistically, the types involved with this were purely static, and the indirection was never useful at runtime. By that, I mean that the implementation was known at build time -- it is either Windows or Unix. * I've removed the layer of indirection and deleted all of mono's Win32-specific code from the System.Drawing.Printing namespace. Mono's Win32 builds should just use our code from the .NET Framework. Code included in the Unix build configuration has an implicit assumption that it is running on Unix. * Correct some issues in the Printing tests. The condition in `Helpers.IsAnyInstalledPrinters` was backwards -- tests were disabled when they should have been enabled, and vice-versa. This uncovered some issues in the assertions used. * Move `FunctionWrapper` into a common file, so that it can be re-used to load libcups functions as well. * Load all libcups functions manually. Fixes #23948 * Move Unix files into the regular directory structure. Add a "".Windows"" suffix to the existing Windows files there. For what it's worth, I have also done some more manual testing with Printing components on Unix, because the library can't really be fully exercised in the automated tests. The implementation seems to be able to dispatch a printing job to the office printer here, and I'm also able to print to a virtual PDF printer successfully." +23966 area-Serialization Add help method for SGEN. Fix #23375 @shmao @zhenlan @mconnew The generated help information is like: ``` Generates serialization code for use with XmlSerializer. The utility allows developers to pre-generate code for serialization building and deploying the assemblies with the application. Usage: dotnet dotnet-Microsoft.XmlSerializer.Generator [[/assembly:] | []] [/type:] [/debug]. Developer options: /assembly: Assembly location or display name. Short form is '/a:'. /type: Generate code for serialization/deserialization of the specified type from the input assembly. Short form is '/t:'. /proxytypes Generate serialization code only for proxy classes and web method parameters. Short form is '/p'. /debug Generate image which can be used under a debugger. Short form is '/d'. /force Forces overwrite of a previously generated assembly. Short form is '/f'. /out: Output directory name (default: target assembly location). Short form is '/o:'. Miscellaneous options: /? or /help Show this message ``` +23968 area-Infrastructure what differentiates the System.Runtime.dlls in the corefx build output directory? "I built 2.0 coreclr, corefx, and core-setup repos from scratch on a linux machine. In the Corefx build output directory, there are multiple copies of dll's with the same name. Some are obviously targeting different environments (Unix/AnyOS or netstandard/netcoreapp) and some dlls are not fully processed(pregenfacades, pretrim, etc.). However, I still don't quiet understand where the size differences come from: ``` -rw-r--r-- 1 29K Jul 7 06:15 ./AnyOS.AnyCPU.Release/netfx/netcoreapp/System.Runtime.dll -rw-r--r-- 1 29K Jul 7 06:15 ./AnyOS.AnyCPU.Release/netstandard/netstandard/System.Runtime.dll -rw-r--r-- 1 242K Sep 8 04:38 ./obj/ref/System.Runtime/4.2.0.0/netcoreapp/System.Runtime.dll -rw-r--r-- 1 17K Sep 8 04:41 ./obj/Unix.AnyCPU.Release/System.Runtime/netcoreapp/PreGenFacades/System.Runtime.dll -rw-r--r-- 1 33K Sep 8 04:41 ./obj/Unix.AnyCPU.Release/System.Runtime/netcoreapp/PreTrim/System.Runtime.dll -rw-r--r-- 1 33K Sep 8 04:41 ./obj/Unix.AnyCPU.Release/System.Runtime/netcoreapp/System.Runtime.dll -rw-r--r-- 2 242K Sep 8 04:38 ./ref/netcoreapp/System.Runtime.dll -rw-r--r-- 2 29K Jul 7 06:15 ./ref/netfx/System.Runtime.dll -rw-r--r-- 2 29K Jul 7 06:15 ./ref/netstandard/System.Runtime.dll -rw-r--r-- 2 242K Sep 8 04:38 ./ref/System.Runtime/4.2.0.0/netcoreapp/System.Runtime.dll -rw-r--r-- 3 33K Sep 8 04:41 ./runtime/netcoreapp-Linux-Release-x64/System.Runtime.dll -rw-r--r-- 3 33K Sep 8 04:41 ./testhost/netcoreapp-Linux-Release-x64/shared/Microsoft.NETCore.App/9.9.9/System.Runtime.dll -rw-r--r-- 3 33K Sep 8 04:41 ./Unix.AnyCPU.Release/System.Runtime/netcoreapp/System.Runtime.dll ``` Notice that some dlls are of size 240KB and others range from 17KB to 33KB. Using dotpeek tool, I noticed that the big dlls contains far more namespaces and APIs compared to System.Runtime.dll under dotnet/shared on my windows machine. Why is this the case? I expected the dlls to be very close to what's officially distributed. Is it related to the fact that these 240KB dlls are under ""ref"" directory and targeting netcoreapp? If so, what does ""ref"" indicate and why aren't netfx/netstandard dlls as big as the netcoreapp dll?" +23969 area-System.Diagnostics Check if we can open the directory on Linux when UseShellExecute is set "I am creating this issue to track if we can open the directory on Linux when having ShellExecute is set. - Ideally we would want to throw exception only when UseShellExecute option was false. - In OSX, the program ""open"" successfully opens folder using ""finder"". - But Linux needs extra effort to be able to open a folder here. In Linux, xdg-open cannot open folder, so I decided to throw when startInfo.FileName is a directory, regardless of UseShellExecute option being true or false. Probably the failure happens when the OS doesnt have the installed libraries to open. The current behavior in Linux is captured [here](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Process/tests/ProcessTests.Unix.cs#L67L71) Part of this goal is to keep a consistent behavior with Windows. - When UseShellExecute is set on windows desktop, Process Start opens directory using File Explorer. - Also, the current behavior in Windows running on .NET Core is captured [here](https://github.com/dotnet/corefx/blob/e670fd396d1c2a6ae99f2bb0ec24a81e30c668e7/src/System.Diagnostics.Process/tests/ProcessTests.cs#L134-L149 ) Code Sample: ``` var startInfo = new ProcessStartInfo { UseShellExecute = true, FileName = Environment.CurrentDirectory }; using (var px = Process.Start(startInfo)) { ... } ``` @tarekgh " +23970 area-Infrastructure Error in .NET Standard 2.0-library: The type 'X' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. "Hello everyone! I've been trying to find an open case just like mine but all I found so far has been references to preview versions. I'm currently using production-ready .NET Standard 2.0 and in my project I get the following errors: `The type 'IList<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.` and `The type 'IEnumerable<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.` This happens on the marked line as you can see on the screenshot below: ![capture](https://user-images.githubusercontent.com/29184014/30317343-27a08186-97aa-11e7-9a95-0303d5130cf3.PNG) It doesn't really matter if I change to a different method. The same thing happens. My project file looks like the following: ```xml netstandard2.0 False bin\debug\ Cache bin\release\ obj ``` Q1: How do I resolve this error? Q2: In addition to the above, I cant find the ""Add""-method for the IHeaderDictionary shown in the screenshot. Is there any special Nuget-package that I need? " +23972 area-System.Diagnostics "When Process.Start is used to open a program, ProcessName value is incorrectly set as ""dotnet"" on OSX " "When using Process.Start in order to open a program: - On OSX, the ProcessName value is dotnet for some reason, which I believe is wrong behavior. - But on Linux, the ProcessName value is correctly set as the input program to Process.Start. Code Sample: ``` // string programToOpenWith = ""/usr/bin/open"" or ""/usr/bin/nano"" for OSX or // string programToOpenWith = ""nano"" or ""vi"" for Linux using (var px = Process.Start(programToOpenWith, fileToOpen)) { Console.WriteLine($""in OSX, {nameof(programToOpenWith)} is {programToOpenWith}, while {nameof(px.ProcessName)} is {px.ProcessName}.""); // Assert.Equal(programToOpenWith, px.ProcessName); // on OSX, process name is dotnet for some reason } ```" +23974 area-System.Memory Add MemoryHandle.HasPointer @stephentoub ran into cases where he needed to check if a handle has a pinned pointer. Today, it can be done using unsafe code (get the PinnedPinter and check if it's null). This new API would allow the same check in safe code. +23975 area-System.Net Fix Socket Shutdown_TCP_CLOSED_Success test This test has been failing at times with an exception being generated from the client socket due to the loopback server terminating the connection with RST instead of FIN. The problem is that the server socket needs to use Shutdown() before Dispose() to ensure a clean FIN after the data gets sent back to the client. Fixes #13539 +23976 area-System.Net Fix check for in_pktinfo and ip_mreqn This change fixes the check for in_pktinfo and ip_mreqn. It was broken and was always succeeding even on platforms where these structs were not present. The reason was that the statements worked as forward declarations instead of usage of the structs. +23977 area-System.Net Disable unreliable Http diagnostics logging test The Http test, SendAsync_ExpectedDiagnosticCancelledLogging, has been failing at times. I am going to disable this test until it can be made more robust. It is not a reliable test because cancellation cannot be guaranteed to occur with a certain time especially on a busy machine. #23209 +23978 area-Serialization Re-enable XmlSerializer.Generator tests Please see individual commits. In a nutshell this re-enables the tests and ensures they run on the test framework rather than the tool framework. +23979 area-System.Net Disable broken HttpWebRequest timeout test The HttpWebRequest test, Timeout_SetTenMillisecondsOnLoopback_ThrowsWebException, doesn't work reliably. It's trying to test timeouts on requests but doesn't actually create stable conditions with the loopback server (i.e. to make it slow to respond). #22627 +23980 area-System.Net Move Socket UDP related tests to OuterLoop The DualModeConnectionless* tests have been unreliable in CI. Moving them to OuterLoop pending further analysis. #17681 +23984 area-System.Data Failed to Connect to Sql Server with MultiSubnetFailover .netCore 2.0 "I'm running a .NET Core App 2.0 in a container against a SqlServer 12 database with MultiSubnetFailover. My connection string looks like this... Data Source=***.***.***.com;Initial Catalog=DATABASENAME;User ID=USER_ID;Password=""USER_PASSWORD"";Connect Timeout=60;MultiSubnetFailover=True When i try to connect, it fails with the following error Message=""A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. Same issue is documented here for 1.1 https://github.com/dotnet/corefx/issues/14978" +23985 area-System.Runtime Error trying to deserialize TimeZoneInfo on OS X "#### Details + .NET Core 2.0 + macOS 10.12.6 #### Minimal Reproduction ``` let anyZone = TimeZoneInfo.FindSystemTimeZoneById(""America/New_York"") let deflated = anyZone.ToSerializedString() Zone.FromSerializedString deflated = anyZone ``` #### Expected Behavior No error. Last expression returns `true`. #### Actual Behavior ``` Error: System.Runtime.Serialization.SerializationException : An error occurred while deserializing the object. The serialized data is corrupt. ---- System.InvalidTimeZoneException : The elements of the AdjustmentRule array must be in chronological order and must not overlap. Stack Trace: at System.TimeZoneInfo.StringSerializer.GetDeserializedTimeZoneInfo(String source) at quickpbt.Teaser.days should equal hours() in /Users/pblasucci/Developer/quickpbt/quickpbt_fs/Teaser.fs:line 25 ----- Inner Stack Trace ----- at System.TimeZoneInfo.ValidateTimeZoneInfo(String id, TimeSpan baseUtcOffset, AdjustmentRule[] adjustmentRules, Boolean& adjustmentRulesSupportDst) at System.TimeZoneInfo..ctor(String id, TimeSpan baseUtcOffset, String displayName, String standardDisplayName, String daylightDisplayName, AdjustmentRule[] adjustmentRules, Boolean disableDaylightSavingTime) at System.TimeZoneInfo.StringSerializer.GetDeserializedTimeZoneInfo(String source) ``` #### Additional Notes On a recent build of Windows 10, everything behaves correctly. And I've not tested this on _any_ build of Linux. " +23986 area-System.Runtime add FreeBSD among platforms. This is small part so other repos can be fixed. They use this often as if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.OSX)) { .... } This allows to follow same pattern for FreeBSD +23987 area-System.IO Override memory-based Read/WriteAsync APIs on System.IO streams BufferedStream, PipeStream, DeflateStream, and GZipStream Fixes https://github.com/dotnet/corefx/issues/22397 Fixes https://github.com/dotnet/corefx/issues/22392 Fixes https://github.com/dotnet/corefx/issues/22390 Fixes https://github.com/dotnet/corefx/issues/22395 cc: @JeremyKuhne, @ianhays, @KrzysztofCwalina, @ahsonkhan +23988 area-Infrastructure System.Runtime.CompilerServices.Unsafe causing issues with ASP.NET Core 2.0.0 and netcoreapp2.1 I'm getting assembly load failures like the following trying to use ASP.NET Core 2.0.0 with netcoreapp2.1 ```System.IO.FileLoadException: Could not load file or assembly 'System.R untime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly 's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) ``` I'm not sure if this is the right place for this issue, but the `System.Runtime.CompilerServices.Unsafe` assembly recently moved from a package (netcoreapp2.0) into the shared runtime (netcoreapp2.1) and it appears to not be working gracefully with bits that were compiled against it in 2.0.0 (which ASP.NET Core does). **Repro** `git clone aspnet/JitBench` `git checkout rel/2.0.0` Follow steps 1-4 https://github.com/aspnet/JitBench/blob/rel/2.0.0/README.md `dotnet run` At this point you'll see a bunch of exception messages as it can't load the `System.Runtime.CompilerServices.Unsafe` assembly /cc @eerhardt @ericstj +23989 area-System.Runtime Add OSPlatform.FreeBSD API "### Rationale and Usage There is code all around core-setup, cli and perhaps elsewhere which looks like ```c# if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform( System.Runtime.InteropServices.OSPlatform.OSX)) { .... } ``` We would like to also target FreeBSD as a platform. FreeBSD is not officially supported but partial support is sprinkled through coreclr and corefx at least. ### Proposed API This adds FreeBSD property same way as it is done for current OSes. (Windows, Linux and OSX) ```diff namespace System.Runtime.InteropServices { public struct OSPlatform : IEquatable { private readonly string _osPlatform; + public static OSPlatform FreeBSD { get; } = new OSPlatform(""FREEBSD""); + public static OSPlatform Linux { get; } = new OSPlatform(""LINUX""); public static OSPlatform OSX { get; } = new OSPlatform(""OSX""); public static OSPlatform Windows { get; } = new OSPlatform(""WINDOWS""); private OSPlatform(string osPlatform) { if (osPlatform == null) throw new ArgumentNullException(nameof(osPlatform)); if (osPlatform.Length == 0) throw new ArgumentException(SR.Argument_EmptyValue, nameof(osPlatform)); _osPlatform = osPlatform; } ``` We may consider adding other BSD flavors or other operating systems but reasonable support is probably not anywhere close. For FreeBSD, there is some community interest. ### Pull Request #23986 " +23990 area-System.Runtime Possible race condition in ICommand WinRT adapter I'm been digging through some more interop code in CoreFX and came across this: https://github.com/dotnet/corefx/blob/master/src/System.Runtime.WindowsRuntime/src/System/Runtime/InteropServices/WindowsRuntime/MarshalingHelpers.cs#L380 This line looks to be a race condition: GetValueFromEquivalentKey method loops through the table entries in a foreach loop and it doesn't lock the table before doing so. I believe that if you happen to add an entry to the table on another thread by calling add_CanExecuteChanged method on any instance of ICommand, the enumerator would get invalidated and it would throw an exception. +23991 area-System.Drawing Re-organize and clean up some Unix Drawing code. "A little bit of miscellaneous cleanup. * There are a bunch of X11 functions defined in the ""gdipFunctions.cs"" file. I moved them into a LibX11Functions.cs file. * There was a bunch of other random stuff in the gdipFunctions.cs file, like structure definitions, helper methods, etc. I moved them into appropriately-named files and static classes. * ContentAlignment.cs was a simple enum, but not shared between the builds. I've deleted the file under ""Unix"", and included the other file in all builds. * Moved GdiPlusStreamHelper into its own file, and it is no longer nested in the static GDIPlus class (no reason for it to be). cc @qmfrederik @akoeplinger " +23992 area-Infrastructure Clean Enlistment Test Failures After installing Windows 10 on a Parallels VM (on a MacPro), installing VS 2015, cloning, then running `build`, and `build-tests` from a `VS 2015 Developer Command Prompt` I consistently get the following errors: Verified fixed by #24052 > ~C:\git\corefx\Tools\tests.targets(483,5): error : One or more tests failed while running tests from 'System.Globalization.Tests' please check [C:\git\corefx\bin/tests/System.Globalization.Tests/netcoreapp-Windows_NT-Debug-x64/testResults.xml](https://gist.github.com/kingces95/3185ea528c5330a7c815a6013bb99507) for details! [C:\git\corefx\src\System.Globalization\tests\System.Globalization.Tests.csproj]~ Verified fixed by #24016 >~C:\git\corefx\Tools\tests.targets(483,5): error : One or more tests failed while running tests from 'System.Console.Tests' please check [C:\git\corefx\bin/tests/System.Console.Tests/netcoreapp-Windows_NT-Debug-x64/testResults.xml](https://gist.github.com/kingces95/960d8ad1e5e2285050d76f51f2117da6) for details! [C:\git\corefx\src\System.Console\tests\System.Console.Tests.csproj]~ Verified fixed by #24147 >~C:\git\corefx\Tools\tests.targets(483,5): error : One or more tests failed while running tests from 'System.Net.NameResolution.Functional.Tests' please check [C:\git\corefx\bin/tests/System.Net.NameResolution.Functional.Tests/netcoreapp-Windows_NT-Debug-x64/testResults.xml](https://gist.github.com/kingces95/8bc9bb1890f922e71cf8e8dfc13c94fc) for details! [C:\git\corefx\src\System.Net.NameResolution\tests\FunctionalTests\System.Net.NameResolution.Functional.Tests.csproj]~ Verified fixed by #24009 and #24097 >~C:\git\corefx\Tools\tests.targets(483,5): error : One or more tests failed while running tests from 'System.Drawing.Common.Tests' please check [C:\git\corefx\bin/tests/System.Drawing.Common.Tests/netcoreapp-Windows_NT-Debug-x64/testResults .xml](https://gist.github.com/kingces95/915a8ab2b69fc39746092dd6e9148b3c) for details! [C:\git\corefx\src\System.Drawing.Common\tests\System.Drawing.Common.Tests.csproj]~ [The console log](https://gist.github.com/kingces95/519f568299dfa8590662fc3c12f7b0ba). +23994 area-Infrastructure NuGet package compability issue Some .NET packages are not supported on UWP, but they declare to support .NET Standard on NuGet.org. For example, System.Net.Security on NuGet says it supports .NET Standard, but it doesn't work on UWP. A ,NET standard package is supposed to be compatible with all platforms that supports .NET standard. But this isn't compatible with UWP. Even I know this package doesn't work with UWP, any .NET standard packages may include reference to these packages. They compile but don't work. It's hard for a developer to check compatibility for every packages. So, these packages shouldn't declare it supports .NET Standard. +23995 area-System.Net Make tests reliable around osx ping6 bug. fixes #19435 cc @danmosemsft +23996 area-System.Collections "Test: System.Collections.Tests.Dictionary_Generic_Tests_int_int/ICollection_Generic_Add_ToReadOnlyCollection failed with ""System.OutOfMemoryException""" Opened on behalf of @Jiayili1 The test `System.Collections.Tests.Dictionary_Generic_Tests_int_int/ICollection_Generic_Add_ToReadOnlyCollection(count: 0)` has failed. System.OutOfMemoryException : Exception of type 'System.OutOfMemoryException' was thrown. Stack Trace: at System.Collections.Tests.ICollection_Generic_Tests`1.ICollection_Generic_Add_ToReadOnlyCollection(Int32 count) Build : 2.0.0 - 20170913.01 (Core Tests) Failing configurations: - windows.10.amd64.iot-x64 - Release Detail: https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170913.01/workItem/System.Collections.Tests/analysis/xunit/System.Collections.Tests.Dictionary_Generic_Tests_int_int~2FICollection_Generic_Add_ToReadOnlyCollection(count:%200) +23999 area-System.Diagnostics "Test: System.Diagnostics.Tests.ProcessTests/ProcessStart_TryOpenFolder_UseShellExecuteIsTrue_DoesNotThrow failed with ""System.ComponentModel.Win32Exception""" Opened on behalf of @Jiayili1 The test `System.Diagnostics.Tests.ProcessTests/ProcessStart_TryOpenFolder_UseShellExecuteIsTrue_DoesNotThrow` has failed. System.ComponentModel.Win32Exception : No application is associated with the specified file for this operation Stack Trace: at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) at System.Diagnostics.Tests.ProcessTests.ProcessStart_TryOpenFolder_UseShellExecuteIsTrue_DoesNotThrow() Build : Master - 20170913.01 (Core Tests) Failing configurations: - Windows.10.Amd64.Core-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170913.01/workItem/System.Diagnostics.Process.Tests/analysis/xunit/System.Diagnostics.Tests.ProcessTests~2FProcessStart_TryOpenFolder_UseShellExecuteIsTrue_DoesNotThrow +24000 area-System.Net setup-kdc.sh is not installing Kerberos on some distros causing System.Net.Security.Tests.NegotiateStreamTests to no-op Opened on behalf of @Jiayili1 The test `System.Net.Security.Tests.NegotiateStreamTest/NegotiateStream_EchoServer_NTLM_ClientWriteRead_Successive_Async_Success` has failed. System.ComponentModel.Win32Exception : Invalid argument Stack Trace: at Interop.Sys.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Int32& lpChildPid, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean shouldThrow) in /root/corefx-987254/src/Common/src/Interop/Unix/System.Native/Interop.ForkAndExecProcess.cs:line 43 at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) in /root/corefx-987254/src/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs:line 291 at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) in /root/corefx-987254/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs:line 1248 at System.Net.Security.Tests.KDCSetup.CheckAndClearCredentials(ITestOutputHelper output) in /root/corefx-987254/src/System.Net.Security/tests/FunctionalTests/NegotiateStreamTestForUnix.cs:line 78 at System.Net.Security.Tests.NegotiateStreamTest..ctor(KDCSetup fixture, ITestOutputHelper output) in /root/corefx-987254/src/System.Net.Security/tests/FunctionalTests/NegotiateStreamTestForUnix.cs:line 151 Build : Master - 20170913.01 (Core Tests) Failing configurations: - suse.422.amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170913.01/workItem/System.Net.Security.Tests/analysis/xunit/System.Net.Security.Tests.NegotiateStreamTest~2FNegotiateStream_EchoServer_NTLM_ClientWriteRead_Successive_Async_Success +24001 area-System.IO Enhance API to work with temporary files and directories "## Rationale In [PowerShell repo](https://github.com/PowerShell/PowerShell) we have a feature request to create temporary files with custom extension (not "".tmp""). Also we internally have to implement a function to create a directory for temporary files. Windows has [GPO option](https://technet.microsoft.com/en-us/library/cc732258%28WS.10%29.aspx) to create session-based temporary directories. Creating temporary files/directories is security-related (specially on Unix) so it would be right to implement this in .Net Core. Unix has very power [mkstemps](http://man7.org/linux/man-pages/man3/mkstemp.3.html) fuction. It makes sense to give users its full functionality. ## Proposed API ## ```c# // if NewSubDir==true create new temporary directory as subdirectory in default temporary directory public static string GetTempPath(bool newSubDir) // Create new temp directory in 'InDirectory' directory public static string GetTempPath(string inDirectory) // Create a temp file with 'Suffix' extention public static string GetTempFileName(string suffix) // Create a temp file in 'InTempDirectory' directory public static string GetTempFileName(string inTempDirectory) // Optionally expose Unix 'mkstemps' function features and etc. public static string GetTempFileName(string prefix) public static string GetTempFileName(string prefix, string suffix) public static string GetTempFileName(string prefix, string suffix, int variableLength) public static string GetTempFileName(string prefix, string suffix, int variableLength, string inTempDirectory) ``` " +24002 area-System.Net Incorrectly closed websockets are throwing unobserved task exceptions Hello. We've stumbled upon unobserved task exceptions caused specifically by incorrectly closed websockets by the other side. The recorded stacktrace is: ``` 2017-09-12 20:06:55|dotnet-3673|FATAL|ASF|OnUnobservedTaskException() System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread. (The remote party closed the WebSocket connection without completing the close handshake.) ---> System.Net.WebSockets.WebSocketException: The remote party closed the WebSocket connection without completing the close handshake. ---> System.IO.IOException: Unable to transfer data on the transport connection: Broken pipe. ---> System.Net.Sockets.SocketException: Broken pipe --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.SslStreamInternal.StartWriting(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStreamInternal.ProcessWrite(Byte[] buffer, Int32 offset, Int32 count, LazyAsyncResult asyncResult) at System.Net.Security.SslStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncCallback asyncCallback, Object asyncState) at System.Threading.Tasks.TaskFactory`1.FromAsyncTrim[TInstance,TArgs](TInstance thisRef, TArgs args, Func`5 beginMethod, Func`3 endMethod) at System.IO.Stream.BeginEndWriteAsync(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at System.Net.WebSockets.ManagedWebSocket.SendFrameLockAcquiredNonCancelableAsync(MessageOpcode opcode, Boolean endOfMessage, ArraySegment`1 payloadBuffer) --- End of inner exception stack trace --- --- End of inner exception stack trace --- ---> (Inner Exception #0) System.Net.WebSockets.WebSocketException (0x80004005): The remote party closed the WebSocket connection without completing the close handshake. ---> System.IO.IOException: Unable to transfer data on the transport connection: Broken pipe. ---> System.Net.Sockets.SocketException: Broken pipe --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.SslStreamInternal.StartWriting(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslStreamInternal.ProcessWrite(Byte[] buffer, Int32 offset, Int32 count, LazyAsyncResult asyncResult) at System.Net.Security.SslStream.BeginWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncCallback asyncCallback, Object asyncState) at System.Threading.Tasks.TaskFactory`1.FromAsyncTrim[TInstance,TArgs](TInstance thisRef, TArgs args, Func`5 beginMethod, Func`3 endMethod) at System.IO.Stream.BeginEndWriteAsync(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Stream.WriteAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken) at System.Net.WebSockets.ManagedWebSocket.SendFrameLockAcquiredNonCancelableAsync(MessageOpcode opcode, Boolean endOfMessage, ArraySegment`1 payloadBuffer)<--- ``` The original issue was reproduced on **[Arch Linux](https://aur.archlinux.org/packages/dotnet/)**, but I believe that the OS doesn't have any say in this. We're trying to reproduce the issue also on one of the official builds, perhaps Windows. Based on my discussion with the library devs that are utilizing websockets, it looks like the issue might be connected with **[this](https://github.com/SteamRE/SteamKit/issues/452#issuecomment-329069703)**: > This might actually be a bug in .NET Core itself. [This function](https://source.dot.net/#System.Net.WebSockets/Common/System/Net/WebSockets/ManagedWebSocket.cs,519) is invoked by a timer and the task is not observed. All other code paths appear to be properly awaited. Thank you in advance. ``` Microsoft .NET Core Shared Framework Host Version : 2.0.0 Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d ``` References: https://github.com/JustArchi/ArchiSteamFarm/issues/612#issuecomment-329015761 https://github.com/SteamRE/SteamKit/issues/452 +24004 area-System.Linq Getting a property in an interpreted expression always calls the setter with the retrieved value ## Use case I'm not directly using .NET Core in this use case, but I'm working with UWP (which uses this underneath). **Functional**: search for a string value in all the properties of an object **Technical**: I have a compiled (so in .NET Core, that means _interpreted_) expression that loops through an object and retrieves all its string properties. It then does `.Contains()` on them with a value. ## What is happening The code on the referenced line (2305) does the following: 1. Retrieve the value of a property (`get`) 1. Verify if the property if writable 1. If so, write the retrieved value to the property https://github.com/dotnet/corefx/blob/master/src/System.Linq.Expressions/src/System/Linq/Expressions/Interpreter/LightCompiler.cs#L2305 ## What I expected I didn't expect the expression to call the setter of my property. This has implications and triggers a lot of other code that is not related to retrieving the property. ## Workaround Immediately return the setter if the previous value equals the new value. +24005 area-System.Net Fix return value of partially successful Socket.Send Fixes https://github.com/dotnet/corefx/issues/23672 CC @stephentoub +24006 area-System.Net Add ReadOnlyMemoryContent to System.Net.Http Allows `{ReadOnly}Memory`s to be uploaded in HttpClient requests. Fixes https://github.com/dotnet/corefx/issues/22612 Contributes to https://github.com/dotnet/corefx/issues/22404 cc: @geoffkizer, @davidsh, @KrzysztofCwalina, @ahsonkhan +24008 area-System.Net MulticastInterface_Set_AnyInterface_Succeeds test hangs on Fedora +24009 area-System.Drawing Fix a spurious test failure in System.Drawing.Common.Tests Also, add a better message to another failure being hit. +24010 area-System.Net Disable MulticastInterface_Set_AnyInterface_Succeeds test on Fedora All Fedora runs hang because of this. https://github.com/dotnet/corefx/issues/24008 cc: @geoffkizer, @tmds +24012 area-Infrastructure System.Runtime.CompilerServices.Unsafe does not have Windows file metadata Due to the way we build ilproj files, System.Runtime.CompilerServices.Unsafe.dll does not have Windows file metadata. ![image](https://user-images.githubusercontent.com/8918977/30396460-8c7e8b0a-987e-11e7-87f9-761af0d91d51.png) We do have the equivalent managed attributes defined in IL: https://github.com/dotnet/corefx/blob/master/src/System.Runtime.CompilerServices.Unsafe/src/System.Runtime.CompilerServices.Unsafe.il#L12-L17. https://github.com/dotnet/corefx/blob/master/src/System.Runtime.CompilerServices.Unsafe/src/System.Runtime.CompilerServices.Unsafe.il#L40 Apparently, getting the Windows file metadata embedded can be accomplished using a .res file. We could easily pass that file into the parameters of ILAsm (/RESOURCE:), assuming the option is supported everywhere -- including non-Windows platforms. I'm not sure there is an easy way to generate this resource file, though. @eerhardt +24013 area-System.Security Provide SignXml class without XmlDocument components. This is for Enhancement only. Our development team at my company is unable to use `SignXml` class because it require `XmlDocument` component. This `XmlDocument` does NOT work with the invalid xml data which contains about 6,000 xml-nametag. This invalid xml data is provided by 3rd party company that is last updated 12 years ago and it won't modify this invalid xml because of their integration mess. Looking at `SignXml.cs` source code in this GitHub, I discovered that it is only a xml builder that use varieties of Crypography stuff that get assigned as xml's value. This show that is is possible to use Cryptography without XmlDocument somehow. We have no control over telling `XmlDocument` to ignore invalid xml data for this to work. +24015 area-Serialization Remove ContinueAsError in sgen test @shmao +24018 area-Infrastructure System.Runtime.Serialization.Primitives version 4.2.0.0 "I recently started migrating some library projects to .NET Standard 2.0. In my solution, I have a .NET 4.6.1 WPF application, a .NET 4.6.1 test project, and a handful of .NET Standard 1.4 and .NET Standard 2.0 class libraries. Since targeting .NET Standard 2.0, tests are failing with the following error: ``` System.IO.FileLoadException : Could not load file or assembly 'System.Runtime.Serialization.Primitives, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) ----> System.IO.FileLoadException : Could not load file or assembly 'System.Runtime.Serialization.Primitives, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) ``` I had many headaches with System.Runtime.Serialization.Primitives and binding redirects when first targeting .NET Standard 1.4 (ref: #16823). I was able to resolve most issues by installing System.Runtime.Serialization.Primitives package version 4.3.0 explicitly in pretty much every project and adding the following binding redirect: ``` ``` Now I'm not sure what to do to move forward. I can't seem to find a package available that provides System.Runtime.Serialization.Primitives version 4.2.0.0, and attempting to update the binding redirect to downgrade from 4.2.0.0 to 4.1.2.0 has no effect (I don't think the test runner honors the project's binding redirects)." +24021 area-System.Net Make ping tests reliable on OSX. fixes #23876 #19514 cc @danmosemsft +24022 area-System.Data Data Column returns wrong data type Basically my SqlCommand selects from a view in the SQL server database, using SqlDataAdapter I fill a DataTable, all data seems to be returned, however columns that with datetime2 type are returned as strings. What it seems like datetime2 fields are mapped to string. +24025 area-Infrastructure Use Portable PDBs and turn on SourceLink This pull request, as well as its companion in the CoreClr repository are tiny (they basically set an MSBUILD variable), but the result is that we generate Portable PDBs rather than MS-PDBs during the build). The immediate value of this change is that we can turn on SourceLink support which allows Visual Studio to 'just work' and step into source it fetches from this Github repository. This is an important step in getting this working for our shipped builds. It is possible to get SourceLink working without generating Portable PDBs but I believe we want to move in this direction sooner rather than later because. 1. ASP.NET ships this way (and we expect most code will ship using Portable PDBs) 2. This is the way we ship on Linux 3. VSCode only supports portable PDBs (at least in my experimentation). 4. Because of (1) we already have support for generating MS-PDBs from the portable ones and uploading them to Microsoft Symbol Servers (which currently only support In short, uniformity is good, and this makes us significantly more uniform. The only issue is what 'breaks'. Because of (4), it is not clear that any important scenario is actually broken by the change. To the degree that we publish PDBs via the MS symbol server, those were converted before publication so things will work as the do now. For private builds, VS works with portable PDBs. Tests should be using portable (so they can run on Linux too). Now I am sure that we might break something, but we are likely to be close enough that it is easier/better to simply try it and clean it up (or revert it), if we run into issues. But I have marked this NO-MERGE for the time being so that we can vet any concerns. If after several days of vetting we have addressed all concerns we would be in a position to proceed. Please include anyone you believe may be impacted by this. @dagood @mikem8361 @ericstj @jkotas @lt72 @Petermarcu @markwilkie @weshaggard @tmat @Eilon @karelz @danmosemsft +24026 area-System.Runtime Please provide an API to locate an assembly file by name without loading I'm using the MetadataReader to generate public API surface files such as https://pastebin.com/nLSzWPBA. For the most part, it's a breeze. When it comes to deserializing enum attribute arguments, the System.Reflection.Metadata API requires me to provide the underlying type and then of course I want to be able to output that as the appropriate field name rather than as an integer cast to the enum's name. This requires me to look up an assembly on disk given (1) the path to the assembly I'm currently examining and (2) an AssemblyName instance which I create from the AssemblyReferenceHandle. It's easy enough to use `Assembly.ReflectionOnlyLoad` and non-Metadata reflection API to locate the enum field, but I see even `ReflectionOnlyLoad` as undesirable: - It keeps the assembly in memory - It slows the process down by reading and processing more than it absolutely needs to - It loads in the context of the generating process, not the assembly being examined which might be anywhere on disk, so it might resolve to the wrong file - In the process of examining multiple assemblies, it might try to load different versions of an assembly with the same name and no strong name - It forces me to switch from doing everything with the MetadataReader to reimplementing the same logic with ‘normal’ reflection for enums defined outside the assembly being examined Would you please expose an API which locates the assembly that would be loaded if the running process were the assembly being examined, given the `AssemblyName`, and passes back a file path which I can then open with the MetadataReader? Is there a better way to achieve what I want without this API, and without the list of issues that I see with `Load` and `ReflectionOnlyLoad`? I'm imagining it could be something like this: [updated per [comment](https://github.com/dotnet/corefx/issues/24026#issuecomment-329531864)] ```cs class System.Runtime.Loader.AssemblyLoadContext { public static string Locate(AssemblyName assemblyString, string baseDirectory); } ```` Or if it could be useful to the location logic to know not only the base path but some metadata in the assembly that the assembly reference came from: ```cs class System.Runtime.Loader.AssemblyLoadContext { public static string Locate(AssemblyName assemblyString, string forAssemblyPath); } ```` +24027 area-System.Net release/2.0: Fix return value of partially successful Socket.Send (#24005) Port https://github.com/dotnet/corefx/pull/24005 to release/2.0.0. cc: @tmds, @geoffkizer, @davidsh +24028 area-System.Runtime stack smashing detected "when I was debuging the project with VSCode on ubuntu16.04,I met with the ""stack smashing detected"" exception and the project paused immediately.This exception occurs when the program try to load a .so file that is programed in C and compiled by GCC on ubuntu16.04 .The program attempt to access a function defined in the .so file and then the ""stack smashing detected"" exception comes along.I try to fix it but failed ## the code is here: `[DllImport(""TripleDES.dll"", CallingConvention = CallingConvention.Cdecl)] static extern int data_convert([MarshalAs(UnmanagedType.LPArray)]byte[] indata, int in_len, [MarshalAs(UnmanagedType.LPArray)]byte[] outdata, int flag, [MarshalAs(UnmanagedType.LPArray)] byte[] key);` ## I use the data_convert function here: `byte[] toEncrypt = Encoding.UTF8.GetBytes(this.GetString(strString)); byte[] key = Encoding.UTF8.GetBytes(this.GetKeyCode(this.Keys)); byte[] result = new byte[256]; int count = data_convert(toEncrypt, en_len, result, 1, key); byte[] resultBytes = new byte[count]; Array.Copy(result, 0, resultBytes, 0, count)` ## the data_convert function in the .c file : `int data_convert(unsigned char *in,int in_len,unsigned char * out,char flag,unsigned char *key)`" +24029 area-Infrastructure Linux cross build break for ARM "When cross building for ARM on x64 host, following error is observed. ``` $ ./build-managed.sh -release -buildArch=arm -RuntimeOS=ubuntu.14.04 -BuildTests=True -SkipTests=True -BuildPackages=False -- /p:Outerloop=True ... Microsoft.XmlSerializer.Generator.Tests -> /opt/code/github/hqueue/corefx/bin/AnyOS.AnyCPU.Release/Microsoft.XmlSerializer.Generator.Tests/netcoreapp/Microsoft.XmlSerializer.Generator.Tests.dll /lib/ld-linux-armhf.so.3: No such file or directory /opt/code/github/hqueue/corefx/src/Microsoft.XmlSerializer.Generator/tests/Microsoft.XmlSerializer.Generator.Tests.csproj(57,5): error MSB3073: The command ""/opt/code/github/hqueue/corefx/bin/testhost/netcoreapp-Linux-Release-arm/dotnet /opt/code/github/hqueue/corefx/bin/AnyOS.AnyCPU.Release/Microsoft.XmlSerializer.Generator.Tests/netcoreapp/dotnet-Microsoft.XmlSerializer.Generator.dll /opt/code/github/hqueue/corefx/bin/AnyOS.AnyCPU.Release/Microsoft.XmlSerializer.Generator.Tests/netcoreapp/Microsoft.XmlSerializer.Generator.Tests.dll /force /casesensitive"" exited with code 255. ``` " +24030 area-Serialization Disable building Microsoft.XmlSerializer.Generator.Tests for ARM Fix #24029 `Microsoft.XmlSerializer.Generator.Tests` has been enabled for Linux from #23978. However there is a build break when cross building for ARM, because it tries to use target `dotnet` which is ARM binary when building. So simply disable building this test for ARM. +24033 area-System.Security Des decrypt raised 'Offset and length were out of bounds... ' " My code like below. It works fine in .net framework4.6.1, But it raised exception in .net core 2.0. The exception raised in the line ` cs.Write(inputByteArray, 0, inputByteArray.Length); ` . The message is `System.ArgumentException:“Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.” `. Anyone help? ```c# using System; using System.Security.Cryptography; using System.Text; namespace ConsoleApp2 { class Program { public static string Md5Hash(string input) { MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider(); byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input)); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString(""x2"")); } return sBuilder.ToString().ToUpper(); } public static string Decrypt(string Text, string sKey) { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); int len = 0; len = Text.Length / 2; byte[] inputByteArray = new byte[len]; int x = 0; int i = 0; for (x = 0; x <= len - 1; x++) { i = Convert.ToInt32(Text.Substring(x * 2, 2), 16); inputByteArray[x] = Convert.ToByte(i); } des.Key = ASCIIEncoding.ASCII.GetBytes(Md5Hash(sKey).Substring(0, 8)); des.IV = ASCIIEncoding.ASCII.GetBytes(Md5Hash(sKey).Substring(0, 8)); System.IO.MemoryStream ms = new System.IO.MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); return Encoding.Default.GetString(ms.ToArray()); } static void Main(string[] args) { var s = Decrypt(""973335E697BFF06DC9F9481008526545458CCEB78D8717561617C2414464DBF451E44D4071EB03788CAA6B4560BA127493EF142A95AEF87349F4ADFDA82C5810FA2319F45E275057700474332D438849F7F26B63063EE6A3BD9D15354922C8E5965D20F075060C23FEFDF8C013A74D8640EE59D9DA687BD30CFD41B861F4DCF0294A4A4AF699738C8E6387275B742CE647EE733B572A8EDEAA099E854D11095D"", ""buyongji""); Console.WriteLine(s); } } } ```" +24034 area-Infrastructure Disable binplacing test framework when -BuildTests=false This change disables syncing and binplacing of test framework when the -BuildTests option passed to build.sh or sync.sh is set to false. This is helpful when bootstrapping a new platform where the core-setup is not built yet and so the Microsoft.NETCore.DotNetHost and Microsoft.NETCore.DotNetAppHost packages that are required for the test running don't exist yet. +24035 area-Infrastructure Enable end to end Alpine corefx build This change enables full end to end build of corefx including managed code on Alpine Linux. +24036 area-Infrastructure Update CI Fedora firewall rules We had some issue in the past where MulticastInterface_Set_AnyInterface_Succeeds was hanging on Fedora CI. This was discussed here: https://github.com/dotnet/corefx/issues/13323. Resolution was to update the firewall rules to make the test pass: > find the local port range by executing sysctl net.ipv4.ip_local_port_range to allow a udp port range do something like this: firewall-cmd --zone=public --add-port=4990-4999/udp adding the --permanent flag will make this persistent. You need to restart the firewall to make it use the permanent rule. This test is now hanging again and is disabled on Fedora: https://github.com/dotnet/corefx/pull/24010 Perhaps the new Fedora CI machines (Fedora 25 and 26) are not configuring the firewall? CC @stephentoub @Priya91 @MattGal +24039 area-System.IO Proposal: Add protected {Unmanaged}MemoryStream.Read/WriteSpan method We've added new virtual `Read(Span)` and `Write(ReadOnlySpan)` methods to Stream, and overridden them on MemoryStream and UnmanagedMemory stream. However, these new overrides can't just directly write to the in-memory storage: existing types derived from these that override the existing Read/Write virtuals would have their logic skipped until they also overrode the new property. To address that, these overrides check the concrete type of the stream (e.g. `if (GetType() == typeof(MemoryStream)`), writing directly to the storage of it's not a derived type, and delegating to the existing virtuals if it is a derived type. This, however, causes a potential perf issue for a derived type. It's often the case with such derived types that they do a bit of work and then delegate to the base implementation, but that base implementation will then proceed to see that it's a derived type and skip the efficient path. To re-enable that efficiency, we need a way for the derived type overriding the new virtuals to call the efficient implementation and skip the type check. I propose we add the following: ```C# class MemoryStream & class UnmanagedMemoryStream { protected void WriteSpan(ReadOnlySpan source); protected int ReadSpan(Span destination); } ``` to both MemoryStream and UnmanagedMemoryStream. cc: @JeremyKuhne, @ianhays, @KrzysztofCwalina, @ahsonkhan +24040 area-System.IO NamedPipeServerStream: Provide support for WRITE_DAC When creating a `NamedPipeServerStream` on Windows, `WRITE_DAC` on `CreateNamedPipe` will always be unset. On netfx we had a constructor that took a `PipeSecurity` object with ACL info but we had to take that out for netcore/netstandard. We should add a new entry on netcoreapp to the `PipeOptions` enum to set WRITE_DAC: ``` [Flags] public enum PipeOptions { None = 0x0, WriteThrough = unchecked((int)0x80000000), // corresponds to FILE_FLAG_WRITE_THROUGH Asynchronous = unchecked((int)0x40000000), // corresponds to FILE_FLAG_OVERLAPPED, WriteDac = unchecked((int)0x00040000L), // corresponds to WRITE_DAC } ``` cc: @bartonjs @stephentoub @jaredpar +24041 area-Serialization Microsoft.XmlSerializer.Generator need output the assembly The SGEN tool can only output the serialization c# code. You cannot use it directly to output the assembly. You have to use it together with the .csproj so as to output the assembly. Need find way to compile it as an assembly. +24043 area-System.Net HttpUtility - Add Mono copyright line We forgot to add Mono copyright lines to HttpUtility.cs when we reused the code. See https://github.com/dotnet/corefx/pull/23918#issuecomment-329558714 for more details. +24045 area-System.Net Fix Dns tests on OSX. fixes #23824 cc @danmosemsft +24046 area-System.Security Add env var to enable overriding the OpenSSL version Recently there were several reports of problems that people were having on Debian due to having two libssl libraries with sonames libssl.so.1.0.0 and libssl.so.1.0.2 installed at once. In case the installed libcurl was build against libssl.so.1.0.2, we end up having both versions of libssl loaded in the process. And only the one with version 1.0.0 gets the locks initialized and so we end up crashing due to the infamous multithreading issue. Since our SSL shim doesn't know which version of SSL the CURL uses, I think that it would make sense to add an env variable that would enable overriding the OpenSSL version .NET core uses. That way, people could workaround this problem if they hit it. +24048 area-System.Diagnostics When using Process.Start with UseShellExecute,the process is null on some windows runtimes "**Summary**: using Process.Start when UseShellExecute is set, returns null process on some windows runtimes when it is used to open a file. Code sample ``` using (var px = Process.Start(new ProcessStartInfo { UseShellExecute = true, FileName = fileToOpen })) { ... /* px is null */ } ``` Refer to existing test in corefx ([here](https://github.com/dotnet/corefx/blob/a16368dc4694c0334a8794107a9e868020f0bed5/src/System.Diagnostics.Process/tests/ProcessTests.cs#L182)): *ProcessStart_UseShellExecute_OnWindows_DoesNotThrow(isFolder:false)* Process px was null using ([logs](https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows_prtest/56/consoleFull#19963278882d31e50d-1517-49fc-92b3-2ca637122019)): ``` ProductType=8InstallationType=Server OS=Microsoft Windows 6.3.9600 OSVer=Microsoft Windows NT 6.2.9200.0 OSArch=X64 Arch=X64 Framework=.NET Core 4.6.25714.01 ``` but when running the same test on another Windows NT machine (Win 10) locally, the process is not null: ``` ProductType=4InstallationType=Client OS=Microsoft Windows 10.0.15063 OSVer=Microsoft Windows NT 6.2.9200.0 OSArch=X64 Arch=X64 Framework=.NET Core 4.6.25714.01 ``` Code sample to help with debugging: ``` private void DumpRuntimeInformationToConsole() { // Not really a test, but useful to dump to the log to // sanity check that the test run or CI job // was actually run on the OS that it claims to be on string dvs = PlatformDetection.GetDistroVersionString(); string osd = RuntimeInformation.OSDescription.Trim(); string osv = Environment.OSVersion.ToString(); string osa = RuntimeInformation.OSArchitecture.ToString(); string pra = RuntimeInformation.ProcessArchitecture.ToString(); string frd = RuntimeInformation.FrameworkDescription.Trim(); Console.WriteLine($@""{dvs} OS={osd} OSVer={osv} OSArch={osa} Arch={pra} Framework={frd}""); } ```" +24049 area-Serialization Cannot build Core FX tests on Linux "I encountered the following error while building FX tests: ``` $ ./build-managed.sh -release -SkipTests -- /maxcpucount:4 /p:BinPlaceNETCoreAppPackage=true ... Microsoft.XmlSerializer.Generator.Tests -> /var/jenkins/workspace/FX/FX_Managed_Release/repo/code/bin/AnyOS.AnyCPU.Release/Microsoft.XmlSerializer.Generator.Tests/netcoreapp/Microsoft.XmlSerializer.Generator.Tests.dll System.Collections.Immutable.Tests -> /var/jenkins/workspace/FX/FX_Managed_Release/repo/code/bin/AnyOS.AnyCPU.Release/System.Collections.Immutable.Tests/netcoreapp/System.Collections.Immutable.Tests.dll System.Collections.Tests -> /var/jenkins/workspace/FX/FX_Managed_Release/repo/code/bin/AnyOS.AnyCPU.Release/System.Collections.Tests/netcoreapp/System.Collections.Tests.dll System.Composition.Convention.Tests -> /var/jenkins/workspace/FX/FX_Managed_Release/repo/code/bin/AnyOS.AnyCPU.Release/System.Composition.Convention.Tests/netcoreapp/System.Composition.Convention.Tests.dll System.ComponentModel.Annotations.Tests -> /var/jenkins/workspace/FX/FX_Managed_Release/repo/code/bin/AnyOS.AnyCPU.Release/System.ComponentModel.Annotations.Tests/netcoreapp/System.ComponentModel.Annotations.Tests.dll System.ComponentModel.TypeConverter.Tests -> /var/jenkins/workspace/FX/FX_Managed_Release/repo/code/bin/AnyOS.AnyCPU.Release/System.ComponentModel.TypeConverter.Tests/netcoreapp/System.ComponentModel.TypeConverter.Tests.dll System.Diagnostics.Debug.Tests -> /var/jenkins/workspace/FX/FX_Managed_Release/repo/code/bin/AnyOS.AnyCPU.Release/System.Diagnostics.Debug.Tests/netcoreapp/System.Diagnostics.Debug.Tests.dll System.Diagnostics.Tracing.Tests -> /var/jenkins/workspace/FX/FX_Managed_Release/repo/code/bin/AnyOS.AnyCPU.Release/System.Diagnostics.Tracing.Tests/netcoreapp/System.Diagnostics.Tracing.Tests.dll System.Drawing.Primitives.Tests -> /var/jenkins/workspace/FX/FX_Managed_Release/repo/code/bin/AnyOS.AnyCPU.Release/System.Drawing.Primitives.Tests/netcoreapp/System.Drawing.Primitives.Tests.dll Unhandled Exception: System.DllNotFoundException: Unable to load DLL 'System.Native': The specified module or one of its dependencies could not be found. (Exception from HRESULT: 0x8007007E) at Interop.Sys.Dup(SafeFileHandle oldfd) at Microsoft.Win32.SafeHandles.SafeFileHandleHelper.Open(Func`1 fdFunc) at System.ConsolePal.OpenStandardError() at System.Console.<>c.b__27_0() at System.Threading.LazyInitializer.EnsureInitializedCore[T](T& target, Object& syncLock, Func`1 valueFactory) at Microsoft.XmlSerializer.Generator.Sgen.WriteError(Exception e) at Microsoft.XmlSerializer.Generator.Sgen.Run(String[] args) at Microsoft.XmlSerializer.Generator.Sgen.Main(String[] args) Aborted (core dumped) /var/jenkins/workspace/FX/FX_Managed_Release/repo/code/src/Microsoft.XmlSerializer.Generator/tests/Microsoft.XmlSerializer.Generator.Tests.csproj(57,5): error MSB3073: The command ""/var/jenkins/workspace/FX/FX_Managed_Release/repo/code/bin/testhost/netcoreapp-Linux-Release-x64/dotnet ... ``` Is there any requirement to build this test on Linux? I couldn't understand why it failed to find ``System.Native``." +24053 area-System.Runtime BigInteger based random testing of System.Decimal New comprehensive tests are needed for a significantly improved managed decimal implementation: https://github.com/dotnet/corert/pull/4452#issuecomment-328376473, at first in CoreRT, but hopefully later shared with CoreCLR. These tests compare `System.Decimal` cmp/add/mul/div results against a `BigInteger` based reference implementation using ~1000 different random decimals covering every scale and sign with ~20 different bit-patterns each (about 950k combinations). It adds about 1-2 seconds to `System.Runtime` test execution time (from 10s to 12s) - is this acceptable? +24054 area-Serialization Add warning by default in SGEN Output the warning by default when the customer try to run our tool directly. Add a parameter quiet to suppress this message when using it in the .csproj. @shmao @zhenlan @mconnew +24055 area-System.Net Ignore unhandled exceptions from ManagedWebSocket keep-alive pings ManagedWebSocket has configurable timer-based keep-alive pings it sends to the remote server. If such calls fail, such as due to the connection getting closed, we just swallow the exception. But the way the exception is currently being swallowed results in a faulted task whose exception is never observed, resulting in the unobserved exception event being raised. Since our intention is to eat these errors and completely ignore them, we don't want the event raised. This commit just observes any such exceptions. Fixes https://github.com/dotnet/corefx/issues/24002 (or, at least, it fixes the only potential cause of it I currently see in the actual library code) cc: @geoffkizer, @Priya91 +24056 area-System.Net Add Socket.Send/Receive concurrency test Help validate that on Unix we're able to invoke Send/Receive multiple times to run concurrently on the same socket instance. We already have similar tests for Send/ReceiveAsync, so this just adds one for the synchronous Send/Receive. cc: @geoffkizer, @wfurt +24057 area-System.Net Add logging to ManagedWebSocket We currently don't do any logging with NetEventSource. We should. +24060 area-System.Diagnostics Refactoring code. No changes made to logic. Applying code review comments requested from pr #24060 cc: @danmosemsft @safern @joperezr +24062 area-Meta ObsoleteAttribute does not cause error when message is null "```csharp private static void Foo() { Foo1(); // warning CS0612 Foo2(); // error CS0619 } [Obsolete(null, error: true)] private static void Foo1() { } [Obsolete("""", error: true)] private static void Foo2() { } ``` Tested with .NET Core 1.1.0 Where is this behaviour documented? " +24064 area-System.ComponentModel "Test: System.ComponentModel.DataAnnotations.Tests.MaxLengthAttributeTests/GetValidationResult_ValueNotStringOrICollection_ThrowsInvalidCastException failed with ""System.Reflection.MissingMetadataException""" Opened on behalf of @Jiayili1 The test `System.ComponentModel.DataAnnotations.Tests.MaxLengthAttributeTests/GetValidationResult_ValueNotStringOrICollection_ThrowsInvalidCastException` has failed. Assert.Throws() Failure\r Expected: typeof(System.InvalidCastException)\r Actual: typeof(System.Reflection.MissingMetadataException): This operation cannot be carried out because metadata for the following object was removed for performance reasons:\ \ EETypeRva:0x0003A200\ \ No further information is available. Rebuild in debug mode for better information.\ \ Stack Trace: at System.Reflection.Runtime.TypeInfos.RuntimeNoMetadataNamedTypeInfo.get_InternalFullNameOfAssembly() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\TypeInfos\RuntimeBlockedTypeInfo.cs:line 229 at System.Reflection.Runtime.BindingFlagSupport.PropertyPolicies.CoreGetDeclaredMembers($RuntimeTypeInfo type, $NameFilter optionalNameFilter, $RuntimeTypeInfo reflectedType) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\BindingFlagSupport\PropertyPolicies.cs:line 23 at System.Reflection.Runtime.BindingFlagSupport.QueriedMemberList$1.Create($RuntimeTypeInfo type, String optionalNameFilter, Boolean ignoreCase) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\BindingFlagSupport\QueriedMemberList.cs:line 123 at System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo.TypeComponentsCache.PerNameQueryCache$1.Factory(String key) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\TypeInfos\RuntimeTypeInfo.TypeComponentsCache.cs:line 124 at System.Collections.Concurrent.ConcurrentUnifier$2.GetOrAdd(__Canon key) in f:\dd\ndp\fxcore\CoreRT\src\Common\src\System\Collections\Concurrent\ConcurrentUnifier.cs:line 112 at System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo.Query(String optionalName, BindingFlags bindingAttr, Func$2<__Canon,Boolean> optionalPredicate) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\TypeInfos\RuntimeTypeInfo.BindingFlags.cs:line 192 at System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo.GetPropertyImpl(String name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\TypeInfos\RuntimeTypeInfo.BindingFlags.cs:line 122 at System.ComponentModel.DataAnnotations.CountPropertyHelper.TryGetCount(Object value, Int32& count) in E:\A\_work\690\s\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\MaxLengthAttribute.cs:line 132 at System.ComponentModel.DataAnnotations.MaxLengthAttribute.IsValid(Object value) in E:\A\_work\690\s\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\MaxLengthAttribute.cs:line 78 at System.ComponentModel.DataAnnotations.ValidationAttribute.IsValid(Object value, $ValidationContext validationContext) in E:\A\_work\690\s\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\ValidationAttribute.cs:line 380 at System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, $ValidationContext validationContext) in E:\A\_work\690\s\corefx\src\System.ComponentModel.Annotations\src\System\ComponentModel\DataAnnotations\ValidationAttribute.cs:line 424 at System.ComponentModel.DataAnnotations.Tests.MaxLengthAttributeTests.<>c.b__10_0() in E:\A\_work\690\s\corefx\src\System.ComponentModel.Annotations\tests\MaxLengthAttributeTests.cs:line 124 at System.Func$1.Invoke() in Invoke:line 16707566 Build : Master - 20170915.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release - Debug - Windows.10.Amd64.ClientRS3-x64 - Release - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170915.01/workItem/System.ComponentModel.Annotations.Tests/analysis/xunit/System.ComponentModel.DataAnnotations.Tests.MaxLengthAttributeTests~2FGetValidationResult_ValueNotStringOrICollection_ThrowsInvalidCastException +24065 area-System.Net Test: System.Net.Tests.HttpRequestStreamTests / EndRead_InvalidAsyncResult_ThrowsArgumentException Opened on behalf of @Jiayili1 The test `System.Net.Tests.HttpRequestStreamTests/EndRead_InvalidAsyncResult_ThrowsArgumentException(chunked: True)` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Exception : Exception from HRESULT: 0x80072EFE Stack Trace: at System.Net.Http.HttpClientHandler.d__111.MoveNext$catch$1() in E:\A\_work\690\s\corefx\src\System.Net.Http\src\uap\System\Net\HttpClientHandler.cs:line 616 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter$1.GetResult() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 477 at System.Net.Http.HttpClient.d__58.MoveNext$catch$0() in E:\A\_work\690\s\corefx\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 464 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter$1.GetResult() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 477 at System.Net.Tests.HttpRequestStreamTests.d__21.MoveNext() in E:\A\_work\690\s\corefx\src\System.Net.HttpListener\tests\HttpRequestStreamTests.cs:line 571 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter$1.GetResult() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 477 at System.Net.Http.HttpHandlerToFilter.d__15.MoveNext$catch$1() in E:\A\_work\690\s\corefx\src\System.Net.Http\src\uap\System\Net\HttpHandlerToFilter.cs:line 100 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter$1.GetResult() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 477 at System.Net.Http.HttpClientHandler.d__111.MoveNext() in E:\A\_work\690\s\corefx\src\System.Net.Http\src\uap\System\Net\HttpClientHandler.cs:line 607 Build : Master - 20170915.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170915.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpRequestStreamTests~2FEndRead_InvalidAsyncResult_ThrowsArgumentException(chunked:%20True) +24066 area-System.Diagnostics "System.Diagnostics.Tests.ProcessTests.ProcessStart_UseShellExecute_OnUnix_ThrowsIfNoProgramInstalled failed with ""System.ComponentModel.Win32Exception : No such file or directory"" in CI" Failed test: System.Diagnostics.Tests.ProcessTests.ProcessStart_UseShellExecute_OnUnix_ThrowsIfNoProgramInstalled Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_centos7.1_debug/169/testReport/System.Diagnostics.Tests/ProcessTests/ProcessStart_UseShellExecute_OnUnix_ThrowsIfNoProgramInstalled_isFolder__True_/ Failed configuration: OuterLoop_netcoreapp_centos7.1_debug MESSAGE: ~~~ System.ComponentModel.Win32Exception : No such file or directory ~~~ STACK TRACE: ~~~ at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs:line 270 at System.Diagnostics.Process.Start() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs:line 1205 at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Diagnostics.Process/src/System/Diagnostics/Process.cs:line 1248 at System.Diagnostics.Tests.ProcessTests.ProcessStart_UseShellExecute_OnUnix_ThrowsIfNoProgramInstalled(Boolean isFolder) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_centos7.1_debug/src/System.Diagnostics.Process/tests/ProcessTests.Unix.cs:line 100 ~~~ +24067 area-System.Memory Few questions about the Memory Hello guys! I am currently trying to update my blog post/presentation about Span. I read the code and I have few questions. I hope that you can help me to get a better understanding. 1. One of the reasons for making `Span` and `ReadOnlySpan` a stack-only types was to avoid struct tearing. `Memory` is a struct and it consist of 3 fields. By design it's not stack-only. Is it not going to suffer from struct tearing? Why is it not a class? 2. `ReadOnlyMemory.DangerousTryGetArray` is breaking the encapsulation by exposing `ArraySegment` which allows to modify the content via indexer (it has a setter). It's hidden from the IDE via `EditorBrowsable` attribute and has a name that indicates the consequences. Is this method really needed? Why not to introduce new type like `ReadOnlyArraySegment` ? cc @KrzysztofCwalina @jkotas +24068 area-System.Net Zero Width Space Hei guys, for some reason you are using [Zero Width Spaces](https://www.compart.com/en/unicode/U+200B) in your source code. Here is what my editor shows: ```csharp using RTWeb<200b>Socket<200b>Error = Windows.Networking.Sockets.Web<200b>Socket<200b>Error; ``` Even the github syntax highlighter breaks; https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/src/System/Net/WebSockets/WinRTWebSocket.cs#L25 Does the original source of RT have them too? I did a blame and it seems @Diego-Perez-Botero commited in #21600 the zero width space unicode chars. +24069 area-System.Net Do not use zero width spaces Fixes #24068 +24070 area-System.Diagnostics Process.MainModule doesn't return the proper module in some cases "TL;DR - the System.Diagnostics.Process.MainModule returns other module than the main one in some cases. When trying to build CoreCLR in Alpine docker container, I have bumped into a strange issue when msbuild would fail with internal error when forking another copy of itself. strace revealed that it was calling ""access"" syscall with ""Tools/dotnetcli/shared/Microsoft.NETCore.App/2.0.0-preview1-002111-00/System.Private.CoreLib.ni.dll"" file as a parameter. Looking at where that syscall came from, it turned out it was SystemNative_ForkAndExecProcess in System.Native.so, which was called from a call chain stemming from Microsoft.Build.BackEnd.NodeProviderOutOfProcBase.LaunchNode. This function was passing in a result of the System.Diagnostics.Process.MainModule and it was returning that dll instead of the actual main module. It turns out that the System.Diagnostics.Process.MainModule relies on the main module being the first module listed in the /proc/self/maps. But in the Alpine container, it was not the case. I can see two ways to fix that. Either ensure that the modules ProcessManager.GetModules always returns the main module as the first one or change the System.Diagnostics.Process.MainModule to search for the main exe by looping through all the modules and comparing their FileName to the Process.GetExePath(). And probably caching the result. I've verified that the second approach works. " +24072 area-System.Memory Span extension method to slice off of a string instance # [Current API proposal](https://github.com/dotnet/corefx/issues/24072#issuecomment-347610584) TODO (see https://github.com/dotnet/corefx/issues/24072#issuecomment-349412729): Add array overloads. Consider ArraySegment overloads for consistency. ```cs public static class MemoryExtensions { public static ReadOnlySpan AsReadOnlySpan(this string text, int start); public static ReadOnlySpan AsReadOnlySpan(this string text, int start, int length); public static ReadOnlyMemory AsReadOnlyMemory(this string text, int start); public static ReadOnlyMemory AsReadOnlyMemory(this string text, int start, int length); } ``` ---- # Original post I expected to see these: ```cs class System.SpanExtensions { public static ReadOnlySpan Slice(this string text, int start); public static ReadOnlySpan Slice(this string text, int start, int length); } ``` But now I also see a proposal for a non-stack-only [`StringSegment`](https://github.com/dotnet/corefx/issues/20378) type. So I have two questions. 1. Is there a clearly preferable return type for such an extension method? 2. Is the most efficient way to slice a string `str.AsReadOnlySpan().Slice(...)`, or is there a single method call I can make that I haven't found yet? That's a little verbose for my liking, even if the two calls are inlined. +24074 area-System.Net Error while copying content to a stream. "my Desktop Code is follow: ```c# HttpResponseMessage response = await Client.GetAsync(ActionStringBase + ""/"" + id.ToString()); var sinstal = await response.Content.ReadAsStringAsync(); //var sinstal=await Client.GetStringAsync(ActionStringBase + ""/"" + id.ToString()); var jsspp = new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore }; var _Data = JsonConvert. DeserializeObject(sinstal, jsspp); ``` webapi code is follow: if code is that ```c# public IActionResult Get(int id) { var table = _dbContext.Cmodel3Ds.Find(id); return json(table); } ``` return no problem if code add Include or _dbcontext.entity(x).collection(r=>r.inve....) then on Desktop Throw ""Error while copying content to a stream."" o,db in property of table is contain some binary(max) [EDIT] Add C# syntax highlighting by @karelz" +24076 area-Infrastructure Updating corefx to use new roslyn compiler cc: @weshaggard @ericstj FYI: @ahsonkhan @RussKeldorph @VSadov since you were interested in corefx using a newer compiler This PR will update the version of the roslyn compiler that we use in corefx. +24077 area-System.Net Editing list of System.Net.* SMEs Cristian Pop (GitHub cipop) is no longer on the NCL team. +24078 area-System.Diagnostics Fixing build failure on CI happening on Centos fixes #24066 +24079 area-Serialization Include the generated serializer in the package. @shmao @zhenlan @mconnew +24080 area-System.Net Add copyright header from Mono to HttpUtility.cs Fixes #24043 Copied from Mono: https://github.com/mono/mono/blob/0af1ea70c29a66a59765183b45d6b75fa6c3d8fa/mcs/class/System.Web/System.Web/HttpUtility.cs#L3-L30 +24081 area-System.IO Failed FileStream construction truncates files on Linux "On Linux, the second `FileStream` construction below truncates the file and throws an `IOException`: ```cs using System.IO; using System.Text; class Program { static void Main(string[] args) { var filename = ""file""; using (var fs1 = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.None)) { fs1.Write(Encoding.ASCII.GetBytes(""fs1""), 0, 3); fs1.Flush(); // throws IOException: file being used by another process using (var fs2 = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.None)) { } } } } ``` I understand `FileMode.Create` specifies truncation of extant files, and that Linux file locking is advisory, but this behavior seems incorrect to me. If it can be known the file is in use, why not throw before truncating it? The exception is also misleading in that it implies an external process has locked the file and that lock has been respected, i.e. the file has not been modified, when in fact the file has been destructively modified. " +24082 area-Serialization Include the fwlink in the warning. @shmao @zhenlan @mconnew +24083 area-System.IO Use buffer pooling in System.IO.Compression Here are some candidates: https://github.com/dotnet/corefx/blob/8d40fac24b4a1fdaacd46ae923f3258da1996e16/src/System.IO.Compression/src/System/IO/Compression/DeflateManaged/DeflateManagedStream.cs#L106 https://github.com/dotnet/corefx/blob/8d40fac24b4a1fdaacd46ae923f3258da1996e16/src/System.IO.Compression/src/System/IO/Compression/DeflateManaged/DeflateManagedStream.cs#L123 https://github.com/dotnet/corefx/blob/8d40fac24b4a1fdaacd46ae923f3258da1996e16/src/System.IO.Compression/src/System/IO/Compression/DeflateManaged/FastEncoderWindow.cs#L69-L71 https://github.com/dotnet/corefx/blob/8d40fac24b4a1fdaacd46ae923f3258da1996e16/src/System.IO.Compression/src/System/IO/Compression/DeflateManaged/HuffmanTree.cs#L127 https://github.com/dotnet/corefx/blob/8d40fac24b4a1fdaacd46ae923f3258da1996e16/src/System.IO.Compression/src/System/IO/Compression/DeflateManaged/OutputWindow.cs#L24 Consider reusing some of these arrays in a buffer pool. +24084 area-Serialization Generate Microsoft.XmlSerializer.Generator.props. Generate the props file on the fly so that the file can use the correct reference version. +24085 area-System.Diagnostics HierarchicalRequestId in .net core applications? I want to make use of HierarchicalRequestId/Http Correlation protocol for the application I am working on. What are the different ways of implementing it? Do I need to use DiagnosticsSource or it can be achieved in ILogger also? Another question, Can I extend ILogger to include addition details in the trace? Please help. I am very new on this +24086 area-System.Drawing "Consolidate more code in the ""System.Drawing"" namespace." "* Remove all remaining Win32 codepaths from the mono codebase. All of this code now implicitly assumes that it will be run on a Unix platform. * Consolidate the rest of the gdipFunctions.cs file into Gdip.cs and GdipNative.Unix.cs * Consolidate the GraphicsUnit and ImageType enumerations -- they were duplicated. * Remove the mono Status enum and use the Windows constants instead in all Unix code. * Move all files into the regular directory structure. Suffix them with "".Unix"" and "".Windows"" when there are collisions. @qmfrederik @akoeplinger This is a fairly large change to some of the mono code files. All win32-specific codepaths have been ripped out, with the assumption that the Windows build configuration covers everything that we need there. I'd like to hear some feedback on that general approach, because to me it doesn't make sense to keep the Win32 codepaths around." +24087 area-System.Threading Reenable Task stack guard tests Fixed by https://github.com/dotnet/coreclr/pull/14015 Reenables tests in and closes https://github.com/dotnet/corefx/issues/23201 +24089 area-System.Drawing Dispose_IconData_DestroysHandle failed in CI https://ci3.dot.net/job/dotnet_corefx/job/master/job/windows-TGroup_netfx+CGroup_Release+AGroup_x86+TestOuter_false_prtest/3360/consoleText ``` System.Drawing.Tests.IconTests.Dispose_IconData_DestroysHandle [FAIL] System.IO.IOException : The process cannot access the file 'D:\j\workspace\windows-TGrou---2a8f9c29\bin\tests\System.Drawing.Common.Tests\netfx-Windows_NT-Release-x86\bitmaps\48x48_multiple_entries_4bit.ico' because it is being used by another process. Stack Trace: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at System.Drawing.Icon..ctor(String fileName, Int32 width, Int32 height) D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Drawing.Common\tests\IconTests.cs(327,0): at System.Drawing.Tests.IconTests.Dispose_IconData_DestroysHandle() ``` It looks like one of the tests isn't properly disposing of the Icon, or holding onto the FileStream or something like that. Should be pretty straightforward to diagnose. +24090 area-Infrastructure ASP.NET MVC 2.0 apps don't work on 2.1 runtime ## Repro Steps 1. `dotnet new mvc`. Make sure your app targets `netcoreapp2.0`. 2. `dotnet build` 3. Install the latest shared framework somewhere. I installed `2.1.0-preview1-25714-02` 4. `/path/to/dotnet --fx-version 2.1.0-preview1-25714-02 bin\Debug\netcoreapp2.0\RollForwardTest.dll` ## Expected results The app should run successfully ## Actual results An error is thrown: ``` fail: Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider[48] An error occurred while reading the key ring. System.IO.FileLoadException: Could not load file or assembly 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) File name: 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' at System.SpanHelpers.IndexOf[T](T& searchSpace, T value, Int32 length) at System.SpanExtensions.IndexOf[T](ReadOnlySpan`1 span, T value) at System.FixedBufferExtensions.GetFixedBufferStringLength(ReadOnlySpan`1 span) at System.FixedBufferExtensions.GetStringFromFixedBuffer(ReadOnlySpan`1 span) at System.IO.SearchResultHandler.FileSystemInfoResultHandler.IsResultIncluded(String fullPath, String userPath, WIN32_FIND_DATA& findData, FileSystemInfo& result) at System.IO.Win32FileSystemEnumerableIterator`1.IsResultIncluded(WIN32_FIND_DATA& findData, TSource& result) at System.IO.Win32FileSystemEnumerableIterator`1.CommonInit() at System.IO.Win32FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler) at System.IO.Win32FileSystem.EnumerateFileSystemInfos(String fullPath, String searchPattern, SearchOption searchOption, SearchTarget searchTarget) at System.IO.DirectoryInfo.EnumerateFileSystemInfos(String searchPattern, SearchOption searchOption) at Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository.d__11.MoveNext() at System.Collections.Generic.List`1.AddEnumerable(IEnumerable`1 enumerable) at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) at Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository.GetAllElements() at Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager.GetAllKeys() at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider.CreateCacheableKeyRingCore(DateTimeOffset now, IKey keyJustAdded) at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider.Microsoft.AspNetCore.DataProtection.KeyManagement.Internal.ICacheableKeyRingProvider.GetCacheableKeyRing(DateTimeOffset now) at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingProvider.GetCurrentKeyRingCore(DateTime utcNow) ``` ## Notes See related issue https://github.com/dotnet/corefx/issues/23988 for why this error is being thrown. We will need to address this issue in the context of when 2.0 apps are run on 2.1 runtime. /cc @Petermarcu @ericstj @weshaggard +24092 area-System.Net Native build fails on CentOS 6 This PR https://github.com/dotnet/corefx/pull/23976 introduced a slightly different declaration for `in_pktinfo`. Unfortunately, the CentOS build is detecting the wrong configuration for `HAVE_LINUX_IN_H`, which is causing the wrong `SOCKET_INCLUDES` to be set. Instead of linux/in.h, netinet/in.h is being used. On CentOS, linux/in.h contains the definition for `in_pktinfo`. This causes us to emit the struct declaration even though it is already defined in a header. @janvorli +24093 area-System.Runtime Introducing System.Rune "Inspired by the discussion here: https://github.com/dotnet/corefxlab/issues/1751 One of the challenges that .NET faces with its Unicode support is that it is rooted on a design that is nowadays obsolete. The way that we represent characters in .NET is with `System.Char` which is a 16-bit value, one that is insufficient to represent Unicode values. .NET developers need to learn about the arcane Surrogate Pairs: https://msdn.microsoft.com/en-us/library/xcwwfbb8(v=vs.110).aspx Developers rarely use this support, mostly because they are not familiar enough with Unicode, and let alone what .NET has to offer for them. I propose that we introduce a `System.Rune` that is backed by 32 bit integer and which corresponds to a codePoint and that we surface in C# the equivalent `rune` type to be an alias to this type. `rune` would become the preferred replacement for `char` and serve as the foundation for proper Unicode and string handling in .NET. As for why the name rune, the inspiration comes from Go: https://blog.golang.org/strings The section ""Code points, characters, and runes"" provides the explanation, a short version is: > ""Code point"" is a bit of a mouthful, so Go introduces a shorter term for the concept: rune. The term appears in the libraries and source code, and means exactly the same as ""code point"", with one interesting addition. *Update* I now have an implementation of `System.Rune` here: https://github.com/migueldeicaza/NStack/blob/master/NStack/unicode/Rune.cs With the following API: ``` public struct Rune { public Rune (uint rune); public Rune (char ch); public static ValueTuple DecodeLastRune (byte [] buffer, int end); public static ValueTuple DecodeLastRune (NStack.ustring str, int end); public static ValueTuple DecodeRune (byte [] buffer, int start, int n); public static ValueTuple DecodeRune (NStack.ustring str, int start, int n); public static int EncodeRune (Rune rune, byte [] dest, int offset); public static bool FullRune (byte [] p); public static bool FullRune (NStack.ustring str); public static int InvalidIndex (byte [] buffer); public static int InvalidIndex (NStack.ustring str); public static bool IsControl (Rune rune); public static bool IsDigit (Rune rune); public static bool IsGraphic (Rune rune); public static bool IsLetter (Rune rune); public static bool IsLower (Rune rune); public static bool IsMark (Rune rune); public static bool IsNumber (Rune rune); public static bool IsPrint (Rune rune); public static bool IsPunctuation (Rune rune); public static bool IsSpace (Rune rune); public static bool IsSymbol (Rune rune); public static bool IsTitle (Rune rune); public static bool IsUpper (Rune rune); public static int RuneCount (byte [] buffer, int offset, int count); public static int RuneCount (NStack.ustring str); public static int RuneLen (Rune rune); public static Rune SimpleFold (Rune rune); public static Rune To (Case toCase, Rune rune); public static Rune ToLower (Rune rune); public static Rune ToTitle (Rune rune); public static Rune ToUpper (Rune rune); public static bool Valid (byte [] buffer); public static bool Valid (NStack.ustring str); public static bool ValidRune (Rune rune); public override bool Equals (object obj); [System.Runtime.ConstrainedExecution.ReliabilityContractAttribute((System.Runtime.ConstrainedExecution.Consistency)3, (System.Runtime.ConstrainedExecution.Cer)2)] protected virtual void Finalize (); public override int GetHashCode (); public Type GetType (); protected object MemberwiseClone (); public override string ToString (); public static implicit operator uint (Rune rune); public static implicit operator Rune (char ch); public static implicit operator Rune (uint value); public bool IsValid { get; } public static Rune Error; public static Rune MaxRune; public const byte RuneSelf = 128; public static Rune ReplacementChar; public const int Utf8Max = 4; public enum Case { Upper, Lower, Title } } ``` *Update Known Issues* - [x] Some APIs above take a uint, need to take a Rune. - [ ] Need to implement IComparable family - [ ] RuneCount/RuneLen need better names, see docs (they should be perhaps Utf8BytesNeeded?) - [ ] Above, the ""ustring"" APIs reference my UTF8 API, this is really not part of the API, but we should consider whether there is a gateway to System.String in some of those, or to Utf8String." +24095 area-System.IO NamedPipeClientStream.ReadAsync poor cancellation in the face of concurrent reads In general, concurrent asynchronous reads on the same Stream isn't supported. However, due to the underlying implementations on Windows, FileStream actually does allow for this when opened in asynchronous mode, as does NamedPipeClientStream. On Unix, to enable cancelable ReadAsyncs, we queue a work item that does a polling loop, to give the code opportunity to see a cancellation request, but this breaks down when there are potentially multiple outstanding read requests on the same stream: they'll all successfully poll and proceed to issue the synchronous read, at which point some may block indefinitely until more data is available, negating the extra effort made to enable cancellation. The right solution, once it's available, is simply to take advantage of the new Socket.ReceiveAsync overload that takes a CancellationToken in https://github.com/dotnet/corefx/issues/22608 and just pass the token through. It's then up to the Socket's implementation to appropriately respect cancellation. If that solution isn't available soon enough, we should enforce serialized reads via a SemaphoreSlim. +24096 area-Serialization Add the target to copy the serializer to publish folder. @shmao @zhenlan @mconnew +24097 area-System.Drawing Remove an assertion from PrintDocumentTests.cs. There are tons of PaperKinds (like 100+), so it's not really reasonable to make an assertion about every single one of them. The two we have above this seem to be the most common and are probably okay to check explicitly. I added some logging to see what kind of printer was in use in https://github.com/dotnet/corefx/issues/23992, but it turned out to be `PaperKind.Custom`. I don't think we can make any reasonable guesses about what the size of that is supposed to be, so I'm just going to remove this block here. +24098 area-System.Net Disable NegotiateStreamTest fixture for distros without working Kerberos because setup-kdc.sh is broken on some distros and this is failing 350 tests. Relates to https://github.com/dotnet/corefx/issues/24000 +24099 area-System.Net Increase some networking test timeouts In response to ongoing failures. I do not know whether the increased timeouts will help, and the numbers are arbitrary. Relates to #18907 #23533 #23099 etc. +24100 area-System.Net Fix RHEL6 linux/in.h file detection On RHEL6, the build got broken by my recent fix of the in_pktinfo / ip_mreqn detection fix. The reason is that on that platform, linux/in.h cannot be included on its own, the sys/socket.h needs to be included before that to provide definitions of some structures. In fact, Linux doc states that the sys/socket.h should be included before the linux/in.h. So I am fixing that by adding that include to the detection code. I have verified that it works on RHEL 6, Ubuntu 14.04, Alpine Linux and FreeBSD. +24101 area-System.ComponentModel Data-annotations length fix Fixes #24064 See [this](https://github.com/dotnet/corefx/issues/24064#issuecomment-330002471) comment. +24103 area-System.Memory Add Overlaps/Within extension methods for ReadOnlySpan This proposal adds utility methods for checking spans for overlaps or if a span is within in another span. For previous discussions see https://github.com/dotnet/corefx/issues/17793, https://github.com/dotnet/corefxlab/issues/827 and https://github.com/dotnet/corefx/issues/18750. And a closed PR https://github.com/dotnet/corefx/pull/18731. ### Proposed API Add two sets of extension methods `Overlaps` and `Within` for `ReadOnlySpan` in `SpanExtensions`: ```csharp public static class SpanExtensions { public static bool Overlaps(this ReadOnlySpan first, ReadOnlySpan second); public static bool Overlaps(this ReadOnlySpan first, ReadOnlySpan second, out int elementOffset); public static bool Within(this ReadOnlySpan first, ReadOnlySpan second); public static bool Within(this ReadOnlySpan first, ReadOnlySpan second, out int elementOffset);} } ``` * If `second` span does not match the alignment of `first` span an `ArgumentException` is thrown. * `out int elementOffset` is the relative offset or index of the start of the `second` span to the start of the `first` span. * `elementOffset` is only valid if the check in question returns `true`. ### Rationale and Usage For `Overlaps` the scenario can involve algorithms that transform elements from `first` to `second` span, if the spans overlap the result might be wrong depending on the algorithm. To be able to detect this the `Overlaps` method can be called. For `Within` the scenario can involve buffer pool management, where spans are leased from a buffer and later needs to be returned to a given buffer. Calling `Within` allows checking for which buffer the given span is within and thus where it must be returned to. #### Expected Results - **A**: `first` entirely before `second`, no overlap ``` first: [--------) xRef xRef + xLength second: [------------) yRef yRef + yLength ``` - **B**: `first` starts before `second` and ends inside `second` ``` first: [------------) xRef xRef + xLength second: [------------) yRef yRef + yLength ``` - **C**: `first` is entirely within `second` ``` first: [-----------------------) xRef xRef + xLength second: [--------------------------) yRef yRef + yLength ``` - **D**: `first` starts inside target `second` and ends after `second` end ``` first: [------) xRef xRef + xLength second: [-------) yRef . yRef + yLength ``` - **E**: `first` entirely after `second`, no overlap ``` first: [------------) xRef xRef + xLength second: [--------) yRef yRef + yLength ``` - **F**: `first` starts before `second` and ends after `second`, i.e. `second` is contained in `first` ``` first: [-------------------------------) xRef xRef + xLength second: [--------------------------) yRef yRef + yLength ``` - **G**: `first` is same as `second` ``` first: [--------------------------) xRef xRef + xLength second: [--------------------------) yRef yRef + yLength ``` - **H**: `first` is empty within `second` ``` first: [) xRef second: [--------------------------) yRef yRef + yLength ``` - **I**: `first` is empty before `second` ``` first: [) xRef second: [--------------------------) yRef yRef + yLength ``` - **J**: `first` is empty after `second` ``` first: [) xRef second: [--------------------------) yRef yRef + yLength ``` In table below `Overlaps => first.Overlaps(second)` or `Within => first.Within(second)`. `x => first` and `y => second`. | |`Overlaps` |`Within` |Extra checks/comment | |--------|-----------|-----------|---------------| |**A**/**E** |`false` |`false` |No way to know which case from these methods alone.| |**B** |`true` |`false` |`elementOffset > 0`| |**C** |`true` |`true` | | |**D** |`true` |`false` |`elementOffset < 0`| |**F** |`true` |`false` |`elementOffset >= 0 && xLength >= (elementOffset + yLength)`| |**G** |`true` |`true` |`elementOffset == 0 && xLength == yLength`| |**H** |`true` |`true` |`xLength == 0`| |**I**/**J** |`false` |`false` |No way to know which case from these methods alone.| #### Examples ```csharp public static void RepeatEvenIndices(ReadOnlySpan src, Span dst) { if (src.Overlaps(dst, out var elementOffset) && elementOffset >= -1) { throw new ArgumentException(); } for (int i = 0; i < src.Length / 2; i++) { dst[i + 0] = src[i * 2]; dst[i + 1] = src[i * 2]; } } ``` ### Open Questions Could this API be expressed differently, perhaps with an all encompassing `Overlap` method returning an enum? Performance downsides? Naming of the methods should be reviewed. ### Updates UPDATE 1: Rename `Contains` to `Within` with reversed `first`/`second` relationship, due to naming confusion. Rename `elementIndex` to `elementOffset` latter considered better. `elementOffset` only valid if check returns `true`. Revise table and add empty cases. cc: @ektrah @mgravell @ahsonkhan @shiftylogic @jkotas +24104 area-System.Net HttpWebRequest hits 1s timeout when resolving http://localhost on Win10 (.NET Framework is fast) "Consider the following method (error/exception handling omitted for brevity: ```c# public virtual string MakeHttpRequest(Uri fullUri, string httpMethod, string requestBody) { string responseString = string.Empty; HttpWebRequest request = HttpWebRequest.Create(fullUri) as HttpWebRequest; request.Method = httpMethod; request.Timeout = 30000; request.Accept = ""application/json,image/png""; if (request.Method == ""POST"") { string payload = requestBody; byte[] data = Encoding.UTF8.GetBytes(payload); request.ContentType = ""application/json;charset=utf-8""; Stream requestStream = request.GetRequestStream(); requestStream.Write(data, 0, data.Length); requestStream.Close(); } HttpWebResponse webResponse = request.GetResponse() as HttpWebResponse; using (Stream responseStream = webResponse.GetResponseStream()) using (StreamReader responseStreamReader = new StreamReader(responseStream, Encoding.UTF8)) { responseString = responseStreamReader.ReadToEnd(); } return responseString; } ``` Executing this method against a server running on localhost yields wildly different execution times when run via the full .NET Framework vs. .NET Core. I have a [demo project](https://github.com/jimevans/NetCoreHttpPerfDemo) that shows the discrepancy, making calls to a locally running HTTP server, that server being the Chromium project's `chromedriver.exe`, used to automate the Chrome browser. When running the executables created by that project, you can see the following typical outputs (as run on Windows 10, build 16288): Run against .NET Core 2.0: >Starting test... Starting ChromeDriver 2.32.498550 (9dec58e66c31bcc53a9ce3c7226f0c1c5810906a) on port 9515 Only local connections are allowed. Started session 946394531499259b7442073c0e26060d Navigating to http://www.google.com Navigation complete Making 10 HTTP calls to localhost, logging the elapsed time... Elapsed time for HTTP call: 1038 milliseconds Elapsed time for HTTP call: 1016 milliseconds Elapsed time for HTTP call: 1015 milliseconds Elapsed time for HTTP call: 1011 milliseconds Elapsed time for HTTP call: 1012 milliseconds Elapsed time for HTTP call: 1024 milliseconds Elapsed time for HTTP call: 1013 milliseconds Elapsed time for HTTP call: 1027 milliseconds Elapsed time for HTTP call: 1013 milliseconds Elapsed time for HTTP call: 1014 milliseconds Test finished. Press to exit. Running against the full .NET Framework 4.5: >Starting test... Starting ChromeDriver 2.32.498550 (9dec58e66c31bcc53a9ce3c7226f0c1c5810906a) on port 9515 Only local connections are allowed. Started session 81c2bbd21a0d89354b2dead8d52ee982 Navigating to http://www.google.com Navigation complete Making 10 HTTP calls to localhost, logging the elapsed time... Elapsed time for HTTP call: 35 milliseconds Elapsed time for HTTP call: 7 milliseconds Elapsed time for HTTP call: 12 milliseconds Elapsed time for HTTP call: 5 milliseconds Elapsed time for HTTP call: 4 milliseconds Elapsed time for HTTP call: 7 milliseconds Elapsed time for HTTP call: 4 milliseconds Elapsed time for HTTP call: 6 milliseconds Elapsed time for HTTP call: 5 milliseconds Elapsed time for HTTP call: 5 milliseconds Test finished. Press to exit. I would expect similar performance between framework versions. Absent that, I would expect there to be settings to modify to the `HttpWebRequest` object that would yield similar performance as a workaround. [EDIT] C# syntax highlighing by @karelz" +24105 area-System.Memory Change ReadOnlySpan indexer to return ref readonly ```diff namespace System { public struct ReadOnlySpan { ... - public T this[int index] { get; } + public ref readonly T this[int index] { get; } ... } } ``` See https://github.com/dotnet/corefx/issues/23881#issuecomment-328741859. +24106 area-System.Diagnostics Ensure ProcessModule for main executable is first in modules list Fixes https://github.com/dotnet/corefx/issues/24070 @janvorli, can you verify this fixes the issue you were seeing on Alpine in docker? +24107 area-System.Net Wrap cert callback leaked exceptions in WinHttpHandler Wrap cert callback leaked exceptions in WinHttpHandler Similar to the fix done for CurlHandler (#21938), fix WinHttpHandler so that leaked exceptions from the user-provided certificate callback are properly wrapped. The ManagedHandler still needs to be fixed since it is not wrapping properly. Contributes to #21904 +24108 area-Infrastructure Installing System.ValueTuple 4.4.0 from Nuget into UWP project causes reference conflicts Version 4.3.1 works fine. The warning is: ```1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(1987,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.``` I've attached a detailed build log containing the conflicts: [Build.txt](https://github.com/dotnet/corefx/files/1309403/Build.txt) And for comparison, a build log with 4.3.1: [Working.txt](https://github.com/dotnet/corefx/files/1309408/Working.txt) I can't quite tell what the problem is. Hopefully you can. :-) +24109 area-System.Drawing Fix multiplying TextureBrush with a disposed matrix on Unix Also fixed in Libgdiplus here: https://github.com/mono/libgdiplus/pull/80 Also enabling a test that should work +24110 area-System.Linq LINQ OrderBy performance drops by bazillion times in some cases ### **Input data:** `List list = new List();` ### **Prepare data:** **random:** `var rnd = new Random(); for (var i = 0; i < n; i++) list.Add(rnd.Next());` **desc:** `for (var i = 0; i < n; i++) list.Add(n - i);` **asc:** ` for (var i = 0; i < n; i++) list.Add(n - i);` **desc+asc:** `for (var i = 0; i < n / 2; i++) list.Add(n - i); for (var i = n / 2; i < n; i++) list.Add(i);` **asc+desc:** `for (var i = 0; i < n / 2; i++) list.Add(i); for (var i = n / 2; i < n; i++) list.Add(n - i);` ### **Sorting functions:** **List:** `List SortByList() { var result = list.ToList(); result.Sort(); return result; };` **LINQ:** `List SortByLINQ() => list.OrderBy(x => x).ToList();` **LINQOptimizer (https://github.com/nessos/LinqOptimizer):** `List SortByLINQOptimizer() => list.AsQueryExpr().OrderBy(x => x).Run().ToList();` ### **Results:** **10,000 items** ``` LINQOptimizer LINQ List random 00:00:00.0016349 00:00:00.0031569 00:00:00.0007014 asc 00:00:00.0012643 00:00:00.0014618 00:00:00.0001882 desc 00:00:00.0013321 00:00:00.0014991 00:00:00.0002963 desc+asc 00:00:00.0018149 00:00:00.0118873 00:00:00.0007774 asc+desc 00:00:00.0020868 00:00:00.2250114 00:00:00.0008123 ``` **100,000 items** ``` LINQOptimizer LINQ List random 00:00:00.0149506 00:00:00.0341792 00:00:00.0087713 asc 00:00:00.0084689 00:00:00.0184448 00:00:00.0019559 desc 00:00:00.0130457 00:00:00.0190296 00:00:00.0037221 desc+asc 00:00:00.0177337 00:00:00.4118966 00:00:00.0115277 asc+desc 00:00:00.0178328 00:00:19.7172326 00:00:00.0109617 ``` **1,000,000 items** ``` LINQOptimizer LINQ List random 00:00:00.1587396 00:00:00.1570763 00:00:00.1013578 asc 00:00:00.0809392 00:00:00.0828751 00:00:00.0228805 desc 00:00:00.1027216 00:00:00.1947723 00:00:00.0423382 desc+asc 00:00:00.1941634 00:02:09.9069785 00:00:00.1331413 asc+desc 00:00:00.1919311 ---------------- 00:00:00.1365317 ``` Waiting about **30 MINUTES** on 1,000,000 items test with asc+desc data but LINQ is still sorting... (1 core 100% used) P.S.: Tests for LINQ and List - .Net Core 2.0, LINQOptimizer - .Net Framework 4.7. Windows 7 x64 +24111 area-System.Net Wrap exceptions from ManagedHandler's server validation callback To match other handlers' behaviors. Contributes to #21904 cc: @davidsh, @geoffkizer (If this goes in before https://github.com/dotnet/corefx/pull/24107, https://github.com/dotnet/corefx/pull/24107/files#diff-ef1e42079489db8304cd3b3aac08d8c4R211 should be removed. If that PR goes in first, I'll remove it in this one.) +24112 area-System.Collections Documentation Error in System.Collections.Immutable.ImmutableInterlocked The summary of `TryPop` in [ImmutableInterlocked](https://github.com/dotnet/corefx/blob/master/src/System.Collections.Immutable/src/System/Collections/Immutable/ImmutableInterlocked.cs) is a copy of `Push` which is obviously wrong. As this is a very small change and I'm new to corefx I would correct this quickly. +24113 area-System.Collections #24112 Documentation Error in System.Collections.Immutable.ImmutableInterlocked +24114 area-System.Net "Test: System.Net.Sockets.Tests.SocketOptionNameTest / MulticastInterface_Set_AnyInterface_Succeeds failed with ""Xunit.Sdk.TrueException""" ## History of failures (after 11/9) Date | Build | OS | Details -- | -- | -- | -- 12/7 | 20171207.01 | Fedora25 & RedHat72 & RedHat73 | 12/7 | 20171207.02 | Fedora25 & RedHat72 & RedHat73 | 12/7 | 20171207.04 | Fedora25 | 12/8 | 20171207.05 | Fedora25 | 12/13 | 20171213.01 | Fedora25 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171213.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/13 | 20171213.08 | RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171213.08/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/13 | 20171213.09 | RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171213.09/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/13 | 20171213.10 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171213.10/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/13 | 20171213.11 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171213.11/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/14 | 20171214.02 | Fedora25 & RedHat72 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171214.02/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/14 | 20171214.03 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171214.03/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/15 | 20171215.01 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171215.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/15 | 20171215.02 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171215.02/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/15 | 20171215.05 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171215.05/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/15 | 20171215.06 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171215.06/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/15 | 20171215.08 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171215.08/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/15 | 20171215.09 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171215.09/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/16 | 20171216.01 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171216.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/16 | 20171216.02 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171216.02/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/16 | 20171216.03 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171216.03/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/16 | 20171216.04 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171216.04/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/16 | 20171216.05 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171216.05/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/16 | 20171216.05 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171216.05/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/17 | 20171217.01 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171217.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/17 | 20171217.02 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171217.02/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/18 | 20171218.01 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171218.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) 12/18 | 20171218.02 | Fedora25 & RedHat72 & RedHat73 | [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171218.02/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds) # Original report Opened on behalf of @Jiayili1 The test `System.Net.Sockets.Tests.SocketOptionNameTest/MulticastInterface_Set_AnyInterface_Succeeds` has failed. ``` Waiting for received data timed out Expected: True Actual: False Stack Trace: at System.Net.Sockets.Tests.SocketOptionNameTest.d__8.MoveNext() in /root/corefx-998057/src/System.Net.Sockets/tests/FunctionalTests/SocketOptionNameTest.cs:line 140 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Sockets.Tests.SocketOptionNameTest.d__6.MoveNext() in /root/corefx-998057/src/System.Net.Sockets/tests/FunctionalTests/SocketOptionNameTest.cs:line 96 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ``` Build : Master - 20170918.01 (Core Tests) Failing configurations: - RedHat.69.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170918.01/workItem/System.Net.Sockets.Tests/analysis/xunit/System.Net.Sockets.Tests.SocketOptionNameTest~2FMulticastInterface_Set_AnyInterface_Succeeds +24115 area-System.Runtime Proposal: Add Array.Sort(T[], int, int, Comparison) overload The PR https://github.com/dotnet/coreclr/pull/8504 changed Array.Sort to be based internally on the `Comparison` delegate rather than on the `IComparer` interface, as delegate dispatch is faster than interface dispatch and it enabled consolidating two implementations. That means if an `IComparer` is provided, its Compare method is wrapped in a `Comparison` delegate. However, there is no overload of Array.Sort that takes the array, offset, length, and comparison delegate (the only overload that takes a delegate is `Sort(T[], Comparison)`: https://github.com/dotnet/corefx/blob/155a46c0c59fddefc009c2a4affd0fd2b3bac2b3/src/System.Runtime/ref/System.Runtime.cs#L305-L309 so if you have a delegate and need to provide offset+length, you first need to allocate an object implementing `IComparer` to wrap it so you can call the right overload, and then the implementation will wrap that with an allocated `Comparison`; that's two allocations and multiple levels of indirection when none of that is necessary. Instead, we should just add this overload: ```C# public static void Sort(T[] array, int index, int length, Comparison comparer); ``` cc: @mikedn, @jkotas, @joperezr, @AlexGhiondea +24116 area-System.Linq Use Array.Sort instead of custom QuickSort implementation in LINQ's OrderBy Fixes https://github.com/dotnet/corefx/issues/24110 The first commit just moves the various QuickSort implementations to the derived sealed class, to avoid some virtual dispatch for some of the comparison operations. The second commit then addresses the core of the problem, by using Array.Sort (an IntroSort implementation) instead of the custom QuickSort implementation used today; stability is provided by comparison operator utilizing the provided indices. It'll be easiest to review the commits individually. cc: @JonHanna, @VSadov, @OmarTawfik, @maxzav +24117 area-System.Net IPAddress.GetHashCode allocates a string for IPv6 In order to return a hash code for IPv6 IPAddress calls (and caches) `ToString` and returns the result's hash code: ```csharp public override int GetHashCode() { if (IsIPv6) { if (_hashCode == 0) { _hashCode = StringComparer.OrdinalIgnoreCase.GetHashCode(ToString()); } return _hashCode; } else { // ... } } ``` These allocations constantly show up high on our list when we analyze our product's performance (even though the results are cached). Is there any reason not to just calculate the hash code from the internal `ushort[] _numbers` and `_addressOrScopeId`? A trivial implementation would be to simply xor all the values (but I can use something more complicated): ```csharp public override int GetHashCode() { if (IsIPv6) { if (_hashCode == 0) { int hashCode = (int)PrivateScopeId; for (int i = 0; i < NumberOfLabels; i += 2) { hashCode ^= _numbers[i] << 16 | _numbers[i + 1]; } _hashCode = hashCode; } return _hashCode; } else { // ... } } ``` I might be missing something obvious, but if not, I would love to remove these unnecessary allocations. +24120 area-System.Data Sql Connection Pooling "We are having issues when connecting from .net core application to sql server. The connections opened by application was not closed/ connection pooling was not happening as expected. Below is the sample code used to open a sql connection. ``` using (var conn = new SqlConnection(_connStr)) { var query = @""INSERT INTO dbo.user ([uid],[email_address],[create_datetime],[created_by],[last_update_datetime],[last_updated_by]) VALUES(@Userid,@EmailAddress,SYSUTCDATETIME(),@UserId,SYSUTCDATETIME(),@UserId);""; await conn.ExecuteAsync(query, new { UserId = request.UserId, EmailAddress = request.EmailAddress }); } ``` On an average 200-400 inactive connections are opened in a day. In couple of weeks, inactive connections count reaching SQL max connection limits. Which brings the application down. Current work Around: Restart application service to close all inactive connections. Current System Specs: Application Server : OS: Ubuntu 16.0.4 LTS App : Asp.Net Core 1.1 ORM: Dapper Sql Server: Version : SQL server Enterprise 2012 OS: Windows 2012 Ent., " +24123 area-System.Drawing Fix libgdiplus function loading on OSX. "Since switching to manual function loading, the OSX configuration of System.Drawing has been broken, because it tries to load functions from ""libgdiplus.so"", rather than ""libgdiplus.dylib"". The fix is fairly straightforward -- we just load a different file name when on OSX." +24124 area-System.Drawing [Question] What is the most efficient way to read/write `Vector` from/to managed memory? I'm optimizing floating-point color conversion methods for the [ImageSharp](https://github.com/SixLabors/ImageSharp) library, using the .NET Core 1.1 runtime for my experiments. I have to do several arithmetic operations using SIMD vectors and scatter the elements of the result vectors to different memory locations. I tried two approaches for this: 1. Read the input as `Vector` -> calculate -> [copy the vectors into an another struct on the stack, and use it for further operations](https://github.com/SixLabors/ImageSharp/blob/84944e2db9b74f4b5f226de33b3c8a5787dc8dc4/src/ImageSharp/Formats/Jpeg/Common/Decoder/JpegColorConverter.FromYCbCr.cs#L117). (Note: This is an AVX2 only execution path.) 2. [Do everything with `Vector4`.](https://github.com/SixLabors/ImageSharp/blob/343a8920d806d9d92efeb45c2f43f103fadfdbd4/src/ImageSharp/Formats/Jpeg/Common/Decoder/JpegColorConverter.FromYCbCr.cs#L95) With the first approach I was only able to reach a small (~`2x`) speedup compared to the scalar code, but the speedup was really significant with the second, `Vector4`-only solution. This is not what I expected. Correct me if I am wrong, but I started to think that the way I read/write `Vector` might prevent the JIT from generating optimized code. I ended up having the following question: Is there any difference in the quality of the generated machine code for this: ```C# ref FooStruct fooRef = ref GetFooRef(); // can be heap or stack reference Vector v = Unsafe.As>(ref fooRef); v+= new Vector(42); Unsafe.As>(ref fooRef) = v; ``` VS this: ```C# ref FooStruct fooRef = ref GetFooRef(); // can be heap or stack reference ref Vector vRef = Unsafe.As>(ref fooRef); vRef+= new Vector(42); ``` VS this: ```C# FooStruct* fooPtr = GetFooPtr(); // can be heap or stack pointer Vector v = Unsafe.Read>(fooPtr); v+= new Vector(42); Unsafe.Write>(fooPtr, v); ``` VS this? ```C# FooStruct* fooPtr = GetFooPtr(); // can be heap or stack pointer Vector v = Unsafe.ReadUnaligned>(fooPtr); v+= new Vector(42); Unsafe.WriteUnaligned>(fooPtr, v); ``` I'm interested in both: - Reading/writing `Vector` from/to unalinged managed heap locations - Reading/writing to a `struct` located on the stack Any hints? Is there something wrong with my approach? Should I ask this on `coreclr` instead? Thanks! +24128 area-Serialization Port the assembly load path change into 2.0 branch Port the change https://github.com/dotnet/corefx/commit/49f89e475fbba3b64650cafbec27830829450414#diff-963a351caa5eb7b91c08bd702b437637 to 2.0 branch. Fix #24179 @shmao @zhenlan @mconnew +24129 area-Infrastructure Port to 2.0.0 - Update DotNetHost version refererence This change updates the version of the DotNetHost and DotNetHostPolicy to a newer version that's available for RHEL 6 too. +24132 area-Infrastructure Update UAP Runner to get new uap runner's logging cc: @danmosemsft @tarekgh @joperezr +24133 area-System.Net "System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_ServerCertificates_Test.NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds failed with ""System.Net.Internals.SocketExceptionFactory+ExtendedSocketException"" in CI" Failed test: System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_ServerCertificates_Test.NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds Configuration: OuterLoop_netcoreapp_fedora24_release Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_fedora24_release/173/testReport/System.Net.Http.Functional.Tests/ManagedHandler_HttpClientHandler_ServerCertificates_Test/NoCallback_RevokedCertificate_NoRevocationChecking_Succeeds/ MESSAGE: ~~~ System.Net.Http.HttpRequestException : Connection refused [::ffff:4.79.142.205]:443 ---- System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : Connection refused [::ffff:4.79.142.205]:443 ~~~ STACK TRACE: ~~~ at System.Net.Http.ConnectHelper.d__0.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Http/src/System/Net/Http/Managed/ConnectHelper.cs:line 25 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() at System.Net.Http.HttpConnectionHandler.d__6.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 88 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() at System.Net.Http.HttpConnectionPool.d__11.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionPool.cs:line 121 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() at System.Net.Http.HttpConnectionHandler.d__4.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Http/src/System/Net/Http/Managed/HttpConnectionHandler.cs:line 42 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.CookieHandler.d__3.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Http/src/System/Net/Http/Managed/CookieHandler.cs:line 31 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.AutoRedirectHandler.d__5.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Http/src/System/Net/Http/Managed/AutoRedirectHandler.cs:line 65 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Http/src/System/Net/Http/HttpClient.cs:line 464 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_ServerCertificates_Test.d__15.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Http/tests/FunctionalTests/HttpClientHandlerTest.ServerCertificates.cs:line 265 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 2494 at System.Net.Sockets.Socket.DoMultipleAddressConnectCallback(Object result, MultipleAddressConnectAsyncResult context) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 5218 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Sockets.Socket.DoMultipleAddressConnectCallback(Object result, MultipleAddressConnectAsyncResult context) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 5237 at System.Net.Sockets.Socket.MultipleAddressConnectCallback(IAsyncResult result) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 5193 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Sockets/src/System/Net/Sockets/Socket.cs:line 2494 at System.Net.Sockets.Socket.<>c.b__275_0(IAsyncResult iar) in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Sockets/src/System/Net/Sockets/Socket.Tasks.cs:line 171 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.ConnectHelper.d__0.MoveNext() in /mnt/resource/j/workspace/dotnet_corefx/master/outerloop_netcoreapp_fedora24_release/src/System.Net.Http/src/System/Net/Http/Managed/ConnectHelper.cs:line 18 ~~~ +24135 area-System.Memory BadImageFormatException with Span with xUnit.net `Span` has been so special, that a strange runtime exception can occur. Reported to xUnit.net already, https://github.com/xunit/xunit/issues/1457 but not sure if the issue is merely caused by xUnit.net. I hope a better exception as well as more meaningful call stack can be thrown if possible. +24137 area-System.Net "Test: System.Net.Http.Functional.Tests.CancellationTest/ReadAsStreamAsync_ReadAsync_Cancel_TaskCanceledQuickly failed with ""System.IO.IOException""" Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.CancellationTest/ReadAsStreamAsync_ReadAsync_Cancel_TaskCanceledQuickly(startResponseBody: True)` has failed. Assert.Throws() Failure\r Expected: typeof(System.OperationCanceledException)\r Actual: typeof(System.IO.IOException): Exception from HRESULT: 0x80072EF1 Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.IO.WinRtToNetFxStreamAdapter.d__43.MoveNext$catch$0() in E:\A\_work\491\s\corefx\src\System.Runtime.WindowsRuntime\src\System\IO\WinRtToNetFxStreamAdapter.cs:line 843 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable$1.ConfiguredTaskAwaiter.GetResult() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 477 at System.IO.BufferedStream.d__50.MoveNext() in E:\A\_work\491\s\corefx\src\System.Runtime.Extensions\src\System\IO\BufferedStream.cs:line 739 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 Build : Master - 20170918.03 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170918.03/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.CancellationTest~2FReadAsStreamAsync_ReadAsync_Cancel_TaskCanceledQuickly(startResponseBody:%20True) +24138 area-Infrastructure Needs to check corefx-utcs consider some situations when they are native images made by using crossgen "I've recently tested coreclr/corefx utcs which are native images made by using crossgen `FNV` or `R2R`. I found some problems. I need to get feedback from you by sharing this. One of them is `System.Reflection.Tests.ModuleTests.Name`. ``` System.Reflection.Tests.ModuleTests.Name [FAIL] Assert.Equal() Failure ↓ (pos 21) Expected: ···ystem.runtime.tests.dll Actual: ···ystem.Runtime.Tests.ni.dll ↑ (pos 21) Stack Trace: at System.Reflection.Tests.ModuleTests.Name() ``` Code of `System.Reflection.Tests.ModuleTests.Name`. ```cs [Fact] [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, ""Module.Name does not indicate file location on UwpAot"")] public void Name() { Assert.Equal(""system.runtime.tests.dll"", Module.Name, ignoreCase: true); } ``` When the tc is a native image, the `Module.Name` is `System.Runtime.Tests.ni.dll` while the expeced `Module.Name` is `System.Runtime.Tests.dll`. This causes because some tcs assume that the loaded assembly is only `.dll` file although it can be a native image such as `.ni.dll`. We can think corefx-utc doesn't need to be native image itself. However an application could be native image. In my opinion, some tcs need to be fixed to consider this situation. @dotnet/arm32-contrib " +24139 area-System.Net WinHttpException: Not enough storage is available to process this command "Hello, I have an ASP.Net Core 2.0 server (Kestrel) on Windows Server 2016 [Standard D2s v3 (2 vcpus, 8 GB memory)] in Azure. I am trying to load test an endpoint which just sends 2 ""get"" and 2 ""post"" http requests to NoSQL database. For load testing I use https://github.com/tsenart/vegeta from 3 computers. Throughput was approximately 15.000 rpm. Approximately every minute it throws a lot of these exceptions and then it works correctly for a while and after some time again throws exceptions: ``` fail: Microsoft.AspNetCore.Server.Kestrel[13] Connection id ""0HL7UO2PLN0UI"", Request id ""0HL7UO2PLN0UI:00000001"": An unhandled exception was thrown by the appl cation. System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpExceptio : Not enough storage is available to process this command at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() ``` here are screenshots of graphs: ![screen shot 2017-09-19 at 08 34 30](https://user-images.githubusercontent.com/3832960/30578809-1213639e-9d16-11e7-9d99-26fbe6285152.png) ![screen shot 2017-09-19 at 08 34 42](https://user-images.githubusercontent.com/3832960/30578815-1abb1082-9d16-11e7-9383-f7698e5c3e15.png) Is this just some mistake in configuration or is the problem somewhere else?" +24142 area-System.Net "Multi-threaded TopicSession use on OSX causes unmanaged ""pointer being freed was not allocated"" error" "This issue was filed [here](https://github.com/Azure/azure-service-bus-dotnet/issues/306) but recommended that I file here. I am making use of the Azure service bus client lib on OSX. When I receive messages from a topic subscription that are a part of a session (~300 sessions with 1-5 messages per session), and do so in parallel, I consistently (but in random locations) get an unmanaged ""pointer being freed was not allocated"" error (typically only 10-20ish sessions get processed). Using the same code, I do not get a crash on Windows 10. Based on the backtrace, this appears to be happening within the bowels of System.Net.Security.SSLStreamInternal, which granted, is documented to not be threadsafe (and is being re-entered). But in any case, I am doing as suggested and filing here. Environment: charles-benedicts-macbook:~ chuck_benedict$ dotnet --info .NET Command Line Tools (2.0.0) Product Information: Version: 2.0.0 Commit SHA-1 hash: cdcd1928c9 Runtime Environment: OS Name: Mac OS X OS Version: 10.12 OS Platform: Darwin RID: osx.10.12-x64 Base Path: /usr/local/share/dotnet/sdk/2.0.0/ Microsoft .NET Core Shared Framework Host Version : 2.0.0 Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d NuGet package version or commit ID: ""Microsoft.Azure.ServiceBus/1.0.0"": { ""dependencies"": { ""Microsoft.Azure.Amqp"": ""2.1.0"", ""NETStandard.Library"": ""2.0.0"", ""System.Runtime.Serialization.Xml"": ""4.3.0"" Backtrace: ``` (lldb) sos DumpStack OS Thread Id: 0x16c6855 (38) TEB information is not available so a stack size of 0xFFFF is assumed Current frame: libsystem_malloc.dylib!malloc_error_break Child-SP RetAddr Caller, Callee 00007000109E1F50 00007fffaa2b6f6e libsystem_malloc.dylib!free + 0x199, calling libsystem_malloc.dylib!malloc_error_break 00007000109E1FA0 00007fff9ae58b41 Security!SSLRecordServiceWriteQueueInternal + 0x80, calling Security!sslFree 00007000109E1FE0 00007fff9ac8bc3b Security!SSLServiceWriteQueue + 0xf 00007000109E1FF0 00007fff9ac8f441 Security!SSLRead + 0x99, calling Security!SSLServiceWriteQueue 00007000109E2090 00000001085e5bf4 System.Security.Cryptography.Native.Apple.dylib!AppleCryptoNative_SslRead + 0x34, calling System.Security.Cryptography.Native.Apple.dylib!SSLRead 00007000109E20D0 00000001146eeee5 (MethodDesc 0000000114ac6f88 + 0xa5 DomainBoundILStubClass.IL_STUB_PInvoke(System.Net.SafeSslHandle, Byte*, Int32, Int32 ByRef)) 00007000109E2110 00000001146eeee5 (MethodDesc 0000000114ac6f88 + 0xa5 DomainBoundILStubClass.IL_STUB_PInvoke(System.Net.SafeSslHandle, Byte*, Int32, Int32 ByRef)) 00007000109E2170 00000001149d318a (MethodDesc 0000000114aa0510 + 0x8a System.Net.Security.SslStreamPal.DecryptMessage(System.Net.Security.SafeDeleteContext, Byte[], Int32 ByRef, Int32 ByRef)), calling 00000001146df528 (stub for Interop+AppleCrypto.SslRead(System.Net.SafeSslHandle, Byte*, Int32, Int32 ByRef)) 00007000109E21E0 00000001149c1667 (MethodDesc 000000011494ab68 + 0xd7 System.Net.Security.SecureChannel.Decrypt(Byte[], Int32 ByRef, Int32 ByRef)), calling (MethodDesc 0000000114aa0510 + 0 System.Net.Security.SslStreamPal.DecryptMessage(System.Net.Security.SafeDeleteContext, Byte[], Int32 ByRef, Int32 ByRef)) 00007000109E21F0 00000001149bf69a (MethodDesc 000000011494aa88 + 0x1a System.Net.Security.SecureChannel.get_IsValidContext()) 00007000109E2250 00000001149c90a8 (MethodDesc 0000000114ac5880 + 0x98 System.Net.Security.SslStreamInternal.ProcessFrameBody(Int32, Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)), calling (MethodDesc 000000011494ab68 + 0 System.Net.Security.SecureChannel.Decrypt(Byte[], Int32 ByRef, Int32 ByRef)) 00007000109E2260 00000001149b798d (MethodDesc 0000000114aa3070 + 0x5d System.Net.FixedSizeReader.ReadPacketAsync(System.IO.Stream, System.Net.AsyncProtocolRequest)), calling (MethodDesc 0000000114aa3308 + 0 System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[[System.Net.FixedSizeReader+d__1, System.Net.Security]](d__1 ByRef)) 00007000109E22F0 00000001149c8fc3 (MethodDesc 0000000114ac5870 + 0x123 System.Net.Security.SslStreamInternal.StartFrameBody(Int32, Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)), calling (MethodDesc 0000000114ac5880 + 0 System.Net.Security.SslStreamInternal.ProcessFrameBody(Int32, Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)) 00007000109E2340 00000001149c8e82 (MethodDesc 0000000114ac5860 + 0xc2 System.Net.Security.SslStreamInternal.StartFrameHeader(Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)), calling (MethodDesc 0000000114ac5870 + 0 System.Net.Security.SslStreamInternal.StartFrameBody(Int32, Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)) 00007000109E2380 00000001149c8da2 (MethodDesc 0000000114ac5850 + 0x112 System.Net.Security.SslStreamInternal.StartReading(Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)), calling (MethodDesc 0000000114ac5860 + 0 System.Net.Security.SslStreamInternal.StartFrameHeader(Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)) 00007000109E23D0 00000001149c8b49 (MethodDesc 0000000114ac5840 + 0xe9 System.Net.Security.SslStreamInternal.ProcessRead(Byte[], Int32, Int32, System.Net.BufferAsyncResult)), calling (MethodDesc 0000000114ac5850 + 0 System.Net.Security.SslStreamInternal.StartReading(Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)) 00007000109E2420 00000001149c438a (MethodDesc 0000000114946da0 + 0x8a System.Net.Security.SslStream.BeginRead(Byte[], Int32, Int32, System.AsyncCallback, System.Object)), calling (MethodDesc 0000000114ac5840 + 0 System.Net.Security.SslStreamInternal.ProcessRead(Byte[], Int32, Int32, System.Net.BufferAsyncResult)) 00007000109E2470 0000000111b9448e (MethodDesc 00000001116c1038 + 0xce System.Threading.Tasks.TaskFactory`1[[System.Int32, System.Private.CoreLib]].FromAsyncTrim[[System.__Canon, System.Private.CoreLib],[System.IO.Stream+ReadWriteParameters, System.Private.CoreLib]](System.__Canon, ReadWriteParameters, System.Func`5, System.Func`3)) 00007000109E24E0 0000000111b4de8a (MethodDesc 00000001116f5ae8 + 0x18a System.IO.Stream.BeginEndReadAsync(Byte[], Int32, Int32)), calling (MethodDesc 00000001116c1038 + 0 System.Threading.Tasks.TaskFactory`1[[System.Int32, System.Private.CoreLib]].FromAsyncTrim[[System.__Canon, System.Private.CoreLib],[System.IO.Stream+ReadWriteParameters, System.Private.CoreLib]](System.__Canon, ReadWriteParameters, System.Func`5, System.Func`3)) 00007000109E2500 0000000114b3fc8d (MethodDesc 0000000114642ce0 + 0xdd Microsoft.Azure.Amqp.AmqpConnectionBase.OnReceiveFrameBuffer(Microsoft.Azure.Amqp.ByteBuffer)) 00007000109E2550 0000000111b4dcd9 (MethodDesc 00000001116f5ac8 + 0x29 System.IO.Stream.ReadAsync(Byte[], Int32, Int32, System.Threading.CancellationToken)), calling (MethodDesc 00000001116f5ae8 + 0 System.IO.Stream.BeginEndReadAsync(Byte[], Int32, Int32)) 00007000109E2570 0000000111b4dca8 (MethodDesc 00000001116f5ab8 + 0x28 System.IO.Stream.ReadAsync(Byte[], Int32, Int32)) 00007000109E2590 00000001146efec7 (MethodDesc 000000011494a580 + 0x67 Microsoft.Azure.Amqp.StreamExtensions.BeginRead(System.IO.Stream, Byte[], Int32, Int32, System.AsyncCallback, System.Object)), calling (MethodDesc 00000001116f5ab8 + 0 System.IO.Stream.ReadAsync(Byte[], Int32, Int32)) 00007000109E25F0 00000001146efdce (MethodDesc 0000000114944cb0 + 0xae Microsoft.Azure.Amqp.Transport.TlsTransport.ReadAsync(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)), calling (MethodDesc 000000011494a580 + 0 Microsoft.Azure.Amqp.StreamExtensions.BeginRead(System.IO.Stream, Byte[], Int32, Int32, System.AsyncCallback, System.Object)) 00007000109E2660 00000001146f2eee (MethodDesc 0000000114ac8f10 + 0x5e Microsoft.Azure.Amqp.Sasl.SaslTransport.ReadAsync(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)) 00007000109E26A0 0000000114b39eaa (MethodDesc 0000000114b27b60 + 0x13a Microsoft.Azure.Amqp.AsyncIO+AsyncReader.ReadBuffer()) 00007000109E2740 0000000114b3f62d (MethodDesc 0000000114b27b50 + 0xcd Microsoft.Azure.Amqp.AsyncIO+AsyncReader.OnReadBufferComplete(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)), calling (MethodDesc 0000000114b27b60 + 0 Microsoft.Azure.Amqp.AsyncIO+AsyncReader.ReadBuffer()) 00007000109E27C0 00000001146ef2cf (MethodDesc 0000000114944d30 + 0x20f Microsoft.Azure.Amqp.Transport.TlsTransport.HandleOperationComplete(System.IAsyncResult, Boolean, Boolean)) 00007000109E2890 00000001146f0be8 (MethodDesc 0000000114944d00 + 0xd8 Microsoft.Azure.Amqp.Transport.TlsTransport.OnReadComplete(System.IAsyncResult)), calling (MethodDesc 0000000114944d30 + 0 Microsoft.Azure.Amqp.Transport.TlsTransport.HandleOperationComplete(System.IAsyncResult, Boolean, Boolean)) 00007000109E28E0 00000001146f0aeb (MethodDesc 0000000114ac7368 + 0x16b Microsoft.Azure.Amqp.TaskHelpers+<>c__DisplayClass8_0`1[[System.Int32, System.Private.CoreLib]].b__1(System.Threading.Tasks.Task`1)) 00007000109E2970 0000000111b0d051 (MethodDesc 00000001116edae8 + 0x71 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E29C0 0000000111b46945 (MethodDesc 00000001116f5428 + 0x1f5 System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)), calling (MethodDesc 00000001116edae8 + 0 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E29F0 00000001149bd66e (MethodDesc 000000011494c2c0 + 0x6e System.Net.LazyAsyncResult.get_CompletedSynchronously()) 00007000109E2A10 00000001032f3045 libcoreclr.dylib!JIT_GetSharedGCThreadStaticBase(unsigned long, unsigned int) + 0x35 00007000109E2A80 0000000111c7a808 (MethodDesc 0000000111716ce0 + 0x48 System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task, Boolean)), calling (MethodDesc 00000001116f5408 + 0 System.Threading.Tasks.Task.ExecuteEntryUnsafe()) 00007000109E2AC0 0000000111b7a148 (MethodDesc 00000001116fa5c8 + 0xb8 System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)) 00007000109E2B00 0000000111bb5090 (MethodDesc 0000000111701bb8 + 0x60 System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(System.Threading.Tasks.Task, Boolean)), calling (MethodDesc 00000001116fa5c8 + 0 System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)) 00007000109E2B30 0000000111b48f45 (MethodDesc 00000001116f49e0 + 0x175 System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116fbfb8 + 0 System.Threading.Tasks.StandardTaskContinuation.Run(System.Threading.Tasks.Task, Boolean)) 00007000109E2B90 0000000111b4c8d6 (MethodDesc 00000001116f57a0 + 0x106 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116f49e0 + 0 System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E2C00 0000000111b4c933 (MethodDesc 00000001116f5790 + 0x43 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116f57a0 + 0 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E2C40 00000001146f04e0 (MethodDesc 0000000114ac7040 + 0x1c0 Microsoft.Azure.Amqp.TaskHelpers.ToAsyncResult[[System.Int32, System.Private.CoreLib]](System.Threading.Tasks.Task`1, System.AsyncCallback, System.Object)), calling (MethodDesc 00000001116f5790 + 0 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E2CE0 00000001146efedc (MethodDesc 000000011494a580 + 0x7c Microsoft.Azure.Amqp.StreamExtensions.BeginRead(System.IO.Stream, Byte[], Int32, Int32, System.AsyncCallback, System.Object)), calling (MethodDesc 0000000114ac7040 + 0 Microsoft.Azure.Amqp.TaskHelpers.ToAsyncResult[[System.Int32, System.Private.CoreLib]](System.Threading.Tasks.Task`1, System.AsyncCallback, System.Object)) 00007000109E2D40 00000001146efdce (MethodDesc 0000000114944cb0 + 0xae Microsoft.Azure.Amqp.Transport.TlsTransport.ReadAsync(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)), calling (MethodDesc 000000011494a580 + 0 Microsoft.Azure.Amqp.StreamExtensions.BeginRead(System.IO.Stream, Byte[], Int32, Int32, System.AsyncCallback, System.Object)) 00007000109E2DB0 00000001146f2eee (MethodDesc 0000000114ac8f10 + 0x5e Microsoft.Azure.Amqp.Sasl.SaslTransport.ReadAsync(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)) 00007000109E2DF0 0000000114b39eaa (MethodDesc 0000000114b27b60 + 0x13a Microsoft.Azure.Amqp.AsyncIO+AsyncReader.ReadBuffer()) 00007000109E2E90 0000000114b3f62d (MethodDesc 0000000114b27b50 + 0xcd Microsoft.Azure.Amqp.AsyncIO+AsyncReader.OnReadBufferComplete(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)), calling (MethodDesc 0000000114b27b60 + 0 Microsoft.Azure.Amqp.AsyncIO+AsyncReader.ReadBuffer()) 00007000109E2F10 00000001146ef2cf (MethodDesc 0000000114944d30 + 0x20f Microsoft.Azure.Amqp.Transport.TlsTransport.HandleOperationComplete(System.IAsyncResult, Boolean, Boolean)) 00007000109E2FE0 00000001146f0be8 (MethodDesc 0000000114944d00 + 0xd8 Microsoft.Azure.Amqp.Transport.TlsTransport.OnReadComplete(System.IAsyncResult)), calling (MethodDesc 0000000114944d30 + 0 Microsoft.Azure.Amqp.Transport.TlsTransport.HandleOperationComplete(System.IAsyncResult, Boolean, Boolean)) 00007000109E3030 00000001146f0aeb (MethodDesc 0000000114ac7368 + 0x16b Microsoft.Azure.Amqp.TaskHelpers+<>c__DisplayClass8_0`1[[System.Int32, System.Private.CoreLib]].b__1(System.Threading.Tasks.Task`1)) 00007000109E30C0 0000000111b0d051 (MethodDesc 00000001116edae8 + 0x71 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E30D0 00000001149b7f5d (MethodDesc 000000011494c958 + 0x2d System.Net.AsyncProtocolRequest.CompleteUser(Int32)), calling (MethodDesc 000000011494c300 + 0 System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object, IntPtr)) 00007000109E3110 0000000111b46945 (MethodDesc 00000001116f5428 + 0x1f5 System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)), calling (MethodDesc 00000001116edae8 + 0 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E3160 00000001032f3045 libcoreclr.dylib!JIT_GetSharedGCThreadStaticBase(unsigned long, unsigned int) + 0x35 00007000109E31D0 0000000111c7a808 (MethodDesc 0000000111716ce0 + 0x48 System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task, Boolean)), calling (MethodDesc 00000001116f5408 + 0 System.Threading.Tasks.Task.ExecuteEntryUnsafe()) 00007000109E3210 0000000111b7a148 (MethodDesc 00000001116fa5c8 + 0xb8 System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)) 00007000109E3250 0000000111bb5090 (MethodDesc 0000000111701bb8 + 0x60 System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(System.Threading.Tasks.Task, Boolean)), calling (MethodDesc 00000001116fa5c8 + 0 System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)) 00007000109E3280 0000000111b48f45 (MethodDesc 00000001116f49e0 + 0x175 System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116fbfb8 + 0 System.Threading.Tasks.StandardTaskContinuation.Run(System.Threading.Tasks.Task, Boolean)) 00007000109E32E0 0000000111b4c8d6 (MethodDesc 00000001116f57a0 + 0x106 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116f49e0 + 0 System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E3350 0000000111b4c933 (MethodDesc 00000001116f5790 + 0x43 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116f57a0 + 0 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E3390 00000001146f04e0 (MethodDesc 0000000114ac7040 + 0x1c0 Microsoft.Azure.Amqp.TaskHelpers.ToAsyncResult[[System.Int32, System.Private.CoreLib]](System.Threading.Tasks.Task`1, System.AsyncCallback, System.Object)), calling (MethodDesc 00000001116f5790 + 0 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E3430 00000001146efedc (MethodDesc 000000011494a580 + 0x7c Microsoft.Azure.Amqp.StreamExtensions.BeginRead(System.IO.Stream, Byte[], Int32, Int32, System.AsyncCallback, System.Object)), calling (MethodDesc 0000000114ac7040 + 0 Microsoft.Azure.Amqp.TaskHelpers.ToAsyncResult[[System.Int32, System.Private.CoreLib]](System.Threading.Tasks.Task`1, System.AsyncCallback, System.Object)) 00007000109E3490 00000001146efdce (MethodDesc 0000000114944cb0 + 0xae Microsoft.Azure.Amqp.Transport.TlsTransport.ReadAsync(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)), calling (MethodDesc 000000011494a580 + 0 Microsoft.Azure.Amqp.StreamExtensions.BeginRead(System.IO.Stream, Byte[], Int32, Int32, System.AsyncCallback, System.Object)) 00007000109E3500 00000001146f2eee (MethodDesc 0000000114ac8f10 + 0x5e Microsoft.Azure.Amqp.Sasl.SaslTransport.ReadAsync(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)) 00007000109E3540 0000000114b39eaa (MethodDesc 0000000114b27b60 + 0x13a Microsoft.Azure.Amqp.AsyncIO+AsyncReader.ReadBuffer()) 00007000109E35E0 0000000114b3f62d (MethodDesc 0000000114b27b50 + 0xcd Microsoft.Azure.Amqp.AsyncIO+AsyncReader.OnReadBufferComplete(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)), calling (MethodDesc 0000000114b27b60 + 0 Microsoft.Azure.Amqp.AsyncIO+AsyncReader.ReadBuffer()) 00007000109E3660 00000001146ef2cf (MethodDesc 0000000114944d30 + 0x20f Microsoft.Azure.Amqp.Transport.TlsTransport.HandleOperationComplete(System.IAsyncResult, Boolean, Boolean)) 00007000109E3730 00000001146f0be8 (MethodDesc 0000000114944d00 + 0xd8 Microsoft.Azure.Amqp.Transport.TlsTransport.OnReadComplete(System.IAsyncResult)), calling (MethodDesc 0000000114944d30 + 0 Microsoft.Azure.Amqp.Transport.TlsTransport.HandleOperationComplete(System.IAsyncResult, Boolean, Boolean)) 00007000109E3780 00000001146f0aeb (MethodDesc 0000000114ac7368 + 0x16b Microsoft.Azure.Amqp.TaskHelpers+<>c__DisplayClass8_0`1[[System.Int32, System.Private.CoreLib]].b__1(System.Threading.Tasks.Task`1)) 00007000109E3810 0000000111b0d051 (MethodDesc 00000001116edae8 + 0x71 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E3860 0000000111b46945 (MethodDesc 00000001116f5428 + 0x1f5 System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)), calling (MethodDesc 00000001116edae8 + 0 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E3890 00000001149bd66e (MethodDesc 000000011494c2c0 + 0x6e System.Net.LazyAsyncResult.get_CompletedSynchronously()) 00007000109E38B0 00000001032f3045 libcoreclr.dylib!JIT_GetSharedGCThreadStaticBase(unsigned long, unsigned int) + 0x35 00007000109E3920 0000000111c7a808 (MethodDesc 0000000111716ce0 + 0x48 System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task, Boolean)), calling (MethodDesc 00000001116f5408 + 0 System.Threading.Tasks.Task.ExecuteEntryUnsafe()) 00007000109E3960 0000000111b7a148 (MethodDesc 00000001116fa5c8 + 0xb8 System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)) 00007000109E39A0 0000000111bb5090 (MethodDesc 0000000111701bb8 + 0x60 System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(System.Threading.Tasks.Task, Boolean)), calling (MethodDesc 00000001116fa5c8 + 0 System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)) 00007000109E39D0 0000000111b48f45 (MethodDesc 00000001116f49e0 + 0x175 System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116fbfb8 + 0 System.Threading.Tasks.StandardTaskContinuation.Run(System.Threading.Tasks.Task, Boolean)) 00007000109E3A30 0000000111b4c8d6 (MethodDesc 00000001116f57a0 + 0x106 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116f49e0 + 0 System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E3AA0 0000000111b4c933 (MethodDesc 00000001116f5790 + 0x43 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116f57a0 + 0 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E3AE0 00000001146f04e0 (MethodDesc 0000000114ac7040 + 0x1c0 Microsoft.Azure.Amqp.TaskHelpers.ToAsyncResult[[System.Int32, System.Private.CoreLib]](System.Threading.Tasks.Task`1, System.AsyncCallback, System.Object)), calling (MethodDesc 00000001116f5790 + 0 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E3B80 00000001146efedc (MethodDesc 000000011494a580 + 0x7c Microsoft.Azure.Amqp.StreamExtensions.BeginRead(System.IO.Stream, Byte[], Int32, Int32, System.AsyncCallback, System.Object)), calling (MethodDesc 0000000114ac7040 + 0 Microsoft.Azure.Amqp.TaskHelpers.ToAsyncResult[[System.Int32, System.Private.CoreLib]](System.Threading.Tasks.Task`1, System.AsyncCallback, System.Object)) 00007000109E3BE0 00000001146efdce (MethodDesc 0000000114944cb0 + 0xae Microsoft.Azure.Amqp.Transport.TlsTransport.ReadAsync(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)), calling (MethodDesc 000000011494a580 + 0 Microsoft.Azure.Amqp.StreamExtensions.BeginRead(System.IO.Stream, Byte[], Int32, Int32, System.AsyncCallback, System.Object)) 00007000109E3C50 00000001146f2eee (MethodDesc 0000000114ac8f10 + 0x5e Microsoft.Azure.Amqp.Sasl.SaslTransport.ReadAsync(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)) 00007000109E3C90 0000000114b39eaa (MethodDesc 0000000114b27b60 + 0x13a Microsoft.Azure.Amqp.AsyncIO+AsyncReader.ReadBuffer()) 00007000109E3D30 0000000114b3f62d (MethodDesc 0000000114b27b50 + 0xcd Microsoft.Azure.Amqp.AsyncIO+AsyncReader.OnReadBufferComplete(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)), calling (MethodDesc 0000000114b27b60 + 0 Microsoft.Azure.Amqp.AsyncIO+AsyncReader.ReadBuffer()) 00007000109E3DB0 00000001146ef2cf (MethodDesc 0000000114944d30 + 0x20f Microsoft.Azure.Amqp.Transport.TlsTransport.HandleOperationComplete(System.IAsyncResult, Boolean, Boolean)) 00007000109E3E80 00000001146f0be8 (MethodDesc 0000000114944d00 + 0xd8 Microsoft.Azure.Amqp.Transport.TlsTransport.OnReadComplete(System.IAsyncResult)), calling (MethodDesc 0000000114944d30 + 0 Microsoft.Azure.Amqp.Transport.TlsTransport.HandleOperationComplete(System.IAsyncResult, Boolean, Boolean)) 00007000109E3ED0 00000001146f0aeb (MethodDesc 0000000114ac7368 + 0x16b Microsoft.Azure.Amqp.TaskHelpers+<>c__DisplayClass8_0`1[[System.Int32, System.Private.CoreLib]].b__1(System.Threading.Tasks.Task`1)) 00007000109E3F60 0000000111b0d051 (MethodDesc 00000001116edae8 + 0x71 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E3F70 00000001149b7f5d (MethodDesc 000000011494c958 + 0x2d System.Net.AsyncProtocolRequest.CompleteUser(Int32)), calling (MethodDesc 000000011494c300 + 0 System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object, IntPtr)) 00007000109E3FB0 0000000111b46945 (MethodDesc 00000001116f5428 + 0x1f5 System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)), calling (MethodDesc 00000001116edae8 + 0 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E4000 00000001032f3045 libcoreclr.dylib!JIT_GetSharedGCThreadStaticBase(unsigned long, unsigned int) + 0x35 00007000109E4070 0000000111c7a808 (MethodDesc 0000000111716ce0 + 0x48 System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task, Boolean)), calling (MethodDesc 00000001116f5408 + 0 System.Threading.Tasks.Task.ExecuteEntryUnsafe()) 00007000109E40B0 0000000111b7a148 (MethodDesc 00000001116fa5c8 + 0xb8 System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)) 00007000109E40F0 0000000111bb5090 (MethodDesc 0000000111701bb8 + 0x60 System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(System.Threading.Tasks.Task, Boolean)), calling (MethodDesc 00000001116fa5c8 + 0 System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)) 00007000109E4120 0000000111b48f45 (MethodDesc 00000001116f49e0 + 0x175 System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116fbfb8 + 0 System.Threading.Tasks.StandardTaskContinuation.Run(System.Threading.Tasks.Task, Boolean)) 00007000109E4180 0000000111b4c8d6 (MethodDesc 00000001116f57a0 + 0x106 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116f49e0 + 0 System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E41F0 0000000111b4c933 (MethodDesc 00000001116f5790 + 0x43 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116f57a0 + 0 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E4230 00000001146f04e0 (MethodDesc 0000000114ac7040 + 0x1c0 Microsoft.Azure.Amqp.TaskHelpers.ToAsyncResult[[System.Int32, System.Private.CoreLib]](System.Threading.Tasks.Task`1, System.AsyncCallback, System.Object)), calling (MethodDesc 00000001116f5790 + 0 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E42D0 00000001146efedc (MethodDesc 000000011494a580 + 0x7c Microsoft.Azure.Amqp.StreamExtensions.BeginRead(System.IO.Stream, Byte[], Int32, Int32, System.AsyncCallback, System.Object)), calling (MethodDesc 0000000114ac7040 + 0 Microsoft.Azure.Amqp.TaskHelpers.ToAsyncResult[[System.Int32, System.Private.CoreLib]](System.Threading.Tasks.Task`1, System.AsyncCallback, System.Object)) 00007000109E4330 00000001146efdce (MethodDesc 0000000114944cb0 + 0xae Microsoft.Azure.Amqp.Transport.TlsTransport.ReadAsync(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)), calling (MethodDesc 000000011494a580 + 0 Microsoft.Azure.Amqp.StreamExtensions.BeginRead(System.IO.Stream, Byte[], Int32, Int32, System.AsyncCallback, System.Object)) 00007000109E43A0 00000001146f2eee (MethodDesc 0000000114ac8f10 + 0x5e Microsoft.Azure.Amqp.Sasl.SaslTransport.ReadAsync(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)) 00007000109E43E0 0000000114b39eaa (MethodDesc 0000000114b27b60 + 0x13a Microsoft.Azure.Amqp.AsyncIO+AsyncReader.ReadBuffer()) 00007000109E4480 0000000114b3f62d (MethodDesc 0000000114b27b50 + 0xcd Microsoft.Azure.Amqp.AsyncIO+AsyncReader.OnReadBufferComplete(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)), calling (MethodDesc 0000000114b27b60 + 0 Microsoft.Azure.Amqp.AsyncIO+AsyncReader.ReadBuffer()) 00007000109E4500 00000001146ef2cf (MethodDesc 0000000114944d30 + 0x20f Microsoft.Azure.Amqp.Transport.TlsTransport.HandleOperationComplete(System.IAsyncResult, Boolean, Boolean)) 00007000109E45D0 00000001146f0be8 (MethodDesc 0000000114944d00 + 0xd8 Microsoft.Azure.Amqp.Transport.TlsTransport.OnReadComplete(System.IAsyncResult)), calling (MethodDesc 0000000114944d30 + 0 Microsoft.Azure.Amqp.Transport.TlsTransport.HandleOperationComplete(System.IAsyncResult, Boolean, Boolean)) 00007000109E4620 00000001146f0aeb (MethodDesc 0000000114ac7368 + 0x16b Microsoft.Azure.Amqp.TaskHelpers+<>c__DisplayClass8_0`1[[System.Int32, System.Private.CoreLib]].b__1(System.Threading.Tasks.Task`1)) 00007000109E46B0 0000000111b0d051 (MethodDesc 00000001116edae8 + 0x71 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E4700 0000000111b46945 (MethodDesc 00000001116f5428 + 0x1f5 System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)), calling (MethodDesc 00000001116edae8 + 0 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E4730 00000001149bd66e (MethodDesc 000000011494c2c0 + 0x6e System.Net.LazyAsyncResult.get_CompletedSynchronously()) 00007000109E4750 00000001032f3045 libcoreclr.dylib!JIT_GetSharedGCThreadStaticBase(unsigned long, unsigned int) + 0x35 00007000109E47C0 0000000111c7a808 (MethodDesc 0000000111716ce0 + 0x48 System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task, Boolean)), calling (MethodDesc 00000001116f5408 + 0 System.Threading.Tasks.Task.ExecuteEntryUnsafe()) 00007000109E4800 0000000111b7a148 (MethodDesc 00000001116fa5c8 + 0xb8 System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)) 00007000109E4840 0000000111bb5090 (MethodDesc 0000000111701bb8 + 0x60 System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(System.Threading.Tasks.Task, Boolean)), calling (MethodDesc 00000001116fa5c8 + 0 System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)) 00007000109E4870 0000000111b48f45 (MethodDesc 00000001116f49e0 + 0x175 System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116fbfb8 + 0 System.Threading.Tasks.StandardTaskContinuation.Run(System.Threading.Tasks.Task, Boolean)) 00007000109E48D0 0000000111b4c8d6 (MethodDesc 00000001116f57a0 + 0x106 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116f49e0 + 0 System.Threading.Tasks.Task.ContinueWithCore(System.Threading.Tasks.Task, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E4940 0000000111b4c933 (MethodDesc 00000001116f5790 + 0x43 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskContinuationOptions)), calling (MethodDesc 00000001116f57a0 + 0 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskScheduler, System.Threading.CancellationToken, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E4980 00000001146f04e0 (MethodDesc 0000000114ac7040 + 0x1c0 Microsoft.Azure.Amqp.TaskHelpers.ToAsyncResult[[System.Int32, System.Private.CoreLib]](System.Threading.Tasks.Task`1, System.AsyncCallback, System.Object)), calling (MethodDesc 00000001116f5790 + 0 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].ContinueWith(System.Action`1>, System.Threading.Tasks.TaskContinuationOptions)) 00007000109E4A20 00000001146efedc (MethodDesc 000000011494a580 + 0x7c Microsoft.Azure.Amqp.StreamExtensions.BeginRead(System.IO.Stream, Byte[], Int32, Int32, System.AsyncCallback, System.Object)), calling (MethodDesc 0000000114ac7040 + 0 Microsoft.Azure.Amqp.TaskHelpers.ToAsyncResult[[System.Int32, System.Private.CoreLib]](System.Threading.Tasks.Task`1, System.AsyncCallback, System.Object)) 00007000109E4A80 00000001146efdce (MethodDesc 0000000114944cb0 + 0xae Microsoft.Azure.Amqp.Transport.TlsTransport.ReadAsync(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)), calling (MethodDesc 000000011494a580 + 0 Microsoft.Azure.Amqp.StreamExtensions.BeginRead(System.IO.Stream, Byte[], Int32, Int32, System.AsyncCallback, System.Object)) 00007000109E4AF0 00000001146f2eee (MethodDesc 0000000114ac8f10 + 0x5e Microsoft.Azure.Amqp.Sasl.SaslTransport.ReadAsync(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)) 00007000109E4B30 0000000114b39eaa (MethodDesc 0000000114b27b60 + 0x13a Microsoft.Azure.Amqp.AsyncIO+AsyncReader.ReadBuffer()) 00007000109E4BD0 0000000114b3f62d (MethodDesc 0000000114b27b50 + 0xcd Microsoft.Azure.Amqp.AsyncIO+AsyncReader.OnReadBufferComplete(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)), calling (MethodDesc 0000000114b27b60 + 0 Microsoft.Azure.Amqp.AsyncIO+AsyncReader.ReadBuffer()) 00007000109E4C50 00000001146ef2cf (MethodDesc 0000000114944d30 + 0x20f Microsoft.Azure.Amqp.Transport.TlsTransport.HandleOperationComplete(System.IAsyncResult, Boolean, Boolean)) 00007000109E4D20 00000001146f0be8 (MethodDesc 0000000114944d00 + 0xd8 Microsoft.Azure.Amqp.Transport.TlsTransport.OnReadComplete(System.IAsyncResult)), calling (MethodDesc 0000000114944d30 + 0 Microsoft.Azure.Amqp.Transport.TlsTransport.HandleOperationComplete(System.IAsyncResult, Boolean, Boolean)) 00007000109E4D70 00000001146f0aeb (MethodDesc 0000000114ac7368 + 0x16b Microsoft.Azure.Amqp.TaskHelpers+<>c__DisplayClass8_0`1[[System.Int32, System.Private.CoreLib]].b__1(System.Threading.Tasks.Task`1)) 00007000109E4E00 0000000111b0d051 (MethodDesc 00000001116edae8 + 0x71 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E4E50 0000000111b46945 (MethodDesc 00000001116f5428 + 0x1f5 System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef)), calling (MethodDesc 00000001116edae8 + 0 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E4E80 00000001032a7ceb libcoreclr.dylib!ThreadNative::GetThreadState(ThreadBaseObject*) + 0x18b, calling libcoreclr.dylib!Frame::PopIfChained() 00007000109E4EA0 00000001032f3045 libcoreclr.dylib!JIT_GetSharedGCThreadStaticBase(unsigned long, unsigned int) + 0x35 00007000109E4F10 0000000111c7a808 (MethodDesc 0000000111716ce0 + 0x48 System.Threading.Tasks.ThreadPoolTaskScheduler.TryExecuteTaskInline(System.Threading.Tasks.Task, Boolean)), calling (MethodDesc 00000001116f5408 + 0 System.Threading.Tasks.Task.ExecuteEntryUnsafe()) 00007000109E4F50 0000000111b7a148 (MethodDesc 00000001116fa5c8 + 0xb8 System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)) 00007000109E4F90 0000000111bb5090 (MethodDesc 0000000111701bb8 + 0x60 System.Threading.Tasks.TaskContinuation.InlineIfPossibleOrElseQueue(System.Threading.Tasks.Task, Boolean)), calling (MethodDesc 00000001116fa5c8 + 0 System.Threading.Tasks.TaskScheduler.TryRunInline(System.Threading.Tasks.Task, Boolean)) 00007000109E4FC0 0000000111b47c85 (MethodDesc 00000001116f5590 + 0x1f5 System.Threading.Tasks.Task.RunContinuations(System.Object)) 00007000109E4FD0 00000001149bd6d1 (MethodDesc 000000011494c2c8 + 0x21 System.Net.LazyAsyncResult.get_IsCompleted()) 00007000109E4FF0 00000001149bdd93 (MethodDesc 000000011494c360 + 0x193 System.Net.LazyAsyncResult.WaitForCompletion(Boolean)) 00007000109E5070 0000000111b4c250 (MethodDesc 00000001116f5708 + 0x60 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].TrySetResult(Int32)), calling (MethodDesc 00000001116f5580 + 0 System.Threading.Tasks.Task.FinishContinuations()) 00007000109E5090 0000000111bb824c (MethodDesc 00000001117027e8 + 0x3c System.Threading.Tasks.TaskFactory`1+FromAsyncTrimPromise`1[[System.Int32, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib]].Complete(System.__Canon, System.Func`3, System.IAsyncResult, Boolean)), calling (MethodDesc 00000001116f5708 + 0 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].TrySetResult(Int32)) 00007000109E50D0 00000001149bdab9 (MethodDesc 000000011494c330 + 0x159 System.Net.LazyAsyncResult.Complete(IntPtr)) 00007000109E5130 00000001149bd8ca (MethodDesc 000000011494c300 + 0xea System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object, IntPtr)) 00007000109E5140 00000001032b0e4b libcoreclr.dylib!Buffer::BlockCopy(ArrayBase*, int, ArrayBase*, int, int) + 0x2fb, calling libcoreclr.dylib!memmove 00007000109E5170 00000001149b7f5d (MethodDesc 000000011494c958 + 0x2d System.Net.AsyncProtocolRequest.CompleteUser(Int32)), calling (MethodDesc 000000011494c300 + 0 System.Net.LazyAsyncResult.ProtectedInvokeCallback(System.Object, IntPtr)) 00007000109E5190 00000001149c91e6 (MethodDesc 0000000114ac5880 + 0x1d6 System.Net.Security.SslStreamInternal.ProcessFrameBody(Int32, Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)), calling (MethodDesc 000000011494c958 + 0 System.Net.AsyncProtocolRequest.CompleteUser(Int32)) 00007000109E51A0 0000000111b86532 (MethodDesc 00000001116fb858 + 0x62 System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)) 00007000109E5230 00000001149c979b (MethodDesc 0000000114ac58e0 + 0x5b System.Net.Security.SslStreamInternal.ReadFrameCallback(System.Net.AsyncProtocolRequest)), calling (MethodDesc 0000000114ac5880 + 0 System.Net.Security.SslStreamInternal.ProcessFrameBody(Int32, Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)) 00007000109E5260 00000001149b7e68 (MethodDesc 000000011494c918 + 0x38 System.Net.AsyncProtocolRequest.CompleteRequest(Int32)) 00007000109E5280 00000001149b7bce (MethodDesc 0000000114aa31a0 + 0x22e System.Net.FixedSizeReader+d__1.MoveNext()), calling (MethodDesc 000000011494c918 + 0 System.Net.AsyncProtocolRequest.CompleteRequest(Int32)) 00007000109E5320 0000000111b0d051 (MethodDesc 00000001116edae8 + 0x71 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E5370 0000000111b86532 (MethodDesc 00000001116fb858 + 0x62 System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)) 00007000109E53A0 0000000111b47b8e (MethodDesc 00000001116f5590 + 0xfe System.Threading.Tasks.Task.RunContinuations(System.Object)), calling (MethodDesc 00000001116fb858 + 0 System.Threading.Tasks.AwaitTaskContinuation.RunOrScheduleAction(System.Action, Boolean, System.Threading.Tasks.Task ByRef)) 00007000109E5450 0000000111b4c250 (MethodDesc 00000001116f5708 + 0x60 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].TrySetResult(Int32)), calling (MethodDesc 00000001116f5580 + 0 System.Threading.Tasks.Task.FinishContinuations()) 00007000109E5470 0000000111b95044 (MethodDesc 00000001116fd9a0 + 0x184 System.Threading.Tasks.TaskFactory`1[[System.Int32, System.Private.CoreLib]].FromAsyncCoreLogic(System.IAsyncResult, System.Func`2, System.Action`1, System.Threading.Tasks.Task`1, Boolean)), calling (MethodDesc 00000001116f5708 + 0 System.Threading.Tasks.Task`1[[System.Int32, System.Private.CoreLib]].TrySetResult(Int32)) 00007000109E5490 0000000111b94f1d (MethodDesc 00000001116fd9a0 + 0x5d System.Threading.Tasks.TaskFactory`1[[System.Int32, System.Private.CoreLib]].FromAsyncCoreLogic(System.IAsyncResult, System.Func`2, System.Action`1, System.Threading.Tasks.Task`1, Boolean)), calling (MethodDesc 00000001116fd9a0 + 0xa5 System.Threading.Tasks.TaskFactory`1[[System.Int32, System.Private.CoreLib]].FromAsyncCoreLogic(System.IAsyncResult, System.Func`2, System.Action`1, System.Threading.Tasks.Task`1, Boolean)) 00007000109E54A0 00000001146e2684 (MethodDesc 00000001147b4fe0 + 0x34 Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs.System.IAsyncResult.get_CompletedSynchronously()), calling (MethodDesc 00000001147b4f50 + 0 Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs.get_CompletedSynchronously()) 00007000109E54E0 00000001146e25d6 (MethodDesc 0000000114946620 + 0x106 Microsoft.Azure.Amqp.Transport.TransportStream.CompleteOperation(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)) 00007000109E5560 00000001146e4cce (MethodDesc 0000000114946610 + 0x9e Microsoft.Azure.Amqp.Transport.TransportStream.OnIOComplete(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)), calling (MethodDesc 0000000114946620 + 0 Microsoft.Azure.Amqp.Transport.TransportStream.CompleteOperation(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs)) 00007000109E55A0 00000001146e4777 (MethodDesc 00000001148fe398 + 0x527 Microsoft.Azure.Amqp.Transport.TcpTransport.HandleReadComplete(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs, Boolean, Boolean)) 00007000109E55B0 00007fffaa34b4ce libsystem_pthread.dylib!_pthread_cond_signal + 0x285, calling libsystem_pthread.dylib!_pthread_cond_updateval 00007000109E5710 00000001146e4185 (MethodDesc 00000001148fe378 + 0xb5 Microsoft.Azure.Amqp.Transport.TcpTransport.OnReadComplete(System.Object, System.Net.Sockets.SocketAsyncEventArgs)), calling (MethodDesc 00000001148fe398 + 0 Microsoft.Azure.Amqp.Transport.TcpTransport.HandleReadComplete(Microsoft.Azure.Amqp.Transport.TransportAsyncCallbackArgs, Boolean, Boolean)) 00007000109E5760 0000000114841996 (MethodDesc 00000001147b8180 + 0x36 System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(System.Net.Sockets.SocketAsyncEventArgs)) 00007000109E5780 000000011484201d (MethodDesc 00000001147b82f8 + 0x1d System.Net.Sockets.SocketAsyncEventArgs.ExecutionCallback(System.Object)) 00007000109E5790 0000000111b0d051 (MethodDesc 00000001116edae8 + 0x71 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E57E0 0000000114843237 (MethodDesc 00000001147b8478 + 0x57 System.Net.Sockets.SocketAsyncEventArgs.FinishOperationAsyncSuccess(Int32, System.Net.Sockets.SocketFlags)), calling (MethodDesc 00000001116edae8 + 0 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E5800 0000000114844984 (MethodDesc 00000001147b8708 + 0x14 System.Net.Sockets.SocketAsyncEventArgs.CompletionCallback(Int32, System.Net.Sockets.SocketFlags, System.Net.Sockets.SocketError)), calling (MethodDesc 00000001147b8478 + 0 System.Net.Sockets.SocketAsyncEventArgs.FinishOperationAsyncSuccess(Int32, System.Net.Sockets.SocketFlags)) 00007000109E5810 00000001032f452f libcoreclr.dylib!JIT_ChkCastAny + 0x1f, calling libcoreclr.dylib!ObjIsInstanceOfNoGC 00007000109E5820 00000001148438ce (MethodDesc 00000001147b8598 + 0x2e System.Net.Sockets.SocketAsyncEventArgs.TransferCompletionCallbackCore(Int32, Byte[], Int32, System.Net.Sockets.SocketFlags, System.Net.Sockets.SocketError)), calling (MethodDesc 00000001147b8708 + 0 System.Net.Sockets.SocketAsyncEventArgs.CompletionCallback(Int32, System.Net.Sockets.SocketFlags, System.Net.Sockets.SocketError)) 00007000109E5830 000000011484ff7b (MethodDesc 0000000114aa4488 + 0x2b System.Net.Sockets.SocketAsyncContext+ReceiveOperation.InvokeCallback()) 00007000109E5840 000000011484fd7d (MethodDesc 00000001148fac68 + 0x1d System.Net.Sockets.SocketAsyncContext+AsyncOperation+<>c.b__14_0(System.Object)) 00007000109E5850 0000000111b0d051 (MethodDesc 00000001116edae8 + 0x71 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)) 00007000109E58A0 0000000111b87ce0 (MethodDesc 00000001116fbf80 + 0x1a0 System.Threading.ThreadPoolWorkQueue.Dispatch()) 00007000109E58E0 00000001030c5296 libcoreclr.dylib!CorUnix::CSynchCache::Get(CorUnix::CPalThread*, int, CorUnix::CSynchWaitController**) + 0x76, calling libcoreclr.dylib!CorUnix::InternalLeaveCriticalSection(CorUnix::CPalThread*, _CRITICAL_SECTION*) 00007000109E5910 00000001033a0911 libcoreclr.dylib!CallDescrWorkerInternal + 0x7c 00007000109E5930 00000001032907ed libcoreclr.dylib!MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 0x3ad, calling libcoreclr.dylib!CallDescrWorkerInternal 00007000109E5A20 00000001032904f5 libcoreclr.dylib!MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) + 0xb5, calling libcoreclr.dylib!ArgIteratorTemplate::SizeOfArgStack() 00007000109E5B00 00000001032ab0d5 libcoreclr.dylib!QueueUserWorkItemManagedCallback(void*) + 0xa5, calling libcoreclr.dylib!MethodDescCallSite::CallTargetWorker(unsigned long const*, unsigned long*, int) 00007000109E5C10 00000001032526da libcoreclr.dylib!ManagedThreadBase_DispatchOuter(ManagedThreadCallState*) + 0x17a 00007000109E5D30 0000000103252d93 libcoreclr.dylib!ManagedThreadBase::ThreadPool(ADID, void (*)(void*), void*) + 0x33, calling libcoreclr.dylib!ManagedThreadBase_DispatchOuter(ManagedThreadCallState*) 00007000109E5D70 0000000103247a0c libcoreclr.dylib!ManagedPerAppDomainTPCount::DispatchWorkItem(bool*, bool*) + 0x10c, calling libcoreclr.dylib!ManagedThreadBase::ThreadPool(ADID, void (*)(void*), void*) 00007000109E5D90 00007fffaa16a2af libsystem_c.dylib!clock_gettime + 0xc6, calling libsystem_c.dylib!_mach_boottime_usec 00007000109E5E20 000000010324739a libcoreclr.dylib!PerAppDomainTPCountList::GetAppDomainIndexForThreadpoolDispatch() + 0x7a 00007000109E5E60 0000000103271d40 libcoreclr.dylib!ThreadpoolMgr::WorkerThreadStart(void*) + 0x3f0 00007000109E5E70 00000001032da281 libcoreclr.dylib!EEHeapFreeInProcessHeap(unsigned int, void*) + 0x31, calling libcoreclr.dylib!HeapFree 00007000109E5EC0 00000001030cedd8 libcoreclr.dylib!CorUnix::CPalThread::ThreadEntry(void*) + 0x148 00007000109E5EF0 00007fffaa34c93b libsystem_pthread.dylib!_pthread_body + 0xb4 00007000109E5F10 00007fffaa34c887 libsystem_pthread.dylib!_pthread_body, calling libsystem_pthread.dylib!_pthread_body 00007000109E5F50 00007fffaa34c08d libsystem_pthread.dylib!thread_start + 0xd, calling libsystem_pthread.dylib!_pthread_start (lldb) ```" +24143 area-System.Net Allow receiving a Socket from a file handle It would be nice to have the ability to receive a socket from a file handle and be able to call Accept() on it. This is useful to enable functionality like [systemd socket activation](http://0pointer.de/blog/projects/socket-activation.html). Ex. ```cs var listeningSocket = Socket.FromFileHandle(handle); //socket is already bound by the service manager var connectionScoket = listeningSocket.Accept(); //Send data through connectionSocket ``` +24145 area-System.Text Consider Span overloads on Regex classes **edit by @ViktorHofer, moved initial post down.** Spanifying Regex removes (a) unnecessary string allocations that tend to decrease perf and (b) allows different types of Memory to be processed. **API proposal and implementation:** https://github.com/ViktorHofer/corefx/pull/1 ## Proposed APIs This diff contains the Memory overloads and the MatchEvaluator overloads. See discussion above if we should introduce new ref types for Match, Group & Capture. ```diff namespace System.Text.RegularExpressions { public partial class Capture { internal Capture() { } public int Index { get { throw null; } } public int Length { get { throw null; } } public string Value { get { throw null; } } + public ReadOnlySpan ValueSpan { get { throw null; } } public override string ToString() { throw null; } } public partial class Match : System.Text.RegularExpressions.Group { internal Match() { } public static System.Text.RegularExpressions.Match Empty { get { throw null; } } public virtual System.Text.RegularExpressions.GroupCollection Groups { get { throw null; } } public System.Text.RegularExpressions.Match NextMatch() { throw null; } public virtual string Result(string replacement) { throw null; } + public virtual bool TryResult(string replacement, Span destination, out int charsWritten) { throw null; } public static System.Text.RegularExpressions.Match Synchronized(System.Text.RegularExpressions.Match inner) { throw null; } } public partial class Regex : System.Runtime.Serialization.ISerializable { + public ref struct SplitEnumerator + { + public ReadOnlySpan Current { get { throw null; } } + public SplitEnumerator GetEnumerator() { throw null; } + public bool MoveNext() { throw null; } + } protected internal System.Collections.Hashtable caps; protected internal System.Collections.Hashtable capnames; protected internal int capsize; protected internal string[] capslist; protected internal System.Text.RegularExpressions.RegexRunnerFactory factory; public static readonly System.TimeSpan InfiniteMatchTimeout; protected internal System.TimeSpan internalMatchTimeout; protected internal string pattern; protected internal System.Text.RegularExpressions.RegexOptions roptions; protected Regex() { } protected Regex(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { } public Regex(string pattern) { } public Regex(string pattern, System.Text.RegularExpressions.RegexOptions options) { } public Regex(string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) { } public static int CacheSize { get { throw null; } set { } } [System.CLSCompliant(false)] protected System.Collections.IDictionary Caps { get { throw null; } set { } } [System.CLSCompliant(false)] protected System.Collections.IDictionary CapNames { get { throw null; } set { } } public System.TimeSpan MatchTimeout { get { throw null; } } public System.Text.RegularExpressions.RegexOptions Options { get { throw null; } } public bool RightToLeft { get { throw null; } } public static string Escape(string str) { throw null; } + public static bool TryEscape(ReadOnlySpan str, Span destination, out int charsWritten) { throw null; } public string[] GetGroupNames() { throw null; } public int[] GetGroupNumbers() { throw null; } public string GroupNameFromNumber(int i) { throw null; } public int GroupNumberFromName(string name) { throw null; } protected void InitializeReferences() { } public bool IsMatch(string input) { throw null; } + public bool IsMatch(ReadOnlySpan input) { throw null; } public bool IsMatch(string input, int startat) { throw null; } public static bool IsMatch(string input, string pattern) { throw null; } public static bool IsMatch(string input, string pattern, System.Text.RegularExpressions.RegexOptions options) { throw null; } public static bool IsMatch(string input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) { throw null; } + public static bool IsMatch(ReadOnlySpan input, string pattern, System.Text.RegularExpressions.RegexOptions options = System.Text.RegularExpressions.RegexOptions.None, System.TimeSpan? matchTimeout = null) { throw null; } public System.Text.RegularExpressions.Match Match(string input) { throw null; } + public System.Text.RegularExpressions.Match Match(ReadOnlyMemory input) { throw null; } public System.Text.RegularExpressions.Match Match(string input, int startat) { throw null; } public System.Text.RegularExpressions.Match Match(string input, int beginning, int length) { throw null; } public static System.Text.RegularExpressions.Match Match(string input, string pattern) { throw null; } public static System.Text.RegularExpressions.Match Match(string input, string pattern, System.Text.RegularExpressions.RegexOptions options) { throw null; } public static System.Text.RegularExpressions.Match Match(string input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) { throw null; } + public static System.Text.RegularExpressions.Match Match(ReadOnlyMemory input, string pattern, System.Text.RegularExpressions.RegexOptions options = RegexOptions.None, System.TimeSpan? matchTimeout = null) { throw null; } public System.Text.RegularExpressions.MatchCollection Matches(string input) { throw null; } + public System.Text.RegularExpressions.MatchCollection Matches(ReadOnlyMemory input) { throw null; } public System.Text.RegularExpressions.MatchCollection Matches(string input, int startat) { throw null; } public static System.Text.RegularExpressions.MatchCollection Matches(string input, string pattern) { throw null; } public static System.Text.RegularExpressions.MatchCollection Matches(string input, string pattern, System.Text.RegularExpressions.RegexOptions options) { throw null; } public static System.Text.RegularExpressions.MatchCollection Matches(string input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) { throw null; } + public static System.Text.RegularExpressions.MatchCollection Matches(ReadOnlyMemory input, string pattern, System.Text.RegularExpressions.RegexOptions options = RegexOptions.None, System.TimeSpan? matchTimeout = null) { throw null; } public string Replace(string input, string replacement) { throw null; } public string Replace(string input, string replacement, int count) { throw null; } + public bool TryReplace(ReadOnlySpan input, string replacement, Span destination, out int charsWritten, int count = -1) { throw null; } public string Replace(string input, string replacement, int count, int startat) { throw null; } public static string Replace(string input, string pattern, string replacement) { throw null; } public static string Replace(string input, string pattern, string replacement, System.Text.RegularExpressions.RegexOptions options) { throw null; } public static string Replace(string input, string pattern, string replacement, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) { throw null; } + public static bool TryReplace(ReadOnlySpan input, string pattern, string replacement, Span destination, out int charsWritten, System.Text.RegularExpressions.RegexOptions options = System.Text.RegularExpressions.RegexOptions.None, System.TimeSpan? matchTimeout = null) { throw null; } public static string Replace(string input, string pattern, System.Text.RegularExpressions.MatchEvaluator evaluator) { throw null; } public static string Replace(string input, string pattern, System.Text.RegularExpressions.MatchEvaluator evaluator, System.Text.RegularExpressions.RegexOptions options) { throw null; } public static string Replace(string input, string pattern, System.Text.RegularExpressions.MatchEvaluator evaluator, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) { throw null; } + public static bool TryReplace(ReadOnlySpan input, string pattern, System.Text.RegularExpressions.MatchEvaluator evaluator, Span destination, out int charsWritten, System.Text.RegularExpressions.RegexOptions options = System.Text.RegularExpressions.RegexOptions.None, System.TimeSpan? matchTimeout = null) { throw null; } public string Replace(string input, System.Text.RegularExpressions.MatchEvaluator evaluator) { throw null; } public string Replace(string input, System.Text.RegularExpressions.MatchEvaluator evaluator, int count) { throw null; } + public bool TryReplace(ReadOnlySpan input, System.Text.RegularExpressions.MatchEvaluator evaluator, Span destination, out int charsWritten, int count = -1) { throw null; } public string Replace(string input, System.Text.RegularExpressions.MatchEvaluator evaluator, int count, int startat) { throw null; } public string[] Split(string input) { throw null; } public string[] Split(string input, int count) { throw null; } public string[] Split(string input, int count, int startat) { throw null; } + public SplitEnumerator Split(ReadOnlySpan input, int count = 0) { throw null; } public static string[] Split(string input, string pattern) { throw null; } public static string[] Split(string input, string pattern, System.Text.RegularExpressions.RegexOptions options) { throw null; } public static string[] Split(string input, string pattern, System.Text.RegularExpressions.RegexOptions options, System.TimeSpan matchTimeout) { throw null; } + public static SplitEnumerator Split(ReadOnlySpan input, string pattern, RegexOptions options = RegexOptions.None, TimeSpan? matchTimeout = null) { throw null; } void System.Runtime.Serialization.ISerializable.GetObjectData(System.Runtime.Serialization.SerializationInfo si, System.Runtime.Serialization.StreamingContext context) { } public override string ToString() { throw null; } public static string Unescape(string str) { throw null; } + public static bool TryUnescape(ReadOnlySpan str, Span destination, out int charsWritten) { throw null; } protected bool UseOptionC() { throw null; } protected bool UseOptionR() { throw null; } protected internal static void ValidateMatchTimeout(System.TimeSpan matchTimeout) { } } } ``` ## Discussion points ### Ref struct for Match and siblings (Capture & Group). I had a discussion with Jan offline and he pointed out that we might want to introduce a `ref struct MatchValue` type that is returned by APIs that take Span/Memory as an input. > The problem with just using the current `class Match` is that it gives you unsecure access to the Span. For example, you can send the Match object to other thread and start working on the Span there, while the current thread unwinds and frees the memory. ref struct MatchValue would avoid this issue (And also saved the alllocation) The issues with that is that we currently have the following hiearchy: Match --> Group --> Capture and that Groups and Match contain collections of Captures/Groups. > Yes, the flip from class to valuetype tends to be like this. E.g. when we have introduced ValueTask to CoreFX, a bunch of parallel ValueSomething types went with it. It is a topic for API review discussion One option is to just not have Span version of the APIs that returns these collections or have callbacks ### startat overload > For things like Regex.Replace, the startat argument means copy everything up to startat to the destination Span, and then run regular Replace that does not take startat method. So this looks like a convenience method to me - it saves you from typing a tiny bit of code in rare cases to achieve the same effect. Should we add these startat convenience overloads for Span also? If yes, this commit should be reverted https://github.com/ViktorHofer/corefx/pull/1/commits/bf7d7f986faaa212476ceeac09ab71c8ab6c7fd5 ### RegexSplitEnumerator RTL yield order If you call the Span version of Regex.Split and pass `RegexOptions.RightToLeft` to it the yield order of the enumerator will also be right to left as we start looking for matches from right to left. The current implementation (which is not an enumerator!) reverses the captured strings before returning. ### RegexSplitEnumerator GetEnumerator (see ref diff) > I'm not aware of any other cases in the BCL where we have a GetEnumerator method like this on a struct enumerator. I understand you want it to be able to directly foreach the results without introducing an enumerable struct to serve as the return type, but I'm not sure this is a pattern we want to introduce. You should be sure to highlight this as part of any API review discussion. +24147 area-System.Net Remove invalid NameResolution tests The Dns_GetHostEntryAsync_* tests are fundamentally invalid because it's possible for the broadcast address, 255.255.255.255, to have a DNS mapping via manually modifying the hosts file. This was actually happening on Mac systems as well as a virtual environment running on top of that (i.e. Windows on Parallels). Ref: https://github.com/dotnet/corefx/issues/23992#issuecomment-330250642 Contributes to #23992 +24148 area-System.Data 2nd connection to mirrored server with timeout==0 hangs forever. Customer reported a bug for hanging connection to mirrored SQL Server. When customer creates and opens ***2 connections*** one after another to ***mirrored server*** with ***connection timeout set to 0***, the 2nd connection hangs infinitely. +24150 area-System.Drawing System.Drawing - Add Graphics tests based on Mono's test suite Adds unit tests for System.Drawing.Graphics based on Mono's test suite. +24151 area-System.Drawing Add unit tests for System.Drawing.Imaging.Metafile based on Mono's unit tests - Import tests for the `Metafile` class based on Mono's unit test +24152 area-System.Drawing System.Drawing - Add tests for Bitmap based on Mono's unit test suite +24153 area-Infrastructure Perf tests are broken when run from project test directory I'm trying to build and run the System.Collections perf tests. Following the instructions at https://github.com/dotnet/corefx/blob/master/Documentation/project-docs/performance-tests.md, I did a: ``` git clean -xdf build -release ``` from the root of my repo, and then from `src\System.Collections\tests\Performance` did: ``` msbuild /t:BuildAndTest /p:Performance=true /p:ConfigurationGroup=Release /p:TargetOS=Windows_NT ``` and I get the error: ``` The application to execute does not exist: 'corefx\bin\tests\System.Collections.Performance.Tests\netcoreapp-Windows_NT-Release-x64\PerfRunner.exe' +24156 area-System.Collections Have HashSet implement ICollection ### Motive The `ICollection` (non-generic) interface, is a pathway to getting the `Count` property of a collection in a non-generic way. This is very common in converters or some other types that take in any object and has to deal with it differently if it's a collection. Most common collections in .NET (`List`, `Dictionary`, `Collection`, also implement `ICollection`, so it falls through the '[countable](https://github.com/dotnet/corefx/issues/23578)' criteria. However, the [`HashSet`](https://github.com/dotnet/corefx/blob/master/src/System.Collections/src/System/Collections/Generic/HashSet.cs) class doesn't. So as explained in #23578, in order to obtain the `Count` of a `HashSet`, we'll have to use reflection if we don't know `T` at compile time (for example we have an `object` typed variable that we know it contains a `HashSet`, but `T` can be anything, and is irrelevant to be able to get the count. ### Suggestion I'd prefer seeing this issue addressed as it should be in the first place, which is having a non-generic middle interface that signifies the `Count` property, but meanwhile, having the `HashSet` implement `ICollection` will bring the `HashSet` to this countable group as well, even as a temporary solution. ### Things to consider - If we do implement `ICountable`, we have another class to take care of before getting rid of the `ICollection` part, if we want to. - Please comment on [EDIT] Fixed code link by @karelz +24157 area-System.ComponentModel Dataannotations length fix - Formatting exception Fixes #24064. +24158 area-System.Text Port Regex.Compiled in-memory compilation of regex patterns from Desktop ## Changes - Reenabled compilation of regex patterns when compiled flag is set - Cleanup ref sources as they aren't compiled against netstandard anymore - Reenable more tests for uap/uapaot ## Issues The `CompileToAssembly` API (RegexTypeCompiler.cs) depends on `System.Reflection.Emit.AssemblyBuilder.Save` (https://github.com/dotnet/corefx/issues/4491) which isn't in Core yet. => No pre-compilation of regex patterns into assembly possible ## Potential future optimization The current Regex implementation produces a lot of HEAP pressure. Using the static Regex methods doesn't reduce the number of allocations as they are just creating a new Regex object underneath and calling its instance method. Something to investigate further but not scope of this change. ## Performance number Release configuration on my machine (i7 2 physical cores) with the latest regex-redux benchmark: Compiled: ``` TotalSeconds : 11.731449 (varies between 11.5 and 15.5) ``` Non-Compiled: ``` TotalSeconds : 35.3416494 (varies between 35 and 42) ``` 31.19s on benchmarkgame with 4 physical core +24159 area-System.IO "Test: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.ValidArgumentCombinationsWithPath_ModesOpenOrCreate failed with ""System.IO.IOException""" Failed test: System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.ValidArgumentCombinationsWithPath_ModesOpenOrCreate Configuration: outerloop_netcoreapp_win7_release Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win7_release/252/testReport/System.IO.MemoryMappedFiles.Tests/MemoryMappedFileTests_CreateFromFile/ValidArgumentCombinationsWithPath_ModesOpenOrCreate_mode__Open__mapName__null__capacity__10000__access__CopyOnWrite_/ MESSAGE: ~~~ System.IO.IOException : The operation completed successfully ~~~ STACK TRACE: ~~~ at System.IO.MemoryMappedFiles.MemoryMappedView.Flush(UIntPtr capacity) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.IO.MemoryMappedFiles\src\System\IO\MemoryMappedFiles\MemoryMappedView.Windows.cs:line 125 at System.IO.MemoryMappedFiles.MemoryMappedViewAccessor.Dispose(Boolean disposing) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.IO.MemoryMappedFiles\src\System\IO\MemoryMappedFiles\MemoryMappedViewAccessor.cs:line 44 at System.IO.MemoryMappedFiles.Tests.MemoryMappedFilesTestBase.CreateAndValidateViews(MemoryMappedFile mmf, Int64 capacity, MemoryMappedFileAccess access) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.IO.MemoryMappedFiles\tests\MemoryMappedFilesTestsBase.cs:line 123 at System.IO.MemoryMappedFiles.Tests.MemoryMappedFilesTestBase.ValidateMemoryMappedFile(MemoryMappedFile mmf, Int64 expectedCapacity, MemoryMappedFileAccess expectedAccess, HandleInheritability expectedInheritability) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.IO.MemoryMappedFiles\tests\MemoryMappedFilesTestsBase.cs:line 96 at System.IO.MemoryMappedFiles.Tests.MemoryMappedFileTests_CreateFromFile.ValidArgumentCombinationsWithPath_ModesOpenOrCreate(FileMode mode, String mapName, Int64 capacity, MemoryMappedFileAccess access) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.IO.MemoryMappedFiles\tests\MemoryMappedFile.CreateFromFile.Tests.cs:line 323 ~~~ +24160 area-System.IO Support folder names ending with a period? "I have an issue related to Windows folder names that end with a period. In my case this was caused by a cloud storage desktop sync application where creating folders in the cloud like ""Some Corp Ltd."" is possible. Since there was already work done to support long filenames in .NET Core (see https://github.com/dotnet/corefx/issues/645) I thought it might be feasible that this issue might be addressed as well. I'm aware of libraries like [AlphaFS](http://alphafs.alphaleonis.com/) (using [LongFullPath](http://alphafs.alphaleonis.com/doc/2.1/api/html/5E9EE47E.htm)) that work with the full framework, but I wondering if anything is planned for .NET Core (I'm assuming this isn't an issue for Linux). I understand that it's an edge case, but currently using Directory.Exists in this situation returns false which is a misleading IMHO. @JeremyKuhne is it possible to support folders with names ending with a period in System.IO.FileSystem? " +24161 area-System.Linq Please implement SymmetricExceptWith in LINQ ## Motive `HashSet` provides a wonderful method that allows getting the [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference) of two collections, that is, only the values that exists in either one of the collections, but not in both. ## Use case Imagine you have an existing store entity and a client entity that just came in to be saved. The entity has a collection of related entities (1 to M). You want to mess with those related entities that were either added or removed, but not the others. ## Implementation Add the following methods to the `Enumerable` class: ```c# public static SymmetricExceptWith(this IEnumerable collection, IEnumerable other); public static SymmetricExceptWith(this IEnumerable collection, IEnumerable other, IEqualityComparer comparer); ``` If this is approved, I'm willing to implement this. Area: System.Linq [EDIT] Add C# syntax highlight by @karelz +24163 area-System.IO Add testing of FileStream not truncating files when opening fails Test of #24081 (succeeds after dotnet/coreclr#14043) +24165 area-System.Runtime Should we allow multiply TimeSpan with number? Instead of ```C# var day = TimeSpan.FromDay(1) var twoDay = TimeSpan.FromDay(2); var halfDay = TimeSpan.FromDay(0.5f); var eDay = TimeSpan.FromDay(Math.E); var goldenDay = TimeSpan.FromDay((1 + Math.Sqrt(5)) / 2); ``` If we could multiply TimeSpan with number it would be easier ```C# var day = TimeSpan.FromDay(1); var twoDay = 2 * day; var halfDay = day / 2; var eDay = day * Math.E; var goldenDay = day * (1 + Math.Sqrt(5)) / 2; ``` +24166 area-System.Drawing Fix HatchBrush constructor validation, renable more passing tests on Unix +24167 area-System.Drawing HatchStyle.Max is incorrect "In the docs for HatchStyle, `HatchStyle.Max` is documented as ""Specifies hatch style SolidDiamond."" https://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.hatchstyle(v=vs.110).aspx However, in [corefx](https://github.com/dotnet/corefx/blob/c0f506dc24f9c682fd69441b4fb3259b1a5f55d3/src/System.Drawing.Common/src/System/Drawing/Drawing2D/HatchStyle.cs#L65), it is defined as `LargeGrid` Is this a bug in corefx/.NET framework, or the documentation? I think the value of `Max` should be fixed to match the value in GDI+, and to actually be the largest value of `HatchStyle`" +24169 area-Meta .NET Core Version of System.Web.UI.HtmlTextWriter Does such a thing exist? What is the alternative? I'm using this type to do XSL transforms like so: ```c# private static Stream XslTransform(XDocument document, XmlReader xslReader) { var xslTransform = new XslCompiledTransform(); var stringBuilder = new StringBuilder(); using (var stringWriter = new StringWriter(stringBuilder)) { using (var htmlWriter = new HtmlTextWriter(stringWriter)) { xslTransform.Load(xslReader); xslTransform.Transform(document.CreateReader(), new XsltArgumentList(), htmlWriter); htmlWriter.Flush(); } } return new MemoryStream(Encoding.UTF8.GetBytes(stringBuilder.ToString())); } ``` [EDIT] Add C# syntax highlighting by @karelz +24171 area-System.Security Fix ECDsa ExportParameters segfault ECDSa.Export(Explicit)Parameters(includePrivateParameters:true) on an EC object containing only a public key will currently segfault on Linux. It is supposed to throw a CryptographicException, so this commit changes it to do so. cc: @bartonjs @morganbr 1.0, 1.1, and 2.0 PR's to come after merging this one. +24173 area-System.Net Provide an (at least temporary) non-global ManagedHandler opt-in mechanism Right now the only way to opt-in to using ManagedHandler is via an environment variable. That requires a process-wide setting which makes it impossible to create an individual HttpClient{Handler} that uses ManagedHandler; another thread could be instantiating one at the same time and would pick up the setting. This is why we had to disable parallel execution of our System.Net.Http test suite. We still haven't yet figured out the final model via which we'll enable usage of ManagedHandler. For now, though, I'm adding a thread-local switch, to allow opting in a single HttpClientHandler construction. This makes it possible to re-enable our test parallelism, which this PR also does (and in the process drops outerloop execution time by 3x on my machine), but it also enables us to make progress on https://github.com/dotnet/corefx/issues/23152, which is blocked by having a global-only setting. cc: @geoffkizer, @davidsh, @wfurt, @Priya91 +24174 area-Meta Deliver SignalR Dependencies SignalR just released an alpha using several components from corefxlab. We need to productize these components: - [x] [System.Binary](https://github.com/dotnet/corefxlab/tree/master/src/System.Binary) Issue: #24144 PR: #24400 - [x] [System.Binary.Base64](https://github.com/dotnet/corefxlab/tree/master/src/System.Binary.Base64) Issue: #24568 - [x] [System.Text.Primitives](https://github.com/dotnet/corefxlab/tree/master/src/System.Text.Primitives) Issue: #24607 - [x] [System.Threading.Tasks.Channels](https://github.com/dotnet/corefxlab/tree/master/src/System.Threading.Tasks.Channels) Issue: #24823 - [x] [System.IO.Pipelines](https://github.com/dotnet/corefxlab/tree/master/src/System.IO.Pipelines) Issue: #24824 - ~[System.Text.Encodings.Web.Utf8](https://github.com/dotnet/corefxlab/tree/master/src/System.Text.Encodings.Web.Utf8) Issue: #24825~ - [x] [System.IO.Compression.Brotli](https://github.com/dotnet/corefxlab/tree/master/src/System.IO.Compression.Brotli) Issue: #24826 - [x] [System.Collections.Sequences](https://github.com/dotnet/corefxlab/tree/master/src/System.Collections.Sequences) Issue: #25105 - ~[System.Text.Formatting](https://github.com/dotnet/corefxlab/tree/master/src/System.Text.Formatting) Issue: #25249~ Edit: Not needed by SignalR +24175 area-System.Data SqlClient: Connection to Sql Server over network with named instance fails to connect "When attempting to connect to a Sql Server instance over the network, with named instances, SqlConnection throws error 26 on .NET Core with the SqlClient nuget library. ### Sample Code ```csharp using System; using System.Data.SqlClient; namespace ConsoleApp1 { class Program { static void Main(string[] args) { var sqlString = ""Data Source=192.168.0.3\\SQLEXPRESS;Initial Catalog=Database;User ID=sa;Password=""; var conn = new SqlConnection(sqlString); conn.Open(); conn.Close(); Console.WriteLine(""Hello World!""); } } } ``` This sample code was tested working on .NET 4.5 and 4.6.1, but breaks on .NET Core 2.0, 1.1 and 1.0, along with versions 4.4, 4.3, and 4.1 of the System.Data.SqlClient library on nuget. I've been able to only reproduce this on Windows. The server is configured for remote access as I'm able to connect to the remote instance using the same sample code full .NET Framework. The expected output should just be `Hello World!` and the program terminating, which happens on the full framework. However the following exception gets thrown instead on .NET Core: ``` System.Data.SqlClient.SqlException occurred HResult=0x80131904 Message=A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) Source=Core .Net SqlClient Data Provider StackTrace: at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling) at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) at System.Data.SqlClient.SqlConnection.Open() at TestSqlAccess.Program.Main(String[] args) in C:\src\PlaneStatus\TestSqlAccess\Program.cs:line 9 ``` ### Temporary Workaround I figured out for now was using `hostname,port` instead of the `hostname\\instance` works and connects as intended, however I'd like to use a named instance instead of having to rely on ports. This workaround does not work for Linux, at least according to my tests, as it throws other exceptions even with this workaround, mostly being able to not connect. I haven't checked Mac since I don't have access to one." +24176 area-System.IO Fix memory map imports "Imports lost the last error attribute. Add it back and change the results to be the more correct ""bool"". Tweak the usage based on the new return type. #24159" +24177 area-Infrastructure Update build to clang/llvm 3.9 Update scripts, docs and build pipeline docker images to clang/llvm/lldb 3.9 +24179 area-Serialization Port the assembly load path change into 2.0 branch #22558 This change need be ported into 2.0 branch so SGEN support 2.0 +24180 area-System.Memory Provide a stateful reader writer of span's "ref #24144 When using span to read/write a block of memory you often end up with the following pattern ```c# var myspan = [someplace a span is allocated] span.Write[TBD](someValue); span = span.Slice(sizeof(typeof(someValue)); span.Write[TBD](someOtherValue); span = span.Slice(....... ``` Now obviously that code is not 100% representative of real code but the overall pattern is. I have used span in a couple of real world apps and the pattern ends up being a mess. Write/Read then slice, Write/Read then slice again. It seems that as it is a very common pattern (from my use anyway) the abstraction that is often come up with is a struct wrapper that can ""hide"" that slicing away and instead ""advance"" the span on writes. Something like ```c# public struct BigEndianWriter { private Span _innerSpan; public BigEndianWriter(Span innerSpan) => _innerSpan; } public struct LittleEndianWriter { private Span _innerSpan; public LittleEndianWriter(Span innerSpan) => _innerSpan; } public struct BigEndianReader { private ReadOnlySpan _innerSpan; public BigEndianReader(ReadOnlySpan innerSpan) => _innerSpan; } public struct LittleEndianReader { private ReadOnlySpan _innerSpan; public LittleEndianReader(ReadOnlySpan innerSpan) => _innerSpan; } ``` The kinds of methods you would want to see on such a struct would be ```c# //Readers only public byte ReadByte(); public sbyte ReadByteS(); public short ReadInt16(); public ushort ReadUInt16(); public uint ReadUInt32(); public int ReadInt32(); public long ReadInt64(); public ulong ReadUInt64(); //Writers only public void WriteByte(byte value); public void WriteSByte(sbyte value); public void WriteUInt16(ushort value); public void WriteInt16(short value); public void WriteInt32(int value); public void WriteUInt32(uint value); public void WriteInt64(long value); public void WriteUInt64(ulong value); //Common public int Length => _innerSpan.Length; public Span Span => _innerSpan; public void Advance(int count); ``` If you want to ""peek/poke"" then you can just get out the span via `reader.Span` there is no need to provide them on the type. [EDIT] Add C# syntax highlight by @karelz [EDIT] Updated to more concrete design" +24181 area-System.Data Fix for 2nd Connection hangs in Mirroring Environment This is a fix for Issue: https://github.com/dotnet/corefx/issues/24148 Customer reported a bug for hanging connection to mirrored SQL Server. When customer creates and opens ***2 connections*** one after another to ***mirrored server*** with ***connection timeout set to 0***, the 2nd connection hangs infinitely. +24182 area-System.Net SFTP connection throws 'Device not Configured' Error "Hi, I am trying to connect to an SFTP server and I receive the following error: nerException [Exception]:{System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (0x00000005): Device not configured\n at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)\n at System.Net.Dns.ResolveCallback(Object context)\n--- End of stack trace from previous location where exception was thrown ---\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\n at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult)\n at System.Net.Dns.EndGetHostAddresses(IAsyncResult asyncResult)\n at System.Net.Sockets.Socket.DoDnsCallback(IAsyncResult result, MultipleAddressConnectAsyncResult context)\n at System.Net.Sockets.Socket.DnsCallback(IAsyncResult result)\n--- End of stack trace from previous location where exception was thrown ---\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\n at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult)\n at System.Net.Sockets.TcpClient.EndConnect(IAsyncResult asyncResult)\n at System.Net.Sockets.TcpClient.<>c.... InnerExceptions [ReadOnlyCollection]:Count = 1 Message [string]:""One or more errors occurred. (Device not configured)"" Source [string]:""System.Private.CoreLib"" StackTrace [string]:"" at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)\n at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)\n at System.Threading.Tasks.Task.Wait()\n at DayForceImportValidator.FileOperations.SFTP.d__1.MoveNext() in /Users/richblumer/Projects/DayForceImport/DayForceImportValidator/FileOperations/SFTP.cs:line 24"" I have also tried to connect to the Test SFTP provided here, [http://www.sftp.net/public-online-sftp-servers] . That was also unsuccessful. I get a similar error on Windows 10. The error message is **Host is Unknown**. Here is my local environment info: .NET Command Line Tools (2.0.0) Product Information: Version: 2.0.0 Commit SHA-1 hash: cdcd1928c9 Runtime Environment: OS Name: Mac OS X OS Version: 10.12 OS Platform: Darwin RID: osx.10.12-x64 Base Path: /usr/local/share/dotnet/sdk/2.0.0/ Microsoft .NET Core Shared Framework Host Version : 2.0.0 Build : e8b8861ac7faf042c87a5c2f9f2d04c98b69f28d Thanks in advance!" +24183 area-System.Data Adding System.Data.Odbc package and including in metapackage +24185 area-Infrastructure Codeformatter Tool We also use the .NET Codeformatter Tool to ensure the code base maintains a consistent style over time, the tool automatically fixes the code base to conform to the guidelines outlined above. Can this be true if the codeformatter tool had it's last commit on Nov 11, 2016? (Some Issues over there are preventing the use of this tool, just check the issues there.) +24188 area-System.Net IPAddress.GetHashCode based on Marvin instead of ToString This addresses #24117. I've used [`System.Numerics.Hashing.HashHelpers`](https://github.com/dotnet/corefx/blob/master/src/Common/src/System/Numerics/Hashing/HashHelpers.cs) instead of writing a custom implementation as it's deemed good enough for the various `ValueTuple`s. I've used BenchmarkDotNet to compare the current and suggest implementations without caching the results on `GetHashCode` or `ToString` as that represents the more interesting scenario: Invoking `GetHashCode` on a constant stream of new `IPAddress` instances. The differences become less relevant the more instances are being reused. The code for the comparison is [here](https://gist.github.com/i3arnon/e9f85402790fcbd1d14450540f7ec496) and the results are: ``` ini BenchmarkDotNet=v0.10.9, OS=Windows 10 Redstone 2 (10.0.15063) Processor=Intel Core i7-7600U CPU 2.80GHz (Kaby Lake), ProcessorCount=4 Frequency=2835941 Hz, Resolution=352.6166 ns, Timer=TSC .NET Core SDK=2.0.0 [Host] : .NET Core 2.0.0 (Framework 4.6.00001.0), 64bit RyuJIT DefaultJob : .NET Core 2.0.0 (Framework 4.6.00001.0), 64bit RyuJIT ``` | Method | Mean | Error | StdDev | Gen 0 | Allocated | |----------------------- |-----------:|----------:|----------:|-------:|----------:| | GetHashCodeToString | 182.927 ns | 3.5535 ns | 3.4900 ns | 0.0341 | 72 B | | GetHashCodeHashHelpers | 6.685 ns | 0.1681 ns | 0.1936 ns | - | 0 B | +24189 area-System.Security AddIssuerSerial method to KeyInfoX509Data class, does not allow option to specify decimal value instead of default hexadecimal value "The X509Certificate's SerialNumber is ""4F4B6C4CF95644EB850AB136B6ECE012"" When using `KeyInfoX509Data` builder as part of `KeyInfo` class that get assigned to 'KeyInfo' object in `SignedXml` class. The issue is there's no option to encode the SerialNumber as decimal value instead of hexadecimal value. The 3rd party company require it be in decimal value, not hexadecimal value. ```c# var keyInfo = new KeyInfo(); keyInfoData.AddIssuerSerial( x509Certificate2.Issuer, new BigInteger( x509Certificate2.GetSerialNumber() ).ToString(); // This is decimal value ); keyInfo.AddClause(keyInfoData); signedXml.KeyInfo = keyInfo; ``` As a workaround, I had to do this to make it work. ```c# var keyInfo = new KeyInfo(); var xmlDoc2 = new XmlDocument(); var x509IssuerName = xmlDoc2.CreateElement(""X509IssuerName""); x509IssuerName.InnerText = x509Certificate2.Issuer; var x509SerialNumber = xmlDoc2.CreateElement(""X509SerialNumber""); x509SerialNumber.InnerText = new BigInteger(x509Certificate2.GetSerialNumber()).ToString(); var x509IssuerSerial = xmlDoc2.CreateElement(""X509IssuerSerial""); x509IssuerSerial.AppendChild(x509IssuerName); x509IssuerSerial.AppendChild(x509SerialNumber); var x509Data = xmlDoc2.CreateElement(""X509Data""); x509Data.AppendChild(x509IssuerSerial); var keyInfoNode = new KeyInfoNode(); keyInfoNode.Value = x509Data; keyInfo.AddClause(keyInfoNode); signedXml.KeyInfo = keyInfo; ``` This source code in `KeyInfoX509Data.cs` class, line # 165 showed that `NumberStyles.AllowHexSpecifier` is hardcoded that give us non-decimal value as `out h` output value. Also line # 174 would somehow make this possible, as a workaround, but it is marked as internal. :-(" +24190 area-System.Net Need a thread safe mechanism to opt in to ManagedHandler for a single instance of HttpClientHandler The recent changes in HttpClientHandler on OSX to use the native security libraries has caused server certificate validation callbacks to not be supported. The ManagedHandler does support this, but is missing other functionality needed. WCF needs a way to instantiate a single HttpClientHandler instance to explicitly use ManagedHandler. If an instance of a WCF ChannelFactory has been configured to use certificate authentication, we need to be able to use a custom certificate validation callback so need to use ManagedHandler for that instance. If in the same process a different authentication mechanism is requested for a different instance of a WCF ChannelFactory, that instance needs to use the libcurl based HttpClientHandler implementation as it is more feature complete. While we can set the relevant environment variable before calling the HttpClientHandler constructor and then restore it to it's previous state, this isn't thread safe as we could interfere with an instantiation happening outside of WCF on another thread. +24191 area-Serialization Should not Pack Generated Serialization Assembly The serialization assembly generated by SGen should not be packed into the library's nupkg. +24192 area-System.Text System.Text.Encoding.Unicode Performance Slower than .NETFramework2.0 Not sure if this is the correct place but after profiling a library I'm working on I found that System.Text.Encoding.Unicode.GetString was 10x slower in .NETCore/>=.NETFramework4.0. However I found that this was not the case in <=.NETFramework3.5 on my machine. Maybe the performance degregadation could be attributed to something else but it was equivalent benchmarking code ran on .NET Core and >=.NETFramework4.0 and .NETFramework2.0-3.5. The .NETFramework 2.0 was faster for only the System.Text.Encoding.Unicode.GetString which seemed very peculiar. Everything else in the benchmark ran as expected. +24194 area-System.Drawing "[Drawing] Move remaining ""Unix"" files into regular directory structure" "There are only a few files remaining in the ""Unix"" partition of System.Drawing.Common. This PR just does the final relocation of those files into the regular directory structure (e.g. under ""src/System/Drawing/...""). I haven't done much of an attempt to share code between the two versions of these files yet, but I did notice that ImageFormat.cs was easy to share, and did so. It's just a bunch of GUID's, and has nothing platform-specific. I deleted the ""Unix"" version and switched over to the ""Windows"" version everywhere." +24195 area-System.Drawing Don't depend on X11 in the MetafileTests This will allow us to re-enable most tests on Unix. +24196 area-System.Threading Generalized WhenAll, WhenAny, etc. for awaitables. Currently, when I have a number of `Task` instances where I want to perform aggregate operations across all of them (waiting for all of them to complete, for any of them to complete, etc.), I like to use the static `WhenAll`, `WhenAny`, etc. methods. I also like to use `ValueTask` as well for areas where I don't need the heap allocation that a `Task` brings. That said, I can't currently use `WhenAll`, `WhenAny`, etc. because they take sequences of `Task`. While there *are* workarounds, all of them fall short in some way: * I could call `AsTask`, but then that allocates a `Task` and call the existing methods on `Tasks` but the allocations is the situation I was trying to avoid in the first place. * I could write my own, but [the coreclr implementation is quite robust](https://github.com/dotnet/coreclr/blob/eb2e9f90ba3679fa8386c4130f81c8061e8d4ca4/src/mscorlib/src/System/Threading/Tasks/Task.cs#L5501), and I'd certainly miss situations that are coded for in there. This specific example is for `ValueTask` but it really applies to any awaitable type. I also think we'd need a new signature for `WhenAny`; the current implementation returns a `Task`, and the pattern to figure out *which* task finished is to do an equality comparison on the reference returned. I don't really agree that [checking the result as `ValueTask` does](https://github.com/dotnet/corefx/blob/master/src/System.Threading.Tasks.Extensions/src/System/Threading/Tasks/ValueTask.cs#L90) is the right way (imagine waiting on signals for `true`/`false` results from multiple votes, checking equality on the result won't work here). +24198 area-System.Diagnostics Make GetProcessInfo() for a single PID cheaper on Windows "Fixes #23887 Here we go then. Nothing spectactular, really, but should get the job done. I was wondering how to go about the PID filter parameter and I ended up using the dreaded ""default value: magic number"" approach to disable the PID filter and return all information about all processes like so: `private const int AllProcessIds = -1;` `internal static ProcessInfo[] GetProcessInfos(int processId = AllProcessIds)` Other alternatives I considered were a `Predicate` based one and a `params int[]` based one - none of which seemed particularly more readable or fast. Also, coming up with an entirely new piece of code for the single position retrieval didn't seem like a great idea since the `Interop.NtDll.NtQuerySystemInformation` seems to return one big blob of information about all processes anyway so I would have had to duplicate lots of code." +24199 area-Serialization Remove the line that will copy the generated serializer to the pack. #24191 @shmao @zhenlan +24200 area-Infrastructure Reference assemblies should not be loaded for execution I am getting this build error after upgrading to .net core 2 'Could not load file or assembly 'System.Data.Common, Version=4.1.0.0, Culture=neutral, PublicKeyToken= ***' or one of its dependencies. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058)' +24201 area-System.Runtime New tests covering GC.TryStartNoGCRegion Regression tests for https://github.com/dotnet/coreclr/pull/14088 and https://github.com/dotnet/coreclr/issues/13736. These tests will fail without the coreclr PR and may fail on other runtimes. cc @sergiy-k @Maoni0 @adityamandaleeka @shimingsg +24202 area-Meta Moving Microsoft.ServiceModel.Syndication from wcf to corefx. The PR is moving Microsoft.ServiceModel.Syndication from wcf to corefx. +24203 area-System.Memory Adding {ReadOnly}Memory debugger view Related PR: https://github.com/dotnet/coreclr/pull/14130 Adding: - MemoryDebugView - ReadOnlyMemoryDebugView Updating Span DebuggerDisplay string and adding the missing DebuggerTypeProxy to ReadOnlySpan. ~Updating implementation of ToArray() so it doesn't have to go through the Span when not necessary.~ Adding workaround for a bug that prevents us from using ToArray() in the debugger type proxy. cc @KrzysztofCwalina, @stephentoub, @shiftylogic +24205 area-System.Collections Add StructuralComparer Quite a few APIs can take an `IEqualityComparer` (most notably `HashSet`, `Dictionary` and `ConcurrentDictionary` ) and having a structural comparer for those would be quite useful. In fact, the non-generic `StructuralComparisons.StructuralEqualityComparer` even already exists! So how about adding the obvious dumb typed implementation on top of it? Pretty much: ```c# public class StructuralComparer : IEqualityComparer { public static IEqualityComparer Default { get; } = new StructuralComparer(); public bool Equals(T x, T y) => StructuralComparisons.StructuralEqualityComparer.Equals(x, y); public int GetHashCode(T obj) => StructuralComparisons.StructuralEqualityComparer.GetHashCode(obj); } ``` And that's all we need :) [EDIT] Add C# syntax highlighting by @karelz +24206 area-System.Data calls to sql server query from EfCore / Ado.net timesout in 100seconds HI, when we run queries from Efcore, with underlying ado.net for sql server ! queries take more than 100seconds, are retried after 100 seconds untill command timeout ot connection timeout. but they do not wiat untill the query executes. i've a sp which runs more than 2 minutes, and they sp is executed several times , before timeout happens i configured command timeout as 600, it gets retried for 6 times. but not waiting until it gets ececuted. finally error is trows i migrated to Efcocre 2.0 if this could be resolved but it does not happen. in Efcore 2.0 the timeout is 100 can some one help me with this ? i have a data load of more than a billion records on wich i operate. +24209 area-System.Security X509Chain under heavy load causes System.IO.IOException: Too many open files Having a lot of connections to the web api. API by itself doesn't open any files. But it makes a lot of https connections to another service. From time to time we are having container restarted because of exception. Microsoft.AspNetCore.Mvc **1.1.4** Docker image: **aspnetcore-build:1.1.2** ``` Unhandled Exception: System.IO.IOException: Too many open files at System.IO.UnixFileSystem.FileSystemEnumerable`1.OpenDirectory(String fullPath) at System.IO.UnixFileSystem.FileSystemEnumerable`1.Enumerate() at System.IO.UnixFileSystem.FileSystemEnumerable`1..ctor(String userPath, String searchPattern, SearchOption searchOption, SearchTarget searchTarget, Func`3 translateResult) at System.IO.UnixFileSystem.EnumerateFileSystemInfos(String fullPath, String searchPattern, SearchOption searchOption, SearchTarget searchTarget) at System.IO.DirectoryInfo.InternalEnumerateFiles(String searchPattern, SearchOption searchOption) at System.IO.DirectoryInfo.EnumerateFiles() at Internal.Cryptography.Pal.StorePal.LoadMachineStores() at Internal.Cryptography.Pal.StorePal.FromSystemStore(String storeName, StoreLocation storeLocation, OpenFlags openFlags) at System.Security.Cryptography.X509Certificates.X509Store.Open(OpenFlags flags) at Internal.Cryptography.Pal.OpenSslX509ChainProcessor.FindCandidates(X509Certificate2 leaf, X509Certificate2Collection extraStore, HashSet`1 downloaded, HashSet`1 systemTrusted, TimeSpan& remainingDownloadTime) at Internal.Cryptography.Pal.ChainPal.BuildChain(Boolean useMachineContext, ICertificatePal cert, X509Certificate2Collection extraStore, OidCollection applicationPolicy, OidCollection certificatePolicy, X509RevocationMode revocationMode, X509RevocationFlag revocationFlag, DateTime verificationTime, TimeSpan timeout) at System.Security.Cryptography.X509Certificates.X509Chain.Build(X509Certificate2 certificate) at System.Net.Security.CertificateValidation.BuildChainAndVerifyProperties(X509Chain chain, X509Certificate2 remoteCertificate, Boolean checkCertName, String hostName) at System.Net.Http.CurlHandler.SslProvider.VerifyCertChain(IntPtr storeCtxPtr, IntPtr curlPtr) at Interop.Http.MultiPerform(SafeCurlMultiHandle multiHandle) at System.Net.Http.CurlHandler.MultiAgent.WorkerBodyLoop() ``` +24211 area-System.Net HttpClient is not able to send Client certificate unless the cert is in Windows Cert Store "HttpClient is using HttpClientHandler to attach a client certificate to the request sent to a server. The certificate isn't being attached when ClientCertificateOptions is set to `Manual` mode and the client cert is not in the Windows Certificate Store. I looked through the code in GitHub and it looks that the provided client cert is always being verified for WinRT against a ""MY"" local windows cert store. The call is made to https://github.com/dotnet/corefx/blob/472b8d8ec212c2afb107dea305b4624c4989a79f/src/Common/src/System/Net/Security/CertificateHelper.Uap.cs line 35 in from this code https://github.com/dotnet/corefx/blob/f7bc8b413406e94549f21be79e67641f11ae8266/src/System.Net.Http/src/uap/System/Net/HttpClientHandler.cs Please see the sample code below: `using System; using System.Net.Http; using System.Security.Cryptography.X509Certificates; using System.Threading.Tasks; namespace CertClient { public class Program { private static async Task Main(string[] args) { var result = await GetSecureApiResultsAsync(); Console.WriteLine(result); Console.WriteLine(""Press any key to continue...""); Console.ReadKey(); } public static async Task GetSecureApiResultsAsync() { //create an HttpClient handler using (var handler = new HttpClientHandler()) { //we need to configure the handler with client certificate. //This is where it gets interesting //set client certificate to manual mode so we can provide a client certificate we want. handler.ClientCertificateOptions = ClientCertificateOption.Manual; //NOTE: this is a gotcha of the Microsoft implementation requiring client certs to be stored in a cert store. var store = new X509Store(StoreName.My, StoreLocation.CurrentUser); store.Open(OpenFlags.ReadOnly); //for some reason the cert collection .Find(...) method can't find a cert by thumprint so we created our own. var clientCert = FindCert(store, ""5162b416b44f854e2571ffa86d4430dcdb83d723""); store.Dispose(); //add the cert to the handler handler.ClientCertificates.Add(clientCert); //create an HttpClient and pass a handler to it using (var httpClient = new HttpClient(handler)) { //make an API call return await httpClient.GetStringAsync(@""https://localhost:4430/api/values""); } } } private static X509Certificate2 FindCert(X509Store store, string thumbprint) { foreach (var cert in store.Certificates) if (cert.Thumbprint.Equals(thumbprint, StringComparison.CurrentCultureIgnoreCase)) return cert; return null; } } }`" +24213 area-System.Drawing Allow loading libgdiplus from NuGet packages "I just kicked off a first test run of our software, migrating from CoreCompat.System.Drawing to System.Drawing.Common. On Mac, all unit tests which use System.Drawing are currently red because `libgdiplus.dylib` cannot be located. Although `libgdiplus.dylib` can be acquired via Homebrew, we try to make it a ""plug & play"" experience and ship `libgdiplus.dylib` as part of our self-contained app. `libgdiplus.dylib` therefore is not preinstalled on our CI servers; we acquire it via the `runtime.osx.10.10-x64.CoreCompat.System.Drawing/1.0.1-beta004` package. The same holds true for our end user's desktops - it is currently not a requirement that they run `brew install libgdiplus` before launching our self-contained app. It appears that the `dlopen` call which is used to load `libgdiplus.dylib` does not use same search path as an `[DllImport]` statement - apparently the NuGet packages are not being searched. I'm no expert in this area but it seems the values we're looking for are stored in [m_NativeDllSearchDirectories](https://github.com/dotnet/coreclr/search?utf8=%E2%9C%93&q=m_NativeDllSearchDirectories&type=) I'd be happy to submit a PR that fixes this behavior but I'm currently not entirely sure where we would fetch the search paths that need to be passed to `dlopen`, hence the issue. On Linux, this isn't that much of an issue for us because we use, say, `dotnet-rpm` to create RPM packages on CentOS and we can express the libgdiplus dependency in the RPM package - so when installing our package, libgdiplus is automatically installed by the package manager. On Windows, this isn't an issue at all as GDI+ is always there." +24215 area-Infrastructure "Revert ""Update build to clang/llvm 3.9 (#24177)""" This reverts commit 21e008a3401a4d76ef5123df8f072e9f3c7823bb. +24216 area-System.Net Updated link to HTTP Protocol proposal and minor fixes +24217 area-System.IO UWP - System.IO.File Tests failing on outerloop The test is just hanging on two unrelated PR's https://mc.dot.net/#/user/Drawaes/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/46a30dd69c4652f1c4b4a09f645ed893136b5b9f/workItem/System.IO.FileSystem.Tests/wilogs #23715 #24116 +24219 area-Infrastructure NOMERGE: failing some tests intentionally to see call stacks cc: @MattGal Do not merge this PR as it is only to validate right call stacks on failing tests. This is an investigation related to issue #22979 +24221 area-System.Net SSLStream : Fixed spelling mistake in file name (extra a) In all the reviews, I seemed to have missed a spelling mistake and the file was in the incorrect folder level for the new classes +24224 area-System.Net IPAddress: Change to faster algo to bigendian->littleendian flip of numbers As per my comment in CoreFXLabs, its also identified there that the IPAddress methods are a lot slower (The version I have submitted is the (2) versions of the algo below) [Ref Issue from CoreFxLab](https://github.com/dotnet/corefxlab/pull/1779#issuecomment-331647487) |Test|AVERAGE | STDEV.S | MIN | MAX| |---|---|---|----|----| |MeasureReverse| 200.318 | 4.356 | 195.937 | 217.856| |MeasureReverse2|165.578 | 1.875 | 162.408 | 172.572| MeasureReverseUsingNtoH| 562.256 | 5.355 | 554.489 | 579.212| |MeasureReverseLong| 331.710 | 1.982 | 327.835 | 336.525| |MeasureReverseLong2|264.985 | 1.956 | 260.660 | 270.584| |MeasureReverseUsingNtoHLong|1241.993 | 59.340 | 1189.954 | 1361.043| +24225 area-System.Security X509Certificate2/CommonCrypto: Unable to open PKCS#12 files with no password and valid MAC "If you have a PKCS#12 file which is not protected with a password, and which does have a MAC entry, opening the file will work on Windows and Linux but fails on Mac (which use CommonCrypto). This is a regression on macOS as this worked with .NET Core 1.x (when using OpenSSL) and no longer works with .NET Core 2.0. The following unit test reproduces the behavior: ```csharp using System; using System.Security.Cryptography.X509Certificates; using Xunit; namespace temp { public class UnitTest1 { [Fact] public void Test1() { var cert = new X509Certificate(""my_pkcs12.pfx""); Assert.NotNull(cert); } } } ``` The test passes on Windows & Linux but fails on macOS with the following error message: ``` Failed certs.UnitTest1.Test1 Error Message: Interop+AppleCrypto+AppleCommonCryptoCryptographicException : MAC verification failed during PKCS12 import (wrong password?) Stack Trace: at Interop.AppleCrypto.X509ImportCertificate(Byte[] bytes, X509ContentType contentType, SafePasswordHandle importPassword, SafeKeychainHandle keychain, Boolean exportable, SafeSecIdentityHandle& identityHandle) at Internal.Cryptography.Pal.CertificatePal.FromBlob(Byte[] rawData, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags) at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName) at certs.UnitTest1.Test1() in /Users/quamotion/scratch/certs/UnitTest1.cs:line 12 ``` `my_pkcs12.pfx` can be generated using the following script, use an empty password when prompted: ``` openssl genrsa -out my_key.key 2048 openssl req -new -key my_key.key -out my_request.csr openssl x509 -req -days 3650 -in my_request.csr -signkey my_key.key -out my_cert.crt openssl pkcs12 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES -export -in my_cert.crt -inkey my_key.key -out my_pkcs12.pfx -name ""my-name"" ``` This is not the same as #11046, that one was about p12 stores where the MAC is absent; in this case there is a valid MAC." +24226 area-System.Security X509Certificate2/CommonCrypto: Exporting a certificate without a private key to a PKCS12 store with a password fails "If you have a `X509Certificate2` object which represents a certificate without a private key, exporting that certificate to a Pkcs12 store will work on Windows and Linux but fails on Mac (which use CommonCrypto). This is a regression on macOS as this worked with .NET Core 1.x (when using OpenSSL) and no longer works with .NET Core 2.0. The following unit test reproduces the behavior: ```csharp using System; using System.Security.Cryptography.X509Certificates; using Xunit; namespace temp { public class UnitTest1 { [Fact] public void Test1() { var cert = new X509Certificate2(""my_cert.crt""); var data = cert.Export(X509ContentType.Pkcs12, ""password""); Assert.NotNull(data); } } } ``` The test passes on Windows & Linux but fails on macOS with the following error message: ``` Failed certs.UnitTest1.Test1 Error Message: Interop+AppleCrypto+AppleCommonCryptoCryptographicException : One or more parameters passed to a function were not valid. Stack Trace: at Interop.AppleCrypto.X509Export(X509ContentType contentType, SafeCreateHandle cfPassphrase, IntPtr[] certHandles) at Interop.AppleCrypto.X509ExportPfx(IntPtr[] certHandles, SafePasswordHandle exportPassword) at Internal.Cryptography.Pal.StorePal.AppleCertificateExporter.ExportPkcs12(SafePasswordHandle password) at Internal.Cryptography.Pal.StorePal.AppleCertificateExporter.Export(X509ContentType contentType, SafePasswordHandle password) at System.Security.Cryptography.X509Certificates.X509Certificate.Export(X509ContentType contentType, String password) at certs.UnitTest1.Test1() in /Users/quamotion/scratch/certs/UnitTest1.cs:line 13 ``` my_cert.crt can be generated using the following script: ``` openssl genrsa -out my_key.key 2048 openssl req -new -key my_key.key -out my_request.csr openssl x509 -req -days 3650 -in my_request.csr -signkey my_key.key -out my_cert.crt ``` " +24227 area-Meta System.Management.Automation support on .NET Core Are there any plans to support running PowerShell runspaces/commands from within a .NET Core, this is the last thing preventing us from moving all our project to .NET Core. Thanks! @terrajobst +24228 area-System.IO AnonymousPipeClientStream.ReadAsync does not seem to support cancellation "Hi. After some experimentation, it seems to me that unlike `NamedPipeClientStream`, `AnonymousPipeClientStream` (or `AnonymousPipeServerStream` for that matter) does not support cancellation (because there's no way to open the pipe in async mode and so `Stream.ReadAsync` is used instead of `PipeStream.ReadAsyncCore`). This is a little painful because it means there's no way to ""unblock"" a pending read or write on that stream when the stream contains no data. Here's a simple repro that shows what I'm trying to do. It works for named pipes, but not for anonymous ones: ```csharp NamedPipeServerStream source = new NamedPipeServerStream(""pipe-test"", PipeDirection.Out, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous); NamedPipeClientStream destination = new NamedPipeClientStream(""."", ""pipe-test"", PipeDirection.In, PipeOptions.Asynchronous); await destination.ConnectAsync(); CancellationTokenSource cancellationSource = new CancellationTokenSource(); byte[] buffer = new byte[10]; Task readTask = destination.ReadAsync(buffer, 0, buffer.Length, cancellationSource.Token); // Right now, readTask is blocked waiting for data. Task timeout = Task.Delay(TimeSpan.FromSeconds(1)); Task winner = await Task.WhenAny(readTask, timeout); Assert.Equal(timeout, winner); cancellationSource.Cancel(); // readTask will now fault with TaskCanceledException timeout = Task.Delay(TimeSpan.FromSeconds(5)); winner = await Task.WhenAny(readTask, timeout); Assert.Equal(readTask, winner); // Prove that it was canceled via the correct CancellationToken TaskCanceledException cancelled = await Assert.ThrowsAsync(() => readTask); Assert.Equal(cancellationSource.Token, cancelled.CancellationToken); ``` Is this by design, or simply something nobody has gotten around to, yet? Because it looks like it should be possible to implement by constructing the base `PipeStream` with `isAsync: true` to use the [correct code-path](https://github.com/dotnet/corefx/blob/1f434a9665d666542497250a0b4e211ce20b40df/src/System.IO.Pipes/src/System/IO/Pipes/PipeStream.cs#L164-L175)." +24229 area-System.Runtime System.Data.SqlClient throwing System.PlatformNotSupportedException when loaded via reflection "System.Data.SqlClient does not work when loading the external library (.NET Standard DLL) at runtime through reflection except if the library has been published for a specific platform (rid). Trying to execute a SQL query against a SQL Server instance throws ""System.PlatformNotSupportedException: System.Data.SqlClient is not supported on this platform"" exception. Repro steps and Visual studio solution can be found here: https://github.com/softeering/NETStandardSQLClientRepro I'm pretty sure this can be explained but I don't get why it doesn't work" +24232 area-System.Net HttpClient with Certificates not supported "**system: centos 7.3 runtime: dotnet core 2.0.0** Code: ``` var x509Certificate2 = new X509Certificate2(); // Replace this class instantation with actual X509Certificate2 data var httpClientHandler = new HttpClientHandler(); httpClientHandler.ClientCertificates.Add(x509Certificate2); using (var httpClient = new HttpClient(httpClientHandler)) { // Post } ``` Error: ``` fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[0] An unhandled exception has occurred: The handler does not support client authentication certificates with this combination of libcurl (7.29.0) and its SSL backend (""NSS/3.28.4""). System.PlatformNotSupportedException: The handler does not support client authentication certificates with this combination of libcurl (7.29.0) and its SSL backend (""NSS/3.28.4""). at System.Net.Http.CurlHandler.SslProvider.SetSslOptionsForUnsupportedBackend(EasyRequest easy, ClientCertificateProvider certProvider) at System.Net.Http.CurlHandler.SslProvider.SetSslOptions(EasyRequest easy, ClientCertificateOption clientCertOption) at System.Net.Http.CurlHandler.EasyRequest.InitializeCurl() at System.Net.Http.CurlHandler.MultiAgent.ActivateNewRequest(EasyRequest easy) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() ```" +24233 area-System.ComponentModel CategoryAttributeTests.Ctor_Default failed on netfx in CI https://ci3.dot.net/job/dotnet_corefx/job/master/job/windows-TGroup_netfx+CGroup_Release+AGroup_x86+TestOuter_false_prtest/3615/consoleText ``` Discovering: System.ComponentModel.Primitives.Tests Discovered: System.ComponentModel.Primitives.Tests Starting: System.ComponentModel.Primitives.Tests System.ComponentModel.Tests.CategoryAttributeTests.Ctor_Default [FAIL] Assert.True() Failure Expected: True Actual: False Stack Trace: D:\j\workspace\windows-TGrou---2a8f9c29\src\System.ComponentModel.Primitives\tests\CategoryAttributeTests.cs(18,0): at System.ComponentModel.Tests.CategoryAttributeTests.Ctor_Default() ``` +24234 area-System.Runtime Adding UTF8 Marshalling API tests +24237 area-System.Diagnostics Removing unnecessary Console.WriteLine that is spamming the CI build Applying remaining code review comment from #24078 cc: @danmosemsft @stephentoub +24238 area-System.Drawing Fix multiplying a matrix by the same matrix +24239 area-Infrastructure [Do Not Merge] Force a crash in the System.AppContext tests. This causes a deliberate access violation in the System.AppContext tests, so we can test out some fixes being made to our crash dump debugging experience. @DrewScoggins +24240 area-System.IO No successful code coverage CI run since July https://ci.dot.net/job/dotnet_corefx/job/master/job/code_coverage_windows/ :frowning: +24242 area-System.IO RecursiveDelete_DeepNesting fails due to StackOverflowException under Code Coverage This happens on our CI machines, at least. Call stack from a recent Code Coverage run: ![image](https://user-images.githubusercontent.com/8918977/30832720-02d303a4-a201-11e7-8667-7bf06a6b653a.png) @JeremyKuhne +24244 area-System.Net Make ConnectHelper.ConnectAsync return ValueTask Minor optimization via playing a bit better perf-wise with changes being made in coreclr in https://github.com/dotnet/coreclr/pull/14178. cc: @geoffkizer +24246 area-System.Collections Add method RemoveOrUpdate to ConcurrentDictionary It would be very useful to have the ability to conditionally remove or update `ConcurrentDictionary` entry. It already has `AddOrUpdate`. Right now I can't use `ConcurrentDictionary` in ref counting scenarios, because I can't check reference count and remove it if value is 0 and forced to use common `Dictionary` with `lock`. +24248 area-System.Net Fix some missing ConfigureAwaits in ManagedHandler cc: @geoffkizer +24249 area-System.Net Managed WebSocket implementation on Windows 7? Recently we've stumbled upon particular issue of Windows 7 SP1 not supporting WebSockets natively, as they were introduced in Windows 8 / Server 2012. Check out https://github.com/SteamRE/SteamKit/issues/455 as a reference of original issue. Since there is managed implementation of websocket that is apparently **[already possible to be used on Windows](https://github.com/dotnet/corefx/blob/master/src/System.Net.WebSockets.Client/src/System.Net.WebSockets.Client.csproj#L7-L9)**, would it make sense to use it on Windows 7 as a platform that does not support WinSocket Windows stack natively? Or maybe it's already possible? Thank you in advance. +24250 area-System.IO System.IO.Directory.Delete should check for the name surrogate bit on reparse tags before deciding if it should enumerate directories with reparse points "Copied from internal bug 402782 System.IO.Directory.Delete recursive delete will not recurse through directory placeholders as it should (directory placeholders are a feature of GvFlt and the container filter). Christian Allred [callred] found that the Delete code ""will avoid trying to enumerate directories that are any kind of reparse point, rather than just name surrogates ... It should be fixed to check for the name surrogate bit on the reparse tag, same as rmdir /s does"" See: http://ddindex/?rightProject=mscorlib&file=system%5cio%5cdirectory.cs&line=1324) rmdir code // // We now enumerate and delete children iff: // directory and not reparse/namesurrogate // if (IsDirectory( find_data.dwFileAttributes ) && !(IsReparse( find_data.dwFileAttributes ) && IsReparseTagNameSurrogate( find_data.dwReserved0 ))) { ... // (Enumerate, deleting files and recursing into directories) ... } return RemoveDirectoryForce(pszDirectory); ... Rmdir /s checks the name surrogate bit using IsReparseTagNameSurrogate, which is in ntifs.h. It is defined as: #define IsReparseTagNameSurrogate(_tag) ( \ ((_tag) & 0x20000000) \ ) If you're doing a FindFirst/FindNext, the _tag value is the dwReserved0 field of the WIN32_FIND_DATA structure. That is how rmdir /s does its check: // // We now enumerate and delete children iff: // directory and not reparse/namesurrogate // if (IsDirectory( find_data.dwFileAttributes ) && !(IsReparse( find_data.dwFileAttributes ) && IsReparseTagNameSurrogate( find_data.dwReserved0 ))) { ... // (Enumerate, deleting files and recursing into directories) ... } return RemoveDirectoryForce(pszDirectory); ... Forgot to mention, the name surrogate bit is set on directory junctions, symlinks, etc. So having this check correctly identifies other types of reparse points that a recursive delete would not want to recurse in to." +24251 area-System.Console System.Console intellisense text not localized ![image](https://user-images.githubusercontent.com/8228359/30842958-e506af44-a23a-11e7-8679-de08a01ef3d2.png) +24252 area-System.Net Return condition directly instead of `if (condition) return true; els… Return condition directly instead of `if (condition) return true; else return false;` +24253 area-System.Net StatusCode in HttpRequestException "When the `EnsureSuccessStatusCode` method in the `HttpResponseMessage` throws a `HttpRequestException` exception it is not possible to determine the status code. Add a new property named `StatusCode` to the `HttpRequestException` class which gets set by the `EnsureSuccessStatusCode` method of the `HttpResponseMessage` class. ## Rationale and Usage Allows you to determine the status code which triggered the exception. ```cs try { DoSomeHttp(); } catch (HttpRequestException e) { Log($""Request failed with status code: {e.StatusCode}.""); } private void DoSomeHttp() { // ... message.EnsureSuccessStatusCode(); } ``` ## Proposed API ```cs public class HttpRequestException : Exception { // ... public HttpRequestException(string message, StatusCode statusCode); public HttpRequestException(string message, Exception inner, StatusCode statusCode); // ... public StatusCode StatusCode { get; } // ... } ``` ## Open Questions Should the property have a setter? Should the exception have a constructor that sets the property? Should the property be nullable?" +24255 area-Infrastructure Unable to run tests on FreeBSD Hi, I've compiled CoreCLR and CoreFX (both managed and native parts). Also did build-tests.cmd and copied them over to FreeBSD box. Now when trying to run the tests I get errors like: `Cannot find /home/sec/core/corefx/bin/tests/Canonicalization.Tests/netcoreapp-FreeBSD-Debug-x64/RunTests.sh` I'm missing something? I tried reading docs, but they seem little not up-to-date? +24256 area-System.Collections GetValueOrDefault available for IReadOnlyDictionary but not IDictionary The `CollectionExtensions` extension class provides the `GetValueOrDefault` extension method. However it extends classes that implement the `IReadOnlyDictionary` interface, hence its usable from `ReadOnlyDictionary` but not from a normal `Dictionary`. Why isn't this extension method also available for the `Dictionary`? Wouldn't it be nice if it were? Perhaps another extension method that extends classes that implement the `IDictionary` interface ought to be inserted into the `CollectionExtensions` class? +24257 area-System.Net [ManagedHandler] Respect DNS TTL See #11224 for details on the issue +24259 area-System.Console FreeBSD: System.Console is not working right This is because terminfo database is missing in default installation. I tried to add ncurses package from ports. That only creates /usr/local/share/misc/terminfo.db And the terminal information is kept in hashed form. We shall investigate. +24263 area-System.Drawing Re-enable InstalledFontCollection tests on Unix. These pass on my Ubuntu 16.04 box -- I'd like to see how all our other distros behave. It's possible these were disabled because our CI machines didn't have fonts installed (they should now). @qmfrederik I looked at the mono test cases for System.Drawing.Text and found that our coverage was equal or better, but these tests are disabled. This should cover that namespace from your large PR. +24264 area-Serialization Add Tests for Type Having Primitive Types as Known Types A user reported an issue with DataContractSerializer serializing types having primitive types as known types on UWP. The existing tests did not cover this scenario. We should add tests for this. +24265 area-Serialization DCS Failed to Serialize Types Having Primitive Types as Known Types on UWP A user reported an issue with DataContractSerializer serializing types having primitive types as known types on UWP. We need to make fix for this in UWP toolchain. +24268 area-System.Drawing PrintingServices.Unix.cs is not thread safe The function `LoadPrinters` is called in multiple places within this class, and modifies a static Hashtable storing the system's discovered printers. This function may also be called multiple times (even after initialization) if the system does not have any installed printers. It is possible for multiple calls to this function to occur at the same time, which will result in unpredictable problems, because access to the hashtable is not synchronized in any way. This is unlikely to be a problem in real app code, because it can generally only occur during initialization, and because you need specific circumstances to trigger any issues. I have seen a local test run fail because of this. +24269 area-System.Drawing Enable ImageAttributes tests which pass on Unix System.Drawing. I have found that only the `Clone_Success` test causes a crash on libgdiplus. The rest are able to run, but a large number still have other issues. Namely, many of these receive a NotImplemented status from libgdiplus. +24271 area-System.Runtime Cyclic (but not cyclic) generic structure results in ReflectionTypeLoadException In the full .NET platform, the following is a non-issue, however in .NET Core/Standard, it results in a ReflectionTypeLoadException (with a fairly useless exception message) Given the following structures: ```c# public struct GenericStruct where T : struct { public IntPtr Ptr; } public struct StructA { public GenericStruct B; } public struct StructB { public GenericStruct A; } ``` Notice that StructA has a reference to StructB, and vice versa, however neither structure actually implements a field containing either. (They boil down to `IntPtr Ptr`) In the full framework, these types of things are allowed, and (at least personally) used heavily in certain interop scenarios to help with native code interfaces that use a lot of templates. Loading the assembly via `AssemblyLoadContext.Default.LoadFromAssemblyPath` and calling `GetTypes` on it results in the following ReflectionTypeLoadException: > Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information. Could not load type 'GenericStructureTest.StructB' from assembly 'GenericStructureTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Could not load type 'GenericStructureTest.StructA' from assembly 'GenericStructureTest, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. [EDIT] Add C# syntax highlighting by @karelz +24273 area-System.Diagnostics EventCounters not reporting data in 2.0 "I have a sample app that uses EventCounters: https://github.com/anurse/EventCounterTest In the app, I write to an event counter every 100ms, and I configure a listener to aggregate event counters every 1s: ```csharp using System; using System.Collections.Generic; using System.Diagnostics.Tracing; namespace EventCounterTest { class Program { static void Main(string[] args) => AsyncMain(args).Wait(); static async Task AsyncMain(string[] args) { var cts = new CancellationTokenSource(); Console.CancelKeyPress += (sender, a) => { cts.Cancel(); a.Cancel = true; }; var listener = new HostingEventSourceListener(); Console.WriteLine(""Press Ctrl-C to stop""); for (var i = 0; !cts.Token.IsCancellationRequested; i++) { var url = $""https://localhost/?iter={i}""; MinimalEventCounterSource.Log.Request(url, i); try { await Task.Delay(100, cts.Token); } catch (OperationCanceledException) { return; } } } } [EventSource(Name = ""Samples-EventCounterDemos-Minimal"")] public sealed class MinimalEventCounterSource : EventSource { public static MinimalEventCounterSource Log = new MinimalEventCounterSource(); private EventCounter _requestCounter; private MinimalEventCounterSource() { _requestCounter = new EventCounter(""request"", this); } /// /// Call this method to indicate that a request for a URL was made which tool a particular amount of time /// public void Request(string url, float elapsedMSec) { WriteEvent(1, url, elapsedMSec); // This logs it to the event stream if events are on. _requestCounter.WriteMetric(elapsedMSec); // This adds it to the EventCounter called 'Request' if PerfCounters are on } } public class HostingEventSourceListener : EventListener { protected override void OnEventSourceCreated(EventSource eventSource) { if (eventSource.Name.Equals(""Samples-EventCounterDemos-Minimal"")) { EnableEvents(eventSource, EventLevel.LogAlways, EventKeywords.All, new Dictionary() { { ""EventCounterIntervalSec"", ""1"" } }); } } protected override void OnEventWritten(EventWrittenEventArgs eventData) { Console.WriteLine($""{eventData.EventName}""); foreach (var payload in eventData.Payload) { if (payload is IDictionary payloadDictionary) { foreach (var data in payloadDictionary) { Console.WriteLine($"" {data.Key} - {data.Value}""); } } } } } } ``` When I run the app in `netcoreapp1.1`, I get the following output:"" ``` Press Ctrl-C to stop Request Request Request Request Request Request Request Request Request Request EventCounters Name - request Mean - 4.5 StandardDerivation - 2.872281 Count - 10 Min - 0 Max - 9 IntervalSec - 1.015035 Request ... ``` So the EventCounter is firing at the requested interval. However, if I switch the target framework to `netcoreapp2.0` and re-run the app, I get this output: ``` Press Ctrl-C to stop Request Request Request Request Request Request Request Request Request Request Request ... ``` The EventCounters event is never fired. The same behavior is seen with out-of-process monitoring in PerfView. The only difference between the projects is the target framework. I investigated a little further and noticed that [in 2.0.0](https://github.com/dotnet/corefx/blob/release/2.0.0/src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/EventCounter.cs#L246) the code that attaches the EventCounter to the EventSource is `#ifdef`ed: https://github.com/dotnet/corefx/blob/653cb2fc7844dddeff43b03638bc0140bc4fc61c/src/System.Diagnostics.Tracing/src/System/Diagnostics/Tracing/EventCounter.cs#L248 However, when I view the assembly in my 2.0.0 shared runtime folder in ILspy, I see that the method is empty (Looking at ""C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.0\System.Diagnostics.Tracing.dll"", and I verified against the DLL in the ZIP on https://dot.net as well): ![image](https://user-images.githubusercontent.com/7574/30891472-71614b18-a2e8-11e7-944e-ad74cd5bce02.png) Looking at 1.1.x, I see the code is present (Looking at ""C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.4\System.Diagnostics.Tracing.dll""): ![image](https://user-images.githubusercontent.com/7574/30891490-8c0bf346-a2e8-11e7-8c09-6bfb7250ceee.png) It looks like maybe this code was `#ifdef`ed out of the 2.0 build :( /cc @DamianEdwards @davidfowl @JunTaoLuo @vancem " +24274 area-System.Drawing "Test: System.Drawing.Imaging.Tests.EncoderParameterTests/Ctor_Encoder_NegativeNumberOfValues_Type_Value_OutOfMemoryException failed with ""Xunit.Sdk.ThrowsException""" Opened on behalf of @Jiayili1 The test `System.Drawing.Imaging.Tests.EncoderParameterTests/Ctor_Encoder_NegativeNumberOfValues_Type_Value_OutOfMemoryException(numberOfValues: -1)` has failed. Assert.Throws() Failure Expected: typeof(System.OutOfMemoryException) Actual: (No exception was thrown) Stack Trace: at System.Drawing.Imaging.Tests.EncoderParameterTests.Ctor_Encoder_NegativeNumberOfValues_Type_Value_OutOfMemoryException(Int32 numberOfValues) in /root/corefx-1017977/src/System.Drawing.Common/tests/Imaging/EncoderParameterTests.cs:line 324 Build : Master - 20170927.01 (Core Tests) Failing configurations: - Ubuntu.1710.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170927.01/workItem/System.Drawing.Common.Tests/analysis/xunit/System.Drawing.Imaging.Tests.EncoderParameterTests~2FCtor_Encoder_NegativeNumberOfValues_Type_Value_OutOfMemoryException(numberOfValues:%20-1) +24275 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientHandlerTest / GetAsync_ServerNeedsNonStandardAuthAndSetCredential_StatusCodeUnauthorized "## History of failures Day | Build | OS | Error message -- | -- | -- | -- 6/15 | 20170615.03 | Win8.1 | The handle is invalid 9/27 | 20170927.01 | Win7 | A certificate is required to complete client authentication 10/4 | 20171004.02 | Win8.1 | The operation has been canceled 10/16 | 20171016.01 | Win8.1 | The operation has been canceled 10/21 | 20171021.02 | Win8.1 | The operation has been canceled 11/23 | 20171123.02 | Win7 | The handle is invalid 12/31 | 20171231.01 | Win7 | The handle is invalid - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171231.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FGetAsync_ServerNeedsNonStandardAuthAndSetCredential_StatusCodeUnauthorized(authHeaders:%20%5C%22WWW-Authenticate:%20CustomAuth%5C%5Cr%5C%5Cn%5C%22)) # Original report Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.HttpClientHandlerTest/GetAsync_ServerNeedsNonStandardAuthAndSetCredential_StatusCodeUnauthorized(authHeaders: \""WWW-Authenticate: CustomAuth\\r\\n\"")` has failed. System.Net.Http.HttpRequestException : An error occurred while sending the request.\r ---- System.Net.Http.WinHttpException : A certificate is required to complete client authentication Stack Trace: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.<>c__DisplayClass44_0.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.Tasks.ContinuationTaskFromTask.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__279_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandlerTest.d__44.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Threading.Tasks.RendezvousAwaitable`1.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() Build : Master - 20170927.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x86 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170927.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandlerTest~2FGetAsync_ServerNeedsNonStandardAuthAndSetCredential_StatusCodeUnauthorized(authHeaders:%20%5C%22WWW-Authenticate:%20CustomAuth%5C%5Cr%5C%5Cn%5C%22)" +24276 area-System.Net Test failure: System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test / SetDelegate_ConnectionSucceeds ## Types of failures ### WinHttpException Failure in build 20171215.06: ``` System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Net.Http.WinHttpException : The handle is in the wrong state for the requested operation at System.Net.Http.HttpClient.d__58.MoveNext() in E:\A\_work\772\s\corefx\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 464 --- End of stack trace from previous location where exception was thrown --- at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.<>c__DisplayClass3_1.<b__0>d.MoveNext() in E:\A\_work\772\s\corefx\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.AcceptAllCerts.cs:line 54 --- End of stack trace from previous location where exception was thrown --- at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in E:\A\_work\772\s\corefx\src\Common\tests\System\Net\Http\LoopbackServer.cs:line 67 at System.Threading.Tasks.ContinuationTaskFromTask.InnerInvoke() in E:\A\_work\1517\s\src\mscorlib\src\System\Threading\Tasks\TaskContinuation.cs:line 59 at System.Threading.Tasks.Task.<>c.<.cctor>b__278_1(Object obj) in E:\A\_work\1517\s\src\mscorlib\src\System\Threading\Tasks\Task.cs:line 2480 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) in E:\A\_work\1517\s\src\mscorlib\shared\System\Threading\ExecutionContext.cs:line 151 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) in E:\A\_work\1517\s\src\mscorlib\src\System\Threading\Tasks\Task.cs:line 2440 --- End of stack trace from previous location where exception was thrown --- at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.d__3.MoveNext() in E:\A\_work\772\s\corefx\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.AcceptAllCerts.cs:line 52 --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- ----- Inner Stack Trace ----- at System.Net.Http.WinHttpException.ThrowExceptionUsingLastError() in E:\A\_work\772\s\corefx\src\Common\src\System\Net\Http\WinHttpException.cs:line 44 at System.Net.Http.WinHttpHandler.SetRequestHandleClientCertificateOptions(SafeWinHttpHandle requestHandle, Uri requestUri) in E:\A\_work\772\s\corefx\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 1145 at System.Net.Http.WinHttpHandler.SetRequestHandleOptions(WinHttpRequestState state) in E:\A\_work\772\s\corefx\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 956 at System.Net.Http.WinHttpHandler.d__105.MoveNext() in E:\A\_work\772\s\corefx\src\System.Net.Http.WinHttpHandler\src\System\Net\Http\WinHttpHandler.cs:line 831 ``` ### Win32Exception: The Local Security Authority cannot be contacted Failure in build 20171020.01: ``` System.Security.Authentication.AuthenticationException : A call to SSPI failed, see inner exception. ---- System.ComponentModel.Win32Exception : The Local Security Authority cannot be contacted at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, ExceptionDispatchInfo exception) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.BeginAuthenticateAsServer(SslServerAuthenticationOptions sslServerAuthenticationOptions, CancellationToken cancellationToken, AsyncCallback asyncCallback, Object asyncState) at System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) at System.Net.Security.SslStream.<>c.b__47_1(X509Certificate arg1, Boolean arg2, SslProtocols arg3, AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2,TArg3](Func`6 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state, TaskCreationOptions creationOptions) at System.Net.Security.SslStream.AuthenticateAsServerAsync(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) at System.Net.Test.Common.LoopbackServer.d__11.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.<>c__DisplayClass3_1.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- ``` ### IOException: Authentication failed because the remote party has closed the transport stream ``` System.IO.IOException : Authentication failed because the remote party has closed the transport stream. E:\A\_work\1477\s\corefx\src\System.Net.Security\src\System\Net\Security\SslState.cs(873,0): at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) E:\A\_work\1477\s\corefx\src\System.Net.Security\src\System\Net\Security\SslState.cs(1096,0): at System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- End of stack trace from previous location where exception was thrown --- E:\A\_work\1477\s\corefx\src\System.Net.Security\src\System\Net\Security\SslState.cs(735,0): at System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) E:\A\_work\1477\s\corefx\src\System.Net.Security\src\System\Net\Security\SslState.cs(708,0): at System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) E:\A\_work\1477\s\corefx\src\System.Net.Security\src\System\Net\Security\SslStream.cs(248,0): at System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) E:\A\_work\1477\s\corefx\src\System.Net.Security\src\System\Net\Security\SslStream.cs(407,0): at System.Net.Security.SslStream.<>c.b__47_2(IAsyncResult iar) E:\A\_work\2009\s\src\mscorlib\src\System\Threading\Tasks\FutureFactory.cs(533,0): at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) --- End of stack trace from previous location where exception was thrown --- E:\A\_work\1477\s\corefx\src\Common\tests\System\Net\Http\LoopbackServer.cs(164,0): at System.Net.Test.Common.LoopbackServer.d__11.MoveNext() --- End of stack trace from previous location where exception was thrown --- E:\A\_work\1477\s\corefx\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.AcceptAllCerts.cs(54,0): at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.<>c__DisplayClass3_1.<b__0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- E:\A\_work\1477\s\corefx\src\Common\tests\System\Net\Http\LoopbackServer.cs(67,0): at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) E:\A\_work\2009\s\src\mscorlib\src\System\Threading\Tasks\TaskContinuation.cs(59,0): at System.Threading.Tasks.ContinuationTaskFromTask.InnerInvoke() E:\A\_work\2009\s\src\mscorlib\src\System\Threading\Tasks\Task.cs(2480,0): at System.Threading.Tasks.Task.<>c.<.cctor>b__278_1(Object obj) E:\A\_work\2009\s\src\mscorlib\shared\System\Threading\ExecutionContext.cs(151,0): at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) E:\A\_work\2009\s\src\mscorlib\src\System\Threading\Tasks\Task.cs(2440,0): at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- E:\A\_work\1477\s\corefx\src\System.Net.Http\tests\FunctionalTests\HttpClientHandlerTest.AcceptAllCerts.cs(52,0): at System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- --- End of stack trace from previous location where exception was thrown --- ``` ## History of failures Day | Build | OS | Error message -- | -- | -- | -- 9/27 | 20170927.01 | Win7 | Win32Exception: The Local Security Authority cannot be contacted 9/27 | 20170927.01 | Win7 | WinHttpException: The handle is in the wrong state for the requested operation 10/5 | 20171005.01 | Win7 | Win32Exception: The Local Security Authority cannot be contacted 10/20 | 20171020.01 | Win7 | Win32Exception: The Local Security Authority cannot be contacted 10/20 | 20171020.01 | Win7 | WinHttpException: The handle is invalid 10/23 | 20171020.52 | Win7 | WinHttpException: The operation has been canceled 10/31 | 20171030.05 | Win7 | WinHttpException: The handle is invalid 11/28 | 20171128.01 | Win7 | WinHttpException: The handle is invalid 12/13 | 20171213.09 | Win7 | WinHttpException: The operation has been canceled 12/15 | 20171215.06 | Win7 | WinHttpException: The handle is in the wrong state for the requested operation 12/30 | 20171230.01 | Win7 | IOException: Authentication failed because the remote party has closed the transport stream - only in [catastrophic failure logs](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171230.01/workItem/System.Net.Http.Functional.Tests/wilogs) 1/5 | 20180105.01 | Win7 | WinHttpException: The handle is invalid - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180105.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20Tls,%20Tls11,%20Tls12,%20requestOnlyThisProtocol:%20True)) 1/16 | 20180116.01 | Win7 | WinHttpException: The handle is invalid - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180116.03/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20None,%20requestOnlyThisProtocol:%20True)) 1/18 | 20180118.01 | Win7 | Win32Exception: The Local Security Authority cannot be contacted - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180118.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20Tls,%20Tls11,%20Tls12,%20requestOnlyThisProtocol:%20False)) 1/29 | 20180129.01 | Win8.1 | WinHttpException: The operation has been canceled - only in [catastrophic failure logs](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180129.01/workItem/System.Net.Http.Functional.Tests/wilogs) 1/31 | 20180131.05 | Win8.1 | WinHttpException: The operation has been canceled - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180131.05/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20None,%20requestOnlyThisProtocol:%20False)) 1/31 | 20180131.05 | Win7 | WinHttpException: The handle is invalid - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180131.05/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20Tls,%20Tls11,%20Tls12,%20requestOnlyThisProtocol:%20True)) 2/1 | 20180201.01 | Win7 | WinHttpException: The handle is in the wrong state for the requested operation - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180201.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20None,%20requestOnlyThisProtocol:%20False)) 2/5 | 20180205.01 | Win7 | WinHttpException: The handle is invalid - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180205.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20None,%20requestOnlyThisProtocol:%20False)) 2/6 | 20180206.04 | Win7 | WinHttpException: The handle is invalid - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180206.04/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20None,%20requestOnlyThisProtocol:%20False)) 2/25 | 20180225.02 | Win8.1 | WinHttpException: The operation has been canceled - [link](https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20180225.02/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.HttpClientHandler_DangerousAcceptAllCertificatesValidator_Test~2FSetDelegate_ConnectionSucceeds(acceptedProtocol:%20Tls,%20Tls11,%20Tls12,%20requestOnlyThisProtocol:%20True)) 2/28 | 20180228.08 | Win7 | WinHttpException: The operation has been canceled 3/2 | 20180302.06 | Win7 | WinHttpException: The operation has been canceled 3/15 | 20180315.02 | Win7 | WinHttpException: The operation has been canceled 3/19 | 20180319.01 | Win7 | WinHttpException: The operation has been canceled WinHttpExceptions are similar to #25896 / #25902 / #25912 and others +24277 area-System.Net System.Net.Http.Functional.Tests.CancellationTest.ReadAsStreamAsync_ReadAsync_Cancel_BodyNeverStarted_TaskCanceledQuickly failed in CI Failed test: System.Net.Http.Functional.Tests.CancellationTest.ReadAsStreamAsync_ReadAsync_Cancel_BodyNeverStarted_TaskCanceledQuickly Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win7_release/268/testReport/System.Net.Http.Functional.Tests/CancellationTest/ReadAsStreamAsync_ReadAsync_Cancel_BodyNeverStarted_TaskCanceledQuickly/ Configuration: OuterLoop_netcoreapp_win7_release MESSAGE: ~~~ Elapsed time 00:00:59.8682196 should be less than 30 seconds, was 59.8682196\r\nExpected: True\r\nActual: False ~~~ STACK TRACE: ~~~ at System.Net.Http.Functional.Tests.CancellationTest.<>c__DisplayClass4_1.<b__0>d.MoveNext() in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Http\tests\FunctionalTests\CancellationTest.cs:line 157 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Test.Common.LoopbackServer.<>c__DisplayClass3_0.b__0(Task t) in D:\j\workspace\outerloop_net---15cfbbd5\src\Common\tests\System\Net\Http\LoopbackServer.cs:line 67 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.Functional.Tests.CancellationTest.d__4.MoveNext() in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Http\tests\FunctionalTests\CancellationTest.cs:line 114 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +24280 area-Meta Object Can't Cast to Itself Message=[A]Donn.EAM.Archives.Entity.Asset cannot be cast to [B]Donn.EAM.Archives.Entity.Asset. Type A originates from 'Donn.EAM.Archives.Entity, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null' in the context 'Default' at location 'D:\MainServer\bin\Debug\netcoreapp2.0\Donn.EAM.Archives.Entity.dll'. Type B originates from 'Donn.EAM.Archives.Entity, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null' in the context 'Default' at location 'D:\MainServer\bin\Debug\netcoreapp2.0\Donn.EAM.Archives.Entity.dll'. All assemblies and types are loaded by assembly. Load when the program is started An error occurs when an object created by reflection is converted to a target object through the AS. What is the difference between loading assemblies between NET Framework and net Core app, +24281 area-System.Security X509Stores, HttpClient: Support custom CA bundle via environment variables Something similar to curl's CURL_CA_BUNDLE. from man curl: > --cacert (TLS) Tells curl to use the specified certificate file to verify the peer. The file may contain multiple CA certificates. The certificate(s) must be in PEM format. Normally curl is built to use a default file for this, so this option is typically used to alter that default file. curl recognizes the environment variable named 'CURL_CA_BUNDLE' if it is set, and uses the given path as a path to a CA cert bundle. This option overrides that variable. This provides a global way to provide custom CA for all dotnet application. It avoids applications breaking and having to implement their own. This is in particular useful in corporate environments where the https proxy is signed by a custom CA. @stephentoub @davidsh @geoffkizer @wfurt @karelz +24282 area-System.Data Enlisting in Ambient transactions is not supported " using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew)) { SqlCommand cmd = new SqlCommand(""ProcedureName"", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue(""Name"", ""upendra""); cmd.Parameters.AddWithValue(""EmailId"", ""a@a.com""); cmd.Parameters.AddWithValue(""MobileNumber"", ""384747848""); con.Open(); cmd.ExecuteNonQuery(); scope.Complete(); } **Error: Enlisting in Ambient transactions is not supported**" +24285 area-Infrastructure Enable CI for RHEL.6 +24288 area-System.Net Use ManagedHandler in managed ClientWebSocket ClientWebSocket's managed implementation currently has its own basic Socket-based code for establishing a websocket connection. This change switches it to use ManagedHandler instead, and in doing so benefits from improvements made to ManagedHandler thus far and in the future. For example, currently the managed ClientWebSocket doesn't support ClientWebSocketOptions.Proxy or ClientWebSocketOptions.Credentials, but since ManagedHandler does, now the managed ClientWebSocket does, too. As part of this, there are several additional commits: - Making some tweaks to how ManagedWebSocket works: not using the ArrayPool for receive buffers (doing so ends up not being particularly useful in real scenarios and ends up draining the corresponding pool bucket for other users of it), and reducing spurious completions to try to return complete received messages when possible. - Reducing some unnecessary allocations from ClientWebSocketOptions. - Fixing several tests that were either unreliable or super long running. cc: @geoffkizer, @Priya91, @wfurt, @anurse Fixes https://github.com/dotnet/corefx/issues/23152 +24291 area-Serialization Cache regexes for assembly name check in DataContract "Not sure how often `IsAssemblyFriendOfSerialization(Assembly)` is being hit but it looks like at least multiple times. This PR reduces heap allocation and therefore GC pressure by ""caching"" two regex objects statically instead of always creating new ones for every method invocation. @shmao I'm not familiar with the codebase. If you think the method is easily hit over 1000 times we could also add the Compiled flag to it. cc @danmosemsft " +24292 area-System.Diagnostics FreeBSD: implement System.Diagnostic.Process This is missing on FreeBSD (so as System.Diagnostic.ProcessManager) This is essential for many of the tools to work - as minimum they are trying to get path of the process running. This is part of https://github.com/dotnet/corefx/issues/1626 +24294 area-Infrastructure Add targets to download CoreCLR symbols Depends on: https://github.com/dotnet/buildtools/pull/1700 cc: @danmosemsft @mellinoe @weshaggard +24295 area-System.Net SSLStream : Add Async write overloads Added Async overloads on the write side. This includes a ReadOnlyMemory overload. This required a pushing of readonly memory right through the layers. This is in the effort to simplify and remove old code from SslStream and modernise the internals. It vastly simplifies the chained method calls, (byte[] buffer, int offset, int count becomes ReadOnlyMemory buffer). It also removes a lot of duplicated bounds checks because it's taken care of in the memory struct. If the changes look close to good I will be happy to start the benchmarking process. Cheers Tim +24296 area-System.Memory Memory and ReadOnlyMemory validation errors not matching "**Updated as per the suggestion of a create method** **Updated with design from @stephentoub which allows all cases to be covered** **Updated with design change from @benaadams to allow type inference for T** **Put in namespace and removed the Create to leave only the Dangerous Create** **Added question around moving current Dangerous Create Method** # Rationale A major use case of [ReadOnly]Span/Memory is to replace handing around array buffers and their offsets and count. One of the major benifits of the design as I see it as it moves bounds checks out to where the buffer is created which is excellent. However when upgrading legacy code there seems to be a blocker in that stream defines the triplet to be ` public int SomeMethod(byte[] buffer, int offset, int count); ` This is normally then teamed up with checks on 1. ""is buffer null"" == null argument exception 2. ""is offset negative or past the end of the buffer?"" == argument out of range exception with offset as field referenced 3. ""is count > than buffer.length, or < 0 or count +offset > buffer.length"" == argument out of range exception The issue with the way it currently is, that for anything that takes that triplet you have to manually do validation on the inputs before creating a Memory or risk having exceptions with names that don't match. This causes double validation to take place, once in the legacy code and once in the Memory creation. As Memory is often used on the ""hot paths"" of code it is a penalty for using memory. # Proposal Add ""unsafe"" methods to create memory and readonly memory that avoid the extra checks. Then the checks can be maintained in the code with the same error messages and the double check penalty doesn't have to be paid. ``` c# namespace System.Runtime.InteropServices { public static class Span { public static Span DangerousCreate(T[] array, int start, int length); ... } // ... same for ReadOnlySpan public static class Memory { public static Memory DangerousCreate(T[] array, int start, int length); } // ... same for ReadOnlyMemory } ```` # Usage ``` csharp byte[] buffer; var span = Span.DangerousCreate(buffer, offset, count); // vs var span = Span.DangerousCreate(buffer, offset, count); ``` # Outstanding Questions Should the existing method ``` c# [MethodImpl(MethodImplOptions.AggressiveInlining)] [EditorBrowsable(EditorBrowsableState.Never)] public static Span DangerousCreate(object obj, ref T objectData, int length) ``` Be moved to the new types and should the IDE hiding be removed? # References #24295 The Code this came up in (It means an extra validation path without it) Below no longer matters as the legacy code can maintain it's own named validation. ~~~Survey of the Async methods on classes you can see there are a couple of classes that don't conform but mostly it does.~~ |Class|ArrayName|Start|Length| |---|---|---|---| |FileStream|buffer|offset|count| |NetworkStream|buffer|offset|count| |BufferedStream|buffer|offset|count| |MemoryStream|buffer|offset|count| |StreamReader|buffer|index|count| |StreamWriter|buffer|index|count| |Stream|buffer|offset|count| |SslStream|buffer|offset|count| " +24298 area-System.Globalization "Tests under ""System.Globalization.Tests"" failed with ""Xunit.Sdk.TrueException""" System.Globalization.Tests.RegionInfoPropertyTests.DisplayName failed Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release/3216/testReport/System.Globalization.Tests/RegionInfoPropertyTests/DisplayName_name____en_US____expected____United_States___/ Configuration: osx10.12_release MESSAGE: ~~~ Exit code was 131 but it should have been 42\nExpected: True\nActual: False ~~~ STACK TRACE: ~~~ at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release/src/CoreFx.Private.TestUtilities/src/System/Diagnostics/RemoteExecutorTestBase.cs:line 189 ~~~ +24303 area-Infrastructure Nobody but the developer should ever modify a GIT-tracked file. "I regularly keep GIT-tracked files as read-only, both so I can browse them in editors with peace and so I can catch things that try to do what this thing is doing: https://github.com/dotnet/corefx/blob/a989d4f91cf4208b7a2481d120498a581328eb1d/pkg/Microsoft.NETCore.Platforms/runtimeGroups.props#L144 ``` ``` In a word, **no**. **Only** the developer should ever alter a GIT-tracked file. If GIT reports a change to a file I didn't make, I will ""git reset --hard."" This is precisely one of the benefits of source control - to alert me to unauthorized changes. " +24304 area-System.IO Port fixes for RHEL69 tests to 2.0 https://mc.dot.net/#/product/netcore/200/source/official~2Fcorefx~2Frelease~2F2.0.0~2F/type/test~2Ffunctional~2Fcli~2F/build/20170927.01 @tarekgh since you made these fixes would you mind porting so this goes green? Look like trivial disablings, although a few lines need pasting into PlatformDetection, as it's moved around since 2.0 branched. +24308 area-Serialization Area-Serialization Sprint 125 +24309 area-Serialization Microsoft.XmlSerializer.Generator RTM +24312 area-System.Net IPPacketInformation.Interface Hi! Could you please specify the meaning of the value of IPPacketInformation.Interface? I thought it was an index into the array returned by NetworkInterface.GetAllNetworkInterfaces(), but it is not the case. It isn't a random number, but it's definitely not the proper index either. Thanks, Tamás +24317 area-System.Memory Memory.Retain returns invalid PinnedPointer if backed by OwnedMemory `memory.Slice(10).Retain(true).PinnedPointer` would return pointer to first element of original memory instead of being offset by `10`. /cc @ahsonkhan @KrzysztofCwalina +24318 area-System.IO UWP: 2 System.IO.Pipes failing after enabling other tests on same project ``` System.IO.Pipes.Tests.NamedPipeTest_Specific.Windows_GetImpersonationUserName_Succeed [FAIL] GetNamedPipeHandleState failed Expected: True Actual: False Stack Trace: at System.IO.Pipes.Tests.NamedPipeTest_Specific.d__8.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21 at Void System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0x7e at Void System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x53 at Void Xunit.Sdk.TestInvoker`1+<>c__DisplayClass46_1+<b__1>d.MoveNext() + 0x2ea --- End of stack trace from previous location where exception was thrown --- at Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21 at Void System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0x7e at Void System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x53 --- End of stack trace from previous location where exception was thrown --- at Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21 at Void System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0x7e at Void System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x53 System.IO.Pipes.Tests.NamedPipeTest_RunAsClient.RunAsClient_Windows [FAIL] Expected delegate to have been invoked Expected: True Actual: False Stack Trace: at System.IO.Pipes.Tests.NamedPipeTest_RunAsClient.d__2.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21 at Void System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0x7e at Void System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x53 at Void Xunit.Sdk.TestInvoker`1+<>c__DisplayClass46_1+<b__1>d.MoveNext() + 0x2ea --- End of stack trace from previous location where exception was thrown --- at Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21 at Void System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0x7e at Void System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x53 --- End of stack trace from previous location where exception was thrown --- at Void System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() + 0x21 at Void System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task) + 0x7e at Void System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task) + 0x53 xUnit.net console test runner (64-bit .NET Core) Copyright (C) 2014 Outercurve Foundation. ``` +24320 area-Infrastructure Announcement: Moving minimum VS support to 2017 and msbuild 15 For the core repo's (standard, corefx, coreclr, core-setup) we are planning to stop supporting VS2015 and msbuild 14 and raising the minimum version to VS2017 and msbuild 15. The reason for this is that there are a number of new features in VS 2017 in the compiler and msbuild that we want to start taking advantage of. Before we make that move we wanted to let folks know and give everyone a chance to speak up if there are any issues with moving. @dotnet/dnceng note that this will require updating our CI and official build machines. Please let me know what needs to happen for that to proceed. @karelz what set of alias' would be best to ping on this issue to raise awareness? +24321 area-Serialization Move XmlSerializer CodeGen from SGen to S.P.Xml. The PR is moving the CodeGen code of XmlSerializer from SGen back to System.Private.Xml. +24322 area-Serialization Add more parameters support in SGEN. Add following four parameters. nologo - Prevents displaying of logo. silent - Prevents displaying of success messages. verbose - List types from the target assembly that cannot be serialized. This is related to #22938 parsableerrors - Print errors in a format similar to those reported by compilers. Fix #22931 Fix #22938 @shmao @zhenlan @mconnew +24323 area-System.Memory Adding MemoryHandle AddOffset to fix Memory.Retain impl Fixes https://github.com/dotnet/corefx/issues/24317 - AddOffset throws if PinnedPointer is null. Should it fail silently and do nothing? - Would it be better to create a setter for PinnedPointer instead of the AddOffset API? Related PR: https://github.com/dotnet/coreclr/pull/14248 cc @pakrym, @KrzysztofCwalina, @stephentoub, @davidfowl, @jkotas +24327 area-System.Linq TakeLast on empty list throws InvalidOperationException (Empty Queue) "**Repro steps** ```csharp var x = new List(); var y = x.TakeLast(100); Console.WriteLine(""Any()="" + y.Any()); ```` **Expected Result** The same as the `Take()`, i.e, the Any() returns false **Actual Result** An exception is thrown ``` Unhandled Exception: System.InvalidOperationException: Queue empty. at System.Collections.Generic.Queue`1.ThrowForEmptyQueue() at System.Collections.Generic.Queue`1.Dequeue() at System.Linq.Enumerable.d__208`1.MoveNext() at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source) ``` " +24328 area-System.Linq Fix handling of empty inputs to TakeLast It currently ends up trying to remove an element from an empty queue, causing an exception. Fixes https://github.com/dotnet/corefx/issues/24327 cc: @JonHanna, @jamesqo, @VSadov, @OmarTawfik, @bfcamara +24331 area-Infrastructure Fix RHEL.6 CI build I have missed msbuild options separator in the build.sh invocation when adding the /p:PortableBuild=false option. I have also missing the -runtimeos option at all scripts invocations. +24332 area-System.Drawing Unable to use .NET Framework library that uses System.Drawing Hello! Apologies if the answer is obvious, but I'm attempting to use a .NET Framework library (ZedGraph) that uses System.Drawing in my .NET Core 2 application and am having difficulties doing so. I added a reference to the new System.Drawing.Common package, but while it lets me use System.Drawing classes (like Graphics) it doesn't seem to transfer to the .NET Framework library I'm using. If I attempt to call a method in the library that takes in or returns a System.Drawing object such as Graphics, I get a compile error like the following: ``` CS7069: Reference to type 'Graphics' claims it is defined in 'System.Drawing', but it could not be found ``` Any clue what's going on? I tried recompiling the library to .NET Framework 4.5.1 (it was previous compiled for 3.5), to no avail. Thanks! Steps to reproduce: 1. Create a ,NET Core 2 class library 2. Add references to System.Drawing.Common and ZedGraph 3. Call a ZedGraph method whose signature involves a System.Drawing class, such as this: `new ZedGraph.GraphPane().Draw(out System.Drawing.Graphics g);` +24333 area-System.Text Regex performance compare with other programming languages There is a [mariomka/regex-benchmark](https://github.com/mariomka/regex-benchmark) repo that run regex benchmark for different programming languages. I'm just wondered why **C#** `Regex` performance is the last and way slower than any other programming languages. Is there any way to speed up `Regex` performance in .NET or any reason why .NET `Regex` is that slow? +24334 area-Meta INstalling application using clickonce Hi, we have a application built with clcikonce deployment. Whe we are trying to install using https:// it is returning the below error. Please suggest. ERROR SUMMARY Below is a summary of the errors, details of these errors are listed later in the log. * Activation of https://imastest.testweb.bp.com/iMASApplication/iMAS-TEST.application resulted in exception. Following failure messages were detected: + Downloading https://imastest.testweb.bp.com/iMASApplication/iMAS-TEST.application did not succeed. + The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. + The remote certificate is invalid according to the validation procedure. COMPONENT STORE TRANSACTION FAILURE SUMMARY No transaction error was detected. WARNINGS There were no warnings during this operation. OPERATION PROGRESS STATUS * [9/29/2017 5:20:16 PM] : Activation of https://imastest.testweb.bp.com/iMASApplication/iMAS-TEST.application has started. ERROR DETAILS Following errors were detected during this operation. * [9/29/2017 5:20:17 PM] System.Deployment.Application.DeploymentDownloadException (Unknown subtype) - Downloading https://imastest.testweb.bp.com/iMASApplication/iMAS-TEST.application did not succeed. - Source: System.Deployment - Stack trace: at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next) at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles() at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState, X509Certificate2 clientCertificate) at System.Deployment.Application.DownloadManager.DownloadManifestAsRawFile(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation) at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirectBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation) at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestBypass(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, SubscriptionState& subState, IDownloadNotification notification, DownloadOptions options) at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl) at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state) --- Inner Exception --- System.Net.WebException - The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. - Source: System - Stack trace: at System.Net.HttpWebRequest.GetResponse() at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next) --- Inner Exception --- System.Security.Authentication.AuthenticationException - The remote certificate is invalid according to the validation procedure. - Source: System - Stack trace: at System.Net.Security.SslState.StartSendAuthResetSignal(ProtocolToken message, AsyncProtocolRequest asyncRequest, Exception exception) +24335 area-System.Diagnostics Port System.Diagnostics.PerformanceCounters to .NET Core This change ports the Windows PerformanceCounters library to Core. +24336 area-System.Data SqlClient fails to generate SSPI context in UWP 6.0 "Hello! I'm testing UWP with SqlClient on Win10 and can't resolve this weird error. I'll provide details on the software I'm using first: Windows 10 build 16299 (preview for the Fall Creator's update) Visual Studio 2017 version 15.4.0 Preview 3.0 .NET core 2.0 SDK/runtime Nuget Packages for project: Microsoft.EntityFrameworkCore.SqlServer v2.0 Microsoft.NETCore.UniversalWindowsPlatform v6.0.0-preview-25706-01 The project targets and has as the minimum Windows build 16278 an (the previous update before 16299 installed this morning). I can connect to and query the database using a .NET core console application, and also within Visual Studio's Server Explorer. The exception is as follows: `System.Data.SqlClient.SqlException: 'Failed to generate SSPI context. ErrorCode=NoCredentials.` The code to connect to the database is as follows (it is in the code-behind for a control on the main page.) ``` ... using System.Data.SqlClient; ... this.InitializeComponent(); using(SqlConnection helpdeskTest = new SqlConnection()) { helpdeskTest.ConnectionString = ""Data Source = xxx.xxx.xxx; Initial Catalog = whd; Integrated Security = True""; helpdeskTest.Open(); // Exception occurs here. SqlCommand getAssets = new SqlCommand(""SELECT * FROM ASSET"") { Connection = helpdeskTest }; using(SqlDataReader result = getAssets.ExecuteReader()) { while(result.Read()) { asset_list.Items.Add(result[""ASSET_NUMBER""]); } } } ``` Should this work? The connection string is identical to the one in server explorer. If this is the wrong place for this question / bug, please let me know!" +24337 area-System.Collections Improve performance of Immutable/SecureObjectPool/AllocFreeConcurrentStack @karelz could you assign this to me? +24339 area-Serialization Make SGEN public methods be internal +24340 area-System.Globalization Fix/disable RedHat System.Globalization, System.IO.Pipes, System.IO.FileSystem failures Fixes: https://github.com/dotnet/corefx/issues/24304 Fixes: https://github.com/dotnet/corefx/issues/23628 Fixes: https://github.com/dotnet/corefx/issues/23630 (port disable from master) Contributes to: https://github.com/dotnet/corefx/issues/21920 Original fix made by @tarekgh will require changes to CoreCLR (add ICU version detection to native code) which is likely not appropriate as servicing change which does not fix any product bugs. This PR replaces https://github.com/dotnet/corefx/pull/24338 which was against dev/release/2.0.0 +24342 area-System.Diagnostics Merge System.Diagnostics.Tracing.EventCounter fix to release System.Diagnostics.Tracing.EventCounter relies on a relatively new callback added to System.Diagnostics.Tracing.EventSource. Due to an build configuration problem the code that calls this callback was #ifdefed out in the .NET Core 2.0 release. This was fixed months ago but the fix has not made it into the release branches. The result is that EventCounters can't be turned on (that is if you signal to the EventSource that you want EventCounter data, it is ignored). This makes the type useless. This PR merges the fix from the master branch for this issue. It also fixes a number of races associated with the code that happened to be fixed in the same PR as well as beefed up the testing. The change is safe because it only affect EventCounter (or its testing), and currently EventCounter is pretty broken . +24343 area-System.Memory Add SpanExtensions.AsVector # Final/Approved Proposal https://github.com/dotnet/corefx/issues/24343#issuecomment-349418624 ```c# namespace System.Numerics { public struct Vector { // Existing API public Vector(T[] values); // Proposed API public Vector(Span values); } } ``` # Original Proposal It's quite common to want to convert a Span to Vector. It's possible to open code such conversion, but the code is a bit tricky and people do it commonly enough that we shoudl just add a helper to SpanExtensions ```C# public static Vector AsVector(this Span slice) { if (slice.Length < Vector.Count) throw new ArgumentOutOfRangeException(); return Unsafe.ReadUnaligned>(ref Unsafe.As(ref slice.DangerousGetPinnableReference())); } ``` cc: @jkotas, @mellinoe, @ahsonkhan, @benaadams, @stephentoub +24344 area-System.Diagnostics Port System.Diagnostics.EventLog to .NET Core Adding Eventlog to .Net Core +24345 area-Serialization Make the public class be internal in sgen. Fix #24339 @shmao @zhenlan @mconnew +24346 area-System.Runtime S.R.Intrinsics.X86 for .NET Standard? I've been loosely following the S.R.Intrinsics.X86 feature; apologies if this has been discussed before. As far as I know, S.R.Intrinsics.X86 requires support both from the hardware and from the CLR. Currently, the `IsSupported` properties indicate whether hardware support is present. This allows users to write code like this: ```csharp if (Sse2.IsSupported) { // fast path } else { // slow path } ``` The S.R.Intrinsics.X86 package is currently only available for `netcoreapp2.1`. This means if users want to target .NET Standard, they have to compile two versions of their library; one for .NET Core 2.1 and one for .NET Standard: ```csharp #if NETCOREAPP2_1 if (Sse2.IsSupported) { // fast path } else { #endif // slow path #if NETCOREAPP2_1 } #endif ``` Could the package be changed to target .NET Standard and the `IsSupported` properties be changed to indicate whether both hardware support and CLR support is available? Then users could simply target .NET Standard and any environment that has the right hardware and CLR would automatically take the fast path, without users having to compile their library individually for every CLR that supports the feature now or in the future. +24347 area-Infrastructure Update build to clang/llvm 3.9 Update scripts, docs and build pipeline docker images to clang/llvm/lldb 3.9 +24352 area-System.Net SSLStream : Removed sync lock method "Looking at the code, because this method is basically never actually blocked on (only if a renegotiation takes place during a write) there is no need for a second ""sync"" method. Instead we can block on the Async method as it is controlled via a TCS anyway and doesn't go down to a ""real blocking method"" at the OS level so no extra threads should be generated from the original. This again simplifies the code maintenance going forward and refactoring SslState" +24353 area-System.Drawing "Tests under: MonoTests.System.Drawing.Imaging.PngCodecTest failed with ""Xunit.Sdk.EqualException""" Opened on behalf of @Jiayili1 The test `MonoTests.System.Drawing.Imaging.PngCodecTest/Bitmap1bitFeatures` has failed. Assert.Equal() Failure Expected: 0 Actual: 1 Stack Trace: at MonoTests.System.Drawing.Imaging.PngCodecTest.Bitmap1bitFeatures() in /root/corefx-1027731/src/System.Drawing.Common/tests/mono/System.Drawing.Imaging/PngCodecTesst.cs:line 78 Build : Master - 20170930.01 (Core Tests) Failing configurations: - SLES.12.Amd64-x64 - Debug Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170930.01/workItem/System.Drawing.Common.Tests/analysis/xunit/MonoTests.System.Drawing.Imaging.PngCodecTest~2FBitmap1bitFeatures +24354 area-System.Drawing "Tests under: MonoTests.System.Drawing.Imaging.PngCodecTest failed with ""System.ArgumentException""" Opened on behalf of @Jiayili1 The test `MonoTests.System.Drawing.Imaging.PngCodecTest/Bitmap2bitData` has failed. System.ArgumentException : Parameter is not valid. Stack Trace: at System.Drawing.SafeNativeMethods.Gdip.CheckStatus(Int32 status) in /root/corefx-1027731/src/System.Drawing.Common/src/System/Drawing/Gdiplus.cs:line 269 at System.Drawing.Bitmap..ctor(String filename, Boolean useIcm) in /root/corefx-1027731/src/System.Drawing.Common/src/System/Drawing/Bitmap.Unix.cs:line 128 at System.Drawing.Bitmap..ctor(String filename) in /root/corefx-1027731/src/System.Drawing.Common/src/System/Drawing/Bitmap.Unix.cs:line 105 at MonoTests.System.Drawing.Imaging.PngCodecTest.Bitmap2bitData() in /root/corefx-1027731/src/System.Drawing.Common/tests/mono/System.Drawing.Imaging/PngCodecTesst.cs:line 343 Build : Master - 20170930.01 (Core Tests) Failing configurations: - SLES.12.Amd64-x64 - Debug - Release - Ubuntu.1704.Amd64-x64 - Debug - Release - Debian.90.Amd64-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20170930.01/workItem/System.Drawing.Common.Tests/analysis/xunit/MonoTests.System.Drawing.Imaging.PngCodecTest~2FBitmap2bitData +24355 area-System.Net Tests failures: System.Net.NameResolution.Tests / DnsObsolete* & Dns_GetHostEntry* ## Type of failures Affected tests: * `System.Net.NameResolution.Tests.GetHostByNameTest` (both always fail together) * `DnsObsoleteGetHostByName_EmptyString_ReturnsHostName` * `DnsObsoleteBeginEndGetHostByName_EmptyString_ReturnsHostName` * `System.Net.NameResolution.Tests.GetHostEntryTest` (both always fail together) * `Dns_GetHostEntry_HostString_Ok` * `Dns_GetHostEntryAsync_HostString_Ok` Failure text: * OSX: **Device not configured** * Linux: **No such device or address** ``` System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : Device not configured OR System.Net.Internals.SocketExceptionFactory+ExtendedSocketException : No such device or address at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) in /Users/buildagent/agent/_work/34/s/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 46 at System.Net.Dns.GetHostByName(String hostName) in /Users/buildagent/agent/_work/34/s/corefx/src/System.Net.NameResolution/src/System/Net/DNS.cs:line 41 at System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteGetHostByName_EmptyString_ReturnsHostName() in /Users/buildagent/agent/_work/34/s/corefx/src/System.Net.NameResolution/tests/FunctionalTests/GetHostByNameTest.cs:line 108 ``` Note: * `Dns_GetHostEntryAsync_HostString_Ok` fails almost always with same error twice, wrapped in `System.AggregateException`. ### Older failure on OSX (prior to 2017/9/15) ``` Assert.Contains() Failure Not found: DCI-Mac-Build-068.local In value: dci-mac-build-068.local at System.Net.NameResolution.Tests.GetHostByNameTest.DnsObsoleteGetHostByName_EmptyString_ReturnsHostName() in /Users/buildagent/agent/_work/30/s/corefx/src/System.Net.NameResolution/tests/FunctionalTests/GetHostByNameTest.cs:line 108 ``` ## History of failures Each test couple always fails or passes - maybe bad machine setup? Day | Build | OS | Test -- | -- | -- | -- 9/6 | 20170906.01 | OSX10.12 | DnsObsolete* 9/10 | 20170910.01 | Ubuntu14.04 | DnsObsolete* & Dns_GetHostEntry* 9/13 | 20170913.02 | OSX10.12 | DnsObsolete* 9/15 | 20170915.01 | OSX10.12 | DnsObsolete* 9/20 | 20170920.03 | Debian90 | DnsObsolete* & Dns_GetHostEntry* 9/30 | 20170930.01 | OSX10.12 | DnsObsolete* & Dns_GetHostEntry* 10/2 | 20171002.01 | Debian87 | DnsObsolete* & Dns_GetHostEntry* 10/21 | 20171021.01 | Debian87 | DnsObsolete* & Dns_GetHostEntry* 10/26 | 20171026.01 | Suse42.2 | DnsObsolete* & Dns_GetHostEntry* 11/13 | 20171113.03 | OSX10.12 | DnsObsolete* & Dns_GetHostEntry* 11/16 | 20171116.51 | SLES12 | DnsObsolete* & Dns_GetHostEntry* 11/26 | 20171126.02 | Suse42.2 | DnsObsolete* & Dns_GetHostEntry* Similar failures to #20245, but at different times (probably runs on different worker machine). +24356 area-System.Net "Tests under: System.Net.Security.Tests.ServerAsyncAuthenticateTest failed with ""System.ComponentModel.Win32Exception""" Failed tests: System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_AllClientVsIndividualServerSupportedProtocols_Success System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_EachSupportedProtocol_Success System.Net.Security.Tests.ServerAsyncAuthenticateTest.ServerAsyncAuthenticate_MismatchProtocols_Fails Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/outerloop_netcoreapp_win7_release/272/testReport/System.Net.Security.Tests/ServerAsyncAuthenticateTest/ServerAsyncAuthenticate_AllClientVsIndividualServerSupportedProtocols_Success_serverProtocol__Tls_/ Configuration: outerloop_netcoreapp_win7_release MESSAGE: ~~~ System.ComponentModel.Win32Exception : The client and server cannot communicate, because they do not possess a common algorithm ~~~ STACK TRACE: ~~~ at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) in D:\j\workspace\outerloop_net---15cfbbd5\src\Common\src\Interop\Windows\sspicli\SSPIWrapper.cs:line 167 at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\src\System\Net\Security\SslStreamPal.Windows.cs:line 408 at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\src\System\Net\Security\SslStreamPal.Windows.cs:line 131 at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs:line 677 at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs:line 784 at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\src\System\Net\Security\SecureChannel.cs:line 707 at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 749 at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 965 at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 868 at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 681 at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\src\System\Net\Security\SslState.cs:line 598 at System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\src\System\Net\Security\SslStream.cs:line 161 at System.Net.Security.SslStream.<>c.b__35_1(X509Certificate arg1, Boolean arg2, SslProtocols arg3, AsyncCallback callback, Object state) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\src\System\Net\Security\SslStream.cs:line 273 at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1,TArg2,TArg3](Func`6 beginMethod, Func`2 endFunction, Action`1 endAction, TArg1 arg1, TArg2 arg2, TArg3 arg3, Object state, TaskCreationOptions creationOptions) at System.Net.Security.SslStream.AuthenticateAsServerAsync(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\src\System\Net\Security\SslStream.cs:line 274 at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__11.MoveNext() in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\tests\FunctionalTests\ServerAsyncAuthenticateTest.cs:line 154 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Security.Tests.ServerAsyncAuthenticateTest.d__9.MoveNext() in D:\j\workspace\outerloop_net---15cfbbd5\src\System.Net.Security\tests\FunctionalTests\ServerAsyncAuthenticateTest.cs:line 95 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ~~~ +24357 area-System.Diagnostics [System.Diagnostics.Process]::GetProcesses(computer) returns local processes "Repro in PowerShell Core 6 ```powershell [System.Diagnostics.Process]::GetProcesses(""not existing computer"") ``` Expected ```none error not able to connect to computer ``` Actual ```none local processes returned ``` " +24358 area-System.Net Test: System.Net.Tests.HttpRequestStreamTests / Read_NullBuffer_ThrowsArgumentNullException Opened on behalf of @Jiayili1 The test `System.Net.Tests.HttpRequestStreamTests/Read_NullBuffer_ThrowsArgumentNullException(chunked: True)` has failed. System.NullReferenceException : Object reference not set to an instance of an object. Stack Trace: at System.Net.Tests.HttpRequestStreamTests.d__17.MoveNext$fin$0() in E:\A\_work\327\s\corefx\src\System.Net.HttpListener\tests\HttpRequestStreamTests.cs:line 16707566 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\ExceptionServices\ExceptionDispatchInfo.cs:line 61 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 178 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in f:\dd\ndp\fxcore\CoreRT\src\System.Private.CoreLib\src\System\Runtime\CompilerServices\TaskAwaiter.cs:line 147 Build : Master - 20170930.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20170930.01/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpRequestStreamTests~2FRead_NullBuffer_ThrowsArgumentNullException(chunked:%20True) +24360 area-System.Xml XmlDocument The name 'debuggerDisplayProxy' does not exist in the current context When I create a new XmlDocument the local variable is showing the following error error CS0103: The name 'debuggerDisplayProxy' does not exist in the current context ![image](https://user-images.githubusercontent.com/7502746/31047927-f6ac56ee-a5d8-11e7-9123-d7342f1a1dcc.png) +24361 area-System.Net Problem with HttpClient after updating my project from net461 to netcoreapp2.0 I have a piece of code that makes a httpRequest in a page in a domain www.example.gr i am redirected in a page (auth.example.gr) to login. I post some data to login and get the right cookies, so i can use the admin page. This code works fine with .net framework 461. When i test it with netcore 2.0, when i post the data to Login i get this error. > **The operation has been canceled** > **The read operation failed, see inner exception.** > at System.Net.Http.WinHttpResponseStream.d__18.MoveNext() > --- End of stack trace from previous location where exception was thrown --- > at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() > at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) > at System.Net.Http.HttpContent.d__48.MoveNext() > **Error while copying content to a stream.** > at System.Net.Http.WinHttpResponseStream.d__18.MoveNext() > --- End of stack trace from previous location where exception was thrown --- > at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() > at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) > at System.Net.Http.HttpContent.d__48.MoveNext() I don't know what else to provide to help you more. Please inform me. Thank you. +24362 area-System.Linq release/2.0: Fix handling of empty inputs to TakeLast (#24328) Fixes #24327 Port https://github.com/dotnet/corefx/pull/24328 to release/2.0.0 branch. +24363 area-System.Net WinHttpHandler not respecting case sensitivity of request `Connection` header (`Keep-Alive`) "The `WinHttpHandler` class (and I'm assuming WinHTTP) has an issue when sending the `Connection` HTTP header. The problem is that any requests sent through `WinHttpHandler` that are intended to be keep-alive always emit a header that reads `Connection: Keep-Alive` (note the casing of the header value). I am also looking for a workaround / alternatives, as I have no control over the server I am sending requests to (the server chokes on `Connection: Keep-Alive` but not `Connection: keep-alive`). Setup: - Dotnet Core 2.0.0 - Windows 10 Creators Update Notes: - Dotnet Core 2.0.0 on Ubuntu 16.04.2 LTS with `CurlHandler` does not exhibit this problem Unit Test: ``` public sealed class WinHttpHandlerTests { [Theory] [InlineData(""keep-alive"")] [InlineData(""KEEP-ALIVE"")] [InlineData(""Keep-Alive"")] [InlineData(""KEEP_ALIVE"")] public async Task ShouldRespectConnectionCaseSensitivity(string expectedHeaderValue) { using (var listener = new EchoingHttpListener()) using (var request = new HttpRequestMessage(HttpMethod.Get, $""http://localhost:{listener.Port}"")) { request.Headers.TryAddWithoutValidation(""Connection"", expectedHeaderValue); using (var client = new HttpClient(new WinHttpHandler())) using (var response = await client.SendAsync(request)) { var body = await response.Content.ReadAsStringAsync(); var actualHeaderValue = Regex.Match(body, ""Connection: (.*)\r\n"").Groups[1].Value; Assert.Equal(expectedHeaderValue, actualHeaderValue); } } } } internal sealed class EchoingHttpListener : IDisposable { private readonly CancellationTokenSource _cts = new CancellationTokenSource(); private readonly TcpListener _listener = new TcpListener(IPAddress.Any, 0); private readonly Task _listenTask; public EchoingHttpListener() { _listener.Start(); Port = ((IPEndPoint) _listener.LocalEndpoint).Port; var token = _cts.Token; _listenTask = Task.Run(async () => await Listen(token)); } private async Task Listen(CancellationToken token) { while (!token.IsCancellationRequested) { using (var client = await _listener.AcceptTcpClientAsync()) { var stream = client.GetStream(); var encoding = new UTF8Encoding(false); using (var reader = new StreamReader(stream, encoding, false, 2048, true)) using (var writer = new StreamWriter(stream, encoding, 2048, true)) { var request = await ReadRequestAsync(reader); await writer.WriteLineAsync(""HTTP/1.1 200 OK""); await writer.WriteLineAsync(""Connection: close""); await writer.WriteLineAsync(""Content-Type: text/plain; charset=utf-8""); await writer.WriteLineAsync($""Content-Length: {encoding.GetByteCount(request)}""); await writer.WriteLineAsync(); await writer.WriteAsync(request); } } } } private static async Task ReadRequestAsync(TextReader reader) { var sb = new StringBuilder(); string line; do { line = await reader.ReadLineAsync(); sb.AppendLine(line); } while (line != string.Empty); return sb.ToString(); } public int Port { get; } public void Dispose() { _listener.Stop(); _cts.Cancel(); try { _listenTask.Wait(); } catch { // ignored } _cts.Dispose(); } } ```" +24364 area-System.Diagnostics Static PerformanceCounterLib.GetPerformanceCounterLib is not thread-safe Outside of any locks GetPerformanceCounterLib both reads and writes to a normal. static `Dictionary<>`. https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Process/src/System/Diagnostics/PerformanceCounterLib.cs#L74-L78 +24365 area-System.Collections Proposal: BoundedConcurrentQueue "`ConcurrentQueue` is an unbounded, thread-safe queue, where the primary operations are Enqueue and TryDequeue. It's one of the more valuable concurrent collection types. However, unbounded collections aren't always desirable. For example, consider wanting to use a concurrent queue for object pooling. If you want to ensure you don't store more than N objects, this is difficult or impossible to achieve efficiently with `ConcurrentQueue`, which will automatically grow its storage to store the item being added if there's insufficient room. `ConcurrentQueue`, however, is actually implemented as a wrapper for a bounded queue, internally called `ConcurrentQueue.Segment`. https://github.com/dotnet/corefx/blob/9c468a08151402a68732c784b0502437b808df9f/src/System.Collections.Concurrent/src/System/Collections/Concurrent/ConcurrentQueue.cs#L820 In essence, `ConcurrentQueue.Segment` provides the bounded queue behavior, and `ConcurrentQueue` layers on top of that unbounded semantics. We should clean up the `Segment` APIs and expose it as ```C# namespace System.Collections.Concurrent { public sealed class BoundedConcurrentQueue { public BoundedConcurrentQueue(int capacity); // capacity must a power of 2 that's >= 2 public int Capacity { get; } public int Count { get; } public bool IsEmpty { get; } public bool TryEnqueue(T item); public bool TryDequeue(out T item); } } ``` The current implementation is fast, and is able to achieve that speed in part by eschewing some functionality that would weigh it down non-trivially, e.g. enumeration. That's why it doesn't implement any interfaces like `IEnumerable` or `IReadOnlyCollection` that would force us to add such behavior and slow it down. This collection would be very specialized and used purely for its ability to have items enqueued and dequeued quickly. (Methods like TryPeek, ToArray, CopyTo, GetEnumerator, etc., all require the ability to look at data in the queue without removing it, and in the current implementation, that requires marking the segment as ""preserving for observation"", which means nothing will ever be removed from the queue; this has the effect of continuing to allow enqueues until the segment is full, but since dequeues don't end up removing data, at that point nothing further can be enqueued, even if everything is dequeued. `ConcurrentQueue` deals with this simply by creating a new segment, but that doesn't work for the segment itself.)" +24366 area-Infrastructure GenerateDepsJson task failed with ArgumentException "I did a clean, sync, build locally and hit this (it succeeded on a subsequent attempt): ``` c:\Users\stoub\Source\Repos\corefx\src\src.builds(30,5): error MSB4018: The ""GenerateDepsJson"" task failed unexpectedly. c:\Users\stoub\Source\Repos\corefx\src\src.builds(30,5): error MSB4018: System.ArgumentException: Can not add property runtimes/win-x64/lib/netcoreapp2.0/mscorlib.dll to Newtonsoft.Json.Linq.JObject. Property with the same name already exists on object. c:\Users\stoub\Source\Repos\corefx\src\src.builds(30,5): error MSB4018: at Newtonsoft.Json.Linq.JObject.ValidateToken(JToken o, JToken existing) c:\Users\stoub\Source\Repos\corefx\src\src.builds(30,5): error MSB4018: at Newtonsoft.Json.Linq.JContainer.InsertItem(Int32 index, JToken item, Boolean skipParentCh eck) c:\Users\stoub\Source\Repos\corefx\src\src.builds(30,5): error MSB4018: at Newtonsoft.Json.Linq.JObject.InsertItem(Int32 index, JToken item, Boolean skipParentCheck ) c:\Users\stoub\Source\Repos\corefx\src\src.builds(30,5): error MSB4018: at Newtonsoft.Json.Linq.JContainer.AddInternal(Int32 index, Object content, Boolean skipPare ntCheck) c:\Users\stoub\Source\Repos\corefx\src\src.builds(30,5): error MSB4018: at Newtonsoft.Json.Linq.JContainer.Add(Object content) c:\Users\stoub\Source\Repos\corefx\src\src.builds(30,5): error MSB4018: at Newtonsoft.Json.Linq.JObject.Add(String propertyName, JToken value) c:\Users\stoub\Source\Repos\corefx\src\src.builds(30,5): error MSB4018: at Microsoft.DotNet.Build.Tasks.GenerateDepsJson.Execute() c:\Users\stoub\Source\Repos\corefx\src\src.builds(30,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Exec ute() c:\Users\stoub\Source\Repos\corefx\src\src.builds(30,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.d__26.MoveNext() ``` cc: @ericstj " +24367 area-System.Xml Fix DebuggerDisplay for XmlNode "Somewhere along the way XmlNode's debuggerDisplayProxy property was removed. That doesn't break the build, as it's only used via reflection, but it does break the debugger display tooltip. This just copy-and-pastes the corresponding implementation from reference source to fix it. The only other change I made was renaming ""node"" to ""_node"" and making it readonly. Fixes https://github.com/dotnet/corefx/issues/24360 cc: @krwq, @pjanotti, @angelcalvasp (Subsequently we should ideally add tests for these debugger displays like we have elsewhere in corefx, so that we don't inadvertently break them again. We may even find we have similar issues elsewhere.)" +24368 area-System.Net CookieContainer doesn't return all relevant cookies "Adding a new non-matching cookie can prevent matching cookies from being found. ```c# var uri1 = new Uri(""http://www.example.com/""); var uri2 = new Uri(""http://www.example.com/level1/""); var uri3 = new Uri(""http://www.example.com/level1/level2a""); var uri4 = new Uri(""http://www.example.com/level1/level2b""); var cookieContainer = new CookieContainer(); cookieContainer.Add(new Cookie(""cookie1"", ""value1"", uri1.AbsolutePath, uri1.Host)); cookieContainer.Add(new Cookie(""cookie2"", ""value2"", uri2.AbsolutePath, uri2.Host)); cookieContainer.Add(new Cookie(""cookie3"", ""value3"", uri3.AbsolutePath, uri3.Host)); var beforeCount = cookieContainer.GetCookies(uri3).Count; Console.WriteLine(beforeCount); // 3 cookieContainer.Add(new Cookie(""cookie4"", ""value4"", uri4.AbsolutePath, uri4.Host)); var afterCount = cookieContainer.GetCookies(uri3).Count; Console.WriteLine(afterCount); // 2 ```" +24369 area-System.Net Change CookieContainer to return all relevant cookies Test case and fix for #24368. Adding a new non-matching cookie could cause matching cookies to not be returned. +24370 area-System.Security Proposal: Make Utils.BuildBagOfCerts an extension point Currently, both `SignedXml` and `EncryptedXml` (in `System.Security.Cryptography.Xml`) call into `Utils.BuildBagOfCerts` to retrieve certificates for Decryption or Validation. The `BuildBagOfCerts` is hardwired to use `X509Store` (user/machine store). I'd like to do my own handling of Certificates in my application. I would thus like a new virtual method `X509Certificate2Collection BuildBagOfCerts(KeyInfoX509Data keyInfoX509Data, CertUsage certUsageType)` in both `SignedXml` and `EncryptedXml` that I can use to do my own handling. As `CertUsage` is internal, this would either need to be public, or a simple `bool needsPrivateKey = false` to indicate that we need the private key, or omit it since it's clear which class needs which. SignedXml already has a private `BuildBagOfCerts` method which could call into it's virtual method, and EncryptedXml only calls it in `DecryptEncryptedKey`. Proposal: ```cs public class SignedXml { protected virtual X509Certificate2Collection BuildBagOfCerts(KeyInfoX509Data x509Data) { return Utils.BuildBagOfCerts(x509Data, CertUsageType.Verification) } private X509Certificate2Collection BuildBagOfCerts() { X509Certificate2Collection collection = new X509Certificate2Collection(); if (KeyInfo != null) { foreach (KeyInfoClause clause in KeyInfo) { KeyInfoX509Data x509Data = clause as KeyInfoX509Data; if (x509Data != null) collection.AddRange(BuildBagOfCerts(x509Data)); } } return collection; } } public class EncryptedXml { protected virtual X509Certificate2Collection BuildBagOfCerts(KeyInfoX509Data x509Data) { return Utils.BuildBagOfCerts(x509Data, CertUsageType.Decryption) } public virtual byte[] DecryptEncryptedKey(EncryptedKey encryptedKey) { // snip... kiX509Data = keyInfoEnum.Current as KeyInfoX509Data; if (kiX509Data != null) { X509Certificate2Collection collection = BuildBagOfCert(kiX509Data); foreach (X509Certificate2 certificate in collection) // snip... } } ``` +24371 area-System.Data Data.SqlClient : Intermittent Kerberos issues on Linux Hi, I'm using the new IntegratedAuthentication feature in the SqlClient (version 4.4 of the Data.SqlClient package and dotnetcore 2.0) on RHEL7 in a docker image. It usually works, but I do get intermittent failures of ``` Wcm.ServiceModel.Net.InterServiceException: One or more errors occurred. (Cannot access Kerberos ticket. Ensure Kerberos has been initialized with 'kinit'. ErrorCode=InternalError, Exception=Interop+NetSecurityNative+GssApiException: GSSAPI operation failed with error - An invalid status code was supplied (SPNEGO cannot find mechanisms to negotiate). at System.Net.Security.NegotiateStreamPal.GssInitSecurityContext(SafeGssContextHandle& context, SafeGssCredHandle credential, Boolean isNtlm, SafeGssNameHandle targetName, GssFlags inFlags, Byte[] buffer, Byte[]& outputBuffer, UInt32& outFlags, Int32& isNtlmUsed) at System.Net.Security.NegotiateStreamPal.EstablishSecurityContext(SafeFreeNegoCredentials credential, SafeDeleteContext& context, String targetName, ContextFlagsPal inFlags, SecurityBuffer inputBuffer, SecurityBuffer outputBuffer, ContextFlagsPal& outFlags) at System.Data.SqlClient.SNI.SNIProxy.GenSspiClientContext(SspiClientContextStatus sspiClientContextStatus, Byte[] receivedBuff, Byte[]& sendBuff, Byte[] serverName) at System.Data.SqlClient.SNI.TdsParserStateObjectManaged.GenerateSspiClientContext(Byte[] receivedBuff, UInt32 receivedLength, Byte[]& sendBuff, UInt32& sendLength, Byte[] _sniSpnBuffer) at System.Data.SqlClient.TdsParser.SNISSPIData(Byte[] receivedBuff, UInt32 receivedLength, Byte[]& sendBuff, UInt32& sendLength)) ``` It then starts working again after a while. No restart of the program is required. And yes, I did run kinit before starting the application. Due to the intermittent nature of this failure I'm not really sure what's wrong and I was hoping someone here might have an idea. [EDIT] Fix callstack formatting by @karelz +24372 area-System.Net Add Last-Modified to HttpResponseHeaders +24373 area-System.Net Give access to raw list of headers in HttpResponseHeaders "If a header is not accessible through HttpResponseHeaders (in my case Last-Modified) it would be convenient to have access to the raw list of headers: response.Headers.Values(""Last-Modified"") Currently this does not give a result, although I put the header in the response (as I can check by testing it in Postman)." +24374 area-System.Data transactionScope Error. Enlisting in Ambient transactions is not supported "> Enlisting in Ambient transactions is not supported I get this error when dedugging the code below in .net core 2 console app on my win 10 PC with VS 2017 15.3.2 (System.Data.SqlClient v4.4.0) ``` using (TransactionScope scope = new TransactionScope()) { using (SqlConnection connection1 = new SqlConnection(_configuration[""ConnectionString""])) { connection1.Open(); } scope.Complete(); } ``` Transactionscope is part of the .net standard 2 and the code above was taken from microsoft's documentation https://docs.microsoft.com/en-gb/dotnet/api/system.transactions.transactionscope?view=netcore-2.0" +24375 area-System.Security RSAKeyValue.LoadXml not working when XmlElement input has namespace prefix Are there any know workaround for issue #22229 with digital signatures? +24376 area-System.IO Drive formatting APIs I searched a lot about this topic, and I think that drive formatting should be supported in .NET Core. I understand that these APIs may seem unnecessary and dangerous, but there are use cases for it. ## Use Cases My use case is preparing USB drives to boot, in a cross platform way and avoiding the creation of separate processes (which would require a separate application, not managed). There are probably other use cases, but I can't think of any at the moment. ## Proposed APIs I suggest something like this: ```cs namespace System.IO { [Flags] public enum FileSystemType { NTFS, FAT32 // others } public class DriveInfo { // Flags or IEnumerable ? public FileSystemType SupportedFileSystems { get; } public void Format(FileSystemType fileSystemType); public Task FormatAsync(FileSystemType fileSystemType); } } ``` ## Open Questions This would be a dangerous method, what security checks should be done? +24377 area-System.Xml Add test to prevent removal of display debugger type Idea is to prevent future repeates of #24367: add tests for these debugger displays like we have elsewhere in corefx +24378 area-Infrastructure Add auto dependency flow repo API Implement [auto dependency flow repo API](https://github.com/dotnet/source-build/blob/dev/release/2.0/Documentation/auto-dependency-flow/api.md). https://github.com/dotnet/source-build/issues/199 The new BuildTools package provides a common implementation for most of the args (https://github.com/dotnet/buildtools/pull/1707), but some changes are required: * The `dir.props` source changes are because BuildTools now provides a default value of `RestoreSources` based on repo API args. BuildTools also now automatically flows the property into the restore command. * In `dependencies.props`, I globally standardized package version property names so they are overridden by the `DotNetPackageVersionPropsPath` file without any special handling. +24379 area-System.Net Why does not HttpClientHandler throw an exception when adding only public portion of client certificate? "To attach a client certificate to the request one could write following code on the client side: ```c# var cert = //TODO - load certificate var requestHandler = new HttpClientHandler(); requestHandler.SslProtocols = SslProtocols.Tls12; requestHandler.ClientCertificateOptions = ClientCertificateOption.Manual; requestHandler.ClientCertificates.Add(cert); HttpClient client = new HttpClient(requestHandler); HttpResponseMessage response = client.GetAsync(""https://www.example.com/api/values"").Result; response.EnsureSuccessStatusCode(); ``` In asp.net core 2.0 server side, one could write following code to extract the certificate (typically in a middleware component): ```c# var cert = this.HttpContext.Connection.GetClientCertificateAsync().Result; ``` The above 'cert' variable will be non-null if client attached a certificate that has a private key in it (though private key portion is not transmitted to the server). However if the client attached only a public portion of the certificate to requestHandler.ClientCertificates.Add(cert) call, the server side will return null for the extracted certificate. If I added a client certificate to HttpClientHandler (and set it to Manual, which means no other certificate should be inspected for sending a client certificate), it is clear what my intent is. During the call execution, it should have thrown an error because I added a file that does not include a private key. Am I wrong to expect this behavior? [EDIT] Add C# syntax highlighting by @karelz" +24380 area-System.Net HttpClient: The HTTP redirect request failed Hi, all. I try to port a VimeoDotNet library to .NET Core but I have the problem. I have the request: ``` PUT https://1512435594.cloud.vimeo.com/upload?ticket_id=108999278&video_file_id=842140596&signature=0766cfcc58ec6815425054fd2f31c2ab&v6=1 HTTP/1.1 Connection: Keep-Alive Content-Range: bytes */* Accept: application/vnd.vimeo.*+json; version=3.2, application/json Accept-Encoding: gzip, deflate Content-Length: 0 Host: 1512435594.cloud.vimeo.com ``` and the response: ``` HTTP/1.1 308 Resume Incomplete Server: Vimeo/2.0 Content-Type: text/plain Access-Control-Allow-Origin: * Timing-Allow-Origin: * Access-Control-Expose-Headers: Range Access-Control-Allow-Headers: Content-Type, Content-Range, X-Requested-With X-Requested-With: XMLHttpRequest Access-Control-Allow-Methods: POST, PUT, GET, OPTIONS Content-Length: 0 Connection: close Range: bytes=0-5510872 Date: Mon, 02 Oct 2017 18:57:37 GMT X-Backend-Server: kopiluwak ``` It's worked on Full framework but on .NET Core I have exception: ``` The HTTP redirect request failed at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.WinHttpHandler.d__105.MoveNext() ``` How can I workaround it? +24382 area-System.IO Allow directory not empty errors If we've successfully removed all of the file content without errors we should allow for directory not empty to allow for active file handles to close. Fixes #23473. +24384 area-System.Memory [uapaot] OwnedMemoryRetainWithPinningAndSlice fails due to bug in Retain impl "Test temporarily disabled in: https://github.com/dotnet/corefx/pull/24385 **This test is failing for uapaot since the fix for the bug in the implementation of Retain does not seem to have been consumed yet.** ```xml ``` cc @jkotas, @KrzysztofCwalina, @stephentoub, @safern, @leekir" +24385 area-System.Memory Re-enabling disabled Span/Memory tests for uapaot The tests that were disabled in https://github.com/dotnet/corefx/pull/23905 can now be re-enabled since the bugs have been fixed for uapaot. Opened a new issue and disabled the new tests that are failing still: https://github.com/dotnet/corefx/issues/24384 cc @jkotas, @safern, @jfree, @KrzysztofCwalina, @crummel, @leekir +24386 area-System.Net FreeBSD: System.Net.NetworkInformation is missing This is part of https://github.com/dotnet/corefx/issues/1626 Many tests failing System.Net.Ping.Functional.Tests.dll, 7 System.Net.NetworkInformation.Functional.Tests.dll, 31 System.Net.Mail.Functional.Tests.dll, 40 +24387 area-System.Net ManagedHandler: AuthenticationHandler clears the wrong credentials field on redirect "https://github.com/dotnet/corefx/blob/f74844b5b90ca9f3fda8439349071f549df03d43/src/System.Net.Http/src/System/Net/Http/Managed/AuthenticationHandler.cs#L48-L54 The AuthenticationHandler checks if the result was a redirect, and if so it clears the _credentials field. However, the lifetime of the AuthenticationHandler object and the _credentials field is not per request, it's for the entire lifetime of the HttpClient and associated handlers pipeline. The first request to experience a redirect ends up clearing the credentials for all subsequent requests, not just for the redirect. The other handlers have similar logic but they maintain a per-request state object with a copy of _credentials that can be cleared per request. This redirect detection logic also needs to be moved to the bottom of the method so it also detects redirects from the secondary login requests. Repro code: dotnet --version: 2.1.0-preview1-007228 Output for Non-ManagedHandler: 401 and then 200. Output for ManagedHandler: 401 and 401. ``` using System; using System.Net; using System.Net.Http; using System.Text; using System.Threading.Tasks; namespace ConsoleApp16 { class Program { static void Main(string[] args) { var listener = new HttpListener(); listener.Prefixes.Add(""http://localhost:5001/""); listener.Start(); RunServer(listener); RunClient().Wait(); } private static async Task RunClient() { var handler = new HttpClientHandler(); handler.Credentials = new NetworkCredential(""foo"", ""bar""); var client = new HttpClient(handler); var response = await client.GetAsync(""http://localhost:5001/redirect""); Console.WriteLine(response); Console.WriteLine(await response.Content.ReadAsStringAsync()); var response2 = await client.GetAsync(""http://localhost:5001/basic""); Console.WriteLine(response2); Console.WriteLine(await response2.Content.ReadAsStringAsync()); } private static async void RunServer(HttpListener listener) { while (true) { var context = await listener.GetContextAsync(); if (context.Request.Url.AbsolutePath.Equals(""/basic"")) { var authHeader = context.Request.Headers[""Authorization""]; if (!string.IsNullOrEmpty(authHeader) && authHeader.StartsWith(""Basic "")) { var bytes = Encoding.UTF8.GetBytes($""Auth header after login: {authHeader}""); await context.Response.OutputStream.WriteAsync(bytes, 0, bytes.Length); } else { // Not authenticated context.Response.StatusCode = 401; context.Response.Headers[HttpResponseHeader.WwwAuthenticate] = ""Basic""; } } else if (context.Request.Url.AbsolutePath.Equals(""/redirect"")) { context.Response.Redirect(""/basic""); } else { context.Response.StatusCode = 404; } context.Response.Close(); } } } } ```" +24389 area-System.Net Add ALPN support for SslStream. cc @stephentoub @bartonjs @geoffkizer @wfurt @karelz @Drawaes @Tratcher fixes #23177 In this PR, only ALPN support is added. This PR does not include: 1. CancellationToken implementation 2. AllowRenegotiation 3. SNI I'll file issues separately for followup on above items at the time of merging this PR. +24390 area-System.Reflection Proposal for high-performance codegen-less Reflection factory APIs /cc @jkotas # Background There are certain scenarios today - largely involving activation, serialization, and DI - where library authors perform codegen in order to perform operations on arbitrary types. The primary reason for this is performance. The standard Reflection APIs are too slow to be used in the code paths targeted by these library authors, and though codegen has a large upfront cost it performs considerably better when amortized over the lifetime of the application. This approach generally works well, but the .NET Framework is considering scenarios where it must operate in environments which do not allow codegen. This renders ineffective the existing performance improvement techniques used by these library authors. We are uniquely positioned to provide a set of APIs which can cover the majority of scenarios traditionally involving reflection-based codegen. The general idea is that library authors can rely on the APIs we provide to work correctly _both_ in codegen-enabled _and_ in codegen-disallowed environments. Alternatively, the library authors can detect at runtime whether codegen is enabled, and if so they can use their existing highly-optimized codegen logic, falling back to the new API surface if codegen is disallowed. # Sample API surface ```csharp namespace System.Reflection { public delegate ref TField FieldAccessor(object target); public delegate ref TField FieldAccessor(ref TTarget target); /// /// Provides factories that can be used by serializers, formatters, and DI systems /// to perform reflection-like activities in performance-critical code paths. /// [SecurityCritical] public static class ReflectionServices { public static bool IsCodegenAllowed { get; } /* * FIELD ACCESSORS, GETTERS, AND SETTERS */ public static FieldAccessor CreateFieldAccessor(FieldInfo fieldInfo); public static FieldAccessor CreateFieldAccessor(FieldInfo fieldInfo); public static Func CreateFieldGetter(FieldInfo fieldInfo); public static Func CreateFieldGetter(FieldInfo fieldInfo); public static Func CreateFieldGetter(FieldInfo fieldInfo); public static Action CreateFieldSetter(FieldInfo fieldInfo); public static Action CreateFieldSetter(FieldInfo fieldInfo); // TTarget must not be value type; field must be an instance field. public static Action CreateFieldSetter(FieldInfo fieldInfo); /* * PARAMETERLESS OBJECT CREATION */ public static Func CreateInstanceFactory(Type type); public static Func CreateInstanceFactory(); /* * PARAMETERFUL OBJECT CREATION */ public static Func CreateInstanceFactory(ConstructorInfo constructorInfo); public static Func CreateInstanceFactory(ConstructorInfo constructorInfo); public static Delegate CreateInstanceFactoryTyped(ConstructorInfo constructorInfo, Type delegateType); /* * PROPERTY GETTERS AND SETTERS * TODO: How would indexed properties be represented? Using the normal method invocation routines? */ public static Func CreatePropertyGetter(PropertyInfo propertyInfo); public static Func CreatePropertyGetter(PropertyInfo propertyInfo); public static Func CreatePropertyGetter(PropertyInfo propertyInfo); public static Action CreatePropertySetter(PropertyInfo propertyInfo); public static Action CreatePropertySetter(PropertyInfo propertyInfo); // TTarget must not be value type; property must be an instance property. public static Action CreatePropertySetter(PropertyInfo propertyInfo); /* * METHODS */ public static Func CreateMethodInvoker(MethodInfo methodInfo); // If instance method, 'delegateType' must be open over 'this' parameter. public static Delegate CreateMethodInvoker(MethodInfo methodInfo, Type delegateType); /* * EVENTS */ public static Action CreateEventSubscriber(EventInfo eventInfo); // Event must be an instance event. public static Action CreateEventSubscriber(EventInfo eventInfo); public static Action CreateEventUnsubscriber(EventInfo eventInfo); // Event must be an instance event. public static Action CreateEventUnsubscriber(EventInfo eventInfo); } } ``` # Goals and non-goals * These APIs **are not** geared toward standard application developers who are already comfortable using the existing Reflection API surface. They are instead geared toward advanced library developers who need to perform Reflection operations in performance-sensitive code paths. * These APIs **must** work in a codegen-disallowed execution environment. (Are there exceptions?) * These APIs **do not** need to cover all scenarios currently allowed by the existing methods on `MethodInfo` and related types. For example, constructors that take `ref` or `out` parameters are sufficiently rare that we don't need to account for them. They can be invoked via the standard Reflection APIs. * These APIs **do not** need to have the same observable behavior as using the Reflection APIs; e.g., we may determine that these APIs should not throw `TargetInvocationException` on failure. But these APIs **must** provide consistent behavior regardless of whether they're running within a codegen-enabled or a codegen-disallowed environment. * Delegate creation **does not** need to be particularly optimized since there will be many checks performed upfront and we will ask callers to cache the returned delegate instances. However, once the delegates are created their invocation **must** be faster than calling the existing Reflection APIs. (Exception: if codegen is disallowed, then delegate invocation **should** be faster than calling the existing Reflection APIs wherever possible, and it **must not** be slower.) * It is an explicit **goal** to get serialization library authors to prefer this system over hand-rolling codegen for most member access scenarios. The selling points of this API would be ease of use (compared to hand-rolling codegen), performance, and the ability to work in a wide variety of execution environments. * It is an explicit **non-goal** to have performance characteristics equal to or better than a library's own custom codegen. For example, a DI system might choose to codegen a single method that both queries a service provider to get dependency instances and calls `newobj` on the target constructor. Such a system will always outperform these generalized APIs, but the API performance should be good enough that library authors would be generally satisfied using them over Reflection as a fallback in these scenarios. * These APIs **do not** need to support custom implementations of `MemberInfo`. Only support for CLR-backed members is required. +24394 area-System.Net "UWP HttpListener Read_Disposed_ReturnsZero test failed with ""The text associated with this error code could not be found.""" https://mc.dot.net/#/user/stephentoub/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/ead0778f7763f6852cd3f7124a9838950a39033b/workItem/System.Net.HttpListener.Tests/analysis/xunit/System.Net.Tests.HttpRequestStreamTests~2FRead_Disposed_ReturnsZero(transferEncodingChunked:%20True) ``` Unhandled Exception of Type System.Net.Http.HttpRequestException Message : System.Net.Http.HttpRequestException : An error occurred while sending the request. ---- System.Exception : The text associated with this error code could not be found. The connection with the server was reset Stack Trace : at System.Net.Http.HttpClientHandler.d__113.MoveNext() in D:\j\workspace\windows-TGrou---33cbf18b\src\System.Net.Http\src\uap\System\Net\HttpClientHandler.cs:line 616 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClient.d__58.MoveNext() in D:\j\workspace\windows-TGrou---33cbf18b\src\System.Net.Http\src\System\Net\Http\HttpClient.cs:line 464 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at System.Net.Tests.HttpRequestStreamTests.d__13.MoveNext() in D:\j\workspace\windows-TGrou---33cbf18b\src\System.Net.HttpListener\tests\HttpRequestStreamTests.cs:line 351 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) ----- Inner Stack Trace ----- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpHandlerToFilter.d__15.MoveNext() in D:\j\workspace\windows-TGrou---33cbf18b\src\System.Net.Http\src\uap\System\Net\HttpHandlerToFilter.cs:line 103 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() at System.Net.Http.HttpClientHandler.d__113.MoveNext() in D:\j\workspace\windows-TGrou---33cbf18b\src\System.Net.Http\src\uap\System\Net\HttpClientHandler.cs:line 607 ``` +24395 area-System.Runtime Please introduce IEnumerable constructor in System.String Hi, ### Motive In order to initialize a `string` from an `IEnumerable` via LINQ etc., we must first manually create an array by calling `ToArray` or other means. ### Desired API ```c# IEnumerable chars = GetChars(); string str = new string(chars); ``` Achievable by adding another constructor overload that copies the enumerable of chars into a new string. +24396 area-System.Threading Expose/test ThreadPool.QueueUserWorkItem(..., bool preferLocal) Fixes https://github.com/dotnet/corefx/issues/12442 cc: @tarekgh, @kouvel +24397 area-System.Memory Expose MemoryStream.Read/WriteAsync(Memory) from ref MemoryStream's other Read/Write{Async} overrides are exposed from the ref, but these two were missing. The lack of them causes stream's derived from MemoryStream that then call down to the base methods to skip these and go instead to Stream's implementation. cc: @ianhays, @ViktorHofer +24398 area-System.Runtime Add string.Concat(IEnumerable) tests Exercise char special paths in string.Concat. Related to https://github.com/dotnet/coreclr/pull/14298 cc: @joperezr, @AlexGhiondea +24399 area-System.Diagnostics System.Diagnostics.StackTrace.Tests failed in the CI " https://ci3.dot.net/job/dotnet_corefx/job/master/job/windows-TGroup_netfx+CGroup_Release+AGroup_x86+TestOuter_false_prtest/3813/console ``` 17:25:31 D:\j\workspace\windows-TGrou---2a8f9c29\Tools\tests.targets(473,5): warning : System.Diagnostics.StackTrace.Tests Total: 76, Errors: 0, Failed: 3, Skipped: 0, Time: 0.385s [D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.StackTrace\tests\System.Diagnostics.StackTrace.Tests.csproj] 17:25:31 D:\j\workspace\windows-TGrou---2a8f9c29\Tools\tests.targets(473,5): warning MSB3073: The command ""D:\j\workspace\windows-TGrou---2a8f9c29\bin/tests/System.Diagnostics.StackTrace.Tests/netfx-Windows_NT-Release-x86//RunTests.cmd D:\j\workspace\windows-TGrou---2a8f9c29\bin/testhost/netfx-Windows_NT-Release-x86/"" exited with code 1. [D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.StackTrace\tests\System.Diagnostics.StackTrace.Tests.csproj] 17:25:31 D:\j\workspace\windows-TGrou---2a8f9c29\Tools\tests.targets(481,5): error : One or more tests failed while running tests from 'System.Diagnostics.StackTrace.Tests' please check D:\j\workspace\windows-TGrou---2a8f9c29\bin/tests/System.Diagnostics.StackTrace.Tests/netfx-Windows_NT-Release-x86/testResults.xml for details! [D:\j\workspace\windows-TGrou---2a8f9c29\src\System.Diagnostics.StackTrace\tests\System.Diagnostics.StackTrace.Tests.csproj] 17:25:31 D:\j\workspace\windows-TGrou---2a8f9c29\dir.traversal.targets(77,5): error : (No message specified) [D:\j\workspace\windows-TGrou---2a8f9c29\src\tests.builds] 17:25:31 2 Warning(s) 17:25:31 2 Error(s) ``` " +24400 area-System.Memory Add Span Binary Reader/Writer APIs From https://github.com/dotnet/corefx/issues/24144 (part of https://github.com/dotnet/corefx/issues/24174) **Edit:** Addressed changes from the [API review](https://github.com/dotnet/apireviews/tree/master/2017/10-03-System.Binary). ```C# // System.Memory.dll namespace System.Buffers.Binary { public static class BinaryPrimitives { public static T ReadMachineEndian(ReadOnlySpan buffer) where T : struct; public static short ReadInt16BigEndian(ReadOnlySpan buffer); public static short ReadInt16LittleEndian(ReadOnlySpan buffer); public static int ReadInt32BigEndian(ReadOnlySpan buffer); public static int ReadInt32LittleEndian(ReadOnlySpan buffer); public static long ReadInt64BigEndian(ReadOnlySpan buffer); public static long ReadInt64LittleEndian(ReadOnlySpan buffer); public static ushort ReadUInt16BigEndian(ReadOnlySpan buffer); public static ushort ReadUInt16LittleEndian(ReadOnlySpan buffer); public static uint ReadUInt32BigEndian(ReadOnlySpan buffer); public static uint ReadUInt32LittleEndian(ReadOnlySpan buffer); public static ulong ReadUInt64BigEndian(ReadOnlySpan buffer); public static ulong ReadUInt64LittleEndian(ReadOnlySpan buffer); public static byte ReverseEndianness(byte value); public static short ReverseEndianness(short value); public static int ReverseEndianness(int value); public static long ReverseEndianness(long value); public static sbyte ReverseEndianness(sbyte value); public static ushort ReverseEndianness(ushort value); public static uint ReverseEndianness(uint value); public static ulong ReverseEndianness(ulong value); public static bool TryReadMachineEndian(ReadOnlySpan buffer, out T value) where T : struct; public static bool TryReadInt16BigEndian(ReadOnlySpan buffer, out short value); public static bool TryReadInt16LittleEndian(ReadOnlySpan buffer, out short value); public static bool TryReadInt32BigEndian(ReadOnlySpan buffer, out int value); public static bool TryReadInt32LittleEndian(ReadOnlySpan buffer, out int value); public static bool TryReadInt64BigEndian(ReadOnlySpan buffer, out long value); public static bool TryReadInt64LittleEndian(ReadOnlySpan buffer, out long value); public static bool TryReadUInt16BigEndian(ReadOnlySpan buffer, out ushort value); public static bool TryReadUInt16LittleEndian(ReadOnlySpan buffer, out ushort value); public static bool TryReadUInt32BigEndian(ReadOnlySpan buffer, out uint value); public static bool TryReadUInt32LittleEndian(ReadOnlySpan buffer, out uint value); public static bool TryReadUInt64BigEndian(ReadOnlySpan buffer, out ulong value); public static bool TryReadUInt64LittleEndian(ReadOnlySpan buffer, out ulong value); public static bool TryWriteInt16BigEndian(Span buffer, short value); public static bool TryWriteInt16LittleEndian(Span buffer, short value); public static bool TryWriteInt32BigEndian(Span buffer, int value); public static bool TryWriteInt32LittleEndian(Span buffer, int value); public static bool TryWriteInt64BigEndian(Span buffer, long value); public static bool TryWriteInt64LittleEndian(Span buffer, long value); public static bool TryWriteUInt16BigEndian(Span buffer, ushort value); public static bool TryWriteUInt16LittleEndian(Span buffer, ushort value); public static bool TryWriteUInt32BigEndian(Span buffer, uint value); public static bool TryWriteUInt32LittleEndian(Span buffer, uint value); public static bool TryWriteUInt64BigEndian(Span buffer, ulong value); public static bool TryWriteUInt64LittleEndian(Span buffer, ulong value); public static void WriteMachineEndian(Span buffer, ref T value) where T : struct; public static void WriteInt16BigEndian(Span buffer, short value); public static void WriteInt16LittleEndian(Span buffer, short value); public static void WriteInt32BigEndian(Span buffer, int value); public static void WriteInt32LittleEndian(Span buffer, int value); public static void WriteInt64BigEndian(Span buffer, long value); public static void WriteInt64LittleEndian(Span buffer, long value); public static void WriteUInt16BigEndian(Span buffer, ushort value); public static void WriteUInt16LittleEndian(Span buffer, ushort value); public static void WriteUInt32BigEndian(Span buffer, uint value); public static void WriteUInt32LittleEndian(Span buffer, uint value); public static void WriteUInt64BigEndian(Span buffer, ulong value); public static void WriteUInt64LittleEndian(Span buffer, ulong value); public static bool TryWriteMachineEndian(Span buffer, ref T value) where T : struct; } } ``` cc @KrzysztofCwalina, @stephentoub, @GrabYourPitchforks, @jkotas, @safern Code Coverage when running on a Little Endian machine: !~[image](https://user-images.githubusercontent.com/6527137/31154109-be357218-a859-11e7-9f48-77ec9c8b7374.png)~ ![image](https://user-images.githubusercontent.com/6527137/31422673-36e0d4aa-ae04-11e7-88bc-c067161feb61.png) +24402 area-System.Diagnostics Process.Start() fails when a directory exists in the working directory with the same name as the executable "_From @ahsonkhan on September 29, 2017 2:48_ ## Steps to reproduce 1. Clone corefxlab repo https://github.com/dotnet/corefxlab 2. Run ./build.sh 3. Observe failure to restore pacakges (only on OSX and Ubuntu, package restore works fine on Windows). From: https://github.com/dotnet/corefxlab/pull/1787 https://ci.dot.net/job/dotnet_corefxlab/job/master/job/ubuntu16.04_release_prtest/807/consoleFull#7440085258bb52e59-de52-4f1c-b131-470db4c594cd ```bash echo ""Restoring all packages"" ./$dotnetExePath restore $myFile /p:VersionSuffix=""$BuildVersion"" ret=$? if [ $ret -ne 0 ]; then echo ""Failed to restore packages."" exit -1 fi ``` ## Expected behavior Package restore succeeds on all configurations. Previous CLI version (2.1.0-preview1-007191) was working as expected. ## Actual behavior Package restore failing with System.ComponentModel.Win32Exception. 18:50:13 System.ComponentModel.Win32Exception (0x80004005): The FileName property should not be a directory unless UseShellExecute is set. 18:50:13 at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo) 18:50:13 at System.Diagnostics.Process.Start() 18:50:13 at Microsoft.DotNet.Cli.Utils.ProcessStartInfoExtensions.Execute(ProcessStartInfo startInfo) 18:50:13 at Microsoft.DotNet.Tools.MSBuild.MSBuildForwardingApp.Execute() 18:50:13 at Microsoft.DotNet.Tools.Restore.RestoreCommand.Run(String[] args) 18:50:13 at Microsoft.DotNet.Cli.Program.ProcessArgs(String[] args, ITelemetry telemetryClient) 18:50:13 at Microsoft.DotNet.Cli.Program.Main(String[] args) 18:50:13 ## Environment data dotnet cli version 2.1.0-preview1-007228 _Copied from original issue: dotnet/cli#7726_" +24403 area-Infrastructure sync does not restore all packages during the UAP build /cc @joperezr - The sync step during the UAP legs of the official build do not include all the dependencies upfront. The System.Globalization.Calenders project supports only uap, so during the build of uapaot it causes a restore of uap on runtime.depproj which requires different resources than uapaot. - The optional tooling is brought down only during build. +24404 area-System.Runtime NoGC parameter validations tests failing occasionally on Linux E.g. this: https://ci3.dot.net/job/dotnet_corefx/job/master/job/linux-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_true_prtest/78/ Need to monitor these to see if they are flaky and potentially identify the source of the flakiness. +24405 area-System.Diagnostics EventSource.Redist Nuget Package Create a new Microsoft.Diagnostics.Tracing.EventSource.Redist nuget package targeting net46. The following work items need to be completed before this PR is ready for merge: - [X] Create project and solution file for Microsoft.Diagnostics.Tracing.EventSource.Redist. - [x] Copy the code into CoreFX and make it build. - [X] Produce a nuget package. +24406 area-System.IO Make FileSystemWatcher tests tolerant of spurious/extra events. This changes ExecuteAndVerifyEvents in src/System.IO.FileSystem.Watcher/tests/Utility/FileSystemWatcherTest.cs to use what was previously the OSX behaviour on all platforms. Fixes dotnet/coreclr#14154. +24407 area-System.Net SSLStream Zero Test Coverage for Renegotiate There is a fair amount of complex code inside SSLStream to handle the case of renegotiation, including 1. What happens to partial data inflight 2. What happens to data encrypted with the old key 3. A lot of locking But there is zero testing in the inner or outerloop which makes it possible that during refactoring someone could break it and no one would know until its released. As there is no way to trigger a renegotiation from .net I would say a website on IIS with a client cert required for a certain path in an outerloop test should kick off a renegotiation? /cc @stephentoub, @Priya91 and @geoffkizer ref #24352 +24408 area-System.Collections Proposal for unordered remove API's for List "First time contributor, long time lurker. I have a background in gamedev, and while it might be some time before Unity uses Core I wanted to contribute early! A common pattern in game dev to keep lists of objects of a certain type so they can be quickly iterated over eg to call some Update function. Objects register / deregister when created / destroyed. A direct implementation would be: ```C# void OnCreate() { All.Add(this); } void OnDestroy() { All.Remove(this); } ``` However, when a (part of) the world gets destroyed, lots of objects deregister at once. Each Remove has to move over the backing array. A common way to prevent this additional move is to use a remove with a swap back: ```C# All[index] = All[All.Count - 1]; All.RemoveAt(All.Count - 1); ``` Unreal engine has specific API's for their ""List"" Implementation to do a swap remove: https://docs.unrealengine.com/latest/INT/API/Runtime/Core/Containers/TArray/RemoveAtSwap/index.html I think it could be helpful to introduce the following extension methods: ```C# class ListExtensions { public void RemoveAtUnordered(this List list, int index); public void RemoveUnordered(this List list, T element); public void RemoveAllUnordered(this List list, Predicate match); public void RemoveRangeUnordered(this List list, int index, int count); } ``` Implementing them as extension methods prevents code bloat as lists are instantiated quite often. The naming uses Unordered instead of Swap because I think it communicates the difference vs a normal remove more clearly. **Benchmarks** List of N items. 10% of items are removed at random indices. The Small value type is 16 bytes. The large value type is 64 bytes. **RemoveAt**, Best case scenario if you know the index beforehand: ``` ini BenchmarkDotNet=v0.10.9, OS=Windows 10 Redstone 2 (10.0.15063) Processor=Intel Core i7-4790K CPU 4.00GHz (Haswell), ProcessorCount=8 Frequency=3906249 Hz, Resolution=256.0001 ns, Timer=TSC .NET Core SDK=2.0.0 [Host] : .NET Core 2.0.0 (Framework 4.6.00001.0), 64bit RyuJIT Job-UOEMAQ : .NET Core 2.0.0 (Framework 4.6.00001.0), 64bit RyuJIT InvocationCount=1 LaunchCount=1 TargetCount=100 UnrollFactor=1 WarmupCount=10 ``` | Method | N | Mean | Error | StdDev | Median | |---------------------------- |------ |---------------:|----------------:|----------------:|---------------:| | **RemoveAtRef** | **100** | **829.4 ns** | **44.3143 ns** | **130.6616 ns** | **729.6 ns** | | RemoveAtUnorderedRef | 100 | 384.0 ns | 0.0000 ns | 0.0000 ns | 384.0 ns | | RemoveAtValueSmall | 100 | 691.2 ns | 0.0000 ns | 0.0000 ns | 691.2 ns | | RemoveAtUnorderedValueSmall | 100 | 303.3 ns | 43.8459 ns | 128.5923 ns | 179.2 ns | | RemoveAtValueLarge | 100 | 861.3 ns | 50.4064 ns | 147.0378 ns | 934.4 ns | | RemoveAtUnorderedValueLarge | 100 | 362.5 ns | 44.4507 ns | 130.3661 ns | 460.8 ns | | **RemoveAtRef** | **1000** | **11,229.1 ns** | **234.9079 ns** | **650.9286 ns** | **11,174.4 ns** | | RemoveAtUnorderedRef | 1000 | 1,577.6 ns | 46.0818 ns | 132.9567 ns | 1,689.6 ns | | RemoveAtValueSmall | 1000 | 12,644.7 ns | 287.8187 ns | 811.7978 ns | 12,569.6 ns | | RemoveAtUnorderedValueSmall | 1000 | 1,484.8 ns | 0.0000 ns | 0.0000 ns | 1,484.8 ns | | RemoveAtValueLarge | 1000 | 68,777.9 ns | 1,617.6589 ns | 4,693.1217 ns | 69,004.8 ns | | RemoveAtUnorderedValueLarge | 1000 | 1,984.0 ns | 0.0000 ns | 0.0000 ns | 1,984.0 ns | | **RemoveAtRef** | **10000** | **971,682.6 ns** | **14,307.3651 ns** | **41,050.5125 ns** | **964,288.3 ns** | | RemoveAtUnorderedRef | 10000 | 13,795.2 ns | 84.2591 ns | 230.6580 ns | 13,721.6 ns | | RemoveAtValueSmall | 10000 | 1,888,886.2 ns | 25,194.7093 ns | 71,473.1969 ns | 1,880,000.5 ns | | RemoveAtUnorderedValueSmall | 10000 | 13,050.1 ns | 72.3786 ns | 205.3259 ns | 13,171.2 ns | | RemoveAtValueLarge | 10000 | 9,647,115.0 ns | 126,638.1818 ns | 371,407.8652 ns | 9,617,845.7 ns | | RemoveAtUnorderedValueLarge | 10000 | 16,399.6 ns | 95.6210 ns | 266.5530 ns | 16,268.8 ns | **Remove**, first finding the item: | Method | N | Mean | Error | StdDev | Median | |---------------------------- |------ |---------------:|--------------:|--------------:|---------------:| | **RemoveRef** | **100** | **2.801 us** | **0.1060 us** | **0.3040 us** | **2.701 us** | | RemoveUnorderedRef | 100 | 2.390 us | 0.1167 us | 0.3366 us | 2.483 us | | RemoveValueSmall | 100 | 12.682 us | 0.8923 us | 2.6170 us | 11.917 us | | RemoveUnorderedValueSmall | 100 | 13.222 us | 0.9460 us | 2.7293 us | 12.326 us | | RemoveValueLarge | 100 | 14.382 us | 0.9318 us | 2.6584 us | 13.952 us | | RemoveUnorderedValueLarge | 100 | 13.580 us | 0.8255 us | 2.3419 us | 13.517 us | | **RemoveRef** | **1000** | **179.429 us** | **4.7003 us** | **12.9459 us** | **177.715 us** | | RemoveUnorderedRef | 1000 | 164.773 us | 3.1782 us | 9.0675 us | 163.814 us | | RemoveValueSmall | 1000 | 1,116.633 us | 32.5813 us | 94.5243 us | 1,106.842 us | | RemoveUnorderedValueSmall | 1000 | 1,167.612 us | 30.4712 us | 87.9164 us | 1,163.559 us | | RemoveValueLarge | 1000 | 1,441.630 us | 43.5135 us | 124.8483 us | 1,426.906 us | | RemoveUnorderedValueLarge | 1000 | 1,320.419 us | 35.7561 us | 103.1646 us | 1,309.952 us | | **RemoveRef** | **10000** | **17,427.345 us** | **145.7787 us** | **425.2433 us** | **17,418.411 us** | | RemoveUnorderedRef | 10000 | 16,445.359 us | 173.2089 us | 502.5103 us | 16,380.599 us | | RemoveValueSmall | 10000 | 108,541.970 us | 644.3526 us | 1,848.7683 us | 108,544.937 us | | RemoveUnorderedValueSmall | 10000 | 114,086.368 us | 752.6536 us | 2,171.5778 us | 114,107.856 us | | RemoveValueLarge | 10000 | 137,065.974 us | 1,006.2662 us | 2,951.2045 us | 136,833.469 us | | RemoveUnorderedValueLarge | 10000 | 128,156.691 us | 1,053.0958 us | 3,071.9300 us | 128,141.114 us | **RemoveAll** Here on average 5 random items match the predicate: | Method | N | Mean | Error | StdDev | Median | |----------------------------- |------ |------------:|--------------:|--------------:|------------:| | **RemoveAllRef** | **100** | **704.0 ns** | **0.0000 ns** | **0.0000 ns** | **704.0 ns** | | RemoveAllUnorderedRef | 100 | 550.4 ns | 43.4116 ns | 128.0000 ns | 460.8 ns | | RemoveAllValueSmall | 100 | 517.1 ns | 60.6822 ns | 178.9227 ns | 409.6 ns | | RemoveAllUnorderedValueSmall | 100 | 422.4 ns | 0.0000 ns | 0.0000 ns | 422.4 ns | | RemoveAllValueLarge | 100 | 620.4 ns | 48.4392 ns | 141.2994 ns | 704.0 ns | | RemoveAllUnorderedValueLarge | 100 | 537.6 ns | 45.1315 ns | 133.0713 ns | 652.8 ns | | **RemoveAllRef** | **1000** | **4,515.6 ns** | **148.7692 ns** | **417.1648 ns** | **4,518.4 ns** | | RemoveAllUnorderedRef | 1000 | 2,432.0 ns | 0.0000 ns | 0.0000 ns | 2,432.0 ns | | RemoveAllValueSmall | 1000 | 3,112.5 ns | 66.8587 ns | 193.9693 ns | 3,212.8 ns | | RemoveAllUnorderedValueSmall | 1000 | 2,562.7 ns | 39.1437 ns | 112.9384 ns | 2,496.0 ns | | RemoveAllValueLarge | 1000 | 5,377.5 ns | 133.9996 ns | 364.5558 ns | 5,312.0 ns | | RemoveAllUnorderedValueLarge | 1000 | 4,181.6 ns | 49.1519 ns | 141.0259 ns | 4,262.4 ns | | **RemoveAllRef** | **10000** | **43,763.8 ns** | **1,835.5378 ns** | **4,931.0531 ns** | **44,416.0 ns** | | RemoveAllUnorderedRef | 10000 | 21,523.3 ns | 111.9587 ns | 306.4852 ns | 21,414.4 ns | | RemoveAllValueSmall | 10000 | 42,740.4 ns | 2,502.4247 ns | 7,098.9625 ns | 40,601.6 ns | | RemoveAllUnorderedValueSmall | 10000 | 24,007.6 ns | 243.4599 ns | 674.6261 ns | 23,961.6 ns | | RemoveAllValueLarge | 10000 | 52,489.9 ns | 2,107.8894 ns | 5,805.7396 ns | 52,364.8 ns | | RemoveAllUnorderedValueLarge | 10000 | 38,643.8 ns | 777.8369 ns | 2,116.1625 ns | 37,798.4 ns | Few observations: -If you know the index beforehand, it's O(n) vs O(n^2) so the results are quite dramatic. The larger the stored item the worse the extra memory copy becomes. -RemoveUnordered on ref types is at best ~10% faster than Remove. Do note however that the worst case is hit if the items are added FIFO - as they would be in a common use case in Unity. If they are, the benchmarks look quite similair to the RemoveAt benchmark. An unordered remove guarantees performance is consistent. -RemoveAllUnordered is 10-50% faster in these benchmarks. Project used to generate these benchmarks: [NetCoreDev.zip](https://github.com/dotnet/corefx/files/1356989/NetCoreDev.zip) **Current Workarounds:** Projects use their own extension methods/static helpers to implement this on List **Discussion:** For non high-performance applications having two slightly different ways to remove elements is confusing, and it is not great to have these additional methods show up in intellisense. It could be argued List is just an inherently ordered data type and for unordered data some other structure should be used. The problem is that many other API's want you to pass in a List." +24409 area-System.Memory Passing null to an method that takes a ReadOnlySpan throws, but default(ReadOnlySpan) does not This is because default(ReadOnlySpan) results in a zero-length span, null is treated as a T[] which is implicitly converted to ReadOnlySpan and triggers a [null check](https://github.com/dotnet/corefx/blob/8d212b41126baff94fc025e4438d6f4e8cbff7e9/src/System.Memory/src/System/Span.cs#L32-L33) in the constructor. It's non-intuitive for an implicit operator to throw. It violates the [API design guidelines](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/operator-overloads) as well: >X DO NOT throw exceptions from implicit casts. It is very difficult for end users to understand what is happening, because they might not be aware that a conversion is taking place. /cc @ahsonkhan @KrzysztofCwalina +24410 area-Meta "Port ""not-deprecated"" System.Workflow.Activities.Rules components to .Net Standard components" Issue: The .net rules engine (System.Workflow.Activities.Rules.RuleEngine) is not compatible with .NetStandard 2.0. Proposal: Update the existing code to create the following .NetStandard library components (**removing all deprecated code**) for runtime rules generation, execution, and serialization/deserialization: - System.Workflow.Activities.Rules.dll - System.Workflow.ComponentModel.Serialization.dll - System.ComponentModel.Design.Serialization.dll Also add the following component .NETFramework assembly because it requires WinForms designer for rules management: - DotNetStandard.Workflow.Activities.Rules.Design.dll Please find a working preview solution [here](https://github.com/BlaiseD/WFRulesToNetStandard) The nuget package is [here](https://www.nuget.org/packages/NetStandardPort-System.Workflow.Activities.Rules/4.4.0-preview03) or [here](https://www.nuget.org/packages/NetStandardPort-System.Workflow.Activities.Rules.Design/4.4.0-preview03) if the designer is required. OK to do a PR at https://github.com/dotnet/corefx? Thanks. +24412 area-System.ComponentModel Revert bad PR that was merged to soon See #24064. The checked in fix is wrong because it changes the behavior when .NET Native is being used such that a nonsensical exception will be thrown which would never be thrown when .NET Native is not being used. These kinds of errors are really hard for developers to debug. Instead we will let .NET Native fail in the normal way when rd.xml data is not available. This will direct people to add metadata appropriately when they need to get this to work. +24416 area-System.Runtime Proposal for System.Runtime.CompilerServices.ICastable .NET Core public API We need the System.Runtime.CompilerServices.ICastable for building the CoreCLR version of [System.Private.Interop](https://github.com/dotnet/corert/blob/master/src/System.Private.Interop/src/System.Private.Interop.CoreCLR.csproj). **Current Workarounds:** Today we use a hack by publishing the System.Private.ICastable.dll though myget and consume it from CoreRT. **Discussion:** The ideal solution would be to expose it as a public .NET Core API possibly in System.Runtime.InteropServices.dll +24417 area-System.Data "OdbcParameter error: ""Data type 0x23 is a deprecated large object, or LOB, but is marked as output parameter.""" "Customer reported a bug for error in `OdbcParameter`. Customer was trying to get a `VARCHAR(8000)` type return value (output) from SQL Server stored procedure by `OdbcCommand`, and got exception thrown with error message: ``` [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Invalid parameter 2 (''): Data type 0x23 is a deprecated large object, or LOB, but is marked as output parameter. Deprecated types are not supported as output parameters. Use current large object types instead. ``` Customer was not able to receive any string output longer than 3,999 characters from the stored procedure. ``` OdbcCommand command = new OdbcCommand(sql, con, trn); command.Parameters.Clear(); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(""@v1"", OdbcType.VarChar, 8000); //Input //Output. The error will not occur when 4000 is 3999. command.Parameters.Add(""@v2"", OdbcType.VarChar, 4000); command.Parameters.Add(""@v3"", OdbcType.Int); command.Parameters.Add(""@v4"", OdbcType.Int); command.Parameters[""@v1""].Direction = ParameterDirection.Input; command.Parameters[""@v2""].Direction = ParameterDirection.Output; ``` ``` CREATE PROCEDURE testCSProc1 ( @v1 VARCHAR(8000), @v2 VARCHAR(8000) OUT, @v3 INTEGER OUT, @v4 INTEGER OUT ) AS BEGIN SET @v2 = @v1 + @v1; SET @v3 = datalength(@v1); SET @v4 = datalength(@v2); END; GO ```" +24420 area-System.Net WinRT WebSocket ignores Set-Cookie header in handshake response The issues affects UWP implementation of `ClientWebSocket`. Cookie is set in request, but never read from response. So calling `clientWebSocket.Options.Cookies.GetCookieHeader(uri)` return empty string regardless of Set-Cookie header present in handshake response. +24422 area-System.Net Executing [NetworkInterface.GetAllNetworkInterfaces()] in AWS throws FileNotFoundException "**Problem** The method `NetworkInterface.GetAllNetworkInterfaces()` throws always a `FileNotFoundException` if executed in an AWS Lambda environment. **Analysis** This function: using System.Net.NetworkInformation; [assembly: Amazon.Lambda.Core.LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] namespace CheckerLambda { public class Function { public string FunctionHandler(Amazon.Lambda.Core.ILambdaContext context) { // Here we get an ""System.IO.FileNotFoundException: Could not find file '/sys/class/net/lo/mtu'."" var adapters = NetworkInterface.GetAllNetworkInterfaces(); // do something with 'adapters' return ""This point is never reached""; } } } Leads to this exception if executed in an AWS Lambda environment. Unhandled Exception: System.IO.FileNotFoundException: Could not find file '/sys/class/net/lo/mtu'. 2017-47-04 15:47:21: at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter) 2017-47-04 15:47:21: at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func`2 errorRewriter) 2017-47-04 15:47:21: at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode) 2017-47-04 15:47:21: at System.IO.UnixFileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) 2017-47-04 15:47:21: at System.IO.UnixFileSystem.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, FileStream parent) 2017-47-04 15:47:21: at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) 2017-47-04 15:47:21: at System.IO.File.InternalReadAllText(String path, Encoding encoding) 2017-47-04 15:47:21: at System.Net.NetworkInformation.StringParsingHelpers.ParseRawIntFile(String filePath) 2017-47-04 15:47:21: at System.Net.NetworkInformation.LinuxIPv4InterfaceProperties..ctor(LinuxNetworkInterface linuxNetworkInterface) 2017-47-04 15:47:21: at System.Net.NetworkInformation.LinuxIPInterfaceProperties..ctor(LinuxNetworkInterface lni) 2017-47-04 15:47:21: at System.Net.NetworkInformation.LinuxNetworkInterface..ctor(String name) 2017-47-04 15:47:21: at System.Net.NetworkInformation.LinuxNetworkInterface.GetOrCreate(Dictionary`2 interfaces, String name) 2017-47-04 15:47:21: at System.Net.NetworkInformation.LinuxNetworkInterface.<>c__DisplayClass5_0.b__2(String name, LinkLayerAddressInfo* llAddr) 2017-47-04 15:47:21: at Interop.Sys.EnumerateInterfaceAddresses(IPv4AddressDiscoveredCallback ipv4Found, IPv6AddressDiscoveredCallback ipv6Found, LinkLayerAddressDiscoveredCallback linkLayerFound) 2017-47-04 15:47:21: at System.Net.NetworkInformation.LinuxNetworkInterface.GetLinuxNetworkInterfaces() 2017-47-04 15:47:21: at CheckerLambda.Function.FunctionHandler(ILambdaContext context) 2017-47-04 15:47:21: at lambda_method(Closure , Stream , Stream , ContextInfo ) Any idea what to do? It could be related to https://github.com/dotnet/corefx/issues/12969 " +24423 area-Infrastructure Fix init-tools.sh for Alpine Linux The URL used to get the dotnet sdk for Alpine was accidentally left unchanged when the URL for other targets was modified. I have fixed that and also unified the creation of the dotnet-sdk-XXX part of the URL for all platforms. +24424 area-System.Runtime Bring back exception serialization support We see strong customer demand for being able to serialize Exceptions with BinaryFormatter or DCS. The following actions are required: - [x] Make coreclr exception types serializable, add typeforwards and bring back serialization implementation (https://github.com/dotnet/coreclr/pull/14311) - [x] Mirror in corert - [x] Make corefx exception types serializable, add typeforwards and bring back serialization implementation (https://github.com/dotnet/corefx/pull/24427) - [x] Add typeforwards for internal types (https://github.com/dotnet/corefx/pull/24427) - [x] Add tests in System.Runtime.Serialization.Formatters.Tests - [x] Port to release branches - [x] Update docs cc @jkotas @stephentoub @danmosemsft +24425 area-System.Text Current Regex cache structure is ineffecient and inflexible For larger cache lanes the current Cache structure isn't optimized as its operates with O(n). We see internal demand to optimize the current structure to me more flexible for both - small and large cache length - cases. Furthermore the current cache stores only parts of the instantiated Regex object. There might be some value in investigating if whole Regex objects can be stored in it to reduce GC pressure when using static Regex methods in a loop. The timeout instance field could be problematic as it does not change the Regex Tree but is stored in the instance --> reusing. cc @vancem @danmosemsft +24426 area-System.Memory Rename MemoryHandle.PinnedPointer to Pointer +24427 area-System.Runtime Make corefx exceptions serializable and add typeforwards Related: https://github.com/dotnet/corefx/issues/24424 Exceptions that are partially supported: - LicenseException - ReflectionTypeLoadException - SecurityException - SqlException Exceptions that aren't supported: - XamlParseException - InvalidPrinterException - XPathCompileException - CryptoSignedXmlRecursionException - ElementNotAvailableException - ElementNotEnabledException +24429 area-System.Net Plumb Memory into Socket's implementation https://github.com/dotnet/corefx/issues/22608 adds public API to Socket types that work with `{ReadOnly}Memory`. We can expose the API without plumbing these types into the core of the implementation, but plumbing it through adds a lot of value, in particular for instances that wrap things other than arrays. This issue represents doing the latter so that #22608 can just be for the first part. +24430 area-System.Net Plumb cancellation into Socket's implementation #22608 adds public API to Socket types that accept CancellationToken. We can implement the APIs to just do an upfront check, but the real value is when cancellation is plumbed through to support canceling the actual I/O. This issue represents doing that work. +24431 area-System.Net Add Memory-based APIs to Sockets and NetworkStream Fixes https://github.com/dotnet/corefx/issues/22387 Fixes https://github.com/dotnet/corefx/issues/22608 @geoffkizer, I separated https://github.com/dotnet/corefx/issues/24429 out into a separate issue to avoid colliding with the changes you're making in the guts of Socket. These changes stop just below the surface of SocketAsyncEventArgs; once your changes go in, we can then push the use of `Memory` further down, whereas these changes just extract the array from it (and throw for now if there is no array). cc: @geoffkizer, @Priya91, @wfurt, @davidsh, @KrzysztofCwalina, @ahsonkhan +24435 area-System.Net Linux HttpClient doesn't send request body when it receives an early response "Thanks to @markvincze for reporting this issue at https://github.com/aspnet/KestrelHttpServer/issues/2095. He made a solid repro app here: https://github.com/markvincze/KestrelRequestTimeout > @markvincze Thanks for the awesome repro. It made it very easy to track down the issue. I captured a network trace using wireshark, and it looks like there is a bug in the Linux HttpClient. > > In your repro, Kestrel is sending a 200 response without sending a ""HTTP/1.1 100 Continue"" response or waiting for the first request body to even start uploading. This itself is not a bug, but this is what triggers the HttpClient issue. > > At this point, HttpClient should either upload the first request body before reusing the TCP connection for new requests or simply close the TCP connection. Instead, HttpClient on Linux is attempting to immediately send the following request without ever sending the 7000 byte response body for the first request. > > Kestrel interprets this ""new request"" as the body of the first request. The bytes and the very end of the the ""new request"" are interpreted as the beginning (i.e. start line) of the second request. Since Kestrel never technically receives a complete second request, it eventually times out and sends a 408 response. > > ![image](https://user-images.githubusercontent.com/54385/31205225-0a2da638-a925-11e7-925c-079039d83aa5.png) https://github.com/aspnet/KestrelHttpServer/issues/2095#issuecomment-334322361" +24439 area-System.Net System.Uri handles '%' characters in local path incorrectly "@agr reported this issue here: https://github.com/dotnet/core/issues/1004 .NET Core 2.0, Windows 10: ``` using System; namespace uri_from_path_test { class Program { static void Main(string[] args) { var uri = new Uri(@""e:\%41foo%20bar%25.baz""); Console.WriteLine(""{0} {1}"", uri.AbsoluteUri, uri.LocalPath); } } } ``` produces the following output: ``` file:///e:/Afoo%20bar%2525.baz e:\Afoo bar%25.baz ``` while the expected output would be: ``` file:///e:/%2541foo%2520bar%2525.baz e:\%41foo%20bar%25.baz ```" +24440 area-System.ComponentModel DisplayFormatAttribute not used while rendering control "@johanskoldekrans opened this issue here: https://github.com/dotnet/core/issues/1000 We have two datecontrols (startdate and enddate) that we used the attribute DisplayFormatAttriute with a DataFormatString(""{0:d}"") as well as ApplyFormatInEditMode = true. This was rendered as an input with type date in the past but now is rendered as a datetime-local input. So the user has to enter the time as well. Code from View: ```
Från
Till
``` Code From Class (ViewModel): ``` [Required] [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = ""{0:d}"")] public DateTime StartDate { get; set; } [Required] [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = ""{0:d}"")] public DateTime EndDate { get; set; } ``` Usings in the ViewModel: ``` using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; ``` Have you changed the behaviour for this? Using: VS 2017 15.3.5 .Net Core 2.0.0 " +24441 area-System.Runtime ArraySegment null check is throwing ArgumentNullException @serkantkaraca reported this issue here: https://github.com/dotnet/core/issues/994 SDK 2.0 breaks null check on type value contract for ArraySegment. var arraySegment = new ArraySegment(new byte[10]); // This throws as below. Should be False as per C# spec. Works on 4.6.2 var isNull = arraySegment == null; System.ArgumentNullException occurred HResult=0x80004003 Message=Value cannot be null. Source= StackTrace: at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument) at System.ArraySegment`1.op_Implicit(T[] array) at ConsoleApp.Program.Main(String[] args) in +24442 area-System.Net SocketTaskExtensions as instance methods In #22608, we agreed to add two new async socket methods, ReceiveAsync and SendAsync, that work with Memory instead of ArraySegment. The existing ArraySegment-based methods were added as extension methods, and thus we added the new methods as extensions, too. Feedback was provided that these would be better as instance methods. However, we can't just add the new overloads as instance methods; we would also need to add the existing signatures as instance methods, effectively obsoleting the extensions. That's because of how the C# compiler binding works; once it finds an appropriate instance method, it'll no longer consider extension methods, and so the new methods as instance methods can result in compilation errors for existing uses of the existing extensions: an array segment can be implicitly converted to a memory, so it can use the new APIs, but then there will be a different return type (`ValueTask` instead of `Task`), and any usage of that return type other than `await` can fail to compile. Thus code like `Task t = s.ReceiveAsync(arraySegment, socketFlags);` will now fail to compile due to trying to convert a `ValueTask` to `Task`. So, two choices: 1. Leave the new methods as extensions. 2. Make the new methods be instance methods, and also add corresponding instance methods for the existing extensions. We need to make and address this for 2.1; otherwise we'll implicitly do (1), since that's what's in https://github.com/dotnet/corefx/pull/24431. +24443 area-System.Threading Please add Task continuation function with async await "`Task` class was made before async/await syntax so I understand why there are `ContinueWith` function exist. But now I think we should have the same function in async/await syntax Currently now I write extension method for it like this ```C# public static async Task Then(this Task task,Func func) { return func(await task); } public static async Task ThenAsync(this Task task,Func> func) { return await func(await task); } //usage Task taskInt; var result = await taskInt.Then(async(i) => await HttpGet(url + ""/"" + i)); ``` I don't know what it should be named but please add this to BCL" +24444 area-System.Runtime Recommended way of exposing C++ data and interfaces to .NET core Since there is no C++/CLI, what is the recommended way of exposing C++ data and interfaces to .NET core? Is it C style functions and P/Invoke (for cross platform apps, how would you reference different dynamic library names)? Some kind of (inter-process) communication? +24445 area-System.Collections Add Dictionary.Capacity to let you resize map after created [edited by @danmosemsft to put into review format] ## Latest Proposal See https://github.com/dotnet/corefx/issues/24445#issuecomment-352869027 ```c# public partial class Dictionary : ... { // Makes sure that capacity is at least that capacity, ie, the dictionary can accept this many items without resizing its internal data structures public int EnsureCapacity(int capacity); public void TrimExcess(); // Calls the other passing Count public void TrimExcess(int capacity); } ``` ## Issue While I can set the initial capability of a dictionary when it's created, I cannot resize it after it's created. Please add `Dictionary.Capacity` property or an `EnsureCapacity` method so that that you can. ## Rationale MSBuild, are resizing multiple times during Add that they cannot avoid without recreating the dictionary: https://github.com/Microsoft/msbuild/issues/2587. Another case came up in an Azure service profile today, where a dictionary was being copied into another dictionary which had already been constructed and resize CPU and allocation cost was high. ## Proposal (old) ```c# public partial class Dictionary : ... { public Dictionary(int capacity) { } // existing constructor public int Capacity { get { } set { } } } ``` The name `Capacity` is chosen to match the parameter name of the existing constructor. Setting Capacity to `value` causes the Dictionary to ensure it can have up to `value` elements without resizing. Behind the scenes if `value` is less than the existing capacity it calls Resize to increase the backing storage to the smallest Prime that is not less than the requested `value`. The getter is probably not terribly useful (debugging?) but a setter without a getter is strange. ## Discussion Implementation of this looks like it will be straightforward, not significantly increase the instantiated size of Dictionary's, and not affect code paths that do not call it. The resizing codepath obviously already exists, although right now it is never given a desired size: it starts with doubling. +24447 area-System.Threading Current CancellationToken? "What about to add sort of ""CancellationToken.Current"" which would pass token automatically? In case of [the passed point of no cancellation](https://blogs.msdn.microsoft.com/andrewarnottms/2014/03/19/recommended-patterns-for-cancellationtoken/), CancellationToken will be set to ""CancellationDenied"". So that developers do not have to pass it manually. (Maybe the question has been already answered somewhere, however I am unable to find it.)" +24449 area-System.Runtime Add DateTime.UnixEpoch and DateTimeOffset.UnixEpoch fields Occasionally I come across a point in my code where it'd be useful to have a `DateTime.UnixEpoch` field as opposed to specifying my own with `new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)`. Usually this is when I'm calculating expiration dates for web tokens where the expiration property is the number of seconds since the Unix epoch (see https://en.wikipedia.org/wiki/Unix_time for definition). ## Proposed API ```diff namespace System { public struct DateTime { + public static readonly DateTime UnixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); } public struct DateTimeOffset { + public static readonly DateTimeOffset UnixEpoch = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero); } } ``` ## Example Usage ```c# public class TokenIntrospectionResponse { public int ExpirationInSeconds { get => (int)((ExpirationUtc - DateTime.UnixEpoch).TotalSeconds); set => ExpirationUtc = DateTime.UnixEpoch.AddSeconds(value); } public DateTime ExpirationUtc { get; set; } } ``` +24452 area-Infrastructure [release/1.1.0] Backport PreferInbox=true to dead-end packages Many of our packages are no longer produced in 2.0.0 because they were absorbed into .NETStandard. As a result, there is no new version of those packages with fixes that were only put into the 2.0 codebase. One example of such a change is https://github.com/dotnet/corefx/pull/18307 (issue https://github.com/dotnet/corefx/issues/15112). There may be others. We should backport these changes if they apply to any package that we're no longer shipping in 2.0 so that folks get the changes. When backporting we should also make sure to ship the complete set of packages impacted. +24453 area-System.Net Removed obsolete System.Net.Http NETFX related files "Due to PR #23611, the master branch no longer builds a NETFX binary for System.Net.Http. Instead this is now handled only in the release/2.0.0 branch as part of the ""NETStandard support package"". This effectively means that we have already stopped OOB'ing System.Net.Http on .NET Framework platforms as of .NET 4.7.1 since that version of .NET Framework supports all NETStandard2.0 APIs. And .NET Framework versions prior to that (4.6.x, etc.) are handled with the OOB System.Net.Http.dll that is part of the NETStandard support package." +24454 area-System.Net SslStream not working with ephemeral keys This issue was opened as result of the discussion in issue #19888. I have a .net core 2.0 application which hosts a service and secures it via SSL. My key material is a a key pair where I have the certificate and the private keys in two files. So I load the cert and the keys from disk and use the X509Certificate2.CopyWithPrivateKey method to construct a certificate with a private key. That works as it should. However, if I pass this certificate to an SslStream via SslStream.AuthenticateAsServer, I get this error: ``` System.ComponentModel.Win32Exception (0x80004005): No credentials are available in the security package at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) at System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint) at System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) at System.Net.Security.SecureChannel.NextMessage(Byte[] incoming, Int32 offset, Int32 count) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.Security.SslStream.BeginAuthenticateAsServer(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation, AsyncCallback asyncCallback, Object asyncState) at System.Net.Security.SslStream.<>c__DisplayClass35_0.b__0(AsyncCallback callback, Object state) at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions) at System.Threading.Tasks.TaskFactory.FromAsync(Func`3 beginMethod, Action`1 endMethod, Object state) at System.Net.Security.SslStream.AuthenticateAsServerAsync(X509Certificate serverCertificate, Boolean clientCertificateRequired, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation) ``` @bartonjs suggested that the SslStream on Windows might not support certificates with an ephemeral key, so this might be the issue here. Everything works fine on Linux. +24455 area-System.Net [release/2.0.0] Disable System.Net.Http tests due to #7812 Porting the same logic from master branch to disable these tests on systems that don't have the fix to SCHANNEL regarding DHE cipher suites. Addresses #23822 +24457 area-System.IO System.IO.Packaging part stream has a memory leak when writing a large stream "This was found through the DocumentFormat.OpenXML library which uses System.IO.Packaging extensively (original issue: https://github.com/OfficeDev/Open-XML-SDK/issues/244). The issue logged there is trying to generate a large Excel document which uses a working set of around 10mb on .NET 4.7, while it grows quite quickly until hitting a OutOfMemoryException. I've simplified the issue to remove the dependency on DocumentFormat.OpenXML and it appears to be isolated to writing to a `Part` within a `Package`. ### Source ```csharp using System; using System.IO; using System.IO.Packaging; namespace MemoryRepro { class Program { static void Main(string[] args) { using (var fs = new FileStream(Path.GetTempFileName(), FileMode.Create, FileAccess.ReadWrite)) using (var package = Package.Open(fs, FileMode.Create)) { var part = package.CreatePart(new Uri(""/part"", UriKind.Relative), ""something/sometype""); using (var stream = part.GetStream()) using (var writer = new StreamWriter(stream)) { for (var i = 0; i < int.MaxValue; i++) { writer.Write(""hello""); } } } } } } ``` ### Project ```xml Exe net47 ``` This repro code appears to have a working set of around 60mb running on .NET 4.7, while it grows very quickly on .NET Core 2.0 The error on .NET Core 2.0 is: ``` Unhandled Exception: System.IO.IOException: Stream was too long. at System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count) at System.IO.Compression.WrappedStream.Write(Byte[] buffer, Int32 offset, Int32 count) at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder) at System.IO.StreamWriter.Write(String value) at MemoryRepro.Program.Main(String[] args) in c:\users\tasou\source\repos\MemoryRepro\MemoryRepro\Program.cs:line 21 ``` " +24462 area-System.Security Different exceptions being throw in Unix and OSX in HashProviderDispenser I didn't check if that is also the case for other locations but we have different exceptions between OSX and Unix for the same issue: https://github.com/dotnet/corefx/blob/b6ef0f1458bbbb43465eaef04ca396e192ff19ed/src/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/HashProviderDispenser.OSX.cs#L30 https://github.com/dotnet/corefx/blob/b6ef0f1458bbbb43465eaef04ca396e192ff19ed/src/System.Security.Cryptography.Algorithms/src/Internal/Cryptography/HashProviderDispenser.Unix.cs#L30 +24463 area-Infrastructure Update CentOS 6 and 7 docker images The images now contain clang 3.9 with PGO support +24464 area-System.Drawing Give a meaningful exception message when FunctionWrapper targets are not successfully loaded. @danmosemsft This should fix the issue you just brought up to me. If libgdiplus is missing, the exception should now include this message: `Unable to load DLL 'libgdiplus': The specified module could not be found.` @safern It's a big diff, but I've just added an extra parameter to all of the function wrapper calls, so that the exception message can include the name of the library being wrapped. +24466 area-System.Runtime Add tests for randomized hashing We need tests that randomized string hashing is working correctly on all platforms. One minimal test would be to launch a child process, and check that some string's GetHashCode() gives a different result than it does in the test's own process (maybe with a retry in case of 4 billion : 1 bad luck) https://github.com/dotnet/coreclr/blob/da8b7181dbe362fbfe64c7ef72ff3a4a7db68f24/src/mscorlib/src/System/String.Comparison.cs#L971 Ideally we would also test that Dictionary resorts to randomized hash codes when it's hitting a lot of collisions. This is hard to test without somehow generating a lot of strings that collide with the non randomized hash code. I suggest using reflection to force `HashHelpers.HashCollisionThreshold` to zero and then check that Comparer on the dictionary changes to the standard EqualityComparer.Default. https://github.com/dotnet/coreclr/blob/da8b7181dbe362fbfe64c7ef72ff3a4a7db68f24/src/mscorlib/src/System/Collections/Generic/Dictionary.cs#L454 Dictionary is the only collection that specially uses non randomized string hashcodes. All others just get the regular string randomized one. +24467 area-Infrastructure initial Freebsd support. This also add System.Diagnostic.Process so test can run. +24469 area-System.Net [release/2.0.0] Port missing System.Net.Http NETFX fixes Issue #23702 showed some Http test failures on NETFX. This was because PRs, #21325 and #21373 are missing from the release/2.0.0 branch. These fixes are needed for the OOB System.Net.Http.dll that is being built for the NETStandard Support Package. This package is used when NETStandard is targeted and the platform is NETFX but less than .NET 4.7.1. +24470 area-System.Runtime Expose/test DateTime{Offset}'s Span-based {Try}Parse{Exact} and TryFormat methods Depends on https://github.com/dotnet/coreclr/pull/14352 Fixes https://github.com/dotnet/corefx/issues/22358 cc: @tarekgh, @AlexGhiondea, @joperezr +24472 area-System.Net "HttpClient post request throws exception ""Couldn't connect to server"" in ubuntu server" "The deployment I'm doing in ubuntu server in pair of Kestrel, Nginx e.t.c. All the steps from this documentation: https://docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction?tabs=aspnetcore2x **Ubuntu information:** Distributor ID: Ubuntu Description: Ubuntu 16.04.3 LTS Release: 16.04 Codename: xenial So, the problem as I see from the stack trace is exactly on the HttpClient initialization .cs line 34 > Oct 06 05:43:12 smsassist smsassistservice[21050]: at SmsAssistKitchen.Managers.AccountManager.d__2.MoveNext() in D:\Startup projects\smsassistservice\SmsAssistKitchen\SmsAssistKitchen\Managers\AccountManager.cs:line 34 **Full stack trace:** > -- Logs begin at Thu 2017-10-05 11:34:12 UTC. -- > Oct 06 05:43:12 smsassist smsassistservice[21050]: at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() > Oct 06 05:43:12 smsassist smsassistservice[21050]: at System.Net.Http.HttpClient.d__58.MoveNext() > Oct 06 05:43:12 smsassist smsassistservice[21050]: --- End of stack trace from previous location where exception was thrown --- > Oct 06 05:43:12 smsassist smsassistservice[21050]: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() > Oct 06 05:43:12 smsassist smsassistservice[21050]: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) > Oct 06 05:43:12 smsassist smsassistservice[21050]: at SmsAssistKitchen.Managers.AccountManager.d__2.MoveNext() in D:\Startup projects\smsassistservice\SmsAssistKitchen\SmsAssistKitchen\Managers\AccountManager.cs:line 34 > Oct 06 05:43:12 smsassist smsassistservice[21050]: --- End of stack trace from previous location where exception was thrown --- > Oct 06 05:43:12 smsassist smsassistservice[21050]: at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() > Oct 06 05:43:12 smsassist smsassistservice[21050]: at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) > Oct 06 05:43:12 smsassist smsassistservice[21050]: at SmsAssistKitchen.Controllers.AccountController.d__5.MoveNext() in D:\Startup projects\smsassistservice\SmsAssistKitchen\SmsAssistKitchen\Controllers\AccountController.cs:line 129 > **Here is example how I'm doing the request**: This static method is placed in static class so called AccountManager and this method is doing post request to another service to register an account. This method is invoked from the post async controller you can see it a little below ``` public static async Task RegisterAsync(AccountModel account) { using (var httpClient = new HttpClient()) { var jsonEntity = JsonConvert.SerializeObject(account); var content = new StringContent(jsonEntity, Encoding.UTF8); content.Headers.ContentType = new MediaTypeHeaderValue(""application/json""); var response = await httpClient.PostAsync(""http://127.0.0.1:8080/account/register"", content); return response; } } ``` ``` [HttpPost] public async Task Register(AccountModel account) { try { logger.LogDebug(""ModelState is valid? {0}"", ModelState.IsValid); if (!ModelState.IsValid) { logger.LogDebug(""Going to response with a json result""); Response.StatusCode = (int)HttpStatusCode.Conflict; var jsonResult = new JsonResult(JsonConvert.SerializeObject(new RegistrationResponseModel { Message = ""Model state is invalid"" })); logger.LogDebug(""Json result with serialized object. {0}"", jsonResult.Value); return jsonResult; } logger.LogDebug(""Going to register new account {0}"", account.Email); var responseMessage = await AccountManager.RegisterAsync(logger, account); logger.LogDebug(""Response for account registration is: ""); logger.LogDebug(""StatusCode: {0}"", responseMessage.StatusCode.ToString()); logger.LogDebug(""ReasonPhrase: {0}"", responseMessage.ReasonPhrase); logger.LogDebug(""IsSuccessStatusCode: {0}"", responseMessage.IsSuccessStatusCode); switch (responseMessage.StatusCode) { case HttpStatusCode.OK: { var content = await responseMessage.Content.ReadAsStringAsync(); var responseModel = JsonConvert.DeserializeObject(content); HttpContext.Session.Set(""access.token"", Encoding.UTF8.GetBytes(responseModel.AccessToken.TokenString)); Response.StatusCode = (int)HttpStatusCode.OK; var jsonResult = new JsonResult(JsonConvert.SerializeObject(new RegistrationResponseModel { Message = responseModel.Message, AccessToken = responseModel.AccessToken })); return jsonResult; } case HttpStatusCode.Conflict: { var content = await responseMessage.Content.ReadAsStringAsync(); var responseModel = JsonConvert.DeserializeObject(content); Response.StatusCode = (int)HttpStatusCode.Conflict; var jsonResult = new JsonResult(JsonConvert.SerializeObject(new RegistrationResponseModel { Message = responseModel.Message, AccessToken = responseModel.AccessToken })); return jsonResult; } default: { var content = await responseMessage.Content.ReadAsStringAsync(); var responseModel = JsonConvert.DeserializeObject(content); Response.StatusCode = (int)HttpStatusCode.InternalServerError; var jsonResult = new JsonResult(JsonConvert.SerializeObject(new RegistrationResponseModel { Message = responseModel.Message, AccessToken = responseModel.AccessToken })); return jsonResult; } } } catch (Exception e) { logger.LogError(""Was thrown an exception {0}"", e.ToString()); logger.LogDebug(""Going to response with a json result""); Response.StatusCode = (int)HttpStatusCode.InternalServerError; var jsonResult = new JsonResult(JsonConvert.SerializeObject(new RegistrationResponseModel { Message = e.Message, AccessToken = null })); logger.LogDebug(""Json result with serialized object. {0}"", jsonResult.Value); return jsonResult; } } ``` " +24473 area-System.Runtime Serialization error in .net core 2.0, same code was working in .net core 1.1 "@chintan3100 commented on [Mon Sep 11 2017](https://github.com/dotnet/core/issues/959) public class CustomClass { [Required] public System.Guid? clientId { get; set; } } `""\""bb2f3da7-bf79-4d14-9d54-0a1f7ff5f902\""""` system.argumentexception Could not cast or convert from System.String to System.Guid. newtonsoft.json at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id) --- @chintan3100 commented on [Mon Sep 11 2017](https://github.com/dotnet/core/issues/959#issuecomment-328666671) I can not change client call who calling API with `""\""bb2f3da7-bf79-4d14-9d54-0a1f7ff5f902\""""`. Client has code freeze. --- @chintan3100 commented on [Tue Sep 12 2017](https://github.com/dotnet/core/issues/959#issuecomment-328758137) Hi .net core 1.1 : When we return string from api it like ""bb2f3da7-bf79-4d14-9d54-0a1f7ff5f902"" .net core 2.0 `""\""bb2f3da7-bf79-4d14-9d54-0a1f7ff5f902\""""` --- @Petermarcu commented on [Tue Sep 12 2017](https://github.com/dotnet/core/issues/959#issuecomment-328893753) @ViktorHofer @danmosemsft can you take a look? --- @ViktorHofer commented on [Tue Sep 12 2017](https://github.com/dotnet/core/issues/959#issuecomment-328913996) @chintan3100 I spent some time trying to reproduce your issue but I don't have enough information to understand what's going on here. Please post a small reproduction code. I don't know which APIs you are using (even it they aren't .NET Core related but Json.NET). --- @Petermarcu commented on [Fri Oct 06 2017](https://github.com/dotnet/core/issues/959#issuecomment-334623526) @ViktorHofer can you move this issue over to dotnet/corefx to track it? " +24474 area-System.Runtime Expose/test Span-based Convert methods Depends on https://github.com/dotnet/coreclr/pull/14358 Fixes https://github.com/dotnet/corefx/issues/22417 cc: @AlexGhiondea, @joperezr +24475 area-System.Net Proposal: SmtpClient.SendMailAsync overload with cancellation ## Problem Right now there's a `SendAsyncCancel` method which is used to cancel the event-based pre-TPL `SendAsync`. `SendMailAsync` is implemented as a wrapper around `SendAsync` ([code](https://github.com/dotnet/corefx/blob/e6084de42bbef119027a8ac4eb7a60789b153b51/src/System.Net.Mail/src/System/Net/Mail/SmtpClient.cs#L782-L805)) but for some reason neglects to take and apply the customary cancellation token. This means people who want cancellation currently need to add a using statement: ```cs using (cancellationToken.Register(smtpClient.SendAsyncCancel)) { await smtpClient.SendMailAsync(message); } ``` Extension method for convenience, in case you want to operate on the original Task without wrapping in an async state machine: ```cs public static Task SendMailAsync(this SmtpClient client, MailMessage message, CancellationToken cancellationToken) { if (client == null) throw new ArgumentNullException(nameof(client)); if (message == null) throw new ArgumentNullException(nameof(message)); var cancellationRegistration = cancellationToken.Register(client.SendAsyncCancel); var task = client.SendMailAsync(message); task.ConfigureAwait(false).GetAwaiter().OnCompleted(cancellationRegistration.Dispose); return task; } ``` The difficulty is that there's no guarantee that `SendMailAsync` will continue to be implemented in terms of `SendAsync` under the covers and that `SendAsyncCancel` will have any effect. Rather than an extension method, it's more future-proof to bring the responsibility of this coupling much closer to where it belongs: as a detail inside the implementation of `SmtpClient`. ## Proposal I propose adding these two overloads, copies of the existing overloads but appending a `CancellationToken` parameter: ```diff class System.Net.Mail.SmtpClient { public Task SendMailAsync(string from, string recipients, string subject, string body) + public Task SendMailAsync(string from, string recipients, string subject, string body, CancellationToken cancellationToken) public Task SendMailAsync(MailMessage message) + public Task SendMailAsync(MailMessage message, CancellationToken cancellationToken) } ``` Implementation would likely be straightforward, with the non-cancellable overloads delegating to the cancellable ones and the `SendCompletedEventHandler` disposing the cancellation registration. +24477 area-System.Net .Net WebClient.DownloadData api result in different behavior in some kind of project @treeicnliu commented on [Sat May 27 2017](https://github.com/dotnet/core/issues/664) I got different http packages by fiddler4 when i call the same fucntion WebClient.DownloadData(string uri) api with the same param uri on web proj and console proj. I found that webclient will auto decode uri in web proj,and keep the origin uri in console proj. is it a .net issue ? The uri below can't access,but it can be used for test http://objstore.qa.nt.ctripcorp.com/smartemailstorage/2017%5C4%5C6%5Cf809530b-0ded-49b4-8532-002c7ad73b41%5C%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4Java%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C.pdf?AWSAccessKeyId=D1NNJCXLEF0O7JIB2U3L&Expires=1511426288&Signature=iJjQCreO6F7avac86Tg2S4e4Miw%3D --- @karelz commented on [Sun Jun 11 2017](https://github.com/dotnet/core/issues/664#issuecomment-307703162) Do both of your projects use the same .NET Core 2.0-preview1 version? The class is in `System.Net` namespace, if you still have troubles, please file it in CoreFX repo. --- @richlander commented on [Sat Jul 01 2017](https://github.com/dotnet/core/issues/664#issuecomment-312471536) @treeicnliu can you share the before and after of the return value in both cases. Can you share how this property is set in both cases? https://docs.microsoft.com/en-us/dotnet/api/system.net.webclient.encoding?view=netcore-2.0#System_Net_WebClient_Encoding --- @richlander commented on [Mon Jul 03 2017](https://github.com/dotnet/core/issues/664#issuecomment-312734798) @treeicnliu can you share a repro? I'm not quite sure what to test based on your description. --- @treeicnliu commented on [Fri Aug 11 2017](https://github.com/dotnet/core/issues/664#issuecomment-321776665) [test.docx](https://github.com/dotnet/core/files/1217516/test.docx) @richlander , i want to dowdload data from the url(with fixed signature) in .net web proj ,it doesn't work since the url has changed(broke the signature),but worked in console proj. see the file test.docx i uploaded. btw, both proj based on .net 4 framework. +24478 area-System.Drawing The type initializer for 'System.Drawing.KnownColors' threw an exception @lianggx commented on [Mon Apr 17 2017](https://github.com/dotnet/core/issues/594) debian.8.x.x64 if you throw The type initializer for 'System.Drawing.KnownColors' threw an exception to do:apt-get install libgdiplus I hope some one can fix it! --- @richlander commented on [Mon Jul 03 2017](https://github.com/dotnet/core/issues/594#issuecomment-312744247) @lianggx can you share a sample? --- @MeetOct commented on [Mon Jul 24 2017](https://github.com/dotnet/core/issues/594#issuecomment-317357160) i found this in docker images(microsoft/dotnet:1.1.2-runtime) when i used EPPlus.Core ``` The type initializer for 'System.Drawing.KnownColors' threw an exception. at System.Drawing.KnownColors.FromKnownColor(KnownColor kc) at System.Drawing.Color.get_White() ``` +24480 area-System.Data Toooooo slow interacting with MS sql server under Ubuntu 16.04 (both using EF or SQLDataReader) "@gorsand commented on [Fri Aug 11 2017](https://github.com/dotnet/core/issues/802) # Issue Title Toooooo slow interacting with MS sql server under Ubuntu 16.04 (either by EF or SQLDataReader) # General I have a web API application on dotnet under Core 2.0, Ubuntu 16.04, and an MS SQL server as data storage (totally < 1Gb of data there). Core i5 with 8 GB memory laptop, SSD 120 GB. Both the app and the server run on same machine (localhost). Under windows the same code requires about 2 sec (provided that the server is also running under windows). When loading a table of about 150 000 rows (about 10 columns) from sql server I get about 300 sec time! Smaller tables also loaded in such a big time (proportionally to the number of rows). All requests are sync (async versions never used). This happens for both the EF approach or with direct using of SQLDataReader, so the problem is NOT in the EF. As a workaround I simply run sqlcmd tool with the sql request as a separate process and parse its output as a cvs file. This takes about 2 sec (not 300 sec) for the same tables. MS SQL server was installed in a pretty ""normal"" way following the official instructions (https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu). I use typical code for DB reading in C# by EF where-style request or just with SQLDataReader: using (var connection = new SqlConnection(DataConString)) { var command = new SqlCommand(query, connection); command.Connection.Open(); var reader = command.ExecuteReader(); while (reader.Read()) parse_the_line(reader); } My gues is that Core 2.0 handles the connection in some bad manner (eg. disconnects and connects on each row of table) or there's something in deserialization (though I think just any kind of deserialization woldn't be that bad) or maybe Core 2.0 switches to async methods under the hood (which in turn set a kind of timer and wakes on receiving each piece of data) or so on, but these are only my guesses. Maybe it's somehow connected with the well known MS SQL server bug (feature?) under linux: sqlcmd tool becomes toooo slow when the output is redirected to a file by '>' in the command line. (Note: I don't redirect the output when using sqlcmd tool as a workaround, just read the process output line by line.) So maybe Core 2.0 works with MS SQL server the same bad way as sqlcmd tool does when redirected to a file. But again these are only my guesses. **Upd:** The problem is on Core side, not with the SQL server. I just tried connecting to Windows-hosted server, the problem still remains (about 300 sec for 150K rows). Though the same code under Windows works fine (about 2-3 sec). --- @Ataden commented on [Sat Aug 12 2017](https://github.com/dotnet/core/issues/802#issuecomment-321964793) I confirm such an issue. On Windows EF Core and SQL library work great but on Linux they are way too slow. It is almost imposible to use them on Linux at all. --- @ayurjev commented on [Sat Aug 12 2017](https://github.com/dotnet/core/issues/802#issuecomment-321965303) I noticed the same slow performance while I was trying to use Core 2.0 on MacOS... It had been taking 40-50 seconds to execute simple query.... " +24481 area-System.Linq Strange generic expressions type check behavior "@chrbaeu commented on [Thu Aug 17 2017](https://github.com/dotnet/core/issues/856) The following code prints with netcoreapp1.0 and net461: ``` IsExpression: True IsExpression: True ``` And with netcoreapp2.0: ``` IsExpression: False IsExpression: True ``` I think netcoreapp2.0 should show the same results as the other. ``` namespace ExpressionBugTest { class Program { static void Main(string[] args) { Expression> predicate = x => x != null; Console.WriteLine(""IsExpression: "" + (predicate.GetType().GetGenericTypeDefinition() == typeof(Expression<>))); Console.WriteLine(""IsExpression: "" + (typeof(Expression>).GetGenericTypeDefinition() == typeof(Expression<>))); Console.ReadKey(); } } } ``` --- @svick commented on [Thu Aug 17 2017](https://github.com/dotnet/core/issues/856#issuecomment-323069527) As far as I can tell, the reason for this is that `predicate.GetType().GetGenericTypeDefinition()` returns the internal type [`Expression1`](https://github.com/dotnet/corefx/blob/43f78840284de81bfd1b5fe4deceedf95c673cf8/src/System.Linq.Expressions/src/System/Linq/Expressions/LambdaExpression.cs#L358), which inherits from `Expression` and was introduced as an optimization in https://github.com/dotnet/corefx/pull/13133. I'm not sure what is the best way to correctly check that a `Type` is an `Expression`. --- @stephentoub commented on [Thu Aug 17 2017](https://github.com/dotnet/core/issues/856#issuecomment-323075860) cc: @bartdesmet, @VSadov " +24482 area-System.Net HttpClient Coding problem "@tianmaoyu commented on [Mon Jul 31 2017](https://github.com/dotnet/core/issues/782) # HttpClient Coding problem Problems with Chinese Fonts # General ```c# var client = new HttpClient(); var multipartContent = new MultipartFormDataContent(""-------boundary""); var fileStream2 = File.Open(@""H:\开源的项目\新建文本文档.txt"", FileMode.Open); var streamContent2 = new StreamContent(fileStream2); multipartContent.Add(streamContent2, ""files"", ""新建文本文档.txt""); var output = new MemoryStream(); await multipartContent.CopyToAsync(output); output.Seek(0, SeekOrigin.Begin); string result = new StreamReader(output).ReadToEnd(); return result; ``` result string: ``` filename=""=?utf-8?B?5paw5bu65paH5pys5paH5qGjLnR4dA==?="" filename*=utf-8''%E6%96%B0%E5%BB%BA%E6%96%87%E6%9C%AC%E6%96%87%E6%A1%A3.txt ``` ``` ---------boundary Content-Disposition: form-data; name=files; filename=""=?utf-8?B?5paw5bu65paH5pys5paH5qGjLnR4dA==?=""; filename*=utf-8''%E6%96%B0%E5%BB%BA%E6%96%87%E6%9C%AC%E6%96%87%E6%A1%A3.txt ������ ---------boundary-- ``` @tianmaoyu commented on [Mon Jul 31 2017](https://github.com/dotnet/core/issues/782#issuecomment-318999778) ``` ---------boundary Content-Disposition: form-data; name=files; filename=""=?utf-8?B?5paw5bu65paH5pys5paH5qGjLnR4dA==?=""; filename*=utf-8''%E6%96%B0%E5%BB%BA%E6%96%87%E6%9C%AC%E6%96%87%E6%A1%A3.txt ������ ---------boundary-- ``` @karelz commented on [Mon Jul 31 2017](https://github.com/dotnet/core/issues/782#issuecomment-319013205) What is the key problem in your repro? Is it the Unicode file name? Is it the content of the file? Can you please clarify what is expected vs. current output? @tianmaoyu commented on [Mon Jul 31 2017](https://github.com/dotnet/core/issues/782#issuecomment-319125019) I want to use httpclient to upload files. When the name of the file is Chinese, the garbled code appears. I want to be able to upload Chinese files correctly. For example: filename=“新建文本文档.txt“ instead of: filename=""=?utf-8?B?5paw5bu65paH5pys5paH5qGjLnR4dA==?="" @tianmaoyu commented on [Mon Jul 31 2017](https://github.com/dotnet/core/issues/782#issuecomment-319131940) I want to encode the Content.header with UTF-8 and calculate the length instead of using DefaultHttpEncoding (Encoding.GetEncoding (28591)). The source code is: System.Net.Http.HttpRuleParser ```c# internal static readonly Encoding DefaultHttpEncoding = Encoding.GetEncoding(28591); ``` [EDIT] Changed code formatting for readability by @karelz" +24484 area-System.Security cannot import X509Certificate from file in .net core 2.0 "@xingzhougmu commented on [Sat Sep 02 2017](https://github.com/dotnet/core/issues/932) # Issue Title cannot import X509Certificate from file in .net core 2.0 # General The following code works perfectly in .net core 1.0, however, does not in .net core 2.0. `X509Certificate clientCert = new X509Certificate(Directory.GetCurrentDirectory() + ""/Certs/Production/CN_Certificate.crt"");` Under .net core 2.0, the exception is as below: > {Interop+AppleCrypto+AppleCommonCryptoCryptographicException: Unknown format in import. > at Interop.AppleCrypto.X509ImportCertificate(Byte[] bytes, X509ContentType contentType, SafePasswordHandle importPassword, SafeKeychainHandle keychain, Boolean exportable, SafeSecIdentityHandle& identityHandle) > at Internal.Cryptography.Pal.CertificatePal.FromBlob(Byte[] rawData, SafePasswordHandle password, X509KeyStorageFlags keyStorageFlags) > at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName, String password, X509KeyStorageFlags keyStorageFlags) > at System.Security.Cryptography.X509Certificates.X509Certificate..ctor(String fileName) > at Test.Program.Main(String[] args) in /Users/xzhou/Projects/Test/Program.cs:line 40} > For some issues, you will get a quicker and better response if you file it at a more specific [.NET repo](https://github.com/dotnet/core/blob/master/Documentation/core-repos.md). For example, if the problem is with ASP.NET Core, you are encouraged to use the [aspnet/home repo](https://github.com/aspnet/home/issues). " +24485 area-System.Net SmtpClient throws NullReferenceException on Dispose() "@sibvic commented on [Wed Aug 30 2017](https://github.com/dotnet/core/issues/912) I'm using: netcoreapp2.0 The next code throws an exception: using (var client = new SmtpClient(""smtp.mail.ru"", 465)) { client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(Options.EmailSenderUser, Options.EmailSenderPassword); client.SendAsync(emailMessage, new object()); }//throws an exception here!!! NullReferenceException: Object reference not set to an instance of an object. System.Net.Mail.SmtpConnection.ReleaseConnection() System.Net.Mail.SmtpClient.Dispose(bool disposing) System.Net.Mail.SmtpClient.Dispose() --- @Petermarcu commented on [Wed Aug 30 2017](https://github.com/dotnet/core/issues/912#issuecomment-326046972) @Priya91, can you copy this over to corefx and maybe take a look? --- @shalaka198 commented on [Thu Sep 21 2017](https://github.com/dotnet/core/issues/912#issuecomment-331329224) Is there any update on this issue? I am facing the same. --- @msvprogs commented on [Sun Sep 24 2017](https://github.com/dotnet/core/issues/912#issuecomment-331741350) +1, I have the same problem. OS CentOS 7, .NET Core 2.0 " +24486 area-System.Net .Net Core :HttpClient fails with : The server returned an invalid or unrecognized response on every request "@savkris commented on [Wed Aug 16 2017](https://github.com/dotnet/core/issues/844) **HttpClient fails with: The server returned an invalid or unrecognized response** > StackTrace: > System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: The server returned an invalid or unrecognized response > at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() > at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) > at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult() > at System.Net.Http.WinHttpHandler.d__105.MoveNext() # General By requesting an API endpoint that, the first call succeeded but never again. The page loads on any browser otherwise. Using Fiddler to inspect to try and find out what is going on: I am getting this response back with 200 Status code and data loaded as XML: > HTTP/1.1 200 OK > Accept-Ranges: bytes > Age: 4 > Cache-Control: no-cache > Content-Type: application/xml; charset=utf-16 > Date: Wed, 16 Aug 2017 07:50:04 GMT > Expires: -1 > Pragma: no-cache > X-Trace-Id: 246493.030-507962550 > Content-Length: 858120 > Connection: keep-alive > X-Iinfo: 5-4932445-4935132 NNNN CT(0 -1 0) RT(1502869770814 33059) q(0 0 0 -1) r(0 0) U5 > X-CDN: Incapsula I am running on: > .NET Command Line Tools (2.1.0-preview1-006958) > > Product Information: > Version: 2.1.0-preview1-006958 > Commit SHA-1 hash: 51567d7641 > > Runtime Environment: > OS Name: Windows > OS Version: 10.0.15063 > OS Platform: Windows > RID: win10-x64 > Base Path: C:\Program Files\dotnet\sdk\2.1.0-preview1-006958\ > > Microsoft .NET Core Shared Framework Host > Version : 2.0.0 Here is the simple code : ``` try { var response = await CronwBetClient.GetAsync(""https://api.beteasy.com.au/RacingFeed/api/feed""); } catch (HttpRequestException e) { Console.WriteLine(e); throw; } ``` --- @karelz commented on [Tue Aug 22 2017](https://github.com/dotnet/core/issues/844#issuecomment-324090088) You are using preview1 bits. Do you get the same error on RTM bits (released on 8/14)? If you can, please post code which has chance to compile - `CronwBetClient` above is not part of Framework. Thanks! " +24487 area-Infrastructure Need good diagnostics for missing dependencies Where ever .NET Core has a requirement on some dependency, we should document it, and far as possible when at runtime it should indicate how to fix the problem. 1. Build time dependencies documented with good errors if not found (focus on CoreFX/CoreCLR repo): - [ ] RHEL/Centos ([here](https://github.com/dotnet/core/blob/master/Documentation/build-and-install-rhel6-prerequisites.md)) - [ ] Fedora - [ ] Debian - [ ] Ubuntu - [ ] Mint - [ ] openSUSE, SLES - [ ] macOS - [ ] Windows ([here](https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md)) 2. Run time dependencies documented with good errors if not found: - [ ] RHEL/Centos - [ ] Fedora - [ ] Debian - [ ] Ubuntu - [ ] Mint - [ ] openSUSE, SLES - [ ] macOS - [ ] Windows - [ ] RaspberryPi ([here](https://github.com/dotnet/core/blob/master/samples/RaspberryPiInstructions.md)) - [ ] FreeBSD (pending) - [x] System.Drawing (libgdiplus) #24464 - [ ] System.Data.ODBC (unixODBC) * Some of this information can be mined from our [docker files](https://github.com/dotnet/dotnet-docker). * CoreFX build docs for Unix/macOS [here[](https://github.com/dotnet/corefx/blob/master/Documentation/building/unix-instructions.md) and Windows [here](https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md) * Out of date information: [1](https://github.com/dotnet/core/blob/master/Documentation/prereqs.md) * Need to check on what the SDK/CLI documents and warns for. +24491 area-Serialization Support Reference Assemblies in SGEN. "Customer can define the reference assemblies as well as the related types that need pregenerated serializer as the followings. ``` MyData06.Class1;MyData06.Class3 MyData07.Class5;MyData07.Class6 ``` Fix #22937 @shmao @mconnew @zhenlan " +24492 area-System.Net SSLStream - Fix write renegotiation and make a single function for it I was taking a hard look at the code for triggering the callback after an async renegotiation for both read and write. The write side is currently missing the TaskCompletionSource call that was added, but seemed to drop out of my PR. I have put this in and moved the duplicate code to a single function which is what I was prototyping on the read side to make that full async. +24495 area-System.Net .net core 1.1 IFormFileCollection files Performance issue @chintan3100 commented on [Sun Sep 03 2017](https://github.com/dotnet/core/issues/934) public async Task Put(IFormFileCollection files) { return await UpdateFile(file); } I have hosted application in azure PAAS and analysis log of server. 6 second are taking to get file on server. file size 10 MB. Ref Link:http://weblogs.thinktecture.com/pawel/2017/03/aspnet-core-webapi-performance.html +24496 area-System.Net System.Net.Http.HttpContent.ReadAsStringAsync fails for ISO-8859-15 (Latin-9) "I'm trying to read the HTTP response from a web service, where the content type header is: ``` Content-Type: text/html; charset=ISO-8859-15 ``` When invoking `System.Net.Http.HttpContent.ReadAsStringAsync()` my app fails with `System.InvalidOperationException` ""*The character set provided in ContentType is invalid. Cannot read content as string using an invalid character set.*"" `ISO-8859-15` (Latin-9) though is a valid charset, and the problem seems to be in the incomplete list of charsets hardcoded in .NET (System.Globalization I think). Is this a bug? Is there another way to read content encoded with this (or any other) charset, other than going lower level into the data stream?" +24497 area-System.Net SSLStream - Make read side async, and remove a bunch of allocations Includes bug fix from writeside. (#24492) Benches/Traces to follow. +24498 area-System.Diagnostics Allow ProcessStart when folder in CurDirectory has same name as file in ExecDirectory Allow ProcessStart when folder in current directory has same name as file in execution directory cc: @danmosemsft @stephentoub @livarcocc @ahsonkhan +24499 area-System.Net Linux Memory Leak using DefaultRequestHeaders.ConnectionClose = true We've been investigating a memory leak for a while now and have finally found the cause. Originally, due to some requirements we were forced to close connections after each request, so we set HttpClient.DefaultRequestHeaders.ConnectionClose to true on our HttpClient singleton. The leak was exposed under a load test. We added a setting around ConnectionClose and simply leaving it at false stops the leak. This leak can be reproduced under centos7 environment using a load test on this basic core 2.0 project : https://github.com/psyonix-luis/CloseConnectionLeak We are unable to reproduce this in Windows, memory stays relatively constant : https://i.imgur.com/IBD0CFQ.jpg After a test of 300k requests using the sample project in linux, the app was taking up about 5.5GB : https://i.imgur.com/qZM5K7W.jpg Comparison true vs false : https://i.imgur.com/Z6Z6CSG.png I would expect some performance difference not reusing connections, but not a _killer_ difference. +24500 area-System.Collections Adding System.Collections.NonGenerics ArrayList performance tests. (#18765) Adding ArrayList performance tests (#18765) +24502 area-System.Data Cannot use DBDataReader as Structured SQL Parameter with 2.0 Update "@Coder3333 commented on [Thu Sep 21 2017](https://github.com/dotnet/core/issues/983) This article details how to use a DBDataReader as a Structured input parameter to a SQL query: https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/table-valued-parameters This worked just fine with Core 1.1, but since I updated to Core 2.0, it no longer works. If I use DataTable as input, instead of a DBDataReader, the exact same code works. The error I get is: ""Specified method is not supported"" at System.Data.SqlClient.TdsParser.TdsExecuteRPC(_SqlRPC[] rpcArray, Int32 timeout, Boolean inSchema, TdsParserStateObject stateObj, Boolean isCommandProc, Boolean sync, TaskCompletionSource`1 completion, Int32 startRpc, Int32 startParam) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite, String method) at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior) at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() --- @nil4 commented on [Sun Oct 08 2017](https://github.com/dotnet/core/issues/983#issuecomment-335007721) Confirmed, same here. " +24504 area-System.Threading "System.Threading.Tests.MutexTests.CrossProcess_NamedMutex_ProtectedFileAccessAtomic failed with ""Xunit.Sdk.TrueException"" in CI" Failed test: System.Threading.Tests.MutexTests.CrossProcess_NamedMutex_ProtectedFileAccessAtomic Configuration: osx10.12_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/3255/testReport/System.Threading.Tests/MutexTests/CrossProcess_NamedMutex_ProtectedFileAccessAtomic_prefix____d3e87b891666440cbeba7116a70ac17d___/ MESSAGE: ~~~ Assert.True() Failure\nExpected: True\nActual: False ~~~ STACK TRACE: ~~~ at System.Threading.Tests.ThreadTestHelpers.<>c__DisplayClass3_0.b__2() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/Common/tests/System/Threading/ThreadTestHelpers.cs:line 48 at System.Threading.Tests.ThreadTestHelpers.RunTestInBackgroundThread(Action test) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/Common/tests/System/Threading/ThreadTestHelpers.cs:line 100 at System.Threading.Tests.MutexTests.CrossProcess_NamedMutex_ProtectedFileAccessAtomic(String prefix) in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.Threading/tests/MutexTests.cs:line 227 ~~~ +24505 area-System.IO "Test: System.IO.Tests.FileStream_BeginEndWrite_AsyncWrites/WriteAsyncMiniStress failed with ""System.IO.IOException : No space left on device""" Opened on behalf of @Jiayili1 The test `System.IO.Tests.FileStream_BeginEndWrite_AsyncWrites/WriteAsyncMiniStress` has failed. System.IO.IOException : No space left on device Stack Trace: at System.IO.FileStream.WriteNative(ReadOnlySpan`1 source) in /root/coreclr/src/mscorlib/shared/System/IO/FileStream.Unix.cs:line 621 at System.IO.FileStream.WriteSpan(ReadOnlySpan`1 source) in /root/coreclr/src/mscorlib/shared/System/IO/FileStream.Unix.cs:line 607 at System.IO.FileStream.Write(Byte[] array, Int32 offset, Int32 count) in /root/coreclr/src/mscorlib/shared/System/IO/FileStream.cs:line 412 at System.IO.Stream.<>c.b__49_0(Object ) in /root/coreclr/src/mscorlib/src/System/IO/Stream.cs:line 484 at System.Threading.Tasks.Task`1.InnerInvoke() in /root/coreclr/src/mscorlib/src/System/Threading/Tasks/future.cs:line 616 at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) in /root/coreclr/src/mscorlib/shared/System/Threading/ExecutionContext.cs:line 151 at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) in /root/coreclr/src/mscorlib/src/System/Threading/Tasks/Task.cs:line 2440 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 at System.IO.Stream.EndWrite(IAsyncResult asyncResult) in /root/coreclr/src/mscorlib/src/System/IO/Stream.cs:line 554 at System.Threading.Tasks.TaskFactory`1.FromAsyncCoreLogic(IAsyncResult iar, Func`2 endFunction, Action`1 endAction, Task`1 promise, Boolean requiresSynchronization) in /root/coreclr/src/mscorlib/src/System/Threading/Tasks/FutureFactory.cs:line 533 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 at System.IO.Tests.FileStream_AsyncWrites.d__24.MoveNext() in /root/corefx-1046379/src/System.IO.FileSystem/tests/FileStream/WriteAsync.cs:line 412 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() in /root/coreclr/src/mscorlib/src/System/Runtime/ExceptionServices/ExceptionServicesCommon.cs:line 130 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) in /root/coreclr/src/mscorlib/src/System/Runtime/CompilerServices/TaskAwaiter.cs:line 152 Build : Master - 20171009.01 (Core Tests) Failing configurations: - Fedora.26.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171009.01/workItem/System.IO.FileSystem.Tests/analysis/xunit/System.IO.Tests.FileStream_BeginEndWrite_AsyncWrites~2FWriteAsyncMiniStress +24508 area-System.Console FailFast in System.ConsolePal.WindowsConsoleStream.WriteFileNative "While debugging OpenCover, which invoked xunit.console, if I select in the console (to block console output) I sometimes get a failfast as below. In this case, writeSuccess is true, but count == 50 and numBytesWritten is 100. The string to write is 50 characters: ""xUnit.net console test runner (64-bit .NET Core).\n"". MSDN seems clear that count is in bytes, however. Note: this is on RS3. MSDN says >If the pipe buffer is full when an application uses the WriteFile function to write to a pipe, the write operation may not finish immediately. The write operation will be completed when a read operation (using the ReadFile function) makes more system buffer space available for the pipe. When writing to a non-blocking, byte-mode pipe handle with insufficient buffer space, WriteFile returns TRUE with *lpNumberOfBytesWritten < nNumberOfBytesToWrite. Of course, this is the reverse situation but perhaps the assert would fail in this case also. I assume that WriteFile wants you to call it again for the remainder in this case (which we don't do) Console.OutputEncoding.CodePage=437 (OEM) ``` if (useFileAPIs) { int numBytesWritten; writeSuccess = (0 != Interop.Kernel32.WriteFile(hFile, p + offset, count, out numBytesWritten, IntPtr.Zero)); Debug.Assert(!writeSuccess || count == numBytesWritten); <<<<< } ``` ``` Cannot instrument C:\git\corefx\bin\testhost\netcoreapp-Windows_NT-Debug-x64\shared\Microsoft.NETCore.App\9.9.9\System.Private.CoreLib.dll as no PDB/MDB could be loaded xUnit.net console test runner (64-bit .NET Core) FailFast: at System.Diagnostics.Debug.Assert(Boolean condition, String message, String detailMessage) in E:\A\_work\1111\s\src\mscorlib\shared\System\Diagnostics\Debug.cs:line 97 at System.Diagnostics.Debug.Assert(Boolean condition) in E:\A\_work\1111\s\src\mscorlib\shared\System\Diagnostics\Debug.cs:line 80 at System.ConsolePal.WindowsConsoleStream.WriteFileNative(IntPtr hFile, Byte[] bytes, Int32 offset, Int32 count, Boolean useFileAPIs) in C:\git\corefx\src\System.Console\src\System\ConsolePal.Windows.cs:line 1210 at System.ConsolePal.WindowsConsoleStream.Write(Byte[] buffer, Int32 offset, Int32 count) in C:\git\corefx\src\System.Console\src\System\ConsolePal.Windows.cs:line 1131 at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder) in C:\git\corefx\src\System.Runtime.Extensions\src\System\IO\StreamWriter.cs:line 260 at System.IO.StreamWriter.WriteLine(String value) in C:\git\corefx\src\System.Runtime.Extensions\src\System\IO\StreamWriter.cs:line 554 at System.IO.SyncTextWriter.WriteLine(String value) in C:\git\corefx\src\System.Console\src\System\IO\SyncTextWriter.cs:line 280 at System.IO.TextWriter.WriteLine(String format, Object arg0, Object arg1) in C:\git\corefx\src\System.Runtime.Extensions\src\System\IO\TextWriter.cs:line 484 at System.Console.WriteLine(String format, Object arg0, Object arg1) in C:\git\corefx\src\System.Console\src\System\Console.cs:line 566 at Xunit.ConsoleClient.Program.Main(String[] args) at System.Environment.FailFast(System.String, System.Exception) at System.Diagnostics.Debug.ShowAssertDialog(System.String, System.String, System.String) at System.Diagnostics.Debug.Assert(Boolean, System.String, System.String) at System.Diagnostics.Debug.Assert(Boolean) at System.ConsolePal+WindowsConsoleStream.WriteFileNative(IntPtr, Byte[], Int32, Int32, Boolean) at System.ConsolePal+WindowsConsoleStream.Write(Byte[], Int32, Int32) at System.IO.StreamWriter.Flush(Boolean, Boolean) at System.IO.StreamWriter.WriteLine(System.String) at System.IO.SyncTextWriter.WriteLine(System.String) at System.IO.TextWriter.WriteLine(System.String, System.Object, System.Object) at System.Console.WriteLine(System.String, System.Object, System.Object) at Xunit.ConsoleClient.Program.Main(System.String[]) C ```" +24509 area-System.Net [ManagedHandler] System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_DefaultProxyCredentials_Test/ProxySetViaEnvironmentVariable_DefaultProxyCredentialsUsed failed Opened on behalf of @Jiayili1 The test `System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_DefaultProxyCredentials_Test/ProxySetViaEnvironmentVariable_DefaultProxyCredentialsUsed(useProxy: True)` has failed. System.Diagnostics.RemoteExecutorTestBase+RemoteInvokeHandle+RemoteExecutionException : Remote process failed with an unhandled exception. Stack Trace: Child exception: System.AggregateException: One or more errors occurred. (Error while copying content to a stream.) (One or more errors occurred. (Error while copying content to a stream.)) ---> System.Net.Http.HttpRequestException: Error while copying content to a stream. ---> System.IO.IOException: Unable to transfer data on the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.FillAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnection.d__68.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.ContentLengthReadStream.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.HttpConnectionContent.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpContent.d__49.MoveNext() --- End of inner exception stack trace --- at System.Net.Http.HttpContent.d__49.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of inner exception stack trace --- at System.ThrowHelper.ThrowAggregateException(List`1 exceptions) at System.Threading.Tasks.Task.WaitAllCore(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken) at System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test.<>c.b__3_0(String useProxyString, String useManagedHandlerString) ---> (Inner Exception #0) System.Net.Http.HttpRequestException: Error while copying content to a stream. ---> System.IO.IOException: Unable to transfer data on the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.FillAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnection.d__68.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.ContentLengthReadStream.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.HttpConnectionContent.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpContent.d__49.MoveNext() --- End of inner exception stack trace --- at System.Net.Http.HttpContent.d__49.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext()<--- ---> (Inner Exception #1) System.AggregateException: One or more errors occurred. (Error while copying content to a stream.) ---> System.Net.Http.HttpRequestException: Error while copying content to a stream. ---> System.IO.IOException: Unable to transfer data on the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.FillAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnection.d__68.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.ContentLengthReadStream.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.HttpConnectionContent.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpContent.d__49.MoveNext() --- End of inner exception stack trace --- at System.Net.Http.HttpContent.d__49.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext() --- End of inner exception stack trace --- at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task`1.get_Result() at System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test.<>c.b__3_1(Task`1 t) at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke() at System.Threading.Tasks.Task.<>c.<.cctor>b__280_1(Object obj) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot) ---> (Inner Exception #0) System.Net.Http.HttpRequestException: Error while copying content to a stream. ---> System.IO.IOException: Unable to transfer data on the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host --- End of inner exception stack trace --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.FillAsync(CancellationToken cancellationToken) at System.Net.Http.HttpConnection.d__68.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.ContentLengthReadStream.d__3.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpConnection.HttpConnectionContent.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpContent.d__49.MoveNext() --- End of inner exception stack trace --- at System.Net.Http.HttpContent.d__49.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Net.Http.HttpClient.d__58.MoveNext()<--- <--- Child process: System.Net.Http.Functional.Tests, Version=4.2.1.0, Culture=neutral, PublicKeyToken=9d77cc7ad39b68eb System.Net.Http.Functional.Tests.HttpClientHandler_DefaultProxyCredentials_Test+<>c Int32 b__3_0(System.String, System.String) Child arguments: True, True Build : Master - 20171009.01 (Core Tests) Failing configurations: - Windows.7.Amd64-x86 - Release - Windows.81.Amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171009.01/workItem/System.Net.Http.Functional.Tests/analysis/xunit/System.Net.Http.Functional.Tests.ManagedHandler_HttpClientHandler_DefaultProxyCredentials_Test~2FProxySetViaEnvironmentVariable_DefaultProxyCredentialsUsed(useProxy:%20True) +24510 area-System.Memory test failures 'System.Span<>' is missing metadata Opened on behalf of @Jiayili1 The test `System.Tests.TypeTestsNetcore/TestIsByRefLike` has failed. System.Reflection.MissingMetadataException : 'System.Span<>' is missing metadata. For more information, please visit http://go.microsoft.com/fwlink/?LinkID=392859 Stack Trace: at System.Reflection.Runtime.TypeInfos.RuntimeBlockedTypeInfo.get_TypeRefDefOrSpecsForDirectlyImplementedInterfaces() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\TypeInfos\RuntimeBlockedTypeInfo.cs:line 229 at System.Reflection.Runtime.TypeInfos.RuntimeTypeInfo.get_GenericTypeParameters() in f:\dd\ndp\fxcore\CoreRT\src\System.Private.Reflection.Core\src\System\Reflection\Runtime\TypeInfos\RuntimeTypeInfo.cs:line 348 Build : Master - 20171009.01 (UWP ILC Tests) Failing configurations: - Windows.10.Amd64.ClientRS3-x86 - Debug - Release - Windows.10.Amd64.ClientRS3-x64 - Debug - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Filc~2F/build/20171009.01/workItem/System.Runtime.Tests/analysis/xunit/System.Tests.TypeTestsNetcore~2FTestIsByRefLike +24514 area-System.Net "Possible Bug in ""System.Net.Mail.SmtpClient"" when using ""UseDefaultCredentials"" property" "Hi, it seems weird, and after looking a few minutes at your source code, i can not really say why, but it plays a role if the property ""UseDefaultCredentials"" is set before or after the property ""Credentials"" of class ""SmtpClient"" in the Namespace ""System.Net.Mail"". At least with our mail provider. Framework: asp.net core Version: 2.0 Example1: var client = new SmtpClient(""asmtp.mail.hostpoint.ch"", 587); client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(""our_usr"", ""our_pwd""); client.EnableSsl = true; //... Create MailMessage in variable ""message"" client.Send(message); Example2: var client = new SmtpClient(""asmtp.mail.hostpoint.ch"", 587); client.Credentials = new NetworkCredential(""our_usr"", ""our_pwd""); client.UseDefaultCredentials = false; client.EnableSsl = true; //... Create MailMessage in variable ""message"" client.Send(message); Result: Example1 works like a charm, while Example2 fails with this Exception: ""System.Net.Mail.SmtpException: 'Mailbox unavailable. The server response was: You are not authenticated. Try to activate SMTP Authentication in your mail'"" There is really no difference, just the switch of that 2 lines of code. We tested this in a clean new asp.net core test project. We simply could reproduce it as often as we want, just by switching this 2 lines. VERY weird ! :) Our provider for the mail is ""Hostpoint"" from Swizzerland (see host above in SmtpClient() constructor). Its not possible for me (security reasons) to offer you more information, like users, passwords, etc. so you can test. Sorry. But maybe the problem exists with other Mail providers like GMail etc. and you can reproduce it there. I didnt tested that. Maybe it is some really special thing with our Mail provider. But it seems definitelly worth for you to look at, i think. Or at least for me, to inform you about that :) Just want let you know about that strange issue. Best regards, Marcel" +24515 area-System.Net Update System.Net.Http to use Memory-based Stream methods - Overrides Read/WriteAsync(Memory, ...) on streams - Updates calls where relevant to use ReadAsync(Memory, ...) to avoid task allocation when possible - Removed NET46 #ifdefs in files I was touching Fixes https://github.com/dotnet/corefx/issues/22396 cc: @geoffkizer, @davidsh +24517 area-Infrastructure Consuming types in System.Security.Permissions fails for test projects targeting netfx "System.Security.Permissions only has a netstandard ref configuration and as such will bin-place that into the ref/netfx folder when building the netfx vertical. This library seems to be the last one that is still using PackageAsRefAndLib https://github.com/dotnet/corefx/blob/1a8531aa3c511d78a1520c40f4595334a8ba3ada/src/System.Security.Permissions/src/System.Security.Permissions.csproj#L9. We should remove that and instead add a netfx configurations for the ref so that our own projects can correctly consume this library. As a temp workaround test projects can add the: ``` ```" +24521 area-System.Net Fix null ref exception when Dispose'ing SmtpClient If SmtpClient is disposed after a failed send and no successful sends, it attempts to call Close on a null NetworkStream field. I can't reproduce the exact situation called out in https://github.com/dotnet/corefx/issues/24485, but this fixes the issue I noted in that thread, and I expect it'll fix the original issue as well. cc: @Priya91, @Petermarcu Fixes https://github.com/dotnet/corefx/issues/24485 (Separately, it looks like the connection mgmt in core's SmtpMail could be cleaned up; since a new connection is created per send, it's not clear to me why this close call is required at all.) +24522 area-System.Runtime Add core-setup's RuntimeEnvironment (platform detection) logic to RuntimeInformation Currently we have multiple pieces of code used for detection OS and its version: https://github.com/dotnet/corefx/blob/master/src/CoreFx.Private.TestUtilities/src/System/PlatformDetection.cs https://github.com/dotnet/core-setup/blob/master/src/managed/Microsoft.DotNet.PlatformAbstractions/RuntimeEnvironment.cs this logic is non-trivial to get correctly and thus we should not duplicate this logic. I believe RuntimeInformation is the most intuitive place where platform detection code should live. +24524 area-System.Security Support RFC 5816 and RFC 3161 trusted timestamping API proposal: ```C# namespace System.Security.Cryptography.Pkcs { public sealed partial class Rfc3161TimestampRequest { private Rfc3161TimestampRequest() { } public int Version => throw null; public ReadOnlyMemory GetMessageHash() => throw null; public Oid HashAlgorithmId => throw null; public Oid RequestedPolicyId => throw null; public bool RequestSignerCertificate => throw null; public ReadOnlyMemory? GetNonce() => throw null; public bool HasExtensions => throw null; public X509ExtensionCollection GetExtensions() => throw null; public byte[] Encode() => throw null; public bool TryEncode(Span destination, out int bytesWritten) => throw null; public Rfc3161TimestampToken ProcessResponse( ReadOnlyMemory responseBytes, out int bytesConsumed) => throw null; public static Rfc3161TimestampRequest CreateFromData( ReadOnlySpan data, HashAlgorithmName hashAlgorithm, Oid requestedPolicyId = null, ReadOnlyMemory? nonce = null, bool requestSignerCertificates = false, X509ExtensionCollection extensions = null) => throw null; public static Rfc3161TimestampRequest CreateFromHash( ReadOnlyMemory hash, HashAlgorithmName hashAlgorithm, Oid requestedPolicyId = null, ReadOnlyMemory? nonce = null, bool requestSignerCertificates = false, X509ExtensionCollection extensions = null) => throw null; public static Rfc3161TimestampRequest CreateFromHash( ReadOnlyMemory hash, Oid hashAlgorithmId, Oid requestedPolicyId = null, ReadOnlyMemory? nonce = null, bool requestSignerCertificates = false, X509ExtensionCollection extensions = null) => throw null; public static Rfc3161TimestampRequest CreateFromSignerInfo( SignerInfo signerInfo, HashAlgorithmName hashAlgorithm, Oid requestedPolicyId = null, ReadOnlyMemory? nonce = null, bool requestSignerCertificates = false, X509ExtensionCollection extensions = null) => throw null; public static bool TryDecode( ReadOnlyMemory encodedBytes, out Rfc3161TimestampRequest request, out int bytesConsumed) => throw null; } public sealed partial class Rfc3161TimestampToken { private Rfc3161TimestampToken() { } public Rfc3161TimestampTokenInfo TokenInfo => throw null; public SignedCms AsSignedCms() => throw null; public bool VerifySignatureForHash( ReadOnlySpan hash, HashAlgorithmName hashAlgorithm, out X509Certificate2 signerCertificate, X509Certificate2Collection extraCandidates = null) => throw null; public bool VerifySignatureForHash( ReadOnlySpan hash, Oid hashAlgorithmId, out X509Certificate2 signerCertificate, X509Certificate2Collection extraCandidates = null) => throw null; public bool VerifySignatureForData( ReadOnlySpan data, out X509Certificate2 signerCertificate, X509Certificate2Collection extraCandidates = null) => throw null; public bool VerifySignatureForSignerInfo( SignerInfo signerInfo, out X509Certificate2 signerCertificate, X509Certificate2Collection extraCandidates = null) => throw null; public static bool TryDecode( ReadOnlyMemory encodedBytes, out Rfc3161TimestampToken token, out int bytesConsumed) => throw null; } public sealed partial class Rfc3161TimestampTokenInfo { public Rfc3161TimestampTokenInfo( Oid policyId, Oid hashAlgorithmId, ReadOnlyMemory messageHash, ReadOnlyMemory serialNumber, DateTimeOffset timestamp, long? accuracyInMicroseconds=null, bool isOrdering=false, ReadOnlyMemory? nonce=null, ReadOnlyMemory? timestampAuthorityName=null, X509ExtensionCollection extensions =null) { throw null; } public int Version => throw null; public Oid PolicyId=> throw null; public Oid HashAlgorithmId => throw null; public ReadOnlyMemory GetMessageHash() { throw null; } public ReadOnlyMemory GetSerialNumber() { throw null; } public DateTimeOffset Timestamp => throw null; public long? AccuracyInMicroseconds => throw null; public bool IsOrdering => throw null; public ReadOnlyMemory? GetNonce() { throw null; } public ReadOnlyMemory? GetTimestampAuthorityName() { throw null; } public bool HasExtensions => throw null; public X509ExtensionCollection GetExtensions() { throw null; } public byte[] Encode() => throw null; public bool TryEncode(Span destination, out int bytesWritten) => throw null; public static bool TryDecode( ReadOnlyMemory encodedBytes, out Rfc3161TimestampTokenInfo timestampTokenInfo, out int bytesConsumed) { throw null; } } } ``` https://tools.ietf.org/html/rfc5816#section-1 https://tools.ietf.org/html/rfc3161 https://en.wikipedia.org/wiki/Trusted_timestamping +24525 area-System.Drawing Seg fault in System.Drawing.Common tests on Unix "We've been plagued by seg faults on Linux in the System.Drawing.Common tests, e.g. this one on SUSE: https://mc.dot.net/#/user/stephentoub/pr~2Fjenkins~2Fdotnet~2Fcorefx~2Fmaster~2F/test~2Ffunctional~2Fcli~2F/91ec984d64908b3ab312bef6f6fa599f5ea1cee7/workItem/System.Drawing.Common.Tests/wilogs ``` 2017-10-09 19:45:10,371: INFO: proc(54): run_and_log_output: Output: Discovering: System.Drawing.Common.Tests 2017-10-09 19:45:12,085: INFO: proc(54): run_and_log_output: Output: Discovered: System.Drawing.Common.Tests 2017-10-09 19:45:12,654: INFO: proc(54): run_and_log_output: Output: Starting: System.Drawing.Common.Tests 2017-10-09 19:45:13,601: INFO: proc(54): run_and_log_output: Output: System.Drawing.Printing.Tests.PrinterSettingsTests.MaximumCopies_ReturnsExpected [SKIP] 2017-10-09 19:45:13,601: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsAnyInstalledPrinters\"" 2017-10-09 19:45:13,604: INFO: proc(54): run_and_log_output: Output: System.Drawing.Printing.Tests.PrinterSettingsTests.LandscapeAngle_ReturnsExpected [SKIP] 2017-10-09 19:45:13,604: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsAnyInstalledPrinters\"" 2017-10-09 19:45:13,606: INFO: proc(54): run_and_log_output: Output: System.Drawing.Printing.Tests.PrinterSettingsTests.Collate_Default_ReturnsExpected [SKIP] 2017-10-09 19:45:13,606: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsAnyInstalledPrinters\"" 2017-10-09 19:45:13,620: INFO: proc(54): run_and_log_output: Output: System.Drawing.Printing.Tests.PrinterSettingsTests.IsPlotter_ReturnsExpected [SKIP] 2017-10-09 19:45:13,620: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsAnyInstalledPrinters\"" 2017-10-09 19:45:13,629: INFO: proc(54): run_and_log_output: Output: System.Drawing.Printing.Tests.PrinterSettingsTests.Static_InstalledPrinters_ReturnsExpected [SKIP] 2017-10-09 19:45:13,629: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""IsAnyInstalledPrinters\"" 2017-10-09 19:45:14,110: INFO: proc(54): run_and_log_output: Output: MonoTests.System.Drawing.Imaging.PngCodecTest.Bitmap2bitData [SKIP] 2017-10-09 19:45:14,110: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""GetRecentGdiPlusIsAvailable2\"" 2017-10-09 19:45:14,110: INFO: proc(54): run_and_log_output: Output: MonoTests.System.Drawing.Imaging.PngCodecTest.Bitmap2bitFeatures [SKIP] 2017-10-09 19:45:14,110: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""GetRecentGdiPlusIsAvailable2\"" 2017-10-09 19:45:14,111: INFO: proc(54): run_and_log_output: Output: MonoTests.System.Drawing.Imaging.PngCodecTest.Bitmap2bitPixels [SKIP] 2017-10-09 19:45:14,111: INFO: proc(54): run_and_log_output: Output: Condition(s) not met: \""GetRecentGdiPlusIsAvailable2\"" 2017-10-09 19:45:15,499: INFO: proc(54): run_and_log_output: Output: /home/helixbot/dotnetbuild/work/c092864f-24dd-40c6-a4ad-db55569616e0/Work/af3a10a9-a3b8-4472-893f-3ef12b40a6c4/Unzip/RunTests.sh: line 87: 4576 Segmentation fault (core dumped) $RUNTIME_PATH/dotnet xunit.console.netcore.exe System.Drawing.Common.Tests.dll -xml testResults.xml -notrait Benchmark=true -notrait category=nonnetcoreapptests -notrait category=nonlinuxtests -notrait category=OuterLoop -notrait category=failing 2017-10-09 19:45:15,540: INFO: proc(54): run_and_log_output: Output: Trying to find crash dumps for project: System.Drawing.Common.Tests 2017-10-09 19:45:15,540: INFO: proc(54): run_and_log_output: Output: No new dump file was found in /home/helixbot/dotnetbuild/work/c092864f-24dd-40c6-a4ad-db55569616e0/Work/af3a10a9-a3b8-4472-893f-3ef12b40a6c4/Unzip 2017-10-09 19:45:15,542: INFO: proc(54): run_and_log_output: Output: ~/dotnetbuild/work/c092864f-24dd-40c6-a4ad-db55569616e0/Work/af3a10a9-a3b8-4472-893f-3ef12b40a6c4/Unzip 2017-10-09 19:45:15,543: INFO: proc(54): run_and_log_output: Output: Finished running tests. End time=19:45:15. Return value was 139 2017-10-09 19:45:15,544: INFO: proc(58): run_and_log_output: Exit Code: 139 2017-10-09 19:45:15,545: ERROR: scriptrunner(87): _main: Error: No exception thrown, but XUnit results not created 2017-10-09 19:45:15,545: ERROR: helix_test_execution(83): report_error: Error running xunit None ``` This has been happening frequently for months, but I can't find an existing issue for it." +24529 area-System.Data "Fix for OdbcParameter Error ""Data type 0x23 is a deprecated large object...""" "This is fix for the issue https://github.com/dotnet/corefx/issues/24417 *** Customer reported a bug for error in `OdbcParameter`. Customer was trying to get a `VARCHAR(8000)` type return value (output) from SQL Server stored procedure by `OdbcCommand`, and got exception thrown with error message: ``` [Microsoft][ODBC Driver 13 for SQL Server][SQL Server]Invalid parameter 2 (''): Data type 0x23 is a deprecated large object, or LOB, but is marked as output parameter. Deprecated types are not supported as output parameters. Use current large object types instead. ``` Customer was not able to receive any string output longer than 3,999 characters from the stored procedure. ``` OdbcCommand command = new OdbcCommand(sql, con, trn); command.Parameters.Clear(); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add(""@v1"", OdbcType.VarChar, 8000); //Input //Output. The error will not occur when 4000 is 3999. command.Parameters.Add(""@v2"", OdbcType.VarChar, 4000); command.Parameters.Add(""@v3"", OdbcType.Int); command.Parameters.Add(""@v4"", OdbcType.Int); command.Parameters[""@v1""].Direction = ParameterDirection.Input; command.Parameters[""@v2""].Direction = ParameterDirection.Output; ``` ``` CREATE PROCEDURE testCSProc1 ( @v1 VARCHAR(8000), @v2 VARCHAR(8000) OUT, @v3 INTEGER OUT, @v4 INTEGER OUT ) AS BEGIN SET @v2 = @v1 + @v1; SET @v3 = datalength(@v1); SET @v4 = datalength(@v2); END; GO ```" +24531 area-Infrastructure [follow-up] Use RedHat code detection from Microsoft.DotNet.PlatformAbstractions This PR is a follow up on my PR against release/2.0.0 which cleaned up bunch of code related to RedHat: https://github.com/dotnet/corefx/pull/24340/files This also addresses feedback from @eerhardt about reusing core-setup code. Changes included here: - rename/join PlatformDetection properties: ``` IsRedHat => IsRedHatFamily IsRedHat69 => IsRedHatFamily6 IsNotRedHat69 => IsNotRedHatFamily6 IsCentos7 => IsRedHatFamily7 IsNotFedoraOrRedHatOrCentos => IsNotFedoraOrRedHatFamily ``` - replace parsing code for distro detection so that it calls into https://github.com/dotnet/core-setup/blob/master/src/managed/Microsoft.DotNet.PlatformAbstractions/RuntimeEnvironment.cs +24535 area-System.Data Improve messaging when odbc dependency is not installed Fixes a part of #17405 cc: @corivera @danmosemsft +24536 area-System.Net Fix hang when SmtpClient.SendAsync fails to connect If Send{Mail}Async fails to connect, an exception gets thrown/eaten, and the completion callback is never invoked / the returned Task is never completed. (Ignore the first commit; it's just #24521, which this builds upon. I'll squash it away when merging this.) cc: @Priya91 Fixes #24485 +24537 area-System.ComponentModel System.ComponentModel.Tests.AsyncOperationFinalizerTests.Finalizer_OperationNotCompleted_CompletesOperation failed in CI Failed test: System.ComponentModel.Tests.AsyncOperationFinalizerTests.Finalizer_OperationNotCompleted_CompletesOperation Configuration: osx10.12_debug Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_debug/3273/testReport/System.ComponentModel.Tests/AsyncOperationFinalizerTests/Finalizer_OperationNotCompleted_CompletesOperation/ MESSAGE: ~~~ Exit code was 131 but it should have been 42\nExpected: True\nActual: False ~~~ STACK TRACE: ~~~ at System.Diagnostics.RemoteExecutorTestBase.RemoteInvokeHandle.Dispose() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/CoreFx.Private.TestUtilities/src/System/Diagnostics/RemoteExecutorTestBase.cs:line 191 at System.ComponentModel.Tests.AsyncOperationFinalizerTests.Finalizer_OperationNotCompleted_CompletesOperation() in /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_debug/src/System.ComponentModel.EventBasedAsync/tests/AsyncOperationFinalizerTests.cs:line 42 ~~~ +24538 area-System.Drawing FreeBSD: System.Drawing.Printing tests are failing === TEST EXECUTION SUMMARY === System.Drawing.Common.Tests Total: 1731, Errors: 0, Failed: 31, Skipped: 1327, Time: 1.415s ~/git/corefx/bin/tests/System.Drawing.Common.Tests/netcoreapp-FreeBSD-Debug-x64 ---- System.TypeInitializationException : The type initializer for 'System.Drawing.Printing.LibcupsNative' threw an exception. -------- System.DllNotFoundException : Unable to load DLL 'libdl': The specified module or one of its dependencies could not be found. (Exception from HRESULT: 0x8007007E) Stack Trace: /home/furt/git/wfurt2-corefx/src/System.Drawing.Common/src/System/Drawing/Printing/PrintingServices.Unix.cs(88,0): at System.Drawing.Printing.PrintingServices.get_DefaultPrinter() /home/furt/git/wfurt2-corefx/src/System.Drawing.Common/src/System/Drawing/Printing/PrinterSettings.Unix.cs(70,0): at System.Drawing.Printing.PrinterSettings..ctor() /home/furt/git/wfurt2-corefx/src/System.Drawing.Common/tests/Printing/PrinterSettingsTests.cs(224,0): at System.Drawing.Printing.Tests.PrinterSettingsTests.MaximumPage_SetValue_ReturnsExpected(Int32 maximumPage) ----- Inner Stack Trace ----- /home/furt/git/wfurt2-corefx/src/System.Drawing.Common/src/System/Drawing/Printing/LibcupsNative.cs(44,0): at System.Drawing.Printing.LibcupsNative.cupsGetDefault() /home/furt/git/wfurt2-corefx/src/System.Drawing.Common/src/System/Drawing/Printing/PrintingServices.Unix.cs(107,0): at System.Drawing.Printing.PrintingServices.CheckCupsInstalled() /home/furt/git/wfurt2-corefx/src/System.Drawing.Common/src/System/Drawing/Printing/PrintingServices.Unix.cs(64,0): at System.Drawing.Printing.PrintingServices..cctor() ----- Inner Stack Trace ----- at Interop.Libdl.dlopen(String fileName, Int32 flag) /home/furt/git/wfurt2-corefx/src/System.Drawing.Common/src/System/Drawing/Printing/LibcupsNative.cs(17,0): at System.Drawing.Printing.LibcupsNative.LoadLibcups() /home/furt/git/wfurt2-corefx/src/System.Drawing.Common/src/System/Drawing/Printing/LibcupsNative.cs(12,0): at System.Drawing.Printing.LibcupsNative..cctor() This is because FreeBSD has dlopen in libc instead of libdl. This may be simple as updating src/Common/src/Interop/Unix/Interop.Libraries.cs libcups.so seems to exit but no testing has been done. This is part of https://github.com/dotnet/corefx/issues/1626 +24539 area-System.Threading "Test: System.Threading.Tasks.Tests.Status.TaskStatusTests/TaskStatus10 failed with ""Xunit.Sdk.TrueException""" Opened on behalf of @Jiayili1 The test `System.Threading.Tasks.Tests.Status.TaskStatusTests/TaskStatus10` has failed. Expecting Child Task final Status to be Canceled, while getting RanToCompletion Expected: True Actual: False Stack Trace: at System.Threading.Tasks.Tests.Status.TaskStatusTest.RealRun() in /root/corefx-1049346/src/System.Threading.Tasks/tests/Task/TaskStatusTest.cs:line 257 Build : Master - 20171010.02 (Core Tests) Failing configurations: - fedora.25.amd64-x64 - Release Detail: https://mc.dot.net/#/product/netcore/master/source/official~2Fcorefx~2Fmaster~2F/type/test~2Ffunctional~2Fcli~2F/build/20171010.02/workItem/System.Threading.Tasks.Tests/analysis/xunit/System.Threading.Tasks.Tests.Status.TaskStatusTests~2FTaskStatus10 +24541 area-System.Net Add CipherSuite property to HttpClientHandler It's really nice to have opportunity to change CipherSuite per connection, when HttpClientHandler is using. At this time there is only possibility to define SslProtocol. I have read issues and this topic appeared few times. ## **Proposed API** ``` namespace System.Net.Http public class HttpClientHandler: HttpMessageHandler { // Other properties... public CipherSuite CipherSuite { get; } } ``` ## **Example Usage** ``` var handler = new HttpClientHandler { CipherSuite = CipherSuite.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA } ``` This API review is strongly connected with: https://github.com/dotnet/corefx/issues/21577 +24542 area-System.Diagnostics System.Diagnostics.Process.StartTime can be improved in Windows When Process instance is created using Process.GetProcesses() , it calls GetProcessInfos method inside. In WIndows it calls to internal [NtQuerySystemInformation](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessManager.Win32.cs) which returns process creation time. [ProcessInfo](https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.Process/src/System/Diagnostics/ProcessInfo.cs) can be initialized using this value and pass it into Process. This allows getting StartTime property without any exception thrown. +24547 area-System.Threading Can something be done about the Microsoft.Tpl.Dataflow package? "[The `Microsoft.Tpl.Dataflow` package](https://www.nuget.org/packages/Microsoft.Tpl.Dataflow/) is outdated and generally shouldn't be used anymore. The replacement is [the `System.Threading.Tasks.Dataflow` package](https://www.nuget.org/packages/System.Threading.Tasks.Dataflow/). But people keep using the old package (see e.g. https://github.com/dotnet/corefx/issues/202#issuecomment-335470737), not knowing they should switch to the new one. Is there something that can be done to help those people? Some options I considered: 1. Add an analyzer to [dotnet/platform-compat](https://github.com/dotnet/platform-compat) that will consider `Microsoft.Tpl.Dataflow` deprecated. 2. Release a new version of `Microsoft.Tpl.Dataflow` that will contain no code of its own and will ""redirect"" to `System.Threading.Tasks.Dataflow` by having a dependency on it. (And then keep releasing a new version every time `System.Threading.Tasks.Dataflow` updates?) cc: @stephentoub " +24548 area-Infrastructure Issues in CoreFx build and opening particular solution in VS 2017 community edition. "I am seeing following issue in build and opening System.Runtime.Extension solution in VS 2017 Community edition IDE. About three (plus) weeks back these issues were not seen. Last weekend, I sync'd my fork with latest code in dotnet/master and since then these issues have been happening consistently. Not only on my branch for #22409 but also on the master branch in my fork. I also recreated my local git repo, but no luck. Issues are, a. On firing ""build.cmd"" / ""build-managed.cmd"" execution is stuck at below line seen on console for about 10 - 15 mins and, at that time network activity kicks in. I see download at about 300kBps from the server ""blob.byaprdstr06a.store.core.windows.net"". Roughly 50MB of stuff is downloaded and then the build proceeds. The line on console after which download begins is as below: ```D:\WinCPP\corefx\packages\Microsoft.TargetingPack.NETFramework.v4.6.1\1.0.1\lib\net461\sysglobl.dll (Microsoft.TargetingPack.NETFramework.v4.6.1.1.0.1) -> D:\WinCPP\corefx\bin\AnyOS.AnyCPU.Release\netfx\netcoreapp\sysglobl.dll``` b. On opening System.Runtime.Extension in VS 2017 Community edition IDE, it gets stuck at ""Preparing Solution"" for similar duration (10 - 15 mins). In this case too, network activity kicks in and devenv.exe appears to be downloading data from same server ""blob.byaprdstr06a.store.core.windows.net"". Alt+Tab into VS 2017 Community IDE at that point gives a pop up at lower right saying VS is busy and information has been sent to ""Visual Studio Experience Improvement Program""... Both the above issues repeat on each run of build command or each time the solution is opened in VS IDE. Primarily the problem is that 50MB per build (or even on opening VS) translates to 500 MB if I were to build / open VS for about 10 times during one coding session; a number that can be easily exceeded. Secondly, the 10-15 min delay holds up build / opening VS IDE. Kindly help. I am wondering if the download is not able to write some sort of "".complete"" file because of which the entire download is repeated every time I run build command or open the solution? This could very well be an issue with my setup that got introduced after I rebased about a month's data from dotnet/master. @karelz @weshaggard created this issue as per our discussion on gitter." +24550 area-System.Net HttpListener cannot recognize Websocket request from firefox "When establishing websocket connection, firefox sends such `Connection` header: `Connection: keep-alive, Upgrade` and `System.Net.HttpListener` can't recognize the `Upgrade` It can be tested with inserting this test case ```csharp [InlineData(""Connection: keep-alive, Upgrade\r\nUpgrade: websocket"", true)] ``` to the `IsWebSocketRequest_GetProperty_ReturnsExpected` test of `HttpListenerRequestTests.cs`" +24551 area-Infrastructure Need to build new 2.0.x Microsoft.NETCore.Platforms package We've made changes to the RID graph in the release/2.0.0 servicing branch. Specifically we [added support for RHEL 6](https://github.com/dotnet/corefx/pull/22970). However, we aren't producing a `2.0.x` version of the `Microsoft.NETCore.Platforms` package that contains these changes. In order to fully support RHEL 6, we need a new Platforms package with these changes in it. @weshaggard @Petermarcu @ericstj +24552 area-System.Security [debian9] libssl1.0.0 and libssl1.0.2 can end up loaded in same process causing crashes "On Debian 9, curl depends on libssl1.0.2. When the libssl1.0.0 and libssl1.0.2 packages are both installed on a machine, `System.Security.Cryptography.Native.Openssl` will preferentially load `libssl.so.1.0.0`. `System.Net.Http.Native`, however, loads `libcurl.so`, which in turn loads `libssl.so.1.0.2`. ### Repro Some combination (as yet undetermined; the repro is ""open PowerShell 6.0.0-beta.8, wait a while"") of interacting with the members of these assemblies, or of passing SSL contexts between System.Net.Http and System.Security.Cryptography.Openssl will trigger a segmentation violation and subsequent termination. ### Dependency Graph ``` * System.Net.Http.Native * libcurl.so.4 * libssl.so.1.0.2 * System.Security.Cryptography.Native.Openssl * libssl.so.1.0.0 ``` ### Resolution Not sure. * Probe for libssl symbols, fall back to dlopen if none are found? * Prefer `libssl.so.1.0.2`?" +24553 area-System.Net SNI API for SslStream ## Rationale The SNI extension allows for multiple hostnames to be served from a single IP address/port combo. This is needed for Kestrel to be able to be a true web facing internet server using TLS. The client side already supports sending a hostname so requires no change. The serverside should have a callback that gives the correct certificate/chain depending on a host name or returns null if none are available. If no certificate is returned the handshake should fail. This requires the ALPN Api to be completed first. ## API Shape ``` c# namespace System.Net.Security { public class SslServerAuthenticationOptions { public ServerCertificateSelectionCallback ServerCertificateSelectionCallback { get; set; } } public delegate System.Security.Cryptography.X509Certificates.X509Certificate ServerCertificateSelectionCallback(object sender, string hostName); } ``` Additional API information: - When host name could not be found the `hostName` value will be `null` when callback is called - `hostName` will never be an empty string - When caller returns null certificate we will throw `AuthenticationException` **Open questions:** - `ReadOnlySpan` vs. `string` for `hostName` - for server API it might be appropriate to make callback with `ReadOnlySpan` - this way server does not have to make two allocations on each request (1 for UTF8 conversion and 1 for IDN conversion) - server could potentially do conversion beforehand and then do byte compare - for client we chose hostName but in the client case it is less important and should be more user friendly - If we choose `ReadOnlySpan`, should we add API to convert to `string`? (and where) # References ALPN/Optionbag Dependent issue #23177 and PR #24389 /cc @Priya91 @Tratcher @geoffkizer @benaadams EDIT (@krwq): updated API proposal, added open questions +24554 area-System.Net Unit tests are failing if IPv6 is not configured I bump to this while running test on FreeBSD, however this issue is not OS specific. Some tests make silent assumption about IPv6 and they fail if system is not configured to meet that. This is unpleasant for anybody from community to run tests and get good pass. The easy repro for Linux is: sysctl -w net.ipv6.conf.all.disable_ipv6=1 ./build-tests.sh The expected behavior would be that tests needing IPv6 would be skipped. Right now, some tests even hang for very long time. +24555 area-System.Runtime Add Microseconds and Nanoseconds to TimeStamp, DateTime, and DateTimeOffset "Currently, the value of a single `Tick` in .NET is 100ns, however there is no API surface for accessing microseconds or nanoseconds other than using `Ticks` to manually calculate these numbers. Seems like this could be done in a minor version since it would be adding API surface, not changing existing API's, and functionality would be unchanged. # Proposed API ```C# namespace System { public struct DateTime { /// When microseconds is not between 0 and 999. public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microseconds); /// When microseconds is not between 0 and 999. public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microseconds, System.DateTimeKind kind); /// When microseconds is not between 0 and 999. public DateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microseconds, System.Globalization.Calendar calendar); /// The microseconds component, expressed as a value between 0 and 999. public int Microsecond { get; } /// The nanoseconds component, expressed as a value between 0 and 900. public int Nanosecond { get; } /// The resulting DateTime is less than DateTime.MinValue or greater than DateTime.MaxValue. public DateTime AddMicroseconds(int microseconds); } public struct DateTimeOffset { /// When microseconds is not between 0 and 999. public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, int millisecond, int microseconds, System.TimeSpan offset); /// When microseconds is not between 0 and 999. public DateTimeOffset(int year, int month, int day, int hour, int minute, int second, int millisecond, int microseconds, System.TimeSpan offset, System.Globalization.Calendar calendar); /// The microseconds component, expressed as a value between 0 and 999. public int Microsecond { get; } /// The nanoseconds component, expressed as a value between 0 and 900. public int Nanosecond { get; } /// The resulting DateTimeOffset is less than DateTimeOffset.MinValue or greater than DateTimeOffset.MaxValue. public DateTimeOffset AddMicroseconds(int microseconds); } public struct TimeSpan { public const long TicksPerMicrosecond = 10L; public const double TicksPerNanosecond = 0.01D; /// When microseconds is not between 0 and 999. public TimeSpan(int days, int hours, int minutes, int seconds, int milliseconds, int microseconds); /// The microseconds component, expressed as a value between 0 and 999. public int Microseconds { get; } /// The nanoseconds component, expressed as a value between 0 and 900. public int Nanoseconds { get; } /// The total number of microseconds represented by this instance. public double TotalMicroseconds { get; } /// The total number of nanoseconds represented by this instance. /// When value starts to approach TimeSpan.MinValue or TimeSpan.MaxValue. public double TotalNanoseconds { get; } /// When value is less than TimeSpan.MinValue or greater than TimeSpan.MaxValue. public static TimeSpan FromMicroseconds(double value); } } ``` # Example Usage ```csharp public class Samples { public void DateTimeSamples() { new DateTime(0001, 01, 01, 00, 00, 00, 00, 999).Ticks; // 9990 DateTime.Parse(""0001-01-01 00:00:00.0009990"").Microsecond; // 999 DateTime.Parse(""0001-01-01 00:00:00.0000009"").Nanosecond; // 900 DateTime.Zero.AddMicroseconds(999).Ticks; // 9990 } public void DateTimeOffsetSamples() { new DateTimeOffset(0001, 01, 01, 00, 00, 00, 00, 999, TimeSpan.FromHours(-7)).Ticks; // 9990 DateTimeOffset.Parse(""0001-01-01 00:00:00.0009990 -7"").Microsecond; // 999 DateTimeOffset.Parse(""0001-01-01 00:00:00.0000009 -7"").Nanosecond; // 900 new DateTimeOffset().AddMicroseconds(999).Ticks; // 9990 } public void TimeSpanSamples() { new TimeSpan(999 * TimeSpan.TicksPerMicrosecond).Ticks; // 9990 new TimeSpan((long)(900 * TimeSpan.TicksPerNanosecond)).Ticks; // 9 new TimeSpan(0001, 01, 01, 00, 00, 00, 00, 999).Ticks; // 9990 TimeSpan.Parse(""0001-01-01 00:00:00.0009990"").Microsecond; // 999 TimeSpan.Parse(""0001-01-01 00:00:00.0000009"").Nanosecond; // 900 TimeSpan.Zero.AddMicroseconds(999).Ticks; // 9990 } } ``` ## Notes - `TimeSpan.TotalMicroseconds` and `TimeSpan.TotalNanoseconds` return double still since that is what the other `Total` properties return. This could be long but I kept it as double for consistency. - `TimeSpan.FromMicroseconds` takes a double to keep the API consistent with the other `From` methods." +24557 area-System.Net HttpClient does not follow 302 redirects "Run the following console application in .NET Core 2.0 and in .NET Full Framework. ```c# class Program { static void Main(string[] args) { MainAsync().Wait(); } static async Task MainAsync() { var httpClient = new HttpClient(); var response = await httpClient.GetAsync( ""https://icons.better-idea.org/icon?url=kayak.com&size=16..24..32""); Console.WriteLine(response.StatusCode); Console.ReadLine(); } } ``` - In .NET Full Framework, this writes `OK` (200). - In .NET Core 2.0 this writes `Redirect` (302). I cannot get .NET Core 2.0 to follow the 302 redirect even if I explicitly do: ```c# var httpClient = new HttpClient(new HttpClientHandler { AllowAutoRedirect = true, MaxAutomaticRedirections = 20 }); ``` I always get `Redirect` (302)." +24558 area-Infrastructure Enable Conditional Publish Behaviors for Azure and MyGet storage "**Note: As we are trying very hard to not break the release builds this week I have marked with * NO MERGE ***, this is just showing how it would be done and make it possible to get rid of extra branches which exist just to do this. Introduces two new build definition variables, PublishToBlobStorage and PublishToMyGet, and makes various steps that do these sorts of publishes conditional on them. See [the VSTS docs](https://docs.microsoft.com/en-us/vsts/build-release/concepts/process/conditions#examples) on Conditional Task Expressions for more info on this. In addition to these changes merging, we'd also need to do the following: - add ""-b 3.2"" to update the API Version used to talk to the VSTS API when hydrating build definitions. - Add PublishToBlobStorage and PublishToMyGet variables to the Pipebuild defintion used to kick off the build. " +24559 area-System.Globalization Is not possible to create custom cultures in .Net Core @carcarbe commented on [Tue Oct 10 2017](https://github.com/dotnet/core/issues/1020) Is not possible to create custom cultures in .Net Core In .Net framework is possible to create custom cultures, e.g en-US-NY (English from New York). using CultureAndRegionInfoBuilder class as is describe in this example http://www.c-sharpcorner.com/UploadFile/GemingLeader/creatingextending-a-culture/ . Are there any plans to implement this in .Net Core? In the project were I am working at the moment we need this to be able to create different localizations for different dialects of the same language. +24562 area-System.Net Disposing Socket then rebinding fails with SocketError.AddressAlreadyInUse on Unix ".NET Core 2.0.0 runtime macOS 10.12.6 Seirra and Ubuntu 16.04.2 LTS (Xenial Xerus) ```C# using System; using System.Net; using System.Net.Sockets; namespace SocketRebind { class Program { static void Main(string[] args) { for (var i = 0;; i++) { Console.WriteLine(""Iteration #{0}"", i); var serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); serverSocket.Bind(new IPEndPoint(IPAddress.Loopback, 5000)); serverSocket.Listen(512); var clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); clientSocket.Connect(IPAddress.Loopback, 5000); var acceptSocket = serverSocket.Accept(); acceptSocket.Dispose(); clientSocket.Dispose(); serverSocket.Dispose(); } } } } ``` #### Expected behavior: Program should iterate indefinitely. This is what happens on Windows. #### Actual behavior: After the first iteration, Socket.Bind throws ""SocketException: Address already in use"" #### Output (identical on macOS and Ubuntu): ``` $ dotnet run Iteration #0 Iteration #1 Unhandled Exception: System.Net.Sockets.SocketException: Address already in use at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName) at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Bind(EndPoint localEP) at SocketRebind.Program.Main(String[] args) in /Users/shalter/source/halter73/SocketRebind/Program.cs:line 16 $ $ $ dotnet run Iteration #0 Unhandled Exception: System.Net.Sockets.SocketException: Address already in use at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName) at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.Bind(EndPoint localEP) at SocketRebind.Program.Main(String[] args) in /Users/shalter/source/halter73/SocketRebind/Program.cs:line 16 ```" +24563 area-System.Collections ImmutableDictionary.CreateBuilder(IEqualityComparer) allocates unneeded enumerator We have code that does this: ``` C# ImmutableDictionary.CreateBuilder(StringComparer.OrdinalIgnoreCase); ``` This allocates an unnecessary boxed `ImmutableDictionary.Enumerator`. This produces 0.2% of all allocations in some scenarios in MSbuild: ![image](https://user-images.githubusercontent.com/1103906/31417602-4fc623bc-ae7c-11e7-8183-6bad76ccf647.png) +24564 area-System.Memory Add explicit conversion APIs for Span to ROSpan and Memory to ROMemory ## Rationale From https://github.com/dotnet/corefx/issues/23862#issuecomment-328097809 ```C# public static implicit operator ReadOnlyMemory(Memory memory); public static implicit operator ReadOnlySpan (Span span); ``` This is the only way to convert from `Span` to `ReadOnlySpan and `Memory` to `ReadOnlyMemory`. [Framework Design Guildelines say](https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/operator-overloads): > ✓ CONSIDER providing methods with friendly names that correspond to each overloaded operator. Specifically, F# does not support implicit operators, but allows calling them as `op_Implicit`. The only way to convert from `Memory` to `ReadOnlyMemory` in F# would be the following? ```F# let memoryToReadOnlyMemory (memory : Memory<'a>) : ReadOnlyMemory<'a> = Memory<'a>.op_Implicit memory ``` ## Proposed API Therefore, add these explicit conversion APIs to `Span` and `Memory`: ```C# public static ReadOnlyMemory AsReadOnlyMemory(this Memory memory); public static ReadOnlySpan AsReadOnlySpan(this Span span); ``` cc @svick, @KrzysztofCwalina, @jkotas, @terrajobst +24565 area-System.Collections Avoid generic interface GetEnumerator empty allocations in immutable collections Fixes https://github.com/dotnet/corefx/issues/24563 cc: @davkean, @AArnott +24566 area-System.Net "System.Net.Sockets.Tests.IPPacketInformationTest.Equals_NonDefaultValue_Success failed with ""Xunit.Sdk.TrueException""" System.Net.Sockets.Tests.IPPacketInformationTest.Equals_NonDefaultValue_Success [FAIL] 18:26:35 Assert.True() Failure 18:26:35 Expected: True 18:26:35 Actual: False 18:26:35 Stack Trace: 18:26:35 downloaded dumpling.py 18:26:35 total elapsed time 0:00:00.156276 18:26:35 downloaded dumpling.py 18:26:35 total elapsed time 0:00:00.155070 18:26:35 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release/src/System.Net.Sockets/tests/FunctionalTests/IPPacketInformationTest.cs(76,0): at System.Net.Sockets.Tests.IPPacketInformationTest.GetNonDefaultIPPacketInformation() 18:26:35 /Users/dotnet-bot/j/workspace/dotnet_corefx/master/osx10.12_release/src/System.Net.Sockets/tests/FunctionalTests/IPPacketInformationTest.cs(32,0): at System.Net.Sockets.Tests.IPPacketInformationTest.Equals_NonDefaultValue_Success() Configuration: osx10.12_release Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release/3312/ Detail: https://ci.dot.net/job/dotnet_corefx/job/master/job/osx10.12_release/3312/consoleFull#-14347295752d31e50d-1517-49fc-92b3-2ca637122019 +24567 area-System.IO Strange behavior of Directory.CreateDirectory "I found strange behaviors in `Directory.CreateDirectory` in my .net core2.0 app. My test code looks like: ```c# var length255 = new string(Enumerable.Repeat('a', byte.MaxValue).ToArray()); var lastLength = 225; var last = new string(Enumerable.Repeat('a', lastLength).ToArray()); var path = Path.Combine(@""D:\"", Path.Combine(Enumerable.Repeat(length255, 127).ToArray()), last); try { Console.WriteLine(path.Length); Directory.CreateDirectory(path); } catch (Exception e) { Console.WriteLine(e.GetType()); Console.WriteLine(Directory.Exists(path)); } ``` I change the value of `lastLength` a few times, here is the question: Q1: `lastLength = 224, path.Length = 32739` everything is working fine. What's the magic of 32739? Q2: `225 <= lastLength <= 247, 32740 <= path.Length <= 32762` throws `System.IO.PathTooLongException`, meanwhile `Directory.Exists` prints `False`. However I can see the first few level directories are created(not all directories), which means the creation is partially done with an exception. Why? Q3: `248 <= lastLength <= 251, 32763 <= path.Length <= 32766` cases are almost the same as those in Q2, except the exception is `System.IO.DirectoryNotFoundException`, why? `lastLength > = 252, path.Length >= 32767` fails with `System.IO.PathTooLongException`, no directory is created, which is as expected. [EDIT] Add C# syntax highlight by @karelz" +24568 area-System.Memory Add Base64 conversion APIs that support UTF-8 for Span "## Updated API Proposal Details https://github.com/dotnet/corefx/issues/24568#issuecomment-338833370 ```C# // System.Memory.dll namespace System.Buffers.Text { public static class Base64 { public static OperationStatus EncodeToUtf8(ReadOnlySpan bytes, Span utf8, out int consumed, out int written, bool isFinalBlock = true); public static OperationStatus EncodeToUtf8InPlace(Span buffer, int dataLength, out int written); public static int GetMaxEncodedToUtf8Length(int length); public static OperationStatus DecodeFromUtf8(ReadOnlySpan utf8, Span bytes, out int consumed, out int written, bool isFinalBlock = true); public static OperationStatus DecodeFromUtf8InPlace(Span buffer, int dataLength, out int written); public static int GetMaxDecodedFromUtf8Length(int length); } } ```
Details and Usage from previously proposed API ## Rationale These API allow for encoding of a Span\ into UTF-8 Base64 encoded span (binary to text operation) and decoding of a UTF-8 Base64 encoded span to Span\ (text to binary operation). They will be used by SignalR (for example [here](https://github.com/SignalR/SignalR/blob/master/src/Microsoft.AspNet.SignalR.Core/Infrastructure/DefaultProtectedData.cs#L22), [here](https://github.com/SignalR/SignalR/blob/master/src/Microsoft.AspNet.SignalR.Core/Infrastructure/DataProtectionProviderProtectedData.cs#L40), and [here](https://github.com/aspnet/SignalR/blob/dev/src/Microsoft.AspNetCore.SignalR.Common/Internal/Encoders/Base64Encoder.cs)). A prototype of the API is available in corefxlab: https://github.com/dotnet/corefxlab/tree/master/src/System.Binary.Base64 Part of https://github.com/dotnet/corefx/issues/24174 Previous review: https://github.com/dotnet/apireviews/tree/master/2017/06-16-System.Text.Buffers ## Usage For valid input data: ```C# Span input; // input buffer to be encoded containing binary data Span encodedBytes = new byte[Base64.BytesToUtf8Length(input.Length)]; OperationStatus status = Base64.BytesToUtf8(input, encodedBytes, out int consumed, out int encodedBytesCount); // status == OperationStatus.Done // encodedBytes.Length == encodedBytesCount // consumed == input.Length ``` ```C# Span input; // input buffer to be decoded containing textual data Span decodedBytes = new byte[Base64.Utf8ToBytesLength(input.Length)]; OperationStatus status = Base64.Utf8ToBytes(input, decodedBytes, out int consumed, out int decodedByteCount); // status == OperationStatus.Done // decodedBytes.Length >= decodedByteCount // consumed == input.Length ``` Using these new APIs, we can take the following code snippet (from [here](https://github.com/aspnet/SignalR/blob/dev/src/Microsoft.AspNetCore.SignalR.Common/Internal/Encoders/Base64Encoder.cs)): ```C# public byte[] Decode(byte[] payload) { var buffer = new ReadOnlyBuffer(payload); LengthPrefixedTextMessageParser.TryParseMessage(ref buffer, out var message); return Convert.FromBase64String(Encoding.UTF8.GetString(message.ToArray())); } ``` And re-write it as follows (if we want to keep the input/output as byte arrays): ```C# public byte[] Decode(byte[] payload) { var buffer = new ReadOnlyBuffer(payload); LengthPrefixedTextMessageParser.TryParseMessage(ref buffer, out var message); // assume message.Span is UTF-8 encoded (for instance, using the upcoming UTF8 encoder APIs) Span bytes = new byte[Utf8ToBytesLength(message.Span.Length)]; Base64.Utf8ToBytes(message.Span, bytes, out int consumed, out int written); return bytes.Slice(0, written).ToArray(); } ``` For potentially invalid (or incomplete) input, the user can check the returned status. For example, change the above code as follows: ```C# Span bytes = new byte[Utf8ToBytesLength(message.Span.Length)]; OperationStatus status = Base64.Utf8ToBytes(message.Span, bytes, out int consumed, out int written); return status == OperationStatus.Done ? bytes.Slice(0, written).ToArray() : ; } ``` ## Proposed API ```C# // System.Memory.dll namespace System.Buffers.Text { public static class Base64 { public static OperationStatus BytesToUtf8(ReadOnlySpan bytes, Span utf8, out int consumed, out int written, bool isFinalBlock = true); public static OperationStatus BytesToUtf8InPlace(Span buffer, int bytesLength, out int written, bool isFinalBlock = true); public static int BytesToUtf8Length(int bytesLength); // public static int BytesToUtf8Length(ReadOnlySpan utf8, bool isFinalBlock); public static OperationStatus Utf8ToBytes(ReadOnlySpan utf8, Span bytes, out int consumed, out int written, bool isFinalBlock = true); public static OperationStatus Utf8ToBytesInPlace(Span buffer, out int consumed, out int written, bool isFinalBlock = true); public static int Utf8ToBytesLength(int utf8Length); // public static int Utf8ToBytesLength(ReadOnlySpan utf8, bool isFinalBlock); } } ``` **Note:** OperationStatus is the same as TransformationStatus (https://github.com/dotnet/corefx/issues/22412). ## Open Questions ### 1 For computing length, another approach could be to add the following overloads, which give the ""actual"", precise length: ```C# public static int BytesToUtf8Length(ReadOnlySpan utf8, bool isFinalBlock); public static int Utf8ToBytesLength(ReadOnlySpan utf8, bool isFinalBlock); ``` The behavior of the currently proposed APIs is similar to the ones listed above for when isFinalBlock is true. For example: ```C# // input = ABC DEF G BytesToUtf8Length(input, false); // returns 8 BytesToUtf8Length(input, true); // returns 12 == BytesToUtf8Length(input.Length) ``` ### 2 To extend the functionality of the currently proposed APIs to include new line support (for example, for the MIME variant of Base64), we could add the following overloads that take a ParsedFormat parameter: ```C# public static OperationStatus BytesToUtf8(ReadOnlySpan bytes, Span utf8, out int consumed, out int written, ParsedFormat format, bool isFinalBlock = true); public static OperationStatus BytesToUtf8InPlace(Span buffer, int bytesLength, out int written, ParsedFormat format, bool isFinalBlock = true); public static OperationStatus Utf8ToBytes(ReadOnlySpan utf8, Span bytes, out int consumed, out int written, ParsedFormat format, bool isFinalBlock = true); public static OperationStatus Utf8ToBytesInPlace(Span buffer, out int consumed, out int written, ParsedFormat format, bool isFinalBlock = true); public static int BytesToUtf8Length(int bytesLength, ParsedFormat format); public static int Utf8ToBytesLength(int utf8Length, ParsedFormat format); ``` Which creates a dependency on ParsedFormat (https://github.com/dotnet/corefx/issues/24607) The usage would then look like: ```C# ParsedFormat format = new ParsedFormat('N', 76); int requiredSize = Base64.BytesToUtf8Length(source.Length, format); Span encodedBytes = new byte[outputSize]; Base64.BytesToUtf8(source, encodedBytes, out int consumed, out int written, format); ``` ### 3 Should we rename `Utf8ToBytesLength(int utf8Length)` to `Utf8ToBytesMaxLength` to indicate it isn't the precise length (but rather could be a few bytes larger)? Same with `BytesToUtf8Length(int bytesLength)`?
cc @KrzysztofCwalina, @GrabYourPitchforks, @davidfowl, @terrajobst, @karelz " +24574 area-System.Net How to default to WinHTTP proxy not the WinINet for a .Net core app _From @rohitshrivastava04 on October 11, 2017 10:50_ # Issue Title How to set proxy settings for a .Net Core application # General We have a .Net Core Windows Service which makes few calls to AWS or other internet services. For this, it needs to use proxy settings. There are two options either we configure each call to use proxy server or set proxy setting machine wide. Setting WinHTTP proxy configuration is easier than WinINet. However .net core process uses wininet as default proxy policy. How can I set it to default to WinHTTP than WinINet for the whole app rather than changing in each WinHttpHandler? _Copied from original issue: dotnet/core#1023_ +24575 area-System.Numerics Make BigInteger BigEndian-friendly The current state of BigInteger accepts a `byte[]` (and now a `ReadOnlySpan`) as a little-endian signed value, and the writer APIs (`ToByteArray()` and `TryWriteBytes`) only emit as a signed little-endian value. Various wire protocols may dictate either of 1) an unsigned value in transmission or 2) big-endian transmission. Both of these protocol choices result in the application/library needing to understand the translation of protocol bytes to BigInteger bytes, at a cost to performance and risk to reliability. ## Proposal ```C# partial class BigInteger { // Augment existing public BigInteger( ReadOnlySpan value, bool isBigEndian=false, bool isUnsigned=false) => throw null; // Augment existing public bool TryWriteBytes( System.Span destination, out int bytesWritten, bool isBigEndian=false, bool isUnsigned=false) => throw null; // New overload. public byte[] ToByteArray(bool isBigEndian=false, bool isUnsigned=false) => throw null; } ``` Since the span-based APIs have not yet released, I propose that they be augmented with the default-value-parameters. For `ToByteArray` an overload will have to be added, but the existing method can just forward to `ToByteArray(false, false)`. A byte[]-based ctor overload may also be warranted if Span and BigInteger may have different velocities to .NET Framework (or the implicit cast causes too much cognitive overload). ## Behavior Given `byte[] data = { 0xFE, 0x80 };` * `new BigInteger(data, isBigEndian: false, isUnsigned: false)` => `(short)0x80FE` => `-32514` * `new BigInteger(data, isBigEndian: true, isUnsigned: false)` => `(short)0xFE80` => `-384` * `new BigInteger(data, isBigEndian: false, isUnsigned: true)` => `(int)0x000080FE` => `33022` * `new BigInteger(data, isBigEndian: true, isUnsigned: true)` => `(int)0x0000FE80` => `65152` When the most significant byte of the input data does not have the most significant bit set the `isUnsigned` value has no meaning. Emitting values (reminder, parameter order is `isBigEndian, isUnsigned`; `isBigEndian` label removed to prevent bulleted list from gaining line-wraps) * `new BigInteger(-32514).ToByteArray(false, isUnsigned: false)` => ` {0xFE, 0x80 }` * `new BigInteger(-32514).ToByteArray(true, isUnsigned: false)` => `{ 0x80, 0xFE }` * `new BigInteger(-32514).ToByteArray(false, isUnsigned: true)` => exception * `new BigInteger(-32514).ToByteArray(true, isUnsigned: true)` => exception * `new BigInteger(33022).ToByteArray(false, isUnsigned: false)` => `{ 0xFE, 0x80, 0x00 }` * `new BigInteger(33022).ToByteArray(true, isUnsigned: false)` => `{ 0x00, 0x80, 0xFE }` * `new BigInteger(33022).ToByteArray(false, isUnsigned: true)` => `{ 0xFE, 0x80 }` * `new BigInteger(33022).ToByteArray(true, isUnsigned: true)` => `{ 0x80, 0xFE }` +24576 area-Infrastructure Update CentOS 6 docker image This update fixes problem with git not supporting https protocol +24577 area-System.Net Change System.Net.Http to throw exception for HTTPS -> HTTP redirects Currently, .NET Core will ignore automatic HTTPS -> HTTP redirects in HttpClientHandler. This is already a different behavior from .NET Framework (which allows automatic HTTPS -> HTTP redirects). .NET Core is different from .NET Framework in this manner in order to provide a more secure behavior pattern. However, currently .NET Core simply ignores the HTTPS -> HTTP redirect. It leaves the final response with the 3xx response. This has caused a lot of developer confusion when troubleshooting issues. This issue is now tracking to make a behavior change to .NET Core. Instead of ignoring HTTPS -> HTTP redirects, it will instead throw an HttpRequestException with a suitable inner exception and error message. +24579 area-System.Diagnostics Port System.Diagnostics.PerformanceCounters to .NET Core This change adds System.Diagnostics.PerformanceCounters to .NET Core. It also adds two tests for the library. +24580 area-System.Net HttpClient status code - different behavior (Windows / CENT OS) DotNet version - 1.0.1 OS - CENT OS URL - http://www.switchboard.com ![image](https://user-images.githubusercontent.com/554039/31459668-d775c758-ae91-11e7-9159-34737c344cd2.png) DotNet version - 1.0.1 OS - Windows 10 OS URL - http://www.switchboard.com ![image](https://user-images.githubusercontent.com/554039/31459224-8a20d728-ae90-11e7-95d1-85bc99f72b8f.png) Basically the app does return a status code and redirected URL. In windows it work as expected (return MovedPermanently with redirected URL). However, In linux the HttpClient library return different status code (MethodNotAllowed) and does not return any redirected URL. Also, tried to verify the same URL in a [third party app ](http://redirectdetective.com/)which work same as Windows version. ![image](https://user-images.githubusercontent.com/554039/31460192-8d58db86-ae93-11e7-82a2-feecb704f275.png) Any help would be appreciated. +24582 area-System.Data Extremely slow queries when when running on Linux with SQL 2017 on the same machine "Moved from https://github.com/aspnet/EntityFrameworkCore/issues/10043 submitted by @sdb-dev I am experiencing 5-10x slower queries on a fresh dedicated server with Ubuntu 16.04 and SQL Server 2017. This issue is ONLY happening when the SQL Server and the .NET Core application is running on the same linux machine (Ubuntu). I created a simple application which does a .ToList() on 2 tables (one with 500 records, another with 10,000) Running the .NET Core application on my local computers, connecting to the SQL Server remotely, I get the following results: ``` Loaded (Table 1) 500 in 851.00 ms Reloading context. Loaded (Table 1) 500 in 95.00 ms Loaded (Table 2) 10000 in 262.00 ms` ``` Running the same .NET Core application on the remote machine with SQL Server on it (localhost) ``` Loaded (Table 1) 500 in 2,362.00 ms Reloading context. Loaded (Table 1) 500 in 1,524.00 ms Loaded (Table 2) 10000 in 42,976.00 ms ```` If I run the same .NET Core application on the machine which experiences the slow-down with another remote server, it runs perfectly fine - it seems to only occur when both SQL and the .NET app are on the same machine. For whatever reason, there seems to be a huge send queue from SQL to my application, which leads me to believe EF Core may be very slow materializing the data from sql - SQL sends the data perfectly fine. For reference, here is the testing code: ```Console.WriteLine(""Starting...""); var sw = new Stopwatch(); sw.Start(); var db = new MyDbContext(""connString""); var attrs = db.TableOne.ToList(); sw.Stop(); Console.WriteLine($""Loaded (Table 1) {attrs.Count} in {sw.ElapsedMilliseconds:N2} ms""); Console.WriteLine(""Reloading context.""); db.Dispose(); sw.Reset(); sw.Start(); db = new MyDbContext(""connString""); attrs = db.TableOne.ToList(); Console.WriteLine($""Loaded (Table 1) {attrs.Count} in {sw.ElapsedMilliseconds:N2} ms""); sw.Stop(); sw.Reset(); sw.Start(); var items = db.TableTwo.ToList(); Console.WriteLine($""Loaded (Table 2) {items.Count} in {sw.ElapsedMilliseconds:N2} ms""); sw.Stop(); Console.WriteLine(""Press any key to continue.""); Console.Read();``` " +24583 area-Serialization Fix the sgen generated code error for a type with mismatched attribute and property. Fix #19726 @shmao @zhenlan @mconnew +24584 area-Infrastructure Enable publishing to azure feed This is the initial set of changes to move release/2.0.0 to blob storage feed. /cc @weshaggard @MattGal +24585 area-System.Linq Perf optimization for FirstOrDefault of List Extension method FirstOrDefault that takes predicate as parameter could use native List implementation by calling method Find of an object instance. So, I propose to add the code below to Enumerable.FirstOrDefault(predicate): ``` List simpleList = source as List; if(simpleList != null) return simpleList.Find(item => predicate(item)); ``` +24586 area-System.Data System.Data.Sqlient isn't supported on this platform error in Update-Database "@deanilvincent commented on [Tue Oct 10 2017](https://github.com/dotnet/core/issues/1018) # Title: System.Data.Sqlient isn't supported on this platform error # General **Environment specifications:** Visual Studio 2017 15.3 Installed 2.0 .Net Core I'm trying to use the command ""update-database -context NameOfMyContext"" but somehow I got this error message that says ""System.Data.Sqlient isn't supported on this platform error"" Here's my connection string ` services.AddDbContext(options => options.UseSqlServer(@""data source=ipaddress;initial catalog=testingdbcore;user id=username;password=password;integrated security=false;""));` To add up, I successfully added a migration and everything is working fine but then suddenly when I trigger the command for updating my database, I got this issues. Thank you in advance! ![bugerrorcore](https://user-images.githubusercontent.com/10904957/31386641-11c0dfc6-adfa-11e7-944d-7518e8404183.PNG) --- @Petermarcu commented on [Tue Oct 10 2017](https://github.com/dotnet/core/issues/1018#issuecomment-335690327) @divega would this be an issue that should be in the EF repo or @saurabh500 should this issue go to corefx? --- @saurabh500 commented on [Wed Oct 11 2017](https://github.com/dotnet/core/issues/1018#issuecomment-335743403) It should go to Corefx --- @deanilvincent commented on [Wed Oct 11 2017](https://github.com/dotnet/core/issues/1018#issuecomment-335792089) What should I do now guys? Is there any option? --- @saurabh500 commented on [Wed Oct 11 2017](https://github.com/dotnet/core/issues/1018#issuecomment-335888411) What is your OS that you are running the above steps on @deanilvincent ? --- @saurabh500 commented on [Wed Oct 11 2017](https://github.com/dotnet/core/issues/1018#issuecomment-335889026) @deanilvincent From the screen shot it is Windows. " +24588 area-System.Net SSLStream Allow Configuration of CipherSuites "# Rationale Today you can only configure the available CipherSuites (if at all) on a Machine Wide (maybe process maybe not) Level. This is problematic let me give you a basic example I have a webservice, it needs to connect to an internal ""Legacy"" service so I have to support some old or slow (DHE at large key sizes for instance) set of ciphers. But this means now my webserver has to support clients connecting to it with the same bad crypto. # Solution Add a method to the SslStream Options bag that is a ""list"" of supported ciphers. Existing behaviour (System wide settings) would be used if the Cipher Suite List is unsupported. Also add a few ""sets"" of industry standard suites to allow users to ""fall into the pit of success"". API (With some ideas from @PeterSmithRedmond) ``` csharp public class SslServerAuthenticationOptions { public ReadOnlyCollection {get;set;} } public class SslClientAuthenticationOptions { public ReadOnlyCollection {get;set;} } public struct CipherSuite { public CipherSuite(string cipherSuiteName); public static ReadOnlyCollection FipsCipherSuite2017 {get;} public static ReadOnlyCollection MozillaModernCipherSuite {get;} public static ReadOnlyCollection MozillaIntermediateCipherSuite {get;} public static ReadOnlyCollection MozillaOldCipherSuite {get;} public static ReadOnlyColleciton OSStrongCipherSuite {get;} } ``` The last one I am not 100% on. The ""defaults"" will help people select the right choice. # Refs #24389 This depends on the OptionBag in this issue #21577 This feature wanted on the HttpClient/Handler which this would facilitate #15157 A previous request " +24591 area-System.Threading Add bit manipulation methods to Interlocked class The methods on the `Interlocked` class currently only allow arithmetic operations (addition, subtraction) and exchange operations. These are sufficient for normal arithmetic needs but are somewhat difficult to use by callers who need to perform interlocked manipulation of fields that are intended to be bitwise flags. As an example, consider ASP.NET's internal `CancellationTokenHelper` class, which uses several calls to `Interlocked.CompareExchange` within a `switch` statement in order to mimic performing flag manipulation of a field. (http://referencesource.microsoft.com/#System.Web/Util/CancellationTokenHelper.cs,71) Or consider how `System.Threading.Task` uses `Interlocked.CompareExchange` in a loop to mimic the `InterlockedAnd` operation. (http://referencesource.microsoft.com/#mscorlib/system/threading/Tasks/Task.cs,865) While it's possible for callers to implement interlocked bitwise operations in terms of interlocked arithmetic operations, it's a bit difficult to get right, and the framework should make this easier for the power developers who need it. ## Proposed API additions ```csharp namespace System.Threading { public static class Interlocked { public static int And(ref int location1, int value); public static long And(ref long location1, long value); public static int Or(ref int location1, int value); public static long Or(ref long location1, long value); public static int Xor(ref int location1, int value); public static long Xor(ref long location1, long value); } } ``` ## Behavior Like their arithmetic counterparts, these APIs perform the operation atomically and return the _original_ value to the caller. At the IL level, these APIs can be implemented in terms of the existing APIs on the `Interlocked` class. Ideally the JITter could special-case when the caller discards the return value without inspection, and this would turn in to a `lock and` or similar instruction instead of a standard `lock cmpxchg`. The proposed APIs should have the same memory fence semantics that the arithmetic operations have today. (I believe it's a full fence?) ## Samples The `System.Threading.Task` code from earlier, as it exists today: ```csharp // Atomically clear the END_AWAIT_NOTIFICATION bit SpinWait sw = new SpinWait(); while (true) { int oldFlags = m_stateFlags; int newFlags = oldFlags & (~TASK_STATE_WAIT_COMPLETION_NOTIFICATION); if (Interlocked.CompareExchange(ref m_stateFlags, newFlags, oldFlags) == oldFlags) break; sw.SpinOnce(); } ``` Could be written as such with the new primitives (n.b. caller doesn't care about return value, so JIT optimization described earlier could kick in): ```csharp // Atomically clear the END_AWAIT_NOTIFICATION bit Interlocked.And(ref m_stateFlags, ~TASK_STATE_WAIT_COMPLETION_NOTIFICATION); ``` +24594 area-System.IO NamedPipeClientStream depends on WaitNamedPipe, which is not supported in Windows Containers `NamedPipeClientStream.TryConnect` calls into native `WaitNamedPipe` first to make sure the pipe is available and only then into native `CreateNamedPipeClient`. The problem is that currently `WaitNamedPipe` is not supported from inside of Windows Containers (however `CreateNamedPipeClient` works ok). It fails with `ERROR_FILE_NOT_FOUND`. As such, managed code using `NamedPipeClientStream` is broken in Windows Containers due to the ordering of the calls. This includes Docker.Dotnet library and projects depending on it. Since both these calls happen in a loop which is making sure that the given timeout is not exceeded, we could swap them and call `WaitNamedPipe` only if `CreateNamedPipeClient` fails in a predicable manner first.